UNPKG

@ollyswap/v2-periphery

Version:

🎚 Peripheral smart contracts for interacting with Ollyswap V2

218 lines • 97.8 kB
{ "abi": [ { "inputs": [ { "internalType": "address", "name": "factory_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "factory", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenA", "type": "address" }, { "internalType": "address", "name": "tokenB", "type": "address" }, { "internalType": "uint256", "name": "truePriceTokenA", "type": "uint256" }, { "internalType": "uint256", "name": "truePriceTokenB", "type": "uint256" }, { "internalType": "uint256", "name": "liquidityAmount", "type": "uint256" } ], "name": "getGasCostOfGetLiquidityValueAfterArbitrageToPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenA", "type": "address" }, { "internalType": "address", "name": "tokenB", "type": "address" }, { "internalType": "uint256", "name": "liquidityAmount", "type": "uint256" } ], "name": "getLiquidityValue", "outputs": [ { "internalType": "uint256", "name": "tokenAAmount", "type": "uint256" }, { "internalType": "uint256", "name": "tokenBAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenA", "type": "address" }, { "internalType": "address", "name": "tokenB", "type": "address" }, { "internalType": "uint256", "name": "truePriceTokenA", "type": "uint256" }, { "internalType": "uint256", "name": "truePriceTokenB", "type": "uint256" }, { "internalType": "uint256", "name": "liquidityAmount", "type": "uint256" } ], "name": "getLiquidityValueAfterArbitrageToPrice", "outputs": [ { "internalType": "uint256", "name": "tokenAAmount", "type": "uint256" }, { "internalType": "uint256", "name": "tokenBAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenA", "type": "address" }, { "internalType": "address", "name": "tokenB", "type": "address" }, { "internalType": "uint256", "name": "truePriceTokenA", "type": "uint256" }, { "internalType": "uint256", "name": "truePriceTokenB", "type": "uint256" } ], "name": "getReservesAfterArbitrage", "outputs": [ { "internalType": "uint256", "name": "reserveA", "type": "uint256" }, { "internalType": "uint256", "name": "reserveB", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ], "evm": { "bytecode": { "linkReferences": {}, "object": "60a060405234801561001057600080fd5b506040516114083803806114088339818101604052602081101561003357600080fd5b5051606081901b6001600160601b0319166080526001600160a01b031661138d61007b600039806101fa5280610238528061027b52806102b952806102e3525061138d6000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c806380caa3531161005057806380caa3531461011d578063c45a01551461017e578063d9b7a6e7146101af57610067565b80633558e94c1461006c57806369a2fcbd146100ce575b600080fd5b6100b56004803603608081101561008257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604081013590606001356101f2565b6040805192835260208301919091528051918290030190f35b6100b5600480360360a08110156100e457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060800135610230565b61016c600480360360a081101561013357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060800135610270565b60408051918252519081900360200190f35b6101866102b7565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100b5600480360360608110156101c557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356102db565b6000806102227f000000000000000000000000000000000000000000000000000000000000000087878787610316565b915091505b94509492505050565b6000806102617f000000000000000000000000000000000000000000000000000000000000000088888888886103f5565b915091505b9550959350505050565b6000805a90506102a47f000000000000000000000000000000000000000000000000000000000000000088888888886103f5565b505060005a909103979650505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008061030a7f0000000000000000000000000000000000000000000000000000000000000000868686610641565b91509150935093915050565b600080610324878787610824565b909250905081158015906103385750600081115b61038d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180611288602e913960400191505060405180910390fd5b60008061039c8686868661090c565b9150915080600014156103b157506102669050565b81156103d25760006103c48286866109f7565b9482019490930392506103e9565b60006103df8285876109f7565b9094039350918201915b50509550959350505050565b60008060008073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561045757600080fd5b505afa15801561046b573d6000803e3d6000fd5b505050506040513d602081101561048157600080fd5b505173ffffffffffffffffffffffffffffffffffffffff161415905060006104aa8a8a8a610b1b565b90506000826104ba57600061052d565b8173ffffffffffffffffffffffffffffffffffffffff16637464fc3d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561050057600080fd5b505afa158015610514573d6000803e3d6000fd5b505050506040513d602081101561052a57600080fd5b50515b905060008273ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561057757600080fd5b505afa15801561058b573d6000803e3d6000fd5b505050506040513d60208110156105a157600080fd5b505190508681108015906105b55750600087115b61060a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806113316027913960400191505060405180910390fd5b60008061061a8e8e8e8e8e610316565b9150915061062c8282858c8a89610c06565b97509750505050505050965096945050505050565b600080600080610652888888610824565b915091506000610663898989610b1b565b905060008073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b1580156106c457600080fd5b505afa1580156106d8573d6000803e3d6000fd5b505050506040513d60208110156106ee57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff161415905060008161071857600061078b565b8273ffffffffffffffffffffffffffffffffffffffff16637464fc3d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561075e57600080fd5b505afa158015610772573d6000803e3d6000fd5b505050506040513d602081101561078857600080fd5b50515b905060008373ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156107d557600080fd5b505afa1580156107e9573d6000803e3d6000fd5b505050506040513d60208110156107ff57600080fd5b505190506108118686838c8787610c06565b9750975050505050505094509492505050565b60008060006108338585610cdf565b509050600080610844888888610b1b565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561088957600080fd5b505afa15801561089d573d6000803e3d6000fd5b505050506040513d60608110156108b357600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff878116908416146108fa5780826108fd565b81815b90999098509650505050505050565b6000808561091b858786610e32565b1091506000610930858563ffffffff610f0716565b9050600061098261097d61094c846103e863ffffffff610f0716565b866109575789610959565b8a5b6109786103e58961096a578d61096c565b8c5b9063ffffffff610f0716565b610e32565b610f93565b905060006103e5856109a5576109a0876103e863ffffffff610f0716565b6109b7565b6109b7886103e863ffffffff610f0716565b816109be57fe5b049050808210156109d9575060009350839250610227915050565b6109e9828263ffffffff6110e816565b935050505094509492505050565b6000808411610a51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806112dc602c913960400191505060405180910390fd5b600083118015610a615750600082115b610ab6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806113086029913960400191505060405180910390fd5b6000610aca856103e563ffffffff610f0716565b90506000610ade828563ffffffff610f0716565b90506000610b0483610af8886103e863ffffffff610f0716565b9063ffffffff61115a16565b9050808281610b0f57fe5b04979650505050505050565b6000806000610b2a8585610cdf565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b600080838015610c165750600083115b15610c9e576000610c3061097d8a8a63ffffffff610f0716565b90506000610c3d85610f93565b905080821115610c9b57876000610c5a848463ffffffff6110e816565b90506000610c7384610af887600563ffffffff610f0716565b90506000610c82848484610e32565b9050610c948c8263ffffffff61115a16565b9b50505050505b50505b85610caf898763ffffffff610f0716565b81610cb657fe5b0486610cc8898863ffffffff610f0716565b81610ccf57fe5b0491509150965096945050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610d67576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806112b66026913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610da1578284610da4565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610e2b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4f6c6c797377617056324c6962726172793a205a45524f5f4144445245535300604482015290519081900360640190fd5b9250929050565b6000806000610e4186866111cc565b9150915060008480610e4f57fe5b868809905082811115610e63576001820391505b918290039181610e8157848381610e7657fe5b049350505050610f00565b848210610eef57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f46756c6c4d6174683a2046554c4c4449565f4f564552464c4f57000000000000604482015290519081900360640190fd5b610efa838387611217565b93505050505b9392505050565b6000811580610f2257505080820282828281610f1f57fe5b04145b610f8d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b600081610fa2575060006110e3565b8160017001000000000000000000000000000000008210610fc85760809190911c9060401b5b680100000000000000008210610fe35760409190911c9060201b5b6401000000008210610ffa5760209190911c9060101b5b62010000821061100f5760109190911c9060081b5b61010082106110235760089190911c9060041b5b601082106110365760049190911c9060021b5b600882106110425760011b5b600181858161104d57fe5b048201901c9050600181858161105f57fe5b048201901c9050600181858161107157fe5b048201901c9050600181858161108357fe5b048201901c9050600181858161109557fe5b048201901c905060018185816110a757fe5b048201901c905060018185816110b957fe5b048201901c905060008185816110cb57fe5b0490508082106110db57806110dd565b815b93505050505b919050565b80820382811115610f8d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b80820182811015610f8d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8486099050838502925082810391508281101561120f576001820391505b509250929050565b6000818103821680838161122757fe5b04925080858161123357fe5b04945080816000038161124257fe5b6002858103808702820302808702820302808702820302808702820302808702820302808702820302958602900390940293046001019390930293909301029291505056fe4f6c6c797377617056324172626974726167654c6962726172793a205a45524f5f504149525f52455345525645534f6c6c797377617056324c6962726172793a204944454e544943414c5f4144445245535345534f6c6c797377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e544f6c6c797377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459436f6d707574654c697175696469747956616c75653a204c49515549444954595f414d4f554e54a2646970667358221220ba5405e91c04f834bfc43183d3308c52d759f12e936ab42779e0c81f4ce074cb64736f6c63430006060033", "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1408 CODESIZE SUB DUP1 PUSH2 0x1408 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x60 DUP2 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0x80 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x138D PUSH2 0x7B PUSH1 0x0 CODECOPY DUP1 PUSH2 0x1FA MSTORE DUP1 PUSH2 0x238 MSTORE DUP1 PUSH2 0x27B MSTORE DUP1 PUSH2 0x2B9 MSTORE DUP1 PUSH2 0x2E3 MSTORE POP PUSH2 0x138D PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x67 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x80CAA353 GT PUSH2 0x50 JUMPI DUP1 PUSH4 0x80CAA353 EQ PUSH2 0x11D JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x17E JUMPI DUP1 PUSH4 0xD9B7A6E7 EQ PUSH2 0x1AF JUMPI PUSH2 0x67 JUMP JUMPDEST DUP1 PUSH4 0x3558E94C EQ PUSH2 0x6C JUMPI DUP1 PUSH4 0x69A2FCBD EQ PUSH2 0xCE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB5 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 ADD CALLDATALOAD PUSH2 0x1F2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST PUSH2 0xB5 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0xE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x230 JUMP JUMPDEST PUSH2 0x16C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x133 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x270 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x186 PUSH2 0x2B7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xB5 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x2DB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x222 PUSH32 0x0 DUP8 DUP8 DUP8 DUP8 PUSH2 0x316 JUMP JUMPDEST SWAP2 POP SWAP2 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x261 PUSH32 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x3F5 JUMP JUMPDEST SWAP2 POP SWAP2 POP JUMPDEST SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 GAS SWAP1 POP PUSH2 0x2A4 PUSH32 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x3F5 JUMP JUMPDEST POP POP PUSH1 0x0 GAS SWAP1 SWAP2 SUB SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x30A PUSH32 0x0 DUP7 DUP7 DUP7 PUSH2 0x641 JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x324 DUP8 DUP8 DUP8 PUSH2 0x824 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP DUP2 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x338 JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST PUSH2 0x38D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2E DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1288 PUSH1 0x2E SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x39C DUP7 DUP7 DUP7 DUP7 PUSH2 0x90C JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 PUSH1 0x0 EQ ISZERO PUSH2 0x3B1 JUMPI POP PUSH2 0x266 SWAP1 POP JUMP JUMPDEST DUP2 ISZERO PUSH2 0x3D2 JUMPI PUSH1 0x0 PUSH2 0x3C4 DUP3 DUP7 DUP7 PUSH2 0x9F7 JUMP JUMPDEST SWAP5 DUP3 ADD SWAP5 SWAP1 SWAP4 SUB SWAP3 POP PUSH2 0x3E9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3DF DUP3 DUP6 DUP8 PUSH2 0x9F7 JUMP JUMPDEST SWAP1 SWAP5 SUB SWAP4 POP SWAP2 DUP3 ADD SWAP2 JUMPDEST POP POP SWAP6 POP SWAP6 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x17E7E58 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x457 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x46B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x481 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP PUSH1 0x0 PUSH2 0x4AA DUP11 DUP11 DUP11 PUSH2 0xB1B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH2 0x4BA JUMPI PUSH1 0x0 PUSH2 0x52D JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x7464FC3D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x500 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x514 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x52A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x577 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x58B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP7 DUP2 LT DUP1 ISZERO SWAP1 PUSH2 0x5B5 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST PUSH2 0x60A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1331 PUSH1 0x27 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x61A DUP15 DUP15 DUP15 DUP15 DUP15 PUSH2 0x316 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x62C DUP3 DUP3 DUP6 DUP13 DUP11 DUP10 PUSH2 0xC06 JUMP JUMPDEST SWAP8 POP SWAP8 POP POP POP POP POP POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x652 DUP9 DUP9 DUP9 PUSH2 0x824 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x663 DUP10 DUP10 DUP10 PUSH2 0xB1B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x17E7E58 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6D8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x6EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP PUSH1 0x0 DUP2 PUSH2 0x718 JUMPI PUSH1 0x0 PUSH2 0x78B JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x7464FC3D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x75E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x772 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x788 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST SWAP1 POP PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x18160DDD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7D5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x7FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH2 0x811 DUP7 DUP7 DUP4 DUP13 DUP8 DUP8 PUSH2 0xC06 JUMP JUMPDEST SWAP8 POP SWAP8 POP POP POP POP POP POP POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x833 DUP6 DUP6 PUSH2 0xCDF JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x844 DUP9 DUP9 DUP9 PUSH2 0xB1B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x902F1AC PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x889 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x89D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x8B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP4 POP AND SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 DUP2 AND SWAP1 DUP5 AND EQ PUSH2 0x8FA JUMPI DUP1 DUP3 PUSH2 0x8FD JUMP JUMPDEST DUP2 DUP2 JUMPDEST SWAP1 SWAP10 SWAP1 SWAP9 POP SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH2 0x91B DUP6 DUP8 DUP7 PUSH2 0xE32 JUMP JUMPDEST LT SWAP2 POP PUSH1 0x0 PUSH2 0x930 DUP6 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xF07 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x982 PUSH2 0x97D PUSH2 0x94C DUP5 PUSH2 0x3E8 PUSH4 0xFFFFFFFF PUSH2 0xF07 AND JUMP JUMPDEST DUP7 PUSH2 0x957 JUMPI DUP10 PUSH2 0x959 JUMP JUMPDEST DUP11 JUMPDEST PUSH2 0x978 PUSH2 0x3E5 DUP10 PUSH2 0x96A JUMPI DUP14 PUSH2 0x96C JUMP JUMPDEST DUP13 JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF07 AND JUMP JUMPDEST PUSH2 0xE32 JUMP JUMPDEST PUSH2 0xF93 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3E5 DUP6 PUSH2 0x9A5 JUMPI PUSH2 0x9A0 DUP8 PUSH2 0x3E8 PUSH4 0xFFFFFFFF PUSH2 0xF07 AND JUMP JUMPDEST PUSH2 0x9B7 JUMP JUMPDEST PUSH2 0x9B7 DUP9 PUSH2 0x3E8 PUSH4 0xFFFFFFFF PUSH2 0xF07 AND JUMP JUMPDEST DUP2 PUSH2 0x9BE JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 DUP3 LT ISZERO PUSH2 0x9D9 JUMPI POP PUSH1 0x0 SWAP4 POP DUP4 SWAP3 POP PUSH2 0x227 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x9E9 DUP3 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x10E8 AND JUMP JUMPDEST SWAP4 POP POP POP POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xA51 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x12DC PUSH1 0x2C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xA61 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xAB6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x29 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1308 PUSH1 0x29 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xACA DUP6 PUSH2 0x3E5 PUSH4 0xFFFFFFFF PUSH2 0xF07 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xADE DUP3 DUP6 PUSH4 0xFFFFFFFF PUSH2 0xF07 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB04 DUP4 PUSH2 0xAF8 DUP9 PUSH2 0x3E8 PUSH4 0xFFFFFFFF PUSH2 0xF07 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x115A AND JUMP JUMPDEST SWAP1 POP DUP1 DUP3 DUP2 PUSH2 0xB0F JUMPI INVALID JUMPDEST DIV SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xB2A DUP6 DUP6 PUSH2 0xCDF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0x96E8AC4277198FF8B6F785478AA9A39F403CB768DD02CBEE326C3E7DA348845F PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 DUP1 ISZERO PUSH2 0xC16 JUMPI POP PUSH1 0x0 DUP4 GT JUMPDEST ISZERO PUSH2 0xC9E JUMPI PUSH1 0x0 PUSH2 0xC30 PUSH2 0x97D DUP11 DUP11 PUSH4 0xFFFFFFFF PUSH2 0xF07 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xC3D DUP6 PUSH2 0xF93 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xC9B JUMPI DUP8 PUSH1 0x0 PUSH2 0xC5A DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x10E8 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xC73 DUP5 PUSH2 0xAF8 DUP8 PUSH1 0x5 PUSH4 0xFFFFFFFF PUSH2 0xF07 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xC82 DUP5 DUP5 DUP5 PUSH2 0xE32 JUMP JUMPDEST SWAP1 POP PUSH2 0xC94 DUP13 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x115A AND JUMP JUMPDEST SWAP12 POP POP POP POP POP JUMPDEST POP POP JUMPDEST DUP6 PUSH2 0xCAF DUP10 DUP8 PUSH4 0xFFFFFFFF PUSH2 0xF07 AND JUMP JUMPDEST DUP2 PUSH2 0xCB6 JUMPI INVALID JUMPDEST DIV DUP7 PUSH2 0xCC8 DUP10 DUP9 PUSH4 0xFFFFFFFF PUSH2 0xF07 AND JUMP JUMPDEST DUP2 PUSH2 0xCCF JUMPI INVALID JUMPDEST DIV SWAP2 POP SWAP2 POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xD67 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x12B6 PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0xDA1 JUMPI DUP3 DUP5 PUSH2 0xDA4 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0xE2B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6C6C797377617056324C6962726172793A205A45524F5F4144445245535300 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xE41 DUP7 DUP7 PUSH2 0x11CC JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP5 DUP1 PUSH2 0xE4F JUMPI INVALID JUMPDEST DUP7 DUP9 MULMOD SWAP1 POP DUP3 DUP2 GT ISZERO PUSH2 0xE63 JUMPI PUSH1 0x1 DUP3 SUB SWAP2 POP JUMPDEST SWAP2 DUP3 SWAP1 SUB SWAP2 DUP2 PUSH2 0xE81 JUMPI DUP5 DUP4 DUP2 PUSH2 0xE76 JUMPI INVALID JUMPDEST DIV SWAP4 POP POP POP POP PUSH2 0xF00 JUMP JUMPDEST DUP5 DUP3 LT PUSH2 0xEEF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x46756C6C4D6174683A2046554C4C4449565F4F564552464C4F57000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xEFA DUP4 DUP4 DUP8 PUSH2 0x1217 JUMP JUMPDEST SWAP4 POP POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO DUP1 PUSH2 0xF22 JUMPI POP POP DUP1 DUP3 MUL DUP3 DUP3 DUP3 DUP2 PUSH2 0xF1F JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0xF8D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6D756C2D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xFA2 JUMPI POP PUSH1 0x0 PUSH2 0x10E3 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH17 0x100000000000000000000000000000000 DUP3 LT PUSH2 0xFC8 JUMPI PUSH1 0x80 SWAP2 SWAP1 SWAP2 SHR SWAP1 PUSH1 0x40 SHL JUMPDEST PUSH9 0x10000000000000000 DUP3 LT PUSH2 0xFE3 JUMPI PUSH1 0x40 SWAP2 SWAP1 SWAP2 SHR SWAP1 PUSH1 0x20 SHL JUMPDEST PUSH5 0x100000000 DUP3 LT PUSH2 0xFFA JUMPI PUSH1 0x20 SWAP2 SWAP1 SWAP2 SHR SWAP1 PUSH1 0x10 SHL JUMPDEST PUSH3 0x10000 DUP3 LT PUSH2 0x100F JUMPI PUSH1 0x10 SWAP2 SWAP1 SWAP2 SHR SWAP1 PUSH1 0x8 SHL JUMPDEST PUSH2 0x100 DUP3 LT PUSH2 0x1023 JUMPI PUSH1 0x8 SWAP2 SWAP1 SWAP2 SHR SWAP1 PUSH1 0x4 SHL JUMPDEST PUSH1 0x10 DUP3 LT PUSH2 0x1036 JUMPI PUSH1 0x4 SWAP2 SWAP1 SWAP2 SHR SWAP1 PUSH1 0x2 SHL JUMPDEST PUSH1 0x8 DUP3 LT PUSH2 0x1042 JUMPI PUSH1 0x1 SHL JUMPDEST PUSH1 0x1 DUP2 DUP6 DUP2 PUSH2 0x104D JUMPI INVALID JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP6 DUP2 PUSH2 0x105F JUMPI INVALID JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP6 DUP2 PUSH2 0x1071 JUMPI INVALID JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP6 DUP2 PUSH2 0x1083 JUMPI INVALID JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP6 DUP2 PUSH2 0x1095 JUMPI INVALID JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP6 DUP2 PUSH2 0x10A7 JUMPI INVALID JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x1 DUP2 DUP6 DUP2 PUSH2 0x10B9 JUMPI INVALID JUMPDEST DIV DUP3 ADD SWAP1 SHR SWAP1 POP PUSH1 0x0 DUP2 DUP6 DUP2 PUSH2 0x10CB JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 DUP3 LT PUSH2 0x10DB JUMPI DUP1 PUSH2 0x10DD JUMP JUMPDEST DUP2 JUMPDEST SWAP4 POP POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0xF8D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D7375622D756E646572666C6F770000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0xF8D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 DUP7 MULMOD SWAP1 POP DUP4 DUP6 MUL SWAP3 POP DUP3 DUP2 SUB SWAP2 POP DUP3 DUP2 LT ISZERO PUSH2 0x120F JUMPI PUSH1 0x1 DUP3 SUB SWAP2 POP JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 SUB DUP3 AND DUP1 DUP4 DUP2 PUSH2 0x1227 JUMPI INVALID JUMPDEST DIV SWAP3 POP DUP1 DUP6 DUP2 PUSH2 0x1233 JUMPI INVALID JUMPDEST DIV SWAP5 POP DUP1 DUP2 PUSH1 0x0 SUB DUP2 PUSH2 0x1242 JUMPI INVALID JUMPDEST PUSH1 0x2 DUP6 DUP2 SUB DUP1 DUP8 MUL DUP3 SUB MUL DUP1 DUP8 MUL DUP3 SUB MUL DUP1 DUP8 MUL DUP3 SUB MUL DUP1 DUP8 MUL DUP3 SUB MUL DUP1 DUP8 MUL DUP3 SUB MUL DUP1 DUP8 MUL DUP3 SUB MUL SWAP6 DUP7 MUL SWAP1 SUB SWAP1 SWAP5 MUL SWAP4 DIV PUSH1 0x1 ADD SWAP4 SWAP1 SWAP4 MUL SWAP4 SWAP1 SWAP4 ADD MUL SWAP3 SWAP2 POP POP JUMP INVALID 0x4F PUSH13 0x6C797377617056324172626974 PUSH19 0x6167654C6962726172793A205A45524F5F5041 0x49 MSTORE 0x5F MSTORE GASLIMIT MSTORE8 GASLIMIT MSTORE JUMP GASLIMIT MSTORE8 0x4F PUSH13 0x6C797377617056324C69627261 PUSH19 0x793A204944454E544943414C5F414444524553 MSTORE8 GASLIMIT MSTORE8 0x4F PUSH13 0x6C797377617056324C69627261 PUSH19 0x793A20494E53554646494349454E545F494E50 SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD 0x4F PUSH13 0x6C797377617056324C69627261 PUSH19 0x793A20494E53554646494349454E545F4C4951 SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE NUMBER PUSH16 0x6D707574654C69717569646974795661 PUSH13 0x75653A204C4951554944495459 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBA SLOAD SDIV 0xE9 SHR DIV 0xF8 CALLVALUE 0xBF 0xC4 BALANCE DUP4 0xD3 ADDRESS DUP13 MSTORE 0xD7 MSIZE CALL 0x2E SWAP4 PUSH11 0xB42779E0C81F4CE074CB64 PUSH20 0x6F6C634300060600330000000000000000000000 ", "sourceMap": "84:2440:11:-:0;;;200:72;5:9:-1;2:2;;;27:1;24;17:12;2:2;200:72:11;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;200:72:11;247:18;;;;-1:-1:-1;;;;;;247:18:11;;;-1:-1:-1;;;;;84:2440:11;;;;;;;;" }, "deployedBytecode": { "immutableReferences": { "5483": [ { "length": 32, "start": 506 }, { "length": 32, "start": 568 }, { "length": 32, "start": 635 }, { "length": 32, "start": 697 }, { "length": 32, "start": 739 } ] }, "linkReferences": {}, "object": "608060405234801561001057600080fd5b50600436106100675760003560e01c806380caa3531161005057806380caa3531461011d578063c45a01551461017e578063d9b7a6e7146101af57610067565b80633558e94c1461006c57806369a2fcbd146100ce575b600080fd5b6100b56004803603608081101561008257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604081013590606001356101f2565b6040805192835260208301919091528051918290030190f35b6100b5600480360360a08110156100e457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060800135610230565b61016c600480360360a081101561013357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060800135610270565b60408051918252519081900360200190f35b6101866102b7565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100b5600480360360608110156101c557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356102db565b6000806102227f000000000000000000000000000000000000000000000000000000000000000087878787610316565b915091505b94509492505050565b6000806102617f000000000000000000000000000000000000000000000000000000000000000088888888886103f5565b915091505b9550959350505050565b6000805a90506102a47f000000000000000000000000000000000000000000000000000000000000000088888888886103f5565b505060005a909103979650505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008061030a7f0000000000000000000000000000000000000000000000000000000000000000868686610641565b91509150935093915050565b600080610324878787610824565b909250905081158015906103385750600081115b61038d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180611288602e913960400191505060405180910390fd5b60008061039c8686868661090c565b9150915080600014156103b157506102669050565b81156103d25760006103c48286866109f7565b9482019490930392506103e9565b60006103df8285876109f7565b9094039350918201915b50509550959350505050565b60008060008073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561045757600080fd5b505afa15801561046b573d6000803e3d6000fd5b505050506040513d602081101561048157600080fd5b505173ffffffffffffffffffffffffffffffffffffffff161415905060006104aa8a8a8a610b1b565b90506000826104ba57600061052d565b8173ffffffffffffffffffffffffffffffffffffffff16637464fc3d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561050057600080fd5b505afa158015610514573d6000803e3d6000fd5b505050506040513d602081101561052a57600080fd5b50515b905060008273ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561057757600080fd5b505afa15801561058b573d6000803e3d6000fd5b505050506040513d60208110156105a157600080fd5b505190508681108015906105b55750600087115b61060a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806113316027913960400191505060405180910390fd5b60008061061a8e8e8e8e8e610316565b9150915061062c8282858c8a89610c06565b97509750505050505050965096945050505050565b600080600080610652888888610824565b915091506000610663898989610b1b565b905060008073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b1580156106c457600080fd5b505afa1580156106d8573d6000803e3d6000fd5b505050506040513d60208110156106ee57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff161415905060008161071857600061078b565b8273ffffffffffffffffffffffffffffffffffffffff16637464fc3d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561075e57600080fd5b505afa158015610772573d6000803e3d6000fd5b505050506040513d602081101561078857600080fd5b50515b905060008373ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156107d557600080fd5b505afa1580156107e9573d6000803e3d6000fd5b505050506040513d60208110156107ff57600080fd5b505190506108118686838c8787610c06565b9750975050505050505094509492505050565b60008060006108338585610cdf565b509050600080610844888888610b1b565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561088957600080fd5b505afa15801561089d573d6000803e3d6000fd5b505050506040513d60608110156108b357600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff878116908416146108fa5780826108fd565b81815b90999098509650505050505050565b6000808561091b858786610e32565b1091506000610930858563ffffffff610f0716565b9050600061098261097d61094c846103e863ffffffff610f0716565b866109575789610959565b8a5b6109786103e58961096a578d61096c565b8c5b9063ffffffff610f0716565b610e32565b610f93565b905060006103e5856109a5576109a0876103e863ffffffff610f0716565b6109b7565b6109b7886103e863ffffffff610f0716565b816109be57fe5b049050808210156109d9575060009350839250610227915050565b6109e9828263ffffffff6110e816565b935050505094509492505050565b6000808411610a51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806112dc602c913960400191505060405180910390fd5b600083118015610a615750600082115b610ab6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806113086029913960400191505060405180910390fd5b6000610aca856103e563ffffffff610f0716565b90506000610ade828563ffffffff610f0716565b90506000610b0483610af8886103e863ffffffff610f0716565b9063ffffffff61115a16565b9050808281610b0f57fe5b04979650505050505050565b6000806000610b2a8585610cdf565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b600080838015610c165750600083115b15610c9e576000610c3061097d8a8a63ffffffff610f0716565b90506000610c3d85610f93565b905080821115610c9b57876000610c5a848463ffffffff6110e816565b90506000610c7384610af887600563ffffffff610f0716565b90506000610c82848484610e32565b9050610c948c8263ffffffff61115a16565b9b50505050505b50505b85610caf898763ffffffff610f0716565b81610cb657fe5b0486610cc8898863ffffffff610f0716565b81610ccf57fe5b0491509150965096945050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610d67576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806112b66026913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610da1578284610da4565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610e2b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4f6c6c797377617056324c6962726172793a205a45524f5f4144445245535300604482015290519081900360640190fd5b9250929050565b6000806000610e4186866111cc565b9150915060008480610e4f57fe5b868809905082811115610e63576001820391505b918290039181610e8157848381610e7657fe5b049350505050610f00565b848210610eef57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f46756c6c4d6174683a2046554c4c4449565f4f564552464c4f57000000000000604482015290519081900360640190fd5b610efa838387611217565b93505050505b9392505050565b6000811580610f2257505080820282828281610f1f57fe5b04145b610f8d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b600081610fa2575060006110e3565b8160017001000000000000000000000000000000008210610fc85760809190911c9060401b5b680100000000000000008210610fe35760409190911c9060201b5b6401000000008210610ffa5760209190911c9060101b5b62010000821061100f5760109190911c9060081b5b61010082106110235760089190911c9060041b5b601082106110365760049190911c9060021b5b600882106110425760011b5b600181858161104d57fe5b048201901c9050600181858161105f57fe5b048201901c9050600181858161107157fe5b048201901c9050600181858161108357fe5b048201901c9050600181858161109557fe5b048201901c905060018185816110a757fe5b048201901c905060018185816110b957fe5b048201901c905060008185816110cb57fe5b0490508082106110db57806110dd565b815b93505050505b919050565b80820382811115610f8d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b80820182811015610f8d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8486099050838502925082810391508281101561120f576001820391505b509250929050565b6000818103821680838161122757fe5b04925080858161123357fe5b04945080816000038161124257fe5b6002858103808702820302808702820302808702820302808702820302808702820302808702820302958602900390940293046001019390930293909301029291505056fe4f6c6c797377617056324172626974726167654c6962726172793a205a45524f5f504149525f52455345525645534f6c6c797377617056324c6962726172793a204944454e544943414c5f4144445245535345534f6c6c797377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e544f6c6c797377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459436f6d707574654c697175696469747956616c75653a204c49515549444954595f414d4f554e54a2646970667358221220ba5405e91c04f834bfc43183d3308c52d759f12e936ab42779e0c81f4ce074cb64736f6c63430006060033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x67 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x80CAA353 GT PUSH2 0x50 JUMPI DUP1 PUSH4 0x80CAA353 EQ PUSH2 0x11D JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x17E JUMPI DUP1 PUSH4 0xD9B7A6E7 EQ PUSH2 0x1AF JUMPI PUSH2 0x67 JUMP JUMPDEST DUP1 PUSH4 0x3558E94C EQ PUSH2 0x6C JUMPI DUP1 PUSH4 0x69A2FCBD EQ PUSH2 0xCE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB5 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 ADD CALLDATALOAD PUSH2 0x1F2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST PUSH2 0xB5 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0xE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x230 JUMP JUMPDEST PUSH2 0x16C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0x133 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x80 ADD CALLDATALOAD PUSH2 0x270 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x186 PUSH2 0x2B7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xB5 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x2DB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x222 PUSH32 0x0 DUP8 DUP8 DUP8 DUP8 PUSH2 0x316 JUMP JUMPDEST SWAP2 POP SWAP2 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x261 PUSH32 0x0 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x3F5 JUMP JUMPDEST SWAP2 POP SWAP2 POP JUMP