TW
Tripwire
Find contracts. Test them. Review real vulns.

Analysis Run

019bb004-7b4d-7161-b0f8-f40aa9087df9

complete
Chain ID
1
Address
Block Number
Created
Mon, Jan 12, 2026 2:24 AM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Untrusted CALL target/value reachable
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
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

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no not_proxy
Implementation:
Verified Source: yes
Proxy evidence
{
    "status": "not_proxy"
}

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
1
No findings?
no
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.
View stdout
{"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"]}]}
View stderr
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
Metadata
{
    "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
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
11
EXT*/BALANCE
3
Total opcodes
7399
Flags
No heuristic flags raised.
View cast disassembly output
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

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_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
view
trace_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
view
evidence_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."
}