48761642-a2bb-4ad0-8c2c-796509a9987b
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 |
|---|---|---|---|---|
| 31078 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 76282 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 76283 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 76284 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 76285 | capability.graph | complete | 1 / 3 | 1 week ago |
| 76286 | detector.run | complete | 1 / 3 | 1 week ago |
| 76287 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:767956] OpenAI Codex v0.77.0 (research preview)
[codex:767956] --------
[codex:767956] workdir: /tmp/codex-multi-qfphmk4w
[codex:767956] model: gpt-5.2-codex
[codex:767956] provider: openai
[codex:767956] approval: never
[codex:767956] sandbox: read-only
[codex:767956] reasoning effort: xhigh
[codex:767956] reasoning summaries: auto
[codex:767956] session id: 019b7a65-0a1b-7dc3-9011-7634195b3e2e
[codex:767956] --------
[codex:767956] user
[codex:767956] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:767956]
[codex:767956] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:767956]
[codex:767956] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:767956] - Gas inefficiency, code quality, naming, or best practices
[codex:767956] - Theoretical vulnerabilities without a clear extraction path
[codex:767956] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:767956] - Front-running unless it enables theft beyond MEV
[codex:767956] - DoS, griefing, or issues that don't result in attacker profit
[codex:767956] - Missing events, view function issues, or informational findings
[codex:767956]
[codex:767956] HIGH-VALUE PATTERNS TO HUNT:
[codex:767956] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:767956] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:767956] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:767956] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:767956] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:767956] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:767956] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:767956] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:767956] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:767956]
[codex:767956] For each finding, you MUST provide:
[codex:767956] 1. Exact file and line numbers of vulnerable code
[codex:767956] 2. Step-by-step exploit transaction sequence
[codex:767956] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:767956]
[codex:767956] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:767956]
[codex:767956] Output MUST be valid JSON matching the provided schema.
[codex:767956] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:767956] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:767956] mcp startup: no servers
[codex:767956]
[codex:767956] thinking
[codex:767956] **Preparing to read AUDIT_BUNDLE.txt**
[codex:767956] exec
[codex:767956] /bin/bash -lc ls in /tmp/codex-multi-qfphmk4w succeeded in 5ms:
[codex:767956] AUDIT_BUNDLE.txt
[codex:767956] codex-output-schema.json
[codex:767956] contracts
[codex:767956] exec
[codex:767956] /bin/bash -lc 'rg --files' in /tmp/codex-multi-qfphmk4w succeeded in 11ms:
[codex:767956] codex-output-schema.json
[codex:767956] AUDIT_BUNDLE.txt
[codex:767956] contracts/Contract.sol
[codex:767956] exec
[codex:767956] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-qfphmk4w succeeded in 5ms:
[codex:767956] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:767956]
[codex:767956] ================================================================================
[codex:767956] FILE: contracts/Contract.sol
[codex:767956] ================================================================================
[codex:767956] //SPDX-License-Identifier: lgplv3 OR MIT
[codex:767956] // File: @openzeppelin/contracts/proxy/Proxy.sol
[codex:767956]
[codex:767956] // OpenZeppelin Contracts v4.4.1 (proxy/Proxy.sol)
[codex:767956]
[codex:767956] pragma solidity ^0.8.0;
[codex:767956]
[codex:767956] /**
[codex:767956] * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM
[codex:767956] * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to
[codex:767956] * be specified by overriding the virtual {_implementation} function.
[codex:767956] *
[codex:767956] * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a
[codex:767956] * different contract through the {_delegate} function.
[codex:767956] *
[codex:767956]
[codex:767956] thinking
[codex:767956] **Examining full contract for exploits**
[codex:767956] exec
[codex:767956] /bin/bash -lc 'nl -ba contracts/Contract.sol' in /tmp/codex-multi-qfphmk4w succeeded in 7ms:
[codex:767956] 1 //SPDX-License-Identifier: lgplv3 OR MIT
[codex:767956] 2 // File: @openzeppelin/contracts/proxy/Proxy.sol
[codex:767956] 3
[codex:767956] 4 // OpenZeppelin Contracts v4.4.1 (proxy/Proxy.sol)
[codex:767956] 5
[codex:767956] 6 pragma solidity ^0.8.0;
[codex:767956] 7
[codex:767956] 8 /**
[codex:767956] 9 * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM
[codex:767956] 10 * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to
[codex:767956] 11 * be specified by overriding the virtual {_implementation} function.
[codex:767956] 12 *
[codex:767956] 13 * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a
[codex:767956] 14 * different contract through the {_delegate} function.
[codex:767956] 15 *
[codex:767956] 16 * The success and return data of the delegated call will be returned back to the caller of the proxy.
[codex:767956] 17 */
[codex:767956] 18 abstract contract Proxy {
[codex:767956] 19 /**
[codex:767956] 20 * @dev Delegates the current call to `implementation`.
[codex:767956]
[codex:767956] thinking
[codex:767956] **Locating MultiSigWallet contract**
[codex:767956] exec
[codex:767956] /bin/bash -lc 'rg -n "contract MultiSigWallet" -n contracts/Contract.sol' in /tmp/codex-multi-qfphmk4w succeeded in 9ms:
[codex:767956] 792:contract MultiSigWallet {
[codex:767956] 1211:contract MultiSigWalletWithPermit is MultiSigWallet {
[codex:767956] exec
[codex:767956] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '760,940p'" in /tmp/codex-multi-qfphmk4w succeeded in 6ms:
[codex:767956] 760 * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.
[codex:767956] 761 */
[codex:767956] 762 function _beforeFallback() internal virtual override {
[codex:767956] 763 require(msg.sender != _getAdmin(), "TransparentUpgradeableProxy: admin cannot fallback to proxy target");
[codex:767956] 764 super._beforeFallback();
[codex:767956] 765 }
[codex:767956] 766 }
[codex:767956] 767
[codex:767956] 768 // File: contracts/ERC721TokenReceiver.sol
[codex:767956] 769
[codex:767956] 770
[codex:767956] 771 pragma solidity ^0.8.0;
[codex:767956] 772
[codex:767956] 773 contract ERC721TokenReceiver {
[codex:767956] 774 function onERC721Received(
[codex:767956] 775 address,
[codex:767956] 776 address,
[codex:767956] 777 uint256,
[codex:767956] 778 bytes memory
[codex:767956] 779 ) external pure returns (bytes4) {
[codex:767956]
[codex:767956]
[codex:767956]
[codex:767956]
[codex:767956] thinking
[codex:767956] **Analyzing multisig permit vulnerabilities**
[codex:767956]
[codex:767956] This is a deep dive into the MultiSigWalletWithPermit contract, focusing on initialization risks with proxies and the permit-based execution flow. I'm checking for uninitalized wallets, front-running setup calls, signature replay or duplicate signature issues, reentrancy possibilities during transaction execution, and whether the proxy admin multisig might be vulnerable if deployed uninitialized. The conclusion so far is that the factory and constructor checks largely prevent unsafe uninitialized states, though classic uninitialized proxy wallet scenarios persist if deployed directly or outside factory. Signature logic seems solid against duplicates but lacks a deadline, so replays within the current nonce window remain possible.
[codex:767956] thinking
[codex:767956] **Identifying reentrancy risks in permit execution**
[codex:767956]
[codex:767956] I'm examining subtle reentrancy issues in executeTxWithPermits due to executed flags being set only after external calls, allowing a malicious owner contract to reenter and execute transactions twice, potentially draining double funds. The scenario requires the attacker to control an owner contract as destination, enabling callbacks into the wallet during execution. This nuanced vulnerability hinges on multisig owners approving a transaction sending funds to such a contract and the lack of pre-call executed marking in permit-based execution.
[codex:767956] thinking
[codex:767956] **Clarifying owner contract reentrancy scenario**
[codex:767956]
[codex:767956] I'm confirming that the reentrancy exploit requires the attacker to control an owner contract that can call executeTxWithPermits with itself as destination, leveraging signatures from other owners. This setup enables double execution by reentering executeTransaction during the external call, effectively doubling withdrawals when the wallet has sufficient balance. The nuanced chain of approvals and contract calls makes this a concrete profit path under certain multisig configurations.
[codex:767956] thinking
[codex:767956] ```json
[codex:767956] {
[codex:767956] "no_findings": false,
[codex:767956] "summary": "Reentrancy in executeTxWithPermits enables double execution of an approved transaction, allowing an owner contract to drain up to the wallet's balance by exploiting external calls before marking the transaction executed.",
[codex:767956] "findings": [
[codex:767956] {
[codex:767956] "severity": "high",
[codex:767956] "category": "reentrancy",
[codex:767956] "title": "Double execution via reentrancy in executeTxWithPermits",
[codex:767956] "exploit_scenario": "An attacker controlling an owner contract obtains required signatures from other owners for a transaction sending ETH to the attacker contract. The attacker contract calls executeTxWithPermits, which adds the transaction and then calls executeTransactionInner. During the external call to the attacker contract, it reenters executeTransaction to execute the same transaction again before the executed flag is set, resulting in sending twice the approved value. Repeating with value equal to half the wallet balance can drain the entire wallet.",
[codex:767956] "recommendation": "Modify executeTxWithPermits or executeTransactionInner to set the transaction's executed flag before the external call, or implement a reentrancy guard to prevent double execution. Align this behavior with executeTransaction, which marks executed before calling external contracts.",
[codex:767956] "evidence": "executeTxWithPermits adds transaction and calls executeTransactionInner; executeTransactionInner performs destination.call{value:value}(data) (contracts/Contract.sol:1382) before setting transactions[transactionId].executed = true (contracts/Contract.sol:1387). During this call, a malicious destination that is also an owner can reenter executeTransaction (contracts/Contract.sol:1025) and execute the transaction again.",
[codex:767956] "locations": [
[codex:767956] "contracts/Contract.sol:1323-1371",
[codex:767956] "contracts/Contract.sol:1374-1388",
[codex:767956] "contracts/Contract.sol:1025-1041"
[codex:767956] ]
[codex:767956] }
[codex:767956] ]
[codex:767956] }
[codex:767956] ```
[codex:767956] exec
[codex:767956] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '1018,1045p'" in /tmp/codex-multi-qfphmk4w succeeded in 6ms:
[codex:767956] 1018 confirmed(transactionId, msg.sender)
[codex:767956] 1019 notExecuted(transactionId)
[codex:767956] 1020 {
[codex:767956] 1021 confirmations[transactionId][msg.sender] = false;
[codex:767956] 1022 emit Revocation(msg.sender, transactionId);
[codex:767956] 1023 }
[codex:767956] 1024
[codex:767956] 1025 /// @dev Allows anyone to execute a confirmed transaction.
[codex:767956] 1026 /// @param transactionId Transaction ID.
[codex:767956] 1027 function executeTransaction(uint transactionId)
[codex:767956] 1028 public payable virtual
[codex:767956] 1029 ownerExists(msg.sender)
[codex:767956] 1030 confirmed(transactionId, msg.sender)
[codex:767956] 1031 notExecuted(transactionId)
[codex:767956] 1032 {
[codex:767956] 1033 if (isConfirmed(transactionId)) {
[codex:767956] 1034 Transaction storage txn = transactions[transactionId];
[codex:767956] 1035 txn.executed = true;
[codex:767956] 1036 if (external_call(txn.destination, txn.value, txn.data.length, txn.data))
[codex:767956] 1037 emit Execution(transactionId);
[codex:767956]
[codex:767956] thinking
[codex:767956] **Examining executeTransactionInner function**
[codex:767956] exec
[codex:767956] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '1348,1395p'" in /tmp/codex-multi-qfphmk4w succeeded in 6ms:
[codex:767956] 1348 PERMIT_TYPEHASH,
[codex:767956] 1349 msg.sender,
[codex:767956] 1350 destination,
[codex:767956] 1351 value,
[codex:767956] 1352 keccak256(data),
[codex:767956] 1353 nonce
[codex:767956] 1354 )
[codex:767956] 1355 )
[codex:767956] 1356 )
[codex:767956] 1357 );
[codex:767956] 1358
[codex:767956] 1359 for (uint8 i = 0; i < rs.length; ++i) {
[codex:767956] 1360 address owner = ecrecover(digest, vs[i], rs[i], ss[i]);
[codex:767956] 1361 require(owner != address(0), "MS03");
[codex:767956] 1362 require(isOwner[owner], "MS04");
[codex:767956] 1363
[codex:767956] 1364 confirmations[newTransactionId][owner] = true;
[codex:767956] 1365 }
[codex:767956] 1366
[codex:767956] 1367 if (isConfirmed(newTransactionId)) {
[codex:767956]
[codex:767956] thinking
[codex:767956] **Preparing detailed security finding JSON**
[codex:767956] codex
[codex:767956] {"no_findings":false,"summary":"Found a reentrancy in permit-based execution that lets a malicious owner contract double-spend an approved transfer.","findings":[{"severity":"high","category":"reentrancy","title":"executeTxWithPermits allows reentrant double-execution of the same transaction","exploit_scenario":"1) Attacker controls an owner contract and obtains the required off-chain signatures for a transaction that sends X ETH to that contract (nonce = current transactionCount). 2) The owner contract calls executeTxWithPermits with destination = itself and the collected signatures. 3) executeTransactionInner makes the external call before marking the transaction executed; in the destination fallback, the attacker reenters and calls executeTransaction(transactionId) (the transactionId equals the nonce passed). 4) Because confirmations for the attacker contract are already set and executed is still false, executeTransaction succeeds and transfers X again. 5) Net payout is 2X in one tx; profit is the extra X. With X <= walletBalance/2 the attacker can drain up to the full wallet ETH balance (repeat for full drain).","recommendation":"Set transactions[transactionId].executed = true before the external call (and revert/reset on failure) or reuse executeTransaction’s checks-effects-interactions flow; additionally add a reentrancy guard around executeTxWithPermits/executeTransactionInner.","evidence":"executeTxWithPermits calls executeTransactionInner, which performs destination.call{value:value}(data) before setting executed (contracts/Contract.sol:1367-1387). During that external call, a destination that is also an owner and already confirmed can reenter executeTransaction (contracts/Contract.sol:1027-1037) while notExecuted still passes, causing a second transfer.","locations":["contracts/Contract.sol:1323","contracts/Contract.sol:1367","contracts/Contract.sol:1382","contracts/Contract.sol:1387","contracts/Contract.sol:1027"]}]}
[codex:767956] tokens used
[codex:767956] 45,097
[codex:767956] {"no_findings":false,"summary":"Found a reentrancy in permit-based execution that lets a malicious owner contract double-spend an approved transfer.","findings":[{"severity":"high","category":"reentrancy","title":"executeTxWithPermits allows reentrant double-execution of the same transaction","exploit_scenario":"1) Attacker controls an owner contract and obtains the required off-chain signatures for a transaction that sends X ETH to that contract (nonce = current transactionCount). 2) The owner contract calls executeTxWithPermits with destination = itself and the collected signatures. 3) executeTransactionInner makes the external call before marking the transaction executed; in the destination fallback, the attacker reenters and calls executeTransaction(transactionId) (the transactionId equals the nonce passed). 4) Because confirmations for the attacker contract are already set and executed is still false, executeTransaction succeeds and transfers X again. 5) Net payout is 2X in one tx; profit is the extra X. With X <= walletBalance/2 the attacker can drain up to the full wallet ETH balance (repeat for full drain).","recommendation":"Set transactions[transactionId].executed = true before the external call (and revert/reset on failure) or reuse executeTransaction’s checks-effects-interactions flow; additionally add a reentrancy guard around executeTxWithPermits/executeTransactionInner.","evidence":"executeTxWithPermits calls executeTransactionInner, which performs destination.call{value:value}(data) before setting executed (contracts/Contract.sol:1367-1387). During that external call, a destination that is also an owner and already confirmed can reenter executeTransaction (contracts/Contract.sol:1027-1037) while notExecuted still passes, causing a second transfer.","locations":["contracts/Contract.sol:1323","contracts/Contract.sol:1367","contracts/Contract.sol:1382","contracts/Contract.sol:1387","contracts/Contract.sol:1027"]}]}
{
"codex": {
"ran_at": "2026-01-01T16:35:14.740005+00:00",
"returncode": 0
},
"summary": "Found a reentrancy in permit-based execution that lets a malicious owner contract double-spend an approved transfer.",
"raw_final": {
"summary": "Found a reentrancy in permit-based execution that lets a malicious owner contract double-spend an approved transfer.",
"findings": [
{
"title": "executeTxWithPermits allows reentrant double-execution of the same transaction",
"category": "reentrancy",
"evidence": "executeTxWithPermits calls executeTransactionInner, which performs destination.call{value:value}(data) before setting executed (contracts/Contract.sol:1367-1387). During that external call, a destination that is also an owner and already confirmed can reenter executeTransaction (contracts/Contract.sol:1027-1037) while notExecuted still passes, causing a second transfer.",
"severity": "high",
"locations": [
"contracts/Contract.sol:1323",
"contracts/Contract.sol:1367",
"contracts/Contract.sol:1382",
"contracts/Contract.sol:1387",
"contracts/Contract.sol:1027"
],
"recommendation": "Set transactions[transactionId].executed = true before the external call (and revert/reset on failure) or reuse executeTransaction\u2019s checks-effects-interactions flow; additionally add a reentrancy guard around executeTxWithPermits/executeTransactionInner.",
"exploit_scenario": "1) Attacker controls an owner contract and obtains the required off-chain signatures for a transaction that sends X ETH to that contract (nonce = current transactionCount). 2) The owner contract calls executeTxWithPermits with destination = itself and the collected signatures. 3) executeTransactionInner makes the external call before marking the transaction executed; in the destination fallback, the attacker reenters and calls executeTransaction(transactionId) (the transactionId equals the nonce passed). 4) Because confirmations for the attacker contract are already set and executed is still false, executeTransaction succeeds and transfers X again. 5) Net payout is 2X in one tx; profit is the extra X. With X <= walletBalance/2 the attacker can drain up to the full wallet ETH balance (repeat for full drain)."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x01e7 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x9ace38c2 00000019: GT 0000001a: PUSH2 0x0102 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xbc197c81 00000024: GT 00000025: PUSH2 0x0095 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xdc8452cd 0000002f: GT 00000030: PUSH2 0x0064 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xdc8452cd 0000003a: EQ 0000003b: PUSH2 0x0693 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xe20056e6 00000045: EQ 00000046: PUSH2 0x06a9 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xee22610b 00000050: EQ 00000051: PUSH2 0x06c9 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xf23a6e61 0000005b: EQ 0000005c: PUSH2 0x06dc 0000005f: JUMPI 00000060: PUSH2 0x022b 00000063: JUMP 00000064: JUMPDEST 00000065: DUP1 00000066: PUSH4 0xbc197c81 0000006b: EQ 0000006c: PUSH2 0x061c 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0xc01a8c84 00000076: EQ 00000077: PUSH2 0x064b 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xc6427474 00000081: EQ 00000082: PUSH2 0x065e 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0xd74f8edd 0000008c: EQ 0000008d: PUSH2 0x067e 00000090: JUMPI 00000091: PUSH2 0x022b 00000094: JUMP 00000095: JUMPDEST 00000096: DUP1 00000097: PUSH4 0xb0a08a7e 0000009c: GT 0000009d: PUSH2 0x00d1 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0xb0a08a7e 000000a7: EQ 000000a8: PUSH2 0x05a4 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0xb5dc40c3 000000b2: EQ 000000b3: PUSH2 0x05c6 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0xb77bf600 000000bd: EQ 000000be: PUSH2 0x05e6 000000c1: JUMPI 000000c2: DUP1 000000c3: PUSH4 0xba51a6df 000000c8: EQ 000000c9: PUSH2 0x05fc 000000cc: JUMPI 000000cd: PUSH2 0x022b 000000d0: JUMP 000000d1: JUMPDEST 000000d2: DUP1 000000d3: PUSH4 0x9ace38c2 000000d8: EQ 000000d9: PUSH2 0x0505 000000dc: JUMPI 000000dd: DUP1 000000de: PUSH4 0xa0e67e2b 000000e3: EQ 000000e4: PUSH2 0x0535 000000e7: JUMPI 000000e8: DUP1 000000e9: PUSH4 0xa43bee2b 000000ee: EQ 000000ef: PUSH2 0x0557 000000f2: JUMPI 000000f3: DUP1 000000f4: PUSH4 0xa8abe69a 000000f9: EQ 000000fa: PUSH2 0x0577 000000fd: JUMPI 000000fe: PUSH2 0x022b 00000101: JUMP 00000102: JUMPDEST 00000103: DUP1 00000104: PUSH4 0x3644e515 00000109: GT 0000010a: PUSH2 0x017a 0000010d: JUMPI 0000010e: DUP1 0000010f: PUSH4 0x7065cb48 00000114: GT 00000115: PUSH2 0x0149 00000118: JUMPI 00000119: DUP1 0000011a: PUSH4 0x7065cb48 0000011f: EQ 00000120: PUSH2 0x0485 00000123: JUMPI 00000124: DUP1 00000125: PUSH4 0x784547a7 0000012a: EQ 0000012b: PUSH2 0x04a5 0000012e: JUMPI 0000012f: DUP1 00000130: PUSH4 0x84eead63 00000135: EQ 00000136: PUSH2 0x04c5 00000139: JUMPI 0000013a: DUP1 0000013b: PUSH4 0x8b51d13f 00000140: EQ 00000141: PUSH2 0x04e5 00000144: JUMPI 00000145: PUSH2 0x022b 00000148: JUMP 00000149: JUMPDEST 0000014a: DUP1 0000014b: PUSH4 0x3644e515 00000150: EQ 00000151: PUSH2 0x041b 00000154: JUMPI 00000155: DUP1 00000156: PUSH4 0x54741525 0000015b: EQ 0000015c: PUSH2 0x0431 0000015f: JUMPI 00000160: DUP1 00000161: PUSH4 0x54e7796f 00000166: EQ 00000167: PUSH2 0x0451 0000016a: JUMPI 0000016b: DUP1 0000016c: PUSH4 0x54fd4d50 00000171: EQ 00000172: PUSH2 0x0471 00000175: JUMPI 00000176: PUSH2 0x022b 00000179: JUMP 0000017a: JUMPDEST 0000017b: DUP1 0000017c: PUSH4 0x20ea8d86 00000181: GT 00000182: PUSH2 0x01b6 00000185: JUMPI 00000186: DUP1 00000187: PUSH4 0x20ea8d86 0000018c: EQ 0000018d: PUSH2 0x034e 00000190: JUMPI 00000191: DUP1 00000192: PUSH4 0x2f54bf6e 00000197: EQ 00000198: PUSH2 0x036e 0000019b: JUMPI 0000019c: DUP1 0000019d: PUSH4 0x30adf81f 000001a2: EQ 000001a3: PUSH2 0x039e 000001a6: JUMPI 000001a7: DUP1 000001a8: PUSH4 0x3411c81c 000001ad: EQ 000001ae: PUSH2 0x03e0 000001b1: JUMPI 000001b2: PUSH2 0x022b 000001b5: JUMP 000001b6: JUMPDEST 000001b7: DUP1 000001b8: PUSH4 0x01ffc9a7 000001bd: EQ 000001be: PUSH2 0x0263 000001c1: JUMPI 000001c2: DUP1 000001c3: PUSH4 0x025e7c27 000001c8: EQ 000001c9: PUSH2 0x02b2 000001cc: JUMPI 000001cd: DUP1 000001ce: PUSH4 0x150b7a02 000001d3: EQ 000001d4: PUSH2 0x02ea 000001d7: JUMPI 000001d8: DUP1 000001d9: PUSH4 0x173825d9 000001de: EQ 000001df: PUSH2 0x032e 000001e2: JUMPI 000001e3: PUSH2 0x022b 000001e6: JUMP 000001e7: JUMPDEST 000001e8: CALLDATASIZE 000001e9: PUSH2 0x022b 000001ec: JUMPI 000001ed: CALLVALUE 000001ee: ISZERO 000001ef: PUSH2 0x0229 000001f2: JUMPI 000001f3: PUSH1 0x40 000001f5: MLOAD 000001f6: CALLVALUE 000001f7: DUP2 000001f8: MSTORE 000001f9: CALLER 000001fa: SWAP1 000001fb: PUSH32 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c 0000021c: SWAP1 0000021d: PUSH1 0x20 0000021f: ADD 00000220: JUMPDEST 00000221: PUSH1 0x40 00000223: MLOAD 00000224: DUP1 00000225: SWAP2 00000226: SUB 00000227: SWAP1 00000228: LOG2 00000229: JUMPDEST 0000022a: STOP 0000022b: JUMPDEST 0000022c: CALLVALUE 0000022d: ISZERO 0000022e: PUSH2 0x0229 00000231: JUMPI 00000232: PUSH1 0x40 00000234: MLOAD 00000235: CALLVALUE 00000236: DUP2 00000237: MSTORE 00000238: CALLER 00000239: SWAP1 0000023a: PUSH32 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c 0000025b: SWAP1 0000025c: PUSH1 0x20 0000025e: ADD 0000025f: PUSH2 0x0220 00000262: JUMP 00000263: JUMPDEST 00000264: CALLVALUE 00000265: DUP1 00000266: ISZERO 00000267: PUSH2 0x026f 0000026a: JUMPI 0000026b: PUSH1 0x00 0000026d: DUP1 0000026e: REVERT 0000026f: JUMPDEST 00000270: POP 00000271: PUSH2 0x029d 00000274: PUSH2 0x027e 00000277: CALLDATASIZE 00000278: PUSH1 0x04 0000027a: PUSH2 0x2792 0000027d: JUMP 0000027e: JUMPDEST 0000027f: PUSH1 0x01 00000281: PUSH1 0x01 00000283: PUSH1 0xe0 00000285: SHL 00000286: SUB 00000287: NOT 00000288: AND 00000289: PUSH1 0x00 0000028b: SWAP1 0000028c: DUP2 0000028d: MSTORE 0000028e: PUSH1 0x06 00000290: PUSH1 0x20 00000292: MSTORE 00000293: PUSH1 0x40 00000295: SWAP1 00000296: KECCAK256 00000297: SLOAD 00000298: PUSH1 0xff 0000029a: AND 0000029b: SWAP1 0000029c: JUMP 0000029d: JUMPDEST 0000029e: PUSH1 0x40 000002a0: MLOAD 000002a1: SWAP1 000002a2: ISZERO 000002a3: ISZERO 000002a4: DUP2 000002a5: MSTORE 000002a6: PUSH1 0x20 000002a8: ADD 000002a9: JUMPDEST 000002aa: PUSH1 0x40 000002ac: MLOAD 000002ad: DUP1 000002ae: SWAP2 000002af: SUB 000002b0: SWAP1 000002b1: RETURN 000002b2: JUMPDEST 000002b3: CALLVALUE 000002b4: DUP1 000002b5: ISZERO 000002b6: PUSH2 0x02be 000002b9: JUMPI 000002ba: PUSH1 0x00 000002bc: DUP1 000002bd: REVERT 000002be: JUMPDEST 000002bf: POP 000002c0: PUSH2 0x02d2 000002c3: PUSH2 0x02cd 000002c6: CALLDATASIZE 000002c7: PUSH1 0x04 000002c9: PUSH2 0x27c9 000002cc: JUMP 000002cd: JUMPDEST 000002ce: PUSH2 0x0709 000002d1: JUMP 000002d2: JUMPDEST 000002d3: PUSH1 0x40 000002d5: MLOAD 000002d6: PUSH1 0x01 000002d8: PUSH1 0x01 000002da: PUSH1 0xa0 000002dc: SHL 000002dd: SUB 000002de: SWAP1 000002df: SWAP2 000002e0: AND 000002e1: DUP2 000002e2: MSTORE 000002e3: PUSH1 0x20 000002e5: ADD 000002e6: PUSH2 0x02a9 000002e9: JUMP 000002ea: JUMPDEST 000002eb: CALLVALUE 000002ec: DUP1 000002ed: ISZERO 000002ee: PUSH2 0x02f6 000002f1: JUMPI 000002f2: PUSH1 0x00 000002f4: DUP1 000002f5: REVERT 000002f6: JUMPDEST 000002f7: POP 000002f8: PUSH2 0x0315 000002fb: PUSH2 0x0305 000002fe: CALLDATASIZE 000002ff: PUSH1 0x04 00000301: PUSH2 0x24ad 00000304: JUMP 00000305: JUMPDEST 00000306: PUSH4 0x0a85bd01 0000030b: PUSH1 0xe1 0000030d: SHL 0000030e: SWAP5 0000030f: SWAP4 00000310: POP 00000311: POP 00000312: POP 00000313: POP 00000314: JUMP 00000315: JUMPDEST 00000316: PUSH1 0x40 00000318: MLOAD 00000319: PUSH1 0x01 0000031b: PUSH1 0x01 0000031d: PUSH1 0xe0 0000031f: SHL 00000320: SUB 00000321: NOT 00000322: SWAP1 00000323: SWAP2 00000324: AND 00000325: DUP2 00000326: MSTORE 00000327: PUSH1 0x20 00000329: ADD 0000032a: PUSH2 0x02a9 0000032d: JUMP 0000032e: JUMPDEST 0000032f: CALLVALUE 00000330: DUP1 00000331: ISZERO 00000332: PUSH2 0x033a 00000335: JUMPI 00000336: PUSH1 0x00 00000338: DUP1 00000339: REVERT 0000033a: JUMPDEST 0000033b: POP 0000033c: PUSH2 0x0229 0000033f: PUSH2 0x0349 00000342: CALLDATASIZE 00000343: PUSH1 0x04 00000345: PUSH2 0x23a5 00000348: JUMP 00000349: JUMPDEST 0000034a: PUSH2 0x0733 0000034d: JUMP 0000034e: JUMPDEST 0000034f: CALLVALUE 00000350: DUP1 00000351: ISZERO 00000352: PUSH2 0x035a 00000355: JUMPI 00000356: PUSH1 0x00 00000358: DUP1 00000359: REVERT 0000035a: JUMPDEST 0000035b: POP 0000035c: PUSH2 0x0229 0000035f: PUSH2 0x0369 00000362: CALLDATASIZE 00000363: PUSH1 0x04 00000365: PUSH2 0x27c9 00000368: JUMP 00000369: JUMPDEST 0000036a: PUSH2 0x076b 0000036d: JUMP 0000036e: JUMPDEST 0000036f: CALLVALUE 00000370: DUP1 00000371: ISZERO 00000372: PUSH2 0x037a 00000375: JUMPI 00000376: PUSH1 0x00 00000378: DUP1 00000379: REVERT 0000037a: JUMPDEST 0000037b: POP 0000037c: PUSH2 0x029d 0000037f: PUSH2 0x0389 00000382: CALLDATASIZE 00000383: PUSH1 0x04 00000385: PUSH2 0x23a5 00000388: JUMP 00000389: JUMPDEST 0000038a: PUSH1 0x02 0000038c: PUSH1 0x20 0000038e: MSTORE 0000038f: PUSH1 0x00 00000391: SWAP1 00000392: DUP2 00000393: MSTORE 00000394: PUSH1 0x40 00000396: SWAP1 00000397: KECCAK256 00000398: SLOAD 00000399: PUSH1 0xff 0000039b: AND 0000039c: DUP2 0000039d: JUMP 0000039e: JUMPDEST 0000039f: CALLVALUE 000003a0: DUP1 000003a1: ISZERO 000003a2: PUSH2 0x03aa 000003a5: JUMPI 000003a6: PUSH1 0x00 000003a8: DUP1 000003a9: REVERT 000003aa: JUMPDEST 000003ab: POP 000003ac: PUSH2 0x03d2 000003af: PUSH32 0x8d14977a529be0cde9be2de41261d56c536e10c2bfb3f797a663ac4f3676d2fe 000003d0: DUP2 000003d1: JUMP 000003d2: JUMPDEST 000003d3: PUSH1 0x40 000003d5: MLOAD 000003d6: SWAP1 000003d7: DUP2 000003d8: MSTORE 000003d9: PUSH1 0x20 000003db: ADD 000003dc: PUSH2 0x02a9 000003df: JUMP 000003e0: JUMPDEST 000003e1: CALLVALUE 000003e2: DUP1 000003e3: ISZERO 000003e4: PUSH2 0x03ec 000003e7: JUMPI 000003e8: PUSH1 0x00 000003ea: DUP1 000003eb: REVERT 000003ec: JUMPDEST 000003ed: POP 000003ee: PUSH2 0x029d 000003f1: PUSH2 0x03fb 000003f4: CALLDATASIZE 000003f5: PUSH1 0x04 000003f7: PUSH2 0x27e2 000003fa: JUMP 000003fb: JUMPDEST 000003fc: PUSH1 0x01 000003fe: PUSH1 0x20 00000400: SWAP1 00000401: DUP2 00000402: MSTORE 00000403: PUSH1 0x00 00000405: SWAP3 00000406: DUP4 00000407: MSTORE 00000408: PUSH1 0x40 0000040a: DUP1 0000040b: DUP5 0000040c: KECCAK256 0000040d: SWAP1 0000040e: SWAP2 0000040f: MSTORE 00000410: SWAP1 00000411: DUP3 00000412: MSTORE 00000413: SWAP1 00000414: KECCAK256 00000415: SLOAD 00000416: PUSH1 0xff 00000418: AND 00000419: DUP2 0000041a: JUMP 0000041b: JUMPDEST 0000041c: CALLVALUE 0000041d: DUP1 0000041e: ISZERO 0000041f: PUSH2 0x0427 00000422: JUMPI 00000423: PUSH1 0x00 00000425: DUP1 00000426: REVERT 00000427: JUMPDEST 00000428: POP 00000429: PUSH2 0x03d2 0000042c: PUSH1 0x08 0000042e: SLOAD 0000042f: DUP2 00000430: JUMP 00000431: JUMPDEST 00000432: CALLVALUE 00000433: DUP1 00000434: ISZERO 00000435: PUSH2 0x043d 00000438: JUMPI 00000439: PUSH1 0x00 0000043b: DUP1 0000043c: REVERT 0000043d: JUMPDEST 0000043e: POP 0000043f: PUSH2 0x03d2 00000442: PUSH2 0x044c 00000445: CALLDATASIZE 00000446: PUSH1 0x04 00000448: PUSH2 0x2768 0000044b: JUMP 0000044c: JUMPDEST 0000044d: PUSH2 0x0821 00000450: JUMP 00000451: JUMPDEST 00000452: CALLVALUE 00000453: DUP1 00000454: ISZERO 00000455: PUSH2 0x045d 00000458: JUMPI 00000459: PUSH1 0x00 0000045b: DUP1 0000045c: REVERT 0000045d: JUMPDEST 0000045e: POP 0000045f: PUSH2 0x0229 00000462: PUSH2 0x046c 00000465: CALLDATASIZE 00000466: PUSH1 0x04 00000468: PUSH2 0x27ad 0000046b: JUMP 0000046c: JUMPDEST 0000046d: PUSH2 0x089e 00000470: JUMP 00000471: JUMPDEST 00000472: CALLVALUE 00000473: DUP1 00000474: ISZERO 00000475: PUSH2 0x047d 00000478: JUMPI 00000479: PUSH1 0x00 0000047b: DUP1 0000047c: REVERT 0000047d: JUMPDEST 0000047e: POP 0000047f: PUSH1 0x01 00000481: PUSH2 0x03d2 00000484: JUMP 00000485: JUMPDEST 00000486: CALLVALUE 00000487: DUP1 00000488: ISZERO 00000489: PUSH2 0x0491 0000048c: JUMPI 0000048d: PUSH1 0x00 0000048f: DUP1 00000490: REVERT 00000491: JUMPDEST 00000492: POP 00000493: PUSH2 0x0229 00000496: PUSH2 0x04a0 00000499: CALLDATASIZE 0000049a: PUSH1 0x04 0000049c: PUSH2 0x23a5 0000049f: JUMP 000004a0: JUMPDEST 000004a1: PUSH2 0x08d6 000004a4: JUMP 000004a5: JUMPDEST 000004a6: CALLVALUE 000004a7: DUP1 000004a8: ISZERO 000004a9: PUSH2 0x04b1 000004ac: JUMPI 000004ad: PUSH1 0x00 000004af: DUP1 000004b0: REVERT 000004b1: JUMPDEST 000004b2: POP 000004b3: PUSH2 0x029d 000004b6: PUSH2 0x04c0 000004b9: CALLDATASIZE 000004ba: PUSH1 0x04 000004bc: PUSH2 0x27c9 000004bf: JUMP 000004c0: JUMPDEST 000004c1: PUSH2 0x0902 000004c4: JUMP 000004c5: JUMPDEST 000004c6: CALLVALUE 000004c7: DUP1 000004c8: ISZERO 000004c9: PUSH2 0x04d1 000004cc: JUMPI 000004cd: PUSH1 0x00 000004cf: DUP1 000004d0: REVERT 000004d1: JUMPDEST 000004d2: POP 000004d3: PUSH2 0x0229 000004d6: PUSH2 0x04e0 000004d9: CALLDATASIZE 000004da: PUSH1 0x04 000004dc: PUSH2 0x26b1 000004df: JUMP 000004e0: JUMPDEST 000004e1: PUSH2 0x099f 000004e4: JUMP 000004e5: JUMPDEST 000004e6: CALLVALUE 000004e7: DUP1 000004e8: ISZERO 000004e9: PUSH2 0x04f1 000004ec: JUMPI 000004ed: PUSH1 0x00 000004ef: DUP1 000004f0: REVERT 000004f1: JUMPDEST 000004f2: POP 000004f3: PUSH2 0x03d2 000004f6: PUSH2 0x0500 000004f9: CALLDATASIZE 000004fa: PUSH1 0x04 000004fc: PUSH2 0x27c9 000004ff: JUMP 00000500: JUMPDEST 00000501: PUSH2 0x0af0 00000504: JUMP 00000505: JUMPDEST 00000506: CALLVALUE 00000507: DUP1 00000508: ISZERO 00000509: PUSH2 0x0511 0000050c: JUMPI 0000050d: PUSH1 0x00 0000050f: DUP1 00000510: REVERT 00000511: JUMPDEST 00000512: POP 00000513: PUSH2 0x0525 00000516: PUSH2 0x0520 00000519: CALLDATASIZE 0000051a: PUSH1 0x04 0000051c: PUSH2 0x27c9 0000051f: JUMP 00000520: JUMPDEST 00000521: PUSH2 0x0b76 00000524: JUMP 00000525: JUMPDEST 00000526: PUSH1 0x40 00000528: MLOAD 00000529: PUSH2 0x02a9 0000052c: SWAP5 0000052d: SWAP4 0000052e: SWAP3 0000052f: SWAP2 00000530: SWAP1 00000531: PUSH2 0x2867 00000534: JUMP 00000535: JUMPDEST 00000536: CALLVALUE 00000537: DUP1 00000538: ISZERO 00000539: PUSH2 0x0541 0000053c: JUMPI 0000053d: PUSH1 0x00 0000053f: DUP1 00000540: REVERT 00000541: JUMPDEST 00000542: POP 00000543: PUSH2 0x054a 00000546: PUSH2 0x0c34 00000549: JUMP 0000054a: JUMPDEST 0000054b: PUSH1 0x40 0000054d: MLOAD 0000054e: PUSH2 0x02a9 00000551: SWAP2 00000552: SWAP1 00000553: PUSH2 0x28b8 00000556: JUMP 00000557: JUMPDEST 00000558: CALLVALUE 00000559: DUP1 0000055a: ISZERO 0000055b: PUSH2 0x0563 0000055e: JUMPI 0000055f: PUSH1 0x00 00000561: DUP1 00000562: REVERT 00000563: JUMPDEST 00000564: POP 00000565: PUSH2 0x03d2 00000568: PUSH2 0x0572 0000056b: CALLDATASIZE 0000056c: PUSH1 0x04 0000056e: PUSH2 0x25e1 00000571: JUMP 00000572: JUMPDEST 00000573: PUSH2 0x0c96 00000576: JUMP 00000577: JUMPDEST 00000578: CALLVALUE 00000579: DUP1 0000057a: ISZERO 0000057b: PUSH2 0x0583 0000057e: JUMPI 0000057f: PUSH1 0x00 00000581: DUP1 00000582: REVERT 00000583: JUMPDEST 00000584: POP 00000585: PUSH2 0x0597 00000588: PUSH2 0x0592 0000058b: CALLDATASIZE 0000058c: PUSH1 0x04 0000058e: PUSH2 0x2805 00000591: JUMP 00000592: JUMPDEST 00000593: PUSH2 0x10e6 00000596: JUMP 00000597: JUMPDEST 00000598: PUSH1 0x40 0000059a: MLOAD 0000059b: PUSH2 0x02a9 0000059e: SWAP2 0000059f: SWAP1 000005a0: PUSH2 0x2936 000005a3: JUMP 000005a4: JUMPDEST 000005a5: CALLVALUE 000005a6: DUP1 000005a7: ISZERO 000005a8: PUSH2 0x05b0 000005ab: JUMPI 000005ac: PUSH1 0x00 000005ae: DUP1 000005af: REVERT 000005b0: JUMPDEST 000005b1: POP 000005b2: PUSH2 0x05b9 000005b5: PUSH2 0x127c 000005b8: JUMP 000005b9: JUMPDEST 000005ba: PUSH1 0x40 000005bc: MLOAD 000005bd: PUSH2 0x02a9 000005c0: SWAP2 000005c1: SWAP1 000005c2: PUSH2 0x2905 000005c5: JUMP 000005c6: JUMPDEST 000005c7: CALLVALUE 000005c8: DUP1 000005c9: ISZERO 000005ca: PUSH2 0x05d2 000005cd: JUMPI 000005ce: PUSH1 0x00 000005d0: DUP1 000005d1: REVERT 000005d2: JUMPDEST 000005d3: POP 000005d4: PUSH2 0x054a 000005d7: PUSH2 0x05e1 000005da: CALLDATASIZE 000005db: PUSH1 0x04 000005dd: PUSH2 0x27c9 000005e0: JUMP 000005e1: JUMPDEST 000005e2: PUSH2 0x12a9 000005e5: JUMP 000005e6: JUMPDEST 000005e7: CALLVALUE 000005e8: DUP1 000005e9: ISZERO 000005ea: PUSH2 0x05f2 000005ed: JUMPI 000005ee: PUSH1 0x00 000005f0: DUP1 000005f1: REVERT 000005f2: JUMPDEST 000005f3: POP 000005f4: PUSH2 0x03d2 000005f7: PUSH1 0x05 000005f9: SLOAD 000005fa: DUP2 000005fb: JUMP 000005fc: JUMPDEST 000005fd: CALLVALUE 000005fe: DUP1 000005ff: ISZERO 00000600: PUSH2 0x0608 00000603: JUMPI 00000604: PUSH1 0x00 00000606: DUP1 00000607: REVERT 00000608: JUMPDEST 00000609: POP 0000060a: PUSH2 0x0229 0000060d: PUSH2 0x0617 00000610: CALLDATASIZE 00000611: PUSH1 0x04 00000613: PUSH2 0x27c9 00000616: JUMP 00000617: JUMPDEST 00000618: PUSH2 0x147f 0000061b: JUMP 0000061c: JUMPDEST 0000061d: CALLVALUE 0000061e: DUP1 0000061f: ISZERO 00000620: PUSH2 0x0628 00000623: JUMPI 00000624: PUSH1 0x00 00000626: DUP1 00000627: REVERT 00000628: JUMPDEST 00000629: POP 0000062a: PUSH2 0x0315 0000062d: PUSH2 0x0637 00000630: CALLDATASIZE 00000631: PUSH1 0x04 00000633: PUSH2 0x23f3 00000636: JUMP 00000637: JUMPDEST 00000638: PUSH4 0xbc197c81 0000063d: PUSH1 0xe0 0000063f: SHL 00000640: SWAP9 00000641: SWAP8 00000642: POP 00000643: POP 00000644: POP 00000645: POP 00000646: POP 00000647: POP 00000648: POP 00000649: POP 0000064a: JUMP 0000064b: JUMPDEST 0000064c: PUSH2 0x0229 0000064f: PUSH2 0x0659 00000652: CALLDATASIZE 00000653: PUSH1 0x04 00000655: PUSH2 0x27c9 00000658: JUMP 00000659: JUMPDEST 0000065a: PUSH2 0x14ab 0000065d: JUMP 0000065e: JUMPDEST 0000065f: CALLVALUE 00000660: DUP1 00000661: ISZERO 00000662: PUSH2 0x066a 00000665: JUMPI 00000666: PUSH1 0x00 00000668: DUP1 00000669: REVERT 0000066a: JUMPDEST 0000066b: POP 0000066c: PUSH2 0x03d2 0000066f: PUSH2 0x0679 00000672: CALLDATASIZE 00000673: PUSH1 0x04 00000675: PUSH2 0x258b 00000678: JUMP 00000679: JUMPDEST 0000067a: PUSH2 0x1572 0000067d: JUMP 0000067e: JUMPDEST 0000067f: CALLVALUE 00000680: DUP1 00000681: ISZERO 00000682: PUSH2 0x068a 00000685: JUMPI 00000686: PUSH1 0x00 00000688: DUP1 00000689: REVERT 0000068a: JUMPDEST 0000068b: POP 0000068c: PUSH2 0x03d2 0000068f: PUSH1 0x32 00000691: DUP2 00000692: JUMP 00000693: JUMPDEST 00000694: CALLVALUE 00000695: DUP1 00000696: ISZERO 00000697: PUSH2 0x069f 0000069a: JUMPI 0000069b: PUSH1 0x00 0000069d: DUP1 0000069e: REVERT 0000069f: JUMPDEST 000006a0: POP 000006a1: PUSH2 0x03d2 000006a4: PUSH1 0x04 000006a6: SLOAD 000006a7: DUP2 000006a8: JUMP 000006a9: JUMPDEST 000006aa: CALLVALUE 000006ab: DUP1 000006ac: ISZERO 000006ad: PUSH2 0x06b5 000006b0: JUMPI 000006b1: PUSH1 0x00 000006b3: DUP1 000006b4: REVERT 000006b5: JUMPDEST 000006b6: POP 000006b7: PUSH2 0x0229 000006ba: PUSH2 0x06c4 000006bd: CALLDATASIZE 000006be: PUSH1 0x04 000006c0: PUSH2 0x23c0 000006c3: JUMP 000006c4: JUMPDEST 000006c5: PUSH2 0x1591 000006c8: JUMP 000006c9: JUMPDEST 000006ca: PUSH2 0x0229 000006cd: PUSH2 0x06d7 000006d0: CALLDATASIZE 000006d1: PUSH1 0x04 000006d3: PUSH2 0x27c9 000006d6: JUMP 000006d7: JUMPDEST 000006d8: PUSH2 0x15c2 000006db: JUMP 000006dc: JUMPDEST 000006dd: CALLVALUE 000006de: DUP1 000006df: ISZERO 000006e0: PUSH2 0x06e8 000006e3: JUMPI 000006e4: PUSH1 0x00 000006e6: DUP1 000006e7: REVERT 000006e8: JUMPDEST 000006e9: POP 000006ea: PUSH2 0x0315 000006ed: PUSH2 0x06f7 000006f0: CALLDATASIZE 000006f1: PUSH1 0x04 000006f3: PUSH2 0x2514 000006f6: JUMP 000006f7: JUMPDEST 000006f8: PUSH4 0xf23a6e61 000006fd: PUSH1 0xe0 000006ff: SHL 00000700: SWAP7 00000701: SWAP6 00000702: POP 00000703: POP 00000704: POP 00000705: POP 00000706: POP 00000707: POP 00000708: JUMP 00000709: JUMPDEST 0000070a: PUSH1 0x03 0000070c: DUP2 0000070d: DUP2 0000070e: SLOAD 0000070f: DUP2 00000710: LT 00000711: PUSH2 0x0719 00000714: JUMPI 00000715: PUSH1 0x00 00000717: DUP1 00000718: REVERT 00000719: JUMPDEST 0000071a: PUSH1 0x00 0000071c: SWAP2 0000071d: DUP3 0000071e: MSTORE 0000071f: PUSH1 0x20 00000721: SWAP1 00000722: SWAP2 00000723: KECCAK256 00000724: ADD 00000725: SLOAD 00000726: PUSH1 0x01 00000728: PUSH1 0x01 0000072a: PUSH1 0xa0 0000072c: SHL 0000072d: SUB 0000072e: AND 0000072f: SWAP1 00000730: POP 00000731: DUP2 00000732: JUMP 00000733: JUMPDEST 00000734: PUSH1 0x07 00000736: SLOAD 00000737: PUSH1 0xff 00000739: AND 0000073a: ISZERO 0000073b: PUSH2 0x075f 0000073e: JUMPI 0000073f: PUSH1 0x40 00000741: MLOAD 00000742: PUSH3 0x461bcd 00000746: PUSH1 0xe5 00000748: SHL 00000749: DUP2 0000074a: MSTORE 0000074b: PUSH1 0x04 0000074d: ADD 0000074e: PUSH2 0x0756 00000751: SWAP1 00000752: PUSH2 0x296e 00000755: JUMP 00000756: JUMPDEST 00000757: PUSH1 0x40 00000759: MLOAD 0000075a: DUP1 0000075b: SWAP2 0000075c: SUB 0000075d: SWAP1 0000075e: REVERT 0000075f: JUMPDEST 00000760: PUSH2 0x0768 00000763: DUP2 00000764: PUSH2 0x1785 00000767: JUMP 00000768: JUMPDEST 00000769: POP 0000076a: JUMP 0000076b: JUMPDEST 0000076c: CALLER 0000076d: PUSH1 0x00 0000076f: DUP2 00000770: DUP2 00000771: MSTORE 00000772: PUSH1 0x02 00000774: PUSH1 0x20 00000776: MSTORE 00000777: PUSH1 0x40 00000779: SWAP1 0000077a: KECCAK256 0000077b: SLOAD 0000077c: PUSH1 0xff 0000077e: AND 0000077f: PUSH2 0x0787 00000782: JUMPI 00000783: PUSH1 0x00 00000785: DUP1 00000786: REVERT 00000787: JUMPDEST 00000788: PUSH1 0x00 0000078a: DUP3 0000078b: DUP2 0000078c: MSTORE 0000078d: PUSH1 0x01 0000078f: PUSH1 0x20 00000791: SWAP1 00000792: DUP2 00000793: MSTORE 00000794: PUSH1 0x40 00000796: DUP1 00000797: DUP4 00000798: KECCAK256 00000799: CALLER 0000079a: DUP1 0000079b: DUP6 0000079c: MSTORE 0000079d: SWAP3 0000079e: MSTORE 0000079f: SWAP1 000007a0: SWAP2 000007a1: KECCAK256 000007a2: SLOAD 000007a3: DUP4 000007a4: SWAP2 000007a5: SWAP1 000007a6: PUSH1 0xff 000007a8: AND 000007a9: PUSH2 0x07b1 000007ac: JUMPI 000007ad: PUSH1 0x00 000007af: DUP1 000007b0: REVERT 000007b1: JUMPDEST 000007b2: PUSH1 0x00 000007b4: DUP5 000007b5: DUP2 000007b6: MSTORE 000007b7: PUSH1 0x20 000007b9: DUP2 000007ba: SWAP1 000007bb: MSTORE 000007bc: PUSH1 0x40 000007be: SWAP1 000007bf: KECCAK256 000007c0: PUSH1 0x03 000007c2: ADD 000007c3: SLOAD 000007c4: DUP5 000007c5: SWAP1 000007c6: PUSH1 0xff 000007c8: AND 000007c9: ISZERO 000007ca: PUSH2 0x07d2 000007cd: JUMPI 000007ce: PUSH1 0x00 000007d0: DUP1 000007d1: REVERT 000007d2: JUMPDEST 000007d3: PUSH1 0x00 000007d5: DUP6 000007d6: DUP2 000007d7: MSTORE 000007d8: PUSH1 0x01 000007da: PUSH1 0x20 000007dc: SWAP1 000007dd: DUP2 000007de: MSTORE 000007df: PUSH1 0x40 000007e1: DUP1 000007e2: DUP4 000007e3: KECCAK256 000007e4: CALLER 000007e5: DUP1 000007e6: DUP6 000007e7: MSTORE 000007e8: SWAP3 000007e9: MSTORE 000007ea: DUP1 000007eb: DUP4 000007ec: KECCAK256 000007ed: DUP1 000007ee: SLOAD 000007ef: PUSH1 0xff 000007f1: NOT 000007f2: AND 000007f3: SWAP1 000007f4: SSTORE 000007f5: MLOAD 000007f6: DUP8 000007f7: SWAP3 000007f8: PUSH32 0xf6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e9 00000819: SWAP2 0000081a: LOG3 0000081b: POP 0000081c: POP 0000081d: POP 0000081e: POP 0000081f: POP 00000820: JUMP 00000821: JUMPDEST 00000822: PUSH1 0x00 00000824: DUP1 00000825: JUMPDEST 00000826: PUSH1 0x05 00000828: SLOAD 00000829: DUP2 0000082a: LT 0000082b: ISZERO 0000082c: PUSH2 0x0897 0000082f: JUMPI 00000830: DUP4 00000831: DUP1 00000832: ISZERO 00000833: PUSH2 0x084e 00000836: JUMPI 00000837: POP 00000838: PUSH1 0x00 0000083a: DUP2 0000083b: DUP2 0000083c: MSTORE 0000083d: PUSH1 0x20 0000083f: DUP2 00000840: SWAP1 00000841: MSTORE 00000842: PUSH1 0x40 00000844: SWAP1 00000845: KECCAK256 00000846: PUSH1 0x03 00000848: ADD 00000849: SLOAD 0000084a: PUSH1 0xff 0000084c: AND 0000084d: ISZERO 0000084e: JUMPDEST 0000084f: DUP1 00000850: PUSH2 0x0872 00000853: JUMPI 00000854: POP 00000855: DUP3 00000856: DUP1 00000857: ISZERO 00000858: PUSH2 0x0872 0000085b: JUMPI 0000085c: POP 0000085d: PUSH1 0x00 0000085f: DUP2 00000860: DUP2 00000861: MSTORE 00000862: PUSH1 0x20 00000864: DUP2 00000865: SWAP1 00000866: MSTORE 00000867: PUSH1 0x40 00000869: SWAP1 0000086a: KECCAK256 0000086b: PUSH1 0x03 0000086d: ADD 0000086e: SLOAD 0000086f: PUSH1 0xff 00000871: AND 00000872: JUMPDEST 00000873: ISZERO 00000874: PUSH2 0x0885 00000877: JUMPI 00000878: PUSH2 0x0882 0000087b: PUSH1 0x01 0000087d: DUP4 0000087e: PUSH2 0x29df 00000881: JUMP 00000882: JUMPDEST 00000883: SWAP2 00000884: POP 00000885: JUMPDEST 00000886: DUP1 00000887: PUSH2 0x088f 0000088a: DUP2 0000088b: PUSH2 0x2a73 0000088e: JUMP 0000088f: JUMPDEST 00000890: SWAP2 00000891: POP 00000892: POP 00000893: PUSH2 0x0825 00000896: JUMP 00000897: JUMPDEST 00000898: POP 00000899: SWAP3 0000089a: SWAP2 0000089b: POP 0000089c: POP 0000089d: JUMP 0000089e: JUMPDEST 0000089f: CALLER 000008a0: ADDRESS 000008a1: EQ 000008a2: PUSH2 0x08aa 000008a5: JUMPI 000008a6: PUSH1 0x00 000008a8: DUP1 000008a9: REVERT 000008aa: JUMPDEST 000008ab: PUSH1 0x01 000008ad: PUSH1 0x01 000008af: PUSH1 0xe0 000008b1: SHL 000008b2: SUB 000008b3: NOT 000008b4: SWAP2 000008b5: SWAP1 000008b6: SWAP2 000008b7: AND 000008b8: PUSH1 0x00 000008ba: SWAP1 000008bb: DUP2 000008bc: MSTORE 000008bd: PUSH1 0x06 000008bf: PUSH1 0x20 000008c1: MSTORE 000008c2: PUSH1 0x40 000008c4: SWAP1 000008c5: KECCAK256 000008c6: DUP1 000008c7: SLOAD 000008c8: PUSH1 0xff 000008ca: NOT 000008cb: AND 000008cc: SWAP2 000008cd: ISZERO 000008ce: ISZERO 000008cf: SWAP2 000008d0: SWAP1 000008d1: SWAP2 000008d2: OR 000008d3: SWAP1 000008d4: SSTORE 000008d5: JUMP 000008d6: JUMPDEST 000008d7: PUSH1 0x07 000008d9: SLOAD 000008da: PUSH1 0xff 000008dc: AND 000008dd: ISZERO 000008de: PUSH2 0x08f9 000008e1: JUMPI 000008e2: PUSH1 0x40 000008e4: MLOAD 000008e5: PUSH3 0x461bcd 000008e9: PUSH1 0xe5 000008eb: SHL 000008ec: DUP2 000008ed: MSTORE 000008ee: PUSH1 0x04 000008f0: ADD 000008f1: PUSH2 0x0756 000008f4: SWAP1 000008f5: PUSH2 0x296e 000008f8: JUMP 000008f9: JUMPDEST 000008fa: PUSH2 0x0768 000008fd: DUP2 000008fe: PUSH2 0x1982 00000901: JUMP 00000902: JUMPDEST 00000903: PUSH1 0x00 00000905: DUP1 00000906: PUSH1 0x00 00000908: JUMPDEST 00000909: PUSH1 0x03 0000090b: SLOAD 0000090c: DUP2 0000090d: LT 0000090e: ISZERO 0000090f: PUSH2 0x0998 00000912: JUMPI 00000913: PUSH1 0x00 00000915: DUP5 00000916: DUP2 00000917: MSTORE 00000918: PUSH1 0x01 0000091a: PUSH1 0x20 0000091c: MSTORE 0000091d: PUSH1 0x40 0000091f: DUP2 00000920: KECCAK256 00000921: PUSH1 0x03 00000923: DUP1 00000924: SLOAD 00000925: SWAP2 00000926: SWAP3 00000927: SWAP2 00000928: DUP5 00000929: SWAP1 0000092a: DUP2 0000092b: LT 0000092c: PUSH2 0x0937 0000092f: JUMPI 00000930: PUSH2 0x0937 00000933: PUSH2 0x2ada 00000936: JUMP 00000937: JUMPDEST 00000938: PUSH1 0x00 0000093a: SWAP2 0000093b: DUP3 0000093c: MSTORE 0000093d: PUSH1 0x20 0000093f: DUP1 00000940: DUP4 00000941: KECCAK256 00000942: SWAP1 00000943: SWAP2 00000944: ADD 00000945: SLOAD 00000946: PUSH1 0x01 00000948: PUSH1 0x01 0000094a: PUSH1 0xa0 0000094c: SHL 0000094d: SUB 0000094e: AND 0000094f: DUP4 00000950: MSTORE 00000951: DUP3 00000952: ADD 00000953: SWAP3 00000954: SWAP1 00000955: SWAP3 00000956: MSTORE 00000957: PUSH1 0x40 00000959: ADD 0000095a: SWAP1 0000095b: KECCAK256 0000095c: SLOAD 0000095d: PUSH1 0xff 0000095f: AND 00000960: ISZERO 00000961: PUSH2 0x0972 00000964: JUMPI 00000965: PUSH2 0x096f 00000968: PUSH1 0x01 0000096a: DUP4 0000096b: PUSH2 0x29df 0000096e: JUMP 0000096f: JUMPDEST 00000970: SWAP2 00000971: POP 00000972: JUMPDEST 00000973: PUSH1 0x04 00000975: SLOAD 00000976: DUP3 00000977: EQ 00000978: ISZERO 00000979: PUSH2 0x0986 0000097c: JUMPI 0000097d: POP 0000097e: PUSH1 0x01 00000980: SWAP4 00000981: SWAP3 00000982: POP 00000983: POP 00000984: POP 00000985: JUMP 00000986: JUMPDEST 00000987: DUP1 00000988: PUSH2 0x0990 0000098b: DUP2 0000098c: PUSH2 0x2a73 0000098f: JUMP 00000990: JUMPDEST 00000991: SWAP2 00000992: POP 00000993: POP 00000994: PUSH2 0x0908 00000997: JUMP 00000998: JUMPDEST 00000999: POP 0000099a: POP 0000099b: SWAP2 0000099c: SWAP1 0000099d: POP 0000099e: JUMP 0000099f: JUMPDEST 000009a0: PUSH1 0x07 000009a2: SLOAD 000009a3: PUSH2 0x0100 000009a6: SWAP1 000009a7: DIV 000009a8: PUSH1 0xff 000009aa: AND 000009ab: ISZERO 000009ac: PUSH2 0x09e0 000009af: JUMPI 000009b0: PUSH1 0x40 000009b2: MLOAD 000009b3: PUSH3 0x461bcd 000009b7: PUSH1 0xe5 000009b9: SHL 000009ba: DUP2 000009bb: MSTORE 000009bc: PUSH1 0x04 000009be: ADD 000009bf: PUSH2 0x0756 000009c2: SWAP1 000009c3: PUSH1 0x20 000009c5: DUP1 000009c6: DUP3 000009c7: MSTORE 000009c8: PUSH1 0x04 000009ca: SWAP1 000009cb: DUP3 000009cc: ADD 000009cd: MSTORE 000009ce: PUSH4 0x26a99819 000009d3: PUSH1 0xe1 000009d5: SHL 000009d6: PUSH1 0x40 000009d8: DUP3 000009d9: ADD 000009da: MSTORE 000009db: PUSH1 0x60 000009dd: ADD 000009de: SWAP1 000009df: JUMP 000009e0: JUMPDEST 000009e1: PUSH1 0x07 000009e3: DUP1 000009e4: SLOAD 000009e5: PUSH2 0xff00 000009e8: NOT 000009e9: AND 000009ea: PUSH2 0x0100 000009ed: OR 000009ee: SWAP1 000009ef: SSTORE 000009f0: PUSH2 0x09f9 000009f3: DUP4 000009f4: DUP4 000009f5: PUSH2 0x1a9b 000009f8: JUMP 000009f9: JUMPDEST 000009fa: PUSH2 0x0aeb 000009fd: DUP2 000009fe: PUSH1 0x07 00000a00: DUP1 00000a01: SLOAD 00000a02: SWAP2 00000a03: ISZERO 00000a04: ISZERO 00000a05: PUSH1 0xff 00000a07: NOT 00000a08: SWAP3 00000a09: DUP4 00000a0a: AND 00000a0b: OR 00000a0c: SWAP1 00000a0d: SSTORE 00000a0e: PUSH4 0x01ffc9a7 00000a13: PUSH1 0xe0 00000a15: SHL 00000a16: PUSH1 0x00 00000a18: MSTORE 00000a19: PUSH1 0x06 00000a1b: PUSH1 0x20 00000a1d: SWAP1 00000a1e: DUP2 00000a1f: MSTORE 00000a20: PUSH32 0x477a984de5936bcb02475f64e0ea676103106ac0785c67bf7e9e846450b51ef6 00000a41: DUP1 00000a42: SLOAD 00000a43: SWAP1 00000a44: SWAP3 00000a45: AND 00000a46: PUSH1 0x01 00000a48: OR 00000a49: SWAP1 00000a4a: SWAP2 00000a4b: SSTORE 00000a4c: PUSH1 0x40 00000a4e: DUP1 00000a4f: MLOAD 00000a50: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f 00000a71: DUP2 00000a72: DUP5 00000a73: ADD 00000a74: MSTORE 00000a75: PUSH32 0x911a814036e00323c4ca54d47b0a363338990ca044824eba7a28205763e6115a 00000a96: DUP2 00000a97: DUP4 00000a98: ADD 00000a99: MSTORE 00000a9a: PUSH32 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6 00000abb: PUSH1 0x60 00000abd: DUP3 00000abe: ADD 00000abf: MSTORE 00000ac0: CHAINID 00000ac1: PUSH1 0x80 00000ac3: DUP3 00000ac4: ADD 00000ac5: MSTORE 00000ac6: ADDRESS 00000ac7: PUSH1 0xa0 00000ac9: DUP1 00000aca: DUP4 00000acb: ADD 00000acc: SWAP2 00000acd: SWAP1 00000ace: SWAP2 00000acf: MSTORE 00000ad0: DUP3 00000ad1: MLOAD 00000ad2: DUP1 00000ad3: DUP4 00000ad4: SUB 00000ad5: SWAP1 00000ad6: SWAP2 00000ad7: ADD 00000ad8: DUP2 00000ad9: MSTORE 00000ada: PUSH1 0xc0 00000adc: SWAP1 00000add: SWAP2 00000ade: ADD 00000adf: SWAP1 00000ae0: SWAP2 00000ae1: MSTORE 00000ae2: DUP1 00000ae3: MLOAD 00000ae4: SWAP2 00000ae5: ADD 00000ae6: KECCAK256 00000ae7: PUSH1 0x08 00000ae9: SSTORE 00000aea: JUMP 00000aeb: JUMPDEST 00000aec: POP 00000aed: POP 00000aee: POP 00000aef: JUMP 00000af0: JUMPDEST 00000af1: PUSH1 0x00 00000af3: DUP1 00000af4: JUMPDEST 00000af5: PUSH1 0x03 00000af7: SLOAD 00000af8: DUP2 00000af9: LT 00000afa: ISZERO 00000afb: PUSH2 0x0b70 00000afe: JUMPI 00000aff: PUSH1 0x00 00000b01: DUP4 00000b02: DUP2 00000b03: MSTORE 00000b04: PUSH1 0x01 00000b06: PUSH1 0x20 00000b08: MSTORE 00000b09: PUSH1 0x40 00000b0b: DUP2 00000b0c: KECCAK256 00000b0d: PUSH1 0x03 00000b0f: DUP1 00000b10: SLOAD 00000b11: SWAP2 00000b12: SWAP3 00000b13: SWAP2 00000b14: DUP5 00000b15: SWAP1 00000b16: DUP2 00000b17: LT 00000b18: PUSH2 0x0b23 00000b1b: JUMPI 00000b1c: PUSH2 0x0b23 00000b1f: PUSH2 0x2ada 00000b22: JUMP 00000b23: JUMPDEST 00000b24: PUSH1 0x00 00000b26: SWAP2 00000b27: DUP3 00000b28: MSTORE 00000b29: PUSH1 0x20 00000b2b: DUP1 00000b2c: DUP4 00000b2d: KECCAK256 00000b2e: SWAP1 00000b2f: SWAP2 00000b30: ADD 00000b31: SLOAD 00000b32: PUSH1 0x01 00000b34: PUSH1 0x01 00000b36: PUSH1 0xa0 00000b38: SHL 00000b39: SUB 00000b3a: AND 00000b3b: DUP4 00000b3c: MSTORE 00000b3d: DUP3 00000b3e: ADD 00000b3f: SWAP3 00000b40: SWAP1 00000b41: SWAP3 00000b42: MSTORE 00000b43: PUSH1 0x40 00000b45: ADD 00000b46: SWAP1 00000b47: KECCAK256 00000b48: SLOAD 00000b49: PUSH1 0xff 00000b4b: AND 00000b4c: ISZERO 00000b4d: PUSH2 0x0b5e 00000b50: JUMPI 00000b51: PUSH2 0x0b5b 00000b54: PUSH1 0x01 00000b56: DUP4 00000b57: PUSH2 0x29df 00000b5a: JUMP 00000b5b: JUMPDEST 00000b5c: SWAP2 00000b5d: POP 00000b5e: JUMPDEST 00000b5f: DUP1 00000b60: PUSH2 0x0b68 00000b63: DUP2 00000b64: PUSH2 0x2a73 00000b67: JUMP 00000b68: JUMPDEST 00000b69: SWAP2 00000b6a: POP 00000b6b: POP 00000b6c: PUSH2 0x0af4 00000b6f: JUMP 00000b70: JUMPDEST 00000b71: POP 00000b72: SWAP2 00000b73: SWAP1 00000b74: POP 00000b75: JUMP 00000b76: JUMPDEST 00000b77: PUSH1 0x00 00000b79: PUSH1 0x20 00000b7b: DUP2 00000b7c: SWAP1 00000b7d: MSTORE 00000b7e: SWAP1 00000b7f: DUP2 00000b80: MSTORE 00000b81: PUSH1 0x40 00000b83: SWAP1 00000b84: KECCAK256 00000b85: DUP1 00000b86: SLOAD 00000b87: PUSH1 0x01 00000b89: DUP3 00000b8a: ADD 00000b8b: SLOAD 00000b8c: PUSH1 0x02 00000b8e: DUP4 00000b8f: ADD 00000b90: DUP1 00000b91: SLOAD 00000b92: PUSH1 0x01 00000b94: PUSH1 0x01 00000b96: PUSH1 0xa0 00000b98: SHL 00000b99: SUB 00000b9a: SWAP1 00000b9b: SWAP4 00000b9c: AND 00000b9d: SWAP4 00000b9e: SWAP2 00000b9f: SWAP3 00000ba0: PUSH2 0x0ba8 00000ba3: SWAP1 00000ba4: PUSH2 0x2a3e 00000ba7: JUMP 00000ba8: JUMPDEST 00000ba9: DUP1 00000baa: PUSH1 0x1f 00000bac: ADD 00000bad: PUSH1 0x20 00000baf: DUP1 00000bb0: SWAP2 00000bb1: DIV 00000bb2: MUL 00000bb3: PUSH1 0x20 00000bb5: ADD 00000bb6: PUSH1 0x40 00000bb8: MLOAD 00000bb9: SWAP1 00000bba: DUP2 00000bbb: ADD 00000bbc: PUSH1 0x40 00000bbe: MSTORE 00000bbf: DUP1 00000bc0: SWAP3 00000bc1: SWAP2 00000bc2: SWAP1 00000bc3: DUP2 00000bc4: DUP2 00000bc5: MSTORE 00000bc6: PUSH1 0x20 00000bc8: ADD 00000bc9: DUP3 00000bca: DUP1 00000bcb: SLOAD 00000bcc: PUSH2 0x0bd4 00000bcf: SWAP1 00000bd0: PUSH2 0x2a3e 00000bd3: JUMP 00000bd4: JUMPDEST 00000bd5: DUP1 00000bd6: ISZERO 00000bd7: PUSH2 0x0c21 00000bda: JUMPI 00000bdb: DUP1 00000bdc: PUSH1 0x1f 00000bde: LT 00000bdf: PUSH2 0x0bf6 00000be2: JUMPI 00000be3: PUSH2 0x0100 00000be6: DUP1 00000be7: DUP4 00000be8: SLOAD 00000be9: DIV 00000bea: MUL 00000beb: DUP4 00000bec: MSTORE 00000bed: SWAP2 00000bee: PUSH1 0x20 00000bf0: ADD 00000bf1: SWAP2 00000bf2: PUSH2 0x0c21 00000bf5: JUMP 00000bf6: JUMPDEST 00000bf7: DUP3 00000bf8: ADD 00000bf9: SWAP2 00000bfa: SWAP1 00000bfb: PUSH1 0x00 00000bfd: MSTORE 00000bfe: PUSH1 0x20 00000c00: PUSH1 0x00 00000c02: KECCAK256 00000c03: SWAP1 00000c04: JUMPDEST 00000c05: DUP2 00000c06: SLOAD 00000c07: DUP2 00000c08: MSTORE 00000c09: SWAP1 00000c0a: PUSH1 0x01 00000c0c: ADD 00000c0d: SWAP1 00000c0e: PUSH1 0x20 00000c10: ADD 00000c11: DUP1 00000c12: DUP4 00000c13: GT 00000c14: PUSH2 0x0c04 00000c17: JUMPI 00000c18: DUP3 00000c19: SWAP1 00000c1a: SUB 00000c1b: PUSH1 0x1f 00000c1d: AND 00000c1e: DUP3 00000c1f: ADD 00000c20: SWAP2 00000c21: JUMPDEST 00000c22: POP 00000c23: POP 00000c24: POP 00000c25: PUSH1 0x03 00000c27: SWAP1 00000c28: SWAP4 00000c29: ADD 00000c2a: SLOAD 00000c2b: SWAP2 00000c2c: SWAP3 00000c2d: POP 00000c2e: POP 00000c2f: PUSH1 0xff 00000c31: AND 00000c32: DUP5 00000c33: JUMP 00000c34: JUMPDEST 00000c35: PUSH1 0x60 00000c37: PUSH1 0x03 00000c39: DUP1 00000c3a: SLOAD 00000c3b: DUP1 00000c3c: PUSH1 0x20 00000c3e: MUL 00000c3f: PUSH1 0x20 00000c41: ADD 00000c42: PUSH1 0x40 00000c44: MLOAD 00000c45: SWAP1 00000c46: DUP2 00000c47: ADD 00000c48: PUSH1 0x40 00000c4a: MSTORE 00000c4b: DUP1 00000c4c: SWAP3 00000c4d: SWAP2 00000c4e: SWAP1 00000c4f: DUP2 00000c50: DUP2 00000c51: MSTORE 00000c52: PUSH1 0x20 00000c54: ADD 00000c55: DUP3 00000c56: DUP1 00000c57: SLOAD 00000c58: DUP1 00000c59: ISZERO 00000c5a: PUSH2 0x0c8c 00000c5d: JUMPI 00000c5e: PUSH1 0x20 00000c60: MUL 00000c61: DUP3 00000c62: ADD 00000c63: SWAP2 00000c64: SWAP1 00000c65: PUSH1 0x00 00000c67: MSTORE 00000c68: PUSH1 0x20 00000c6a: PUSH1 0x00 00000c6c: KECCAK256 00000c6d: SWAP1 00000c6e: JUMPDEST 00000c6f: DUP2 00000c70: SLOAD 00000c71: PUSH1 0x01 00000c73: PUSH1 0x01 00000c75: PUSH1 0xa0 00000c77: SHL 00000c78: SUB 00000c79: AND 00000c7a: DUP2 00000c7b: MSTORE 00000c7c: PUSH1 0x01 00000c7e: SWAP1 00000c7f: SWAP2 00000c80: ADD 00000c81: SWAP1 00000c82: PUSH1 0x20 00000c84: ADD 00000c85: DUP1 00000c86: DUP4 00000c87: GT 00000c88: PUSH2 0x0c6e 00000c8b: JUMPI 00000c8c: JUMPDEST 00000c8d: POP 00000c8e: POP 00000c8f: POP 00000c90: POP 00000c91: POP 00000c92: SWAP1 00000c93: POP 00000c94: SWAP1 00000c95: JUMP 00000c96: JUMPDEST 00000c97: CALLER 00000c98: PUSH1 0x00 00000c9a: SWAP1 00000c9b: DUP2 00000c9c: MSTORE 00000c9d: PUSH1 0x02 00000c9f: PUSH1 0x20 00000ca1: MSTORE 00000ca2: PUSH1 0x40 00000ca4: DUP2 00000ca5: KECCAK256 00000ca6: SLOAD 00000ca7: PUSH1 0xff 00000ca9: AND 00000caa: PUSH2 0x0cde 00000cad: JUMPI 00000cae: PUSH1 0x40 00000cb0: MLOAD 00000cb1: PUSH3 0x461bcd 00000cb5: PUSH1 0xe5 00000cb7: SHL 00000cb8: DUP2 00000cb9: MSTORE 00000cba: PUSH1 0x04 00000cbc: ADD 00000cbd: PUSH2 0x0756 00000cc0: SWAP1 00000cc1: PUSH1 0x20 00000cc3: DUP1 00000cc4: DUP3 00000cc5: MSTORE 00000cc6: PUSH1 0x04 00000cc8: SWAP1 00000cc9: DUP3 00000cca: ADD 00000ccb: MSTORE 00000ccc: PUSH4 0x04d53393 00000cd1: PUSH1 0xe4 00000cd3: SHL 00000cd4: PUSH1 0x40 00000cd6: DUP3 00000cd7: ADD 00000cd8: MSTORE 00000cd9: PUSH1 0x60 00000cdb: ADD 00000cdc: SWAP1 00000cdd: JUMP 00000cde: JUMPDEST 00000cdf: DUP3 00000ce0: MLOAD 00000ce1: DUP5 00000ce2: MLOAD 00000ce3: EQ 00000ce4: PUSH2 0x0d18 00000ce7: JUMPI 00000ce8: PUSH1 0x40 00000cea: MLOAD 00000ceb: PUSH3 0x461bcd 00000cef: PUSH1 0xe5 00000cf1: SHL 00000cf2: DUP2 00000cf3: MSTORE 00000cf4: PUSH1 0x04 00000cf6: ADD 00000cf7: PUSH2 0x0756 00000cfa: SWAP1 00000cfb: PUSH1 0x20 00000cfd: DUP1 00000cfe: DUP3 00000cff: MSTORE 00000d00: PUSH1 0x04 00000d02: SWAP1 00000d03: DUP3 00000d04: ADD 00000d05: MSTORE 00000d06: PUSH4 0x4d533931 00000d0b: PUSH1 0xe0 00000d0d: SHL 00000d0e: PUSH1 0x40 00000d10: DUP3 00000d11: ADD 00000d12: MSTORE 00000d13: PUSH1 0x60 00000d15: ADD 00000d16: SWAP1 00000d17: JUMP 00000d18: JUMPDEST 00000d19: DUP2 00000d1a: MLOAD 00000d1b: DUP5 00000d1c: MLOAD 00000d1d: EQ 00000d1e: PUSH2 0x0d52 00000d21: JUMPI 00000d22: PUSH1 0x40 00000d24: MLOAD 00000d25: PUSH3 0x461bcd 00000d29: PUSH1 0xe5 00000d2b: SHL 00000d2c: DUP2 00000d2d: MSTORE 00000d2e: PUSH1 0x04 00000d30: ADD 00000d31: PUSH2 0x0756 00000d34: SWAP1 00000d35: PUSH1 0x20 00000d37: DUP1 00000d38: DUP3 00000d39: MSTORE 00000d3a: PUSH1 0x04 00000d3c: SWAP1 00000d3d: DUP3 00000d3e: ADD 00000d3f: MSTORE 00000d40: PUSH4 0x26a99c99 00000d45: PUSH1 0xe1 00000d47: SHL 00000d48: PUSH1 0x40 00000d4a: DUP3 00000d4b: ADD 00000d4c: MSTORE 00000d4d: PUSH1 0x60 00000d4f: ADD 00000d50: SWAP1 00000d51: JUMP 00000d52: JUMPDEST 00000d53: PUSH1 0x05 00000d55: SLOAD 00000d56: DUP6 00000d57: EQ 00000d58: PUSH2 0x0d8c 00000d5b: JUMPI 00000d5c: PUSH1 0x40 00000d5e: MLOAD 00000d5f: PUSH3 0x461bcd 00000d63: PUSH1 0xe5 00000d65: SHL 00000d66: DUP2 00000d67: MSTORE 00000d68: PUSH1 0x04 00000d6a: ADD 00000d6b: PUSH2 0x0756 00000d6e: SWAP1 00000d6f: PUSH1 0x20 00000d71: DUP1 00000d72: DUP3 00000d73: MSTORE 00000d74: PUSH1 0x04 00000d76: SWAP1 00000d77: DUP3 00000d78: ADD 00000d79: MSTORE 00000d7a: PUSH4 0x4d533933 00000d7f: PUSH1 0xe0 00000d81: SHL 00000d82: PUSH1 0x40 00000d84: DUP3 00000d85: ADD 00000d86: MSTORE 00000d87: PUSH1 0x60 00000d89: ADD 00000d8a: SWAP1 00000d8b: JUMP 00000d8c: JUMPDEST 00000d8d: PUSH1 0x04 00000d8f: SLOAD 00000d90: DUP5 00000d91: MLOAD 00000d92: PUSH2 0x0d9c 00000d95: SWAP1 00000d96: PUSH1 0x01 00000d98: PUSH2 0x29df 00000d9b: JUMP 00000d9c: JUMPDEST 00000d9d: EQ 00000d9e: PUSH2 0x0dd2 00000da1: JUMPI 00000da2: PUSH1 0x40 00000da4: MLOAD 00000da5: PUSH3 0x461bcd 00000da9: PUSH1 0xe5 00000dab: SHL 00000dac: DUP2 00000dad: MSTORE 00000dae: PUSH1 0x04 00000db0: ADD 00000db1: PUSH2 0x0756 00000db4: SWAP1 00000db5: PUSH1 0x20 00000db7: DUP1 00000db8: DUP3 00000db9: MSTORE 00000dba: PUSH1 0x04 00000dbc: SWAP1 00000dbd: DUP3 00000dbe: ADD 00000dbf: MSTORE 00000dc0: PUSH4 0x1354ce4d 00000dc5: PUSH1 0xe2 00000dc7: SHL 00000dc8: PUSH1 0x40 00000dca: DUP3 00000dcb: ADD 00000dcc: MSTORE 00000dcd: PUSH1 0x60 00000dcf: ADD 00000dd0: SWAP1 00000dd1: JUMP 00000dd2: JUMPDEST 00000dd3: PUSH1 0x01 00000dd5: PUSH1 0x01 00000dd7: PUSH1 0xa0 00000dd9: SHL 00000dda: SUB 00000ddb: DUP9 00000ddc: AND 00000ddd: PUSH2 0x0e11 00000de0: JUMPI 00000de1: PUSH1 0x40 00000de3: MLOAD 00000de4: PUSH3 0x461bcd 00000de8: PUSH1 0xe5 00000dea: SHL 00000deb: DUP2 00000dec: MSTORE 00000ded: PUSH1 0x04 00000def: ADD 00000df0: PUSH2 0x0756 00000df3: SWAP1 00000df4: PUSH1 0x20 00000df6: DUP1 00000df7: DUP3 00000df8: MSTORE 00000df9: PUSH1 0x04 00000dfb: SWAP1 00000dfc: DUP3 00000dfd: ADD 00000dfe: MSTORE 00000dff: PUSH4 0x4d533935 00000e04: PUSH1 0xe0 00000e06: SHL 00000e07: PUSH1 0x40 00000e09: DUP3 00000e0a: ADD 00000e0b: MSTORE 00000e0c: PUSH1 0x60 00000e0e: ADD 00000e0f: SWAP1 00000e10: JUMP 00000e11: JUMPDEST 00000e12: PUSH2 0x0e1c 00000e15: DUP9 00000e16: DUP9 00000e17: DUP9 00000e18: PUSH2 0x1c0b 00000e1b: JUMP 00000e1c: JUMPDEST 00000e1d: PUSH1 0x00 00000e1f: DUP2 00000e20: DUP2 00000e21: MSTORE 00000e22: PUSH1 0x01 00000e24: PUSH1 0x20 00000e26: DUP2 00000e27: DUP2 00000e28: MSTORE 00000e29: PUSH1 0x40 00000e2b: DUP1 00000e2c: DUP5 00000e2d: KECCAK256 00000e2e: CALLER 00000e2f: DUP1 00000e30: DUP7 00000e31: MSTORE 00000e32: SWAP1 00000e33: DUP4 00000e34: MSTORE 00000e35: DUP2 00000e36: DUP6 00000e37: KECCAK256 00000e38: DUP1 00000e39: SLOAD 00000e3a: PUSH1 0xff 00000e3c: NOT 00000e3d: AND 00000e3e: SWAP1 00000e3f: SWAP5 00000e40: OR 00000e41: SWAP1 00000e42: SWAP4 00000e43: SSTORE 00000e44: PUSH1 0x08 00000e46: SLOAD 00000e47: DUP12 00000e48: MLOAD 00000e49: DUP13 00000e4a: DUP5 00000e4b: ADD 00000e4c: KECCAK256 00000e4d: DUP3 00000e4e: MLOAD 00000e4f: PUSH32 0x8d14977a529be0cde9be2de41261d56c536e10c2bfb3f797a663ac4f3676d2fe 00000e70: DUP2 00000e71: DUP7 00000e72: ADD 00000e73: MSTORE 00000e74: DUP1 00000e75: DUP5 00000e76: ADD 00000e77: SWAP6 00000e78: SWAP1 00000e79: SWAP6 00000e7a: MSTORE 00000e7b: PUSH1 0x01 00000e7d: PUSH1 0x01 00000e7f: PUSH1 0xa0 00000e81: SHL 00000e82: SUB 00000e83: DUP16 00000e84: AND 00000e85: PUSH1 0x60 00000e87: DUP7 00000e88: ADD 00000e89: MSTORE 00000e8a: PUSH1 0x80 00000e8c: DUP6 00000e8d: ADD 00000e8e: DUP15 00000e8f: SWAP1 00000e90: MSTORE 00000e91: PUSH1 0xa0 00000e93: DUP6 00000e94: ADD 00000e95: MSTORE 00000e96: PUSH1 0xc0 00000e98: DUP1 00000e99: DUP6 00000e9a: ADD 00000e9b: DUP13 00000e9c: SWAP1 00000e9d: MSTORE 00000e9e: DUP3 00000e9f: MLOAD 00000ea0: DUP1 00000ea1: DUP7 00000ea2: SUB 00000ea3: SWAP1 00000ea4: SWAP2 00000ea5: ADD 00000ea6: DUP2 00000ea7: MSTORE 00000ea8: PUSH1 0xe0 00000eaa: DUP6 00000eab: ADD 00000eac: DUP4 00000ead: MSTORE 00000eae: DUP1 00000eaf: MLOAD 00000eb0: SWAP1 00000eb1: DUP5 00000eb2: ADD 00000eb3: KECCAK256 00000eb4: PUSH2 0x1901 00000eb7: PUSH1 0xf0 00000eb9: SHL 00000eba: PUSH2 0x0100 00000ebd: DUP7 00000ebe: ADD 00000ebf: MSTORE 00000ec0: PUSH2 0x0102 00000ec3: DUP6 00000ec4: ADD 00000ec5: SWAP2 00000ec6: SWAP1 00000ec7: SWAP2 00000ec8: MSTORE 00000ec9: PUSH2 0x0122 00000ecc: DUP1 00000ecd: DUP6 00000ece: ADD 00000ecf: SWAP2 00000ed0: SWAP1 00000ed1: SWAP2 00000ed2: MSTORE 00000ed3: DUP2 00000ed4: MLOAD 00000ed5: DUP1 00000ed6: DUP6 00000ed7: SUB 00000ed8: SWAP1 00000ed9: SWAP2 00000eda: ADD 00000edb: DUP2 00000edc: MSTORE 00000edd: PUSH2 0x0142 00000ee0: SWAP1 00000ee1: SWAP4 00000ee2: ADD 00000ee3: SWAP1 00000ee4: MSTORE 00000ee5: DUP2 00000ee6: MLOAD 00000ee7: SWAP2 00000ee8: ADD 00000ee9: KECCAK256 00000eea: SWAP2 00000eeb: SWAP3 00000eec: POP 00000eed: JUMPDEST 00000eee: DUP6 00000eef: MLOAD 00000ef0: DUP2 00000ef1: PUSH1 0xff 00000ef3: AND 00000ef4: LT 00000ef5: ISZERO 00000ef6: PUSH2 0x1089 00000ef9: JUMPI 00000efa: PUSH1 0x00 00000efc: PUSH1 0x01 00000efe: DUP4 00000eff: DUP7 00000f00: DUP5 00000f01: PUSH1 0xff 00000f03: AND 00000f04: DUP2 00000f05: MLOAD 00000f06: DUP2 00000f07: LT 00000f08: PUSH2 0x0f13 00000f0b: JUMPI 00000f0c: PUSH2 0x0f13 00000f0f: PUSH2 0x2ada 00000f12: JUMP 00000f13: JUMPDEST 00000f14: PUSH1 0x20 00000f16: MUL 00000f17: PUSH1 0x20 00000f19: ADD 00000f1a: ADD 00000f1b: MLOAD 00000f1c: DUP10 00000f1d: DUP6 00000f1e: PUSH1 0xff 00000f20: AND 00000f21: DUP2 00000f22: MLOAD 00000f23: DUP2 00000f24: LT 00000f25: PUSH2 0x0f30 00000f28: JUMPI 00000f29: PUSH2 0x0f30 00000f2c: PUSH2 0x2ada 00000f2f: JUMP 00000f30: JUMPDEST 00000f31: PUSH1 0x20 00000f33: MUL 00000f34: PUSH1 0x20 00000f36: ADD 00000f37: ADD 00000f38: MLOAD 00000f39: DUP10 00000f3a: DUP7 00000f3b: PUSH1 0xff 00000f3d: AND 00000f3e: DUP2 00000f3f: MLOAD 00000f40: DUP2 00000f41: LT 00000f42: PUSH2 0x0f4d 00000f45: JUMPI 00000f46: PUSH2 0x0f4d 00000f49: PUSH2 0x2ada 00000f4c: JUMP 00000f4d: JUMPDEST 00000f4e: PUSH1 0x20 00000f50: MUL 00000f51: PUSH1 0x20 00000f53: ADD 00000f54: ADD 00000f55: MLOAD 00000f56: PUSH1 0x40 00000f58: MLOAD 00000f59: PUSH1 0x00 00000f5b: DUP2 00000f5c: MSTORE 00000f5d: PUSH1 0x20 00000f5f: ADD 00000f60: PUSH1 0x40 00000f62: MSTORE 00000f63: PUSH1 0x40 00000f65: MLOAD 00000f66: PUSH2 0x0f8b 00000f69: SWAP5 00000f6a: SWAP4 00000f6b: SWAP3 00000f6c: SWAP2 00000f6d: SWAP1 00000f6e: SWAP4 00000f6f: DUP5 00000f70: MSTORE 00000f71: PUSH1 0xff 00000f73: SWAP3 00000f74: SWAP1 00000f75: SWAP3 00000f76: AND 00000f77: PUSH1 0x20 00000f79: DUP5 00000f7a: ADD 00000f7b: MSTORE 00000f7c: PUSH1 0x40 00000f7e: DUP4 00000f7f: ADD 00000f80: MSTORE 00000f81: PUSH1 0x60 00000f83: DUP3 00000f84: ADD 00000f85: MSTORE 00000f86: PUSH1 0x80 00000f88: ADD 00000f89: SWAP1 00000f8a: JUMP 00000f8b: JUMPDEST 00000f8c: PUSH1 0x20 00000f8e: PUSH1 0x40 00000f90: MLOAD 00000f91: PUSH1 0x20 00000f93: DUP2 00000f94: SUB 00000f95: SWAP1 00000f96: DUP1 00000f97: DUP5 00000f98: SUB 00000f99: SWAP1 00000f9a: DUP6 00000f9b: GAS 00000f9c: STATICCALL 00000f9d: ISZERO 00000f9e: DUP1 00000f9f: ISZERO 00000fa0: PUSH2 0x0fad 00000fa3: JUMPI 00000fa4: RETURNDATASIZE 00000fa5: PUSH1 0x00 00000fa7: DUP1 00000fa8: RETURNDATACOPY 00000fa9: RETURNDATASIZE 00000faa: PUSH1 0x00 00000fac: REVERT 00000fad: JUMPDEST 00000fae: POP 00000faf: POP 00000fb0: PUSH1 0x40 00000fb2: MLOAD 00000fb3: PUSH1 0x1f 00000fb5: NOT 00000fb6: ADD 00000fb7: MLOAD 00000fb8: SWAP2 00000fb9: POP 00000fba: POP 00000fbb: PUSH1 0x01 00000fbd: PUSH1 0x01 00000fbf: PUSH1 0xa0 00000fc1: SHL 00000fc2: SUB 00000fc3: DUP2 00000fc4: AND 00000fc5: PUSH2 0x0ff9 00000fc8: JUMPI 00000fc9: PUSH1 0x40 00000fcb: MLOAD 00000fcc: PUSH3 0x461bcd 00000fd0: PUSH1 0xe5 00000fd2: SHL 00000fd3: DUP2 00000fd4: MSTORE 00000fd5: PUSH1 0x04 00000fd7: ADD 00000fd8: PUSH2 0x0756 00000fdb: SWAP1 00000fdc: PUSH1 0x20 00000fde: DUP1 00000fdf: DUP3 00000fe0: MSTORE 00000fe1: PUSH1 0x04 00000fe3: SWAP1 00000fe4: DUP3 00000fe5: ADD 00000fe6: MSTORE 00000fe7: PUSH4 0x4d533033 00000fec: PUSH1 0xe0 00000fee: SHL 00000fef: PUSH1 0x40 00000ff1: DUP3 00000ff2: ADD 00000ff3: MSTORE 00000ff4: PUSH1 0x60 00000ff6: ADD 00000ff7: SWAP1 00000ff8: JUMP 00000ff9: JUMPDEST 00000ffa: PUSH1 0x01 00000ffc: PUSH1 0x01 00000ffe: PUSH1 0xa0 00001000: SHL 00001001: SUB 00001002: DUP2 00001003: AND 00001004: PUSH1 0x00 00001006: SWAP1 00001007: DUP2 00001008: MSTORE 00001009: PUSH1 0x02 0000100b: PUSH1 0x20 0000100d: MSTORE 0000100e: PUSH1 0x40 00001010: SWAP1 00001011: KECCAK256 00001012: SLOAD 00001013: PUSH1 0xff 00001015: AND 00001016: PUSH2 0x104a 00001019: JUMPI 0000101a: PUSH1 0x40 0000101c: MLOAD 0000101d: PUSH3 0x461bcd 00001021: PUSH1 0xe5 00001023: SHL 00001024: DUP2 00001025: MSTORE 00001026: PUSH1 0x04 00001028: ADD 00001029: PUSH2 0x0756 0000102c: SWAP1 0000102d: PUSH1 0x20 0000102f: DUP1 00001030: DUP3 00001031: MSTORE 00001032: PUSH1 0x04 00001034: SWAP1 00001035: DUP3 00001036: ADD 00001037: MSTORE 00001038: PUSH4 0x1354cc0d 0000103d: PUSH1 0xe2 0000103f: SHL 00001040: PUSH1 0x40 00001042: DUP3 00001043: ADD 00001044: MSTORE 00001045: PUSH1 0x60 00001047: ADD 00001048: SWAP1 00001049: JUMP 0000104a: JUMPDEST 0000104b: PUSH1 0x00 0000104d: DUP5 0000104e: DUP2 0000104f: MSTORE 00001050: PUSH1 0x01 00001052: PUSH1 0x20 00001054: DUP2 00001055: DUP2 00001056: MSTORE 00001057: PUSH1 0x40 00001059: DUP1 0000105a: DUP5 0000105b: KECCAK256 0000105c: PUSH1 0x01 0000105e: PUSH1 0x01 00001060: PUSH1 0xa0 00001062: SHL 00001063: SUB 00001064: SWAP1 00001065: SWAP6 00001066: AND 00001067: DUP5 00001068: MSTORE 00001069: SWAP4 0000106a: SWAP1 0000106b: MSTORE 0000106c: SWAP2 0000106d: SWAP1 0000106e: KECCAK256 0000106f: DUP1 00001070: SLOAD 00001071: PUSH1 0xff 00001073: NOT 00001074: AND 00001075: SWAP1 00001076: SWAP2 00001077: OR 00001078: SWAP1 00001079: SSTORE 0000107a: PUSH2 0x1082 0000107d: DUP2 0000107e: PUSH2 0x2a8e 00001081: JUMP 00001082: JUMPDEST 00001083: SWAP1 00001084: POP 00001085: PUSH2 0x0eed 00001088: JUMP 00001089: JUMPDEST 0000108a: POP 0000108b: PUSH2 0x1093 0000108e: DUP3 0000108f: PUSH2 0x0902 00001092: JUMP 00001093: JUMPDEST 00001094: ISZERO 00001095: PUSH2 0x10a9 00001098: JUMPI 00001099: PUSH2 0x10a4 0000109c: DUP10 0000109d: DUP10 0000109e: DUP10 0000109f: DUP6 000010a0: PUSH2 0x1cfe 000010a3: JUMP 000010a4: JUMPDEST 000010a5: PUSH2 0x10da 000010a8: JUMP 000010a9: JUMPDEST 000010aa: PUSH1 0x40 000010ac: MLOAD 000010ad: PUSH3 0x461bcd 000010b1: PUSH1 0xe5 000010b3: SHL 000010b4: DUP2 000010b5: MSTORE 000010b6: PUSH1 0x04 000010b8: ADD 000010b9: PUSH2 0x0756 000010bc: SWAP1 000010bd: PUSH1 0x20 000010bf: DUP1 000010c0: DUP3 000010c1: MSTORE 000010c2: PUSH1 0x04 000010c4: SWAP1 000010c5: DUP3 000010c6: ADD 000010c7: MSTORE 000010c8: PUSH4 0x26a9981b 000010cd: PUSH1 0xe1 000010cf: SHL 000010d0: PUSH1 0x40 000010d2: DUP3 000010d3: ADD 000010d4: MSTORE 000010d5: PUSH1 0x60 000010d7: ADD 000010d8: SWAP1 000010d9: JUMP 000010da: JUMPDEST 000010db: POP 000010dc: SWAP8 000010dd: SWAP7 000010de: POP 000010df: POP 000010e0: POP 000010e1: POP 000010e2: POP 000010e3: POP 000010e4: POP 000010e5: JUMP 000010e6: JUMPDEST 000010e7: PUSH1 0x60 000010e9: PUSH1 0x00 000010eb: PUSH1 0x05 000010ed: SLOAD 000010ee: PUSH1 0x01 000010f0: PUSH1 0x01 000010f2: PUSH1 0x40 000010f4: SHL 000010f5: SUB 000010f6: DUP2 000010f7: GT 000010f8: ISZERO 000010f9: PUSH2 0x1104 000010fc: JUMPI 000010fd: PUSH2 0x1104 00001100: PUSH2 0x2af0 00001103: JUMP 00001104: JUMPDEST 00001105: PUSH1 0x40 00001107: MLOAD 00001108: SWAP1 00001109: DUP1 0000110a: DUP3 0000110b: MSTORE 0000110c: DUP1 0000110d: PUSH1 0x20 0000110f: MUL 00001110: PUSH1 0x20 00001112: ADD 00001113: DUP3 00001114: ADD 00001115: PUSH1 0x40 00001117: MSTORE 00001118: DUP1 00001119: ISZERO 0000111a: PUSH2 0x112d 0000111d: JUMPI 0000111e: DUP2 0000111f: PUSH1 0x20 00001121: ADD 00001122: PUSH1 0x20 00001124: DUP3 00001125: MUL 00001126: DUP1 00001127: CALLDATASIZE 00001128: DUP4 00001129: CALLDATACOPY 0000112a: ADD 0000112b: SWAP1 0000112c: POP 0000112d: JUMPDEST 0000112e: POP 0000112f: SWAP1 00001130: POP 00001131: PUSH1 0x00 00001133: DUP1 00001134: JUMPDEST 00001135: PUSH1 0x05 00001137: SLOAD 00001138: DUP2 00001139: LT 0000113a: ISZERO 0000113b: PUSH2 0x11c4 0000113e: JUMPI 0000113f: DUP6 00001140: DUP1 00001141: ISZERO 00001142: PUSH2 0x115d 00001145: JUMPI 00001146: POP 00001147: PUSH1 0x00 00001149: DUP2 0000114a: DUP2 0000114b: MSTORE 0000114c: PUSH1 0x20 0000114e: DUP2 0000114f: SWAP1 00001150: MSTORE 00001151: PUSH1 0x40 00001153: SWAP1 00001154: KECCAK256 00001155: PUSH1 0x03 00001157: ADD 00001158: SLOAD 00001159: PUSH1 0xff 0000115b: AND 0000115c: ISZERO 0000115d: JUMPDEST 0000115e: DUP1 0000115f: PUSH2 0x1181 00001162: JUMPI 00001163: POP 00001164: DUP5 00001165: DUP1 00001166: ISZERO 00001167: PUSH2 0x1181 0000116a: JUMPI 0000116b: POP 0000116c: PUSH1 0x00 0000116e: DUP2 0000116f: DUP2 00001170: MSTORE 00001171: PUSH1 0x20 00001173: DUP2 00001174: SWAP1 00001175: MSTORE 00001176: PUSH1 0x40 00001178: SWAP1 00001179: KECCAK256 0000117a: PUSH1 0x03 0000117c: ADD 0000117d: SLOAD 0000117e: PUSH1 0xff 00001180: AND 00001181: JUMPDEST 00001182: ISZERO 00001183: PUSH2 0x11b2 00001186: JUMPI 00001187: DUP1 00001188: DUP4 00001189: DUP4 0000118a: DUP2 0000118b: MLOAD 0000118c: DUP2 0000118d: LT 0000118e: PUSH2 0x1199 00001191: JUMPI 00001192: PUSH2 0x1199 00001195: PUSH2 0x2ada 00001198: JUMP 00001199: JUMPDEST 0000119a: PUSH1 0x20 0000119c: SWAP1 0000119d: DUP2 0000119e: MUL 0000119f: SWAP2 000011a0: SWAP1 000011a1: SWAP2 000011a2: ADD 000011a3: ADD 000011a4: MSTORE 000011a5: PUSH2 0x11af 000011a8: PUSH1 0x01 000011aa: DUP4 000011ab: PUSH2 0x29df 000011ae: JUMP 000011af: JUMPDEST 000011b0: SWAP2 000011b1: POP 000011b2: JUMPDEST 000011b3: DUP1 000011b4: PUSH2 0x11bc 000011b7: DUP2 000011b8: PUSH2 0x2a73 000011bb: JUMP 000011bc: JUMPDEST 000011bd: SWAP2 000011be: POP 000011bf: POP 000011c0: PUSH2 0x1134 000011c3: JUMP 000011c4: JUMPDEST 000011c5: PUSH2 0x11ce 000011c8: DUP9 000011c9: DUP9 000011ca: PUSH2 0x29f7 000011cd: JUMP 000011ce: JUMPDEST 000011cf: PUSH1 0x01 000011d1: PUSH1 0x01 000011d3: PUSH1 0x40 000011d5: SHL 000011d6: SUB 000011d7: DUP2 000011d8: GT 000011d9: ISZERO 000011da: PUSH2 0x11e5 000011dd: JUMPI 000011de: PUSH2 0x11e5 000011e1: PUSH2 0x2af0 000011e4: JUMP 000011e5: JUMPDEST 000011e6: PUSH1 0x40 000011e8: MLOAD 000011e9: SWAP1 000011ea: DUP1 000011eb: DUP3 000011ec: MSTORE 000011ed: DUP1 000011ee: PUSH1 0x20 000011f0: MUL 000011f1: PUSH1 0x20 000011f3: ADD 000011f4: DUP3 000011f5: ADD 000011f6: PUSH1 0x40 000011f8: MSTORE 000011f9: DUP1 000011fa: ISZERO 000011fb: PUSH2 0x120e 000011fe: JUMPI 000011ff: DUP2 00001200: PUSH1 0x20 00001202: ADD 00001203: PUSH1 0x20 00001205: DUP3 00001206: MUL 00001207: DUP1 00001208: CALLDATASIZE 00001209: DUP4 0000120a: CALLDATACOPY 0000120b: ADD 0000120c: SWAP1 0000120d: POP 0000120e: JUMPDEST 0000120f: POP 00001210: SWAP4 00001211: POP 00001212: DUP8 00001213: SWAP1 00001214: POP 00001215: JUMPDEST 00001216: DUP7 00001217: DUP2 00001218: LT 00001219: ISZERO 0000121a: PUSH2 0x1271 0000121d: JUMPI 0000121e: DUP3 0000121f: DUP2 00001220: DUP2 00001221: MLOAD 00001222: DUP2 00001223: LT 00001224: PUSH2 0x122f 00001227: JUMPI 00001228: PUSH2 0x122f 0000122b: PUSH2 0x2ada 0000122e: JUMP 0000122f: JUMPDEST 00001230: PUSH1 0x20 00001232: MUL 00001233: PUSH1 0x20 00001235: ADD 00001236: ADD 00001237: MLOAD 00001238: DUP5 00001239: DUP10 0000123a: DUP4 0000123b: PUSH2 0x1244 0000123e: SWAP2 0000123f: SWAP1 00001240: PUSH2 0x29f7 00001243: JUMP 00001244: JUMPDEST 00001245: DUP2 00001246: MLOAD 00001247: DUP2 00001248: LT 00001249: PUSH2 0x1254 0000124c: JUMPI 0000124d: PUSH2 0x1254 00001250: PUSH2 0x2ada 00001253: JUMP 00001254: JUMPDEST 00001255: PUSH1 0x20 00001257: SWAP1 00001258: DUP2 00001259: MUL 0000125a: SWAP2 0000125b: SWAP1 0000125c: SWAP2 0000125d: ADD 0000125e: ADD 0000125f: MSTORE 00001260: DUP1 00001261: PUSH2 0x1269 00001264: DUP2 00001265: PUSH2 0x2a73 00001268: JUMP 00001269: JUMPDEST 0000126a: SWAP2 0000126b: POP 0000126c: POP 0000126d: PUSH2 0x1215 00001270: JUMP 00001271: JUMPDEST 00001272: POP 00001273: POP 00001274: POP 00001275: SWAP5 00001276: SWAP4 00001277: POP 00001278: POP 00001279: POP 0000127a: POP 0000127b: JUMP 0000127c: JUMPDEST 0000127d: PUSH2 0x1284 00001280: PUSH2 0x206b 00001283: JUMP 00001284: JUMPDEST 00001285: PUSH1 0x40 00001287: MLOAD 00001288: DUP1 00001289: PUSH1 0x60 0000128b: ADD 0000128c: PUSH1 0x40 0000128e: MSTORE 0000128f: DUP1 00001290: PUSH1 0xa5 00001292: DUP2 00001293: MSTORE 00001294: PUSH1 0x20 00001296: ADD 00001297: PUSH2 0x02d1 0000129a: DUP2 0000129b: MSTORE 0000129c: PUSH1 0x20 0000129e: ADD 0000129f: PUSH2 0x0483 000012a2: DUP2 000012a3: MSTORE 000012a4: POP 000012a5: SWAP1 000012a6: POP 000012a7: SWAP1 000012a8: JUMP 000012a9: JUMPDEST 000012aa: PUSH1 0x03 000012ac: SLOAD 000012ad: PUSH1 0x60 000012af: SWAP1 000012b0: PUSH1 0x00 000012b2: SWAP1 000012b3: PUSH1 0x01 000012b5: PUSH1 0x01 000012b7: PUSH1 0x40 000012b9: SHL 000012ba: SUB 000012bb: DUP2 000012bc: GT 000012bd: ISZERO 000012be: PUSH2 0x12c9 000012c1: JUMPI 000012c2: PUSH2 0x12c9 000012c5: PUSH2 0x2af0 000012c8: JUMP 000012c9: JUMPDEST 000012ca: PUSH1 0x40 000012cc: MLOAD 000012cd: SWAP1 000012ce: DUP1 000012cf: DUP3 000012d0: MSTORE 000012d1: DUP1 000012d2: PUSH1 0x20 000012d4: MUL 000012d5: PUSH1 0x20 000012d7: ADD 000012d8: DUP3 000012d9: ADD 000012da: PUSH1 0x40 000012dc: MSTORE 000012dd: DUP1 000012de: ISZERO 000012df: PUSH2 0x12f2 000012e2: JUMPI 000012e3: DUP2 000012e4: PUSH1 0x20 000012e6: ADD 000012e7: PUSH1 0x20 000012e9: DUP3 000012ea: MUL 000012eb: DUP1 000012ec: CALLDATASIZE 000012ed: DUP4 000012ee: CALLDATACOPY 000012ef: ADD 000012f0: SWAP1 000012f1: POP 000012f2: JUMPDEST 000012f3: POP 000012f4: SWAP1 000012f5: POP 000012f6: PUSH1 0x00 000012f8: DUP1 000012f9: JUMPDEST 000012fa: PUSH1 0x03 000012fc: SLOAD 000012fd: DUP2 000012fe: LT 000012ff: ISZERO 00001300: PUSH2 0x13d0 00001303: JUMPI 00001304: PUSH1 0x00 00001306: DUP6 00001307: DUP2 00001308: MSTORE 00001309: PUSH1 0x01 0000130b: PUSH1 0x20 0000130d: MSTORE 0000130e: PUSH1 0x40 00001310: DUP2 00001311: KECCAK256 00001312: PUSH1 0x03 00001314: DUP1 00001315: SLOAD 00001316: SWAP2 00001317: SWAP3 00001318: SWAP2 00001319: DUP5 0000131a: SWAP1 0000131b: DUP2 0000131c: LT 0000131d: PUSH2 0x1328 00001320: JUMPI 00001321: PUSH2 0x1328 00001324: PUSH2 0x2ada 00001327: JUMP 00001328: JUMPDEST 00001329: PUSH1 0x00 0000132b: SWAP2 0000132c: DUP3 0000132d: MSTORE 0000132e: PUSH1 0x20 00001330: DUP1 00001331: DUP4 00001332: KECCAK256 00001333: SWAP1 00001334: SWAP2 00001335: ADD 00001336: SLOAD 00001337: PUSH1 0x01 00001339: PUSH1 0x01 0000133b: PUSH1 0xa0 0000133d: SHL 0000133e: SUB 0000133f: AND 00001340: DUP4 00001341: MSTORE 00001342: DUP3 00001343: ADD 00001344: SWAP3 00001345: SWAP1 00001346: SWAP3 00001347: MSTORE 00001348: PUSH1 0x40 0000134a: ADD 0000134b: SWAP1 0000134c: KECCAK256 0000134d: SLOAD 0000134e: PUSH1 0xff 00001350: AND 00001351: ISZERO 00001352: PUSH2 0x13be 00001355: JUMPI 00001356: PUSH1 0x03 00001358: DUP2 00001359: DUP2 0000135a: SLOAD 0000135b: DUP2 0000135c: LT 0000135d: PUSH2 0x1368 00001360: JUMPI 00001361: PUSH2 0x1368 00001364: PUSH2 0x2ada 00001367: JUMP 00001368: JUMPDEST 00001369: SWAP1 0000136a: PUSH1 0x00 0000136c: MSTORE 0000136d: PUSH1 0x20 0000136f: PUSH1 0x00 00001371: KECCAK256 00001372: ADD 00001373: PUSH1 0x00 00001375: SWAP1 00001376: SLOAD 00001377: SWAP1 00001378: PUSH2 0x0100 0000137b: EXP 0000137c: SWAP1 0000137d: DIV 0000137e: PUSH1 0x01 00001380: PUSH1 0x01 00001382: PUSH1 0xa0 00001384: SHL 00001385: SUB 00001386: AND 00001387: DUP4 00001388: DUP4 00001389: DUP2 0000138a: MLOAD 0000138b: DUP2 0000138c: LT 0000138d: PUSH2 0x1398 00001390: JUMPI 00001391: PUSH2 0x1398 00001394: PUSH2 0x2ada 00001397: JUMP 00001398: JUMPDEST 00001399: PUSH1 0x01 0000139b: PUSH1 0x01 0000139d: PUSH1 0xa0 0000139f: SHL 000013a0: SUB 000013a1: SWAP1 000013a2: SWAP3 000013a3: AND 000013a4: PUSH1 0x20 000013a6: SWAP3 000013a7: DUP4 000013a8: MUL 000013a9: SWAP2 000013aa: SWAP1 000013ab: SWAP2 000013ac: ADD 000013ad: SWAP1 000013ae: SWAP2 000013af: ADD 000013b0: MSTORE 000013b1: PUSH2 0x13bb 000013b4: PUSH1 0x01 000013b6: DUP4 000013b7: PUSH2 0x29df 000013ba: JUMP 000013bb: JUMPDEST 000013bc: SWAP2 000013bd: POP 000013be: JUMPDEST 000013bf: DUP1 000013c0: PUSH2 0x13c8 000013c3: DUP2 000013c4: PUSH2 0x2a73 000013c7: JUMP 000013c8: JUMPDEST 000013c9: SWAP2 000013ca: POP 000013cb: POP 000013cc: PUSH2 0x12f9 000013cf: JUMP 000013d0: JUMPDEST 000013d1: DUP2 000013d2: PUSH1 0x01 000013d4: PUSH1 0x01 000013d6: PUSH1 0x40 000013d8: SHL 000013d9: SUB 000013da: DUP2 000013db: GT 000013dc: ISZERO 000013dd: PUSH2 0x13e8 000013e0: JUMPI 000013e1: PUSH2 0x13e8 000013e4: PUSH2 0x2af0 000013e7: JUMP 000013e8: JUMPDEST 000013e9: PUSH1 0x40 000013eb: MLOAD 000013ec: SWAP1 000013ed: DUP1 000013ee: DUP3 000013ef: MSTORE 000013f0: DUP1 000013f1: PUSH1 0x20 000013f3: MUL 000013f4: PUSH1 0x20 000013f6: ADD 000013f7: DUP3 000013f8: ADD 000013f9: PUSH1 0x40 000013fb: MSTORE 000013fc: DUP1 000013fd: ISZERO 000013fe: PUSH2 0x1411 00001401: JUMPI 00001402: DUP2 00001403: PUSH1 0x20 00001405: ADD 00001406: PUSH1 0x20 00001408: DUP3 00001409: MUL 0000140a: DUP1 0000140b: CALLDATASIZE 0000140c: DUP4 0000140d: CALLDATACOPY 0000140e: ADD 0000140f: SWAP1 00001410: POP 00001411: JUMPDEST 00001412: POP 00001413: SWAP4 00001414: POP 00001415: PUSH1 0x00 00001417: SWAP1 00001418: POP 00001419: JUMPDEST 0000141a: DUP2 0000141b: DUP2 0000141c: LT 0000141d: ISZERO 0000141e: PUSH2 0x1477 00001421: JUMPI 00001422: DUP3 00001423: DUP2 00001424: DUP2 00001425: MLOAD 00001426: DUP2 00001427: LT 00001428: PUSH2 0x1433 0000142b: JUMPI 0000142c: PUSH2 0x1433 0000142f: PUSH2 0x2ada 00001432: JUMP 00001433: JUMPDEST 00001434: PUSH1 0x20 00001436: MUL 00001437: PUSH1 0x20 00001439: ADD 0000143a: ADD 0000143b: MLOAD 0000143c: DUP5 0000143d: DUP3 0000143e: DUP2 0000143f: MLOAD 00001440: DUP2 00001441: LT 00001442: PUSH2 0x144d 00001445: JUMPI 00001446: PUSH2 0x144d 00001449: PUSH2 0x2ada 0000144c: JUMP 0000144d: JUMPDEST 0000144e: PUSH1 0x01 00001450: PUSH1 0x01 00001452: PUSH1 0xa0 00001454: SHL 00001455: SUB 00001456: SWAP1 00001457: SWAP3 00001458: AND 00001459: PUSH1 0x20 0000145b: SWAP3 0000145c: DUP4 0000145d: MUL 0000145e: SWAP2 0000145f: SWAP1 00001460: SWAP2 00001461: ADD 00001462: SWAP1 00001463: SWAP2 00001464: ADD 00001465: MSTORE 00001466: DUP1 00001467: PUSH2 0x146f 0000146a: DUP2 0000146b: PUSH2 0x2a73 0000146e: JUMP 0000146f: JUMPDEST 00001470: SWAP2 00001471: POP 00001472: POP 00001473: PUSH2 0x1419 00001476: JUMP 00001477: JUMPDEST 00001478: POP 00001479: POP 0000147a: POP 0000147b: SWAP2 0000147c: SWAP1 0000147d: POP 0000147e: JUMP 0000147f: JUMPDEST 00001480: PUSH1 0x07 00001482: SLOAD 00001483: PUSH1 0xff 00001485: AND 00001486: ISZERO 00001487: PUSH2 0x14a2 0000148a: JUMPI 0000148b: PUSH1 0x40 0000148d: MLOAD 0000148e: PUSH3 0x461bcd 00001492: PUSH1 0xe5 00001494: SHL 00001495: DUP2 00001496: MSTORE 00001497: PUSH1 0x04 00001499: ADD 0000149a: PUSH2 0x0756 0000149d: SWAP1 0000149e: PUSH2 0x296e 000014a1: JUMP 000014a2: JUMPDEST 000014a3: PUSH2 0x0768 000014a6: DUP2 000014a7: PUSH2 0x1e29 000014aa: JUMP 000014ab: JUMPDEST 000014ac: CALLER 000014ad: PUSH1 0x00 000014af: DUP2 000014b0: DUP2 000014b1: MSTORE 000014b2: PUSH1 0x02 000014b4: PUSH1 0x20 000014b6: MSTORE 000014b7: PUSH1 0x40 000014b9: SWAP1 000014ba: KECCAK256 000014bb: SLOAD 000014bc: PUSH1 0xff 000014be: AND 000014bf: PUSH2 0x14c7 000014c2: JUMPI 000014c3: PUSH1 0x00 000014c5: DUP1 000014c6: REVERT 000014c7: JUMPDEST 000014c8: PUSH1 0x00 000014ca: DUP3 000014cb: DUP2 000014cc: MSTORE 000014cd: PUSH1 0x20 000014cf: DUP2 000014d0: SWAP1 000014d1: MSTORE 000014d2: PUSH1 0x40 000014d4: SWAP1 000014d5: KECCAK256 000014d6: SLOAD 000014d7: DUP3 000014d8: SWAP1 000014d9: PUSH1 0x01 000014db: PUSH1 0x01 000014dd: PUSH1 0xa0 000014df: SHL 000014e0: SUB 000014e1: AND 000014e2: PUSH2 0x14ea 000014e5: JUMPI 000014e6: PUSH1 0x00 000014e8: DUP1 000014e9: REVERT 000014ea: JUMPDEST 000014eb: PUSH1 0x00 000014ed: DUP4 000014ee: DUP2 000014ef: MSTORE 000014f0: PUSH1 0x01 000014f2: PUSH1 0x20 000014f4: SWAP1 000014f5: DUP2 000014f6: MSTORE 000014f7: PUSH1 0x40 000014f9: DUP1 000014fa: DUP4 000014fb: KECCAK256 000014fc: CALLER 000014fd: DUP1 000014fe: DUP6 000014ff: MSTORE 00001500: SWAP3 00001501: MSTORE 00001502: SWAP1 00001503: SWAP2 00001504: KECCAK256 00001505: SLOAD 00001506: DUP5 00001507: SWAP2 00001508: SWAP1 00001509: PUSH1 0xff 0000150b: AND 0000150c: ISZERO 0000150d: PUSH2 0x1515 00001510: JUMPI 00001511: PUSH1 0x00 00001513: DUP1 00001514: REVERT 00001515: JUMPDEST 00001516: PUSH1 0x00 00001518: DUP6 00001519: DUP2 0000151a: MSTORE 0000151b: PUSH1 0x01 0000151d: PUSH1 0x20 0000151f: DUP2 00001520: DUP2 00001521: MSTORE 00001522: PUSH1 0x40 00001524: DUP1 00001525: DUP5 00001526: KECCAK256 00001527: CALLER 00001528: DUP1 00001529: DUP7 0000152a: MSTORE 0000152b: SWAP3 0000152c: MSTORE 0000152d: DUP1 0000152e: DUP5 0000152f: KECCAK256 00001530: DUP1 00001531: SLOAD 00001532: PUSH1 0xff 00001534: NOT 00001535: AND 00001536: SWAP1 00001537: SWAP4 00001538: OR 00001539: SWAP1 0000153a: SWAP3 0000153b: SSTORE 0000153c: SWAP1 0000153d: MLOAD 0000153e: DUP8 0000153f: SWAP3 00001540: PUSH32 0x4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef 00001561: SWAP2 00001562: LOG3 00001563: PUSH2 0x156b 00001566: DUP6 00001567: PUSH2 0x15c2 0000156a: JUMP 0000156b: JUMPDEST 0000156c: POP 0000156d: POP 0000156e: POP 0000156f: POP 00001570: POP 00001571: JUMP 00001572: JUMPDEST 00001573: PUSH1 0x00 00001575: PUSH2 0x157f 00001578: DUP5 00001579: DUP5 0000157a: DUP5 0000157b: PUSH2 0x1c0b 0000157e: JUMP 0000157f: JUMPDEST 00001580: SWAP1 00001581: POP 00001582: PUSH2 0x158a 00001585: DUP2 00001586: PUSH2 0x14ab 00001589: JUMP 0000158a: JUMPDEST 0000158b: SWAP4 0000158c: SWAP3 0000158d: POP 0000158e: POP 0000158f: POP 00001590: JUMP 00001591: JUMPDEST 00001592: PUSH1 0x07 00001594: SLOAD 00001595: PUSH1 0xff 00001597: AND 00001598: ISZERO 00001599: PUSH2 0x15b4 0000159c: JUMPI 0000159d: PUSH1 0x40 0000159f: MLOAD 000015a0: PUSH3 0x461bcd 000015a4: PUSH1 0xe5 000015a6: SHL 000015a7: DUP2 000015a8: MSTORE 000015a9: PUSH1 0x04 000015ab: ADD 000015ac: PUSH2 0x0756 000015af: SWAP1 000015b0: PUSH2 0x296e 000015b3: JUMP 000015b4: JUMPDEST 000015b5: PUSH2 0x15be 000015b8: DUP3 000015b9: DUP3 000015ba: PUSH2 0x1ea6 000015bd: JUMP 000015be: JUMPDEST 000015bf: POP 000015c0: POP 000015c1: JUMP 000015c2: JUMPDEST 000015c3: CALLER 000015c4: PUSH1 0x00 000015c6: DUP2 000015c7: DUP2 000015c8: MSTORE 000015c9: PUSH1 0x02 000015cb: PUSH1 0x20 000015cd: MSTORE 000015ce: PUSH1 0x40 000015d0: SWAP1 000015d1: KECCAK256 000015d2: SLOAD 000015d3: PUSH1 0xff 000015d5: AND 000015d6: PUSH2 0x15de 000015d9: JUMPI 000015da: PUSH1 0x00 000015dc: DUP1 000015dd: REVERT 000015de: JUMPDEST 000015df: PUSH1 0x00 000015e1: DUP3 000015e2: DUP2 000015e3: MSTORE 000015e4: PUSH1 0x01 000015e6: PUSH1 0x20 000015e8: SWAP1 000015e9: DUP2 000015ea: MSTORE 000015eb: PUSH1 0x40 000015ed: DUP1 000015ee: DUP4 000015ef: KECCAK256 000015f0: CALLER 000015f1: DUP1 000015f2: DUP6 000015f3: MSTORE 000015f4: SWAP3 000015f5: MSTORE 000015f6: SWAP1 000015f7: SWAP2 000015f8: KECCAK256 000015f9: SLOAD 000015fa: DUP4 000015fb: SWAP2 000015fc: SWAP1 000015fd: PUSH1 0xff 000015ff: AND 00001600: PUSH2 0x1608 00001603: JUMPI 00001604: PUSH1 0x00 00001606: DUP1 00001607: REVERT 00001608: JUMPDEST 00001609: PUSH1 0x00 0000160b: DUP5 0000160c: DUP2 0000160d: MSTORE 0000160e: PUSH1 0x20 00001610: DUP2 00001611: SWAP1 00001612: MSTORE 00001613: PUSH1 0x40 00001615: SWAP1 00001616: KECCAK256 00001617: PUSH1 0x03 00001619: ADD 0000161a: SLOAD 0000161b: DUP5 0000161c: SWAP1 0000161d: PUSH1 0xff 0000161f: AND 00001620: ISZERO 00001621: PUSH2 0x1629 00001624: JUMPI 00001625: PUSH1 0x00 00001627: DUP1 00001628: REVERT 00001629: JUMPDEST 0000162a: PUSH2 0x1632 0000162d: DUP6 0000162e: PUSH2 0x0902 00001631: JUMP 00001632: JUMPDEST 00001633: ISZERO 00001634: PUSH2 0x156b 00001637: JUMPI 00001638: PUSH1 0x00 0000163a: DUP6 0000163b: DUP2 0000163c: MSTORE 0000163d: PUSH1 0x20 0000163f: DUP2 00001640: SWAP1 00001641: MSTORE 00001642: PUSH1 0x40 00001644: SWAP1 00001645: KECCAK256 00001646: PUSH1 0x03 00001648: DUP2 00001649: ADD 0000164a: DUP1 0000164b: SLOAD 0000164c: PUSH1 0xff 0000164e: NOT 0000164f: AND 00001650: PUSH1 0x01 00001652: SWAP1 00001653: DUP2 00001654: OR 00001655: SWAP1 00001656: SWAP2 00001657: SSTORE 00001658: DUP2 00001659: SLOAD 0000165a: SWAP1 0000165b: DUP3 0000165c: ADD 0000165d: SLOAD 0000165e: PUSH1 0x02 00001660: DUP4 00001661: ADD 00001662: DUP1 00001663: SLOAD 00001664: PUSH2 0x1710 00001667: SWAP4 00001668: PUSH1 0x01 0000166a: PUSH1 0x01 0000166c: PUSH1 0xa0 0000166e: SHL 0000166f: SUB 00001670: AND 00001671: SWAP3 00001672: SWAP2 00001673: SWAP1 00001674: PUSH2 0x167c 00001677: SWAP1 00001678: PUSH2 0x2a3e 0000167b: JUMP 0000167c: JUMPDEST 0000167d: SWAP1 0000167e: POP 0000167f: DUP5 00001680: PUSH1 0x02 00001682: ADD 00001683: DUP1 00001684: SLOAD 00001685: PUSH2 0x168d 00001688: SWAP1 00001689: PUSH2 0x2a3e 0000168c: JUMP 0000168d: JUMPDEST 0000168e: DUP1 0000168f: PUSH1 0x1f 00001691: ADD 00001692: PUSH1 0x20 00001694: DUP1 00001695: SWAP2 00001696: DIV 00001697: MUL 00001698: PUSH1 0x20 0000169a: ADD 0000169b: PUSH1 0x40 0000169d: MLOAD 0000169e: SWAP1 0000169f: DUP2 000016a0: ADD 000016a1: PUSH1 0x40 000016a3: MSTORE 000016a4: DUP1 000016a5: SWAP3 000016a6: SWAP2 000016a7: SWAP1 000016a8: DUP2 000016a9: DUP2 000016aa: MSTORE 000016ab: PUSH1 0x20 000016ad: ADD 000016ae: DUP3 000016af: DUP1 000016b0: SLOAD 000016b1: PUSH2 0x16b9 000016b4: SWAP1 000016b5: PUSH2 0x2a3e 000016b8: JUMP 000016b9: JUMPDEST 000016ba: DUP1 000016bb: ISZERO 000016bc: PUSH2 0x1706 000016bf: JUMPI 000016c0: DUP1 000016c1: PUSH1 0x1f 000016c3: LT 000016c4: PUSH2 0x16db 000016c7: JUMPI 000016c8: PUSH2 0x0100 000016cb: DUP1 000016cc: DUP4 000016cd: SLOAD 000016ce: DIV 000016cf: MUL 000016d0: DUP4 000016d1: MSTORE 000016d2: SWAP2 000016d3: PUSH1 0x20 000016d5: ADD 000016d6: SWAP2 000016d7: PUSH2 0x1706 000016da: JUMP 000016db: JUMPDEST 000016dc: DUP3 000016dd: ADD 000016de: SWAP2 000016df: SWAP1 000016e0: PUSH1 0x00 000016e2: MSTORE 000016e3: PUSH1 0x20 000016e5: PUSH1 0x00 000016e7: KECCAK256 000016e8: SWAP1 000016e9: JUMPDEST 000016ea: DUP2 000016eb: SLOAD 000016ec: DUP2 000016ed: MSTORE 000016ee: SWAP1 000016ef: PUSH1 0x01 000016f1: ADD 000016f2: SWAP1 000016f3: PUSH1 0x20 000016f5: ADD 000016f6: DUP1 000016f7: DUP4 000016f8: GT 000016f9: PUSH2 0x16e9 000016fc: JUMPI 000016fd: DUP3 000016fe: SWAP1 000016ff: SUB 00001700: PUSH1 0x1f 00001702: AND 00001703: DUP3 00001704: ADD 00001705: SWAP2 00001706: JUMPDEST 00001707: POP 00001708: POP 00001709: POP 0000170a: POP 0000170b: POP 0000170c: PUSH2 0x2039 0000170f: JUMP 00001710: JUMPDEST 00001711: ISZERO 00001712: PUSH2 0x1745 00001715: JUMPI 00001716: PUSH1 0x40 00001718: MLOAD 00001719: DUP7 0000171a: SWAP1 0000171b: PUSH32 0x33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed75 0000173c: SWAP1 0000173d: PUSH1 0x00 0000173f: SWAP1 00001740: LOG2 00001741: PUSH2 0x177d 00001744: JUMP 00001745: JUMPDEST 00001746: PUSH1 0x40 00001748: MLOAD 00001749: DUP7 0000174a: SWAP1 0000174b: PUSH32 0x526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b79236 0000176c: SWAP1 0000176d: PUSH1 0x00 0000176f: SWAP1 00001770: LOG2 00001771: PUSH1 0x03 00001773: DUP2 00001774: ADD 00001775: DUP1 00001776: SLOAD 00001777: PUSH1 0xff 00001779: NOT 0000177a: AND 0000177b: SWAP1 0000177c: SSTORE 0000177d: JUMPDEST 0000177e: POP 0000177f: POP 00001780: POP 00001781: POP 00001782: POP 00001783: POP 00001784: JUMP 00001785: JUMPDEST 00001786: CALLER 00001787: ADDRESS 00001788: EQ 00001789: PUSH2 0x1791 0000178c: JUMPI 0000178d: PUSH1 0x00 0000178f: DUP1 00001790: REVERT 00001791: JUMPDEST 00001792: PUSH1 0x01 00001794: PUSH1 0x01 00001796: PUSH1 0xa0 00001798: SHL 00001799: SUB 0000179a: DUP2 0000179b: AND 0000179c: PUSH1 0x00 0000179e: SWAP1 0000179f: DUP2 000017a0: MSTORE 000017a1: PUSH1 0x02 000017a3: PUSH1 0x20 000017a5: MSTORE 000017a6: PUSH1 0x40 000017a8: SWAP1 000017a9: KECCAK256 000017aa: SLOAD 000017ab: DUP2 000017ac: SWAP1 000017ad: PUSH1 0xff 000017af: AND 000017b0: PUSH2 0x17b8 000017b3: JUMPI 000017b4: PUSH1 0x00 000017b6: DUP1 000017b7: REVERT 000017b8: JUMPDEST 000017b9: PUSH1 0x03 000017bb: SLOAD 000017bc: PUSH1 0x01 000017be: LT 000017bf: PUSH2 0x180a 000017c2: JUMPI 000017c3: PUSH1 0x40 000017c5: MLOAD 000017c6: PUSH3 0x461bcd 000017ca: PUSH1 0xe5 000017cc: SHL 000017cd: DUP2 000017ce: MSTORE 000017cf: PUSH1 0x20 000017d1: PUSH1 0x04 000017d3: DUP3 000017d4: ADD 000017d5: DUP2 000017d6: SWAP1 000017d7: MSTORE 000017d8: PUSH1 0x24 000017da: DUP3 000017db: ADD 000017dc: MSTORE 000017dd: PUSH32 0x6f776e6572732e6c656e677468206d757374206c6172676572207468616e2031 000017fe: PUSH1 0x44 00001800: DUP3 00001801: ADD 00001802: MSTORE 00001803: PUSH1 0x64 00001805: ADD 00001806: PUSH2 0x0756 00001809: JUMP 0000180a: JUMPDEST 0000180b: PUSH1 0x01 0000180d: PUSH1 0x01 0000180f: PUSH1 0xa0 00001811: SHL 00001812: SUB 00001813: DUP3 00001814: AND 00001815: PUSH1 0x00 00001817: SWAP1 00001818: DUP2 00001819: MSTORE 0000181a: PUSH1 0x02 0000181c: PUSH1 0x20 0000181e: MSTORE 0000181f: PUSH1 0x40 00001821: DUP2 00001822: KECCAK256 00001823: DUP1 00001824: SLOAD 00001825: PUSH1 0xff 00001827: NOT 00001828: AND 00001829: SWAP1 0000182a: SSTORE 0000182b: JUMPDEST 0000182c: PUSH1 0x03 0000182e: SLOAD 0000182f: DUP2 00001830: LT 00001831: ISZERO 00001832: PUSH2 0x1931 00001835: JUMPI 00001836: DUP3 00001837: PUSH1 0x01 00001839: PUSH1 0x01 0000183b: PUSH1 0xa0 0000183d: SHL 0000183e: SUB 0000183f: AND 00001840: PUSH1 0x03 00001842: DUP3 00001843: DUP2 00001844: SLOAD 00001845: DUP2 00001846: LT 00001847: PUSH2 0x1852 0000184a: JUMPI 0000184b: PUSH2 0x1852 0000184e: PUSH2 0x2ada 00001851: JUMP 00001852: JUMPDEST 00001853: PUSH1 0x00 00001855: SWAP2 00001856: DUP3 00001857: MSTORE 00001858: PUSH1 0x20 0000185a: SWAP1 0000185b: SWAP2 0000185c: KECCAK256 0000185d: ADD 0000185e: SLOAD 0000185f: PUSH1 0x01 00001861: PUSH1 0x01 00001863: PUSH1 0xa0 00001865: SHL 00001866: SUB 00001867: AND 00001868: EQ 00001869: ISZERO 0000186a: PUSH2 0x191f 0000186d: JUMPI 0000186e: PUSH1 0x03 00001870: DUP1 00001871: SLOAD 00001872: PUSH2 0x187d 00001875: SWAP1 00001876: PUSH1 0x01 00001878: SWAP1 00001879: PUSH2 0x29f7 0000187c: JUMP 0000187d: JUMPDEST 0000187e: DUP2 0000187f: SLOAD 00001880: DUP2 00001881: LT 00001882: PUSH2 0x188d 00001885: JUMPI 00001886: PUSH2 0x188d 00001889: PUSH2 0x2ada 0000188c: JUMP 0000188d: JUMPDEST 0000188e: PUSH1 0x00 00001890: SWAP2 00001891: DUP3 00001892: MSTORE 00001893: PUSH1 0x20 00001895: SWAP1 00001896: SWAP2 00001897: KECCAK256 00001898: ADD 00001899: SLOAD 0000189a: PUSH1 0x03 0000189c: DUP1 0000189d: SLOAD 0000189e: PUSH1 0x01 000018a0: PUSH1 0x01 000018a2: PUSH1 0xa0 000018a4: SHL 000018a5: SUB 000018a6: SWAP1 000018a7: SWAP3 000018a8: AND 000018a9: SWAP2 000018aa: DUP4 000018ab: SWAP1 000018ac: DUP2 000018ad: LT 000018ae: PUSH2 0x18b9 000018b1: JUMPI 000018b2: PUSH2 0x18b9 000018b5: PUSH2 0x2ada 000018b8: JUMP 000018b9: JUMPDEST 000018ba: SWAP1 000018bb: PUSH1 0x00 000018bd: MSTORE 000018be: PUSH1 0x20 000018c0: PUSH1 0x00 000018c2: KECCAK256 000018c3: ADD 000018c4: PUSH1 0x00 000018c6: PUSH2 0x0100 000018c9: EXP 000018ca: DUP2 000018cb: SLOAD 000018cc: DUP2 000018cd: PUSH1 0x01 000018cf: PUSH1 0x01 000018d1: PUSH1 0xa0 000018d3: SHL 000018d4: SUB 000018d5: MUL 000018d6: NOT 000018d7: AND 000018d8: SWAP1 000018d9: DUP4 000018da: PUSH1 0x01 000018dc: PUSH1 0x01 000018de: PUSH1 0xa0 000018e0: SHL 000018e1: SUB 000018e2: AND 000018e3: MUL 000018e4: OR 000018e5: SWAP1 000018e6: SSTORE 000018e7: POP 000018e8: PUSH1 0x03 000018ea: DUP1 000018eb: SLOAD 000018ec: DUP1 000018ed: PUSH2 0x18f8 000018f0: JUMPI 000018f1: PUSH2 0x18f8 000018f4: PUSH2 0x2ac4 000018f7: JUMP 000018f8: JUMPDEST 000018f9: PUSH1 0x00 000018fb: DUP3 000018fc: DUP2 000018fd: MSTORE 000018fe: PUSH1 0x20 00001900: SWAP1 00001901: KECCAK256 00001902: DUP2 00001903: ADD 00001904: PUSH1 0x00 00001906: NOT 00001907: SWAP1 00001908: DUP2 00001909: ADD 0000190a: DUP1 0000190b: SLOAD 0000190c: PUSH1 0x01 0000190e: PUSH1 0x01 00001910: PUSH1 0xa0 00001912: SHL 00001913: SUB 00001914: NOT 00001915: AND 00001916: SWAP1 00001917: SSTORE 00001918: ADD 00001919: SWAP1 0000191a: SSTORE 0000191b: PUSH2 0x1931 0000191e: JUMP 0000191f: JUMPDEST 00001920: DUP1 00001921: PUSH2 0x1929 00001924: DUP2 00001925: PUSH2 0x2a73 00001928: JUMP 00001929: JUMPDEST 0000192a: SWAP2 0000192b: POP 0000192c: POP 0000192d: PUSH2 0x182b 00001930: JUMP 00001931: JUMPDEST 00001932: POP 00001933: PUSH1 0x03 00001935: SLOAD 00001936: PUSH1 0x04 00001938: SLOAD 00001939: GT 0000193a: ISZERO 0000193b: PUSH2 0x194a 0000193e: JUMPI 0000193f: PUSH1 0x03 00001941: SLOAD 00001942: PUSH2 0x194a 00001945: SWAP1 00001946: PUSH2 0x147f 00001949: JUMP 0000194a: JUMPDEST 0000194b: PUSH1 0x40 0000194d: MLOAD 0000194e: PUSH1 0x01 00001950: PUSH1 0x01 00001952: PUSH1 0xa0 00001954: SHL 00001955: SUB 00001956: DUP4 00001957: AND 00001958: SWAP1 00001959: PUSH32 0x8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b90 0000197a: SWAP1 0000197b: PUSH1 0x00 0000197d: SWAP1 0000197e: LOG2 0000197f: POP 00001980: POP 00001981: JUMP 00001982: JUMPDEST 00001983: CALLER 00001984: ADDRESS 00001985: EQ 00001986: PUSH2 0x198e 00001989: JUMPI 0000198a: PUSH1 0x00 0000198c: DUP1 0000198d: REVERT 0000198e: JUMPDEST 0000198f: PUSH1 0x01 00001991: PUSH1 0x01 00001993: PUSH1 0xa0 00001995: SHL 00001996: SUB 00001997: DUP2 00001998: AND 00001999: PUSH1 0x00 0000199b: SWAP1 0000199c: DUP2 0000199d: MSTORE 0000199e: PUSH1 0x02 000019a0: PUSH1 0x20 000019a2: MSTORE 000019a3: PUSH1 0x40 000019a5: SWAP1 000019a6: KECCAK256 000019a7: SLOAD 000019a8: DUP2 000019a9: SWAP1 000019aa: PUSH1 0xff 000019ac: AND 000019ad: ISZERO 000019ae: PUSH2 0x19b6 000019b1: JUMPI 000019b2: PUSH1 0x00 000019b4: DUP1 000019b5: REVERT 000019b6: JUMPDEST 000019b7: DUP2 000019b8: PUSH1 0x01 000019ba: PUSH1 0x01 000019bc: PUSH1 0xa0 000019be: SHL 000019bf: SUB 000019c0: DUP2 000019c1: AND 000019c2: PUSH2 0x19ca 000019c5: JUMPI 000019c6: PUSH1 0x00 000019c8: DUP1 000019c9: REVERT 000019ca: JUMPDEST 000019cb: PUSH1 0x03 000019cd: SLOAD 000019ce: PUSH2 0x19d8 000019d1: SWAP1 000019d2: PUSH1 0x01 000019d4: PUSH2 0x29df 000019d7: JUMP 000019d8: JUMPDEST 000019d9: PUSH1 0x04 000019db: SLOAD 000019dc: PUSH1 0x32 000019de: DUP3 000019df: GT 000019e0: ISZERO 000019e1: DUP1 000019e2: ISZERO 000019e3: PUSH2 0x19ec 000019e6: JUMPI 000019e7: POP 000019e8: DUP2 000019e9: DUP2 000019ea: GT 000019eb: ISZERO 000019ec: JUMPDEST 000019ed: DUP1 000019ee: ISZERO 000019ef: PUSH2 0x19f7 000019f2: JUMPI 000019f3: POP 000019f4: DUP1 000019f5: ISZERO 000019f6: ISZERO 000019f7: JUMPDEST 000019f8: DUP1 000019f9: ISZERO 000019fa: PUSH2 0x1a02 000019fd: JUMPI 000019fe: POP 000019ff: DUP2 00001a00: ISZERO 00001a01: ISZERO 00001a02: JUMPDEST 00001a03: PUSH2 0x1a0b 00001a06: JUMPI 00001a07: PUSH1 0x00 00001a09: DUP1 00001a0a: REVERT 00001a0b: JUMPDEST 00001a0c: PUSH1 0x01 00001a0e: PUSH1 0x01 00001a10: PUSH1 0xa0 00001a12: SHL 00001a13: SUB 00001a14: DUP6 00001a15: AND 00001a16: PUSH1 0x00 00001a18: DUP2 00001a19: DUP2 00001a1a: MSTORE 00001a1b: PUSH1 0x02 00001a1d: PUSH1 0x20 00001a1f: MSTORE 00001a20: PUSH1 0x40 00001a22: DUP1 00001a23: DUP3 00001a24: KECCAK256 00001a25: DUP1 00001a26: SLOAD 00001a27: PUSH1 0xff 00001a29: NOT 00001a2a: AND 00001a2b: PUSH1 0x01 00001a2d: SWAP1 00001a2e: DUP2 00001a2f: OR 00001a30: SWAP1 00001a31: SWAP2 00001a32: SSTORE 00001a33: PUSH1 0x03 00001a35: DUP1 00001a36: SLOAD 00001a37: SWAP2 00001a38: DUP3 00001a39: ADD 00001a3a: DUP2 00001a3b: SSTORE 00001a3c: DUP4 00001a3d: MSTORE 00001a3e: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b 00001a5f: ADD 00001a60: DUP1 00001a61: SLOAD 00001a62: PUSH1 0x01 00001a64: PUSH1 0x01 00001a66: PUSH1 0xa0 00001a68: SHL 00001a69: SUB 00001a6a: NOT 00001a6b: AND 00001a6c: DUP5 00001a6d: OR 00001a6e: SWAP1 00001a6f: SSTORE 00001a70: MLOAD 00001a71: PUSH32 0xf39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d 00001a92: SWAP2 00001a93: SWAP1 00001a94: LOG2 00001a95: POP 00001a96: POP 00001a97: POP 00001a98: POP 00001a99: POP 00001a9a: JUMP 00001a9b: JUMPDEST 00001a9c: DUP2 00001a9d: MLOAD 00001a9e: DUP2 00001a9f: PUSH1 0x32 00001aa1: DUP3 00001aa2: GT 00001aa3: ISZERO 00001aa4: DUP1 00001aa5: ISZERO 00001aa6: PUSH2 0x1aaf 00001aa9: JUMPI 00001aaa: POP 00001aab: DUP2 00001aac: DUP2 00001aad: GT 00001aae: ISZERO 00001aaf: JUMPDEST 00001ab0: DUP1 00001ab1: ISZERO 00001ab2: PUSH2 0x1aba 00001ab5: JUMPI 00001ab6: POP 00001ab7: DUP1 00001ab8: ISZERO 00001ab9: ISZERO 00001aba: JUMPDEST 00001abb: DUP1 00001abc: ISZERO 00001abd: PUSH2 0x1ac5 00001ac0: JUMPI 00001ac1: POP 00001ac2: DUP2 00001ac3: ISZERO 00001ac4: ISZERO 00001ac5: JUMPDEST 00001ac6: PUSH2 0x1ace 00001ac9: JUMPI 00001aca: PUSH1 0x00 00001acc: DUP1 00001acd: REVERT 00001ace: JUMPDEST 00001acf: PUSH1 0x04 00001ad1: SLOAD 00001ad2: ISZERO 00001ad3: PUSH2 0x1b07 00001ad6: JUMPI 00001ad7: PUSH1 0x40 00001ad9: MLOAD 00001ada: PUSH3 0x461bcd 00001ade: PUSH1 0xe5 00001ae0: SHL 00001ae1: DUP2 00001ae2: MSTORE 00001ae3: PUSH1 0x04 00001ae5: ADD 00001ae6: PUSH2 0x0756 00001ae9: SWAP1 00001aea: PUSH1 0x20 00001aec: DUP1 00001aed: DUP3 00001aee: MSTORE 00001aef: PUSH1 0x04 00001af1: SWAP1 00001af2: DUP3 00001af3: ADD 00001af4: MSTORE 00001af5: PUSH4 0x04d53303 00001afa: PUSH1 0xe4 00001afc: SHL 00001afd: PUSH1 0x40 00001aff: DUP3 00001b00: ADD 00001b01: MSTORE 00001b02: PUSH1 0x60 00001b04: ADD 00001b05: SWAP1 00001b06: JUMP 00001b07: JUMPDEST 00001b08: PUSH1 0x00 00001b0a: JUMPDEST 00001b0b: DUP5 00001b0c: MLOAD 00001b0d: DUP2 00001b0e: LT 00001b0f: ISZERO 00001b10: PUSH2 0x1bee 00001b13: JUMPI 00001b14: PUSH1 0x02 00001b16: PUSH1 0x00 00001b18: DUP7 00001b19: DUP4 00001b1a: DUP2 00001b1b: MLOAD 00001b1c: DUP2 00001b1d: LT 00001b1e: PUSH2 0x1b29 00001b21: JUMPI 00001b22: PUSH2 0x1b29 00001b25: PUSH2 0x2ada 00001b28: JUMP 00001b29: JUMPDEST 00001b2a: PUSH1 0x20 00001b2c: SWAP1 00001b2d: DUP2 00001b2e: MUL 00001b2f: SWAP2 00001b30: SWAP1 00001b31: SWAP2 00001b32: ADD 00001b33: DUP2 00001b34: ADD 00001b35: MLOAD 00001b36: PUSH1 0x01 00001b38: PUSH1 0x01 00001b3a: PUSH1 0xa0 00001b3c: SHL 00001b3d: SUB 00001b3e: AND 00001b3f: DUP3 00001b40: MSTORE 00001b41: DUP2 00001b42: ADD 00001b43: SWAP2 00001b44: SWAP1 00001b45: SWAP2 00001b46: MSTORE 00001b47: PUSH1 0x40 00001b49: ADD 00001b4a: PUSH1 0x00 00001b4c: KECCAK256 00001b4d: SLOAD 00001b4e: PUSH1 0xff 00001b50: AND 00001b51: ISZERO 00001b52: DUP1 00001b53: ISZERO 00001b54: PUSH2 0x1b89 00001b57: JUMPI 00001b58: POP 00001b59: PUSH1 0x00 00001b5b: PUSH1 0x01 00001b5d: PUSH1 0x01 00001b5f: PUSH1 0xa0 00001b61: SHL 00001b62: SUB 00001b63: AND 00001b64: DUP6 00001b65: DUP3 00001b66: DUP2 00001b67: MLOAD 00001b68: DUP2 00001b69: LT 00001b6a: PUSH2 0x1b75 00001b6d: JUMPI 00001b6e: PUSH2 0x1b75 00001b71: PUSH2 0x2ada 00001b74: JUMP 00001b75: JUMPDEST 00001b76: PUSH1 0x20 00001b78: MUL 00001b79: PUSH1 0x20 00001b7b: ADD 00001b7c: ADD 00001b7d: MLOAD 00001b7e: PUSH1 0x01 00001b80: PUSH1 0x01 00001b82: PUSH1 0xa0 00001b84: SHL 00001b85: SUB 00001b86: AND 00001b87: EQ 00001b88: ISZERO 00001b89: JUMPDEST 00001b8a: PUSH2 0x1b92 00001b8d: JUMPI 00001b8e: PUSH1 0x00 00001b90: DUP1 00001b91: REVERT 00001b92: JUMPDEST 00001b93: PUSH1 0x01 00001b95: PUSH1 0x02 00001b97: PUSH1 0x00 00001b99: DUP8 00001b9a: DUP5 00001b9b: DUP2 00001b9c: MLOAD 00001b9d: DUP2 00001b9e: LT 00001b9f: PUSH2 0x1baa 00001ba2: JUMPI 00001ba3: PUSH2 0x1baa 00001ba6: PUSH2 0x2ada 00001ba9: JUMP 00001baa: JUMPDEST 00001bab: PUSH1 0x20 00001bad: SWAP1 00001bae: DUP2 00001baf: MUL 00001bb0: SWAP2 00001bb1: SWAP1 00001bb2: SWAP2 00001bb3: ADD 00001bb4: DUP2 00001bb5: ADD 00001bb6: MLOAD 00001bb7: PUSH1 0x01 00001bb9: PUSH1 0x01 00001bbb: PUSH1 0xa0 00001bbd: SHL 00001bbe: SUB 00001bbf: AND 00001bc0: DUP3 00001bc1: MSTORE 00001bc2: DUP2 00001bc3: ADD 00001bc4: SWAP2 00001bc5: SWAP1 00001bc6: SWAP2 00001bc7: MSTORE 00001bc8: PUSH1 0x40 00001bca: ADD 00001bcb: PUSH1 0x00 00001bcd: KECCAK256 00001bce: DUP1 00001bcf: SLOAD 00001bd0: PUSH1 0xff 00001bd2: NOT 00001bd3: AND 00001bd4: SWAP2 00001bd5: ISZERO 00001bd6: ISZERO 00001bd7: SWAP2 00001bd8: SWAP1 00001bd9: SWAP2 00001bda: OR 00001bdb: SWAP1 00001bdc: SSTORE 00001bdd: DUP1 00001bde: PUSH2 0x1be6 00001be1: DUP2 00001be2: PUSH2 0x2a73 00001be5: JUMP 00001be6: JUMPDEST 00001be7: SWAP2 00001be8: POP 00001be9: POP 00001bea: PUSH2 0x1b0a 00001bed: JUMP 00001bee: JUMPDEST 00001bef: POP 00001bf0: DUP4 00001bf1: MLOAD 00001bf2: PUSH2 0x1c02 00001bf5: SWAP1 00001bf6: PUSH1 0x03 00001bf8: SWAP1 00001bf9: PUSH1 0x20 00001bfb: DUP8 00001bfc: ADD 00001bfd: SWAP1 00001bfe: PUSH2 0x2089 00001c01: JUMP 00001c02: JUMPDEST 00001c03: POP 00001c04: POP 00001c05: POP 00001c06: PUSH1 0x04 00001c08: SSTORE 00001c09: POP 00001c0a: JUMP 00001c0b: JUMPDEST 00001c0c: PUSH1 0x00 00001c0e: DUP4 00001c0f: PUSH1 0x01 00001c11: PUSH1 0x01 00001c13: PUSH1 0xa0 00001c15: SHL 00001c16: SUB 00001c17: DUP2 00001c18: AND 00001c19: PUSH2 0x1c21 00001c1c: JUMPI 00001c1d: PUSH1 0x00 00001c1f: DUP1 00001c20: REVERT 00001c21: JUMPDEST 00001c22: PUSH1 0x05 00001c24: SLOAD 00001c25: PUSH1 0x40 00001c27: DUP1 00001c28: MLOAD 00001c29: PUSH1 0x80 00001c2b: DUP2 00001c2c: ADD 00001c2d: DUP3 00001c2e: MSTORE 00001c2f: PUSH1 0x01 00001c31: PUSH1 0x01 00001c33: PUSH1 0xa0 00001c35: SHL 00001c36: SUB 00001c37: DUP9 00001c38: DUP2 00001c39: AND 00001c3a: DUP3 00001c3b: MSTORE 00001c3c: PUSH1 0x20 00001c3e: DUP1 00001c3f: DUP4 00001c40: ADD 00001c41: DUP10 00001c42: DUP2 00001c43: MSTORE 00001c44: DUP4 00001c45: DUP6 00001c46: ADD 00001c47: DUP10 00001c48: DUP2 00001c49: MSTORE 00001c4a: PUSH1 0x00 00001c4c: PUSH1 0x60 00001c4e: DUP7 00001c4f: ADD 00001c50: DUP2 00001c51: SWAP1 00001c52: MSTORE 00001c53: DUP8 00001c54: DUP2 00001c55: MSTORE 00001c56: DUP1 00001c57: DUP5 00001c58: MSTORE 00001c59: SWAP6 00001c5a: SWAP1 00001c5b: SWAP6 00001c5c: KECCAK256 00001c5d: DUP5 00001c5e: MLOAD 00001c5f: DUP2 00001c60: SLOAD 00001c61: PUSH1 0x01 00001c63: PUSH1 0x01 00001c65: PUSH1 0xa0 00001c67: SHL 00001c68: SUB 00001c69: NOT 00001c6a: AND 00001c6b: SWAP5 00001c6c: AND 00001c6d: SWAP4 00001c6e: SWAP1 00001c6f: SWAP4 00001c70: OR 00001c71: DUP4 00001c72: SSTORE 00001c73: MLOAD 00001c74: PUSH1 0x01 00001c76: DUP4 00001c77: ADD 00001c78: SSTORE 00001c79: SWAP3 00001c7a: MLOAD 00001c7b: DUP1 00001c7c: MLOAD 00001c7d: SWAP5 00001c7e: SWAP7 00001c7f: POP 00001c80: SWAP2 00001c81: SWAP4 00001c82: SWAP1 00001c83: SWAP3 00001c84: PUSH2 0x1c94 00001c87: SWAP3 00001c88: PUSH1 0x02 00001c8a: DUP6 00001c8b: ADD 00001c8c: SWAP3 00001c8d: SWAP2 00001c8e: ADD 00001c8f: SWAP1 00001c90: PUSH2 0x20ee 00001c93: JUMP 00001c94: JUMPDEST 00001c95: POP 00001c96: PUSH1 0x60 00001c98: SWAP2 00001c99: SWAP1 00001c9a: SWAP2 00001c9b: ADD 00001c9c: MLOAD 00001c9d: PUSH1 0x03 00001c9f: SWAP1 00001ca0: SWAP2 00001ca1: ADD 00001ca2: DUP1 00001ca3: SLOAD 00001ca4: PUSH1 0xff 00001ca6: NOT 00001ca7: AND 00001ca8: SWAP2 00001ca9: ISZERO 00001caa: ISZERO 00001cab: SWAP2 00001cac: SWAP1 00001cad: SWAP2 00001cae: OR 00001caf: SWAP1 00001cb0: SSTORE 00001cb1: PUSH1 0x05 00001cb3: DUP1 00001cb4: SLOAD 00001cb5: PUSH1 0x01 00001cb7: SWAP2 00001cb8: SWAP1 00001cb9: PUSH1 0x00 00001cbb: SWAP1 00001cbc: PUSH2 0x1cc6 00001cbf: SWAP1 00001cc0: DUP5 00001cc1: SWAP1 00001cc2: PUSH2 0x29df 00001cc5: JUMP 00001cc6: JUMPDEST 00001cc7: SWAP1 00001cc8: SWAP2 00001cc9: SSTORE 00001cca: POP 00001ccb: POP 00001ccc: PUSH1 0x40 00001cce: MLOAD 00001ccf: DUP3 00001cd0: SWAP1 00001cd1: PUSH32 0xc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e51 00001cf2: SWAP1 00001cf3: PUSH1 0x00 00001cf5: SWAP1 00001cf6: LOG2 00001cf7: POP 00001cf8: SWAP4 00001cf9: SWAP3 00001cfa: POP 00001cfb: POP 00001cfc: POP 00001cfd: JUMP 00001cfe: JUMPDEST 00001cff: DUP3 00001d00: SELFBALANCE 00001d01: LT 00001d02: ISZERO 00001d03: PUSH2 0x1d37 00001d06: JUMPI 00001d07: PUSH1 0x40 00001d09: MLOAD 00001d0a: PUSH3 0x461bcd 00001d0e: PUSH1 0xe5 00001d10: SHL 00001d11: DUP2 00001d12: MSTORE 00001d13: PUSH1 0x04 00001d15: ADD 00001d16: PUSH2 0x0756 00001d19: SWAP1 00001d1a: PUSH1 0x20 00001d1c: DUP1 00001d1d: DUP3 00001d1e: MSTORE 00001d1f: PUSH1 0x04 00001d21: SWAP1 00001d22: DUP3 00001d23: ADD 00001d24: MSTORE 00001d25: PUSH4 0x4d533037 00001d2a: PUSH1 0xe0 00001d2c: SHL 00001d2d: PUSH1 0x40 00001d2f: DUP3 00001d30: ADD 00001d31: MSTORE 00001d32: PUSH1 0x60 00001d34: ADD 00001d35: SWAP1 00001d36: JUMP 00001d37: JUMPDEST 00001d38: PUSH1 0x00 00001d3a: DUP1 00001d3b: DUP6 00001d3c: PUSH1 0x01 00001d3e: PUSH1 0x01 00001d40: PUSH1 0xa0 00001d42: SHL 00001d43: SUB 00001d44: AND 00001d45: DUP6 00001d46: DUP6 00001d47: PUSH1 0x40 00001d49: MLOAD 00001d4a: PUSH2 0x1d53 00001d4d: SWAP2 00001d4e: SWAP1 00001d4f: PUSH2 0x284b 00001d52: JUMP 00001d53: JUMPDEST 00001d54: PUSH1 0x00 00001d56: PUSH1 0x40 00001d58: MLOAD 00001d59: DUP1 00001d5a: DUP4 00001d5b: SUB 00001d5c: DUP2 00001d5d: DUP6 00001d5e: DUP8 00001d5f: GAS 00001d60: CALL 00001d61: SWAP3 00001d62: POP 00001d63: POP 00001d64: POP 00001d65: RETURNDATASIZE 00001d66: DUP1 00001d67: PUSH1 0x00 00001d69: DUP2 00001d6a: EQ 00001d6b: PUSH2 0x1d90 00001d6e: JUMPI 00001d6f: PUSH1 0x40 00001d71: MLOAD 00001d72: SWAP2 00001d73: POP 00001d74: PUSH1 0x1f 00001d76: NOT 00001d77: PUSH1 0x3f 00001d79: RETURNDATASIZE 00001d7a: ADD 00001d7b: AND 00001d7c: DUP3 00001d7d: ADD 00001d7e: PUSH1 0x40 00001d80: MSTORE 00001d81: RETURNDATASIZE 00001d82: DUP3 00001d83: MSTORE 00001d84: RETURNDATASIZE 00001d85: PUSH1 0x00 00001d87: PUSH1 0x20 00001d89: DUP5 00001d8a: ADD 00001d8b: RETURNDATACOPY 00001d8c: PUSH2 0x1d95 00001d8f: JUMP 00001d90: JUMPDEST 00001d91: PUSH1 0x60 00001d93: SWAP2 00001d94: POP 00001d95: JUMPDEST 00001d96: POP 00001d97: SWAP2 00001d98: POP 00001d99: SWAP2 00001d9a: POP 00001d9b: DUP2 00001d9c: ISZERO 00001d9d: PUSH2 0x1de8 00001da0: JUMPI 00001da1: PUSH1 0x00 00001da3: DUP4 00001da4: DUP2 00001da5: MSTORE 00001da6: PUSH1 0x20 00001da8: DUP2 00001da9: SWAP1 00001daa: MSTORE 00001dab: PUSH1 0x40 00001dad: DUP1 00001dae: DUP3 00001daf: KECCAK256 00001db0: PUSH1 0x03 00001db2: ADD 00001db3: DUP1 00001db4: SLOAD 00001db5: PUSH1 0xff 00001db7: NOT 00001db8: AND 00001db9: PUSH1 0x01 00001dbb: OR 00001dbc: SWAP1 00001dbd: SSTORE 00001dbe: MLOAD 00001dbf: DUP5 00001dc0: SWAP2 00001dc1: PUSH32 0x33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed75 00001de2: SWAP2 00001de3: LOG2 00001de4: PUSH2 0x177d 00001de7: JUMP 00001de8: JUMPDEST 00001de9: DUP1 00001dea: MLOAD 00001deb: ISZERO 00001dec: PUSH2 0x1df8 00001def: JUMPI 00001df0: DUP1 00001df1: MLOAD 00001df2: DUP1 00001df3: DUP3 00001df4: PUSH1 0x20 00001df6: ADD 00001df7: REVERT 00001df8: JUMPDEST 00001df9: PUSH1 0x40 00001dfb: MLOAD 00001dfc: PUSH3 0x461bcd 00001e00: PUSH1 0xe5 00001e02: SHL 00001e03: DUP2 00001e04: MSTORE 00001e05: PUSH1 0x04 00001e07: ADD 00001e08: PUSH2 0x0756 00001e0b: SWAP1 00001e0c: PUSH1 0x20 00001e0e: DUP1 00001e0f: DUP3 00001e10: MSTORE 00001e11: PUSH1 0x04 00001e13: SWAP1 00001e14: DUP3 00001e15: ADD 00001e16: MSTORE 00001e17: PUSH4 0x09aa6607 00001e1c: PUSH1 0xe3 00001e1e: SHL 00001e1f: PUSH1 0x40 00001e21: DUP3 00001e22: ADD 00001e23: MSTORE 00001e24: PUSH1 0x60 00001e26: ADD 00001e27: SWAP1 00001e28: JUMP 00001e29: JUMPDEST 00001e2a: CALLER 00001e2b: ADDRESS 00001e2c: EQ 00001e2d: PUSH2 0x1e35 00001e30: JUMPI 00001e31: PUSH1 0x00 00001e33: DUP1 00001e34: REVERT 00001e35: JUMPDEST 00001e36: PUSH1 0x03 00001e38: SLOAD 00001e39: DUP2 00001e3a: PUSH1 0x32 00001e3c: DUP3 00001e3d: GT 00001e3e: DUP1 00001e3f: ISZERO 00001e40: SWAP1 00001e41: PUSH2 0x1e4a 00001e44: JUMPI 00001e45: POP 00001e46: DUP2 00001e47: DUP2 00001e48: GT 00001e49: ISZERO 00001e4a: JUMPDEST 00001e4b: DUP1 00001e4c: ISZERO 00001e4d: PUSH2 0x1e55 00001e50: JUMPI 00001e51: POP 00001e52: DUP1 00001e53: ISZERO 00001e54: ISZERO 00001e55: JUMPDEST 00001e56: DUP1 00001e57: ISZERO 00001e58: PUSH2 0x1e60 00001e5b: JUMPI 00001e5c: POP 00001e5d: DUP2 00001e5e: ISZERO 00001e5f: ISZERO 00001e60: JUMPDEST 00001e61: PUSH2 0x1e69 00001e64: JUMPI 00001e65: PUSH1 0x00 00001e67: DUP1 00001e68: REVERT 00001e69: JUMPDEST 00001e6a: PUSH1 0x04 00001e6c: DUP4 00001e6d: SWAP1 00001e6e: SSTORE 00001e6f: PUSH1 0x40 00001e71: MLOAD 00001e72: DUP4 00001e73: DUP2 00001e74: MSTORE 00001e75: PUSH32 0xa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a 00001e96: SWAP1 00001e97: PUSH1 0x20 00001e99: ADD 00001e9a: PUSH1 0x40 00001e9c: MLOAD 00001e9d: DUP1 00001e9e: SWAP2 00001e9f: SUB 00001ea0: SWAP1 00001ea1: LOG1 00001ea2: POP 00001ea3: POP 00001ea4: POP 00001ea5: JUMP 00001ea6: JUMPDEST 00001ea7: CALLER 00001ea8: ADDRESS 00001ea9: EQ 00001eaa: PUSH2 0x1eb2 00001ead: JUMPI 00001eae: PUSH1 0x00 00001eb0: DUP1 00001eb1: REVERT 00001eb2: JUMPDEST 00001eb3: PUSH1 0x01 00001eb5: PUSH1 0x01 00001eb7: PUSH1 0xa0 00001eb9: SHL 00001eba: SUB 00001ebb: DUP3 00001ebc: AND 00001ebd: PUSH1 0x00 00001ebf: SWAP1 00001ec0: DUP2 00001ec1: MSTORE 00001ec2: PUSH1 0x02 00001ec4: PUSH1 0x20 00001ec6: MSTORE 00001ec7: PUSH1 0x40 00001ec9: SWAP1 00001eca: KECCAK256 00001ecb: SLOAD 00001ecc: DUP3 00001ecd: SWAP1 00001ece: PUSH1 0xff 00001ed0: AND 00001ed1: PUSH2 0x1ed9 00001ed4: JUMPI 00001ed5: PUSH1 0x00 00001ed7: DUP1 00001ed8: REVERT 00001ed9: JUMPDEST 00001eda: PUSH1 0x01 00001edc: PUSH1 0x01 00001ede: PUSH1 0xa0 00001ee0: SHL 00001ee1: SUB 00001ee2: DUP3 00001ee3: AND 00001ee4: PUSH1 0x00 00001ee6: SWAP1 00001ee7: DUP2 00001ee8: MSTORE 00001ee9: PUSH1 0x02 00001eeb: PUSH1 0x20 00001eed: MSTORE 00001eee: PUSH1 0x40 00001ef0: SWAP1 00001ef1: KECCAK256 00001ef2: SLOAD 00001ef3: DUP3 00001ef4: SWAP1 00001ef5: PUSH1 0xff 00001ef7: AND 00001ef8: ISZERO 00001ef9: PUSH2 0x1f01 00001efc: JUMPI 00001efd: PUSH1 0x00 00001eff: DUP1 00001f00: REVERT 00001f01: JUMPDEST 00001f02: PUSH1 0x00 00001f04: JUMPDEST 00001f05: PUSH1 0x03 00001f07: SLOAD 00001f08: DUP2 00001f09: LT 00001f0a: ISZERO 00001f0b: PUSH2 0x1f9f 00001f0e: JUMPI 00001f0f: DUP5 00001f10: PUSH1 0x01 00001f12: PUSH1 0x01 00001f14: PUSH1 0xa0 00001f16: SHL 00001f17: SUB 00001f18: AND 00001f19: PUSH1 0x03 00001f1b: DUP3 00001f1c: DUP2 00001f1d: SLOAD 00001f1e: DUP2 00001f1f: LT 00001f20: PUSH2 0x1f2b 00001f23: JUMPI 00001f24: PUSH2 0x1f2b 00001f27: PUSH2 0x2ada 00001f2a: JUMP 00001f2b: JUMPDEST 00001f2c: PUSH1 0x00 00001f2e: SWAP2 00001f2f: DUP3 00001f30: MSTORE 00001f31: PUSH1 0x20 00001f33: SWAP1 00001f34: SWAP2 00001f35: KECCAK256 00001f36: ADD 00001f37: SLOAD 00001f38: PUSH1 0x01 00001f3a: PUSH1 0x01 00001f3c: PUSH1 0xa0 00001f3e: SHL 00001f3f: SUB 00001f40: AND 00001f41: EQ 00001f42: ISZERO 00001f43: PUSH2 0x1f8d 00001f46: JUMPI 00001f47: DUP4 00001f48: PUSH1 0x03 00001f4a: DUP3 00001f4b: DUP2 00001f4c: SLOAD 00001f4d: DUP2 00001f4e: LT 00001f4f: PUSH2 0x1f5a 00001f52: JUMPI 00001f53: PUSH2 0x1f5a 00001f56: PUSH2 0x2ada 00001f59: JUMP 00001f5a: JUMPDEST 00001f5b: SWAP1 00001f5c: PUSH1 0x00 00001f5e: MSTORE 00001f5f: PUSH1 0x20 00001f61: PUSH1 0x00 00001f63: KECCAK256 00001f64: ADD 00001f65: PUSH1 0x00 00001f67: PUSH2 0x0100 00001f6a: EXP 00001f6b: DUP2 00001f6c: SLOAD 00001f6d: DUP2 00001f6e: PUSH1 0x01 00001f70: PUSH1 0x01 00001f72: PUSH1 0xa0 00001f74: SHL 00001f75: SUB 00001f76: MUL 00001f77: NOT 00001f78: AND 00001f79: SWAP1 00001f7a: DUP4 00001f7b: PUSH1 0x01 00001f7d: PUSH1 0x01 00001f7f: PUSH1 0xa0 00001f81: SHL 00001f82: SUB 00001f83: AND 00001f84: MUL 00001f85: OR 00001f86: SWAP1 00001f87: SSTORE 00001f88: POP 00001f89: PUSH2 0x1f9f 00001f8c: JUMP 00001f8d: JUMPDEST 00001f8e: DUP1 00001f8f: PUSH2 0x1f97 00001f92: DUP2 00001f93: PUSH2 0x2a73 00001f96: JUMP 00001f97: JUMPDEST 00001f98: SWAP2 00001f99: POP 00001f9a: POP 00001f9b: PUSH2 0x1f04 00001f9e: JUMP 00001f9f: JUMPDEST 00001fa0: POP 00001fa1: PUSH1 0x01 00001fa3: PUSH1 0x01 00001fa5: PUSH1 0xa0 00001fa7: SHL 00001fa8: SUB 00001fa9: DUP1 00001faa: DUP6 00001fab: AND 00001fac: PUSH1 0x00 00001fae: DUP2 00001faf: DUP2 00001fb0: MSTORE 00001fb1: PUSH1 0x02 00001fb3: PUSH1 0x20 00001fb5: MSTORE 00001fb6: PUSH1 0x40 00001fb8: DUP1 00001fb9: DUP3 00001fba: KECCAK256 00001fbb: DUP1 00001fbc: SLOAD 00001fbd: PUSH1 0xff 00001fbf: NOT 00001fc0: SWAP1 00001fc1: DUP2 00001fc2: AND 00001fc3: SWAP1 00001fc4: SWAP2 00001fc5: SSTORE 00001fc6: SWAP4 00001fc7: DUP8 00001fc8: AND 00001fc9: DUP3 00001fca: MSTORE 00001fcb: DUP1 00001fcc: DUP3 00001fcd: KECCAK256 00001fce: DUP1 00001fcf: SLOAD 00001fd0: SWAP1 00001fd1: SWAP5 00001fd2: AND 00001fd3: PUSH1 0x01 00001fd5: OR 00001fd6: SWAP1 00001fd7: SWAP4 00001fd8: SSTORE 00001fd9: SWAP2 00001fda: MLOAD 00001fdb: SWAP1 00001fdc: SWAP2 00001fdd: PUSH32 0x8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b90 00001ffe: SWAP2 00001fff: LOG2 00002000: PUSH1 0x40 00002002: MLOAD 00002003: PUSH1 0x01 00002005: PUSH1 0x01 00002007: PUSH1 0xa0 00002009: SHL 0000200a: SUB 0000200b: DUP5 0000200c: AND 0000200d: SWAP1 0000200e: PUSH32 0xf39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d 0000202f: SWAP1 00002030: PUSH1 0x00 00002032: SWAP1 00002033: LOG2 00002034: POP 00002035: POP 00002036: POP 00002037: POP 00002038: JUMP 00002039: JUMPDEST 0000203a: PUSH1 0x00 0000203c: DUP1 0000203d: PUSH1 0x00 0000203f: PUSH2 0x8796 00002042: GAS 00002043: PUSH2 0x204c 00002046: SWAP2 00002047: SWAP1 00002048: PUSH2 0x29f7 0000204b: JUMP 0000204c: JUMPDEST 0000204d: SWAP1 0000204e: POP 0000204f: PUSH1 0x40 00002051: MLOAD 00002052: PUSH1 0x20 00002054: DUP6 00002055: ADD 00002056: PUSH1 0x00 00002058: DUP3 00002059: DUP9 0000205a: DUP4 0000205b: DUP12 0000205c: DUP14 0000205d: DUP9 0000205e: CALL 0000205f: SWAP10 00002060: SWAP9 00002061: POP 00002062: POP 00002063: POP 00002064: POP 00002065: POP 00002066: POP 00002067: POP 00002068: POP 00002069: POP 0000206a: JUMP 0000206b: JUMPDEST 0000206c: PUSH1 0x40 0000206e: MLOAD 0000206f: DUP1 00002070: PUSH1 0x60 00002072: ADD 00002073: PUSH1 0x40 00002075: MSTORE 00002076: DUP1 00002077: PUSH1 0x03 00002079: SWAP1 0000207a: PUSH1 0x20 0000207c: DUP3 0000207d: MUL 0000207e: DUP1 0000207f: CALLDATASIZE 00002080: DUP4 00002081: CALLDATACOPY 00002082: POP 00002083: SWAP2 00002084: SWAP3 00002085: SWAP2 00002086: POP 00002087: POP 00002088: JUMP 00002089: JUMPDEST 0000208a: DUP3 0000208b: DUP1 0000208c: SLOAD 0000208d: DUP3 0000208e: DUP3 0000208f: SSTORE 00002090: SWAP1 00002091: PUSH1 0x00 00002093: MSTORE 00002094: PUSH1 0x20 00002096: PUSH1 0x00 00002098: KECCAK256 00002099: SWAP1 0000209a: DUP2 0000209b: ADD 0000209c: SWAP3 0000209d: DUP3 0000209e: ISZERO 0000209f: PUSH2 0x20de 000020a2: JUMPI 000020a3: SWAP2 000020a4: PUSH1 0x20 000020a6: MUL 000020a7: DUP3 000020a8: ADD 000020a9: JUMPDEST 000020aa: DUP3 000020ab: DUP2 000020ac: GT 000020ad: ISZERO 000020ae: PUSH2 0x20de 000020b1: JUMPI 000020b2: DUP3 000020b3: MLOAD 000020b4: DUP3 000020b5: SLOAD 000020b6: PUSH1 0x01 000020b8: PUSH1 0x01 000020ba: PUSH1 0xa0 000020bc: SHL 000020bd: SUB 000020be: NOT 000020bf: AND 000020c0: PUSH1 0x01 000020c2: PUSH1 0x01 000020c4: PUSH1 0xa0 000020c6: SHL 000020c7: SUB 000020c8: SWAP1 000020c9: SWAP2 000020ca: AND 000020cb: OR 000020cc: DUP3 000020cd: SSTORE 000020ce: PUSH1 0x20 000020d0: SWAP1 000020d1: SWAP3 000020d2: ADD 000020d3: SWAP2 000020d4: PUSH1 0x01 000020d6: SWAP1 000020d7: SWAP2 000020d8: ADD 000020d9: SWAP1 000020da: PUSH2 0x20a9 000020dd: JUMP 000020de: JUMPDEST 000020df: POP 000020e0: PUSH2 0x20ea 000020e3: SWAP3 000020e4: SWAP2 000020e5: POP 000020e6: PUSH2 0x2162 000020e9: JUMP 000020ea: JUMPDEST 000020eb: POP 000020ec: SWAP1 000020ed: JUMP 000020ee: JUMPDEST 000020ef: DUP3 000020f0: DUP1 000020f1: SLOAD 000020f2: PUSH2 0x20fa 000020f5: SWAP1 000020f6: PUSH2 0x2a3e 000020f9: JUMP 000020fa: JUMPDEST 000020fb: SWAP1 000020fc: PUSH1 0x00 000020fe: MSTORE 000020ff: PUSH1 0x20 00002101: PUSH1 0x00 00002103: KECCAK256 00002104: SWAP1 00002105: PUSH1 0x1f 00002107: ADD 00002108: PUSH1 0x20 0000210a: SWAP1 0000210b: DIV 0000210c: DUP2 0000210d: ADD 0000210e: SWAP3 0000210f: DUP3 00002110: PUSH2 0x211c 00002113: JUMPI 00002114: PUSH1 0x00 00002116: DUP6 00002117: SSTORE 00002118: PUSH2 0x20de 0000211b: JUMP 0000211c: JUMPDEST 0000211d: DUP3 0000211e: PUSH1 0x1f 00002120: LT 00002121: PUSH2 0x2135 00002124: JUMPI 00002125: DUP1 00002126: MLOAD 00002127: PUSH1 0xff 00002129: NOT 0000212a: AND 0000212b: DUP4 0000212c: DUP1 0000212d: ADD 0000212e: OR 0000212f: DUP6 00002130: SSTORE 00002131: PUSH2 0x20de 00002134: JUMP 00002135: JUMPDEST 00002136: DUP3 00002137: DUP1 00002138: ADD 00002139: PUSH1 0x01 0000213b: ADD 0000213c: DUP6 0000213d: SSTORE 0000213e: DUP3 0000213f: ISZERO 00002140: PUSH2 0x20de 00002143: JUMPI 00002144: SWAP2 00002145: DUP3 00002146: ADD 00002147: JUMPDEST 00002148: DUP3 00002149: DUP2 0000214a: GT 0000214b: ISZERO 0000214c: PUSH2 0x20de 0000214f: JUMPI 00002150: DUP3 00002151: MLOAD 00002152: DUP3 00002153: SSTORE 00002154: SWAP2 00002155: PUSH1 0x20 00002157: ADD 00002158: SWAP2 00002159: SWAP1 0000215a: PUSH1 0x01 0000215c: ADD 0000215d: SWAP1 0000215e: PUSH2 0x2147 00002161: JUMP 00002162: JUMPDEST 00002163: JUMPDEST 00002164: DUP1 00002165: DUP3 00002166: GT 00002167: ISZERO 00002168: PUSH2 0x20ea 0000216b: JUMPI 0000216c: PUSH1 0x00 0000216e: DUP2 0000216f: SSTORE 00002170: PUSH1 0x01 00002172: ADD 00002173: PUSH2 0x2163 00002176: JUMP 00002177: JUMPDEST 00002178: DUP1 00002179: CALLDATALOAD 0000217a: PUSH1 0x01 0000217c: PUSH1 0x01 0000217e: PUSH1 0xa0 00002180: SHL 00002181: SUB 00002182: DUP2 00002183: AND 00002184: DUP2 00002185: EQ 00002186: PUSH2 0x218e 00002189: JUMPI 0000218a: PUSH1 0x00 0000218c: DUP1 0000218d: REVERT 0000218e: JUMPDEST 0000218f: SWAP2 00002190: SWAP1 00002191: POP 00002192: JUMP 00002193: JUMPDEST 00002194: PUSH1 0x00 00002196: DUP3 00002197: PUSH1 0x1f 00002199: DUP4 0000219a: ADD 0000219b: SLT 0000219c: PUSH2 0x21a4 0000219f: JUMPI 000021a0: PUSH1 0x00 000021a2: DUP1 000021a3: REVERT 000021a4: JUMPDEST 000021a5: DUP2 000021a6: CALLDATALOAD 000021a7: PUSH1 0x20 000021a9: PUSH2 0x21b9 000021ac: PUSH2 0x21b4 000021af: DUP4 000021b0: PUSH2 0x29bc 000021b3: JUMP 000021b4: JUMPDEST 000021b5: PUSH2 0x298c 000021b8: JUMP 000021b9: JUMPDEST 000021ba: DUP1 000021bb: DUP4 000021bc: DUP3 000021bd: MSTORE 000021be: DUP3 000021bf: DUP3 000021c0: ADD 000021c1: SWAP2 000021c2: POP 000021c3: DUP3 000021c4: DUP7 000021c5: ADD 000021c6: DUP8 000021c7: DUP5 000021c8: DUP7 000021c9: PUSH1 0x05 000021cb: SHL 000021cc: DUP10 000021cd: ADD 000021ce: ADD 000021cf: GT 000021d0: ISZERO 000021d1: PUSH2 0x21d9 000021d4: JUMPI 000021d5: PUSH1 0x00 000021d7: DUP1 000021d8: REVERT 000021d9: JUMPDEST 000021da: PUSH1 0x00 000021dc: JUMPDEST 000021dd: DUP6 000021de: DUP2 000021df: LT 000021e0: ISZERO 000021e1: PUSH2 0x21f8 000021e4: JUMPI 000021e5: DUP2 000021e6: CALLDATALOAD 000021e7: DUP5 000021e8: MSTORE 000021e9: SWAP3 000021ea: DUP5 000021eb: ADD 000021ec: SWAP3 000021ed: SWAP1 000021ee: DUP5 000021ef: ADD 000021f0: SWAP1 000021f1: PUSH1 0x01 000021f3: ADD 000021f4: PUSH2 0x21dc 000021f7: JUMP 000021f8: JUMPDEST 000021f9: POP 000021fa: SWAP1 000021fb: SWAP8 000021fc: SWAP7 000021fd: POP 000021fe: POP 000021ff: POP 00002200: POP 00002201: POP 00002202: POP 00002203: POP 00002204: JUMP 00002205: JUMPDEST 00002206: PUSH1 0x00 00002208: DUP1 00002209: DUP4 0000220a: PUSH1 0x1f 0000220c: DUP5 0000220d: ADD 0000220e: SLT 0000220f: PUSH2 0x2217 00002212: JUMPI 00002213: PUSH1 0x00 00002215: DUP1 00002216: REVERT 00002217: JUMPDEST 00002218: POP 00002219: DUP2 0000221a: CALLDATALOAD 0000221b: PUSH1 0x01 0000221d: PUSH1 0x01 0000221f: PUSH1 0x40 00002221: SHL 00002222: SUB 00002223: DUP2 00002224: GT 00002225: ISZERO 00002226: PUSH2 0x222e 00002229: JUMPI 0000222a: PUSH1 0x00 0000222c: DUP1 0000222d: REVERT 0000222e: JUMPDEST 0000222f: PUSH1 0x20 00002231: DUP4 00002232: ADD 00002233: SWAP2 00002234: POP 00002235: DUP4 00002236: PUSH1 0x20 00002238: DUP3 00002239: PUSH1 0x05 0000223b: SHL 0000223c: DUP6 0000223d: ADD 0000223e: ADD 0000223f: GT 00002240: ISZERO 00002241: PUSH2 0x2249 00002244: JUMPI 00002245: PUSH1 0x00 00002247: DUP1 00002248: REVERT 00002249: JUMPDEST 0000224a: SWAP3 0000224b: POP 0000224c: SWAP3 0000224d: SWAP1 0000224e: POP 0000224f: JUMP 00002250: JUMPDEST 00002251: PUSH1 0x00 00002253: DUP3 00002254: PUSH1 0x1f 00002256: DUP4 00002257: ADD 00002258: SLT 00002259: PUSH2 0x2261 0000225c: JUMPI 0000225d: PUSH1 0x00 0000225f: DUP1 00002260: REVERT 00002261: JUMPDEST 00002262: DUP2 00002263: CALLDATALOAD 00002264: PUSH1 0x20 00002266: PUSH2 0x2271 00002269: PUSH2 0x21b4 0000226c: DUP4 0000226d: PUSH2 0x29bc 00002270: JUMP 00002271: JUMPDEST 00002272: DUP1 00002273: DUP4 00002274: DUP3 00002275: MSTORE 00002276: DUP3 00002277: DUP3 00002278: ADD 00002279: SWAP2 0000227a: POP 0000227b: DUP3 0000227c: DUP7 0000227d: ADD 0000227e: DUP8 0000227f: DUP5 00002280: DUP7 00002281: PUSH1 0x05 00002283: SHL 00002284: DUP10 00002285: ADD 00002286: ADD 00002287: GT 00002288: ISZERO 00002289: PUSH2 0x2291 0000228c: JUMPI 0000228d: PUSH1 0x00 0000228f: DUP1 00002290: REVERT 00002291: JUMPDEST 00002292: PUSH1 0x00 00002294: DUP1 00002295: JUMPDEST 00002296: DUP7 00002297: DUP2 00002298: LT 00002299: ISZERO 0000229a: PUSH2 0x22bf 0000229d: JUMPI 0000229e: DUP3 0000229f: CALLDATALOAD 000022a0: PUSH1 0xff 000022a2: DUP2 000022a3: AND 000022a4: DUP2 000022a5: EQ 000022a6: PUSH2 0x22ad 000022a9: JUMPI 000022aa: DUP3 000022ab: DUP4 000022ac: REVERT 000022ad: JUMPDEST 000022ae: DUP6 000022af: MSTORE 000022b0: SWAP4 000022b1: DUP6 000022b2: ADD 000022b3: SWAP4 000022b4: SWAP2 000022b5: DUP6 000022b6: ADD 000022b7: SWAP2 000022b8: PUSH1 0x01 000022ba: ADD 000022bb: PUSH2 0x2295 000022be: JUMP 000022bf: JUMPDEST 000022c0: POP 000022c1: SWAP2 000022c2: SWAP9 000022c3: SWAP8 000022c4: POP 000022c5: POP 000022c6: POP 000022c7: POP 000022c8: POP 000022c9: POP 000022ca: POP 000022cb: POP 000022cc: JUMP 000022cd: JUMPDEST 000022ce: DUP1 000022cf: CALLDATALOAD 000022d0: DUP1 000022d1: ISZERO 000022d2: ISZERO 000022d3: DUP2 000022d4: EQ 000022d5: PUSH2 0x218e 000022d8: JUMPI 000022d9: PUSH1 0x00 000022db: DUP1 000022dc: REVERT 000022dd: JUMPDEST 000022de: DUP1 000022df: CALLDATALOAD 000022e0: PUSH1 0x01 000022e2: PUSH1 0x01 000022e4: PUSH1 0xe0 000022e6: SHL 000022e7: SUB 000022e8: NOT 000022e9: DUP2 000022ea: AND 000022eb: DUP2 000022ec: EQ 000022ed: PUSH2 0x218e 000022f0: JUMPI 000022f1: PUSH1 0x00 000022f3: DUP1 000022f4: REVERT 000022f5: JUMPDEST 000022f6: PUSH1 0x00 000022f8: DUP1 000022f9: DUP4 000022fa: PUSH1 0x1f 000022fc: DUP5 000022fd: ADD 000022fe: SLT 000022ff: PUSH2 0x2307 00002302: JUMPI 00002303: PUSH1 0x00 00002305: DUP1 00002306: REVERT 00002307: JUMPDEST 00002308: POP 00002309: DUP2 0000230a: CALLDATALOAD 0000230b: PUSH1 0x01 0000230d: PUSH1 0x01 0000230f: PUSH1 0x40 00002311: SHL 00002312: SUB 00002313: DUP2 00002314: GT 00002315: ISZERO 00002316: PUSH2 0x231e 00002319: JUMPI 0000231a: PUSH1 0x00 0000231c: DUP1 0000231d: REVERT 0000231e: JUMPDEST 0000231f: PUSH1 0x20 00002321: DUP4 00002322: ADD 00002323: SWAP2 00002324: POP 00002325: DUP4 00002326: PUSH1 0x20 00002328: DUP3 00002329: DUP6 0000232a: ADD 0000232b: ADD 0000232c: GT 0000232d: ISZERO 0000232e: PUSH2 0x2249 00002331: JUMPI 00002332: PUSH1 0x00 00002334: DUP1 00002335: REVERT 00002336: JUMPDEST 00002337: PUSH1 0x00 00002339: DUP3 0000233a: PUSH1 0x1f 0000233c: DUP4 0000233d: ADD 0000233e: SLT 0000233f: PUSH2 0x2347 00002342: JUMPI 00002343: PUSH1 0x00 00002345: DUP1 00002346: REVERT 00002347: JUMPDEST 00002348: DUP2 00002349: CALLDATALOAD 0000234a: PUSH1 0x01 0000234c: PUSH1 0x01 0000234e: PUSH1 0x40 00002350: SHL 00002351: SUB 00002352: DUP2 00002353: GT 00002354: ISZERO 00002355: PUSH2 0x2360 00002358: JUMPI 00002359: PUSH2 0x2360 0000235c: PUSH2 0x2af0 0000235f: JUMP 00002360: JUMPDEST 00002361: PUSH2 0x2373 00002364: PUSH1 0x1f 00002366: DUP3 00002367: ADD 00002368: PUSH1 0x1f 0000236a: NOT 0000236b: AND 0000236c: PUSH1 0x20 0000236e: ADD 0000236f: PUSH2 0x298c 00002372: JUMP 00002373: JUMPDEST 00002374: DUP2 00002375: DUP2 00002376: MSTORE 00002377: DUP5 00002378: PUSH1 0x20 0000237a: DUP4 0000237b: DUP7 0000237c: ADD 0000237d: ADD 0000237e: GT 0000237f: ISZERO 00002380: PUSH2 0x2388 00002383: JUMPI 00002384: PUSH1 0x00 00002386: DUP1 00002387: REVERT 00002388: JUMPDEST 00002389: DUP2 0000238a: PUSH1 0x20 0000238c: DUP6 0000238d: ADD 0000238e: PUSH1 0x20 00002390: DUP4 00002391: ADD 00002392: CALLDATACOPY 00002393: PUSH1 0x00 00002395: SWAP2 00002396: DUP2 00002397: ADD 00002398: PUSH1 0x20 0000239a: ADD 0000239b: SWAP2 0000239c: SWAP1 0000239d: SWAP2 0000239e: MSTORE 0000239f: SWAP4 000023a0: SWAP3 000023a1: POP 000023a2: POP 000023a3: POP 000023a4: JUMP 000023a5: JUMPDEST 000023a6: PUSH1 0x00 000023a8: PUSH1 0x20 000023aa: DUP3 000023ab: DUP5 000023ac: SUB 000023ad: SLT 000023ae: ISZERO 000023af: PUSH2 0x23b7 000023b2: JUMPI 000023b3: PUSH1 0x00 000023b5: DUP1 000023b6: REVERT 000023b7: JUMPDEST 000023b8: PUSH2 0x158a 000023bb: DUP3 000023bc: PUSH2 0x2177 000023bf: JUMP 000023c0: JUMPDEST 000023c1: PUSH1 0x00 000023c3: DUP1 000023c4: PUSH1 0x40 000023c6: DUP4 000023c7: DUP6 000023c8: SUB 000023c9: SLT 000023ca: ISZERO 000023cb: PUSH2 0x23d3 000023ce: JUMPI 000023cf: PUSH1 0x00 000023d1: DUP1 000023d2: REVERT 000023d3: JUMPDEST 000023d4: PUSH2 0x23dc 000023d7: DUP4 000023d8: PUSH2 0x2177 000023db: JUMP 000023dc: JUMPDEST 000023dd: SWAP2 000023de: POP 000023df: PUSH2 0x23ea 000023e2: PUSH1 0x20 000023e4: DUP5 000023e5: ADD 000023e6: PUSH2 0x2177 000023e9: JUMP 000023ea: JUMPDEST 000023eb: SWAP1 000023ec: POP 000023ed: SWAP3 000023ee: POP 000023ef: SWAP3 000023f0: SWAP1 000023f1: POP 000023f2: JUMP 000023f3: JUMPDEST 000023f4: PUSH1 0x00 000023f6: DUP1 000023f7: PUSH1 0x00 000023f9: DUP1 000023fa: PUSH1 0x00 000023fc: DUP1 000023fd: PUSH1 0x00 000023ff: DUP1 00002400: PUSH1 0xa0 00002402: DUP10 00002403: DUP12 00002404: SUB 00002405: SLT 00002406: ISZERO 00002407: PUSH2 0x240f 0000240a: JUMPI 0000240b: PUSH1 0x00 0000240d: DUP1 0000240e: REVERT 0000240f: JUMPDEST 00002410: PUSH2 0x2418 00002413: DUP10 00002414: PUSH2 0x2177 00002417: JUMP 00002418: JUMPDEST 00002419: SWAP8 0000241a: POP 0000241b: PUSH2 0x2426 0000241e: PUSH1 0x20 00002420: DUP11 00002421: ADD 00002422: PUSH2 0x2177 00002425: JUMP 00002426: JUMPDEST 00002427: SWAP7 00002428: POP 00002429: PUSH1 0x40 0000242b: DUP10 0000242c: ADD 0000242d: CALLDATALOAD 0000242e: PUSH1 0x01 00002430: PUSH1 0x01 00002432: PUSH1 0x40 00002434: SHL 00002435: SUB 00002436: DUP1 00002437: DUP3 00002438: GT 00002439: ISZERO 0000243a: PUSH2 0x2442 0000243d: JUMPI 0000243e: PUSH1 0x00 00002440: DUP1 00002441: REVERT 00002442: JUMPDEST 00002443: PUSH2 0x244e 00002446: DUP13 00002447: DUP4 00002448: DUP14 00002449: ADD 0000244a: PUSH2 0x2205 0000244d: JUMP 0000244e: JUMPDEST 0000244f: SWAP1 00002450: SWAP9 00002451: POP 00002452: SWAP7 00002453: POP 00002454: PUSH1 0x60 00002456: DUP12 00002457: ADD 00002458: CALLDATALOAD 00002459: SWAP2 0000245a: POP 0000245b: DUP1 0000245c: DUP3 0000245d: GT 0000245e: ISZERO 0000245f: PUSH2 0x2467 00002462: JUMPI 00002463: PUSH1 0x00 00002465: DUP1 00002466: REVERT 00002467: JUMPDEST 00002468: PUSH2 0x2473 0000246b: DUP13 0000246c: DUP4 0000246d: DUP14 0000246e: ADD 0000246f: PUSH2 0x2205 00002472: JUMP 00002473: JUMPDEST 00002474: SWAP1 00002475: SWAP7 00002476: POP 00002477: SWAP5 00002478: POP 00002479: PUSH1 0x80 0000247b: DUP12 0000247c: ADD 0000247d: CALLDATALOAD 0000247e: SWAP2 0000247f: POP 00002480: DUP1 00002481: DUP3 00002482: GT 00002483: ISZERO 00002484: PUSH2 0x248c 00002487: JUMPI 00002488: PUSH1 0x00 0000248a: DUP1 0000248b: REVERT 0000248c: JUMPDEST 0000248d: POP 0000248e: PUSH2 0x2499 00002491: DUP12 00002492: DUP3 00002493: DUP13 00002494: ADD 00002495: PUSH2 0x22f5 00002498: JUMP 00002499: JUMPDEST 0000249a: SWAP10 0000249b: SWAP13 0000249c: SWAP9 0000249d: SWAP12 0000249e: POP 0000249f: SWAP7 000024a0: SWAP10 000024a1: POP 000024a2: SWAP5 000024a3: SWAP8 000024a4: SWAP4 000024a5: SWAP7 000024a6: SWAP3 000024a7: SWAP6 000024a8: SWAP5 000024a9: POP 000024aa: POP 000024ab: POP 000024ac: JUMP 000024ad: JUMPDEST 000024ae: PUSH1 0x00 000024b0: DUP1 000024b1: PUSH1 0x00 000024b3: DUP1 000024b4: PUSH1 0x80 000024b6: DUP6 000024b7: DUP8 000024b8: SUB 000024b9: SLT 000024ba: ISZERO 000024bb: PUSH2 0x24c3 000024be: JUMPI 000024bf: PUSH1 0x00 000024c1: DUP1 000024c2: REVERT 000024c3: JUMPDEST 000024c4: PUSH2 0x24cc 000024c7: DUP6 000024c8: PUSH2 0x2177 000024cb: JUMP 000024cc: JUMPDEST 000024cd: SWAP4 000024ce: POP 000024cf: PUSH2 0x24da 000024d2: PUSH1 0x20 000024d4: DUP7 000024d5: ADD 000024d6: PUSH2 0x2177 000024d9: JUMP 000024da: JUMPDEST 000024db: SWAP3 000024dc: POP 000024dd: PUSH1 0x40 000024df: DUP6 000024e0: ADD 000024e1: CALLDATALOAD 000024e2: SWAP2 000024e3: POP 000024e4: PUSH1 0x60 000024e6: DUP6 000024e7: ADD 000024e8: CALLDATALOAD 000024e9: PUSH1 0x01 000024eb: PUSH1 0x01 000024ed: PUSH1 0x40 000024ef: SHL 000024f0: SUB 000024f1: DUP2 000024f2: GT 000024f3: ISZERO 000024f4: PUSH2 0x24fc 000024f7: JUMPI 000024f8: PUSH1 0x00 000024fa: DUP1 000024fb: REVERT 000024fc: JUMPDEST 000024fd: PUSH2 0x2508 00002500: DUP8 00002501: DUP3 00002502: DUP9 00002503: ADD 00002504: PUSH2 0x2336 00002507: JUMP 00002508: JUMPDEST 00002509: SWAP2 0000250a: POP 0000250b: POP 0000250c: SWAP3 0000250d: SWAP6 0000250e: SWAP2 0000250f: SWAP5 00002510: POP 00002511: SWAP3 00002512: POP 00002513: JUMP 00002514: JUMPDEST 00002515: PUSH1 0x00 00002517: DUP1 00002518: PUSH1 0x00 0000251a: DUP1 0000251b: PUSH1 0x00 0000251d: DUP1 0000251e: PUSH1 0xa0 00002520: DUP8 00002521: DUP10 00002522: SUB 00002523: SLT 00002524: ISZERO 00002525: PUSH2 0x252d 00002528: JUMPI 00002529: PUSH1 0x00 0000252b: DUP1 0000252c: REVERT 0000252d: JUMPDEST 0000252e: PUSH2 0x2536 00002531: DUP8 00002532: PUSH2 0x2177 00002535: JUMP 00002536: JUMPDEST 00002537: SWAP6 00002538: POP 00002539: PUSH2 0x2544 0000253c: PUSH1 0x20 0000253e: DUP9 0000253f: ADD 00002540: PUSH2 0x2177 00002543: JUMP 00002544: JUMPDEST 00002545: SWAP5 00002546: POP 00002547: PUSH1 0x40 00002549: DUP8 0000254a: ADD 0000254b: CALLDATALOAD 0000254c: SWAP4 0000254d: POP 0000254e: PUSH1 0x60 00002550: DUP8 00002551: ADD 00002552: CALLDATALOAD 00002553: SWAP3 00002554: POP 00002555: PUSH1 0x80 00002557: DUP8 00002558: ADD 00002559: CALLDATALOAD 0000255a: PUSH1 0x01 0000255c: PUSH1 0x01 0000255e: PUSH1 0x40 00002560: SHL 00002561: SUB 00002562: DUP2 00002563: GT 00002564: ISZERO 00002565: PUSH2 0x256d 00002568: JUMPI 00002569: PUSH1 0x00 0000256b: DUP1 0000256c: REVERT 0000256d: JUMPDEST 0000256e: PUSH2 0x2579 00002571: DUP10 00002572: DUP3 00002573: DUP11 00002574: ADD 00002575: PUSH2 0x22f5 00002578: JUMP 00002579: JUMPDEST 0000257a: SWAP8 0000257b: SWAP11 0000257c: SWAP7 0000257d: SWAP10 0000257e: POP 0000257f: SWAP5 00002580: SWAP8 00002581: POP 00002582: SWAP3 00002583: SWAP6 00002584: SWAP4 00002585: SWAP5 00002586: SWAP3 00002587: POP 00002588: POP 00002589: POP 0000258a: JUMP 0000258b: JUMPDEST 0000258c: PUSH1 0x00 0000258e: DUP1 0000258f: PUSH1 0x00 00002591: PUSH1 0x60 00002593: DUP5 00002594: DUP7 00002595: SUB 00002596: SLT 00002597: ISZERO 00002598: PUSH2 0x25a0 0000259b: JUMPI 0000259c: PUSH1 0x00 0000259e: DUP1 0000259f: REVERT 000025a0: JUMPDEST 000025a1: PUSH2 0x25a9 000025a4: DUP5 000025a5: PUSH2 0x2177 000025a8: JUMP 000025a9: JUMPDEST 000025aa: SWAP3 000025ab: POP 000025ac: PUSH1 0x20 000025ae: DUP5 000025af: ADD 000025b0: CALLDATALOAD 000025b1: SWAP2 000025b2: POP 000025b3: PUSH1 0x40 000025b5: DUP5 000025b6: ADD 000025b7: CALLDATALOAD 000025b8: PUSH1 0x01 000025ba: PUSH1 0x01 000025bc: PUSH1 0x40 000025be: SHL 000025bf: SUB 000025c0: DUP2 000025c1: GT 000025c2: ISZERO 000025c3: PUSH2 0x25cb 000025c6: JUMPI 000025c7: PUSH1 0x00 000025c9: DUP1 000025ca: REVERT 000025cb: JUMPDEST 000025cc: PUSH2 0x25d7 000025cf: DUP7 000025d0: DUP3 000025d1: DUP8 000025d2: ADD 000025d3: PUSH2 0x2336 000025d6: JUMP 000025d7: JUMPDEST 000025d8: SWAP2 000025d9: POP 000025da: POP 000025db: SWAP3 000025dc: POP 000025dd: SWAP3 000025de: POP 000025df: SWAP3 000025e0: JUMP 000025e1: JUMPDEST 000025e2: PUSH1 0x00 000025e4: DUP1 000025e5: PUSH1 0x00 000025e7: DUP1 000025e8: PUSH1 0x00 000025ea: DUP1 000025eb: PUSH1 0x00 000025ed: PUSH1 0xe0 000025ef: DUP9 000025f0: DUP11 000025f1: SUB 000025f2: SLT 000025f3: ISZERO 000025f4: PUSH2 0x25fc 000025f7: JUMPI 000025f8: PUSH1 0x00 000025fa: DUP1 000025fb: REVERT 000025fc: JUMPDEST 000025fd: PUSH2 0x2605 00002600: DUP9 00002601: PUSH2 0x2177 00002604: JUMP 00002605: JUMPDEST 00002606: SWAP7 00002607: POP 00002608: PUSH1 0x20 0000260a: DUP9 0000260b: ADD 0000260c: CALLDATALOAD 0000260d: SWAP6 0000260e: POP 0000260f: PUSH1 0x40 00002611: DUP9 00002612: ADD 00002613: CALLDATALOAD 00002614: PUSH1 0x01 00002616: PUSH1 0x01 00002618: PUSH1 0x40 0000261a: SHL 0000261b: SUB 0000261c: DUP1 0000261d: DUP3 0000261e: GT 0000261f: ISZERO 00002620: PUSH2 0x2628 00002623: JUMPI 00002624: PUSH1 0x00 00002626: DUP1 00002627: REVERT 00002628: JUMPDEST 00002629: PUSH2 0x2634 0000262c: DUP12 0000262d: DUP4 0000262e: DUP13 0000262f: ADD 00002630: PUSH2 0x2336 00002633: JUMP 00002634: JUMPDEST 00002635: SWAP7 00002636: POP 00002637: PUSH1 0x60 00002639: DUP11 0000263a: ADD 0000263b: CALLDATALOAD 0000263c: SWAP6 0000263d: POP 0000263e: PUSH1 0x80 00002640: DUP11 00002641: ADD 00002642: CALLDATALOAD 00002643: SWAP2 00002644: POP 00002645: DUP1 00002646: DUP3 00002647: GT 00002648: ISZERO 00002649: PUSH2 0x2651 0000264c: JUMPI 0000264d: PUSH1 0x00 0000264f: DUP1 00002650: REVERT 00002651: JUMPDEST 00002652: PUSH2 0x265d 00002655: DUP12 00002656: DUP4 00002657: DUP13 00002658: ADD 00002659: PUSH2 0x2193 0000265c: JUMP 0000265d: JUMPDEST 0000265e: SWAP5 0000265f: POP 00002660: PUSH1 0xa0 00002662: DUP11 00002663: ADD 00002664: CALLDATALOAD 00002665: SWAP2 00002666: POP 00002667: DUP1 00002668: DUP3 00002669: GT 0000266a: ISZERO 0000266b: PUSH2 0x2673 0000266e: JUMPI 0000266f: PUSH1 0x00 00002671: DUP1 00002672: REVERT 00002673: JUMPDEST 00002674: PUSH2 0x267f 00002677: DUP12 00002678: DUP4 00002679: DUP13 0000267a: ADD 0000267b: PUSH2 0x2193 0000267e: JUMP 0000267f: JUMPDEST 00002680: SWAP4 00002681: POP 00002682: PUSH1 0xc0 00002684: DUP11 00002685: ADD 00002686: CALLDATALOAD 00002687: SWAP2 00002688: POP 00002689: DUP1 0000268a: DUP3 0000268b: GT 0000268c: ISZERO 0000268d: PUSH2 0x2695 00002690: JUMPI 00002691: PUSH1 0x00 00002693: DUP1 00002694: REVERT 00002695: JUMPDEST 00002696: POP 00002697: PUSH2 0x26a2 0000269a: DUP11 0000269b: DUP3 0000269c: DUP12 0000269d: ADD 0000269e: PUSH2 0x2250 000026a1: JUMP 000026a2: JUMPDEST 000026a3: SWAP2 000026a4: POP 000026a5: POP 000026a6: SWAP3 000026a7: SWAP6 000026a8: SWAP9 000026a9: SWAP2 000026aa: SWAP5 000026ab: SWAP8 000026ac: POP 000026ad: SWAP3 000026ae: SWAP6 000026af: POP 000026b0: JUMP 000026b1: JUMPDEST 000026b2: PUSH1 0x00 000026b4: DUP1 000026b5: PUSH1 0x00 000026b7: PUSH1 0x60 000026b9: DUP5 000026ba: DUP7 000026bb: SUB 000026bc: SLT 000026bd: ISZERO 000026be: PUSH2 0x26c6 000026c1: JUMPI 000026c2: PUSH1 0x00 000026c4: DUP1 000026c5: REVERT 000026c6: JUMPDEST 000026c7: DUP4 000026c8: CALLDATALOAD 000026c9: PUSH1 0x01 000026cb: PUSH1 0x01 000026cd: PUSH1 0x40 000026cf: SHL 000026d0: SUB 000026d1: DUP2 000026d2: GT 000026d3: ISZERO 000026d4: PUSH2 0x26dc 000026d7: JUMPI 000026d8: PUSH1 0x00 000026da: DUP1 000026db: REVERT 000026dc: JUMPDEST 000026dd: DUP5 000026de: ADD 000026df: PUSH1 0x1f 000026e1: DUP2 000026e2: ADD 000026e3: DUP7 000026e4: SGT 000026e5: PUSH2 0x26ed 000026e8: JUMPI 000026e9: PUSH1 0x00 000026eb: DUP1 000026ec: REVERT 000026ed: JUMPDEST 000026ee: DUP1 000026ef: CALLDATALOAD 000026f0: PUSH1 0x20 000026f2: PUSH2 0x26fd 000026f5: PUSH2 0x21b4 000026f8: DUP4 000026f9: PUSH2 0x29bc 000026fc: JUMP 000026fd: JUMPDEST 000026fe: DUP1 000026ff: DUP4 00002700: DUP3 00002701: MSTORE 00002702: DUP3 00002703: DUP3 00002704: ADD 00002705: SWAP2 00002706: POP 00002707: DUP3 00002708: DUP6 00002709: ADD 0000270a: DUP11 0000270b: DUP5 0000270c: DUP7 0000270d: PUSH1 0x05 0000270f: SHL 00002710: DUP9 00002711: ADD 00002712: ADD 00002713: GT 00002714: ISZERO 00002715: PUSH2 0x271d 00002718: JUMPI 00002719: PUSH1 0x00 0000271b: DUP1 0000271c: REVERT 0000271d: JUMPDEST 0000271e: PUSH1 0x00 00002720: SWAP6 00002721: POP 00002722: JUMPDEST 00002723: DUP5 00002724: DUP7 00002725: LT 00002726: ISZERO 00002727: PUSH2 0x2747 0000272a: JUMPI 0000272b: PUSH2 0x2733 0000272e: DUP2 0000272f: PUSH2 0x2177 00002732: JUMP 00002733: JUMPDEST 00002734: DUP4 00002735: MSTORE 00002736: PUSH1 0x01 00002738: SWAP6 00002739: SWAP1 0000273a: SWAP6 0000273b: ADD 0000273c: SWAP5 0000273d: SWAP2 0000273e: DUP4 0000273f: ADD 00002740: SWAP2 00002741: DUP4 00002742: ADD 00002743: PUSH2 0x2722 00002746: JUMP 00002747: JUMPDEST 00002748: POP 00002749: SWAP7 0000274a: POP 0000274b: POP 0000274c: DUP7 0000274d: ADD 0000274e: CALLDATALOAD 0000274f: SWAP4 00002750: POP 00002751: PUSH2 0x275f 00002754: SWAP2 00002755: POP 00002756: POP 00002757: PUSH1 0x40 00002759: DUP6 0000275a: ADD 0000275b: PUSH2 0x22cd 0000275e: JUMP 0000275f: JUMPDEST 00002760: SWAP1 00002761: POP 00002762: SWAP3 00002763: POP 00002764: SWAP3 00002765: POP 00002766: SWAP3 00002767: JUMP 00002768: JUMPDEST 00002769: PUSH1 0x00 0000276b: DUP1 0000276c: PUSH1 0x40 0000276e: DUP4 0000276f: DUP6 00002770: SUB 00002771: SLT 00002772: ISZERO 00002773: PUSH2 0x277b 00002776: JUMPI 00002777: PUSH1 0x00 00002779: DUP1 0000277a: REVERT 0000277b: JUMPDEST 0000277c: PUSH2 0x2784 0000277f: DUP4 00002780: PUSH2 0x22cd 00002783: JUMP 00002784: JUMPDEST 00002785: SWAP2 00002786: POP 00002787: PUSH2 0x23ea 0000278a: PUSH1 0x20 0000278c: DUP5 0000278d: ADD 0000278e: PUSH2 0x22cd 00002791: JUMP 00002792: JUMPDEST 00002793: PUSH1 0x00 00002795: PUSH1 0x20 00002797: DUP3 00002798: DUP5 00002799: SUB 0000279a: SLT 0000279b: ISZERO 0000279c: PUSH2 0x27a4 0000279f: JUMPI 000027a0: PUSH1 0x00 000027a2: DUP1 000027a3: REVERT 000027a4: JUMPDEST 000027a5: PUSH2 0x158a 000027a8: DUP3 000027a9: PUSH2 0x22dd 000027ac: JUMP 000027ad: JUMPDEST 000027ae: PUSH1 0x00 000027b0: DUP1 000027b1: PUSH1 0x40 000027b3: DUP4 000027b4: DUP6 000027b5: SUB 000027b6: SLT 000027b7: ISZERO 000027b8: PUSH2 0x27c0 000027bb: JUMPI 000027bc: PUSH1 0x00 000027be: DUP1 000027bf: REVERT 000027c0: JUMPDEST 000027c1: PUSH2 0x2784 000027c4: DUP4 000027c5: PUSH2 0x22dd 000027c8: JUMP 000027c9: JUMPDEST 000027ca: PUSH1 0x00 000027cc: PUSH1 0x20 000027ce: DUP3 000027cf: DUP5 000027d0: SUB 000027d1: SLT 000027d2: ISZERO 000027d3: PUSH2 0x27db 000027d6: JUMPI 000027d7: PUSH1 0x00 000027d9: DUP1 000027da: REVERT 000027db: JUMPDEST 000027dc: POP 000027dd: CALLDATALOAD 000027de: SWAP2 000027df: SWAP1 000027e0: POP 000027e1: JUMP 000027e2: JUMPDEST 000027e3: PUSH1 0x00 000027e5: DUP1 000027e6: PUSH1 0x40 000027e8: DUP4 000027e9: DUP6 000027ea: SUB 000027eb: SLT 000027ec: ISZERO 000027ed: PUSH2 0x27f5 000027f0: JUMPI 000027f1: PUSH1 0x00 000027f3: DUP1 000027f4: REVERT 000027f5: JUMPDEST 000027f6: DUP3 000027f7: CALLDATALOAD 000027f8: SWAP2 000027f9: POP 000027fa: PUSH2 0x23ea 000027fd: PUSH1 0x20 000027ff: DUP5 00002800: ADD 00002801: PUSH2 0x2177 00002804: JUMP 00002805: JUMPDEST 00002806: PUSH1 0x00 00002808: DUP1 00002809: PUSH1 0x00 0000280b: DUP1 0000280c: PUSH1 0x80 0000280e: DUP6 0000280f: DUP8 00002810: SUB 00002811: SLT 00002812: ISZERO 00002813: PUSH2 0x281b 00002816: JUMPI 00002817: PUSH1 0x00 00002819: DUP1 0000281a: REVERT 0000281b: JUMPDEST 0000281c: DUP5 0000281d: CALLDATALOAD 0000281e: SWAP4 0000281f: POP 00002820: PUSH1 0x20 00002822: DUP6 00002823: ADD 00002824: CALLDATALOAD 00002825: SWAP3 00002826: POP 00002827: PUSH2 0x2832 0000282a: PUSH1 0x40 0000282c: DUP7 0000282d: ADD 0000282e: PUSH2 0x22cd 00002831: JUMP 00002832: JUMPDEST 00002833: SWAP2 00002834: POP 00002835: PUSH2 0x2840 00002838: PUSH1 0x60 0000283a: DUP7 0000283b: ADD 0000283c: PUSH2 0x22cd 0000283f: JUMP 00002840: JUMPDEST 00002841: SWAP1 00002842: POP 00002843: SWAP3 00002844: SWAP6 00002845: SWAP2 00002846: SWAP5 00002847: POP 00002848: SWAP3 00002849: POP 0000284a: JUMP 0000284b: JUMPDEST 0000284c: PUSH1 0x00 0000284e: DUP3 0000284f: MLOAD 00002850: PUSH2 0x285d 00002853: DUP2 00002854: DUP5 00002855: PUSH1 0x20 00002857: DUP8 00002858: ADD 00002859: PUSH2 0x2a0e 0000285c: JUMP 0000285d: JUMPDEST 0000285e: SWAP2 0000285f: SWAP1 00002860: SWAP2 00002861: ADD 00002862: SWAP3 00002863: SWAP2 00002864: POP 00002865: POP 00002866: JUMP 00002867: JUMPDEST 00002868: PUSH1 0x01 0000286a: DUP1 0000286b: PUSH1 0xa0 0000286d: SHL 0000286e: SUB 0000286f: DUP6 00002870: AND 00002871: DUP2 00002872: MSTORE 00002873: DUP4 00002874: PUSH1 0x20 00002876: DUP3 00002877: ADD 00002878: MSTORE 00002879: PUSH1 0x80 0000287b: PUSH1 0x40 0000287d: DUP3 0000287e: ADD 0000287f: MSTORE 00002880: PUSH1 0x00 00002882: DUP4 00002883: MLOAD 00002884: DUP1 00002885: PUSH1 0x80 00002887: DUP5 00002888: ADD 00002889: MSTORE 0000288a: PUSH2 0x289a 0000288d: DUP2 0000288e: PUSH1 0xa0 00002890: DUP6 00002891: ADD 00002892: PUSH1 0x20 00002894: DUP9 00002895: ADD 00002896: PUSH2 0x2a0e 00002899: JUMP 0000289a: JUMPDEST 0000289b: SWAP3 0000289c: ISZERO 0000289d: ISZERO 0000289e: PUSH1 0x60 000028a0: DUP4 000028a1: ADD 000028a2: MSTORE 000028a3: POP 000028a4: PUSH1 0x1f 000028a6: SWAP2 000028a7: SWAP1 000028a8: SWAP2 000028a9: ADD 000028aa: PUSH1 0x1f 000028ac: NOT 000028ad: AND 000028ae: ADD 000028af: PUSH1 0xa0 000028b1: ADD 000028b2: SWAP4 000028b3: SWAP3 000028b4: POP 000028b5: POP 000028b6: POP 000028b7: JUMP 000028b8: JUMPDEST 000028b9: PUSH1 0x20 000028bb: DUP1 000028bc: DUP3 000028bd: MSTORE 000028be: DUP3 000028bf: MLOAD 000028c0: DUP3 000028c1: DUP3 000028c2: ADD 000028c3: DUP2 000028c4: SWAP1 000028c5: MSTORE 000028c6: PUSH1 0x00 000028c8: SWAP2 000028c9: SWAP1 000028ca: DUP5 000028cb: DUP3 000028cc: ADD 000028cd: SWAP1 000028ce: PUSH1 0x40 000028d0: DUP6 000028d1: ADD 000028d2: SWAP1 000028d3: DUP5 000028d4: JUMPDEST 000028d5: DUP2 000028d6: DUP2 000028d7: LT 000028d8: ISZERO 000028d9: PUSH2 0x28f9 000028dc: JUMPI 000028dd: DUP4 000028de: MLOAD 000028df: PUSH1 0x01 000028e1: PUSH1 0x01 000028e3: PUSH1 0xa0 000028e5: SHL 000028e6: SUB 000028e7: AND 000028e8: DUP4 000028e9: MSTORE 000028ea: SWAP3 000028eb: DUP5 000028ec: ADD 000028ed: SWAP3 000028ee: SWAP2 000028ef: DUP5 000028f0: ADD 000028f1: SWAP2 000028f2: PUSH1 0x01 000028f4: ADD 000028f5: PUSH2 0x28d4 000028f8: JUMP 000028f9: JUMPDEST 000028fa: POP 000028fb: SWAP1 000028fc: SWAP7 000028fd: SWAP6 000028fe: POP 000028ff: POP 00002900: POP 00002901: POP 00002902: POP 00002903: POP 00002904: JUMP 00002905: JUMPDEST 00002906: PUSH1 0x60 00002908: DUP2 00002909: ADD 0000290a: DUP2 0000290b: DUP4 0000290c: PUSH1 0x00 0000290e: JUMPDEST 0000290f: PUSH1 0x03 00002911: DUP2 00002912: LT 00002913: ISZERO 00002914: PUSH2 0x292d 00002917: JUMPI 00002918: DUP2 00002919: MLOAD 0000291a: DUP4 0000291b: MSTORE 0000291c: PUSH1 0x20 0000291e: SWAP3 0000291f: DUP4 00002920: ADD 00002921: SWAP3 00002922: SWAP1 00002923: SWAP2 00002924: ADD 00002925: SWAP1 00002926: PUSH1 0x01 00002928: ADD 00002929: PUSH2 0x290e 0000292c: JUMP 0000292d: JUMPDEST 0000292e: POP 0000292f: POP 00002930: POP 00002931: SWAP3 00002932: SWAP2 00002933: POP 00002934: POP 00002935: JUMP 00002936: JUMPDEST 00002937: PUSH1 0x20 00002939: DUP1 0000293a: DUP3 0000293b: MSTORE 0000293c: DUP3 0000293d: MLOAD 0000293e: DUP3 0000293f: DUP3 00002940: ADD 00002941: DUP2 00002942: SWAP1 00002943: MSTORE 00002944: PUSH1 0x00 00002946: SWAP2 00002947: SWAP1 00002948: DUP5 00002949: DUP3 0000294a: ADD 0000294b: SWAP1 0000294c: PUSH1 0x40 0000294e: DUP6 0000294f: ADD 00002950: SWAP1 00002951: DUP5 00002952: JUMPDEST 00002953: DUP2 00002954: DUP2 00002955: LT 00002956: ISZERO 00002957: PUSH2 0x28f9 0000295a: JUMPI 0000295b: DUP4 0000295c: MLOAD 0000295d: DUP4 0000295e: MSTORE 0000295f: SWAP3 00002960: DUP5 00002961: ADD 00002962: SWAP3 00002963: SWAP2 00002964: DUP5 00002965: ADD 00002966: SWAP2 00002967: PUSH1 0x01 00002969: ADD 0000296a: PUSH2 0x2952 0000296d: JUMP 0000296e: JUMPDEST 0000296f: PUSH1 0x20 00002971: DUP1 00002972: DUP3 00002973: MSTORE 00002974: PUSH1 0x04 00002976: SWAP1 00002977: DUP3 00002978: ADD 00002979: MSTORE 0000297a: PUSH4 0x4d533031 0000297f: PUSH1 0xe0 00002981: SHL 00002982: PUSH1 0x40 00002984: DUP3 00002985: ADD 00002986: MSTORE 00002987: PUSH1 0x60 00002989: ADD 0000298a: SWAP1 0000298b: JUMP 0000298c: JUMPDEST 0000298d: PUSH1 0x40 0000298f: MLOAD 00002990: PUSH1 0x1f 00002992: DUP3 00002993: ADD 00002994: PUSH1 0x1f 00002996: NOT 00002997: AND 00002998: DUP2 00002999: ADD 0000299a: PUSH1 0x01 0000299c: PUSH1 0x01 0000299e: PUSH1 0x40 000029a0: SHL 000029a1: SUB 000029a2: DUP2 000029a3: GT 000029a4: DUP3 000029a5: DUP3 000029a6: LT 000029a7: OR 000029a8: ISZERO 000029a9: PUSH2 0x29b4 000029ac: JUMPI 000029ad: PUSH2 0x29b4 000029b0: PUSH2 0x2af0 000029b3: JUMP 000029b4: JUMPDEST 000029b5: PUSH1 0x40 000029b7: MSTORE 000029b8: SWAP2 000029b9: SWAP1 000029ba: POP 000029bb: JUMP 000029bc: JUMPDEST 000029bd: PUSH1 0x00 000029bf: PUSH1 0x01 000029c1: PUSH1 0x01 000029c3: PUSH1 0x40 000029c5: SHL 000029c6: SUB 000029c7: DUP3 000029c8: GT 000029c9: ISZERO 000029ca: PUSH2 0x29d5 000029cd: JUMPI 000029ce: PUSH2 0x29d5 000029d1: PUSH2 0x2af0 000029d4: JUMP 000029d5: JUMPDEST 000029d6: POP 000029d7: PUSH1 0x05 000029d9: SHL 000029da: PUSH1 0x20 000029dc: ADD 000029dd: SWAP1 000029de: JUMP 000029df: JUMPDEST 000029e0: PUSH1 0x00 000029e2: DUP3 000029e3: NOT 000029e4: DUP3 000029e5: GT 000029e6: ISZERO 000029e7: PUSH2 0x29f2 000029ea: JUMPI 000029eb: PUSH2 0x29f2 000029ee: PUSH2 0x2aae 000029f1: JUMP 000029f2: JUMPDEST 000029f3: POP 000029f4: ADD 000029f5: SWAP1 000029f6: JUMP 000029f7: JUMPDEST 000029f8: PUSH1 0x00 000029fa: DUP3 000029fb: DUP3 000029fc: LT 000029fd: ISZERO 000029fe: PUSH2 0x2a09 00002a01: JUMPI 00002a02: PUSH2 0x2a09 00002a05: PUSH2 0x2aae 00002a08: JUMP 00002a09: JUMPDEST 00002a0a: POP 00002a0b: SUB 00002a0c: SWAP1 00002a0d: JUMP 00002a0e: JUMPDEST 00002a0f: PUSH1 0x00 00002a11: JUMPDEST 00002a12: DUP4 00002a13: DUP2 00002a14: LT 00002a15: ISZERO 00002a16: PUSH2 0x2a29 00002a19: JUMPI 00002a1a: DUP2 00002a1b: DUP2 00002a1c: ADD 00002a1d: MLOAD 00002a1e: DUP4 00002a1f: DUP3 00002a20: ADD 00002a21: MSTORE 00002a22: PUSH1 0x20 00002a24: ADD 00002a25: PUSH2 0x2a11 00002a28: JUMP 00002a29: JUMPDEST 00002a2a: DUP4 00002a2b: DUP2 00002a2c: GT 00002a2d: ISZERO 00002a2e: PUSH2 0x2a38 00002a31: JUMPI 00002a32: PUSH1 0x00 00002a34: DUP5 00002a35: DUP5 00002a36: ADD 00002a37: MSTORE 00002a38: JUMPDEST 00002a39: POP 00002a3a: POP 00002a3b: POP 00002a3c: POP 00002a3d: JUMP 00002a3e: JUMPDEST 00002a3f: PUSH1 0x01 00002a41: DUP2 00002a42: DUP2 00002a43: SHR 00002a44: SWAP1 00002a45: DUP3 00002a46: AND 00002a47: DUP1 00002a48: PUSH2 0x2a52 00002a4b: JUMPI 00002a4c: PUSH1 0x7f 00002a4e: DUP3 00002a4f: AND 00002a50: SWAP2 00002a51: POP 00002a52: JUMPDEST 00002a53: PUSH1 0x20 00002a55: DUP3 00002a56: LT 00002a57: DUP2 00002a58: EQ 00002a59: ISZERO 00002a5a: PUSH2 0x0b70 00002a5d: JUMPI 00002a5e: PUSH4 0x4e487b71 00002a63: PUSH1 0xe0 00002a65: SHL 00002a66: PUSH1 0x00 00002a68: MSTORE 00002a69: PUSH1 0x22 00002a6b: PUSH1 0x04 00002a6d: MSTORE 00002a6e: PUSH1 0x24 00002a70: PUSH1 0x00 00002a72: REVERT 00002a73: JUMPDEST 00002a74: PUSH1 0x00 00002a76: PUSH1 0x00 00002a78: NOT 00002a79: DUP3 00002a7a: EQ 00002a7b: ISZERO 00002a7c: PUSH2 0x2a87 00002a7f: JUMPI 00002a80: PUSH2 0x2a87 00002a83: PUSH2 0x2aae 00002a86: JUMP 00002a87: JUMPDEST 00002a88: POP 00002a89: PUSH1 0x01 00002a8b: ADD 00002a8c: SWAP1 00002a8d: JUMP 00002a8e: JUMPDEST 00002a8f: PUSH1 0x00 00002a91: PUSH1 0xff 00002a93: DUP3 00002a94: AND 00002a95: PUSH1 0xff 00002a97: DUP2 00002a98: EQ 00002a99: ISZERO 00002a9a: PUSH2 0x2aa5 00002a9d: JUMPI 00002a9e: PUSH2 0x2aa5 00002aa1: PUSH2 0x2aae 00002aa4: JUMP 00002aa5: JUMPDEST 00002aa6: PUSH1 0x01 00002aa8: ADD 00002aa9: SWAP3 00002aaa: SWAP2 00002aab: POP 00002aac: POP 00002aad: JUMP 00002aae: JUMPDEST 00002aaf: PUSH4 0x4e487b71 00002ab4: PUSH1 0xe0 00002ab6: SHL 00002ab7: PUSH1 0x00 00002ab9: MSTORE 00002aba: PUSH1 0x11 00002abc: PUSH1 0x04 00002abe: MSTORE 00002abf: PUSH1 0x24 00002ac1: PUSH1 0x00 00002ac3: REVERT 00002ac4: JUMPDEST 00002ac5: PUSH4 0x4e487b71 00002aca: PUSH1 0xe0 00002acc: SHL 00002acd: PUSH1 0x00 00002acf: MSTORE 00002ad0: PUSH1 0x31 00002ad2: PUSH1 0x04 00002ad4: MSTORE 00002ad5: PUSH1 0x24 00002ad7: PUSH1 0x00 00002ad9: REVERT 00002ada: JUMPDEST 00002adb: PUSH4 0x4e487b71 00002ae0: PUSH1 0xe0 00002ae2: SHL 00002ae3: PUSH1 0x00 00002ae5: MSTORE 00002ae6: PUSH1 0x32 00002ae8: PUSH1 0x04 00002aea: MSTORE 00002aeb: PUSH1 0x24 00002aed: PUSH1 0x00 00002aef: REVERT 00002af0: JUMPDEST 00002af1: PUSH4 0x4e487b71 00002af6: PUSH1 0xe0 00002af8: SHL 00002af9: PUSH1 0x00 00002afb: MSTORE 00002afc: PUSH1 0x41 00002afe: PUSH1 0x04 00002b00: MSTORE 00002b01: PUSH1 0x24 00002b03: PUSH1 0x00 00002b05: REVERT 00002b06: INVALID 00002b07: LOG2 00002b08: PUSH5 0x6970667358 00002b0e: UNKNOWN(0x22) 00002b0f: SLT 00002b10: KECCAK256 00002b11: SWAP7 00002b12: SWAP15 00002b13: SSTORE 00002b14: UNKNOWN(0xEB) 00002b15: CALL 00002b16: UNKNOWN(0xFC) 00002b17: PUSH3 0x4bdb3e 00002b1b: LOG1 00002b1c: UNKNOWN(0x4D) 00002b1d: SWAP4 00002b1e: UNKNOWN(0x21) 00002b1f: UNKNOWN(0xA7) 00002b20: UNKNOWN(0xC4) 00002b21: EXTCODESIZE 00002b22: UNKNOWN(0x23) 00002b23: DUP14 00002b24: UNKNOWN(0xAA) 00002b25: UNKNOWN(0xBF) 00002b26: PUSH31
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | reentrancy | codex | executeTxWithPermits allows reentrant double-execution of the same transaction | 85 | no | — |
viewevidence_json{
"evidence": "executeTxWithPermits calls executeTransactionInner, which performs destination.call{value:value}(data) before setting executed (contracts/Contract.sol:1367-1387). During that external call, a destination that is also an owner and already confirmed can reenter executeTransaction (contracts/Contract.sol:1027-1037) while notExecuted still passes, causing a second transfer.",
"locations": [
"contracts/Contract.sol:1323",
"contracts/Contract.sol:1367",
"contracts/Contract.sol:1382",
"contracts/Contract.sol:1387",
"contracts/Contract.sol:1027"
],
"recommendation": "Set transactions[transactionId].executed = true before the external call (and revert/reset on failure) or reuse executeTransaction\u2019s checks-effects-interactions flow; additionally add a reentrancy guard around executeTxWithPermits/executeTransactionInner.",
"exploit_scenario": "1) Attacker controls an owner contract and obtains the required off-chain signatures for a transaction that sends X ETH to that contract (nonce = current transactionCount). 2) The owner contract calls executeTxWithPermits with destination = itself and the collected signatures. 3) executeTransactionInner makes the external call before marking the transaction executed; in the destination fallback, the attacker reenters and calls executeTransaction(transactionId) (the transactionId equals the nonce passed). 4) Because confirmations for the attacker contract are already set and executed is still false, executeTransaction succeeds and transfers X again. 5) Net payout is 2X in one tx; profit is the extra X. With X <= walletBalance/2 the attacker can drain up to the full wallet ETH balance (repeat for full drain)."
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x013b38413b0dd0164efd8126dcb18a58dba12954e0ca97b8f4a11109be403e14
call_targets:
0x471756ad2124b04dc1c5c364ee6a9e29f8c3f67a
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x013b38413b0dd0164efd8126dcb18a58dba12954e0ca97b8f4a11109be403e14",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x471756ad2124b04dc1c5c364ee6a9e29f8c3f67a"
],
"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": "0xdc8452cd",
"selector": "0xdc8452cd",
"calldata_variants": [
"0xdc8452cd",
"0xdc8452cd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe20056e6",
"selector": "0xe20056e6",
"calldata_variants": [
"0xe20056e6",
"0xe20056e60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xee22610b",
"selector": "0xee22610b",
"calldata_variants": [
"0xee22610b",
"0xee22610b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf23a6e61",
"selector": "0xf23a6e61",
"calldata_variants": [
"0xf23a6e61",
"0xf23a6e610000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbc197c81",
"selector": "0xbc197c81",
"calldata_variants": [
"0xbc197c81",
"0xbc197c810000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc01a8c84",
"selector": "0xc01a8c84",
"calldata_variants": [
"0xc01a8c84",
"0xc01a8c840000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc6427474",
"selector": "0xc6427474",
"calldata_variants": [
"0xc6427474",
"0xc64274740000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd74f8edd",
"selector": "0xd74f8edd",
"calldata_variants": [
"0xd74f8edd",
"0xd74f8edd0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 7520,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 8286,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 11029,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 3,
"guards_detected": []
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x013b38413b0dd0164efd8126dcb18a58dba12954e0ca97b8f4a11109be403e14
call_targets:
0x471756ad2124b04dc1c5c364ee6a9e29f8c3f67a
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x013b38413b0dd0164efd8126dcb18a58dba12954e0ca97b8f4a11109be403e14",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x471756ad2124b04dc1c5c364ee6a9e29f8c3f67a"
],
"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": "0xdc8452cd",
"selector": "0xdc8452cd",
"calldata_variants": [
"0xdc8452cd",
"0xdc8452cd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe20056e6",
"selector": "0xe20056e6",
"calldata_variants": [
"0xe20056e6",
"0xe20056e60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xee22610b",
"selector": "0xee22610b",
"calldata_variants": [
"0xee22610b",
"0xee22610b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf23a6e61",
"selector": "0xf23a6e61",
"calldata_variants": [
"0xf23a6e61",
"0xf23a6e610000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbc197c81",
"selector": "0xbc197c81",
"calldata_variants": [
"0xbc197c81",
"0xbc197c810000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc01a8c84",
"selector": "0xc01a8c84",
"calldata_variants": [
"0xc01a8c84",
"0xc01a8c840000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc6427474",
"selector": "0xc6427474",
"calldata_variants": [
"0xc6427474",
"0xc64274740000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd74f8edd",
"selector": "0xd74f8edd",
"calldata_variants": [
"0xd74f8edd",
"0xd74f8edd0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 7520,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 8286,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 11029,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 3,
"guards_detected": [],
"untrusted_call_count": 3
}
|