1477e342-0362-4cb5-8d4e-25617326771b
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 |
|---|---|---|---|---|
| 30317 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 74086 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 74087 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 74088 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 74089 | capability.graph | complete | 1 / 3 | 1 week ago |
| 74090 | detector.run | complete | 1 / 3 | 1 week ago |
| 74091 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1046196] OpenAI Codex v0.77.0 (research preview)
[codex:1046196] --------
[codex:1046196] workdir: /tmp/codex-multi-vmovw0u1
[codex:1046196] model: gpt-5.2-codex
[codex:1046196] provider: openai
[codex:1046196] approval: never
[codex:1046196] sandbox: read-only
[codex:1046196] reasoning effort: xhigh
[codex:1046196] reasoning summaries: auto
[codex:1046196] session id: 019b657c-8554-7832-935b-2fd09fada2dc
[codex:1046196] --------
[codex:1046196] user
[codex:1046196] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1046196] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1046196] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1046196]
[codex:1046196] Scope rules:
[codex:1046196] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1046196] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1046196]
[codex:1046196] Output MUST be valid JSON matching the provided schema.
[codex:1046196] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1046196] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1046196]
[codex:1046196] Output constraints (IMPORTANT):
[codex:1046196] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1046196] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1046196] mcp startup: no servers
[codex:1046196]
[codex:1046196] thinking
[codex:1046196] **Preparing to review audit instructions**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc ls in /tmp/codex-multi-vmovw0u1 succeeded in 5ms:
[codex:1046196] AUDIT_BUNDLE.txt
[codex:1046196] codex-output-schema.json
[codex:1046196] contracts
[codex:1046196]
[codex:1046196] thinking
[codex:1046196] **Reading AUDIT_BUNDLE.txt**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-vmovw0u1 succeeded in 6ms:
[codex:1046196] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1046196]
[codex:1046196] ================================================================================
[codex:1046196] FILE: contracts/@openzeppelin/contracts/access/Ownable.sol
[codex:1046196] ================================================================================
[codex:1046196] // SPDX-License-Identifier: MIT
[codex:1046196] // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
[codex:1046196]
[codex:1046196] pragma solidity ^0.8.20;
[codex:1046196]
[codex:1046196] import {Context} from "../utils/Context.sol";
[codex:1046196]
[codex:1046196] /**
[codex:1046196] * @dev Contract module which provides a basic access control mechanism, where
[codex:1046196] * there is an account (an owner) that can be granted exclusive access to
[codex:1046196] * specific functions.
[codex:1046196] *
[codex:1046196] * The initial owner is set to the address provided by the deployer. This can
[codex:1046196] * later be changed with {transferOwnership}.
[codex:1046196] *
[codex:1046196]
[codex:1046196] thinking
[codex:1046196] **Identifying main contracts in bundle**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc 'rg -n "''^FILE: contracts/contracts/" AUDIT_BUNDLE.txt' in /tmp/codex-multi-vmovw0u1 succeeded in 7ms:
[codex:1046196] 2594:FILE: contracts/contracts/DragonBuyAndBurn.sol
[codex:1046196] 3432:FILE: contracts/contracts/DragonX.sol
[codex:1046196] 4364:FILE: contracts/contracts/TitanBuy.sol
[codex:1046196] 4832:FILE: contracts/contracts/lib/Constants.sol
[codex:1046196] 4877:FILE: contracts/contracts/lib/DragonStake.sol
[codex:1046196] 5116:FILE: contracts/contracts/lib/Types.sol
[codex:1046196] 5130:FILE: contracts/contracts/lib/interfaces/INonfungiblePositionManager.sol
[codex:1046196] 5188:FILE: contracts/contracts/lib/interfaces/ITitanX.sol
[codex:1046196] 5301:FILE: contracts/contracts/lib/interfaces/IWETH.sol
[codex:1046196] 5319:FILE: contracts/contracts/lib/uniswap/Oracle.sol
[codex:1046196] 5496:FILE: contracts/contracts/lib/uniswap/PoolAddress.sol
[codex:1046196] 5593:FILE: contracts/contracts/lib/uniswap/TickMath.sol
[codex:1046196] 5905:FILE: contracts/contracts/mocks/BuildOnDragonX.sol
[codex:1046196] 5930:FILE: contracts/contracts/mocks/SwapHelper.sol
[codex:1046196] 6033:FILE: contracts/contracts/mocks/TriggerBot.sol
[codex:1046196]
[codex:1046196] thinking
[codex:1046196] **Planning contract file extraction**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc "sed -n '2594,3431p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-vmovw0u1 succeeded in 6ms:
[codex:1046196] FILE: contracts/contracts/DragonBuyAndBurn.sol
[codex:1046196] ================================================================================
[codex:1046196] // SPDX-License-Identifier: UNLICENSED
[codex:1046196] pragma solidity 0.8.20;
[codex:1046196]
[codex:1046196] // UniSwap
[codex:1046196] import "@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol";
[codex:1046196] import "@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol";
[codex:1046196]
[codex:1046196] // OpenZeppelins
[codex:1046196] import "@openzeppelin/contracts/access/Ownable2Step.sol";
[codex:1046196] import "@openzeppelin/contracts/utils/math/Math.sol";
[codex:1046196] import "@openzeppelin/contracts/utils/Context.sol";
[codex:1046196] import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
[codex:1046196]
[codex:1046196] // Library
[codex:1046196] import "./lib/Constants.sol";
[codex:1046196] import "./lib/interfaces/IWETH.sol";
[codex:1046196] import "./lib/interfaces/INonfungiblePositionManager.sol";
[codex:1046196] import "./lib/uniswap/PoolAddress.sol";
[codex:1046196]
[codex:1046196] thinking
[codex:1046196] **Reviewing large file end for DragonX and TitanBuy**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc "sed -n '3432,4363p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-vmovw0u1 succeeded in 6ms:
[codex:1046196] FILE: contracts/contracts/DragonX.sol
[codex:1046196] ================================================================================
[codex:1046196] // SPDX-License-Identifier: UNLICENSED
[codex:1046196] pragma solidity 0.8.20;
[codex:1046196]
[codex:1046196] // OpenZeppelin
[codex:1046196] import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
[codex:1046196] import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1046196] import "@openzeppelin/contracts/utils/Address.sol";
[codex:1046196] import "@openzeppelin/contracts/utils/Create2.sol";
[codex:1046196] import "@openzeppelin/contracts/access/Ownable2Step.sol";
[codex:1046196] import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
[codex:1046196]
[codex:1046196] // Library
[codex:1046196] import "./lib/DragonStake.sol";
[codex:1046196] import "./lib/Constants.sol";
[codex:1046196] import "./lib/Types.sol";
[codex:1046196] import "./lib/interfaces/ITitanX.sol";
[codex:1046196]
[codex:1046196] /**
[codex:1046196]
[codex:1046196] thinking
[codex:1046196] **Continuing with TitanBuy**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc "sed -n '4364,4831p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-vmovw0u1 succeeded in 6ms:
[codex:1046196] FILE: contracts/contracts/TitanBuy.sol
[codex:1046196] ================================================================================
[codex:1046196] // SPDX-License-Identifier: UNLICENSED
[codex:1046196] pragma solidity 0.8.20;
[codex:1046196]
[codex:1046196] // UniSwap
[codex:1046196] import "@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol";
[codex:1046196] import "@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol";
[codex:1046196]
[codex:1046196] // OpenZeppelins
[codex:1046196] import "@openzeppelin/contracts/access/Ownable2Step.sol";
[codex:1046196] import "@openzeppelin/contracts/utils/math/Math.sol";
[codex:1046196] import "@openzeppelin/contracts/utils/Context.sol";
[codex:1046196] import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
[codex:1046196]
[codex:1046196] // Library
[codex:1046196] import "./lib/Constants.sol";
[codex:1046196] import "./lib/interfaces/IWETH.sol";
[codex:1046196] import "./lib/uniswap/PoolAddress.sol";
[codex:1046196] import "./lib/uniswap/Oracle.sol";
[codex:1046196]
[codex:1046196]
[codex:1046196] thinking
[codex:1046196] **Evaluating third-party vs first-party audit scope**
[codex:1046196] thinking
[codex:1046196] **Analyzing Uniswap TWAP behavior and token interactions**
[codex:1046196]
[codex:1046196] I’m unpacking how the TWAP may fall back to current price when observations are missing or new, causing potential price manipulation early on. I’m also scrutinizing allowance increments, edge cases in ETH and token transfers, reentrancy guards, and token accounting—especially around deflationary tokens and vault balance calculations—to understand if any unexpected risks arise in these interactions.
[codex:1046196] exec
[codex:1046196] /bin/bash -lc "sed -n '4832,4876p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-vmovw0u1 succeeded in 7ms:
[codex:1046196] FILE: contracts/contracts/lib/Constants.sol
[codex:1046196] ================================================================================
[codex:1046196] // SPDX-License-Identifier: UNLICENSED
[codex:1046196] pragma solidity 0.8.20;
[codex:1046196]
[codex:1046196] /* Common */
[codex:1046196] uint256 constant BASIS = 10_000;
[codex:1046196] uint256 constant SECONDS_IN_DAY = 86400;
[codex:1046196] uint256 constant SCALING_FACTOR_1e3 = 1e3;
[codex:1046196] uint256 constant SCALING_FACTOR_1e6 = 1e6;
[codex:1046196] uint256 constant SCALING_FACTOR_1e7 = 1e7;
[codex:1046196] uint256 constant SCALING_FACTOR_1e11 = 1e11;
[codex:1046196] uint256 constant SCALING_FACTOR_1e18 = 1e18;
[codex:1046196]
[codex:1046196] /* TitanX staking */
[codex:1046196] uint256 constant TITANX_MAX_STAKE_PER_WALLET = 1000;
[codex:1046196] uint256 constant TITANX_MIN_STAKE_LENGTH = 28;
[codex:1046196] uint256 constant TITANX_MAX_STAKE_LENGTH = 3500;
[codex:1046196]
[codex:1046196] /* TitanX Stake Longer Pays Better bonus */
[codex:1046196]
[codex:1046196] thinking
[codex:1046196] **Analyzing contract logic and potential vulnerabilities**
[codex:1046196]
[codex:1046196] I'm examining complex interactions in the DragonX system, focusing on access controls, token minting restrictions, fee handling with ETH transfers, and potential edge cases involving incentive payouts and external calls. I want to verify whether owner privileges or external calls like `triggerPayouts` might open subtle loopholes or disrupt expected token flows, while also considering possible pitfalls from external contract dependencies like DragonStake. This cautious deep dive helps me ensure no hidden vulnerabilities are overlooked across contract boundaries.
[codex:1046196] exec
[codex:1046196] /bin/bash -lc "sed -n '4877,5115p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-vmovw0u1 succeeded in 6ms:
[codex:1046196] FILE: contracts/contracts/lib/DragonStake.sol
[codex:1046196] ================================================================================
[codex:1046196] // SPDX-License-Identifier: UNLICENSED
[codex:1046196] pragma solidity 0.8.20;
[codex:1046196]
[codex:1046196] // OpenZeppelin
[codex:1046196] import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1046196] import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1046196] import "@openzeppelin/contracts/utils/Address.sol";
[codex:1046196] import "@openzeppelin/contracts/access/Ownable.sol";
[codex:1046196]
[codex:1046196] // Library
[codex:1046196] import "./interfaces/ITitanX.sol";
[codex:1046196] import "../DragonX.sol";
[codex:1046196] import "./Constants.sol";
[codex:1046196]
[codex:1046196] /**
[codex:1046196] * @title A contract managed and deployed by DragonX to initialise the maximum amount of stakes per address
[codex:1046196] * @author The DragonX devs
[codex:1046196] * @notice This contract is instantiated by DragonX and will not be deployed as a separate entity
[codex:1046196]
[codex:1046196] thinking
[codex:1046196] **Analyzing DragonStake and DragonX vulnerabilities**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc "sed -n '5319,5495p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-vmovw0u1 succeeded in 6ms:
[codex:1046196] FILE: contracts/contracts/lib/uniswap/Oracle.sol
[codex:1046196] ================================================================================
[codex:1046196] // SPDX-License-Identifier: UNLICENSED
[codex:1046196] pragma solidity 0.8.20;
[codex:1046196]
[codex:1046196] // Uniswap
[codex:1046196] import "@uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol";
[codex:1046196]
[codex:1046196] // OpenZeppelin
[codex:1046196] import "@openzeppelin/contracts/utils/math/Math.sol";
[codex:1046196]
[codex:1046196] /**
[codex:1046196] * @notice Adapted Uniswap V3 OracleLibrary computation to be compliant with Solidity 0.8.x and later.
[codex:1046196] *
[codex:1046196] * Documentation for Auditors:
[codex:1046196] *
[codex:1046196] * Solidity Version: Updated the Solidity version pragma to ^0.8.0. This change ensures compatibility
[codex:1046196] * with Solidity version 0.8.x.
[codex:1046196] *
[codex:1046196] * Safe Arithmetic Operations: Solidity 0.8.x automatically checks for arithmetic overflows/underflows.
[codex:1046196]
[codex:1046196] thinking
[codex:1046196] **Analyzing potential contract risks and inconsistencies**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc 'rg -n "SafeERC20" -n AUDIT_BUNDLE.txt' in /tmp/codex-multi-vmovw0u1 succeeded in 6ms:
[codex:1046196] 807: * {SafeERC20-safeTransferFrom}).
[codex:1046196] 863:FILE: contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
[codex:1046196] 866:// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/utils/SafeERC20.sol)
[codex:1046196] 875: * @title SafeERC20
[codex:1046196] 880: * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,
[codex:1046196] 883:library SafeERC20 {
[codex:1046196] 889: error SafeERC20FailedOperation(address token);
[codex:1046196] 894: error SafeERC20FailedDecreaseAllowance(address spender, uint256 currentAllowance, uint256 requestedDecrease);
[codex:1046196] 929: revert SafeERC20FailedDecreaseAllowance(spender, currentAllowance, requestedDecrease);
[codex:1046196] 962: revert SafeERC20FailedOperation(address(token));
[codex:1046196] 2621: using SafeERC20 for IERC20;
[codex:1046196] 2622: using SafeERC20 for IWETH9;
[codex:1046196] 2623: using SafeERC20 for DragonX;
[codex:1046196] 3439:import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1046196] 3456: using SafeERC20 for IERC20;
[codex:1046196] 3457: using SafeERC20 for ITitanX;
[codex:1046196] 4390: using SafeERC20 for IERC20;
[codex:1046196] 4391: using SafeERC20 for IWETH9;
[codex:1046196] 4884:import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1046196] 4899: using SafeERC20 for IERC20;
[codex:1046196]
[codex:1046196]
[codex:1046196] thinking
[codex:1046196] **Analyzing SafeERC20 imports and access controls**
[codex:1046196] thinking
[codex:1046196] **Examining delegatecall and time-based logic**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc 'rg -n "delegatecall" AUDIT_BUNDLE.txt' in /tmp/codex-multi-vmovw0u1 succeeded in 6ms:
[codex:1046196] 1091: (bool success, bytes memory returndata) = target.delegatecall(data);
[codex:1046196]
[codex:1046196]
[codex:1046196] thinking
[codex:1046196] **Analyzing oracle manipulation risk and contract behaviors**
[codex:1046196] thinking
[codex:1046196] **Evaluating staking and transaction origin protections**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc "nl -ba contracts/contracts/DragonBuyAndBurn.sol | sed -n '150,260p'" in /tmp/codex-multi-vmovw0u1 succeeded in 6ms:
[codex:1046196] 150 address indexed caller
[codex:1046196] 151 );
[codex:1046196] 152
[codex:1046196] 153 // -----------------------------------------
[codex:1046196] 154 // Errors
[codex:1046196] 155 // -----------------------------------------
[codex:1046196] 156 /**
[codex:1046196] 157 * @dev Thrown when the provided address is address(0)
[codex:1046196] 158 */
[codex:1046196] 159 error InvalidDragonAddress();
[codex:1046196] 160
[codex:1046196] 161 /**
[codex:1046196] 162 * @dev Thrown when the function caller is not authorized or expected.
[codex:1046196] 163 */
[codex:1046196] 164 error InvalidCaller();
[codex:1046196] 165
[codex:1046196] 166 /**
[codex:1046196] 167 * @dev Thrown when trying to buy and burn DragonX but the cooldown period is still active.
[codex:1046196] 168 */
[codex:1046196] 169 error CooldownPeriodActive();
[codex:1046196]
[codex:1046196] thinking
[codex:1046196] **Adding line numbers to specific functions**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc "nl -ba contracts/contracts/DragonBuyAndBurn.sol | sed -n '350,520p'" in /tmp/codex-multi-vmovw0u1 succeeded in 6ms:
[codex:1046196] 350 (uint256 amount0, uint256 amount1) = _collectFees();
[codex:1046196] 351
[codex:1046196] 352 uint256 dragon;
[codex:1046196] 353 uint256 titan;
[codex:1046196] 354
[codex:1046196] 355 if (dragonAddress_ < titanAddress_) {
[codex:1046196] 356 dragon = amount0;
[codex:1046196] 357 titan = amount1;
[codex:1046196] 358 } else {
[codex:1046196] 359 titan = amount0;
[codex:1046196] 360 dragon = amount1;
[codex:1046196] 361 }
[codex:1046196] 362
[codex:1046196] 363 totalDragonFeesBurned += dragon;
[codex:1046196] 364 totalTitanFeeCollected += titan;
[codex:1046196] 365 totalDragonBurned += dragon;
[codex:1046196] 366
[codex:1046196] 367 DragonX dragonX = DragonX(payable(dragonAddress_));
[codex:1046196] 368 dragonX.burn();
[codex:1046196] 369
[codex:1046196]
[codex:1046196] thinking
[codex:1046196] **Locating functions in codebase**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc "nl -ba contracts/contracts/DragonBuyAndBurn.sol | sed -n '560,760p'" in /tmp/codex-multi-vmovw0u1 succeeded in 6ms:
[codex:1046196] 560
[codex:1046196] 561 uint160 sqrtPriceX96;
[codex:1046196] 562 if (secondsAgo == 0) {
[codex:1046196] 563 // Default to current price
[codex:1046196] 564 IUniswapV3Pool pool = IUniswapV3Pool(poolAddress);
[codex:1046196] 565 (sqrtPriceX96, , , , , , ) = pool.slot0();
[codex:1046196] 566 } else {
[codex:1046196] 567 // Consult the Oracle Library for TWAP
[codex:1046196] 568 (int24 arithmeticMeanTick, ) = OracleLibrary.consult(
[codex:1046196] 569 poolAddress,
[codex:1046196] 570 secondsAgo
[codex:1046196] 571 );
[codex:1046196] 572
[codex:1046196] 573 // Convert tick to sqrtPriceX96
[codex:1046196] 574 sqrtPriceX96 = TickMath.getSqrtRatioAtTick(arithmeticMeanTick);
[codex:1046196] 575 }
[codex:1046196] 576
[codex:1046196] 577 return
[codex:1046196] 578 OracleLibrary.getQuoteForSqrtRatioX96(
[codex:1046196] 579 sqrtPriceX96,
[codex:1046196]
[codex:1046196] thinking
[codex:1046196] **Identifying related code in TitanBuy**
[codex:1046196] exec
[codex:1046196] /bin/bash -lc "nl -ba contracts/contracts/TitanBuy.sol | sed -n '280,420p'" in /tmp/codex-multi-vmovw0u1 succeeded in 6ms:
[codex:1046196] 280 function totalWethForBuy() external view returns (uint256 balance) {
[codex:1046196] 281 return IERC20(WETH9_ADDRESS).balanceOf(address(this));
[codex:1046196] 282 }
[codex:1046196] 283
[codex:1046196] 284 /**
[codex:1046196] 285 * @dev Calculates the incentive fee for executing the buyTitanX function.
[codex:1046196] 286 * The fee is computed based on the WETH amount designated for the next TitanX purchase,
[codex:1046196] 287 * using the `wethForNextBuy` function, and applying a predefined incentive fee rate.
[codex:1046196] 288 *
[codex:1046196] 289 * @notice Used to determine the incentive fee for running the buyTitanX function.
[codex:1046196] 290 *
[codex:1046196] 291 * @return fee The calculated incentive fee, represented as a uint256.
[codex:1046196] 292 * This value is calculated by taking the product of `wethForNextBuy()` and
[codex:1046196] 293 * `INCENTIVE_FEE`, then dividing by `BASIS` to normalize the fee calculation.
[codex:1046196] 294 */
[codex:1046196] 295 function incentiveFeeForRunningBuyTitanX()
[codex:1046196] 296 external
[codex:1046196] 297 view
[codex:1046196] 298 returns (uint256 fee)
[codex:1046196] 299 {
[codex:1046196]
[codex:1046196] thinking
[codex:1046196] **Analyzing oracle manipulation and attack severity**
[codex:1046196]
[codex:1046196] I'm weighing the severity of a price manipulation attack that exploits fallback to spot price when TWAP isn't available, balancing potential losses against caps and MEV behavior. I'm also considering other findings related to DoS and checking for issues in key vulnerability categories, while aiming to match a JSON output schema for reporting.
[codex:1046196] exec
[codex:1046196] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-vmovw0u1 succeeded in 5ms:
[codex:1046196] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:1046196]
[codex:1046196] thinking
[codex:1046196] **Composing structured JSON findings**
[codex:1046196] codex
[codex:1046196] {"no_findings":false,"summary":"Found 1 issue: spot-price fallback in TWAP quoting can be manipulated to extract value from buyback swaps when observations are insufficient.","findings":[{"severity":"medium","category":"oracle","title":"Spot-price fallback in TWAP quotes enables sandwiching of buybacks when observations are insufficient","exploit_scenario":"If the pool is newly initialized or observation history is too short, `oldestObservation` can be zero, causing the quote to fall back to the current `slot0` price. An attacker can manipulate the pool price within the block, call `buyTitanX()` or `buyAndBurnDragonX()` from an EOA, and then back-run to restore price, profiting from the protocol’s WETH spent at the manipulated price (bounded per swap but repeatable each interval).","recommendation":"Require a minimum observation age (e.g., revert if `oldestObservation < minTwa`) and only allow swaps once TWAP history is available. Alternatively, enforce a hard minimum TWAP window, add a secondary oracle/sanity check, or use `sqrtPriceLimitX96`/price-impact caps to prevent spot-price manipulation.","evidence":"Both buy contracts clamp the TWAP window to the oldest observation and fall back to spot price when `secondsAgo == 0`, which then feeds the minimum-out calculations for swaps.","locations":["contracts/contracts/DragonBuyAndBurn.sol:561","contracts/contracts/DragonBuyAndBurn.sol:623","contracts/contracts/TitanBuy.sol:378","contracts/contracts/TitanBuy.sol:389"]}]}
[codex:1046196] tokens used
[codex:1046196] 80,004
[codex:1046196] {"no_findings":false,"summary":"Found 1 issue: spot-price fallback in TWAP quoting can be manipulated to extract value from buyback swaps when observations are insufficient.","findings":[{"severity":"medium","category":"oracle","title":"Spot-price fallback in TWAP quotes enables sandwiching of buybacks when observations are insufficient","exploit_scenario":"If the pool is newly initialized or observation history is too short, `oldestObservation` can be zero, causing the quote to fall back to the current `slot0` price. An attacker can manipulate the pool price within the block, call `buyTitanX()` or `buyAndBurnDragonX()` from an EOA, and then back-run to restore price, profiting from the protocol’s WETH spent at the manipulated price (bounded per swap but repeatable each interval).","recommendation":"Require a minimum observation age (e.g., revert if `oldestObservation < minTwa`) and only allow swaps once TWAP history is available. Alternatively, enforce a hard minimum TWAP window, add a secondary oracle/sanity check, or use `sqrtPriceLimitX96`/price-impact caps to prevent spot-price manipulation.","evidence":"Both buy contracts clamp the TWAP window to the oldest observation and fall back to spot price when `secondsAgo == 0`, which then feeds the minimum-out calculations for swaps.","locations":["contracts/contracts/DragonBuyAndBurn.sol:561","contracts/contracts/DragonBuyAndBurn.sol:623","contracts/contracts/TitanBuy.sol:378","contracts/contracts/TitanBuy.sol:389"]}]}
{
"codex": {
"ran_at": "2025-12-28T15:12:33.683059+00:00",
"returncode": 0
},
"summary": "Found 1 issue: spot-price fallback in TWAP quoting can be manipulated to extract value from buyback swaps when observations are insufficient.",
"raw_final": {
"summary": "Found 1 issue: spot-price fallback in TWAP quoting can be manipulated to extract value from buyback swaps when observations are insufficient.",
"findings": [
{
"title": "Spot-price fallback in TWAP quotes enables sandwiching of buybacks when observations are insufficient",
"category": "oracle",
"evidence": "Both buy contracts clamp the TWAP window to the oldest observation and fall back to spot price when `secondsAgo == 0`, which then feeds the minimum-out calculations for swaps.",
"severity": "medium",
"locations": [
"contracts/contracts/DragonBuyAndBurn.sol:561",
"contracts/contracts/DragonBuyAndBurn.sol:623",
"contracts/contracts/TitanBuy.sol:378",
"contracts/contracts/TitanBuy.sol:389"
],
"recommendation": "Require a minimum observation age (e.g., revert if `oldestObservation < minTwa`) and only allow swaps once TWAP history is available. Alternatively, enforce a hard minimum TWAP window, add a secondary oracle/sanity check, or use `sqrtPriceLimitX96`/price-impact caps to prevent spot-price manipulation.",
"exploit_scenario": "If the pool is newly initialized or observation history is too short, `oldestObservation` can be zero, causing the quote to fall back to the current `slot0` price. An attacker can manipulate the pool price within the block, call `buyTitanX()` or `buyAndBurnDragonX()` from an EOA, and then back-run to restore price, profiting from the protocol\u2019s WETH spent at the manipulated price (bounded per swap but repeatable each interval)."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x01d1 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x8c14a5d6 00000019: GT 0000001a: PUSH2 0x00f7 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xd43e158c 00000024: GT 00000025: PUSH2 0x0095 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xe70b7d09 0000002f: GT 00000030: PUSH2 0x0064 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xe70b7d09 0000003a: EQ 0000003b: PUSH2 0x05a0 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xefdcbe6c 00000045: EQ 00000046: PUSH2 0x05b6 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xf0fa55a9 00000050: EQ 00000051: PUSH2 0x05d6 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xf2fde38b 0000005b: EQ 0000005c: PUSH2 0x05f6 0000005f: JUMPI 00000060: PUSH2 0x025c 00000063: JUMP 00000064: JUMPDEST 00000065: DUP1 00000066: PUSH4 0xd43e158c 0000006b: EQ 0000006c: PUSH2 0x0537 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0xd8186458 00000076: EQ 00000077: PUSH2 0x0557 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xdf79d752 00000081: EQ 00000082: PUSH2 0x056c 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0xe30c3978 0000008c: EQ 0000008d: PUSH2 0x0582 00000090: JUMPI 00000091: PUSH2 0x025c 00000094: JUMP 00000095: JUMPDEST 00000096: DUP1 00000097: PUSH4 0x9fafc686 0000009c: GT 0000009d: PUSH2 0x00d1 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0x9fafc686 000000a7: EQ 000000a8: PUSH2 0x04cd 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0xb35ec4fa 000000b2: EQ 000000b3: PUSH2 0x04e2 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0xbc7576d3 000000bd: EQ 000000be: PUSH2 0x0502 000000c1: JUMPI 000000c2: DUP1 000000c3: PUSH4 0xc8796572 000000c8: EQ 000000c9: PUSH2 0x0522 000000cc: JUMPI 000000cd: PUSH2 0x025c 000000d0: JUMP 000000d1: JUMPDEST 000000d2: DUP1 000000d3: PUSH4 0x8c14a5d6 000000d8: EQ 000000d9: PUSH2 0x0465 000000dc: JUMPI 000000dd: DUP1 000000de: PUSH4 0x8da5cb5b 000000e3: EQ 000000e4: PUSH2 0x0485 000000e7: JUMPI 000000e8: DUP1 000000e9: PUSH4 0x947a36fb 000000ee: EQ 000000ef: PUSH2 0x04b7 000000f2: JUMPI 000000f3: PUSH2 0x025c 000000f6: JUMP 000000f7: JUMPDEST 000000f8: DUP1 000000f9: PUSH4 0x42798394 000000fe: GT 000000ff: PUSH2 0x016f 00000102: JUMPI 00000103: DUP1 00000104: PUSH4 0x658a3b3c 00000109: GT 0000010a: PUSH2 0x013e 0000010d: JUMPI 0000010e: DUP1 0000010f: PUSH4 0x658a3b3c 00000114: EQ 00000115: PUSH2 0x0405 00000118: JUMPI 00000119: DUP1 0000011a: PUSH4 0x715018a6 0000011f: EQ 00000120: PUSH2 0x0425 00000123: JUMPI 00000124: DUP1 00000125: PUSH4 0x79ba5097 0000012a: EQ 0000012b: PUSH2 0x043a 0000012e: JUMPI 0000012f: DUP1 00000130: PUSH4 0x81210531 00000135: EQ 00000136: PUSH2 0x044f 00000139: JUMPI 0000013a: PUSH2 0x025c 0000013d: JUMP 0000013e: JUMPDEST 0000013f: DUP1 00000140: PUSH4 0x42798394 00000145: EQ 00000146: PUSH2 0x03a4 00000149: JUMPI 0000014a: DUP1 0000014b: PUSH4 0x49f7e6c6 00000150: EQ 00000151: PUSH2 0x03c4 00000154: JUMPI 00000155: DUP1 00000156: PUSH4 0x4dfb82aa 0000015b: EQ 0000015c: PUSH2 0x03da 0000015f: JUMPI 00000160: DUP1 00000161: PUSH4 0x5ed88b84 00000166: EQ 00000167: PUSH2 0x03f0 0000016a: JUMPI 0000016b: PUSH2 0x025c 0000016e: JUMP 0000016f: JUMPDEST 00000170: DUP1 00000171: PUSH4 0x2e3d4400 00000176: GT 00000177: PUSH2 0x01ab 0000017a: JUMPI 0000017b: DUP1 0000017c: PUSH4 0x2e3d4400 00000181: EQ 00000182: PUSH2 0x0339 00000185: JUMPI 00000186: DUP1 00000187: PUSH4 0x3831fc3c 0000018c: EQ 0000018d: PUSH2 0x0359 00000190: JUMPI 00000191: DUP1 00000192: PUSH4 0x3db379a8 00000197: EQ 00000198: PUSH2 0x036e 0000019b: JUMPI 0000019c: DUP1 0000019d: PUSH4 0x3e032a3b 000001a2: EQ 000001a3: PUSH2 0x038e 000001a6: JUMPI 000001a7: PUSH2 0x025c 000001aa: JUMP 000001ab: JUMPDEST 000001ac: DUP1 000001ad: PUSH4 0x098dada5 000001b2: EQ 000001b3: PUSH2 0x02d0 000001b6: JUMPI 000001b7: DUP1 000001b8: PUSH4 0x0b1c963a 000001bd: EQ 000001be: PUSH2 0x02f0 000001c1: JUMPI 000001c2: DUP1 000001c3: PUSH4 0x1830893b 000001c8: EQ 000001c9: PUSH2 0x0323 000001cc: JUMPI 000001cd: PUSH2 0x025c 000001d0: JUMP 000001d1: JUMPDEST 000001d2: CALLDATASIZE 000001d3: PUSH2 0x025c 000001d6: JUMPI 000001d7: CALLER 000001d8: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 000001ed: EQ 000001ee: PUSH2 0x025a 000001f1: JUMPI 000001f2: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000207: PUSH1 0x01 00000209: PUSH1 0x01 0000020b: PUSH1 0xa0 0000020d: SHL 0000020e: SUB 0000020f: AND 00000210: PUSH4 0xd0e30db0 00000215: CALLVALUE 00000216: PUSH1 0x40 00000218: MLOAD 00000219: DUP3 0000021a: PUSH4 0xffffffff 0000021f: AND 00000220: PUSH1 0xe0 00000222: SHL 00000223: DUP2 00000224: MSTORE 00000225: PUSH1 0x04 00000227: ADD 00000228: PUSH1 0x00 0000022a: PUSH1 0x40 0000022c: MLOAD 0000022d: DUP1 0000022e: DUP4 0000022f: SUB 00000230: DUP2 00000231: DUP6 00000232: DUP9 00000233: DUP1 00000234: EXTCODESIZE 00000235: ISZERO 00000236: DUP1 00000237: ISZERO 00000238: PUSH2 0x0240 0000023b: JUMPI 0000023c: PUSH1 0x00 0000023e: DUP1 0000023f: REVERT 00000240: JUMPDEST 00000241: POP 00000242: GAS 00000243: CALL 00000244: ISZERO 00000245: DUP1 00000246: ISZERO 00000247: PUSH2 0x0254 0000024a: JUMPI 0000024b: RETURNDATASIZE 0000024c: PUSH1 0x00 0000024e: DUP1 0000024f: RETURNDATACOPY 00000250: RETURNDATASIZE 00000251: PUSH1 0x00 00000253: REVERT 00000254: JUMPDEST 00000255: POP 00000256: POP 00000257: POP 00000258: POP 00000259: POP 0000025a: JUMPDEST 0000025b: STOP 0000025c: JUMPDEST 0000025d: CALLVALUE 0000025e: DUP1 0000025f: ISZERO 00000260: PUSH2 0x0268 00000263: JUMPI 00000264: PUSH1 0x00 00000266: DUP1 00000267: REVERT 00000268: JUMPDEST 00000269: POP 0000026a: PUSH1 0x40 0000026c: MLOAD 0000026d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000028e: DUP2 0000028f: MSTORE 00000290: PUSH1 0x20 00000292: PUSH1 0x04 00000294: DUP3 00000295: ADD 00000296: MSTORE 00000297: PUSH1 0x12 00000299: PUSH1 0x24 0000029b: DUP3 0000029c: ADD 0000029d: MSTORE 0000029e: PUSH32 0x46616c6c6261636b207472696767657265640000000000000000000000000000 000002bf: PUSH1 0x44 000002c1: DUP3 000002c2: ADD 000002c3: MSTORE 000002c4: PUSH1 0x64 000002c6: ADD 000002c7: JUMPDEST 000002c8: PUSH1 0x40 000002ca: MLOAD 000002cb: DUP1 000002cc: SWAP2 000002cd: SUB 000002ce: SWAP1 000002cf: REVERT 000002d0: JUMPDEST 000002d1: CALLVALUE 000002d2: DUP1 000002d3: ISZERO 000002d4: PUSH2 0x02dc 000002d7: JUMPI 000002d8: PUSH1 0x00 000002da: DUP1 000002db: REVERT 000002dc: JUMPDEST 000002dd: POP 000002de: PUSH2 0x025a 000002e1: PUSH2 0x02eb 000002e4: CALLDATASIZE 000002e5: PUSH1 0x04 000002e7: PUSH2 0x30cb 000002ea: JUMP 000002eb: JUMPDEST 000002ec: PUSH2 0x0616 000002ef: JUMP 000002f0: JUMPDEST 000002f1: CALLVALUE 000002f2: DUP1 000002f3: ISZERO 000002f4: PUSH2 0x02fc 000002f7: JUMPI 000002f8: PUSH1 0x00 000002fa: DUP1 000002fb: REVERT 000002fc: JUMPDEST 000002fd: POP 000002fe: PUSH2 0x0310 00000301: PUSH2 0x030b 00000304: CALLDATASIZE 00000305: PUSH1 0x04 00000307: PUSH2 0x30cb 0000030a: JUMP 0000030b: JUMPDEST 0000030c: PUSH2 0x0623 0000030f: JUMP 00000310: JUMPDEST 00000311: PUSH1 0x40 00000313: MLOAD 00000314: SWAP1 00000315: DUP2 00000316: MSTORE 00000317: PUSH1 0x20 00000319: ADD 0000031a: JUMPDEST 0000031b: PUSH1 0x40 0000031d: MLOAD 0000031e: DUP1 0000031f: SWAP2 00000320: SUB 00000321: SWAP1 00000322: RETURN 00000323: JUMPDEST 00000324: CALLVALUE 00000325: DUP1 00000326: ISZERO 00000327: PUSH2 0x032f 0000032a: JUMPI 0000032b: PUSH1 0x00 0000032d: DUP1 0000032e: REVERT 0000032f: JUMPDEST 00000330: POP 00000331: PUSH2 0x0310 00000334: PUSH1 0x06 00000336: SLOAD 00000337: DUP2 00000338: JUMP 00000339: JUMPDEST 0000033a: CALLVALUE 0000033b: DUP1 0000033c: ISZERO 0000033d: PUSH2 0x0345 00000340: JUMPI 00000341: PUSH1 0x00 00000343: DUP1 00000344: REVERT 00000345: JUMPDEST 00000346: POP 00000347: PUSH2 0x0310 0000034a: PUSH2 0x0354 0000034d: CALLDATASIZE 0000034e: PUSH1 0x04 00000350: PUSH2 0x30cb 00000353: JUMP 00000354: JUMPDEST 00000355: PUSH2 0x0777 00000358: JUMP 00000359: JUMPDEST 0000035a: CALLVALUE 0000035b: DUP1 0000035c: ISZERO 0000035d: PUSH2 0x0365 00000360: JUMPI 00000361: PUSH1 0x00 00000363: DUP1 00000364: REVERT 00000365: JUMPDEST 00000366: POP 00000367: PUSH2 0x0310 0000036a: PUSH2 0x08e9 0000036d: JUMP 0000036e: JUMPDEST 0000036f: CALLVALUE 00000370: DUP1 00000371: ISZERO 00000372: PUSH2 0x037a 00000375: JUMPI 00000376: PUSH1 0x00 00000378: DUP1 00000379: REVERT 0000037a: JUMPDEST 0000037b: POP 0000037c: PUSH2 0x025a 0000037f: PUSH2 0x0389 00000382: CALLDATASIZE 00000383: PUSH1 0x04 00000385: PUSH2 0x30f6 00000388: JUMP 00000389: JUMPDEST 0000038a: PUSH2 0x0da1 0000038d: JUMP 0000038e: JUMPDEST 0000038f: CALLVALUE 00000390: DUP1 00000391: ISZERO 00000392: PUSH2 0x039a 00000395: JUMPI 00000396: PUSH1 0x00 00000398: DUP1 00000399: REVERT 0000039a: JUMPDEST 0000039b: POP 0000039c: PUSH2 0x0310 0000039f: PUSH1 0x04 000003a1: SLOAD 000003a2: DUP2 000003a3: JUMP 000003a4: JUMPDEST 000003a5: CALLVALUE 000003a6: DUP1 000003a7: ISZERO 000003a8: PUSH2 0x03b0 000003ab: JUMPI 000003ac: PUSH1 0x00 000003ae: DUP1 000003af: REVERT 000003b0: JUMPDEST 000003b1: POP 000003b2: PUSH2 0x025a 000003b5: PUSH2 0x03bf 000003b8: CALLDATASIZE 000003b9: PUSH1 0x04 000003bb: PUSH2 0x30cb 000003be: JUMP 000003bf: JUMPDEST 000003c0: PUSH2 0x0e6c 000003c3: JUMP 000003c4: JUMPDEST 000003c5: CALLVALUE 000003c6: DUP1 000003c7: ISZERO 000003c8: PUSH2 0x03d0 000003cb: JUMPI 000003cc: PUSH1 0x00 000003ce: DUP1 000003cf: REVERT 000003d0: JUMPDEST 000003d1: POP 000003d2: PUSH2 0x0310 000003d5: PUSH1 0x0a 000003d7: SLOAD 000003d8: DUP2 000003d9: JUMP 000003da: JUMPDEST 000003db: CALLVALUE 000003dc: DUP1 000003dd: ISZERO 000003de: PUSH2 0x03e6 000003e1: JUMPI 000003e2: PUSH1 0x00 000003e4: DUP1 000003e5: REVERT 000003e6: JUMPDEST 000003e7: POP 000003e8: PUSH2 0x0310 000003eb: PUSH1 0x08 000003ed: SLOAD 000003ee: DUP2 000003ef: JUMP 000003f0: JUMPDEST 000003f1: CALLVALUE 000003f2: DUP1 000003f3: ISZERO 000003f4: PUSH2 0x03fc 000003f7: JUMPI 000003f8: PUSH1 0x00 000003fa: DUP1 000003fb: REVERT 000003fc: JUMPDEST 000003fd: POP 000003fe: PUSH2 0x0310 00000401: PUSH2 0x11bd 00000404: JUMP 00000405: JUMPDEST 00000406: CALLVALUE 00000407: DUP1 00000408: ISZERO 00000409: PUSH2 0x0411 0000040c: JUMPI 0000040d: PUSH1 0x00 0000040f: DUP1 00000410: REVERT 00000411: JUMPDEST 00000412: POP 00000413: PUSH2 0x025a 00000416: PUSH2 0x0420 00000419: CALLDATASIZE 0000041a: PUSH1 0x04 0000041c: PUSH2 0x3128 0000041f: JUMP 00000420: JUMPDEST 00000421: PUSH2 0x1251 00000424: JUMP 00000425: JUMPDEST 00000426: CALLVALUE 00000427: DUP1 00000428: ISZERO 00000429: PUSH2 0x0431 0000042c: JUMPI 0000042d: PUSH1 0x00 0000042f: DUP1 00000430: REVERT 00000431: JUMPDEST 00000432: POP 00000433: PUSH2 0x025a 00000436: PUSH2 0x12d3 00000439: JUMP 0000043a: JUMPDEST 0000043b: CALLVALUE 0000043c: DUP1 0000043d: ISZERO 0000043e: PUSH2 0x0446 00000441: JUMPI 00000442: PUSH1 0x00 00000444: DUP1 00000445: REVERT 00000446: JUMPDEST 00000447: POP 00000448: PUSH2 0x025a 0000044b: PUSH2 0x12e7 0000044e: JUMP 0000044f: JUMPDEST 00000450: CALLVALUE 00000451: DUP1 00000452: ISZERO 00000453: PUSH2 0x045b 00000456: JUMPI 00000457: PUSH1 0x00 00000459: DUP1 0000045a: REVERT 0000045b: JUMPDEST 0000045c: POP 0000045d: PUSH2 0x0310 00000460: PUSH1 0x09 00000462: SLOAD 00000463: DUP2 00000464: JUMP 00000465: JUMPDEST 00000466: CALLVALUE 00000467: DUP1 00000468: ISZERO 00000469: PUSH2 0x0471 0000046c: JUMPI 0000046d: PUSH1 0x00 0000046f: DUP1 00000470: REVERT 00000471: JUMPDEST 00000472: POP 00000473: PUSH2 0x025a 00000476: PUSH2 0x0480 00000479: CALLDATASIZE 0000047a: PUSH1 0x04 0000047c: PUSH2 0x30f6 0000047f: JUMP 00000480: JUMPDEST 00000481: PUSH2 0x1344 00000484: JUMP 00000485: JUMPDEST 00000486: CALLVALUE 00000487: DUP1 00000488: ISZERO 00000489: PUSH2 0x0491 0000048c: JUMPI 0000048d: PUSH1 0x00 0000048f: DUP1 00000490: REVERT 00000491: JUMPDEST 00000492: POP 00000493: PUSH1 0x00 00000495: SLOAD 00000496: PUSH1 0x01 00000498: PUSH1 0x01 0000049a: PUSH1 0xa0 0000049c: SHL 0000049d: SUB 0000049e: AND 0000049f: JUMPDEST 000004a0: PUSH1 0x40 000004a2: MLOAD 000004a3: PUSH1 0x01 000004a5: PUSH1 0x01 000004a7: PUSH1 0xa0 000004a9: SHL 000004aa: SUB 000004ab: SWAP1 000004ac: SWAP2 000004ad: AND 000004ae: DUP2 000004af: MSTORE 000004b0: PUSH1 0x20 000004b2: ADD 000004b3: PUSH2 0x031a 000004b6: JUMP 000004b7: JUMPDEST 000004b8: CALLVALUE 000004b9: DUP1 000004ba: ISZERO 000004bb: PUSH2 0x04c3 000004be: JUMPI 000004bf: PUSH1 0x00 000004c1: DUP1 000004c2: REVERT 000004c3: JUMPDEST 000004c4: POP 000004c5: PUSH2 0x0310 000004c8: PUSH1 0x0b 000004ca: SLOAD 000004cb: DUP2 000004cc: JUMP 000004cd: JUMPDEST 000004ce: CALLVALUE 000004cf: DUP1 000004d0: ISZERO 000004d1: PUSH2 0x04d9 000004d4: JUMPI 000004d5: PUSH1 0x00 000004d7: DUP1 000004d8: REVERT 000004d9: JUMPDEST 000004da: POP 000004db: PUSH2 0x0310 000004de: PUSH2 0x1407 000004e1: JUMP 000004e2: JUMPDEST 000004e3: CALLVALUE 000004e4: DUP1 000004e5: ISZERO 000004e6: PUSH2 0x04ee 000004e9: JUMPI 000004ea: PUSH1 0x00 000004ec: DUP1 000004ed: REVERT 000004ee: JUMPDEST 000004ef: POP 000004f0: PUSH1 0x03 000004f2: SLOAD 000004f3: PUSH2 0x049f 000004f6: SWAP1 000004f7: PUSH1 0x01 000004f9: PUSH1 0x01 000004fb: PUSH1 0xa0 000004fd: SHL 000004fe: SUB 000004ff: AND 00000500: DUP2 00000501: JUMP 00000502: JUMPDEST 00000503: CALLVALUE 00000504: DUP1 00000505: ISZERO 00000506: PUSH2 0x050e 00000509: JUMPI 0000050a: PUSH1 0x00 0000050c: DUP1 0000050d: REVERT 0000050e: JUMPDEST 0000050f: POP 00000510: PUSH2 0x025a 00000513: PUSH2 0x051d 00000516: CALLDATASIZE 00000517: PUSH1 0x04 00000519: PUSH2 0x30cb 0000051c: JUMP 0000051d: JUMPDEST 0000051e: PUSH2 0x14af 00000521: JUMP 00000522: JUMPDEST 00000523: CALLVALUE 00000524: DUP1 00000525: ISZERO 00000526: PUSH2 0x052e 00000529: JUMPI 0000052a: PUSH1 0x00 0000052c: DUP1 0000052d: REVERT 0000052e: JUMPDEST 0000052f: POP 00000530: PUSH2 0x025a 00000533: PUSH2 0x1535 00000536: JUMP 00000537: JUMPDEST 00000538: CALLVALUE 00000539: DUP1 0000053a: ISZERO 0000053b: PUSH2 0x0543 0000053e: JUMPI 0000053f: PUSH1 0x00 00000541: DUP1 00000542: REVERT 00000543: JUMPDEST 00000544: POP 00000545: PUSH2 0x0310 00000548: PUSH2 0x0552 0000054b: CALLDATASIZE 0000054c: PUSH1 0x04 0000054e: PUSH2 0x30cb 00000551: JUMP 00000552: JUMPDEST 00000553: PUSH2 0x16f0 00000556: JUMP 00000557: JUMPDEST 00000558: CALLVALUE 00000559: DUP1 0000055a: ISZERO 0000055b: PUSH2 0x0563 0000055e: JUMPI 0000055f: PUSH1 0x00 00000561: DUP1 00000562: REVERT 00000563: JUMPDEST 00000564: POP 00000565: PUSH2 0x0310 00000568: PUSH2 0x1760 0000056b: JUMP 0000056c: JUMPDEST 0000056d: CALLVALUE 0000056e: DUP1 0000056f: ISZERO 00000570: PUSH2 0x0578 00000573: JUMPI 00000574: PUSH1 0x00 00000576: DUP1 00000577: REVERT 00000578: JUMPDEST 00000579: POP 0000057a: PUSH2 0x0310 0000057d: PUSH1 0x05 0000057f: SLOAD 00000580: DUP2 00000581: JUMP 00000582: JUMPDEST 00000583: CALLVALUE 00000584: DUP1 00000585: ISZERO 00000586: PUSH2 0x058e 00000589: JUMPI 0000058a: PUSH1 0x00 0000058c: DUP1 0000058d: REVERT 0000058e: JUMPDEST 0000058f: POP 00000590: PUSH1 0x01 00000592: SLOAD 00000593: PUSH1 0x01 00000595: PUSH1 0x01 00000597: PUSH1 0xa0 00000599: SHL 0000059a: SUB 0000059b: AND 0000059c: PUSH2 0x049f 0000059f: JUMP 000005a0: JUMPDEST 000005a1: CALLVALUE 000005a2: DUP1 000005a3: ISZERO 000005a4: PUSH2 0x05ac 000005a7: JUMPI 000005a8: PUSH1 0x00 000005aa: DUP1 000005ab: REVERT 000005ac: JUMPDEST 000005ad: POP 000005ae: PUSH2 0x0310 000005b1: PUSH1 0x07 000005b3: SLOAD 000005b4: DUP2 000005b5: JUMP 000005b6: JUMPDEST 000005b7: CALLVALUE 000005b8: DUP1 000005b9: ISZERO 000005ba: PUSH2 0x05c2 000005bd: JUMPI 000005be: PUSH1 0x00 000005c0: DUP1 000005c1: REVERT 000005c2: JUMPDEST 000005c3: POP 000005c4: PUSH1 0x0c 000005c6: SLOAD 000005c7: PUSH2 0x049f 000005ca: SWAP1 000005cb: PUSH1 0x01 000005cd: PUSH1 0x01 000005cf: PUSH1 0xa0 000005d1: SHL 000005d2: SUB 000005d3: AND 000005d4: DUP2 000005d5: JUMP 000005d6: JUMPDEST 000005d7: CALLVALUE 000005d8: DUP1 000005d9: ISZERO 000005da: PUSH2 0x05e2 000005dd: JUMPI 000005de: PUSH1 0x00 000005e0: DUP1 000005e1: REVERT 000005e2: JUMPDEST 000005e3: POP 000005e4: PUSH2 0x025a 000005e7: PUSH2 0x05f1 000005ea: CALLDATASIZE 000005eb: PUSH1 0x04 000005ed: PUSH2 0x30cb 000005f0: JUMP 000005f1: JUMPDEST 000005f2: PUSH2 0x178c 000005f5: JUMP 000005f6: JUMPDEST 000005f7: CALLVALUE 000005f8: DUP1 000005f9: ISZERO 000005fa: PUSH2 0x0602 000005fd: JUMPI 000005fe: PUSH1 0x00 00000600: DUP1 00000601: REVERT 00000602: JUMPDEST 00000603: POP 00000604: PUSH2 0x025a 00000607: PUSH2 0x0611 0000060a: CALLDATASIZE 0000060b: PUSH1 0x04 0000060d: PUSH2 0x3128 00000610: JUMP 00000611: JUMPDEST 00000612: PUSH2 0x1811 00000615: JUMP 00000616: JUMPDEST 00000617: PUSH2 0x061e 0000061a: PUSH2 0x189a 0000061d: JUMP 0000061e: JUMPDEST 0000061f: PUSH1 0x09 00000621: SSTORE 00000622: JUMP 00000623: JUMPDEST 00000624: PUSH1 0x03 00000626: SLOAD 00000627: PUSH1 0x00 00000629: SWAP1 0000062a: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1 0000063f: SWAP1 00000640: PUSH1 0x01 00000642: PUSH1 0x01 00000644: PUSH1 0xa0 00000646: SHL 00000647: SUB 00000648: AND 00000649: DUP3 0000064a: PUSH2 0x0673 0000064d: PUSH20 0x1f98431c8ad98523631ae4a59f267346ea31f984 00000662: PUSH2 0x066e 00000665: DUP5 00000666: DUP7 00000667: PUSH2 0x2710 0000066a: PUSH2 0x18e0 0000066d: JUMP 0000066e: JUMPDEST 0000066f: PUSH2 0x1957 00000672: JUMP 00000673: JUMPDEST 00000674: PUSH1 0x0e 00000676: SLOAD 00000677: SWAP1 00000678: SWAP2 00000679: POP 0000067a: PUSH1 0x00 0000067c: SWAP1 0000067d: PUSH2 0x0695 00000680: SWAP1 00000681: PUSH5 0x0100000000 00000687: SWAP1 00000688: DIV 00000689: PUSH4 0xffffffff 0000068e: AND 0000068f: PUSH1 0x3c 00000691: PUSH2 0x3174 00000694: JUMP 00000695: JUMPDEST 00000696: SWAP1 00000697: POP 00000698: PUSH1 0x00 0000069a: PUSH2 0x06a2 0000069d: DUP4 0000069e: PUSH2 0x1a89 000006a1: JUMP 000006a2: JUMPDEST 000006a3: SWAP1 000006a4: POP 000006a5: DUP2 000006a6: PUSH4 0xffffffff 000006ab: AND 000006ac: DUP2 000006ad: PUSH4 0xffffffff 000006b2: AND 000006b3: LT 000006b4: ISZERO 000006b5: PUSH2 0x06bc 000006b8: JUMPI 000006b9: DUP1 000006ba: SWAP2 000006bb: POP 000006bc: JUMPDEST 000006bd: PUSH1 0x00 000006bf: DUP3 000006c0: PUSH4 0xffffffff 000006c5: AND 000006c6: PUSH1 0x00 000006c8: SUB 000006c9: PUSH2 0x0743 000006cc: JUMPI 000006cd: PUSH1 0x00 000006cf: DUP5 000006d0: SWAP1 000006d1: POP 000006d2: DUP1 000006d3: PUSH1 0x01 000006d5: PUSH1 0x01 000006d7: PUSH1 0xa0 000006d9: SHL 000006da: SUB 000006db: AND 000006dc: PUSH4 0x3850c7bd 000006e1: PUSH1 0x40 000006e3: MLOAD 000006e4: DUP2 000006e5: PUSH4 0xffffffff 000006ea: AND 000006eb: PUSH1 0xe0 000006ed: SHL 000006ee: DUP2 000006ef: MSTORE 000006f0: PUSH1 0x04 000006f2: ADD 000006f3: PUSH1 0xe0 000006f5: PUSH1 0x40 000006f7: MLOAD 000006f8: DUP1 000006f9: DUP4 000006fa: SUB 000006fb: DUP2 000006fc: DUP7 000006fd: GAS 000006fe: STATICCALL 000006ff: ISZERO 00000700: DUP1 00000701: ISZERO 00000702: PUSH2 0x070f 00000705: JUMPI 00000706: RETURNDATASIZE 00000707: PUSH1 0x00 00000709: DUP1 0000070a: RETURNDATACOPY 0000070b: RETURNDATASIZE 0000070c: PUSH1 0x00 0000070e: REVERT 0000070f: JUMPDEST 00000710: POP 00000711: POP 00000712: POP 00000713: POP 00000714: PUSH1 0x40 00000716: MLOAD 00000717: RETURNDATASIZE 00000718: PUSH1 0x1f 0000071a: NOT 0000071b: PUSH1 0x1f 0000071d: DUP3 0000071e: ADD 0000071f: AND 00000720: DUP3 00000721: ADD 00000722: DUP1 00000723: PUSH1 0x40 00000725: MSTORE 00000726: POP 00000727: DUP2 00000728: ADD 00000729: SWAP1 0000072a: PUSH2 0x0733 0000072d: SWAP2 0000072e: SWAP1 0000072f: PUSH2 0x31c3 00000732: JUMP 00000733: JUMPDEST 00000734: POP 00000735: SWAP5 00000736: SWAP7 00000737: POP 00000738: PUSH2 0x075f 0000073b: SWAP6 0000073c: POP 0000073d: POP 0000073e: POP 0000073f: POP 00000740: POP 00000741: POP 00000742: JUMP 00000743: JUMPDEST 00000744: PUSH1 0x00 00000746: PUSH2 0x074f 00000749: DUP6 0000074a: DUP6 0000074b: PUSH2 0x1ca8 0000074e: JUMP 0000074f: JUMPDEST 00000750: POP 00000751: SWAP1 00000752: POP 00000753: PUSH2 0x075b 00000756: DUP2 00000757: PUSH2 0x1f4c 0000075a: JUMP 0000075b: JUMPDEST 0000075c: SWAP2 0000075d: POP 0000075e: POP 0000075f: JUMPDEST 00000760: PUSH2 0x076b 00000763: DUP2 00000764: DUP10 00000765: DUP9 00000766: DUP9 00000767: PUSH2 0x23e9 0000076a: JUMP 0000076b: JUMPDEST 0000076c: SWAP9 0000076d: SWAP8 0000076e: POP 0000076f: POP 00000770: POP 00000771: POP 00000772: POP 00000773: POP 00000774: POP 00000775: POP 00000776: JUMP 00000777: JUMPDEST 00000778: PUSH1 0x00 0000077a: DUP1 0000077b: PUSH2 0x07c7 0000077e: PUSH20 0x1f98431c8ad98523631ae4a59f267346ea31f984 00000793: PUSH2 0x066e 00000796: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 000007ab: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1 000007c0: PUSH2 0x2710 000007c3: PUSH2 0x18e0 000007c6: JUMP 000007c7: JUMPDEST 000007c8: PUSH1 0x0e 000007ca: SLOAD 000007cb: SWAP1 000007cc: SWAP2 000007cd: POP 000007ce: PUSH1 0x00 000007d0: SWAP1 000007d1: PUSH2 0x07e1 000007d4: SWAP1 000007d5: PUSH4 0xffffffff 000007da: AND 000007db: PUSH1 0x3c 000007dd: PUSH2 0x3174 000007e0: JUMP 000007e1: JUMPDEST 000007e2: SWAP1 000007e3: POP 000007e4: PUSH1 0x00 000007e6: PUSH2 0x07ee 000007e9: DUP4 000007ea: PUSH2 0x1a89 000007ed: JUMP 000007ee: JUMPDEST 000007ef: SWAP1 000007f0: POP 000007f1: DUP2 000007f2: PUSH4 0xffffffff 000007f7: AND 000007f8: DUP2 000007f9: PUSH4 0xffffffff 000007fe: AND 000007ff: LT 00000800: ISZERO 00000801: PUSH2 0x0808 00000804: JUMPI 00000805: DUP1 00000806: SWAP2 00000807: POP 00000808: JUMPDEST 00000809: PUSH1 0x00 0000080b: DUP3 0000080c: PUSH4 0xffffffff 00000811: AND 00000812: PUSH1 0x00 00000814: SUB 00000815: PUSH2 0x088f 00000818: JUMPI 00000819: PUSH1 0x00 0000081b: DUP5 0000081c: SWAP1 0000081d: POP 0000081e: DUP1 0000081f: PUSH1 0x01 00000821: PUSH1 0x01 00000823: PUSH1 0xa0 00000825: SHL 00000826: SUB 00000827: AND 00000828: PUSH4 0x3850c7bd 0000082d: PUSH1 0x40 0000082f: MLOAD 00000830: DUP2 00000831: PUSH4 0xffffffff 00000836: AND 00000837: PUSH1 0xe0 00000839: SHL 0000083a: DUP2 0000083b: MSTORE 0000083c: PUSH1 0x04 0000083e: ADD 0000083f: PUSH1 0xe0 00000841: PUSH1 0x40 00000843: MLOAD 00000844: DUP1 00000845: DUP4 00000846: SUB 00000847: DUP2 00000848: DUP7 00000849: GAS 0000084a: STATICCALL 0000084b: ISZERO 0000084c: DUP1 0000084d: ISZERO 0000084e: PUSH2 0x085b 00000851: JUMPI 00000852: RETURNDATASIZE 00000853: PUSH1 0x00 00000855: DUP1 00000856: RETURNDATACOPY 00000857: RETURNDATASIZE 00000858: PUSH1 0x00 0000085a: REVERT 0000085b: JUMPDEST 0000085c: POP 0000085d: POP 0000085e: POP 0000085f: POP 00000860: PUSH1 0x40 00000862: MLOAD 00000863: RETURNDATASIZE 00000864: PUSH1 0x1f 00000866: NOT 00000867: PUSH1 0x1f 00000869: DUP3 0000086a: ADD 0000086b: AND 0000086c: DUP3 0000086d: ADD 0000086e: DUP1 0000086f: PUSH1 0x40 00000871: MSTORE 00000872: POP 00000873: DUP2 00000874: ADD 00000875: SWAP1 00000876: PUSH2 0x087f 00000879: SWAP2 0000087a: SWAP1 0000087b: PUSH2 0x31c3 0000087e: JUMP 0000087f: JUMPDEST 00000880: POP 00000881: SWAP5 00000882: SWAP7 00000883: POP 00000884: PUSH2 0x08ab 00000887: SWAP6 00000888: POP 00000889: POP 0000088a: POP 0000088b: POP 0000088c: POP 0000088d: POP 0000088e: JUMP 0000088f: JUMPDEST 00000890: PUSH1 0x00 00000892: PUSH2 0x089b 00000895: DUP6 00000896: DUP6 00000897: PUSH2 0x1ca8 0000089a: JUMP 0000089b: JUMPDEST 0000089c: POP 0000089d: SWAP1 0000089e: POP 0000089f: PUSH2 0x08a7 000008a2: DUP2 000008a3: PUSH2 0x1f4c 000008a6: JUMP 000008a7: JUMPDEST 000008a8: SWAP2 000008a9: POP 000008aa: POP 000008ab: JUMPDEST 000008ac: PUSH2 0x08df 000008af: DUP2 000008b0: DUP8 000008b1: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 000008c6: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1 000008db: PUSH2 0x23e9 000008de: JUMP 000008df: JUMPDEST 000008e0: SWAP7 000008e1: SWAP6 000008e2: POP 000008e3: POP 000008e4: POP 000008e5: POP 000008e6: POP 000008e7: POP 000008e8: JUMP 000008e9: JUMPDEST 000008ea: PUSH1 0x00 000008ec: PUSH2 0x08f3 000008ef: PUSH2 0x2507 000008f2: JUMP 000008f3: JUMPDEST 000008f4: PUSH1 0x03 000008f6: SLOAD 000008f7: PUSH1 0x01 000008f9: PUSH1 0x01 000008fb: PUSH1 0xa0 000008fd: SHL 000008fe: SUB 000008ff: AND 00000900: DUP1 00000901: PUSH2 0x0936 00000904: JUMPI 00000905: PUSH1 0x40 00000907: MLOAD 00000908: PUSH32 0x90a3742300000000000000000000000000000000000000000000000000000000 00000929: DUP2 0000092a: MSTORE 0000092b: PUSH1 0x04 0000092d: ADD 0000092e: PUSH1 0x40 00000930: MLOAD 00000931: DUP1 00000932: SWAP2 00000933: SUB 00000934: SWAP1 00000935: REVERT 00000936: JUMPDEST 00000937: CALLER 00000938: ORIGIN 00000939: EQ 0000093a: PUSH2 0x096f 0000093d: JUMPI 0000093e: PUSH1 0x40 00000940: MLOAD 00000941: PUSH32 0x48f5c3ed00000000000000000000000000000000000000000000000000000000 00000962: DUP2 00000963: MSTORE 00000964: PUSH1 0x04 00000966: ADD 00000967: PUSH1 0x40 00000969: MLOAD 0000096a: DUP1 0000096b: SWAP2 0000096c: SUB 0000096d: SWAP1 0000096e: REVERT 0000096f: JUMPDEST 00000970: PUSH1 0x0b 00000972: SLOAD 00000973: PUSH1 0x0a 00000975: SLOAD 00000976: PUSH2 0x097f 00000979: SWAP1 0000097a: TIMESTAMP 0000097b: PUSH2 0x325d 0000097e: JUMP 0000097f: JUMPDEST 00000980: GT 00000981: PUSH2 0x09b6 00000984: JUMPI 00000985: PUSH1 0x40 00000987: MLOAD 00000988: PUSH32 0x998d019b00000000000000000000000000000000000000000000000000000000 000009a9: DUP2 000009aa: MSTORE 000009ab: PUSH1 0x04 000009ad: ADD 000009ae: PUSH1 0x40 000009b0: MLOAD 000009b1: DUP1 000009b2: SWAP2 000009b3: SUB 000009b4: SWAP1 000009b5: REVERT 000009b6: JUMPDEST 000009b7: TIMESTAMP 000009b8: PUSH1 0x0a 000009ba: SSTORE 000009bb: PUSH1 0x40 000009bd: MLOAD 000009be: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 000009df: DUP2 000009e0: MSTORE 000009e1: ADDRESS 000009e2: PUSH1 0x04 000009e4: DUP3 000009e5: ADD 000009e6: MSTORE 000009e7: PUSH20 0xe592427a0aece92de3edee1f18e0157c05861564 000009fc: SWAP1 000009fd: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000a12: SWAP1 00000a13: PUSH1 0x00 00000a15: SWAP1 00000a16: DUP3 00000a17: SWAP1 00000a18: PUSH4 0x70a08231 00000a1d: SWAP1 00000a1e: PUSH1 0x24 00000a20: ADD 00000a21: PUSH1 0x20 00000a23: PUSH1 0x40 00000a25: MLOAD 00000a26: DUP1 00000a27: DUP4 00000a28: SUB 00000a29: DUP2 00000a2a: DUP7 00000a2b: GAS 00000a2c: STATICCALL 00000a2d: ISZERO 00000a2e: DUP1 00000a2f: ISZERO 00000a30: PUSH2 0x0a3d 00000a33: JUMPI 00000a34: RETURNDATASIZE 00000a35: PUSH1 0x00 00000a37: DUP1 00000a38: RETURNDATACOPY 00000a39: RETURNDATASIZE 00000a3a: PUSH1 0x00 00000a3c: REVERT 00000a3d: JUMPDEST 00000a3e: POP 00000a3f: POP 00000a40: POP 00000a41: POP 00000a42: PUSH1 0x40 00000a44: MLOAD 00000a45: RETURNDATASIZE 00000a46: PUSH1 0x1f 00000a48: NOT 00000a49: PUSH1 0x1f 00000a4b: DUP3 00000a4c: ADD 00000a4d: AND 00000a4e: DUP3 00000a4f: ADD 00000a50: DUP1 00000a51: PUSH1 0x40 00000a53: MSTORE 00000a54: POP 00000a55: DUP2 00000a56: ADD 00000a57: SWAP1 00000a58: PUSH2 0x0a61 00000a5b: SWAP2 00000a5c: SWAP1 00000a5d: PUSH2 0x3270 00000a60: JUMP 00000a61: JUMPDEST 00000a62: PUSH1 0x09 00000a64: SLOAD 00000a65: SWAP1 00000a66: SWAP2 00000a67: POP 00000a68: DUP1 00000a69: DUP3 00000a6a: GT 00000a6b: ISZERO 00000a6c: PUSH2 0x0a73 00000a6f: JUMPI 00000a70: DUP1 00000a71: SWAP2 00000a72: POP 00000a73: JUMPDEST 00000a74: PUSH1 0x00 00000a76: PUSH2 0x2710 00000a79: PUSH2 0x0a84 00000a7c: PUSH2 0x012c 00000a7f: DUP6 00000a80: PUSH2 0x3289 00000a83: JUMP 00000a84: JUMPDEST 00000a85: PUSH2 0x0a8e 00000a88: SWAP2 00000a89: SWAP1 00000a8a: PUSH2 0x32cf 00000a8d: JUMP 00000a8e: JUMPDEST 00000a8f: PUSH1 0x40 00000a91: MLOAD 00000a92: PUSH32 0x2e1a7d4d00000000000000000000000000000000000000000000000000000000 00000ab3: DUP2 00000ab4: MSTORE 00000ab5: PUSH1 0x04 00000ab7: DUP2 00000ab8: ADD 00000ab9: DUP3 00000aba: SWAP1 00000abb: MSTORE 00000abc: SWAP1 00000abd: SWAP2 00000abe: POP 00000abf: PUSH1 0x01 00000ac1: PUSH1 0x01 00000ac3: PUSH1 0xa0 00000ac5: SHL 00000ac6: SUB 00000ac7: DUP6 00000ac8: AND 00000ac9: SWAP1 00000aca: PUSH4 0x2e1a7d4d 00000acf: SWAP1 00000ad0: PUSH1 0x24 00000ad2: ADD 00000ad3: PUSH1 0x00 00000ad5: PUSH1 0x40 00000ad7: MLOAD 00000ad8: DUP1 00000ad9: DUP4 00000ada: SUB 00000adb: DUP2 00000adc: PUSH1 0x00 00000ade: DUP8 00000adf: DUP1 00000ae0: EXTCODESIZE 00000ae1: ISZERO 00000ae2: DUP1 00000ae3: ISZERO 00000ae4: PUSH2 0x0aec 00000ae7: JUMPI 00000ae8: PUSH1 0x00 00000aea: DUP1 00000aeb: REVERT 00000aec: JUMPDEST 00000aed: POP 00000aee: GAS 00000aef: CALL 00000af0: ISZERO 00000af1: DUP1 00000af2: ISZERO 00000af3: PUSH2 0x0b00 00000af6: JUMPI 00000af7: RETURNDATASIZE 00000af8: PUSH1 0x00 00000afa: DUP1 00000afb: RETURNDATACOPY 00000afc: RETURNDATASIZE 00000afd: PUSH1 0x00 00000aff: REVERT 00000b00: JUMPDEST 00000b01: POP 00000b02: POP 00000b03: POP 00000b04: POP 00000b05: DUP1 00000b06: DUP4 00000b07: PUSH2 0x0b10 00000b0a: SWAP2 00000b0b: SWAP1 00000b0c: PUSH2 0x325d 00000b0f: JUMP 00000b10: JUMPDEST 00000b11: SWAP3 00000b12: POP 00000b13: DUP3 00000b14: PUSH1 0x00 00000b16: SUB 00000b17: PUSH2 0x0b4c 00000b1a: JUMPI 00000b1b: PUSH1 0x40 00000b1d: MLOAD 00000b1e: PUSH32 0x9fa351b400000000000000000000000000000000000000000000000000000000 00000b3f: DUP2 00000b40: MSTORE 00000b41: PUSH1 0x04 00000b43: ADD 00000b44: PUSH1 0x40 00000b46: MLOAD 00000b47: DUP1 00000b48: SWAP2 00000b49: SUB 00000b4a: SWAP1 00000b4b: REVERT 00000b4c: JUMPDEST 00000b4d: PUSH2 0x0b60 00000b50: PUSH1 0x01 00000b52: PUSH1 0x01 00000b54: PUSH1 0xa0 00000b56: SHL 00000b57: SUB 00000b58: DUP6 00000b59: AND 00000b5a: DUP7 00000b5b: DUP6 00000b5c: PUSH2 0x2548 00000b5f: JUMP 00000b60: JUMPDEST 00000b61: PUSH1 0x40 00000b63: DUP1 00000b64: MLOAD 00000b65: PUSH32 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000 00000b86: PUSH1 0x20 00000b88: DUP3 00000b89: ADD 00000b8a: MSTORE 00000b8b: PUSH31 0x27100000000000000000000000000000000000000000000000000000000000 00000bab: PUSH1 0x34 00000bad: DUP3 00000bae: ADD 00000baf: DUP2 00000bb0: SWAP1 00000bb1: MSTORE 00000bb2: PUSH32 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1000000000000000000000000 00000bd3: PUSH1 0x37 00000bd5: DUP4 00000bd6: ADD 00000bd7: MSTORE 00000bd8: PUSH1 0x4b 00000bda: DUP3 00000bdb: ADD 00000bdc: MSTORE 00000bdd: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 00000bfe: PUSH1 0x60 00000c00: DUP10 00000c01: SWAP1 00000c02: SHL 00000c03: AND 00000c04: PUSH1 0x4e 00000c06: DUP3 00000c07: ADD 00000c08: MSTORE 00000c09: DUP2 00000c0a: MLOAD 00000c0b: PUSH1 0x42 00000c0d: DUP2 00000c0e: DUP4 00000c0f: SUB 00000c10: ADD 00000c11: DUP2 00000c12: MSTORE 00000c13: PUSH1 0x62 00000c15: SWAP1 00000c16: SWAP2 00000c17: ADD 00000c18: SWAP1 00000c19: SWAP2 00000c1a: MSTORE 00000c1b: PUSH1 0x00 00000c1d: PUSH2 0x0c25 00000c20: DUP6 00000c21: PUSH2 0x16f0 00000c24: JUMP 00000c25: JUMPDEST 00000c26: PUSH1 0x40 00000c28: DUP1 00000c29: MLOAD 00000c2a: PUSH1 0xa0 00000c2c: DUP2 00000c2d: ADD 00000c2e: DUP3 00000c2f: MSTORE 00000c30: DUP5 00000c31: DUP2 00000c32: MSTORE 00000c33: ADDRESS 00000c34: PUSH1 0x20 00000c36: DUP3 00000c37: ADD 00000c38: MSTORE 00000c39: SWAP2 00000c3a: SWAP3 00000c3b: POP 00000c3c: PUSH1 0x00 00000c3e: SWAP2 00000c3f: SWAP1 00000c40: DUP2 00000c41: ADD 00000c42: PUSH2 0x0c4c 00000c45: TIMESTAMP 00000c46: PUSH1 0x01 00000c48: PUSH2 0x32e3 00000c4b: JUMP 00000c4c: JUMPDEST 00000c4d: DUP2 00000c4e: MSTORE 00000c4f: PUSH1 0x20 00000c51: ADD 00000c52: DUP8 00000c53: DUP2 00000c54: MSTORE 00000c55: PUSH1 0x20 00000c57: ADD 00000c58: DUP4 00000c59: DUP2 00000c5a: MSTORE 00000c5b: POP 00000c5c: SWAP1 00000c5d: POP 00000c5e: DUP8 00000c5f: PUSH1 0x01 00000c61: PUSH1 0x01 00000c63: PUSH1 0xa0 00000c65: SHL 00000c66: SUB 00000c67: AND 00000c68: PUSH4 0xc04b8d59 00000c6d: DUP3 00000c6e: PUSH1 0x40 00000c70: MLOAD 00000c71: DUP3 00000c72: PUSH4 0xffffffff 00000c77: AND 00000c78: PUSH1 0xe0 00000c7a: SHL 00000c7b: DUP2 00000c7c: MSTORE 00000c7d: PUSH1 0x04 00000c7f: ADD 00000c80: PUSH2 0x0c89 00000c83: SWAP2 00000c84: SWAP1 00000c85: PUSH2 0x331a 00000c88: JUMP 00000c89: JUMPDEST 00000c8a: PUSH1 0x20 00000c8c: PUSH1 0x40 00000c8e: MLOAD 00000c8f: DUP1 00000c90: DUP4 00000c91: SUB 00000c92: DUP2 00000c93: PUSH1 0x00 00000c95: DUP8 00000c96: GAS 00000c97: CALL 00000c98: ISZERO 00000c99: DUP1 00000c9a: ISZERO 00000c9b: PUSH2 0x0ca8 00000c9e: JUMPI 00000c9f: RETURNDATASIZE 00000ca0: PUSH1 0x00 00000ca2: DUP1 00000ca3: RETURNDATACOPY 00000ca4: RETURNDATASIZE 00000ca5: PUSH1 0x00 00000ca7: REVERT 00000ca8: JUMPDEST 00000ca9: POP 00000caa: POP 00000cab: POP 00000cac: POP 00000cad: PUSH1 0x40 00000caf: MLOAD 00000cb0: RETURNDATASIZE 00000cb1: PUSH1 0x1f 00000cb3: NOT 00000cb4: PUSH1 0x1f 00000cb6: DUP3 00000cb7: ADD 00000cb8: AND 00000cb9: DUP3 00000cba: ADD 00000cbb: DUP1 00000cbc: PUSH1 0x40 00000cbe: MSTORE 00000cbf: POP 00000cc0: DUP2 00000cc1: ADD 00000cc2: SWAP1 00000cc3: PUSH2 0x0ccc 00000cc6: SWAP2 00000cc7: SWAP1 00000cc8: PUSH2 0x3270 00000ccb: JUMP 00000ccc: JUMPDEST 00000ccd: SWAP10 00000cce: POP 00000ccf: DUP9 00000cd0: PUSH1 0x01 00000cd2: PUSH1 0x01 00000cd4: PUSH1 0xa0 00000cd6: SHL 00000cd7: SUB 00000cd8: AND 00000cd9: PUSH4 0x44df8e70 00000cde: PUSH1 0x40 00000ce0: MLOAD 00000ce1: DUP2 00000ce2: PUSH4 0xffffffff 00000ce7: AND 00000ce8: PUSH1 0xe0 00000cea: SHL 00000ceb: DUP2 00000cec: MSTORE 00000ced: PUSH1 0x04 00000cef: ADD 00000cf0: PUSH1 0x00 00000cf2: PUSH1 0x40 00000cf4: MLOAD 00000cf5: DUP1 00000cf6: DUP4 00000cf7: SUB 00000cf8: DUP2 00000cf9: PUSH1 0x00 00000cfb: DUP8 00000cfc: DUP1 00000cfd: EXTCODESIZE 00000cfe: ISZERO 00000cff: DUP1 00000d00: ISZERO 00000d01: PUSH2 0x0d09 00000d04: JUMPI 00000d05: PUSH1 0x00 00000d07: DUP1 00000d08: REVERT 00000d09: JUMPDEST 00000d0a: POP 00000d0b: GAS 00000d0c: CALL 00000d0d: ISZERO 00000d0e: DUP1 00000d0f: ISZERO 00000d10: PUSH2 0x0d1d 00000d13: JUMPI 00000d14: RETURNDATASIZE 00000d15: PUSH1 0x00 00000d17: DUP1 00000d18: RETURNDATACOPY 00000d19: RETURNDATASIZE 00000d1a: PUSH1 0x00 00000d1c: REVERT 00000d1d: JUMPDEST 00000d1e: POP 00000d1f: POP 00000d20: POP 00000d21: POP 00000d22: DUP6 00000d23: PUSH1 0x05 00000d25: PUSH1 0x00 00000d27: DUP3 00000d28: DUP3 00000d29: SLOAD 00000d2a: PUSH2 0x0d33 00000d2d: SWAP2 00000d2e: SWAP1 00000d2f: PUSH2 0x32e3 00000d32: JUMP 00000d33: JUMPDEST 00000d34: SWAP3 00000d35: POP 00000d36: POP 00000d37: DUP2 00000d38: SWAP1 00000d39: SSTORE 00000d3a: POP 00000d3b: DUP10 00000d3c: PUSH1 0x06 00000d3e: PUSH1 0x00 00000d40: DUP3 00000d41: DUP3 00000d42: SLOAD 00000d43: PUSH2 0x0d4c 00000d46: SWAP2 00000d47: SWAP1 00000d48: PUSH2 0x32e3 00000d4b: JUMP 00000d4c: JUMPDEST 00000d4d: SWAP1 00000d4e: SWAP2 00000d4f: SSTORE 00000d50: POP 00000d51: PUSH2 0x0d5c 00000d54: SWAP1 00000d55: POP 00000d56: CALLER 00000d57: DUP6 00000d58: PUSH2 0x25eb 00000d5b: JUMP 00000d5c: JUMPDEST 00000d5d: PUSH1 0x40 00000d5f: MLOAD 00000d60: CALLER 00000d61: SWAP1 00000d62: DUP12 00000d63: SWAP1 00000d64: DUP9 00000d65: SWAP1 00000d66: PUSH32 0x1b6fe3d614107093562b62b9236e265cac820f430060c5eb674a70824a7435db 00000d87: SWAP1 00000d88: PUSH1 0x00 00000d8a: SWAP1 00000d8b: LOG4 00000d8c: POP 00000d8d: POP 00000d8e: POP 00000d8f: POP 00000d90: POP 00000d91: POP 00000d92: POP 00000d93: POP 00000d94: POP 00000d95: PUSH2 0x0d9e 00000d98: PUSH1 0x01 00000d9a: PUSH1 0x02 00000d9c: SSTORE 00000d9d: JUMP 00000d9e: JUMPDEST 00000d9f: SWAP1 00000da0: JUMP 00000da1: JUMPDEST 00000da2: PUSH2 0x0da9 00000da5: PUSH2 0x189a 00000da8: JUMP 00000da9: JUMPDEST 00000daa: PUSH1 0x05 00000dac: DUP2 00000dad: PUSH4 0xffffffff 00000db2: AND 00000db3: LT 00000db4: ISZERO 00000db5: DUP1 00000db6: ISZERO 00000db7: PUSH2 0x0dc7 00000dba: JUMPI 00000dbb: POP 00000dbc: PUSH1 0x3c 00000dbe: DUP2 00000dbf: PUSH4 0xffffffff 00000dc4: AND 00000dc5: GT 00000dc6: ISZERO 00000dc7: JUMPDEST 00000dc8: PUSH2 0x0e2d 00000dcb: JUMPI 00000dcc: PUSH1 0x40 00000dce: MLOAD 00000dcf: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000df0: DUP2 00000df1: MSTORE 00000df2: PUSH1 0x20 00000df4: PUSH1 0x04 00000df6: DUP3 00000df7: ADD 00000df8: MSTORE 00000df9: PUSH1 0x0a 00000dfb: PUSH1 0x24 00000dfd: DUP3 00000dfe: ADD 00000dff: MSTORE 00000e00: PUSH32 0x356d2d3168206f6e6c7900000000000000000000000000000000000000000000 00000e21: PUSH1 0x44 00000e23: DUP3 00000e24: ADD 00000e25: MSTORE 00000e26: PUSH1 0x64 00000e28: ADD 00000e29: PUSH2 0x02c7 00000e2c: JUMP 00000e2d: JUMPDEST 00000e2e: PUSH1 0x0e 00000e30: DUP1 00000e31: SLOAD 00000e32: PUSH4 0xffffffff 00000e37: SWAP1 00000e38: SWAP3 00000e39: AND 00000e3a: PUSH5 0x0100000000 00000e40: MUL 00000e41: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff 00000e62: SWAP1 00000e63: SWAP3 00000e64: AND 00000e65: SWAP2 00000e66: SWAP1 00000e67: SWAP2 00000e68: OR 00000e69: SWAP1 00000e6a: SSTORE 00000e6b: JUMP 00000e6c: JUMPDEST 00000e6d: PUSH2 0x0e74 00000e70: PUSH2 0x189a 00000e73: JUMP 00000e74: JUMPDEST 00000e75: PUSH1 0x03 00000e77: SLOAD 00000e78: PUSH1 0x01 00000e7a: PUSH1 0x01 00000e7c: PUSH1 0xa0 00000e7e: SHL 00000e7f: SUB 00000e80: AND 00000e81: DUP1 00000e82: PUSH2 0x0eb7 00000e85: JUMPI 00000e86: PUSH1 0x40 00000e88: MLOAD 00000e89: PUSH32 0x90a3742300000000000000000000000000000000000000000000000000000000 00000eaa: DUP2 00000eab: MSTORE 00000eac: PUSH1 0x04 00000eae: ADD 00000eaf: PUSH1 0x40 00000eb1: MLOAD 00000eb2: DUP1 00000eb3: SWAP2 00000eb4: SUB 00000eb5: SWAP1 00000eb6: REVERT 00000eb7: JUMPDEST 00000eb8: PUSH1 0x40 00000eba: MLOAD 00000ebb: PUSH32 0xc947449200000000000000000000000000000000000000000000000000000000 00000edc: DUP2 00000edd: MSTORE 00000ede: PUSH1 0x04 00000ee0: DUP2 00000ee1: ADD 00000ee2: DUP4 00000ee3: SWAP1 00000ee4: MSTORE 00000ee5: DUP2 00000ee6: SWAP1 00000ee7: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1 00000efc: SWAP1 00000efd: PUSH1 0x01 00000eff: PUSH1 0x01 00000f01: PUSH1 0xa0 00000f03: SHL 00000f04: SUB 00000f05: DUP4 00000f06: AND 00000f07: SWAP1 00000f08: PUSH4 0xc9474492 00000f0d: SWAP1 00000f0e: PUSH1 0x24 00000f10: ADD 00000f11: PUSH1 0x00 00000f13: PUSH1 0x40 00000f15: MLOAD 00000f16: DUP1 00000f17: DUP4 00000f18: SUB 00000f19: DUP2 00000f1a: PUSH1 0x00 00000f1c: DUP8 00000f1d: DUP1 00000f1e: EXTCODESIZE 00000f1f: ISZERO 00000f20: DUP1 00000f21: ISZERO 00000f22: PUSH2 0x0f2a 00000f25: JUMPI 00000f26: PUSH1 0x00 00000f28: DUP1 00000f29: REVERT 00000f2a: JUMPDEST 00000f2b: POP 00000f2c: GAS 00000f2d: CALL 00000f2e: ISZERO 00000f2f: DUP1 00000f30: ISZERO 00000f31: PUSH2 0x0f3e 00000f34: JUMPI 00000f35: RETURNDATASIZE 00000f36: PUSH1 0x00 00000f38: DUP1 00000f39: RETURNDATACOPY 00000f3a: RETURNDATASIZE 00000f3b: PUSH1 0x00 00000f3d: REVERT 00000f3e: JUMPDEST 00000f3f: POP 00000f40: POP 00000f41: POP 00000f42: POP 00000f43: DUP4 00000f44: DUP2 00000f45: PUSH1 0x01 00000f47: PUSH1 0x01 00000f49: PUSH1 0xa0 00000f4b: SHL 00000f4c: SUB 00000f4d: AND 00000f4e: PUSH4 0xdd62ed3e 00000f53: PUSH2 0x0f59 00000f56: CALLER 00000f57: SWAP1 00000f58: JUMP 00000f59: JUMPDEST 00000f5a: PUSH1 0x40 00000f5c: MLOAD 00000f5d: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00000f7e: PUSH1 0xe0 00000f80: DUP5 00000f81: SWAP1 00000f82: SHL 00000f83: AND 00000f84: DUP2 00000f85: MSTORE 00000f86: PUSH1 0x01 00000f88: PUSH1 0x01 00000f8a: PUSH1 0xa0 00000f8c: SHL 00000f8d: SUB 00000f8e: SWAP1 00000f8f: SWAP2 00000f90: AND 00000f91: PUSH1 0x04 00000f93: DUP3 00000f94: ADD 00000f95: MSTORE 00000f96: ADDRESS 00000f97: PUSH1 0x24 00000f99: DUP3 00000f9a: ADD 00000f9b: MSTORE 00000f9c: PUSH1 0x44 00000f9e: ADD 00000f9f: PUSH1 0x20 00000fa1: PUSH1 0x40 00000fa3: MLOAD 00000fa4: DUP1 00000fa5: DUP4 00000fa6: SUB 00000fa7: DUP2 00000fa8: DUP7 00000fa9: GAS 00000faa: STATICCALL 00000fab: ISZERO 00000fac: DUP1 00000fad: ISZERO 00000fae: PUSH2 0x0fbb 00000fb1: JUMPI 00000fb2: RETURNDATASIZE 00000fb3: PUSH1 0x00 00000fb5: DUP1 00000fb6: RETURNDATACOPY 00000fb7: RETURNDATASIZE 00000fb8: PUSH1 0x00 00000fba: REVERT 00000fbb: JUMPDEST 00000fbc: POP 00000fbd: POP 00000fbe: POP 00000fbf: POP 00000fc0: PUSH1 0x40 00000fc2: MLOAD 00000fc3: RETURNDATASIZE 00000fc4: PUSH1 0x1f 00000fc6: NOT 00000fc7: PUSH1 0x1f 00000fc9: DUP3 00000fca: ADD 00000fcb: AND 00000fcc: DUP3 00000fcd: ADD 00000fce: DUP1 00000fcf: PUSH1 0x40 00000fd1: MSTORE 00000fd2: POP 00000fd3: DUP2 00000fd4: ADD 00000fd5: SWAP1 00000fd6: PUSH2 0x0fdf 00000fd9: SWAP2 00000fda: SWAP1 00000fdb: PUSH2 0x3270 00000fde: JUMP 00000fdf: JUMPDEST 00000fe0: LT 00000fe1: ISZERO 00000fe2: PUSH2 0x1047 00000fe5: JUMPI 00000fe6: PUSH1 0x40 00000fe8: MLOAD 00000fe9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000100a: DUP2 0000100b: MSTORE 0000100c: PUSH1 0x20 0000100e: PUSH1 0x04 00001010: DUP3 00001011: ADD 00001012: MSTORE 00001013: PUSH1 0x11 00001015: PUSH1 0x24 00001017: DUP3 00001018: ADD 00001019: MSTORE 0000101a: PUSH32 0x616c6c6f77616e636520746f6f206c6f77000000000000000000000000000000 0000103b: PUSH1 0x44 0000103d: DUP3 0000103e: ADD 0000103f: MSTORE 00001040: PUSH1 0x64 00001042: ADD 00001043: PUSH2 0x02c7 00001046: JUMP 00001047: JUMPDEST 00001048: DUP4 00001049: PUSH1 0x01 0000104b: PUSH1 0x01 0000104d: PUSH1 0xa0 0000104f: SHL 00001050: SUB 00001051: DUP3 00001052: AND 00001053: PUSH4 0x70a08231 00001058: CALLER 00001059: PUSH1 0x40 0000105b: MLOAD 0000105c: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 0000107d: PUSH1 0xe0 0000107f: DUP5 00001080: SWAP1 00001081: SHL 00001082: AND 00001083: DUP2 00001084: MSTORE 00001085: PUSH1 0x01 00001087: PUSH1 0x01 00001089: PUSH1 0xa0 0000108b: SHL 0000108c: SUB 0000108d: SWAP1 0000108e: SWAP2 0000108f: AND 00001090: PUSH1 0x04 00001092: DUP3 00001093: ADD 00001094: MSTORE 00001095: PUSH1 0x24 00001097: ADD 00001098: PUSH1 0x20 0000109a: PUSH1 0x40 0000109c: MLOAD 0000109d: DUP1 0000109e: DUP4 0000109f: SUB 000010a0: DUP2 000010a1: DUP7 000010a2: GAS 000010a3: STATICCALL 000010a4: ISZERO 000010a5: DUP1 000010a6: ISZERO 000010a7: PUSH2 0x10b4 000010aa: JUMPI 000010ab: RETURNDATASIZE 000010ac: PUSH1 0x00 000010ae: DUP1 000010af: RETURNDATACOPY 000010b0: RETURNDATASIZE 000010b1: PUSH1 0x00 000010b3: REVERT 000010b4: JUMPDEST 000010b5: POP 000010b6: POP 000010b7: POP 000010b8: POP 000010b9: PUSH1 0x40 000010bb: MLOAD 000010bc: RETURNDATASIZE 000010bd: PUSH1 0x1f 000010bf: NOT 000010c0: PUSH1 0x1f 000010c2: DUP3 000010c3: ADD 000010c4: AND 000010c5: DUP3 000010c6: ADD 000010c7: DUP1 000010c8: PUSH1 0x40 000010ca: MSTORE 000010cb: POP 000010cc: DUP2 000010cd: ADD 000010ce: SWAP1 000010cf: PUSH2 0x10d8 000010d2: SWAP2 000010d3: SWAP1 000010d4: PUSH2 0x3270 000010d7: JUMP 000010d8: JUMPDEST 000010d9: LT 000010da: ISZERO 000010db: PUSH2 0x1140 000010de: JUMPI 000010df: PUSH1 0x40 000010e1: MLOAD 000010e2: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001103: DUP2 00001104: MSTORE 00001105: PUSH1 0x20 00001107: PUSH1 0x04 00001109: DUP3 0000110a: ADD 0000110b: MSTORE 0000110c: PUSH1 0x0f 0000110e: PUSH1 0x24 00001110: DUP3 00001111: ADD 00001112: MSTORE 00001113: PUSH32 0x62616c616e636520746f6f206c6f770000000000000000000000000000000000 00001134: PUSH1 0x44 00001136: DUP3 00001137: ADD 00001138: MSTORE 00001139: PUSH1 0x64 0000113b: ADD 0000113c: PUSH2 0x02c7 0000113f: JUMP 00001140: JUMPDEST 00001141: PUSH2 0x1155 00001144: PUSH1 0x01 00001146: PUSH1 0x01 00001148: PUSH1 0xa0 0000114a: SHL 0000114b: SUB 0000114c: DUP3 0000114d: AND 0000114e: CALLER 0000114f: ADDRESS 00001150: DUP8 00001151: PUSH2 0x26b9 00001154: JUMP 00001155: JUMPDEST 00001156: PUSH2 0x117d 00001159: PUSH1 0x01 0000115b: PUSH1 0x01 0000115d: PUSH1 0xa0 0000115f: SHL 00001160: SUB 00001161: DUP4 00001162: AND 00001163: PUSH20 0xc36442b4a4522e871399cd717abdd847ab11fe88 00001178: DUP7 00001179: PUSH2 0x2548 0000117c: JUMP 0000117d: JUMPDEST 0000117e: PUSH2 0x11a5 00001181: PUSH1 0x01 00001183: PUSH1 0x01 00001185: PUSH1 0xa0 00001187: SHL 00001188: SUB 00001189: DUP3 0000118a: AND 0000118b: PUSH20 0xc36442b4a4522e871399cd717abdd847ab11fe88 000011a0: DUP7 000011a1: PUSH2 0x2548 000011a4: JUMP 000011a5: JUMPDEST 000011a6: PUSH2 0x11ae 000011a9: DUP5 000011aa: PUSH2 0x2735 000011ad: JUMP 000011ae: JUMPDEST 000011af: PUSH2 0x11b7 000011b2: DUP5 000011b3: PUSH2 0x28a9 000011b6: JUMP 000011b7: JUMPDEST 000011b8: POP 000011b9: POP 000011ba: POP 000011bb: POP 000011bc: JUMP 000011bd: JUMPDEST 000011be: PUSH1 0x40 000011c0: MLOAD 000011c1: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 000011e2: DUP2 000011e3: MSTORE 000011e4: ADDRESS 000011e5: PUSH1 0x04 000011e7: DUP3 000011e8: ADD 000011e9: MSTORE 000011ea: PUSH1 0x00 000011ec: SWAP1 000011ed: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00001202: SWAP1 00001203: PUSH4 0x70a08231 00001208: SWAP1 00001209: PUSH1 0x24 0000120b: ADD 0000120c: PUSH1 0x20 0000120e: PUSH1 0x40 00001210: MLOAD 00001211: DUP1 00001212: DUP4 00001213: SUB 00001214: DUP2 00001215: DUP7 00001216: GAS 00001217: STATICCALL 00001218: ISZERO 00001219: DUP1 0000121a: ISZERO 0000121b: PUSH2 0x1228 0000121e: JUMPI 0000121f: RETURNDATASIZE 00001220: PUSH1 0x00 00001222: DUP1 00001223: RETURNDATACOPY 00001224: RETURNDATASIZE 00001225: PUSH1 0x00 00001227: REVERT 00001228: JUMPDEST 00001229: POP 0000122a: POP 0000122b: POP 0000122c: POP 0000122d: PUSH1 0x40 0000122f: MLOAD 00001230: RETURNDATASIZE 00001231: PUSH1 0x1f 00001233: NOT 00001234: PUSH1 0x1f 00001236: DUP3 00001237: ADD 00001238: AND 00001239: DUP3 0000123a: ADD 0000123b: DUP1 0000123c: PUSH1 0x40 0000123e: MSTORE 0000123f: POP 00001240: DUP2 00001241: ADD 00001242: SWAP1 00001243: PUSH2 0x124c 00001246: SWAP2 00001247: SWAP1 00001248: PUSH2 0x3270 0000124b: JUMP 0000124c: JUMPDEST 0000124d: SWAP1 0000124e: POP 0000124f: SWAP1 00001250: JUMP 00001251: JUMPDEST 00001252: PUSH2 0x1259 00001255: PUSH2 0x189a 00001258: JUMP 00001259: JUMPDEST 0000125a: PUSH1 0x01 0000125c: PUSH1 0x01 0000125e: PUSH1 0xa0 00001260: SHL 00001261: SUB 00001262: DUP2 00001263: AND 00001264: PUSH2 0x1299 00001267: JUMPI 00001268: PUSH1 0x40 0000126a: MLOAD 0000126b: PUSH32 0x90a3742300000000000000000000000000000000000000000000000000000000 0000128c: DUP2 0000128d: MSTORE 0000128e: PUSH1 0x04 00001290: ADD 00001291: PUSH1 0x40 00001293: MLOAD 00001294: DUP1 00001295: SWAP2 00001296: SUB 00001297: SWAP1 00001298: REVERT 00001299: JUMPDEST 0000129a: PUSH1 0x03 0000129c: DUP1 0000129d: SLOAD 0000129e: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 000012bf: AND 000012c0: PUSH1 0x01 000012c2: PUSH1 0x01 000012c4: PUSH1 0xa0 000012c6: SHL 000012c7: SUB 000012c8: SWAP3 000012c9: SWAP1 000012ca: SWAP3 000012cb: AND 000012cc: SWAP2 000012cd: SWAP1 000012ce: SWAP2 000012cf: OR 000012d0: SWAP1 000012d1: SSTORE 000012d2: JUMP 000012d3: JUMPDEST 000012d4: PUSH2 0x12db 000012d7: PUSH2 0x189a 000012da: JUMP 000012db: JUMPDEST 000012dc: PUSH2 0x12e5 000012df: PUSH1 0x00 000012e1: PUSH2 0x2abc 000012e4: JUMP 000012e5: JUMPDEST 000012e6: JUMP 000012e7: JUMPDEST 000012e8: PUSH1 0x01 000012ea: SLOAD 000012eb: CALLER 000012ec: SWAP1 000012ed: PUSH1 0x01 000012ef: PUSH1 0x01 000012f1: PUSH1 0xa0 000012f3: SHL 000012f4: SUB 000012f5: AND 000012f6: DUP2 000012f7: EQ 000012f8: PUSH2 0x1338 000012fb: JUMPI 000012fc: PUSH1 0x40 000012fe: MLOAD 000012ff: PUSH32 0x118cdaa700000000000000000000000000000000000000000000000000000000 00001320: DUP2 00001321: MSTORE 00001322: PUSH1 0x01 00001324: PUSH1 0x01 00001326: PUSH1 0xa0 00001328: SHL 00001329: SUB 0000132a: DUP3 0000132b: AND 0000132c: PUSH1 0x04 0000132e: DUP3 0000132f: ADD 00001330: MSTORE 00001331: PUSH1 0x24 00001333: ADD 00001334: PUSH2 0x02c7 00001337: JUMP 00001338: JUMPDEST 00001339: PUSH2 0x1341 0000133c: DUP2 0000133d: PUSH2 0x2abc 00001340: JUMP 00001341: JUMPDEST 00001342: POP 00001343: JUMP 00001344: JUMPDEST 00001345: PUSH2 0x134c 00001348: PUSH2 0x189a 0000134b: JUMP 0000134c: JUMPDEST 0000134d: PUSH1 0x05 0000134f: DUP2 00001350: PUSH4 0xffffffff 00001355: AND 00001356: LT 00001357: ISZERO 00001358: DUP1 00001359: ISZERO 0000135a: PUSH2 0x136a 0000135d: JUMPI 0000135e: POP 0000135f: PUSH1 0x3c 00001361: DUP2 00001362: PUSH4 0xffffffff 00001367: AND 00001368: GT 00001369: ISZERO 0000136a: JUMPDEST 0000136b: PUSH2 0x13d0 0000136e: JUMPI 0000136f: PUSH1 0x40 00001371: MLOAD 00001372: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001393: DUP2 00001394: MSTORE 00001395: PUSH1 0x20 00001397: PUSH1 0x04 00001399: DUP3 0000139a: ADD 0000139b: MSTORE 0000139c: PUSH1 0x0a 0000139e: PUSH1 0x24 000013a0: DUP3 000013a1: ADD 000013a2: MSTORE 000013a3: PUSH32 0x356d2d3168206f6e6c7900000000000000000000000000000000000000000000 000013c4: PUSH1 0x44 000013c6: DUP3 000013c7: ADD 000013c8: MSTORE 000013c9: PUSH1 0x64 000013cb: ADD 000013cc: PUSH2 0x02c7 000013cf: JUMP 000013d0: JUMPDEST 000013d1: PUSH1 0x0e 000013d3: DUP1 000013d4: SLOAD 000013d5: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000 000013f6: AND 000013f7: PUSH4 0xffffffff 000013fc: SWAP3 000013fd: SWAP1 000013fe: SWAP3 000013ff: AND 00001400: SWAP2 00001401: SWAP1 00001402: SWAP2 00001403: OR 00001404: SWAP1 00001405: SSTORE 00001406: JUMP 00001407: JUMPDEST 00001408: PUSH1 0x09 0000140a: SLOAD 0000140b: PUSH1 0x40 0000140d: MLOAD 0000140e: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 0000142f: DUP2 00001430: MSTORE 00001431: ADDRESS 00001432: PUSH1 0x04 00001434: DUP3 00001435: ADD 00001436: MSTORE 00001437: PUSH1 0x00 00001439: SWAP2 0000143a: SWAP1 0000143b: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00001450: SWAP1 00001451: DUP2 00001452: SWAP1 00001453: PUSH4 0x70a08231 00001458: SWAP1 00001459: PUSH1 0x24 0000145b: ADD 0000145c: PUSH1 0x20 0000145e: PUSH1 0x40 00001460: MLOAD 00001461: DUP1 00001462: DUP4 00001463: SUB 00001464: DUP2 00001465: DUP7 00001466: GAS 00001467: STATICCALL 00001468: ISZERO 00001469: DUP1 0000146a: ISZERO 0000146b: PUSH2 0x1478 0000146e: JUMPI 0000146f: RETURNDATASIZE 00001470: PUSH1 0x00 00001472: DUP1 00001473: RETURNDATACOPY 00001474: RETURNDATASIZE 00001475: PUSH1 0x00 00001477: REVERT 00001478: JUMPDEST 00001479: POP 0000147a: POP 0000147b: POP 0000147c: POP 0000147d: PUSH1 0x40 0000147f: MLOAD 00001480: RETURNDATASIZE 00001481: PUSH1 0x1f 00001483: NOT 00001484: PUSH1 0x1f 00001486: DUP3 00001487: ADD 00001488: AND 00001489: DUP3 0000148a: ADD 0000148b: DUP1 0000148c: PUSH1 0x40 0000148e: MSTORE 0000148f: POP 00001490: DUP2 00001491: ADD 00001492: SWAP1 00001493: PUSH2 0x149c 00001496: SWAP2 00001497: SWAP1 00001498: PUSH2 0x3270 0000149b: JUMP 0000149c: JUMPDEST 0000149d: SWAP3 0000149e: POP 0000149f: DUP2 000014a0: DUP4 000014a1: GT 000014a2: ISZERO 000014a3: PUSH2 0x14aa 000014a6: JUMPI 000014a7: DUP2 000014a8: SWAP3 000014a9: POP 000014aa: JUMPDEST 000014ab: POP 000014ac: POP 000014ad: SWAP1 000014ae: JUMP 000014af: JUMPDEST 000014b0: PUSH2 0x14b7 000014b3: PUSH2 0x189a 000014b6: JUMP 000014b7: JUMPDEST 000014b8: PUSH1 0x3c 000014ba: DUP2 000014bb: LT 000014bc: ISZERO 000014bd: DUP1 000014be: ISZERO 000014bf: PUSH2 0x14ca 000014c2: JUMPI 000014c3: POP 000014c4: PUSH2 0xa8c0 000014c7: DUP2 000014c8: GT 000014c9: ISZERO 000014ca: JUMPDEST 000014cb: PUSH2 0x1530 000014ce: JUMPI 000014cf: PUSH1 0x40 000014d1: MLOAD 000014d2: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000014f3: DUP2 000014f4: MSTORE 000014f5: PUSH1 0x20 000014f7: PUSH1 0x04 000014f9: DUP3 000014fa: ADD 000014fb: MSTORE 000014fc: PUSH1 0x0b 000014fe: PUSH1 0x24 00001500: DUP3 00001501: ADD 00001502: MSTORE 00001503: PUSH32 0x316d2d313268206f6e6c79000000000000000000000000000000000000000000 00001524: PUSH1 0x44 00001526: DUP3 00001527: ADD 00001528: MSTORE 00001529: PUSH1 0x64 0000152b: ADD 0000152c: PUSH2 0x02c7 0000152f: JUMP 00001530: JUMPDEST 00001531: PUSH1 0x0b 00001533: SSTORE 00001534: JUMP 00001535: JUMPDEST 00001536: PUSH2 0x153d 00001539: PUSH2 0x2507 0000153c: JUMP 0000153d: JUMPDEST 0000153e: PUSH1 0x03 00001540: SLOAD 00001541: PUSH1 0x01 00001543: PUSH1 0x01 00001545: PUSH1 0xa0 00001547: SHL 00001548: SUB 00001549: AND 0000154a: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1 0000155f: CALLER 00001560: PUSH1 0x00 00001562: DUP1 00001563: PUSH2 0x156a 00001566: PUSH2 0x2aed 00001569: JUMP 0000156a: JUMPDEST 0000156b: SWAP2 0000156c: POP 0000156d: SWAP2 0000156e: POP 0000156f: PUSH1 0x00 00001571: DUP1 00001572: DUP6 00001573: PUSH1 0x01 00001575: PUSH1 0x01 00001577: PUSH1 0xa0 00001579: SHL 0000157a: SUB 0000157b: AND 0000157c: DUP8 0000157d: PUSH1 0x01 0000157f: PUSH1 0x01 00001581: PUSH1 0xa0 00001583: SHL 00001584: SUB 00001585: AND 00001586: LT 00001587: ISZERO 00001588: PUSH2 0x1595 0000158b: JUMPI 0000158c: POP 0000158d: DUP3 0000158e: SWAP1 0000158f: POP 00001590: DUP2 00001591: PUSH2 0x159b 00001594: JUMP 00001595: JUMPDEST 00001596: POP 00001597: DUP2 00001598: SWAP1 00001599: POP 0000159a: DUP3 0000159b: JUMPDEST 0000159c: DUP2 0000159d: PUSH1 0x07 0000159f: PUSH1 0x00 000015a1: DUP3 000015a2: DUP3 000015a3: SLOAD 000015a4: PUSH2 0x15ad 000015a7: SWAP2 000015a8: SWAP1 000015a9: PUSH2 0x32e3 000015ac: JUMP 000015ad: JUMPDEST 000015ae: SWAP3 000015af: POP 000015b0: POP 000015b1: DUP2 000015b2: SWAP1 000015b3: SSTORE 000015b4: POP 000015b5: DUP1 000015b6: PUSH1 0x08 000015b8: PUSH1 0x00 000015ba: DUP3 000015bb: DUP3 000015bc: SLOAD 000015bd: PUSH2 0x15c6 000015c0: SWAP2 000015c1: SWAP1 000015c2: PUSH2 0x32e3 000015c5: JUMP 000015c6: JUMPDEST 000015c7: SWAP3 000015c8: POP 000015c9: POP 000015ca: DUP2 000015cb: SWAP1 000015cc: SSTORE 000015cd: POP 000015ce: DUP2 000015cf: PUSH1 0x06 000015d1: PUSH1 0x00 000015d3: DUP3 000015d4: DUP3 000015d5: SLOAD 000015d6: PUSH2 0x15df 000015d9: SWAP2 000015da: SWAP1 000015db: PUSH2 0x32e3 000015de: JUMP 000015df: JUMPDEST 000015e0: SWAP3 000015e1: POP 000015e2: POP 000015e3: DUP2 000015e4: SWAP1 000015e5: SSTORE 000015e6: POP 000015e7: PUSH1 0x00 000015e9: DUP8 000015ea: SWAP1 000015eb: POP 000015ec: DUP1 000015ed: PUSH1 0x01 000015ef: PUSH1 0x01 000015f1: PUSH1 0xa0 000015f3: SHL 000015f4: SUB 000015f5: AND 000015f6: PUSH4 0x44df8e70 000015fb: PUSH1 0x40 000015fd: MLOAD 000015fe: DUP2 000015ff: PUSH4 0xffffffff 00001604: AND 00001605: PUSH1 0xe0 00001607: SHL 00001608: DUP2 00001609: MSTORE 0000160a: PUSH1 0x04 0000160c: ADD 0000160d: PUSH1 0x00 0000160f: PUSH1 0x40 00001611: MLOAD 00001612: DUP1 00001613: DUP4 00001614: SUB 00001615: DUP2 00001616: PUSH1 0x00 00001618: DUP8 00001619: DUP1 0000161a: EXTCODESIZE 0000161b: ISZERO 0000161c: DUP1 0000161d: ISZERO 0000161e: PUSH2 0x1626 00001621: JUMPI 00001622: PUSH1 0x00 00001624: DUP1 00001625: REVERT 00001626: JUMPDEST 00001627: POP 00001628: GAS 00001629: CALL 0000162a: ISZERO 0000162b: DUP1 0000162c: ISZERO 0000162d: PUSH2 0x163a 00001630: JUMPI 00001631: RETURNDATASIZE 00001632: PUSH1 0x00 00001634: DUP1 00001635: RETURNDATACOPY 00001636: RETURNDATASIZE 00001637: PUSH1 0x00 00001639: REVERT 0000163a: JUMPDEST 0000163b: POP 0000163c: PUSH2 0x1653 0000163f: SWAP3 00001640: POP 00001641: POP 00001642: POP 00001643: PUSH1 0x01 00001645: PUSH1 0x01 00001647: PUSH1 0xa0 00001649: SHL 0000164a: SUB 0000164b: DUP9 0000164c: AND 0000164d: DUP10 0000164e: DUP5 0000164f: PUSH2 0x2bef 00001652: JUMP 00001653: JUMPDEST 00001654: DUP1 00001655: PUSH1 0x01 00001657: PUSH1 0x01 00001659: PUSH1 0xa0 0000165b: SHL 0000165c: SUB 0000165d: AND 0000165e: PUSH4 0x7196e841 00001663: PUSH1 0x40 00001665: MLOAD 00001666: DUP2 00001667: PUSH4 0xffffffff 0000166c: AND 0000166d: PUSH1 0xe0 0000166f: SHL 00001670: DUP2 00001671: MSTORE 00001672: PUSH1 0x04 00001674: ADD 00001675: PUSH1 0x00 00001677: PUSH1 0x40 00001679: MLOAD 0000167a: DUP1 0000167b: DUP4 0000167c: SUB 0000167d: DUP2 0000167e: PUSH1 0x00 00001680: DUP8 00001681: DUP1 00001682: EXTCODESIZE 00001683: ISZERO 00001684: DUP1 00001685: ISZERO 00001686: PUSH2 0x168e 00001689: JUMPI 0000168a: PUSH1 0x00 0000168c: DUP1 0000168d: REVERT 0000168e: JUMPDEST 0000168f: POP 00001690: GAS 00001691: CALL 00001692: ISZERO 00001693: DUP1 00001694: ISZERO 00001695: PUSH2 0x16a2 00001698: JUMPI 00001699: RETURNDATASIZE 0000169a: PUSH1 0x00 0000169c: DUP1 0000169d: RETURNDATACOPY 0000169e: RETURNDATASIZE 0000169f: PUSH1 0x00 000016a1: REVERT 000016a2: JUMPDEST 000016a3: POP 000016a4: POP 000016a5: POP 000016a6: POP 000016a7: DUP6 000016a8: PUSH1 0x01 000016aa: PUSH1 0x01 000016ac: PUSH1 0xa0 000016ae: SHL 000016af: SUB 000016b0: AND 000016b1: DUP3 000016b2: DUP5 000016b3: PUSH32 0xb3ff07f4fe20273bbc264b773aacc6325987f8b0b1aa4c5bdfe5b75fdbd1284c 000016d4: PUSH1 0x40 000016d6: MLOAD 000016d7: PUSH1 0x40 000016d9: MLOAD 000016da: DUP1 000016db: SWAP2 000016dc: SUB 000016dd: SWAP1 000016de: LOG4 000016df: POP 000016e0: POP 000016e1: POP 000016e2: POP 000016e3: POP 000016e4: POP 000016e5: POP 000016e6: POP 000016e7: PUSH2 0x12e5 000016ea: PUSH1 0x01 000016ec: PUSH1 0x02 000016ee: SSTORE 000016ef: JUMP 000016f0: JUMPDEST 000016f1: PUSH1 0x04 000016f3: SLOAD 000016f4: PUSH1 0x00 000016f6: SWAP1 000016f7: DUP2 000016f8: PUSH2 0x1700 000016fb: DUP5 000016fc: PUSH2 0x0777 000016ff: JUMP 00001700: JUMPDEST 00001701: SWAP1 00001702: POP 00001703: PUSH1 0x00 00001705: PUSH1 0x64 00001707: PUSH2 0x1710 0000170a: DUP5 0000170b: DUP3 0000170c: PUSH2 0x325d 0000170f: JUMP 00001710: JUMPDEST 00001711: PUSH2 0x171a 00001714: SWAP1 00001715: DUP5 00001716: PUSH2 0x3289 00001719: JUMP 0000171a: JUMPDEST 0000171b: PUSH2 0x1724 0000171e: SWAP2 0000171f: SWAP1 00001720: PUSH2 0x32cf 00001723: JUMP 00001724: JUMPDEST 00001725: SWAP1 00001726: POP 00001727: PUSH1 0x00 00001729: PUSH2 0x1731 0000172c: DUP3 0000172d: PUSH2 0x0623 00001730: JUMP 00001731: JUMPDEST 00001732: SWAP1 00001733: POP 00001734: PUSH1 0x00 00001736: PUSH1 0x64 00001738: PUSH2 0x1741 0000173b: DUP7 0000173c: DUP3 0000173d: PUSH2 0x325d 00001740: JUMP 00001741: JUMPDEST 00001742: PUSH2 0x174b 00001745: SWAP1 00001746: DUP5 00001747: PUSH2 0x3289 0000174a: JUMP 0000174b: JUMPDEST 0000174c: PUSH2 0x1755 0000174f: SWAP2 00001750: SWAP1 00001751: PUSH2 0x32cf 00001754: JUMP 00001755: JUMPDEST 00001756: SWAP8 00001757: SWAP7 00001758: POP 00001759: POP 0000175a: POP 0000175b: POP 0000175c: POP 0000175d: POP 0000175e: POP 0000175f: JUMP 00001760: JUMPDEST 00001761: PUSH1 0x00 00001763: DUP1 00001764: PUSH2 0x176b 00001767: PUSH2 0x1407 0000176a: JUMP 0000176b: JUMPDEST 0000176c: SWAP1 0000176d: POP 0000176e: PUSH2 0x2710 00001771: PUSH2 0x177c 00001774: PUSH2 0x012c 00001777: DUP4 00001778: PUSH2 0x3289 0000177b: JUMP 0000177c: JUMPDEST 0000177d: PUSH2 0x1786 00001780: SWAP2 00001781: SWAP1 00001782: PUSH2 0x32cf 00001785: JUMP 00001786: JUMPDEST 00001787: SWAP2 00001788: POP 00001789: POP 0000178a: SWAP1 0000178b: JUMP 0000178c: JUMPDEST 0000178d: PUSH2 0x1794 00001790: PUSH2 0x189a 00001793: JUMP 00001794: JUMPDEST 00001795: PUSH1 0x05 00001797: DUP2 00001798: LT 00001799: ISZERO 0000179a: DUP1 0000179b: ISZERO 0000179c: PUSH2 0x17a6 0000179f: JUMPI 000017a0: POP 000017a1: PUSH1 0x0f 000017a3: DUP2 000017a4: GT 000017a5: ISZERO 000017a6: JUMPDEST 000017a7: PUSH2 0x180c 000017aa: JUMPI 000017ab: PUSH1 0x40 000017ad: MLOAD 000017ae: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000017cf: DUP2 000017d0: MSTORE 000017d1: PUSH1 0x20 000017d3: PUSH1 0x04 000017d5: DUP3 000017d6: ADD 000017d7: MSTORE 000017d8: PUSH1 0x0a 000017da: PUSH1 0x24 000017dc: DUP3 000017dd: ADD 000017de: MSTORE 000017df: PUSH32 0x352d313525206f6e6c7900000000000000000000000000000000000000000000 00001800: PUSH1 0x44 00001802: DUP3 00001803: ADD 00001804: MSTORE 00001805: PUSH1 0x64 00001807: ADD 00001808: PUSH2 0x02c7 0000180b: JUMP 0000180c: JUMPDEST 0000180d: PUSH1 0x04 0000180f: SSTORE 00001810: JUMP 00001811: JUMPDEST 00001812: PUSH2 0x1819 00001815: PUSH2 0x189a 00001818: JUMP 00001819: JUMPDEST 0000181a: PUSH1 0x01 0000181c: DUP1 0000181d: SLOAD 0000181e: PUSH1 0x01 00001820: PUSH1 0x01 00001822: PUSH1 0xa0 00001824: SHL 00001825: SUB 00001826: DUP4 00001827: AND 00001828: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00001849: SWAP1 0000184a: SWAP2 0000184b: AND 0000184c: DUP2 0000184d: OR 0000184e: SWAP1 0000184f: SWAP2 00001850: SSTORE 00001851: PUSH2 0x1862 00001854: PUSH1 0x00 00001856: SLOAD 00001857: PUSH1 0x01 00001859: PUSH1 0x01 0000185b: PUSH1 0xa0 0000185d: SHL 0000185e: SUB 0000185f: AND 00001860: SWAP1 00001861: JUMP 00001862: JUMPDEST 00001863: PUSH1 0x01 00001865: PUSH1 0x01 00001867: PUSH1 0xa0 00001869: SHL 0000186a: SUB 0000186b: AND 0000186c: PUSH32 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700 0000188d: PUSH1 0x40 0000188f: MLOAD 00001890: PUSH1 0x40 00001892: MLOAD 00001893: DUP1 00001894: SWAP2 00001895: SUB 00001896: SWAP1 00001897: LOG3 00001898: POP 00001899: JUMP 0000189a: JUMPDEST 0000189b: PUSH1 0x00 0000189d: SLOAD 0000189e: PUSH1 0x01 000018a0: PUSH1 0x01 000018a2: PUSH1 0xa0 000018a4: SHL 000018a5: SUB 000018a6: AND 000018a7: CALLER 000018a8: EQ 000018a9: PUSH2 0x12e5 000018ac: JUMPI 000018ad: PUSH1 0x40 000018af: MLOAD 000018b0: PUSH32 0x118cdaa700000000000000000000000000000000000000000000000000000000 000018d1: DUP2 000018d2: MSTORE 000018d3: CALLER 000018d4: PUSH1 0x04 000018d6: DUP3 000018d7: ADD 000018d8: MSTORE 000018d9: PUSH1 0x24 000018db: ADD 000018dc: PUSH2 0x02c7 000018df: JUMP 000018e0: JUMPDEST 000018e1: PUSH1 0x40 000018e3: DUP1 000018e4: MLOAD 000018e5: PUSH1 0x60 000018e7: DUP2 000018e8: ADD 000018e9: DUP3 000018ea: MSTORE 000018eb: PUSH1 0x00 000018ed: DUP1 000018ee: DUP3 000018ef: MSTORE 000018f0: PUSH1 0x20 000018f2: DUP3 000018f3: ADD 000018f4: DUP2 000018f5: SWAP1 000018f6: MSTORE 000018f7: SWAP2 000018f8: DUP2 000018f9: ADD 000018fa: SWAP2 000018fb: SWAP1 000018fc: SWAP2 000018fd: MSTORE 000018fe: DUP3 000018ff: PUSH1 0x01 00001901: PUSH1 0x01 00001903: PUSH1 0xa0 00001905: SHL 00001906: SUB 00001907: AND 00001908: DUP5 00001909: PUSH1 0x01 0000190b: PUSH1 0x01 0000190d: PUSH1 0xa0 0000190f: SHL 00001910: SUB 00001911: AND 00001912: GT 00001913: ISZERO 00001914: PUSH2 0x191b 00001917: JUMPI 00001918: SWAP2 00001919: SWAP3 0000191a: SWAP2 0000191b: JUMPDEST 0000191c: PUSH1 0x40 0000191e: MLOAD 0000191f: DUP1 00001920: PUSH1 0x60 00001922: ADD 00001923: PUSH1 0x40 00001925: MSTORE 00001926: DUP1 00001927: DUP6 00001928: PUSH1 0x01 0000192a: PUSH1 0x01 0000192c: PUSH1 0xa0 0000192e: SHL 0000192f: SUB 00001930: AND 00001931: DUP2 00001932: MSTORE 00001933: PUSH1 0x20 00001935: ADD 00001936: DUP5 00001937: PUSH1 0x01 00001939: PUSH1 0x01 0000193b: PUSH1 0xa0 0000193d: SHL 0000193e: SUB 0000193f: AND 00001940: DUP2 00001941: MSTORE 00001942: PUSH1 0x20 00001944: ADD 00001945: DUP4 00001946: PUSH3 0xffffff 0000194a: AND 0000194b: DUP2 0000194c: MSTORE 0000194d: POP 0000194e: SWAP1 0000194f: POP 00001950: JUMPDEST 00001951: SWAP4 00001952: SWAP3 00001953: POP 00001954: POP 00001955: POP 00001956: JUMP 00001957: JUMPDEST 00001958: PUSH1 0x00 0000195a: DUP2 0000195b: PUSH1 0x20 0000195d: ADD 0000195e: MLOAD 0000195f: PUSH1 0x01 00001961: PUSH1 0x01 00001963: PUSH1 0xa0 00001965: SHL 00001966: SUB 00001967: AND 00001968: DUP3 00001969: PUSH1 0x00 0000196b: ADD 0000196c: MLOAD 0000196d: PUSH1 0x01 0000196f: PUSH1 0x01 00001971: PUSH1 0xa0 00001973: SHL 00001974: SUB 00001975: AND 00001976: LT 00001977: PUSH2 0x197f 0000197a: JUMPI 0000197b: PUSH1 0x00 0000197d: DUP1 0000197e: REVERT 0000197f: JUMPDEST 00001980: DUP2 00001981: MLOAD 00001982: PUSH1 0x20 00001984: DUP1 00001985: DUP5 00001986: ADD 00001987: MLOAD 00001988: PUSH1 0x40 0000198a: DUP1 0000198b: DUP7 0000198c: ADD 0000198d: MLOAD 0000198e: DUP2 0000198f: MLOAD 00001990: PUSH1 0x01 00001992: PUSH1 0x01 00001994: PUSH1 0xa0 00001996: SHL 00001997: SUB 00001998: SWAP6 00001999: DUP7 0000199a: AND 0000199b: DUP2 0000199c: DUP7 0000199d: ADD 0000199e: MSTORE 0000199f: SWAP5 000019a0: SWAP1 000019a1: SWAP3 000019a2: AND 000019a3: DUP5 000019a4: DUP3 000019a5: ADD 000019a6: MSTORE 000019a7: PUSH3 0xffffff 000019ab: SWAP1 000019ac: SWAP2 000019ad: AND 000019ae: PUSH1 0x60 000019b0: DUP1 000019b1: DUP6 000019b2: ADD 000019b3: SWAP2 000019b4: SWAP1 000019b5: SWAP2 000019b6: MSTORE 000019b7: DUP2 000019b8: MLOAD 000019b9: DUP1 000019ba: DUP6 000019bb: SUB 000019bc: DUP3 000019bd: ADD 000019be: DUP2 000019bf: MSTORE 000019c0: PUSH1 0x80 000019c2: DUP6 000019c3: ADD 000019c4: SWAP1 000019c5: SWAP3 000019c6: MSTORE 000019c7: DUP2 000019c8: MLOAD 000019c9: SWAP2 000019ca: SWAP1 000019cb: SWAP3 000019cc: ADD 000019cd: KECCAK256 000019ce: PUSH32 0xff00000000000000000000000000000000000000000000000000000000000000 000019ef: PUSH1 0xa0 000019f1: DUP5 000019f2: ADD 000019f3: MSTORE 000019f4: SWAP1 000019f5: DUP6 000019f6: SWAP1 000019f7: SHL 000019f8: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 00001a19: AND 00001a1a: PUSH1 0xa1 00001a1c: DUP4 00001a1d: ADD 00001a1e: MSTORE 00001a1f: PUSH1 0xb5 00001a21: DUP3 00001a22: ADD 00001a23: MSTORE 00001a24: PUSH32 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54 00001a45: PUSH1 0xd5 00001a47: DUP3 00001a48: ADD 00001a49: MSTORE 00001a4a: PUSH1 0xf5 00001a4c: ADD 00001a4d: PUSH1 0x40 00001a4f: DUP1 00001a50: MLOAD 00001a51: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00001a72: DUP2 00001a73: DUP5 00001a74: SUB 00001a75: ADD 00001a76: DUP2 00001a77: MSTORE 00001a78: SWAP2 00001a79: SWAP1 00001a7a: MSTORE 00001a7b: DUP1 00001a7c: MLOAD 00001a7d: PUSH1 0x20 00001a7f: SWAP1 00001a80: SWAP2 00001a81: ADD 00001a82: KECCAK256 00001a83: SWAP4 00001a84: SWAP3 00001a85: POP 00001a86: POP 00001a87: POP 00001a88: JUMP 00001a89: JUMPDEST 00001a8a: PUSH1 0x00 00001a8c: DUP1 00001a8d: PUSH1 0x00 00001a8f: DUP4 00001a90: PUSH1 0x01 00001a92: PUSH1 0x01 00001a94: PUSH1 0xa0 00001a96: SHL 00001a97: SUB 00001a98: AND 00001a99: PUSH4 0x3850c7bd 00001a9e: PUSH1 0x40 00001aa0: MLOAD 00001aa1: DUP2 00001aa2: PUSH4 0xffffffff 00001aa7: AND 00001aa8: PUSH1 0xe0 00001aaa: SHL 00001aab: DUP2 00001aac: MSTORE 00001aad: PUSH1 0x04 00001aaf: ADD 00001ab0: PUSH1 0xe0 00001ab2: PUSH1 0x40 00001ab4: MLOAD 00001ab5: DUP1 00001ab6: DUP4 00001ab7: SUB 00001ab8: DUP2 00001ab9: DUP7 00001aba: GAS 00001abb: STATICCALL 00001abc: ISZERO 00001abd: DUP1 00001abe: ISZERO 00001abf: PUSH2 0x1acc 00001ac2: JUMPI 00001ac3: RETURNDATASIZE 00001ac4: PUSH1 0x00 00001ac6: DUP1 00001ac7: RETURNDATACOPY 00001ac8: RETURNDATASIZE 00001ac9: PUSH1 0x00 00001acb: REVERT 00001acc: JUMPDEST 00001acd: POP 00001ace: POP 00001acf: POP 00001ad0: POP 00001ad1: PUSH1 0x40 00001ad3: MLOAD 00001ad4: RETURNDATASIZE 00001ad5: PUSH1 0x1f 00001ad7: NOT 00001ad8: PUSH1 0x1f 00001ada: DUP3 00001adb: ADD 00001adc: AND 00001add: DUP3 00001ade: ADD 00001adf: DUP1 00001ae0: PUSH1 0x40 00001ae2: MSTORE 00001ae3: POP 00001ae4: DUP2 00001ae5: ADD 00001ae6: SWAP1 00001ae7: PUSH2 0x1af0 00001aea: SWAP2 00001aeb: SWAP1 00001aec: PUSH2 0x31c3 00001aef: JUMP 00001af0: JUMPDEST 00001af1: POP 00001af2: POP 00001af3: POP 00001af4: SWAP4 00001af5: POP 00001af6: SWAP4 00001af7: POP 00001af8: POP 00001af9: POP 00001afa: PUSH1 0x00 00001afc: DUP2 00001afd: PUSH2 0xffff 00001b00: AND 00001b01: GT 00001b02: PUSH2 0x1b67 00001b05: JUMPI 00001b06: PUSH1 0x40 00001b08: MLOAD 00001b09: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001b2a: DUP2 00001b2b: MSTORE 00001b2c: PUSH1 0x20 00001b2e: PUSH1 0x04 00001b30: DUP3 00001b31: ADD 00001b32: MSTORE 00001b33: PUSH1 0x02 00001b35: PUSH1 0x24 00001b37: DUP3 00001b38: ADD 00001b39: MSTORE 00001b3a: PUSH32 0x4e49000000000000000000000000000000000000000000000000000000000000 00001b5b: PUSH1 0x44 00001b5d: DUP3 00001b5e: ADD 00001b5f: MSTORE 00001b60: PUSH1 0x64 00001b62: ADD 00001b63: PUSH2 0x02c7 00001b66: JUMP 00001b67: JUMPDEST 00001b68: PUSH1 0x00 00001b6a: DUP1 00001b6b: PUSH1 0x01 00001b6d: PUSH1 0x01 00001b6f: PUSH1 0xa0 00001b71: SHL 00001b72: SUB 00001b73: DUP7 00001b74: AND 00001b75: PUSH4 0x252c09d7 00001b7a: DUP5 00001b7b: PUSH2 0x1b85 00001b7e: DUP8 00001b7f: PUSH1 0x01 00001b81: PUSH2 0x33a8 00001b84: JUMP 00001b85: JUMPDEST 00001b86: PUSH2 0x1b8f 00001b89: SWAP2 00001b8a: SWAP1 00001b8b: PUSH2 0x33ca 00001b8e: JUMP 00001b8f: JUMPDEST 00001b90: PUSH1 0x40 00001b92: MLOAD 00001b93: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00001bb4: PUSH1 0xe0 00001bb6: DUP5 00001bb7: SWAP1 00001bb8: SHL 00001bb9: AND 00001bba: DUP2 00001bbb: MSTORE 00001bbc: PUSH2 0xffff 00001bbf: SWAP1 00001bc0: SWAP2 00001bc1: AND 00001bc2: PUSH1 0x04 00001bc4: DUP3 00001bc5: ADD 00001bc6: MSTORE 00001bc7: PUSH1 0x24 00001bc9: ADD 00001bca: PUSH1 0x80 00001bcc: PUSH1 0x40 00001bce: MLOAD 00001bcf: DUP1 00001bd0: DUP4 00001bd1: SUB 00001bd2: DUP2 00001bd3: DUP7 00001bd4: GAS 00001bd5: STATICCALL 00001bd6: ISZERO 00001bd7: DUP1 00001bd8: ISZERO 00001bd9: PUSH2 0x1be6 00001bdc: JUMPI 00001bdd: RETURNDATASIZE 00001bde: PUSH1 0x00 00001be0: DUP1 00001be1: RETURNDATACOPY 00001be2: RETURNDATASIZE 00001be3: PUSH1 0x00 00001be5: REVERT 00001be6: JUMPDEST 00001be7: POP 00001be8: POP 00001be9: POP 00001bea: POP 00001beb: PUSH1 0x40 00001bed: MLOAD 00001bee: RETURNDATASIZE 00001bef: PUSH1 0x1f 00001bf1: NOT 00001bf2: PUSH1 0x1f 00001bf4: DUP3 00001bf5: ADD 00001bf6: AND 00001bf7: DUP3 00001bf8: ADD 00001bf9: DUP1 00001bfa: PUSH1 0x40 00001bfc: MSTORE 00001bfd: POP 00001bfe: DUP2 00001bff: ADD 00001c00: SWAP1 00001c01: PUSH2 0x1c0a 00001c04: SWAP2 00001c05: SWAP1 00001c06: PUSH2 0x33fd 00001c09: JUMP 00001c0a: JUMPDEST 00001c0b: SWAP4 00001c0c: POP 00001c0d: POP 00001c0e: POP 00001c0f: SWAP2 00001c10: POP 00001c11: DUP1 00001c12: PUSH2 0x1c9e 00001c15: JUMPI 00001c16: PUSH1 0x40 00001c18: MLOAD 00001c19: PUSH32 0x252c09d700000000000000000000000000000000000000000000000000000000 00001c3a: DUP2 00001c3b: MSTORE 00001c3c: PUSH1 0x00 00001c3e: PUSH1 0x04 00001c40: DUP3 00001c41: ADD 00001c42: MSTORE 00001c43: PUSH1 0x01 00001c45: PUSH1 0x01 00001c47: PUSH1 0xa0 00001c49: SHL 00001c4a: SUB 00001c4b: DUP8 00001c4c: AND 00001c4d: SWAP1 00001c4e: PUSH4 0x252c09d7 00001c53: SWAP1 00001c54: PUSH1 0x24 00001c56: ADD 00001c57: PUSH1 0x80 00001c59: PUSH1 0x40 00001c5b: MLOAD 00001c5c: DUP1 00001c5d: DUP4 00001c5e: SUB 00001c5f: DUP2 00001c60: DUP7 00001c61: GAS 00001c62: STATICCALL 00001c63: ISZERO 00001c64: DUP1 00001c65: ISZERO 00001c66: PUSH2 0x1c73 00001c69: JUMPI 00001c6a: RETURNDATASIZE 00001c6b: PUSH1 0x00 00001c6d: DUP1 00001c6e: RETURNDATACOPY 00001c6f: RETURNDATASIZE 00001c70: PUSH1 0x00 00001c72: REVERT 00001c73: JUMPDEST 00001c74: POP 00001c75: POP 00001c76: POP 00001c77: POP 00001c78: PUSH1 0x40 00001c7a: MLOAD 00001c7b: RETURNDATASIZE 00001c7c: PUSH1 0x1f 00001c7e: NOT 00001c7f: PUSH1 0x1f 00001c81: DUP3 00001c82: ADD 00001c83: AND 00001c84: DUP3 00001c85: ADD 00001c86: DUP1 00001c87: PUSH1 0x40 00001c89: MSTORE 00001c8a: POP 00001c8b: DUP2 00001c8c: ADD 00001c8d: SWAP1 00001c8e: PUSH2 0x1c97 00001c91: SWAP2 00001c92: SWAP1 00001c93: PUSH2 0x33fd 00001c96: JUMP 00001c97: JUMPDEST 00001c98: POP 00001c99: SWAP2 00001c9a: SWAP4 00001c9b: POP 00001c9c: POP 00001c9d: POP 00001c9e: JUMPDEST 00001c9f: PUSH2 0x08df 00001ca2: DUP3 00001ca3: TIMESTAMP 00001ca4: PUSH2 0x3455 00001ca7: JUMP 00001ca8: JUMPDEST 00001ca9: PUSH1 0x00 00001cab: DUP1 00001cac: DUP3 00001cad: PUSH4 0xffffffff 00001cb2: AND 00001cb3: PUSH1 0x00 00001cb5: SUB 00001cb6: PUSH2 0x1d1b 00001cb9: JUMPI 00001cba: PUSH1 0x40 00001cbc: MLOAD 00001cbd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001cde: DUP2 00001cdf: MSTORE 00001ce0: PUSH1 0x20 00001ce2: PUSH1 0x04 00001ce4: DUP3 00001ce5: ADD 00001ce6: MSTORE 00001ce7: PUSH1 0x02 00001ce9: PUSH1 0x24 00001ceb: DUP3 00001cec: ADD 00001ced: MSTORE 00001cee: PUSH32 0x4250000000000000000000000000000000000000000000000000000000000000 00001d0f: PUSH1 0x44 00001d11: DUP3 00001d12: ADD 00001d13: MSTORE 00001d14: PUSH1 0x64 00001d16: ADD 00001d17: PUSH2 0x02c7 00001d1a: JUMP 00001d1b: JUMPDEST 00001d1c: PUSH1 0x40 00001d1e: DUP1 00001d1f: MLOAD 00001d20: PUSH1 0x02 00001d22: DUP1 00001d23: DUP3 00001d24: MSTORE 00001d25: PUSH1 0x60 00001d27: DUP3 00001d28: ADD 00001d29: DUP4 00001d2a: MSTORE 00001d2b: PUSH1 0x00 00001d2d: SWAP3 00001d2e: PUSH1 0x20 00001d30: DUP4 00001d31: ADD 00001d32: SWAP1 00001d33: DUP1 00001d34: CALLDATASIZE 00001d35: DUP4 00001d36: CALLDATACOPY 00001d37: ADD 00001d38: SWAP1 00001d39: POP 00001d3a: POP 00001d3b: SWAP1 00001d3c: POP 00001d3d: DUP4 00001d3e: DUP2 00001d3f: PUSH1 0x00 00001d41: DUP2 00001d42: MLOAD 00001d43: DUP2 00001d44: LT 00001d45: PUSH2 0x1d50 00001d48: JUMPI 00001d49: PUSH2 0x1d50 00001d4c: PUSH2 0x34a1 00001d4f: JUMP 00001d50: JUMPDEST 00001d51: PUSH1 0x20 00001d53: MUL 00001d54: PUSH1 0x20 00001d56: ADD 00001d57: ADD 00001d58: SWAP1 00001d59: PUSH4 0xffffffff 00001d5e: AND 00001d5f: SWAP1 00001d60: DUP2 00001d61: PUSH4 0xffffffff 00001d66: AND 00001d67: DUP2 00001d68: MSTORE 00001d69: POP 00001d6a: POP 00001d6b: PUSH1 0x00 00001d6d: DUP2 00001d6e: PUSH1 0x01 00001d70: DUP2 00001d71: MLOAD 00001d72: DUP2 00001d73: LT 00001d74: PUSH2 0x1d7f 00001d77: JUMPI 00001d78: PUSH2 0x1d7f 00001d7b: PUSH2 0x34a1 00001d7e: JUMP 00001d7f: JUMPDEST 00001d80: PUSH1 0x20 00001d82: MUL 00001d83: PUSH1 0x20 00001d85: ADD 00001d86: ADD 00001d87: SWAP1 00001d88: PUSH4 0xffffffff 00001d8d: AND 00001d8e: SWAP1 00001d8f: DUP2 00001d90: PUSH4 0xffffffff 00001d95: AND 00001d96: DUP2 00001d97: MSTORE 00001d98: POP 00001d99: POP 00001d9a: PUSH1 0x00 00001d9c: DUP1 00001d9d: DUP7 00001d9e: PUSH1 0x01 00001da0: PUSH1 0x01 00001da2: PUSH1 0xa0 00001da4: SHL 00001da5: SUB 00001da6: AND 00001da7: PUSH4 0x883bdbfd 00001dac: DUP5 00001dad: PUSH1 0x40 00001daf: MLOAD 00001db0: DUP3 00001db1: PUSH4 0xffffffff 00001db6: AND 00001db7: PUSH1 0xe0 00001db9: SHL 00001dba: DUP2 00001dbb: MSTORE 00001dbc: PUSH1 0x04 00001dbe: ADD 00001dbf: PUSH2 0x1dc8 00001dc2: SWAP2 00001dc3: SWAP1 00001dc4: PUSH2 0x34d0 00001dc7: JUMP 00001dc8: JUMPDEST 00001dc9: PUSH1 0x00 00001dcb: PUSH1 0x40 00001dcd: MLOAD 00001dce: DUP1 00001dcf: DUP4 00001dd0: SUB 00001dd1: DUP2 00001dd2: DUP7 00001dd3: GAS 00001dd4: STATICCALL 00001dd5: ISZERO 00001dd6: DUP1 00001dd7: ISZERO 00001dd8: PUSH2 0x1de5 00001ddb: JUMPI 00001ddc: RETURNDATASIZE 00001ddd: PUSH1 0x00 00001ddf: DUP1 00001de0: RETURNDATACOPY 00001de1: RETURNDATASIZE 00001de2: PUSH1 0x00 00001de4: REVERT 00001de5: JUMPDEST 00001de6: POP 00001de7: POP 00001de8: POP 00001de9: POP 00001dea: PUSH1 0x40 00001dec: MLOAD 00001ded: RETURNDATASIZE 00001dee: PUSH1 0x00 00001df0: DUP3 00001df1: RETURNDATACOPY 00001df2: PUSH1 0x1f 00001df4: RETURNDATASIZE 00001df5: SWAP1 00001df6: DUP2 00001df7: ADD 00001df8: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00001e19: AND 00001e1a: DUP3 00001e1b: ADD 00001e1c: PUSH1 0x40 00001e1e: MSTORE 00001e1f: PUSH2 0x1e2b 00001e22: SWAP2 00001e23: SWAP1 00001e24: DUP2 00001e25: ADD 00001e26: SWAP1 00001e27: PUSH2 0x3601 00001e2a: JUMP 00001e2b: JUMPDEST 00001e2c: SWAP2 00001e2d: POP 00001e2e: SWAP2 00001e2f: POP 00001e30: PUSH1 0x00 00001e32: DUP3 00001e33: PUSH1 0x00 00001e35: DUP2 00001e36: MLOAD 00001e37: DUP2 00001e38: LT 00001e39: PUSH2 0x1e44 00001e3c: JUMPI 00001e3d: PUSH2 0x1e44 00001e40: PUSH2 0x34a1 00001e43: JUMP 00001e44: JUMPDEST 00001e45: PUSH1 0x20 00001e47: MUL 00001e48: PUSH1 0x20 00001e4a: ADD 00001e4b: ADD 00001e4c: MLOAD 00001e4d: DUP4 00001e4e: PUSH1 0x01 00001e50: DUP2 00001e51: MLOAD 00001e52: DUP2 00001e53: LT 00001e54: PUSH2 0x1e5f 00001e57: JUMPI 00001e58: PUSH2 0x1e5f 00001e5b: PUSH2 0x34a1 00001e5e: JUMP 00001e5f: JUMPDEST 00001e60: PUSH1 0x20 00001e62: MUL 00001e63: PUSH1 0x20 00001e65: ADD 00001e66: ADD 00001e67: MLOAD 00001e68: PUSH2 0x1e71 00001e6b: SWAP2 00001e6c: SWAP1 00001e6d: PUSH2 0x36c4 00001e70: JUMP 00001e71: JUMPDEST 00001e72: SWAP1 00001e73: POP 00001e74: PUSH1 0x00 00001e76: DUP3 00001e77: PUSH1 0x00 00001e79: DUP2 00001e7a: MLOAD 00001e7b: DUP2 00001e7c: LT 00001e7d: PUSH2 0x1e88 00001e80: JUMPI 00001e81: PUSH2 0x1e88 00001e84: PUSH2 0x34a1 00001e87: JUMP 00001e88: JUMPDEST 00001e89: PUSH1 0x20 00001e8b: MUL 00001e8c: PUSH1 0x20 00001e8e: ADD 00001e8f: ADD 00001e90: MLOAD 00001e91: DUP4 00001e92: PUSH1 0x01 00001e94: DUP2 00001e95: MLOAD 00001e96: DUP2 00001e97: LT 00001e98: PUSH2 0x1ea3 00001e9b: JUMPI 00001e9c: PUSH2 0x1ea3 00001e9f: PUSH2 0x34a1 00001ea2: JUMP 00001ea3: JUMPDEST 00001ea4: PUSH1 0x20 00001ea6: MUL 00001ea7: PUSH1 0x20 00001ea9: ADD 00001eaa: ADD 00001eab: MLOAD 00001eac: PUSH2 0x1eb5 00001eaf: SWAP2 00001eb0: SWAP1 00001eb1: PUSH2 0x3709 00001eb4: JUMP 00001eb5: JUMPDEST 00001eb6: SWAP1 00001eb7: POP 00001eb8: PUSH4 0xffffffff 00001ebd: DUP9 00001ebe: AND 00001ebf: PUSH2 0x1ec8 00001ec2: DUP2 00001ec3: DUP5 00001ec4: PUSH2 0x3729 00001ec7: JUMP 00001ec8: JUMPDEST 00001ec9: SWAP8 00001eca: POP 00001ecb: PUSH1 0x00 00001ecd: DUP4 00001ece: PUSH1 0x06 00001ed0: SIGNEXTEND 00001ed1: SLT 00001ed2: DUP1 00001ed3: ISZERO 00001ed4: PUSH2 0x1ee8 00001ed7: JUMPI 00001ed8: POP 00001ed9: PUSH2 0x1ee2 00001edc: DUP2 00001edd: DUP5 00001ede: PUSH2 0x379d 00001ee1: JUMP 00001ee2: JUMPDEST 00001ee3: PUSH1 0x06 00001ee5: SIGNEXTEND 00001ee6: ISZERO 00001ee7: ISZERO 00001ee8: JUMPDEST 00001ee9: ISZERO 00001eea: PUSH2 0x1efb 00001eed: JUMPI 00001eee: DUP8 00001eef: PUSH2 0x1ef7 00001ef2: DUP2 00001ef3: PUSH2 0x37bf 00001ef6: JUMP 00001ef7: JUMPDEST 00001ef8: SWAP9 00001ef9: POP 00001efa: POP 00001efb: JUMPDEST 00001efc: PUSH4 0xffffffff 00001f01: DUP10 00001f02: AND 00001f03: PUSH24 0xffffffffffffffffffffffffffffffffffffffff00000000 00001f1c: PUSH1 0x20 00001f1e: DUP5 00001f1f: SWAP1 00001f20: SHL 00001f21: AND 00001f22: PUSH2 0x1f32 00001f25: PUSH1 0x01 00001f27: PUSH1 0x01 00001f29: PUSH1 0xa0 00001f2b: SHL 00001f2c: SUB 00001f2d: DUP4 00001f2e: PUSH2 0x381c 00001f31: JUMP 00001f32: JUMPDEST 00001f33: PUSH2 0x1f3c 00001f36: SWAP2 00001f37: SWAP1 00001f38: PUSH2 0x385f 00001f3b: JUMP 00001f3c: JUMPDEST 00001f3d: SWAP8 00001f3e: POP 00001f3f: POP 00001f40: POP 00001f41: POP 00001f42: POP 00001f43: POP 00001f44: POP 00001f45: POP 00001f46: SWAP3 00001f47: POP 00001f48: SWAP3 00001f49: SWAP1 00001f4a: POP 00001f4b: JUMP 00001f4c: JUMPDEST 00001f4d: PUSH1 0x00 00001f4f: DUP1 00001f50: PUSH1 0x00 00001f52: DUP4 00001f53: PUSH1 0x02 00001f55: SIGNEXTEND 00001f56: SLT 00001f57: PUSH2 0x1f63 00001f5a: JUMPI 00001f5b: DUP3 00001f5c: PUSH1 0x02 00001f5e: SIGNEXTEND 00001f5f: PUSH2 0x1f70 00001f62: JUMP 00001f63: JUMPDEST 00001f64: DUP3 00001f65: PUSH1 0x02 00001f67: SIGNEXTEND 00001f68: PUSH2 0x1f70 00001f6b: SWAP1 00001f6c: PUSH2 0x3896 00001f6f: JUMP 00001f70: JUMPDEST 00001f71: SWAP1 00001f72: POP 00001f73: PUSH2 0x1f9b 00001f76: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff27618 00001f97: PUSH2 0x38ce 00001f9a: JUMP 00001f9b: JUMPDEST 00001f9c: PUSH1 0x02 00001f9e: SIGNEXTEND 00001f9f: DUP2 00001fa0: GT 00001fa1: ISZERO 00001fa2: PUSH2 0x2007 00001fa5: JUMPI 00001fa6: PUSH1 0x40 00001fa8: MLOAD 00001fa9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001fca: DUP2 00001fcb: MSTORE 00001fcc: PUSH1 0x20 00001fce: PUSH1 0x04 00001fd0: DUP3 00001fd1: ADD 00001fd2: MSTORE 00001fd3: PUSH1 0x01 00001fd5: PUSH1 0x24 00001fd7: DUP3 00001fd8: ADD 00001fd9: MSTORE 00001fda: PUSH32 0x5400000000000000000000000000000000000000000000000000000000000000 00001ffb: PUSH1 0x44 00001ffd: DUP3 00001ffe: ADD 00001fff: MSTORE 00002000: PUSH1 0x64 00002002: ADD 00002003: PUSH2 0x02c7 00002006: JUMP 00002007: JUMPDEST 00002008: PUSH1 0x00 0000200a: DUP2 0000200b: PUSH1 0x01 0000200d: AND 0000200e: PUSH1 0x00 00002010: SUB 00002011: PUSH2 0x202b 00002014: JUMPI 00002015: PUSH17 0x0100000000000000000000000000000000 00002027: PUSH2 0x203d 0000202a: JUMP 0000202b: JUMPDEST 0000202c: PUSH16 0xfffcb933bd6fad37aa2d162d1a594001 0000203d: JUMPDEST 0000203e: PUSH17 0xffffffffffffffffffffffffffffffffff 00002050: AND 00002051: SWAP1 00002052: POP 00002053: PUSH1 0x02 00002055: DUP3 00002056: AND 00002057: ISZERO 00002058: PUSH2 0x207c 0000205b: JUMPI 0000205c: PUSH1 0x80 0000205e: PUSH2 0x2077 00002061: DUP3 00002062: PUSH16 0xfff97272373d413259a46990580e213a 00002073: PUSH2 0x3289 00002076: JUMP 00002077: JUMPDEST 00002078: SWAP1 00002079: SHR 0000207a: SWAP1 0000207b: POP 0000207c: JUMPDEST 0000207d: PUSH1 0x04 0000207f: DUP3 00002080: AND 00002081: ISZERO 00002082: PUSH2 0x20a6 00002085: JUMPI 00002086: PUSH1 0x80 00002088: PUSH2 0x20a1 0000208b: DUP3 0000208c: PUSH16 0xfff2e50f5f656932ef12357cf3c7fdcc 0000209d: PUSH2 0x3289 000020a0: JUMP 000020a1: JUMPDEST 000020a2: SWAP1 000020a3: SHR 000020a4: SWAP1 000020a5: POP 000020a6: JUMPDEST 000020a7: PUSH1 0x08 000020a9: DUP3 000020aa: AND 000020ab: ISZERO 000020ac: PUSH2 0x20d0 000020af: JUMPI 000020b0: PUSH1 0x80 000020b2: PUSH2 0x20cb 000020b5: DUP3 000020b6: PUSH16 0xffe5caca7e10e4e61c3624eaa0941cd0 000020c7: PUSH2 0x3289 000020ca: JUMP 000020cb: JUMPDEST 000020cc: SWAP1 000020cd: SHR 000020ce: SWAP1 000020cf: POP 000020d0: JUMPDEST 000020d1: PUSH1 0x10 000020d3: DUP3 000020d4: AND 000020d5: ISZERO 000020d6: PUSH2 0x20fa 000020d9: JUMPI 000020da: PUSH1 0x80 000020dc: PUSH2 0x20f5 000020df: DUP3 000020e0: PUSH16 0xffcb9843d60f6159c9db58835c926644 000020f1: PUSH2 0x3289 000020f4: JUMP 000020f5: JUMPDEST 000020f6: SWAP1 000020f7: SHR 000020f8: SWAP1 000020f9: POP 000020fa: JUMPDEST 000020fb: PUSH1 0x20 000020fd: DUP3 000020fe: AND 000020ff: ISZERO 00002100: PUSH2 0x2124 00002103: JUMPI 00002104: PUSH1 0x80 00002106: PUSH2 0x211f 00002109: DUP3 0000210a: PUSH16 0xff973b41fa98c081472e6896dfb254c0 0000211b: PUSH2 0x3289 0000211e: JUMP 0000211f: JUMPDEST 00002120: SWAP1 00002121: SHR 00002122: SWAP1 00002123: POP 00002124: JUMPDEST 00002125: PUSH1 0x40 00002127: DUP3 00002128: AND 00002129: ISZERO 0000212a: PUSH2 0x214e 0000212d: JUMPI 0000212e: PUSH1 0x80 00002130: PUSH2 0x2149 00002133: DUP3 00002134: PUSH16 0xff2ea16466c96a3843ec78b326b52861 00002145: PUSH2 0x3289 00002148: JUMP 00002149: JUMPDEST 0000214a: SWAP1 0000214b: SHR 0000214c: SWAP1 0000214d: POP 0000214e: JUMPDEST 0000214f: PUSH1 0x80 00002151: DUP3 00002152: AND 00002153: ISZERO 00002154: PUSH2 0x2178 00002157: JUMPI 00002158: PUSH1 0x80 0000215a: PUSH2 0x2173 0000215d: DUP3 0000215e: PUSH16 0xfe5dee046a99a2a811c461f1969c3053 0000216f: PUSH2 0x3289 00002172: JUMP 00002173: JUMPDEST 00002174: SWAP1 00002175: SHR 00002176: SWAP1 00002177: POP 00002178: JUMPDEST 00002179: PUSH2 0x0100 0000217c: DUP3 0000217d: AND 0000217e: ISZERO 0000217f: PUSH2 0x21a3 00002182: JUMPI 00002183: PUSH1 0x80 00002185: PUSH2 0x219e 00002188: DUP3 00002189: PUSH16 0xfcbe86c7900a88aedcffc83b479aa3a4 0000219a: PUSH2 0x3289 0000219d: JUMP 0000219e: JUMPDEST 0000219f: SWAP1 000021a0: SHR 000021a1: SWAP1 000021a2: POP 000021a3: JUMPDEST 000021a4: PUSH2 0x0200 000021a7: DUP3 000021a8: AND 000021a9: ISZERO 000021aa: PUSH2 0x21ce 000021ad: JUMPI 000021ae: PUSH1 0x80 000021b0: PUSH2 0x21c9 000021b3: DUP3 000021b4: PUSH16 0xf987a7253ac413176f2b074cf7815e54 000021c5: PUSH2 0x3289 000021c8: JUMP 000021c9: JUMPDEST 000021ca: SWAP1 000021cb: SHR 000021cc: SWAP1 000021cd: POP 000021ce: JUMPDEST 000021cf: PUSH2 0x0400 000021d2: DUP3 000021d3: AND 000021d4: ISZERO 000021d5: PUSH2 0x21f9 000021d8: JUMPI 000021d9: PUSH1 0x80 000021db: PUSH2 0x21f4 000021de: DUP3 000021df: PUSH16 0xf3392b0822b70005940c7a398e4b70f3 000021f0: PUSH2 0x3289 000021f3: JUMP 000021f4: JUMPDEST 000021f5: SWAP1 000021f6: SHR 000021f7: SWAP1 000021f8: POP 000021f9: JUMPDEST 000021fa: PUSH2 0x0800 000021fd: DUP3 000021fe: AND 000021ff: ISZERO 00002200: PUSH2 0x2224 00002203: JUMPI 00002204: PUSH1 0x80 00002206: PUSH2 0x221f 00002209: DUP3 0000220a: PUSH16 0xe7159475a2c29b7443b29c7fa6e889d9 0000221b: PUSH2 0x3289 0000221e: JUMP 0000221f: JUMPDEST 00002220: SWAP1 00002221: SHR 00002222: SWAP1 00002223: POP 00002224: JUMPDEST 00002225: PUSH2 0x1000 00002228: DUP3 00002229: AND 0000222a: ISZERO 0000222b: PUSH2 0x224f 0000222e: JUMPI 0000222f: PUSH1 0x80 00002231: PUSH2 0x224a 00002234: DUP3 00002235: PUSH16 0xd097f3bdfd2022b8845ad8f792aa5825 00002246: PUSH2 0x3289 00002249: JUMP 0000224a: JUMPDEST 0000224b: SWAP1 0000224c: SHR 0000224d: SWAP1 0000224e: POP 0000224f: JUMPDEST 00002250: PUSH2 0x2000 00002253: DUP3 00002254: AND 00002255: ISZERO 00002256: PUSH2 0x227a 00002259: JUMPI 0000225a: PUSH1 0x80 0000225c: PUSH2 0x2275 0000225f: DUP3 00002260: PUSH16 0xa9f746462d870fdf8a65dc1f90e061e5 00002271: PUSH2 0x3289 00002274: JUMP 00002275: JUMPDEST 00002276: SWAP1 00002277: SHR 00002278: SWAP1 00002279: POP 0000227a: JUMPDEST 0000227b: PUSH2 0x4000 0000227e: DUP3 0000227f: AND 00002280: ISZERO 00002281: PUSH2 0x22a5 00002284: JUMPI 00002285: PUSH1 0x80 00002287: PUSH2 0x22a0 0000228a: DUP3 0000228b: PUSH16 0x70d869a156d2a1b890bb3df62baf32f7 0000229c: PUSH2 0x3289 0000229f: JUMP 000022a0: JUMPDEST 000022a1: SWAP1 000022a2: SHR 000022a3: SWAP1 000022a4: POP 000022a5: JUMPDEST 000022a6: PUSH2 0x8000 000022a9: DUP3 000022aa: AND 000022ab: ISZERO 000022ac: PUSH2 0x22d0 000022af: JUMPI 000022b0: PUSH1 0x80 000022b2: PUSH2 0x22cb 000022b5: DUP3 000022b6: PUSH16 0x31be135f97d08fd981231505542fcfa6 000022c7: PUSH2 0x3289 000022ca: JUMP 000022cb: JUMPDEST 000022cc: SWAP1 000022cd: SHR 000022ce: SWAP1 000022cf: POP 000022d0: JUMPDEST 000022d1: PUSH3 0x010000 000022d5: DUP3 000022d6: AND 000022d7: ISZERO 000022d8: PUSH2 0x22fc 000022db: JUMPI 000022dc: PUSH1 0x80 000022de: PUSH2 0x22f7 000022e1: DUP3 000022e2: PUSH16 0x09aa508b5b7a84e1c677de54f3e99bc9 000022f3: PUSH2 0x3289 000022f6: JUMP 000022f7: JUMPDEST 000022f8: SWAP1 000022f9: SHR 000022fa: SWAP1 000022fb: POP 000022fc: JUMPDEST 000022fd: PUSH3 0x020000 00002301: DUP3 00002302: AND 00002303: ISZERO 00002304: PUSH2 0x2327 00002307: JUMPI 00002308: PUSH1 0x80 0000230a: PUSH2 0x2322 0000230d: DUP3 0000230e: PUSH15 0x5d6af8dedb81196699c329225ee604 0000231e: PUSH2 0x3289 00002321: JUMP 00002322: JUMPDEST 00002323: SWAP1 00002324: SHR 00002325: SWAP1 00002326: POP 00002327: JUMPDEST 00002328: PUSH3 0x040000 0000232c: DUP3 0000232d: AND 0000232e: ISZERO 0000232f: PUSH2 0x2351 00002332: JUMPI 00002333: PUSH1 0x80 00002335: PUSH2 0x234c 00002338: DUP3 00002339: PUSH14 0x2216e584f5fa1ea926041bedfe98 00002348: PUSH2 0x3289 0000234b: JUMP 0000234c: JUMPDEST 0000234d: SWAP1 0000234e: SHR 0000234f: SWAP1 00002350: POP 00002351: JUMPDEST 00002352: PUSH3 0x080000 00002356: DUP3 00002357: AND 00002358: ISZERO 00002359: PUSH2 0x2379 0000235c: JUMPI 0000235d: PUSH1 0x80 0000235f: PUSH2 0x2374 00002362: DUP3 00002363: PUSH12 0x048a170391f7dc42444e8fa2 00002370: PUSH2 0x3289 00002373: JUMP 00002374: JUMPDEST 00002375: SWAP1 00002376: SHR 00002377: SWAP1 00002378: POP 00002379: JUMPDEST 0000237a: PUSH1 0x00 0000237c: DUP5 0000237d: PUSH1 0x02 0000237f: SIGNEXTEND 00002380: SGT 00002381: ISZERO 00002382: PUSH2 0x23b2 00002385: JUMPI 00002386: PUSH2 0x23af 00002389: DUP2 0000238a: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000023ab: PUSH2 0x32cf 000023ae: JUMP 000023af: JUMPDEST 000023b0: SWAP1 000023b1: POP 000023b2: JUMPDEST 000023b3: PUSH2 0x23c1 000023b6: PUSH5 0x0100000000 000023bc: DUP3 000023bd: PUSH2 0x390c 000023c0: JUMP 000023c1: JUMPDEST 000023c2: ISZERO 000023c3: PUSH2 0x23cd 000023c6: JUMPI 000023c7: PUSH1 0x01 000023c9: PUSH2 0x23d0 000023cc: JUMP 000023cd: JUMPDEST 000023ce: PUSH1 0x00 000023d0: JUMPDEST 000023d1: PUSH2 0x23e1 000023d4: SWAP1 000023d5: PUSH1 0xff 000023d7: AND 000023d8: PUSH1 0x20 000023da: DUP4 000023db: SWAP1 000023dc: SHR 000023dd: PUSH2 0x32e3 000023e0: JUMP 000023e1: JUMPDEST 000023e2: SWAP5 000023e3: SWAP4 000023e4: POP 000023e5: POP 000023e6: POP 000023e7: POP 000023e8: JUMP 000023e9: JUMPDEST 000023ea: PUSH1 0x00 000023ec: PUSH16 0xffffffffffffffffffffffffffffffff 000023fd: PUSH1 0x01 000023ff: PUSH1 0x01 00002401: PUSH1 0xa0 00002403: SHL 00002404: SUB 00002405: DUP7 00002406: AND 00002407: GT 00002408: PUSH2 0x2490 0000240b: JUMPI 0000240c: PUSH1 0x00 0000240e: PUSH2 0x2420 00002411: PUSH1 0x01 00002413: PUSH1 0x01 00002415: PUSH1 0xa0 00002417: SHL 00002418: SUB 00002419: DUP8 0000241a: AND 0000241b: DUP1 0000241c: PUSH2 0x3289 0000241f: JUMP 00002420: JUMPDEST 00002421: SWAP1 00002422: POP 00002423: DUP3 00002424: PUSH1 0x01 00002426: PUSH1 0x01 00002428: PUSH1 0xa0 0000242a: SHL 0000242b: SUB 0000242c: AND 0000242d: DUP5 0000242e: PUSH1 0x01 00002430: PUSH1 0x01 00002432: PUSH1 0xa0 00002434: SHL 00002435: SUB 00002436: AND 00002437: LT 00002438: PUSH2 0x2464 0000243b: JUMPI 0000243c: PUSH2 0x245f 0000243f: PUSH25 0x01000000000000000000000000000000000000000000000000 00002459: DUP7 0000245a: DUP4 0000245b: PUSH2 0x2c20 0000245e: JUMP 0000245f: JUMPDEST 00002460: PUSH2 0x2488 00002463: JUMP 00002464: JUMPDEST 00002465: PUSH2 0x2488 00002468: DUP2 00002469: DUP7 0000246a: PUSH25 0x01000000000000000000000000000000000000000000000000 00002484: PUSH2 0x2c20 00002487: JUMP 00002488: JUMPDEST 00002489: SWAP2 0000248a: POP 0000248b: POP 0000248c: PUSH2 0x23e1 0000248f: JUMP 00002490: JUMPDEST 00002491: PUSH1 0x00 00002493: PUSH2 0x24af 00002496: PUSH1 0x01 00002498: PUSH1 0x01 0000249a: PUSH1 0xa0 0000249c: SHL 0000249d: SUB 0000249e: DUP8 0000249f: AND 000024a0: DUP1 000024a1: PUSH9 0x010000000000000000 000024ab: PUSH2 0x2c20 000024ae: JUMP 000024af: JUMPDEST 000024b0: SWAP1 000024b1: POP 000024b2: DUP3 000024b3: PUSH1 0x01 000024b5: PUSH1 0x01 000024b7: PUSH1 0xa0 000024b9: SHL 000024ba: SUB 000024bb: AND 000024bc: DUP5 000024bd: PUSH1 0x01 000024bf: PUSH1 0x01 000024c1: PUSH1 0xa0 000024c3: SHL 000024c4: SUB 000024c5: AND 000024c6: LT 000024c7: PUSH2 0x24eb 000024ca: JUMPI 000024cb: PUSH2 0x24e6 000024ce: PUSH17 0x0100000000000000000000000000000000 000024e0: DUP7 000024e1: DUP4 000024e2: PUSH2 0x2c20 000024e5: JUMP 000024e6: JUMPDEST 000024e7: PUSH2 0x08df 000024ea: JUMP 000024eb: JUMPDEST 000024ec: PUSH2 0x08df 000024ef: DUP2 000024f0: DUP7 000024f1: PUSH17 0x0100000000000000000000000000000000 00002503: PUSH2 0x2c20 00002506: JUMP 00002507: JUMPDEST 00002508: PUSH1 0x02 0000250a: DUP1 0000250b: SLOAD 0000250c: SUB 0000250d: PUSH2 0x2542 00002510: JUMPI 00002511: PUSH1 0x40 00002513: MLOAD 00002514: PUSH32 0x3ee5aeb500000000000000000000000000000000000000000000000000000000 00002535: DUP2 00002536: MSTORE 00002537: PUSH1 0x04 00002539: ADD 0000253a: PUSH1 0x40 0000253c: MLOAD 0000253d: DUP1 0000253e: SWAP2 0000253f: SUB 00002540: SWAP1 00002541: REVERT 00002542: JUMPDEST 00002543: PUSH1 0x02 00002545: DUP1 00002546: SSTORE 00002547: JUMP 00002548: JUMPDEST 00002549: PUSH1 0x40 0000254b: MLOAD 0000254c: PUSH32 0xdd62ed3e00000000000000000000000000000000000000000000000000000000 0000256d: DUP2 0000256e: MSTORE 0000256f: ADDRESS 00002570: PUSH1 0x04 00002572: DUP3 00002573: ADD 00002574: MSTORE 00002575: PUSH1 0x01 00002577: PUSH1 0x01 00002579: PUSH1 0xa0 0000257b: SHL 0000257c: SUB 0000257d: DUP4 0000257e: DUP2 0000257f: AND 00002580: PUSH1 0x24 00002582: DUP4 00002583: ADD 00002584: MSTORE 00002585: PUSH1 0x00 00002587: SWAP2 00002588: SWAP1 00002589: DUP6 0000258a: AND 0000258b: SWAP1 0000258c: PUSH4 0xdd62ed3e 00002591: SWAP1 00002592: PUSH1 0x44 00002594: ADD 00002595: PUSH1 0x20 00002597: PUSH1 0x40 00002599: MLOAD 0000259a: DUP1 0000259b: DUP4 0000259c: SUB 0000259d: DUP2 0000259e: DUP7 0000259f: GAS 000025a0: STATICCALL 000025a1: ISZERO 000025a2: DUP1 000025a3: ISZERO 000025a4: PUSH2 0x25b1 000025a7: JUMPI 000025a8: RETURNDATASIZE 000025a9: PUSH1 0x00 000025ab: DUP1 000025ac: RETURNDATACOPY 000025ad: RETURNDATASIZE 000025ae: PUSH1 0x00 000025b0: REVERT 000025b1: JUMPDEST 000025b2: POP 000025b3: POP 000025b4: POP 000025b5: POP 000025b6: PUSH1 0x40 000025b8: MLOAD 000025b9: RETURNDATASIZE 000025ba: PUSH1 0x1f 000025bc: NOT 000025bd: PUSH1 0x1f 000025bf: DUP3 000025c0: ADD 000025c1: AND 000025c2: DUP3 000025c3: ADD 000025c4: DUP1 000025c5: PUSH1 0x40 000025c7: MSTORE 000025c8: POP 000025c9: DUP2 000025ca: ADD 000025cb: SWAP1 000025cc: PUSH2 0x25d5 000025cf: SWAP2 000025d0: SWAP1 000025d1: PUSH2 0x3270 000025d4: JUMP 000025d5: JUMPDEST 000025d6: SWAP1 000025d7: POP 000025d8: PUSH2 0x11b7 000025db: DUP5 000025dc: DUP5 000025dd: PUSH2 0x25e6 000025e0: DUP6 000025e1: DUP6 000025e2: PUSH2 0x32e3 000025e5: JUMP 000025e6: JUMPDEST 000025e7: PUSH2 0x2d1b 000025ea: JUMP 000025eb: JUMPDEST 000025ec: DUP1 000025ed: SELFBALANCE 000025ee: LT 000025ef: ISZERO 000025f0: PUSH2 0x2627 000025f3: JUMPI 000025f4: PUSH1 0x40 000025f6: MLOAD 000025f7: PUSH32 0xcd78605900000000000000000000000000000000000000000000000000000000 00002618: DUP2 00002619: MSTORE 0000261a: ADDRESS 0000261b: PUSH1 0x04 0000261d: DUP3 0000261e: ADD 0000261f: MSTORE 00002620: PUSH1 0x24 00002622: ADD 00002623: PUSH2 0x02c7 00002626: JUMP 00002627: JUMPDEST 00002628: PUSH1 0x00 0000262a: DUP3 0000262b: PUSH1 0x01 0000262d: PUSH1 0x01 0000262f: PUSH1 0xa0 00002631: SHL 00002632: SUB 00002633: AND 00002634: DUP3 00002635: PUSH1 0x40 00002637: MLOAD 00002638: PUSH1 0x00 0000263a: PUSH1 0x40 0000263c: MLOAD 0000263d: DUP1 0000263e: DUP4 0000263f: SUB 00002640: DUP2 00002641: DUP6 00002642: DUP8 00002643: GAS 00002644: CALL 00002645: SWAP3 00002646: POP 00002647: POP 00002648: POP 00002649: RETURNDATASIZE 0000264a: DUP1 0000264b: PUSH1 0x00 0000264d: DUP2 0000264e: EQ 0000264f: PUSH2 0x2674 00002652: JUMPI 00002653: PUSH1 0x40 00002655: MLOAD 00002656: SWAP2 00002657: POP 00002658: PUSH1 0x1f 0000265a: NOT 0000265b: PUSH1 0x3f 0000265d: RETURNDATASIZE 0000265e: ADD 0000265f: AND 00002660: DUP3 00002661: ADD 00002662: PUSH1 0x40 00002664: MSTORE 00002665: RETURNDATASIZE 00002666: DUP3 00002667: MSTORE 00002668: RETURNDATASIZE 00002669: PUSH1 0x00 0000266b: PUSH1 0x20 0000266d: DUP5 0000266e: ADD 0000266f: RETURNDATACOPY 00002670: PUSH2 0x2679 00002673: JUMP 00002674: JUMPDEST 00002675: PUSH1 0x60 00002677: SWAP2 00002678: POP 00002679: JUMPDEST 0000267a: POP 0000267b: POP 0000267c: SWAP1 0000267d: POP 0000267e: DUP1 0000267f: PUSH2 0x26b4 00002682: JUMPI 00002683: PUSH1 0x40 00002685: MLOAD 00002686: PUSH32 0x1425ea4200000000000000000000000000000000000000000000000000000000 000026a7: DUP2 000026a8: MSTORE 000026a9: PUSH1 0x04 000026ab: ADD 000026ac: PUSH1 0x40 000026ae: MLOAD 000026af: DUP1 000026b0: SWAP2 000026b1: SUB 000026b2: SWAP1 000026b3: REVERT 000026b4: JUMPDEST 000026b5: POP 000026b6: POP 000026b7: POP 000026b8: JUMP 000026b9: JUMPDEST 000026ba: PUSH1 0x40 000026bc: MLOAD 000026bd: PUSH1 0x01 000026bf: PUSH1 0x01 000026c1: PUSH1 0xa0 000026c3: SHL 000026c4: SUB 000026c5: DUP5 000026c6: DUP2 000026c7: AND 000026c8: PUSH1 0x24 000026ca: DUP4 000026cb: ADD 000026cc: MSTORE 000026cd: DUP4 000026ce: DUP2 000026cf: AND 000026d0: PUSH1 0x44 000026d2: DUP4 000026d3: ADD 000026d4: MSTORE 000026d5: PUSH1 0x64 000026d7: DUP3 000026d8: ADD 000026d9: DUP4 000026da: SWAP1 000026db: MSTORE 000026dc: PUSH2 0x11b7 000026df: SWAP2 000026e0: DUP7 000026e1: SWAP2 000026e2: DUP3 000026e3: AND 000026e4: SWAP1 000026e5: PUSH4 0x23b872dd 000026ea: SWAP1 000026eb: PUSH1 0x84 000026ed: ADD 000026ee: JUMPDEST 000026ef: PUSH1 0x40 000026f1: MLOAD 000026f2: PUSH1 0x20 000026f4: DUP2 000026f5: DUP4 000026f6: SUB 000026f7: SUB 000026f8: DUP2 000026f9: MSTORE 000026fa: SWAP1 000026fb: PUSH1 0x40 000026fd: MSTORE 000026fe: SWAP2 000026ff: POP 00002700: PUSH1 0xe0 00002702: SHL 00002703: PUSH1 0x20 00002705: DUP3 00002706: ADD 00002707: DUP1 00002708: MLOAD 00002709: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00002726: DUP4 00002727: DUP2 00002728: DUP4 00002729: AND 0000272a: OR 0000272b: DUP4 0000272c: MSTORE 0000272d: POP 0000272e: POP 0000272f: POP 00002730: POP 00002731: PUSH2 0x2dd5 00002734: JUMP 00002735: JUMPDEST 00002736: PUSH1 0x00 00002738: DUP1 00002739: PUSH2 0x2741 0000273c: DUP4 0000273d: PUSH2 0x2e51 00002740: JUMP 00002741: JUMPDEST 00002742: POP 00002743: POP 00002744: PUSH1 0x40 00002746: MLOAD 00002747: PUSH32 0x13ead56200000000000000000000000000000000000000000000000000000000 00002768: DUP2 00002769: MSTORE 0000276a: PUSH1 0x01 0000276c: PUSH1 0x01 0000276e: PUSH1 0xa0 00002770: SHL 00002771: SUB 00002772: DUP1 00002773: DUP5 00002774: AND 00002775: PUSH1 0x04 00002777: DUP4 00002778: ADD 00002779: MSTORE 0000277a: DUP3 0000277b: AND 0000277c: PUSH1 0x24 0000277e: DUP3 0000277f: ADD 00002780: MSTORE 00002781: PUSH2 0x2710 00002784: PUSH1 0x44 00002786: DUP3 00002787: ADD 00002788: MSTORE 00002789: PUSH13 0x01000000000000000000000000 00002797: PUSH1 0x64 00002799: DUP3 0000279a: ADD 0000279b: MSTORE 0000279c: SWAP2 0000279d: SWAP4 0000279e: POP 0000279f: SWAP2 000027a0: POP 000027a1: PUSH20 0xc36442b4a4522e871399cd717abdd847ab11fe88 000027b6: SWAP1 000027b7: DUP2 000027b8: SWAP1 000027b9: PUSH4 0x13ead562 000027be: SWAP1 000027bf: PUSH1 0x84 000027c1: ADD 000027c2: PUSH1 0x20 000027c4: PUSH1 0x40 000027c6: MLOAD 000027c7: DUP1 000027c8: DUP4 000027c9: SUB 000027ca: DUP2 000027cb: PUSH1 0x00 000027cd: DUP8 000027ce: GAS 000027cf: CALL 000027d0: ISZERO 000027d1: DUP1 000027d2: ISZERO 000027d3: PUSH2 0x27e0 000027d6: JUMPI 000027d7: RETURNDATASIZE 000027d8: PUSH1 0x00 000027da: DUP1 000027db: RETURNDATACOPY 000027dc: RETURNDATASIZE 000027dd: PUSH1 0x00 000027df: REVERT 000027e0: JUMPDEST 000027e1: POP 000027e2: POP 000027e3: POP 000027e4: POP 000027e5: PUSH1 0x40 000027e7: MLOAD 000027e8: RETURNDATASIZE 000027e9: PUSH1 0x1f 000027eb: NOT 000027ec: PUSH1 0x1f 000027ee: DUP3 000027ef: ADD 000027f0: AND 000027f1: DUP3 000027f2: ADD 000027f3: DUP1 000027f4: PUSH1 0x40 000027f6: MSTORE 000027f7: POP 000027f8: DUP2 000027f9: ADD 000027fa: SWAP1 000027fb: PUSH2 0x2804 000027fe: SWAP2 000027ff: SWAP1 00002800: PUSH2 0x3920 00002803: JUMP 00002804: JUMPDEST 00002805: PUSH1 0x0c 00002807: DUP1 00002808: SLOAD 00002809: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 0000282a: AND 0000282b: PUSH1 0x01 0000282d: PUSH1 0x01 0000282f: PUSH1 0xa0 00002831: SHL 00002832: SUB 00002833: SWAP3 00002834: SWAP1 00002835: SWAP3 00002836: AND 00002837: SWAP2 00002838: DUP3 00002839: OR 0000283a: SWAP1 0000283b: SSTORE 0000283c: PUSH1 0x40 0000283e: MLOAD 0000283f: PUSH32 0x32148f6700000000000000000000000000000000000000000000000000000000 00002860: DUP2 00002861: MSTORE 00002862: PUSH1 0x64 00002864: PUSH1 0x04 00002866: DUP3 00002867: ADD 00002868: MSTORE 00002869: PUSH4 0x32148f67 0000286e: SWAP1 0000286f: PUSH1 0x24 00002871: ADD 00002872: PUSH1 0x00 00002874: PUSH1 0x40 00002876: MLOAD 00002877: DUP1 00002878: DUP4 00002879: SUB 0000287a: DUP2 0000287b: PUSH1 0x00 0000287d: DUP8 0000287e: DUP1 0000287f: EXTCODESIZE 00002880: ISZERO 00002881: DUP1 00002882: ISZERO 00002883: PUSH2 0x288b 00002886: JUMPI 00002887: PUSH1 0x00 00002889: DUP1 0000288a: REVERT 0000288b: JUMPDEST 0000288c: POP 0000288d: GAS 0000288e: CALL 0000288f: ISZERO 00002890: DUP1 00002891: ISZERO 00002892: PUSH2 0x289f 00002895: JUMPI 00002896: RETURNDATASIZE 00002897: PUSH1 0x00 00002899: DUP1 0000289a: RETURNDATACOPY 0000289b: RETURNDATASIZE 0000289c: PUSH1 0x00 0000289e: REVERT 0000289f: JUMPDEST 000028a0: POP 000028a1: POP 000028a2: POP 000028a3: POP 000028a4: POP 000028a5: POP 000028a6: POP 000028a7: POP 000028a8: JUMP 000028a9: JUMPDEST 000028aa: PUSH20 0xc36442b4a4522e871399cd717abdd847ab11fe88 000028bf: PUSH1 0x00 000028c1: DUP1 000028c2: DUP1 000028c3: DUP1 000028c4: PUSH2 0x28cc 000028c7: DUP7 000028c8: PUSH2 0x2e51 000028cb: JUMP 000028cc: JUMPDEST 000028cd: SWAP4 000028ce: POP 000028cf: SWAP4 000028d0: POP 000028d1: SWAP4 000028d2: POP 000028d3: SWAP4 000028d4: POP 000028d5: PUSH1 0x00 000028d7: PUSH1 0x40 000028d9: MLOAD 000028da: DUP1 000028db: PUSH2 0x0160 000028de: ADD 000028df: PUSH1 0x40 000028e1: MSTORE 000028e2: DUP1 000028e3: DUP7 000028e4: PUSH1 0x01 000028e6: PUSH1 0x01 000028e8: PUSH1 0xa0 000028ea: SHL 000028eb: SUB 000028ec: AND 000028ed: DUP2 000028ee: MSTORE 000028ef: PUSH1 0x20 000028f1: ADD 000028f2: DUP6 000028f3: PUSH1 0x01 000028f5: PUSH1 0x01 000028f7: PUSH1 0xa0 000028f9: SHL 000028fa: SUB 000028fb: AND 000028fc: DUP2 000028fd: MSTORE 000028fe: PUSH1 0x20 00002900: ADD 00002901: PUSH2 0x2710 00002904: PUSH3 0xffffff 00002908: AND 00002909: DUP2 0000290a: MSTORE 0000290b: PUSH1 0x20 0000290d: ADD 0000290e: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff27660 0000292f: PUSH1 0x02 00002931: SIGNEXTEND 00002932: DUP2 00002933: MSTORE 00002934: PUSH1 0x20 00002936: ADD 00002937: PUSH3 0x0d89a0 0000293b: PUSH1 0x02 0000293d: SIGNEXTEND 0000293e: DUP2 0000293f: MSTORE 00002940: PUSH1 0x20 00002942: ADD 00002943: DUP5 00002944: DUP2 00002945: MSTORE 00002946: PUSH1 0x20 00002948: ADD 00002949: DUP4 0000294a: DUP2 0000294b: MSTORE 0000294c: PUSH1 0x20 0000294e: ADD 0000294f: PUSH1 0x64 00002951: DUP6 00002952: PUSH1 0x5a 00002954: PUSH2 0x295d 00002957: SWAP2 00002958: SWAP1 00002959: PUSH2 0x3289 0000295c: JUMP 0000295d: JUMPDEST 0000295e: PUSH2 0x2967 00002961: SWAP2 00002962: SWAP1 00002963: PUSH2 0x32cf 00002966: JUMP 00002967: JUMPDEST 00002968: DUP2 00002969: MSTORE 0000296a: PUSH1 0x20 0000296c: ADD 0000296d: PUSH1 0x64 0000296f: PUSH2 0x2979 00002972: DUP6 00002973: PUSH1 0x5a 00002975: PUSH2 0x3289 00002978: JUMP 00002979: JUMPDEST 0000297a: PUSH2 0x2983 0000297d: SWAP2 0000297e: SWAP1 0000297f: PUSH2 0x32cf 00002982: JUMP 00002983: JUMPDEST 00002984: DUP2 00002985: MSTORE 00002986: ADDRESS 00002987: PUSH1 0x20 00002989: DUP3 0000298a: ADD 0000298b: MSTORE 0000298c: PUSH1 0x40 0000298e: ADD 0000298f: PUSH2 0x299a 00002992: TIMESTAMP 00002993: PUSH2 0x0258 00002996: PUSH2 0x32e3 00002999: JUMP 0000299a: JUMPDEST 0000299b: DUP2 0000299c: MSTORE 0000299d: POP 0000299e: SWAP1 0000299f: POP 000029a0: PUSH1 0x00 000029a2: DUP1 000029a3: DUP8 000029a4: PUSH1 0x01 000029a6: PUSH1 0x01 000029a8: PUSH1 0xa0 000029aa: SHL 000029ab: SUB 000029ac: AND 000029ad: PUSH4 0x88316456 000029b2: DUP5 000029b3: PUSH1 0x40 000029b5: MLOAD 000029b6: DUP3 000029b7: PUSH4 0xffffffff 000029bc: AND 000029bd: PUSH1 0xe0 000029bf: SHL 000029c0: DUP2 000029c1: MSTORE 000029c2: PUSH1 0x04 000029c4: ADD 000029c5: PUSH2 0x29ce 000029c8: SWAP2 000029c9: SWAP1 000029ca: PUSH2 0x393d 000029cd: JUMP 000029ce: JUMPDEST 000029cf: PUSH1 0x80 000029d1: PUSH1 0x40 000029d3: MLOAD 000029d4: DUP1 000029d5: DUP4 000029d6: SUB 000029d7: DUP2 000029d8: PUSH1 0x00 000029da: DUP8 000029db: GAS 000029dc: CALL 000029dd: ISZERO 000029de: DUP1 000029df: ISZERO 000029e0: PUSH2 0x29ed 000029e3: JUMPI 000029e4: RETURNDATASIZE 000029e5: PUSH1 0x00 000029e7: DUP1 000029e8: RETURNDATACOPY 000029e9: RETURNDATASIZE 000029ea: PUSH1 0x00 000029ec: REVERT 000029ed: JUMPDEST 000029ee: POP 000029ef: POP 000029f0: POP 000029f1: POP 000029f2: PUSH1 0x40 000029f4: MLOAD 000029f5: RETURNDATASIZE 000029f6: PUSH1 0x1f 000029f8: NOT 000029f9: PUSH1 0x1f 000029fb: DUP3 000029fc: ADD 000029fd: AND 000029fe: DUP3 000029ff: ADD 00002a00: DUP1 00002a01: PUSH1 0x40 00002a03: MSTORE 00002a04: POP 00002a05: DUP2 00002a06: ADD 00002a07: SWAP1 00002a08: PUSH2 0x2a11 00002a0b: SWAP2 00002a0c: SWAP1 00002a0d: PUSH2 0x3a01 00002a10: JUMP 00002a11: JUMPDEST 00002a12: POP 00002a13: POP 00002a14: PUSH1 0x0d 00002a16: DUP1 00002a17: SLOAD 00002a18: PUSH10 0xffffffffffffffffffff 00002a23: SWAP4 00002a24: SWAP1 00002a25: SWAP4 00002a26: AND 00002a27: PUSH32 0xffffffffffff0000000000000000000000000000000000000000000000000000 00002a48: SWAP1 00002a49: SWAP4 00002a4a: AND 00002a4b: SWAP3 00002a4c: SWAP1 00002a4d: SWAP3 00002a4e: OR 00002a4f: PUSH16 0xffffffffffffffffffffffffffffffff 00002a60: SWAP2 00002a61: SWAP1 00002a62: SWAP2 00002a63: AND 00002a64: PUSH11 0x0100000000000000000000 00002a70: MUL 00002a71: OR 00002a72: PUSH26 0xffffffffffffffffffffffffffffffffffffffffffffffffffff 00002a8d: AND 00002a8e: PUSH32 0x0d89a0f276600000000000000000000000000000000000000000000000000000 00002aaf: OR 00002ab0: SWAP1 00002ab1: SSTORE 00002ab2: POP 00002ab3: POP 00002ab4: POP 00002ab5: POP 00002ab6: POP 00002ab7: POP 00002ab8: POP 00002ab9: POP 00002aba: POP 00002abb: JUMP 00002abc: JUMPDEST 00002abd: PUSH1 0x01 00002abf: DUP1 00002ac0: SLOAD 00002ac1: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00002ae2: AND 00002ae3: SWAP1 00002ae4: SSTORE 00002ae5: PUSH2 0x1341 00002ae8: DUP2 00002ae9: PUSH2 0x2e8f 00002aec: JUMP 00002aed: JUMPDEST 00002aee: PUSH1 0x40 00002af0: DUP1 00002af1: MLOAD 00002af2: PUSH1 0x80 00002af4: DUP2 00002af5: ADD 00002af6: DUP3 00002af7: MSTORE 00002af8: PUSH1 0x0d 00002afa: SLOAD 00002afb: PUSH10 0xffffffffffffffffffff 00002b06: AND 00002b07: DUP2 00002b08: MSTORE 00002b09: ADDRESS 00002b0a: PUSH1 0x20 00002b0c: DUP3 00002b0d: ADD 00002b0e: SWAP1 00002b0f: DUP2 00002b10: MSTORE 00002b11: PUSH16 0xffffffffffffffffffffffffffffffff 00002b22: DUP3 00002b23: DUP5 00002b24: ADD 00002b25: DUP2 00002b26: DUP2 00002b27: MSTORE 00002b28: PUSH1 0x60 00002b2a: DUP5 00002b2b: ADD 00002b2c: DUP3 00002b2d: DUP2 00002b2e: MSTORE 00002b2f: SWAP5 00002b30: MLOAD 00002b31: PUSH32 0xfc6f786500000000000000000000000000000000000000000000000000000000 00002b52: DUP2 00002b53: MSTORE 00002b54: DUP5 00002b55: MLOAD 00002b56: PUSH1 0x04 00002b58: DUP3 00002b59: ADD 00002b5a: MSTORE 00002b5b: SWAP3 00002b5c: MLOAD 00002b5d: PUSH1 0x01 00002b5f: PUSH1 0x01 00002b61: PUSH1 0xa0 00002b63: SHL 00002b64: SUB 00002b65: AND 00002b66: PUSH1 0x24 00002b68: DUP5 00002b69: ADD 00002b6a: MSTORE 00002b6b: MLOAD 00002b6c: DUP2 00002b6d: AND 00002b6e: PUSH1 0x44 00002b70: DUP4 00002b71: ADD 00002b72: MSTORE 00002b73: SWAP3 00002b74: MLOAD 00002b75: SWAP1 00002b76: SWAP3 00002b77: AND 00002b78: PUSH1 0x64 00002b7a: DUP4 00002b7b: ADD 00002b7c: MSTORE 00002b7d: PUSH1 0x00 00002b7f: SWAP2 00002b80: DUP3 00002b81: SWAP2 00002b82: PUSH20 0xc36442b4a4522e871399cd717abdd847ab11fe88 00002b97: SWAP2 00002b98: DUP3 00002b99: SWAP1 00002b9a: PUSH4 0xfc6f7865 00002b9f: SWAP1 00002ba0: PUSH1 0x84 00002ba2: ADD 00002ba3: PUSH1 0x40 00002ba5: DUP1 00002ba6: MLOAD 00002ba7: DUP1 00002ba8: DUP4 00002ba9: SUB 00002baa: DUP2 00002bab: PUSH1 0x00 00002bad: DUP8 00002bae: GAS 00002baf: CALL 00002bb0: ISZERO 00002bb1: DUP1 00002bb2: ISZERO 00002bb3: PUSH2 0x2bc0 00002bb6: JUMPI 00002bb7: RETURNDATASIZE 00002bb8: PUSH1 0x00 00002bba: DUP1 00002bbb: RETURNDATACOPY 00002bbc: RETURNDATASIZE 00002bbd: PUSH1 0x00 00002bbf: REVERT 00002bc0: JUMPDEST 00002bc1: POP 00002bc2: POP 00002bc3: POP 00002bc4: POP 00002bc5: PUSH1 0x40 00002bc7: MLOAD 00002bc8: RETURNDATASIZE 00002bc9: PUSH1 0x1f 00002bcb: NOT 00002bcc: PUSH1 0x1f 00002bce: DUP3 00002bcf: ADD 00002bd0: AND 00002bd1: DUP3 00002bd2: ADD 00002bd3: DUP1 00002bd4: PUSH1 0x40 00002bd6: MSTORE 00002bd7: POP 00002bd8: DUP2 00002bd9: ADD 00002bda: SWAP1 00002bdb: PUSH2 0x2be4 00002bde: SWAP2 00002bdf: SWAP1 00002be0: PUSH2 0x3a54 00002be3: JUMP 00002be4: JUMPDEST 00002be5: SWAP1 00002be6: SWAP6 00002be7: SWAP1 00002be8: SWAP5 00002be9: POP 00002bea: SWAP3 00002beb: POP 00002bec: POP 00002bed: POP 00002bee: JUMP 00002bef: JUMPDEST 00002bf0: PUSH1 0x40 00002bf2: MLOAD 00002bf3: PUSH1 0x01 00002bf5: PUSH1 0x01 00002bf7: PUSH1 0xa0 00002bf9: SHL 00002bfa: SUB 00002bfb: DUP4 00002bfc: DUP2 00002bfd: AND 00002bfe: PUSH1 0x24 00002c00: DUP4 00002c01: ADD 00002c02: MSTORE 00002c03: PUSH1 0x44 00002c05: DUP3 00002c06: ADD 00002c07: DUP4 00002c08: SWAP1 00002c09: MSTORE 00002c0a: PUSH2 0x26b4 00002c0d: SWAP2 00002c0e: DUP6 00002c0f: SWAP2 00002c10: DUP3 00002c11: AND 00002c12: SWAP1 00002c13: PUSH4 0xa9059cbb 00002c18: SWAP1 00002c19: PUSH1 0x64 00002c1b: ADD 00002c1c: PUSH2 0x26ee 00002c1f: JUMP 00002c20: JUMPDEST 00002c21: PUSH1 0x00 00002c23: DUP4 00002c24: DUP4 00002c25: MUL 00002c26: DUP2 00002c27: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00002c48: DUP6 00002c49: DUP8 00002c4a: MULMOD 00002c4b: DUP3 00002c4c: DUP2 00002c4d: LT 00002c4e: DUP4 00002c4f: DUP3 00002c50: SUB 00002c51: SUB 00002c52: SWAP2 00002c53: POP 00002c54: POP 00002c55: DUP1 00002c56: PUSH1 0x00 00002c58: SUB 00002c59: PUSH2 0x2c75 00002c5c: JUMPI 00002c5d: DUP4 00002c5e: DUP3 00002c5f: DUP2 00002c60: PUSH2 0x2c6b 00002c63: JUMPI 00002c64: PUSH2 0x2c6b 00002c67: PUSH2 0x32a0 00002c6a: JUMP 00002c6b: JUMPDEST 00002c6c: DIV 00002c6d: SWAP3 00002c6e: POP 00002c6f: POP 00002c70: POP 00002c71: PUSH2 0x1950 00002c74: JUMP 00002c75: JUMPDEST 00002c76: DUP1 00002c77: DUP5 00002c78: GT 00002c79: PUSH2 0x2cae 00002c7c: JUMPI 00002c7d: PUSH1 0x40 00002c7f: MLOAD 00002c80: PUSH32 0x227bc15300000000000000000000000000000000000000000000000000000000 00002ca1: DUP2 00002ca2: MSTORE 00002ca3: PUSH1 0x04 00002ca5: ADD 00002ca6: PUSH1 0x40 00002ca8: MLOAD 00002ca9: DUP1 00002caa: SWAP2 00002cab: SUB 00002cac: SWAP1 00002cad: REVERT 00002cae: JUMPDEST 00002caf: PUSH1 0x00 00002cb1: DUP5 00002cb2: DUP7 00002cb3: DUP9 00002cb4: MULMOD 00002cb5: PUSH1 0x00 00002cb7: DUP7 00002cb8: DUP2 00002cb9: SUB 00002cba: DUP8 00002cbb: AND 00002cbc: SWAP7 00002cbd: DUP8 00002cbe: SWAP1 00002cbf: DIV 00002cc0: SWAP7 00002cc1: PUSH1 0x02 00002cc3: PUSH1 0x03 00002cc5: DUP10 00002cc6: MUL 00002cc7: DUP2 00002cc8: XOR 00002cc9: DUP1 00002cca: DUP11 00002ccb: MUL 00002ccc: DUP3 00002ccd: SUB 00002cce: MUL 00002ccf: DUP1 00002cd0: DUP11 00002cd1: MUL 00002cd2: DUP3 00002cd3: SUB 00002cd4: MUL 00002cd5: DUP1 00002cd6: DUP11 00002cd7: MUL 00002cd8: DUP3 00002cd9: SUB 00002cda: MUL 00002cdb: DUP1 00002cdc: DUP11 00002cdd: MUL 00002cde: DUP3 00002cdf: SUB 00002ce0: MUL 00002ce1: DUP1 00002ce2: DUP11 00002ce3: MUL 00002ce4: DUP3 00002ce5: SUB 00002ce6: MUL 00002ce7: DUP1 00002ce8: DUP11 00002ce9: MUL 00002cea: SWAP1 00002ceb: SWAP2 00002cec: SUB 00002ced: MUL 00002cee: SWAP2 00002cef: DUP2 00002cf0: SWAP1 00002cf1: SUB 00002cf2: DUP2 00002cf3: SWAP1 00002cf4: DIV 00002cf5: PUSH1 0x01 00002cf7: ADD 00002cf8: DUP7 00002cf9: DUP5 00002cfa: GT 00002cfb: SWAP1 00002cfc: SWAP6 00002cfd: SUB 00002cfe: SWAP5 00002cff: SWAP1 00002d00: SWAP5 00002d01: MUL 00002d02: SWAP2 00002d03: SWAP1 00002d04: SWAP5 00002d05: SUB 00002d06: SWAP3 00002d07: SWAP1 00002d08: SWAP3 00002d09: DIV 00002d0a: SWAP2 00002d0b: SWAP1 00002d0c: SWAP2 00002d0d: OR 00002d0e: SWAP2 00002d0f: SWAP1 00002d10: SWAP2 00002d11: MUL 00002d12: SWAP2 00002d13: POP 00002d14: POP 00002d15: SWAP4 00002d16: SWAP3 00002d17: POP 00002d18: POP 00002d19: POP 00002d1a: JUMP 00002d1b: JUMPDEST 00002d1c: PUSH1 0x40 00002d1e: DUP1 00002d1f: MLOAD 00002d20: PUSH1 0x01 00002d22: PUSH1 0x01 00002d24: PUSH1 0xa0 00002d26: SHL 00002d27: SUB 00002d28: DUP5 00002d29: AND 00002d2a: PUSH1 0x24 00002d2c: DUP3 00002d2d: ADD 00002d2e: MSTORE 00002d2f: PUSH1 0x44 00002d31: DUP1 00002d32: DUP3 00002d33: ADD 00002d34: DUP5 00002d35: SWAP1 00002d36: MSTORE 00002d37: DUP3 00002d38: MLOAD 00002d39: DUP1 00002d3a: DUP4 00002d3b: SUB 00002d3c: SWAP1 00002d3d: SWAP2 00002d3e: ADD 00002d3f: DUP2 00002d40: MSTORE 00002d41: PUSH1 0x64 00002d43: SWAP1 00002d44: SWAP2 00002d45: ADD 00002d46: SWAP1 00002d47: SWAP2 00002d48: MSTORE 00002d49: PUSH1 0x20 00002d4b: DUP2 00002d4c: ADD 00002d4d: DUP1 00002d4e: MLOAD 00002d4f: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00002d6c: AND 00002d6d: PUSH32 0x095ea7b300000000000000000000000000000000000000000000000000000000 00002d8e: OR 00002d8f: SWAP1 00002d90: MSTORE 00002d91: PUSH2 0x2d9a 00002d94: DUP5 00002d95: DUP3 00002d96: PUSH2 0x2ef7 00002d99: JUMP 00002d9a: JUMPDEST 00002d9b: PUSH2 0x11b7 00002d9e: JUMPI 00002d9f: PUSH1 0x40 00002da1: MLOAD 00002da2: PUSH1 0x01 00002da4: PUSH1 0x01 00002da6: PUSH1 0xa0 00002da8: SHL 00002da9: SUB 00002daa: DUP5 00002dab: DUP2 00002dac: AND 00002dad: PUSH1 0x24 00002daf: DUP4 00002db0: ADD 00002db1: MSTORE 00002db2: PUSH1 0x00 00002db4: PUSH1 0x44 00002db6: DUP4 00002db7: ADD 00002db8: MSTORE 00002db9: PUSH2 0x2dcf 00002dbc: SWAP2 00002dbd: DUP7 00002dbe: SWAP2 00002dbf: DUP3 00002dc0: AND 00002dc1: SWAP1 00002dc2: PUSH4 0x095ea7b3 00002dc7: SWAP1 00002dc8: PUSH1 0x64 00002dca: ADD 00002dcb: PUSH2 0x26ee 00002dce: JUMP 00002dcf: JUMPDEST 00002dd0: PUSH2 0x11b7 00002dd3: DUP5 00002dd4: DUP3 00002dd5: JUMPDEST 00002dd6: PUSH1 0x00 00002dd8: PUSH2 0x2dea 00002ddb: PUSH1 0x01 00002ddd: PUSH1 0x01 00002ddf: PUSH1 0xa0 00002de1: SHL 00002de2: SUB 00002de3: DUP5 00002de4: AND 00002de5: DUP4 00002de6: PUSH2 0x2fa1 00002de9: JUMP 00002dea: JUMPDEST 00002deb: SWAP1 00002dec: POP 00002ded: DUP1 00002dee: MLOAD 00002def: PUSH1 0x00 00002df1: EQ 00002df2: ISZERO 00002df3: DUP1 00002df4: ISZERO 00002df5: PUSH2 0x2e0f 00002df8: JUMPI 00002df9: POP 00002dfa: DUP1 00002dfb: DUP1 00002dfc: PUSH1 0x20 00002dfe: ADD 00002dff: SWAP1 00002e00: MLOAD 00002e01: DUP2 00002e02: ADD 00002e03: SWAP1 00002e04: PUSH2 0x2e0d 00002e07: SWAP2 00002e08: SWAP1 00002e09: PUSH2 0x3a78 00002e0c: JUMP 00002e0d: JUMPDEST 00002e0e: ISZERO 00002e0f: JUMPDEST 00002e10: ISZERO 00002e11: PUSH2 0x26b4 00002e14: JUMPI 00002e15: PUSH1 0x40 00002e17: MLOAD 00002e18: PUSH32 0x5274afe700000000000000000000000000000000000000000000000000000000 00002e39: DUP2 00002e3a: MSTORE 00002e3b: PUSH1 0x01 00002e3d: PUSH1 0x01 00002e3f: PUSH1 0xa0 00002e41: SHL 00002e42: SUB 00002e43: DUP5 00002e44: AND 00002e45: PUSH1 0x04 00002e47: DUP3 00002e48: ADD 00002e49: MSTORE 00002e4a: PUSH1 0x24 00002e4c: ADD 00002e4d: PUSH2 0x02c7 00002e50: JUMP 00002e51: JUMPDEST 00002e52: PUSH1 0x03 00002e54: SLOAD 00002e55: PUSH20 0xf19308f923582a6f7c465e5ce7a9dc1bec6665b1 00002e6a: SWAP1 00002e6b: PUSH1 0x01 00002e6d: PUSH1 0x01 00002e6f: PUSH1 0xa0 00002e71: SHL 00002e72: SUB 00002e73: AND 00002e74: DUP3 00002e75: DUP1 00002e76: DUP3 00002e77: DUP5 00002e78: DUP1 00002e79: DUP3 00002e7a: LT 00002e7b: ISZERO 00002e7c: PUSH2 0x2e86 00002e7f: JUMPI 00002e80: DUP2 00002e81: SWAP6 00002e82: POP 00002e83: DUP1 00002e84: SWAP5 00002e85: POP 00002e86: JUMPDEST 00002e87: POP 00002e88: POP 00002e89: SWAP2 00002e8a: SWAP4 00002e8b: POP 00002e8c: SWAP2 00002e8d: SWAP4 00002e8e: JUMP 00002e8f: JUMPDEST 00002e90: PUSH1 0x00 00002e92: DUP1 00002e93: SLOAD 00002e94: PUSH1 0x01 00002e96: PUSH1 0x01 00002e98: PUSH1 0xa0 00002e9a: SHL 00002e9b: SUB 00002e9c: DUP4 00002e9d: DUP2 00002e9e: AND 00002e9f: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00002ec0: DUP4 00002ec1: AND 00002ec2: DUP2 00002ec3: OR 00002ec4: DUP5 00002ec5: SSTORE 00002ec6: PUSH1 0x40 00002ec8: MLOAD 00002ec9: SWAP2 00002eca: SWAP1 00002ecb: SWAP3 00002ecc: AND 00002ecd: SWAP3 00002ece: DUP4 00002ecf: SWAP2 00002ed0: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00002ef1: SWAP2 00002ef2: SWAP1 00002ef3: LOG3 00002ef4: POP 00002ef5: POP 00002ef6: JUMP 00002ef7: JUMPDEST 00002ef8: PUSH1 0x00 00002efa: DUP1 00002efb: PUSH1 0x00 00002efd: DUP5 00002efe: PUSH1 0x01 00002f00: PUSH1 0x01 00002f02: PUSH1 0xa0 00002f04: SHL 00002f05: SUB 00002f06: AND 00002f07: DUP5 00002f08: PUSH1 0x40 00002f0a: MLOAD 00002f0b: PUSH2 0x2f14 00002f0e: SWAP2 00002f0f: SWAP1 00002f10: PUSH2 0x3a93 00002f13: JUMP 00002f14: JUMPDEST 00002f15: PUSH1 0x00 00002f17: PUSH1 0x40 00002f19: MLOAD 00002f1a: DUP1 00002f1b: DUP4 00002f1c: SUB 00002f1d: DUP2 00002f1e: PUSH1 0x00 00002f20: DUP7 00002f21: GAS 00002f22: CALL 00002f23: SWAP2 00002f24: POP 00002f25: POP 00002f26: RETURNDATASIZE 00002f27: DUP1 00002f28: PUSH1 0x00 00002f2a: DUP2 00002f2b: EQ 00002f2c: PUSH2 0x2f51 00002f2f: JUMPI 00002f30: PUSH1 0x40 00002f32: MLOAD 00002f33: SWAP2 00002f34: POP 00002f35: PUSH1 0x1f 00002f37: NOT 00002f38: PUSH1 0x3f 00002f3a: RETURNDATASIZE 00002f3b: ADD 00002f3c: AND 00002f3d: DUP3 00002f3e: ADD 00002f3f: PUSH1 0x40 00002f41: MSTORE 00002f42: RETURNDATASIZE 00002f43: DUP3 00002f44: MSTORE 00002f45: RETURNDATASIZE 00002f46: PUSH1 0x00 00002f48: PUSH1 0x20 00002f4a: DUP5 00002f4b: ADD 00002f4c: RETURNDATACOPY 00002f4d: PUSH2 0x2f56 00002f50: JUMP 00002f51: JUMPDEST 00002f52: PUSH1 0x60 00002f54: SWAP2 00002f55: POP 00002f56: JUMPDEST 00002f57: POP 00002f58: SWAP2 00002f59: POP 00002f5a: SWAP2 00002f5b: POP 00002f5c: DUP2 00002f5d: DUP1 00002f5e: ISZERO 00002f5f: PUSH2 0x2f80 00002f62: JUMPI 00002f63: POP 00002f64: DUP1 00002f65: MLOAD 00002f66: ISZERO 00002f67: DUP1 00002f68: PUSH2 0x2f80 00002f6b: JUMPI 00002f6c: POP 00002f6d: DUP1 00002f6e: DUP1 00002f6f: PUSH1 0x20 00002f71: ADD 00002f72: SWAP1 00002f73: MLOAD 00002f74: DUP2 00002f75: ADD 00002f76: SWAP1 00002f77: PUSH2 0x2f80 00002f7a: SWAP2 00002f7b: SWAP1 00002f7c: PUSH2 0x3a78 00002f7f: JUMP 00002f80: JUMPDEST 00002f81: DUP1 00002f82: ISZERO 00002f83: PUSH2 0x2f96 00002f86: JUMPI 00002f87: POP 00002f88: PUSH1 0x00 00002f8a: DUP6 00002f8b: PUSH1 0x01 00002f8d: PUSH1 0x01 00002f8f: PUSH1 0xa0 00002f91: SHL 00002f92: SUB 00002f93: AND 00002f94: EXTCODESIZE 00002f95: GT 00002f96: JUMPDEST 00002f97: SWAP3 00002f98: POP 00002f99: POP 00002f9a: POP 00002f9b: JUMPDEST 00002f9c: SWAP3 00002f9d: SWAP2 00002f9e: POP 00002f9f: POP 00002fa0: JUMP 00002fa1: JUMPDEST 00002fa2: PUSH1 0x60 00002fa4: PUSH2 0x1950 00002fa7: DUP4 00002fa8: DUP4 00002fa9: PUSH1 0x00 00002fab: DUP5 00002fac: PUSH1 0x00 00002fae: DUP1 00002faf: DUP6 00002fb0: PUSH1 0x01 00002fb2: PUSH1 0x01 00002fb4: PUSH1 0xa0 00002fb6: SHL 00002fb7: SUB 00002fb8: AND 00002fb9: DUP5 00002fba: DUP7 00002fbb: PUSH1 0x40 00002fbd: MLOAD 00002fbe: PUSH2 0x2fc7 00002fc1: SWAP2 00002fc2: SWAP1 00002fc3: PUSH2 0x3a93 00002fc6: JUMP 00002fc7: JUMPDEST 00002fc8: PUSH1 0x00 00002fca: PUSH1 0x40 00002fcc: MLOAD 00002fcd: DUP1 00002fce: DUP4 00002fcf: SUB 00002fd0: DUP2 00002fd1: DUP6 00002fd2: DUP8 00002fd3: GAS 00002fd4: CALL 00002fd5: SWAP3 00002fd6: POP 00002fd7: POP 00002fd8: POP 00002fd9: RETURNDATASIZE 00002fda: DUP1 00002fdb: PUSH1 0x00 00002fdd: DUP2 00002fde: EQ 00002fdf: PUSH2 0x3004 00002fe2: JUMPI 00002fe3: PUSH1 0x40 00002fe5: MLOAD 00002fe6: SWAP2 00002fe7: POP 00002fe8: PUSH1 0x1f 00002fea: NOT 00002feb: PUSH1 0x3f 00002fed: RETURNDATASIZE 00002fee: ADD 00002fef: AND 00002ff0: DUP3 00002ff1: ADD 00002ff2: PUSH1 0x40 00002ff4: MSTORE 00002ff5: RETURNDATASIZE 00002ff6: DUP3 00002ff7: MSTORE 00002ff8: RETURNDATASIZE 00002ff9: PUSH1 0x00 00002ffb: PUSH1 0x20 00002ffd: DUP5 00002ffe: ADD 00002fff: RETURNDATACOPY 00003000: PUSH2 0x3009 00003003: JUMP 00003004: JUMPDEST 00003005: PUSH1 0x60 00003007: SWAP2 00003008: POP 00003009: JUMPDEST 0000300a: POP 0000300b: SWAP2 0000300c: POP 0000300d: SWAP2 0000300e: POP 0000300f: PUSH2 0x08df 00003012: DUP7 00003013: DUP4 00003014: DUP4 00003015: PUSH1 0x60 00003017: DUP3 00003018: PUSH2 0x3029 0000301b: JUMPI 0000301c: PUSH2 0x3024 0000301f: DUP3 00003020: PUSH2 0x3089 00003023: JUMP 00003024: JUMPDEST 00003025: PUSH2 0x1950 00003028: JUMP 00003029: JUMPDEST 0000302a: DUP2 0000302b: MLOAD 0000302c: ISZERO 0000302d: DUP1 0000302e: ISZERO 0000302f: PUSH2 0x3040 00003032: JUMPI 00003033: POP 00003034: PUSH1 0x01 00003036: PUSH1 0x01 00003038: PUSH1 0xa0 0000303a: SHL 0000303b: SUB 0000303c: DUP5 0000303d: AND 0000303e: EXTCODESIZE 0000303f: ISZERO 00003040: JUMPDEST 00003041: ISZERO 00003042: PUSH2 0x3082 00003045: JUMPI 00003046: PUSH1 0x40 00003048: MLOAD 00003049: PUSH32 0x9996b31500000000000000000000000000000000000000000000000000000000 0000306a: DUP2 0000306b: MSTORE 0000306c: PUSH1 0x01 0000306e: PUSH1 0x01 00003070: PUSH1 0xa0 00003072: SHL 00003073: SUB 00003074: DUP6 00003075: AND 00003076: PUSH1 0x04 00003078: DUP3 00003079: ADD 0000307a: MSTORE 0000307b: PUSH1 0x24 0000307d: ADD 0000307e: PUSH2 0x02c7 00003081: JUMP 00003082: JUMPDEST 00003083: POP 00003084: DUP1 00003085: PUSH2 0x1950 00003088: JUMP 00003089: JUMPDEST 0000308a: DUP1 0000308b: MLOAD 0000308c: ISZERO 0000308d: PUSH2 0x3099 00003090: JUMPI 00003091: DUP1 00003092: MLOAD 00003093: DUP1 00003094: DUP3 00003095: PUSH1 0x20 00003097: ADD 00003098: REVERT 00003099: JUMPDEST 0000309a: PUSH1 0x40 0000309c: MLOAD 0000309d: PUSH32 0x1425ea4200000000000000000000000000000000000000000000000000000000 000030be: DUP2 000030bf: MSTORE 000030c0: PUSH1 0x04 000030c2: ADD 000030c3: PUSH1 0x40 000030c5: MLOAD 000030c6: DUP1 000030c7: SWAP2 000030c8: SUB 000030c9: SWAP1 000030ca: REVERT 000030cb: JUMPDEST 000030cc: PUSH1 0x00 000030ce: PUSH1 0x20 000030d0: DUP3 000030d1: DUP5 000030d2: SUB 000030d3: SLT 000030d4: ISZERO 000030d5: PUSH2 0x30dd 000030d8: JUMPI 000030d9: PUSH1 0x00 000030db: DUP1 000030dc: REVERT 000030dd: JUMPDEST 000030de: POP 000030df: CALLDATALOAD 000030e0: SWAP2 000030e1: SWAP1 000030e2: POP 000030e3: JUMP 000030e4: JUMPDEST 000030e5: PUSH4 0xffffffff 000030ea: DUP2 000030eb: AND 000030ec: DUP2 000030ed: EQ 000030ee: PUSH2 0x1341 000030f1: JUMPI 000030f2: PUSH1 0x00 000030f4: DUP1 000030f5: REVERT 000030f6: JUMPDEST 000030f7: PUSH1 0x00 000030f9: PUSH1 0x20 000030fb: DUP3 000030fc: DUP5 000030fd: SUB 000030fe: SLT 000030ff: ISZERO 00003100: PUSH2 0x3108 00003103: JUMPI 00003104: PUSH1 0x00 00003106: DUP1 00003107: REVERT 00003108: JUMPDEST 00003109: DUP2 0000310a: CALLDATALOAD 0000310b: PUSH2 0x1950 0000310e: DUP2 0000310f: PUSH2 0x30e4 00003112: JUMP 00003113: JUMPDEST 00003114: PUSH1 0x01 00003116: PUSH1 0x01 00003118: PUSH1 0xa0 0000311a: SHL 0000311b: SUB 0000311c: DUP2 0000311d: AND 0000311e: DUP2 0000311f: EQ 00003120: PUSH2 0x1341 00003123: JUMPI 00003124: PUSH1 0x00 00003126: DUP1 00003127: REVERT 00003128: JUMPDEST 00003129: PUSH1 0x00 0000312b: PUSH1 0x20 0000312d: DUP3 0000312e: DUP5 0000312f: SUB 00003130: SLT 00003131: ISZERO 00003132: PUSH2 0x313a 00003135: JUMPI 00003136: PUSH1 0x00 00003138: DUP1 00003139: REVERT 0000313a: JUMPDEST 0000313b: DUP2 0000313c: CALLDATALOAD 0000313d: PUSH2 0x1950 00003140: DUP2 00003141: PUSH2 0x3113 00003144: JUMP 00003145: JUMPDEST 00003146: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00003167: PUSH1 0x00 00003169: MSTORE 0000316a: PUSH1 0x11 0000316c: PUSH1 0x04 0000316e: MSTORE 0000316f: PUSH1 0x24 00003171: PUSH1 0x00 00003173: REVERT 00003174: JUMPDEST 00003175: PUSH4 0xffffffff 0000317a: DUP2 0000317b: DUP2 0000317c: AND 0000317d: DUP4 0000317e: DUP3 0000317f: AND 00003180: MUL 00003181: DUP1 00003182: DUP3 00003183: AND 00003184: SWAP2 00003185: SWAP1 00003186: DUP3 00003187: DUP2 00003188: EQ 00003189: PUSH2 0x3194 0000318c: JUMPI 0000318d: PUSH2 0x3194 00003190: PUSH2 0x3145 00003193: JUMP 00003194: JUMPDEST 00003195: POP 00003196: POP 00003197: SWAP3 00003198: SWAP2 00003199: POP 0000319a: POP 0000319b: JUMP 0000319c: JUMPDEST 0000319d: DUP1 0000319e: MLOAD 0000319f: PUSH2 0xffff 000031a2: DUP2 000031a3: AND 000031a4: DUP2 000031a5: EQ 000031a6: PUSH2 0x31ae 000031a9: JUMPI 000031aa: PUSH1 0x00 000031ac: DUP1 000031ad: REVERT 000031ae: JUMPDEST 000031af: SWAP2 000031b0: SWAP1 000031b1: POP 000031b2: JUMP 000031b3: JUMPDEST 000031b4: DUP1 000031b5: MLOAD 000031b6: DUP1 000031b7: ISZERO 000031b8: ISZERO 000031b9: DUP2 000031ba: EQ 000031bb: PUSH2 0x31ae 000031be: JUMPI 000031bf: PUSH1 0x00 000031c1: DUP1 000031c2: REVERT 000031c3: JUMPDEST 000031c4: PUSH1 0x00 000031c6: DUP1 000031c7: PUSH1 0x00 000031c9: DUP1 000031ca: PUSH1 0x00 000031cc: DUP1 000031cd: PUSH1 0x00 000031cf: PUSH1 0xe0 000031d1: DUP9 000031d2: DUP11 000031d3: SUB 000031d4: SLT 000031d5: ISZERO 000031d6: PUSH2 0x31de 000031d9: JUMPI 000031da: PUSH1 0x00 000031dc: DUP1 000031dd: REVERT 000031de: JUMPDEST 000031df: DUP8 000031e0: MLOAD 000031e1: PUSH2 0x31e9 000031e4: DUP2 000031e5: PUSH2 0x3113 000031e8: JUMP 000031e9: JUMPDEST 000031ea: DUP1 000031eb: SWAP8 000031ec: POP 000031ed: POP 000031ee: PUSH1 0x20 000031f0: DUP9 000031f1: ADD 000031f2: MLOAD 000031f3: DUP1 000031f4: PUSH1 0x02 000031f6: SIGNEXTEND 000031f7: DUP2 000031f8: EQ 000031f9: PUSH2 0x3201 000031fc: JUMPI 000031fd: PUSH1 0x00 000031ff: DUP1 00003200: REVERT 00003201: JUMPDEST 00003202: SWAP6 00003203: POP 00003204: PUSH2 0x320f 00003207: PUSH1 0x40 00003209: DUP10 0000320a: ADD 0000320b: PUSH2 0x319c 0000320e: JUMP 0000320f: JUMPDEST 00003210: SWAP5 00003211: POP 00003212: PUSH2 0x321d 00003215: PUSH1 0x60 00003217: DUP10 00003218: ADD 00003219: PUSH2 0x319c 0000321c: JUMP 0000321d: JUMPDEST 0000321e: SWAP4 0000321f: POP 00003220: PUSH2 0x322b 00003223: PUSH1 0x80 00003225: DUP10 00003226: ADD 00003227: PUSH2 0x319c 0000322a: JUMP 0000322b: JUMPDEST 0000322c: SWAP3 0000322d: POP 0000322e: PUSH1 0xa0 00003230: DUP9 00003231: ADD 00003232: MLOAD 00003233: PUSH1 0xff 00003235: DUP2 00003236: AND 00003237: DUP2 00003238: EQ 00003239: PUSH2 0x3241 0000323c: JUMPI 0000323d: PUSH1 0x00 0000323f: DUP1 00003240: REVERT 00003241: JUMPDEST 00003242: SWAP2 00003243: POP 00003244: PUSH2 0x324f 00003247: PUSH1 0xc0 00003249: DUP10 0000324a: ADD 0000324b: PUSH2 0x31b3 0000324e: JUMP 0000324f: JUMPDEST 00003250: SWAP1 00003251: POP 00003252: SWAP3 00003253: SWAP6 00003254: SWAP9 00003255: SWAP2 00003256: SWAP5 00003257: SWAP8 00003258: POP 00003259: SWAP3 0000325a: SWAP6 0000325b: POP 0000325c: JUMP 0000325d: JUMPDEST 0000325e: DUP2 0000325f: DUP2 00003260: SUB 00003261: DUP2 00003262: DUP2 00003263: GT 00003264: ISZERO 00003265: PUSH2 0x2f9b 00003268: JUMPI 00003269: PUSH2 0x2f9b 0000326c: PUSH2 0x3145 0000326f: JUMP 00003270: JUMPDEST 00003271: PUSH1 0x00 00003273: PUSH1 0x20 00003275: DUP3 00003276: DUP5 00003277: SUB 00003278: SLT 00003279: ISZERO 0000327a: PUSH2 0x3282 0000327d: JUMPI 0000327e: PUSH1 0x00 00003280: DUP1 00003281: REVERT 00003282: JUMPDEST 00003283: POP 00003284: MLOAD 00003285: SWAP2 00003286: SWAP1 00003287: POP 00003288: JUMP 00003289: JUMPDEST 0000328a: DUP1 0000328b: DUP3 0000328c: MUL 0000328d: DUP2 0000328e: ISZERO 0000328f: DUP3 00003290: DUP3 00003291: DIV 00003292: DUP5 00003293: EQ 00003294: OR 00003295: PUSH2 0x2f9b 00003298: JUMPI 00003299: PUSH2 0x2f9b 0000329c: PUSH2 0x3145 0000329f: JUMP 000032a0: JUMPDEST 000032a1: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000032c2: PUSH1 0x00 000032c4: MSTORE 000032c5: PUSH1 0x12 000032c7: PUSH1 0x04 000032c9: MSTORE 000032ca: PUSH1 0x24 000032cc: PUSH1 0x00 000032ce: REVERT 000032cf: JUMPDEST 000032d0: PUSH1 0x00 000032d2: DUP3 000032d3: PUSH2 0x32de 000032d6: JUMPI 000032d7: PUSH2 0x32de 000032da: PUSH2 0x32a0 000032dd: JUMP 000032de: JUMPDEST 000032df: POP 000032e0: DIV 000032e1: SWAP1 000032e2: JUMP 000032e3: JUMPDEST 000032e4: DUP1 000032e5: DUP3 000032e6: ADD 000032e7: DUP1 000032e8: DUP3 000032e9: GT 000032ea: ISZERO 000032eb: PUSH2 0x2f9b 000032ee: JUMPI 000032ef: PUSH2 0x2f9b 000032f2: PUSH2 0x3145 000032f5: JUMP 000032f6: JUMPDEST 000032f7: PUSH1 0x00 000032f9: JUMPDEST 000032fa: DUP4 000032fb: DUP2 000032fc: LT 000032fd: ISZERO 000032fe: PUSH2 0x3311 00003301: JUMPI 00003302: DUP2 00003303: DUP2 00003304: ADD 00003305: MLOAD 00003306: DUP4 00003307: DUP3 00003308: ADD 00003309: MSTORE 0000330a: PUSH1 0x20 0000330c: ADD 0000330d: PUSH2 0x32f9 00003310: JUMP 00003311: JUMPDEST 00003312: POP 00003313: POP 00003314: PUSH1 0x00 00003316: SWAP2 00003317: ADD 00003318: MSTORE 00003319: JUMP 0000331a: JUMPDEST 0000331b: PUSH1 0x20 0000331d: DUP2 0000331e: MSTORE 0000331f: PUSH1 0x00 00003321: DUP3 00003322: MLOAD 00003323: PUSH1 0xa0 00003325: PUSH1 0x20 00003327: DUP5 00003328: ADD 00003329: MSTORE 0000332a: DUP1 0000332b: MLOAD 0000332c: DUP1 0000332d: PUSH1 0xc0 0000332f: DUP6 00003330: ADD 00003331: MSTORE 00003332: PUSH2 0x3342 00003335: DUP2 00003336: PUSH1 0xe0 00003338: DUP7 00003339: ADD 0000333a: PUSH1 0x20 0000333c: DUP6 0000333d: ADD 0000333e: PUSH2 0x32f6 00003341: JUMP 00003342: JUMPDEST 00003343: PUSH1 0x01 00003345: PUSH1 0x01 00003347: PUSH1 0xa0 00003349: SHL 0000334a: SUB 0000334b: PUSH1 0x20 0000334d: DUP7 0000334e: ADD 0000334f: MLOAD 00003350: AND 00003351: PUSH1 0x40 00003353: DUP6 00003354: ADD 00003355: MSTORE 00003356: PUSH1 0x40 00003358: DUP6 00003359: ADD 0000335a: MLOAD 0000335b: PUSH1 0x60 0000335d: DUP6 0000335e: ADD 0000335f: MSTORE 00003360: PUSH1 0x60 00003362: DUP6 00003363: ADD 00003364: MLOAD 00003365: PUSH1 0x80 00003367: DUP6 00003368: ADD 00003369: MSTORE 0000336a: PUSH1 0x80 0000336c: DUP6 0000336d: ADD 0000336e: MLOAD 0000336f: PUSH1 0xa0 00003371: DUP6 00003372: ADD 00003373: MSTORE 00003374: PUSH1 0xe0 00003376: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00003397: PUSH1 0x1f 00003399: DUP4 0000339a: ADD 0000339b: AND 0000339c: DUP6 0000339d: ADD 0000339e: ADD 0000339f: SWAP3 000033a0: POP 000033a1: POP 000033a2: POP 000033a3: SWAP3 000033a4: SWAP2 000033a5: POP 000033a6: POP 000033a7: JUMP 000033a8: JUMPDEST 000033a9: PUSH2 0xffff 000033ac: DUP2 000033ad: DUP2 000033ae: AND 000033af: DUP4 000033b0: DUP3 000033b1: AND 000033b2: ADD 000033b3: SWAP1 000033b4: DUP1 000033b5: DUP3 000033b6: GT 000033b7: ISZERO 000033b8: PUSH2 0x33c3 000033bb: JUMPI 000033bc: PUSH2 0x33c3 000033bf: PUSH2 0x3145 000033c2: JUMP 000033c3: JUMPDEST 000033c4: POP 000033c5: SWAP3 000033c6: SWAP2 000033c7: POP 000033c8: POP 000033c9: JUMP 000033ca: JUMPDEST 000033cb: PUSH1 0x00 000033cd: PUSH2 0xffff 000033d0: DUP1 000033d1: DUP5 000033d2: AND 000033d3: DUP1 000033d4: PUSH2 0x33df 000033d7: JUMPI 000033d8: PUSH2 0x33df 000033db: PUSH2 0x32a0 000033de: JUMP 000033df: JUMPDEST 000033e0: SWAP3 000033e1: AND 000033e2: SWAP2 000033e3: SWAP1 000033e4: SWAP2 000033e5: MOD 000033e6: SWAP3 000033e7: SWAP2 000033e8: POP 000033e9: POP 000033ea: JUMP 000033eb: JUMPDEST 000033ec: DUP1 000033ed: MLOAD 000033ee: PUSH1 0x06 000033f0: DUP2 000033f1: SWAP1 000033f2: SIGNEXTEND 000033f3: DUP2 000033f4: EQ 000033f5: PUSH2 0x31ae 000033f8: JUMPI 000033f9: PUSH1 0x00 000033fb: DUP1 000033fc: REVERT 000033fd: JUMPDEST 000033fe: PUSH1 0x00 00003400: DUP1 00003401: PUSH1 0x00 00003403: DUP1 00003404: PUSH1 0x80 00003406: DUP6 00003407: DUP8 00003408: SUB 00003409: SLT 0000340a: ISZERO 0000340b: PUSH2 0x3413 0000340e: JUMPI 0000340f: PUSH1 0x00 00003411: DUP1 00003412: REVERT 00003413: JUMPDEST 00003414: DUP5 00003415: MLOAD 00003416: PUSH2 0x341e 00003419: DUP2 0000341a: PUSH2 0x30e4 0000341d: JUMP 0000341e: JUMPDEST 0000341f: SWAP4 00003420: POP 00003421: PUSH2 0x342c 00003424: PUSH1 0x20 00003426: DUP7 00003427: ADD 00003428: PUSH2 0x33eb 0000342b: JUMP 0000342c: JUMPDEST 0000342d: SWAP3 0000342e: POP 0000342f: PUSH1 0x40 00003431: DUP6 00003432: ADD 00003433: MLOAD 00003434: PUSH2 0x343c 00003437: DUP2 00003438: PUSH2 0x3113 0000343b: JUMP 0000343c: JUMPDEST 0000343d: SWAP2 0000343e: POP 0000343f: PUSH2 0x344a 00003442: PUSH1 0x60 00003444: DUP7 00003445: ADD 00003446: PUSH2 0x31b3 00003449: JUMP 0000344a: JUMPDEST 0000344b: SWAP1 0000344c: POP 0000344d: SWAP3 0000344e: SWAP6 0000344f: SWAP2 00003450: SWAP5 00003451: POP 00003452: SWAP3 00003453: POP 00003454: JUMP 00003455: JUMPDEST 00003456: PUSH4 0xffffffff 0000345b: DUP3 0000345c: DUP2 0000345d: AND 0000345e: DUP3 0000345f: DUP3 00003460: AND 00003461: SUB 00003462: SWAP1 00003463: DUP1 00003464: DUP3 00003465: GT 00003466: ISZERO 00003467: PUSH2 0x33c3 0000346a: JUMPI 0000346b: PUSH2 0x33c3 0000346e: PUSH2 0x3145 00003471: JUMP 00003472: JUMPDEST 00003473: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00003494: PUSH1 0x00 00003496: MSTORE 00003497: PUSH1 0x41 00003499: PUSH1 0x04 0000349b: MSTORE 0000349c: PUSH1 0x24 0000349e: PUSH1 0x00 000034a0: REVERT 000034a1: JUMPDEST 000034a2: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000034c3: PUSH1 0x00 000034c5: MSTORE 000034c6: PUSH1 0x32 000034c8: PUSH1 0x04 000034ca: MSTORE 000034cb: PUSH1 0x24 000034cd: PUSH1 0x00 000034cf: REVERT 000034d0: JUMPDEST 000034d1: PUSH1 0x20 000034d3: DUP1 000034d4: DUP3 000034d5: MSTORE 000034d6: DUP3 000034d7: MLOAD 000034d8: DUP3 000034d9: DUP3 000034da: ADD 000034db: DUP2 000034dc: SWAP1 000034dd: MSTORE 000034de: PUSH1 0x00 000034e0: SWAP2 000034e1: SWAP1 000034e2: DUP5 000034e3: DUP3 000034e4: ADD 000034e5: SWAP1 000034e6: PUSH1 0x40 000034e8: DUP6 000034e9: ADD 000034ea: SWAP1 000034eb: DUP5 000034ec: JUMPDEST 000034ed: DUP2 000034ee: DUP2 000034ef: LT 000034f0: ISZERO 000034f1: PUSH2 0x350e 000034f4: JUMPI 000034f5: DUP4 000034f6: MLOAD 000034f7: PUSH4 0xffffffff 000034fc: AND 000034fd: DUP4 000034fe: MSTORE 000034ff: SWAP3 00003500: DUP5 00003501: ADD 00003502: SWAP3 00003503: SWAP2 00003504: DUP5 00003505: ADD 00003506: SWAP2 00003507: PUSH1 0x01 00003509: ADD 0000350a: PUSH2 0x34ec 0000350d: JUMP 0000350e: JUMPDEST 0000350f: POP 00003510: SWAP1 00003511: SWAP7 00003512: SWAP6 00003513: POP 00003514: POP 00003515: POP 00003516: POP 00003517: POP 00003518: POP 00003519: JUMP 0000351a: JUMPDEST 0000351b: PUSH1 0x40 0000351d: MLOAD 0000351e: PUSH1 0x1f 00003520: DUP3 00003521: ADD 00003522: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00003543: AND 00003544: DUP2 00003545: ADD 00003546: PUSH8 0xffffffffffffffff 0000354f: DUP2 00003550: GT 00003551: DUP3 00003552: DUP3 00003553: LT 00003554: OR 00003555: ISZERO 00003556: PUSH2 0x3561 00003559: JUMPI 0000355a: PUSH2 0x3561 0000355d: PUSH2 0x3472 00003560: JUMP 00003561: JUMPDEST 00003562: PUSH1 0x40 00003564: MSTORE 00003565: SWAP2 00003566: SWAP1 00003567: POP 00003568: JUMP 00003569: JUMPDEST 0000356a: PUSH1 0x00 0000356c: PUSH8 0xffffffffffffffff 00003575: DUP3 00003576: GT 00003577: ISZERO 00003578: PUSH2 0x3583 0000357b: JUMPI 0000357c: PUSH2 0x3583 0000357f: PUSH2 0x3472 00003582: JUMP 00003583: JUMPDEST 00003584: POP 00003585: PUSH1 0x05 00003587: SHL 00003588: PUSH1 0x20 0000358a: ADD 0000358b: SWAP1 0000358c: JUMP 0000358d: JUMPDEST 0000358e: PUSH1 0x00 00003590: DUP3 00003591: PUSH1 0x1f 00003593: DUP4 00003594: ADD 00003595: SLT 00003596: PUSH2 0x359e 00003599: JUMPI 0000359a: PUSH1 0x00 0000359c: DUP1 0000359d: REVERT 0000359e: JUMPDEST 0000359f: DUP2 000035a0: MLOAD 000035a1: PUSH1 0x20 000035a3: PUSH2 0x35b3 000035a6: PUSH2 0x35ae 000035a9: DUP4 000035aa: PUSH2 0x3569 000035ad: JUMP 000035ae: JUMPDEST 000035af: PUSH2 0x351a 000035b2: JUMP 000035b3: JUMPDEST 000035b4: DUP3 000035b5: DUP2 000035b6: MSTORE 000035b7: PUSH1 0x05 000035b9: SWAP3 000035ba: SWAP1 000035bb: SWAP3 000035bc: SHL 000035bd: DUP5 000035be: ADD 000035bf: DUP2 000035c0: ADD 000035c1: SWAP2 000035c2: DUP2 000035c3: DUP2 000035c4: ADD 000035c5: SWAP1 000035c6: DUP7 000035c7: DUP5 000035c8: GT 000035c9: ISZERO 000035ca: PUSH2 0x35d2 000035cd: JUMPI 000035ce: PUSH1 0x00 000035d0: DUP1 000035d1: REVERT 000035d2: JUMPDEST 000035d3: DUP3 000035d4: DUP7 000035d5: ADD 000035d6: JUMPDEST 000035d7: DUP5 000035d8: DUP2 000035d9: LT 000035da: ISZERO 000035db: PUSH2 0x35f6 000035de: JUMPI 000035df: DUP1 000035e0: MLOAD 000035e1: PUSH2 0x35e9 000035e4: DUP2 000035e5: PUSH2 0x3113 000035e8: JUMP 000035e9: JUMPDEST 000035ea: DUP4 000035eb: MSTORE 000035ec: SWAP2 000035ed: DUP4 000035ee: ADD 000035ef: SWAP2 000035f0: DUP4 000035f1: ADD 000035f2: PUSH2 0x35d6 000035f5: JUMP 000035f6: JUMPDEST 000035f7: POP 000035f8: SWAP7 000035f9: SWAP6 000035fa: POP 000035fb: POP 000035fc: POP 000035fd: POP 000035fe: POP 000035ff: POP 00003600: JUMP 00003601: JUMPDEST 00003602: PUSH1 0x00 00003604: DUP1 00003605: PUSH1 0x40 00003607: DUP4 00003608: DUP6 00003609: SUB 0000360a: SLT 0000360b: ISZERO 0000360c: PUSH2 0x3614 0000360f: JUMPI 00003610: PUSH1 0x00 00003612: DUP1 00003613: REVERT 00003614: JUMPDEST 00003615: DUP3 00003616: MLOAD 00003617: PUSH8 0xffffffffffffffff 00003620: DUP1 00003621: DUP3 00003622: GT 00003623: ISZERO 00003624: PUSH2 0x362c 00003627: JUMPI 00003628: PUSH1 0x00 0000362a: DUP1 0000362b: REVERT 0000362c: JUMPDEST 0000362d: DUP2 0000362e: DUP6 0000362f: ADD 00003630: SWAP2 00003631: POP 00003632: DUP6 00003633: PUSH1 0x1f 00003635: DUP4 00003636: ADD 00003637: SLT 00003638: PUSH2 0x3640 0000363b: JUMPI 0000363c: PUSH1 0x00 0000363e: DUP1 0000363f: REVERT 00003640: JUMPDEST 00003641: DUP2 00003642: MLOAD 00003643: PUSH1 0x20 00003645: PUSH2 0x3650 00003648: PUSH2 0x35ae 0000364b: DUP4 0000364c: PUSH2 0x3569 0000364f: JUMP 00003650: JUMPDEST 00003651: DUP3 00003652: DUP2 00003653: MSTORE 00003654: PUSH1 0x05 00003656: SWAP3 00003657: SWAP1 00003658: SWAP3 00003659: SHL 0000365a: DUP5 0000365b: ADD 0000365c: DUP2 0000365d: ADD 0000365e: SWAP2 0000365f: DUP2 00003660: DUP2 00003661: ADD 00003662: SWAP1 00003663: DUP10 00003664: DUP5 00003665: GT 00003666: ISZERO 00003667: PUSH2 0x366f 0000366a: JUMPI 0000366b: PUSH1 0x00 0000366d: DUP1 0000366e: REVERT 0000366f: JUMPDEST 00003670: SWAP5 00003671: DUP3 00003672: ADD 00003673: SWAP5 00003674: JUMPDEST 00003675: DUP4 00003676: DUP7 00003677: LT 00003678: ISZERO 00003679: PUSH2 0x3694 0000367c: JUMPI 0000367d: PUSH2 0x3685 00003680: DUP7 00003681: PUSH2 0x33eb 00003684: JUMP 00003685: JUMPDEST 00003686: DUP3 00003687: MSTORE 00003688: SWAP5 00003689: DUP3 0000368a: ADD 0000368b: SWAP5 0000368c: SWAP1 0000368d: DUP3 0000368e: ADD 0000368f: SWAP1 00003690: PUSH2 0x3674 00003693: JUMP 00003694: JUMPDEST 00003695: SWAP2 00003696: DUP9 00003697: ADD 00003698: MLOAD 00003699: SWAP2 0000369a: SWAP7 0000369b: POP 0000369c: SWAP1 0000369d: SWAP4 0000369e: POP 0000369f: POP 000036a0: POP 000036a1: DUP1 000036a2: DUP3 000036a3: GT 000036a4: ISZERO 000036a5: PUSH2 0x36ad 000036a8: JUMPI 000036a9: PUSH1 0x00 000036ab: DUP1 000036ac: REVERT 000036ad: JUMPDEST 000036ae: POP 000036af: PUSH2 0x36ba 000036b2: DUP6 000036b3: DUP3 000036b4: DUP7 000036b5: ADD 000036b6: PUSH2 0x358d 000036b9: JUMP 000036ba: JUMPDEST 000036bb: SWAP2 000036bc: POP 000036bd: POP 000036be: SWAP3 000036bf: POP 000036c0: SWAP3 000036c1: SWAP1 000036c2: POP 000036c3: JUMP 000036c4: JUMPDEST 000036c5: PUSH1 0x06 000036c7: DUP3 000036c8: DUP2 000036c9: SIGNEXTEND 000036ca: SWAP1 000036cb: DUP3 000036cc: SWAP1 000036cd: SIGNEXTEND 000036ce: SUB 000036cf: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000 000036f0: DUP2 000036f1: SLT 000036f2: PUSH7 0x7fffffffffffff 000036fa: DUP3 000036fb: SGT 000036fc: OR 000036fd: ISZERO 000036fe: PUSH2 0x2f9b 00003701: JUMPI 00003702: PUSH2 0x2f9b 00003705: PUSH2 0x3145 00003708: JUMP 00003709: JUMPDEST 0000370a: PUSH1 0x01 0000370c: PUSH1 0x01 0000370e: PUSH1 0xa0 00003710: SHL 00003711: SUB 00003712: DUP3 00003713: DUP2 00003714: AND 00003715: DUP3 00003716: DUP3 00003717: AND 00003718: SUB 00003719: SWAP1 0000371a: DUP1 0000371b: DUP3 0000371c: GT 0000371d: ISZERO 0000371e: PUSH2 0x33c3 00003721: JUMPI 00003722: PUSH2 0x33c3 00003725: PUSH2 0x3145 00003728: JUMP 00003729: JUMPDEST 0000372a: PUSH1 0x00 0000372c: DUP2 0000372d: PUSH1 0x06 0000372f: SIGNEXTEND 00003730: DUP4 00003731: PUSH1 0x06 00003733: SIGNEXTEND 00003734: DUP1 00003735: PUSH2 0x3740 00003738: JUMPI 00003739: PUSH2 0x3740 0000373c: PUSH2 0x32a0 0000373f: JUMP 00003740: JUMPDEST 00003741: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003762: DUP2 00003763: EQ 00003764: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000 00003785: DUP4 00003786: EQ 00003787: AND 00003788: ISZERO 00003789: PUSH2 0x3794 0000378c: JUMPI 0000378d: PUSH2 0x3794 00003790: PUSH2 0x3145 00003793: JUMP 00003794: JUMPDEST 00003795: SWAP1 00003796: SDIV 00003797: SWAP4 00003798: SWAP3 00003799: POP 0000379a: POP 0000379b: POP 0000379c: JUMP 0000379d: JUMPDEST 0000379e: PUSH1 0x00 000037a0: DUP3 000037a1: PUSH1 0x06 000037a3: SIGNEXTEND 000037a4: DUP1 000037a5: PUSH2 0x37b0 000037a8: JUMPI 000037a9: PUSH2 0x37b0 000037ac: PUSH2 0x32a0 000037af: JUMP 000037b0: JUMPDEST 000037b1: DUP1 000037b2: DUP4 000037b3: PUSH1 0x06 000037b5: SIGNEXTEND 000037b6: SMOD 000037b7: SWAP2 000037b8: POP 000037b9: POP 000037ba: SWAP3 000037bb: SWAP2 000037bc: POP 000037bd: POP 000037be: JUMP 000037bf: JUMPDEST 000037c0: PUSH1 0x00 000037c2: DUP2 000037c3: PUSH1 0x02 000037c5: SIGNEXTEND 000037c6: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000 000037e7: DUP2 000037e8: SUB 000037e9: PUSH2 0x37f4 000037ec: JUMPI 000037ed: PUSH2 0x37f4 000037f0: PUSH2 0x3145 000037f3: JUMP 000037f4: JUMPDEST 000037f5: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003816: ADD 00003817: SWAP3 00003818: SWAP2 00003819: POP 0000381a: POP 0000381b: JUMP 0000381c: JUMPDEST 0000381d: PUSH24 0xffffffffffffffffffffffffffffffffffffffffffffffff 00003836: DUP3 00003837: DUP2 00003838: AND 00003839: DUP3 0000383a: DUP3 0000383b: AND 0000383c: DUP2 0000383d: DUP2 0000383e: MUL 0000383f: DUP4 00003840: AND 00003841: SWAP3 00003842: SWAP2 00003843: DUP2 00003844: ISZERO 00003845: DUP3 00003846: DUP6 00003847: DIV 00003848: DUP3 00003849: EQ 0000384a: OR 0000384b: PUSH2 0x3856 0000384e: JUMPI 0000384f: PUSH2 0x3856 00003852: PUSH2 0x3145 00003855: JUMP 00003856: JUMPDEST 00003857: POP 00003858: POP 00003859: POP 0000385a: SWAP3 0000385b: SWAP2 0000385c: POP 0000385d: POP 0000385e: JUMP 0000385f: JUMPDEST 00003860: PUSH1 0x00 00003862: PUSH24 0xffffffffffffffffffffffffffffffffffffffffffffffff 0000387b: DUP1 0000387c: DUP5 0000387d: AND 0000387e: DUP1 0000387f: PUSH2 0x388a 00003882: JUMPI 00003883: PUSH2 0x388a 00003886: PUSH2 0x32a0 00003889: JUMP 0000388a: JUMPDEST 0000388b: SWAP3 0000388c: AND 0000388d: SWAP2 0000388e: SWAP1 0000388f: SWAP2 00003890: DIV 00003891: SWAP3 00003892: SWAP2 00003893: POP 00003894: POP 00003895: JUMP 00003896: JUMPDEST 00003897: PUSH1 0x00 00003899: PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 000038ba: DUP3 000038bb: SUB 000038bc: PUSH2 0x38c7 000038bf: JUMPI 000038c0: PUSH2 0x38c7 000038c3: PUSH2 0x3145 000038c6: JUMP 000038c7: JUMPDEST 000038c8: POP 000038c9: PUSH1 0x00 000038cb: SUB 000038cc: SWAP1 000038cd: JUMP 000038ce: JUMPDEST 000038cf: PUSH1 0x00 000038d1: DUP2 000038d2: PUSH1 0x02 000038d4: SIGNEXTEND 000038d5: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000 000038f6: DUP2 000038f7: SUB 000038f8: PUSH2 0x3903 000038fb: JUMPI 000038fc: PUSH2 0x3903 000038ff: PUSH2 0x3145 00003902: JUMP 00003903: JUMPDEST 00003904: PUSH1 0x00 00003906: SUB 00003907: SWAP3 00003908: SWAP2 00003909: POP 0000390a: POP 0000390b: JUMP 0000390c: JUMPDEST 0000390d: PUSH1 0x00 0000390f: DUP3 00003910: PUSH2 0x391b 00003913: JUMPI 00003914: PUSH2 0x391b 00003917: PUSH2 0x32a0 0000391a: JUMP 0000391b: JUMPDEST 0000391c: POP 0000391d: MOD 0000391e: SWAP1 0000391f: JUMP 00003920: JUMPDEST 00003921: PUSH1 0x00 00003923: PUSH1 0x20 00003925: DUP3 00003926: DUP5 00003927: SUB 00003928: SLT 00003929: ISZERO 0000392a: PUSH2 0x3932 0000392d: JUMPI 0000392e: PUSH1 0x00 00003930: DUP1 00003931: REVERT 00003932: JUMPDEST 00003933: DUP2 00003934: MLOAD 00003935: PUSH2 0x1950 00003938: DUP2 00003939: PUSH2 0x3113 0000393c: JUMP 0000393d: JUMPDEST 0000393e: DUP2 0000393f: MLOAD 00003940: PUSH1 0x01 00003942: PUSH1 0x01 00003944: PUSH1 0xa0 00003946: SHL 00003947: SUB 00003948: AND 00003949: DUP2 0000394a: MSTORE 0000394b: PUSH2 0x0160 0000394e: DUP2 0000394f: ADD 00003950: PUSH1 0x20 00003952: DUP4 00003953: ADD 00003954: MLOAD 00003955: PUSH2 0x3969 00003958: PUSH1 0x20 0000395a: DUP5 0000395b: ADD 0000395c: DUP3 0000395d: PUSH1 0x01 0000395f: PUSH1 0x01 00003961: PUSH1 0xa0 00003963: SHL 00003964: SUB 00003965: AND 00003966: SWAP1 00003967: MSTORE 00003968: JUMP 00003969: JUMPDEST 0000396a: POP 0000396b: PUSH1 0x40 0000396d: DUP4 0000396e: ADD 0000396f: MLOAD 00003970: PUSH2 0x3980 00003973: PUSH1 0x40 00003975: DUP5 00003976: ADD 00003977: DUP3 00003978: PUSH3 0xffffff 0000397c: AND 0000397d: SWAP1 0000397e: MSTORE 0000397f: JUMP 00003980: JUMPDEST 00003981: POP 00003982: PUSH1 0x60 00003984: DUP4 00003985: ADD 00003986: MLOAD 00003987: PUSH2 0x3995 0000398a: PUSH1 0x60 0000398c: DUP5 0000398d: ADD 0000398e: DUP3 0000398f: PUSH1 0x02 00003991: SIGNEXTEND 00003992: SWAP1 00003993: MSTORE 00003994: JUMP 00003995: JUMPDEST 00003996: POP 00003997: PUSH1 0x80 00003999: DUP4 0000399a: ADD 0000399b: MLOAD 0000399c: PUSH2 0x39aa 0000399f: PUSH1 0x80 000039a1: DUP5 000039a2: ADD 000039a3: DUP3 000039a4: PUSH1 0x02 000039a6: SIGNEXTEND 000039a7: SWAP1 000039a8: MSTORE 000039a9: JUMP 000039aa: JUMPDEST 000039ab: POP 000039ac: PUSH1 0xa0 000039ae: DUP4 000039af: ADD 000039b0: MLOAD 000039b1: PUSH1 0xa0 000039b3: DUP4 000039b4: ADD 000039b5: MSTORE 000039b6: PUSH1 0xc0 000039b8: DUP4 000039b9: ADD 000039ba: MLOAD 000039bb: PUSH1 0xc0 000039bd: DUP4 000039be: ADD 000039bf: MSTORE 000039c0: PUSH1 0xe0 000039c2: DUP4 000039c3: ADD 000039c4: MLOAD 000039c5: PUSH1 0xe0 000039c7: DUP4 000039c8: ADD 000039c9: MSTORE 000039ca: PUSH2 0x0100 000039cd: DUP1 000039ce: DUP5 000039cf: ADD 000039d0: MLOAD 000039d1: DUP2 000039d2: DUP5 000039d3: ADD 000039d4: MSTORE 000039d5: POP 000039d6: PUSH2 0x0120 000039d9: DUP1 000039da: DUP5 000039db: ADD 000039dc: MLOAD 000039dd: PUSH2 0x39f0 000039e0: DUP3 000039e1: DUP6 000039e2: ADD 000039e3: DUP3 000039e4: PUSH1 0x01 000039e6: PUSH1 0x01 000039e8: PUSH1 0xa0 000039ea: SHL 000039eb: SUB 000039ec: AND 000039ed: SWAP1 000039ee: MSTORE 000039ef: JUMP 000039f0: JUMPDEST 000039f1: POP 000039f2: POP 000039f3: PUSH2 0x0140 000039f6: SWAP3 000039f7: DUP4 000039f8: ADD 000039f9: MLOAD 000039fa: SWAP2 000039fb: SWAP1 000039fc: SWAP3 000039fd: ADD 000039fe: MSTORE 000039ff: SWAP1 00003a00: JUMP 00003a01: JUMPDEST 00003a02: PUSH1 0x00 00003a04: DUP1 00003a05: PUSH1 0x00 00003a07: DUP1 00003a08: PUSH1 0x80 00003a0a: DUP6 00003a0b: DUP8 00003a0c: SUB 00003a0d: SLT 00003a0e: ISZERO 00003a0f: PUSH2 0x3a17 00003a12: JUMPI 00003a13: PUSH1 0x00 00003a15: DUP1 00003a16: REVERT 00003a17: JUMPDEST 00003a18: DUP5 00003a19: MLOAD 00003a1a: SWAP4 00003a1b: POP 00003a1c: PUSH1 0x20 00003a1e: DUP6 00003a1f: ADD 00003a20: MLOAD 00003a21: PUSH16 0xffffffffffffffffffffffffffffffff 00003a32: DUP2 00003a33: AND 00003a34: DUP2 00003a35: EQ 00003a36: PUSH2 0x3a3e 00003a39: JUMPI 00003a3a: PUSH1 0x00 00003a3c: DUP1 00003a3d: REVERT 00003a3e: JUMPDEST 00003a3f: PUSH1 0x40 00003a41: DUP7 00003a42: ADD 00003a43: MLOAD 00003a44: PUSH1 0x60 00003a46: SWAP1 00003a47: SWAP7 00003a48: ADD 00003a49: MLOAD 00003a4a: SWAP5 00003a4b: SWAP8 00003a4c: SWAP1 00003a4d: SWAP7 00003a4e: POP 00003a4f: SWAP3 00003a50: POP 00003a51: POP 00003a52: POP 00003a53: JUMP 00003a54: JUMPDEST 00003a55: PUSH1 0x00 00003a57: DUP1 00003a58: PUSH1 0x40 00003a5a: DUP4 00003a5b: DUP6 00003a5c: SUB 00003a5d: SLT 00003a5e: ISZERO 00003a5f: PUSH2 0x3a67 00003a62: JUMPI 00003a63: PUSH1 0x00 00003a65: DUP1 00003a66: REVERT 00003a67: JUMPDEST 00003a68: POP 00003a69: POP 00003a6a: DUP1 00003a6b: MLOAD 00003a6c: PUSH1 0x20 00003a6e: SWAP1 00003a6f: SWAP2 00003a70: ADD 00003a71: MLOAD 00003a72: SWAP1 00003a73: SWAP3 00003a74: SWAP1 00003a75: SWAP2 00003a76: POP 00003a77: JUMP 00003a78: JUMPDEST 00003a79: PUSH1 0x00 00003a7b: PUSH1 0x20 00003a7d: DUP3 00003a7e: DUP5 00003a7f: SUB 00003a80: SLT 00003a81: ISZERO 00003a82: PUSH2 0x3a8a 00003a85: JUMPI 00003a86: PUSH1 0x00 00003a88: DUP1 00003a89: REVERT 00003a8a: JUMPDEST 00003a8b: PUSH2 0x1950 00003a8e: DUP3 00003a8f: PUSH2 0x31b3 00003a92: JUMP 00003a93: JUMPDEST 00003a94: PUSH1 0x00 00003a96: DUP3 00003a97: MLOAD 00003a98: PUSH2 0x3aa5 00003a9b: DUP2 00003a9c: DUP5 00003a9d: PUSH1 0x20 00003a9f: DUP8 00003aa0: ADD 00003aa1: PUSH2 0x32f6 00003aa4: JUMP 00003aa5: JUMPDEST 00003aa6: SWAP2 00003aa7: SWAP1 00003aa8: SWAP2 00003aa9: ADD 00003aaa: SWAP3 00003aab: SWAP2 00003aac: POP 00003aad: POP 00003aae: JUMP 00003aaf: INVALID 00003ab0: LOG1 00003ab1: PUSH5 0x736f6c6343 00003ab7: STOP 00003ab8: ADDMOD 00003ab9: EQ 00003aba: STOP 00003abb: EXP
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xe70b7d09",
"selector": "0xe70b7d09",
"calldata_variants": [
"0xe70b7d09",
"0xe70b7d090000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xefdcbe6c",
"selector": "0xefdcbe6c",
"calldata_variants": [
"0xefdcbe6c",
"0xefdcbe6c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf0fa55a9",
"selector": "0xf0fa55a9",
"calldata_variants": [
"0xf0fa55a9",
"0xf0fa55a90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd43e158c",
"selector": "0xd43e158c",
"calldata_variants": [
"0xd43e158c",
"0xd43e158c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd8186458",
"selector": "0xd8186458",
"calldata_variants": [
"0xd8186458",
"0xd81864580000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdf79d752",
"selector": "0xdf79d752",
"calldata_variants": [
"0xdf79d752",
"0xdf79d7520000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe30c3978",
"selector": "0xe30c3978",
"calldata_variants": [
"0xe30c3978",
"0xe30c39780000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 493,
"type": "msg_sender_eq_const",
"value": 1.0970776880180083e+48
},
{
"pc": 2361,
"type": "tx_origin_used"
},
{
"pc": 471,
"type": "msg_sender_eq_const",
"value": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
},
{
"pc": 2360,
"type": "tx_origin_used"
}
]
}
|
| medium | oracle | codex | Spot-price fallback in TWAP quotes enables sandwiching of buybacks when observations are insufficient | 75 | no | — |
viewevidence_json{
"evidence": "Both buy contracts clamp the TWAP window to the oldest observation and fall back to spot price when `secondsAgo == 0`, which then feeds the minimum-out calculations for swaps.",
"locations": [
"contracts/contracts/DragonBuyAndBurn.sol:561",
"contracts/contracts/DragonBuyAndBurn.sol:623",
"contracts/contracts/TitanBuy.sol:378",
"contracts/contracts/TitanBuy.sol:389"
],
"recommendation": "Require a minimum observation age (e.g., revert if `oldestObservation < minTwa`) and only allow swaps once TWAP history is available. Alternatively, enforce a hard minimum TWAP window, add a secondary oracle/sanity check, or use `sqrtPriceLimitX96`/price-impact caps to prevent spot-price manipulation.",
"exploit_scenario": "If the pool is newly initialized or observation history is too short, `oldestObservation` can be zero, causing the quote to fall back to the current `slot0` price. An attacker can manipulate the pool price within the block, call `buyTitanX()` or `buyAndBurnDragonX()` from an EOA, and then back-run to restore price, profiting from the protocol\u2019s WETH spent at the manipulated price (bounded per swap but repeatable each interval)."
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x57c01f302e5cb9cc5fdf6bcf80d8960b5a8d3962d438c125598673b6a62d73b6
call_targets:
0x1a4330eaf13869d15014abca69516fc6ab36e54d
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x57c01f302e5cb9cc5fdf6bcf80d8960b5a8d3962d438c125598673b6a62d73b6",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x1a4330eaf13869d15014abca69516fc6ab36e54d"
],
"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": "0xe70b7d09",
"selector": "0xe70b7d09",
"calldata_variants": [
"0xe70b7d09",
"0xe70b7d090000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xefdcbe6c",
"selector": "0xefdcbe6c",
"calldata_variants": [
"0xefdcbe6c",
"0xefdcbe6c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf0fa55a9",
"selector": "0xf0fa55a9",
"calldata_variants": [
"0xf0fa55a9",
"0xf0fa55a90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd43e158c",
"selector": "0xd43e158c",
"calldata_variants": [
"0xd43e158c",
"0xd43e158c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd8186458",
"selector": "0xd8186458",
"calldata_variants": [
"0xd8186458",
"0xd81864580000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdf79d752",
"selector": "0xdf79d752",
"calldata_variants": [
"0xdf79d752",
"0xdf79d7520000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe30c3978",
"selector": "0xe30c3978",
"calldata_variants": [
"0xe30c3978",
"0xe30c39780000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 579,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2799,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3223,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 14,
"guards_detected": [
{
"pc": 493,
"type": "msg_sender_eq_const",
"value": 1.0970776880180083e+48
},
{
"pc": 2361,
"type": "tx_origin_used"
},
{
"pc": 471,
"type": "msg_sender_eq_const",
"value": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
},
{
"pc": 2360,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 14
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x57c01f302e5cb9cc5fdf6bcf80d8960b5a8d3962d438c125598673b6a62d73b6
call_targets:
0x1a4330eaf13869d15014abca69516fc6ab36e54d
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x57c01f302e5cb9cc5fdf6bcf80d8960b5a8d3962d438c125598673b6a62d73b6",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x1a4330eaf13869d15014abca69516fc6ab36e54d"
],
"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": "0xe70b7d09",
"selector": "0xe70b7d09",
"calldata_variants": [
"0xe70b7d09",
"0xe70b7d090000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xefdcbe6c",
"selector": "0xefdcbe6c",
"calldata_variants": [
"0xefdcbe6c",
"0xefdcbe6c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf0fa55a9",
"selector": "0xf0fa55a9",
"calldata_variants": [
"0xf0fa55a9",
"0xf0fa55a90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd43e158c",
"selector": "0xd43e158c",
"calldata_variants": [
"0xd43e158c",
"0xd43e158c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd8186458",
"selector": "0xd8186458",
"calldata_variants": [
"0xd8186458",
"0xd81864580000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdf79d752",
"selector": "0xdf79d752",
"calldata_variants": [
"0xdf79d752",
"0xdf79d7520000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe30c3978",
"selector": "0xe30c3978",
"calldata_variants": [
"0xe30c3978",
"0xe30c39780000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 579,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2799,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3223,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 14,
"guards_detected": [
{
"pc": 493,
"type": "msg_sender_eq_const",
"value": 1.0970776880180083e+48
},
{
"pc": 2361,
"type": "tx_origin_used"
},
{
"pc": 471,
"type": "msg_sender_eq_const",
"value": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
},
{
"pc": 2360,
"type": "tx_origin_used"
}
]
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 9
}
|
| 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": 26
}
|