019bb004-7b4d-7161-b0f8-f40aa9087df9
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 |
|---|---|---|---|---|
| 39423 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 39424 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 39425 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 39426 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 39427 | capability.graph | complete | 1 / 3 | 3 months ago |
| 39428 | detector.run | complete | 1 / 3 | 3 months ago |
| 39429 | validation.fork | complete | 1 / 3 | 3 months ago |
| 39519 | report.consolidate | complete | 1 / 6 | 3 months ago |
{
"status": "not_proxy"
}
No slither job recorded yet.
{"no_findings":false,"summary":"Found an accounting mismatch for fee-on-transfer/deflationary tokens that can make internal balances exceed actual holdings, enabling insolvency or value extraction from other users.","findings":[{"severity":"medium","category":"math","title":"Deposits credit the requested amount instead of actual tokens received","exploit_scenario":"If a fee-on-transfer/deflationary token is deposited (e.g., 10% transfer fee), the exchange receives fewer tokens than `amount` but credits the full `amount` to the user’s internal balance. An attacker can deposit such a token, then later withdraw the credited amount when other users have deposited the same token, effectively extracting the shortfall from the pool and leaving the exchange insolvent for remaining users.","recommendation":"When accepting ERC20 tokens, compute the actual amount received using balance-before/balance-after and credit only the delta. Alternatively, explicitly reject/denylist fee-on-transfer tokens or use an allowlist of supported tokens.","evidence":"Both deposit paths call `transferFrom` and then unconditionally add `amount` to the internal balance without verifying the received amount.","locations":["contracts/Contract.sol:244","contracts/Contract.sol:247","contracts/Contract.sol:249","contracts/Contract.sol:510","contracts/Contract.sol:515","contracts/Contract.sol:517"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-6gjfaz_9
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb03c-9546-7052-ae24-9c6f94b0787c
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers
thinking
**Preparing to audit with file read**
exec
/bin/bash -lc ls in /tmp/codex-6gjfaz_9 succeeded in 5ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
exec
/bin/bash -lc 'wc -l AUDIT_BUNDLE.txt' in /tmp/codex-6gjfaz_9 succeeded in 11ms:
527 AUDIT_BUNDLE.txt
exec
/bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-6gjfaz_9 succeeded in 6ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.
================================================================================
FILE: contracts/Contract.sol
================================================================================
pragma solidity ^0.4.23;
pragma solidity ^0.4.17;
/**
* @title Token
* @dev Token interface necessary for working with tokens within the exchange contract.
*/
contract IToken {
/// @return total amount of tokens
function totalSupply() public constant returns (uint256 supply);
/// @param _owner The address from which the balance will be retrieved
/// @return The balance
exec
/bin/bash -lc "sed -n '200,400p' AUDIT_BUNDLE.txt" in /tmp/codex-6gjfaz_9 succeeded in 31ms:
for (uint i = id; i<last; i++){
specialFees[i] = specialFees[i+1];
}
delete specialFees[last];
specialFees.length--;
}
//return total count promotion fees
function TotalSpecialFeeTakes() public constant returns(uint) {
return specialFees.length;
}
////////////////////////////////////////////////////////////////////////////////
// Deposits, Withdrawals, Balances
////////////////////////////////////////////////////////////////////////////////
/**
* This function handles deposits of Ether into the contract.
exec
/bin/bash -lc "sed -n '400,527p' AUDIT_BUNDLE.txt" in /tmp/codex-6gjfaz_9 succeeded in 5ms:
* @param v part of signature for the order hash as signed by user
* @param r part of signature for the order hash as signed by user
* @param s part of signature for the order hash as signed by user
* @param amount uint amount in terms of tokenGet that will be "buy" in the trade
* @param sender Ethereum address of the user taking the order
* @return bool: true if the trade would be successful, false otherwise
*/
function testTrade(address tokenGet, uint amountGet, address tokenGive, uint amountGive, uint expires, uint nonce, address user, uint8 v, bytes32 r, bytes32 s, uint amount, address sender) public constant returns(bool) {
if (!(
tokens[tokenGet][sender] >= amount &&
availableVolume(tokenGet, amountGet, tokenGive, amountGive, expires, nonce, user, v, r, s) >= amount
)) {
return false;
} else {
return true;
}
}
/**
* This function checks the available volume for a given order.
thinking
**Analyzing Solidity contract vulnerabilities**
thinking
**Detailing token transfer accounting issues**
There is a key problem when tokens charge transfer fees: the contract credits deposit amounts without confirming actual tokens received, which can lead to internal balance mismatches and insolvency risks. I’m considering how this mismatch might let attackers withdraw more than the contract holds, especially when multiple users interact with such tokens, effectively shifting losses onto others. This is a known challenge with fee-on-transfer tokens and might warrant highlighting as an accounting flaw rather than a direct exploit.
thinking
**Summarizing potential fee-on-transfer token risk**
I’m focusing on the risk that fee-on-transfer tokens can cause internal accounting mismatches when deposit amounts don’t reflect actual tokens received, potentially enabling attackers to drain others’ funds under certain conditions. While transactions revert if balances are insufficient, users depositing such tokens may indirectly steal from the shared pool if others’ tokens cover the difference. This is a notable accounting and external call pattern concern worth reporting.
exec
/bin/bash -lc 'ls contracts' in /tmp/codex-6gjfaz_9 succeeded in 7ms:
Contract.sol
thinking
**Checking file with line numbers**
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '120,260p'" in /tmp/codex-6gjfaz_9 succeeded in 6ms:
120 bool private depositingTokenFlag; // True when Token.transferFrom is being called from depositToken
121 mapping (address => mapping (address => uint)) public tokens; // mapping of token addresses to mapping of account balances (token=0 means Ether)
122 mapping (address => mapping (bytes32 => uint)) public orderFills; // mapping of user accounts to mapping of order hashes to uints (amount of order that has been filled)
123 SpecialTokenBalanceFeeTake[] public specialFees;
124
125
126 /// Logging Events
127 event Cancel(address tokenGet, uint amountGet, address tokenGive, uint amountGive, uint expires, uint nonce, address user, uint8 v, bytes32 r, bytes32 s);
128 event Trade(address tokenGet, uint amountGet, address tokenGive, uint amountGive, address get, address give);
129 event Deposit(address token, address user, uint amount, uint balance);
130 event Withdraw(address token, address user, uint amount, uint balance);
131
132 /// This is a modifier for functions to check if the sending user address is the same as the admin user address.
133 modifier isAdmin() {
134 require(msg.sender == admin);
135 _;
136 }
137
138 /// Constructor function. This is only called on contract creation.
139 function Coinchangex(address admin_, address feeAccount_, uint feeTake_) public {
thinking
**Noting need for line numbers**
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '430,520p'" in /tmp/codex-6gjfaz_9 succeeded in 10ms:
430 (ecrecover(keccak256("\x19Ethereum Signed Message:\n32", hash), v, r, s) == user) &&
431 block.number <= expires
432 )) {
433 return 0;
434 }
435 uint[2] memory available;
436 available[0] = amountGet.sub(orderFills[user][hash]);
437 available[1] = tokens[tokenGive][user].mul(amountGet) / amountGive;
438 if (available[0] < available[1]) {
439 return available[0];
440 } else {
441 return available[1];
442 }
443 }
444
445 /**
446 * This function checks the amount of an order that has already been filled.
447 * Note: tokenGet & tokenGive can be the Ethereum contract address.
448 * @param tokenGet Ethereum contract address of the token to receive
449 * @param amountGet uint amount of tokens being received
thinking
**Preparing vulnerability report JSON**
codex
{"no_findings":false,"summary":"Found an accounting mismatch for fee-on-transfer/deflationary tokens that can make internal balances exceed actual holdings, enabling insolvency or value extraction from other users.","findings":[{"severity":"medium","category":"math","title":"Deposits credit the requested amount instead of actual tokens received","exploit_scenario":"If a fee-on-transfer/deflationary token is deposited (e.g., 10% transfer fee), the exchange receives fewer tokens than `amount` but credits the full `amount` to the user’s internal balance. An attacker can deposit such a token, then later withdraw the credited amount when other users have deposited the same token, effectively extracting the shortfall from the pool and leaving the exchange insolvent for remaining users.","recommendation":"When accepting ERC20 tokens, compute the actual amount received using balance-before/balance-after and credit only the delta. Alternatively, explicitly reject/denylist fee-on-transfer tokens or use an allowlist of supported tokens.","evidence":"Both deposit paths call `transferFrom` and then unconditionally add `amount` to the internal balance without verifying the received amount.","locations":["contracts/Contract.sol:244","contracts/Contract.sol:247","contracts/Contract.sol:249","contracts/Contract.sol:510","contracts/Contract.sol:515","contracts/Contract.sol:517"]}]}
tokens used
29,876
{
"codex": {
"ran_at": "2026-01-12T03:28:48.004960+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 1,
"import_count": 0,
"first_party_contracts_count": 1
},
"summary": "Found an accounting mismatch for fee-on-transfer/deflationary tokens that can make internal balances exceed actual holdings, enabling insolvency or value extraction from other users.",
"raw_final": {
"summary": "Found an accounting mismatch for fee-on-transfer/deflationary tokens that can make internal balances exceed actual holdings, enabling insolvency or value extraction from other users.",
"findings": [
{
"title": "Deposits credit the requested amount instead of actual tokens received",
"category": "math",
"evidence": "Both deposit paths call `transferFrom` and then unconditionally add `amount` to the internal balance without verifying the received amount.",
"severity": "medium",
"locations": [
"contracts/Contract.sol:244",
"contracts/Contract.sol:247",
"contracts/Contract.sol:249",
"contracts/Contract.sol:510",
"contracts/Contract.sol:515",
"contracts/Contract.sol:517"
],
"recommendation": "When accepting ERC20 tokens, compute the actual amount received using balance-before/balance-after and credit only the delta. Alternatively, explicitly reject/denylist fee-on-transfer tokens or use an allowlist of supported tokens.",
"exploit_scenario": "If a fee-on-transfer/deflationary token is deposited (e.g., 10% transfer fee), the exchange receives fewer tokens than `amount` but credits the full `amount` to the user\u2019s internal balance. An attacker can deposit such a token, then later withdraw the credited amount when other users have deposited the same token, effectively extracting the shortfall from the pool and leaving the exchange insolvent for remaining users."
}
],
"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 0x0154 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 0000002e: SWAP1 0000002f: DIV 00000030: PUSH4 0xffffffff 00000035: AND 00000036: DUP1 00000037: PUSH4 0x0a19b14a 0000003c: EQ 0000003d: PUSH2 0x0166 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0x14143c91 00000047: EQ 00000048: PUSH2 0x0244 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0x19774d43 00000052: EQ 00000053: PUSH2 0x026f 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0x278b8c0e 0000005d: EQ 0000005e: PUSH2 0x02d4 00000061: JUMPI 00000062: DUP1 00000063: PUSH4 0x2e1a7d4d 00000068: EQ 00000069: PUSH2 0x0388 0000006c: JUMPI 0000006d: DUP1 0000006e: PUSH4 0x338b5dea 00000073: EQ 00000074: PUSH2 0x03b5 00000077: JUMPI 00000078: DUP1 00000079: PUSH4 0x3c2e2a75 0000007e: EQ 0000007f: PUSH2 0x0402 00000082: JUMPI 00000083: DUP1 00000084: PUSH4 0x46be96c3 00000089: EQ 0000008a: PUSH2 0x046f 0000008d: JUMPI 0000008e: DUP1 0000008f: PUSH4 0x4a180cb3 00000094: EQ 00000095: PUSH2 0x0557 00000098: JUMPI 00000099: DUP1 0000009a: PUSH4 0x508493bc 0000009f: EQ 000000a0: PUSH2 0x0584 000000a3: JUMPI 000000a4: DUP1 000000a5: PUSH4 0x65e17c9d 000000aa: EQ 000000ab: PUSH2 0x05fb 000000ae: JUMPI 000000af: DUP1 000000b0: PUSH4 0x6a523c5e 000000b5: EQ 000000b6: PUSH2 0x0652 000000b9: JUMPI 000000ba: DUP1 000000bb: PUSH4 0x6c86888b 000000c0: EQ 000000c1: PUSH2 0x0688 000000c4: JUMPI 000000c5: DUP1 000000c6: PUSH4 0x71ffcb16 000000cb: EQ 000000cc: PUSH2 0x079e 000000cf: JUMPI 000000d0: DUP1 000000d1: PUSH4 0x8823a9c0 000000d6: EQ 000000d7: PUSH2 0x07e1 000000da: JUMPI 000000db: DUP1 000000dc: PUSH4 0x8f283970 000000e1: EQ 000000e2: PUSH2 0x080e 000000e5: JUMPI 000000e6: DUP1 000000e7: PUSH4 0x9e281a98 000000ec: EQ 000000ed: PUSH2 0x0851 000000f0: JUMPI 000000f1: DUP1 000000f2: PUSH4 0xab6db724 000000f7: EQ 000000f8: PUSH2 0x089e 000000fb: JUMPI 000000fc: DUP1 000000fd: PUSH4 0xc0ee0b8a 00000102: EQ 00000103: PUSH2 0x0924 00000106: JUMPI 00000107: DUP1 00000108: PUSH4 0xc281309e 0000010d: EQ 0000010e: PUSH2 0x09cf 00000111: JUMPI 00000112: DUP1 00000113: PUSH4 0xcf478921 00000118: EQ 00000119: PUSH2 0x09fa 0000011c: JUMPI 0000011d: DUP1 0000011e: PUSH4 0xd0e30db0 00000123: EQ 00000124: PUSH2 0x0a51 00000127: JUMPI 00000128: DUP1 00000129: PUSH4 0xf7888aec 0000012e: EQ 0000012f: PUSH2 0x0a5b 00000132: JUMPI 00000133: DUP1 00000134: PUSH4 0xf851a440 00000139: EQ 0000013a: PUSH2 0x0ad2 0000013d: JUMPI 0000013e: DUP1 0000013f: PUSH4 0xfb6e155f 00000144: EQ 00000145: PUSH2 0x0b29 00000148: JUMPI 00000149: DUP1 0000014a: PUSH4 0xfba9dbbb 0000014f: EQ 00000150: PUSH2 0x0c11 00000153: JUMPI 00000154: JUMPDEST 00000155: CALLVALUE 00000156: DUP1 00000157: ISZERO 00000158: PUSH2 0x0160 0000015b: JUMPI 0000015c: PUSH1 0x00 0000015e: DUP1 0000015f: REVERT 00000160: JUMPDEST 00000161: POP 00000162: PUSH1 0x00 00000164: DUP1 00000165: REVERT 00000166: JUMPDEST 00000167: CALLVALUE 00000168: DUP1 00000169: ISZERO 0000016a: PUSH2 0x0172 0000016d: JUMPI 0000016e: PUSH1 0x00 00000170: DUP1 00000171: REVERT 00000172: JUMPDEST 00000173: POP 00000174: PUSH2 0x0242 00000177: PUSH1 0x04 00000179: DUP1 0000017a: CALLDATASIZE 0000017b: SUB 0000017c: DUP2 0000017d: ADD 0000017e: SWAP1 0000017f: DUP1 00000180: DUP1 00000181: CALLDATALOAD 00000182: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000197: AND 00000198: SWAP1 00000199: PUSH1 0x20 0000019b: ADD 0000019c: SWAP1 0000019d: SWAP3 0000019e: SWAP2 0000019f: SWAP1 000001a0: DUP1 000001a1: CALLDATALOAD 000001a2: SWAP1 000001a3: PUSH1 0x20 000001a5: ADD 000001a6: SWAP1 000001a7: SWAP3 000001a8: SWAP2 000001a9: SWAP1 000001aa: DUP1 000001ab: CALLDATALOAD 000001ac: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001c1: AND 000001c2: SWAP1 000001c3: PUSH1 0x20 000001c5: ADD 000001c6: SWAP1 000001c7: SWAP3 000001c8: SWAP2 000001c9: SWAP1 000001ca: DUP1 000001cb: CALLDATALOAD 000001cc: SWAP1 000001cd: PUSH1 0x20 000001cf: ADD 000001d0: SWAP1 000001d1: SWAP3 000001d2: SWAP2 000001d3: SWAP1 000001d4: DUP1 000001d5: CALLDATALOAD 000001d6: SWAP1 000001d7: PUSH1 0x20 000001d9: ADD 000001da: SWAP1 000001db: SWAP3 000001dc: SWAP2 000001dd: SWAP1 000001de: DUP1 000001df: CALLDATALOAD 000001e0: SWAP1 000001e1: PUSH1 0x20 000001e3: ADD 000001e4: SWAP1 000001e5: SWAP3 000001e6: SWAP2 000001e7: SWAP1 000001e8: DUP1 000001e9: CALLDATALOAD 000001ea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001ff: AND 00000200: SWAP1 00000201: PUSH1 0x20 00000203: ADD 00000204: SWAP1 00000205: SWAP3 00000206: SWAP2 00000207: SWAP1 00000208: DUP1 00000209: CALLDATALOAD 0000020a: PUSH1 0xff 0000020c: AND 0000020d: SWAP1 0000020e: PUSH1 0x20 00000210: ADD 00000211: SWAP1 00000212: SWAP3 00000213: SWAP2 00000214: SWAP1 00000215: DUP1 00000216: CALLDATALOAD 00000217: PUSH1 0x00 00000219: NOT 0000021a: AND 0000021b: SWAP1 0000021c: PUSH1 0x20 0000021e: ADD 0000021f: SWAP1 00000220: SWAP3 00000221: SWAP2 00000222: SWAP1 00000223: DUP1 00000224: CALLDATALOAD 00000225: PUSH1 0x00 00000227: NOT 00000228: AND 00000229: SWAP1 0000022a: PUSH1 0x20 0000022c: ADD 0000022d: SWAP1 0000022e: SWAP3 0000022f: SWAP2 00000230: SWAP1 00000231: DUP1 00000232: CALLDATALOAD 00000233: SWAP1 00000234: PUSH1 0x20 00000236: ADD 00000237: SWAP1 00000238: SWAP3 00000239: SWAP2 0000023a: SWAP1 0000023b: POP 0000023c: POP 0000023d: POP 0000023e: PUSH2 0x0c72 00000241: JUMP 00000242: JUMPDEST 00000243: STOP 00000244: JUMPDEST 00000245: CALLVALUE 00000246: DUP1 00000247: ISZERO 00000248: PUSH2 0x0250 0000024b: JUMPI 0000024c: PUSH1 0x00 0000024e: DUP1 0000024f: REVERT 00000250: JUMPDEST 00000251: POP 00000252: PUSH2 0x0259 00000255: PUSH2 0x113c 00000258: JUMP 00000259: JUMPDEST 0000025a: PUSH1 0x40 0000025c: MLOAD 0000025d: DUP1 0000025e: DUP3 0000025f: DUP2 00000260: MSTORE 00000261: PUSH1 0x20 00000263: ADD 00000264: SWAP2 00000265: POP 00000266: POP 00000267: PUSH1 0x40 00000269: MLOAD 0000026a: DUP1 0000026b: SWAP2 0000026c: SUB 0000026d: SWAP1 0000026e: RETURN 0000026f: JUMPDEST 00000270: CALLVALUE 00000271: DUP1 00000272: ISZERO 00000273: PUSH2 0x027b 00000276: JUMPI 00000277: PUSH1 0x00 00000279: DUP1 0000027a: REVERT 0000027b: JUMPDEST 0000027c: POP 0000027d: PUSH2 0x02be 00000280: PUSH1 0x04 00000282: DUP1 00000283: CALLDATASIZE 00000284: SUB 00000285: DUP2 00000286: ADD 00000287: SWAP1 00000288: DUP1 00000289: DUP1 0000028a: CALLDATALOAD 0000028b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002a0: AND 000002a1: SWAP1 000002a2: PUSH1 0x20 000002a4: ADD 000002a5: SWAP1 000002a6: SWAP3 000002a7: SWAP2 000002a8: SWAP1 000002a9: DUP1 000002aa: CALLDATALOAD 000002ab: PUSH1 0x00 000002ad: NOT 000002ae: AND 000002af: SWAP1 000002b0: PUSH1 0x20 000002b2: ADD 000002b3: SWAP1 000002b4: SWAP3 000002b5: SWAP2 000002b6: SWAP1 000002b7: POP 000002b8: POP 000002b9: POP 000002ba: PUSH2 0x1149 000002bd: JUMP 000002be: JUMPDEST 000002bf: PUSH1 0x40 000002c1: MLOAD 000002c2: DUP1 000002c3: DUP3 000002c4: DUP2 000002c5: MSTORE 000002c6: PUSH1 0x20 000002c8: ADD 000002c9: SWAP2 000002ca: POP 000002cb: POP 000002cc: PUSH1 0x40 000002ce: MLOAD 000002cf: DUP1 000002d0: SWAP2 000002d1: SUB 000002d2: SWAP1 000002d3: RETURN 000002d4: JUMPDEST 000002d5: CALLVALUE 000002d6: DUP1 000002d7: ISZERO 000002d8: PUSH2 0x02e0 000002db: JUMPI 000002dc: PUSH1 0x00 000002de: DUP1 000002df: REVERT 000002e0: JUMPDEST 000002e1: POP 000002e2: PUSH2 0x0386 000002e5: PUSH1 0x04 000002e7: DUP1 000002e8: CALLDATASIZE 000002e9: SUB 000002ea: DUP2 000002eb: ADD 000002ec: SWAP1 000002ed: DUP1 000002ee: DUP1 000002ef: CALLDATALOAD 000002f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000305: AND 00000306: SWAP1 00000307: PUSH1 0x20 00000309: ADD 0000030a: SWAP1 0000030b: SWAP3 0000030c: SWAP2 0000030d: SWAP1 0000030e: DUP1 0000030f: CALLDATALOAD 00000310: SWAP1 00000311: PUSH1 0x20 00000313: ADD 00000314: SWAP1 00000315: SWAP3 00000316: SWAP2 00000317: SWAP1 00000318: DUP1 00000319: CALLDATALOAD 0000031a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000032f: AND 00000330: SWAP1 00000331: PUSH1 0x20 00000333: ADD 00000334: SWAP1 00000335: SWAP3 00000336: SWAP2 00000337: SWAP1 00000338: DUP1 00000339: CALLDATALOAD 0000033a: SWAP1 0000033b: PUSH1 0x20 0000033d: ADD 0000033e: SWAP1 0000033f: SWAP3 00000340: SWAP2 00000341: SWAP1 00000342: DUP1 00000343: CALLDATALOAD 00000344: SWAP1 00000345: PUSH1 0x20 00000347: ADD 00000348: SWAP1 00000349: SWAP3 0000034a: SWAP2 0000034b: SWAP1 0000034c: DUP1 0000034d: CALLDATALOAD 0000034e: SWAP1 0000034f: PUSH1 0x20 00000351: ADD 00000352: SWAP1 00000353: SWAP3 00000354: SWAP2 00000355: SWAP1 00000356: DUP1 00000357: CALLDATALOAD 00000358: PUSH1 0xff 0000035a: AND 0000035b: SWAP1 0000035c: PUSH1 0x20 0000035e: ADD 0000035f: SWAP1 00000360: SWAP3 00000361: SWAP2 00000362: SWAP1 00000363: DUP1 00000364: CALLDATALOAD 00000365: PUSH1 0x00 00000367: NOT 00000368: AND 00000369: SWAP1 0000036a: PUSH1 0x20 0000036c: ADD 0000036d: SWAP1 0000036e: SWAP3 0000036f: SWAP2 00000370: SWAP1 00000371: DUP1 00000372: CALLDATALOAD 00000373: PUSH1 0x00 00000375: NOT 00000376: AND 00000377: SWAP1 00000378: PUSH1 0x20 0000037a: ADD 0000037b: SWAP1 0000037c: SWAP3 0000037d: SWAP2 0000037e: SWAP1 0000037f: POP 00000380: POP 00000381: POP 00000382: PUSH2 0x116e 00000385: JUMP 00000386: JUMPDEST 00000387: STOP 00000388: JUMPDEST 00000389: CALLVALUE 0000038a: DUP1 0000038b: ISZERO 0000038c: PUSH2 0x0394 0000038f: JUMPI 00000390: PUSH1 0x00 00000392: DUP1 00000393: REVERT 00000394: JUMPDEST 00000395: POP 00000396: PUSH2 0x03b3 00000399: PUSH1 0x04 0000039b: DUP1 0000039c: CALLDATASIZE 0000039d: SUB 0000039e: DUP2 0000039f: ADD 000003a0: SWAP1 000003a1: DUP1 000003a2: DUP1 000003a3: CALLDATALOAD 000003a4: SWAP1 000003a5: PUSH1 0x20 000003a7: ADD 000003a8: SWAP1 000003a9: SWAP3 000003aa: SWAP2 000003ab: SWAP1 000003ac: POP 000003ad: POP 000003ae: POP 000003af: PUSH2 0x1529 000003b2: JUMP 000003b3: JUMPDEST 000003b4: STOP 000003b5: JUMPDEST 000003b6: CALLVALUE 000003b7: DUP1 000003b8: ISZERO 000003b9: PUSH2 0x03c1 000003bc: JUMPI 000003bd: PUSH1 0x00 000003bf: DUP1 000003c0: REVERT 000003c1: JUMPDEST 000003c2: POP 000003c3: PUSH2 0x0400 000003c6: PUSH1 0x04 000003c8: DUP1 000003c9: CALLDATASIZE 000003ca: SUB 000003cb: DUP2 000003cc: ADD 000003cd: SWAP1 000003ce: DUP1 000003cf: DUP1 000003d0: CALLDATALOAD 000003d1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003e6: AND 000003e7: SWAP1 000003e8: PUSH1 0x20 000003ea: ADD 000003eb: SWAP1 000003ec: SWAP3 000003ed: SWAP2 000003ee: SWAP1 000003ef: DUP1 000003f0: CALLDATALOAD 000003f1: SWAP1 000003f2: PUSH1 0x20 000003f4: ADD 000003f5: SWAP1 000003f6: SWAP3 000003f7: SWAP2 000003f8: SWAP1 000003f9: POP 000003fa: POP 000003fb: POP 000003fc: PUSH2 0x17c3 000003ff: JUMP 00000400: JUMPDEST 00000401: STOP 00000402: JUMPDEST 00000403: CALLVALUE 00000404: DUP1 00000405: ISZERO 00000406: PUSH2 0x040e 00000409: JUMPI 0000040a: PUSH1 0x00 0000040c: DUP1 0000040d: REVERT 0000040e: JUMPDEST 0000040f: POP 00000410: PUSH2 0x046d 00000413: PUSH1 0x04 00000415: DUP1 00000416: CALLDATASIZE 00000417: SUB 00000418: DUP2 00000419: ADD 0000041a: SWAP1 0000041b: DUP1 0000041c: DUP1 0000041d: CALLDATALOAD 0000041e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000433: AND 00000434: SWAP1 00000435: PUSH1 0x20 00000437: ADD 00000438: SWAP1 00000439: SWAP3 0000043a: SWAP2 0000043b: SWAP1 0000043c: DUP1 0000043d: CALLDATALOAD 0000043e: SWAP1 0000043f: PUSH1 0x20 00000441: ADD 00000442: SWAP1 00000443: SWAP3 00000444: SWAP2 00000445: SWAP1 00000446: DUP1 00000447: CALLDATALOAD 00000448: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000045d: AND 0000045e: SWAP1 0000045f: PUSH1 0x20 00000461: ADD 00000462: SWAP1 00000463: SWAP3 00000464: SWAP2 00000465: SWAP1 00000466: POP 00000467: POP 00000468: POP 00000469: PUSH2 0x1b72 0000046c: JUMP 0000046d: JUMPDEST 0000046e: STOP 0000046f: JUMPDEST 00000470: CALLVALUE 00000471: DUP1 00000472: ISZERO 00000473: PUSH2 0x047b 00000476: JUMPI 00000477: PUSH1 0x00 00000479: DUP1 0000047a: REVERT 0000047b: JUMPDEST 0000047c: POP 0000047d: PUSH2 0x0541 00000480: PUSH1 0x04 00000482: DUP1 00000483: CALLDATASIZE 00000484: SUB 00000485: DUP2 00000486: ADD 00000487: SWAP1 00000488: DUP1 00000489: DUP1 0000048a: CALLDATALOAD 0000048b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004a0: AND 000004a1: SWAP1 000004a2: PUSH1 0x20 000004a4: ADD 000004a5: SWAP1 000004a6: SWAP3 000004a7: SWAP2 000004a8: SWAP1 000004a9: DUP1 000004aa: CALLDATALOAD 000004ab: SWAP1 000004ac: PUSH1 0x20 000004ae: ADD 000004af: SWAP1 000004b0: SWAP3 000004b1: SWAP2 000004b2: SWAP1 000004b3: DUP1 000004b4: CALLDATALOAD 000004b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004ca: AND 000004cb: SWAP1 000004cc: PUSH1 0x20 000004ce: ADD 000004cf: SWAP1 000004d0: SWAP3 000004d1: SWAP2 000004d2: SWAP1 000004d3: DUP1 000004d4: CALLDATALOAD 000004d5: SWAP1 000004d6: PUSH1 0x20 000004d8: ADD 000004d9: SWAP1 000004da: SWAP3 000004db: SWAP2 000004dc: SWAP1 000004dd: DUP1 000004de: CALLDATALOAD 000004df: SWAP1 000004e0: PUSH1 0x20 000004e2: ADD 000004e3: SWAP1 000004e4: SWAP3 000004e5: SWAP2 000004e6: SWAP1 000004e7: DUP1 000004e8: CALLDATALOAD 000004e9: SWAP1 000004ea: PUSH1 0x20 000004ec: ADD 000004ed: SWAP1 000004ee: SWAP3 000004ef: SWAP2 000004f0: SWAP1 000004f1: DUP1 000004f2: CALLDATALOAD 000004f3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000508: AND 00000509: SWAP1 0000050a: PUSH1 0x20 0000050c: ADD 0000050d: SWAP1 0000050e: SWAP3 0000050f: SWAP2 00000510: SWAP1 00000511: DUP1 00000512: CALLDATALOAD 00000513: PUSH1 0xff 00000515: AND 00000516: SWAP1 00000517: PUSH1 0x20 00000519: ADD 0000051a: SWAP1 0000051b: SWAP3 0000051c: SWAP2 0000051d: SWAP1 0000051e: DUP1 0000051f: CALLDATALOAD 00000520: PUSH1 0x00 00000522: NOT 00000523: AND 00000524: SWAP1 00000525: PUSH1 0x20 00000527: ADD 00000528: SWAP1 00000529: SWAP3 0000052a: SWAP2 0000052b: SWAP1 0000052c: DUP1 0000052d: CALLDATALOAD 0000052e: PUSH1 0x00 00000530: NOT 00000531: AND 00000532: SWAP1 00000533: PUSH1 0x20 00000535: ADD 00000536: SWAP1 00000537: SWAP3 00000538: SWAP2 00000539: SWAP1 0000053a: POP 0000053b: POP 0000053c: POP 0000053d: PUSH2 0x1e60 00000540: JUMP 00000541: JUMPDEST 00000542: PUSH1 0x40 00000544: MLOAD 00000545: DUP1 00000546: DUP3 00000547: DUP2 00000548: MSTORE 00000549: PUSH1 0x20 0000054b: ADD 0000054c: SWAP2 0000054d: POP 0000054e: POP 0000054f: PUSH1 0x40 00000551: MLOAD 00000552: DUP1 00000553: SWAP2 00000554: SUB 00000555: SWAP1 00000556: RETURN 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 0x0582 00000568: PUSH1 0x04 0000056a: DUP1 0000056b: CALLDATASIZE 0000056c: SUB 0000056d: DUP2 0000056e: ADD 0000056f: SWAP1 00000570: DUP1 00000571: DUP1 00000572: CALLDATALOAD 00000573: SWAP1 00000574: PUSH1 0x20 00000576: ADD 00000577: SWAP1 00000578: SWAP3 00000579: SWAP2 0000057a: SWAP1 0000057b: POP 0000057c: POP 0000057d: POP 0000057e: PUSH2 0x2005 00000581: JUMP 00000582: JUMPDEST 00000583: STOP 00000584: JUMPDEST 00000585: CALLVALUE 00000586: DUP1 00000587: ISZERO 00000588: PUSH2 0x0590 0000058b: JUMPI 0000058c: PUSH1 0x00 0000058e: DUP1 0000058f: REVERT 00000590: JUMPDEST 00000591: POP 00000592: PUSH2 0x05e5 00000595: PUSH1 0x04 00000597: DUP1 00000598: CALLDATASIZE 00000599: SUB 0000059a: DUP2 0000059b: ADD 0000059c: SWAP1 0000059d: DUP1 0000059e: DUP1 0000059f: CALLDATALOAD 000005a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005b5: AND 000005b6: SWAP1 000005b7: PUSH1 0x20 000005b9: ADD 000005ba: SWAP1 000005bb: SWAP3 000005bc: SWAP2 000005bd: SWAP1 000005be: DUP1 000005bf: CALLDATALOAD 000005c0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005d5: AND 000005d6: SWAP1 000005d7: PUSH1 0x20 000005d9: ADD 000005da: SWAP1 000005db: SWAP3 000005dc: SWAP2 000005dd: SWAP1 000005de: POP 000005df: POP 000005e0: POP 000005e1: PUSH2 0x2208 000005e4: JUMP 000005e5: JUMPDEST 000005e6: PUSH1 0x40 000005e8: MLOAD 000005e9: DUP1 000005ea: DUP3 000005eb: DUP2 000005ec: MSTORE 000005ed: PUSH1 0x20 000005ef: ADD 000005f0: SWAP2 000005f1: POP 000005f2: POP 000005f3: PUSH1 0x40 000005f5: MLOAD 000005f6: DUP1 000005f7: SWAP2 000005f8: SUB 000005f9: SWAP1 000005fa: RETURN 000005fb: JUMPDEST 000005fc: CALLVALUE 000005fd: DUP1 000005fe: ISZERO 000005ff: PUSH2 0x0607 00000602: JUMPI 00000603: PUSH1 0x00 00000605: DUP1 00000606: REVERT 00000607: JUMPDEST 00000608: POP 00000609: PUSH2 0x0610 0000060c: PUSH2 0x222d 0000060f: JUMP 00000610: JUMPDEST 00000611: PUSH1 0x40 00000613: MLOAD 00000614: DUP1 00000615: DUP3 00000616: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000062b: AND 0000062c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000641: AND 00000642: DUP2 00000643: MSTORE 00000644: PUSH1 0x20 00000646: ADD 00000647: SWAP2 00000648: POP 00000649: POP 0000064a: PUSH1 0x40 0000064c: MLOAD 0000064d: DUP1 0000064e: SWAP2 0000064f: SUB 00000650: SWAP1 00000651: RETURN 00000652: JUMPDEST 00000653: PUSH2 0x0686 00000656: PUSH1 0x04 00000658: DUP1 00000659: CALLDATASIZE 0000065a: SUB 0000065b: DUP2 0000065c: ADD 0000065d: SWAP1 0000065e: DUP1 0000065f: DUP1 00000660: CALLDATALOAD 00000661: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000676: AND 00000677: SWAP1 00000678: PUSH1 0x20 0000067a: ADD 0000067b: SWAP1 0000067c: SWAP3 0000067d: SWAP2 0000067e: SWAP1 0000067f: POP 00000680: POP 00000681: POP 00000682: PUSH2 0x2253 00000685: JUMP 00000686: JUMPDEST 00000687: STOP 00000688: JUMPDEST 00000689: CALLVALUE 0000068a: DUP1 0000068b: ISZERO 0000068c: PUSH2 0x0694 0000068f: JUMPI 00000690: PUSH1 0x00 00000692: DUP1 00000693: REVERT 00000694: JUMPDEST 00000695: POP 00000696: PUSH2 0x0784 00000699: PUSH1 0x04 0000069b: DUP1 0000069c: CALLDATASIZE 0000069d: SUB 0000069e: DUP2 0000069f: ADD 000006a0: SWAP1 000006a1: DUP1 000006a2: DUP1 000006a3: CALLDATALOAD 000006a4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006b9: AND 000006ba: SWAP1 000006bb: PUSH1 0x20 000006bd: ADD 000006be: SWAP1 000006bf: SWAP3 000006c0: SWAP2 000006c1: SWAP1 000006c2: DUP1 000006c3: CALLDATALOAD 000006c4: SWAP1 000006c5: PUSH1 0x20 000006c7: ADD 000006c8: SWAP1 000006c9: SWAP3 000006ca: SWAP2 000006cb: SWAP1 000006cc: DUP1 000006cd: CALLDATALOAD 000006ce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006e3: AND 000006e4: SWAP1 000006e5: PUSH1 0x20 000006e7: ADD 000006e8: SWAP1 000006e9: SWAP3 000006ea: SWAP2 000006eb: SWAP1 000006ec: DUP1 000006ed: CALLDATALOAD 000006ee: SWAP1 000006ef: PUSH1 0x20 000006f1: ADD 000006f2: SWAP1 000006f3: SWAP3 000006f4: SWAP2 000006f5: SWAP1 000006f6: DUP1 000006f7: CALLDATALOAD 000006f8: SWAP1 000006f9: PUSH1 0x20 000006fb: ADD 000006fc: SWAP1 000006fd: SWAP3 000006fe: SWAP2 000006ff: SWAP1 00000700: DUP1 00000701: CALLDATALOAD 00000702: SWAP1 00000703: PUSH1 0x20 00000705: ADD 00000706: SWAP1 00000707: SWAP3 00000708: SWAP2 00000709: SWAP1 0000070a: DUP1 0000070b: CALLDATALOAD 0000070c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000721: AND 00000722: SWAP1 00000723: PUSH1 0x20 00000725: ADD 00000726: SWAP1 00000727: SWAP3 00000728: SWAP2 00000729: SWAP1 0000072a: DUP1 0000072b: CALLDATALOAD 0000072c: PUSH1 0xff 0000072e: AND 0000072f: SWAP1 00000730: PUSH1 0x20 00000732: ADD 00000733: SWAP1 00000734: SWAP3 00000735: SWAP2 00000736: SWAP1 00000737: DUP1 00000738: CALLDATALOAD 00000739: PUSH1 0x00 0000073b: NOT 0000073c: AND 0000073d: SWAP1 0000073e: PUSH1 0x20 00000740: ADD 00000741: SWAP1 00000742: SWAP3 00000743: SWAP2 00000744: SWAP1 00000745: DUP1 00000746: CALLDATALOAD 00000747: PUSH1 0x00 00000749: NOT 0000074a: AND 0000074b: SWAP1 0000074c: PUSH1 0x20 0000074e: ADD 0000074f: SWAP1 00000750: SWAP3 00000751: SWAP2 00000752: SWAP1 00000753: DUP1 00000754: CALLDATALOAD 00000755: SWAP1 00000756: PUSH1 0x20 00000758: ADD 00000759: SWAP1 0000075a: SWAP3 0000075b: SWAP2 0000075c: SWAP1 0000075d: DUP1 0000075e: CALLDATALOAD 0000075f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000774: AND 00000775: SWAP1 00000776: PUSH1 0x20 00000778: ADD 00000779: SWAP1 0000077a: SWAP3 0000077b: SWAP2 0000077c: SWAP1 0000077d: POP 0000077e: POP 0000077f: POP 00000780: PUSH2 0x2384 00000783: JUMP 00000784: JUMPDEST 00000785: PUSH1 0x40 00000787: MLOAD 00000788: DUP1 00000789: DUP3 0000078a: ISZERO 0000078b: ISZERO 0000078c: ISZERO 0000078d: ISZERO 0000078e: DUP2 0000078f: MSTORE 00000790: PUSH1 0x20 00000792: ADD 00000793: SWAP2 00000794: POP 00000795: POP 00000796: PUSH1 0x40 00000798: MLOAD 00000799: DUP1 0000079a: SWAP2 0000079b: SUB 0000079c: SWAP1 0000079d: RETURN 0000079e: JUMPDEST 0000079f: CALLVALUE 000007a0: DUP1 000007a1: ISZERO 000007a2: PUSH2 0x07aa 000007a5: JUMPI 000007a6: PUSH1 0x00 000007a8: DUP1 000007a9: REVERT 000007aa: JUMPDEST 000007ab: POP 000007ac: PUSH2 0x07df 000007af: PUSH1 0x04 000007b1: DUP1 000007b2: CALLDATASIZE 000007b3: SUB 000007b4: DUP2 000007b5: ADD 000007b6: SWAP1 000007b7: DUP1 000007b8: DUP1 000007b9: CALLDATALOAD 000007ba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007cf: AND 000007d0: SWAP1 000007d1: PUSH1 0x20 000007d3: ADD 000007d4: SWAP1 000007d5: SWAP3 000007d6: SWAP2 000007d7: SWAP1 000007d8: POP 000007d9: POP 000007da: POP 000007db: PUSH2 0x2447 000007de: JUMP 000007df: JUMPDEST 000007e0: STOP 000007e1: JUMPDEST 000007e2: CALLVALUE 000007e3: DUP1 000007e4: ISZERO 000007e5: PUSH2 0x07ed 000007e8: JUMPI 000007e9: PUSH1 0x00 000007eb: DUP1 000007ec: REVERT 000007ed: JUMPDEST 000007ee: POP 000007ef: PUSH2 0x080c 000007f2: PUSH1 0x04 000007f4: DUP1 000007f5: CALLDATASIZE 000007f6: SUB 000007f7: DUP2 000007f8: ADD 000007f9: SWAP1 000007fa: DUP1 000007fb: DUP1 000007fc: CALLDATALOAD 000007fd: SWAP1 000007fe: PUSH1 0x20 00000800: ADD 00000801: SWAP1 00000802: SWAP3 00000803: SWAP2 00000804: SWAP1 00000805: POP 00000806: POP 00000807: POP 00000808: PUSH2 0x24e6 0000080b: JUMP 0000080c: JUMPDEST 0000080d: STOP 0000080e: JUMPDEST 0000080f: CALLVALUE 00000810: DUP1 00000811: ISZERO 00000812: PUSH2 0x081a 00000815: JUMPI 00000816: PUSH1 0x00 00000818: DUP1 00000819: REVERT 0000081a: JUMPDEST 0000081b: POP 0000081c: PUSH2 0x084f 0000081f: PUSH1 0x04 00000821: DUP1 00000822: CALLDATASIZE 00000823: SUB 00000824: DUP2 00000825: ADD 00000826: SWAP1 00000827: DUP1 00000828: DUP1 00000829: CALLDATALOAD 0000082a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000083f: AND 00000840: SWAP1 00000841: PUSH1 0x20 00000843: ADD 00000844: SWAP1 00000845: SWAP3 00000846: SWAP2 00000847: SWAP1 00000848: POP 00000849: POP 0000084a: POP 0000084b: PUSH2 0x254b 0000084e: JUMP 0000084f: JUMPDEST 00000850: STOP 00000851: JUMPDEST 00000852: CALLVALUE 00000853: DUP1 00000854: ISZERO 00000855: PUSH2 0x085d 00000858: JUMPI 00000859: PUSH1 0x00 0000085b: DUP1 0000085c: REVERT 0000085d: JUMPDEST 0000085e: POP 0000085f: PUSH2 0x089c 00000862: PUSH1 0x04 00000864: DUP1 00000865: CALLDATASIZE 00000866: SUB 00000867: DUP2 00000868: ADD 00000869: SWAP1 0000086a: DUP1 0000086b: DUP1 0000086c: CALLDATALOAD 0000086d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000882: AND 00000883: SWAP1 00000884: PUSH1 0x20 00000886: ADD 00000887: SWAP1 00000888: SWAP3 00000889: SWAP2 0000088a: SWAP1 0000088b: DUP1 0000088c: CALLDATALOAD 0000088d: SWAP1 0000088e: PUSH1 0x20 00000890: ADD 00000891: SWAP1 00000892: SWAP3 00000893: SWAP2 00000894: SWAP1 00000895: POP 00000896: POP 00000897: POP 00000898: PUSH2 0x2625 0000089b: JUMP 0000089c: JUMPDEST 0000089d: STOP 0000089e: JUMPDEST 0000089f: CALLVALUE 000008a0: DUP1 000008a1: ISZERO 000008a2: PUSH2 0x08aa 000008a5: JUMPI 000008a6: PUSH1 0x00 000008a8: DUP1 000008a9: REVERT 000008aa: JUMPDEST 000008ab: POP 000008ac: PUSH2 0x08c9 000008af: PUSH1 0x04 000008b1: DUP1 000008b2: CALLDATASIZE 000008b3: SUB 000008b4: DUP2 000008b5: ADD 000008b6: SWAP1 000008b7: DUP1 000008b8: DUP1 000008b9: CALLDATALOAD 000008ba: SWAP1 000008bb: PUSH1 0x20 000008bd: ADD 000008be: SWAP1 000008bf: SWAP3 000008c0: SWAP2 000008c1: SWAP1 000008c2: POP 000008c3: POP 000008c4: POP 000008c5: PUSH2 0x29f5 000008c8: JUMP 000008c9: JUMPDEST 000008ca: PUSH1 0x40 000008cc: MLOAD 000008cd: DUP1 000008ce: DUP6 000008cf: ISZERO 000008d0: ISZERO 000008d1: ISZERO 000008d2: ISZERO 000008d3: DUP2 000008d4: MSTORE 000008d5: PUSH1 0x20 000008d7: ADD 000008d8: DUP5 000008d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008ee: AND 000008ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000904: AND 00000905: DUP2 00000906: MSTORE 00000907: PUSH1 0x20 00000909: ADD 0000090a: DUP4 0000090b: DUP2 0000090c: MSTORE 0000090d: PUSH1 0x20 0000090f: ADD 00000910: DUP3 00000911: DUP2 00000912: MSTORE 00000913: PUSH1 0x20 00000915: ADD 00000916: SWAP5 00000917: POP 00000918: POP 00000919: POP 0000091a: POP 0000091b: POP 0000091c: PUSH1 0x40 0000091e: MLOAD 0000091f: DUP1 00000920: SWAP2 00000921: SUB 00000922: SWAP1 00000923: RETURN 00000924: JUMPDEST 00000925: CALLVALUE 00000926: DUP1 00000927: ISZERO 00000928: PUSH2 0x0930 0000092b: JUMPI 0000092c: PUSH1 0x00 0000092e: DUP1 0000092f: REVERT 00000930: JUMPDEST 00000931: POP 00000932: PUSH2 0x09b5 00000935: PUSH1 0x04 00000937: DUP1 00000938: CALLDATASIZE 00000939: SUB 0000093a: DUP2 0000093b: ADD 0000093c: SWAP1 0000093d: DUP1 0000093e: DUP1 0000093f: CALLDATALOAD 00000940: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000955: AND 00000956: SWAP1 00000957: PUSH1 0x20 00000959: ADD 0000095a: SWAP1 0000095b: SWAP3 0000095c: SWAP2 0000095d: SWAP1 0000095e: DUP1 0000095f: CALLDATALOAD 00000960: SWAP1 00000961: PUSH1 0x20 00000963: ADD 00000964: SWAP1 00000965: SWAP3 00000966: SWAP2 00000967: SWAP1 00000968: DUP1 00000969: CALLDATALOAD 0000096a: SWAP1 0000096b: PUSH1 0x20 0000096d: ADD 0000096e: SWAP1 0000096f: DUP3 00000970: ADD 00000971: DUP1 00000972: CALLDATALOAD 00000973: SWAP1 00000974: PUSH1 0x20 00000976: ADD 00000977: SWAP1 00000978: DUP1 00000979: DUP1 0000097a: PUSH1 0x1f 0000097c: ADD 0000097d: PUSH1 0x20 0000097f: DUP1 00000980: SWAP2 00000981: DIV 00000982: MUL 00000983: PUSH1 0x20 00000985: ADD 00000986: PUSH1 0x40 00000988: MLOAD 00000989: SWAP1 0000098a: DUP2 0000098b: ADD 0000098c: PUSH1 0x40 0000098e: MSTORE 0000098f: DUP1 00000990: SWAP4 00000991: SWAP3 00000992: SWAP2 00000993: SWAP1 00000994: DUP2 00000995: DUP2 00000996: MSTORE 00000997: PUSH1 0x20 00000999: ADD 0000099a: DUP4 0000099b: DUP4 0000099c: DUP1 0000099d: DUP3 0000099e: DUP5 0000099f: CALLDATACOPY 000009a0: DUP3 000009a1: ADD 000009a2: SWAP2 000009a3: POP 000009a4: POP 000009a5: POP 000009a6: POP 000009a7: POP 000009a8: POP 000009a9: SWAP2 000009aa: SWAP3 000009ab: SWAP2 000009ac: SWAP3 000009ad: SWAP1 000009ae: POP 000009af: POP 000009b0: POP 000009b1: PUSH2 0x2a61 000009b4: JUMP 000009b5: JUMPDEST 000009b6: PUSH1 0x40 000009b8: MLOAD 000009b9: DUP1 000009ba: DUP3 000009bb: ISZERO 000009bc: ISZERO 000009bd: ISZERO 000009be: ISZERO 000009bf: DUP2 000009c0: MSTORE 000009c1: PUSH1 0x20 000009c3: ADD 000009c4: SWAP2 000009c5: POP 000009c6: POP 000009c7: PUSH1 0x40 000009c9: MLOAD 000009ca: DUP1 000009cb: SWAP2 000009cc: SUB 000009cd: SWAP1 000009ce: RETURN 000009cf: JUMPDEST 000009d0: CALLVALUE 000009d1: DUP1 000009d2: ISZERO 000009d3: PUSH2 0x09db 000009d6: JUMPI 000009d7: PUSH1 0x00 000009d9: DUP1 000009da: REVERT 000009db: JUMPDEST 000009dc: POP 000009dd: PUSH2 0x09e4 000009e0: PUSH2 0x2a8d 000009e3: JUMP 000009e4: JUMPDEST 000009e5: PUSH1 0x40 000009e7: MLOAD 000009e8: DUP1 000009e9: DUP3 000009ea: DUP2 000009eb: MSTORE 000009ec: PUSH1 0x20 000009ee: ADD 000009ef: SWAP2 000009f0: POP 000009f1: POP 000009f2: PUSH1 0x40 000009f4: MLOAD 000009f5: DUP1 000009f6: SWAP2 000009f7: SUB 000009f8: SWAP1 000009f9: RETURN 000009fa: JUMPDEST 000009fb: CALLVALUE 000009fc: DUP1 000009fd: ISZERO 000009fe: PUSH2 0x0a06 00000a01: JUMPI 00000a02: PUSH1 0x00 00000a04: DUP1 00000a05: REVERT 00000a06: JUMPDEST 00000a07: POP 00000a08: PUSH2 0x0a4f 00000a0b: PUSH1 0x04 00000a0d: DUP1 00000a0e: CALLDATASIZE 00000a0f: SUB 00000a10: DUP2 00000a11: ADD 00000a12: SWAP1 00000a13: DUP1 00000a14: DUP1 00000a15: CALLDATALOAD 00000a16: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a2b: AND 00000a2c: SWAP1 00000a2d: PUSH1 0x20 00000a2f: ADD 00000a30: SWAP1 00000a31: SWAP3 00000a32: SWAP2 00000a33: SWAP1 00000a34: DUP1 00000a35: CALLDATALOAD 00000a36: SWAP1 00000a37: PUSH1 0x20 00000a39: ADD 00000a3a: SWAP1 00000a3b: SWAP3 00000a3c: SWAP2 00000a3d: SWAP1 00000a3e: DUP1 00000a3f: CALLDATALOAD 00000a40: SWAP1 00000a41: PUSH1 0x20 00000a43: ADD 00000a44: SWAP1 00000a45: SWAP3 00000a46: SWAP2 00000a47: SWAP1 00000a48: POP 00000a49: POP 00000a4a: POP 00000a4b: PUSH2 0x2a93 00000a4e: JUMP 00000a4f: JUMPDEST 00000a50: STOP 00000a51: JUMPDEST 00000a52: PUSH2 0x0a59 00000a55: PUSH2 0x2bdd 00000a58: JUMP 00000a59: JUMPDEST 00000a5a: STOP 00000a5b: JUMPDEST 00000a5c: CALLVALUE 00000a5d: DUP1 00000a5e: ISZERO 00000a5f: PUSH2 0x0a67 00000a62: JUMPI 00000a63: PUSH1 0x00 00000a65: DUP1 00000a66: REVERT 00000a67: JUMPDEST 00000a68: POP 00000a69: PUSH2 0x0abc 00000a6c: PUSH1 0x04 00000a6e: DUP1 00000a6f: CALLDATASIZE 00000a70: SUB 00000a71: DUP2 00000a72: ADD 00000a73: SWAP1 00000a74: DUP1 00000a75: DUP1 00000a76: CALLDATALOAD 00000a77: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a8c: AND 00000a8d: SWAP1 00000a8e: PUSH1 0x20 00000a90: ADD 00000a91: SWAP1 00000a92: SWAP3 00000a93: SWAP2 00000a94: SWAP1 00000a95: DUP1 00000a96: CALLDATALOAD 00000a97: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000aac: AND 00000aad: SWAP1 00000aae: PUSH1 0x20 00000ab0: ADD 00000ab1: SWAP1 00000ab2: SWAP3 00000ab3: SWAP2 00000ab4: SWAP1 00000ab5: POP 00000ab6: POP 00000ab7: POP 00000ab8: PUSH2 0x2dba 00000abb: JUMP 00000abc: JUMPDEST 00000abd: PUSH1 0x40 00000abf: MLOAD 00000ac0: DUP1 00000ac1: DUP3 00000ac2: DUP2 00000ac3: MSTORE 00000ac4: PUSH1 0x20 00000ac6: ADD 00000ac7: SWAP2 00000ac8: POP 00000ac9: POP 00000aca: PUSH1 0x40 00000acc: MLOAD 00000acd: DUP1 00000ace: SWAP2 00000acf: SUB 00000ad0: SWAP1 00000ad1: RETURN 00000ad2: JUMPDEST 00000ad3: CALLVALUE 00000ad4: DUP1 00000ad5: ISZERO 00000ad6: PUSH2 0x0ade 00000ad9: JUMPI 00000ada: PUSH1 0x00 00000adc: DUP1 00000add: REVERT 00000ade: JUMPDEST 00000adf: POP 00000ae0: PUSH2 0x0ae7 00000ae3: PUSH2 0x2e41 00000ae6: JUMP 00000ae7: JUMPDEST 00000ae8: PUSH1 0x40 00000aea: MLOAD 00000aeb: DUP1 00000aec: DUP3 00000aed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b02: AND 00000b03: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b18: AND 00000b19: DUP2 00000b1a: MSTORE 00000b1b: PUSH1 0x20 00000b1d: ADD 00000b1e: SWAP2 00000b1f: POP 00000b20: POP 00000b21: PUSH1 0x40 00000b23: MLOAD 00000b24: DUP1 00000b25: SWAP2 00000b26: SUB 00000b27: SWAP1 00000b28: RETURN 00000b29: JUMPDEST 00000b2a: CALLVALUE 00000b2b: DUP1 00000b2c: ISZERO 00000b2d: PUSH2 0x0b35 00000b30: JUMPI 00000b31: PUSH1 0x00 00000b33: DUP1 00000b34: REVERT 00000b35: JUMPDEST 00000b36: POP 00000b37: PUSH2 0x0bfb 00000b3a: PUSH1 0x04 00000b3c: DUP1 00000b3d: CALLDATASIZE 00000b3e: SUB 00000b3f: DUP2 00000b40: ADD 00000b41: SWAP1 00000b42: DUP1 00000b43: DUP1 00000b44: CALLDATALOAD 00000b45: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b5a: AND 00000b5b: SWAP1 00000b5c: PUSH1 0x20 00000b5e: ADD 00000b5f: SWAP1 00000b60: SWAP3 00000b61: SWAP2 00000b62: SWAP1 00000b63: DUP1 00000b64: CALLDATALOAD 00000b65: SWAP1 00000b66: PUSH1 0x20 00000b68: ADD 00000b69: SWAP1 00000b6a: SWAP3 00000b6b: SWAP2 00000b6c: SWAP1 00000b6d: DUP1 00000b6e: CALLDATALOAD 00000b6f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b84: AND 00000b85: SWAP1 00000b86: PUSH1 0x20 00000b88: ADD 00000b89: SWAP1 00000b8a: SWAP3 00000b8b: SWAP2 00000b8c: SWAP1 00000b8d: DUP1 00000b8e: CALLDATALOAD 00000b8f: SWAP1 00000b90: PUSH1 0x20 00000b92: ADD 00000b93: SWAP1 00000b94: SWAP3 00000b95: SWAP2 00000b96: SWAP1 00000b97: DUP1 00000b98: CALLDATALOAD 00000b99: SWAP1 00000b9a: PUSH1 0x20 00000b9c: ADD 00000b9d: SWAP1 00000b9e: SWAP3 00000b9f: SWAP2 00000ba0: SWAP1 00000ba1: DUP1 00000ba2: CALLDATALOAD 00000ba3: SWAP1 00000ba4: PUSH1 0x20 00000ba6: ADD 00000ba7: SWAP1 00000ba8: SWAP3 00000ba9: SWAP2 00000baa: SWAP1 00000bab: DUP1 00000bac: CALLDATALOAD 00000bad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bc2: AND 00000bc3: SWAP1 00000bc4: PUSH1 0x20 00000bc6: ADD 00000bc7: SWAP1 00000bc8: SWAP3 00000bc9: SWAP2 00000bca: SWAP1 00000bcb: DUP1 00000bcc: CALLDATALOAD 00000bcd: PUSH1 0xff 00000bcf: AND 00000bd0: SWAP1 00000bd1: PUSH1 0x20 00000bd3: ADD 00000bd4: SWAP1 00000bd5: SWAP3 00000bd6: SWAP2 00000bd7: SWAP1 00000bd8: DUP1 00000bd9: CALLDATALOAD 00000bda: PUSH1 0x00 00000bdc: NOT 00000bdd: AND 00000bde: SWAP1 00000bdf: PUSH1 0x20 00000be1: ADD 00000be2: SWAP1 00000be3: SWAP3 00000be4: SWAP2 00000be5: SWAP1 00000be6: DUP1 00000be7: CALLDATALOAD 00000be8: PUSH1 0x00 00000bea: NOT 00000beb: AND 00000bec: SWAP1 00000bed: PUSH1 0x20 00000bef: ADD 00000bf0: SWAP1 00000bf1: SWAP3 00000bf2: SWAP2 00000bf3: SWAP1 00000bf4: POP 00000bf5: POP 00000bf6: POP 00000bf7: PUSH2 0x2e66 00000bfa: JUMP 00000bfb: JUMPDEST 00000bfc: PUSH1 0x40 00000bfe: MLOAD 00000bff: DUP1 00000c00: DUP3 00000c01: DUP2 00000c02: MSTORE 00000c03: PUSH1 0x20 00000c05: ADD 00000c06: SWAP2 00000c07: POP 00000c08: POP 00000c09: PUSH1 0x40 00000c0b: MLOAD 00000c0c: DUP1 00000c0d: SWAP2 00000c0e: SUB 00000c0f: SWAP1 00000c10: RETURN 00000c11: JUMPDEST 00000c12: CALLVALUE 00000c13: DUP1 00000c14: ISZERO 00000c15: PUSH2 0x0c1d 00000c18: JUMPI 00000c19: PUSH1 0x00 00000c1b: DUP1 00000c1c: REVERT 00000c1d: JUMPDEST 00000c1e: POP 00000c1f: PUSH2 0x0c70 00000c22: PUSH1 0x04 00000c24: DUP1 00000c25: CALLDATASIZE 00000c26: SUB 00000c27: DUP2 00000c28: ADD 00000c29: SWAP1 00000c2a: DUP1 00000c2b: DUP1 00000c2c: CALLDATALOAD 00000c2d: SWAP1 00000c2e: PUSH1 0x20 00000c30: ADD 00000c31: SWAP1 00000c32: SWAP3 00000c33: SWAP2 00000c34: SWAP1 00000c35: DUP1 00000c36: CALLDATALOAD 00000c37: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c4c: AND 00000c4d: SWAP1 00000c4e: PUSH1 0x20 00000c50: ADD 00000c51: SWAP1 00000c52: SWAP3 00000c53: SWAP2 00000c54: SWAP1 00000c55: DUP1 00000c56: CALLDATALOAD 00000c57: SWAP1 00000c58: PUSH1 0x20 00000c5a: ADD 00000c5b: SWAP1 00000c5c: SWAP3 00000c5d: SWAP2 00000c5e: SWAP1 00000c5f: DUP1 00000c60: CALLDATALOAD 00000c61: SWAP1 00000c62: PUSH1 0x20 00000c64: ADD 00000c65: SWAP1 00000c66: SWAP3 00000c67: SWAP2 00000c68: SWAP1 00000c69: POP 00000c6a: POP 00000c6b: POP 00000c6c: PUSH2 0x325d 00000c6f: JUMP 00000c70: JUMPDEST 00000c71: STOP 00000c72: JUMPDEST 00000c73: PUSH1 0x00 00000c75: PUSH1 0x02 00000c77: ADDRESS 00000c78: DUP14 00000c79: DUP14 00000c7a: DUP14 00000c7b: DUP14 00000c7c: DUP14 00000c7d: DUP14 00000c7e: PUSH1 0x40 00000c80: MLOAD 00000c81: DUP1 00000c82: DUP9 00000c83: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c98: AND 00000c99: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cae: AND 00000caf: PUSH13 0x01000000000000000000000000 00000cbd: MUL 00000cbe: DUP2 00000cbf: MSTORE 00000cc0: PUSH1 0x14 00000cc2: ADD 00000cc3: DUP8 00000cc4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cd9: AND 00000cda: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cef: AND 00000cf0: PUSH13 0x01000000000000000000000000 00000cfe: MUL 00000cff: DUP2 00000d00: MSTORE 00000d01: PUSH1 0x14 00000d03: ADD 00000d04: DUP7 00000d05: DUP2 00000d06: MSTORE 00000d07: PUSH1 0x20 00000d09: ADD 00000d0a: DUP6 00000d0b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d20: AND 00000d21: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d36: AND 00000d37: PUSH13 0x01000000000000000000000000 00000d45: MUL 00000d46: DUP2 00000d47: MSTORE 00000d48: PUSH1 0x14 00000d4a: ADD 00000d4b: DUP5 00000d4c: DUP2 00000d4d: MSTORE 00000d4e: PUSH1 0x20 00000d50: ADD 00000d51: DUP4 00000d52: DUP2 00000d53: MSTORE 00000d54: PUSH1 0x20 00000d56: ADD 00000d57: DUP3 00000d58: DUP2 00000d59: MSTORE 00000d5a: PUSH1 0x20 00000d5c: ADD 00000d5d: SWAP8 00000d5e: POP 00000d5f: POP 00000d60: POP 00000d61: POP 00000d62: POP 00000d63: POP 00000d64: POP 00000d65: POP 00000d66: PUSH1 0x20 00000d68: PUSH1 0x40 00000d6a: MLOAD 00000d6b: DUP1 00000d6c: DUP4 00000d6d: SUB 00000d6e: DUP2 00000d6f: PUSH1 0x00 00000d71: DUP7 00000d72: GAS 00000d73: CALL 00000d74: ISZERO 00000d75: DUP1 00000d76: ISZERO 00000d77: PUSH2 0x0d84 00000d7a: JUMPI 00000d7b: RETURNDATASIZE 00000d7c: PUSH1 0x00 00000d7e: DUP1 00000d7f: RETURNDATACOPY 00000d80: RETURNDATASIZE 00000d81: PUSH1 0x00 00000d83: REVERT 00000d84: JUMPDEST 00000d85: POP 00000d86: POP 00000d87: POP 00000d88: PUSH1 0x40 00000d8a: MLOAD 00000d8b: RETURNDATASIZE 00000d8c: PUSH1 0x20 00000d8e: DUP2 00000d8f: LT 00000d90: ISZERO 00000d91: PUSH2 0x0d99 00000d94: JUMPI 00000d95: PUSH1 0x00 00000d97: DUP1 00000d98: REVERT 00000d99: JUMPDEST 00000d9a: DUP2 00000d9b: ADD 00000d9c: SWAP1 00000d9d: DUP1 00000d9e: DUP1 00000d9f: MLOAD 00000da0: SWAP1 00000da1: PUSH1 0x20 00000da3: ADD 00000da4: SWAP1 00000da5: SWAP3 00000da6: SWAP2 00000da7: SWAP1 00000da8: POP 00000da9: POP 00000daa: POP 00000dab: SWAP1 00000dac: POP 00000dad: DUP6 00000dae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000dc3: AND 00000dc4: PUSH1 0x01 00000dc6: DUP3 00000dc7: PUSH1 0x40 00000dc9: MLOAD 00000dca: DUP1 00000dcb: DUP1 00000dcc: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000 00000ded: DUP2 00000dee: MSTORE 00000def: POP 00000df0: PUSH1 0x1c 00000df2: ADD 00000df3: DUP3 00000df4: PUSH1 0x00 00000df6: NOT 00000df7: AND 00000df8: PUSH1 0x00 00000dfa: NOT 00000dfb: AND 00000dfc: DUP2 00000dfd: MSTORE 00000dfe: PUSH1 0x20 00000e00: ADD 00000e01: SWAP2 00000e02: POP 00000e03: POP 00000e04: PUSH1 0x40 00000e06: MLOAD 00000e07: DUP1 00000e08: SWAP2 00000e09: SUB 00000e0a: SWAP1 00000e0b: KECCAK256 00000e0c: DUP8 00000e0d: DUP8 00000e0e: DUP8 00000e0f: PUSH1 0x40 00000e11: MLOAD 00000e12: PUSH1 0x00 00000e14: DUP2 00000e15: MSTORE 00000e16: PUSH1 0x20 00000e18: ADD 00000e19: PUSH1 0x40 00000e1b: MSTORE 00000e1c: PUSH1 0x40 00000e1e: MLOAD 00000e1f: DUP1 00000e20: DUP6 00000e21: PUSH1 0x00 00000e23: NOT 00000e24: AND 00000e25: PUSH1 0x00 00000e27: NOT 00000e28: AND 00000e29: DUP2 00000e2a: MSTORE 00000e2b: PUSH1 0x20 00000e2d: ADD 00000e2e: DUP5 00000e2f: PUSH1 0xff 00000e31: AND 00000e32: PUSH1 0xff 00000e34: AND 00000e35: DUP2 00000e36: MSTORE 00000e37: PUSH1 0x20 00000e39: ADD 00000e3a: DUP4 00000e3b: PUSH1 0x00 00000e3d: NOT 00000e3e: AND 00000e3f: PUSH1 0x00 00000e41: NOT 00000e42: AND 00000e43: DUP2 00000e44: MSTORE 00000e45: PUSH1 0x20 00000e47: ADD 00000e48: DUP3 00000e49: PUSH1 0x00 00000e4b: NOT 00000e4c: AND 00000e4d: PUSH1 0x00 00000e4f: NOT 00000e50: AND 00000e51: DUP2 00000e52: MSTORE 00000e53: PUSH1 0x20 00000e55: ADD 00000e56: SWAP5 00000e57: POP 00000e58: POP 00000e59: POP 00000e5a: POP 00000e5b: POP 00000e5c: PUSH1 0x20 00000e5e: PUSH1 0x40 00000e60: MLOAD 00000e61: PUSH1 0x20 00000e63: DUP2 00000e64: SUB 00000e65: SWAP1 00000e66: DUP1 00000e67: DUP5 00000e68: SUB 00000e69: SWAP1 00000e6a: PUSH1 0x00 00000e6c: DUP7 00000e6d: GAS 00000e6e: CALL 00000e6f: ISZERO 00000e70: DUP1 00000e71: ISZERO 00000e72: PUSH2 0x0e7f 00000e75: JUMPI 00000e76: RETURNDATASIZE 00000e77: PUSH1 0x00 00000e79: DUP1 00000e7a: RETURNDATACOPY 00000e7b: RETURNDATASIZE 00000e7c: PUSH1 0x00 00000e7e: REVERT 00000e7f: JUMPDEST 00000e80: POP 00000e81: POP 00000e82: POP 00000e83: PUSH1 0x20 00000e85: PUSH1 0x40 00000e87: MLOAD 00000e88: SUB 00000e89: MLOAD 00000e8a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e9f: AND 00000ea0: EQ 00000ea1: DUP1 00000ea2: ISZERO 00000ea3: PUSH2 0x0eac 00000ea6: JUMPI 00000ea7: POP 00000ea8: DUP8 00000ea9: NUMBER 00000eaa: GT 00000eab: ISZERO 00000eac: JUMPDEST 00000ead: DUP1 00000eae: ISZERO 00000eaf: PUSH2 0x0f22 00000eb2: JUMPI 00000eb3: POP 00000eb4: DUP11 00000eb5: PUSH2 0x0f1f 00000eb8: DUP4 00000eb9: PUSH1 0x05 00000ebb: PUSH1 0x00 00000ebd: DUP11 00000ebe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ed3: AND 00000ed4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ee9: AND 00000eea: DUP2 00000eeb: MSTORE 00000eec: PUSH1 0x20 00000eee: ADD 00000eef: SWAP1 00000ef0: DUP2 00000ef1: MSTORE 00000ef2: PUSH1 0x20 00000ef4: ADD 00000ef5: PUSH1 0x00 00000ef7: KECCAK256 00000ef8: PUSH1 0x00 00000efa: DUP6 00000efb: PUSH1 0x00 00000efd: NOT 00000efe: AND 00000eff: PUSH1 0x00 00000f01: NOT 00000f02: AND 00000f03: DUP2 00000f04: MSTORE 00000f05: PUSH1 0x20 00000f07: ADD 00000f08: SWAP1 00000f09: DUP2 00000f0a: MSTORE 00000f0b: PUSH1 0x20 00000f0d: ADD 00000f0e: PUSH1 0x00 00000f10: KECCAK256 00000f11: SLOAD 00000f12: PUSH2 0x33a7 00000f15: SWAP1 00000f16: SWAP2 00000f17: SWAP1 00000f18: PUSH4 0xffffffff 00000f1d: AND 00000f1e: JUMP 00000f1f: JUMPDEST 00000f20: GT 00000f21: ISZERO 00000f22: JUMPDEST 00000f23: ISZERO 00000f24: ISZERO 00000f25: PUSH2 0x0f2d 00000f28: JUMPI 00000f29: PUSH1 0x00 00000f2b: DUP1 00000f2c: REVERT 00000f2d: JUMPDEST 00000f2e: PUSH2 0x0f3b 00000f31: DUP13 00000f32: DUP13 00000f33: DUP13 00000f34: DUP13 00000f35: DUP11 00000f36: DUP8 00000f37: PUSH2 0x33cc 00000f3a: JUMP 00000f3b: JUMPDEST 00000f3c: PUSH2 0x0fa6 00000f3f: DUP3 00000f40: PUSH1 0x05 00000f42: PUSH1 0x00 00000f44: DUP10 00000f45: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f5a: AND 00000f5b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f70: AND 00000f71: DUP2 00000f72: MSTORE 00000f73: PUSH1 0x20 00000f75: ADD 00000f76: SWAP1 00000f77: DUP2 00000f78: MSTORE 00000f79: PUSH1 0x20 00000f7b: ADD 00000f7c: PUSH1 0x00 00000f7e: KECCAK256 00000f7f: PUSH1 0x00 00000f81: DUP5 00000f82: PUSH1 0x00 00000f84: NOT 00000f85: AND 00000f86: PUSH1 0x00 00000f88: NOT 00000f89: AND 00000f8a: DUP2 00000f8b: MSTORE 00000f8c: PUSH1 0x20 00000f8e: ADD 00000f8f: SWAP1 00000f90: DUP2 00000f91: MSTORE 00000f92: PUSH1 0x20 00000f94: ADD 00000f95: PUSH1 0x00 00000f97: KECCAK256 00000f98: SLOAD 00000f99: PUSH2 0x33a7 00000f9c: SWAP1 00000f9d: SWAP2 00000f9e: SWAP1 00000f9f: PUSH4 0xffffffff 00000fa4: AND 00000fa5: JUMP 00000fa6: JUMPDEST 00000fa7: PUSH1 0x05 00000fa9: PUSH1 0x00 00000fab: DUP9 00000fac: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fc1: AND 00000fc2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fd7: AND 00000fd8: DUP2 00000fd9: MSTORE 00000fda: PUSH1 0x20 00000fdc: ADD 00000fdd: SWAP1 00000fde: DUP2 00000fdf: MSTORE 00000fe0: PUSH1 0x20 00000fe2: ADD 00000fe3: PUSH1 0x00 00000fe5: KECCAK256 00000fe6: PUSH1 0x00 00000fe8: DUP4 00000fe9: PUSH1 0x00 00000feb: NOT 00000fec: AND 00000fed: PUSH1 0x00 00000fef: NOT 00000ff0: AND 00000ff1: DUP2 00000ff2: MSTORE 00000ff3: PUSH1 0x20 00000ff5: ADD 00000ff6: SWAP1 00000ff7: DUP2 00000ff8: MSTORE 00000ff9: PUSH1 0x20 00000ffb: ADD 00000ffc: PUSH1 0x00 00000ffe: KECCAK256 00000fff: DUP2 00001000: SWAP1 00001001: SSTORE 00001002: POP 00001003: PUSH32 0x6effdda786735d5033bfad5f53e5131abcced9e52be6c507b62d639685fbed6d 00001024: DUP13 00001025: DUP4 00001026: DUP13 00001027: DUP15 00001028: PUSH2 0x103a 0000102b: DUP8 0000102c: DUP16 0000102d: PUSH2 0x39cb 00001030: SWAP1 00001031: SWAP2 00001032: SWAP1 00001033: PUSH4 0xffffffff 00001038: AND 00001039: JUMP 0000103a: JUMPDEST 0000103b: DUP2 0000103c: ISZERO 0000103d: ISZERO 0000103e: PUSH2 0x1043 00001041: JUMPI 00001042: INVALID 00001043: JUMPDEST 00001044: DIV 00001045: DUP11 00001046: CALLER 00001047: PUSH1 0x40 00001049: MLOAD 0000104a: DUP1 0000104b: DUP8 0000104c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001061: AND 00001062: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001077: AND 00001078: DUP2 00001079: MSTORE 0000107a: PUSH1 0x20 0000107c: ADD 0000107d: DUP7 0000107e: DUP2 0000107f: MSTORE 00001080: PUSH1 0x20 00001082: ADD 00001083: DUP6 00001084: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001099: AND 0000109a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010af: AND 000010b0: DUP2 000010b1: MSTORE 000010b2: PUSH1 0x20 000010b4: ADD 000010b5: DUP5 000010b6: DUP2 000010b7: MSTORE 000010b8: PUSH1 0x20 000010ba: ADD 000010bb: DUP4 000010bc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010d1: AND 000010d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010e7: AND 000010e8: DUP2 000010e9: MSTORE 000010ea: PUSH1 0x20 000010ec: ADD 000010ed: DUP3 000010ee: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001103: AND 00001104: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001119: AND 0000111a: DUP2 0000111b: MSTORE 0000111c: PUSH1 0x20 0000111e: ADD 0000111f: SWAP7 00001120: POP 00001121: POP 00001122: POP 00001123: POP 00001124: POP 00001125: POP 00001126: POP 00001127: PUSH1 0x40 00001129: MLOAD 0000112a: DUP1 0000112b: SWAP2 0000112c: SUB 0000112d: SWAP1 0000112e: LOG1 0000112f: POP 00001130: POP 00001131: POP 00001132: POP 00001133: POP 00001134: POP 00001135: POP 00001136: POP 00001137: POP 00001138: POP 00001139: POP 0000113a: POP 0000113b: JUMP 0000113c: JUMPDEST 0000113d: PUSH1 0x00 0000113f: PUSH1 0x06 00001141: DUP1 00001142: SLOAD 00001143: SWAP1 00001144: POP 00001145: SWAP1 00001146: POP 00001147: SWAP1 00001148: JUMP 00001149: JUMPDEST 0000114a: PUSH1 0x05 0000114c: PUSH1 0x20 0000114e: MSTORE 0000114f: DUP2 00001150: PUSH1 0x00 00001152: MSTORE 00001153: PUSH1 0x40 00001155: PUSH1 0x00 00001157: KECCAK256 00001158: PUSH1 0x20 0000115a: MSTORE 0000115b: DUP1 0000115c: PUSH1 0x00 0000115e: MSTORE 0000115f: PUSH1 0x40 00001161: PUSH1 0x00 00001163: KECCAK256 00001164: PUSH1 0x00 00001166: SWAP2 00001167: POP 00001168: SWAP2 00001169: POP 0000116a: POP 0000116b: SLOAD 0000116c: DUP2 0000116d: JUMP 0000116e: JUMPDEST 0000116f: PUSH1 0x00 00001171: PUSH1 0x02 00001173: ADDRESS 00001174: DUP12 00001175: DUP12 00001176: DUP12 00001177: DUP12 00001178: DUP12 00001179: DUP12 0000117a: PUSH1 0x40 0000117c: MLOAD 0000117d: DUP1 0000117e: DUP9 0000117f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001194: AND 00001195: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011aa: AND 000011ab: PUSH13 0x01000000000000000000000000 000011b9: MUL 000011ba: DUP2 000011bb: MSTORE 000011bc: PUSH1 0x14 000011be: ADD 000011bf: DUP8 000011c0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011d5: AND 000011d6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011eb: AND 000011ec: PUSH13 0x01000000000000000000000000 000011fa: MUL 000011fb: DUP2 000011fc: MSTORE 000011fd: PUSH1 0x14 000011ff: ADD 00001200: DUP7 00001201: DUP2 00001202: MSTORE 00001203: PUSH1 0x20 00001205: ADD 00001206: DUP6 00001207: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000121c: AND 0000121d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001232: AND 00001233: PUSH13 0x01000000000000000000000000 00001241: MUL 00001242: DUP2 00001243: MSTORE 00001244: PUSH1 0x14 00001246: ADD 00001247: DUP5 00001248: DUP2 00001249: MSTORE 0000124a: PUSH1 0x20 0000124c: ADD 0000124d: DUP4 0000124e: DUP2 0000124f: MSTORE 00001250: PUSH1 0x20 00001252: ADD 00001253: DUP3 00001254: DUP2 00001255: MSTORE 00001256: PUSH1 0x20 00001258: ADD 00001259: SWAP8 0000125a: POP 0000125b: POP 0000125c: POP 0000125d: POP 0000125e: POP 0000125f: POP 00001260: POP 00001261: POP 00001262: PUSH1 0x20 00001264: PUSH1 0x40 00001266: MLOAD 00001267: DUP1 00001268: DUP4 00001269: SUB 0000126a: DUP2 0000126b: PUSH1 0x00 0000126d: DUP7 0000126e: GAS 0000126f: CALL 00001270: ISZERO 00001271: DUP1 00001272: ISZERO 00001273: PUSH2 0x1280 00001276: JUMPI 00001277: RETURNDATASIZE 00001278: PUSH1 0x00 0000127a: DUP1 0000127b: RETURNDATACOPY 0000127c: RETURNDATASIZE 0000127d: PUSH1 0x00 0000127f: REVERT 00001280: JUMPDEST 00001281: POP 00001282: POP 00001283: POP 00001284: PUSH1 0x40 00001286: MLOAD 00001287: RETURNDATASIZE 00001288: PUSH1 0x20 0000128a: DUP2 0000128b: LT 0000128c: ISZERO 0000128d: PUSH2 0x1295 00001290: JUMPI 00001291: PUSH1 0x00 00001293: DUP1 00001294: REVERT 00001295: JUMPDEST 00001296: DUP2 00001297: ADD 00001298: SWAP1 00001299: DUP1 0000129a: DUP1 0000129b: MLOAD 0000129c: SWAP1 0000129d: PUSH1 0x20 0000129f: ADD 000012a0: SWAP1 000012a1: SWAP3 000012a2: SWAP2 000012a3: SWAP1 000012a4: POP 000012a5: POP 000012a6: POP 000012a7: SWAP1 000012a8: POP 000012a9: CALLER 000012aa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012bf: AND 000012c0: PUSH1 0x01 000012c2: DUP3 000012c3: PUSH1 0x40 000012c5: MLOAD 000012c6: DUP1 000012c7: DUP1 000012c8: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000 000012e9: DUP2 000012ea: MSTORE 000012eb: POP 000012ec: PUSH1 0x1c 000012ee: ADD 000012ef: DUP3 000012f0: PUSH1 0x00 000012f2: NOT 000012f3: AND 000012f4: PUSH1 0x00 000012f6: NOT 000012f7: AND 000012f8: DUP2 000012f9: MSTORE 000012fa: PUSH1 0x20 000012fc: ADD 000012fd: SWAP2 000012fe: POP 000012ff: POP 00001300: PUSH1 0x40 00001302: MLOAD 00001303: DUP1 00001304: SWAP2 00001305: SUB 00001306: SWAP1 00001307: KECCAK256 00001308: DUP7 00001309: DUP7 0000130a: DUP7 0000130b: PUSH1 0x40 0000130d: MLOAD 0000130e: PUSH1 0x00 00001310: DUP2 00001311: MSTORE 00001312: PUSH1 0x20 00001314: ADD 00001315: PUSH1 0x40 00001317: MSTORE 00001318: PUSH1 0x40 0000131a: MLOAD 0000131b: DUP1 0000131c: DUP6 0000131d: PUSH1 0x00 0000131f: NOT 00001320: AND 00001321: PUSH1 0x00 00001323: NOT 00001324: AND 00001325: DUP2 00001326: MSTORE 00001327: PUSH1 0x20 00001329: ADD 0000132a: DUP5 0000132b: PUSH1 0xff 0000132d: AND 0000132e: PUSH1 0xff 00001330: AND 00001331: DUP2 00001332: MSTORE 00001333: PUSH1 0x20 00001335: ADD 00001336: DUP4 00001337: PUSH1 0x00 00001339: NOT 0000133a: AND 0000133b: PUSH1 0x00 0000133d: NOT 0000133e: AND 0000133f: DUP2 00001340: MSTORE 00001341: PUSH1 0x20 00001343: ADD 00001344: DUP3 00001345: PUSH1 0x00 00001347: NOT 00001348: AND 00001349: PUSH1 0x00 0000134b: NOT 0000134c: AND 0000134d: DUP2 0000134e: MSTORE 0000134f: PUSH1 0x20 00001351: ADD 00001352: SWAP5 00001353: POP 00001354: POP 00001355: POP 00001356: POP 00001357: POP 00001358: PUSH1 0x20 0000135a: PUSH1 0x40 0000135c: MLOAD 0000135d: PUSH1 0x20 0000135f: DUP2 00001360: SUB 00001361: SWAP1 00001362: DUP1 00001363: DUP5 00001364: SUB 00001365: SWAP1 00001366: PUSH1 0x00 00001368: DUP7 00001369: GAS 0000136a: CALL 0000136b: ISZERO 0000136c: DUP1 0000136d: ISZERO 0000136e: PUSH2 0x137b 00001371: JUMPI 00001372: RETURNDATASIZE 00001373: PUSH1 0x00 00001375: DUP1 00001376: RETURNDATACOPY 00001377: RETURNDATASIZE 00001378: PUSH1 0x00 0000137a: REVERT 0000137b: JUMPDEST 0000137c: POP 0000137d: POP 0000137e: POP 0000137f: PUSH1 0x20 00001381: PUSH1 0x40 00001383: MLOAD 00001384: SUB 00001385: MLOAD 00001386: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000139b: AND 0000139c: EQ 0000139d: ISZERO 0000139e: ISZERO 0000139f: PUSH2 0x13a7 000013a2: JUMPI 000013a3: PUSH1 0x00 000013a5: DUP1 000013a6: REVERT 000013a7: JUMPDEST 000013a8: DUP9 000013a9: PUSH1 0x05 000013ab: PUSH1 0x00 000013ad: CALLER 000013ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013c3: AND 000013c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013d9: AND 000013da: DUP2 000013db: MSTORE 000013dc: PUSH1 0x20 000013de: ADD 000013df: SWAP1 000013e0: DUP2 000013e1: MSTORE 000013e2: PUSH1 0x20 000013e4: ADD 000013e5: PUSH1 0x00 000013e7: KECCAK256 000013e8: PUSH1 0x00 000013ea: DUP4 000013eb: PUSH1 0x00 000013ed: NOT 000013ee: AND 000013ef: PUSH1 0x00 000013f1: NOT 000013f2: AND 000013f3: DUP2 000013f4: MSTORE 000013f5: PUSH1 0x20 000013f7: ADD 000013f8: SWAP1 000013f9: DUP2 000013fa: MSTORE 000013fb: PUSH1 0x20 000013fd: ADD 000013fe: PUSH1 0x00 00001400: KECCAK256 00001401: DUP2 00001402: SWAP1 00001403: SSTORE 00001404: POP 00001405: PUSH32 0x1e0b760c386003e9cb9bcf4fcf3997886042859d9b6ed6320e804597fcdb28b0 00001426: DUP11 00001427: DUP11 00001428: DUP11 00001429: DUP11 0000142a: DUP11 0000142b: DUP11 0000142c: CALLER 0000142d: DUP12 0000142e: DUP12 0000142f: DUP12 00001430: PUSH1 0x40 00001432: MLOAD 00001433: DUP1 00001434: DUP12 00001435: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000144a: AND 0000144b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001460: AND 00001461: DUP2 00001462: MSTORE 00001463: PUSH1 0x20 00001465: ADD 00001466: DUP11 00001467: DUP2 00001468: MSTORE 00001469: PUSH1 0x20 0000146b: ADD 0000146c: DUP10 0000146d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001482: AND 00001483: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001498: AND 00001499: DUP2 0000149a: MSTORE 0000149b: PUSH1 0x20 0000149d: ADD 0000149e: DUP9 0000149f: DUP2 000014a0: MSTORE 000014a1: PUSH1 0x20 000014a3: ADD 000014a4: DUP8 000014a5: DUP2 000014a6: MSTORE 000014a7: PUSH1 0x20 000014a9: ADD 000014aa: DUP7 000014ab: DUP2 000014ac: MSTORE 000014ad: PUSH1 0x20 000014af: ADD 000014b0: DUP6 000014b1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014c6: AND 000014c7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014dc: AND 000014dd: DUP2 000014de: MSTORE 000014df: PUSH1 0x20 000014e1: ADD 000014e2: DUP5 000014e3: PUSH1 0xff 000014e5: AND 000014e6: PUSH1 0xff 000014e8: AND 000014e9: DUP2 000014ea: MSTORE 000014eb: PUSH1 0x20 000014ed: ADD 000014ee: DUP4 000014ef: PUSH1 0x00 000014f1: NOT 000014f2: AND 000014f3: PUSH1 0x00 000014f5: NOT 000014f6: AND 000014f7: DUP2 000014f8: MSTORE 000014f9: PUSH1 0x20 000014fb: ADD 000014fc: DUP3 000014fd: PUSH1 0x00 000014ff: NOT 00001500: AND 00001501: PUSH1 0x00 00001503: NOT 00001504: AND 00001505: DUP2 00001506: MSTORE 00001507: PUSH1 0x20 00001509: ADD 0000150a: SWAP11 0000150b: POP 0000150c: POP 0000150d: POP 0000150e: POP 0000150f: POP 00001510: POP 00001511: POP 00001512: POP 00001513: POP 00001514: POP 00001515: POP 00001516: PUSH1 0x40 00001518: MLOAD 00001519: DUP1 0000151a: SWAP2 0000151b: SUB 0000151c: SWAP1 0000151d: LOG1 0000151e: POP 0000151f: POP 00001520: POP 00001521: POP 00001522: POP 00001523: POP 00001524: POP 00001525: POP 00001526: POP 00001527: POP 00001528: JUMP 00001529: JUMPDEST 0000152a: DUP1 0000152b: PUSH1 0x04 0000152d: PUSH1 0x00 0000152f: DUP1 00001530: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001545: AND 00001546: DUP2 00001547: MSTORE 00001548: PUSH1 0x20 0000154a: ADD 0000154b: SWAP1 0000154c: DUP2 0000154d: MSTORE 0000154e: PUSH1 0x20 00001550: ADD 00001551: PUSH1 0x00 00001553: KECCAK256 00001554: PUSH1 0x00 00001556: CALLER 00001557: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000156c: AND 0000156d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001582: AND 00001583: DUP2 00001584: MSTORE 00001585: PUSH1 0x20 00001587: ADD 00001588: SWAP1 00001589: DUP2 0000158a: MSTORE 0000158b: PUSH1 0x20 0000158d: ADD 0000158e: PUSH1 0x00 00001590: KECCAK256 00001591: SLOAD 00001592: LT 00001593: ISZERO 00001594: ISZERO 00001595: ISZERO 00001596: PUSH2 0x159e 00001599: JUMPI 0000159a: PUSH1 0x00 0000159c: DUP1 0000159d: REVERT 0000159e: JUMPDEST 0000159f: PUSH2 0x1617 000015a2: DUP2 000015a3: PUSH1 0x04 000015a5: PUSH1 0x00 000015a7: DUP1 000015a8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015bd: AND 000015be: DUP2 000015bf: MSTORE 000015c0: PUSH1 0x20 000015c2: ADD 000015c3: SWAP1 000015c4: DUP2 000015c5: MSTORE 000015c6: PUSH1 0x20 000015c8: ADD 000015c9: PUSH1 0x00 000015cb: KECCAK256 000015cc: PUSH1 0x00 000015ce: CALLER 000015cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015e4: AND 000015e5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015fa: AND 000015fb: DUP2 000015fc: MSTORE 000015fd: PUSH1 0x20 000015ff: ADD 00001600: SWAP1 00001601: DUP2 00001602: MSTORE 00001603: PUSH1 0x20 00001605: ADD 00001606: PUSH1 0x00 00001608: KECCAK256 00001609: SLOAD 0000160a: PUSH2 0x3a0c 0000160d: SWAP1 0000160e: SWAP2 0000160f: SWAP1 00001610: PUSH4 0xffffffff 00001615: AND 00001616: JUMP 00001617: JUMPDEST 00001618: PUSH1 0x04 0000161a: PUSH1 0x00 0000161c: DUP1 0000161d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001632: AND 00001633: DUP2 00001634: MSTORE 00001635: PUSH1 0x20 00001637: ADD 00001638: SWAP1 00001639: DUP2 0000163a: MSTORE 0000163b: PUSH1 0x20 0000163d: ADD 0000163e: PUSH1 0x00 00001640: KECCAK256 00001641: PUSH1 0x00 00001643: CALLER 00001644: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001659: AND 0000165a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000166f: AND 00001670: DUP2 00001671: MSTORE 00001672: PUSH1 0x20 00001674: ADD 00001675: SWAP1 00001676: DUP2 00001677: MSTORE 00001678: PUSH1 0x20 0000167a: ADD 0000167b: PUSH1 0x00 0000167d: KECCAK256 0000167e: DUP2 0000167f: SWAP1 00001680: SSTORE 00001681: POP 00001682: CALLER 00001683: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001698: AND 00001699: PUSH2 0x08fc 0000169c: DUP3 0000169d: SWAP1 0000169e: DUP2 0000169f: ISZERO 000016a0: MUL 000016a1: SWAP1 000016a2: PUSH1 0x40 000016a4: MLOAD 000016a5: PUSH1 0x00 000016a7: PUSH1 0x40 000016a9: MLOAD 000016aa: DUP1 000016ab: DUP4 000016ac: SUB 000016ad: DUP2 000016ae: DUP6 000016af: DUP9 000016b0: DUP9 000016b1: CALL 000016b2: SWAP4 000016b3: POP 000016b4: POP 000016b5: POP 000016b6: POP 000016b7: ISZERO 000016b8: DUP1 000016b9: ISZERO 000016ba: PUSH2 0x16c7 000016bd: JUMPI 000016be: RETURNDATASIZE 000016bf: PUSH1 0x00 000016c1: DUP1 000016c2: RETURNDATACOPY 000016c3: RETURNDATASIZE 000016c4: PUSH1 0x00 000016c6: REVERT 000016c7: JUMPDEST 000016c8: POP 000016c9: PUSH32 0xf341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567 000016ea: PUSH1 0x00 000016ec: CALLER 000016ed: DUP4 000016ee: PUSH1 0x04 000016f0: PUSH1 0x00 000016f2: DUP1 000016f3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001708: AND 00001709: DUP2 0000170a: MSTORE 0000170b: PUSH1 0x20 0000170d: ADD 0000170e: SWAP1 0000170f: DUP2 00001710: MSTORE 00001711: PUSH1 0x20 00001713: ADD 00001714: PUSH1 0x00 00001716: KECCAK256 00001717: PUSH1 0x00 00001719: CALLER 0000171a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000172f: AND 00001730: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001745: AND 00001746: DUP2 00001747: MSTORE 00001748: PUSH1 0x20 0000174a: ADD 0000174b: SWAP1 0000174c: DUP2 0000174d: MSTORE 0000174e: PUSH1 0x20 00001750: ADD 00001751: PUSH1 0x00 00001753: KECCAK256 00001754: SLOAD 00001755: PUSH1 0x40 00001757: MLOAD 00001758: DUP1 00001759: DUP6 0000175a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000176f: AND 00001770: DUP2 00001771: MSTORE 00001772: PUSH1 0x20 00001774: ADD 00001775: DUP5 00001776: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000178b: AND 0000178c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017a1: AND 000017a2: DUP2 000017a3: MSTORE 000017a4: PUSH1 0x20 000017a6: ADD 000017a7: DUP4 000017a8: DUP2 000017a9: MSTORE 000017aa: PUSH1 0x20 000017ac: ADD 000017ad: DUP3 000017ae: DUP2 000017af: MSTORE 000017b0: PUSH1 0x20 000017b2: ADD 000017b3: SWAP5 000017b4: POP 000017b5: POP 000017b6: POP 000017b7: POP 000017b8: POP 000017b9: PUSH1 0x40 000017bb: MLOAD 000017bc: DUP1 000017bd: SWAP2 000017be: SUB 000017bf: SWAP1 000017c0: LOG1 000017c1: POP 000017c2: JUMP 000017c3: JUMPDEST 000017c4: PUSH1 0x00 000017c6: DUP3 000017c7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017dc: AND 000017dd: EQ 000017de: ISZERO 000017df: ISZERO 000017e0: ISZERO 000017e1: PUSH2 0x17e9 000017e4: JUMPI 000017e5: PUSH1 0x00 000017e7: DUP1 000017e8: REVERT 000017e9: JUMPDEST 000017ea: PUSH1 0x01 000017ec: PUSH1 0x03 000017ee: PUSH1 0x00 000017f0: PUSH2 0x0100 000017f3: EXP 000017f4: DUP2 000017f5: SLOAD 000017f6: DUP2 000017f7: PUSH1 0xff 000017f9: MUL 000017fa: NOT 000017fb: AND 000017fc: SWAP1 000017fd: DUP4 000017fe: ISZERO 000017ff: ISZERO 00001800: MUL 00001801: OR 00001802: SWAP1 00001803: SSTORE 00001804: POP 00001805: DUP2 00001806: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000181b: AND 0000181c: PUSH4 0x23b872dd 00001821: CALLER 00001822: ADDRESS 00001823: DUP5 00001824: PUSH1 0x40 00001826: MLOAD 00001827: DUP5 00001828: PUSH4 0xffffffff 0000182d: AND 0000182e: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 0000184c: MUL 0000184d: DUP2 0000184e: MSTORE 0000184f: PUSH1 0x04 00001851: ADD 00001852: DUP1 00001853: DUP5 00001854: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001869: AND 0000186a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000187f: AND 00001880: DUP2 00001881: MSTORE 00001882: PUSH1 0x20 00001884: ADD 00001885: DUP4 00001886: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000189b: AND 0000189c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018b1: AND 000018b2: DUP2 000018b3: MSTORE 000018b4: PUSH1 0x20 000018b6: ADD 000018b7: DUP3 000018b8: DUP2 000018b9: MSTORE 000018ba: PUSH1 0x20 000018bc: ADD 000018bd: SWAP4 000018be: POP 000018bf: POP 000018c0: POP 000018c1: POP 000018c2: PUSH1 0x20 000018c4: PUSH1 0x40 000018c6: MLOAD 000018c7: DUP1 000018c8: DUP4 000018c9: SUB 000018ca: DUP2 000018cb: PUSH1 0x00 000018cd: DUP8 000018ce: DUP1 000018cf: EXTCODESIZE 000018d0: ISZERO 000018d1: DUP1 000018d2: ISZERO 000018d3: PUSH2 0x18db 000018d6: JUMPI 000018d7: PUSH1 0x00 000018d9: DUP1 000018da: REVERT 000018db: JUMPDEST 000018dc: POP 000018dd: GAS 000018de: CALL 000018df: ISZERO 000018e0: DUP1 000018e1: ISZERO 000018e2: PUSH2 0x18ef 000018e5: JUMPI 000018e6: RETURNDATASIZE 000018e7: PUSH1 0x00 000018e9: DUP1 000018ea: RETURNDATACOPY 000018eb: RETURNDATASIZE 000018ec: PUSH1 0x00 000018ee: REVERT 000018ef: JUMPDEST 000018f0: POP 000018f1: POP 000018f2: POP 000018f3: POP 000018f4: PUSH1 0x40 000018f6: MLOAD 000018f7: RETURNDATASIZE 000018f8: PUSH1 0x20 000018fa: DUP2 000018fb: LT 000018fc: ISZERO 000018fd: PUSH2 0x1905 00001900: JUMPI 00001901: PUSH1 0x00 00001903: DUP1 00001904: REVERT 00001905: JUMPDEST 00001906: DUP2 00001907: ADD 00001908: SWAP1 00001909: DUP1 0000190a: DUP1 0000190b: MLOAD 0000190c: SWAP1 0000190d: PUSH1 0x20 0000190f: ADD 00001910: SWAP1 00001911: SWAP3 00001912: SWAP2 00001913: SWAP1 00001914: POP 00001915: POP 00001916: POP 00001917: ISZERO 00001918: ISZERO 00001919: PUSH2 0x1921 0000191c: JUMPI 0000191d: PUSH1 0x00 0000191f: DUP1 00001920: REVERT 00001921: JUMPDEST 00001922: PUSH1 0x00 00001924: PUSH1 0x03 00001926: PUSH1 0x00 00001928: PUSH2 0x0100 0000192b: EXP 0000192c: DUP2 0000192d: SLOAD 0000192e: DUP2 0000192f: PUSH1 0xff 00001931: MUL 00001932: NOT 00001933: AND 00001934: SWAP1 00001935: DUP4 00001936: ISZERO 00001937: ISZERO 00001938: MUL 00001939: OR 0000193a: SWAP1 0000193b: SSTORE 0000193c: POP 0000193d: PUSH2 0x19cb 00001940: DUP2 00001941: PUSH1 0x04 00001943: PUSH1 0x00 00001945: DUP6 00001946: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000195b: AND 0000195c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001971: AND 00001972: DUP2 00001973: MSTORE 00001974: PUSH1 0x20 00001976: ADD 00001977: SWAP1 00001978: DUP2 00001979: MSTORE 0000197a: PUSH1 0x20 0000197c: ADD 0000197d: PUSH1 0x00 0000197f: KECCAK256 00001980: PUSH1 0x00 00001982: CALLER 00001983: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001998: AND 00001999: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019ae: AND 000019af: DUP2 000019b0: MSTORE 000019b1: PUSH1 0x20 000019b3: ADD 000019b4: SWAP1 000019b5: DUP2 000019b6: MSTORE 000019b7: PUSH1 0x20 000019b9: ADD 000019ba: PUSH1 0x00 000019bc: KECCAK256 000019bd: SLOAD 000019be: PUSH2 0x33a7 000019c1: SWAP1 000019c2: SWAP2 000019c3: SWAP1 000019c4: PUSH4 0xffffffff 000019c9: AND 000019ca: JUMP 000019cb: JUMPDEST 000019cc: PUSH1 0x04 000019ce: PUSH1 0x00 000019d0: DUP5 000019d1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019e6: AND 000019e7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019fc: AND 000019fd: DUP2 000019fe: MSTORE 000019ff: PUSH1 0x20 00001a01: ADD 00001a02: SWAP1 00001a03: DUP2 00001a04: MSTORE 00001a05: PUSH1 0x20 00001a07: ADD 00001a08: PUSH1 0x00 00001a0a: KECCAK256 00001a0b: PUSH1 0x00 00001a0d: CALLER 00001a0e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a23: AND 00001a24: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a39: AND 00001a3a: DUP2 00001a3b: MSTORE 00001a3c: PUSH1 0x20 00001a3e: ADD 00001a3f: SWAP1 00001a40: DUP2 00001a41: MSTORE 00001a42: PUSH1 0x20 00001a44: ADD 00001a45: PUSH1 0x00 00001a47: KECCAK256 00001a48: DUP2 00001a49: SWAP1 00001a4a: SSTORE 00001a4b: POP 00001a4c: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7 00001a6d: DUP3 00001a6e: CALLER 00001a6f: DUP4 00001a70: PUSH1 0x04 00001a72: PUSH1 0x00 00001a74: DUP8 00001a75: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a8a: AND 00001a8b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001aa0: AND 00001aa1: DUP2 00001aa2: MSTORE 00001aa3: PUSH1 0x20 00001aa5: ADD 00001aa6: SWAP1 00001aa7: DUP2 00001aa8: MSTORE 00001aa9: PUSH1 0x20 00001aab: ADD 00001aac: PUSH1 0x00 00001aae: KECCAK256 00001aaf: PUSH1 0x00 00001ab1: CALLER 00001ab2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ac7: AND 00001ac8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001add: AND 00001ade: DUP2 00001adf: MSTORE 00001ae0: PUSH1 0x20 00001ae2: ADD 00001ae3: SWAP1 00001ae4: DUP2 00001ae5: MSTORE 00001ae6: PUSH1 0x20 00001ae8: ADD 00001ae9: PUSH1 0x00 00001aeb: KECCAK256 00001aec: SLOAD 00001aed: PUSH1 0x40 00001aef: MLOAD 00001af0: DUP1 00001af1: DUP6 00001af2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b07: AND 00001b08: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b1d: AND 00001b1e: DUP2 00001b1f: MSTORE 00001b20: PUSH1 0x20 00001b22: ADD 00001b23: DUP5 00001b24: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b39: AND 00001b3a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b4f: AND 00001b50: DUP2 00001b51: MSTORE 00001b52: PUSH1 0x20 00001b54: ADD 00001b55: DUP4 00001b56: DUP2 00001b57: MSTORE 00001b58: PUSH1 0x20 00001b5a: ADD 00001b5b: DUP3 00001b5c: DUP2 00001b5d: MSTORE 00001b5e: PUSH1 0x20 00001b60: ADD 00001b61: SWAP5 00001b62: POP 00001b63: POP 00001b64: POP 00001b65: POP 00001b66: POP 00001b67: PUSH1 0x40 00001b69: MLOAD 00001b6a: DUP1 00001b6b: SWAP2 00001b6c: SUB 00001b6d: SWAP1 00001b6e: LOG1 00001b6f: POP 00001b70: POP 00001b71: JUMP 00001b72: JUMPDEST 00001b73: PUSH1 0x00 00001b75: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b8a: AND 00001b8b: DUP4 00001b8c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ba1: AND 00001ba2: EQ 00001ba3: ISZERO 00001ba4: ISZERO 00001ba5: ISZERO 00001ba6: PUSH2 0x1bae 00001ba9: JUMPI 00001baa: PUSH1 0x00 00001bac: DUP1 00001bad: REVERT 00001bae: JUMPDEST 00001baf: PUSH1 0x00 00001bb1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bc6: AND 00001bc7: DUP2 00001bc8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bdd: AND 00001bde: EQ 00001bdf: ISZERO 00001be0: ISZERO 00001be1: ISZERO 00001be2: PUSH2 0x1bea 00001be5: JUMPI 00001be6: PUSH1 0x00 00001be8: DUP1 00001be9: REVERT 00001bea: JUMPDEST 00001beb: PUSH1 0x00 00001bed: DUP3 00001bee: GT 00001bef: ISZERO 00001bf0: ISZERO 00001bf1: PUSH2 0x1bf9 00001bf4: JUMPI 00001bf5: PUSH1 0x00 00001bf7: DUP1 00001bf8: REVERT 00001bf9: JUMPDEST 00001bfa: PUSH1 0x01 00001bfc: PUSH1 0x03 00001bfe: PUSH1 0x00 00001c00: PUSH2 0x0100 00001c03: EXP 00001c04: DUP2 00001c05: SLOAD 00001c06: DUP2 00001c07: PUSH1 0xff 00001c09: MUL 00001c0a: NOT 00001c0b: AND 00001c0c: SWAP1 00001c0d: DUP4 00001c0e: ISZERO 00001c0f: ISZERO 00001c10: MUL 00001c11: OR 00001c12: SWAP1 00001c13: SSTORE 00001c14: POP 00001c15: DUP3 00001c16: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c2b: AND 00001c2c: PUSH4 0x23b872dd 00001c31: CALLER 00001c32: ADDRESS 00001c33: DUP6 00001c34: PUSH1 0x40 00001c36: MLOAD 00001c37: DUP5 00001c38: PUSH4 0xffffffff 00001c3d: AND 00001c3e: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00001c5c: MUL 00001c5d: DUP2 00001c5e: MSTORE 00001c5f: PUSH1 0x04 00001c61: ADD 00001c62: DUP1 00001c63: DUP5 00001c64: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c79: AND 00001c7a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c8f: AND 00001c90: DUP2 00001c91: MSTORE 00001c92: PUSH1 0x20 00001c94: ADD 00001c95: DUP4 00001c96: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cab: AND 00001cac: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cc1: AND 00001cc2: DUP2 00001cc3: MSTORE 00001cc4: PUSH1 0x20 00001cc6: ADD 00001cc7: DUP3 00001cc8: DUP2 00001cc9: MSTORE 00001cca: PUSH1 0x20 00001ccc: ADD 00001ccd: SWAP4 00001cce: POP 00001ccf: POP 00001cd0: POP 00001cd1: POP 00001cd2: PUSH1 0x20 00001cd4: PUSH1 0x40 00001cd6: MLOAD 00001cd7: DUP1 00001cd8: DUP4 00001cd9: SUB 00001cda: DUP2 00001cdb: PUSH1 0x00 00001cdd: DUP8 00001cde: DUP1 00001cdf: EXTCODESIZE 00001ce0: ISZERO 00001ce1: DUP1 00001ce2: ISZERO 00001ce3: PUSH2 0x1ceb 00001ce6: JUMPI 00001ce7: PUSH1 0x00 00001ce9: DUP1 00001cea: REVERT 00001ceb: JUMPDEST 00001cec: POP 00001ced: GAS 00001cee: CALL 00001cef: ISZERO 00001cf0: DUP1 00001cf1: ISZERO 00001cf2: PUSH2 0x1cff 00001cf5: JUMPI 00001cf6: RETURNDATASIZE 00001cf7: PUSH1 0x00 00001cf9: DUP1 00001cfa: RETURNDATACOPY 00001cfb: RETURNDATASIZE 00001cfc: PUSH1 0x00 00001cfe: REVERT 00001cff: JUMPDEST 00001d00: POP 00001d01: POP 00001d02: POP 00001d03: POP 00001d04: PUSH1 0x40 00001d06: MLOAD 00001d07: RETURNDATASIZE 00001d08: PUSH1 0x20 00001d0a: DUP2 00001d0b: LT 00001d0c: ISZERO 00001d0d: PUSH2 0x1d15 00001d10: JUMPI 00001d11: PUSH1 0x00 00001d13: DUP1 00001d14: REVERT 00001d15: JUMPDEST 00001d16: DUP2 00001d17: ADD 00001d18: SWAP1 00001d19: DUP1 00001d1a: DUP1 00001d1b: MLOAD 00001d1c: SWAP1 00001d1d: PUSH1 0x20 00001d1f: ADD 00001d20: SWAP1 00001d21: SWAP3 00001d22: SWAP2 00001d23: SWAP1 00001d24: POP 00001d25: POP 00001d26: POP 00001d27: ISZERO 00001d28: ISZERO 00001d29: PUSH2 0x1d31 00001d2c: JUMPI 00001d2d: PUSH1 0x00 00001d2f: DUP1 00001d30: REVERT 00001d31: JUMPDEST 00001d32: PUSH1 0x00 00001d34: PUSH1 0x03 00001d36: PUSH1 0x00 00001d38: PUSH2 0x0100 00001d3b: EXP 00001d3c: DUP2 00001d3d: SLOAD 00001d3e: DUP2 00001d3f: PUSH1 0xff 00001d41: MUL 00001d42: NOT 00001d43: AND 00001d44: SWAP1 00001d45: DUP4 00001d46: ISZERO 00001d47: ISZERO 00001d48: MUL 00001d49: OR 00001d4a: SWAP1 00001d4b: SSTORE 00001d4c: POP 00001d4d: PUSH2 0x1ddb 00001d50: DUP3 00001d51: PUSH1 0x04 00001d53: PUSH1 0x00 00001d55: DUP7 00001d56: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d6b: AND 00001d6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d81: AND 00001d82: DUP2 00001d83: MSTORE 00001d84: PUSH1 0x20 00001d86: ADD 00001d87: SWAP1 00001d88: DUP2 00001d89: MSTORE 00001d8a: PUSH1 0x20 00001d8c: ADD 00001d8d: PUSH1 0x00 00001d8f: KECCAK256 00001d90: PUSH1 0x00 00001d92: DUP5 00001d93: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001da8: AND 00001da9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001dbe: AND 00001dbf: DUP2 00001dc0: MSTORE 00001dc1: PUSH1 0x20 00001dc3: ADD 00001dc4: SWAP1 00001dc5: DUP2 00001dc6: MSTORE 00001dc7: PUSH1 0x20 00001dc9: ADD 00001dca: PUSH1 0x00 00001dcc: KECCAK256 00001dcd: SLOAD 00001dce: PUSH2 0x33a7 00001dd1: SWAP1 00001dd2: SWAP2 00001dd3: SWAP1 00001dd4: PUSH4 0xffffffff 00001dd9: AND 00001dda: JUMP 00001ddb: JUMPDEST 00001ddc: PUSH1 0x04 00001dde: PUSH1 0x00 00001de0: DUP6 00001de1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001df6: AND 00001df7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e0c: AND 00001e0d: DUP2 00001e0e: MSTORE 00001e0f: PUSH1 0x20 00001e11: ADD 00001e12: SWAP1 00001e13: DUP2 00001e14: MSTORE 00001e15: PUSH1 0x20 00001e17: ADD 00001e18: PUSH1 0x00 00001e1a: KECCAK256 00001e1b: PUSH1 0x00 00001e1d: DUP4 00001e1e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e33: AND 00001e34: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e49: AND 00001e4a: DUP2 00001e4b: MSTORE 00001e4c: PUSH1 0x20 00001e4e: ADD 00001e4f: SWAP1 00001e50: DUP2 00001e51: MSTORE 00001e52: PUSH1 0x20 00001e54: ADD 00001e55: PUSH1 0x00 00001e57: KECCAK256 00001e58: DUP2 00001e59: SWAP1 00001e5a: SSTORE 00001e5b: POP 00001e5c: POP 00001e5d: POP 00001e5e: POP 00001e5f: JUMP 00001e60: JUMPDEST 00001e61: PUSH1 0x00 00001e63: DUP1 00001e64: PUSH1 0x02 00001e66: ADDRESS 00001e67: DUP14 00001e68: DUP14 00001e69: DUP14 00001e6a: DUP14 00001e6b: DUP14 00001e6c: DUP14 00001e6d: PUSH1 0x40 00001e6f: MLOAD 00001e70: DUP1 00001e71: DUP9 00001e72: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e87: AND 00001e88: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e9d: AND 00001e9e: PUSH13 0x01000000000000000000000000 00001eac: MUL 00001ead: DUP2 00001eae: MSTORE 00001eaf: PUSH1 0x14 00001eb1: ADD 00001eb2: DUP8 00001eb3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ec8: AND 00001ec9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ede: AND 00001edf: PUSH13 0x01000000000000000000000000 00001eed: MUL 00001eee: DUP2 00001eef: MSTORE 00001ef0: PUSH1 0x14 00001ef2: ADD 00001ef3: DUP7 00001ef4: DUP2 00001ef5: MSTORE 00001ef6: PUSH1 0x20 00001ef8: ADD 00001ef9: DUP6 00001efa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f0f: AND 00001f10: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f25: AND 00001f26: PUSH13 0x01000000000000000000000000 00001f34: MUL 00001f35: DUP2 00001f36: MSTORE 00001f37: PUSH1 0x14 00001f39: ADD 00001f3a: DUP5 00001f3b: DUP2 00001f3c: MSTORE 00001f3d: PUSH1 0x20 00001f3f: ADD 00001f40: DUP4 00001f41: DUP2 00001f42: MSTORE 00001f43: PUSH1 0x20 00001f45: ADD 00001f46: DUP3 00001f47: DUP2 00001f48: MSTORE 00001f49: PUSH1 0x20 00001f4b: ADD 00001f4c: SWAP8 00001f4d: POP 00001f4e: POP 00001f4f: POP 00001f50: POP 00001f51: POP 00001f52: POP 00001f53: POP 00001f54: POP 00001f55: PUSH1 0x20 00001f57: PUSH1 0x40 00001f59: MLOAD 00001f5a: DUP1 00001f5b: DUP4 00001f5c: SUB 00001f5d: DUP2 00001f5e: PUSH1 0x00 00001f60: DUP7 00001f61: GAS 00001f62: CALL 00001f63: ISZERO 00001f64: DUP1 00001f65: ISZERO 00001f66: PUSH2 0x1f73 00001f69: JUMPI 00001f6a: RETURNDATASIZE 00001f6b: PUSH1 0x00 00001f6d: DUP1 00001f6e: RETURNDATACOPY 00001f6f: RETURNDATASIZE 00001f70: PUSH1 0x00 00001f72: REVERT 00001f73: JUMPDEST 00001f74: POP 00001f75: POP 00001f76: POP 00001f77: PUSH1 0x40 00001f79: MLOAD 00001f7a: RETURNDATASIZE 00001f7b: PUSH1 0x20 00001f7d: DUP2 00001f7e: LT 00001f7f: ISZERO 00001f80: PUSH2 0x1f88 00001f83: JUMPI 00001f84: PUSH1 0x00 00001f86: DUP1 00001f87: REVERT 00001f88: JUMPDEST 00001f89: DUP2 00001f8a: ADD 00001f8b: SWAP1 00001f8c: DUP1 00001f8d: DUP1 00001f8e: MLOAD 00001f8f: SWAP1 00001f90: PUSH1 0x20 00001f92: ADD 00001f93: SWAP1 00001f94: SWAP3 00001f95: SWAP2 00001f96: SWAP1 00001f97: POP 00001f98: POP 00001f99: POP 00001f9a: SWAP1 00001f9b: POP 00001f9c: PUSH1 0x05 00001f9e: PUSH1 0x00 00001fa0: DUP8 00001fa1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001fb6: AND 00001fb7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001fcc: AND 00001fcd: DUP2 00001fce: MSTORE 00001fcf: PUSH1 0x20 00001fd1: ADD 00001fd2: SWAP1 00001fd3: DUP2 00001fd4: MSTORE 00001fd5: PUSH1 0x20 00001fd7: ADD 00001fd8: PUSH1 0x00 00001fda: KECCAK256 00001fdb: PUSH1 0x00 00001fdd: DUP3 00001fde: PUSH1 0x00 00001fe0: NOT 00001fe1: AND 00001fe2: PUSH1 0x00 00001fe4: NOT 00001fe5: AND 00001fe6: DUP2 00001fe7: MSTORE 00001fe8: PUSH1 0x20 00001fea: ADD 00001feb: SWAP1 00001fec: DUP2 00001fed: MSTORE 00001fee: PUSH1 0x20 00001ff0: ADD 00001ff1: PUSH1 0x00 00001ff3: KECCAK256 00001ff4: SLOAD 00001ff5: SWAP2 00001ff6: POP 00001ff7: POP 00001ff8: SWAP11 00001ff9: SWAP10 00001ffa: POP 00001ffb: POP 00001ffc: POP 00001ffd: POP 00001ffe: POP 00001fff: POP 00002000: POP 00002001: POP 00002002: POP 00002003: POP 00002004: JUMP 00002005: JUMPDEST 00002006: PUSH1 0x00 00002008: DUP1 00002009: PUSH1 0x00 0000200b: DUP1 0000200c: SWAP1 0000200d: SLOAD 0000200e: SWAP1 0000200f: PUSH2 0x0100 00002012: EXP 00002013: SWAP1 00002014: DIV 00002015: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000202a: AND 0000202b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002040: AND 00002041: CALLER 00002042: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002057: AND 00002058: EQ 00002059: ISZERO 0000205a: ISZERO 0000205b: PUSH2 0x2063 0000205e: JUMPI 0000205f: PUSH1 0x00 00002061: DUP1 00002062: REVERT 00002063: JUMPDEST 00002064: PUSH1 0x06 00002066: DUP1 00002067: SLOAD 00002068: SWAP1 00002069: POP 0000206a: DUP4 0000206b: LT 0000206c: ISZERO 0000206d: ISZERO 0000206e: PUSH2 0x2076 00002071: JUMPI 00002072: PUSH1 0x00 00002074: DUP1 00002075: REVERT 00002076: JUMPDEST 00002077: PUSH1 0x01 00002079: PUSH1 0x06 0000207b: DUP1 0000207c: SLOAD 0000207d: SWAP1 0000207e: POP 0000207f: SUB 00002080: SWAP2 00002081: POP 00002082: DUP3 00002083: SWAP1 00002084: POP 00002085: JUMPDEST 00002086: DUP2 00002087: DUP2 00002088: LT 00002089: ISZERO 0000208a: PUSH2 0x2182 0000208d: JUMPI 0000208e: PUSH1 0x06 00002090: PUSH1 0x01 00002092: DUP3 00002093: ADD 00002094: DUP2 00002095: SLOAD 00002096: DUP2 00002097: LT 00002098: ISZERO 00002099: ISZERO 0000209a: PUSH2 0x209f 0000209d: JUMPI 0000209e: INVALID 0000209f: JUMPDEST 000020a0: SWAP1 000020a1: PUSH1 0x00 000020a3: MSTORE 000020a4: PUSH1 0x20 000020a6: PUSH1 0x00 000020a8: KECCAK256 000020a9: SWAP1 000020aa: PUSH1 0x03 000020ac: MUL 000020ad: ADD 000020ae: PUSH1 0x06 000020b0: DUP3 000020b1: DUP2 000020b2: SLOAD 000020b3: DUP2 000020b4: LT 000020b5: ISZERO 000020b6: ISZERO 000020b7: PUSH2 0x20bc 000020ba: JUMPI 000020bb: INVALID 000020bc: JUMPDEST 000020bd: SWAP1 000020be: PUSH1 0x00 000020c0: MSTORE 000020c1: PUSH1 0x20 000020c3: PUSH1 0x00 000020c5: KECCAK256 000020c6: SWAP1 000020c7: PUSH1 0x03 000020c9: MUL 000020ca: ADD 000020cb: PUSH1 0x00 000020cd: DUP3 000020ce: ADD 000020cf: PUSH1 0x00 000020d1: SWAP1 000020d2: SLOAD 000020d3: SWAP1 000020d4: PUSH2 0x0100 000020d7: EXP 000020d8: SWAP1 000020d9: DIV 000020da: PUSH1 0xff 000020dc: AND 000020dd: DUP2 000020de: PUSH1 0x00 000020e0: ADD 000020e1: PUSH1 0x00 000020e3: PUSH2 0x0100 000020e6: EXP 000020e7: DUP2 000020e8: SLOAD 000020e9: DUP2 000020ea: PUSH1 0xff 000020ec: MUL 000020ed: NOT 000020ee: AND 000020ef: SWAP1 000020f0: DUP4 000020f1: ISZERO 000020f2: ISZERO 000020f3: MUL 000020f4: OR 000020f5: SWAP1 000020f6: SSTORE 000020f7: POP 000020f8: PUSH1 0x00 000020fa: DUP3 000020fb: ADD 000020fc: PUSH1 0x01 000020fe: SWAP1 000020ff: SLOAD 00002100: SWAP1 00002101: PUSH2 0x0100 00002104: EXP 00002105: SWAP1 00002106: DIV 00002107: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000211c: AND 0000211d: DUP2 0000211e: PUSH1 0x00 00002120: ADD 00002121: PUSH1 0x01 00002123: PUSH2 0x0100 00002126: EXP 00002127: DUP2 00002128: SLOAD 00002129: DUP2 0000212a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000213f: MUL 00002140: NOT 00002141: AND 00002142: SWAP1 00002143: DUP4 00002144: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002159: AND 0000215a: MUL 0000215b: OR 0000215c: SWAP1 0000215d: SSTORE 0000215e: POP 0000215f: PUSH1 0x01 00002161: DUP3 00002162: ADD 00002163: SLOAD 00002164: DUP2 00002165: PUSH1 0x01 00002167: ADD 00002168: SSTORE 00002169: PUSH1 0x02 0000216b: DUP3 0000216c: ADD 0000216d: SLOAD 0000216e: DUP2 0000216f: PUSH1 0x02 00002171: ADD 00002172: SSTORE 00002173: SWAP1 00002174: POP 00002175: POP 00002176: DUP1 00002177: DUP1 00002178: PUSH1 0x01 0000217a: ADD 0000217b: SWAP2 0000217c: POP 0000217d: POP 0000217e: PUSH2 0x2085 00002181: JUMP 00002182: JUMPDEST 00002183: PUSH1 0x06 00002185: DUP3 00002186: DUP2 00002187: SLOAD 00002188: DUP2 00002189: LT 0000218a: ISZERO 0000218b: ISZERO 0000218c: PUSH2 0x2191 0000218f: JUMPI 00002190: INVALID 00002191: JUMPDEST 00002192: SWAP1 00002193: PUSH1 0x00 00002195: MSTORE 00002196: PUSH1 0x20 00002198: PUSH1 0x00 0000219a: KECCAK256 0000219b: SWAP1 0000219c: PUSH1 0x03 0000219e: MUL 0000219f: ADD 000021a0: PUSH1 0x00 000021a2: DUP1 000021a3: DUP3 000021a4: ADD 000021a5: PUSH1 0x00 000021a7: PUSH2 0x0100 000021aa: EXP 000021ab: DUP2 000021ac: SLOAD 000021ad: SWAP1 000021ae: PUSH1 0xff 000021b0: MUL 000021b1: NOT 000021b2: AND 000021b3: SWAP1 000021b4: SSTORE 000021b5: PUSH1 0x00 000021b7: DUP3 000021b8: ADD 000021b9: PUSH1 0x01 000021bb: PUSH2 0x0100 000021be: EXP 000021bf: DUP2 000021c0: SLOAD 000021c1: SWAP1 000021c2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000021d7: MUL 000021d8: NOT 000021d9: AND 000021da: SWAP1 000021db: SSTORE 000021dc: PUSH1 0x01 000021de: DUP3 000021df: ADD 000021e0: PUSH1 0x00 000021e2: SWAP1 000021e3: SSTORE 000021e4: PUSH1 0x02 000021e6: DUP3 000021e7: ADD 000021e8: PUSH1 0x00 000021ea: SWAP1 000021eb: SSTORE 000021ec: POP 000021ed: POP 000021ee: PUSH1 0x06 000021f0: DUP1 000021f1: SLOAD 000021f2: DUP1 000021f3: SWAP2 000021f4: SWAP1 000021f5: PUSH1 0x01 000021f7: SWAP1 000021f8: SUB 000021f9: PUSH2 0x2202 000021fc: SWAP2 000021fd: SWAP1 000021fe: PUSH2 0x3c7b 00002201: JUMP 00002202: JUMPDEST 00002203: POP 00002204: POP 00002205: POP 00002206: POP 00002207: JUMP 00002208: JUMPDEST 00002209: PUSH1 0x04 0000220b: PUSH1 0x20 0000220d: MSTORE 0000220e: DUP2 0000220f: PUSH1 0x00 00002211: MSTORE 00002212: PUSH1 0x40 00002214: PUSH1 0x00 00002216: KECCAK256 00002217: PUSH1 0x20 00002219: MSTORE 0000221a: DUP1 0000221b: PUSH1 0x00 0000221d: MSTORE 0000221e: PUSH1 0x40 00002220: PUSH1 0x00 00002222: KECCAK256 00002223: PUSH1 0x00 00002225: SWAP2 00002226: POP 00002227: SWAP2 00002228: POP 00002229: POP 0000222a: SLOAD 0000222b: DUP2 0000222c: JUMP 0000222d: JUMPDEST 0000222e: PUSH1 0x01 00002230: PUSH1 0x00 00002232: SWAP1 00002233: SLOAD 00002234: SWAP1 00002235: PUSH2 0x0100 00002238: EXP 00002239: SWAP1 0000223a: DIV 0000223b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002250: AND 00002251: DUP2 00002252: JUMP 00002253: JUMPDEST 00002254: PUSH1 0x00 00002256: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000226b: AND 0000226c: DUP2 0000226d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002282: AND 00002283: EQ 00002284: ISZERO 00002285: ISZERO 00002286: ISZERO 00002287: PUSH2 0x228f 0000228a: JUMPI 0000228b: PUSH1 0x00 0000228d: DUP1 0000228e: REVERT 0000228f: JUMPDEST 00002290: PUSH1 0x00 00002292: CALLVALUE 00002293: GT 00002294: ISZERO 00002295: ISZERO 00002296: PUSH2 0x229e 00002299: JUMPI 0000229a: PUSH1 0x00 0000229c: DUP1 0000229d: REVERT 0000229e: JUMPDEST 0000229f: PUSH2 0x2317 000022a2: CALLVALUE 000022a3: PUSH1 0x04 000022a5: PUSH1 0x00 000022a7: DUP1 000022a8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000022bd: AND 000022be: DUP2 000022bf: MSTORE 000022c0: PUSH1 0x20 000022c2: ADD 000022c3: SWAP1 000022c4: DUP2 000022c5: MSTORE 000022c6: PUSH1 0x20 000022c8: ADD 000022c9: PUSH1 0x00 000022cb: KECCAK256 000022cc: PUSH1 0x00 000022ce: DUP5 000022cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000022e4: AND 000022e5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000022fa: AND 000022fb: DUP2 000022fc: MSTORE 000022fd: PUSH1 0x20 000022ff: ADD 00002300: SWAP1 00002301: DUP2 00002302: MSTORE 00002303: PUSH1 0x20 00002305: ADD 00002306: PUSH1 0x00 00002308: KECCAK256 00002309: SLOAD 0000230a: PUSH2 0x33a7 0000230d: SWAP1 0000230e: SWAP2 0000230f: SWAP1 00002310: PUSH4 0xffffffff 00002315: AND 00002316: JUMP 00002317: JUMPDEST 00002318: PUSH1 0x04 0000231a: PUSH1 0x00 0000231c: DUP1 0000231d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002332: AND 00002333: DUP2 00002334: MSTORE 00002335: PUSH1 0x20 00002337: ADD 00002338: SWAP1 00002339: DUP2 0000233a: MSTORE 0000233b: PUSH1 0x20 0000233d: ADD 0000233e: PUSH1 0x00 00002340: KECCAK256 00002341: PUSH1 0x00 00002343: DUP4 00002344: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002359: AND 0000235a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000236f: AND 00002370: DUP2 00002371: MSTORE 00002372: PUSH1 0x20 00002374: ADD 00002375: SWAP1 00002376: DUP2 00002377: MSTORE 00002378: PUSH1 0x20 0000237a: ADD 0000237b: PUSH1 0x00 0000237d: KECCAK256 0000237e: DUP2 0000237f: SWAP1 00002380: SSTORE 00002381: POP 00002382: POP 00002383: JUMP 00002384: JUMPDEST 00002385: PUSH1 0x00 00002387: DUP3 00002388: PUSH1 0x04 0000238a: PUSH1 0x00 0000238c: DUP16 0000238d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000023a2: AND 000023a3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000023b8: AND 000023b9: DUP2 000023ba: MSTORE 000023bb: PUSH1 0x20 000023bd: ADD 000023be: SWAP1 000023bf: DUP2 000023c0: MSTORE 000023c1: PUSH1 0x20 000023c3: ADD 000023c4: PUSH1 0x00 000023c6: KECCAK256 000023c7: PUSH1 0x00 000023c9: DUP5 000023ca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000023df: AND 000023e0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000023f5: AND 000023f6: DUP2 000023f7: MSTORE 000023f8: PUSH1 0x20 000023fa: ADD 000023fb: SWAP1 000023fc: DUP2 000023fd: MSTORE 000023fe: PUSH1 0x20 00002400: ADD 00002401: PUSH1 0x00 00002403: KECCAK256 00002404: SLOAD 00002405: LT 00002406: ISZERO 00002407: DUP1 00002408: ISZERO 00002409: PUSH2 0x2423 0000240c: JUMPI 0000240d: POP 0000240e: DUP3 0000240f: PUSH2 0x2420 00002412: DUP15 00002413: DUP15 00002414: DUP15 00002415: DUP15 00002416: DUP15 00002417: DUP15 00002418: DUP15 00002419: DUP15 0000241a: DUP15 0000241b: DUP15 0000241c: PUSH2 0x2e66 0000241f: JUMP 00002420: JUMPDEST 00002421: LT 00002422: ISZERO 00002423: JUMPDEST 00002424: ISZERO 00002425: ISZERO 00002426: PUSH2 0x2432 00002429: JUMPI 0000242a: PUSH1 0x00 0000242c: SWAP1 0000242d: POP 0000242e: PUSH2 0x2437 00002431: JUMP 00002432: JUMPDEST 00002433: PUSH1 0x01 00002435: SWAP1 00002436: POP 00002437: JUMPDEST 00002438: SWAP13 00002439: SWAP12 0000243a: POP 0000243b: POP 0000243c: POP 0000243d: POP 0000243e: POP 0000243f: POP 00002440: POP 00002441: POP 00002442: POP 00002443: POP 00002444: POP 00002445: POP 00002446: JUMP 00002447: JUMPDEST 00002448: PUSH1 0x00 0000244a: DUP1 0000244b: SWAP1 0000244c: SLOAD 0000244d: SWAP1 0000244e: PUSH2 0x0100 00002451: EXP 00002452: SWAP1 00002453: DIV 00002454: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002469: AND 0000246a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000247f: AND 00002480: CALLER 00002481: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002496: AND 00002497: EQ 00002498: ISZERO 00002499: ISZERO 0000249a: PUSH2 0x24a2 0000249d: JUMPI 0000249e: PUSH1 0x00 000024a0: DUP1 000024a1: REVERT 000024a2: JUMPDEST 000024a3: DUP1 000024a4: PUSH1 0x01 000024a6: PUSH1 0x00 000024a8: PUSH2 0x0100 000024ab: EXP 000024ac: DUP2 000024ad: SLOAD 000024ae: DUP2 000024af: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024c4: MUL 000024c5: NOT 000024c6: AND 000024c7: SWAP1 000024c8: DUP4 000024c9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024de: AND 000024df: MUL 000024e0: OR 000024e1: SWAP1 000024e2: SSTORE 000024e3: POP 000024e4: POP 000024e5: JUMP 000024e6: JUMPDEST 000024e7: PUSH1 0x00 000024e9: DUP1 000024ea: SWAP1 000024eb: SLOAD 000024ec: SWAP1 000024ed: PUSH2 0x0100 000024f0: EXP 000024f1: SWAP1 000024f2: DIV 000024f3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002508: AND 00002509: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000251e: AND 0000251f: CALLER 00002520: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002535: AND 00002536: EQ 00002537: ISZERO 00002538: ISZERO 00002539: PUSH2 0x2541 0000253c: JUMPI 0000253d: PUSH1 0x00 0000253f: DUP1 00002540: REVERT 00002541: JUMPDEST 00002542: DUP1 00002543: PUSH1 0x02 00002545: DUP2 00002546: SWAP1 00002547: SSTORE 00002548: POP 00002549: POP 0000254a: JUMP 0000254b: JUMPDEST 0000254c: PUSH1 0x00 0000254e: DUP1 0000254f: SWAP1 00002550: SLOAD 00002551: SWAP1 00002552: PUSH2 0x0100 00002555: EXP 00002556: SWAP1 00002557: DIV 00002558: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000256d: AND 0000256e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002583: AND 00002584: CALLER 00002585: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000259a: AND 0000259b: EQ 0000259c: ISZERO 0000259d: ISZERO 0000259e: PUSH2 0x25a6 000025a1: JUMPI 000025a2: PUSH1 0x00 000025a4: DUP1 000025a5: REVERT 000025a6: JUMPDEST 000025a7: PUSH1 0x00 000025a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025be: AND 000025bf: DUP2 000025c0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025d5: AND 000025d6: EQ 000025d7: ISZERO 000025d8: ISZERO 000025d9: ISZERO 000025da: PUSH2 0x25e2 000025dd: JUMPI 000025de: PUSH1 0x00 000025e0: DUP1 000025e1: REVERT 000025e2: JUMPDEST 000025e3: DUP1 000025e4: PUSH1 0x00 000025e6: DUP1 000025e7: PUSH2 0x0100 000025ea: EXP 000025eb: DUP2 000025ec: SLOAD 000025ed: DUP2 000025ee: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002603: MUL 00002604: NOT 00002605: AND 00002606: SWAP1 00002607: DUP4 00002608: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000261d: AND 0000261e: MUL 0000261f: OR 00002620: SWAP1 00002621: SSTORE 00002622: POP 00002623: POP 00002624: JUMP 00002625: JUMPDEST 00002626: PUSH1 0x00 00002628: DUP3 00002629: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000263e: AND 0000263f: EQ 00002640: ISZERO 00002641: ISZERO 00002642: ISZERO 00002643: PUSH2 0x264b 00002646: JUMPI 00002647: PUSH1 0x00 00002649: DUP1 0000264a: REVERT 0000264b: JUMPDEST 0000264c: DUP1 0000264d: PUSH1 0x04 0000264f: PUSH1 0x00 00002651: DUP5 00002652: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002667: AND 00002668: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000267d: AND 0000267e: DUP2 0000267f: MSTORE 00002680: PUSH1 0x20 00002682: ADD 00002683: SWAP1 00002684: DUP2 00002685: MSTORE 00002686: PUSH1 0x20 00002688: ADD 00002689: PUSH1 0x00 0000268b: KECCAK256 0000268c: PUSH1 0x00 0000268e: CALLER 0000268f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000026a4: AND 000026a5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000026ba: AND 000026bb: DUP2 000026bc: MSTORE 000026bd: PUSH1 0x20 000026bf: ADD 000026c0: SWAP1 000026c1: DUP2 000026c2: MSTORE 000026c3: PUSH1 0x20 000026c5: ADD 000026c6: PUSH1 0x00 000026c8: KECCAK256 000026c9: SLOAD 000026ca: LT 000026cb: ISZERO 000026cc: ISZERO 000026cd: ISZERO 000026ce: PUSH2 0x26d6 000026d1: JUMPI 000026d2: PUSH1 0x00 000026d4: DUP1 000026d5: REVERT 000026d6: JUMPDEST 000026d7: PUSH2 0x2765 000026da: DUP2 000026db: PUSH1 0x04 000026dd: PUSH1 0x00 000026df: DUP6 000026e0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000026f5: AND 000026f6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000270b: AND 0000270c: DUP2 0000270d: MSTORE 0000270e: PUSH1 0x20 00002710: ADD 00002711: SWAP1 00002712: DUP2 00002713: MSTORE 00002714: PUSH1 0x20 00002716: ADD 00002717: PUSH1 0x00 00002719: KECCAK256 0000271a: PUSH1 0x00 0000271c: CALLER 0000271d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002732: AND 00002733: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002748: AND 00002749: DUP2 0000274a: MSTORE 0000274b: PUSH1 0x20 0000274d: ADD 0000274e: SWAP1 0000274f: DUP2 00002750: MSTORE 00002751: PUSH1 0x20 00002753: ADD 00002754: PUSH1 0x00 00002756: KECCAK256 00002757: SLOAD 00002758: PUSH2 0x3a0c 0000275b: SWAP1 0000275c: SWAP2 0000275d: SWAP1 0000275e: PUSH4 0xffffffff 00002763: AND 00002764: JUMP 00002765: JUMPDEST 00002766: PUSH1 0x04 00002768: PUSH1 0x00 0000276a: DUP5 0000276b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002780: AND 00002781: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002796: AND 00002797: DUP2 00002798: MSTORE 00002799: PUSH1 0x20 0000279b: ADD 0000279c: SWAP1 0000279d: DUP2 0000279e: MSTORE 0000279f: PUSH1 0x20 000027a1: ADD 000027a2: PUSH1 0x00 000027a4: KECCAK256 000027a5: PUSH1 0x00 000027a7: CALLER 000027a8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027bd: AND 000027be: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027d3: AND 000027d4: DUP2 000027d5: MSTORE 000027d6: PUSH1 0x20 000027d8: ADD 000027d9: SWAP1 000027da: DUP2 000027db: MSTORE 000027dc: PUSH1 0x20 000027de: ADD 000027df: PUSH1 0x00 000027e1: KECCAK256 000027e2: DUP2 000027e3: SWAP1 000027e4: SSTORE 000027e5: POP 000027e6: DUP2 000027e7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027fc: AND 000027fd: PUSH4 0xa9059cbb 00002802: CALLER 00002803: DUP4 00002804: PUSH1 0x40 00002806: MLOAD 00002807: DUP4 00002808: PUSH4 0xffffffff 0000280d: AND 0000280e: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 0000282c: MUL 0000282d: DUP2 0000282e: MSTORE 0000282f: PUSH1 0x04 00002831: ADD 00002832: DUP1 00002833: DUP4 00002834: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002849: AND 0000284a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000285f: AND 00002860: DUP2 00002861: MSTORE 00002862: PUSH1 0x20 00002864: ADD 00002865: DUP3 00002866: DUP2 00002867: MSTORE 00002868: PUSH1 0x20 0000286a: ADD 0000286b: SWAP3 0000286c: POP 0000286d: POP 0000286e: POP 0000286f: PUSH1 0x20 00002871: PUSH1 0x40 00002873: MLOAD 00002874: DUP1 00002875: DUP4 00002876: SUB 00002877: DUP2 00002878: PUSH1 0x00 0000287a: DUP8 0000287b: DUP1 0000287c: EXTCODESIZE 0000287d: ISZERO 0000287e: DUP1 0000287f: ISZERO 00002880: PUSH2 0x2888 00002883: JUMPI 00002884: PUSH1 0x00 00002886: DUP1 00002887: REVERT 00002888: JUMPDEST 00002889: POP 0000288a: GAS 0000288b: CALL 0000288c: ISZERO 0000288d: DUP1 0000288e: ISZERO 0000288f: PUSH2 0x289c 00002892: JUMPI 00002893: RETURNDATASIZE 00002894: PUSH1 0x00 00002896: DUP1 00002897: RETURNDATACOPY 00002898: RETURNDATASIZE 00002899: PUSH1 0x00 0000289b: REVERT 0000289c: JUMPDEST 0000289d: POP 0000289e: POP 0000289f: POP 000028a0: POP 000028a1: PUSH1 0x40 000028a3: MLOAD 000028a4: RETURNDATASIZE 000028a5: PUSH1 0x20 000028a7: DUP2 000028a8: LT 000028a9: ISZERO 000028aa: PUSH2 0x28b2 000028ad: JUMPI 000028ae: PUSH1 0x00 000028b0: DUP1 000028b1: REVERT 000028b2: JUMPDEST 000028b3: DUP2 000028b4: ADD 000028b5: SWAP1 000028b6: DUP1 000028b7: DUP1 000028b8: MLOAD 000028b9: SWAP1 000028ba: PUSH1 0x20 000028bc: ADD 000028bd: SWAP1 000028be: SWAP3 000028bf: SWAP2 000028c0: SWAP1 000028c1: POP 000028c2: POP 000028c3: POP 000028c4: ISZERO 000028c5: ISZERO 000028c6: PUSH2 0x28ce 000028c9: JUMPI 000028ca: PUSH1 0x00 000028cc: DUP1 000028cd: REVERT 000028ce: JUMPDEST 000028cf: PUSH32 0xf341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567 000028f0: DUP3 000028f1: CALLER 000028f2: DUP4 000028f3: PUSH1 0x04 000028f5: PUSH1 0x00 000028f7: DUP8 000028f8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000290d: AND 0000290e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002923: AND 00002924: DUP2 00002925: MSTORE 00002926: PUSH1 0x20 00002928: ADD 00002929: SWAP1 0000292a: DUP2 0000292b: MSTORE 0000292c: PUSH1 0x20 0000292e: ADD 0000292f: PUSH1 0x00 00002931: KECCAK256 00002932: PUSH1 0x00 00002934: CALLER 00002935: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000294a: AND 0000294b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002960: AND 00002961: DUP2 00002962: MSTORE 00002963: PUSH1 0x20 00002965: ADD 00002966: SWAP1 00002967: DUP2 00002968: MSTORE 00002969: PUSH1 0x20 0000296b: ADD 0000296c: PUSH1 0x00 0000296e: KECCAK256 0000296f: SLOAD 00002970: PUSH1 0x40 00002972: MLOAD 00002973: DUP1 00002974: DUP6 00002975: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000298a: AND 0000298b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029a0: AND 000029a1: DUP2 000029a2: MSTORE 000029a3: PUSH1 0x20 000029a5: ADD 000029a6: DUP5 000029a7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029bc: AND 000029bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029d2: AND 000029d3: DUP2 000029d4: MSTORE 000029d5: PUSH1 0x20 000029d7: ADD 000029d8: DUP4 000029d9: DUP2 000029da: MSTORE 000029db: PUSH1 0x20 000029dd: ADD 000029de: DUP3 000029df: DUP2 000029e0: MSTORE 000029e1: PUSH1 0x20 000029e3: ADD 000029e4: SWAP5 000029e5: POP 000029e6: POP 000029e7: POP 000029e8: POP 000029e9: POP 000029ea: PUSH1 0x40 000029ec: MLOAD 000029ed: DUP1 000029ee: SWAP2 000029ef: SUB 000029f0: SWAP1 000029f1: LOG1 000029f2: POP 000029f3: POP 000029f4: JUMP 000029f5: JUMPDEST 000029f6: PUSH1 0x06 000029f8: DUP2 000029f9: DUP2 000029fa: SLOAD 000029fb: DUP2 000029fc: LT 000029fd: ISZERO 000029fe: ISZERO 000029ff: PUSH2 0x2a04 00002a02: JUMPI 00002a03: INVALID 00002a04: JUMPDEST 00002a05: SWAP1 00002a06: PUSH1 0x00 00002a08: MSTORE 00002a09: PUSH1 0x20 00002a0b: PUSH1 0x00 00002a0d: KECCAK256 00002a0e: SWAP1 00002a0f: PUSH1 0x03 00002a11: MUL 00002a12: ADD 00002a13: PUSH1 0x00 00002a15: SWAP2 00002a16: POP 00002a17: SWAP1 00002a18: POP 00002a19: DUP1 00002a1a: PUSH1 0x00 00002a1c: ADD 00002a1d: PUSH1 0x00 00002a1f: SWAP1 00002a20: SLOAD 00002a21: SWAP1 00002a22: PUSH2 0x0100 00002a25: EXP 00002a26: SWAP1 00002a27: DIV 00002a28: PUSH1 0xff 00002a2a: AND 00002a2b: SWAP1 00002a2c: DUP1 00002a2d: PUSH1 0x00 00002a2f: ADD 00002a30: PUSH1 0x01 00002a32: SWAP1 00002a33: SLOAD 00002a34: SWAP1 00002a35: PUSH2 0x0100 00002a38: EXP 00002a39: SWAP1 00002a3a: DIV 00002a3b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a50: AND 00002a51: SWAP1 00002a52: DUP1 00002a53: PUSH1 0x01 00002a55: ADD 00002a56: SLOAD 00002a57: SWAP1 00002a58: DUP1 00002a59: PUSH1 0x02 00002a5b: ADD 00002a5c: SLOAD 00002a5d: SWAP1 00002a5e: POP 00002a5f: DUP5 00002a60: JUMP 00002a61: JUMPDEST 00002a62: PUSH1 0x00 00002a64: PUSH1 0x03 00002a66: PUSH1 0x00 00002a68: SWAP1 00002a69: SLOAD 00002a6a: SWAP1 00002a6b: PUSH2 0x0100 00002a6e: EXP 00002a6f: SWAP1 00002a70: DIV 00002a71: PUSH1 0xff 00002a73: AND 00002a74: ISZERO 00002a75: PUSH2 0x2a81 00002a78: JUMPI 00002a79: PUSH1 0x01 00002a7b: SWAP1 00002a7c: POP 00002a7d: PUSH2 0x2a86 00002a80: JUMP 00002a81: JUMPDEST 00002a82: PUSH1 0x00 00002a84: DUP1 00002a85: REVERT 00002a86: JUMPDEST 00002a87: SWAP4 00002a88: SWAP3 00002a89: POP 00002a8a: POP 00002a8b: POP 00002a8c: JUMP 00002a8d: JUMPDEST 00002a8e: PUSH1 0x02 00002a90: SLOAD 00002a91: DUP2 00002a92: JUMP 00002a93: JUMPDEST 00002a94: PUSH1 0x00 00002a96: DUP1 00002a97: PUSH1 0x00 00002a99: SWAP1 00002a9a: SLOAD 00002a9b: SWAP1 00002a9c: PUSH2 0x0100 00002a9f: EXP 00002aa0: SWAP1 00002aa1: DIV 00002aa2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ab7: AND 00002ab8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002acd: AND 00002ace: CALLER 00002acf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ae4: AND 00002ae5: EQ 00002ae6: ISZERO 00002ae7: ISZERO 00002ae8: PUSH2 0x2af0 00002aeb: JUMPI 00002aec: PUSH1 0x00 00002aee: DUP1 00002aef: REVERT 00002af0: JUMPDEST 00002af1: PUSH1 0x06 00002af3: PUSH1 0x80 00002af5: PUSH1 0x40 00002af7: MLOAD 00002af8: SWAP1 00002af9: DUP2 00002afa: ADD 00002afb: PUSH1 0x40 00002afd: MSTORE 00002afe: DUP1 00002aff: PUSH1 0x01 00002b01: ISZERO 00002b02: ISZERO 00002b03: DUP2 00002b04: MSTORE 00002b05: PUSH1 0x20 00002b07: ADD 00002b08: DUP7 00002b09: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b1e: AND 00002b1f: DUP2 00002b20: MSTORE 00002b21: PUSH1 0x20 00002b23: ADD 00002b24: DUP6 00002b25: DUP2 00002b26: MSTORE 00002b27: PUSH1 0x20 00002b29: ADD 00002b2a: DUP5 00002b2b: DUP2 00002b2c: MSTORE 00002b2d: POP 00002b2e: SWAP1 00002b2f: DUP1 00002b30: PUSH1 0x01 00002b32: DUP2 00002b33: SLOAD 00002b34: ADD 00002b35: DUP1 00002b36: DUP3 00002b37: SSTORE 00002b38: DUP1 00002b39: SWAP2 00002b3a: POP 00002b3b: POP 00002b3c: SWAP1 00002b3d: PUSH1 0x01 00002b3f: DUP3 00002b40: SUB 00002b41: SWAP1 00002b42: PUSH1 0x00 00002b44: MSTORE 00002b45: PUSH1 0x20 00002b47: PUSH1 0x00 00002b49: KECCAK256 00002b4a: SWAP1 00002b4b: PUSH1 0x03 00002b4d: MUL 00002b4e: ADD 00002b4f: PUSH1 0x00 00002b51: SWAP1 00002b52: SWAP2 00002b53: SWAP3 00002b54: SWAP1 00002b55: SWAP2 00002b56: SWAP1 00002b57: SWAP2 00002b58: POP 00002b59: PUSH1 0x00 00002b5b: DUP3 00002b5c: ADD 00002b5d: MLOAD 00002b5e: DUP2 00002b5f: PUSH1 0x00 00002b61: ADD 00002b62: PUSH1 0x00 00002b64: PUSH2 0x0100 00002b67: EXP 00002b68: DUP2 00002b69: SLOAD 00002b6a: DUP2 00002b6b: PUSH1 0xff 00002b6d: MUL 00002b6e: NOT 00002b6f: AND 00002b70: SWAP1 00002b71: DUP4 00002b72: ISZERO 00002b73: ISZERO 00002b74: MUL 00002b75: OR 00002b76: SWAP1 00002b77: SSTORE 00002b78: POP 00002b79: PUSH1 0x20 00002b7b: DUP3 00002b7c: ADD 00002b7d: MLOAD 00002b7e: DUP2 00002b7f: PUSH1 0x00 00002b81: ADD 00002b82: PUSH1 0x01 00002b84: PUSH2 0x0100 00002b87: EXP 00002b88: DUP2 00002b89: SLOAD 00002b8a: DUP2 00002b8b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ba0: MUL 00002ba1: NOT 00002ba2: AND 00002ba3: SWAP1 00002ba4: DUP4 00002ba5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002bba: AND 00002bbb: MUL 00002bbc: OR 00002bbd: SWAP1 00002bbe: SSTORE 00002bbf: POP 00002bc0: PUSH1 0x40 00002bc2: DUP3 00002bc3: ADD 00002bc4: MLOAD 00002bc5: DUP2 00002bc6: PUSH1 0x01 00002bc8: ADD 00002bc9: SSTORE 00002bca: PUSH1 0x60 00002bcc: DUP3 00002bcd: ADD 00002bce: MLOAD 00002bcf: DUP2 00002bd0: PUSH1 0x02 00002bd2: ADD 00002bd3: SSTORE 00002bd4: POP 00002bd5: POP 00002bd6: SWAP1 00002bd7: POP 00002bd8: POP 00002bd9: POP 00002bda: POP 00002bdb: POP 00002bdc: JUMP 00002bdd: JUMPDEST 00002bde: PUSH2 0x2c56 00002be1: CALLVALUE 00002be2: PUSH1 0x04 00002be4: PUSH1 0x00 00002be6: DUP1 00002be7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002bfc: AND 00002bfd: DUP2 00002bfe: MSTORE 00002bff: PUSH1 0x20 00002c01: ADD 00002c02: SWAP1 00002c03: DUP2 00002c04: MSTORE 00002c05: PUSH1 0x20 00002c07: ADD 00002c08: PUSH1 0x00 00002c0a: KECCAK256 00002c0b: PUSH1 0x00 00002c0d: CALLER 00002c0e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c23: AND 00002c24: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c39: AND 00002c3a: DUP2 00002c3b: MSTORE 00002c3c: PUSH1 0x20 00002c3e: ADD 00002c3f: SWAP1 00002c40: DUP2 00002c41: MSTORE 00002c42: PUSH1 0x20 00002c44: ADD 00002c45: PUSH1 0x00 00002c47: KECCAK256 00002c48: SLOAD 00002c49: PUSH2 0x33a7 00002c4c: SWAP1 00002c4d: SWAP2 00002c4e: SWAP1 00002c4f: PUSH4 0xffffffff 00002c54: AND 00002c55: JUMP 00002c56: JUMPDEST 00002c57: PUSH1 0x04 00002c59: PUSH1 0x00 00002c5b: DUP1 00002c5c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c71: AND 00002c72: DUP2 00002c73: MSTORE 00002c74: PUSH1 0x20 00002c76: ADD 00002c77: SWAP1 00002c78: DUP2 00002c79: MSTORE 00002c7a: PUSH1 0x20 00002c7c: ADD 00002c7d: PUSH1 0x00 00002c7f: KECCAK256 00002c80: PUSH1 0x00 00002c82: CALLER 00002c83: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c98: AND 00002c99: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002cae: AND 00002caf: DUP2 00002cb0: MSTORE 00002cb1: PUSH1 0x20 00002cb3: ADD 00002cb4: SWAP1 00002cb5: DUP2 00002cb6: MSTORE 00002cb7: PUSH1 0x20 00002cb9: ADD 00002cba: PUSH1 0x00 00002cbc: KECCAK256 00002cbd: DUP2 00002cbe: SWAP1 00002cbf: SSTORE 00002cc0: POP 00002cc1: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7 00002ce2: PUSH1 0x00 00002ce4: CALLER 00002ce5: CALLVALUE 00002ce6: PUSH1 0x04 00002ce8: PUSH1 0x00 00002cea: DUP1 00002ceb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d00: AND 00002d01: DUP2 00002d02: MSTORE 00002d03: PUSH1 0x20 00002d05: ADD 00002d06: SWAP1 00002d07: DUP2 00002d08: MSTORE 00002d09: PUSH1 0x20 00002d0b: ADD 00002d0c: PUSH1 0x00 00002d0e: KECCAK256 00002d0f: PUSH1 0x00 00002d11: CALLER 00002d12: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d27: AND 00002d28: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d3d: AND 00002d3e: DUP2 00002d3f: MSTORE 00002d40: PUSH1 0x20 00002d42: ADD 00002d43: SWAP1 00002d44: DUP2 00002d45: MSTORE 00002d46: PUSH1 0x20 00002d48: ADD 00002d49: PUSH1 0x00 00002d4b: KECCAK256 00002d4c: SLOAD 00002d4d: PUSH1 0x40 00002d4f: MLOAD 00002d50: DUP1 00002d51: DUP6 00002d52: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d67: AND 00002d68: DUP2 00002d69: MSTORE 00002d6a: PUSH1 0x20 00002d6c: ADD 00002d6d: DUP5 00002d6e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d83: AND 00002d84: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d99: AND 00002d9a: DUP2 00002d9b: MSTORE 00002d9c: PUSH1 0x20 00002d9e: ADD 00002d9f: DUP4 00002da0: DUP2 00002da1: MSTORE 00002da2: PUSH1 0x20 00002da4: ADD 00002da5: DUP3 00002da6: DUP2 00002da7: MSTORE 00002da8: PUSH1 0x20 00002daa: ADD 00002dab: SWAP5 00002dac: POP 00002dad: POP 00002dae: POP 00002daf: POP 00002db0: POP 00002db1: PUSH1 0x40 00002db3: MLOAD 00002db4: DUP1 00002db5: SWAP2 00002db6: SUB 00002db7: SWAP1 00002db8: LOG1 00002db9: JUMP 00002dba: JUMPDEST 00002dbb: PUSH1 0x00 00002dbd: PUSH1 0x04 00002dbf: PUSH1 0x00 00002dc1: DUP5 00002dc2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002dd7: AND 00002dd8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ded: AND 00002dee: DUP2 00002def: MSTORE 00002df0: PUSH1 0x20 00002df2: ADD 00002df3: SWAP1 00002df4: DUP2 00002df5: MSTORE 00002df6: PUSH1 0x20 00002df8: ADD 00002df9: PUSH1 0x00 00002dfb: KECCAK256 00002dfc: PUSH1 0x00 00002dfe: DUP4 00002dff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002e14: AND 00002e15: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002e2a: AND 00002e2b: DUP2 00002e2c: MSTORE 00002e2d: PUSH1 0x20 00002e2f: ADD 00002e30: SWAP1 00002e31: DUP2 00002e32: MSTORE 00002e33: PUSH1 0x20 00002e35: ADD 00002e36: PUSH1 0x00 00002e38: KECCAK256 00002e39: SLOAD 00002e3a: SWAP1 00002e3b: POP 00002e3c: SWAP3 00002e3d: SWAP2 00002e3e: POP 00002e3f: POP 00002e40: JUMP 00002e41: JUMPDEST 00002e42: PUSH1 0x00 00002e44: DUP1 00002e45: SWAP1 00002e46: SLOAD 00002e47: SWAP1 00002e48: PUSH2 0x0100 00002e4b: EXP 00002e4c: SWAP1 00002e4d: DIV 00002e4e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002e63: AND 00002e64: DUP2 00002e65: JUMP 00002e66: JUMPDEST 00002e67: PUSH1 0x00 00002e69: DUP1 00002e6a: PUSH2 0x2e71 00002e6d: PUSH2 0x3cad 00002e70: JUMP 00002e71: JUMPDEST 00002e72: PUSH1 0x02 00002e74: ADDRESS 00002e75: DUP15 00002e76: DUP15 00002e77: DUP15 00002e78: DUP15 00002e79: DUP15 00002e7a: DUP15 00002e7b: PUSH1 0x40 00002e7d: MLOAD 00002e7e: DUP1 00002e7f: DUP9 00002e80: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002e95: AND 00002e96: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002eab: AND 00002eac: PUSH13 0x01000000000000000000000000 00002eba: MUL 00002ebb: DUP2 00002ebc: MSTORE 00002ebd: PUSH1 0x14 00002ebf: ADD 00002ec0: DUP8 00002ec1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ed6: AND 00002ed7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002eec: AND 00002eed: PUSH13 0x01000000000000000000000000 00002efb: MUL 00002efc: DUP2 00002efd: MSTORE 00002efe: PUSH1 0x14 00002f00: ADD 00002f01: DUP7 00002f02: DUP2 00002f03: MSTORE 00002f04: PUSH1 0x20 00002f06: ADD 00002f07: DUP6 00002f08: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f1d: AND 00002f1e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f33: AND 00002f34: PUSH13 0x01000000000000000000000000 00002f42: MUL 00002f43: DUP2 00002f44: MSTORE 00002f45: PUSH1 0x14 00002f47: ADD 00002f48: DUP5 00002f49: DUP2 00002f4a: MSTORE 00002f4b: PUSH1 0x20 00002f4d: ADD 00002f4e: DUP4 00002f4f: DUP2 00002f50: MSTORE 00002f51: PUSH1 0x20 00002f53: ADD 00002f54: DUP3 00002f55: DUP2 00002f56: MSTORE 00002f57: PUSH1 0x20 00002f59: ADD 00002f5a: SWAP8 00002f5b: POP 00002f5c: POP 00002f5d: POP 00002f5e: POP 00002f5f: POP 00002f60: POP 00002f61: POP 00002f62: POP 00002f63: PUSH1 0x20 00002f65: PUSH1 0x40 00002f67: MLOAD 00002f68: DUP1 00002f69: DUP4 00002f6a: SUB 00002f6b: DUP2 00002f6c: PUSH1 0x00 00002f6e: DUP7 00002f6f: GAS 00002f70: CALL 00002f71: ISZERO 00002f72: DUP1 00002f73: ISZERO 00002f74: PUSH2 0x2f81 00002f77: JUMPI 00002f78: RETURNDATASIZE 00002f79: PUSH1 0x00 00002f7b: DUP1 00002f7c: RETURNDATACOPY 00002f7d: RETURNDATASIZE 00002f7e: PUSH1 0x00 00002f80: REVERT 00002f81: JUMPDEST 00002f82: POP 00002f83: POP 00002f84: POP 00002f85: PUSH1 0x40 00002f87: MLOAD 00002f88: RETURNDATASIZE 00002f89: PUSH1 0x20 00002f8b: DUP2 00002f8c: LT 00002f8d: ISZERO 00002f8e: PUSH2 0x2f96 00002f91: JUMPI 00002f92: PUSH1 0x00 00002f94: DUP1 00002f95: REVERT 00002f96: JUMPDEST 00002f97: DUP2 00002f98: ADD 00002f99: SWAP1 00002f9a: DUP1 00002f9b: DUP1 00002f9c: MLOAD 00002f9d: SWAP1 00002f9e: PUSH1 0x20 00002fa0: ADD 00002fa1: SWAP1 00002fa2: SWAP3 00002fa3: SWAP2 00002fa4: SWAP1 00002fa5: POP 00002fa6: POP 00002fa7: POP 00002fa8: SWAP2 00002fa9: POP 00002faa: DUP7 00002fab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002fc0: AND 00002fc1: PUSH1 0x01 00002fc3: DUP4 00002fc4: PUSH1 0x40 00002fc6: MLOAD 00002fc7: DUP1 00002fc8: DUP1 00002fc9: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000 00002fea: DUP2 00002feb: MSTORE 00002fec: POP 00002fed: PUSH1 0x1c 00002fef: ADD 00002ff0: DUP3 00002ff1: PUSH1 0x00 00002ff3: NOT 00002ff4: AND 00002ff5: PUSH1 0x00 00002ff7: NOT 00002ff8: AND 00002ff9: DUP2 00002ffa: MSTORE 00002ffb: PUSH1 0x20 00002ffd: ADD 00002ffe: SWAP2 00002fff: POP 00003000: POP 00003001: PUSH1 0x40 00003003: MLOAD 00003004: DUP1 00003005: SWAP2 00003006: SUB 00003007: SWAP1 00003008: KECCAK256 00003009: DUP9 0000300a: DUP9 0000300b: DUP9 0000300c: PUSH1 0x40 0000300e: MLOAD 0000300f: PUSH1 0x00 00003011: DUP2 00003012: MSTORE 00003013: PUSH1 0x20 00003015: ADD 00003016: PUSH1 0x40 00003018: MSTORE 00003019: PUSH1 0x40 0000301b: MLOAD 0000301c: DUP1 0000301d: DUP6 0000301e: PUSH1 0x00 00003020: NOT 00003021: AND 00003022: PUSH1 0x00 00003024: NOT 00003025: AND 00003026: DUP2 00003027: MSTORE 00003028: PUSH1 0x20 0000302a: ADD 0000302b: DUP5 0000302c: PUSH1 0xff 0000302e: AND 0000302f: PUSH1 0xff 00003031: AND 00003032: DUP2 00003033: MSTORE 00003034: PUSH1 0x20 00003036: ADD 00003037: DUP4 00003038: PUSH1 0x00 0000303a: NOT 0000303b: AND 0000303c: PUSH1 0x00 0000303e: NOT 0000303f: AND 00003040: DUP2 00003041: MSTORE 00003042: PUSH1 0x20 00003044: ADD 00003045: DUP3 00003046: PUSH1 0x00 00003048: NOT 00003049: AND 0000304a: PUSH1 0x00 0000304c: NOT 0000304d: AND 0000304e: DUP2 0000304f: MSTORE 00003050: PUSH1 0x20 00003052: ADD 00003053: SWAP5 00003054: POP 00003055: POP 00003056: POP 00003057: POP 00003058: POP 00003059: PUSH1 0x20 0000305b: PUSH1 0x40 0000305d: MLOAD 0000305e: PUSH1 0x20 00003060: DUP2 00003061: SUB 00003062: SWAP1 00003063: DUP1 00003064: DUP5 00003065: SUB 00003066: SWAP1 00003067: PUSH1 0x00 00003069: DUP7 0000306a: GAS 0000306b: CALL 0000306c: ISZERO 0000306d: DUP1 0000306e: ISZERO 0000306f: PUSH2 0x307c 00003072: JUMPI 00003073: RETURNDATASIZE 00003074: PUSH1 0x00 00003076: DUP1 00003077: RETURNDATACOPY 00003078: RETURNDATASIZE 00003079: PUSH1 0x00 0000307b: REVERT 0000307c: JUMPDEST 0000307d: POP 0000307e: POP 0000307f: POP 00003080: PUSH1 0x20 00003082: PUSH1 0x40 00003084: MLOAD 00003085: SUB 00003086: MLOAD 00003087: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000309c: AND 0000309d: EQ 0000309e: DUP1 0000309f: ISZERO 000030a0: PUSH2 0x30a9 000030a3: JUMPI 000030a4: POP 000030a5: DUP9 000030a6: NUMBER 000030a7: GT 000030a8: ISZERO 000030a9: JUMPDEST 000030aa: ISZERO 000030ab: ISZERO 000030ac: PUSH2 0x30b8 000030af: JUMPI 000030b0: PUSH1 0x00 000030b2: SWAP3 000030b3: POP 000030b4: PUSH2 0x324d 000030b7: JUMP 000030b8: JUMPDEST 000030b9: PUSH2 0x3123 000030bc: PUSH1 0x05 000030be: PUSH1 0x00 000030c0: DUP10 000030c1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000030d6: AND 000030d7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000030ec: AND 000030ed: DUP2 000030ee: MSTORE 000030ef: PUSH1 0x20 000030f1: ADD 000030f2: SWAP1 000030f3: DUP2 000030f4: MSTORE 000030f5: PUSH1 0x20 000030f7: ADD 000030f8: PUSH1 0x00 000030fa: KECCAK256 000030fb: PUSH1 0x00 000030fd: DUP5 000030fe: PUSH1 0x00 00003100: NOT 00003101: AND 00003102: PUSH1 0x00 00003104: NOT 00003105: AND 00003106: DUP2 00003107: MSTORE 00003108: PUSH1 0x20 0000310a: ADD 0000310b: SWAP1 0000310c: DUP2 0000310d: MSTORE 0000310e: PUSH1 0x20 00003110: ADD 00003111: PUSH1 0x00 00003113: KECCAK256 00003114: SLOAD 00003115: DUP14 00003116: PUSH2 0x3a0c 00003119: SWAP1 0000311a: SWAP2 0000311b: SWAP1 0000311c: PUSH4 0xffffffff 00003121: AND 00003122: JUMP 00003123: JUMPDEST 00003124: DUP2 00003125: PUSH1 0x00 00003127: PUSH1 0x02 00003129: DUP2 0000312a: LT 0000312b: ISZERO 0000312c: ISZERO 0000312d: PUSH2 0x3132 00003130: JUMPI 00003131: INVALID 00003132: JUMPDEST 00003133: PUSH1 0x20 00003135: MUL 00003136: ADD 00003137: DUP2 00003138: DUP2 00003139: MSTORE 0000313a: POP 0000313b: POP 0000313c: DUP10 0000313d: PUSH2 0x31cb 00003140: DUP14 00003141: PUSH1 0x04 00003143: PUSH1 0x00 00003145: DUP16 00003146: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000315b: AND 0000315c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003171: AND 00003172: DUP2 00003173: MSTORE 00003174: PUSH1 0x20 00003176: ADD 00003177: SWAP1 00003178: DUP2 00003179: MSTORE 0000317a: PUSH1 0x20 0000317c: ADD 0000317d: PUSH1 0x00 0000317f: KECCAK256 00003180: PUSH1 0x00 00003182: DUP12 00003183: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003198: AND 00003199: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000031ae: AND 000031af: DUP2 000031b0: MSTORE 000031b1: PUSH1 0x20 000031b3: ADD 000031b4: SWAP1 000031b5: DUP2 000031b6: MSTORE 000031b7: PUSH1 0x20 000031b9: ADD 000031ba: PUSH1 0x00 000031bc: KECCAK256 000031bd: SLOAD 000031be: PUSH2 0x39cb 000031c1: SWAP1 000031c2: SWAP2 000031c3: SWAP1 000031c4: PUSH4 0xffffffff 000031c9: AND 000031ca: JUMP 000031cb: JUMPDEST 000031cc: DUP2 000031cd: ISZERO 000031ce: ISZERO 000031cf: PUSH2 0x31d4 000031d2: JUMPI 000031d3: INVALID 000031d4: JUMPDEST 000031d5: DIV 000031d6: DUP2 000031d7: PUSH1 0x01 000031d9: PUSH1 0x02 000031db: DUP2 000031dc: LT 000031dd: ISZERO 000031de: ISZERO 000031df: PUSH2 0x31e4 000031e2: JUMPI 000031e3: INVALID 000031e4: JUMPDEST 000031e5: PUSH1 0x20 000031e7: MUL 000031e8: ADD 000031e9: DUP2 000031ea: DUP2 000031eb: MSTORE 000031ec: POP 000031ed: POP 000031ee: DUP1 000031ef: PUSH1 0x01 000031f1: PUSH1 0x02 000031f3: DUP2 000031f4: LT 000031f5: ISZERO 000031f6: ISZERO 000031f7: PUSH2 0x31fc 000031fa: JUMPI 000031fb: INVALID 000031fc: JUMPDEST 000031fd: PUSH1 0x20 000031ff: MUL 00003200: ADD 00003201: MLOAD 00003202: DUP2 00003203: PUSH1 0x00 00003205: PUSH1 0x02 00003207: DUP2 00003208: LT 00003209: ISZERO 0000320a: ISZERO 0000320b: PUSH2 0x3210 0000320e: JUMPI 0000320f: INVALID 00003210: JUMPDEST 00003211: PUSH1 0x20 00003213: MUL 00003214: ADD 00003215: MLOAD 00003216: LT 00003217: ISZERO 00003218: PUSH2 0x3236 0000321b: JUMPI 0000321c: DUP1 0000321d: PUSH1 0x00 0000321f: PUSH1 0x02 00003221: DUP2 00003222: LT 00003223: ISZERO 00003224: ISZERO 00003225: PUSH2 0x322a 00003228: JUMPI 00003229: INVALID 0000322a: JUMPDEST 0000322b: PUSH1 0x20 0000322d: MUL 0000322e: ADD 0000322f: MLOAD 00003230: SWAP3 00003231: POP 00003232: PUSH2 0x324d 00003235: JUMP 00003236: JUMPDEST 00003237: DUP1 00003238: PUSH1 0x01 0000323a: PUSH1 0x02 0000323c: DUP2 0000323d: LT 0000323e: ISZERO 0000323f: ISZERO 00003240: PUSH2 0x3245 00003243: JUMPI 00003244: INVALID 00003245: JUMPDEST 00003246: PUSH1 0x20 00003248: MUL 00003249: ADD 0000324a: MLOAD 0000324b: SWAP3 0000324c: POP 0000324d: JUMPDEST 0000324e: POP 0000324f: POP 00003250: SWAP11 00003251: SWAP10 00003252: POP 00003253: POP 00003254: POP 00003255: POP 00003256: POP 00003257: POP 00003258: POP 00003259: POP 0000325a: POP 0000325b: POP 0000325c: JUMP 0000325d: JUMPDEST 0000325e: PUSH1 0x00 00003260: DUP1 00003261: SWAP1 00003262: SLOAD 00003263: SWAP1 00003264: PUSH2 0x0100 00003267: EXP 00003268: SWAP1 00003269: DIV 0000326a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000327f: AND 00003280: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003295: AND 00003296: CALLER 00003297: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000032ac: AND 000032ad: EQ 000032ae: ISZERO 000032af: ISZERO 000032b0: PUSH2 0x32b8 000032b3: JUMPI 000032b4: PUSH1 0x00 000032b6: DUP1 000032b7: REVERT 000032b8: JUMPDEST 000032b9: PUSH1 0x06 000032bb: DUP1 000032bc: SLOAD 000032bd: SWAP1 000032be: POP 000032bf: DUP5 000032c0: LT 000032c1: ISZERO 000032c2: ISZERO 000032c3: PUSH2 0x32cb 000032c6: JUMPI 000032c7: PUSH1 0x00 000032c9: DUP1 000032ca: REVERT 000032cb: JUMPDEST 000032cc: PUSH1 0x80 000032ce: PUSH1 0x40 000032d0: MLOAD 000032d1: SWAP1 000032d2: DUP2 000032d3: ADD 000032d4: PUSH1 0x40 000032d6: MSTORE 000032d7: DUP1 000032d8: PUSH1 0x01 000032da: ISZERO 000032db: ISZERO 000032dc: DUP2 000032dd: MSTORE 000032de: PUSH1 0x20 000032e0: ADD 000032e1: DUP5 000032e2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000032f7: AND 000032f8: DUP2 000032f9: MSTORE 000032fa: PUSH1 0x20 000032fc: ADD 000032fd: DUP4 000032fe: DUP2 000032ff: MSTORE 00003300: PUSH1 0x20 00003302: ADD 00003303: DUP3 00003304: DUP2 00003305: MSTORE 00003306: POP 00003307: PUSH1 0x06 00003309: DUP6 0000330a: DUP2 0000330b: SLOAD 0000330c: DUP2 0000330d: LT 0000330e: ISZERO 0000330f: ISZERO 00003310: PUSH2 0x3315 00003313: JUMPI 00003314: INVALID 00003315: JUMPDEST 00003316: SWAP1 00003317: PUSH1 0x00 00003319: MSTORE 0000331a: PUSH1 0x20 0000331c: PUSH1 0x00 0000331e: KECCAK256 0000331f: SWAP1 00003320: PUSH1 0x03 00003322: MUL 00003323: ADD 00003324: PUSH1 0x00 00003326: DUP3 00003327: ADD 00003328: MLOAD 00003329: DUP2 0000332a: PUSH1 0x00 0000332c: ADD 0000332d: PUSH1 0x00 0000332f: PUSH2 0x0100 00003332: EXP 00003333: DUP2 00003334: SLOAD 00003335: DUP2 00003336: PUSH1 0xff 00003338: MUL 00003339: NOT 0000333a: AND 0000333b: SWAP1 0000333c: DUP4 0000333d: ISZERO 0000333e: ISZERO 0000333f: MUL 00003340: OR 00003341: SWAP1 00003342: SSTORE 00003343: POP 00003344: PUSH1 0x20 00003346: DUP3 00003347: ADD 00003348: MLOAD 00003349: DUP2 0000334a: PUSH1 0x00 0000334c: ADD 0000334d: PUSH1 0x01 0000334f: PUSH2 0x0100 00003352: EXP 00003353: DUP2 00003354: SLOAD 00003355: DUP2 00003356: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000336b: MUL 0000336c: NOT 0000336d: AND 0000336e: SWAP1 0000336f: DUP4 00003370: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003385: AND 00003386: MUL 00003387: OR 00003388: SWAP1 00003389: SSTORE 0000338a: POP 0000338b: PUSH1 0x40 0000338d: DUP3 0000338e: ADD 0000338f: MLOAD 00003390: DUP2 00003391: PUSH1 0x01 00003393: ADD 00003394: SSTORE 00003395: PUSH1 0x60 00003397: DUP3 00003398: ADD 00003399: MLOAD 0000339a: DUP2 0000339b: PUSH1 0x02 0000339d: ADD 0000339e: SSTORE 0000339f: SWAP1 000033a0: POP 000033a1: POP 000033a2: POP 000033a3: POP 000033a4: POP 000033a5: POP 000033a6: JUMP 000033a7: JUMPDEST 000033a8: PUSH1 0x00 000033aa: DUP1 000033ab: DUP3 000033ac: DUP5 000033ad: ADD 000033ae: SWAP1 000033af: POP 000033b0: DUP4 000033b1: DUP2 000033b2: LT 000033b3: ISZERO 000033b4: ISZERO 000033b5: PUSH2 0x33c0 000033b8: JUMPI 000033b9: DUP1 000033ba: SWAP2 000033bb: POP 000033bc: PUSH2 0x33c5 000033bf: JUMP 000033c0: JUMPDEST 000033c1: PUSH1 0x00 000033c3: DUP1 000033c4: REVERT 000033c5: JUMPDEST 000033c6: POP 000033c7: SWAP3 000033c8: SWAP2 000033c9: POP 000033ca: POP 000033cb: JUMP 000033cc: JUMPDEST 000033cd: PUSH1 0x00 000033cf: PUSH2 0x33d7 000033d2: DUP3 000033d3: PUSH2 0x3a2c 000033d6: JUMP 000033d7: JUMPDEST 000033d8: SWAP1 000033d9: POP 000033da: PUSH2 0x347a 000033dd: PUSH2 0x33ef 000033e0: DUP3 000033e1: DUP5 000033e2: PUSH2 0x33a7 000033e5: SWAP1 000033e6: SWAP2 000033e7: SWAP1 000033e8: PUSH4 0xffffffff 000033ed: AND 000033ee: JUMP 000033ef: JUMPDEST 000033f0: PUSH1 0x04 000033f2: PUSH1 0x00 000033f4: DUP11 000033f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000340a: AND 0000340b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003420: AND 00003421: DUP2 00003422: MSTORE 00003423: PUSH1 0x20 00003425: ADD 00003426: SWAP1 00003427: DUP2 00003428: MSTORE 00003429: PUSH1 0x20 0000342b: ADD 0000342c: PUSH1 0x00 0000342e: KECCAK256 0000342f: PUSH1 0x00 00003431: CALLER 00003432: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003447: AND 00003448: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000345d: AND 0000345e: DUP2 0000345f: MSTORE 00003460: PUSH1 0x20 00003462: ADD 00003463: SWAP1 00003464: DUP2 00003465: MSTORE 00003466: PUSH1 0x20 00003468: ADD 00003469: PUSH1 0x00 0000346b: KECCAK256 0000346c: SLOAD 0000346d: PUSH2 0x3a0c 00003470: SWAP1 00003471: SWAP2 00003472: SWAP1 00003473: PUSH4 0xffffffff 00003478: AND 00003479: JUMP 0000347a: JUMPDEST 0000347b: PUSH1 0x04 0000347d: PUSH1 0x00 0000347f: DUP10 00003480: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003495: AND 00003496: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000034ab: AND 000034ac: DUP2 000034ad: MSTORE 000034ae: PUSH1 0x20 000034b0: ADD 000034b1: SWAP1 000034b2: DUP2 000034b3: MSTORE 000034b4: PUSH1 0x20 000034b6: ADD 000034b7: PUSH1 0x00 000034b9: KECCAK256 000034ba: PUSH1 0x00 000034bc: CALLER 000034bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000034d2: AND 000034d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000034e8: AND 000034e9: DUP2 000034ea: MSTORE 000034eb: PUSH1 0x20 000034ed: ADD 000034ee: SWAP1 000034ef: DUP2 000034f0: MSTORE 000034f1: PUSH1 0x20 000034f3: ADD 000034f4: PUSH1 0x00 000034f6: KECCAK256 000034f7: DUP2 000034f8: SWAP1 000034f9: SSTORE 000034fa: POP 000034fb: PUSH2 0x3589 000034fe: DUP3 000034ff: PUSH1 0x04 00003501: PUSH1 0x00 00003503: DUP11 00003504: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003519: AND 0000351a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000352f: AND 00003530: DUP2 00003531: MSTORE 00003532: PUSH1 0x20 00003534: ADD 00003535: SWAP1 00003536: DUP2 00003537: MSTORE 00003538: PUSH1 0x20 0000353a: ADD 0000353b: PUSH1 0x00 0000353d: KECCAK256 0000353e: PUSH1 0x00 00003540: DUP7 00003541: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003556: AND 00003557: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000356c: AND 0000356d: DUP2 0000356e: MSTORE 0000356f: PUSH1 0x20 00003571: ADD 00003572: SWAP1 00003573: DUP2 00003574: MSTORE 00003575: PUSH1 0x20 00003577: ADD 00003578: PUSH1 0x00 0000357a: KECCAK256 0000357b: SLOAD 0000357c: PUSH2 0x33a7 0000357f: SWAP1 00003580: SWAP2 00003581: SWAP1 00003582: PUSH4 0xffffffff 00003587: AND 00003588: JUMP 00003589: JUMPDEST 0000358a: PUSH1 0x04 0000358c: PUSH1 0x00 0000358e: DUP10 0000358f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000035a4: AND 000035a5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000035ba: AND 000035bb: DUP2 000035bc: MSTORE 000035bd: PUSH1 0x20 000035bf: ADD 000035c0: SWAP1 000035c1: DUP2 000035c2: MSTORE 000035c3: PUSH1 0x20 000035c5: ADD 000035c6: PUSH1 0x00 000035c8: KECCAK256 000035c9: PUSH1 0x00 000035cb: DUP6 000035cc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000035e1: AND 000035e2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000035f7: AND 000035f8: DUP2 000035f9: MSTORE 000035fa: PUSH1 0x20 000035fc: ADD 000035fd: SWAP1 000035fe: DUP2 000035ff: MSTORE 00003600: PUSH1 0x20 00003602: ADD 00003603: PUSH1 0x00 00003605: KECCAK256 00003606: DUP2 00003607: SWAP1 00003608: SSTORE 00003609: POP 0000360a: PUSH2 0x36ba 0000360d: DUP2 0000360e: PUSH1 0x04 00003610: PUSH1 0x00 00003612: DUP11 00003613: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003628: AND 00003629: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000363e: AND 0000363f: DUP2 00003640: MSTORE 00003641: PUSH1 0x20 00003643: ADD 00003644: SWAP1 00003645: DUP2 00003646: MSTORE 00003647: PUSH1 0x20 00003649: ADD 0000364a: PUSH1 0x00 0000364c: KECCAK256 0000364d: PUSH1 0x00 0000364f: PUSH1 0x01 00003651: PUSH1 0x00 00003653: SWAP1 00003654: SLOAD 00003655: SWAP1 00003656: PUSH2 0x0100 00003659: EXP 0000365a: SWAP1 0000365b: DIV 0000365c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003671: AND 00003672: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003687: AND 00003688: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000369d: AND 0000369e: DUP2 0000369f: MSTORE 000036a0: PUSH1 0x20 000036a2: ADD 000036a3: SWAP1 000036a4: DUP2 000036a5: MSTORE 000036a6: PUSH1 0x20 000036a8: ADD 000036a9: PUSH1 0x00 000036ab: KECCAK256 000036ac: SLOAD 000036ad: PUSH2 0x33a7 000036b0: SWAP1 000036b1: SWAP2 000036b2: SWAP1 000036b3: PUSH4 0xffffffff 000036b8: AND 000036b9: JUMP 000036ba: JUMPDEST 000036bb: PUSH1 0x04 000036bd: PUSH1 0x00 000036bf: DUP10 000036c0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000036d5: AND 000036d6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000036eb: AND 000036ec: DUP2 000036ed: MSTORE 000036ee: PUSH1 0x20 000036f0: ADD 000036f1: SWAP1 000036f2: DUP2 000036f3: MSTORE 000036f4: PUSH1 0x20 000036f6: ADD 000036f7: PUSH1 0x00 000036f9: KECCAK256 000036fa: PUSH1 0x00 000036fc: PUSH1 0x01 000036fe: PUSH1 0x00 00003700: SWAP1 00003701: SLOAD 00003702: SWAP1 00003703: PUSH2 0x0100 00003706: EXP 00003707: SWAP1 00003708: DIV 00003709: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000371e: AND 0000371f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003734: AND 00003735: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000374a: AND 0000374b: DUP2 0000374c: MSTORE 0000374d: PUSH1 0x20 0000374f: ADD 00003750: SWAP1 00003751: DUP2 00003752: MSTORE 00003753: PUSH1 0x20 00003755: ADD 00003756: PUSH1 0x00 00003758: KECCAK256 00003759: DUP2 0000375a: SWAP1 0000375b: SSTORE 0000375c: POP 0000375d: PUSH2 0x380f 00003760: PUSH2 0x3784 00003763: DUP8 00003764: PUSH2 0x3776 00003767: DUP6 00003768: DUP9 00003769: PUSH2 0x39cb 0000376c: SWAP1 0000376d: SWAP2 0000376e: SWAP1 0000376f: PUSH4 0xffffffff 00003774: AND 00003775: JUMP 00003776: JUMPDEST 00003777: PUSH2 0x3c4d 0000377a: SWAP1 0000377b: SWAP2 0000377c: SWAP1 0000377d: PUSH4 0xffffffff 00003782: AND 00003783: JUMP 00003784: JUMPDEST 00003785: PUSH1 0x04 00003787: PUSH1 0x00 00003789: DUP9 0000378a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000379f: AND 000037a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000037b5: AND 000037b6: DUP2 000037b7: MSTORE 000037b8: PUSH1 0x20 000037ba: ADD 000037bb: SWAP1 000037bc: DUP2 000037bd: MSTORE 000037be: PUSH1 0x20 000037c0: ADD 000037c1: PUSH1 0x00 000037c3: KECCAK256 000037c4: PUSH1 0x00 000037c6: DUP7 000037c7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000037dc: AND 000037dd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000037f2: AND 000037f3: DUP2 000037f4: MSTORE 000037f5: PUSH1 0x20 000037f7: ADD 000037f8: SWAP1 000037f9: DUP2 000037fa: MSTORE 000037fb: PUSH1 0x20 000037fd: ADD 000037fe: PUSH1 0x00 00003800: KECCAK256 00003801: SLOAD 00003802: PUSH2 0x3a0c 00003805: SWAP1 00003806: SWAP2 00003807: SWAP1 00003808: PUSH4 0xffffffff 0000380d: AND 0000380e: JUMP 0000380f: JUMPDEST 00003810: PUSH1 0x04 00003812: PUSH1 0x00 00003814: DUP8 00003815: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000382a: AND 0000382b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003840: AND 00003841: DUP2 00003842: MSTORE 00003843: PUSH1 0x20 00003845: ADD 00003846: SWAP1 00003847: DUP2 00003848: MSTORE 00003849: PUSH1 0x20 0000384b: ADD 0000384c: PUSH1 0x00 0000384e: KECCAK256 0000384f: PUSH1 0x00 00003851: DUP6 00003852: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003867: AND 00003868: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000387d: AND 0000387e: DUP2 0000387f: MSTORE 00003880: PUSH1 0x20 00003882: ADD 00003883: SWAP1 00003884: DUP2 00003885: MSTORE 00003886: PUSH1 0x20 00003888: ADD 00003889: PUSH1 0x00 0000388b: KECCAK256 0000388c: DUP2 0000388d: SWAP1 0000388e: SSTORE 0000388f: POP 00003890: PUSH2 0x3942 00003893: PUSH2 0x38b7 00003896: DUP8 00003897: PUSH2 0x38a9 0000389a: DUP6 0000389b: DUP9 0000389c: PUSH2 0x39cb 0000389f: SWAP1 000038a0: SWAP2 000038a1: SWAP1 000038a2: PUSH4 0xffffffff 000038a7: AND 000038a8: JUMP 000038a9: JUMPDEST 000038aa: PUSH2 0x3c4d 000038ad: SWAP1 000038ae: SWAP2 000038af: SWAP1 000038b0: PUSH4 0xffffffff 000038b5: AND 000038b6: JUMP 000038b7: JUMPDEST 000038b8: PUSH1 0x04 000038ba: PUSH1 0x00 000038bc: DUP9 000038bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000038d2: AND 000038d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000038e8: AND 000038e9: DUP2 000038ea: MSTORE 000038eb: PUSH1 0x20 000038ed: ADD 000038ee: SWAP1 000038ef: DUP2 000038f0: MSTORE 000038f1: PUSH1 0x20 000038f3: ADD 000038f4: PUSH1 0x00 000038f6: KECCAK256 000038f7: PUSH1 0x00 000038f9: CALLER 000038fa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000390f: AND 00003910: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003925: AND 00003926: DUP2 00003927: MSTORE 00003928: PUSH1 0x20 0000392a: ADD 0000392b: SWAP1 0000392c: DUP2 0000392d: MSTORE 0000392e: PUSH1 0x20 00003930: ADD 00003931: PUSH1 0x00 00003933: KECCAK256 00003934: SLOAD 00003935: PUSH2 0x33a7 00003938: SWAP1 00003939: SWAP2 0000393a: SWAP1 0000393b: PUSH4 0xffffffff 00003940: AND 00003941: JUMP 00003942: JUMPDEST 00003943: PUSH1 0x04 00003945: PUSH1 0x00 00003947: DUP8 00003948: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000395d: AND 0000395e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003973: AND 00003974: DUP2 00003975: MSTORE 00003976: PUSH1 0x20 00003978: ADD 00003979: SWAP1 0000397a: DUP2 0000397b: MSTORE 0000397c: PUSH1 0x20 0000397e: ADD 0000397f: PUSH1 0x00 00003981: KECCAK256 00003982: PUSH1 0x00 00003984: CALLER 00003985: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000399a: AND 0000399b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000039b0: AND 000039b1: DUP2 000039b2: MSTORE 000039b3: PUSH1 0x20 000039b5: ADD 000039b6: SWAP1 000039b7: DUP2 000039b8: MSTORE 000039b9: PUSH1 0x20 000039bb: ADD 000039bc: PUSH1 0x00 000039be: KECCAK256 000039bf: DUP2 000039c0: SWAP1 000039c1: SSTORE 000039c2: POP 000039c3: POP 000039c4: POP 000039c5: POP 000039c6: POP 000039c7: POP 000039c8: POP 000039c9: POP 000039ca: JUMP 000039cb: JUMPDEST 000039cc: PUSH1 0x00 000039ce: DUP1 000039cf: PUSH1 0x00 000039d1: DUP5 000039d2: EQ 000039d3: ISZERO 000039d4: PUSH2 0x39e0 000039d7: JUMPI 000039d8: PUSH1 0x00 000039da: SWAP2 000039db: POP 000039dc: PUSH2 0x3a05 000039df: JUMP 000039e0: JUMPDEST 000039e1: DUP3 000039e2: DUP5 000039e3: MUL 000039e4: SWAP1 000039e5: POP 000039e6: DUP3 000039e7: DUP5 000039e8: DUP3 000039e9: DUP2 000039ea: ISZERO 000039eb: ISZERO 000039ec: PUSH2 0x39f1 000039ef: JUMPI 000039f0: INVALID 000039f1: JUMPDEST 000039f2: DIV 000039f3: EQ 000039f4: ISZERO 000039f5: PUSH2 0x3a00 000039f8: JUMPI 000039f9: DUP1 000039fa: SWAP2 000039fb: POP 000039fc: PUSH2 0x3a05 000039ff: JUMP 00003a00: JUMPDEST 00003a01: PUSH1 0x00 00003a03: DUP1 00003a04: REVERT 00003a05: JUMPDEST 00003a06: POP 00003a07: SWAP3 00003a08: SWAP2 00003a09: POP 00003a0a: POP 00003a0b: JUMP 00003a0c: JUMPDEST 00003a0d: PUSH1 0x00 00003a0f: DUP3 00003a10: DUP3 00003a11: GT 00003a12: ISZERO 00003a13: ISZERO 00003a14: PUSH2 0x3a21 00003a17: JUMPI 00003a18: DUP2 00003a19: DUP4 00003a1a: SUB 00003a1b: SWAP1 00003a1c: POP 00003a1d: PUSH2 0x3a26 00003a20: JUMP 00003a21: JUMPDEST 00003a22: PUSH1 0x00 00003a24: DUP1 00003a25: REVERT 00003a26: JUMPDEST 00003a27: SWAP3 00003a28: SWAP2 00003a29: POP 00003a2a: POP 00003a2b: JUMP 00003a2c: JUMPDEST 00003a2d: PUSH1 0x00 00003a2f: DUP1 00003a30: PUSH1 0x00 00003a32: DUP1 00003a33: PUSH1 0x00 00003a35: PUSH2 0x3a3c 00003a38: PUSH2 0x3ccf 00003a3b: JUMP 00003a3c: JUMPDEST 00003a3d: PUSH1 0x00 00003a3f: SWAP5 00003a40: POP 00003a41: PUSH1 0x06 00003a43: DUP1 00003a44: SLOAD 00003a45: SWAP1 00003a46: POP 00003a47: SWAP4 00003a48: POP 00003a49: PUSH1 0x00 00003a4b: SWAP3 00003a4c: POP 00003a4d: PUSH1 0x00 00003a4f: SWAP2 00003a50: POP 00003a51: JUMPDEST 00003a52: PUSH1 0x00 00003a54: DUP5 00003a55: GT 00003a56: DUP1 00003a57: ISZERO 00003a58: PUSH2 0x3a60 00003a5b: JUMPI 00003a5c: POP 00003a5d: DUP4 00003a5e: DUP3 00003a5f: LT 00003a60: JUMPDEST 00003a61: ISZERO 00003a62: PUSH2 0x3c07 00003a65: JUMPI 00003a66: PUSH1 0x06 00003a68: DUP3 00003a69: DUP2 00003a6a: SLOAD 00003a6b: DUP2 00003a6c: LT 00003a6d: ISZERO 00003a6e: ISZERO 00003a6f: PUSH2 0x3a74 00003a72: JUMPI 00003a73: INVALID 00003a74: JUMPDEST 00003a75: SWAP1 00003a76: PUSH1 0x00 00003a78: MSTORE 00003a79: PUSH1 0x20 00003a7b: PUSH1 0x00 00003a7d: KECCAK256 00003a7e: SWAP1 00003a7f: PUSH1 0x03 00003a81: MUL 00003a82: ADD 00003a83: PUSH1 0x80 00003a85: PUSH1 0x40 00003a87: MLOAD 00003a88: SWAP1 00003a89: DUP2 00003a8a: ADD 00003a8b: PUSH1 0x40 00003a8d: MSTORE 00003a8e: SWAP1 00003a8f: DUP2 00003a90: PUSH1 0x00 00003a92: DUP3 00003a93: ADD 00003a94: PUSH1 0x00 00003a96: SWAP1 00003a97: SLOAD 00003a98: SWAP1 00003a99: PUSH2 0x0100 00003a9c: EXP 00003a9d: SWAP1 00003a9e: DIV 00003a9f: PUSH1 0xff 00003aa1: AND 00003aa2: ISZERO 00003aa3: ISZERO 00003aa4: ISZERO 00003aa5: ISZERO 00003aa6: DUP2 00003aa7: MSTORE 00003aa8: PUSH1 0x20 00003aaa: ADD 00003aab: PUSH1 0x00 00003aad: DUP3 00003aae: ADD 00003aaf: PUSH1 0x01 00003ab1: SWAP1 00003ab2: SLOAD 00003ab3: SWAP1 00003ab4: PUSH2 0x0100 00003ab7: EXP 00003ab8: SWAP1 00003ab9: DIV 00003aba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003acf: AND 00003ad0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003ae5: AND 00003ae6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003afb: AND 00003afc: DUP2 00003afd: MSTORE 00003afe: PUSH1 0x20 00003b00: ADD 00003b01: PUSH1 0x01 00003b03: DUP3 00003b04: ADD 00003b05: SLOAD 00003b06: DUP2 00003b07: MSTORE 00003b08: PUSH1 0x20 00003b0a: ADD 00003b0b: PUSH1 0x02 00003b0d: DUP3 00003b0e: ADD 00003b0f: SLOAD 00003b10: DUP2 00003b11: MSTORE 00003b12: POP 00003b13: POP 00003b14: SWAP1 00003b15: POP 00003b16: DUP1 00003b17: PUSH1 0x00 00003b19: ADD 00003b1a: MLOAD 00003b1b: DUP1 00003b1c: ISZERO 00003b1d: PUSH2 0x3baa 00003b20: JUMPI 00003b21: POP 00003b22: PUSH1 0x04 00003b24: PUSH1 0x00 00003b26: DUP3 00003b27: PUSH1 0x20 00003b29: ADD 00003b2a: MLOAD 00003b2b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003b40: AND 00003b41: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003b56: AND 00003b57: DUP2 00003b58: MSTORE 00003b59: PUSH1 0x20 00003b5b: ADD 00003b5c: SWAP1 00003b5d: DUP2 00003b5e: MSTORE 00003b5f: PUSH1 0x20 00003b61: ADD 00003b62: PUSH1 0x00 00003b64: KECCAK256 00003b65: PUSH1 0x00 00003b67: CALLER 00003b68: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003b7d: AND 00003b7e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003b93: AND 00003b94: DUP2 00003b95: MSTORE 00003b96: PUSH1 0x20 00003b98: ADD 00003b99: SWAP1 00003b9a: DUP2 00003b9b: MSTORE 00003b9c: PUSH1 0x20 00003b9e: ADD 00003b9f: PUSH1 0x00 00003ba1: KECCAK256 00003ba2: SLOAD 00003ba3: DUP2 00003ba4: PUSH1 0x40 00003ba6: ADD 00003ba7: MLOAD 00003ba8: GT 00003ba9: ISZERO 00003baa: JUMPDEST 00003bab: ISZERO 00003bac: PUSH2 0x3beb 00003baf: JUMPI 00003bb0: PUSH1 0x01 00003bb2: SWAP3 00003bb3: POP 00003bb4: PUSH2 0x3be4 00003bb7: PUSH8 0x0de0b6b3a7640000 00003bc0: PUSH2 0x3bd6 00003bc3: DUP4 00003bc4: PUSH1 0x60 00003bc6: ADD 00003bc7: MLOAD 00003bc8: DUP11 00003bc9: PUSH2 0x39cb 00003bcc: SWAP1 00003bcd: SWAP2 00003bce: SWAP1 00003bcf: PUSH4 0xffffffff 00003bd4: AND 00003bd5: JUMP 00003bd6: JUMPDEST 00003bd7: PUSH2 0x3c4d 00003bda: SWAP1 00003bdb: SWAP2 00003bdc: SWAP1 00003bdd: PUSH4 0xffffffff 00003be2: AND 00003be3: JUMP 00003be4: JUMPDEST 00003be5: SWAP5 00003be6: POP 00003be7: PUSH2 0x3c07 00003bea: JUMP 00003beb: JUMPDEST 00003bec: PUSH1 0x0a 00003bee: DUP3 00003bef: LT 00003bf0: ISZERO 00003bf1: ISZERO 00003bf2: PUSH2 0x3bfa 00003bf5: JUMPI 00003bf6: PUSH2 0x3c07 00003bf9: JUMP 00003bfa: JUMPDEST 00003bfb: DUP2 00003bfc: DUP1 00003bfd: PUSH1 0x01 00003bff: ADD 00003c00: SWAP3 00003c01: POP 00003c02: POP 00003c03: PUSH2 0x3a51 00003c06: JUMP 00003c07: JUMPDEST 00003c08: DUP3 00003c09: ISZERO 00003c0a: ISZERO 00003c0b: PUSH2 0x3c40 00003c0e: JUMPI 00003c0f: PUSH2 0x3c3d 00003c12: PUSH8 0x0de0b6b3a7640000 00003c1b: PUSH2 0x3c2f 00003c1e: PUSH1 0x02 00003c20: SLOAD 00003c21: DUP11 00003c22: PUSH2 0x39cb 00003c25: SWAP1 00003c26: SWAP2 00003c27: SWAP1 00003c28: PUSH4 0xffffffff 00003c2d: AND 00003c2e: JUMP 00003c2f: JUMPDEST 00003c30: PUSH2 0x3c4d 00003c33: SWAP1 00003c34: SWAP2 00003c35: SWAP1 00003c36: PUSH4 0xffffffff 00003c3b: AND 00003c3c: JUMP 00003c3d: JUMPDEST 00003c3e: SWAP5 00003c3f: POP 00003c40: JUMPDEST 00003c41: DUP5 00003c42: SWAP6 00003c43: POP 00003c44: POP 00003c45: POP 00003c46: POP 00003c47: POP 00003c48: POP 00003c49: SWAP2 00003c4a: SWAP1 00003c4b: POP 00003c4c: JUMP 00003c4d: JUMPDEST 00003c4e: PUSH1 0x00 00003c50: DUP1 00003c51: PUSH1 0x00 00003c53: DUP4 00003c54: GT 00003c55: ISZERO 00003c56: PUSH2 0x3c6f 00003c59: JUMPI 00003c5a: DUP3 00003c5b: DUP5 00003c5c: DUP2 00003c5d: ISZERO 00003c5e: ISZERO 00003c5f: PUSH2 0x3c64 00003c62: JUMPI 00003c63: INVALID 00003c64: JUMPDEST 00003c65: DIV 00003c66: SWAP1 00003c67: POP 00003c68: DUP1 00003c69: SWAP2 00003c6a: POP 00003c6b: PUSH2 0x3c74 00003c6e: JUMP 00003c6f: JUMPDEST 00003c70: PUSH1 0x00 00003c72: DUP1 00003c73: REVERT 00003c74: JUMPDEST 00003c75: POP 00003c76: SWAP3 00003c77: SWAP2 00003c78: POP 00003c79: POP 00003c7a: JUMP 00003c7b: JUMPDEST 00003c7c: DUP2 00003c7d: SLOAD 00003c7e: DUP2 00003c7f: DUP4 00003c80: SSTORE 00003c81: DUP2 00003c82: DUP2 00003c83: GT 00003c84: ISZERO 00003c85: PUSH2 0x3ca8 00003c88: JUMPI 00003c89: PUSH1 0x03 00003c8b: MUL 00003c8c: DUP2 00003c8d: PUSH1 0x03 00003c8f: MUL 00003c90: DUP4 00003c91: PUSH1 0x00 00003c93: MSTORE 00003c94: PUSH1 0x20 00003c96: PUSH1 0x00 00003c98: KECCAK256 00003c99: SWAP2 00003c9a: DUP3 00003c9b: ADD 00003c9c: SWAP2 00003c9d: ADD 00003c9e: PUSH2 0x3ca7 00003ca1: SWAP2 00003ca2: SWAP1 00003ca3: PUSH2 0x3d10 00003ca6: JUMP 00003ca7: JUMPDEST 00003ca8: JUMPDEST 00003ca9: POP 00003caa: POP 00003cab: POP 00003cac: JUMP 00003cad: JUMPDEST 00003cae: PUSH1 0x40 00003cb0: DUP1 00003cb1: MLOAD 00003cb2: SWAP1 00003cb3: DUP2 00003cb4: ADD 00003cb5: PUSH1 0x40 00003cb7: MSTORE 00003cb8: DUP1 00003cb9: PUSH1 0x02 00003cbb: SWAP1 00003cbc: PUSH1 0x20 00003cbe: DUP3 00003cbf: MUL 00003cc0: DUP1 00003cc1: CODESIZE 00003cc2: DUP4 00003cc3: CODECOPY 00003cc4: DUP1 00003cc5: DUP3 00003cc6: ADD 00003cc7: SWAP2 00003cc8: POP 00003cc9: POP 00003cca: SWAP1 00003ccb: POP 00003ccc: POP 00003ccd: SWAP1 00003cce: JUMP 00003ccf: JUMPDEST 00003cd0: PUSH1 0x80 00003cd2: PUSH1 0x40 00003cd4: MLOAD 00003cd5: SWAP1 00003cd6: DUP2 00003cd7: ADD 00003cd8: PUSH1 0x40 00003cda: MSTORE 00003cdb: DUP1 00003cdc: PUSH1 0x00 00003cde: ISZERO 00003cdf: ISZERO 00003ce0: DUP2 00003ce1: MSTORE 00003ce2: PUSH1 0x20 00003ce4: ADD 00003ce5: PUSH1 0x00 00003ce7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003cfc: AND 00003cfd: DUP2 00003cfe: MSTORE 00003cff: PUSH1 0x20 00003d01: ADD 00003d02: PUSH1 0x00 00003d04: DUP2 00003d05: MSTORE 00003d06: PUSH1 0x20 00003d08: ADD 00003d09: PUSH1 0x00 00003d0b: DUP2 00003d0c: MSTORE 00003d0d: POP 00003d0e: SWAP1 00003d0f: JUMP 00003d10: JUMPDEST 00003d11: PUSH2 0x3d77 00003d14: SWAP2 00003d15: SWAP1 00003d16: JUMPDEST 00003d17: DUP1 00003d18: DUP3 00003d19: GT 00003d1a: ISZERO 00003d1b: PUSH2 0x3d73 00003d1e: JUMPI 00003d1f: PUSH1 0x00 00003d21: DUP1 00003d22: DUP3 00003d23: ADD 00003d24: PUSH1 0x00 00003d26: PUSH2 0x0100 00003d29: EXP 00003d2a: DUP2 00003d2b: SLOAD 00003d2c: SWAP1 00003d2d: PUSH1 0xff 00003d2f: MUL 00003d30: NOT 00003d31: AND 00003d32: SWAP1 00003d33: SSTORE 00003d34: PUSH1 0x00 00003d36: DUP3 00003d37: ADD 00003d38: PUSH1 0x01 00003d3a: PUSH2 0x0100 00003d3d: EXP 00003d3e: DUP2 00003d3f: SLOAD 00003d40: SWAP1 00003d41: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003d56: MUL 00003d57: NOT 00003d58: AND 00003d59: SWAP1 00003d5a: SSTORE 00003d5b: PUSH1 0x01 00003d5d: DUP3 00003d5e: ADD 00003d5f: PUSH1 0x00 00003d61: SWAP1 00003d62: SSTORE 00003d63: PUSH1 0x02 00003d65: DUP3 00003d66: ADD 00003d67: PUSH1 0x00 00003d69: SWAP1 00003d6a: SSTORE 00003d6b: POP 00003d6c: PUSH1 0x03 00003d6e: ADD 00003d6f: PUSH2 0x3d16 00003d72: JUMP 00003d73: JUMPDEST 00003d74: POP 00003d75: SWAP1 00003d76: JUMP 00003d77: JUMPDEST 00003d78: SWAP1 00003d79: JUMP 00003d7a: STOP 00003d7b: LOG1 00003d7c: PUSH6 0x627a7a723058 00003d83: KECCAK256 00003d84: DUP8 00003d85: UNKNOWN(0x2C) 00003d86: MCOPY 00003d87: SHL 00003d88: UNKNOWN(0x2F) 00003d89: PUSH29
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x1d07767d94bb0f1adac8424bf526d2420add815ab163cffd94fbc2812439f1d4
call_targets:
0x2f23228b905ceb4734eb42d9b42805296667c93b
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x1d07767d94bb0f1adac8424bf526d2420add815ab163cffd94fbc2812439f1d4",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x2f23228b905ceb4734eb42d9b42805296667c93b"
],
"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": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0a19b14a",
"selector": "0x0a19b14a",
"calldata_variants": [
"0x0a19b14a",
"0x0a19b14a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x14143c91",
"selector": "0x14143c91",
"calldata_variants": [
"0x14143c91",
"0x14143c910000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x19774d43",
"selector": "0x19774d43",
"calldata_variants": [
"0x19774d43",
"0x19774d430000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x278b8c0e",
"selector": "0x278b8c0e",
"calldata_variants": [
"0x278b8c0e",
"0x278b8c0e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2e1a7d4d",
"selector": "0x2e1a7d4d",
"calldata_variants": [
"0x2e1a7d4d",
"0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x338b5dea",
"selector": "0x338b5dea",
"calldata_variants": [
"0x338b5dea",
"0x338b5dea0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3c2e2a75",
"selector": "0x3c2e2a75",
"calldata_variants": [
"0x3c2e2a75",
"0x3c2e2a750000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3443,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3694,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4719,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 11,
"guards_detected": [
{
"pc": 8257,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 9344,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 9503,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 9604,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 10958,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 12950,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 11
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x1d07767d94bb0f1adac8424bf526d2420add815ab163cffd94fbc2812439f1d4
call_targets:
0x2f23228b905ceb4734eb42d9b42805296667c93b
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x1d07767d94bb0f1adac8424bf526d2420add815ab163cffd94fbc2812439f1d4",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x2f23228b905ceb4734eb42d9b42805296667c93b"
],
"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": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0a19b14a",
"selector": "0x0a19b14a",
"calldata_variants": [
"0x0a19b14a",
"0x0a19b14a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x14143c91",
"selector": "0x14143c91",
"calldata_variants": [
"0x14143c91",
"0x14143c910000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x19774d43",
"selector": "0x19774d43",
"calldata_variants": [
"0x19774d43",
"0x19774d430000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x278b8c0e",
"selector": "0x278b8c0e",
"calldata_variants": [
"0x278b8c0e",
"0x278b8c0e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2e1a7d4d",
"selector": "0x2e1a7d4d",
"calldata_variants": [
"0x2e1a7d4d",
"0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x338b5dea",
"selector": "0x338b5dea",
"calldata_variants": [
"0x338b5dea",
"0x338b5dea0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3c2e2a75",
"selector": "0x3c2e2a75",
"calldata_variants": [
"0x3c2e2a75",
"0x3c2e2a750000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3443,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3694,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4719,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 11,
"guards_detected": [
{
"pc": 8257,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 9344,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 9503,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 9604,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 10958,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 12950,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|
| medium | math | codex | Deposits credit the requested amount instead of actual tokens received | 75 | no | — |
viewevidence_json{
"evidence": "Both deposit paths call `transferFrom` and then unconditionally add `amount` to the internal balance without verifying the received amount.",
"locations": [
"contracts/Contract.sol:244",
"contracts/Contract.sol:247",
"contracts/Contract.sol:249",
"contracts/Contract.sol:510",
"contracts/Contract.sol:515",
"contracts/Contract.sol:517"
],
"recommendation": "When accepting ERC20 tokens, compute the actual amount received using balance-before/balance-after and credit only the delta. Alternatively, explicitly reject/denylist fee-on-transfer tokens or use an allowlist of supported tokens.",
"exploit_scenario": "If a fee-on-transfer/deflationary token is deposited (e.g., 10% transfer fee), the exchange receives fewer tokens than `amount` but credits the full `amount` to the user\u2019s internal balance. An attacker can deposit such a token, then later withdraw the credited amount when other users have deposited the same token, effectively extracting the shortfall from the pool and leaving the exchange insolvent for remaining users."
}
|