019bab3b-ac16-71c8-994e-dc9bad3c06f9
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 |
|---|---|---|---|---|
| 38702 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 38703 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 38704 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 38705 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 38706 | capability.graph | complete | 1 / 3 | 3 months ago |
| 38707 | detector.run | complete | 1 / 3 | 3 months ago |
| 38708 | validation.fork | complete | 1 / 3 | 3 months ago |
| 39140 | report.consolidate | complete | 1 / 6 | 3 months ago |
| 39141 | tool.slither | failed | 2 / 2 | 3 months ago |
{
"status": "not_proxy"
}
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-hdmoxjsr)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-hdmoxjsr)
'forge' returned non-zero exit code 1
Compiling 43 files with Solc 0.8.26
stdout: Solc 0.8.26 finished in 483.47ms
Error: Compiler run failed:
stderr: Error: Compiler error (/solidity/libsolidity/codegen/LValue.cpp:51):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: --> contracts/src/TorusCreateAndStake.sol:331:13:
stderr: |
stderr: 331 | torusAmount,
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-hdmoxjsr/out/build-info is not a directory.
{"no_findings":false,"summary":"Found oracle-manipulation risks where Uniswap V3 TWAPs directly set ETH fees and swap minimum outputs, enabling underpayment or adverse swap execution if the pools are manipulated or observation windows are short.","findings":[{"severity":"medium","category":"oracle","title":"ETH fee calculation can be underpaid via manipulable Uniswap TWAP","exploit_scenario":"An attacker manipulates the TITAN_X/ETH Uniswap V3 pool (especially early when `oldestObservation` is small) to make TitanX appear cheaper, then calls `createTorus` or `stakeTorus` with ETH. `getEthAmountForTitanX` returns a lower `requiredETH`, letting the attacker mint/stake with less ETH than intended while still receiving full Torus creation benefits.","recommendation":"Use a more robust price oracle (e.g., Chainlink) or enforce a minimum TWAP window and sanity bounds (e.g., revert if TWAP age < N minutes or if deviation vs. a secondary feed exceeds a threshold). Consider requiring an off-chain price quote with bounds instead of relying solely on the pool’s TWAP.","evidence":"`getEthAmountForTitanX` uses a TWAP from `TITAN_X_ETH_POOL`, and `_distributeFees` uses it to set `requiredETH` for create/stake fees; the window is shortened to `oldestObservation` when it is less than 15 minutes, which weakens manipulation resistance.","locations":["contracts/src/TorusCreateAndStake.sol:588","contracts/src/TorusCreateAndStake.sol:608","contracts/src/TorusCreateAndStake.sol:612"]},{"severity":"medium","category":"oracle","title":"Protocol swaps use manipulable TWAPs for `amountOutMinimum`, enabling adverse-rate swaps","exploit_scenario":"Because swap minOuts are computed from the same Uniswap pools’ TWAPs (with a potentially short observation window), an attacker can manipulate the pool price and then trigger public `swap*AndBurn/Build` calls to execute swaps at a disadvantaged rate. This can drain burn/build allocations by forcing the protocol to swap at a manipulated price, while the attacker arbitrages the price distortion.","recommendation":"Use a more manipulation-resistant oracle (longer TWAP with enforced minimum age, multiple pools, or Chainlink), add deviation checks vs. spot price, and consider having trusted keepers supply `amountOutMinimum` with on-chain bounds. If possible, restrict swap execution to a keeper to reduce sandwich/manipulation risk.","evidence":"`_swapTitanXForTorus` and `_swapETHForTitanX` derive `amountOutMinimum` from `getTorusQuoteForTitanX`/`getTitanXQuoteForETH`, which use a TWAP capped by `oldestObservation` (potentially very short). The same oracle is used in TorusCreateAndStake’s internal swap as well.","locations":["contracts/src/TorusBuyAndProcess.sol:821","contracts/src/TorusBuyAndProcess.sol:1092","contracts/src/TorusBuyAndProcess.sol:1120","contracts/src/TorusBuyAndProcess.sol:1142","contracts/src/TorusCreateAndStake.sol:746"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-3ovebsx6
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019babcf-578e-7370-af2a-9dbb9b26213c
--------
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 ls in /tmp/codex-3ovebsx6 succeeded in 12ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
@openzeppelin
@uniswap
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-3ovebsx6 succeeded in 6ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.
================================================================================
FILE: @uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol
================================================================================
// SPDX-License-Identifier: GPL-2.0-or-later
pragma solidity >=0.5.0;
/// @title Callback for IUniswapV3PoolActions#swap
/// @notice Any contract that calls IUniswapV3PoolActions#swap must implement this interface
interface IUniswapV3SwapCallback {
/// @notice Called to `msg.sender` after executing a swap via IUniswapV3Pool#swap.
/// @dev In the implementation you must pay the pool tokens owed for the swap.
/// The caller of this method must be checked to be a UniswapV3Pool deployed by the canonical UniswapV3Factory.
/// amount0Delta and amount1Delta can both be 0 if no tokens were swapped.
/// @param amount0Delta The amount of token0 that was sent (negative) or must be received (positive) by the pool by
/// the end of the swap. If positive, the callback must send that amount of token0 to the pool.
/// @param amount1Delta The amount of token1 that was sent (negative) or must be received (positive) by the pool by
/// the end of the swap. If positive, the callback must send that amount of token1 to the pool.
thinking
**Identifying first-party sources in bundle**
exec
/bin/bash -lc 'rg -n "''^FILE: contracts/src" AUDIT_BUNDLE.txt' in /tmp/codex-3ovebsx6 succeeded in 32ms:
3106:FILE: contracts/src/Torus.sol
3295:FILE: contracts/src/TorusBuyAndProcess.sol
4468:FILE: contracts/src/TorusCreateAndStake.sol
5256:FILE: contracts/src/const/BuyAndProcessConst.sol
5311:FILE: contracts/src/library/OracleLibrary.sol
thinking
**Planning to extract contract segments**
exec
/bin/bash -lc "sed -n '3106,3294p' AUDIT_BUNDLE.txt" in /tmp/codex-3ovebsx6 succeeded in 7ms:
FILE: contracts/src/Torus.sol
================================================================================
// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;
/* === OZ === */
import {ERC20} from "../lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol";
import {ERC20Burnable} from "../lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol";
import {Ownable} from "../lib/openzeppelin-contracts/contracts/access/Ownable.sol";
/* = SYSTEM */
import {TorusCreateAndStake} from "./TorusCreateAndStake.sol";
import {TorusBuyAndProcess} from "./TorusBuyAndProcess.sol";
/* = LIBS = */
import {Math} from "../lib/openzeppelin-contracts/contracts/utils/math/Math.sol";
/* = UNIV3 = */
import {IUniswapV3Pool} from "../lib/v3-core/contracts/interfaces/IUniswapV3Pool.sol";
import {INonfungiblePositionManager} from "../lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol";
thinking
**Navigating to TorusBuyAndProcess**
exec
/bin/bash -lc "sed -n '3295,4467p' AUDIT_BUNDLE.txt" in /tmp/codex-3ovebsx6 succeeded in 6ms:
FILE: contracts/src/TorusBuyAndProcess.sol
================================================================================
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.26;
/* === UNIV3 === */
import {TransferHelper} from "../lib/v3-periphery/contracts/libraries/TransferHelper.sol";
import {INonfungiblePositionManager} from "../lib/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol";
import {TickMath} from "../lib/v3-core/contracts/libraries/TickMath.sol";
import {OracleLibrary} from "./library/OracleLibrary.sol";
import {ISwapRouter} from "../lib/v3-periphery/contracts/interfaces/ISwapRouter.sol";
/* === OZ === */
import {ReentrancyGuard} from "../lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol";
import {Ownable2Step, Ownable} from "../lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol";
import {IERC20} from "../lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol";
import {ERC20Burnable} from "../lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol";
import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";
/* === CONST === */
thinking
**Searching for complete function code**
exec
/bin/bash -lc 'rg -n "releaseFractalFunds" -n AUDIT_BUNDLE.txt' in /tmp/codex-3ovebsx6 succeeded in 7ms:
3546: releaseFractalFunds();
3586: releaseFractalFunds();
3818: releaseFractalFunds();
3843: releaseFractalFunds();
3850: function releaseFractalFunds() public {
4166: releaseFractalFunds();
4187: releaseFractalFunds();
4221: releaseFractalFunds();
4265: releaseFractalFunds();
thinking
**Extracting a specific section**
exec
/bin/bash -lc "sed -n '3740,4105p' AUDIT_BUNDLE.txt" in /tmp/codex-3ovebsx6 succeeded in 6ms:
*/
function burnTorus() public {
uint256 torusToBurn = torusToken.balanceOf(address(this));
totalTorusBurnt += torusToBurn;
torusToken.burn(torusToBurn);
emit TorusBurned(
torusToBurn
);
}
function setSlippageForTitanXToTorus(
uint8 _newSlippage
) external onlyOwner {
if (_newSlippage > 100 || _newSlippage < 2) revert InvalidInput();
titanXToTorusSlippage = _newSlippage;
emit TitanXToTorusSlippageUpdated(_newSlippage);
}
thinking
**Reviewing TorusCreateAndStake section**
exec
/bin/bash -lc "sed -n '4468,5255p' AUDIT_BUNDLE.txt" in /tmp/codex-3ovebsx6 succeeded in 6ms:
FILE: contracts/src/TorusCreateAndStake.sol
================================================================================
// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;
/* === OZ === */
import {IERC20} from "../lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol";
import {SafeERC20} from "../lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol";
import {Math} from "../lib/openzeppelin-contracts/contracts/utils/math/Math.sol";
import {ReentrancyGuard} from "../lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol";
/* === SYSTEM === */
import {Torus} from "./Torus.sol";
import {TorusBuyAndProcess} from "./TorusBuyAndProcess.sol";
/* === CONST === */
import "./const/BuyAndProcessConst.sol";
/* === UNISWAP V3 === */
import {TransferHelper} from "../lib/v3-periphery/contracts/libraries/TransferHelper.sol";
thinking
**Reviewing comprehensive smart contract security risks**
I'm carefully auditing the contracts for vulnerabilities across multiple categories like reentrancy, access control, oracle risks, and accounting. There is a lot here! I’m analyzing constructor call sequences, permission checks, potential reentrancy spots especially around external calls, and oracle price dependencies on Uniswap TWAP. Some minor accounting anomalies appear, but no obvious critical exploits jump out. I’m noting typical oracle manipulation risks inherent to TWAP pricing and some non-reentrancy on token transfer functions that might be low risk given assumed token behavior. Overall, I’m piecing together how contract logic, especially minting, staking, and fee distribution, interacts with these patterns to assess real exploitability.
thinking
**Examining staking logic and oracle-based economic risks**
I’m focused on staking reward calculations, memory vs storage usage, and some minting approximations that seem safe. A notable concern is oracle manipulation in ETH-TitanX pricing via Uniswap TWAP, which could let attackers acquire stakes below fair cost, causing economic loss. I’m also reviewing access control on key functions and reentrancy guards around liquidity additions and swaps. The Uniswap approvals and token transfers look mostly secure, though certain external calls might involve minor risks. Overall, I’m weighing how these pieces interact to consider practical exploit scenarios versus expected protocol behavior.
exec
/bin/bash -lc 'rg -n "torusCreateAndStake" AUDIT_BUNDLE.txt' in /tmp/codex-3ovebsx6 succeeded in 8ms:
3340: TorusCreateAndStake public torusCreateAndStake;
3495: address _torusCreateAndStake
3497: require(address(torusCreateAndStake) == address(0), "Already set");
3498: address oldCreateAndStake = address(torusCreateAndStake);
3499: torusCreateAndStake = TorusCreateAndStake(_torusCreateAndStake);
3503: address(torusCreateAndStake)
thinking
**Analyzing contract functions for risks**
exec
/bin/bash -lc 'rg -n "totalTorusBurnt" AUDIT_BUNDLE.txt' in /tmp/codex-3ovebsx6 succeeded in 6ms:
3366: uint256 public totalTorusBurnt;
3542: totalTorusBurnt += torusAmount;
3582: totalTorusBurnt += torusAmount;
3743: totalTorusBurnt += torusToBurn;
thinking
**Reviewing contract logic and potential issues**
exec
/bin/bash -lc 'rg -n "delegatecall" AUDIT_BUNDLE.txt' in /tmp/codex-3ovebsx6 succeeded in 9ms:
1160: (bool success, bytes memory returndata) = target.delegatecall(data);
thinking
**Reviewing potential vulnerabilities and attack vectors**
I’m piecing together possible security issues, focusing mainly on oracle manipulation, unchecked return values, external call patterns, and some minor access control concerns. There’s a lot here about TWAP price manipulation risks on Uniswap pools affecting ETH/TitanX/Torus swaps, subtle unchecked approvals and return values with ERC20 tokens, and some external calls made before updating state which might lead to reentrancy risks—although limited by token properties or nonReentrant guards elsewhere. Overall, I’m gathering findings to produce a concise audit highlighting the main exploitable or risky patterns.
thinking
**Evaluating swap functions and oracle risks**
exec
/bin/bash -lc "nl -ba contracts/src/TorusCreateAndStake.sol | sed -n '180,360p'" in /tmp/codex-3ovebsx6 succeeded in 12ms:
180
181 uint shares = _calculateShares(mintedTorus, lengthInDays);
182
183 StakeTorus memory stakePos;
184 stakePos.startDayIndex = currentDay;
185 stakePos.principal = mintedTorus;
186 stakePos.stakingDays = lengthInDays;
187 stakePos.startTime = block.timestamp;
188 stakePos.endTime = block.timestamp + (lengthInDays * CREATE_CYCLE_DURATION);
189 stakePos.shares = shares;
190 stakePos.claimedCreate = false;
191 stakePos.claimedStake = false;
192 stakePos.power = power;
193 stakePos.costETH = costETH;
194 stakePos.costTitanX = costTitanX;
195 stakePos.isCreate = true;
196
197 stakePositions[msg.sender].push(stakePos);
198 uint256 stakeIndex = stakePositions[msg.sender].length - 1;
199
thinking
**Reviewing line numbers for specific functions**
exec
/bin/bash -lc "nl -ba contracts/src/TorusCreateAndStake.sol | sed -n '470,640p'" in /tmp/codex-3ovebsx6 succeeded in 6ms:
470 if (stakePos.stakingDays == 1) revert NotEligibleForEarlyClaim();
471
472 uint256 totalDuration = stakePos.endTime - stakePos.startTime;
473 uint256 elapsed = block.timestamp - stakePos.startTime;
474
475 if (elapsed < (totalDuration / 2)) revert NotEligibleForEarlyClaim();
476 if (elapsed >= totalDuration) revert NotEligibleForEarlyClaim();
477
478 _checkAndUpdateRewardPool();
479 stakePos.claimedStake = true;
480
481 uint256 principal = stakePos.principal;
482 uint24 startDay = stakePos.startDayIndex;
483 uint24 todayIndex = getCurrentDayIndex();
484
485 uint256 daysElapsed = todayIndex > startDay
486 ? todayIndex - startDay
487 : 0;
488 if (daysElapsed > stakePos.stakingDays) {
489 daysElapsed = stakePos.stakingDays;
thinking
**Identifying key functions for swaps**
exec
/bin/bash -lc "nl -ba contracts/src/TorusBuyAndProcess.sol | sed -n '320,560p'" in /tmp/codex-3ovebsx6 succeeded in 6ms:
320 address token0,
321 address token1
322 ) = _sortAmounts(INITIAL_TITAN_X_FOR_LIQ, INITIAL_LP_MINT);
323
324 TransferHelper.safeApprove(token0, address(POSITION_MANAGER), amount0);
325 TransferHelper.safeApprove(token1, address(POSITION_MANAGER), amount1);
326
327 uint256 amount0Min = (amount0 * (100 - liquiditySlippage)) / 100;
328 uint256 amount1Min = (amount1 * (100 - liquiditySlippage)) / 100;
329
330 INonfungiblePositionManager.MintParams memory params =
331 INonfungiblePositionManager.MintParams({
332 token0: token0,
333 token1: token1,
334 fee: POOL_FEE,
335 tickLower: (TickMath.MIN_TICK / TICK_SPACING) * TICK_SPACING,
336 tickUpper: (TickMath.MAX_TICK / TICK_SPACING) * TICK_SPACING,
337 amount0Desired: amount0,
338 amount1Desired: amount1,
339 amount0Min: amount0Min,
thinking
**Locating line numbers for swap functions**
exec
/bin/bash -lc "nl -ba contracts/src/TorusBuyAndProcess.sol | sed -n '560,940p'" in /tmp/codex-3ovebsx6 succeeded in 8ms:
560 fractalTitanX = 0;
561 fractalETH = 0;
562 lastFractalRelease = block.timestamp;
563 }
564
565 function _calculateIntervalsTitanXBurn(
566 uint256 timeElapsed
567 )
568 internal
569 view
570 returns (
571 uint32 _lastIntervalNumber,
572 uint128 _totalAmountForInterval,
573 uint32 missedIntervals
574 )
575 {
576 missedIntervals = lastBurnedTitanXIntervalStartTimestamp == 0
577 ? (
578 timeElapsed <= INTERVAL_TIME
579 ? 0
thinking
**Rearranging swap function lines**
exec
/bin/bash -lc "nl -ba contracts/src/TorusBuyAndProcess.sol | sed -n '940,1220p'" in /tmp/codex-3ovebsx6 succeeded in 27ms:
940 * @param _deadline The deadline for the swap.
941 */
942 function swapTitanXForTorusAndBuild(
943 uint32 _deadline
944 ) external nonReentrant buildTitanXIntervalUpdate{
945 if (!liquidityAddedBuild) revert NotStartedYet();
946
947 IntervalBuild storage currInterval = titanXIntervalsBuild[
948 lastTitanXBuildIntervalNumber
949 ];
950 if (currInterval.amountBurned != 0) revert IntervalAlreadyUsed();
951
952 currInterval.amountBurned = currInterval.amountAllocated;
953 uint256 incentive = (currInterval.amountAllocated *
954 INCENTIVE_FEE_BUILD) / BPS_DENOM;
955
956 uint256 titanXToUse = currInterval.amountAllocated - incentive;
957 uint256 half = titanXToUse / 2;
958 uint256 remainder = titanXToUse - half;
959
thinking
**Preparing detailed oracle manipulation findings**
exec
/bin/bash -lc "nl -ba contracts/src/TorusCreateAndStake.sol | sed -n '640,760p'" in /tmp/codex-3ovebsx6 succeeded in 6ms:
640 gas: 30000
641 }("");
642 require(refundSuccess, "Refund transfer failed");
643 }
644
645 return requiredETH;
646 } else {
647 uint256 requiredGenesisTitanX = (costTitanX * torus.genesisFee()) /
648 BPS_DENOM;
649 uint256 requiredBurnTitanX = (costTitanX * torus.burnFee()) /
650 BPS_DENOM;
651 uint256 requiredBuildTitanX = (costTitanX * torus.buildFee()) /
652 BPS_DENOM;
653 uint256 requiredTitanXBurn = (costTitanX * torus.titanXBurnFee()) /
654 BPS_DENOM;
655
656 IERC20(TITAN_X_ADDRESS).safeTransferFrom(
657 msg.sender,
658 address(this),
659 costTitanX
thinking
**Composing oracle manipulation findings summary**
I'm gathering details on two oracle manipulation risks related to the use of short Uniswap TWAPs affecting fee calculations and swaps, writing a clear, structured JSON report with severity, evidence, locations, exploit scenarios, and recommendations for more robust oracles and swap restrictions.
codex
{"no_findings":false,"summary":"Found oracle-manipulation risks where Uniswap V3 TWAPs directly set ETH fees and swap minimum outputs, enabling underpayment or adverse swap execution if the pools are manipulated or observation windows are short.","findings":[{"severity":"medium","category":"oracle","title":"ETH fee calculation can be underpaid via manipulable Uniswap TWAP","exploit_scenario":"An attacker manipulates the TITAN_X/ETH Uniswap V3 pool (especially early when `oldestObservation` is small) to make TitanX appear cheaper, then calls `createTorus` or `stakeTorus` with ETH. `getEthAmountForTitanX` returns a lower `requiredETH`, letting the attacker mint/stake with less ETH than intended while still receiving full Torus creation benefits.","recommendation":"Use a more robust price oracle (e.g., Chainlink) or enforce a minimum TWAP window and sanity bounds (e.g., revert if TWAP age < N minutes or if deviation vs. a secondary feed exceeds a threshold). Consider requiring an off-chain price quote with bounds instead of relying solely on the pool’s TWAP.","evidence":"`getEthAmountForTitanX` uses a TWAP from `TITAN_X_ETH_POOL`, and `_distributeFees` uses it to set `requiredETH` for create/stake fees; the window is shortened to `oldestObservation` when it is less than 15 minutes, which weakens manipulation resistance.","locations":["contracts/src/TorusCreateAndStake.sol:588","contracts/src/TorusCreateAndStake.sol:608","contracts/src/TorusCreateAndStake.sol:612"]},{"severity":"medium","category":"oracle","title":"Protocol swaps use manipulable TWAPs for `amountOutMinimum`, enabling adverse-rate swaps","exploit_scenario":"Because swap minOuts are computed from the same Uniswap pools’ TWAPs (with a potentially short observation window), an attacker can manipulate the pool price and then trigger public `swap*AndBurn/Build` calls to execute swaps at a disadvantaged rate. This can drain burn/build allocations by forcing the protocol to swap at a manipulated price, while the attacker arbitrages the price distortion.","recommendation":"Use a more manipulation-resistant oracle (longer TWAP with enforced minimum age, multiple pools, or Chainlink), add deviation checks vs. spot price, and consider having trusted keepers supply `amountOutMinimum` with on-chain bounds. If possible, restrict swap execution to a keeper to reduce sandwich/manipulation risk.","evidence":"`_swapTitanXForTorus` and `_swapETHForTitanX` derive `amountOutMinimum` from `getTorusQuoteForTitanX`/`getTitanXQuoteForETH`, which use a TWAP capped by `oldestObservation` (potentially very short). The same oracle is used in TorusCreateAndStake’s internal swap as well.","locations":["contracts/src/TorusBuyAndProcess.sol:821","contracts/src/TorusBuyAndProcess.sol:1092","contracts/src/TorusBuyAndProcess.sol:1120","contracts/src/TorusBuyAndProcess.sol:1142","contracts/src/TorusCreateAndStake.sol:746"]}]}
tokens used
93,552
{
"codex": {
"ran_at": "2026-01-11T06:53:40.361861+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 43,
"import_count": 52,
"first_party_contracts_count": 37
},
"summary": "Found oracle-manipulation risks where Uniswap V3 TWAPs directly set ETH fees and swap minimum outputs, enabling underpayment or adverse swap execution if the pools are manipulated or observation windows are short.",
"raw_final": {
"summary": "Found oracle-manipulation risks where Uniswap V3 TWAPs directly set ETH fees and swap minimum outputs, enabling underpayment or adverse swap execution if the pools are manipulated or observation windows are short.",
"findings": [
{
"title": "ETH fee calculation can be underpaid via manipulable Uniswap TWAP",
"category": "oracle",
"evidence": "`getEthAmountForTitanX` uses a TWAP from `TITAN_X_ETH_POOL`, and `_distributeFees` uses it to set `requiredETH` for create/stake fees; the window is shortened to `oldestObservation` when it is less than 15 minutes, which weakens manipulation resistance.",
"severity": "medium",
"locations": [
"contracts/src/TorusCreateAndStake.sol:588",
"contracts/src/TorusCreateAndStake.sol:608",
"contracts/src/TorusCreateAndStake.sol:612"
],
"recommendation": "Use a more robust price oracle (e.g., Chainlink) or enforce a minimum TWAP window and sanity bounds (e.g., revert if TWAP age < N minutes or if deviation vs. a secondary feed exceeds a threshold). Consider requiring an off-chain price quote with bounds instead of relying solely on the pool\u2019s TWAP.",
"exploit_scenario": "An attacker manipulates the TITAN_X/ETH Uniswap V3 pool (especially early when `oldestObservation` is small) to make TitanX appear cheaper, then calls `createTorus` or `stakeTorus` with ETH. `getEthAmountForTitanX` returns a lower `requiredETH`, letting the attacker mint/stake with less ETH than intended while still receiving full Torus creation benefits."
},
{
"title": "Protocol swaps use manipulable TWAPs for `amountOutMinimum`, enabling adverse-rate swaps",
"category": "oracle",
"evidence": "`_swapTitanXForTorus` and `_swapETHForTitanX` derive `amountOutMinimum` from `getTorusQuoteForTitanX`/`getTitanXQuoteForETH`, which use a TWAP capped by `oldestObservation` (potentially very short). The same oracle is used in TorusCreateAndStake\u2019s internal swap as well.",
"severity": "medium",
"locations": [
"contracts/src/TorusBuyAndProcess.sol:821",
"contracts/src/TorusBuyAndProcess.sol:1092",
"contracts/src/TorusBuyAndProcess.sol:1120",
"contracts/src/TorusBuyAndProcess.sol:1142",
"contracts/src/TorusCreateAndStake.sol:746"
],
"recommendation": "Use a more manipulation-resistant oracle (longer TWAP with enforced minimum age, multiple pools, or Chainlink), add deviation checks vs. spot price, and consider having trusted keepers supply `amountOutMinimum` with on-chain bounds. If possible, restrict swap execution to a keeper to reduce sandwich/manipulation risk.",
"exploit_scenario": "Because swap minOuts are computed from the same Uniswap pools\u2019 TWAPs (with a potentially short observation window), an attacker can manipulate the pool price and then trigger public `swap*AndBurn/Build` calls to execute swaps at a disadvantaged rate. This can drain burn/build allocations by forcing the protocol to swap at a manipulated price, while the attacker arbitrages the price distortion."
}
],
"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 0x0013 0000000e: JUMPI 0000000f: PUSH1 0x00 00000011: DUP1 00000012: REVERT 00000013: JUMPDEST 00000014: PUSH1 0x00 00000016: SWAP1 00000017: DUP2 00000018: CALLDATALOAD 00000019: PUSH1 0xe0 0000001b: SHR 0000001c: SWAP1 0000001d: DUP2 0000001e: PUSH3 0x1dd3ea 00000022: EQ 00000023: PUSH2 0x20a7 00000026: JUMPI 00000027: POP 00000028: DUP1 00000029: PUSH4 0x038a0fc2 0000002e: EQ 0000002f: PUSH2 0x1ff8 00000032: JUMPI 00000033: DUP1 00000034: PUSH4 0x0421fd73 00000039: EQ 0000003a: PUSH2 0x1fda 0000003d: JUMPI 0000003e: DUP1 0000003f: PUSH4 0x11ce408e 00000044: EQ 00000045: PUSH2 0x1fb4 00000048: JUMPI 00000049: DUP1 0000004a: PUSH4 0x150b7a02 0000004f: EQ 00000050: PUSH2 0x1f44 00000053: JUMPI 00000054: DUP1 00000055: PUSH4 0x1766608a 0000005a: EQ 0000005b: PUSH2 0x1ed8 0000005e: JUMPI 0000005f: DUP1 00000060: PUSH4 0x1bea83fe 00000065: EQ 00000066: PUSH2 0x1ea9 00000069: JUMPI 0000006a: DUP1 0000006b: PUSH4 0x20918db7 00000070: EQ 00000071: PUSH2 0x1e85 00000074: JUMPI 00000075: DUP1 00000076: PUSH4 0x22d41f2f 0000007b: EQ 0000007c: PUSH2 0x1e6c 0000007f: JUMPI 00000080: DUP1 00000081: PUSH4 0x30dc71ac 00000086: EQ 00000087: PUSH2 0x1d70 0000008a: JUMPI 0000008b: DUP1 0000008c: PUSH4 0x34a4dd87 00000091: EQ 00000092: PUSH2 0x1d20 00000095: JUMPI 00000096: DUP1 00000097: PUSH4 0x39b6ce64 0000009c: EQ 0000009d: PUSH2 0x1be4 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0x3bef64b1 000000a7: EQ 000000a8: PUSH2 0x1bc6 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0x40f6ac31 000000b2: EQ 000000b3: PUSH2 0x1941 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0x4310b4ab 000000bd: EQ 000000be: PUSH2 0x1923 000000c1: JUMPI 000000c2: DUP1 000000c3: PUSH4 0x50fff5c7 000000c8: EQ 000000c9: PUSH2 0x18ff 000000cc: JUMPI 000000cd: DUP1 000000ce: PUSH4 0x522897f8 000000d3: EQ 000000d4: PUSH2 0x18e1 000000d7: JUMPI 000000d8: DUP1 000000d9: PUSH4 0x53ad9b96 000000de: EQ 000000df: PUSH2 0x1787 000000e2: JUMPI 000000e3: DUP1 000000e4: PUSH4 0x53c5ca60 000000e9: EQ 000000ea: PUSH2 0x16e4 000000ed: JUMPI 000000ee: DUP1 000000ef: PUSH4 0x5c083c93 000000f4: EQ 000000f5: PUSH2 0x16c6 000000f8: JUMPI 000000f9: DUP1 000000fa: PUSH4 0x5fcbd285 000000ff: EQ 00000100: PUSH2 0x1692 00000103: JUMPI 00000104: DUP1 00000105: PUSH4 0x61a0d03c 0000010a: EQ 0000010b: PUSH2 0x1674 0000010e: JUMPI 0000010f: DUP1 00000110: PUSH4 0x63273d5c 00000115: EQ 00000116: PUSH2 0x1650 00000119: JUMPI 0000011a: DUP1 0000011b: PUSH4 0x69ea8787 00000120: EQ 00000121: PUSH2 0x1600 00000124: JUMPI 00000125: DUP1 00000126: PUSH4 0x6faa5b5c 0000012b: EQ 0000012c: PUSH2 0x15dc 0000012f: JUMPI 00000130: DUP1 00000131: PUSH4 0x6ffc6987 00000136: EQ 00000137: PUSH2 0x154f 0000013a: JUMPI 0000013b: DUP1 0000013c: PUSH4 0x715018a6 00000141: EQ 00000142: PUSH2 0x14e8 00000145: JUMPI 00000146: DUP1 00000147: PUSH4 0x79ba5097 0000014c: EQ 0000014d: PUSH2 0x1460 00000150: JUMPI 00000151: DUP1 00000152: PUSH4 0x7e8c8212 00000157: EQ 00000158: PUSH2 0x1441 0000015b: JUMPI 0000015c: DUP1 0000015d: PUSH4 0x8c0c428d 00000162: EQ 00000163: PUSH2 0x1423 00000166: JUMPI 00000167: DUP1 00000168: PUSH4 0x8da5cb5b 0000016d: EQ 0000016e: PUSH2 0x13fa 00000171: JUMPI 00000172: DUP1 00000173: PUSH4 0x922bffbf 00000178: EQ 00000179: PUSH2 0x138e 0000017c: JUMPI 0000017d: DUP1 0000017e: PUSH4 0x92fa7553 00000183: EQ 00000184: PUSH2 0x1368 00000187: JUMPI 00000188: DUP1 00000189: PUSH4 0x995c1c43 0000018e: EQ 0000018f: PUSH2 0x1318 00000192: JUMPI 00000193: DUP1 00000194: PUSH4 0x9ed1f0f9 00000199: EQ 0000019a: PUSH2 0x12fa 0000019d: JUMPI 0000019e: DUP1 0000019f: PUSH4 0xa53466d3 000001a4: EQ 000001a5: PUSH2 0x12dc 000001a8: JUMPI 000001a9: DUP1 000001aa: PUSH4 0xa569d2c2 000001af: EQ 000001b0: PUSH2 0x1270 000001b3: JUMPI 000001b4: DUP1 000001b5: PUSH4 0xa5a35068 000001ba: EQ 000001bb: PUSH2 0x1253 000001be: JUMPI 000001bf: DUP1 000001c0: PUSH4 0xa6aaae96 000001c5: EQ 000001c6: PUSH2 0x0d3b 000001c9: JUMPI 000001ca: DUP1 000001cb: PUSH4 0xa9c0527a 000001d0: EQ 000001d1: PUSH2 0x0d1d 000001d4: JUMPI 000001d5: DUP1 000001d6: PUSH4 0xaded25c9 000001db: EQ 000001dc: PUSH2 0x0cff 000001df: JUMPI 000001e0: DUP1 000001e1: PUSH4 0xb58b5883 000001e6: EQ 000001e7: PUSH2 0x0c71 000001ea: JUMPI 000001eb: DUP1 000001ec: PUSH4 0xb80f2a97 000001f1: EQ 000001f2: PUSH2 0x0c4b 000001f5: JUMPI 000001f6: DUP1 000001f7: PUSH4 0xb8b57969 000001fc: EQ 000001fd: PUSH2 0x0c2d 00000200: JUMPI 00000201: DUP1 00000202: PUSH4 0xba140782 00000207: EQ 00000208: PUSH2 0x0bb7 0000020b: JUMPI 0000020c: DUP1 0000020d: PUSH4 0xbb268486 00000212: EQ 00000213: PUSH2 0x0b67 00000216: JUMPI 00000217: DUP1 00000218: PUSH4 0xbc354013 0000021d: EQ 0000021e: PUSH2 0x0b40 00000221: JUMPI 00000222: DUP1 00000223: PUSH4 0xbe86f022 00000228: EQ 00000229: PUSH2 0x0b22 0000022c: JUMPI 0000022d: DUP1 0000022e: PUSH4 0xc381da4f 00000233: EQ 00000234: PUSH2 0x0a87 00000237: JUMPI 00000238: DUP1 00000239: PUSH4 0xc93625c1 0000023e: EQ 0000023f: PUSH2 0x0a63 00000242: JUMPI 00000243: DUP1 00000244: PUSH4 0xccd00052 00000249: EQ 0000024a: PUSH2 0x0a45 0000024d: JUMPI 0000024e: DUP1 0000024f: PUSH4 0xd4328f78 00000254: EQ 00000255: PUSH2 0x0a27 00000258: JUMPI 00000259: DUP1 0000025a: PUSH4 0xd4fba9f2 0000025f: EQ 00000260: PUSH2 0x09e2 00000263: JUMPI 00000264: DUP1 00000265: PUSH4 0xd6d315a4 0000026a: EQ 0000026b: PUSH2 0x0884 0000026e: JUMPI 0000026f: DUP1 00000270: PUSH4 0xd7d74300 00000275: EQ 00000276: PUSH2 0x07e7 00000279: JUMPI 0000027a: DUP1 0000027b: PUSH4 0xd9443923 00000280: EQ 00000281: PUSH2 0x07c4 00000284: JUMPI 00000285: DUP1 00000286: PUSH4 0xd9a17529 0000028b: EQ 0000028c: PUSH2 0x07a6 0000028f: JUMPI 00000290: DUP1 00000291: PUSH4 0xd9c45398 00000296: EQ 00000297: PUSH2 0x0788 0000029a: JUMPI 0000029b: DUP1 0000029c: PUSH4 0xe30c3978 000002a1: EQ 000002a2: PUSH2 0x075f 000002a5: JUMPI 000002a6: DUP1 000002a7: PUSH4 0xe3221eb5 000002ac: EQ 000002ad: PUSH2 0x0670 000002b0: JUMPI 000002b1: DUP1 000002b2: PUSH4 0xe5bdccd7 000002b7: EQ 000002b8: PUSH2 0x064c 000002bb: JUMPI 000002bc: DUP1 000002bd: PUSH4 0xead5e794 000002c2: EQ 000002c3: PUSH2 0x0626 000002c6: JUMPI 000002c7: DUP1 000002c8: PUSH4 0xecb2d32d 000002cd: EQ 000002ce: PUSH2 0x0602 000002d1: JUMPI 000002d2: DUP1 000002d3: PUSH4 0xef474ad7 000002d8: EQ 000002d9: PUSH2 0x05dc 000002dc: JUMPI 000002dd: DUP1 000002de: PUSH4 0xf2fde38b 000002e3: EQ 000002e4: PUSH2 0x056e 000002e7: JUMPI 000002e8: DUP1 000002e9: PUSH4 0xf38d00f0 000002ee: EQ 000002ef: PUSH2 0x052d 000002f2: JUMPI 000002f3: DUP1 000002f4: PUSH4 0xf6b8cd5a 000002f9: EQ 000002fa: PUSH2 0x0511 000002fd: JUMPI 000002fe: DUP1 000002ff: PUSH4 0xfbeaee88 00000304: EQ 00000305: PUSH2 0x04f3 00000308: JUMPI 00000309: PUSH4 0xfc9b61ae 0000030e: EQ 0000030f: PUSH2 0x0317 00000312: JUMPI 00000313: PUSH1 0x00 00000315: DUP1 00000316: REVERT 00000317: JUMPDEST 00000318: CALLVALUE 00000319: PUSH2 0x04f0 0000031c: JUMPI 0000031d: PUSH1 0x20 0000031f: CALLDATASIZE 00000320: PUSH1 0x03 00000322: NOT 00000323: ADD 00000324: SLT 00000325: PUSH2 0x04f0 00000328: JUMPI 00000329: PUSH1 0x04 0000032b: CALLDATALOAD 0000032c: PUSH4 0xffffffff 00000331: DUP2 00000332: AND 00000333: DUP1 00000334: SWAP2 00000335: SUB 00000336: PUSH2 0x04ec 00000339: JUMPI 0000033a: PUSH2 0x0341 0000033d: PUSH2 0x346c 00000340: JUMP 00000341: JUMPDEST 00000342: PUSH2 0x0349 00000345: PUSH2 0x3063 00000348: JUMP 00000349: JUMPDEST 0000034a: PUSH1 0xff 0000034c: PUSH1 0x1c 0000034e: SLOAD 0000034f: PUSH1 0x40 00000351: SHR 00000352: AND 00000353: ISZERO 00000354: PUSH2 0x04dd 00000357: JUMPI 00000358: PUSH4 0xffffffff 0000035d: PUSH1 0x1a 0000035f: SLOAD 00000360: AND 00000361: DUP3 00000362: MSTORE 00000363: PUSH1 0x19 00000365: PUSH1 0x20 00000367: MSTORE 00000368: PUSH1 0x40 0000036a: DUP3 0000036b: KECCAK256 0000036c: DUP1 0000036d: SLOAD 0000036e: DUP1 0000036f: PUSH1 0x80 00000371: SHR 00000372: PUSH2 0x04ce 00000375: JUMPI 00000376: DUP2 00000377: SLOAD 00000378: PUSH1 0x01 0000037a: PUSH1 0x01 0000037c: PUSH1 0x80 0000037e: SHL 0000037f: SUB 00000380: SWAP1 00000381: DUP2 00000382: AND 00000383: PUSH1 0x80 00000385: SWAP3 00000386: SWAP1 00000387: SWAP3 00000388: SHL 00000389: PUSH1 0x01 0000038b: PUSH1 0x01 0000038d: PUSH1 0x80 0000038f: SHL 00000390: SUB 00000391: NOT 00000392: AND 00000393: SWAP2 00000394: SWAP1 00000395: SWAP2 00000396: OR 00000397: DUP3 00000398: SSTORE 00000399: SWAP1 0000039a: SLOAD 0000039b: AND 0000039c: SWAP1 0000039d: PUSH1 0x96 0000039f: DUP3 000003a0: MUL 000003a1: DUP3 000003a2: DUP2 000003a3: DIV 000003a4: PUSH1 0x96 000003a6: EQ 000003a7: DUP4 000003a8: ISZERO 000003a9: OR 000003aa: ISZERO 000003ab: PUSH2 0x04ba 000003ae: JUMPI 000003af: PUSH2 0x2710 000003b2: PUSH2 0x03bd 000003b5: SWAP2 000003b6: DIV 000003b7: DUP1 000003b8: SWAP4 000003b9: PUSH2 0x20fd 000003bc: JUMP 000003bd: JUMPDEST 000003be: SWAP2 000003bf: PUSH2 0x0417 000003c2: DUP4 000003c3: PUSH1 0x01 000003c5: SHR 000003c6: SWAP3 000003c7: PUSH2 0x0410 000003ca: DUP2 000003cb: PUSH2 0x03d4 000003ce: DUP7 000003cf: DUP9 000003d0: PUSH2 0x20fd 000003d3: JUMP 000003d4: JUMPDEST 000003d5: SWAP6 000003d6: PUSH2 0x03e1 000003d9: DUP9 000003da: PUSH1 0x1d 000003dc: SLOAD 000003dd: PUSH2 0x2120 000003e0: JUMP 000003e1: JUMPDEST 000003e2: PUSH1 0x1d 000003e4: SSTORE 000003e5: PUSH2 0x03f9 000003e8: PUSH2 0x03f1 000003eb: DUP8 000003ec: DUP11 000003ed: PUSH2 0x2120 000003f0: JUMP 000003f1: JUMPDEST 000003f2: PUSH1 0x1f 000003f4: SLOAD 000003f5: PUSH2 0x20fd 000003f8: JUMP 000003f9: JUMPDEST 000003fa: PUSH1 0x1f 000003fc: SSTORE 000003fd: PUSH2 0x0408 00000400: DUP9 00000401: PUSH1 0x0a 00000403: SLOAD 00000404: PUSH2 0x2120 00000407: JUMP 00000408: JUMPDEST 00000409: PUSH1 0x0a 0000040b: SSTORE 0000040c: PUSH2 0x379f 0000040f: JUMP 00000410: JUMPDEST 00000411: DUP1 00000412: SWAP5 00000413: PUSH2 0x3beb 00000416: JUMP 00000417: JUMPDEST 00000418: PUSH1 0x14 0000041a: SLOAD 0000041b: PUSH3 0x910500 0000041f: DUP2 00000420: ADD 00000421: DUP1 00000422: SWAP2 00000423: GT 00000424: PUSH2 0x04a6 00000427: JUMPI 00000428: SWAP1 00000429: PUSH2 0x046c 0000042c: SWAP2 0000042d: TIMESTAMP 0000042e: LT 0000042f: ISZERO 00000430: PUSH2 0x0499 00000433: JUMPI 00000434: JUMPDEST 00000435: PUSH2 0x043c 00000438: PUSH2 0x2ece 0000043b: JUMP 0000043c: JUMPDEST 0000043d: CALLER 0000043e: PUSH32 0x000000000000000000000000f19308f923582a6f7c465e5ce7a9dc1bec6665b1 0000045f: PUSH1 0x01 00000461: PUSH1 0x01 00000463: PUSH1 0xa0 00000465: SHL 00000466: SUB 00000467: AND 00000468: PUSH2 0x3a2f 0000046b: JUMP 0000046c: JUMPDEST 0000046d: CALLER 0000046e: SWAP2 0000046f: PUSH32 0x302485b9d53be977b4eb410b57770a1772f7ac7e5a137ec6ac179e403f69b541 00000490: DUP5 00000491: DUP1 00000492: LOG4 00000493: PUSH1 0x01 00000495: DUP2 00000496: SSTORE 00000497: DUP1 00000498: RETURN 00000499: JUMPDEST 0000049a: PUSH2 0x04a1 0000049d: PUSH2 0x216b 000004a0: JUMP 000004a1: JUMPDEST 000004a2: PUSH2 0x0434 000004a5: JUMP 000004a6: JUMPDEST 000004a7: PUSH4 0x4e487b71 000004ac: PUSH1 0xe0 000004ae: SHL 000004af: DUP6 000004b0: MSTORE 000004b1: PUSH1 0x11 000004b3: PUSH1 0x04 000004b5: MSTORE 000004b6: PUSH1 0x24 000004b8: DUP6 000004b9: REVERT 000004ba: JUMPDEST 000004bb: PUSH4 0x4e487b71 000004c0: PUSH1 0xe0 000004c2: SHL 000004c3: DUP5 000004c4: MSTORE 000004c5: PUSH1 0x11 000004c7: PUSH1 0x04 000004c9: MSTORE 000004ca: PUSH1 0x24 000004cc: DUP5 000004cd: REVERT 000004ce: JUMPDEST 000004cf: PUSH4 0xc0f8532b 000004d4: PUSH1 0xe0 000004d6: SHL 000004d7: DUP5 000004d8: MSTORE 000004d9: PUSH1 0x04 000004db: DUP5 000004dc: REVERT 000004dd: JUMPDEST 000004de: PUSH4 0x1864d7ab 000004e3: PUSH1 0xe2 000004e5: SHL 000004e6: DUP3 000004e7: MSTORE 000004e8: PUSH1 0x04 000004ea: DUP3 000004eb: REVERT 000004ec: JUMPDEST 000004ed: POP 000004ee: DUP1 000004ef: REVERT 000004f0: JUMPDEST 000004f1: DUP1 000004f2: REVERT 000004f3: JUMPDEST 000004f4: POP 000004f5: CALLVALUE 000004f6: PUSH2 0x04f0 000004f9: JUMPI 000004fa: DUP1 000004fb: PUSH1 0x03 000004fd: NOT 000004fe: CALLDATASIZE 000004ff: ADD 00000500: SLT 00000501: PUSH2 0x04f0 00000504: JUMPI 00000505: PUSH1 0x20 00000507: PUSH1 0x0c 00000509: SLOAD 0000050a: PUSH1 0x40 0000050c: MLOAD 0000050d: SWAP1 0000050e: DUP2 0000050f: MSTORE 00000510: RETURN 00000511: JUMPDEST 00000512: POP 00000513: CALLVALUE 00000514: PUSH2 0x04f0 00000517: JUMPI 00000518: DUP1 00000519: PUSH1 0x03 0000051b: NOT 0000051c: CALLDATASIZE 0000051d: ADD 0000051e: SLT 0000051f: PUSH2 0x04f0 00000522: JUMPI 00000523: PUSH2 0x052a 00000526: PUSH2 0x2ece 00000529: JUMP 0000052a: JUMPDEST 0000052b: DUP1 0000052c: RETURN 0000052d: JUMPDEST 0000052e: POP 0000052f: CALLVALUE 00000530: PUSH2 0x04f0 00000533: JUMPI 00000534: DUP1 00000535: PUSH1 0x03 00000537: NOT 00000538: CALLDATASIZE 00000539: ADD 0000053a: SLT 0000053b: PUSH2 0x04f0 0000053e: JUMPI 0000053f: PUSH1 0x20 00000541: PUSH1 0x40 00000543: MLOAD 00000544: PUSH4 0xffffffff 00000549: PUSH32 0x00000000000000000000000000000000000000000000000000000000686fffa0 0000056a: AND 0000056b: DUP2 0000056c: MSTORE 0000056d: RETURN 0000056e: JUMPDEST 0000056f: POP 00000570: CALLVALUE 00000571: PUSH2 0x04f0 00000574: JUMPI 00000575: PUSH1 0x20 00000577: CALLDATASIZE 00000578: PUSH1 0x03 0000057a: NOT 0000057b: ADD 0000057c: SLT 0000057d: PUSH2 0x04f0 00000580: JUMPI 00000581: PUSH2 0x0588 00000584: PUSH2 0x20cc 00000587: JUMP 00000588: JUMPDEST 00000589: PUSH2 0x0590 0000058c: PUSH2 0x32d2 0000058f: JUMP 00000590: JUMPDEST 00000591: PUSH1 0x02 00000593: DUP1 00000594: SLOAD 00000595: PUSH1 0x01 00000597: PUSH1 0x01 00000599: PUSH1 0xa0 0000059b: SHL 0000059c: SUB 0000059d: NOT 0000059e: AND 0000059f: PUSH1 0x01 000005a1: PUSH1 0x01 000005a3: PUSH1 0xa0 000005a5: SHL 000005a6: SUB 000005a7: SWAP3 000005a8: DUP4 000005a9: AND 000005aa: SWAP1 000005ab: DUP2 000005ac: OR 000005ad: SWAP1 000005ae: SWAP2 000005af: SSTORE 000005b0: PUSH1 0x01 000005b2: SLOAD 000005b3: SWAP1 000005b4: SWAP2 000005b5: AND 000005b6: PUSH32 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700 000005d7: DUP4 000005d8: DUP1 000005d9: LOG3 000005da: DUP1 000005db: RETURN 000005dc: JUMPDEST 000005dd: POP 000005de: CALLVALUE 000005df: PUSH2 0x04f0 000005e2: JUMPI 000005e3: DUP1 000005e4: PUSH1 0x03 000005e6: NOT 000005e7: CALLDATASIZE 000005e8: ADD 000005e9: SLT 000005ea: PUSH2 0x04f0 000005ed: JUMPI 000005ee: PUSH1 0x20 000005f0: PUSH4 0xffffffff 000005f5: PUSH1 0x1a 000005f7: SLOAD 000005f8: DUP3 000005f9: SHR 000005fa: AND 000005fb: PUSH1 0x40 000005fd: MLOAD 000005fe: SWAP1 000005ff: DUP2 00000600: MSTORE 00000601: RETURN 00000602: JUMPDEST 00000603: POP 00000604: CALLVALUE 00000605: PUSH2 0x04f0 00000608: JUMPI 00000609: DUP1 0000060a: PUSH1 0x03 0000060c: NOT 0000060d: CALLDATASIZE 0000060e: ADD 0000060f: SLT 00000610: PUSH2 0x04f0 00000613: JUMPI 00000614: PUSH1 0x20 00000616: PUSH1 0xff 00000618: PUSH1 0x18 0000061a: SLOAD 0000061b: PUSH1 0x48 0000061d: SHR 0000061e: AND 0000061f: PUSH1 0x40 00000621: MLOAD 00000622: SWAP1 00000623: DUP2 00000624: MSTORE 00000625: RETURN 00000626: JUMPDEST 00000627: POP 00000628: CALLVALUE 00000629: PUSH2 0x04f0 0000062c: JUMPI 0000062d: DUP1 0000062e: PUSH1 0x03 00000630: NOT 00000631: CALLDATASIZE 00000632: ADD 00000633: SLT 00000634: PUSH2 0x04f0 00000637: JUMPI 00000638: PUSH1 0x20 0000063a: PUSH4 0xffffffff 0000063f: PUSH1 0x18 00000641: SLOAD 00000642: DUP3 00000643: SHR 00000644: AND 00000645: PUSH1 0x40 00000647: MLOAD 00000648: SWAP1 00000649: DUP2 0000064a: MSTORE 0000064b: RETURN 0000064c: JUMPDEST 0000064d: POP 0000064e: CALLVALUE 0000064f: PUSH2 0x04f0 00000652: JUMPI 00000653: DUP1 00000654: PUSH1 0x03 00000656: NOT 00000657: CALLDATASIZE 00000658: ADD 00000659: SLT 0000065a: PUSH2 0x04f0 0000065d: JUMPI 0000065e: PUSH1 0x20 00000660: PUSH4 0xffffffff 00000665: PUSH1 0x16 00000667: SLOAD 00000668: AND 00000669: PUSH1 0x40 0000066b: MLOAD 0000066c: SWAP1 0000066d: DUP2 0000066e: MSTORE 0000066f: RETURN 00000670: JUMPDEST 00000671: POP 00000672: DUP1 00000673: PUSH1 0x03 00000675: NOT 00000676: CALLDATASIZE 00000677: ADD 00000678: SLT 00000679: PUSH2 0x04f0 0000067c: JUMPI 0000067d: CALLVALUE 0000067e: ISZERO 0000067f: PUSH2 0x0750 00000682: JUMPI 00000683: PUSH4 0xffffffff 00000688: PUSH32 0x00000000000000000000000000000000000000000000000000000000686fffa0 000006a9: AND 000006aa: TIMESTAMP 000006ab: GT 000006ac: DUP1 000006ad: PUSH2 0x0731 000006b0: JUMPI 000006b1: JUMPDEST 000006b2: PUSH2 0x0724 000006b5: JUMPI 000006b6: JUMPDEST 000006b7: PUSH1 0x1c 000006b9: CALLVALUE 000006ba: MUL 000006bb: CALLVALUE 000006bc: DUP2 000006bd: DIV 000006be: PUSH1 0x1c 000006c0: SUB 000006c1: PUSH2 0x0710 000006c4: JUMPI 000006c5: PUSH1 0x64 000006c7: PUSH2 0x06eb 000006ca: SWAP2 000006cb: DIV 000006cc: PUSH2 0x06e0 000006cf: PUSH2 0x06d8 000006d2: DUP3 000006d3: CALLVALUE 000006d4: PUSH2 0x20fd 000006d7: JUMP 000006d8: JUMPDEST 000006d9: PUSH1 0x11 000006db: SLOAD 000006dc: PUSH2 0x2120 000006df: JUMP 000006e0: JUMPDEST 000006e1: PUSH1 0x11 000006e3: SSTORE 000006e4: PUSH1 0x13 000006e6: SLOAD 000006e7: PUSH2 0x2120 000006ea: JUMP 000006eb: JUMPDEST 000006ec: PUSH1 0x13 000006ee: SSTORE 000006ef: PUSH1 0x14 000006f1: SLOAD 000006f2: PUSH3 0x910500 000006f6: DUP2 000006f7: ADD 000006f8: DUP1 000006f9: SWAP2 000006fa: GT 000006fb: PUSH2 0x0710 000006fe: JUMPI 000006ff: TIMESTAMP 00000700: LT 00000701: ISZERO 00000702: PUSH2 0x0708 00000705: JUMPI 00000706: DUP1 00000707: RETURN 00000708: JUMPDEST 00000709: PUSH2 0x052a 0000070c: PUSH2 0x216b 0000070f: JUMP 00000710: JUMPDEST 00000711: PUSH4 0x4e487b71 00000716: PUSH1 0xe0 00000718: SHL 00000719: DUP3 0000071a: MSTORE 0000071b: PUSH1 0x11 0000071d: PUSH1 0x04 0000071f: MSTORE 00000720: PUSH1 0x24 00000722: DUP3 00000723: REVERT 00000724: JUMPDEST 00000725: PUSH2 0x072c 00000728: PUSH2 0x348e 0000072b: JUMP 0000072c: JUMPDEST 0000072d: PUSH2 0x06b6 00000730: JUMP 00000731: JUMPDEST 00000732: POP 00000733: PUSH2 0x0258 00000736: PUSH2 0x074a 00000739: PUSH4 0xffffffff 0000073e: PUSH1 0x18 00000740: SLOAD 00000741: PUSH1 0x20 00000743: SHR 00000744: AND 00000745: TIMESTAMP 00000746: PUSH2 0x20fd 00000749: JUMP 0000074a: JUMPDEST 0000074b: GT 0000074c: PUSH2 0x06b1 0000074f: JUMP 00000750: JUMPDEST 00000751: PUSH4 0xb4fa3fb3 00000756: PUSH1 0xe0 00000758: SHL 00000759: DUP2 0000075a: MSTORE 0000075b: PUSH1 0x04 0000075d: SWAP1 0000075e: REVERT 0000075f: JUMPDEST 00000760: POP 00000761: CALLVALUE 00000762: PUSH2 0x04f0 00000765: JUMPI 00000766: DUP1 00000767: PUSH1 0x03 00000769: NOT 0000076a: CALLDATASIZE 0000076b: ADD 0000076c: SLT 0000076d: PUSH2 0x04f0 00000770: JUMPI 00000771: PUSH1 0x02 00000773: SLOAD 00000774: PUSH1 0x40 00000776: MLOAD 00000777: PUSH1 0x01 00000779: PUSH1 0x01 0000077b: PUSH1 0xa0 0000077d: SHL 0000077e: SUB 0000077f: SWAP1 00000780: SWAP2 00000781: AND 00000782: DUP2 00000783: MSTORE 00000784: PUSH1 0x20 00000786: SWAP1 00000787: RETURN 00000788: JUMPDEST 00000789: POP 0000078a: CALLVALUE 0000078b: PUSH2 0x04f0 0000078e: JUMPI 0000078f: DUP1 00000790: PUSH1 0x03 00000792: NOT 00000793: CALLDATASIZE 00000794: ADD 00000795: SLT 00000796: PUSH2 0x04f0 00000799: JUMPI 0000079a: PUSH1 0x20 0000079c: PUSH1 0x1d 0000079e: SLOAD 0000079f: PUSH1 0x40 000007a1: MLOAD 000007a2: SWAP1 000007a3: DUP2 000007a4: MSTORE 000007a5: RETURN 000007a6: JUMPDEST 000007a7: POP 000007a8: CALLVALUE 000007a9: PUSH2 0x04f0 000007ac: JUMPI 000007ad: DUP1 000007ae: PUSH1 0x03 000007b0: NOT 000007b1: CALLDATASIZE 000007b2: ADD 000007b3: SLT 000007b4: PUSH2 0x04f0 000007b7: JUMPI 000007b8: PUSH1 0x20 000007ba: PUSH1 0x1e 000007bc: SLOAD 000007bd: PUSH1 0x40 000007bf: MLOAD 000007c0: SWAP1 000007c1: DUP2 000007c2: MSTORE 000007c3: RETURN 000007c4: JUMPDEST 000007c5: POP 000007c6: CALLVALUE 000007c7: PUSH2 0x04f0 000007ca: JUMPI 000007cb: DUP1 000007cc: PUSH1 0x03 000007ce: NOT 000007cf: CALLDATASIZE 000007d0: ADD 000007d1: SLT 000007d2: PUSH2 0x04f0 000007d5: JUMPI 000007d6: PUSH1 0x20 000007d8: PUSH1 0xff 000007da: PUSH1 0x05 000007dc: SLOAD 000007dd: AND 000007de: PUSH1 0x40 000007e0: MLOAD 000007e1: SWAP1 000007e2: ISZERO 000007e3: ISZERO 000007e4: DUP2 000007e5: MSTORE 000007e6: RETURN 000007e7: JUMPDEST 000007e8: POP 000007e9: CALLVALUE 000007ea: PUSH2 0x04f0 000007ed: JUMPI 000007ee: PUSH1 0x20 000007f0: CALLDATASIZE 000007f1: PUSH1 0x03 000007f3: NOT 000007f4: ADD 000007f5: SLT 000007f6: PUSH2 0x04f0 000007f9: JUMPI 000007fa: PUSH1 0x04 000007fc: CALLDATALOAD 000007fd: PUSH1 0xff 000007ff: DUP2 00000800: AND 00000801: SWAP1 00000802: DUP2 00000803: DUP2 00000804: SUB 00000805: PUSH2 0x0880 00000808: JUMPI 00000809: PUSH2 0x0810 0000080c: PUSH2 0x32d2 0000080f: JUMP 00000810: JUMPDEST 00000811: PUSH1 0x64 00000813: DUP3 00000814: GT 00000815: DUP1 00000816: ISZERO 00000817: PUSH2 0x0876 0000081a: JUMPI 0000081b: JUMPDEST 0000081c: PUSH2 0x0867 0000081f: JUMPI 00000820: PUSH32 0x58897fd62867a3483c79f9ab9742ec64537a4662a8833601685976c487d72e67 00000841: SWAP2 00000842: PUSH1 0x20 00000844: SWAP2 00000845: PUSH1 0xff 00000847: PUSH1 0x48 00000849: SHL 0000084a: PUSH1 0x18 0000084c: SLOAD 0000084d: SWAP2 0000084e: PUSH1 0x48 00000850: SHL 00000851: AND 00000852: SWAP1 00000853: PUSH1 0xff 00000855: PUSH1 0x48 00000857: SHL 00000858: NOT 00000859: AND 0000085a: OR 0000085b: PUSH1 0x18 0000085d: SSTORE 0000085e: PUSH1 0x40 00000860: MLOAD 00000861: SWAP1 00000862: DUP2 00000863: MSTORE 00000864: LOG1 00000865: DUP1 00000866: RETURN 00000867: JUMPDEST 00000868: PUSH4 0xb4fa3fb3 0000086d: PUSH1 0xe0 0000086f: SHL 00000870: DUP4 00000871: MSTORE 00000872: PUSH1 0x04 00000874: DUP4 00000875: REVERT 00000876: JUMPDEST 00000877: POP 00000878: PUSH1 0x02 0000087a: DUP3 0000087b: LT 0000087c: PUSH2 0x081b 0000087f: JUMP 00000880: JUMPDEST 00000881: DUP3 00000882: DUP1 00000883: REVERT 00000884: JUMPDEST 00000885: POP 00000886: CALLVALUE 00000887: PUSH2 0x04f0 0000088a: JUMPI 0000088b: PUSH1 0x20 0000088d: CALLDATASIZE 0000088e: PUSH1 0x03 00000890: NOT 00000891: ADD 00000892: SLT 00000893: PUSH2 0x04f0 00000896: JUMPI 00000897: PUSH1 0x04 00000899: CALLDATALOAD 0000089a: PUSH4 0xffffffff 0000089f: DUP2 000008a0: AND 000008a1: DUP1 000008a2: SWAP2 000008a3: SUB 000008a4: PUSH2 0x04ec 000008a7: JUMPI 000008a8: PUSH2 0x08af 000008ab: PUSH2 0x346c 000008ae: JUMP 000008af: JUMPDEST 000008b0: PUSH2 0x08b7 000008b3: PUSH2 0x32fb 000008b6: JUMP 000008b7: JUMPDEST 000008b8: PUSH1 0xff 000008ba: PUSH1 0x05 000008bc: SLOAD 000008bd: AND 000008be: ISZERO 000008bf: PUSH2 0x04dd 000008c2: JUMPI 000008c3: PUSH4 0xffffffff 000008c8: PUSH1 0x16 000008ca: SLOAD 000008cb: AND 000008cc: DUP3 000008cd: MSTORE 000008ce: PUSH1 0x15 000008d0: PUSH1 0x20 000008d2: MSTORE 000008d3: PUSH1 0x40 000008d5: DUP3 000008d6: KECCAK256 000008d7: DUP1 000008d8: SLOAD 000008d9: DUP1 000008da: PUSH1 0x80 000008dc: SHR 000008dd: PUSH2 0x09d3 000008e0: JUMPI 000008e1: DUP2 000008e2: SLOAD 000008e3: PUSH1 0x01 000008e5: PUSH1 0x01 000008e7: PUSH1 0x80 000008e9: SHL 000008ea: SUB 000008eb: SWAP1 000008ec: DUP2 000008ed: AND 000008ee: PUSH1 0x80 000008f0: DUP4 000008f1: SWAP1 000008f2: SHL 000008f3: PUSH1 0x01 000008f5: PUSH1 0x01 000008f7: PUSH1 0x80 000008f9: SHL 000008fa: SUB 000008fb: NOT 000008fc: AND 000008fd: OR 000008fe: DUP4 000008ff: SSTORE 00000900: AND 00000901: PUSH1 0x01 00000903: PUSH1 0x01 00000905: PUSH1 0x80 00000907: SHL 00000908: SUB 00000909: DUP3 0000090a: SLOAD 0000090b: AND 0000090c: PUSH1 0x96 0000090e: DUP2 0000090f: MUL 00000910: SWAP1 00000911: DUP1 00000912: DUP3 00000913: DIV 00000914: PUSH1 0x96 00000916: EQ 00000917: SWAP1 00000918: ISZERO 00000919: OR 0000091a: ISZERO 0000091b: PUSH2 0x04a6 0000091e: JUMPI 0000091f: PUSH1 0x01 00000921: PUSH1 0x01 00000923: PUSH1 0x80 00000925: SHL 00000926: SUB 00000927: PUSH2 0x0942 0000092a: PUSH2 0x093b 0000092d: PUSH2 0x2710 00000930: PUSH2 0x096b 00000933: SWAP5 00000934: DIV 00000935: DUP1 00000936: SWAP6 00000937: PUSH2 0x20fd 0000093a: JUMP 0000093b: JUMPDEST 0000093c: SWAP6 0000093d: DUP7 0000093e: PUSH2 0x379f 00000941: JUMP 00000942: JUMPDEST 00000943: SWAP4 00000944: PUSH2 0x094f 00000947: DUP7 00000948: PUSH1 0x08 0000094a: SLOAD 0000094b: PUSH2 0x2120 0000094e: JUMP 0000094f: JUMPDEST 00000950: PUSH1 0x08 00000952: SSTORE 00000953: PUSH2 0x095e 00000956: DUP6 00000957: PUSH1 0x06 00000959: SLOAD 0000095a: PUSH2 0x2120 0000095d: JUMP 0000095e: JUMPDEST 0000095f: PUSH1 0x06 00000961: SSTORE 00000962: SLOAD 00000963: AND 00000964: PUSH1 0x10 00000966: SLOAD 00000967: PUSH2 0x20fd 0000096a: JUMP 0000096b: JUMPDEST 0000096c: PUSH1 0x10 0000096e: SSTORE 0000096f: PUSH1 0x14 00000971: SLOAD 00000972: PUSH3 0x910500 00000976: DUP2 00000977: ADD 00000978: DUP1 00000979: SWAP2 0000097a: GT 0000097b: PUSH2 0x04a6 0000097e: JUMPI 0000097f: SWAP1 00000980: PUSH2 0x0999 00000983: SWAP2 00000984: TIMESTAMP 00000985: LT 00000986: ISZERO 00000987: PUSH2 0x09c6 0000098a: JUMPI 0000098b: JUMPDEST 0000098c: PUSH2 0x0993 0000098f: PUSH2 0x2ece 00000992: JUMP 00000993: JUMPDEST 00000994: CALLER 00000995: PUSH2 0x3957 00000998: JUMP 00000999: JUMPDEST 0000099a: CALLER 0000099b: SWAP2 0000099c: PUSH32 0x1b3ed074dce570943c9d4e66776a060e8ac73af4f6b002482b09e561d90f038c 000009bd: DUP5 000009be: DUP1 000009bf: LOG4 000009c0: PUSH1 0x01 000009c2: DUP2 000009c3: SSTORE 000009c4: DUP1 000009c5: RETURN 000009c6: JUMPDEST 000009c7: PUSH2 0x09ce 000009ca: PUSH2 0x216b 000009cd: JUMP 000009ce: JUMPDEST 000009cf: PUSH2 0x098b 000009d2: JUMP 000009d3: JUMPDEST 000009d4: PUSH4 0x31bbcb21 000009d9: PUSH1 0xe1 000009db: SHL 000009dc: DUP5 000009dd: MSTORE 000009de: PUSH1 0x04 000009e0: DUP5 000009e1: REVERT 000009e2: JUMPDEST 000009e3: POP 000009e4: CALLVALUE 000009e5: PUSH2 0x04f0 000009e8: JUMPI 000009e9: DUP1 000009ea: PUSH1 0x03 000009ec: NOT 000009ed: CALLDATASIZE 000009ee: ADD 000009ef: SLT 000009f0: PUSH2 0x04f0 000009f3: JUMPI 000009f4: PUSH1 0x40 000009f6: MLOAD 000009f7: PUSH32 0x000000000000000000000000b47f575807fc5466285e1277ef8acfbb5c6686e8 00000a18: PUSH1 0x01 00000a1a: PUSH1 0x01 00000a1c: PUSH1 0xa0 00000a1e: SHL 00000a1f: SUB 00000a20: AND 00000a21: DUP2 00000a22: MSTORE 00000a23: PUSH1 0x20 00000a25: SWAP1 00000a26: RETURN 00000a27: JUMPDEST 00000a28: POP 00000a29: CALLVALUE 00000a2a: PUSH2 0x04f0 00000a2d: JUMPI 00000a2e: DUP1 00000a2f: PUSH1 0x03 00000a31: NOT 00000a32: CALLDATASIZE 00000a33: ADD 00000a34: SLT 00000a35: PUSH2 0x04f0 00000a38: JUMPI 00000a39: PUSH1 0x20 00000a3b: PUSH1 0x11 00000a3d: SLOAD 00000a3e: PUSH1 0x40 00000a40: MLOAD 00000a41: SWAP1 00000a42: DUP2 00000a43: MSTORE 00000a44: RETURN 00000a45: JUMPDEST 00000a46: POP 00000a47: CALLVALUE 00000a48: PUSH2 0x04f0 00000a4b: JUMPI 00000a4c: DUP1 00000a4d: PUSH1 0x03 00000a4f: NOT 00000a50: CALLDATASIZE 00000a51: ADD 00000a52: SLT 00000a53: PUSH2 0x04f0 00000a56: JUMPI 00000a57: PUSH1 0x20 00000a59: PUSH1 0x0f 00000a5b: SLOAD 00000a5c: PUSH1 0x40 00000a5e: MLOAD 00000a5f: SWAP1 00000a60: DUP2 00000a61: MSTORE 00000a62: RETURN 00000a63: JUMPDEST 00000a64: POP 00000a65: CALLVALUE 00000a66: PUSH2 0x04f0 00000a69: JUMPI 00000a6a: DUP1 00000a6b: PUSH1 0x03 00000a6d: NOT 00000a6e: CALLDATASIZE 00000a6f: ADD 00000a70: SLT 00000a71: PUSH2 0x04f0 00000a74: JUMPI 00000a75: PUSH1 0x20 00000a77: PUSH4 0xffffffff 00000a7c: PUSH1 0x1c 00000a7e: SLOAD 00000a7f: AND 00000a80: PUSH1 0x40 00000a82: MLOAD 00000a83: SWAP1 00000a84: DUP2 00000a85: MSTORE 00000a86: RETURN 00000a87: JUMPDEST 00000a88: POP 00000a89: DUP1 00000a8a: PUSH1 0x03 00000a8c: NOT 00000a8d: CALLDATASIZE 00000a8e: ADD 00000a8f: SLT 00000a90: PUSH2 0x04f0 00000a93: JUMPI 00000a94: CALLVALUE 00000a95: ISZERO 00000a96: PUSH2 0x0750 00000a99: JUMPI 00000a9a: PUSH4 0xffffffff 00000a9f: PUSH32 0x00000000000000000000000000000000000000000000000000000000686fffa0 00000ac0: AND 00000ac1: TIMESTAMP 00000ac2: GT 00000ac3: DUP1 00000ac4: PUSH2 0x0b03 00000ac7: JUMPI 00000ac8: JUMPDEST 00000ac9: PUSH2 0x0af6 00000acc: JUMPI 00000acd: JUMPDEST 00000ace: PUSH2 0x0ad9 00000ad1: CALLVALUE 00000ad2: PUSH1 0x20 00000ad4: SLOAD 00000ad5: PUSH2 0x2120 00000ad8: JUMP 00000ad9: JUMPDEST 00000ada: PUSH1 0x20 00000adc: SSTORE 00000add: PUSH1 0x14 00000adf: SLOAD 00000ae0: PUSH3 0x910500 00000ae4: DUP2 00000ae5: ADD 00000ae6: DUP1 00000ae7: SWAP2 00000ae8: GT 00000ae9: PUSH2 0x0710 00000aec: JUMPI 00000aed: TIMESTAMP 00000aee: LT 00000aef: ISZERO 00000af0: PUSH2 0x0708 00000af3: JUMPI 00000af4: DUP1 00000af5: RETURN 00000af6: JUMPDEST 00000af7: PUSH2 0x0afe 00000afa: PUSH2 0x3a7a 00000afd: JUMP 00000afe: JUMPDEST 00000aff: PUSH2 0x0acd 00000b02: JUMP 00000b03: JUMPDEST 00000b04: POP 00000b05: PUSH2 0x0258 00000b08: PUSH2 0x0b1c 00000b0b: PUSH4 0xffffffff 00000b10: PUSH1 0x1c 00000b12: SLOAD 00000b13: PUSH1 0x20 00000b15: SHR 00000b16: AND 00000b17: TIMESTAMP 00000b18: PUSH2 0x20fd 00000b1b: JUMP 00000b1c: JUMPDEST 00000b1d: GT 00000b1e: PUSH2 0x0ac8 00000b21: JUMP 00000b22: JUMPDEST 00000b23: POP 00000b24: CALLVALUE 00000b25: PUSH2 0x04f0 00000b28: JUMPI 00000b29: DUP1 00000b2a: PUSH1 0x03 00000b2c: NOT 00000b2d: CALLDATASIZE 00000b2e: ADD 00000b2f: SLT 00000b30: PUSH2 0x04f0 00000b33: JUMPI 00000b34: PUSH1 0x20 00000b36: PUSH1 0x0e 00000b38: SLOAD 00000b39: PUSH1 0x40 00000b3b: MLOAD 00000b3c: SWAP1 00000b3d: DUP2 00000b3e: MSTORE 00000b3f: RETURN 00000b40: JUMPDEST 00000b41: POP 00000b42: CALLVALUE 00000b43: PUSH2 0x04f0 00000b46: JUMPI 00000b47: PUSH1 0x20 00000b49: CALLDATASIZE 00000b4a: PUSH1 0x03 00000b4c: NOT 00000b4d: ADD 00000b4e: SLT 00000b4f: PUSH2 0x04f0 00000b52: JUMPI 00000b53: PUSH1 0x20 00000b55: PUSH2 0x0b5f 00000b58: PUSH1 0x04 00000b5a: CALLDATALOAD 00000b5b: PUSH2 0x29c2 00000b5e: JUMP 00000b5f: JUMPDEST 00000b60: PUSH1 0x40 00000b62: MLOAD 00000b63: SWAP1 00000b64: DUP2 00000b65: MSTORE 00000b66: RETURN 00000b67: JUMPDEST 00000b68: POP 00000b69: CALLVALUE 00000b6a: PUSH2 0x04f0 00000b6d: JUMPI 00000b6e: PUSH1 0x20 00000b70: CALLDATASIZE 00000b71: PUSH1 0x03 00000b73: NOT 00000b74: ADD 00000b75: SLT 00000b76: PUSH2 0x04f0 00000b79: JUMPI 00000b7a: PUSH1 0x04 00000b7c: CALLDATALOAD 00000b7d: PUSH4 0xffffffff 00000b82: DUP2 00000b83: AND 00000b84: DUP1 00000b85: SWAP2 00000b86: SUB 00000b87: PUSH2 0x04ec 00000b8a: JUMPI 00000b8b: DUP2 00000b8c: MSTORE 00000b8d: PUSH1 0x17 00000b8f: PUSH1 0x20 00000b91: SWAP1 00000b92: DUP2 00000b93: MSTORE 00000b94: PUSH1 0x40 00000b96: SWAP2 00000b97: DUP3 00000b98: SWAP1 00000b99: KECCAK256 00000b9a: SLOAD 00000b9b: DUP3 00000b9c: MLOAD 00000b9d: PUSH1 0x01 00000b9f: PUSH1 0x01 00000ba1: PUSH1 0x80 00000ba3: SHL 00000ba4: SUB 00000ba5: DUP3 00000ba6: AND 00000ba7: DUP2 00000ba8: MSTORE 00000ba9: PUSH1 0x80 00000bab: SWAP2 00000bac: SWAP1 00000bad: SWAP2 00000bae: SHR 00000baf: SWAP2 00000bb0: DUP2 00000bb1: ADD 00000bb2: SWAP2 00000bb3: SWAP1 00000bb4: SWAP2 00000bb5: MSTORE 00000bb6: RETURN 00000bb7: JUMPDEST 00000bb8: POP 00000bb9: CALLVALUE 00000bba: PUSH2 0x04f0 00000bbd: JUMPI 00000bbe: PUSH1 0x20 00000bc0: CALLDATASIZE 00000bc1: PUSH1 0x03 00000bc3: NOT 00000bc4: ADD 00000bc5: SLT 00000bc6: PUSH2 0x04f0 00000bc9: JUMPI 00000bca: PUSH32 0xec2b187c67e6a6938c53c9d50df457b5b6f66de14c4cc3c53e98cbabcf1899bf 00000beb: PUSH1 0x20 00000bed: PUSH1 0x04 00000bef: CALLDATALOAD 00000bf0: PUSH2 0x0bf7 00000bf3: PUSH2 0x32d2 00000bf6: JUMP 00000bf7: JUMPDEST 00000bf8: DUP1 00000bf9: PUSH1 0x0f 00000bfb: SSTORE 00000bfc: PUSH1 0x64 00000bfe: DUP2 00000bff: LT 00000c00: ISZERO 00000c01: DUP1 00000c02: PUSH2 0x0c21 00000c05: JUMPI 00000c06: JUMPDEST 00000c07: PUSH2 0x0c0f 00000c0a: SWAP1 00000c0b: PUSH2 0x212d 00000c0e: JUMP 00000c0f: JUMPDEST 00000c10: PUSH2 0x0c17 00000c13: PUSH2 0x3a7a 00000c16: JUMP 00000c17: JUMPDEST 00000c18: PUSH1 0x40 00000c1a: MLOAD 00000c1b: SWAP1 00000c1c: DUP2 00000c1d: MSTORE 00000c1e: LOG1 00000c1f: DUP1 00000c20: RETURN 00000c21: JUMPDEST 00000c22: POP 00000c23: PUSH2 0x03e8 00000c26: DUP2 00000c27: GT 00000c28: ISZERO 00000c29: PUSH2 0x0c06 00000c2c: JUMP 00000c2d: JUMPDEST 00000c2e: POP 00000c2f: CALLVALUE 00000c30: PUSH2 0x04f0 00000c33: JUMPI 00000c34: DUP1 00000c35: PUSH1 0x03 00000c37: NOT 00000c38: CALLDATASIZE 00000c39: ADD 00000c3a: SLT 00000c3b: PUSH2 0x04f0 00000c3e: JUMPI 00000c3f: PUSH1 0x20 00000c41: PUSH1 0x1f 00000c43: SLOAD 00000c44: PUSH1 0x40 00000c46: MLOAD 00000c47: SWAP1 00000c48: DUP2 00000c49: MSTORE 00000c4a: RETURN 00000c4b: JUMPDEST 00000c4c: POP 00000c4d: CALLVALUE 00000c4e: PUSH2 0x04f0 00000c51: JUMPI 00000c52: DUP1 00000c53: PUSH1 0x03 00000c55: NOT 00000c56: CALLDATASIZE 00000c57: ADD 00000c58: SLT 00000c59: PUSH2 0x04f0 00000c5c: JUMPI 00000c5d: PUSH1 0x20 00000c5f: PUSH4 0xffffffff 00000c64: PUSH1 0x16 00000c66: SLOAD 00000c67: DUP3 00000c68: SHR 00000c69: AND 00000c6a: PUSH1 0x40 00000c6c: MLOAD 00000c6d: SWAP1 00000c6e: DUP2 00000c6f: MSTORE 00000c70: RETURN 00000c71: JUMPDEST 00000c72: POP 00000c73: CALLVALUE 00000c74: PUSH2 0x04f0 00000c77: JUMPI 00000c78: PUSH1 0x20 00000c7a: CALLDATASIZE 00000c7b: PUSH1 0x03 00000c7d: NOT 00000c7e: ADD 00000c7f: SLT 00000c80: PUSH2 0x04f0 00000c83: JUMPI 00000c84: PUSH1 0x04 00000c86: CALLDATALOAD 00000c87: PUSH1 0xff 00000c89: DUP2 00000c8a: AND 00000c8b: SWAP1 00000c8c: DUP2 00000c8d: DUP2 00000c8e: SUB 00000c8f: PUSH2 0x0880 00000c92: JUMPI 00000c93: PUSH2 0x0c9a 00000c96: PUSH2 0x32d2 00000c99: JUMP 00000c9a: JUMPDEST 00000c9b: PUSH1 0x64 00000c9d: DUP3 00000c9e: GT 00000c9f: DUP1 00000ca0: ISZERO 00000ca1: PUSH2 0x0cf5 00000ca4: JUMPI 00000ca5: JUMPDEST 00000ca6: PUSH2 0x0867 00000ca9: JUMPI 00000caa: PUSH1 0x18 00000cac: DUP1 00000cad: SLOAD 00000cae: PUSH1 0xff 00000cb0: PUSH1 0x50 00000cb2: SHL 00000cb3: NOT 00000cb4: AND 00000cb5: PUSH1 0x50 00000cb7: SWAP3 00000cb8: SWAP1 00000cb9: SWAP3 00000cba: SHL 00000cbb: PUSH1 0xff 00000cbd: PUSH1 0x50 00000cbf: SHL 00000cc0: AND 00000cc1: SWAP2 00000cc2: SWAP1 00000cc3: SWAP2 00000cc4: OR 00000cc5: SWAP1 00000cc6: SSTORE 00000cc7: PUSH1 0x40 00000cc9: MLOAD 00000cca: SWAP1 00000ccb: DUP2 00000ccc: MSTORE 00000ccd: PUSH32 0x996f439f738f8a223f90e5c110de60604027e6a47b1732636c8abd1766a63531 00000cee: SWAP1 00000cef: PUSH1 0x20 00000cf1: SWAP1 00000cf2: LOG1 00000cf3: DUP1 00000cf4: RETURN 00000cf5: JUMPDEST 00000cf6: POP 00000cf7: PUSH1 0x02 00000cf9: DUP3 00000cfa: LT 00000cfb: PUSH2 0x0ca5 00000cfe: JUMP 00000cff: JUMPDEST 00000d00: POP 00000d01: CALLVALUE 00000d02: PUSH2 0x04f0 00000d05: JUMPI 00000d06: DUP1 00000d07: PUSH1 0x03 00000d09: NOT 00000d0a: CALLDATASIZE 00000d0b: ADD 00000d0c: SLT 00000d0d: PUSH2 0x04f0 00000d10: JUMPI 00000d11: PUSH1 0x20 00000d13: PUSH1 0x10 00000d15: SLOAD 00000d16: PUSH1 0x40 00000d18: MLOAD 00000d19: SWAP1 00000d1a: DUP2 00000d1b: MSTORE 00000d1c: RETURN 00000d1d: JUMPDEST 00000d1e: POP 00000d1f: CALLVALUE 00000d20: PUSH2 0x04f0 00000d23: JUMPI 00000d24: DUP1 00000d25: PUSH1 0x03 00000d27: NOT 00000d28: CALLDATASIZE 00000d29: ADD 00000d2a: SLT 00000d2b: PUSH2 0x04f0 00000d2e: JUMPI 00000d2f: PUSH1 0x20 00000d31: PUSH1 0x0b 00000d33: SLOAD 00000d34: PUSH1 0x40 00000d36: MLOAD 00000d37: SWAP1 00000d38: DUP2 00000d39: MSTORE 00000d3a: RETURN 00000d3b: JUMPDEST 00000d3c: POP 00000d3d: CALLVALUE 00000d3e: PUSH2 0x04f0 00000d41: JUMPI 00000d42: PUSH1 0x20 00000d44: CALLDATASIZE 00000d45: PUSH1 0x03 00000d47: NOT 00000d48: ADD 00000d49: SLT 00000d4a: PUSH2 0x04f0 00000d4d: JUMPI 00000d4e: PUSH1 0x04 00000d50: CALLDATALOAD 00000d51: PUSH4 0xffffffff 00000d56: DUP2 00000d57: AND 00000d58: DUP1 00000d59: SWAP2 00000d5a: SUB 00000d5b: PUSH2 0x04ec 00000d5e: JUMPI 00000d5f: PUSH1 0x05 00000d61: SLOAD 00000d62: PUSH1 0xff 00000d64: DUP2 00000d65: AND 00000d66: PUSH2 0x1244 00000d69: JUMPI 00000d6a: PUSH13 0x02863c1f5cdae42f9540000000 00000d78: PUSH1 0x10 00000d7a: SLOAD 00000d7b: LT 00000d7c: PUSH2 0x1235 00000d7f: JUMPI 00000d80: PUSH1 0xff 00000d82: NOT 00000d83: AND 00000d84: PUSH1 0x01 00000d86: OR 00000d87: PUSH1 0x05 00000d89: SSTORE 00000d8a: PUSH1 0x1c 00000d8c: DUP1 00000d8d: SLOAD 00000d8e: PUSH1 0xff 00000d90: PUSH1 0x40 00000d92: SHL 00000d93: NOT 00000d94: AND 00000d95: PUSH1 0x01 00000d97: PUSH1 0x40 00000d99: SHL 00000d9a: OR 00000d9b: SWAP1 00000d9c: SSTORE 00000d9d: PUSH32 0x000000000000000000000000b47f575807fc5466285e1277ef8acfbb5c6686e8 00000dbe: PUSH1 0x01 00000dc0: PUSH1 0x01 00000dc2: PUSH1 0xa0 00000dc4: SHL 00000dc5: SUB 00000dc6: AND 00000dc7: SWAP1 00000dc8: DUP2 00000dc9: EXTCODESIZE 00000dca: ISZERO 00000dcb: PUSH2 0x0880 00000dce: JUMPI 00000dcf: PUSH1 0x40 00000dd1: MLOAD 00000dd2: PUSH4 0x26fb5edb 00000dd7: PUSH1 0xe2 00000dd9: SHL 00000dda: DUP2 00000ddb: MSTORE 00000ddc: DUP4 00000ddd: DUP2 00000dde: PUSH1 0x04 00000de0: DUP2 00000de1: DUP4 00000de2: DUP8 00000de3: GAS 00000de4: CALL 00000de5: DUP1 00000de6: ISZERO 00000de7: PUSH2 0x122a 00000dea: JUMPI 00000deb: PUSH2 0x1216 00000dee: JUMPI 00000def: JUMPDEST 00000df0: POP 00000df1: DUP2 00000df2: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1 00000e07: LT 00000e08: PUSH1 0x00 00000e0a: EQ 00000e0b: PUSH2 0x11fb 00000e0e: JUMPI 00000e0f: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1 00000e24: DUP3 00000e25: JUMPDEST 00000e26: PUSH1 0x01 00000e28: PUSH1 0x01 00000e2a: PUSH1 0xa0 00000e2c: SHL 00000e2d: SUB 00000e2e: DUP3 00000e2f: AND 00000e30: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1 00000e45: DUP2 00000e46: EQ 00000e47: SWAP5 00000e48: DUP6 00000e49: ISZERO 00000e4a: PUSH2 0x11db 00000e4d: JUMPI 00000e4e: PUSH13 0x02863c1f5cdae42f9540000000 00000e5c: SWAP5 00000e5d: PUSH10 0x043c33c1937564800000 00000e68: SWAP3 00000e69: JUMPDEST 00000e6a: PUSH2 0x0e73 00000e6d: DUP8 00000e6e: DUP8 00000e6f: PUSH2 0x42e3 00000e72: JUMP 00000e73: JUMPDEST 00000e74: PUSH2 0x0e7d 00000e77: DUP5 00000e78: DUP7 00000e79: PUSH2 0x42e3 00000e7c: JUMP 00000e7d: JUMPDEST 00000e7e: PUSH1 0xff 00000e80: PUSH1 0x18 00000e82: SLOAD 00000e83: PUSH1 0x50 00000e85: SHR 00000e86: AND 00000e87: PUSH1 0x64 00000e89: PUSH2 0x0eb4 00000e8c: PUSH1 0xff 00000e8e: PUSH2 0x0ead 00000e91: DUP4 00000e92: PUSH2 0x0ea6 00000e95: DUP14 00000e96: DUP5 00000e97: PUSH2 0x0e9f 00000e9a: DUP10 00000e9b: PUSH2 0x2988 00000e9e: JUMP 00000e9f: JUMPDEST 00000ea0: AND 00000ea1: SWAP1 00000ea2: PUSH2 0x21f4 00000ea5: JUMP 00000ea6: JUMPDEST 00000ea7: DIV 00000ea8: SWAP5 00000ea9: PUSH2 0x2988 00000eac: JUMP 00000ead: JUMPDEST 00000eae: AND 00000eaf: DUP8 00000eb0: PUSH2 0x21f4 00000eb3: JUMP 00000eb4: JUMPDEST 00000eb5: DIV 00000eb6: SWAP1 00000eb7: PUSH2 0x0ec2 00000eba: PUSH2 0x1153 00000ebd: NOT 00000ebe: PUSH2 0x2999 00000ec1: JUMP 00000ec2: JUMPDEST 00000ec3: PUSH2 0x0ecd 00000ec6: PUSH2 0x1154 00000ec9: PUSH2 0x2999 00000ecc: JUMP 00000ecd: JUMPDEST 00000ece: PUSH1 0x40 00000ed0: MLOAD 00000ed1: SWAP5 00000ed2: PUSH2 0x0160 00000ed5: DUP7 00000ed6: ADD 00000ed7: DUP7 00000ed8: DUP2 00000ed9: LT 00000eda: PUSH1 0x01 00000edc: PUSH1 0x01 00000ede: PUSH1 0x40 00000ee0: SHL 00000ee1: SUB 00000ee2: DUP3 00000ee3: GT 00000ee4: OR 00000ee5: PUSH2 0x11c7 00000ee8: JUMPI 00000ee9: SWAP2 00000eea: DUP13 00000eeb: SWAP2 00000eec: PUSH1 0x04 00000eee: SWAP10 00000eef: SWAP9 00000ef0: SWAP8 00000ef1: SWAP7 00000ef2: SWAP6 00000ef3: SWAP5 00000ef4: SWAP4 00000ef5: PUSH1 0x40 00000ef7: MSTORE 00000ef8: DUP7 00000ef9: MSTORE 00000efa: PUSH1 0x20 00000efc: DUP7 00000efd: ADD 00000efe: SWAP3 00000eff: PUSH1 0x01 00000f01: DUP1 00000f02: PUSH1 0xa0 00000f04: SHL 00000f05: SUB 00000f06: DUP13 00000f07: AND 00000f08: DUP5 00000f09: MSTORE 00000f0a: PUSH3 0xffffff 00000f0e: PUSH1 0x40 00000f10: DUP9 00000f11: ADD 00000f12: PUSH2 0x2710 00000f15: DUP2 00000f16: MSTORE 00000f17: PUSH1 0x60 00000f19: DUP10 00000f1a: ADD 00000f1b: SWAP3 00000f1c: PUSH1 0x02 00000f1e: SIGNEXTEND 00000f1f: DUP4 00000f20: MSTORE 00000f21: PUSH1 0x80 00000f23: DUP10 00000f24: ADD 00000f25: SWAP4 00000f26: PUSH1 0x02 00000f28: SIGNEXTEND 00000f29: DUP5 00000f2a: MSTORE 00000f2b: PUSH1 0xa0 00000f2d: DUP10 00000f2e: ADD 00000f2f: SWAP5 00000f30: DUP6 00000f31: MSTORE 00000f32: PUSH1 0xc0 00000f34: DUP10 00000f35: ADD 00000f36: SWAP6 00000f37: DUP14 00000f38: DUP8 00000f39: MSTORE 00000f3a: PUSH1 0xe0 00000f3c: DUP11 00000f3d: ADD 00000f3e: SWAP8 00000f3f: DUP9 00000f40: MSTORE 00000f41: PUSH2 0x0100 00000f44: DUP11 00000f45: ADD 00000f46: SWAP9 00000f47: DUP10 00000f48: MSTORE 00000f49: PUSH2 0x0120 00000f4c: DUP11 00000f4d: ADD 00000f4e: SWAP10 00000f4f: ADDRESS 00000f50: DUP12 00000f51: MSTORE 00000f52: PUSH2 0x0140 00000f55: DUP2 00000f56: ADD 00000f57: SWAP12 00000f58: DUP13 00000f59: MSTORE 00000f5a: PUSH1 0x40 00000f5c: MLOAD 00000f5d: SWAP14 00000f5e: DUP15 00000f5f: SWAP2 00000f60: PUSH4 0x4418b22b 00000f65: PUSH1 0xe1 00000f67: SHL 00000f68: DUP4 00000f69: MSTORE 00000f6a: PUSH1 0x01 00000f6c: DUP1 00000f6d: PUSH1 0xa0 00000f6f: SHL 00000f70: SUB 00000f71: SWAP1 00000f72: MLOAD 00000f73: AND 00000f74: SWAP2 00000f75: ADD 00000f76: MSTORE 00000f77: PUSH1 0x01 00000f79: DUP1 00000f7a: PUSH1 0xa0 00000f7c: SHL 00000f7d: SUB 00000f7e: SWAP1 00000f7f: MLOAD 00000f80: AND 00000f81: PUSH1 0x24 00000f83: DUP14 00000f84: ADD 00000f85: MSTORE 00000f86: MLOAD 00000f87: AND 00000f88: PUSH1 0x44 00000f8a: DUP12 00000f8b: ADD 00000f8c: MSTORE 00000f8d: MLOAD 00000f8e: PUSH1 0x02 00000f90: SIGNEXTEND 00000f91: PUSH1 0x64 00000f93: DUP11 00000f94: ADD 00000f95: MSTORE 00000f96: MLOAD 00000f97: PUSH1 0x02 00000f99: SIGNEXTEND 00000f9a: PUSH1 0x84 00000f9c: DUP10 00000f9d: ADD 00000f9e: MSTORE 00000f9f: MLOAD 00000fa0: PUSH1 0xa4 00000fa2: DUP9 00000fa3: ADD 00000fa4: MSTORE 00000fa5: MLOAD 00000fa6: PUSH1 0xc4 00000fa8: DUP8 00000fa9: ADD 00000faa: MSTORE 00000fab: MLOAD 00000fac: PUSH1 0xe4 00000fae: DUP7 00000faf: ADD 00000fb0: MSTORE 00000fb1: MLOAD 00000fb2: PUSH2 0x0104 00000fb5: DUP6 00000fb6: ADD 00000fb7: MSTORE 00000fb8: PUSH1 0x01 00000fba: DUP1 00000fbb: PUSH1 0xa0 00000fbd: SHL 00000fbe: SUB 00000fbf: SWAP1 00000fc0: MLOAD 00000fc1: AND 00000fc2: PUSH2 0x0124 00000fc5: DUP5 00000fc6: ADD 00000fc7: MSTORE 00000fc8: MLOAD 00000fc9: PUSH2 0x0144 00000fcc: DUP4 00000fcd: ADD 00000fce: MSTORE 00000fcf: PUSH1 0x80 00000fd1: DUP3 00000fd2: PUSH2 0x0164 00000fd5: DUP2 00000fd6: DUP12 00000fd7: PUSH20 0xc36442b4a4522e871399cd717abdd847ab11fe88 00000fec: GAS 00000fed: CALL 00000fee: SWAP2 00000fef: DUP3 00000ff0: ISZERO 00000ff1: PUSH2 0x10f7 00000ff4: JUMPI 00000ff5: DUP9 00000ff6: SWAP7 00000ff7: DUP10 00000ff8: SWAP2 00000ff9: DUP11 00000ffa: SWAP5 00000ffb: PUSH2 0x1172 00000ffe: JUMPI 00000fff: JUMPDEST 00001000: POP 00001001: DUP2 00001002: DUP2 00001003: GT 00001004: PUSH2 0x1102 00001007: JUMPI 00001008: JUMPDEST 00001009: POP 0000100a: POP 0000100b: DUP2 0000100c: DUP4 0000100d: GT 0000100e: PUSH2 0x1075 00001011: JUMPI 00001012: JUMPDEST 00001013: POP 00001014: POP 00001015: POP 00001016: PUSH2 0x1021 00001019: PUSH2 0x1026 0000101c: SWAP3 0000101d: PUSH2 0x43a5 00001020: JUMP 00001021: JUMPDEST 00001022: PUSH2 0x43a5 00001025: JUMP 00001026: JUMPDEST 00001027: PUSH1 0x01 00001029: DUP1 0000102a: PUSH1 0xf8 0000102c: SHL 0000102d: SUB 0000102e: AND 0000102f: SWAP1 00001030: DUP1 00001031: PUSH1 0x20 00001033: PUSH1 0x40 00001035: MLOAD 00001036: PUSH2 0x103e 00001039: DUP2 0000103a: PUSH2 0x2227 0000103d: JUMP 0000103e: JUMPDEST 0000103f: DUP5 00001040: DUP2 00001041: MSTORE 00001042: ADD 00001043: MSTORE 00001044: PUSH1 0xf8 00001046: SHL 00001047: PUSH1 0x01 00001049: PUSH1 0x01 0000104b: PUSH1 0xf8 0000104d: SHL 0000104e: SUB 0000104f: NOT 00001050: AND 00001051: OR 00001052: PUSH1 0x04 00001054: SSTORE 00001055: PUSH1 0x10 00001057: SLOAD 00001058: PUSH13 0x02863c1f5cdae42f953fffffff 00001066: NOT 00001067: DUP2 00001068: ADD 00001069: SWAP1 0000106a: DUP2 0000106b: GT 0000106c: PUSH2 0x0710 0000106f: JUMPI 00001070: PUSH1 0x10 00001072: SSTORE 00001073: DUP1 00001074: RETURN 00001075: JUMPDEST 00001076: PUSH1 0x20 00001078: PUSH1 0x04 0000107a: SWAP2 0000107b: PUSH1 0x40 0000107d: SWAP7 0000107e: SWAP4 0000107f: SWAP5 00001080: SWAP7 00001081: MLOAD 00001082: SWAP3 00001083: DUP4 00001084: DUP1 00001085: SWAP3 00001086: PUSH4 0x9ddbd211 0000108b: PUSH1 0xe0 0000108d: SHL 0000108e: DUP3 0000108f: MSTORE 00001090: GAS 00001091: STATICCALL 00001092: SWAP5 00001093: DUP6 00001094: ISZERO 00001095: PUSH2 0x10f7 00001098: JUMPI 00001099: PUSH2 0x1026 0000109c: SWAP6 0000109d: PUSH2 0x1021 000010a0: SWAP5 000010a1: PUSH2 0x10bd 000010a4: SWAP4 000010a5: DUP12 000010a6: SWAP3 000010a7: PUSH2 0x10c4 000010aa: JUMPI 000010ab: JUMPDEST 000010ac: POP 000010ad: PUSH2 0x10b6 000010b0: SWAP2 000010b1: SWAP3 000010b2: PUSH2 0x20fd 000010b5: JUMP 000010b6: JUMPDEST 000010b7: SWAP1 000010b8: DUP6 000010b9: PUSH2 0x3a2f 000010bc: JUMP 000010bd: JUMPDEST 000010be: SWAP3 000010bf: CODESIZE 000010c0: PUSH2 0x1012 000010c3: JUMP 000010c4: JUMPDEST 000010c5: PUSH2 0x10b6 000010c8: SWAP3 000010c9: POP 000010ca: PUSH2 0x10ea 000010cd: SWAP1 000010ce: PUSH1 0x20 000010d0: RETURNDATASIZE 000010d1: PUSH1 0x20 000010d3: GT 000010d4: PUSH2 0x10f0 000010d7: JUMPI 000010d8: JUMPDEST 000010d9: PUSH2 0x10e2 000010dc: DUP2 000010dd: DUP4 000010de: PUSH2 0x2273 000010e1: JUMP 000010e2: JUMPDEST 000010e3: DUP2 000010e4: ADD 000010e5: SWAP1 000010e6: PUSH2 0x2311 000010e9: JUMP 000010ea: JUMPDEST 000010eb: SWAP2 000010ec: PUSH2 0x10ab 000010ef: JUMP 000010f0: JUMPDEST 000010f1: POP 000010f2: RETURNDATASIZE 000010f3: PUSH2 0x10d8 000010f6: JUMP 000010f7: JUMPDEST 000010f8: PUSH1 0x40 000010fa: MLOAD 000010fb: RETURNDATASIZE 000010fc: DUP11 000010fd: DUP3 000010fe: RETURNDATACOPY 000010ff: RETURNDATASIZE 00001100: SWAP1 00001101: REVERT 00001102: JUMPDEST 00001103: PUSH1 0x40 00001105: MLOAD 00001106: PUSH4 0x9ddbd211 0000110b: PUSH1 0xe0 0000110d: SHL 0000110e: DUP2 0000110f: MSTORE 00001110: SWAP2 00001111: PUSH1 0x20 00001113: DUP4 00001114: PUSH1 0x04 00001116: DUP2 00001117: DUP8 00001118: GAS 00001119: STATICCALL 0000111a: SWAP1 0000111b: DUP2 0000111c: ISZERO 0000111d: PUSH2 0x1167 00001120: JUMPI 00001121: PUSH2 0x113d 00001124: SWAP4 00001125: DUP13 00001126: SWAP3 00001127: PUSH2 0x1144 0000112a: JUMPI 0000112b: JUMPDEST 0000112c: POP 0000112d: PUSH2 0x1136 00001130: SWAP2 00001131: SWAP3 00001132: PUSH2 0x20fd 00001135: JUMP 00001136: JUMPDEST 00001137: SWAP1 00001138: DUP8 00001139: PUSH2 0x3a2f 0000113c: JUMP 0000113d: JUMPDEST 0000113e: CODESIZE 0000113f: DUP1 00001140: PUSH2 0x1008 00001143: JUMP 00001144: JUMPDEST 00001145: PUSH2 0x1136 00001148: SWAP3 00001149: POP 0000114a: PUSH2 0x1161 0000114d: SWAP1 0000114e: PUSH1 0x20 00001150: RETURNDATASIZE 00001151: PUSH1 0x20 00001153: GT 00001154: PUSH2 0x10f0 00001157: JUMPI 00001158: PUSH2 0x10e2 0000115b: DUP2 0000115c: DUP4 0000115d: PUSH2 0x2273 00001160: JUMP 00001161: JUMPDEST 00001162: SWAP2 00001163: PUSH2 0x112b 00001166: JUMP 00001167: JUMPDEST 00001168: PUSH1 0x40 0000116a: MLOAD 0000116b: RETURNDATASIZE 0000116c: DUP14 0000116d: DUP3 0000116e: RETURNDATACOPY 0000116f: RETURNDATASIZE 00001170: SWAP1 00001171: REVERT 00001172: JUMPDEST 00001173: SWAP8 00001174: POP 00001175: SWAP3 00001176: POP 00001177: POP 00001178: PUSH1 0x80 0000117a: DUP7 0000117b: RETURNDATASIZE 0000117c: PUSH1 0x80 0000117e: GT 0000117f: PUSH2 0x11bf 00001182: JUMPI 00001183: JUMPDEST 00001184: DUP2 00001185: PUSH2 0x1190 00001188: PUSH1 0x80 0000118a: SWAP4 0000118b: DUP4 0000118c: PUSH2 0x2273 0000118f: JUMP 00001190: JUMPDEST 00001191: DUP2 00001192: ADD 00001193: SUB 00001194: SLT 00001195: PUSH2 0x11bb 00001198: JUMPI 00001199: DUP6 0000119a: MLOAD 0000119b: PUSH2 0x11a6 0000119e: PUSH1 0x20 000011a0: DUP9 000011a1: ADD 000011a2: PUSH2 0x29ae 000011a5: JUMP 000011a6: JUMPDEST 000011a7: POP 000011a8: PUSH1 0x60 000011aa: PUSH1 0x40 000011ac: DUP9 000011ad: ADD 000011ae: MLOAD 000011af: SWAP8 000011b0: ADD 000011b1: MLOAD 000011b2: SWAP1 000011b3: SWAP7 000011b4: SWAP1 000011b5: SWAP3 000011b6: CODESIZE 000011b7: PUSH2 0x0fff 000011ba: JUMP 000011bb: JUMPDEST 000011bc: DUP8 000011bd: DUP1 000011be: REVERT 000011bf: JUMPDEST 000011c0: RETURNDATASIZE 000011c1: SWAP2 000011c2: POP 000011c3: PUSH2 0x1183 000011c6: JUMP 000011c7: JUMPDEST 000011c8: PUSH4 0x4e487b71 000011cd: PUSH1 0xe0 000011cf: SHL 000011d0: DUP16 000011d1: MSTORE 000011d2: PUSH1 0x41 000011d4: PUSH1 0x04 000011d6: MSTORE 000011d7: PUSH1 0x24 000011d9: DUP16 000011da: REVERT 000011db: JUMPDEST 000011dc: PUSH10 0x043c33c1937564800000 000011e7: SWAP5 000011e8: PUSH13 0x02863c1f5cdae42f9540000000 000011f6: SWAP3 000011f7: PUSH2 0x0e69 000011fa: JUMP 000011fb: JUMPDEST 000011fc: DUP2 000011fd: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1 00001212: PUSH2 0x0e25 00001215: JUMP 00001216: JUMPDEST 00001217: DUP4 00001218: PUSH2 0x1223 0000121b: SWAP2 0000121c: SWAP5 0000121d: SWAP3 0000121e: SWAP5 0000121f: PUSH2 0x2273 00001222: JUMP 00001223: JUMPDEST 00001224: SWAP2 00001225: CODESIZE 00001226: PUSH2 0x0def 00001229: JUMP 0000122a: JUMPDEST 0000122b: PUSH1 0x40 0000122d: MLOAD 0000122e: RETURNDATASIZE 0000122f: DUP7 00001230: DUP3 00001231: RETURNDATACOPY 00001232: RETURNDATASIZE 00001233: SWAP1 00001234: REVERT 00001235: JUMPDEST 00001236: PUSH4 0x1bbc2d7d 0000123b: PUSH1 0xe2 0000123d: SHL 0000123e: DUP4 0000123f: MSTORE 00001240: PUSH1 0x04 00001242: DUP4 00001243: REVERT 00001244: JUMPDEST 00001245: PUSH4 0x0fd02b6d 0000124a: PUSH1 0xe4 0000124c: SHL 0000124d: DUP4 0000124e: MSTORE 0000124f: PUSH1 0x04 00001251: DUP4 00001252: REVERT 00001253: JUMPDEST 00001254: POP 00001255: CALLVALUE 00001256: PUSH2 0x04f0 00001259: JUMPI 0000125a: DUP1 0000125b: PUSH1 0x03 0000125d: NOT 0000125e: CALLDATASIZE 0000125f: ADD 00001260: SLT 00001261: PUSH2 0x04f0 00001264: JUMPI 00001265: PUSH1 0x20 00001267: DUP1 00001268: SLOAD 00001269: PUSH1 0x40 0000126b: MLOAD 0000126c: SWAP1 0000126d: DUP2 0000126e: MSTORE 0000126f: RETURN 00001270: JUMPDEST 00001271: POP 00001272: CALLVALUE 00001273: PUSH2 0x04f0 00001276: JUMPI 00001277: PUSH1 0x20 00001279: CALLDATASIZE 0000127a: PUSH1 0x03 0000127c: NOT 0000127d: ADD 0000127e: SLT 0000127f: PUSH2 0x04f0 00001282: JUMPI 00001283: PUSH32 0x9127263eda2b46ebbe29a3927987e41735ec4e0ffa012dd37dd2e5e23bb9756b 000012a4: PUSH1 0x20 000012a6: PUSH1 0x04 000012a8: CALLDATALOAD 000012a9: PUSH2 0x12b0 000012ac: PUSH2 0x32d2 000012af: JUMP 000012b0: JUMPDEST 000012b1: DUP1 000012b2: PUSH1 0x0e 000012b4: SSTORE 000012b5: PUSH1 0x64 000012b7: DUP2 000012b8: LT 000012b9: ISZERO 000012ba: DUP1 000012bb: PUSH2 0x12d0 000012be: JUMPI 000012bf: JUMPDEST 000012c0: PUSH2 0x12c8 000012c3: SWAP1 000012c4: PUSH2 0x212d 000012c7: JUMP 000012c8: JUMPDEST 000012c9: PUSH2 0x0c17 000012cc: PUSH2 0x3063 000012cf: JUMP 000012d0: JUMPDEST 000012d1: POP 000012d2: PUSH2 0x03e8 000012d5: DUP2 000012d6: GT 000012d7: ISZERO 000012d8: PUSH2 0x12bf 000012db: JUMP 000012dc: JUMPDEST 000012dd: POP 000012de: CALLVALUE 000012df: PUSH2 0x04f0 000012e2: JUMPI 000012e3: DUP1 000012e4: PUSH1 0x03 000012e6: NOT 000012e7: CALLDATASIZE 000012e8: ADD 000012e9: SLT 000012ea: PUSH2 0x04f0 000012ed: JUMPI 000012ee: PUSH1 0x20 000012f0: PUSH1 0x06 000012f2: SLOAD 000012f3: PUSH1 0x40 000012f5: MLOAD 000012f6: SWAP1 000012f7: DUP2 000012f8: MSTORE 000012f9: RETURN 000012fa: JUMPDEST 000012fb: POP 000012fc: CALLVALUE 000012fd: PUSH2 0x04f0 00001300: JUMPI 00001301: DUP1 00001302: PUSH1 0x03 00001304: NOT 00001305: CALLDATASIZE 00001306: ADD 00001307: SLT 00001308: PUSH2 0x04f0 0000130b: JUMPI 0000130c: PUSH1 0x20 0000130e: PUSH1 0x09 00001310: SLOAD 00001311: PUSH1 0x40 00001313: MLOAD 00001314: SWAP1 00001315: DUP2 00001316: MSTORE 00001317: RETURN 00001318: JUMPDEST 00001319: POP 0000131a: CALLVALUE 0000131b: PUSH2 0x04f0 0000131e: JUMPI 0000131f: PUSH1 0x20 00001321: CALLDATASIZE 00001322: PUSH1 0x03 00001324: NOT 00001325: ADD 00001326: SLT 00001327: PUSH2 0x04f0 0000132a: JUMPI 0000132b: PUSH1 0x04 0000132d: CALLDATALOAD 0000132e: PUSH4 0xffffffff 00001333: DUP2 00001334: AND 00001335: DUP1 00001336: SWAP2 00001337: SUB 00001338: PUSH2 0x04ec 0000133b: JUMPI 0000133c: DUP2 0000133d: MSTORE 0000133e: PUSH1 0x19 00001340: PUSH1 0x20 00001342: SWAP1 00001343: DUP2 00001344: MSTORE 00001345: PUSH1 0x40 00001347: SWAP2 00001348: DUP3 00001349: SWAP1 0000134a: KECCAK256 0000134b: SLOAD 0000134c: DUP3 0000134d: MLOAD 0000134e: PUSH1 0x01 00001350: PUSH1 0x01 00001352: PUSH1 0x80 00001354: SHL 00001355: SUB 00001356: DUP3 00001357: AND 00001358: DUP2 00001359: MSTORE 0000135a: PUSH1 0x80 0000135c: SWAP2 0000135d: SWAP1 0000135e: SWAP2 0000135f: SHR 00001360: SWAP2 00001361: DUP2 00001362: ADD 00001363: SWAP2 00001364: SWAP1 00001365: SWAP2 00001366: MSTORE 00001367: RETURN 00001368: JUMPDEST 00001369: POP 0000136a: CALLVALUE 0000136b: PUSH2 0x04f0 0000136e: JUMPI 0000136f: DUP1 00001370: PUSH1 0x03 00001372: NOT 00001373: CALLDATASIZE 00001374: ADD 00001375: SLT 00001376: PUSH2 0x04f0 00001379: JUMPI 0000137a: PUSH1 0x20 0000137c: PUSH1 0xff 0000137e: PUSH1 0x1c 00001380: SLOAD 00001381: PUSH1 0x40 00001383: SHR 00001384: AND 00001385: PUSH1 0x40 00001387: MLOAD 00001388: SWAP1 00001389: ISZERO 0000138a: ISZERO 0000138b: DUP2 0000138c: MSTORE 0000138d: RETURN 0000138e: JUMPDEST 0000138f: POP 00001390: CALLVALUE 00001391: PUSH2 0x04f0 00001394: JUMPI 00001395: PUSH1 0x20 00001397: CALLDATASIZE 00001398: PUSH1 0x03 0000139a: NOT 0000139b: ADD 0000139c: SLT 0000139d: PUSH2 0x04f0 000013a0: JUMPI 000013a1: PUSH32 0xfd4d5d30e48f7ca9d989668161b3141e515f003ea4f2aca8f79b9145bf006480 000013c2: PUSH1 0x20 000013c4: PUSH1 0x04 000013c6: CALLDATALOAD 000013c7: PUSH2 0x13ce 000013ca: PUSH2 0x32d2 000013cd: JUMP 000013ce: JUMPDEST 000013cf: DUP1 000013d0: PUSH1 0x0d 000013d2: SSTORE 000013d3: PUSH1 0x64 000013d5: DUP2 000013d6: LT 000013d7: ISZERO 000013d8: DUP1 000013d9: PUSH2 0x13ee 000013dc: JUMPI 000013dd: JUMPDEST 000013de: PUSH2 0x13e6 000013e1: SWAP1 000013e2: PUSH2 0x212d 000013e5: JUMP 000013e6: JUMPDEST 000013e7: PUSH2 0x0c17 000013ea: PUSH2 0x348e 000013ed: JUMP 000013ee: JUMPDEST 000013ef: POP 000013f0: PUSH2 0x03e8 000013f3: DUP2 000013f4: GT 000013f5: ISZERO 000013f6: PUSH2 0x13dd 000013f9: JUMP 000013fa: JUMPDEST 000013fb: POP 000013fc: CALLVALUE 000013fd: PUSH2 0x04f0 00001400: JUMPI 00001401: DUP1 00001402: PUSH1 0x03 00001404: NOT 00001405: CALLDATASIZE 00001406: ADD 00001407: SLT 00001408: PUSH2 0x04f0 0000140b: JUMPI 0000140c: PUSH1 0x01 0000140e: SLOAD 0000140f: PUSH1 0x40 00001411: MLOAD 00001412: PUSH1 0x01 00001414: PUSH1 0x01 00001416: PUSH1 0xa0 00001418: SHL 00001419: SUB 0000141a: SWAP1 0000141b: SWAP2 0000141c: AND 0000141d: DUP2 0000141e: MSTORE 0000141f: PUSH1 0x20 00001421: SWAP1 00001422: RETURN 00001423: JUMPDEST 00001424: POP 00001425: CALLVALUE 00001426: PUSH2 0x04f0 00001429: JUMPI 0000142a: DUP1 0000142b: PUSH1 0x03 0000142d: NOT 0000142e: CALLDATASIZE 0000142f: ADD 00001430: SLT 00001431: PUSH2 0x04f0 00001434: JUMPI 00001435: PUSH1 0x20 00001437: PUSH1 0x0d 00001439: SLOAD 0000143a: PUSH1 0x40 0000143c: MLOAD 0000143d: SWAP1 0000143e: DUP2 0000143f: MSTORE 00001440: RETURN 00001441: JUMPDEST 00001442: POP 00001443: CALLVALUE 00001444: PUSH2 0x04f0 00001447: JUMPI 00001448: PUSH1 0x20 0000144a: CALLDATASIZE 0000144b: PUSH1 0x03 0000144d: NOT 0000144e: ADD 0000144f: SLT 00001450: PUSH2 0x04f0 00001453: JUMPI 00001454: PUSH1 0x20 00001456: PUSH2 0x0b5f 00001459: PUSH1 0x04 0000145b: CALLDATALOAD 0000145c: PUSH2 0x2330 0000145f: JUMP 00001460: JUMPDEST 00001461: POP 00001462: CALLVALUE 00001463: PUSH2 0x04f0 00001466: JUMPI 00001467: DUP1 00001468: PUSH1 0x03 0000146a: NOT 0000146b: CALLDATASIZE 0000146c: ADD 0000146d: SLT 0000146e: PUSH2 0x04f0 00001471: JUMPI 00001472: PUSH1 0x02 00001474: SLOAD 00001475: CALLER 00001476: PUSH1 0x01 00001478: PUSH1 0x01 0000147a: PUSH1 0xa0 0000147c: SHL 0000147d: SUB 0000147e: SWAP1 0000147f: SWAP2 00001480: AND 00001481: SUB 00001482: PUSH2 0x14d5 00001485: JUMPI 00001486: PUSH1 0x02 00001488: DUP1 00001489: SLOAD 0000148a: PUSH1 0x01 0000148c: PUSH1 0x01 0000148e: PUSH1 0xa0 00001490: SHL 00001491: SUB 00001492: NOT 00001493: SWAP1 00001494: DUP2 00001495: AND 00001496: SWAP1 00001497: SWAP2 00001498: SSTORE 00001499: PUSH1 0x01 0000149b: DUP1 0000149c: SLOAD 0000149d: CALLER 0000149e: SWAP3 0000149f: DUP2 000014a0: AND 000014a1: DUP4 000014a2: OR 000014a3: SWAP1 000014a4: SWAP2 000014a5: SSTORE 000014a6: PUSH1 0x01 000014a8: PUSH1 0x01 000014aa: PUSH1 0xa0 000014ac: SHL 000014ad: SUB 000014ae: AND 000014af: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 000014d0: DUP4 000014d1: DUP1 000014d2: LOG3 000014d3: DUP1 000014d4: RETURN 000014d5: JUMPDEST 000014d6: PUSH4 0x118cdaa7 000014db: PUSH1 0xe0 000014dd: SHL 000014de: DUP2 000014df: MSTORE 000014e0: CALLER 000014e1: PUSH1 0x04 000014e3: MSTORE 000014e4: PUSH1 0x24 000014e6: SWAP1 000014e7: REVERT 000014e8: JUMPDEST 000014e9: POP 000014ea: CALLVALUE 000014eb: PUSH2 0x04f0 000014ee: JUMPI 000014ef: DUP1 000014f0: PUSH1 0x03 000014f2: NOT 000014f3: CALLDATASIZE 000014f4: ADD 000014f5: SLT 000014f6: PUSH2 0x04f0 000014f9: JUMPI 000014fa: PUSH2 0x1501 000014fd: PUSH2 0x32d2 00001500: JUMP 00001501: JUMPDEST 00001502: PUSH1 0x02 00001504: DUP1 00001505: SLOAD 00001506: PUSH1 0x01 00001508: PUSH1 0x01 0000150a: PUSH1 0xa0 0000150c: SHL 0000150d: SUB 0000150e: NOT 0000150f: SWAP1 00001510: DUP2 00001511: AND 00001512: SWAP1 00001513: SWAP2 00001514: SSTORE 00001515: PUSH1 0x01 00001517: DUP1 00001518: SLOAD 00001519: SWAP2 0000151a: DUP3 0000151b: AND 0000151c: SWAP1 0000151d: SSTORE 0000151e: DUP2 0000151f: SWAP1 00001520: PUSH1 0x01 00001522: PUSH1 0x01 00001524: PUSH1 0xa0 00001526: SHL 00001527: SUB 00001528: AND 00001529: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 0000154a: DUP3 0000154b: DUP1 0000154c: LOG3 0000154d: DUP1 0000154e: RETURN 0000154f: JUMPDEST 00001550: POP 00001551: CALLVALUE 00001552: PUSH2 0x04f0 00001555: JUMPI 00001556: PUSH1 0x20 00001558: CALLDATASIZE 00001559: PUSH1 0x03 0000155b: NOT 0000155c: ADD 0000155d: SLT 0000155e: PUSH2 0x04f0 00001561: JUMPI 00001562: PUSH1 0x04 00001564: CALLDATALOAD 00001565: PUSH1 0xff 00001567: DUP2 00001568: AND 00001569: SWAP1 0000156a: DUP2 0000156b: DUP2 0000156c: SUB 0000156d: PUSH2 0x0880 00001570: JUMPI 00001571: PUSH2 0x1578 00001574: PUSH2 0x32d2 00001577: JUMP 00001578: JUMPDEST 00001579: PUSH1 0x64 0000157b: DUP3 0000157c: GT 0000157d: DUP1 0000157e: ISZERO 0000157f: PUSH2 0x15d2 00001582: JUMPI 00001583: JUMPDEST 00001584: PUSH2 0x0867 00001587: JUMPI 00001588: PUSH1 0x18 0000158a: DUP1 0000158b: SLOAD 0000158c: PUSH1 0xff 0000158e: PUSH1 0x40 00001590: SHL 00001591: NOT 00001592: AND 00001593: PUSH1 0x40 00001595: SWAP3 00001596: DUP4 00001597: SHL 00001598: PUSH9 0xff0000000000000000 000015a2: AND 000015a3: OR 000015a4: SWAP1 000015a5: SSTORE 000015a6: MLOAD 000015a7: SWAP1 000015a8: DUP2 000015a9: MSTORE 000015aa: PUSH32 0xdd491bf453cab2875967c496dead5e0f34f6cb6eddf3bd17be6a93c1df691389 000015cb: SWAP1 000015cc: PUSH1 0x20 000015ce: SWAP1 000015cf: LOG1 000015d0: DUP1 000015d1: RETURN 000015d2: JUMPDEST 000015d3: POP 000015d4: PUSH1 0x02 000015d6: DUP3 000015d7: LT 000015d8: PUSH2 0x1583 000015db: JUMP 000015dc: JUMPDEST 000015dd: POP 000015de: CALLVALUE 000015df: PUSH2 0x04f0 000015e2: JUMPI 000015e3: DUP1 000015e4: PUSH1 0x03 000015e6: NOT 000015e7: CALLDATASIZE 000015e8: ADD 000015e9: SLT 000015ea: PUSH2 0x04f0 000015ed: JUMPI 000015ee: PUSH1 0x20 000015f0: PUSH1 0xff 000015f2: PUSH1 0x18 000015f4: SLOAD 000015f5: PUSH1 0x50 000015f7: SHR 000015f8: AND 000015f9: PUSH1 0x40 000015fb: MLOAD 000015fc: SWAP1 000015fd: DUP2 000015fe: MSTORE 000015ff: RETURN 00001600: JUMPDEST 00001601: POP 00001602: CALLVALUE 00001603: PUSH2 0x04f0 00001606: JUMPI 00001607: PUSH1 0x20 00001609: CALLDATASIZE 0000160a: PUSH1 0x03 0000160c: NOT 0000160d: ADD 0000160e: SLT 0000160f: PUSH2 0x04f0 00001612: JUMPI 00001613: PUSH1 0x04 00001615: CALLDATALOAD 00001616: PUSH4 0xffffffff 0000161b: DUP2 0000161c: AND 0000161d: DUP1 0000161e: SWAP2 0000161f: SUB 00001620: PUSH2 0x04ec 00001623: JUMPI 00001624: DUP2 00001625: MSTORE 00001626: PUSH1 0x1b 00001628: PUSH1 0x20 0000162a: SWAP1 0000162b: DUP2 0000162c: MSTORE 0000162d: PUSH1 0x40 0000162f: SWAP2 00001630: DUP3 00001631: SWAP1 00001632: KECCAK256 00001633: SLOAD 00001634: DUP3 00001635: MLOAD 00001636: PUSH1 0x01 00001638: PUSH1 0x01 0000163a: PUSH1 0x80 0000163c: SHL 0000163d: SUB 0000163e: DUP3 0000163f: AND 00001640: DUP2 00001641: MSTORE 00001642: PUSH1 0x80 00001644: SWAP2 00001645: SWAP1 00001646: SWAP2 00001647: SHR 00001648: SWAP2 00001649: DUP2 0000164a: ADD 0000164b: SWAP2 0000164c: SWAP1 0000164d: SWAP2 0000164e: MSTORE 0000164f: RETURN 00001650: JUMPDEST 00001651: POP 00001652: CALLVALUE 00001653: PUSH2 0x04f0 00001656: JUMPI 00001657: DUP1 00001658: PUSH1 0x03 0000165a: NOT 0000165b: CALLDATASIZE 0000165c: ADD 0000165d: SLT 0000165e: PUSH2 0x04f0 00001661: JUMPI 00001662: PUSH1 0x20 00001664: PUSH4 0xffffffff 00001669: PUSH1 0x1a 0000166b: SLOAD 0000166c: AND 0000166d: PUSH1 0x40 0000166f: MLOAD 00001670: SWAP1 00001671: DUP2 00001672: MSTORE 00001673: RETURN 00001674: JUMPDEST 00001675: POP 00001676: CALLVALUE 00001677: PUSH2 0x04f0 0000167a: JUMPI 0000167b: DUP1 0000167c: PUSH1 0x03 0000167e: NOT 0000167f: CALLDATASIZE 00001680: ADD 00001681: SLT 00001682: PUSH2 0x04f0 00001685: JUMPI 00001686: PUSH1 0x20 00001688: PUSH1 0x0a 0000168a: SLOAD 0000168b: PUSH1 0x40 0000168d: MLOAD 0000168e: SWAP1 0000168f: DUP2 00001690: MSTORE 00001691: RETURN 00001692: JUMPDEST 00001693: POP 00001694: CALLVALUE 00001695: PUSH2 0x04f0 00001698: JUMPI 00001699: DUP1 0000169a: PUSH1 0x03 0000169c: NOT 0000169d: CALLDATASIZE 0000169e: ADD 0000169f: SLT 000016a0: PUSH2 0x04f0 000016a3: JUMPI 000016a4: PUSH1 0x04 000016a6: SLOAD 000016a7: PUSH1 0x40 000016a9: DUP1 000016aa: MLOAD 000016ab: PUSH1 0x01 000016ad: PUSH1 0x01 000016af: PUSH1 0xf8 000016b1: SHL 000016b2: SUB 000016b3: DUP4 000016b4: AND 000016b5: DUP2 000016b6: MSTORE 000016b7: PUSH1 0xf8 000016b9: SWAP3 000016ba: SWAP1 000016bb: SWAP3 000016bc: SHR 000016bd: ISZERO 000016be: ISZERO 000016bf: PUSH1 0x20 000016c1: DUP4 000016c2: ADD 000016c3: MSTORE 000016c4: SWAP1 000016c5: RETURN 000016c6: JUMPDEST 000016c7: POP 000016c8: CALLVALUE 000016c9: PUSH2 0x04f0 000016cc: JUMPI 000016cd: DUP1 000016ce: PUSH1 0x03 000016d0: NOT 000016d1: CALLDATASIZE 000016d2: ADD 000016d3: SLT 000016d4: PUSH2 0x04f0 000016d7: JUMPI 000016d8: PUSH1 0x20 000016da: PUSH1 0x13 000016dc: SLOAD 000016dd: PUSH1 0x40 000016df: MLOAD 000016e0: SWAP1 000016e1: DUP2 000016e2: MSTORE 000016e3: RETURN 000016e4: JUMPDEST 000016e5: POP 000016e6: CALLVALUE 000016e7: PUSH2 0x04f0 000016ea: JUMPI 000016eb: PUSH1 0x20 000016ed: CALLDATASIZE 000016ee: PUSH1 0x03 000016f0: NOT 000016f1: ADD 000016f2: SLT 000016f3: PUSH2 0x04f0 000016f6: JUMPI 000016f7: PUSH2 0x16fe 000016fa: PUSH2 0x20cc 000016fd: JUMP 000016fe: JUMPDEST 000016ff: PUSH1 0x03 00001701: SLOAD 00001702: SWAP1 00001703: PUSH1 0x01 00001705: PUSH1 0x01 00001707: PUSH1 0xa0 00001709: SHL 0000170a: SUB 0000170b: DUP3 0000170c: AND 0000170d: SWAP1 0000170e: DUP2 0000170f: PUSH2 0x1754 00001712: JUMPI 00001713: PUSH1 0x01 00001715: PUSH1 0x01 00001717: PUSH1 0xa0 00001719: SHL 0000171a: SUB 0000171b: AND 0000171c: PUSH1 0x01 0000171e: PUSH1 0x01 00001720: PUSH1 0xa0 00001722: SHL 00001723: SUB 00001724: NOT 00001725: SWAP3 00001726: SWAP1 00001727: SWAP3 00001728: AND 00001729: DUP3 0000172a: OR 0000172b: PUSH1 0x03 0000172d: SSTORE 0000172e: PUSH32 0x31914ab371ab98283208269c0ab79aebe4135bdd5dfc68bda29352ee7fa04ae4 0000174f: DUP4 00001750: DUP1 00001751: LOG3 00001752: DUP1 00001753: RETURN 00001754: JUMPDEST 00001755: PUSH1 0x40 00001757: MLOAD 00001758: PUSH3 0x461bcd 0000175c: PUSH1 0xe5 0000175e: SHL 0000175f: DUP2 00001760: MSTORE 00001761: PUSH1 0x20 00001763: PUSH1 0x04 00001765: DUP3 00001766: ADD 00001767: MSTORE 00001768: PUSH1 0x0b 0000176a: PUSH1 0x24 0000176c: DUP3 0000176d: ADD 0000176e: MSTORE 0000176f: PUSH11 0x105b1c9958591e481cd95d 0000177b: PUSH1 0xaa 0000177d: SHL 0000177e: PUSH1 0x44 00001780: DUP3 00001781: ADD 00001782: MSTORE 00001783: PUSH1 0x64 00001785: SWAP1 00001786: REVERT 00001787: JUMPDEST 00001788: POP 00001789: CALLVALUE 0000178a: PUSH2 0x04f0 0000178d: JUMPI 0000178e: PUSH1 0x20 00001790: CALLDATASIZE 00001791: PUSH1 0x03 00001793: NOT 00001794: ADD 00001795: SLT 00001796: PUSH2 0x04f0 00001799: JUMPI 0000179a: PUSH1 0x04 0000179c: CALLDATALOAD 0000179d: PUSH4 0xffffffff 000017a2: DUP2 000017a3: AND 000017a4: DUP1 000017a5: SWAP2 000017a6: SUB 000017a7: PUSH2 0x04ec 000017aa: JUMPI 000017ab: PUSH2 0x17b2 000017ae: PUSH2 0x346c 000017b1: JUMP 000017b2: JUMPDEST 000017b3: PUSH2 0x17ba 000017b6: PUSH2 0x3a7a 000017b9: JUMP 000017ba: JUMPDEST 000017bb: PUSH1 0x1c 000017bd: SLOAD 000017be: PUSH1 0xff 000017c0: DUP2 000017c1: PUSH1 0x40 000017c3: SHR 000017c4: AND 000017c5: ISZERO 000017c6: PUSH2 0x18d2 000017c9: JUMPI 000017ca: PUSH4 0xffffffff 000017cf: AND 000017d0: DUP3 000017d1: MSTORE 000017d2: PUSH1 0x1b 000017d4: PUSH1 0x20 000017d6: MSTORE 000017d7: PUSH1 0x40 000017d9: DUP3 000017da: KECCAK256 000017db: DUP1 000017dc: SLOAD 000017dd: DUP1 000017de: PUSH1 0x80 000017e0: SHR 000017e1: PUSH2 0x04ce 000017e4: JUMPI 000017e5: DUP2 000017e6: SLOAD 000017e7: PUSH1 0x01 000017e9: PUSH1 0x01 000017eb: PUSH1 0x80 000017ed: SHL 000017ee: SUB 000017ef: SWAP1 000017f0: DUP2 000017f1: AND 000017f2: PUSH1 0x80 000017f4: SWAP3 000017f5: SWAP1 000017f6: SWAP3 000017f7: SHL 000017f8: PUSH1 0x01 000017fa: PUSH1 0x01 000017fc: PUSH1 0x80 000017fe: SHL 000017ff: SUB 00001800: NOT 00001801: AND 00001802: SWAP2 00001803: SWAP1 00001804: SWAP2 00001805: OR 00001806: DUP3 00001807: SSTORE 00001808: SWAP1 00001809: SLOAD 0000180a: AND 0000180b: SWAP1 0000180c: PUSH1 0x96 0000180e: DUP3 0000180f: MUL 00001810: DUP3 00001811: DUP2 00001812: DIV 00001813: PUSH1 0x96 00001815: EQ 00001816: DUP4 00001817: ISZERO 00001818: OR 00001819: ISZERO 0000181a: PUSH2 0x04ba 0000181d: JUMPI 0000181e: PUSH2 0x2710 00001821: PUSH2 0x182c 00001824: SWAP2 00001825: DIV 00001826: DUP1 00001827: SWAP4 00001828: PUSH2 0x20fd 0000182b: JUMP 0000182c: JUMPDEST 0000182d: SWAP2 0000182e: PUSH2 0x1889 00001831: PUSH2 0x183a 00001834: DUP4 00001835: DUP6 00001836: PUSH2 0x3682 00001839: JUMP 0000183a: JUMPDEST 0000183b: SWAP3 0000183c: PUSH2 0x1847 0000183f: DUP6 00001840: PUSH1 0x1e 00001842: SLOAD 00001843: PUSH2 0x2120 00001846: JUMP 00001847: JUMPDEST 00001848: PUSH1 0x1e 0000184a: SSTORE 0000184b: PUSH2 0x185f 0000184e: PUSH2 0x1857 00001851: DUP5 00001852: DUP8 00001853: PUSH2 0x2120 00001856: JUMP 00001857: JUMPDEST 00001858: PUSH1 0x20 0000185a: SLOAD 0000185b: PUSH2 0x20fd 0000185e: JUMP 0000185f: JUMPDEST 00001860: PUSH1 0x20 00001862: SSTORE 00001863: PUSH2 0x186e 00001866: DUP6 00001867: PUSH1 0x0b 00001869: SLOAD 0000186a: PUSH2 0x2120 0000186d: JUMP 0000186e: JUMPDEST 0000186f: PUSH1 0x0b 00001871: SSTORE 00001872: PUSH2 0x0410 00001875: DUP2 00001876: PUSH2 0x1883 00001879: DUP7 0000187a: PUSH1 0x01 0000187c: SHR 0000187d: DUP1 0000187e: SWAP8 0000187f: PUSH2 0x20fd 00001882: JUMP 00001883: JUMPDEST 00001884: SWAP6 00001885: PUSH2 0x379f 00001888: JUMP 00001889: JUMPDEST 0000188a: PUSH1 0x14 0000188c: SLOAD 0000188d: PUSH3 0x910500 00001891: DUP2 00001892: ADD 00001893: DUP1 00001894: SWAP2 00001895: GT 00001896: PUSH2 0x04a6 00001899: JUMPI 0000189a: DUP5 0000189b: DUP1 0000189c: DUP1 0000189d: PUSH2 0x046c 000018a0: SWAP5 000018a1: DUP2 000018a2: SWAP5 000018a3: TIMESTAMP 000018a4: LT 000018a5: ISZERO 000018a6: PUSH2 0x18c5 000018a9: JUMPI 000018aa: JUMPDEST 000018ab: PUSH2 0x18b2 000018ae: PUSH2 0x2ece 000018b1: JUMP 000018b2: JUMPDEST 000018b3: CALLER 000018b4: PUSH2 0x7530 000018b7: CALL 000018b8: PUSH2 0x18bf 000018bb: PUSH2 0x2294 000018be: JUMP 000018bf: JUMPDEST 000018c0: POP 000018c1: PUSH2 0x22d3 000018c4: JUMP 000018c5: JUMPDEST 000018c6: PUSH2 0x18cd 000018c9: PUSH2 0x216b 000018cc: JUMP 000018cd: JUMPDEST 000018ce: PUSH2 0x18aa 000018d1: JUMP 000018d2: JUMPDEST 000018d3: PUSH4 0x1864d7ab 000018d8: PUSH1 0xe2 000018da: SHL 000018db: DUP4 000018dc: MSTORE 000018dd: PUSH1 0x04 000018df: DUP4 000018e0: REVERT 000018e1: JUMPDEST 000018e2: POP 000018e3: CALLVALUE 000018e4: PUSH2 0x04f0 000018e7: JUMPI 000018e8: DUP1 000018e9: PUSH1 0x03 000018eb: NOT 000018ec: CALLDATASIZE 000018ed: ADD 000018ee: SLT 000018ef: PUSH2 0x04f0 000018f2: JUMPI 000018f3: PUSH1 0x20 000018f5: PUSH1 0x12 000018f7: SLOAD 000018f8: PUSH1 0x40 000018fa: MLOAD 000018fb: SWAP1 000018fc: DUP2 000018fd: MSTORE 000018fe: RETURN 000018ff: JUMPDEST 00001900: POP 00001901: CALLVALUE 00001902: PUSH2 0x04f0 00001905: JUMPI 00001906: DUP1 00001907: PUSH1 0x03 00001909: NOT 0000190a: CALLDATASIZE 0000190b: ADD 0000190c: SLT 0000190d: PUSH2 0x04f0 00001910: JUMPI 00001911: PUSH1 0x20 00001913: PUSH1 0xff 00001915: PUSH1 0x18 00001917: SLOAD 00001918: PUSH1 0x40 0000191a: SHR 0000191b: AND 0000191c: PUSH1 0x40 0000191e: MLOAD 0000191f: SWAP1 00001920: DUP2 00001921: MSTORE 00001922: RETURN 00001923: JUMPDEST 00001924: POP 00001925: CALLVALUE 00001926: PUSH2 0x04f0 00001929: JUMPI 0000192a: DUP1 0000192b: PUSH1 0x03 0000192d: NOT 0000192e: CALLDATASIZE 0000192f: ADD 00001930: SLT 00001931: PUSH2 0x04f0 00001934: JUMPI 00001935: PUSH1 0x20 00001937: PUSH1 0x07 00001939: SLOAD 0000193a: PUSH1 0x40 0000193c: MLOAD 0000193d: SWAP1 0000193e: DUP2 0000193f: MSTORE 00001940: RETURN 00001941: JUMPDEST 00001942: POP 00001943: CALLVALUE 00001944: PUSH2 0x04f0 00001947: JUMPI 00001948: DUP1 00001949: PUSH1 0x03 0000194b: NOT 0000194c: CALLDATASIZE 0000194d: ADD 0000194e: SLT 0000194f: PUSH2 0x04f0 00001952: JUMPI 00001953: PUSH2 0x195a 00001956: PUSH2 0x346c 00001959: JUMP 0000195a: JUMPDEST 0000195b: PUSH1 0x40 0000195d: MLOAD 0000195e: PUSH2 0x1966 00001961: DUP2 00001962: PUSH2 0x2227 00001965: JUMP 00001966: JUMPDEST 00001967: PUSH1 0x04 00001969: SLOAD 0000196a: PUSH1 0x20 0000196c: PUSH1 0x01 0000196e: DUP1 0000196f: PUSH1 0xf8 00001971: SHL 00001972: SUB 00001973: DUP3 00001974: AND 00001975: SWAP3 00001976: DUP4 00001977: DUP2 00001978: MSTORE 00001979: ADD 0000197a: SWAP1 0000197b: PUSH1 0xf8 0000197d: SHR 0000197e: ISZERO 0000197f: ISZERO 00001980: DUP2 00001981: MSTORE 00001982: PUSH1 0x40 00001984: MLOAD 00001985: SWAP2 00001986: PUSH1 0x80 00001988: DUP4 00001989: ADD 0000198a: DUP4 0000198b: DUP2 0000198c: LT 0000198d: PUSH1 0x01 0000198f: PUSH1 0x01 00001991: PUSH1 0x40 00001993: SHL 00001994: SUB 00001995: DUP3 00001996: GT 00001997: OR 00001998: PUSH2 0x1bb2 0000199b: JUMPI 0000199c: PUSH1 0x40 0000199e: SWAP1 0000199f: DUP2 000019a0: MSTORE 000019a1: SWAP1 000019a2: DUP4 000019a3: MSTORE 000019a4: ADDRESS 000019a5: PUSH1 0x20 000019a7: DUP5 000019a8: ADD 000019a9: SWAP1 000019aa: DUP2 000019ab: MSTORE 000019ac: PUSH1 0x01 000019ae: PUSH1 0x01 000019b0: PUSH1 0x80 000019b2: SHL 000019b3: SUB 000019b4: DUP5 000019b5: DUP4 000019b6: ADD 000019b7: DUP2 000019b8: DUP2 000019b9: MSTORE 000019ba: PUSH1 0x60 000019bc: DUP7 000019bd: ADD 000019be: DUP3 000019bf: DUP2 000019c0: MSTORE 000019c1: DUP5 000019c2: MLOAD 000019c3: PUSH4 0xfc6f7865 000019c8: PUSH1 0xe0 000019ca: SHL 000019cb: DUP2 000019cc: MSTORE 000019cd: SWAP7 000019ce: MLOAD 000019cf: PUSH1 0x04 000019d1: DUP9 000019d2: ADD 000019d3: MSTORE 000019d4: SWAP3 000019d5: MLOAD 000019d6: PUSH1 0x01 000019d8: PUSH1 0x01 000019da: PUSH1 0xa0 000019dc: SHL 000019dd: SUB 000019de: AND 000019df: PUSH1 0x24 000019e1: DUP8 000019e2: ADD 000019e3: MSTORE 000019e4: MLOAD 000019e5: DUP2 000019e6: AND 000019e7: PUSH1 0x44 000019e9: DUP7 000019ea: ADD 000019eb: MSTORE 000019ec: SWAP1 000019ed: MLOAD 000019ee: AND 000019ef: PUSH1 0x64 000019f1: DUP5 000019f2: ADD 000019f3: MSTORE 000019f4: DUP3 000019f5: PUSH1 0x84 000019f7: DUP2 000019f8: DUP7 000019f9: PUSH20 0xc36442b4a4522e871399cd717abdd847ab11fe88 00001a0e: GAS 00001a0f: CALL 00001a10: SWAP1 00001a11: DUP2 00001a12: ISZERO 00001a13: PUSH2 0x1ba7 00001a16: JUMPI 00001a17: DUP4 00001a18: SWAP3 00001a19: DUP5 00001a1a: SWAP3 00001a1b: PUSH2 0x1b6c 00001a1e: JUMPI 00001a1f: JUMPDEST 00001a20: POP 00001a21: MLOAD 00001a22: ISZERO 00001a23: PUSH2 0x1b66 00001a26: JUMPI 00001a27: DUP2 00001a28: JUMPDEST 00001a29: DUP1 00001a2a: PUSH2 0x1adf 00001a2d: JUMPI 00001a2e: JUMPDEST 00001a2f: POP 00001a30: PUSH1 0x40 00001a32: MLOAD 00001a33: PUSH4 0x70a08231 00001a38: PUSH1 0xe0 00001a3a: SHL 00001a3b: DUP2 00001a3c: MSTORE 00001a3d: ADDRESS 00001a3e: PUSH1 0x04 00001a40: DUP3 00001a41: ADD 00001a42: MSTORE 00001a43: PUSH1 0x20 00001a45: DUP2 00001a46: PUSH1 0x24 00001a48: DUP2 00001a49: PUSH32 0x000000000000000000000000b47f575807fc5466285e1277ef8acfbb5c6686e8 00001a6a: PUSH1 0x01 00001a6c: PUSH1 0x01 00001a6e: PUSH1 0xa0 00001a70: SHL 00001a71: SUB 00001a72: AND 00001a73: GAS 00001a74: STATICCALL 00001a75: SWAP1 00001a76: DUP2 00001a77: ISZERO 00001a78: PUSH2 0x122a 00001a7b: JUMPI 00001a7c: DUP5 00001a7d: SWAP2 00001a7e: PUSH2 0x1aa8 00001a81: JUMPI 00001a82: JUMPDEST 00001a83: POP 00001a84: PUSH1 0x40 00001a86: SWAP4 00001a87: PUSH1 0x01 00001a89: SWAP2 00001a8a: PUSH2 0x1a9b 00001a8d: JUMPI 00001a8e: JUMPDEST 00001a8f: SSTORE 00001a90: DUP3 00001a91: MLOAD 00001a92: SWAP2 00001a93: DUP3 00001a94: MSTORE 00001a95: PUSH1 0x20 00001a97: DUP3 00001a98: ADD 00001a99: MSTORE 00001a9a: RETURN 00001a9b: JUMPDEST 00001a9c: PUSH2 0x1aa3 00001a9f: PUSH2 0x2ece 00001aa2: JUMP 00001aa3: JUMPDEST 00001aa4: PUSH2 0x1a8e 00001aa7: JUMP 00001aa8: JUMPDEST 00001aa9: SWAP1 00001aaa: POP 00001aab: PUSH1 0x20 00001aad: DUP2 00001aae: RETURNDATASIZE 00001aaf: PUSH1 0x20 00001ab1: GT 00001ab2: PUSH2 0x1ad7 00001ab5: JUMPI 00001ab6: JUMPDEST 00001ab7: DUP2 00001ab8: PUSH2 0x1ac3 00001abb: PUSH1 0x20 00001abd: SWAP4 00001abe: DUP4 00001abf: PUSH2 0x2273 00001ac2: JUMP 00001ac3: JUMPDEST 00001ac4: DUP2 00001ac5: ADD 00001ac6: SUB 00001ac7: SLT 00001ac8: PUSH2 0x1ad3 00001acb: JUMPI 00001acc: MLOAD 00001acd: PUSH1 0x40 00001acf: PUSH2 0x1a82 00001ad2: JUMP 00001ad3: JUMPDEST 00001ad4: DUP4 00001ad5: DUP1 00001ad6: REVERT 00001ad7: JUMPDEST 00001ad8: RETURNDATASIZE 00001ad9: SWAP2 00001ada: POP 00001adb: PUSH2 0x1ab6 00001ade: JUMP 00001adf: JUMPDEST 00001ae0: PUSH1 0x40 00001ae2: MLOAD 00001ae3: PUSH4 0x9ddbd211 00001ae8: PUSH1 0xe0 00001aea: SHL 00001aeb: DUP2 00001aec: MSTORE 00001aed: SWAP1 00001aee: PUSH1 0x20 00001af0: DUP3 00001af1: PUSH1 0x04 00001af3: DUP2 00001af4: PUSH32 0x000000000000000000000000b47f575807fc5466285e1277ef8acfbb5c6686e8 00001b15: PUSH1 0x01 00001b17: PUSH1 0x01 00001b19: PUSH1 0xa0 00001b1b: SHL 00001b1c: SUB 00001b1d: AND 00001b1e: GAS 00001b1f: STATICCALL 00001b20: DUP1 00001b21: ISZERO 00001b22: PUSH2 0x1b5b 00001b25: JUMPI 00001b26: PUSH2 0x1b36 00001b29: SWAP3 00001b2a: DUP7 00001b2b: SWAP2 00001b2c: PUSH2 0x1b3c 00001b2f: JUMPI 00001b30: JUMPDEST 00001b31: POP 00001b32: PUSH2 0x3957 00001b35: JUMP 00001b36: JUMPDEST 00001b37: CODESIZE 00001b38: PUSH2 0x1a2e 00001b3b: JUMP 00001b3c: JUMPDEST 00001b3d: PUSH2 0x1b55 00001b40: SWAP2 00001b41: POP 00001b42: PUSH1 0x20 00001b44: RETURNDATASIZE 00001b45: PUSH1 0x20 00001b47: GT 00001b48: PUSH2 0x10f0 00001b4b: JUMPI 00001b4c: PUSH2 0x10e2 00001b4f: DUP2 00001b50: DUP4 00001b51: PUSH2 0x2273 00001b54: JUMP 00001b55: JUMPDEST 00001b56: CODESIZE 00001b57: PUSH2 0x1b30 00001b5a: JUMP 00001b5b: JUMPDEST 00001b5c: PUSH1 0x40 00001b5e: MLOAD 00001b5f: RETURNDATASIZE 00001b60: DUP8 00001b61: DUP3 00001b62: RETURNDATACOPY 00001b63: RETURNDATASIZE 00001b64: SWAP1 00001b65: REVERT 00001b66: JUMPDEST 00001b67: DUP1 00001b68: PUSH2 0x1a28 00001b6b: JUMP 00001b6c: JUMPDEST 00001b6d: SWAP3 00001b6e: POP 00001b6f: SWAP1 00001b70: POP 00001b71: PUSH1 0x40 00001b73: DUP3 00001b74: RETURNDATASIZE 00001b75: PUSH1 0x40 00001b77: GT 00001b78: PUSH2 0x1b9f 00001b7b: JUMPI 00001b7c: JUMPDEST 00001b7d: DUP2 00001b7e: PUSH2 0x1b89 00001b81: PUSH1 0x40 00001b83: SWAP4 00001b84: DUP4 00001b85: PUSH2 0x2273 00001b88: JUMP 00001b89: JUMPDEST 00001b8a: DUP2 00001b8b: ADD 00001b8c: SUB 00001b8d: SLT 00001b8e: PUSH2 0x0880 00001b91: JUMPI 00001b92: PUSH1 0x20 00001b94: DUP3 00001b95: MLOAD 00001b96: SWAP3 00001b97: ADD 00001b98: MLOAD 00001b99: SWAP1 00001b9a: CODESIZE 00001b9b: PUSH2 0x1a1f 00001b9e: JUMP 00001b9f: JUMPDEST 00001ba0: RETURNDATASIZE 00001ba1: SWAP2 00001ba2: POP 00001ba3: PUSH2 0x1b7c 00001ba6: JUMP 00001ba7: JUMPDEST 00001ba8: PUSH1 0x40 00001baa: MLOAD 00001bab: RETURNDATASIZE 00001bac: DUP6 00001bad: DUP3 00001bae: RETURNDATACOPY 00001baf: RETURNDATASIZE 00001bb0: SWAP1 00001bb1: REVERT 00001bb2: JUMPDEST 00001bb3: PUSH4 0x4e487b71 00001bb8: PUSH1 0xe0 00001bba: SHL 00001bbb: DUP6 00001bbc: MSTORE 00001bbd: PUSH1 0x41 00001bbf: PUSH1 0x04 00001bc1: MSTORE 00001bc2: PUSH1 0x24 00001bc4: DUP6 00001bc5: REVERT 00001bc6: JUMPDEST 00001bc7: POP 00001bc8: CALLVALUE 00001bc9: PUSH2 0x04f0 00001bcc: JUMPI 00001bcd: DUP1 00001bce: PUSH1 0x03 00001bd0: NOT 00001bd1: CALLDATASIZE 00001bd2: ADD 00001bd3: SLT 00001bd4: PUSH2 0x04f0 00001bd7: JUMPI 00001bd8: PUSH1 0x20 00001bda: PUSH1 0x08 00001bdc: SLOAD 00001bdd: PUSH1 0x40 00001bdf: MLOAD 00001be0: SWAP1 00001be1: DUP2 00001be2: MSTORE 00001be3: RETURN 00001be4: JUMPDEST 00001be5: POP 00001be6: CALLVALUE 00001be7: PUSH2 0x04f0 00001bea: JUMPI 00001beb: PUSH1 0x20 00001bed: CALLDATASIZE 00001bee: PUSH1 0x03 00001bf0: NOT 00001bf1: ADD 00001bf2: SLT 00001bf3: PUSH2 0x04f0 00001bf6: JUMPI 00001bf7: PUSH1 0x04 00001bf9: CALLDATALOAD 00001bfa: PUSH4 0xffffffff 00001bff: DUP2 00001c00: AND 00001c01: DUP1 00001c02: SWAP2 00001c03: SUB 00001c04: PUSH2 0x04ec 00001c07: JUMPI 00001c08: PUSH2 0x1c0f 00001c0b: PUSH2 0x346c 00001c0e: JUMP 00001c0f: JUMPDEST 00001c10: PUSH2 0x1c17 00001c13: PUSH2 0x348e 00001c16: JUMP 00001c17: JUMPDEST 00001c18: PUSH1 0xff 00001c1a: PUSH1 0x05 00001c1c: SLOAD 00001c1d: AND 00001c1e: ISZERO 00001c1f: PUSH2 0x04dd 00001c22: JUMPI 00001c23: PUSH4 0xffffffff 00001c28: PUSH1 0x18 00001c2a: SLOAD 00001c2b: AND 00001c2c: DUP3 00001c2d: MSTORE 00001c2e: PUSH1 0x17 00001c30: PUSH1 0x20 00001c32: MSTORE 00001c33: PUSH1 0x40 00001c35: DUP3 00001c36: KECCAK256 00001c37: DUP1 00001c38: SLOAD 00001c39: DUP1 00001c3a: PUSH1 0x80 00001c3c: SHR 00001c3d: PUSH2 0x09d3 00001c40: JUMPI 00001c41: DUP2 00001c42: SLOAD 00001c43: PUSH1 0x01 00001c45: PUSH1 0x01 00001c47: PUSH1 0x80 00001c49: SHL 00001c4a: SUB 00001c4b: AND 00001c4c: PUSH1 0x80 00001c4e: SWAP2 00001c4f: SWAP1 00001c50: SWAP2 00001c51: SHL 00001c52: PUSH1 0x01 00001c54: PUSH1 0x01 00001c56: PUSH1 0x80 00001c58: SHL 00001c59: SUB 00001c5a: NOT 00001c5b: AND 00001c5c: OR 00001c5d: DUP2 00001c5e: SSTORE 00001c5f: PUSH1 0x01 00001c61: PUSH1 0x01 00001c63: PUSH1 0x80 00001c65: SHL 00001c66: SUB 00001c67: DUP2 00001c68: SLOAD 00001c69: AND 00001c6a: PUSH1 0x96 00001c6c: DUP2 00001c6d: MUL 00001c6e: DUP2 00001c6f: DUP2 00001c70: DIV 00001c71: PUSH1 0x96 00001c73: EQ 00001c74: DUP3 00001c75: ISZERO 00001c76: OR 00001c77: ISZERO 00001c78: PUSH2 0x04a6 00001c7b: JUMPI 00001c7c: DUP3 00001c7d: SLOAD 00001c7e: PUSH1 0x01 00001c80: PUSH1 0x01 00001c82: PUSH1 0x80 00001c84: SHL 00001c85: SUB 00001c86: AND 00001c87: PUSH1 0x80 00001c89: SWAP3 00001c8a: SWAP1 00001c8b: SWAP3 00001c8c: SHL 00001c8d: PUSH1 0x01 00001c8f: PUSH1 0x01 00001c91: PUSH1 0x80 00001c93: SHL 00001c94: SUB 00001c95: NOT 00001c96: AND 00001c97: SWAP2 00001c98: SWAP1 00001c99: SWAP2 00001c9a: OR 00001c9b: DUP3 00001c9c: SSTORE 00001c9d: PUSH2 0x2710 00001ca0: SWAP1 00001ca1: DIV 00001ca2: PUSH2 0x1cf5 00001ca5: PUSH1 0x01 00001ca7: PUSH1 0x01 00001ca9: PUSH1 0x80 00001cab: SHL 00001cac: SUB 00001cad: PUSH2 0x1ccc 00001cb0: PUSH2 0x1cbc 00001cb3: DUP5 00001cb4: DUP4 00001cb5: DUP8 00001cb6: SLOAD 00001cb7: AND 00001cb8: PUSH2 0x20fd 00001cbb: JUMP 00001cbc: JUMPDEST 00001cbd: SWAP6 00001cbe: PUSH2 0x1cc7 00001cc1: DUP2 00001cc2: DUP9 00001cc3: PUSH2 0x3682 00001cc6: JUMP 00001cc7: JUMPDEST 00001cc8: PUSH2 0x379f 00001ccb: JUMP 00001ccc: JUMPDEST 00001ccd: SWAP4 00001cce: PUSH2 0x1cd9 00001cd1: DUP7 00001cd2: PUSH1 0x09 00001cd4: SLOAD 00001cd5: PUSH2 0x2120 00001cd8: JUMP 00001cd9: JUMPDEST 00001cda: PUSH1 0x09 00001cdc: SSTORE 00001cdd: PUSH2 0x1ce8 00001ce0: DUP6 00001ce1: PUSH1 0x06 00001ce3: SLOAD 00001ce4: PUSH2 0x2120 00001ce7: JUMP 00001ce8: JUMPDEST 00001ce9: PUSH1 0x06 00001ceb: SSTORE 00001cec: SLOAD 00001ced: AND 00001cee: PUSH1 0x11 00001cf0: SLOAD 00001cf1: PUSH2 0x20fd 00001cf4: JUMP 00001cf5: JUMPDEST 00001cf6: PUSH1 0x11 00001cf8: SSTORE 00001cf9: PUSH1 0x14 00001cfb: SLOAD 00001cfc: PUSH3 0x910500 00001d00: DUP2 00001d01: ADD 00001d02: DUP1 00001d03: SWAP2 00001d04: GT 00001d05: PUSH2 0x04a6 00001d08: JUMPI 00001d09: DUP5 00001d0a: DUP1 00001d0b: DUP1 00001d0c: PUSH2 0x0999 00001d0f: SWAP5 00001d10: DUP2 00001d11: SWAP5 00001d12: TIMESTAMP 00001d13: LT 00001d14: ISZERO 00001d15: PUSH2 0x18c5 00001d18: JUMPI 00001d19: PUSH2 0x18b2 00001d1c: PUSH2 0x2ece 00001d1f: JUMP 00001d20: JUMPDEST 00001d21: POP 00001d22: CALLVALUE 00001d23: PUSH2 0x04f0 00001d26: JUMPI 00001d27: PUSH1 0x20 00001d29: CALLDATASIZE 00001d2a: PUSH1 0x03 00001d2c: NOT 00001d2d: ADD 00001d2e: SLT 00001d2f: PUSH2 0x04f0 00001d32: JUMPI 00001d33: PUSH1 0x04 00001d35: CALLDATALOAD 00001d36: PUSH4 0xffffffff 00001d3b: DUP2 00001d3c: AND 00001d3d: DUP1 00001d3e: SWAP2 00001d3f: SUB 00001d40: PUSH2 0x04ec 00001d43: JUMPI 00001d44: DUP2 00001d45: MSTORE 00001d46: PUSH1 0x15 00001d48: PUSH1 0x20 00001d4a: SWAP1 00001d4b: DUP2 00001d4c: MSTORE 00001d4d: PUSH1 0x40 00001d4f: SWAP2 00001d50: DUP3 00001d51: SWAP1 00001d52: KECCAK256 00001d53: SLOAD 00001d54: DUP3 00001d55: MLOAD 00001d56: PUSH1 0x01 00001d58: PUSH1 0x01 00001d5a: PUSH1 0x80 00001d5c: SHL 00001d5d: SUB 00001d5e: DUP3 00001d5f: AND 00001d60: DUP2 00001d61: MSTORE 00001d62: PUSH1 0x80 00001d64: SWAP2 00001d65: SWAP1 00001d66: SWAP2 00001d67: SHR 00001d68: SWAP2 00001d69: DUP2 00001d6a: ADD 00001d6b: SWAP2 00001d6c: SWAP1 00001d6d: SWAP2 00001d6e: MSTORE 00001d6f: RETURN 00001d70: JUMPDEST 00001d71: POP 00001d72: CALLVALUE 00001d73: PUSH2 0x04f0 00001d76: JUMPI 00001d77: PUSH1 0x20 00001d79: CALLDATASIZE 00001d7a: PUSH1 0x03 00001d7c: NOT 00001d7d: ADD 00001d7e: SLT 00001d7f: PUSH2 0x04f0 00001d82: JUMPI 00001d83: PUSH1 0x04 00001d85: CALLDATALOAD 00001d86: DUP1 00001d87: ISZERO 00001d88: PUSH2 0x1e5d 00001d8b: JUMPI 00001d8c: PUSH4 0xffffffff 00001d91: PUSH32 0x00000000000000000000000000000000000000000000000000000000686fffa0 00001db2: AND 00001db3: TIMESTAMP 00001db4: GT 00001db5: DUP1 00001db6: PUSH2 0x1e3e 00001db9: JUMPI 00001dba: JUMPDEST 00001dbb: PUSH2 0x1e31 00001dbe: JUMPI 00001dbf: JUMPDEST 00001dc0: PUSH2 0x1dca 00001dc3: DUP2 00001dc4: ADDRESS 00001dc5: CALLER 00001dc6: PUSH2 0x31f9 00001dc9: JUMP 00001dca: JUMPDEST 00001dcb: PUSH1 0x1c 00001dcd: DUP2 00001dce: MUL 00001dcf: DUP2 00001dd0: DUP2 00001dd1: DIV 00001dd2: PUSH1 0x1c 00001dd4: SUB 00001dd5: PUSH2 0x1e1d 00001dd8: JUMPI 00001dd9: SWAP1 00001dda: PUSH2 0x1df5 00001ddd: PUSH2 0x1ded 00001de0: PUSH1 0x64 00001de2: PUSH2 0x1e00 00001de5: SWAP5 00001de6: DIV 00001de7: DUP1 00001de8: SWAP4 00001de9: PUSH2 0x20fd 00001dec: JUMP 00001ded: JUMPDEST 00001dee: PUSH1 0x10 00001df0: SLOAD 00001df1: PUSH2 0x2120 00001df4: JUMP 00001df5: JUMPDEST 00001df6: PUSH1 0x10 00001df8: SSTORE 00001df9: PUSH1 0x12 00001dfb: SLOAD 00001dfc: PUSH2 0x2120 00001dff: JUMP 00001e00: JUMPDEST 00001e01: PUSH1 0x12 00001e03: SSTORE 00001e04: PUSH1 0x14 00001e06: SLOAD 00001e07: PUSH3 0x910500 00001e0b: DUP2 00001e0c: ADD 00001e0d: DUP1 00001e0e: SWAP2 00001e0f: GT 00001e10: PUSH2 0x0710 00001e13: JUMPI 00001e14: TIMESTAMP 00001e15: LT 00001e16: ISZERO 00001e17: PUSH2 0x0708 00001e1a: JUMPI 00001e1b: DUP1 00001e1c: RETURN 00001e1d: JUMPDEST 00001e1e: PUSH4 0x4e487b71 00001e23: PUSH1 0xe0 00001e25: SHL 00001e26: DUP4 00001e27: MSTORE 00001e28: PUSH1 0x11 00001e2a: PUSH1 0x04 00001e2c: MSTORE 00001e2d: PUSH1 0x24 00001e2f: DUP4 00001e30: REVERT 00001e31: JUMPDEST 00001e32: PUSH2 0x1e39 00001e35: PUSH2 0x32fb 00001e38: JUMP 00001e39: JUMPDEST 00001e3a: PUSH2 0x1dbf 00001e3d: JUMP 00001e3e: JUMPDEST 00001e3f: POP 00001e40: PUSH2 0x0258 00001e43: PUSH2 0x1e57 00001e46: PUSH4 0xffffffff 00001e4b: PUSH1 0x16 00001e4d: SLOAD 00001e4e: PUSH1 0x20 00001e50: SHR 00001e51: AND 00001e52: TIMESTAMP 00001e53: PUSH2 0x20fd 00001e56: JUMP 00001e57: JUMPDEST 00001e58: GT 00001e59: PUSH2 0x1dba 00001e5c: JUMP 00001e5d: JUMPDEST 00001e5e: PUSH4 0xb4fa3fb3 00001e63: PUSH1 0xe0 00001e65: SHL 00001e66: DUP3 00001e67: MSTORE 00001e68: PUSH1 0x04 00001e6a: DUP3 00001e6b: REVERT 00001e6c: JUMPDEST 00001e6d: POP 00001e6e: CALLVALUE 00001e6f: PUSH2 0x04f0 00001e72: JUMPI 00001e73: DUP1 00001e74: PUSH1 0x03 00001e76: NOT 00001e77: CALLDATASIZE 00001e78: ADD 00001e79: SLT 00001e7a: PUSH2 0x04f0 00001e7d: JUMPI 00001e7e: PUSH2 0x052a 00001e81: PUSH2 0x216b 00001e84: JUMP 00001e85: JUMPDEST 00001e86: POP 00001e87: CALLVALUE 00001e88: PUSH2 0x04f0 00001e8b: JUMPI 00001e8c: DUP1 00001e8d: PUSH1 0x03 00001e8f: NOT 00001e90: CALLDATASIZE 00001e91: ADD 00001e92: SLT 00001e93: PUSH2 0x04f0 00001e96: JUMPI 00001e97: PUSH1 0x20 00001e99: PUSH4 0xffffffff 00001e9e: PUSH1 0x18 00001ea0: SLOAD 00001ea1: AND 00001ea2: PUSH1 0x40 00001ea4: MLOAD 00001ea5: SWAP1 00001ea6: DUP2 00001ea7: MSTORE 00001ea8: RETURN 00001ea9: JUMPDEST 00001eaa: POP 00001eab: CALLVALUE 00001eac: PUSH2 0x04f0 00001eaf: JUMPI 00001eb0: DUP1 00001eb1: PUSH1 0x03 00001eb3: NOT 00001eb4: CALLDATASIZE 00001eb5: ADD 00001eb6: SLT 00001eb7: PUSH2 0x04f0 00001eba: JUMPI 00001ebb: PUSH1 0x20 00001ebd: PUSH1 0x40 00001ebf: MLOAD 00001ec0: PUSH20 0xc36442b4a4522e871399cd717abdd847ab11fe88 00001ed5: DUP2 00001ed6: MSTORE 00001ed7: RETURN 00001ed8: JUMPDEST 00001ed9: POP 00001eda: CALLVALUE 00001edb: PUSH2 0x04f0 00001ede: JUMPI 00001edf: PUSH1 0x20 00001ee1: CALLDATASIZE 00001ee2: PUSH1 0x03 00001ee4: NOT 00001ee5: ADD 00001ee6: SLT 00001ee7: PUSH2 0x04f0 00001eea: JUMPI 00001eeb: PUSH32 0xad307686991d52e430babc16ccec906ae187b9e7857b451be5d0e27dc56be94e 00001f0c: PUSH1 0x20 00001f0e: PUSH1 0x04 00001f10: CALLDATALOAD 00001f11: PUSH2 0x1f18 00001f14: PUSH2 0x32d2 00001f17: JUMP 00001f18: JUMPDEST 00001f19: DUP1 00001f1a: PUSH1 0x0c 00001f1c: SSTORE 00001f1d: PUSH1 0x64 00001f1f: DUP2 00001f20: LT 00001f21: ISZERO 00001f22: DUP1 00001f23: PUSH2 0x1f38 00001f26: JUMPI 00001f27: JUMPDEST 00001f28: PUSH2 0x1f30 00001f2b: SWAP1 00001f2c: PUSH2 0x212d 00001f2f: JUMP 00001f30: JUMPDEST 00001f31: PUSH2 0x0c17 00001f34: PUSH2 0x32fb 00001f37: JUMP 00001f38: JUMPDEST 00001f39: POP 00001f3a: PUSH2 0x03e8 00001f3d: DUP2 00001f3e: GT 00001f3f: ISZERO 00001f40: PUSH2 0x1f27 00001f43: JUMP 00001f44: JUMPDEST 00001f45: POP 00001f46: CALLVALUE 00001f47: PUSH2 0x04f0 00001f4a: JUMPI 00001f4b: PUSH1 0x80 00001f4d: CALLDATASIZE 00001f4e: PUSH1 0x03 00001f50: NOT 00001f51: ADD 00001f52: SLT 00001f53: PUSH2 0x04f0 00001f56: JUMPI 00001f57: PUSH2 0x1f5e 00001f5a: PUSH2 0x20cc 00001f5d: JUMP 00001f5e: JUMPDEST 00001f5f: POP 00001f60: PUSH2 0x1f67 00001f63: PUSH2 0x20e7 00001f66: JUMP 00001f67: JUMPDEST 00001f68: POP 00001f69: PUSH1 0x64 00001f6b: CALLDATALOAD 00001f6c: PUSH1 0x01 00001f6e: PUSH1 0x01 00001f70: PUSH1 0x40 00001f72: SHL 00001f73: SUB 00001f74: DUP2 00001f75: GT 00001f76: PUSH2 0x04ec 00001f79: JUMPI 00001f7a: CALLDATASIZE 00001f7b: PUSH1 0x23 00001f7d: DUP3 00001f7e: ADD 00001f7f: SLT 00001f80: ISZERO 00001f81: PUSH2 0x04ec 00001f84: JUMPI 00001f85: DUP1 00001f86: PUSH1 0x04 00001f88: ADD 00001f89: CALLDATALOAD 00001f8a: PUSH1 0x01 00001f8c: PUSH1 0x01 00001f8e: PUSH1 0x40 00001f90: SHL 00001f91: SUB 00001f92: DUP2 00001f93: GT 00001f94: PUSH2 0x0880 00001f97: JUMPI 00001f98: CALLDATASIZE 00001f99: SWAP2 00001f9a: ADD 00001f9b: PUSH1 0x24 00001f9d: ADD 00001f9e: GT 00001f9f: PUSH2 0x04f0 00001fa2: JUMPI 00001fa3: PUSH1 0x40 00001fa5: MLOAD 00001fa6: PUSH4 0x0a85bd01 00001fab: PUSH1 0xe1 00001fad: SHL 00001fae: DUP2 00001faf: MSTORE 00001fb0: PUSH1 0x20 00001fb2: SWAP1 00001fb3: RETURN 00001fb4: JUMPDEST 00001fb5: POP 00001fb6: CALLVALUE 00001fb7: PUSH2 0x04f0 00001fba: JUMPI 00001fbb: DUP1 00001fbc: PUSH1 0x03 00001fbe: NOT 00001fbf: CALLDATASIZE 00001fc0: ADD 00001fc1: SLT 00001fc2: PUSH2 0x04f0 00001fc5: JUMPI 00001fc6: PUSH1 0x20 00001fc8: PUSH4 0xffffffff 00001fcd: PUSH1 0x1c 00001fcf: SLOAD 00001fd0: DUP3 00001fd1: SHR 00001fd2: AND 00001fd3: PUSH1 0x40 00001fd5: MLOAD 00001fd6: SWAP1 00001fd7: DUP2 00001fd8: MSTORE 00001fd9: RETURN 00001fda: JUMPDEST 00001fdb: POP 00001fdc: CALLVALUE 00001fdd: PUSH2 0x04f0 00001fe0: JUMPI 00001fe1: DUP1 00001fe2: PUSH1 0x03 00001fe4: NOT 00001fe5: CALLDATASIZE 00001fe6: ADD 00001fe7: SLT 00001fe8: PUSH2 0x04f0 00001feb: JUMPI 00001fec: PUSH1 0x20 00001fee: PUSH1 0x14 00001ff0: SLOAD 00001ff1: PUSH1 0x40 00001ff3: MLOAD 00001ff4: SWAP1 00001ff5: DUP2 00001ff6: MSTORE 00001ff7: RETURN 00001ff8: JUMPDEST 00001ff9: POP 00001ffa: CALLVALUE 00001ffb: PUSH2 0x04f0 00001ffe: JUMPI 00001fff: PUSH1 0x20 00002001: CALLDATASIZE 00002002: PUSH1 0x03 00002004: NOT 00002005: ADD 00002006: SLT 00002007: PUSH2 0x04f0 0000200a: JUMPI 0000200b: PUSH1 0x04 0000200d: CALLDATALOAD 0000200e: DUP1 0000200f: ISZERO 00002010: PUSH2 0x1e5d 00002013: JUMPI 00002014: PUSH2 0x205e 00002017: SWAP1 00002018: PUSH4 0xffffffff 0000201d: PUSH32 0x00000000000000000000000000000000000000000000000000000000686fffa0 0000203e: AND 0000203f: TIMESTAMP 00002040: GT 00002041: DUP1 00002042: PUSH2 0x2088 00002045: JUMPI 00002046: JUMPDEST 00002047: PUSH2 0x207b 0000204a: JUMPI 0000204b: JUMPDEST 0000204c: PUSH2 0x2056 0000204f: DUP2 00002050: ADDRESS 00002051: CALLER 00002052: PUSH2 0x31f9 00002055: JUMP 00002056: JUMPDEST 00002057: PUSH1 0x1f 00002059: SLOAD 0000205a: PUSH2 0x2120 0000205d: JUMP 0000205e: JUMPDEST 0000205f: PUSH1 0x1f 00002061: SSTORE 00002062: PUSH1 0x14 00002064: SLOAD 00002065: PUSH3 0x910500 00002069: DUP2 0000206a: ADD 0000206b: DUP1 0000206c: SWAP2 0000206d: GT 0000206e: PUSH2 0x0710 00002071: JUMPI 00002072: TIMESTAMP 00002073: LT 00002074: ISZERO 00002075: PUSH2 0x0708 00002078: JUMPI 00002079: DUP1 0000207a: RETURN 0000207b: JUMPDEST 0000207c: PUSH2 0x2083 0000207f: PUSH2 0x3063 00002082: JUMP 00002083: JUMPDEST 00002084: PUSH2 0x204b 00002087: JUMP 00002088: JUMPDEST 00002089: POP 0000208a: PUSH2 0x0258 0000208d: PUSH2 0x20a1 00002090: PUSH4 0xffffffff 00002095: PUSH1 0x1a 00002097: SLOAD 00002098: PUSH1 0x20 0000209a: SHR 0000209b: AND 0000209c: TIMESTAMP 0000209d: PUSH2 0x20fd 000020a0: JUMP 000020a1: JUMPDEST 000020a2: GT 000020a3: PUSH2 0x2046 000020a6: JUMP 000020a7: JUMPDEST 000020a8: SWAP1 000020a9: POP 000020aa: CALLVALUE 000020ab: PUSH2 0x04ec 000020ae: JUMPI 000020af: DUP2 000020b0: PUSH1 0x03 000020b2: NOT 000020b3: CALLDATASIZE 000020b4: ADD 000020b5: SLT 000020b6: PUSH2 0x04ec 000020b9: JUMPI 000020ba: PUSH1 0x03 000020bc: SLOAD 000020bd: PUSH1 0x01 000020bf: PUSH1 0x01 000020c1: PUSH1 0xa0 000020c3: SHL 000020c4: SUB 000020c5: AND 000020c6: DUP2 000020c7: MSTORE 000020c8: PUSH1 0x20 000020ca: SWAP1 000020cb: RETURN 000020cc: JUMPDEST 000020cd: PUSH1 0x04 000020cf: CALLDATALOAD 000020d0: SWAP1 000020d1: PUSH1 0x01 000020d3: PUSH1 0x01 000020d5: PUSH1 0xa0 000020d7: SHL 000020d8: SUB 000020d9: DUP3 000020da: AND 000020db: DUP3 000020dc: SUB 000020dd: PUSH2 0x20e2 000020e0: JUMPI 000020e1: JUMP 000020e2: JUMPDEST 000020e3: PUSH1 0x00 000020e5: DUP1 000020e6: REVERT 000020e7: JUMPDEST 000020e8: PUSH1 0x24 000020ea: CALLDATALOAD 000020eb: SWAP1 000020ec: PUSH1 0x01 000020ee: PUSH1 0x01 000020f0: PUSH1 0xa0 000020f2: SHL 000020f3: SUB 000020f4: DUP3 000020f5: AND 000020f6: DUP3 000020f7: SUB 000020f8: PUSH2 0x20e2 000020fb: JUMPI 000020fc: JUMP 000020fd: JUMPDEST 000020fe: SWAP2 000020ff: SWAP1 00002100: DUP3 00002101: SUB 00002102: SWAP2 00002103: DUP3 00002104: GT 00002105: PUSH2 0x210a 00002108: JUMPI 00002109: JUMP 0000210a: JUMPDEST 0000210b: PUSH4 0x4e487b71 00002110: PUSH1 0xe0 00002112: SHL 00002113: PUSH1 0x00 00002115: MSTORE 00002116: PUSH1 0x11 00002118: PUSH1 0x04 0000211a: MSTORE 0000211b: PUSH1 0x24 0000211d: PUSH1 0x00 0000211f: REVERT 00002120: JUMPDEST 00002121: SWAP2 00002122: SWAP1 00002123: DUP3 00002124: ADD 00002125: DUP1 00002126: SWAP3 00002127: GT 00002128: PUSH2 0x210a 0000212b: JUMPI 0000212c: JUMP 0000212d: JUMPDEST 0000212e: ISZERO 0000212f: PUSH2 0x2134 00002132: JUMPI 00002133: JUMP 00002134: JUMPDEST 00002135: PUSH1 0x40 00002137: MLOAD 00002138: PUSH3 0x461bcd 0000213c: PUSH1 0xe5 0000213e: SHL 0000213f: DUP2 00002140: MSTORE 00002141: PUSH1 0x20 00002143: PUSH1 0x04 00002145: DUP3 00002146: ADD 00002147: MSTORE 00002148: PUSH1 0x0f 0000214a: PUSH1 0x24 0000214c: DUP3 0000214d: ADD 0000214e: MSTORE 0000214f: PUSH15 0x4d696e2031252c206d617820313025 0000215f: PUSH1 0x88 00002161: SHL 00002162: PUSH1 0x44 00002164: DUP3 00002165: ADD 00002166: MSTORE 00002167: PUSH1 0x64 00002169: SWAP1 0000216a: REVERT 0000216b: JUMPDEST 0000216c: PUSH1 0x14 0000216e: SLOAD 0000216f: PUSH3 0x910500 00002173: DUP2 00002174: ADD 00002175: DUP1 00002176: SWAP2 00002177: GT 00002178: PUSH2 0x210a 0000217b: JUMPI 0000217c: TIMESTAMP 0000217d: LT 0000217e: PUSH2 0x21e3 00002181: JUMPI 00002182: PUSH32 0x5478430add375261e67bd1f93748ff3c37420be046abfea3a378fb368fba610f 000021a3: PUSH1 0x40 000021a5: PUSH1 0x12 000021a7: SLOAD 000021a8: PUSH2 0x21b3 000021ab: DUP2 000021ac: PUSH1 0x10 000021ae: SLOAD 000021af: PUSH2 0x2120 000021b2: JUMP 000021b3: JUMPDEST 000021b4: PUSH1 0x10 000021b6: SSTORE 000021b7: PUSH1 0x13 000021b9: SLOAD 000021ba: PUSH2 0x21c5 000021bd: DUP2 000021be: PUSH1 0x11 000021c0: SLOAD 000021c1: PUSH2 0x2120 000021c4: JUMP 000021c5: JUMPDEST 000021c6: PUSH1 0x11 000021c8: SSTORE 000021c9: DUP3 000021ca: MLOAD 000021cb: SWAP2 000021cc: DUP3 000021cd: MSTORE 000021ce: PUSH1 0x20 000021d0: DUP3 000021d1: ADD 000021d2: MSTORE 000021d3: LOG1 000021d4: PUSH1 0x00 000021d6: PUSH1 0x12 000021d8: SSTORE 000021d9: PUSH1 0x00 000021db: PUSH1 0x13 000021dd: SSTORE 000021de: TIMESTAMP 000021df: PUSH1 0x14 000021e1: SSTORE 000021e2: JUMP 000021e3: JUMPDEST 000021e4: PUSH4 0xfeff2059 000021e9: PUSH1 0xe0 000021eb: SHL 000021ec: PUSH1 0x00 000021ee: MSTORE 000021ef: PUSH1 0x04 000021f1: PUSH1 0x00 000021f3: REVERT 000021f4: JUMPDEST 000021f5: DUP2 000021f6: DUP2 000021f7: MUL 000021f8: SWAP3 000021f9: SWAP2 000021fa: DUP2 000021fb: ISZERO 000021fc: SWAP2 000021fd: DUP5 000021fe: DIV 000021ff: EQ 00002200: OR 00002201: ISZERO 00002202: PUSH2 0x210a 00002205: JUMPI 00002206: JUMP 00002207: JUMPDEST 00002208: DUP2 00002209: ISZERO 0000220a: PUSH2 0x2211 0000220d: JUMPI 0000220e: DIV 0000220f: SWAP1 00002210: JUMP 00002211: JUMPDEST 00002212: PUSH4 0x4e487b71 00002217: PUSH1 0xe0 00002219: SHL 0000221a: PUSH1 0x00 0000221c: MSTORE 0000221d: PUSH1 0x12 0000221f: PUSH1 0x04 00002221: MSTORE 00002222: PUSH1 0x24 00002224: PUSH1 0x00 00002226: REVERT 00002227: JUMPDEST 00002228: PUSH1 0x40 0000222a: DUP2 0000222b: ADD 0000222c: SWAP1 0000222d: DUP2 0000222e: LT 0000222f: PUSH1 0x01 00002231: PUSH1 0x01 00002233: PUSH1 0x40 00002235: SHL 00002236: SUB 00002237: DUP3 00002238: GT 00002239: OR 0000223a: PUSH2 0x2242 0000223d: JUMPI 0000223e: PUSH1 0x40 00002240: MSTORE 00002241: JUMP 00002242: JUMPDEST 00002243: PUSH4 0x4e487b71 00002248: PUSH1 0xe0 0000224a: SHL 0000224b: PUSH1 0x00 0000224d: MSTORE 0000224e: PUSH1 0x41 00002250: PUSH1 0x04 00002252: MSTORE 00002253: PUSH1 0x24 00002255: PUSH1 0x00 00002257: REVERT 00002258: JUMPDEST 00002259: PUSH1 0xa0 0000225b: DUP2 0000225c: ADD 0000225d: SWAP1 0000225e: DUP2 0000225f: LT 00002260: PUSH1 0x01 00002262: PUSH1 0x01 00002264: PUSH1 0x40 00002266: SHL 00002267: SUB 00002268: DUP3 00002269: GT 0000226a: OR 0000226b: PUSH2 0x2242 0000226e: JUMPI 0000226f: PUSH1 0x40 00002271: MSTORE 00002272: JUMP 00002273: JUMPDEST 00002274: SWAP1 00002275: PUSH1 0x1f 00002277: DUP1 00002278: NOT 00002279: SWAP2 0000227a: ADD 0000227b: AND 0000227c: DUP2 0000227d: ADD 0000227e: SWAP1 0000227f: DUP2 00002280: LT 00002281: PUSH1 0x01 00002283: PUSH1 0x01 00002285: PUSH1 0x40 00002287: SHL 00002288: SUB 00002289: DUP3 0000228a: GT 0000228b: OR 0000228c: PUSH2 0x2242 0000228f: JUMPI 00002290: PUSH1 0x40 00002292: MSTORE 00002293: JUMP 00002294: JUMPDEST 00002295: RETURNDATASIZE 00002296: ISZERO 00002297: PUSH2 0x22ce 0000229a: JUMPI 0000229b: RETURNDATASIZE 0000229c: SWAP1 0000229d: PUSH1 0x01 0000229f: PUSH1 0x01 000022a1: PUSH1 0x40 000022a3: SHL 000022a4: SUB 000022a5: DUP3 000022a6: GT 000022a7: PUSH2 0x2242 000022aa: JUMPI 000022ab: PUSH1 0x40 000022ad: MLOAD 000022ae: SWAP2 000022af: PUSH2 0x22c2 000022b2: PUSH1 0x1f 000022b4: DUP3 000022b5: ADD 000022b6: PUSH1 0x1f 000022b8: NOT 000022b9: AND 000022ba: PUSH1 0x20 000022bc: ADD 000022bd: DUP5 000022be: PUSH2 0x2273 000022c1: JUMP 000022c2: JUMPDEST 000022c3: DUP3 000022c4: MSTORE 000022c5: RETURNDATASIZE 000022c6: PUSH1 0x00 000022c8: PUSH1 0x20 000022ca: DUP5 000022cb: ADD 000022cc: RETURNDATACOPY 000022cd: JUMP 000022ce: JUMPDEST 000022cf: PUSH1 0x60 000022d1: SWAP1 000022d2: JUMP 000022d3: JUMPDEST 000022d4: ISZERO 000022d5: PUSH2 0x22da 000022d8: JUMPI 000022d9: JUMP 000022da: JUMPDEST 000022db: PUSH1 0x40 000022dd: MLOAD 000022de: PUSH3 0x461bcd 000022e2: PUSH1 0xe5 000022e4: SHL 000022e5: DUP2 000022e6: MSTORE 000022e7: PUSH1 0x20 000022e9: PUSH1 0x04 000022eb: DUP3 000022ec: ADD 000022ed: MSTORE 000022ee: PUSH1 0x0f 000022f0: PUSH1 0x24 000022f2: DUP3 000022f3: ADD 000022f4: MSTORE 000022f5: PUSH15 0x151c985b9cd9995c8819985a5b1959 00002305: PUSH1 0x8a 00002307: SHL 00002308: PUSH1 0x44 0000230a: DUP3 0000230b: ADD 0000230c: MSTORE 0000230d: PUSH1 0x64 0000230f: SWAP1 00002310: REVERT 00002311: JUMPDEST 00002312: SWAP1 00002313: DUP2 00002314: PUSH1 0x20 00002316: SWAP2 00002317: SUB 00002318: SLT 00002319: PUSH2 0x20e2 0000231c: JUMPI 0000231d: MLOAD 0000231e: PUSH1 0x01 00002320: PUSH1 0x01 00002322: PUSH1 0xa0 00002324: SHL 00002325: SUB 00002326: DUP2 00002327: AND 00002328: DUP2 00002329: SUB 0000232a: PUSH2 0x20e2 0000232d: JUMPI 0000232e: SWAP1 0000232f: JUMP 00002330: JUMPDEST 00002331: PUSH1 0x40 00002333: MLOAD 00002334: PUSH4 0xd86e6d39 00002339: PUSH1 0xe0 0000233b: SHL 0000233c: DUP2 0000233d: MSTORE 0000233e: PUSH32 0x000000000000000000000000b47f575807fc5466285e1277ef8acfbb5c6686e8 0000235f: PUSH1 0x01 00002361: PUSH1 0x01 00002363: PUSH1 0xa0 00002365: SHL 00002366: SUB 00002367: AND 00002368: SWAP1 00002369: PUSH1 0x20 0000236b: DUP2 0000236c: PUSH1 0x04 0000236e: DUP2 0000236f: DUP6 00002370: GAS 00002371: STATICCALL 00002372: SWAP1 00002373: DUP2 00002374: ISZERO 00002375: PUSH2 0x297c 00002378: JUMPI 00002379: PUSH1 0x00 0000237b: SWAP2 0000237c: PUSH2 0x295d 0000237f: JUMPI 00002380: JUMPDEST 00002381: POP 00002382: PUSH1 0x40 00002384: MLOAD 00002385: PUSH4 0x3850c7bd 0000238a: PUSH1 0xe0 0000238c: SHL 0000238d: DUP2 0000238e: MSTORE 0000238f: PUSH2 0x0384 00002392: SWAP2 00002393: PUSH1 0x01 00002395: PUSH1 0x01 00002397: PUSH1 0xa0 00002399: SHL 0000239a: SUB 0000239b: AND 0000239c: SWAP1 0000239d: PUSH1 0x00 0000239f: SWAP1 000023a0: PUSH1 0xe0 000023a2: DUP2 000023a3: PUSH1 0x04 000023a5: DUP2 000023a6: DUP7 000023a7: GAS 000023a8: STATICCALL 000023a9: DUP1 000023aa: ISZERO 000023ab: PUSH2 0x2898 000023ae: JUMPI 000023af: DUP3 000023b0: SWAP2 000023b1: DUP4 000023b2: SWAP2 000023b3: PUSH2 0x28cd 000023b6: JUMPI 000023b7: JUMPDEST 000023b8: POP 000023b9: PUSH2 0xffff 000023bc: AND 000023bd: SWAP1 000023be: DUP2 000023bf: ISZERO 000023c0: PUSH2 0x28a3 000023c3: JUMPI 000023c4: PUSH2 0xffff 000023c7: PUSH1 0x01 000023c9: SWAP2 000023ca: AND 000023cb: ADD 000023cc: SWAP1 000023cd: PUSH2 0xffff 000023d0: DUP3 000023d1: GT 000023d2: PUSH2 0x1e1d 000023d5: JUMPI 000023d6: PUSH2 0xffff 000023d9: SWAP1 000023da: DUP2 000023db: PUSH1 0x40 000023dd: MLOAD 000023de: SWAP4 000023df: PUSH4 0x252c09d7 000023e4: PUSH1 0xe0 000023e6: SHL 000023e7: DUP6 000023e8: MSTORE 000023e9: AND 000023ea: MOD 000023eb: AND 000023ec: PUSH1 0x04 000023ee: DUP3 000023ef: ADD 000023f0: MSTORE 000023f1: PUSH1 0x80 000023f3: DUP2 000023f4: PUSH1 0x24 000023f6: DUP2 000023f7: DUP7 000023f8: GAS 000023f9: STATICCALL 000023fa: SWAP1 000023fb: DUP2 000023fc: ISZERO 000023fd: PUSH2 0x2898 00002400: JUMPI 00002401: DUP3 00002402: SWAP1 00002403: DUP4 00002404: SWAP3 00002405: PUSH2 0x2873 00002408: JUMPI 00002409: JUMPDEST 0000240a: POP 0000240b: SWAP1 0000240c: ISZERO 0000240d: PUSH2 0x2800 00002410: JUMPI 00002411: JUMPDEST 00002412: PUSH2 0x2422 00002415: SWAP2 00002416: POP 00002417: PUSH4 0xffffffff 0000241c: TIMESTAMP 0000241d: AND 0000241e: PUSH2 0x3f08 00002421: JUMP 00002422: JUMPDEST 00002423: DUP3 00002424: PUSH4 0xffffffff 00002429: DUP3 0000242a: AND 0000242b: LT 0000242c: PUSH2 0x27f8 0000242f: JUMPI 00002430: JUMPDEST 00002431: POP 00002432: PUSH4 0xffffffff 00002437: PUSH1 0x00 00002439: SWAP3 0000243a: AND 0000243b: SWAP2 0000243c: DUP3 0000243d: ISZERO 0000243e: PUSH2 0x27ce 00002441: JUMPI 00002442: DUP1 00002443: PUSH1 0x40 00002445: MLOAD 00002446: PUSH2 0x2450 00002449: PUSH1 0x60 0000244b: DUP3 0000244c: PUSH2 0x2273 0000244f: JUMP 00002450: JUMPDEST 00002451: PUSH1 0x02 00002453: DUP2 00002454: MSTORE 00002455: PUSH1 0x20 00002457: DUP2 00002458: ADD 00002459: SWAP4 0000245a: PUSH1 0x40 0000245c: CALLDATASIZE 0000245d: DUP7 0000245e: CALLDATACOPY 0000245f: DUP6 00002460: PUSH2 0x2468 00002463: DUP4 00002464: PUSH2 0x3f39 00002467: JUMP 00002468: JUMPDEST 00002469: MSTORE 0000246a: DUP3 0000246b: PUSH2 0x2473 0000246e: DUP4 0000246f: PUSH2 0x3f5c 00002472: JUMP 00002473: JUMPDEST 00002474: MSTORE 00002475: PUSH1 0x40 00002477: MLOAD 00002478: PUSH4 0x883bdbfd 0000247d: PUSH1 0xe0 0000247f: SHL 00002480: DUP2 00002481: MSTORE 00002482: PUSH1 0x20 00002484: PUSH1 0x04 00002486: DUP3 00002487: ADD 00002488: MSTORE 00002489: SWAP2 0000248a: MLOAD 0000248b: PUSH1 0x24 0000248d: DUP4 0000248e: ADD 0000248f: DUP2 00002490: SWAP1 00002491: MSTORE 00002492: SWAP2 00002493: SWAP5 00002494: DUP6 00002495: SWAP3 00002496: PUSH1 0x44 00002498: DUP5 00002499: ADD 0000249a: SWAP2 0000249b: SWAP1 0000249c: DUP6 0000249d: JUMPDEST 0000249e: DUP2 0000249f: DUP2 000024a0: LT 000024a1: PUSH2 0x27ac 000024a4: JUMPI 000024a5: POP 000024a6: POP 000024a7: POP 000024a8: DUP3 000024a9: DUP1 000024aa: SWAP2 000024ab: SUB 000024ac: SWAP2 000024ad: GAS 000024ae: STATICCALL 000024af: SWAP2 000024b0: DUP3 000024b1: ISZERO 000024b2: PUSH2 0x279f 000024b5: JUMPI 000024b6: DUP2 000024b7: SWAP1 000024b8: DUP3 000024b9: SWAP4 000024ba: PUSH2 0x2685 000024bd: JUMPI 000024be: JUMPDEST 000024bf: POP 000024c0: PUSH2 0x24d5 000024c3: PUSH2 0x24cb 000024c6: DUP3 000024c7: PUSH2 0x3f5c 000024ca: JUMP 000024cb: JUMPDEST 000024cc: MLOAD 000024cd: PUSH1 0x06 000024cf: SIGNEXTEND 000024d0: SWAP2 000024d1: PUSH2 0x3f39 000024d4: JUMP 000024d5: JUMPDEST 000024d6: MLOAD 000024d7: PUSH1 0x06 000024d9: SIGNEXTEND 000024da: SWAP1 000024db: SUB 000024dc: SWAP2 000024dd: PUSH7 0x7fffffffffffff 000024e5: NOT 000024e6: DUP4 000024e7: SLT 000024e8: PUSH7 0x7fffffffffffff 000024f0: DUP5 000024f1: SGT 000024f2: OR 000024f3: PUSH2 0x0710 000024f6: JUMPI 000024f7: PUSH1 0x01 000024f9: PUSH1 0x01 000024fb: PUSH1 0xa0 000024fd: SHL 000024fe: SUB 000024ff: PUSH2 0x2507 00002502: DUP3 00002503: PUSH2 0x3f5c 00002506: JUMP 00002507: JUMPDEST 00002508: MLOAD 00002509: AND 0000250a: SWAP1 0000250b: PUSH1 0x01 0000250d: PUSH1 0x01 0000250f: PUSH1 0xa0 00002511: SHL 00002512: SUB 00002513: SWAP1 00002514: PUSH2 0x251c 00002517: SWAP1 00002518: PUSH2 0x3f39 0000251b: JUMP 0000251c: JUMPDEST 0000251d: MLOAD 0000251e: AND 0000251f: SWAP1 00002520: SUB 00002521: SWAP1 00002522: PUSH1 0x01 00002524: PUSH1 0x01 00002526: PUSH1 0xa0 00002528: SHL 00002529: SUB 0000252a: DUP3 0000252b: GT 0000252c: PUSH2 0x265d 0000252f: JUMPI 00002530: DUP4 00002531: PUSH1 0x06 00002533: SIGNEXTEND 00002534: SWAP3 00002535: PUSH1 0x06 00002537: SIGNEXTEND 00002538: SWAP1 00002539: DUP4 0000253a: ISZERO 0000253b: PUSH2 0x2671 0000253e: JUMPI 0000253f: PUSH7 0x7fffffffffffff 00002547: NOT 00002548: DUP3 00002549: EQ 0000254a: PUSH1 0x00 0000254c: NOT 0000254d: DUP6 0000254e: EQ 0000254f: AND 00002550: PUSH2 0x265d 00002553: JUMPI 00002554: POP 00002555: DUP3 00002556: DUP2 00002557: SDIV 00002558: PUSH1 0x02 0000255a: SIGNEXTEND 0000255b: SWAP3 0000255c: PUSH1 0x00 0000255e: DUP3 0000255f: SLT 00002560: SWAP2 00002561: DUP3 00002562: PUSH2 0x264e 00002565: JUMPI 00002566: JUMPDEST 00002567: POP 00002568: POP 00002569: PUSH2 0x2638 0000256c: JUMPI 0000256d: JUMPDEST 0000256e: PUSH1 0x01 00002570: PUSH1 0x01 00002572: PUSH1 0xa0 00002574: SHL 00002575: SUB 00002576: DUP4 00002577: DUP2 00002578: MUL 00002579: PUSH1 0x01 0000257b: PUSH1 0x01 0000257d: PUSH1 0xc0 0000257f: SHL 00002580: SUB 00002581: AND 00002582: SWAP4 00002583: DUP5 00002584: DIV 00002585: SWAP1 00002586: SUB 00002587: PUSH2 0x210a 0000258a: JUMPI 0000258b: PUSH1 0x20 0000258d: SHL 0000258e: PUSH5 0x0100000000 00002594: PUSH1 0x01 00002596: PUSH1 0xc0 00002598: SHL 00002599: SUB 0000259a: AND 0000259b: SWAP2 0000259c: DUP3 0000259d: ISZERO 0000259e: PUSH2 0x2211 000025a1: JUMPI 000025a2: POP 000025a3: PUSH2 0x25ac 000025a6: SWAP2 000025a7: POP 000025a8: PUSH2 0x3f6c 000025ab: JUMP 000025ac: JUMPDEST 000025ad: PUSH1 0x01 000025af: PUSH1 0x01 000025b1: PUSH1 0xa0 000025b3: SHL 000025b4: SUB 000025b5: AND 000025b6: PUSH1 0x01 000025b8: PUSH1 0x01 000025ba: PUSH1 0x80 000025bc: SHL 000025bd: SUB 000025be: DUP2 000025bf: GT 000025c0: PUSH2 0x25ff 000025c3: JUMPI 000025c4: DUP1 000025c5: PUSH2 0x25cd 000025c8: SWAP2 000025c9: PUSH2 0x21f4 000025cc: JUMP 000025cd: JUMPDEST 000025ce: SWAP1 000025cf: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1 000025e4: LT 000025e5: ISZERO 000025e6: PUSH2 0x25f6 000025e9: JUMPI 000025ea: SWAP1 000025eb: PUSH2 0x25f3 000025ee: SWAP2 000025ef: PUSH2 0x4885 000025f2: JUMP 000025f3: JUMPDEST 000025f4: SWAP1 000025f5: JUMP 000025f6: JUMPDEST 000025f7: PUSH2 0x25f3 000025fa: SWAP2 000025fb: PUSH2 0x4800 000025fe: JUMP 000025ff: JUMPDEST 00002600: DUP1 00002601: PUSH2 0x2609 00002604: SWAP2 00002605: PUSH2 0x46b0 00002608: JUMP 00002609: JUMPDEST 0000260a: SWAP1 0000260b: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1 00002620: LT 00002621: ISZERO 00002622: PUSH2 0x262f 00002625: JUMPI 00002626: SWAP1 00002627: PUSH2 0x25f3 0000262a: SWAP2 0000262b: PUSH2 0x47b1 0000262e: JUMP 0000262f: JUMPDEST 00002630: PUSH2 0x25f3 00002633: SWAP2 00002634: PUSH2 0x470f 00002637: JUMP 00002638: JUMPDEST 00002639: SWAP1 0000263a: PUSH3 0x7fffff 0000263e: NOT 0000263f: DUP2 00002640: EQ 00002641: PUSH2 0x210a 00002644: JUMPI 00002645: PUSH1 0x00 00002647: NOT 00002648: ADD 00002649: SWAP1 0000264a: PUSH2 0x256d 0000264d: JUMP 0000264e: JUMPDEST 0000264f: SMOD 00002650: PUSH1 0x06 00002652: SIGNEXTEND 00002653: ISZERO 00002654: ISZERO 00002655: SWAP1 00002656: POP 00002657: CODESIZE 00002658: DUP1 00002659: PUSH2 0x2566 0000265c: JUMP 0000265d: JUMPDEST 0000265e: PUSH4 0x4e487b71 00002663: PUSH1 0xe0 00002665: SHL 00002666: DUP2 00002667: MSTORE 00002668: PUSH1 0x11 0000266a: PUSH1 0x04 0000266c: MSTORE 0000266d: PUSH1 0x24 0000266f: SWAP1 00002670: REVERT 00002671: JUMPDEST 00002672: PUSH4 0x4e487b71 00002677: PUSH1 0xe0 00002679: SHL 0000267a: DUP2 0000267b: MSTORE 0000267c: PUSH1 0x12 0000267e: PUSH1 0x04 00002680: MSTORE 00002681: PUSH1 0x24 00002683: SWAP1 00002684: REVERT 00002685: JUMPDEST 00002686: SWAP3 00002687: POP 00002688: POP 00002689: RETURNDATASIZE 0000268a: DUP1 0000268b: DUP3 0000268c: DUP5 0000268d: RETURNDATACOPY 0000268e: PUSH2 0x2697 00002691: DUP2 00002692: DUP5 00002693: PUSH2 0x2273 00002696: JUMP 00002697: JUMPDEST 00002698: DUP3 00002699: ADD 0000269a: SWAP2 0000269b: PUSH1 0x40 0000269d: DUP2 0000269e: DUP5 0000269f: SUB 000026a0: SLT 000026a1: PUSH2 0x04ec 000026a4: JUMPI 000026a5: DUP1 000026a6: MLOAD 000026a7: PUSH1 0x01 000026a9: PUSH1 0x01 000026ab: PUSH1 0x40 000026ad: SHL 000026ae: SUB 000026af: DUP2 000026b0: GT 000026b1: PUSH2 0x0880 000026b4: JUMPI 000026b5: DUP2 000026b6: ADD 000026b7: SWAP1 000026b8: DUP4 000026b9: PUSH1 0x1f 000026bb: DUP4 000026bc: ADD 000026bd: SLT 000026be: ISZERO 000026bf: PUSH2 0x0880 000026c2: JUMPI 000026c3: DUP2 000026c4: MLOAD 000026c5: SWAP2 000026c6: PUSH2 0x26ce 000026c9: DUP4 000026ca: PUSH2 0x3f22 000026cd: JUMP 000026ce: JUMPDEST 000026cf: SWAP3 000026d0: PUSH2 0x26dc 000026d3: PUSH1 0x40 000026d5: MLOAD 000026d6: SWAP5 000026d7: DUP6 000026d8: PUSH2 0x2273 000026db: JUMP 000026dc: JUMPDEST 000026dd: DUP1 000026de: DUP5 000026df: MSTORE 000026e0: PUSH1 0x20 000026e2: DUP1 000026e3: DUP6 000026e4: ADD 000026e5: SWAP2 000026e6: PUSH1 0x05 000026e8: SHL 000026e9: DUP4 000026ea: ADD 000026eb: ADD 000026ec: SWAP2 000026ed: DUP7 000026ee: DUP4 000026ef: GT 000026f0: PUSH2 0x279b 000026f3: JUMPI 000026f4: PUSH1 0x20 000026f6: ADD 000026f7: SWAP1 000026f8: JUMPDEST 000026f9: DUP3 000026fa: DUP3 000026fb: LT 000026fc: PUSH2 0x2783 000026ff: JUMPI 00002700: POP 00002701: POP 00002702: POP 00002703: PUSH1 0x20 00002705: DUP2 00002706: ADD 00002707: MLOAD 00002708: SWAP1 00002709: PUSH1 0x01 0000270b: PUSH1 0x01 0000270d: PUSH1 0x40 0000270f: SHL 00002710: SUB 00002711: DUP3 00002712: GT 00002713: PUSH2 0x1ad3 00002716: JUMPI 00002717: ADD 00002718: SWAP3 00002719: DUP1 0000271a: PUSH1 0x1f 0000271c: DUP6 0000271d: ADD 0000271e: SLT 0000271f: ISZERO 00002720: PUSH2 0x0880 00002723: JUMPI 00002724: DUP4 00002725: MLOAD 00002726: PUSH2 0x272e 00002729: DUP2 0000272a: PUSH2 0x3f22 0000272d: JUMP 0000272e: JUMPDEST 0000272f: SWAP5 00002730: PUSH2 0x273c 00002733: PUSH1 0x40 00002735: MLOAD 00002736: SWAP7 00002737: DUP8 00002738: PUSH2 0x2273 0000273b: JUMP 0000273c: JUMPDEST 0000273d: DUP2 0000273e: DUP7 0000273f: MSTORE 00002740: PUSH1 0x20 00002742: DUP1 00002743: DUP8 00002744: ADD 00002745: SWAP3 00002746: PUSH1 0x05 00002748: SHL 00002749: DUP3 0000274a: ADD 0000274b: ADD 0000274c: SWAP3 0000274d: DUP4 0000274e: GT 0000274f: PUSH2 0x277f 00002752: JUMPI 00002753: PUSH1 0x20 00002755: ADD 00002756: SWAP1 00002757: JUMPDEST 00002758: DUP3 00002759: DUP3 0000275a: LT 0000275b: PUSH2 0x2767 0000275e: JUMPI 0000275f: POP 00002760: POP 00002761: POP 00002762: CODESIZE 00002763: PUSH2 0x24be 00002766: JUMP 00002767: JUMPDEST 00002768: PUSH1 0x20 0000276a: DUP1 0000276b: SWAP2 0000276c: PUSH2 0x2774 0000276f: DUP5 00002770: PUSH2 0x3e7d 00002773: JUMP 00002774: JUMPDEST 00002775: DUP2 00002776: MSTORE 00002777: ADD 00002778: SWAP2 00002779: ADD 0000277a: SWAP1 0000277b: PUSH2 0x2757 0000277e: JUMP 0000277f: JUMPDEST 00002780: DUP5 00002781: DUP1 00002782: REVERT 00002783: JUMPDEST 00002784: PUSH1 0x20 00002786: DUP1 00002787: SWAP2 00002788: PUSH2 0x2790 0000278b: DUP5 0000278c: PUSH2 0x3ea0 0000278f: JUMP 00002790: JUMPDEST 00002791: DUP2 00002792: MSTORE 00002793: ADD 00002794: SWAP2 00002795: ADD 00002796: SWAP1 00002797: PUSH2 0x26f8 0000279a: JUMP 0000279b: JUMPDEST 0000279c: DUP6 0000279d: DUP1 0000279e: REVERT 0000279f: JUMPDEST 000027a0: POP 000027a1: PUSH1 0x40 000027a3: MLOAD 000027a4: SWAP1 000027a5: RETURNDATASIZE 000027a6: SWAP1 000027a7: DUP3 000027a8: RETURNDATACOPY 000027a9: RETURNDATASIZE 000027aa: SWAP1 000027ab: REVERT 000027ac: JUMPDEST 000027ad: DUP3 000027ae: MLOAD 000027af: PUSH4 0xffffffff 000027b4: AND 000027b5: DUP5 000027b6: MSTORE 000027b7: DUP8 000027b8: SWAP7 000027b9: POP 000027ba: DUP9 000027bb: SWAP6 000027bc: POP 000027bd: PUSH1 0x20 000027bf: SWAP4 000027c0: DUP5 000027c1: ADD 000027c2: SWAP4 000027c3: SWAP1 000027c4: SWAP3 000027c5: ADD 000027c6: SWAP2 000027c7: PUSH1 0x01 000027c9: ADD 000027ca: PUSH2 0x249d 000027cd: JUMP 000027ce: JUMPDEST 000027cf: PUSH1 0x40 000027d1: MLOAD 000027d2: PUSH3 0x461bcd 000027d6: PUSH1 0xe5 000027d8: SHL 000027d9: DUP2 000027da: MSTORE 000027db: PUSH1 0x20 000027dd: PUSH1 0x04 000027df: DUP3 000027e0: ADD 000027e1: MSTORE 000027e2: PUSH1 0x02 000027e4: PUSH1 0x24 000027e6: DUP3 000027e7: ADD 000027e8: MSTORE 000027e9: PUSH2 0x0425 000027ec: PUSH1 0xf4 000027ee: SHL 000027ef: PUSH1 0x44 000027f1: DUP3 000027f2: ADD 000027f3: MSTORE 000027f4: PUSH1 0x64 000027f6: SWAP1 000027f7: REVERT 000027f8: JUMPDEST 000027f9: SWAP2 000027fa: POP 000027fb: CODESIZE 000027fc: PUSH2 0x2430 000027ff: JUMP 00002800: JUMPDEST 00002801: POP 00002802: PUSH1 0x40 00002804: MLOAD 00002805: PUSH4 0x252c09d7 0000280a: PUSH1 0xe0 0000280c: SHL 0000280d: DUP2 0000280e: MSTORE 0000280f: PUSH1 0x04 00002811: DUP2 00002812: ADD 00002813: DUP3 00002814: SWAP1 00002815: MSTORE 00002816: PUSH1 0x80 00002818: DUP2 00002819: PUSH1 0x24 0000281b: DUP2 0000281c: DUP7 0000281d: GAS 0000281e: STATICCALL 0000281f: SWAP2 00002820: DUP3 00002821: ISZERO 00002822: PUSH2 0x2867 00002825: JUMPI 00002826: SWAP1 00002827: PUSH2 0x2422 0000282a: SWAP3 0000282b: PUSH2 0x2835 0000282e: JUMPI 0000282f: JUMPDEST 00002830: POP 00002831: PUSH2 0x2411 00002834: JUMP 00002835: JUMPDEST 00002836: PUSH2 0x2857 00002839: SWAP2 0000283a: POP 0000283b: PUSH1 0x80 0000283d: RETURNDATASIZE 0000283e: PUSH1 0x80 00002840: GT 00002841: PUSH2 0x2860 00002844: JUMPI 00002845: JUMPDEST 00002846: PUSH2 0x284f 00002849: DUP2 0000284a: DUP4 0000284b: PUSH2 0x2273 0000284e: JUMP 0000284f: JUMPDEST 00002850: DUP2 00002851: ADD 00002852: SWAP1 00002853: PUSH2 0x3eae 00002856: JUMP 00002857: JUMPDEST 00002858: POP 00002859: POP 0000285a: POP 0000285b: CODESIZE 0000285c: PUSH2 0x282f 0000285f: JUMP 00002860: JUMPDEST 00002861: POP 00002862: RETURNDATASIZE 00002863: PUSH2 0x2845 00002866: JUMP 00002867: JUMPDEST 00002868: PUSH1 0x40 0000286a: MLOAD 0000286b: SWAP1 0000286c: RETURNDATASIZE 0000286d: SWAP1 0000286e: DUP3 0000286f: RETURNDATACOPY 00002870: RETURNDATASIZE 00002871: SWAP1 00002872: REVERT 00002873: JUMPDEST 00002874: SWAP1 00002875: POP 00002876: PUSH2 0x288e 00002879: SWAP2 0000287a: POP 0000287b: PUSH1 0x80 0000287d: RETURNDATASIZE 0000287e: PUSH1 0x80 00002880: GT 00002881: PUSH2 0x2860 00002884: JUMPI 00002885: PUSH2 0x284f 00002888: DUP2 00002889: DUP4 0000288a: PUSH2 0x2273 0000288d: JUMP 0000288e: JUMPDEST 0000288f: SWAP3 00002890: SWAP2 00002891: POP 00002892: POP 00002893: CODESIZE 00002894: PUSH2 0x2409 00002897: JUMP 00002898: JUMPDEST 00002899: PUSH1 0x40 0000289b: MLOAD 0000289c: RETURNDATASIZE 0000289d: DUP5 0000289e: DUP3 0000289f: RETURNDATACOPY 000028a0: RETURNDATASIZE 000028a1: SWAP1 000028a2: REVERT 000028a3: JUMPDEST 000028a4: PUSH1 0x40 000028a6: MLOAD 000028a7: PUSH3 0x461bcd 000028ab: PUSH1 0xe5 000028ad: SHL 000028ae: DUP2 000028af: MSTORE 000028b0: PUSH1 0x20 000028b2: PUSH1 0x04 000028b4: DUP3 000028b5: ADD 000028b6: MSTORE 000028b7: PUSH1 0x02 000028b9: PUSH1 0x24 000028bb: DUP3 000028bc: ADD 000028bd: MSTORE 000028be: PUSH2 0x4e49 000028c1: PUSH1 0xf0 000028c3: SHL 000028c4: PUSH1 0x44 000028c6: DUP3 000028c7: ADD 000028c8: MSTORE 000028c9: PUSH1 0x64 000028cb: SWAP1 000028cc: REVERT 000028cd: JUMPDEST 000028ce: SWAP2 000028cf: POP 000028d0: POP 000028d1: PUSH1 0xe0 000028d3: DUP2 000028d4: RETURNDATASIZE 000028d5: PUSH1 0xe0 000028d7: GT 000028d8: PUSH2 0x2955 000028db: JUMPI 000028dc: JUMPDEST 000028dd: DUP2 000028de: PUSH2 0x28e9 000028e1: PUSH1 0xe0 000028e3: SWAP4 000028e4: DUP4 000028e5: PUSH2 0x2273 000028e8: JUMP 000028e9: JUMPDEST 000028ea: DUP2 000028eb: ADD 000028ec: SUB 000028ed: SLT 000028ee: PUSH2 0x04ec 000028f1: JUMPI 000028f2: PUSH2 0x28fa 000028f5: DUP2 000028f6: PUSH2 0x3e7d 000028f9: JUMP 000028fa: JUMPDEST 000028fb: POP 000028fc: PUSH1 0x20 000028fe: DUP2 000028ff: ADD 00002900: MLOAD 00002901: DUP1 00002902: PUSH1 0x02 00002904: SIGNEXTEND 00002905: SUB 00002906: PUSH2 0x04ec 00002909: JUMPI 0000290a: PUSH2 0x2915 0000290d: PUSH1 0x40 0000290f: DUP3 00002910: ADD 00002911: PUSH2 0x3e91 00002914: JUMP 00002915: JUMPDEST 00002916: PUSH2 0x2921 00002919: PUSH1 0x60 0000291b: DUP4 0000291c: ADD 0000291d: PUSH2 0x3e91 00002920: JUMP 00002921: JUMPDEST 00002922: SWAP2 00002923: PUSH2 0x292e 00002926: PUSH1 0x80 00002928: DUP3 00002929: ADD 0000292a: PUSH2 0x3e91 0000292d: JUMP 0000292e: JUMPDEST 0000292f: POP 00002930: PUSH1 0xa0 00002932: DUP2 00002933: ADD 00002934: MLOAD 00002935: PUSH1 0xff 00002937: DUP2 00002938: AND 00002939: SUB 0000293a: PUSH2 0x1ad3 0000293d: JUMPI 0000293e: SWAP1 0000293f: PUSH2 0x294d 00002942: PUSH1 0xc0 00002944: PUSH2 0xffff 00002947: SWAP4 00002948: ADD 00002949: PUSH2 0x31ec 0000294c: JUMP 0000294d: JUMPDEST 0000294e: POP 0000294f: SWAP2 00002950: SWAP1 00002951: PUSH2 0x23b7 00002954: JUMP 00002955: JUMPDEST 00002956: RETURNDATASIZE 00002957: SWAP2 00002958: POP 00002959: PUSH2 0x28dc 0000295c: JUMP 0000295d: JUMPDEST 0000295e: PUSH2 0x2976 00002961: SWAP2 00002962: POP 00002963: PUSH1 0x20 00002965: RETURNDATASIZE 00002966: PUSH1 0x20 00002968: GT 00002969: PUSH2 0x10f0 0000296c: JUMPI 0000296d: PUSH2 0x10e2 00002970: DUP2 00002971: DUP4 00002972: PUSH2 0x2273 00002975: JUMP 00002976: JUMPDEST 00002977: CODESIZE 00002978: PUSH2 0x2380 0000297b: JUMP 0000297c: JUMPDEST 0000297d: PUSH1 0x40 0000297f: MLOAD 00002980: RETURNDATASIZE 00002981: PUSH1 0x00 00002983: DUP3 00002984: RETURNDATACOPY 00002985: RETURNDATASIZE 00002986: SWAP1 00002987: REVERT 00002988: JUMPDEST 00002989: PUSH1 0xff 0000298b: AND 0000298c: PUSH1 0x64 0000298e: SUB 0000298f: SWAP1 00002990: PUSH1 0xff 00002992: DUP3 00002993: GT 00002994: PUSH2 0x210a 00002997: JUMPI 00002998: JUMP 00002999: JUMPDEST 0000299a: PUSH1 0xc8 0000299c: SWAP1 0000299d: PUSH1 0x02 0000299f: SIGNEXTEND 000029a0: MUL 000029a1: SWAP1 000029a2: DUP2 000029a3: PUSH1 0x02 000029a5: SIGNEXTEND 000029a6: SWAP2 000029a7: DUP3 000029a8: SUB 000029a9: PUSH2 0x210a 000029ac: JUMPI 000029ad: JUMP 000029ae: JUMPDEST 000029af: MLOAD 000029b0: SWAP1 000029b1: PUSH1 0x01 000029b3: PUSH1 0x01 000029b5: PUSH1 0x80 000029b7: SHL 000029b8: SUB 000029b9: DUP3 000029ba: AND 000029bb: DUP3 000029bc: SUB 000029bd: PUSH2 0x20e2 000029c0: JUMPI 000029c1: JUMP 000029c2: JUMPDEST 000029c3: PUSH2 0x0384 000029c6: PUSH1 0x00 000029c8: PUSH1 0x40 000029ca: MLOAD 000029cb: PUSH4 0x3850c7bd 000029d0: PUSH1 0xe0 000029d2: SHL 000029d3: DUP2 000029d4: MSTORE 000029d5: PUSH1 0xe0 000029d7: DUP2 000029d8: PUSH1 0x04 000029da: DUP2 000029db: PUSH20 0xc45a81bc23a64ea556ab4cdf08a86b61cdceea8b 000029f0: GAS 000029f1: STATICCALL 000029f2: DUP1 000029f3: ISZERO 000029f4: PUSH2 0x2898 000029f7: JUMPI 000029f8: DUP3 000029f9: SWAP2 000029fa: DUP4 000029fb: SWAP2 000029fc: PUSH2 0x2e3e 000029ff: JUMPI 00002a00: JUMPDEST 00002a01: POP 00002a02: PUSH2 0xffff 00002a05: AND 00002a06: SWAP1 00002a07: DUP2 00002a08: ISZERO 00002a09: PUSH2 0x28a3 00002a0c: JUMPI 00002a0d: PUSH2 0xffff 00002a10: PUSH1 0x01 00002a12: SWAP2 00002a13: AND 00002a14: ADD 00002a15: SWAP1 00002a16: PUSH2 0xffff 00002a19: DUP3 00002a1a: GT 00002a1b: PUSH2 0x1e1d 00002a1e: JUMPI 00002a1f: PUSH2 0xffff 00002a22: SWAP1 00002a23: DUP2 00002a24: PUSH1 0x40 00002a26: MLOAD 00002a27: SWAP4 00002a28: PUSH4 0x252c09d7 00002a2d: PUSH1 0xe0 00002a2f: SHL 00002a30: DUP6 00002a31: MSTORE 00002a32: AND 00002a33: MOD 00002a34: AND 00002a35: PUSH1 0x04 00002a37: DUP3 00002a38: ADD 00002a39: MSTORE 00002a3a: PUSH1 0x80 00002a3c: DUP2 00002a3d: PUSH1 0x24 00002a3f: DUP2 00002a40: PUSH20 0xc45a81bc23a64ea556ab4cdf08a86b61cdceea8b 00002a55: GAS 00002a56: STATICCALL 00002a57: SWAP1 00002a58: DUP2 00002a59: ISZERO 00002a5a: PUSH2 0x2898 00002a5d: JUMPI 00002a5e: DUP3 00002a5f: SWAP1 00002a60: DUP4 00002a61: SWAP3 00002a62: PUSH2 0x2e19 00002a65: JUMPI 00002a66: JUMPDEST 00002a67: POP 00002a68: SWAP1 00002a69: ISZERO 00002a6a: PUSH2 0x2dae 00002a6d: JUMPI 00002a6e: JUMPDEST 00002a6f: PUSH2 0x2a7f 00002a72: SWAP2 00002a73: POP 00002a74: PUSH4 0xffffffff 00002a79: TIMESTAMP 00002a7a: AND 00002a7b: PUSH2 0x3f08 00002a7e: JUMP 00002a7f: JUMPDEST 00002a80: DUP2 00002a81: PUSH4 0xffffffff 00002a86: DUP3 00002a87: AND 00002a88: LT 00002a89: PUSH2 0x2da6 00002a8c: JUMPI 00002a8d: JUMPDEST 00002a8e: POP 00002a8f: PUSH4 0xffffffff 00002a94: AND 00002a95: PUSH1 0x00 00002a97: DUP2 00002a98: ISZERO 00002a99: PUSH2 0x27ce 00002a9c: JUMPI 00002a9d: PUSH1 0x40 00002a9f: MLOAD 00002aa0: SWAP1 00002aa1: PUSH2 0x2aab 00002aa4: PUSH1 0x60 00002aa6: DUP4 00002aa7: PUSH2 0x2273 00002aaa: JUMP 00002aab: JUMPDEST 00002aac: PUSH1 0x02 00002aae: DUP3 00002aaf: MSTORE 00002ab0: PUSH1 0x20 00002ab2: DUP3 00002ab3: ADD 00002ab4: SWAP2 00002ab5: PUSH1 0x40 00002ab7: CALLDATASIZE 00002ab8: DUP5 00002ab9: CALLDATACOPY 00002aba: DUP4 00002abb: PUSH2 0x2ac3 00002abe: DUP3 00002abf: PUSH2 0x3f39 00002ac2: JUMP 00002ac3: JUMPDEST 00002ac4: MSTORE 00002ac5: DUP2 00002ac6: PUSH2 0x2ace 00002ac9: DUP3 00002aca: PUSH2 0x3f5c 00002acd: JUMP 00002ace: JUMPDEST 00002acf: MSTORE 00002ad0: DUP2 00002ad1: PUSH1 0x40 00002ad3: MLOAD 00002ad4: DUP1 00002ad5: SWAP5 00002ad6: PUSH4 0x883bdbfd 00002adb: PUSH1 0xe0 00002add: SHL 00002ade: DUP3 00002adf: MSTORE 00002ae0: PUSH1 0x24 00002ae2: DUP3 00002ae3: ADD 00002ae4: SWAP4 00002ae5: PUSH1 0x20 00002ae7: PUSH1 0x04 00002ae9: DUP5 00002aea: ADD 00002aeb: MSTORE 00002aec: MLOAD 00002aed: DUP1 00002aee: SWAP5 00002aef: MSTORE 00002af0: PUSH1 0x44 00002af2: DUP3 00002af3: ADD 00002af4: SWAP1 00002af5: SWAP4 00002af6: DUP4 00002af7: JUMPDEST 00002af8: DUP2 00002af9: DUP2 00002afa: LT 00002afb: PUSH2 0x2d84 00002afe: JUMPI 00002aff: POP 00002b00: POP 00002b01: DUP2 00002b02: SWAP3 00002b03: SWAP4 00002b04: POP 00002b05: SUB 00002b06: DUP2 00002b07: PUSH20 0xc45a81bc23a64ea556ab4cdf08a86b61cdceea8b 00002b1c: GAS 00002b1d: STATICCALL 00002b1e: SWAP2 00002b1f: DUP3 00002b20: ISZERO 00002b21: PUSH2 0x279f 00002b24: JUMPI 00002b25: DUP2 00002b26: SWAP1 00002b27: DUP3 00002b28: SWAP4 00002b29: PUSH2 0x2c72 00002b2c: JUMPI 00002b2d: JUMPDEST 00002b2e: POP 00002b2f: PUSH2 0x2b3a 00002b32: PUSH2 0x24cb 00002b35: DUP3 00002b36: PUSH2 0x3f5c 00002b39: JUMP 00002b3a: JUMPDEST 00002b3b: MLOAD 00002b3c: PUSH1 0x06 00002b3e: SIGNEXTEND 00002b3f: SWAP1 00002b40: SUB 00002b41: SWAP2 00002b42: PUSH7 0x7fffffffffffff 00002b4a: NOT 00002b4b: DUP4 00002b4c: SLT 00002b4d: PUSH7 0x7fffffffffffff 00002b55: DUP5 00002b56: SGT 00002b57: OR 00002b58: PUSH2 0x0710 00002b5b: JUMPI 00002b5c: PUSH1 0x01 00002b5e: PUSH1 0x01 00002b60: PUSH1 0xa0 00002b62: SHL 00002b63: SUB 00002b64: PUSH2 0x2b6c 00002b67: DUP3 00002b68: PUSH2 0x3f5c 00002b6b: JUMP 00002b6c: JUMPDEST 00002b6d: MLOAD 00002b6e: AND 00002b6f: SWAP1 00002b70: PUSH1 0x01 00002b72: PUSH1 0x01 00002b74: PUSH1 0xa0 00002b76: SHL 00002b77: SUB 00002b78: SWAP1 00002b79: PUSH2 0x2b81 00002b7c: SWAP1 00002b7d: PUSH2 0x3f39 00002b80: JUMP 00002b81: JUMPDEST 00002b82: MLOAD 00002b83: AND 00002b84: SWAP1 00002b85: SUB 00002b86: SWAP1 00002b87: PUSH1 0x01 00002b89: PUSH1 0x01 00002b8b: PUSH1 0xa0 00002b8d: SHL 00002b8e: SUB 00002b8f: DUP3 00002b90: GT 00002b91: PUSH2 0x265d 00002b94: JUMPI 00002b95: DUP4 00002b96: PUSH1 0x06 00002b98: SIGNEXTEND 00002b99: SWAP3 00002b9a: PUSH1 0x06 00002b9c: SIGNEXTEND 00002b9d: SWAP1 00002b9e: DUP4 00002b9f: ISZERO 00002ba0: PUSH2 0x2671 00002ba3: JUMPI 00002ba4: PUSH7 0x7fffffffffffff 00002bac: NOT 00002bad: DUP3 00002bae: EQ 00002baf: PUSH1 0x00 00002bb1: NOT 00002bb2: DUP6 00002bb3: EQ 00002bb4: AND 00002bb5: PUSH2 0x265d 00002bb8: JUMPI 00002bb9: POP 00002bba: DUP3 00002bbb: DUP2 00002bbc: SDIV 00002bbd: PUSH1 0x02 00002bbf: SIGNEXTEND 00002bc0: SWAP3 00002bc1: PUSH1 0x00 00002bc3: DUP3 00002bc4: SLT 00002bc5: SWAP2 00002bc6: DUP3 00002bc7: PUSH2 0x2c63 00002bca: JUMPI 00002bcb: JUMPDEST 00002bcc: POP 00002bcd: POP 00002bce: PUSH2 0x2c4d 00002bd1: JUMPI 00002bd2: JUMPDEST 00002bd3: PUSH1 0x01 00002bd5: PUSH1 0x01 00002bd7: PUSH1 0xa0 00002bd9: SHL 00002bda: SUB 00002bdb: DUP4 00002bdc: DUP2 00002bdd: MUL 00002bde: PUSH1 0x01 00002be0: PUSH1 0x01 00002be2: PUSH1 0xc0 00002be4: SHL 00002be5: SUB 00002be6: AND 00002be7: SWAP4 00002be8: DUP5 00002be9: DIV 00002bea: SWAP1 00002beb: SUB 00002bec: PUSH2 0x210a 00002bef: JUMPI 00002bf0: PUSH1 0x20 00002bf2: SHL 00002bf3: PUSH5 0x0100000000 00002bf9: PUSH1 0x01 00002bfb: PUSH1 0xc0 00002bfd: SHL 00002bfe: SUB 00002bff: AND 00002c00: SWAP2 00002c01: DUP3 00002c02: ISZERO 00002c03: PUSH2 0x2211 00002c06: JUMPI 00002c07: POP 00002c08: PUSH2 0x2c11 00002c0b: SWAP2 00002c0c: POP 00002c0d: PUSH2 0x3f6c 00002c10: JUMP 00002c11: JUMPDEST 00002c12: PUSH1 0x01 00002c14: PUSH1 0x01 00002c16: PUSH1 0xa0 00002c18: SHL 00002c19: SUB 00002c1a: AND 00002c1b: SWAP1 00002c1c: PUSH1 0x01 00002c1e: PUSH1 0x01 00002c20: PUSH1 0x80 00002c22: SHL 00002c23: SUB 00002c24: DUP3 00002c25: GT 00002c26: PUSH2 0x2c3b 00002c29: JUMPI 00002c2a: PUSH2 0x2c36 00002c2d: DUP3 00002c2e: PUSH2 0x25f3 00002c31: SWAP4 00002c32: PUSH2 0x21f4 00002c35: JUMP 00002c36: JUMPDEST 00002c37: PUSH2 0x4885 00002c3a: JUMP 00002c3b: JUMPDEST 00002c3c: PUSH2 0x2c48 00002c3f: DUP3 00002c40: PUSH2 0x25f3 00002c43: SWAP4 00002c44: PUSH2 0x46b0 00002c47: JUMP 00002c48: JUMPDEST 00002c49: PUSH2 0x47b1 00002c4c: JUMP 00002c4d: JUMPDEST 00002c4e: SWAP1 00002c4f: PUSH3 0x7fffff 00002c53: NOT 00002c54: DUP2 00002c55: EQ 00002c56: PUSH2 0x210a 00002c59: JUMPI 00002c5a: PUSH1 0x00 00002c5c: NOT 00002c5d: ADD 00002c5e: SWAP1 00002c5f: PUSH2 0x2bd2 00002c62: JUMP 00002c63: JUMPDEST 00002c64: SMOD 00002c65: PUSH1 0x06 00002c67: SIGNEXTEND 00002c68: ISZERO 00002c69: ISZERO 00002c6a: SWAP1 00002c6b: POP 00002c6c: CODESIZE 00002c6d: DUP1 00002c6e: PUSH2 0x2bcb 00002c71: JUMP 00002c72: JUMPDEST 00002c73: SWAP3 00002c74: POP 00002c75: POP 00002c76: RETURNDATASIZE 00002c77: DUP1 00002c78: DUP3 00002c79: DUP5 00002c7a: RETURNDATACOPY 00002c7b: PUSH2 0x2c84 00002c7e: DUP2 00002c7f: DUP5 00002c80: PUSH2 0x2273 00002c83: JUMP 00002c84: JUMPDEST 00002c85: DUP3 00002c86: ADD 00002c87: SWAP2 00002c88: PUSH1 0x40 00002c8a: DUP2 00002c8b: DUP5 00002c8c: SUB 00002c8d: SLT 00002c8e: PUSH2 0x04ec 00002c91: JUMPI 00002c92: DUP1 00002c93: MLOAD 00002c94: PUSH1 0x01 00002c96: PUSH1 0x01 00002c98: PUSH1 0x40 00002c9a: SHL 00002c9b: SUB 00002c9c: DUP2 00002c9d: GT 00002c9e: PUSH2 0x0880 00002ca1: JUMPI 00002ca2: DUP2 00002ca3: ADD 00002ca4: SWAP1 00002ca5: DUP4 00002ca6: PUSH1 0x1f 00002ca8: DUP4 00002ca9: ADD 00002caa: SLT 00002cab: ISZERO 00002cac: PUSH2 0x0880 00002caf: JUMPI 00002cb0: DUP2 00002cb1: MLOAD 00002cb2: SWAP2 00002cb3: PUSH2 0x2cbb 00002cb6: DUP4 00002cb7: PUSH2 0x3f22 00002cba: JUMP 00002cbb: JUMPDEST 00002cbc: SWAP3 00002cbd: PUSH2 0x2cc9 00002cc0: PUSH1 0x40 00002cc2: MLOAD 00002cc3: SWAP5 00002cc4: DUP6 00002cc5: PUSH2 0x2273 00002cc8: JUMP 00002cc9: JUMPDEST 00002cca: DUP1 00002ccb: DUP5 00002ccc: MSTORE 00002ccd: PUSH1 0x20 00002ccf: DUP1 00002cd0: DUP6 00002cd1: ADD 00002cd2: SWAP2 00002cd3: PUSH1 0x05 00002cd5: SHL 00002cd6: DUP4 00002cd7: ADD 00002cd8: ADD 00002cd9: SWAP2 00002cda: DUP7 00002cdb: DUP4 00002cdc: GT 00002cdd: PUSH2 0x279b 00002ce0: JUMPI 00002ce1: PUSH1 0x20 00002ce3: ADD 00002ce4: SWAP1 00002ce5: JUMPDEST 00002ce6: DUP3 00002ce7: DUP3 00002ce8: LT 00002ce9: PUSH2 0x2d6c 00002cec: JUMPI 00002ced: POP 00002cee: POP 00002cef: POP 00002cf0: PUSH1 0x20 00002cf2: DUP2 00002cf3: ADD 00002cf4: MLOAD 00002cf5: SWAP1 00002cf6: PUSH1 0x01 00002cf8: PUSH1 0x01 00002cfa: PUSH1 0x40 00002cfc: SHL 00002cfd: SUB 00002cfe: DUP3 00002cff: GT 00002d00: PUSH2 0x1ad3 00002d03: JUMPI 00002d04: ADD 00002d05: SWAP3 00002d06: DUP1 00002d07: PUSH1 0x1f 00002d09: DUP6 00002d0a: ADD 00002d0b: SLT 00002d0c: ISZERO 00002d0d: PUSH2 0x0880 00002d10: JUMPI 00002d11: DUP4 00002d12: MLOAD 00002d13: PUSH2 0x2d1b 00002d16: DUP2 00002d17: PUSH2 0x3f22 00002d1a: JUMP 00002d1b: JUMPDEST 00002d1c: SWAP5 00002d1d: PUSH2 0x2d29 00002d20: PUSH1 0x40 00002d22: MLOAD 00002d23: SWAP7 00002d24: DUP8 00002d25: PUSH2 0x2273 00002d28: JUMP 00002d29: JUMPDEST 00002d2a: DUP2 00002d2b: DUP7 00002d2c: MSTORE 00002d2d: PUSH1 0x20 00002d2f: DUP1 00002d30: DUP8 00002d31: ADD 00002d32: SWAP3 00002d33: PUSH1 0x05 00002d35: SHL 00002d36: DUP3 00002d37: ADD 00002d38: ADD 00002d39: SWAP3 00002d3a: DUP4 00002d3b: GT 00002d3c: PUSH2 0x277f 00002d3f: JUMPI 00002d40: PUSH1 0x20 00002d42: ADD 00002d43: SWAP1 00002d44: JUMPDEST 00002d45: DUP3 00002d46: DUP3 00002d47: LT 00002d48: PUSH2 0x2d54 00002d4b: JUMPI 00002d4c: POP 00002d4d: POP 00002d4e: POP 00002d4f: CODESIZE 00002d50: PUSH2 0x2b2d 00002d53: JUMP 00002d54: JUMPDEST 00002d55: PUSH1 0x20 00002d57: DUP1 00002d58: SWAP2 00002d59: PUSH2 0x2d61 00002d5c: DUP5 00002d5d: PUSH2 0x3e7d 00002d60: JUMP 00002d61: JUMPDEST 00002d62: DUP2 00002d63: MSTORE 00002d64: ADD 00002d65: SWAP2 00002d66: ADD 00002d67: SWAP1 00002d68: PUSH2 0x2d44 00002d6b: JUMP 00002d6c: JUMPDEST 00002d6d: PUSH1 0x20 00002d6f: DUP1 00002d70: SWAP2 00002d71: PUSH2 0x2d79 00002d74: DUP5 00002d75: PUSH2 0x3ea0 00002d78: JUMP 00002d79: JUMPDEST 00002d7a: DUP2 00002d7b: MSTORE 00002d7c: ADD 00002d7d: SWAP2 00002d7e: ADD 00002d7f: SWAP1 00002d80: PUSH2 0x2ce5 00002d83: JUMP 00002d84: JUMPDEST 00002d85: DUP6 00002d86: MLOAD 00002d87: PUSH4 0xffffffff 00002d8c: AND 00002d8d: DUP4 00002d8e: MSTORE 00002d8f: PUSH1 0x20 00002d91: SWAP6 00002d92: DUP7 00002d93: ADD 00002d94: SWAP6 00002d95: DUP8 00002d96: SWAP6 00002d97: POP 00002d98: DUP9 00002d99: SWAP5 00002d9a: POP 00002d9b: SWAP1 00002d9c: SWAP3 00002d9d: ADD 00002d9e: SWAP2 00002d9f: PUSH1 0x01 00002da1: ADD 00002da2: PUSH2 0x2af7 00002da5: JUMP 00002da6: JUMPDEST 00002da7: SWAP1 00002da8: POP 00002da9: CODESIZE 00002daa: PUSH2 0x2a8d 00002dad: JUMP 00002dae: JUMPDEST 00002daf: POP 00002db0: PUSH1 0x40 00002db2: MLOAD 00002db3: PUSH4 0x252c09d7 00002db8: PUSH1 0xe0 00002dba: SHL 00002dbb: DUP2 00002dbc: MSTORE 00002dbd: PUSH1 0x04 00002dbf: DUP2 00002dc0: ADD 00002dc1: DUP3 00002dc2: SWAP1 00002dc3: MSTORE 00002dc4: PUSH1 0x80 00002dc6: DUP2 00002dc7: PUSH1 0x24 00002dc9: DUP2 00002dca: PUSH20 0xc45a81bc23a64ea556ab4cdf08a86b61cdceea8b 00002ddf: GAS 00002de0: STATICCALL 00002de1: SWAP2 00002de2: DUP3 00002de3: ISZERO 00002de4: PUSH2 0x2867 00002de7: JUMPI 00002de8: SWAP1 00002de9: PUSH2 0x2a7f 00002dec: SWAP3 00002ded: PUSH2 0x2df7 00002df0: JUMPI 00002df1: JUMPDEST 00002df2: POP 00002df3: PUSH2 0x2a6e 00002df6: JUMP 00002df7: JUMPDEST 00002df8: PUSH2 0x2e10 00002dfb: SWAP2 00002dfc: POP 00002dfd: PUSH1 0x80 00002dff: RETURNDATASIZE 00002e00: PUSH1 0x80 00002e02: GT 00002e03: PUSH2 0x2860 00002e06: JUMPI 00002e07: PUSH2 0x284f 00002e0a: DUP2 00002e0b: DUP4 00002e0c: PUSH2 0x2273 00002e0f: JUMP 00002e10: JUMPDEST 00002e11: POP 00002e12: POP 00002e13: POP 00002e14: CODESIZE 00002e15: PUSH2 0x2df1 00002e18: JUMP 00002e19: JUMPDEST 00002e1a: SWAP1 00002e1b: POP 00002e1c: PUSH2 0x2e34 00002e1f: SWAP2 00002e20: POP 00002e21: PUSH1 0x80 00002e23: RETURNDATASIZE 00002e24: PUSH1 0x80 00002e26: GT 00002e27: PUSH2 0x2860 00002e2a: JUMPI 00002e2b: PUSH2 0x284f 00002e2e: DUP2 00002e2f: DUP4 00002e30: PUSH2 0x2273 00002e33: JUMP 00002e34: JUMPDEST 00002e35: SWAP3 00002e36: SWAP2 00002e37: POP 00002e38: POP 00002e39: CODESIZE 00002e3a: PUSH2 0x2a66 00002e3d: JUMP 00002e3e: JUMPDEST 00002e3f: SWAP2 00002e40: POP 00002e41: POP 00002e42: PUSH1 0xe0 00002e44: DUP2 00002e45: RETURNDATASIZE 00002e46: PUSH1 0xe0 00002e48: GT 00002e49: PUSH2 0x2ec6 00002e4c: JUMPI 00002e4d: JUMPDEST 00002e4e: DUP2 00002e4f: PUSH2 0x2e5a 00002e52: PUSH1 0xe0 00002e54: SWAP4 00002e55: DUP4 00002e56: PUSH2 0x2273 00002e59: JUMP 00002e5a: JUMPDEST 00002e5b: DUP2 00002e5c: ADD 00002e5d: SUB 00002e5e: SLT 00002e5f: PUSH2 0x04ec 00002e62: JUMPI 00002e63: PUSH2 0x2e6b 00002e66: DUP2 00002e67: PUSH2 0x3e7d 00002e6a: JUMP 00002e6b: JUMPDEST 00002e6c: POP 00002e6d: PUSH1 0x20 00002e6f: DUP2 00002e70: ADD 00002e71: MLOAD 00002e72: DUP1 00002e73: PUSH1 0x02 00002e75: SIGNEXTEND 00002e76: SUB 00002e77: PUSH2 0x04ec 00002e7a: JUMPI 00002e7b: PUSH2 0x2e86 00002e7e: PUSH1 0x40 00002e80: DUP3 00002e81: ADD 00002e82: PUSH2 0x3e91 00002e85: JUMP 00002e86: JUMPDEST 00002e87: PUSH2 0x2e92 00002e8a: PUSH1 0x60 00002e8c: DUP4 00002e8d: ADD 00002e8e: PUSH2 0x3e91 00002e91: JUMP 00002e92: JUMPDEST 00002e93: SWAP2 00002e94: PUSH2 0x2e9f 00002e97: PUSH1 0x80 00002e99: DUP3 00002e9a: ADD 00002e9b: PUSH2 0x3e91 00002e9e: JUMP 00002e9f: JUMPDEST 00002ea0: POP 00002ea1: PUSH1 0xa0 00002ea3: DUP2 00002ea4: ADD 00002ea5: MLOAD 00002ea6: PUSH1 0xff 00002ea8: DUP2 00002ea9: AND 00002eaa: SUB 00002eab: PUSH2 0x1ad3 00002eae: JUMPI 00002eaf: SWAP1 00002eb0: PUSH2 0x2ebe 00002eb3: PUSH1 0xc0 00002eb5: PUSH2 0xffff 00002eb8: SWAP4 00002eb9: ADD 00002eba: PUSH2 0x31ec 00002ebd: JUMP 00002ebe: JUMPDEST 00002ebf: POP 00002ec0: SWAP2 00002ec1: SWAP1 00002ec2: PUSH2 0x2a00 00002ec5: JUMP 00002ec6: JUMPDEST 00002ec7: RETURNDATASIZE 00002ec8: SWAP2 00002ec9: POP 00002eca: PUSH2 0x2e4d 00002ecd: JUMP 00002ece: JUMPDEST 00002ecf: PUSH1 0x40 00002ed1: MLOAD 00002ed2: PUSH4 0x70a08231 00002ed7: PUSH1 0xe0 00002ed9: SHL 00002eda: DUP2 00002edb: MSTORE 00002edc: ADDRESS 00002edd: PUSH1 0x04 00002edf: DUP3 00002ee0: ADD 00002ee1: MSTORE 00002ee2: PUSH1 0x00 00002ee4: PUSH32 0x000000000000000000000000b47f575807fc5466285e1277ef8acfbb5c6686e8 00002f05: PUSH1 0x01 00002f07: PUSH1 0x01 00002f09: PUSH1 0xa0 00002f0b: SHL 00002f0c: SUB 00002f0d: AND 00002f0e: PUSH1 0x20 00002f10: DUP4 00002f11: PUSH1 0x24 00002f13: DUP2 00002f14: DUP5 00002f15: GAS 00002f16: STATICCALL 00002f17: SWAP3 00002f18: DUP4 00002f19: ISZERO 00002f1a: PUSH2 0x2898 00002f1d: JUMPI 00002f1e: DUP3 00002f1f: SWAP4 00002f20: PUSH2 0x2f9e 00002f23: JUMPI 00002f24: JUMPDEST 00002f25: POP 00002f26: PUSH2 0x2f31 00002f29: DUP4 00002f2a: PUSH1 0x06 00002f2c: SLOAD 00002f2d: PUSH2 0x2120 00002f30: JUMP 00002f31: JUMPDEST 00002f32: PUSH1 0x06 00002f34: SSTORE 00002f35: DUP1 00002f36: EXTCODESIZE 00002f37: ISZERO 00002f38: PUSH2 0x04ec 00002f3b: JUMPI 00002f3c: DUP2 00002f3d: DUP1 00002f3e: SWAP2 00002f3f: PUSH1 0x24 00002f41: PUSH1 0x40 00002f43: MLOAD 00002f44: DUP1 00002f45: SWAP5 00002f46: DUP2 00002f47: SWAP4 00002f48: PUSH4 0x0852cd8d 00002f4d: PUSH1 0xe3 00002f4f: SHL 00002f50: DUP4 00002f51: MSTORE 00002f52: DUP9 00002f53: PUSH1 0x04 00002f55: DUP5 00002f56: ADD 00002f57: MSTORE 00002f58: GAS 00002f59: CALL 00002f5a: DUP1 00002f5b: ISZERO 00002f5c: PUSH2 0x2898 00002f5f: JUMPI 00002f60: SWAP1 00002f61: DUP3 00002f62: PUSH32 0x89af60e661efa3da35b4ce1b5165e52acf2e747e41905d84e9ec3230e7b006b2 00002f83: SWAP4 00002f84: SWAP3 00002f85: PUSH2 0x2f8e 00002f88: JUMPI 00002f89: JUMPDEST 00002f8a: SWAP1 00002f8b: POP 00002f8c: LOG2 00002f8d: JUMP 00002f8e: JUMPDEST 00002f8f: PUSH2 0x2f97 00002f92: SWAP2 00002f93: PUSH2 0x2273 00002f96: JUMP 00002f97: JUMPDEST 00002f98: CODESIZE 00002f99: DUP2 00002f9a: PUSH2 0x2f89 00002f9d: JUMP 00002f9e: JUMPDEST 00002f9f: SWAP1 00002fa0: SWAP3 00002fa1: POP 00002fa2: PUSH1 0x20 00002fa4: DUP2 00002fa5: RETURNDATASIZE 00002fa6: PUSH1 0x20 00002fa8: GT 00002fa9: PUSH2 0x2fca 00002fac: JUMPI 00002fad: JUMPDEST 00002fae: DUP2 00002faf: PUSH2 0x2fba 00002fb2: PUSH1 0x20 00002fb4: SWAP4 00002fb5: DUP4 00002fb6: PUSH2 0x2273 00002fb9: JUMP 00002fba: JUMPDEST 00002fbb: DUP2 00002fbc: ADD 00002fbd: SUB 00002fbe: SLT 00002fbf: PUSH2 0x04ec 00002fc2: JUMPI 00002fc3: MLOAD 00002fc4: SWAP2 00002fc5: CODESIZE 00002fc6: PUSH2 0x2f24 00002fc9: JUMP 00002fca: JUMPDEST 00002fcb: RETURNDATASIZE 00002fcc: SWAP2 00002fcd: POP 00002fce: PUSH2 0x2fad 00002fd1: JUMP 00002fd2: JUMPDEST 00002fd3: PUSH4 0xffffffff 00002fd8: AND 00002fd9: PUSH4 0xffffffff 00002fde: DUP2 00002fdf: EQ 00002fe0: PUSH2 0x210a 00002fe3: JUMPI 00002fe4: PUSH1 0x01 00002fe6: ADD 00002fe7: SWAP1 00002fe8: JUMP 00002fe9: JUMPDEST 00002fea: PUSH4 0xffffffff 00002fef: PUSH2 0x0258 00002ff2: SWAP2 00002ff3: AND 00002ff4: MUL 00002ff5: SWAP1 00002ff6: PUSH4 0xffffffff 00002ffb: DUP3 00002ffc: AND 00002ffd: SWAP2 00002ffe: DUP3 00002fff: SUB 00003000: PUSH2 0x210a 00003003: JUMPI 00003004: JUMP 00003005: JUMPDEST 00003006: PUSH4 0xffffffff 0000300b: PUSH1 0x01 0000300d: SWAP2 0000300e: AND 0000300f: ADD 00003010: SWAP1 00003011: PUSH4 0xffffffff 00003016: DUP3 00003017: GT 00003018: PUSH2 0x210a 0000301b: JUMPI 0000301c: JUMP 0000301d: JUMPDEST 0000301e: SWAP1 0000301f: PUSH4 0xffffffff 00003024: DUP1 00003025: SWAP2 00003026: AND 00003027: SWAP2 00003028: AND 00003029: ADD 0000302a: SWAP1 0000302b: PUSH4 0xffffffff 00003030: DUP3 00003031: GT 00003032: PUSH2 0x210a 00003035: JUMPI 00003036: JUMP 00003037: JUMPDEST 00003038: DUP2 00003039: MLOAD 0000303a: PUSH1 0x20 0000303c: SWAP3 0000303d: SWAP1 0000303e: SWAP3 0000303f: ADD 00003040: MLOAD 00003041: PUSH1 0x80 00003043: SHL 00003044: PUSH1 0x01 00003046: PUSH1 0x01 00003048: PUSH1 0x80 0000304a: SHL 0000304b: SUB 0000304c: NOT 0000304d: AND 0000304e: PUSH1 0x01 00003050: PUSH1 0x01 00003052: PUSH1 0x80 00003054: SHL 00003055: SUB 00003056: SWAP3 00003057: SWAP1 00003058: SWAP3 00003059: AND 0000305a: SWAP2 0000305b: SWAP1 0000305c: SWAP2 0000305d: OR 0000305e: SWAP1 0000305f: SSTORE 00003060: JUMP 00003061: JUMPDEST 00003062: JUMP 00003063: JUMPDEST 00003064: PUSH32 0x00000000000000000000000000000000000000000000000000000000686fffa0 00003085: PUSH4 0xffffffff 0000308a: DUP2 0000308b: AND 0000308c: DUP1 0000308d: TIMESTAMP 0000308e: LT 0000308f: PUSH2 0x31db 00003092: JUMPI 00003093: PUSH1 0x1a 00003095: SLOAD 00003096: SWAP1 00003097: PUSH4 0xffffffff 0000309c: DUP3 0000309d: PUSH1 0x20 0000309f: SHR 000030a0: AND 000030a1: SWAP1 000030a2: DUP2 000030a3: ISZERO 000030a4: SWAP1 000030a5: DUP2 000030a6: PUSH1 0x00 000030a8: EQ 000030a9: PUSH2 0x31c4 000030ac: JUMPI 000030ad: PUSH2 0x30bb 000030b0: PUSH4 0xffffffff 000030b5: SWAP2 000030b6: TIMESTAMP 000030b7: PUSH2 0x20fd 000030ba: JUMP 000030bb: JUMPDEST 000030bc: AND 000030bd: SWAP2 000030be: JUMPDEST 000030bf: PUSH1 0x00 000030c1: SWAP2 000030c2: DUP3 000030c3: SWAP2 000030c4: DUP3 000030c5: SWAP2 000030c6: DUP3 000030c7: SWAP2 000030c8: DUP3 000030c9: SWAP2 000030ca: ISZERO 000030cb: PUSH2 0x317a 000030ce: JUMPI 000030cf: POP 000030d0: POP 000030d1: POP 000030d2: POP 000030d3: POP 000030d4: POP 000030d5: PUSH4 0xffffffff 000030da: PUSH2 0x30e3 000030dd: SWAP2 000030de: AND 000030df: PUSH2 0x442e 000030e2: JUMP 000030e3: JUMPDEST 000030e4: SWAP1 000030e5: SWAP4 000030e6: SWAP3 000030e7: SWAP1 000030e8: SWAP2 000030e9: SWAP1 000030ea: PUSH1 0x01 000030ec: JUMPDEST 000030ed: PUSH2 0x30f8 000030f0: JUMPI 000030f1: JUMPDEST 000030f2: POP 000030f3: POP 000030f4: POP 000030f5: POP 000030f6: POP 000030f7: JUMP 000030f8: JUMPDEST 000030f9: PUSH4 0xffffffff 000030fe: PUSH1 0x20 00003100: SHL 00003101: PUSH2 0x311b 00003104: PUSH2 0x3162 00003107: SWAP6 00003108: PUSH2 0x3115 0000310b: PUSH4 0xffffffff 00003110: SWAP7 00003111: PUSH2 0x2fe9 00003114: JUMP 00003115: JUMPDEST 00003116: SWAP1 00003117: PUSH2 0x301d 0000311a: JUMP 0000311b: JUMPDEST 0000311c: PUSH1 0x20 0000311e: SHL 0000311f: AND 00003120: SWAP1 00003121: PUSH4 0xffffffff 00003126: PUSH1 0x20 00003128: SHL 00003129: NOT 0000312a: AND 0000312b: OR 0000312c: PUSH1 0x1a 0000312e: SSTORE 0000312f: PUSH1 0x01 00003131: PUSH1 0x01 00003133: PUSH1 0x80 00003135: SHL 00003136: SUB 00003137: PUSH1 0x40 00003139: MLOAD 0000313a: SWAP5 0000313b: PUSH2 0x3143 0000313e: DUP7 0000313f: PUSH2 0x2227 00003142: JUMP 00003143: JUMPDEST 00003144: AND 00003145: DUP5 00003146: MSTORE 00003147: PUSH1 0x00 00003149: PUSH1 0x20 0000314b: DUP6 0000314c: ADD 0000314d: MSTORE 0000314e: AND 0000314f: SWAP2 00003150: DUP3 00003151: PUSH1 0x00 00003153: MSTORE 00003154: PUSH1 0x19 00003156: PUSH1 0x20 00003158: MSTORE 00003159: PUSH1 0x40 0000315b: PUSH1 0x00 0000315d: KECCAK256 0000315e: PUSH2 0x3037 00003161: JUMP 00003162: JUMPDEST 00003163: PUSH4 0xffffffff 00003168: NOT 00003169: PUSH1 0x1a 0000316b: SLOAD 0000316c: AND 0000316d: OR 0000316e: PUSH1 0x1a 00003170: SSTORE 00003171: CODESIZE 00003172: DUP1 00003173: DUP1 00003174: DUP1 00003175: DUP1 00003176: PUSH2 0x30f1 00003179: JUMP 0000317a: JUMPDEST 0000317b: SWAP2 0000317c: SWAP5 0000317d: SWAP8 0000317e: POP 0000317f: SWAP2 00003180: SWAP5 00003181: PUSH4 0xffffffff 00003186: SWAP1 00003187: SWAP7 00003188: SWAP4 00003189: SWAP7 0000318a: AND 0000318b: PUSH2 0x0258 0000318e: DUP2 0000318f: GT 00003190: PUSH2 0x319b 00003193: JUMPI 00003194: JUMPDEST 00003195: POP 00003196: POP 00003197: PUSH2 0x30ec 0000319a: JUMP 0000319b: JUMPDEST 0000319c: SWAP4 0000319d: POP 0000319e: SWAP6 0000319f: POP 000031a0: POP 000031a1: SWAP3 000031a2: POP 000031a3: PUSH2 0x31ac 000031a6: SWAP2 000031a7: POP 000031a8: PUSH2 0x442e 000031ab: JUMP 000031ac: JUMPDEST 000031ad: SWAP1 000031ae: SWAP4 000031af: SWAP3 000031b0: PUSH1 0x01 000031b2: SWAP3 000031b3: SWAP2 000031b4: PUSH2 0x31bc 000031b7: SWAP1 000031b8: PUSH2 0x2fd2 000031bb: JUMP 000031bc: JUMPDEST 000031bd: SWAP3 000031be: CODESIZE 000031bf: DUP1 000031c0: PUSH2 0x3194 000031c3: JUMP 000031c4: JUMPDEST 000031c5: POP 000031c6: PUSH4 0xffffffff 000031cb: PUSH2 0x31d4 000031ce: DUP4 000031cf: TIMESTAMP 000031d0: PUSH2 0x20fd 000031d3: JUMP 000031d4: JUMPDEST 000031d5: AND 000031d6: SWAP2 000031d7: PUSH2 0x30be 000031da: JUMP 000031db: JUMPDEST 000031dc: PUSH4 0x1864d7ab 000031e1: PUSH1 0xe2 000031e3: SHL 000031e4: PUSH1 0x00 000031e6: MSTORE 000031e7: PUSH1 0x04 000031e9: PUSH1 0x00 000031eb: REVERT 000031ec: JUMPDEST 000031ed: MLOAD 000031ee: SWAP1 000031ef: DUP2 000031f0: ISZERO 000031f1: ISZERO 000031f2: DUP3 000031f3: SUB 000031f4: PUSH2 0x20e2 000031f7: JUMPI 000031f8: JUMP 000031f9: JUMPDEST 000031fa: PUSH1 0x40 000031fc: MLOAD 000031fd: PUSH4 0x23b872dd 00003202: PUSH1 0xe0 00003204: SHL 00003205: PUSH1 0x20 00003207: DUP3 00003208: ADD 00003209: SWAP1 0000320a: DUP2 0000320b: MSTORE 0000320c: PUSH1 0x01 0000320e: PUSH1 0x01 00003210: PUSH1 0xa0 00003212: SHL 00003213: SUB 00003214: SWAP3 00003215: DUP4 00003216: AND 00003217: PUSH1 0x24 00003219: DUP4 0000321a: ADD 0000321b: MSTORE 0000321c: SWAP2 0000321d: SWAP1 0000321e: SWAP3 0000321f: AND 00003220: PUSH1 0x44 00003222: DUP4 00003223: ADD 00003224: MSTORE 00003225: PUSH1 0x64 00003227: DUP1 00003228: DUP4 00003229: ADD 0000322a: SWAP4 0000322b: SWAP1 0000322c: SWAP4 0000322d: MSTORE 0000322e: SWAP2 0000322f: DUP2 00003230: MSTORE 00003231: PUSH1 0x00 00003233: SWAP2 00003234: DUP3 00003235: SWAP2 00003236: PUSH2 0x3240 00003239: PUSH1 0x84 0000323b: DUP3 0000323c: PUSH2 0x2273 0000323f: JUMP 00003240: JUMPDEST 00003241: MLOAD 00003242: SWAP1 00003243: DUP3 00003244: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1 00003259: GAS 0000325a: CALL 0000325b: PUSH2 0x3262 0000325e: PUSH2 0x2294 00003261: JUMP 00003262: JUMPDEST 00003263: DUP2 00003264: PUSH2 0x329b 00003267: JUMPI 00003268: JUMPDEST 00003269: POP 0000326a: ISZERO 0000326b: PUSH2 0x3270 0000326e: JUMPI 0000326f: JUMP 00003270: JUMPDEST 00003271: PUSH1 0x40 00003273: MLOAD 00003274: PUSH3 0x461bcd 00003278: PUSH1 0xe5 0000327a: SHL 0000327b: DUP2 0000327c: MSTORE 0000327d: PUSH1 0x20 0000327f: PUSH1 0x04 00003281: DUP3 00003282: ADD 00003283: MSTORE 00003284: PUSH1 0x03 00003286: PUSH1 0x24 00003288: DUP3 00003289: ADD 0000328a: MSTORE 0000328b: PUSH3 0x29aa23 0000328f: PUSH1 0xe9 00003291: SHL 00003292: PUSH1 0x44 00003294: DUP3 00003295: ADD 00003296: MSTORE 00003297: PUSH1 0x64 00003299: SWAP1 0000329a: REVERT 0000329b: JUMPDEST 0000329c: DUP1 0000329d: MLOAD 0000329e: DUP1 0000329f: ISZERO 000032a0: SWAP3 000032a1: POP 000032a2: DUP3 000032a3: ISZERO 000032a4: PUSH2 0x32b0 000032a7: JUMPI 000032a8: JUMPDEST 000032a9: POP 000032aa: POP 000032ab: CODESIZE 000032ac: PUSH2 0x3268 000032af: JUMP 000032b0: JUMPDEST 000032b1: DUP2 000032b2: SWAP3 000032b3: POP 000032b4: SWAP1 000032b5: PUSH1 0x20 000032b7: SWAP2 000032b8: DUP2 000032b9: ADD 000032ba: SUB 000032bb: SLT 000032bc: PUSH2 0x20e2 000032bf: JUMPI 000032c0: PUSH1 0x20 000032c2: PUSH2 0x32cb 000032c5: SWAP2 000032c6: ADD 000032c7: PUSH2 0x31ec 000032ca: JUMP 000032cb: JUMPDEST 000032cc: CODESIZE 000032cd: DUP1 000032ce: PUSH2 0x32a8 000032d1: JUMP 000032d2: JUMPDEST 000032d3: PUSH1 0x01 000032d5: SLOAD 000032d6: PUSH1 0x01 000032d8: PUSH1 0x01 000032da: PUSH1 0xa0 000032dc: SHL 000032dd: SUB 000032de: AND 000032df: CALLER 000032e0: SUB 000032e1: PUSH2 0x32e6 000032e4: JUMPI 000032e5: JUMP 000032e6: JUMPDEST 000032e7: PUSH4 0x118cdaa7 000032ec: PUSH1 0xe0 000032ee: SHL 000032ef: PUSH1 0x00 000032f1: MSTORE 000032f2: CALLER 000032f3: PUSH1 0x04 000032f5: MSTORE 000032f6: PUSH1 0x24 000032f8: PUSH1 0x00 000032fa: REVERT 000032fb: JUMPDEST 000032fc: PUSH32 0x00000000000000000000000000000000000000000000000000000000686fffa0 0000331d: PUSH4 0xffffffff 00003322: DUP2 00003323: AND 00003324: DUP1 00003325: TIMESTAMP 00003326: LT 00003327: PUSH2 0x31db 0000332a: JUMPI 0000332b: PUSH1 0x16 0000332d: SLOAD 0000332e: SWAP1 0000332f: PUSH4 0xffffffff 00003334: DUP3 00003335: PUSH1 0x20 00003337: SHR 00003338: AND 00003339: SWAP1 0000333a: DUP2 0000333b: ISZERO 0000333c: SWAP1 0000333d: DUP2 0000333e: PUSH1 0x00 00003340: EQ 00003341: PUSH2 0x3455 00003344: JUMPI 00003345: PUSH2 0x3353 00003348: PUSH4 0xffffffff 0000334d: SWAP2 0000334e: TIMESTAMP 0000334f: PUSH2 0x20fd 00003352: JUMP 00003353: JUMPDEST 00003354: AND 00003355: SWAP2 00003356: JUMPDEST 00003357: PUSH1 0x00 00003359: SWAP2 0000335a: DUP3 0000335b: SWAP2 0000335c: DUP3 0000335d: SWAP2 0000335e: DUP3 0000335f: SWAP2 00003360: DUP3 00003361: SWAP2 00003362: ISZERO 00003363: PUSH2 0x340b 00003366: JUMPI 00003367: POP 00003368: POP 00003369: POP 0000336a: POP 0000336b: POP 0000336c: POP 0000336d: PUSH4 0xffffffff 00003372: PUSH2 0x337b 00003375: SWAP2 00003376: AND 00003377: PUSH2 0x4503 0000337a: JUMP 0000337b: JUMPDEST 0000337c: SWAP1 0000337d: SWAP4 0000337e: SWAP3 0000337f: SWAP1 00003380: SWAP2 00003381: SWAP1 00003382: PUSH1 0x01 00003384: JUMPDEST 00003385: PUSH2 0x338f 00003388: JUMPI 00003389: POP 0000338a: POP 0000338b: POP 0000338c: POP 0000338d: POP 0000338e: JUMP 0000338f: JUMPDEST 00003390: PUSH4 0xffffffff 00003395: PUSH1 0x20 00003397: SHL 00003398: PUSH2 0x33ac 0000339b: PUSH2 0x33f3 0000339e: SWAP6 0000339f: PUSH2 0x3115 000033a2: PUSH4 0xffffffff 000033a7: SWAP7 000033a8: PUSH2 0x2fe9 000033ab: JUMP 000033ac: JUMPDEST 000033ad: PUSH1 0x20 000033af: SHL 000033b0: AND 000033b1: SWAP1 000033b2: PUSH4 0xffffffff 000033b7: PUSH1 0x20 000033b9: SHL 000033ba: NOT 000033bb: AND 000033bc: OR 000033bd: PUSH1 0x16 000033bf: SSTORE 000033c0: PUSH1 0x01 000033c2: PUSH1 0x01 000033c4: PUSH1 0x80 000033c6: SHL 000033c7: SUB 000033c8: PUSH1 0x40 000033ca: MLOAD 000033cb: SWAP5 000033cc: PUSH2 0x33d4 000033cf: DUP7 000033d0: PUSH2 0x2227 000033d3: JUMP 000033d4: JUMPDEST 000033d5: AND 000033d6: DUP5 000033d7: MSTORE 000033d8: PUSH1 0x00 000033da: PUSH1 0x20 000033dc: DUP6 000033dd: ADD 000033de: MSTORE 000033df: AND 000033e0: SWAP2 000033e1: DUP3 000033e2: PUSH1 0x00 000033e4: MSTORE 000033e5: PUSH1 0x15 000033e7: PUSH1 0x20 000033e9: MSTORE 000033ea: PUSH1 0x40 000033ec: PUSH1 0x00 000033ee: KECCAK256 000033ef: PUSH2 0x3037 000033f2: JUMP 000033f3: JUMPDEST 000033f4: PUSH4 0xffffffff 000033f9: NOT 000033fa: PUSH1 0x16 000033fc: SLOAD 000033fd: AND 000033fe: OR 000033ff: PUSH1 0x16 00003401: SSTORE 00003402: CODESIZE 00003403: DUP1 00003404: DUP1 00003405: DUP1 00003406: DUP1 00003407: PUSH2 0x30f1 0000340a: JUMP 0000340b: JUMPDEST 0000340c: SWAP2 0000340d: SWAP5 0000340e: SWAP8 0000340f: POP 00003410: SWAP2 00003411: SWAP5 00003412: PUSH4 0xffffffff 00003417: SWAP1 00003418: SWAP7 00003419: SWAP4 0000341a: SWAP7 0000341b: AND 0000341c: PUSH2 0x0258 0000341f: DUP2 00003420: GT 00003421: PUSH2 0x342c 00003424: JUMPI 00003425: JUMPDEST 00003426: POP 00003427: POP 00003428: PUSH2 0x3384 0000342b: JUMP 0000342c: JUMPDEST 0000342d: SWAP4 0000342e: POP 0000342f: SWAP6 00003430: POP 00003431: POP 00003432: SWAP3 00003433: POP 00003434: PUSH2 0x343d 00003437: SWAP2 00003438: POP 00003439: PUSH2 0x4503 0000343c: JUMP 0000343d: JUMPDEST 0000343e: SWAP1 0000343f: SWAP4 00003440: SWAP3 00003441: PUSH1 0x01 00003443: SWAP3 00003444: SWAP2 00003445: PUSH2 0x344d 00003448: SWAP1 00003449: PUSH2 0x2fd2 0000344c: JUMP 0000344d: JUMPDEST 0000344e: SWAP3 0000344f: CODESIZE 00003450: DUP1 00003451: PUSH2 0x3425 00003454: JUMP 00003455: JUMPDEST 00003456: POP 00003457: PUSH4 0xffffffff 0000345c: PUSH2 0x3465 0000345f: DUP4 00003460: TIMESTAMP 00003461: PUSH2 0x20fd 00003464: JUMP 00003465: JUMPDEST 00003466: AND 00003467: SWAP2 00003468: PUSH2 0x3356 0000346b: JUMP 0000346c: JUMPDEST 0000346d: PUSH1 0x02 0000346f: PUSH1 0x00 00003471: SLOAD 00003472: EQ 00003473: PUSH2 0x347d 00003476: JUMPI 00003477: PUSH1 0x02 00003479: PUSH1 0x00 0000347b: SSTORE 0000347c: JUMP 0000347d: JUMPDEST 0000347e: PUSH4 0x3ee5aeb5 00003483: PUSH1 0xe0 00003485: SHL 00003486: PUSH1 0x00 00003488: MSTORE 00003489: PUSH1 0x04 0000348b: PUSH1 0x00 0000348d: REVERT 0000348e: JUMPDEST 0000348f: PUSH32 0x00000000000000000000000000000000000000000000000000000000686fffa0 000034b0: PUSH4 0xffffffff 000034b5: DUP2 000034b6: AND 000034b7: DUP1 000034b8: TIMESTAMP 000034b9: LT 000034ba: PUSH2 0x31db 000034bd: JUMPI 000034be: PUSH1 0x18 000034c0: SLOAD 000034c1: SWAP1 000034c2: PUSH4 0xffffffff 000034c7: DUP3 000034c8: PUSH1 0x20 000034ca: SHR 000034cb: AND 000034cc: SWAP1 000034cd: DUP2 000034ce: ISZERO 000034cf: SWAP1 000034d0: DUP2 000034d1: PUSH1 0x00 000034d3: EQ 000034d4: PUSH2 0x35e8 000034d7: JUMPI 000034d8: PUSH2 0x34e6 000034db: PUSH4 0xffffffff 000034e0: SWAP2 000034e1: TIMESTAMP 000034e2: PUSH2 0x20fd 000034e5: JUMP 000034e6: JUMPDEST 000034e7: AND 000034e8: SWAP2 000034e9: JUMPDEST 000034ea: PUSH1 0x00 000034ec: SWAP2 000034ed: DUP3 000034ee: SWAP2 000034ef: DUP3 000034f0: SWAP2 000034f1: DUP3 000034f2: SWAP2 000034f3: DUP3 000034f4: SWAP2 000034f5: ISZERO 000034f6: PUSH2 0x359e 000034f9: JUMPI 000034fa: POP 000034fb: POP 000034fc: POP 000034fd: POP 000034fe: POP 000034ff: POP 00003500: PUSH4 0xffffffff 00003505: PUSH2 0x350e 00003508: SWAP2 00003509: AND 0000350a: PUSH2 0x45b3 0000350d: JUMP 0000350e: JUMPDEST 0000350f: SWAP1 00003510: SWAP4 00003511: SWAP3 00003512: SWAP1 00003513: SWAP2 00003514: SWAP1 00003515: PUSH1 0x01 00003517: JUMPDEST 00003518: PUSH2 0x3522 0000351b: JUMPI 0000351c: POP 0000351d: POP 0000351e: POP 0000351f: POP 00003520: POP 00003521: JUMP 00003522: JUMPDEST 00003523: PUSH4 0xffffffff 00003528: PUSH1 0x20 0000352a: SHL 0000352b: PUSH2 0x353f 0000352e: PUSH2 0x3586 00003531: SWAP6 00003532: PUSH2 0x3115 00003535: PUSH4 0xffffffff 0000353a: SWAP7 0000353b: PUSH2 0x2fe9 0000353e: JUMP 0000353f: JUMPDEST 00003540: PUSH1 0x20 00003542: SHL 00003543: AND 00003544: SWAP1 00003545: PUSH4 0xffffffff 0000354a: PUSH1 0x20 0000354c: SHL 0000354d: NOT 0000354e: AND 0000354f: OR 00003550: PUSH1 0x18 00003552: SSTORE 00003553: PUSH1 0x01 00003555: PUSH1 0x01 00003557: PUSH1 0x80 00003559: SHL 0000355a: SUB 0000355b: PUSH1 0x40 0000355d: MLOAD 0000355e: SWAP5 0000355f: PUSH2 0x3567 00003562: DUP7 00003563: PUSH2 0x2227 00003566: JUMP 00003567: JUMPDEST 00003568: AND 00003569: DUP5 0000356a: MSTORE 0000356b: PUSH1 0x00 0000356d: PUSH1 0x20 0000356f: DUP6 00003570: ADD 00003571: MSTORE 00003572: AND 00003573: SWAP2 00003574: DUP3 00003575: PUSH1 0x00 00003577: MSTORE 00003578: PUSH1 0x17 0000357a: PUSH1 0x20 0000357c: MSTORE 0000357d: PUSH1 0x40 0000357f: PUSH1 0x00 00003581: KECCAK256 00003582: PUSH2 0x3037 00003585: JUMP 00003586: JUMPDEST 00003587: PUSH4 0xffffffff 0000358c: NOT 0000358d: PUSH1 0x18 0000358f: SLOAD 00003590: AND 00003591: OR 00003592: PUSH1 0x18 00003594: SSTORE 00003595: CODESIZE 00003596: DUP1 00003597: DUP1 00003598: DUP1 00003599: DUP1 0000359a: PUSH2 0x30f1 0000359d: JUMP 0000359e: JUMPDEST 0000359f: SWAP2 000035a0: SWAP5 000035a1: SWAP8 000035a2: POP 000035a3: SWAP2 000035a4: SWAP5 000035a5: PUSH4 0xffffffff 000035aa: SWAP1 000035ab: SWAP7 000035ac: SWAP4 000035ad: SWAP7 000035ae: AND 000035af: PUSH2 0x0258 000035b2: DUP2 000035b3: GT 000035b4: PUSH2 0x35bf 000035b7: JUMPI 000035b8: JUMPDEST 000035b9: POP 000035ba: POP 000035bb: PUSH2 0x3517 000035be: JUMP 000035bf: JUMPDEST 000035c0: SWAP4 000035c1: POP 000035c2: SWAP6 000035c3: POP 000035c4: POP 000035c5: SWAP3 000035c6: POP 000035c7: PUSH2 0x35d0 000035ca: SWAP2 000035cb: POP 000035cc: PUSH2 0x45b3 000035cf: JUMP 000035d0: JUMPDEST 000035d1: SWAP1 000035d2: SWAP4 000035d3: SWAP3 000035d4: PUSH1 0x01 000035d6: SWAP3 000035d7: SWAP2 000035d8: PUSH2 0x35e0 000035db: SWAP1 000035dc: PUSH2 0x2fd2 000035df: JUMP 000035e0: JUMPDEST 000035e1: SWAP3 000035e2: CODESIZE 000035e3: DUP1 000035e4: PUSH2 0x35b8 000035e7: JUMP 000035e8: JUMPDEST 000035e9: POP 000035ea: PUSH4 0xffffffff 000035ef: PUSH2 0x35f8 000035f2: DUP4 000035f3: TIMESTAMP 000035f4: PUSH2 0x20fd 000035f7: JUMP 000035f8: JUMPDEST 000035f9: AND 000035fa: SWAP2 000035fb: PUSH2 0x34e9 000035fe: JUMP 000035ff: JUMPDEST 00003600: SWAP2 00003601: SWAP1 00003602: SWAP2 00003603: PUSH1 0x20 00003605: DUP2 00003606: MSTORE 00003607: DUP3 00003608: MLOAD 00003609: SWAP3 0000360a: PUSH1 0xa0 0000360c: PUSH1 0x20 0000360e: DUP4 0000360f: ADD 00003610: MSTORE 00003611: DUP4 00003612: MLOAD 00003613: SWAP1 00003614: DUP2 00003615: PUSH1 0xc0 00003617: DUP5 00003618: ADD 00003619: MSTORE 0000361a: PUSH1 0x00 0000361c: JUMPDEST 0000361d: DUP3 0000361e: DUP2 0000361f: LT 00003620: PUSH2 0x366c 00003623: JUMPI 00003624: POP 00003625: PUSH1 0xe0 00003627: SWAP4 00003628: SWAP5 00003629: POP 0000362a: PUSH1 0x80 0000362c: SWAP1 0000362d: PUSH1 0x00 0000362f: DUP6 00003630: DUP5 00003631: DUP7 00003632: ADD 00003633: ADD 00003634: MSTORE 00003635: PUSH1 0x01 00003637: DUP1 00003638: PUSH1 0xa0 0000363a: SHL 0000363b: SUB 0000363c: PUSH1 0x20 0000363e: DUP3 0000363f: ADD 00003640: MLOAD 00003641: AND 00003642: PUSH1 0x40 00003644: DUP6 00003645: ADD 00003646: MSTORE 00003647: PUSH1 0x40 00003649: DUP2 0000364a: ADD 0000364b: MLOAD 0000364c: PUSH1 0x60 0000364e: DUP6 0000364f: ADD 00003650: MSTORE 00003651: PUSH1 0x60 00003653: DUP2 00003654: ADD 00003655: MLOAD 00003656: DUP3 00003657: DUP6 00003658: ADD 00003659: MSTORE 0000365a: ADD 0000365b: MLOAD 0000365c: PUSH1 0xa0 0000365e: DUP4 0000365f: ADD 00003660: MSTORE 00003661: PUSH1 0x1f 00003663: DUP1 00003664: NOT 00003665: SWAP2 00003666: ADD 00003667: AND 00003668: ADD 00003669: ADD 0000366a: SWAP1 0000366b: JUMP 0000366c: JUMPDEST 0000366d: DUP1 0000366e: PUSH1 0x20 00003670: DUP1 00003671: SWAP3 00003672: DUP9 00003673: ADD 00003674: ADD 00003675: MLOAD 00003676: PUSH1 0xe0 00003678: DUP3 00003679: DUP8 0000367a: ADD 0000367b: ADD 0000367c: MSTORE 0000367d: ADD 0000367e: PUSH2 0x361c 00003681: JUMP 00003682: JUMPDEST 00003683: PUSH1 0x40 00003685: MLOAD 00003686: PUSH20 0x6015551cd911ff4685072e2793f56c841e3ab661 0000369b: PUSH1 0x61 0000369d: SHL 0000369e: PUSH1 0x20 000036a0: DUP3 000036a1: DUP2 000036a2: ADD 000036a3: SWAP2 000036a4: SWAP1 000036a5: SWAP2 000036a6: MSTORE 000036a7: PUSH2 0x0271 000036aa: PUSH1 0xec 000036ac: SHL 000036ad: PUSH1 0x34 000036af: DUP4 000036b0: ADD 000036b1: MSTORE 000036b2: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1 000036c7: PUSH1 0x60 000036c9: SHL 000036ca: PUSH1 0x37 000036cc: DUP4 000036cd: ADD 000036ce: MSTORE 000036cf: PUSH1 0x2b 000036d1: DUP3 000036d2: MSTORE 000036d3: PUSH2 0x3745 000036d6: SWAP4 000036d7: SWAP1 000036d8: SWAP3 000036d9: SWAP1 000036da: PUSH2 0x36e4 000036dd: PUSH1 0x4b 000036df: DUP5 000036e0: PUSH2 0x2273 000036e3: JUMP 000036e4: JUMPDEST 000036e5: PUSH1 0x64 000036e7: PUSH2 0x3704 000036ea: PUSH2 0x36f2 000036ed: DUP5 000036ee: PUSH2 0x29c2 000036f1: JUMP 000036f2: JUMPDEST 000036f3: PUSH1 0xff 000036f5: PUSH2 0x0e9f 000036f8: DUP2 000036f9: PUSH1 0x18 000036fb: SLOAD 000036fc: PUSH1 0x48 000036fe: SHR 000036ff: AND 00003700: PUSH2 0x2988 00003703: JUMP 00003704: JUMPDEST 00003705: DIV 00003706: SWAP1 00003707: PUSH1 0x40 00003709: MLOAD 0000370a: SWAP4 0000370b: PUSH2 0x3713 0000370e: DUP6 0000370f: PUSH2 0x2258 00003712: JUMP 00003713: JUMPDEST 00003714: DUP5 00003715: MSTORE 00003716: ADDRESS 00003717: DUP6 00003718: DUP6 00003719: ADD 0000371a: MSTORE 0000371b: PUSH1 0x40 0000371d: DUP5 0000371e: ADD 0000371f: MSTORE 00003720: DUP2 00003721: PUSH1 0x60 00003723: DUP5 00003724: ADD 00003725: MSTORE 00003726: PUSH1 0x80 00003728: DUP4 00003729: ADD 0000372a: MSTORE 0000372b: PUSH1 0x40 0000372d: MLOAD 0000372e: DUP1 0000372f: DUP1 00003730: SWAP6 00003731: DUP2 00003732: SWAP5 00003733: PUSH4 0xc04b8d59 00003738: PUSH1 0xe0 0000373a: SHL 0000373b: DUP4 0000373c: MSTORE 0000373d: PUSH1 0x04 0000373f: DUP4 00003740: ADD 00003741: PUSH2 0x35ff 00003744: JUMP 00003745: JUMPDEST 00003746: SUB 00003747: SWAP2 00003748: PUSH20 0xe592427a0aece92de3edee1f18e0157c05861564 0000375d: GAS 0000375e: CALL 0000375f: SWAP1 00003760: DUP2 00003761: ISZERO 00003762: PUSH2 0x297c 00003765: JUMPI 00003766: PUSH1 0x00 00003768: SWAP2 00003769: PUSH2 0x3770 0000376c: JUMPI 0000376d: POP 0000376e: SWAP1 0000376f: JUMP 00003770: JUMPDEST 00003771: SWAP1 00003772: POP 00003773: PUSH1 0x20 00003775: DUP2 00003776: RETURNDATASIZE 00003777: PUSH1 0x20 00003779: GT 0000377a: PUSH2 0x3797 0000377d: JUMPI 0000377e: JUMPDEST 0000377f: DUP2 00003780: PUSH2 0x378b 00003783: PUSH1 0x20 00003785: SWAP4 00003786: DUP4 00003787: PUSH2 0x2273 0000378a: JUMP 0000378b: JUMPDEST 0000378c: DUP2 0000378d: ADD 0000378e: SUB 0000378f: SLT 00003790: PUSH2 0x20e2 00003793: JUMPI 00003794: MLOAD 00003795: SWAP1 00003796: JUMP 00003797: JUMPDEST 00003798: RETURNDATASIZE 00003799: SWAP2 0000379a: POP 0000379b: PUSH2 0x377e 0000379e: JUMP 0000379f: JUMPDEST 000037a0: PUSH1 0x40 000037a2: MLOAD 000037a3: PUSH4 0x095ea7b3 000037a8: PUSH1 0xe0 000037aa: SHL 000037ab: DUP2 000037ac: MSTORE 000037ad: PUSH20 0xe592427a0aece92de3edee1f18e0157c05861564 000037c2: PUSH1 0x04 000037c4: DUP3 000037c5: ADD 000037c6: MSTORE 000037c7: PUSH1 0x24 000037c9: DUP2 000037ca: ADD 000037cb: DUP3 000037cc: SWAP1 000037cd: MSTORE 000037ce: PUSH1 0x20 000037d0: DUP2 000037d1: PUSH1 0x44 000037d3: DUP2 000037d4: PUSH1 0x00 000037d6: PUSH32 0x000000000000000000000000f19308f923582a6f7c465e5ce7a9dc1bec6665b1 000037f7: PUSH1 0x01 000037f9: PUSH1 0x01 000037fb: PUSH1 0xa0 000037fd: SHL 000037fe: SUB 000037ff: AND 00003800: GAS 00003801: CALL 00003802: DUP1 00003803: ISZERO 00003804: PUSH2 0x297c 00003807: JUMPI 00003808: PUSH2 0x3915 0000380b: JUMPI 0000380c: JUMPDEST 0000380d: POP 0000380e: PUSH1 0x40 00003810: MLOAD 00003811: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1 00003826: PUSH1 0x60 00003828: SHL 00003829: PUSH1 0x20 0000382b: DUP3 0000382c: DUP2 0000382d: ADD 0000382e: SWAP2 0000382f: SWAP1 00003830: SWAP2 00003831: MSTORE 00003832: PUSH2 0x0271 00003835: PUSH1 0xec 00003837: SHL 00003838: PUSH1 0x34 0000383a: DUP4 0000383b: ADD 0000383c: MSTORE 0000383d: PUSH32 0x000000000000000000000000b47f575807fc5466285e1277ef8acfbb5c6686e8 0000385e: PUSH1 0x60 00003860: SHL 00003861: PUSH12 0xffffffffffffffffffffffff 0000386e: NOT 0000386f: AND 00003870: PUSH1 0x37 00003872: DUP4 00003873: ADD 00003874: MSTORE 00003875: PUSH1 0x2b 00003877: DUP3 00003878: MSTORE 00003879: PUSH2 0x38e8 0000387c: SWAP4 0000387d: SWAP1 0000387e: SWAP3 0000387f: PUSH2 0x3889 00003882: PUSH1 0x4b 00003884: DUP5 00003885: PUSH2 0x2273 00003888: JUMP 00003889: JUMPDEST 0000388a: PUSH1 0x64 0000388c: PUSH2 0x38a9 0000388f: PUSH2 0x3897 00003892: DUP4 00003893: PUSH2 0x2330 00003896: JUMP 00003897: JUMPDEST 00003898: PUSH1 0xff 0000389a: PUSH2 0x0e9f 0000389d: DUP2 0000389e: PUSH1 0x18 000038a0: SLOAD 000038a1: PUSH1 0x40 000038a3: SHR 000038a4: AND 000038a5: PUSH2 0x2988 000038a8: JUMP 000038a9: JUMPDEST 000038aa: DIV 000038ab: SWAP2 000038ac: PUSH1 0x40 000038ae: MLOAD 000038af: SWAP4 000038b0: PUSH2 0x38b8 000038b3: DUP6 000038b4: PUSH2 0x2258 000038b7: JUMP 000038b8: JUMPDEST 000038b9: DUP5 000038ba: MSTORE 000038bb: ADDRESS 000038bc: DUP6 000038bd: DUP6 000038be: ADD 000038bf: MSTORE 000038c0: PUSH1 0x40 000038c2: DUP5 000038c3: ADD 000038c4: MSTORE 000038c5: PUSH1 0x60 000038c7: DUP4 000038c8: ADD 000038c9: MSTORE 000038ca: PUSH1 0x80 000038cc: DUP3 000038cd: ADD 000038ce: MSTORE 000038cf: PUSH1 0x40 000038d1: MLOAD 000038d2: DUP1 000038d3: SWAP4 000038d4: DUP2 000038d5: SWAP3 000038d6: PUSH4 0xc04b8d59 000038db: PUSH1 0xe0 000038dd: SHL 000038de: DUP4 000038df: MSTORE 000038e0: PUSH1 0x04 000038e2: DUP4 000038e3: ADD 000038e4: PUSH2 0x35ff 000038e7: JUMP 000038e8: JUMPDEST 000038e9: SUB 000038ea: DUP2 000038eb: PUSH1 0x00 000038ed: PUSH20 0xe592427a0aece92de3edee1f18e0157c05861564 00003902: GAS 00003903: CALL 00003904: SWAP1 00003905: DUP2 00003906: ISZERO 00003907: PUSH2 0x297c 0000390a: JUMPI 0000390b: PUSH1 0x00 0000390d: SWAP2 0000390e: PUSH2 0x3770 00003911: JUMPI 00003912: POP 00003913: SWAP1 00003914: JUMP 00003915: JUMPDEST 00003916: SWAP1 00003917: PUSH1 0x20 00003919: DUP3 0000391a: RETURNDATASIZE 0000391b: PUSH1 0x20 0000391d: GT 0000391e: PUSH2 0x394f 00003921: JUMPI 00003922: JUMPDEST 00003923: DUP2 00003924: PUSH2 0x392f 00003927: PUSH1 0x20 00003929: SWAP4 0000392a: DUP4 0000392b: PUSH2 0x2273 0000392e: JUMP 0000392f: JUMPDEST 00003930: DUP2 00003931: ADD 00003932: SUB 00003933: SLT 00003934: PUSH2 0x20e2 00003937: JUMPI 00003938: PUSH2 0x38e8 0000393b: SWAP3 0000393c: PUSH2 0x3946 0000393f: PUSH1 0x20 00003941: SWAP4 00003942: PUSH2 0x31ec 00003945: JUMP 00003946: JUMPDEST 00003947: POP 00003948: SWAP3 00003949: POP 0000394a: SWAP1 0000394b: PUSH2 0x380c 0000394e: JUMP 0000394f: JUMPDEST 00003950: RETURNDATASIZE 00003951: SWAP2 00003952: POP 00003953: PUSH2 0x3922 00003956: JUMP 00003957: JUMPDEST 00003958: PUSH1 0x40 0000395a: MLOAD 0000395b: PUSH4 0xa9059cbb 00003960: PUSH1 0xe0 00003962: SHL 00003963: PUSH1 0x20 00003965: DUP3 00003966: ADD 00003967: SWAP1 00003968: DUP2 00003969: MSTORE 0000396a: PUSH1 0x01 0000396c: PUSH1 0x01 0000396e: PUSH1 0xa0 00003970: SHL 00003971: SUB 00003972: SWAP1 00003973: SWAP3 00003974: AND 00003975: PUSH1 0x24 00003977: DUP3 00003978: ADD 00003979: MSTORE 0000397a: PUSH1 0x44 0000397c: DUP2 0000397d: ADD 0000397e: SWAP3 0000397f: SWAP1 00003980: SWAP3 00003981: MSTORE 00003982: PUSH1 0x00 00003984: SWAP2 00003985: DUP3 00003986: SWAP2 00003987: SWAP1 00003988: PUSH2 0x399e 0000398b: DUP2 0000398c: PUSH1 0x64 0000398e: DUP2 0000398f: ADD 00003990: JUMPDEST 00003991: SUB 00003992: PUSH1 0x1f 00003994: NOT 00003995: DUP2 00003996: ADD 00003997: DUP4 00003998: MSTORE 00003999: DUP3 0000399a: PUSH2 0x2273 0000399d: JUMP 0000399e: JUMPDEST 0000399f: MLOAD 000039a0: SWAP1 000039a1: DUP3 000039a2: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1 000039b7: GAS 000039b8: CALL 000039b9: PUSH2 0x39c0 000039bc: PUSH2 0x2294 000039bf: JUMP 000039c0: JUMPDEST 000039c1: DUP2 000039c2: PUSH2 0x39f8 000039c5: JUMPI 000039c6: JUMPDEST 000039c7: POP 000039c8: ISZERO 000039c9: PUSH2 0x39ce 000039cc: JUMPI 000039cd: JUMP 000039ce: JUMPDEST 000039cf: PUSH1 0x40 000039d1: MLOAD 000039d2: PUSH3 0x461bcd 000039d6: PUSH1 0xe5 000039d8: SHL 000039d9: DUP2 000039da: MSTORE 000039db: PUSH1 0x20 000039dd: PUSH1 0x04 000039df: DUP3 000039e0: ADD 000039e1: MSTORE 000039e2: PUSH1 0x02 000039e4: PUSH1 0x24 000039e6: DUP3 000039e7: ADD 000039e8: MSTORE 000039e9: PUSH2 0x14d5 000039ec: PUSH1 0xf2 000039ee: SHL 000039ef: PUSH1 0x44 000039f1: DUP3 000039f2: ADD 000039f3: MSTORE 000039f4: PUSH1 0x64 000039f6: SWAP1 000039f7: REVERT 000039f8: JUMPDEST 000039f9: DUP1 000039fa: MLOAD 000039fb: DUP1 000039fc: ISZERO 000039fd: SWAP3 000039fe: POP 000039ff: DUP3 00003a00: ISZERO 00003a01: PUSH2 0x3a0d 00003a04: JUMPI 00003a05: JUMPDEST 00003a06: POP 00003a07: POP 00003a08: CODESIZE 00003a09: PUSH2 0x39c6 00003a0c: JUMP 00003a0d: JUMPDEST 00003a0e: DUP2 00003a0f: SWAP3 00003a10: POP 00003a11: SWAP1 00003a12: PUSH1 0x20 00003a14: SWAP2 00003a15: DUP2 00003a16: ADD 00003a17: SUB 00003a18: SLT 00003a19: PUSH2 0x20e2 00003a1c: JUMPI 00003a1d: PUSH1 0x20 00003a1f: PUSH2 0x3a28 00003a22: SWAP2 00003a23: ADD 00003a24: PUSH2 0x31ec 00003a27: JUMP 00003a28: JUMPDEST 00003a29: CODESIZE 00003a2a: DUP1 00003a2b: PUSH2 0x3a05 00003a2e: JUMP 00003a2f: JUMPDEST 00003a30: PUSH1 0x40 00003a32: MLOAD 00003a33: PUSH4 0xa9059cbb 00003a38: PUSH1 0xe0 00003a3a: SHL 00003a3b: PUSH1 0x20 00003a3d: DUP3 00003a3e: ADD 00003a3f: SWAP1 00003a40: DUP2 00003a41: MSTORE 00003a42: PUSH1 0x01 00003a44: PUSH1 0x01 00003a46: PUSH1 0xa0 00003a48: SHL 00003a49: SUB 00003a4a: SWAP1 00003a4b: SWAP4 00003a4c: AND 00003a4d: PUSH1 0x24 00003a4f: DUP3 00003a50: ADD 00003a51: MSTORE 00003a52: PUSH1 0x44 00003a54: DUP2 00003a55: ADD 00003a56: SWAP4 00003a57: SWAP1 00003a58: SWAP4 00003a59: MSTORE 00003a5a: PUSH1 0x00 00003a5c: SWAP3 00003a5d: DUP4 00003a5e: SWAP3 00003a5f: SWAP1 00003a60: DUP4 00003a61: SWAP1 00003a62: PUSH2 0x3a6e 00003a65: DUP2 00003a66: PUSH1 0x64 00003a68: DUP2 00003a69: ADD 00003a6a: PUSH2 0x3990 00003a6d: JUMP 00003a6e: JUMPDEST 00003a6f: MLOAD 00003a70: SWAP3 00003a71: GAS 00003a72: CALL 00003a73: PUSH2 0x39c0 00003a76: PUSH2 0x2294 00003a79: JUMP 00003a7a: JUMPDEST 00003a7b: PUSH32 0x00000000000000000000000000000000000000000000000000000000686fffa0 00003a9c: PUSH4 0xffffffff 00003aa1: DUP2 00003aa2: AND 00003aa3: DUP1 00003aa4: TIMESTAMP 00003aa5: LT 00003aa6: PUSH2 0x31db 00003aa9: JUMPI 00003aaa: PUSH1 0x1c 00003aac: SLOAD 00003aad: SWAP1 00003aae: PUSH4 0xffffffff 00003ab3: DUP3 00003ab4: PUSH1 0x20 00003ab6: SHR 00003ab7: AND 00003ab8: SWAP1 00003ab9: DUP2 00003aba: ISZERO 00003abb: SWAP1 00003abc: DUP2 00003abd: PUSH1 0x00 00003abf: EQ 00003ac0: PUSH2 0x3bd4 00003ac3: JUMPI 00003ac4: PUSH2 0x3ad2 00003ac7: PUSH4 0xffffffff 00003acc: SWAP2 00003acd: TIMESTAMP 00003ace: PUSH2 0x20fd 00003ad1: JUMP 00003ad2: JUMPDEST 00003ad3: AND 00003ad4: SWAP2 00003ad5: JUMPDEST 00003ad6: PUSH1 0x00 00003ad8: SWAP2 00003ad9: DUP3 00003ada: SWAP2 00003adb: DUP3 00003adc: SWAP2 00003add: DUP3 00003ade: SWAP2 00003adf: DUP3 00003ae0: SWAP2 00003ae1: ISZERO 00003ae2: PUSH2 0x3b8a 00003ae5: JUMPI 00003ae6: POP 00003ae7: POP 00003ae8: POP 00003ae9: POP 00003aea: POP 00003aeb: POP 00003aec: PUSH4 0xffffffff 00003af1: PUSH2 0x3afa 00003af4: SWAP2 00003af5: AND 00003af6: PUSH2 0x4658 00003af9: JUMP 00003afa: JUMPDEST 00003afb: SWAP1 00003afc: SWAP4 00003afd: SWAP3 00003afe: SWAP1 00003aff: SWAP2 00003b00: SWAP1 00003b01: PUSH1 0x01 00003b03: JUMPDEST 00003b04: PUSH2 0x3b0e 00003b07: JUMPI 00003b08: POP 00003b09: POP 00003b0a: POP 00003b0b: POP 00003b0c: POP 00003b0d: JUMP 00003b0e: JUMPDEST 00003b0f: PUSH4 0xffffffff 00003b14: PUSH1 0x20 00003b16: SHL 00003b17: PUSH2 0x3b2b 00003b1a: PUSH2 0x3b72 00003b1d: SWAP6 00003b1e: PUSH2 0x3115 00003b21: PUSH4 0xffffffff 00003b26: SWAP7 00003b27: PUSH2 0x2fe9 00003b2a: JUMP 00003b2b: JUMPDEST 00003b2c: PUSH1 0x20 00003b2e: SHL 00003b2f: AND 00003b30: SWAP1 00003b31: PUSH4 0xffffffff 00003b36: PUSH1 0x20 00003b38: SHL 00003b39: NOT 00003b3a: AND 00003b3b: OR 00003b3c: PUSH1 0x1c 00003b3e: SSTORE 00003b3f: PUSH1 0x01 00003b41: PUSH1 0x01 00003b43: PUSH1 0x80 00003b45: SHL 00003b46: SUB 00003b47: PUSH1 0x40 00003b49: MLOAD 00003b4a: SWAP5 00003b4b: PUSH2 0x3b53 00003b4e: DUP7 00003b4f: PUSH2 0x2227 00003b52: JUMP 00003b53: JUMPDEST 00003b54: AND 00003b55: DUP5 00003b56: MSTORE 00003b57: PUSH1 0x00 00003b59: PUSH1 0x20 00003b5b: DUP6 00003b5c: ADD 00003b5d: MSTORE 00003b5e: AND 00003b5f: SWAP2 00003b60: DUP3 00003b61: PUSH1 0x00 00003b63: MSTORE 00003b64: PUSH1 0x1b 00003b66: PUSH1 0x20 00003b68: MSTORE 00003b69: PUSH1 0x40 00003b6b: PUSH1 0x00 00003b6d: KECCAK256 00003b6e: PUSH2 0x3037 00003b71: JUMP 00003b72: JUMPDEST 00003b73: PUSH4 0xffffffff 00003b78: NOT 00003b79: PUSH1 0x1c 00003b7b: SLOAD 00003b7c: AND 00003b7d: OR 00003b7e: PUSH1 0x1c 00003b80: SSTORE 00003b81: CODESIZE 00003b82: DUP1 00003b83: DUP1 00003b84: DUP1 00003b85: DUP1 00003b86: PUSH2 0x30f1 00003b89: JUMP 00003b8a: JUMPDEST 00003b8b: SWAP2 00003b8c: SWAP5 00003b8d: SWAP8 00003b8e: POP 00003b8f: SWAP2 00003b90: SWAP5 00003b91: PUSH4 0xffffffff 00003b96: SWAP1 00003b97: SWAP7 00003b98: SWAP4 00003b99: SWAP7 00003b9a: AND 00003b9b: PUSH2 0x0258 00003b9e: DUP2 00003b9f: GT 00003ba0: PUSH2 0x3bab 00003ba3: JUMPI 00003ba4: JUMPDEST 00003ba5: POP 00003ba6: POP 00003ba7: PUSH2 0x3b03 00003baa: JUMP 00003bab: JUMPDEST 00003bac: SWAP4 00003bad: POP 00003bae: SWAP6 00003baf: POP 00003bb0: POP 00003bb1: SWAP3 00003bb2: POP 00003bb3: PUSH2 0x3bbc 00003bb6: SWAP2 00003bb7: POP 00003bb8: PUSH2 0x4658 00003bbb: JUMP 00003bbc: JUMPDEST 00003bbd: SWAP1 00003bbe: SWAP4 00003bbf: SWAP3 00003bc0: PUSH1 0x01 00003bc2: SWAP3 00003bc3: SWAP2 00003bc4: PUSH2 0x3bcc 00003bc7: SWAP1 00003bc8: PUSH2 0x2fd2 00003bcb: JUMP 00003bcc: JUMPDEST 00003bcd: SWAP3 00003bce: CODESIZE 00003bcf: DUP1 00003bd0: PUSH2 0x3ba4 00003bd3: JUMP 00003bd4: JUMPDEST 00003bd5: POP 00003bd6: PUSH4 0xffffffff 00003bdb: PUSH2 0x3be4 00003bde: DUP4 00003bdf: TIMESTAMP 00003be0: PUSH2 0x20fd 00003be3: JUMP 00003be4: JUMPDEST 00003be5: AND 00003be6: SWAP2 00003be7: PUSH2 0x3ad5 00003bea: JUMP 00003beb: JUMPDEST 00003bec: SWAP2 00003bed: PUSH1 0x00 00003bef: SWAP2 00003bf0: PUSH32 0x000000000000000000000000b47f575807fc5466285e1277ef8acfbb5c6686e8 00003c11: PUSH1 0x01 00003c13: PUSH1 0x01 00003c15: PUSH1 0xa0 00003c17: SHL 00003c18: SUB 00003c19: AND 00003c1a: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1 00003c2f: DUP2 00003c30: GT 00003c31: ISZERO 00003c32: PUSH2 0x3e60 00003c35: JUMPI 00003c36: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1 00003c4b: SWAP5 00003c4c: DUP2 00003c4d: SWAP5 00003c4e: JUMPDEST 00003c4f: POP 00003c50: PUSH1 0x01 00003c52: PUSH1 0x01 00003c54: PUSH1 0xa0 00003c56: SHL 00003c57: SUB 00003c58: DUP7 00003c59: AND 00003c5a: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1 00003c6f: SUB 00003c70: PUSH2 0x3e5a 00003c73: JUMPI 00003c74: SWAP2 00003c75: SWAP3 00003c76: JUMPDEST 00003c77: PUSH2 0x3c80 00003c7a: DUP4 00003c7b: DUP8 00003c7c: PUSH2 0x42e3 00003c7f: JUMP 00003c80: JUMPDEST 00003c81: PUSH2 0x3c8a 00003c84: DUP5 00003c85: DUP7 00003c86: PUSH2 0x42e3 00003c89: JUMP 00003c8a: JUMPDEST 00003c8b: PUSH1 0xff 00003c8d: PUSH1 0x18 00003c8f: SLOAD 00003c90: PUSH1 0x50 00003c92: SHR 00003c93: AND 00003c94: SWAP1 00003c95: PUSH1 0x64 00003c97: PUSH2 0x3cba 00003c9a: PUSH1 0xff 00003c9c: PUSH2 0x0ead 00003c9f: DUP4 00003ca0: PUSH2 0x3cb3 00003ca3: DUP4 00003ca4: PUSH2 0x3cac 00003ca7: DUP10 00003ca8: PUSH2 0x2988 00003cab: JUMP 00003cac: JUMPDEST 00003cad: AND 00003cae: DUP11 00003caf: PUSH2 0x21f4 00003cb2: JUMP 00003cb3: JUMPDEST 00003cb4: DIV 00003cb5: SWAP6 00003cb6: PUSH2 0x2988 00003cb9: JUMP 00003cba: JUMPDEST 00003cbb: DIV 00003cbc: PUSH1 0x01 00003cbe: DUP1 00003cbf: PUSH1 0xf8 00003cc1: SHL 00003cc2: SUB 00003cc3: PUSH1 0x04 00003cc5: SLOAD 00003cc6: AND 00003cc7: SWAP3 00003cc8: PUSH1 0x40 00003cca: MLOAD 00003ccb: SWAP4 00003ccc: PUSH1 0xc0 00003cce: DUP6 00003ccf: ADD 00003cd0: DUP6 00003cd1: DUP2 00003cd2: LT 00003cd3: PUSH1 0x01 00003cd5: PUSH1 0x01 00003cd7: PUSH1 0x40 00003cd9: SHL 00003cda: SUB 00003cdb: DUP3 00003cdc: GT 00003cdd: OR 00003cde: PUSH2 0x2242 00003ce1: JUMPI 00003ce2: PUSH1 0x40 00003ce4: MSTORE 00003ce5: DUP5 00003ce6: MSTORE 00003ce7: PUSH1 0x20 00003ce9: DUP5 00003cea: ADD 00003ceb: DUP7 00003cec: DUP2 00003ced: MSTORE 00003cee: PUSH1 0x40 00003cf0: DUP6 00003cf1: ADD 00003cf2: SWAP1 00003cf3: DUP9 00003cf4: DUP3 00003cf5: MSTORE 00003cf6: PUSH1 0x60 00003cf8: DUP7 00003cf9: ADD 00003cfa: SWAP3 00003cfb: DUP4 00003cfc: MSTORE 00003cfd: PUSH1 0x80 00003cff: DUP7 00003d00: ADD 00003d01: SWAP4 00003d02: DUP5 00003d03: MSTORE 00003d04: PUSH1 0xa0 00003d06: DUP7 00003d07: ADD 00003d08: SWAP5 00003d09: DUP6 00003d0a: MSTORE 00003d0b: PUSH1 0x40 00003d0d: MLOAD 00003d0e: SWAP6 00003d0f: PUSH4 0x219f5d17 00003d14: PUSH1 0xe0 00003d16: SHL 00003d17: DUP8 00003d18: MSTORE 00003d19: MLOAD 00003d1a: PUSH1 0x04 00003d1c: DUP8 00003d1d: ADD 00003d1e: MSTORE 00003d1f: MLOAD 00003d20: PUSH1 0x24 00003d22: DUP7 00003d23: ADD 00003d24: MSTORE 00003d25: MLOAD 00003d26: PUSH1 0x44 00003d28: DUP6 00003d29: ADD 00003d2a: MSTORE 00003d2b: MLOAD 00003d2c: PUSH1 0x64 00003d2e: DUP5 00003d2f: ADD 00003d30: MSTORE 00003d31: MLOAD 00003d32: PUSH1 0x84 00003d34: DUP4 00003d35: ADD 00003d36: MSTORE 00003d37: MLOAD 00003d38: PUSH1 0xa4 00003d3a: DUP3 00003d3b: ADD 00003d3c: MSTORE 00003d3d: PUSH1 0x60 00003d3f: DUP2 00003d40: PUSH1 0xc4 00003d42: DUP2 00003d43: PUSH1 0x00 00003d45: PUSH20 0xc36442b4a4522e871399cd717abdd847ab11fe88 00003d5a: GAS 00003d5b: CALL 00003d5c: SWAP3 00003d5d: DUP4 00003d5e: ISZERO 00003d5f: PUSH2 0x297c 00003d62: JUMPI 00003d63: PUSH1 0x00 00003d65: SWAP2 00003d66: DUP3 00003d67: SWAP5 00003d68: PUSH2 0x3e11 00003d6b: JUMPI 00003d6c: JUMPDEST 00003d6d: POP 00003d6e: DUP2 00003d6f: DUP2 00003d70: GT 00003d71: PUSH2 0x3dd6 00003d74: JUMPI 00003d75: JUMPDEST 00003d76: POP 00003d77: POP 00003d78: DUP2 00003d79: DUP4 00003d7a: GT 00003d7b: PUSH2 0x3d8e 00003d7e: JUMPI 00003d7f: JUMPDEST 00003d80: POP 00003d81: POP 00003d82: POP 00003d83: PUSH2 0x1021 00003d86: PUSH2 0x3061 00003d89: SWAP3 00003d8a: PUSH2 0x43a5 00003d8d: JUMP 00003d8e: JUMPDEST 00003d8f: PUSH1 0x20 00003d91: PUSH1 0x04 00003d93: SWAP2 00003d94: PUSH1 0x40 00003d96: SWAP7 00003d97: SWAP4 00003d98: SWAP5 00003d99: SWAP7 00003d9a: MLOAD 00003d9b: SWAP3 00003d9c: DUP4 00003d9d: DUP1 00003d9e: SWAP3 00003d9f: PUSH4 0x9ddbd211 00003da4: PUSH1 0xe0 00003da6: SHL 00003da7: DUP3 00003da8: MSTORE 00003da9: GAS 00003daa: STATICCALL 00003dab: SWAP5 00003dac: DUP6 00003dad: ISZERO 00003dae: PUSH2 0x297c 00003db1: JUMPI 00003db2: PUSH2 0x3061 00003db5: SWAP6 00003db6: PUSH2 0x1021 00003db9: SWAP5 00003dba: PUSH2 0x3dcf 00003dbd: SWAP4 00003dbe: PUSH1 0x00 00003dc0: SWAP3 00003dc1: PUSH2 0x10c4 00003dc4: JUMPI 00003dc5: POP 00003dc6: PUSH2 0x10b6 00003dc9: SWAP2 00003dca: SWAP3 00003dcb: PUSH2 0x20fd 00003dce: JUMP 00003dcf: JUMPDEST 00003dd0: SWAP3 00003dd1: CODESIZE 00003dd2: PUSH2 0x3d7f 00003dd5: JUMP 00003dd6: JUMPDEST 00003dd7: PUSH1 0x40 00003dd9: MLOAD 00003dda: PUSH4 0x9ddbd211 00003ddf: PUSH1 0xe0 00003de1: SHL 00003de2: DUP2 00003de3: MSTORE 00003de4: SWAP2 00003de5: PUSH1 0x20 00003de7: DUP4 00003de8: PUSH1 0x04 00003dea: DUP2 00003deb: DUP8 00003dec: GAS 00003ded: STATICCALL 00003dee: SWAP1 00003def: DUP2 00003df0: ISZERO 00003df1: PUSH2 0x297c 00003df4: JUMPI 00003df5: PUSH2 0x3e0a 00003df8: SWAP4 00003df9: PUSH1 0x00 00003dfb: SWAP3 00003dfc: PUSH2 0x1144 00003dff: JUMPI 00003e00: POP 00003e01: PUSH2 0x1136 00003e04: SWAP2 00003e05: SWAP3 00003e06: PUSH2 0x20fd 00003e09: JUMP 00003e0a: JUMPDEST 00003e0b: CODESIZE 00003e0c: DUP1 00003e0d: PUSH2 0x3d75 00003e10: JUMP 00003e11: JUMPDEST 00003e12: SWAP2 00003e13: SWAP1 00003e14: SWAP4 00003e15: POP 00003e16: PUSH1 0x60 00003e18: DUP3 00003e19: RETURNDATASIZE 00003e1a: PUSH1 0x60 00003e1c: GT 00003e1d: PUSH2 0x3e52 00003e20: JUMPI 00003e21: JUMPDEST 00003e22: DUP2 00003e23: PUSH2 0x3e2e 00003e26: PUSH1 0x60 00003e28: SWAP4 00003e29: DUP4 00003e2a: PUSH2 0x2273 00003e2d: JUMP 00003e2e: JUMPDEST 00003e2f: DUP2 00003e30: ADD 00003e31: SUB 00003e32: SLT 00003e33: PUSH2 0x04f0 00003e36: JUMPI 00003e37: POP 00003e38: PUSH2 0x3e40 00003e3b: DUP2 00003e3c: PUSH2 0x29ae 00003e3f: JUMP 00003e40: JUMPDEST 00003e41: POP 00003e42: PUSH1 0x40 00003e44: PUSH1 0x20 00003e46: DUP3 00003e47: ADD 00003e48: MLOAD 00003e49: SWAP2 00003e4a: ADD 00003e4b: MLOAD 00003e4c: SWAP3 00003e4d: CODESIZE 00003e4e: PUSH2 0x3d6c 00003e51: JUMP 00003e52: JUMPDEST 00003e53: RETURNDATASIZE 00003e54: SWAP2 00003e55: POP 00003e56: PUSH2 0x3e21 00003e59: JUMP 00003e5a: JUMPDEST 00003e5b: SWAP3 00003e5c: PUSH2 0x3c76 00003e5f: JUMP 00003e60: JUMPDEST 00003e61: DUP1 00003e62: SWAP5 00003e63: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1 00003e78: SWAP5 00003e79: PUSH2 0x3c4e 00003e7c: JUMP 00003e7d: JUMPDEST 00003e7e: MLOAD 00003e7f: SWAP1 00003e80: PUSH1 0x01 00003e82: PUSH1 0x01 00003e84: PUSH1 0xa0 00003e86: SHL 00003e87: SUB 00003e88: DUP3 00003e89: AND 00003e8a: DUP3 00003e8b: SUB 00003e8c: PUSH2 0x20e2 00003e8f: JUMPI 00003e90: JUMP 00003e91: JUMPDEST 00003e92: MLOAD 00003e93: SWAP1 00003e94: PUSH2 0xffff 00003e97: DUP3 00003e98: AND 00003e99: DUP3 00003e9a: SUB 00003e9b: PUSH2 0x20e2 00003e9e: JUMPI 00003e9f: JUMP 00003ea0: JUMPDEST 00003ea1: MLOAD 00003ea2: SWAP1 00003ea3: DUP2 00003ea4: PUSH1 0x06 00003ea6: SIGNEXTEND 00003ea7: DUP3 00003ea8: SUB 00003ea9: PUSH2 0x20e2 00003eac: JUMPI 00003ead: JUMP 00003eae: JUMPDEST 00003eaf: SWAP2 00003eb0: SWAP1 00003eb1: DUP3 00003eb2: PUSH1 0x80 00003eb4: SWAP2 00003eb5: SUB 00003eb6: SLT 00003eb7: PUSH2 0x20e2 00003eba: JUMPI 00003ebb: DUP2 00003ebc: MLOAD 00003ebd: PUSH4 0xffffffff 00003ec2: DUP2 00003ec3: AND 00003ec4: DUP2 00003ec5: SUB 00003ec6: PUSH2 0x20e2 00003ec9: JUMPI 00003eca: SWAP2 00003ecb: PUSH2 0x3ed6 00003ece: PUSH1 0x20 00003ed0: DUP3 00003ed1: ADD 00003ed2: PUSH2 0x3ea0 00003ed5: JUMP 00003ed6: JUMPDEST 00003ed7: SWAP2 00003ed8: PUSH2 0x25f3 00003edb: PUSH1 0x60 00003edd: PUSH2 0x3ee8 00003ee0: PUSH1 0x40 00003ee2: DUP6 00003ee3: ADD 00003ee4: PUSH2 0x3e7d 00003ee7: JUMP 00003ee8: JUMPDEST 00003ee9: SWAP4 00003eea: ADD 00003eeb: PUSH2 0x31ec 00003eee: JUMP 00003eef: JUMPDEST 00003ef0: PUSH4 0xffffffff 00003ef5: PUSH1 0x00 00003ef7: NOT 00003ef8: SWAP2 00003ef9: AND 00003efa: ADD 00003efb: SWAP1 00003efc: PUSH4 0xffffffff 00003f01: DUP3 00003f02: GT 00003f03: PUSH2 0x210a 00003f06: JUMPI 00003f07: JUMP 00003f08: JUMPDEST 00003f09: SWAP1 00003f0a: PUSH4 0xffffffff 00003f0f: DUP1 00003f10: SWAP2 00003f11: AND 00003f12: SWAP2 00003f13: AND 00003f14: SUB 00003f15: SWAP1 00003f16: PUSH4 0xffffffff 00003f1b: DUP3 00003f1c: GT 00003f1d: PUSH2 0x210a 00003f20: JUMPI 00003f21: JUMP 00003f22: JUMPDEST 00003f23: PUSH1 0x01 00003f25: PUSH1 0x01 00003f27: PUSH1 0x40 00003f29: SHL 00003f2a: SUB 00003f2b: DUP2 00003f2c: GT 00003f2d: PUSH2 0x2242 00003f30: JUMPI 00003f31: PUSH1 0x05 00003f33: SHL 00003f34: PUSH1 0x20 00003f36: ADD 00003f37: SWAP1 00003f38: JUMP 00003f39: JUMPDEST 00003f3a: DUP1 00003f3b: MLOAD 00003f3c: ISZERO 00003f3d: PUSH2 0x3f46 00003f40: JUMPI 00003f41: PUSH1 0x20 00003f43: ADD 00003f44: SWAP1 00003f45: JUMP 00003f46: JUMPDEST 00003f47: PUSH4 0x4e487b71 00003f4c: PUSH1 0xe0 00003f4e: SHL 00003f4f: PUSH1 0x00 00003f51: MSTORE 00003f52: PUSH1 0x32 00003f54: PUSH1 0x04 00003f56: MSTORE 00003f57: PUSH1 0x24 00003f59: PUSH1 0x00 00003f5b: REVERT 00003f5c: JUMPDEST 00003f5d: DUP1 00003f5e: MLOAD 00003f5f: PUSH1 0x01 00003f61: LT 00003f62: ISZERO 00003f63: PUSH2 0x3f46 00003f66: JUMPI 00003f67: PUSH1 0x40 00003f69: ADD 00003f6a: SWAP1 00003f6b: JUMP 00003f6c: JUMPDEST 00003f6d: PUSH1 0x02 00003f6f: SIGNEXTEND 00003f70: PUSH1 0x00 00003f72: DUP2 00003f73: SLT 00003f74: ISZERO 00003f75: PUSH2 0x42dd 00003f78: JUMPI 00003f79: DUP1 00003f7a: PUSH1 0x00 00003f7c: SUB 00003f7d: SWAP1 00003f7e: JUMPDEST 00003f7f: PUSH3 0x0d89e8 00003f83: DUP3 00003f84: GT 00003f85: PUSH2 0x42cc 00003f88: JUMPI 00003f89: PUSH1 0x01 00003f8b: DUP3 00003f8c: AND 00003f8d: ISZERO 00003f8e: PUSH2 0x42ba 00003f91: JUMPI 00003f92: PUSH1 0x01 00003f94: PUSH1 0x01 00003f96: PUSH1 0x88 00003f98: SHL 00003f99: SUB 00003f9a: PUSH16 0xfffcb933bd6fad37aa2d162d1a594001 00003fab: JUMPDEST 00003fac: AND 00003fad: SWAP2 00003fae: PUSH1 0x02 00003fb0: DUP2 00003fb1: AND 00003fb2: PUSH2 0x429e 00003fb5: JUMPI 00003fb6: JUMPDEST 00003fb7: PUSH1 0x04 00003fb9: DUP2 00003fba: AND 00003fbb: PUSH2 0x4282 00003fbe: JUMPI 00003fbf: JUMPDEST 00003fc0: PUSH1 0x08 00003fc2: DUP2 00003fc3: AND 00003fc4: PUSH2 0x4266 00003fc7: JUMPI 00003fc8: JUMPDEST 00003fc9: PUSH1 0x10 00003fcb: DUP2 00003fcc: AND 00003fcd: PUSH2 0x424a 00003fd0: JUMPI 00003fd1: JUMPDEST 00003fd2: PUSH1 0x20 00003fd4: DUP2 00003fd5: AND 00003fd6: PUSH2 0x422e 00003fd9: JUMPI 00003fda: JUMPDEST 00003fdb: PUSH1 0x40 00003fdd: DUP2 00003fde: AND 00003fdf: PUSH2 0x4212 00003fe2: JUMPI 00003fe3: JUMPDEST 00003fe4: PUSH1 0x80 00003fe6: DUP2 00003fe7: AND 00003fe8: PUSH2 0x41f6 00003feb: JUMPI 00003fec: JUMPDEST 00003fed: PUSH2 0x0100 00003ff0: DUP2 00003ff1: AND 00003ff2: PUSH2 0x41da 00003ff5: JUMPI 00003ff6: JUMPDEST 00003ff7: PUSH2 0x0200 00003ffa: DUP2 00003ffb: AND 00003ffc: PUSH2 0x41be 00003fff: JUMPI 00004000: JUMPDEST 00004001: PUSH2 0x0400 00004004: DUP2 00004005: AND 00004006: PUSH2 0x41a2 00004009: JUMPI 0000400a: JUMPDEST 0000400b: PUSH2 0x0800 0000400e: DUP2 0000400f: AND 00004010: PUSH2 0x4186 00004013: JUMPI 00004014: JUMPDEST 00004015: PUSH2 0x1000 00004018: DUP2 00004019: AND 0000401a: PUSH2 0x416a 0000401d: JUMPI 0000401e: JUMPDEST 0000401f: PUSH2 0x2000 00004022: DUP2 00004023: AND 00004024: PUSH2 0x414e 00004027: JUMPI 00004028: JUMPDEST 00004029: PUSH2 0x4000 0000402c: DUP2 0000402d: AND 0000402e: PUSH2 0x4132 00004031: JUMPI 00004032: JUMPDEST 00004033: PUSH2 0x8000 00004036: DUP2 00004037: AND 00004038: PUSH2 0x4116 0000403b: JUMPI 0000403c: JUMPDEST 0000403d: PUSH3 0x010000 00004041: DUP2 00004042: AND 00004043: PUSH2 0x40fa 00004046: JUMPI 00004047: JUMPDEST 00004048: PUSH3 0x020000 0000404c: DUP2 0000404d: AND 0000404e: PUSH2 0x40df 00004051: JUMPI 00004052: JUMPDEST 00004053: PUSH3 0x040000 00004057: DUP2 00004058: AND 00004059: PUSH2 0x40c4 0000405c: JUMPI 0000405d: JUMPDEST 0000405e: PUSH3 0x080000 00004062: AND 00004063: PUSH2 0x40ab 00004066: JUMPI 00004067: JUMPDEST 00004068: PUSH1 0x00 0000406a: SLT 0000406b: PUSH2 0x409c 0000406e: JUMPI 0000406f: JUMPDEST 00004070: PUSH4 0xffffffff 00004075: DUP2 00004076: AND 00004077: PUSH2 0x4094 0000407a: JUMPI 0000407b: PUSH1 0x00 0000407d: SWAP1 0000407e: JUMPDEST 0000407f: PUSH1 0x20 00004081: SHR 00004082: PUSH1 0xff 00004084: SWAP2 00004085: SWAP1 00004086: SWAP2 00004087: AND 00004088: ADD 00004089: PUSH1 0x01 0000408b: PUSH1 0x01 0000408d: PUSH1 0xa0 0000408f: SHL 00004090: SUB 00004091: AND 00004092: SWAP1 00004093: JUMP 00004094: JUMPDEST 00004095: PUSH1 0x01 00004097: SWAP1 00004098: PUSH2 0x407e 0000409b: JUMP 0000409c: JUMPDEST 0000409d: DUP1 0000409e: ISZERO 0000409f: PUSH2 0x2211 000040a2: JUMPI 000040a3: PUSH1 0x00 000040a5: NOT 000040a6: DIV 000040a7: PUSH2 0x406f 000040aa: JUMP 000040ab: JUMPDEST 000040ac: PUSH12 0x048a170391f7dc42444e8fa2 000040b9: SWAP1 000040ba: SWAP2 000040bb: MUL 000040bc: PUSH1 0x80 000040be: SHR 000040bf: SWAP1 000040c0: PUSH2 0x4067 000040c3: JUMP 000040c4: JUMPDEST 000040c5: PUSH14 0x2216e584f5fa1ea926041bedfe98 000040d4: SWAP1 000040d5: SWAP3 000040d6: MUL 000040d7: PUSH1 0x80 000040d9: SHR 000040da: SWAP2 000040db: PUSH2 0x405d 000040de: JUMP 000040df: JUMPDEST 000040e0: SWAP2 000040e1: PUSH15 0x5d6af8dedb81196699c329225ee604 000040f1: MUL 000040f2: PUSH1 0x80 000040f4: SHR 000040f5: SWAP2 000040f6: PUSH2 0x4052 000040f9: JUMP 000040fa: JUMPDEST 000040fb: SWAP2 000040fc: PUSH16 0x09aa508b5b7a84e1c677de54f3e99bc9 0000410d: MUL 0000410e: PUSH1 0x80 00004110: SHR 00004111: SWAP2 00004112: PUSH2 0x4047 00004115: JUMP 00004116: JUMPDEST 00004117: SWAP2 00004118: PUSH16 0x31be135f97d08fd981231505542fcfa6 00004129: MUL 0000412a: PUSH1 0x80 0000412c: SHR 0000412d: SWAP2 0000412e: PUSH2 0x403c 00004131: JUMP 00004132: JUMPDEST 00004133: SWAP2 00004134: PUSH16 0x70d869a156d2a1b890bb3df62baf32f7 00004145: MUL 00004146: PUSH1 0x80 00004148: SHR 00004149: SWAP2 0000414a: PUSH2 0x4032 0000414d: JUMP 0000414e: JUMPDEST 0000414f: SWAP2 00004150: PUSH16 0xa9f746462d870fdf8a65dc1f90e061e5 00004161: MUL 00004162: PUSH1 0x80 00004164: SHR 00004165: SWAP2 00004166: PUSH2 0x4028 00004169: JUMP 0000416a: JUMPDEST 0000416b: SWAP2 0000416c: PUSH16 0xd097f3bdfd2022b8845ad8f792aa5825 0000417d: MUL 0000417e: PUSH1 0x80 00004180: SHR 00004181: SWAP2 00004182: PUSH2 0x401e 00004185: JUMP 00004186: JUMPDEST 00004187: SWAP2 00004188: PUSH16 0xe7159475a2c29b7443b29c7fa6e889d9 00004199: MUL 0000419a: PUSH1 0x80 0000419c: SHR 0000419d: SWAP2 0000419e: PUSH2 0x4014 000041a1: JUMP 000041a2: JUMPDEST 000041a3: SWAP2 000041a4: PUSH16 0xf3392b0822b70005940c7a398e4b70f3 000041b5: MUL 000041b6: PUSH1 0x80 000041b8: SHR 000041b9: SWAP2 000041ba: PUSH2 0x400a 000041bd: JUMP 000041be: JUMPDEST 000041bf: SWAP2 000041c0: PUSH16 0xf987a7253ac413176f2b074cf7815e54 000041d1: MUL 000041d2: PUSH1 0x80 000041d4: SHR 000041d5: SWAP2 000041d6: PUSH2 0x4000 000041d9: JUMP 000041da: JUMPDEST 000041db: SWAP2 000041dc: PUSH16 0xfcbe86c7900a88aedcffc83b479aa3a4 000041ed: MUL 000041ee: PUSH1 0x80 000041f0: SHR 000041f1: SWAP2 000041f2: PUSH2 0x3ff6 000041f5: JUMP 000041f6: JUMPDEST 000041f7: SWAP2 000041f8: PUSH16 0xfe5dee046a99a2a811c461f1969c3053 00004209: MUL 0000420a: PUSH1 0x80 0000420c: SHR 0000420d: SWAP2 0000420e: PUSH2 0x3fec 00004211: JUMP 00004212: JUMPDEST 00004213: SWAP2 00004214: PUSH16 0xff2ea16466c96a3843ec78b326b52861 00004225: MUL 00004226: PUSH1 0x80 00004228: SHR 00004229: SWAP2 0000422a: PUSH2 0x3fe3 0000422d: JUMP 0000422e: JUMPDEST 0000422f: SWAP2 00004230: PUSH16 0xff973b41fa98c081472e6896dfb254c0 00004241: MUL 00004242: PUSH1 0x80 00004244: SHR 00004245: SWAP2 00004246: PUSH2 0x3fda 00004249: JUMP 0000424a: JUMPDEST 0000424b: SWAP2 0000424c: PUSH16 0xffcb9843d60f6159c9db58835c926644 0000425d: MUL 0000425e: PUSH1 0x80 00004260: SHR 00004261: SWAP2 00004262: PUSH2 0x3fd1 00004265: JUMP 00004266: JUMPDEST 00004267: SWAP2 00004268: PUSH16 0xffe5caca7e10e4e61c3624eaa0941cd0 00004279: MUL 0000427a: PUSH1 0x80 0000427c: SHR 0000427d: SWAP2 0000427e: PUSH2 0x3fc8 00004281: JUMP 00004282: JUMPDEST 00004283: SWAP2 00004284: PUSH16 0xfff2e50f5f656932ef12357cf3c7fdcc 00004295: MUL 00004296: PUSH1 0x80 00004298: SHR 00004299: SWAP2 0000429a: PUSH2 0x3fbf 0000429d: JUMP 0000429e: JUMPDEST 0000429f: SWAP2 000042a0: PUSH16 0xfff97272373d413259a46990580e213a 000042b1: MUL 000042b2: PUSH1 0x80 000042b4: SHR 000042b5: SWAP2 000042b6: PUSH2 0x3fb6 000042b9: JUMP 000042ba: JUMPDEST 000042bb: PUSH1 0x01 000042bd: PUSH1 0x01 000042bf: PUSH1 0x88 000042c1: SHL 000042c2: SUB 000042c3: PUSH1 0x01 000042c5: PUSH1 0x80 000042c7: SHL 000042c8: PUSH2 0x3fab 000042cb: JUMP 000042cc: JUMPDEST 000042cd: PUSH4 0x15e4079d 000042d2: PUSH1 0xe1 000042d4: SHL 000042d5: PUSH1 0x00 000042d7: MSTORE 000042d8: PUSH1 0x04 000042da: PUSH1 0x00 000042dc: REVERT 000042dd: JUMPDEST 000042de: DUP1 000042df: PUSH2 0x3f7e 000042e2: JUMP 000042e3: JUMPDEST 000042e4: PUSH1 0x00 000042e6: SWAP2 000042e7: SWAP1 000042e8: DUP3 000042e9: SWAP2 000042ea: DUP3 000042eb: PUSH1 0x40 000042ed: MLOAD 000042ee: PUSH1 0x20 000042f0: DUP2 000042f1: ADD 000042f2: SWAP3 000042f3: PUSH4 0x095ea7b3 000042f8: PUSH1 0xe0 000042fa: SHL 000042fb: DUP5 000042fc: MSTORE 000042fd: PUSH20 0xc36442b4a4522e871399cd717abdd847ab11fe88 00004312: PUSH1 0x24 00004314: DUP4 00004315: ADD 00004316: MSTORE 00004317: PUSH1 0x44 00004319: DUP3 0000431a: ADD 0000431b: MSTORE 0000431c: PUSH1 0x44 0000431e: DUP2 0000431f: MSTORE 00004320: PUSH2 0x432a 00004323: PUSH1 0x64 00004325: DUP3 00004326: PUSH2 0x2273 00004329: JUMP 0000432a: JUMPDEST 0000432b: MLOAD 0000432c: SWAP3 0000432d: GAS 0000432e: CALL 0000432f: PUSH2 0x4336 00004332: PUSH2 0x2294 00004335: JUMP 00004336: JUMPDEST 00004337: DUP2 00004338: PUSH2 0x436e 0000433b: JUMPI 0000433c: JUMPDEST 0000433d: POP 0000433e: ISZERO 0000433f: PUSH2 0x4344 00004342: JUMPI 00004343: JUMP 00004344: JUMPDEST 00004345: PUSH1 0x40 00004347: MLOAD 00004348: PUSH3 0x461bcd 0000434c: PUSH1 0xe5 0000434e: SHL 0000434f: DUP2 00004350: MSTORE 00004351: PUSH1 0x20 00004353: PUSH1 0x04 00004355: DUP3 00004356: ADD 00004357: MSTORE 00004358: PUSH1 0x02 0000435a: PUSH1 0x24 0000435c: DUP3 0000435d: ADD 0000435e: MSTORE 0000435f: PUSH2 0x5341 00004362: PUSH1 0xf0 00004364: SHL 00004365: PUSH1 0x44 00004367: DUP3 00004368: ADD 00004369: MSTORE 0000436a: PUSH1 0x64 0000436c: SWAP1 0000436d: REVERT 0000436e: JUMPDEST 0000436f: DUP1 00004370: MLOAD 00004371: DUP1 00004372: ISZERO 00004373: SWAP3 00004374: POP 00004375: DUP3 00004376: ISZERO 00004377: PUSH2 0x4383 0000437a: JUMPI 0000437b: JUMPDEST 0000437c: POP 0000437d: POP 0000437e: CODESIZE 0000437f: PUSH2 0x433c 00004382: JUMP 00004383: JUMPDEST 00004384: DUP2 00004385: SWAP3 00004386: POP 00004387: SWAP1 00004388: PUSH1 0x20 0000438a: SWAP2 0000438b: DUP2 0000438c: ADD 0000438d: SUB 0000438e: SLT 0000438f: PUSH2 0x20e2 00004392: JUMPI 00004393: PUSH1 0x20 00004395: PUSH2 0x439e 00004398: SWAP2 00004399: ADD 0000439a: PUSH2 0x31ec 0000439d: JUMP 0000439e: JUMPDEST 0000439f: CODESIZE 000043a0: DUP1 000043a1: PUSH2 0x437b 000043a4: JUMP 000043a5: JUMPDEST 000043a6: PUSH1 0x00 000043a8: DUP1 000043a9: SWAP2 000043aa: PUSH1 0x40 000043ac: MLOAD 000043ad: DUP3 000043ae: PUSH1 0x20 000043b0: DUP3 000043b1: ADD 000043b2: SWAP2 000043b3: PUSH4 0x095ea7b3 000043b8: PUSH1 0xe0 000043ba: SHL 000043bb: DUP4 000043bc: MSTORE 000043bd: PUSH20 0xc36442b4a4522e871399cd717abdd847ab11fe88 000043d2: PUSH1 0x24 000043d4: DUP3 000043d5: ADD 000043d6: MSTORE 000043d7: DUP2 000043d8: PUSH1 0x44 000043da: DUP3 000043db: ADD 000043dc: MSTORE 000043dd: PUSH1 0x44 000043df: DUP2 000043e0: MSTORE 000043e1: PUSH2 0x432a 000043e4: PUSH1 0x64 000043e6: DUP3 000043e7: PUSH2 0x2273 000043ea: JUMP 000043eb: JUMPDEST 000043ec: SWAP1 000043ed: PUSH1 0x01 000043ef: PUSH1 0x01 000043f1: PUSH1 0x80 000043f3: SHL 000043f4: SUB 000043f5: DUP1 000043f6: SWAP2 000043f7: AND 000043f8: SWAP2 000043f9: AND 000043fa: MUL 000043fb: SWAP1 000043fc: PUSH1 0x01 000043fe: PUSH1 0x01 00004400: PUSH1 0x80 00004402: SHL 00004403: SUB 00004404: DUP3 00004405: AND 00004406: SWAP2 00004407: DUP3 00004408: SUB 00004409: PUSH2 0x210a 0000440c: JUMPI 0000440d: JUMP 0000440e: JUMPDEST 0000440f: SWAP1 00004410: PUSH1 0x01 00004412: PUSH1 0x01 00004414: PUSH1 0x80 00004416: SHL 00004417: SUB 00004418: DUP1 00004419: SWAP2 0000441a: AND 0000441b: SWAP2 0000441c: AND 0000441d: ADD 0000441e: SWAP1 0000441f: PUSH1 0x01 00004421: PUSH1 0x01 00004423: PUSH1 0x80 00004425: SHL 00004426: SUB 00004427: DUP3 00004428: GT 00004429: PUSH2 0x210a 0000442c: JUMPI 0000442d: JUMP 0000442e: JUMPDEST 0000442f: SWAP1 00004430: PUSH2 0x446c 00004433: PUSH2 0x4467 00004436: PUSH4 0xffffffff 0000443b: SWAP4 0000443c: PUSH1 0x1a 0000443e: SLOAD 0000443f: SWAP1 00004440: DUP6 00004441: DUP3 00004442: PUSH1 0x20 00004444: SHR 00004445: AND 00004446: ISZERO 00004447: PUSH1 0x00 00004449: EQ 0000444a: PUSH2 0x44d4 0000444d: JUMPI 0000444e: PUSH1 0x00 00004450: PUSH2 0x0258 00004453: DUP3 00004454: GT 00004455: PUSH2 0x44c7 00004458: JUMPI 00004459: POP 0000445a: POP 0000445b: PUSH1 0x00 0000445d: JUMPDEST 0000445e: SWAP5 0000445f: DUP6 00004460: SWAP2 00004461: JUMPDEST 00004462: AND 00004463: PUSH2 0x301d 00004466: JUMP 00004467: JUMPDEST 00004468: PUSH2 0x3005 0000446b: JUMP 0000446c: JUMPDEST 0000446d: SWAP2 0000446e: PUSH1 0x1f 00004470: SLOAD 00004471: SWAP2 00004472: PUSH2 0x44a6 00004475: PUSH1 0x01 00004477: PUSH1 0x01 00004479: PUSH1 0x80 0000447b: SHL 0000447c: SUB 0000447d: PUSH1 0x90 0000447f: PUSH2 0x2710 00004482: PUSH2 0x448d 00004485: PUSH1 0x0e 00004487: SLOAD 00004488: DUP9 00004489: PUSH2 0x21f4 0000448c: JUMP 0000448d: JUMPDEST 0000448e: DIV 0000448f: DIV 00004490: AND 00004491: PUSH2 0x44a0 00004494: PUSH4 0xffffffff 00004499: DUP6 0000449a: AND 0000449b: DUP3 0000449c: PUSH2 0x43eb 0000449f: JUMP 000044a0: JUMPDEST 000044a1: SWAP1 000044a2: PUSH2 0x440e 000044a5: JUMP 000044a6: JUMPDEST 000044a7: SWAP3 000044a8: DUP1 000044a9: PUSH1 0x01 000044ab: PUSH1 0x01 000044ad: PUSH1 0x80 000044af: SHL 000044b0: SUB 000044b1: DUP6 000044b2: AND 000044b3: GT 000044b4: PUSH2 0x44ba 000044b7: JUMPI 000044b8: POP 000044b9: JUMP 000044ba: JUMPDEST 000044bb: PUSH1 0x01 000044bd: PUSH1 0x01 000044bf: PUSH1 0x80 000044c1: SHL 000044c2: SUB 000044c3: AND 000044c4: SWAP3 000044c5: POP 000044c6: JUMP 000044c7: JUMPDEST 000044c8: POP 000044c9: PUSH2 0x0258 000044cc: SWAP1 000044cd: DIV 000044ce: DUP6 000044cf: AND 000044d0: PUSH2 0x445d 000044d3: JUMP 000044d4: JUMPDEST 000044d5: PUSH1 0x00 000044d7: SWAP1 000044d8: PUSH2 0x0258 000044db: DUP2 000044dc: GT 000044dd: PUSH2 0x44ed 000044e0: JUMPI 000044e1: POP 000044e2: POP 000044e3: PUSH1 0x00 000044e5: JUMPDEST 000044e6: SWAP5 000044e7: DUP6 000044e8: SWAP2 000044e9: PUSH2 0x4461 000044ec: JUMP 000044ed: JUMPDEST 000044ee: PUSH2 0x44fe 000044f1: SWAP2 000044f2: POP 000044f3: PUSH2 0x0258 000044f6: SWAP1 000044f7: DIV 000044f8: DUP7 000044f9: AND 000044fa: PUSH2 0x3eef 000044fd: JUMP 000044fe: JUMPDEST 000044ff: PUSH2 0x44e5 00004502: JUMP 00004503: JUMPDEST 00004504: PUSH1 0x16 00004506: SLOAD 00004507: SWAP1 00004508: PUSH1 0x00 0000450a: PUSH4 0xffffffff 0000450f: DUP4 00004510: PUSH1 0x20 00004512: SHR 00004513: AND 00004514: ISZERO 00004515: PUSH1 0x00 00004517: EQ 00004518: PUSH2 0x4587 0000451b: JUMPI 0000451c: POP 0000451d: PUSH1 0x00 0000451f: PUSH2 0x0258 00004522: DUP3 00004523: GT 00004524: PUSH2 0x4576 00004527: JUMPI 00004528: POP 00004529: POP 0000452a: PUSH1 0x00 0000452c: JUMPDEST 0000452d: SWAP1 0000452e: JUMPDEST 0000452f: PUSH2 0x4542 00004532: PUSH2 0x4467 00004535: DUP4 00004536: PUSH4 0xffffffff 0000453b: DUP2 0000453c: SWAP5 0000453d: AND 0000453e: PUSH2 0x301d 00004541: JUMP 00004542: JUMPDEST 00004543: SWAP3 00004544: PUSH2 0x44a6 00004547: PUSH1 0x10 00004549: SLOAD 0000454a: SWAP4 0000454b: PUSH2 0x44a0 0000454e: PUSH4 0xffffffff 00004553: PUSH1 0x01 00004555: PUSH1 0x01 00004557: PUSH1 0x80 00004559: SHL 0000455a: SUB 0000455b: PUSH1 0x90 0000455d: PUSH2 0x2710 00004560: PUSH2 0x456b 00004563: PUSH1 0x0c 00004565: SLOAD 00004566: DUP12 00004567: PUSH2 0x21f4 0000456a: JUMP 0000456b: JUMPDEST 0000456c: DIV 0000456d: DIV 0000456e: AND 0000456f: SWAP3 00004570: AND 00004571: DUP3 00004572: PUSH2 0x43eb 00004575: JUMP 00004576: JUMPDEST 00004577: POP 00004578: PUSH2 0x0258 0000457b: SWAP1 0000457c: DIV 0000457d: PUSH4 0xffffffff 00004582: AND 00004583: PUSH2 0x452c 00004586: JUMP 00004587: JUMPDEST 00004588: SWAP1 00004589: PUSH2 0x0258 0000458c: DUP2 0000458d: GT 0000458e: PUSH2 0x4599 00004591: JUMPI 00004592: POP 00004593: JUMPDEST 00004594: SWAP1 00004595: PUSH2 0x452e 00004598: JUMP 00004599: JUMPDEST 0000459a: PUSH2 0x45ae 0000459d: SWAP2 0000459e: POP 0000459f: PUSH2 0x0258 000045a2: SWAP1 000045a3: DIV 000045a4: PUSH4 0xffffffff 000045a9: AND 000045aa: PUSH2 0x3eef 000045ad: JUMP 000045ae: JUMPDEST 000045af: PUSH2 0x4593 000045b2: JUMP 000045b3: JUMPDEST 000045b4: PUSH1 0x18 000045b6: SLOAD 000045b7: SWAP1 000045b8: PUSH1 0x00 000045ba: PUSH4 0xffffffff 000045bf: DUP4 000045c0: PUSH1 0x20 000045c2: SHR 000045c3: AND 000045c4: ISZERO 000045c5: PUSH1 0x00 000045c7: EQ 000045c8: PUSH2 0x462c 000045cb: JUMPI 000045cc: POP 000045cd: PUSH1 0x00 000045cf: PUSH2 0x0258 000045d2: DUP3 000045d3: GT 000045d4: PUSH2 0x461b 000045d7: JUMPI 000045d8: POP 000045d9: POP 000045da: PUSH1 0x00 000045dc: JUMPDEST 000045dd: SWAP1 000045de: JUMPDEST 000045df: PUSH2 0x45f2 000045e2: PUSH2 0x4467 000045e5: DUP4 000045e6: PUSH4 0xffffffff 000045eb: DUP2 000045ec: SWAP5 000045ed: AND 000045ee: PUSH2 0x301d 000045f1: JUMP 000045f2: JUMPDEST 000045f3: SWAP3 000045f4: PUSH2 0x44a6 000045f7: PUSH1 0x11 000045f9: SLOAD 000045fa: SWAP4 000045fb: PUSH2 0x44a0 000045fe: PUSH4 0xffffffff 00004603: PUSH1 0x01 00004605: PUSH1 0x01 00004607: PUSH1 0x80 00004609: SHL 0000460a: SUB 0000460b: PUSH1 0x90 0000460d: PUSH2 0x2710 00004610: PUSH2 0x456b 00004613: PUSH1 0x0d 00004615: SLOAD 00004616: DUP12 00004617: PUSH2 0x21f4 0000461a: JUMP 0000461b: JUMPDEST 0000461c: POP 0000461d: PUSH2 0x0258 00004620: SWAP1 00004621: DIV 00004622: PUSH4 0xffffffff 00004627: AND 00004628: PUSH2 0x45dc 0000462b: JUMP 0000462c: JUMPDEST 0000462d: SWAP1 0000462e: PUSH2 0x0258 00004631: DUP2 00004632: GT 00004633: PUSH2 0x463e 00004636: JUMPI 00004637: POP 00004638: JUMPDEST 00004639: SWAP1 0000463a: PUSH2 0x45de 0000463d: JUMP 0000463e: JUMPDEST 0000463f: PUSH2 0x4653 00004642: SWAP2 00004643: POP 00004644: PUSH2 0x0258 00004647: SWAP1 00004648: DIV 00004649: PUSH4 0xffffffff 0000464e: AND 0000464f: PUSH2 0x3eef 00004652: JUMP 00004653: JUMPDEST 00004654: PUSH2 0x4638 00004657: JUMP 00004658: JUMPDEST 00004659: SWAP1 0000465a: PUSH2 0x468f 0000465d: PUSH2 0x4467 00004660: PUSH4 0xffffffff 00004665: SWAP4 00004666: PUSH1 0x1c 00004668: SLOAD 00004669: SWAP1 0000466a: DUP6 0000466b: DUP3 0000466c: PUSH1 0x20 0000466e: SHR 0000466f: AND 00004670: ISZERO 00004671: PUSH1 0x00 00004673: EQ 00004674: PUSH2 0x44d4 00004677: JUMPI 00004678: PUSH1 0x00 0000467a: PUSH2 0x0258 0000467d: DUP3 0000467e: GT 0000467f: PUSH2 0x44c7 00004682: JUMPI 00004683: POP 00004684: POP 00004685: PUSH1 0x00 00004687: SWAP5 00004688: DUP6 00004689: SWAP2 0000468a: AND 0000468b: PUSH2 0x301d 0000468e: JUMP 0000468f: JUMPDEST 00004690: SWAP2 00004691: PUSH1 0x20 00004693: SLOAD 00004694: SWAP2 00004695: PUSH2 0x44a6 00004698: PUSH1 0x01 0000469a: PUSH1 0x01 0000469c: PUSH1 0x80 0000469e: SHL 0000469f: SUB 000046a0: PUSH1 0x90 000046a2: PUSH2 0x2710 000046a5: PUSH2 0x448d 000046a8: PUSH1 0x0f 000046aa: SLOAD 000046ab: DUP9 000046ac: PUSH2 0x21f4 000046af: JUMP 000046b0: JUMPDEST 000046b1: DUP2 000046b2: DUP2 000046b3: MUL 000046b4: SWAP2 000046b5: PUSH1 0x00 000046b7: SWAP2 000046b8: PUSH1 0x00 000046ba: NOT 000046bb: DUP3 000046bc: DUP3 000046bd: MULMOD 000046be: SWAP3 000046bf: DUP5 000046c0: DUP1 000046c1: DUP6 000046c2: LT 000046c3: SWAP5 000046c4: SUB 000046c5: SWAP4 000046c6: DUP1 000046c7: DUP6 000046c8: SUB 000046c9: SWAP5 000046ca: EQ 000046cb: PUSH2 0x4704 000046ce: JUMPI 000046cf: DUP4 000046d0: PUSH1 0x01 000046d2: PUSH1 0x40 000046d4: SHL 000046d5: GT 000046d6: ISZERO 000046d7: PUSH2 0x46f5 000046da: JUMPI 000046db: POP 000046dc: SWAP1 000046dd: PUSH1 0x01 000046df: PUSH1 0x40 000046e1: SHL 000046e2: SWAP2 000046e3: MULMOD 000046e4: SWAP1 000046e5: DUP3 000046e6: DUP3 000046e7: GT 000046e8: SWAP1 000046e9: SUB 000046ea: PUSH1 0xc0 000046ec: SHL 000046ed: SWAP2 000046ee: SUB 000046ef: PUSH1 0x40 000046f1: SHR 000046f2: OR 000046f3: SWAP1 000046f4: JUMP 000046f5: JUMPDEST 000046f6: PUSH4 0x227bc153 000046fb: PUSH1 0xe0 000046fd: SHL 000046fe: DUP2 000046ff: MSTORE 00004700: PUSH1 0x04 00004702: SWAP1 00004703: REVERT 00004704: JUMPDEST 00004705: SWAP3 00004706: POP 00004707: POP 00004708: POP 00004709: POP 0000470a: PUSH1 0x40 0000470c: SHR 0000470d: SWAP1 0000470e: JUMP 0000470f: JUMPDEST 00004710: SWAP1 00004711: PUSH1 0x80 00004713: DUP3 00004714: SWAP1 00004715: SHL 00004716: SWAP1 00004717: PUSH1 0x00 00004719: NOT 0000471a: DUP4 0000471b: PUSH1 0x01 0000471d: PUSH1 0x80 0000471f: SHL 00004720: MULMOD 00004721: SWAP3 00004722: DUP3 00004723: DUP1 00004724: DUP6 00004725: LT 00004726: SWAP5 00004727: SUB 00004728: SWAP4 00004729: DUP1 0000472a: DUP6 0000472b: SUB 0000472c: SWAP5 0000472d: EQ 0000472e: PUSH2 0x47a5 00004731: JUMPI 00004732: DUP4 00004733: DUP3 00004734: GT 00004735: ISZERO 00004736: PUSH2 0x4794 00004739: JUMPI 0000473a: DUP2 0000473b: SWAP1 0000473c: PUSH1 0x01 0000473e: PUSH1 0x80 00004740: SHL 00004741: MULMOD 00004742: DUP2 00004743: PUSH1 0x00 00004745: SUB 00004746: DUP3 00004747: AND 00004748: DUP1 00004749: SWAP3 0000474a: DIV 0000474b: PUSH1 0x02 0000474d: DUP2 0000474e: PUSH1 0x03 00004750: MUL 00004751: XOR 00004752: DUP1 00004753: DUP3 00004754: MUL 00004755: PUSH1 0x02 00004757: SUB 00004758: MUL 00004759: DUP1 0000475a: DUP3 0000475b: MUL 0000475c: PUSH1 0x02 0000475e: SUB 0000475f: MUL 00004760: DUP1 00004761: DUP3 00004762: MUL 00004763: PUSH1 0x02 00004765: SUB 00004766: MUL 00004767: DUP1 00004768: DUP3 00004769: MUL 0000476a: PUSH1 0x02 0000476c: SUB 0000476d: MUL 0000476e: DUP1 0000476f: DUP3 00004770: MUL 00004771: PUSH1 0x02 00004773: SUB 00004774: MUL 00004775: DUP1 00004776: SWAP2 00004777: MUL 00004778: PUSH1 0x02 0000477a: SUB 0000477b: MUL 0000477c: SWAP4 0000477d: PUSH1 0x01 0000477f: DUP4 00004780: DUP1 00004781: PUSH1 0x00 00004783: SUB 00004784: DIV 00004785: ADD 00004786: SWAP1 00004787: DUP5 00004788: DUP4 00004789: GT 0000478a: SWAP1 0000478b: SUB 0000478c: MUL 0000478d: SWAP3 0000478e: SUB 0000478f: DIV 00004790: OR 00004791: MUL 00004792: SWAP1 00004793: JUMP 00004794: JUMPDEST 00004795: PUSH4 0x227bc153 0000479a: PUSH1 0xe0 0000479c: SHL 0000479d: PUSH1 0x00 0000479f: MSTORE 000047a0: PUSH1 0x04 000047a2: PUSH1 0x00 000047a4: REVERT 000047a5: JUMPDEST 000047a6: POP 000047a7: SWAP1 000047a8: PUSH2 0x25f3 000047ab: SWAP3 000047ac: POP 000047ad: PUSH2 0x2207 000047b0: JUMP 000047b1: JUMPDEST 000047b2: PUSH1 0x00 000047b4: SWAP1 000047b5: DUP3 000047b6: DUP2 000047b7: MUL 000047b8: SWAP3 000047b9: PUSH1 0x00 000047bb: NOT 000047bc: DUP2 000047bd: DUP4 000047be: MULMOD 000047bf: SWAP3 000047c0: DUP5 000047c1: DUP1 000047c2: DUP6 000047c3: LT 000047c4: SWAP5 000047c5: SUB 000047c6: SWAP4 000047c7: DUP1 000047c8: DUP6 000047c9: SUB 000047ca: SWAP5 000047cb: EQ 000047cc: PUSH2 0x47f5 000047cf: JUMPI 000047d0: PUSH1 0x01 000047d2: PUSH1 0x80 000047d4: SHL 000047d5: DUP5 000047d6: LT 000047d7: ISZERO 000047d8: PUSH2 0x46f5 000047db: JUMPI 000047dc: POP 000047dd: PUSH1 0x01 000047df: PUSH1 0x80 000047e1: SHL 000047e2: SWAP2 000047e3: MULMOD 000047e4: SWAP1 000047e5: DUP3 000047e6: DUP3 000047e7: GT 000047e8: SWAP1 000047e9: SUB 000047ea: PUSH1 0x80 000047ec: SHL 000047ed: SWAP2 000047ee: SUB 000047ef: PUSH1 0x80 000047f1: SHR 000047f2: OR 000047f3: SWAP1 000047f4: JUMP 000047f5: JUMPDEST 000047f6: SWAP3 000047f7: POP 000047f8: POP 000047f9: POP 000047fa: POP 000047fb: PUSH1 0x80 000047fd: SHR 000047fe: SWAP1 000047ff: JUMP 00004800: JUMPDEST 00004801: SWAP1 00004802: PUSH1 0xc0 00004804: DUP3 00004805: SWAP1 00004806: SHL 00004807: SWAP1 00004808: PUSH1 0x00 0000480a: NOT 0000480b: DUP4 0000480c: PUSH1 0x01 0000480e: PUSH1 0xc0 00004810: SHL 00004811: MULMOD 00004812: SWAP3 00004813: DUP3 00004814: DUP1 00004815: DUP6 00004816: LT 00004817: SWAP5 00004818: SUB 00004819: SWAP4 0000481a: DUP1 0000481b: DUP6 0000481c: SUB 0000481d: SWAP5 0000481e: EQ 0000481f: PUSH2 0x47a5 00004822: JUMPI 00004823: DUP4 00004824: DUP3 00004825: GT 00004826: ISZERO 00004827: PUSH2 0x4794 0000482a: JUMPI 0000482b: DUP2 0000482c: SWAP1 0000482d: PUSH1 0x01 0000482f: PUSH1 0xc0 00004831: SHL 00004832: MULMOD 00004833: DUP2 00004834: PUSH1 0x00 00004836: SUB 00004837: DUP3 00004838: AND 00004839: DUP1 0000483a: SWAP3 0000483b: DIV 0000483c: PUSH1 0x02 0000483e: DUP2 0000483f: PUSH1 0x03 00004841: MUL 00004842: XOR 00004843: DUP1 00004844: DUP3 00004845: MUL 00004846: PUSH1 0x02 00004848: SUB 00004849: MUL 0000484a: DUP1 0000484b: DUP3 0000484c: MUL 0000484d: PUSH1 0x02 0000484f: SUB 00004850: MUL 00004851: DUP1 00004852: DUP3 00004853: MUL 00004854: PUSH1 0x02 00004856: SUB 00004857: MUL 00004858: DUP1 00004859: DUP3 0000485a: MUL 0000485b: PUSH1 0x02 0000485d: SUB 0000485e: MUL 0000485f: DUP1 00004860: DUP3 00004861: MUL 00004862: PUSH1 0x02 00004864: SUB 00004865: MUL 00004866: DUP1 00004867: SWAP2 00004868: MUL 00004869: PUSH1 0x02 0000486b: SUB 0000486c: MUL 0000486d: SWAP4 0000486e: PUSH1 0x01 00004870: DUP4 00004871: DUP1 00004872: PUSH1 0x00 00004874: SUB 00004875: DIV 00004876: ADD 00004877: SWAP1 00004878: DUP5 00004879: DUP4 0000487a: GT 0000487b: SWAP1 0000487c: SUB 0000487d: MUL 0000487e: SWAP3 0000487f: SUB 00004880: DIV 00004881: OR 00004882: MUL 00004883: SWAP1 00004884: JUMP 00004885: JUMPDEST 00004886: PUSH1 0x00 00004888: SWAP1 00004889: DUP3 0000488a: DUP2 0000488b: MUL 0000488c: SWAP3 0000488d: PUSH1 0x00 0000488f: NOT 00004890: DUP2 00004891: DUP4 00004892: MULMOD 00004893: SWAP3 00004894: DUP5 00004895: DUP1 00004896: DUP6 00004897: LT 00004898: SWAP5 00004899: SUB 0000489a: SWAP4 0000489b: DUP1 0000489c: DUP6 0000489d: SUB 0000489e: SWAP5 0000489f: EQ 000048a0: PUSH2 0x48c9 000048a3: JUMPI 000048a4: PUSH1 0x01 000048a6: PUSH1 0xc0 000048a8: SHL 000048a9: DUP5 000048aa: LT 000048ab: ISZERO 000048ac: PUSH2 0x46f5 000048af: JUMPI 000048b0: POP 000048b1: PUSH1 0x01 000048b3: PUSH1 0xc0 000048b5: SHL 000048b6: SWAP2 000048b7: MULMOD 000048b8: SWAP1 000048b9: DUP3 000048ba: DUP3 000048bb: GT 000048bc: SWAP1 000048bd: SUB 000048be: PUSH1 0x40 000048c0: SHL 000048c1: SWAP2 000048c2: SUB 000048c3: PUSH1 0xc0 000048c5: SHR 000048c6: OR 000048c7: SWAP1 000048c8: JUMP 000048c9: JUMPDEST 000048ca: SWAP3 000048cb: POP 000048cc: POP 000048cd: POP 000048ce: POP 000048cf: PUSH1 0xc0 000048d1: SHR 000048d2: SWAP1 000048d3: JUMP 000048d4: INVALID 000048d5: LOG2 000048d6: PUSH5 0x6970667358 000048dc: UNKNOWN(0x22) 000048dd: SLT 000048de: KECCAK256 000048df: SWAP8 000048e0: UNKNOWN(0xE5) 000048e1: UNKNOWN(0xC4) 000048e2: SWAP3 000048e3: PUSH1 0x6d 000048e5: UNKNOWN(0xC1) 000048e6: UNKNOWN(0xBC) 000048e7: UNKNOWN(0xA7) 000048e8: UNKNOWN(0xD0) 000048e9: UNKNOWN(0x0D) 000048ea: CALLDATALOAD 000048eb: UNKNOWN(0xBF) 000048ec: AND 000048ed: DUP7 000048ee: CALLER 000048ef: UNKNOWN(0xD7) 000048f0: PUSH32
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x3d8c0b04855bf7a228002c0e4bc5525edbfca5ae0ce2fe221f4802fc675f45c2
call_targets:
0xaa390a37006e22b5775a34f2147f81ebd6a63641
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x3d8c0b04855bf7a228002c0e4bc5525edbfca5ae0ce2fe221f4802fc675f45c2",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xaa390a37006e22b5775a34f2147f81ebd6a63641"
],
"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": "0x038a0fc2",
"selector": "0x038a0fc2",
"calldata_variants": [
"0x038a0fc2",
"0x038a0fc20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0421fd73",
"selector": "0x0421fd73",
"calldata_variants": [
"0x0421fd73",
"0x0421fd730000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x11ce408e",
"selector": "0x11ce408e",
"calldata_variants": [
"0x11ce408e",
"0x11ce408e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x150b7a02",
"selector": "0x150b7a02",
"calldata_variants": [
"0x150b7a02",
"0x150b7a020000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1766608a",
"selector": "0x1766608a",
"calldata_variants": [
"0x1766608a",
"0x1766608a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1bea83fe",
"selector": "0x1bea83fe",
"calldata_variants": [
"0x1bea83fe",
"0x1bea83fe0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x20918db7",
"selector": "0x20918db7",
"calldata_variants": [
"0x20918db7",
"0x20918db70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x22d41f2f",
"selector": "0x22d41f2f",
"calldata_variants": [
"0x22d41f2f",
"0x22d41f2f0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3556,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4077,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6327,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 13,
"guards_detected": [],
"untrusted_call_count": 13
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x3d8c0b04855bf7a228002c0e4bc5525edbfca5ae0ce2fe221f4802fc675f45c2
call_targets:
0xaa390a37006e22b5775a34f2147f81ebd6a63641
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x3d8c0b04855bf7a228002c0e4bc5525edbfca5ae0ce2fe221f4802fc675f45c2",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xaa390a37006e22b5775a34f2147f81ebd6a63641"
],
"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": "0x038a0fc2",
"selector": "0x038a0fc2",
"calldata_variants": [
"0x038a0fc2",
"0x038a0fc20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0421fd73",
"selector": "0x0421fd73",
"calldata_variants": [
"0x0421fd73",
"0x0421fd730000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x11ce408e",
"selector": "0x11ce408e",
"calldata_variants": [
"0x11ce408e",
"0x11ce408e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x150b7a02",
"selector": "0x150b7a02",
"calldata_variants": [
"0x150b7a02",
"0x150b7a020000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1766608a",
"selector": "0x1766608a",
"calldata_variants": [
"0x1766608a",
"0x1766608a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1bea83fe",
"selector": "0x1bea83fe",
"calldata_variants": [
"0x1bea83fe",
"0x1bea83fe0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x20918db7",
"selector": "0x20918db7",
"calldata_variants": [
"0x20918db7",
"0x20918db70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x22d41f2f",
"selector": "0x22d41f2f",
"calldata_variants": [
"0x22d41f2f",
"0x22d41f2f0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3556,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4077,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6327,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 13,
"guards_detected": []
}
|
| medium | oracle | codex | ETH fee calculation can be underpaid via manipulable Uniswap TWAP | 75 | no | — |
viewevidence_json{
"evidence": "`getEthAmountForTitanX` uses a TWAP from `TITAN_X_ETH_POOL`, and `_distributeFees` uses it to set `requiredETH` for create/stake fees; the window is shortened to `oldestObservation` when it is less than 15 minutes, which weakens manipulation resistance.",
"locations": [
"contracts/src/TorusCreateAndStake.sol:588",
"contracts/src/TorusCreateAndStake.sol:608",
"contracts/src/TorusCreateAndStake.sol:612"
],
"recommendation": "Use a more robust price oracle (e.g., Chainlink) or enforce a minimum TWAP window and sanity bounds (e.g., revert if TWAP age < N minutes or if deviation vs. a secondary feed exceeds a threshold). Consider requiring an off-chain price quote with bounds instead of relying solely on the pool\u2019s TWAP.",
"exploit_scenario": "An attacker manipulates the TITAN_X/ETH Uniswap V3 pool (especially early when `oldestObservation` is small) to make TitanX appear cheaper, then calls `createTorus` or `stakeTorus` with ETH. `getEthAmountForTitanX` returns a lower `requiredETH`, letting the attacker mint/stake with less ETH than intended while still receiving full Torus creation benefits."
}
|
| medium | oracle | codex | Protocol swaps use manipulable TWAPs for `amountOutMinimum`, enabling adverse-rate swaps | 75 | no | — |
viewevidence_json{
"evidence": "`_swapTitanXForTorus` and `_swapETHForTitanX` derive `amountOutMinimum` from `getTorusQuoteForTitanX`/`getTitanXQuoteForETH`, which use a TWAP capped by `oldestObservation` (potentially very short). The same oracle is used in TorusCreateAndStake\u2019s internal swap as well.",
"locations": [
"contracts/src/TorusBuyAndProcess.sol:821",
"contracts/src/TorusBuyAndProcess.sol:1092",
"contracts/src/TorusBuyAndProcess.sol:1120",
"contracts/src/TorusBuyAndProcess.sol:1142",
"contracts/src/TorusCreateAndStake.sol:746"
],
"recommendation": "Use a more manipulation-resistant oracle (longer TWAP with enforced minimum age, multiple pools, or Chainlink), add deviation checks vs. spot price, and consider having trusted keepers supply `amountOutMinimum` with on-chain bounds. If possible, restrict swap execution to a keeper to reduce sandwich/manipulation risk.",
"exploit_scenario": "Because swap minOuts are computed from the same Uniswap pools\u2019 TWAPs (with a potentially short observation window), an attacker can manipulate the pool price and then trigger public `swap*AndBurn/Build` calls to execute swaps at a disadvantaged rate. This can drain burn/build allocations by forcing the protocol to swap at a manipulated price, while the attacker arbitrages the price distortion."
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 29
}
|