5bec6672-f372-454f-a543-d5d68f803aec
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 31728 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 95791 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 95792 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 95793 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 95794 | capability.graph | complete | 1 / 3 | 1 week ago |
| 95795 | detector.run | complete | 1 / 3 | 1 week ago |
| 95796 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:503884] OpenAI Codex v0.77.0 (research preview)
[codex:503884] --------
[codex:503884] workdir: /tmp/codex-multi-fz88q3vi
[codex:503884] model: gpt-5.2-codex
[codex:503884] provider: openai
[codex:503884] approval: never
[codex:503884] sandbox: read-only
[codex:503884] reasoning effort: xhigh
[codex:503884] reasoning summaries: auto
[codex:503884] session id: 019b8f51-0941-78a2-b5aa-965734613a2d
[codex:503884] --------
[codex:503884] user
[codex:503884] You are a profit-focused exploit hunter analyzing EVM bytecode. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:503884]
[codex:503884] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:503884]
[codex:503884] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:503884] - Gas inefficiency, code quality, or best practices
[codex:503884] - Theoretical vulnerabilities without a clear extraction path
[codex:503884] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:503884] - Issues requiring social engineering or off-chain coordination
[codex:503884]
[codex:503884] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:503884] - CALL/DELEGATECALL with controllable destination or calldata
[codex:503884] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:503884] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:503884] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:503884] - External calls before state updates (reentrancy)
[codex:503884] - SELFDESTRUCT with controllable beneficiary
[codex:503884] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:503884]
[codex:503884] For each finding, you MUST explain:
[codex:503884] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:503884] 2. The concrete sequence of transactions to extract value
[codex:503884] 3. Why you believe this is exploitable (not just suspicious)
[codex:503884]
[codex:503884] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:503884] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:503884]
[codex:503884] Output MUST be valid JSON matching the provided schema.
[codex:503884] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:503884] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:503884] mcp startup: no servers
[codex:503884]
[codex:503884] thinking
[codex:503884] **Preparing to read instructions**
[codex:503884] exec
[codex:503884] /bin/bash -lc ls in /tmp/codex-multi-fz88q3vi succeeded in 20ms:
[codex:503884] BYTECODE_BUNDLE.txt
[codex:503884] codex-output-schema.json
[codex:503884] exec
[codex:503884] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-fz88q3vi succeeded in 6ms:
[codex:503884] Runtime bytecode bundle for best-effort auditing.
[codex:503884] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:503884]
[codex:503884] FILE: runtime_bytecode.hex
[codex:503884] 0x60806040526004361061022c5763ffffffff60e060020a60003504166306fdde038114610253578063095ea7b3146102dd57806318160ddd146103155780631dcea4271461033c57806321d800ec1461036d578063232a2c1d1461038557806323b872dd146103cb5780632b92490e146103f55780632bd0bb0514610416578063313ce5671461042e578063392e53cd146104595780633dd95d1b1461046e5780633e6968b6146104865780633f0a9f651461049b578063437764df146104b057806343b37dd3146104fa578063452f3ce01461050f5780634fb3fef71461052457806351c764e01461053c57806367eeba0c1461058157806369ffa08a1461059657806370a08231146105bd5780637ce3489b1461046e5780637fd6f15c146105de578063879ce676146105f35780638aa1949a1461060b5780638d068043146106205780638da5cb5b1461063557806395d89b411461064a578063994390891461065f578063997b8c2d146106745780639a454b99146106c15780639cb7595a146106d6578063a2a6ca2714610717578063a9059cbb1461072f578063acf5c68914610746578063b20d30a91461075e578063bf1fe42014610776578063c05676561461078e578063c6f6f216146107a6578063dd62ed3e146107be578063df0ad3de146107e5578063df25f3f0146107fa578063ea9f49681461080f578063f20151e114610827578063f2fde38b1461083f578063f968adbe14610860578063fe173b9714610875575b604080513481529051309133916000805160206131cb8339815191529181900360200190a3005b34801561025f57600080fd5b5061026861088a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102a257818101518382015260200161028a565b50505050905090810190601f1680156102cf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102e957600080fd5b50610301600160a060020a03600435166024356108c1565b604080519115158252519081900360200190f35b34801561032157600080fd5b5061032a610913565b60408051918252519081900360200190f35b34801561034857600080fd5b50610351610919565b60408051600160a060020a039092168252519081900360200190f35b34801561037957600080fd5b50610301600435610997565b34801561039157600080fd5b506103c96024600480358281019290820135918135808301929082013591604435808301929082013591606435918201910135610a60565b005b3480156103d757600080fd5b50610301600160a060020a03600435811690602435166044356108c1565b34801561040157600080fd5b506103c9600160a060020a0360043516610c1a565b34801561042257600080fd5b5061032a600435610c42565b34801561043a57600080fd5b50610443610cff565b6040805160ff9092168252519081900360200190f35b34801561046557600080fd5b50610301610d04565b34801561047a57600080fd5b506103c9600435610dbc565b34801561049257600080fd5b5061032a610e28565b3480156104a757600080fd5b5061032a610e31565b3480156104bc57600080fd5b506104c5610ee5565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b34801561050657600080fd5b5061032a610f88565b34801561051b57600080fd5b50610351610ffb565b34801561053057600080fd5b5061032a6004356110b9565b34801561054857600080fd5b50610301600160a060020a0360043581169060243581169060443590606435906084359060a4359060c4359060e4351661010435611134565b34801561058d57600080fd5b5061032a6117bf565b3480156105a257600080fd5b506103c9600160a060020a0360043581169060243516611832565b3480156105c957600080fd5b5061032a600160a060020a0360043516611871565b3480156105ea57600080fd5b5061032a61187e565b3480156105ff57600080fd5b506103016004356118f1565b34801561061757600080fd5b5061032a61193b565b34801561062c57600080fd5b5061032a6119ae565b34801561064157600080fd5b50610351611a26565b34801561065657600080fd5b50610268611a9a565b34801561066b57600080fd5b50610351611ad1565b34801561068057600080fd5b50610301600160a060020a0360043581169060243581169060443590606435906084359060a4359060c4359060e43581169061010435906101243516611b45565b3480156106cd57600080fd5b5061032a611b70565b3480156106e257600080fd5b506106eb611be3565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b34801561072357600080fd5b506103c9600435611bed565b610301600160a060020a0360043516602435611ce4565b34801561075257600080fd5b506103c9600435611e14565b34801561076a57600080fd5b506103c9600435611f23565b34801561078257600080fd5b506103c9600435612025565b34801561079a57600080fd5b5061032a600435612134565b3480156107b257600080fd5b506103c9600435612171565b3480156107ca57600080fd5b5061032a600160a060020a0360043581169060243516612212565b3480156107f157600080fd5b5061035161221a565b34801561080657600080fd5b5061032a61225a565b34801561081b57600080fd5b506103016004356122cd565b34801561083357600080fd5b506103c960043561231d565b34801561084b57600080fd5b506103c9600160a060020a03600435166123be565b34801561086c57600080fd5b5061032a6123f8565b34801561088157600080fd5b5061032a61246b565b60408051808201909152601381527f5468756e64657220577261707065642045544800000000000000000000000000602082015281565b6040805160e560020a62461bcd02815260206004820152600860248201527f72657665727465640000000000000000000000000000000000000000000000006044820152905160009181900360640190fd5b30315b90565b600030600160a060020a031663392e53cd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561095957600080fd5b505af115801561096d573d6000803e3d6000fd5b505050506040513d602081101561098357600080fd5b505115610991575030610916565b50600090565b6000600460008360405160200180807f72656c617965644d657373616765730000000000000000000000000000000000815250600f0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310610a1c5780518252601f1990920191602091820191016109fd565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205460ff1695945050505050565b600080600080610b3886868080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050508d8d808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508c8c808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508b8b8080602002602001604051908101604052809392919081815260200183836020028082843750610b339450611ad19350505050565b6124de565b610b7186868080601f0160208091040260200160405190810160405280939291908181526020018383808284375061274b945050505050565b92965090945092509050600160a060020a0381163014610b9057600080fd5b610b9982610997565b15610ba357600080fd5b610bae826001612791565b610bb88484612863565b1515610bc357600080fd5b60408051600160a060020a03861681526020810185905280820184905290517f4ab7d581336d92edbea22636a613e8e76c99ac7f91137c1523db38dbfb3bf3299181900360600190a1505050505050505050505050565b610c22611a26565b600160a060020a03163314610c3657600080fd5b610c3f816129ee565b50565b60008060008360405160200180807f746f74616c5370656e74506572446179000000000000000000000000000000008152506010018281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310610cbe5780518252601f199092019160209182019101610c9f565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205495945050505050565b601281565b60006004600060405160200180807f6973496e697469616c697a656400000000000000000000000000000000000000815250600d0190506040516020818303038152906040526040518082805190602001908083835b60208310610d795780518252601f199092019160209182019101610d5a565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205460ff16949350505050565b610dc4611a26565b600160a060020a03163314610dd857600080fd5b6040805160e560020a62461bcd02815260206004820152600a60248201527f6465707265636174656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b62015180420490565b600080600060405160200180807f7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000815250601a0190506040516020818303038152906040526040518082805190602001908083835b60208310610ea55780518252601f199092019160209182019101610e86565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528501959095529290920160002054949350505050565b600060405160200180807f6572632d746f2d6572632d636f72650000000000000000000000000000000000815250600f0190506040516020818303038152906040526040518082805190602001908083835b60208310610f565780518252601f199092019160209182019101610f37565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905090565b600080600060405160200180807f657865637574696f6e4461696c794c696d697400000000000000000000000000815250601301905060405160208183030381529060405260405180828051906020019080838360208310610ea55780518252601f199092019160209182019101610e86565b60006002600060405160200180807f66616c6c6261636b526563697069656e7400000000000000000000000000000081525060110190506040516020818303038152906040526040518082805190602001908083835b602083106110705780518252601f199092019160209182019101611051565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528501959095529290920160002054600160a060020a0316949350505050565b60008060008360405160200180807f746f74616c45786563757465645065724461790000000000000000000000000081525060130182815260200191505060405160208183030381529060405260405180828051906020019080838360208310610cbe5780518252601f199092019160209182019101610c9f565b600061113e610d04565b1561114857600080fd5b600160a060020a038a161580159061116457506111648a612ae0565b151561116f57600080fd5b87151561117b57600080fd5b6000871161118857600080fd5b84841061119457600080fd5b600160a060020a03831615156111a957600080fd5b6127108210611202576040805160e560020a62461bcd02815260206004820152601360248201527f496e76616c6964206665652070657263656e7400000000000000000000000000604482015290519081900360640190fd5b896002600060405160200180807f76616c696461746f72436f6e747261637400000000000000000000000000000081525060110190506040516020818303038152906040526040518082805190602001908083835b602083106112765780518252601f199092019160209182019101611257565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039590951694909417909355506112e791508a9050612ae8565b4360008060405160200180807f6465706c6f7965644174426c6f636b0000000000000000000000000000000000815250600f0190506040516020818303038152906040526040518082805190602001908083835b6020831061135a5780518252601f19909201916020918201910161133b565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000818401528151601a818303018152603a9091019182905280518c949384939182918401908083835b602083106114045780518252601f1990920191602091820191016113e5565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f6761735072696365000000000000000000000000000000000000000000000000818401528151600881830301815260289091019182905280518b949384939182918401908083835b602083106114ae5780518252601f19909201916020918201910161148f565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f6d61785065725478000000000000000000000000000000000000000000000000818401528151600881830301815260289091019182905280518a949384939182918401908083835b602083106115585780518252601f199092019160209182019101611539565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f657865637574696f6e4461696c794c696d6974000000000000000000000000008184015281516013818303018152603390910191829052805189949384939182918401908083835b602083106116025780518252601f1990920191602091820191016115e3565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f657865637574696f6e4d617850657254780000000000000000000000000000008184015281516011818303018152603190910191829052805188949384939182918401908083835b602083106116ac5780518252601f19909201916020918201910161168d565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f66656550657263656e7400000000000000000000000000000000000000000000818401528151600a818303018152602a90910191829052805186949384939182918401908083835b602083106117565780518252601f199092019160209182019101611737565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020939093555061179f9150849050612b82565b6117a96001612c40565b6117b1610d04565b9a9950505050505050505050565b600080600060405160200180807f6461696c794c696d697400000000000000000000000000000000000000000000815250600a01905060405160208183030381529060405260405180828051906020019080838360208310610ea55780518252601f199092019160209182019101610e86565b61183a61221a565b600160a060020a0316331461184e57600080fd5b600160a060020a038216151561186357600080fd5b61186d8282612d01565b5050565b600160a060020a03163190565b600080600060405160200180807f66656550657263656e7400000000000000000000000000000000000000000000815250600a01905060405160208183030381529060405260405180828051906020019080838360208310610ea55780518252601f199092019160209182019101610e86565b60008061191483611908611903610e28565b6110b9565b9063ffffffff612d4716565b90508061191f610f88565b10158015611934575061193061193b565b8311155b9392505050565b600080600060405160200180807f657865637574696f6e4d61785065725478000000000000000000000000000000815250601101905060405160208183030381529060405260405180828051906020019080838360208310610ea55780518252601f199092019160209182019101610e86565b60006119b8611ad1565b600160a060020a0316638d0680436040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156119f557600080fd5b505af1158015611a09573d6000803e3d6000fd5b505050506040513d6020811015611a1f57600080fd5b5051905090565b60006002600060405160200180807f6f776e65720000000000000000000000000000000000000000000000000000008152506005019050604051602081830303815290604052604051808280519060200190808383602083106110705780518252601f199092019160209182019101611051565b60408051808201909152600581527f5457455448000000000000000000000000000000000000000000000000000000602082015281565b60006002600060405160200180807f76616c696461746f72436f6e74726163740000000000000000000000000000008152506011019050604051602081830303815290604052604051808280519060200190808383602083106110705780518252601f199092019160209182019101611051565b6000611b50826129ee565b611b618b8b8b8b8b8b8b8b8b611134565b9b9a5050505050505050505050565b600080600060405160200180807f6465706c6f7965644174426c6f636b0000000000000000000000000000000000815250600f01905060405160208183030381529060405260405180828051906020019080838360208310610ea55780518252601f199092019160209182019101610e86565b6002806000909192565b611bf5611a26565b600160a060020a03163314611c0957600080fd5b611c116117bf565b81108015611c255750611c226123f8565b81105b1515611c3057600080fd5b8060008060405160200180807f6d696e506572547800000000000000000000000000000000000000000000000081525060080190506040516020818303038152906040526040518082805190602001908083835b60208310611ca35780518252601f199092019160209182019101611c84565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000209390935550505050565b6000600160a060020a0383163014611d6c576040805160e560020a62461bcd02815260206004820152602960248201527f746f2061646472657373206d75737420626520666f726569676e20627269646760448201527f6520616464726573730000000000000000000000000000000000000000000000606482015290519081900360840190fd5b348214611de9576040805160e560020a62461bcd02815260206004820152602760248201527f7472616e736665722076616c7565206d75737420657175616c20746f2065746860448201527f20616d6f756e7400000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b604080513481529051309133916000805160206131cb8339815191529181900360200190a392915050565b611e1c611a26565b600160a060020a03163314611e3057600080fd5b60008111611e3d57600080fd5b8060008060405160200180807f7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000815250601a0190506040516020818303038152906040526040518082805190602001908083835b60208310611eb05780518252601f199092019160209182019101611e91565b51815160001960209485036101000a019081169019919091161790526040805194909201849003909320865285830196909652509284016000209490945550815184815291517f4fb76205cd57c896b21511d2114137d8e901b4ccd659e1a0f97d6306795264fb9350918290030190a150565b611f2b611a26565b600160a060020a03163314611f3f57600080fd5b8060008060405160200180807f6461696c794c696d697400000000000000000000000000000000000000000000815250600a0190506040516020818303038152906040526040518082805190602001908083835b60208310611fb25780518252601f199092019160209182019101611f93565b51815160001960209485036101000a019081169019919091161790526040805194909201849003909320865285830196909652509284016000209490945550815184815291517fad4123ae17c414d9c6d2fec478b402e6b01856cc250fd01fbfd252fda0089d3c9350918290030190a150565b61202d611a26565b600160a060020a0316331461204157600080fd5b6000811161204e57600080fd5b8060008060405160200180807f676173507269636500000000000000000000000000000000000000000000000081525060080190506040516020818303038152906040526040518082805190602001908083835b602083106120c15780518252601f1990920191602091820191016120a2565b51815160001960209485036101000a019081169019919091161790526040805194909201849003909320865285830196909652509284016000209490945550815184815291517f52264b89e0fceafb26e79fd49ef8a366eb6297483bf4035b027f0c99a7ad512e9350918290030190a150565b60006127106119346121648261215861214b61187e565b879063ffffffff612d5616565b9063ffffffff612d8116565b849063ffffffff612d9816565b612179611a26565b600160a060020a0316331461218d57600080fd5b6121956117bf565b81106121a057600080fd5b8060008060405160200180807f6d61785065725478000000000000000000000000000000000000000000000000815250600801905060405160208183030381529060405260405180828051906020019080838360208310611ca35780518252601f199092019160209182019101611c84565b600092915050565b600030600160a060020a031663025313a26040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156119f557600080fd5b600080600060405160200180807f6d696e5065725478000000000000000000000000000000000000000000000000815250600801905060405160208183030381529060405260405180828051906020019080838360208310610ea55780518252601f199092019160209182019101610e86565b6000806122e4836119086122df610e28565b610c42565b9050806122ef6117bf565b1015801561230457506123006123f8565b8311155b8015611934575061231361225a565b9092101592915050565b612325611a26565b600160a060020a0316331461233957600080fd5b612341610f88565b811061234c57600080fd5b8060008060405160200180807f657865637574696f6e4d61785065725478000000000000000000000000000000815250601101905060405160208183030381529060405260405180828051906020019080838360208310611ca35780518252601f199092019160209182019101611c84565b6123c6611a26565b600160a060020a031633146123da57600080fd5b600160a060020a03811615156123ef57600080fd5b610c3f81612b82565b600080600060405160200180807f6d61785065725478000000000000000000000000000000000000000000000000815250600801905060405160208183030381529060405260405180828051906020019080838360208310610ea55780518252601f199092019160209182019101610e86565b600080600060405160200180807f6761735072696365000000000000000000000000000000000000000000000000815250600801905060405160208183030381529060405260405180828051906020019080838360208310610ea55780518252601f199092019160209182019101610e86565b60008060606000806124ef8a612daa565b15156124fa57600080fd5b85600160a060020a0316638d0680436040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561253857600080fd5b505af115801561254c573d6000803e3d6000fd5b505050506040513d602081101561256257600080fd5b5051895190955085111561257557600080fd5b61257e8a612dbe565b9350846040519080825280602002602001820160405280156125aa578160200160208202803883390190505b509250600091505b8482101561273f576001848a848151811015156125cb57fe5b906020019060200201518a858151811015156125e357fe5b906020019060200201518a868151811015156125fb57fe5b60209081029091018101516040805160008082528185018084529790975260ff9095168582015260608501939093526080840152905160a0808401949293601f19830193908390039091019190865af115801561265c573d6000803e3d6000fd5b50505060206040510351905085600160a060020a031663facd743b826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b1580156126c357600080fd5b505af11580156126d7573d6000803e3d6000fd5b505050506040513d60208110156126ed57600080fd5b505115156126fa57600080fd5b6127048382612f83565b1561270e57600080fd5b80838381518110151561271d57fe5b600160a060020a039092166020928302909101909101526001909101906125b2565b50505050505050505050565b60008060008061275a85612daa565b151561276557600080fd5b600160a060020a0360148601511693506034850151925060548501519150606885015190509193509193565b80600460008460405160200180807f72656c617965644d657373616765730000000000000000000000000000000000815250600f0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106128155780518252601f1990920191602091820191016127f6565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805460ff1916941515949094179093555050505050565b6000806128708484612fdc565b15156129b45761287e610ffb565b9050600160a060020a0381161515612906576040805160e560020a62461bcd02815260206004820152602360248201527f66616c6c6261636b20726563697069656e7420776173206e6f7420617373696760448201527f6e65640000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b604051600160a060020a0382169084156108fc029085906000818181858888f1935050505015801561293c573d6000803e3d6000fd5b5080600160a060020a031684600160a060020a03167f4b186bbb80392b9b4a5cdf5f78a4f6ecdb8da0082f37d2cf24a6885e9f61fbbe60405160405180910390a3604080518481529051600160a060020a0383169130916000805160206131cb8339815191529181900360200190a3600191506129e7565b604080518481529051600160a060020a0386169130916000805160206131cb8339815191529181900360200190a3600191505b5092915050565b600160a060020a0381161515612a0357600080fd5b806002600060405160200180807f66616c6c6261636b526563697069656e7400000000000000000000000000000081525060110190506040516020818303038152906040526040518082805190602001908083835b60208310612a775780518252601f199092019160209182019101612a58565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03959095169490941790935550505050565b6000903b1190565b600160a060020a03811615801590612b045750612b0481612ae0565b1515612b0f57600080fd5b806002600060405160200180807f6572633230746f6b656e00000000000000000000000000000000000000000000815250600a01905060405160208183030381529060405260405180828051906020019080838360208310612a775780518252601f199092019160209182019101612a58565b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0612bab611a26565b60408051600160a060020a03928316815291841660208301528051918290030190a1806002600060405160200180807f6f776e6572000000000000000000000000000000000000000000000000000000815250600501905060405160208183030381529060405260405180828051906020019080838360208310612a775780518252601f199092019160209182019101612a58565b806004600060405160200180807f6973496e697469616c697a656400000000000000000000000000000000000000815250600d0190506040516020818303038152906040526040518082805190602001908083835b60208310612cb45780518252601f199092019160209182019101612c95565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805460ff19169415159490941790935550505050565b612d0961221a565b600160a060020a03163314612d1d57600080fd5b612d25610919565b600160a060020a0383811691161415612d3d57600080fd5b61186d8282613009565b60008282018381101561193457fe5b600080831515612d6957600091506129e7565b50828202828482811515612d7957fe5b041461193457fe5b6000808284811515612d8f57fe5b04949350505050565b600082821115612da457fe5b50900390565b6000612db46131c5565b8251149050919050565b604080518082018252601a81527f19457468657265756d205369676e6564204d6573736167653a0a000000000000602080830191825283518085018552600381527f313034000000000000000000000000000000000000000000000000000000000081830152935183516000959385938593899391019182918083835b60208310612e5a5780518252601f199092019160209182019101612e3b565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b60208310612ea25780518252601f199092019160209182019101612e83565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b60208310612eea5780518252601f199092019160209182019101612ecb565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b60208310612f4f5780518252601f199092019160209182019101612f30565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120979650505050505050565b6000805b8351811015612fd25782600160a060020a03168482815181101515612fa857fe5b90602001906020020151600160a060020a03161415612fca57600191506129e7565b600101612f87565b5060009392505050565b604051600090600160a060020a0384169083156108fc0290849084818181858888f1979650505050505050565b60008061301461221a565b600160a060020a0316331461302857600080fd5b600160a060020a038316151561303d57600080fd5b600160a060020a038416151561308957604051600160a060020a03841690303180156108fc02916000818181858888f19350505050158015613083573d6000803e3d6000fd5b506131bf565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051859350600160a060020a038416916370a082319160248083019260209291908290030181600087803b1580156130ed57600080fd5b505af1158015613101573d6000803e3d6000fd5b505050506040513d602081101561311757600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301526024820184905291519293509084169163a9059cbb916044808201926020929091908290030181600087803b15801561318857600080fd5b505af115801561319c573d6000803e3d6000fd5b505050506040513d60208110156131b257600080fd5b505115156131bf57600080fd5b50505050565b6068905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582037dc3bfd2efd16ef5893d62ca6d6117961573d71dde151a49342055bb4cc869f0029
[codex:503884]
[codex:503884] thinking
[codex:503884] **Analyzing bytecode for exploits**
[codex:503884]
[codex:503884] I’m carefully inspecting the contract’s bytecode for any concrete exploit paths, focusing on unprotected token or ETH transfers, ownership changes, or self-destruct patterns. Since I only have the runtime bytecode and no state, I’m cautious about assuming initialization status or access controls, so I’m attempting to disassemble and parse the opcode sequences manually within read-only constraints.
[codex:503884] exec
[codex:503884] /bin/bash -lc "python - <<'PY'
[codex:503884] import re
[codex:503884] from pathlib import Path
[codex:503884] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:503884] # extract runtime bytecode after 'FILE: runtime_bytecode.hex'
[codex:503884] # find 0x...
[codex:503884] import sys
[codex:503884] m=re.search(r'0x[0-9a-fA-F]+', hexdata)
[codex:503884] if not m:
[codex:503884] print('no hex found'); sys.exit(1)
[codex:503884] hexstr=m.group(0)[2:]
[codex:503884] code=bytes.fromhex(hexstr)
[codex:503884] # disassemble minimal
[codex:503884] opnames={
[codex:503884] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:503884] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:503884] 0x20:'SHA3',
[codex:503884] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:503884] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:503884] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:503884] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:503884] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:503884] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:503884] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:503884] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:503884] }
[codex:503884]
[codex:503884] pcs=[]
[codex:503884] call_pcs=[]
[codex:503884] selfdestruct_pcs=[]
[codex:503884] code_len=len(code)
[codex:503884] pc=0
[codex:503884] while pc<code_len:
[codex:503884] op=code[pc]
[codex:503884] name=opnames.get(op,f'UNKNOWN_{op:02x}')
[codex:503884] pcs.append((pc,op,name))
[codex:503884] if op==0xf1 or op==0xf2 or op==0xf4:
[codex:503884] call_pcs.append((pc,op,name))
[codex:503884] if op==0xff:
[codex:503884] selfdestruct_pcs.append(pc)
[codex:503884] if 0x60<=op<=0x7f:
[codex:503884] pc+=1+(op-0x5f)
[codex:503884] else:
[codex:503884] pc+=1
[codex:503884]
[codex:503884] print('code length',code_len)
[codex:503884] print('CALL/DELEGATECALL/CALLCODE count',len(call_pcs))
[codex:503884] print('SELFDESTRUCT pcs',selfdestruct_pcs)
[codex:503884] # show first 20 call pcs
[codex:503884] for pc,op,name in call_pcs[:20]:
[codex:503884] print(hex(pc),name)
[codex:503884] # show last 10 call pcs
[codex:503884] print('last calls:')
[codex:503884] for pc,op,name in call_pcs[-10:]:
[codex:503884] print(hex(pc),name)
[codex:503884] PY" in /tmp/codex-multi-fz88q3vi succeeded in 45ms:
[codex:503884] code length 12822
[codex:503884] CALL/DELEGATECALL/CALLCODE count 12
[codex:503884] SELFDESTRUCT pcs []
[codex:503884] 0x95c CALL
[codex:503884] 0x19f8 CALL
[codex:503884] 0x253b CALL
[codex:503884] 0x264b CALL
[codex:503884] 0x26c6 CALL
[codex:503884] 0x2926 CALL
[codex:503884] 0x2ffe CALL
[codex:503884] 0x306d CALL
[codex:503884] 0x30f0 CALL
[codex:503884] 0x318b CALL
[codex:503884] 0x31cc CALLCODE
[codex:503884] 0x31de CALL
[codex:503884] last calls:
[codex:503884] 0x253b CALL
[codex:503884] 0x264b CALL
[codex:503884] 0x26c6 CALL
[codex:503884] 0x2926 CALL
[codex:503884]
[codex:503884] thinking
[codex:503884] **Analyzing CALLCODE instructions**
[codex:503884] exec
[codex:503884] /bin/bash -lc "python - <<'PY'
[codex:503884] import re
[codex:503884] from pathlib import Path
[codex:503884] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:503884] m=re.search(r'0x[0-9a-fA-F]+', hexdata)
[codex:503884] hexstr=m.group(0)[2:]
[codex:503884] code=bytes.fromhex(hexstr)
[codex:503884]
[codex:503884] opnames={
[codex:503884] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:503884] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:503884] 0x20:'SHA3',
[codex:503884] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:503884] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:503884] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:503884] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:503884] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:503884] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:503884] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:503884] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:503884] }
[codex:503884]
[codex:503884] # disassemble into list of (pc, op, name, imm)
[codex:503884] insts=[]
[codex:503884] pc=0
[codex:503884] while pc<len(code):
[codex:503884] op=code[pc]
[codex:503884] name=opnames.get(op,f'UNKNOWN_{op:02x}')
[codex:503884] imm=None
[codex:503884] if 0x60<=op<=0x7f:
[codex:503884] n=op-0x5f
[codex:503884] imm=code[pc+1:pc+1+n]
[codex:503884] insts.append((pc,op,name,imm))
[codex:503884] pc+=1+n
[codex:503884] else:
[codex:503884] insts.append((pc,op,name,imm))
[codex:503884] pc+=1
[codex:503884]
[codex:503884] # map pc to index
[codex:503884] pc_to_idx={pc:i for i,(pc,_,_,_) in enumerate(insts)}
[codex:503884]
[codex:503884] call_pcs=[pc for pc,op,_,_ in insts if op in (0xf1,0xf2,0xf4)]
[codex:503884] print('call pcs', [hex(pc) for pc in call_pcs])
[codex:503884]
[codex:503884] for pc in call_pcs:
[codex:503884] idx=pc_to_idx[pc]
[codex:503884] start=max(0,idx-10)
[codex:503884] end=min(len(insts),idx+10)
[codex:503884] print('\\n=== around',hex(pc),'===')
[codex:503884] for i in range(start,end):
[codex:503884] pc_i,op,name,imm=insts[i]
[codex:503884] if imm is None:
[codex:503884] imm_str=''
[codex:503884] else:
[codex:503884] imm_str=' 0x'+imm.hex()
[codex:503884] marker='>>' if pc_i==pc else ' '
[codex:503884] print(f\"{marker} {hex(pc_i):>6} {name}{imm_str}\")
[codex:503884] PY" in /tmp/codex-multi-fz88q3vi succeeded in 45ms:
[codex:503884] call pcs ['0x95c', '0x19f8', '0x253b', '0x264b', '0x26c6', '0x2926', '0x2ffe', '0x306d', '0x30f0', '0x318b', '0x31cc', '0x31de']
[codex:503884]
[codex:503884] === around 0x95c ===
[codex:503884] 0x94f DUP1
[codex:503884] 0x950 ISZERO
[codex:503884] 0x951 PUSH2 0x0959
[codex:503884] 0x954 JUMPI
[codex:503884] 0x955 PUSH1 0x00
[codex:503884] 0x957 DUP1
[codex:503884] 0x958 REVERT
[codex:503884] 0x959 JUMPDEST
[codex:503884] 0x95a POP
[codex:503884] 0x95b GAS
[codex:503884] >> 0x95c CALL
[codex:503884] 0x95d ISZERO
[codex:503884] 0x95e DUP1
[codex:503884] 0x95f ISZERO
[codex:503884] 0x960 PUSH2 0x096d
[codex:503884] 0x963 JUMPI
[codex:503884] 0x964 RETURNDATASIZE
[codex:503884]
[codex:503884] thinking
[codex:503884] **Preparing call analysis**
[codex:503884] exec
[codex:503884] /bin/bash -lc "python - <<'PY'
[codex:503884] import re
[codex:503884] from pathlib import Path
[codex:503884] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:503884] hexstr=re.search(r'0x[0-9a-fA-F]+', hexdata).group(0)[2:]
[codex:503884] code=bytes.fromhex(hexstr)
[codex:503884]
[codex:503884] opnames={
[codex:503884] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:503884] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:503884] 0x20:'SHA3',
[codex:503884] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:503884] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:503884] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:503884] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:503884] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:503884] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:503884] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:503884] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:503884] }
[codex:503884]
[codex:503884] insts=[]
[codex:503884] pc=0
[codex:503884] while pc<len(code):
[codex:503884] op=code[pc]
[codex:503884] name=opnames.get(op,f'UNKNOWN_{op:02x}')
[codex:503884] imm=None
[codex:503884] if 0x60<=op<=0x7f:
[codex:503884] n=op-0x5f
[codex:503884] imm=code[pc+1:pc+1+n]
[codex:503884] insts.append((pc,op,name,imm))
[codex:503884] pc+=1+n
[codex:503884] else:
[codex:503884] insts.append((pc,op,name,imm))
[codex:503884] pc+=1
[codex:503884]
[codex:503884] pc_to_idx={pc:i for i,(pc,_,_,_) in enumerate(insts)}
[codex:503884] call_pcs=[pc for pc,op,_,_ in insts if op in (0xf1,0xf2,0xf4)]
[codex:503884]
[codex:503884] for pc in call_pcs:
[codex:503884] if pc>=0x31c0: # skip metadata
[codex:503884] continue
[codex:503884] idx=pc_to_idx[pc]
[codex:503884] start=max(0,idx-40)
[codex:503884] end=min(len(insts),idx+10)
[codex:503884] print('\\n=== around',hex(pc),'===')
[codex:503884] for i in range(start,end):
[codex:503884] pc_i,op,name,imm=insts[i]
[codex:503884] if imm is None:
[codex:503884] imm_str=''
[codex:503884] else:
[codex:503884] imm_str=' 0x'+imm.hex()
[codex:503884] marker='>>' if pc_i==pc else ' '
[codex:503884] print(f\"{marker} {hex(pc_i):>6} {name}{imm_str}\")
[codex:503884] PY" in /tmp/codex-multi-fz88q3vi succeeded in 50ms:
[codex:503884]
[codex:503884] === around 0x95c ===
[codex:503884] 0x921 PUSH1 0x02
[codex:503884] 0x923 EXP
[codex:503884] 0x924 SUB
[codex:503884] 0x925 AND
[codex:503884] 0x926 PUSH4 0x392e53cd
[codex:503884] 0x92b PUSH1 0x40
[codex:503884] 0x92d MLOAD
[codex:503884] 0x92e DUP2
[codex:503884] 0x92f PUSH4 0xffffffff
[codex:503884] 0x934 AND
[codex:503884] 0x935 PUSH1 0xe0
[codex:503884] 0x937 PUSH1 0x02
[codex:503884] 0x939 EXP
[codex:503884] 0x93a MUL
[codex:503884] 0x93b DUP2
[codex:503884] 0x93c MSTORE
[codex:503884] 0x93d PUSH1 0x04
[codex:503884] 0x93f ADD
[codex:503884]
[codex:503884] thinking
[codex:503884] **Analyzing contract call patterns**
[codex:503884] exec
[codex:503884] /bin/bash -lc "python - <<'PY'
[codex:503884] import re
[codex:503884] from pathlib import Path
[codex:503884] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:503884] hexstr=re.search(r'0x[0-9a-fA-F]+', hexdata).group(0)[2:]
[codex:503884] code=bytes.fromhex(hexstr)
[codex:503884]
[codex:503884] opnames={
[codex:503884] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:503884] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:503884] 0x20:'SHA3',
[codex:503884] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:503884] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:503884] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:503884] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:503884] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:503884] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:503884] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:503884] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:503884] }
[codex:503884]
[codex:503884] insts=[]
[codex:503884] pc=0
[codex:503884] while pc<len(code):
[codex:503884] op=code[pc]
[codex:503884] name=opnames.get(op,f'UNKNOWN_{op:02x}')
[codex:503884] imm=None
[codex:503884] if 0x60<=op<=0x7f:
[codex:503884] n=op-0x5f
[codex:503884] imm=code[pc+1:pc+1+n]
[codex:503884] insts.append((pc,op,name,imm))
[codex:503884] pc+=1+n
[codex:503884] else:
[codex:503884] insts.append((pc,op,name,imm))
[codex:503884] pc+=1
[codex:503884]
[codex:503884] # find JUMPDEST at 0x3014? Actually search around 0x3000-0x31c0
[codex:503884] for start in [0x2f00,0x3000,0x3040,0x3080,0x30a0,0x30c0,0x30e0,0x3100,0x3120,0x3140,0x3160]:
[codex:503884] print('\\n-- region',hex(start))
[codex:503884] for pc,op,name,imm in insts:
[codex:503884] if start<=pc<start+0x60:
[codex:503884] imm_str='' if imm is None else ' 0x'+imm.hex()
[codex:503884] print(f\"{hex(pc):>6} {name}{imm_str}\")
[codex:503884] PY" in /tmp/codex-multi-fz88q3vi succeeded in 55ms:
[codex:503884]
[codex:503884] -- region 0x2f00
[codex:503884] 0x2f00 DUP3
[codex:503884] 0x2f01 OR
[codex:503884] 0x2f02 DUP6
[codex:503884] 0x2f03 MSTORE
[codex:503884] 0x2f04 POP
[codex:503884] 0x2f05 POP
[codex:503884] 0x2f06 POP
[codex:503884] 0x2f07 POP
[codex:503884] 0x2f08 POP
[codex:503884] 0x2f09 POP
[codex:503884] 0x2f0a SWAP1
[codex:503884] 0x2f0b POP
[codex:503884] 0x2f0c ADD
[codex:503884] 0x2f0d SWAP4
[codex:503884] 0x2f0e POP
[codex:503884] 0x2f0f POP
[codex:503884] 0x2f10 POP
[codex:503884] 0x2f11 POP
[codex:503884]
[codex:503884] thinking
[codex:503884] **Analyzing token and ETH transfer protections**
[codex:503884] exec
[codex:503884] /bin/bash -lc "python - <<'PY'
[codex:503884] import re
[codex:503884] from pathlib import Path
[codex:503884] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:503884] hexstr=re.search(r'0x[0-9a-fA-F]+', hexdata).group(0)[2:]
[codex:503884] code=bytes.fromhex(hexstr)
[codex:503884]
[codex:503884] opnames={
[codex:503884] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:503884] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:503884] 0x20:'SHA3',
[codex:503884] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:503884] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:503884] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:503884] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:503884] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:503884] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:503884] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:503884] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:503884] }
[codex:503884]
[codex:503884] insts=[]
[codex:503884] pc=0
[codex:503884] while pc<len(code):
[codex:503884] op=code[pc]
[codex:503884] name=opnames.get(op,f'UNKNOWN_{op:02x}')
[codex:503884] imm=None
[codex:503884] if 0x60<=op<=0x7f:
[codex:503884] n=op-0x5f
[codex:503884] imm=code[pc+1:pc+1+n]
[codex:503884] insts.append((pc,op,name,imm))
[codex:503884] pc+=1+n
[codex:503884] else:
[codex:503884] insts.append((pc,op,name,imm))
[codex:503884] pc+=1
[codex:503884]
[codex:503884] for start in [0x2860,0x2880,0x28a0,0x28c0,0x28e0,0x2900,0x2920,0x2940,0x2960,0x2980,0x29a0,0x29c0]:
[codex:503884] print('\\n-- region',hex(start))
[codex:503884] for pc,op,name,imm in insts:
[codex:503884] if start<=pc<start+0x60:
[codex:503884] imm_str='' if imm is None else ' 0x'+imm.hex()
[codex:503884] print(f\"{hex(pc):>6} {name}{imm_str}\")
[codex:503884] PY" in /tmp/codex-multi-fz88q3vi succeeded in 54ms:
[codex:503884]
[codex:503884] -- region 0x2860
[codex:503884] 0x2860 POP
[codex:503884] 0x2861 POP
[codex:503884] 0x2862 JUMP
[codex:503884] 0x2863 JUMPDEST
[codex:503884] 0x2864 PUSH1 0x00
[codex:503884] 0x2866 DUP1
[codex:503884] 0x2867 PUSH2 0x2870
[codex:503884] 0x286a DUP5
[codex:503884] 0x286b DUP5
[codex:503884] 0x286c PUSH2 0x2fdc
[codex:503884] 0x286f JUMP
[codex:503884] 0x2870 JUMPDEST
[codex:503884] 0x2871 ISZERO
[codex:503884] 0x2872 ISZERO
[codex:503884] 0x2873 PUSH2 0x29b4
[codex:503884] 0x2876 JUMPI
[codex:503884] 0x2877 PUSH2 0x287e
[codex:503884] 0x287a PUSH2 0x0ffb
[codex:503884]
[codex:503884] thinking
[codex:503884] **Analyzing fallbackRecipient access control**
[codex:503884] exec
[codex:503884] /bin/bash -lc "python - <<'PY'
[codex:503884] import re
[codex:503884] from pathlib import Path
[codex:503884] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:503884] hexstr=re.search(r'0x[0-9a-fA-F]+', hexdata).group(0)[2:]
[codex:503884] code=bytes.fromhex(hexstr)
[codex:503884]
[codex:503884] opnames={
[codex:503884] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:503884] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:503884] 0x20:'SHA3',
[codex:503884] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:503884] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:503884] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:503884] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:503884] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:503884] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:503884] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:503884] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:503884] }
[codex:503884]
[codex:503884] # disassemble
[codex:503884] insts=[]
[codex:503884] pc=0
[codex:503884] while pc<len(code):
[codex:503884] op=code[pc]
[codex:503884] name=opnames.get(op,f'UNKNOWN_{op:02x}')
[codex:503884] imm=None
[codex:503884] if 0x60<=op<=0x7f:
[codex:503884] n=op-0x5f
[codex:503884] imm=code[pc+1:pc+1+n]
[codex:503884] insts.append((pc,op,name,imm))
[codex:503884] pc+=1+n
[codex:503884] else:
[codex:503884] insts.append((pc,op,name,imm))
[codex:503884] pc+=1
[codex:503884]
[codex:503884] # find sequences CALLER EQ or CALLER == ...
[codex:503884] for i in range(len(insts)-4):
[codex:503884] if insts[i][2]=='CALLER':
[codex:503884] # look ahead for EQ in next few instructions
[codex:503884] seq=insts[i:i+6]
[codex:503884] names=[s[2] for s in seq]
[codex:503884] if 'EQ' in names or 'ISZERO' in names:
[codex:503884] print('CALLER at',hex(insts[i][0]), 'seq', [f\"{n}{'' if s[3] is None else ' '+s[3].hex()}\" for s,n,s in zip(seq,[x[2] for x in seq],seq)])
[codex:503884] # print 10 around
[codex:503884] start=max(0,i-5); end=min(len(insts),i+8)
[codex:503884] for j in range(start,end):
[codex:503884] pc,op,name,imm=insts[j]
[codex:503884] imm_str='' if imm is None else ' 0x'+imm.hex()
[codex:503884] marker='>>' if j==i else ' '
[codex:503884] print(f\"{marker} {hex(pc):>6} {name}{imm_str}\")
[codex:503884] print('---')
[codex:503884] PY" in /tmp/codex-multi-fz88q3vi succeeded in 36ms:
[codex:503884] CALLER at 0xc2c seq ['CALLER', 'EQ', 'PUSH2 0c36', 'JUMPI', 'PUSH1 00', 'DUP1']
[codex:503884] 0xc25 PUSH1 0xa0
[codex:503884] 0xc27 PUSH1 0x02
[codex:503884] 0xc29 EXP
[codex:503884] 0xc2a SUB
[codex:503884] 0xc2b AND
[codex:503884] >> 0xc2c CALLER
[codex:503884] 0xc2d EQ
[codex:503884] 0xc2e PUSH2 0x0c36
[codex:503884] 0xc31 JUMPI
[codex:503884] 0xc32 PUSH1 0x00
[codex:503884] 0xc34 DUP1
[codex:503884] 0xc35 REVERT
[codex:503884] 0xc36 JUMPDEST
[codex:503884] ---
[codex:503884] CALLER at 0xdce seq ['CALLER', 'EQ', 'PUSH2 0dd8', 'JUMPI', 'PUSH1 00', 'DUP1']
[codex:503884] 0xdc7 PUSH1 0xa0
[codex:503884] 0xdc9 PUSH1 0x02
[codex:503884] 0xdcb EXP
[codex:503884] 0xdcc SUB
[codex:503884]
[codex:503884] thinking
[codex:503884] **Analyzing access controls and reentrancy risks**
[codex:503884] exec
[codex:503884] /bin/bash -lc "python - <<'PY'
[codex:503884] import re
[codex:503884] from pathlib import Path
[codex:503884] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:503884] hexstr=re.search(r'0x[0-9a-fA-F]+', hexdata).group(0)[2:]
[codex:503884] code=bytes.fromhex(hexstr)
[codex:503884]
[codex:503884] opnames={
[codex:503884] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:503884] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:503884] 0x20:'SHA3',
[codex:503884] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:503884] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:503884] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:503884] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:503884] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:503884] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:503884] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:503884] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:503884] }
[codex:503884]
[codex:503884] insts=[]
[codex:503884] pc=0
[codex:503884] while pc<len(code):
[codex:503884] op=code[pc]
[codex:503884] name=opnames.get(op,f'UNKNOWN_{op:02x}')
[codex:503884] imm=None
[codex:503884] if 0x60<=op<=0x7f:
[codex:503884] n=op-0x5f
[codex:503884] imm=code[pc+1:pc+1+n]
[codex:503884] insts.append((pc,op,name,imm))
[codex:503884] pc+=1+n
[codex:503884] else:
[codex:503884] insts.append((pc,op,name,imm))
[codex:503884] pc+=1
[codex:503884]
[codex:503884] # find selector->jumpdest patterns in early part (pc < 0x250)
[codex:503884] sel_map={}
[codex:503884] for i in range(len(insts)-4):
[codex:503884] pc,op,name,imm=insts[i]
[codex:503884] if pc>0x260: # only early dispatch region
[codex:503884] break
[codex:503884] if name=='PUSH4':
[codex:503884] # expecting PUSH4 <sel> , EQ , PUSH2 <addr> , JUMPI
[codex:503884] if insts[i+1][2]=='EQ' and insts[i+2][2]=='PUSH2' and insts[i+3][2]=='JUMPI':
[codex:503884] sel=imm.hex()
[codex:503884] addr=insts[i+2][3].hex()
[codex:503884] sel_map[sel]=int(addr,16)
[codex:503884]
[codex:503884] # print mapping sorted by addr
[codex:503884] for sel,addr in sorted(sel_map.items(), key=lambda x:x[1]):
[codex:503884] print(f\"0x{sel} -> 0x{addr:04x}\")
[codex:503884] PY" in /tmp/codex-multi-fz88q3vi succeeded in 43ms:
[codex:503884] 0x095ea7b3 -> 0x02dd
[codex:503884] 0x18160ddd -> 0x0315
[codex:503884] 0x1dcea427 -> 0x033c
[codex:503884] 0x21d800ec -> 0x036d
[codex:503884] 0x232a2c1d -> 0x0385
[codex:503884] 0x23b872dd -> 0x03cb
[codex:503884] 0x2b92490e -> 0x03f5
[codex:503884] 0x2bd0bb05 -> 0x0416
[codex:503884] 0x313ce567 -> 0x042e
[codex:503884] 0x392e53cd -> 0x0459
[codex:503884] 0x3dd95d1b -> 0x046e
[codex:503884] 0x7ce3489b -> 0x046e
[codex:503884] 0x3e6968b6 -> 0x0486
[codex:503884] 0x3f0a9f65 -> 0x049b
[codex:503884] 0x437764df -> 0x04b0
[codex:503884] 0x43b37dd3 -> 0x04fa
[codex:503884] 0x452f3ce0 -> 0x050f
[codex:503884] 0x4fb3fef7 -> 0x0524
[codex:503884] 0x51c764e0 -> 0x053c
[codex:503884] 0x67eeba0c -> 0x0581
[codex:503884]
[codex:503884] thinking
[codex:503884] **Analyzing function entry mappings and external calls**
[codex:503884] exec
[codex:503884] /bin/bash -lc "python - <<'PY'
[codex:503884] import re
[codex:503884] from pathlib import Path
[codex:503884] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:503884] hexstr=re.search(r'0x[0-9a-fA-F]+', hexdata).group(0)[2:]
[codex:503884] code=bytes.fromhex(hexstr)
[codex:503884]
[codex:503884] opnames={
[codex:503884] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:503884] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:503884] 0x20:'SHA3',
[codex:503884] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:503884] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:503884] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:503884] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:503884] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:503884] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:503884] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:503884] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:503884] }
[codex:503884]
[codex:503884] insts=[]
[codex:503884] pc=0
[codex:503884] while pc<len(code):
[codex:503884] op=code[pc]
[codex:503884] name=opnames.get(op,f'UNKNOWN_{op:02x}')
[codex:503884] imm=None
[codex:503884] if 0x60<=op<=0x7f:
[codex:503884] n=op-0x5f
[codex:503884] imm=code[pc+1:pc+1+n]
[codex:503884] insts.append((pc,op,name,imm))
[codex:503884] pc+=1+n
[codex:503884] else:
[codex:503884] insts.append((pc,op,name,imm))
[codex:503884] pc+=1
[codex:503884]
[codex:503884] balance_pcs=[pc for pc,op,_,_ in insts if op==0x31]
[codex:503884] print('BALANCE pcs', [hex(pc) for pc in balance_pcs])
[codex:503884] for pc in balance_pcs:
[codex:503884] idx={p:i for i,(p,_,_,_) in enumerate(insts)}[pc]
[codex:503884] start=max(0,idx-5); end=min(len(insts),idx+10)
[codex:503884] print('\\nAround',hex(pc))
[codex:503884] for j in range(start,end):
[codex:503884] pc2,op,name,imm=insts[j]
[codex:503884] imm_str='' if imm is None else ' 0x'+imm.hex()
[codex:503884] mark='>>' if pc2==pc else ' '
[codex:503884] print(f\"{mark} {hex(pc2):>6} {name}{imm_str}\")
[codex:503884] PY" in /tmp/codex-multi-fz88q3vi succeeded in 48ms:
[codex:503884] BALANCE pcs ['0x915', '0x187b', '0x305d']
[codex:503884]
[codex:503884] Around 0x915
[codex:503884] 0x910 ADD
[codex:503884] 0x911 SWAP1
[codex:503884] 0x912 REVERT
[codex:503884] 0x913 JUMPDEST
[codex:503884] 0x914 ADDRESS
[codex:503884] >> 0x915 BALANCE
[codex:503884] 0x916 JUMPDEST
[codex:503884] 0x917 SWAP1
[codex:503884] 0x918 JUMP
[codex:503884] 0x919 JUMPDEST
[codex:503884] 0x91a PUSH1 0x00
[codex:503884] 0x91c ADDRESS
[codex:503884] 0x91d PUSH1 0x01
[codex:503884] 0x91f PUSH1 0xa0
[codex:503884] 0x921 PUSH1 0x02
[codex:503884]
[codex:503884] Around 0x187b
[codex:503884]
[codex:503884] thinking
[codex:503884] **Examining signature verification and call sites**
[codex:503884] exec
[codex:503884] /bin/bash -lc "python - <<'PY'
[codex:503884] import re
[codex:503884] from pathlib import Path
[codex:503884] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:503884] hexstr=re.search(r'0x[0-9a-fA-F]+', hexdata).group(0)[2:]
[codex:503884] code=bytes.fromhex(hexstr)
[codex:503884]
[codex:503884] opnames={
[codex:503884] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:503884] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:503884] 0x20:'SHA3',
[codex:503884] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:503884] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:503884] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:503884] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:503884] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:503884] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:503884] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:503884] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:503884] }
[codex:503884]
[codex:503884] insts=[]
[codex:503884] pc=0
[codex:503884] while pc<len(code):
[codex:503884] op=code[pc]
[codex:503884] name=opnames.get(op,f'UNKNOWN_{op:02x}')
[codex:503884] imm=None
[codex:503884] if 0x60<=op<=0x7f:
[codex:503884] n=op-0x5f
[codex:503884] imm=code[pc+1:pc+1+n]
[codex:503884] insts.append((pc,op,name,imm))
[codex:503884] pc+=1+n
[codex:503884] else:
[codex:503884] insts.append((pc,op,name,imm))
[codex:503884] pc+=1
[codex:503884]
[codex:503884] # print region around 0x2600-0x2680
[codex:503884] for start in [0x25c0,0x25e0,0x2600,0x2620,0x2640,0x2660,0x2680]:
[codex:503884] print('\\n-- region',hex(start))
[codex:503884] for pc,op,name,imm in insts:
[codex:503884] if start<=pc<start+0x60:
[codex:503884] imm_str='' if imm is None else ' 0x'+imm.hex()
[codex:503884] print(f\"{hex(pc):>6} {name}{imm_str}\")
[codex:503884] PY" in /tmp/codex-multi-fz88q3vi succeeded in 50ms:
[codex:503884]
[codex:503884] -- region 0x25c0
[codex:503884] 0x25c0 DUP2
[codex:503884] 0x25c1 MLOAD
[codex:503884] 0x25c2 DUP2
[codex:503884] 0x25c3 LT
[codex:503884] 0x25c4 ISZERO
[codex:503884] 0x25c5 ISZERO
[codex:503884] 0x25c6 PUSH2 0x25cb
[codex:503884] 0x25c9 JUMPI
[codex:503884] 0x25ca INVALID
[codex:503884] 0x25cb JUMPDEST
[codex:503884] 0x25cc SWAP1
[codex:503884] 0x25cd PUSH1 0x20
[codex:503884] 0x25cf ADD
[codex:503884] 0x25d0 SWAP1
[codex:503884] 0x25d1 PUSH1 0x20
[codex:503884] 0x25d3 MUL
[codex:503884] 0x25d4 ADD
[codex:503884] 0x25d5 MLOAD
[codex:503884]
[codex:503884] thinking
[codex:503884] **Analyzing signature verification and reentrancy risks**
[codex:503884]
[codex:503884] I'm piecing together that the call at 0x264b likely invokes `ecrecover` to recover signers, followed by a call to `isValidator` on the validator contract to confirm validity. I'm curious if the signature verification properly checks for uniqueness to prevent threshold bypass, and especially if the contract is vulnerable to reentrancy attacks by updating the `relayedMessages` state after external calls, which could allow double withdrawals if an attacker controls valid signatures and triggers reentry. I'll look for storage updates (`SSTORE`) around critical call points to verify state update order.
[codex:503884] exec
[codex:503884] /bin/bash -lc "python - <<'PY'
[codex:503884] import re
[codex:503884] from pathlib import Path
[codex:503884] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:503884] hexstr=re.search(r'0x[0-9a-fA-F]+', hexdata).group(0)[2:]
[codex:503884] code=bytes.fromhex(hexstr)
[codex:503884]
[codex:503884] opnames={
[codex:503884] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:503884] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:503884] 0x20:'SHA3',
[codex:503884] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:503884] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:503884] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:503884] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:503884] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:503884] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:503884] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:503884] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:503884] }
[codex:503884]
[codex:503884] insts=[]
[codex:503884] pc=0
[codex:503884] while pc<len(code):
[codex:503884] op=code[pc]
[codex:503884] name=opnames.get(op,f'UNKNOWN_{op:02x}')
[codex:503884] imm=None
[codex:503884] if 0x60<=op<=0x7f:
[codex:503884] n=op-0x5f
[codex:503884] imm=code[pc+1:pc+1+n]
[codex:503884] insts.append((pc,op,name,imm))
[codex:503884] pc+=1+n
[codex:503884] else:
[codex:503884] insts.append((pc,op,name,imm))
[codex:503884] pc+=1
[codex:503884]
[codex:503884] # find sstore pcs
[codex:503884] sstore_pcs=[pc for pc,op,_,_ in insts if op==0x55]
[codex:503884] print('SSTORE count',len(sstore_pcs))
[codex:503884] # show sstore near 0x2900-0x2980
[codex:503884] for pc in sstore_pcs:
[codex:503884] if 0x2800<=pc<=0x2a00:
[codex:503884] print('SSTORE at',hex(pc))
[codex:503884] idx={p:i for i,(p,_,_,_) in enumerate(insts)}[pc]
[codex:503884] start=max(0,idx-5); end=min(len(insts),idx+6)
[codex:503884] for j in range(start,end):
[codex:503884] pc2,op,name,imm=insts[j]
[codex:503884] imm_str='' if imm is None else ' 0x'+imm.hex()
[codex:503884] print(f\" {hex(pc2):>6} {name}{imm_str}\")
[codex:503884] PY" in /tmp/codex-multi-fz88q3vi succeeded in 41ms:
[codex:503884] SSTORE count 15
[codex:503884] SSTORE at 0x285c
[codex:503884] 0x2857 SWAP1
[codex:503884] 0x2858 SWAP5
[codex:503884] 0x2859 OR
[codex:503884] 0x285a SWAP1
[codex:503884] 0x285b SWAP4
[codex:503884] 0x285c SSTORE
[codex:503884] 0x285d POP
[codex:503884] 0x285e POP
[codex:503884] 0x285f POP
[codex:503884] 0x2860 POP
[codex:503884] 0x2861 POP
[codex:503884]
[codex:503884] thinking
[codex:503884] **Analyzing bytecode for exploits**
[codex:503884]
[codex:503884] I’m carefully checking call and storage instructions to see if there’s any reentrancy or unauthorized token minting. The evidence points toward good practices like updating state before external calls and owner-only restrictions on sensitive methods. While there's a public initializer that could be risky if uncalled, I can’t confirm a concrete exploit from bytecode alone, so I’m preparing a no-findings report in JSON.
[codex:503884] codex
[codex:503884] {"no_findings":true,"summary":"Completed bytecode review; external calls appear view-only or owner/validator-gated with state updates before value transfer, and there are no delegatecall/selfdestruct or unprotected value-transfer paths. No concrete exploitable profit path is evident from bytecode alone.","findings":[]}
[codex:503884] tokens used
[codex:503884] 114,948
[codex:503884] {"no_findings":true,"summary":"Completed bytecode review; external calls appear view-only or owner/validator-gated with state updates before value transfer, and there are no delegatecall/selfdestruct or unprotected value-transfer paths. No concrete exploitable profit path is evident from bytecode alone.","findings":[]}
{
"codex": {
"ran_at": "2026-01-05T18:08:58.859444+00:00",
"returncode": 0
},
"summary": "Completed bytecode review; external calls appear view-only or owner/validator-gated with state updates before value transfer, and there are no delegatecall/selfdestruct or unprotected value-transfer paths. No concrete exploitable profit path is evident from bytecode alone.",
"raw_final": {
"summary": "Completed bytecode review; external calls appear view-only or owner/validator-gated with state updates before value transfer, and there are no delegatecall/selfdestruct or unprotected value-transfer paths. No concrete exploitable profit path is evident from bytecode alone.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x022c 0000000c: JUMPI 0000000d: PUSH4 0xffffffff 00000012: PUSH1 0xe0 00000014: PUSH1 0x02 00000016: EXP 00000017: PUSH1 0x00 00000019: CALLDATALOAD 0000001a: DIV 0000001b: AND 0000001c: PUSH4 0x06fdde03 00000021: DUP2 00000022: EQ 00000023: PUSH2 0x0253 00000026: JUMPI 00000027: DUP1 00000028: PUSH4 0x095ea7b3 0000002d: EQ 0000002e: PUSH2 0x02dd 00000031: JUMPI 00000032: DUP1 00000033: PUSH4 0x18160ddd 00000038: EQ 00000039: PUSH2 0x0315 0000003c: JUMPI 0000003d: DUP1 0000003e: PUSH4 0x1dcea427 00000043: EQ 00000044: PUSH2 0x033c 00000047: JUMPI 00000048: DUP1 00000049: PUSH4 0x21d800ec 0000004e: EQ 0000004f: PUSH2 0x036d 00000052: JUMPI 00000053: DUP1 00000054: PUSH4 0x232a2c1d 00000059: EQ 0000005a: PUSH2 0x0385 0000005d: JUMPI 0000005e: DUP1 0000005f: PUSH4 0x23b872dd 00000064: EQ 00000065: PUSH2 0x03cb 00000068: JUMPI 00000069: DUP1 0000006a: PUSH4 0x2b92490e 0000006f: EQ 00000070: PUSH2 0x03f5 00000073: JUMPI 00000074: DUP1 00000075: PUSH4 0x2bd0bb05 0000007a: EQ 0000007b: PUSH2 0x0416 0000007e: JUMPI 0000007f: DUP1 00000080: PUSH4 0x313ce567 00000085: EQ 00000086: PUSH2 0x042e 00000089: JUMPI 0000008a: DUP1 0000008b: PUSH4 0x392e53cd 00000090: EQ 00000091: PUSH2 0x0459 00000094: JUMPI 00000095: DUP1 00000096: PUSH4 0x3dd95d1b 0000009b: EQ 0000009c: PUSH2 0x046e 0000009f: JUMPI 000000a0: DUP1 000000a1: PUSH4 0x3e6968b6 000000a6: EQ 000000a7: PUSH2 0x0486 000000aa: JUMPI 000000ab: DUP1 000000ac: PUSH4 0x3f0a9f65 000000b1: EQ 000000b2: PUSH2 0x049b 000000b5: JUMPI 000000b6: DUP1 000000b7: PUSH4 0x437764df 000000bc: EQ 000000bd: PUSH2 0x04b0 000000c0: JUMPI 000000c1: DUP1 000000c2: PUSH4 0x43b37dd3 000000c7: EQ 000000c8: PUSH2 0x04fa 000000cb: JUMPI 000000cc: DUP1 000000cd: PUSH4 0x452f3ce0 000000d2: EQ 000000d3: PUSH2 0x050f 000000d6: JUMPI 000000d7: DUP1 000000d8: PUSH4 0x4fb3fef7 000000dd: EQ 000000de: PUSH2 0x0524 000000e1: JUMPI 000000e2: DUP1 000000e3: PUSH4 0x51c764e0 000000e8: EQ 000000e9: PUSH2 0x053c 000000ec: JUMPI 000000ed: DUP1 000000ee: PUSH4 0x67eeba0c 000000f3: EQ 000000f4: PUSH2 0x0581 000000f7: JUMPI 000000f8: DUP1 000000f9: PUSH4 0x69ffa08a 000000fe: EQ 000000ff: PUSH2 0x0596 00000102: JUMPI 00000103: DUP1 00000104: PUSH4 0x70a08231 00000109: EQ 0000010a: PUSH2 0x05bd 0000010d: JUMPI 0000010e: DUP1 0000010f: PUSH4 0x7ce3489b 00000114: EQ 00000115: PUSH2 0x046e 00000118: JUMPI 00000119: DUP1 0000011a: PUSH4 0x7fd6f15c 0000011f: EQ 00000120: PUSH2 0x05de 00000123: JUMPI 00000124: DUP1 00000125: PUSH4 0x879ce676 0000012a: EQ 0000012b: PUSH2 0x05f3 0000012e: JUMPI 0000012f: DUP1 00000130: PUSH4 0x8aa1949a 00000135: EQ 00000136: PUSH2 0x060b 00000139: JUMPI 0000013a: DUP1 0000013b: PUSH4 0x8d068043 00000140: EQ 00000141: PUSH2 0x0620 00000144: JUMPI 00000145: DUP1 00000146: PUSH4 0x8da5cb5b 0000014b: EQ 0000014c: PUSH2 0x0635 0000014f: JUMPI 00000150: DUP1 00000151: PUSH4 0x95d89b41 00000156: EQ 00000157: PUSH2 0x064a 0000015a: JUMPI 0000015b: DUP1 0000015c: PUSH4 0x99439089 00000161: EQ 00000162: PUSH2 0x065f 00000165: JUMPI 00000166: DUP1 00000167: PUSH4 0x997b8c2d 0000016c: EQ 0000016d: PUSH2 0x0674 00000170: JUMPI 00000171: DUP1 00000172: PUSH4 0x9a454b99 00000177: EQ 00000178: PUSH2 0x06c1 0000017b: JUMPI 0000017c: DUP1 0000017d: PUSH4 0x9cb7595a 00000182: EQ 00000183: PUSH2 0x06d6 00000186: JUMPI 00000187: DUP1 00000188: PUSH4 0xa2a6ca27 0000018d: EQ 0000018e: PUSH2 0x0717 00000191: JUMPI 00000192: DUP1 00000193: PUSH4 0xa9059cbb 00000198: EQ 00000199: PUSH2 0x072f 0000019c: JUMPI 0000019d: DUP1 0000019e: PUSH4 0xacf5c689 000001a3: EQ 000001a4: PUSH2 0x0746 000001a7: JUMPI 000001a8: DUP1 000001a9: PUSH4 0xb20d30a9 000001ae: EQ 000001af: PUSH2 0x075e 000001b2: JUMPI 000001b3: DUP1 000001b4: PUSH4 0xbf1fe420 000001b9: EQ 000001ba: PUSH2 0x0776 000001bd: JUMPI 000001be: DUP1 000001bf: PUSH4 0xc0567656 000001c4: EQ 000001c5: PUSH2 0x078e 000001c8: JUMPI 000001c9: DUP1 000001ca: PUSH4 0xc6f6f216 000001cf: EQ 000001d0: PUSH2 0x07a6 000001d3: JUMPI 000001d4: DUP1 000001d5: PUSH4 0xdd62ed3e 000001da: EQ 000001db: PUSH2 0x07be 000001de: JUMPI 000001df: DUP1 000001e0: PUSH4 0xdf0ad3de 000001e5: EQ 000001e6: PUSH2 0x07e5 000001e9: JUMPI 000001ea: DUP1 000001eb: PUSH4 0xdf25f3f0 000001f0: EQ 000001f1: PUSH2 0x07fa 000001f4: JUMPI 000001f5: DUP1 000001f6: PUSH4 0xea9f4968 000001fb: EQ 000001fc: PUSH2 0x080f 000001ff: JUMPI 00000200: DUP1 00000201: PUSH4 0xf20151e1 00000206: EQ 00000207: PUSH2 0x0827 0000020a: JUMPI 0000020b: DUP1 0000020c: PUSH4 0xf2fde38b 00000211: EQ 00000212: PUSH2 0x083f 00000215: JUMPI 00000216: DUP1 00000217: PUSH4 0xf968adbe 0000021c: EQ 0000021d: PUSH2 0x0860 00000220: JUMPI 00000221: DUP1 00000222: PUSH4 0xfe173b97 00000227: EQ 00000228: PUSH2 0x0875 0000022b: JUMPI 0000022c: JUMPDEST 0000022d: PUSH1 0x40 0000022f: DUP1 00000230: MLOAD 00000231: CALLVALUE 00000232: DUP2 00000233: MSTORE 00000234: SWAP1 00000235: MLOAD 00000236: ADDRESS 00000237: SWAP2 00000238: CALLER 00000239: SWAP2 0000023a: PUSH1 0x00 0000023c: DUP1 0000023d: MLOAD 0000023e: PUSH1 0x20 00000240: PUSH2 0x31cb 00000243: DUP4 00000244: CODECOPY 00000245: DUP2 00000246: MLOAD 00000247: SWAP2 00000248: MSTORE 00000249: SWAP2 0000024a: DUP2 0000024b: SWAP1 0000024c: SUB 0000024d: PUSH1 0x20 0000024f: ADD 00000250: SWAP1 00000251: LOG3 00000252: STOP 00000253: JUMPDEST 00000254: CALLVALUE 00000255: DUP1 00000256: ISZERO 00000257: PUSH2 0x025f 0000025a: JUMPI 0000025b: PUSH1 0x00 0000025d: DUP1 0000025e: REVERT 0000025f: JUMPDEST 00000260: POP 00000261: PUSH2 0x0268 00000264: PUSH2 0x088a 00000267: JUMP 00000268: JUMPDEST 00000269: PUSH1 0x40 0000026b: DUP1 0000026c: MLOAD 0000026d: PUSH1 0x20 0000026f: DUP1 00000270: DUP3 00000271: MSTORE 00000272: DUP4 00000273: MLOAD 00000274: DUP2 00000275: DUP4 00000276: ADD 00000277: MSTORE 00000278: DUP4 00000279: MLOAD 0000027a: SWAP2 0000027b: SWAP3 0000027c: DUP4 0000027d: SWAP3 0000027e: SWAP1 0000027f: DUP4 00000280: ADD 00000281: SWAP2 00000282: DUP6 00000283: ADD 00000284: SWAP1 00000285: DUP1 00000286: DUP4 00000287: DUP4 00000288: PUSH1 0x00 0000028a: JUMPDEST 0000028b: DUP4 0000028c: DUP2 0000028d: LT 0000028e: ISZERO 0000028f: PUSH2 0x02a2 00000292: JUMPI 00000293: DUP2 00000294: DUP2 00000295: ADD 00000296: MLOAD 00000297: DUP4 00000298: DUP3 00000299: ADD 0000029a: MSTORE 0000029b: PUSH1 0x20 0000029d: ADD 0000029e: PUSH2 0x028a 000002a1: JUMP 000002a2: JUMPDEST 000002a3: POP 000002a4: POP 000002a5: POP 000002a6: POP 000002a7: SWAP1 000002a8: POP 000002a9: SWAP1 000002aa: DUP2 000002ab: ADD 000002ac: SWAP1 000002ad: PUSH1 0x1f 000002af: AND 000002b0: DUP1 000002b1: ISZERO 000002b2: PUSH2 0x02cf 000002b5: JUMPI 000002b6: DUP1 000002b7: DUP3 000002b8: SUB 000002b9: DUP1 000002ba: MLOAD 000002bb: PUSH1 0x01 000002bd: DUP4 000002be: PUSH1 0x20 000002c0: SUB 000002c1: PUSH2 0x0100 000002c4: EXP 000002c5: SUB 000002c6: NOT 000002c7: AND 000002c8: DUP2 000002c9: MSTORE 000002ca: PUSH1 0x20 000002cc: ADD 000002cd: SWAP2 000002ce: POP 000002cf: JUMPDEST 000002d0: POP 000002d1: SWAP3 000002d2: POP 000002d3: POP 000002d4: POP 000002d5: PUSH1 0x40 000002d7: MLOAD 000002d8: DUP1 000002d9: SWAP2 000002da: SUB 000002db: SWAP1 000002dc: RETURN 000002dd: JUMPDEST 000002de: CALLVALUE 000002df: DUP1 000002e0: ISZERO 000002e1: PUSH2 0x02e9 000002e4: JUMPI 000002e5: PUSH1 0x00 000002e7: DUP1 000002e8: REVERT 000002e9: JUMPDEST 000002ea: POP 000002eb: PUSH2 0x0301 000002ee: PUSH1 0x01 000002f0: PUSH1 0xa0 000002f2: PUSH1 0x02 000002f4: EXP 000002f5: SUB 000002f6: PUSH1 0x04 000002f8: CALLDATALOAD 000002f9: AND 000002fa: PUSH1 0x24 000002fc: CALLDATALOAD 000002fd: PUSH2 0x08c1 00000300: JUMP 00000301: JUMPDEST 00000302: PUSH1 0x40 00000304: DUP1 00000305: MLOAD 00000306: SWAP2 00000307: ISZERO 00000308: ISZERO 00000309: DUP3 0000030a: MSTORE 0000030b: MLOAD 0000030c: SWAP1 0000030d: DUP2 0000030e: SWAP1 0000030f: SUB 00000310: PUSH1 0x20 00000312: ADD 00000313: SWAP1 00000314: RETURN 00000315: JUMPDEST 00000316: CALLVALUE 00000317: DUP1 00000318: ISZERO 00000319: PUSH2 0x0321 0000031c: JUMPI 0000031d: PUSH1 0x00 0000031f: DUP1 00000320: REVERT 00000321: JUMPDEST 00000322: POP 00000323: PUSH2 0x032a 00000326: PUSH2 0x0913 00000329: JUMP 0000032a: JUMPDEST 0000032b: PUSH1 0x40 0000032d: DUP1 0000032e: MLOAD 0000032f: SWAP2 00000330: DUP3 00000331: MSTORE 00000332: MLOAD 00000333: SWAP1 00000334: DUP2 00000335: SWAP1 00000336: SUB 00000337: PUSH1 0x20 00000339: ADD 0000033a: SWAP1 0000033b: RETURN 0000033c: JUMPDEST 0000033d: CALLVALUE 0000033e: DUP1 0000033f: ISZERO 00000340: PUSH2 0x0348 00000343: JUMPI 00000344: PUSH1 0x00 00000346: DUP1 00000347: REVERT 00000348: JUMPDEST 00000349: POP 0000034a: PUSH2 0x0351 0000034d: PUSH2 0x0919 00000350: JUMP 00000351: JUMPDEST 00000352: PUSH1 0x40 00000354: DUP1 00000355: MLOAD 00000356: PUSH1 0x01 00000358: PUSH1 0xa0 0000035a: PUSH1 0x02 0000035c: EXP 0000035d: SUB 0000035e: SWAP1 0000035f: SWAP3 00000360: AND 00000361: DUP3 00000362: MSTORE 00000363: MLOAD 00000364: SWAP1 00000365: DUP2 00000366: SWAP1 00000367: SUB 00000368: PUSH1 0x20 0000036a: ADD 0000036b: SWAP1 0000036c: RETURN 0000036d: JUMPDEST 0000036e: CALLVALUE 0000036f: DUP1 00000370: ISZERO 00000371: PUSH2 0x0379 00000374: JUMPI 00000375: PUSH1 0x00 00000377: DUP1 00000378: REVERT 00000379: JUMPDEST 0000037a: POP 0000037b: PUSH2 0x0301 0000037e: PUSH1 0x04 00000380: CALLDATALOAD 00000381: PUSH2 0x0997 00000384: JUMP 00000385: JUMPDEST 00000386: CALLVALUE 00000387: DUP1 00000388: ISZERO 00000389: PUSH2 0x0391 0000038c: JUMPI 0000038d: PUSH1 0x00 0000038f: DUP1 00000390: REVERT 00000391: JUMPDEST 00000392: POP 00000393: PUSH2 0x03c9 00000396: PUSH1 0x24 00000398: PUSH1 0x04 0000039a: DUP1 0000039b: CALLDATALOAD 0000039c: DUP3 0000039d: DUP2 0000039e: ADD 0000039f: SWAP3 000003a0: SWAP1 000003a1: DUP3 000003a2: ADD 000003a3: CALLDATALOAD 000003a4: SWAP2 000003a5: DUP2 000003a6: CALLDATALOAD 000003a7: DUP1 000003a8: DUP4 000003a9: ADD 000003aa: SWAP3 000003ab: SWAP1 000003ac: DUP3 000003ad: ADD 000003ae: CALLDATALOAD 000003af: SWAP2 000003b0: PUSH1 0x44 000003b2: CALLDATALOAD 000003b3: DUP1 000003b4: DUP4 000003b5: ADD 000003b6: SWAP3 000003b7: SWAP1 000003b8: DUP3 000003b9: ADD 000003ba: CALLDATALOAD 000003bb: SWAP2 000003bc: PUSH1 0x64 000003be: CALLDATALOAD 000003bf: SWAP2 000003c0: DUP3 000003c1: ADD 000003c2: SWAP2 000003c3: ADD 000003c4: CALLDATALOAD 000003c5: PUSH2 0x0a60 000003c8: JUMP 000003c9: JUMPDEST 000003ca: STOP 000003cb: JUMPDEST 000003cc: CALLVALUE 000003cd: DUP1 000003ce: ISZERO 000003cf: PUSH2 0x03d7 000003d2: JUMPI 000003d3: PUSH1 0x00 000003d5: DUP1 000003d6: REVERT 000003d7: JUMPDEST 000003d8: POP 000003d9: PUSH2 0x0301 000003dc: PUSH1 0x01 000003de: PUSH1 0xa0 000003e0: PUSH1 0x02 000003e2: EXP 000003e3: SUB 000003e4: PUSH1 0x04 000003e6: CALLDATALOAD 000003e7: DUP2 000003e8: AND 000003e9: SWAP1 000003ea: PUSH1 0x24 000003ec: CALLDATALOAD 000003ed: AND 000003ee: PUSH1 0x44 000003f0: CALLDATALOAD 000003f1: PUSH2 0x08c1 000003f4: JUMP 000003f5: JUMPDEST 000003f6: CALLVALUE 000003f7: DUP1 000003f8: ISZERO 000003f9: PUSH2 0x0401 000003fc: JUMPI 000003fd: PUSH1 0x00 000003ff: DUP1 00000400: REVERT 00000401: JUMPDEST 00000402: POP 00000403: PUSH2 0x03c9 00000406: PUSH1 0x01 00000408: PUSH1 0xa0 0000040a: PUSH1 0x02 0000040c: EXP 0000040d: SUB 0000040e: PUSH1 0x04 00000410: CALLDATALOAD 00000411: AND 00000412: PUSH2 0x0c1a 00000415: JUMP 00000416: JUMPDEST 00000417: CALLVALUE 00000418: DUP1 00000419: ISZERO 0000041a: PUSH2 0x0422 0000041d: JUMPI 0000041e: PUSH1 0x00 00000420: DUP1 00000421: REVERT 00000422: JUMPDEST 00000423: POP 00000424: PUSH2 0x032a 00000427: PUSH1 0x04 00000429: CALLDATALOAD 0000042a: PUSH2 0x0c42 0000042d: JUMP 0000042e: JUMPDEST 0000042f: CALLVALUE 00000430: DUP1 00000431: ISZERO 00000432: PUSH2 0x043a 00000435: JUMPI 00000436: PUSH1 0x00 00000438: DUP1 00000439: REVERT 0000043a: JUMPDEST 0000043b: POP 0000043c: PUSH2 0x0443 0000043f: PUSH2 0x0cff 00000442: JUMP 00000443: JUMPDEST 00000444: PUSH1 0x40 00000446: DUP1 00000447: MLOAD 00000448: PUSH1 0xff 0000044a: SWAP1 0000044b: SWAP3 0000044c: AND 0000044d: DUP3 0000044e: MSTORE 0000044f: MLOAD 00000450: SWAP1 00000451: DUP2 00000452: SWAP1 00000453: SUB 00000454: PUSH1 0x20 00000456: ADD 00000457: SWAP1 00000458: RETURN 00000459: JUMPDEST 0000045a: CALLVALUE 0000045b: DUP1 0000045c: ISZERO 0000045d: PUSH2 0x0465 00000460: JUMPI 00000461: PUSH1 0x00 00000463: DUP1 00000464: REVERT 00000465: JUMPDEST 00000466: POP 00000467: PUSH2 0x0301 0000046a: PUSH2 0x0d04 0000046d: JUMP 0000046e: JUMPDEST 0000046f: CALLVALUE 00000470: DUP1 00000471: ISZERO 00000472: PUSH2 0x047a 00000475: JUMPI 00000476: PUSH1 0x00 00000478: DUP1 00000479: REVERT 0000047a: JUMPDEST 0000047b: POP 0000047c: PUSH2 0x03c9 0000047f: PUSH1 0x04 00000481: CALLDATALOAD 00000482: PUSH2 0x0dbc 00000485: JUMP 00000486: JUMPDEST 00000487: CALLVALUE 00000488: DUP1 00000489: ISZERO 0000048a: PUSH2 0x0492 0000048d: JUMPI 0000048e: PUSH1 0x00 00000490: DUP1 00000491: REVERT 00000492: JUMPDEST 00000493: POP 00000494: PUSH2 0x032a 00000497: PUSH2 0x0e28 0000049a: JUMP 0000049b: JUMPDEST 0000049c: CALLVALUE 0000049d: DUP1 0000049e: ISZERO 0000049f: PUSH2 0x04a7 000004a2: JUMPI 000004a3: PUSH1 0x00 000004a5: DUP1 000004a6: REVERT 000004a7: JUMPDEST 000004a8: POP 000004a9: PUSH2 0x032a 000004ac: PUSH2 0x0e31 000004af: JUMP 000004b0: JUMPDEST 000004b1: CALLVALUE 000004b2: DUP1 000004b3: ISZERO 000004b4: PUSH2 0x04bc 000004b7: JUMPI 000004b8: PUSH1 0x00 000004ba: DUP1 000004bb: REVERT 000004bc: JUMPDEST 000004bd: POP 000004be: PUSH2 0x04c5 000004c1: PUSH2 0x0ee5 000004c4: JUMP 000004c5: JUMPDEST 000004c6: PUSH1 0x40 000004c8: DUP1 000004c9: MLOAD 000004ca: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 000004eb: SWAP1 000004ec: SWAP3 000004ed: AND 000004ee: DUP3 000004ef: MSTORE 000004f0: MLOAD 000004f1: SWAP1 000004f2: DUP2 000004f3: SWAP1 000004f4: SUB 000004f5: PUSH1 0x20 000004f7: ADD 000004f8: SWAP1 000004f9: RETURN 000004fa: JUMPDEST 000004fb: CALLVALUE 000004fc: DUP1 000004fd: ISZERO 000004fe: PUSH2 0x0506 00000501: JUMPI 00000502: PUSH1 0x00 00000504: DUP1 00000505: REVERT 00000506: JUMPDEST 00000507: POP 00000508: PUSH2 0x032a 0000050b: PUSH2 0x0f88 0000050e: JUMP 0000050f: JUMPDEST 00000510: CALLVALUE 00000511: DUP1 00000512: ISZERO 00000513: PUSH2 0x051b 00000516: JUMPI 00000517: PUSH1 0x00 00000519: DUP1 0000051a: REVERT 0000051b: JUMPDEST 0000051c: POP 0000051d: PUSH2 0x0351 00000520: PUSH2 0x0ffb 00000523: JUMP 00000524: JUMPDEST 00000525: CALLVALUE 00000526: DUP1 00000527: ISZERO 00000528: PUSH2 0x0530 0000052b: JUMPI 0000052c: PUSH1 0x00 0000052e: DUP1 0000052f: REVERT 00000530: JUMPDEST 00000531: POP 00000532: PUSH2 0x032a 00000535: PUSH1 0x04 00000537: CALLDATALOAD 00000538: PUSH2 0x10b9 0000053b: JUMP 0000053c: JUMPDEST 0000053d: CALLVALUE 0000053e: DUP1 0000053f: ISZERO 00000540: PUSH2 0x0548 00000543: JUMPI 00000544: PUSH1 0x00 00000546: DUP1 00000547: REVERT 00000548: JUMPDEST 00000549: POP 0000054a: PUSH2 0x0301 0000054d: PUSH1 0x01 0000054f: PUSH1 0xa0 00000551: PUSH1 0x02 00000553: EXP 00000554: SUB 00000555: PUSH1 0x04 00000557: CALLDATALOAD 00000558: DUP2 00000559: AND 0000055a: SWAP1 0000055b: PUSH1 0x24 0000055d: CALLDATALOAD 0000055e: DUP2 0000055f: AND 00000560: SWAP1 00000561: PUSH1 0x44 00000563: CALLDATALOAD 00000564: SWAP1 00000565: PUSH1 0x64 00000567: CALLDATALOAD 00000568: SWAP1 00000569: PUSH1 0x84 0000056b: CALLDATALOAD 0000056c: SWAP1 0000056d: PUSH1 0xa4 0000056f: CALLDATALOAD 00000570: SWAP1 00000571: PUSH1 0xc4 00000573: CALLDATALOAD 00000574: SWAP1 00000575: PUSH1 0xe4 00000577: CALLDATALOAD 00000578: AND 00000579: PUSH2 0x0104 0000057c: CALLDATALOAD 0000057d: PUSH2 0x1134 00000580: JUMP 00000581: JUMPDEST 00000582: CALLVALUE 00000583: DUP1 00000584: ISZERO 00000585: PUSH2 0x058d 00000588: JUMPI 00000589: PUSH1 0x00 0000058b: DUP1 0000058c: REVERT 0000058d: JUMPDEST 0000058e: POP 0000058f: PUSH2 0x032a 00000592: PUSH2 0x17bf 00000595: JUMP 00000596: JUMPDEST 00000597: CALLVALUE 00000598: DUP1 00000599: ISZERO 0000059a: PUSH2 0x05a2 0000059d: JUMPI 0000059e: PUSH1 0x00 000005a0: DUP1 000005a1: REVERT 000005a2: JUMPDEST 000005a3: POP 000005a4: PUSH2 0x03c9 000005a7: PUSH1 0x01 000005a9: PUSH1 0xa0 000005ab: PUSH1 0x02 000005ad: EXP 000005ae: SUB 000005af: PUSH1 0x04 000005b1: CALLDATALOAD 000005b2: DUP2 000005b3: AND 000005b4: SWAP1 000005b5: PUSH1 0x24 000005b7: CALLDATALOAD 000005b8: AND 000005b9: PUSH2 0x1832 000005bc: JUMP 000005bd: JUMPDEST 000005be: CALLVALUE 000005bf: DUP1 000005c0: ISZERO 000005c1: PUSH2 0x05c9 000005c4: JUMPI 000005c5: PUSH1 0x00 000005c7: DUP1 000005c8: REVERT 000005c9: JUMPDEST 000005ca: POP 000005cb: PUSH2 0x032a 000005ce: PUSH1 0x01 000005d0: PUSH1 0xa0 000005d2: PUSH1 0x02 000005d4: EXP 000005d5: SUB 000005d6: PUSH1 0x04 000005d8: CALLDATALOAD 000005d9: AND 000005da: PUSH2 0x1871 000005dd: JUMP 000005de: JUMPDEST 000005df: CALLVALUE 000005e0: DUP1 000005e1: ISZERO 000005e2: PUSH2 0x05ea 000005e5: JUMPI 000005e6: PUSH1 0x00 000005e8: DUP1 000005e9: REVERT 000005ea: JUMPDEST 000005eb: POP 000005ec: PUSH2 0x032a 000005ef: PUSH2 0x187e 000005f2: JUMP 000005f3: JUMPDEST 000005f4: CALLVALUE 000005f5: DUP1 000005f6: ISZERO 000005f7: PUSH2 0x05ff 000005fa: JUMPI 000005fb: PUSH1 0x00 000005fd: DUP1 000005fe: REVERT 000005ff: JUMPDEST 00000600: POP 00000601: PUSH2 0x0301 00000604: PUSH1 0x04 00000606: CALLDATALOAD 00000607: PUSH2 0x18f1 0000060a: JUMP 0000060b: JUMPDEST 0000060c: CALLVALUE 0000060d: DUP1 0000060e: ISZERO 0000060f: PUSH2 0x0617 00000612: JUMPI 00000613: PUSH1 0x00 00000615: DUP1 00000616: REVERT 00000617: JUMPDEST 00000618: POP 00000619: PUSH2 0x032a 0000061c: PUSH2 0x193b 0000061f: JUMP 00000620: JUMPDEST 00000621: CALLVALUE 00000622: DUP1 00000623: ISZERO 00000624: PUSH2 0x062c 00000627: JUMPI 00000628: PUSH1 0x00 0000062a: DUP1 0000062b: REVERT 0000062c: JUMPDEST 0000062d: POP 0000062e: PUSH2 0x032a 00000631: PUSH2 0x19ae 00000634: JUMP 00000635: JUMPDEST 00000636: CALLVALUE 00000637: DUP1 00000638: ISZERO 00000639: PUSH2 0x0641 0000063c: JUMPI 0000063d: PUSH1 0x00 0000063f: DUP1 00000640: REVERT 00000641: JUMPDEST 00000642: POP 00000643: PUSH2 0x0351 00000646: PUSH2 0x1a26 00000649: JUMP 0000064a: JUMPDEST 0000064b: CALLVALUE 0000064c: DUP1 0000064d: ISZERO 0000064e: PUSH2 0x0656 00000651: JUMPI 00000652: PUSH1 0x00 00000654: DUP1 00000655: REVERT 00000656: JUMPDEST 00000657: POP 00000658: PUSH2 0x0268 0000065b: PUSH2 0x1a9a 0000065e: JUMP 0000065f: JUMPDEST 00000660: CALLVALUE 00000661: DUP1 00000662: ISZERO 00000663: PUSH2 0x066b 00000666: JUMPI 00000667: PUSH1 0x00 00000669: DUP1 0000066a: REVERT 0000066b: JUMPDEST 0000066c: POP 0000066d: PUSH2 0x0351 00000670: PUSH2 0x1ad1 00000673: JUMP 00000674: JUMPDEST 00000675: CALLVALUE 00000676: DUP1 00000677: ISZERO 00000678: PUSH2 0x0680 0000067b: JUMPI 0000067c: PUSH1 0x00 0000067e: DUP1 0000067f: REVERT 00000680: JUMPDEST 00000681: POP 00000682: PUSH2 0x0301 00000685: PUSH1 0x01 00000687: PUSH1 0xa0 00000689: PUSH1 0x02 0000068b: EXP 0000068c: SUB 0000068d: PUSH1 0x04 0000068f: CALLDATALOAD 00000690: DUP2 00000691: AND 00000692: SWAP1 00000693: PUSH1 0x24 00000695: CALLDATALOAD 00000696: DUP2 00000697: AND 00000698: SWAP1 00000699: PUSH1 0x44 0000069b: CALLDATALOAD 0000069c: SWAP1 0000069d: PUSH1 0x64 0000069f: CALLDATALOAD 000006a0: SWAP1 000006a1: PUSH1 0x84 000006a3: CALLDATALOAD 000006a4: SWAP1 000006a5: PUSH1 0xa4 000006a7: CALLDATALOAD 000006a8: SWAP1 000006a9: PUSH1 0xc4 000006ab: CALLDATALOAD 000006ac: SWAP1 000006ad: PUSH1 0xe4 000006af: CALLDATALOAD 000006b0: DUP2 000006b1: AND 000006b2: SWAP1 000006b3: PUSH2 0x0104 000006b6: CALLDATALOAD 000006b7: SWAP1 000006b8: PUSH2 0x0124 000006bb: CALLDATALOAD 000006bc: AND 000006bd: PUSH2 0x1b45 000006c0: JUMP 000006c1: JUMPDEST 000006c2: CALLVALUE 000006c3: DUP1 000006c4: ISZERO 000006c5: PUSH2 0x06cd 000006c8: JUMPI 000006c9: PUSH1 0x00 000006cb: DUP1 000006cc: REVERT 000006cd: JUMPDEST 000006ce: POP 000006cf: PUSH2 0x032a 000006d2: PUSH2 0x1b70 000006d5: JUMP 000006d6: JUMPDEST 000006d7: CALLVALUE 000006d8: DUP1 000006d9: ISZERO 000006da: PUSH2 0x06e2 000006dd: JUMPI 000006de: PUSH1 0x00 000006e0: DUP1 000006e1: REVERT 000006e2: JUMPDEST 000006e3: POP 000006e4: PUSH2 0x06eb 000006e7: PUSH2 0x1be3 000006ea: JUMP 000006eb: JUMPDEST 000006ec: PUSH1 0x40 000006ee: DUP1 000006ef: MLOAD 000006f0: PUSH8 0xffffffffffffffff 000006f9: SWAP5 000006fa: DUP6 000006fb: AND 000006fc: DUP2 000006fd: MSTORE 000006fe: SWAP3 000006ff: DUP5 00000700: AND 00000701: PUSH1 0x20 00000703: DUP5 00000704: ADD 00000705: MSTORE 00000706: SWAP3 00000707: AND 00000708: DUP2 00000709: DUP4 0000070a: ADD 0000070b: MSTORE 0000070c: SWAP1 0000070d: MLOAD 0000070e: SWAP1 0000070f: DUP2 00000710: SWAP1 00000711: SUB 00000712: PUSH1 0x60 00000714: ADD 00000715: SWAP1 00000716: RETURN 00000717: JUMPDEST 00000718: CALLVALUE 00000719: DUP1 0000071a: ISZERO 0000071b: PUSH2 0x0723 0000071e: JUMPI 0000071f: PUSH1 0x00 00000721: DUP1 00000722: REVERT 00000723: JUMPDEST 00000724: POP 00000725: PUSH2 0x03c9 00000728: PUSH1 0x04 0000072a: CALLDATALOAD 0000072b: PUSH2 0x1bed 0000072e: JUMP 0000072f: JUMPDEST 00000730: PUSH2 0x0301 00000733: PUSH1 0x01 00000735: PUSH1 0xa0 00000737: PUSH1 0x02 00000739: EXP 0000073a: SUB 0000073b: PUSH1 0x04 0000073d: CALLDATALOAD 0000073e: AND 0000073f: PUSH1 0x24 00000741: CALLDATALOAD 00000742: PUSH2 0x1ce4 00000745: JUMP 00000746: JUMPDEST 00000747: CALLVALUE 00000748: DUP1 00000749: ISZERO 0000074a: PUSH2 0x0752 0000074d: JUMPI 0000074e: PUSH1 0x00 00000750: DUP1 00000751: REVERT 00000752: JUMPDEST 00000753: POP 00000754: PUSH2 0x03c9 00000757: PUSH1 0x04 00000759: CALLDATALOAD 0000075a: PUSH2 0x1e14 0000075d: JUMP 0000075e: JUMPDEST 0000075f: CALLVALUE 00000760: DUP1 00000761: ISZERO 00000762: PUSH2 0x076a 00000765: JUMPI 00000766: PUSH1 0x00 00000768: DUP1 00000769: REVERT 0000076a: JUMPDEST 0000076b: POP 0000076c: PUSH2 0x03c9 0000076f: PUSH1 0x04 00000771: CALLDATALOAD 00000772: PUSH2 0x1f23 00000775: JUMP 00000776: JUMPDEST 00000777: CALLVALUE 00000778: DUP1 00000779: ISZERO 0000077a: PUSH2 0x0782 0000077d: JUMPI 0000077e: PUSH1 0x00 00000780: DUP1 00000781: REVERT 00000782: JUMPDEST 00000783: POP 00000784: PUSH2 0x03c9 00000787: PUSH1 0x04 00000789: CALLDATALOAD 0000078a: PUSH2 0x2025 0000078d: JUMP 0000078e: JUMPDEST 0000078f: CALLVALUE 00000790: DUP1 00000791: ISZERO 00000792: PUSH2 0x079a 00000795: JUMPI 00000796: PUSH1 0x00 00000798: DUP1 00000799: REVERT 0000079a: JUMPDEST 0000079b: POP 0000079c: PUSH2 0x032a 0000079f: PUSH1 0x04 000007a1: CALLDATALOAD 000007a2: PUSH2 0x2134 000007a5: JUMP 000007a6: JUMPDEST 000007a7: CALLVALUE 000007a8: DUP1 000007a9: ISZERO 000007aa: PUSH2 0x07b2 000007ad: JUMPI 000007ae: PUSH1 0x00 000007b0: DUP1 000007b1: REVERT 000007b2: JUMPDEST 000007b3: POP 000007b4: PUSH2 0x03c9 000007b7: PUSH1 0x04 000007b9: CALLDATALOAD 000007ba: PUSH2 0x2171 000007bd: JUMP 000007be: JUMPDEST 000007bf: CALLVALUE 000007c0: DUP1 000007c1: ISZERO 000007c2: PUSH2 0x07ca 000007c5: JUMPI 000007c6: PUSH1 0x00 000007c8: DUP1 000007c9: REVERT 000007ca: JUMPDEST 000007cb: POP 000007cc: PUSH2 0x032a 000007cf: PUSH1 0x01 000007d1: PUSH1 0xa0 000007d3: PUSH1 0x02 000007d5: EXP 000007d6: SUB 000007d7: PUSH1 0x04 000007d9: CALLDATALOAD 000007da: DUP2 000007db: AND 000007dc: SWAP1 000007dd: PUSH1 0x24 000007df: CALLDATALOAD 000007e0: AND 000007e1: PUSH2 0x2212 000007e4: JUMP 000007e5: JUMPDEST 000007e6: CALLVALUE 000007e7: DUP1 000007e8: ISZERO 000007e9: PUSH2 0x07f1 000007ec: JUMPI 000007ed: PUSH1 0x00 000007ef: DUP1 000007f0: REVERT 000007f1: JUMPDEST 000007f2: POP 000007f3: PUSH2 0x0351 000007f6: PUSH2 0x221a 000007f9: JUMP 000007fa: JUMPDEST 000007fb: CALLVALUE 000007fc: DUP1 000007fd: ISZERO 000007fe: PUSH2 0x0806 00000801: JUMPI 00000802: PUSH1 0x00 00000804: DUP1 00000805: REVERT 00000806: JUMPDEST 00000807: POP 00000808: PUSH2 0x032a 0000080b: PUSH2 0x225a 0000080e: JUMP 0000080f: JUMPDEST 00000810: CALLVALUE 00000811: DUP1 00000812: ISZERO 00000813: PUSH2 0x081b 00000816: JUMPI 00000817: PUSH1 0x00 00000819: DUP1 0000081a: REVERT 0000081b: JUMPDEST 0000081c: POP 0000081d: PUSH2 0x0301 00000820: PUSH1 0x04 00000822: CALLDATALOAD 00000823: PUSH2 0x22cd 00000826: JUMP 00000827: JUMPDEST 00000828: CALLVALUE 00000829: DUP1 0000082a: ISZERO 0000082b: PUSH2 0x0833 0000082e: JUMPI 0000082f: PUSH1 0x00 00000831: DUP1 00000832: REVERT 00000833: JUMPDEST 00000834: POP 00000835: PUSH2 0x03c9 00000838: PUSH1 0x04 0000083a: CALLDATALOAD 0000083b: PUSH2 0x231d 0000083e: JUMP 0000083f: JUMPDEST 00000840: CALLVALUE 00000841: DUP1 00000842: ISZERO 00000843: PUSH2 0x084b 00000846: JUMPI 00000847: PUSH1 0x00 00000849: DUP1 0000084a: REVERT 0000084b: JUMPDEST 0000084c: POP 0000084d: PUSH2 0x03c9 00000850: PUSH1 0x01 00000852: PUSH1 0xa0 00000854: PUSH1 0x02 00000856: EXP 00000857: SUB 00000858: PUSH1 0x04 0000085a: CALLDATALOAD 0000085b: AND 0000085c: PUSH2 0x23be 0000085f: JUMP 00000860: JUMPDEST 00000861: CALLVALUE 00000862: DUP1 00000863: ISZERO 00000864: PUSH2 0x086c 00000867: JUMPI 00000868: PUSH1 0x00 0000086a: DUP1 0000086b: REVERT 0000086c: JUMPDEST 0000086d: POP 0000086e: PUSH2 0x032a 00000871: PUSH2 0x23f8 00000874: JUMP 00000875: JUMPDEST 00000876: CALLVALUE 00000877: DUP1 00000878: ISZERO 00000879: PUSH2 0x0881 0000087c: JUMPI 0000087d: PUSH1 0x00 0000087f: DUP1 00000880: REVERT 00000881: JUMPDEST 00000882: POP 00000883: PUSH2 0x032a 00000886: PUSH2 0x246b 00000889: JUMP 0000088a: JUMPDEST 0000088b: PUSH1 0x40 0000088d: DUP1 0000088e: MLOAD 0000088f: DUP1 00000890: DUP3 00000891: ADD 00000892: SWAP1 00000893: SWAP2 00000894: MSTORE 00000895: PUSH1 0x13 00000897: DUP2 00000898: MSTORE 00000899: PUSH32 0x5468756e64657220577261707065642045544800000000000000000000000000 000008ba: PUSH1 0x20 000008bc: DUP3 000008bd: ADD 000008be: MSTORE 000008bf: DUP2 000008c0: JUMP 000008c1: JUMPDEST 000008c2: PUSH1 0x40 000008c4: DUP1 000008c5: MLOAD 000008c6: PUSH1 0xe5 000008c8: PUSH1 0x02 000008ca: EXP 000008cb: PUSH3 0x461bcd 000008cf: MUL 000008d0: DUP2 000008d1: MSTORE 000008d2: PUSH1 0x20 000008d4: PUSH1 0x04 000008d6: DUP3 000008d7: ADD 000008d8: MSTORE 000008d9: PUSH1 0x08 000008db: PUSH1 0x24 000008dd: DUP3 000008de: ADD 000008df: MSTORE 000008e0: PUSH32 0x7265766572746564000000000000000000000000000000000000000000000000 00000901: PUSH1 0x44 00000903: DUP3 00000904: ADD 00000905: MSTORE 00000906: SWAP1 00000907: MLOAD 00000908: PUSH1 0x00 0000090a: SWAP2 0000090b: DUP2 0000090c: SWAP1 0000090d: SUB 0000090e: PUSH1 0x64 00000910: ADD 00000911: SWAP1 00000912: REVERT 00000913: JUMPDEST 00000914: ADDRESS 00000915: BALANCE 00000916: JUMPDEST 00000917: SWAP1 00000918: JUMP 00000919: JUMPDEST 0000091a: PUSH1 0x00 0000091c: ADDRESS 0000091d: PUSH1 0x01 0000091f: PUSH1 0xa0 00000921: PUSH1 0x02 00000923: EXP 00000924: SUB 00000925: AND 00000926: PUSH4 0x392e53cd 0000092b: PUSH1 0x40 0000092d: MLOAD 0000092e: DUP2 0000092f: PUSH4 0xffffffff 00000934: AND 00000935: PUSH1 0xe0 00000937: PUSH1 0x02 00000939: EXP 0000093a: MUL 0000093b: DUP2 0000093c: MSTORE 0000093d: PUSH1 0x04 0000093f: ADD 00000940: PUSH1 0x20 00000942: PUSH1 0x40 00000944: MLOAD 00000945: DUP1 00000946: DUP4 00000947: SUB 00000948: DUP2 00000949: PUSH1 0x00 0000094b: DUP8 0000094c: DUP1 0000094d: EXTCODESIZE 0000094e: ISZERO 0000094f: DUP1 00000950: ISZERO 00000951: PUSH2 0x0959 00000954: JUMPI 00000955: PUSH1 0x00 00000957: DUP1 00000958: REVERT 00000959: JUMPDEST 0000095a: POP 0000095b: GAS 0000095c: CALL 0000095d: ISZERO 0000095e: DUP1 0000095f: ISZERO 00000960: PUSH2 0x096d 00000963: JUMPI 00000964: RETURNDATASIZE 00000965: PUSH1 0x00 00000967: DUP1 00000968: RETURNDATACOPY 00000969: RETURNDATASIZE 0000096a: PUSH1 0x00 0000096c: REVERT 0000096d: JUMPDEST 0000096e: POP 0000096f: POP 00000970: POP 00000971: POP 00000972: PUSH1 0x40 00000974: MLOAD 00000975: RETURNDATASIZE 00000976: PUSH1 0x20 00000978: DUP2 00000979: LT 0000097a: ISZERO 0000097b: PUSH2 0x0983 0000097e: JUMPI 0000097f: PUSH1 0x00 00000981: DUP1 00000982: REVERT 00000983: JUMPDEST 00000984: POP 00000985: MLOAD 00000986: ISZERO 00000987: PUSH2 0x0991 0000098a: JUMPI 0000098b: POP 0000098c: ADDRESS 0000098d: PUSH2 0x0916 00000990: JUMP 00000991: JUMPDEST 00000992: POP 00000993: PUSH1 0x00 00000995: SWAP1 00000996: JUMP 00000997: JUMPDEST 00000998: PUSH1 0x00 0000099a: PUSH1 0x04 0000099c: PUSH1 0x00 0000099e: DUP4 0000099f: PUSH1 0x40 000009a1: MLOAD 000009a2: PUSH1 0x20 000009a4: ADD 000009a5: DUP1 000009a6: DUP1 000009a7: PUSH32 0x72656c617965644d657373616765730000000000000000000000000000000000 000009c8: DUP2 000009c9: MSTORE 000009ca: POP 000009cb: PUSH1 0x0f 000009cd: ADD 000009ce: DUP3 000009cf: PUSH1 0x00 000009d1: NOT 000009d2: AND 000009d3: PUSH1 0x00 000009d5: NOT 000009d6: AND 000009d7: DUP2 000009d8: MSTORE 000009d9: PUSH1 0x20 000009db: ADD 000009dc: SWAP2 000009dd: POP 000009de: POP 000009df: PUSH1 0x40 000009e1: MLOAD 000009e2: PUSH1 0x20 000009e4: DUP2 000009e5: DUP4 000009e6: SUB 000009e7: SUB 000009e8: DUP2 000009e9: MSTORE 000009ea: SWAP1 000009eb: PUSH1 0x40 000009ed: MSTORE 000009ee: PUSH1 0x40 000009f0: MLOAD 000009f1: DUP1 000009f2: DUP3 000009f3: DUP1 000009f4: MLOAD 000009f5: SWAP1 000009f6: PUSH1 0x20 000009f8: ADD 000009f9: SWAP1 000009fa: DUP1 000009fb: DUP4 000009fc: DUP4 000009fd: JUMPDEST 000009fe: PUSH1 0x20 00000a00: DUP4 00000a01: LT 00000a02: PUSH2 0x0a1c 00000a05: JUMPI 00000a06: DUP1 00000a07: MLOAD 00000a08: DUP3 00000a09: MSTORE 00000a0a: PUSH1 0x1f 00000a0c: NOT 00000a0d: SWAP1 00000a0e: SWAP3 00000a0f: ADD 00000a10: SWAP2 00000a11: PUSH1 0x20 00000a13: SWAP2 00000a14: DUP3 00000a15: ADD 00000a16: SWAP2 00000a17: ADD 00000a18: PUSH2 0x09fd 00000a1b: JUMP 00000a1c: JUMPDEST 00000a1d: MLOAD 00000a1e: DUP2 00000a1f: MLOAD 00000a20: PUSH1 0x20 00000a22: SWAP4 00000a23: DUP5 00000a24: SUB 00000a25: PUSH2 0x0100 00000a28: EXP 00000a29: PUSH1 0x00 00000a2b: NOT 00000a2c: ADD 00000a2d: DUP1 00000a2e: NOT 00000a2f: SWAP1 00000a30: SWAP3 00000a31: AND 00000a32: SWAP2 00000a33: AND 00000a34: OR 00000a35: SWAP1 00000a36: MSTORE 00000a37: PUSH1 0x40 00000a39: DUP1 00000a3a: MLOAD 00000a3b: SWAP3 00000a3c: SWAP1 00000a3d: SWAP5 00000a3e: ADD 00000a3f: DUP3 00000a40: SWAP1 00000a41: SUB 00000a42: SWAP1 00000a43: SWAP2 00000a44: KECCAK256 00000a45: DUP7 00000a46: MSTORE 00000a47: DUP6 00000a48: ADD 00000a49: SWAP6 00000a4a: SWAP1 00000a4b: SWAP6 00000a4c: MSTORE 00000a4d: SWAP3 00000a4e: SWAP1 00000a4f: SWAP3 00000a50: ADD 00000a51: PUSH1 0x00 00000a53: KECCAK256 00000a54: SLOAD 00000a55: PUSH1 0xff 00000a57: AND 00000a58: SWAP6 00000a59: SWAP5 00000a5a: POP 00000a5b: POP 00000a5c: POP 00000a5d: POP 00000a5e: POP 00000a5f: JUMP 00000a60: JUMPDEST 00000a61: PUSH1 0x00 00000a63: DUP1 00000a64: PUSH1 0x00 00000a66: DUP1 00000a67: PUSH2 0x0b38 00000a6a: DUP7 00000a6b: DUP7 00000a6c: DUP1 00000a6d: DUP1 00000a6e: PUSH1 0x1f 00000a70: ADD 00000a71: PUSH1 0x20 00000a73: DUP1 00000a74: SWAP2 00000a75: DIV 00000a76: MUL 00000a77: PUSH1 0x20 00000a79: ADD 00000a7a: PUSH1 0x40 00000a7c: MLOAD 00000a7d: SWAP1 00000a7e: DUP2 00000a7f: ADD 00000a80: PUSH1 0x40 00000a82: MSTORE 00000a83: DUP1 00000a84: SWAP4 00000a85: SWAP3 00000a86: SWAP2 00000a87: SWAP1 00000a88: DUP2 00000a89: DUP2 00000a8a: MSTORE 00000a8b: PUSH1 0x20 00000a8d: ADD 00000a8e: DUP4 00000a8f: DUP4 00000a90: DUP1 00000a91: DUP3 00000a92: DUP5 00000a93: CALLDATACOPY 00000a94: DUP3 00000a95: ADD 00000a96: SWAP2 00000a97: POP 00000a98: POP 00000a99: POP 00000a9a: POP 00000a9b: POP 00000a9c: POP 00000a9d: DUP14 00000a9e: DUP14 00000a9f: DUP1 00000aa0: DUP1 00000aa1: PUSH1 0x20 00000aa3: MUL 00000aa4: PUSH1 0x20 00000aa6: ADD 00000aa7: PUSH1 0x40 00000aa9: MLOAD 00000aaa: SWAP1 00000aab: DUP2 00000aac: ADD 00000aad: PUSH1 0x40 00000aaf: MSTORE 00000ab0: DUP1 00000ab1: SWAP4 00000ab2: SWAP3 00000ab3: SWAP2 00000ab4: SWAP1 00000ab5: DUP2 00000ab6: DUP2 00000ab7: MSTORE 00000ab8: PUSH1 0x20 00000aba: ADD 00000abb: DUP4 00000abc: DUP4 00000abd: PUSH1 0x20 00000abf: MUL 00000ac0: DUP1 00000ac1: DUP3 00000ac2: DUP5 00000ac3: CALLDATACOPY 00000ac4: DUP3 00000ac5: ADD 00000ac6: SWAP2 00000ac7: POP 00000ac8: POP 00000ac9: POP 00000aca: POP 00000acb: POP 00000acc: POP 00000acd: DUP13 00000ace: DUP13 00000acf: DUP1 00000ad0: DUP1 00000ad1: PUSH1 0x20 00000ad3: MUL 00000ad4: PUSH1 0x20 00000ad6: ADD 00000ad7: PUSH1 0x40 00000ad9: MLOAD 00000ada: SWAP1 00000adb: DUP2 00000adc: ADD 00000add: PUSH1 0x40 00000adf: MSTORE 00000ae0: DUP1 00000ae1: SWAP4 00000ae2: SWAP3 00000ae3: SWAP2 00000ae4: SWAP1 00000ae5: DUP2 00000ae6: DUP2 00000ae7: MSTORE 00000ae8: PUSH1 0x20 00000aea: ADD 00000aeb: DUP4 00000aec: DUP4 00000aed: PUSH1 0x20 00000aef: MUL 00000af0: DUP1 00000af1: DUP3 00000af2: DUP5 00000af3: CALLDATACOPY 00000af4: DUP3 00000af5: ADD 00000af6: SWAP2 00000af7: POP 00000af8: POP 00000af9: POP 00000afa: POP 00000afb: POP 00000afc: POP 00000afd: DUP12 00000afe: DUP12 00000aff: DUP1 00000b00: DUP1 00000b01: PUSH1 0x20 00000b03: MUL 00000b04: PUSH1 0x20 00000b06: ADD 00000b07: PUSH1 0x40 00000b09: MLOAD 00000b0a: SWAP1 00000b0b: DUP2 00000b0c: ADD 00000b0d: PUSH1 0x40 00000b0f: MSTORE 00000b10: DUP1 00000b11: SWAP4 00000b12: SWAP3 00000b13: SWAP2 00000b14: SWAP1 00000b15: DUP2 00000b16: DUP2 00000b17: MSTORE 00000b18: PUSH1 0x20 00000b1a: ADD 00000b1b: DUP4 00000b1c: DUP4 00000b1d: PUSH1 0x20 00000b1f: MUL 00000b20: DUP1 00000b21: DUP3 00000b22: DUP5 00000b23: CALLDATACOPY 00000b24: POP 00000b25: PUSH2 0x0b33 00000b28: SWAP5 00000b29: POP 00000b2a: PUSH2 0x1ad1 00000b2d: SWAP4 00000b2e: POP 00000b2f: POP 00000b30: POP 00000b31: POP 00000b32: JUMP 00000b33: JUMPDEST 00000b34: PUSH2 0x24de 00000b37: JUMP 00000b38: JUMPDEST 00000b39: PUSH2 0x0b71 00000b3c: DUP7 00000b3d: DUP7 00000b3e: DUP1 00000b3f: DUP1 00000b40: PUSH1 0x1f 00000b42: ADD 00000b43: PUSH1 0x20 00000b45: DUP1 00000b46: SWAP2 00000b47: DIV 00000b48: MUL 00000b49: PUSH1 0x20 00000b4b: ADD 00000b4c: PUSH1 0x40 00000b4e: MLOAD 00000b4f: SWAP1 00000b50: DUP2 00000b51: ADD 00000b52: PUSH1 0x40 00000b54: MSTORE 00000b55: DUP1 00000b56: SWAP4 00000b57: SWAP3 00000b58: SWAP2 00000b59: SWAP1 00000b5a: DUP2 00000b5b: DUP2 00000b5c: MSTORE 00000b5d: PUSH1 0x20 00000b5f: ADD 00000b60: DUP4 00000b61: DUP4 00000b62: DUP1 00000b63: DUP3 00000b64: DUP5 00000b65: CALLDATACOPY 00000b66: POP 00000b67: PUSH2 0x274b 00000b6a: SWAP5 00000b6b: POP 00000b6c: POP 00000b6d: POP 00000b6e: POP 00000b6f: POP 00000b70: JUMP 00000b71: JUMPDEST 00000b72: SWAP3 00000b73: SWAP7 00000b74: POP 00000b75: SWAP1 00000b76: SWAP5 00000b77: POP 00000b78: SWAP3 00000b79: POP 00000b7a: SWAP1 00000b7b: POP 00000b7c: PUSH1 0x01 00000b7e: PUSH1 0xa0 00000b80: PUSH1 0x02 00000b82: EXP 00000b83: SUB 00000b84: DUP2 00000b85: AND 00000b86: ADDRESS 00000b87: EQ 00000b88: PUSH2 0x0b90 00000b8b: JUMPI 00000b8c: PUSH1 0x00 00000b8e: DUP1 00000b8f: REVERT 00000b90: JUMPDEST 00000b91: PUSH2 0x0b99 00000b94: DUP3 00000b95: PUSH2 0x0997 00000b98: JUMP 00000b99: JUMPDEST 00000b9a: ISZERO 00000b9b: PUSH2 0x0ba3 00000b9e: JUMPI 00000b9f: PUSH1 0x00 00000ba1: DUP1 00000ba2: REVERT 00000ba3: JUMPDEST 00000ba4: PUSH2 0x0bae 00000ba7: DUP3 00000ba8: PUSH1 0x01 00000baa: PUSH2 0x2791 00000bad: JUMP 00000bae: JUMPDEST 00000baf: PUSH2 0x0bb8 00000bb2: DUP5 00000bb3: DUP5 00000bb4: PUSH2 0x2863 00000bb7: JUMP 00000bb8: JUMPDEST 00000bb9: ISZERO 00000bba: ISZERO 00000bbb: PUSH2 0x0bc3 00000bbe: JUMPI 00000bbf: PUSH1 0x00 00000bc1: DUP1 00000bc2: REVERT 00000bc3: JUMPDEST 00000bc4: PUSH1 0x40 00000bc6: DUP1 00000bc7: MLOAD 00000bc8: PUSH1 0x01 00000bca: PUSH1 0xa0 00000bcc: PUSH1 0x02 00000bce: EXP 00000bcf: SUB 00000bd0: DUP7 00000bd1: AND 00000bd2: DUP2 00000bd3: MSTORE 00000bd4: PUSH1 0x20 00000bd6: DUP2 00000bd7: ADD 00000bd8: DUP6 00000bd9: SWAP1 00000bda: MSTORE 00000bdb: DUP1 00000bdc: DUP3 00000bdd: ADD 00000bde: DUP5 00000bdf: SWAP1 00000be0: MSTORE 00000be1: SWAP1 00000be2: MLOAD 00000be3: PUSH32 0x4ab7d581336d92edbea22636a613e8e76c99ac7f91137c1523db38dbfb3bf329 00000c04: SWAP2 00000c05: DUP2 00000c06: SWAP1 00000c07: SUB 00000c08: PUSH1 0x60 00000c0a: ADD 00000c0b: SWAP1 00000c0c: LOG1 00000c0d: POP 00000c0e: POP 00000c0f: POP 00000c10: POP 00000c11: POP 00000c12: POP 00000c13: POP 00000c14: POP 00000c15: POP 00000c16: POP 00000c17: POP 00000c18: POP 00000c19: JUMP 00000c1a: JUMPDEST 00000c1b: PUSH2 0x0c22 00000c1e: PUSH2 0x1a26 00000c21: JUMP 00000c22: JUMPDEST 00000c23: PUSH1 0x01 00000c25: PUSH1 0xa0 00000c27: PUSH1 0x02 00000c29: EXP 00000c2a: SUB 00000c2b: AND 00000c2c: CALLER 00000c2d: EQ 00000c2e: PUSH2 0x0c36 00000c31: JUMPI 00000c32: PUSH1 0x00 00000c34: DUP1 00000c35: REVERT 00000c36: JUMPDEST 00000c37: PUSH2 0x0c3f 00000c3a: DUP2 00000c3b: PUSH2 0x29ee 00000c3e: JUMP 00000c3f: JUMPDEST 00000c40: POP 00000c41: JUMP 00000c42: JUMPDEST 00000c43: PUSH1 0x00 00000c45: DUP1 00000c46: PUSH1 0x00 00000c48: DUP4 00000c49: PUSH1 0x40 00000c4b: MLOAD 00000c4c: PUSH1 0x20 00000c4e: ADD 00000c4f: DUP1 00000c50: DUP1 00000c51: PUSH32 0x746f74616c5370656e7450657244617900000000000000000000000000000000 00000c72: DUP2 00000c73: MSTORE 00000c74: POP 00000c75: PUSH1 0x10 00000c77: ADD 00000c78: DUP3 00000c79: DUP2 00000c7a: MSTORE 00000c7b: PUSH1 0x20 00000c7d: ADD 00000c7e: SWAP2 00000c7f: POP 00000c80: POP 00000c81: PUSH1 0x40 00000c83: MLOAD 00000c84: PUSH1 0x20 00000c86: DUP2 00000c87: DUP4 00000c88: SUB 00000c89: SUB 00000c8a: DUP2 00000c8b: MSTORE 00000c8c: SWAP1 00000c8d: PUSH1 0x40 00000c8f: MSTORE 00000c90: PUSH1 0x40 00000c92: MLOAD 00000c93: DUP1 00000c94: DUP3 00000c95: DUP1 00000c96: MLOAD 00000c97: SWAP1 00000c98: PUSH1 0x20 00000c9a: ADD 00000c9b: SWAP1 00000c9c: DUP1 00000c9d: DUP4 00000c9e: DUP4 00000c9f: JUMPDEST 00000ca0: PUSH1 0x20 00000ca2: DUP4 00000ca3: LT 00000ca4: PUSH2 0x0cbe 00000ca7: JUMPI 00000ca8: DUP1 00000ca9: MLOAD 00000caa: DUP3 00000cab: MSTORE 00000cac: PUSH1 0x1f 00000cae: NOT 00000caf: SWAP1 00000cb0: SWAP3 00000cb1: ADD 00000cb2: SWAP2 00000cb3: PUSH1 0x20 00000cb5: SWAP2 00000cb6: DUP3 00000cb7: ADD 00000cb8: SWAP2 00000cb9: ADD 00000cba: PUSH2 0x0c9f 00000cbd: JUMP 00000cbe: JUMPDEST 00000cbf: MLOAD 00000cc0: DUP2 00000cc1: MLOAD 00000cc2: PUSH1 0x20 00000cc4: SWAP4 00000cc5: DUP5 00000cc6: SUB 00000cc7: PUSH2 0x0100 00000cca: EXP 00000ccb: PUSH1 0x00 00000ccd: NOT 00000cce: ADD 00000ccf: DUP1 00000cd0: NOT 00000cd1: SWAP1 00000cd2: SWAP3 00000cd3: AND 00000cd4: SWAP2 00000cd5: AND 00000cd6: OR 00000cd7: SWAP1 00000cd8: MSTORE 00000cd9: PUSH1 0x40 00000cdb: DUP1 00000cdc: MLOAD 00000cdd: SWAP3 00000cde: SWAP1 00000cdf: SWAP5 00000ce0: ADD 00000ce1: DUP3 00000ce2: SWAP1 00000ce3: SUB 00000ce4: SWAP1 00000ce5: SWAP2 00000ce6: KECCAK256 00000ce7: DUP7 00000ce8: MSTORE 00000ce9: DUP6 00000cea: ADD 00000ceb: SWAP6 00000cec: SWAP1 00000ced: SWAP6 00000cee: MSTORE 00000cef: SWAP3 00000cf0: SWAP1 00000cf1: SWAP3 00000cf2: ADD 00000cf3: PUSH1 0x00 00000cf5: KECCAK256 00000cf6: SLOAD 00000cf7: SWAP6 00000cf8: SWAP5 00000cf9: POP 00000cfa: POP 00000cfb: POP 00000cfc: POP 00000cfd: POP 00000cfe: JUMP 00000cff: JUMPDEST 00000d00: PUSH1 0x12 00000d02: DUP2 00000d03: JUMP 00000d04: JUMPDEST 00000d05: PUSH1 0x00 00000d07: PUSH1 0x04 00000d09: PUSH1 0x00 00000d0b: PUSH1 0x40 00000d0d: MLOAD 00000d0e: PUSH1 0x20 00000d10: ADD 00000d11: DUP1 00000d12: DUP1 00000d13: PUSH32 0x6973496e697469616c697a656400000000000000000000000000000000000000 00000d34: DUP2 00000d35: MSTORE 00000d36: POP 00000d37: PUSH1 0x0d 00000d39: ADD 00000d3a: SWAP1 00000d3b: POP 00000d3c: PUSH1 0x40 00000d3e: MLOAD 00000d3f: PUSH1 0x20 00000d41: DUP2 00000d42: DUP4 00000d43: SUB 00000d44: SUB 00000d45: DUP2 00000d46: MSTORE 00000d47: SWAP1 00000d48: PUSH1 0x40 00000d4a: MSTORE 00000d4b: PUSH1 0x40 00000d4d: MLOAD 00000d4e: DUP1 00000d4f: DUP3 00000d50: DUP1 00000d51: MLOAD 00000d52: SWAP1 00000d53: PUSH1 0x20 00000d55: ADD 00000d56: SWAP1 00000d57: DUP1 00000d58: DUP4 00000d59: DUP4 00000d5a: JUMPDEST 00000d5b: PUSH1 0x20 00000d5d: DUP4 00000d5e: LT 00000d5f: PUSH2 0x0d79 00000d62: JUMPI 00000d63: DUP1 00000d64: MLOAD 00000d65: DUP3 00000d66: MSTORE 00000d67: PUSH1 0x1f 00000d69: NOT 00000d6a: SWAP1 00000d6b: SWAP3 00000d6c: ADD 00000d6d: SWAP2 00000d6e: PUSH1 0x20 00000d70: SWAP2 00000d71: DUP3 00000d72: ADD 00000d73: SWAP2 00000d74: ADD 00000d75: PUSH2 0x0d5a 00000d78: JUMP 00000d79: JUMPDEST 00000d7a: MLOAD 00000d7b: DUP2 00000d7c: MLOAD 00000d7d: PUSH1 0x20 00000d7f: SWAP4 00000d80: DUP5 00000d81: SUB 00000d82: PUSH2 0x0100 00000d85: EXP 00000d86: PUSH1 0x00 00000d88: NOT 00000d89: ADD 00000d8a: DUP1 00000d8b: NOT 00000d8c: SWAP1 00000d8d: SWAP3 00000d8e: AND 00000d8f: SWAP2 00000d90: AND 00000d91: OR 00000d92: SWAP1 00000d93: MSTORE 00000d94: PUSH1 0x40 00000d96: DUP1 00000d97: MLOAD 00000d98: SWAP3 00000d99: SWAP1 00000d9a: SWAP5 00000d9b: ADD 00000d9c: DUP3 00000d9d: SWAP1 00000d9e: SUB 00000d9f: SWAP1 00000da0: SWAP2 00000da1: KECCAK256 00000da2: DUP7 00000da3: MSTORE 00000da4: DUP6 00000da5: ADD 00000da6: SWAP6 00000da7: SWAP1 00000da8: SWAP6 00000da9: MSTORE 00000daa: SWAP3 00000dab: SWAP1 00000dac: SWAP3 00000dad: ADD 00000dae: PUSH1 0x00 00000db0: KECCAK256 00000db1: SLOAD 00000db2: PUSH1 0xff 00000db4: AND 00000db5: SWAP5 00000db6: SWAP4 00000db7: POP 00000db8: POP 00000db9: POP 00000dba: POP 00000dbb: JUMP 00000dbc: JUMPDEST 00000dbd: PUSH2 0x0dc4 00000dc0: PUSH2 0x1a26 00000dc3: JUMP 00000dc4: JUMPDEST 00000dc5: PUSH1 0x01 00000dc7: PUSH1 0xa0 00000dc9: PUSH1 0x02 00000dcb: EXP 00000dcc: SUB 00000dcd: AND 00000dce: CALLER 00000dcf: EQ 00000dd0: PUSH2 0x0dd8 00000dd3: JUMPI 00000dd4: PUSH1 0x00 00000dd6: DUP1 00000dd7: REVERT 00000dd8: JUMPDEST 00000dd9: PUSH1 0x40 00000ddb: DUP1 00000ddc: MLOAD 00000ddd: PUSH1 0xe5 00000ddf: PUSH1 0x02 00000de1: EXP 00000de2: PUSH3 0x461bcd 00000de6: MUL 00000de7: DUP2 00000de8: MSTORE 00000de9: PUSH1 0x20 00000deb: PUSH1 0x04 00000ded: DUP3 00000dee: ADD 00000def: MSTORE 00000df0: PUSH1 0x0a 00000df2: PUSH1 0x24 00000df4: DUP3 00000df5: ADD 00000df6: MSTORE 00000df7: PUSH32 0x6465707265636174656400000000000000000000000000000000000000000000 00000e18: PUSH1 0x44 00000e1a: DUP3 00000e1b: ADD 00000e1c: MSTORE 00000e1d: SWAP1 00000e1e: MLOAD 00000e1f: SWAP1 00000e20: DUP2 00000e21: SWAP1 00000e22: SUB 00000e23: PUSH1 0x64 00000e25: ADD 00000e26: SWAP1 00000e27: REVERT 00000e28: JUMPDEST 00000e29: PUSH3 0x015180 00000e2d: TIMESTAMP 00000e2e: DIV 00000e2f: SWAP1 00000e30: JUMP 00000e31: JUMPDEST 00000e32: PUSH1 0x00 00000e34: DUP1 00000e35: PUSH1 0x00 00000e37: PUSH1 0x40 00000e39: MLOAD 00000e3a: PUSH1 0x20 00000e3c: ADD 00000e3d: DUP1 00000e3e: DUP1 00000e3f: PUSH32 0x7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000 00000e60: DUP2 00000e61: MSTORE 00000e62: POP 00000e63: PUSH1 0x1a 00000e65: ADD 00000e66: SWAP1 00000e67: POP 00000e68: PUSH1 0x40 00000e6a: MLOAD 00000e6b: PUSH1 0x20 00000e6d: DUP2 00000e6e: DUP4 00000e6f: SUB 00000e70: SUB 00000e71: DUP2 00000e72: MSTORE 00000e73: SWAP1 00000e74: PUSH1 0x40 00000e76: MSTORE 00000e77: PUSH1 0x40 00000e79: MLOAD 00000e7a: DUP1 00000e7b: DUP3 00000e7c: DUP1 00000e7d: MLOAD 00000e7e: SWAP1 00000e7f: PUSH1 0x20 00000e81: ADD 00000e82: SWAP1 00000e83: DUP1 00000e84: DUP4 00000e85: DUP4 00000e86: JUMPDEST 00000e87: PUSH1 0x20 00000e89: DUP4 00000e8a: LT 00000e8b: PUSH2 0x0ea5 00000e8e: JUMPI 00000e8f: DUP1 00000e90: MLOAD 00000e91: DUP3 00000e92: MSTORE 00000e93: PUSH1 0x1f 00000e95: NOT 00000e96: SWAP1 00000e97: SWAP3 00000e98: ADD 00000e99: SWAP2 00000e9a: PUSH1 0x20 00000e9c: SWAP2 00000e9d: DUP3 00000e9e: ADD 00000e9f: SWAP2 00000ea0: ADD 00000ea1: PUSH2 0x0e86 00000ea4: JUMP 00000ea5: JUMPDEST 00000ea6: MLOAD 00000ea7: DUP2 00000ea8: MLOAD 00000ea9: PUSH1 0x20 00000eab: SWAP4 00000eac: DUP5 00000ead: SUB 00000eae: PUSH2 0x0100 00000eb1: EXP 00000eb2: PUSH1 0x00 00000eb4: NOT 00000eb5: ADD 00000eb6: DUP1 00000eb7: NOT 00000eb8: SWAP1 00000eb9: SWAP3 00000eba: AND 00000ebb: SWAP2 00000ebc: AND 00000ebd: OR 00000ebe: SWAP1 00000ebf: MSTORE 00000ec0: PUSH1 0x40 00000ec2: DUP1 00000ec3: MLOAD 00000ec4: SWAP3 00000ec5: SWAP1 00000ec6: SWAP5 00000ec7: ADD 00000ec8: DUP3 00000ec9: SWAP1 00000eca: SUB 00000ecb: SWAP1 00000ecc: SWAP2 00000ecd: KECCAK256 00000ece: DUP7 00000ecf: MSTORE 00000ed0: DUP6 00000ed1: ADD 00000ed2: SWAP6 00000ed3: SWAP1 00000ed4: SWAP6 00000ed5: MSTORE 00000ed6: SWAP3 00000ed7: SWAP1 00000ed8: SWAP3 00000ed9: ADD 00000eda: PUSH1 0x00 00000edc: KECCAK256 00000edd: SLOAD 00000ede: SWAP5 00000edf: SWAP4 00000ee0: POP 00000ee1: POP 00000ee2: POP 00000ee3: POP 00000ee4: JUMP 00000ee5: JUMPDEST 00000ee6: PUSH1 0x00 00000ee8: PUSH1 0x40 00000eea: MLOAD 00000eeb: PUSH1 0x20 00000eed: ADD 00000eee: DUP1 00000eef: DUP1 00000ef0: PUSH32 0x6572632d746f2d6572632d636f72650000000000000000000000000000000000 00000f11: DUP2 00000f12: MSTORE 00000f13: POP 00000f14: PUSH1 0x0f 00000f16: ADD 00000f17: SWAP1 00000f18: POP 00000f19: PUSH1 0x40 00000f1b: MLOAD 00000f1c: PUSH1 0x20 00000f1e: DUP2 00000f1f: DUP4 00000f20: SUB 00000f21: SUB 00000f22: DUP2 00000f23: MSTORE 00000f24: SWAP1 00000f25: PUSH1 0x40 00000f27: MSTORE 00000f28: PUSH1 0x40 00000f2a: MLOAD 00000f2b: DUP1 00000f2c: DUP3 00000f2d: DUP1 00000f2e: MLOAD 00000f2f: SWAP1 00000f30: PUSH1 0x20 00000f32: ADD 00000f33: SWAP1 00000f34: DUP1 00000f35: DUP4 00000f36: DUP4 00000f37: JUMPDEST 00000f38: PUSH1 0x20 00000f3a: DUP4 00000f3b: LT 00000f3c: PUSH2 0x0f56 00000f3f: JUMPI 00000f40: DUP1 00000f41: MLOAD 00000f42: DUP3 00000f43: MSTORE 00000f44: PUSH1 0x1f 00000f46: NOT 00000f47: SWAP1 00000f48: SWAP3 00000f49: ADD 00000f4a: SWAP2 00000f4b: PUSH1 0x20 00000f4d: SWAP2 00000f4e: DUP3 00000f4f: ADD 00000f50: SWAP2 00000f51: ADD 00000f52: PUSH2 0x0f37 00000f55: JUMP 00000f56: JUMPDEST 00000f57: PUSH1 0x01 00000f59: DUP4 00000f5a: PUSH1 0x20 00000f5c: SUB 00000f5d: PUSH2 0x0100 00000f60: EXP 00000f61: SUB 00000f62: DUP1 00000f63: NOT 00000f64: DUP3 00000f65: MLOAD 00000f66: AND 00000f67: DUP2 00000f68: DUP5 00000f69: MLOAD 00000f6a: AND 00000f6b: DUP1 00000f6c: DUP3 00000f6d: OR 00000f6e: DUP6 00000f6f: MSTORE 00000f70: POP 00000f71: POP 00000f72: POP 00000f73: POP 00000f74: POP 00000f75: POP 00000f76: SWAP1 00000f77: POP 00000f78: ADD 00000f79: SWAP2 00000f7a: POP 00000f7b: POP 00000f7c: PUSH1 0x40 00000f7e: MLOAD 00000f7f: DUP1 00000f80: SWAP2 00000f81: SUB 00000f82: SWAP1 00000f83: KECCAK256 00000f84: SWAP1 00000f85: POP 00000f86: SWAP1 00000f87: JUMP 00000f88: JUMPDEST 00000f89: PUSH1 0x00 00000f8b: DUP1 00000f8c: PUSH1 0x00 00000f8e: PUSH1 0x40 00000f90: MLOAD 00000f91: PUSH1 0x20 00000f93: ADD 00000f94: DUP1 00000f95: DUP1 00000f96: PUSH32 0x657865637574696f6e4461696c794c696d697400000000000000000000000000 00000fb7: DUP2 00000fb8: MSTORE 00000fb9: POP 00000fba: PUSH1 0x13 00000fbc: ADD 00000fbd: SWAP1 00000fbe: POP 00000fbf: PUSH1 0x40 00000fc1: MLOAD 00000fc2: PUSH1 0x20 00000fc4: DUP2 00000fc5: DUP4 00000fc6: SUB 00000fc7: SUB 00000fc8: DUP2 00000fc9: MSTORE 00000fca: SWAP1 00000fcb: PUSH1 0x40 00000fcd: MSTORE 00000fce: PUSH1 0x40 00000fd0: MLOAD 00000fd1: DUP1 00000fd2: DUP3 00000fd3: DUP1 00000fd4: MLOAD 00000fd5: SWAP1 00000fd6: PUSH1 0x20 00000fd8: ADD 00000fd9: SWAP1 00000fda: DUP1 00000fdb: DUP4 00000fdc: DUP4 00000fdd: PUSH1 0x20 00000fdf: DUP4 00000fe0: LT 00000fe1: PUSH2 0x0ea5 00000fe4: JUMPI 00000fe5: DUP1 00000fe6: MLOAD 00000fe7: DUP3 00000fe8: MSTORE 00000fe9: PUSH1 0x1f 00000feb: NOT 00000fec: SWAP1 00000fed: SWAP3 00000fee: ADD 00000fef: SWAP2 00000ff0: PUSH1 0x20 00000ff2: SWAP2 00000ff3: DUP3 00000ff4: ADD 00000ff5: SWAP2 00000ff6: ADD 00000ff7: PUSH2 0x0e86 00000ffa: JUMP 00000ffb: JUMPDEST 00000ffc: PUSH1 0x00 00000ffe: PUSH1 0x02 00001000: PUSH1 0x00 00001002: PUSH1 0x40 00001004: MLOAD 00001005: PUSH1 0x20 00001007: ADD 00001008: DUP1 00001009: DUP1 0000100a: PUSH32 0x66616c6c6261636b526563697069656e74000000000000000000000000000000 0000102b: DUP2 0000102c: MSTORE 0000102d: POP 0000102e: PUSH1 0x11 00001030: ADD 00001031: SWAP1 00001032: POP 00001033: PUSH1 0x40 00001035: MLOAD 00001036: PUSH1 0x20 00001038: DUP2 00001039: DUP4 0000103a: SUB 0000103b: SUB 0000103c: DUP2 0000103d: MSTORE 0000103e: SWAP1 0000103f: PUSH1 0x40 00001041: MSTORE 00001042: PUSH1 0x40 00001044: MLOAD 00001045: DUP1 00001046: DUP3 00001047: DUP1 00001048: MLOAD 00001049: SWAP1 0000104a: PUSH1 0x20 0000104c: ADD 0000104d: SWAP1 0000104e: DUP1 0000104f: DUP4 00001050: DUP4 00001051: JUMPDEST 00001052: PUSH1 0x20 00001054: DUP4 00001055: LT 00001056: PUSH2 0x1070 00001059: JUMPI 0000105a: DUP1 0000105b: MLOAD 0000105c: DUP3 0000105d: MSTORE 0000105e: PUSH1 0x1f 00001060: NOT 00001061: SWAP1 00001062: SWAP3 00001063: ADD 00001064: SWAP2 00001065: PUSH1 0x20 00001067: SWAP2 00001068: DUP3 00001069: ADD 0000106a: SWAP2 0000106b: ADD 0000106c: PUSH2 0x1051 0000106f: JUMP 00001070: JUMPDEST 00001071: MLOAD 00001072: DUP2 00001073: MLOAD 00001074: PUSH1 0x20 00001076: SWAP4 00001077: DUP5 00001078: SUB 00001079: PUSH2 0x0100 0000107c: EXP 0000107d: PUSH1 0x00 0000107f: NOT 00001080: ADD 00001081: DUP1 00001082: NOT 00001083: SWAP1 00001084: SWAP3 00001085: AND 00001086: SWAP2 00001087: AND 00001088: OR 00001089: SWAP1 0000108a: MSTORE 0000108b: PUSH1 0x40 0000108d: DUP1 0000108e: MLOAD 0000108f: SWAP3 00001090: SWAP1 00001091: SWAP5 00001092: ADD 00001093: DUP3 00001094: SWAP1 00001095: SUB 00001096: SWAP1 00001097: SWAP2 00001098: KECCAK256 00001099: DUP7 0000109a: MSTORE 0000109b: DUP6 0000109c: ADD 0000109d: SWAP6 0000109e: SWAP1 0000109f: SWAP6 000010a0: MSTORE 000010a1: SWAP3 000010a2: SWAP1 000010a3: SWAP3 000010a4: ADD 000010a5: PUSH1 0x00 000010a7: KECCAK256 000010a8: SLOAD 000010a9: PUSH1 0x01 000010ab: PUSH1 0xa0 000010ad: PUSH1 0x02 000010af: EXP 000010b0: SUB 000010b1: AND 000010b2: SWAP5 000010b3: SWAP4 000010b4: POP 000010b5: POP 000010b6: POP 000010b7: POP 000010b8: JUMP 000010b9: JUMPDEST 000010ba: PUSH1 0x00 000010bc: DUP1 000010bd: PUSH1 0x00 000010bf: DUP4 000010c0: PUSH1 0x40 000010c2: MLOAD 000010c3: PUSH1 0x20 000010c5: ADD 000010c6: DUP1 000010c7: DUP1 000010c8: PUSH32 0x746f74616c457865637574656450657244617900000000000000000000000000 000010e9: DUP2 000010ea: MSTORE 000010eb: POP 000010ec: PUSH1 0x13 000010ee: ADD 000010ef: DUP3 000010f0: DUP2 000010f1: MSTORE 000010f2: PUSH1 0x20 000010f4: ADD 000010f5: SWAP2 000010f6: POP 000010f7: POP 000010f8: PUSH1 0x40 000010fa: MLOAD 000010fb: PUSH1 0x20 000010fd: DUP2 000010fe: DUP4 000010ff: SUB 00001100: SUB 00001101: DUP2 00001102: MSTORE 00001103: SWAP1 00001104: PUSH1 0x40 00001106: MSTORE 00001107: PUSH1 0x40 00001109: MLOAD 0000110a: DUP1 0000110b: DUP3 0000110c: DUP1 0000110d: MLOAD 0000110e: SWAP1 0000110f: PUSH1 0x20 00001111: ADD 00001112: SWAP1 00001113: DUP1 00001114: DUP4 00001115: DUP4 00001116: PUSH1 0x20 00001118: DUP4 00001119: LT 0000111a: PUSH2 0x0cbe 0000111d: JUMPI 0000111e: DUP1 0000111f: MLOAD 00001120: DUP3 00001121: MSTORE 00001122: PUSH1 0x1f 00001124: NOT 00001125: SWAP1 00001126: SWAP3 00001127: ADD 00001128: SWAP2 00001129: PUSH1 0x20 0000112b: SWAP2 0000112c: DUP3 0000112d: ADD 0000112e: SWAP2 0000112f: ADD 00001130: PUSH2 0x0c9f 00001133: JUMP 00001134: JUMPDEST 00001135: PUSH1 0x00 00001137: PUSH2 0x113e 0000113a: PUSH2 0x0d04 0000113d: JUMP 0000113e: JUMPDEST 0000113f: ISZERO 00001140: PUSH2 0x1148 00001143: JUMPI 00001144: PUSH1 0x00 00001146: DUP1 00001147: REVERT 00001148: JUMPDEST 00001149: PUSH1 0x01 0000114b: PUSH1 0xa0 0000114d: PUSH1 0x02 0000114f: EXP 00001150: SUB 00001151: DUP11 00001152: AND 00001153: ISZERO 00001154: DUP1 00001155: ISZERO 00001156: SWAP1 00001157: PUSH2 0x1164 0000115a: JUMPI 0000115b: POP 0000115c: PUSH2 0x1164 0000115f: DUP11 00001160: PUSH2 0x2ae0 00001163: JUMP 00001164: JUMPDEST 00001165: ISZERO 00001166: ISZERO 00001167: PUSH2 0x116f 0000116a: JUMPI 0000116b: PUSH1 0x00 0000116d: DUP1 0000116e: REVERT 0000116f: JUMPDEST 00001170: DUP8 00001171: ISZERO 00001172: ISZERO 00001173: PUSH2 0x117b 00001176: JUMPI 00001177: PUSH1 0x00 00001179: DUP1 0000117a: REVERT 0000117b: JUMPDEST 0000117c: PUSH1 0x00 0000117e: DUP8 0000117f: GT 00001180: PUSH2 0x1188 00001183: JUMPI 00001184: PUSH1 0x00 00001186: DUP1 00001187: REVERT 00001188: JUMPDEST 00001189: DUP5 0000118a: DUP5 0000118b: LT 0000118c: PUSH2 0x1194 0000118f: JUMPI 00001190: PUSH1 0x00 00001192: DUP1 00001193: REVERT 00001194: JUMPDEST 00001195: PUSH1 0x01 00001197: PUSH1 0xa0 00001199: PUSH1 0x02 0000119b: EXP 0000119c: SUB 0000119d: DUP4 0000119e: AND 0000119f: ISZERO 000011a0: ISZERO 000011a1: PUSH2 0x11a9 000011a4: JUMPI 000011a5: PUSH1 0x00 000011a7: DUP1 000011a8: REVERT 000011a9: JUMPDEST 000011aa: PUSH2 0x2710 000011ad: DUP3 000011ae: LT 000011af: PUSH2 0x1202 000011b2: JUMPI 000011b3: PUSH1 0x40 000011b5: DUP1 000011b6: MLOAD 000011b7: PUSH1 0xe5 000011b9: PUSH1 0x02 000011bb: EXP 000011bc: PUSH3 0x461bcd 000011c0: MUL 000011c1: DUP2 000011c2: MSTORE 000011c3: PUSH1 0x20 000011c5: PUSH1 0x04 000011c7: DUP3 000011c8: ADD 000011c9: MSTORE 000011ca: PUSH1 0x13 000011cc: PUSH1 0x24 000011ce: DUP3 000011cf: ADD 000011d0: MSTORE 000011d1: PUSH32 0x496e76616c6964206665652070657263656e7400000000000000000000000000 000011f2: PUSH1 0x44 000011f4: DUP3 000011f5: ADD 000011f6: MSTORE 000011f7: SWAP1 000011f8: MLOAD 000011f9: SWAP1 000011fa: DUP2 000011fb: SWAP1 000011fc: SUB 000011fd: PUSH1 0x64 000011ff: ADD 00001200: SWAP1 00001201: REVERT 00001202: JUMPDEST 00001203: DUP10 00001204: PUSH1 0x02 00001206: PUSH1 0x00 00001208: PUSH1 0x40 0000120a: MLOAD 0000120b: PUSH1 0x20 0000120d: ADD 0000120e: DUP1 0000120f: DUP1 00001210: PUSH32 0x76616c696461746f72436f6e7472616374000000000000000000000000000000 00001231: DUP2 00001232: MSTORE 00001233: POP 00001234: PUSH1 0x11 00001236: ADD 00001237: SWAP1 00001238: POP 00001239: PUSH1 0x40 0000123b: MLOAD 0000123c: PUSH1 0x20 0000123e: DUP2 0000123f: DUP4 00001240: SUB 00001241: SUB 00001242: DUP2 00001243: MSTORE 00001244: SWAP1 00001245: PUSH1 0x40 00001247: MSTORE 00001248: PUSH1 0x40 0000124a: MLOAD 0000124b: DUP1 0000124c: DUP3 0000124d: DUP1 0000124e: MLOAD 0000124f: SWAP1 00001250: PUSH1 0x20 00001252: ADD 00001253: SWAP1 00001254: DUP1 00001255: DUP4 00001256: DUP4 00001257: JUMPDEST 00001258: PUSH1 0x20 0000125a: DUP4 0000125b: LT 0000125c: PUSH2 0x1276 0000125f: JUMPI 00001260: DUP1 00001261: MLOAD 00001262: DUP3 00001263: MSTORE 00001264: PUSH1 0x1f 00001266: NOT 00001267: SWAP1 00001268: SWAP3 00001269: ADD 0000126a: SWAP2 0000126b: PUSH1 0x20 0000126d: SWAP2 0000126e: DUP3 0000126f: ADD 00001270: SWAP2 00001271: ADD 00001272: PUSH2 0x1257 00001275: JUMP 00001276: JUMPDEST 00001277: MLOAD 00001278: DUP2 00001279: MLOAD 0000127a: PUSH1 0x20 0000127c: SWAP4 0000127d: DUP5 0000127e: SUB 0000127f: PUSH2 0x0100 00001282: EXP 00001283: PUSH1 0x00 00001285: NOT 00001286: ADD 00001287: DUP1 00001288: NOT 00001289: SWAP1 0000128a: SWAP3 0000128b: AND 0000128c: SWAP2 0000128d: AND 0000128e: OR 0000128f: SWAP1 00001290: MSTORE 00001291: PUSH1 0x40 00001293: DUP1 00001294: MLOAD 00001295: SWAP3 00001296: SWAP1 00001297: SWAP5 00001298: ADD 00001299: DUP3 0000129a: SWAP1 0000129b: SUB 0000129c: SWAP1 0000129d: SWAP2 0000129e: KECCAK256 0000129f: DUP7 000012a0: MSTORE 000012a1: DUP6 000012a2: ADD 000012a3: SWAP6 000012a4: SWAP1 000012a5: SWAP6 000012a6: MSTORE 000012a7: SWAP3 000012a8: SWAP1 000012a9: SWAP3 000012aa: ADD 000012ab: PUSH1 0x00 000012ad: KECCAK256 000012ae: DUP1 000012af: SLOAD 000012b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012c5: NOT 000012c6: AND 000012c7: PUSH1 0x01 000012c9: PUSH1 0xa0 000012cb: PUSH1 0x02 000012cd: EXP 000012ce: SUB 000012cf: SWAP6 000012d0: SWAP1 000012d1: SWAP6 000012d2: AND 000012d3: SWAP5 000012d4: SWAP1 000012d5: SWAP5 000012d6: OR 000012d7: SWAP1 000012d8: SWAP4 000012d9: SSTORE 000012da: POP 000012db: PUSH2 0x12e7 000012de: SWAP2 000012df: POP 000012e0: DUP11 000012e1: SWAP1 000012e2: POP 000012e3: PUSH2 0x2ae8 000012e6: JUMP 000012e7: JUMPDEST 000012e8: NUMBER 000012e9: PUSH1 0x00 000012eb: DUP1 000012ec: PUSH1 0x40 000012ee: MLOAD 000012ef: PUSH1 0x20 000012f1: ADD 000012f2: DUP1 000012f3: DUP1 000012f4: PUSH32 0x6465706c6f7965644174426c6f636b0000000000000000000000000000000000 00001315: DUP2 00001316: MSTORE 00001317: POP 00001318: PUSH1 0x0f 0000131a: ADD 0000131b: SWAP1 0000131c: POP 0000131d: PUSH1 0x40 0000131f: MLOAD 00001320: PUSH1 0x20 00001322: DUP2 00001323: DUP4 00001324: SUB 00001325: SUB 00001326: DUP2 00001327: MSTORE 00001328: SWAP1 00001329: PUSH1 0x40 0000132b: MSTORE 0000132c: PUSH1 0x40 0000132e: MLOAD 0000132f: DUP1 00001330: DUP3 00001331: DUP1 00001332: MLOAD 00001333: SWAP1 00001334: PUSH1 0x20 00001336: ADD 00001337: SWAP1 00001338: DUP1 00001339: DUP4 0000133a: DUP4 0000133b: JUMPDEST 0000133c: PUSH1 0x20 0000133e: DUP4 0000133f: LT 00001340: PUSH2 0x135a 00001343: JUMPI 00001344: DUP1 00001345: MLOAD 00001346: DUP3 00001347: MSTORE 00001348: PUSH1 0x1f 0000134a: NOT 0000134b: SWAP1 0000134c: SWAP3 0000134d: ADD 0000134e: SWAP2 0000134f: PUSH1 0x20 00001351: SWAP2 00001352: DUP3 00001353: ADD 00001354: SWAP2 00001355: ADD 00001356: PUSH2 0x133b 00001359: JUMP 0000135a: JUMPDEST 0000135b: MLOAD 0000135c: DUP2 0000135d: MLOAD 0000135e: PUSH1 0x20 00001360: SWAP4 00001361: DUP5 00001362: SUB 00001363: PUSH2 0x0100 00001366: EXP 00001367: PUSH1 0x00 00001369: NOT 0000136a: ADD 0000136b: DUP1 0000136c: NOT 0000136d: SWAP1 0000136e: SWAP3 0000136f: AND 00001370: SWAP2 00001371: AND 00001372: OR 00001373: SWAP1 00001374: MSTORE 00001375: PUSH1 0x40 00001377: DUP1 00001378: MLOAD 00001379: SWAP3 0000137a: SWAP1 0000137b: SWAP5 0000137c: ADD 0000137d: DUP3 0000137e: SWAP1 0000137f: SUB 00001380: SWAP1 00001381: SWAP2 00001382: KECCAK256 00001383: DUP7 00001384: MSTORE 00001385: DUP6 00001386: DUP2 00001387: ADD 00001388: SWAP7 00001389: SWAP1 0000138a: SWAP7 0000138b: MSTORE 0000138c: POP 0000138d: SWAP3 0000138e: DUP4 0000138f: ADD 00001390: PUSH1 0x00 00001392: SWAP1 00001393: DUP2 00001394: KECCAK256 00001395: SWAP6 00001396: SWAP1 00001397: SWAP6 00001398: SSTORE 00001399: POP 0000139a: POP 0000139b: DUP1 0000139c: MLOAD 0000139d: PUSH32 0x7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000 000013be: DUP2 000013bf: DUP5 000013c0: ADD 000013c1: MSTORE 000013c2: DUP2 000013c3: MLOAD 000013c4: PUSH1 0x1a 000013c6: DUP2 000013c7: DUP4 000013c8: SUB 000013c9: ADD 000013ca: DUP2 000013cb: MSTORE 000013cc: PUSH1 0x3a 000013ce: SWAP1 000013cf: SWAP2 000013d0: ADD 000013d1: SWAP2 000013d2: DUP3 000013d3: SWAP1 000013d4: MSTORE 000013d5: DUP1 000013d6: MLOAD 000013d7: DUP13 000013d8: SWAP5 000013d9: SWAP4 000013da: DUP5 000013db: SWAP4 000013dc: SWAP2 000013dd: DUP3 000013de: SWAP2 000013df: DUP5 000013e0: ADD 000013e1: SWAP1 000013e2: DUP1 000013e3: DUP4 000013e4: DUP4 000013e5: JUMPDEST 000013e6: PUSH1 0x20 000013e8: DUP4 000013e9: LT 000013ea: PUSH2 0x1404 000013ed: JUMPI 000013ee: DUP1 000013ef: MLOAD 000013f0: DUP3 000013f1: MSTORE 000013f2: PUSH1 0x1f 000013f4: NOT 000013f5: SWAP1 000013f6: SWAP3 000013f7: ADD 000013f8: SWAP2 000013f9: PUSH1 0x20 000013fb: SWAP2 000013fc: DUP3 000013fd: ADD 000013fe: SWAP2 000013ff: ADD 00001400: PUSH2 0x13e5 00001403: JUMP 00001404: JUMPDEST 00001405: MLOAD 00001406: DUP2 00001407: MLOAD 00001408: PUSH1 0x20 0000140a: SWAP4 0000140b: DUP5 0000140c: SUB 0000140d: PUSH2 0x0100 00001410: EXP 00001411: PUSH1 0x00 00001413: NOT 00001414: ADD 00001415: DUP1 00001416: NOT 00001417: SWAP1 00001418: SWAP3 00001419: AND 0000141a: SWAP2 0000141b: AND 0000141c: OR 0000141d: SWAP1 0000141e: MSTORE 0000141f: PUSH1 0x40 00001421: DUP1 00001422: MLOAD 00001423: SWAP3 00001424: SWAP1 00001425: SWAP5 00001426: ADD 00001427: DUP3 00001428: SWAP1 00001429: SUB 0000142a: SWAP1 0000142b: SWAP2 0000142c: KECCAK256 0000142d: DUP7 0000142e: MSTORE 0000142f: DUP6 00001430: DUP2 00001431: ADD 00001432: SWAP7 00001433: SWAP1 00001434: SWAP7 00001435: MSTORE 00001436: POP 00001437: SWAP3 00001438: DUP4 00001439: ADD 0000143a: PUSH1 0x00 0000143c: SWAP1 0000143d: DUP2 0000143e: KECCAK256 0000143f: SWAP6 00001440: SWAP1 00001441: SWAP6 00001442: SSTORE 00001443: POP 00001444: POP 00001445: DUP1 00001446: MLOAD 00001447: PUSH32 0x6761735072696365000000000000000000000000000000000000000000000000 00001468: DUP2 00001469: DUP5 0000146a: ADD 0000146b: MSTORE 0000146c: DUP2 0000146d: MLOAD 0000146e: PUSH1 0x08 00001470: DUP2 00001471: DUP4 00001472: SUB 00001473: ADD 00001474: DUP2 00001475: MSTORE 00001476: PUSH1 0x28 00001478: SWAP1 00001479: SWAP2 0000147a: ADD 0000147b: SWAP2 0000147c: DUP3 0000147d: SWAP1 0000147e: MSTORE 0000147f: DUP1 00001480: MLOAD 00001481: DUP12 00001482: SWAP5 00001483: SWAP4 00001484: DUP5 00001485: SWAP4 00001486: SWAP2 00001487: DUP3 00001488: SWAP2 00001489: DUP5 0000148a: ADD 0000148b: SWAP1 0000148c: DUP1 0000148d: DUP4 0000148e: DUP4 0000148f: JUMPDEST 00001490: PUSH1 0x20 00001492: DUP4 00001493: LT 00001494: PUSH2 0x14ae 00001497: JUMPI 00001498: DUP1 00001499: MLOAD 0000149a: DUP3 0000149b: MSTORE 0000149c: PUSH1 0x1f 0000149e: NOT 0000149f: SWAP1 000014a0: SWAP3 000014a1: ADD 000014a2: SWAP2 000014a3: PUSH1 0x20 000014a5: SWAP2 000014a6: DUP3 000014a7: ADD 000014a8: SWAP2 000014a9: ADD 000014aa: PUSH2 0x148f 000014ad: JUMP 000014ae: JUMPDEST 000014af: MLOAD 000014b0: DUP2 000014b1: MLOAD 000014b2: PUSH1 0x20 000014b4: SWAP4 000014b5: DUP5 000014b6: SUB 000014b7: PUSH2 0x0100 000014ba: EXP 000014bb: PUSH1 0x00 000014bd: NOT 000014be: ADD 000014bf: DUP1 000014c0: NOT 000014c1: SWAP1 000014c2: SWAP3 000014c3: AND 000014c4: SWAP2 000014c5: AND 000014c6: OR 000014c7: SWAP1 000014c8: MSTORE 000014c9: PUSH1 0x40 000014cb: DUP1 000014cc: MLOAD 000014cd: SWAP3 000014ce: SWAP1 000014cf: SWAP5 000014d0: ADD 000014d1: DUP3 000014d2: SWAP1 000014d3: SUB 000014d4: SWAP1 000014d5: SWAP2 000014d6: KECCAK256 000014d7: DUP7 000014d8: MSTORE 000014d9: DUP6 000014da: DUP2 000014db: ADD 000014dc: SWAP7 000014dd: SWAP1 000014de: SWAP7 000014df: MSTORE 000014e0: POP 000014e1: SWAP3 000014e2: DUP4 000014e3: ADD 000014e4: PUSH1 0x00 000014e6: SWAP1 000014e7: DUP2 000014e8: KECCAK256 000014e9: SWAP6 000014ea: SWAP1 000014eb: SWAP6 000014ec: SSTORE 000014ed: POP 000014ee: POP 000014ef: DUP1 000014f0: MLOAD 000014f1: PUSH32 0x6d61785065725478000000000000000000000000000000000000000000000000 00001512: DUP2 00001513: DUP5 00001514: ADD 00001515: MSTORE 00001516: DUP2 00001517: MLOAD 00001518: PUSH1 0x08 0000151a: DUP2 0000151b: DUP4 0000151c: SUB 0000151d: ADD 0000151e: DUP2 0000151f: MSTORE 00001520: PUSH1 0x28 00001522: SWAP1 00001523: SWAP2 00001524: ADD 00001525: SWAP2 00001526: DUP3 00001527: SWAP1 00001528: MSTORE 00001529: DUP1 0000152a: MLOAD 0000152b: DUP11 0000152c: SWAP5 0000152d: SWAP4 0000152e: DUP5 0000152f: SWAP4 00001530: SWAP2 00001531: DUP3 00001532: SWAP2 00001533: DUP5 00001534: ADD 00001535: SWAP1 00001536: DUP1 00001537: DUP4 00001538: DUP4 00001539: JUMPDEST 0000153a: PUSH1 0x20 0000153c: DUP4 0000153d: LT 0000153e: PUSH2 0x1558 00001541: JUMPI 00001542: DUP1 00001543: MLOAD 00001544: DUP3 00001545: MSTORE 00001546: PUSH1 0x1f 00001548: NOT 00001549: SWAP1 0000154a: SWAP3 0000154b: ADD 0000154c: SWAP2 0000154d: PUSH1 0x20 0000154f: SWAP2 00001550: DUP3 00001551: ADD 00001552: SWAP2 00001553: ADD 00001554: PUSH2 0x1539 00001557: JUMP 00001558: JUMPDEST 00001559: MLOAD 0000155a: DUP2 0000155b: MLOAD 0000155c: PUSH1 0x20 0000155e: SWAP4 0000155f: DUP5 00001560: SUB 00001561: PUSH2 0x0100 00001564: EXP 00001565: PUSH1 0x00 00001567: NOT 00001568: ADD 00001569: DUP1 0000156a: NOT 0000156b: SWAP1 0000156c: SWAP3 0000156d: AND 0000156e: SWAP2 0000156f: AND 00001570: OR 00001571: SWAP1 00001572: MSTORE 00001573: PUSH1 0x40 00001575: DUP1 00001576: MLOAD 00001577: SWAP3 00001578: SWAP1 00001579: SWAP5 0000157a: ADD 0000157b: DUP3 0000157c: SWAP1 0000157d: SUB 0000157e: SWAP1 0000157f: SWAP2 00001580: KECCAK256 00001581: DUP7 00001582: MSTORE 00001583: DUP6 00001584: DUP2 00001585: ADD 00001586: SWAP7 00001587: SWAP1 00001588: SWAP7 00001589: MSTORE 0000158a: POP 0000158b: SWAP3 0000158c: DUP4 0000158d: ADD 0000158e: PUSH1 0x00 00001590: SWAP1 00001591: DUP2 00001592: KECCAK256 00001593: SWAP6 00001594: SWAP1 00001595: SWAP6 00001596: SSTORE 00001597: POP 00001598: POP 00001599: DUP1 0000159a: MLOAD 0000159b: PUSH32 0x657865637574696f6e4461696c794c696d697400000000000000000000000000 000015bc: DUP2 000015bd: DUP5 000015be: ADD 000015bf: MSTORE 000015c0: DUP2 000015c1: MLOAD 000015c2: PUSH1 0x13 000015c4: DUP2 000015c5: DUP4 000015c6: SUB 000015c7: ADD 000015c8: DUP2 000015c9: MSTORE 000015ca: PUSH1 0x33 000015cc: SWAP1 000015cd: SWAP2 000015ce: ADD 000015cf: SWAP2 000015d0: DUP3 000015d1: SWAP1 000015d2: MSTORE 000015d3: DUP1 000015d4: MLOAD 000015d5: DUP10 000015d6: SWAP5 000015d7: SWAP4 000015d8: DUP5 000015d9: SWAP4 000015da: SWAP2 000015db: DUP3 000015dc: SWAP2 000015dd: DUP5 000015de: ADD 000015df: SWAP1 000015e0: DUP1 000015e1: DUP4 000015e2: DUP4 000015e3: JUMPDEST 000015e4: PUSH1 0x20 000015e6: DUP4 000015e7: LT 000015e8: PUSH2 0x1602 000015eb: JUMPI 000015ec: DUP1 000015ed: MLOAD 000015ee: DUP3 000015ef: MSTORE 000015f0: PUSH1 0x1f 000015f2: NOT 000015f3: SWAP1 000015f4: SWAP3 000015f5: ADD 000015f6: SWAP2 000015f7: PUSH1 0x20 000015f9: SWAP2 000015fa: DUP3 000015fb: ADD 000015fc: SWAP2 000015fd: ADD 000015fe: PUSH2 0x15e3 00001601: JUMP 00001602: JUMPDEST 00001603: MLOAD 00001604: DUP2 00001605: MLOAD 00001606: PUSH1 0x20 00001608: SWAP4 00001609: DUP5 0000160a: SUB 0000160b: PUSH2 0x0100 0000160e: EXP 0000160f: PUSH1 0x00 00001611: NOT 00001612: ADD 00001613: DUP1 00001614: NOT 00001615: SWAP1 00001616: SWAP3 00001617: AND 00001618: SWAP2 00001619: AND 0000161a: OR 0000161b: SWAP1 0000161c: MSTORE 0000161d: PUSH1 0x40 0000161f: DUP1 00001620: MLOAD 00001621: SWAP3 00001622: SWAP1 00001623: SWAP5 00001624: ADD 00001625: DUP3 00001626: SWAP1 00001627: SUB 00001628: SWAP1 00001629: SWAP2 0000162a: KECCAK256 0000162b: DUP7 0000162c: MSTORE 0000162d: DUP6 0000162e: DUP2 0000162f: ADD 00001630: SWAP7 00001631: SWAP1 00001632: SWAP7 00001633: MSTORE 00001634: POP 00001635: SWAP3 00001636: DUP4 00001637: ADD 00001638: PUSH1 0x00 0000163a: SWAP1 0000163b: DUP2 0000163c: KECCAK256 0000163d: SWAP6 0000163e: SWAP1 0000163f: SWAP6 00001640: SSTORE 00001641: POP 00001642: POP 00001643: DUP1 00001644: MLOAD 00001645: PUSH32 0x657865637574696f6e4d61785065725478000000000000000000000000000000 00001666: DUP2 00001667: DUP5 00001668: ADD 00001669: MSTORE 0000166a: DUP2 0000166b: MLOAD 0000166c: PUSH1 0x11 0000166e: DUP2 0000166f: DUP4 00001670: SUB 00001671: ADD 00001672: DUP2 00001673: MSTORE 00001674: PUSH1 0x31 00001676: SWAP1 00001677: SWAP2 00001678: ADD 00001679: SWAP2 0000167a: DUP3 0000167b: SWAP1 0000167c: MSTORE 0000167d: DUP1 0000167e: MLOAD 0000167f: DUP9 00001680: SWAP5 00001681: SWAP4 00001682: DUP5 00001683: SWAP4 00001684: SWAP2 00001685: DUP3 00001686: SWAP2 00001687: DUP5 00001688: ADD 00001689: SWAP1 0000168a: DUP1 0000168b: DUP4 0000168c: DUP4 0000168d: JUMPDEST 0000168e: PUSH1 0x20 00001690: DUP4 00001691: LT 00001692: PUSH2 0x16ac 00001695: JUMPI 00001696: DUP1 00001697: MLOAD 00001698: DUP3 00001699: MSTORE 0000169a: PUSH1 0x1f 0000169c: NOT 0000169d: SWAP1 0000169e: SWAP3 0000169f: ADD 000016a0: SWAP2 000016a1: PUSH1 0x20 000016a3: SWAP2 000016a4: DUP3 000016a5: ADD 000016a6: SWAP2 000016a7: ADD 000016a8: PUSH2 0x168d 000016ab: JUMP 000016ac: JUMPDEST 000016ad: MLOAD 000016ae: DUP2 000016af: MLOAD 000016b0: PUSH1 0x20 000016b2: SWAP4 000016b3: DUP5 000016b4: SUB 000016b5: PUSH2 0x0100 000016b8: EXP 000016b9: PUSH1 0x00 000016bb: NOT 000016bc: ADD 000016bd: DUP1 000016be: NOT 000016bf: SWAP1 000016c0: SWAP3 000016c1: AND 000016c2: SWAP2 000016c3: AND 000016c4: OR 000016c5: SWAP1 000016c6: MSTORE 000016c7: PUSH1 0x40 000016c9: DUP1 000016ca: MLOAD 000016cb: SWAP3 000016cc: SWAP1 000016cd: SWAP5 000016ce: ADD 000016cf: DUP3 000016d0: SWAP1 000016d1: SUB 000016d2: SWAP1 000016d3: SWAP2 000016d4: KECCAK256 000016d5: DUP7 000016d6: MSTORE 000016d7: DUP6 000016d8: DUP2 000016d9: ADD 000016da: SWAP7 000016db: SWAP1 000016dc: SWAP7 000016dd: MSTORE 000016de: POP 000016df: SWAP3 000016e0: DUP4 000016e1: ADD 000016e2: PUSH1 0x00 000016e4: SWAP1 000016e5: DUP2 000016e6: KECCAK256 000016e7: SWAP6 000016e8: SWAP1 000016e9: SWAP6 000016ea: SSTORE 000016eb: POP 000016ec: POP 000016ed: DUP1 000016ee: MLOAD 000016ef: PUSH32 0x66656550657263656e7400000000000000000000000000000000000000000000 00001710: DUP2 00001711: DUP5 00001712: ADD 00001713: MSTORE 00001714: DUP2 00001715: MLOAD 00001716: PUSH1 0x0a 00001718: DUP2 00001719: DUP4 0000171a: SUB 0000171b: ADD 0000171c: DUP2 0000171d: MSTORE 0000171e: PUSH1 0x2a 00001720: SWAP1 00001721: SWAP2 00001722: ADD 00001723: SWAP2 00001724: DUP3 00001725: SWAP1 00001726: MSTORE 00001727: DUP1 00001728: MLOAD 00001729: DUP7 0000172a: SWAP5 0000172b: SWAP4 0000172c: DUP5 0000172d: SWAP4 0000172e: SWAP2 0000172f: DUP3 00001730: SWAP2 00001731: DUP5 00001732: ADD 00001733: SWAP1 00001734: DUP1 00001735: DUP4 00001736: DUP4 00001737: JUMPDEST 00001738: PUSH1 0x20 0000173a: DUP4 0000173b: LT 0000173c: PUSH2 0x1756 0000173f: JUMPI 00001740: DUP1 00001741: MLOAD 00001742: DUP3 00001743: MSTORE 00001744: PUSH1 0x1f 00001746: NOT 00001747: SWAP1 00001748: SWAP3 00001749: ADD 0000174a: SWAP2 0000174b: PUSH1 0x20 0000174d: SWAP2 0000174e: DUP3 0000174f: ADD 00001750: SWAP2 00001751: ADD 00001752: PUSH2 0x1737 00001755: JUMP 00001756: JUMPDEST 00001757: MLOAD 00001758: DUP2 00001759: MLOAD 0000175a: PUSH1 0x20 0000175c: SWAP4 0000175d: DUP5 0000175e: SUB 0000175f: PUSH2 0x0100 00001762: EXP 00001763: PUSH1 0x00 00001765: NOT 00001766: ADD 00001767: DUP1 00001768: NOT 00001769: SWAP1 0000176a: SWAP3 0000176b: AND 0000176c: SWAP2 0000176d: AND 0000176e: OR 0000176f: SWAP1 00001770: MSTORE 00001771: PUSH1 0x40 00001773: DUP1 00001774: MLOAD 00001775: SWAP3 00001776: SWAP1 00001777: SWAP5 00001778: ADD 00001779: DUP3 0000177a: SWAP1 0000177b: SUB 0000177c: SWAP1 0000177d: SWAP2 0000177e: KECCAK256 0000177f: DUP7 00001780: MSTORE 00001781: DUP6 00001782: ADD 00001783: SWAP6 00001784: SWAP1 00001785: SWAP6 00001786: MSTORE 00001787: SWAP3 00001788: SWAP1 00001789: SWAP3 0000178a: ADD 0000178b: PUSH1 0x00 0000178d: KECCAK256 0000178e: SWAP4 0000178f: SWAP1 00001790: SWAP4 00001791: SSTORE 00001792: POP 00001793: PUSH2 0x179f 00001796: SWAP2 00001797: POP 00001798: DUP5 00001799: SWAP1 0000179a: POP 0000179b: PUSH2 0x2b82 0000179e: JUMP 0000179f: JUMPDEST 000017a0: PUSH2 0x17a9 000017a3: PUSH1 0x01 000017a5: PUSH2 0x2c40 000017a8: JUMP 000017a9: JUMPDEST 000017aa: PUSH2 0x17b1 000017ad: PUSH2 0x0d04 000017b0: JUMP 000017b1: JUMPDEST 000017b2: SWAP11 000017b3: SWAP10 000017b4: POP 000017b5: POP 000017b6: POP 000017b7: POP 000017b8: POP 000017b9: POP 000017ba: POP 000017bb: POP 000017bc: POP 000017bd: POP 000017be: JUMP 000017bf: JUMPDEST 000017c0: PUSH1 0x00 000017c2: DUP1 000017c3: PUSH1 0x00 000017c5: PUSH1 0x40 000017c7: MLOAD 000017c8: PUSH1 0x20 000017ca: ADD 000017cb: DUP1 000017cc: DUP1 000017cd: PUSH32 0x6461696c794c696d697400000000000000000000000000000000000000000000 000017ee: DUP2 000017ef: MSTORE 000017f0: POP 000017f1: PUSH1 0x0a 000017f3: ADD 000017f4: SWAP1 000017f5: POP 000017f6: PUSH1 0x40 000017f8: MLOAD 000017f9: PUSH1 0x20 000017fb: DUP2 000017fc: DUP4 000017fd: SUB 000017fe: SUB 000017ff: DUP2 00001800: MSTORE 00001801: SWAP1 00001802: PUSH1 0x40 00001804: MSTORE 00001805: PUSH1 0x40 00001807: MLOAD 00001808: DUP1 00001809: DUP3 0000180a: DUP1 0000180b: MLOAD 0000180c: SWAP1 0000180d: PUSH1 0x20 0000180f: ADD 00001810: SWAP1 00001811: DUP1 00001812: DUP4 00001813: DUP4 00001814: PUSH1 0x20 00001816: DUP4 00001817: LT 00001818: PUSH2 0x0ea5 0000181b: JUMPI 0000181c: DUP1 0000181d: MLOAD 0000181e: DUP3 0000181f: MSTORE 00001820: PUSH1 0x1f 00001822: NOT 00001823: SWAP1 00001824: SWAP3 00001825: ADD 00001826: SWAP2 00001827: PUSH1 0x20 00001829: SWAP2 0000182a: DUP3 0000182b: ADD 0000182c: SWAP2 0000182d: ADD 0000182e: PUSH2 0x0e86 00001831: JUMP 00001832: JUMPDEST 00001833: PUSH2 0x183a 00001836: PUSH2 0x221a 00001839: JUMP 0000183a: JUMPDEST 0000183b: PUSH1 0x01 0000183d: PUSH1 0xa0 0000183f: PUSH1 0x02 00001841: EXP 00001842: SUB 00001843: AND 00001844: CALLER 00001845: EQ 00001846: PUSH2 0x184e 00001849: JUMPI 0000184a: PUSH1 0x00 0000184c: DUP1 0000184d: REVERT 0000184e: JUMPDEST 0000184f: PUSH1 0x01 00001851: PUSH1 0xa0 00001853: PUSH1 0x02 00001855: EXP 00001856: SUB 00001857: DUP3 00001858: AND 00001859: ISZERO 0000185a: ISZERO 0000185b: PUSH2 0x1863 0000185e: JUMPI 0000185f: PUSH1 0x00 00001861: DUP1 00001862: REVERT 00001863: JUMPDEST 00001864: PUSH2 0x186d 00001867: DUP3 00001868: DUP3 00001869: PUSH2 0x2d01 0000186c: JUMP 0000186d: JUMPDEST 0000186e: POP 0000186f: POP 00001870: JUMP 00001871: JUMPDEST 00001872: PUSH1 0x01 00001874: PUSH1 0xa0 00001876: PUSH1 0x02 00001878: EXP 00001879: SUB 0000187a: AND 0000187b: BALANCE 0000187c: SWAP1 0000187d: JUMP 0000187e: JUMPDEST 0000187f: PUSH1 0x00 00001881: DUP1 00001882: PUSH1 0x00 00001884: PUSH1 0x40 00001886: MLOAD 00001887: PUSH1 0x20 00001889: ADD 0000188a: DUP1 0000188b: DUP1 0000188c: PUSH32 0x66656550657263656e7400000000000000000000000000000000000000000000 000018ad: DUP2 000018ae: MSTORE 000018af: POP 000018b0: PUSH1 0x0a 000018b2: ADD 000018b3: SWAP1 000018b4: POP 000018b5: PUSH1 0x40 000018b7: MLOAD 000018b8: PUSH1 0x20 000018ba: DUP2 000018bb: DUP4 000018bc: SUB 000018bd: SUB 000018be: DUP2 000018bf: MSTORE 000018c0: SWAP1 000018c1: PUSH1 0x40 000018c3: MSTORE 000018c4: PUSH1 0x40 000018c6: MLOAD 000018c7: DUP1 000018c8: DUP3 000018c9: DUP1 000018ca: MLOAD 000018cb: SWAP1 000018cc: PUSH1 0x20 000018ce: ADD 000018cf: SWAP1 000018d0: DUP1 000018d1: DUP4 000018d2: DUP4 000018d3: PUSH1 0x20 000018d5: DUP4 000018d6: LT 000018d7: PUSH2 0x0ea5 000018da: JUMPI 000018db: DUP1 000018dc: MLOAD 000018dd: DUP3 000018de: MSTORE 000018df: PUSH1 0x1f 000018e1: NOT 000018e2: SWAP1 000018e3: SWAP3 000018e4: ADD 000018e5: SWAP2 000018e6: PUSH1 0x20 000018e8: SWAP2 000018e9: DUP3 000018ea: ADD 000018eb: SWAP2 000018ec: ADD 000018ed: PUSH2 0x0e86 000018f0: JUMP 000018f1: JUMPDEST 000018f2: PUSH1 0x00 000018f4: DUP1 000018f5: PUSH2 0x1914 000018f8: DUP4 000018f9: PUSH2 0x1908 000018fc: PUSH2 0x1903 000018ff: PUSH2 0x0e28 00001902: JUMP 00001903: JUMPDEST 00001904: PUSH2 0x10b9 00001907: JUMP 00001908: JUMPDEST 00001909: SWAP1 0000190a: PUSH4 0xffffffff 0000190f: PUSH2 0x2d47 00001912: AND 00001913: JUMP 00001914: JUMPDEST 00001915: SWAP1 00001916: POP 00001917: DUP1 00001918: PUSH2 0x191f 0000191b: PUSH2 0x0f88 0000191e: JUMP 0000191f: JUMPDEST 00001920: LT 00001921: ISZERO 00001922: DUP1 00001923: ISZERO 00001924: PUSH2 0x1934 00001927: JUMPI 00001928: POP 00001929: PUSH2 0x1930 0000192c: PUSH2 0x193b 0000192f: JUMP 00001930: JUMPDEST 00001931: DUP4 00001932: GT 00001933: ISZERO 00001934: JUMPDEST 00001935: SWAP4 00001936: SWAP3 00001937: POP 00001938: POP 00001939: POP 0000193a: JUMP 0000193b: JUMPDEST 0000193c: PUSH1 0x00 0000193e: DUP1 0000193f: PUSH1 0x00 00001941: PUSH1 0x40 00001943: MLOAD 00001944: PUSH1 0x20 00001946: ADD 00001947: DUP1 00001948: DUP1 00001949: PUSH32 0x657865637574696f6e4d61785065725478000000000000000000000000000000 0000196a: DUP2 0000196b: MSTORE 0000196c: POP 0000196d: PUSH1 0x11 0000196f: ADD 00001970: SWAP1 00001971: POP 00001972: PUSH1 0x40 00001974: MLOAD 00001975: PUSH1 0x20 00001977: DUP2 00001978: DUP4 00001979: SUB 0000197a: SUB 0000197b: DUP2 0000197c: MSTORE 0000197d: SWAP1 0000197e: PUSH1 0x40 00001980: MSTORE 00001981: PUSH1 0x40 00001983: MLOAD 00001984: DUP1 00001985: DUP3 00001986: DUP1 00001987: MLOAD 00001988: SWAP1 00001989: PUSH1 0x20 0000198b: ADD 0000198c: SWAP1 0000198d: DUP1 0000198e: DUP4 0000198f: DUP4 00001990: PUSH1 0x20 00001992: DUP4 00001993: LT 00001994: PUSH2 0x0ea5 00001997: JUMPI 00001998: DUP1 00001999: MLOAD 0000199a: DUP3 0000199b: MSTORE 0000199c: PUSH1 0x1f 0000199e: NOT 0000199f: SWAP1 000019a0: SWAP3 000019a1: ADD 000019a2: SWAP2 000019a3: PUSH1 0x20 000019a5: SWAP2 000019a6: DUP3 000019a7: ADD 000019a8: SWAP2 000019a9: ADD 000019aa: PUSH2 0x0e86 000019ad: JUMP 000019ae: JUMPDEST 000019af: PUSH1 0x00 000019b1: PUSH2 0x19b8 000019b4: PUSH2 0x1ad1 000019b7: JUMP 000019b8: JUMPDEST 000019b9: PUSH1 0x01 000019bb: PUSH1 0xa0 000019bd: PUSH1 0x02 000019bf: EXP 000019c0: SUB 000019c1: AND 000019c2: PUSH4 0x8d068043 000019c7: PUSH1 0x40 000019c9: MLOAD 000019ca: DUP2 000019cb: PUSH4 0xffffffff 000019d0: AND 000019d1: PUSH1 0xe0 000019d3: PUSH1 0x02 000019d5: EXP 000019d6: MUL 000019d7: DUP2 000019d8: MSTORE 000019d9: PUSH1 0x04 000019db: ADD 000019dc: PUSH1 0x20 000019de: PUSH1 0x40 000019e0: MLOAD 000019e1: DUP1 000019e2: DUP4 000019e3: SUB 000019e4: DUP2 000019e5: PUSH1 0x00 000019e7: DUP8 000019e8: DUP1 000019e9: EXTCODESIZE 000019ea: ISZERO 000019eb: DUP1 000019ec: ISZERO 000019ed: PUSH2 0x19f5 000019f0: JUMPI 000019f1: PUSH1 0x00 000019f3: DUP1 000019f4: REVERT 000019f5: JUMPDEST 000019f6: POP 000019f7: GAS 000019f8: CALL 000019f9: ISZERO 000019fa: DUP1 000019fb: ISZERO 000019fc: PUSH2 0x1a09 000019ff: JUMPI 00001a00: RETURNDATASIZE 00001a01: PUSH1 0x00 00001a03: DUP1 00001a04: RETURNDATACOPY 00001a05: RETURNDATASIZE 00001a06: PUSH1 0x00 00001a08: REVERT 00001a09: JUMPDEST 00001a0a: POP 00001a0b: POP 00001a0c: POP 00001a0d: POP 00001a0e: PUSH1 0x40 00001a10: MLOAD 00001a11: RETURNDATASIZE 00001a12: PUSH1 0x20 00001a14: DUP2 00001a15: LT 00001a16: ISZERO 00001a17: PUSH2 0x1a1f 00001a1a: JUMPI 00001a1b: PUSH1 0x00 00001a1d: DUP1 00001a1e: REVERT 00001a1f: JUMPDEST 00001a20: POP 00001a21: MLOAD 00001a22: SWAP1 00001a23: POP 00001a24: SWAP1 00001a25: JUMP 00001a26: JUMPDEST 00001a27: PUSH1 0x00 00001a29: PUSH1 0x02 00001a2b: PUSH1 0x00 00001a2d: PUSH1 0x40 00001a2f: MLOAD 00001a30: PUSH1 0x20 00001a32: ADD 00001a33: DUP1 00001a34: DUP1 00001a35: PUSH32 0x6f776e6572000000000000000000000000000000000000000000000000000000 00001a56: DUP2 00001a57: MSTORE 00001a58: POP 00001a59: PUSH1 0x05 00001a5b: ADD 00001a5c: SWAP1 00001a5d: POP 00001a5e: PUSH1 0x40 00001a60: MLOAD 00001a61: PUSH1 0x20 00001a63: DUP2 00001a64: DUP4 00001a65: SUB 00001a66: SUB 00001a67: DUP2 00001a68: MSTORE 00001a69: SWAP1 00001a6a: PUSH1 0x40 00001a6c: MSTORE 00001a6d: PUSH1 0x40 00001a6f: MLOAD 00001a70: DUP1 00001a71: DUP3 00001a72: DUP1 00001a73: MLOAD 00001a74: SWAP1 00001a75: PUSH1 0x20 00001a77: ADD 00001a78: SWAP1 00001a79: DUP1 00001a7a: DUP4 00001a7b: DUP4 00001a7c: PUSH1 0x20 00001a7e: DUP4 00001a7f: LT 00001a80: PUSH2 0x1070 00001a83: JUMPI 00001a84: DUP1 00001a85: MLOAD 00001a86: DUP3 00001a87: MSTORE 00001a88: PUSH1 0x1f 00001a8a: NOT 00001a8b: SWAP1 00001a8c: SWAP3 00001a8d: ADD 00001a8e: SWAP2 00001a8f: PUSH1 0x20 00001a91: SWAP2 00001a92: DUP3 00001a93: ADD 00001a94: SWAP2 00001a95: ADD 00001a96: PUSH2 0x1051 00001a99: JUMP 00001a9a: JUMPDEST 00001a9b: PUSH1 0x40 00001a9d: DUP1 00001a9e: MLOAD 00001a9f: DUP1 00001aa0: DUP3 00001aa1: ADD 00001aa2: SWAP1 00001aa3: SWAP2 00001aa4: MSTORE 00001aa5: PUSH1 0x05 00001aa7: DUP2 00001aa8: MSTORE 00001aa9: PUSH32 0x5457455448000000000000000000000000000000000000000000000000000000 00001aca: PUSH1 0x20 00001acc: DUP3 00001acd: ADD 00001ace: MSTORE 00001acf: DUP2 00001ad0: JUMP 00001ad1: JUMPDEST 00001ad2: PUSH1 0x00 00001ad4: PUSH1 0x02 00001ad6: PUSH1 0x00 00001ad8: PUSH1 0x40 00001ada: MLOAD 00001adb: PUSH1 0x20 00001add: ADD 00001ade: DUP1 00001adf: DUP1 00001ae0: PUSH32 0x76616c696461746f72436f6e7472616374000000000000000000000000000000 00001b01: DUP2 00001b02: MSTORE 00001b03: POP 00001b04: PUSH1 0x11 00001b06: ADD 00001b07: SWAP1 00001b08: POP 00001b09: PUSH1 0x40 00001b0b: MLOAD 00001b0c: PUSH1 0x20 00001b0e: DUP2 00001b0f: DUP4 00001b10: SUB 00001b11: SUB 00001b12: DUP2 00001b13: MSTORE 00001b14: SWAP1 00001b15: PUSH1 0x40 00001b17: MSTORE 00001b18: PUSH1 0x40 00001b1a: MLOAD 00001b1b: DUP1 00001b1c: DUP3 00001b1d: DUP1 00001b1e: MLOAD 00001b1f: SWAP1 00001b20: PUSH1 0x20 00001b22: ADD 00001b23: SWAP1 00001b24: DUP1 00001b25: DUP4 00001b26: DUP4 00001b27: PUSH1 0x20 00001b29: DUP4 00001b2a: LT 00001b2b: PUSH2 0x1070 00001b2e: JUMPI 00001b2f: DUP1 00001b30: MLOAD 00001b31: DUP3 00001b32: MSTORE 00001b33: PUSH1 0x1f 00001b35: NOT 00001b36: SWAP1 00001b37: SWAP3 00001b38: ADD 00001b39: SWAP2 00001b3a: PUSH1 0x20 00001b3c: SWAP2 00001b3d: DUP3 00001b3e: ADD 00001b3f: SWAP2 00001b40: ADD 00001b41: PUSH2 0x1051 00001b44: JUMP 00001b45: JUMPDEST 00001b46: PUSH1 0x00 00001b48: PUSH2 0x1b50 00001b4b: DUP3 00001b4c: PUSH2 0x29ee 00001b4f: JUMP 00001b50: JUMPDEST 00001b51: PUSH2 0x1b61 00001b54: DUP12 00001b55: DUP12 00001b56: DUP12 00001b57: DUP12 00001b58: DUP12 00001b59: DUP12 00001b5a: DUP12 00001b5b: DUP12 00001b5c: DUP12 00001b5d: PUSH2 0x1134 00001b60: JUMP 00001b61: JUMPDEST 00001b62: SWAP12 00001b63: SWAP11 00001b64: POP 00001b65: POP 00001b66: POP 00001b67: POP 00001b68: POP 00001b69: POP 00001b6a: POP 00001b6b: POP 00001b6c: POP 00001b6d: POP 00001b6e: POP 00001b6f: JUMP 00001b70: JUMPDEST 00001b71: PUSH1 0x00 00001b73: DUP1 00001b74: PUSH1 0x00 00001b76: PUSH1 0x40 00001b78: MLOAD 00001b79: PUSH1 0x20 00001b7b: ADD 00001b7c: DUP1 00001b7d: DUP1 00001b7e: PUSH32 0x6465706c6f7965644174426c6f636b0000000000000000000000000000000000 00001b9f: DUP2 00001ba0: MSTORE 00001ba1: POP 00001ba2: PUSH1 0x0f 00001ba4: ADD 00001ba5: SWAP1 00001ba6: POP 00001ba7: PUSH1 0x40 00001ba9: MLOAD 00001baa: PUSH1 0x20 00001bac: DUP2 00001bad: DUP4 00001bae: SUB 00001baf: SUB 00001bb0: DUP2 00001bb1: MSTORE 00001bb2: SWAP1 00001bb3: PUSH1 0x40 00001bb5: MSTORE 00001bb6: PUSH1 0x40 00001bb8: MLOAD 00001bb9: DUP1 00001bba: DUP3 00001bbb: DUP1 00001bbc: MLOAD 00001bbd: SWAP1 00001bbe: PUSH1 0x20 00001bc0: ADD 00001bc1: SWAP1 00001bc2: DUP1 00001bc3: DUP4 00001bc4: DUP4 00001bc5: PUSH1 0x20 00001bc7: DUP4 00001bc8: LT 00001bc9: PUSH2 0x0ea5 00001bcc: JUMPI 00001bcd: DUP1 00001bce: MLOAD 00001bcf: DUP3 00001bd0: MSTORE 00001bd1: PUSH1 0x1f 00001bd3: NOT 00001bd4: SWAP1 00001bd5: SWAP3 00001bd6: ADD 00001bd7: SWAP2 00001bd8: PUSH1 0x20 00001bda: SWAP2 00001bdb: DUP3 00001bdc: ADD 00001bdd: SWAP2 00001bde: ADD 00001bdf: PUSH2 0x0e86 00001be2: JUMP 00001be3: JUMPDEST 00001be4: PUSH1 0x02 00001be6: DUP1 00001be7: PUSH1 0x00 00001be9: SWAP1 00001bea: SWAP2 00001beb: SWAP3 00001bec: JUMP 00001bed: JUMPDEST 00001bee: PUSH2 0x1bf5 00001bf1: PUSH2 0x1a26 00001bf4: JUMP 00001bf5: JUMPDEST 00001bf6: PUSH1 0x01 00001bf8: PUSH1 0xa0 00001bfa: PUSH1 0x02 00001bfc: EXP 00001bfd: SUB 00001bfe: AND 00001bff: CALLER 00001c00: EQ 00001c01: PUSH2 0x1c09 00001c04: JUMPI 00001c05: PUSH1 0x00 00001c07: DUP1 00001c08: REVERT 00001c09: JUMPDEST 00001c0a: PUSH2 0x1c11 00001c0d: PUSH2 0x17bf 00001c10: JUMP 00001c11: JUMPDEST 00001c12: DUP2 00001c13: LT 00001c14: DUP1 00001c15: ISZERO 00001c16: PUSH2 0x1c25 00001c19: JUMPI 00001c1a: POP 00001c1b: PUSH2 0x1c22 00001c1e: PUSH2 0x23f8 00001c21: JUMP 00001c22: JUMPDEST 00001c23: DUP2 00001c24: LT 00001c25: JUMPDEST 00001c26: ISZERO 00001c27: ISZERO 00001c28: PUSH2 0x1c30 00001c2b: JUMPI 00001c2c: PUSH1 0x00 00001c2e: DUP1 00001c2f: REVERT 00001c30: JUMPDEST 00001c31: DUP1 00001c32: PUSH1 0x00 00001c34: DUP1 00001c35: PUSH1 0x40 00001c37: MLOAD 00001c38: PUSH1 0x20 00001c3a: ADD 00001c3b: DUP1 00001c3c: DUP1 00001c3d: PUSH32 0x6d696e5065725478000000000000000000000000000000000000000000000000 00001c5e: DUP2 00001c5f: MSTORE 00001c60: POP 00001c61: PUSH1 0x08 00001c63: ADD 00001c64: SWAP1 00001c65: POP 00001c66: PUSH1 0x40 00001c68: MLOAD 00001c69: PUSH1 0x20 00001c6b: DUP2 00001c6c: DUP4 00001c6d: SUB 00001c6e: SUB 00001c6f: DUP2 00001c70: MSTORE 00001c71: SWAP1 00001c72: PUSH1 0x40 00001c74: MSTORE 00001c75: PUSH1 0x40 00001c77: MLOAD 00001c78: DUP1 00001c79: DUP3 00001c7a: DUP1 00001c7b: MLOAD 00001c7c: SWAP1 00001c7d: PUSH1 0x20 00001c7f: ADD 00001c80: SWAP1 00001c81: DUP1 00001c82: DUP4 00001c83: DUP4 00001c84: JUMPDEST 00001c85: PUSH1 0x20 00001c87: DUP4 00001c88: LT 00001c89: PUSH2 0x1ca3 00001c8c: JUMPI 00001c8d: DUP1 00001c8e: MLOAD 00001c8f: DUP3 00001c90: MSTORE 00001c91: PUSH1 0x1f 00001c93: NOT 00001c94: SWAP1 00001c95: SWAP3 00001c96: ADD 00001c97: SWAP2 00001c98: PUSH1 0x20 00001c9a: SWAP2 00001c9b: DUP3 00001c9c: ADD 00001c9d: SWAP2 00001c9e: ADD 00001c9f: PUSH2 0x1c84 00001ca2: JUMP 00001ca3: JUMPDEST 00001ca4: MLOAD 00001ca5: DUP2 00001ca6: MLOAD 00001ca7: PUSH1 0x20 00001ca9: SWAP4 00001caa: DUP5 00001cab: SUB 00001cac: PUSH2 0x0100 00001caf: EXP 00001cb0: PUSH1 0x00 00001cb2: NOT 00001cb3: ADD 00001cb4: DUP1 00001cb5: NOT 00001cb6: SWAP1 00001cb7: SWAP3 00001cb8: AND 00001cb9: SWAP2 00001cba: AND 00001cbb: OR 00001cbc: SWAP1 00001cbd: MSTORE 00001cbe: PUSH1 0x40 00001cc0: DUP1 00001cc1: MLOAD 00001cc2: SWAP3 00001cc3: SWAP1 00001cc4: SWAP5 00001cc5: ADD 00001cc6: DUP3 00001cc7: SWAP1 00001cc8: SUB 00001cc9: SWAP1 00001cca: SWAP2 00001ccb: KECCAK256 00001ccc: DUP7 00001ccd: MSTORE 00001cce: DUP6 00001ccf: ADD 00001cd0: SWAP6 00001cd1: SWAP1 00001cd2: SWAP6 00001cd3: MSTORE 00001cd4: SWAP3 00001cd5: SWAP1 00001cd6: SWAP3 00001cd7: ADD 00001cd8: PUSH1 0x00 00001cda: KECCAK256 00001cdb: SWAP4 00001cdc: SWAP1 00001cdd: SWAP4 00001cde: SSTORE 00001cdf: POP 00001ce0: POP 00001ce1: POP 00001ce2: POP 00001ce3: JUMP 00001ce4: JUMPDEST 00001ce5: PUSH1 0x00 00001ce7: PUSH1 0x01 00001ce9: PUSH1 0xa0 00001ceb: PUSH1 0x02 00001ced: EXP 00001cee: SUB 00001cef: DUP4 00001cf0: AND 00001cf1: ADDRESS 00001cf2: EQ 00001cf3: PUSH2 0x1d6c 00001cf6: JUMPI 00001cf7: PUSH1 0x40 00001cf9: DUP1 00001cfa: MLOAD 00001cfb: PUSH1 0xe5 00001cfd: PUSH1 0x02 00001cff: EXP 00001d00: PUSH3 0x461bcd 00001d04: MUL 00001d05: DUP2 00001d06: MSTORE 00001d07: PUSH1 0x20 00001d09: PUSH1 0x04 00001d0b: DUP3 00001d0c: ADD 00001d0d: MSTORE 00001d0e: PUSH1 0x29 00001d10: PUSH1 0x24 00001d12: DUP3 00001d13: ADD 00001d14: MSTORE 00001d15: PUSH32 0x746f2061646472657373206d75737420626520666f726569676e206272696467 00001d36: PUSH1 0x44 00001d38: DUP3 00001d39: ADD 00001d3a: MSTORE 00001d3b: PUSH32 0x6520616464726573730000000000000000000000000000000000000000000000 00001d5c: PUSH1 0x64 00001d5e: DUP3 00001d5f: ADD 00001d60: MSTORE 00001d61: SWAP1 00001d62: MLOAD 00001d63: SWAP1 00001d64: DUP2 00001d65: SWAP1 00001d66: SUB 00001d67: PUSH1 0x84 00001d69: ADD 00001d6a: SWAP1 00001d6b: REVERT 00001d6c: JUMPDEST 00001d6d: CALLVALUE 00001d6e: DUP3 00001d6f: EQ 00001d70: PUSH2 0x1de9 00001d73: JUMPI 00001d74: PUSH1 0x40 00001d76: DUP1 00001d77: MLOAD 00001d78: PUSH1 0xe5 00001d7a: PUSH1 0x02 00001d7c: EXP 00001d7d: PUSH3 0x461bcd 00001d81: MUL 00001d82: DUP2 00001d83: MSTORE 00001d84: PUSH1 0x20 00001d86: PUSH1 0x04 00001d88: DUP3 00001d89: ADD 00001d8a: MSTORE 00001d8b: PUSH1 0x27 00001d8d: PUSH1 0x24 00001d8f: DUP3 00001d90: ADD 00001d91: MSTORE 00001d92: PUSH32 0x7472616e736665722076616c7565206d75737420657175616c20746f20657468 00001db3: PUSH1 0x44 00001db5: DUP3 00001db6: ADD 00001db7: MSTORE 00001db8: PUSH32 0x20616d6f756e7400000000000000000000000000000000000000000000000000 00001dd9: PUSH1 0x64 00001ddb: DUP3 00001ddc: ADD 00001ddd: MSTORE 00001dde: SWAP1 00001ddf: MLOAD 00001de0: SWAP1 00001de1: DUP2 00001de2: SWAP1 00001de3: SUB 00001de4: PUSH1 0x84 00001de6: ADD 00001de7: SWAP1 00001de8: REVERT 00001de9: JUMPDEST 00001dea: PUSH1 0x40 00001dec: DUP1 00001ded: MLOAD 00001dee: CALLVALUE 00001def: DUP2 00001df0: MSTORE 00001df1: SWAP1 00001df2: MLOAD 00001df3: ADDRESS 00001df4: SWAP2 00001df5: CALLER 00001df6: SWAP2 00001df7: PUSH1 0x00 00001df9: DUP1 00001dfa: MLOAD 00001dfb: PUSH1 0x20 00001dfd: PUSH2 0x31cb 00001e00: DUP4 00001e01: CODECOPY 00001e02: DUP2 00001e03: MLOAD 00001e04: SWAP2 00001e05: MSTORE 00001e06: SWAP2 00001e07: DUP2 00001e08: SWAP1 00001e09: SUB 00001e0a: PUSH1 0x20 00001e0c: ADD 00001e0d: SWAP1 00001e0e: LOG3 00001e0f: SWAP3 00001e10: SWAP2 00001e11: POP 00001e12: POP 00001e13: JUMP 00001e14: JUMPDEST 00001e15: PUSH2 0x1e1c 00001e18: PUSH2 0x1a26 00001e1b: JUMP 00001e1c: JUMPDEST 00001e1d: PUSH1 0x01 00001e1f: PUSH1 0xa0 00001e21: PUSH1 0x02 00001e23: EXP 00001e24: SUB 00001e25: AND 00001e26: CALLER 00001e27: EQ 00001e28: PUSH2 0x1e30 00001e2b: JUMPI 00001e2c: PUSH1 0x00 00001e2e: DUP1 00001e2f: REVERT 00001e30: JUMPDEST 00001e31: PUSH1 0x00 00001e33: DUP2 00001e34: GT 00001e35: PUSH2 0x1e3d 00001e38: JUMPI 00001e39: PUSH1 0x00 00001e3b: DUP1 00001e3c: REVERT 00001e3d: JUMPDEST 00001e3e: DUP1 00001e3f: PUSH1 0x00 00001e41: DUP1 00001e42: PUSH1 0x40 00001e44: MLOAD 00001e45: PUSH1 0x20 00001e47: ADD 00001e48: DUP1 00001e49: DUP1 00001e4a: PUSH32 0x7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000 00001e6b: DUP2 00001e6c: MSTORE 00001e6d: POP 00001e6e: PUSH1 0x1a 00001e70: ADD 00001e71: SWAP1 00001e72: POP 00001e73: PUSH1 0x40 00001e75: MLOAD 00001e76: PUSH1 0x20 00001e78: DUP2 00001e79: DUP4 00001e7a: SUB 00001e7b: SUB 00001e7c: DUP2 00001e7d: MSTORE 00001e7e: SWAP1 00001e7f: PUSH1 0x40 00001e81: MSTORE 00001e82: PUSH1 0x40 00001e84: MLOAD 00001e85: DUP1 00001e86: DUP3 00001e87: DUP1 00001e88: MLOAD 00001e89: SWAP1 00001e8a: PUSH1 0x20 00001e8c: ADD 00001e8d: SWAP1 00001e8e: DUP1 00001e8f: DUP4 00001e90: DUP4 00001e91: JUMPDEST 00001e92: PUSH1 0x20 00001e94: DUP4 00001e95: LT 00001e96: PUSH2 0x1eb0 00001e99: JUMPI 00001e9a: DUP1 00001e9b: MLOAD 00001e9c: DUP3 00001e9d: MSTORE 00001e9e: PUSH1 0x1f 00001ea0: NOT 00001ea1: SWAP1 00001ea2: SWAP3 00001ea3: ADD 00001ea4: SWAP2 00001ea5: PUSH1 0x20 00001ea7: SWAP2 00001ea8: DUP3 00001ea9: ADD 00001eaa: SWAP2 00001eab: ADD 00001eac: PUSH2 0x1e91 00001eaf: JUMP 00001eb0: JUMPDEST 00001eb1: MLOAD 00001eb2: DUP2 00001eb3: MLOAD 00001eb4: PUSH1 0x00 00001eb6: NOT 00001eb7: PUSH1 0x20 00001eb9: SWAP5 00001eba: DUP6 00001ebb: SUB 00001ebc: PUSH2 0x0100 00001ebf: EXP 00001ec0: ADD 00001ec1: SWAP1 00001ec2: DUP2 00001ec3: AND 00001ec4: SWAP1 00001ec5: NOT 00001ec6: SWAP2 00001ec7: SWAP1 00001ec8: SWAP2 00001ec9: AND 00001eca: OR 00001ecb: SWAP1 00001ecc: MSTORE 00001ecd: PUSH1 0x40 00001ecf: DUP1 00001ed0: MLOAD 00001ed1: SWAP5 00001ed2: SWAP1 00001ed3: SWAP3 00001ed4: ADD 00001ed5: DUP5 00001ed6: SWAP1 00001ed7: SUB 00001ed8: SWAP1 00001ed9: SWAP4 00001eda: KECCAK256 00001edb: DUP7 00001edc: MSTORE 00001edd: DUP6 00001ede: DUP4 00001edf: ADD 00001ee0: SWAP7 00001ee1: SWAP1 00001ee2: SWAP7 00001ee3: MSTORE 00001ee4: POP 00001ee5: SWAP3 00001ee6: DUP5 00001ee7: ADD 00001ee8: PUSH1 0x00 00001eea: KECCAK256 00001eeb: SWAP5 00001eec: SWAP1 00001eed: SWAP5 00001eee: SSTORE 00001eef: POP 00001ef0: DUP2 00001ef1: MLOAD 00001ef2: DUP5 00001ef3: DUP2 00001ef4: MSTORE 00001ef5: SWAP2 00001ef6: MLOAD 00001ef7: PUSH32 0x4fb76205cd57c896b21511d2114137d8e901b4ccd659e1a0f97d6306795264fb 00001f18: SWAP4 00001f19: POP 00001f1a: SWAP2 00001f1b: DUP3 00001f1c: SWAP1 00001f1d: SUB 00001f1e: ADD 00001f1f: SWAP1 00001f20: LOG1 00001f21: POP 00001f22: JUMP 00001f23: JUMPDEST 00001f24: PUSH2 0x1f2b 00001f27: PUSH2 0x1a26 00001f2a: JUMP 00001f2b: JUMPDEST 00001f2c: PUSH1 0x01 00001f2e: PUSH1 0xa0 00001f30: PUSH1 0x02 00001f32: EXP 00001f33: SUB 00001f34: AND 00001f35: CALLER 00001f36: EQ 00001f37: PUSH2 0x1f3f 00001f3a: JUMPI 00001f3b: PUSH1 0x00 00001f3d: DUP1 00001f3e: REVERT 00001f3f: JUMPDEST 00001f40: DUP1 00001f41: PUSH1 0x00 00001f43: DUP1 00001f44: PUSH1 0x40 00001f46: MLOAD 00001f47: PUSH1 0x20 00001f49: ADD 00001f4a: DUP1 00001f4b: DUP1 00001f4c: PUSH32 0x6461696c794c696d697400000000000000000000000000000000000000000000 00001f6d: DUP2 00001f6e: MSTORE 00001f6f: POP 00001f70: PUSH1 0x0a 00001f72: ADD 00001f73: SWAP1 00001f74: POP 00001f75: PUSH1 0x40 00001f77: MLOAD 00001f78: PUSH1 0x20 00001f7a: DUP2 00001f7b: DUP4 00001f7c: SUB 00001f7d: SUB 00001f7e: DUP2 00001f7f: MSTORE 00001f80: SWAP1 00001f81: PUSH1 0x40 00001f83: MSTORE 00001f84: PUSH1 0x40 00001f86: MLOAD 00001f87: DUP1 00001f88: DUP3 00001f89: DUP1 00001f8a: MLOAD 00001f8b: SWAP1 00001f8c: PUSH1 0x20 00001f8e: ADD 00001f8f: SWAP1 00001f90: DUP1 00001f91: DUP4 00001f92: DUP4 00001f93: JUMPDEST 00001f94: PUSH1 0x20 00001f96: DUP4 00001f97: LT 00001f98: PUSH2 0x1fb2 00001f9b: JUMPI 00001f9c: DUP1 00001f9d: MLOAD 00001f9e: DUP3 00001f9f: MSTORE 00001fa0: PUSH1 0x1f 00001fa2: NOT 00001fa3: SWAP1 00001fa4: SWAP3 00001fa5: ADD 00001fa6: SWAP2 00001fa7: PUSH1 0x20 00001fa9: SWAP2 00001faa: DUP3 00001fab: ADD 00001fac: SWAP2 00001fad: ADD 00001fae: PUSH2 0x1f93 00001fb1: JUMP 00001fb2: JUMPDEST 00001fb3: MLOAD 00001fb4: DUP2 00001fb5: MLOAD 00001fb6: PUSH1 0x00 00001fb8: NOT 00001fb9: PUSH1 0x20 00001fbb: SWAP5 00001fbc: DUP6 00001fbd: SUB 00001fbe: PUSH2 0x0100 00001fc1: EXP 00001fc2: ADD 00001fc3: SWAP1 00001fc4: DUP2 00001fc5: AND 00001fc6: SWAP1 00001fc7: NOT 00001fc8: SWAP2 00001fc9: SWAP1 00001fca: SWAP2 00001fcb: AND 00001fcc: OR 00001fcd: SWAP1 00001fce: MSTORE 00001fcf: PUSH1 0x40 00001fd1: DUP1 00001fd2: MLOAD 00001fd3: SWAP5 00001fd4: SWAP1 00001fd5: SWAP3 00001fd6: ADD 00001fd7: DUP5 00001fd8: SWAP1 00001fd9: SUB 00001fda: SWAP1 00001fdb: SWAP4 00001fdc: KECCAK256 00001fdd: DUP7 00001fde: MSTORE 00001fdf: DUP6 00001fe0: DUP4 00001fe1: ADD 00001fe2: SWAP7 00001fe3: SWAP1 00001fe4: SWAP7 00001fe5: MSTORE 00001fe6: POP 00001fe7: SWAP3 00001fe8: DUP5 00001fe9: ADD 00001fea: PUSH1 0x00 00001fec: KECCAK256 00001fed: SWAP5 00001fee: SWAP1 00001fef: SWAP5 00001ff0: SSTORE 00001ff1: POP 00001ff2: DUP2 00001ff3: MLOAD 00001ff4: DUP5 00001ff5: DUP2 00001ff6: MSTORE 00001ff7: SWAP2 00001ff8: MLOAD 00001ff9: PUSH32 0xad4123ae17c414d9c6d2fec478b402e6b01856cc250fd01fbfd252fda0089d3c 0000201a: SWAP4 0000201b: POP 0000201c: SWAP2 0000201d: DUP3 0000201e: SWAP1 0000201f: SUB 00002020: ADD 00002021: SWAP1 00002022: LOG1 00002023: POP 00002024: JUMP 00002025: JUMPDEST 00002026: PUSH2 0x202d 00002029: PUSH2 0x1a26 0000202c: JUMP 0000202d: JUMPDEST 0000202e: PUSH1 0x01 00002030: PUSH1 0xa0 00002032: PUSH1 0x02 00002034: EXP 00002035: SUB 00002036: AND 00002037: CALLER 00002038: EQ 00002039: PUSH2 0x2041 0000203c: JUMPI 0000203d: PUSH1 0x00 0000203f: DUP1 00002040: REVERT 00002041: JUMPDEST 00002042: PUSH1 0x00 00002044: DUP2 00002045: GT 00002046: PUSH2 0x204e 00002049: JUMPI 0000204a: PUSH1 0x00 0000204c: DUP1 0000204d: REVERT 0000204e: JUMPDEST 0000204f: DUP1 00002050: PUSH1 0x00 00002052: DUP1 00002053: PUSH1 0x40 00002055: MLOAD 00002056: PUSH1 0x20 00002058: ADD 00002059: DUP1 0000205a: DUP1 0000205b: PUSH32 0x6761735072696365000000000000000000000000000000000000000000000000 0000207c: DUP2 0000207d: MSTORE 0000207e: POP 0000207f: PUSH1 0x08 00002081: ADD 00002082: SWAP1 00002083: POP 00002084: PUSH1 0x40 00002086: MLOAD 00002087: PUSH1 0x20 00002089: DUP2 0000208a: DUP4 0000208b: SUB 0000208c: SUB 0000208d: DUP2 0000208e: MSTORE 0000208f: SWAP1 00002090: PUSH1 0x40 00002092: MSTORE 00002093: PUSH1 0x40 00002095: MLOAD 00002096: DUP1 00002097: DUP3 00002098: DUP1 00002099: MLOAD 0000209a: SWAP1 0000209b: PUSH1 0x20 0000209d: ADD 0000209e: SWAP1 0000209f: DUP1 000020a0: DUP4 000020a1: DUP4 000020a2: JUMPDEST 000020a3: PUSH1 0x20 000020a5: DUP4 000020a6: LT 000020a7: PUSH2 0x20c1 000020aa: JUMPI 000020ab: DUP1 000020ac: MLOAD 000020ad: DUP3 000020ae: MSTORE 000020af: PUSH1 0x1f 000020b1: NOT 000020b2: SWAP1 000020b3: SWAP3 000020b4: ADD 000020b5: SWAP2 000020b6: PUSH1 0x20 000020b8: SWAP2 000020b9: DUP3 000020ba: ADD 000020bb: SWAP2 000020bc: ADD 000020bd: PUSH2 0x20a2 000020c0: JUMP 000020c1: JUMPDEST 000020c2: MLOAD 000020c3: DUP2 000020c4: MLOAD 000020c5: PUSH1 0x00 000020c7: NOT 000020c8: PUSH1 0x20 000020ca: SWAP5 000020cb: DUP6 000020cc: SUB 000020cd: PUSH2 0x0100 000020d0: EXP 000020d1: ADD 000020d2: SWAP1 000020d3: DUP2 000020d4: AND 000020d5: SWAP1 000020d6: NOT 000020d7: SWAP2 000020d8: SWAP1 000020d9: SWAP2 000020da: AND 000020db: OR 000020dc: SWAP1 000020dd: MSTORE 000020de: PUSH1 0x40 000020e0: DUP1 000020e1: MLOAD 000020e2: SWAP5 000020e3: SWAP1 000020e4: SWAP3 000020e5: ADD 000020e6: DUP5 000020e7: SWAP1 000020e8: SUB 000020e9: SWAP1 000020ea: SWAP4 000020eb: KECCAK256 000020ec: DUP7 000020ed: MSTORE 000020ee: DUP6 000020ef: DUP4 000020f0: ADD 000020f1: SWAP7 000020f2: SWAP1 000020f3: SWAP7 000020f4: MSTORE 000020f5: POP 000020f6: SWAP3 000020f7: DUP5 000020f8: ADD 000020f9: PUSH1 0x00 000020fb: KECCAK256 000020fc: SWAP5 000020fd: SWAP1 000020fe: SWAP5 000020ff: SSTORE 00002100: POP 00002101: DUP2 00002102: MLOAD 00002103: DUP5 00002104: DUP2 00002105: MSTORE 00002106: SWAP2 00002107: MLOAD 00002108: PUSH32 0x52264b89e0fceafb26e79fd49ef8a366eb6297483bf4035b027f0c99a7ad512e 00002129: SWAP4 0000212a: POP 0000212b: SWAP2 0000212c: DUP3 0000212d: SWAP1 0000212e: SUB 0000212f: ADD 00002130: SWAP1 00002131: LOG1 00002132: POP 00002133: JUMP 00002134: JUMPDEST 00002135: PUSH1 0x00 00002137: PUSH2 0x2710 0000213a: PUSH2 0x1934 0000213d: PUSH2 0x2164 00002140: DUP3 00002141: PUSH2 0x2158 00002144: PUSH2 0x214b 00002147: PUSH2 0x187e 0000214a: JUMP 0000214b: JUMPDEST 0000214c: DUP8 0000214d: SWAP1 0000214e: PUSH4 0xffffffff 00002153: PUSH2 0x2d56 00002156: AND 00002157: JUMP 00002158: JUMPDEST 00002159: SWAP1 0000215a: PUSH4 0xffffffff 0000215f: PUSH2 0x2d81 00002162: AND 00002163: JUMP 00002164: JUMPDEST 00002165: DUP5 00002166: SWAP1 00002167: PUSH4 0xffffffff 0000216c: PUSH2 0x2d98 0000216f: AND 00002170: JUMP 00002171: JUMPDEST 00002172: PUSH2 0x2179 00002175: PUSH2 0x1a26 00002178: JUMP 00002179: JUMPDEST 0000217a: PUSH1 0x01 0000217c: PUSH1 0xa0 0000217e: PUSH1 0x02 00002180: EXP 00002181: SUB 00002182: AND 00002183: CALLER 00002184: EQ 00002185: PUSH2 0x218d 00002188: JUMPI 00002189: PUSH1 0x00 0000218b: DUP1 0000218c: REVERT 0000218d: JUMPDEST 0000218e: PUSH2 0x2195 00002191: PUSH2 0x17bf 00002194: JUMP 00002195: JUMPDEST 00002196: DUP2 00002197: LT 00002198: PUSH2 0x21a0 0000219b: JUMPI 0000219c: PUSH1 0x00 0000219e: DUP1 0000219f: REVERT 000021a0: JUMPDEST 000021a1: DUP1 000021a2: PUSH1 0x00 000021a4: DUP1 000021a5: PUSH1 0x40 000021a7: MLOAD 000021a8: PUSH1 0x20 000021aa: ADD 000021ab: DUP1 000021ac: DUP1 000021ad: PUSH32 0x6d61785065725478000000000000000000000000000000000000000000000000 000021ce: DUP2 000021cf: MSTORE 000021d0: POP 000021d1: PUSH1 0x08 000021d3: ADD 000021d4: SWAP1 000021d5: POP 000021d6: PUSH1 0x40 000021d8: MLOAD 000021d9: PUSH1 0x20 000021db: DUP2 000021dc: DUP4 000021dd: SUB 000021de: SUB 000021df: DUP2 000021e0: MSTORE 000021e1: SWAP1 000021e2: PUSH1 0x40 000021e4: MSTORE 000021e5: PUSH1 0x40 000021e7: MLOAD 000021e8: DUP1 000021e9: DUP3 000021ea: DUP1 000021eb: MLOAD 000021ec: SWAP1 000021ed: PUSH1 0x20 000021ef: ADD 000021f0: SWAP1 000021f1: DUP1 000021f2: DUP4 000021f3: DUP4 000021f4: PUSH1 0x20 000021f6: DUP4 000021f7: LT 000021f8: PUSH2 0x1ca3 000021fb: JUMPI 000021fc: DUP1 000021fd: MLOAD 000021fe: DUP3 000021ff: MSTORE 00002200: PUSH1 0x1f 00002202: NOT 00002203: SWAP1 00002204: SWAP3 00002205: ADD 00002206: SWAP2 00002207: PUSH1 0x20 00002209: SWAP2 0000220a: DUP3 0000220b: ADD 0000220c: SWAP2 0000220d: ADD 0000220e: PUSH2 0x1c84 00002211: JUMP 00002212: JUMPDEST 00002213: PUSH1 0x00 00002215: SWAP3 00002216: SWAP2 00002217: POP 00002218: POP 00002219: JUMP 0000221a: JUMPDEST 0000221b: PUSH1 0x00 0000221d: ADDRESS 0000221e: PUSH1 0x01 00002220: PUSH1 0xa0 00002222: PUSH1 0x02 00002224: EXP 00002225: SUB 00002226: AND 00002227: PUSH4 0x025313a2 0000222c: PUSH1 0x40 0000222e: MLOAD 0000222f: DUP2 00002230: PUSH4 0xffffffff 00002235: AND 00002236: PUSH1 0xe0 00002238: PUSH1 0x02 0000223a: EXP 0000223b: MUL 0000223c: DUP2 0000223d: MSTORE 0000223e: PUSH1 0x04 00002240: ADD 00002241: PUSH1 0x20 00002243: PUSH1 0x40 00002245: MLOAD 00002246: DUP1 00002247: DUP4 00002248: SUB 00002249: DUP2 0000224a: PUSH1 0x00 0000224c: DUP8 0000224d: DUP1 0000224e: EXTCODESIZE 0000224f: ISZERO 00002250: DUP1 00002251: ISZERO 00002252: PUSH2 0x19f5 00002255: JUMPI 00002256: PUSH1 0x00 00002258: DUP1 00002259: REVERT 0000225a: JUMPDEST 0000225b: PUSH1 0x00 0000225d: DUP1 0000225e: PUSH1 0x00 00002260: PUSH1 0x40 00002262: MLOAD 00002263: PUSH1 0x20 00002265: ADD 00002266: DUP1 00002267: DUP1 00002268: PUSH32 0x6d696e5065725478000000000000000000000000000000000000000000000000 00002289: DUP2 0000228a: MSTORE 0000228b: POP 0000228c: PUSH1 0x08 0000228e: ADD 0000228f: SWAP1 00002290: POP 00002291: PUSH1 0x40 00002293: MLOAD 00002294: PUSH1 0x20 00002296: DUP2 00002297: DUP4 00002298: SUB 00002299: SUB 0000229a: DUP2 0000229b: MSTORE 0000229c: SWAP1 0000229d: PUSH1 0x40 0000229f: MSTORE 000022a0: PUSH1 0x40 000022a2: MLOAD 000022a3: DUP1 000022a4: DUP3 000022a5: DUP1 000022a6: MLOAD 000022a7: SWAP1 000022a8: PUSH1 0x20 000022aa: ADD 000022ab: SWAP1 000022ac: DUP1 000022ad: DUP4 000022ae: DUP4 000022af: PUSH1 0x20 000022b1: DUP4 000022b2: LT 000022b3: PUSH2 0x0ea5 000022b6: JUMPI 000022b7: DUP1 000022b8: MLOAD 000022b9: DUP3 000022ba: MSTORE 000022bb: PUSH1 0x1f 000022bd: NOT 000022be: SWAP1 000022bf: SWAP3 000022c0: ADD 000022c1: SWAP2 000022c2: PUSH1 0x20 000022c4: SWAP2 000022c5: DUP3 000022c6: ADD 000022c7: SWAP2 000022c8: ADD 000022c9: PUSH2 0x0e86 000022cc: JUMP 000022cd: JUMPDEST 000022ce: PUSH1 0x00 000022d0: DUP1 000022d1: PUSH2 0x22e4 000022d4: DUP4 000022d5: PUSH2 0x1908 000022d8: PUSH2 0x22df 000022db: PUSH2 0x0e28 000022de: JUMP 000022df: JUMPDEST 000022e0: PUSH2 0x0c42 000022e3: JUMP 000022e4: JUMPDEST 000022e5: SWAP1 000022e6: POP 000022e7: DUP1 000022e8: PUSH2 0x22ef 000022eb: PUSH2 0x17bf 000022ee: JUMP 000022ef: JUMPDEST 000022f0: LT 000022f1: ISZERO 000022f2: DUP1 000022f3: ISZERO 000022f4: PUSH2 0x2304 000022f7: JUMPI 000022f8: POP 000022f9: PUSH2 0x2300 000022fc: PUSH2 0x23f8 000022ff: JUMP 00002300: JUMPDEST 00002301: DUP4 00002302: GT 00002303: ISZERO 00002304: JUMPDEST 00002305: DUP1 00002306: ISZERO 00002307: PUSH2 0x1934 0000230a: JUMPI 0000230b: POP 0000230c: PUSH2 0x2313 0000230f: PUSH2 0x225a 00002312: JUMP 00002313: JUMPDEST 00002314: SWAP1 00002315: SWAP3 00002316: LT 00002317: ISZERO 00002318: SWAP3 00002319: SWAP2 0000231a: POP 0000231b: POP 0000231c: JUMP 0000231d: JUMPDEST 0000231e: PUSH2 0x2325 00002321: PUSH2 0x1a26 00002324: JUMP 00002325: JUMPDEST 00002326: PUSH1 0x01 00002328: PUSH1 0xa0 0000232a: PUSH1 0x02 0000232c: EXP 0000232d: SUB 0000232e: AND 0000232f: CALLER 00002330: EQ 00002331: PUSH2 0x2339 00002334: JUMPI 00002335: PUSH1 0x00 00002337: DUP1 00002338: REVERT 00002339: JUMPDEST 0000233a: PUSH2 0x2341 0000233d: PUSH2 0x0f88 00002340: JUMP 00002341: JUMPDEST 00002342: DUP2 00002343: LT 00002344: PUSH2 0x234c 00002347: JUMPI 00002348: PUSH1 0x00 0000234a: DUP1 0000234b: REVERT 0000234c: JUMPDEST 0000234d: DUP1 0000234e: PUSH1 0x00 00002350: DUP1 00002351: PUSH1 0x40 00002353: MLOAD 00002354: PUSH1 0x20 00002356: ADD 00002357: DUP1 00002358: DUP1 00002359: PUSH32 0x657865637574696f6e4d61785065725478000000000000000000000000000000 0000237a: DUP2 0000237b: MSTORE 0000237c: POP 0000237d: PUSH1 0x11 0000237f: ADD 00002380: SWAP1 00002381: POP 00002382: PUSH1 0x40 00002384: MLOAD 00002385: PUSH1 0x20 00002387: DUP2 00002388: DUP4 00002389: SUB 0000238a: SUB 0000238b: DUP2 0000238c: MSTORE 0000238d: SWAP1 0000238e: PUSH1 0x40 00002390: MSTORE 00002391: PUSH1 0x40 00002393: MLOAD 00002394: DUP1 00002395: DUP3 00002396: DUP1 00002397: MLOAD 00002398: SWAP1 00002399: PUSH1 0x20 0000239b: ADD 0000239c: SWAP1 0000239d: DUP1 0000239e: DUP4 0000239f: DUP4 000023a0: PUSH1 0x20 000023a2: DUP4 000023a3: LT 000023a4: PUSH2 0x1ca3 000023a7: JUMPI 000023a8: DUP1 000023a9: MLOAD 000023aa: DUP3 000023ab: MSTORE 000023ac: PUSH1 0x1f 000023ae: NOT 000023af: SWAP1 000023b0: SWAP3 000023b1: ADD 000023b2: SWAP2 000023b3: PUSH1 0x20 000023b5: SWAP2 000023b6: DUP3 000023b7: ADD 000023b8: SWAP2 000023b9: ADD 000023ba: PUSH2 0x1c84 000023bd: JUMP 000023be: JUMPDEST 000023bf: PUSH2 0x23c6 000023c2: PUSH2 0x1a26 000023c5: JUMP 000023c6: JUMPDEST 000023c7: PUSH1 0x01 000023c9: PUSH1 0xa0 000023cb: PUSH1 0x02 000023cd: EXP 000023ce: SUB 000023cf: AND 000023d0: CALLER 000023d1: EQ 000023d2: PUSH2 0x23da 000023d5: JUMPI 000023d6: PUSH1 0x00 000023d8: DUP1 000023d9: REVERT 000023da: JUMPDEST 000023db: PUSH1 0x01 000023dd: PUSH1 0xa0 000023df: PUSH1 0x02 000023e1: EXP 000023e2: SUB 000023e3: DUP2 000023e4: AND 000023e5: ISZERO 000023e6: ISZERO 000023e7: PUSH2 0x23ef 000023ea: JUMPI 000023eb: PUSH1 0x00 000023ed: DUP1 000023ee: REVERT 000023ef: JUMPDEST 000023f0: PUSH2 0x0c3f 000023f3: DUP2 000023f4: PUSH2 0x2b82 000023f7: JUMP 000023f8: JUMPDEST 000023f9: PUSH1 0x00 000023fb: DUP1 000023fc: PUSH1 0x00 000023fe: PUSH1 0x40 00002400: MLOAD 00002401: PUSH1 0x20 00002403: ADD 00002404: DUP1 00002405: DUP1 00002406: PUSH32 0x6d61785065725478000000000000000000000000000000000000000000000000 00002427: DUP2 00002428: MSTORE 00002429: POP 0000242a: PUSH1 0x08 0000242c: ADD 0000242d: SWAP1 0000242e: POP 0000242f: PUSH1 0x40 00002431: MLOAD 00002432: PUSH1 0x20 00002434: DUP2 00002435: DUP4 00002436: SUB 00002437: SUB 00002438: DUP2 00002439: MSTORE 0000243a: SWAP1 0000243b: PUSH1 0x40 0000243d: MSTORE 0000243e: PUSH1 0x40 00002440: MLOAD 00002441: DUP1 00002442: DUP3 00002443: DUP1 00002444: MLOAD 00002445: SWAP1 00002446: PUSH1 0x20 00002448: ADD 00002449: SWAP1 0000244a: DUP1 0000244b: DUP4 0000244c: DUP4 0000244d: PUSH1 0x20 0000244f: DUP4 00002450: LT 00002451: PUSH2 0x0ea5 00002454: JUMPI 00002455: DUP1 00002456: MLOAD 00002457: DUP3 00002458: MSTORE 00002459: PUSH1 0x1f 0000245b: NOT 0000245c: SWAP1 0000245d: SWAP3 0000245e: ADD 0000245f: SWAP2 00002460: PUSH1 0x20 00002462: SWAP2 00002463: DUP3 00002464: ADD 00002465: SWAP2 00002466: ADD 00002467: PUSH2 0x0e86 0000246a: JUMP 0000246b: JUMPDEST 0000246c: PUSH1 0x00 0000246e: DUP1 0000246f: PUSH1 0x00 00002471: PUSH1 0x40 00002473: MLOAD 00002474: PUSH1 0x20 00002476: ADD 00002477: DUP1 00002478: DUP1 00002479: PUSH32 0x6761735072696365000000000000000000000000000000000000000000000000 0000249a: DUP2 0000249b: MSTORE 0000249c: POP 0000249d: PUSH1 0x08 0000249f: ADD 000024a0: SWAP1 000024a1: POP 000024a2: PUSH1 0x40 000024a4: MLOAD 000024a5: PUSH1 0x20 000024a7: DUP2 000024a8: DUP4 000024a9: SUB 000024aa: SUB 000024ab: DUP2 000024ac: MSTORE 000024ad: SWAP1 000024ae: PUSH1 0x40 000024b0: MSTORE 000024b1: PUSH1 0x40 000024b3: MLOAD 000024b4: DUP1 000024b5: DUP3 000024b6: DUP1 000024b7: MLOAD 000024b8: SWAP1 000024b9: PUSH1 0x20 000024bb: ADD 000024bc: SWAP1 000024bd: DUP1 000024be: DUP4 000024bf: DUP4 000024c0: PUSH1 0x20 000024c2: DUP4 000024c3: LT 000024c4: PUSH2 0x0ea5 000024c7: JUMPI 000024c8: DUP1 000024c9: MLOAD 000024ca: DUP3 000024cb: MSTORE 000024cc: PUSH1 0x1f 000024ce: NOT 000024cf: SWAP1 000024d0: SWAP3 000024d1: ADD 000024d2: SWAP2 000024d3: PUSH1 0x20 000024d5: SWAP2 000024d6: DUP3 000024d7: ADD 000024d8: SWAP2 000024d9: ADD 000024da: PUSH2 0x0e86 000024dd: JUMP 000024de: JUMPDEST 000024df: PUSH1 0x00 000024e1: DUP1 000024e2: PUSH1 0x60 000024e4: PUSH1 0x00 000024e6: DUP1 000024e7: PUSH2 0x24ef 000024ea: DUP11 000024eb: PUSH2 0x2daa 000024ee: JUMP 000024ef: JUMPDEST 000024f0: ISZERO 000024f1: ISZERO 000024f2: PUSH2 0x24fa 000024f5: JUMPI 000024f6: PUSH1 0x00 000024f8: DUP1 000024f9: REVERT 000024fa: JUMPDEST 000024fb: DUP6 000024fc: PUSH1 0x01 000024fe: PUSH1 0xa0 00002500: PUSH1 0x02 00002502: EXP 00002503: SUB 00002504: AND 00002505: PUSH4 0x8d068043 0000250a: PUSH1 0x40 0000250c: MLOAD 0000250d: DUP2 0000250e: PUSH4 0xffffffff 00002513: AND 00002514: PUSH1 0xe0 00002516: PUSH1 0x02 00002518: EXP 00002519: MUL 0000251a: DUP2 0000251b: MSTORE 0000251c: PUSH1 0x04 0000251e: ADD 0000251f: PUSH1 0x20 00002521: PUSH1 0x40 00002523: MLOAD 00002524: DUP1 00002525: DUP4 00002526: SUB 00002527: DUP2 00002528: PUSH1 0x00 0000252a: DUP8 0000252b: DUP1 0000252c: EXTCODESIZE 0000252d: ISZERO 0000252e: DUP1 0000252f: ISZERO 00002530: PUSH2 0x2538 00002533: JUMPI 00002534: PUSH1 0x00 00002536: DUP1 00002537: REVERT 00002538: JUMPDEST 00002539: POP 0000253a: GAS 0000253b: CALL 0000253c: ISZERO 0000253d: DUP1 0000253e: ISZERO 0000253f: PUSH2 0x254c 00002542: JUMPI 00002543: RETURNDATASIZE 00002544: PUSH1 0x00 00002546: DUP1 00002547: RETURNDATACOPY 00002548: RETURNDATASIZE 00002549: PUSH1 0x00 0000254b: REVERT 0000254c: JUMPDEST 0000254d: POP 0000254e: POP 0000254f: POP 00002550: POP 00002551: PUSH1 0x40 00002553: MLOAD 00002554: RETURNDATASIZE 00002555: PUSH1 0x20 00002557: DUP2 00002558: LT 00002559: ISZERO 0000255a: PUSH2 0x2562 0000255d: JUMPI 0000255e: PUSH1 0x00 00002560: DUP1 00002561: REVERT 00002562: JUMPDEST 00002563: POP 00002564: MLOAD 00002565: DUP10 00002566: MLOAD 00002567: SWAP1 00002568: SWAP6 00002569: POP 0000256a: DUP6 0000256b: GT 0000256c: ISZERO 0000256d: PUSH2 0x2575 00002570: JUMPI 00002571: PUSH1 0x00 00002573: DUP1 00002574: REVERT 00002575: JUMPDEST 00002576: PUSH2 0x257e 00002579: DUP11 0000257a: PUSH2 0x2dbe 0000257d: JUMP 0000257e: JUMPDEST 0000257f: SWAP4 00002580: POP 00002581: DUP5 00002582: PUSH1 0x40 00002584: MLOAD 00002585: SWAP1 00002586: DUP1 00002587: DUP3 00002588: MSTORE 00002589: DUP1 0000258a: PUSH1 0x20 0000258c: MUL 0000258d: PUSH1 0x20 0000258f: ADD 00002590: DUP3 00002591: ADD 00002592: PUSH1 0x40 00002594: MSTORE 00002595: DUP1 00002596: ISZERO 00002597: PUSH2 0x25aa 0000259a: JUMPI 0000259b: DUP2 0000259c: PUSH1 0x20 0000259e: ADD 0000259f: PUSH1 0x20 000025a1: DUP3 000025a2: MUL 000025a3: DUP1 000025a4: CODESIZE 000025a5: DUP4 000025a6: CODECOPY 000025a7: ADD 000025a8: SWAP1 000025a9: POP 000025aa: JUMPDEST 000025ab: POP 000025ac: SWAP3 000025ad: POP 000025ae: PUSH1 0x00 000025b0: SWAP2 000025b1: POP 000025b2: JUMPDEST 000025b3: DUP5 000025b4: DUP3 000025b5: LT 000025b6: ISZERO 000025b7: PUSH2 0x273f 000025ba: JUMPI 000025bb: PUSH1 0x01 000025bd: DUP5 000025be: DUP11 000025bf: DUP5 000025c0: DUP2 000025c1: MLOAD 000025c2: DUP2 000025c3: LT 000025c4: ISZERO 000025c5: ISZERO 000025c6: PUSH2 0x25cb 000025c9: JUMPI 000025ca: INVALID 000025cb: JUMPDEST 000025cc: SWAP1 000025cd: PUSH1 0x20 000025cf: ADD 000025d0: SWAP1 000025d1: PUSH1 0x20 000025d3: MUL 000025d4: ADD 000025d5: MLOAD 000025d6: DUP11 000025d7: DUP6 000025d8: DUP2 000025d9: MLOAD 000025da: DUP2 000025db: LT 000025dc: ISZERO 000025dd: ISZERO 000025de: PUSH2 0x25e3 000025e1: JUMPI 000025e2: INVALID 000025e3: JUMPDEST 000025e4: SWAP1 000025e5: PUSH1 0x20 000025e7: ADD 000025e8: SWAP1 000025e9: PUSH1 0x20 000025eb: MUL 000025ec: ADD 000025ed: MLOAD 000025ee: DUP11 000025ef: DUP7 000025f0: DUP2 000025f1: MLOAD 000025f2: DUP2 000025f3: LT 000025f4: ISZERO 000025f5: ISZERO 000025f6: PUSH2 0x25fb 000025f9: JUMPI 000025fa: INVALID 000025fb: JUMPDEST 000025fc: PUSH1 0x20 000025fe: SWAP1 000025ff: DUP2 00002600: MUL 00002601: SWAP1 00002602: SWAP2 00002603: ADD 00002604: DUP2 00002605: ADD 00002606: MLOAD 00002607: PUSH1 0x40 00002609: DUP1 0000260a: MLOAD 0000260b: PUSH1 0x00 0000260d: DUP1 0000260e: DUP3 0000260f: MSTORE 00002610: DUP2 00002611: DUP6 00002612: ADD 00002613: DUP1 00002614: DUP5 00002615: MSTORE 00002616: SWAP8 00002617: SWAP1 00002618: SWAP8 00002619: MSTORE 0000261a: PUSH1 0xff 0000261c: SWAP1 0000261d: SWAP6 0000261e: AND 0000261f: DUP6 00002620: DUP3 00002621: ADD 00002622: MSTORE 00002623: PUSH1 0x60 00002625: DUP6 00002626: ADD 00002627: SWAP4 00002628: SWAP1 00002629: SWAP4 0000262a: MSTORE 0000262b: PUSH1 0x80 0000262d: DUP5 0000262e: ADD 0000262f: MSTORE 00002630: SWAP1 00002631: MLOAD 00002632: PUSH1 0xa0 00002634: DUP1 00002635: DUP5 00002636: ADD 00002637: SWAP5 00002638: SWAP3 00002639: SWAP4 0000263a: PUSH1 0x1f 0000263c: NOT 0000263d: DUP4 0000263e: ADD 0000263f: SWAP4 00002640: SWAP1 00002641: DUP4 00002642: SWAP1 00002643: SUB 00002644: SWAP1 00002645: SWAP2 00002646: ADD 00002647: SWAP2 00002648: SWAP1 00002649: DUP7 0000264a: GAS 0000264b: CALL 0000264c: ISZERO 0000264d: DUP1 0000264e: ISZERO 0000264f: PUSH2 0x265c 00002652: JUMPI 00002653: RETURNDATASIZE 00002654: PUSH1 0x00 00002656: DUP1 00002657: RETURNDATACOPY 00002658: RETURNDATASIZE 00002659: PUSH1 0x00 0000265b: REVERT 0000265c: JUMPDEST 0000265d: POP 0000265e: POP 0000265f: POP 00002660: PUSH1 0x20 00002662: PUSH1 0x40 00002664: MLOAD 00002665: SUB 00002666: MLOAD 00002667: SWAP1 00002668: POP 00002669: DUP6 0000266a: PUSH1 0x01 0000266c: PUSH1 0xa0 0000266e: PUSH1 0x02 00002670: EXP 00002671: SUB 00002672: AND 00002673: PUSH4 0xfacd743b 00002678: DUP3 00002679: PUSH1 0x40 0000267b: MLOAD 0000267c: DUP3 0000267d: PUSH4 0xffffffff 00002682: AND 00002683: PUSH1 0xe0 00002685: PUSH1 0x02 00002687: EXP 00002688: MUL 00002689: DUP2 0000268a: MSTORE 0000268b: PUSH1 0x04 0000268d: ADD 0000268e: DUP1 0000268f: DUP3 00002690: PUSH1 0x01 00002692: PUSH1 0xa0 00002694: PUSH1 0x02 00002696: EXP 00002697: SUB 00002698: AND 00002699: PUSH1 0x01 0000269b: PUSH1 0xa0 0000269d: PUSH1 0x02 0000269f: EXP 000026a0: SUB 000026a1: AND 000026a2: DUP2 000026a3: MSTORE 000026a4: PUSH1 0x20 000026a6: ADD 000026a7: SWAP2 000026a8: POP 000026a9: POP 000026aa: PUSH1 0x20 000026ac: PUSH1 0x40 000026ae: MLOAD 000026af: DUP1 000026b0: DUP4 000026b1: SUB 000026b2: DUP2 000026b3: PUSH1 0x00 000026b5: DUP8 000026b6: DUP1 000026b7: EXTCODESIZE 000026b8: ISZERO 000026b9: DUP1 000026ba: ISZERO 000026bb: PUSH2 0x26c3 000026be: JUMPI 000026bf: PUSH1 0x00 000026c1: DUP1 000026c2: REVERT 000026c3: JUMPDEST 000026c4: POP 000026c5: GAS 000026c6: CALL 000026c7: ISZERO 000026c8: DUP1 000026c9: ISZERO 000026ca: PUSH2 0x26d7 000026cd: JUMPI 000026ce: RETURNDATASIZE 000026cf: PUSH1 0x00 000026d1: DUP1 000026d2: RETURNDATACOPY 000026d3: RETURNDATASIZE 000026d4: PUSH1 0x00 000026d6: REVERT 000026d7: JUMPDEST 000026d8: POP 000026d9: POP 000026da: POP 000026db: POP 000026dc: PUSH1 0x40 000026de: MLOAD 000026df: RETURNDATASIZE 000026e0: PUSH1 0x20 000026e2: DUP2 000026e3: LT 000026e4: ISZERO 000026e5: PUSH2 0x26ed 000026e8: JUMPI 000026e9: PUSH1 0x00 000026eb: DUP1 000026ec: REVERT 000026ed: JUMPDEST 000026ee: POP 000026ef: MLOAD 000026f0: ISZERO 000026f1: ISZERO 000026f2: PUSH2 0x26fa 000026f5: JUMPI 000026f6: PUSH1 0x00 000026f8: DUP1 000026f9: REVERT 000026fa: JUMPDEST 000026fb: PUSH2 0x2704 000026fe: DUP4 000026ff: DUP3 00002700: PUSH2 0x2f83 00002703: JUMP 00002704: JUMPDEST 00002705: ISZERO 00002706: PUSH2 0x270e 00002709: JUMPI 0000270a: PUSH1 0x00 0000270c: DUP1 0000270d: REVERT 0000270e: JUMPDEST 0000270f: DUP1 00002710: DUP4 00002711: DUP4 00002712: DUP2 00002713: MLOAD 00002714: DUP2 00002715: LT 00002716: ISZERO 00002717: ISZERO 00002718: PUSH2 0x271d 0000271b: JUMPI 0000271c: INVALID 0000271d: JUMPDEST 0000271e: PUSH1 0x01 00002720: PUSH1 0xa0 00002722: PUSH1 0x02 00002724: EXP 00002725: SUB 00002726: SWAP1 00002727: SWAP3 00002728: AND 00002729: PUSH1 0x20 0000272b: SWAP3 0000272c: DUP4 0000272d: MUL 0000272e: SWAP1 0000272f: SWAP2 00002730: ADD 00002731: SWAP1 00002732: SWAP2 00002733: ADD 00002734: MSTORE 00002735: PUSH1 0x01 00002737: SWAP1 00002738: SWAP2 00002739: ADD 0000273a: SWAP1 0000273b: PUSH2 0x25b2 0000273e: JUMP 0000273f: JUMPDEST 00002740: POP 00002741: POP 00002742: POP 00002743: POP 00002744: POP 00002745: POP 00002746: POP 00002747: POP 00002748: POP 00002749: POP 0000274a: JUMP 0000274b: JUMPDEST 0000274c: PUSH1 0x00 0000274e: DUP1 0000274f: PUSH1 0x00 00002751: DUP1 00002752: PUSH2 0x275a 00002755: DUP6 00002756: PUSH2 0x2daa 00002759: JUMP 0000275a: JUMPDEST 0000275b: ISZERO 0000275c: ISZERO 0000275d: PUSH2 0x2765 00002760: JUMPI 00002761: PUSH1 0x00 00002763: DUP1 00002764: REVERT 00002765: JUMPDEST 00002766: PUSH1 0x01 00002768: PUSH1 0xa0 0000276a: PUSH1 0x02 0000276c: EXP 0000276d: SUB 0000276e: PUSH1 0x14 00002770: DUP7 00002771: ADD 00002772: MLOAD 00002773: AND 00002774: SWAP4 00002775: POP 00002776: PUSH1 0x34 00002778: DUP6 00002779: ADD 0000277a: MLOAD 0000277b: SWAP3 0000277c: POP 0000277d: PUSH1 0x54 0000277f: DUP6 00002780: ADD 00002781: MLOAD 00002782: SWAP2 00002783: POP 00002784: PUSH1 0x68 00002786: DUP6 00002787: ADD 00002788: MLOAD 00002789: SWAP1 0000278a: POP 0000278b: SWAP2 0000278c: SWAP4 0000278d: POP 0000278e: SWAP2 0000278f: SWAP4 00002790: JUMP 00002791: JUMPDEST 00002792: DUP1 00002793: PUSH1 0x04 00002795: PUSH1 0x00 00002797: DUP5 00002798: PUSH1 0x40 0000279a: MLOAD 0000279b: PUSH1 0x20 0000279d: ADD 0000279e: DUP1 0000279f: DUP1 000027a0: PUSH32 0x72656c617965644d657373616765730000000000000000000000000000000000 000027c1: DUP2 000027c2: MSTORE 000027c3: POP 000027c4: PUSH1 0x0f 000027c6: ADD 000027c7: DUP3 000027c8: PUSH1 0x00 000027ca: NOT 000027cb: AND 000027cc: PUSH1 0x00 000027ce: NOT 000027cf: AND 000027d0: DUP2 000027d1: MSTORE 000027d2: PUSH1 0x20 000027d4: ADD 000027d5: SWAP2 000027d6: POP 000027d7: POP 000027d8: PUSH1 0x40 000027da: MLOAD 000027db: PUSH1 0x20 000027dd: DUP2 000027de: DUP4 000027df: SUB 000027e0: SUB 000027e1: DUP2 000027e2: MSTORE 000027e3: SWAP1 000027e4: PUSH1 0x40 000027e6: MSTORE 000027e7: PUSH1 0x40 000027e9: MLOAD 000027ea: DUP1 000027eb: DUP3 000027ec: DUP1 000027ed: MLOAD 000027ee: SWAP1 000027ef: PUSH1 0x20 000027f1: ADD 000027f2: SWAP1 000027f3: DUP1 000027f4: DUP4 000027f5: DUP4 000027f6: JUMPDEST 000027f7: PUSH1 0x20 000027f9: DUP4 000027fa: LT 000027fb: PUSH2 0x2815 000027fe: JUMPI 000027ff: DUP1 00002800: MLOAD 00002801: DUP3 00002802: MSTORE 00002803: PUSH1 0x1f 00002805: NOT 00002806: SWAP1 00002807: SWAP3 00002808: ADD 00002809: SWAP2 0000280a: PUSH1 0x20 0000280c: SWAP2 0000280d: DUP3 0000280e: ADD 0000280f: SWAP2 00002810: ADD 00002811: PUSH2 0x27f6 00002814: JUMP 00002815: JUMPDEST 00002816: MLOAD 00002817: DUP2 00002818: MLOAD 00002819: PUSH1 0x20 0000281b: SWAP4 0000281c: DUP5 0000281d: SUB 0000281e: PUSH2 0x0100 00002821: EXP 00002822: PUSH1 0x00 00002824: NOT 00002825: ADD 00002826: DUP1 00002827: NOT 00002828: SWAP1 00002829: SWAP3 0000282a: AND 0000282b: SWAP2 0000282c: AND 0000282d: OR 0000282e: SWAP1 0000282f: MSTORE 00002830: PUSH1 0x40 00002832: DUP1 00002833: MLOAD 00002834: SWAP3 00002835: SWAP1 00002836: SWAP5 00002837: ADD 00002838: DUP3 00002839: SWAP1 0000283a: SUB 0000283b: SWAP1 0000283c: SWAP2 0000283d: KECCAK256 0000283e: DUP7 0000283f: MSTORE 00002840: DUP6 00002841: ADD 00002842: SWAP6 00002843: SWAP1 00002844: SWAP6 00002845: MSTORE 00002846: SWAP3 00002847: SWAP1 00002848: SWAP3 00002849: ADD 0000284a: PUSH1 0x00 0000284c: KECCAK256 0000284d: DUP1 0000284e: SLOAD 0000284f: PUSH1 0xff 00002851: NOT 00002852: AND 00002853: SWAP5 00002854: ISZERO 00002855: ISZERO 00002856: SWAP5 00002857: SWAP1 00002858: SWAP5 00002859: OR 0000285a: SWAP1 0000285b: SWAP4 0000285c: SSTORE 0000285d: POP 0000285e: POP 0000285f: POP 00002860: POP 00002861: POP 00002862: JUMP 00002863: JUMPDEST 00002864: PUSH1 0x00 00002866: DUP1 00002867: PUSH2 0x2870 0000286a: DUP5 0000286b: DUP5 0000286c: PUSH2 0x2fdc 0000286f: JUMP 00002870: JUMPDEST 00002871: ISZERO 00002872: ISZERO 00002873: PUSH2 0x29b4 00002876: JUMPI 00002877: PUSH2 0x287e 0000287a: PUSH2 0x0ffb 0000287d: JUMP 0000287e: JUMPDEST 0000287f: SWAP1 00002880: POP 00002881: PUSH1 0x01 00002883: PUSH1 0xa0 00002885: PUSH1 0x02 00002887: EXP 00002888: SUB 00002889: DUP2 0000288a: AND 0000288b: ISZERO 0000288c: ISZERO 0000288d: PUSH2 0x2906 00002890: JUMPI 00002891: PUSH1 0x40 00002893: DUP1 00002894: MLOAD 00002895: PUSH1 0xe5 00002897: PUSH1 0x02 00002899: EXP 0000289a: PUSH3 0x461bcd 0000289e: MUL 0000289f: DUP2 000028a0: MSTORE 000028a1: PUSH1 0x20 000028a3: PUSH1 0x04 000028a5: DUP3 000028a6: ADD 000028a7: MSTORE 000028a8: PUSH1 0x23 000028aa: PUSH1 0x24 000028ac: DUP3 000028ad: ADD 000028ae: MSTORE 000028af: PUSH32 0x66616c6c6261636b20726563697069656e7420776173206e6f74206173736967 000028d0: PUSH1 0x44 000028d2: DUP3 000028d3: ADD 000028d4: MSTORE 000028d5: PUSH32 0x6e65640000000000000000000000000000000000000000000000000000000000 000028f6: PUSH1 0x64 000028f8: DUP3 000028f9: ADD 000028fa: MSTORE 000028fb: SWAP1 000028fc: MLOAD 000028fd: SWAP1 000028fe: DUP2 000028ff: SWAP1 00002900: SUB 00002901: PUSH1 0x84 00002903: ADD 00002904: SWAP1 00002905: REVERT 00002906: JUMPDEST 00002907: PUSH1 0x40 00002909: MLOAD 0000290a: PUSH1 0x01 0000290c: PUSH1 0xa0 0000290e: PUSH1 0x02 00002910: EXP 00002911: SUB 00002912: DUP3 00002913: AND 00002914: SWAP1 00002915: DUP5 00002916: ISZERO 00002917: PUSH2 0x08fc 0000291a: MUL 0000291b: SWAP1 0000291c: DUP6 0000291d: SWAP1 0000291e: PUSH1 0x00 00002920: DUP2 00002921: DUP2 00002922: DUP2 00002923: DUP6 00002924: DUP9 00002925: DUP9 00002926: CALL 00002927: SWAP4 00002928: POP 00002929: POP 0000292a: POP 0000292b: POP 0000292c: ISZERO 0000292d: DUP1 0000292e: ISZERO 0000292f: PUSH2 0x293c 00002932: JUMPI 00002933: RETURNDATASIZE 00002934: PUSH1 0x00 00002936: DUP1 00002937: RETURNDATACOPY 00002938: RETURNDATASIZE 00002939: PUSH1 0x00 0000293b: REVERT 0000293c: JUMPDEST 0000293d: POP 0000293e: DUP1 0000293f: PUSH1 0x01 00002941: PUSH1 0xa0 00002943: PUSH1 0x02 00002945: EXP 00002946: SUB 00002947: AND 00002948: DUP5 00002949: PUSH1 0x01 0000294b: PUSH1 0xa0 0000294d: PUSH1 0x02 0000294f: EXP 00002950: SUB 00002951: AND 00002952: PUSH32 0x4b186bbb80392b9b4a5cdf5f78a4f6ecdb8da0082f37d2cf24a6885e9f61fbbe 00002973: PUSH1 0x40 00002975: MLOAD 00002976: PUSH1 0x40 00002978: MLOAD 00002979: DUP1 0000297a: SWAP2 0000297b: SUB 0000297c: SWAP1 0000297d: LOG3 0000297e: PUSH1 0x40 00002980: DUP1 00002981: MLOAD 00002982: DUP5 00002983: DUP2 00002984: MSTORE 00002985: SWAP1 00002986: MLOAD 00002987: PUSH1 0x01 00002989: PUSH1 0xa0 0000298b: PUSH1 0x02 0000298d: EXP 0000298e: SUB 0000298f: DUP4 00002990: AND 00002991: SWAP2 00002992: ADDRESS 00002993: SWAP2 00002994: PUSH1 0x00 00002996: DUP1 00002997: MLOAD 00002998: PUSH1 0x20 0000299a: PUSH2 0x31cb 0000299d: DUP4 0000299e: CODECOPY 0000299f: DUP2 000029a0: MLOAD 000029a1: SWAP2 000029a2: MSTORE 000029a3: SWAP2 000029a4: DUP2 000029a5: SWAP1 000029a6: SUB 000029a7: PUSH1 0x20 000029a9: ADD 000029aa: SWAP1 000029ab: LOG3 000029ac: PUSH1 0x01 000029ae: SWAP2 000029af: POP 000029b0: PUSH2 0x29e7 000029b3: JUMP 000029b4: JUMPDEST 000029b5: PUSH1 0x40 000029b7: DUP1 000029b8: MLOAD 000029b9: DUP5 000029ba: DUP2 000029bb: MSTORE 000029bc: SWAP1 000029bd: MLOAD 000029be: PUSH1 0x01 000029c0: PUSH1 0xa0 000029c2: PUSH1 0x02 000029c4: EXP 000029c5: SUB 000029c6: DUP7 000029c7: AND 000029c8: SWAP2 000029c9: ADDRESS 000029ca: SWAP2 000029cb: PUSH1 0x00 000029cd: DUP1 000029ce: MLOAD 000029cf: PUSH1 0x20 000029d1: PUSH2 0x31cb 000029d4: DUP4 000029d5: CODECOPY 000029d6: DUP2 000029d7: MLOAD 000029d8: SWAP2 000029d9: MSTORE 000029da: SWAP2 000029db: DUP2 000029dc: SWAP1 000029dd: SUB 000029de: PUSH1 0x20 000029e0: ADD 000029e1: SWAP1 000029e2: LOG3 000029e3: PUSH1 0x01 000029e5: SWAP2 000029e6: POP 000029e7: JUMPDEST 000029e8: POP 000029e9: SWAP3 000029ea: SWAP2 000029eb: POP 000029ec: POP 000029ed: JUMP 000029ee: JUMPDEST 000029ef: PUSH1 0x01 000029f1: PUSH1 0xa0 000029f3: PUSH1 0x02 000029f5: EXP 000029f6: SUB 000029f7: DUP2 000029f8: AND 000029f9: ISZERO 000029fa: ISZERO 000029fb: PUSH2 0x2a03 000029fe: JUMPI 000029ff: PUSH1 0x00 00002a01: DUP1 00002a02: REVERT 00002a03: JUMPDEST 00002a04: DUP1 00002a05: PUSH1 0x02 00002a07: PUSH1 0x00 00002a09: PUSH1 0x40 00002a0b: MLOAD 00002a0c: PUSH1 0x20 00002a0e: ADD 00002a0f: DUP1 00002a10: DUP1 00002a11: PUSH32 0x66616c6c6261636b526563697069656e74000000000000000000000000000000 00002a32: DUP2 00002a33: MSTORE 00002a34: POP 00002a35: PUSH1 0x11 00002a37: ADD 00002a38: SWAP1 00002a39: POP 00002a3a: PUSH1 0x40 00002a3c: MLOAD 00002a3d: PUSH1 0x20 00002a3f: DUP2 00002a40: DUP4 00002a41: SUB 00002a42: SUB 00002a43: DUP2 00002a44: MSTORE 00002a45: SWAP1 00002a46: PUSH1 0x40 00002a48: MSTORE 00002a49: PUSH1 0x40 00002a4b: MLOAD 00002a4c: DUP1 00002a4d: DUP3 00002a4e: DUP1 00002a4f: MLOAD 00002a50: SWAP1 00002a51: PUSH1 0x20 00002a53: ADD 00002a54: SWAP1 00002a55: DUP1 00002a56: DUP4 00002a57: DUP4 00002a58: JUMPDEST 00002a59: PUSH1 0x20 00002a5b: DUP4 00002a5c: LT 00002a5d: PUSH2 0x2a77 00002a60: JUMPI 00002a61: DUP1 00002a62: MLOAD 00002a63: DUP3 00002a64: MSTORE 00002a65: PUSH1 0x1f 00002a67: NOT 00002a68: SWAP1 00002a69: SWAP3 00002a6a: ADD 00002a6b: SWAP2 00002a6c: PUSH1 0x20 00002a6e: SWAP2 00002a6f: DUP3 00002a70: ADD 00002a71: SWAP2 00002a72: ADD 00002a73: PUSH2 0x2a58 00002a76: JUMP 00002a77: JUMPDEST 00002a78: MLOAD 00002a79: DUP2 00002a7a: MLOAD 00002a7b: PUSH1 0x20 00002a7d: SWAP4 00002a7e: DUP5 00002a7f: SUB 00002a80: PUSH2 0x0100 00002a83: EXP 00002a84: PUSH1 0x00 00002a86: NOT 00002a87: ADD 00002a88: DUP1 00002a89: NOT 00002a8a: SWAP1 00002a8b: SWAP3 00002a8c: AND 00002a8d: SWAP2 00002a8e: AND 00002a8f: OR 00002a90: SWAP1 00002a91: MSTORE 00002a92: PUSH1 0x40 00002a94: DUP1 00002a95: MLOAD 00002a96: SWAP3 00002a97: SWAP1 00002a98: SWAP5 00002a99: ADD 00002a9a: DUP3 00002a9b: SWAP1 00002a9c: SUB 00002a9d: SWAP1 00002a9e: SWAP2 00002a9f: KECCAK256 00002aa0: DUP7 00002aa1: MSTORE 00002aa2: DUP6 00002aa3: ADD 00002aa4: SWAP6 00002aa5: SWAP1 00002aa6: SWAP6 00002aa7: MSTORE 00002aa8: SWAP3 00002aa9: SWAP1 00002aaa: SWAP3 00002aab: ADD 00002aac: PUSH1 0x00 00002aae: KECCAK256 00002aaf: DUP1 00002ab0: SLOAD 00002ab1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ac6: NOT 00002ac7: AND 00002ac8: PUSH1 0x01 00002aca: PUSH1 0xa0 00002acc: PUSH1 0x02 00002ace: EXP 00002acf: SUB 00002ad0: SWAP6 00002ad1: SWAP1 00002ad2: SWAP6 00002ad3: AND 00002ad4: SWAP5 00002ad5: SWAP1 00002ad6: SWAP5 00002ad7: OR 00002ad8: SWAP1 00002ad9: SWAP4 00002ada: SSTORE 00002adb: POP 00002adc: POP 00002add: POP 00002ade: POP 00002adf: JUMP 00002ae0: JUMPDEST 00002ae1: PUSH1 0x00 00002ae3: SWAP1 00002ae4: EXTCODESIZE 00002ae5: GT 00002ae6: SWAP1 00002ae7: JUMP 00002ae8: JUMPDEST 00002ae9: PUSH1 0x01 00002aeb: PUSH1 0xa0 00002aed: PUSH1 0x02 00002aef: EXP 00002af0: SUB 00002af1: DUP2 00002af2: AND 00002af3: ISZERO 00002af4: DUP1 00002af5: ISZERO 00002af6: SWAP1 00002af7: PUSH2 0x2b04 00002afa: JUMPI 00002afb: POP 00002afc: PUSH2 0x2b04 00002aff: DUP2 00002b00: PUSH2 0x2ae0 00002b03: JUMP 00002b04: JUMPDEST 00002b05: ISZERO 00002b06: ISZERO 00002b07: PUSH2 0x2b0f 00002b0a: JUMPI 00002b0b: PUSH1 0x00 00002b0d: DUP1 00002b0e: REVERT 00002b0f: JUMPDEST 00002b10: DUP1 00002b11: PUSH1 0x02 00002b13: PUSH1 0x00 00002b15: PUSH1 0x40 00002b17: MLOAD 00002b18: PUSH1 0x20 00002b1a: ADD 00002b1b: DUP1 00002b1c: DUP1 00002b1d: PUSH32 0x6572633230746f6b656e00000000000000000000000000000000000000000000 00002b3e: DUP2 00002b3f: MSTORE 00002b40: POP 00002b41: PUSH1 0x0a 00002b43: ADD 00002b44: SWAP1 00002b45: POP 00002b46: PUSH1 0x40 00002b48: MLOAD 00002b49: PUSH1 0x20 00002b4b: DUP2 00002b4c: DUP4 00002b4d: SUB 00002b4e: SUB 00002b4f: DUP2 00002b50: MSTORE 00002b51: SWAP1 00002b52: PUSH1 0x40 00002b54: MSTORE 00002b55: PUSH1 0x40 00002b57: MLOAD 00002b58: DUP1 00002b59: DUP3 00002b5a: DUP1 00002b5b: MLOAD 00002b5c: SWAP1 00002b5d: PUSH1 0x20 00002b5f: ADD 00002b60: SWAP1 00002b61: DUP1 00002b62: DUP4 00002b63: DUP4 00002b64: PUSH1 0x20 00002b66: DUP4 00002b67: LT 00002b68: PUSH2 0x2a77 00002b6b: JUMPI 00002b6c: DUP1 00002b6d: MLOAD 00002b6e: DUP3 00002b6f: MSTORE 00002b70: PUSH1 0x1f 00002b72: NOT 00002b73: SWAP1 00002b74: SWAP3 00002b75: ADD 00002b76: SWAP2 00002b77: PUSH1 0x20 00002b79: SWAP2 00002b7a: DUP3 00002b7b: ADD 00002b7c: SWAP2 00002b7d: ADD 00002b7e: PUSH2 0x2a58 00002b81: JUMP 00002b82: JUMPDEST 00002b83: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00002ba4: PUSH2 0x2bab 00002ba7: PUSH2 0x1a26 00002baa: JUMP 00002bab: JUMPDEST 00002bac: PUSH1 0x40 00002bae: DUP1 00002baf: MLOAD 00002bb0: PUSH1 0x01 00002bb2: PUSH1 0xa0 00002bb4: PUSH1 0x02 00002bb6: EXP 00002bb7: SUB 00002bb8: SWAP3 00002bb9: DUP4 00002bba: AND 00002bbb: DUP2 00002bbc: MSTORE 00002bbd: SWAP2 00002bbe: DUP5 00002bbf: AND 00002bc0: PUSH1 0x20 00002bc2: DUP4 00002bc3: ADD 00002bc4: MSTORE 00002bc5: DUP1 00002bc6: MLOAD 00002bc7: SWAP2 00002bc8: DUP3 00002bc9: SWAP1 00002bca: SUB 00002bcb: ADD 00002bcc: SWAP1 00002bcd: LOG1 00002bce: DUP1 00002bcf: PUSH1 0x02 00002bd1: PUSH1 0x00 00002bd3: PUSH1 0x40 00002bd5: MLOAD 00002bd6: PUSH1 0x20 00002bd8: ADD 00002bd9: DUP1 00002bda: DUP1 00002bdb: PUSH32 0x6f776e6572000000000000000000000000000000000000000000000000000000 00002bfc: DUP2 00002bfd: MSTORE 00002bfe: POP 00002bff: PUSH1 0x05 00002c01: ADD 00002c02: SWAP1 00002c03: POP 00002c04: PUSH1 0x40 00002c06: MLOAD 00002c07: PUSH1 0x20 00002c09: DUP2 00002c0a: DUP4 00002c0b: SUB 00002c0c: SUB 00002c0d: DUP2 00002c0e: MSTORE 00002c0f: SWAP1 00002c10: PUSH1 0x40 00002c12: MSTORE 00002c13: PUSH1 0x40 00002c15: MLOAD 00002c16: DUP1 00002c17: DUP3 00002c18: DUP1 00002c19: MLOAD 00002c1a: SWAP1 00002c1b: PUSH1 0x20 00002c1d: ADD 00002c1e: SWAP1 00002c1f: DUP1 00002c20: DUP4 00002c21: DUP4 00002c22: PUSH1 0x20 00002c24: DUP4 00002c25: LT 00002c26: PUSH2 0x2a77 00002c29: JUMPI 00002c2a: DUP1 00002c2b: MLOAD 00002c2c: DUP3 00002c2d: MSTORE 00002c2e: PUSH1 0x1f 00002c30: NOT 00002c31: SWAP1 00002c32: SWAP3 00002c33: ADD 00002c34: SWAP2 00002c35: PUSH1 0x20 00002c37: SWAP2 00002c38: DUP3 00002c39: ADD 00002c3a: SWAP2 00002c3b: ADD 00002c3c: PUSH2 0x2a58 00002c3f: JUMP 00002c40: JUMPDEST 00002c41: DUP1 00002c42: PUSH1 0x04 00002c44: PUSH1 0x00 00002c46: PUSH1 0x40 00002c48: MLOAD 00002c49: PUSH1 0x20 00002c4b: ADD 00002c4c: DUP1 00002c4d: DUP1 00002c4e: PUSH32 0x6973496e697469616c697a656400000000000000000000000000000000000000 00002c6f: DUP2 00002c70: MSTORE 00002c71: POP 00002c72: PUSH1 0x0d 00002c74: ADD 00002c75: SWAP1 00002c76: POP 00002c77: PUSH1 0x40 00002c79: MLOAD 00002c7a: PUSH1 0x20 00002c7c: DUP2 00002c7d: DUP4 00002c7e: SUB 00002c7f: SUB 00002c80: DUP2 00002c81: MSTORE 00002c82: SWAP1 00002c83: PUSH1 0x40 00002c85: MSTORE 00002c86: PUSH1 0x40 00002c88: MLOAD 00002c89: DUP1 00002c8a: DUP3 00002c8b: DUP1 00002c8c: MLOAD 00002c8d: SWAP1 00002c8e: PUSH1 0x20 00002c90: ADD 00002c91: SWAP1 00002c92: DUP1 00002c93: DUP4 00002c94: DUP4 00002c95: JUMPDEST 00002c96: PUSH1 0x20 00002c98: DUP4 00002c99: LT 00002c9a: PUSH2 0x2cb4 00002c9d: JUMPI 00002c9e: DUP1 00002c9f: MLOAD 00002ca0: DUP3 00002ca1: MSTORE 00002ca2: PUSH1 0x1f 00002ca4: NOT 00002ca5: SWAP1 00002ca6: SWAP3 00002ca7: ADD 00002ca8: SWAP2 00002ca9: PUSH1 0x20 00002cab: SWAP2 00002cac: DUP3 00002cad: ADD 00002cae: SWAP2 00002caf: ADD 00002cb0: PUSH2 0x2c95 00002cb3: JUMP 00002cb4: JUMPDEST 00002cb5: MLOAD 00002cb6: DUP2 00002cb7: MLOAD 00002cb8: PUSH1 0x20 00002cba: SWAP4 00002cbb: DUP5 00002cbc: SUB 00002cbd: PUSH2 0x0100 00002cc0: EXP 00002cc1: PUSH1 0x00 00002cc3: NOT 00002cc4: ADD 00002cc5: DUP1 00002cc6: NOT 00002cc7: SWAP1 00002cc8: SWAP3 00002cc9: AND 00002cca: SWAP2 00002ccb: AND 00002ccc: OR 00002ccd: SWAP1 00002cce: MSTORE 00002ccf: PUSH1 0x40 00002cd1: DUP1 00002cd2: MLOAD 00002cd3: SWAP3 00002cd4: SWAP1 00002cd5: SWAP5 00002cd6: ADD 00002cd7: DUP3 00002cd8: SWAP1 00002cd9: SUB 00002cda: SWAP1 00002cdb: SWAP2 00002cdc: KECCAK256 00002cdd: DUP7 00002cde: MSTORE 00002cdf: DUP6 00002ce0: ADD 00002ce1: SWAP6 00002ce2: SWAP1 00002ce3: SWAP6 00002ce4: MSTORE 00002ce5: SWAP3 00002ce6: SWAP1 00002ce7: SWAP3 00002ce8: ADD 00002ce9: PUSH1 0x00 00002ceb: KECCAK256 00002cec: DUP1 00002ced: SLOAD 00002cee: PUSH1 0xff 00002cf0: NOT 00002cf1: AND 00002cf2: SWAP5 00002cf3: ISZERO 00002cf4: ISZERO 00002cf5: SWAP5 00002cf6: SWAP1 00002cf7: SWAP5 00002cf8: OR 00002cf9: SWAP1 00002cfa: SWAP4 00002cfb: SSTORE 00002cfc: POP 00002cfd: POP 00002cfe: POP 00002cff: POP 00002d00: JUMP 00002d01: JUMPDEST 00002d02: PUSH2 0x2d09 00002d05: PUSH2 0x221a 00002d08: JUMP 00002d09: JUMPDEST 00002d0a: PUSH1 0x01 00002d0c: PUSH1 0xa0 00002d0e: PUSH1 0x02 00002d10: EXP 00002d11: SUB 00002d12: AND 00002d13: CALLER 00002d14: EQ 00002d15: PUSH2 0x2d1d 00002d18: JUMPI 00002d19: PUSH1 0x00 00002d1b: DUP1 00002d1c: REVERT 00002d1d: JUMPDEST 00002d1e: PUSH2 0x2d25 00002d21: PUSH2 0x0919 00002d24: JUMP 00002d25: JUMPDEST 00002d26: PUSH1 0x01 00002d28: PUSH1 0xa0 00002d2a: PUSH1 0x02 00002d2c: EXP 00002d2d: SUB 00002d2e: DUP4 00002d2f: DUP2 00002d30: AND 00002d31: SWAP2 00002d32: AND 00002d33: EQ 00002d34: ISZERO 00002d35: PUSH2 0x2d3d 00002d38: JUMPI 00002d39: PUSH1 0x00 00002d3b: DUP1 00002d3c: REVERT 00002d3d: JUMPDEST 00002d3e: PUSH2 0x186d 00002d41: DUP3 00002d42: DUP3 00002d43: PUSH2 0x3009 00002d46: JUMP 00002d47: JUMPDEST 00002d48: PUSH1 0x00 00002d4a: DUP3 00002d4b: DUP3 00002d4c: ADD 00002d4d: DUP4 00002d4e: DUP2 00002d4f: LT 00002d50: ISZERO 00002d51: PUSH2 0x1934 00002d54: JUMPI 00002d55: INVALID 00002d56: JUMPDEST 00002d57: PUSH1 0x00 00002d59: DUP1 00002d5a: DUP4 00002d5b: ISZERO 00002d5c: ISZERO 00002d5d: PUSH2 0x2d69 00002d60: JUMPI 00002d61: PUSH1 0x00 00002d63: SWAP2 00002d64: POP 00002d65: PUSH2 0x29e7 00002d68: JUMP 00002d69: JUMPDEST 00002d6a: POP 00002d6b: DUP3 00002d6c: DUP3 00002d6d: MUL 00002d6e: DUP3 00002d6f: DUP5 00002d70: DUP3 00002d71: DUP2 00002d72: ISZERO 00002d73: ISZERO 00002d74: PUSH2 0x2d79 00002d77: JUMPI 00002d78: INVALID 00002d79: JUMPDEST 00002d7a: DIV 00002d7b: EQ 00002d7c: PUSH2 0x1934 00002d7f: JUMPI 00002d80: INVALID 00002d81: JUMPDEST 00002d82: PUSH1 0x00 00002d84: DUP1 00002d85: DUP3 00002d86: DUP5 00002d87: DUP2 00002d88: ISZERO 00002d89: ISZERO 00002d8a: PUSH2 0x2d8f 00002d8d: JUMPI 00002d8e: INVALID 00002d8f: JUMPDEST 00002d90: DIV 00002d91: SWAP5 00002d92: SWAP4 00002d93: POP 00002d94: POP 00002d95: POP 00002d96: POP 00002d97: JUMP 00002d98: JUMPDEST 00002d99: PUSH1 0x00 00002d9b: DUP3 00002d9c: DUP3 00002d9d: GT 00002d9e: ISZERO 00002d9f: PUSH2 0x2da4 00002da2: JUMPI 00002da3: INVALID 00002da4: JUMPDEST 00002da5: POP 00002da6: SWAP1 00002da7: SUB 00002da8: SWAP1 00002da9: JUMP 00002daa: JUMPDEST 00002dab: PUSH1 0x00 00002dad: PUSH2 0x2db4 00002db0: PUSH2 0x31c5 00002db3: JUMP 00002db4: JUMPDEST 00002db5: DUP3 00002db6: MLOAD 00002db7: EQ 00002db8: SWAP1 00002db9: POP 00002dba: SWAP2 00002dbb: SWAP1 00002dbc: POP 00002dbd: JUMP 00002dbe: JUMPDEST 00002dbf: PUSH1 0x40 00002dc1: DUP1 00002dc2: MLOAD 00002dc3: DUP1 00002dc4: DUP3 00002dc5: ADD 00002dc6: DUP3 00002dc7: MSTORE 00002dc8: PUSH1 0x1a 00002dca: DUP2 00002dcb: MSTORE 00002dcc: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a000000000000 00002ded: PUSH1 0x20 00002def: DUP1 00002df0: DUP4 00002df1: ADD 00002df2: SWAP2 00002df3: DUP3 00002df4: MSTORE 00002df5: DUP4 00002df6: MLOAD 00002df7: DUP1 00002df8: DUP6 00002df9: ADD 00002dfa: DUP6 00002dfb: MSTORE 00002dfc: PUSH1 0x03 00002dfe: DUP2 00002dff: MSTORE 00002e00: PUSH32 0x3130340000000000000000000000000000000000000000000000000000000000 00002e21: DUP2 00002e22: DUP4 00002e23: ADD 00002e24: MSTORE 00002e25: SWAP4 00002e26: MLOAD 00002e27: DUP4 00002e28: MLOAD 00002e29: PUSH1 0x00 00002e2b: SWAP6 00002e2c: SWAP4 00002e2d: DUP6 00002e2e: SWAP4 00002e2f: DUP6 00002e30: SWAP4 00002e31: DUP10 00002e32: SWAP4 00002e33: SWAP2 00002e34: ADD 00002e35: SWAP2 00002e36: DUP3 00002e37: SWAP2 00002e38: DUP1 00002e39: DUP4 00002e3a: DUP4 00002e3b: JUMPDEST 00002e3c: PUSH1 0x20 00002e3e: DUP4 00002e3f: LT 00002e40: PUSH2 0x2e5a 00002e43: JUMPI 00002e44: DUP1 00002e45: MLOAD 00002e46: DUP3 00002e47: MSTORE 00002e48: PUSH1 0x1f 00002e4a: NOT 00002e4b: SWAP1 00002e4c: SWAP3 00002e4d: ADD 00002e4e: SWAP2 00002e4f: PUSH1 0x20 00002e51: SWAP2 00002e52: DUP3 00002e53: ADD 00002e54: SWAP2 00002e55: ADD 00002e56: PUSH2 0x2e3b 00002e59: JUMP 00002e5a: JUMPDEST 00002e5b: MLOAD 00002e5c: DUP2 00002e5d: MLOAD 00002e5e: PUSH1 0x20 00002e60: SWAP4 00002e61: DUP5 00002e62: SUB 00002e63: PUSH2 0x0100 00002e66: EXP 00002e67: PUSH1 0x00 00002e69: NOT 00002e6a: ADD 00002e6b: DUP1 00002e6c: NOT 00002e6d: SWAP1 00002e6e: SWAP3 00002e6f: AND 00002e70: SWAP2 00002e71: AND 00002e72: OR 00002e73: SWAP1 00002e74: MSTORE 00002e75: DUP7 00002e76: MLOAD 00002e77: SWAP2 00002e78: SWAP1 00002e79: SWAP4 00002e7a: ADD 00002e7b: SWAP3 00002e7c: DUP7 00002e7d: ADD 00002e7e: SWAP2 00002e7f: POP 00002e80: DUP1 00002e81: DUP4 00002e82: DUP4 00002e83: JUMPDEST 00002e84: PUSH1 0x20 00002e86: DUP4 00002e87: LT 00002e88: PUSH2 0x2ea2 00002e8b: JUMPI 00002e8c: DUP1 00002e8d: MLOAD 00002e8e: DUP3 00002e8f: MSTORE 00002e90: PUSH1 0x1f 00002e92: NOT 00002e93: SWAP1 00002e94: SWAP3 00002e95: ADD 00002e96: SWAP2 00002e97: PUSH1 0x20 00002e99: SWAP2 00002e9a: DUP3 00002e9b: ADD 00002e9c: SWAP2 00002e9d: ADD 00002e9e: PUSH2 0x2e83 00002ea1: JUMP 00002ea2: JUMPDEST 00002ea3: MLOAD 00002ea4: DUP2 00002ea5: MLOAD 00002ea6: PUSH1 0x20 00002ea8: SWAP4 00002ea9: DUP5 00002eaa: SUB 00002eab: PUSH2 0x0100 00002eae: EXP 00002eaf: PUSH1 0x00 00002eb1: NOT 00002eb2: ADD 00002eb3: DUP1 00002eb4: NOT 00002eb5: SWAP1 00002eb6: SWAP3 00002eb7: AND 00002eb8: SWAP2 00002eb9: AND 00002eba: OR 00002ebb: SWAP1 00002ebc: MSTORE 00002ebd: DUP6 00002ebe: MLOAD 00002ebf: SWAP2 00002ec0: SWAP1 00002ec1: SWAP4 00002ec2: ADD 00002ec3: SWAP3 00002ec4: DUP6 00002ec5: ADD 00002ec6: SWAP2 00002ec7: POP 00002ec8: DUP1 00002ec9: DUP4 00002eca: DUP4 00002ecb: JUMPDEST 00002ecc: PUSH1 0x20 00002ece: DUP4 00002ecf: LT 00002ed0: PUSH2 0x2eea 00002ed3: JUMPI 00002ed4: DUP1 00002ed5: MLOAD 00002ed6: DUP3 00002ed7: MSTORE 00002ed8: PUSH1 0x1f 00002eda: NOT 00002edb: SWAP1 00002edc: SWAP3 00002edd: ADD 00002ede: SWAP2 00002edf: PUSH1 0x20 00002ee1: SWAP2 00002ee2: DUP3 00002ee3: ADD 00002ee4: SWAP2 00002ee5: ADD 00002ee6: PUSH2 0x2ecb 00002ee9: JUMP 00002eea: JUMPDEST 00002eeb: PUSH1 0x01 00002eed: DUP4 00002eee: PUSH1 0x20 00002ef0: SUB 00002ef1: PUSH2 0x0100 00002ef4: EXP 00002ef5: SUB 00002ef6: DUP1 00002ef7: NOT 00002ef8: DUP3 00002ef9: MLOAD 00002efa: AND 00002efb: DUP2 00002efc: DUP5 00002efd: MLOAD 00002efe: AND 00002eff: DUP1 00002f00: DUP3 00002f01: OR 00002f02: DUP6 00002f03: MSTORE 00002f04: POP 00002f05: POP 00002f06: POP 00002f07: POP 00002f08: POP 00002f09: POP 00002f0a: SWAP1 00002f0b: POP 00002f0c: ADD 00002f0d: SWAP4 00002f0e: POP 00002f0f: POP 00002f10: POP 00002f11: POP 00002f12: PUSH1 0x40 00002f14: MLOAD 00002f15: PUSH1 0x20 00002f17: DUP2 00002f18: DUP4 00002f19: SUB 00002f1a: SUB 00002f1b: DUP2 00002f1c: MSTORE 00002f1d: SWAP1 00002f1e: PUSH1 0x40 00002f20: MSTORE 00002f21: PUSH1 0x40 00002f23: MLOAD 00002f24: DUP1 00002f25: DUP3 00002f26: DUP1 00002f27: MLOAD 00002f28: SWAP1 00002f29: PUSH1 0x20 00002f2b: ADD 00002f2c: SWAP1 00002f2d: DUP1 00002f2e: DUP4 00002f2f: DUP4 00002f30: JUMPDEST 00002f31: PUSH1 0x20 00002f33: DUP4 00002f34: LT 00002f35: PUSH2 0x2f4f 00002f38: JUMPI 00002f39: DUP1 00002f3a: MLOAD 00002f3b: DUP3 00002f3c: MSTORE 00002f3d: PUSH1 0x1f 00002f3f: NOT 00002f40: SWAP1 00002f41: SWAP3 00002f42: ADD 00002f43: SWAP2 00002f44: PUSH1 0x20 00002f46: SWAP2 00002f47: DUP3 00002f48: ADD 00002f49: SWAP2 00002f4a: ADD 00002f4b: PUSH2 0x2f30 00002f4e: JUMP 00002f4f: JUMPDEST 00002f50: MLOAD 00002f51: DUP2 00002f52: MLOAD 00002f53: PUSH1 0x20 00002f55: SWAP4 00002f56: SWAP1 00002f57: SWAP4 00002f58: SUB 00002f59: PUSH2 0x0100 00002f5c: EXP 00002f5d: PUSH1 0x00 00002f5f: NOT 00002f60: ADD 00002f61: DUP1 00002f62: NOT 00002f63: SWAP1 00002f64: SWAP2 00002f65: AND 00002f66: SWAP3 00002f67: AND 00002f68: SWAP2 00002f69: SWAP1 00002f6a: SWAP2 00002f6b: OR 00002f6c: SWAP1 00002f6d: MSTORE 00002f6e: PUSH1 0x40 00002f70: MLOAD 00002f71: SWAP3 00002f72: ADD 00002f73: DUP3 00002f74: SWAP1 00002f75: SUB 00002f76: SWAP1 00002f77: SWAP2 00002f78: KECCAK256 00002f79: SWAP8 00002f7a: SWAP7 00002f7b: POP 00002f7c: POP 00002f7d: POP 00002f7e: POP 00002f7f: POP 00002f80: POP 00002f81: POP 00002f82: JUMP 00002f83: JUMPDEST 00002f84: PUSH1 0x00 00002f86: DUP1 00002f87: JUMPDEST 00002f88: DUP4 00002f89: MLOAD 00002f8a: DUP2 00002f8b: LT 00002f8c: ISZERO 00002f8d: PUSH2 0x2fd2 00002f90: JUMPI 00002f91: DUP3 00002f92: PUSH1 0x01 00002f94: PUSH1 0xa0 00002f96: PUSH1 0x02 00002f98: EXP 00002f99: SUB 00002f9a: AND 00002f9b: DUP5 00002f9c: DUP3 00002f9d: DUP2 00002f9e: MLOAD 00002f9f: DUP2 00002fa0: LT 00002fa1: ISZERO 00002fa2: ISZERO 00002fa3: PUSH2 0x2fa8 00002fa6: JUMPI 00002fa7: INVALID 00002fa8: JUMPDEST 00002fa9: SWAP1 00002faa: PUSH1 0x20 00002fac: ADD 00002fad: SWAP1 00002fae: PUSH1 0x20 00002fb0: MUL 00002fb1: ADD 00002fb2: MLOAD 00002fb3: PUSH1 0x01 00002fb5: PUSH1 0xa0 00002fb7: PUSH1 0x02 00002fb9: EXP 00002fba: SUB 00002fbb: AND 00002fbc: EQ 00002fbd: ISZERO 00002fbe: PUSH2 0x2fca 00002fc1: JUMPI 00002fc2: PUSH1 0x01 00002fc4: SWAP2 00002fc5: POP 00002fc6: PUSH2 0x29e7 00002fc9: JUMP 00002fca: JUMPDEST 00002fcb: PUSH1 0x01 00002fcd: ADD 00002fce: PUSH2 0x2f87 00002fd1: JUMP 00002fd2: JUMPDEST 00002fd3: POP 00002fd4: PUSH1 0x00 00002fd6: SWAP4 00002fd7: SWAP3 00002fd8: POP 00002fd9: POP 00002fda: POP 00002fdb: JUMP 00002fdc: JUMPDEST 00002fdd: PUSH1 0x40 00002fdf: MLOAD 00002fe0: PUSH1 0x00 00002fe2: SWAP1 00002fe3: PUSH1 0x01 00002fe5: PUSH1 0xa0 00002fe7: PUSH1 0x02 00002fe9: EXP 00002fea: SUB 00002feb: DUP5 00002fec: AND 00002fed: SWAP1 00002fee: DUP4 00002fef: ISZERO 00002ff0: PUSH2 0x08fc 00002ff3: MUL 00002ff4: SWAP1 00002ff5: DUP5 00002ff6: SWAP1 00002ff7: DUP5 00002ff8: DUP2 00002ff9: DUP2 00002ffa: DUP2 00002ffb: DUP6 00002ffc: DUP9 00002ffd: DUP9 00002ffe: CALL 00002fff: SWAP8 00003000: SWAP7 00003001: POP 00003002: POP 00003003: POP 00003004: POP 00003005: POP 00003006: POP 00003007: POP 00003008: JUMP 00003009: JUMPDEST 0000300a: PUSH1 0x00 0000300c: DUP1 0000300d: PUSH2 0x3014 00003010: PUSH2 0x221a 00003013: JUMP 00003014: JUMPDEST 00003015: PUSH1 0x01 00003017: PUSH1 0xa0 00003019: PUSH1 0x02 0000301b: EXP 0000301c: SUB 0000301d: AND 0000301e: CALLER 0000301f: EQ 00003020: PUSH2 0x3028 00003023: JUMPI 00003024: PUSH1 0x00 00003026: DUP1 00003027: REVERT 00003028: JUMPDEST 00003029: PUSH1 0x01 0000302b: PUSH1 0xa0 0000302d: PUSH1 0x02 0000302f: EXP 00003030: SUB 00003031: DUP4 00003032: AND 00003033: ISZERO 00003034: ISZERO 00003035: PUSH2 0x303d 00003038: JUMPI 00003039: PUSH1 0x00 0000303b: DUP1 0000303c: REVERT 0000303d: JUMPDEST 0000303e: PUSH1 0x01 00003040: PUSH1 0xa0 00003042: PUSH1 0x02 00003044: EXP 00003045: SUB 00003046: DUP5 00003047: AND 00003048: ISZERO 00003049: ISZERO 0000304a: PUSH2 0x3089 0000304d: JUMPI 0000304e: PUSH1 0x40 00003050: MLOAD 00003051: PUSH1 0x01 00003053: PUSH1 0xa0 00003055: PUSH1 0x02 00003057: EXP 00003058: SUB 00003059: DUP5 0000305a: AND 0000305b: SWAP1 0000305c: ADDRESS 0000305d: BALANCE 0000305e: DUP1 0000305f: ISZERO 00003060: PUSH2 0x08fc 00003063: MUL 00003064: SWAP2 00003065: PUSH1 0x00 00003067: DUP2 00003068: DUP2 00003069: DUP2 0000306a: DUP6 0000306b: DUP9 0000306c: DUP9 0000306d: CALL 0000306e: SWAP4 0000306f: POP 00003070: POP 00003071: POP 00003072: POP 00003073: ISZERO 00003074: DUP1 00003075: ISZERO 00003076: PUSH2 0x3083 00003079: JUMPI 0000307a: RETURNDATASIZE 0000307b: PUSH1 0x00 0000307d: DUP1 0000307e: RETURNDATACOPY 0000307f: RETURNDATASIZE 00003080: PUSH1 0x00 00003082: REVERT 00003083: JUMPDEST 00003084: POP 00003085: PUSH2 0x31bf 00003088: JUMP 00003089: JUMPDEST 0000308a: PUSH1 0x40 0000308c: DUP1 0000308d: MLOAD 0000308e: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 000030af: DUP2 000030b0: MSTORE 000030b1: ADDRESS 000030b2: PUSH1 0x04 000030b4: DUP3 000030b5: ADD 000030b6: MSTORE 000030b7: SWAP1 000030b8: MLOAD 000030b9: DUP6 000030ba: SWAP4 000030bb: POP 000030bc: PUSH1 0x01 000030be: PUSH1 0xa0 000030c0: PUSH1 0x02 000030c2: EXP 000030c3: SUB 000030c4: DUP5 000030c5: AND 000030c6: SWAP2 000030c7: PUSH4 0x70a08231 000030cc: SWAP2 000030cd: PUSH1 0x24 000030cf: DUP1 000030d0: DUP4 000030d1: ADD 000030d2: SWAP3 000030d3: PUSH1 0x20 000030d5: SWAP3 000030d6: SWAP2 000030d7: SWAP1 000030d8: DUP3 000030d9: SWAP1 000030da: SUB 000030db: ADD 000030dc: DUP2 000030dd: PUSH1 0x00 000030df: DUP8 000030e0: DUP1 000030e1: EXTCODESIZE 000030e2: ISZERO 000030e3: DUP1 000030e4: ISZERO 000030e5: PUSH2 0x30ed 000030e8: JUMPI 000030e9: PUSH1 0x00 000030eb: DUP1 000030ec: REVERT 000030ed: JUMPDEST 000030ee: POP 000030ef: GAS 000030f0: CALL 000030f1: ISZERO 000030f2: DUP1 000030f3: ISZERO 000030f4: PUSH2 0x3101 000030f7: JUMPI 000030f8: RETURNDATASIZE 000030f9: PUSH1 0x00 000030fb: DUP1 000030fc: RETURNDATACOPY 000030fd: RETURNDATASIZE 000030fe: PUSH1 0x00 00003100: REVERT 00003101: JUMPDEST 00003102: POP 00003103: POP 00003104: POP 00003105: POP 00003106: PUSH1 0x40 00003108: MLOAD 00003109: RETURNDATASIZE 0000310a: PUSH1 0x20 0000310c: DUP2 0000310d: LT 0000310e: ISZERO 0000310f: PUSH2 0x3117 00003112: JUMPI 00003113: PUSH1 0x00 00003115: DUP1 00003116: REVERT 00003117: JUMPDEST 00003118: POP 00003119: MLOAD 0000311a: PUSH1 0x40 0000311c: DUP1 0000311d: MLOAD 0000311e: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000 0000313f: DUP2 00003140: MSTORE 00003141: PUSH1 0x01 00003143: PUSH1 0xa0 00003145: PUSH1 0x02 00003147: EXP 00003148: SUB 00003149: DUP7 0000314a: DUP2 0000314b: AND 0000314c: PUSH1 0x04 0000314e: DUP4 0000314f: ADD 00003150: MSTORE 00003151: PUSH1 0x24 00003153: DUP3 00003154: ADD 00003155: DUP5 00003156: SWAP1 00003157: MSTORE 00003158: SWAP2 00003159: MLOAD 0000315a: SWAP3 0000315b: SWAP4 0000315c: POP 0000315d: SWAP1 0000315e: DUP5 0000315f: AND 00003160: SWAP2 00003161: PUSH4 0xa9059cbb 00003166: SWAP2 00003167: PUSH1 0x44 00003169: DUP1 0000316a: DUP3 0000316b: ADD 0000316c: SWAP3 0000316d: PUSH1 0x20 0000316f: SWAP3 00003170: SWAP1 00003171: SWAP2 00003172: SWAP1 00003173: DUP3 00003174: SWAP1 00003175: SUB 00003176: ADD 00003177: DUP2 00003178: PUSH1 0x00 0000317a: DUP8 0000317b: DUP1 0000317c: EXTCODESIZE 0000317d: ISZERO 0000317e: DUP1 0000317f: ISZERO 00003180: PUSH2 0x3188 00003183: JUMPI 00003184: PUSH1 0x00 00003186: DUP1 00003187: REVERT 00003188: JUMPDEST 00003189: POP 0000318a: GAS 0000318b: CALL 0000318c: ISZERO 0000318d: DUP1 0000318e: ISZERO 0000318f: PUSH2 0x319c 00003192: JUMPI 00003193: RETURNDATASIZE 00003194: PUSH1 0x00 00003196: DUP1 00003197: RETURNDATACOPY 00003198: RETURNDATASIZE 00003199: PUSH1 0x00 0000319b: REVERT 0000319c: JUMPDEST 0000319d: POP 0000319e: POP 0000319f: POP 000031a0: POP 000031a1: PUSH1 0x40 000031a3: MLOAD 000031a4: RETURNDATASIZE 000031a5: PUSH1 0x20 000031a7: DUP2 000031a8: LT 000031a9: ISZERO 000031aa: PUSH2 0x31b2 000031ad: JUMPI 000031ae: PUSH1 0x00 000031b0: DUP1 000031b1: REVERT 000031b2: JUMPDEST 000031b3: POP 000031b4: MLOAD 000031b5: ISZERO 000031b6: ISZERO 000031b7: PUSH2 0x31bf 000031ba: JUMPI 000031bb: PUSH1 0x00 000031bd: DUP1 000031be: REVERT 000031bf: JUMPDEST 000031c0: POP 000031c1: POP 000031c2: POP 000031c3: POP 000031c4: JUMP 000031c5: JUMPDEST 000031c6: PUSH1 0x68 000031c8: SWAP1 000031c9: JUMP 000031ca: STOP 000031cb: UNKNOWN(0xDD) 000031cc: CALLCODE 000031cd: MSTORE 000031ce: UNKNOWN(0xAD) 000031cf: SHL 000031d0: UNKNOWN(0xE2) 000031d1: UNKNOWN(0xC8) 000031d2: SWAP12 000031d3: PUSH10 0xc2b068fc378daa952ba7 000031de: CALL 000031df: PUSH4 0xc4a11628 000031e4: CREATE2 000031e5: GAS 000031e6: UNKNOWN(0x4D) 000031e7: CREATE2 000031e8: UNKNOWN(0x23) 000031e9: UNKNOWN(0xB3) 000031ea: UNKNOWN(0xEF) 000031eb: LOG1 000031ec: PUSH6 0x627a7a723058 000031f3: KECCAK256 000031f4: CALLDATACOPY 000031f5: UNKNOWN(0xDC) 000031f6: EXTCODESIZE 000031f7: REVERT 000031f8: UNKNOWN(0x2E) 000031f9: REVERT 000031fa: AND 000031fb: UNKNOWN(0xEF) 000031fc: PC 000031fd: SWAP4 000031fe: UNKNOWN(0xD6) 000031ff: UNKNOWN(0x2C) 00003200: UNKNOWN(0xA6) 00003201: UNKNOWN(0xD6) 00003202: GT 00003203: PUSH26
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x9a372663df80a5e6b1b9043dc926bbf74a91204e3e6fcff2c203bc512a36d873
call_targets:
0x4550a1ce64d0fe04b9d45eab84757380817520f4
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x9a372663df80a5e6b1b9043dc926bbf74a91204e3e6fcff2c203bc512a36d873",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x4550a1ce64d0fe04b9d45eab84757380817520f4"
],
"matched_probe": null,
"target_varies": false,
"classification": "constant_target"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1dcea427",
"selector": "0x1dcea427",
"calldata_variants": [
"0x1dcea427",
"0x1dcea4270000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x21d800ec",
"selector": "0x21d800ec",
"calldata_variants": [
"0x21d800ec",
"0x21d800ec0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x232a2c1d",
"selector": "0x232a2c1d",
"calldata_variants": [
"0x232a2c1d",
"0x232a2c1d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x23b872dd",
"selector": "0x23b872dd",
"calldata_variants": [
"0x23b872dd",
"0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2b92490e",
"selector": "0x2b92490e",
"calldata_variants": [
"0x2b92490e",
"0x2b92490e0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2396,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6648,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 9531,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 12,
"guards_detected": [],
"untrusted_call_count": 12
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x9a372663df80a5e6b1b9043dc926bbf74a91204e3e6fcff2c203bc512a36d873
call_targets:
0x4550a1ce64d0fe04b9d45eab84757380817520f4
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x9a372663df80a5e6b1b9043dc926bbf74a91204e3e6fcff2c203bc512a36d873",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x4550a1ce64d0fe04b9d45eab84757380817520f4"
],
"matched_probe": null,
"target_varies": false,
"classification": "constant_target"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1dcea427",
"selector": "0x1dcea427",
"calldata_variants": [
"0x1dcea427",
"0x1dcea4270000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x21d800ec",
"selector": "0x21d800ec",
"calldata_variants": [
"0x21d800ec",
"0x21d800ec0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x232a2c1d",
"selector": "0x232a2c1d",
"calldata_variants": [
"0x232a2c1d",
"0x232a2c1d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x23b872dd",
"selector": "0x23b872dd",
"calldata_variants": [
"0x23b872dd",
"0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2b92490e",
"selector": "0x2b92490e",
"calldata_variants": [
"0x2b92490e",
"0x2b92490e0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2396,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6648,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 9531,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 12,
"guards_detected": []
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0x92a25c2ff326fe439a0d7ea006ef13915e4f1ee7344cf5de07dcd1e9732cb1d5
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0x92a25c2ff326fe439a0d7ea006ef13915e4f1ee7344cf5de07dcd1e9732cb1d5",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1dcea427",
"selector": "0x1dcea427",
"calldata_variants": [
"0x1dcea427",
"0x1dcea4270000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x21d800ec",
"selector": "0x21d800ec",
"calldata_variants": [
"0x21d800ec",
"0x21d800ec0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x232a2c1d",
"selector": "0x232a2c1d",
"calldata_variants": [
"0x232a2c1d",
"0x232a2c1d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x23b872dd",
"selector": "0x23b872dd",
"calldata_variants": [
"0x23b872dd",
"0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2b92490e",
"selector": "0x2b92490e",
"calldata_variants": [
"0x2b92490e",
"0x2b92490e0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 0,
"create2_count": 2
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 0,
"create2_count": 2
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 12
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 12
}
|