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.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/StdUtils.sol\":\"StdUtils\"},\"evmVersion\":\"shanghai\",\"libraries\":{\"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.20+commit.a1b79de6"},"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":"shanghai","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":11976,"exportedSymbols":{"IMulticall3":[32461],"MockERC20":[33038],"MockERC721":[33643],"StdUtils":[11975],"VmSafe":[15231]},"nodeType":"SourceUnit","src":"32:10624:11","nodes":[{"id":11191,"nodeType":"PragmaDirective","src":"32:31:11","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":11192,"nodeType":"PragmaDirective","src":"65:33:11","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":11194,"nodeType":"ImportDirective","src":"100:57:11","nodes":[],"absolutePath":"lib/forge-std/src/interfaces/IMulticall3.sol","file":"./interfaces/IMulticall3.sol","nameLocation":"-1:-1:-1","scope":11976,"sourceUnit":32462,"symbolAliases":[{"foreign":{"id":11193,"name":"IMulticall3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32461,"src":"108:11:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11196,"nodeType":"ImportDirective","src":"158:48:11","nodes":[],"absolutePath":"lib/forge-std/src/mocks/MockERC20.sol","file":"./mocks/MockERC20.sol","nameLocation":"-1:-1:-1","scope":11976,"sourceUnit":33039,"symbolAliases":[{"foreign":{"id":11195,"name":"MockERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33038,"src":"166:9:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11198,"nodeType":"ImportDirective","src":"207:50:11","nodes":[],"absolutePath":"lib/forge-std/src/mocks/MockERC721.sol","file":"./mocks/MockERC721.sol","nameLocation":"-1:-1:-1","scope":11976,"sourceUnit":33658,"symbolAliases":[{"foreign":{"id":11197,"name":"MockERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33643,"src":"215:10:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11200,"nodeType":"ImportDirective","src":"258:32:11","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":11976,"sourceUnit":15819,"symbolAliases":[{"foreign":{"id":11199,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15231,"src":"266:6:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11975,"nodeType":"ContractDefinition","src":"292:10363:11","nodes":[{"id":11206,"nodeType":"VariableDeclaration","src":"535:96:11","nodes":[],"constant":true,"mutability":"constant","name":"multicall","nameLocation":"564:9:11","scope":11975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMulticall3_$32461","typeString":"contract IMulticall3"},"typeName":{"id":11202,"nodeType":"UserDefinedTypeName","pathNode":{"id":11201,"name":"IMulticall3","nameLocations":["535:11:11"],"nodeType":"IdentifierPath","referencedDeclaration":32461,"src":"535:11:11"},"referencedDeclaration":32461,"src":"535:11:11","typeDescriptions":{"typeIdentifier":"t_contract$_IMulticall3_$32461","typeString":"contract IMulticall3"}},"value":{"arguments":[{"hexValue":"307863413131626465303539373762333633313136373032383836326245326131373339373643413131","id":11204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"588:42:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xcA11bde05977b3631167028862bE2a173976CA11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11203,"name":"IMulticall3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32461,"src":"576:11:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMulticall3_$32461_$","typeString":"type(contract IMulticall3)"}},"id":11205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"576:55:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMulticall3_$32461","typeString":"contract IMulticall3"}},"visibility":"private"},{"id":11223,"nodeType":"VariableDeclaration","src":"637:92:11","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"661:2:11","scope":11975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15231","typeString":"contract VmSafe"},"typeName":{"id":11208,"nodeType":"UserDefinedTypeName","pathNode":{"id":11207,"name":"VmSafe","nameLocations":["637:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":15231,"src":"637:6:11"},"referencedDeclaration":15231,"src":"637:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15231","typeString":"contract VmSafe"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":11217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"707:17:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":11216,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"697:9:11","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"697:28:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"689:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11214,"name":"uint256","nodeType":"ElementaryTypeName","src":"689:7:11","typeDescriptions":{}}},"id":11219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"689:37:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"681:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":11212,"name":"uint160","nodeType":"ElementaryTypeName","src":"681:7:11","typeDescriptions":{}}},"id":11220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"681:46:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":11211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"673:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11210,"name":"address","nodeType":"ElementaryTypeName","src":"673:7:11","typeDescriptions":{}}},"id":11221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"673:55:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11209,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15231,"src":"666:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$15231_$","typeString":"type(contract VmSafe)"}},"id":11222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"666:63:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15231","typeString":"contract VmSafe"}},"visibility":"private"},{"id":11226,"nodeType":"VariableDeclaration","src":"735:86:11","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE2_ADDRESS","nameLocation":"760:16:11","scope":11975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11224,"name":"address","nodeType":"ElementaryTypeName","src":"735:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":11225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"779:42:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"private"},{"id":11229,"nodeType":"VariableDeclaration","src":"827:127:11","nodes":[],"constant":true,"mutability":"constant","name":"INT256_MIN_ABS","nameLocation":"852:14:11","scope":11975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11227,"name":"uint256","nodeType":"ElementaryTypeName","src":"827:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3537383936303434363138363538303937373131373835343932353034333433393533393236363334393932333332383230323832303139373238373932303033393536353634383139393638","id":11228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"877:77:11","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"value":"57896044618658097711785492504343953926634992332820282019728792003956564819968"},"visibility":"private"},{"id":11232,"nodeType":"VariableDeclaration","src":"960:129:11","nodes":[],"constant":true,"mutability":"constant","name":"SECP256K1_ORDER","nameLocation":"985:15:11","scope":11975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11230,"name":"uint256","nodeType":"ElementaryTypeName","src":"960:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383532383337353634323739303734393034333832363035313633313431353138313631343934333337","id":11231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1011:78:11","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907852837564279074904382605163141518161494337_by_1","typeString":"int_const 1157...(70 digits omitted)...4337"},"value":"115792089237316195423570985008687907852837564279074904382605163141518161494337"},"visibility":"private"},{"id":11235,"nodeType":"VariableDeclaration","src":"1095:125:11","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"1120:11:11","scope":11975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11233,"name":"uint256","nodeType":"ElementaryTypeName","src":"1095:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":11234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1142:78:11","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"private"},{"id":11238,"nodeType":"VariableDeclaration","src":"1339:85:11","nodes":[],"constant":true,"mutability":"constant","name":"CREATE2_FACTORY","nameLocation":"1364:15:11","scope":11975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11236,"name":"address","nodeType":"ElementaryTypeName","src":"1339:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":11237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1382:42:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"visibility":"private"},{"id":11368,"nodeType":"FunctionDefinition","src":"1646:1263:11","nodes":[],"body":{"id":11367,"nodeType":"Block","src":"1746:1163:11","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11250,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"1764:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11251,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"1771:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1764:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374645574696c7320626f756e642875696e743235362c75696e743235362c75696e74323536293a204d6178206973206c657373207468616e206d696e2e","id":11253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1776:64:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_16c21f4eccdbbd49e5dc1331f271d929c25cafaf25207892b67e15553a16c5f2","typeString":"literal_string \"StdUtils bound(uint256,uint256,uint256): Max is less than min.\""},"value":"StdUtils bound(uint256,uint256,uint256): Max is less than min."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16c21f4eccdbbd49e5dc1331f271d929c25cafaf25207892b67e15553a16c5f2","typeString":"literal_string \"StdUtils bound(uint256,uint256,uint256): Max is less than min.\""}],"id":11249,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1756:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1756:85:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11255,"nodeType":"ExpressionStatement","src":"1756:85:11"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11256,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2070:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":11257,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2075:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2070:8:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11259,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2082:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11260,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"2087:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2082:8:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2070:20:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11265,"nodeType":"IfStatement","src":"2066:34:11","trueBody":{"expression":{"id":11263,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2099:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11248,"id":11264,"nodeType":"Return","src":"2092:8:11"}},{"assignments":[11267],"declarations":[{"constant":false,"id":11267,"mutability":"mutable","name":"size","nameLocation":"2119:4:11","nodeType":"VariableDeclaration","scope":11367,"src":"2111:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11266,"name":"uint256","nodeType":"ElementaryTypeName","src":"2111:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11273,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11268,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"2126:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11269,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2132:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2126:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":11271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2138:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2126:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2111:28:11"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11274,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2329:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"33","id":11275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2334:1:11","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"2329:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11277,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11267,"src":"2339:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":11278,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2346:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2339:8:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2329:18:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11285,"nodeType":"IfStatement","src":"2325:38:11","trueBody":{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11281,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2356:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11282,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2362:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2356:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11248,"id":11284,"nodeType":"Return","src":"2349:14:11"}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11286,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2377:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":11287,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11235,"src":"2382:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"33","id":11288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2396:1:11","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"2382:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2377:20:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11291,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11267,"src":"2401:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11292,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11235,"src":"2408:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11293,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2422:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2408:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2401:22:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2377:46:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11304,"nodeType":"IfStatement","src":"2373:82:11","trueBody":{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11297,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"2432:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11298,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11235,"src":"2439:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11299,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2453:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2439:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11301,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2438:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2432:23:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11248,"id":11303,"nodeType":"Return","src":"2425:30:11"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11305,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2555:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":11306,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"2559:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2555:7:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11335,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2734:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11336,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2738:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2734:7:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11365,"nodeType":"IfStatement","src":"2730:173:11","trueBody":{"id":11364,"nodeType":"Block","src":"2743:160:11","statements":[{"assignments":[11339],"declarations":[{"constant":false,"id":11339,"mutability":"mutable","name":"diff","nameLocation":"2765:4:11","nodeType":"VariableDeclaration","scope":11364,"src":"2757:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11338,"name":"uint256","nodeType":"ElementaryTypeName","src":"2757:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11343,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11340,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2772:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11341,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2778:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2772:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2757:22:11"},{"assignments":[11345],"declarations":[{"constant":false,"id":11345,"mutability":"mutable","name":"rem","nameLocation":"2801:3:11","nodeType":"VariableDeclaration","scope":11364,"src":"2793:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11344,"name":"uint256","nodeType":"ElementaryTypeName","src":"2793:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11349,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11346,"name":"diff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11339,"src":"2807:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":11347,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11267,"src":"2814:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2807:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2793:25:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11350,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11345,"src":"2836:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2843:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2836:8:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11355,"nodeType":"IfStatement","src":"2832:24:11","trueBody":{"expression":{"id":11353,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2853:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11248,"id":11354,"nodeType":"Return","src":"2846:10:11"}},{"expression":{"id":11362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11356,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11247,"src":"2870:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11357,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"2879:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11358,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11345,"src":"2885:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2879:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":11360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2891:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2879:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2870:22:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11363,"nodeType":"ExpressionStatement","src":"2870:22:11"}]}},"id":11366,"nodeType":"IfStatement","src":"2551:352:11","trueBody":{"id":11334,"nodeType":"Block","src":"2564:160:11","statements":[{"assignments":[11309],"declarations":[{"constant":false,"id":11309,"mutability":"mutable","name":"diff","nameLocation":"2586:4:11","nodeType":"VariableDeclaration","scope":11334,"src":"2578:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11308,"name":"uint256","nodeType":"ElementaryTypeName","src":"2578:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11313,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11310,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2593:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11311,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"2597:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2593:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2578:22:11"},{"assignments":[11315],"declarations":[{"constant":false,"id":11315,"mutability":"mutable","name":"rem","nameLocation":"2622:3:11","nodeType":"VariableDeclaration","scope":11334,"src":"2614:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11314,"name":"uint256","nodeType":"ElementaryTypeName","src":"2614:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11319,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11316,"name":"diff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11309,"src":"2628:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":11317,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11267,"src":"2635:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2628:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2614:25:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11320,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11315,"src":"2657:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2664:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2657:8:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11325,"nodeType":"IfStatement","src":"2653:24:11","trueBody":{"expression":{"id":11323,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"2674:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11248,"id":11324,"nodeType":"Return","src":"2667:10:11"}},{"expression":{"id":11332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11326,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11247,"src":"2691:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11327,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2700:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11328,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11315,"src":"2706:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2700:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2712:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2700:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2691:22:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11333,"nodeType":"ExpressionStatement","src":"2691:22:11"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_bound","nameLocation":"1655:6:11","parameters":{"id":11245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11240,"mutability":"mutable","name":"x","nameLocation":"1670:1:11","nodeType":"VariableDeclaration","scope":11368,"src":"1662:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11239,"name":"uint256","nodeType":"ElementaryTypeName","src":"1662:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11242,"mutability":"mutable","name":"min","nameLocation":"1681:3:11","nodeType":"VariableD