97cd6cda-535b-4091-acff-4edb553a0399
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 |
|---|---|---|---|---|
| 31295 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 110768 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 110769 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 110770 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 110771 | capability.graph | complete | 1 / 3 | 1 week ago |
| 110772 | detector.run | complete | 1 / 3 | 1 week ago |
| 110773 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:510744] OpenAI Codex v0.77.0 (research preview)
[codex:510744] --------
[codex:510744] workdir: /tmp/codex-multi-16pl2j64
[codex:510744] model: gpt-5.2-codex
[codex:510744] provider: openai
[codex:510744] approval: never
[codex:510744] sandbox: read-only
[codex:510744] reasoning effort: xhigh
[codex:510744] reasoning summaries: auto
[codex:510744] session id: 019b7f96-ae65-7f62-b262-eb6aede7b2e1
[codex:510744] --------
[codex:510744] user
[codex:510744] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:510744]
[codex:510744] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:510744]
[codex:510744] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:510744] - Gas inefficiency, code quality, naming, or best practices
[codex:510744] - Theoretical vulnerabilities without a clear extraction path
[codex:510744] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:510744] - Front-running unless it enables theft beyond MEV
[codex:510744] - DoS, griefing, or issues that don't result in attacker profit
[codex:510744] - Missing events, view function issues, or informational findings
[codex:510744]
[codex:510744] HIGH-VALUE PATTERNS TO HUNT:
[codex:510744] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:510744] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:510744] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:510744] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:510744] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:510744] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:510744] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:510744] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:510744] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:510744]
[codex:510744] For each finding, you MUST provide:
[codex:510744] 1. Exact file and line numbers of vulnerable code
[codex:510744] 2. Step-by-step exploit transaction sequence
[codex:510744] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:510744]
[codex:510744] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:510744]
[codex:510744] Output MUST be valid JSON matching the provided schema.
[codex:510744] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:510744] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:510744] mcp startup: no servers
[codex:510744]
[codex:510744] thinking
[codex:510744] **Searching for AUDIT_BUNDLE files**
[codex:510744] exec
[codex:510744] /bin/bash -lc ls in /tmp/codex-multi-16pl2j64 succeeded in 5ms:
[codex:510744] AUDIT_BUNDLE.txt
[codex:510744] codex-output-schema.json
[codex:510744] contracts
[codex:510744]
[codex:510744] thinking
[codex:510744] **Reading AUDIT_BUNDLE.txt**
[codex:510744] exec
[codex:510744] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-16pl2j64 succeeded in 6ms:
[codex:510744] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:510744]
[codex:510744] ================================================================================
[codex:510744] FILE: contracts/Contract.sol
[codex:510744] ================================================================================
[codex:510744] pragma solidity 0.6.12;
[codex:510744] // SPDX-License-Identifier: MIT
[codex:510744]
[codex:510744]
[codex:510744]
[codex:510744] /**
[codex:510744] * @dev Interface of the ERC20 standard as defined in the EIP.
[codex:510744] */
[codex:510744] interface IERC20 {
[codex:510744] /**
[codex:510744] * @dev Returns the amount of tokens in existence.
[codex:510744] */
[codex:510744] function totalSupply() external view returns (uint256);
[codex:510744]
[codex:510744] /**
[codex:510744]
[codex:510744] thinking
[codex:510744] **Analyzing profit extraction and price manipulation risks**
[codex:510744]
[codex:510744] I’m dissecting the contract’s public functions to find if an attacker can extract profit. The main exploit path looks like manipulating Uniswap prices via flash loans to exploit `publicSwap` after a 48-hour safety release—allowing the attacker to swap ETH for tokens at inflated prices and profit from the slippage. Other functions either send value to the owner or lack direct paths for attacker gain. There are no reentrancy or admin override vulnerabilities, but the slippage/oracle manipulation on swaps stands out as a concrete theft vector. I’m tracing the conditions and state changes carefully to confirm this scenario.
[codex:510744] exec
[codex:510744] /bin/bash -lc 'nl -ba contracts/Contract.sol' in /tmp/codex-multi-16pl2j64 succeeded in 6ms:
[codex:510744] 1 pragma solidity 0.6.12;
[codex:510744] 2 // SPDX-License-Identifier: MIT
[codex:510744] 3
[codex:510744] 4
[codex:510744] 5
[codex:510744] 6 /**
[codex:510744] 7 * @dev Interface of the ERC20 standard as defined in the EIP.
[codex:510744] 8 */
[codex:510744] 9 interface IERC20 {
[codex:510744] 10 /**
[codex:510744] 11 * @dev Returns the amount of tokens in existence.
[codex:510744] 12 */
[codex:510744] 13 function totalSupply() external view returns (uint256);
[codex:510744] 14
[codex:510744] 15 /**
[codex:510744] 16 * @dev Returns the amount of tokens owned by `account`.
[codex:510744] 17 */
[codex:510744] 18 function balanceOf(address account) external view returns (uint256);
[codex:510744] 19
[codex:510744] 20 /**
[codex:510744]
[codex:510744] thinking
[codex:510744] **Generating detailed JSON output schema**
[codex:510744]
[codex:510744] I'm piecing together a JSON report that matches the codex-output-schema with fields for no_findings, summary, and findings, focusing on a high-severity flash-loan price manipulation exploit via publicSwap. I'll include evidence with exact line numbers and a stepwise exploit scenario highlighting the vulnerability caused by zero slippage swaps and public accessibility after safetyRelease. This comprehensive output will encompass severity, category, recommendations, and exploit details exactly as requested.
[codex:510744] codex
[codex:510744] {"no_findings":false,"summary":"Public `publicSwap()` can be called after the safety delay and executes multiple Uniswap V2 swaps with `amountOutMin = 0`, enabling flash-loan price manipulation to siphon ETH value from the contract.","findings":[{"severity":"high","category":"oracle","title":"Flash-loan price manipulation drains ETH via zero-slippage publicSwap","exploit_scenario":"1) Wait until `now > safetyRelease` and the contract holds ETH (funded via `buoyAddress`). 2) In a single transaction, take a flash loan of WETH. 3) For each target pair (e.g., WETH/LINK), swap WETH -> token on Uniswap to inflate token price in ETH terms. 4) Call `publicSwap()` to force the contract to buy those tokens at the manipulated, overpriced rate with `amountOutMin=0`. 5) Swap the pre-bought tokens back to WETH after `publicSwap` completes, capturing the ETH the contract just injected. 6) Repay the flash loan and keep the surplus WETH/ETH as profit.","recommendation":"Restrict `publicSwap()` to trusted callers or add robust slippage protection using off-chain pricing (e.g., TWAP/oracle) and non-zero `amountOutMin` limits; consider pausing public access to swaps.","evidence":"`publicSwap()` is public after `safetyRelease` and calls `_swap()`, which executes multiple `swapExactETHForTokens` calls with `amountOutMin = 0`, allowing swaps at any price.","locations":["contracts/Contract.sol:290","contracts/Contract.sol:295","contracts/Contract.sol:301","contracts/Contract.sol:307"]}]}
[codex:510744] tokens used
[codex:510744] 17,587
[codex:510744] {"no_findings":false,"summary":"Public `publicSwap()` can be called after the safety delay and executes multiple Uniswap V2 swaps with `amountOutMin = 0`, enabling flash-loan price manipulation to siphon ETH value from the contract.","findings":[{"severity":"high","category":"oracle","title":"Flash-loan price manipulation drains ETH via zero-slippage publicSwap","exploit_scenario":"1) Wait until `now > safetyRelease` and the contract holds ETH (funded via `buoyAddress`). 2) In a single transaction, take a flash loan of WETH. 3) For each target pair (e.g., WETH/LINK), swap WETH -> token on Uniswap to inflate token price in ETH terms. 4) Call `publicSwap()` to force the contract to buy those tokens at the manipulated, overpriced rate with `amountOutMin=0`. 5) Swap the pre-bought tokens back to WETH after `publicSwap` completes, capturing the ETH the contract just injected. 6) Repay the flash loan and keep the surplus WETH/ETH as profit.","recommendation":"Restrict `publicSwap()` to trusted callers or add robust slippage protection using off-chain pricing (e.g., TWAP/oracle) and non-zero `amountOutMin` limits; consider pausing public access to swaps.","evidence":"`publicSwap()` is public after `safetyRelease` and calls `_swap()`, which executes multiple `swapExactETHForTokens` calls with `amountOutMin = 0`, allowing swaps at any price.","locations":["contracts/Contract.sol:290","contracts/Contract.sol:295","contracts/Contract.sol:301","contracts/Contract.sol:307"]}]}
{
"codex": {
"ran_at": "2026-01-02T16:43:49.437617+00:00",
"returncode": 0
},
"summary": "Public `publicSwap()` can be called after the safety delay and executes multiple Uniswap V2 swaps with `amountOutMin = 0`, enabling flash-loan price manipulation to siphon ETH value from the contract.",
"raw_final": {
"summary": "Public `publicSwap()` can be called after the safety delay and executes multiple Uniswap V2 swaps with `amountOutMin = 0`, enabling flash-loan price manipulation to siphon ETH value from the contract.",
"findings": [
{
"title": "Flash-loan price manipulation drains ETH via zero-slippage publicSwap",
"category": "oracle",
"evidence": "`publicSwap()` is public after `safetyRelease` and calls `_swap()`, which executes multiple `swapExactETHForTokens` calls with `amountOutMin = 0`, allowing swaps at any price.",
"severity": "high",
"locations": [
"contracts/Contract.sol:290",
"contracts/Contract.sol:295",
"contracts/Contract.sol:301",
"contracts/Contract.sol:307"
],
"recommendation": "Restrict `publicSwap()` to trusted callers or add robust slippage protection using off-chain pricing (e.g., TWAP/oracle) and non-zero `amountOutMin` limits; consider pausing public access to swaps.",
"exploit_scenario": "1) Wait until `now > safetyRelease` and the contract holds ETH (funded via `buoyAddress`). 2) In a single transaction, take a flash loan of WETH. 3) For each target pair (e.g., WETH/LINK), swap WETH -> token on Uniswap to inflate token price in ETH terms. 4) Call `publicSwap()` to force the contract to buy those tokens at the manipulated, overpriced rate with `amountOutMin=0`. 5) Swap the pre-bought tokens back to WETH after `publicSwap` completes, capturing the ETH the contract just injected. 6) Repay the flash loan and keep the surplus WETH/ETH as profit."
}
],
"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 0x0118 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x8bb3d1fe 00000019: GT 0000001a: PUSH2 0x00a0 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xb6b55f25 00000024: GT 00000025: PUSH2 0x0064 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xb6b55f25 0000002f: EQ 00000030: PUSH2 0x05d4 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xbb0c071a 0000003a: EQ 0000003b: PUSH2 0x060f 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xdc303a12 00000045: EQ 00000046: PUSH2 0x0626 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xf1633248 00000050: EQ 00000051: PUSH2 0x0758 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xfb983b83 0000005b: EQ 0000005c: PUSH2 0x0799 0000005f: JUMPI 00000060: PUSH2 0x026b 00000063: JUMP 00000064: JUMPDEST 00000065: DUP1 00000066: PUSH4 0x8bb3d1fe 0000006b: EQ 0000006c: PUSH2 0x0489 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0x8c0ba32f 00000076: EQ 00000077: PUSH2 0x04fa 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xa4b6dcae 00000081: EQ 00000082: PUSH2 0x0511 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0xa6ebf285 0000008c: EQ 0000008d: PUSH2 0x0552 00000090: JUMPI 00000091: DUP1 00000092: PUSH4 0xab0e9608 00000097: EQ 00000098: PUSH2 0x0593 0000009b: JUMPI 0000009c: PUSH2 0x026b 0000009f: JUMP 000000a0: JUMPDEST 000000a1: DUP1 000000a2: PUSH4 0x4f0e0ef3 000000a7: GT 000000a8: PUSH2 0x00e7 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0x4f0e0ef3 000000b2: EQ 000000b3: PUSH2 0x036e 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0x735de9f7 000000bd: EQ 000000be: PUSH2 0x03af 000000c1: JUMPI 000000c2: DUP1 000000c3: PUSH4 0x7d3ab61a 000000c8: EQ 000000c9: PUSH2 0x03f0 000000cc: JUMPI 000000cd: DUP1 000000ce: PUSH4 0x80ea5f8a 000000d3: EQ 000000d4: PUSH2 0x0431 000000d7: JUMPI 000000d8: DUP1 000000d9: PUSH4 0x8119c065 000000de: EQ 000000df: PUSH2 0x0472 000000e2: JUMPI 000000e3: PUSH2 0x026b 000000e6: JUMP 000000e7: JUMPDEST 000000e8: DUP1 000000e9: PUSH4 0x1755ff21 000000ee: EQ 000000ef: PUSH2 0x0270 000000f2: JUMPI 000000f3: DUP1 000000f4: PUSH4 0x235cea98 000000f9: EQ 000000fa: PUSH2 0x02b1 000000fd: JUMPI 000000fe: DUP1 000000ff: PUSH4 0x3d6cf722 00000104: EQ 00000105: PUSH2 0x02f2 00000108: JUMPI 00000109: DUP1 0000010a: PUSH4 0x446c306e 0000010f: EQ 00000110: PUSH2 0x0333 00000113: JUMPI 00000114: PUSH2 0x026b 00000117: JUMP 00000118: JUMPDEST 00000119: CALLDATASIZE 0000011a: PUSH2 0x026b 0000011d: JUMPI 0000011e: PUSH1 0x01 00000120: ISZERO 00000121: ISZERO 00000122: PUSH1 0x19 00000124: PUSH1 0x00 00000126: SWAP1 00000127: SLOAD 00000128: SWAP1 00000129: PUSH2 0x0100 0000012c: EXP 0000012d: SWAP1 0000012e: DIV 0000012f: PUSH1 0xff 00000131: AND 00000132: ISZERO 00000133: ISZERO 00000134: EQ 00000135: PUSH2 0x01a6 00000138: JUMPI 00000139: PUSH1 0x40 0000013b: MLOAD 0000013c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000015d: DUP2 0000015e: MSTORE 0000015f: PUSH1 0x04 00000161: ADD 00000162: DUP1 00000163: DUP1 00000164: PUSH1 0x20 00000166: ADD 00000167: DUP3 00000168: DUP2 00000169: SUB 0000016a: DUP3 0000016b: MSTORE 0000016c: PUSH1 0x12 0000016e: DUP2 0000016f: MSTORE 00000170: PUSH1 0x20 00000172: ADD 00000173: DUP1 00000174: PUSH32 0x414444524553535f4e4f545f4c4f434b45440000000000000000000000000000 00000195: DUP2 00000196: MSTORE 00000197: POP 00000198: PUSH1 0x20 0000019a: ADD 0000019b: SWAP2 0000019c: POP 0000019d: POP 0000019e: PUSH1 0x40 000001a0: MLOAD 000001a1: DUP1 000001a2: SWAP2 000001a3: SUB 000001a4: SWAP1 000001a5: REVERT 000001a6: JUMPDEST 000001a7: PUSH1 0x0e 000001a9: PUSH1 0x00 000001ab: SWAP1 000001ac: SLOAD 000001ad: SWAP1 000001ae: PUSH2 0x0100 000001b1: EXP 000001b2: SWAP1 000001b3: DIV 000001b4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001c9: AND 000001ca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001df: AND 000001e0: CALLER 000001e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001f6: AND 000001f7: EQ 000001f8: PUSH2 0x0269 000001fb: JUMPI 000001fc: PUSH1 0x40 000001fe: MLOAD 000001ff: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000220: DUP2 00000221: MSTORE 00000222: PUSH1 0x04 00000224: ADD 00000225: DUP1 00000226: DUP1 00000227: PUSH1 0x20 00000229: ADD 0000022a: DUP3 0000022b: DUP2 0000022c: SUB 0000022d: DUP3 0000022e: MSTORE 0000022f: PUSH1 0x13 00000231: DUP2 00000232: MSTORE 00000233: PUSH1 0x20 00000235: ADD 00000236: DUP1 00000237: PUSH32 0x53454e4445525f4e4f545f415050524f56454400000000000000000000000000 00000258: DUP2 00000259: MSTORE 0000025a: POP 0000025b: PUSH1 0x20 0000025d: ADD 0000025e: SWAP2 0000025f: POP 00000260: POP 00000261: PUSH1 0x40 00000263: MLOAD 00000264: DUP1 00000265: SWAP2 00000266: SUB 00000267: SWAP1 00000268: REVERT 00000269: JUMPDEST 0000026a: STOP 0000026b: JUMPDEST 0000026c: PUSH1 0x00 0000026e: DUP1 0000026f: REVERT 00000270: JUMPDEST 00000271: CALLVALUE 00000272: DUP1 00000273: ISZERO 00000274: PUSH2 0x027c 00000277: JUMPI 00000278: PUSH1 0x00 0000027a: DUP1 0000027b: REVERT 0000027c: JUMPDEST 0000027d: POP 0000027e: PUSH2 0x0285 00000281: PUSH2 0x07b0 00000284: JUMP 00000285: JUMPDEST 00000286: PUSH1 0x40 00000288: MLOAD 00000289: DUP1 0000028a: DUP3 0000028b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002a0: AND 000002a1: DUP2 000002a2: MSTORE 000002a3: PUSH1 0x20 000002a5: ADD 000002a6: SWAP2 000002a7: POP 000002a8: POP 000002a9: PUSH1 0x40 000002ab: MLOAD 000002ac: DUP1 000002ad: SWAP2 000002ae: SUB 000002af: SWAP1 000002b0: RETURN 000002b1: JUMPDEST 000002b2: CALLVALUE 000002b3: DUP1 000002b4: ISZERO 000002b5: PUSH2 0x02bd 000002b8: JUMPI 000002b9: PUSH1 0x00 000002bb: DUP1 000002bc: REVERT 000002bd: JUMPDEST 000002be: POP 000002bf: PUSH2 0x02c6 000002c2: PUSH2 0x07d6 000002c5: JUMP 000002c6: JUMPDEST 000002c7: PUSH1 0x40 000002c9: MLOAD 000002ca: DUP1 000002cb: DUP3 000002cc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002e1: AND 000002e2: DUP2 000002e3: MSTORE 000002e4: PUSH1 0x20 000002e6: ADD 000002e7: SWAP2 000002e8: POP 000002e9: POP 000002ea: PUSH1 0x40 000002ec: MLOAD 000002ed: DUP1 000002ee: SWAP2 000002ef: SUB 000002f0: SWAP1 000002f1: RETURN 000002f2: JUMPDEST 000002f3: CALLVALUE 000002f4: DUP1 000002f5: ISZERO 000002f6: PUSH2 0x02fe 000002f9: JUMPI 000002fa: PUSH1 0x00 000002fc: DUP1 000002fd: REVERT 000002fe: JUMPDEST 000002ff: POP 00000300: PUSH2 0x0307 00000303: PUSH2 0x07fc 00000306: JUMP 00000307: JUMPDEST 00000308: PUSH1 0x40 0000030a: MLOAD 0000030b: DUP1 0000030c: DUP3 0000030d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000322: AND 00000323: DUP2 00000324: MSTORE 00000325: PUSH1 0x20 00000327: ADD 00000328: SWAP2 00000329: POP 0000032a: POP 0000032b: PUSH1 0x40 0000032d: MLOAD 0000032e: DUP1 0000032f: SWAP2 00000330: SUB 00000331: SWAP1 00000332: RETURN 00000333: JUMPDEST 00000334: CALLVALUE 00000335: DUP1 00000336: ISZERO 00000337: PUSH2 0x033f 0000033a: JUMPI 0000033b: PUSH1 0x00 0000033d: DUP1 0000033e: REVERT 0000033f: JUMPDEST 00000340: POP 00000341: PUSH2 0x036c 00000344: PUSH1 0x04 00000346: DUP1 00000347: CALLDATASIZE 00000348: SUB 00000349: PUSH1 0x20 0000034b: DUP2 0000034c: LT 0000034d: ISZERO 0000034e: PUSH2 0x0356 00000351: JUMPI 00000352: PUSH1 0x00 00000354: DUP1 00000355: REVERT 00000356: JUMPDEST 00000357: DUP2 00000358: ADD 00000359: SWAP1 0000035a: DUP1 0000035b: DUP1 0000035c: CALLDATALOAD 0000035d: SWAP1 0000035e: PUSH1 0x20 00000360: ADD 00000361: SWAP1 00000362: SWAP3 00000363: SWAP2 00000364: SWAP1 00000365: POP 00000366: POP 00000367: POP 00000368: PUSH2 0x0822 0000036b: JUMP 0000036c: JUMPDEST 0000036d: STOP 0000036e: JUMPDEST 0000036f: CALLVALUE 00000370: DUP1 00000371: ISZERO 00000372: PUSH2 0x037a 00000375: JUMPI 00000376: PUSH1 0x00 00000378: DUP1 00000379: REVERT 0000037a: JUMPDEST 0000037b: POP 0000037c: PUSH2 0x0383 0000037f: PUSH2 0x0980 00000382: JUMP 00000383: JUMPDEST 00000384: PUSH1 0x40 00000386: MLOAD 00000387: DUP1 00000388: DUP3 00000389: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000039e: AND 0000039f: DUP2 000003a0: MSTORE 000003a1: PUSH1 0x20 000003a3: ADD 000003a4: SWAP2 000003a5: POP 000003a6: POP 000003a7: PUSH1 0x40 000003a9: MLOAD 000003aa: DUP1 000003ab: SWAP2 000003ac: SUB 000003ad: SWAP1 000003ae: RETURN 000003af: JUMPDEST 000003b0: CALLVALUE 000003b1: DUP1 000003b2: ISZERO 000003b3: PUSH2 0x03bb 000003b6: JUMPI 000003b7: PUSH1 0x00 000003b9: DUP1 000003ba: REVERT 000003bb: JUMPDEST 000003bc: POP 000003bd: PUSH2 0x03c4 000003c0: PUSH2 0x09a6 000003c3: JUMP 000003c4: JUMPDEST 000003c5: PUSH1 0x40 000003c7: MLOAD 000003c8: DUP1 000003c9: DUP3 000003ca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003df: AND 000003e0: DUP2 000003e1: MSTORE 000003e2: PUSH1 0x20 000003e4: ADD 000003e5: SWAP2 000003e6: POP 000003e7: POP 000003e8: PUSH1 0x40 000003ea: MLOAD 000003eb: DUP1 000003ec: SWAP2 000003ed: SUB 000003ee: SWAP1 000003ef: RETURN 000003f0: JUMPDEST 000003f1: CALLVALUE 000003f2: DUP1 000003f3: ISZERO 000003f4: PUSH2 0x03fc 000003f7: JUMPI 000003f8: PUSH1 0x00 000003fa: DUP1 000003fb: REVERT 000003fc: JUMPDEST 000003fd: POP 000003fe: PUSH2 0x0405 00000401: PUSH2 0x09cc 00000404: JUMP 00000405: JUMPDEST 00000406: PUSH1 0x40 00000408: MLOAD 00000409: DUP1 0000040a: DUP3 0000040b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000420: AND 00000421: DUP2 00000422: MSTORE 00000423: PUSH1 0x20 00000425: ADD 00000426: SWAP2 00000427: POP 00000428: POP 00000429: PUSH1 0x40 0000042b: MLOAD 0000042c: DUP1 0000042d: SWAP2 0000042e: SUB 0000042f: SWAP1 00000430: RETURN 00000431: JUMPDEST 00000432: CALLVALUE 00000433: DUP1 00000434: ISZERO 00000435: PUSH2 0x043d 00000438: JUMPI 00000439: PUSH1 0x00 0000043b: DUP1 0000043c: REVERT 0000043d: JUMPDEST 0000043e: POP 0000043f: PUSH2 0x0446 00000442: PUSH2 0x09f2 00000445: JUMP 00000446: JUMPDEST 00000447: PUSH1 0x40 00000449: MLOAD 0000044a: DUP1 0000044b: DUP3 0000044c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000461: AND 00000462: DUP2 00000463: MSTORE 00000464: PUSH1 0x20 00000466: ADD 00000467: SWAP2 00000468: POP 00000469: POP 0000046a: PUSH1 0x40 0000046c: MLOAD 0000046d: DUP1 0000046e: SWAP2 0000046f: SUB 00000470: SWAP1 00000471: RETURN 00000472: JUMPDEST 00000473: CALLVALUE 00000474: DUP1 00000475: ISZERO 00000476: PUSH2 0x047e 00000479: JUMPI 0000047a: PUSH1 0x00 0000047c: DUP1 0000047d: REVERT 0000047e: JUMPDEST 0000047f: POP 00000480: PUSH2 0x0487 00000483: PUSH2 0x0a18 00000486: JUMP 00000487: JUMPDEST 00000488: STOP 00000489: JUMPDEST 0000048a: CALLVALUE 0000048b: DUP1 0000048c: ISZERO 0000048d: PUSH2 0x0495 00000490: JUMPI 00000491: PUSH1 0x00 00000493: DUP1 00000494: REVERT 00000495: JUMPDEST 00000496: POP 00000497: PUSH2 0x04f8 0000049a: PUSH1 0x04 0000049c: DUP1 0000049d: CALLDATASIZE 0000049e: SUB 0000049f: PUSH1 0x40 000004a1: DUP2 000004a2: LT 000004a3: ISZERO 000004a4: PUSH2 0x04ac 000004a7: JUMPI 000004a8: PUSH1 0x00 000004aa: DUP1 000004ab: REVERT 000004ac: JUMPDEST 000004ad: DUP2 000004ae: ADD 000004af: SWAP1 000004b0: DUP1 000004b1: DUP1 000004b2: CALLDATALOAD 000004b3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004c8: AND 000004c9: SWAP1 000004ca: PUSH1 0x20 000004cc: ADD 000004cd: SWAP1 000004ce: SWAP3 000004cf: SWAP2 000004d0: SWAP1 000004d1: DUP1 000004d2: CALLDATALOAD 000004d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004e8: AND 000004e9: SWAP1 000004ea: PUSH1 0x20 000004ec: ADD 000004ed: SWAP1 000004ee: SWAP3 000004ef: SWAP2 000004f0: SWAP1 000004f1: POP 000004f2: POP 000004f3: POP 000004f4: PUSH2 0x0a7c 000004f7: JUMP 000004f8: JUMPDEST 000004f9: STOP 000004fa: JUMPDEST 000004fb: CALLVALUE 000004fc: DUP1 000004fd: ISZERO 000004fe: PUSH2 0x0506 00000501: JUMPI 00000502: PUSH1 0x00 00000504: DUP1 00000505: REVERT 00000506: JUMPDEST 00000507: POP 00000508: PUSH2 0x050f 0000050b: PUSH2 0x0be5 0000050e: JUMP 0000050f: JUMPDEST 00000510: STOP 00000511: JUMPDEST 00000512: CALLVALUE 00000513: DUP1 00000514: ISZERO 00000515: PUSH2 0x051d 00000518: JUMPI 00000519: PUSH1 0x00 0000051b: DUP1 0000051c: REVERT 0000051d: JUMPDEST 0000051e: POP 0000051f: PUSH2 0x0526 00000522: PUSH2 0x0c66 00000525: JUMP 00000526: JUMPDEST 00000527: PUSH1 0x40 00000529: MLOAD 0000052a: DUP1 0000052b: DUP3 0000052c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000541: AND 00000542: DUP2 00000543: MSTORE 00000544: PUSH1 0x20 00000546: ADD 00000547: SWAP2 00000548: POP 00000549: POP 0000054a: PUSH1 0x40 0000054c: MLOAD 0000054d: DUP1 0000054e: SWAP2 0000054f: SUB 00000550: SWAP1 00000551: RETURN 00000552: JUMPDEST 00000553: CALLVALUE 00000554: DUP1 00000555: ISZERO 00000556: PUSH2 0x055e 00000559: JUMPI 0000055a: PUSH1 0x00 0000055c: DUP1 0000055d: REVERT 0000055e: JUMPDEST 0000055f: POP 00000560: PUSH2 0x0567 00000563: PUSH2 0x0c8c 00000566: JUMP 00000567: JUMPDEST 00000568: PUSH1 0x40 0000056a: MLOAD 0000056b: DUP1 0000056c: DUP3 0000056d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000582: AND 00000583: DUP2 00000584: MSTORE 00000585: PUSH1 0x20 00000587: ADD 00000588: SWAP2 00000589: POP 0000058a: POP 0000058b: PUSH1 0x40 0000058d: MLOAD 0000058e: DUP1 0000058f: SWAP2 00000590: SUB 00000591: SWAP1 00000592: RETURN 00000593: JUMPDEST 00000594: CALLVALUE 00000595: DUP1 00000596: ISZERO 00000597: PUSH2 0x059f 0000059a: JUMPI 0000059b: PUSH1 0x00 0000059d: DUP1 0000059e: REVERT 0000059f: JUMPDEST 000005a0: POP 000005a1: PUSH2 0x05a8 000005a4: PUSH2 0x0cb2 000005a7: JUMP 000005a8: JUMPDEST 000005a9: PUSH1 0x40 000005ab: MLOAD 000005ac: DUP1 000005ad: DUP3 000005ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005c3: AND 000005c4: DUP2 000005c5: MSTORE 000005c6: PUSH1 0x20 000005c8: ADD 000005c9: SWAP2 000005ca: POP 000005cb: POP 000005cc: PUSH1 0x40 000005ce: MLOAD 000005cf: DUP1 000005d0: SWAP2 000005d1: SUB 000005d2: SWAP1 000005d3: RETURN 000005d4: JUMPDEST 000005d5: CALLVALUE 000005d6: DUP1 000005d7: ISZERO 000005d8: PUSH2 0x05e0 000005db: JUMPI 000005dc: PUSH1 0x00 000005de: DUP1 000005df: REVERT 000005e0: JUMPDEST 000005e1: POP 000005e2: PUSH2 0x060d 000005e5: PUSH1 0x04 000005e7: DUP1 000005e8: CALLDATASIZE 000005e9: SUB 000005ea: PUSH1 0x20 000005ec: DUP2 000005ed: LT 000005ee: ISZERO 000005ef: PUSH2 0x05f7 000005f2: JUMPI 000005f3: PUSH1 0x00 000005f5: DUP1 000005f6: REVERT 000005f7: JUMPDEST 000005f8: DUP2 000005f9: ADD 000005fa: SWAP1 000005fb: DUP1 000005fc: DUP1 000005fd: CALLDATALOAD 000005fe: SWAP1 000005ff: PUSH1 0x20 00000601: ADD 00000602: SWAP1 00000603: SWAP3 00000604: SWAP2 00000605: SWAP1 00000606: POP 00000607: POP 00000608: POP 00000609: PUSH2 0x0cd8 0000060c: JUMP 0000060d: JUMPDEST 0000060e: STOP 0000060f: JUMPDEST 00000610: CALLVALUE 00000611: DUP1 00000612: ISZERO 00000613: PUSH2 0x061b 00000616: JUMPI 00000617: PUSH1 0x00 00000619: DUP1 0000061a: REVERT 0000061b: JUMPDEST 0000061c: POP 0000061d: PUSH2 0x0624 00000620: PUSH2 0x0e19 00000623: JUMP 00000624: JUMPDEST 00000625: STOP 00000626: JUMPDEST 00000627: CALLVALUE 00000628: DUP1 00000629: ISZERO 0000062a: PUSH2 0x0632 0000062d: JUMPI 0000062e: PUSH1 0x00 00000630: DUP1 00000631: REVERT 00000632: JUMPDEST 00000633: POP 00000634: PUSH2 0x0756 00000637: PUSH1 0x04 00000639: DUP1 0000063a: CALLDATASIZE 0000063b: SUB 0000063c: PUSH2 0x0100 0000063f: DUP2 00000640: LT 00000641: ISZERO 00000642: PUSH2 0x064a 00000645: JUMPI 00000646: PUSH1 0x00 00000648: DUP1 00000649: REVERT 0000064a: JUMPDEST 0000064b: DUP2 0000064c: ADD 0000064d: SWAP1 0000064e: DUP1 0000064f: DUP1 00000650: CALLDATALOAD 00000651: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000666: AND 00000667: SWAP1 00000668: PUSH1 0x20 0000066a: ADD 0000066b: SWAP1 0000066c: SWAP3 0000066d: SWAP2 0000066e: SWAP1 0000066f: DUP1 00000670: CALLDATALOAD 00000671: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000686: AND 00000687: SWAP1 00000688: PUSH1 0x20 0000068a: ADD 0000068b: SWAP1 0000068c: SWAP3 0000068d: SWAP2 0000068e: SWAP1 0000068f: DUP1 00000690: CALLDATALOAD 00000691: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006a6: AND 000006a7: SWAP1 000006a8: PUSH1 0x20 000006aa: ADD 000006ab: SWAP1 000006ac: SWAP3 000006ad: SWAP2 000006ae: SWAP1 000006af: DUP1 000006b0: CALLDATALOAD 000006b1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006c6: AND 000006c7: SWAP1 000006c8: PUSH1 0x20 000006ca: ADD 000006cb: SWAP1 000006cc: SWAP3 000006cd: SWAP2 000006ce: SWAP1 000006cf: DUP1 000006d0: CALLDATALOAD 000006d1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006e6: AND 000006e7: SWAP1 000006e8: PUSH1 0x20 000006ea: ADD 000006eb: SWAP1 000006ec: SWAP3 000006ed: SWAP2 000006ee: SWAP1 000006ef: DUP1 000006f0: CALLDATALOAD 000006f1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000706: AND 00000707: SWAP1 00000708: PUSH1 0x20 0000070a: ADD 0000070b: SWAP1 0000070c: SWAP3 0000070d: SWAP2 0000070e: SWAP1 0000070f: DUP1 00000710: CALLDATALOAD 00000711: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000726: AND 00000727: SWAP1 00000728: PUSH1 0x20 0000072a: ADD 0000072b: SWAP1 0000072c: SWAP3 0000072d: SWAP2 0000072e: SWAP1 0000072f: DUP1 00000730: CALLDATALOAD 00000731: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000746: AND 00000747: SWAP1 00000748: PUSH1 0x20 0000074a: ADD 0000074b: SWAP1 0000074c: SWAP3 0000074d: SWAP2 0000074e: SWAP1 0000074f: POP 00000750: POP 00000751: POP 00000752: PUSH2 0x0fb0 00000755: JUMP 00000756: JUMPDEST 00000757: STOP 00000758: JUMPDEST 00000759: CALLVALUE 0000075a: DUP1 0000075b: ISZERO 0000075c: PUSH2 0x0764 0000075f: JUMPI 00000760: PUSH1 0x00 00000762: DUP1 00000763: REVERT 00000764: JUMPDEST 00000765: POP 00000766: PUSH2 0x076d 00000769: PUSH2 0x1617 0000076c: JUMP 0000076d: JUMPDEST 0000076e: PUSH1 0x40 00000770: MLOAD 00000771: DUP1 00000772: DUP3 00000773: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000788: AND 00000789: DUP2 0000078a: MSTORE 0000078b: PUSH1 0x20 0000078d: ADD 0000078e: SWAP2 0000078f: POP 00000790: POP 00000791: PUSH1 0x40 00000793: MLOAD 00000794: DUP1 00000795: SWAP2 00000796: SUB 00000797: SWAP1 00000798: RETURN 00000799: JUMPDEST 0000079a: CALLVALUE 0000079b: DUP1 0000079c: ISZERO 0000079d: PUSH2 0x07a5 000007a0: JUMPI 000007a1: PUSH1 0x00 000007a3: DUP1 000007a4: REVERT 000007a5: JUMPDEST 000007a6: POP 000007a7: PUSH2 0x07ae 000007aa: PUSH2 0x163d 000007ad: JUMP 000007ae: JUMPDEST 000007af: STOP 000007b0: JUMPDEST 000007b1: PUSH1 0x0f 000007b3: PUSH1 0x00 000007b5: SWAP1 000007b6: SLOAD 000007b7: SWAP1 000007b8: PUSH2 0x0100 000007bb: EXP 000007bc: SWAP1 000007bd: DIV 000007be: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007d3: AND 000007d4: DUP2 000007d5: JUMP 000007d6: JUMPDEST 000007d7: PUSH1 0x0c 000007d9: PUSH1 0x00 000007db: SWAP1 000007dc: SLOAD 000007dd: SWAP1 000007de: PUSH2 0x0100 000007e1: EXP 000007e2: SWAP1 000007e3: DIV 000007e4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007f9: AND 000007fa: DUP2 000007fb: JUMP 000007fc: JUMPDEST 000007fd: PUSH1 0x0b 000007ff: PUSH1 0x00 00000801: SWAP1 00000802: SLOAD 00000803: SWAP1 00000804: PUSH2 0x0100 00000807: EXP 00000808: SWAP1 00000809: DIV 0000080a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000081f: AND 00000820: DUP2 00000821: JUMP 00000822: JUMPDEST 00000823: PUSH1 0x03 00000825: SLOAD 00000826: TIMESTAMP 00000827: GT 00000828: PUSH2 0x0899 0000082b: JUMPI 0000082c: PUSH1 0x40 0000082e: MLOAD 0000082f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000850: DUP2 00000851: MSTORE 00000852: PUSH1 0x04 00000854: ADD 00000855: DUP1 00000856: DUP1 00000857: PUSH1 0x20 00000859: ADD 0000085a: DUP3 0000085b: DUP2 0000085c: SUB 0000085d: DUP3 0000085e: MSTORE 0000085f: PUSH1 0x09 00000861: DUP2 00000862: MSTORE 00000863: PUSH1 0x20 00000865: ADD 00000866: DUP1 00000867: PUSH32 0x544f4f5f4541524c590000000000000000000000000000000000000000000000 00000888: DUP2 00000889: MSTORE 0000088a: POP 0000088b: PUSH1 0x20 0000088d: ADD 0000088e: SWAP2 0000088f: POP 00000890: POP 00000891: PUSH1 0x40 00000893: MLOAD 00000894: DUP1 00000895: SWAP2 00000896: SUB 00000897: SWAP1 00000898: REVERT 00000899: JUMPDEST 0000089a: PUSH1 0x00 0000089c: PUSH1 0x0f 0000089e: PUSH1 0x00 000008a0: SWAP1 000008a1: SLOAD 000008a2: SWAP1 000008a3: PUSH2 0x0100 000008a6: EXP 000008a7: SWAP1 000008a8: DIV 000008a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008be: AND 000008bf: SWAP1 000008c0: POP 000008c1: DUP1 000008c2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008d7: AND 000008d8: PUSH4 0x4f69c0d4 000008dd: PUSH8 0x0de0b6b3a7640000 000008e6: DUP5 000008e7: MUL 000008e8: PUSH1 0x05 000008ea: PUSH1 0x40 000008ec: MLOAD 000008ed: DUP4 000008ee: PUSH4 0xffffffff 000008f3: AND 000008f4: PUSH1 0xe0 000008f6: SHL 000008f7: DUP2 000008f8: MSTORE 000008f9: PUSH1 0x04 000008fb: ADD 000008fc: DUP1 000008fd: DUP4 000008fe: DUP2 000008ff: MSTORE 00000900: PUSH1 0x20 00000902: ADD 00000903: DUP1 00000904: PUSH1 0x20 00000906: ADD 00000907: DUP3 00000908: DUP2 00000909: SUB 0000090a: DUP3 0000090b: MSTORE 0000090c: DUP4 0000090d: DUP2 0000090e: DUP2 0000090f: SLOAD 00000910: DUP2 00000911: MSTORE 00000912: PUSH1 0x20 00000914: ADD 00000915: SWAP2 00000916: POP 00000917: DUP1 00000918: SLOAD 00000919: DUP1 0000091a: ISZERO 0000091b: PUSH2 0x0943 0000091e: JUMPI 0000091f: PUSH1 0x20 00000921: MUL 00000922: DUP3 00000923: ADD 00000924: SWAP2 00000925: SWAP1 00000926: PUSH1 0x00 00000928: MSTORE 00000929: PUSH1 0x20 0000092b: PUSH1 0x00 0000092d: KECCAK256 0000092e: SWAP1 0000092f: JUMPDEST 00000930: DUP2 00000931: SLOAD 00000932: DUP2 00000933: MSTORE 00000934: PUSH1 0x20 00000936: ADD 00000937: SWAP1 00000938: PUSH1 0x01 0000093a: ADD 0000093b: SWAP1 0000093c: DUP1 0000093d: DUP4 0000093e: GT 0000093f: PUSH2 0x092f 00000942: JUMPI 00000943: JUMPDEST 00000944: POP 00000945: POP 00000946: SWAP4 00000947: POP 00000948: POP 00000949: POP 0000094a: POP 0000094b: PUSH1 0x00 0000094d: PUSH1 0x40 0000094f: MLOAD 00000950: DUP1 00000951: DUP4 00000952: SUB 00000953: DUP2 00000954: PUSH1 0x00 00000956: DUP8 00000957: DUP1 00000958: EXTCODESIZE 00000959: ISZERO 0000095a: DUP1 0000095b: ISZERO 0000095c: PUSH2 0x0964 0000095f: JUMPI 00000960: PUSH1 0x00 00000962: DUP1 00000963: REVERT 00000964: JUMPDEST 00000965: POP 00000966: GAS 00000967: CALL 00000968: ISZERO 00000969: DUP1 0000096a: ISZERO 0000096b: PUSH2 0x0978 0000096e: JUMPI 0000096f: RETURNDATASIZE 00000970: PUSH1 0x00 00000972: DUP1 00000973: RETURNDATACOPY 00000974: RETURNDATASIZE 00000975: PUSH1 0x00 00000977: REVERT 00000978: JUMPDEST 00000979: POP 0000097a: POP 0000097b: POP 0000097c: POP 0000097d: POP 0000097e: POP 0000097f: JUMP 00000980: JUMPDEST 00000981: PUSH1 0x06 00000983: PUSH1 0x00 00000985: SWAP1 00000986: SLOAD 00000987: SWAP1 00000988: PUSH2 0x0100 0000098b: EXP 0000098c: SWAP1 0000098d: DIV 0000098e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009a3: AND 000009a4: DUP2 000009a5: JUMP 000009a6: JUMPDEST 000009a7: PUSH1 0x10 000009a9: PUSH1 0x00 000009ab: SWAP1 000009ac: SLOAD 000009ad: SWAP1 000009ae: PUSH2 0x0100 000009b1: EXP 000009b2: SWAP1 000009b3: DIV 000009b4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009c9: AND 000009ca: DUP2 000009cb: JUMP 000009cc: JUMPDEST 000009cd: PUSH1 0x0d 000009cf: PUSH1 0x00 000009d1: SWAP1 000009d2: SLOAD 000009d3: SWAP1 000009d4: PUSH2 0x0100 000009d7: EXP 000009d8: SWAP1 000009d9: DIV 000009da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009ef: AND 000009f0: DUP2 000009f1: JUMP 000009f2: JUMPDEST 000009f3: PUSH1 0x08 000009f5: PUSH1 0x00 000009f7: SWAP1 000009f8: SLOAD 000009f9: SWAP1 000009fa: PUSH2 0x0100 000009fd: EXP 000009fe: SWAP1 000009ff: DIV 00000a00: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a15: AND 00000a16: DUP2 00000a17: JUMP 00000a18: JUMPDEST 00000a19: PUSH1 0x01 00000a1b: PUSH1 0x00 00000a1d: SWAP1 00000a1e: SLOAD 00000a1f: SWAP1 00000a20: PUSH2 0x0100 00000a23: EXP 00000a24: SWAP1 00000a25: DIV 00000a26: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a3b: AND 00000a3c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a51: AND 00000a52: CALLER 00000a53: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a68: AND 00000a69: EQ 00000a6a: PUSH2 0x0a72 00000a6d: JUMPI 00000a6e: PUSH1 0x00 00000a70: DUP1 00000a71: REVERT 00000a72: JUMPDEST 00000a73: PUSH2 0x0a7a 00000a76: PUSH2 0x1972 00000a79: JUMP 00000a7a: JUMPDEST 00000a7b: JUMP 00000a7c: JUMPDEST 00000a7d: PUSH1 0x01 00000a7f: PUSH1 0x00 00000a81: SWAP1 00000a82: SLOAD 00000a83: SWAP1 00000a84: PUSH2 0x0100 00000a87: EXP 00000a88: SWAP1 00000a89: DIV 00000a8a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a9f: AND 00000aa0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ab5: AND 00000ab6: CALLER 00000ab7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000acc: AND 00000acd: EQ 00000ace: PUSH2 0x0ad6 00000ad1: JUMPI 00000ad2: PUSH1 0x00 00000ad4: DUP1 00000ad5: REVERT 00000ad6: JUMPDEST 00000ad7: PUSH1 0x00 00000ad9: ISZERO 00000ada: ISZERO 00000adb: PUSH1 0x19 00000add: PUSH1 0x00 00000adf: SWAP1 00000ae0: SLOAD 00000ae1: SWAP1 00000ae2: PUSH2 0x0100 00000ae5: EXP 00000ae6: SWAP1 00000ae7: DIV 00000ae8: PUSH1 0xff 00000aea: AND 00000aeb: ISZERO 00000aec: ISZERO 00000aed: EQ 00000aee: PUSH2 0x0b5f 00000af1: JUMPI 00000af2: PUSH1 0x40 00000af4: MLOAD 00000af5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000b16: DUP2 00000b17: MSTORE 00000b18: PUSH1 0x04 00000b1a: ADD 00000b1b: DUP1 00000b1c: DUP1 00000b1d: PUSH1 0x20 00000b1f: ADD 00000b20: DUP3 00000b21: DUP2 00000b22: SUB 00000b23: DUP3 00000b24: MSTORE 00000b25: PUSH1 0x14 00000b27: DUP2 00000b28: MSTORE 00000b29: PUSH1 0x20 00000b2b: ADD 00000b2c: DUP1 00000b2d: PUSH32 0x4144445245535345535f4e4f545f4c4f434b4544000000000000000000000000 00000b4e: DUP2 00000b4f: MSTORE 00000b50: POP 00000b51: PUSH1 0x20 00000b53: ADD 00000b54: SWAP2 00000b55: POP 00000b56: POP 00000b57: PUSH1 0x40 00000b59: MLOAD 00000b5a: DUP1 00000b5b: SWAP2 00000b5c: SUB 00000b5d: SWAP1 00000b5e: REVERT 00000b5f: JUMPDEST 00000b60: DUP2 00000b61: PUSH1 0x0e 00000b63: PUSH1 0x00 00000b65: PUSH2 0x0100 00000b68: EXP 00000b69: DUP2 00000b6a: SLOAD 00000b6b: DUP2 00000b6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b81: MUL 00000b82: NOT 00000b83: AND 00000b84: SWAP1 00000b85: DUP4 00000b86: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b9b: AND 00000b9c: MUL 00000b9d: OR 00000b9e: SWAP1 00000b9f: SSTORE 00000ba0: POP 00000ba1: DUP1 00000ba2: PUSH1 0x0f 00000ba4: PUSH1 0x00 00000ba6: PUSH2 0x0100 00000ba9: EXP 00000baa: DUP2 00000bab: SLOAD 00000bac: DUP2 00000bad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bc2: MUL 00000bc3: NOT 00000bc4: AND 00000bc5: SWAP1 00000bc6: DUP4 00000bc7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bdc: AND 00000bdd: MUL 00000bde: OR 00000bdf: SWAP1 00000be0: SSTORE 00000be1: POP 00000be2: POP 00000be3: POP 00000be4: JUMP 00000be5: JUMPDEST 00000be6: PUSH1 0x03 00000be8: SLOAD 00000be9: TIMESTAMP 00000bea: GT 00000beb: PUSH2 0x0c5c 00000bee: JUMPI 00000bef: PUSH1 0x40 00000bf1: MLOAD 00000bf2: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000c13: DUP2 00000c14: MSTORE 00000c15: PUSH1 0x04 00000c17: ADD 00000c18: DUP1 00000c19: DUP1 00000c1a: PUSH1 0x20 00000c1c: ADD 00000c1d: DUP3 00000c1e: DUP2 00000c1f: SUB 00000c20: DUP3 00000c21: MSTORE 00000c22: PUSH1 0x09 00000c24: DUP2 00000c25: MSTORE 00000c26: PUSH1 0x20 00000c28: ADD 00000c29: DUP1 00000c2a: PUSH32 0x544f4f5f4541524c590000000000000000000000000000000000000000000000 00000c4b: DUP2 00000c4c: MSTORE 00000c4d: POP 00000c4e: PUSH1 0x20 00000c50: ADD 00000c51: SWAP2 00000c52: POP 00000c53: POP 00000c54: PUSH1 0x40 00000c56: MLOAD 00000c57: DUP1 00000c58: SWAP2 00000c59: SUB 00000c5a: SWAP1 00000c5b: REVERT 00000c5c: JUMPDEST 00000c5d: PUSH2 0x0c64 00000c60: PUSH2 0x1972 00000c63: JUMP 00000c64: JUMPDEST 00000c65: JUMP 00000c66: JUMPDEST 00000c67: PUSH1 0x09 00000c69: PUSH1 0x00 00000c6b: SWAP1 00000c6c: SLOAD 00000c6d: SWAP1 00000c6e: PUSH2 0x0100 00000c71: EXP 00000c72: SWAP1 00000c73: DIV 00000c74: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c89: AND 00000c8a: DUP2 00000c8b: JUMP 00000c8c: JUMPDEST 00000c8d: PUSH1 0x0e 00000c8f: PUSH1 0x00 00000c91: SWAP1 00000c92: SLOAD 00000c93: SWAP1 00000c94: PUSH2 0x0100 00000c97: EXP 00000c98: SWAP1 00000c99: DIV 00000c9a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000caf: AND 00000cb0: DUP2 00000cb1: JUMP 00000cb2: JUMPDEST 00000cb3: PUSH1 0x07 00000cb5: PUSH1 0x00 00000cb7: SWAP1 00000cb8: SLOAD 00000cb9: SWAP1 00000cba: PUSH2 0x0100 00000cbd: EXP 00000cbe: SWAP1 00000cbf: DIV 00000cc0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cd5: AND 00000cd6: DUP2 00000cd7: JUMP 00000cd8: JUMPDEST 00000cd9: PUSH1 0x01 00000cdb: PUSH1 0x00 00000cdd: SWAP1 00000cde: SLOAD 00000cdf: SWAP1 00000ce0: PUSH2 0x0100 00000ce3: EXP 00000ce4: SWAP1 00000ce5: DIV 00000ce6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cfb: AND 00000cfc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d11: AND 00000d12: CALLER 00000d13: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d28: AND 00000d29: EQ 00000d2a: PUSH2 0x0d32 00000d2d: JUMPI 00000d2e: PUSH1 0x00 00000d30: DUP1 00000d31: REVERT 00000d32: JUMPDEST 00000d33: PUSH1 0x00 00000d35: PUSH1 0x0f 00000d37: PUSH1 0x00 00000d39: SWAP1 00000d3a: SLOAD 00000d3b: SWAP1 00000d3c: PUSH2 0x0100 00000d3f: EXP 00000d40: SWAP1 00000d41: DIV 00000d42: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d57: AND 00000d58: SWAP1 00000d59: POP 00000d5a: DUP1 00000d5b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d70: AND 00000d71: PUSH4 0x4f69c0d4 00000d76: PUSH8 0x0de0b6b3a7640000 00000d7f: DUP5 00000d80: MUL 00000d81: PUSH1 0x05 00000d83: PUSH1 0x40 00000d85: MLOAD 00000d86: DUP4 00000d87: PUSH4 0xffffffff 00000d8c: AND 00000d8d: PUSH1 0xe0 00000d8f: SHL 00000d90: DUP2 00000d91: MSTORE 00000d92: PUSH1 0x04 00000d94: ADD 00000d95: DUP1 00000d96: DUP4 00000d97: DUP2 00000d98: MSTORE 00000d99: PUSH1 0x20 00000d9b: ADD 00000d9c: DUP1 00000d9d: PUSH1 0x20 00000d9f: ADD 00000da0: DUP3 00000da1: DUP2 00000da2: SUB 00000da3: DUP3 00000da4: MSTORE 00000da5: DUP4 00000da6: DUP2 00000da7: DUP2 00000da8: SLOAD 00000da9: DUP2 00000daa: MSTORE 00000dab: PUSH1 0x20 00000dad: ADD 00000dae: SWAP2 00000daf: POP 00000db0: DUP1 00000db1: SLOAD 00000db2: DUP1 00000db3: ISZERO 00000db4: PUSH2 0x0ddc 00000db7: JUMPI 00000db8: PUSH1 0x20 00000dba: MUL 00000dbb: DUP3 00000dbc: ADD 00000dbd: SWAP2 00000dbe: SWAP1 00000dbf: PUSH1 0x00 00000dc1: MSTORE 00000dc2: PUSH1 0x20 00000dc4: PUSH1 0x00 00000dc6: KECCAK256 00000dc7: SWAP1 00000dc8: JUMPDEST 00000dc9: DUP2 00000dca: SLOAD 00000dcb: DUP2 00000dcc: MSTORE 00000dcd: PUSH1 0x20 00000dcf: ADD 00000dd0: SWAP1 00000dd1: PUSH1 0x01 00000dd3: ADD 00000dd4: SWAP1 00000dd5: DUP1 00000dd6: DUP4 00000dd7: GT 00000dd8: PUSH2 0x0dc8 00000ddb: JUMPI 00000ddc: JUMPDEST 00000ddd: POP 00000dde: POP 00000ddf: SWAP4 00000de0: POP 00000de1: POP 00000de2: POP 00000de3: POP 00000de4: PUSH1 0x00 00000de6: PUSH1 0x40 00000de8: MLOAD 00000de9: DUP1 00000dea: DUP4 00000deb: SUB 00000dec: DUP2 00000ded: PUSH1 0x00 00000def: DUP8 00000df0: DUP1 00000df1: EXTCODESIZE 00000df2: ISZERO 00000df3: DUP1 00000df4: ISZERO 00000df5: PUSH2 0x0dfd 00000df8: JUMPI 00000df9: PUSH1 0x00 00000dfb: DUP1 00000dfc: REVERT 00000dfd: JUMPDEST 00000dfe: POP 00000dff: GAS 00000e00: CALL 00000e01: ISZERO 00000e02: DUP1 00000e03: ISZERO 00000e04: PUSH2 0x0e11 00000e07: JUMPI 00000e08: RETURNDATASIZE 00000e09: PUSH1 0x00 00000e0b: DUP1 00000e0c: RETURNDATACOPY 00000e0d: RETURNDATASIZE 00000e0e: PUSH1 0x00 00000e10: REVERT 00000e11: JUMPDEST 00000e12: POP 00000e13: POP 00000e14: POP 00000e15: POP 00000e16: POP 00000e17: POP 00000e18: JUMP 00000e19: JUMPDEST 00000e1a: PUSH1 0x01 00000e1c: PUSH1 0x00 00000e1e: SWAP1 00000e1f: SLOAD 00000e20: SWAP1 00000e21: PUSH2 0x0100 00000e24: EXP 00000e25: SWAP1 00000e26: DIV 00000e27: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e3c: AND 00000e3d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e52: AND 00000e53: CALLER 00000e54: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e69: AND 00000e6a: EQ 00000e6b: PUSH2 0x0e73 00000e6e: JUMPI 00000e6f: PUSH1 0x00 00000e71: DUP1 00000e72: REVERT 00000e73: JUMPDEST 00000e74: PUSH1 0x00 00000e76: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e8b: AND 00000e8c: PUSH1 0x0e 00000e8e: PUSH1 0x00 00000e90: SWAP1 00000e91: SLOAD 00000e92: SWAP1 00000e93: PUSH2 0x0100 00000e96: EXP 00000e97: SWAP1 00000e98: DIV 00000e99: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000eae: AND 00000eaf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ec4: AND 00000ec5: EQ 00000ec6: ISZERO 00000ec7: DUP1 00000ec8: ISZERO 00000ec9: PUSH2 0x0f21 00000ecc: JUMPI 00000ecd: POP 00000ece: PUSH1 0x00 00000ed0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ee5: AND 00000ee6: PUSH1 0x06 00000ee8: PUSH1 0x00 00000eea: SWAP1 00000eeb: SLOAD 00000eec: SWAP1 00000eed: PUSH2 0x0100 00000ef0: EXP 00000ef1: SWAP1 00000ef2: DIV 00000ef3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f08: AND 00000f09: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f1e: AND 00000f1f: EQ 00000f20: ISZERO 00000f21: JUMPDEST 00000f22: PUSH2 0x0f93 00000f25: JUMPI 00000f26: PUSH1 0x40 00000f28: MLOAD 00000f29: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000f4a: DUP2 00000f4b: MSTORE 00000f4c: PUSH1 0x04 00000f4e: ADD 00000f4f: DUP1 00000f50: DUP1 00000f51: PUSH1 0x20 00000f53: ADD 00000f54: DUP3 00000f55: DUP2 00000f56: SUB 00000f57: DUP3 00000f58: MSTORE 00000f59: PUSH1 0x11 00000f5b: DUP2 00000f5c: MSTORE 00000f5d: PUSH1 0x20 00000f5f: ADD 00000f60: DUP1 00000f61: PUSH32 0x4144445245535345535f4e4f545f534554000000000000000000000000000000 00000f82: DUP2 00000f83: MSTORE 00000f84: POP 00000f85: PUSH1 0x20 00000f87: ADD 00000f88: SWAP2 00000f89: POP 00000f8a: POP 00000f8b: PUSH1 0x40 00000f8d: MLOAD 00000f8e: DUP1 00000f8f: SWAP2 00000f90: SUB 00000f91: SWAP1 00000f92: REVERT 00000f93: JUMPDEST 00000f94: PUSH1 0x01 00000f96: PUSH1 0x19 00000f98: PUSH1 0x00 00000f9a: PUSH2 0x0100 00000f9d: EXP 00000f9e: DUP2 00000f9f: SLOAD 00000fa0: DUP2 00000fa1: PUSH1 0xff 00000fa3: MUL 00000fa4: NOT 00000fa5: AND 00000fa6: SWAP1 00000fa7: DUP4 00000fa8: ISZERO 00000fa9: ISZERO 00000faa: MUL 00000fab: OR 00000fac: SWAP1 00000fad: SSTORE 00000fae: POP 00000faf: JUMP 00000fb0: JUMPDEST 00000fb1: PUSH1 0x01 00000fb3: PUSH1 0x00 00000fb5: SWAP1 00000fb6: SLOAD 00000fb7: SWAP1 00000fb8: PUSH2 0x0100 00000fbb: EXP 00000fbc: SWAP1 00000fbd: DIV 00000fbe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fd3: AND 00000fd4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fe9: AND 00000fea: CALLER 00000feb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001000: AND 00001001: EQ 00001002: PUSH2 0x100a 00001005: JUMPI 00001006: PUSH1 0x00 00001008: DUP1 00001009: REVERT 0000100a: JUMPDEST 0000100b: PUSH1 0x00 0000100d: ISZERO 0000100e: ISZERO 0000100f: PUSH1 0x19 00001011: PUSH1 0x00 00001013: SWAP1 00001014: SLOAD 00001015: SWAP1 00001016: PUSH2 0x0100 00001019: EXP 0000101a: SWAP1 0000101b: DIV 0000101c: PUSH1 0xff 0000101e: AND 0000101f: ISZERO 00001020: ISZERO 00001021: EQ 00001022: PUSH2 0x1093 00001025: JUMPI 00001026: PUSH1 0x40 00001028: MLOAD 00001029: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000104a: DUP2 0000104b: MSTORE 0000104c: PUSH1 0x04 0000104e: ADD 0000104f: DUP1 00001050: DUP1 00001051: PUSH1 0x20 00001053: ADD 00001054: DUP3 00001055: DUP2 00001056: SUB 00001057: DUP3 00001058: MSTORE 00001059: PUSH1 0x14 0000105b: DUP2 0000105c: MSTORE 0000105d: PUSH1 0x20 0000105f: ADD 00001060: DUP1 00001061: PUSH32 0x4144445245535345535f4e4f545f4c4f434b4544000000000000000000000000 00001082: DUP2 00001083: MSTORE 00001084: POP 00001085: PUSH1 0x20 00001087: ADD 00001088: SWAP2 00001089: POP 0000108a: POP 0000108b: PUSH1 0x40 0000108d: MLOAD 0000108e: DUP1 0000108f: SWAP2 00001090: SUB 00001091: SWAP1 00001092: REVERT 00001093: JUMPDEST 00001094: DUP8 00001095: PUSH1 0x06 00001097: PUSH1 0x00 00001099: PUSH2 0x0100 0000109c: EXP 0000109d: DUP2 0000109e: SLOAD 0000109f: DUP2 000010a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010b5: MUL 000010b6: NOT 000010b7: AND 000010b8: SWAP1 000010b9: DUP4 000010ba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010cf: AND 000010d0: MUL 000010d1: OR 000010d2: SWAP1 000010d3: SSTORE 000010d4: POP 000010d5: DUP7 000010d6: PUSH1 0x07 000010d8: PUSH1 0x00 000010da: PUSH2 0x0100 000010dd: EXP 000010de: DUP2 000010df: SLOAD 000010e0: DUP2 000010e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010f6: MUL 000010f7: NOT 000010f8: AND 000010f9: SWAP1 000010fa: DUP4 000010fb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001110: AND 00001111: MUL 00001112: OR 00001113: SWAP1 00001114: SSTORE 00001115: POP 00001116: PUSH1 0x40 00001118: MLOAD 00001119: DUP1 0000111a: PUSH1 0x40 0000111c: ADD 0000111d: PUSH1 0x40 0000111f: MSTORE 00001120: DUP1 00001121: DUP10 00001122: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001137: AND 00001138: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000114d: AND 0000114e: DUP2 0000114f: MSTORE 00001150: PUSH1 0x20 00001152: ADD 00001153: DUP9 00001154: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001169: AND 0000116a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000117f: AND 00001180: DUP2 00001181: MSTORE 00001182: POP 00001183: PUSH1 0x11 00001185: SWAP1 00001186: PUSH1 0x02 00001188: PUSH2 0x1192 0000118b: SWAP3 0000118c: SWAP2 0000118d: SWAP1 0000118e: PUSH2 0x30fd 00001191: JUMP 00001192: JUMPDEST 00001193: POP 00001194: DUP6 00001195: PUSH1 0x08 00001197: PUSH1 0x00 00001199: PUSH2 0x0100 0000119c: EXP 0000119d: DUP2 0000119e: SLOAD 0000119f: DUP2 000011a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011b5: MUL 000011b6: NOT 000011b7: AND 000011b8: SWAP1 000011b9: DUP4 000011ba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011cf: AND 000011d0: MUL 000011d1: OR 000011d2: SWAP1 000011d3: SSTORE 000011d4: POP 000011d5: PUSH1 0x40 000011d7: MLOAD 000011d8: DUP1 000011d9: PUSH1 0x40 000011db: ADD 000011dc: PUSH1 0x40 000011de: MSTORE 000011df: DUP1 000011e0: DUP10 000011e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011f6: AND 000011f7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000120c: AND 0000120d: DUP2 0000120e: MSTORE 0000120f: PUSH1 0x20 00001211: ADD 00001212: DUP8 00001213: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001228: AND 00001229: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000123e: AND 0000123f: DUP2 00001240: MSTORE 00001241: POP 00001242: PUSH1 0x12 00001244: SWAP1 00001245: PUSH1 0x02 00001247: PUSH2 0x1251 0000124a: SWAP3 0000124b: SWAP2 0000124c: SWAP1 0000124d: PUSH2 0x30fd 00001250: JUMP 00001251: JUMPDEST 00001252: POP 00001253: DUP5 00001254: PUSH1 0x09 00001256: PUSH1 0x00 00001258: PUSH2 0x0100 0000125b: EXP 0000125c: DUP2 0000125d: SLOAD 0000125e: DUP2 0000125f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001274: MUL 00001275: NOT 00001276: AND 00001277: SWAP1 00001278: DUP4 00001279: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000128e: AND 0000128f: MUL 00001290: OR 00001291: SWAP1 00001292: SSTORE 00001293: POP 00001294: PUSH1 0x40 00001296: MLOAD 00001297: DUP1 00001298: PUSH1 0x40 0000129a: ADD 0000129b: PUSH1 0x40 0000129d: MSTORE 0000129e: DUP1 0000129f: DUP10 000012a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012b5: AND 000012b6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012cb: AND 000012cc: DUP2 000012cd: MSTORE 000012ce: PUSH1 0x20 000012d0: ADD 000012d1: DUP7 000012d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012e7: AND 000012e8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012fd: AND 000012fe: DUP2 000012ff: MSTORE 00001300: POP 00001301: PUSH1 0x13 00001303: SWAP1 00001304: PUSH1 0x02 00001306: PUSH2 0x1310 00001309: SWAP3 0000130a: SWAP2 0000130b: SWAP1 0000130c: PUSH2 0x30fd 0000130f: JUMP 00001310: JUMPDEST 00001311: POP 00001312: DUP4 00001313: PUSH1 0x0a 00001315: PUSH1 0x00 00001317: PUSH2 0x0100 0000131a: EXP 0000131b: DUP2 0000131c: SLOAD 0000131d: DUP2 0000131e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001333: MUL 00001334: NOT 00001335: AND 00001336: SWAP1 00001337: DUP4 00001338: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000134d: AND 0000134e: MUL 0000134f: OR 00001350: SWAP1 00001351: SSTORE 00001352: POP 00001353: PUSH1 0x40 00001355: MLOAD 00001356: DUP1 00001357: PUSH1 0x40 00001359: ADD 0000135a: PUSH1 0x40 0000135c: MSTORE 0000135d: DUP1 0000135e: DUP10 0000135f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001374: AND 00001375: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000138a: AND 0000138b: DUP2 0000138c: MSTORE 0000138d: PUSH1 0x20 0000138f: ADD 00001390: DUP6 00001391: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013a6: AND 000013a7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013bc: AND 000013bd: DUP2 000013be: MSTORE 000013bf: POP 000013c0: PUSH1 0x14 000013c2: SWAP1 000013c3: PUSH1 0x02 000013c5: PUSH2 0x13cf 000013c8: SWAP3 000013c9: SWAP2 000013ca: SWAP1 000013cb: PUSH2 0x30fd 000013ce: JUMP 000013cf: JUMPDEST 000013d0: POP 000013d1: DUP3 000013d2: PUSH1 0x0b 000013d4: PUSH1 0x00 000013d6: PUSH2 0x0100 000013d9: EXP 000013da: DUP2 000013db: SLOAD 000013dc: DUP2 000013dd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013f2: MUL 000013f3: NOT 000013f4: AND 000013f5: SWAP1 000013f6: DUP4 000013f7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000140c: AND 0000140d: MUL 0000140e: OR 0000140f: SWAP1 00001410: SSTORE 00001411: POP 00001412: PUSH1 0x40 00001414: MLOAD 00001415: DUP1 00001416: PUSH1 0x40 00001418: ADD 00001419: PUSH1 0x40 0000141b: MSTORE 0000141c: DUP1 0000141d: DUP10 0000141e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001433: AND 00001434: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001449: AND 0000144a: DUP2 0000144b: MSTORE 0000144c: PUSH1 0x20 0000144e: ADD 0000144f: DUP5 00001450: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001465: AND 00001466: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000147b: AND 0000147c: DUP2 0000147d: MSTORE 0000147e: POP 0000147f: PUSH1 0x15 00001481: SWAP1 00001482: PUSH1 0x02 00001484: PUSH2 0x148e 00001487: SWAP3 00001488: SWAP2 00001489: SWAP1 0000148a: PUSH2 0x30fd 0000148d: JUMP 0000148e: JUMPDEST 0000148f: POP 00001490: DUP2 00001491: PUSH1 0x0c 00001493: PUSH1 0x00 00001495: PUSH2 0x0100 00001498: EXP 00001499: DUP2 0000149a: SLOAD 0000149b: DUP2 0000149c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014b1: MUL 000014b2: NOT 000014b3: AND 000014b4: SWAP1 000014b5: DUP4 000014b6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014cb: AND 000014cc: MUL 000014cd: OR 000014ce: SWAP1 000014cf: SSTORE 000014d0: POP 000014d1: PUSH1 0x40 000014d3: MLOAD 000014d4: DUP1 000014d5: PUSH1 0x40 000014d7: ADD 000014d8: PUSH1 0x40 000014da: MSTORE 000014db: DUP1 000014dc: DUP10 000014dd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014f2: AND 000014f3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001508: AND 00001509: DUP2 0000150a: MSTORE 0000150b: PUSH1 0x20 0000150d: ADD 0000150e: DUP4 0000150f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001524: AND 00001525: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000153a: AND 0000153b: DUP2 0000153c: MSTORE 0000153d: POP 0000153e: PUSH1 0x16 00001540: SWAP1 00001541: PUSH1 0x02 00001543: PUSH2 0x154d 00001546: SWAP3 00001547: SWAP2 00001548: SWAP1 00001549: PUSH2 0x30fd 0000154c: JUMP 0000154d: JUMPDEST 0000154e: POP 0000154f: DUP1 00001550: PUSH1 0x0d 00001552: PUSH1 0x00 00001554: PUSH2 0x0100 00001557: EXP 00001558: DUP2 00001559: SLOAD 0000155a: DUP2 0000155b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001570: MUL 00001571: NOT 00001572: AND 00001573: SWAP1 00001574: DUP4 00001575: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000158a: AND 0000158b: MUL 0000158c: OR 0000158d: SWAP1 0000158e: SSTORE 0000158f: POP 00001590: PUSH1 0x40 00001592: MLOAD 00001593: DUP1 00001594: PUSH1 0x40 00001596: ADD 00001597: PUSH1 0x40 00001599: MSTORE 0000159a: DUP1 0000159b: DUP10 0000159c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015b1: AND 000015b2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015c7: AND 000015c8: DUP2 000015c9: MSTORE 000015ca: PUSH1 0x20 000015cc: ADD 000015cd: DUP3 000015ce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015e3: AND 000015e4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015f9: AND 000015fa: DUP2 000015fb: MSTORE 000015fc: POP 000015fd: PUSH1 0x17 000015ff: SWAP1 00001600: PUSH1 0x02 00001602: PUSH2 0x160c 00001605: SWAP3 00001606: SWAP2 00001607: SWAP1 00001608: PUSH2 0x30fd 0000160b: JUMP 0000160c: JUMPDEST 0000160d: POP 0000160e: POP 0000160f: POP 00001610: POP 00001611: POP 00001612: POP 00001613: POP 00001614: POP 00001615: POP 00001616: JUMP 00001617: JUMPDEST 00001618: PUSH1 0x0a 0000161a: PUSH1 0x00 0000161c: SWAP1 0000161d: SLOAD 0000161e: SWAP1 0000161f: PUSH2 0x0100 00001622: EXP 00001623: SWAP1 00001624: DIV 00001625: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000163a: AND 0000163b: DUP2 0000163c: JUMP 0000163d: JUMPDEST 0000163e: PUSH1 0x02 00001640: PUSH1 0x00 00001642: SLOAD 00001643: EQ 00001644: ISZERO 00001645: PUSH2 0x16b6 00001648: JUMPI 00001649: PUSH1 0x40 0000164b: MLOAD 0000164c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000166d: DUP2 0000166e: MSTORE 0000166f: PUSH1 0x04 00001671: ADD 00001672: DUP1 00001673: DUP1 00001674: PUSH1 0x20 00001676: ADD 00001677: DUP3 00001678: DUP2 00001679: SUB 0000167a: DUP3 0000167b: MSTORE 0000167c: PUSH1 0x1f 0000167e: DUP2 0000167f: MSTORE 00001680: PUSH1 0x20 00001682: ADD 00001683: DUP1 00001684: PUSH32 0x5265656e7472616e637947756172643a207265656e7472616e742063616c6c00 000016a5: DUP2 000016a6: MSTORE 000016a7: POP 000016a8: PUSH1 0x20 000016aa: ADD 000016ab: SWAP2 000016ac: POP 000016ad: POP 000016ae: PUSH1 0x40 000016b0: MLOAD 000016b1: DUP1 000016b2: SWAP2 000016b3: SUB 000016b4: SWAP1 000016b5: REVERT 000016b6: JUMPDEST 000016b7: PUSH1 0x02 000016b9: PUSH1 0x00 000016bb: DUP2 000016bc: SWAP1 000016bd: SSTORE 000016be: POP 000016bf: PUSH1 0x00 000016c1: PUSH1 0x0c 000016c3: PUSH1 0x00 000016c5: SWAP1 000016c6: SLOAD 000016c7: SWAP1 000016c8: PUSH2 0x0100 000016cb: EXP 000016cc: SWAP1 000016cd: DIV 000016ce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016e3: AND 000016e4: SWAP1 000016e5: POP 000016e6: PUSH1 0x00 000016e8: DUP2 000016e9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016fe: AND 000016ff: PUSH4 0x70a08231 00001704: ADDRESS 00001705: PUSH1 0x40 00001707: MLOAD 00001708: DUP3 00001709: PUSH4 0xffffffff 0000170e: AND 0000170f: PUSH1 0xe0 00001711: SHL 00001712: DUP2 00001713: MSTORE 00001714: PUSH1 0x04 00001716: ADD 00001717: DUP1 00001718: DUP3 00001719: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000172e: AND 0000172f: DUP2 00001730: MSTORE 00001731: PUSH1 0x20 00001733: ADD 00001734: SWAP2 00001735: POP 00001736: POP 00001737: PUSH1 0x20 00001739: PUSH1 0x40 0000173b: MLOAD 0000173c: DUP1 0000173d: DUP4 0000173e: SUB 0000173f: DUP2 00001740: DUP7 00001741: DUP1 00001742: EXTCODESIZE 00001743: ISZERO 00001744: DUP1 00001745: ISZERO 00001746: PUSH2 0x174e 00001749: JUMPI 0000174a: PUSH1 0x00 0000174c: DUP1 0000174d: REVERT 0000174e: JUMPDEST 0000174f: POP 00001750: GAS 00001751: STATICCALL 00001752: ISZERO 00001753: DUP1 00001754: ISZERO 00001755: PUSH2 0x1762 00001758: JUMPI 00001759: RETURNDATASIZE 0000175a: PUSH1 0x00 0000175c: DUP1 0000175d: RETURNDATACOPY 0000175e: RETURNDATASIZE 0000175f: PUSH1 0x00 00001761: REVERT 00001762: JUMPDEST 00001763: POP 00001764: POP 00001765: POP 00001766: POP 00001767: PUSH1 0x40 00001769: MLOAD 0000176a: RETURNDATASIZE 0000176b: PUSH1 0x20 0000176d: DUP2 0000176e: LT 0000176f: ISZERO 00001770: PUSH2 0x1778 00001773: JUMPI 00001774: PUSH1 0x00 00001776: DUP1 00001777: REVERT 00001778: JUMPDEST 00001779: DUP2 0000177a: ADD 0000177b: SWAP1 0000177c: DUP1 0000177d: DUP1 0000177e: MLOAD 0000177f: SWAP1 00001780: PUSH1 0x20 00001782: ADD 00001783: SWAP1 00001784: SWAP3 00001785: SWAP2 00001786: SWAP1 00001787: POP 00001788: POP 00001789: POP 0000178a: SWAP1 0000178b: POP 0000178c: PUSH1 0x62 0000178e: PUSH1 0x04 00001790: SLOAD 00001791: DUP2 00001792: PUSH2 0x1797 00001795: JUMPI 00001796: INVALID 00001797: JUMPDEST 00001798: DIV 00001799: DUP2 0000179a: LT 0000179b: PUSH2 0x180c 0000179e: JUMPI 0000179f: PUSH1 0x40 000017a1: MLOAD 000017a2: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000017c3: DUP2 000017c4: MSTORE 000017c5: PUSH1 0x04 000017c7: ADD 000017c8: DUP1 000017c9: DUP1 000017ca: PUSH1 0x20 000017cc: ADD 000017cd: DUP3 000017ce: DUP2 000017cf: SUB 000017d0: DUP3 000017d1: MSTORE 000017d2: PUSH1 0x11 000017d4: DUP2 000017d5: MSTORE 000017d6: PUSH1 0x20 000017d8: ADD 000017d9: DUP1 000017da: PUSH32 0x4445504f53545f4d4f52455f46554e4453000000000000000000000000000000 000017fb: DUP2 000017fc: MSTORE 000017fd: POP 000017fe: PUSH1 0x20 00001800: ADD 00001801: SWAP2 00001802: POP 00001803: POP 00001804: PUSH1 0x40 00001806: MLOAD 00001807: DUP1 00001808: SWAP2 00001809: SUB 0000180a: SWAP1 0000180b: REVERT 0000180c: JUMPDEST 0000180d: PUSH2 0x1837 00001810: PUSH1 0x0c 00001812: PUSH1 0x00 00001814: SWAP1 00001815: SLOAD 00001816: SWAP1 00001817: PUSH2 0x0100 0000181a: EXP 0000181b: SWAP1 0000181c: DIV 0000181d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001832: AND 00001833: PUSH2 0x28cb 00001836: JUMP 00001837: JUMPDEST 00001838: PUSH2 0x1862 0000183b: PUSH1 0x0d 0000183d: PUSH1 0x00 0000183f: SWAP1 00001840: SLOAD 00001841: SWAP1 00001842: PUSH2 0x0100 00001845: EXP 00001846: SWAP1 00001847: DIV 00001848: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000185d: AND 0000185e: PUSH2 0x28cb 00001861: JUMP 00001862: JUMPDEST 00001863: PUSH2 0x188d 00001866: PUSH1 0x09 00001868: PUSH1 0x00 0000186a: SWAP1 0000186b: SLOAD 0000186c: SWAP1 0000186d: PUSH2 0x0100 00001870: EXP 00001871: SWAP1 00001872: DIV 00001873: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001888: AND 00001889: PUSH2 0x28cb 0000188c: JUMP 0000188d: JUMPDEST 0000188e: PUSH2 0x18b8 00001891: PUSH1 0x0a 00001893: PUSH1 0x00 00001895: SWAP1 00001896: SLOAD 00001897: SWAP1 00001898: PUSH2 0x0100 0000189b: EXP 0000189c: SWAP1 0000189d: DIV 0000189e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018b3: AND 000018b4: PUSH2 0x28cb 000018b7: JUMP 000018b8: JUMPDEST 000018b9: PUSH2 0x18e3 000018bc: PUSH1 0x0b 000018be: PUSH1 0x00 000018c0: SWAP1 000018c1: SLOAD 000018c2: SWAP1 000018c3: PUSH2 0x0100 000018c6: EXP 000018c7: SWAP1 000018c8: DIV 000018c9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018de: AND 000018df: PUSH2 0x28cb 000018e2: JUMP 000018e3: JUMPDEST 000018e4: PUSH2 0x190e 000018e7: PUSH1 0x08 000018e9: PUSH1 0x00 000018eb: SWAP1 000018ec: SLOAD 000018ed: SWAP1 000018ee: PUSH2 0x0100 000018f1: EXP 000018f2: SWAP1 000018f3: DIV 000018f4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001909: AND 0000190a: PUSH2 0x28cb 0000190d: JUMP 0000190e: JUMPDEST 0000190f: PUSH2 0x1939 00001912: PUSH1 0x07 00001914: PUSH1 0x00 00001916: SWAP1 00001917: SLOAD 00001918: SWAP1 00001919: PUSH2 0x0100 0000191c: EXP 0000191d: SWAP1 0000191e: DIV 0000191f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001934: AND 00001935: PUSH2 0x28cb 00001938: JUMP 00001939: JUMPDEST 0000193a: PUSH1 0x00 0000193c: PUSH1 0x04 0000193e: DUP2 0000193f: SWAP1 00001940: SSTORE 00001941: POP 00001942: PUSH1 0x00 00001944: ISZERO 00001945: ISZERO 00001946: PUSH1 0x19 00001948: PUSH1 0x01 0000194a: SWAP1 0000194b: SLOAD 0000194c: SWAP1 0000194d: PUSH2 0x0100 00001950: EXP 00001951: SWAP1 00001952: DIV 00001953: PUSH1 0xff 00001955: AND 00001956: ISZERO 00001957: ISZERO 00001958: EQ 00001959: ISZERO 0000195a: PUSH2 0x1966 0000195d: JUMPI 0000195e: PUSH2 0x1965 00001961: PUSH2 0x2c47 00001964: JUMP 00001965: JUMPDEST 00001966: JUMPDEST 00001967: POP 00001968: POP 00001969: PUSH1 0x01 0000196b: PUSH1 0x00 0000196d: DUP2 0000196e: SWAP1 0000196f: SSTORE 00001970: POP 00001971: JUMP 00001972: JUMPDEST 00001973: PUSH1 0x02 00001975: PUSH1 0x00 00001977: SLOAD 00001978: EQ 00001979: ISZERO 0000197a: PUSH2 0x19eb 0000197d: JUMPI 0000197e: PUSH1 0x40 00001980: MLOAD 00001981: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000019a2: DUP2 000019a3: MSTORE 000019a4: PUSH1 0x04 000019a6: ADD 000019a7: DUP1 000019a8: DUP1 000019a9: PUSH1 0x20 000019ab: ADD 000019ac: DUP3 000019ad: DUP2 000019ae: SUB 000019af: DUP3 000019b0: MSTORE 000019b1: PUSH1 0x1f 000019b3: DUP2 000019b4: MSTORE 000019b5: PUSH1 0x20 000019b7: ADD 000019b8: DUP1 000019b9: PUSH32 0x5265656e7472616e637947756172643a207265656e7472616e742063616c6c00 000019da: DUP2 000019db: MSTORE 000019dc: POP 000019dd: PUSH1 0x20 000019df: ADD 000019e0: SWAP2 000019e1: POP 000019e2: POP 000019e3: PUSH1 0x40 000019e5: MLOAD 000019e6: DUP1 000019e7: SWAP2 000019e8: SUB 000019e9: SWAP1 000019ea: REVERT 000019eb: JUMPDEST 000019ec: PUSH1 0x02 000019ee: PUSH1 0x00 000019f0: DUP2 000019f1: SWAP1 000019f2: SSTORE 000019f3: POP 000019f4: PUSH1 0x00 000019f6: PUSH1 0x0f 000019f8: TIMESTAMP 000019f9: ADD 000019fa: SWAP1 000019fb: POP 000019fc: PUSH1 0x00 000019fe: SELFBALANCE 000019ff: SWAP1 00001a00: POP 00001a01: PUSH1 0x00 00001a03: PUSH1 0x10 00001a05: DUP3 00001a06: DUP2 00001a07: PUSH2 0x1a0c 00001a0a: JUMPI 00001a0b: INVALID 00001a0c: JUMPDEST 00001a0d: DIV 00001a0e: SWAP1 00001a0f: POP 00001a10: PUSH1 0x00 00001a12: PUSH1 0x02 00001a14: PUSH1 0x10 00001a16: DUP5 00001a17: DUP2 00001a18: PUSH2 0x1a1d 00001a1b: JUMPI 00001a1c: INVALID 00001a1d: JUMPDEST 00001a1e: DIV 00001a1f: MUL 00001a20: SWAP1 00001a21: POP 00001a22: PUSH1 0x00 00001a24: PUSH1 0x04 00001a26: PUSH1 0x10 00001a28: DUP6 00001a29: DUP2 00001a2a: PUSH2 0x1a2f 00001a2d: JUMPI 00001a2e: INVALID 00001a2f: JUMPDEST 00001a30: DIV 00001a31: MUL 00001a32: SWAP1 00001a33: POP 00001a34: PUSH1 0x19 00001a36: PUSH1 0x03 00001a38: SWAP1 00001a39: SLOAD 00001a3a: SWAP1 00001a3b: PUSH2 0x0100 00001a3e: EXP 00001a3f: SWAP1 00001a40: DIV 00001a41: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a56: AND 00001a57: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a6c: AND 00001a6d: PUSH4 0x7ff36ab5 00001a72: DUP5 00001a73: PUSH1 0x00 00001a75: PUSH1 0x11 00001a77: ADDRESS 00001a78: DUP11 00001a79: PUSH1 0x40 00001a7b: MLOAD 00001a7c: DUP7 00001a7d: PUSH4 0xffffffff 00001a82: AND 00001a83: PUSH1 0xe0 00001a85: SHL 00001a86: DUP2 00001a87: MSTORE 00001a88: PUSH1 0x04 00001a8a: ADD 00001a8b: DUP1 00001a8c: DUP6 00001a8d: DUP2 00001a8e: MSTORE 00001a8f: PUSH1 0x20 00001a91: ADD 00001a92: DUP1 00001a93: PUSH1 0x20 00001a95: ADD 00001a96: DUP5 00001a97: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001aac: AND 00001aad: DUP2 00001aae: MSTORE 00001aaf: PUSH1 0x20 00001ab1: ADD 00001ab2: DUP4 00001ab3: DUP2 00001ab4: MSTORE 00001ab5: PUSH1 0x20 00001ab7: ADD 00001ab8: DUP3 00001ab9: DUP2 00001aba: SUB 00001abb: DUP3 00001abc: MSTORE 00001abd: DUP6 00001abe: DUP2 00001abf: DUP2 00001ac0: SLOAD 00001ac1: DUP2 00001ac2: MSTORE 00001ac3: PUSH1 0x20 00001ac5: ADD 00001ac6: SWAP2 00001ac7: POP 00001ac8: DUP1 00001ac9: SLOAD 00001aca: DUP1 00001acb: ISZERO 00001acc: PUSH2 0x1b2a 00001acf: JUMPI 00001ad0: PUSH1 0x20 00001ad2: MUL 00001ad3: DUP3 00001ad4: ADD 00001ad5: SWAP2 00001ad6: SWAP1 00001ad7: PUSH1 0x00 00001ad9: MSTORE 00001ada: PUSH1 0x20 00001adc: PUSH1 0x00 00001ade: KECCAK256 00001adf: SWAP1 00001ae0: JUMPDEST 00001ae1: DUP2 00001ae2: PUSH1 0x00 00001ae4: SWAP1 00001ae5: SLOAD 00001ae6: SWAP1 00001ae7: PUSH2 0x0100 00001aea: EXP 00001aeb: SWAP1 00001aec: DIV 00001aed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b02: AND 00001b03: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b18: AND 00001b19: DUP2 00001b1a: MSTORE 00001b1b: PUSH1 0x20 00001b1d: ADD 00001b1e: SWAP1 00001b1f: PUSH1 0x01 00001b21: ADD 00001b22: SWAP1 00001b23: DUP1 00001b24: DUP4 00001b25: GT 00001b26: PUSH2 0x1ae0 00001b29: JUMPI 00001b2a: JUMPDEST 00001b2b: POP 00001b2c: POP 00001b2d: SWAP6 00001b2e: POP 00001b2f: POP 00001b30: POP 00001b31: POP 00001b32: POP 00001b33: POP 00001b34: PUSH1 0x00 00001b36: PUSH1 0x40 00001b38: MLOAD 00001b39: DUP1 00001b3a: DUP4 00001b3b: SUB 00001b3c: DUP2 00001b3d: DUP6 00001b3e: DUP9 00001b3f: DUP1 00001b40: EXTCODESIZE 00001b41: ISZERO 00001b42: DUP1 00001b43: ISZERO 00001b44: PUSH2 0x1b4c 00001b47: JUMPI 00001b48: PUSH1 0x00 00001b4a: DUP1 00001b4b: REVERT 00001b4c: JUMPDEST 00001b4d: POP 00001b4e: GAS 00001b4f: CALL 00001b50: ISZERO 00001b51: DUP1 00001b52: ISZERO 00001b53: PUSH2 0x1b60 00001b56: JUMPI 00001b57: RETURNDATASIZE 00001b58: PUSH1 0x00 00001b5a: DUP1 00001b5b: RETURNDATACOPY 00001b5c: RETURNDATASIZE 00001b5d: PUSH1 0x00 00001b5f: REVERT 00001b60: JUMPDEST 00001b61: POP 00001b62: POP 00001b63: POP 00001b64: POP 00001b65: POP 00001b66: PUSH1 0x40 00001b68: MLOAD 00001b69: RETURNDATASIZE 00001b6a: PUSH1 0x00 00001b6c: DUP3 00001b6d: RETURNDATACOPY 00001b6e: RETURNDATASIZE 00001b6f: PUSH1 0x1f 00001b71: NOT 00001b72: PUSH1 0x1f 00001b74: DUP3 00001b75: ADD 00001b76: AND 00001b77: DUP3 00001b78: ADD 00001b79: DUP1 00001b7a: PUSH1 0x40 00001b7c: MSTORE 00001b7d: POP 00001b7e: PUSH1 0x20 00001b80: DUP2 00001b81: LT 00001b82: ISZERO 00001b83: PUSH2 0x1b8b 00001b86: JUMPI 00001b87: PUSH1 0x00 00001b89: DUP1 00001b8a: REVERT 00001b8b: JUMPDEST 00001b8c: DUP2 00001b8d: ADD 00001b8e: SWAP1 00001b8f: DUP1 00001b90: DUP1 00001b91: MLOAD 00001b92: PUSH1 0x40 00001b94: MLOAD 00001b95: SWAP4 00001b96: SWAP3 00001b97: SWAP2 00001b98: SWAP1 00001b99: DUP5 00001b9a: PUSH5 0x0100000000 00001ba0: DUP3 00001ba1: GT 00001ba2: ISZERO 00001ba3: PUSH2 0x1bab 00001ba6: JUMPI 00001ba7: PUSH1 0x00 00001ba9: DUP1 00001baa: REVERT 00001bab: JUMPDEST 00001bac: DUP4 00001bad: DUP3 00001bae: ADD 00001baf: SWAP2 00001bb0: POP 00001bb1: PUSH1 0x20 00001bb3: DUP3 00001bb4: ADD 00001bb5: DUP6 00001bb6: DUP2 00001bb7: GT 00001bb8: ISZERO 00001bb9: PUSH2 0x1bc1 00001bbc: JUMPI 00001bbd: PUSH1 0x00 00001bbf: DUP1 00001bc0: REVERT 00001bc1: JUMPDEST 00001bc2: DUP3 00001bc3: MLOAD 00001bc4: DUP7 00001bc5: PUSH1 0x20 00001bc7: DUP3 00001bc8: MUL 00001bc9: DUP4 00001bca: ADD 00001bcb: GT 00001bcc: PUSH5 0x0100000000 00001bd2: DUP3 00001bd3: GT 00001bd4: OR 00001bd5: ISZERO 00001bd6: PUSH2 0x1bde 00001bd9: JUMPI 00001bda: PUSH1 0x00 00001bdc: DUP1 00001bdd: REVERT 00001bde: JUMPDEST 00001bdf: DUP1 00001be0: DUP4 00001be1: MSTORE 00001be2: PUSH1 0x20 00001be4: DUP4 00001be5: ADD 00001be6: SWAP3 00001be7: POP 00001be8: POP 00001be9: POP 00001bea: SWAP1 00001beb: DUP1 00001bec: MLOAD 00001bed: SWAP1 00001bee: PUSH1 0x20 00001bf0: ADD 00001bf1: SWAP1 00001bf2: PUSH1 0x20 00001bf4: MUL 00001bf5: DUP1 00001bf6: DUP4 00001bf7: DUP4 00001bf8: PUSH1 0x00 00001bfa: JUMPDEST 00001bfb: DUP4 00001bfc: DUP2 00001bfd: LT 00001bfe: ISZERO 00001bff: PUSH2 0x1c15 00001c02: JUMPI 00001c03: DUP1 00001c04: DUP3 00001c05: ADD 00001c06: MLOAD 00001c07: DUP2 00001c08: DUP5 00001c09: ADD 00001c0a: MSTORE 00001c0b: PUSH1 0x20 00001c0d: DUP2 00001c0e: ADD 00001c0f: SWAP1 00001c10: POP 00001c11: PUSH2 0x1bfa 00001c14: JUMP 00001c15: JUMPDEST 00001c16: POP 00001c17: POP 00001c18: POP 00001c19: POP 00001c1a: SWAP1 00001c1b: POP 00001c1c: ADD 00001c1d: PUSH1 0x40 00001c1f: MSTORE 00001c20: POP 00001c21: POP 00001c22: POP 00001c23: POP 00001c24: PUSH1 0x19 00001c26: PUSH1 0x03 00001c28: SWAP1 00001c29: SLOAD 00001c2a: SWAP1 00001c2b: PUSH2 0x0100 00001c2e: EXP 00001c2f: SWAP1 00001c30: DIV 00001c31: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c46: AND 00001c47: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c5c: AND 00001c5d: PUSH4 0x7ff36ab5 00001c62: DUP5 00001c63: PUSH1 0x00 00001c65: PUSH1 0x12 00001c67: ADDRESS 00001c68: DUP11 00001c69: PUSH1 0x40 00001c6b: MLOAD 00001c6c: DUP7 00001c6d: PUSH4 0xffffffff 00001c72: AND 00001c73: PUSH1 0xe0 00001c75: SHL 00001c76: DUP2 00001c77: MSTORE 00001c78: PUSH1 0x04 00001c7a: ADD 00001c7b: DUP1 00001c7c: DUP6 00001c7d: DUP2 00001c7e: MSTORE 00001c7f: PUSH1 0x20 00001c81: ADD 00001c82: DUP1 00001c83: PUSH1 0x20 00001c85: ADD 00001c86: DUP5 00001c87: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c9c: AND 00001c9d: DUP2 00001c9e: MSTORE 00001c9f: PUSH1 0x20 00001ca1: ADD 00001ca2: DUP4 00001ca3: DUP2 00001ca4: MSTORE 00001ca5: PUSH1 0x20 00001ca7: ADD 00001ca8: DUP3 00001ca9: DUP2 00001caa: SUB 00001cab: DUP3 00001cac: MSTORE 00001cad: DUP6 00001cae: DUP2 00001caf: DUP2 00001cb0: SLOAD 00001cb1: DUP2 00001cb2: MSTORE 00001cb3: PUSH1 0x20 00001cb5: ADD 00001cb6: SWAP2 00001cb7: POP 00001cb8: DUP1 00001cb9: SLOAD 00001cba: DUP1 00001cbb: ISZERO 00001cbc: PUSH2 0x1d1a 00001cbf: JUMPI 00001cc0: PUSH1 0x20 00001cc2: MUL 00001cc3: DUP3 00001cc4: ADD 00001cc5: SWAP2 00001cc6: SWAP1 00001cc7: PUSH1 0x00 00001cc9: MSTORE 00001cca: PUSH1 0x20 00001ccc: PUSH1 0x00 00001cce: KECCAK256 00001ccf: SWAP1 00001cd0: JUMPDEST 00001cd1: DUP2 00001cd2: PUSH1 0x00 00001cd4: SWAP1 00001cd5: SLOAD 00001cd6: SWAP1 00001cd7: PUSH2 0x0100 00001cda: EXP 00001cdb: SWAP1 00001cdc: DIV 00001cdd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cf2: AND 00001cf3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d08: AND 00001d09: DUP2 00001d0a: MSTORE 00001d0b: PUSH1 0x20 00001d0d: ADD 00001d0e: SWAP1 00001d0f: PUSH1 0x01 00001d11: ADD 00001d12: SWAP1 00001d13: DUP1 00001d14: DUP4 00001d15: GT 00001d16: PUSH2 0x1cd0 00001d19: JUMPI 00001d1a: JUMPDEST 00001d1b: POP 00001d1c: POP 00001d1d: SWAP6 00001d1e: POP 00001d1f: POP 00001d20: POP 00001d21: POP 00001d22: POP 00001d23: POP 00001d24: PUSH1 0x00 00001d26: PUSH1 0x40 00001d28: MLOAD 00001d29: DUP1 00001d2a: DUP4 00001d2b: SUB 00001d2c: DUP2 00001d2d: DUP6 00001d2e: DUP9 00001d2f: DUP1 00001d30: EXTCODESIZE 00001d31: ISZERO 00001d32: DUP1 00001d33: ISZERO 00001d34: PUSH2 0x1d3c 00001d37: JUMPI 00001d38: PUSH1 0x00 00001d3a: DUP1 00001d3b: REVERT 00001d3c: JUMPDEST 00001d3d: POP 00001d3e: GAS 00001d3f: CALL 00001d40: ISZERO 00001d41: DUP1 00001d42: ISZERO 00001d43: PUSH2 0x1d50 00001d46: JUMPI 00001d47: RETURNDATASIZE 00001d48: PUSH1 0x00 00001d4a: DUP1 00001d4b: RETURNDATACOPY 00001d4c: RETURNDATASIZE 00001d4d: PUSH1 0x00 00001d4f: REVERT 00001d50: JUMPDEST 00001d51: POP 00001d52: POP 00001d53: POP 00001d54: POP 00001d55: POP 00001d56: PUSH1 0x40 00001d58: MLOAD 00001d59: RETURNDATASIZE 00001d5a: PUSH1 0x00 00001d5c: DUP3 00001d5d: RETURNDATACOPY 00001d5e: RETURNDATASIZE 00001d5f: PUSH1 0x1f 00001d61: NOT 00001d62: PUSH1 0x1f 00001d64: DUP3 00001d65: ADD 00001d66: AND 00001d67: DUP3 00001d68: ADD 00001d69: DUP1 00001d6a: PUSH1 0x40 00001d6c: MSTORE 00001d6d: POP 00001d6e: PUSH1 0x20 00001d70: DUP2 00001d71: LT 00001d72: ISZERO 00001d73: PUSH2 0x1d7b 00001d76: JUMPI 00001d77: PUSH1 0x00 00001d79: DUP1 00001d7a: REVERT 00001d7b: JUMPDEST 00001d7c: DUP2 00001d7d: ADD 00001d7e: SWAP1 00001d7f: DUP1 00001d80: DUP1 00001d81: MLOAD 00001d82: PUSH1 0x40 00001d84: MLOAD 00001d85: SWAP4 00001d86: SWAP3 00001d87: SWAP2 00001d88: SWAP1 00001d89: DUP5 00001d8a: PUSH5 0x0100000000 00001d90: DUP3 00001d91: GT 00001d92: ISZERO 00001d93: PUSH2 0x1d9b 00001d96: JUMPI 00001d97: PUSH1 0x00 00001d99: DUP1 00001d9a: REVERT 00001d9b: JUMPDEST 00001d9c: DUP4 00001d9d: DUP3 00001d9e: ADD 00001d9f: SWAP2 00001da0: POP 00001da1: PUSH1 0x20 00001da3: DUP3 00001da4: ADD 00001da5: DUP6 00001da6: DUP2 00001da7: GT 00001da8: ISZERO 00001da9: PUSH2 0x1db1 00001dac: JUMPI 00001dad: PUSH1 0x00 00001daf: DUP1 00001db0: REVERT 00001db1: JUMPDEST 00001db2: DUP3 00001db3: MLOAD 00001db4: DUP7 00001db5: PUSH1 0x20 00001db7: DUP3 00001db8: MUL 00001db9: DUP4 00001dba: ADD 00001dbb: GT 00001dbc: PUSH5 0x0100000000 00001dc2: DUP3 00001dc3: GT 00001dc4: OR 00001dc5: ISZERO 00001dc6: PUSH2 0x1dce 00001dc9: JUMPI 00001dca: PUSH1 0x00 00001dcc: DUP1 00001dcd: REVERT 00001dce: JUMPDEST 00001dcf: DUP1 00001dd0: DUP4 00001dd1: MSTORE 00001dd2: PUSH1 0x20 00001dd4: DUP4 00001dd5: ADD 00001dd6: SWAP3 00001dd7: POP 00001dd8: POP 00001dd9: POP 00001dda: SWAP1 00001ddb: DUP1 00001ddc: MLOAD 00001ddd: SWAP1 00001dde: PUSH1 0x20 00001de0: ADD 00001de1: SWAP1 00001de2: PUSH1 0x20 00001de4: MUL 00001de5: DUP1 00001de6: DUP4 00001de7: DUP4 00001de8: PUSH1 0x00 00001dea: JUMPDEST 00001deb: DUP4 00001dec: DUP2 00001ded: LT 00001dee: ISZERO 00001def: PUSH2 0x1e05 00001df2: JUMPI 00001df3: DUP1 00001df4: DUP3 00001df5: ADD 00001df6: MLOAD 00001df7: DUP2 00001df8: DUP5 00001df9: ADD 00001dfa: MSTORE 00001dfb: PUSH1 0x20 00001dfd: DUP2 00001dfe: ADD 00001dff: SWAP1 00001e00: POP 00001e01: PUSH2 0x1dea 00001e04: JUMP 00001e05: JUMPDEST 00001e06: POP 00001e07: POP 00001e08: POP 00001e09: POP 00001e0a: SWAP1 00001e0b: POP 00001e0c: ADD 00001e0d: PUSH1 0x40 00001e0f: MSTORE 00001e10: POP 00001e11: POP 00001e12: POP 00001e13: POP 00001e14: PUSH1 0x19 00001e16: PUSH1 0x03 00001e18: SWAP1 00001e19: SLOAD 00001e1a: SWAP1 00001e1b: PUSH2 0x0100 00001e1e: EXP 00001e1f: SWAP1 00001e20: DIV 00001e21: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e36: AND 00001e37: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e4c: AND 00001e4d: PUSH4 0x7ff36ab5 00001e52: DUP4 00001e53: PUSH1 0x00 00001e55: PUSH1 0x13 00001e57: ADDRESS 00001e58: DUP11 00001e59: PUSH1 0x40 00001e5b: MLOAD 00001e5c: DUP7 00001e5d: PUSH4 0xffffffff 00001e62: AND 00001e63: PUSH1 0xe0 00001e65: SHL 00001e66: DUP2 00001e67: MSTORE 00001e68: PUSH1 0x04 00001e6a: ADD 00001e6b: DUP1 00001e6c: DUP6 00001e6d: DUP2 00001e6e: MSTORE 00001e6f: PUSH1 0x20 00001e71: ADD 00001e72: DUP1 00001e73: PUSH1 0x20 00001e75: ADD 00001e76: DUP5 00001e77: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e8c: AND 00001e8d: DUP2 00001e8e: MSTORE 00001e8f: PUSH1 0x20 00001e91: ADD 00001e92: DUP4 00001e93: DUP2 00001e94: MSTORE 00001e95: PUSH1 0x20 00001e97: ADD 00001e98: DUP3 00001e99: DUP2 00001e9a: SUB 00001e9b: DUP3 00001e9c: MSTORE 00001e9d: DUP6 00001e9e: DUP2 00001e9f: DUP2 00001ea0: SLOAD 00001ea1: DUP2 00001ea2: MSTORE 00001ea3: PUSH1 0x20 00001ea5: ADD 00001ea6: SWAP2 00001ea7: POP 00001ea8: DUP1 00001ea9: SLOAD 00001eaa: DUP1 00001eab: ISZERO 00001eac: PUSH2 0x1f0a 00001eaf: JUMPI 00001eb0: PUSH1 0x20 00001eb2: MUL 00001eb3: DUP3 00001eb4: ADD 00001eb5: SWAP2 00001eb6: SWAP1 00001eb7: PUSH1 0x00 00001eb9: MSTORE 00001eba: PUSH1 0x20 00001ebc: PUSH1 0x00 00001ebe: KECCAK256 00001ebf: SWAP1 00001ec0: JUMPDEST 00001ec1: DUP2 00001ec2: PUSH1 0x00 00001ec4: SWAP1 00001ec5: SLOAD 00001ec6: SWAP1 00001ec7: PUSH2 0x0100 00001eca: EXP 00001ecb: SWAP1 00001ecc: DIV 00001ecd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ee2: AND 00001ee3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ef8: AND 00001ef9: DUP2 00001efa: MSTORE 00001efb: PUSH1 0x20 00001efd: ADD 00001efe: SWAP1 00001eff: PUSH1 0x01 00001f01: ADD 00001f02: SWAP1 00001f03: DUP1 00001f04: DUP4 00001f05: GT 00001f06: PUSH2 0x1ec0 00001f09: JUMPI 00001f0a: JUMPDEST 00001f0b: POP 00001f0c: POP 00001f0d: SWAP6 00001f0e: POP 00001f0f: POP 00001f10: POP 00001f11: POP 00001f12: POP 00001f13: POP 00001f14: PUSH1 0x00 00001f16: PUSH1 0x40 00001f18: MLOAD 00001f19: DUP1 00001f1a: DUP4 00001f1b: SUB 00001f1c: DUP2 00001f1d: DUP6 00001f1e: DUP9 00001f1f: DUP1 00001f20: EXTCODESIZE 00001f21: ISZERO 00001f22: DUP1 00001f23: ISZERO 00001f24: PUSH2 0x1f2c 00001f27: JUMPI 00001f28: PUSH1 0x00 00001f2a: DUP1 00001f2b: REVERT 00001f2c: JUMPDEST 00001f2d: POP 00001f2e: GAS 00001f2f: CALL 00001f30: ISZERO 00001f31: DUP1 00001f32: ISZERO 00001f33: PUSH2 0x1f40 00001f36: JUMPI 00001f37: RETURNDATASIZE 00001f38: PUSH1 0x00 00001f3a: DUP1 00001f3b: RETURNDATACOPY 00001f3c: RETURNDATASIZE 00001f3d: PUSH1 0x00 00001f3f: REVERT 00001f40: JUMPDEST 00001f41: POP 00001f42: POP 00001f43: POP 00001f44: POP 00001f45: POP 00001f46: PUSH1 0x40 00001f48: MLOAD 00001f49: RETURNDATASIZE 00001f4a: PUSH1 0x00 00001f4c: DUP3 00001f4d: RETURNDATACOPY 00001f4e: RETURNDATASIZE 00001f4f: PUSH1 0x1f 00001f51: NOT 00001f52: PUSH1 0x1f 00001f54: DUP3 00001f55: ADD 00001f56: AND 00001f57: DUP3 00001f58: ADD 00001f59: DUP1 00001f5a: PUSH1 0x40 00001f5c: MSTORE 00001f5d: POP 00001f5e: PUSH1 0x20 00001f60: DUP2 00001f61: LT 00001f62: ISZERO 00001f63: PUSH2 0x1f6b 00001f66: JUMPI 00001f67: PUSH1 0x00 00001f69: DUP1 00001f6a: REVERT 00001f6b: JUMPDEST 00001f6c: DUP2 00001f6d: ADD 00001f6e: SWAP1 00001f6f: DUP1 00001f70: DUP1 00001f71: MLOAD 00001f72: PUSH1 0x40 00001f74: MLOAD 00001f75: SWAP4 00001f76: SWAP3 00001f77: SWAP2 00001f78: SWAP1 00001f79: DUP5 00001f7a: PUSH5 0x0100000000 00001f80: DUP3 00001f81: GT 00001f82: ISZERO 00001f83: PUSH2 0x1f8b 00001f86: JUMPI 00001f87: PUSH1 0x00 00001f89: DUP1 00001f8a: REVERT 00001f8b: JUMPDEST 00001f8c: DUP4 00001f8d: DUP3 00001f8e: ADD 00001f8f: SWAP2 00001f90: POP 00001f91: PUSH1 0x20 00001f93: DUP3 00001f94: ADD 00001f95: DUP6 00001f96: DUP2 00001f97: GT 00001f98: ISZERO 00001f99: PUSH2 0x1fa1 00001f9c: JUMPI 00001f9d: PUSH1 0x00 00001f9f: DUP1 00001fa0: REVERT 00001fa1: JUMPDEST 00001fa2: DUP3 00001fa3: MLOAD 00001fa4: DUP7 00001fa5: PUSH1 0x20 00001fa7: DUP3 00001fa8: MUL 00001fa9: DUP4 00001faa: ADD 00001fab: GT 00001fac: PUSH5 0x0100000000 00001fb2: DUP3 00001fb3: GT 00001fb4: OR 00001fb5: ISZERO 00001fb6: PUSH2 0x1fbe 00001fb9: JUMPI 00001fba: PUSH1 0x00 00001fbc: DUP1 00001fbd: REVERT 00001fbe: JUMPDEST 00001fbf: DUP1 00001fc0: DUP4 00001fc1: MSTORE 00001fc2: PUSH1 0x20 00001fc4: DUP4 00001fc5: ADD 00001fc6: SWAP3 00001fc7: POP 00001fc8: POP 00001fc9: POP 00001fca: SWAP1 00001fcb: DUP1 00001fcc: MLOAD 00001fcd: SWAP1 00001fce: PUSH1 0x20 00001fd0: ADD 00001fd1: SWAP1 00001fd2: PUSH1 0x20 00001fd4: MUL 00001fd5: DUP1 00001fd6: DUP4 00001fd7: DUP4 00001fd8: PUSH1 0x00 00001fda: JUMPDEST 00001fdb: DUP4 00001fdc: DUP2 00001fdd: LT 00001fde: ISZERO 00001fdf: PUSH2 0x1ff5 00001fe2: JUMPI 00001fe3: DUP1 00001fe4: DUP3 00001fe5: ADD 00001fe6: MLOAD 00001fe7: DUP2 00001fe8: DUP5 00001fe9: ADD 00001fea: MSTORE 00001feb: PUSH1 0x20 00001fed: DUP2 00001fee: ADD 00001fef: SWAP1 00001ff0: POP 00001ff1: PUSH2 0x1fda 00001ff4: JUMP 00001ff5: JUMPDEST 00001ff6: POP 00001ff7: POP 00001ff8: POP 00001ff9: POP 00001ffa: SWAP1 00001ffb: POP 00001ffc: ADD 00001ffd: PUSH1 0x40 00001fff: MSTORE 00002000: POP 00002001: POP 00002002: POP 00002003: POP 00002004: PUSH1 0x19 00002006: PUSH1 0x03 00002008: SWAP1 00002009: SLOAD 0000200a: SWAP1 0000200b: PUSH2 0x0100 0000200e: EXP 0000200f: SWAP1 00002010: DIV 00002011: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002026: AND 00002027: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000203c: AND 0000203d: PUSH4 0x7ff36ab5 00002042: DUP4 00002043: PUSH1 0x00 00002045: PUSH1 0x14 00002047: ADDRESS 00002048: DUP11 00002049: PUSH1 0x40 0000204b: MLOAD 0000204c: DUP7 0000204d: PUSH4 0xffffffff 00002052: AND 00002053: PUSH1 0xe0 00002055: SHL 00002056: DUP2 00002057: MSTORE 00002058: PUSH1 0x04 0000205a: ADD 0000205b: DUP1 0000205c: DUP6 0000205d: DUP2 0000205e: MSTORE 0000205f: PUSH1 0x20 00002061: ADD 00002062: DUP1 00002063: PUSH1 0x20 00002065: ADD 00002066: DUP5 00002067: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000207c: AND 0000207d: DUP2 0000207e: MSTORE 0000207f: PUSH1 0x20 00002081: ADD 00002082: DUP4 00002083: DUP2 00002084: MSTORE 00002085: PUSH1 0x20 00002087: ADD 00002088: DUP3 00002089: DUP2 0000208a: SUB 0000208b: DUP3 0000208c: MSTORE 0000208d: DUP6 0000208e: DUP2 0000208f: DUP2 00002090: SLOAD 00002091: DUP2 00002092: MSTORE 00002093: PUSH1 0x20 00002095: ADD 00002096: SWAP2 00002097: POP 00002098: DUP1 00002099: SLOAD 0000209a: DUP1 0000209b: ISZERO 0000209c: PUSH2 0x20fa 0000209f: JUMPI 000020a0: PUSH1 0x20 000020a2: MUL 000020a3: DUP3 000020a4: ADD 000020a5: SWAP2 000020a6: SWAP1 000020a7: PUSH1 0x00 000020a9: MSTORE 000020aa: PUSH1 0x20 000020ac: PUSH1 0x00 000020ae: KECCAK256 000020af: SWAP1 000020b0: JUMPDEST 000020b1: DUP2 000020b2: PUSH1 0x00 000020b4: SWAP1 000020b5: SLOAD 000020b6: SWAP1 000020b7: PUSH2 0x0100 000020ba: EXP 000020bb: SWAP1 000020bc: DIV 000020bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020d2: AND 000020d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000020e8: AND 000020e9: DUP2 000020ea: MSTORE 000020eb: PUSH1 0x20 000020ed: ADD 000020ee: SWAP1 000020ef: PUSH1 0x01 000020f1: ADD 000020f2: SWAP1 000020f3: DUP1 000020f4: DUP4 000020f5: GT 000020f6: PUSH2 0x20b0 000020f9: JUMPI 000020fa: JUMPDEST 000020fb: POP 000020fc: POP 000020fd: SWAP6 000020fe: POP 000020ff: POP 00002100: POP 00002101: POP 00002102: POP 00002103: POP 00002104: PUSH1 0x00 00002106: PUSH1 0x40 00002108: MLOAD 00002109: DUP1 0000210a: DUP4 0000210b: SUB 0000210c: DUP2 0000210d: DUP6 0000210e: DUP9 0000210f: DUP1 00002110: EXTCODESIZE 00002111: ISZERO 00002112: DUP1 00002113: ISZERO 00002114: PUSH2 0x211c 00002117: JUMPI 00002118: PUSH1 0x00 0000211a: DUP1 0000211b: REVERT 0000211c: JUMPDEST 0000211d: POP 0000211e: GAS 0000211f: CALL 00002120: ISZERO 00002121: DUP1 00002122: ISZERO 00002123: PUSH2 0x2130 00002126: JUMPI 00002127: RETURNDATASIZE 00002128: PUSH1 0x00 0000212a: DUP1 0000212b: RETURNDATACOPY 0000212c: RETURNDATASIZE 0000212d: PUSH1 0x00 0000212f: REVERT 00002130: JUMPDEST 00002131: POP 00002132: POP 00002133: POP 00002134: POP 00002135: POP 00002136: PUSH1 0x40 00002138: MLOAD 00002139: RETURNDATASIZE 0000213a: PUSH1 0x00 0000213c: DUP3 0000213d: RETURNDATACOPY 0000213e: RETURNDATASIZE 0000213f: PUSH1 0x1f 00002141: NOT 00002142: PUSH1 0x1f 00002144: DUP3 00002145: ADD 00002146: AND 00002147: DUP3 00002148: ADD 00002149: DUP1 0000214a: PUSH1 0x40 0000214c: MSTORE 0000214d: POP 0000214e: PUSH1 0x20 00002150: DUP2 00002151: LT 00002152: ISZERO 00002153: PUSH2 0x215b 00002156: JUMPI 00002157: PUSH1 0x00 00002159: DUP1 0000215a: REVERT 0000215b: JUMPDEST 0000215c: DUP2 0000215d: ADD 0000215e: SWAP1 0000215f: DUP1 00002160: DUP1 00002161: MLOAD 00002162: PUSH1 0x40 00002164: MLOAD 00002165: SWAP4 00002166: SWAP3 00002167: SWAP2 00002168: SWAP1 00002169: DUP5 0000216a: PUSH5 0x0100000000 00002170: DUP3 00002171: GT 00002172: ISZERO 00002173: PUSH2 0x217b 00002176: JUMPI 00002177: PUSH1 0x00 00002179: DUP1 0000217a: REVERT 0000217b: JUMPDEST 0000217c: DUP4 0000217d: DUP3 0000217e: ADD 0000217f: SWAP2 00002180: POP 00002181: PUSH1 0x20 00002183: DUP3 00002184: ADD 00002185: DUP6 00002186: DUP2 00002187: GT 00002188: ISZERO 00002189: PUSH2 0x2191 0000218c: JUMPI 0000218d: PUSH1 0x00 0000218f: DUP1 00002190: REVERT 00002191: JUMPDEST 00002192: DUP3 00002193: MLOAD 00002194: DUP7 00002195: PUSH1 0x20 00002197: DUP3 00002198: MUL 00002199: DUP4 0000219a: ADD 0000219b: GT 0000219c: PUSH5 0x0100000000 000021a2: DUP3 000021a3: GT 000021a4: OR 000021a5: ISZERO 000021a6: PUSH2 0x21ae 000021a9: JUMPI 000021aa: PUSH1 0x00 000021ac: DUP1 000021ad: REVERT 000021ae: JUMPDEST 000021af: DUP1 000021b0: DUP4 000021b1: MSTORE 000021b2: PUSH1 0x20 000021b4: DUP4 000021b5: ADD 000021b6: SWAP3 000021b7: POP 000021b8: POP 000021b9: POP 000021ba: SWAP1 000021bb: DUP1 000021bc: MLOAD 000021bd: SWAP1 000021be: PUSH1 0x20 000021c0: ADD 000021c1: SWAP1 000021c2: PUSH1 0x20 000021c4: MUL 000021c5: DUP1 000021c6: DUP4 000021c7: DUP4 000021c8: PUSH1 0x00 000021ca: JUMPDEST 000021cb: DUP4 000021cc: DUP2 000021cd: LT 000021ce: ISZERO 000021cf: PUSH2 0x21e5 000021d2: JUMPI 000021d3: DUP1 000021d4: DUP3 000021d5: ADD 000021d6: MLOAD 000021d7: DUP2 000021d8: DUP5 000021d9: ADD 000021da: MSTORE 000021db: PUSH1 0x20 000021dd: DUP2 000021de: ADD 000021df: SWAP1 000021e0: POP 000021e1: PUSH2 0x21ca 000021e4: JUMP 000021e5: JUMPDEST 000021e6: POP 000021e7: POP 000021e8: POP 000021e9: POP 000021ea: SWAP1 000021eb: POP 000021ec: ADD 000021ed: PUSH1 0x40 000021ef: MSTORE 000021f0: POP 000021f1: POP 000021f2: POP 000021f3: POP 000021f4: PUSH1 0x19 000021f6: PUSH1 0x03 000021f8: SWAP1 000021f9: SLOAD 000021fa: SWAP1 000021fb: PUSH2 0x0100 000021fe: EXP 000021ff: SWAP1 00002200: DIV 00002201: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002216: AND 00002217: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000222c: AND 0000222d: PUSH4 0x7ff36ab5 00002232: DUP4 00002233: PUSH1 0x00 00002235: PUSH1 0x15 00002237: ADDRESS 00002238: DUP11 00002239: PUSH1 0x40 0000223b: MLOAD 0000223c: DUP7 0000223d: PUSH4 0xffffffff 00002242: AND 00002243: PUSH1 0xe0 00002245: SHL 00002246: DUP2 00002247: MSTORE 00002248: PUSH1 0x04 0000224a: ADD 0000224b: DUP1 0000224c: DUP6 0000224d: DUP2 0000224e: MSTORE 0000224f: PUSH1 0x20 00002251: ADD 00002252: DUP1 00002253: PUSH1 0x20 00002255: ADD 00002256: DUP5 00002257: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000226c: AND 0000226d: DUP2 0000226e: MSTORE 0000226f: PUSH1 0x20 00002271: ADD 00002272: DUP4 00002273: DUP2 00002274: MSTORE 00002275: PUSH1 0x20 00002277: ADD 00002278: DUP3 00002279: DUP2 0000227a: SUB 0000227b: DUP3 0000227c: MSTORE 0000227d: DUP6 0000227e: DUP2 0000227f: DUP2 00002280: SLOAD 00002281: DUP2 00002282: MSTORE 00002283: PUSH1 0x20 00002285: ADD 00002286: SWAP2 00002287: POP 00002288: DUP1 00002289: SLOAD 0000228a: DUP1 0000228b: ISZERO 0000228c: PUSH2 0x22ea 0000228f: JUMPI 00002290: PUSH1 0x20 00002292: MUL 00002293: DUP3 00002294: ADD 00002295: SWAP2 00002296: SWAP1 00002297: PUSH1 0x00 00002299: MSTORE 0000229a: PUSH1 0x20 0000229c: PUSH1 0x00 0000229e: KECCAK256 0000229f: SWAP1 000022a0: JUMPDEST 000022a1: DUP2 000022a2: PUSH1 0x00 000022a4: SWAP1 000022a5: SLOAD 000022a6: SWAP1 000022a7: PUSH2 0x0100 000022aa: EXP 000022ab: SWAP1 000022ac: DIV 000022ad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000022c2: AND 000022c3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000022d8: AND 000022d9: DUP2 000022da: MSTORE 000022db: PUSH1 0x20 000022dd: ADD 000022de: SWAP1 000022df: PUSH1 0x01 000022e1: ADD 000022e2: SWAP1 000022e3: DUP1 000022e4: DUP4 000022e5: GT 000022e6: PUSH2 0x22a0 000022e9: JUMPI 000022ea: JUMPDEST 000022eb: POP 000022ec: POP 000022ed: SWAP6 000022ee: POP 000022ef: POP 000022f0: POP 000022f1: POP 000022f2: POP 000022f3: POP 000022f4: PUSH1 0x00 000022f6: PUSH1 0x40 000022f8: MLOAD 000022f9: DUP1 000022fa: DUP4 000022fb: SUB 000022fc: DUP2 000022fd: DUP6 000022fe: DUP9 000022ff: DUP1 00002300: EXTCODESIZE 00002301: ISZERO 00002302: DUP1 00002303: ISZERO 00002304: PUSH2 0x230c 00002307: JUMPI 00002308: PUSH1 0x00 0000230a: DUP1 0000230b: REVERT 0000230c: JUMPDEST 0000230d: POP 0000230e: GAS 0000230f: CALL 00002310: ISZERO 00002311: DUP1 00002312: ISZERO 00002313: PUSH2 0x2320 00002316: JUMPI 00002317: RETURNDATASIZE 00002318: PUSH1 0x00 0000231a: DUP1 0000231b: RETURNDATACOPY 0000231c: RETURNDATASIZE 0000231d: PUSH1 0x00 0000231f: REVERT 00002320: JUMPDEST 00002321: POP 00002322: POP 00002323: POP 00002324: POP 00002325: POP 00002326: PUSH1 0x40 00002328: MLOAD 00002329: RETURNDATASIZE 0000232a: PUSH1 0x00 0000232c: DUP3 0000232d: RETURNDATACOPY 0000232e: RETURNDATASIZE 0000232f: PUSH1 0x1f 00002331: NOT 00002332: PUSH1 0x1f 00002334: DUP3 00002335: ADD 00002336: AND 00002337: DUP3 00002338: ADD 00002339: DUP1 0000233a: PUSH1 0x40 0000233c: MSTORE 0000233d: POP 0000233e: PUSH1 0x20 00002340: DUP2 00002341: LT 00002342: ISZERO 00002343: PUSH2 0x234b 00002346: JUMPI 00002347: PUSH1 0x00 00002349: DUP1 0000234a: REVERT 0000234b: JUMPDEST 0000234c: DUP2 0000234d: ADD 0000234e: SWAP1 0000234f: DUP1 00002350: DUP1 00002351: MLOAD 00002352: PUSH1 0x40 00002354: MLOAD 00002355: SWAP4 00002356: SWAP3 00002357: SWAP2 00002358: SWAP1 00002359: DUP5 0000235a: PUSH5 0x0100000000 00002360: DUP3 00002361: GT 00002362: ISZERO 00002363: PUSH2 0x236b 00002366: JUMPI 00002367: PUSH1 0x00 00002369: DUP1 0000236a: REVERT 0000236b: JUMPDEST 0000236c: DUP4 0000236d: DUP3 0000236e: ADD 0000236f: SWAP2 00002370: POP 00002371: PUSH1 0x20 00002373: DUP3 00002374: ADD 00002375: DUP6 00002376: DUP2 00002377: GT 00002378: ISZERO 00002379: PUSH2 0x2381 0000237c: JUMPI 0000237d: PUSH1 0x00 0000237f: DUP1 00002380: REVERT 00002381: JUMPDEST 00002382: DUP3 00002383: MLOAD 00002384: DUP7 00002385: PUSH1 0x20 00002387: DUP3 00002388: MUL 00002389: DUP4 0000238a: ADD 0000238b: GT 0000238c: PUSH5 0x0100000000 00002392: DUP3 00002393: GT 00002394: OR 00002395: ISZERO 00002396: PUSH2 0x239e 00002399: JUMPI 0000239a: PUSH1 0x00 0000239c: DUP1 0000239d: REVERT 0000239e: JUMPDEST 0000239f: DUP1 000023a0: DUP4 000023a1: MSTORE 000023a2: PUSH1 0x20 000023a4: DUP4 000023a5: ADD 000023a6: SWAP3 000023a7: POP 000023a8: POP 000023a9: POP 000023aa: SWAP1 000023ab: DUP1 000023ac: MLOAD 000023ad: SWAP1 000023ae: PUSH1 0x20 000023b0: ADD 000023b1: SWAP1 000023b2: PUSH1 0x20 000023b4: MUL 000023b5: DUP1 000023b6: DUP4 000023b7: DUP4 000023b8: PUSH1 0x00 000023ba: JUMPDEST 000023bb: DUP4 000023bc: DUP2 000023bd: LT 000023be: ISZERO 000023bf: PUSH2 0x23d5 000023c2: JUMPI 000023c3: DUP1 000023c4: DUP3 000023c5: ADD 000023c6: MLOAD 000023c7: DUP2 000023c8: DUP5 000023c9: ADD 000023ca: MSTORE 000023cb: PUSH1 0x20 000023cd: DUP2 000023ce: ADD 000023cf: SWAP1 000023d0: POP 000023d1: PUSH2 0x23ba 000023d4: JUMP 000023d5: JUMPDEST 000023d6: POP 000023d7: POP 000023d8: POP 000023d9: POP 000023da: SWAP1 000023db: POP 000023dc: ADD 000023dd: PUSH1 0x40 000023df: MSTORE 000023e0: POP 000023e1: POP 000023e2: POP 000023e3: POP 000023e4: PUSH1 0x19 000023e6: PUSH1 0x03 000023e8: SWAP1 000023e9: SLOAD 000023ea: SWAP1 000023eb: PUSH2 0x0100 000023ee: EXP 000023ef: SWAP1 000023f0: DIV 000023f1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002406: AND 00002407: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000241c: AND 0000241d: PUSH4 0x7ff36ab5 00002422: DUP3 00002423: PUSH1 0x00 00002425: PUSH1 0x16 00002427: ADDRESS 00002428: DUP11 00002429: PUSH1 0x40 0000242b: MLOAD 0000242c: DUP7 0000242d: PUSH4 0xffffffff 00002432: AND 00002433: PUSH1 0xe0 00002435: SHL 00002436: DUP2 00002437: MSTORE 00002438: PUSH1 0x04 0000243a: ADD 0000243b: DUP1 0000243c: DUP6 0000243d: DUP2 0000243e: MSTORE 0000243f: PUSH1 0x20 00002441: ADD 00002442: DUP1 00002443: PUSH1 0x20 00002445: ADD 00002446: DUP5 00002447: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000245c: AND 0000245d: DUP2 0000245e: MSTORE 0000245f: PUSH1 0x20 00002461: ADD 00002462: DUP4 00002463: DUP2 00002464: MSTORE 00002465: PUSH1 0x20 00002467: ADD 00002468: DUP3 00002469: DUP2 0000246a: SUB 0000246b: DUP3 0000246c: MSTORE 0000246d: DUP6 0000246e: DUP2 0000246f: DUP2 00002470: SLOAD 00002471: DUP2 00002472: MSTORE 00002473: PUSH1 0x20 00002475: ADD 00002476: SWAP2 00002477: POP 00002478: DUP1 00002479: SLOAD 0000247a: DUP1 0000247b: ISZERO 0000247c: PUSH2 0x24da 0000247f: JUMPI 00002480: PUSH1 0x20 00002482: MUL 00002483: DUP3 00002484: ADD 00002485: SWAP2 00002486: SWAP1 00002487: PUSH1 0x00 00002489: MSTORE 0000248a: PUSH1 0x20 0000248c: PUSH1 0x00 0000248e: KECCAK256 0000248f: SWAP1 00002490: JUMPDEST 00002491: DUP2 00002492: PUSH1 0x00 00002494: SWAP1 00002495: SLOAD 00002496: SWAP1 00002497: PUSH2 0x0100 0000249a: EXP 0000249b: SWAP1 0000249c: DIV 0000249d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024b2: AND 000024b3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024c8: AND 000024c9: DUP2 000024ca: MSTORE 000024cb: PUSH1 0x20 000024cd: ADD 000024ce: SWAP1 000024cf: PUSH1 0x01 000024d1: ADD 000024d2: SWAP1 000024d3: DUP1 000024d4: DUP4 000024d5: GT 000024d6: PUSH2 0x2490 000024d9: JUMPI 000024da: JUMPDEST 000024db: POP 000024dc: POP 000024dd: SWAP6 000024de: POP 000024df: POP 000024e0: POP 000024e1: POP 000024e2: POP 000024e3: POP 000024e4: PUSH1 0x00 000024e6: PUSH1 0x40 000024e8: MLOAD 000024e9: DUP1 000024ea: DUP4 000024eb: SUB 000024ec: DUP2 000024ed: DUP6 000024ee: DUP9 000024ef: DUP1 000024f0: EXTCODESIZE 000024f1: ISZERO 000024f2: DUP1 000024f3: ISZERO 000024f4: PUSH2 0x24fc 000024f7: JUMPI 000024f8: PUSH1 0x00 000024fa: DUP1 000024fb: REVERT 000024fc: JUMPDEST 000024fd: POP 000024fe: GAS 000024ff: CALL 00002500: ISZERO 00002501: DUP1 00002502: ISZERO 00002503: PUSH2 0x2510 00002506: JUMPI 00002507: RETURNDATASIZE 00002508: PUSH1 0x00 0000250a: DUP1 0000250b: RETURNDATACOPY 0000250c: RETURNDATASIZE 0000250d: PUSH1 0x00 0000250f: REVERT 00002510: JUMPDEST 00002511: POP 00002512: POP 00002513: POP 00002514: POP 00002515: POP 00002516: PUSH1 0x40 00002518: MLOAD 00002519: RETURNDATASIZE 0000251a: PUSH1 0x00 0000251c: DUP3 0000251d: RETURNDATACOPY 0000251e: RETURNDATASIZE 0000251f: PUSH1 0x1f 00002521: NOT 00002522: PUSH1 0x1f 00002524: DUP3 00002525: ADD 00002526: AND 00002527: DUP3 00002528: ADD 00002529: DUP1 0000252a: PUSH1 0x40 0000252c: MSTORE 0000252d: POP 0000252e: PUSH1 0x20 00002530: DUP2 00002531: LT 00002532: ISZERO 00002533: PUSH2 0x253b 00002536: JUMPI 00002537: PUSH1 0x00 00002539: DUP1 0000253a: REVERT 0000253b: JUMPDEST 0000253c: DUP2 0000253d: ADD 0000253e: SWAP1 0000253f: DUP1 00002540: DUP1 00002541: MLOAD 00002542: PUSH1 0x40 00002544: MLOAD 00002545: SWAP4 00002546: SWAP3 00002547: SWAP2 00002548: SWAP1 00002549: DUP5 0000254a: PUSH5 0x0100000000 00002550: DUP3 00002551: GT 00002552: ISZERO 00002553: PUSH2 0x255b 00002556: JUMPI 00002557: PUSH1 0x00 00002559: DUP1 0000255a: REVERT 0000255b: JUMPDEST 0000255c: DUP4 0000255d: DUP3 0000255e: ADD 0000255f: SWAP2 00002560: POP 00002561: PUSH1 0x20 00002563: DUP3 00002564: ADD 00002565: DUP6 00002566: DUP2 00002567: GT 00002568: ISZERO 00002569: PUSH2 0x2571 0000256c: JUMPI 0000256d: PUSH1 0x00 0000256f: DUP1 00002570: REVERT 00002571: JUMPDEST 00002572: DUP3 00002573: MLOAD 00002574: DUP7 00002575: PUSH1 0x20 00002577: DUP3 00002578: MUL 00002579: DUP4 0000257a: ADD 0000257b: GT 0000257c: PUSH5 0x0100000000 00002582: DUP3 00002583: GT 00002584: OR 00002585: ISZERO 00002586: PUSH2 0x258e 00002589: JUMPI 0000258a: PUSH1 0x00 0000258c: DUP1 0000258d: REVERT 0000258e: JUMPDEST 0000258f: DUP1 00002590: DUP4 00002591: MSTORE 00002592: PUSH1 0x20 00002594: DUP4 00002595: ADD 00002596: SWAP3 00002597: POP 00002598: POP 00002599: POP 0000259a: SWAP1 0000259b: DUP1 0000259c: MLOAD 0000259d: SWAP1 0000259e: PUSH1 0x20 000025a0: ADD 000025a1: SWAP1 000025a2: PUSH1 0x20 000025a4: MUL 000025a5: DUP1 000025a6: DUP4 000025a7: DUP4 000025a8: PUSH1 0x00 000025aa: JUMPDEST 000025ab: DUP4 000025ac: DUP2 000025ad: LT 000025ae: ISZERO 000025af: PUSH2 0x25c5 000025b2: JUMPI 000025b3: DUP1 000025b4: DUP3 000025b5: ADD 000025b6: MLOAD 000025b7: DUP2 000025b8: DUP5 000025b9: ADD 000025ba: MSTORE 000025bb: PUSH1 0x20 000025bd: DUP2 000025be: ADD 000025bf: SWAP1 000025c0: POP 000025c1: PUSH2 0x25aa 000025c4: JUMP 000025c5: JUMPDEST 000025c6: POP 000025c7: POP 000025c8: POP 000025c9: POP 000025ca: SWAP1 000025cb: POP 000025cc: ADD 000025cd: PUSH1 0x40 000025cf: MSTORE 000025d0: POP 000025d1: POP 000025d2: POP 000025d3: POP 000025d4: PUSH1 0x19 000025d6: PUSH1 0x03 000025d8: SWAP1 000025d9: SLOAD 000025da: SWAP1 000025db: PUSH2 0x0100 000025de: EXP 000025df: SWAP1 000025e0: DIV 000025e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025f6: AND 000025f7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000260c: AND 0000260d: PUSH4 0x7ff36ab5 00002612: DUP3 00002613: PUSH1 0x00 00002615: PUSH1 0x17 00002617: ADDRESS 00002618: DUP11 00002619: PUSH1 0x40 0000261b: MLOAD 0000261c: DUP7 0000261d: PUSH4 0xffffffff 00002622: AND 00002623: PUSH1 0xe0 00002625: SHL 00002626: DUP2 00002627: MSTORE 00002628: PUSH1 0x04 0000262a: ADD 0000262b: DUP1 0000262c: DUP6 0000262d: DUP2 0000262e: MSTORE 0000262f: PUSH1 0x20 00002631: ADD 00002632: DUP1 00002633: PUSH1 0x20 00002635: ADD 00002636: DUP5 00002637: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000264c: AND 0000264d: DUP2 0000264e: MSTORE 0000264f: PUSH1 0x20 00002651: ADD 00002652: DUP4 00002653: DUP2 00002654: MSTORE 00002655: PUSH1 0x20 00002657: ADD 00002658: DUP3 00002659: DUP2 0000265a: SUB 0000265b: DUP3 0000265c: MSTORE 0000265d: DUP6 0000265e: DUP2 0000265f: DUP2 00002660: SLOAD 00002661: DUP2 00002662: MSTORE 00002663: PUSH1 0x20 00002665: ADD 00002666: SWAP2 00002667: POP 00002668: DUP1 00002669: SLOAD 0000266a: DUP1 0000266b: ISZERO 0000266c: PUSH2 0x26ca 0000266f: JUMPI 00002670: PUSH1 0x20 00002672: MUL 00002673: DUP3 00002674: ADD 00002675: SWAP2 00002676: SWAP1 00002677: PUSH1 0x00 00002679: MSTORE 0000267a: PUSH1 0x20 0000267c: PUSH1 0x00 0000267e: KECCAK256 0000267f: SWAP1 00002680: JUMPDEST 00002681: DUP2 00002682: PUSH1 0x00 00002684: SWAP1 00002685: SLOAD 00002686: SWAP1 00002687: PUSH2 0x0100 0000268a: EXP 0000268b: SWAP1 0000268c: DIV 0000268d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000026a2: AND 000026a3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000026b8: AND 000026b9: DUP2 000026ba: MSTORE 000026bb: PUSH1 0x20 000026bd: ADD 000026be: SWAP1 000026bf: PUSH1 0x01 000026c1: ADD 000026c2: SWAP1 000026c3: DUP1 000026c4: DUP4 000026c5: GT 000026c6: PUSH2 0x2680 000026c9: JUMPI 000026ca: JUMPDEST 000026cb: POP 000026cc: POP 000026cd: SWAP6 000026ce: POP 000026cf: POP 000026d0: POP 000026d1: POP 000026d2: POP 000026d3: POP 000026d4: PUSH1 0x00 000026d6: PUSH1 0x40 000026d8: MLOAD 000026d9: DUP1 000026da: DUP4 000026db: SUB 000026dc: DUP2 000026dd: DUP6 000026de: DUP9 000026df: DUP1 000026e0: EXTCODESIZE 000026e1: ISZERO 000026e2: DUP1 000026e3: ISZERO 000026e4: PUSH2 0x26ec 000026e7: JUMPI 000026e8: PUSH1 0x00 000026ea: DUP1 000026eb: REVERT 000026ec: JUMPDEST 000026ed: POP 000026ee: GAS 000026ef: CALL 000026f0: ISZERO 000026f1: DUP1 000026f2: ISZERO 000026f3: PUSH2 0x2700 000026f6: JUMPI 000026f7: RETURNDATASIZE 000026f8: PUSH1 0x00 000026fa: DUP1 000026fb: RETURNDATACOPY 000026fc: RETURNDATASIZE 000026fd: PUSH1 0x00 000026ff: REVERT 00002700: JUMPDEST 00002701: POP 00002702: POP 00002703: POP 00002704: POP 00002705: POP 00002706: PUSH1 0x40 00002708: MLOAD 00002709: RETURNDATASIZE 0000270a: PUSH1 0x00 0000270c: DUP3 0000270d: RETURNDATACOPY 0000270e: RETURNDATASIZE 0000270f: PUSH1 0x1f 00002711: NOT 00002712: PUSH1 0x1f 00002714: DUP3 00002715: ADD 00002716: AND 00002717: DUP3 00002718: ADD 00002719: DUP1 0000271a: PUSH1 0x40 0000271c: MSTORE 0000271d: POP 0000271e: PUSH1 0x20 00002720: DUP2 00002721: LT 00002722: ISZERO 00002723: PUSH2 0x272b 00002726: JUMPI 00002727: PUSH1 0x00 00002729: DUP1 0000272a: REVERT 0000272b: JUMPDEST 0000272c: DUP2 0000272d: ADD 0000272e: SWAP1 0000272f: DUP1 00002730: DUP1 00002731: MLOAD 00002732: PUSH1 0x40 00002734: MLOAD 00002735: SWAP4 00002736: SWAP3 00002737: SWAP2 00002738: SWAP1 00002739: DUP5 0000273a: PUSH5 0x0100000000 00002740: DUP3 00002741: GT 00002742: ISZERO 00002743: PUSH2 0x274b 00002746: JUMPI 00002747: PUSH1 0x00 00002749: DUP1 0000274a: REVERT 0000274b: JUMPDEST 0000274c: DUP4 0000274d: DUP3 0000274e: ADD 0000274f: SWAP2 00002750: POP 00002751: PUSH1 0x20 00002753: DUP3 00002754: ADD 00002755: DUP6 00002756: DUP2 00002757: GT 00002758: ISZERO 00002759: PUSH2 0x2761 0000275c: JUMPI 0000275d: PUSH1 0x00 0000275f: DUP1 00002760: REVERT 00002761: JUMPDEST 00002762: DUP3 00002763: MLOAD 00002764: DUP7 00002765: PUSH1 0x20 00002767: DUP3 00002768: MUL 00002769: DUP4 0000276a: ADD 0000276b: GT 0000276c: PUSH5 0x0100000000 00002772: DUP3 00002773: GT 00002774: OR 00002775: ISZERO 00002776: PUSH2 0x277e 00002779: JUMPI 0000277a: PUSH1 0x00 0000277c: DUP1 0000277d: REVERT 0000277e: JUMPDEST 0000277f: DUP1 00002780: DUP4 00002781: MSTORE 00002782: PUSH1 0x20 00002784: DUP4 00002785: ADD 00002786: SWAP3 00002787: POP 00002788: POP 00002789: POP 0000278a: SWAP1 0000278b: DUP1 0000278c: MLOAD 0000278d: SWAP1 0000278e: PUSH1 0x20 00002790: ADD 00002791: SWAP1 00002792: PUSH1 0x20 00002794: MUL 00002795: DUP1 00002796: DUP4 00002797: DUP4 00002798: PUSH1 0x00 0000279a: JUMPDEST 0000279b: DUP4 0000279c: DUP2 0000279d: LT 0000279e: ISZERO 0000279f: PUSH2 0x27b5 000027a2: JUMPI 000027a3: DUP1 000027a4: DUP3 000027a5: ADD 000027a6: MLOAD 000027a7: DUP2 000027a8: DUP5 000027a9: ADD 000027aa: MSTORE 000027ab: PUSH1 0x20 000027ad: DUP2 000027ae: ADD 000027af: SWAP1 000027b0: POP 000027b1: PUSH2 0x279a 000027b4: JUMP 000027b5: JUMPDEST 000027b6: POP 000027b7: POP 000027b8: POP 000027b9: POP 000027ba: SWAP1 000027bb: POP 000027bc: ADD 000027bd: PUSH1 0x40 000027bf: MSTORE 000027c0: POP 000027c1: POP 000027c2: POP 000027c3: POP 000027c4: PUSH1 0x00 000027c6: PUSH1 0x0c 000027c8: PUSH1 0x00 000027ca: SWAP1 000027cb: SLOAD 000027cc: SWAP1 000027cd: PUSH2 0x0100 000027d0: EXP 000027d1: SWAP1 000027d2: DIV 000027d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027e8: AND 000027e9: SWAP1 000027ea: POP 000027eb: DUP1 000027ec: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002801: AND 00002802: PUSH4 0x70a08231 00002807: ADDRESS 00002808: PUSH1 0x40 0000280a: MLOAD 0000280b: DUP3 0000280c: PUSH4 0xffffffff 00002811: AND 00002812: PUSH1 0xe0 00002814: SHL 00002815: DUP2 00002816: MSTORE 00002817: PUSH1 0x04 00002819: ADD 0000281a: DUP1 0000281b: DUP3 0000281c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002831: AND 00002832: DUP2 00002833: MSTORE 00002834: PUSH1 0x20 00002836: ADD 00002837: SWAP2 00002838: POP 00002839: POP 0000283a: PUSH1 0x20 0000283c: PUSH1 0x40 0000283e: MLOAD 0000283f: DUP1 00002840: DUP4 00002841: SUB 00002842: DUP2 00002843: DUP7 00002844: DUP1 00002845: EXTCODESIZE 00002846: ISZERO 00002847: DUP1 00002848: ISZERO 00002849: PUSH2 0x2851 0000284c: JUMPI 0000284d: PUSH1 0x00 0000284f: DUP1 00002850: REVERT 00002851: JUMPDEST 00002852: POP 00002853: GAS 00002854: STATICCALL 00002855: ISZERO 00002856: DUP1 00002857: ISZERO 00002858: PUSH2 0x2865 0000285b: JUMPI 0000285c: RETURNDATASIZE 0000285d: PUSH1 0x00 0000285f: DUP1 00002860: RETURNDATACOPY 00002861: RETURNDATASIZE 00002862: PUSH1 0x00 00002864: REVERT 00002865: JUMPDEST 00002866: POP 00002867: POP 00002868: POP 00002869: POP 0000286a: PUSH1 0x40 0000286c: MLOAD 0000286d: RETURNDATASIZE 0000286e: PUSH1 0x20 00002870: DUP2 00002871: LT 00002872: ISZERO 00002873: PUSH2 0x287b 00002876: JUMPI 00002877: PUSH1 0x00 00002879: DUP1 0000287a: REVERT 0000287b: JUMPDEST 0000287c: DUP2 0000287d: ADD 0000287e: SWAP1 0000287f: DUP1 00002880: DUP1 00002881: MLOAD 00002882: SWAP1 00002883: PUSH1 0x20 00002885: ADD 00002886: SWAP1 00002887: SWAP3 00002888: SWAP2 00002889: SWAP1 0000288a: POP 0000288b: POP 0000288c: POP 0000288d: PUSH1 0x04 0000288f: SLOAD 00002890: ADD 00002891: PUSH1 0x04 00002893: DUP2 00002894: SWAP1 00002895: SSTORE 00002896: POP 00002897: PUSH1 0x00 00002899: ISZERO 0000289a: ISZERO 0000289b: PUSH1 0x19 0000289d: PUSH1 0x02 0000289f: SWAP1 000028a0: SLOAD 000028a1: SWAP1 000028a2: PUSH2 0x0100 000028a5: EXP 000028a6: SWAP1 000028a7: DIV 000028a8: PUSH1 0xff 000028aa: AND 000028ab: ISZERO 000028ac: ISZERO 000028ad: EQ 000028ae: ISZERO 000028af: PUSH2 0x28bb 000028b2: JUMPI 000028b3: PUSH2 0x28ba 000028b6: PUSH2 0x2d7b 000028b9: JUMP 000028ba: JUMPDEST 000028bb: JUMPDEST 000028bc: POP 000028bd: POP 000028be: POP 000028bf: POP 000028c0: POP 000028c1: POP 000028c2: PUSH1 0x01 000028c4: PUSH1 0x00 000028c6: DUP2 000028c7: SWAP1 000028c8: SSTORE 000028c9: POP 000028ca: JUMP 000028cb: JUMPDEST 000028cc: PUSH1 0x00 000028ce: PUSH1 0x0f 000028d0: TIMESTAMP 000028d1: ADD 000028d2: SWAP1 000028d3: POP 000028d4: PUSH1 0x00 000028d6: DUP3 000028d7: SWAP1 000028d8: POP 000028d9: PUSH1 0x00 000028db: DUP2 000028dc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000028f1: AND 000028f2: PUSH4 0x70a08231 000028f7: ADDRESS 000028f8: PUSH1 0x40 000028fa: MLOAD 000028fb: DUP3 000028fc: PUSH4 0xffffffff 00002901: AND 00002902: PUSH1 0xe0 00002904: SHL 00002905: DUP2 00002906: MSTORE 00002907: PUSH1 0x04 00002909: ADD 0000290a: DUP1 0000290b: DUP3 0000290c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002921: AND 00002922: DUP2 00002923: MSTORE 00002924: PUSH1 0x20 00002926: ADD 00002927: SWAP2 00002928: POP 00002929: POP 0000292a: PUSH1 0x20 0000292c: PUSH1 0x40 0000292e: MLOAD 0000292f: DUP1 00002930: DUP4 00002931: SUB 00002932: DUP2 00002933: DUP7 00002934: DUP1 00002935: EXTCODESIZE 00002936: ISZERO 00002937: DUP1 00002938: ISZERO 00002939: PUSH2 0x2941 0000293c: JUMPI 0000293d: PUSH1 0x00 0000293f: DUP1 00002940: REVERT 00002941: JUMPDEST 00002942: POP 00002943: GAS 00002944: STATICCALL 00002945: ISZERO 00002946: DUP1 00002947: ISZERO 00002948: PUSH2 0x2955 0000294b: JUMPI 0000294c: RETURNDATASIZE 0000294d: PUSH1 0x00 0000294f: DUP1 00002950: RETURNDATACOPY 00002951: RETURNDATASIZE 00002952: PUSH1 0x00 00002954: REVERT 00002955: JUMPDEST 00002956: POP 00002957: POP 00002958: POP 00002959: POP 0000295a: PUSH1 0x40 0000295c: MLOAD 0000295d: RETURNDATASIZE 0000295e: PUSH1 0x20 00002960: DUP2 00002961: LT 00002962: ISZERO 00002963: PUSH2 0x296b 00002966: JUMPI 00002967: PUSH1 0x00 00002969: DUP1 0000296a: REVERT 0000296b: JUMPDEST 0000296c: DUP2 0000296d: ADD 0000296e: SWAP1 0000296f: DUP1 00002970: DUP1 00002971: MLOAD 00002972: SWAP1 00002973: PUSH1 0x20 00002975: ADD 00002976: SWAP1 00002977: SWAP3 00002978: SWAP2 00002979: SWAP1 0000297a: POP 0000297b: POP 0000297c: POP 0000297d: SWAP1 0000297e: POP 0000297f: PUSH1 0x40 00002981: MLOAD 00002982: DUP1 00002983: PUSH1 0x40 00002985: ADD 00002986: PUSH1 0x40 00002988: MSTORE 00002989: DUP1 0000298a: DUP6 0000298b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029a0: AND 000029a1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029b6: AND 000029b7: DUP2 000029b8: MSTORE 000029b9: PUSH1 0x20 000029bb: ADD 000029bc: PUSH1 0x06 000029be: PUSH1 0x00 000029c0: SWAP1 000029c1: SLOAD 000029c2: SWAP1 000029c3: PUSH2 0x0100 000029c6: EXP 000029c7: SWAP1 000029c8: DIV 000029c9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029de: AND 000029df: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029f4: AND 000029f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a0a: AND 00002a0b: DUP2 00002a0c: MSTORE 00002a0d: POP 00002a0e: PUSH1 0x18 00002a10: SWAP1 00002a11: PUSH1 0x02 00002a13: PUSH2 0x2a1d 00002a16: SWAP3 00002a17: SWAP2 00002a18: SWAP1 00002a19: PUSH2 0x30fd 00002a1c: JUMP 00002a1d: JUMPDEST 00002a1e: POP 00002a1f: PUSH1 0x00 00002a21: DUP2 00002a22: GT 00002a23: ISZERO 00002a24: PUSH2 0x2c41 00002a27: JUMPI 00002a28: PUSH1 0x19 00002a2a: PUSH1 0x03 00002a2c: SWAP1 00002a2d: SLOAD 00002a2e: SWAP1 00002a2f: PUSH2 0x0100 00002a32: EXP 00002a33: SWAP1 00002a34: DIV 00002a35: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a4a: AND 00002a4b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a60: AND 00002a61: PUSH4 0x18cbafe5 00002a66: DUP3 00002a67: PUSH1 0x00 00002a69: PUSH1 0x18 00002a6b: PUSH1 0x01 00002a6d: PUSH1 0x00 00002a6f: SWAP1 00002a70: SLOAD 00002a71: SWAP1 00002a72: PUSH2 0x0100 00002a75: EXP 00002a76: SWAP1 00002a77: DIV 00002a78: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a8d: AND 00002a8e: DUP9 00002a8f: PUSH1 0x40 00002a91: MLOAD 00002a92: DUP7 00002a93: PUSH4 0xffffffff 00002a98: AND 00002a99: PUSH1 0xe0 00002a9b: SHL 00002a9c: DUP2 00002a9d: MSTORE 00002a9e: PUSH1 0x04 00002aa0: ADD 00002aa1: DUP1 00002aa2: DUP7 00002aa3: DUP2 00002aa4: MSTORE 00002aa5: PUSH1 0x20 00002aa7: ADD 00002aa8: DUP6 00002aa9: DUP2 00002aaa: MSTORE 00002aab: PUSH1 0x20 00002aad: ADD 00002aae: DUP1 00002aaf: PUSH1 0x20 00002ab1: ADD 00002ab2: DUP5 00002ab3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ac8: AND 00002ac9: DUP2 00002aca: MSTORE 00002acb: PUSH1 0x20 00002acd: ADD 00002ace: DUP4 00002acf: DUP2 00002ad0: MSTORE 00002ad1: PUSH1 0x20 00002ad3: ADD 00002ad4: DUP3 00002ad5: DUP2 00002ad6: SUB 00002ad7: DUP3 00002ad8: MSTORE 00002ad9: DUP6 00002ada: DUP2 00002adb: DUP2 00002adc: SLOAD 00002add: DUP2 00002ade: MSTORE 00002adf: PUSH1 0x20 00002ae1: ADD 00002ae2: SWAP2 00002ae3: POP 00002ae4: DUP1 00002ae5: SLOAD 00002ae6: DUP1 00002ae7: ISZERO 00002ae8: PUSH2 0x2b46 00002aeb: JUMPI 00002aec: PUSH1 0x20 00002aee: MUL 00002aef: DUP3 00002af0: ADD 00002af1: SWAP2 00002af2: SWAP1 00002af3: PUSH1 0x00 00002af5: MSTORE 00002af6: PUSH1 0x20 00002af8: PUSH1 0x00 00002afa: KECCAK256 00002afb: SWAP1 00002afc: JUMPDEST 00002afd: DUP2 00002afe: PUSH1 0x00 00002b00: SWAP1 00002b01: SLOAD 00002b02: SWAP1 00002b03: PUSH2 0x0100 00002b06: EXP 00002b07: SWAP1 00002b08: DIV 00002b09: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b1e: AND 00002b1f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b34: AND 00002b35: DUP2 00002b36: MSTORE 00002b37: PUSH1 0x20 00002b39: ADD 00002b3a: SWAP1 00002b3b: PUSH1 0x01 00002b3d: ADD 00002b3e: SWAP1 00002b3f: DUP1 00002b40: DUP4 00002b41: GT 00002b42: PUSH2 0x2afc 00002b45: JUMPI 00002b46: JUMPDEST 00002b47: POP 00002b48: POP 00002b49: SWAP7 00002b4a: POP 00002b4b: POP 00002b4c: POP 00002b4d: POP 00002b4e: POP 00002b4f: POP 00002b50: POP 00002b51: PUSH1 0x00 00002b53: PUSH1 0x40 00002b55: MLOAD 00002b56: DUP1 00002b57: DUP4 00002b58: SUB 00002b59: DUP2 00002b5a: PUSH1 0x00 00002b5c: DUP8 00002b5d: DUP1 00002b5e: EXTCODESIZE 00002b5f: ISZERO 00002b60: DUP1 00002b61: ISZERO 00002b62: PUSH2 0x2b6a 00002b65: JUMPI 00002b66: PUSH1 0x00 00002b68: DUP1 00002b69: REVERT 00002b6a: JUMPDEST 00002b6b: POP 00002b6c: GAS 00002b6d: CALL 00002b6e: ISZERO 00002b6f: DUP1 00002b70: ISZERO 00002b71: PUSH2 0x2b7e 00002b74: JUMPI 00002b75: RETURNDATASIZE 00002b76: PUSH1 0x00 00002b78: DUP1 00002b79: RETURNDATACOPY 00002b7a: RETURNDATASIZE 00002b7b: PUSH1 0x00 00002b7d: REVERT 00002b7e: JUMPDEST 00002b7f: POP 00002b80: POP 00002b81: POP 00002b82: POP 00002b83: PUSH1 0x40 00002b85: MLOAD 00002b86: RETURNDATASIZE 00002b87: PUSH1 0x00 00002b89: DUP3 00002b8a: RETURNDATACOPY 00002b8b: RETURNDATASIZE 00002b8c: PUSH1 0x1f 00002b8e: NOT 00002b8f: PUSH1 0x1f 00002b91: DUP3 00002b92: ADD 00002b93: AND 00002b94: DUP3 00002b95: ADD 00002b96: DUP1 00002b97: PUSH1 0x40 00002b99: MSTORE 00002b9a: POP 00002b9b: PUSH1 0x20 00002b9d: DUP2 00002b9e: LT 00002b9f: ISZERO 00002ba0: PUSH2 0x2ba8 00002ba3: JUMPI 00002ba4: PUSH1 0x00 00002ba6: DUP1 00002ba7: REVERT 00002ba8: JUMPDEST 00002ba9: DUP2 00002baa: ADD 00002bab: SWAP1 00002bac: DUP1 00002bad: DUP1 00002bae: MLOAD 00002baf: PUSH1 0x40 00002bb1: MLOAD 00002bb2: SWAP4 00002bb3: SWAP3 00002bb4: SWAP2 00002bb5: SWAP1 00002bb6: DUP5 00002bb7: PUSH5 0x0100000000 00002bbd: DUP3 00002bbe: GT 00002bbf: ISZERO 00002bc0: PUSH2 0x2bc8 00002bc3: JUMPI 00002bc4: PUSH1 0x00 00002bc6: DUP1 00002bc7: REVERT 00002bc8: JUMPDEST 00002bc9: DUP4 00002bca: DUP3 00002bcb: ADD 00002bcc: SWAP2 00002bcd: POP 00002bce: PUSH1 0x20 00002bd0: DUP3 00002bd1: ADD 00002bd2: DUP6 00002bd3: DUP2 00002bd4: GT 00002bd5: ISZERO 00002bd6: PUSH2 0x2bde 00002bd9: JUMPI 00002bda: PUSH1 0x00 00002bdc: DUP1 00002bdd: REVERT 00002bde: JUMPDEST 00002bdf: DUP3 00002be0: MLOAD 00002be1: DUP7 00002be2: PUSH1 0x20 00002be4: DUP3 00002be5: MUL 00002be6: DUP4 00002be7: ADD 00002be8: GT 00002be9: PUSH5 0x0100000000 00002bef: DUP3 00002bf0: GT 00002bf1: OR 00002bf2: ISZERO 00002bf3: PUSH2 0x2bfb 00002bf6: JUMPI 00002bf7: PUSH1 0x00 00002bf9: DUP1 00002bfa: REVERT 00002bfb: JUMPDEST 00002bfc: DUP1 00002bfd: DUP4 00002bfe: MSTORE 00002bff: PUSH1 0x20 00002c01: DUP4 00002c02: ADD 00002c03: SWAP3 00002c04: POP 00002c05: POP 00002c06: POP 00002c07: SWAP1 00002c08: DUP1 00002c09: MLOAD 00002c0a: SWAP1 00002c0b: PUSH1 0x20 00002c0d: ADD 00002c0e: SWAP1 00002c0f: PUSH1 0x20 00002c11: MUL 00002c12: DUP1 00002c13: DUP4 00002c14: DUP4 00002c15: PUSH1 0x00 00002c17: JUMPDEST 00002c18: DUP4 00002c19: DUP2 00002c1a: LT 00002c1b: ISZERO 00002c1c: PUSH2 0x2c32 00002c1f: JUMPI 00002c20: DUP1 00002c21: DUP3 00002c22: ADD 00002c23: MLOAD 00002c24: DUP2 00002c25: DUP5 00002c26: ADD 00002c27: MSTORE 00002c28: PUSH1 0x20 00002c2a: DUP2 00002c2b: ADD 00002c2c: SWAP1 00002c2d: POP 00002c2e: PUSH2 0x2c17 00002c31: JUMP 00002c32: JUMPDEST 00002c33: POP 00002c34: POP 00002c35: POP 00002c36: POP 00002c37: SWAP1 00002c38: POP 00002c39: ADD 00002c3a: PUSH1 0x40 00002c3c: MSTORE 00002c3d: POP 00002c3e: POP 00002c3f: POP 00002c40: POP 00002c41: JUMPDEST 00002c42: POP 00002c43: POP 00002c44: POP 00002c45: POP 00002c46: JUMP 00002c47: JUMPDEST 00002c48: PUSH1 0x00 00002c4a: PUSH1 0x0e 00002c4c: PUSH1 0x00 00002c4e: SWAP1 00002c4f: SLOAD 00002c50: SWAP1 00002c51: PUSH2 0x0100 00002c54: EXP 00002c55: SWAP1 00002c56: DIV 00002c57: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c6c: AND 00002c6d: SWAP1 00002c6e: POP 00002c6f: PUSH1 0x00 00002c71: DUP2 00002c72: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c87: AND 00002c88: PUSH4 0x70a08231 00002c8d: ADDRESS 00002c8e: PUSH1 0x40 00002c90: MLOAD 00002c91: DUP3 00002c92: PUSH4 0xffffffff 00002c97: AND 00002c98: PUSH1 0xe0 00002c9a: SHL 00002c9b: DUP2 00002c9c: MSTORE 00002c9d: PUSH1 0x04 00002c9f: ADD 00002ca0: DUP1 00002ca1: DUP3 00002ca2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002cb7: AND 00002cb8: DUP2 00002cb9: MSTORE 00002cba: PUSH1 0x20 00002cbc: ADD 00002cbd: SWAP2 00002cbe: POP 00002cbf: POP 00002cc0: PUSH1 0x20 00002cc2: PUSH1 0x40 00002cc4: MLOAD 00002cc5: DUP1 00002cc6: DUP4 00002cc7: SUB 00002cc8: DUP2 00002cc9: DUP7 00002cca: DUP1 00002ccb: EXTCODESIZE 00002ccc: ISZERO 00002ccd: DUP1 00002cce: ISZERO 00002ccf: PUSH2 0x2cd7 00002cd2: JUMPI 00002cd3: PUSH1 0x00 00002cd5: DUP1 00002cd6: REVERT 00002cd7: JUMPDEST 00002cd8: POP 00002cd9: GAS 00002cda: STATICCALL 00002cdb: ISZERO 00002cdc: DUP1 00002cdd: ISZERO 00002cde: PUSH2 0x2ceb 00002ce1: JUMPI 00002ce2: RETURNDATASIZE 00002ce3: PUSH1 0x00 00002ce5: DUP1 00002ce6: RETURNDATACOPY 00002ce7: RETURNDATASIZE 00002ce8: PUSH1 0x00 00002cea: REVERT 00002ceb: JUMPDEST 00002cec: POP 00002ced: POP 00002cee: POP 00002cef: POP 00002cf0: PUSH1 0x40 00002cf2: MLOAD 00002cf3: RETURNDATASIZE 00002cf4: PUSH1 0x20 00002cf6: DUP2 00002cf7: LT 00002cf8: ISZERO 00002cf9: PUSH2 0x2d01 00002cfc: JUMPI 00002cfd: PUSH1 0x00 00002cff: DUP1 00002d00: REVERT 00002d01: JUMPDEST 00002d02: DUP2 00002d03: ADD 00002d04: SWAP1 00002d05: DUP1 00002d06: DUP1 00002d07: MLOAD 00002d08: SWAP1 00002d09: PUSH1 0x20 00002d0b: ADD 00002d0c: SWAP1 00002d0d: SWAP3 00002d0e: SWAP2 00002d0f: SWAP1 00002d10: POP 00002d11: POP 00002d12: POP 00002d13: SWAP1 00002d14: POP 00002d15: PUSH1 0x00 00002d17: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d2c: AND 00002d2d: PUSH2 0x08fc 00002d30: DUP3 00002d31: SWAP1 00002d32: DUP2 00002d33: ISZERO 00002d34: MUL 00002d35: SWAP1 00002d36: PUSH1 0x40 00002d38: MLOAD 00002d39: PUSH1 0x00 00002d3b: PUSH1 0x40 00002d3d: MLOAD 00002d3e: DUP1 00002d3f: DUP4 00002d40: SUB 00002d41: DUP2 00002d42: DUP6 00002d43: DUP9 00002d44: DUP9 00002d45: CALL 00002d46: SWAP4 00002d47: POP 00002d48: POP 00002d49: POP 00002d4a: POP 00002d4b: ISZERO 00002d4c: DUP1 00002d4d: ISZERO 00002d4e: PUSH2 0x2d5b 00002d51: JUMPI 00002d52: RETURNDATASIZE 00002d53: PUSH1 0x00 00002d55: DUP1 00002d56: RETURNDATACOPY 00002d57: RETURNDATASIZE 00002d58: PUSH1 0x00 00002d5a: REVERT 00002d5b: JUMPDEST 00002d5c: POP 00002d5d: PUSH1 0x01 00002d5f: PUSH1 0x19 00002d61: PUSH1 0x01 00002d63: PUSH2 0x0100 00002d66: EXP 00002d67: DUP2 00002d68: SLOAD 00002d69: DUP2 00002d6a: PUSH1 0xff 00002d6c: MUL 00002d6d: NOT 00002d6e: AND 00002d6f: SWAP1 00002d70: DUP4 00002d71: ISZERO 00002d72: ISZERO 00002d73: MUL 00002d74: OR 00002d75: SWAP1 00002d76: SSTORE 00002d77: POP 00002d78: POP 00002d79: POP 00002d7a: JUMP 00002d7b: JUMPDEST 00002d7c: PUSH2 0x2da6 00002d7f: PUSH1 0x07 00002d81: PUSH1 0x00 00002d83: SWAP1 00002d84: SLOAD 00002d85: SWAP1 00002d86: PUSH2 0x0100 00002d89: EXP 00002d8a: SWAP1 00002d8b: DIV 00002d8c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002da1: AND 00002da2: PUSH2 0x2efc 00002da5: JUMP 00002da6: JUMPDEST 00002da7: PUSH2 0x2dd1 00002daa: PUSH1 0x08 00002dac: PUSH1 0x00 00002dae: SWAP1 00002daf: SLOAD 00002db0: SWAP1 00002db1: PUSH2 0x0100 00002db4: EXP 00002db5: SWAP1 00002db6: DIV 00002db7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002dcc: AND 00002dcd: PUSH2 0x2efc 00002dd0: JUMP 00002dd1: JUMPDEST 00002dd2: PUSH2 0x2dfc 00002dd5: PUSH1 0x09 00002dd7: PUSH1 0x00 00002dd9: SWAP1 00002dda: SLOAD 00002ddb: SWAP1 00002ddc: PUSH2 0x0100 00002ddf: EXP 00002de0: SWAP1 00002de1: DIV 00002de2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002df7: AND 00002df8: PUSH2 0x2efc 00002dfb: JUMP 00002dfc: JUMPDEST 00002dfd: PUSH2 0x2e27 00002e00: PUSH1 0x0a 00002e02: PUSH1 0x00 00002e04: SWAP1 00002e05: SLOAD 00002e06: SWAP1 00002e07: PUSH2 0x0100 00002e0a: EXP 00002e0b: SWAP1 00002e0c: DIV 00002e0d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002e22: AND 00002e23: PUSH2 0x2efc 00002e26: JUMP 00002e27: JUMPDEST 00002e28: PUSH2 0x2e52 00002e2b: PUSH1 0x0b 00002e2d: PUSH1 0x00 00002e2f: SWAP1 00002e30: SLOAD 00002e31: SWAP1 00002e32: PUSH2 0x0100 00002e35: EXP 00002e36: SWAP1 00002e37: DIV 00002e38: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002e4d: AND 00002e4e: PUSH2 0x2efc 00002e51: JUMP 00002e52: JUMPDEST 00002e53: PUSH2 0x2e7d 00002e56: PUSH1 0x0c 00002e58: PUSH1 0x00 00002e5a: SWAP1 00002e5b: SLOAD 00002e5c: SWAP1 00002e5d: PUSH2 0x0100 00002e60: EXP 00002e61: SWAP1 00002e62: DIV 00002e63: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002e78: AND 00002e79: PUSH2 0x2efc 00002e7c: JUMP 00002e7d: JUMPDEST 00002e7e: PUSH2 0x2ea8 00002e81: PUSH1 0x0d 00002e83: PUSH1 0x00 00002e85: SWAP1 00002e86: SLOAD 00002e87: SWAP1 00002e88: PUSH2 0x0100 00002e8b: EXP 00002e8c: SWAP1 00002e8d: DIV 00002e8e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ea3: AND 00002ea4: PUSH2 0x2efc 00002ea7: JUMP 00002ea8: JUMPDEST 00002ea9: PUSH2 0x2ed3 00002eac: PUSH1 0x0e 00002eae: PUSH1 0x00 00002eb0: SWAP1 00002eb1: SLOAD 00002eb2: SWAP1 00002eb3: PUSH2 0x0100 00002eb6: EXP 00002eb7: SWAP1 00002eb8: DIV 00002eb9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ece: AND 00002ecf: PUSH2 0x2efc 00002ed2: JUMP 00002ed3: JUMPDEST 00002ed4: PUSH3 0x02a300 00002ed8: TIMESTAMP 00002ed9: ADD 00002eda: PUSH1 0x03 00002edc: DUP2 00002edd: SWAP1 00002ede: SSTORE 00002edf: POP 00002ee0: PUSH1 0x01 00002ee2: PUSH1 0x19 00002ee4: PUSH1 0x02 00002ee6: PUSH2 0x0100 00002ee9: EXP 00002eea: DUP2 00002eeb: SLOAD 00002eec: DUP2 00002eed: PUSH1 0xff 00002eef: MUL 00002ef0: NOT 00002ef1: AND 00002ef2: SWAP1 00002ef3: DUP4 00002ef4: ISZERO 00002ef5: ISZERO 00002ef6: MUL 00002ef7: OR 00002ef8: SWAP1 00002ef9: SSTORE 00002efa: POP 00002efb: JUMP 00002efc: JUMPDEST 00002efd: PUSH1 0x00 00002eff: DUP2 00002f00: SWAP1 00002f01: POP 00002f02: DUP1 00002f03: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f18: AND 00002f19: PUSH4 0x095ea7b3 00002f1e: PUSH1 0x0f 00002f20: PUSH1 0x00 00002f22: SWAP1 00002f23: SLOAD 00002f24: SWAP1 00002f25: PUSH2 0x0100 00002f28: EXP 00002f29: SWAP1 00002f2a: DIV 00002f2b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f40: AND 00002f41: PUSH1 0x02 00002f43: SLOAD 00002f44: PUSH1 0x40 00002f46: MLOAD 00002f47: DUP4 00002f48: PUSH4 0xffffffff 00002f4d: AND 00002f4e: PUSH1 0xe0 00002f50: SHL 00002f51: DUP2 00002f52: MSTORE 00002f53: PUSH1 0x04 00002f55: ADD 00002f56: DUP1 00002f57: DUP4 00002f58: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f6d: AND 00002f6e: DUP2 00002f6f: MSTORE 00002f70: PUSH1 0x20 00002f72: ADD 00002f73: DUP3 00002f74: DUP2 00002f75: MSTORE 00002f76: PUSH1 0x20 00002f78: ADD 00002f79: SWAP3 00002f7a: POP 00002f7b: POP 00002f7c: POP 00002f7d: PUSH1 0x20 00002f7f: PUSH1 0x40 00002f81: MLOAD 00002f82: DUP1 00002f83: DUP4 00002f84: SUB 00002f85: DUP2 00002f86: PUSH1 0x00 00002f88: DUP8 00002f89: DUP1 00002f8a: EXTCODESIZE 00002f8b: ISZERO 00002f8c: DUP1 00002f8d: ISZERO 00002f8e: PUSH2 0x2f96 00002f91: JUMPI 00002f92: PUSH1 0x00 00002f94: DUP1 00002f95: REVERT 00002f96: JUMPDEST 00002f97: POP 00002f98: GAS 00002f99: CALL 00002f9a: ISZERO 00002f9b: DUP1 00002f9c: ISZERO 00002f9d: PUSH2 0x2faa 00002fa0: JUMPI 00002fa1: RETURNDATASIZE 00002fa2: PUSH1 0x00 00002fa4: DUP1 00002fa5: RETURNDATACOPY 00002fa6: RETURNDATASIZE 00002fa7: PUSH1 0x00 00002fa9: REVERT 00002faa: JUMPDEST 00002fab: POP 00002fac: POP 00002fad: POP 00002fae: POP 00002faf: PUSH1 0x40 00002fb1: MLOAD 00002fb2: RETURNDATASIZE 00002fb3: PUSH1 0x20 00002fb5: DUP2 00002fb6: LT 00002fb7: ISZERO 00002fb8: PUSH2 0x2fc0 00002fbb: JUMPI 00002fbc: PUSH1 0x00 00002fbe: DUP1 00002fbf: REVERT 00002fc0: JUMPDEST 00002fc1: DUP2 00002fc2: ADD 00002fc3: SWAP1 00002fc4: DUP1 00002fc5: DUP1 00002fc6: MLOAD 00002fc7: SWAP1 00002fc8: PUSH1 0x20 00002fca: ADD 00002fcb: SWAP1 00002fcc: SWAP3 00002fcd: SWAP2 00002fce: SWAP1 00002fcf: POP 00002fd0: POP 00002fd1: POP 00002fd2: POP 00002fd3: PUSH1 0x0e 00002fd5: PUSH1 0x00 00002fd7: SWAP1 00002fd8: SLOAD 00002fd9: SWAP1 00002fda: PUSH2 0x0100 00002fdd: EXP 00002fde: SWAP1 00002fdf: DIV 00002fe0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ff5: AND 00002ff6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000300b: AND 0000300c: DUP3 0000300d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003022: AND 00003023: EQ 00003024: PUSH2 0x30f9 00003027: JUMPI 00003028: DUP1 00003029: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000303e: AND 0000303f: PUSH4 0x095ea7b3 00003044: PUSH1 0x10 00003046: PUSH1 0x00 00003048: SWAP1 00003049: SLOAD 0000304a: SWAP1 0000304b: PUSH2 0x0100 0000304e: EXP 0000304f: SWAP1 00003050: DIV 00003051: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003066: AND 00003067: PUSH1 0x02 00003069: SLOAD 0000306a: PUSH1 0x40 0000306c: MLOAD 0000306d: DUP4 0000306e: PUSH4 0xffffffff 00003073: AND 00003074: PUSH1 0xe0 00003076: SHL 00003077: DUP2 00003078: MSTORE 00003079: PUSH1 0x04 0000307b: ADD 0000307c: DUP1 0000307d: DUP4 0000307e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003093: AND 00003094: DUP2 00003095: MSTORE 00003096: PUSH1 0x20 00003098: ADD 00003099: DUP3 0000309a: DUP2 0000309b: MSTORE 0000309c: PUSH1 0x20 0000309e: ADD 0000309f: SWAP3 000030a0: POP 000030a1: POP 000030a2: POP 000030a3: PUSH1 0x20 000030a5: PUSH1 0x40 000030a7: MLOAD 000030a8: DUP1 000030a9: DUP4 000030aa: SUB 000030ab: DUP2 000030ac: PUSH1 0x00 000030ae: DUP8 000030af: DUP1 000030b0: EXTCODESIZE 000030b1: ISZERO 000030b2: DUP1 000030b3: ISZERO 000030b4: PUSH2 0x30bc 000030b7: JUMPI 000030b8: PUSH1 0x00 000030ba: DUP1 000030bb: REVERT 000030bc: JUMPDEST 000030bd: POP 000030be: GAS 000030bf: CALL 000030c0: ISZERO 000030c1: DUP1 000030c2: ISZERO 000030c3: PUSH2 0x30d0 000030c6: JUMPI 000030c7: RETURNDATASIZE 000030c8: PUSH1 0x00 000030ca: DUP1 000030cb: RETURNDATACOPY 000030cc: RETURNDATASIZE 000030cd: PUSH1 0x00 000030cf: REVERT 000030d0: JUMPDEST 000030d1: POP 000030d2: POP 000030d3: POP 000030d4: POP 000030d5: PUSH1 0x40 000030d7: MLOAD 000030d8: RETURNDATASIZE 000030d9: PUSH1 0x20 000030db: DUP2 000030dc: LT 000030dd: ISZERO 000030de: PUSH2 0x30e6 000030e1: JUMPI 000030e2: PUSH1 0x00 000030e4: DUP1 000030e5: REVERT 000030e6: JUMPDEST 000030e7: DUP2 000030e8: ADD 000030e9: SWAP1 000030ea: DUP1 000030eb: DUP1 000030ec: MLOAD 000030ed: SWAP1 000030ee: PUSH1 0x20 000030f0: ADD 000030f1: SWAP1 000030f2: SWAP3 000030f3: SWAP2 000030f4: SWAP1 000030f5: POP 000030f6: POP 000030f7: POP 000030f8: POP 000030f9: JUMPDEST 000030fa: POP 000030fb: POP 000030fc: JUMP 000030fd: JUMPDEST 000030fe: DUP3 000030ff: DUP1 00003100: SLOAD 00003101: DUP3 00003102: DUP3 00003103: SSTORE 00003104: SWAP1 00003105: PUSH1 0x00 00003107: MSTORE 00003108: PUSH1 0x20 0000310a: PUSH1 0x00 0000310c: KECCAK256 0000310d: SWAP1 0000310e: DUP2 0000310f: ADD 00003110: SWAP3 00003111: DUP3 00003112: ISZERO 00003113: PUSH2 0x3176 00003116: JUMPI 00003117: SWAP2 00003118: PUSH1 0x20 0000311a: MUL 0000311b: DUP3 0000311c: ADD 0000311d: JUMPDEST 0000311e: DUP3 0000311f: DUP2 00003120: GT 00003121: ISZERO 00003122: PUSH2 0x3175 00003125: JUMPI 00003126: DUP3 00003127: MLOAD 00003128: DUP3 00003129: PUSH1 0x00 0000312b: PUSH2 0x0100 0000312e: EXP 0000312f: DUP2 00003130: SLOAD 00003131: DUP2 00003132: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003147: MUL 00003148: NOT 00003149: AND 0000314a: SWAP1 0000314b: DUP4 0000314c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003161: AND 00003162: MUL 00003163: OR 00003164: SWAP1 00003165: SSTORE 00003166: POP 00003167: SWAP2 00003168: PUSH1 0x20 0000316a: ADD 0000316b: SWAP2 0000316c: SWAP1 0000316d: PUSH1 0x01 0000316f: ADD 00003170: SWAP1 00003171: PUSH2 0x311d 00003174: JUMP 00003175: JUMPDEST 00003176: JUMPDEST 00003177: POP 00003178: SWAP1 00003179: POP 0000317a: PUSH2 0x3183 0000317d: SWAP2 0000317e: SWAP1 0000317f: PUSH2 0x3187 00003182: JUMP 00003183: JUMPDEST 00003184: POP 00003185: SWAP1 00003186: JUMP 00003187: JUMPDEST 00003188: JUMPDEST 00003189: DUP1 0000318a: DUP3 0000318b: GT 0000318c: ISZERO 0000318d: PUSH2 0x31be 00003190: JUMPI 00003191: PUSH1 0x00 00003193: DUP2 00003194: DUP2 00003195: PUSH2 0x0100 00003198: EXP 00003199: DUP2 0000319a: SLOAD 0000319b: SWAP1 0000319c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000031b1: MUL 000031b2: NOT 000031b3: AND 000031b4: SWAP1 000031b5: SSTORE 000031b6: POP 000031b7: PUSH1 0x01 000031b9: ADD 000031ba: PUSH2 0x3188 000031bd: JUMP 000031be: JUMPDEST 000031bf: POP 000031c0: SWAP1 000031c1: JUMP 000031c2: INVALID 000031c3: LOG2 000031c4: PUSH5 0x6970667358 000031ca: UNKNOWN(0x22) 000031cb: SLT 000031cc: KECCAK256 000031cd: OR 000031ce: SWAP16 000031cf: UNKNOWN(0xD2) 000031d0: STATICCALL 000031d1: UNKNOWN(0x2C) 000031d2: GT 000031d3: UNKNOWN(0x2F) 000031d4: UNKNOWN(0xE3) 000031d5: PUSH5 0x9c17e66855 000031db: SHR 000031dc: UNKNOWN(0xEC) 000031dd: STOP 000031de: CODESIZE 000031df: RETURNDATASIZE 000031e0: UNKNOWN(0x24) 000031e1: UNKNOWN(0xCE) 000031e2: UNKNOWN(0xEA) 000031e3: UNKNOWN(0xC5) 000031e4: SWAP7 000031e5: MOD 000031e6: SWAP4 000031e7: LOG2 000031e8: PUSH4 0x0a56794c 000031ed: PUSH5 0x736f6c6343 000031f3: STOP 000031f4: MOD 000031f5: UNKNOWN(0x0C) 000031f6: STOP 000031f7: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | oracle | codex | Flash-loan price manipulation drains ETH via zero-slippage publicSwap | 85 | no | — |
viewevidence_json{
"evidence": "`publicSwap()` is public after `safetyRelease` and calls `_swap()`, which executes multiple `swapExactETHForTokens` calls with `amountOutMin = 0`, allowing swaps at any price.",
"locations": [
"contracts/Contract.sol:290",
"contracts/Contract.sol:295",
"contracts/Contract.sol:301",
"contracts/Contract.sol:307"
],
"recommendation": "Restrict `publicSwap()` to trusted callers or add robust slippage protection using off-chain pricing (e.g., TWAP/oracle) and non-zero `amountOutMin` limits; consider pausing public access to swaps.",
"exploit_scenario": "1) Wait until `now > safetyRelease` and the contract holds ETH (funded via `buoyAddress`). 2) In a single transaction, take a flash loan of WETH. 3) For each target pair (e.g., WETH/LINK), swap WETH -> token on Uniswap to inflate token price in ETH terms. 4) Call `publicSwap()` to force the contract to buy those tokens at the manipulated, overpriced rate with `amountOutMin=0`. 5) Swap the pre-bought tokens back to WETH after `publicSwap` completes, capturing the ETH the contract just injected. 6) Repay the flash loan and keep the surplus WETH/ETH as profit."
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x593ce8c7d2adc2c29be96ae59fe244c7e8e006f9782d3aea790a7cff85983760
call_targets:
0xaba513097f04d637727fdcda0246636e0d5d6833
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x593ce8c7d2adc2c29be96ae59fe244c7e8e006f9782d3aea790a7cff85983760",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xaba513097f04d637727fdcda0246636e0d5d6833"
],
"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": "0xb6b55f25",
"selector": "0xb6b55f25",
"calldata_variants": [
"0xb6b55f25",
"0xb6b55f250000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbb0c071a",
"selector": "0xbb0c071a",
"calldata_variants": [
"0xbb0c071a",
"0xbb0c071a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdc303a12",
"selector": "0xdc303a12",
"calldata_variants": [
"0xdc303a12",
"0xdc303a120000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf1633248",
"selector": "0xf1633248",
"calldata_variants": [
"0xf1633248",
"0xf16332480000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfb983b83",
"selector": "0xfb983b83",
"calldata_variants": [
"0xfb983b83",
"0xfb983b830000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8bb3d1fe",
"selector": "0x8bb3d1fe",
"calldata_variants": [
"0x8bb3d1fe",
"0x8bb3d1fe0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8c0ba32f",
"selector": "0x8c0ba32f",
"calldata_variants": [
"0x8c0ba32f",
"0x8c0ba32f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa4b6dcae",
"selector": "0xa4b6dcae",
"calldata_variants": [
"0xa4b6dcae",
"0xa4b6dcae0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2407,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3584,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6991,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 13,
"guards_detected": [
{
"pc": 480,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2642,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2742,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 3346,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 3667,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4074,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 13
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x593ce8c7d2adc2c29be96ae59fe244c7e8e006f9782d3aea790a7cff85983760
call_targets:
0xaba513097f04d637727fdcda0246636e0d5d6833
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x593ce8c7d2adc2c29be96ae59fe244c7e8e006f9782d3aea790a7cff85983760",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xaba513097f04d637727fdcda0246636e0d5d6833"
],
"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": "0xb6b55f25",
"selector": "0xb6b55f25",
"calldata_variants": [
"0xb6b55f25",
"0xb6b55f250000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbb0c071a",
"selector": "0xbb0c071a",
"calldata_variants": [
"0xbb0c071a",
"0xbb0c071a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdc303a12",
"selector": "0xdc303a12",
"calldata_variants": [
"0xdc303a12",
"0xdc303a120000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf1633248",
"selector": "0xf1633248",
"calldata_variants": [
"0xf1633248",
"0xf16332480000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfb983b83",
"selector": "0xfb983b83",
"calldata_variants": [
"0xfb983b83",
"0xfb983b830000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8bb3d1fe",
"selector": "0x8bb3d1fe",
"calldata_variants": [
"0x8bb3d1fe",
"0x8bb3d1fe0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8c0ba32f",
"selector": "0x8c0ba32f",
"calldata_variants": [
"0x8c0ba32f",
"0x8c0ba32f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa4b6dcae",
"selector": "0xa4b6dcae",
"calldata_variants": [
"0xa4b6dcae",
"0xa4b6dcae0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2407,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3584,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6991,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 13,
"guards_detected": [
{
"pc": 480,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2642,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2742,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 3346,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 3667,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 4074,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 16
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 18
}
|