019c0ea9-0737-72a3-99e0-ec55ab3ddde2
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 41543 | artifact.fetch | complete | 1 / 3 | 2 months ago |
| 41544 | proxy.resolve | complete | 1 / 3 | 2 months ago |
| 41545 | tool.cast_disasm | complete | 1 / 3 | 2 months ago |
| 41546 | analysis.bundle | complete | 1 / 3 | 2 months ago |
| 41547 | capability.graph | complete | 1 / 3 | 2 months ago |
| 41548 | detector.run | complete | 1 / 3 | 2 months ago |
| 41549 | validation.fork | complete | 1 / 3 | 2 months ago |
| 42197 | report.consolidate | complete | 1 / 6 | 2 months ago |
{
"status": "not_proxy"
}
No slither job recorded yet.
{"no_findings":false,"summary":"Found two issues: maker whitelist is not enforced at trade time, and order validation accepts invalid signatures when user is the zero address, which can enable unauthorized trades if 0x0 accumulates balances (e.g., via misconfigured feeAccount).","findings":[{"severity":"medium","category":"auth","title":"Invalid signatures are accepted when `user` is the zero address","exploit_scenario":"An attacker calls `trade` with `user = 0x0` and any invalid `(v,r,s)`. `validateOrderHash` returns true because `ecrecover(...)` returns `0x0` for invalid signatures. If `tokens[<token>][0x0]` has any balance (e.g., fees accumulated because the constructor allowed `feeAccount = 0x0`), the attacker can drain those balances by choosing favorable `amountGive/amountGet` ratios.","recommendation":"Reject zero-address makers in `trade` (and in any helper that validates orders) and treat `ecrecover` returning `0x0` as invalid. Also validate `feeAccount != 0x0` in the constructor to avoid accumulating balances at the zero address.","evidence":"`trade` accepts a `user` parameter without a non-zero or whitelist check, and `validateOrderHash` treats `ecrecover(...) == user` as valid even when `user` is `0x0` (invalid signatures recover to `0x0`).","locations":["contracts/Contract.sol:462","contracts/Contract.sol:696"]},{"severity":"low","category":"access_control","title":"Maker whitelist is not enforced in `trade`","exploit_scenario":"A user who was previously whitelisted can continue to have their orders filled after being removed from the whitelist. A whitelisted taker can still execute trades against that maker’s signed orders, bypassing whitelist-based trading restrictions.","recommendation":"Require `whitelistedUsers[user]` in `trade` (and optionally reject `user == 0x0`) to ensure both maker and taker are authorized at execution time.","evidence":"`trade` only checks `whitelistedUsers[msg.sender]` but not `whitelistedUsers[user]`. In contrast, `testTrade`/`availableVolume` enforce both users.","locations":["contracts/Contract.sol:462","contracts/Contract.sol:539"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-jf0rr9ig
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0ebe-f1c1-7bf0-9b0c-0a03f077fdf6
--------
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
exec
/bin/bash -lc ls in /tmp/codex-jf0rr9ig succeeded in 7ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-jf0rr9ig succeeded in 5ms:
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.18;
// File: contracts/AccountLevels.sol
contract AccountLevels {
//given a user, returns an account level
//0 = regular user (pays take fee and make fee)
//1 = market maker silver (pays take fee, no make fee, gets rebate)
//2 = market maker gold (pays take fee, no make fee, gets entire counterparty's take fee as rebate)
function accountLevel(address user) public constant returns(uint);
}
// File: zeppelin-solidity/contracts/math/SafeMath.sol
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '200,420p'" in /tmp/codex-jf0rr9ig succeeded in 14ms:
200 /**
201 * @dev Change the feeMake amount.
202 * @param _feeMake uint256 New fee make.
203 */
204 function changeFeeMake(uint256 _feeMake) public onlyAdmin {
205 // Store the new value.
206 feeMake = _feeMake;
207 }
208
209 /**
210 * @dev Change the feeTake amount.
211 * @param _feeTake uint256 New fee take.
212 */
213 function changeFeeTake(uint256 _feeTake) public onlyAdmin {
214 // The new feeTake should be greater than or equal to the feeRebate.
215 require(_feeTake >= feeRebate);
216
217 // Store the new value.
218 feeTake = _feeTake;
219 }
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '420,720p'" in /tmp/codex-jf0rr9ig succeeded in 7ms:
420 * @param s bytes32
421 */
422 function cancelOrder(
423 address tokenGet,
424 uint256 amountGet,
425 address tokenGive,
426 uint256 amountGive,
427 uint256 expires,
428 uint256 nonce,
429 uint8 v,
430 bytes32 r,
431 bytes32 s
432 )
433 public
434 {
435 // Calculate the order hash.
436 bytes32 hash = keccak256(address(this), tokenGet, amountGet, tokenGive, amountGive, expires, nonce);
437
438 // Ensure the message validity.
439 require(validateOrderHash(hash, msg.sender, v, r, s));
codex
{"no_findings":false,"summary":"Found two issues: maker whitelist is not enforced at trade time, and order validation accepts invalid signatures when user is the zero address, which can enable unauthorized trades if 0x0 accumulates balances (e.g., via misconfigured feeAccount).","findings":[{"severity":"medium","category":"auth","title":"Invalid signatures are accepted when `user` is the zero address","exploit_scenario":"An attacker calls `trade` with `user = 0x0` and any invalid `(v,r,s)`. `validateOrderHash` returns true because `ecrecover(...)` returns `0x0` for invalid signatures. If `tokens[<token>][0x0]` has any balance (e.g., fees accumulated because the constructor allowed `feeAccount = 0x0`), the attacker can drain those balances by choosing favorable `amountGive/amountGet` ratios.","recommendation":"Reject zero-address makers in `trade` (and in any helper that validates orders) and treat `ecrecover` returning `0x0` as invalid. Also validate `feeAccount != 0x0` in the constructor to avoid accumulating balances at the zero address.","evidence":"`trade` accepts a `user` parameter without a non-zero or whitelist check, and `validateOrderHash` treats `ecrecover(...) == user` as valid even when `user` is `0x0` (invalid signatures recover to `0x0`).","locations":["contracts/Contract.sol:462","contracts/Contract.sol:696"]},{"severity":"low","category":"access_control","title":"Maker whitelist is not enforced in `trade`","exploit_scenario":"A user who was previously whitelisted can continue to have their orders filled after being removed from the whitelist. A whitelisted taker can still execute trades against that maker’s signed orders, bypassing whitelist-based trading restrictions.","recommendation":"Require `whitelistedUsers[user]` in `trade` (and optionally reject `user == 0x0`) to ensure both maker and taker are authorized at execution time.","evidence":"`trade` only checks `whitelistedUsers[msg.sender]` but not `whitelistedUsers[user]`. In contrast, `testTrade`/`availableVolume` enforce both users.","locations":["contracts/Contract.sol:462","contracts/Contract.sol:539"]}]}
tokens used
27,374
{
"codex": {
"ran_at": "2026-01-30T11:56:30.861605+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 1,
"import_count": 0,
"first_party_contracts_count": 1
},
"summary": "Found two issues: maker whitelist is not enforced at trade time, and order validation accepts invalid signatures when user is the zero address, which can enable unauthorized trades if 0x0 accumulates balances (e.g., via misconfigured feeAccount).",
"raw_final": {
"summary": "Found two issues: maker whitelist is not enforced at trade time, and order validation accepts invalid signatures when user is the zero address, which can enable unauthorized trades if 0x0 accumulates balances (e.g., via misconfigured feeAccount).",
"findings": [
{
"title": "Invalid signatures are accepted when `user` is the zero address",
"category": "auth",
"evidence": "`trade` accepts a `user` parameter without a non-zero or whitelist check, and `validateOrderHash` treats `ecrecover(...) == user` as valid even when `user` is `0x0` (invalid signatures recover to `0x0`).",
"severity": "medium",
"locations": [
"contracts/Contract.sol:462",
"contracts/Contract.sol:696"
],
"recommendation": "Reject zero-address makers in `trade` (and in any helper that validates orders) and treat `ecrecover` returning `0x0` as invalid. Also validate `feeAccount != 0x0` in the constructor to avoid accumulating balances at the zero address.",
"exploit_scenario": "An attacker calls `trade` with `user = 0x0` and any invalid `(v,r,s)`. `validateOrderHash` returns true because `ecrecover(...)` returns `0x0` for invalid signatures. If `tokens[<token>][0x0]` has any balance (e.g., fees accumulated because the constructor allowed `feeAccount = 0x0`), the attacker can drain those balances by choosing favorable `amountGive/amountGet` ratios."
},
{
"title": "Maker whitelist is not enforced in `trade`",
"category": "access_control",
"evidence": "`trade` only checks `whitelistedUsers[msg.sender]` but not `whitelistedUsers[user]`. In contrast, `testTrade`/`availableVolume` enforce both users.",
"severity": "low",
"locations": [
"contracts/Contract.sol:462",
"contracts/Contract.sol:539"
],
"recommendation": "Require `whitelistedUsers[user]` in `trade` (and optionally reject `user == 0x0`) to ensure both maker and taker are authorized at execution time.",
"exploit_scenario": "A user who was previously whitelisted can continue to have their orders filled after being removed from the whitelist. A whitelisted taker can still execute trades against that maker\u2019s signed orders, bypassing whitelist-based trading restrictions."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x0196 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 0x019b 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0x0b927666 00000047: EQ 00000048: PUSH2 0x0279 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0x19774d43 00000052: EQ 00000053: PUSH2 0x0304 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0x278b8c0e 0000005d: EQ 0000005e: PUSH2 0x0369 00000061: JUMPI 00000062: DUP1 00000063: PUSH4 0x29b1ce4d 00000068: EQ 00000069: PUSH2 0x041d 0000006c: JUMPI 0000006d: DUP1 0000006e: PUSH4 0x2d804ca2 00000073: EQ 00000074: PUSH2 0x0460 00000077: JUMPI 00000078: DUP1 00000079: PUSH4 0x2e1a7d4d 0000007e: EQ 0000007f: PUSH2 0x051f 00000082: JUMPI 00000083: DUP1 00000084: PUSH4 0x338b5dea 00000089: EQ 0000008a: PUSH2 0x054c 0000008d: JUMPI 0000008e: DUP1 0000008f: PUSH4 0x508493bc 00000094: EQ 00000095: PUSH2 0x0599 00000098: JUMPI 00000099: DUP1 0000009a: PUSH4 0x54d03b5c 0000009f: EQ 000000a0: PUSH2 0x0610 000000a3: JUMPI 000000a4: DUP1 000000a5: PUSH4 0x57786394 000000aa: EQ 000000ab: PUSH2 0x063d 000000ae: JUMPI 000000af: DUP1 000000b0: PUSH4 0x5e1d7ae4 000000b5: EQ 000000b6: PUSH2 0x0668 000000b9: JUMPI 000000ba: DUP1 000000bb: PUSH4 0x65e17c9d 000000c0: EQ 000000c1: PUSH2 0x0695 000000c4: JUMPI 000000c5: DUP1 000000c6: PUSH4 0x68df4dda 000000cb: EQ 000000cc: PUSH2 0x06ec 000000cf: JUMPI 000000d0: DUP1 000000d1: PUSH4 0x6c86888b 000000d6: EQ 000000d7: PUSH2 0x072f 000000da: JUMPI 000000db: DUP1 000000dc: PUSH4 0x71ffcb16 000000e1: EQ 000000e2: PUSH2 0x0845 000000e5: JUMPI 000000e6: DUP1 000000e7: PUSH4 0x731c2f81 000000ec: EQ 000000ed: PUSH2 0x0888 000000f0: JUMPI 000000f1: DUP1 000000f2: PUSH4 0x8823a9c0 000000f7: EQ 000000f8: PUSH2 0x08b3 000000fb: JUMPI 000000fc: DUP1 000000fd: PUSH4 0x8f283970 00000102: EQ 00000103: PUSH2 0x08e0 00000106: JUMPI 00000107: DUP1 00000108: PUSH4 0x9324dfff 0000010d: EQ 0000010e: PUSH2 0x0923 00000111: JUMPI 00000112: DUP1 00000113: PUSH4 0x9e281a98 00000118: EQ 00000119: PUSH2 0x0966 0000011c: JUMPI 0000011d: DUP1 0000011e: PUSH4 0xaaa6bc40 00000123: EQ 00000124: PUSH2 0x09b3 00000127: JUMPI 00000128: DUP1 00000129: PUSH4 0xbb5f4629 0000012e: EQ 0000012f: PUSH2 0x09f6 00000132: JUMPI 00000133: DUP1 00000134: PUSH4 0xc281309e 00000139: EQ 0000013a: PUSH2 0x0a5f 0000013d: JUMPI 0000013e: DUP1 0000013f: PUSH4 0xd0e30db0 00000144: EQ 00000145: PUSH2 0x0a8a 00000148: JUMPI 00000149: DUP1 0000014a: PUSH4 0xdaf9c210 0000014f: EQ 00000150: PUSH2 0x0a94 00000153: JUMPI 00000154: DUP1 00000155: PUSH4 0xe8f6bc2e 0000015a: EQ 0000015b: PUSH2 0x0aef 0000015e: JUMPI 0000015f: DUP1 00000160: PUSH4 0xf3412942 00000165: EQ 00000166: PUSH2 0x0b32 00000169: JUMPI 0000016a: DUP1 0000016b: PUSH4 0xf621cc48 00000170: EQ 00000171: PUSH2 0x0b89 00000174: JUMPI 00000175: DUP1 00000176: PUSH4 0xf7888aec 0000017b: EQ 0000017c: PUSH2 0x0be4 0000017f: JUMPI 00000180: DUP1 00000181: PUSH4 0xf851a440 00000186: EQ 00000187: PUSH2 0x0c5b 0000018a: JUMPI 0000018b: DUP1 0000018c: PUSH4 0xfb6e155f 00000191: EQ 00000192: PUSH2 0x0cb2 00000195: JUMPI 00000196: JUMPDEST 00000197: PUSH1 0x00 00000199: DUP1 0000019a: REVERT 0000019b: JUMPDEST 0000019c: CALLVALUE 0000019d: DUP1 0000019e: ISZERO 0000019f: PUSH2 0x01a7 000001a2: JUMPI 000001a3: PUSH1 0x00 000001a5: DUP1 000001a6: REVERT 000001a7: JUMPDEST 000001a8: POP 000001a9: PUSH2 0x0277 000001ac: PUSH1 0x04 000001ae: DUP1 000001af: CALLDATASIZE 000001b0: SUB 000001b1: DUP2 000001b2: ADD 000001b3: SWAP1 000001b4: DUP1 000001b5: DUP1 000001b6: CALLDATALOAD 000001b7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001cc: AND 000001cd: SWAP1 000001ce: PUSH1 0x20 000001d0: ADD 000001d1: SWAP1 000001d2: SWAP3 000001d3: SWAP2 000001d4: SWAP1 000001d5: DUP1 000001d6: CALLDATALOAD 000001d7: SWAP1 000001d8: PUSH1 0x20 000001da: ADD 000001db: SWAP1 000001dc: SWAP3 000001dd: SWAP2 000001de: SWAP1 000001df: DUP1 000001e0: CALLDATALOAD 000001e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001f6: AND 000001f7: SWAP1 000001f8: PUSH1 0x20 000001fa: ADD 000001fb: SWAP1 000001fc: SWAP3 000001fd: SWAP2 000001fe: SWAP1 000001ff: DUP1 00000200: CALLDATALOAD 00000201: SWAP1 00000202: PUSH1 0x20 00000204: ADD 00000205: SWAP1 00000206: SWAP3 00000207: SWAP2 00000208: SWAP1 00000209: DUP1 0000020a: CALLDATALOAD 0000020b: SWAP1 0000020c: PUSH1 0x20 0000020e: ADD 0000020f: SWAP1 00000210: SWAP3 00000211: SWAP2 00000212: SWAP1 00000213: DUP1 00000214: CALLDATALOAD 00000215: SWAP1 00000216: PUSH1 0x20 00000218: ADD 00000219: SWAP1 0000021a: SWAP3 0000021b: SWAP2 0000021c: SWAP1 0000021d: DUP1 0000021e: CALLDATALOAD 0000021f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000234: AND 00000235: SWAP1 00000236: PUSH1 0x20 00000238: ADD 00000239: SWAP1 0000023a: SWAP3 0000023b: SWAP2 0000023c: SWAP1 0000023d: DUP1 0000023e: CALLDATALOAD 0000023f: PUSH1 0xff 00000241: AND 00000242: SWAP1 00000243: PUSH1 0x20 00000245: ADD 00000246: SWAP1 00000247: SWAP3 00000248: SWAP2 00000249: SWAP1 0000024a: DUP1 0000024b: CALLDATALOAD 0000024c: PUSH1 0x00 0000024e: NOT 0000024f: AND 00000250: SWAP1 00000251: PUSH1 0x20 00000253: ADD 00000254: SWAP1 00000255: SWAP3 00000256: SWAP2 00000257: SWAP1 00000258: DUP1 00000259: CALLDATALOAD 0000025a: PUSH1 0x00 0000025c: NOT 0000025d: AND 0000025e: SWAP1 0000025f: PUSH1 0x20 00000261: ADD 00000262: SWAP1 00000263: SWAP3 00000264: SWAP2 00000265: SWAP1 00000266: DUP1 00000267: CALLDATALOAD 00000268: SWAP1 00000269: PUSH1 0x20 0000026b: ADD 0000026c: SWAP1 0000026d: SWAP3 0000026e: SWAP2 0000026f: SWAP1 00000270: POP 00000271: POP 00000272: POP 00000273: PUSH2 0x0d9a 00000276: JUMP 00000277: JUMPDEST 00000278: STOP 00000279: JUMPDEST 0000027a: CALLVALUE 0000027b: DUP1 0000027c: ISZERO 0000027d: PUSH2 0x0285 00000280: JUMPI 00000281: PUSH1 0x00 00000283: DUP1 00000284: REVERT 00000285: JUMPDEST 00000286: POP 00000287: PUSH2 0x0302 0000028a: PUSH1 0x04 0000028c: DUP1 0000028d: CALLDATASIZE 0000028e: SUB 0000028f: DUP2 00000290: ADD 00000291: SWAP1 00000292: DUP1 00000293: DUP1 00000294: CALLDATALOAD 00000295: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002aa: AND 000002ab: SWAP1 000002ac: PUSH1 0x20 000002ae: ADD 000002af: SWAP1 000002b0: SWAP3 000002b1: SWAP2 000002b2: SWAP1 000002b3: DUP1 000002b4: CALLDATALOAD 000002b5: SWAP1 000002b6: PUSH1 0x20 000002b8: ADD 000002b9: SWAP1 000002ba: SWAP3 000002bb: SWAP2 000002bc: SWAP1 000002bd: DUP1 000002be: CALLDATALOAD 000002bf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002d4: AND 000002d5: SWAP1 000002d6: PUSH1 0x20 000002d8: ADD 000002d9: SWAP1 000002da: SWAP3 000002db: SWAP2 000002dc: SWAP1 000002dd: DUP1 000002de: CALLDATALOAD 000002df: SWAP1 000002e0: PUSH1 0x20 000002e2: ADD 000002e3: SWAP1 000002e4: SWAP3 000002e5: SWAP2 000002e6: SWAP1 000002e7: DUP1 000002e8: CALLDATALOAD 000002e9: SWAP1 000002ea: PUSH1 0x20 000002ec: ADD 000002ed: SWAP1 000002ee: SWAP3 000002ef: SWAP2 000002f0: SWAP1 000002f1: DUP1 000002f2: CALLDATALOAD 000002f3: SWAP1 000002f4: PUSH1 0x20 000002f6: ADD 000002f7: SWAP1 000002f8: SWAP3 000002f9: SWAP2 000002fa: SWAP1 000002fb: POP 000002fc: POP 000002fd: POP 000002fe: PUSH2 0x123e 00000301: JUMP 00000302: JUMPDEST 00000303: STOP 00000304: JUMPDEST 00000305: CALLVALUE 00000306: DUP1 00000307: ISZERO 00000308: PUSH2 0x0310 0000030b: JUMPI 0000030c: PUSH1 0x00 0000030e: DUP1 0000030f: REVERT 00000310: JUMPDEST 00000311: POP 00000312: PUSH2 0x0353 00000315: PUSH1 0x04 00000317: DUP1 00000318: CALLDATASIZE 00000319: SUB 0000031a: DUP2 0000031b: ADD 0000031c: SWAP1 0000031d: DUP1 0000031e: DUP1 0000031f: CALLDATALOAD 00000320: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000335: AND 00000336: SWAP1 00000337: PUSH1 0x20 00000339: ADD 0000033a: SWAP1 0000033b: SWAP3 0000033c: SWAP2 0000033d: SWAP1 0000033e: DUP1 0000033f: CALLDATALOAD 00000340: PUSH1 0x00 00000342: NOT 00000343: AND 00000344: SWAP1 00000345: PUSH1 0x20 00000347: ADD 00000348: SWAP1 00000349: SWAP3 0000034a: SWAP2 0000034b: SWAP1 0000034c: POP 0000034d: POP 0000034e: POP 0000034f: PUSH2 0x15a3 00000352: JUMP 00000353: JUMPDEST 00000354: PUSH1 0x40 00000356: MLOAD 00000357: DUP1 00000358: DUP3 00000359: DUP2 0000035a: MSTORE 0000035b: PUSH1 0x20 0000035d: ADD 0000035e: SWAP2 0000035f: POP 00000360: POP 00000361: PUSH1 0x40 00000363: MLOAD 00000364: DUP1 00000365: SWAP2 00000366: SUB 00000367: SWAP1 00000368: RETURN 00000369: JUMPDEST 0000036a: CALLVALUE 0000036b: DUP1 0000036c: ISZERO 0000036d: PUSH2 0x0375 00000370: JUMPI 00000371: PUSH1 0x00 00000373: DUP1 00000374: REVERT 00000375: JUMPDEST 00000376: POP 00000377: PUSH2 0x041b 0000037a: PUSH1 0x04 0000037c: DUP1 0000037d: CALLDATASIZE 0000037e: SUB 0000037f: DUP2 00000380: ADD 00000381: SWAP1 00000382: DUP1 00000383: DUP1 00000384: CALLDATALOAD 00000385: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000039a: AND 0000039b: SWAP1 0000039c: PUSH1 0x20 0000039e: ADD 0000039f: SWAP1 000003a0: SWAP3 000003a1: SWAP2 000003a2: SWAP1 000003a3: DUP1 000003a4: CALLDATALOAD 000003a5: SWAP1 000003a6: PUSH1 0x20 000003a8: ADD 000003a9: SWAP1 000003aa: SWAP3 000003ab: SWAP2 000003ac: SWAP1 000003ad: DUP1 000003ae: CALLDATALOAD 000003af: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003c4: AND 000003c5: SWAP1 000003c6: PUSH1 0x20 000003c8: ADD 000003c9: SWAP1 000003ca: SWAP3 000003cb: SWAP2 000003cc: SWAP1 000003cd: DUP1 000003ce: CALLDATALOAD 000003cf: SWAP1 000003d0: PUSH1 0x20 000003d2: ADD 000003d3: SWAP1 000003d4: SWAP3 000003d5: SWAP2 000003d6: SWAP1 000003d7: DUP1 000003d8: CALLDATALOAD 000003d9: SWAP1 000003da: PUSH1 0x20 000003dc: ADD 000003dd: SWAP1 000003de: SWAP3 000003df: SWAP2 000003e0: SWAP1 000003e1: DUP1 000003e2: CALLDATALOAD 000003e3: SWAP1 000003e4: PUSH1 0x20 000003e6: ADD 000003e7: SWAP1 000003e8: SWAP3 000003e9: SWAP2 000003ea: SWAP1 000003eb: DUP1 000003ec: CALLDATALOAD 000003ed: PUSH1 0xff 000003ef: AND 000003f0: SWAP1 000003f1: PUSH1 0x20 000003f3: ADD 000003f4: SWAP1 000003f5: SWAP3 000003f6: SWAP2 000003f7: SWAP1 000003f8: DUP1 000003f9: CALLDATALOAD 000003fa: PUSH1 0x00 000003fc: NOT 000003fd: AND 000003fe: SWAP1 000003ff: PUSH1 0x20 00000401: ADD 00000402: SWAP1 00000403: SWAP3 00000404: SWAP2 00000405: SWAP1 00000406: DUP1 00000407: CALLDATALOAD 00000408: PUSH1 0x00 0000040a: NOT 0000040b: AND 0000040c: SWAP1 0000040d: PUSH1 0x20 0000040f: ADD 00000410: SWAP1 00000411: SWAP3 00000412: SWAP2 00000413: SWAP1 00000414: POP 00000415: POP 00000416: POP 00000417: PUSH2 0x15c8 0000041a: JUMP 0000041b: JUMPDEST 0000041c: STOP 0000041d: JUMPDEST 0000041e: CALLVALUE 0000041f: DUP1 00000420: ISZERO 00000421: PUSH2 0x0429 00000424: JUMPI 00000425: PUSH1 0x00 00000427: DUP1 00000428: REVERT 00000429: JUMPDEST 0000042a: POP 0000042b: PUSH2 0x045e 0000042e: PUSH1 0x04 00000430: DUP1 00000431: CALLDATASIZE 00000432: SUB 00000433: DUP2 00000434: ADD 00000435: SWAP1 00000436: DUP1 00000437: DUP1 00000438: CALLDATALOAD 00000439: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000044e: AND 0000044f: SWAP1 00000450: PUSH1 0x20 00000452: ADD 00000453: SWAP1 00000454: SWAP3 00000455: SWAP2 00000456: SWAP1 00000457: POP 00000458: POP 00000459: POP 0000045a: PUSH2 0x185d 0000045d: JUMP 0000045e: JUMPDEST 0000045f: STOP 00000460: JUMPDEST 00000461: CALLVALUE 00000462: DUP1 00000463: ISZERO 00000464: PUSH2 0x046c 00000467: JUMPI 00000468: PUSH1 0x00 0000046a: DUP1 0000046b: REVERT 0000046c: JUMPDEST 0000046d: POP 0000046e: PUSH2 0x0509 00000471: PUSH1 0x04 00000473: DUP1 00000474: CALLDATASIZE 00000475: SUB 00000476: DUP2 00000477: ADD 00000478: SWAP1 00000479: DUP1 0000047a: DUP1 0000047b: CALLDATALOAD 0000047c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000491: AND 00000492: SWAP1 00000493: PUSH1 0x20 00000495: ADD 00000496: SWAP1 00000497: SWAP3 00000498: SWAP2 00000499: SWAP1 0000049a: DUP1 0000049b: CALLDATALOAD 0000049c: SWAP1 0000049d: PUSH1 0x20 0000049f: ADD 000004a0: SWAP1 000004a1: SWAP3 000004a2: SWAP2 000004a3: SWAP1 000004a4: DUP1 000004a5: CALLDATALOAD 000004a6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004bb: AND 000004bc: SWAP1 000004bd: PUSH1 0x20 000004bf: ADD 000004c0: SWAP1 000004c1: SWAP3 000004c2: SWAP2 000004c3: SWAP1 000004c4: DUP1 000004c5: CALLDATALOAD 000004c6: SWAP1 000004c7: PUSH1 0x20 000004c9: ADD 000004ca: SWAP1 000004cb: SWAP3 000004cc: SWAP2 000004cd: SWAP1 000004ce: DUP1 000004cf: CALLDATALOAD 000004d0: SWAP1 000004d1: PUSH1 0x20 000004d3: ADD 000004d4: SWAP1 000004d5: SWAP3 000004d6: SWAP2 000004d7: SWAP1 000004d8: DUP1 000004d9: CALLDATALOAD 000004da: SWAP1 000004db: PUSH1 0x20 000004dd: ADD 000004de: SWAP1 000004df: SWAP3 000004e0: SWAP2 000004e1: SWAP1 000004e2: DUP1 000004e3: CALLDATALOAD 000004e4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004f9: AND 000004fa: SWAP1 000004fb: PUSH1 0x20 000004fd: ADD 000004fe: SWAP1 000004ff: SWAP3 00000500: SWAP2 00000501: SWAP1 00000502: POP 00000503: POP 00000504: POP 00000505: PUSH2 0x198f 00000508: JUMP 00000509: JUMPDEST 0000050a: PUSH1 0x40 0000050c: MLOAD 0000050d: DUP1 0000050e: DUP3 0000050f: DUP2 00000510: MSTORE 00000511: PUSH1 0x20 00000513: ADD 00000514: SWAP2 00000515: POP 00000516: POP 00000517: PUSH1 0x40 00000519: MLOAD 0000051a: DUP1 0000051b: SWAP2 0000051c: SUB 0000051d: SWAP1 0000051e: RETURN 0000051f: JUMPDEST 00000520: CALLVALUE 00000521: DUP1 00000522: ISZERO 00000523: PUSH2 0x052b 00000526: JUMPI 00000527: PUSH1 0x00 00000529: DUP1 0000052a: REVERT 0000052b: JUMPDEST 0000052c: POP 0000052d: PUSH2 0x054a 00000530: PUSH1 0x04 00000532: DUP1 00000533: CALLDATASIZE 00000534: SUB 00000535: DUP2 00000536: ADD 00000537: SWAP1 00000538: DUP1 00000539: DUP1 0000053a: CALLDATALOAD 0000053b: SWAP1 0000053c: PUSH1 0x20 0000053e: ADD 0000053f: SWAP1 00000540: SWAP3 00000541: SWAP2 00000542: SWAP1 00000543: POP 00000544: POP 00000545: POP 00000546: PUSH2 0x1bf2 00000549: JUMP 0000054a: JUMPDEST 0000054b: STOP 0000054c: JUMPDEST 0000054d: CALLVALUE 0000054e: DUP1 0000054f: ISZERO 00000550: PUSH2 0x0558 00000553: JUMPI 00000554: PUSH1 0x00 00000556: DUP1 00000557: REVERT 00000558: JUMPDEST 00000559: POP 0000055a: PUSH2 0x0597 0000055d: PUSH1 0x04 0000055f: DUP1 00000560: CALLDATASIZE 00000561: SUB 00000562: DUP2 00000563: ADD 00000564: SWAP1 00000565: DUP1 00000566: DUP1 00000567: CALLDATALOAD 00000568: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000057d: AND 0000057e: SWAP1 0000057f: PUSH1 0x20 00000581: ADD 00000582: SWAP1 00000583: SWAP3 00000584: SWAP2 00000585: SWAP1 00000586: DUP1 00000587: CALLDATALOAD 00000588: SWAP1 00000589: PUSH1 0x20 0000058b: ADD 0000058c: SWAP1 0000058d: SWAP3 0000058e: SWAP2 0000058f: SWAP1 00000590: POP 00000591: POP 00000592: POP 00000593: PUSH2 0x1e8c 00000596: JUMP 00000597: JUMPDEST 00000598: STOP 00000599: JUMPDEST 0000059a: CALLVALUE 0000059b: DUP1 0000059c: ISZERO 0000059d: PUSH2 0x05a5 000005a0: JUMPI 000005a1: PUSH1 0x00 000005a3: DUP1 000005a4: REVERT 000005a5: JUMPDEST 000005a6: POP 000005a7: PUSH2 0x05fa 000005aa: PUSH1 0x04 000005ac: DUP1 000005ad: CALLDATASIZE 000005ae: SUB 000005af: DUP2 000005b0: ADD 000005b1: SWAP1 000005b2: DUP1 000005b3: DUP1 000005b4: CALLDATALOAD 000005b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005ca: AND 000005cb: SWAP1 000005cc: PUSH1 0x20 000005ce: ADD 000005cf: SWAP1 000005d0: SWAP3 000005d1: SWAP2 000005d2: SWAP1 000005d3: DUP1 000005d4: CALLDATALOAD 000005d5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005ea: AND 000005eb: SWAP1 000005ec: PUSH1 0x20 000005ee: ADD 000005ef: SWAP1 000005f0: SWAP3 000005f1: SWAP2 000005f2: SWAP1 000005f3: POP 000005f4: POP 000005f5: POP 000005f6: PUSH2 0x22b2 000005f9: JUMP 000005fa: JUMPDEST 000005fb: PUSH1 0x40 000005fd: MLOAD 000005fe: DUP1 000005ff: DUP3 00000600: DUP2 00000601: MSTORE 00000602: PUSH1 0x20 00000604: ADD 00000605: SWAP2 00000606: POP 00000607: POP 00000608: PUSH1 0x40 0000060a: MLOAD 0000060b: DUP1 0000060c: SWAP2 0000060d: SUB 0000060e: SWAP1 0000060f: RETURN 00000610: JUMPDEST 00000611: CALLVALUE 00000612: DUP1 00000613: ISZERO 00000614: PUSH2 0x061c 00000617: JUMPI 00000618: PUSH1 0x00 0000061a: DUP1 0000061b: REVERT 0000061c: JUMPDEST 0000061d: POP 0000061e: PUSH2 0x063b 00000621: PUSH1 0x04 00000623: DUP1 00000624: CALLDATASIZE 00000625: SUB 00000626: DUP2 00000627: ADD 00000628: SWAP1 00000629: DUP1 0000062a: DUP1 0000062b: CALLDATALOAD 0000062c: SWAP1 0000062d: PUSH1 0x20 0000062f: ADD 00000630: SWAP1 00000631: SWAP3 00000632: SWAP2 00000633: SWAP1 00000634: POP 00000635: POP 00000636: POP 00000637: PUSH2 0x22d7 0000063a: JUMP 0000063b: JUMPDEST 0000063c: STOP 0000063d: JUMPDEST 0000063e: CALLVALUE 0000063f: DUP1 00000640: ISZERO 00000641: PUSH2 0x0649 00000644: JUMPI 00000645: PUSH1 0x00 00000647: DUP1 00000648: REVERT 00000649: JUMPDEST 0000064a: POP 0000064b: PUSH2 0x0652 0000064e: PUSH2 0x233c 00000651: JUMP 00000652: JUMPDEST 00000653: PUSH1 0x40 00000655: MLOAD 00000656: DUP1 00000657: DUP3 00000658: DUP2 00000659: MSTORE 0000065a: PUSH1 0x20 0000065c: ADD 0000065d: SWAP2 0000065e: POP 0000065f: POP 00000660: PUSH1 0x40 00000662: MLOAD 00000663: DUP1 00000664: SWAP2 00000665: SUB 00000666: SWAP1 00000667: RETURN 00000668: JUMPDEST 00000669: CALLVALUE 0000066a: DUP1 0000066b: ISZERO 0000066c: PUSH2 0x0674 0000066f: JUMPI 00000670: PUSH1 0x00 00000672: DUP1 00000673: REVERT 00000674: JUMPDEST 00000675: POP 00000676: PUSH2 0x0693 00000679: PUSH1 0x04 0000067b: DUP1 0000067c: CALLDATASIZE 0000067d: SUB 0000067e: DUP2 0000067f: ADD 00000680: SWAP1 00000681: DUP1 00000682: DUP1 00000683: CALLDATALOAD 00000684: SWAP1 00000685: PUSH1 0x20 00000687: ADD 00000688: SWAP1 00000689: SWAP3 0000068a: SWAP2 0000068b: SWAP1 0000068c: POP 0000068d: POP 0000068e: POP 0000068f: PUSH2 0x2342 00000692: JUMP 00000693: JUMPDEST 00000694: STOP 00000695: JUMPDEST 00000696: CALLVALUE 00000697: DUP1 00000698: ISZERO 00000699: PUSH2 0x06a1 0000069c: JUMPI 0000069d: PUSH1 0x00 0000069f: DUP1 000006a0: REVERT 000006a1: JUMPDEST 000006a2: POP 000006a3: PUSH2 0x06aa 000006a6: PUSH2 0x23b8 000006a9: JUMP 000006aa: JUMPDEST 000006ab: PUSH1 0x40 000006ad: MLOAD 000006ae: DUP1 000006af: DUP3 000006b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006c5: AND 000006c6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006db: AND 000006dc: DUP2 000006dd: MSTORE 000006de: PUSH1 0x20 000006e0: ADD 000006e1: SWAP2 000006e2: POP 000006e3: POP 000006e4: PUSH1 0x40 000006e6: MLOAD 000006e7: DUP1 000006e8: SWAP2 000006e9: SUB 000006ea: SWAP1 000006eb: RETURN 000006ec: JUMPDEST 000006ed: CALLVALUE 000006ee: DUP1 000006ef: ISZERO 000006f0: PUSH2 0x06f8 000006f3: JUMPI 000006f4: PUSH1 0x00 000006f6: DUP1 000006f7: REVERT 000006f8: JUMPDEST 000006f9: POP 000006fa: PUSH2 0x072d 000006fd: PUSH1 0x04 000006ff: DUP1 00000700: CALLDATASIZE 00000701: SUB 00000702: DUP2 00000703: ADD 00000704: SWAP1 00000705: DUP1 00000706: DUP1 00000707: CALLDATALOAD 00000708: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000071d: AND 0000071e: SWAP1 0000071f: PUSH1 0x20 00000721: ADD 00000722: SWAP1 00000723: SWAP3 00000724: SWAP2 00000725: SWAP1 00000726: POP 00000727: POP 00000728: POP 00000729: PUSH2 0x23de 0000072c: JUMP 0000072d: JUMPDEST 0000072e: STOP 0000072f: JUMPDEST 00000730: CALLVALUE 00000731: DUP1 00000732: ISZERO 00000733: PUSH2 0x073b 00000736: JUMPI 00000737: PUSH1 0x00 00000739: DUP1 0000073a: REVERT 0000073b: JUMPDEST 0000073c: POP 0000073d: PUSH2 0x082b 00000740: PUSH1 0x04 00000742: DUP1 00000743: CALLDATASIZE 00000744: SUB 00000745: DUP2 00000746: ADD 00000747: SWAP1 00000748: DUP1 00000749: DUP1 0000074a: CALLDATALOAD 0000074b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000760: AND 00000761: SWAP1 00000762: PUSH1 0x20 00000764: ADD 00000765: SWAP1 00000766: SWAP3 00000767: SWAP2 00000768: SWAP1 00000769: DUP1 0000076a: CALLDATALOAD 0000076b: SWAP1 0000076c: PUSH1 0x20 0000076e: ADD 0000076f: SWAP1 00000770: SWAP3 00000771: SWAP2 00000772: SWAP1 00000773: DUP1 00000774: CALLDATALOAD 00000775: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000078a: AND 0000078b: SWAP1 0000078c: PUSH1 0x20 0000078e: ADD 0000078f: SWAP1 00000790: SWAP3 00000791: SWAP2 00000792: SWAP1 00000793: DUP1 00000794: CALLDATALOAD 00000795: SWAP1 00000796: PUSH1 0x20 00000798: ADD 00000799: SWAP1 0000079a: SWAP3 0000079b: SWAP2 0000079c: SWAP1 0000079d: DUP1 0000079e: CALLDATALOAD 0000079f: SWAP1 000007a0: PUSH1 0x20 000007a2: ADD 000007a3: SWAP1 000007a4: SWAP3 000007a5: SWAP2 000007a6: SWAP1 000007a7: DUP1 000007a8: CALLDATALOAD 000007a9: SWAP1 000007aa: PUSH1 0x20 000007ac: ADD 000007ad: SWAP1 000007ae: SWAP3 000007af: SWAP2 000007b0: SWAP1 000007b1: DUP1 000007b2: CALLDATALOAD 000007b3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007c8: AND 000007c9: SWAP1 000007ca: PUSH1 0x20 000007cc: ADD 000007cd: SWAP1 000007ce: SWAP3 000007cf: SWAP2 000007d0: SWAP1 000007d1: DUP1 000007d2: CALLDATALOAD 000007d3: PUSH1 0xff 000007d5: AND 000007d6: SWAP1 000007d7: PUSH1 0x20 000007d9: ADD 000007da: SWAP1 000007db: SWAP3 000007dc: SWAP2 000007dd: SWAP1 000007de: DUP1 000007df: CALLDATALOAD 000007e0: PUSH1 0x00 000007e2: NOT 000007e3: AND 000007e4: SWAP1 000007e5: PUSH1 0x20 000007e7: ADD 000007e8: SWAP1 000007e9: SWAP3 000007ea: SWAP2 000007eb: SWAP1 000007ec: DUP1 000007ed: CALLDATALOAD 000007ee: PUSH1 0x00 000007f0: NOT 000007f1: AND 000007f2: SWAP1 000007f3: PUSH1 0x20 000007f5: ADD 000007f6: SWAP1 000007f7: SWAP3 000007f8: SWAP2 000007f9: SWAP1 000007fa: DUP1 000007fb: CALLDATALOAD 000007fc: SWAP1 000007fd: PUSH1 0x20 000007ff: ADD 00000800: SWAP1 00000801: SWAP3 00000802: SWAP2 00000803: SWAP1 00000804: DUP1 00000805: CALLDATALOAD 00000806: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000081b: AND 0000081c: SWAP1 0000081d: PUSH1 0x20 0000081f: ADD 00000820: SWAP1 00000821: SWAP3 00000822: SWAP2 00000823: SWAP1 00000824: POP 00000825: POP 00000826: POP 00000827: PUSH2 0x250f 0000082a: JUMP 0000082b: JUMPDEST 0000082c: PUSH1 0x40 0000082e: MLOAD 0000082f: DUP1 00000830: DUP3 00000831: ISZERO 00000832: ISZERO 00000833: ISZERO 00000834: ISZERO 00000835: DUP2 00000836: MSTORE 00000837: PUSH1 0x20 00000839: ADD 0000083a: SWAP2 0000083b: POP 0000083c: POP 0000083d: PUSH1 0x40 0000083f: MLOAD 00000840: DUP1 00000841: SWAP2 00000842: SUB 00000843: SWAP1 00000844: RETURN 00000845: JUMPDEST 00000846: CALLVALUE 00000847: DUP1 00000848: ISZERO 00000849: PUSH2 0x0851 0000084c: JUMPI 0000084d: PUSH1 0x00 0000084f: DUP1 00000850: REVERT 00000851: JUMPDEST 00000852: POP 00000853: PUSH2 0x0886 00000856: PUSH1 0x04 00000858: DUP1 00000859: CALLDATASIZE 0000085a: SUB 0000085b: DUP2 0000085c: ADD 0000085d: SWAP1 0000085e: DUP1 0000085f: DUP1 00000860: CALLDATALOAD 00000861: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000876: AND 00000877: SWAP1 00000878: PUSH1 0x20 0000087a: ADD 0000087b: SWAP1 0000087c: SWAP3 0000087d: SWAP2 0000087e: SWAP1 0000087f: POP 00000880: POP 00000881: POP 00000882: PUSH2 0x271d 00000885: JUMP 00000886: JUMPDEST 00000887: STOP 00000888: JUMPDEST 00000889: CALLVALUE 0000088a: DUP1 0000088b: ISZERO 0000088c: PUSH2 0x0894 0000088f: JUMPI 00000890: PUSH1 0x00 00000892: DUP1 00000893: REVERT 00000894: JUMPDEST 00000895: POP 00000896: PUSH2 0x089d 00000899: PUSH2 0x27e2 0000089c: JUMP 0000089d: JUMPDEST 0000089e: PUSH1 0x40 000008a0: MLOAD 000008a1: DUP1 000008a2: DUP3 000008a3: DUP2 000008a4: MSTORE 000008a5: PUSH1 0x20 000008a7: ADD 000008a8: SWAP2 000008a9: POP 000008aa: POP 000008ab: PUSH1 0x40 000008ad: MLOAD 000008ae: DUP1 000008af: SWAP2 000008b0: SUB 000008b1: SWAP1 000008b2: RETURN 000008b3: JUMPDEST 000008b4: CALLVALUE 000008b5: DUP1 000008b6: ISZERO 000008b7: PUSH2 0x08bf 000008ba: JUMPI 000008bb: PUSH1 0x00 000008bd: DUP1 000008be: REVERT 000008bf: JUMPDEST 000008c0: POP 000008c1: PUSH2 0x08de 000008c4: PUSH1 0x04 000008c6: DUP1 000008c7: CALLDATASIZE 000008c8: SUB 000008c9: DUP2 000008ca: ADD 000008cb: SWAP1 000008cc: DUP1 000008cd: DUP1 000008ce: CALLDATALOAD 000008cf: SWAP1 000008d0: PUSH1 0x20 000008d2: ADD 000008d3: SWAP1 000008d4: SWAP3 000008d5: SWAP2 000008d6: SWAP1 000008d7: POP 000008d8: POP 000008d9: POP 000008da: PUSH2 0x27e8 000008dd: JUMP 000008de: JUMPDEST 000008df: STOP 000008e0: JUMPDEST 000008e1: CALLVALUE 000008e2: DUP1 000008e3: ISZERO 000008e4: PUSH2 0x08ec 000008e7: JUMPI 000008e8: PUSH1 0x00 000008ea: DUP1 000008eb: REVERT 000008ec: JUMPDEST 000008ed: POP 000008ee: PUSH2 0x0921 000008f1: PUSH1 0x04 000008f3: DUP1 000008f4: CALLDATASIZE 000008f5: SUB 000008f6: DUP2 000008f7: ADD 000008f8: SWAP1 000008f9: DUP1 000008fa: DUP1 000008fb: CALLDATALOAD 000008fc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000911: AND 00000912: SWAP1 00000913: PUSH1 0x20 00000915: ADD 00000916: SWAP1 00000917: SWAP3 00000918: SWAP2 00000919: SWAP1 0000091a: POP 0000091b: POP 0000091c: POP 0000091d: PUSH2 0x285e 00000920: JUMP 00000921: JUMPDEST 00000922: STOP 00000923: JUMPDEST 00000924: CALLVALUE 00000925: DUP1 00000926: ISZERO 00000927: PUSH2 0x092f 0000092a: JUMPI 0000092b: PUSH1 0x00 0000092d: DUP1 0000092e: REVERT 0000092f: JUMPDEST 00000930: POP 00000931: PUSH2 0x0964 00000934: PUSH1 0x04 00000936: DUP1 00000937: CALLDATASIZE 00000938: SUB 00000939: DUP2 0000093a: ADD 0000093b: SWAP1 0000093c: DUP1 0000093d: DUP1 0000093e: CALLDATALOAD 0000093f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000954: AND 00000955: SWAP1 00000956: PUSH1 0x20 00000958: ADD 00000959: SWAP1 0000095a: SWAP3 0000095b: SWAP2 0000095c: SWAP1 0000095d: POP 0000095e: POP 0000095f: POP 00000960: PUSH2 0x297b 00000963: JUMP 00000964: JUMPDEST 00000965: STOP 00000966: JUMPDEST 00000967: CALLVALUE 00000968: DUP1 00000969: ISZERO 0000096a: PUSH2 0x0972 0000096d: JUMPI 0000096e: PUSH1 0x00 00000970: DUP1 00000971: REVERT 00000972: JUMPDEST 00000973: POP 00000974: PUSH2 0x09b1 00000977: PUSH1 0x04 00000979: DUP1 0000097a: CALLDATASIZE 0000097b: SUB 0000097c: DUP2 0000097d: ADD 0000097e: SWAP1 0000097f: DUP1 00000980: DUP1 00000981: CALLDATALOAD 00000982: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000997: AND 00000998: SWAP1 00000999: PUSH1 0x20 0000099b: ADD 0000099c: SWAP1 0000099d: SWAP3 0000099e: SWAP2 0000099f: SWAP1 000009a0: DUP1 000009a1: CALLDATALOAD 000009a2: SWAP1 000009a3: PUSH1 0x20 000009a5: ADD 000009a6: SWAP1 000009a7: SWAP3 000009a8: SWAP2 000009a9: SWAP1 000009aa: POP 000009ab: POP 000009ac: POP 000009ad: PUSH2 0x2aad 000009b0: JUMP 000009b1: JUMPDEST 000009b2: STOP 000009b3: JUMPDEST 000009b4: CALLVALUE 000009b5: DUP1 000009b6: ISZERO 000009b7: PUSH2 0x09bf 000009ba: JUMPI 000009bb: PUSH1 0x00 000009bd: DUP1 000009be: REVERT 000009bf: JUMPDEST 000009c0: POP 000009c1: PUSH2 0x09f4 000009c4: PUSH1 0x04 000009c6: DUP1 000009c7: CALLDATASIZE 000009c8: SUB 000009c9: DUP2 000009ca: ADD 000009cb: SWAP1 000009cc: DUP1 000009cd: DUP1 000009ce: CALLDATALOAD 000009cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009e4: AND 000009e5: SWAP1 000009e6: PUSH1 0x20 000009e8: ADD 000009e9: SWAP1 000009ea: SWAP3 000009eb: SWAP2 000009ec: SWAP1 000009ed: POP 000009ee: POP 000009ef: POP 000009f0: PUSH2 0x2e7d 000009f3: JUMP 000009f4: JUMPDEST 000009f5: STOP 000009f6: JUMPDEST 000009f7: CALLVALUE 000009f8: DUP1 000009f9: ISZERO 000009fa: PUSH2 0x0a02 000009fd: JUMPI 000009fe: PUSH1 0x00 00000a00: DUP1 00000a01: REVERT 00000a02: JUMPDEST 00000a03: POP 00000a04: PUSH2 0x0a45 00000a07: PUSH1 0x04 00000a09: DUP1 00000a0a: CALLDATASIZE 00000a0b: SUB 00000a0c: DUP2 00000a0d: ADD 00000a0e: SWAP1 00000a0f: DUP1 00000a10: DUP1 00000a11: CALLDATALOAD 00000a12: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a27: AND 00000a28: SWAP1 00000a29: PUSH1 0x20 00000a2b: ADD 00000a2c: SWAP1 00000a2d: SWAP3 00000a2e: SWAP2 00000a2f: SWAP1 00000a30: DUP1 00000a31: CALLDATALOAD 00000a32: PUSH1 0x00 00000a34: NOT 00000a35: AND 00000a36: SWAP1 00000a37: PUSH1 0x20 00000a39: ADD 00000a3a: SWAP1 00000a3b: SWAP3 00000a3c: SWAP2 00000a3d: SWAP1 00000a3e: POP 00000a3f: POP 00000a40: POP 00000a41: PUSH2 0x2fae 00000a44: JUMP 00000a45: JUMPDEST 00000a46: PUSH1 0x40 00000a48: MLOAD 00000a49: DUP1 00000a4a: DUP3 00000a4b: ISZERO 00000a4c: ISZERO 00000a4d: ISZERO 00000a4e: ISZERO 00000a4f: DUP2 00000a50: MSTORE 00000a51: PUSH1 0x20 00000a53: ADD 00000a54: SWAP2 00000a55: POP 00000a56: POP 00000a57: PUSH1 0x40 00000a59: MLOAD 00000a5a: DUP1 00000a5b: SWAP2 00000a5c: SUB 00000a5d: SWAP1 00000a5e: RETURN 00000a5f: JUMPDEST 00000a60: CALLVALUE 00000a61: DUP1 00000a62: ISZERO 00000a63: PUSH2 0x0a6b 00000a66: JUMPI 00000a67: PUSH1 0x00 00000a69: DUP1 00000a6a: REVERT 00000a6b: JUMPDEST 00000a6c: POP 00000a6d: PUSH2 0x0a74 00000a70: PUSH2 0x2fdd 00000a73: JUMP 00000a74: JUMPDEST 00000a75: PUSH1 0x40 00000a77: MLOAD 00000a78: DUP1 00000a79: DUP3 00000a7a: DUP2 00000a7b: MSTORE 00000a7c: PUSH1 0x20 00000a7e: ADD 00000a7f: SWAP2 00000a80: POP 00000a81: POP 00000a82: PUSH1 0x40 00000a84: MLOAD 00000a85: DUP1 00000a86: SWAP2 00000a87: SUB 00000a88: SWAP1 00000a89: RETURN 00000a8a: JUMPDEST 00000a8b: PUSH2 0x0a92 00000a8e: PUSH2 0x2fe3 00000a91: JUMP 00000a92: JUMPDEST 00000a93: STOP 00000a94: JUMPDEST 00000a95: CALLVALUE 00000a96: DUP1 00000a97: ISZERO 00000a98: PUSH2 0x0aa0 00000a9b: JUMPI 00000a9c: PUSH1 0x00 00000a9e: DUP1 00000a9f: REVERT 00000aa0: JUMPDEST 00000aa1: POP 00000aa2: PUSH2 0x0ad5 00000aa5: PUSH1 0x04 00000aa7: DUP1 00000aa8: CALLDATASIZE 00000aa9: SUB 00000aaa: DUP2 00000aab: ADD 00000aac: SWAP1 00000aad: DUP1 00000aae: DUP1 00000aaf: CALLDATALOAD 00000ab0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ac5: AND 00000ac6: SWAP1 00000ac7: PUSH1 0x20 00000ac9: ADD 00000aca: SWAP1 00000acb: SWAP3 00000acc: SWAP2 00000acd: SWAP1 00000ace: POP 00000acf: POP 00000ad0: POP 00000ad1: PUSH2 0x3218 00000ad4: JUMP 00000ad5: JUMPDEST 00000ad6: PUSH1 0x40 00000ad8: MLOAD 00000ad9: DUP1 00000ada: DUP3 00000adb: ISZERO 00000adc: ISZERO 00000add: ISZERO 00000ade: ISZERO 00000adf: DUP2 00000ae0: MSTORE 00000ae1: PUSH1 0x20 00000ae3: ADD 00000ae4: SWAP2 00000ae5: POP 00000ae6: POP 00000ae7: PUSH1 0x40 00000ae9: MLOAD 00000aea: DUP1 00000aeb: SWAP2 00000aec: SUB 00000aed: SWAP1 00000aee: RETURN 00000aef: JUMPDEST 00000af0: CALLVALUE 00000af1: DUP1 00000af2: ISZERO 00000af3: PUSH2 0x0afb 00000af6: JUMPI 00000af7: PUSH1 0x00 00000af9: DUP1 00000afa: REVERT 00000afb: JUMPDEST 00000afc: POP 00000afd: PUSH2 0x0b30 00000b00: PUSH1 0x04 00000b02: DUP1 00000b03: CALLDATASIZE 00000b04: SUB 00000b05: DUP2 00000b06: ADD 00000b07: SWAP1 00000b08: DUP1 00000b09: DUP1 00000b0a: CALLDATALOAD 00000b0b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b20: AND 00000b21: SWAP1 00000b22: PUSH1 0x20 00000b24: ADD 00000b25: SWAP1 00000b26: SWAP3 00000b27: SWAP2 00000b28: SWAP1 00000b29: POP 00000b2a: POP 00000b2b: POP 00000b2c: PUSH2 0x3238 00000b2f: JUMP 00000b30: JUMPDEST 00000b31: STOP 00000b32: JUMPDEST 00000b33: CALLVALUE 00000b34: DUP1 00000b35: ISZERO 00000b36: PUSH2 0x0b3e 00000b39: JUMPI 00000b3a: PUSH1 0x00 00000b3c: DUP1 00000b3d: REVERT 00000b3e: JUMPDEST 00000b3f: POP 00000b40: PUSH2 0x0b47 00000b43: PUSH2 0x32d7 00000b46: JUMP 00000b47: JUMPDEST 00000b48: PUSH1 0x40 00000b4a: MLOAD 00000b4b: DUP1 00000b4c: DUP3 00000b4d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b62: AND 00000b63: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b78: AND 00000b79: DUP2 00000b7a: MSTORE 00000b7b: PUSH1 0x20 00000b7d: ADD 00000b7e: SWAP2 00000b7f: POP 00000b80: POP 00000b81: PUSH1 0x40 00000b83: MLOAD 00000b84: DUP1 00000b85: SWAP2 00000b86: SUB 00000b87: SWAP1 00000b88: RETURN 00000b89: JUMPDEST 00000b8a: CALLVALUE 00000b8b: DUP1 00000b8c: ISZERO 00000b8d: PUSH2 0x0b95 00000b90: JUMPI 00000b91: PUSH1 0x00 00000b93: DUP1 00000b94: REVERT 00000b95: JUMPDEST 00000b96: POP 00000b97: PUSH2 0x0bca 00000b9a: PUSH1 0x04 00000b9c: DUP1 00000b9d: CALLDATASIZE 00000b9e: SUB 00000b9f: DUP2 00000ba0: ADD 00000ba1: SWAP1 00000ba2: DUP1 00000ba3: DUP1 00000ba4: CALLDATALOAD 00000ba5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bba: AND 00000bbb: SWAP1 00000bbc: PUSH1 0x20 00000bbe: ADD 00000bbf: SWAP1 00000bc0: SWAP3 00000bc1: SWAP2 00000bc2: SWAP1 00000bc3: POP 00000bc4: POP 00000bc5: POP 00000bc6: PUSH2 0x32fd 00000bc9: JUMP 00000bca: JUMPDEST 00000bcb: PUSH1 0x40 00000bcd: MLOAD 00000bce: DUP1 00000bcf: DUP3 00000bd0: ISZERO 00000bd1: ISZERO 00000bd2: ISZERO 00000bd3: ISZERO 00000bd4: DUP2 00000bd5: MSTORE 00000bd6: PUSH1 0x20 00000bd8: ADD 00000bd9: SWAP2 00000bda: POP 00000bdb: POP 00000bdc: PUSH1 0x40 00000bde: MLOAD 00000bdf: DUP1 00000be0: SWAP2 00000be1: SUB 00000be2: SWAP1 00000be3: RETURN 00000be4: JUMPDEST 00000be5: CALLVALUE 00000be6: DUP1 00000be7: ISZERO 00000be8: PUSH2 0x0bf0 00000beb: JUMPI 00000bec: PUSH1 0x00 00000bee: DUP1 00000bef: REVERT 00000bf0: JUMPDEST 00000bf1: POP 00000bf2: PUSH2 0x0c45 00000bf5: PUSH1 0x04 00000bf7: DUP1 00000bf8: CALLDATASIZE 00000bf9: SUB 00000bfa: DUP2 00000bfb: ADD 00000bfc: SWAP1 00000bfd: DUP1 00000bfe: DUP1 00000bff: CALLDATALOAD 00000c00: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c15: AND 00000c16: SWAP1 00000c17: PUSH1 0x20 00000c19: ADD 00000c1a: SWAP1 00000c1b: SWAP3 00000c1c: SWAP2 00000c1d: SWAP1 00000c1e: DUP1 00000c1f: CALLDATALOAD 00000c20: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c35: AND 00000c36: SWAP1 00000c37: PUSH1 0x20 00000c39: ADD 00000c3a: SWAP1 00000c3b: SWAP3 00000c3c: SWAP2 00000c3d: SWAP1 00000c3e: POP 00000c3f: POP 00000c40: POP 00000c41: PUSH2 0x331d 00000c44: JUMP 00000c45: JUMPDEST 00000c46: PUSH1 0x40 00000c48: MLOAD 00000c49: DUP1 00000c4a: DUP3 00000c4b: DUP2 00000c4c: MSTORE 00000c4d: PUSH1 0x20 00000c4f: ADD 00000c50: SWAP2 00000c51: POP 00000c52: POP 00000c53: PUSH1 0x40 00000c55: MLOAD 00000c56: DUP1 00000c57: SWAP2 00000c58: SUB 00000c59: SWAP1 00000c5a: RETURN 00000c5b: JUMPDEST 00000c5c: CALLVALUE 00000c5d: DUP1 00000c5e: ISZERO 00000c5f: PUSH2 0x0c67 00000c62: JUMPI 00000c63: PUSH1 0x00 00000c65: DUP1 00000c66: REVERT 00000c67: JUMPDEST 00000c68: POP 00000c69: PUSH2 0x0c70 00000c6c: PUSH2 0x33a4 00000c6f: JUMP 00000c70: JUMPDEST 00000c71: PUSH1 0x40 00000c73: MLOAD 00000c74: DUP1 00000c75: DUP3 00000c76: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c8b: AND 00000c8c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ca1: AND 00000ca2: DUP2 00000ca3: MSTORE 00000ca4: PUSH1 0x20 00000ca6: ADD 00000ca7: SWAP2 00000ca8: POP 00000ca9: POP 00000caa: PUSH1 0x40 00000cac: MLOAD 00000cad: DUP1 00000cae: SWAP2 00000caf: SUB 00000cb0: SWAP1 00000cb1: RETURN 00000cb2: JUMPDEST 00000cb3: CALLVALUE 00000cb4: DUP1 00000cb5: ISZERO 00000cb6: PUSH2 0x0cbe 00000cb9: JUMPI 00000cba: PUSH1 0x00 00000cbc: DUP1 00000cbd: REVERT 00000cbe: JUMPDEST 00000cbf: POP 00000cc0: PUSH2 0x0d84 00000cc3: PUSH1 0x04 00000cc5: DUP1 00000cc6: CALLDATASIZE 00000cc7: SUB 00000cc8: DUP2 00000cc9: ADD 00000cca: SWAP1 00000ccb: DUP1 00000ccc: DUP1 00000ccd: CALLDATALOAD 00000cce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ce3: AND 00000ce4: SWAP1 00000ce5: PUSH1 0x20 00000ce7: ADD 00000ce8: SWAP1 00000ce9: SWAP3 00000cea: SWAP2 00000ceb: SWAP1 00000cec: DUP1 00000ced: CALLDATALOAD 00000cee: SWAP1 00000cef: PUSH1 0x20 00000cf1: ADD 00000cf2: SWAP1 00000cf3: SWAP3 00000cf4: SWAP2 00000cf5: SWAP1 00000cf6: DUP1 00000cf7: CALLDATALOAD 00000cf8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d0d: AND 00000d0e: SWAP1 00000d0f: PUSH1 0x20 00000d11: ADD 00000d12: SWAP1 00000d13: SWAP3 00000d14: SWAP2 00000d15: SWAP1 00000d16: DUP1 00000d17: CALLDATALOAD 00000d18: SWAP1 00000d19: PUSH1 0x20 00000d1b: ADD 00000d1c: SWAP1 00000d1d: SWAP3 00000d1e: SWAP2 00000d1f: SWAP1 00000d20: DUP1 00000d21: CALLDATALOAD 00000d22: SWAP1 00000d23: PUSH1 0x20 00000d25: ADD 00000d26: SWAP1 00000d27: SWAP3 00000d28: SWAP2 00000d29: SWAP1 00000d2a: DUP1 00000d2b: CALLDATALOAD 00000d2c: SWAP1 00000d2d: PUSH1 0x20 00000d2f: ADD 00000d30: SWAP1 00000d31: SWAP3 00000d32: SWAP2 00000d33: SWAP1 00000d34: DUP1 00000d35: CALLDATALOAD 00000d36: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d4b: AND 00000d4c: SWAP1 00000d4d: PUSH1 0x20 00000d4f: ADD 00000d50: SWAP1 00000d51: SWAP3 00000d52: SWAP2 00000d53: SWAP1 00000d54: DUP1 00000d55: CALLDATALOAD 00000d56: PUSH1 0xff 00000d58: AND 00000d59: SWAP1 00000d5a: PUSH1 0x20 00000d5c: ADD 00000d5d: SWAP1 00000d5e: SWAP3 00000d5f: SWAP2 00000d60: SWAP1 00000d61: DUP1 00000d62: CALLDATALOAD 00000d63: PUSH1 0x00 00000d65: NOT 00000d66: AND 00000d67: SWAP1 00000d68: PUSH1 0x20 00000d6a: ADD 00000d6b: SWAP1 00000d6c: SWAP3 00000d6d: SWAP2 00000d6e: SWAP1 00000d6f: DUP1 00000d70: CALLDATALOAD 00000d71: PUSH1 0x00 00000d73: NOT 00000d74: AND 00000d75: SWAP1 00000d76: PUSH1 0x20 00000d78: ADD 00000d79: SWAP1 00000d7a: SWAP3 00000d7b: SWAP2 00000d7c: SWAP1 00000d7d: POP 00000d7e: POP 00000d7f: POP 00000d80: PUSH2 0x33c9 00000d83: JUMP 00000d84: JUMPDEST 00000d85: PUSH1 0x40 00000d87: MLOAD 00000d88: DUP1 00000d89: DUP3 00000d8a: DUP2 00000d8b: MSTORE 00000d8c: PUSH1 0x20 00000d8e: ADD 00000d8f: SWAP2 00000d90: POP 00000d91: POP 00000d92: PUSH1 0x40 00000d94: MLOAD 00000d95: DUP1 00000d96: SWAP2 00000d97: SUB 00000d98: SWAP1 00000d99: RETURN 00000d9a: JUMPDEST 00000d9b: PUSH1 0x00 00000d9d: PUSH1 0x08 00000d9f: PUSH1 0x00 00000da1: CALLER 00000da2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000db7: AND 00000db8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000dcd: AND 00000dce: DUP2 00000dcf: MSTORE 00000dd0: PUSH1 0x20 00000dd2: ADD 00000dd3: SWAP1 00000dd4: DUP2 00000dd5: MSTORE 00000dd6: PUSH1 0x20 00000dd8: ADD 00000dd9: PUSH1 0x00 00000ddb: KECCAK256 00000ddc: PUSH1 0x00 00000dde: SWAP1 00000ddf: SLOAD 00000de0: SWAP1 00000de1: PUSH2 0x0100 00000de4: EXP 00000de5: SWAP1 00000de6: DIV 00000de7: PUSH1 0xff 00000de9: AND 00000dea: ISZERO 00000deb: ISZERO 00000dec: PUSH2 0x0df4 00000def: JUMPI 00000df0: PUSH1 0x00 00000df2: DUP1 00000df3: REVERT 00000df4: JUMPDEST 00000df5: PUSH1 0x07 00000df7: PUSH1 0x00 00000df9: DUP14 00000dfa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e0f: AND 00000e10: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e25: AND 00000e26: DUP2 00000e27: MSTORE 00000e28: PUSH1 0x20 00000e2a: ADD 00000e2b: SWAP1 00000e2c: DUP2 00000e2d: MSTORE 00000e2e: PUSH1 0x20 00000e30: ADD 00000e31: PUSH1 0x00 00000e33: KECCAK256 00000e34: PUSH1 0x00 00000e36: SWAP1 00000e37: SLOAD 00000e38: SWAP1 00000e39: PUSH2 0x0100 00000e3c: EXP 00000e3d: SWAP1 00000e3e: DIV 00000e3f: PUSH1 0xff 00000e41: AND 00000e42: DUP1 00000e43: ISZERO 00000e44: PUSH2 0x0e96 00000e47: JUMPI 00000e48: POP 00000e49: PUSH1 0x07 00000e4b: PUSH1 0x00 00000e4d: DUP12 00000e4e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e63: AND 00000e64: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e79: AND 00000e7a: DUP2 00000e7b: MSTORE 00000e7c: PUSH1 0x20 00000e7e: ADD 00000e7f: SWAP1 00000e80: DUP2 00000e81: MSTORE 00000e82: PUSH1 0x20 00000e84: ADD 00000e85: PUSH1 0x00 00000e87: KECCAK256 00000e88: PUSH1 0x00 00000e8a: SWAP1 00000e8b: SLOAD 00000e8c: SWAP1 00000e8d: PUSH2 0x0100 00000e90: EXP 00000e91: SWAP1 00000e92: DIV 00000e93: PUSH1 0xff 00000e95: AND 00000e96: JUMPDEST 00000e97: ISZERO 00000e98: ISZERO 00000e99: PUSH2 0x0ea1 00000e9c: JUMPI 00000e9d: PUSH1 0x00 00000e9f: DUP1 00000ea0: REVERT 00000ea1: JUMPDEST 00000ea2: DUP8 00000ea3: NUMBER 00000ea4: GT 00000ea5: ISZERO 00000ea6: ISZERO 00000ea7: ISZERO 00000ea8: PUSH2 0x0eb0 00000eab: JUMPI 00000eac: PUSH1 0x00 00000eae: DUP1 00000eaf: REVERT 00000eb0: JUMPDEST 00000eb1: ADDRESS 00000eb2: DUP13 00000eb3: DUP13 00000eb4: DUP13 00000eb5: DUP13 00000eb6: DUP13 00000eb7: DUP13 00000eb8: PUSH1 0x40 00000eba: MLOAD 00000ebb: DUP1 00000ebc: DUP9 00000ebd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ed2: AND 00000ed3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ee8: AND 00000ee9: PUSH13 0x01000000000000000000000000 00000ef7: MUL 00000ef8: DUP2 00000ef9: MSTORE 00000efa: PUSH1 0x14 00000efc: ADD 00000efd: DUP8 00000efe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f13: AND 00000f14: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f29: AND 00000f2a: PUSH13 0x01000000000000000000000000 00000f38: MUL 00000f39: DUP2 00000f3a: MSTORE 00000f3b: PUSH1 0x14 00000f3d: ADD 00000f3e: DUP7 00000f3f: DUP2 00000f40: MSTORE 00000f41: PUSH1 0x20 00000f43: ADD 00000f44: DUP6 00000f45: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f5a: AND 00000f5b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f70: AND 00000f71: PUSH13 0x01000000000000000000000000 00000f7f: MUL 00000f80: DUP2 00000f81: MSTORE 00000f82: PUSH1 0x14 00000f84: ADD 00000f85: DUP5 00000f86: DUP2 00000f87: MSTORE 00000f88: PUSH1 0x20 00000f8a: ADD 00000f8b: DUP4 00000f8c: DUP2 00000f8d: MSTORE 00000f8e: PUSH1 0x20 00000f90: ADD 00000f91: DUP3 00000f92: DUP2 00000f93: MSTORE 00000f94: PUSH1 0x20 00000f96: ADD 00000f97: SWAP8 00000f98: POP 00000f99: POP 00000f9a: POP 00000f9b: POP 00000f9c: POP 00000f9d: POP 00000f9e: POP 00000f9f: POP 00000fa0: PUSH1 0x40 00000fa2: MLOAD 00000fa3: DUP1 00000fa4: SWAP2 00000fa5: SUB 00000fa6: SWAP1 00000fa7: KECCAK256 00000fa8: SWAP1 00000fa9: POP 00000faa: PUSH2 0x0fb6 00000fad: DUP2 00000fae: DUP8 00000faf: DUP8 00000fb0: DUP8 00000fb1: DUP8 00000fb2: PUSH2 0x3805 00000fb5: JUMP 00000fb6: JUMPDEST 00000fb7: ISZERO 00000fb8: ISZERO 00000fb9: PUSH2 0x0fc1 00000fbc: JUMPI 00000fbd: PUSH1 0x00 00000fbf: DUP1 00000fc0: REVERT 00000fc1: JUMPDEST 00000fc2: DUP11 00000fc3: PUSH2 0x1024 00000fc6: PUSH1 0x0a 00000fc8: PUSH1 0x00 00000fca: DUP10 00000fcb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fe0: AND 00000fe1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ff6: AND 00000ff7: DUP2 00000ff8: MSTORE 00000ff9: PUSH1 0x20 00000ffb: ADD 00000ffc: SWAP1 00000ffd: DUP2 00000ffe: MSTORE 00000fff: PUSH1 0x20 00001001: ADD 00001002: PUSH1 0x00 00001004: KECCAK256 00001005: PUSH1 0x00 00001007: DUP5 00001008: PUSH1 0x00 0000100a: NOT 0000100b: AND 0000100c: PUSH1 0x00 0000100e: NOT 0000100f: AND 00001010: DUP2 00001011: MSTORE 00001012: PUSH1 0x20 00001014: ADD 00001015: SWAP1 00001016: DUP2 00001017: MSTORE 00001018: PUSH1 0x20 0000101a: ADD 0000101b: PUSH1 0x00 0000101d: KECCAK256 0000101e: SLOAD 0000101f: DUP5 00001020: PUSH2 0x3973 00001023: JUMP 00001024: JUMPDEST 00001025: GT 00001026: ISZERO 00001027: ISZERO 00001028: ISZERO 00001029: PUSH2 0x1031 0000102c: JUMPI 0000102d: PUSH1 0x00 0000102f: DUP1 00001030: REVERT 00001031: JUMPDEST 00001032: PUSH2 0x109c 00001035: DUP3 00001036: PUSH1 0x0a 00001038: PUSH1 0x00 0000103a: DUP10 0000103b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001050: AND 00001051: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001066: AND 00001067: DUP2 00001068: MSTORE 00001069: PUSH1 0x20 0000106b: ADD 0000106c: SWAP1 0000106d: DUP2 0000106e: MSTORE 0000106f: PUSH1 0x20 00001071: ADD 00001072: PUSH1 0x00 00001074: KECCAK256 00001075: PUSH1 0x00 00001077: DUP5 00001078: PUSH1 0x00 0000107a: NOT 0000107b: AND 0000107c: PUSH1 0x00 0000107e: NOT 0000107f: AND 00001080: DUP2 00001081: MSTORE 00001082: PUSH1 0x20 00001084: ADD 00001085: SWAP1 00001086: DUP2 00001087: MSTORE 00001088: PUSH1 0x20 0000108a: ADD 0000108b: PUSH1 0x00 0000108d: KECCAK256 0000108e: SLOAD 0000108f: PUSH2 0x3973 00001092: SWAP1 00001093: SWAP2 00001094: SWAP1 00001095: PUSH4 0xffffffff 0000109a: AND 0000109b: JUMP 0000109c: JUMPDEST 0000109d: PUSH1 0x0a 0000109f: PUSH1 0x00 000010a1: DUP9 000010a2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010b7: AND 000010b8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010cd: AND 000010ce: DUP2 000010cf: MSTORE 000010d0: PUSH1 0x20 000010d2: ADD 000010d3: SWAP1 000010d4: DUP2 000010d5: MSTORE 000010d6: PUSH1 0x20 000010d8: ADD 000010d9: PUSH1 0x00 000010db: KECCAK256 000010dc: PUSH1 0x00 000010de: DUP4 000010df: PUSH1 0x00 000010e1: NOT 000010e2: AND 000010e3: PUSH1 0x00 000010e5: NOT 000010e6: AND 000010e7: DUP2 000010e8: MSTORE 000010e9: PUSH1 0x20 000010eb: ADD 000010ec: SWAP1 000010ed: DUP2 000010ee: MSTORE 000010ef: PUSH1 0x20 000010f1: ADD 000010f2: PUSH1 0x00 000010f4: KECCAK256 000010f5: DUP2 000010f6: SWAP1 000010f7: SSTORE 000010f8: POP 000010f9: PUSH2 0x1106 000010fc: DUP13 000010fd: DUP13 000010fe: DUP13 000010ff: DUP13 00001100: DUP11 00001101: DUP8 00001102: PUSH2 0x3991 00001105: JUMP 00001106: JUMPDEST 00001107: PUSH32 0x6effdda786735d5033bfad5f53e5131abcced9e52be6c507b62d639685fbed6d 00001128: DUP13 00001129: DUP4 0000112a: DUP13 0000112b: PUSH2 0x1146 0000112e: DUP16 0000112f: PUSH2 0x1138 00001132: DUP16 00001133: DUP10 00001134: PUSH2 0x41c4 00001137: JUMP 00001138: JUMPDEST 00001139: PUSH2 0x41ff 0000113c: SWAP1 0000113d: SWAP2 0000113e: SWAP1 0000113f: PUSH4 0xffffffff 00001144: AND 00001145: JUMP 00001146: JUMPDEST 00001147: DUP11 00001148: CALLER 00001149: PUSH1 0x40 0000114b: MLOAD 0000114c: DUP1 0000114d: DUP8 0000114e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001163: AND 00001164: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001179: AND 0000117a: DUP2 0000117b: MSTORE 0000117c: PUSH1 0x20 0000117e: ADD 0000117f: DUP7 00001180: DUP2 00001181: MSTORE 00001182: PUSH1 0x20 00001184: ADD 00001185: DUP6 00001186: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000119b: AND 0000119c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011b1: AND 000011b2: DUP2 000011b3: MSTORE 000011b4: PUSH1 0x20 000011b6: ADD 000011b7: DUP5 000011b8: DUP2 000011b9: MSTORE 000011ba: PUSH1 0x20 000011bc: ADD 000011bd: DUP4 000011be: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011d3: AND 000011d4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011e9: AND 000011ea: DUP2 000011eb: MSTORE 000011ec: PUSH1 0x20 000011ee: ADD 000011ef: DUP3 000011f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001205: AND 00001206: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000121b: AND 0000121c: DUP2 0000121d: MSTORE 0000121e: PUSH1 0x20 00001220: ADD 00001221: SWAP7 00001222: POP 00001223: POP 00001224: POP 00001225: POP 00001226: POP 00001227: POP 00001228: POP 00001229: PUSH1 0x40 0000122b: MLOAD 0000122c: DUP1 0000122d: SWAP2 0000122e: SUB 0000122f: SWAP1 00001230: LOG1 00001231: POP 00001232: POP 00001233: POP 00001234: POP 00001235: POP 00001236: POP 00001237: POP 00001238: POP 00001239: POP 0000123a: POP 0000123b: POP 0000123c: POP 0000123d: JUMP 0000123e: JUMPDEST 0000123f: PUSH1 0x00 00001241: PUSH1 0x08 00001243: PUSH1 0x00 00001245: CALLER 00001246: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000125b: AND 0000125c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001271: AND 00001272: DUP2 00001273: MSTORE 00001274: PUSH1 0x20 00001276: ADD 00001277: SWAP1 00001278: DUP2 00001279: MSTORE 0000127a: PUSH1 0x20 0000127c: ADD 0000127d: PUSH1 0x00 0000127f: KECCAK256 00001280: PUSH1 0x00 00001282: SWAP1 00001283: SLOAD 00001284: SWAP1 00001285: PUSH2 0x0100 00001288: EXP 00001289: SWAP1 0000128a: DIV 0000128b: PUSH1 0xff 0000128d: AND 0000128e: ISZERO 0000128f: ISZERO 00001290: PUSH2 0x1298 00001293: JUMPI 00001294: PUSH1 0x00 00001296: DUP1 00001297: REVERT 00001298: JUMPDEST 00001299: PUSH1 0x07 0000129b: PUSH1 0x00 0000129d: DUP9 0000129e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012b3: AND 000012b4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012c9: AND 000012ca: DUP2 000012cb: MSTORE 000012cc: PUSH1 0x20 000012ce: ADD 000012cf: SWAP1 000012d0: DUP2 000012d1: MSTORE 000012d2: PUSH1 0x20 000012d4: ADD 000012d5: PUSH1 0x00 000012d7: KECCAK256 000012d8: PUSH1 0x00 000012da: SWAP1 000012db: SLOAD 000012dc: SWAP1 000012dd: PUSH2 0x0100 000012e0: EXP 000012e1: SWAP1 000012e2: DIV 000012e3: PUSH1 0xff 000012e5: AND 000012e6: DUP1 000012e7: ISZERO 000012e8: PUSH2 0x133a 000012eb: JUMPI 000012ec: POP 000012ed: PUSH1 0x07 000012ef: PUSH1 0x00 000012f1: DUP7 000012f2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001307: AND 00001308: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000131d: AND 0000131e: DUP2 0000131f: MSTORE 00001320: PUSH1 0x20 00001322: ADD 00001323: SWAP1 00001324: DUP2 00001325: MSTORE 00001326: PUSH1 0x20 00001328: ADD 00001329: PUSH1 0x00 0000132b: KECCAK256 0000132c: PUSH1 0x00 0000132e: SWAP1 0000132f: SLOAD 00001330: SWAP1 00001331: PUSH2 0x0100 00001334: EXP 00001335: SWAP1 00001336: DIV 00001337: PUSH1 0xff 00001339: AND 0000133a: JUMPDEST 0000133b: ISZERO 0000133c: ISZERO 0000133d: PUSH2 0x1345 00001340: JUMPI 00001341: PUSH1 0x00 00001343: DUP1 00001344: REVERT 00001345: JUMPDEST 00001346: ADDRESS 00001347: DUP8 00001348: DUP8 00001349: DUP8 0000134a: DUP8 0000134b: DUP8 0000134c: DUP8 0000134d: PUSH1 0x40 0000134f: MLOAD 00001350: DUP1 00001351: DUP9 00001352: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001367: AND 00001368: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000137d: AND 0000137e: PUSH13 0x01000000000000000000000000 0000138c: MUL 0000138d: DUP2 0000138e: MSTORE 0000138f: PUSH1 0x14 00001391: ADD 00001392: DUP8 00001393: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013a8: AND 000013a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013be: AND 000013bf: PUSH13 0x01000000000000000000000000 000013cd: MUL 000013ce: DUP2 000013cf: MSTORE 000013d0: PUSH1 0x14 000013d2: ADD 000013d3: DUP7 000013d4: DUP2 000013d5: MSTORE 000013d6: PUSH1 0x20 000013d8: ADD 000013d9: DUP6 000013da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013ef: AND 000013f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001405: AND 00001406: PUSH13 0x01000000000000000000000000 00001414: MUL 00001415: DUP2 00001416: MSTORE 00001417: PUSH1 0x14 00001419: ADD 0000141a: DUP5 0000141b: DUP2 0000141c: MSTORE 0000141d: PUSH1 0x20 0000141f: ADD 00001420: DUP4 00001421: DUP2 00001422: MSTORE 00001423: PUSH1 0x20 00001425: ADD 00001426: DUP3 00001427: DUP2 00001428: MSTORE 00001429: PUSH1 0x20 0000142b: ADD 0000142c: SWAP8 0000142d: POP 0000142e: POP 0000142f: POP 00001430: POP 00001431: POP 00001432: POP 00001433: POP 00001434: POP 00001435: PUSH1 0x40 00001437: MLOAD 00001438: DUP1 00001439: SWAP2 0000143a: SUB 0000143b: SWAP1 0000143c: KECCAK256 0000143d: SWAP1 0000143e: POP 0000143f: PUSH1 0x01 00001441: PUSH1 0x09 00001443: PUSH1 0x00 00001445: CALLER 00001446: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000145b: AND 0000145c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001471: AND 00001472: DUP2 00001473: MSTORE 00001474: PUSH1 0x20 00001476: ADD 00001477: SWAP1 00001478: DUP2 00001479: MSTORE 0000147a: PUSH1 0x20 0000147c: ADD 0000147d: PUSH1 0x00 0000147f: KECCAK256 00001480: PUSH1 0x00 00001482: DUP4 00001483: PUSH1 0x00 00001485: NOT 00001486: AND 00001487: PUSH1 0x00 00001489: NOT 0000148a: AND 0000148b: DUP2 0000148c: MSTORE 0000148d: PUSH1 0x20 0000148f: ADD 00001490: SWAP1 00001491: DUP2 00001492: MSTORE 00001493: PUSH1 0x20 00001495: ADD 00001496: PUSH1 0x00 00001498: KECCAK256 00001499: PUSH1 0x00 0000149b: PUSH2 0x0100 0000149e: EXP 0000149f: DUP2 000014a0: SLOAD 000014a1: DUP2 000014a2: PUSH1 0xff 000014a4: MUL 000014a5: NOT 000014a6: AND 000014a7: SWAP1 000014a8: DUP4 000014a9: ISZERO 000014aa: ISZERO 000014ab: MUL 000014ac: OR 000014ad: SWAP1 000014ae: SSTORE 000014af: POP 000014b0: PUSH32 0x3f7f2eda73683c21a15f9435af1028c93185b5f1fa38270762dc32be606b3e85 000014d1: DUP8 000014d2: DUP8 000014d3: DUP8 000014d4: DUP8 000014d5: DUP8 000014d6: DUP8 000014d7: CALLER 000014d8: PUSH1 0x40 000014da: MLOAD 000014db: DUP1 000014dc: DUP9 000014dd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014f2: AND 000014f3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001508: AND 00001509: DUP2 0000150a: MSTORE 0000150b: PUSH1 0x20 0000150d: ADD 0000150e: DUP8 0000150f: DUP2 00001510: MSTORE 00001511: PUSH1 0x20 00001513: ADD 00001514: DUP7 00001515: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000152a: AND 0000152b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001540: AND 00001541: DUP2 00001542: MSTORE 00001543: PUSH1 0x20 00001545: ADD 00001546: DUP6 00001547: DUP2 00001548: MSTORE 00001549: PUSH1 0x20 0000154b: ADD 0000154c: DUP5 0000154d: DUP2 0000154e: MSTORE 0000154f: PUSH1 0x20 00001551: ADD 00001552: DUP4 00001553: DUP2 00001554: MSTORE 00001555: PUSH1 0x20 00001557: ADD 00001558: DUP3 00001559: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000156e: AND 0000156f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001584: AND 00001585: DUP2 00001586: MSTORE 00001587: PUSH1 0x20 00001589: ADD 0000158a: SWAP8 0000158b: POP 0000158c: POP 0000158d: POP 0000158e: POP 0000158f: POP 00001590: POP 00001591: POP 00001592: POP 00001593: PUSH1 0x40 00001595: MLOAD 00001596: DUP1 00001597: SWAP2 00001598: SUB 00001599: SWAP1 0000159a: LOG1 0000159b: POP 0000159c: POP 0000159d: POP 0000159e: POP 0000159f: POP 000015a0: POP 000015a1: POP 000015a2: JUMP 000015a3: JUMPDEST 000015a4: PUSH1 0x0a 000015a6: PUSH1 0x20 000015a8: MSTORE 000015a9: DUP2 000015aa: PUSH1 0x00 000015ac: MSTORE 000015ad: PUSH1 0x40 000015af: PUSH1 0x00 000015b1: KECCAK256 000015b2: PUSH1 0x20 000015b4: MSTORE 000015b5: DUP1 000015b6: PUSH1 0x00 000015b8: MSTORE 000015b9: PUSH1 0x40 000015bb: PUSH1 0x00 000015bd: KECCAK256 000015be: PUSH1 0x00 000015c0: SWAP2 000015c1: POP 000015c2: SWAP2 000015c3: POP 000015c4: POP 000015c5: SLOAD 000015c6: DUP2 000015c7: JUMP 000015c8: JUMPDEST 000015c9: PUSH1 0x00 000015cb: ADDRESS 000015cc: DUP11 000015cd: DUP11 000015ce: DUP11 000015cf: DUP11 000015d0: DUP11 000015d1: DUP11 000015d2: PUSH1 0x40 000015d4: MLOAD 000015d5: DUP1 000015d6: DUP9 000015d7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015ec: AND 000015ed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001602: AND 00001603: PUSH13 0x01000000000000000000000000 00001611: MUL 00001612: DUP2 00001613: MSTORE 00001614: PUSH1 0x14 00001616: ADD 00001617: DUP8 00001618: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000162d: AND 0000162e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001643: AND 00001644: PUSH13 0x01000000000000000000000000 00001652: MUL 00001653: DUP2 00001654: MSTORE 00001655: PUSH1 0x14 00001657: ADD 00001658: DUP7 00001659: DUP2 0000165a: MSTORE 0000165b: PUSH1 0x20 0000165d: ADD 0000165e: DUP6 0000165f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001674: AND 00001675: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000168a: AND 0000168b: PUSH13 0x01000000000000000000000000 00001699: MUL 0000169a: DUP2 0000169b: MSTORE 0000169c: PUSH1 0x14 0000169e: ADD 0000169f: DUP5 000016a0: DUP2 000016a1: MSTORE 000016a2: PUSH1 0x20 000016a4: ADD 000016a5: DUP4 000016a6: DUP2 000016a7: MSTORE 000016a8: PUSH1 0x20 000016aa: ADD 000016ab: DUP3 000016ac: DUP2 000016ad: MSTORE 000016ae: PUSH1 0x20 000016b0: ADD 000016b1: SWAP8 000016b2: POP 000016b3: POP 000016b4: POP 000016b5: POP 000016b6: POP 000016b7: POP 000016b8: POP 000016b9: POP 000016ba: PUSH1 0x40 000016bc: MLOAD 000016bd: DUP1 000016be: SWAP2 000016bf: SUB 000016c0: SWAP1 000016c1: KECCAK256 000016c2: SWAP1 000016c3: POP 000016c4: PUSH2 0x16d0 000016c7: DUP2 000016c8: CALLER 000016c9: DUP7 000016ca: DUP7 000016cb: DUP7 000016cc: PUSH2 0x3805 000016cf: JUMP 000016d0: JUMPDEST 000016d1: ISZERO 000016d2: ISZERO 000016d3: PUSH2 0x16db 000016d6: JUMPI 000016d7: PUSH1 0x00 000016d9: DUP1 000016da: REVERT 000016db: JUMPDEST 000016dc: DUP9 000016dd: PUSH1 0x0a 000016df: PUSH1 0x00 000016e1: CALLER 000016e2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016f7: AND 000016f8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000170d: AND 0000170e: DUP2 0000170f: MSTORE 00001710: PUSH1 0x20 00001712: ADD 00001713: SWAP1 00001714: DUP2 00001715: MSTORE 00001716: PUSH1 0x20 00001718: ADD 00001719: PUSH1 0x00 0000171b: KECCAK256 0000171c: PUSH1 0x00 0000171e: DUP4 0000171f: PUSH1 0x00 00001721: NOT 00001722: AND 00001723: PUSH1 0x00 00001725: NOT 00001726: AND 00001727: DUP2 00001728: MSTORE 00001729: PUSH1 0x20 0000172b: ADD 0000172c: SWAP1 0000172d: DUP2 0000172e: MSTORE 0000172f: PUSH1 0x20 00001731: ADD 00001732: PUSH1 0x00 00001734: KECCAK256 00001735: DUP2 00001736: SWAP1 00001737: SSTORE 00001738: POP 00001739: PUSH32 0x1e0b760c386003e9cb9bcf4fcf3997886042859d9b6ed6320e804597fcdb28b0 0000175a: DUP11 0000175b: DUP11 0000175c: DUP11 0000175d: DUP11 0000175e: DUP11 0000175f: DUP11 00001760: CALLER 00001761: DUP12 00001762: DUP12 00001763: DUP12 00001764: PUSH1 0x40 00001766: MLOAD 00001767: DUP1 00001768: DUP12 00001769: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000177e: AND 0000177f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001794: AND 00001795: DUP2 00001796: MSTORE 00001797: PUSH1 0x20 00001799: ADD 0000179a: DUP11 0000179b: DUP2 0000179c: MSTORE 0000179d: PUSH1 0x20 0000179f: ADD 000017a0: DUP10 000017a1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017b6: AND 000017b7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017cc: AND 000017cd: DUP2 000017ce: MSTORE 000017cf: PUSH1 0x20 000017d1: ADD 000017d2: DUP9 000017d3: DUP2 000017d4: MSTORE 000017d5: PUSH1 0x20 000017d7: ADD 000017d8: DUP8 000017d9: DUP2 000017da: MSTORE 000017db: PUSH1 0x20 000017dd: ADD 000017de: DUP7 000017df: DUP2 000017e0: MSTORE 000017e1: PUSH1 0x20 000017e3: ADD 000017e4: DUP6 000017e5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017fa: AND 000017fb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001810: AND 00001811: DUP2 00001812: MSTORE 00001813: PUSH1 0x20 00001815: ADD 00001816: DUP5 00001817: PUSH1 0xff 00001819: AND 0000181a: PUSH1 0xff 0000181c: AND 0000181d: DUP2 0000181e: MSTORE 0000181f: PUSH1 0x20 00001821: ADD 00001822: DUP4 00001823: PUSH1 0x00 00001825: NOT 00001826: AND 00001827: PUSH1 0x00 00001829: NOT 0000182a: AND 0000182b: DUP2 0000182c: MSTORE 0000182d: PUSH1 0x20 0000182f: ADD 00001830: DUP3 00001831: PUSH1 0x00 00001833: NOT 00001834: AND 00001835: PUSH1 0x00 00001837: NOT 00001838: AND 00001839: DUP2 0000183a: MSTORE 0000183b: PUSH1 0x20 0000183d: ADD 0000183e: SWAP11 0000183f: POP 00001840: POP 00001841: POP 00001842: POP 00001843: POP 00001844: POP 00001845: POP 00001846: POP 00001847: POP 00001848: POP 00001849: POP 0000184a: PUSH1 0x40 0000184c: MLOAD 0000184d: DUP1 0000184e: SWAP2 0000184f: SUB 00001850: SWAP1 00001851: LOG1 00001852: POP 00001853: POP 00001854: POP 00001855: POP 00001856: POP 00001857: POP 00001858: POP 00001859: POP 0000185a: POP 0000185b: POP 0000185c: JUMP 0000185d: JUMPDEST 0000185e: PUSH1 0x00 00001860: DUP1 00001861: SWAP1 00001862: SLOAD 00001863: SWAP1 00001864: PUSH2 0x0100 00001867: EXP 00001868: SWAP1 00001869: DIV 0000186a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000187f: AND 00001880: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001895: AND 00001896: CALLER 00001897: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018ac: AND 000018ad: EQ 000018ae: ISZERO 000018af: ISZERO 000018b0: PUSH2 0x18b8 000018b3: JUMPI 000018b4: PUSH1 0x00 000018b6: DUP1 000018b7: REVERT 000018b8: JUMPDEST 000018b9: PUSH1 0x00 000018bb: DUP2 000018bc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018d1: AND 000018d2: EQ 000018d3: ISZERO 000018d4: DUP1 000018d5: ISZERO 000018d6: PUSH2 0x1929 000018d9: JUMPI 000018da: POP 000018db: PUSH1 0x08 000018dd: PUSH1 0x00 000018df: DUP3 000018e0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018f5: AND 000018f6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000190b: AND 0000190c: DUP2 0000190d: MSTORE 0000190e: PUSH1 0x20 00001910: ADD 00001911: SWAP1 00001912: DUP2 00001913: MSTORE 00001914: PUSH1 0x20 00001916: ADD 00001917: PUSH1 0x00 00001919: KECCAK256 0000191a: PUSH1 0x00 0000191c: SWAP1 0000191d: SLOAD 0000191e: SWAP1 0000191f: PUSH2 0x0100 00001922: EXP 00001923: SWAP1 00001924: DIV 00001925: PUSH1 0xff 00001927: AND 00001928: ISZERO 00001929: JUMPDEST 0000192a: ISZERO 0000192b: ISZERO 0000192c: PUSH2 0x1934 0000192f: JUMPI 00001930: PUSH1 0x00 00001932: DUP1 00001933: REVERT 00001934: JUMPDEST 00001935: PUSH1 0x01 00001937: PUSH1 0x08 00001939: PUSH1 0x00 0000193b: DUP4 0000193c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001951: AND 00001952: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001967: AND 00001968: DUP2 00001969: MSTORE 0000196a: PUSH1 0x20 0000196c: ADD 0000196d: SWAP1 0000196e: DUP2 0000196f: MSTORE 00001970: PUSH1 0x20 00001972: ADD 00001973: PUSH1 0x00 00001975: KECCAK256 00001976: PUSH1 0x00 00001978: PUSH2 0x0100 0000197b: EXP 0000197c: DUP2 0000197d: SLOAD 0000197e: DUP2 0000197f: PUSH1 0xff 00001981: MUL 00001982: NOT 00001983: AND 00001984: SWAP1 00001985: DUP4 00001986: ISZERO 00001987: ISZERO 00001988: MUL 00001989: OR 0000198a: SWAP1 0000198b: SSTORE 0000198c: POP 0000198d: POP 0000198e: JUMP 0000198f: JUMPDEST 00001990: PUSH1 0x00 00001992: PUSH1 0x08 00001994: PUSH1 0x00 00001996: DUP4 00001997: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019ac: AND 000019ad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019c2: AND 000019c3: DUP2 000019c4: MSTORE 000019c5: PUSH1 0x20 000019c7: ADD 000019c8: SWAP1 000019c9: DUP2 000019ca: MSTORE 000019cb: PUSH1 0x20 000019cd: ADD 000019ce: PUSH1 0x00 000019d0: KECCAK256 000019d1: PUSH1 0x00 000019d3: SWAP1 000019d4: SLOAD 000019d5: SWAP1 000019d6: PUSH2 0x0100 000019d9: EXP 000019da: SWAP1 000019db: DIV 000019dc: PUSH1 0xff 000019de: AND 000019df: ISZERO 000019e0: ISZERO 000019e1: PUSH2 0x19e9 000019e4: JUMPI 000019e5: PUSH1 0x00 000019e7: DUP1 000019e8: REVERT 000019e9: JUMPDEST 000019ea: PUSH1 0x07 000019ec: PUSH1 0x00 000019ee: DUP10 000019ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a04: AND 00001a05: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a1a: AND 00001a1b: DUP2 00001a1c: MSTORE 00001a1d: PUSH1 0x20 00001a1f: ADD 00001a20: SWAP1 00001a21: DUP2 00001a22: MSTORE 00001a23: PUSH1 0x20 00001a25: ADD 00001a26: PUSH1 0x00 00001a28: KECCAK256 00001a29: PUSH1 0x00 00001a2b: SWAP1 00001a2c: SLOAD 00001a2d: SWAP1 00001a2e: PUSH2 0x0100 00001a31: EXP 00001a32: SWAP1 00001a33: DIV 00001a34: PUSH1 0xff 00001a36: AND 00001a37: DUP1 00001a38: ISZERO 00001a39: PUSH2 0x1a8b 00001a3c: JUMPI 00001a3d: POP 00001a3e: PUSH1 0x07 00001a40: PUSH1 0x00 00001a42: DUP8 00001a43: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a58: AND 00001a59: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a6e: AND 00001a6f: DUP2 00001a70: MSTORE 00001a71: PUSH1 0x20 00001a73: ADD 00001a74: SWAP1 00001a75: DUP2 00001a76: MSTORE 00001a77: PUSH1 0x20 00001a79: ADD 00001a7a: PUSH1 0x00 00001a7c: KECCAK256 00001a7d: PUSH1 0x00 00001a7f: SWAP1 00001a80: SLOAD 00001a81: SWAP1 00001a82: PUSH2 0x0100 00001a85: EXP 00001a86: SWAP1 00001a87: DIV 00001a88: PUSH1 0xff 00001a8a: AND 00001a8b: JUMPDEST 00001a8c: ISZERO 00001a8d: ISZERO 00001a8e: PUSH2 0x1a96 00001a91: JUMPI 00001a92: PUSH1 0x00 00001a94: DUP1 00001a95: REVERT 00001a96: JUMPDEST 00001a97: PUSH1 0x0a 00001a99: PUSH1 0x00 00001a9b: DUP4 00001a9c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ab1: AND 00001ab2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ac7: AND 00001ac8: DUP2 00001ac9: MSTORE 00001aca: PUSH1 0x20 00001acc: ADD 00001acd: SWAP1 00001ace: DUP2 00001acf: MSTORE 00001ad0: PUSH1 0x20 00001ad2: ADD 00001ad3: PUSH1 0x00 00001ad5: KECCAK256 00001ad6: PUSH1 0x00 00001ad8: ADDRESS 00001ad9: DUP11 00001ada: DUP11 00001adb: DUP11 00001adc: DUP11 00001add: DUP11 00001ade: DUP11 00001adf: PUSH1 0x40 00001ae1: MLOAD 00001ae2: DUP1 00001ae3: DUP9 00001ae4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001af9: AND 00001afa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b0f: AND 00001b10: PUSH13 0x01000000000000000000000000 00001b1e: MUL 00001b1f: DUP2 00001b20: MSTORE 00001b21: PUSH1 0x14 00001b23: ADD 00001b24: DUP8 00001b25: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b3a: AND 00001b3b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b50: AND 00001b51: PUSH13 0x01000000000000000000000000 00001b5f: MUL 00001b60: DUP2 00001b61: MSTORE 00001b62: PUSH1 0x14 00001b64: ADD 00001b65: DUP7 00001b66: DUP2 00001b67: MSTORE 00001b68: PUSH1 0x20 00001b6a: ADD 00001b6b: DUP6 00001b6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b81: AND 00001b82: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b97: AND 00001b98: PUSH13 0x01000000000000000000000000 00001ba6: MUL 00001ba7: DUP2 00001ba8: MSTORE 00001ba9: PUSH1 0x14 00001bab: ADD 00001bac: DUP5 00001bad: DUP2 00001bae: MSTORE 00001baf: PUSH1 0x20 00001bb1: ADD 00001bb2: DUP4 00001bb3: DUP2 00001bb4: MSTORE 00001bb5: PUSH1 0x20 00001bb7: ADD 00001bb8: DUP3 00001bb9: DUP2 00001bba: MSTORE 00001bbb: PUSH1 0x20 00001bbd: ADD 00001bbe: SWAP8 00001bbf: POP 00001bc0: POP 00001bc1: POP 00001bc2: POP 00001bc3: POP 00001bc4: POP 00001bc5: POP 00001bc6: POP 00001bc7: PUSH1 0x40 00001bc9: MLOAD 00001bca: DUP1 00001bcb: SWAP2 00001bcc: SUB 00001bcd: SWAP1 00001bce: KECCAK256 00001bcf: PUSH1 0x00 00001bd1: NOT 00001bd2: AND 00001bd3: PUSH1 0x00 00001bd5: NOT 00001bd6: AND 00001bd7: DUP2 00001bd8: MSTORE 00001bd9: PUSH1 0x20 00001bdb: ADD 00001bdc: SWAP1 00001bdd: DUP2 00001bde: MSTORE 00001bdf: PUSH1 0x20 00001be1: ADD 00001be2: PUSH1 0x00 00001be4: KECCAK256 00001be5: SLOAD 00001be6: SWAP1 00001be7: POP 00001be8: SWAP8 00001be9: SWAP7 00001bea: POP 00001beb: POP 00001bec: POP 00001bed: POP 00001bee: POP 00001bef: POP 00001bf0: POP 00001bf1: JUMP 00001bf2: JUMPDEST 00001bf3: DUP1 00001bf4: PUSH1 0x06 00001bf6: PUSH1 0x00 00001bf8: DUP1 00001bf9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c0e: AND 00001c0f: DUP2 00001c10: MSTORE 00001c11: PUSH1 0x20 00001c13: ADD 00001c14: SWAP1 00001c15: DUP2 00001c16: MSTORE 00001c17: PUSH1 0x20 00001c19: ADD 00001c1a: PUSH1 0x00 00001c1c: KECCAK256 00001c1d: PUSH1 0x00 00001c1f: CALLER 00001c20: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c35: AND 00001c36: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c4b: AND 00001c4c: DUP2 00001c4d: MSTORE 00001c4e: PUSH1 0x20 00001c50: ADD 00001c51: SWAP1 00001c52: DUP2 00001c53: MSTORE 00001c54: PUSH1 0x20 00001c56: ADD 00001c57: PUSH1 0x00 00001c59: KECCAK256 00001c5a: SLOAD 00001c5b: LT 00001c5c: ISZERO 00001c5d: ISZERO 00001c5e: ISZERO 00001c5f: PUSH2 0x1c67 00001c62: JUMPI 00001c63: PUSH1 0x00 00001c65: DUP1 00001c66: REVERT 00001c67: JUMPDEST 00001c68: PUSH2 0x1ce0 00001c6b: DUP2 00001c6c: PUSH1 0x06 00001c6e: PUSH1 0x00 00001c70: DUP1 00001c71: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c86: AND 00001c87: DUP2 00001c88: MSTORE 00001c89: PUSH1 0x20 00001c8b: ADD 00001c8c: SWAP1 00001c8d: DUP2 00001c8e: MSTORE 00001c8f: PUSH1 0x20 00001c91: ADD 00001c92: PUSH1 0x00 00001c94: KECCAK256 00001c95: PUSH1 0x00 00001c97: CALLER 00001c98: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cad: AND 00001cae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cc3: AND 00001cc4: DUP2 00001cc5: MSTORE 00001cc6: PUSH1 0x20 00001cc8: ADD 00001cc9: SWAP1 00001cca: DUP2 00001ccb: MSTORE 00001ccc: PUSH1 0x20 00001cce: ADD 00001ccf: PUSH1 0x00 00001cd1: KECCAK256 00001cd2: SLOAD 00001cd3: PUSH2 0x421a 00001cd6: SWAP1 00001cd7: SWAP2 00001cd8: SWAP1 00001cd9: PUSH4 0xffffffff 00001cde: AND 00001cdf: JUMP 00001ce0: JUMPDEST 00001ce1: PUSH1 0x06 00001ce3: PUSH1 0x00 00001ce5: DUP1 00001ce6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cfb: AND 00001cfc: DUP2 00001cfd: MSTORE 00001cfe: PUSH1 0x20 00001d00: ADD 00001d01: SWAP1 00001d02: DUP2 00001d03: MSTORE 00001d04: PUSH1 0x20 00001d06: ADD 00001d07: PUSH1 0x00 00001d09: KECCAK256 00001d0a: PUSH1 0x00 00001d0c: CALLER 00001d0d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d22: AND 00001d23: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d38: AND 00001d39: DUP2 00001d3a: MSTORE 00001d3b: PUSH1 0x20 00001d3d: ADD 00001d3e: SWAP1 00001d3f: DUP2 00001d40: MSTORE 00001d41: PUSH1 0x20 00001d43: ADD 00001d44: PUSH1 0x00 00001d46: KECCAK256 00001d47: DUP2 00001d48: SWAP1 00001d49: SSTORE 00001d4a: POP 00001d4b: CALLER 00001d4c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d61: AND 00001d62: PUSH2 0x08fc 00001d65: DUP3 00001d66: SWAP1 00001d67: DUP2 00001d68: ISZERO 00001d69: MUL 00001d6a: SWAP1 00001d6b: PUSH1 0x40 00001d6d: MLOAD 00001d6e: PUSH1 0x00 00001d70: PUSH1 0x40 00001d72: MLOAD 00001d73: DUP1 00001d74: DUP4 00001d75: SUB 00001d76: DUP2 00001d77: DUP6 00001d78: DUP9 00001d79: DUP9 00001d7a: CALL 00001d7b: SWAP4 00001d7c: POP 00001d7d: POP 00001d7e: POP 00001d7f: POP 00001d80: ISZERO 00001d81: DUP1 00001d82: ISZERO 00001d83: PUSH2 0x1d90 00001d86: JUMPI 00001d87: RETURNDATASIZE 00001d88: PUSH1 0x00 00001d8a: DUP1 00001d8b: RETURNDATACOPY 00001d8c: RETURNDATASIZE 00001d8d: PUSH1 0x00 00001d8f: REVERT 00001d90: JUMPDEST 00001d91: POP 00001d92: PUSH32 0xf341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567 00001db3: PUSH1 0x00 00001db5: CALLER 00001db6: DUP4 00001db7: PUSH1 0x06 00001db9: PUSH1 0x00 00001dbb: DUP1 00001dbc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001dd1: AND 00001dd2: DUP2 00001dd3: MSTORE 00001dd4: PUSH1 0x20 00001dd6: ADD 00001dd7: SWAP1 00001dd8: DUP2 00001dd9: MSTORE 00001dda: PUSH1 0x20 00001ddc: ADD 00001ddd: PUSH1 0x00 00001ddf: KECCAK256 00001de0: PUSH1 0x00 00001de2: CALLER 00001de3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001df8: AND 00001df9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e0e: AND 00001e0f: DUP2 00001e10: MSTORE 00001e11: PUSH1 0x20 00001e13: ADD 00001e14: SWAP1 00001e15: DUP2 00001e16: MSTORE 00001e17: PUSH1 0x20 00001e19: ADD 00001e1a: PUSH1 0x00 00001e1c: KECCAK256 00001e1d: SLOAD 00001e1e: PUSH1 0x40 00001e20: MLOAD 00001e21: DUP1 00001e22: DUP6 00001e23: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e38: AND 00001e39: DUP2 00001e3a: MSTORE 00001e3b: PUSH1 0x20 00001e3d: ADD 00001e3e: DUP5 00001e3f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e54: AND 00001e55: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e6a: AND 00001e6b: DUP2 00001e6c: MSTORE 00001e6d: PUSH1 0x20 00001e6f: ADD 00001e70: DUP4 00001e71: DUP2 00001e72: MSTORE 00001e73: PUSH1 0x20 00001e75: ADD 00001e76: DUP3 00001e77: DUP2 00001e78: MSTORE 00001e79: PUSH1 0x20 00001e7b: ADD 00001e7c: SWAP5 00001e7d: POP 00001e7e: POP 00001e7f: POP 00001e80: POP 00001e81: POP 00001e82: PUSH1 0x40 00001e84: MLOAD 00001e85: DUP1 00001e86: SWAP2 00001e87: SUB 00001e88: SWAP1 00001e89: LOG1 00001e8a: POP 00001e8b: JUMP 00001e8c: JUMPDEST 00001e8d: PUSH1 0x00 00001e8f: DUP3 00001e90: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ea5: AND 00001ea6: EQ 00001ea7: ISZERO 00001ea8: DUP1 00001ea9: ISZERO 00001eaa: PUSH2 0x1efc 00001ead: JUMPI 00001eae: POP 00001eaf: PUSH1 0x07 00001eb1: PUSH1 0x00 00001eb3: DUP4 00001eb4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ec9: AND 00001eca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001edf: AND 00001ee0: DUP2 00001ee1: MSTORE 00001ee2: PUSH1 0x20 00001ee4: ADD 00001ee5: SWAP1 00001ee6: DUP2 00001ee7: MSTORE 00001ee8: PUSH1 0x20 00001eea: ADD 00001eeb: PUSH1 0x00 00001eed: KECCAK256 00001eee: PUSH1 0x00 00001ef0: SWAP1 00001ef1: SLOAD 00001ef2: SWAP1 00001ef3: PUSH2 0x0100 00001ef6: EXP 00001ef7: SWAP1 00001ef8: DIV 00001ef9: PUSH1 0xff 00001efb: AND 00001efc: JUMPDEST 00001efd: ISZERO 00001efe: ISZERO 00001eff: PUSH2 0x1f07 00001f02: JUMPI 00001f03: PUSH1 0x00 00001f05: DUP1 00001f06: REVERT 00001f07: JUMPDEST 00001f08: PUSH1 0x08 00001f0a: PUSH1 0x00 00001f0c: CALLER 00001f0d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f22: AND 00001f23: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f38: AND 00001f39: DUP2 00001f3a: MSTORE 00001f3b: PUSH1 0x20 00001f3d: ADD 00001f3e: SWAP1 00001f3f: DUP2 00001f40: MSTORE 00001f41: PUSH1 0x20 00001f43: ADD 00001f44: PUSH1 0x00 00001f46: KECCAK256 00001f47: PUSH1 0x00 00001f49: SWAP1 00001f4a: SLOAD 00001f4b: SWAP1 00001f4c: PUSH2 0x0100 00001f4f: EXP 00001f50: SWAP1 00001f51: DIV 00001f52: PUSH1 0xff 00001f54: AND 00001f55: ISZERO 00001f56: ISZERO 00001f57: PUSH2 0x1f5f 00001f5a: JUMPI 00001f5b: PUSH1 0x00 00001f5d: DUP1 00001f5e: REVERT 00001f5f: JUMPDEST 00001f60: PUSH2 0x1fee 00001f63: DUP2 00001f64: PUSH1 0x06 00001f66: PUSH1 0x00 00001f68: DUP6 00001f69: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f7e: AND 00001f7f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f94: AND 00001f95: DUP2 00001f96: MSTORE 00001f97: PUSH1 0x20 00001f99: ADD 00001f9a: SWAP1 00001f9b: DUP2 00001f9c: MSTORE 00001f9d: PUSH1 0x20 00001f9f: ADD 00001fa0: PUSH1 0x00 00001fa2: KECCAK256 00001fa3: PUSH1 0x00 00001fa5: CALLER 00001fa6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001fbb: AND 00001fbc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001fd1: AND 00001fd2: DUP2 00001fd3: MSTORE 00001fd4: PUSH1 0x20 00001fd6: ADD 00001fd7: SWAP1 00001fd8: DUP2 00001fd9: MSTORE 00001fda: PUSH1 0x20 00001fdc: ADD 00001fdd: PUSH1 0x00 00001fdf: KECCAK256 00001fe0: SLOAD 00001fe1: PUSH2 0x3973 00001fe4: SWAP1 00001fe5: SWAP2 00001fe6: SWAP1 00001fe7: PUSH4 0xffffffff 00001fec: AND 00001fed: JUMP 00001fee: JUMPDEST 00001fef: PUSH1 0x06 00001ff1: PUSH1 0x00 00001ff3: DUP5 00001ff4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002009: AND 0000200a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000201f: AND 00002020: DUP2 00002021: MSTORE 00002022: PUSH1 0x20 00002024: ADD 00002025: SWAP1 00002026: DUP2 00002027: MSTORE 00002028: PUSH1 0x20 0000202a: ADD 0000202b: PUSH1 0x00 0000202d: KECCAK256 0000202e: PUSH1 0x00 00002030: CALLER 00002031: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002046: AND 00002047: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000205c: AND 0000205d: DUP2 0000205e: MSTORE 0000205f: PUSH1 0x20 00002061: ADD 00002062: SWAP1 00002063: DUP2 00002064: MSTORE 00002065: PUSH1 0x20 00002067: ADD 00002068: PUSH1 0x00 0000206a: KECCAK256 0000206b: DUP2 0000206c: SWAP1 0000206d: SSTORE 0000206e: POP 0000206f: DUP2 00002070: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002085: AND 00002086: PUSH4 0x23b872dd 0000208b: CALLER 0000208c: ADDRESS 0000208d: DUP5 0000208e: PUSH1 0x40 00002090: MLOAD 00002091: DUP5 00002092: PUSH4 0xffffffff 00002097: AND 00002098: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 000020b6: MUL 000020b7: DUP2 000020b8: MSTORE 000020b9: PUSH1 0x04 000020bb: ADD 000020bc: DUP1 000020bd: DUP5 000020be: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020d3: AND 000020d4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020e9: AND 000020ea: DUP2 000020eb: MSTORE 000020ec: PUSH1 0x20 000020ee: ADD 000020ef: DUP4 000020f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002105: AND 00002106: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000211b: AND 0000211c: DUP2 0000211d: MSTORE 0000211e: PUSH1 0x20 00002120: ADD 00002121: DUP3 00002122: DUP2 00002123: MSTORE 00002124: PUSH1 0x20 00002126: ADD 00002127: SWAP4 00002128: POP 00002129: POP 0000212a: POP 0000212b: POP 0000212c: PUSH1 0x20 0000212e: PUSH1 0x40 00002130: MLOAD 00002131: DUP1 00002132: DUP4 00002133: SUB 00002134: DUP2 00002135: PUSH1 0x00 00002137: DUP8 00002138: DUP1 00002139: EXTCODESIZE 0000213a: ISZERO 0000213b: DUP1 0000213c: ISZERO 0000213d: PUSH2 0x2145 00002140: JUMPI 00002141: PUSH1 0x00 00002143: DUP1 00002144: REVERT 00002145: JUMPDEST 00002146: POP 00002147: GAS 00002148: CALL 00002149: ISZERO 0000214a: DUP1 0000214b: ISZERO 0000214c: PUSH2 0x2159 0000214f: JUMPI 00002150: RETURNDATASIZE 00002151: PUSH1 0x00 00002153: DUP1 00002154: RETURNDATACOPY 00002155: RETURNDATASIZE 00002156: PUSH1 0x00 00002158: REVERT 00002159: JUMPDEST 0000215a: POP 0000215b: POP 0000215c: POP 0000215d: POP 0000215e: PUSH1 0x40 00002160: MLOAD 00002161: RETURNDATASIZE 00002162: PUSH1 0x20 00002164: DUP2 00002165: LT 00002166: ISZERO 00002167: PUSH2 0x216f 0000216a: JUMPI 0000216b: PUSH1 0x00 0000216d: DUP1 0000216e: REVERT 0000216f: JUMPDEST 00002170: DUP2 00002171: ADD 00002172: SWAP1 00002173: DUP1 00002174: DUP1 00002175: MLOAD 00002176: SWAP1 00002177: PUSH1 0x20 00002179: ADD 0000217a: SWAP1 0000217b: SWAP3 0000217c: SWAP2 0000217d: SWAP1 0000217e: POP 0000217f: POP 00002180: POP 00002181: ISZERO 00002182: ISZERO 00002183: PUSH2 0x218b 00002186: JUMPI 00002187: PUSH1 0x00 00002189: DUP1 0000218a: REVERT 0000218b: JUMPDEST 0000218c: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7 000021ad: DUP3 000021ae: CALLER 000021af: DUP4 000021b0: PUSH1 0x06 000021b2: PUSH1 0x00 000021b4: DUP8 000021b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000021ca: AND 000021cb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000021e0: AND 000021e1: DUP2 000021e2: MSTORE 000021e3: PUSH1 0x20 000021e5: ADD 000021e6: SWAP1 000021e7: DUP2 000021e8: MSTORE 000021e9: PUSH1 0x20 000021eb: ADD 000021ec: PUSH1 0x00 000021ee: KECCAK256 000021ef: PUSH1 0x00 000021f1: CALLER 000021f2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002207: AND 00002208: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000221d: AND 0000221e: DUP2 0000221f: MSTORE 00002220: PUSH1 0x20 00002222: ADD 00002223: SWAP1 00002224: DUP2 00002225: MSTORE 00002226: PUSH1 0x20 00002228: ADD 00002229: PUSH1 0x00 0000222b: KECCAK256 0000222c: SLOAD 0000222d: PUSH1 0x40 0000222f: MLOAD 00002230: DUP1 00002231: DUP6 00002232: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002247: AND 00002248: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000225d: AND 0000225e: DUP2 0000225f: MSTORE 00002260: PUSH1 0x20 00002262: ADD 00002263: DUP5 00002264: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002279: AND 0000227a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000228f: AND 00002290: DUP2 00002291: MSTORE 00002292: PUSH1 0x20 00002294: ADD 00002295: DUP4 00002296: DUP2 00002297: MSTORE 00002298: PUSH1 0x20 0000229a: ADD 0000229b: DUP3 0000229c: DUP2 0000229d: MSTORE 0000229e: PUSH1 0x20 000022a0: ADD 000022a1: SWAP5 000022a2: POP 000022a3: POP 000022a4: POP 000022a5: POP 000022a6: POP 000022a7: PUSH1 0x40 000022a9: MLOAD 000022aa: DUP1 000022ab: SWAP2 000022ac: SUB 000022ad: SWAP1 000022ae: LOG1 000022af: POP 000022b0: POP 000022b1: JUMP 000022b2: JUMPDEST 000022b3: PUSH1 0x06 000022b5: PUSH1 0x20 000022b7: MSTORE 000022b8: DUP2 000022b9: PUSH1 0x00 000022bb: MSTORE 000022bc: PUSH1 0x40 000022be: PUSH1 0x00 000022c0: KECCAK256 000022c1: PUSH1 0x20 000022c3: MSTORE 000022c4: DUP1 000022c5: PUSH1 0x00 000022c7: MSTORE 000022c8: PUSH1 0x40 000022ca: PUSH1 0x00 000022cc: KECCAK256 000022cd: PUSH1 0x00 000022cf: SWAP2 000022d0: POP 000022d1: SWAP2 000022d2: POP 000022d3: POP 000022d4: SLOAD 000022d5: DUP2 000022d6: JUMP 000022d7: JUMPDEST 000022d8: PUSH1 0x00 000022da: DUP1 000022db: SWAP1 000022dc: SLOAD 000022dd: SWAP1 000022de: PUSH2 0x0100 000022e1: EXP 000022e2: SWAP1 000022e3: DIV 000022e4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000022f9: AND 000022fa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000230f: AND 00002310: CALLER 00002311: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002326: AND 00002327: EQ 00002328: ISZERO 00002329: ISZERO 0000232a: PUSH2 0x2332 0000232d: JUMPI 0000232e: PUSH1 0x00 00002330: DUP1 00002331: REVERT 00002332: JUMPDEST 00002333: DUP1 00002334: PUSH1 0x03 00002336: DUP2 00002337: SWAP1 00002338: SSTORE 00002339: POP 0000233a: POP 0000233b: JUMP 0000233c: JUMPDEST 0000233d: PUSH1 0x03 0000233f: SLOAD 00002340: DUP2 00002341: JUMP 00002342: JUMPDEST 00002343: PUSH1 0x00 00002345: DUP1 00002346: SWAP1 00002347: SLOAD 00002348: SWAP1 00002349: PUSH2 0x0100 0000234c: EXP 0000234d: SWAP1 0000234e: DIV 0000234f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002364: AND 00002365: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000237a: AND 0000237b: CALLER 0000237c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002391: AND 00002392: EQ 00002393: ISZERO 00002394: ISZERO 00002395: PUSH2 0x239d 00002398: JUMPI 00002399: PUSH1 0x00 0000239b: DUP1 0000239c: REVERT 0000239d: JUMPDEST 0000239e: PUSH1 0x04 000023a0: SLOAD 000023a1: DUP2 000023a2: GT 000023a3: ISZERO 000023a4: ISZERO 000023a5: ISZERO 000023a6: PUSH2 0x23ae 000023a9: JUMPI 000023aa: PUSH1 0x00 000023ac: DUP1 000023ad: REVERT 000023ae: JUMPDEST 000023af: DUP1 000023b0: PUSH1 0x05 000023b2: DUP2 000023b3: SWAP1 000023b4: SSTORE 000023b5: POP 000023b6: POP 000023b7: JUMP 000023b8: JUMPDEST 000023b9: PUSH1 0x01 000023bb: PUSH1 0x00 000023bd: SWAP1 000023be: SLOAD 000023bf: SWAP1 000023c0: PUSH2 0x0100 000023c3: EXP 000023c4: SWAP1 000023c5: DIV 000023c6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000023db: AND 000023dc: DUP2 000023dd: JUMP 000023de: JUMPDEST 000023df: PUSH1 0x00 000023e1: DUP1 000023e2: SWAP1 000023e3: SLOAD 000023e4: SWAP1 000023e5: PUSH2 0x0100 000023e8: EXP 000023e9: SWAP1 000023ea: DIV 000023eb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002400: AND 00002401: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002416: AND 00002417: CALLER 00002418: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000242d: AND 0000242e: EQ 0000242f: ISZERO 00002430: ISZERO 00002431: PUSH2 0x2439 00002434: JUMPI 00002435: PUSH1 0x00 00002437: DUP1 00002438: REVERT 00002439: JUMPDEST 0000243a: PUSH1 0x00 0000243c: DUP2 0000243d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002452: AND 00002453: EQ 00002454: ISZERO 00002455: DUP1 00002456: ISZERO 00002457: PUSH2 0x24a9 0000245a: JUMPI 0000245b: POP 0000245c: PUSH1 0x07 0000245e: PUSH1 0x00 00002460: DUP3 00002461: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002476: AND 00002477: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000248c: AND 0000248d: DUP2 0000248e: MSTORE 0000248f: PUSH1 0x20 00002491: ADD 00002492: SWAP1 00002493: DUP2 00002494: MSTORE 00002495: PUSH1 0x20 00002497: ADD 00002498: PUSH1 0x00 0000249a: KECCAK256 0000249b: PUSH1 0x00 0000249d: SWAP1 0000249e: SLOAD 0000249f: SWAP1 000024a0: PUSH2 0x0100 000024a3: EXP 000024a4: SWAP1 000024a5: DIV 000024a6: PUSH1 0xff 000024a8: AND 000024a9: JUMPDEST 000024aa: ISZERO 000024ab: ISZERO 000024ac: PUSH2 0x24b4 000024af: JUMPI 000024b0: PUSH1 0x00 000024b2: DUP1 000024b3: REVERT 000024b4: JUMPDEST 000024b5: PUSH1 0x00 000024b7: PUSH1 0x07 000024b9: PUSH1 0x00 000024bb: DUP4 000024bc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024d1: AND 000024d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024e7: AND 000024e8: DUP2 000024e9: MSTORE 000024ea: PUSH1 0x20 000024ec: ADD 000024ed: SWAP1 000024ee: DUP2 000024ef: MSTORE 000024f0: PUSH1 0x20 000024f2: ADD 000024f3: PUSH1 0x00 000024f5: KECCAK256 000024f6: PUSH1 0x00 000024f8: PUSH2 0x0100 000024fb: EXP 000024fc: DUP2 000024fd: SLOAD 000024fe: DUP2 000024ff: PUSH1 0xff 00002501: MUL 00002502: NOT 00002503: AND 00002504: SWAP1 00002505: DUP4 00002506: ISZERO 00002507: ISZERO 00002508: MUL 00002509: OR 0000250a: SWAP1 0000250b: SSTORE 0000250c: POP 0000250d: POP 0000250e: JUMP 0000250f: JUMPDEST 00002510: PUSH1 0x00 00002512: PUSH1 0x08 00002514: PUSH1 0x00 00002516: DUP9 00002517: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000252c: AND 0000252d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002542: AND 00002543: DUP2 00002544: MSTORE 00002545: PUSH1 0x20 00002547: ADD 00002548: SWAP1 00002549: DUP2 0000254a: MSTORE 0000254b: PUSH1 0x20 0000254d: ADD 0000254e: PUSH1 0x00 00002550: KECCAK256 00002551: PUSH1 0x00 00002553: SWAP1 00002554: SLOAD 00002555: SWAP1 00002556: PUSH2 0x0100 00002559: EXP 0000255a: SWAP1 0000255b: DIV 0000255c: PUSH1 0xff 0000255e: AND 0000255f: DUP1 00002560: ISZERO 00002561: PUSH2 0x25b3 00002564: JUMPI 00002565: POP 00002566: PUSH1 0x08 00002568: PUSH1 0x00 0000256a: DUP4 0000256b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002580: AND 00002581: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002596: AND 00002597: DUP2 00002598: MSTORE 00002599: PUSH1 0x20 0000259b: ADD 0000259c: SWAP1 0000259d: DUP2 0000259e: MSTORE 0000259f: PUSH1 0x20 000025a1: ADD 000025a2: PUSH1 0x00 000025a4: KECCAK256 000025a5: PUSH1 0x00 000025a7: SWAP1 000025a8: SLOAD 000025a9: SWAP1 000025aa: PUSH2 0x0100 000025ad: EXP 000025ae: SWAP1 000025af: DIV 000025b0: PUSH1 0xff 000025b2: AND 000025b3: JUMPDEST 000025b4: ISZERO 000025b5: ISZERO 000025b6: PUSH2 0x25be 000025b9: JUMPI 000025ba: PUSH1 0x00 000025bc: DUP1 000025bd: REVERT 000025be: JUMPDEST 000025bf: PUSH1 0x07 000025c1: PUSH1 0x00 000025c3: DUP15 000025c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025d9: AND 000025da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025ef: AND 000025f0: DUP2 000025f1: MSTORE 000025f2: PUSH1 0x20 000025f4: ADD 000025f5: SWAP1 000025f6: DUP2 000025f7: MSTORE 000025f8: PUSH1 0x20 000025fa: ADD 000025fb: PUSH1 0x00 000025fd: KECCAK256 000025fe: PUSH1 0x00 00002600: SWAP1 00002601: SLOAD 00002602: SWAP1 00002603: PUSH2 0x0100 00002606: EXP 00002607: SWAP1 00002608: DIV 00002609: PUSH1 0xff 0000260b: AND 0000260c: DUP1 0000260d: ISZERO 0000260e: PUSH2 0x2660 00002611: JUMPI 00002612: POP 00002613: PUSH1 0x07 00002615: PUSH1 0x00 00002617: DUP13 00002618: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000262d: AND 0000262e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002643: AND 00002644: DUP2 00002645: MSTORE 00002646: PUSH1 0x20 00002648: ADD 00002649: SWAP1 0000264a: DUP2 0000264b: MSTORE 0000264c: PUSH1 0x20 0000264e: ADD 0000264f: PUSH1 0x00 00002651: KECCAK256 00002652: PUSH1 0x00 00002654: SWAP1 00002655: SLOAD 00002656: SWAP1 00002657: PUSH2 0x0100 0000265a: EXP 0000265b: SWAP1 0000265c: DIV 0000265d: PUSH1 0xff 0000265f: AND 00002660: JUMPDEST 00002661: ISZERO 00002662: ISZERO 00002663: PUSH2 0x266b 00002666: JUMPI 00002667: PUSH1 0x00 00002669: DUP1 0000266a: REVERT 0000266b: JUMPDEST 0000266c: DUP3 0000266d: PUSH1 0x06 0000266f: PUSH1 0x00 00002671: DUP16 00002672: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002687: AND 00002688: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000269d: AND 0000269e: DUP2 0000269f: MSTORE 000026a0: PUSH1 0x20 000026a2: ADD 000026a3: SWAP1 000026a4: DUP2 000026a5: MSTORE 000026a6: PUSH1 0x20 000026a8: ADD 000026a9: PUSH1 0x00 000026ab: KECCAK256 000026ac: PUSH1 0x00 000026ae: DUP5 000026af: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000026c4: AND 000026c5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000026da: AND 000026db: DUP2 000026dc: MSTORE 000026dd: PUSH1 0x20 000026df: ADD 000026e0: SWAP1 000026e1: DUP2 000026e2: MSTORE 000026e3: PUSH1 0x20 000026e5: ADD 000026e6: PUSH1 0x00 000026e8: KECCAK256 000026e9: SLOAD 000026ea: LT 000026eb: ISZERO 000026ec: ISZERO 000026ed: ISZERO 000026ee: PUSH2 0x26f6 000026f1: JUMPI 000026f2: PUSH1 0x00 000026f4: DUP1 000026f5: REVERT 000026f6: JUMPDEST 000026f7: DUP3 000026f8: PUSH2 0x2709 000026fb: DUP15 000026fc: DUP15 000026fd: DUP15 000026fe: DUP15 000026ff: DUP15 00002700: DUP15 00002701: DUP15 00002702: DUP15 00002703: DUP15 00002704: DUP15 00002705: PUSH2 0x33c9 00002708: JUMP 00002709: JUMPDEST 0000270a: LT 0000270b: ISZERO 0000270c: SWAP1 0000270d: POP 0000270e: SWAP13 0000270f: SWAP12 00002710: POP 00002711: POP 00002712: POP 00002713: POP 00002714: POP 00002715: POP 00002716: POP 00002717: POP 00002718: POP 00002719: POP 0000271a: POP 0000271b: POP 0000271c: JUMP 0000271d: JUMPDEST 0000271e: PUSH1 0x00 00002720: DUP1 00002721: SWAP1 00002722: SLOAD 00002723: SWAP1 00002724: PUSH2 0x0100 00002727: EXP 00002728: SWAP1 00002729: DIV 0000272a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000273f: AND 00002740: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002755: AND 00002756: CALLER 00002757: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000276c: AND 0000276d: EQ 0000276e: ISZERO 0000276f: ISZERO 00002770: PUSH2 0x2778 00002773: JUMPI 00002774: PUSH1 0x00 00002776: DUP1 00002777: REVERT 00002778: JUMPDEST 00002779: PUSH1 0x00 0000277b: DUP2 0000277c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002791: AND 00002792: EQ 00002793: ISZERO 00002794: ISZERO 00002795: ISZERO 00002796: PUSH2 0x279e 00002799: JUMPI 0000279a: PUSH1 0x00 0000279c: DUP1 0000279d: REVERT 0000279e: JUMPDEST 0000279f: DUP1 000027a0: PUSH1 0x01 000027a2: PUSH1 0x00 000027a4: PUSH2 0x0100 000027a7: EXP 000027a8: DUP2 000027a9: SLOAD 000027aa: DUP2 000027ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027c0: MUL 000027c1: NOT 000027c2: AND 000027c3: SWAP1 000027c4: DUP4 000027c5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027da: AND 000027db: MUL 000027dc: OR 000027dd: SWAP1 000027de: SSTORE 000027df: POP 000027e0: POP 000027e1: JUMP 000027e2: JUMPDEST 000027e3: PUSH1 0x05 000027e5: SLOAD 000027e6: DUP2 000027e7: JUMP 000027e8: JUMPDEST 000027e9: PUSH1 0x00 000027eb: DUP1 000027ec: SWAP1 000027ed: SLOAD 000027ee: SWAP1 000027ef: PUSH2 0x0100 000027f2: EXP 000027f3: SWAP1 000027f4: DIV 000027f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000280a: AND 0000280b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002820: AND 00002821: CALLER 00002822: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002837: AND 00002838: EQ 00002839: ISZERO 0000283a: ISZERO 0000283b: PUSH2 0x2843 0000283e: JUMPI 0000283f: PUSH1 0x00 00002841: DUP1 00002842: REVERT 00002843: JUMPDEST 00002844: PUSH1 0x05 00002846: SLOAD 00002847: DUP2 00002848: LT 00002849: ISZERO 0000284a: ISZERO 0000284b: ISZERO 0000284c: PUSH2 0x2854 0000284f: JUMPI 00002850: PUSH1 0x00 00002852: DUP1 00002853: REVERT 00002854: JUMPDEST 00002855: DUP1 00002856: PUSH1 0x04 00002858: DUP2 00002859: SWAP1 0000285a: SSTORE 0000285b: POP 0000285c: POP 0000285d: JUMP 0000285e: JUMPDEST 0000285f: PUSH1 0x00 00002861: DUP1 00002862: SWAP1 00002863: SLOAD 00002864: SWAP1 00002865: PUSH2 0x0100 00002868: EXP 00002869: SWAP1 0000286a: DIV 0000286b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002880: AND 00002881: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002896: AND 00002897: CALLER 00002898: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000028ad: AND 000028ae: EQ 000028af: ISZERO 000028b0: ISZERO 000028b1: PUSH2 0x28b9 000028b4: JUMPI 000028b5: PUSH1 0x00 000028b7: DUP1 000028b8: REVERT 000028b9: JUMPDEST 000028ba: PUSH1 0x00 000028bc: DUP2 000028bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000028d2: AND 000028d3: EQ 000028d4: ISZERO 000028d5: DUP1 000028d6: ISZERO 000028d7: PUSH2 0x292d 000028da: JUMPI 000028db: POP 000028dc: DUP1 000028dd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000028f2: AND 000028f3: PUSH1 0x00 000028f5: DUP1 000028f6: SWAP1 000028f7: SLOAD 000028f8: SWAP1 000028f9: PUSH2 0x0100 000028fc: EXP 000028fd: SWAP1 000028fe: DIV 000028ff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002914: AND 00002915: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000292a: AND 0000292b: EQ 0000292c: ISZERO 0000292d: JUMPDEST 0000292e: ISZERO 0000292f: ISZERO 00002930: PUSH2 0x2938 00002933: JUMPI 00002934: PUSH1 0x00 00002936: DUP1 00002937: REVERT 00002938: JUMPDEST 00002939: DUP1 0000293a: PUSH1 0x00 0000293c: DUP1 0000293d: PUSH2 0x0100 00002940: EXP 00002941: DUP2 00002942: SLOAD 00002943: DUP2 00002944: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002959: MUL 0000295a: NOT 0000295b: AND 0000295c: SWAP1 0000295d: DUP4 0000295e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002973: AND 00002974: MUL 00002975: OR 00002976: SWAP1 00002977: SSTORE 00002978: POP 00002979: POP 0000297a: JUMP 0000297b: JUMPDEST 0000297c: PUSH1 0x00 0000297e: DUP1 0000297f: SWAP1 00002980: SLOAD 00002981: SWAP1 00002982: PUSH2 0x0100 00002985: EXP 00002986: SWAP1 00002987: DIV 00002988: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000299d: AND 0000299e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029b3: AND 000029b4: CALLER 000029b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029ca: AND 000029cb: EQ 000029cc: ISZERO 000029cd: ISZERO 000029ce: PUSH2 0x29d6 000029d1: JUMPI 000029d2: PUSH1 0x00 000029d4: DUP1 000029d5: REVERT 000029d6: JUMPDEST 000029d7: PUSH1 0x00 000029d9: DUP2 000029da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029ef: AND 000029f0: EQ 000029f1: ISZERO 000029f2: DUP1 000029f3: ISZERO 000029f4: PUSH2 0x2a47 000029f7: JUMPI 000029f8: POP 000029f9: PUSH1 0x07 000029fb: PUSH1 0x00 000029fd: DUP3 000029fe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a13: AND 00002a14: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a29: AND 00002a2a: DUP2 00002a2b: MSTORE 00002a2c: PUSH1 0x20 00002a2e: ADD 00002a2f: SWAP1 00002a30: DUP2 00002a31: MSTORE 00002a32: PUSH1 0x20 00002a34: ADD 00002a35: PUSH1 0x00 00002a37: KECCAK256 00002a38: PUSH1 0x00 00002a3a: SWAP1 00002a3b: SLOAD 00002a3c: SWAP1 00002a3d: PUSH2 0x0100 00002a40: EXP 00002a41: SWAP1 00002a42: DIV 00002a43: PUSH1 0xff 00002a45: AND 00002a46: ISZERO 00002a47: JUMPDEST 00002a48: ISZERO 00002a49: ISZERO 00002a4a: PUSH2 0x2a52 00002a4d: JUMPI 00002a4e: PUSH1 0x00 00002a50: DUP1 00002a51: REVERT 00002a52: JUMPDEST 00002a53: PUSH1 0x01 00002a55: PUSH1 0x07 00002a57: PUSH1 0x00 00002a59: DUP4 00002a5a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a6f: AND 00002a70: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a85: AND 00002a86: DUP2 00002a87: MSTORE 00002a88: PUSH1 0x20 00002a8a: ADD 00002a8b: SWAP1 00002a8c: DUP2 00002a8d: MSTORE 00002a8e: PUSH1 0x20 00002a90: ADD 00002a91: PUSH1 0x00 00002a93: KECCAK256 00002a94: PUSH1 0x00 00002a96: PUSH2 0x0100 00002a99: EXP 00002a9a: DUP2 00002a9b: SLOAD 00002a9c: DUP2 00002a9d: PUSH1 0xff 00002a9f: MUL 00002aa0: NOT 00002aa1: AND 00002aa2: SWAP1 00002aa3: DUP4 00002aa4: ISZERO 00002aa5: ISZERO 00002aa6: MUL 00002aa7: OR 00002aa8: SWAP1 00002aa9: SSTORE 00002aaa: POP 00002aab: POP 00002aac: JUMP 00002aad: JUMPDEST 00002aae: PUSH1 0x00 00002ab0: DUP3 00002ab1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ac6: AND 00002ac7: EQ 00002ac8: ISZERO 00002ac9: ISZERO 00002aca: ISZERO 00002acb: PUSH2 0x2ad3 00002ace: JUMPI 00002acf: PUSH1 0x00 00002ad1: DUP1 00002ad2: REVERT 00002ad3: JUMPDEST 00002ad4: DUP1 00002ad5: PUSH1 0x06 00002ad7: PUSH1 0x00 00002ad9: DUP5 00002ada: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002aef: AND 00002af0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b05: AND 00002b06: DUP2 00002b07: MSTORE 00002b08: PUSH1 0x20 00002b0a: ADD 00002b0b: SWAP1 00002b0c: DUP2 00002b0d: MSTORE 00002b0e: PUSH1 0x20 00002b10: ADD 00002b11: PUSH1 0x00 00002b13: KECCAK256 00002b14: PUSH1 0x00 00002b16: CALLER 00002b17: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b2c: AND 00002b2d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b42: AND 00002b43: DUP2 00002b44: MSTORE 00002b45: PUSH1 0x20 00002b47: ADD 00002b48: SWAP1 00002b49: DUP2 00002b4a: MSTORE 00002b4b: PUSH1 0x20 00002b4d: ADD 00002b4e: PUSH1 0x00 00002b50: KECCAK256 00002b51: SLOAD 00002b52: LT 00002b53: ISZERO 00002b54: ISZERO 00002b55: ISZERO 00002b56: PUSH2 0x2b5e 00002b59: JUMPI 00002b5a: PUSH1 0x00 00002b5c: DUP1 00002b5d: REVERT 00002b5e: JUMPDEST 00002b5f: PUSH2 0x2bed 00002b62: DUP2 00002b63: PUSH1 0x06 00002b65: PUSH1 0x00 00002b67: DUP6 00002b68: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b7d: AND 00002b7e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b93: AND 00002b94: DUP2 00002b95: MSTORE 00002b96: PUSH1 0x20 00002b98: ADD 00002b99: SWAP1 00002b9a: DUP2 00002b9b: MSTORE 00002b9c: PUSH1 0x20 00002b9e: ADD 00002b9f: PUSH1 0x00 00002ba1: KECCAK256 00002ba2: PUSH1 0x00 00002ba4: CALLER 00002ba5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002bba: AND 00002bbb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002bd0: AND 00002bd1: DUP2 00002bd2: MSTORE 00002bd3: PUSH1 0x20 00002bd5: ADD 00002bd6: SWAP1 00002bd7: DUP2 00002bd8: MSTORE 00002bd9: PUSH1 0x20 00002bdb: ADD 00002bdc: PUSH1 0x00 00002bde: KECCAK256 00002bdf: SLOAD 00002be0: PUSH2 0x421a 00002be3: SWAP1 00002be4: SWAP2 00002be5: SWAP1 00002be6: PUSH4 0xffffffff 00002beb: AND 00002bec: JUMP 00002bed: JUMPDEST 00002bee: PUSH1 0x06 00002bf0: PUSH1 0x00 00002bf2: DUP5 00002bf3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c08: AND 00002c09: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c1e: AND 00002c1f: DUP2 00002c20: MSTORE 00002c21: PUSH1 0x20 00002c23: ADD 00002c24: SWAP1 00002c25: DUP2 00002c26: MSTORE 00002c27: PUSH1 0x20 00002c29: ADD 00002c2a: PUSH1 0x00 00002c2c: KECCAK256 00002c2d: PUSH1 0x00 00002c2f: CALLER 00002c30: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c45: AND 00002c46: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c5b: AND 00002c5c: DUP2 00002c5d: MSTORE 00002c5e: PUSH1 0x20 00002c60: ADD 00002c61: SWAP1 00002c62: DUP2 00002c63: MSTORE 00002c64: PUSH1 0x20 00002c66: ADD 00002c67: PUSH1 0x00 00002c69: KECCAK256 00002c6a: DUP2 00002c6b: SWAP1 00002c6c: SSTORE 00002c6d: POP 00002c6e: DUP2 00002c6f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c84: AND 00002c85: PUSH4 0xa9059cbb 00002c8a: CALLER 00002c8b: DUP4 00002c8c: PUSH1 0x40 00002c8e: MLOAD 00002c8f: DUP4 00002c90: PUSH4 0xffffffff 00002c95: AND 00002c96: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00002cb4: MUL 00002cb5: DUP2 00002cb6: MSTORE 00002cb7: PUSH1 0x04 00002cb9: ADD 00002cba: DUP1 00002cbb: DUP4 00002cbc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002cd1: AND 00002cd2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ce7: AND 00002ce8: DUP2 00002ce9: MSTORE 00002cea: PUSH1 0x20 00002cec: ADD 00002ced: DUP3 00002cee: DUP2 00002cef: MSTORE 00002cf0: PUSH1 0x20 00002cf2: ADD 00002cf3: SWAP3 00002cf4: POP 00002cf5: POP 00002cf6: POP 00002cf7: PUSH1 0x20 00002cf9: PUSH1 0x40 00002cfb: MLOAD 00002cfc: DUP1 00002cfd: DUP4 00002cfe: SUB 00002cff: DUP2 00002d00: PUSH1 0x00 00002d02: DUP8 00002d03: DUP1 00002d04: EXTCODESIZE 00002d05: ISZERO 00002d06: DUP1 00002d07: ISZERO 00002d08: PUSH2 0x2d10 00002d0b: JUMPI 00002d0c: PUSH1 0x00 00002d0e: DUP1 00002d0f: REVERT 00002d10: JUMPDEST 00002d11: POP 00002d12: GAS 00002d13: CALL 00002d14: ISZERO 00002d15: DUP1 00002d16: ISZERO 00002d17: PUSH2 0x2d24 00002d1a: JUMPI 00002d1b: RETURNDATASIZE 00002d1c: PUSH1 0x00 00002d1e: DUP1 00002d1f: RETURNDATACOPY 00002d20: RETURNDATASIZE 00002d21: PUSH1 0x00 00002d23: REVERT 00002d24: JUMPDEST 00002d25: POP 00002d26: POP 00002d27: POP 00002d28: POP 00002d29: PUSH1 0x40 00002d2b: MLOAD 00002d2c: RETURNDATASIZE 00002d2d: PUSH1 0x20 00002d2f: DUP2 00002d30: LT 00002d31: ISZERO 00002d32: PUSH2 0x2d3a 00002d35: JUMPI 00002d36: PUSH1 0x00 00002d38: DUP1 00002d39: REVERT 00002d3a: JUMPDEST 00002d3b: DUP2 00002d3c: ADD 00002d3d: SWAP1 00002d3e: DUP1 00002d3f: DUP1 00002d40: MLOAD 00002d41: SWAP1 00002d42: PUSH1 0x20 00002d44: ADD 00002d45: SWAP1 00002d46: SWAP3 00002d47: SWAP2 00002d48: SWAP1 00002d49: POP 00002d4a: POP 00002d4b: POP 00002d4c: ISZERO 00002d4d: ISZERO 00002d4e: PUSH2 0x2d56 00002d51: JUMPI 00002d52: PUSH1 0x00 00002d54: DUP1 00002d55: REVERT 00002d56: JUMPDEST 00002d57: PUSH32 0xf341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567 00002d78: DUP3 00002d79: CALLER 00002d7a: DUP4 00002d7b: PUSH1 0x06 00002d7d: PUSH1 0x00 00002d7f: DUP8 00002d80: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d95: AND 00002d96: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002dab: AND 00002dac: DUP2 00002dad: MSTORE 00002dae: PUSH1 0x20 00002db0: ADD 00002db1: SWAP1 00002db2: DUP2 00002db3: MSTORE 00002db4: PUSH1 0x20 00002db6: ADD 00002db7: PUSH1 0x00 00002db9: KECCAK256 00002dba: PUSH1 0x00 00002dbc: CALLER 00002dbd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002dd2: AND 00002dd3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002de8: AND 00002de9: DUP2 00002dea: MSTORE 00002deb: PUSH1 0x20 00002ded: ADD 00002dee: SWAP1 00002def: DUP2 00002df0: MSTORE 00002df1: PUSH1 0x20 00002df3: ADD 00002df4: PUSH1 0x00 00002df6: KECCAK256 00002df7: SLOAD 00002df8: PUSH1 0x40 00002dfa: MLOAD 00002dfb: DUP1 00002dfc: DUP6 00002dfd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002e12: AND 00002e13: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002e28: AND 00002e29: DUP2 00002e2a: MSTORE 00002e2b: PUSH1 0x20 00002e2d: ADD 00002e2e: DUP5 00002e2f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002e44: AND 00002e45: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002e5a: AND 00002e5b: DUP2 00002e5c: MSTORE 00002e5d: PUSH1 0x20 00002e5f: ADD 00002e60: DUP4 00002e61: DUP2 00002e62: MSTORE 00002e63: PUSH1 0x20 00002e65: ADD 00002e66: DUP3 00002e67: DUP2 00002e68: MSTORE 00002e69: PUSH1 0x20 00002e6b: ADD 00002e6c: SWAP5 00002e6d: POP 00002e6e: POP 00002e6f: POP 00002e70: POP 00002e71: POP 00002e72: PUSH1 0x40 00002e74: MLOAD 00002e75: DUP1 00002e76: SWAP2 00002e77: SUB 00002e78: SWAP1 00002e79: LOG1 00002e7a: POP 00002e7b: POP 00002e7c: JUMP 00002e7d: JUMPDEST 00002e7e: PUSH1 0x00 00002e80: DUP1 00002e81: SWAP1 00002e82: SLOAD 00002e83: SWAP1 00002e84: PUSH2 0x0100 00002e87: EXP 00002e88: SWAP1 00002e89: DIV 00002e8a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002e9f: AND 00002ea0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002eb5: AND 00002eb6: CALLER 00002eb7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ecc: AND 00002ecd: EQ 00002ece: ISZERO 00002ecf: ISZERO 00002ed0: PUSH2 0x2ed8 00002ed3: JUMPI 00002ed4: PUSH1 0x00 00002ed6: DUP1 00002ed7: REVERT 00002ed8: JUMPDEST 00002ed9: PUSH1 0x00 00002edb: DUP2 00002edc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ef1: AND 00002ef2: EQ 00002ef3: ISZERO 00002ef4: DUP1 00002ef5: ISZERO 00002ef6: PUSH2 0x2f48 00002ef9: JUMPI 00002efa: POP 00002efb: PUSH1 0x08 00002efd: PUSH1 0x00 00002eff: DUP3 00002f00: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f15: AND 00002f16: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f2b: AND 00002f2c: DUP2 00002f2d: MSTORE 00002f2e: PUSH1 0x20 00002f30: ADD 00002f31: SWAP1 00002f32: DUP2 00002f33: MSTORE 00002f34: PUSH1 0x20 00002f36: ADD 00002f37: PUSH1 0x00 00002f39: KECCAK256 00002f3a: PUSH1 0x00 00002f3c: SWAP1 00002f3d: SLOAD 00002f3e: SWAP1 00002f3f: PUSH2 0x0100 00002f42: EXP 00002f43: SWAP1 00002f44: DIV 00002f45: PUSH1 0xff 00002f47: AND 00002f48: JUMPDEST 00002f49: ISZERO 00002f4a: ISZERO 00002f4b: PUSH2 0x2f53 00002f4e: JUMPI 00002f4f: PUSH1 0x00 00002f51: DUP1 00002f52: REVERT 00002f53: JUMPDEST 00002f54: PUSH1 0x00 00002f56: PUSH1 0x08 00002f58: PUSH1 0x00 00002f5a: DUP4 00002f5b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f70: AND 00002f71: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f86: AND 00002f87: DUP2 00002f88: MSTORE 00002f89: PUSH1 0x20 00002f8b: ADD 00002f8c: SWAP1 00002f8d: DUP2 00002f8e: MSTORE 00002f8f: PUSH1 0x20 00002f91: ADD 00002f92: PUSH1 0x00 00002f94: KECCAK256 00002f95: PUSH1 0x00 00002f97: PUSH2 0x0100 00002f9a: EXP 00002f9b: DUP2 00002f9c: SLOAD 00002f9d: DUP2 00002f9e: PUSH1 0xff 00002fa0: MUL 00002fa1: NOT 00002fa2: AND 00002fa3: SWAP1 00002fa4: DUP4 00002fa5: ISZERO 00002fa6: ISZERO 00002fa7: MUL 00002fa8: OR 00002fa9: SWAP1 00002faa: SSTORE 00002fab: POP 00002fac: POP 00002fad: JUMP 00002fae: JUMPDEST 00002faf: PUSH1 0x09 00002fb1: PUSH1 0x20 00002fb3: MSTORE 00002fb4: DUP2 00002fb5: PUSH1 0x00 00002fb7: MSTORE 00002fb8: PUSH1 0x40 00002fba: PUSH1 0x00 00002fbc: KECCAK256 00002fbd: PUSH1 0x20 00002fbf: MSTORE 00002fc0: DUP1 00002fc1: PUSH1 0x00 00002fc3: MSTORE 00002fc4: PUSH1 0x40 00002fc6: PUSH1 0x00 00002fc8: KECCAK256 00002fc9: PUSH1 0x00 00002fcb: SWAP2 00002fcc: POP 00002fcd: SWAP2 00002fce: POP 00002fcf: SWAP1 00002fd0: SLOAD 00002fd1: SWAP1 00002fd2: PUSH2 0x0100 00002fd5: EXP 00002fd6: SWAP1 00002fd7: DIV 00002fd8: PUSH1 0xff 00002fda: AND 00002fdb: DUP2 00002fdc: JUMP 00002fdd: JUMPDEST 00002fde: PUSH1 0x04 00002fe0: SLOAD 00002fe1: DUP2 00002fe2: JUMP 00002fe3: JUMPDEST 00002fe4: PUSH1 0x08 00002fe6: PUSH1 0x00 00002fe8: CALLER 00002fe9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ffe: AND 00002fff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003014: AND 00003015: DUP2 00003016: MSTORE 00003017: PUSH1 0x20 00003019: ADD 0000301a: SWAP1 0000301b: DUP2 0000301c: MSTORE 0000301d: PUSH1 0x20 0000301f: ADD 00003020: PUSH1 0x00 00003022: KECCAK256 00003023: PUSH1 0x00 00003025: SWAP1 00003026: SLOAD 00003027: SWAP1 00003028: PUSH2 0x0100 0000302b: EXP 0000302c: SWAP1 0000302d: DIV 0000302e: PUSH1 0xff 00003030: AND 00003031: ISZERO 00003032: ISZERO 00003033: PUSH2 0x303b 00003036: JUMPI 00003037: PUSH1 0x00 00003039: DUP1 0000303a: REVERT 0000303b: JUMPDEST 0000303c: PUSH2 0x30b4 0000303f: CALLVALUE 00003040: PUSH1 0x06 00003042: PUSH1 0x00 00003044: DUP1 00003045: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000305a: AND 0000305b: DUP2 0000305c: MSTORE 0000305d: PUSH1 0x20 0000305f: ADD 00003060: SWAP1 00003061: DUP2 00003062: MSTORE 00003063: PUSH1 0x20 00003065: ADD 00003066: PUSH1 0x00 00003068: KECCAK256 00003069: PUSH1 0x00 0000306b: CALLER 0000306c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003081: AND 00003082: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003097: AND 00003098: DUP2 00003099: MSTORE 0000309a: PUSH1 0x20 0000309c: ADD 0000309d: SWAP1 0000309e: DUP2 0000309f: MSTORE 000030a0: PUSH1 0x20 000030a2: ADD 000030a3: PUSH1 0x00 000030a5: KECCAK256 000030a6: SLOAD 000030a7: PUSH2 0x3973 000030aa: SWAP1 000030ab: SWAP2 000030ac: SWAP1 000030ad: PUSH4 0xffffffff 000030b2: AND 000030b3: JUMP 000030b4: JUMPDEST 000030b5: PUSH1 0x06 000030b7: PUSH1 0x00 000030b9: DUP1 000030ba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000030cf: AND 000030d0: DUP2 000030d1: MSTORE 000030d2: PUSH1 0x20 000030d4: ADD 000030d5: SWAP1 000030d6: DUP2 000030d7: MSTORE 000030d8: PUSH1 0x20 000030da: ADD 000030db: PUSH1 0x00 000030dd: KECCAK256 000030de: PUSH1 0x00 000030e0: CALLER 000030e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000030f6: AND 000030f7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000310c: AND 0000310d: DUP2 0000310e: MSTORE 0000310f: PUSH1 0x20 00003111: ADD 00003112: SWAP1 00003113: DUP2 00003114: MSTORE 00003115: PUSH1 0x20 00003117: ADD 00003118: PUSH1 0x00 0000311a: KECCAK256 0000311b: DUP2 0000311c: SWAP1 0000311d: SSTORE 0000311e: POP 0000311f: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7 00003140: PUSH1 0x00 00003142: CALLER 00003143: CALLVALUE 00003144: PUSH1 0x06 00003146: PUSH1 0x00 00003148: DUP1 00003149: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000315e: AND 0000315f: DUP2 00003160: MSTORE 00003161: PUSH1 0x20 00003163: ADD 00003164: SWAP1 00003165: DUP2 00003166: MSTORE 00003167: PUSH1 0x20 00003169: ADD 0000316a: PUSH1 0x00 0000316c: KECCAK256 0000316d: PUSH1 0x00 0000316f: CALLER 00003170: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003185: AND 00003186: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000319b: AND 0000319c: DUP2 0000319d: MSTORE 0000319e: PUSH1 0x20 000031a0: ADD 000031a1: SWAP1 000031a2: DUP2 000031a3: MSTORE 000031a4: PUSH1 0x20 000031a6: ADD 000031a7: PUSH1 0x00 000031a9: KECCAK256 000031aa: SLOAD 000031ab: PUSH1 0x40 000031ad: MLOAD 000031ae: DUP1 000031af: DUP6 000031b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000031c5: AND 000031c6: DUP2 000031c7: MSTORE 000031c8: PUSH1 0x20 000031ca: ADD 000031cb: DUP5 000031cc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000031e1: AND 000031e2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000031f7: AND 000031f8: DUP2 000031f9: MSTORE 000031fa: PUSH1 0x20 000031fc: ADD 000031fd: DUP4 000031fe: DUP2 000031ff: MSTORE 00003200: PUSH1 0x20 00003202: ADD 00003203: DUP3 00003204: DUP2 00003205: MSTORE 00003206: PUSH1 0x20 00003208: ADD 00003209: SWAP5 0000320a: POP 0000320b: POP 0000320c: POP 0000320d: POP 0000320e: POP 0000320f: PUSH1 0x40 00003211: MLOAD 00003212: DUP1 00003213: SWAP2 00003214: SUB 00003215: SWAP1 00003216: LOG1 00003217: JUMP 00003218: JUMPDEST 00003219: PUSH1 0x07 0000321b: PUSH1 0x20 0000321d: MSTORE 0000321e: DUP1 0000321f: PUSH1 0x00 00003221: MSTORE 00003222: PUSH1 0x40 00003224: PUSH1 0x00 00003226: KECCAK256 00003227: PUSH1 0x00 00003229: SWAP2 0000322a: POP 0000322b: SLOAD 0000322c: SWAP1 0000322d: PUSH2 0x0100 00003230: EXP 00003231: SWAP1 00003232: DIV 00003233: PUSH1 0xff 00003235: AND 00003236: DUP2 00003237: JUMP 00003238: JUMPDEST 00003239: PUSH1 0x00 0000323b: DUP1 0000323c: SWAP1 0000323d: SLOAD 0000323e: SWAP1 0000323f: PUSH2 0x0100 00003242: EXP 00003243: SWAP1 00003244: DIV 00003245: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000325a: AND 0000325b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003270: AND 00003271: CALLER 00003272: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003287: AND 00003288: EQ 00003289: ISZERO 0000328a: ISZERO 0000328b: PUSH2 0x3293 0000328e: JUMPI 0000328f: PUSH1 0x00 00003291: DUP1 00003292: REVERT 00003293: JUMPDEST 00003294: DUP1 00003295: PUSH1 0x02 00003297: PUSH1 0x00 00003299: PUSH2 0x0100 0000329c: EXP 0000329d: DUP2 0000329e: SLOAD 0000329f: DUP2 000032a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000032b5: MUL 000032b6: NOT 000032b7: AND 000032b8: SWAP1 000032b9: DUP4 000032ba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000032cf: AND 000032d0: MUL 000032d1: OR 000032d2: SWAP1 000032d3: SSTORE 000032d4: POP 000032d5: POP 000032d6: JUMP 000032d7: JUMPDEST 000032d8: PUSH1 0x02 000032da: PUSH1 0x00 000032dc: SWAP1 000032dd: SLOAD 000032de: SWAP1 000032df: PUSH2 0x0100 000032e2: EXP 000032e3: SWAP1 000032e4: DIV 000032e5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000032fa: AND 000032fb: DUP2 000032fc: JUMP 000032fd: JUMPDEST 000032fe: PUSH1 0x08 00003300: PUSH1 0x20 00003302: MSTORE 00003303: DUP1 00003304: PUSH1 0x00 00003306: MSTORE 00003307: PUSH1 0x40 00003309: PUSH1 0x00 0000330b: KECCAK256 0000330c: PUSH1 0x00 0000330e: SWAP2 0000330f: POP 00003310: SLOAD 00003311: SWAP1 00003312: PUSH2 0x0100 00003315: EXP 00003316: SWAP1 00003317: DIV 00003318: PUSH1 0xff 0000331a: AND 0000331b: DUP2 0000331c: JUMP 0000331d: JUMPDEST 0000331e: PUSH1 0x00 00003320: PUSH1 0x06 00003322: PUSH1 0x00 00003324: DUP5 00003325: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000333a: AND 0000333b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003350: AND 00003351: DUP2 00003352: MSTORE 00003353: PUSH1 0x20 00003355: ADD 00003356: SWAP1 00003357: DUP2 00003358: MSTORE 00003359: PUSH1 0x20 0000335b: ADD 0000335c: PUSH1 0x00 0000335e: KECCAK256 0000335f: PUSH1 0x00 00003361: DUP4 00003362: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003377: AND 00003378: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000338d: AND 0000338e: DUP2 0000338f: MSTORE 00003390: PUSH1 0x20 00003392: ADD 00003393: SWAP1 00003394: DUP2 00003395: MSTORE 00003396: PUSH1 0x20 00003398: ADD 00003399: PUSH1 0x00 0000339b: KECCAK256 0000339c: SLOAD 0000339d: SWAP1 0000339e: POP 0000339f: SWAP3 000033a0: SWAP2 000033a1: POP 000033a2: POP 000033a3: JUMP 000033a4: JUMPDEST 000033a5: PUSH1 0x00 000033a7: DUP1 000033a8: SWAP1 000033a9: SLOAD 000033aa: SWAP1 000033ab: PUSH2 0x0100 000033ae: EXP 000033af: SWAP1 000033b0: DIV 000033b1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000033c6: AND 000033c7: DUP2 000033c8: JUMP 000033c9: JUMPDEST 000033ca: PUSH1 0x00 000033cc: DUP1 000033cd: PUSH1 0x08 000033cf: PUSH1 0x00 000033d1: DUP8 000033d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000033e7: AND 000033e8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000033fd: AND 000033fe: DUP2 000033ff: MSTORE 00003400: PUSH1 0x20 00003402: ADD 00003403: SWAP1 00003404: DUP2 00003405: MSTORE 00003406: PUSH1 0x20 00003408: ADD 00003409: PUSH1 0x00 0000340b: KECCAK256 0000340c: PUSH1 0x00 0000340e: SWAP1 0000340f: SLOAD 00003410: SWAP1 00003411: PUSH2 0x0100 00003414: EXP 00003415: SWAP1 00003416: DIV 00003417: PUSH1 0xff 00003419: AND 0000341a: ISZERO 0000341b: ISZERO 0000341c: PUSH2 0x3424 0000341f: JUMPI 00003420: PUSH1 0x00 00003422: DUP1 00003423: REVERT 00003424: JUMPDEST 00003425: PUSH1 0x07 00003427: PUSH1 0x00 00003429: DUP14 0000342a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000343f: AND 00003440: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003455: AND 00003456: DUP2 00003457: MSTORE 00003458: PUSH1 0x20 0000345a: ADD 0000345b: SWAP1 0000345c: DUP2 0000345d: MSTORE 0000345e: PUSH1 0x20 00003460: ADD 00003461: PUSH1 0x00 00003463: KECCAK256 00003464: PUSH1 0x00 00003466: SWAP1 00003467: SLOAD 00003468: SWAP1 00003469: PUSH2 0x0100 0000346c: EXP 0000346d: SWAP1 0000346e: DIV 0000346f: PUSH1 0xff 00003471: AND 00003472: DUP1 00003473: ISZERO 00003474: PUSH2 0x34c6 00003477: JUMPI 00003478: POP 00003479: PUSH1 0x07 0000347b: PUSH1 0x00 0000347d: DUP12 0000347e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003493: AND 00003494: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000034a9: AND 000034aa: DUP2 000034ab: MSTORE 000034ac: PUSH1 0x20 000034ae: ADD 000034af: SWAP1 000034b0: DUP2 000034b1: MSTORE 000034b2: PUSH1 0x20 000034b4: ADD 000034b5: PUSH1 0x00 000034b7: KECCAK256 000034b8: PUSH1 0x00 000034ba: SWAP1 000034bb: SLOAD 000034bc: SWAP1 000034bd: PUSH2 0x0100 000034c0: EXP 000034c1: SWAP1 000034c2: DIV 000034c3: PUSH1 0xff 000034c5: AND 000034c6: JUMPDEST 000034c7: ISZERO 000034c8: ISZERO 000034c9: PUSH2 0x34d1 000034cc: JUMPI 000034cd: PUSH1 0x00 000034cf: DUP1 000034d0: REVERT 000034d1: JUMPDEST 000034d2: ADDRESS 000034d3: DUP13 000034d4: DUP13 000034d5: DUP13 000034d6: DUP13 000034d7: DUP13 000034d8: DUP13 000034d9: PUSH1 0x40 000034db: MLOAD 000034dc: DUP1 000034dd: DUP9 000034de: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000034f3: AND 000034f4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003509: AND 0000350a: PUSH13 0x01000000000000000000000000 00003518: MUL 00003519: DUP2 0000351a: MSTORE 0000351b: PUSH1 0x14 0000351d: ADD 0000351e: DUP8 0000351f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003534: AND 00003535: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000354a: AND 0000354b: PUSH13 0x01000000000000000000000000 00003559: MUL 0000355a: DUP2 0000355b: MSTORE 0000355c: PUSH1 0x14 0000355e: ADD 0000355f: DUP7 00003560: DUP2 00003561: MSTORE 00003562: PUSH1 0x20 00003564: ADD 00003565: DUP6 00003566: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000357b: AND 0000357c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003591: AND 00003592: PUSH13 0x01000000000000000000000000 000035a0: MUL 000035a1: DUP2 000035a2: MSTORE 000035a3: PUSH1 0x14 000035a5: ADD 000035a6: DUP5 000035a7: DUP2 000035a8: MSTORE 000035a9: PUSH1 0x20 000035ab: ADD 000035ac: DUP4 000035ad: DUP2 000035ae: MSTORE 000035af: PUSH1 0x20 000035b1: ADD 000035b2: DUP3 000035b3: DUP2 000035b4: MSTORE 000035b5: PUSH1 0x20 000035b7: ADD 000035b8: SWAP8 000035b9: POP 000035ba: POP 000035bb: POP 000035bc: POP 000035bd: POP 000035be: POP 000035bf: POP 000035c0: POP 000035c1: PUSH1 0x40 000035c3: MLOAD 000035c4: DUP1 000035c5: SWAP2 000035c6: SUB 000035c7: SWAP1 000035c8: KECCAK256 000035c9: SWAP1 000035ca: POP 000035cb: PUSH2 0x35d7 000035ce: DUP2 000035cf: DUP8 000035d0: DUP8 000035d1: DUP8 000035d2: DUP8 000035d3: PUSH2 0x3805 000035d6: JUMP 000035d7: JUMPDEST 000035d8: DUP1 000035d9: ISZERO 000035da: PUSH2 0x35e3 000035dd: JUMPI 000035de: POP 000035df: DUP8 000035e0: NUMBER 000035e1: GT 000035e2: ISZERO 000035e3: JUMPDEST 000035e4: ISZERO 000035e5: ISZERO 000035e6: PUSH2 0x35f2 000035e9: JUMPI 000035ea: PUSH1 0x00 000035ec: SWAP2 000035ed: POP 000035ee: PUSH2 0x37f6 000035f1: JUMP 000035f2: JUMPDEST 000035f3: PUSH2 0x368a 000035f6: DUP10 000035f7: PUSH2 0x367c 000035fa: PUSH1 0x06 000035fc: PUSH1 0x00 000035fe: DUP15 000035ff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003614: AND 00003615: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000362a: AND 0000362b: DUP2 0000362c: MSTORE 0000362d: PUSH1 0x20 0000362f: ADD 00003630: SWAP1 00003631: DUP2 00003632: MSTORE 00003633: PUSH1 0x20 00003635: ADD 00003636: PUSH1 0x00 00003638: KECCAK256 00003639: PUSH1 0x00 0000363b: DUP11 0000363c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003651: AND 00003652: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003667: AND 00003668: DUP2 00003669: MSTORE 0000366a: PUSH1 0x20 0000366c: ADD 0000366d: SWAP1 0000366e: DUP2 0000366f: MSTORE 00003670: PUSH1 0x20 00003672: ADD 00003673: PUSH1 0x00 00003675: KECCAK256 00003676: SLOAD 00003677: DUP15 00003678: PUSH2 0x41c4 0000367b: JUMP 0000367c: JUMPDEST 0000367d: PUSH2 0x41ff 00003680: SWAP1 00003681: SWAP2 00003682: SWAP1 00003683: PUSH4 0xffffffff 00003688: AND 00003689: JUMP 0000368a: JUMPDEST 0000368b: PUSH2 0x36ec 0000368e: DUP13 0000368f: PUSH1 0x0a 00003691: PUSH1 0x00 00003693: DUP11 00003694: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000036a9: AND 000036aa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000036bf: AND 000036c0: DUP2 000036c1: MSTORE 000036c2: PUSH1 0x20 000036c4: ADD 000036c5: SWAP1 000036c6: DUP2 000036c7: MSTORE 000036c8: PUSH1 0x20 000036ca: ADD 000036cb: PUSH1 0x00 000036cd: KECCAK256 000036ce: PUSH1 0x00 000036d0: DUP6 000036d1: PUSH1 0x00 000036d3: NOT 000036d4: AND 000036d5: PUSH1 0x00 000036d7: NOT 000036d8: AND 000036d9: DUP2 000036da: MSTORE 000036db: PUSH1 0x20 000036dd: ADD 000036de: SWAP1 000036df: DUP2 000036e0: MSTORE 000036e1: PUSH1 0x20 000036e3: ADD 000036e4: PUSH1 0x00 000036e6: KECCAK256 000036e7: SLOAD 000036e8: PUSH2 0x421a 000036eb: JUMP 000036ec: JUMPDEST 000036ed: LT 000036ee: ISZERO 000036ef: PUSH2 0x375b 000036f2: JUMPI 000036f3: PUSH2 0x3754 000036f6: DUP12 000036f7: PUSH1 0x0a 000036f9: PUSH1 0x00 000036fb: DUP10 000036fc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003711: AND 00003712: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003727: AND 00003728: DUP2 00003729: MSTORE 0000372a: PUSH1 0x20 0000372c: ADD 0000372d: SWAP1 0000372e: DUP2 0000372f: MSTORE 00003730: PUSH1 0x20 00003732: ADD 00003733: PUSH1 0x00 00003735: KECCAK256 00003736: PUSH1 0x00 00003738: DUP5 00003739: PUSH1 0x00 0000373b: NOT 0000373c: AND 0000373d: PUSH1 0x00 0000373f: NOT 00003740: AND 00003741: DUP2 00003742: MSTORE 00003743: PUSH1 0x20 00003745: ADD 00003746: SWAP1 00003747: DUP2 00003748: MSTORE 00003749: PUSH1 0x20 0000374b: ADD 0000374c: PUSH1 0x00 0000374e: KECCAK256 0000374f: SLOAD 00003750: PUSH2 0x421a 00003753: JUMP 00003754: JUMPDEST 00003755: SWAP2 00003756: POP 00003757: PUSH2 0x37f6 0000375a: JUMP 0000375b: JUMPDEST 0000375c: PUSH2 0x37f3 0000375f: DUP10 00003760: PUSH2 0x37e5 00003763: PUSH1 0x06 00003765: PUSH1 0x00 00003767: DUP15 00003768: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000377d: AND 0000377e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003793: AND 00003794: DUP2 00003795: MSTORE 00003796: PUSH1 0x20 00003798: ADD 00003799: SWAP1 0000379a: DUP2 0000379b: MSTORE 0000379c: PUSH1 0x20 0000379e: ADD 0000379f: PUSH1 0x00 000037a1: KECCAK256 000037a2: PUSH1 0x00 000037a4: DUP11 000037a5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000037ba: AND 000037bb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000037d0: AND 000037d1: DUP2 000037d2: MSTORE 000037d3: PUSH1 0x20 000037d5: ADD 000037d6: SWAP1 000037d7: DUP2 000037d8: MSTORE 000037d9: PUSH1 0x20 000037db: ADD 000037dc: PUSH1 0x00 000037de: KECCAK256 000037df: SLOAD 000037e0: DUP15 000037e1: PUSH2 0x41c4 000037e4: JUMP 000037e5: JUMPDEST 000037e6: PUSH2 0x41ff 000037e9: SWAP1 000037ea: SWAP2 000037eb: SWAP1 000037ec: PUSH4 0xffffffff 000037f1: AND 000037f2: JUMP 000037f3: JUMPDEST 000037f4: SWAP2 000037f5: POP 000037f6: JUMPDEST 000037f7: POP 000037f8: SWAP11 000037f9: SWAP10 000037fa: POP 000037fb: POP 000037fc: POP 000037fd: POP 000037fe: POP 000037ff: POP 00003800: POP 00003801: POP 00003802: POP 00003803: POP 00003804: JUMP 00003805: JUMPDEST 00003806: PUSH1 0x00 00003808: PUSH1 0x09 0000380a: PUSH1 0x00 0000380c: DUP7 0000380d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003822: AND 00003823: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003838: AND 00003839: DUP2 0000383a: MSTORE 0000383b: PUSH1 0x20 0000383d: ADD 0000383e: SWAP1 0000383f: DUP2 00003840: MSTORE 00003841: PUSH1 0x20 00003843: ADD 00003844: PUSH1 0x00 00003846: KECCAK256 00003847: PUSH1 0x00 00003849: DUP8 0000384a: PUSH1 0x00 0000384c: NOT 0000384d: AND 0000384e: PUSH1 0x00 00003850: NOT 00003851: AND 00003852: DUP2 00003853: MSTORE 00003854: PUSH1 0x20 00003856: ADD 00003857: SWAP1 00003858: DUP2 00003859: MSTORE 0000385a: PUSH1 0x20 0000385c: ADD 0000385d: PUSH1 0x00 0000385f: KECCAK256 00003860: PUSH1 0x00 00003862: SWAP1 00003863: SLOAD 00003864: SWAP1 00003865: PUSH2 0x0100 00003868: EXP 00003869: SWAP1 0000386a: DIV 0000386b: PUSH1 0xff 0000386d: AND 0000386e: DUP1 0000386f: PUSH2 0x3968 00003872: JUMPI 00003873: POP 00003874: DUP5 00003875: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000388a: AND 0000388b: PUSH1 0x01 0000388d: DUP8 0000388e: PUSH1 0x40 00003890: MLOAD 00003891: DUP1 00003892: DUP1 00003893: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000 000038b4: DUP2 000038b5: MSTORE 000038b6: POP 000038b7: PUSH1 0x1c 000038b9: ADD 000038ba: DUP3 000038bb: PUSH1 0x00 000038bd: NOT 000038be: AND 000038bf: PUSH1 0x00 000038c1: NOT 000038c2: AND 000038c3: DUP2 000038c4: MSTORE 000038c5: PUSH1 0x20 000038c7: ADD 000038c8: SWAP2 000038c9: POP 000038ca: POP 000038cb: PUSH1 0x40 000038cd: MLOAD 000038ce: DUP1 000038cf: SWAP2 000038d0: SUB 000038d1: SWAP1 000038d2: KECCAK256 000038d3: DUP7 000038d4: DUP7 000038d5: DUP7 000038d6: PUSH1 0x40 000038d8: MLOAD 000038d9: PUSH1 0x00 000038db: DUP2 000038dc: MSTORE 000038dd: PUSH1 0x20 000038df: ADD 000038e0: PUSH1 0x40 000038e2: MSTORE 000038e3: PUSH1 0x40 000038e5: MLOAD 000038e6: DUP1 000038e7: DUP6 000038e8: PUSH1 0x00 000038ea: NOT 000038eb: AND 000038ec: PUSH1 0x00 000038ee: NOT 000038ef: AND 000038f0: DUP2 000038f1: MSTORE 000038f2: PUSH1 0x20 000038f4: ADD 000038f5: DUP5 000038f6: PUSH1 0xff 000038f8: AND 000038f9: PUSH1 0xff 000038fb: AND 000038fc: DUP2 000038fd: MSTORE 000038fe: PUSH1 0x20 00003900: ADD 00003901: DUP4 00003902: PUSH1 0x00 00003904: NOT 00003905: AND 00003906: PUSH1 0x00 00003908: NOT 00003909: AND 0000390a: DUP2 0000390b: MSTORE 0000390c: PUSH1 0x20 0000390e: ADD 0000390f: DUP3 00003910: PUSH1 0x00 00003912: NOT 00003913: AND 00003914: PUSH1 0x00 00003916: NOT 00003917: AND 00003918: DUP2 00003919: MSTORE 0000391a: PUSH1 0x20 0000391c: ADD 0000391d: SWAP5 0000391e: POP 0000391f: POP 00003920: POP 00003921: POP 00003922: POP 00003923: PUSH1 0x20 00003925: PUSH1 0x40 00003927: MLOAD 00003928: PUSH1 0x20 0000392a: DUP2 0000392b: SUB 0000392c: SWAP1 0000392d: DUP1 0000392e: DUP5 0000392f: SUB 00003930: SWAP1 00003931: PUSH1 0x00 00003933: DUP7 00003934: GAS 00003935: CALL 00003936: ISZERO 00003937: DUP1 00003938: ISZERO 00003939: PUSH2 0x3946 0000393c: JUMPI 0000393d: RETURNDATASIZE 0000393e: PUSH1 0x00 00003940: DUP1 00003941: RETURNDATACOPY 00003942: RETURNDATASIZE 00003943: PUSH1 0x00 00003945: REVERT 00003946: JUMPDEST 00003947: POP 00003948: POP 00003949: POP 0000394a: PUSH1 0x20 0000394c: PUSH1 0x40 0000394e: MLOAD 0000394f: SUB 00003950: MLOAD 00003951: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003966: AND 00003967: EQ 00003968: JUMPDEST 00003969: SWAP1 0000396a: POP 0000396b: SWAP6 0000396c: SWAP5 0000396d: POP 0000396e: POP 0000396f: POP 00003970: POP 00003971: POP 00003972: JUMP 00003973: JUMPDEST 00003974: PUSH1 0x00 00003976: DUP1 00003977: DUP3 00003978: DUP5 00003979: ADD 0000397a: SWAP1 0000397b: POP 0000397c: DUP4 0000397d: DUP2 0000397e: LT 0000397f: ISZERO 00003980: ISZERO 00003981: ISZERO 00003982: PUSH2 0x3987 00003985: JUMPI 00003986: INVALID 00003987: JUMPDEST 00003988: DUP1 00003989: SWAP2 0000398a: POP 0000398b: POP 0000398c: SWAP3 0000398d: SWAP2 0000398e: POP 0000398f: POP 00003990: JUMP 00003991: JUMPDEST 00003992: PUSH1 0x00 00003994: DUP1 00003995: PUSH1 0x00 00003997: DUP1 00003998: PUSH2 0x39c6 0000399b: PUSH8 0x0de0b6b3a7640000 000039a4: PUSH2 0x39b8 000039a7: PUSH1 0x03 000039a9: SLOAD 000039aa: DUP9 000039ab: PUSH2 0x41c4 000039ae: SWAP1 000039af: SWAP2 000039b0: SWAP1 000039b1: PUSH4 0xffffffff 000039b6: AND 000039b7: JUMP 000039b8: JUMPDEST 000039b9: PUSH2 0x41ff 000039bc: SWAP1 000039bd: SWAP2 000039be: SWAP1 000039bf: PUSH4 0xffffffff 000039c4: AND 000039c5: JUMP 000039c6: JUMPDEST 000039c7: SWAP4 000039c8: POP 000039c9: PUSH2 0x39f7 000039cc: PUSH8 0x0de0b6b3a7640000 000039d5: PUSH2 0x39e9 000039d8: PUSH1 0x04 000039da: SLOAD 000039db: DUP9 000039dc: PUSH2 0x41c4 000039df: SWAP1 000039e0: SWAP2 000039e1: SWAP1 000039e2: PUSH4 0xffffffff 000039e7: AND 000039e8: JUMP 000039e9: JUMPDEST 000039ea: PUSH2 0x41ff 000039ed: SWAP1 000039ee: SWAP2 000039ef: SWAP1 000039f0: PUSH4 0xffffffff 000039f5: AND 000039f6: JUMP 000039f7: JUMPDEST 000039f8: SWAP3 000039f9: POP 000039fa: PUSH1 0x00 000039fc: SWAP2 000039fd: POP 000039fe: PUSH1 0x00 00003a00: PUSH1 0x02 00003a02: PUSH1 0x00 00003a04: SWAP1 00003a05: SLOAD 00003a06: SWAP1 00003a07: PUSH2 0x0100 00003a0a: EXP 00003a0b: SWAP1 00003a0c: DIV 00003a0d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003a22: AND 00003a23: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003a38: AND 00003a39: EQ 00003a3a: ISZERO 00003a3b: ISZERO 00003a3c: PUSH2 0x3b87 00003a3f: JUMPI 00003a40: PUSH1 0x02 00003a42: PUSH1 0x00 00003a44: SWAP1 00003a45: SLOAD 00003a46: SWAP1 00003a47: PUSH2 0x0100 00003a4a: EXP 00003a4b: SWAP1 00003a4c: DIV 00003a4d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003a62: AND 00003a63: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003a78: AND 00003a79: PUSH4 0x1cbd0519 00003a7e: DUP8 00003a7f: PUSH1 0x40 00003a81: MLOAD 00003a82: DUP3 00003a83: PUSH4 0xffffffff 00003a88: AND 00003a89: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00003aa7: MUL 00003aa8: DUP2 00003aa9: MSTORE 00003aaa: PUSH1 0x04 00003aac: ADD 00003aad: DUP1 00003aae: DUP3 00003aaf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003ac4: AND 00003ac5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003ada: AND 00003adb: DUP2 00003adc: MSTORE 00003add: PUSH1 0x20 00003adf: ADD 00003ae0: SWAP2 00003ae1: POP 00003ae2: POP 00003ae3: PUSH1 0x20 00003ae5: PUSH1 0x40 00003ae7: MLOAD 00003ae8: DUP1 00003ae9: DUP4 00003aea: SUB 00003aeb: DUP2 00003aec: PUSH1 0x00 00003aee: DUP8 00003aef: DUP1 00003af0: EXTCODESIZE 00003af1: ISZERO 00003af2: DUP1 00003af3: ISZERO 00003af4: PUSH2 0x3afc 00003af7: JUMPI 00003af8: PUSH1 0x00 00003afa: DUP1 00003afb: REVERT 00003afc: JUMPDEST 00003afd: POP 00003afe: GAS 00003aff: CALL 00003b00: ISZERO 00003b01: DUP1 00003b02: ISZERO 00003b03: PUSH2 0x3b10 00003b06: JUMPI 00003b07: RETURNDATASIZE 00003b08: PUSH1 0x00 00003b0a: DUP1 00003b0b: RETURNDATACOPY 00003b0c: RETURNDATASIZE 00003b0d: PUSH1 0x00 00003b0f: REVERT 00003b10: JUMPDEST 00003b11: POP 00003b12: POP 00003b13: POP 00003b14: POP 00003b15: PUSH1 0x40 00003b17: MLOAD 00003b18: RETURNDATASIZE 00003b19: PUSH1 0x20 00003b1b: DUP2 00003b1c: LT 00003b1d: ISZERO 00003b1e: PUSH2 0x3b26 00003b21: JUMPI 00003b22: PUSH1 0x00 00003b24: DUP1 00003b25: REVERT 00003b26: JUMPDEST 00003b27: DUP2 00003b28: ADD 00003b29: SWAP1 00003b2a: DUP1 00003b2b: DUP1 00003b2c: MLOAD 00003b2d: SWAP1 00003b2e: PUSH1 0x20 00003b30: ADD 00003b31: SWAP1 00003b32: SWAP3 00003b33: SWAP2 00003b34: SWAP1 00003b35: POP 00003b36: POP 00003b37: POP 00003b38: SWAP1 00003b39: POP 00003b3a: PUSH1 0x01 00003b3c: DUP2 00003b3d: EQ 00003b3e: ISZERO 00003b3f: PUSH2 0x3b78 00003b42: JUMPI 00003b43: PUSH2 0x3b71 00003b46: PUSH8 0x0de0b6b3a7640000 00003b4f: PUSH2 0x3b63 00003b52: PUSH1 0x05 00003b54: SLOAD 00003b55: DUP9 00003b56: PUSH2 0x41c4 00003b59: SWAP1 00003b5a: SWAP2 00003b5b: SWAP1 00003b5c: PUSH4 0xffffffff 00003b61: AND 00003b62: JUMP 00003b63: JUMPDEST 00003b64: PUSH2 0x41ff 00003b67: SWAP1 00003b68: SWAP2 00003b69: SWAP1 00003b6a: PUSH4 0xffffffff 00003b6f: AND 00003b70: JUMP 00003b71: JUMPDEST 00003b72: SWAP2 00003b73: POP 00003b74: PUSH2 0x3b86 00003b77: JUMP 00003b78: JUMPDEST 00003b79: PUSH1 0x02 00003b7b: DUP2 00003b7c: EQ 00003b7d: ISZERO 00003b7e: PUSH2 0x3b85 00003b81: JUMPI 00003b82: DUP3 00003b83: SWAP2 00003b84: POP 00003b85: JUMPDEST 00003b86: JUMPDEST 00003b87: JUMPDEST 00003b88: PUSH2 0x3c28 00003b8b: PUSH2 0x3b9d 00003b8e: DUP5 00003b8f: DUP8 00003b90: PUSH2 0x3973 00003b93: SWAP1 00003b94: SWAP2 00003b95: SWAP1 00003b96: PUSH4 0xffffffff 00003b9b: AND 00003b9c: JUMP 00003b9d: JUMPDEST 00003b9e: PUSH1 0x06 00003ba0: PUSH1 0x00 00003ba2: DUP14 00003ba3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003bb8: AND 00003bb9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003bce: AND 00003bcf: DUP2 00003bd0: MSTORE 00003bd1: PUSH1 0x20 00003bd3: ADD 00003bd4: SWAP1 00003bd5: DUP2 00003bd6: MSTORE 00003bd7: PUSH1 0x20 00003bd9: ADD 00003bda: PUSH1 0x00 00003bdc: KECCAK256 00003bdd: PUSH1 0x00 00003bdf: CALLER 00003be0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003bf5: AND 00003bf6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003c0b: AND 00003c0c: DUP2 00003c0d: MSTORE 00003c0e: PUSH1 0x20 00003c10: ADD 00003c11: SWAP1 00003c12: DUP2 00003c13: MSTORE 00003c14: PUSH1 0x20 00003c16: ADD 00003c17: PUSH1 0x00 00003c19: KECCAK256 00003c1a: SLOAD 00003c1b: PUSH2 0x421a 00003c1e: SWAP1 00003c1f: SWAP2 00003c20: SWAP1 00003c21: PUSH4 0xffffffff 00003c26: AND 00003c27: JUMP 00003c28: JUMPDEST 00003c29: PUSH1 0x06 00003c2b: PUSH1 0x00 00003c2d: DUP13 00003c2e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003c43: AND 00003c44: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003c59: AND 00003c5a: DUP2 00003c5b: MSTORE 00003c5c: PUSH1 0x20 00003c5e: ADD 00003c5f: SWAP1 00003c60: DUP2 00003c61: MSTORE 00003c62: PUSH1 0x20 00003c64: ADD 00003c65: PUSH1 0x00 00003c67: KECCAK256 00003c68: PUSH1 0x00 00003c6a: CALLER 00003c6b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003c80: AND 00003c81: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003c96: AND 00003c97: DUP2 00003c98: MSTORE 00003c99: PUSH1 0x20 00003c9b: ADD 00003c9c: SWAP1 00003c9d: DUP2 00003c9e: MSTORE 00003c9f: PUSH1 0x20 00003ca1: ADD 00003ca2: PUSH1 0x00 00003ca4: KECCAK256 00003ca5: DUP2 00003ca6: SWAP1 00003ca7: SSTORE 00003ca8: POP 00003ca9: PUSH2 0x3d5b 00003cac: PUSH2 0x3cd0 00003caf: DUP6 00003cb0: PUSH2 0x3cc2 00003cb3: DUP6 00003cb4: DUP10 00003cb5: PUSH2 0x3973 00003cb8: SWAP1 00003cb9: SWAP2 00003cba: SWAP1 00003cbb: PUSH4 0xffffffff 00003cc0: AND 00003cc1: JUMP 00003cc2: JUMPDEST 00003cc3: PUSH2 0x421a 00003cc6: SWAP1 00003cc7: SWAP2 00003cc8: SWAP1 00003cc9: PUSH4 0xffffffff 00003cce: AND 00003ccf: JUMP 00003cd0: JUMPDEST 00003cd1: PUSH1 0x06 00003cd3: PUSH1 0x00 00003cd5: DUP14 00003cd6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003ceb: AND 00003cec: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003d01: AND 00003d02: DUP2 00003d03: MSTORE 00003d04: PUSH1 0x20 00003d06: ADD 00003d07: SWAP1 00003d08: DUP2 00003d09: MSTORE 00003d0a: PUSH1 0x20 00003d0c: ADD 00003d0d: PUSH1 0x00 00003d0f: KECCAK256 00003d10: PUSH1 0x00 00003d12: DUP10 00003d13: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003d28: AND 00003d29: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003d3e: AND 00003d3f: DUP2 00003d40: MSTORE 00003d41: PUSH1 0x20 00003d43: ADD 00003d44: SWAP1 00003d45: DUP2 00003d46: MSTORE 00003d47: PUSH1 0x20 00003d49: ADD 00003d4a: PUSH1 0x00 00003d4c: KECCAK256 00003d4d: SLOAD 00003d4e: PUSH2 0x3973 00003d51: SWAP1 00003d52: SWAP2 00003d53: SWAP1 00003d54: PUSH4 0xffffffff 00003d59: AND 00003d5a: JUMP 00003d5b: JUMPDEST 00003d5c: PUSH1 0x06 00003d5e: PUSH1 0x00 00003d60: DUP13 00003d61: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003d76: AND 00003d77: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003d8c: AND 00003d8d: DUP2 00003d8e: MSTORE 00003d8f: PUSH1 0x20 00003d91: ADD 00003d92: SWAP1 00003d93: DUP2 00003d94: MSTORE 00003d95: PUSH1 0x20 00003d97: ADD 00003d98: PUSH1 0x00 00003d9a: KECCAK256 00003d9b: PUSH1 0x00 00003d9d: DUP9 00003d9e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003db3: AND 00003db4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003dc9: AND 00003dca: DUP2 00003dcb: MSTORE 00003dcc: PUSH1 0x20 00003dce: ADD 00003dcf: SWAP1 00003dd0: DUP2 00003dd1: MSTORE 00003dd2: PUSH1 0x20 00003dd4: ADD 00003dd5: PUSH1 0x00 00003dd7: KECCAK256 00003dd8: DUP2 00003dd9: SWAP1 00003dda: SSTORE 00003ddb: POP 00003ddc: PUSH2 0x3eb0 00003ddf: PUSH2 0x3e03 00003de2: DUP4 00003de3: PUSH2 0x3df5 00003de6: DUP7 00003de7: DUP9 00003de8: PUSH2 0x3973 00003deb: SWAP1 00003dec: SWAP2 00003ded: SWAP1 00003dee: PUSH4 0xffffffff 00003df3: AND 00003df4: JUMP 00003df5: JUMPDEST 00003df6: PUSH2 0x421a 00003df9: SWAP1 00003dfa: SWAP2 00003dfb: SWAP1 00003dfc: PUSH4 0xffffffff 00003e01: AND 00003e02: JUMP 00003e03: JUMPDEST 00003e04: PUSH1 0x06 00003e06: PUSH1 0x00 00003e08: DUP14 00003e09: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003e1e: AND 00003e1f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003e34: AND 00003e35: DUP2 00003e36: MSTORE 00003e37: PUSH1 0x20 00003e39: ADD 00003e3a: SWAP1 00003e3b: DUP2 00003e3c: MSTORE 00003e3d: PUSH1 0x20 00003e3f: ADD 00003e40: PUSH1 0x00 00003e42: KECCAK256 00003e43: PUSH1 0x00 00003e45: PUSH1 0x01 00003e47: PUSH1 0x00 00003e49: SWAP1 00003e4a: SLOAD 00003e4b: SWAP1 00003e4c: PUSH2 0x0100 00003e4f: EXP 00003e50: SWAP1 00003e51: DIV 00003e52: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003e67: AND 00003e68: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003e7d: AND 00003e7e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003e93: AND 00003e94: DUP2 00003e95: MSTORE 00003e96: PUSH1 0x20 00003e98: ADD 00003e99: SWAP1 00003e9a: DUP2 00003e9b: MSTORE 00003e9c: PUSH1 0x20 00003e9e: ADD 00003e9f: PUSH1 0x00 00003ea1: KECCAK256 00003ea2: SLOAD 00003ea3: PUSH2 0x3973 00003ea6: SWAP1 00003ea7: SWAP2 00003ea8: SWAP1 00003ea9: PUSH4 0xffffffff 00003eae: AND 00003eaf: JUMP 00003eb0: JUMPDEST 00003eb1: PUSH1 0x06 00003eb3: PUSH1 0x00 00003eb5: DUP13 00003eb6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003ecb: AND 00003ecc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003ee1: AND 00003ee2: DUP2 00003ee3: MSTORE 00003ee4: PUSH1 0x20 00003ee6: ADD 00003ee7: SWAP1 00003ee8: DUP2 00003ee9: MSTORE 00003eea: PUSH1 0x20 00003eec: ADD 00003eed: PUSH1 0x00 00003eef: KECCAK256 00003ef0: PUSH1 0x00 00003ef2: PUSH1 0x01 00003ef4: PUSH1 0x00 00003ef6: SWAP1 00003ef7: SLOAD 00003ef8: SWAP1 00003ef9: PUSH2 0x0100 00003efc: EXP 00003efd: SWAP1 00003efe: DIV 00003eff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003f14: AND 00003f15: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003f2a: AND 00003f2b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003f40: AND 00003f41: DUP2 00003f42: MSTORE 00003f43: PUSH1 0x20 00003f45: ADD 00003f46: SWAP1 00003f47: DUP2 00003f48: MSTORE 00003f49: PUSH1 0x20 00003f4b: ADD 00003f4c: PUSH1 0x00 00003f4e: KECCAK256 00003f4f: DUP2 00003f50: SWAP1 00003f51: SSTORE 00003f52: POP 00003f53: PUSH2 0x4005 00003f56: PUSH2 0x3f7a 00003f59: DUP11 00003f5a: PUSH2 0x3f6c 00003f5d: DUP9 00003f5e: DUP12 00003f5f: PUSH2 0x41c4 00003f62: SWAP1 00003f63: SWAP2 00003f64: SWAP1 00003f65: PUSH4 0xffffffff 00003f6a: AND 00003f6b: JUMP 00003f6c: JUMPDEST 00003f6d: PUSH2 0x41ff 00003f70: SWAP1 00003f71: SWAP2 00003f72: SWAP1 00003f73: PUSH4 0xffffffff 00003f78: AND 00003f79: JUMP 00003f7a: JUMPDEST 00003f7b: PUSH1 0x06 00003f7d: PUSH1 0x00 00003f7f: DUP12 00003f80: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003f95: AND 00003f96: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003fab: AND 00003fac: DUP2 00003fad: MSTORE 00003fae: PUSH1 0x20 00003fb0: ADD 00003fb1: SWAP1 00003fb2: DUP2 00003fb3: MSTORE 00003fb4: PUSH1 0x20 00003fb6: ADD 00003fb7: PUSH1 0x00 00003fb9: KECCAK256 00003fba: PUSH1 0x00 00003fbc: DUP10 00003fbd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003fd2: AND 00003fd3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003fe8: AND 00003fe9: DUP2 00003fea: MSTORE 00003feb: PUSH1 0x20 00003fed: ADD 00003fee: SWAP1 00003fef: DUP2 00003ff0: MSTORE 00003ff1: PUSH1 0x20 00003ff3: ADD 00003ff4: PUSH1 0x00 00003ff6: KECCAK256 00003ff7: SLOAD 00003ff8: PUSH2 0x421a 00003ffb: SWAP1 00003ffc: SWAP2 00003ffd: SWAP1 00003ffe: PUSH4 0xffffffff 00004003: AND 00004004: JUMP 00004005: JUMPDEST 00004006: PUSH1 0x06 00004008: PUSH1 0x00 0000400a: DUP11 0000400b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004020: AND 00004021: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004036: AND 00004037: DUP2 00004038: MSTORE 00004039: PUSH1 0x20 0000403b: ADD 0000403c: SWAP1 0000403d: DUP2 0000403e: MSTORE 0000403f: PUSH1 0x20 00004041: ADD 00004042: PUSH1 0x00 00004044: KECCAK256 00004045: PUSH1 0x00 00004047: DUP9 00004048: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000405d: AND 0000405e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004073: AND 00004074: DUP2 00004075: MSTORE 00004076: PUSH1 0x20 00004078: ADD 00004079: SWAP1 0000407a: DUP2 0000407b: MSTORE 0000407c: PUSH1 0x20 0000407e: ADD 0000407f: PUSH1 0x00 00004081: KECCAK256 00004082: DUP2 00004083: SWAP1 00004084: SSTORE 00004085: POP 00004086: PUSH2 0x4138 00004089: PUSH2 0x40ad 0000408c: DUP11 0000408d: PUSH2 0x409f 00004090: DUP9 00004091: DUP12 00004092: PUSH2 0x41c4 00004095: SWAP1 00004096: SWAP2 00004097: SWAP1 00004098: PUSH4 0xffffffff 0000409d: AND 0000409e: JUMP 0000409f: JUMPDEST 000040a0: PUSH2 0x41ff 000040a3: SWAP1 000040a4: SWAP2 000040a5: SWAP1 000040a6: PUSH4 0xffffffff 000040ab: AND 000040ac: JUMP 000040ad: JUMPDEST 000040ae: PUSH1 0x06 000040b0: PUSH1 0x00 000040b2: DUP12 000040b3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000040c8: AND 000040c9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000040de: AND 000040df: DUP2 000040e0: MSTORE 000040e1: PUSH1 0x20 000040e3: ADD 000040e4: SWAP1 000040e5: DUP2 000040e6: MSTORE 000040e7: PUSH1 0x20 000040e9: ADD 000040ea: PUSH1 0x00 000040ec: KECCAK256 000040ed: PUSH1 0x00 000040ef: CALLER 000040f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004105: AND 00004106: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000411b: AND 0000411c: DUP2 0000411d: MSTORE 0000411e: PUSH1 0x20 00004120: ADD 00004121: SWAP1 00004122: DUP2 00004123: MSTORE 00004124: PUSH1 0x20 00004126: ADD 00004127: PUSH1 0x00 00004129: KECCAK256 0000412a: SLOAD 0000412b: PUSH2 0x3973 0000412e: SWAP1 0000412f: SWAP2 00004130: SWAP1 00004131: PUSH4 0xffffffff 00004136: AND 00004137: JUMP 00004138: JUMPDEST 00004139: PUSH1 0x06 0000413b: PUSH1 0x00 0000413d: DUP11 0000413e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004153: AND 00004154: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004169: AND 0000416a: DUP2 0000416b: MSTORE 0000416c: PUSH1 0x20 0000416e: ADD 0000416f: SWAP1 00004170: DUP2 00004171: MSTORE 00004172: PUSH1 0x20 00004174: ADD 00004175: PUSH1 0x00 00004177: KECCAK256 00004178: PUSH1 0x00 0000417a: CALLER 0000417b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00004190: AND 00004191: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000041a6: AND 000041a7: DUP2 000041a8: MSTORE 000041a9: PUSH1 0x20 000041ab: ADD 000041ac: SWAP1 000041ad: DUP2 000041ae: MSTORE 000041af: PUSH1 0x20 000041b1: ADD 000041b2: PUSH1 0x00 000041b4: KECCAK256 000041b5: DUP2 000041b6: SWAP1 000041b7: SSTORE 000041b8: POP 000041b9: POP 000041ba: POP 000041bb: POP 000041bc: POP 000041bd: POP 000041be: POP 000041bf: POP 000041c0: POP 000041c1: POP 000041c2: POP 000041c3: JUMP 000041c4: JUMPDEST 000041c5: PUSH1 0x00 000041c7: DUP1 000041c8: PUSH1 0x00 000041ca: DUP5 000041cb: EQ 000041cc: ISZERO 000041cd: PUSH2 0x41d9 000041d0: JUMPI 000041d1: PUSH1 0x00 000041d3: SWAP2 000041d4: POP 000041d5: PUSH2 0x41f8 000041d8: JUMP 000041d9: JUMPDEST 000041da: DUP3 000041db: DUP5 000041dc: MUL 000041dd: SWAP1 000041de: POP 000041df: DUP3 000041e0: DUP5 000041e1: DUP3 000041e2: DUP2 000041e3: ISZERO 000041e4: ISZERO 000041e5: PUSH2 0x41ea 000041e8: JUMPI 000041e9: INVALID 000041ea: JUMPDEST 000041eb: DIV 000041ec: EQ 000041ed: ISZERO 000041ee: ISZERO 000041ef: PUSH2 0x41f4 000041f2: JUMPI 000041f3: INVALID 000041f4: JUMPDEST 000041f5: DUP1 000041f6: SWAP2 000041f7: POP 000041f8: JUMPDEST 000041f9: POP 000041fa: SWAP3 000041fb: SWAP2 000041fc: POP 000041fd: POP 000041fe: JUMP 000041ff: JUMPDEST 00004200: PUSH1 0x00 00004202: DUP1 00004203: DUP3 00004204: DUP5 00004205: DUP2 00004206: ISZERO 00004207: ISZERO 00004208: PUSH2 0x420d 0000420b: JUMPI 0000420c: INVALID 0000420d: JUMPDEST 0000420e: DIV 0000420f: SWAP1 00004210: POP 00004211: DUP1 00004212: SWAP2 00004213: POP 00004214: POP 00004215: SWAP3 00004216: SWAP2 00004217: POP 00004218: POP 00004219: JUMP 0000421a: JUMPDEST 0000421b: PUSH1 0x00 0000421d: DUP3 0000421e: DUP3 0000421f: GT 00004220: ISZERO 00004221: ISZERO 00004222: ISZERO 00004223: PUSH2 0x4228 00004226: JUMPI 00004227: INVALID 00004228: JUMPDEST 00004229: DUP2 0000422a: DUP4 0000422b: SUB 0000422c: SWAP1 0000422d: POP 0000422e: SWAP3 0000422f: SWAP2 00004230: POP 00004231: POP 00004232: JUMP 00004233: STOP 00004234: LOG1 00004235: PUSH6 0x627a7a723058 0000423c: KECCAK256 0000423d: UNKNOWN(0x23) 0000423e: DIFFICULTY 0000423f: PUSH24 0x659725ad38f361ac5a6b8b278da3ce8868b9cc541fd8eecc 00004258: UNKNOWN(0x28) 00004259: SELFDESTRUCT 0000425a: UNKNOWN(0xE4) 0000425b: PUSH12
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | cast | SELFDESTRUCT present | 85 | no | — |
viewevidence_json{
"notes": "selfdestruct can remove contract code and send funds; review reachability",
"selfdestruct_count": 1
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0xea4b495c41a2c60194b04193a15a7588866b38a7416c02ae299d49c773130c83
call_targets:
0xbeeb655808e3bdb83b6998f09dfe1e0f2c66a9be
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xea4b495c41a2c60194b04193a15a7588866b38a7416c02ae299d49c773130c83",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xbeeb655808e3bdb83b6998f09dfe1e0f2c66a9be"
],
"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": "0x0b927666",
"selector": "0x0b927666",
"calldata_variants": [
"0x0b927666",
"0x0b9276660000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x19774d43",
"selector": "0x19774d43",
"calldata_variants": [
"0x19774d43",
"0x19774d430000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x278b8c0e",
"selector": "0x278b8c0e",
"calldata_variants": [
"0x278b8c0e",
"0x278b8c0e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x29b1ce4d",
"selector": "0x29b1ce4d",
"calldata_variants": [
"0x29b1ce4d",
"0x29b1ce4d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2d804ca2",
"selector": "0x2d804ca2",
"calldata_variants": [
"0x2d804ca2",
"0x2d804ca20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2e1a7d4d",
"selector": "0x2e1a7d4d",
"calldata_variants": [
"0x2e1a7d4d",
"0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 7546,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 8520,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 11539,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 5,
"guards_detected": [
{
"pc": 6294,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 8976,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 9083,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 9239,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 10070,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 10273,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 10391,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 10676,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 11958,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 12913,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 5
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0xea4b495c41a2c60194b04193a15a7588866b38a7416c02ae299d49c773130c83
call_targets:
0xbeeb655808e3bdb83b6998f09dfe1e0f2c66a9be
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xea4b495c41a2c60194b04193a15a7588866b38a7416c02ae299d49c773130c83",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xbeeb655808e3bdb83b6998f09dfe1e0f2c66a9be"
],
"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": "0x0b927666",
"selector": "0x0b927666",
"calldata_variants": [
"0x0b927666",
"0x0b9276660000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x19774d43",
"selector": "0x19774d43",
"calldata_variants": [
"0x19774d43",
"0x19774d430000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x278b8c0e",
"selector": "0x278b8c0e",
"calldata_variants": [
"0x278b8c0e",
"0x278b8c0e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x29b1ce4d",
"selector": "0x29b1ce4d",
"calldata_variants": [
"0x29b1ce4d",
"0x29b1ce4d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2d804ca2",
"selector": "0x2d804ca2",
"calldata_variants": [
"0x2d804ca2",
"0x2d804ca20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2e1a7d4d",
"selector": "0x2e1a7d4d",
"calldata_variants": [
"0x2e1a7d4d",
"0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 7546,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 8520,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 11539,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 5,
"guards_detected": [
{
"pc": 6294,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 8976,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 9083,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 9239,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 10070,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 10273,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 10391,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 10676,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 11958,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 12913,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|
| medium | other | detector | SELFDESTRUCT reachable | 45 | no | no |
viewtrace_id: 0xb8ad7f7552d8aa4fb100bb930e5f2e2b8138dc2a80e3f9e6af90dde393cba07b
validation_json{
"sink": "SELFDESTRUCT",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0xb8ad7f7552d8aa4fb100bb930e5f2e2b8138dc2a80e3f9e6af90dde393cba07b",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0a19b14a",
"selector": "0x0a19b14a",
"calldata_variants": [
"0x0a19b14a",
"0x0a19b14a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0b927666",
"selector": "0x0b927666",
"calldata_variants": [
"0x0b927666",
"0x0b9276660000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x19774d43",
"selector": "0x19774d43",
"calldata_variants": [
"0x19774d43",
"0x19774d430000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x278b8c0e",
"selector": "0x278b8c0e",
"calldata_variants": [
"0x278b8c0e",
"0x278b8c0e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x29b1ce4d",
"selector": "0x29b1ce4d",
"calldata_variants": [
"0x29b1ce4d",
"0x29b1ce4d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2d804ca2",
"selector": "0x2d804ca2",
"calldata_variants": [
"0x2d804ca2",
"0x2d804ca20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2e1a7d4d",
"selector": "0x2e1a7d4d",
"calldata_variants": [
"0x2e1a7d4d",
"0x2e1a7d4d0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 6294,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 8976,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 9083,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 9239,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 10070,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 10273,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 10391,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 10676,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 11958,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 12913,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"selfdestruct_count": 1
}
|
| medium | auth | codex | Invalid signatures are accepted when `user` is the zero address | 75 | no | — |
viewevidence_json{
"evidence": "`trade` accepts a `user` parameter without a non-zero or whitelist check, and `validateOrderHash` treats `ecrecover(...) == user` as valid even when `user` is `0x0` (invalid signatures recover to `0x0`).",
"locations": [
"contracts/Contract.sol:462",
"contracts/Contract.sol:696"
],
"recommendation": "Reject zero-address makers in `trade` (and in any helper that validates orders) and treat `ecrecover` returning `0x0` as invalid. Also validate `feeAccount != 0x0` in the constructor to avoid accumulating balances at the zero address.",
"exploit_scenario": "An attacker calls `trade` with `user = 0x0` and any invalid `(v,r,s)`. `validateOrderHash` returns true because `ecrecover(...)` returns `0x0` for invalid signatures. If `tokens[<token>][0x0]` has any balance (e.g., fees accumulated because the constructor allowed `feeAccount = 0x0`), the attacker can drain those balances by choosing favorable `amountGive/amountGet` ratios."
}
|
| low | access_control | codex | Maker whitelist is not enforced in `trade` | 65 | no | — |
viewevidence_json{
"evidence": "`trade` only checks `whitelistedUsers[msg.sender]` but not `whitelistedUsers[user]`. In contrast, `testTrade`/`availableVolume` enforce both users.",
"locations": [
"contracts/Contract.sol:462",
"contracts/Contract.sol:539"
],
"recommendation": "Require `whitelistedUsers[user]` in `trade` (and optionally reject `user == 0x0`) to ensure both maker and taker are authorized at execution time.",
"exploit_scenario": "A user who was previously whitelisted can continue to have their orders filled after being removed from the whitelist. A whitelisted taker can still execute trades against that maker\u2019s signed orders, bypassing whitelist-based trading restrictions."
}
|