019bb2d5-fd7c-72df-8b0e-fc3992167c10
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 |
|---|---|---|---|---|
| 39622 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 39623 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 39624 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 39625 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 39626 | capability.graph | complete | 1 / 3 | 3 months ago |
| 39627 | detector.run | complete | 1 / 3 | 3 months ago |
| 39628 | validation.fork | complete | 1 / 3 | 3 months ago |
| 39739 | report.consolidate | complete | 1 / 6 | 3 months ago |
| 39740 | tool.slither | failed | 2 / 2 | 3 months ago |
{
"status": "not_proxy",
"etherscan_hint": {
"source": "etherscan",
"etherscan": {
"proxy_flag": true,
"implementation": "0x00000000000008882d72efa6cce4b6a40b24c860"
}
},
"implementation": "0x00000000000008882d72efa6cce4b6a40b24c860",
"self_reference": true
}
Traceback (most recent call last):
File "/var/www/tripwire/worker/worker.py", line 198, in main
payload = dispatch_job(job_type, job_id, job_meta, run_data, config, laravel_client)
File "/var/www/tripwire/worker/worker.py", line 114, in dispatch_job
return slither_run.run(job_id, job_meta, run_data, config, log, laravel_client)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/worker/jobs/slither_run.py", line 1084, in run
stdout_text, stderr_text, result_json = _run_slither(
~~~~~~~~~~~~^
workspace,
^^^^^^^^^^
...<4 lines>...
target_path=target_path,
^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/var/www/tripwire/worker/jobs/slither_run.py", line 958, in _run_slither
raise RuntimeError(f"slither failed (exit {result.returncode}): {stderr_text or stdout_text}")
RuntimeError: slither failed (exit 1): 'forge clean' running (wd: /tmp/slither-ztwj1git)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-ztwj1git)
'forge' returned non-zero exit code 1
Compiling 4 files with Solc 0.8.29
stdout: Solc 0.8.29 finished in 148.53ms
Error: Compiler run failed:
stderr: Error: Compiler error (/solidity/libsolidity/codegen/LValue.cpp:50): Stack too deep. Try compiling with `--via-ir` (cli) or the equivalent `viaIR: true` (standard JSON) while enabling the optimizer. Otherwise, try removing local variables.
stderr: --> src/ZAMM.sol:383:45:
stderr: |
stderr: 383 | uint256 amount1Optimal = mulDiv(amount0Desired, reserve1, reserve0);
stderr: | ^^^^^^^^^^^^^^
Traceback (most recent call last):
File "/var/www/tripwire/.venv/bin/slither", line 10, in <module>
sys.exit(main())
~~~~^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 776, in main
main_impl(all_detector_classes=detectors, all_printer_classes=printers)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 882, in main_impl
) = process_all(filename, args, detector_classes, printer_classes)
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 96, in process_all
compilations = compile_all(target, **vars(args))
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 722, in compile_all
compilations.append(CryticCompile(target, **kwargs))
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 211, in __init__
self._compile(**kwargs)
~~~~~~~~~~~~~^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 633, in _compile
self._platform.compile(self, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/foundry.py", line 102, in compile
hardhat_like_parsing(
~~~~~~~~~~~~~~~~~~~~^
crytic_compile, str(self._target), build_directory, str(self._project_root)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/hardhat.py", line 52, in hardhat_like_parsing
raise InvalidCompilation(txt)
crytic_compile.platform.exceptions.InvalidCompilation: Compilation failed. Can you run build command?
/tmp/slither-ztwj1git/out/build-info is not a directory.
{"no_findings":false,"summary":"Found two issues: reserve accounting assumes full token transfers (fee-on-transfer tokens can drain pools) and ERC6909 transfer return values are unchecked, allowing malicious tokens to bypass payment.","findings":[{"severity":"medium","category":"other","title":"Fee-on-transfer/deflationary tokens break reserve accounting and allow pool draining","exploit_scenario":"An attacker creates or targets a pool containing a fee-on-transfer token. When swapping in or adding liquidity, the contract uses the requested `amountIn`/`amount` to price and update reserves, even if the token transfer delivers less. The pool overpays the other asset on swaps and/or records inflated reserves, enabling repeated swaps to drain the counter-asset.","recommendation":"Track actual received amounts by measuring balances before/after transfers (or use balance-based math like Uniswap V2) and update reserves using the real deltas. Alternatively, explicitly reject fee-on-transfer/deflationary tokens by verifying that received amount matches the expected input.","evidence":"`swapExactIn`/`swapExactOut` compute outputs from `amountIn` and update reserves with `reserve + amountIn` after `_safeTransferFrom` without checking actual received balances; `addLiquidity` similarly updates reserves with requested amounts rather than balance deltas.","locations":["src/ZAMM.sol:swapExactIn","src/ZAMM.sol:swapExactOut","src/ZAMM.sol:addLiquidity"]},{"severity":"medium","category":"other","title":"Unchecked ERC6909 transfer return values enable malicious tokens to bypass payment","exploit_scenario":"A malicious ERC6909-like token can return `false` (or otherwise not move balances) from `transfer`/`transferFrom` without reverting. Because the AMM ignores these return values, it will proceed as if tokens were moved. The attacker can then add liquidity or swap without actually paying in, draining the paired asset.","recommendation":"Require `transfer`/`transferFrom` to return true (or revert on failure) and revert otherwise. Consider wrapping ERC6909 calls in a safe helper that validates the return value.","evidence":"`_safeTransfer` calls `ZERC6909(token).transfer(...)` and ignores its boolean return; `_safeTransferFrom` calls `ZERC6909(token).transferFrom(...)` and ignores its boolean return.","locations":["src/ZAMM.sol:_safeTransfer","src/ZAMM.sol:_safeTransferFrom"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-fkym_o1s
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb2f5-aaa7-7011-ae8d-7c67f98e783e
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers
thinking
**Reading AUDIT_BUNDLE file**
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-fkym_o1s succeeded in 9ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.
================================================================================
FILE: src/ZAMM.sol
================================================================================
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.29;
import "./ZERC6909.sol";
import "./utils/Math.sol";
import "./utils/TransferHelper.sol";
// maximally simple constant product AMM singleton
// minted by z0r0z as concentric liquidity backend
contract ZAMM is ZERC6909 {
uint256 constant MINIMUM_LIQUIDITY = 1000;
uint256 constant MAX_FEE = 10000; // 100%
mapping(uint256 poolId => Pool) public pools;
Reconnecting... 1/5
thinking
**Analyzing contract vulnerabilities and reentrancy risks**
I'm auditing ZAMM's transient storage, reentrancy guard, and token minting logic, focusing on potential supply inflation from coinId collisions in make/makeLiquid and transient balance manipulation via to==address(this) transfers. I'm exploring how multicall, delegatecalls, and lack of locking in some functions might allow reentrancy or unauthorized balance changes, while noting usage of tx.origin for ownership and standard oracle manipulation risks. The transient storage design and reentrancy protections seem mostly sound but some deposit and refund flows might permit subtle reentrancy scenarios. I'll keep assessing exploitability and severity.
thinking
**Examining swap input handling and pool initialization flaws**
I'm diving into how swap relies on transient balances keyed by caller rather than actual token balances, which limits inputs to the caller’s deposits and creates constraints when `to` differs from caller in callbacks. This design might cause issues with token transfers and flash swaps. Also, minting pools via makeLiquid lacks checks for existing pools, risking overwrites of reserve and supply data on repeated calls with the same poolId, which could reset pool state unintentionally.
thinking
**Analyzing pool reinitialization and multicall intricacies**
I’m exploring how reinitializing a pool via makeLiquid can reset reserves and supply without accounting for existing tokens in the contract, potentially causing stuck or misaligned assets. The unique coinId generation allows callers to overwrite their own pools, which might affect LP balances and pool state unpredictably. Additionally, multicall’s delegatecall behavior and payable function restrictions raise questions about msg.value handling across multiple calls, hinting at possible edge cases in ETH usage during batched operations.
thinking
**Examining transient balances and token minting nuances**
I’m digging into how transient balances are managed during swaps and deposits, especially the use of tstore without overflow checks and how minted tokens interact with pool reserves. I also see a potential token ID collision due to timestamp-based IDs allowing repeated minting within a single transaction, which might let a creator inflate their token supply unexpectedly. The handling of fee-on-transfer tokens could cause reserve miscalculations that attackers might exploit through repeated swaps.
thinking
**Investigating unchecked transfers and multicall locking**
I’m analyzing how the multicall lock interacts with transient storage and whether multiple locked calls can be safely made in one transaction. I also noticed unchecked return values on ERC6909 transfers might let a malicious token skip transferring while reserves update, potentially letting attackers manipulate pool balances. There’s also discussion about fee-on-transfer tokens and some subtle nuances in liquidity provisioning and swap fee handling.
thinking
**Detailing fee-on-transfer and ERC6909 transfer issues**
I've identified two main concerns: the pool accounting assumes transferred token amounts equal declared amounts, so fee-on-transfer tokens can cause reserve imbalances that let attackers drain other assets; and ERC6909 token transfers don’t check return values, enabling malicious tokens to fake successful transfers without moving balances, risking pool theft. I'll prepare detailed findings including exploit scenarios, evidence, and recommendations in JSON format.
codex
{"no_findings":false,"summary":"Found two issues: reserve accounting assumes full token transfers (fee-on-transfer tokens can drain pools) and ERC6909 transfer return values are unchecked, allowing malicious tokens to bypass payment.","findings":[{"severity":"medium","category":"other","title":"Fee-on-transfer/deflationary tokens break reserve accounting and allow pool draining","exploit_scenario":"An attacker creates or targets a pool containing a fee-on-transfer token. When swapping in or adding liquidity, the contract uses the requested `amountIn`/`amount` to price and update reserves, even if the token transfer delivers less. The pool overpays the other asset on swaps and/or records inflated reserves, enabling repeated swaps to drain the counter-asset.","recommendation":"Track actual received amounts by measuring balances before/after transfers (or use balance-based math like Uniswap V2) and update reserves using the real deltas. Alternatively, explicitly reject fee-on-transfer/deflationary tokens by verifying that received amount matches the expected input.","evidence":"`swapExactIn`/`swapExactOut` compute outputs from `amountIn` and update reserves with `reserve + amountIn` after `_safeTransferFrom` without checking actual received balances; `addLiquidity` similarly updates reserves with requested amounts rather than balance deltas.","locations":["src/ZAMM.sol:swapExactIn","src/ZAMM.sol:swapExactOut","src/ZAMM.sol:addLiquidity"]},{"severity":"medium","category":"other","title":"Unchecked ERC6909 transfer return values enable malicious tokens to bypass payment","exploit_scenario":"A malicious ERC6909-like token can return `false` (or otherwise not move balances) from `transfer`/`transferFrom` without reverting. Because the AMM ignores these return values, it will proceed as if tokens were moved. The attacker can then add liquidity or swap without actually paying in, draining the paired asset.","recommendation":"Require `transfer`/`transferFrom` to return true (or revert on failure) and revert otherwise. Consider wrapping ERC6909 calls in a safe helper that validates the return value.","evidence":"`_safeTransfer` calls `ZERC6909(token).transfer(...)` and ignores its boolean return; `_safeTransferFrom` calls `ZERC6909(token).transferFrom(...)` and ignores its boolean return.","locations":["src/ZAMM.sol:_safeTransfer","src/ZAMM.sol:_safeTransferFrom"]}]}
tokens used
27,671
{
"codex": {
"ran_at": "2026-01-12T16:17:08.594659+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 4,
"import_count": 3,
"first_party_contracts_count": 4
},
"summary": "Found two issues: reserve accounting assumes full token transfers (fee-on-transfer tokens can drain pools) and ERC6909 transfer return values are unchecked, allowing malicious tokens to bypass payment.",
"raw_final": {
"summary": "Found two issues: reserve accounting assumes full token transfers (fee-on-transfer tokens can drain pools) and ERC6909 transfer return values are unchecked, allowing malicious tokens to bypass payment.",
"findings": [
{
"title": "Fee-on-transfer/deflationary tokens break reserve accounting and allow pool draining",
"category": "other",
"evidence": "`swapExactIn`/`swapExactOut` compute outputs from `amountIn` and update reserves with `reserve + amountIn` after `_safeTransferFrom` without checking actual received balances; `addLiquidity` similarly updates reserves with requested amounts rather than balance deltas.",
"severity": "medium",
"locations": [
"src/ZAMM.sol:swapExactIn",
"src/ZAMM.sol:swapExactOut",
"src/ZAMM.sol:addLiquidity"
],
"recommendation": "Track actual received amounts by measuring balances before/after transfers (or use balance-based math like Uniswap V2) and update reserves using the real deltas. Alternatively, explicitly reject fee-on-transfer/deflationary tokens by verifying that received amount matches the expected input.",
"exploit_scenario": "An attacker creates or targets a pool containing a fee-on-transfer token. When swapping in or adding liquidity, the contract uses the requested `amountIn`/`amount` to price and update reserves, even if the token transfer delivers less. The pool overpays the other asset on swaps and/or records inflated reserves, enabling repeated swaps to drain the counter-asset."
},
{
"title": "Unchecked ERC6909 transfer return values enable malicious tokens to bypass payment",
"category": "other",
"evidence": "`_safeTransfer` calls `ZERC6909(token).transfer(...)` and ignores its boolean return; `_safeTransferFrom` calls `ZERC6909(token).transferFrom(...)` and ignores its boolean return.",
"severity": "medium",
"locations": [
"src/ZAMM.sol:_safeTransfer",
"src/ZAMM.sol:_safeTransferFrom"
],
"recommendation": "Require `transfer`/`transferFrom` to return true (or revert on failure) and revert otherwise. Consider wrapping ERC6909 calls in a safe helper that validates the return value.",
"exploit_scenario": "A malicious ERC6909-like token can return `false` (or otherwise not move balances) from `transfer`/`transferFrom` without reverting. Because the AMM ignores these return values, it will proceed as if tokens were moved. The attacker can then add liquidity or swap without actually paying in, draining the paired asset."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: DUP1 00000003: PUSH1 0x40 00000005: MSTORE 00000006: PUSH1 0x04 00000008: CALLDATASIZE 00000009: LT 0000000a: ISZERO 0000000b: PUSH2 0x0106 0000000e: JUMPI 0000000f: JUMPDEST 00000010: POP 00000011: CALLDATASIZE 00000012: ISZERO 00000013: PUSH2 0x00ef 00000016: JUMPI 00000017: PUSH0 00000018: PUSH0 00000019: JUMPDEST 0000001a: DUP1 0000001b: SWAP2 0000001c: CALLDATASIZE 0000001d: DUP3 0000001e: LT 0000001f: ISZERO 00000020: PUSH2 0x00d6 00000023: JUMPI 00000024: PUSH1 0x01 00000026: DUP3 00000027: CALLDATALOAD 00000028: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc 00000049: DUP5 0000004a: ADD 0000004b: XOR 0000004c: PUSH0 0000004d: BYTE 0000004e: SWAP3 0000004f: ADD 00000050: SWAP2 00000051: DUP1 00000052: ISZERO 00000053: PUSH2 0x0065 00000056: JUMPI 00000057: PUSH1 0x01 00000059: SWAP3 0000005a: SWAP4 0000005b: POP 0000005c: DUP2 0000005d: MSTORE8 0000005e: ADD 0000005f: JUMPDEST 00000060: SWAP1 00000061: PUSH2 0x0019 00000064: JUMP 00000065: JUMPDEST 00000066: POP 00000067: PUSH1 0x7f 00000069: PUSH1 0x02 0000006b: PUSH1 0x01 0000006d: SWAP4 0000006e: CALLDATALOAD 0000006f: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd 00000090: DUP7 00000091: ADD 00000092: XOR 00000093: PUSH0 00000094: BYTE 00000095: SWAP5 00000096: ADD 00000097: SWAP4 00000098: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000000b9: DUP4 000000ba: MSTORE 000000bb: DUP2 000000bc: DUP2 000000bd: GT 000000be: ISZERO 000000bf: PUSH2 0x00cb 000000c2: JUMPI 000000c3: JUMPDEST 000000c4: AND 000000c5: ADD 000000c6: ADD 000000c7: PUSH2 0x005f 000000ca: JUMP 000000cb: JUMPDEST 000000cc: DUP4 000000cd: DUP2 000000ce: ADD 000000cf: CALLDATASIZE 000000d0: DUP5 000000d1: CALLDATACOPY 000000d2: PUSH2 0x00c3 000000d5: JUMP 000000d6: JUMPDEST 000000d7: PUSH0 000000d8: SWAP1 000000d9: CODESIZE 000000da: SWAP1 000000db: DUP3 000000dc: ADDRESS 000000dd: GAS 000000de: DELEGATECALL 000000df: RETURNDATASIZE 000000e0: PUSH0 000000e1: DUP1 000000e2: RETURNDATACOPY 000000e3: ISZERO 000000e4: PUSH2 0x00eb 000000e7: JUMPI 000000e8: RETURNDATASIZE 000000e9: PUSH0 000000ea: RETURN 000000eb: JUMPDEST 000000ec: RETURNDATASIZE 000000ed: PUSH0 000000ee: REVERT 000000ef: JUMPDEST 000000f0: CALLER 000000f1: PUSH0 000000f2: MSTORE 000000f3: PUSH0 000000f4: PUSH1 0x20 000000f6: MSTORE 000000f7: PUSH0 000000f8: PUSH1 0x40 000000fa: MSTORE 000000fb: PUSH1 0x60 000000fd: PUSH0 000000fe: KECCAK256 000000ff: CALLVALUE 00000100: DUP2 00000101: TLOAD 00000102: ADD 00000103: SWAP1 00000104: TSTORE 00000105: STOP 00000106: JUMPDEST 00000107: PUSH0 00000108: SWAP1 00000109: PUSH0 0000010a: CALLDATALOAD 0000010b: PUSH1 0xe0 0000010d: SHR 0000010e: SWAP1 0000010f: DUP2 00000110: PUSH3 0xfdd58e 00000114: EQ 00000115: PUSH2 0x2593 00000118: JUMPI 00000119: POP 0000011a: DUP1 0000011b: PUSH4 0x01ffc9a7 00000120: EQ 00000121: PUSH2 0x2519 00000124: JUMPI 00000125: DUP1 00000126: PUSH4 0x095bcdb6 0000012b: EQ 0000012c: PUSH2 0x2465 0000012f: JUMPI 00000130: DUP1 00000131: PUSH4 0x0efe6a8b 00000136: EQ 00000137: PUSH2 0x2404 0000013a: JUMPI 0000013b: DUP1 0000013c: PUSH4 0x426a8493 00000141: EQ 00000142: PUSH2 0x23a1 00000145: JUMPI 00000146: DUP1 00000147: PUSH4 0x48416da8 0000014c: EQ 0000014d: PUSH2 0x1e4f 00000150: JUMPI 00000151: DUP1 00000152: PUSH4 0x558a7297 00000157: EQ 00000158: PUSH2 0x1db9 0000015b: JUMPI 0000015c: DUP1 0000015d: PUSH4 0x598af9e7 00000162: EQ 00000163: PUSH2 0x1d4f 00000166: JUMPI 00000167: DUP1 00000168: PUSH4 0x6dc2a7b3 0000016d: EQ 0000016e: PUSH2 0x1c37 00000171: JUMPI 00000172: DUP1 00000173: PUSH4 0x7466fde7 00000178: EQ 00000179: PUSH2 0x18ed 0000017c: JUMPI 0000017d: DUP1 0000017e: PUSH4 0x895ccb32 00000183: EQ 00000184: PUSH2 0x1487 00000187: JUMPI 00000188: DUP1 00000189: PUSH4 0xa2e74af6 0000018e: EQ 0000018f: PUSH2 0x1447 00000192: JUMPI 00000193: DUP1 00000194: PUSH4 0xa647fc2a 00000199: EQ 0000019a: PUSH2 0x135f 0000019d: JUMPI 0000019e: DUP1 0000019f: PUSH4 0xac4afa38 000001a4: EQ 000001a5: PUSH2 0x12ba 000001a8: JUMPI 000001a9: DUP1 000001aa: PUSH4 0xac9650d8 000001af: EQ 000001b0: PUSH2 0x0f65 000001b3: JUMPI 000001b4: DUP1 000001b5: PUSH4 0xb6363cf2 000001ba: EQ 000001bb: PUSH2 0x0f01 000001be: JUMPI 000001bf: DUP1 000001c0: PUSH4 0xc2b41484 000001c5: EQ 000001c6: PUSH2 0x0a09 000001c9: JUMPI 000001ca: DUP1 000001cb: PUSH4 0xd4ff3f0e 000001d0: EQ 000001d1: PUSH2 0x05a3 000001d4: JUMPI 000001d5: DUP1 000001d6: PUSH4 0xf46901ed 000001db: EQ 000001dc: PUSH2 0x0555 000001df: JUMPI 000001e0: DUP1 000001e1: PUSH4 0xfb575d90 000001e6: EQ 000001e7: PUSH2 0x0332 000001ea: JUMPI 000001eb: PUSH4 0xfe99049a 000001f0: SUB 000001f1: PUSH2 0x000f 000001f4: JUMPI 000001f5: CALLVALUE 000001f6: PUSH2 0x032f 000001f9: JUMPI 000001fa: PUSH1 0x80 000001fc: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc 0000021d: CALLDATASIZE 0000021e: ADD 0000021f: SLT 00000220: PUSH2 0x032f 00000223: JUMPI 00000224: PUSH2 0x022b 00000227: PUSH2 0x25e9 0000022a: JUMP 0000022b: JUMPDEST 0000022c: SWAP1 0000022d: PUSH2 0x0234 00000230: PUSH2 0x260c 00000233: JUMP 00000234: JUMPDEST 00000235: SWAP2 00000236: PUSH1 0x44 00000238: CALLDATALOAD 00000239: SWAP1 0000023a: PUSH1 0x64 0000023c: CALLDATALOAD 0000023d: PUSH8 0xedcaa89a82293940 00000246: PUSH1 0x34 00000248: MSTORE 00000249: DUP2 0000024a: PUSH1 0x28 0000024c: MSTORE 0000024d: CALLER 0000024e: PUSH1 0x14 00000250: MSTORE 00000251: PUSH1 0x34 00000253: PUSH1 0x20 00000255: KECCAK256 00000256: SLOAD 00000257: ISZERO 00000258: PUSH2 0x02f6 0000025b: JUMPI 0000025c: JUMPDEST 0000025d: DUP3 0000025e: PUSH1 0x14 00000260: MSTORE 00000261: PUSH1 0x40 00000263: PUSH1 0x14 00000265: KECCAK256 00000266: DUP1 00000267: SLOAD 00000268: DUP1 00000269: DUP4 0000026a: GT 0000026b: PUSH2 0x02e9 0000026e: JUMPI 0000026f: DUP3 00000270: SWAP1 00000271: SUB 00000272: SWAP1 00000273: SSTORE 00000274: DUP5 00000275: PUSH1 0x28 00000277: MSTORE 00000278: DUP3 00000279: PUSH1 0x14 0000027b: MSTORE 0000027c: PUSH1 0x40 0000027e: PUSH1 0x14 00000280: KECCAK256 00000281: DUP1 00000282: SLOAD 00000283: SWAP1 00000284: DUP3 00000285: DUP3 00000286: ADD 00000287: SWAP2 00000288: DUP3 00000289: LT 0000028a: PUSH2 0x02dc 0000028d: JUMPI 0000028e: SSTORE 0000028f: CALLER 00000290: DUP5 00000291: MSTORE 00000292: PUSH1 0x20 00000294: SWAP1 00000295: DUP2 00000296: MSTORE 00000297: SWAP4 00000298: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002ad: SWAP1 000002ae: DUP2 000002af: AND 000002b0: SWAP2 000002b1: AND 000002b2: PUSH32 0x1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859 000002d3: PUSH1 0x40 000002d5: DUP6 000002d6: LOG4 000002d7: PUSH1 0x01 000002d9: DUP2 000002da: MSTORE 000002db: RETURN 000002dc: JUMPDEST 000002dd: PUSH4 0x89560ca1 000002e2: DUP7 000002e3: MSTORE 000002e4: PUSH1 0x04 000002e6: PUSH1 0x1c 000002e8: REVERT 000002e9: JUMPDEST 000002ea: PUSH4 0xf4d678b8 000002ef: DUP7 000002f0: MSTORE 000002f1: PUSH1 0x04 000002f3: PUSH1 0x1c 000002f5: REVERT 000002f6: JUMPDEST 000002f7: DUP3 000002f8: DUP5 000002f9: MSTORE 000002fa: PUSH1 0x54 000002fc: DUP5 000002fd: KECCAK256 000002fe: DUP1 000002ff: SLOAD 00000300: PUSH1 0x01 00000302: DUP2 00000303: ADD 00000304: PUSH2 0x030f 00000307: JUMPI 00000308: JUMPDEST 00000309: POP 0000030a: POP 0000030b: PUSH2 0x025c 0000030e: JUMP 0000030f: JUMPDEST 00000310: DUP1 00000311: DUP4 00000312: GT 00000313: PUSH2 0x0322 00000316: JUMPI 00000317: DUP3 00000318: SWAP1 00000319: SUB 0000031a: SWAP1 0000031b: SSTORE 0000031c: PUSH0 0000031d: DUP1 0000031e: PUSH2 0x0308 00000321: JUMP 00000322: JUMPDEST 00000323: PUSH4 0xdeda9030 00000328: DUP7 00000329: MSTORE 0000032a: PUSH1 0x04 0000032c: PUSH1 0x1c 0000032e: REVERT 0000032f: JUMPDEST 00000330: DUP1 00000331: REVERT 00000332: JUMPDEST 00000333: POP 00000334: CALLVALUE 00000335: PUSH2 0x032f 00000338: JUMPI 00000339: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc 0000035a: CALLDATASIZE 0000035b: ADD 0000035c: PUSH2 0x0140 0000035f: DUP2 00000360: SLT 00000361: PUSH2 0x0551 00000364: JUMPI 00000365: PUSH1 0xa0 00000367: SGT 00000368: PUSH2 0x032f 0000036b: JUMPI 0000036c: PUSH1 0xa4 0000036e: CALLDATALOAD 0000036f: PUSH2 0x0104 00000372: CALLDATALOAD 00000373: SWAP1 00000374: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000389: DUP3 0000038a: AND 0000038b: SWAP3 0000038c: DUP4 0000038d: DUP4 0000038e: SUB 0000038f: PUSH2 0x032f 00000392: JUMPI 00000393: PUSH9 0x929eee149b4bd21268 0000039d: TLOAD 0000039e: PUSH2 0x0544 000003a1: JUMPI 000003a2: ADDRESS 000003a3: PUSH9 0x929eee149b4bd21268 000003ad: TSTORE 000003ae: TIMESTAMP 000003af: PUSH2 0x0124 000003b2: CALLDATALOAD 000003b3: LT 000003b4: PUSH2 0x051c 000003b7: JUMPI 000003b8: PUSH1 0xa0 000003ba: PUSH1 0x40 000003bc: MLOAD 000003bd: DUP2 000003be: PUSH1 0x04 000003c0: DUP3 000003c1: CALLDATACOPY 000003c2: KECCAK256 000003c3: SWAP4 000003c4: DUP5 000003c5: DUP3 000003c6: MSTORE 000003c7: DUP2 000003c8: PUSH1 0x20 000003ca: MSTORE 000003cb: PUSH1 0x40 000003cd: DUP3 000003ce: KECCAK256 000003cf: SWAP5 000003d0: DUP6 000003d1: SLOAD 000003d2: SWAP6 000003d3: PUSH14 0xffffffffffffffffffffffffffff 000003e2: DUP1 000003e3: DUP9 000003e4: AND 000003e5: SWAP8 000003e6: PUSH1 0x70 000003e8: SHR 000003e9: AND 000003ea: SWAP7 000003eb: PUSH2 0x03f6 000003ee: DUP9 000003ef: DUP3 000003f0: DUP6 000003f1: DUP6 000003f2: PUSH2 0x2a64 000003f5: JUMP 000003f6: JUMPDEST 000003f7: SWAP1 000003f8: PUSH1 0x04 000003fa: DUP4 000003fb: ADD 000003fc: SWAP8 000003fd: DUP9 000003fe: SLOAD 000003ff: SWAP9 00000400: PUSH2 0x0415 00000403: PUSH2 0x040d 00000406: DUP12 00000407: DUP6 00000408: DUP13 00000409: PUSH2 0x2bc9 0000040c: JUMP 0000040d: JUMPDEST 0000040e: SWAP11 0000040f: DUP13 00000410: DUP12 00000411: PUSH2 0x2bc9 00000414: JUMP 00000415: JUMPDEST 00000416: SWAP9 00000417: PUSH1 0xc4 00000419: CALLDATALOAD 0000041a: DUP12 0000041b: LT 0000041c: PUSH2 0x04f4 0000041f: JUMPI 00000420: PUSH1 0xe4 00000422: CALLDATALOAD 00000423: DUP11 00000424: LT 00000425: PUSH2 0x04f4 00000428: JUMPI 00000429: DUP10 0000042a: PUSH1 0x40 0000042c: SWAP13 0000042d: SWAP4 0000042e: PUSH2 0x047a 00000431: SWAP6 00000432: SWAP4 00000433: DUP4 00000434: PUSH2 0x0440 00000437: PUSH2 0x046d 0000043a: SWAP6 0000043b: DUP13 0000043c: PUSH2 0x30ef 0000043f: JUMP 00000440: JUMPDEST 00000441: DUP2 00000442: SLOAD 00000443: SUB 00000444: SWAP1 00000445: SSTORE 00000446: PUSH2 0x045b 00000449: DUP14 0000044a: PUSH2 0x0451 0000044d: PUSH2 0x2725 00000450: JUMP 00000451: JUMPDEST 00000452: DUP4 00000453: PUSH1 0x04 00000455: CALLDATALOAD 00000456: SWAP2 00000457: PUSH2 0x2f1c 0000045a: JUMP 0000045b: JUMPDEST 0000045c: PUSH2 0x0463 0000045f: PUSH2 0x2748 00000462: JUMP 00000463: JUMPDEST 00000464: SWAP1 00000465: PUSH1 0x24 00000467: CALLDATALOAD 00000468: SWAP2 00000469: PUSH2 0x2f1c 0000046c: JUMP 0000046d: JUMPDEST 0000046e: DUP9 0000046f: DUP3 00000470: SUB 00000471: DUP11 00000472: DUP3 00000473: SUB 00000474: DUP8 00000475: DUP8 00000476: PUSH2 0x2cf5 00000479: JUMP 0000047a: JUMPDEST 0000047b: PUSH2 0x04c8 0000047e: JUMPI 0000047f: JUMPDEST 00000480: POP 00000481: DUP6 00000482: MLOAD 00000483: SWAP1 00000484: DUP6 00000485: DUP3 00000486: MSTORE 00000487: DUP5 00000488: PUSH1 0x20 0000048a: DUP4 0000048b: ADD 0000048c: MSTORE 0000048d: PUSH32 0xd72b7803f66104fa4755cf48b28b9408682e97a0b000dd97c8ee3219aa8454ec 000004ae: DUP8 000004af: CALLER 000004b0: SWAP4 000004b1: LOG4 000004b2: PUSH9 0x929eee149b4bd21268 000004bc: TSTORE 000004bd: DUP3 000004be: MLOAD 000004bf: SWAP2 000004c0: DUP3 000004c1: MSTORE 000004c2: PUSH1 0x20 000004c4: DUP3 000004c5: ADD 000004c6: MSTORE 000004c7: RETURN 000004c8: JUMPDEST 000004c9: PUSH1 0x03 000004cb: PUSH2 0x04eb 000004ce: DUP3 000004cf: SLOAD 000004d0: PUSH14 0xffffffffffffffffffffffffffff 000004df: DUP1 000004e0: DUP3 000004e1: PUSH1 0x70 000004e3: SHR 000004e4: AND 000004e5: SWAP2 000004e6: AND 000004e7: PUSH2 0x27cd 000004ea: JUMP 000004eb: JUMPDEST 000004ec: SWAP2 000004ed: ADD 000004ee: SSTORE 000004ef: PUSH0 000004f0: PUSH2 0x047f 000004f3: JUMP 000004f4: JUMPDEST 000004f5: PUSH1 0x04 000004f7: DUP10 000004f8: PUSH32 0x42301c2300000000000000000000000000000000000000000000000000000000 00000519: DUP2 0000051a: MSTORE 0000051b: REVERT 0000051c: JUMPDEST 0000051d: DUP1 0000051e: PUSH32 0x203d82d800000000000000000000000000000000000000000000000000000000 0000053f: PUSH1 0x04 00000541: SWAP3 00000542: MSTORE 00000543: REVERT 00000544: JUMPDEST 00000545: PUSH4 0xab143c06 0000054a: SWAP1 0000054b: MSTORE 0000054c: PUSH1 0x04 0000054e: PUSH1 0x1c 00000550: REVERT 00000551: JUMPDEST 00000552: POP 00000553: DUP1 00000554: REVERT 00000555: JUMPDEST 00000556: POP 00000557: PUSH1 0x20 00000559: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc 0000057a: CALLDATASIZE 0000057b: ADD 0000057c: SLT 0000057d: PUSH2 0x032f 00000580: JUMPI 00000581: PUSH2 0x0588 00000584: PUSH2 0x25e9 00000587: JUMP 00000588: JUMPDEST 00000589: DUP2 0000058a: SLOAD 0000058b: CALLER 0000058c: SUB 0000058d: PUSH2 0x0596 00000590: JUMPI 00000591: PUSH1 0x20 00000593: SSTORE 00000594: DUP1 00000595: RETURN 00000596: JUMPDEST 00000597: PUSH4 0x82b42900 0000059c: DUP3 0000059d: MSTORE 0000059e: PUSH1 0x04 000005a0: PUSH1 0x1c 000005a2: REVERT 000005a3: JUMPDEST 000005a4: POP 000005a5: PUSH2 0x05ad 000005a8: CALLDATASIZE 000005a9: PUSH2 0x26b2 000005ac: JUMP 000005ad: JUMPDEST 000005ae: PUSH9 0x929eee149b4bd21268 000005b8: SWAP7 000005b9: SWAP5 000005ba: SWAP3 000005bb: SWAP2 000005bc: SWAP7 000005bd: SWAP6 000005be: SWAP4 000005bf: SWAP6 000005c0: TLOAD 000005c1: PUSH2 0x09fc 000005c4: JUMPI 000005c5: ADDRESS 000005c6: PUSH9 0x929eee149b4bd21268 000005d0: TSTORE 000005d1: TIMESTAMP 000005d2: GT 000005d3: PUSH2 0x09d4 000005d6: JUMPI 000005d7: DUP2 000005d8: ISZERO 000005d9: PUSH2 0x09ac 000005dc: JUMPI 000005dd: PUSH1 0xa0 000005df: PUSH1 0x40 000005e1: MLOAD 000005e2: DUP2 000005e3: DUP6 000005e4: DUP3 000005e5: CALLDATACOPY 000005e6: KECCAK256 000005e7: SWAP3 000005e8: DUP4 000005e9: DUP6 000005ea: MSTORE 000005eb: DUP5 000005ec: PUSH1 0x20 000005ee: MSTORE 000005ef: PUSH1 0x40 000005f1: DUP6 000005f2: KECCAK256 000005f3: DUP1 000005f4: SLOAD 000005f5: SWAP2 000005f6: PUSH14 0xffffffffffffffffffffffffffff 00000605: DUP1 00000606: DUP5 00000607: AND 00000608: SWAP4 00000609: PUSH1 0x70 0000060b: SHR 0000060c: AND 0000060d: SWAP4 0000060e: PUSH0 0000060f: EQ 00000610: PUSH2 0x088a 00000613: JUMPI 00000614: DUP4 00000615: DUP6 00000616: LT 00000617: ISZERO 00000618: PUSH2 0x0862 0000061b: JUMPI 0000061c: PUSH2 0x0632 0000061f: PUSH2 0x062a 00000622: PUSH1 0x80 00000624: DUP4 00000625: ADD 00000626: PUSH2 0x27b4 00000629: JUMP 0000062a: JUMPDEST 0000062b: DUP6 0000062c: DUP6 0000062d: DUP9 0000062e: PUSH2 0x307b 00000631: JUMP 00000632: JUMPDEST 00000633: SWAP8 00000634: DUP9 00000635: GT 00000636: PUSH2 0x083a 00000639: JUMPI 0000063a: PUSH1 0x40 0000063c: DUP2 0000063d: ADD 0000063e: PUSH2 0x0646 00000641: DUP2 00000642: PUSH2 0x276b 00000645: JUMP 00000646: JUMPDEST 00000647: SWAP1 00000648: PUSH2 0x0654 0000064b: DUP11 0000064c: DUP5 0000064d: CALLDATALOAD 0000064e: DUP1 0000064f: SWAP5 00000650: PUSH2 0x2bec 00000653: JUMP 00000654: JUMPDEST 00000655: DUP1 00000656: PUSH2 0x080c 00000659: JUMPI 0000065a: JUMPDEST 0000065b: ISZERO 0000065c: PUSH2 0x070a 0000065f: JUMPI 00000660: JUMPDEST 00000661: POP 00000662: POP 00000663: SWAP3 00000664: DUP9 00000665: SWAP3 00000666: PUSH2 0x06b7 00000669: SWAP3 0000066a: PUSH2 0x069c 0000066d: DUP8 0000066e: DUP8 0000066f: PUSH1 0x20 00000671: SWAP14 00000672: DUP15 00000673: PUSH2 0x0693 00000676: PUSH1 0x60 00000678: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000068d: SWAP13 0000068e: ADD 0000068f: PUSH2 0x276b 00000692: JUMP 00000693: JUMPDEST 00000694: SWAP3 00000695: ADD 00000696: CALLDATALOAD 00000697: SWAP2 00000698: PUSH2 0x2f1c 0000069b: JUMP 0000069c: JUMPDEST 0000069d: PUSH2 0x06a6 000006a0: DUP11 000006a1: DUP4 000006a2: PUSH2 0x278c 000006a5: JUMP 000006a6: JUMPDEST 000006a7: DUP9 000006a8: PUSH2 0x06b1 000006ab: DUP10 000006ac: DUP7 000006ad: PUSH2 0x27e0 000006b0: JUMP 000006b1: JUMPDEST 000006b2: SWAP3 000006b3: PUSH2 0x2cf5 000006b6: JUMP 000006b7: JUMPDEST 000006b8: PUSH1 0x40 000006ba: MLOAD 000006bb: SWAP3 000006bc: DUP7 000006bd: DUP5 000006be: MSTORE 000006bf: DUP6 000006c0: DUP9 000006c1: DUP6 000006c2: ADD 000006c3: MSTORE 000006c4: DUP6 000006c5: PUSH1 0x40 000006c7: DUP6 000006c8: ADD 000006c9: MSTORE 000006ca: PUSH1 0x60 000006cc: DUP5 000006cd: ADD 000006ce: MSTORE 000006cf: AND 000006d0: SWAP2 000006d1: PUSH32 0xf51245804459075de3f63c42324c8ba2021175781c7477a5d8f4f08fb5584a56 000006f2: PUSH1 0x80 000006f4: CALLER 000006f5: SWAP4 000006f6: LOG4 000006f7: JUMPDEST 000006f8: PUSH9 0x929eee149b4bd21268 00000702: TSTORE 00000703: PUSH1 0x40 00000705: MLOAD 00000706: SWAP1 00000707: DUP2 00000708: MSTORE 00000709: RETURN 0000070a: JUMPDEST 0000070b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000720: PUSH2 0x0728 00000723: DUP3 00000724: PUSH2 0x276b 00000727: JUMP 00000728: JUMPDEST 00000729: AND 0000072a: PUSH2 0x07a9 0000072d: JUMPI 0000072e: POP 0000072f: POP 00000730: DUP8 00000731: CALLVALUE 00000732: LT 00000733: PUSH2 0x0781 00000736: JUMPI 00000737: SWAP3 00000738: PUSH1 0x20 0000073a: SWAP9 0000073b: SWAP3 0000073c: PUSH2 0x06b7 0000073f: SWAP3 00000740: PUSH2 0x069c 00000743: DUP8 00000744: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000759: SWAP8 0000075a: DUP13 0000075b: CALLVALUE 0000075c: GT 0000075d: PUSH2 0x0770 00000760: JUMPI 00000761: JUMPDEST 00000762: SWAP5 00000763: SWAP8 00000764: POP 00000765: POP 00000766: POP 00000767: SWAP3 00000768: DUP2 00000769: SWAP5 0000076a: SWAP11 0000076b: POP 0000076c: PUSH2 0x0660 0000076f: JUMP 00000770: JUMPDEST 00000771: PUSH2 0x077c 00000774: DUP14 00000775: CALLVALUE 00000776: SUB 00000777: CALLER 00000778: PUSH2 0x30d3 0000077b: JUMP 0000077c: JUMPDEST 0000077d: PUSH2 0x0761 00000780: JUMP 00000781: JUMPDEST 00000782: PUSH1 0x04 00000784: DUP8 00000785: PUSH32 0x85cf0a3500000000000000000000000000000000000000000000000000000000 000007a6: DUP2 000007a7: MSTORE 000007a8: REVERT 000007a9: JUMPDEST 000007aa: CALLVALUE 000007ab: PUSH2 0x07e4 000007ae: JUMPI 000007af: SWAP3 000007b0: PUSH2 0x069c 000007b3: DUP8 000007b4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007c9: SWAP8 000007ca: SWAP5 000007cb: PUSH2 0x077c 000007ce: DUP14 000007cf: PUSH1 0x20 000007d1: SWAP16 000007d2: SWAP10 000007d3: SWAP7 000007d4: PUSH2 0x07df 000007d7: PUSH2 0x06b7 000007da: SWAP11 000007db: PUSH2 0x276b 000007de: JUMP 000007df: JUMPDEST 000007e0: PUSH2 0x290a 000007e3: JUMP 000007e4: JUMPDEST 000007e5: PUSH1 0x04 000007e7: DUP10 000007e8: PUSH32 0x85cf0a3500000000000000000000000000000000000000000000000000000000 00000809: DUP2 0000080a: MSTORE 0000080b: REVERT 0000080c: JUMPDEST 0000080d: CALLVALUE 0000080e: ISZERO 0000080f: PUSH2 0x065a 00000812: JUMPI 00000813: PUSH1 0x04 00000815: DUP11 00000816: PUSH32 0x85cf0a3500000000000000000000000000000000000000000000000000000000 00000837: DUP2 00000838: MSTORE 00000839: REVERT 0000083a: JUMPDEST 0000083b: PUSH1 0x04 0000083d: DUP8 0000083e: PUSH32 0x098fb56100000000000000000000000000000000000000000000000000000000 0000085f: DUP2 00000860: MSTORE 00000861: REVERT 00000862: JUMPDEST 00000863: PUSH1 0x04 00000865: DUP8 00000866: PUSH32 0xbb55fd2700000000000000000000000000000000000000000000000000000000 00000887: DUP2 00000888: MSTORE 00000889: REVERT 0000088a: JUMPDEST 0000088b: DUP3 0000088c: DUP6 0000088d: LT 0000088e: ISZERO 0000088f: PUSH2 0x0862 00000892: JUMPI 00000893: PUSH2 0x08a9 00000896: PUSH2 0x08a1 00000899: PUSH1 0x80 0000089b: DUP4 0000089c: ADD 0000089d: PUSH2 0x27b4 000008a0: JUMP 000008a1: JUMPDEST 000008a2: DUP5 000008a3: DUP7 000008a4: DUP9 000008a5: PUSH2 0x307b 000008a8: JUMP 000008a9: JUMPDEST 000008aa: SWAP8 000008ab: DUP9 000008ac: GT 000008ad: PUSH2 0x083a 000008b0: JUMPI 000008b1: PUSH1 0x60 000008b3: DUP2 000008b4: ADD 000008b5: PUSH2 0x08bd 000008b8: DUP2 000008b9: PUSH2 0x276b 000008bc: JUMP 000008bd: JUMPDEST 000008be: SWAP1 000008bf: PUSH2 0x08ce 000008c2: DUP11 000008c3: PUSH1 0x20 000008c5: DUP6 000008c6: ADD 000008c7: CALLDATALOAD 000008c8: DUP1 000008c9: SWAP5 000008ca: PUSH2 0x2bec 000008cd: JUMP 000008ce: JUMPDEST 000008cf: ISZERO 000008d0: PUSH2 0x0967 000008d3: JUMPI 000008d4: JUMPDEST 000008d5: POP 000008d6: POP 000008d7: SWAP3 000008d8: DUP9 000008d9: SWAP3 000008da: PUSH2 0x0923 000008dd: SWAP3 000008de: PUSH2 0x090e 000008e1: DUP8 000008e2: DUP8 000008e3: PUSH1 0x20 000008e5: SWAP14 000008e6: PUSH2 0x0906 000008e9: PUSH1 0x40 000008eb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000900: SWAP12 00000901: ADD 00000902: PUSH2 0x276b 00000905: JUMP 00000906: JUMPDEST 00000907: SWAP2 00000908: CALLDATALOAD 00000909: SWAP2 0000090a: PUSH2 0x2f1c 0000090d: JUMP 0000090e: JUMPDEST 0000090f: PUSH2 0x0918 00000912: DUP8 00000913: DUP4 00000914: PUSH2 0x27e0 00000917: JUMP 00000918: JUMPDEST 00000919: DUP9 0000091a: PUSH2 0x06b1 0000091d: DUP13 0000091e: DUP7 0000091f: PUSH2 0x278c 00000922: JUMP 00000923: JUMPDEST 00000924: PUSH1 0x40 00000926: MLOAD 00000927: SWAP3 00000928: DUP6 00000929: DUP5 0000092a: MSTORE 0000092b: DUP7 0000092c: DUP9 0000092d: DUP6 0000092e: ADD 0000092f: MSTORE 00000930: PUSH1 0x40 00000932: DUP5 00000933: ADD 00000934: MSTORE 00000935: DUP5 00000936: PUSH1 0x60 00000938: DUP5 00000939: ADD 0000093a: MSTORE 0000093b: AND 0000093c: SWAP2 0000093d: PUSH32 0xf51245804459075de3f63c42324c8ba2021175781c7477a5d8f4f08fb5584a56 0000095e: PUSH1 0x80 00000960: CALLER 00000961: SWAP4 00000962: LOG4 00000963: PUSH2 0x06f7 00000966: JUMP 00000967: JUMPDEST 00000968: CALLVALUE 00000969: PUSH2 0x07e4 0000096c: JUMPI 0000096d: SWAP3 0000096e: PUSH2 0x090e 00000971: DUP8 00000972: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000987: SWAP8 00000988: SWAP5 00000989: PUSH2 0x099d 0000098c: DUP14 0000098d: PUSH1 0x20 0000098f: SWAP16 00000990: SWAP10 00000991: SWAP7 00000992: PUSH2 0x07df 00000995: PUSH2 0x0923 00000998: SWAP11 00000999: PUSH2 0x276b 0000099c: JUMP 0000099d: JUMPDEST 0000099e: SWAP5 0000099f: SWAP8 000009a0: POP 000009a1: POP 000009a2: POP 000009a3: SWAP3 000009a4: DUP2 000009a5: SWAP5 000009a6: SWAP11 000009a7: POP 000009a8: PUSH2 0x08d4 000009ab: JUMP 000009ac: JUMPDEST 000009ad: PUSH1 0x04 000009af: DUP5 000009b0: PUSH32 0x42301c2300000000000000000000000000000000000000000000000000000000 000009d1: DUP2 000009d2: MSTORE 000009d3: REVERT 000009d4: JUMPDEST 000009d5: PUSH1 0x04 000009d7: DUP5 000009d8: PUSH32 0x203d82d800000000000000000000000000000000000000000000000000000000 000009f9: DUP2 000009fa: MSTORE 000009fb: REVERT 000009fc: JUMPDEST 000009fd: PUSH4 0xab143c06 00000a02: DUP6 00000a03: MSTORE 00000a04: PUSH1 0x04 00000a06: PUSH1 0x1c 00000a08: REVERT 00000a09: JUMPDEST 00000a0a: POP 00000a0b: PUSH1 0xc0 00000a0d: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc 00000a2e: CALLDATASIZE 00000a2f: ADD 00000a30: SLT 00000a31: PUSH2 0x032f 00000a34: JUMPI 00000a35: PUSH2 0x0a3c 00000a38: PUSH2 0x25e9 00000a3b: JUMP 00000a3c: JUMPDEST 00000a3d: PUSH2 0x0a44 00000a40: PUSH2 0x260c 00000a43: JUMP 00000a44: JUMPDEST 00000a45: PUSH1 0x64 00000a47: CALLDATALOAD 00000a48: SWAP2 00000a49: SWAP1 00000a4a: PUSH1 0x84 00000a4c: CALLDATALOAD 00000a4d: PUSH1 0x44 00000a4f: CALLDATALOAD 00000a50: PUSH1 0xa4 00000a52: CALLDATALOAD 00000a53: PUSH8 0xffffffffffffffff 00000a5c: DUP2 00000a5d: GT 00000a5e: PUSH2 0x0efd 00000a61: JUMPI 00000a62: PUSH2 0x0a6f 00000a65: SWAP1 00000a66: CALLDATASIZE 00000a67: SWAP1 00000a68: PUSH1 0x04 00000a6a: ADD 00000a6b: PUSH2 0x2684 00000a6e: JUMP 00000a6f: JUMPDEST 00000a70: PUSH2 0x2710 00000a73: DUP5 00000a74: GT 00000a75: PUSH2 0x0ed5 00000a78: JUMPI 00000a79: DUP3 00000a7a: NOT 00000a7b: DUP8 00000a7c: GT 00000a7d: PUSH2 0x0ead 00000a80: JUMPI 00000a81: PUSH1 0xa0 00000a83: SWAP4 00000a84: SWAP3 00000a85: SWAP2 00000a86: PUSH32 0x6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b 00000aa7: SWAP2 00000aa8: PUSH1 0x40 00000aaa: MLOAD 00000aab: PUSH1 0x20 00000aad: DUP2 00000aae: ADD 00000aaf: SWAP1 00000ab0: PUSH32 0xc2b4148400000000000000000000000000000000000000000000000000000000 00000ad1: DUP3 00000ad2: MSTORE 00000ad3: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 00000af4: CALLER 00000af5: PUSH1 0x60 00000af7: SHL 00000af8: AND 00000af9: PUSH1 0x24 00000afb: DUP3 00000afc: ADD 00000afd: MSTORE 00000afe: TIMESTAMP 00000aff: PUSH1 0x38 00000b01: DUP3 00000b02: ADD 00000b03: MSTORE 00000b04: PUSH1 0x38 00000b06: DUP2 00000b07: MSTORE 00000b08: PUSH2 0x0b12 00000b0b: PUSH1 0x58 00000b0d: DUP3 00000b0e: PUSH2 0x27ed 00000b11: JUMP 00000b12: JUMPDEST 00000b13: MLOAD 00000b14: SWAP1 00000b15: KECCAK256 00000b16: SWAP8 00000b17: DUP5 00000b18: DUP10 00000b19: DUP1 00000b1a: SWAP7 00000b1b: PUSH2 0x0e9c 00000b1e: JUMPI 00000b1f: JUMPDEST 00000b20: POP 00000b21: POP 00000b22: POP 00000b23: PUSH2 0x0b39 00000b26: PUSH1 0x40 00000b28: MLOAD 00000b29: SWAP3 00000b2a: DUP4 00000b2b: SWAP3 00000b2c: PUSH1 0x20 00000b2e: DUP5 00000b2f: MSTORE 00000b30: PUSH1 0x20 00000b32: DUP5 00000b33: ADD 00000b34: SWAP2 00000b35: PUSH2 0x285b 00000b38: JUMP 00000b39: JUMPDEST 00000b3a: SUB 00000b3b: SWAP1 00000b3c: LOG2 00000b3d: PUSH1 0x40 00000b3f: MLOAD 00000b40: SWAP1 00000b41: DUP7 00000b42: DUP3 00000b43: MSTORE 00000b44: DUP5 00000b45: PUSH1 0x20 00000b47: DUP4 00000b48: ADD 00000b49: MSTORE 00000b4a: DUP7 00000b4b: PUSH1 0x40 00000b4d: DUP4 00000b4e: ADD 00000b4f: MSTORE 00000b50: ADDRESS 00000b51: PUSH1 0x60 00000b53: DUP4 00000b54: ADD 00000b55: MSTORE 00000b56: PUSH1 0x80 00000b58: DUP3 00000b59: ADD 00000b5a: MSTORE 00000b5b: KECCAK256 00000b5c: SWAP3 00000b5d: DUP4 00000b5e: DUP6 00000b5f: MSTORE 00000b60: DUP5 00000b61: PUSH1 0x20 00000b63: MSTORE 00000b64: PUSH1 0x40 00000b66: DUP6 00000b67: KECCAK256 00000b68: PUSH1 0x20 00000b6a: SLOAD 00000b6b: ISZERO 00000b6c: ISZERO 00000b6d: PUSH2 0x0c0a 00000b70: PUSH2 0x0b79 00000b73: DUP5 00000b74: CALLVALUE 00000b75: PUSH2 0x27cd 00000b78: JUMP 00000b79: JUMPDEST 00000b7a: DUP1 00000b7b: PUSH17 0xffffffffffffffffffffffffffffffffff 00000b8d: LT 00000b8e: PUSH1 0x07 00000b90: SHL 00000b91: DUP2 00000b92: DUP2 00000b93: SHR 00000b94: PUSH9 0xffffffffffffffffff 00000b9e: LT 00000b9f: PUSH1 0x06 00000ba1: SHL 00000ba2: OR 00000ba3: DUP2 00000ba4: DUP2 00000ba5: SHR 00000ba6: PUSH5 0xffffffffff 00000bac: LT 00000bad: PUSH1 0x05 00000baf: SHL 00000bb0: OR 00000bb1: DUP2 00000bb2: DUP2 00000bb3: SHR 00000bb4: PUSH3 0xffffff 00000bb8: LT 00000bb9: PUSH1 0x04 00000bbb: SHL 00000bbc: OR 00000bbd: PUSH1 0xb5 00000bbf: PUSH3 0x010000 00000bc3: DUP4 00000bc4: DUP4 00000bc5: SHR 00000bc6: ADD 00000bc7: SWAP2 00000bc8: PUSH1 0x01 00000bca: SHR 00000bcb: SHL 00000bcc: MUL 00000bcd: PUSH1 0x12 00000bcf: SHR 00000bd0: DUP1 00000bd1: DUP3 00000bd2: DIV 00000bd3: ADD 00000bd4: PUSH1 0x01 00000bd6: SHR 00000bd7: DUP1 00000bd8: DUP3 00000bd9: DIV 00000bda: ADD 00000bdb: PUSH1 0x01 00000bdd: SHR 00000bde: DUP1 00000bdf: DUP3 00000be0: DIV 00000be1: ADD 00000be2: PUSH1 0x01 00000be4: SHR 00000be5: DUP1 00000be6: DUP3 00000be7: DIV 00000be8: ADD 00000be9: PUSH1 0x01 00000beb: SHR 00000bec: DUP1 00000bed: DUP3 00000bee: DIV 00000bef: ADD 00000bf0: PUSH1 0x01 00000bf2: SHR 00000bf3: DUP1 00000bf4: DUP3 00000bf5: DIV 00000bf6: ADD 00000bf7: PUSH1 0x01 00000bf9: SHR 00000bfa: DUP1 00000bfb: DUP3 00000bfc: DIV 00000bfd: ADD 00000bfe: PUSH1 0x01 00000c00: SHR 00000c01: DUP1 00000c02: DUP1 00000c03: SWAP3 00000c04: DIV 00000c05: LT 00000c06: SWAP1 00000c07: SUB 00000c08: SWAP1 00000c09: JUMP 00000c0a: JUMPDEST 00000c0b: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18 00000c2c: DUP2 00000c2d: ADD 00000c2e: SWAP5 00000c2f: DUP2 00000c30: DUP7 00000c31: GT 00000c32: PUSH2 0x0e6f 00000c35: JUMPI 00000c36: DUP6 00000c37: ISZERO 00000c38: PUSH2 0x0e47 00000c3b: JUMPI 00000c3c: DUP6 00000c3d: DUP9 00000c3e: PUSH2 0x0c46 00000c41: SWAP3 00000c42: PUSH2 0x2c96 00000c45: JUMP 00000c46: JUMPDEST 00000c47: PUSH1 0x04 00000c49: DUP4 00000c4a: ADD 00000c4b: SSTORE 00000c4c: PUSH14 0xffffffffffffffffffffffffffff 00000c5b: CALLVALUE 00000c5c: GT 00000c5d: PUSH2 0x0e1f 00000c60: JUMPI 00000c61: PUSH14 0xffffffffffffffffffffffffffff 00000c70: DUP4 00000c71: GT 00000c72: PUSH2 0x0e1f 00000c75: JUMPI 00000c76: DUP6 00000c77: PUSH32 0x1857d6b557d31cf8c2bf0cb9e6bf60aaeb9d8a0c5829169328ccf950adc4496f 00000c98: PUSH1 0x40 00000c9a: PUSH2 0x0d8b 00000c9d: SWAP8 00000c9e: SWAP9 00000c9f: SWAP10 00000ca0: DUP6 00000ca1: SLOAD 00000ca2: PUSH4 0xffffffff 00000ca7: DUP2 00000ca8: PUSH1 0xe0 00000caa: SHR 00000cab: DUP2 00000cac: TIMESTAMP 00000cad: AND 00000cae: SUB 00000caf: AND 00000cb0: DUP1 00000cb1: ISZERO 00000cb2: ISZERO 00000cb3: DUP1 00000cb4: PUSH2 0x0e18 00000cb7: JUMPI 00000cb8: JUMPDEST 00000cb9: DUP1 00000cba: PUSH2 0x0e11 00000cbd: JUMPI 00000cbe: JUMPDEST 00000cbf: PUSH2 0x0da4 00000cc2: JUMPI 00000cc3: JUMPDEST 00000cc4: POP 00000cc5: AND 00000cc6: TIMESTAMP 00000cc7: PUSH1 0xe0 00000cc9: SHL 00000cca: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00000ceb: AND 00000cec: OR 00000ced: CALLVALUE 00000cee: PUSH14 0xffffffffffffffffffffffffffff 00000cfd: SWAP1 00000cfe: DUP2 00000cff: AND 00000d00: SWAP2 00000d01: DUP3 00000d02: OR 00000d03: PUSH1 0x70 00000d05: DUP10 00000d06: SWAP1 00000d07: SHL 00000d08: PUSH28 0xffffffffffffffffffffffffffff0000000000000000000000000000 00000d25: AND 00000d26: OR 00000d27: DUP8 00000d28: SSTORE 00000d29: DUP3 00000d2a: MLOAD 00000d2b: SWAP2 00000d2c: DUP3 00000d2d: MSTORE 00000d2e: DUP8 00000d2f: AND 00000d30: PUSH1 0x20 00000d32: DUP3 00000d33: ADD 00000d34: MSTORE 00000d35: LOG2 00000d36: PUSH2 0x0d8f 00000d39: JUMPI 00000d3a: JUMPDEST 00000d3b: POP 00000d3c: PUSH1 0x40 00000d3e: MLOAD 00000d3f: SWAP1 00000d40: CALLVALUE 00000d41: DUP3 00000d42: MSTORE 00000d43: PUSH1 0x20 00000d45: DUP3 00000d46: ADD 00000d47: MSTORE 00000d48: DUP5 00000d49: PUSH32 0x5a3e96f397e68b20a43c25f664b628805b877334dadfcc925c6c1a3ad4340458 00000d6a: PUSH1 0x40 00000d6c: CALLER 00000d6d: SWAP4 00000d6e: LOG3 00000d6f: PUSH1 0x40 00000d71: MLOAD 00000d72: SWAP4 00000d73: DUP5 00000d74: SWAP4 00000d75: DUP5 00000d76: PUSH1 0x40 00000d78: SWAP2 00000d79: SWAP5 00000d7a: SWAP4 00000d7b: SWAP3 00000d7c: PUSH1 0x60 00000d7e: DUP3 00000d7f: ADD 00000d80: SWAP6 00000d81: DUP3 00000d82: MSTORE 00000d83: PUSH1 0x20 00000d85: DUP3 00000d86: ADD 00000d87: MSTORE 00000d88: ADD 00000d89: MSTORE 00000d8a: JUMP 00000d8b: JUMPDEST 00000d8c: SUB 00000d8d: SWAP1 00000d8e: RETURN 00000d8f: JUMPDEST 00000d90: PUSH1 0x03 00000d92: PUSH2 0x0d9b 00000d95: DUP4 00000d96: CALLVALUE 00000d97: PUSH2 0x27cd 00000d9a: JUMP 00000d9b: JUMPDEST 00000d9c: SWAP2 00000d9d: ADD 00000d9e: SSTORE 00000d9f: PUSH0 00000da0: PUSH2 0x0d3a 00000da3: JUMP 00000da4: JUMPDEST 00000da5: DUP1 00000da6: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000dc3: PUSH2 0x0dcc 00000dc6: DUP6 00000dc7: DUP1 00000dc8: PUSH2 0x3144 00000dcb: JUMP 00000dcc: JUMPDEST 00000dcd: AND 00000dce: MUL 00000dcf: PUSH1 0x01 00000dd1: DUP10 00000dd2: ADD 00000dd3: SWAP1 00000dd4: DUP2 00000dd5: SLOAD 00000dd6: ADD 00000dd7: SWAP1 00000dd8: SSTORE 00000dd9: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000df6: PUSH2 0x0dff 00000df9: DUP5 00000dfa: DUP1 00000dfb: PUSH2 0x3144 00000dfe: JUMP 00000dff: JUMPDEST 00000e00: AND 00000e01: MUL 00000e02: PUSH1 0x02 00000e04: DUP9 00000e05: ADD 00000e06: SWAP1 00000e07: DUP2 00000e08: SLOAD 00000e09: ADD 00000e0a: SWAP1 00000e0b: SSTORE 00000e0c: PUSH0 00000e0d: PUSH2 0x0cc3 00000e10: JUMP 00000e11: JUMPDEST 00000e12: POP 00000e13: DUP3 00000e14: PUSH2 0x0cbe 00000e17: JUMP 00000e18: JUMPDEST 00000e19: POP 00000e1a: DUP3 00000e1b: PUSH2 0x0cb8 00000e1e: JUMP 00000e1f: JUMPDEST 00000e20: PUSH1 0x04 00000e22: DUP8 00000e23: PUSH32 0x35278d1200000000000000000000000000000000000000000000000000000000 00000e44: DUP2 00000e45: MSTORE 00000e46: REVERT 00000e47: JUMPDEST 00000e48: PUSH1 0x04 00000e4a: DUP10 00000e4b: PUSH32 0xd226f9d400000000000000000000000000000000000000000000000000000000 00000e6c: DUP2 00000e6d: MSTORE 00000e6e: REVERT 00000e6f: JUMPDEST 00000e70: PUSH1 0x24 00000e72: DUP10 00000e73: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00000e94: DUP2 00000e95: MSTORE 00000e96: PUSH1 0x11 00000e98: PUSH1 0x04 00000e9a: MSTORE 00000e9b: REVERT 00000e9c: JUMPDEST 00000e9d: PUSH2 0x0ea5 00000ea0: SWAP3 00000ea1: PUSH2 0x2c96 00000ea4: JUMP 00000ea5: JUMPDEST 00000ea6: PUSH0 00000ea7: DUP1 00000ea8: DUP6 00000ea9: PUSH2 0x0b1f 00000eac: JUMP 00000ead: JUMPDEST 00000eae: PUSH1 0x04 00000eb0: DUP9 00000eb1: PUSH32 0x35278d1200000000000000000000000000000000000000000000000000000000 00000ed2: DUP2 00000ed3: MSTORE 00000ed4: REVERT 00000ed5: JUMPDEST 00000ed6: PUSH1 0x04 00000ed8: DUP9 00000ed9: PUSH32 0xda7459b700000000000000000000000000000000000000000000000000000000 00000efa: DUP2 00000efb: MSTORE 00000efc: REVERT 00000efd: JUMPDEST 00000efe: DUP7 00000eff: DUP1 00000f00: REVERT 00000f01: JUMPDEST 00000f02: POP 00000f03: CALLVALUE 00000f04: PUSH2 0x032f 00000f07: JUMPI 00000f08: PUSH1 0x40 00000f0a: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc 00000f2b: CALLDATASIZE 00000f2c: ADD 00000f2d: SLT 00000f2e: PUSH2 0x032f 00000f31: JUMPI 00000f32: PUSH2 0x0f39 00000f35: PUSH2 0x25e9 00000f38: JUMP 00000f39: JUMPDEST 00000f3a: SWAP1 00000f3b: PUSH2 0x0f42 00000f3e: PUSH2 0x260c 00000f41: JUMP 00000f42: JUMPDEST 00000f43: SWAP2 00000f44: PUSH8 0xedcaa89a82293940 00000f4d: PUSH1 0x20 00000f4f: MSTORE 00000f50: PUSH1 0x14 00000f52: MSTORE 00000f53: MSTORE 00000f54: PUSH1 0x20 00000f56: PUSH1 0x34 00000f58: PUSH1 0x0c 00000f5a: KECCAK256 00000f5b: SLOAD 00000f5c: PUSH1 0x40 00000f5e: MLOAD 00000f5f: SWAP1 00000f60: ISZERO 00000f61: ISZERO 00000f62: DUP2 00000f63: MSTORE 00000f64: RETURN 00000f65: JUMPDEST 00000f66: POP 00000f67: CALLVALUE 00000f68: PUSH2 0x032f 00000f6b: JUMPI 00000f6c: PUSH1 0x20 00000f6e: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc 00000f8f: CALLDATASIZE 00000f90: ADD 00000f91: SLT 00000f92: PUSH2 0x032f 00000f95: JUMPI 00000f96: PUSH1 0x04 00000f98: CALLDATALOAD 00000f99: SWAP1 00000f9a: PUSH8 0xffffffffffffffff 00000fa3: DUP3 00000fa4: GT 00000fa5: PUSH2 0x032f 00000fa8: JUMPI 00000fa9: CALLDATASIZE 00000faa: PUSH1 0x23 00000fac: DUP4 00000fad: ADD 00000fae: SLT 00000faf: ISZERO 00000fb0: PUSH2 0x032f 00000fb3: JUMPI 00000fb4: DUP2 00000fb5: PUSH1 0x04 00000fb7: ADD 00000fb8: CALLDATALOAD 00000fb9: PUSH8 0xffffffffffffffff 00000fc2: DUP2 00000fc3: GT 00000fc4: PUSH2 0x0551 00000fc7: JUMPI 00000fc8: CALLDATASIZE 00000fc9: PUSH1 0x24 00000fcb: DUP3 00000fcc: PUSH1 0x05 00000fce: SHL 00000fcf: DUP6 00000fd0: ADD 00000fd1: ADD 00000fd2: GT 00000fd3: PUSH2 0x0551 00000fd6: JUMPI 00000fd7: PUSH2 0x0fdf 00000fda: DUP2 00000fdb: PUSH2 0x2899 00000fde: JUMP 00000fdf: JUMPDEST 00000fe0: SWAP3 00000fe1: PUSH2 0x0fed 00000fe4: PUSH1 0x40 00000fe6: MLOAD 00000fe7: SWAP5 00000fe8: DUP6 00000fe9: PUSH2 0x27ed 00000fec: JUMP 00000fed: JUMPDEST 00000fee: DUP2 00000fef: DUP5 00000ff0: MSTORE 00000ff1: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00001012: PUSH2 0x101a 00001015: DUP4 00001016: PUSH2 0x2899 00001019: JUMP 0000101a: JUMPDEST 0000101b: ADD 0000101c: DUP4 0000101d: JUMPDEST 0000101e: DUP2 0000101f: DUP2 00001020: LT 00001021: PUSH2 0x12a7 00001024: JUMPI 00001025: POP 00001026: POP 00001027: DUP3 00001028: SWAP1 00001029: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbd 0000104a: DUP2 0000104b: CALLDATASIZE 0000104c: SUB 0000104d: ADD 0000104e: SWAP2 0000104f: JUMPDEST 00001050: DUP4 00001051: DUP2 00001052: SUB 00001053: PUSH2 0x1110 00001056: JUMPI 00001057: DUP6 00001058: DUP6 00001059: PUSH1 0x40 0000105b: MLOAD 0000105c: SWAP2 0000105d: DUP3 0000105e: SWAP2 0000105f: PUSH1 0x20 00001061: DUP4 00001062: ADD 00001063: PUSH1 0x20 00001065: DUP5 00001066: MSTORE 00001067: DUP3 00001068: MLOAD 00001069: DUP1 0000106a: SWAP2 0000106b: MSTORE 0000106c: PUSH1 0x40 0000106e: DUP5 0000106f: ADD 00001070: SWAP2 00001071: PUSH1 0x20 00001073: PUSH1 0x40 00001075: DUP4 00001076: PUSH1 0x05 00001078: SHL 00001079: DUP8 0000107a: ADD 0000107b: ADD 0000107c: SWAP5 0000107d: ADD 0000107e: SWAP3 0000107f: DUP2 00001080: JUMPDEST 00001081: DUP4 00001082: DUP4 00001083: LT 00001084: PUSH2 0x108d 00001087: JUMPI 00001088: DUP7 00001089: DUP7 0000108a: SUB 0000108b: DUP8 0000108c: RETURN 0000108d: JUMPDEST 0000108e: SWAP2 0000108f: SWAP4 00001090: SWAP6 00001091: PUSH1 0x20 00001093: DUP1 00001094: DUP8 00001095: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0 000010b6: DUP3 000010b7: SWAP5 000010b8: PUSH1 0x01 000010ba: SWAP7 000010bb: SWAP9 000010bc: SWAP11 000010bd: SUB 000010be: ADD 000010bf: DUP8 000010c0: MSTORE 000010c1: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 000010e2: PUSH1 0x1f 000010e4: DUP4 000010e5: DUP13 000010e6: MLOAD 000010e7: DUP1 000010e8: MLOAD 000010e9: SWAP2 000010ea: DUP3 000010eb: SWAP2 000010ec: DUP3 000010ed: DUP8 000010ee: MSTORE 000010ef: ADD 000010f0: DUP7 000010f1: DUP7 000010f2: ADD 000010f3: MCOPY 000010f4: DUP9 000010f5: DUP6 000010f6: DUP3 000010f7: DUP7 000010f8: ADD 000010f9: ADD 000010fa: MSTORE 000010fb: ADD 000010fc: AND 000010fd: ADD 000010fe: ADD 000010ff: SWAP8 00001100: ADD 00001101: SWAP4 00001102: ADD 00001103: SWAP4 00001104: ADD 00001105: SWAP1 00001106: SWAP3 00001107: DUP7 00001108: SWAP6 00001109: SWAP5 0000110a: SWAP3 0000110b: SWAP4 0000110c: PUSH2 0x1080 0000110f: JUMP 00001110: JUMPDEST 00001111: DUP4 00001112: DUP2 00001113: SWAP7 00001114: SWAP5 00001115: SWAP7 00001116: LT 00001117: ISZERO 00001118: PUSH2 0x127a 0000111b: JUMPI 0000111c: PUSH1 0x24 0000111e: DUP2 0000111f: PUSH1 0x05 00001121: SHL 00001122: DUP4 00001123: ADD 00001124: ADD 00001125: CALLDATALOAD 00001126: DUP4 00001127: DUP2 00001128: SLT 00001129: ISZERO 0000112a: PUSH2 0x1276 0000112d: JUMPI 0000112e: DUP3 0000112f: ADD 00001130: PUSH1 0x24 00001132: DUP2 00001133: ADD 00001134: CALLDATALOAD 00001135: SWAP1 00001136: PUSH8 0xffffffffffffffff 0000113f: DUP3 00001140: GT 00001141: PUSH2 0x0efd 00001144: JUMPI 00001145: PUSH1 0x44 00001147: ADD 00001148: DUP2 00001149: CALLDATASIZE 0000114a: SUB 0000114b: DUP2 0000114c: SGT 0000114d: PUSH2 0x0efd 00001150: JUMPI 00001151: DUP2 00001152: DUP8 00001153: SWAP3 00001154: SWAP2 00001155: DUP4 00001156: SWAP3 00001157: PUSH1 0x40 00001159: MLOAD 0000115a: SWAP3 0000115b: DUP4 0000115c: SWAP3 0000115d: DUP4 0000115e: CALLDATACOPY 0000115f: DUP2 00001160: ADD 00001161: DUP4 00001162: DUP2 00001163: MSTORE 00001164: SUB 00001165: SWAP1 00001166: ADDRESS 00001167: GAS 00001168: DELEGATECALL 00001169: RETURNDATASIZE 0000116a: ISZERO 0000116b: PUSH2 0x126e 0000116e: JUMPI 0000116f: RETURNDATASIZE 00001170: SWAP1 00001171: PUSH8 0xffffffffffffffff 0000117a: DUP3 0000117b: GT 0000117c: PUSH2 0x1241 0000117f: JUMPI 00001180: PUSH1 0x40 00001182: MLOAD 00001183: SWAP2 00001184: PUSH2 0x11b5 00001187: PUSH1 0x20 00001189: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 000011aa: PUSH1 0x1f 000011ac: DUP5 000011ad: ADD 000011ae: AND 000011af: ADD 000011b0: DUP5 000011b1: PUSH2 0x27ed 000011b4: JUMP 000011b5: JUMPDEST 000011b6: DUP3 000011b7: MSTORE 000011b8: RETURNDATASIZE 000011b9: DUP8 000011ba: PUSH1 0x20 000011bc: DUP5 000011bd: ADD 000011be: RETURNDATACOPY 000011bf: JUMPDEST 000011c0: ISZERO 000011c1: PUSH2 0x1239 000011c4: JUMPI 000011c5: PUSH2 0x11ce 000011c8: DUP3 000011c9: DUP7 000011ca: PUSH2 0x28b1 000011cd: JUMP 000011ce: JUMPDEST 000011cf: MSTORE 000011d0: PUSH2 0x11d9 000011d3: DUP2 000011d4: DUP6 000011d5: PUSH2 0x28b1 000011d8: JUMP 000011d9: JUMPDEST 000011da: POP 000011db: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000011fc: DUP2 000011fd: EQ 000011fe: PUSH2 0x120c 00001201: JUMPI 00001202: PUSH1 0x01 00001204: ADD 00001205: SWAP5 00001206: SWAP3 00001207: SWAP5 00001208: PUSH2 0x104f 0000120b: JUMP 0000120c: JUMPDEST 0000120d: PUSH1 0x24 0000120f: DUP6 00001210: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00001231: DUP2 00001232: MSTORE 00001233: PUSH1 0x11 00001235: PUSH1 0x04 00001237: MSTORE 00001238: REVERT 00001239: JUMPDEST 0000123a: PUSH1 0x20 0000123c: DUP2 0000123d: MLOAD 0000123e: SWAP2 0000123f: ADD 00001240: REVERT 00001241: JUMPDEST 00001242: PUSH1 0x24 00001244: DUP8 00001245: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00001266: DUP2 00001267: MSTORE 00001268: PUSH1 0x41 0000126a: PUSH1 0x04 0000126c: MSTORE 0000126d: REVERT 0000126e: JUMPDEST 0000126f: PUSH1 0x60 00001271: SWAP1 00001272: PUSH2 0x11bf 00001275: JUMP 00001276: JUMPDEST 00001277: DUP6 00001278: DUP1 00001279: REVERT 0000127a: JUMPDEST 0000127b: PUSH1 0x24 0000127d: DUP6 0000127e: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 0000129f: DUP2 000012a0: MSTORE 000012a1: PUSH1 0x32 000012a3: PUSH1 0x04 000012a5: MSTORE 000012a6: REVERT 000012a7: JUMPDEST 000012a8: PUSH1 0x60 000012aa: PUSH1 0x20 000012ac: DUP3 000012ad: DUP9 000012ae: ADD 000012af: DUP2 000012b0: ADD 000012b1: SWAP2 000012b2: SWAP1 000012b3: SWAP2 000012b4: MSTORE 000012b5: ADD 000012b6: PUSH2 0x101d 000012b9: JUMP 000012ba: JUMPDEST 000012bb: POP 000012bc: CALLVALUE 000012bd: PUSH2 0x032f 000012c0: JUMPI 000012c1: PUSH1 0x20 000012c3: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc 000012e4: CALLDATASIZE 000012e5: ADD 000012e6: SLT 000012e7: PUSH2 0x032f 000012ea: JUMPI 000012eb: PUSH1 0x40 000012ed: PUSH1 0xe0 000012ef: SWAP2 000012f0: PUSH1 0x04 000012f2: CALLDATALOAD 000012f3: DUP2 000012f4: MSTORE 000012f5: DUP1 000012f6: PUSH1 0x20 000012f8: MSTORE 000012f9: KECCAK256 000012fa: DUP1 000012fb: SLOAD 000012fc: SWAP1 000012fd: PUSH1 0x01 000012ff: DUP2 00001300: ADD 00001301: SLOAD 00001302: SWAP1 00001303: PUSH1 0x02 00001305: DUP2 00001306: ADD 00001307: SLOAD 00001308: PUSH1 0x04 0000130a: PUSH1 0x03 0000130c: DUP4 0000130d: ADD 0000130e: SLOAD 0000130f: SWAP3 00001310: ADD 00001311: SLOAD 00001312: SWAP3 00001313: PUSH1 0x40 00001315: MLOAD 00001316: SWAP5 00001317: PUSH14 0xffffffffffffffffffffffffffff 00001326: DUP2 00001327: AND 00001328: DUP7 00001329: MSTORE 0000132a: PUSH14 0xffffffffffffffffffffffffffff 00001339: DUP2 0000133a: PUSH1 0x70 0000133c: SHR 0000133d: AND 0000133e: PUSH1 0x20 00001340: DUP8 00001341: ADD 00001342: MSTORE 00001343: DUP7 00001344: SHR 00001345: PUSH1 0x40 00001347: DUP7 00001348: ADD 00001349: MSTORE 0000134a: PUSH1 0x60 0000134c: DUP6 0000134d: ADD 0000134e: MSTORE 0000134f: PUSH1 0x80 00001351: DUP5 00001352: ADD 00001353: MSTORE 00001354: PUSH1 0xa0 00001356: DUP4 00001357: ADD 00001358: MSTORE 00001359: PUSH1 0xc0 0000135b: DUP3 0000135c: ADD 0000135d: MSTORE 0000135e: RETURN 0000135f: JUMPDEST 00001360: POP 00001361: CALLVALUE 00001362: PUSH2 0x032f 00001365: JUMPI 00001366: PUSH1 0x60 00001368: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc 00001389: CALLDATASIZE 0000138a: ADD 0000138b: SLT 0000138c: PUSH2 0x032f 0000138f: JUMPI 00001390: PUSH2 0x1397 00001393: PUSH2 0x25e9 00001396: JUMP 00001397: JUMPDEST 00001398: SWAP1 00001399: PUSH1 0x44 0000139b: CALLDATALOAD 0000139c: PUSH1 0x24 0000139e: CALLDATALOAD 0000139f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013b4: DUP3 000013b5: AND 000013b6: DUP3 000013b7: SUB 000013b8: PUSH2 0x1443 000013bb: JUMPI 000013bc: PUSH9 0x929eee149b4bd21268 000013c6: TLOAD 000013c7: PUSH2 0x1436 000013ca: JUMPI 000013cb: SWAP3 000013cc: DUP3 000013cd: SWAP2 000013ce: PUSH1 0x20 000013d0: SWAP5 000013d1: ADDRESS 000013d2: PUSH9 0x929eee149b4bd21268 000013dc: TSTORE 000013dd: PUSH1 0x40 000013df: MLOAD 000013e0: SWAP2 000013e1: CALLER 000013e2: DUP6 000013e3: MSTORE 000013e4: DUP4 000013e5: DUP8 000013e6: MSTORE 000013e7: DUP2 000013e8: PUSH1 0x40 000013ea: MSTORE 000013eb: PUSH1 0x60 000013ed: DUP6 000013ee: KECCAK256 000013ef: SWAP3 000013f0: DUP4 000013f1: TLOAD 000013f2: SWAP7 000013f3: DUP8 000013f4: SWAP5 000013f5: DUP6 000013f6: PUSH2 0x142e 000013f9: JUMPI 000013fa: JUMPDEST 000013fb: POP 000013fc: POP 000013fd: PUSH1 0x40 000013ff: MSTORE 00001400: DUP3 00001401: PUSH2 0x141c 00001404: JUMPI 00001405: JUMPDEST 00001406: POP 00001407: POP 00001408: POP 00001409: POP 0000140a: PUSH9 0x929eee149b4bd21268 00001414: TSTORE 00001415: PUSH1 0x40 00001417: MLOAD 00001418: SWAP1 00001419: DUP2 0000141a: MSTORE 0000141b: RETURN 0000141c: JUMPDEST 0000141d: PUSH2 0x1425 00001420: SWAP4 00001421: PUSH2 0x2f1c 00001424: JUMP 00001425: JUMPDEST 00001426: PUSH0 00001427: DUP3 00001428: DUP2 00001429: DUP1 0000142a: PUSH2 0x1405 0000142d: JUMP 0000142e: JUMPDEST 0000142f: TSTORE 00001430: DUP6 00001431: PUSH0 00001432: PUSH2 0x13fa 00001435: JUMP 00001436: JUMPDEST 00001437: PUSH4 0xab143c06 0000143c: DUP4 0000143d: MSTORE 0000143e: PUSH1 0x04 00001440: PUSH1 0x1c 00001442: REVERT 00001443: JUMPDEST 00001444: DUP3 00001445: DUP1 00001446: REVERT 00001447: JUMPDEST 00001448: POP 00001449: PUSH1 0x20 0000144b: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc 0000146c: CALLDATASIZE 0000146d: ADD 0000146e: SLT 0000146f: PUSH2 0x032f 00001472: JUMPI 00001473: PUSH2 0x147a 00001476: PUSH2 0x25e9 00001479: JUMP 0000147a: JUMPDEST 0000147b: DUP2 0000147c: SLOAD 0000147d: CALLER 0000147e: SUB 0000147f: PUSH2 0x0596 00001482: JUMPI 00001483: DUP2 00001484: SSTORE 00001485: DUP1 00001486: RETURN 00001487: JUMPDEST 00001488: POP 00001489: CALLVALUE 0000148a: PUSH2 0x185f 0000148d: JUMPI 0000148e: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc 000014af: CALLDATASIZE 000014b0: ADD 000014b1: PUSH2 0x0120 000014b4: DUP2 000014b5: SLT 000014b6: PUSH2 0x185f 000014b9: JUMPI 000014ba: PUSH1 0xa0 000014bc: SGT 000014bd: PUSH2 0x185f 000014c0: JUMPI 000014c1: PUSH1 0xe4 000014c3: CALLDATALOAD 000014c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014d9: DUP2 000014da: AND 000014db: SWAP1 000014dc: PUSH1 0xa4 000014de: CALLDATALOAD 000014df: PUSH1 0xc4 000014e1: CALLDATALOAD 000014e2: DUP4 000014e3: DUP4 000014e4: SUB 000014e5: PUSH2 0x185f 000014e8: JUMPI 000014e9: PUSH2 0x0104 000014ec: CALLDATALOAD 000014ed: PUSH8 0xffffffffffffffff 000014f6: DUP2 000014f7: GT 000014f8: PUSH2 0x185f 000014fb: JUMPI 000014fc: PUSH2 0x1509 000014ff: SWAP1 00001500: CALLDATASIZE 00001501: SWAP1 00001502: PUSH1 0x04 00001504: ADD 00001505: PUSH2 0x2684 00001508: JUMP 00001509: JUMPDEST 0000150a: PUSH9 0x929eee149b4bd21268 00001514: SWAP4 00001515: SWAP2 00001516: SWAP4 00001517: TLOAD 00001518: PUSH2 0x18e0 0000151b: JUMPI 0000151c: ADDRESS 0000151d: PUSH9 0x929eee149b4bd21268 00001527: TSTORE 00001528: DUP2 00001529: ISZERO 0000152a: DUP1 0000152b: ISZERO 0000152c: DUP1 0000152d: SWAP2 0000152e: PUSH2 0x18d7 00001531: JUMPI 00001532: JUMPDEST 00001533: ISZERO 00001534: PUSH2 0x18af 00001537: JUMPI 00001538: PUSH1 0xa0 0000153a: PUSH1 0x40 0000153c: MLOAD 0000153d: DUP2 0000153e: PUSH1 0x04 00001540: DUP3 00001541: CALLDATACOPY 00001542: KECCAK256 00001543: SWAP5 00001544: DUP6 00001545: PUSH0 00001546: MSTORE 00001547: PUSH0 00001548: PUSH1 0x20 0000154a: MSTORE 0000154b: PUSH1 0x40 0000154d: PUSH0 0000154e: KECCAK256 0000154f: SWAP3 00001550: DUP4 00001551: SLOAD 00001552: SWAP8 00001553: PUSH14 0xffffffffffffffffffffffffffff 00001562: DUP1 00001563: DUP11 00001564: AND 00001565: SWAP10 00001566: PUSH1 0x70 00001568: SHR 00001569: AND 0000156a: SWAP4 0000156b: DUP10 0000156c: DUP8 0000156d: LT 0000156e: ISZERO 0000156f: PUSH2 0x1887 00001572: JUMPI 00001573: DUP5 00001574: DUP9 00001575: LT 00001576: ISZERO 00001577: PUSH2 0x1887 0000157a: JUMPI 0000157b: PUSH2 0x1876 0000157e: JUMPI 0000157f: JUMPDEST 00001580: DUP7 00001581: DUP1 00001582: PUSH2 0x1863 00001585: JUMPI 00001586: JUMPDEST 00001587: POP 00001588: POP 00001589: DUP1 0000158a: PUSH2 0x17c7 0000158d: JUMPI 0000158e: JUMPDEST 0000158f: POP 00001590: POP 00001591: PUSH2 0x15b6 00001594: DUP4 00001595: PUSH2 0x15b1 00001598: PUSH2 0x15ab 0000159b: PUSH2 0x15a2 0000159e: PUSH2 0x2725 000015a1: JUMP 000015a2: JUMPDEST 000015a3: PUSH1 0x04 000015a5: CALLDATALOAD 000015a6: SWAP1 000015a7: PUSH2 0x304f 000015aa: JUMP 000015ab: JUMPDEST 000015ac: DUP10 000015ad: PUSH2 0x278c 000015b0: JUMP 000015b1: JUMPDEST 000015b2: PUSH2 0x27e0 000015b5: JUMP 000015b6: JUMPDEST 000015b7: SWAP6 000015b8: PUSH2 0x15d8 000015bb: DUP6 000015bc: PUSH2 0x15b1 000015bf: PUSH2 0x15d2 000015c2: PUSH2 0x15c9 000015c5: PUSH2 0x2748 000015c8: JUMP 000015c9: JUMPDEST 000015ca: PUSH1 0x24 000015cc: CALLDATALOAD 000015cd: SWAP1 000015ce: PUSH2 0x304f 000015d1: JUMP 000015d2: JUMPDEST 000015d3: DUP6 000015d4: PUSH2 0x278c 000015d7: JUMP 000015d8: JUMPDEST 000015d9: DUP5 000015da: DUP3 000015db: SUB 000015dc: DUP1 000015dd: DUP10 000015de: GT 000015df: ISZERO 000015e0: PUSH2 0x17bf 000015e3: JUMPI 000015e4: DUP9 000015e5: SUB 000015e6: SWAP8 000015e7: JUMPDEST 000015e8: DUP7 000015e9: DUP5 000015ea: SUB 000015eb: DUP1 000015ec: DUP4 000015ed: GT 000015ee: ISZERO 000015ef: PUSH2 0x17b7 000015f2: JUMPI 000015f3: DUP3 000015f4: SUB 000015f5: SWAP5 000015f6: JUMPDEST 000015f7: DUP10 000015f8: ISZERO 000015f9: DUP1 000015fa: ISZERO 000015fb: SWAP1 000015fc: PUSH2 0x17ae 000015ff: JUMPI 00001600: JUMPDEST 00001601: ISZERO 00001602: PUSH2 0x1786 00001605: JUMPI 00001606: PUSH2 0x2710 00001609: DUP3 0000160a: MUL 0000160b: DUP3 0000160c: DUP2 0000160d: DIV 0000160e: PUSH2 0x2710 00001611: EQ 00001612: DUP4 00001613: ISZERO 00001614: OR 00001615: ISZERO 00001616: PUSH2 0x1759 00001619: JUMPI 0000161a: PUSH2 0x1642 0000161d: SWAP1 0000161e: PUSH2 0x163c 00001621: PUSH12 0xffffffffffffffffffffffff 0000162e: PUSH2 0x1635 00001631: PUSH2 0x2799 00001634: JUMP 00001635: JUMPDEST 00001636: AND 00001637: DUP14 00001638: PUSH2 0x27cd 0000163b: JUMP 0000163c: JUMPDEST 0000163d: SWAP1 0000163e: PUSH2 0x27e0 00001641: JUMP 00001642: JUMPDEST 00001643: PUSH2 0x2710 00001646: DUP5 00001647: MUL 00001648: DUP5 00001649: DUP2 0000164a: DIV 0000164b: PUSH2 0x2710 0000164e: EQ 0000164f: DUP6 00001650: ISZERO 00001651: OR 00001652: ISZERO 00001653: PUSH2 0x172c 00001656: JUMPI 00001657: SWAP1 00001658: PUSH2 0x167d 0000165b: PUSH2 0x1683 0000165e: SWAP3 0000165f: PUSH2 0x163c 00001662: PUSH12 0xffffffffffffffffffffffff 0000166f: PUSH2 0x1676 00001672: PUSH2 0x2799 00001675: JUMP 00001676: JUMPDEST 00001677: AND 00001678: DUP12 00001679: PUSH2 0x27cd 0000167c: JUMP 0000167d: JUMPDEST 0000167e: SWAP1 0000167f: PUSH2 0x27cd 00001682: JUMP 00001683: JUMPDEST 00001684: PUSH2 0x168d 00001687: DUP7 00001688: DUP7 00001689: PUSH2 0x27cd 0000168c: JUMP 0000168d: JUMPDEST 0000168e: SWAP1 0000168f: PUSH4 0x05f5e100 00001694: DUP3 00001695: MUL 00001696: SWAP2 00001697: DUP1 00001698: DUP4 00001699: DIV 0000169a: PUSH4 0x05f5e100 0000169f: EQ 000016a0: SWAP1 000016a1: ISZERO 000016a2: OR 000016a3: ISZERO 000016a4: PUSH2 0x172c 000016a7: JUMPI 000016a8: LT 000016a9: PUSH2 0x1704 000016ac: JUMPI 000016ad: SWAP1 000016ae: DUP9 000016af: PUSH2 0x16ba 000016b2: SWAP6 000016b3: SWAP5 000016b4: SWAP4 000016b5: SWAP3 000016b6: PUSH2 0x2cf5 000016b9: JUMP 000016ba: JUMPDEST 000016bb: PUSH1 0x40 000016bd: MLOAD 000016be: SWAP5 000016bf: DUP6 000016c0: MSTORE 000016c1: PUSH1 0x20 000016c3: DUP6 000016c4: ADD 000016c5: MSTORE 000016c6: PUSH1 0x40 000016c8: DUP5 000016c9: ADD 000016ca: MSTORE 000016cb: PUSH1 0x60 000016cd: DUP4 000016ce: ADD 000016cf: MSTORE 000016d0: PUSH32 0xf51245804459075de3f63c42324c8ba2021175781c7477a5d8f4f08fb5584a56 000016f1: PUSH1 0x80 000016f3: CALLER 000016f4: SWAP4 000016f5: LOG4 000016f6: DUP1 000016f7: PUSH9 0x929eee149b4bd21268 00001701: TSTORE 00001702: DUP1 00001703: RETURN 00001704: JUMPDEST 00001705: PUSH1 0x04 00001707: DUP13 00001708: PUSH32 0xa932492f00000000000000000000000000000000000000000000000000000000 00001729: DUP2 0000172a: MSTORE 0000172b: REVERT 0000172c: JUMPDEST 0000172d: PUSH1 0x24 0000172f: DUP15 00001730: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00001751: DUP2 00001752: MSTORE 00001753: PUSH1 0x11 00001755: PUSH1 0x04 00001757: MSTORE 00001758: REVERT 00001759: JUMPDEST 0000175a: PUSH1 0x24 0000175c: DUP14 0000175d: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 0000177e: DUP2 0000177f: MSTORE 00001780: PUSH1 0x11 00001782: PUSH1 0x04 00001784: MSTORE 00001785: REVERT 00001786: JUMPDEST 00001787: PUSH1 0x04 00001789: DUP13 0000178a: PUSH32 0x098fb56100000000000000000000000000000000000000000000000000000000 000017ab: DUP2 000017ac: MSTORE 000017ad: REVERT 000017ae: JUMPDEST 000017af: POP 000017b0: DUP6 000017b1: ISZERO 000017b2: ISZERO 000017b3: PUSH2 0x1600 000017b6: JUMP 000017b7: JUMPDEST 000017b8: POP 000017b9: DUP11 000017ba: SWAP5 000017bb: PUSH2 0x15f6 000017be: JUMP 000017bf: JUMPDEST 000017c0: POP 000017c1: DUP10 000017c2: SWAP8 000017c3: PUSH2 0x15e7 000017c6: JUMP 000017c7: JUMPDEST 000017c8: DUP9 000017c9: EXTCODESIZE 000017ca: ISZERO 000017cb: PUSH2 0x185f 000017ce: JUMPI 000017cf: PUSH2 0x1828 000017d2: SWAP2 000017d3: PUSH0 000017d4: SWAP2 000017d5: PUSH1 0x40 000017d7: MLOAD 000017d8: SWAP4 000017d9: DUP5 000017da: SWAP3 000017db: DUP4 000017dc: SWAP3 000017dd: PUSH32 0xfe2cbab700000000000000000000000000000000000000000000000000000000 000017fe: DUP5 000017ff: MSTORE 00001800: DUP12 00001801: PUSH1 0x04 00001803: DUP6 00001804: ADD 00001805: MSTORE 00001806: CALLER 00001807: PUSH1 0x24 00001809: DUP6 0000180a: ADD 0000180b: MSTORE 0000180c: DUP10 0000180d: PUSH1 0x44 0000180f: DUP6 00001810: ADD 00001811: MSTORE 00001812: DUP11 00001813: PUSH1 0x64 00001815: DUP6 00001816: ADD 00001817: MSTORE 00001818: PUSH1 0xa0 0000181a: PUSH1 0x84 0000181c: DUP6 0000181d: ADD 0000181e: MSTORE 0000181f: PUSH1 0xa4 00001821: DUP5 00001822: ADD 00001823: SWAP2 00001824: PUSH2 0x285b 00001827: JUMP 00001828: JUMPDEST 00001829: SUB 0000182a: DUP2 0000182b: DUP4 0000182c: DUP13 0000182d: GAS 0000182e: CALL 0000182f: DUP1 00001830: ISZERO 00001831: PUSH2 0x1854 00001834: JUMPI 00001835: PUSH2 0x183f 00001838: JUMPI 00001839: JUMPDEST 0000183a: DUP1 0000183b: PUSH2 0x158e 0000183e: JUMP 0000183f: JUMPDEST 00001840: PUSH2 0x184c 00001843: SWAP2 00001844: SWAP9 00001845: POP 00001846: PUSH0 00001847: SWAP1 00001848: PUSH2 0x27ed 0000184b: JUMP 0000184c: JUMPDEST 0000184d: PUSH0 0000184e: SWAP7 0000184f: PUSH0 00001850: PUSH2 0x1839 00001853: JUMP 00001854: JUMPDEST 00001855: PUSH1 0x40 00001857: MLOAD 00001858: RETURNDATASIZE 00001859: PUSH0 0000185a: DUP3 0000185b: RETURNDATACOPY 0000185c: RETURNDATASIZE 0000185d: SWAP1 0000185e: REVERT 0000185f: JUMPDEST 00001860: PUSH0 00001861: DUP1 00001862: REVERT 00001863: JUMPDEST 00001864: PUSH2 0x186f 00001867: SWAP2 00001868: PUSH2 0x0463 0000186b: PUSH2 0x2748 0000186e: JUMP 0000186f: JUMPDEST 00001870: PUSH0 00001871: DUP7 00001872: PUSH2 0x1586 00001875: JUMP 00001876: JUMPDEST 00001877: PUSH2 0x1882 0000187a: DUP7 0000187b: PUSH2 0x0451 0000187e: PUSH2 0x2725 00001881: JUMP 00001882: JUMPDEST 00001883: PUSH2 0x157f 00001886: JUMP 00001887: JUMPDEST 00001888: PUSH32 0xbb55fd2700000000000000000000000000000000000000000000000000000000 000018a9: PUSH0 000018aa: MSTORE 000018ab: PUSH1 0x04 000018ad: PUSH0 000018ae: REVERT 000018af: JUMPDEST 000018b0: PUSH32 0x42301c2300000000000000000000000000000000000000000000000000000000 000018d1: PUSH0 000018d2: MSTORE 000018d3: PUSH1 0x04 000018d5: PUSH0 000018d6: REVERT 000018d7: JUMPDEST 000018d8: POP 000018d9: DUP4 000018da: ISZERO 000018db: ISZERO 000018dc: PUSH2 0x1532 000018df: JUMP 000018e0: JUMPDEST 000018e1: PUSH4 0xab143c06 000018e6: PUSH0 000018e7: MSTORE 000018e8: PUSH1 0x04 000018ea: PUSH1 0x1c 000018ec: REVERT 000018ed: JUMPDEST 000018ee: PUSH2 0x18f6 000018f1: CALLDATASIZE 000018f2: PUSH2 0x26b2 000018f5: JUMP 000018f6: JUMPDEST 000018f7: PUSH9 0x929eee149b4bd21268 00001901: SWAP6 00001902: SWAP2 00001903: SWAP4 00001904: SWAP5 00001905: SWAP3 00001906: SWAP6 00001907: TLOAD 00001908: PUSH2 0x18e0 0000190b: JUMPI 0000190c: ADDRESS 0000190d: PUSH9 0x929eee149b4bd21268 00001917: TSTORE 00001918: TIMESTAMP 00001919: GT 0000191a: PUSH2 0x1c0f 0000191d: JUMPI 0000191e: DUP2 0000191f: ISZERO 00001920: PUSH2 0x1be7 00001923: JUMPI 00001924: PUSH1 0xa0 00001926: PUSH1 0x40 00001928: MLOAD 00001929: DUP2 0000192a: DUP4 0000192b: DUP3 0000192c: CALLDATACOPY 0000192d: KECCAK256 0000192e: SWAP3 0000192f: DUP4 00001930: PUSH0 00001931: MSTORE 00001932: PUSH0 00001933: PUSH1 0x20 00001935: MSTORE 00001936: PUSH1 0x40 00001938: PUSH0 00001939: KECCAK256 0000193a: SWAP2 0000193b: DUP3 0000193c: SLOAD 0000193d: SWAP7 0000193e: PUSH14 0xffffffffffffffffffffffffffff 0000194d: DUP1 0000194e: DUP10 0000194f: AND 00001950: SWAP9 00001951: PUSH1 0x70 00001953: SHR 00001954: AND 00001955: SWAP1 00001956: DUP1 00001957: PUSH0 00001958: EQ 00001959: PUSH2 0x1bc7 0000195c: JUMPI 0000195d: PUSH2 0x1974 00001960: DUP7 00001961: PUSH2 0x196c 00001964: PUSH1 0x40 00001966: DUP7 00001967: ADD 00001968: PUSH2 0x276b 0000196b: JUMP 0000196c: JUMPDEST 0000196d: DUP6 0000196e: CALLDATALOAD 0000196f: SWAP1 00001970: PUSH2 0x2bec 00001973: JUMP 00001974: JUMPDEST 00001975: DUP1 00001976: PUSH2 0x1b99 00001979: JUMPI 0000197a: JUMPDEST 0000197b: ISZERO 0000197c: PUSH2 0x1afc 0000197f: JUMPI 00001980: JUMPDEST 00001981: ISZERO 00001982: PUSH2 0x1a49 00001985: JUMPI 00001986: PUSH2 0x199c 00001989: PUSH2 0x1994 0000198c: PUSH1 0x80 0000198e: DUP5 0000198f: ADD 00001990: PUSH2 0x27b4 00001993: JUMP 00001994: JUMPDEST 00001995: DUP3 00001996: DUP11 00001997: DUP9 00001998: PUSH2 0x2ec9 0000199b: JUMP 0000199c: JUMPDEST 0000199d: SWAP7 0000199e: DUP8 0000199f: ISZERO 000019a0: PUSH2 0x18af 000019a3: JUMPI 000019a4: DUP8 000019a5: LT 000019a6: PUSH2 0x18af 000019a9: JUMPI 000019aa: DUP1 000019ab: DUP8 000019ac: LT 000019ad: ISZERO 000019ae: PUSH2 0x1887 000019b1: JUMPI 000019b2: PUSH1 0x20 000019b4: SWAP8 000019b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019ca: SWAP5 000019cb: PUSH2 0x19e0 000019ce: DUP10 000019cf: DUP6 000019d0: DUP8 000019d1: DUP14 000019d2: PUSH2 0x0693 000019d5: PUSH1 0x60 000019d7: PUSH2 0x19f5 000019da: SWAP11 000019db: ADD 000019dc: PUSH2 0x276b 000019df: JUMP 000019e0: JUMPDEST 000019e1: PUSH2 0x19ea 000019e4: DUP8 000019e5: DUP4 000019e6: PUSH2 0x278c 000019e9: JUMP 000019ea: JUMPDEST 000019eb: DUP9 000019ec: PUSH2 0x06b1 000019ef: DUP12 000019f0: DUP7 000019f1: PUSH2 0x27e0 000019f4: JUMP 000019f5: JUMPDEST 000019f6: PUSH1 0x40 000019f8: MLOAD 000019f9: SWAP3 000019fa: DUP4 000019fb: MSTORE 000019fc: PUSH0 000019fd: DUP7 000019fe: DUP5 000019ff: ADD 00001a00: MSTORE 00001a01: PUSH0 00001a02: PUSH1 0x40 00001a04: DUP5 00001a05: ADD 00001a06: MSTORE 00001a07: DUP5 00001a08: PUSH1 0x60 00001a0a: DUP5 00001a0b: ADD 00001a0c: MSTORE 00001a0d: AND 00001a0e: SWAP2 00001a0f: PUSH32 0xf51245804459075de3f63c42324c8ba2021175781c7477a5d8f4f08fb5584a56 00001a30: PUSH1 0x80 00001a32: CALLER 00001a33: SWAP4 00001a34: LOG4 00001a35: JUMPDEST 00001a36: PUSH0 00001a37: PUSH9 0x929eee149b4bd21268 00001a41: TSTORE 00001a42: PUSH1 0x40 00001a44: MLOAD 00001a45: SWAP1 00001a46: DUP2 00001a47: MSTORE 00001a48: RETURN 00001a49: JUMPDEST 00001a4a: PUSH2 0x1a60 00001a4d: PUSH2 0x1a58 00001a50: PUSH1 0x80 00001a52: DUP5 00001a53: ADD 00001a54: PUSH2 0x27b4 00001a57: JUMP 00001a58: JUMPDEST 00001a59: DUP10 00001a5a: DUP4 00001a5b: DUP9 00001a5c: PUSH2 0x2ec9 00001a5f: JUMP 00001a60: JUMPDEST 00001a61: SWAP7 00001a62: DUP8 00001a63: ISZERO 00001a64: PUSH2 0x18af 00001a67: JUMPI 00001a68: DUP8 00001a69: LT 00001a6a: PUSH2 0x18af 00001a6d: JUMPI 00001a6e: DUP8 00001a6f: DUP8 00001a70: LT 00001a71: ISZERO 00001a72: PUSH2 0x1887 00001a75: JUMPI 00001a76: PUSH1 0x20 00001a78: SWAP8 00001a79: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a8e: SWAP5 00001a8f: PUSH2 0x1aa3 00001a92: DUP10 00001a93: DUP6 00001a94: DUP8 00001a95: PUSH2 0x0906 00001a98: PUSH1 0x40 00001a9a: PUSH2 0x1ab8 00001a9d: SWAP10 00001a9e: ADD 00001a9f: PUSH2 0x276b 00001aa2: JUMP 00001aa3: JUMPDEST 00001aa4: PUSH2 0x1aad 00001aa7: DUP10 00001aa8: DUP4 00001aa9: PUSH2 0x27e0 00001aac: JUMP 00001aad: JUMPDEST 00001aae: DUP9 00001aaf: PUSH2 0x06b1 00001ab2: DUP10 00001ab3: DUP7 00001ab4: PUSH2 0x278c 00001ab7: JUMP 00001ab8: JUMPDEST 00001ab9: PUSH1 0x40 00001abb: MLOAD 00001abc: SWAP3 00001abd: PUSH0 00001abe: DUP5 00001abf: MSTORE 00001ac0: DUP7 00001ac1: DUP5 00001ac2: ADD 00001ac3: MSTORE 00001ac4: DUP5 00001ac5: PUSH1 0x40 00001ac7: DUP5 00001ac8: ADD 00001ac9: MSTORE 00001aca: PUSH0 00001acb: PUSH1 0x60 00001acd: DUP5 00001ace: ADD 00001acf: MSTORE 00001ad0: AND 00001ad1: SWAP2 00001ad2: PUSH32 0xf51245804459075de3f63c42324c8ba2021175781c7477a5d8f4f08fb5584a56 00001af3: PUSH1 0x80 00001af5: CALLER 00001af6: SWAP4 00001af7: LOG4 00001af8: PUSH2 0x1a35 00001afb: JUMP 00001afc: JUMPDEST 00001afd: DUP1 00001afe: ISZERO 00001aff: PUSH2 0x1b79 00001b02: JUMPI 00001b03: PUSH1 0x40 00001b05: DUP4 00001b06: ADD 00001b07: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b1c: PUSH2 0x1b24 00001b1f: DUP3 00001b20: PUSH2 0x276b 00001b23: JUMP 00001b24: JUMPDEST 00001b25: AND 00001b26: PUSH2 0x1b5f 00001b29: JUMPI 00001b2a: POP 00001b2b: DUP6 00001b2c: CALLVALUE 00001b2d: SUB 00001b2e: PUSH2 0x1b37 00001b31: JUMPI 00001b32: JUMPDEST 00001b33: PUSH2 0x1980 00001b36: JUMP 00001b37: JUMPDEST 00001b38: PUSH32 0x85cf0a3500000000000000000000000000000000000000000000000000000000 00001b59: PUSH0 00001b5a: MSTORE 00001b5b: PUSH1 0x04 00001b5d: PUSH0 00001b5e: REVERT 00001b5f: JUMPDEST 00001b60: CALLVALUE 00001b61: PUSH2 0x1b37 00001b64: JUMPI 00001b65: DUP7 00001b66: PUSH2 0x1b71 00001b69: PUSH2 0x1b32 00001b6c: SWAP3 00001b6d: PUSH2 0x276b 00001b70: JUMP 00001b71: JUMPDEST 00001b72: DUP6 00001b73: CALLDATALOAD 00001b74: SWAP1 00001b75: PUSH2 0x290a 00001b78: JUMP 00001b79: JUMPDEST 00001b7a: CALLVALUE 00001b7b: PUSH2 0x1b37 00001b7e: JUMPI 00001b7f: PUSH2 0x1b32 00001b82: DUP7 00001b83: PUSH2 0x1b8e 00001b86: PUSH1 0x60 00001b88: DUP7 00001b89: ADD 00001b8a: PUSH2 0x276b 00001b8d: JUMP 00001b8e: JUMPDEST 00001b8f: PUSH1 0x20 00001b91: DUP7 00001b92: ADD 00001b93: CALLDATALOAD 00001b94: SWAP1 00001b95: PUSH2 0x290a 00001b98: JUMP 00001b99: JUMPDEST 00001b9a: CALLVALUE 00001b9b: ISZERO 00001b9c: PUSH2 0x197a 00001b9f: JUMPI 00001ba0: PUSH32 0x85cf0a3500000000000000000000000000000000000000000000000000000000 00001bc1: PUSH0 00001bc2: MSTORE 00001bc3: PUSH1 0x04 00001bc5: PUSH0 00001bc6: REVERT 00001bc7: JUMPDEST 00001bc8: PUSH2 0x1be2 00001bcb: DUP7 00001bcc: PUSH2 0x1bd7 00001bcf: PUSH1 0x60 00001bd1: DUP7 00001bd2: ADD 00001bd3: PUSH2 0x276b 00001bd6: JUMP 00001bd7: JUMPDEST 00001bd8: PUSH1 0x20 00001bda: DUP7 00001bdb: ADD 00001bdc: CALLDATALOAD 00001bdd: SWAP1 00001bde: PUSH2 0x2bec 00001be1: JUMP 00001be2: JUMPDEST 00001be3: PUSH2 0x197a 00001be6: JUMP 00001be7: JUMPDEST 00001be8: PUSH32 0x098fb56100000000000000000000000000000000000000000000000000000000 00001c09: PUSH0 00001c0a: MSTORE 00001c0b: PUSH1 0x04 00001c0d: PUSH0 00001c0e: REVERT 00001c0f: JUMPDEST 00001c10: PUSH32 0x203d82d800000000000000000000000000000000000000000000000000000000 00001c31: PUSH0 00001c32: MSTORE 00001c33: PUSH1 0x04 00001c35: PUSH0 00001c36: REVERT 00001c37: JUMPDEST 00001c38: CALLVALUE 00001c39: PUSH2 0x185f 00001c3c: JUMPI 00001c3d: PUSH1 0x60 00001c3f: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc 00001c60: CALLDATASIZE 00001c61: ADD 00001c62: SLT 00001c63: PUSH2 0x185f 00001c66: JUMPI 00001c67: PUSH2 0x1c6e 00001c6a: PUSH2 0x25e9 00001c6d: JUMP 00001c6e: JUMPDEST 00001c6f: PUSH1 0x44 00001c71: CALLDATALOAD 00001c72: PUSH8 0xffffffffffffffff 00001c7b: DUP2 00001c7c: GT 00001c7d: PUSH2 0x185f 00001c80: JUMPI 00001c81: PUSH1 0x20 00001c83: SWAP2 00001c84: PUSH32 0x6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b 00001ca5: PUSH2 0x1cb5 00001ca8: PUSH2 0x1d2f 00001cab: SWAP4 00001cac: CALLDATASIZE 00001cad: SWAP1 00001cae: PUSH1 0x04 00001cb0: ADD 00001cb1: PUSH2 0x2684 00001cb4: JUMP 00001cb5: JUMPDEST 00001cb6: PUSH1 0x40 00001cb8: MLOAD 00001cb9: DUP7 00001cba: DUP2 00001cbb: ADD 00001cbc: SWAP1 00001cbd: PUSH32 0x6dc2a7b300000000000000000000000000000000000000000000000000000000 00001cde: DUP3 00001cdf: MSTORE 00001ce0: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 00001d01: CALLER 00001d02: PUSH1 0x60 00001d04: SHL 00001d05: AND 00001d06: PUSH1 0x24 00001d08: DUP3 00001d09: ADD 00001d0a: MSTORE 00001d0b: TIMESTAMP 00001d0c: PUSH1 0x38 00001d0e: DUP3 00001d0f: ADD 00001d10: MSTORE 00001d11: PUSH1 0x38 00001d13: DUP2 00001d14: MSTORE 00001d15: PUSH2 0x1d1f 00001d18: PUSH1 0x58 00001d1a: DUP3 00001d1b: PUSH2 0x27ed 00001d1e: JUMP 00001d1f: JUMPDEST 00001d20: MLOAD 00001d21: SWAP1 00001d22: KECCAK256 00001d23: SWAP5 00001d24: DUP6 00001d25: SWAP5 00001d26: DUP6 00001d27: PUSH1 0x24 00001d29: CALLDATALOAD 00001d2a: SWAP2 00001d2b: PUSH2 0x2c96 00001d2e: JUMP 00001d2f: JUMPDEST 00001d30: PUSH2 0x1d44 00001d33: PUSH1 0x40 00001d35: MLOAD 00001d36: SWAP3 00001d37: DUP4 00001d38: SWAP3 00001d39: DUP9 00001d3a: DUP5 00001d3b: MSTORE 00001d3c: DUP9 00001d3d: DUP5 00001d3e: ADD 00001d3f: SWAP2 00001d40: PUSH2 0x285b 00001d43: JUMP 00001d44: JUMPDEST 00001d45: SUB 00001d46: SWAP1 00001d47: LOG2 00001d48: PUSH1 0x40 00001d4a: MLOAD 00001d4b: SWAP1 00001d4c: DUP2 00001d4d: MSTORE 00001d4e: RETURN 00001d4f: JUMPDEST 00001d50: CALLVALUE 00001d51: PUSH2 0x185f 00001d54: JUMPI 00001d55: PUSH1 0x60 00001d57: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc 00001d78: CALLDATASIZE 00001d79: ADD 00001d7a: SLT 00001d7b: PUSH2 0x185f 00001d7e: JUMPI 00001d7f: PUSH2 0x1d86 00001d82: PUSH2 0x25e9 00001d85: JUMP 00001d86: JUMPDEST 00001d87: PUSH2 0x1d8e 00001d8a: PUSH2 0x260c 00001d8d: JUMP 00001d8e: JUMPDEST 00001d8f: SWAP1 00001d90: PUSH8 0xedcaa89a82293940 00001d99: PUSH1 0x34 00001d9b: MSTORE 00001d9c: PUSH1 0x28 00001d9e: MSTORE 00001d9f: PUSH1 0x14 00001da1: MSTORE 00001da2: PUSH1 0x44 00001da4: CALLDATALOAD 00001da5: PUSH0 00001da6: MSTORE 00001da7: PUSH1 0x20 00001da9: PUSH1 0x54 00001dab: PUSH0 00001dac: KECCAK256 00001dad: SLOAD 00001dae: PUSH0 00001daf: PUSH1 0x34 00001db1: MSTORE 00001db2: PUSH1 0x40 00001db4: MLOAD 00001db5: SWAP1 00001db6: DUP2 00001db7: MSTORE 00001db8: RETURN 00001db9: JUMPDEST 00001dba: CALLVALUE 00001dbb: PUSH2 0x185f 00001dbe: JUMPI 00001dbf: PUSH1 0x40 00001dc1: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc 00001de2: CALLDATASIZE 00001de3: ADD 00001de4: SLT 00001de5: PUSH2 0x185f 00001de8: JUMPI 00001de9: PUSH2 0x1df0 00001dec: PUSH2 0x25e9 00001def: JUMP 00001df0: JUMPDEST 00001df1: PUSH1 0x24 00001df3: CALLDATALOAD 00001df4: SWAP1 00001df5: DUP2 00001df6: ISZERO 00001df7: ISZERO 00001df8: DUP1 00001df9: SWAP3 00001dfa: SUB 00001dfb: PUSH2 0x185f 00001dfe: JUMPI 00001dff: PUSH8 0xedcaa89a82293940 00001e08: PUSH1 0x20 00001e0a: MSTORE 00001e0b: CALLER 00001e0c: PUSH1 0x14 00001e0e: MSTORE 00001e0f: PUSH0 00001e10: MSTORE 00001e11: DUP1 00001e12: PUSH1 0x34 00001e14: PUSH1 0x0c 00001e16: KECCAK256 00001e17: SSTORE 00001e18: PUSH1 0x20 00001e1a: MSTORE 00001e1b: PUSH1 0x0c 00001e1d: MLOAD 00001e1e: PUSH1 0x60 00001e20: SHR 00001e21: CALLER 00001e22: PUSH32 0xceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267 00001e43: PUSH1 0x20 00001e45: DUP1 00001e46: LOG3 00001e47: PUSH1 0x01 00001e49: PUSH0 00001e4a: MSTORE 00001e4b: PUSH1 0x20 00001e4d: PUSH0 00001e4e: RETURN 00001e4f: JUMPDEST 00001e50: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc 00001e71: CALLDATASIZE 00001e72: ADD 00001e73: PUSH2 0x0160 00001e76: DUP2 00001e77: SLT 00001e78: PUSH2 0x185f 00001e7b: JUMPI 00001e7c: PUSH1 0xa0 00001e7e: SGT 00001e7f: PUSH2 0x185f 00001e82: JUMPI 00001e83: PUSH1 0xa4 00001e85: CALLDATALOAD 00001e86: PUSH1 0xc4 00001e88: CALLDATALOAD 00001e89: PUSH2 0x0124 00001e8c: CALLDATALOAD 00001e8d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ea2: DUP2 00001ea3: AND 00001ea4: DUP2 00001ea5: SUB 00001ea6: PUSH2 0x185f 00001ea9: JUMPI 00001eaa: PUSH9 0x929eee149b4bd21268 00001eb4: TLOAD 00001eb5: PUSH2 0x18e0 00001eb8: JUMPI 00001eb9: ADDRESS 00001eba: PUSH9 0x929eee149b4bd21268 00001ec4: TSTORE 00001ec5: TIMESTAMP 00001ec6: PUSH2 0x0144 00001ec9: CALLDATALOAD 00001eca: LT 00001ecb: PUSH2 0x1c0f 00001ece: JUMPI 00001ecf: PUSH1 0xa0 00001ed1: PUSH1 0x40 00001ed3: MLOAD 00001ed4: DUP2 00001ed5: PUSH1 0x04 00001ed7: DUP3 00001ed8: CALLDATACOPY 00001ed9: KECCAK256 00001eda: DUP1 00001edb: PUSH0 00001edc: MSTORE 00001edd: PUSH0 00001ede: PUSH1 0x20 00001ee0: MSTORE 00001ee1: PUSH1 0x40 00001ee3: PUSH0 00001ee4: KECCAK256 00001ee5: SWAP1 00001ee6: DUP2 00001ee7: SLOAD 00001ee8: SWAP2 00001ee9: PUSH14 0xffffffffffffffffffffffffffff 00001ef8: DUP1 00001ef9: DUP5 00001efa: AND 00001efb: SWAP4 00001efc: PUSH1 0x70 00001efe: SHR 00001eff: AND 00001f00: PUSH1 0x04 00001f02: DUP3 00001f03: ADD 00001f04: SWAP4 00001f05: DUP5 00001f06: SLOAD 00001f07: DUP1 00001f08: ISZERO 00001f09: ISZERO 00001f0a: PUSH0 00001f0b: EQ 00001f0c: PUSH2 0x2394 00001f0f: JUMPI 00001f10: POP 00001f11: PUSH2 0x1f1c 00001f14: DUP3 00001f15: DUP3 00001f16: DUP7 00001f17: DUP7 00001f18: PUSH2 0x2a64 00001f1b: JUMP 00001f1c: JUMPDEST 00001f1d: SWAP2 00001f1e: DUP6 00001f1f: SLOAD 00001f20: SWAP8 00001f21: JUMPDEST 00001f22: DUP9 00001f23: ISZERO 00001f24: SWAP1 00001f25: DUP2 00001f26: ISZERO 00001f27: PUSH2 0x231e 00001f2a: JUMPI 00001f2b: SWAP10 00001f2c: SWAP9 00001f2d: JUMPDEST 00001f2e: PUSH2 0x1f35 00001f31: PUSH2 0x2725 00001f34: JUMP 00001f35: JUMPDEST 00001f36: SWAP1 00001f37: PUSH2 0x1f44 00001f3a: DUP12 00001f3b: PUSH1 0x04 00001f3d: CALLDATALOAD 00001f3e: DUP1 00001f3f: SWAP5 00001f40: PUSH2 0x2bec 00001f43: JUMP 00001f44: JUMPDEST 00001f45: DUP1 00001f46: PUSH2 0x22f0 00001f49: JUMPI 00001f4a: JUMPDEST 00001f4b: ISZERO 00001f4c: PUSH2 0x2288 00001f4f: JUMPI 00001f50: JUMPDEST 00001f51: PUSH2 0x1f58 00001f54: PUSH2 0x2748 00001f57: JUMP 00001f58: JUMPDEST 00001f59: SWAP3 00001f5a: PUSH2 0x1f67 00001f5d: DUP14 00001f5e: PUSH1 0x24 00001f60: CALLDATALOAD 00001f61: DUP1 00001f62: SWAP7 00001f63: PUSH2 0x2bec 00001f66: JUMP 00001f67: JUMPDEST 00001f68: ISZERO 00001f69: PUSH2 0x2276 00001f6c: JUMPI 00001f6d: JUMPDEST 00001f6e: ISZERO 00001f6f: PUSH2 0x2226 00001f72: JUMPI 00001f73: POP 00001f74: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f89: PUSH2 0x1f90 00001f8c: PUSH2 0x2725 00001f8f: JUMP 00001f90: JUMPDEST 00001f91: AND 00001f92: ISZERO 00001f93: PUSH2 0x21f8 00001f96: JUMPI 00001f97: JUMPDEST 00001f98: PUSH2 0x1f9f 00001f9b: PUSH2 0x2725 00001f9e: JUMP 00001f9f: JUMPDEST 00001fa0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001fb5: DUP1 00001fb6: PUSH2 0x1fbd 00001fb9: PUSH2 0x2748 00001fbc: JUMP 00001fbd: JUMPDEST 00001fbe: AND 00001fbf: SWAP2 00001fc0: AND 00001fc1: LT 00001fc2: SWAP2 00001fc3: DUP3 00001fc4: ISZERO 00001fc5: PUSH2 0x2191 00001fc8: JUMPI 00001fc9: JUMPDEST 00001fca: POP 00001fcb: POP 00001fcc: ISZERO 00001fcd: PUSH2 0x2169 00001fd0: JUMPI 00001fd1: PUSH2 0x2710 00001fd4: PUSH12 0xffffffffffffffffffffffff 00001fe1: PUSH2 0x1fe8 00001fe4: PUSH2 0x2799 00001fe7: JUMP 00001fe8: JUMPDEST 00001fe9: AND 00001fea: GT 00001feb: PUSH2 0x2141 00001fee: JUMPI 00001fef: PUSH2 0x1ffb 00001ff2: PUSH2 0x0b79 00001ff5: DUP11 00001ff6: DUP11 00001ff7: PUSH2 0x27cd 00001ffa: JUMP 00001ffb: JUMPDEST 00001ffc: SWAP2 00001ffd: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18 0000201e: DUP4 0000201f: ADD 00002020: SWAP3 00002021: DUP1 00002022: DUP5 00002023: GT 00002024: PUSH2 0x2114 00002027: JUMPI 00002028: DUP4 00002029: SWAP8 0000202a: DUP5 0000202b: ISZERO 0000202c: PUSH2 0x20ec 0000202f: JUMPI 00002030: PUSH2 0x2040 00002033: PUSH2 0x205e 00002036: SWAP6 00002037: DUP10 00002038: PUSH2 0x0d8b 0000203b: SWAP13 0000203c: PUSH2 0x2c96 0000203f: JUMP 00002040: JUMPDEST 00002041: SSTORE 00002042: JUMPDEST 00002043: PUSH2 0x204c 00002046: DUP2 00002047: DUP11 00002048: PUSH2 0x278c 0000204b: JUMP 0000204c: JUMPDEST 0000204d: PUSH2 0x2056 00002050: DUP4 00002051: DUP13 00002052: PUSH2 0x278c 00002055: JUMP 00002056: JUMPDEST 00002057: SWAP1 00002058: DUP8 00002059: DUP8 0000205a: PUSH2 0x2cf5 0000205d: JUMP 0000205e: JUMPDEST 0000205f: PUSH2 0x20c0 00002062: JUMPI 00002063: JUMPDEST 00002064: POP 00002065: PUSH1 0x40 00002067: MLOAD 00002068: SWAP1 00002069: DUP5 0000206a: DUP3 0000206b: MSTORE 0000206c: DUP6 0000206d: PUSH1 0x20 0000206f: DUP4 00002070: ADD 00002071: MSTORE 00002072: PUSH32 0x5a3e96f397e68b20a43c25f664b628805b877334dadfcc925c6c1a3ad4340458 00002093: PUSH1 0x40 00002095: CALLER 00002096: SWAP4 00002097: LOG3 00002098: PUSH0 00002099: PUSH9 0x929eee149b4bd21268 000020a3: TSTORE 000020a4: PUSH1 0x40 000020a6: MLOAD 000020a7: SWAP4 000020a8: DUP5 000020a9: SWAP4 000020aa: DUP5 000020ab: PUSH1 0x40 000020ad: SWAP2 000020ae: SWAP5 000020af: SWAP4 000020b0: SWAP3 000020b1: PUSH1 0x60 000020b3: DUP3 000020b4: ADD 000020b5: SWAP6 000020b6: DUP3 000020b7: MSTORE 000020b8: PUSH1 0x20 000020ba: DUP3 000020bb: ADD 000020bc: MSTORE 000020bd: ADD 000020be: MSTORE 000020bf: JUMP 000020c0: JUMPDEST 000020c1: PUSH1 0x03 000020c3: PUSH2 0x20e3 000020c6: DUP3 000020c7: SLOAD 000020c8: PUSH14 0xffffffffffffffffffffffffffff 000020d7: DUP1 000020d8: DUP3 000020d9: PUSH1 0x70 000020db: SHR 000020dc: AND 000020dd: SWAP2 000020de: AND 000020df: PUSH2 0x27cd 000020e2: JUMP 000020e3: JUMPDEST 000020e4: SWAP2 000020e5: ADD 000020e6: SSTORE 000020e7: DUP6 000020e8: PUSH2 0x2063 000020eb: JUMP 000020ec: JUMPDEST 000020ed: PUSH32 0xd226f9d400000000000000000000000000000000000000000000000000000000 0000210e: PUSH0 0000210f: MSTORE 00002110: PUSH1 0x04 00002112: PUSH0 00002113: REVERT 00002114: JUMPDEST 00002115: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00002136: PUSH0 00002137: MSTORE 00002138: PUSH1 0x11 0000213a: PUSH1 0x04 0000213c: MSTORE 0000213d: PUSH1 0x24 0000213f: PUSH0 00002140: REVERT 00002141: JUMPDEST 00002142: PUSH32 0xda7459b700000000000000000000000000000000000000000000000000000000 00002163: PUSH0 00002164: MSTORE 00002165: PUSH1 0x04 00002167: PUSH0 00002168: REVERT 00002169: JUMPDEST 0000216a: PUSH32 0x0ab6dd1200000000000000000000000000000000000000000000000000000000 0000218b: PUSH0 0000218c: MSTORE 0000218d: PUSH1 0x04 0000218f: PUSH0 00002190: REVERT 00002191: JUMPDEST 00002192: SWAP1 00002193: SWAP2 00002194: POP 00002195: PUSH2 0x219c 00002198: PUSH2 0x2725 0000219b: JUMP 0000219c: JUMPDEST 0000219d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000021b2: DUP1 000021b3: PUSH2 0x21ba 000021b6: PUSH2 0x2748 000021b9: JUMP 000021ba: JUMPDEST 000021bb: AND 000021bc: SWAP2 000021bd: AND 000021be: EQ 000021bf: SWAP2 000021c0: DUP3 000021c1: PUSH2 0x21ee 000021c4: JUMPI 000021c5: JUMPDEST 000021c6: DUP3 000021c7: PUSH2 0x21e4 000021ca: JUMPI 000021cb: JUMPDEST 000021cc: DUP3 000021cd: PUSH2 0x21da 000021d0: JUMPI 000021d1: JUMPDEST 000021d2: POP 000021d3: POP 000021d4: DUP11 000021d5: DUP1 000021d6: PUSH2 0x1fc9 000021d9: JUMP 000021da: JUMPDEST 000021db: LT 000021dc: SWAP1 000021dd: POP 000021de: DUP11 000021df: DUP1 000021e0: PUSH2 0x21d1 000021e3: JUMP 000021e4: JUMPDEST 000021e5: DUP2 000021e6: ISZERO 000021e7: ISZERO 000021e8: SWAP3 000021e9: POP 000021ea: PUSH2 0x21cb 000021ed: JUMP 000021ee: JUMPDEST 000021ef: DUP1 000021f0: ISZERO 000021f1: ISZERO 000021f2: SWAP3 000021f3: POP 000021f4: PUSH2 0x21c5 000021f7: JUMP 000021f8: JUMPDEST 000021f9: DUP1 000021fa: ISZERO 000021fb: PUSH2 0x1f97 000021fe: JUMPI 000021ff: PUSH32 0x0ab6dd1200000000000000000000000000000000000000000000000000000000 00002220: PUSH0 00002221: MSTORE 00002222: PUSH1 0x04 00002224: PUSH0 00002225: REVERT 00002226: JUMPDEST 00002227: SWAP8 00002228: SWAP9 00002229: SWAP4 0000222a: SWAP2 0000222b: POP 0000222c: POP 0000222d: PUSH2 0x2242 00002230: DUP3 00002231: PUSH2 0x223b 00002234: DUP4 00002235: DUP11 00002236: DUP14 00002237: PUSH2 0x2bc9 0000223a: JUMP 0000223b: JUMPDEST 0000223c: SWAP9 0000223d: DUP13 0000223e: PUSH2 0x2bc9 00002241: JUMP 00002242: JUMPDEST 00002243: DUP8 00002244: DUP2 00002245: LT 00002246: SWAP1 00002247: DUP9 00002248: XOR 00002249: MUL 0000224a: DUP1 0000224b: DUP9 0000224c: XOR 0000224d: SWAP8 0000224e: EQ 0000224f: PUSH2 0x20ec 00002252: JUMPI 00002253: PUSH2 0x0d8b 00002256: SWAP8 00002257: PUSH2 0x2264 0000225a: DUP9 0000225b: DUP9 0000225c: PUSH2 0x205e 0000225f: SWAP7 00002260: PUSH2 0x2c29 00002263: JUMP 00002264: JUMPDEST 00002265: PUSH2 0x226f 00002268: DUP9 00002269: DUP3 0000226a: SLOAD 0000226b: PUSH2 0x278c 0000226e: JUMP 0000226f: JUMPDEST 00002270: SWAP1 00002271: SSTORE 00002272: PUSH2 0x2042 00002275: JUMP 00002276: JUMPDEST 00002277: PUSH2 0x2283 0000227a: DUP14 0000227b: DUP6 0000227c: PUSH2 0x07df 0000227f: PUSH2 0x2748 00002282: JUMP 00002283: JUMPDEST 00002284: PUSH2 0x1f6d 00002287: JUMP 00002288: JUMPDEST 00002289: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000229e: PUSH2 0x22a5 000022a1: PUSH2 0x2725 000022a4: JUMP 000022a5: JUMPDEST 000022a6: AND 000022a7: PUSH2 0x22d9 000022aa: JUMPI 000022ab: CALLVALUE 000022ac: DUP12 000022ad: EQ 000022ae: PUSH2 0x1f50 000022b1: JUMPI 000022b2: PUSH32 0x85cf0a3500000000000000000000000000000000000000000000000000000000 000022d3: PUSH0 000022d4: MSTORE 000022d5: PUSH1 0x04 000022d7: PUSH0 000022d8: REVERT 000022d9: JUMPDEST 000022da: CALLVALUE 000022db: PUSH2 0x1b37 000022de: JUMPI 000022df: PUSH2 0x22eb 000022e2: DUP12 000022e3: DUP4 000022e4: PUSH2 0x07df 000022e7: PUSH2 0x2725 000022ea: JUMP 000022eb: JUMPDEST 000022ec: PUSH2 0x1f50 000022ef: JUMP 000022f0: JUMPDEST 000022f1: CALLVALUE 000022f2: ISZERO 000022f3: PUSH2 0x1f4a 000022f6: JUMPI 000022f7: PUSH32 0x85cf0a3500000000000000000000000000000000000000000000000000000000 00002318: PUSH0 00002319: MSTORE 0000231a: PUSH1 0x04 0000231c: PUSH0 0000231d: REVERT 0000231e: JUMPDEST 0000231f: PUSH2 0x2329 00002322: DUP5 00002323: DUP5 00002324: DUP14 00002325: PUSH2 0x2bc9 00002328: JUMP 00002329: JUMPDEST 0000232a: SWAP1 0000232b: DUP1 0000232c: DUP3 0000232d: GT 0000232e: PUSH2 0x2343 00002331: JUMPI 00002332: POP 00002333: PUSH2 0x0104 00002336: CALLDATALOAD 00002337: DUP2 00002338: LT 00002339: PUSH2 0x18af 0000233c: JUMPI 0000233d: SWAP10 0000233e: SWAP9 0000233f: PUSH2 0x1f2d 00002342: JUMP 00002343: JUMPDEST 00002344: SWAP1 00002345: POP 00002346: PUSH2 0x2350 00002349: DUP4 0000234a: DUP6 0000234b: DUP4 0000234c: PUSH2 0x2bc9 0000234f: JUMP 00002350: JUMPDEST 00002351: SWAP11 00002352: DUP12 00002353: GT 00002354: PUSH2 0x2367 00002357: JUMPI 00002358: PUSH1 0xe4 0000235a: CALLDATALOAD 0000235b: DUP12 0000235c: LT 0000235d: PUSH2 0x18af 00002360: JUMPI 00002361: SWAP10 00002362: SWAP9 00002363: PUSH2 0x1f2d 00002366: JUMP 00002367: JUMPDEST 00002368: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00002389: PUSH0 0000238a: MSTORE 0000238b: PUSH1 0x01 0000238d: PUSH1 0x04 0000238f: MSTORE 00002390: PUSH1 0x24 00002392: PUSH0 00002393: REVERT 00002394: JUMPDEST 00002395: SWAP7 00002396: SWAP2 00002397: PUSH1 0x20 00002399: SLOAD 0000239a: ISZERO 0000239b: ISZERO 0000239c: SWAP3 0000239d: PUSH2 0x1f21 000023a0: JUMP 000023a1: JUMPDEST 000023a2: CALLVALUE 000023a3: PUSH2 0x185f 000023a6: JUMPI 000023a7: PUSH2 0x23af 000023aa: CALLDATASIZE 000023ab: PUSH2 0x262f 000023ae: JUMP 000023af: JUMPDEST 000023b0: SWAP1 000023b1: SWAP2 000023b2: PUSH8 0xedcaa89a82293940 000023bb: PUSH1 0x34 000023bd: MSTORE 000023be: CALLER 000023bf: PUSH1 0x28 000023c1: MSTORE 000023c2: PUSH1 0x14 000023c4: MSTORE 000023c5: DUP2 000023c6: PUSH0 000023c7: MSTORE 000023c8: DUP1 000023c9: PUSH1 0x54 000023cb: PUSH0 000023cc: KECCAK256 000023cd: SSTORE 000023ce: PUSH0 000023cf: MSTORE 000023d0: PUSH1 0x20 000023d2: MLOAD 000023d3: PUSH1 0x60 000023d5: SHR 000023d6: CALLER 000023d7: PUSH32 0xb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a7 000023f8: PUSH1 0x20 000023fa: PUSH0 000023fb: LOG4 000023fc: PUSH1 0x01 000023fe: PUSH0 000023ff: MSTORE 00002400: PUSH1 0x20 00002402: PUSH0 00002403: RETURN 00002404: JUMPDEST 00002405: PUSH2 0x240d 00002408: CALLDATASIZE 00002409: PUSH2 0x262f 0000240c: JUMP 0000240d: JUMPDEST 0000240e: SWAP2 0000240f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002424: DUP2 00002425: AND 00002426: ISZERO 00002427: DUP1 00002428: ISZERO 00002429: PUSH2 0x245f 0000242c: JUMPI 0000242d: DUP4 0000242e: JUMPDEST 0000242f: CALLVALUE 00002430: SUB 00002431: PUSH2 0x1b37 00002434: JUMPI 00002435: ISZERO 00002436: PUSH2 0x244f 00002439: JUMPI 0000243a: JUMPDEST 0000243b: CALLER 0000243c: PUSH0 0000243d: MSTORE 0000243e: PUSH1 0x20 00002440: MSTORE 00002441: PUSH1 0x40 00002443: MSTORE 00002444: PUSH1 0x60 00002446: PUSH0 00002447: KECCAK256 00002448: SWAP1 00002449: DUP2 0000244a: TLOAD 0000244b: ADD 0000244c: SWAP1 0000244d: TSTORE 0000244e: STOP 0000244f: JUMPDEST 00002450: PUSH2 0x245a 00002453: DUP4 00002454: DUP4 00002455: DUP4 00002456: PUSH2 0x290a 00002459: JUMP 0000245a: JUMPDEST 0000245b: PUSH2 0x243a 0000245e: JUMP 0000245f: JUMPDEST 00002460: PUSH0 00002461: PUSH2 0x242e 00002464: JUMP 00002465: JUMPDEST 00002466: CALLVALUE 00002467: PUSH2 0x185f 0000246a: JUMPI 0000246b: PUSH2 0x2473 0000246e: CALLDATASIZE 0000246f: PUSH2 0x262f 00002472: JUMP 00002473: JUMPDEST 00002474: SWAP1 00002475: SWAP2 00002476: PUSH8 0xedcaa89a82293940 0000247f: PUSH1 0x20 00002481: MSTORE 00002482: CALLER 00002483: PUSH1 0x14 00002485: MSTORE 00002486: DUP3 00002487: PUSH0 00002488: MSTORE 00002489: PUSH1 0x40 0000248b: PUSH0 0000248c: KECCAK256 0000248d: DUP1 0000248e: SLOAD 0000248f: DUP1 00002490: DUP5 00002491: GT 00002492: PUSH2 0x250c 00002495: JUMPI 00002496: DUP4 00002497: SWAP1 00002498: SUB 00002499: SWAP1 0000249a: SSTORE 0000249b: DUP1 0000249c: PUSH1 0x14 0000249e: MSTORE 0000249f: DUP3 000024a0: PUSH0 000024a1: MSTORE 000024a2: PUSH1 0x40 000024a4: PUSH0 000024a5: KECCAK256 000024a6: SWAP2 000024a7: DUP3 000024a8: SLOAD 000024a9: DUP2 000024aa: DUP2 000024ab: ADD 000024ac: SWAP1 000024ad: DUP2 000024ae: LT 000024af: PUSH2 0x24ff 000024b2: JUMPI 000024b3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024c8: SWAP4 000024c9: SSTORE 000024ca: CALLER 000024cb: PUSH0 000024cc: MSTORE 000024cd: PUSH1 0x20 000024cf: MSTORE 000024d0: AND 000024d1: CALLER 000024d2: PUSH32 0x1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859 000024f3: PUSH1 0x40 000024f5: PUSH0 000024f6: LOG4 000024f7: PUSH1 0x01 000024f9: PUSH0 000024fa: MSTORE 000024fb: PUSH1 0x20 000024fd: PUSH0 000024fe: RETURN 000024ff: JUMPDEST 00002500: PUSH4 0x89560ca1 00002505: PUSH0 00002506: MSTORE 00002507: PUSH1 0x04 00002509: PUSH1 0x1c 0000250b: REVERT 0000250c: JUMPDEST 0000250d: PUSH4 0xf4d678b8 00002512: PUSH0 00002513: MSTORE 00002514: PUSH1 0x04 00002516: PUSH1 0x1c 00002518: REVERT 00002519: JUMPDEST 0000251a: CALLVALUE 0000251b: PUSH2 0x185f 0000251e: JUMPI 0000251f: PUSH1 0x20 00002521: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc 00002542: CALLDATASIZE 00002543: ADD 00002544: SLT 00002545: PUSH2 0x185f 00002548: JUMPI 00002549: PUSH1 0x04 0000254b: CALLDATALOAD 0000254c: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 0000256d: DUP2 0000256e: AND 0000256f: DUP2 00002570: SUB 00002571: PUSH2 0x185f 00002574: JUMPI 00002575: PUSH1 0x20 00002577: SWAP1 00002578: PUSH1 0xe0 0000257a: SHR 0000257b: PUSH1 0x40 0000257d: MLOAD 0000257e: SWAP1 0000257f: PUSH4 0x01ffc9a7 00002584: PUSH4 0x0f632fb3 00002589: DUP3 0000258a: EQ 0000258b: SWAP2 0000258c: EQ 0000258d: OR 0000258e: ISZERO 0000258f: ISZERO 00002590: DUP2 00002591: MSTORE 00002592: RETURN 00002593: JUMPDEST 00002594: CALLVALUE 00002595: PUSH2 0x185f 00002598: JUMPI 00002599: PUSH1 0x40 0000259b: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc 000025bc: CALLDATASIZE 000025bd: ADD 000025be: SLT 000025bf: PUSH2 0x185f 000025c2: JUMPI 000025c3: PUSH1 0x20 000025c5: SWAP1 000025c6: PUSH2 0x25cd 000025c9: PUSH2 0x25e9 000025cc: JUMP 000025cd: JUMPDEST 000025ce: PUSH8 0xedcaa89a82293940 000025d7: DUP4 000025d8: MSTORE 000025d9: PUSH1 0x14 000025db: MSTORE 000025dc: PUSH1 0x24 000025de: CALLDATALOAD 000025df: PUSH0 000025e0: MSTORE 000025e1: PUSH1 0x40 000025e3: PUSH0 000025e4: KECCAK256 000025e5: SLOAD 000025e6: DUP2 000025e7: MSTORE 000025e8: RETURN 000025e9: JUMPDEST 000025ea: PUSH1 0x04 000025ec: CALLDATALOAD 000025ed: SWAP1 000025ee: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002603: DUP3 00002604: AND 00002605: DUP3 00002606: SUB 00002607: PUSH2 0x185f 0000260a: JUMPI 0000260b: JUMP 0000260c: JUMPDEST 0000260d: PUSH1 0x24 0000260f: CALLDATALOAD 00002610: SWAP1 00002611: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002626: DUP3 00002627: AND 00002628: DUP3 00002629: SUB 0000262a: PUSH2 0x185f 0000262d: JUMPI 0000262e: JUMP 0000262f: JUMPDEST 00002630: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc 00002651: PUSH1 0x60 00002653: SWAP2 00002654: ADD 00002655: SLT 00002656: PUSH2 0x185f 00002659: JUMPI 0000265a: PUSH1 0x04 0000265c: CALLDATALOAD 0000265d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002672: DUP2 00002673: AND 00002674: DUP2 00002675: SUB 00002676: PUSH2 0x185f 00002679: JUMPI 0000267a: SWAP1 0000267b: PUSH1 0x24 0000267d: CALLDATALOAD 0000267e: SWAP1 0000267f: PUSH1 0x44 00002681: CALLDATALOAD 00002682: SWAP1 00002683: JUMP 00002684: JUMPDEST 00002685: SWAP2 00002686: DUP2 00002687: PUSH1 0x1f 00002689: DUP5 0000268a: ADD 0000268b: SLT 0000268c: ISZERO 0000268d: PUSH2 0x185f 00002690: JUMPI 00002691: DUP3 00002692: CALLDATALOAD 00002693: SWAP2 00002694: PUSH8 0xffffffffffffffff 0000269d: DUP4 0000269e: GT 0000269f: PUSH2 0x185f 000026a2: JUMPI 000026a3: PUSH1 0x20 000026a5: DUP4 000026a6: DUP2 000026a7: DUP7 000026a8: ADD 000026a9: SWAP6 000026aa: ADD 000026ab: ADD 000026ac: GT 000026ad: PUSH2 0x185f 000026b0: JUMPI 000026b1: JUMP 000026b2: JUMPDEST 000026b3: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc 000026d4: ADD 000026d5: PUSH2 0x0140 000026d8: DUP2 000026d9: SLT 000026da: PUSH2 0x185f 000026dd: JUMPI 000026de: PUSH1 0xa0 000026e0: SGT 000026e1: PUSH2 0x185f 000026e4: JUMPI 000026e5: PUSH1 0x04 000026e7: SWAP1 000026e8: PUSH1 0xa4 000026ea: CALLDATALOAD 000026eb: SWAP1 000026ec: PUSH1 0xc4 000026ee: CALLDATALOAD 000026ef: SWAP1 000026f0: PUSH1 0xe4 000026f2: CALLDATALOAD 000026f3: DUP1 000026f4: ISZERO 000026f5: ISZERO 000026f6: DUP2 000026f7: SUB 000026f8: PUSH2 0x185f 000026fb: JUMPI 000026fc: SWAP1 000026fd: PUSH2 0x0104 00002700: CALLDATALOAD 00002701: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002716: DUP2 00002717: AND 00002718: DUP2 00002719: SUB 0000271a: PUSH2 0x185f 0000271d: JUMPI 0000271e: SWAP1 0000271f: PUSH2 0x0124 00002722: CALLDATALOAD 00002723: SWAP1 00002724: JUMP 00002725: JUMPDEST 00002726: PUSH1 0x44 00002728: CALLDATALOAD 00002729: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000273e: DUP2 0000273f: AND 00002740: DUP2 00002741: SUB 00002742: PUSH2 0x185f 00002745: JUMPI 00002746: SWAP1 00002747: JUMP 00002748: JUMPDEST 00002749: PUSH1 0x64 0000274b: CALLDATALOAD 0000274c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002761: DUP2 00002762: AND 00002763: DUP2 00002764: SUB 00002765: PUSH2 0x185f 00002768: JUMPI 00002769: SWAP1 0000276a: JUMP 0000276b: JUMPDEST 0000276c: CALLDATALOAD 0000276d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002782: DUP2 00002783: AND 00002784: DUP2 00002785: SUB 00002786: PUSH2 0x185f 00002789: JUMPI 0000278a: SWAP1 0000278b: JUMP 0000278c: JUMPDEST 0000278d: SWAP2 0000278e: SWAP1 0000278f: DUP3 00002790: ADD 00002791: DUP1 00002792: SWAP3 00002793: GT 00002794: PUSH2 0x2114 00002797: JUMPI 00002798: JUMP 00002799: JUMPDEST 0000279a: PUSH1 0x84 0000279c: CALLDATALOAD 0000279d: PUSH12 0xffffffffffffffffffffffff 000027aa: DUP2 000027ab: AND 000027ac: DUP2 000027ad: SUB 000027ae: PUSH2 0x185f 000027b1: JUMPI 000027b2: SWAP1 000027b3: JUMP 000027b4: JUMPDEST 000027b5: CALLDATALOAD 000027b6: PUSH12 0xffffffffffffffffffffffff 000027c3: DUP2 000027c4: AND 000027c5: DUP2 000027c6: SUB 000027c7: PUSH2 0x185f 000027ca: JUMPI 000027cb: SWAP1 000027cc: JUMP 000027cd: JUMPDEST 000027ce: DUP2 000027cf: DUP2 000027d0: MUL 000027d1: SWAP3 000027d2: SWAP2 000027d3: DUP2 000027d4: ISZERO 000027d5: SWAP2 000027d6: DUP5 000027d7: DIV 000027d8: EQ 000027d9: OR 000027da: ISZERO 000027db: PUSH2 0x2114 000027de: JUMPI 000027df: JUMP 000027e0: JUMPDEST 000027e1: SWAP2 000027e2: SWAP1 000027e3: DUP3 000027e4: SUB 000027e5: SWAP2 000027e6: DUP3 000027e7: GT 000027e8: PUSH2 0x2114 000027eb: JUMPI 000027ec: JUMP 000027ed: JUMPDEST 000027ee: SWAP1 000027ef: PUSH1 0x1f 000027f1: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00002812: SWAP2 00002813: ADD 00002814: AND 00002815: DUP2 00002816: ADD 00002817: SWAP1 00002818: DUP2 00002819: LT 0000281a: PUSH8 0xffffffffffffffff 00002823: DUP3 00002824: GT 00002825: OR 00002826: PUSH2 0x282e 00002829: JUMPI 0000282a: PUSH1 0x40 0000282c: MSTORE 0000282d: JUMP 0000282e: JUMPDEST 0000282f: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00002850: PUSH0 00002851: MSTORE 00002852: PUSH1 0x41 00002854: PUSH1 0x04 00002856: MSTORE 00002857: PUSH1 0x24 00002859: PUSH0 0000285a: REVERT 0000285b: JUMPDEST 0000285c: PUSH1 0x1f 0000285e: DUP3 0000285f: PUSH1 0x20 00002861: SWAP5 00002862: SWAP4 00002863: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00002884: SWAP4 00002885: DUP2 00002886: DUP7 00002887: MSTORE 00002888: DUP7 00002889: DUP7 0000288a: ADD 0000288b: CALLDATACOPY 0000288c: PUSH0 0000288d: DUP6 0000288e: DUP3 0000288f: DUP7 00002890: ADD 00002891: ADD 00002892: MSTORE 00002893: ADD 00002894: AND 00002895: ADD 00002896: ADD 00002897: SWAP1 00002898: JUMP 00002899: JUMPDEST 0000289a: PUSH8 0xffffffffffffffff 000028a3: DUP2 000028a4: GT 000028a5: PUSH2 0x282e 000028a8: JUMPI 000028a9: PUSH1 0x05 000028ab: SHL 000028ac: PUSH1 0x20 000028ae: ADD 000028af: SWAP1 000028b0: JUMP 000028b1: JUMPDEST 000028b2: DUP1 000028b3: MLOAD 000028b4: DUP3 000028b5: LT 000028b6: ISZERO 000028b7: PUSH2 0x28c5 000028ba: JUMPI 000028bb: PUSH1 0x20 000028bd: SWAP2 000028be: PUSH1 0x05 000028c0: SHL 000028c1: ADD 000028c2: ADD 000028c3: SWAP1 000028c4: JUMP 000028c5: JUMPDEST 000028c6: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000028e7: PUSH0 000028e8: MSTORE 000028e9: PUSH1 0x32 000028eb: PUSH1 0x04 000028ed: MSTORE 000028ee: PUSH1 0x24 000028f0: PUSH0 000028f1: REVERT 000028f2: JUMPDEST 000028f3: SWAP1 000028f4: DUP2 000028f5: PUSH1 0x20 000028f7: SWAP2 000028f8: SUB 000028f9: SLT 000028fa: PUSH2 0x185f 000028fd: JUMPI 000028fe: MLOAD 000028ff: DUP1 00002900: ISZERO 00002901: ISZERO 00002902: DUP2 00002903: SUB 00002904: PUSH2 0x185f 00002907: JUMPI 00002908: SWAP1 00002909: JUMP 0000290a: JUMPDEST 0000290b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002920: DUP2 00002921: AND 00002922: ADDRESS 00002923: DUP2 00002924: SUB 00002925: PUSH2 0x2936 00002928: JUMPI 00002929: POP 0000292a: POP 0000292b: SWAP1 0000292c: PUSH2 0x2934 0000292f: SWAP2 00002930: PUSH2 0x30ef 00002933: JUMP 00002934: JUMPDEST 00002935: JUMP 00002936: JUMPDEST 00002937: SWAP1 00002938: SWAP2 00002939: DUP1 0000293a: PUSH2 0x29a7 0000293d: JUMPI 0000293e: POP 0000293f: POP 00002940: PUSH1 0x40 00002942: MLOAD 00002943: SWAP2 00002944: PUSH1 0x60 00002946: MSTORE 00002947: ADDRESS 00002948: PUSH1 0x40 0000294a: MSTORE 0000294b: CALLER 0000294c: PUSH1 0x60 0000294e: SHL 0000294f: PUSH1 0x2c 00002951: MSTORE 00002952: PUSH16 0x23b872dd000000000000000000000000 00002963: PUSH1 0x0c 00002965: MSTORE 00002966: PUSH1 0x20 00002968: PUSH0 00002969: PUSH1 0x64 0000296b: PUSH1 0x1c 0000296d: DUP3 0000296e: DUP6 0000296f: GAS 00002970: CALL 00002971: SWAP1 00002972: DUP2 00002973: PUSH1 0x01 00002975: PUSH0 00002976: MLOAD 00002977: EQ 00002978: AND 00002979: ISZERO 0000297a: PUSH2 0x2989 0000297d: JUMPI 0000297e: JUMPDEST 0000297f: POP 00002980: POP 00002981: PUSH0 00002982: PUSH1 0x60 00002984: MSTORE 00002985: PUSH1 0x40 00002987: MSTORE 00002988: JUMP 00002989: JUMPDEST 0000298a: EXTCODESIZE 0000298b: ISZERO 0000298c: RETURNDATASIZE 0000298d: OR 0000298e: LT 0000298f: ISZERO 00002990: PUSH2 0x299a 00002993: JUMPI 00002994: PUSH0 00002995: DUP1 00002996: PUSH2 0x297e 00002999: JUMP 0000299a: JUMPDEST 0000299b: PUSH4 0x7939f424 000029a0: PUSH0 000029a1: MSTORE 000029a2: PUSH1 0x04 000029a4: PUSH1 0x1c 000029a6: REVERT 000029a7: JUMPDEST 000029a8: PUSH1 0x20 000029aa: SWAP3 000029ab: POP 000029ac: PUSH1 0x84 000029ae: SWAP1 000029af: PUSH0 000029b0: PUSH1 0x40 000029b2: SWAP6 000029b3: SWAP4 000029b4: SWAP6 000029b5: MLOAD 000029b6: SWAP6 000029b7: DUP7 000029b8: SWAP5 000029b9: DUP6 000029ba: SWAP4 000029bb: PUSH32 0xfe99049a00000000000000000000000000000000000000000000000000000000 000029dc: DUP6 000029dd: MSTORE 000029de: CALLER 000029df: PUSH1 0x04 000029e1: DUP7 000029e2: ADD 000029e3: MSTORE 000029e4: ADDRESS 000029e5: PUSH1 0x24 000029e7: DUP7 000029e8: ADD 000029e9: MSTORE 000029ea: PUSH1 0x44 000029ec: DUP6 000029ed: ADD 000029ee: MSTORE 000029ef: PUSH1 0x64 000029f1: DUP5 000029f2: ADD 000029f3: MSTORE 000029f4: GAS 000029f5: CALL 000029f6: DUP1 000029f7: ISZERO 000029f8: PUSH2 0x1854 000029fb: JUMPI 000029fc: PUSH2 0x2a02 000029ff: JUMPI 00002a00: POP 00002a01: JUMP 00002a02: JUMPDEST 00002a03: PUSH2 0x2a23 00002a06: SWAP1 00002a07: PUSH1 0x20 00002a09: RETURNDATASIZE 00002a0a: PUSH1 0x20 00002a0c: GT 00002a0d: PUSH2 0x2a26 00002a10: JUMPI 00002a11: JUMPDEST 00002a12: PUSH2 0x2a1b 00002a15: DUP2 00002a16: DUP4 00002a17: PUSH2 0x27ed 00002a1a: JUMP 00002a1b: JUMPDEST 00002a1c: DUP2 00002a1d: ADD 00002a1e: SWAP1 00002a1f: PUSH2 0x28f2 00002a22: JUMP 00002a23: JUMPDEST 00002a24: POP 00002a25: JUMP 00002a26: JUMPDEST 00002a27: POP 00002a28: RETURNDATASIZE 00002a29: PUSH2 0x2a11 00002a2c: JUMP 00002a2d: JUMPDEST 00002a2e: DUP2 00002a2f: ISZERO 00002a30: PUSH2 0x2a37 00002a33: JUMPI 00002a34: DIV 00002a35: SWAP1 00002a36: JUMP 00002a37: JUMPDEST 00002a38: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00002a59: PUSH0 00002a5a: MSTORE 00002a5b: PUSH1 0x12 00002a5d: PUSH1 0x04 00002a5f: MSTORE 00002a60: PUSH1 0x24 00002a62: PUSH0 00002a63: REVERT 00002a64: JUMPDEST 00002a65: PUSH1 0x20 00002a67: SLOAD 00002a68: DUP1 00002a69: ISZERO 00002a6a: DUP1 00002a6b: ISZERO 00002a6c: SWAP7 00002a6d: SWAP6 00002a6e: SWAP2 00002a6f: SWAP3 00002a70: SWAP2 00002a71: SWAP1 00002a72: PUSH2 0x2bb2 00002a75: JUMPI 00002a76: PUSH1 0x03 00002a78: DUP3 00002a79: ADD 00002a7a: SLOAD 00002a7b: SWAP5 00002a7c: DUP6 00002a7d: PUSH2 0x2a89 00002a80: JUMPI 00002a81: JUMPDEST 00002a82: POP 00002a83: POP 00002a84: POP 00002a85: POP 00002a86: POP 00002a87: POP 00002a88: JUMP 00002a89: JUMPDEST 00002a8a: PUSH2 0x0b79 00002a8d: PUSH2 0x2aac 00002a90: SWAP2 00002a91: PUSH14 0xffffffffffffffffffffffffffff 00002aa0: DUP1 00002aa1: PUSH2 0x2b3e 00002aa4: SWAP6 00002aa5: AND 00002aa6: SWAP2 00002aa7: AND 00002aa8: PUSH2 0x27cd 00002aab: JUMP 00002aac: JUMPDEST 00002aad: SWAP5 00002aae: DUP1 00002aaf: PUSH17 0xffffffffffffffffffffffffffffffffff 00002ac1: LT 00002ac2: PUSH1 0x07 00002ac4: SHL 00002ac5: DUP2 00002ac6: DUP2 00002ac7: SHR 00002ac8: PUSH9 0xffffffffffffffffff 00002ad2: LT 00002ad3: PUSH1 0x06 00002ad5: SHL 00002ad6: OR 00002ad7: DUP2 00002ad8: DUP2 00002ad9: SHR 00002ada: PUSH5 0xffffffffff 00002ae0: LT 00002ae1: PUSH1 0x05 00002ae3: SHL 00002ae4: OR 00002ae5: DUP2 00002ae6: DUP2 00002ae7: SHR 00002ae8: PUSH3 0xffffff 00002aec: LT 00002aed: PUSH1 0x04 00002aef: SHL 00002af0: OR 00002af1: PUSH1 0xb5 00002af3: PUSH3 0x010000 00002af7: DUP4 00002af8: DUP4 00002af9: SHR 00002afa: ADD 00002afb: SWAP2 00002afc: PUSH1 0x01 00002afe: SHR 00002aff: SHL 00002b00: MUL 00002b01: PUSH1 0x12 00002b03: SHR 00002b04: DUP1 00002b05: DUP3 00002b06: DIV 00002b07: ADD 00002b08: PUSH1 0x01 00002b0a: SHR 00002b0b: DUP1 00002b0c: DUP3 00002b0d: DIV 00002b0e: ADD 00002b0f: PUSH1 0x01 00002b11: SHR 00002b12: DUP1 00002b13: DUP3 00002b14: DIV 00002b15: ADD 00002b16: PUSH1 0x01 00002b18: SHR 00002b19: DUP1 00002b1a: DUP3 00002b1b: DIV 00002b1c: ADD 00002b1d: PUSH1 0x01 00002b1f: SHR 00002b20: DUP1 00002b21: DUP3 00002b22: DIV 00002b23: ADD 00002b24: PUSH1 0x01 00002b26: SHR 00002b27: DUP1 00002b28: DUP3 00002b29: DIV 00002b2a: ADD 00002b2b: PUSH1 0x01 00002b2d: SHR 00002b2e: DUP1 00002b2f: DUP3 00002b30: DIV 00002b31: ADD 00002b32: PUSH1 0x01 00002b34: SHR 00002b35: DUP1 00002b36: DUP1 00002b37: SWAP3 00002b38: DIV 00002b39: LT 00002b3a: SWAP1 00002b3b: SUB 00002b3c: SWAP1 00002b3d: JUMP 00002b3e: JUMPDEST 00002b3f: SWAP1 00002b40: DUP2 00002b41: DUP6 00002b42: GT 00002b43: PUSH2 0x2b4d 00002b46: JUMPI 00002b47: JUMPDEST 00002b48: DUP1 00002b49: PUSH2 0x2a81 00002b4c: JUMP 00002b4d: JUMPDEST 00002b4e: PUSH1 0x04 00002b50: ADD 00002b51: SWAP4 00002b52: PUSH2 0x2b60 00002b55: DUP6 00002b56: SLOAD 00002b57: PUSH2 0x167d 00002b5a: DUP5 00002b5b: DUP5 00002b5c: PUSH2 0x27e0 00002b5f: JUMP 00002b60: JUMPDEST 00002b61: SWAP1 00002b62: PUSH1 0x05 00002b64: DUP2 00002b65: MUL 00002b66: SWAP1 00002b67: DUP1 00002b68: DUP3 00002b69: DIV 00002b6a: PUSH1 0x05 00002b6c: EQ 00002b6d: SWAP1 00002b6e: ISZERO 00002b6f: OR 00002b70: ISZERO 00002b71: PUSH2 0x2114 00002b74: JUMPI 00002b75: PUSH2 0x2b87 00002b78: SWAP3 00002b79: PUSH2 0x2b81 00002b7c: SWAP2 00002b7d: PUSH2 0x278c 00002b80: JUMP 00002b81: JUMPDEST 00002b82: SWAP1 00002b83: PUSH2 0x2a2d 00002b86: JUMP 00002b87: JUMPDEST 00002b88: DUP1 00002b89: SWAP3 00002b8a: DUP2 00002b8b: PUSH2 0x2ba1 00002b8e: JUMPI 00002b8f: JUMPDEST 00002b90: POP 00002b91: POP 00002b92: POP 00002b93: DUP2 00002b94: SLOAD 00002b95: ADD 00002b96: SWAP1 00002b97: SSTORE 00002b98: PUSH0 00002b99: DUP1 00002b9a: DUP1 00002b9b: DUP1 00002b9c: DUP1 00002b9d: PUSH2 0x2b47 00002ba0: JUMP 00002ba1: JUMPDEST 00002ba2: PUSH2 0x2baa 00002ba5: SWAP3 00002ba6: PUSH2 0x2c29 00002ba9: JUMP 00002baa: JUMPDEST 00002bab: PUSH0 00002bac: DUP2 00002bad: DUP2 00002bae: PUSH2 0x2b8f 00002bb1: JUMP 00002bb2: JUMPDEST 00002bb3: POP 00002bb4: SWAP2 00002bb5: POP 00002bb6: POP 00002bb7: PUSH1 0x03 00002bb9: SWAP2 00002bba: POP 00002bbb: ADD 00002bbc: DUP1 00002bbd: SLOAD 00002bbe: PUSH2 0x2bc4 00002bc1: JUMPI 00002bc2: POP 00002bc3: JUMP 00002bc4: JUMPDEST 00002bc5: PUSH0 00002bc6: SWAP1 00002bc7: SSTORE 00002bc8: JUMP 00002bc9: JUMPDEST 00002bca: DUP2 00002bcb: DUP2 00002bcc: MUL 00002bcd: SWAP2 00002bce: DUP2 00002bcf: ISZERO 00002bd0: SWAP2 00002bd1: DUP4 00002bd2: DIV 00002bd3: EQ 00002bd4: OR 00002bd5: DUP3 00002bd6: MUL 00002bd7: ISZERO 00002bd8: PUSH2 0x2bdf 00002bdb: JUMPI 00002bdc: DIV 00002bdd: SWAP1 00002bde: JUMP 00002bdf: JUMPDEST 00002be0: PUSH4 0xad251c27 00002be5: PUSH0 00002be6: MSTORE 00002be7: PUSH1 0x04 00002be9: PUSH1 0x1c 00002beb: REVERT 00002bec: JUMPDEST 00002bed: SWAP1 00002bee: SWAP3 00002bef: SWAP2 00002bf0: PUSH0 00002bf1: SWAP4 00002bf2: PUSH1 0x40 00002bf4: MLOAD 00002bf5: SWAP3 00002bf6: CALLER 00002bf7: PUSH0 00002bf8: MSTORE 00002bf9: PUSH1 0x20 00002bfb: MSTORE 00002bfc: PUSH1 0x40 00002bfe: MSTORE 00002bff: PUSH1 0x60 00002c01: PUSH0 00002c02: KECCAK256 00002c03: SWAP1 00002c04: DUP2 00002c05: TLOAD 00002c06: DUP2 00002c07: DUP2 00002c08: LT 00002c09: ISZERO 00002c0a: PUSH2 0x2c16 00002c0d: JUMPI 00002c0e: JUMPDEST 00002c0f: POP 00002c10: POP 00002c11: POP 00002c12: PUSH1 0x40 00002c14: MSTORE 00002c15: JUMP 00002c16: JUMPDEST 00002c17: SWAP1 00002c18: SWAP2 00002c19: SWAP3 00002c1a: SWAP5 00002c1b: POP 00002c1c: SUB 00002c1d: SWAP1 00002c1e: TSTORE 00002c1f: PUSH1 0x01 00002c21: SWAP2 00002c22: PUSH0 00002c23: DUP1 00002c24: DUP1 00002c25: PUSH2 0x2c0e 00002c28: JUMP 00002c29: JUMPDEST 00002c2a: SWAP2 00002c2b: SWAP1 00002c2c: SWAP2 00002c2d: PUSH8 0xedcaa89a82293940 00002c36: PUSH1 0x20 00002c38: MSTORE 00002c39: DUP1 00002c3a: PUSH1 0x14 00002c3c: MSTORE 00002c3d: DUP3 00002c3e: PUSH0 00002c3f: MSTORE 00002c40: PUSH1 0x40 00002c42: PUSH0 00002c43: KECCAK256 00002c44: SWAP2 00002c45: DUP3 00002c46: SLOAD 00002c47: DUP2 00002c48: DUP2 00002c49: ADD 00002c4a: SWAP1 00002c4b: DUP2 00002c4c: LT 00002c4d: PUSH2 0x24ff 00002c50: JUMPI 00002c51: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002c66: SWAP4 00002c67: SSTORE 00002c68: CALLER 00002c69: PUSH0 00002c6a: MSTORE 00002c6b: PUSH1 0x20 00002c6d: MSTORE 00002c6e: AND 00002c6f: PUSH0 00002c70: PUSH32 0x1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859 00002c91: PUSH1 0x40 00002c93: DUP3 00002c94: LOG4 00002c95: JUMP 00002c96: JUMPDEST 00002c97: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002cac: SWAP2 00002cad: SWAP3 00002cae: PUSH8 0xedcaa89a82293940 00002cb7: PUSH1 0x20 00002cb9: MSTORE 00002cba: DUP2 00002cbb: PUSH1 0x14 00002cbd: MSTORE 00002cbe: DUP4 00002cbf: PUSH0 00002cc0: MSTORE 00002cc1: DUP1 00002cc2: PUSH1 0x40 00002cc4: PUSH0 00002cc5: KECCAK256 00002cc6: SSTORE 00002cc7: CALLER 00002cc8: PUSH0 00002cc9: MSTORE 00002cca: PUSH1 0x20 00002ccc: MSTORE 00002ccd: AND 00002cce: PUSH0 00002ccf: PUSH32 0x1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859 00002cf0: PUSH1 0x40 00002cf2: DUP3 00002cf3: LOG4 00002cf4: JUMP 00002cf5: JUMPDEST 00002cf6: SWAP4 00002cf7: SWAP3 00002cf8: SWAP5 00002cf9: SWAP2 00002cfa: SWAP1 00002cfb: SWAP5 00002cfc: PUSH14 0xffffffffffffffffffffffffffff 00002d0b: DUP3 00002d0c: GT 00002d0d: PUSH2 0x2e79 00002d10: JUMPI 00002d11: PUSH14 0xffffffffffffffffffffffffffff 00002d20: DUP2 00002d21: GT 00002d22: PUSH2 0x2e79 00002d25: JUMPI 00002d26: DUP5 00002d27: PUSH14 0xffffffffffffffffffffffffffff 00002d36: PUSH28 0xffffffffffffffffffffffffffff0000000000000000000000000000 00002d53: SWAP5 00002d54: DUP2 00002d55: SWAP5 00002d56: PUSH1 0x40 00002d58: SWAP8 00002d59: PUSH32 0x1857d6b557d31cf8c2bf0cb9e6bf60aaeb9d8a0c5829169328ccf950adc4496f 00002d7a: SWAP10 00002d7b: SLOAD 00002d7c: SWAP3 00002d7d: PUSH4 0xffffffff 00002d82: DUP5 00002d83: PUSH1 0xe0 00002d85: SHR 00002d86: DUP2 00002d87: TIMESTAMP 00002d88: AND 00002d89: SUB 00002d8a: AND 00002d8b: SWAP2 00002d8c: DUP3 00002d8d: ISZERO 00002d8e: ISZERO 00002d8f: DUP1 00002d90: PUSH2 0x2e6e 00002d93: JUMPI 00002d94: JUMPDEST 00002d95: DUP1 00002d96: PUSH2 0x2e63 00002d99: JUMPI 00002d9a: JUMPDEST 00002d9b: PUSH2 0x2e06 00002d9e: JUMPI 00002d9f: JUMPDEST 00002da0: POP 00002da1: POP 00002da2: POP 00002da3: SWAP1 00002da4: SWAP2 00002da5: AND 00002da6: TIMESTAMP 00002da7: PUSH1 0xe0 00002da9: SHL 00002daa: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00002dcb: AND 00002dcc: DUP2 00002dcd: OR 00002dce: PUSH1 0x70 00002dd0: DUP6 00002dd1: SWAP1 00002dd2: SHL 00002dd3: PUSH28 0xffffffffffffffffffffffffffff0000000000000000000000000000 00002df0: AND 00002df1: OR 00002df2: SWAP1 00002df3: SWAP3 00002df4: SSTORE 00002df5: POP 00002df6: DUP5 00002df7: MLOAD 00002df8: SWAP1 00002df9: DUP2 00002dfa: MSTORE 00002dfb: SWAP2 00002dfc: AND 00002dfd: PUSH1 0x20 00002dff: DUP3 00002e00: ADD 00002e01: MSTORE 00002e02: SWAP1 00002e03: POP 00002e04: LOG2 00002e05: JUMP 00002e06: JUMPDEST 00002e07: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00002e24: SWAP2 00002e25: DUP11 00002e26: PUSH2 0x2e4f 00002e29: SWAP3 00002e2a: DUP6 00002e2b: DUP6 00002e2c: PUSH2 0x2e3a 00002e2f: DUP4 00002e30: DUP6 00002e31: DUP8 00002e32: PUSH1 0x70 00002e34: SHL 00002e35: AND 00002e36: PUSH2 0x3144 00002e39: JUMP 00002e3a: JUMPDEST 00002e3b: AND 00002e3c: MUL 00002e3d: PUSH1 0x01 00002e3f: DUP12 00002e40: ADD 00002e41: SWAP1 00002e42: DUP2 00002e43: SLOAD 00002e44: ADD 00002e45: SWAP1 00002e46: SSTORE 00002e47: PUSH1 0x70 00002e49: SHL 00002e4a: AND 00002e4b: PUSH2 0x3144 00002e4e: JUMP 00002e4f: JUMPDEST 00002e50: AND 00002e51: MUL 00002e52: PUSH1 0x02 00002e54: DUP6 00002e55: ADD 00002e56: SWAP1 00002e57: DUP2 00002e58: SLOAD 00002e59: ADD 00002e5a: SWAP1 00002e5b: SSTORE 00002e5c: PUSH0 00002e5d: DUP1 00002e5e: DUP1 00002e5f: PUSH2 0x2d9f 00002e62: JUMP 00002e63: JUMPDEST 00002e64: POP 00002e65: DUP6 00002e66: DUP3 00002e67: AND 00002e68: ISZERO 00002e69: ISZERO 00002e6a: PUSH2 0x2d9a 00002e6d: JUMP 00002e6e: JUMPDEST 00002e6f: POP 00002e70: DUP6 00002e71: DUP2 00002e72: AND 00002e73: ISZERO 00002e74: ISZERO 00002e75: PUSH2 0x2d94 00002e78: JUMP 00002e79: JUMPDEST 00002e7a: PUSH32 0x35278d1200000000000000000000000000000000000000000000000000000000 00002e9b: PUSH0 00002e9c: MSTORE 00002e9d: PUSH1 0x04 00002e9f: PUSH0 00002ea0: REVERT 00002ea1: JUMPDEST 00002ea2: PUSH12 0xffffffffffffffffffffffff 00002eaf: AND 00002eb0: PUSH2 0x2710 00002eb3: SUB 00002eb4: SWAP1 00002eb5: PUSH12 0xffffffffffffffffffffffff 00002ec2: DUP3 00002ec3: GT 00002ec4: PUSH2 0x2114 00002ec7: JUMPI 00002ec8: JUMP 00002ec9: JUMPDEST 00002eca: PUSH2 0x2eef 00002ecd: SWAP1 00002ece: PUSH12 0xffffffffffffffffffffffff 00002edb: PUSH2 0x2ee8 00002ede: PUSH2 0x2ef6 00002ee1: SWAP5 00002ee2: SWAP6 00002ee3: SWAP7 00002ee4: PUSH2 0x2ea1 00002ee7: JUMP 00002ee8: JUMPDEST 00002ee9: AND 00002eea: SWAP1 00002eeb: PUSH2 0x27cd 00002eee: JUMP 00002eef: JUMPDEST 00002ef0: SWAP3 00002ef1: DUP4 00002ef2: PUSH2 0x27cd 00002ef5: JUMP 00002ef6: JUMPDEST 00002ef7: SWAP1 00002ef8: PUSH2 0x2710 00002efb: DUP2 00002efc: MUL 00002efd: SWAP1 00002efe: DUP1 00002eff: DUP3 00002f00: DIV 00002f01: PUSH2 0x2710 00002f04: EQ 00002f05: SWAP1 00002f06: ISZERO 00002f07: OR 00002f08: ISZERO 00002f09: PUSH2 0x2114 00002f0c: JUMPI 00002f0d: PUSH2 0x2f19 00002f10: SWAP3 00002f11: PUSH2 0x2b81 00002f14: SWAP2 00002f15: PUSH2 0x278c 00002f18: JUMP 00002f19: JUMPDEST 00002f1a: SWAP1 00002f1b: JUMP 00002f1c: JUMPDEST 00002f1d: SWAP3 00002f1e: SWAP2 00002f1f: SWAP1 00002f20: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f35: DUP2 00002f36: AND 00002f37: ADDRESS 00002f38: DUP2 00002f39: SUB 00002f3a: PUSH2 0x2f5b 00002f3d: JUMPI 00002f3e: POP 00002f3f: POP 00002f40: PUSH1 0x40 00002f42: MLOAD 00002f43: SWAP3 00002f44: CALLER 00002f45: PUSH0 00002f46: MSTORE 00002f47: PUSH1 0x20 00002f49: MSTORE 00002f4a: PUSH1 0x40 00002f4c: MSTORE 00002f4d: PUSH1 0x60 00002f4f: PUSH0 00002f50: KECCAK256 00002f51: SWAP1 00002f52: DUP2 00002f53: TLOAD 00002f54: ADD 00002f55: SWAP1 00002f56: TSTORE 00002f57: PUSH1 0x40 00002f59: MSTORE 00002f5a: JUMP 00002f5b: JUMPDEST 00002f5c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f71: DUP6 00002f72: AND 00002f73: ADDRESS 00002f74: DUP2 00002f75: SUB 00002f76: PUSH2 0x2f85 00002f79: JUMPI 00002f7a: POP 00002f7b: POP 00002f7c: PUSH2 0x2934 00002f7f: SWAP4 00002f80: POP 00002f81: PUSH2 0x2c29 00002f84: JUMP 00002f85: JUMPDEST 00002f86: SWAP2 00002f87: SWAP3 00002f88: SWAP2 00002f89: DUP1 00002f8a: PUSH2 0x2f9a 00002f8d: JUMPI 00002f8e: POP 00002f8f: POP 00002f90: POP 00002f91: PUSH2 0x2934 00002f94: SWAP3 00002f95: POP 00002f96: PUSH2 0x30d3 00002f99: JUMP 00002f9a: JUMPDEST 00002f9b: DUP3 00002f9c: PUSH2 0x2ffa 00002f9f: JUMPI 00002fa0: POP 00002fa1: POP 00002fa2: POP 00002fa3: PUSH1 0x14 00002fa5: MSTORE 00002fa6: PUSH1 0x34 00002fa8: MSTORE 00002fa9: PUSH16 0xa9059cbb000000000000000000000000 00002fba: PUSH0 00002fbb: MSTORE 00002fbc: PUSH1 0x20 00002fbe: PUSH0 00002fbf: PUSH1 0x44 00002fc1: PUSH1 0x10 00002fc3: DUP3 00002fc4: DUP6 00002fc5: GAS 00002fc6: CALL 00002fc7: SWAP1 00002fc8: DUP2 00002fc9: PUSH1 0x01 00002fcb: PUSH0 00002fcc: MLOAD 00002fcd: EQ 00002fce: AND 00002fcf: ISZERO 00002fd0: PUSH2 0x2fdc 00002fd3: JUMPI 00002fd4: JUMPDEST 00002fd5: POP 00002fd6: POP 00002fd7: PUSH0 00002fd8: PUSH1 0x34 00002fda: MSTORE 00002fdb: JUMP 00002fdc: JUMPDEST 00002fdd: EXTCODESIZE 00002fde: ISZERO 00002fdf: RETURNDATASIZE 00002fe0: OR 00002fe1: LT 00002fe2: ISZERO 00002fe3: PUSH2 0x2fed 00002fe6: JUMPI 00002fe7: PUSH0 00002fe8: DUP1 00002fe9: PUSH2 0x2fd4 00002fec: JUMP 00002fed: JUMPDEST 00002fee: PUSH4 0x90b8ec18 00002ff3: PUSH0 00002ff4: MSTORE 00002ff5: PUSH1 0x04 00002ff7: PUSH1 0x1c 00002ff9: REVERT 00002ffa: JUMPDEST 00002ffb: PUSH1 0x20 00002ffd: SWAP5 00002ffe: SWAP6 00002fff: POP 00003000: PUSH1 0x64 00003002: SWAP3 00003003: SWAP4 00003004: POP 00003005: PUSH0 00003006: SWAP1 00003007: PUSH1 0x40 00003009: MLOAD 0000300a: SWAP7 0000300b: DUP8 0000300c: SWAP6 0000300d: DUP7 0000300e: SWAP5 0000300f: PUSH32 0x095bcdb600000000000000000000000000000000000000000000000000000000 00003030: DUP7 00003031: MSTORE 00003032: PUSH1 0x04 00003034: DUP7 00003035: ADD 00003036: MSTORE 00003037: PUSH1 0x24 00003039: DUP6 0000303a: ADD 0000303b: MSTORE 0000303c: PUSH1 0x44 0000303e: DUP5 0000303f: ADD 00003040: MSTORE 00003041: GAS 00003042: CALL 00003043: DUP1 00003044: ISZERO 00003045: PUSH2 0x1854 00003048: JUMPI 00003049: PUSH2 0x2a02 0000304c: JUMPI 0000304d: POP 0000304e: JUMP 0000304f: JUMPDEST 00003050: SWAP2 00003051: SWAP1 00003052: PUSH1 0x40 00003054: MLOAD 00003055: SWAP3 00003056: CALLER 00003057: PUSH0 00003058: MSTORE 00003059: PUSH1 0x20 0000305b: MSTORE 0000305c: PUSH1 0x40 0000305e: MSTORE 0000305f: PUSH1 0x60 00003061: PUSH0 00003062: KECCAK256 00003063: SWAP2 00003064: DUP3 00003065: TLOAD 00003066: SWAP3 00003067: DUP4 00003068: PUSH2 0x3072 0000306b: JUMPI 0000306c: JUMPDEST 0000306d: POP 0000306e: PUSH1 0x40 00003070: MSTORE 00003071: JUMP 00003072: JUMPDEST 00003073: PUSH0 00003074: SWAP1 00003075: TSTORE 00003076: PUSH0 00003077: PUSH2 0x306c 0000307a: JUMP 0000307b: JUMPDEST 0000307c: SWAP1 0000307d: DUP2 0000307e: PUSH2 0x3089 00003081: SWAP2 00003082: SWAP5 00003083: SWAP4 00003084: SWAP5 00003085: PUSH2 0x27cd 00003088: JUMP 00003089: JUMPDEST 0000308a: SWAP2 0000308b: PUSH2 0x2710 0000308e: DUP4 0000308f: MUL 00003090: SWAP3 00003091: DUP1 00003092: DUP5 00003093: DIV 00003094: PUSH2 0x2710 00003097: EQ 00003098: SWAP1 00003099: ISZERO 0000309a: OR 0000309b: ISZERO 0000309c: PUSH2 0x2114 0000309f: JUMPI 000030a0: PUSH12 0xffffffffffffffffffffffff 000030ad: PUSH2 0x2ee8 000030b0: PUSH2 0x30bf 000030b3: PUSH2 0x2b81 000030b6: SWAP5 000030b7: PUSH2 0x30c5 000030ba: SWAP8 000030bb: PUSH2 0x27e0 000030be: JUMP 000030bf: JUMPDEST 000030c0: SWAP3 000030c1: PUSH2 0x2ea1 000030c4: JUMP 000030c5: JUMPDEST 000030c6: PUSH1 0x01 000030c8: DUP2 000030c9: ADD 000030ca: DUP1 000030cb: SWAP2 000030cc: GT 000030cd: PUSH2 0x2114 000030d0: JUMPI 000030d1: SWAP1 000030d2: JUMP 000030d3: JUMPDEST 000030d4: PUSH0 000030d5: DUP1 000030d6: DUP1 000030d7: SWAP4 000030d8: CODESIZE 000030d9: SWAP4 000030da: GAS 000030db: CALL 000030dc: ISZERO 000030dd: PUSH2 0x30e2 000030e0: JUMPI 000030e1: JUMP 000030e2: JUMPDEST 000030e3: PUSH4 0xb12d13eb 000030e8: PUSH0 000030e9: MSTORE 000030ea: PUSH1 0x04 000030ec: PUSH1 0x1c 000030ee: REVERT 000030ef: JUMPDEST 000030f0: SWAP1 000030f1: PUSH8 0xedcaa89a82293940 000030fa: PUSH1 0x20 000030fc: MSTORE 000030fd: CALLER 000030fe: PUSH1 0x14 00003100: MSTORE 00003101: DUP2 00003102: PUSH0 00003103: MSTORE 00003104: PUSH1 0x40 00003106: PUSH0 00003107: KECCAK256 00003108: DUP1 00003109: SLOAD 0000310a: DUP1 0000310b: DUP4 0000310c: GT 0000310d: PUSH2 0x250c 00003110: JUMPI 00003111: DUP3 00003112: SWAP1 00003113: SUB 00003114: SWAP1 00003115: SSTORE 00003116: CALLER 00003117: PUSH0 00003118: MSTORE 00003119: PUSH1 0x20 0000311b: MSTORE 0000311c: PUSH0 0000311d: CALLER 0000311e: PUSH32 0x1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859 0000313f: PUSH1 0x40 00003141: DUP4 00003142: LOG4 00003143: JUMP 00003144: JUMPDEST 00003145: SWAP1 00003146: PUSH14 0xffffffffffffffffffffffffffff 00003155: AND 00003156: SWAP1 00003157: DUP2 00003158: ISZERO 00003159: PUSH2 0x2a37 0000315c: JUMPI 0000315d: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000317a: AND 0000317b: DIV 0000317c: SWAP1 0000317d: JUMP 0000317e: INVALID 0000317f: LOG2 00003180: PUSH5 0x6970667358 00003186: UNKNOWN(0x22) 00003187: SLT 00003188: KECCAK256 00003189: UNKNOWN(0x0C) 0000318a: DELEGATECALL 0000318b: DELEGATECALL 0000318c: CALLDATACOPY 0000318d: UNKNOWN(0xB8) 0000318e: LOG1 0000318f: ADDRESS 00003190: UNKNOWN(0xD6) 00003191: DUP9 00003192: UNKNOWN(0x25) 00003193: PUSH12 0xcf4b66cf749daa93ac35ff14 000031a0: DUP13 000031a1: SDIV 000031a2: RETURNDATACOPY 000031a3: UNKNOWN(0xDA) 000031a4: SWAP9 000031a5: UNKNOWN(0xC7) 000031a6: TLOAD 000031a7: CALLDATACOPY 000031a8: PUSH10 0x64736f6c634300081d00 000031b3: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | detector | Untrusted DELEGATECALL target reachable | 70 | no | no |
viewtrace_id: 0xe394adb5c1fc08b4d9959978bfaf01793ae455682b1360eaca16072cd92a1ede
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 192,
"trace_id": "0xe394adb5c1fc08b4d9959978bfaf01793ae455682b1360eaca16072cd92a1ede",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x01ffc9a7",
"selector": "0x01ffc9a7",
"calldata_variants": [
"0x01ffc9a7",
"0x01ffc9a70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095bcdb6",
"selector": "0x095bcdb6",
"calldata_variants": [
"0x095bcdb6",
"0x095bcdb60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0efe6a8b",
"selector": "0x0efe6a8b",
"calldata_variants": [
"0x0efe6a8b",
"0x0efe6a8b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x426a8493",
"selector": "0x426a8493",
"calldata_variants": [
"0x426a8493",
"0x426a84930000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x48416da8",
"selector": "0x48416da8",
"calldata_variants": [
"0x48416da8",
"0x48416da80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x558a7297",
"selector": "0x558a7297",
"calldata_variants": [
"0x558a7297",
"0x558a72970000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x598af9e7",
"selector": "0x598af9e7",
"calldata_variants": [
"0x598af9e7",
"0x598af9e70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6dc2a7b3",
"selector": "0x6dc2a7b3",
"calldata_variants": [
"0x6dc2a7b3",
"0x6dc2a7b30000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 222,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 4456,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 12682,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [],
"delegatecall_count": 4,
"untrusted_delegatecall_count": 4
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x383124ae87fcf3a6d1a4dafe513ae6b14df1ab05601fffca26eddf59d8fe5608
call_targets:
0x00000000000008882d72efa6cce4b6a40b24c860
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x383124ae87fcf3a6d1a4dafe513ae6b14df1ab05601fffca26eddf59d8fe5608",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x00000000000008882d72efa6cce4b6a40b24c860"
],
"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": "0x01ffc9a7",
"selector": "0x01ffc9a7",
"calldata_variants": [
"0x01ffc9a7",
"0x01ffc9a70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095bcdb6",
"selector": "0x095bcdb6",
"calldata_variants": [
"0x095bcdb6",
"0x095bcdb60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0efe6a8b",
"selector": "0x0efe6a8b",
"calldata_variants": [
"0x0efe6a8b",
"0x0efe6a8b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x426a8493",
"selector": "0x426a8493",
"calldata_variants": [
"0x426a8493",
"0x426a84930000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x48416da8",
"selector": "0x48416da8",
"calldata_variants": [
"0x48416da8",
"0x48416da80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x558a7297",
"selector": "0x558a7297",
"calldata_variants": [
"0x558a7297",
"0x558a72970000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x598af9e7",
"selector": "0x598af9e7",
"calldata_variants": [
"0x598af9e7",
"0x598af9e70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6dc2a7b3",
"selector": "0x6dc2a7b3",
"calldata_variants": [
"0x6dc2a7b3",
"0x6dc2a7b30000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 6190,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 10608,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "constant",
"target_expression_category": "computed"
},
{
"pc": 10741,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 6,
"guards_detected": [],
"untrusted_call_count": 6
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x383124ae87fcf3a6d1a4dafe513ae6b14df1ab05601fffca26eddf59d8fe5608
call_targets:
0x00000000000008882d72efa6cce4b6a40b24c860
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x383124ae87fcf3a6d1a4dafe513ae6b14df1ab05601fffca26eddf59d8fe5608",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x00000000000008882d72efa6cce4b6a40b24c860"
],
"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": "0x01ffc9a7",
"selector": "0x01ffc9a7",
"calldata_variants": [
"0x01ffc9a7",
"0x01ffc9a70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095bcdb6",
"selector": "0x095bcdb6",
"calldata_variants": [
"0x095bcdb6",
"0x095bcdb60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0efe6a8b",
"selector": "0x0efe6a8b",
"calldata_variants": [
"0x0efe6a8b",
"0x0efe6a8b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x426a8493",
"selector": "0x426a8493",
"calldata_variants": [
"0x426a8493",
"0x426a84930000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x48416da8",
"selector": "0x48416da8",
"calldata_variants": [
"0x48416da8",
"0x48416da80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x558a7297",
"selector": "0x558a7297",
"calldata_variants": [
"0x558a7297",
"0x558a72970000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x598af9e7",
"selector": "0x598af9e7",
"calldata_variants": [
"0x598af9e7",
"0x598af9e70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6dc2a7b3",
"selector": "0x6dc2a7b3",
"calldata_variants": [
"0x6dc2a7b3",
"0x6dc2a7b30000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 6190,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 10608,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "constant",
"target_expression_category": "computed"
},
{
"pc": 10741,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 6,
"guards_detected": []
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 4
}
|
| medium | other | codex | Fee-on-transfer/deflationary tokens break reserve accounting and allow pool draining | 75 | no | — |
viewevidence_json{
"evidence": "`swapExactIn`/`swapExactOut` compute outputs from `amountIn` and update reserves with `reserve + amountIn` after `_safeTransferFrom` without checking actual received balances; `addLiquidity` similarly updates reserves with requested amounts rather than balance deltas.",
"locations": [
"src/ZAMM.sol:swapExactIn",
"src/ZAMM.sol:swapExactOut",
"src/ZAMM.sol:addLiquidity"
],
"recommendation": "Track actual received amounts by measuring balances before/after transfers (or use balance-based math like Uniswap V2) and update reserves using the real deltas. Alternatively, explicitly reject fee-on-transfer/deflationary tokens by verifying that received amount matches the expected input.",
"exploit_scenario": "An attacker creates or targets a pool containing a fee-on-transfer token. When swapping in or adding liquidity, the contract uses the requested `amountIn`/`amount` to price and update reserves, even if the token transfer delivers less. The pool overpays the other asset on swaps and/or records inflated reserves, enabling repeated swaps to drain the counter-asset."
}
|
| medium | other | codex | Unchecked ERC6909 transfer return values enable malicious tokens to bypass payment | 75 | no | — |
viewevidence_json{
"evidence": "`_safeTransfer` calls `ZERC6909(token).transfer(...)` and ignores its boolean return; `_safeTransferFrom` calls `ZERC6909(token).transferFrom(...)` and ignores its boolean return.",
"locations": [
"src/ZAMM.sol:_safeTransfer",
"src/ZAMM.sol:_safeTransferFrom"
],
"recommendation": "Require `transfer`/`transferFrom` to return true (or revert on failure) and revert otherwise. Consider wrapping ERC6909 calls in a safe helper that validates the return value.",
"exploit_scenario": "A malicious ERC6909-like token can return `false` (or otherwise not move balances) from `transfer`/`transferFrom` without reverting. Because the AMM ignores these return values, it will proceed as if tokens were moved. The attacker can then add liquidity or swap without actually paying in, draining the paired asset."
}
|