UNPKG

@tokamak-network/thanos-contracts

Version:
1 lines 198 kB
{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdUtils.sol\":\"StdUtils\"},\"evmVersion\":\"cancun\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa\",\"dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea\",\"dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/StdUtils.sol":"StdUtils"},"evmVersion":"cancun","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410","urls":["bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa","dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x29fa9fa4f21f0762bcb245732bdf18218b0e017640fe4f9809d2157c56d9741e","urls":["bzz-raw://cf18f5b10bfcc5c70c8f950a52907b18e6da38825cdd04261c435601410f0dea","dweb:/ipfs/QmPkhDtp4AXw7iaJe84PEUPNK748pxsLUp8r5QB3hewWRy"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/StdUtils.sol","id":12015,"exportedSymbols":{"IMulticall3":[32500],"MockERC20":[33077],"MockERC721":[33682],"StdUtils":[12014],"VmSafe":[15270]},"nodeType":"SourceUnit","src":"32:10624:12","nodes":[{"id":11230,"nodeType":"PragmaDirective","src":"32:31:12","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":11231,"nodeType":"PragmaDirective","src":"65:33:12","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":11233,"nodeType":"ImportDirective","src":"100:57:12","nodes":[],"absolutePath":"lib/forge-std/src/interfaces/IMulticall3.sol","file":"./interfaces/IMulticall3.sol","nameLocation":"-1:-1:-1","scope":12015,"sourceUnit":32501,"symbolAliases":[{"foreign":{"id":11232,"name":"IMulticall3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32500,"src":"108:11:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11235,"nodeType":"ImportDirective","src":"158:48:12","nodes":[],"absolutePath":"lib/forge-std/src/mocks/MockERC20.sol","file":"./mocks/MockERC20.sol","nameLocation":"-1:-1:-1","scope":12015,"sourceUnit":33078,"symbolAliases":[{"foreign":{"id":11234,"name":"MockERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33077,"src":"166:9:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11237,"nodeType":"ImportDirective","src":"207:50:12","nodes":[],"absolutePath":"lib/forge-std/src/mocks/MockERC721.sol","file":"./mocks/MockERC721.sol","nameLocation":"-1:-1:-1","scope":12015,"sourceUnit":33697,"symbolAliases":[{"foreign":{"id":11236,"name":"MockERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33682,"src":"215:10:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11239,"nodeType":"ImportDirective","src":"258:32:12","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":12015,"sourceUnit":15858,"symbolAliases":[{"foreign":{"id":11238,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15270,"src":"266:6:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12014,"nodeType":"ContractDefinition","src":"292:10363:12","nodes":[{"id":11245,"nodeType":"VariableDeclaration","src":"535:96:12","nodes":[],"constant":true,"mutability":"constant","name":"multicall","nameLocation":"564:9:12","scope":12014,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMulticall3_$32500","typeString":"contract IMulticall3"},"typeName":{"id":11241,"nodeType":"UserDefinedTypeName","pathNode":{"id":11240,"name":"IMulticall3","nameLocations":["535:11:12"],"nodeType":"IdentifierPath","referencedDeclaration":32500,"src":"535:11:12"},"referencedDeclaration":32500,"src":"535:11:12","typeDescriptions":{"typeIdentifier":"t_contract$_IMulticall3_$32500","typeString":"contract IMulticall3"}},"value":{"arguments":[{"hexValue":"307863413131626465303539373762333633313136373032383836326245326131373339373643413131","id":11243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"588:42:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xcA11bde05977b3631167028862bE2a173976CA11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11242,"name":"IMulticall3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32500,"src":"576:11:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMulticall3_$32500_$","typeString":"type(contract IMulticall3)"}},"id":11244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"576:55:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMulticall3_$32500","typeString":"contract IMulticall3"}},"visibility":"private"},{"id":11262,"nodeType":"VariableDeclaration","src":"637:92:12","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"661:2:12","scope":12014,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15270","typeString":"contract VmSafe"},"typeName":{"id":11247,"nodeType":"UserDefinedTypeName","pathNode":{"id":11246,"name":"VmSafe","nameLocations":["637:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":15270,"src":"637:6:12"},"referencedDeclaration":15270,"src":"637:6:12","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15270","typeString":"contract VmSafe"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":11256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"707:17:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":11255,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"697:9:12","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"697:28:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11254,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"689:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11253,"name":"uint256","nodeType":"ElementaryTypeName","src":"689:7:12","typeDescriptions":{}}},"id":11258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"689:37:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"681:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":11251,"name":"uint160","nodeType":"ElementaryTypeName","src":"681:7:12","typeDescriptions":{}}},"id":11259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"681:46:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":11250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"673:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11249,"name":"address","nodeType":"ElementaryTypeName","src":"673:7:12","typeDescriptions":{}}},"id":11260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"673:55:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11248,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15270,"src":"666:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$15270_$","typeString":"type(contract VmSafe)"}},"id":11261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"666:63:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15270","typeString":"contract VmSafe"}},"visibility":"private"},{"id":11265,"nodeType":"VariableDeclaration","src":"735:86:12","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE2_ADDRESS","nameLocation":"760:16:12","scope":12014,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11263,"name":"address","nodeType":"ElementaryTypeName","src":"735:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":11264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"779:42:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"private"},{"id":11268,"nodeType":"VariableDeclaration","src":"827:127:12","nodes":[],"constant":true,"mutability":"constant","name":"INT256_MIN_ABS","nameLocation":"852:14:12","scope":12014,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11266,"name":"uint256","nodeType":"ElementaryTypeName","src":"827:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3537383936303434363138363538303937373131373835343932353034333433393533393236363334393932333332383230323832303139373238373932303033393536353634383139393638","id":11267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"877:77:12","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"value":"57896044618658097711785492504343953926634992332820282019728792003956564819968"},"visibility":"private"},{"id":11271,"nodeType":"VariableDeclaration","src":"960:129:12","nodes":[],"constant":true,"mutability":"constant","name":"SECP256K1_ORDER","nameLocation":"985:15:12","scope":12014,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11269,"name":"uint256","nodeType":"ElementaryTypeName","src":"960:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383532383337353634323739303734393034333832363035313633313431353138313631343934333337","id":11270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1011:78:12","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907852837564279074904382605163141518161494337_by_1","typeString":"int_const 1157...(70 digits omitted)...4337"},"value":"115792089237316195423570985008687907852837564279074904382605163141518161494337"},"visibility":"private"},{"id":11274,"nodeType":"VariableDeclaration","src":"1095:125:12","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"1120:11:12","scope":12014,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11272,"name":"uint256","nodeType":"ElementaryTypeName","src":"1095:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":11273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1142:78:12","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"private"},{"id":11277,"nodeType":"VariableDeclaration","src":"1339:85:12","nodes":[],"constant":true,"mutability":"constant","name":"CREATE2_FACTORY","nameLocation":"1364:15:12","scope":12014,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11275,"name":"address","nodeType":"ElementaryTypeName","src":"1339:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":11276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1382:42:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"visibility":"private"},{"id":11407,"nodeType":"FunctionDefinition","src":"1646:1263:12","nodes":[],"body":{"id":11406,"nodeType":"Block","src":"1746:1163:12","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11289,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11281,"src":"1764:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11290,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11283,"src":"1771:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1764:10:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374645574696c7320626f756e642875696e743235362c75696e743235362c75696e74323536293a204d6178206973206c657373207468616e206d696e2e","id":11292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1776:64:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_16c21f4eccdbbd49e5dc1331f271d929c25cafaf25207892b67e15553a16c5f2","typeString":"literal_string \"StdUtils bound(uint256,uint256,uint256): Max is less than min.\""},"value":"StdUtils bound(uint256,uint256,uint256): Max is less than min."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16c21f4eccdbbd49e5dc1331f271d929c25cafaf25207892b67e15553a16c5f2","typeString":"literal_string \"StdUtils bound(uint256,uint256,uint256): Max is less than min.\""}],"id":11288,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1756:7:12","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1756:85:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11294,"nodeType":"ExpressionStatement","src":"1756:85:12"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11295,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2070:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":11296,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11281,"src":"2075:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2070:8:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11298,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2082:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11299,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11283,"src":"2087:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2082:8:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2070:20:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11304,"nodeType":"IfStatement","src":"2066:34:12","trueBody":{"expression":{"id":11302,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2099:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11287,"id":11303,"nodeType":"Return","src":"2092:8:12"}},{"assignments":[11306],"declarations":[{"constant":false,"id":11306,"mutability":"mutable","name":"size","nameLocation":"2119:4:12","nodeType":"VariableDeclaration","scope":11406,"src":"2111:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11305,"name":"uint256","nodeType":"ElementaryTypeName","src":"2111:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11312,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11307,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11283,"src":"2126:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11308,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11281,"src":"2132:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2126:9:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":11310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2138:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2126:13:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2111:28:12"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11313,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2329:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"33","id":11314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2334:1:12","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"2329:6:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11316,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11306,"src":"2339:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":11317,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2346:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2339:8:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2329:18:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11324,"nodeType":"IfStatement","src":"2325:38:12","trueBody":{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11320,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11281,"src":"2356:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11321,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2362:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2356:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11287,"id":11323,"nodeType":"Return","src":"2349:14:12"}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11325,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2377:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11328,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":11326,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11274,"src":"2382:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"33","id":11327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2396:1:12","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"2382:15:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2377:20:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11330,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11306,"src":"2401:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11331,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11274,"src":"2408:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11332,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2422:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2408:15:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2401:22:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2377:46:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11343,"nodeType":"IfStatement","src":"2373:82:12","trueBody":{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11336,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11283,"src":"2432:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11337,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11274,"src":"2439:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11338,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2453:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2439:15:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11340,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2438:17:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2432:23:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11287,"id":11342,"nodeType":"Return","src":"2425:30:12"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11344,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2555:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":11345,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11283,"src":"2559:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2555:7:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11374,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2734:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11375,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11281,"src":"2738:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2734:7:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11404,"nodeType":"IfStatement","src":"2730:173:12","trueBody":{"id":11403,"nodeType":"Block","src":"2743:160:12","statements":[{"assignments":[11378],"declarations":[{"constant":false,"id":11378,"mutability":"mutable","name":"diff","nameLocation":"2765:4:12","nodeType":"VariableDeclaration","scope":11403,"src":"2757:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11377,"name":"uint256","nodeType":"ElementaryTypeName","src":"2757:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11382,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11379,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11281,"src":"2772:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11380,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2778:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2772:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2757:22:12"},{"assignments":[11384],"declarations":[{"constant":false,"id":11384,"mutability":"mutable","name":"rem","nameLocation":"2801:3:12","nodeType":"VariableDeclaration","scope":11403,"src":"2793:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11383,"name":"uint256","nodeType":"ElementaryTypeName","src":"2793:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11388,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11385,"name":"diff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11378,"src":"2807:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":11386,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11306,"src":"2814:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2807:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2793:25:12"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11389,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11384,"src":"2836:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2843:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2836:8:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11394,"nodeType":"IfStatement","src":"2832:24:12","trueBody":{"expression":{"id":11392,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11281,"src":"2853:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11287,"id":11393,"nodeType":"Return","src":"2846:10:12"}},{"expression":{"id":11401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11395,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11286,"src":"2870:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11396,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11283,"src":"2879:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11397,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11384,"src":"2885:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2879:9:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":11399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2891:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2879:13:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2870:22:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11402,"nodeType":"ExpressionStatement","src":"2870:22:12"}]}},"id":11405,"nodeType":"IfStatement","src":"2551:352:12","trueBody":{"id":11373,"nodeType":"Block","src":"2564:160:12","statements":[{"assignments":[11348],"declarations":[{"constant":false,"id":11348,"mutability":"mutable","name":"diff","nameLocation":"2586:4:12","nodeType":"VariableDeclaration","scope":11373,"src":"2578:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11347,"name":"uint256","nodeType":"ElementaryTypeName","src":"2578:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11352,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11349,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"2593:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11350,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11283,"src":"2597:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2593:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2578:22:12"},{"assignments":[11354],"declarations":[{"constant":false,"id":11354,"mutability":"mutable","name":"rem","nameLocation":"2622:3:12","nodeType":"VariableDeclaration","scope":11373,"src":"2614:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11353,"name":"uint256","nodeType":"ElementaryTypeName","src":"2614:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11358,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11355,"name":"diff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11348,"src":"2628:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":11356,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11306,"src":"2635:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2628:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2614:25:12"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11359,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11354,"src":"2657:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2664:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2657:8:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11364,"nodeType":"IfStatement","src":"2653:24:12","trueBody":{"expression":{"id":11362,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11283,"src":"2674:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11287,"id":11363,"nodeType":"Return","src":"2667:10:12"}},{"expression":{"id":11371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11365,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11286,"src":"2691:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11366,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11281,"src":"2700:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11367,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11354,"src":"2706:3:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2700:9:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2712:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2700:13:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2691:22:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11372,"nodeType":"ExpressionStatement","src":"2691:22:12"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_bound","nameLocation":"1655:6:12","parameters":{"id":11284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11279,"mutability":"mutable","name":"x","nameLocation":"1670:1:12","nodeType":"VariableDeclaration","scope":11407,"src":"1662:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11278,"name":"uint256","nodeType":"ElementaryTypeName","src":"1662:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11281,"mutability":"mutable","name":"min","nameLocation":"1681:3:12","nodeType":"VariableD