Skip to content

Instantly share code, notes, and snippets.

@falconz
Created July 22, 2023 13:28
Show Gist options
  • Save falconz/bc46d033b71e61f491d84812f9fbb49e to your computer and use it in GitHub Desktop.
Save falconz/bc46d033b71e61f491d84812f9fbb49e to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.6.12+commit.27d51765.js&optimize=false&runs=200&gist=
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220508452cef647f66cc35734b42afefce09e3998c1a3cf4edbbb3969cae384266564736f6c634300060c0033",
"opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 POP DUP5 MSTORE 0xCE 0xF6 SELFBALANCE 0xF6 PUSH13 0xC35734B42AFEFCE09E3998C1A3 0xCF 0x4E 0xDB 0xBB CODECOPY PUSH10 0xCAE384266564736F6C63 NUMBER STOP MOD 0xC STOP CALLER ",
"sourceMap": "25388:7865:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220508452cef647f66cc35734b42afefce09e3998c1a3cf4edbbb3969cae384266564736f6c634300060c0033",
"opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 POP DUP5 MSTORE 0xCE 0xF6 SELFBALANCE 0xF6 PUSH13 0xC35734B42AFEFCE09E3998C1A3 0xCF 0x4E 0xDB 0xBB CODECOPY PUSH10 0xCAE384266564736F6C63 NUMBER STOP MOD 0xC STOP CALLER ",
"sourceMap": "25388:7865:0:-:0;;;;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "17200",
"executionCost": "97",
"totalCost": "17297"
},
"internal": {
"_verifyCallResult(bool,bytes memory,string memory)": "infinite",
"functionCall(address,bytes memory)": "infinite",
"functionCall(address,bytes memory,string memory)": "infinite",
"functionCallWithValue(address,bytes memory,uint256)": "infinite",
"functionCallWithValue(address,bytes memory,uint256,string memory)": "infinite",
"functionDelegateCall(address,bytes memory)": "infinite",
"functionDelegateCall(address,bytes memory,string memory)": "infinite",
"functionStaticCall(address,bytes memory)": "infinite",
"functionStaticCall(address,bytes memory,string memory)": "infinite",
"isContract(address)": "infinite",
"sendValue(address payable,uint256)": "infinite"
}
},
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.6.12+commit.27d51765"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"details": "Collection of functions related to the address type",
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"immunefi/xx.sol": "Address"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"immunefi/xx.sol": {
"keccak256": "0x0237da454ff487d47f1302f0b833a28a4cedcb1c872e1a43c0646ec850ecccf7",
"license": "MIT",
"urls": [
"bzz-raw://aceee79175572ac8cc600b6735fa0d539878bab5f51df3b9753df96b0492e91d",
"dweb:/ipfs/Qmc3HyoRRZUN6f6sRtPFm58FzyvgLPX7bL5pvNenQtiu2h"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.6.12+commit.27d51765"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"immunefi/xx.sol": "Context"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"immunefi/xx.sol": {
"keccak256": "0x0237da454ff487d47f1302f0b833a28a4cedcb1c872e1a43c0646ec850ecccf7",
"license": "MIT",
"urls": [
"bzz-raw://aceee79175572ac8cc600b6735fa0d539878bab5f51df3b9753df96b0492e91d",
"dweb:/ipfs/Qmc3HyoRRZUN6f6sRtPFm58FzyvgLPX7bL5pvNenQtiu2h"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "60806040523480156200001157600080fd5b506040516200139f3803806200139f833981810160405260408110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b838201915060208201858111156200006f57600080fd5b82518660018202830111640100000000821117156200008d57600080fd5b8083526020830192505050908051906020019080838360005b83811015620000c3578082015181840152602081019050620000a6565b50505050905090810190601f168015620000f15780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011557600080fd5b838201915060208201858111156200012c57600080fd5b82518660018202830111640100000000821117156200014a57600080fd5b8083526020830192505050908051906020019080838360005b838110156200018057808201518184015260208101905062000163565b50505050905090810190601f168015620001ae5780820380516001836020036101000a031916815260200191505b506040525050508160039080519060200190620001cd9291906200020b565b508060049080519060200190620001e69291906200020b565b506012600560006101000a81548160ff021916908360ff1602179055505050620002b1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200024e57805160ff19168380011785556200027f565b828001600101855582156200027f579182015b828111156200027e57825182559160200191906001019062000261565b5b5090506200028e919062000292565b5090565b5b80821115620002ad57600081600090555060010162000293565b5090565b6110de80620002c16000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461025857806370a08231146102bc57806395d89b4114610314578063a457c2d714610397578063a9059cbb146103fb578063dd62ed3e1461045f576100a9565b806306fdde03146100ae578063095ea7b31461013157806318160ddd1461019557806323b872dd146101b3578063313ce56714610237575b600080fd5b6100b66104d7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610579565b60405180821515815260200191505060405180910390f35b61019d610597565b6040518082815260200191505060405180910390f35b61021f600480360360608110156101c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105a1565b60405180821515815260200191505060405180910390f35b61023f61067a565b604051808260ff16815260200191505060405180910390f35b6102a46004803603604081101561026e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610691565b60405180821515815260200191505060405180910390f35b6102fe600480360360208110156102d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610744565b6040518082815260200191505060405180910390f35b61031c61078c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561035c578082015181840152602081019050610341565b50505050905090810190601f1680156103895780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103e3600480360360408110156103ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061082e565b60405180821515815260200191505060405180910390f35b6104476004803603604081101561041157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108fb565b60405180821515815260200191505060405180910390f35b6104c16004803603604081101561047557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610919565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561056f5780601f106105445761010080835404028352916020019161056f565b820191906000526020600020905b81548152906001019060200180831161055257829003601f168201915b5050505050905090565b600061058d6105866109a0565b84846109a8565b6001905092915050565b6000600254905090565b60006105ae848484610b9f565b61066f846105ba6109a0565b61066a8560405180606001604052806028815260200161101360289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106206109a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e609092919063ffffffff16565b6109a8565b600190509392505050565b6000600560009054906101000a900460ff16905090565b600061073a61069e6109a0565b8461073585600160006106af6109a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f1a90919063ffffffff16565b6109a8565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108245780601f106107f957610100808354040283529160200191610824565b820191906000526020600020905b81548152906001019060200180831161080757829003601f168201915b5050505050905090565b60006108f161083b6109a0565b846108ec8560405180606001604052806025815260200161108460259139600160006108656109a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e609092919063ffffffff16565b6109a8565b6001905092915050565b600061090f6109086109a0565b8484610b9f565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110606024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fcb6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061103b6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610fa86023913960400191505060405180910390fd5b610cb6838383610fa2565b610d2181604051806060016040528060268152602001610fed602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e609092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610db4816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f1a90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610f0d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ed2578082015181840152602081019050610eb7565b50505050905090810190601f168015610eff5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600080828401905083811015610f98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122035fa5100418971eeaf5d1f2675ec0261d247cb4036fbaba3ed7dcdbdc1bcf83464736f6c634300060c0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x139F CODESIZE SUB DUP1 PUSH3 0x139F DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x40 DUP2 LT ISZERO PUSH3 0x37 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH5 0x100000000 DUP3 GT ISZERO PUSH3 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH3 0x6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x1 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH3 0x8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP3 POP POP POP SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0xC3 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0xA6 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0xF1 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP PUSH1 0x40 MSTORE PUSH1 0x20 ADD DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH5 0x100000000 DUP3 GT ISZERO PUSH3 0x115 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH3 0x12C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x1 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH3 0x14A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP3 POP POP POP SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x180 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x163 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x1AE JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP PUSH1 0x40 MSTORE POP POP POP DUP2 PUSH1 0x3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x1CD SWAP3 SWAP2 SWAP1 PUSH3 0x20B JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x1E6 SWAP3 SWAP2 SWAP1 PUSH3 0x20B JUMP JUMPDEST POP PUSH1 0x12 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP POP PUSH3 0x2B1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x24E JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x27F JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x27F JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x27E JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x261 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH3 0x28E SWAP2 SWAP1 PUSH3 0x292 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x2AD JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH3 0x293 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x10DE DUP1 PUSH3 0x2C1 PUSH1 0x0 CODECOPY 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 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BC JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x314 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x397 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x3FB JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x45F JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x237 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x4D7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xDB JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x123 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19D PUSH2 0x597 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x5A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23F PUSH2 0x67A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x26E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x691 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2FE PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x744 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x31C PUSH2 0x78C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x35C JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x341 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x389 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3E3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x82E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x447 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x411 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x8FB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4C1 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x475 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x919 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x56F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x544 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x56F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x552 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x58D PUSH2 0x586 PUSH2 0x9A0 JUMP JUMPDEST DUP5 DUP5 PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5AE DUP5 DUP5 DUP5 PUSH2 0xB9F JUMP JUMPDEST PUSH2 0x66F DUP5 PUSH2 0x5BA PUSH2 0x9A0 JUMP JUMPDEST PUSH2 0x66A DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1013 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x620 PUSH2 0x9A0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE60 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x73A PUSH2 0x69E PUSH2 0x9A0 JUMP JUMPDEST DUP5 PUSH2 0x735 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0x6AF PUSH2 0x9A0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF1A SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x824 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x7F9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x824 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x807 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8F1 PUSH2 0x83B PUSH2 0x9A0 JUMP JUMPDEST DUP5 PUSH2 0x8EC DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1084 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0x865 PUSH2 0x9A0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE60 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x90F PUSH2 0x908 PUSH2 0x9A0 JUMP JUMPDEST DUP5 DUP5 PUSH2 0xB9F JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA2E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1060 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xAB4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFCB PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xC25 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x103B PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xCAB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFA8 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCB6 DUP4 DUP4 DUP4 PUSH2 0xFA2 JUMP JUMPDEST PUSH2 0xD21 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xFED PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x0 DUP1 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE60 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xDB4 DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF1A SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 GT ISZERO DUP3 SWAP1 PUSH2 0xF0D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xED2 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEB7 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xEFF JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP3 DUP5 SUB SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 ADD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0xF98 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP INVALID GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH21 0x72616E7366657220746F20746865207A65726F2061 PUSH5 0x6472657373 GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH2 0x7070 PUSH19 0x6F766520746F20746865207A65726F20616464 PUSH19 0x65737345524332303A207472616E7366657220 PUSH2 0x6D6F PUSH22 0x6E7420657863656564732062616C616E636545524332 ADDRESS GASPRICE KECCAK256 PUSH21 0x72616E7366657220616D6F756E7420657863656564 PUSH20 0x20616C6C6F77616E636545524332303A20747261 PUSH15 0x736665722066726F6D20746865207A PUSH6 0x726F20616464 PUSH19 0x65737345524332303A20617070726F76652066 PUSH19 0x6F6D20746865207A65726F2061646472657373 GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH5 0x6563726561 PUSH20 0x656420616C6C6F77616E63652062656C6F77207A PUSH6 0x726FA2646970 PUSH7 0x735822122035FA MLOAD STOP COINBASE DUP10 PUSH18 0xEEAF5D1F2675EC0261D247CB4036FBABA3ED PUSH30 0xCDBDC1BCF83464736F6C634300060C003300000000000000000000000000 ",
"sourceMap": "15465:9747:0:-:0;;;16124:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16207:5;16199;:13;;;;;;;;;;;;:::i;:::-;;16233:7;16223;:17;;;;;;;;;;;;:::i;:::-;;16263:2;16251:9;;:14;;;;;;;;;;;;;;;;;;16124:149;;15465:9747;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;"
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461025857806370a08231146102bc57806395d89b4114610314578063a457c2d714610397578063a9059cbb146103fb578063dd62ed3e1461045f576100a9565b806306fdde03146100ae578063095ea7b31461013157806318160ddd1461019557806323b872dd146101b3578063313ce56714610237575b600080fd5b6100b66104d7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610579565b60405180821515815260200191505060405180910390f35b61019d610597565b6040518082815260200191505060405180910390f35b61021f600480360360608110156101c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105a1565b60405180821515815260200191505060405180910390f35b61023f61067a565b604051808260ff16815260200191505060405180910390f35b6102a46004803603604081101561026e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610691565b60405180821515815260200191505060405180910390f35b6102fe600480360360208110156102d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610744565b6040518082815260200191505060405180910390f35b61031c61078c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561035c578082015181840152602081019050610341565b50505050905090810190601f1680156103895780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103e3600480360360408110156103ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061082e565b60405180821515815260200191505060405180910390f35b6104476004803603604081101561041157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108fb565b60405180821515815260200191505060405180910390f35b6104c16004803603604081101561047557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610919565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561056f5780601f106105445761010080835404028352916020019161056f565b820191906000526020600020905b81548152906001019060200180831161055257829003601f168201915b5050505050905090565b600061058d6105866109a0565b84846109a8565b6001905092915050565b6000600254905090565b60006105ae848484610b9f565b61066f846105ba6109a0565b61066a8560405180606001604052806028815260200161101360289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106206109a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e609092919063ffffffff16565b6109a8565b600190509392505050565b6000600560009054906101000a900460ff16905090565b600061073a61069e6109a0565b8461073585600160006106af6109a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f1a90919063ffffffff16565b6109a8565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108245780601f106107f957610100808354040283529160200191610824565b820191906000526020600020905b81548152906001019060200180831161080757829003601f168201915b5050505050905090565b60006108f161083b6109a0565b846108ec8560405180606001604052806025815260200161108460259139600160006108656109a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e609092919063ffffffff16565b6109a8565b6001905092915050565b600061090f6109086109a0565b8484610b9f565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110606024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fcb6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061103b6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610fa86023913960400191505060405180910390fd5b610cb6838383610fa2565b610d2181604051806060016040528060268152602001610fed602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e609092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610db4816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f1a90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610f0d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ed2578082015181840152602081019050610eb7565b50505050905090810190601f168015610eff5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600080828401905083811015610f98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122035fa5100418971eeaf5d1f2675ec0261d247cb4036fbaba3ed7dcdbdc1bcf83464736f6c634300060c0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BC JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x314 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x397 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x3FB JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x45F JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x237 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x4D7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xDB JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x123 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19D PUSH2 0x597 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x5A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23F PUSH2 0x67A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x26E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x691 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2FE PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x744 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x31C PUSH2 0x78C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x35C JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x341 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x389 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3E3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x82E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x447 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x411 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x8FB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4C1 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x475 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x919 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x56F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x544 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x56F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x552 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x58D PUSH2 0x586 PUSH2 0x9A0 JUMP JUMPDEST DUP5 DUP5 PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5AE DUP5 DUP5 DUP5 PUSH2 0xB9F JUMP JUMPDEST PUSH2 0x66F DUP5 PUSH2 0x5BA PUSH2 0x9A0 JUMP JUMPDEST PUSH2 0x66A DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1013 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x620 PUSH2 0x9A0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE60 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x73A PUSH2 0x69E PUSH2 0x9A0 JUMP JUMPDEST DUP5 PUSH2 0x735 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0x6AF PUSH2 0x9A0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF1A SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x824 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x7F9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x824 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x807 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8F1 PUSH2 0x83B PUSH2 0x9A0 JUMP JUMPDEST DUP5 PUSH2 0x8EC DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1084 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0x865 PUSH2 0x9A0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE60 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x90F PUSH2 0x908 PUSH2 0x9A0 JUMP JUMPDEST DUP5 DUP5 PUSH2 0xB9F JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA2E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1060 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xAB4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFCB PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xC25 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x103B PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xCAB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFA8 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCB6 DUP4 DUP4 DUP4 PUSH2 0xFA2 JUMP JUMPDEST PUSH2 0xD21 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xFED PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x0 DUP1 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE60 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xDB4 DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF1A SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 GT ISZERO DUP3 SWAP1 PUSH2 0xF0D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xED2 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEB7 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xEFF JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP3 DUP5 SUB SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 ADD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0xF98 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP INVALID GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH21 0x72616E7366657220746F20746865207A65726F2061 PUSH5 0x6472657373 GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH2 0x7070 PUSH19 0x6F766520746F20746865207A65726F20616464 PUSH19 0x65737345524332303A207472616E7366657220 PUSH2 0x6D6F PUSH22 0x6E7420657863656564732062616C616E636545524332 ADDRESS GASPRICE KECCAK256 PUSH21 0x72616E7366657220616D6F756E7420657863656564 PUSH20 0x20616C6C6F77616E636545524332303A20747261 PUSH15 0x736665722066726F6D20746865207A PUSH6 0x726F20616464 PUSH19 0x65737345524332303A20617070726F76652066 PUSH19 0x6F6D20746865207A65726F2061646472657373 GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH5 0x6563726561 PUSH20 0x656420616C6C6F77616E63652062656C6F77207A PUSH6 0x726FA2646970 PUSH7 0x735822122035FA MLOAD STOP COINBASE DUP10 PUSH18 0xEEAF5D1F2675EC0261D247CB4036FBABA3ED PUSH30 0xCDBDC1BCF83464736F6C634300060C003300000000000000000000000000 ",
"sourceMap": "15465:9747:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16343:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18489:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17442:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19140:321;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17286:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19870:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17613:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16553:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20591:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17953:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18191:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16343:91;16388:13;16421:5;16414:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16343:91;:::o;18489:169::-;18572:4;18589:39;18598:12;:10;:12::i;:::-;18612:7;18621:6;18589:8;:39::i;:::-;18646:4;18639:11;;18489:169;;;;:::o;17442:108::-;17503:7;17530:12;;17523:19;;17442:108;:::o;19140:321::-;19246:4;19263:36;19273:6;19281:9;19292:6;19263:9;:36::i;:::-;19310:121;19319:6;19327:12;:10;:12::i;:::-;19341:89;19379:6;19341:89;;;;;;;;;;;;;;;;;:11;:19;19353:6;19341:19;;;;;;;;;;;;;;;:33;19361:12;:10;:12::i;:::-;19341:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;19310:8;:121::i;:::-;19449:4;19442:11;;19140:321;;;;;:::o;17286:91::-;17335:5;17360:9;;;;;;;;;;;17353:16;;17286:91;:::o;19870:218::-;19958:4;19975:83;19984:12;:10;:12::i;:::-;19998:7;20007:50;20046:10;20007:11;:25;20019:12;:10;:12::i;:::-;20007:25;;;;;;;;;;;;;;;:34;20033:7;20007:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;19975:8;:83::i;:::-;20076:4;20069:11;;19870:218;;;;:::o;17613:127::-;17687:7;17714:9;:18;17724:7;17714:18;;;;;;;;;;;;;;;;17707:25;;17613:127;;;:::o;16553:95::-;16600:13;16633:7;16626:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16553:95;:::o;20591:269::-;20684:4;20701:129;20710:12;:10;:12::i;:::-;20724:7;20733:96;20772:15;20733:96;;;;;;;;;;;;;;;;;:11;:25;20745:12;:10;:12::i;:::-;20733:25;;;;;;;;;;;;;;;:34;20759:7;20733:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;20701:8;:129::i;:::-;20848:4;20841:11;;20591:269;;;;:::o;17953:175::-;18039:4;18056:42;18066:12;:10;:12::i;:::-;18080:9;18091:6;18056:9;:42::i;:::-;18116:4;18109:11;;17953:175;;;;:::o;18191:151::-;18280:7;18307:11;:18;18319:5;18307:18;;;;;;;;;;;;;;;:27;18326:7;18307:27;;;;;;;;;;;;;;;;18300:34;;18191:151;;;;:::o;10996:106::-;11049:15;11084:10;11077:17;;10996:106;:::o;23738:346::-;23857:1;23840:19;;:5;:19;;;;23832:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23938:1;23919:21;;:7;:21;;;;23911:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24022:6;23992:11;:18;24004:5;23992:18;;;;;;;;;;;;;;;:27;24011:7;23992:27;;;;;;;;;;;;;;;:36;;;;24060:7;24044:32;;24053:5;24044:32;;;24069:6;24044:32;;;;;;;;;;;;;;;;;;23738:346;;;:::o;21350:539::-;21474:1;21456:20;;:6;:20;;;;21448:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21558:1;21537:23;;:9;:23;;;;21529:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21613:47;21634:6;21642:9;21653:6;21613:20;:47::i;:::-;21693:71;21715:6;21693:71;;;;;;;;;;;;;;;;;:9;:17;21703:6;21693:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;21673:9;:17;21683:6;21673:17;;;;;;;;;;;;;;;:91;;;;21798:32;21823:6;21798:9;:20;21808:9;21798:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;21775:9;:20;21785:9;21775:20;;;;;;;;;;;;;;;:55;;;;21863:9;21846:35;;21855:6;21846:35;;;21874:6;21846:35;;;;;;;;;;;;;;;;;;21350:539;;;:::o;8512:166::-;8598:7;8631:1;8626;:6;;8634:12;8618:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8669:1;8665;:5;8658:12;;8512:166;;;;;:::o;5685:179::-;5743:7;5763:9;5779:1;5775;:5;5763:17;;5804:1;5799;:6;;5791:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5855:1;5848:8;;;5685:179;;;;:::o;25117:92::-;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "863600",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"allowance(address,address)": "1431",
"approve(address,uint256)": "infinite",
"balanceOf(address)": "1218",
"decimals()": "1144",
"decreaseAllowance(address,uint256)": "infinite",
"increaseAllowance(address,uint256)": "infinite",
"name()": "infinite",
"symbol()": "infinite",
"totalSupply()": "1058",
"transfer(address,uint256)": "infinite",
"transferFrom(address,address,uint256)": "infinite"
},
"internal": {
"_approve(address,address,uint256)": "infinite",
"_beforeTokenTransfer(address,address,uint256)": "15",
"_burn(address,uint256)": "infinite",
"_mint(address,uint256)": "infinite",
"_setupDecimals(uint8)": "infinite",
"_transfer(address,address,uint256)": "infinite"
}
},
"methodIdentifiers": {
"allowance(address,address)": "dd62ed3e",
"approve(address,uint256)": "095ea7b3",
"balanceOf(address)": "70a08231",
"decimals()": "313ce567",
"decreaseAllowance(address,uint256)": "a457c2d7",
"increaseAllowance(address,uint256)": "39509351",
"name()": "06fdde03",
"symbol()": "95d89b41",
"totalSupply()": "18160ddd",
"transfer(address,uint256)": "a9059cbb",
"transferFrom(address,address,uint256)": "23b872dd"
}
},
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "name_",
"type": "string"
},
{
"internalType": "string",
"name": "symbol_",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "subtractedValue",
"type": "uint256"
}
],
"name": "decreaseAllowance",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "addedValue",
"type": "uint256"
}
],
"name": "increaseAllowance",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.6.12+commit.27d51765"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "name_",
"type": "string"
},
{
"internalType": "string",
"name": "symbol_",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "subtractedValue",
"type": "uint256"
}
],
"name": "decreaseAllowance",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "addedValue",
"type": "uint256"
}
],
"name": "increaseAllowance",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"details": "Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. We have followed general OpenZeppelin guidelines: functions revert instead of returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.",
"kind": "dev",
"methods": {
"allowance(address,address)": {
"details": "See {IERC20-allowance}."
},
"approve(address,uint256)": {
"details": "See {IERC20-approve}. Requirements: - `spender` cannot be the zero address."
},
"balanceOf(address)": {
"details": "See {IERC20-balanceOf}."
},
"constructor": {
"details": "Sets the values for {name} and {symbol}, initializes {decimals} with a default value of 18. To select a different value for {decimals}, use {_setupDecimals}. All three of these values are immutable: they can only be set once during construction."
},
"decimals()": {
"details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."
},
"decreaseAllowance(address,uint256)": {
"details": "Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."
},
"increaseAllowance(address,uint256)": {
"details": "Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."
},
"name()": {
"details": "Returns the name of the token."
},
"symbol()": {
"details": "Returns the symbol of the token, usually a shorter version of the name."
},
"totalSupply()": {
"details": "See {IERC20-totalSupply}."
},
"transfer(address,uint256)": {
"details": "See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`."
},
"transferFrom(address,address,uint256)": {
"details": "See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"immunefi/xx.sol": "ERC20"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"immunefi/xx.sol": {
"keccak256": "0x0237da454ff487d47f1302f0b833a28a4cedcb1c872e1a43c0646ec850ecccf7",
"license": "MIT",
"urls": [
"bzz-raw://aceee79175572ac8cc600b6735fa0d539878bab5f51df3b9753df96b0492e91d",
"dweb:/ipfs/Qmc3HyoRRZUN6f6sRtPFm58FzyvgLPX7bL5pvNenQtiu2h"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"allowance(address,address)": "dd62ed3e",
"approve(address,uint256)": "095ea7b3",
"balanceOf(address)": "70a08231",
"totalSupply()": "18160ddd",
"transfer(address,uint256)": "a9059cbb",
"transferFrom(address,address,uint256)": "23b872dd"
}
},
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.6.12+commit.27d51765"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"details": "Interface of the ERC20 standard as defined in the EIP.",
"events": {
"Approval(address,address,uint256)": {
"details": "Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."
},
"Transfer(address,address,uint256)": {
"details": "Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."
}
},
"kind": "dev",
"methods": {
"allowance(address,address)": {
"details": "Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."
},
"approve(address,uint256)": {
"details": "Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."
},
"balanceOf(address)": {
"details": "Returns the amount of tokens owned by `account`."
},
"totalSupply()": {
"details": "Returns the amount of tokens in existence."
},
"transfer(address,uint256)": {
"details": "Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."
},
"transferFrom(address,address,uint256)": {
"details": "Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"immunefi/xx.sol": "IERC20"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"immunefi/xx.sol": {
"keccak256": "0x0237da454ff487d47f1302f0b833a28a4cedcb1c872e1a43c0646ec850ecccf7",
"license": "MIT",
"urls": [
"bzz-raw://aceee79175572ac8cc600b6735fa0d539878bab5f51df3b9753df96b0492e91d",
"dweb:/ipfs/Qmc3HyoRRZUN6f6sRtPFm58FzyvgLPX7bL5pvNenQtiu2h"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"owner()": "8da5cb5b",
"renounceOwnership()": "715018a6",
"transferOwnership(address)": "f2fde38b"
}
},
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.6.12+commit.27d51765"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"details": "Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.",
"kind": "dev",
"methods": {
"constructor": {
"details": "Initializes the contract setting the deployer as the initial owner."
},
"owner()": {
"details": "Returns the address of the current owner."
},
"renounceOwnership()": {
"details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
},
"transferOwnership(address)": {
"details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"immunefi/xx.sol": "Ownable"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"immunefi/xx.sol": {
"keccak256": "0x0237da454ff487d47f1302f0b833a28a4cedcb1c872e1a43c0646ec850ecccf7",
"license": "MIT",
"urls": [
"bzz-raw://aceee79175572ac8cc600b6735fa0d539878bab5f51df3b9753df96b0492e91d",
"dweb:/ipfs/Qmc3HyoRRZUN6f6sRtPFm58FzyvgLPX7bL5pvNenQtiu2h"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.6.12+commit.27d51765"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"details": "Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].",
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"immunefi/xx.sol": "ReentrancyGuard"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"immunefi/xx.sol": {
"keccak256": "0x0237da454ff487d47f1302f0b833a28a4cedcb1c872e1a43c0646ec850ecccf7",
"license": "MIT",
"urls": [
"bzz-raw://aceee79175572ac8cc600b6735fa0d539878bab5f51df3b9753df96b0492e91d",
"dweb:/ipfs/Qmc3HyoRRZUN6f6sRtPFm58FzyvgLPX7bL5pvNenQtiu2h"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d1c749c4b621e9017fb261b511a58c6104dab9437e820612b83d312401347fc264736f6c634300060c0033",
"opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD1 0xC7 0x49 0xC4 0xB6 0x21 0xE9 ADD PUSH32 0xB261B511A58C6104DAB9437E820612B83D312401347FC264736F6C634300060C STOP CALLER ",
"sourceMap": "33837:3161:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d1c749c4b621e9017fb261b511a58c6104dab9437e820612b83d312401347fc264736f6c634300060c0033",
"opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD1 0xC7 0x49 0xC4 0xB6 0x21 0xE9 ADD PUSH32 0xB261B511A58C6104DAB9437E820612B83D312401347FC264736F6C634300060C STOP CALLER ",
"sourceMap": "33837:3161:0:-:0;;;;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "17200",
"executionCost": "97",
"totalCost": "17297"
},
"internal": {
"_callOptionalReturn(contract IERC20,bytes memory)": "infinite",
"safeApprove(contract IERC20,address,uint256)": "infinite",
"safeDecreaseAllowance(contract IERC20,address,uint256)": "infinite",
"safeIncreaseAllowance(contract IERC20,address,uint256)": "infinite",
"safeTransfer(contract IERC20,address,uint256)": "infinite",
"safeTransferFrom(contract IERC20,address,address,uint256)": "infinite"
}
},
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.6.12+commit.27d51765"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"details": "Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.",
"kind": "dev",
"methods": {},
"title": "SafeERC20",
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"immunefi/xx.sol": "SafeERC20"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"immunefi/xx.sol": {
"keccak256": "0x0237da454ff487d47f1302f0b833a28a4cedcb1c872e1a43c0646ec850ecccf7",
"license": "MIT",
"urls": [
"bzz-raw://aceee79175572ac8cc600b6735fa0d539878bab5f51df3b9753df96b0492e91d",
"dweb:/ipfs/Qmc3HyoRRZUN6f6sRtPFm58FzyvgLPX7bL5pvNenQtiu2h"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122029ff4e4a4b97017c6b1a0a1dc2d7d710ad7266e3e1db3aea61817412e68b53aa64736f6c634300060c0033",
"opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x29 SELFDESTRUCT 0x4E 0x4A 0x4B SWAP8 ADD PUSH29 0x6B1A0A1DC2D7D710AD7266E3E1DB3AEA61817412E68B53AA64736F6C63 NUMBER STOP MOD 0xC STOP CALLER ",
"sourceMap": "3558:6790:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122029ff4e4a4b97017c6b1a0a1dc2d7d710ad7266e3e1db3aea61817412e68b53aa64736f6c634300060c0033",
"opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x29 SELFDESTRUCT 0x4E 0x4A 0x4B SWAP8 ADD PUSH29 0x6B1A0A1DC2D7D710AD7266E3E1DB3AEA61817412E68B53AA64736F6C63 NUMBER STOP MOD 0xC STOP CALLER ",
"sourceMap": "3558:6790:0:-:0;;;;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "17200",
"executionCost": "97",
"totalCost": "17297"
},
"internal": {
"add(uint256,uint256)": "infinite",
"div(uint256,uint256)": "infinite",
"div(uint256,uint256,string memory)": "infinite",
"mod(uint256,uint256)": "infinite",
"mod(uint256,uint256,string memory)": "infinite",
"mul(uint256,uint256)": "infinite",
"sub(uint256,uint256)": "infinite",
"sub(uint256,uint256,string memory)": "infinite",
"tryAdd(uint256,uint256)": "infinite",
"tryDiv(uint256,uint256)": "infinite",
"tryMod(uint256,uint256)": "infinite",
"tryMul(uint256,uint256)": "infinite",
"trySub(uint256,uint256)": "infinite"
}
},
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.6.12+commit.27d51765"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"details": "Wrappers over Solidity's arithmetic operations with added overflow checks. Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.",
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"immunefi/xx.sol": "SafeMath"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"immunefi/xx.sol": {
"keccak256": "0x0237da454ff487d47f1302f0b833a28a4cedcb1c872e1a43c0646ec850ecccf7",
"license": "MIT",
"urls": [
"bzz-raw://aceee79175572ac8cc600b6735fa0d539878bab5f51df3b9753df96b0492e91d",
"dweb:/ipfs/Qmc3HyoRRZUN6f6sRtPFm58FzyvgLPX7bL5pvNenQtiu2h"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "60c06040523480156200001157600080fd5b506040516200341838038062003418833981810160405260208110156200003757600080fd5b810190808051906020019092919050505060006200005a6200014560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600180819055503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508060a08181525050506200014d565b600033905090565b60805160601c60a0516132906200018860003980610867528061154c5280611cb252806122e85250806113ad5280611a7452506132906000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c806392e8990e11610104578063cc7a262e116100a2578063e113db6f11610071578063e113db6f14610641578063f2fde38b1461066f578063f40f0f52146106b3578063f7c618c11461070b576101cf565b8063cc7a262e146105c7578063ccd34cd5146105fb578063ce872d8714610619578063db2e21bc14610637576101cf565b8063a0b40905116100de578063a0b4090514610523578063a1c1ce8b1461055d578063a9f8d1811461057b578063b6b55f2514610599576101cf565b806392e8990e146104975780639513997f146104b75780639b1e3f4e146104ef576101cf565b806366fe9f8a1161017157806383a5041c1161014b57806383a5041c1461037b5780638ae39cac146104275780638da5cb5b146104455780638f66291514610479576101cf565b806366fe9f8a14610349578063715018a61461036757806380dc067214610371576101cf565b80633279beab116101ad5780633279beab1461028f578063392e53cd146102bd5780633f138d4b146102dd57806348cd4cb11461032b576101cf565b806301f8a976146101d45780631959a002146102025780632e1a7d4d14610261575b600080fd5b610200600480360360208110156101ea57600080fd5b810190808035906020019092919050505061073f565b005b6102446004803603602081101561021857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061091f565b604051808381526020018281526020019250505060405180910390f35b61028d6004803603602081101561027757600080fd5b8101908080359060200190929190505050610943565b005b6102bb600480360360208110156102a557600080fd5b8101908080359060200190929190505050610c2c565b005b6102c5610d79565b60405180821515815260200191505060405180910390f35b610329600480360360408110156102f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d8c565b005b610333611047565b6040518082815260200191505060405180910390f35b61035161104d565b6040518082815260200191505060405180910390f35b61036f611053565b005b6103796111c0565b005b610425600480360360e081101561039157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611328565b005b61042f6117fa565b6040518082815260200191505060405180910390f35b61044d611800565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610481611829565b6040518082815260200191505060405180910390f35b61049f61182f565b60405180821515815260200191505060405180910390f35b6104ed600480360360408110156104cd57600080fd5b810190808035906020019092919080359060200190929190505050611842565b005b6104f7611a72565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61055b6004803603604081101561053957600080fd5b8101908080351515906020019092919080359060200190929190505050611a96565b005b610565611cb0565b6040518082815260200191505060405180910390f35b610583611cd4565b6040518082815260200191505060405180910390f35b6105c5600480360360208110156105af57600080fd5b8101908080359060200190929190505050611cda565b005b6105cf611ffd565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610603612023565b6040518082815260200191505060405180910390f35b610621612029565b6040518082815260200191505060405180910390f35b61063f61202f565b005b61066d6004803603602081101561065757600080fd5b81019080803590602001909291905050506121c0565b005b6106b16004803603602081101561068557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123a8565b005b6106f5600480360360208110156106c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061259a565b6040518082815260200191505060405180910390f35b6107136127bf565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107476127e5565b73ffffffffffffffffffffffffffffffffffffffff16610765611800565b73ffffffffffffffffffffffffffffffffffffffff16146107ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6005544310610865576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f506f6f6c2068617320737461727465640000000000000000000000000000000081525060200191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008111156108de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613131602c913960400191505060405180910390fd5b806008819055507f0c4d677eef92893ac7ec52faf8140fc6c851ab4736302b4f3a89dfb20696a0df816040518082815260200191505060405180910390a150565b600c6020528060005260406000206000915090508060000154908060010154905082565b600260015414156109bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026001819055506000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508181600001541015610a81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f416d6f756e7420746f20776974686472617720746f6f2068696768000000000081525060200191505060405180910390fd5b610a896127ed565b6000610ace8260010154610ac0600954610ab2600354876000015461295090919063ffffffff16565b6129d690919063ffffffff16565b612a5f90919063ffffffff16565b90506000831115610b4657610af0838360000154612a5f90919063ffffffff16565b8260000181905550610b453384600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612ae29092919063ffffffff16565b5b6000811115610b9d57610b9c3382600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612ae29092919063ffffffff16565b5b610bca600954610bbc600354856000015461295090919063ffffffff16565b6129d690919063ffffffff16565b82600101819055503373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364846040518082815260200191505060405180910390a250506001808190555050565b610c346127e5565b73ffffffffffffffffffffffffffffffffffffffff16610c52611800565b73ffffffffffffffffffffffffffffffffffffffff1614610cdb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610d283382600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612ae29092919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167f2d4434bb59801e733e9ce3df40b0c5518861a5fcdeec1906e83e03c755872b42826040518082815260200191505060405180910390a250565b600260019054906101000a900460ff1681565b610d946127e5565b73ffffffffffffffffffffffffffffffffffffffff16610db2611800565b73ffffffffffffffffffffffffffffffffffffffff1614610e3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610eff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f43616e6e6f74206265207374616b656420746f6b656e0000000000000000000081525060200191505060405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fc3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f43616e6e6f742062652072657761726420746f6b656e0000000000000000000081525060200191505060405180910390fd5b610fee33828473ffffffffffffffffffffffffffffffffffffffff16612ae29092919063ffffffff16565b7f74545154aac348a3eac92596bd1971957ca94795f4e954ec5f613b55fab781298282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b60055481565b60075481565b61105b6127e5565b73ffffffffffffffffffffffffffffffffffffffff16611079611800565b73ffffffffffffffffffffffffffffffffffffffff1614611102576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6111c86127e5565b73ffffffffffffffffffffffffffffffffffffffff166111e6611800565b73ffffffffffffffffffffffffffffffffffffffff161461126f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60045443106112e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526577617264732068617320616c726561647920656e6465640000000000000081525060200191505060405180910390fd5b436004819055507ffed9fcb0ca3d1e761a4b929792bb24082fba92dca81252646ad306d3068065666004546040518082815260200191505060405180910390a1565b600260019054906101000a900460ff16156113ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f416c726561647920696e697469616c697a65640000000000000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461146c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4e6f7420666163746f727900000000000000000000000000000000000000000081525060200191505060405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614156114f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806130b26030913960400191505060405180910390fd5b8284111561154a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806130e26029913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008511156115c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180613202602f913960400191505060405180910390fd5b6001600260016101000a81548160ff02191690831515021790555086600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600881905550836005819055508260048190555060008211156116a1576001600260006101000a81548160ff021916908315150217905550816007819055505b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561170b57600080fd5b505afa15801561171f573d6000803e3d6000fd5b505050506040513d602081101561173557600080fd5b810190808051906020019092919050505060ff169050602481106117c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d75737420626520696e666572696f7220746f2033360000000000000000000081525060200191505060405180910390fd5b6117d5816024612a5f90919063ffffffff16565b600a0a6009819055506005546006819055506117f0826123a8565b5050505050505050565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60035481565b600260009054906101000a900460ff1681565b61184a6127e5565b73ffffffffffffffffffffffffffffffffffffffff16611868611800565b73ffffffffffffffffffffffffffffffffffffffff16146118f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6005544310611968576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f506f6f6c2068617320737461727465640000000000000000000000000000000081525060200191505060405180910390fd5b8082106119c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061315d602e913960400191505060405180910390fd5b814310611a18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806131b16030913960400191505060405180910390fd5b81600581905550806004819055506005546006819055507f7cd0ab87d19036f3dfadadb232c78aa4879dda3f0c994a9d637532410ee2ce068282604051808381526020018281526020019250505060405180910390a15050565b7f000000000000000000000000000000000000000000000000000000000000000081565b611a9e6127e5565b73ffffffffffffffffffffffffffffffffffffffff16611abc611800565b73ffffffffffffffffffffffffffffffffffffffff1614611b45576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600260009054906101000a900460ff16611bc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4d7573742062652073657400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8115611c50576007548111611c44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6577206c696d6974206d75737420626520686967686572000000000000000081525060200191505060405180910390fd5b80600781905550611c73565b81600260006101000a81548160ff02191690831515021790555060006007819055505b7f241f67ee5f41b7a5cabf911367329be7215900f602ebfc47f89dce2a6bcd847c6007546040518082815260200191505060405180910390a15050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60065481565b60026001541415611d53576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026001819055506000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600260009054906101000a900460ff1615611e4257600754611dcd826000015484612b8490919063ffffffff16565b1115611e41576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f5573657220616d6f756e742061626f7665206c696d697400000000000000000081525060200191505060405180910390fd5b5b611e4a6127ed565b600081600001541115611ef7576000611e9c8260010154611e8e600954611e80600354876000015461295090919063ffffffff16565b6129d690919063ffffffff16565b612a5f90919063ffffffff16565b90506000811115611ef557611ef43382600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612ae29092919063ffffffff16565b5b505b6000821115611f6f57611f17828260000154612b8490919063ffffffff16565b8160000181905550611f6e333084600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612c0c909392919063ffffffff16565b5b611f9c600954611f8e600354846000015461295090919063ffffffff16565b6129d690919063ffffffff16565b81600101819055503373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c836040518082815260200191505060405180910390a2506001808190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b60045481565b600260015414156120a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026001819055506000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160000154905060008260000181905550600082600101819055506000811115612167576121663382600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612ae29092919063ffffffff16565b5b3373ffffffffffffffffffffffffffffffffffffffff167f5fafa99d0643513820be26656b45130b01e1c03062e1266bf36f88cbd3bd9695826040518082815260200191505060405180910390a2505060018081905550565b6121c86127e5565b73ffffffffffffffffffffffffffffffffffffffff166121e6611800565b73ffffffffffffffffffffffffffffffffffffffff161461226f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60045443106122e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f506f6f6c2068617320616c726561647920656e6465640000000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081111561235f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613131602c913960400191505060405180910390fd5b6123676127ed565b806008819055507f0c4d677eef92893ac7ec52faf8140fc6c851ab4736302b4f3a89dfb20696a0df816040518082815260200191505060405180910390a150565b6123b06127e5565b73ffffffffffffffffffffffffffffffffffffffff166123ce611800565b73ffffffffffffffffffffffffffffffffffffffff1614612457576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156124dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061310b6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561266957600080fd5b505afa15801561267d573d6000803e3d6000fd5b505050506040513d602081101561269357600080fd5b81019080805190602001909291905050509050600654431180156126b8575060008114155b156127725760006126cb60065443612ccd565b905060006126e46008548361295090919063ffffffff16565b90506000612723612712856127046009548661295090919063ffffffff16565b6129d690919063ffffffff16565b600354612b8490919063ffffffff16565b9050612766856001015461275860095461274a858a6000015461295090919063ffffffff16565b6129d690919063ffffffff16565b612a5f90919063ffffffff16565b955050505050506127ba565b6127b582600101546127a7600954612799600354876000015461295090919063ffffffff16565b6129d690919063ffffffff16565b612a5f90919063ffffffff16565b925050505b919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60065443116127fb5761294e565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561288657600080fd5b505afa15801561289a573d6000803e3d6000fd5b505050506040513d60208110156128b057600080fd5b8101908080519060200190929190505050905060008114156128d957436006819055505061294e565b60006128e760065443612ccd565b905060006129006008548361295090919063ffffffff16565b905061293d61292c8461291e6009548561295090919063ffffffff16565b6129d690919063ffffffff16565b600354612b8490919063ffffffff16565b600381905550436006819055505050505b565b60008083141561296357600090506129d0565b600082840290508284828161297457fe5b04146129cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806131e16021913960400191505060405180910390fd5b809150505b92915050565b6000808211612a4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b818381612a5657fe5b04905092915050565b600082821115612ad7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b612b7f8363a9059cbb60e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612d22565b505050565b600080828401905083811015612c02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b612cc7846323b872dd60e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612d22565b50505050565b60006004548211612cf257612ceb8383612a5f90919063ffffffff16565b9050612d1c565b6004548310612d045760009050612d1c565b612d1983600454612a5f90919063ffffffff16565b90505b92915050565b6060612d84826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612e119092919063ffffffff16565b9050600081511115612e0c57808060200190516020811015612da557600080fd5b8101908080519060200190929190505050612e0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613231602a913960400191505060405180910390fd5b5b505050565b6060612e208484600085612e29565b90509392505050565b606082471015612e84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061318b6026913960400191505060405180910390fd5b612e8d85612fd2565b612eff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310612f4f5780518252602082019150602081019050602083039250612f2c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612fb1576040519150601f19603f3d011682016040523d82523d6000602084013e612fb6565b606091505b5091509150612fc6828286612fe5565b92505050949350505050565b600080823b905060008111915050919050565b60608315612ff5578290506130aa565b6000835111156130085782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561306f578082015181840152602081019050613054565b50505050905090810190601f16801561309c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b939250505056fe5374616b656420746f6b656e20616e642052657761726420546f6b656e2063616e6e6f74206265207468652073616d655374617274626c6f636b206d757374206265206265666f72652072657761726473456e64426c6f636b4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737343616e277420696e6372656173652072657761726473206d6f7265207468616e20746865206d6178206361704e6577207374617274426c6f636b206d757374206265206c6f776572207468616e206e657720656e64426c6f636b416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4e6577207374617274426c6f636b206d75737420626520686967686572207468616e2063757272656e7420626c6f636b536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775265776172642070657220626c6f636b2063616e2774206265206d6f7265207468616e20746865206d6178206361705361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212206c896e885dffcc7df8343900e40399336509162a8f33a5d8c75f7061768eedad64736f6c634300060c0033",
"opcodes": "PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x3418 CODESIZE SUB DUP1 PUSH3 0x3418 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH3 0x37 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH1 0x0 PUSH3 0x5A PUSH3 0x145 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP PUSH1 0x1 DUP1 DUP2 SWAP1 SSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE POP POP DUP1 PUSH1 0xA0 DUP2 DUP2 MSTORE POP POP POP PUSH3 0x14D JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH1 0xA0 MLOAD PUSH2 0x3290 PUSH3 0x188 PUSH1 0x0 CODECOPY DUP1 PUSH2 0x867 MSTORE DUP1 PUSH2 0x154C MSTORE DUP1 PUSH2 0x1CB2 MSTORE DUP1 PUSH2 0x22E8 MSTORE POP DUP1 PUSH2 0x13AD MSTORE DUP1 PUSH2 0x1A74 MSTORE POP PUSH2 0x3290 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 0x1CF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x92E8990E GT PUSH2 0x104 JUMPI DUP1 PUSH4 0xCC7A262E GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xE113DB6F GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xE113DB6F EQ PUSH2 0x641 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x66F JUMPI DUP1 PUSH4 0xF40F0F52 EQ PUSH2 0x6B3 JUMPI DUP1 PUSH4 0xF7C618C1 EQ PUSH2 0x70B JUMPI PUSH2 0x1CF JUMP JUMPDEST DUP1 PUSH4 0xCC7A262E EQ PUSH2 0x5C7 JUMPI DUP1 PUSH4 0xCCD34CD5 EQ PUSH2 0x5FB JUMPI DUP1 PUSH4 0xCE872D87 EQ PUSH2 0x619 JUMPI DUP1 PUSH4 0xDB2E21BC EQ PUSH2 0x637 JUMPI PUSH2 0x1CF JUMP JUMPDEST DUP1 PUSH4 0xA0B40905 GT PUSH2 0xDE JUMPI DUP1 PUSH4 0xA0B40905 EQ PUSH2 0x523 JUMPI DUP1 PUSH4 0xA1C1CE8B EQ PUSH2 0x55D JUMPI DUP1 PUSH4 0xA9F8D181 EQ PUSH2 0x57B JUMPI DUP1 PUSH4 0xB6B55F25 EQ PUSH2 0x599 JUMPI PUSH2 0x1CF JUMP JUMPDEST DUP1 PUSH4 0x92E8990E EQ PUSH2 0x497 JUMPI DUP1 PUSH4 0x9513997F EQ PUSH2 0x4B7 JUMPI DUP1 PUSH4 0x9B1E3F4E EQ PUSH2 0x4EF JUMPI PUSH2 0x1CF JUMP JUMPDEST DUP1 PUSH4 0x66FE9F8A GT PUSH2 0x171 JUMPI DUP1 PUSH4 0x83A5041C GT PUSH2 0x14B JUMPI DUP1 PUSH4 0x83A5041C EQ PUSH2 0x37B JUMPI DUP1 PUSH4 0x8AE39CAC EQ PUSH2 0x427 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x445 JUMPI DUP1 PUSH4 0x8F662915 EQ PUSH2 0x479 JUMPI PUSH2 0x1CF JUMP JUMPDEST DUP1 PUSH4 0x66FE9F8A EQ PUSH2 0x349 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x367 JUMPI DUP1 PUSH4 0x80DC0672 EQ PUSH2 0x371 JUMPI PUSH2 0x1CF JUMP JUMPDEST DUP1 PUSH4 0x3279BEAB GT PUSH2 0x1AD JUMPI DUP1 PUSH4 0x3279BEAB EQ PUSH2 0x28F JUMPI DUP1 PUSH4 0x392E53CD EQ PUSH2 0x2BD JUMPI DUP1 PUSH4 0x3F138D4B EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0x48CD4CB1 EQ PUSH2 0x32B JUMPI PUSH2 0x1CF JUMP JUMPDEST DUP1 PUSH4 0x1F8A976 EQ PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x1959A002 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x261 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x200 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x73F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x244 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x218 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x91F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x28D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x277 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x943 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2BB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xC2C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2C5 PUSH2 0xD79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x329 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xD8C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x333 PUSH2 0x1047 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x351 PUSH2 0x104D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x36F PUSH2 0x1053 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x379 PUSH2 0x11C0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x425 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x391 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1328 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x42F PUSH2 0x17FA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x44D PUSH2 0x1800 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x481 PUSH2 0x1829 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x49F PUSH2 0x182F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4ED PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x4CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1842 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4F7 PUSH2 0x1A72 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x55B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x539 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1A96 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x565 PUSH2 0x1CB0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x583 PUSH2 0x1CD4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x5C5 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1CDA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5CF PUSH2 0x1FFD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x603 PUSH2 0x2023 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x621 PUSH2 0x2029 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x63F PUSH2 0x202F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x66D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x657 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x21C0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6B1 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x685 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x23A8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6F5 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x6C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x259A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x713 PUSH2 0x27BF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x747 PUSH2 0x27E5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x765 PUSH2 0x1800 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x7EE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD NUMBER LT PUSH2 0x865 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x506F6F6C20686173207374617274656400000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 DUP2 GT ISZERO PUSH2 0x8DE 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 0x3131 PUSH1 0x2C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP PUSH32 0xC4D677EEF92893AC7EC52FAF8140FC6C851AB4736302B4F3A89DFB20696A0DF DUP2 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SLOAD EQ ISZERO PUSH2 0x9BC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x1 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0xC PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP2 DUP2 PUSH1 0x0 ADD SLOAD LT ISZERO PUSH2 0xA81 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x416D6F756E7420746F20776974686472617720746F6F20686967680000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA89 PUSH2 0x27ED JUMP JUMPDEST PUSH1 0x0 PUSH2 0xACE DUP3 PUSH1 0x1 ADD SLOAD PUSH2 0xAC0 PUSH1 0x9 SLOAD PUSH2 0xAB2 PUSH1 0x3 SLOAD DUP8 PUSH1 0x0 ADD SLOAD PUSH2 0x2950 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x29D6 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2A5F SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP4 GT ISZERO PUSH2 0xB46 JUMPI PUSH2 0xAF0 DUP4 DUP4 PUSH1 0x0 ADD SLOAD PUSH2 0x2A5F SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP3 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP PUSH2 0xB45 CALLER DUP5 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2AE2 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP2 GT ISZERO PUSH2 0xB9D JUMPI PUSH2 0xB9C CALLER DUP3 PUSH1 0xA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2AE2 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST PUSH2 0xBCA PUSH1 0x9 SLOAD PUSH2 0xBBC PUSH1 0x3 SLOAD DUP6 PUSH1 0x0 ADD SLOAD PUSH2 0x2950 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x29D6 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP3 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x884EDAD9CE6FA2440D8A54CC123490EB96D2768479D49FF9C7366125A9424364 DUP5 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP PUSH1 0x1 DUP1 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0xC34 PUSH2 0x27E5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC52 PUSH2 0x1800 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xCDB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD28 CALLER DUP3 PUSH1 0xA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2AE2 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x2D4434BB59801E733E9CE3DF40B0C5518861A5FCDEEC1906E83E03C755872B42 DUP3 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xD94 PUSH2 0x27E5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xDB2 PUSH2 0x1800 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xE3B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xEFF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x16 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x43616E6E6F74206265207374616B656420746F6B656E00000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xFC3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x16 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x43616E6E6F742062652072657761726420746F6B656E00000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFEE CALLER DUP3 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2AE2 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH32 0x74545154AAC348A3EAC92596BD1971957CA94795F4E954EC5F613B55FAB78129 DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x105B PUSH2 0x27E5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1079 PUSH2 0x1800 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1102 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x11C8 PUSH2 0x27E5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x11E6 PUSH2 0x1800 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x126F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD NUMBER LT PUSH2 0x12E6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x19 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x526577617264732068617320616C726561647920656E64656400000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST NUMBER PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH32 0xFED9FCB0CA3D1E761A4B929792BB24082FBA92DCA81252646AD306D306806566 PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x13AB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x13 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x416C726561647920696E697469616C697A656400000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x146C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0xB DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4E6F7420666163746F7279000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x14F1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x30 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x30B2 PUSH1 0x30 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP5 GT ISZERO PUSH2 0x154A 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 0x30E2 PUSH1 0x29 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 DUP6 GT ISZERO PUSH2 0x15C3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x3202 PUSH1 0x2F SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x2 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP7 PUSH1 0xB PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP6 PUSH1 0xA PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP5 PUSH1 0x8 DUP2 SWAP1 SSTORE POP DUP4 PUSH1 0x5 DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH1 0x0 DUP3 GT ISZERO PUSH2 0x16A1 JUMPI PUSH1 0x1 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 PUSH1 0xA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x313CE567 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 0x170B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x171F 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 0x1735 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH1 0xFF AND SWAP1 POP PUSH1 0x24 DUP2 LT PUSH2 0x17C1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x16 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4D75737420626520696E666572696F7220746F20333600000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x17D5 DUP2 PUSH1 0x24 PUSH2 0x2A5F SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0xA EXP PUSH1 0x9 DUP2 SWAP1 SSTORE POP PUSH1 0x5 SLOAD PUSH1 0x6 DUP2 SWAP1 SSTORE POP PUSH2 0x17F0 DUP3 PUSH2 0x23A8 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x184A PUSH2 0x27E5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1868 PUSH2 0x1800 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x18F1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD NUMBER LT PUSH2 0x1968 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x506F6F6C20686173207374617274656400000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP3 LT PUSH2 0x19C0 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 0x315D PUSH1 0x2E SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 NUMBER LT PUSH2 0x1A18 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x30 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x31B1 PUSH1 0x30 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH1 0x5 SLOAD PUSH1 0x6 DUP2 SWAP1 SSTORE POP PUSH32 0x7CD0AB87D19036F3DFADADB232C78AA4879DDA3F0C994A9D637532410EE2CE06 DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1A9E PUSH2 0x27E5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1ABC PUSH2 0x1800 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1B45 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1BC7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0xB DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4D75737420626520736574000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 ISZERO PUSH2 0x1C50 JUMPI PUSH1 0x7 SLOAD DUP2 GT PUSH2 0x1C44 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x18 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4E6577206C696D6974206D757374206265206869676865720000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x7 DUP2 SWAP1 SSTORE POP PUSH2 0x1C73 JUMP JUMPDEST DUP2 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x7 DUP2 SWAP1 SSTORE POP JUMPDEST PUSH32 0x241F67EE5F41B7A5CABF911367329BE7215900F602EBFC47F89DCE2A6BCD847C PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SLOAD EQ ISZERO PUSH2 0x1D53 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x1 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0xC PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1E42 JUMPI PUSH1 0x7 SLOAD PUSH2 0x1DCD DUP3 PUSH1 0x0 ADD SLOAD DUP5 PUSH2 0x2B84 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST GT ISZERO PUSH2 0x1E41 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x5573657220616D6F756E742061626F7665206C696D6974000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST PUSH2 0x1E4A PUSH2 0x27ED JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 ADD SLOAD GT ISZERO PUSH2 0x1EF7 JUMPI PUSH1 0x0 PUSH2 0x1E9C DUP3 PUSH1 0x1 ADD SLOAD PUSH2 0x1E8E PUSH1 0x9 SLOAD PUSH2 0x1E80 PUSH1 0x3 SLOAD DUP8 PUSH1 0x0 ADD SLOAD PUSH2 0x2950 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x29D6 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2A5F SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x1EF5 JUMPI PUSH2 0x1EF4 CALLER DUP3 PUSH1 0xA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2AE2 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST POP JUMPDEST PUSH1 0x0 DUP3 GT ISZERO PUSH2 0x1F6F JUMPI PUSH2 0x1F17 DUP3 DUP3 PUSH1 0x0 ADD SLOAD PUSH2 0x2B84 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP PUSH2 0x1F6E CALLER ADDRESS DUP5 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2C0C SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST PUSH2 0x1F9C PUSH1 0x9 SLOAD PUSH2 0x1F8E PUSH1 0x3 SLOAD DUP5 PUSH1 0x0 ADD SLOAD PUSH2 0x2950 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x29D6 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xE1FFFCC4923D04B559F4D29A8BFC6CDA04EB5B0D3C460751C2402C5C5CC9109C DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP PUSH1 0x1 DUP1 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SLOAD EQ ISZERO PUSH2 0x20A8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x1 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0xC PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD SLOAD SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x0 DUP3 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x2167 JUMPI PUSH2 0x2166 CALLER DUP3 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2AE2 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x5FAFA99D0643513820BE26656B45130B01E1C03062E1266BF36F88CBD3BD9695 DUP3 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP PUSH1 0x1 DUP1 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x21C8 PUSH2 0x27E5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x21E6 PUSH2 0x1800 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x226F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD NUMBER LT PUSH2 0x22E6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x16 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x506F6F6C2068617320616C726561647920656E64656400000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 DUP2 GT ISZERO PUSH2 0x235F 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 0x3131 PUSH1 0x2C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2367 PUSH2 0x27ED JUMP JUMPDEST DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP PUSH32 0xC4D677EEF92893AC7EC52FAF8140FC6C851AB4736302B4F3A89DFB20696A0DF DUP2 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x23B0 PUSH2 0x27E5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x23CE PUSH2 0x1800 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2457 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x24DD 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 0x310B PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0xC PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2669 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x267D 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 0x2693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP1 POP PUSH1 0x6 SLOAD NUMBER GT DUP1 ISZERO PUSH2 0x26B8 JUMPI POP PUSH1 0x0 DUP2 EQ ISZERO JUMPDEST ISZERO PUSH2 0x2772 JUMPI PUSH1 0x0 PUSH2 0x26CB PUSH1 0x6 SLOAD NUMBER PUSH2 0x2CCD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x26E4 PUSH1 0x8 SLOAD DUP4 PUSH2 0x2950 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2723 PUSH2 0x2712 DUP6 PUSH2 0x2704 PUSH1 0x9 SLOAD DUP7 PUSH2 0x2950 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x29D6 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x2B84 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x2766 DUP6 PUSH1 0x1 ADD SLOAD PUSH2 0x2758 PUSH1 0x9 SLOAD PUSH2 0x274A DUP6 DUP11 PUSH1 0x0 ADD SLOAD PUSH2 0x2950 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x29D6 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2A5F SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP6 POP POP POP POP POP POP PUSH2 0x27BA JUMP JUMPDEST PUSH2 0x27B5 DUP3 PUSH1 0x1 ADD SLOAD PUSH2 0x27A7 PUSH1 0x9 SLOAD PUSH2 0x2799 PUSH1 0x3 SLOAD DUP8 PUSH1 0x0 ADD SLOAD PUSH2 0x2950 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x29D6 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2A5F SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0xA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x6 SLOAD NUMBER GT PUSH2 0x27FB JUMPI PUSH2 0x294E JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2886 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x289A 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 0x28B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP1 POP PUSH1 0x0 DUP2 EQ ISZERO PUSH2 0x28D9 JUMPI NUMBER PUSH1 0x6 DUP2 SWAP1 SSTORE POP POP PUSH2 0x294E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28E7 PUSH1 0x6 SLOAD NUMBER PUSH2 0x2CCD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2900 PUSH1 0x8 SLOAD DUP4 PUSH2 0x2950 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x293D PUSH2 0x292C DUP5 PUSH2 0x291E PUSH1 0x9 SLOAD DUP6 PUSH2 0x2950 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x29D6 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x2B84 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x3 DUP2 SWAP1 SSTORE POP NUMBER PUSH1 0x6 DUP2 SWAP1 SSTORE POP POP POP POP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 EQ ISZERO PUSH2 0x2963 JUMPI PUSH1 0x0 SWAP1 POP PUSH2 0x29D0 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MUL SWAP1 POP DUP3 DUP5 DUP3 DUP2 PUSH2 0x2974 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x29CB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x31E1 PUSH1 0x21 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 GT PUSH2 0x2A4D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x536166654D6174683A206469766973696F6E206279207A65726F000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP4 DUP2 PUSH2 0x2A56 JUMPI INVALID JUMPDEST DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0x2AD7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x536166654D6174683A207375627472616374696F6E206F766572666C6F770000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP4 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B7F DUP4 PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x2D22 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 ADD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x2C02 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2CC7 DUP5 PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x2D22 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD DUP3 GT PUSH2 0x2CF2 JUMPI PUSH2 0x2CEB DUP4 DUP4 PUSH2 0x2A5F SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1C JUMP JUMPDEST PUSH1 0x4 SLOAD DUP4 LT PUSH2 0x2D04 JUMPI PUSH1 0x0 SWAP1 POP PUSH2 0x2D1C JUMP JUMPDEST PUSH2 0x2D19 DUP4 PUSH1 0x4 SLOAD PUSH2 0x2A5F SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2D84 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2E11 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x2E0C JUMPI DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x2E0B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x3231 PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2E20 DUP5 DUP5 PUSH1 0x0 DUP6 PUSH2 0x2E29 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x2E84 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 0x318B PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2E8D DUP6 PUSH2 0x2FD2 JUMP JUMPDEST PUSH2 0x2EFF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1D DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP8 PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2F4F JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP4 SUB SWAP3 POP PUSH2 0x2F2C JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2FB1 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2FB6 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x2FC6 DUP3 DUP3 DUP7 PUSH2 0x2FE5 JUMP JUMPDEST SWAP3 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 EXTCODESIZE SWAP1 POP PUSH1 0x0 DUP2 GT SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x2FF5 JUMPI DUP3 SWAP1 POP PUSH2 0x30AA JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD GT ISZERO PUSH2 0x3008 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x306F JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3054 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x309C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID MSTORE8 PUSH21 0x616B656420746F6B656E20616E6420526577617264 KECCAK256 SLOAD PUSH16 0x6B656E2063616E6E6F74206265207468 PUSH6 0x2073616D6553 PUSH21 0x617274626C6F636B206D757374206265206265666F PUSH19 0x652072657761726473456E64426C6F636B4F77 PUSH15 0x61626C653A206E6577206F776E6572 KECCAK256 PUSH10 0x7320746865207A65726F KECCAK256 PUSH2 0x6464 PUSH19 0x65737343616E277420696E6372656173652072 PUSH6 0x776172647320 PUSH14 0x6F7265207468616E20746865206D PUSH2 0x7820 PUSH4 0x61704E65 PUSH24 0x207374617274426C6F636B206D757374206265206C6F7765 PUSH19 0x207468616E206E657720656E64426C6F636B41 PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH10 0x6E73756666696369656E PUSH21 0x2062616C616E636520666F722063616C6C4E657720 PUSH20 0x74617274426C6F636B206D757374206265206869 PUSH8 0x686572207468616E KECCAK256 PUSH4 0x75727265 PUSH15 0x7420626C6F636B536166654D617468 GASPRICE KECCAK256 PUSH14 0x756C7469706C69636174696F6E20 PUSH16 0x766572666C6F77526577617264207065 PUSH19 0x20626C6F636B2063616E2774206265206D6F72 PUSH6 0x207468616E20 PUSH21 0x6865206D6178206361705361666545524332303A20 GASLIMIT MSTORE NUMBER ORIGIN ADDRESS KECCAK256 PUSH16 0x7065726174696F6E20646964206E6F74 KECCAK256 PUSH20 0x756363656564A26469706673582212206C896E88 0x5D SELFDESTRUCT 0xCC PUSH30 0xF8343900E40399336509162A8F33A5D8C75F7061768EEDAD64736F6C6343 STOP MOD 0xC STOP CALLER ",
"sourceMap": "39412:12554:0:-:0;;;41373:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37912:17;37932:12;:10;;;:12;;:::i;:::-;37912:32;;37964:9;37955:6;;:18;;;;;;;;;;;;;;;;;;38022:9;37989:43;;38018:1;37989:43;;;;;;;;;;;;37877:163;1881:1;2002:7;:22;;;;41456:10;41434:32;;;;;;;;;;;;41500:21;41477:44;;;;;;41373:156;39412:12554;;10996:106;11049:15;11084:10;11077:17;;10996:106;:::o;39412:12554::-;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"immutableReferences": {
"1616": [
{
"length": 32,
"start": 5037
},
{
"length": 32,
"start": 6772
}
],
"1634": [
{
"length": 32,
"start": 2151
},
{
"length": 32,
"start": 5452
},
{
"length": 32,
"start": 7346
},
{
"length": 32,
"start": 8936
}
]
},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106101cf5760003560e01c806392e8990e11610104578063cc7a262e116100a2578063e113db6f11610071578063e113db6f14610641578063f2fde38b1461066f578063f40f0f52146106b3578063f7c618c11461070b576101cf565b8063cc7a262e146105c7578063ccd34cd5146105fb578063ce872d8714610619578063db2e21bc14610637576101cf565b8063a0b40905116100de578063a0b4090514610523578063a1c1ce8b1461055d578063a9f8d1811461057b578063b6b55f2514610599576101cf565b806392e8990e146104975780639513997f146104b75780639b1e3f4e146104ef576101cf565b806366fe9f8a1161017157806383a5041c1161014b57806383a5041c1461037b5780638ae39cac146104275780638da5cb5b146104455780638f66291514610479576101cf565b806366fe9f8a14610349578063715018a61461036757806380dc067214610371576101cf565b80633279beab116101ad5780633279beab1461028f578063392e53cd146102bd5780633f138d4b146102dd57806348cd4cb11461032b576101cf565b806301f8a976146101d45780631959a002146102025780632e1a7d4d14610261575b600080fd5b610200600480360360208110156101ea57600080fd5b810190808035906020019092919050505061073f565b005b6102446004803603602081101561021857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061091f565b604051808381526020018281526020019250505060405180910390f35b61028d6004803603602081101561027757600080fd5b8101908080359060200190929190505050610943565b005b6102bb600480360360208110156102a557600080fd5b8101908080359060200190929190505050610c2c565b005b6102c5610d79565b60405180821515815260200191505060405180910390f35b610329600480360360408110156102f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d8c565b005b610333611047565b6040518082815260200191505060405180910390f35b61035161104d565b6040518082815260200191505060405180910390f35b61036f611053565b005b6103796111c0565b005b610425600480360360e081101561039157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611328565b005b61042f6117fa565b6040518082815260200191505060405180910390f35b61044d611800565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610481611829565b6040518082815260200191505060405180910390f35b61049f61182f565b60405180821515815260200191505060405180910390f35b6104ed600480360360408110156104cd57600080fd5b810190808035906020019092919080359060200190929190505050611842565b005b6104f7611a72565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61055b6004803603604081101561053957600080fd5b8101908080351515906020019092919080359060200190929190505050611a96565b005b610565611cb0565b6040518082815260200191505060405180910390f35b610583611cd4565b6040518082815260200191505060405180910390f35b6105c5600480360360208110156105af57600080fd5b8101908080359060200190929190505050611cda565b005b6105cf611ffd565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610603612023565b6040518082815260200191505060405180910390f35b610621612029565b6040518082815260200191505060405180910390f35b61063f61202f565b005b61066d6004803603602081101561065757600080fd5b81019080803590602001909291905050506121c0565b005b6106b16004803603602081101561068557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123a8565b005b6106f5600480360360208110156106c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061259a565b6040518082815260200191505060405180910390f35b6107136127bf565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107476127e5565b73ffffffffffffffffffffffffffffffffffffffff16610765611800565b73ffffffffffffffffffffffffffffffffffffffff16146107ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6005544310610865576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f506f6f6c2068617320737461727465640000000000000000000000000000000081525060200191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008111156108de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613131602c913960400191505060405180910390fd5b806008819055507f0c4d677eef92893ac7ec52faf8140fc6c851ab4736302b4f3a89dfb20696a0df816040518082815260200191505060405180910390a150565b600c6020528060005260406000206000915090508060000154908060010154905082565b600260015414156109bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026001819055506000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508181600001541015610a81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f416d6f756e7420746f20776974686472617720746f6f2068696768000000000081525060200191505060405180910390fd5b610a896127ed565b6000610ace8260010154610ac0600954610ab2600354876000015461295090919063ffffffff16565b6129d690919063ffffffff16565b612a5f90919063ffffffff16565b90506000831115610b4657610af0838360000154612a5f90919063ffffffff16565b8260000181905550610b453384600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612ae29092919063ffffffff16565b5b6000811115610b9d57610b9c3382600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612ae29092919063ffffffff16565b5b610bca600954610bbc600354856000015461295090919063ffffffff16565b6129d690919063ffffffff16565b82600101819055503373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364846040518082815260200191505060405180910390a250506001808190555050565b610c346127e5565b73ffffffffffffffffffffffffffffffffffffffff16610c52611800565b73ffffffffffffffffffffffffffffffffffffffff1614610cdb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610d283382600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612ae29092919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167f2d4434bb59801e733e9ce3df40b0c5518861a5fcdeec1906e83e03c755872b42826040518082815260200191505060405180910390a250565b600260019054906101000a900460ff1681565b610d946127e5565b73ffffffffffffffffffffffffffffffffffffffff16610db2611800565b73ffffffffffffffffffffffffffffffffffffffff1614610e3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610eff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f43616e6e6f74206265207374616b656420746f6b656e0000000000000000000081525060200191505060405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fc3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f43616e6e6f742062652072657761726420746f6b656e0000000000000000000081525060200191505060405180910390fd5b610fee33828473ffffffffffffffffffffffffffffffffffffffff16612ae29092919063ffffffff16565b7f74545154aac348a3eac92596bd1971957ca94795f4e954ec5f613b55fab781298282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b60055481565b60075481565b61105b6127e5565b73ffffffffffffffffffffffffffffffffffffffff16611079611800565b73ffffffffffffffffffffffffffffffffffffffff1614611102576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6111c86127e5565b73ffffffffffffffffffffffffffffffffffffffff166111e6611800565b73ffffffffffffffffffffffffffffffffffffffff161461126f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60045443106112e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526577617264732068617320616c726561647920656e6465640000000000000081525060200191505060405180910390fd5b436004819055507ffed9fcb0ca3d1e761a4b929792bb24082fba92dca81252646ad306d3068065666004546040518082815260200191505060405180910390a1565b600260019054906101000a900460ff16156113ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f416c726561647920696e697469616c697a65640000000000000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461146c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4e6f7420666163746f727900000000000000000000000000000000000000000081525060200191505060405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614156114f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806130b26030913960400191505060405180910390fd5b8284111561154a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806130e26029913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008511156115c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180613202602f913960400191505060405180910390fd5b6001600260016101000a81548160ff02191690831515021790555086600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600881905550836005819055508260048190555060008211156116a1576001600260006101000a81548160ff021916908315150217905550816007819055505b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561170b57600080fd5b505afa15801561171f573d6000803e3d6000fd5b505050506040513d602081101561173557600080fd5b810190808051906020019092919050505060ff169050602481106117c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d75737420626520696e666572696f7220746f2033360000000000000000000081525060200191505060405180910390fd5b6117d5816024612a5f90919063ffffffff16565b600a0a6009819055506005546006819055506117f0826123a8565b5050505050505050565b60085481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60035481565b600260009054906101000a900460ff1681565b61184a6127e5565b73ffffffffffffffffffffffffffffffffffffffff16611868611800565b73ffffffffffffffffffffffffffffffffffffffff16146118f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6005544310611968576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f506f6f6c2068617320737461727465640000000000000000000000000000000081525060200191505060405180910390fd5b8082106119c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061315d602e913960400191505060405180910390fd5b814310611a18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806131b16030913960400191505060405180910390fd5b81600581905550806004819055506005546006819055507f7cd0ab87d19036f3dfadadb232c78aa4879dda3f0c994a9d637532410ee2ce068282604051808381526020018281526020019250505060405180910390a15050565b7f000000000000000000000000000000000000000000000000000000000000000081565b611a9e6127e5565b73ffffffffffffffffffffffffffffffffffffffff16611abc611800565b73ffffffffffffffffffffffffffffffffffffffff1614611b45576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600260009054906101000a900460ff16611bc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4d7573742062652073657400000000000000000000000000000000000000000081525060200191505060405180910390fd5b8115611c50576007548111611c44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6577206c696d6974206d75737420626520686967686572000000000000000081525060200191505060405180910390fd5b80600781905550611c73565b81600260006101000a81548160ff02191690831515021790555060006007819055505b7f241f67ee5f41b7a5cabf911367329be7215900f602ebfc47f89dce2a6bcd847c6007546040518082815260200191505060405180910390a15050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60065481565b60026001541415611d53576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026001819055506000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600260009054906101000a900460ff1615611e4257600754611dcd826000015484612b8490919063ffffffff16565b1115611e41576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f5573657220616d6f756e742061626f7665206c696d697400000000000000000081525060200191505060405180910390fd5b5b611e4a6127ed565b600081600001541115611ef7576000611e9c8260010154611e8e600954611e80600354876000015461295090919063ffffffff16565b6129d690919063ffffffff16565b612a5f90919063ffffffff16565b90506000811115611ef557611ef43382600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612ae29092919063ffffffff16565b5b505b6000821115611f6f57611f17828260000154612b8490919063ffffffff16565b8160000181905550611f6e333084600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612c0c909392919063ffffffff16565b5b611f9c600954611f8e600354846000015461295090919063ffffffff16565b6129d690919063ffffffff16565b81600101819055503373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c836040518082815260200191505060405180910390a2506001808190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b60045481565b600260015414156120a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026001819055506000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160000154905060008260000181905550600082600101819055506000811115612167576121663382600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612ae29092919063ffffffff16565b5b3373ffffffffffffffffffffffffffffffffffffffff167f5fafa99d0643513820be26656b45130b01e1c03062e1266bf36f88cbd3bd9695826040518082815260200191505060405180910390a2505060018081905550565b6121c86127e5565b73ffffffffffffffffffffffffffffffffffffffff166121e6611800565b73ffffffffffffffffffffffffffffffffffffffff161461226f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60045443106122e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f506f6f6c2068617320616c726561647920656e6465640000000000000000000081525060200191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081111561235f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613131602c913960400191505060405180910390fd5b6123676127ed565b806008819055507f0c4d677eef92893ac7ec52faf8140fc6c851ab4736302b4f3a89dfb20696a0df816040518082815260200191505060405180910390a150565b6123b06127e5565b73ffffffffffffffffffffffffffffffffffffffff166123ce611800565b73ffffffffffffffffffffffffffffffffffffffff1614612457576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156124dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061310b6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561266957600080fd5b505afa15801561267d573d6000803e3d6000fd5b505050506040513d602081101561269357600080fd5b81019080805190602001909291905050509050600654431180156126b8575060008114155b156127725760006126cb60065443612ccd565b905060006126e46008548361295090919063ffffffff16565b90506000612723612712856127046009548661295090919063ffffffff16565b6129d690919063ffffffff16565b600354612b8490919063ffffffff16565b9050612766856001015461275860095461274a858a6000015461295090919063ffffffff16565b6129d690919063ffffffff16565b612a5f90919063ffffffff16565b955050505050506127ba565b6127b582600101546127a7600954612799600354876000015461295090919063ffffffff16565b6129d690919063ffffffff16565b612a5f90919063ffffffff16565b925050505b919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60065443116127fb5761294e565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561288657600080fd5b505afa15801561289a573d6000803e3d6000fd5b505050506040513d60208110156128b057600080fd5b8101908080519060200190929190505050905060008114156128d957436006819055505061294e565b60006128e760065443612ccd565b905060006129006008548361295090919063ffffffff16565b905061293d61292c8461291e6009548561295090919063ffffffff16565b6129d690919063ffffffff16565b600354612b8490919063ffffffff16565b600381905550436006819055505050505b565b60008083141561296357600090506129d0565b600082840290508284828161297457fe5b04146129cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806131e16021913960400191505060405180910390fd5b809150505b92915050565b6000808211612a4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b818381612a5657fe5b04905092915050565b600082821115612ad7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b612b7f8363a9059cbb60e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612d22565b505050565b600080828401905083811015612c02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b612cc7846323b872dd60e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612d22565b50505050565b60006004548211612cf257612ceb8383612a5f90919063ffffffff16565b9050612d1c565b6004548310612d045760009050612d1c565b612d1983600454612a5f90919063ffffffff16565b90505b92915050565b6060612d84826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612e119092919063ffffffff16565b9050600081511115612e0c57808060200190516020811015612da557600080fd5b8101908080519060200190929190505050612e0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613231602a913960400191505060405180910390fd5b5b505050565b6060612e208484600085612e29565b90509392505050565b606082471015612e84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061318b6026913960400191505060405180910390fd5b612e8d85612fd2565b612eff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310612f4f5780518252602082019150602081019050602083039250612f2c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612fb1576040519150601f19603f3d011682016040523d82523d6000602084013e612fb6565b606091505b5091509150612fc6828286612fe5565b92505050949350505050565b600080823b905060008111915050919050565b60608315612ff5578290506130aa565b6000835111156130085782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561306f578082015181840152602081019050613054565b50505050905090810190601f16801561309c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b939250505056fe5374616b656420746f6b656e20616e642052657761726420546f6b656e2063616e6e6f74206265207468652073616d655374617274626c6f636b206d757374206265206265666f72652072657761726473456e64426c6f636b4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737343616e277420696e6372656173652072657761726473206d6f7265207468616e20746865206d6178206361704e6577207374617274426c6f636b206d757374206265206c6f776572207468616e206e657720656e64426c6f636b416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4e6577207374617274426c6f636b206d75737420626520686967686572207468616e2063757272656e7420626c6f636b536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775265776172642070657220626c6f636b2063616e2774206265206d6f7265207468616e20746865206d6178206361705361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212206c896e885dffcc7df8343900e40399336509162a8f33a5d8c75f7061768eedad64736f6c634300060c0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1CF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x92E8990E GT PUSH2 0x104 JUMPI DUP1 PUSH4 0xCC7A262E GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xE113DB6F GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xE113DB6F EQ PUSH2 0x641 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x66F JUMPI DUP1 PUSH4 0xF40F0F52 EQ PUSH2 0x6B3 JUMPI DUP1 PUSH4 0xF7C618C1 EQ PUSH2 0x70B JUMPI PUSH2 0x1CF JUMP JUMPDEST DUP1 PUSH4 0xCC7A262E EQ PUSH2 0x5C7 JUMPI DUP1 PUSH4 0xCCD34CD5 EQ PUSH2 0x5FB JUMPI DUP1 PUSH4 0xCE872D87 EQ PUSH2 0x619 JUMPI DUP1 PUSH4 0xDB2E21BC EQ PUSH2 0x637 JUMPI PUSH2 0x1CF JUMP JUMPDEST DUP1 PUSH4 0xA0B40905 GT PUSH2 0xDE JUMPI DUP1 PUSH4 0xA0B40905 EQ PUSH2 0x523 JUMPI DUP1 PUSH4 0xA1C1CE8B EQ PUSH2 0x55D JUMPI DUP1 PUSH4 0xA9F8D181 EQ PUSH2 0x57B JUMPI DUP1 PUSH4 0xB6B55F25 EQ PUSH2 0x599 JUMPI PUSH2 0x1CF JUMP JUMPDEST DUP1 PUSH4 0x92E8990E EQ PUSH2 0x497 JUMPI DUP1 PUSH4 0x9513997F EQ PUSH2 0x4B7 JUMPI DUP1 PUSH4 0x9B1E3F4E EQ PUSH2 0x4EF JUMPI PUSH2 0x1CF JUMP JUMPDEST DUP1 PUSH4 0x66FE9F8A GT PUSH2 0x171 JUMPI DUP1 PUSH4 0x83A5041C GT PUSH2 0x14B JUMPI DUP1 PUSH4 0x83A5041C EQ PUSH2 0x37B JUMPI DUP1 PUSH4 0x8AE39CAC EQ PUSH2 0x427 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x445 JUMPI DUP1 PUSH4 0x8F662915 EQ PUSH2 0x479 JUMPI PUSH2 0x1CF JUMP JUMPDEST DUP1 PUSH4 0x66FE9F8A EQ PUSH2 0x349 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x367 JUMPI DUP1 PUSH4 0x80DC0672 EQ PUSH2 0x371 JUMPI PUSH2 0x1CF JUMP JUMPDEST DUP1 PUSH4 0x3279BEAB GT PUSH2 0x1AD JUMPI DUP1 PUSH4 0x3279BEAB EQ PUSH2 0x28F JUMPI DUP1 PUSH4 0x392E53CD EQ PUSH2 0x2BD JUMPI DUP1 PUSH4 0x3F138D4B EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0x48CD4CB1 EQ PUSH2 0x32B JUMPI PUSH2 0x1CF JUMP JUMPDEST DUP1 PUSH4 0x1F8A976 EQ PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x1959A002 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x261 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x200 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x73F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x244 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x218 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x91F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x28D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x277 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x943 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2BB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xC2C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2C5 PUSH2 0xD79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x329 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xD8C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x333 PUSH2 0x1047 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x351 PUSH2 0x104D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x36F PUSH2 0x1053 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x379 PUSH2 0x11C0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x425 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x391 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1328 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x42F PUSH2 0x17FA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x44D PUSH2 0x1800 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x481 PUSH2 0x1829 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x49F PUSH2 0x182F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4ED PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x4CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1842 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4F7 PUSH2 0x1A72 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x55B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x539 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD ISZERO ISZERO SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1A96 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x565 PUSH2 0x1CB0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x583 PUSH2 0x1CD4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x5C5 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1CDA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5CF PUSH2 0x1FFD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x603 PUSH2 0x2023 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x621 PUSH2 0x2029 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x63F PUSH2 0x202F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x66D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x657 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x21C0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6B1 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x685 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x23A8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6F5 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x6C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x259A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x713 PUSH2 0x27BF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x747 PUSH2 0x27E5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x765 PUSH2 0x1800 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x7EE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD NUMBER LT PUSH2 0x865 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x506F6F6C20686173207374617274656400000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 DUP2 GT ISZERO PUSH2 0x8DE 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 0x3131 PUSH1 0x2C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP PUSH32 0xC4D677EEF92893AC7EC52FAF8140FC6C851AB4736302B4F3A89DFB20696A0DF DUP2 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0xC PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SLOAD EQ ISZERO PUSH2 0x9BC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x1 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0xC PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP2 DUP2 PUSH1 0x0 ADD SLOAD LT ISZERO PUSH2 0xA81 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x416D6F756E7420746F20776974686472617720746F6F20686967680000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA89 PUSH2 0x27ED JUMP JUMPDEST PUSH1 0x0 PUSH2 0xACE DUP3 PUSH1 0x1 ADD SLOAD PUSH2 0xAC0 PUSH1 0x9 SLOAD PUSH2 0xAB2 PUSH1 0x3 SLOAD DUP8 PUSH1 0x0 ADD SLOAD PUSH2 0x2950 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x29D6 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2A5F SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP4 GT ISZERO PUSH2 0xB46 JUMPI PUSH2 0xAF0 DUP4 DUP4 PUSH1 0x0 ADD SLOAD PUSH2 0x2A5F SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP3 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP PUSH2 0xB45 CALLER DUP5 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2AE2 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP2 GT ISZERO PUSH2 0xB9D JUMPI PUSH2 0xB9C CALLER DUP3 PUSH1 0xA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2AE2 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST PUSH2 0xBCA PUSH1 0x9 SLOAD PUSH2 0xBBC PUSH1 0x3 SLOAD DUP6 PUSH1 0x0 ADD SLOAD PUSH2 0x2950 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x29D6 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP3 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x884EDAD9CE6FA2440D8A54CC123490EB96D2768479D49FF9C7366125A9424364 DUP5 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP PUSH1 0x1 DUP1 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0xC34 PUSH2 0x27E5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC52 PUSH2 0x1800 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xCDB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD28 CALLER DUP3 PUSH1 0xA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2AE2 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x2D4434BB59801E733E9CE3DF40B0C5518861A5FCDEEC1906E83E03C755872B42 DUP3 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xD94 PUSH2 0x27E5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xDB2 PUSH2 0x1800 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xE3B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xEFF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x16 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x43616E6E6F74206265207374616B656420746F6B656E00000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xFC3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x16 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x43616E6E6F742062652072657761726420746F6B656E00000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFEE CALLER DUP3 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2AE2 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH32 0x74545154AAC348A3EAC92596BD1971957CA94795F4E954EC5F613B55FAB78129 DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x105B PUSH2 0x27E5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1079 PUSH2 0x1800 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1102 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x11C8 PUSH2 0x27E5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x11E6 PUSH2 0x1800 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x126F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD NUMBER LT PUSH2 0x12E6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x19 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x526577617264732068617320616C726561647920656E64656400000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST NUMBER PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH32 0xFED9FCB0CA3D1E761A4B929792BB24082FBA92DCA81252646AD306D306806566 PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x13AB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x13 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x416C726561647920696E697469616C697A656400000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x146C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0xB DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4E6F7420666163746F7279000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x14F1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x30 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x30B2 PUSH1 0x30 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP5 GT ISZERO PUSH2 0x154A 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 0x30E2 PUSH1 0x29 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 DUP6 GT ISZERO PUSH2 0x15C3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x3202 PUSH1 0x2F SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x2 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP7 PUSH1 0xB PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP6 PUSH1 0xA PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP5 PUSH1 0x8 DUP2 SWAP1 SSTORE POP DUP4 PUSH1 0x5 DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH1 0x0 DUP3 GT ISZERO PUSH2 0x16A1 JUMPI PUSH1 0x1 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP JUMPDEST PUSH1 0x0 PUSH1 0xA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x313CE567 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 0x170B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x171F 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 0x1735 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH1 0xFF AND SWAP1 POP PUSH1 0x24 DUP2 LT PUSH2 0x17C1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x16 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4D75737420626520696E666572696F7220746F20333600000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x17D5 DUP2 PUSH1 0x24 PUSH2 0x2A5F SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0xA EXP PUSH1 0x9 DUP2 SWAP1 SSTORE POP PUSH1 0x5 SLOAD PUSH1 0x6 DUP2 SWAP1 SSTORE POP PUSH2 0x17F0 DUP3 PUSH2 0x23A8 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x184A PUSH2 0x27E5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1868 PUSH2 0x1800 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x18F1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD NUMBER LT PUSH2 0x1968 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x506F6F6C20686173207374617274656400000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP3 LT PUSH2 0x19C0 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 0x315D PUSH1 0x2E SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 NUMBER LT PUSH2 0x1A18 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x30 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x31B1 PUSH1 0x30 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH1 0x5 SLOAD PUSH1 0x6 DUP2 SWAP1 SSTORE POP PUSH32 0x7CD0AB87D19036F3DFADADB232C78AA4879DDA3F0C994A9D637532410EE2CE06 DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1A9E PUSH2 0x27E5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1ABC PUSH2 0x1800 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1B45 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1BC7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0xB DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4D75737420626520736574000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 ISZERO PUSH2 0x1C50 JUMPI PUSH1 0x7 SLOAD DUP2 GT PUSH2 0x1C44 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x18 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4E6577206C696D6974206D757374206265206869676865720000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x7 DUP2 SWAP1 SSTORE POP PUSH2 0x1C73 JUMP JUMPDEST DUP2 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x7 DUP2 SWAP1 SSTORE POP JUMPDEST PUSH32 0x241F67EE5F41B7A5CABF911367329BE7215900F602EBFC47F89DCE2A6BCD847C PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SLOAD EQ ISZERO PUSH2 0x1D53 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x1 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0xC PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1E42 JUMPI PUSH1 0x7 SLOAD PUSH2 0x1DCD DUP3 PUSH1 0x0 ADD SLOAD DUP5 PUSH2 0x2B84 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST GT ISZERO PUSH2 0x1E41 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x17 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x5573657220616D6F756E742061626F7665206C696D6974000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST PUSH2 0x1E4A PUSH2 0x27ED JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 ADD SLOAD GT ISZERO PUSH2 0x1EF7 JUMPI PUSH1 0x0 PUSH2 0x1E9C DUP3 PUSH1 0x1 ADD SLOAD PUSH2 0x1E8E PUSH1 0x9 SLOAD PUSH2 0x1E80 PUSH1 0x3 SLOAD DUP8 PUSH1 0x0 ADD SLOAD PUSH2 0x2950 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x29D6 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2A5F SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x1EF5 JUMPI PUSH2 0x1EF4 CALLER DUP3 PUSH1 0xA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2AE2 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST POP JUMPDEST PUSH1 0x0 DUP3 GT ISZERO PUSH2 0x1F6F JUMPI PUSH2 0x1F17 DUP3 DUP3 PUSH1 0x0 ADD SLOAD PUSH2 0x2B84 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP PUSH2 0x1F6E CALLER ADDRESS DUP5 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2C0C SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST PUSH2 0x1F9C PUSH1 0x9 SLOAD PUSH2 0x1F8E PUSH1 0x3 SLOAD DUP5 PUSH1 0x0 ADD SLOAD PUSH2 0x2950 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x29D6 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xE1FFFCC4923D04B559F4D29A8BFC6CDA04EB5B0D3C460751C2402C5C5CC9109C DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP PUSH1 0x1 DUP1 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x1 SLOAD EQ ISZERO PUSH2 0x20A8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x5265656E7472616E637947756172643A207265656E7472616E742063616C6C00 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x1 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0xC PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD SLOAD SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x0 DUP3 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x2167 JUMPI PUSH2 0x2166 CALLER DUP3 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2AE2 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x5FAFA99D0643513820BE26656B45130B01E1C03062E1266BF36F88CBD3BD9695 DUP3 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP PUSH1 0x1 DUP1 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x21C8 PUSH2 0x27E5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x21E6 PUSH2 0x1800 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x226F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x4 SLOAD NUMBER LT PUSH2 0x22E6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x16 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x506F6F6C2068617320616C726561647920656E64656400000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 DUP2 GT ISZERO PUSH2 0x235F 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 0x3131 PUSH1 0x2C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2367 PUSH2 0x27ED JUMP JUMPDEST DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP PUSH32 0xC4D677EEF92893AC7EC52FAF8140FC6C851AB4736302B4F3A89DFB20696A0DF DUP2 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x23B0 PUSH2 0x27E5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x23CE PUSH2 0x1800 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2457 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x24DD 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 0x310B PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0xC PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2669 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x267D 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 0x2693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP1 POP PUSH1 0x6 SLOAD NUMBER GT DUP1 ISZERO PUSH2 0x26B8 JUMPI POP PUSH1 0x0 DUP2 EQ ISZERO JUMPDEST ISZERO PUSH2 0x2772 JUMPI PUSH1 0x0 PUSH2 0x26CB PUSH1 0x6 SLOAD NUMBER PUSH2 0x2CCD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x26E4 PUSH1 0x8 SLOAD DUP4 PUSH2 0x2950 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2723 PUSH2 0x2712 DUP6 PUSH2 0x2704 PUSH1 0x9 SLOAD DUP7 PUSH2 0x2950 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x29D6 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x2B84 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x2766 DUP6 PUSH1 0x1 ADD SLOAD PUSH2 0x2758 PUSH1 0x9 SLOAD PUSH2 0x274A DUP6 DUP11 PUSH1 0x0 ADD SLOAD PUSH2 0x2950 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x29D6 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2A5F SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP6 POP POP POP POP POP POP PUSH2 0x27BA JUMP JUMPDEST PUSH2 0x27B5 DUP3 PUSH1 0x1 ADD SLOAD PUSH2 0x27A7 PUSH1 0x9 SLOAD PUSH2 0x2799 PUSH1 0x3 SLOAD DUP8 PUSH1 0x0 ADD SLOAD PUSH2 0x2950 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x29D6 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2A5F SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0xA PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x6 SLOAD NUMBER GT PUSH2 0x27FB JUMPI PUSH2 0x294E JUMP JUMPDEST PUSH1 0x0 PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2886 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x289A 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 0x28B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP1 POP PUSH1 0x0 DUP2 EQ ISZERO PUSH2 0x28D9 JUMPI NUMBER PUSH1 0x6 DUP2 SWAP1 SSTORE POP POP PUSH2 0x294E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28E7 PUSH1 0x6 SLOAD NUMBER PUSH2 0x2CCD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2900 PUSH1 0x8 SLOAD DUP4 PUSH2 0x2950 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x293D PUSH2 0x292C DUP5 PUSH2 0x291E PUSH1 0x9 SLOAD DUP6 PUSH2 0x2950 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x29D6 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x2B84 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x3 DUP2 SWAP1 SSTORE POP NUMBER PUSH1 0x6 DUP2 SWAP1 SSTORE POP POP POP POP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 EQ ISZERO PUSH2 0x2963 JUMPI PUSH1 0x0 SWAP1 POP PUSH2 0x29D0 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MUL SWAP1 POP DUP3 DUP5 DUP3 DUP2 PUSH2 0x2974 JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x29CB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x31E1 PUSH1 0x21 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 GT PUSH2 0x2A4D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x536166654D6174683A206469766973696F6E206279207A65726F000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP4 DUP2 PUSH2 0x2A56 JUMPI INVALID JUMPDEST DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0x2AD7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x536166654D6174683A207375627472616374696F6E206F766572666C6F770000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP4 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B7F DUP4 PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x2D22 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 ADD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x2C02 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2CC7 DUP5 PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x2D22 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD DUP3 GT PUSH2 0x2CF2 JUMPI PUSH2 0x2CEB DUP4 DUP4 PUSH2 0x2A5F SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1C JUMP JUMPDEST PUSH1 0x4 SLOAD DUP4 LT PUSH2 0x2D04 JUMPI PUSH1 0x0 SWAP1 POP PUSH2 0x2D1C JUMP JUMPDEST PUSH2 0x2D19 DUP4 PUSH1 0x4 SLOAD PUSH2 0x2A5F SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2D84 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2E11 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x2E0C JUMPI DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x2E0B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2A DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x3231 PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2E20 DUP5 DUP5 PUSH1 0x0 DUP6 PUSH2 0x2E29 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x2E84 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 0x318B PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2E8D DUP6 PUSH2 0x2FD2 JUMP JUMPDEST PUSH2 0x2EFF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1D DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP8 PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2F4F JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP4 SUB SWAP3 POP PUSH2 0x2F2C JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2FB1 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2FB6 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x2FC6 DUP3 DUP3 DUP7 PUSH2 0x2FE5 JUMP JUMPDEST SWAP3 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 EXTCODESIZE SWAP1 POP PUSH1 0x0 DUP2 GT SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x2FF5 JUMPI DUP3 SWAP1 POP PUSH2 0x30AA JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD GT ISZERO PUSH2 0x3008 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x306F JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3054 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x309C JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID MSTORE8 PUSH21 0x616B656420746F6B656E20616E6420526577617264 KECCAK256 SLOAD PUSH16 0x6B656E2063616E6E6F74206265207468 PUSH6 0x2073616D6553 PUSH21 0x617274626C6F636B206D757374206265206265666F PUSH19 0x652072657761726473456E64426C6F636B4F77 PUSH15 0x61626C653A206E6577206F776E6572 KECCAK256 PUSH10 0x7320746865207A65726F KECCAK256 PUSH2 0x6464 PUSH19 0x65737343616E277420696E6372656173652072 PUSH6 0x776172647320 PUSH14 0x6F7265207468616E20746865206D PUSH2 0x7820 PUSH4 0x61704E65 PUSH24 0x207374617274426C6F636B206D757374206265206C6F7765 PUSH19 0x207468616E206E657720656E64426C6F636B41 PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH10 0x6E73756666696369656E PUSH21 0x2062616C616E636520666F722063616C6C4E657720 PUSH20 0x74617274426C6F636B206D757374206265206869 PUSH8 0x686572207468616E KECCAK256 PUSH4 0x75727265 PUSH15 0x7420626C6F636B536166654D617468 GASPRICE KECCAK256 PUSH14 0x756C7469706C69636174696F6E20 PUSH16 0x766572666C6F77526577617264207065 PUSH19 0x20626C6F636B2063616E2774206265206D6F72 PUSH6 0x207468616E20 PUSH21 0x6865206D6178206361705361666545524332303A20 GASLIMIT MSTORE NUMBER ORIGIN ADDRESS KECCAK256 PUSH16 0x7065726174696F6E20646964206E6F74 KECCAK256 PUSH20 0x756363656564A26469706673582212206C896E88 0x5D SELFDESTRUCT 0xCC PUSH30 0xF8343900E40399336509162A8F33A5D8C75F7061768EEDAD64736F6C6343 STOP MOD 0xC STOP CALLER ",
"sourceMap": "39412:12554:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;48086:347;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;40620:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;44698:714;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;46066:193;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;39755:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;46549:376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;40012:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;40169:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;38772:148;;;:::i;:::-;;47015:215;;;:::i;:::-;;41981:1559;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;40242:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;38121:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;39821:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;39688:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;49081:616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;39594:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;47456:475;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;40321:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;40095:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;43698:850;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;40528:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;40405:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;39916:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;45545:403;;;:::i;:::-;;48441:394;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;39075:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;49870:808;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;40470:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;48086:347;38352:12;:10;:12::i;:::-;38341:23;;:7;:5;:7::i;:::-;:23;;;38333:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;48194:10:::1;;48179:12;:25;48171:54;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;48263:20;48244:15;:39;;48236:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;48360:15;48343:14;:32;;;;48391:34;48409:15;48391:34;;;;;;;;;;;;;;;;;;48086:347:::0;:::o;40620:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;44698:714::-;1925:1;2531:7;;:19;;2523:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1925:1;2664:7;:18;;;;44766:21:::1;44790:8;:20;44799:10;44790:20;;;;;;;;;;;;;;;44766:44;;44844:7;44829:4;:11;;;:22;;44821:62;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;44896:13;:11;:13::i;:::-;44922:15;44940:76;45000:4;:15;;;44940:55;44978:16;;44940:33;44956:16;;44940:4;:11;;;:15;;:33;;;;:::i;:::-;:37;;:55;;;;:::i;:::-;:59;;:76;;;;:::i;:::-;44922:94;;45043:1;45033:7;:11;45029:142;;;45075:24;45091:7;45075:4;:11;;;:15;;:24;;;;:::i;:::-;45061:4;:11;;:38;;;;45114:45;45139:10;45151:7;45114:11;;;;;;;;;;;:24;;;;:45;;;;;:::i;:::-;45029:142;45197:1;45187:7;:11;45183:89;;;45215:45;45240:10;45252:7;45215:11;;;;;;;;;;;:24;;;;:45;;;;;:::i;:::-;45183:89;45302:55;45340:16;;45302:33;45318:16;;45302:4;:11;;;:15;;:33;;;;:::i;:::-;:37;;:55;;;;:::i;:::-;45284:4;:15;;:73;;;;45384:10;45375:29;;;45396:7;45375:29;;;;;;;;;;;;;;;;;;2695:1;;1881::::0;2843:7;:22;;;;44698:714;:::o;46066:193::-;38352:12;:10;:12::i;:::-;38341:23;;:7;:5;:7::i;:::-;:23;;;38333:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46146:45:::1;46171:10;46183:7;46146:11;;;;;;;;;;;:24;;;;:45;;;;;:::i;:::-;46231:10;46207:44;;;46243:7;46207:44;;;;;;;;;;;;;;;;;;46066:193:::0;:::o;39755:25::-;;;;;;;;;;;;;:::o;46549:376::-;38352:12;:10;:12::i;:::-;38341:23;;:7;:5;:7::i;:::-;:23;;;38333:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46675:11:::1;;;;;;;;;;;46658:28;;:13;:28;;;;46650:63;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;46749:11;;;;;;;;;;;46732:28;;:13;:28;;;;46724:63;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;46800:52;46827:10;46839:12;46800:13;:26;;;;:52;;;;;:::i;:::-;46870:47;46889:13;46904:12;46870:47;;;;;;;;;;;;;;;;;;;;;;;;;;46549:376:::0;;:::o;40012:25::-;;;;:::o;40169:31::-;;;;:::o;38772:148::-;38352:12;:10;:12::i;:::-;38341:23;;:7;:5;:7::i;:::-;:23;;;38333:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38879:1:::1;38842:40;;38863:6;::::0;::::1;;;;;;;;38842:40;;;;;;;;;;;;38910:1;38893:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;38772:148::o:0;47015:215::-;38352:12;:10;:12::i;:::-;38341:23;;:7;:5;:7::i;:::-;:23;;;38333:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47090:15:::1;;47075:12;:30;47067:68;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;47164:12;47146:15;:30;;;;47194:28;47206:15;;47194:28;;;;;;;;;;;;;;;;;;47015:215::o:0;41981:1559::-;42255:13;;;;;;;;;;;42254:14;42246:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;42325:19;42311:33;;:10;:33;;;42303:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;42412:12;42379:46;;42387:12;42379:46;;;;42371:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;42512:16;42497:11;:31;;42489:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;42612:20;42593:15;:39;;42585:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;42756:4;42740:13;;:20;;;;;;;;;;;;;;;;;;42787:12;42773:11;;:26;;;;;;;;;;;;;;;;;;42824:12;42810:11;;:26;;;;;;;;;;;;;;;;;;42864:15;42847:14;:32;;;;42903:11;42890:10;:24;;;;42943:16;42925:15;:34;;;;42996:1;42976:17;:21;42972:124;;;43029:4;43014:12;;:19;;;;;;;;;;;;;;;;;;43067:17;43048:16;:36;;;;42972:124;43108:27;43146:11;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;43138:31;;43108:61;;43210:2;43188:19;:24;43180:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;43276:36;43292:19;43284:2;43276:15;;:36;;;;:::i;:::-;43271:2;:42;43252:16;:61;;;;43398:10;;43380:15;:28;;;;43507:25;43525:6;43507:17;:25::i;:::-;41981:1559;;;;;;;;:::o;40242:29::-;;;;:::o;38121:87::-;38167:7;38194:6;;;;;;;;;;;38187:13;;38121:87;:::o;39821:31::-;;;;:::o;39688:24::-;;;;;;;;;;;;;:::o;49081:616::-;38352:12;:10;:12::i;:::-;38341:23;;:7;:5;:7::i;:::-;:23;;;38333:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49214:10:::1;;49199:12;:25;49191:54;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;49278:16;49264:11;:30;49256:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49379:11;49364:12;:26;49356:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49469:11;49456:10;:24;;;;49509:16;49491:15;:34;;;;49610:10;;49592:15;:28;;;;49638:51;49659:11;49672:16;49638:51;;;;;;;;;;;;;;;;;;;;;;;;49081:616:::0;;:::o;39594:44::-;;;:::o;47456:475::-;38352:12;:10;:12::i;:::-;38341:23;;:7;:5;:7::i;:::-;:23;;;38333:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47573:12:::1;;;;;;;;;;;47565:36;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;47616:13;47612:266;;;47674:16;;47654:17;:36;47646:73;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;47753:17;47734:16;:36;;;;47612:266;;;47818:13;47803:12;;:28;;;;;;;;;;;;;;;;;;47865:1;47846:16;:20;;;;47612:266;47893:30;47906:16;;47893:30;;;;;;;;;;;;;;;;;;47456:475:::0;;:::o;40321:45::-;;;:::o;40095:30::-;;;;:::o;43698:850::-;1925:1;2531:7;;:19;;2523:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1925:1;2664:7;:18;;;;43765:21:::1;43789:8;:20;43798:10;43789:20;;;;;;;;;;;;;;;43765:44;;43824:12;;;;;;;;;;;43820:125;;;43889:16;;43861:24;43873:4;:11;;;43861:7;:11;;:24;;;;:::i;:::-;:44;;43853:80;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;43820:125;43957:13;:11;:13::i;:::-;44001:1;43987:4;:11;;;:15;43983:253;;;44019:15;44037:76;44097:4;:15;;;44037:55;44075:16;;44037:33;44053:16;;44037:4;:11;;;:15;;:33;;;;:::i;:::-;:37;;:55;;;;:::i;:::-;:59;;:76;;;;:::i;:::-;44019:94;;44142:1;44132:7;:11;44128:97;;;44164:45;44189:10;44201:7;44164:11;;;;;;;;;;;:24;;;;:45;;;;;:::i;:::-;44128:97;43983:253;;44262:1;44252:7;:11;44248:161;;;44294:24;44310:7;44294:4;:11;;;:15;;:24;;;;:::i;:::-;44280:4;:11;;:38;;;;44333:64;44362:10;44382:4;44389:7;44333:11;;;;;;;;;;;:28;;;;:64;;;;;;:::i;:::-;44248:161;44439:55;44477:16;;44439:33;44455:16;;44439:4;:11;;;:15;;:33;;;;:::i;:::-;:37;;:55;;;;:::i;:::-;44421:4;:15;;:73;;;;44520:10;44512:28;;;44532:7;44512:28;;;;;;;;;;;;;;;;;;2695:1;1881::::0;2843:7;:22;;;;43698:850;:::o;40528:24::-;;;;;;;;;;;;;:::o;40405:31::-;;;;:::o;39916:30::-;;;;:::o;45545:403::-;1925:1;2531:7;;:19;;2523:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1925:1;2664:7;:18;;;;45607:21:::1;45631:8;:20;45640:10;45631:20;;;;;;;;;;;;;;;45607:44;;45662:24;45689:4;:11;;;45662:38;;45725:1;45711:4;:11;;:15;;;;45755:1;45737:4;:15;;:19;;;;45792:1;45773:16;:20;45769:107;;;45810:54;45835:10;45847:16;45810:11;;;;;;;;;;;:24;;;;:54;;;;;:::i;:::-;45769:107;45911:10;45893:47;;;45923:16;45893:47;;;;;;;;;;;;;;;;;;2695:1;;1881::::0;2843:7;:22;;;;45545:403::o;48441:394::-;38352:12;:10;:12::i;:::-;38341:23;;:7;:5;:7::i;:::-;:23;;;38333:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;48559:15:::1;;48544:12;:30;48536:65;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;48639:20;48620:15;:39;;48612:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;48721:13;:11;:13::i;:::-;48762:15;48745:14;:32;;;;48793:34;48811:15;48793:34;;;;;;;;;;;;;;;;;;48441:394:::0;:::o;39075:244::-;38352:12;:10;:12::i;:::-;38341:23;;:7;:5;:7::i;:::-;:23;;;38333:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39184:1:::1;39164:22;;:8;:22;;;;39156:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39274:8;39245:38;;39266:6;::::0;::::1;;;;;;;;39245:38;;;;;;;;;;;;39303:8;39294:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;39075:244:::0;:::o;49870:808::-;49931:7;49951:21;49975:8;:15;49984:5;49975:15;;;;;;;;;;;;;;;49951:39;;50001:25;50029:11;;;;;;;;;;;:21;;;50059:4;50029:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;50001:64;;50095:15;;50080:12;:30;:56;;;;;50135:1;50114:17;:22;;50080:56;50076:595;;;50153:18;50174:45;50189:15;;50206:12;50174:14;:45::i;:::-;50153:66;;50234:25;50262:30;50277:14;;50262:10;:14;;:30;;;;:::i;:::-;50234:58;;50307:29;50356:84;50377:62;50421:17;50377:39;50399:16;;50377:17;:21;;:39;;;;:::i;:::-;:43;;:62;;;;:::i;:::-;50356:16;;:20;;:84;;;;:::i;:::-;50307:133;;50462:81;50527:4;:15;;;50462:60;50505:16;;50462:38;50478:21;50462:4;:11;;;:15;;:38;;;;:::i;:::-;:42;;:60;;;;:::i;:::-;:64;;:81;;;;:::i;:::-;50455:88;;;;;;;;;50076:595;50583:76;50643:4;:15;;;50583:55;50621:16;;50583:33;50599:16;;50583:4;:11;;;:15;;:33;;;;:::i;:::-;:37;;:55;;;;:::i;:::-;:59;;:76;;;;:::i;:::-;50576:83;;;;49870:808;;;;:::o;40470:24::-;;;;;;;;;;;;;:::o;10996:106::-;11049:15;11084:10;11077:17;;10996:106;:::o;50779:618::-;50842:15;;50826:12;:31;50822:70;;50874:7;;50822:70;50904:25;50932:11;;;;;;;;;;;:21;;;50962:4;50932:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;50904:64;;51006:1;50985:17;:22;50981:106;;;51042:12;51024:15;:30;;;;51069:7;;;50981:106;51099:18;51120:45;51135:15;;51152:12;51120:14;:45::i;:::-;51099:66;;51176:25;51204:30;51219:14;;51204:10;:14;;:30;;;;:::i;:::-;51176:58;;51264:84;51285:62;51329:17;51285:39;51307:16;;51285:17;:21;;:39;;;;:::i;:::-;:43;;:62;;;;:::i;:::-;51264:16;;:20;;:84;;;;:::i;:::-;51245:16;:103;;;;51377:12;51359:15;:30;;;;50779:618;;;;:::o;6564:220::-;6622:7;6651:1;6646;:6;6642:20;;;6661:1;6654:8;;;;6642:20;6673:9;6689:1;6685;:5;6673:17;;6718:1;6713;6709;:5;;;;;;:10;6701:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6775:1;6768:8;;;6564:220;;;;;:::o;7262:153::-;7320:7;7352:1;7348;:5;7340:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7406:1;7402;:5;;;;;;7395:12;;7262:153;;;;:::o;6147:158::-;6205:7;6238:1;6233;:6;;6225:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6296:1;6292;:5;6285:12;;6147:158;;;;:::o;33929:177::-;34012:86;34032:5;34062:23;;;34087:2;34091:5;34039:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34012:19;:86::i;:::-;33929:177;;;:::o;5685:179::-;5743:7;5763:9;5779:1;5775;:5;5763:17;;5804:1;5799;:6;;5791:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5855:1;5848:8;;;5685:179;;;;:::o;34114:205::-;34215:96;34235:5;34265:27;;;34294:4;34300:2;34304:5;34242:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34215:19;:96::i;:::-;34114:205;;;;:::o;51571:392::-;51668:7;51710:15;;51692:14;:33;51688:268;;51749:36;51768:16;51749:14;:18;;:36;;;;:::i;:::-;51742:43;;;;51688:268;51827:15;;51807:16;:35;51803:153;;51866:1;51859:8;;;;51803:153;51907:37;51927:16;51907:15;;:19;;:37;;;;:::i;:::-;51900:44;;51571:392;;;;;:::o;36234:761::-;36658:23;36684:69;36712:4;36684:69;;;;;;;;;;;;;;;;;36692:5;36684:27;;;;:69;;;;;:::i;:::-;36658:95;;36788:1;36768:10;:17;:21;36764:224;;;36910:10;36899:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36891:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36764:224;36234:761;;;:::o;28916:195::-;29019:12;29051:52;29073:6;29081:4;29087:1;29090:12;29051:21;:52::i;:::-;29044:59;;28916:195;;;;;:::o;29968:530::-;30095:12;30153:5;30128:21;:30;;30120:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30220:18;30231:6;30220:10;:18::i;:::-;30212:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30346:12;30360:23;30387:6;:11;;30407:5;30415:4;30387:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30345:75;;;;30438:52;30456:7;30465:10;30477:12;30438:17;:52::i;:::-;30431:59;;;;29968:530;;;;;;:::o;25998:422::-;26058:4;26266:12;26377:7;26365:20;26357:28;;26411:1;26404:4;:8;26397:15;;;25998:422;;;:::o;32508:742::-;32623:12;32652:7;32648:595;;;32683:10;32676:17;;;;32648:595;32817:1;32797:10;:17;:21;32793:439;;;33060:10;33054:17;33121:15;33108:10;33104:2;33100:19;33093:44;33008:148;33203:12;33196:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32508:742;;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "2588800",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"MaxCapRewardPerBlock()": "infinite",
"PRECISION_FACTOR()": "1072",
"SMART_CRAFT_FACTORY()": "infinite",
"accTokenPerShare()": "1116",
"deposit(uint256)": "infinite",
"emergencyRewardWithdraw(uint256)": "infinite",
"emergencyWithdraw()": "infinite",
"hasUserLimit()": "1093",
"initialize(address,address,uint256,uint256,uint256,uint256,address)": "infinite",
"isInitialized()": "1165",
"lastRewardBlock()": "1094",
"owner()": "1144",
"pendingReward(address)": "infinite",
"poolLimitPerUser()": "1051",
"recoverWrongTokens(address,uint256)": "infinite",
"renounceOwnership()": "24397",
"rewardPerBlock()": "1072",
"rewardToken()": "1157",
"rewardsEndBlock()": "1094",
"stakedToken()": "1092",
"startBlock()": "1117",
"stopReward()": "23876",
"transferOwnership(address)": "infinite",
"updatePoolLimitPerUser(bool,uint256)": "29870",
"updateRewardPerBlock(uint256)": "infinite",
"updateRewardPerBlockAfterStart(uint256)": "infinite",
"updateStartAndEndBlocks(uint256,uint256)": "infinite",
"userInfo(address)": "2084",
"withdraw(uint256)": "infinite"
},
"internal": {
"_getMultiplier(uint256,uint256)": "infinite",
"_updatePool()": "infinite"
}
},
"methodIdentifiers": {
"MaxCapRewardPerBlock()": "a1c1ce8b",
"PRECISION_FACTOR()": "ccd34cd5",
"SMART_CRAFT_FACTORY()": "9b1e3f4e",
"accTokenPerShare()": "8f662915",
"deposit(uint256)": "b6b55f25",
"emergencyRewardWithdraw(uint256)": "3279beab",
"emergencyWithdraw()": "db2e21bc",
"hasUserLimit()": "92e8990e",
"initialize(address,address,uint256,uint256,uint256,uint256,address)": "83a5041c",
"isInitialized()": "392e53cd",
"lastRewardBlock()": "a9f8d181",
"owner()": "8da5cb5b",
"pendingReward(address)": "f40f0f52",
"poolLimitPerUser()": "66fe9f8a",
"recoverWrongTokens(address,uint256)": "3f138d4b",
"renounceOwnership()": "715018a6",
"rewardPerBlock()": "8ae39cac",
"rewardToken()": "f7c618c1",
"rewardsEndBlock()": "ce872d87",
"stakedToken()": "cc7a262e",
"startBlock()": "48cd4cb1",
"stopReward()": "80dc0672",
"transferOwnership(address)": "f2fde38b",
"updatePoolLimitPerUser(bool,uint256)": "a0b40905",
"updateRewardPerBlock(uint256)": "01f8a976",
"updateRewardPerBlockAfterStart(uint256)": "e113db6f",
"updateStartAndEndBlocks(uint256,uint256)": "9513997f",
"userInfo(address)": "1959a002",
"withdraw(uint256)": "2e1a7d4d"
}
},
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_maxCapRewardPerBlock",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "contract ERC20",
"name": "tokenRecovered",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "AdminTokenRecovery",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Deposit",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "EmergencyRewardWithdraw",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "EmergencyWithdraw",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "poolLimitPerUser",
"type": "uint256"
}
],
"name": "NewPoolLimit",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "rewardPerBlock",
"type": "uint256"
}
],
"name": "NewRewardPerBlock",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "startBlock",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "endBlock",
"type": "uint256"
}
],
"name": "NewStartAndEndBlocks",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "RewardsStop",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Withdraw",
"type": "event"
},
{
"inputs": [],
"name": "MaxCapRewardPerBlock",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "PRECISION_FACTOR",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "SMART_CRAFT_FACTORY",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "accTokenPerShare",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "deposit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "emergencyRewardWithdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "emergencyWithdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "hasUserLimit",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract ERC20",
"name": "_stakedToken",
"type": "address"
},
{
"internalType": "contract ERC20",
"name": "_rewardToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "_rewardPerBlock",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_startBlock",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_rewardsEndBlock",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_poolLimitPerUser",
"type": "uint256"
},
{
"internalType": "address",
"name": "_admin",
"type": "address"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "isInitialized",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "lastRewardBlock",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "pendingReward",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "poolLimitPerUser",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract ERC20",
"name": "_tokenAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "_tokenAmount",
"type": "uint256"
}
],
"name": "recoverWrongTokens",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "rewardPerBlock",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "rewardToken",
"outputs": [
{
"internalType": "contract ERC20",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "rewardsEndBlock",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "stakedToken",
"outputs": [
{
"internalType": "contract ERC20",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "startBlock",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "stopReward",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "_hasUserLimit",
"type": "bool"
},
{
"internalType": "uint256",
"name": "_poolLimitPerUser",
"type": "uint256"
}
],
"name": "updatePoolLimitPerUser",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_rewardPerBlock",
"type": "uint256"
}
],
"name": "updateRewardPerBlock",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_rewardPerBlock",
"type": "uint256"
}
],
"name": "updateRewardPerBlockAfterStart",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_startBlock",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_rewardsEndBlock",
"type": "uint256"
}
],
"name": "updateStartAndEndBlocks",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "userInfo",
"outputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "rewardDebt",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.6.12+commit.27d51765"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_maxCapRewardPerBlock",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "contract ERC20",
"name": "tokenRecovered",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "AdminTokenRecovery",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Deposit",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "EmergencyRewardWithdraw",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "EmergencyWithdraw",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "poolLimitPerUser",
"type": "uint256"
}
],
"name": "NewPoolLimit",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "rewardPerBlock",
"type": "uint256"
}
],
"name": "NewRewardPerBlock",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "startBlock",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "endBlock",
"type": "uint256"
}
],
"name": "NewStartAndEndBlocks",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "RewardsStop",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Withdraw",
"type": "event"
},
{
"inputs": [],
"name": "MaxCapRewardPerBlock",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "PRECISION_FACTOR",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "SMART_CRAFT_FACTORY",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "accTokenPerShare",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "deposit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "emergencyRewardWithdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "emergencyWithdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "hasUserLimit",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract ERC20",
"name": "_stakedToken",
"type": "address"
},
{
"internalType": "contract ERC20",
"name": "_rewardToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "_rewardPerBlock",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_startBlock",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_rewardsEndBlock",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_poolLimitPerUser",
"type": "uint256"
},
{
"internalType": "address",
"name": "_admin",
"type": "address"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "isInitialized",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "lastRewardBlock",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "pendingReward",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "poolLimitPerUser",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract ERC20",
"name": "_tokenAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "_tokenAmount",
"type": "uint256"
}
],
"name": "recoverWrongTokens",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "rewardPerBlock",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "rewardToken",
"outputs": [
{
"internalType": "contract ERC20",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "rewardsEndBlock",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "stakedToken",
"outputs": [
{
"internalType": "contract ERC20",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "startBlock",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "stopReward",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "_hasUserLimit",
"type": "bool"
},
{
"internalType": "uint256",
"name": "_poolLimitPerUser",
"type": "uint256"
}
],
"name": "updatePoolLimitPerUser",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_rewardPerBlock",
"type": "uint256"
}
],
"name": "updateRewardPerBlock",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_rewardPerBlock",
"type": "uint256"
}
],
"name": "updateRewardPerBlockAfterStart",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_startBlock",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_rewardsEndBlock",
"type": "uint256"
}
],
"name": "updateStartAndEndBlocks",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "userInfo",
"outputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "rewardDebt",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"owner()": {
"details": "Returns the address of the current owner."
},
"recoverWrongTokens(address,uint256)": {
"details": "This function is only callable by admin.",
"params": {
"_tokenAddress": ": the address of the token to withdraw",
"_tokenAmount": ": the number of tokens to withdraw"
}
},
"renounceOwnership()": {
"details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
},
"transferOwnership(address)": {
"details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
},
"updateStartAndEndBlocks(uint256,uint256)": {
"details": "This function is only callable by owner.",
"params": {
"_rewardsEndBlock": ": the new end block",
"_startBlock": ": the new start block"
}
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"recoverWrongTokens(address,uint256)": {
"notice": "It allows the admin to recover wrong tokens sent to the contract"
},
"updateStartAndEndBlocks(uint256,uint256)": {
"notice": "It allows the admin to update start and end blocks"
}
},
"version": 1
}
},
"settings": {
"compilationTarget": {
"immunefi/xx.sol": "SmartCraftInitializable"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"immunefi/xx.sol": {
"keccak256": "0x0237da454ff487d47f1302f0b833a28a4cedcb1c872e1a43c0646ec850ecccf7",
"license": "MIT",
"urls": [
"bzz-raw://aceee79175572ac8cc600b6735fa0d539878bab5f51df3b9753df96b0492e91d",
"dweb:/ipfs/Qmc3HyoRRZUN6f6sRtPFm58FzyvgLPX7bL5pvNenQtiu2h"
]
}
},
"version": 1
}
This file has been truncated, but you can view the full file.
{
"id": "fd50516cc219d47fce849ec759a4733b",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.6.12",
"solcLongVersion": "0.6.12+commit.27d51765",
"input": {
"language": "Solidity",
"sources": {
"immunefi/xx.sol": {
"content": "/**\r\n *Submitted for verification at cronoscan.com on 2022-04-20\r\n*/\r\n\r\n// Sources flattened with hardhat v2.6.7 https://hardhat.org\r\n\r\n// File @openzeppelin/contracts/utils/ReentrancyGuard.sol@v3.4.0\r\n\r\n// SPDX-License-Identifier: MIT\r\n\r\npragma solidity >=0.6.0 <0.8.0;\r\n\r\n/**\r\n * @dev Contract module that helps prevent reentrant calls to a function.\r\n *\r\n * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\r\n * available, which can be applied to functions to make sure there are no nested\r\n * (reentrant) calls to them.\r\n *\r\n * Note that because there is a single `nonReentrant` guard, functions marked as\r\n * `nonReentrant` may not call one another. This can be worked around by making\r\n * those functions `private`, and then adding `external` `nonReentrant` entry\r\n * points to them.\r\n *\r\n * TIP: If you would like to learn more about reentrancy and alternative ways\r\n * to protect against it, check out our blog post\r\n * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\r\n */\r\nabstract contract ReentrancyGuard {\r\n // Booleans are more expensive than uint256 or any type that takes up a full\r\n // word because each write operation emits an extra SLOAD to first read the\r\n // slot's contents, replace the bits taken up by the boolean, and then write\r\n // back. This is the compiler's defense against contract upgrades and\r\n // pointer aliasing, and it cannot be disabled.\r\n\r\n // The values being non-zero value makes deployment a bit more expensive,\r\n // but in exchange the refund on every call to nonReentrant will be lower in\r\n // amount. Since refunds are capped to a percentage of the total\r\n // transaction's gas, it is best to keep them low in cases like this one, to\r\n // increase the likelihood of the full refund coming into effect.\r\n uint256 private constant _NOT_ENTERED = 1;\r\n uint256 private constant _ENTERED = 2;\r\n\r\n uint256 private _status;\r\n\r\n constructor () internal {\r\n _status = _NOT_ENTERED;\r\n }\r\n\r\n /**\r\n * @dev Prevents a contract from calling itself, directly or indirectly.\r\n * Calling a `nonReentrant` function from another `nonReentrant`\r\n * function is not supported. It is possible to prevent this from happening\r\n * by making the `nonReentrant` function external, and make it call a\r\n * `private` function that does the actual work.\r\n */\r\n modifier nonReentrant() {\r\n // On the first call to nonReentrant, _notEntered will be true\r\n require(_status != _ENTERED, \"ReentrancyGuard: reentrant call\");\r\n\r\n // Any calls to nonReentrant after this point will fail\r\n _status = _ENTERED;\r\n\r\n _;\r\n\r\n // By storing the original value once again, a refund is triggered (see\r\n // https://eips.ethereum.org/EIPS/eip-2200)\r\n _status = _NOT_ENTERED;\r\n }\r\n}\r\n\r\n\r\n// File @openzeppelin/contracts/math/SafeMath.sol@v3.4.0\r\n\r\n\r\n\r\npragma solidity >=0.6.0 <0.8.0;\r\n\r\n/**\r\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\r\n * checks.\r\n *\r\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\r\n * in bugs, because programmers usually assume that an overflow raises an\r\n * error, which is the standard behavior in high level programming languages.\r\n * `SafeMath` restores this intuition by reverting the transaction when an\r\n * operation overflows.\r\n *\r\n * Using this library instead of the unchecked operations eliminates an entire\r\n * class of bugs, so it's recommended to use it always.\r\n */\r\nlibrary SafeMath {\r\n /**\r\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\r\n *\r\n * _Available since v3.4._\r\n */\r\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\r\n uint256 c = a + b;\r\n if (c < a) return (false, 0);\r\n return (true, c);\r\n }\r\n\r\n /**\r\n * @dev Returns the substraction of two unsigned integers, with an overflow flag.\r\n *\r\n * _Available since v3.4._\r\n */\r\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\r\n if (b > a) return (false, 0);\r\n return (true, a - b);\r\n }\r\n\r\n /**\r\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\r\n *\r\n * _Available since v3.4._\r\n */\r\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\r\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\r\n // benefit is lost if 'b' is also tested.\r\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\r\n if (a == 0) return (true, 0);\r\n uint256 c = a * b;\r\n if (c / a != b) return (false, 0);\r\n return (true, c);\r\n }\r\n\r\n /**\r\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\r\n *\r\n * _Available since v3.4._\r\n */\r\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\r\n if (b == 0) return (false, 0);\r\n return (true, a / b);\r\n }\r\n\r\n /**\r\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\r\n *\r\n * _Available since v3.4._\r\n */\r\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\r\n if (b == 0) return (false, 0);\r\n return (true, a % b);\r\n }\r\n\r\n /**\r\n * @dev Returns the addition of two unsigned integers, reverting on\r\n * overflow.\r\n *\r\n * Counterpart to Solidity's `+` operator.\r\n *\r\n * Requirements:\r\n *\r\n * - Addition cannot overflow.\r\n */\r\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\r\n uint256 c = a + b;\r\n require(c >= a, \"SafeMath: addition overflow\");\r\n return c;\r\n }\r\n\r\n /**\r\n * @dev Returns the subtraction of two unsigned integers, reverting on\r\n * overflow (when the result is negative).\r\n *\r\n * Counterpart to Solidity's `-` operator.\r\n *\r\n * Requirements:\r\n *\r\n * - Subtraction cannot overflow.\r\n */\r\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n require(b <= a, \"SafeMath: subtraction overflow\");\r\n return a - b;\r\n }\r\n\r\n /**\r\n * @dev Returns the multiplication of two unsigned integers, reverting on\r\n * overflow.\r\n *\r\n * Counterpart to Solidity's `*` operator.\r\n *\r\n * Requirements:\r\n *\r\n * - Multiplication cannot overflow.\r\n */\r\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\r\n if (a == 0) return 0;\r\n uint256 c = a * b;\r\n require(c / a == b, \"SafeMath: multiplication overflow\");\r\n return c;\r\n }\r\n\r\n /**\r\n * @dev Returns the integer division of two unsigned integers, reverting on\r\n * division by zero. The result is rounded towards zero.\r\n *\r\n * Counterpart to Solidity's `/` operator. Note: this function uses a\r\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\r\n * uses an invalid opcode to revert (consuming all remaining gas).\r\n *\r\n * Requirements:\r\n *\r\n * - The divisor cannot be zero.\r\n */\r\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\r\n require(b > 0, \"SafeMath: division by zero\");\r\n return a / b;\r\n }\r\n\r\n /**\r\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\r\n * reverting when dividing by zero.\r\n *\r\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\r\n * opcode (which leaves remaining gas untouched) while Solidity uses an\r\n * invalid opcode to revert (consuming all remaining gas).\r\n *\r\n * Requirements:\r\n *\r\n * - The divisor cannot be zero.\r\n */\r\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\r\n require(b > 0, \"SafeMath: modulo by zero\");\r\n return a % b;\r\n }\r\n\r\n /**\r\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\r\n * overflow (when the result is negative).\r\n *\r\n * CAUTION: This function is deprecated because it requires allocating memory for the error\r\n * message unnecessarily. For custom revert reasons use {trySub}.\r\n *\r\n * Counterpart to Solidity's `-` operator.\r\n *\r\n * Requirements:\r\n *\r\n * - Subtraction cannot overflow.\r\n */\r\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\r\n require(b <= a, errorMessage);\r\n return a - b;\r\n }\r\n\r\n /**\r\n * @dev Returns the integer division of two unsigned integers, reverting with custom message on\r\n * division by zero. The result is rounded towards zero.\r\n *\r\n * CAUTION: This function is deprecated because it requires allocating memory for the error\r\n * message unnecessarily. For custom revert reasons use {tryDiv}.\r\n *\r\n * Counterpart to Solidity's `/` operator. Note: this function uses a\r\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\r\n * uses an invalid opcode to revert (consuming all remaining gas).\r\n *\r\n * Requirements:\r\n *\r\n * - The divisor cannot be zero.\r\n */\r\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\r\n require(b > 0, errorMessage);\r\n return a / b;\r\n }\r\n\r\n /**\r\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\r\n * reverting with custom message when dividing by zero.\r\n *\r\n * CAUTION: This function is deprecated because it requires allocating memory for the error\r\n * message unnecessarily. For custom revert reasons use {tryMod}.\r\n *\r\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\r\n * opcode (which leaves remaining gas untouched) while Solidity uses an\r\n * invalid opcode to revert (consuming all remaining gas).\r\n *\r\n * Requirements:\r\n *\r\n * - The divisor cannot be zero.\r\n */\r\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\r\n require(b > 0, errorMessage);\r\n return a % b;\r\n }\r\n}\r\n\r\n\r\n// File @openzeppelin/contracts/utils/Context.sol@v3.4.0\r\n\r\n\r\n\r\npragma solidity >=0.6.0 <0.8.0;\r\n\r\n/*\r\n * @dev Provides information about the current execution context, including the\r\n * sender of the transaction and its data. While these are generally available\r\n * via msg.sender and msg.data, they should not be accessed in such a direct\r\n * manner, since when dealing with GSN meta-transactions the account sending and\r\n * paying for execution may not be the actual sender (as far as an application\r\n * is concerned).\r\n *\r\n * This contract is only required for intermediate, library-like contracts.\r\n */\r\nabstract contract Context {\r\n function _msgSender() internal view virtual returns (address payable) {\r\n return msg.sender;\r\n }\r\n\r\n function _msgData() internal view virtual returns (bytes memory) {\r\n this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691\r\n return msg.data;\r\n }\r\n}\r\n\r\n\r\n// File @openzeppelin/contracts/token/ERC20/IERC20.sol@v3.4.0\r\n\r\n\r\n\r\npragma solidity >=0.6.0 <0.8.0;\r\n\r\n/**\r\n * @dev Interface of the ERC20 standard as defined in the EIP.\r\n */\r\ninterface IERC20 {\r\n /**\r\n * @dev Returns the amount of tokens in existence.\r\n */\r\n function totalSupply() external view returns (uint256);\r\n\r\n /**\r\n * @dev Returns the amount of tokens owned by `account`.\r\n */\r\n function balanceOf(address account) external view returns (uint256);\r\n\r\n /**\r\n * @dev Moves `amount` tokens from the caller's account to `recipient`.\r\n *\r\n * Returns a boolean value indicating whether the operation succeeded.\r\n *\r\n * Emits a {Transfer} event.\r\n */\r\n function transfer(address recipient, uint256 amount) external returns (bool);\r\n\r\n /**\r\n * @dev Returns the remaining number of tokens that `spender` will be\r\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\r\n * zero by default.\r\n *\r\n * This value changes when {approve} or {transferFrom} are called.\r\n */\r\n function allowance(address owner, address spender) external view returns (uint256);\r\n\r\n /**\r\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\r\n *\r\n * Returns a boolean value indicating whether the operation succeeded.\r\n *\r\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\r\n * that someone may use both the old and the new allowance by unfortunate\r\n * transaction ordering. One possible solution to mitigate this race\r\n * condition is to first reduce the spender's allowance to 0 and set the\r\n * desired value afterwards:\r\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\r\n *\r\n * Emits an {Approval} event.\r\n */\r\n function approve(address spender, uint256 amount) external returns (bool);\r\n\r\n /**\r\n * @dev Moves `amount` tokens from `sender` to `recipient` using the\r\n * allowance mechanism. `amount` is then deducted from the caller's\r\n * allowance.\r\n *\r\n * Returns a boolean value indicating whether the operation succeeded.\r\n *\r\n * Emits a {Transfer} event.\r\n */\r\n function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);\r\n\r\n /**\r\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\r\n * another (`to`).\r\n *\r\n * Note that `value` may be zero.\r\n */\r\n event Transfer(address indexed from, address indexed to, uint256 value);\r\n\r\n /**\r\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\r\n * a call to {approve}. `value` is the new allowance.\r\n */\r\n event Approval(address indexed owner, address indexed spender, uint256 value);\r\n}\r\n\r\n\r\n// File @openzeppelin/contracts/token/ERC20/ERC20.sol@v3.4.0\r\n\r\n\r\n\r\npragma solidity >=0.6.0 <0.8.0;\r\n\r\n\r\n\r\n/**\r\n * @dev Implementation of the {IERC20} interface.\r\n *\r\n * This implementation is agnostic to the way tokens are created. This means\r\n * that a supply mechanism has to be added in a derived contract using {_mint}.\r\n * For a generic mechanism see {ERC20PresetMinterPauser}.\r\n *\r\n * TIP: For a detailed writeup see our guide\r\n * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\r\n * to implement supply mechanisms].\r\n *\r\n * We have followed general OpenZeppelin guidelines: functions revert instead\r\n * of returning `false` on failure. This behavior is nonetheless conventional\r\n * and does not conflict with the expectations of ERC20 applications.\r\n *\r\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\r\n * This allows applications to reconstruct the allowance for all accounts just\r\n * by listening to said events. Other implementations of the EIP may not emit\r\n * these events, as it isn't required by the specification.\r\n *\r\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\r\n * functions have been added to mitigate the well-known issues around setting\r\n * allowances. See {IERC20-approve}.\r\n */\r\ncontract ERC20 is Context, IERC20 {\r\n using SafeMath for uint256;\r\n\r\n mapping (address => uint256) private _balances;\r\n\r\n mapping (address => mapping (address => uint256)) private _allowances;\r\n\r\n uint256 private _totalSupply;\r\n\r\n string private _name;\r\n string private _symbol;\r\n uint8 private _decimals;\r\n\r\n /**\r\n * @dev Sets the values for {name} and {symbol}, initializes {decimals} with\r\n * a default value of 18.\r\n *\r\n * To select a different value for {decimals}, use {_setupDecimals}.\r\n *\r\n * All three of these values are immutable: they can only be set once during\r\n * construction.\r\n */\r\n constructor (string memory name_, string memory symbol_) public {\r\n _name = name_;\r\n _symbol = symbol_;\r\n _decimals = 18;\r\n }\r\n\r\n /**\r\n * @dev Returns the name of the token.\r\n */\r\n function name() public view virtual returns (string memory) {\r\n return _name;\r\n }\r\n\r\n /**\r\n * @dev Returns the symbol of the token, usually a shorter version of the\r\n * name.\r\n */\r\n function symbol() public view virtual returns (string memory) {\r\n return _symbol;\r\n }\r\n\r\n /**\r\n * @dev Returns the number of decimals used to get its user representation.\r\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\r\n * be displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n *\r\n * Tokens usually opt for a value of 18, imitating the relationship between\r\n * Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is\r\n * called.\r\n *\r\n * NOTE: This information is only used for _display_ purposes: it in\r\n * no way affects any of the arithmetic of the contract, including\r\n * {IERC20-balanceOf} and {IERC20-transfer}.\r\n */\r\n function decimals() public view virtual returns (uint8) {\r\n return _decimals;\r\n }\r\n\r\n /**\r\n * @dev See {IERC20-totalSupply}.\r\n */\r\n function totalSupply() public view virtual override returns (uint256) {\r\n return _totalSupply;\r\n }\r\n\r\n /**\r\n * @dev See {IERC20-balanceOf}.\r\n */\r\n function balanceOf(address account) public view virtual override returns (uint256) {\r\n return _balances[account];\r\n }\r\n\r\n /**\r\n * @dev See {IERC20-transfer}.\r\n *\r\n * Requirements:\r\n *\r\n * - `recipient` cannot be the zero address.\r\n * - the caller must have a balance of at least `amount`.\r\n */\r\n function transfer(address recipient, uint256 amount) public virtual override returns (bool) {\r\n _transfer(_msgSender(), recipient, amount);\r\n return true;\r\n }\r\n\r\n /**\r\n * @dev See {IERC20-allowance}.\r\n */\r\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\r\n return _allowances[owner][spender];\r\n }\r\n\r\n /**\r\n * @dev See {IERC20-approve}.\r\n *\r\n * Requirements:\r\n *\r\n * - `spender` cannot be the zero address.\r\n */\r\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\r\n _approve(_msgSender(), spender, amount);\r\n return true;\r\n }\r\n\r\n /**\r\n * @dev See {IERC20-transferFrom}.\r\n *\r\n * Emits an {Approval} event indicating the updated allowance. This is not\r\n * required by the EIP. See the note at the beginning of {ERC20}.\r\n *\r\n * Requirements:\r\n *\r\n * - `sender` and `recipient` cannot be the zero address.\r\n * - `sender` must have a balance of at least `amount`.\r\n * - the caller must have allowance for ``sender``'s tokens of at least\r\n * `amount`.\r\n */\r\n function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {\r\n _transfer(sender, recipient, amount);\r\n _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, \"ERC20: transfer amount exceeds allowance\"));\r\n return true;\r\n }\r\n\r\n /**\r\n * @dev Atomically increases the allowance granted to `spender` by the caller.\r\n *\r\n * This is an alternative to {approve} that can be used as a mitigation for\r\n * problems described in {IERC20-approve}.\r\n *\r\n * Emits an {Approval} event indicating the updated allowance.\r\n *\r\n * Requirements:\r\n *\r\n * - `spender` cannot be the zero address.\r\n */\r\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\r\n _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));\r\n return true;\r\n }\r\n\r\n /**\r\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\r\n *\r\n * This is an alternative to {approve} that can be used as a mitigation for\r\n * problems described in {IERC20-approve}.\r\n *\r\n * Emits an {Approval} event indicating the updated allowance.\r\n *\r\n * Requirements:\r\n *\r\n * - `spender` cannot be the zero address.\r\n * - `spender` must have allowance for the caller of at least\r\n * `subtractedValue`.\r\n */\r\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\r\n _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, \"ERC20: decreased allowance below zero\"));\r\n return true;\r\n }\r\n\r\n /**\r\n * @dev Moves tokens `amount` from `sender` to `recipient`.\r\n *\r\n * This is internal function is equivalent to {transfer}, and can be used to\r\n * e.g. implement automatic token fees, slashing mechanisms, etc.\r\n *\r\n * Emits a {Transfer} event.\r\n *\r\n * Requirements:\r\n *\r\n * - `sender` cannot be the zero address.\r\n * - `recipient` cannot be the zero address.\r\n * - `sender` must have a balance of at least `amount`.\r\n */\r\n function _transfer(address sender, address recipient, uint256 amount) internal virtual {\r\n require(sender != address(0), \"ERC20: transfer from the zero address\");\r\n require(recipient != address(0), \"ERC20: transfer to the zero address\");\r\n\r\n _beforeTokenTransfer(sender, recipient, amount);\r\n\r\n _balances[sender] = _balances[sender].sub(amount, \"ERC20: transfer amount exceeds balance\");\r\n _balances[recipient] = _balances[recipient].add(amount);\r\n emit Transfer(sender, recipient, amount);\r\n }\r\n\r\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\r\n * the total supply.\r\n *\r\n * Emits a {Transfer} event with `from` set to the zero address.\r\n *\r\n * Requirements:\r\n *\r\n * - `to` cannot be the zero address.\r\n */\r\n function _mint(address account, uint256 amount) internal virtual {\r\n require(account != address(0), \"ERC20: mint to the zero address\");\r\n\r\n _beforeTokenTransfer(address(0), account, amount);\r\n\r\n _totalSupply = _totalSupply.add(amount);\r\n _balances[account] = _balances[account].add(amount);\r\n emit Transfer(address(0), account, amount);\r\n }\r\n\r\n /**\r\n * @dev Destroys `amount` tokens from `account`, reducing the\r\n * total supply.\r\n *\r\n * Emits a {Transfer} event with `to` set to the zero address.\r\n *\r\n * Requirements:\r\n *\r\n * - `account` cannot be the zero address.\r\n * - `account` must have at least `amount` tokens.\r\n */\r\n function _burn(address account, uint256 amount) internal virtual {\r\n require(account != address(0), \"ERC20: burn from the zero address\");\r\n\r\n _beforeTokenTransfer(account, address(0), amount);\r\n\r\n _balances[account] = _balances[account].sub(amount, \"ERC20: burn amount exceeds balance\");\r\n _totalSupply = _totalSupply.sub(amount);\r\n emit Transfer(account, address(0), amount);\r\n }\r\n\r\n /**\r\n * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\r\n *\r\n * This internal function is equivalent to `approve`, and can be used to\r\n * e.g. set automatic allowances for certain subsystems, etc.\r\n *\r\n * Emits an {Approval} event.\r\n *\r\n * Requirements:\r\n *\r\n * - `owner` cannot be the zero address.\r\n * - `spender` cannot be the zero address.\r\n */\r\n function _approve(address owner, address spender, uint256 amount) internal virtual {\r\n require(owner != address(0), \"ERC20: approve from the zero address\");\r\n require(spender != address(0), \"ERC20: approve to the zero address\");\r\n\r\n _allowances[owner][spender] = amount;\r\n emit Approval(owner, spender, amount);\r\n }\r\n\r\n /**\r\n * @dev Sets {decimals} to a value other than the default one of 18.\r\n *\r\n * WARNING: This function should only be called from the constructor. Most\r\n * applications that interact with token contracts will not expect\r\n * {decimals} to ever change, and may work incorrectly if it does.\r\n */\r\n function _setupDecimals(uint8 decimals_) internal virtual {\r\n _decimals = decimals_;\r\n }\r\n\r\n /**\r\n * @dev Hook that is called before any transfer of tokens. This includes\r\n * minting and burning.\r\n *\r\n * Calling conditions:\r\n *\r\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\r\n * will be to transferred to `to`.\r\n * - when `from` is zero, `amount` tokens will be minted for `to`.\r\n * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\r\n * - `from` and `to` are never both zero.\r\n *\r\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\r\n */\r\n function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }\r\n}\r\n\r\n\r\n// File @openzeppelin/contracts/utils/Address.sol@v3.4.0\r\n\r\n\r\n\r\npragma solidity >=0.6.2 <0.8.0;\r\n\r\n/**\r\n * @dev Collection of functions related to the address type\r\n */\r\nlibrary Address {\r\n /**\r\n * @dev Returns true if `account` is a contract.\r\n *\r\n * [IMPORTANT]\r\n * ====\r\n * It is unsafe to assume that an address for which this function returns\r\n * false is an externally-owned account (EOA) and not a contract.\r\n *\r\n * Among others, `isContract` will return false for the following\r\n * types of addresses:\r\n *\r\n * - an externally-owned account\r\n * - a contract in construction\r\n * - an address where a contract will be created\r\n * - an address where a contract lived, but was destroyed\r\n * ====\r\n */\r\n function isContract(address account) internal view returns (bool) {\r\n // This method relies on extcodesize, which returns 0 for contracts in\r\n // construction, since the code is only stored at the end of the\r\n // constructor execution.\r\n\r\n uint256 size;\r\n // solhint-disable-next-line no-inline-assembly\r\n assembly { size := extcodesize(account) }\r\n return size > 0;\r\n }\r\n\r\n /**\r\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\r\n * `recipient`, forwarding all available gas and reverting on errors.\r\n *\r\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\r\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\r\n * imposed by `transfer`, making them unable to receive funds via\r\n * `transfer`. {sendValue} removes this limitation.\r\n *\r\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\r\n *\r\n * IMPORTANT: because control is transferred to `recipient`, care must be\r\n * taken to not create reentrancy vulnerabilities. Consider using\r\n * {ReentrancyGuard} or the\r\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\r\n */\r\n function sendValue(address payable recipient, uint256 amount) internal {\r\n require(address(this).balance >= amount, \"Address: insufficient balance\");\r\n\r\n // solhint-disable-next-line avoid-low-level-calls, avoid-call-value\r\n (bool success, ) = recipient.call{ value: amount }(\"\");\r\n require(success, \"Address: unable to send value, recipient may have reverted\");\r\n }\r\n\r\n /**\r\n * @dev Performs a Solidity function call using a low level `call`. A\r\n * plain`call` is an unsafe replacement for a function call: use this\r\n * function instead.\r\n *\r\n * If `target` reverts with a revert reason, it is bubbled up by this\r\n * function (like regular Solidity function calls).\r\n *\r\n * Returns the raw returned data. To convert to the expected return value,\r\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\r\n *\r\n * Requirements:\r\n *\r\n * - `target` must be a contract.\r\n * - calling `target` with `data` must not revert.\r\n *\r\n * _Available since v3.1._\r\n */\r\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\r\n return functionCall(target, data, \"Address: low-level call failed\");\r\n }\r\n\r\n /**\r\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\r\n * `errorMessage` as a fallback revert reason when `target` reverts.\r\n *\r\n * _Available since v3.1._\r\n */\r\n function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\r\n return functionCallWithValue(target, data, 0, errorMessage);\r\n }\r\n\r\n /**\r\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\r\n * but also transferring `value` wei to `target`.\r\n *\r\n * Requirements:\r\n *\r\n * - the calling contract must have an ETH balance of at least `value`.\r\n * - the called Solidity function must be `payable`.\r\n *\r\n * _Available since v3.1._\r\n */\r\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\r\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\r\n }\r\n\r\n /**\r\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\r\n * with `errorMessage` as a fallback revert reason when `target` reverts.\r\n *\r\n * _Available since v3.1._\r\n */\r\n function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {\r\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\r\n require(isContract(target), \"Address: call to non-contract\");\r\n\r\n // solhint-disable-next-line avoid-low-level-calls\r\n (bool success, bytes memory returndata) = target.call{ value: value }(data);\r\n return _verifyCallResult(success, returndata, errorMessage);\r\n }\r\n\r\n /**\r\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\r\n * but performing a static call.\r\n *\r\n * _Available since v3.3._\r\n */\r\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\r\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\r\n }\r\n\r\n /**\r\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\r\n * but performing a static call.\r\n *\r\n * _Available since v3.3._\r\n */\r\n function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {\r\n require(isContract(target), \"Address: static call to non-contract\");\r\n\r\n // solhint-disable-next-line avoid-low-level-calls\r\n (bool success, bytes memory returndata) = target.staticcall(data);\r\n return _verifyCallResult(success, returndata, errorMessage);\r\n }\r\n\r\n /**\r\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\r\n * but performing a delegate call.\r\n *\r\n * _Available since v3.4._\r\n */\r\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\r\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\r\n }\r\n\r\n /**\r\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\r\n * but performing a delegate call.\r\n *\r\n * _Available since v3.4._\r\n */\r\n function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\r\n require(isContract(target), \"Address: delegate call to non-contract\");\r\n\r\n // solhint-disable-next-line avoid-low-level-calls\r\n (bool success, bytes memory returndata) = target.delegatecall(data);\r\n return _verifyCallResult(success, returndata, errorMessage);\r\n }\r\n\r\n function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {\r\n if (success) {\r\n return returndata;\r\n } else {\r\n // Look for revert reason and bubble it up if present\r\n if (returndata.length > 0) {\r\n // The easiest way to bubble the revert reason is using memory via assembly\r\n\r\n // solhint-disable-next-line no-inline-assembly\r\n assembly {\r\n let returndata_size := mload(returndata)\r\n revert(add(32, returndata), returndata_size)\r\n }\r\n } else {\r\n revert(errorMessage);\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\n// File @openzeppelin/contracts/token/ERC20/SafeERC20.sol@v3.4.0\r\n\r\n\r\n\r\npragma solidity >=0.6.0 <0.8.0;\r\n\r\n\r\n\r\n/**\r\n * @title SafeERC20\r\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\r\n * contract returns false). Tokens that return no value (and instead revert or\r\n * throw on failure) are also supported, non-reverting calls are assumed to be\r\n * successful.\r\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\r\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\r\n */\r\nlibrary SafeERC20 {\r\n using SafeMath for uint256;\r\n using Address for address;\r\n\r\n function safeTransfer(IERC20 token, address to, uint256 value) internal {\r\n _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\r\n }\r\n\r\n function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\r\n _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\r\n }\r\n\r\n /**\r\n * @dev Deprecated. This function has issues similar to the ones found in\r\n * {IERC20-approve}, and its usage is discouraged.\r\n *\r\n * Whenever possible, use {safeIncreaseAllowance} and\r\n * {safeDecreaseAllowance} instead.\r\n */\r\n function safeApprove(IERC20 token, address spender, uint256 value) internal {\r\n // safeApprove should only be called when setting an initial allowance,\r\n // or when resetting it to zero. To increase and decrease it, use\r\n // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\r\n // solhint-disable-next-line max-line-length\r\n require((value == 0) || (token.allowance(address(this), spender) == 0),\r\n \"SafeERC20: approve from non-zero to non-zero allowance\"\r\n );\r\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\r\n }\r\n\r\n function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\r\n uint256 newAllowance = token.allowance(address(this), spender).add(value);\r\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\r\n }\r\n\r\n function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {\r\n uint256 newAllowance = token.allowance(address(this), spender).sub(value, \"SafeERC20: decreased allowance below zero\");\r\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\r\n }\r\n\r\n /**\r\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\r\n * on the return value: the return value is optional (but if data is returned, it must not be false).\r\n * @param token The token targeted by the call.\r\n * @param data The call data (encoded using abi.encode or one of its variants).\r\n */\r\n function _callOptionalReturn(IERC20 token, bytes memory data) private {\r\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\r\n // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that\r\n // the target address contains contract code and also asserts for success in the low-level call.\r\n\r\n bytes memory returndata = address(token).functionCall(data, \"SafeERC20: low-level call failed\");\r\n if (returndata.length > 0) { // Return data is optional\r\n // solhint-disable-next-line max-line-length\r\n require(abi.decode(returndata, (bool)), \"SafeERC20: ERC20 operation did not succeed\");\r\n }\r\n }\r\n}\r\n\r\n\r\n// File @openzeppelin/contracts/access/Ownable.sol@v3.4.0\r\n\r\n\r\n\r\npragma solidity >=0.6.0 <0.8.0;\r\n\r\n/**\r\n * @dev Contract module which provides a basic access control mechanism, where\r\n * there is an account (an owner) that can be granted exclusive access to\r\n * specific functions.\r\n *\r\n * By default, the owner account will be the one that deploys the contract. This\r\n * can later be changed with {transferOwnership}.\r\n *\r\n * This module is used through inheritance. It will make available the modifier\r\n * `onlyOwner`, which can be applied to your functions to restrict their use to\r\n * the owner.\r\n */\r\nabstract contract Ownable is Context {\r\n address private _owner;\r\n\r\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\r\n\r\n /**\r\n * @dev Initializes the contract setting the deployer as the initial owner.\r\n */\r\n constructor () internal {\r\n address msgSender = _msgSender();\r\n _owner = msgSender;\r\n emit OwnershipTransferred(address(0), msgSender);\r\n }\r\n\r\n /**\r\n * @dev Returns the address of the current owner.\r\n */\r\n function owner() public view virtual returns (address) {\r\n return _owner;\r\n }\r\n\r\n /**\r\n * @dev Throws if called by any account other than the owner.\r\n */\r\n modifier onlyOwner() {\r\n require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\r\n _;\r\n }\r\n\r\n /**\r\n * @dev Leaves the contract without owner. It will not be possible to call\r\n * `onlyOwner` functions anymore. Can only be called by the current owner.\r\n *\r\n * NOTE: Renouncing ownership will leave the contract without an owner,\r\n * thereby removing any functionality that is only available to the owner.\r\n */\r\n function renounceOwnership() public virtual onlyOwner {\r\n emit OwnershipTransferred(_owner, address(0));\r\n _owner = address(0);\r\n }\r\n\r\n /**\r\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\r\n * Can only be called by the current owner.\r\n */\r\n function transferOwnership(address newOwner) public virtual onlyOwner {\r\n require(newOwner != address(0), \"Ownable: new owner is the zero address\");\r\n emit OwnershipTransferred(_owner, newOwner);\r\n _owner = newOwner;\r\n }\r\n}\r\n\r\n\r\n// File contracts/SmartCraftInitializable.sol\r\n\r\npragma solidity 0.6.12;\r\n\r\n\r\n\r\n\r\n\r\ncontract SmartCraftInitializable is Ownable, ReentrancyGuard {\r\n using SafeMath for uint256;\r\n using SafeERC20 for ERC20;\r\n\r\n // The address of the smart craft factory\r\n address immutable public SMART_CRAFT_FACTORY;\r\n\r\n // Whether a limit is set for users\r\n bool public hasUserLimit;\r\n\r\n // Whether it is initialized\r\n bool public isInitialized;\r\n\r\n // Accrued token per share\r\n uint256 public accTokenPerShare;\r\n\r\n // The block number when rewardToken mining ends.\r\n uint256 public rewardsEndBlock;\r\n\r\n // The block number when rewardToken mining starts.\r\n uint256 public startBlock;\r\n\r\n // The block number of the last pool update\r\n uint256 public lastRewardBlock;\r\n\r\n // The pool limit (0 if none)\r\n uint256 public poolLimitPerUser;\r\n\r\n // Reward tokens per block.\r\n uint256 public rewardPerBlock;\r\n\r\n // Max cap reward tokens per block.\r\n uint256 immutable public MaxCapRewardPerBlock;\r\n\r\n // The precision factor\r\n uint256 public PRECISION_FACTOR;\r\n\r\n // The reward token\r\n ERC20 public rewardToken;\r\n\r\n // The staked token\r\n ERC20 public stakedToken;\r\n\r\n // Info of each user that stakes tokens (stakedToken)\r\n mapping(address => UserInfo) public userInfo;\r\n\r\n struct UserInfo {\r\n uint256 amount; // How many staked tokens the user has provided\r\n uint256 rewardDebt; // Reward debt\r\n }\r\n\r\n event AdminTokenRecovery(ERC20 tokenRecovered, uint256 amount);\r\n event Deposit(address indexed user, uint256 amount);\r\n event EmergencyWithdraw(address indexed user, uint256 amount);\r\n event EmergencyRewardWithdraw(address indexed user, uint256 amount);\r\n event NewStartAndEndBlocks(uint256 startBlock, uint256 endBlock);\r\n event NewRewardPerBlock(uint256 rewardPerBlock);\r\n event NewPoolLimit(uint256 poolLimitPerUser);\r\n event RewardsStop(uint256 blockNumber);\r\n event Withdraw(address indexed user, uint256 amount);\r\n\r\n constructor(uint256 _maxCapRewardPerBlock) public {\r\n SMART_CRAFT_FACTORY = msg.sender;\r\n MaxCapRewardPerBlock = _maxCapRewardPerBlock;\r\n }\r\n\r\n /*\r\n * @notice Initialize the contract\r\n * @param _stakedToken: staked token address\r\n * @param _rewardToken: reward token address\r\n * @param _rewardPerBlock: reward per block (in rewardToken)\r\n * @param _startBlock: start block\r\n * @param _rewardsEndBlock: end block\r\n * @param _poolLimitPerUser: pool limit per user in stakedToken (if any, else 0)\r\n * @param _admin: admin address with ownership\r\n */\r\n function initialize(\r\n ERC20 _stakedToken,\r\n ERC20 _rewardToken,\r\n uint256 _rewardPerBlock,\r\n uint256 _startBlock,\r\n uint256 _rewardsEndBlock,\r\n uint256 _poolLimitPerUser,\r\n address _admin\r\n ) external {\r\n require(!isInitialized, \"Already initialized\");\r\n require(msg.sender == SMART_CRAFT_FACTORY, \"Not factory\");\r\n require(address(_stakedToken) != address(_rewardToken), \"Staked token and Reward Token cannot be the same\");\r\n require(_startBlock <= _rewardsEndBlock, \"Startblock must be before rewardsEndBlock\");\r\n require(_rewardPerBlock <= MaxCapRewardPerBlock, \"Reward per block can't be more than the max cap\");\r\n\r\n // Make this contract initialized\r\n isInitialized = true;\r\n\r\n stakedToken = _stakedToken;\r\n rewardToken = _rewardToken;\r\n rewardPerBlock = _rewardPerBlock;\r\n startBlock = _startBlock;\r\n rewardsEndBlock = _rewardsEndBlock;\r\n\r\n if (_poolLimitPerUser > 0) {\r\n hasUserLimit = true;\r\n poolLimitPerUser = _poolLimitPerUser;\r\n }\r\n\r\n uint256 decimalsRewardToken = uint256(rewardToken.decimals());\r\n require(decimalsRewardToken < 36, \"Must be inferior to 36\");\r\n\r\n PRECISION_FACTOR = 10**(uint256(36).sub(decimalsRewardToken));\r\n\r\n // Set the lastRewardBlock as the startBlock\r\n lastRewardBlock = startBlock;\r\n\r\n // Transfer ownership to the admin address who becomes owner of the contract\r\n transferOwnership(_admin);\r\n }\r\n\r\n /*\r\n * @notice Deposit staked tokens and collect reward tokens (if any)\r\n * @param _amount: amount to withdraw (in stakedToken)\r\n */\r\n function deposit(uint256 _amount) external nonReentrant {\r\n UserInfo storage user = userInfo[msg.sender];\r\n if (hasUserLimit) {\r\n require(_amount.add(user.amount) <= poolLimitPerUser, \"User amount above limit\");\r\n }\r\n\r\n _updatePool();\r\n\r\n if (user.amount > 0) {\r\n uint256 pending = user.amount.mul(accTokenPerShare).div(PRECISION_FACTOR).sub(user.rewardDebt);\r\n if (pending > 0) {\r\n rewardToken.safeTransfer(msg.sender, pending);\r\n }\r\n }\r\n\r\n if (_amount > 0) {\r\n user.amount = user.amount.add(_amount);\r\n stakedToken.safeTransferFrom(msg.sender, address(this), _amount);\r\n }\r\n\r\n user.rewardDebt = user.amount.mul(accTokenPerShare).div(PRECISION_FACTOR);\r\n\r\n emit Deposit(msg.sender, _amount);\r\n }\r\n\r\n /*\r\n * @notice Withdraw staked tokens and collect reward tokens\r\n * @param _amount: amount to withdraw (in stakedToken)\r\n */\r\n function withdraw(uint256 _amount) external nonReentrant {\r\n UserInfo storage user = userInfo[msg.sender];\r\n require(user.amount >= _amount, \"Amount to withdraw too high\");\r\n\r\n _updatePool();\r\n\r\n uint256 pending = user.amount.mul(accTokenPerShare).div(PRECISION_FACTOR).sub(user.rewardDebt);\r\n\r\n if (_amount > 0) {\r\n user.amount = user.amount.sub(_amount);\r\n stakedToken.safeTransfer(msg.sender, _amount);\r\n }\r\n\r\n if (pending > 0) {\r\n rewardToken.safeTransfer(msg.sender, pending);\r\n }\r\n\r\n user.rewardDebt = user.amount.mul(accTokenPerShare).div(PRECISION_FACTOR);\r\n\r\n emit Withdraw(msg.sender, _amount);\r\n }\r\n\r\n /*\r\n * @notice Withdraw staked tokens without caring about rewards\r\n * @dev Needs to be for emergency.\r\n */\r\n function emergencyWithdraw() external nonReentrant {\r\n UserInfo storage user = userInfo[msg.sender];\r\n uint256 amountToTransfer = user.amount;\r\n user.amount = 0;\r\n user.rewardDebt = 0;\r\n\r\n if (amountToTransfer > 0) {\r\n stakedToken.safeTransfer(msg.sender, amountToTransfer);\r\n }\r\n\r\n emit EmergencyWithdraw(msg.sender, amountToTransfer);\r\n }\r\n\r\n /*\r\n * @notice Stop rewards\r\n * @dev Only callable by owner. Needs to be for emergency.\r\n */\r\n function emergencyRewardWithdraw(uint256 _amount) external onlyOwner {\r\n rewardToken.safeTransfer(msg.sender, _amount);\r\n emit EmergencyRewardWithdraw(msg.sender, _amount);\r\n }\r\n\r\n /**\r\n * @notice It allows the admin to recover wrong tokens sent to the contract\r\n * @param _tokenAddress: the address of the token to withdraw\r\n * @param _tokenAmount: the number of tokens to withdraw\r\n * @dev This function is only callable by admin.\r\n */\r\n function recoverWrongTokens(ERC20 _tokenAddress, uint256 _tokenAmount) external onlyOwner {\r\n require(_tokenAddress != stakedToken, \"Cannot be staked token\");\r\n require(_tokenAddress != rewardToken, \"Cannot be reward token\");\r\n\r\n _tokenAddress.safeTransfer(msg.sender, _tokenAmount);\r\n\r\n emit AdminTokenRecovery(_tokenAddress, _tokenAmount);\r\n }\r\n\r\n /*\r\n * @notice Stop rewards\r\n * @dev Only callable by owner\r\n */\r\n function stopReward() external onlyOwner {\r\n require(block.number < rewardsEndBlock, \"Rewards has already ended\");\r\n rewardsEndBlock = block.number;\r\n\r\n emit RewardsStop(rewardsEndBlock);\r\n }\r\n\r\n /*\r\n * @notice Update pool limit per user\r\n * @dev Only callable by owner.\r\n * @param _hasUserLimit: whether the limit remains forced\r\n * @param _poolLimitPerUser: new pool limit per user\r\n */\r\n function updatePoolLimitPerUser(bool _hasUserLimit, uint256 _poolLimitPerUser) external onlyOwner {\r\n require(hasUserLimit, \"Must be set\");\r\n if (_hasUserLimit) {\r\n require(_poolLimitPerUser > poolLimitPerUser, \"New limit must be higher\");\r\n poolLimitPerUser = _poolLimitPerUser;\r\n } else {\r\n hasUserLimit = _hasUserLimit;\r\n poolLimitPerUser = 0;\r\n }\r\n emit NewPoolLimit(poolLimitPerUser);\r\n }\r\n\r\n /*\r\n * @notice Update reward per block\r\n * @dev Only callable by owner.\r\n * @param _rewardPerBlock: the reward per block\r\n */\r\n function updateRewardPerBlock(uint256 _rewardPerBlock) external onlyOwner {\r\n require(block.number < startBlock, \"Pool has started\");\r\n require(_rewardPerBlock <= MaxCapRewardPerBlock, \"Can't increase rewards more than the max cap\");\r\n rewardPerBlock = _rewardPerBlock;\r\n emit NewRewardPerBlock(_rewardPerBlock);\r\n }\r\n\r\n function updateRewardPerBlockAfterStart(uint256 _rewardPerBlock) external onlyOwner {\r\n require(block.number < rewardsEndBlock, \"Pool has already ended\");\r\n require(_rewardPerBlock <= MaxCapRewardPerBlock, \"Can't increase rewards more than the max cap\");\r\n\r\n _updatePool();\r\n rewardPerBlock = _rewardPerBlock;\r\n emit NewRewardPerBlock(_rewardPerBlock);\r\n }\r\n\r\n /**\r\n * @notice It allows the admin to update start and end blocks\r\n * @dev This function is only callable by owner.\r\n * @param _startBlock: the new start block\r\n * @param _rewardsEndBlock: the new end block\r\n */\r\n function updateStartAndEndBlocks(uint256 _startBlock, uint256 _rewardsEndBlock) external onlyOwner {\r\n require(block.number < startBlock, \"Pool has started\");\r\n require(_startBlock < _rewardsEndBlock, \"New startBlock must be lower than new endBlock\");\r\n require(block.number < _startBlock, \"New startBlock must be higher than current block\");\r\n\r\n startBlock = _startBlock;\r\n rewardsEndBlock = _rewardsEndBlock;\r\n\r\n // Set the lastRewardBlock as the startBlock\r\n lastRewardBlock = startBlock;\r\n\r\n emit NewStartAndEndBlocks(_startBlock, _rewardsEndBlock);\r\n }\r\n\r\n /*\r\n * @notice View function to see pending reward on frontend.\r\n * @param _user: user address\r\n * @return Pending reward for a given user\r\n */\r\n function pendingReward(address _user) external view returns (uint256) {\r\n UserInfo storage user = userInfo[_user];\r\n uint256 stakedTokenSupply = stakedToken.balanceOf(address(this));\r\n if (block.number > lastRewardBlock && stakedTokenSupply != 0) {\r\n uint256 multiplier = _getMultiplier(lastRewardBlock, block.number);\r\n uint256 stakedTokenReward = multiplier.mul(rewardPerBlock);\r\n uint256 adjustedTokenPerShare =\r\n accTokenPerShare.add(stakedTokenReward.mul(PRECISION_FACTOR).div(stakedTokenSupply));\r\n return user.amount.mul(adjustedTokenPerShare).div(PRECISION_FACTOR).sub(user.rewardDebt);\r\n } else {\r\n return user.amount.mul(accTokenPerShare).div(PRECISION_FACTOR).sub(user.rewardDebt);\r\n }\r\n }\r\n\r\n /*\r\n * @notice Update reward variables of the given pool to be up-to-date.\r\n */\r\n function _updatePool() internal {\r\n if (block.number <= lastRewardBlock) {\r\n return;\r\n }\r\n\r\n uint256 stakedTokenSupply = stakedToken.balanceOf(address(this));\r\n\r\n if (stakedTokenSupply == 0) {\r\n lastRewardBlock = block.number;\r\n return;\r\n }\r\n\r\n uint256 multiplier = _getMultiplier(lastRewardBlock, block.number);\r\n uint256 stakedTokenReward = multiplier.mul(rewardPerBlock);\r\n accTokenPerShare = accTokenPerShare.add(stakedTokenReward.mul(PRECISION_FACTOR).div(stakedTokenSupply));\r\n lastRewardBlock = block.number;\r\n }\r\n\r\n /*\r\n * @notice Return reward multiplier over the given _from to _to block.\r\n * @param _from: block to start\r\n * @param _to: block to finish\r\n */\r\n function _getMultiplier(uint256 _fromBlockNumber, uint256 _toBlockNumber) internal view returns (uint256) {\r\n if (_toBlockNumber <= rewardsEndBlock) {\r\n return _toBlockNumber.sub(_fromBlockNumber);\r\n } else if (_fromBlockNumber >= rewardsEndBlock) {\r\n return 0;\r\n } else {\r\n return rewardsEndBlock.sub(_fromBlockNumber);\r\n }\r\n }\r\n}"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"immunefi/xx.sol": {
"Address": {
"abi": [],
"devdoc": {
"details": "Collection of functions related to the address type",
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"immunefi/xx.sol\":25388:33253 library Address {\r... */\n dataSize(sub_0)\n dataOffset(sub_0)\n 0x0b\n dup3\n dup3\n dup3\n codecopy\n dup1\n mload\n 0x00\n byte\n 0x73\n eq\n tag_1\n jumpi\n invalid\ntag_1:\n mstore(0x00, address)\n 0x73\n dup2\n mstore8\n dup3\n dup2\n return\nstop\n\nsub_0: assembly {\n /* \"immunefi/xx.sol\":25388:33253 library Address {\r... */\n eq(address, deployTimeAddress())\n mstore(0x40, 0x80)\n 0x00\n dup1\n revert\n\n auxdata: 0xa2646970667358221220508452cef647f66cc35734b42afefce09e3998c1a3cf4edbbb3969cae384266564736f6c634300060c0033\n}\n",
"bytecode": {
"linkReferences": {},
"object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220508452cef647f66cc35734b42afefce09e3998c1a3cf4edbbb3969cae384266564736f6c634300060c0033",
"opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 POP DUP5 MSTORE 0xCE 0xF6 SELFBALANCE 0xF6 PUSH13 0xC35734B42AFEFCE09E3998C1A3 0xCF 0x4E 0xDB 0xBB CODECOPY PUSH10 0xCAE384266564736F6C63 NUMBER STOP MOD 0xC STOP CALLER ",
"sourceMap": "25388:7865:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220508452cef647f66cc35734b42afefce09e3998c1a3cf4edbbb3969cae384266564736f6c634300060c0033",
"opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 POP DUP5 MSTORE 0xCE 0xF6 SELFBALANCE 0xF6 PUSH13 0xC35734B42AFEFCE09E3998C1A3 0xCF 0x4E 0xDB 0xBB CODECOPY PUSH10 0xCAE384266564736F6C63 NUMBER STOP MOD 0xC STOP CALLER ",
"sourceMap": "25388:7865:0:-:0;;;;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "17200",
"executionCost": "97",
"totalCost": "17297"
},
"internal": {
"_verifyCallResult(bool,bytes memory,string memory)": "infinite",
"functionCall(address,bytes memory)": "infinite",
"functionCall(address,bytes memory,string memory)": "infinite",
"functionCallWithValue(address,bytes memory,uint256)": "infinite",
"functionCallWithValue(address,bytes memory,uint256,string memory)": "infinite",
"functionDelegateCall(address,bytes memory)": "infinite",
"functionDelegateCall(address,bytes memory,string memory)": "infinite",
"functionStaticCall(address,bytes memory)": "infinite",
"functionStaticCall(address,bytes memory,string memory)": "infinite",
"isContract(address)": "infinite",
"sendValue(address payable,uint256)": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 25388,
"end": 33253,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 25388,
"end": 33253,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 25388,
"end": 33253,
"name": "PUSH",
"source": 0,
"value": "B"
},
{
"begin": 25388,
"end": 33253,
"name": "DUP3",
"source": 0
},
{
"begin": 25388,
"end": 33253,
"name": "DUP3",
"source": 0
},
{
"begin": 25388,
"end": 33253,
"name": "DUP3",
"source": 0
},
{
"begin": 25388,
"end": 33253,
"name": "CODECOPY",
"source": 0
},
{
"begin": 25388,
"end": 33253,
"name": "DUP1",
"source": 0
},
{
"begin": 25388,
"end": 33253,
"name": "MLOAD",
"source": 0
},
{
"begin": 25388,
"end": 33253,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 25388,
"end": 33253,
"name": "BYTE",
"source": 0
},
{
"begin": 25388,
"end": 33253,
"name": "PUSH",
"source": 0,
"value": "73"
},
{
"begin": 25388,
"end": 33253,
"name": "EQ",
"source": 0
},
{
"begin": 25388,
"end": 33253,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 25388,
"end": 33253,
"name": "JUMPI",
"source": 0
},
{
"begin": 25388,
"end": 33253,
"name": "INVALID",
"source": 0
},
{
"begin": 25388,
"end": 33253,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 25388,
"end": 33253,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 25388,
"end": 33253,
"name": "ADDRESS",
"source": 0
},
{
"begin": 25388,
"end": 33253,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 25388,
"end": 33253,
"name": "MSTORE",
"source": 0
},
{
"begin": 25388,
"end": 33253,
"name": "PUSH",
"source": 0,
"value": "73"
},
{
"begin": 25388,
"end": 33253,
"name": "DUP2",
"source": 0
},
{
"begin": 25388,
"end": 33253,
"name": "MSTORE8",
"source": 0
},
{
"begin": 25388,
"end": 33253,
"name": "DUP3",
"source": 0
},
{
"begin": 25388,
"end": 33253,
"name": "DUP2",
"source": 0
},
{
"begin": 25388,
"end": 33253,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a2646970667358221220508452cef647f66cc35734b42afefce09e3998c1a3cf4edbbb3969cae384266564736f6c634300060c0033",
".code": [
{
"begin": 25388,
"end": 33253,
"name": "PUSHDEPLOYADDRESS",
"source": 0
},
{
"begin": 25388,
"end": 33253,
"name": "ADDRESS",
"source": 0
},
{
"begin": 25388,
"end": 33253,
"name": "EQ",
"source": 0
},
{
"begin": 25388,
"end": 33253,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 25388,
"end": 33253,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 25388,
"end": 33253,
"name": "MSTORE",
"source": 0
},
{
"begin": 25388,
"end": 33253,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 25388,
"end": 33253,
"name": "DUP1",
"source": 0
},
{
"begin": 25388,
"end": 33253,
"name": "REVERT",
"source": 0
}
]
}
}
},
"methodIdentifiers": {}
},
"metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"immunefi/xx.sol\":\"Address\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"immunefi/xx.sol\":{\"keccak256\":\"0x0237da454ff487d47f1302f0b833a28a4cedcb1c872e1a43c0646ec850ecccf7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aceee79175572ac8cc600b6735fa0d539878bab5f51df3b9753df96b0492e91d\",\"dweb:/ipfs/Qmc3HyoRRZUN6f6sRtPFm58FzyvgLPX7bL5pvNenQtiu2h\"]}},\"version\":1}",
"storageLayout": {
"storage": [],
"types": null
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"Context": {
"abi": [],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": "",
"bytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"legacyAssembly": null,
"methodIdentifiers": {}
},
"metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"immunefi/xx.sol\":\"Context\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"immunefi/xx.sol\":{\"keccak256\":\"0x0237da454ff487d47f1302f0b833a28a4cedcb1c872e1a43c0646ec850ecccf7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aceee79175572ac8cc600b6735fa0d539878bab5f51df3b9753df96b0492e91d\",\"dweb:/ipfs/Qmc3HyoRRZUN6f6sRtPFm58FzyvgLPX7bL5pvNenQtiu2h\"]}},\"version\":1}",
"storageLayout": {
"storage": [],
"types": null
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"ERC20": {
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "name_",
"type": "string"
},
{
"internalType": "string",
"name": "symbol_",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "subtractedValue",
"type": "uint256"
}
],
"name": "decreaseAllowance",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "addedValue",
"type": "uint256"
}
],
"name": "increaseAllowance",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"details": "Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. We have followed general OpenZeppelin guidelines: functions revert instead of returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.",
"kind": "dev",
"methods": {
"allowance(address,address)": {
"details": "See {IERC20-allowance}."
},
"approve(address,uint256)": {
"details": "See {IERC20-approve}. Requirements: - `spender` cannot be the zero address."
},
"balanceOf(address)": {
"details": "See {IERC20-balanceOf}."
},
"constructor": {
"details": "Sets the values for {name} and {symbol}, initializes {decimals} with a default value of 18. To select a different value for {decimals}, use {_setupDecimals}. All three of these values are immutable: they can only be set once during construction."
},
"decimals()": {
"details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."
},
"decreaseAllowance(address,uint256)": {
"details": "Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."
},
"increaseAllowance(address,uint256)": {
"details": "Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."
},
"name()": {
"details": "Returns the name of the token."
},
"symbol()": {
"details": "Returns the symbol of the token, usually a shorter version of the name."
},
"totalSupply()": {
"details": "See {IERC20-totalSupply}."
},
"transfer(address,uint256)": {
"details": "See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`."
},
"transferFrom(address,address,uint256)": {
"details": "See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`."
}
},
"version": 1
},
"evm": {
"assembly": " /* \"immunefi/xx.sol\":15465:25212 contract ERC20 is Context, IERC20 {\r... */\n mstore(0x40, 0x80)\n /* \"immunefi/xx.sol\":16124:16273 constructor (string memory name_, string memory symbol_) public {\r... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n mload(0x40)\n sub(codesize, bytecodeSize)\n dup1\n bytecodeSize\n dup4\n codecopy\n dup2\n dup2\n add\n 0x40\n mstore\n 0x40\n dup2\n lt\n iszero\n tag_2\n jumpi\n 0x00\n dup1\n revert\ntag_2:\n dup2\n add\n swap1\n dup1\n dup1\n mload\n mload(0x40)\n swap4\n swap3\n swap2\n swap1\n dup5\n 0x0100000000\n dup3\n gt\n iszero\n tag_3\n jumpi\n 0x00\n dup1\n revert\ntag_3:\n dup4\n dup3\n add\n swap2\n pop\n 0x20\n dup3\n add\n dup6\n dup2\n gt\n iszero\n tag_4\n jumpi\n 0x00\n dup1\n revert\ntag_4:\n dup3\n mload\n dup7\n 0x01\n dup3\n mul\n dup4\n add\n gt\n 0x0100000000\n dup3\n gt\n or\n iszero\n tag_5\n jumpi\n 0x00\n dup1\n revert\ntag_5:\n dup1\n dup4\n mstore\n 0x20\n dup4\n add\n swap3\n pop\n pop\n pop\n swap1\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n dup1\n dup4\n dup4\n 0x00\ntag_6:\n dup4\n dup2\n lt\n iszero\n tag_8\n jumpi\n dup1\n dup3\n add\n mload\n dup2\n dup5\n add\n mstore\n 0x20\n dup2\n add\n swap1\n pop\n jump(tag_6)\ntag_8:\n pop\n pop\n pop\n pop\n swap1\n pop\n swap1\n dup2\n add\n swap1\n 0x1f\n and\n dup1\n iszero\n tag_9\n jumpi\n dup1\n dup3\n sub\n dup1\n mload\n 0x01\n dup4\n 0x20\n sub\n 0x0100\n exp\n sub\n not\n and\n dup2\n mstore\n 0x20\n add\n swap2\n pop\ntag_9:\n pop\n 0x40\n mstore\n 0x20\n add\n dup1\n mload\n mload(0x40)\n swap4\n swap3\n swap2\n swap1\n dup5\n 0x0100000000\n dup3\n gt\n iszero\n tag_10\n jumpi\n 0x00\n dup1\n revert\ntag_10:\n dup4\n dup3\n add\n swap2\n pop\n 0x20\n dup3\n add\n dup6\n dup2\n gt\n iszero\n tag_11\n jumpi\n 0x00\n dup1\n revert\ntag_11:\n dup3\n mload\n dup7\n 0x01\n dup3\n mul\n dup4\n add\n gt\n 0x0100000000\n dup3\n gt\n or\n iszero\n tag_12\n jumpi\n 0x00\n dup1\n revert\ntag_12:\n dup1\n dup4\n mstore\n 0x20\n dup4\n add\n swap3\n pop\n pop\n pop\n swap1\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n dup1\n dup4\n dup4\n 0x00\ntag_13:\n dup4\n dup2\n lt\n iszero\n tag_15\n jumpi\n dup1\n dup3\n add\n mload\n dup2\n dup5\n add\n mstore\n 0x20\n dup2\n add\n swap1\n pop\n jump(tag_13)\ntag_15:\n pop\n pop\n pop\n pop\n swap1\n pop\n swap1\n dup2\n add\n swap1\n 0x1f\n and\n dup1\n iszero\n tag_16\n jumpi\n dup1\n dup3\n sub\n dup1\n mload\n 0x01\n dup4\n 0x20\n sub\n 0x0100\n exp\n sub\n not\n and\n dup2\n mstore\n 0x20\n add\n swap2\n pop\ntag_16:\n pop\n 0x40\n mstore\n pop\n pop\n pop\n /* \"immunefi/xx.sol\":16207:16212 name_ */\n dup2\n /* \"immunefi/xx.sol\":16199:16204 _name */\n 0x03\n /* \"immunefi/xx.sol\":16199:16212 _name = name_ */\n swap1\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n tag_19\n swap3\n swap2\n swap1\n tag_20\n jump\t// in\ntag_19:\n pop\n /* \"immunefi/xx.sol\":16233:16240 symbol_ */\n dup1\n /* \"immunefi/xx.sol\":16223:16230 _symbol */\n 0x04\n /* \"immunefi/xx.sol\":16223:16240 _symbol = symbol_ */\n swap1\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n tag_21\n swap3\n swap2\n swap1\n tag_20\n jump\t// in\ntag_21:\n pop\n /* \"immunefi/xx.sol\":16263:16265 18 */\n 0x12\n /* \"immunefi/xx.sol\":16251:16260 _decimals */\n 0x05\n 0x00\n /* \"immunefi/xx.sol\":16251:16265 _decimals = 18 */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xff\n mul\n not\n and\n swap1\n dup4\n 0xff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"immunefi/xx.sol\":16124:16273 constructor (string memory name_, string memory symbol_) public {\r... */\n pop\n pop\n /* \"immunefi/xx.sol\":15465:25212 contract ERC20 is Context, IERC20 {\r... */\n jump(tag_22)\ntag_20:\n dup3\n dup1\n sload\n 0x01\n dup2\n 0x01\n and\n iszero\n 0x0100\n mul\n sub\n and\n 0x02\n swap1\n div\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n 0x1f\n add\n 0x20\n swap1\n div\n dup2\n add\n swap3\n dup3\n 0x1f\n lt\n tag_24\n jumpi\n dup1\n mload\n not(0xff)\n and\n dup4\n dup1\n add\n or\n dup6\n sstore\n jump(tag_23)\ntag_24:\n dup3\n dup1\n add\n 0x01\n add\n dup6\n sstore\n dup3\n iszero\n tag_23\n jumpi\n swap2\n dup3\n add\ntag_25:\n dup3\n dup2\n gt\n iszero\n tag_26\n jumpi\n dup3\n mload\n dup3\n sstore\n swap2\n 0x20\n add\n swap2\n swap1\n 0x01\n add\n swap1\n jump(tag_25)\ntag_26:\ntag_23:\n pop\n swap1\n pop\n tag_27\n swap2\n swap1\n tag_28\n jump\t// in\ntag_27:\n pop\n swap1\n jump\t// out\ntag_28:\ntag_29:\n dup1\n dup3\n gt\n iszero\n tag_30\n jumpi\n 0x00\n dup2\n 0x00\n swap1\n sstore\n pop\n 0x01\n add\n jump(tag_29)\ntag_30:\n pop\n swap1\n jump\t// out\ntag_22:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"immunefi/xx.sol\":15465:25212 contract ERC20 is Context, IERC20 {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x39509351\n gt\n tag_14\n jumpi\n dup1\n 0x39509351\n eq\n tag_8\n jumpi\n dup1\n 0x70a08231\n eq\n tag_9\n jumpi\n dup1\n 0x95d89b41\n eq\n tag_10\n jumpi\n dup1\n 0xa457c2d7\n eq\n tag_11\n jumpi\n dup1\n 0xa9059cbb\n eq\n tag_12\n jumpi\n dup1\n 0xdd62ed3e\n eq\n tag_13\n jumpi\n jump(tag_2)\n tag_14:\n dup1\n 0x06fdde03\n eq\n tag_3\n jumpi\n dup1\n 0x095ea7b3\n eq\n tag_4\n jumpi\n dup1\n 0x18160ddd\n eq\n tag_5\n jumpi\n dup1\n 0x23b872dd\n eq\n tag_6\n jumpi\n dup1\n 0x313ce567\n eq\n tag_7\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"immunefi/xx.sol\":16343:16434 function name() public view virtual returns (string memory) {\r... */\n tag_3:\n tag_15\n tag_16\n jump\t// in\n tag_15:\n mload(0x40)\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n dup4\n dup2\n dup2\n mload\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n dup1\n dup4\n dup4\n 0x00\n tag_17:\n dup4\n dup2\n lt\n iszero\n tag_19\n jumpi\n dup1\n dup3\n add\n mload\n dup2\n dup5\n add\n mstore\n 0x20\n dup2\n add\n swap1\n pop\n jump(tag_17)\n tag_19:\n pop\n pop\n pop\n pop\n swap1\n pop\n swap1\n dup2\n add\n swap1\n 0x1f\n and\n dup1\n iszero\n tag_20\n jumpi\n dup1\n dup3\n sub\n dup1\n mload\n 0x01\n dup4\n 0x20\n sub\n 0x0100\n exp\n sub\n not\n and\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n tag_20:\n pop\n swap3\n pop\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"immunefi/xx.sol\":18489:18658 function approve(address spender, uint256 amount) public virtual override returns (bool) {\r... */\n tag_4:\n tag_21\n 0x04\n dup1\n calldatasize\n sub\n 0x40\n dup2\n lt\n iszero\n tag_22\n jumpi\n 0x00\n dup1\n revert\n tag_22:\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n tag_23\n jump\t// in\n tag_21:\n mload(0x40)\n dup1\n dup3\n iszero\n iszero\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"immunefi/xx.sol\":17442:17550 function totalSupply() public view virtual override returns (uint256) {\r... */\n tag_5:\n tag_24\n tag_25\n jump\t// in\n tag_24:\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"immunefi/xx.sol\":19140:19461 function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {\r... */\n tag_6:\n tag_26\n 0x04\n dup1\n calldatasize\n sub\n 0x60\n dup2\n lt\n iszero\n tag_27\n jumpi\n 0x00\n dup1\n revert\n tag_27:\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n tag_28\n jump\t// in\n tag_26:\n mload(0x40)\n dup1\n dup3\n iszero\n iszero\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"immunefi/xx.sol\":17286:17377 function decimals() public view virtual returns (uint8) {\r... */\n tag_7:\n tag_29\n tag_30\n jump\t// in\n tag_29:\n mload(0x40)\n dup1\n dup3\n 0xff\n and\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"immunefi/xx.sol\":19870:20088 function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\r... */\n tag_8:\n tag_31\n 0x04\n dup1\n calldatasize\n sub\n 0x40\n dup2\n lt\n iszero\n tag_32\n jumpi\n 0x00\n dup1\n revert\n tag_32:\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n tag_33\n jump\t// in\n tag_31:\n mload(0x40)\n dup1\n dup3\n iszero\n iszero\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"immunefi/xx.sol\":17613:17740 function balanceOf(address account) public view virtual override returns (uint256) {\r... */\n tag_9:\n tag_34\n 0x04\n dup1\n calldatasize\n sub\n 0x20\n dup2\n lt\n iszero\n tag_35\n jumpi\n 0x00\n dup1\n revert\n tag_35:\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n tag_36\n jump\t// in\n tag_34:\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"immunefi/xx.sol\":16553:16648 function symbol() public view virtual returns (string memory) {\r... */\n tag_10:\n tag_37\n tag_38\n jump\t// in\n tag_37:\n mload(0x40)\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n dup4\n dup2\n dup2\n mload\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n dup1\n dup4\n dup4\n 0x00\n tag_39:\n dup4\n dup2\n lt\n iszero\n tag_41\n jumpi\n dup1\n dup3\n add\n mload\n dup2\n dup5\n add\n mstore\n 0x20\n dup2\n add\n swap1\n pop\n jump(tag_39)\n tag_41:\n pop\n pop\n pop\n pop\n swap1\n pop\n swap1\n dup2\n add\n swap1\n 0x1f\n and\n dup1\n iszero\n tag_42\n jumpi\n dup1\n dup3\n sub\n dup1\n mload\n 0x01\n dup4\n 0x20\n sub\n 0x0100\n exp\n sub\n not\n and\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n tag_42:\n pop\n swap3\n pop\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"immunefi/xx.sol\":20591:20860 function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\r... */\n tag_11:\n tag_43\n 0x04\n dup1\n calldatasize\n sub\n 0x40\n dup2\n lt\n iszero\n tag_44\n jumpi\n 0x00\n dup1\n revert\n tag_44:\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n tag_45\n jump\t// in\n tag_43:\n mload(0x40)\n dup1\n dup3\n iszero\n iszero\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"immunefi/xx.sol\":17953:18128 function transfer(address recipient, uint256 amount) public virtual override returns (bool) {\r... */\n tag_12:\n tag_46\n 0x04\n dup1\n calldatasize\n sub\n 0x40\n dup2\n lt\n iszero\n tag_47\n jumpi\n 0x00\n dup1\n revert\n tag_47:\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n tag_48\n jump\t// in\n tag_46:\n mload(0x40)\n dup1\n dup3\n iszero\n iszero\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"immunefi/xx.sol\":18191:18342 function allowance(address owner, address spender) public view virtual override returns (uint256) {\r... */\n tag_13:\n tag_49\n 0x04\n dup1\n calldatasize\n sub\n 0x40\n dup2\n lt\n iszero\n tag_50\n jumpi\n 0x00\n dup1\n revert\n tag_50:\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n tag_51\n jump\t// in\n tag_49:\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"immunefi/xx.sol\":16343:16434 function name() public view virtual returns (string memory) {\r... */\n tag_16:\n /* \"immunefi/xx.sol\":16388:16401 string memory */\n 0x60\n /* \"immunefi/xx.sol\":16421:16426 _name */\n 0x03\n /* \"immunefi/xx.sol\":16414:16426 return _name */\n dup1\n sload\n 0x01\n dup2\n 0x01\n and\n iszero\n 0x0100\n mul\n sub\n and\n 0x02\n swap1\n div\n dup1\n 0x1f\n add\n 0x20\n dup1\n swap2\n div\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup3\n dup1\n sload\n 0x01\n dup2\n 0x01\n and\n iszero\n 0x0100\n mul\n sub\n and\n 0x02\n swap1\n div\n dup1\n iszero\n tag_53\n jumpi\n dup1\n 0x1f\n lt\n tag_54\n jumpi\n 0x0100\n dup1\n dup4\n sload\n div\n mul\n dup4\n mstore\n swap2\n 0x20\n add\n swap2\n jump(tag_53)\n tag_54:\n dup3\n add\n swap2\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n tag_55:\n dup2\n sload\n dup2\n mstore\n swap1\n 0x01\n add\n swap1\n 0x20\n add\n dup1\n dup4\n gt\n tag_55\n jumpi\n dup3\n swap1\n sub\n 0x1f\n and\n dup3\n add\n swap2\n tag_53:\n pop\n pop\n pop\n pop\n pop\n swap1\n pop\n /* \"immunefi/xx.sol\":16343:16434 function name() public view virtual returns (string memory) {\r... */\n swap1\n jump\t// out\n /* \"immunefi/xx.sol\":18489:18658 function approve(address spender, uint256 amount) public virtual override returns (bool) {\r... */\n tag_23:\n /* \"immunefi/xx.sol\":18572:18576 bool */\n 0x00\n /* \"immunefi/xx.sol\":18589:18628 _approve(_msgSender(), spender, amount) */\n tag_57\n /* \"immunefi/xx.sol\":18598:18610 _msgSender() */\n tag_58\n /* \"immunefi/xx.sol\":18598:18608 _msgSender */\n tag_59\n /* \"immunefi/xx.sol\":18598:18610 _msgSender() */\n jump\t// in\n tag_58:\n /* \"immunefi/xx.sol\":18612:18619 spender */\n dup5\n /* \"immunefi/xx.sol\":18621:18627 amount */\n dup5\n /* \"immunefi/xx.sol\":18589:18597 _approve */\n tag_60\n /* \"immunefi/xx.sol\":18589:18628 _approve(_msgSender(), spender, amount) */\n jump\t// in\n tag_57:\n /* \"immunefi/xx.sol\":18646:18650 true */\n 0x01\n /* \"immunefi/xx.sol\":18639:18650 return true */\n swap1\n pop\n /* \"immunefi/xx.sol\":18489:18658 function approve(address spender, uint256 amount) public virtual override returns (bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"immunefi/xx.sol\":17442:17550 function totalSupply() public view virtual override returns (uint256) {\r... */\n tag_25:\n /* \"immunefi/xx.sol\":17503:17510 uint256 */\n 0x00\n /* \"immunefi/xx.sol\":17530:17542 _totalSupply */\n sload(0x02)\n /* \"immunefi/xx.sol\":17523:17542 return _totalSupply */\n swap1\n pop\n /* \"immunefi/xx.sol\":17442:17550 function totalSupply() public view virtual override returns (uint256) {\r... */\n swap1\n jump\t// out\n /* \"immunefi/xx.sol\":19140:19461 function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {\r... */\n tag_28:\n /* \"immunefi/xx.sol\":19246:19250 bool */\n 0x00\n /* \"immunefi/xx.sol\":19263:19299 _transfer(sender, recipient, amount) */\n tag_63\n /* \"immunefi/xx.sol\":19273:19279 sender */\n dup5\n /* \"immunefi/xx.sol\":19281:19290 recipient */\n dup5\n /* \"immunefi/xx.sol\":19292:19298 amount */\n dup5\n /* \"immunefi/xx.sol\":19263:19272 _transfer */\n tag_64\n /* \"immunefi/xx.sol\":19263:19299 _transfer(sender, recipient, amount) */\n jump\t// in\n tag_63:\n /* \"immunefi/xx.sol\":19310:19431 _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, \"ERC20: transfer amount exceeds allowance\")) */\n tag_65\n /* \"immunefi/xx.sol\":19319:19325 sender */\n dup5\n /* \"immunefi/xx.sol\":19327:19339 _msgSender() */\n tag_66\n /* \"immunefi/xx.sol\":19327:19337 _msgSender */\n tag_59\n /* \"immunefi/xx.sol\":19327:19339 _msgSender() */\n jump\t// in\n tag_66:\n /* \"immunefi/xx.sol\":19341:19430 _allowances[sender][_msgSender()].sub(amount, \"ERC20: transfer amount exceeds allowance\") */\n tag_67\n /* \"immunefi/xx.sol\":19379:19385 amount */\n dup6\n /* \"immunefi/xx.sol\":19341:19430 _allowances[sender][_msgSender()].sub(amount, \"ERC20: transfer amount exceeds allowance\") */\n mload(0x40)\n dup1\n 0x60\n add\n 0x40\n mstore\n dup1\n 0x28\n dup2\n mstore\n 0x20\n add\n data_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330\n 0x28\n swap2\n codecopy\n /* \"immunefi/xx.sol\":19341:19352 _allowances */\n 0x01\n /* \"immunefi/xx.sol\":19341:19360 _allowances[sender] */\n 0x00\n /* \"immunefi/xx.sol\":19353:19359 sender */\n dup12\n /* \"immunefi/xx.sol\":19341:19360 _allowances[sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"immunefi/xx.sol\":19341:19374 _allowances[sender][_msgSender()] */\n 0x00\n /* \"immunefi/xx.sol\":19361:19373 _msgSender() */\n tag_68\n /* \"immunefi/xx.sol\":19361:19371 _msgSender */\n tag_59\n /* \"immunefi/xx.sol\":19361:19373 _msgSender() */\n jump\t// in\n tag_68:\n /* \"immunefi/xx.sol\":19341:19374 _allowances[sender][_msgSender()] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"immunefi/xx.sol\":19341:19378 _allowances[sender][_msgSender()].sub */\n tag_69\n swap1\n /* \"immunefi/xx.sol\":19341:19430 _allowances[sender][_msgSender()].sub(amount, \"ERC20: transfer amount exceeds allowance\") */\n swap3\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_67:\n /* \"immunefi/xx.sol\":19310:19318 _approve */\n tag_60\n /* \"immunefi/xx.sol\":19310:19431 _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, \"ERC20: transfer amount exceeds allowance\")) */\n jump\t// in\n tag_65:\n /* \"immunefi/xx.sol\":19449:19453 true */\n 0x01\n /* \"immunefi/xx.sol\":19442:19453 return true */\n swap1\n pop\n /* \"immunefi/xx.sol\":19140:19461 function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {\r... */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"immunefi/xx.sol\":17286:17377 function decimals() public view virtual returns (uint8) {\r... */\n tag_30:\n /* \"immunefi/xx.sol\":17335:17340 uint8 */\n 0x00\n /* \"immunefi/xx.sol\":17360:17369 _decimals */\n 0x05\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n /* \"immunefi/xx.sol\":17353:17369 return _decimals */\n swap1\n pop\n /* \"immunefi/xx.sol\":17286:17377 function decimals() public view virtual returns (uint8) {\r... */\n swap1\n jump\t// out\n /* \"immunefi/xx.sol\":19870:20088 function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\r... */\n tag_33:\n /* \"immunefi/xx.sol\":19958:19962 bool */\n 0x00\n /* \"immunefi/xx.sol\":19975:20058 _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)) */\n tag_72\n /* \"immunefi/xx.sol\":19984:19996 _msgSender() */\n tag_73\n /* \"immunefi/xx.sol\":19984:19994 _msgSender */\n tag_59\n /* \"immunefi/xx.sol\":19984:19996 _msgSender() */\n jump\t// in\n tag_73:\n /* \"immunefi/xx.sol\":19998:20005 spender */\n dup5\n /* \"immunefi/xx.sol\":20007:20057 _allowances[_msgSender()][spender].add(addedValue) */\n tag_74\n /* \"immunefi/xx.sol\":20046:20056 addedValue */\n dup6\n /* \"immunefi/xx.sol\":20007:20018 _allowances */\n 0x01\n /* \"immunefi/xx.sol\":20007:20032 _allowances[_msgSender()] */\n 0x00\n /* \"immunefi/xx.sol\":20019:20031 _msgSender() */\n tag_75\n /* \"immunefi/xx.sol\":20019:20029 _msgSender */\n tag_59\n /* \"immunefi/xx.sol\":20019:20031 _msgSender() */\n jump\t// in\n tag_75:\n /* \"immunefi/xx.sol\":20007:20032 _allowances[_msgSender()] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"immunefi/xx.sol\":20007:20041 _allowances[_msgSender()][spender] */\n 0x00\n /* \"immunefi/xx.sol\":20033:20040 spender */\n dup10\n /* \"immunefi/xx.sol\":20007:20041 _allowances[_msgSender()][spender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"immunefi/xx.sol\":20007:20045 _allowances[_msgSender()][spender].add */\n tag_76\n swap1\n /* \"immunefi/xx.sol\":20007:20057 _allowances[_msgSender()][spender].add(addedValue) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_74:\n /* \"immunefi/xx.sol\":19975:19983 _approve */\n tag_60\n /* \"immunefi/xx.sol\":19975:20058 _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)) */\n jump\t// in\n tag_72:\n /* \"immunefi/xx.sol\":20076:20080 true */\n 0x01\n /* \"immunefi/xx.sol\":20069:20080 return true */\n swap1\n pop\n /* \"immunefi/xx.sol\":19870:20088 function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"immunefi/xx.sol\":17613:17740 function balanceOf(address account) public view virtual override returns (uint256) {\r... */\n tag_36:\n /* \"immunefi/xx.sol\":17687:17694 uint256 */\n 0x00\n /* \"immunefi/xx.sol\":17714:17723 _balances */\n dup1\n /* \"immunefi/xx.sol\":17714:17732 _balances[account] */\n 0x00\n /* \"immunefi/xx.sol\":17724:17731 account */\n dup4\n /* \"immunefi/xx.sol\":17714:17732 _balances[account] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"immunefi/xx.sol\":17707:17732 return _balances[account] */\n swap1\n pop\n /* \"immunefi/xx.sol\":17613:17740 function balanceOf(address account) public view virtual override returns (uint256) {\r... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"immunefi/xx.sol\":16553:16648 function symbol() public view virtual returns (string memory) {\r... */\n tag_38:\n /* \"immunefi/xx.sol\":16600:16613 string memory */\n 0x60\n /* \"immunefi/xx.sol\":16633:16640 _symbol */\n 0x04\n /* \"immunefi/xx.sol\":16626:16640 return _symbol */\n dup1\n sload\n 0x01\n dup2\n 0x01\n and\n iszero\n 0x0100\n mul\n sub\n and\n 0x02\n swap1\n div\n dup1\n 0x1f\n add\n 0x20\n dup1\n swap2\n div\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup3\n dup1\n sload\n 0x01\n dup2\n 0x01\n and\n iszero\n 0x0100\n mul\n sub\n and\n 0x02\n swap1\n div\n dup1\n iszero\n tag_79\n jumpi\n dup1\n 0x1f\n lt\n tag_80\n jumpi\n 0x0100\n dup1\n dup4\n sload\n div\n mul\n dup4\n mstore\n swap2\n 0x20\n add\n swap2\n jump(tag_79)\n tag_80:\n dup3\n add\n swap2\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n tag_81:\n dup2\n sload\n dup2\n mstore\n swap1\n 0x01\n add\n swap1\n 0x20\n add\n dup1\n dup4\n gt\n tag_81\n jumpi\n dup3\n swap1\n sub\n 0x1f\n and\n dup3\n add\n swap2\n tag_79:\n pop\n pop\n pop\n pop\n pop\n swap1\n pop\n /* \"immunefi/xx.sol\":16553:16648 function symbol() public view virtual returns (string memory) {\r... */\n swap1\n jump\t// out\n /* \"immunefi/xx.sol\":20591:20860 function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\r... */\n tag_45:\n /* \"immunefi/xx.sol\":20684:20688 bool */\n 0x00\n /* \"immunefi/xx.sol\":20701:20830 _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, \"ERC20: decreased allowance below zero\")) */\n tag_83\n /* \"immunefi/xx.sol\":20710:20722 _msgSender() */\n tag_84\n /* \"immunefi/xx.sol\":20710:20720 _msgSender */\n tag_59\n /* \"immunefi/xx.sol\":20710:20722 _msgSender() */\n jump\t// in\n tag_84:\n /* \"immunefi/xx.sol\":20724:20731 spender */\n dup5\n /* \"immunefi/xx.sol\":20733:20829 _allowances[_msgSender()][spender].sub(subtractedValue, \"ERC20: decreased allowance below zero\") */\n tag_85\n /* \"immunefi/xx.sol\":20772:20787 subtractedValue */\n dup6\n /* \"immunefi/xx.sol\":20733:20829 _allowances[_msgSender()][spender].sub(subtractedValue, \"ERC20: decreased allowance below zero\") */\n mload(0x40)\n dup1\n 0x60\n add\n 0x40\n mstore\n dup1\n 0x25\n dup2\n mstore\n 0x20\n add\n data_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8\n 0x25\n swap2\n codecopy\n /* \"immunefi/xx.sol\":20733:20744 _allowances */\n 0x01\n /* \"immunefi/xx.sol\":20733:20758 _allowances[_msgSender()] */\n 0x00\n /* \"immunefi/xx.sol\":20745:20757 _msgSender() */\n tag_86\n /* \"immunefi/xx.sol\":20745:20755 _msgSender */\n tag_59\n /* \"immunefi/xx.sol\":20745:20757 _msgSender() */\n jump\t// in\n tag_86:\n /* \"immunefi/xx.sol\":20733:20758 _allowances[_msgSender()] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"immunefi/xx.sol\":20733:20767 _allowances[_msgSender()][spender] */\n 0x00\n /* \"immunefi/xx.sol\":20759:20766 spender */\n dup11\n /* \"immunefi/xx.sol\":20733:20767 _allowances[_msgSender()][spender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"immunefi/xx.sol\":20733:20771 _allowances[_msgSender()][spender].sub */\n tag_69\n swap1\n /* \"immunefi/xx.sol\":20733:20829 _allowances[_msgSender()][spender].sub(subtractedValue, \"ERC20: decreased allowance below zero\") */\n swap3\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_85:\n /* \"immunefi/xx.sol\":20701:20709 _approve */\n tag_60\n /* \"immunefi/xx.sol\":20701:20830 _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, \"ERC20: decreased allowance below zero\")) */\n jump\t// in\n tag_83:\n /* \"immunefi/xx.sol\":20848:20852 true */\n 0x01\n /* \"immunefi/xx.sol\":20841:20852 return true */\n swap1\n pop\n /* \"immunefi/xx.sol\":20591:20860 function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"immunefi/xx.sol\":17953:18128 function transfer(address recipient, uint256 amount) public virtual override returns (bool) {\r... */\n tag_48:\n /* \"immunefi/xx.sol\":18039:18043 bool */\n 0x00\n /* \"immunefi/xx.sol\":18056:18098 _transfer(_msgSender(), recipient, amount) */\n tag_88\n /* \"immunefi/xx.sol\":18066:18078 _msgSender() */\n tag_89\n /* \"immunefi/xx.sol\":18066:18076 _msgSender */\n tag_59\n /* \"immunefi/xx.sol\":18066:18078 _msgSender() */\n jump\t// in\n tag_89:\n /* \"immunefi/xx.sol\":18080:18089 recipient */\n dup5\n /* \"immunefi/xx.sol\":18091:18097 amount */\n dup5\n /* \"immunefi/xx.sol\":18056:18065 _transfer */\n tag_64\n /* \"immunefi/xx.sol\":18056:18098 _transfer(_msgSender(), recipient, amount) */\n jump\t// in\n tag_88:\n /* \"immunefi/xx.sol\":18116:18120 true */\n 0x01\n /* \"immunefi/xx.sol\":18109:18120 return true */\n swap1\n pop\n /* \"immunefi/xx.sol\":17953:18128 function transfer(address recipient, uint256 amount) public virtual override returns (bool) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"immunefi/xx.sol\":18191:18342 function allowance(address owner, address spender) public view virtual override returns (uint256) {\r... */\n tag_51:\n /* \"immunefi/xx.sol\":18280:18287 uint256 */\n 0x00\n /* \"immunefi/xx.sol\":18307:18318 _allowances */\n 0x01\n /* \"immunefi/xx.sol\":18307:18325 _allowances[owner] */\n 0x00\n /* \"immunefi/xx.sol\":18319:18324 owner */\n dup5\n /* \"immunefi/xx.sol\":18307:18325 _allowances[owner] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"immunefi/xx.sol\":18307:18334 _allowances[owner][spender] */\n 0x00\n /* \"immunefi/xx.sol\":18326:18333 spender */\n dup4\n /* \"immunefi/xx.sol\":18307:18334 _allowances[owner][spender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"immunefi/xx.sol\":18300:18334 return _allowances[owner][spender] */\n swap1\n pop\n /* \"immunefi/xx.sol\":18191:18342 function allowance(address owner, address spender) public view virtual override returns (uint256) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"immunefi/xx.sol\":10996:11102 function _msgSender() internal view virtual returns (address payable) {\r... */\n tag_59:\n /* \"immunefi/xx.sol\":11049:11064 address payable */\n 0x00\n /* \"immunefi/xx.sol\":11084:11094 msg.sender */\n caller\n /* \"immunefi/xx.sol\":11077:11094 return msg.sender */\n swap1\n pop\n /* \"immunefi/xx.sol\":10996:11102 function _msgSender() internal view virtual returns (address payable) {\r... */\n swap1\n jump\t// out\n /* \"immunefi/xx.sol\":23738:24084 function _approve(address owner, address spender, uint256 amount) internal virtual {\r... */\n tag_60:\n /* \"immunefi/xx.sol\":23857:23858 0 */\n 0x00\n /* \"immunefi/xx.sol\":23840:23859 owner != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"immunefi/xx.sol\":23840:23845 owner */\n dup4\n /* \"immunefi/xx.sol\":23840:23859 owner != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n iszero\n /* \"immunefi/xx.sol\":23832:23900 require(owner != address(0), \"ERC20: approve from the zero address\") */\n tag_93\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x24\n dup2\n mstore\n 0x20\n add\n dup1\n data_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208\n 0x24\n swap2\n codecopy\n 0x40\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_93:\n /* \"immunefi/xx.sol\":23938:23939 0 */\n 0x00\n /* \"immunefi/xx.sol\":23919:23940 spender != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"immunefi/xx.sol\":23919:23926 spender */\n dup3\n /* \"immunefi/xx.sol\":23919:23940 spender != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n iszero\n /* \"immunefi/xx.sol\":23911:23979 require(spender != address(0), \"ERC20: approve to the zero address\") */\n tag_94\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x22\n dup2\n mstore\n 0x20\n add\n dup1\n data_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029\n 0x22\n swap2\n codecopy\n 0x40\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_94:\n /* \"immunefi/xx.sol\":24022:24028 amount */\n dup1\n /* \"immunefi/xx.sol\":23992:24003 _allowances */\n 0x01\n /* \"immunefi/xx.sol\":23992:24010 _allowances[owner] */\n 0x00\n /* \"immunefi/xx.sol\":24004:24009 owner */\n dup6\n /* \"immunefi/xx.sol\":23992:24010 _allowances[owner] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"immunefi/xx.sol\":23992:24019 _allowances[owner][spender] */\n 0x00\n /* \"immunefi/xx.sol\":24011:24018 spender */\n dup5\n /* \"immunefi/xx.sol\":23992:24019 _allowances[owner][spender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"immunefi/xx.sol\":23992:24028 _allowances[owner][spender] = amount */\n dup2\n swap1\n sstore\n pop\n /* \"immunefi/xx.sol\":24060:24067 spender */\n dup2\n /* \"immunefi/xx.sol\":24044:24076 Approval(owner, spender, amount) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"immunefi/xx.sol\":24053:24058 owner */\n dup4\n /* \"immunefi/xx.sol\":24044:24076 Approval(owner, spender, amount) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925\n /* \"immunefi/xx.sol\":24069:24075 amount */\n dup4\n /* \"immunefi/xx.sol\":24044:24076 Approval(owner, spender, amount) */\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log3\n /* \"immunefi/xx.sol\":23738:24084 function _approve(address owner, address spender, uint256 amount) internal virtual {\r... */\n pop\n pop\n pop\n jump\t// out\n /* \"immunefi/xx.sol\":21350:21889 function _transfer(address sender, address recipient, uint256 amount) internal virtual {\r... */\n tag_64:\n /* \"immunefi/xx.sol\":21474:21475 0 */\n 0x00\n /* \"immunefi/xx.sol\":21456:21476 sender != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"immunefi/xx.sol\":21456:21462 sender */\n dup4\n /* \"immunefi/xx.sol\":21456:21476 sender != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n iszero\n /* \"immunefi/xx.sol\":21448:21518 require(sender != address(0), \"ERC20: transfer from the zero address\") */\n tag_96\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x25\n dup2\n mstore\n 0x20\n add\n dup1\n data_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea\n 0x25\n swap2\n codecopy\n 0x40\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_96:\n /* \"immunefi/xx.sol\":21558:21559 0 */\n 0x00\n /* \"immunefi/xx.sol\":21537:21560 recipient != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"immunefi/xx.sol\":21537:21546 recipient */\n dup3\n /* \"immunefi/xx.sol\":21537:21560 recipient != address(0) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n iszero\n /* \"immunefi/xx.sol\":21529:21600 require(recipient != address(0), \"ERC20: transfer to the zero address\") */\n tag_97\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x23\n dup2\n mstore\n 0x20\n add\n dup1\n data_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f\n 0x23\n swap2\n codecopy\n 0x40\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_97:\n /* \"immunefi/xx.sol\":21613:21660 _beforeTokenTransfer(sender, recipient, amount) */\n tag_98\n /* \"immunefi/xx.sol\":21634:21640 sender */\n dup4\n /* \"immunefi/xx.sol\":21642:21651 recipient */\n dup4\n /* \"immunefi/xx.sol\":21653:21659 amount */\n dup4\n /* \"immunefi/xx.sol\":21613:21633 _beforeTokenTransfer */\n tag_99\n /* \"immunefi/xx.sol\":21613:21660 _beforeTokenTransfer(sender, recipient, amount) */\n jump\t// in\n tag_98:\n /* \"immunefi/xx.sol\":21693:21764 _balances[sender].sub(amount, \"ERC20: transfer amount exceeds balance\") */\n tag_100\n /* \"immunefi/xx.sol\":21715:21721 amount */\n dup2\n /* \"immunefi/xx.sol\":21693:21764 _balances[sender].sub(amount, \"ERC20: transfer amount exceeds balance\") */\n mload(0x40)\n dup1\n 0x60\n add\n 0x40\n mstore\n dup1\n 0x26\n dup2\n mstore\n 0x20\n add\n data_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6\n 0x26\n swap2\n codecopy\n /* \"immunefi/xx.sol\":21693:21702 _balances */\n 0x00\n /* \"immunefi/xx.sol\":21693:21710 _balances[sender] */\n dup1\n /* \"immunefi/xx.sol\":21703:21709 sender */\n dup8\n /* \"immunefi/xx.sol\":21693:21710 _balances[sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"immunefi/xx.sol\":21693:21714 _balances[sender].sub */\n tag_69\n swap1\n /* \"immunefi/xx.sol\":21693:21764 _balances[sender].sub(amount, \"ERC20: transfer amount exceeds balance\") */\n swap3\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_100:\n /* \"immunefi/xx.sol\":21673:21682 _balances */\n 0x00\n /* \"immunefi/xx.sol\":21673:21690 _balances[sender] */\n dup1\n /* \"immunefi/xx.sol\":21683:21689 sender */\n dup6\n /* \"immunefi/xx.sol\":21673:21690 _balances[sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"immunefi/xx.sol\":21673:21764 _balances[sender] = _balances[sender].sub(amount, \"ERC20: transfer amount exceeds balance\") */\n dup2\n swap1\n sstore\n pop\n /* \"immunefi/xx.sol\":21798:21830 _balances[recipient].add(amount) */\n tag_101\n /* \"immunefi/xx.sol\":21823:21829 amount */\n dup2\n /* \"immunefi/xx.sol\":21798:21807 _balances */\n 0x00\n /* \"immunefi/xx.sol\":21798:21818 _balances[recipient] */\n dup1\n /* \"immunefi/xx.sol\":21808:21817 recipient */\n dup6\n /* \"immunefi/xx.sol\":21798:21818 _balances[recipient] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"immunefi/xx.sol\":21798:21822 _balances[recipient].add */\n tag_76\n swap1\n /* \"immunefi/xx.sol\":21798:21830 _balances[recipient].add(amount) */\n swap2\n swap1\n 0xffffffff\n and\n jump\t// in\n tag_101:\n /* \"immunefi/xx.sol\":21775:21784 _balances */\n 0x00\n /* \"immunefi/xx.sol\":21775:21795 _balances[recipient] */\n dup1\n /* \"immunefi/xx.sol\":21785:21794 recipient */\n dup5\n /* \"immunefi/xx.sol\":21775:21795 _balances[recipient] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"immunefi/xx.sol\":21775:21830 _balances[recipient] = _balances[recipient].add(amount) */\n dup2\n swap1\n sstore\n pop\n /* \"immunefi/xx.sol\":21863:21872 recipient */\n dup2\n /* \"immunefi/xx.sol\":21846:21881 Transfer(sender, recipient, amount) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"immunefi/xx.sol\":21855:21861 sender */\n dup4\n /* \"immunefi/xx.sol\":21846:21881 Transfer(sender, recipient, amount) */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\n /* \"immunefi/xx.sol\":21874:21880 amount */\n dup4\n /* \"immunefi/xx.sol\":21846:21881 Transfer(sender, recipient, amount) */\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log3\n /* \"immunefi/xx.sol\":21350:21889 function _transfer(address sender, address recipient, uint256 amount) internal virtual {\r... */\n pop\n pop\n pop\n jump\t// out\n /* \"immunefi/xx.sol\":8512:8678 function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\r... */\n tag_69:\n /* \"immunefi/xx.sol\":8598:8605 uint256 */\n 0x00\n /* \"immunefi/xx.sol\":8631:8632 a */\n dup4\n /* \"immunefi/xx.sol\":8626:8627 b */\n dup4\n /* \"immunefi/xx.sol\":8626:8632 b <= a */\n gt\n iszero\n /* \"immunefi/xx.sol\":8634:8646 errorMessage */\n dup3\n /* \"immunefi/xx.sol\":8618:8647 require(b <= a, errorMessage) */\n swap1\n tag_103\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n dup4\n dup2\n dup2\n mload\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n dup1\n mload\n swap1\n 0x20\n add\n swap1\n dup1\n dup4\n dup4\n 0x00\n tag_104:\n dup4\n dup2\n lt\n iszero\n tag_106\n jumpi\n dup1\n dup3\n add\n mload\n dup2\n dup5\n add\n mstore\n 0x20\n dup2\n add\n swap1\n pop\n jump(tag_104)\n tag_106:\n pop\n pop\n pop\n pop\n swap1\n pop\n swap1\n dup2\n add\n swap1\n 0x1f\n and\n dup1\n iszero\n tag_107\n jumpi\n dup1\n dup3\n sub\n dup1\n mload\n 0x01\n dup4\n 0x20\n sub\n 0x0100\n exp\n sub\n not\n and\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n tag_107:\n pop\n swap3\n pop\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_103:\n pop\n /* \"immunefi/xx.sol\":8669:8670 b */\n dup3\n /* \"immunefi/xx.sol\":8665:8666 a */\n dup5\n /* \"immunefi/xx.sol\":8665:8670 a - b */\n sub\n /* \"immunefi/xx.sol\":8658:8670 return a - b */\n swap1\n pop\n /* \"immunefi/xx.sol\":8512:8678 function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\r... */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"immunefi/xx.sol\":5685:5864 function add(uint256 a, uint256 b) internal pure returns (uint256) {\r... */\n tag_76:\n /* \"immunefi/xx.sol\":5743:5750 uint256 */\n 0x00\n /* \"immunefi/xx.sol\":5763:5772 uint256 c */\n dup1\n /* \"immunefi/xx.sol\":5779:5780 b */\n dup3\n /* \"immunefi/xx.sol\":5775:5776 a */\n dup5\n /* \"immunefi/xx.sol\":5775:5780 a + b */\n add\n /* \"immunefi/xx.sol\":5763:5780 uint256 c = a + b */\n swap1\n pop\n /* \"immunefi/xx.sol\":5804:5805 a */\n dup4\n /* \"immunefi/xx.sol\":5799:5800 c */\n dup2\n /* \"immunefi/xx.sol\":5799:5805 c >= a */\n lt\n iszero\n /* \"immunefi/xx.sol\":5791:5837 require(c >= a, \"SafeMath: addition overflow\") */\n tag_109\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x1b\n dup2\n mstore\n 0x20\n add\n dup1\n 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000\n dup2\n mstore\n pop\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_109:\n /* \"immunefi/xx.sol\":5855:5856 c */\n dup1\n /* \"immunefi/xx.sol\":5848:5856 return c */\n swap2\n pop\n pop\n /* \"immunefi/xx.sol\":5685:5864 function add(uint256 a, uint256 b) internal pure returns (uint256) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"immunefi/xx.sol\":25117:25209 function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } */\n tag_99:\n pop\n pop\n pop\n jump\t// out\n stop\n data_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f 45524332303a207472616e7366657220746f20746865207a65726f2061646472657373\n data_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029 45524332303a20617070726f766520746f20746865207a65726f2061646472657373\n data_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6 45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365\n data_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330 45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365\n data_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea 45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373\n data_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208 45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373\n data_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8 45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f\n\n auxdata: 0xa264697066735822122035fa5100418971eeaf5d1f2675ec0261d247cb4036fbaba3ed7dcdbdc1bcf83464736f6c634300060c0033\n}\n",
"bytecode": {
"linkReferences": {},
"object": "60806040523480156200001157600080fd5b506040516200139f3803806200139f833981810160405260408110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b838201915060208201858111156200006f57600080fd5b82518660018202830111640100000000821117156200008d57600080fd5b8083526020830192505050908051906020019080838360005b83811015620000c3578082015181840152602081019050620000a6565b50505050905090810190601f168015620000f15780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011557600080fd5b838201915060208201858111156200012c57600080fd5b82518660018202830111640100000000821117156200014a57600080fd5b8083526020830192505050908051906020019080838360005b838110156200018057808201518184015260208101905062000163565b50505050905090810190601f168015620001ae5780820380516001836020036101000a031916815260200191505b506040525050508160039080519060200190620001cd9291906200020b565b508060049080519060200190620001e69291906200020b565b506012600560006101000a81548160ff021916908360ff1602179055505050620002b1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200024e57805160ff19168380011785556200027f565b828001600101855582156200027f579182015b828111156200027e57825182559160200191906001019062000261565b5b5090506200028e919062000292565b5090565b5b80821115620002ad57600081600090555060010162000293565b5090565b6110de80620002c16000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461025857806370a08231146102bc57806395d89b4114610314578063a457c2d714610397578063a9059cbb146103fb578063dd62ed3e1461045f576100a9565b806306fdde03146100ae578063095ea7b31461013157806318160ddd1461019557806323b872dd146101b3578063313ce56714610237575b600080fd5b6100b66104d7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610579565b60405180821515815260200191505060405180910390f35b61019d610597565b6040518082815260200191505060405180910390f35b61021f600480360360608110156101c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105a1565b60405180821515815260200191505060405180910390f35b61023f61067a565b604051808260ff16815260200191505060405180910390f35b6102a46004803603604081101561026e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610691565b60405180821515815260200191505060405180910390f35b6102fe600480360360208110156102d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610744565b6040518082815260200191505060405180910390f35b61031c61078c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561035c578082015181840152602081019050610341565b50505050905090810190601f1680156103895780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103e3600480360360408110156103ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061082e565b60405180821515815260200191505060405180910390f35b6104476004803603604081101561041157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108fb565b60405180821515815260200191505060405180910390f35b6104c16004803603604081101561047557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610919565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561056f5780601f106105445761010080835404028352916020019161056f565b820191906000526020600020905b81548152906001019060200180831161055257829003601f168201915b5050505050905090565b600061058d6105866109a0565b84846109a8565b6001905092915050565b6000600254905090565b60006105ae848484610b9f565b61066f846105ba6109a0565b61066a8560405180606001604052806028815260200161101360289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106206109a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e609092919063ffffffff16565b6109a8565b600190509392505050565b6000600560009054906101000a900460ff16905090565b600061073a61069e6109a0565b8461073585600160006106af6109a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f1a90919063ffffffff16565b6109a8565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108245780601f106107f957610100808354040283529160200191610824565b820191906000526020600020905b81548152906001019060200180831161080757829003601f168201915b5050505050905090565b60006108f161083b6109a0565b846108ec8560405180606001604052806025815260200161108460259139600160006108656109a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e609092919063ffffffff16565b6109a8565b6001905092915050565b600061090f6109086109a0565b8484610b9f565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110606024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fcb6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061103b6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610fa86023913960400191505060405180910390fd5b610cb6838383610fa2565b610d2181604051806060016040528060268152602001610fed602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e609092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610db4816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f1a90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610f0d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ed2578082015181840152602081019050610eb7565b50505050905090810190601f168015610eff5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600080828401905083811015610f98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122035fa5100418971eeaf5d1f2675ec0261d247cb4036fbaba3ed7dcdbdc1bcf83464736f6c634300060c0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x139F CODESIZE SUB DUP1 PUSH3 0x139F DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x40 DUP2 LT ISZERO PUSH3 0x37 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH5 0x100000000 DUP3 GT ISZERO PUSH3 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH3 0x6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x1 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH3 0x8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP3 POP POP POP SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0xC3 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0xA6 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0xF1 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP PUSH1 0x40 MSTORE PUSH1 0x20 ADD DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH5 0x100000000 DUP3 GT ISZERO PUSH3 0x115 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH3 0x12C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x1 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH3 0x14A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP3 POP POP POP SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x180 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x163 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH3 0x1AE JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP PUSH1 0x40 MSTORE POP POP POP DUP2 PUSH1 0x3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x1CD SWAP3 SWAP2 SWAP1 PUSH3 0x20B JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x1E6 SWAP3 SWAP2 SWAP1 PUSH3 0x20B JUMP JUMPDEST POP PUSH1 0x12 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP POP PUSH3 0x2B1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH3 0x24E JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x27F JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x27F JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x27E JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x261 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH3 0x28E SWAP2 SWAP1 PUSH3 0x292 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x2AD JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH3 0x293 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x10DE DUP1 PUSH3 0x2C1 PUSH1 0x0 CODECOPY 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 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BC JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x314 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x397 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x3FB JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x45F JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x237 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x4D7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xDB JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x123 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19D PUSH2 0x597 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x5A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23F PUSH2 0x67A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x26E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x691 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2FE PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x744 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x31C PUSH2 0x78C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x35C JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x341 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x389 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3E3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x82E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x447 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x411 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x8FB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4C1 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x475 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x919 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x56F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x544 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x56F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x552 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x58D PUSH2 0x586 PUSH2 0x9A0 JUMP JUMPDEST DUP5 DUP5 PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5AE DUP5 DUP5 DUP5 PUSH2 0xB9F JUMP JUMPDEST PUSH2 0x66F DUP5 PUSH2 0x5BA PUSH2 0x9A0 JUMP JUMPDEST PUSH2 0x66A DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1013 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x620 PUSH2 0x9A0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE60 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x73A PUSH2 0x69E PUSH2 0x9A0 JUMP JUMPDEST DUP5 PUSH2 0x735 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0x6AF PUSH2 0x9A0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF1A SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x824 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x7F9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x824 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x807 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8F1 PUSH2 0x83B PUSH2 0x9A0 JUMP JUMPDEST DUP5 PUSH2 0x8EC DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1084 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0x865 PUSH2 0x9A0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE60 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x90F PUSH2 0x908 PUSH2 0x9A0 JUMP JUMPDEST DUP5 DUP5 PUSH2 0xB9F JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA2E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1060 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xAB4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFCB PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xC25 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x103B PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xCAB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFA8 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCB6 DUP4 DUP4 DUP4 PUSH2 0xFA2 JUMP JUMPDEST PUSH2 0xD21 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xFED PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x0 DUP1 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE60 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xDB4 DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF1A SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 GT ISZERO DUP3 SWAP1 PUSH2 0xF0D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xED2 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEB7 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xEFF JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP3 DUP5 SUB SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 ADD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0xF98 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP INVALID GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH21 0x72616E7366657220746F20746865207A65726F2061 PUSH5 0x6472657373 GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH2 0x7070 PUSH19 0x6F766520746F20746865207A65726F20616464 PUSH19 0x65737345524332303A207472616E7366657220 PUSH2 0x6D6F PUSH22 0x6E7420657863656564732062616C616E636545524332 ADDRESS GASPRICE KECCAK256 PUSH21 0x72616E7366657220616D6F756E7420657863656564 PUSH20 0x20616C6C6F77616E636545524332303A20747261 PUSH15 0x736665722066726F6D20746865207A PUSH6 0x726F20616464 PUSH19 0x65737345524332303A20617070726F76652066 PUSH19 0x6F6D20746865207A65726F2061646472657373 GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH5 0x6563726561 PUSH20 0x656420616C6C6F77616E63652062656C6F77207A PUSH6 0x726FA2646970 PUSH7 0x735822122035FA MLOAD STOP COINBASE DUP10 PUSH18 0xEEAF5D1F2675EC0261D247CB4036FBABA3ED PUSH30 0xCDBDC1BCF83464736F6C634300060C003300000000000000000000000000 ",
"sourceMap": "15465:9747:0:-:0;;;16124:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16207:5;16199;:13;;;;;;;;;;;;:::i;:::-;;16233:7;16223;:17;;;;;;;;;;;;:::i;:::-;;16263:2;16251:9;;:14;;;;;;;;;;;;;;;;;;16124:149;;15465:9747;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;"
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461025857806370a08231146102bc57806395d89b4114610314578063a457c2d714610397578063a9059cbb146103fb578063dd62ed3e1461045f576100a9565b806306fdde03146100ae578063095ea7b31461013157806318160ddd1461019557806323b872dd146101b3578063313ce56714610237575b600080fd5b6100b66104d7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610579565b60405180821515815260200191505060405180910390f35b61019d610597565b6040518082815260200191505060405180910390f35b61021f600480360360608110156101c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105a1565b60405180821515815260200191505060405180910390f35b61023f61067a565b604051808260ff16815260200191505060405180910390f35b6102a46004803603604081101561026e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610691565b60405180821515815260200191505060405180910390f35b6102fe600480360360208110156102d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610744565b6040518082815260200191505060405180910390f35b61031c61078c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561035c578082015181840152602081019050610341565b50505050905090810190601f1680156103895780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103e3600480360360408110156103ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061082e565b60405180821515815260200191505060405180910390f35b6104476004803603604081101561041157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108fb565b60405180821515815260200191505060405180910390f35b6104c16004803603604081101561047557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610919565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561056f5780601f106105445761010080835404028352916020019161056f565b820191906000526020600020905b81548152906001019060200180831161055257829003601f168201915b5050505050905090565b600061058d6105866109a0565b84846109a8565b6001905092915050565b6000600254905090565b60006105ae848484610b9f565b61066f846105ba6109a0565b61066a8560405180606001604052806028815260200161101360289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106206109a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e609092919063ffffffff16565b6109a8565b600190509392505050565b6000600560009054906101000a900460ff16905090565b600061073a61069e6109a0565b8461073585600160006106af6109a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f1a90919063ffffffff16565b6109a8565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108245780601f106107f957610100808354040283529160200191610824565b820191906000526020600020905b81548152906001019060200180831161080757829003601f168201915b5050505050905090565b60006108f161083b6109a0565b846108ec8560405180606001604052806025815260200161108460259139600160006108656109a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e609092919063ffffffff16565b6109a8565b6001905092915050565b600061090f6109086109a0565b8484610b9f565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110606024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610fcb6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061103b6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610fa86023913960400191505060405180910390fd5b610cb6838383610fa2565b610d2181604051806060016040528060268152602001610fed602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e609092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610db4816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f1a90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610f0d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ed2578082015181840152602081019050610eb7565b50505050905090810190601f168015610eff5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600080828401905083811015610f98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122035fa5100418971eeaf5d1f2675ec0261d247cb4036fbaba3ed7dcdbdc1bcf83464736f6c634300060c0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2BC JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x314 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x397 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x3FB JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x45F JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x131 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x237 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x4D7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xDB JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x123 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x147 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19D PUSH2 0x597 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x5A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x23F PUSH2 0x67A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x26E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x691 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2FE PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x744 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x31C PUSH2 0x78C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x35C JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x341 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x389 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3E3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x82E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x447 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x411 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x8FB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4C1 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x475 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x919 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x56F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x544 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x56F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x552 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x58D PUSH2 0x586 PUSH2 0x9A0 JUMP JUMPDEST DUP5 DUP5 PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5AE DUP5 DUP5 DUP5 PUSH2 0xB9F JUMP JUMPDEST PUSH2 0x66F DUP5 PUSH2 0x5BA PUSH2 0x9A0 JUMP JUMPDEST PUSH2 0x66A DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1013 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x620 PUSH2 0x9A0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE60 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x73A PUSH2 0x69E PUSH2 0x9A0 JUMP JUMPDEST DUP5 PUSH2 0x735 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH2 0x6AF PUSH2 0x9A0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF1A SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x824 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x7F9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x824 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x807 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8F1 PUSH2 0x83B PUSH2 0x9A0 JUMP JUMPDEST DUP5 PUSH2 0x8EC DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1084 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x0 PUSH2 0x865 PUSH2 0x9A0 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE60 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x90F PUSH2 0x908 PUSH2 0x9A0 JUMP JUMPDEST DUP5 DUP5 PUSH2 0xB9F JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xA2E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1060 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xAB4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFCB PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xC25 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x103B PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xCAB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xFA8 PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCB6 DUP4 DUP4 DUP4 PUSH2 0xFA2 JUMP JUMPDEST PUSH2 0xD21 DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xFED PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x0 DUP1 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xE60 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xDB4 DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xF1A SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP4 GT ISZERO DUP3 SWAP1 PUSH2 0xF0D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xED2 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xEB7 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xEFF JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP DUP3 DUP5 SUB SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 ADD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0xF98 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST POP POP POP JUMP INVALID GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH21 0x72616E7366657220746F20746865207A65726F2061 PUSH5 0x6472657373 GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH2 0x7070 PUSH19 0x6F766520746F20746865207A65726F20616464 PUSH19 0x65737345524332303A207472616E7366657220 PUSH2 0x6D6F PUSH22 0x6E7420657863656564732062616C616E636545524332 ADDRESS GASPRICE KECCAK256 PUSH21 0x72616E7366657220616D6F756E7420657863656564 PUSH20 0x20616C6C6F77616E636545524332303A20747261 PUSH15 0x736665722066726F6D20746865207A PUSH6 0x726F20616464 PUSH19 0x65737345524332303A20617070726F76652066 PUSH19 0x6F6D20746865207A65726F2061646472657373 GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH5 0x6563726561 PUSH20 0x656420616C6C6F77616E63652062656C6F77207A PUSH6 0x726FA2646970 PUSH7 0x735822122035FA MLOAD STOP COINBASE DUP10 PUSH18 0xEEAF5D1F2675EC0261D247CB4036FBABA3ED PUSH30 0xCDBDC1BCF83464736F6C634300060C003300000000000000000000000000 ",
"sourceMap": "15465:9747:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16343:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18489:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17442:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19140:321;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17286:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19870:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17613:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16553:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20591:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17953:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18191:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16343:91;16388:13;16421:5;16414:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16343:91;:::o;18489:169::-;18572:4;18589:39;18598:12;:10;:12::i;:::-;18612:7;18621:6;18589:8;:39::i;:::-;18646:4;18639:11;;18489:169;;;;:::o;17442:108::-;17503:7;17530:12;;17523:19;;17442:108;:::o;19140:321::-;19246:4;19263:36;19273:6;19281:9;19292:6;19263:9;:36::i;:::-;19310:121;19319:6;19327:12;:10;:12::i;:::-;19341:89;19379:6;19341:89;;;;;;;;;;;;;;;;;:11;:19;19353:6;19341:19;;;;;;;;;;;;;;;:33;19361:12;:10;:12::i;:::-;19341:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;19310:8;:121::i;:::-;19449:4;19442:11;;19140:321;;;;;:::o;17286:91::-;17335:5;17360:9;;;;;;;;;;;17353:16;;17286:91;:::o;19870:218::-;19958:4;19975:83;19984:12;:10;:12::i;:::-;19998:7;20007:50;20046:10;20007:11;:25;20019:12;:10;:12::i;:::-;20007:25;;;;;;;;;;;;;;;:34;20033:7;20007:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;19975:8;:83::i;:::-;20076:4;20069:11;;19870:218;;;;:::o;17613:127::-;17687:7;17714:9;:18;17724:7;17714:18;;;;;;;;;;;;;;;;17707:25;;17613:127;;;:::o;16553:95::-;16600:13;16633:7;16626:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16553:95;:::o;20591:269::-;20684:4;20701:129;20710:12;:10;:12::i;:::-;20724:7;20733:96;20772:15;20733:96;;;;;;;;;;;;;;;;;:11;:25;20745:12;:10;:12::i;:::-;20733:25;;;;;;;;;;;;;;;:34;20759:7;20733:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;20701:8;:129::i;:::-;20848:4;20841:11;;20591:269;;;;:::o;17953:175::-;18039:4;18056:42;18066:12;:10;:12::i;:::-;18080:9;18091:6;18056:9;:42::i;:::-;18116:4;18109:11;;17953:175;;;;:::o;18191:151::-;18280:7;18307:11;:18;18319:5;18307:18;;;;;;;;;;;;;;;:27;18326:7;18307:27;;;;;;;;;;;;;;;;18300:34;;18191:151;;;;:::o;10996:106::-;11049:15;11084:10;11077:17;;10996:106;:::o;23738:346::-;23857:1;23840:19;;:5;:19;;;;23832:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23938:1;23919:21;;:7;:21;;;;23911:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24022:6;23992:11;:18;24004:5;23992:18;;;;;;;;;;;;;;;:27;24011:7;23992:27;;;;;;;;;;;;;;;:36;;;;24060:7;24044:32;;24053:5;24044:32;;;24069:6;24044:32;;;;;;;;;;;;;;;;;;23738:346;;;:::o;21350:539::-;21474:1;21456:20;;:6;:20;;;;21448:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21558:1;21537:23;;:9;:23;;;;21529:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21613:47;21634:6;21642:9;21653:6;21613:20;:47::i;:::-;21693:71;21715:6;21693:71;;;;;;;;;;;;;;;;;:9;:17;21703:6;21693:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;21673:9;:17;21683:6;21673:17;;;;;;;;;;;;;;;:91;;;;21798:32;21823:6;21798:9;:20;21808:9;21798:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;21775:9;:20;21785:9;21775:20;;;;;;;;;;;;;;;:55;;;;21863:9;21846:35;;21855:6;21846:35;;;21874:6;21846:35;;;;;;;;;;;;;;;;;;21350:539;;;:::o;8512:166::-;8598:7;8631:1;8626;:6;;8634:12;8618:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8669:1;8665;:5;8658:12;;8512:166;;;;;:::o;5685:179::-;5743:7;5763:9;5779:1;5775;:5;5763:17;;5804:1;5799;:6;;5791:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5855:1;5848:8;;;5685:179;;;;:::o;25117:92::-;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "863600",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"allowance(address,address)": "1431",
"approve(address,uint256)": "infinite",
"balanceOf(address)": "1218",
"decimals()": "1144",
"decreaseAllowance(address,uint256)": "infinite",
"increaseAllowance(address,uint256)": "infinite",
"name()": "infinite",
"symbol()": "infinite",
"totalSupply()": "1058",
"transfer(address,uint256)": "infinite",
"transferFrom(address,address,uint256)": "infinite"
},
"internal": {
"_approve(address,address,uint256)": "infinite",
"_beforeTokenTransfer(address,address,uint256)": "15",
"_burn(address,uint256)": "infinite",
"_mint(address,uint256)": "infinite",
"_setupDecimals(uint8)": "infinite",
"_transfer(address,address,uint256)": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 15465,
"end": 25212,
"name": "MSTORE",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ISZERO",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPI",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "REVERT",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 16124,
"end": 16273,
"name": "MLOAD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSHSIZE",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "CODESIZE",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SUB",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSHSIZE",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP4",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "CODECOPY",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP2",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP2",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ADD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 16124,
"end": 16273,
"name": "MSTORE",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 16124,
"end": 16273,
"name": "DUP2",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "LT",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ISZERO",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPI",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "REVERT",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP2",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ADD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "MLOAD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 16124,
"end": 16273,
"name": "MLOAD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP4",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP3",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP2",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP5",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "100000000"
},
{
"begin": 16124,
"end": 16273,
"name": "DUP3",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "GT",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ISZERO",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPI",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "REVERT",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP4",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP3",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ADD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP2",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16124,
"end": 16273,
"name": "DUP3",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ADD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP6",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP2",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "GT",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ISZERO",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPI",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "REVERT",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP3",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "MLOAD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP7",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 16124,
"end": 16273,
"name": "DUP3",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "MUL",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP4",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ADD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "GT",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "100000000"
},
{
"begin": 16124,
"end": 16273,
"name": "DUP3",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "GT",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "OR",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ISZERO",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPI",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "REVERT",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "tag",
"source": 0,
"value": "5"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP4",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "MSTORE",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16124,
"end": 16273,
"name": "DUP4",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ADD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP3",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "MLOAD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16124,
"end": 16273,
"name": "ADD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP4",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP4",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 16124,
"end": 16273,
"name": "tag",
"source": 0,
"value": "6"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP4",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP2",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "LT",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ISZERO",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH [tag]",
"source": 0,
"value": "8"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPI",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP3",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ADD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "MLOAD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP2",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP5",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ADD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "MSTORE",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16124,
"end": 16273,
"name": "DUP2",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ADD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH [tag]",
"source": 0,
"value": "6"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "tag",
"source": 0,
"value": "8"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP2",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ADD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 16124,
"end": 16273,
"name": "AND",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ISZERO",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPI",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP3",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SUB",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "MLOAD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 16124,
"end": 16273,
"name": "DUP4",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16124,
"end": 16273,
"name": "SUB",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 16124,
"end": 16273,
"name": "EXP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SUB",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "NOT",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "AND",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP2",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "MSTORE",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16124,
"end": 16273,
"name": "ADD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP2",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "tag",
"source": 0,
"value": "9"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 16124,
"end": 16273,
"name": "MSTORE",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16124,
"end": 16273,
"name": "ADD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "MLOAD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 16124,
"end": 16273,
"name": "MLOAD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP4",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP3",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP2",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP5",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "100000000"
},
{
"begin": 16124,
"end": 16273,
"name": "DUP3",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "GT",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ISZERO",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH [tag]",
"source": 0,
"value": "10"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPI",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "REVERT",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "tag",
"source": 0,
"value": "10"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP4",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP3",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ADD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP2",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16124,
"end": 16273,
"name": "DUP3",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ADD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP6",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP2",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "GT",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ISZERO",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH [tag]",
"source": 0,
"value": "11"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPI",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "REVERT",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "tag",
"source": 0,
"value": "11"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP3",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "MLOAD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP7",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 16124,
"end": 16273,
"name": "DUP3",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "MUL",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP4",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ADD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "GT",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "100000000"
},
{
"begin": 16124,
"end": 16273,
"name": "DUP3",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "GT",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "OR",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ISZERO",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH [tag]",
"source": 0,
"value": "12"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPI",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "REVERT",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "tag",
"source": 0,
"value": "12"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP4",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "MSTORE",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16124,
"end": 16273,
"name": "DUP4",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ADD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP3",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "MLOAD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16124,
"end": 16273,
"name": "ADD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP4",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP4",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 16124,
"end": 16273,
"name": "tag",
"source": 0,
"value": "13"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP4",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP2",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "LT",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ISZERO",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH [tag]",
"source": 0,
"value": "15"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPI",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP3",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ADD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "MLOAD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP2",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP5",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ADD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "MSTORE",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16124,
"end": 16273,
"name": "DUP2",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ADD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH [tag]",
"source": 0,
"value": "13"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "tag",
"source": 0,
"value": "15"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP2",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ADD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 16124,
"end": 16273,
"name": "AND",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "ISZERO",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH [tag]",
"source": 0,
"value": "16"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPI",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP3",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SUB",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP1",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "MLOAD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 16124,
"end": 16273,
"name": "DUP4",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16124,
"end": 16273,
"name": "SUB",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 16124,
"end": 16273,
"name": "EXP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SUB",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "NOT",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "AND",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "DUP2",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "MSTORE",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16124,
"end": 16273,
"name": "ADD",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "SWAP2",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "tag",
"source": 0,
"value": "16"
},
{
"begin": 16124,
"end": 16273,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 16124,
"end": 16273,
"name": "MSTORE",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16207,
"end": 16212,
"name": "DUP2",
"source": 0
},
{
"begin": 16199,
"end": 16204,
"name": "PUSH",
"source": 0,
"value": "3"
},
{
"begin": 16199,
"end": 16212,
"name": "SWAP1",
"source": 0
},
{
"begin": 16199,
"end": 16212,
"name": "DUP1",
"source": 0
},
{
"begin": 16199,
"end": 16212,
"name": "MLOAD",
"source": 0
},
{
"begin": 16199,
"end": 16212,
"name": "SWAP1",
"source": 0
},
{
"begin": 16199,
"end": 16212,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16199,
"end": 16212,
"name": "ADD",
"source": 0
},
{
"begin": 16199,
"end": 16212,
"name": "SWAP1",
"source": 0
},
{
"begin": 16199,
"end": 16212,
"name": "PUSH [tag]",
"source": 0,
"value": "19"
},
{
"begin": 16199,
"end": 16212,
"name": "SWAP3",
"source": 0
},
{
"begin": 16199,
"end": 16212,
"name": "SWAP2",
"source": 0
},
{
"begin": 16199,
"end": 16212,
"name": "SWAP1",
"source": 0
},
{
"begin": 16199,
"end": 16212,
"name": "PUSH [tag]",
"source": 0,
"value": "20"
},
{
"begin": 16199,
"end": 16212,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 16199,
"end": 16212,
"name": "tag",
"source": 0,
"value": "19"
},
{
"begin": 16199,
"end": 16212,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16199,
"end": 16212,
"name": "POP",
"source": 0
},
{
"begin": 16233,
"end": 16240,
"name": "DUP1",
"source": 0
},
{
"begin": 16223,
"end": 16230,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 16223,
"end": 16240,
"name": "SWAP1",
"source": 0
},
{
"begin": 16223,
"end": 16240,
"name": "DUP1",
"source": 0
},
{
"begin": 16223,
"end": 16240,
"name": "MLOAD",
"source": 0
},
{
"begin": 16223,
"end": 16240,
"name": "SWAP1",
"source": 0
},
{
"begin": 16223,
"end": 16240,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16223,
"end": 16240,
"name": "ADD",
"source": 0
},
{
"begin": 16223,
"end": 16240,
"name": "SWAP1",
"source": 0
},
{
"begin": 16223,
"end": 16240,
"name": "PUSH [tag]",
"source": 0,
"value": "21"
},
{
"begin": 16223,
"end": 16240,
"name": "SWAP3",
"source": 0
},
{
"begin": 16223,
"end": 16240,
"name": "SWAP2",
"source": 0
},
{
"begin": 16223,
"end": 16240,
"name": "SWAP1",
"source": 0
},
{
"begin": 16223,
"end": 16240,
"name": "PUSH [tag]",
"source": 0,
"value": "20"
},
{
"begin": 16223,
"end": 16240,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 16223,
"end": 16240,
"name": "tag",
"source": 0,
"value": "21"
},
{
"begin": 16223,
"end": 16240,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16223,
"end": 16240,
"name": "POP",
"source": 0
},
{
"begin": 16263,
"end": 16265,
"name": "PUSH",
"source": 0,
"value": "12"
},
{
"begin": 16251,
"end": 16260,
"name": "PUSH",
"source": 0,
"value": "5"
},
{
"begin": 16251,
"end": 16260,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 16251,
"end": 16265,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 16251,
"end": 16265,
"name": "EXP",
"source": 0
},
{
"begin": 16251,
"end": 16265,
"name": "DUP2",
"source": 0
},
{
"begin": 16251,
"end": 16265,
"name": "SLOAD",
"source": 0
},
{
"begin": 16251,
"end": 16265,
"name": "DUP2",
"source": 0
},
{
"begin": 16251,
"end": 16265,
"name": "PUSH",
"source": 0,
"value": "FF"
},
{
"begin": 16251,
"end": 16265,
"name": "MUL",
"source": 0
},
{
"begin": 16251,
"end": 16265,
"name": "NOT",
"source": 0
},
{
"begin": 16251,
"end": 16265,
"name": "AND",
"source": 0
},
{
"begin": 16251,
"end": 16265,
"name": "SWAP1",
"source": 0
},
{
"begin": 16251,
"end": 16265,
"name": "DUP4",
"source": 0
},
{
"begin": 16251,
"end": 16265,
"name": "PUSH",
"source": 0,
"value": "FF"
},
{
"begin": 16251,
"end": 16265,
"name": "AND",
"source": 0
},
{
"begin": 16251,
"end": 16265,
"name": "MUL",
"source": 0
},
{
"begin": 16251,
"end": 16265,
"name": "OR",
"source": 0
},
{
"begin": 16251,
"end": 16265,
"name": "SWAP1",
"source": 0
},
{
"begin": 16251,
"end": 16265,
"name": "SSTORE",
"source": 0
},
{
"begin": 16251,
"end": 16265,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 16124,
"end": 16273,
"name": "POP",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "22"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMP",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "tag",
"source": 0,
"value": "20"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP3",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "SLOAD",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 15465,
"end": 25212,
"name": "DUP2",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 15465,
"end": 25212,
"name": "AND",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "ISZERO",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 15465,
"end": 25212,
"name": "MUL",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "SUB",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "AND",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "2"
},
{
"begin": 15465,
"end": 25212,
"name": "SWAP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DIV",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "SWAP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 15465,
"end": 25212,
"name": "MSTORE",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 15465,
"end": 25212,
"name": "KECCAK256",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "SWAP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 15465,
"end": 25212,
"name": "ADD",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 15465,
"end": 25212,
"name": "SWAP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DIV",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP2",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "ADD",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "SWAP3",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP3",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 15465,
"end": 25212,
"name": "LT",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "24"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPI",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "MLOAD",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "FF"
},
{
"begin": 15465,
"end": 25212,
"name": "NOT",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "AND",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP4",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "ADD",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "OR",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP6",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "SSTORE",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "23"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMP",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "tag",
"source": 0,
"value": "24"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP3",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "ADD",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 15465,
"end": 25212,
"name": "ADD",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP6",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "SSTORE",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP3",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "ISZERO",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "23"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPI",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "SWAP2",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP3",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "ADD",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "tag",
"source": 0,
"value": "25"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP3",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP2",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "GT",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "ISZERO",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "26"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPI",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP3",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "MLOAD",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP3",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "SSTORE",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "SWAP2",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 15465,
"end": 25212,
"name": "ADD",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "SWAP2",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "SWAP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 15465,
"end": 25212,
"name": "ADD",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "SWAP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "25"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMP",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "tag",
"source": 0,
"value": "26"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "tag",
"source": 0,
"value": "23"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "POP",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "SWAP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "POP",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "27"
},
{
"begin": 15465,
"end": 25212,
"name": "SWAP2",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "SWAP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "28"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 15465,
"end": 25212,
"name": "tag",
"source": 0,
"value": "27"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "POP",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "SWAP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 15465,
"end": 25212,
"name": "tag",
"source": 0,
"value": "28"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "tag",
"source": 0,
"value": "29"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP3",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "GT",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "ISZERO",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "30"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPI",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 15465,
"end": 25212,
"name": "DUP2",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 15465,
"end": 25212,
"name": "SWAP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "SSTORE",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "POP",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 15465,
"end": 25212,
"name": "ADD",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "29"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMP",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "tag",
"source": 0,
"value": "30"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "POP",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "SWAP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 15465,
"end": 25212,
"name": "tag",
"source": 0,
"value": "22"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 15465,
"end": 25212,
"name": "DUP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 15465,
"end": 25212,
"name": "CODECOPY",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 15465,
"end": 25212,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a264697066735822122035fa5100418971eeaf5d1f2675ec0261d247cb4036fbaba3ed7dcdbdc1bcf83464736f6c634300060c0033",
".code": [
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 15465,
"end": 25212,
"name": "MSTORE",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "ISZERO",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPI",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 15465,
"end": 25212,
"name": "DUP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "REVERT",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "POP",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 15465,
"end": 25212,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "LT",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPI",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 15465,
"end": 25212,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 15465,
"end": 25212,
"name": "SHR",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "39509351"
},
{
"begin": 15465,
"end": 25212,
"name": "GT",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "14"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPI",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "39509351"
},
{
"begin": 15465,
"end": 25212,
"name": "EQ",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "8"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPI",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "70A08231"
},
{
"begin": 15465,
"end": 25212,
"name": "EQ",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPI",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "95D89B41"
},
{
"begin": 15465,
"end": 25212,
"name": "EQ",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "10"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPI",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "A457C2D7"
},
{
"begin": 15465,
"end": 25212,
"name": "EQ",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "11"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPI",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "A9059CBB"
},
{
"begin": 15465,
"end": 25212,
"name": "EQ",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "12"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPI",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "DD62ED3E"
},
{
"begin": 15465,
"end": 25212,
"name": "EQ",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "13"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPI",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMP",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "tag",
"source": 0,
"value": "14"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "6FDDE03"
},
{
"begin": 15465,
"end": 25212,
"name": "EQ",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPI",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "95EA7B3"
},
{
"begin": 15465,
"end": 25212,
"name": "EQ",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPI",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "18160DDD"
},
{
"begin": 15465,
"end": 25212,
"name": "EQ",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPI",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "23B872DD"
},
{
"begin": 15465,
"end": 25212,
"name": "EQ",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "6"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPI",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "DUP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "313CE567"
},
{
"begin": 15465,
"end": 25212,
"name": "EQ",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH [tag]",
"source": 0,
"value": "7"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPI",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 15465,
"end": 25212,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 15465,
"end": 25212,
"name": "DUP1",
"source": 0
},
{
"begin": 15465,
"end": 25212,
"name": "REVERT",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 16343,
"end": 16434,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "PUSH [tag]",
"source": 0,
"value": "15"
},
{
"begin": 16343,
"end": 16434,
"name": "PUSH [tag]",
"source": 0,
"value": "16"
},
{
"begin": 16343,
"end": 16434,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 16343,
"end": 16434,
"name": "tag",
"source": 0,
"value": "15"
},
{
"begin": 16343,
"end": 16434,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 16343,
"end": 16434,
"name": "MLOAD",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP1",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP1",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16343,
"end": 16434,
"name": "ADD",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP3",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP2",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "SUB",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP3",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "MSTORE",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP4",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP2",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP2",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "MLOAD",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP2",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "MSTORE",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16343,
"end": 16434,
"name": "ADD",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "SWAP2",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "POP",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP1",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "MLOAD",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "SWAP1",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16343,
"end": 16434,
"name": "ADD",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "SWAP1",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP1",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP4",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP4",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 16343,
"end": 16434,
"name": "tag",
"source": 0,
"value": "17"
},
{
"begin": 16343,
"end": 16434,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP4",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP2",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "LT",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "ISZERO",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "PUSH [tag]",
"source": 0,
"value": "19"
},
{
"begin": 16343,
"end": 16434,
"name": "JUMPI",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP1",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP3",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "ADD",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "MLOAD",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP2",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP5",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "ADD",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "MSTORE",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16343,
"end": 16434,
"name": "DUP2",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "ADD",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "SWAP1",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "POP",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "PUSH [tag]",
"source": 0,
"value": "17"
},
{
"begin": 16343,
"end": 16434,
"name": "JUMP",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "tag",
"source": 0,
"value": "19"
},
{
"begin": 16343,
"end": 16434,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "POP",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "POP",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "POP",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "POP",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "SWAP1",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "POP",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "SWAP1",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP2",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "ADD",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "SWAP1",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 16343,
"end": 16434,
"name": "AND",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP1",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "ISZERO",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "PUSH [tag]",
"source": 0,
"value": "20"
},
{
"begin": 16343,
"end": 16434,
"name": "JUMPI",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP1",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP3",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "SUB",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP1",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "MLOAD",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 16343,
"end": 16434,
"name": "DUP4",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16343,
"end": 16434,
"name": "SUB",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 16343,
"end": 16434,
"name": "EXP",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "SUB",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "NOT",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "AND",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP2",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "MSTORE",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16343,
"end": 16434,
"name": "ADD",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "SWAP2",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "POP",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "tag",
"source": 0,
"value": "20"
},
{
"begin": 16343,
"end": 16434,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "POP",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "SWAP3",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "POP",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "POP",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "POP",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 16343,
"end": 16434,
"name": "MLOAD",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "DUP1",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "SWAP2",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "SUB",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "SWAP1",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "RETURN",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 18489,
"end": 18658,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "PUSH [tag]",
"source": 0,
"value": "21"
},
{
"begin": 18489,
"end": 18658,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 18489,
"end": 18658,
"name": "DUP1",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "SUB",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 18489,
"end": 18658,
"name": "DUP2",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "LT",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "ISZERO",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "PUSH [tag]",
"source": 0,
"value": "22"
},
{
"begin": 18489,
"end": 18658,
"name": "JUMPI",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 18489,
"end": 18658,
"name": "DUP1",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "REVERT",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "tag",
"source": 0,
"value": "22"
},
{
"begin": 18489,
"end": 18658,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "DUP2",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "ADD",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "SWAP1",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "DUP1",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "DUP1",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 18489,
"end": 18658,
"name": "AND",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "SWAP1",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 18489,
"end": 18658,
"name": "ADD",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "SWAP1",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "SWAP3",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "SWAP2",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "SWAP1",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "DUP1",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "SWAP1",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 18489,
"end": 18658,
"name": "ADD",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "SWAP1",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "SWAP3",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "SWAP2",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "SWAP1",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "POP",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "POP",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "POP",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "PUSH [tag]",
"source": 0,
"value": "23"
},
{
"begin": 18489,
"end": 18658,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 18489,
"end": 18658,
"name": "tag",
"source": 0,
"value": "21"
},
{
"begin": 18489,
"end": 18658,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 18489,
"end": 18658,
"name": "MLOAD",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "DUP1",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "DUP3",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "ISZERO",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "ISZERO",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "DUP2",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "MSTORE",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 18489,
"end": 18658,
"name": "ADD",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "SWAP2",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "POP",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "POP",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 18489,
"end": 18658,
"name": "MLOAD",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "DUP1",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "SWAP2",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "SUB",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "SWAP1",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "RETURN",
"source": 0
},
{
"begin": 17442,
"end": 17550,
"name": "tag",
"source": 0,
"value": "5"
},
{
"begin": 17442,
"end": 17550,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 17442,
"end": 17550,
"name": "PUSH [tag]",
"source": 0,
"value": "24"
},
{
"begin": 17442,
"end": 17550,
"name": "PUSH [tag]",
"source": 0,
"value": "25"
},
{
"begin": 17442,
"end": 17550,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 17442,
"end": 17550,
"name": "tag",
"source": 0,
"value": "24"
},
{
"begin": 17442,
"end": 17550,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 17442,
"end": 17550,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 17442,
"end": 17550,
"name": "MLOAD",
"source": 0
},
{
"begin": 17442,
"end": 17550,
"name": "DUP1",
"source": 0
},
{
"begin": 17442,
"end": 17550,
"name": "DUP3",
"source": 0
},
{
"begin": 17442,
"end": 17550,
"name": "DUP2",
"source": 0
},
{
"begin": 17442,
"end": 17550,
"name": "MSTORE",
"source": 0
},
{
"begin": 17442,
"end": 17550,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 17442,
"end": 17550,
"name": "ADD",
"source": 0
},
{
"begin": 17442,
"end": 17550,
"name": "SWAP2",
"source": 0
},
{
"begin": 17442,
"end": 17550,
"name": "POP",
"source": 0
},
{
"begin": 17442,
"end": 17550,
"name": "POP",
"source": 0
},
{
"begin": 17442,
"end": 17550,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 17442,
"end": 17550,
"name": "MLOAD",
"source": 0
},
{
"begin": 17442,
"end": 17550,
"name": "DUP1",
"source": 0
},
{
"begin": 17442,
"end": 17550,
"name": "SWAP2",
"source": 0
},
{
"begin": 17442,
"end": 17550,
"name": "SUB",
"source": 0
},
{
"begin": 17442,
"end": 17550,
"name": "SWAP1",
"source": 0
},
{
"begin": 17442,
"end": 17550,
"name": "RETURN",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "tag",
"source": 0,
"value": "6"
},
{
"begin": 19140,
"end": 19461,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "PUSH [tag]",
"source": 0,
"value": "26"
},
{
"begin": 19140,
"end": 19461,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 19140,
"end": 19461,
"name": "DUP1",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "SUB",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "PUSH",
"source": 0,
"value": "60"
},
{
"begin": 19140,
"end": 19461,
"name": "DUP2",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "LT",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "ISZERO",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "PUSH [tag]",
"source": 0,
"value": "27"
},
{
"begin": 19140,
"end": 19461,
"name": "JUMPI",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 19140,
"end": 19461,
"name": "DUP1",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "REVERT",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "tag",
"source": 0,
"value": "27"
},
{
"begin": 19140,
"end": 19461,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "DUP2",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "ADD",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "SWAP1",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "DUP1",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "DUP1",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 19140,
"end": 19461,
"name": "AND",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "SWAP1",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 19140,
"end": 19461,
"name": "ADD",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "SWAP1",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "SWAP3",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "SWAP2",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "SWAP1",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "DUP1",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 19140,
"end": 19461,
"name": "AND",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "SWAP1",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 19140,
"end": 19461,
"name": "ADD",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "SWAP1",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "SWAP3",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "SWAP2",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "SWAP1",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "DUP1",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "SWAP1",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 19140,
"end": 19461,
"name": "ADD",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "SWAP1",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "SWAP3",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "SWAP2",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "SWAP1",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "POP",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "POP",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "POP",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "PUSH [tag]",
"source": 0,
"value": "28"
},
{
"begin": 19140,
"end": 19461,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 19140,
"end": 19461,
"name": "tag",
"source": 0,
"value": "26"
},
{
"begin": 19140,
"end": 19461,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 19140,
"end": 19461,
"name": "MLOAD",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "DUP1",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "DUP3",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "ISZERO",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "ISZERO",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "DUP2",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "MSTORE",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 19140,
"end": 19461,
"name": "ADD",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "SWAP2",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "POP",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "POP",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 19140,
"end": 19461,
"name": "MLOAD",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "DUP1",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "SWAP2",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "SUB",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "SWAP1",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "RETURN",
"source": 0
},
{
"begin": 17286,
"end": 17377,
"name": "tag",
"source": 0,
"value": "7"
},
{
"begin": 17286,
"end": 17377,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 17286,
"end": 17377,
"name": "PUSH [tag]",
"source": 0,
"value": "29"
},
{
"begin": 17286,
"end": 17377,
"name": "PUSH [tag]",
"source": 0,
"value": "30"
},
{
"begin": 17286,
"end": 17377,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 17286,
"end": 17377,
"name": "tag",
"source": 0,
"value": "29"
},
{
"begin": 17286,
"end": 17377,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 17286,
"end": 17377,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 17286,
"end": 17377,
"name": "MLOAD",
"source": 0
},
{
"begin": 17286,
"end": 17377,
"name": "DUP1",
"source": 0
},
{
"begin": 17286,
"end": 17377,
"name": "DUP3",
"source": 0
},
{
"begin": 17286,
"end": 17377,
"name": "PUSH",
"source": 0,
"value": "FF"
},
{
"begin": 17286,
"end": 17377,
"name": "AND",
"source": 0
},
{
"begin": 17286,
"end": 17377,
"name": "DUP2",
"source": 0
},
{
"begin": 17286,
"end": 17377,
"name": "MSTORE",
"source": 0
},
{
"begin": 17286,
"end": 17377,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 17286,
"end": 17377,
"name": "ADD",
"source": 0
},
{
"begin": 17286,
"end": 17377,
"name": "SWAP2",
"source": 0
},
{
"begin": 17286,
"end": 17377,
"name": "POP",
"source": 0
},
{
"begin": 17286,
"end": 17377,
"name": "POP",
"source": 0
},
{
"begin": 17286,
"end": 17377,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 17286,
"end": 17377,
"name": "MLOAD",
"source": 0
},
{
"begin": 17286,
"end": 17377,
"name": "DUP1",
"source": 0
},
{
"begin": 17286,
"end": 17377,
"name": "SWAP2",
"source": 0
},
{
"begin": 17286,
"end": 17377,
"name": "SUB",
"source": 0
},
{
"begin": 17286,
"end": 17377,
"name": "SWAP1",
"source": 0
},
{
"begin": 17286,
"end": 17377,
"name": "RETURN",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "tag",
"source": 0,
"value": "8"
},
{
"begin": 19870,
"end": 20088,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "PUSH [tag]",
"source": 0,
"value": "31"
},
{
"begin": 19870,
"end": 20088,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 19870,
"end": 20088,
"name": "DUP1",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "SUB",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 19870,
"end": 20088,
"name": "DUP2",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "LT",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "ISZERO",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "PUSH [tag]",
"source": 0,
"value": "32"
},
{
"begin": 19870,
"end": 20088,
"name": "JUMPI",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 19870,
"end": 20088,
"name": "DUP1",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "REVERT",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "tag",
"source": 0,
"value": "32"
},
{
"begin": 19870,
"end": 20088,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "DUP2",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "ADD",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "SWAP1",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "DUP1",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "DUP1",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 19870,
"end": 20088,
"name": "AND",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "SWAP1",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 19870,
"end": 20088,
"name": "ADD",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "SWAP1",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "SWAP3",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "SWAP2",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "SWAP1",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "DUP1",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "SWAP1",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 19870,
"end": 20088,
"name": "ADD",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "SWAP1",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "SWAP3",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "SWAP2",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "SWAP1",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "POP",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "POP",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "POP",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "PUSH [tag]",
"source": 0,
"value": "33"
},
{
"begin": 19870,
"end": 20088,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 19870,
"end": 20088,
"name": "tag",
"source": 0,
"value": "31"
},
{
"begin": 19870,
"end": 20088,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 19870,
"end": 20088,
"name": "MLOAD",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "DUP1",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "DUP3",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "ISZERO",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "ISZERO",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "DUP2",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "MSTORE",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 19870,
"end": 20088,
"name": "ADD",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "SWAP2",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "POP",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "POP",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 19870,
"end": 20088,
"name": "MLOAD",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "DUP1",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "SWAP2",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "SUB",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "SWAP1",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "RETURN",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "tag",
"source": 0,
"value": "9"
},
{
"begin": 17613,
"end": 17740,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "PUSH [tag]",
"source": 0,
"value": "34"
},
{
"begin": 17613,
"end": 17740,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 17613,
"end": 17740,
"name": "DUP1",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "SUB",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 17613,
"end": 17740,
"name": "DUP2",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "LT",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "ISZERO",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "PUSH [tag]",
"source": 0,
"value": "35"
},
{
"begin": 17613,
"end": 17740,
"name": "JUMPI",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 17613,
"end": 17740,
"name": "DUP1",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "REVERT",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "tag",
"source": 0,
"value": "35"
},
{
"begin": 17613,
"end": 17740,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "DUP2",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "ADD",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "SWAP1",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "DUP1",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "DUP1",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 17613,
"end": 17740,
"name": "AND",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "SWAP1",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 17613,
"end": 17740,
"name": "ADD",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "SWAP1",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "SWAP3",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "SWAP2",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "SWAP1",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "POP",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "POP",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "POP",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "PUSH [tag]",
"source": 0,
"value": "36"
},
{
"begin": 17613,
"end": 17740,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 17613,
"end": 17740,
"name": "tag",
"source": 0,
"value": "34"
},
{
"begin": 17613,
"end": 17740,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 17613,
"end": 17740,
"name": "MLOAD",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "DUP1",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "DUP3",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "DUP2",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "MSTORE",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 17613,
"end": 17740,
"name": "ADD",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "SWAP2",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "POP",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "POP",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 17613,
"end": 17740,
"name": "MLOAD",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "DUP1",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "SWAP2",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "SUB",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "SWAP1",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "RETURN",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "tag",
"source": 0,
"value": "10"
},
{
"begin": 16553,
"end": 16648,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "PUSH [tag]",
"source": 0,
"value": "37"
},
{
"begin": 16553,
"end": 16648,
"name": "PUSH [tag]",
"source": 0,
"value": "38"
},
{
"begin": 16553,
"end": 16648,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 16553,
"end": 16648,
"name": "tag",
"source": 0,
"value": "37"
},
{
"begin": 16553,
"end": 16648,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 16553,
"end": 16648,
"name": "MLOAD",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP1",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP1",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16553,
"end": 16648,
"name": "ADD",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP3",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP2",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "SUB",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP3",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "MSTORE",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP4",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP2",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP2",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "MLOAD",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP2",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "MSTORE",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16553,
"end": 16648,
"name": "ADD",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "SWAP2",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "POP",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP1",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "MLOAD",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "SWAP1",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16553,
"end": 16648,
"name": "ADD",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "SWAP1",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP1",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP4",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP4",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 16553,
"end": 16648,
"name": "tag",
"source": 0,
"value": "39"
},
{
"begin": 16553,
"end": 16648,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP4",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP2",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "LT",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "ISZERO",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "PUSH [tag]",
"source": 0,
"value": "41"
},
{
"begin": 16553,
"end": 16648,
"name": "JUMPI",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP1",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP3",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "ADD",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "MLOAD",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP2",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP5",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "ADD",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "MSTORE",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16553,
"end": 16648,
"name": "DUP2",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "ADD",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "SWAP1",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "POP",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "PUSH [tag]",
"source": 0,
"value": "39"
},
{
"begin": 16553,
"end": 16648,
"name": "JUMP",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "tag",
"source": 0,
"value": "41"
},
{
"begin": 16553,
"end": 16648,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "POP",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "POP",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "POP",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "POP",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "SWAP1",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "POP",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "SWAP1",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP2",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "ADD",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "SWAP1",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 16553,
"end": 16648,
"name": "AND",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP1",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "ISZERO",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "PUSH [tag]",
"source": 0,
"value": "42"
},
{
"begin": 16553,
"end": 16648,
"name": "JUMPI",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP1",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP3",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "SUB",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP1",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "MLOAD",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 16553,
"end": 16648,
"name": "DUP4",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16553,
"end": 16648,
"name": "SUB",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 16553,
"end": 16648,
"name": "EXP",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "SUB",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "NOT",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "AND",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP2",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "MSTORE",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16553,
"end": 16648,
"name": "ADD",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "SWAP2",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "POP",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "tag",
"source": 0,
"value": "42"
},
{
"begin": 16553,
"end": 16648,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "POP",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "SWAP3",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "POP",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "POP",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "POP",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 16553,
"end": 16648,
"name": "MLOAD",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "DUP1",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "SWAP2",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "SUB",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "SWAP1",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "RETURN",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "tag",
"source": 0,
"value": "11"
},
{
"begin": 20591,
"end": 20860,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "PUSH [tag]",
"source": 0,
"value": "43"
},
{
"begin": 20591,
"end": 20860,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 20591,
"end": 20860,
"name": "DUP1",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "SUB",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 20591,
"end": 20860,
"name": "DUP2",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "LT",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "ISZERO",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "PUSH [tag]",
"source": 0,
"value": "44"
},
{
"begin": 20591,
"end": 20860,
"name": "JUMPI",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 20591,
"end": 20860,
"name": "DUP1",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "REVERT",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "tag",
"source": 0,
"value": "44"
},
{
"begin": 20591,
"end": 20860,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "DUP2",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "ADD",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "SWAP1",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "DUP1",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "DUP1",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 20591,
"end": 20860,
"name": "AND",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "SWAP1",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 20591,
"end": 20860,
"name": "ADD",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "SWAP1",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "SWAP3",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "SWAP2",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "SWAP1",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "DUP1",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "SWAP1",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 20591,
"end": 20860,
"name": "ADD",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "SWAP1",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "SWAP3",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "SWAP2",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "SWAP1",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "POP",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "POP",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "POP",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "PUSH [tag]",
"source": 0,
"value": "45"
},
{
"begin": 20591,
"end": 20860,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 20591,
"end": 20860,
"name": "tag",
"source": 0,
"value": "43"
},
{
"begin": 20591,
"end": 20860,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 20591,
"end": 20860,
"name": "MLOAD",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "DUP1",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "DUP3",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "ISZERO",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "ISZERO",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "DUP2",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "MSTORE",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 20591,
"end": 20860,
"name": "ADD",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "SWAP2",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "POP",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "POP",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 20591,
"end": 20860,
"name": "MLOAD",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "DUP1",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "SWAP2",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "SUB",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "SWAP1",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "RETURN",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "tag",
"source": 0,
"value": "12"
},
{
"begin": 17953,
"end": 18128,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "PUSH [tag]",
"source": 0,
"value": "46"
},
{
"begin": 17953,
"end": 18128,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 17953,
"end": 18128,
"name": "DUP1",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "SUB",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 17953,
"end": 18128,
"name": "DUP2",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "LT",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "ISZERO",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "PUSH [tag]",
"source": 0,
"value": "47"
},
{
"begin": 17953,
"end": 18128,
"name": "JUMPI",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 17953,
"end": 18128,
"name": "DUP1",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "REVERT",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "tag",
"source": 0,
"value": "47"
},
{
"begin": 17953,
"end": 18128,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "DUP2",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "ADD",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "SWAP1",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "DUP1",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "DUP1",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 17953,
"end": 18128,
"name": "AND",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "SWAP1",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 17953,
"end": 18128,
"name": "ADD",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "SWAP1",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "SWAP3",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "SWAP2",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "SWAP1",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "DUP1",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "SWAP1",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 17953,
"end": 18128,
"name": "ADD",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "SWAP1",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "SWAP3",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "SWAP2",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "SWAP1",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "POP",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "POP",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "POP",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "PUSH [tag]",
"source": 0,
"value": "48"
},
{
"begin": 17953,
"end": 18128,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 17953,
"end": 18128,
"name": "tag",
"source": 0,
"value": "46"
},
{
"begin": 17953,
"end": 18128,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 17953,
"end": 18128,
"name": "MLOAD",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "DUP1",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "DUP3",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "ISZERO",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "ISZERO",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "DUP2",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "MSTORE",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 17953,
"end": 18128,
"name": "ADD",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "SWAP2",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "POP",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "POP",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 17953,
"end": 18128,
"name": "MLOAD",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "DUP1",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "SWAP2",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "SUB",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "SWAP1",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "RETURN",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "tag",
"source": 0,
"value": "13"
},
{
"begin": 18191,
"end": 18342,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "PUSH [tag]",
"source": 0,
"value": "49"
},
{
"begin": 18191,
"end": 18342,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 18191,
"end": 18342,
"name": "DUP1",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "SUB",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 18191,
"end": 18342,
"name": "DUP2",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "LT",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "ISZERO",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "PUSH [tag]",
"source": 0,
"value": "50"
},
{
"begin": 18191,
"end": 18342,
"name": "JUMPI",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 18191,
"end": 18342,
"name": "DUP1",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "REVERT",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "tag",
"source": 0,
"value": "50"
},
{
"begin": 18191,
"end": 18342,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "DUP2",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "ADD",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "SWAP1",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "DUP1",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "DUP1",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 18191,
"end": 18342,
"name": "AND",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "SWAP1",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 18191,
"end": 18342,
"name": "ADD",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "SWAP1",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "SWAP3",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "SWAP2",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "SWAP1",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "DUP1",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 18191,
"end": 18342,
"name": "AND",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "SWAP1",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 18191,
"end": 18342,
"name": "ADD",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "SWAP1",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "SWAP3",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "SWAP2",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "SWAP1",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "POP",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "POP",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "POP",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "PUSH [tag]",
"source": 0,
"value": "51"
},
{
"begin": 18191,
"end": 18342,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 18191,
"end": 18342,
"name": "tag",
"source": 0,
"value": "49"
},
{
"begin": 18191,
"end": 18342,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 18191,
"end": 18342,
"name": "MLOAD",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "DUP1",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "DUP3",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "DUP2",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "MSTORE",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 18191,
"end": 18342,
"name": "ADD",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "SWAP2",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "POP",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "POP",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 18191,
"end": 18342,
"name": "MLOAD",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "DUP1",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "SWAP2",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "SUB",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "SWAP1",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "RETURN",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "tag",
"source": 0,
"value": "16"
},
{
"begin": 16343,
"end": 16434,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16388,
"end": 16401,
"name": "PUSH",
"source": 0,
"value": "60"
},
{
"begin": 16421,
"end": 16426,
"name": "PUSH",
"source": 0,
"value": "3"
},
{
"begin": 16414,
"end": 16426,
"name": "DUP1",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "SLOAD",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 16414,
"end": 16426,
"name": "DUP2",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 16414,
"end": 16426,
"name": "AND",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "ISZERO",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 16414,
"end": 16426,
"name": "MUL",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "SUB",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "AND",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH",
"source": 0,
"value": "2"
},
{
"begin": 16414,
"end": 16426,
"name": "SWAP1",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "DIV",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "DUP1",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 16414,
"end": 16426,
"name": "ADD",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16414,
"end": 16426,
"name": "DUP1",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "SWAP2",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "DIV",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "MUL",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16414,
"end": 16426,
"name": "ADD",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 16414,
"end": 16426,
"name": "MLOAD",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "SWAP1",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "DUP2",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "ADD",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 16414,
"end": 16426,
"name": "MSTORE",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "DUP1",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "SWAP3",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "SWAP2",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "SWAP1",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "DUP2",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "DUP2",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "MSTORE",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16414,
"end": 16426,
"name": "ADD",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "DUP3",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "DUP1",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "SLOAD",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 16414,
"end": 16426,
"name": "DUP2",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 16414,
"end": 16426,
"name": "AND",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "ISZERO",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 16414,
"end": 16426,
"name": "MUL",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "SUB",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "AND",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH",
"source": 0,
"value": "2"
},
{
"begin": 16414,
"end": 16426,
"name": "SWAP1",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "DIV",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "DUP1",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "ISZERO",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH [tag]",
"source": 0,
"value": "53"
},
{
"begin": 16414,
"end": 16426,
"name": "JUMPI",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "DUP1",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 16414,
"end": 16426,
"name": "LT",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH [tag]",
"source": 0,
"value": "54"
},
{
"begin": 16414,
"end": 16426,
"name": "JUMPI",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 16414,
"end": 16426,
"name": "DUP1",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "DUP4",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "SLOAD",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "DIV",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "MUL",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "DUP4",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "MSTORE",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "SWAP2",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16414,
"end": 16426,
"name": "ADD",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "SWAP2",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH [tag]",
"source": 0,
"value": "53"
},
{
"begin": 16414,
"end": 16426,
"name": "JUMP",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "tag",
"source": 0,
"value": "54"
},
{
"begin": 16414,
"end": 16426,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "DUP3",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "ADD",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "SWAP2",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "SWAP1",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 16414,
"end": 16426,
"name": "MSTORE",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 16414,
"end": 16426,
"name": "KECCAK256",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "SWAP1",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "tag",
"source": 0,
"value": "55"
},
{
"begin": 16414,
"end": 16426,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "DUP2",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "SLOAD",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "DUP2",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "MSTORE",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "SWAP1",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 16414,
"end": 16426,
"name": "ADD",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "SWAP1",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16414,
"end": 16426,
"name": "ADD",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "DUP1",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "DUP4",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "GT",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH [tag]",
"source": 0,
"value": "55"
},
{
"begin": 16414,
"end": 16426,
"name": "JUMPI",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "DUP3",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "SWAP1",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "SUB",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 16414,
"end": 16426,
"name": "AND",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "DUP3",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "ADD",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "SWAP2",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "tag",
"source": 0,
"value": "53"
},
{
"begin": 16414,
"end": 16426,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "POP",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "POP",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "POP",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "POP",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "POP",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "SWAP1",
"source": 0
},
{
"begin": 16414,
"end": 16426,
"name": "POP",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "SWAP1",
"source": 0
},
{
"begin": 16343,
"end": 16434,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 18489,
"end": 18658,
"name": "tag",
"source": 0,
"value": "23"
},
{
"begin": 18489,
"end": 18658,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 18572,
"end": 18576,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 18589,
"end": 18628,
"name": "PUSH [tag]",
"source": 0,
"value": "57"
},
{
"begin": 18598,
"end": 18610,
"name": "PUSH [tag]",
"source": 0,
"value": "58"
},
{
"begin": 18598,
"end": 18608,
"name": "PUSH [tag]",
"source": 0,
"value": "59"
},
{
"begin": 18598,
"end": 18610,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 18598,
"end": 18610,
"name": "tag",
"source": 0,
"value": "58"
},
{
"begin": 18598,
"end": 18610,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 18612,
"end": 18619,
"name": "DUP5",
"source": 0
},
{
"begin": 18621,
"end": 18627,
"name": "DUP5",
"source": 0
},
{
"begin": 18589,
"end": 18597,
"name": "PUSH [tag]",
"source": 0,
"value": "60"
},
{
"begin": 18589,
"end": 18628,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 18589,
"end": 18628,
"name": "tag",
"source": 0,
"value": "57"
},
{
"begin": 18589,
"end": 18628,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 18646,
"end": 18650,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 18639,
"end": 18650,
"name": "SWAP1",
"source": 0
},
{
"begin": 18639,
"end": 18650,
"name": "POP",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "SWAP3",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "SWAP2",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "POP",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "POP",
"source": 0
},
{
"begin": 18489,
"end": 18658,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 17442,
"end": 17550,
"name": "tag",
"source": 0,
"value": "25"
},
{
"begin": 17442,
"end": 17550,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 17503,
"end": 17510,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 17530,
"end": 17542,
"name": "PUSH",
"source": 0,
"value": "2"
},
{
"begin": 17530,
"end": 17542,
"name": "SLOAD",
"source": 0
},
{
"begin": 17523,
"end": 17542,
"name": "SWAP1",
"source": 0
},
{
"begin": 17523,
"end": 17542,
"name": "POP",
"source": 0
},
{
"begin": 17442,
"end": 17550,
"name": "SWAP1",
"source": 0
},
{
"begin": 17442,
"end": 17550,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 19140,
"end": 19461,
"name": "tag",
"source": 0,
"value": "28"
},
{
"begin": 19140,
"end": 19461,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 19246,
"end": 19250,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 19263,
"end": 19299,
"name": "PUSH [tag]",
"source": 0,
"value": "63"
},
{
"begin": 19273,
"end": 19279,
"name": "DUP5",
"source": 0
},
{
"begin": 19281,
"end": 19290,
"name": "DUP5",
"source": 0
},
{
"begin": 19292,
"end": 19298,
"name": "DUP5",
"source": 0
},
{
"begin": 19263,
"end": 19272,
"name": "PUSH [tag]",
"source": 0,
"value": "64"
},
{
"begin": 19263,
"end": 19299,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 19263,
"end": 19299,
"name": "tag",
"source": 0,
"value": "63"
},
{
"begin": 19263,
"end": 19299,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 19310,
"end": 19431,
"name": "PUSH [tag]",
"source": 0,
"value": "65"
},
{
"begin": 19319,
"end": 19325,
"name": "DUP5",
"source": 0
},
{
"begin": 19327,
"end": 19339,
"name": "PUSH [tag]",
"source": 0,
"value": "66"
},
{
"begin": 19327,
"end": 19337,
"name": "PUSH [tag]",
"source": 0,
"value": "59"
},
{
"begin": 19327,
"end": 19339,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 19327,
"end": 19339,
"name": "tag",
"source": 0,
"value": "66"
},
{
"begin": 19327,
"end": 19339,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 19341,
"end": 19430,
"name": "PUSH [tag]",
"source": 0,
"value": "67"
},
{
"begin": 19379,
"end": 19385,
"name": "DUP6",
"source": 0
},
{
"begin": 19341,
"end": 19430,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 19341,
"end": 19430,
"name": "MLOAD",
"source": 0
},
{
"begin": 19341,
"end": 19430,
"name": "DUP1",
"source": 0
},
{
"begin": 19341,
"end": 19430,
"name": "PUSH",
"source": 0,
"value": "60"
},
{
"begin": 19341,
"end": 19430,
"name": "ADD",
"source": 0
},
{
"begin": 19341,
"end": 19430,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 19341,
"end": 19430,
"name": "MSTORE",
"source": 0
},
{
"begin": 19341,
"end": 19430,
"name": "DUP1",
"source": 0
},
{
"begin": 19341,
"end": 19430,
"name": "PUSH",
"source": 0,
"value": "28"
},
{
"begin": 19341,
"end": 19430,
"name": "DUP2",
"source": 0
},
{
"begin": 19341,
"end": 19430,
"name": "MSTORE",
"source": 0
},
{
"begin": 19341,
"end": 19430,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 19341,
"end": 19430,
"name": "ADD",
"source": 0
},
{
"begin": 19341,
"end": 19430,
"name": "PUSH data",
"source": 0,
"value": "974D1B4421DA69CC60B481194F0DAD36A5BB4E23DA810DA7A7FB30CDBA178330"
},
{
"begin": 19341,
"end": 19430,
"name": "PUSH",
"source": 0,
"value": "28"
},
{
"begin": 19341,
"end": 19430,
"name": "SWAP2",
"source": 0
},
{
"begin": 19341,
"end": 19430,
"name": "CODECOPY",
"source": 0
},
{
"begin": 19341,
"end": 19352,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 19341,
"end": 19360,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 19353,
"end": 19359,
"name": "DUP12",
"source": 0
},
{
"begin": 19341,
"end": 19360,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 19341,
"end": 19360,
"name": "AND",
"source": 0
},
{
"begin": 19341,
"end": 19360,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 19341,
"end": 19360,
"name": "AND",
"source": 0
},
{
"begin": 19341,
"end": 19360,
"name": "DUP2",
"source": 0
},
{
"begin": 19341,
"end": 19360,
"name": "MSTORE",
"source": 0
},
{
"begin": 19341,
"end": 19360,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 19341,
"end": 19360,
"name": "ADD",
"source": 0
},
{
"begin": 19341,
"end": 19360,
"name": "SWAP1",
"source": 0
},
{
"begin": 19341,
"end": 19360,
"name": "DUP2",
"source": 0
},
{
"begin": 19341,
"end": 19360,
"name": "MSTORE",
"source": 0
},
{
"begin": 19341,
"end": 19360,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 19341,
"end": 19360,
"name": "ADD",
"source": 0
},
{
"begin": 19341,
"end": 19360,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 19341,
"end": 19360,
"name": "KECCAK256",
"source": 0
},
{
"begin": 19341,
"end": 19374,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 19361,
"end": 19373,
"name": "PUSH [tag]",
"source": 0,
"value": "68"
},
{
"begin": 19361,
"end": 19371,
"name": "PUSH [tag]",
"source": 0,
"value": "59"
},
{
"begin": 19361,
"end": 19373,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 19361,
"end": 19373,
"name": "tag",
"source": 0,
"value": "68"
},
{
"begin": 19361,
"end": 19373,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 19341,
"end": 19374,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 19341,
"end": 19374,
"name": "AND",
"source": 0
},
{
"begin": 19341,
"end": 19374,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 19341,
"end": 19374,
"name": "AND",
"source": 0
},
{
"begin": 19341,
"end": 19374,
"name": "DUP2",
"source": 0
},
{
"begin": 19341,
"end": 19374,
"name": "MSTORE",
"source": 0
},
{
"begin": 19341,
"end": 19374,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 19341,
"end": 19374,
"name": "ADD",
"source": 0
},
{
"begin": 19341,
"end": 19374,
"name": "SWAP1",
"source": 0
},
{
"begin": 19341,
"end": 19374,
"name": "DUP2",
"source": 0
},
{
"begin": 19341,
"end": 19374,
"name": "MSTORE",
"source": 0
},
{
"begin": 19341,
"end": 19374,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 19341,
"end": 19374,
"name": "ADD",
"source": 0
},
{
"begin": 19341,
"end": 19374,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 19341,
"end": 19374,
"name": "KECCAK256",
"source": 0
},
{
"begin": 19341,
"end": 19374,
"name": "SLOAD",
"source": 0
},
{
"begin": 19341,
"end": 19378,
"name": "PUSH [tag]",
"source": 0,
"value": "69"
},
{
"begin": 19341,
"end": 19378,
"name": "SWAP1",
"source": 0
},
{
"begin": 19341,
"end": 19430,
"name": "SWAP3",
"source": 0
},
{
"begin": 19341,
"end": 19430,
"name": "SWAP2",
"source": 0
},
{
"begin": 19341,
"end": 19430,
"name": "SWAP1",
"source": 0
},
{
"begin": 19341,
"end": 19430,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFF"
},
{
"begin": 19341,
"end": 19430,
"name": "AND",
"source": 0
},
{
"begin": 19341,
"end": 19430,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 19341,
"end": 19430,
"name": "tag",
"source": 0,
"value": "67"
},
{
"begin": 19341,
"end": 19430,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 19310,
"end": 19318,
"name": "PUSH [tag]",
"source": 0,
"value": "60"
},
{
"begin": 19310,
"end": 19431,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 19310,
"end": 19431,
"name": "tag",
"source": 0,
"value": "65"
},
{
"begin": 19310,
"end": 19431,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 19449,
"end": 19453,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 19442,
"end": 19453,
"name": "SWAP1",
"source": 0
},
{
"begin": 19442,
"end": 19453,
"name": "POP",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "SWAP4",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "SWAP3",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "POP",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "POP",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "POP",
"source": 0
},
{
"begin": 19140,
"end": 19461,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 17286,
"end": 17377,
"name": "tag",
"source": 0,
"value": "30"
},
{
"begin": 17286,
"end": 17377,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 17335,
"end": 17340,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 17360,
"end": 17369,
"name": "PUSH",
"source": 0,
"value": "5"
},
{
"begin": 17360,
"end": 17369,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 17360,
"end": 17369,
"name": "SWAP1",
"source": 0
},
{
"begin": 17360,
"end": 17369,
"name": "SLOAD",
"source": 0
},
{
"begin": 17360,
"end": 17369,
"name": "SWAP1",
"source": 0
},
{
"begin": 17360,
"end": 17369,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 17360,
"end": 17369,
"name": "EXP",
"source": 0
},
{
"begin": 17360,
"end": 17369,
"name": "SWAP1",
"source": 0
},
{
"begin": 17360,
"end": 17369,
"name": "DIV",
"source": 0
},
{
"begin": 17360,
"end": 17369,
"name": "PUSH",
"source": 0,
"value": "FF"
},
{
"begin": 17360,
"end": 17369,
"name": "AND",
"source": 0
},
{
"begin": 17353,
"end": 17369,
"name": "SWAP1",
"source": 0
},
{
"begin": 17353,
"end": 17369,
"name": "POP",
"source": 0
},
{
"begin": 17286,
"end": 17377,
"name": "SWAP1",
"source": 0
},
{
"begin": 17286,
"end": 17377,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 19870,
"end": 20088,
"name": "tag",
"source": 0,
"value": "33"
},
{
"begin": 19870,
"end": 20088,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 19958,
"end": 19962,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 19975,
"end": 20058,
"name": "PUSH [tag]",
"source": 0,
"value": "72"
},
{
"begin": 19984,
"end": 19996,
"name": "PUSH [tag]",
"source": 0,
"value": "73"
},
{
"begin": 19984,
"end": 19994,
"name": "PUSH [tag]",
"source": 0,
"value": "59"
},
{
"begin": 19984,
"end": 19996,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 19984,
"end": 19996,
"name": "tag",
"source": 0,
"value": "73"
},
{
"begin": 19984,
"end": 19996,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 19998,
"end": 20005,
"name": "DUP5",
"source": 0
},
{
"begin": 20007,
"end": 20057,
"name": "PUSH [tag]",
"source": 0,
"value": "74"
},
{
"begin": 20046,
"end": 20056,
"name": "DUP6",
"source": 0
},
{
"begin": 20007,
"end": 20018,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 20007,
"end": 20032,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 20019,
"end": 20031,
"name": "PUSH [tag]",
"source": 0,
"value": "75"
},
{
"begin": 20019,
"end": 20029,
"name": "PUSH [tag]",
"source": 0,
"value": "59"
},
{
"begin": 20019,
"end": 20031,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 20019,
"end": 20031,
"name": "tag",
"source": 0,
"value": "75"
},
{
"begin": 20019,
"end": 20031,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 20007,
"end": 20032,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 20007,
"end": 20032,
"name": "AND",
"source": 0
},
{
"begin": 20007,
"end": 20032,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 20007,
"end": 20032,
"name": "AND",
"source": 0
},
{
"begin": 20007,
"end": 20032,
"name": "DUP2",
"source": 0
},
{
"begin": 20007,
"end": 20032,
"name": "MSTORE",
"source": 0
},
{
"begin": 20007,
"end": 20032,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 20007,
"end": 20032,
"name": "ADD",
"source": 0
},
{
"begin": 20007,
"end": 20032,
"name": "SWAP1",
"source": 0
},
{
"begin": 20007,
"end": 20032,
"name": "DUP2",
"source": 0
},
{
"begin": 20007,
"end": 20032,
"name": "MSTORE",
"source": 0
},
{
"begin": 20007,
"end": 20032,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 20007,
"end": 20032,
"name": "ADD",
"source": 0
},
{
"begin": 20007,
"end": 20032,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 20007,
"end": 20032,
"name": "KECCAK256",
"source": 0
},
{
"begin": 20007,
"end": 20041,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 20033,
"end": 20040,
"name": "DUP10",
"source": 0
},
{
"begin": 20007,
"end": 20041,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 20007,
"end": 20041,
"name": "AND",
"source": 0
},
{
"begin": 20007,
"end": 20041,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 20007,
"end": 20041,
"name": "AND",
"source": 0
},
{
"begin": 20007,
"end": 20041,
"name": "DUP2",
"source": 0
},
{
"begin": 20007,
"end": 20041,
"name": "MSTORE",
"source": 0
},
{
"begin": 20007,
"end": 20041,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 20007,
"end": 20041,
"name": "ADD",
"source": 0
},
{
"begin": 20007,
"end": 20041,
"name": "SWAP1",
"source": 0
},
{
"begin": 20007,
"end": 20041,
"name": "DUP2",
"source": 0
},
{
"begin": 20007,
"end": 20041,
"name": "MSTORE",
"source": 0
},
{
"begin": 20007,
"end": 20041,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 20007,
"end": 20041,
"name": "ADD",
"source": 0
},
{
"begin": 20007,
"end": 20041,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 20007,
"end": 20041,
"name": "KECCAK256",
"source": 0
},
{
"begin": 20007,
"end": 20041,
"name": "SLOAD",
"source": 0
},
{
"begin": 20007,
"end": 20045,
"name": "PUSH [tag]",
"source": 0,
"value": "76"
},
{
"begin": 20007,
"end": 20045,
"name": "SWAP1",
"source": 0
},
{
"begin": 20007,
"end": 20057,
"name": "SWAP2",
"source": 0
},
{
"begin": 20007,
"end": 20057,
"name": "SWAP1",
"source": 0
},
{
"begin": 20007,
"end": 20057,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFF"
},
{
"begin": 20007,
"end": 20057,
"name": "AND",
"source": 0
},
{
"begin": 20007,
"end": 20057,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 20007,
"end": 20057,
"name": "tag",
"source": 0,
"value": "74"
},
{
"begin": 20007,
"end": 20057,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 19975,
"end": 19983,
"name": "PUSH [tag]",
"source": 0,
"value": "60"
},
{
"begin": 19975,
"end": 20058,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 19975,
"end": 20058,
"name": "tag",
"source": 0,
"value": "72"
},
{
"begin": 19975,
"end": 20058,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 20076,
"end": 20080,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 20069,
"end": 20080,
"name": "SWAP1",
"source": 0
},
{
"begin": 20069,
"end": 20080,
"name": "POP",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "SWAP3",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "SWAP2",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "POP",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "POP",
"source": 0
},
{
"begin": 19870,
"end": 20088,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 17613,
"end": 17740,
"name": "tag",
"source": 0,
"value": "36"
},
{
"begin": 17613,
"end": 17740,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 17687,
"end": 17694,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 17714,
"end": 17723,
"name": "DUP1",
"source": 0
},
{
"begin": 17714,
"end": 17732,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 17724,
"end": 17731,
"name": "DUP4",
"source": 0
},
{
"begin": 17714,
"end": 17732,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 17714,
"end": 17732,
"name": "AND",
"source": 0
},
{
"begin": 17714,
"end": 17732,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 17714,
"end": 17732,
"name": "AND",
"source": 0
},
{
"begin": 17714,
"end": 17732,
"name": "DUP2",
"source": 0
},
{
"begin": 17714,
"end": 17732,
"name": "MSTORE",
"source": 0
},
{
"begin": 17714,
"end": 17732,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 17714,
"end": 17732,
"name": "ADD",
"source": 0
},
{
"begin": 17714,
"end": 17732,
"name": "SWAP1",
"source": 0
},
{
"begin": 17714,
"end": 17732,
"name": "DUP2",
"source": 0
},
{
"begin": 17714,
"end": 17732,
"name": "MSTORE",
"source": 0
},
{
"begin": 17714,
"end": 17732,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 17714,
"end": 17732,
"name": "ADD",
"source": 0
},
{
"begin": 17714,
"end": 17732,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 17714,
"end": 17732,
"name": "KECCAK256",
"source": 0
},
{
"begin": 17714,
"end": 17732,
"name": "SLOAD",
"source": 0
},
{
"begin": 17707,
"end": 17732,
"name": "SWAP1",
"source": 0
},
{
"begin": 17707,
"end": 17732,
"name": "POP",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "SWAP2",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "SWAP1",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "POP",
"source": 0
},
{
"begin": 17613,
"end": 17740,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 16553,
"end": 16648,
"name": "tag",
"source": 0,
"value": "38"
},
{
"begin": 16553,
"end": 16648,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16600,
"end": 16613,
"name": "PUSH",
"source": 0,
"value": "60"
},
{
"begin": 16633,
"end": 16640,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 16626,
"end": 16640,
"name": "DUP1",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "SLOAD",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 16626,
"end": 16640,
"name": "DUP2",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 16626,
"end": 16640,
"name": "AND",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "ISZERO",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 16626,
"end": 16640,
"name": "MUL",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "SUB",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "AND",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH",
"source": 0,
"value": "2"
},
{
"begin": 16626,
"end": 16640,
"name": "SWAP1",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "DIV",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "DUP1",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 16626,
"end": 16640,
"name": "ADD",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16626,
"end": 16640,
"name": "DUP1",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "SWAP2",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "DIV",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "MUL",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16626,
"end": 16640,
"name": "ADD",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 16626,
"end": 16640,
"name": "MLOAD",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "SWAP1",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "DUP2",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "ADD",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 16626,
"end": 16640,
"name": "MSTORE",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "DUP1",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "SWAP3",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "SWAP2",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "SWAP1",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "DUP2",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "DUP2",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "MSTORE",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16626,
"end": 16640,
"name": "ADD",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "DUP3",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "DUP1",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "SLOAD",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 16626,
"end": 16640,
"name": "DUP2",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 16626,
"end": 16640,
"name": "AND",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "ISZERO",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 16626,
"end": 16640,
"name": "MUL",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "SUB",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "AND",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH",
"source": 0,
"value": "2"
},
{
"begin": 16626,
"end": 16640,
"name": "SWAP1",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "DIV",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "DUP1",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "ISZERO",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH [tag]",
"source": 0,
"value": "79"
},
{
"begin": 16626,
"end": 16640,
"name": "JUMPI",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "DUP1",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 16626,
"end": 16640,
"name": "LT",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH [tag]",
"source": 0,
"value": "80"
},
{
"begin": 16626,
"end": 16640,
"name": "JUMPI",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 16626,
"end": 16640,
"name": "DUP1",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "DUP4",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "SLOAD",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "DIV",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "MUL",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "DUP4",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "MSTORE",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "SWAP2",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16626,
"end": 16640,
"name": "ADD",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "SWAP2",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH [tag]",
"source": 0,
"value": "79"
},
{
"begin": 16626,
"end": 16640,
"name": "JUMP",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "tag",
"source": 0,
"value": "80"
},
{
"begin": 16626,
"end": 16640,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "DUP3",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "ADD",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "SWAP2",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "SWAP1",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 16626,
"end": 16640,
"name": "MSTORE",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 16626,
"end": 16640,
"name": "KECCAK256",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "SWAP1",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "tag",
"source": 0,
"value": "81"
},
{
"begin": 16626,
"end": 16640,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "DUP2",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "SLOAD",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "DUP2",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "MSTORE",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "SWAP1",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 16626,
"end": 16640,
"name": "ADD",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "SWAP1",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 16626,
"end": 16640,
"name": "ADD",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "DUP1",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "DUP4",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "GT",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH [tag]",
"source": 0,
"value": "81"
},
{
"begin": 16626,
"end": 16640,
"name": "JUMPI",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "DUP3",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "SWAP1",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "SUB",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 16626,
"end": 16640,
"name": "AND",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "DUP3",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "ADD",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "SWAP2",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "tag",
"source": 0,
"value": "79"
},
{
"begin": 16626,
"end": 16640,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "POP",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "POP",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "POP",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "POP",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "POP",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "SWAP1",
"source": 0
},
{
"begin": 16626,
"end": 16640,
"name": "POP",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "SWAP1",
"source": 0
},
{
"begin": 16553,
"end": 16648,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 20591,
"end": 20860,
"name": "tag",
"source": 0,
"value": "45"
},
{
"begin": 20591,
"end": 20860,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 20684,
"end": 20688,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 20701,
"end": 20830,
"name": "PUSH [tag]",
"source": 0,
"value": "83"
},
{
"begin": 20710,
"end": 20722,
"name": "PUSH [tag]",
"source": 0,
"value": "84"
},
{
"begin": 20710,
"end": 20720,
"name": "PUSH [tag]",
"source": 0,
"value": "59"
},
{
"begin": 20710,
"end": 20722,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 20710,
"end": 20722,
"name": "tag",
"source": 0,
"value": "84"
},
{
"begin": 20710,
"end": 20722,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 20724,
"end": 20731,
"name": "DUP5",
"source": 0
},
{
"begin": 20733,
"end": 20829,
"name": "PUSH [tag]",
"source": 0,
"value": "85"
},
{
"begin": 20772,
"end": 20787,
"name": "DUP6",
"source": 0
},
{
"begin": 20733,
"end": 20829,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 20733,
"end": 20829,
"name": "MLOAD",
"source": 0
},
{
"begin": 20733,
"end": 20829,
"name": "DUP1",
"source": 0
},
{
"begin": 20733,
"end": 20829,
"name": "PUSH",
"source": 0,
"value": "60"
},
{
"begin": 20733,
"end": 20829,
"name": "ADD",
"source": 0
},
{
"begin": 20733,
"end": 20829,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 20733,
"end": 20829,
"name": "MSTORE",
"source": 0
},
{
"begin": 20733,
"end": 20829,
"name": "DUP1",
"source": 0
},
{
"begin": 20733,
"end": 20829,
"name": "PUSH",
"source": 0,
"value": "25"
},
{
"begin": 20733,
"end": 20829,
"name": "DUP2",
"source": 0
},
{
"begin": 20733,
"end": 20829,
"name": "MSTORE",
"source": 0
},
{
"begin": 20733,
"end": 20829,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 20733,
"end": 20829,
"name": "ADD",
"source": 0
},
{
"begin": 20733,
"end": 20829,
"name": "PUSH data",
"source": 0,
"value": "F8B476F7D28209D77D4A4AC1FE36B9F8259AA1BB6BDDFA6E89DE7E51615CF8A8"
},
{
"begin": 20733,
"end": 20829,
"name": "PUSH",
"source": 0,
"value": "25"
},
{
"begin": 20733,
"end": 20829,
"name": "SWAP2",
"source": 0
},
{
"begin": 20733,
"end": 20829,
"name": "CODECOPY",
"source": 0
},
{
"begin": 20733,
"end": 20744,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 20733,
"end": 20758,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 20745,
"end": 20757,
"name": "PUSH [tag]",
"source": 0,
"value": "86"
},
{
"begin": 20745,
"end": 20755,
"name": "PUSH [tag]",
"source": 0,
"value": "59"
},
{
"begin": 20745,
"end": 20757,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 20745,
"end": 20757,
"name": "tag",
"source": 0,
"value": "86"
},
{
"begin": 20745,
"end": 20757,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 20733,
"end": 20758,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 20733,
"end": 20758,
"name": "AND",
"source": 0
},
{
"begin": 20733,
"end": 20758,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 20733,
"end": 20758,
"name": "AND",
"source": 0
},
{
"begin": 20733,
"end": 20758,
"name": "DUP2",
"source": 0
},
{
"begin": 20733,
"end": 20758,
"name": "MSTORE",
"source": 0
},
{
"begin": 20733,
"end": 20758,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 20733,
"end": 20758,
"name": "ADD",
"source": 0
},
{
"begin": 20733,
"end": 20758,
"name": "SWAP1",
"source": 0
},
{
"begin": 20733,
"end": 20758,
"name": "DUP2",
"source": 0
},
{
"begin": 20733,
"end": 20758,
"name": "MSTORE",
"source": 0
},
{
"begin": 20733,
"end": 20758,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 20733,
"end": 20758,
"name": "ADD",
"source": 0
},
{
"begin": 20733,
"end": 20758,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 20733,
"end": 20758,
"name": "KECCAK256",
"source": 0
},
{
"begin": 20733,
"end": 20767,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 20759,
"end": 20766,
"name": "DUP11",
"source": 0
},
{
"begin": 20733,
"end": 20767,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 20733,
"end": 20767,
"name": "AND",
"source": 0
},
{
"begin": 20733,
"end": 20767,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 20733,
"end": 20767,
"name": "AND",
"source": 0
},
{
"begin": 20733,
"end": 20767,
"name": "DUP2",
"source": 0
},
{
"begin": 20733,
"end": 20767,
"name": "MSTORE",
"source": 0
},
{
"begin": 20733,
"end": 20767,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 20733,
"end": 20767,
"name": "ADD",
"source": 0
},
{
"begin": 20733,
"end": 20767,
"name": "SWAP1",
"source": 0
},
{
"begin": 20733,
"end": 20767,
"name": "DUP2",
"source": 0
},
{
"begin": 20733,
"end": 20767,
"name": "MSTORE",
"source": 0
},
{
"begin": 20733,
"end": 20767,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 20733,
"end": 20767,
"name": "ADD",
"source": 0
},
{
"begin": 20733,
"end": 20767,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 20733,
"end": 20767,
"name": "KECCAK256",
"source": 0
},
{
"begin": 20733,
"end": 20767,
"name": "SLOAD",
"source": 0
},
{
"begin": 20733,
"end": 20771,
"name": "PUSH [tag]",
"source": 0,
"value": "69"
},
{
"begin": 20733,
"end": 20771,
"name": "SWAP1",
"source": 0
},
{
"begin": 20733,
"end": 20829,
"name": "SWAP3",
"source": 0
},
{
"begin": 20733,
"end": 20829,
"name": "SWAP2",
"source": 0
},
{
"begin": 20733,
"end": 20829,
"name": "SWAP1",
"source": 0
},
{
"begin": 20733,
"end": 20829,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFF"
},
{
"begin": 20733,
"end": 20829,
"name": "AND",
"source": 0
},
{
"begin": 20733,
"end": 20829,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 20733,
"end": 20829,
"name": "tag",
"source": 0,
"value": "85"
},
{
"begin": 20733,
"end": 20829,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 20701,
"end": 20709,
"name": "PUSH [tag]",
"source": 0,
"value": "60"
},
{
"begin": 20701,
"end": 20830,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 20701,
"end": 20830,
"name": "tag",
"source": 0,
"value": "83"
},
{
"begin": 20701,
"end": 20830,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 20848,
"end": 20852,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 20841,
"end": 20852,
"name": "SWAP1",
"source": 0
},
{
"begin": 20841,
"end": 20852,
"name": "POP",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "SWAP3",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "SWAP2",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "POP",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "POP",
"source": 0
},
{
"begin": 20591,
"end": 20860,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 17953,
"end": 18128,
"name": "tag",
"source": 0,
"value": "48"
},
{
"begin": 17953,
"end": 18128,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 18039,
"end": 18043,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 18056,
"end": 18098,
"name": "PUSH [tag]",
"source": 0,
"value": "88"
},
{
"begin": 18066,
"end": 18078,
"name": "PUSH [tag]",
"source": 0,
"value": "89"
},
{
"begin": 18066,
"end": 18076,
"name": "PUSH [tag]",
"source": 0,
"value": "59"
},
{
"begin": 18066,
"end": 18078,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 18066,
"end": 18078,
"name": "tag",
"source": 0,
"value": "89"
},
{
"begin": 18066,
"end": 18078,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 18080,
"end": 18089,
"name": "DUP5",
"source": 0
},
{
"begin": 18091,
"end": 18097,
"name": "DUP5",
"source": 0
},
{
"begin": 18056,
"end": 18065,
"name": "PUSH [tag]",
"source": 0,
"value": "64"
},
{
"begin": 18056,
"end": 18098,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 18056,
"end": 18098,
"name": "tag",
"source": 0,
"value": "88"
},
{
"begin": 18056,
"end": 18098,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 18116,
"end": 18120,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 18109,
"end": 18120,
"name": "SWAP1",
"source": 0
},
{
"begin": 18109,
"end": 18120,
"name": "POP",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "SWAP3",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "SWAP2",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "POP",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "POP",
"source": 0
},
{
"begin": 17953,
"end": 18128,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 18191,
"end": 18342,
"name": "tag",
"source": 0,
"value": "51"
},
{
"begin": 18191,
"end": 18342,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 18280,
"end": 18287,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 18307,
"end": 18318,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 18307,
"end": 18325,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 18319,
"end": 18324,
"name": "DUP5",
"source": 0
},
{
"begin": 18307,
"end": 18325,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 18307,
"end": 18325,
"name": "AND",
"source": 0
},
{
"begin": 18307,
"end": 18325,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 18307,
"end": 18325,
"name": "AND",
"source": 0
},
{
"begin": 18307,
"end": 18325,
"name": "DUP2",
"source": 0
},
{
"begin": 18307,
"end": 18325,
"name": "MSTORE",
"source": 0
},
{
"begin": 18307,
"end": 18325,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 18307,
"end": 18325,
"name": "ADD",
"source": 0
},
{
"begin": 18307,
"end": 18325,
"name": "SWAP1",
"source": 0
},
{
"begin": 18307,
"end": 18325,
"name": "DUP2",
"source": 0
},
{
"begin": 18307,
"end": 18325,
"name": "MSTORE",
"source": 0
},
{
"begin": 18307,
"end": 18325,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 18307,
"end": 18325,
"name": "ADD",
"source": 0
},
{
"begin": 18307,
"end": 18325,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 18307,
"end": 18325,
"name": "KECCAK256",
"source": 0
},
{
"begin": 18307,
"end": 18334,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 18326,
"end": 18333,
"name": "DUP4",
"source": 0
},
{
"begin": 18307,
"end": 18334,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 18307,
"end": 18334,
"name": "AND",
"source": 0
},
{
"begin": 18307,
"end": 18334,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 18307,
"end": 18334,
"name": "AND",
"source": 0
},
{
"begin": 18307,
"end": 18334,
"name": "DUP2",
"source": 0
},
{
"begin": 18307,
"end": 18334,
"name": "MSTORE",
"source": 0
},
{
"begin": 18307,
"end": 18334,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 18307,
"end": 18334,
"name": "ADD",
"source": 0
},
{
"begin": 18307,
"end": 18334,
"name": "SWAP1",
"source": 0
},
{
"begin": 18307,
"end": 18334,
"name": "DUP2",
"source": 0
},
{
"begin": 18307,
"end": 18334,
"name": "MSTORE",
"source": 0
},
{
"begin": 18307,
"end": 18334,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 18307,
"end": 18334,
"name": "ADD",
"source": 0
},
{
"begin": 18307,
"end": 18334,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 18307,
"end": 18334,
"name": "KECCAK256",
"source": 0
},
{
"begin": 18307,
"end": 18334,
"name": "SLOAD",
"source": 0
},
{
"begin": 18300,
"end": 18334,
"name": "SWAP1",
"source": 0
},
{
"begin": 18300,
"end": 18334,
"name": "POP",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "SWAP3",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "SWAP2",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "POP",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "POP",
"source": 0
},
{
"begin": 18191,
"end": 18342,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 10996,
"end": 11102,
"name": "tag",
"source": 0,
"value": "59"
},
{
"begin": 10996,
"end": 11102,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 11049,
"end": 11064,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 11084,
"end": 11094,
"name": "CALLER",
"source": 0
},
{
"begin": 11077,
"end": 11094,
"name": "SWAP1",
"source": 0
},
{
"begin": 11077,
"end": 11094,
"name": "POP",
"source": 0
},
{
"begin": 10996,
"end": 11102,
"name": "SWAP1",
"source": 0
},
{
"begin": 10996,
"end": 11102,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 23738,
"end": 24084,
"name": "tag",
"source": 0,
"value": "60"
},
{
"begin": 23738,
"end": 24084,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 23857,
"end": 23858,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 23840,
"end": 23859,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 23840,
"end": 23859,
"name": "AND",
"source": 0
},
{
"begin": 23840,
"end": 23845,
"name": "DUP4",
"source": 0
},
{
"begin": 23840,
"end": 23859,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 23840,
"end": 23859,
"name": "AND",
"source": 0
},
{
"begin": 23840,
"end": 23859,
"name": "EQ",
"source": 0
},
{
"begin": 23840,
"end": 23859,
"name": "ISZERO",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "PUSH [tag]",
"source": 0,
"value": "93"
},
{
"begin": 23832,
"end": 23900,
"name": "JUMPI",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 23832,
"end": 23900,
"name": "MLOAD",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "PUSH",
"source": 0,
"value": "8C379A000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 23832,
"end": 23900,
"name": "DUP2",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "MSTORE",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 23832,
"end": 23900,
"name": "ADD",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "DUP1",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "DUP1",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 23832,
"end": 23900,
"name": "ADD",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "DUP3",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "DUP2",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "SUB",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "DUP3",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "MSTORE",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "PUSH",
"source": 0,
"value": "24"
},
{
"begin": 23832,
"end": 23900,
"name": "DUP2",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "MSTORE",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 23832,
"end": 23900,
"name": "ADD",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "DUP1",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "PUSH data",
"source": 0,
"value": "C953F4879035ED60E766B34720F656AAB5C697B141D924C283124ECEDB91C208"
},
{
"begin": 23832,
"end": 23900,
"name": "PUSH",
"source": 0,
"value": "24"
},
{
"begin": 23832,
"end": 23900,
"name": "SWAP2",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "CODECOPY",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 23832,
"end": 23900,
"name": "ADD",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "SWAP2",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "POP",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "POP",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 23832,
"end": 23900,
"name": "MLOAD",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "DUP1",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "SWAP2",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "SUB",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "SWAP1",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "REVERT",
"source": 0
},
{
"begin": 23832,
"end": 23900,
"name": "tag",
"source": 0,
"value": "93"
},
{
"begin": 23832,
"end": 23900,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 23938,
"end": 23939,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 23919,
"end": 23940,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 23919,
"end": 23940,
"name": "AND",
"source": 0
},
{
"begin": 23919,
"end": 23926,
"name": "DUP3",
"source": 0
},
{
"begin": 23919,
"end": 23940,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 23919,
"end": 23940,
"name": "AND",
"source": 0
},
{
"begin": 23919,
"end": 23940,
"name": "EQ",
"source": 0
},
{
"begin": 23919,
"end": 23940,
"name": "ISZERO",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "PUSH [tag]",
"source": 0,
"value": "94"
},
{
"begin": 23911,
"end": 23979,
"name": "JUMPI",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 23911,
"end": 23979,
"name": "MLOAD",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "PUSH",
"source": 0,
"value": "8C379A000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 23911,
"end": 23979,
"name": "DUP2",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "MSTORE",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 23911,
"end": 23979,
"name": "ADD",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "DUP1",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "DUP1",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 23911,
"end": 23979,
"name": "ADD",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "DUP3",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "DUP2",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "SUB",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "DUP3",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "MSTORE",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "PUSH",
"source": 0,
"value": "22"
},
{
"begin": 23911,
"end": 23979,
"name": "DUP2",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "MSTORE",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 23911,
"end": 23979,
"name": "ADD",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "DUP1",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "PUSH data",
"source": 0,
"value": "24883CC5FE64ACE9D0DF1893501ECB93C77180F0FF69CCA79AFFB3C316DC8029"
},
{
"begin": 23911,
"end": 23979,
"name": "PUSH",
"source": 0,
"value": "22"
},
{
"begin": 23911,
"end": 23979,
"name": "SWAP2",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "CODECOPY",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 23911,
"end": 23979,
"name": "ADD",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "SWAP2",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "POP",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "POP",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 23911,
"end": 23979,
"name": "MLOAD",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "DUP1",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "SWAP2",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "SUB",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "SWAP1",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "REVERT",
"source": 0
},
{
"begin": 23911,
"end": 23979,
"name": "tag",
"source": 0,
"value": "94"
},
{
"begin": 23911,
"end": 23979,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 24022,
"end": 24028,
"name": "DUP1",
"source": 0
},
{
"begin": 23992,
"end": 24003,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 23992,
"end": 24010,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 24004,
"end": 24009,
"name": "DUP6",
"source": 0
},
{
"begin": 23992,
"end": 24010,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 23992,
"end": 24010,
"name": "AND",
"source": 0
},
{
"begin": 23992,
"end": 24010,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 23992,
"end": 24010,
"name": "AND",
"source": 0
},
{
"begin": 23992,
"end": 24010,
"name": "DUP2",
"source": 0
},
{
"begin": 23992,
"end": 24010,
"name": "MSTORE",
"source": 0
},
{
"begin": 23992,
"end": 24010,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 23992,
"end": 24010,
"name": "ADD",
"source": 0
},
{
"begin": 23992,
"end": 24010,
"name": "SWAP1",
"source": 0
},
{
"begin": 23992,
"end": 24010,
"name": "DUP2",
"source": 0
},
{
"begin": 23992,
"end": 24010,
"name": "MSTORE",
"source": 0
},
{
"begin": 23992,
"end": 24010,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 23992,
"end": 24010,
"name": "ADD",
"source": 0
},
{
"begin": 23992,
"end": 24010,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 23992,
"end": 24010,
"name": "KECCAK256",
"source": 0
},
{
"begin": 23992,
"end": 24019,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 24011,
"end": 24018,
"name": "DUP5",
"source": 0
},
{
"begin": 23992,
"end": 24019,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 23992,
"end": 24019,
"name": "AND",
"source": 0
},
{
"begin": 23992,
"end": 24019,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 23992,
"end": 24019,
"name": "AND",
"source": 0
},
{
"begin": 23992,
"end": 24019,
"name": "DUP2",
"source": 0
},
{
"begin": 23992,
"end": 24019,
"name": "MSTORE",
"source": 0
},
{
"begin": 23992,
"end": 24019,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 23992,
"end": 24019,
"name": "ADD",
"source": 0
},
{
"begin": 23992,
"end": 24019,
"name": "SWAP1",
"source": 0
},
{
"begin": 23992,
"end": 24019,
"name": "DUP2",
"source": 0
},
{
"begin": 23992,
"end": 24019,
"name": "MSTORE",
"source": 0
},
{
"begin": 23992,
"end": 24019,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 23992,
"end": 24019,
"name": "ADD",
"source": 0
},
{
"begin": 23992,
"end": 24019,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 23992,
"end": 24019,
"name": "KECCAK256",
"source": 0
},
{
"begin": 23992,
"end": 24028,
"name": "DUP2",
"source": 0
},
{
"begin": 23992,
"end": 24028,
"name": "SWAP1",
"source": 0
},
{
"begin": 23992,
"end": 24028,
"name": "SSTORE",
"source": 0
},
{
"begin": 23992,
"end": 24028,
"name": "POP",
"source": 0
},
{
"begin": 24060,
"end": 24067,
"name": "DUP2",
"source": 0
},
{
"begin": 24044,
"end": 24076,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 24044,
"end": 24076,
"name": "AND",
"source": 0
},
{
"begin": 24053,
"end": 24058,
"name": "DUP4",
"source": 0
},
{
"begin": 24044,
"end": 24076,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 24044,
"end": 24076,
"name": "AND",
"source": 0
},
{
"begin": 24044,
"end": 24076,
"name": "PUSH",
"source": 0,
"value": "8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925"
},
{
"begin": 24069,
"end": 24075,
"name": "DUP4",
"source": 0
},
{
"begin": 24044,
"end": 24076,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 24044,
"end": 24076,
"name": "MLOAD",
"source": 0
},
{
"begin": 24044,
"end": 24076,
"name": "DUP1",
"source": 0
},
{
"begin": 24044,
"end": 24076,
"name": "DUP3",
"source": 0
},
{
"begin": 24044,
"end": 24076,
"name": "DUP2",
"source": 0
},
{
"begin": 24044,
"end": 24076,
"name": "MSTORE",
"source": 0
},
{
"begin": 24044,
"end": 24076,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 24044,
"end": 24076,
"name": "ADD",
"source": 0
},
{
"begin": 24044,
"end": 24076,
"name": "SWAP2",
"source": 0
},
{
"begin": 24044,
"end": 24076,
"name": "POP",
"source": 0
},
{
"begin": 24044,
"end": 24076,
"name": "POP",
"source": 0
},
{
"begin": 24044,
"end": 24076,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 24044,
"end": 24076,
"name": "MLOAD",
"source": 0
},
{
"begin": 24044,
"end": 24076,
"name": "DUP1",
"source": 0
},
{
"begin": 24044,
"end": 24076,
"name": "SWAP2",
"source": 0
},
{
"begin": 24044,
"end": 24076,
"name": "SUB",
"source": 0
},
{
"begin": 24044,
"end": 24076,
"name": "SWAP1",
"source": 0
},
{
"begin": 24044,
"end": 24076,
"name": "LOG3",
"source": 0
},
{
"begin": 23738,
"end": 24084,
"name": "POP",
"source": 0
},
{
"begin": 23738,
"end": 24084,
"name": "POP",
"source": 0
},
{
"begin": 23738,
"end": 24084,
"name": "POP",
"source": 0
},
{
"begin": 23738,
"end": 24084,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 21350,
"end": 21889,
"name": "tag",
"source": 0,
"value": "64"
},
{
"begin": 21350,
"end": 21889,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 21474,
"end": 21475,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 21456,
"end": 21476,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 21456,
"end": 21476,
"name": "AND",
"source": 0
},
{
"begin": 21456,
"end": 21462,
"name": "DUP4",
"source": 0
},
{
"begin": 21456,
"end": 21476,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 21456,
"end": 21476,
"name": "AND",
"source": 0
},
{
"begin": 21456,
"end": 21476,
"name": "EQ",
"source": 0
},
{
"begin": 21456,
"end": 21476,
"name": "ISZERO",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "PUSH [tag]",
"source": 0,
"value": "96"
},
{
"begin": 21448,
"end": 21518,
"name": "JUMPI",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 21448,
"end": 21518,
"name": "MLOAD",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "PUSH",
"source": 0,
"value": "8C379A000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 21448,
"end": 21518,
"name": "DUP2",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "MSTORE",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 21448,
"end": 21518,
"name": "ADD",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "DUP1",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "DUP1",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 21448,
"end": 21518,
"name": "ADD",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "DUP3",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "DUP2",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "SUB",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "DUP3",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "MSTORE",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "PUSH",
"source": 0,
"value": "25"
},
{
"begin": 21448,
"end": 21518,
"name": "DUP2",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "MSTORE",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 21448,
"end": 21518,
"name": "ADD",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "DUP1",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "PUSH data",
"source": 0,
"value": "BAECC556B46F4ED0F2B4CB599D60785AC8563DD2DC0A5BF12EDEA1C39E5E1FEA"
},
{
"begin": 21448,
"end": 21518,
"name": "PUSH",
"source": 0,
"value": "25"
},
{
"begin": 21448,
"end": 21518,
"name": "SWAP2",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "CODECOPY",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 21448,
"end": 21518,
"name": "ADD",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "SWAP2",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "POP",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "POP",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 21448,
"end": 21518,
"name": "MLOAD",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "DUP1",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "SWAP2",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "SUB",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "SWAP1",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "REVERT",
"source": 0
},
{
"begin": 21448,
"end": 21518,
"name": "tag",
"source": 0,
"value": "96"
},
{
"begin": 21448,
"end": 21518,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 21558,
"end": 21559,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 21537,
"end": 21560,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 21537,
"end": 21560,
"name": "AND",
"source": 0
},
{
"begin": 21537,
"end": 21546,
"name": "DUP3",
"source": 0
},
{
"begin": 21537,
"end": 21560,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 21537,
"end": 21560,
"name": "AND",
"source": 0
},
{
"begin": 21537,
"end": 21560,
"name": "EQ",
"source": 0
},
{
"begin": 21537,
"end": 21560,
"name": "ISZERO",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "PUSH [tag]",
"source": 0,
"value": "97"
},
{
"begin": 21529,
"end": 21600,
"name": "JUMPI",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 21529,
"end": 21600,
"name": "MLOAD",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "PUSH",
"source": 0,
"value": "8C379A000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 21529,
"end": 21600,
"name": "DUP2",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "MSTORE",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 21529,
"end": 21600,
"name": "ADD",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "DUP1",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "DUP1",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 21529,
"end": 21600,
"name": "ADD",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "DUP3",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "DUP2",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "SUB",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "DUP3",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "MSTORE",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "PUSH",
"source": 0,
"value": "23"
},
{
"begin": 21529,
"end": 21600,
"name": "DUP2",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "MSTORE",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 21529,
"end": 21600,
"name": "ADD",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "DUP1",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "PUSH data",
"source": 0,
"value": "557E210F7A69A685100A7E4E3D0A7024C546085CEE28910FD17D0B081D9516F"
},
{
"begin": 21529,
"end": 21600,
"name": "PUSH",
"source": 0,
"value": "23"
},
{
"begin": 21529,
"end": 21600,
"name": "SWAP2",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "CODECOPY",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 21529,
"end": 21600,
"name": "ADD",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "SWAP2",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "POP",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "POP",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 21529,
"end": 21600,
"name": "MLOAD",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "DUP1",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "SWAP2",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "SUB",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "SWAP1",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "REVERT",
"source": 0
},
{
"begin": 21529,
"end": 21600,
"name": "tag",
"source": 0,
"value": "97"
},
{
"begin": 21529,
"end": 21600,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 21613,
"end": 21660,
"name": "PUSH [tag]",
"source": 0,
"value": "98"
},
{
"begin": 21634,
"end": 21640,
"name": "DUP4",
"source": 0
},
{
"begin": 21642,
"end": 21651,
"name": "DUP4",
"source": 0
},
{
"begin": 21653,
"end": 21659,
"name": "DUP4",
"source": 0
},
{
"begin": 21613,
"end": 21633,
"name": "PUSH [tag]",
"source": 0,
"value": "99"
},
{
"begin": 21613,
"end": 21660,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 21613,
"end": 21660,
"name": "tag",
"source": 0,
"value": "98"
},
{
"begin": 21613,
"end": 21660,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 21693,
"end": 21764,
"name": "PUSH [tag]",
"source": 0,
"value": "100"
},
{
"begin": 21715,
"end": 21721,
"name": "DUP2",
"source": 0
},
{
"begin": 21693,
"end": 21764,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 21693,
"end": 21764,
"name": "MLOAD",
"source": 0
},
{
"begin": 21693,
"end": 21764,
"name": "DUP1",
"source": 0
},
{
"begin": 21693,
"end": 21764,
"name": "PUSH",
"source": 0,
"value": "60"
},
{
"begin": 21693,
"end": 21764,
"name": "ADD",
"source": 0
},
{
"begin": 21693,
"end": 21764,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 21693,
"end": 21764,
"name": "MSTORE",
"source": 0
},
{
"begin": 21693,
"end": 21764,
"name": "DUP1",
"source": 0
},
{
"begin": 21693,
"end": 21764,
"name": "PUSH",
"source": 0,
"value": "26"
},
{
"begin": 21693,
"end": 21764,
"name": "DUP2",
"source": 0
},
{
"begin": 21693,
"end": 21764,
"name": "MSTORE",
"source": 0
},
{
"begin": 21693,
"end": 21764,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 21693,
"end": 21764,
"name": "ADD",
"source": 0
},
{
"begin": 21693,
"end": 21764,
"name": "PUSH data",
"source": 0,
"value": "4107E8A8B9E94BF8FF83080DDEC1C0BFFE897EBC2241B89D44F66B3D274088B6"
},
{
"begin": 21693,
"end": 21764,
"name": "PUSH",
"source": 0,
"value": "26"
},
{
"begin": 21693,
"end": 21764,
"name": "SWAP2",
"source": 0
},
{
"begin": 21693,
"end": 21764,
"name": "CODECOPY",
"source": 0
},
{
"begin": 21693,
"end": 21702,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 21693,
"end": 21710,
"name": "DUP1",
"source": 0
},
{
"begin": 21703,
"end": 21709,
"name": "DUP8",
"source": 0
},
{
"begin": 21693,
"end": 21710,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 21693,
"end": 21710,
"name": "AND",
"source": 0
},
{
"begin": 21693,
"end": 21710,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 21693,
"end": 21710,
"name": "AND",
"source": 0
},
{
"begin": 21693,
"end": 21710,
"name": "DUP2",
"source": 0
},
{
"begin": 21693,
"end": 21710,
"name": "MSTORE",
"source": 0
},
{
"begin": 21693,
"end": 21710,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 21693,
"end": 21710,
"name": "ADD",
"source": 0
},
{
"begin": 21693,
"end": 21710,
"name": "SWAP1",
"source": 0
},
{
"begin": 21693,
"end": 21710,
"name": "DUP2",
"source": 0
},
{
"begin": 21693,
"end": 21710,
"name": "MSTORE",
"source": 0
},
{
"begin": 21693,
"end": 21710,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 21693,
"end": 21710,
"name": "ADD",
"source": 0
},
{
"begin": 21693,
"end": 21710,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 21693,
"end": 21710,
"name": "KECCAK256",
"source": 0
},
{
"begin": 21693,
"end": 21710,
"name": "SLOAD",
"source": 0
},
{
"begin": 21693,
"end": 21714,
"name": "PUSH [tag]",
"source": 0,
"value": "69"
},
{
"begin": 21693,
"end": 21714,
"name": "SWAP1",
"source": 0
},
{
"begin": 21693,
"end": 21764,
"name": "SWAP3",
"source": 0
},
{
"begin": 21693,
"end": 21764,
"name": "SWAP2",
"source": 0
},
{
"begin": 21693,
"end": 21764,
"name": "SWAP1",
"source": 0
},
{
"begin": 21693,
"end": 21764,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFF"
},
{
"begin": 21693,
"end": 21764,
"name": "AND",
"source": 0
},
{
"begin": 21693,
"end": 21764,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 21693,
"end": 21764,
"name": "tag",
"source": 0,
"value": "100"
},
{
"begin": 21693,
"end": 21764,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 21673,
"end": 21682,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 21673,
"end": 21690,
"name": "DUP1",
"source": 0
},
{
"begin": 21683,
"end": 21689,
"name": "DUP6",
"source": 0
},
{
"begin": 21673,
"end": 21690,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 21673,
"end": 21690,
"name": "AND",
"source": 0
},
{
"begin": 21673,
"end": 21690,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 21673,
"end": 21690,
"name": "AND",
"source": 0
},
{
"begin": 21673,
"end": 21690,
"name": "DUP2",
"source": 0
},
{
"begin": 21673,
"end": 21690,
"name": "MSTORE",
"source": 0
},
{
"begin": 21673,
"end": 21690,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 21673,
"end": 21690,
"name": "ADD",
"source": 0
},
{
"begin": 21673,
"end": 21690,
"name": "SWAP1",
"source": 0
},
{
"begin": 21673,
"end": 21690,
"name": "DUP2",
"source": 0
},
{
"begin": 21673,
"end": 21690,
"name": "MSTORE",
"source": 0
},
{
"begin": 21673,
"end": 21690,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 21673,
"end": 21690,
"name": "ADD",
"source": 0
},
{
"begin": 21673,
"end": 21690,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 21673,
"end": 21690,
"name": "KECCAK256",
"source": 0
},
{
"begin": 21673,
"end": 21764,
"name": "DUP2",
"source": 0
},
{
"begin": 21673,
"end": 21764,
"name": "SWAP1",
"source": 0
},
{
"begin": 21673,
"end": 21764,
"name": "SSTORE",
"source": 0
},
{
"begin": 21673,
"end": 21764,
"name": "POP",
"source": 0
},
{
"begin": 21798,
"end": 21830,
"name": "PUSH [tag]",
"source": 0,
"value": "101"
},
{
"begin": 21823,
"end": 21829,
"name": "DUP2",
"source": 0
},
{
"begin": 21798,
"end": 21807,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 21798,
"end": 21818,
"name": "DUP1",
"source": 0
},
{
"begin": 21808,
"end": 21817,
"name": "DUP6",
"source": 0
},
{
"begin": 21798,
"end": 21818,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 21798,
"end": 21818,
"name": "AND",
"source": 0
},
{
"begin": 21798,
"end": 21818,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 21798,
"end": 21818,
"name": "AND",
"source": 0
},
{
"begin": 21798,
"end": 21818,
"name": "DUP2",
"source": 0
},
{
"begin": 21798,
"end": 21818,
"name": "MSTORE",
"source": 0
},
{
"begin": 21798,
"end": 21818,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 21798,
"end": 21818,
"name": "ADD",
"source": 0
},
{
"begin": 21798,
"end": 21818,
"name": "SWAP1",
"source": 0
},
{
"begin": 21798,
"end": 21818,
"name": "DUP2",
"source": 0
},
{
"begin": 21798,
"end": 21818,
"name": "MSTORE",
"source": 0
},
{
"begin": 21798,
"end": 21818,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 21798,
"end": 21818,
"name": "ADD",
"source": 0
},
{
"begin": 21798,
"end": 21818,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 21798,
"end": 21818,
"name": "KECCAK256",
"source": 0
},
{
"begin": 21798,
"end": 21818,
"name": "SLOAD",
"source": 0
},
{
"begin": 21798,
"end": 21822,
"name": "PUSH [tag]",
"source": 0,
"value": "76"
},
{
"begin": 21798,
"end": 21822,
"name": "SWAP1",
"source": 0
},
{
"begin": 21798,
"end": 21830,
"name": "SWAP2",
"source": 0
},
{
"begin": 21798,
"end": 21830,
"name": "SWAP1",
"source": 0
},
{
"begin": 21798,
"end": 21830,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFF"
},
{
"begin": 21798,
"end": 21830,
"name": "AND",
"source": 0
},
{
"begin": 21798,
"end": 21830,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 21798,
"end": 21830,
"name": "tag",
"source": 0,
"value": "101"
},
{
"begin": 21798,
"end": 21830,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 21775,
"end": 21784,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 21775,
"end": 21795,
"name": "DUP1",
"source": 0
},
{
"begin": 21785,
"end": 21794,
"name": "DUP5",
"source": 0
},
{
"begin": 21775,
"end": 21795,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 21775,
"end": 21795,
"name": "AND",
"source": 0
},
{
"begin": 21775,
"end": 21795,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 21775,
"end": 21795,
"name": "AND",
"source": 0
},
{
"begin": 21775,
"end": 21795,
"name": "DUP2",
"source": 0
},
{
"begin": 21775,
"end": 21795,
"name": "MSTORE",
"source": 0
},
{
"begin": 21775,
"end": 21795,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 21775,
"end": 21795,
"name": "ADD",
"source": 0
},
{
"begin": 21775,
"end": 21795,
"name": "SWAP1",
"source": 0
},
{
"begin": 21775,
"end": 21795,
"name": "DUP2",
"source": 0
},
{
"begin": 21775,
"end": 21795,
"name": "MSTORE",
"source": 0
},
{
"begin": 21775,
"end": 21795,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 21775,
"end": 21795,
"name": "ADD",
"source": 0
},
{
"begin": 21775,
"end": 21795,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 21775,
"end": 21795,
"name": "KECCAK256",
"source": 0
},
{
"begin": 21775,
"end": 21830,
"name": "DUP2",
"source": 0
},
{
"begin": 21775,
"end": 21830,
"name": "SWAP1",
"source": 0
},
{
"begin": 21775,
"end": 21830,
"name": "SSTORE",
"source": 0
},
{
"begin": 21775,
"end": 21830,
"name": "POP",
"source": 0
},
{
"begin": 21863,
"end": 21872,
"name": "DUP2",
"source": 0
},
{
"begin": 21846,
"end": 21881,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 21846,
"end": 21881,
"name": "AND",
"source": 0
},
{
"begin": 21855,
"end": 21861,
"name": "DUP4",
"source": 0
},
{
"begin": 21846,
"end": 21881,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 21846,
"end": 21881,
"name": "AND",
"source": 0
},
{
"begin": 21846,
"end": 21881,
"name": "PUSH",
"source": 0,
"value": "DDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF"
},
{
"begin": 21874,
"end": 21880,
"name": "DUP4",
"source": 0
},
{
"begin": 21846,
"end": 21881,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 21846,
"end": 21881,
"name": "MLOAD",
"source": 0
},
{
"begin": 21846,
"end": 21881,
"name": "DUP1",
"source": 0
},
{
"begin": 21846,
"end": 21881,
"name": "DUP3",
"source": 0
},
{
"begin": 21846,
"end": 21881,
"name": "DUP2",
"source": 0
},
{
"begin": 21846,
"end": 21881,
"name": "MSTORE",
"source": 0
},
{
"begin": 21846,
"end": 21881,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 21846,
"end": 21881,
"name": "ADD",
"source": 0
},
{
"begin": 21846,
"end": 21881,
"name": "SWAP2",
"source": 0
},
{
"begin": 21846,
"end": 21881,
"name": "POP",
"source": 0
},
{
"begin": 21846,
"end": 21881,
"name": "POP",
"source": 0
},
{
"begin": 21846,
"end": 21881,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 21846,
"end": 21881,
"name": "MLOAD",
"source": 0
},
{
"begin": 21846,
"end": 21881,
"name": "DUP1",
"source": 0
},
{
"begin": 21846,
"end": 21881,
"name": "SWAP2",
"source": 0
},
{
"begin": 21846,
"end": 21881,
"name": "SUB",
"source": 0
},
{
"begin": 21846,
"end": 21881,
"name": "SWAP1",
"source": 0
},
{
"begin": 21846,
"end": 21881,
"name": "LOG3",
"source": 0
},
{
"begin": 21350,
"end": 21889,
"name": "POP",
"source": 0
},
{
"begin": 21350,
"end": 21889,
"name": "POP",
"source": 0
},
{
"begin": 21350,
"end": 21889,
"name": "POP",
"source": 0
},
{
"begin": 21350,
"end": 21889,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 8512,
"end": 8678,
"name": "tag",
"source": 0,
"value": "69"
},
{
"begin": 8512,
"end": 8678,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 8598,
"end": 8605,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 8631,
"end": 8632,
"name": "DUP4",
"source": 0
},
{
"begin": 8626,
"end": 8627,
"name": "DUP4",
"source": 0
},
{
"begin": 8626,
"end": 8632,
"name": "GT",
"source": 0
},
{
"begin": 8626,
"end": 8632,
"name": "ISZERO",
"source": 0
},
{
"begin": 8634,
"end": 8646,
"name": "DUP3",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "SWAP1",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "PUSH [tag]",
"source": 0,
"value": "103"
},
{
"begin": 8618,
"end": 8647,
"name": "JUMPI",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 8618,
"end": 8647,
"name": "MLOAD",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "PUSH",
"source": 0,
"value": "8C379A000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 8618,
"end": 8647,
"name": "DUP2",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "MSTORE",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 8618,
"end": 8647,
"name": "ADD",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP1",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP1",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 8618,
"end": 8647,
"name": "ADD",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP3",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP2",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "SUB",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP3",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "MSTORE",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP4",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP2",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP2",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "MLOAD",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP2",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "MSTORE",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 8618,
"end": 8647,
"name": "ADD",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "SWAP2",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "POP",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP1",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "MLOAD",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "SWAP1",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 8618,
"end": 8647,
"name": "ADD",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "SWAP1",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP1",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP4",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP4",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 8618,
"end": 8647,
"name": "tag",
"source": 0,
"value": "104"
},
{
"begin": 8618,
"end": 8647,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP4",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP2",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "LT",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "ISZERO",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "PUSH [tag]",
"source": 0,
"value": "106"
},
{
"begin": 8618,
"end": 8647,
"name": "JUMPI",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP1",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP3",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "ADD",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "MLOAD",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP2",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP5",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "ADD",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "MSTORE",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 8618,
"end": 8647,
"name": "DUP2",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "ADD",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "SWAP1",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "POP",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "PUSH [tag]",
"source": 0,
"value": "104"
},
{
"begin": 8618,
"end": 8647,
"name": "JUMP",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "tag",
"source": 0,
"value": "106"
},
{
"begin": 8618,
"end": 8647,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "POP",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "POP",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "POP",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "POP",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "SWAP1",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "POP",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "SWAP1",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP2",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "ADD",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "SWAP1",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 8618,
"end": 8647,
"name": "AND",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP1",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "ISZERO",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "PUSH [tag]",
"source": 0,
"value": "107"
},
{
"begin": 8618,
"end": 8647,
"name": "JUMPI",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP1",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP3",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "SUB",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP1",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "MLOAD",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 8618,
"end": 8647,
"name": "DUP4",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 8618,
"end": 8647,
"name": "SUB",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 8618,
"end": 8647,
"name": "EXP",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "SUB",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "NOT",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "AND",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP2",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "MSTORE",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 8618,
"end": 8647,
"name": "ADD",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "SWAP2",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "POP",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "tag",
"source": 0,
"value": "107"
},
{
"begin": 8618,
"end": 8647,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "POP",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "SWAP3",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "POP",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "POP",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "POP",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 8618,
"end": 8647,
"name": "MLOAD",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "DUP1",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "SWAP2",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "SUB",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "SWAP1",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "REVERT",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "tag",
"source": 0,
"value": "103"
},
{
"begin": 8618,
"end": 8647,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 8618,
"end": 8647,
"name": "POP",
"source": 0
},
{
"begin": 8669,
"end": 8670,
"name": "DUP3",
"source": 0
},
{
"begin": 8665,
"end": 8666,
"name": "DUP5",
"source": 0
},
{
"begin": 8665,
"end": 8670,
"name": "SUB",
"source": 0
},
{
"begin": 8658,
"end": 8670,
"name": "SWAP1",
"source": 0
},
{
"begin": 8658,
"end": 8670,
"name": "POP",
"source": 0
},
{
"begin": 8512,
"end": 8678,
"name": "SWAP4",
"source": 0
},
{
"begin": 8512,
"end": 8678,
"name": "SWAP3",
"source": 0
},
{
"begin": 8512,
"end": 8678,
"name": "POP",
"source": 0
},
{
"begin": 8512,
"end": 8678,
"name": "POP",
"source": 0
},
{
"begin": 8512,
"end": 8678,
"name": "POP",
"source": 0
},
{
"begin": 8512,
"end": 8678,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 5685,
"end": 5864,
"name": "tag",
"source": 0,
"value": "76"
},
{
"begin": 5685,
"end": 5864,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 5743,
"end": 5750,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 5763,
"end": 5772,
"name": "DUP1",
"source": 0
},
{
"begin": 5779,
"end": 5780,
"name": "DUP3",
"source": 0
},
{
"begin": 5775,
"end": 5776,
"name": "DUP5",
"source": 0
},
{
"begin": 5775,
"end": 5780,
"name": "ADD",
"source": 0
},
{
"begin": 5763,
"end": 5780,
"name": "SWAP1",
"source": 0
},
{
"begin": 5763,
"end": 5780,
"name": "POP",
"source": 0
},
{
"begin": 5804,
"end": 5805,
"name": "DUP4",
"source": 0
},
{
"begin": 5799,
"end": 5800,
"name": "DUP2",
"source": 0
},
{
"begin": 5799,
"end": 5805,
"name": "LT",
"source": 0
},
{
"begin": 5799,
"end": 5805,
"name": "ISZERO",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "PUSH [tag]",
"source": 0,
"value": "109"
},
{
"begin": 5791,
"end": 5837,
"name": "JUMPI",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 5791,
"end": 5837,
"name": "MLOAD",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "PUSH",
"source": 0,
"value": "8C379A000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 5791,
"end": 5837,
"name": "DUP2",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "MSTORE",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 5791,
"end": 5837,
"name": "ADD",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "DUP1",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "DUP1",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 5791,
"end": 5837,
"name": "ADD",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "DUP3",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "DUP2",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "SUB",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "DUP3",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "MSTORE",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "PUSH",
"source": 0,
"value": "1B"
},
{
"begin": 5791,
"end": 5837,
"name": "DUP2",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "MSTORE",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 5791,
"end": 5837,
"name": "ADD",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "DUP1",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "PUSH",
"source": 0,
"value": "536166654D6174683A206164646974696F6E206F766572666C6F770000000000"
},
{
"begin": 5791,
"end": 5837,
"name": "DUP2",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "MSTORE",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "POP",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 5791,
"end": 5837,
"name": "ADD",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "SWAP2",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "POP",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "POP",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 5791,
"end": 5837,
"name": "MLOAD",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "DUP1",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "SWAP2",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "SUB",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "SWAP1",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "REVERT",
"source": 0
},
{
"begin": 5791,
"end": 5837,
"name": "tag",
"source": 0,
"value": "109"
},
{
"begin": 5791,
"end": 5837,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 5855,
"end": 5856,
"name": "DUP1",
"source": 0
},
{
"begin": 5848,
"end": 5856,
"name": "SWAP2",
"source": 0
},
{
"begin": 5848,
"end": 5856,
"name": "POP",
"source": 0
},
{
"begin": 5848,
"end": 5856,
"name": "POP",
"source": 0
},
{
"begin": 5685,
"end": 5864,
"name": "SWAP3",
"source": 0
},
{
"begin": 5685,
"end": 5864,
"name": "SWAP2",
"source": 0
},
{
"begin": 5685,
"end": 5864,
"name": "POP",
"source": 0
},
{
"begin": 5685,
"end": 5864,
"name": "POP",
"source": 0
},
{
"begin": 5685,
"end": 5864,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 25117,
"end": 25209,
"name": "tag",
"source": 0,
"value": "99"
},
{
"begin": 25117,
"end": 25209,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 25117,
"end": 25209,
"name": "POP",
"source": 0
},
{
"begin": 25117,
"end": 25209,
"name": "POP",
"source": 0
},
{
"begin": 25117,
"end": 25209,
"name": "POP",
"source": 0
},
{
"begin": 25117,
"end": 25209,
"name": "JUMP",
"source": 0,
"value": "[out]"
}
],
".data": {
"24883CC5FE64ACE9D0DF1893501ECB93C77180F0FF69CCA79AFFB3C316DC8029": "45524332303a20617070726f766520746f20746865207a65726f2061646472657373",
"4107E8A8B9E94BF8FF83080DDEC1C0BFFE897EBC2241B89D44F66B3D274088B6": "45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365",
"557E210F7A69A685100A7E4E3D0A7024C546085CEE28910FD17D0B081D9516F": "45524332303a207472616e7366657220746f20746865207a65726f2061646472657373",
"974D1B4421DA69CC60B481194F0DAD36A5BB4E23DA810DA7A7FB30CDBA178330": "45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365",
"BAECC556B46F4ED0F2B4CB599D60785AC8563DD2DC0A5BF12EDEA1C39E5E1FEA": "45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373",
"C953F4879035ED60E766B34720F656AAB5C697B141D924C283124ECEDB91C208": "45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373",
"F8B476F7D28209D77D4A4AC1FE36B9F8259AA1BB6BDDFA6E89DE7E51615CF8A8": "45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f"
}
}
}
},
"methodIdentifiers": {
"allowance(address,address)": "dd62ed3e",
"approve(address,uint256)": "095ea7b3",
"balanceOf(address)": "70a08231",
"decimals()": "313ce567",
"decreaseAllowance(address,uint256)": "a457c2d7",
"increaseAllowance(address,uint256)": "39509351",
"name()": "06fdde03",
"symbol()": "95d89b41",
"totalSupply()": "18160ddd",
"transfer(address,uint256)": "a9059cbb",
"transferFrom(address,address,uint256)": "23b872dd"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. We have followed general OpenZeppelin guidelines: functions revert instead of returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}, initializes {decimals} with a default value of 18. To select a different value for {decimals}, use {_setupDecimals}. All three of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"immunefi/xx.sol\":\"ERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"immunefi/xx.sol\":{\"keccak256\":\"0x0237da454ff487d47f1302f0b833a28a4cedcb1c872e1a43c0646ec850ecccf7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aceee79175572ac8cc600b6735fa0d539878bab5f51df3b9753df96b0492e91d\",\"dweb:/ipfs/Qmc3HyoRRZUN6f6sRtPFm58FzyvgLPX7bL5pvNenQtiu2h\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 505,
"contract": "immunefi/xx.sol:ERC20",
"label": "_balances",
"offset": 0,
"slot": "0",
"type": "t_mapping(t_address,t_uint256)"
},
{
"astId": 511,
"contract": "immunefi/xx.sol:ERC20",
"label": "_allowances",
"offset": 0,
"slot": "1",
"type": "t_mapping(t_address,t_mapping(t_address,t_uint256))"
},
{
"astId": 513,
"contract": "immunefi/xx.sol:ERC20",
"label": "_totalSupply",
"offset": 0,
"slot": "2",
"type": "t_uint256"
},
{
"astId": 515,
"contract": "immunefi/xx.sol:ERC20",
"label": "_name",
"offset": 0,
"slot": "3",
"type": "t_string_storage"
},
{
"astId": 517,
"contract": "immunefi/xx.sol:ERC20",
"label": "_symbol",
"offset": 0,
"slot": "4",
"type": "t_string_storage"
},
{
"astId": 519,
"contract": "immunefi/xx.sol:ERC20",
"label": "_decimals",
"offset": 0,
"slot": "5",
"type": "t_uint8"
}
],
"types": {
"t_address": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
},
"t_mapping(t_address,t_mapping(t_address,t_uint256))": {
"encoding": "mapping",
"key": "t_address",
"label": "mapping(address => mapping(address => uint256))",
"numberOfBytes": "32",
"value": "t_mapping(t_address,t_uint256)"
},
"t_mapping(t_address,t_uint256)": {
"encoding": "mapping",
"key": "t_address",
"label": "mapping(address => uint256)",
"numberOfBytes": "32",
"value": "t_uint256"
},
"t_string_storage": {
"encoding": "bytes",
"label": "string",
"numberOfBytes": "32"
},
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
},
"t_uint8": {
"encoding": "inplace",
"label": "uint8",
"numberOfBytes": "1"
}
}
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"IERC20": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"details": "Interface of the ERC20 standard as defined in the EIP.",
"events": {
"Approval(address,address,uint256)": {
"details": "Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."
},
"Transfer(address,address,uint256)": {
"details": "Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."
}
},
"kind": "dev",
"methods": {
"allowance(address,address)": {
"details": "Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."
},
"approve(address,uint256)": {
"details": "Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."
},
"balanceOf(address)": {
"details": "Returns the amount of tokens owned by `account`."
},
"totalSupply()": {
"details": "Returns the amount of tokens in existence."
},
"transfer(address,uint256)": {
"details": "Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."
},
"transferFrom(address,address,uint256)": {
"details": "Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."
}
},
"version": 1
},
"evm": {
"assembly": "",
"bytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"legacyAssembly": null,
"methodIdentifiers": {
"allowance(address,address)": "dd62ed3e",
"approve(address,uint256)": "095ea7b3",
"balanceOf(address)": "70a08231",
"totalSupply()": "18160ddd",
"transfer(address,uint256)": "a9059cbb",
"transferFrom(address,address,uint256)": "23b872dd"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"immunefi/xx.sol\":\"IERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"immunefi/xx.sol\":{\"keccak256\":\"0x0237da454ff487d47f1302f0b833a28a4cedcb1c872e1a43c0646ec850ecccf7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aceee79175572ac8cc600b6735fa0d539878bab5f51df3b9753df96b0492e91d\",\"dweb:/ipfs/Qmc3HyoRRZUN6f6sRtPFm58FzyvgLPX7bL5pvNenQtiu2h\"]}},\"version\":1}",
"storageLayout": {
"storage": [],
"types": null
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"Ownable": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"details": "Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.",
"kind": "dev",
"methods": {
"constructor": {
"details": "Initializes the contract setting the deployer as the initial owner."
},
"owner()": {
"details": "Returns the address of the current owner."
},
"renounceOwnership()": {
"details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
},
"transferOwnership(address)": {
"details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
}
},
"version": 1
},
"evm": {
"assembly": "",
"bytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"legacyAssembly": null,
"methodIdentifiers": {
"owner()": "8da5cb5b",
"renounceOwnership()": "715018a6",
"transferOwnership(address)": "f2fde38b"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"immunefi/xx.sol\":\"Ownable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"immunefi/xx.sol\":{\"keccak256\":\"0x0237da454ff487d47f1302f0b833a28a4cedcb1c872e1a43c0646ec850ecccf7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aceee79175572ac8cc600b6735fa0d539878bab5f51df3b9753df96b0492e91d\",\"dweb:/ipfs/Qmc3HyoRRZUN6f6sRtPFm58FzyvgLPX7bL5pvNenQtiu2h\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 1501,
"contract": "immunefi/xx.sol:Ownable",
"label": "_owner",
"offset": 0,
"slot": "0",
"type": "t_address"
}
],
"types": {
"t_address": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
}
}
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"ReentrancyGuard": {
"abi": [],
"devdoc": {
"details": "Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].",
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": "",
"bytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"legacyAssembly": null,
"methodIdentifiers": {}
},
"metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Contract module that helps prevent reentrant calls to a function. Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier available, which can be applied to functions to make sure there are no nested (reentrant) calls to them. Note that because there is a single `nonReentrant` guard, functions marked as `nonReentrant` may not call one another. This can be worked around by making those functions `private`, and then adding `external` `nonReentrant` entry points to them. TIP: If you would like to learn more about reentrancy and alternative ways to protect against it, check out our blog post https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"immunefi/xx.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"immunefi/xx.sol\":{\"keccak256\":\"0x0237da454ff487d47f1302f0b833a28a4cedcb1c872e1a43c0646ec850ecccf7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aceee79175572ac8cc600b6735fa0d539878bab5f51df3b9753df96b0492e91d\",\"dweb:/ipfs/Qmc3HyoRRZUN6f6sRtPFm58FzyvgLPX7bL5pvNenQtiu2h\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 10,
"contract": "immunefi/xx.sol:ReentrancyGuard",
"label": "_status",
"offset": 0,
"slot": "0",
"type": "t_uint256"
}
],
"types": {
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
}
}
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"SafeERC20": {
"abi": [],
"devdoc": {
"details": "Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.",
"kind": "dev",
"methods": {},
"title": "SafeERC20",
"version": 1
},
"evm": {
"assembly": " /* \"immunefi/xx.sol\":33837:36998 library SafeERC20 {\r... */\n dataSize(sub_0)\n dataOffset(sub_0)\n 0x0b\n dup3\n dup3\n dup3\n codecopy\n dup1\n mload\n 0x00\n byte\n 0x73\n eq\n tag_1\n jumpi\n invalid\ntag_1:\n mstore(0x00, address)\n 0x73\n dup2\n mstore8\n dup3\n dup2\n return\nstop\n\nsub_0: assembly {\n /* \"immunefi/xx.sol\":33837:36998 library SafeERC20 {\r... */\n eq(address, deployTimeAddress())\n mstore(0x40, 0x80)\n 0x00\n dup1\n revert\n\n auxdata: 0xa2646970667358221220d1c749c4b621e9017fb261b511a58c6104dab9437e820612b83d312401347fc264736f6c634300060c0033\n}\n",
"bytecode": {
"linkReferences": {},
"object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d1c749c4b621e9017fb261b511a58c6104dab9437e820612b83d312401347fc264736f6c634300060c0033",
"opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD1 0xC7 0x49 0xC4 0xB6 0x21 0xE9 ADD PUSH32 0xB261B511A58C6104DAB9437E820612B83D312401347FC264736F6C634300060C STOP CALLER ",
"sourceMap": "33837:3161:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d1c749c4b621e9017fb261b511a58c6104dab9437e820612b83d312401347fc264736f6c634300060c0033",
"opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD1 0xC7 0x49 0xC4 0xB6 0x21 0xE9 ADD PUSH32 0xB261B511A58C6104DAB9437E820612B83D312401347FC264736F6C634300060C STOP CALLER ",
"sourceMap": "33837:3161:0:-:0;;;;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "17200",
"executionCost": "97",
"totalCost": "17297"
},
"internal": {
"_callOptionalReturn(contract IERC20,bytes memory)": "infinite",
"safeApprove(contract IERC20,address,uint256)": "infinite",
"safeDecreaseAllowance(contract IERC20,address,uint256)": "infinite",
"safeIncreaseAllowance(contract IERC20,address,uint256)": "infinite",
"safeTransfer(contract IERC20,address,uint256)": "infinite",
"safeTransferFrom(contract IERC20,address,address,uint256)": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 33837,
"end": 36998,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 33837,
"end": 36998,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 33837,
"end": 36998,
"name": "PUSH",
"source": 0,
"value": "B"
},
{
"begin": 33837,
"end": 36998,
"name": "DUP3",
"source": 0
},
{
"begin": 33837,
"end": 36998,
"name": "DUP3",
"source": 0
},
{
"begin": 33837,
"end": 36998,
"name": "DUP3",
"source": 0
},
{
"begin": 33837,
"end": 36998,
"name": "CODECOPY",
"source": 0
},
{
"begin": 33837,
"end": 36998,
"name": "DUP1",
"source": 0
},
{
"begin": 33837,
"end": 36998,
"name": "MLOAD",
"source": 0
},
{
"begin": 33837,
"end": 36998,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 33837,
"end": 36998,
"name": "BYTE",
"source": 0
},
{
"begin": 33837,
"end": 36998,
"name": "PUSH",
"source": 0,
"value": "73"
},
{
"begin": 33837,
"end": 36998,
"name": "EQ",
"source": 0
},
{
"begin": 33837,
"end": 36998,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 33837,
"end": 36998,
"name": "JUMPI",
"source": 0
},
{
"begin": 33837,
"end": 36998,
"name": "INVALID",
"source": 0
},
{
"begin": 33837,
"end": 36998,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 33837,
"end": 36998,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 33837,
"end": 36998,
"name": "ADDRESS",
"source": 0
},
{
"begin": 33837,
"end": 36998,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 33837,
"end": 36998,
"name": "MSTORE",
"source": 0
},
{
"begin": 33837,
"end": 36998,
"name": "PUSH",
"source": 0,
"value": "73"
},
{
"begin": 33837,
"end": 36998,
"name": "DUP2",
"source": 0
},
{
"begin": 33837,
"end": 36998,
"name": "MSTORE8",
"source": 0
},
{
"begin": 33837,
"end": 36998,
"name": "DUP3",
"source": 0
},
{
"begin": 33837,
"end": 36998,
"name": "DUP2",
"source": 0
},
{
"begin": 33837,
"end": 36998,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a2646970667358221220d1c749c4b621e9017fb261b511a58c6104dab9437e820612b83d312401347fc264736f6c634300060c0033",
".code": [
{
"begin": 33837,
"end": 36998,
"name": "PUSHDEPLOYADDRESS",
"source": 0
},
{
"begin": 33837,
"end": 36998,
"name": "ADDRESS",
"source": 0
},
{
"begin": 33837,
"end": 36998,
"name": "EQ",
"source": 0
},
{
"begin": 33837,
"end": 36998,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 33837,
"end": 36998,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 33837,
"end": 36998,
"name": "MSTORE",
"source": 0
},
{
"begin": 33837,
"end": 36998,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 33837,
"end": 36998,
"name": "DUP1",
"source": 0
},
{
"begin": 33837,
"end": 36998,
"name": "REVERT",
"source": 0
}
]
}
}
},
"methodIdentifiers": {}
},
"metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"immunefi/xx.sol\":\"SafeERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"immunefi/xx.sol\":{\"keccak256\":\"0x0237da454ff487d47f1302f0b833a28a4cedcb1c872e1a43c0646ec850ecccf7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aceee79175572ac8cc600b6735fa0d539878bab5f51df3b9753df96b0492e91d\",\"dweb:/ipfs/Qmc3HyoRRZUN6f6sRtPFm58FzyvgLPX7bL5pvNenQtiu2h\"]}},\"version\":1}",
"storageLayout": {
"storage": [],
"types": null
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"SafeMath": {
"abi": [],
"devdoc": {
"details": "Wrappers over Solidity's arithmetic operations with added overflow checks. Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.",
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"immunefi/xx.sol\":3558:10348 library SafeMath {\r... */\n dataSize(sub_0)\n dataOffset(sub_0)\n 0x0b\n dup3\n dup3\n dup3\n codecopy\n dup1\n mload\n 0x00\n byte\n 0x73\n eq\n tag_1\n jumpi\n invalid\ntag_1:\n mstore(0x00, address)\n 0x73\n dup2\n mstore8\n dup3\n dup2\n return\nstop\n\nsub_0: assembly {\n /* \"immunefi/xx.sol\":3558:10348 library SafeMath {\r... */\n eq(address, deployTimeAddress())\n mstore(0x40, 0x80)\n 0x00\n dup1\n revert\n\n auxdata: 0xa264697066735822122029ff4e4a4b97017c6b1a0a1dc2d7d710ad7266e3e1db3aea61817412e68b53aa64736f6c634300060c0033\n}\n",
"bytecode": {
"linkReferences": {},
"object": "60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122029ff4e4a4b97017c6b1a0a1dc2d7d710ad7266e3e1db3aea61817412e68b53aa64736f6c634300060c0033",
"opcodes": "PUSH1 0x56 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x29 SELFDESTRUCT 0x4E 0x4A 0x4B SWAP8 ADD PUSH29 0x6B1A0A1DC2D7D710AD7266E3E1DB3AEA61817412E68B53AA64736F6C63 NUMBER STOP MOD 0xC STOP CALLER ",
"sourceMap": "3558:6790:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122029ff4e4a4b97017c6b1a0a1dc2d7d710ad7266e3e1db3aea61817412e68b53aa64736f6c634300060c0033",
"opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x29 SELFDESTRUCT 0x4E 0x4A 0x4B SWAP8 ADD PUSH29 0x6B1A0A1DC2D7D710AD7266E3E1DB3AEA61817412E68B53AA64736F6C63 NUMBER STOP MOD 0xC STOP CALLER ",
"sourceMap": "3558:6790:0:-:0;;;;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "17200",
"executionCost": "97",
"totalCost": "17297"
},
"internal": {
"add(uint256,uint256)": "infinite",
"div(uint256,uint256)": "infinite",
"div(uint256,uint256,string memory)": "infinite",
"mod(uint256,uint256)": "infinite",
"mod(uint256,uint256,string memory)": "infinite",
"mul(uint256,uint256)": "infinite",
"sub(uint256,uint256)": "infinite",
"sub(uint256,uint256,string memory)": "infinite",
"tryAdd(uint256,uint256)": "infinite",
"tryDiv(uint256,uint256)": "infinite",
"tryMod(uint256,uint256)": "infinite",
"tryMul(uint256,uint256)": "infinite",
"trySub(uint256,uint256)": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 3558,
"end": 10348,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 3558,
"end": 10348,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 3558,
"end": 10348,
"name": "PUSH",
"source": 0,
"value": "B"
},
{
"begin": 3558,
"end": 10348,
"name": "DUP3",
"source": 0
},
{
"begin": 3558,
"end": 10348,
"name": "DUP3",
"source": 0
},
{
"begin": 3558,
"end": 10348,
"name": "DUP3",
"source": 0
},
{
"begin": 3558,
"end": 10348,
"name": "CODECOPY",
"source": 0
},
{
"begin": 3558,
"end": 10348,
"name": "DUP1",
"source": 0
},
{
"begin": 3558,
"end": 10348,
"name": "MLOAD",
"source": 0
},
{
"begin": 3558,
"end": 10348,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 3558,
"end": 10348,
"name": "BYTE",
"source": 0
},
{
"begin": 3558,
"end": 10348,
"name": "PUSH",
"source": 0,
"value": "73"
},
{
"begin": 3558,
"end": 10348,
"name": "EQ",
"source": 0
},
{
"begin": 3558,
"end": 10348,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 3558,
"end": 10348,
"name": "JUMPI",
"source": 0
},
{
"begin": 3558,
"end": 10348,
"name": "INVALID",
"source": 0
},
{
"begin": 3558,
"end": 10348,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 3558,
"end": 10348,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 3558,
"end": 10348,
"name": "ADDRESS",
"source": 0
},
{
"begin": 3558,
"end": 10348,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 3558,
"end": 10348,
"name": "MSTORE",
"source": 0
},
{
"begin": 3558,
"end": 10348,
"name": "PUSH",
"source": 0,
"value": "73"
},
{
"begin": 3558,
"end": 10348,
"name": "DUP2",
"source": 0
},
{
"begin": 3558,
"end": 10348,
"name": "MSTORE8",
"source": 0
},
{
"begin": 3558,
"end": 10348,
"name": "DUP3",
"source": 0
},
{
"begin": 3558,
"end": 10348,
"name": "DUP2",
"source": 0
},
{
"begin": 3558,
"end": 10348,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a264697066735822122029ff4e4a4b97017c6b1a0a1dc2d7d710ad7266e3e1db3aea61817412e68b53aa64736f6c634300060c0033",
".code": [
{
"begin": 3558,
"end": 10348,
"name": "PUSHDEPLOYADDRESS",
"source": 0
},
{
"begin": 3558,
"end": 10348,
"name": "ADDRESS",
"source": 0
},
{
"begin": 3558,
"end": 10348,
"name": "EQ",
"source": 0
},
{
"begin": 3558,
"end": 10348,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 3558,
"end": 10348,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 3558,
"end": 10348,
"name": "MSTORE",
"source": 0
},
{
"begin": 3558,
"end": 10348,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 3558,
"end": 10348,
"name": "DUP1",
"source": 0
},
{
"begin": 3558,
"end": 10348,
"name": "REVERT",
"source": 0
}
]
}
}
},
"methodIdentifiers": {}
},
"metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's arithmetic operations with added overflow checks. Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"immunefi/xx.sol\":\"SafeMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"immunefi/xx.sol\":{\"keccak256\":\"0x0237da454ff487d47f1302f0b833a28a4cedcb1c872e1a43c0646ec850ecccf7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aceee79175572ac8cc600b6735fa0d539878bab5f51df3b9753df96b0492e91d\",\"dweb:/ipfs/Qmc3HyoRRZUN6f6sRtPFm58FzyvgLPX7bL5pvNenQtiu2h\"]}},\"version\":1}",
"storageLayout": {
"storage": [],
"types": null
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"SmartCraftInitializable": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name":
View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment