d07213c7-d170-4ec7-9a2f-5a0a3c2a27d3
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 |
|---|---|---|---|---|
| 30629 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 74770 | artifact.fetch | failed | 1 / 3 | 1 week ago |
| 74771 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 74772 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 74773 | capability.graph | complete | 1 / 3 | 1 week ago |
| 74774 | detector.run | complete | 1 / 3 | 1 week ago |
| 74775 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:839956] OpenAI Codex v0.77.0 (research preview)
[codex:839956] --------
[codex:839956] workdir: /tmp/codex-multi-ut7g149n
[codex:839956] model: gpt-5.2-codex
[codex:839956] provider: openai
[codex:839956] approval: never
[codex:839956] sandbox: read-only
[codex:839956] reasoning effort: xhigh
[codex:839956] reasoning summaries: auto
[codex:839956] session id: 019b6ca5-75ee-7ba2-93eb-9ab97cec6e9c
[codex:839956] --------
[codex:839956] user
[codex:839956] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:839956] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:839956] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:839956]
[codex:839956] Scope rules:
[codex:839956] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:839956] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:839956]
[codex:839956] Output MUST be valid JSON matching the provided schema.
[codex:839956] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:839956] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:839956]
[codex:839956] Output constraints (IMPORTANT):
[codex:839956] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:839956] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:839956] mcp startup: no servers
[codex:839956]
[codex:839956] thinking
[codex:839956] **Preparing to read audit bundle**
[codex:839956] exec
[codex:839956] /bin/bash -lc ls in /tmp/codex-multi-ut7g149n succeeded in 5ms:
[codex:839956] AUDIT_BUNDLE.txt
[codex:839956] codex-output-schema.json
[codex:839956] contracts
[codex:839956] exec
[codex:839956] /bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ut7g149n succeeded in 7ms:
[codex:839956] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:839956]
[codex:839956] ================================================================================
[codex:839956] FILE: contracts/contracts/dependencies/openzeppelin/contracts/Address.sol
[codex:839956] ================================================================================
[codex:839956] // SPDX-License-Identifier: MIT
[codex:839956]
[codex:839956] pragma solidity >=0.6.2 <0.8.0;
[codex:839956]
[codex:839956] /**
[codex:839956] * @dev Collection of functions related to the address type
[codex:839956] */
[codex:839956] library Address {
[codex:839956] /**
[codex:839956] * @dev Returns true if `account` is a contract.
[codex:839956] *
[codex:839956] * [IMPORTANT]
[codex:839956] * ====
[codex:839956] * It is unsafe to assume that an address for which this function returns
[codex:839956] * false is an externally-owned account (EOA) and not a contract.
[codex:839956]
[codex:839956] thinking
[codex:839956] **Reviewing AUDIT_BUNDLE content and scope**
[codex:839956] exec
[codex:839956] /bin/bash -lc 'rg -n "''^FILE:" AUDIT_BUNDLE.txt' in /tmp/codex-multi-ut7g149n succeeded in 7ms:
[codex:839956] 4:FILE: contracts/contracts/dependencies/openzeppelin/contracts/Address.sol
[codex:839956] 261:FILE: contracts/contracts/dependencies/openzeppelin/contracts/Context.sol
[codex:839956] 289:FILE: contracts/contracts/dependencies/openzeppelin/contracts/IERC20.sol
[codex:839956] 383:FILE: contracts/contracts/dependencies/openzeppelin/contracts/IERC20Metadata.sol
[codex:839956] 415:FILE: contracts/contracts/dependencies/openzeppelin/contracts/SafeERC20.sol
[codex:839956] 551:FILE: contracts/contracts/dependencies/openzeppelin/contracts/SafeMath.sol
[codex:839956] 801:FILE: contracts/contracts/interfaces/IAToken.sol
[codex:839956] 932:FILE: contracts/contracts/interfaces/IInitializableAToken.sol
[codex:839956] 986:FILE: contracts/contracts/interfaces/ILendingPool.sol
[codex:839956] 1455:FILE: contracts/contracts/interfaces/ILendingPoolAddressesProvider.sol
[codex:839956] 1524:FILE: contracts/contracts/interfaces/IPhiatIncentivesController.sol
[codex:839956] 1628:FILE: contracts/contracts/interfaces/IScaledBalanceToken.sol
[codex:839956] 1661:FILE: contracts/contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol
[codex:839956] 1744:FILE: contracts/contracts/protocol/libraries/helpers/Errors.sol
[codex:839956] 1882:FILE: contracts/contracts/protocol/libraries/math/WadRayMath.sol
[codex:839956] 2036:FILE: contracts/contracts/protocol/libraries/types/DataTypes.sol
[codex:839956] 2102:FILE: contracts/contracts/protocol/tokenization/AToken.sol
[codex:839956] 2578:FILE: contracts/contracts/protocol/tokenization/IncentivizedERC20.sol
[codex:839956]
[codex:839956] thinking
[codex:839956] **Planning full AUDIT_BUNDLE read**
[codex:839956] exec
[codex:839956] /bin/bash -lc 'wc -l AUDIT_BUNDLE.txt' in /tmp/codex-multi-ut7g149n succeeded in 5ms:
[codex:839956] 2893 AUDIT_BUNDLE.txt
[codex:839956]
[codex:839956] thinking
[codex:839956] **Continuing to read file segments**
[codex:839956] exec
[codex:839956] /bin/bash -lc "sed -n '200,400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ut7g149n succeeded in 6ms:
[codex:839956] /**
[codex:839956] * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
[codex:839956] * but performing a delegate call.
[codex:839956] *
[codex:839956] * _Available since v3.4._
[codex:839956] */
[codex:839956] function functionDelegateCall(address target, bytes memory data)
[codex:839956] internal
[codex:839956] returns (bytes memory)
[codex:839956] {
[codex:839956] return
[codex:839956] functionDelegateCall(
[codex:839956] target,
[codex:839956] data,
[codex:839956] "Address: low-level delegate call failed"
[codex:839956] );
[codex:839956] }
[codex:839956]
[codex:839956] /**
[codex:839956] * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
[codex:839956]
[codex:839956] thinking
[codex:839956] **Continuing exploration**
[codex:839956] exec
[codex:839956] /bin/bash -lc "sed -n '400,800p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ut7g149n succeeded in 7ms:
[codex:839956] */
[codex:839956] function name() external view returns (string memory);
[codex:839956]
[codex:839956] /**
[codex:839956] * @dev Returns the symbol of the token.
[codex:839956] */
[codex:839956] function symbol() external view returns (string memory);
[codex:839956]
[codex:839956] /**
[codex:839956] * @dev Returns the decimals places of the token.
[codex:839956] */
[codex:839956] function decimals() external view returns (uint8);
[codex:839956] }
[codex:839956]
[codex:839956] ================================================================================
[codex:839956] FILE: contracts/contracts/dependencies/openzeppelin/contracts/SafeERC20.sol
[codex:839956] ================================================================================
[codex:839956] // SPDX-License-Identifier: MIT
[codex:839956]
[codex:839956] pragma solidity >=0.6.0 <0.8.0;
[codex:839956]
[codex:839956] thinking
[codex:839956] **Continuing reading**
[codex:839956] exec
[codex:839956] /bin/bash -lc "sed -n '800,1200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ut7g149n succeeded in 6ms:
[codex:839956] ================================================================================
[codex:839956] FILE: contracts/contracts/interfaces/IAToken.sol
[codex:839956] ================================================================================
[codex:839956] // SPDX-License-Identifier: agpl-3.0
[codex:839956] pragma solidity 0.7.6;
[codex:839956]
[codex:839956] import {IERC20} from "../dependencies/openzeppelin/contracts/IERC20.sol";
[codex:839956] import {IScaledBalanceToken} from "./IScaledBalanceToken.sol";
[codex:839956] import {IInitializableAToken} from "./IInitializableAToken.sol";
[codex:839956] import {IPhiatIncentivesController} from "./IPhiatIncentivesController.sol";
[codex:839956]
[codex:839956] interface IAToken is IERC20, IScaledBalanceToken, IInitializableAToken {
[codex:839956] /**
[codex:839956] * @dev Emitted after the mint action
[codex:839956] * @param from The address performing the mint
[codex:839956] * @param value The amount being
[codex:839956] * @param index The new liquidity index of the reserve
[codex:839956] **/
[codex:839956] event Mint(address indexed from, uint256 value, uint256 index);
[codex:839956]
[codex:839956]
[codex:839956] thinking
[codex:839956] **Continuing process**
[codex:839956] exec
[codex:839956] /bin/bash -lc "sed -n '1200,1600p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ut7g149n succeeded in 6ms:
[codex:839956] * @param asset The address of the underlying asset to withdraw
[codex:839956] * @param amount The underlying amount to be withdrawn
[codex:839956] * - Send the value type(uint256).max in order to withdraw the whole aToken balance
[codex:839956] * @param to Address that will receive the underlying, same as msg.sender if the user
[codex:839956] * wants to receive it on his own wallet, or a different address if the beneficiary is a
[codex:839956] * different wallet
[codex:839956] * @return The final amount withdrawn
[codex:839956] **/
[codex:839956] function withdraw(
[codex:839956] address asset,
[codex:839956] uint256 amount,
[codex:839956] address to
[codex:839956] ) external returns (uint256);
[codex:839956]
[codex:839956] /**
[codex:839956] * @dev Allows users to borrow a specific `amount` of the reserve underlying asset, provided that the borrower
[codex:839956] * already deposited enough collateral, or he was given enough allowance by a credit delegator on the
[codex:839956] * corresponding debt token (StableDebtToken or VariableDebtToken)
[codex:839956] * - E.g. User borrows 100 USDC passing as `onBehalfOf` his own address, receiving the 100 USDC in his wallet
[codex:839956] * and 100 stable/variable debt tokens, depending on the `interestRateMode`
[codex:839956]
[codex:839956] thinking
[codex:839956] **Continuing process**
[codex:839956] exec
[codex:839956] /bin/bash -lc "sed -n '1600,2000p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ut7g149n succeeded in 5ms:
[codex:839956] function getUserAssetData(address user, address asset)
[codex:839956] external
[codex:839956] view
[codex:839956] returns (uint256);
[codex:839956]
[codex:839956] /**
[codex:839956] * @dev claim all user rewards
[codex:839956] * @param user the address of the user
[codex:839956] */
[codex:839956] function claimRewards(address user) external;
[codex:839956]
[codex:839956] /**
[codex:839956] * @dev for backward compatibility with previous implementation of the Incentives controller
[codex:839956] */
[codex:839956] function REWARD_TOKEN() external view returns (address);
[codex:839956]
[codex:839956] /**
[codex:839956] * @dev for backward compatibility with previous implementation of the Incentives controller
[codex:839956] */
[codex:839956] function PRECISION() external view returns (uint8);
[codex:839956]
[codex:839956] thinking
[codex:839956] **Proceeding with task**
[codex:839956] exec
[codex:839956] /bin/bash -lc "sed -n '2000,2400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ut7g149n succeeded in 6ms:
[codex:839956] a <= (type(uint256).max - halfB) / RAY,
[codex:839956] Errors.MATH_MULTIPLICATION_OVERFLOW
[codex:839956] );
[codex:839956]
[codex:839956] return (a * RAY + halfB) / b;
[codex:839956] }
[codex:839956]
[codex:839956] /**
[codex:839956] * @dev Casts ray down to wad
[codex:839956] * @param a Ray
[codex:839956] * @return a casted to wad, rounded half up to the nearest wad
[codex:839956] **/
[codex:839956] function rayToWad(uint256 a) internal pure returns (uint256) {
[codex:839956] uint256 halfRatio = WAD_RAY_RATIO / 2;
[codex:839956] uint256 result = halfRatio + a;
[codex:839956] require(result >= halfRatio, Errors.MATH_ADDITION_OVERFLOW);
[codex:839956]
[codex:839956] return result / WAD_RAY_RATIO;
[codex:839956] }
[codex:839956]
[codex:839956]
[codex:839956] thinking
[codex:839956] **Continuing with AToken implementation**
[codex:839956] exec
[codex:839956] /bin/bash -lc "sed -n '2400,2800p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ut7g149n succeeded in 6ms:
[codex:839956] return super.totalSupply();
[codex:839956] }
[codex:839956]
[codex:839956] /**
[codex:839956] * @dev Returns the address of the Aave treasury, receiving the fees on this aToken
[codex:839956] **/
[codex:839956] function RESERVE_TREASURY_ADDRESS() public view override returns (address) {
[codex:839956] return _treasury;
[codex:839956] }
[codex:839956]
[codex:839956] /**
[codex:839956] * @dev Returns the address of the underlying asset of this aToken (E.g. WETH for aWETH)
[codex:839956] **/
[codex:839956] function UNDERLYING_ASSET_ADDRESS() public view override returns (address) {
[codex:839956] return _underlyingAsset;
[codex:839956] }
[codex:839956]
[codex:839956] /**
[codex:839956] * @dev Returns the address of the lending pool where this aToken is used
[codex:839956] **/
[codex:839956]
[codex:839956] thinking
[codex:839956] **Continuing final steps**
[codex:839956] exec
[codex:839956] /bin/bash -lc "sed -n '2800,2893p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ut7g149n succeeded in 6ms:
[codex:839956] uint256 oldRecipientBalance = _balances[recipient];
[codex:839956] _balances[recipient] = _balances[recipient].add(amount);
[codex:839956]
[codex:839956] if (address(_getIncentivesController()) != address(0)) {
[codex:839956] uint256 currentTotalSupply = _totalSupply;
[codex:839956] _getIncentivesController().handleAction(
[codex:839956] sender,
[codex:839956] oldSenderBalance,
[codex:839956] currentTotalSupply
[codex:839956] );
[codex:839956] if (sender != recipient) {
[codex:839956] _getIncentivesController().handleAction(
[codex:839956] recipient,
[codex:839956] oldRecipientBalance,
[codex:839956] currentTotalSupply
[codex:839956] );
[codex:839956] }
[codex:839956] }
[codex:839956] }
[codex:839956]
[codex:839956]
[codex:839956]
[codex:839956]
[codex:839956] thinking
[codex:839956] **Analyzing potential vulnerabilities in token contracts**
[codex:839956]
[codex:839956] I've carefully audited the AToken and IncentivizedERC20 code, focusing on permit signature validation, access control in initialization, possible reentrancy from external calls, and rounding or accounting mismatches in token transfers. I've identified typical risks like missing access control on initialize, the effects of signature malleability, and slight inconsistencies that might impact state but seem mostly safe. The initializer's lack of strict access control stands out as a notable risk for attack if deployment steps aren't atomic.
[codex:839956] thinking
[codex:839956] **Evaluating reentrancy and upgrade-related risks**
[codex:839956]
[codex:839956] I'm examining external calls to the incentives controller during token transfers, noting a reentrancy window before LendingPool finalizes transfers that might allow state inconsistencies exploitable under certain conditions. The most significant issue seems to be unprotected initializer functions that could let an attacker seize control if initialization isn’t performed atomically, especially after upgrades. Other areas like permit signature checks and rounding effects appear minor or typical for such contracts.
[codex:839956] thinking
[codex:839956] **Preparing audit report details**
[codex:839956]
[codex:839956] I'm organizing the key findings to generate a JSON report, planning to include precise file paths and line numbers by inspecting the actual source files, starting with AToken.sol. This way, the audit output will clearly reference code locations for the user.
[codex:839956] exec
[codex:839956] /bin/bash -lc "nl -ba contracts/contracts/protocol/tokenization/AToken.sol | sed -n '1,200p'" in /tmp/codex-multi-ut7g149n succeeded in 7ms:
[codex:839956] 1 // SPDX-License-Identifier: agpl-3.0
[codex:839956] 2 pragma solidity 0.7.6;
[codex:839956] 3
[codex:839956] 4 import {IERC20} from "../../dependencies/openzeppelin/contracts/IERC20.sol";
[codex:839956] 5 import {SafeERC20} from "../../dependencies/openzeppelin/contracts/SafeERC20.sol";
[codex:839956] 6 import {ILendingPool} from "../../interfaces/ILendingPool.sol";
[codex:839956] 7 import {IAToken} from "../../interfaces/IAToken.sol";
[codex:839956] 8 import {WadRayMath} from "../libraries/math/WadRayMath.sol";
[codex:839956] 9 import {Errors} from "../libraries/helpers/Errors.sol";
[codex:839956] 10 import {VersionedInitializable} from "../libraries/aave-upgradeability/VersionedInitializable.sol";
[codex:839956] 11 import {IncentivizedERC20} from "./IncentivizedERC20.sol";
[codex:839956] 12 import {IPhiatIncentivesController} from "../../interfaces/IPhiatIncentivesController.sol";
[codex:839956] 13 import {SafeMath} from "../../dependencies/openzeppelin/contracts/SafeMath.sol";
[codex:839956] 14
[codex:839956] 15 /**
[codex:839956] 16 * @title Aave ERC20 AToken
[codex:839956] 17 * @dev Implementation of the interest bearing token for the Aave protocol
[codex:839956] 18 * @author Aave
[codex:839956] 19 */
[codex:839956] 20 contract AToken is
[codex:839956]
[codex:839956] thinking
[codex:839956] **Checking line numbers around transfer function**
[codex:839956] exec
[codex:839956] /bin/bash -lc "nl -ba contracts/contracts/protocol/tokenization/IncentivizedERC20.sol | sed -n '120,260p'" in /tmp/codex-multi-ut7g149n succeeded in 6ms:
[codex:839956] 120 returns (uint256)
[codex:839956] 121 {
[codex:839956] 122 return _allowances[owner][spender];
[codex:839956] 123 }
[codex:839956] 124
[codex:839956] 125 /**
[codex:839956] 126 * @dev Allows `spender` to spend the tokens owned by _msgSender()
[codex:839956] 127 * @param spender The user allowed to spend _msgSender() tokens
[codex:839956] 128 * @return `true`
[codex:839956] 129 **/
[codex:839956] 130 function approve(address spender, uint256 amount)
[codex:839956] 131 public
[codex:839956] 132 virtual
[codex:839956] 133 override
[codex:839956] 134 returns (bool)
[codex:839956] 135 {
[codex:839956] 136 _approve(_msgSender(), spender, amount);
[codex:839956] 137 return true;
[codex:839956] 138 }
[codex:839956] 139
[codex:839956]
[codex:839956] thinking
[codex:839956] **Analyzing security implications and vulnerabilities**
[codex:839956] exec
[codex:839956] /bin/bash -lc "nl -ba contracts/contracts/protocol/tokenization/AToken.sol | sed -n '200,340p'" in /tmp/codex-multi-ut7g149n succeeded in 6ms:
[codex:839956] 200 * @param to The recipient
[codex:839956] 201 * @param value The amount of tokens getting transferred
[codex:839956] 202 **/
[codex:839956] 203 function transferOnLiquidation(
[codex:839956] 204 address from,
[codex:839956] 205 address to,
[codex:839956] 206 uint256 value
[codex:839956] 207 ) external override onlyLendingPool {
[codex:839956] 208 // Being a normal transfer, the Transfer() and BalanceTransfer() are emitted
[codex:839956] 209 // so no need to emit a specific event here
[codex:839956] 210 _transfer(from, to, value, false);
[codex:839956] 211
[codex:839956] 212 emit Transfer(from, to, value);
[codex:839956] 213 }
[codex:839956] 214
[codex:839956] 215 /**
[codex:839956] 216 * @dev Calculates the balance of the user: principal balance + interest generated by the principal
[codex:839956] 217 * @param user The user whose balance is calculated
[codex:839956] 218 * @return The balance of the user
[codex:839956] 219 **/
[codex:839956]
[codex:839956] thinking
[codex:839956] **Noting need for line numbers**
[codex:839956] exec
[codex:839956] /bin/bash -lc "nl -ba contracts/contracts/protocol/tokenization/AToken.sol | sed -n '340,520p'" in /tmp/codex-multi-ut7g149n succeeded in 7ms:
[codex:839956] 340 external
[codex:839956] 341 view
[codex:839956] 342 override
[codex:839956] 343 returns (IPhiatIncentivesController)
[codex:839956] 344 {
[codex:839956] 345 return _getIncentivesController();
[codex:839956] 346 }
[codex:839956] 347
[codex:839956] 348 /**
[codex:839956] 349 * @dev Transfers the underlying asset to `target`. Used by the LendingPool to transfer
[codex:839956] 350 * assets in borrow(), withdraw() and flashLoan()
[codex:839956] 351 * @param target The recipient of the aTokens
[codex:839956] 352 * @param amount The amount getting transferred
[codex:839956] 353 * @return The amount transferred
[codex:839956] 354 **/
[codex:839956] 355 function transferUnderlyingTo(address target, uint256 amount)
[codex:839956] 356 external
[codex:839956] 357 override
[codex:839956] 358 onlyLendingPool
[codex:839956] 359 returns (uint256)
[codex:839956]
[codex:839956] thinking
[codex:839956] **Checking transfer parameter consistency**
[codex:839956] exec
[codex:839956] /bin/bash -lc "nl -ba contracts/contracts/interfaces/ILendingPool.sol | sed -n '210,340p'" in /tmp/codex-multi-ut7g149n succeeded in 6ms:
[codex:839956] 210 /**
[codex:839956] 211 * @dev Withdraws an `amount` of underlying asset from the reserve, burning the equivalent aTokens owned
[codex:839956] 212 * E.g. User has 100 aUSDC, calls withdraw() and receives 100 USDC, burning the 100 aUSDC
[codex:839956] 213 * @param asset The address of the underlying asset to withdraw
[codex:839956] 214 * @param amount The underlying amount to be withdrawn
[codex:839956] 215 * - Send the value type(uint256).max in order to withdraw the whole aToken balance
[codex:839956] 216 * @param to Address that will receive the underlying, same as msg.sender if the user
[codex:839956] 217 * wants to receive it on his own wallet, or a different address if the beneficiary is a
[codex:839956] 218 * different wallet
[codex:839956] 219 * @return The final amount withdrawn
[codex:839956] 220 **/
[codex:839956] 221 function withdraw(
[codex:839956] 222 address asset,
[codex:839956] 223 uint256 amount,
[codex:839956] 224 address to
[codex:839956] 225 ) external returns (uint256);
[codex:839956] 226
[codex:839956] 227 /**
[codex:839956] 228 * @dev Allows users to borrow a specific `amount` of the reserve underlying asset, provided that the borrower
[codex:839956] 229 * already deposited enough collateral, or he was given enough allowance by a credit delegator on the
[codex:839956]
[codex:839956] thinking
[codex:839956] **Adding line numbers near finalizeTransfer**
[codex:839956] exec
[codex:839956] /bin/bash -lc "nl -ba contracts/contracts/interfaces/ILendingPool.sol | sed -n '430,520p'" in /tmp/codex-multi-ut7g149n succeeded in 8ms:
[codex:839956] 430 external
[codex:839956] 431 view
[codex:839956] 432 returns (DataTypes.ReserveData memory);
[codex:839956] 433
[codex:839956] 434 /**
[codex:839956] 435 * @dev Returns the limits of the reserve
[codex:839956] 436 * @param asset The address of the underlying asset of the reserve
[codex:839956] 437 * @return The limits of the reserve
[codex:839956] 438 **/
[codex:839956] 439 function getReserveLimits(address asset)
[codex:839956] 440 external
[codex:839956] 441 view
[codex:839956] 442 returns (DataTypes.ReserveLimits memory);
[codex:839956] 443
[codex:839956] 444 function finalizeTransfer(
[codex:839956] 445 address asset,
[codex:839956] 446 address from,
[codex:839956] 447 address to,
[codex:839956] 448 uint256 amount,
[codex:839956] 449 uint256 balanceFromAfter,
[codex:839956]
[codex:839956] thinking
[codex:839956] **Analyzing transfer parameter mismatch and reentrancy risks**
[codex:839956] exec
[codex:839956] /bin/bash -lc "nl -ba contracts/contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol | sed -n '1,120p'" in /tmp/codex-multi-ut7g149n succeeded in 6ms:
[codex:839956] 1 // SPDX-License-Identifier: agpl-3.0
[codex:839956] 2 pragma solidity 0.7.6;
[codex:839956] 3
[codex:839956] 4 /**
[codex:839956] 5 * @title VersionedInitializable
[codex:839956] 6 *
[codex:839956] 7 * @dev Helper contract to implement initializer functions. To use it, replace
[codex:839956] 8 * the constructor with a function that has the `initializer` modifier.
[codex:839956] 9 * WARNING: Unlike constructors, initializer functions must be manually
[codex:839956] 10 * invoked. This applies both to deploying an Initializable contract, as well
[codex:839956] 11 * as extending an Initializable contract via inheritance.
[codex:839956] 12 * WARNING: When used with inheritance, manual care must be taken to not invoke
[codex:839956] 13 * a parent initializer twice, or ensure that all initializers are idempotent,
[codex:839956] 14 * because this is not dealt with automatically as with constructors.
[codex:839956] 15 *
[codex:839956] 16 * @author Aave, inspired by the OpenZeppelin Initializable contract
[codex:839956] 17 */
[codex:839956] 18 abstract contract VersionedInitializable {
[codex:839956] 19 /**
[codex:839956] 20 * @dev Indicates that the contract has been initialized.
[codex:839956]
[codex:839956] thinking
[codex:839956] **Preparing JSON report for upgradeability finding**
[codex:839956]
[codex:839956] I'm putting together a valid JSON report that highlights an unprotected initializer vulnerability across two contract locations, ensuring the summary, exploit scenario, evidence, and recommendation are detailed properly without any extra text or formatting beyond strict JSON.
[codex:839956] codex
[codex:839956] {"no_findings":false,"summary":"1 medium upgradeability issue: initialize is permissionless, enabling takeover if a proxy/upgrade isn’t initialized atomically.","findings":[{"severity":"medium","category":"upgradeability","title":"Unprotected initializer allows takeover of uninitialized proxy or post-upgrade reinitialization","exploit_scenario":"If a proxy is deployed without calling `initialize` in the same transaction (or an upgrade introduces a new revision), any external account can call `initialize` first and set `_pool`, `_treasury`, and `_underlyingAsset` to attacker-controlled values. That lets the attacker become the `onlyLendingPool` and mint/burn aTokens or call `transferUnderlyingTo`, potentially draining any underlying held by the token contract and permanently breaking the intended pool integration.","recommendation":"Restrict `initialize` to a trusted admin (e.g., pool configurator/addresses provider) and invoke it atomically via `upgradeToAndCall` during deployment/upgrades. Consider adding an implementation-side initializer lock (e.g., OZ’s `_disableInitializers`) to prevent initializing the logic contract directly.","evidence":"`AToken.initialize` is `external` and only guarded by the `initializer` modifier; `VersionedInitializable` enforces revision ordering but does not restrict who can call the initializer.","locations":["contracts/contracts/protocol/tokenization/AToken.sol:69","contracts/contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol:32"]}]}
[codex:839956] tokens used
[codex:839956] 69,231
[codex:839956] {"no_findings":false,"summary":"1 medium upgradeability issue: initialize is permissionless, enabling takeover if a proxy/upgrade isn’t initialized atomically.","findings":[{"severity":"medium","category":"upgradeability","title":"Unprotected initializer allows takeover of uninitialized proxy or post-upgrade reinitialization","exploit_scenario":"If a proxy is deployed without calling `initialize` in the same transaction (or an upgrade introduces a new revision), any external account can call `initialize` first and set `_pool`, `_treasury`, and `_underlyingAsset` to attacker-controlled values. That lets the attacker become the `onlyLendingPool` and mint/burn aTokens or call `transferUnderlyingTo`, potentially draining any underlying held by the token contract and permanently breaking the intended pool integration.","recommendation":"Restrict `initialize` to a trusted admin (e.g., pool configurator/addresses provider) and invoke it atomically via `upgradeToAndCall` during deployment/upgrades. Consider adding an implementation-side initializer lock (e.g., OZ’s `_disableInitializers`) to prevent initializing the logic contract directly.","evidence":"`AToken.initialize` is `external` and only guarded by the `initializer` modifier; `VersionedInitializable` enforces revision ordering but does not restrict who can call the initializer.","locations":["contracts/contracts/protocol/tokenization/AToken.sol:69","contracts/contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol:32"]}]}
{
"codex": {
"ran_at": "2025-12-30T00:30:59.212293+00:00",
"returncode": 0
},
"summary": "1 medium upgradeability issue: initialize is permissionless, enabling takeover if a proxy/upgrade isn\u2019t initialized atomically.",
"raw_final": {
"summary": "1 medium upgradeability issue: initialize is permissionless, enabling takeover if a proxy/upgrade isn\u2019t initialized atomically.",
"findings": [
{
"title": "Unprotected initializer allows takeover of uninitialized proxy or post-upgrade reinitialization",
"category": "upgradeability",
"evidence": "`AToken.initialize` is `external` and only guarded by the `initializer` modifier; `VersionedInitializable` enforces revision ordering but does not restrict who can call the initializer.",
"severity": "medium",
"locations": [
"contracts/contracts/protocol/tokenization/AToken.sol:69",
"contracts/contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol:32"
],
"recommendation": "Restrict `initialize` to a trusted admin (e.g., pool configurator/addresses provider) and invoke it atomically via `upgradeToAndCall` during deployment/upgrades. Consider adding an implementation-side initializer lock (e.g., OZ\u2019s `_disableInitializers`) to prevent initializing the logic contract directly.",
"exploit_scenario": "If a proxy is deployed without calling `initialize` in the same transaction (or an upgrade introduces a new revision), any external account can call `initialize` first and set `_pool`, `_treasury`, and `_underlyingAsset` to attacker-controlled values. That lets the attacker become the `onlyLendingPool` and mint/burn aTokens or call `transferUnderlyingTo`, potentially draining any underlying held by the token contract and permanently breaking the intended pool integration."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLVALUE 00000006: DUP1 00000007: ISZERO 00000008: PUSH2 0x0010 0000000b: JUMPI 0000000c: PUSH1 0x00 0000000e: DUP1 0000000f: REVERT 00000010: JUMPDEST 00000011: POP 00000012: PUSH1 0x04 00000014: CALLDATASIZE 00000015: LT 00000016: PUSH2 0x01e5 00000019: JUMPI 0000001a: PUSH1 0x00 0000001c: CALLDATALOAD 0000001d: PUSH1 0xe0 0000001f: SHR 00000020: DUP1 00000021: PUSH4 0x75d26413 00000026: GT 00000027: PUSH2 0x010f 0000002a: JUMPI 0000002b: DUP1 0000002c: PUSH4 0xb16a19de 00000031: GT 00000032: PUSH2 0x00a2 00000035: JUMPI 00000036: DUP1 00000037: PUSH4 0xd505accf 0000003c: GT 0000003d: PUSH2 0x0071 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0xd505accf 00000047: EQ 00000048: PUSH2 0x06a4 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0xd7020d0a 00000052: EQ 00000053: PUSH2 0x06f5 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0xdd62ed3e 0000005d: EQ 0000005e: PUSH2 0x0731 00000061: JUMPI 00000062: DUP1 00000063: PUSH4 0xf866c319 00000068: EQ 00000069: PUSH2 0x075f 0000006c: JUMPI 0000006d: PUSH2 0x01e5 00000070: JUMP 00000071: JUMPDEST 00000072: DUP1 00000073: PUSH4 0xb16a19de 00000078: EQ 00000079: PUSH2 0x052f 0000007c: JUMPI 0000007d: DUP1 0000007e: PUSH4 0xb1bf962d 00000083: EQ 00000084: PUSH2 0x0537 00000087: JUMPI 00000088: DUP1 00000089: PUSH4 0xb9844d8d 0000008e: EQ 0000008f: PUSH2 0x053f 00000092: JUMPI 00000093: DUP1 00000094: PUSH4 0xc222ec8a 00000099: EQ 0000009a: PUSH2 0x0565 0000009d: JUMPI 0000009e: PUSH2 0x01e5 000000a1: JUMP 000000a2: JUMPDEST 000000a3: DUP1 000000a4: PUSH4 0x95d89b41 000000a9: GT 000000aa: PUSH2 0x00de 000000ad: JUMPI 000000ae: DUP1 000000af: PUSH4 0x95d89b41 000000b4: EQ 000000b5: PUSH2 0x04c7 000000b8: JUMPI 000000b9: DUP1 000000ba: PUSH4 0xa457c2d7 000000bf: EQ 000000c0: PUSH2 0x04cf 000000c3: JUMPI 000000c4: DUP1 000000c5: PUSH4 0xa9059cbb 000000ca: EQ 000000cb: PUSH2 0x04fb 000000ce: JUMPI 000000cf: DUP1 000000d0: PUSH4 0xae167335 000000d5: EQ 000000d6: PUSH2 0x0527 000000d9: JUMPI 000000da: PUSH2 0x01e5 000000dd: JUMP 000000de: JUMPDEST 000000df: DUP1 000000e0: PUSH4 0x75d26413 000000e5: EQ 000000e6: PUSH2 0x0466 000000e9: JUMPI 000000ea: DUP1 000000eb: PUSH4 0x78160376 000000f0: EQ 000000f1: PUSH2 0x046e 000000f4: JUMPI 000000f5: DUP1 000000f6: PUSH4 0x7df5bd3b 000000fb: EQ 000000fc: PUSH2 0x0476 000000ff: JUMPI 00000100: DUP1 00000101: PUSH4 0x88dd91a1 00000106: EQ 00000107: PUSH2 0x049b 0000010a: JUMPI 0000010b: PUSH2 0x01e5 0000010e: JUMP 0000010f: JUMPDEST 00000110: DUP1 00000111: PUSH4 0x23b872dd 00000116: GT 00000117: PUSH2 0x0187 0000011a: JUMPI 0000011b: DUP1 0000011c: PUSH4 0x39509351 00000121: GT 00000122: PUSH2 0x0156 00000125: JUMPI 00000126: DUP1 00000127: PUSH4 0x39509351 0000012c: EQ 0000012d: PUSH2 0x03c4 00000130: JUMPI 00000131: DUP1 00000132: PUSH4 0x4efecaa5 00000137: EQ 00000138: PUSH2 0x03f0 0000013b: JUMPI 0000013c: DUP1 0000013d: PUSH4 0x70a08231 00000142: EQ 00000143: PUSH2 0x041c 00000146: JUMPI 00000147: DUP1 00000148: PUSH4 0x7535d246 0000014d: EQ 0000014e: PUSH2 0x0442 00000151: JUMPI 00000152: PUSH2 0x01e5 00000155: JUMP 00000156: JUMPDEST 00000157: DUP1 00000158: PUSH4 0x23b872dd 0000015d: EQ 0000015e: PUSH2 0x0360 00000161: JUMPI 00000162: DUP1 00000163: PUSH4 0x30adf81f 00000168: EQ 00000169: PUSH2 0x0396 0000016c: JUMPI 0000016d: DUP1 0000016e: PUSH4 0x313ce567 00000173: EQ 00000174: PUSH2 0x039e 00000177: JUMPI 00000178: DUP1 00000179: PUSH4 0x3644e515 0000017e: EQ 0000017f: PUSH2 0x03bc 00000182: JUMPI 00000183: PUSH2 0x01e5 00000186: JUMP 00000187: JUMPDEST 00000188: DUP1 00000189: PUSH4 0x0bd7ad3b 0000018e: GT 0000018f: PUSH2 0x01c3 00000192: JUMPI 00000193: DUP1 00000194: PUSH4 0x0bd7ad3b 00000199: EQ 0000019a: PUSH2 0x02e6 0000019d: JUMPI 0000019e: DUP1 0000019f: PUSH4 0x156e29f6 000001a4: EQ 000001a5: PUSH2 0x0300 000001a8: JUMPI 000001a9: DUP1 000001aa: PUSH4 0x18160ddd 000001af: EQ 000001b0: PUSH2 0x0332 000001b3: JUMPI 000001b4: DUP1 000001b5: PUSH4 0x1da24f3e 000001ba: EQ 000001bb: PUSH2 0x033a 000001be: JUMPI 000001bf: PUSH2 0x01e5 000001c2: JUMP 000001c3: JUMPDEST 000001c4: DUP1 000001c5: PUSH4 0x06fdde03 000001ca: EQ 000001cb: PUSH2 0x01ea 000001ce: JUMPI 000001cf: DUP1 000001d0: PUSH4 0x095ea7b3 000001d5: EQ 000001d6: PUSH2 0x0267 000001d9: JUMPI 000001da: DUP1 000001db: PUSH4 0x0afbcdc9 000001e0: EQ 000001e1: PUSH2 0x02a7 000001e4: JUMPI 000001e5: JUMPDEST 000001e6: PUSH1 0x00 000001e8: DUP1 000001e9: REVERT 000001ea: JUMPDEST 000001eb: PUSH2 0x01f2 000001ee: PUSH2 0x0795 000001f1: JUMP 000001f2: JUMPDEST 000001f3: PUSH1 0x40 000001f5: DUP1 000001f6: MLOAD 000001f7: PUSH1 0x20 000001f9: DUP1 000001fa: DUP3 000001fb: MSTORE 000001fc: DUP4 000001fd: MLOAD 000001fe: DUP2 000001ff: DUP4 00000200: ADD 00000201: MSTORE 00000202: DUP4 00000203: MLOAD 00000204: SWAP2 00000205: SWAP3 00000206: DUP4 00000207: SWAP3 00000208: SWAP1 00000209: DUP4 0000020a: ADD 0000020b: SWAP2 0000020c: DUP6 0000020d: ADD 0000020e: SWAP1 0000020f: DUP1 00000210: DUP4 00000211: DUP4 00000212: PUSH1 0x00 00000214: JUMPDEST 00000215: DUP4 00000216: DUP2 00000217: LT 00000218: ISZERO 00000219: PUSH2 0x022c 0000021c: JUMPI 0000021d: DUP2 0000021e: DUP2 0000021f: ADD 00000220: MLOAD 00000221: DUP4 00000222: DUP3 00000223: ADD 00000224: MSTORE 00000225: PUSH1 0x20 00000227: ADD 00000228: PUSH2 0x0214 0000022b: JUMP 0000022c: JUMPDEST 0000022d: POP 0000022e: POP 0000022f: POP 00000230: POP 00000231: SWAP1 00000232: POP 00000233: SWAP1 00000234: DUP2 00000235: ADD 00000236: SWAP1 00000237: PUSH1 0x1f 00000239: AND 0000023a: DUP1 0000023b: ISZERO 0000023c: PUSH2 0x0259 0000023f: JUMPI 00000240: DUP1 00000241: DUP3 00000242: SUB 00000243: DUP1 00000244: MLOAD 00000245: PUSH1 0x01 00000247: DUP4 00000248: PUSH1 0x20 0000024a: SUB 0000024b: PUSH2 0x0100 0000024e: EXP 0000024f: SUB 00000250: NOT 00000251: AND 00000252: DUP2 00000253: MSTORE 00000254: PUSH1 0x20 00000256: ADD 00000257: SWAP2 00000258: POP 00000259: JUMPDEST 0000025a: POP 0000025b: SWAP3 0000025c: POP 0000025d: POP 0000025e: POP 0000025f: PUSH1 0x40 00000261: MLOAD 00000262: DUP1 00000263: SWAP2 00000264: SUB 00000265: SWAP1 00000266: RETURN 00000267: JUMPDEST 00000268: PUSH2 0x0293 0000026b: PUSH1 0x04 0000026d: DUP1 0000026e: CALLDATASIZE 0000026f: SUB 00000270: PUSH1 0x40 00000272: DUP2 00000273: LT 00000274: ISZERO 00000275: PUSH2 0x027d 00000278: JUMPI 00000279: PUSH1 0x00 0000027b: DUP1 0000027c: REVERT 0000027d: JUMPDEST 0000027e: POP 0000027f: PUSH1 0x01 00000281: PUSH1 0x01 00000283: PUSH1 0xa0 00000285: SHL 00000286: SUB 00000287: DUP2 00000288: CALLDATALOAD 00000289: AND 0000028a: SWAP1 0000028b: PUSH1 0x20 0000028d: ADD 0000028e: CALLDATALOAD 0000028f: PUSH2 0x082c 00000292: JUMP 00000293: JUMPDEST 00000294: PUSH1 0x40 00000296: DUP1 00000297: MLOAD 00000298: SWAP2 00000299: ISZERO 0000029a: ISZERO 0000029b: DUP3 0000029c: MSTORE 0000029d: MLOAD 0000029e: SWAP1 0000029f: DUP2 000002a0: SWAP1 000002a1: SUB 000002a2: PUSH1 0x20 000002a4: ADD 000002a5: SWAP1 000002a6: RETURN 000002a7: JUMPDEST 000002a8: PUSH2 0x02cd 000002ab: PUSH1 0x04 000002ad: DUP1 000002ae: CALLDATASIZE 000002af: SUB 000002b0: PUSH1 0x20 000002b2: DUP2 000002b3: LT 000002b4: ISZERO 000002b5: PUSH2 0x02bd 000002b8: JUMPI 000002b9: PUSH1 0x00 000002bb: DUP1 000002bc: REVERT 000002bd: JUMPDEST 000002be: POP 000002bf: CALLDATALOAD 000002c0: PUSH1 0x01 000002c2: PUSH1 0x01 000002c4: PUSH1 0xa0 000002c6: SHL 000002c7: SUB 000002c8: AND 000002c9: PUSH2 0x084a 000002cc: JUMP 000002cd: JUMPDEST 000002ce: PUSH1 0x40 000002d0: DUP1 000002d1: MLOAD 000002d2: SWAP3 000002d3: DUP4 000002d4: MSTORE 000002d5: PUSH1 0x20 000002d7: DUP4 000002d8: ADD 000002d9: SWAP2 000002da: SWAP1 000002db: SWAP2 000002dc: MSTORE 000002dd: DUP1 000002de: MLOAD 000002df: SWAP2 000002e0: DUP3 000002e1: SWAP1 000002e2: SUB 000002e3: ADD 000002e4: SWAP1 000002e5: RETURN 000002e6: JUMPDEST 000002e7: PUSH2 0x02ee 000002ea: PUSH2 0x0867 000002ed: JUMP 000002ee: JUMPDEST 000002ef: PUSH1 0x40 000002f1: DUP1 000002f2: MLOAD 000002f3: SWAP2 000002f4: DUP3 000002f5: MSTORE 000002f6: MLOAD 000002f7: SWAP1 000002f8: DUP2 000002f9: SWAP1 000002fa: SUB 000002fb: PUSH1 0x20 000002fd: ADD 000002fe: SWAP1 000002ff: RETURN 00000300: JUMPDEST 00000301: PUSH2 0x0293 00000304: PUSH1 0x04 00000306: DUP1 00000307: CALLDATASIZE 00000308: SUB 00000309: PUSH1 0x60 0000030b: DUP2 0000030c: LT 0000030d: ISZERO 0000030e: PUSH2 0x0316 00000311: JUMPI 00000312: PUSH1 0x00 00000314: DUP1 00000315: REVERT 00000316: JUMPDEST 00000317: POP 00000318: PUSH1 0x01 0000031a: PUSH1 0x01 0000031c: PUSH1 0xa0 0000031e: SHL 0000031f: SUB 00000320: DUP2 00000321: CALLDATALOAD 00000322: AND 00000323: SWAP1 00000324: PUSH1 0x20 00000326: DUP2 00000327: ADD 00000328: CALLDATALOAD 00000329: SWAP1 0000032a: PUSH1 0x40 0000032c: ADD 0000032d: CALLDATALOAD 0000032e: PUSH2 0x086c 00000331: JUMP 00000332: JUMPDEST 00000333: PUSH2 0x02ee 00000336: PUSH2 0x0a41 00000339: JUMP 0000033a: JUMPDEST 0000033b: PUSH2 0x02ee 0000033e: PUSH1 0x04 00000340: DUP1 00000341: CALLDATASIZE 00000342: SUB 00000343: PUSH1 0x20 00000345: DUP2 00000346: LT 00000347: ISZERO 00000348: PUSH2 0x0350 0000034b: JUMPI 0000034c: PUSH1 0x00 0000034e: DUP1 0000034f: REVERT 00000350: JUMPDEST 00000351: POP 00000352: CALLDATALOAD 00000353: PUSH1 0x01 00000355: PUSH1 0x01 00000357: PUSH1 0xa0 00000359: SHL 0000035a: SUB 0000035b: AND 0000035c: PUSH2 0x0aef 0000035f: JUMP 00000360: JUMPDEST 00000361: PUSH2 0x0293 00000364: PUSH1 0x04 00000366: DUP1 00000367: CALLDATASIZE 00000368: SUB 00000369: PUSH1 0x60 0000036b: DUP2 0000036c: LT 0000036d: ISZERO 0000036e: PUSH2 0x0376 00000371: JUMPI 00000372: PUSH1 0x00 00000374: DUP1 00000375: REVERT 00000376: JUMPDEST 00000377: POP 00000378: PUSH1 0x01 0000037a: PUSH1 0x01 0000037c: PUSH1 0xa0 0000037e: SHL 0000037f: SUB 00000380: DUP2 00000381: CALLDATALOAD 00000382: DUP2 00000383: AND 00000384: SWAP2 00000385: PUSH1 0x20 00000387: DUP2 00000388: ADD 00000389: CALLDATALOAD 0000038a: SWAP1 0000038b: SWAP2 0000038c: AND 0000038d: SWAP1 0000038e: PUSH1 0x40 00000390: ADD 00000391: CALLDATALOAD 00000392: PUSH2 0x0afa 00000395: JUMP 00000396: JUMPDEST 00000397: PUSH2 0x02ee 0000039a: PUSH2 0x0bba 0000039d: JUMP 0000039e: JUMPDEST 0000039f: PUSH2 0x03a6 000003a2: PUSH2 0x0bde 000003a5: JUMP 000003a6: JUMPDEST 000003a7: PUSH1 0x40 000003a9: DUP1 000003aa: MLOAD 000003ab: PUSH1 0xff 000003ad: SWAP1 000003ae: SWAP3 000003af: AND 000003b0: DUP3 000003b1: MSTORE 000003b2: MLOAD 000003b3: SWAP1 000003b4: DUP2 000003b5: SWAP1 000003b6: SUB 000003b7: PUSH1 0x20 000003b9: ADD 000003ba: SWAP1 000003bb: RETURN 000003bc: JUMPDEST 000003bd: PUSH2 0x02ee 000003c0: PUSH2 0x0be7 000003c3: JUMP 000003c4: JUMPDEST 000003c5: PUSH2 0x0293 000003c8: PUSH1 0x04 000003ca: DUP1 000003cb: CALLDATASIZE 000003cc: SUB 000003cd: PUSH1 0x40 000003cf: DUP2 000003d0: LT 000003d1: ISZERO 000003d2: PUSH2 0x03da 000003d5: JUMPI 000003d6: PUSH1 0x00 000003d8: DUP1 000003d9: REVERT 000003da: JUMPDEST 000003db: POP 000003dc: PUSH1 0x01 000003de: PUSH1 0x01 000003e0: PUSH1 0xa0 000003e2: SHL 000003e3: SUB 000003e4: DUP2 000003e5: CALLDATALOAD 000003e6: AND 000003e7: SWAP1 000003e8: PUSH1 0x20 000003ea: ADD 000003eb: CALLDATALOAD 000003ec: PUSH2 0x0bed 000003ef: JUMP 000003f0: JUMPDEST 000003f1: PUSH2 0x02ee 000003f4: PUSH1 0x04 000003f6: DUP1 000003f7: CALLDATASIZE 000003f8: SUB 000003f9: PUSH1 0x40 000003fb: DUP2 000003fc: LT 000003fd: ISZERO 000003fe: PUSH2 0x0406 00000401: JUMPI 00000402: PUSH1 0x00 00000404: DUP1 00000405: REVERT 00000406: JUMPDEST 00000407: POP 00000408: PUSH1 0x01 0000040a: PUSH1 0x01 0000040c: PUSH1 0xa0 0000040e: SHL 0000040f: SUB 00000410: DUP2 00000411: CALLDATALOAD 00000412: AND 00000413: SWAP1 00000414: PUSH1 0x20 00000416: ADD 00000417: CALLDATALOAD 00000418: PUSH2 0x0c3b 0000041b: JUMP 0000041c: JUMPDEST 0000041d: PUSH2 0x02ee 00000420: PUSH1 0x04 00000422: DUP1 00000423: CALLDATASIZE 00000424: SUB 00000425: PUSH1 0x20 00000427: DUP2 00000428: LT 00000429: ISZERO 0000042a: PUSH2 0x0432 0000042d: JUMPI 0000042e: PUSH1 0x00 00000430: DUP1 00000431: REVERT 00000432: JUMPDEST 00000433: POP 00000434: CALLDATALOAD 00000435: PUSH1 0x01 00000437: PUSH1 0x01 00000439: PUSH1 0xa0 0000043b: SHL 0000043c: SUB 0000043d: AND 0000043e: PUSH2 0x0ce6 00000441: JUMP 00000442: JUMPDEST 00000443: PUSH2 0x044a 00000446: PUSH2 0x0d7b 00000449: JUMP 0000044a: JUMPDEST 0000044b: PUSH1 0x40 0000044d: DUP1 0000044e: MLOAD 0000044f: PUSH1 0x01 00000451: PUSH1 0x01 00000453: PUSH1 0xa0 00000455: SHL 00000456: SUB 00000457: SWAP1 00000458: SWAP3 00000459: AND 0000045a: DUP3 0000045b: MSTORE 0000045c: MLOAD 0000045d: SWAP1 0000045e: DUP2 0000045f: SWAP1 00000460: SUB 00000461: PUSH1 0x20 00000463: ADD 00000464: SWAP1 00000465: RETURN 00000466: JUMPDEST 00000467: PUSH2 0x044a 0000046a: PUSH2 0x0d8f 0000046d: JUMP 0000046e: JUMPDEST 0000046f: PUSH2 0x01f2 00000472: PUSH2 0x0d9e 00000475: JUMP 00000476: JUMPDEST 00000477: PUSH2 0x0499 0000047a: PUSH1 0x04 0000047c: DUP1 0000047d: CALLDATASIZE 0000047e: SUB 0000047f: PUSH1 0x40 00000481: DUP2 00000482: LT 00000483: ISZERO 00000484: PUSH2 0x048c 00000487: JUMPI 00000488: PUSH1 0x00 0000048a: DUP1 0000048b: REVERT 0000048c: JUMPDEST 0000048d: POP 0000048e: DUP1 0000048f: CALLDATALOAD 00000490: SWAP1 00000491: PUSH1 0x20 00000493: ADD 00000494: CALLDATALOAD 00000495: PUSH2 0x0dbb 00000498: JUMP 00000499: JUMPDEST 0000049a: STOP 0000049b: JUMPDEST 0000049c: PUSH2 0x0499 0000049f: PUSH1 0x04 000004a1: DUP1 000004a2: CALLDATASIZE 000004a3: SUB 000004a4: PUSH1 0x40 000004a6: DUP2 000004a7: LT 000004a8: ISZERO 000004a9: PUSH2 0x04b1 000004ac: JUMPI 000004ad: PUSH1 0x00 000004af: DUP1 000004b0: REVERT 000004b1: JUMPDEST 000004b2: POP 000004b3: PUSH1 0x01 000004b5: PUSH1 0x01 000004b7: PUSH1 0xa0 000004b9: SHL 000004ba: SUB 000004bb: DUP2 000004bc: CALLDATALOAD 000004bd: AND 000004be: SWAP1 000004bf: PUSH1 0x20 000004c1: ADD 000004c2: CALLDATALOAD 000004c3: PUSH2 0x0ee7 000004c6: JUMP 000004c7: JUMPDEST 000004c8: PUSH2 0x01f2 000004cb: PUSH2 0x0f76 000004ce: JUMP 000004cf: JUMPDEST 000004d0: PUSH2 0x0293 000004d3: PUSH1 0x04 000004d5: DUP1 000004d6: CALLDATASIZE 000004d7: SUB 000004d8: PUSH1 0x40 000004da: DUP2 000004db: LT 000004dc: ISZERO 000004dd: PUSH2 0x04e5 000004e0: JUMPI 000004e1: PUSH1 0x00 000004e3: DUP1 000004e4: REVERT 000004e5: JUMPDEST 000004e6: POP 000004e7: PUSH1 0x01 000004e9: PUSH1 0x01 000004eb: PUSH1 0xa0 000004ed: SHL 000004ee: SUB 000004ef: DUP2 000004f0: CALLDATALOAD 000004f1: AND 000004f2: SWAP1 000004f3: PUSH1 0x20 000004f5: ADD 000004f6: CALLDATALOAD 000004f7: PUSH2 0x0fd7 000004fa: JUMP 000004fb: JUMPDEST 000004fc: PUSH2 0x0293 000004ff: PUSH1 0x04 00000501: DUP1 00000502: CALLDATASIZE 00000503: SUB 00000504: PUSH1 0x40 00000506: DUP2 00000507: LT 00000508: ISZERO 00000509: PUSH2 0x0511 0000050c: JUMPI 0000050d: PUSH1 0x00 0000050f: DUP1 00000510: REVERT 00000511: JUMPDEST 00000512: POP 00000513: PUSH1 0x01 00000515: PUSH1 0x01 00000517: PUSH1 0xa0 00000519: SHL 0000051a: SUB 0000051b: DUP2 0000051c: CALLDATALOAD 0000051d: AND 0000051e: SWAP1 0000051f: PUSH1 0x20 00000521: ADD 00000522: CALLDATALOAD 00000523: PUSH2 0x103f 00000526: JUMP 00000527: JUMPDEST 00000528: PUSH2 0x044a 0000052b: PUSH2 0x109c 0000052e: JUMP 0000052f: JUMPDEST 00000530: PUSH2 0x044a 00000533: PUSH2 0x10ab 00000536: JUMP 00000537: JUMPDEST 00000538: PUSH2 0x02ee 0000053b: PUSH2 0x10ba 0000053e: JUMP 0000053f: JUMPDEST 00000540: PUSH2 0x02ee 00000543: PUSH1 0x04 00000545: DUP1 00000546: CALLDATASIZE 00000547: SUB 00000548: PUSH1 0x20 0000054a: DUP2 0000054b: LT 0000054c: ISZERO 0000054d: PUSH2 0x0555 00000550: JUMPI 00000551: PUSH1 0x00 00000553: DUP1 00000554: REVERT 00000555: JUMPDEST 00000556: POP 00000557: CALLDATALOAD 00000558: PUSH1 0x01 0000055a: PUSH1 0x01 0000055c: PUSH1 0xa0 0000055e: SHL 0000055f: SUB 00000560: AND 00000561: PUSH2 0x10c4 00000564: JUMP 00000565: JUMPDEST 00000566: PUSH2 0x0499 00000569: PUSH1 0x04 0000056b: DUP1 0000056c: CALLDATASIZE 0000056d: SUB 0000056e: PUSH1 0xe0 00000570: DUP2 00000571: LT 00000572: ISZERO 00000573: PUSH2 0x057b 00000576: JUMPI 00000577: PUSH1 0x00 00000579: DUP1 0000057a: REVERT 0000057b: JUMPDEST 0000057c: PUSH1 0x01 0000057e: PUSH1 0x01 00000580: PUSH1 0xa0 00000582: SHL 00000583: SUB 00000584: DUP3 00000585: CALLDATALOAD 00000586: DUP2 00000587: AND 00000588: SWAP3 00000589: PUSH1 0x20 0000058b: DUP2 0000058c: ADD 0000058d: CALLDATALOAD 0000058e: DUP3 0000058f: AND 00000590: SWAP3 00000591: PUSH1 0x40 00000593: DUP3 00000594: ADD 00000595: CALLDATALOAD 00000596: SWAP1 00000597: SWAP3 00000598: AND 00000599: SWAP2 0000059a: PUSH1 0xff 0000059c: PUSH1 0x60 0000059e: DUP4 0000059f: ADD 000005a0: CALLDATALOAD 000005a1: AND 000005a2: SWAP2 000005a3: SWAP1 000005a4: DUP2 000005a5: ADD 000005a6: SWAP1 000005a7: PUSH1 0xa0 000005a9: DUP2 000005aa: ADD 000005ab: PUSH1 0x80 000005ad: DUP3 000005ae: ADD 000005af: CALLDATALOAD 000005b0: PUSH5 0x0100000000 000005b6: DUP2 000005b7: GT 000005b8: ISZERO 000005b9: PUSH2 0x05c1 000005bc: JUMPI 000005bd: PUSH1 0x00 000005bf: DUP1 000005c0: REVERT 000005c1: JUMPDEST 000005c2: DUP3 000005c3: ADD 000005c4: DUP4 000005c5: PUSH1 0x20 000005c7: DUP3 000005c8: ADD 000005c9: GT 000005ca: ISZERO 000005cb: PUSH2 0x05d3 000005ce: JUMPI 000005cf: PUSH1 0x00 000005d1: DUP1 000005d2: REVERT 000005d3: JUMPDEST 000005d4: DUP1 000005d5: CALLDATALOAD 000005d6: SWAP1 000005d7: PUSH1 0x20 000005d9: ADD 000005da: SWAP2 000005db: DUP5 000005dc: PUSH1 0x01 000005de: DUP4 000005df: MUL 000005e0: DUP5 000005e1: ADD 000005e2: GT 000005e3: PUSH5 0x0100000000 000005e9: DUP4 000005ea: GT 000005eb: OR 000005ec: ISZERO 000005ed: PUSH2 0x05f5 000005f0: JUMPI 000005f1: PUSH1 0x00 000005f3: DUP1 000005f4: REVERT 000005f5: JUMPDEST 000005f6: SWAP2 000005f7: SWAP4 000005f8: SWAP1 000005f9: SWAP3 000005fa: SWAP1 000005fb: SWAP2 000005fc: PUSH1 0x20 000005fe: DUP2 000005ff: ADD 00000600: SWAP1 00000601: CALLDATALOAD 00000602: PUSH5 0x0100000000 00000608: DUP2 00000609: GT 0000060a: ISZERO 0000060b: PUSH2 0x0613 0000060e: JUMPI 0000060f: PUSH1 0x00 00000611: DUP1 00000612: REVERT 00000613: JUMPDEST 00000614: DUP3 00000615: ADD 00000616: DUP4 00000617: PUSH1 0x20 00000619: DUP3 0000061a: ADD 0000061b: GT 0000061c: ISZERO 0000061d: PUSH2 0x0625 00000620: JUMPI 00000621: PUSH1 0x00 00000623: DUP1 00000624: REVERT 00000625: JUMPDEST 00000626: DUP1 00000627: CALLDATALOAD 00000628: SWAP1 00000629: PUSH1 0x20 0000062b: ADD 0000062c: SWAP2 0000062d: DUP5 0000062e: PUSH1 0x01 00000630: DUP4 00000631: MUL 00000632: DUP5 00000633: ADD 00000634: GT 00000635: PUSH5 0x0100000000 0000063b: DUP4 0000063c: GT 0000063d: OR 0000063e: ISZERO 0000063f: PUSH2 0x0647 00000642: JUMPI 00000643: PUSH1 0x00 00000645: DUP1 00000646: REVERT 00000647: JUMPDEST 00000648: SWAP2 00000649: SWAP4 0000064a: SWAP1 0000064b: SWAP3 0000064c: SWAP1 0000064d: SWAP2 0000064e: PUSH1 0x20 00000650: DUP2 00000651: ADD 00000652: SWAP1 00000653: CALLDATALOAD 00000654: PUSH5 0x0100000000 0000065a: DUP2 0000065b: GT 0000065c: ISZERO 0000065d: PUSH2 0x0665 00000660: JUMPI 00000661: PUSH1 0x00 00000663: DUP1 00000664: REVERT 00000665: JUMPDEST 00000666: DUP3 00000667: ADD 00000668: DUP4 00000669: PUSH1 0x20 0000066b: DUP3 0000066c: ADD 0000066d: GT 0000066e: ISZERO 0000066f: PUSH2 0x0677 00000672: JUMPI 00000673: PUSH1 0x00 00000675: DUP1 00000676: REVERT 00000677: JUMPDEST 00000678: DUP1 00000679: CALLDATALOAD 0000067a: SWAP1 0000067b: PUSH1 0x20 0000067d: ADD 0000067e: SWAP2 0000067f: DUP5 00000680: PUSH1 0x01 00000682: DUP4 00000683: MUL 00000684: DUP5 00000685: ADD 00000686: GT 00000687: PUSH5 0x0100000000 0000068d: DUP4 0000068e: GT 0000068f: OR 00000690: ISZERO 00000691: PUSH2 0x0699 00000694: JUMPI 00000695: PUSH1 0x00 00000697: DUP1 00000698: REVERT 00000699: JUMPDEST 0000069a: POP 0000069b: SWAP1 0000069c: SWAP3 0000069d: POP 0000069e: SWAP1 0000069f: POP 000006a0: PUSH2 0x10d6 000006a3: JUMP 000006a4: JUMPDEST 000006a5: PUSH2 0x0499 000006a8: PUSH1 0x04 000006aa: DUP1 000006ab: CALLDATASIZE 000006ac: SUB 000006ad: PUSH1 0xe0 000006af: DUP2 000006b0: LT 000006b1: ISZERO 000006b2: PUSH2 0x06ba 000006b5: JUMPI 000006b6: PUSH1 0x00 000006b8: DUP1 000006b9: REVERT 000006ba: JUMPDEST 000006bb: POP 000006bc: PUSH1 0x01 000006be: PUSH1 0x01 000006c0: PUSH1 0xa0 000006c2: SHL 000006c3: SUB 000006c4: DUP2 000006c5: CALLDATALOAD 000006c6: DUP2 000006c7: AND 000006c8: SWAP2 000006c9: PUSH1 0x20 000006cb: DUP2 000006cc: ADD 000006cd: CALLDATALOAD 000006ce: SWAP1 000006cf: SWAP2 000006d0: AND 000006d1: SWAP1 000006d2: PUSH1 0x40 000006d4: DUP2 000006d5: ADD 000006d6: CALLDATALOAD 000006d7: SWAP1 000006d8: PUSH1 0x60 000006da: DUP2 000006db: ADD 000006dc: CALLDATALOAD 000006dd: SWAP1 000006de: PUSH1 0xff 000006e0: PUSH1 0x80 000006e2: DUP3 000006e3: ADD 000006e4: CALLDATALOAD 000006e5: AND 000006e6: SWAP1 000006e7: PUSH1 0xa0 000006e9: DUP2 000006ea: ADD 000006eb: CALLDATALOAD 000006ec: SWAP1 000006ed: PUSH1 0xc0 000006ef: ADD 000006f0: CALLDATALOAD 000006f1: PUSH2 0x14ba 000006f4: JUMP 000006f5: JUMPDEST 000006f6: PUSH2 0x0499 000006f9: PUSH1 0x04 000006fb: DUP1 000006fc: CALLDATASIZE 000006fd: SUB 000006fe: PUSH1 0x80 00000700: DUP2 00000701: LT 00000702: ISZERO 00000703: PUSH2 0x070b 00000706: JUMPI 00000707: PUSH1 0x00 00000709: DUP1 0000070a: REVERT 0000070b: JUMPDEST 0000070c: POP 0000070d: PUSH1 0x01 0000070f: PUSH1 0x01 00000711: PUSH1 0xa0 00000713: SHL 00000714: SUB 00000715: DUP2 00000716: CALLDATALOAD 00000717: DUP2 00000718: AND 00000719: SWAP2 0000071a: PUSH1 0x20 0000071c: DUP2 0000071d: ADD 0000071e: CALLDATALOAD 0000071f: SWAP1 00000720: SWAP2 00000721: AND 00000722: SWAP1 00000723: PUSH1 0x40 00000725: DUP2 00000726: ADD 00000727: CALLDATALOAD 00000728: SWAP1 00000729: PUSH1 0x60 0000072b: ADD 0000072c: CALLDATALOAD 0000072d: PUSH2 0x1701 00000730: JUMP 00000731: JUMPDEST 00000732: PUSH2 0x02ee 00000735: PUSH1 0x04 00000737: DUP1 00000738: CALLDATASIZE 00000739: SUB 0000073a: PUSH1 0x40 0000073c: DUP2 0000073d: LT 0000073e: ISZERO 0000073f: PUSH2 0x0747 00000742: JUMPI 00000743: PUSH1 0x00 00000745: DUP1 00000746: REVERT 00000747: JUMPDEST 00000748: POP 00000749: PUSH1 0x01 0000074b: PUSH1 0x01 0000074d: PUSH1 0xa0 0000074f: SHL 00000750: SUB 00000751: DUP2 00000752: CALLDATALOAD 00000753: DUP2 00000754: AND 00000755: SWAP2 00000756: PUSH1 0x20 00000758: ADD 00000759: CALLDATALOAD 0000075a: AND 0000075b: PUSH2 0x18ab 0000075e: JUMP 0000075f: JUMPDEST 00000760: PUSH2 0x0499 00000763: PUSH1 0x04 00000765: DUP1 00000766: CALLDATASIZE 00000767: SUB 00000768: PUSH1 0x60 0000076a: DUP2 0000076b: LT 0000076c: ISZERO 0000076d: PUSH2 0x0775 00000770: JUMPI 00000771: PUSH1 0x00 00000773: DUP1 00000774: REVERT 00000775: JUMPDEST 00000776: POP 00000777: PUSH1 0x01 00000779: PUSH1 0x01 0000077b: PUSH1 0xa0 0000077d: SHL 0000077e: SUB 0000077f: DUP2 00000780: CALLDATALOAD 00000781: DUP2 00000782: AND 00000783: SWAP2 00000784: PUSH1 0x20 00000786: DUP2 00000787: ADD 00000788: CALLDATALOAD 00000789: SWAP1 0000078a: SWAP2 0000078b: AND 0000078c: SWAP1 0000078d: PUSH1 0x40 0000078f: ADD 00000790: CALLDATALOAD 00000791: PUSH2 0x18d6 00000794: JUMP 00000795: JUMPDEST 00000796: PUSH1 0x37 00000798: DUP1 00000799: SLOAD 0000079a: PUSH1 0x40 0000079c: DUP1 0000079d: MLOAD 0000079e: PUSH1 0x20 000007a0: PUSH1 0x1f 000007a2: PUSH1 0x02 000007a4: PUSH1 0x00 000007a6: NOT 000007a7: PUSH2 0x0100 000007aa: PUSH1 0x01 000007ac: DUP9 000007ad: AND 000007ae: ISZERO 000007af: MUL 000007b0: ADD 000007b1: SWAP1 000007b2: SWAP6 000007b3: AND 000007b4: SWAP5 000007b5: SWAP1 000007b6: SWAP5 000007b7: DIV 000007b8: SWAP4 000007b9: DUP5 000007ba: ADD 000007bb: DUP2 000007bc: SWAP1 000007bd: DIV 000007be: DUP2 000007bf: MUL 000007c0: DUP3 000007c1: ADD 000007c2: DUP2 000007c3: ADD 000007c4: SWAP1 000007c5: SWAP3 000007c6: MSTORE 000007c7: DUP3 000007c8: DUP2 000007c9: MSTORE 000007ca: PUSH1 0x60 000007cc: SWAP4 000007cd: SWAP1 000007ce: SWAP3 000007cf: SWAP1 000007d0: SWAP2 000007d1: DUP4 000007d2: ADD 000007d3: DUP3 000007d4: DUP3 000007d5: DUP1 000007d6: ISZERO 000007d7: PUSH2 0x0821 000007da: JUMPI 000007db: DUP1 000007dc: PUSH1 0x1f 000007de: LT 000007df: PUSH2 0x07f6 000007e2: JUMPI 000007e3: PUSH2 0x0100 000007e6: DUP1 000007e7: DUP4 000007e8: SLOAD 000007e9: DIV 000007ea: MUL 000007eb: DUP4 000007ec: MSTORE 000007ed: SWAP2 000007ee: PUSH1 0x20 000007f0: ADD 000007f1: SWAP2 000007f2: PUSH2 0x0821 000007f5: JUMP 000007f6: JUMPDEST 000007f7: DUP3 000007f8: ADD 000007f9: SWAP2 000007fa: SWAP1 000007fb: PUSH1 0x00 000007fd: MSTORE 000007fe: PUSH1 0x20 00000800: PUSH1 0x00 00000802: KECCAK256 00000803: SWAP1 00000804: JUMPDEST 00000805: DUP2 00000806: SLOAD 00000807: DUP2 00000808: MSTORE 00000809: SWAP1 0000080a: PUSH1 0x01 0000080c: ADD 0000080d: SWAP1 0000080e: PUSH1 0x20 00000810: ADD 00000811: DUP1 00000812: DUP4 00000813: GT 00000814: PUSH2 0x0804 00000817: JUMPI 00000818: DUP3 00000819: SWAP1 0000081a: SUB 0000081b: PUSH1 0x1f 0000081d: AND 0000081e: DUP3 0000081f: ADD 00000820: SWAP2 00000821: JUMPDEST 00000822: POP 00000823: POP 00000824: POP 00000825: POP 00000826: POP 00000827: SWAP1 00000828: POP 00000829: JUMPDEST 0000082a: SWAP1 0000082b: JUMP 0000082c: JUMPDEST 0000082d: PUSH1 0x00 0000082f: PUSH2 0x0840 00000832: PUSH2 0x0839 00000835: PUSH2 0x19ac 00000838: JUMP 00000839: JUMPDEST 0000083a: DUP5 0000083b: DUP5 0000083c: PUSH2 0x19b0 0000083f: JUMP 00000840: JUMPDEST 00000841: POP 00000842: PUSH1 0x01 00000844: JUMPDEST 00000845: SWAP3 00000846: SWAP2 00000847: POP 00000848: POP 00000849: JUMP 0000084a: JUMPDEST 0000084b: PUSH1 0x00 0000084d: DUP1 0000084e: PUSH2 0x0856 00000851: DUP4 00000852: PUSH2 0x1a9c 00000855: JUMP 00000856: JUMPDEST 00000857: PUSH2 0x085e 0000085a: PUSH2 0x1ab7 0000085d: JUMP 0000085e: JUMPDEST 0000085f: SWAP2 00000860: POP 00000861: SWAP2 00000862: POP 00000863: SWAP2 00000864: POP 00000865: SWAP2 00000866: JUMP 00000867: JUMPDEST 00000868: PUSH1 0x01 0000086a: DUP2 0000086b: JUMP 0000086c: JUMPDEST 0000086d: PUSH1 0x39 0000086f: SLOAD 00000870: PUSH1 0x00 00000872: SWAP1 00000873: PUSH2 0x0100 00000876: SWAP1 00000877: DIV 00000878: PUSH1 0x01 0000087a: PUSH1 0x01 0000087c: PUSH1 0xa0 0000087e: SHL 0000087f: SUB 00000880: AND 00000881: PUSH2 0x0888 00000884: PUSH2 0x19ac 00000887: JUMP 00000888: JUMPDEST 00000889: PUSH1 0x01 0000088b: PUSH1 0x01 0000088d: PUSH1 0xa0 0000088f: SHL 00000890: SUB 00000891: AND 00000892: EQ 00000893: PUSH1 0x40 00000895: MLOAD 00000896: DUP1 00000897: PUSH1 0x40 00000899: ADD 0000089a: PUSH1 0x40 0000089c: MSTORE 0000089d: DUP1 0000089e: PUSH1 0x02 000008a0: DUP2 000008a1: MSTORE 000008a2: PUSH1 0x20 000008a4: ADD 000008a5: PUSH2 0x3239 000008a8: PUSH1 0xf0 000008aa: SHL 000008ab: DUP2 000008ac: MSTORE 000008ad: POP 000008ae: SWAP1 000008af: PUSH2 0x0936 000008b2: JUMPI 000008b3: PUSH1 0x40 000008b5: MLOAD 000008b6: PUSH3 0x461bcd 000008ba: PUSH1 0xe5 000008bc: SHL 000008bd: DUP2 000008be: MSTORE 000008bf: PUSH1 0x04 000008c1: ADD 000008c2: DUP1 000008c3: DUP1 000008c4: PUSH1 0x20 000008c6: ADD 000008c7: DUP3 000008c8: DUP2 000008c9: SUB 000008ca: DUP3 000008cb: MSTORE 000008cc: DUP4 000008cd: DUP2 000008ce: DUP2 000008cf: MLOAD 000008d0: DUP2 000008d1: MSTORE 000008d2: PUSH1 0x20 000008d4: ADD 000008d5: SWAP2 000008d6: POP 000008d7: DUP1 000008d8: MLOAD 000008d9: SWAP1 000008da: PUSH1 0x20 000008dc: ADD 000008dd: SWAP1 000008de: DUP1 000008df: DUP4 000008e0: DUP4 000008e1: PUSH1 0x00 000008e3: JUMPDEST 000008e4: DUP4 000008e5: DUP2 000008e6: LT 000008e7: ISZERO 000008e8: PUSH2 0x08fb 000008eb: JUMPI 000008ec: DUP2 000008ed: DUP2 000008ee: ADD 000008ef: MLOAD 000008f0: DUP4 000008f1: DUP3 000008f2: ADD 000008f3: MSTORE 000008f4: PUSH1 0x20 000008f6: ADD 000008f7: PUSH2 0x08e3 000008fa: JUMP 000008fb: JUMPDEST 000008fc: POP 000008fd: POP 000008fe: POP 000008ff: POP 00000900: SWAP1 00000901: POP 00000902: SWAP1 00000903: DUP2 00000904: ADD 00000905: SWAP1 00000906: PUSH1 0x1f 00000908: AND 00000909: DUP1 0000090a: ISZERO 0000090b: PUSH2 0x0928 0000090e: JUMPI 0000090f: DUP1 00000910: DUP3 00000911: SUB 00000912: DUP1 00000913: MLOAD 00000914: PUSH1 0x01 00000916: DUP4 00000917: PUSH1 0x20 00000919: SUB 0000091a: PUSH2 0x0100 0000091d: EXP 0000091e: SUB 0000091f: NOT 00000920: AND 00000921: DUP2 00000922: MSTORE 00000923: PUSH1 0x20 00000925: ADD 00000926: SWAP2 00000927: POP 00000928: JUMPDEST 00000929: POP 0000092a: SWAP3 0000092b: POP 0000092c: POP 0000092d: POP 0000092e: PUSH1 0x40 00000930: MLOAD 00000931: DUP1 00000932: SWAP2 00000933: SUB 00000934: SWAP1 00000935: REVERT 00000936: JUMPDEST 00000937: POP 00000938: PUSH1 0x00 0000093a: PUSH2 0x0942 0000093d: DUP6 0000093e: PUSH2 0x1a9c 00000941: JUMP 00000942: JUMPDEST 00000943: SWAP1 00000944: POP 00000945: PUSH1 0x00 00000947: PUSH2 0x0950 0000094a: DUP6 0000094b: DUP6 0000094c: PUSH2 0x1abd 0000094f: JUMP 00000950: JUMPDEST 00000951: PUSH1 0x40 00000953: DUP1 00000954: MLOAD 00000955: DUP1 00000956: DUP3 00000957: ADD 00000958: SWAP1 00000959: SWAP2 0000095a: MSTORE 0000095b: PUSH1 0x02 0000095d: DUP2 0000095e: MSTORE 0000095f: PUSH2 0x1a9b 00000962: PUSH1 0xf1 00000964: SHL 00000965: PUSH1 0x20 00000967: DUP3 00000968: ADD 00000969: MSTORE 0000096a: SWAP1 0000096b: SWAP2 0000096c: POP 0000096d: DUP2 0000096e: PUSH2 0x09b8 00000971: JUMPI 00000972: PUSH1 0x40 00000974: MLOAD 00000975: PUSH3 0x461bcd 00000979: PUSH1 0xe5 0000097b: SHL 0000097c: DUP2 0000097d: MSTORE 0000097e: PUSH1 0x20 00000980: PUSH1 0x04 00000982: DUP3 00000983: ADD 00000984: DUP2 00000985: DUP2 00000986: MSTORE 00000987: DUP4 00000988: MLOAD 00000989: PUSH1 0x24 0000098b: DUP5 0000098c: ADD 0000098d: MSTORE 0000098e: DUP4 0000098f: MLOAD 00000990: SWAP1 00000991: SWAP3 00000992: DUP4 00000993: SWAP3 00000994: PUSH1 0x44 00000996: SWAP1 00000997: SWAP2 00000998: ADD 00000999: SWAP2 0000099a: SWAP1 0000099b: DUP6 0000099c: ADD 0000099d: SWAP1 0000099e: DUP1 0000099f: DUP4 000009a0: DUP4 000009a1: PUSH1 0x00 000009a3: DUP4 000009a4: ISZERO 000009a5: PUSH2 0x08fb 000009a8: JUMPI 000009a9: DUP2 000009aa: DUP2 000009ab: ADD 000009ac: MLOAD 000009ad: DUP4 000009ae: DUP3 000009af: ADD 000009b0: MSTORE 000009b1: PUSH1 0x20 000009b3: ADD 000009b4: PUSH2 0x08e3 000009b7: JUMP 000009b8: JUMPDEST 000009b9: POP 000009ba: PUSH2 0x09c3 000009bd: DUP7 000009be: DUP3 000009bf: PUSH2 0x1bc4 000009c2: JUMP 000009c3: JUMPDEST 000009c4: PUSH1 0x40 000009c6: DUP1 000009c7: MLOAD 000009c8: DUP7 000009c9: DUP2 000009ca: MSTORE 000009cb: SWAP1 000009cc: MLOAD 000009cd: PUSH1 0x01 000009cf: PUSH1 0x01 000009d1: PUSH1 0xa0 000009d3: SHL 000009d4: SUB 000009d5: DUP9 000009d6: AND 000009d7: SWAP2 000009d8: PUSH1 0x00 000009da: SWAP2 000009db: PUSH1 0x00 000009dd: DUP1 000009de: MLOAD 000009df: PUSH1 0x20 000009e1: PUSH2 0x2995 000009e4: DUP4 000009e5: CODECOPY 000009e6: DUP2 000009e7: MLOAD 000009e8: SWAP2 000009e9: MSTORE 000009ea: SWAP2 000009eb: DUP2 000009ec: SWAP1 000009ed: SUB 000009ee: PUSH1 0x20 000009f0: ADD 000009f1: SWAP1 000009f2: LOG3 000009f3: PUSH1 0x40 000009f5: DUP1 000009f6: MLOAD 000009f7: DUP7 000009f8: DUP2 000009f9: MSTORE 000009fa: PUSH1 0x20 000009fc: DUP2 000009fd: ADD 000009fe: DUP7 000009ff: SWAP1 00000a00: MSTORE 00000a01: DUP2 00000a02: MLOAD 00000a03: PUSH1 0x01 00000a05: PUSH1 0x01 00000a07: PUSH1 0xa0 00000a09: SHL 00000a0a: SUB 00000a0b: DUP10 00000a0c: AND 00000a0d: SWAP3 00000a0e: PUSH32 0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f 00000a2f: SWAP3 00000a30: DUP3 00000a31: SWAP1 00000a32: SUB 00000a33: ADD 00000a34: SWAP1 00000a35: LOG2 00000a36: POP 00000a37: ISZERO 00000a38: SWAP1 00000a39: POP 00000a3a: JUMPDEST 00000a3b: SWAP4 00000a3c: SWAP3 00000a3d: POP 00000a3e: POP 00000a3f: POP 00000a40: JUMP 00000a41: JUMPDEST 00000a42: PUSH1 0x00 00000a44: DUP1 00000a45: PUSH2 0x0a4c 00000a48: PUSH2 0x1ab7 00000a4b: JUMP 00000a4c: JUMPDEST 00000a4d: SWAP1 00000a4e: POP 00000a4f: DUP1 00000a50: PUSH2 0x0a5d 00000a53: JUMPI 00000a54: PUSH1 0x00 00000a56: SWAP2 00000a57: POP 00000a58: POP 00000a59: PUSH2 0x0829 00000a5c: JUMP 00000a5d: JUMPDEST 00000a5e: PUSH1 0x39 00000a60: SLOAD 00000a61: PUSH1 0x3a 00000a63: SLOAD 00000a64: PUSH1 0x40 00000a66: DUP1 00000a67: MLOAD 00000a68: PUSH4 0xd15e0053 00000a6d: PUSH1 0xe0 00000a6f: SHL 00000a70: DUP2 00000a71: MSTORE 00000a72: PUSH1 0x01 00000a74: PUSH1 0x01 00000a76: PUSH1 0xa0 00000a78: SHL 00000a79: SUB 00000a7a: SWAP3 00000a7b: DUP4 00000a7c: AND 00000a7d: PUSH1 0x04 00000a7f: DUP3 00000a80: ADD 00000a81: MSTORE 00000a82: SWAP1 00000a83: MLOAD 00000a84: PUSH2 0x0ae9 00000a87: SWAP4 00000a88: PUSH2 0x0100 00000a8b: SWAP1 00000a8c: DIV 00000a8d: SWAP1 00000a8e: SWAP3 00000a8f: AND 00000a90: SWAP2 00000a91: PUSH4 0xd15e0053 00000a96: SWAP2 00000a97: PUSH1 0x24 00000a99: DUP1 00000a9a: DUP3 00000a9b: ADD 00000a9c: SWAP3 00000a9d: PUSH1 0x20 00000a9f: SWAP3 00000aa0: SWAP1 00000aa1: SWAP2 00000aa2: SWAP1 00000aa3: DUP3 00000aa4: SWAP1 00000aa5: SUB 00000aa6: ADD 00000aa7: DUP2 00000aa8: DUP7 00000aa9: DUP1 00000aaa: EXTCODESIZE 00000aab: ISZERO 00000aac: DUP1 00000aad: ISZERO 00000aae: PUSH2 0x0ab6 00000ab1: JUMPI 00000ab2: PUSH1 0x00 00000ab4: DUP1 00000ab5: REVERT 00000ab6: JUMPDEST 00000ab7: POP 00000ab8: GAS 00000ab9: STATICCALL 00000aba: ISZERO 00000abb: DUP1 00000abc: ISZERO 00000abd: PUSH2 0x0aca 00000ac0: JUMPI 00000ac1: RETURNDATASIZE 00000ac2: PUSH1 0x00 00000ac4: DUP1 00000ac5: RETURNDATACOPY 00000ac6: RETURNDATASIZE 00000ac7: PUSH1 0x00 00000ac9: REVERT 00000aca: JUMPDEST 00000acb: POP 00000acc: POP 00000acd: POP 00000ace: POP 00000acf: PUSH1 0x40 00000ad1: MLOAD 00000ad2: RETURNDATASIZE 00000ad3: PUSH1 0x20 00000ad5: DUP2 00000ad6: LT 00000ad7: ISZERO 00000ad8: PUSH2 0x0ae0 00000adb: JUMPI 00000adc: PUSH1 0x00 00000ade: DUP1 00000adf: REVERT 00000ae0: JUMPDEST 00000ae1: POP 00000ae2: MLOAD 00000ae3: DUP3 00000ae4: SWAP1 00000ae5: PUSH2 0x1d15 00000ae8: JUMP 00000ae9: JUMPDEST 00000aea: SWAP2 00000aeb: POP 00000aec: POP 00000aed: SWAP1 00000aee: JUMP 00000aef: JUMPDEST 00000af0: PUSH1 0x00 00000af2: PUSH2 0x0844 00000af5: DUP3 00000af6: PUSH2 0x1a9c 00000af9: JUMP 00000afa: JUMPDEST 00000afb: PUSH1 0x00 00000afd: PUSH2 0x0b07 00000b00: DUP5 00000b01: DUP5 00000b02: DUP5 00000b03: PUSH2 0x1dd3 00000b06: JUMP 00000b07: JUMPDEST 00000b08: PUSH2 0x0b77 00000b0b: DUP5 00000b0c: PUSH2 0x0b13 00000b0f: PUSH2 0x19ac 00000b12: JUMP 00000b13: JUMPDEST 00000b14: PUSH2 0x0b72 00000b17: DUP6 00000b18: PUSH1 0x40 00000b1a: MLOAD 00000b1b: DUP1 00000b1c: PUSH1 0x60 00000b1e: ADD 00000b1f: PUSH1 0x40 00000b21: MSTORE 00000b22: DUP1 00000b23: PUSH1 0x28 00000b25: DUP2 00000b26: MSTORE 00000b27: PUSH1 0x20 00000b29: ADD 00000b2a: PUSH2 0x2917 00000b2d: PUSH1 0x28 00000b2f: SWAP2 00000b30: CODECOPY 00000b31: PUSH1 0x01 00000b33: PUSH1 0x01 00000b35: PUSH1 0xa0 00000b37: SHL 00000b38: SUB 00000b39: DUP11 00000b3a: AND 00000b3b: PUSH1 0x00 00000b3d: SWAP1 00000b3e: DUP2 00000b3f: MSTORE 00000b40: PUSH1 0x35 00000b42: PUSH1 0x20 00000b44: MSTORE 00000b45: PUSH1 0x40 00000b47: DUP2 00000b48: KECCAK256 00000b49: SWAP1 00000b4a: PUSH2 0x0b51 00000b4d: PUSH2 0x19ac 00000b50: JUMP 00000b51: JUMPDEST 00000b52: PUSH1 0x01 00000b54: PUSH1 0x01 00000b56: PUSH1 0xa0 00000b58: SHL 00000b59: SUB 00000b5a: AND 00000b5b: DUP2 00000b5c: MSTORE 00000b5d: PUSH1 0x20 00000b5f: DUP2 00000b60: ADD 00000b61: SWAP2 00000b62: SWAP1 00000b63: SWAP2 00000b64: MSTORE 00000b65: PUSH1 0x40 00000b67: ADD 00000b68: PUSH1 0x00 00000b6a: KECCAK256 00000b6b: SLOAD 00000b6c: SWAP2 00000b6d: SWAP1 00000b6e: PUSH2 0x1de0 00000b71: JUMP 00000b72: JUMPDEST 00000b73: PUSH2 0x19b0 00000b76: JUMP 00000b77: JUMPDEST 00000b78: DUP3 00000b79: PUSH1 0x01 00000b7b: PUSH1 0x01 00000b7d: PUSH1 0xa0 00000b7f: SHL 00000b80: SUB 00000b81: AND 00000b82: DUP5 00000b83: PUSH1 0x01 00000b85: PUSH1 0x01 00000b87: PUSH1 0xa0 00000b89: SHL 00000b8a: SUB 00000b8b: AND 00000b8c: PUSH1 0x00 00000b8e: DUP1 00000b8f: MLOAD 00000b90: PUSH1 0x20 00000b92: PUSH2 0x2995 00000b95: DUP4 00000b96: CODECOPY 00000b97: DUP2 00000b98: MLOAD 00000b99: SWAP2 00000b9a: MSTORE 00000b9b: DUP5 00000b9c: PUSH1 0x40 00000b9e: MLOAD 00000b9f: DUP1 00000ba0: DUP3 00000ba1: DUP2 00000ba2: MSTORE 00000ba3: PUSH1 0x20 00000ba5: ADD 00000ba6: SWAP2 00000ba7: POP 00000ba8: POP 00000ba9: PUSH1 0x40 00000bab: MLOAD 00000bac: DUP1 00000bad: SWAP2 00000bae: SUB 00000baf: SWAP1 00000bb0: LOG3 00000bb1: POP 00000bb2: PUSH1 0x01 00000bb4: SWAP4 00000bb5: SWAP3 00000bb6: POP 00000bb7: POP 00000bb8: POP 00000bb9: JUMP 00000bba: JUMPDEST 00000bbb: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9 00000bdc: DUP2 00000bdd: JUMP 00000bde: JUMPDEST 00000bdf: PUSH1 0x39 00000be1: SLOAD 00000be2: PUSH1 0xff 00000be4: AND 00000be5: SWAP1 00000be6: JUMP 00000be7: JUMPDEST 00000be8: PUSH1 0x3c 00000bea: SLOAD 00000beb: DUP2 00000bec: JUMP 00000bed: JUMPDEST 00000bee: PUSH1 0x00 00000bf0: PUSH2 0x0840 00000bf3: PUSH2 0x0bfa 00000bf6: PUSH2 0x19ac 00000bf9: JUMP 00000bfa: JUMPDEST 00000bfb: DUP5 00000bfc: PUSH2 0x0b72 00000bff: DUP6 00000c00: PUSH1 0x35 00000c02: PUSH1 0x00 00000c04: PUSH2 0x0c0b 00000c07: PUSH2 0x19ac 00000c0a: JUMP 00000c0b: JUMPDEST 00000c0c: PUSH1 0x01 00000c0e: PUSH1 0x01 00000c10: PUSH1 0xa0 00000c12: SHL 00000c13: SUB 00000c14: SWAP1 00000c15: DUP2 00000c16: AND 00000c17: DUP3 00000c18: MSTORE 00000c19: PUSH1 0x20 00000c1b: DUP1 00000c1c: DUP4 00000c1d: ADD 00000c1e: SWAP4 00000c1f: SWAP1 00000c20: SWAP4 00000c21: MSTORE 00000c22: PUSH1 0x40 00000c24: SWAP2 00000c25: DUP3 00000c26: ADD 00000c27: PUSH1 0x00 00000c29: SWAP1 00000c2a: DUP2 00000c2b: KECCAK256 00000c2c: SWAP2 00000c2d: DUP13 00000c2e: AND 00000c2f: DUP2 00000c30: MSTORE 00000c31: SWAP3 00000c32: MSTORE 00000c33: SWAP1 00000c34: KECCAK256 00000c35: SLOAD 00000c36: SWAP1 00000c37: PUSH2 0x1e3a 00000c3a: JUMP 00000c3b: JUMPDEST 00000c3c: PUSH1 0x39 00000c3e: SLOAD 00000c3f: PUSH1 0x00 00000c41: SWAP1 00000c42: PUSH2 0x0100 00000c45: SWAP1 00000c46: DIV 00000c47: PUSH1 0x01 00000c49: PUSH1 0x01 00000c4b: PUSH1 0xa0 00000c4d: SHL 00000c4e: SUB 00000c4f: AND 00000c50: PUSH2 0x0c57 00000c53: PUSH2 0x19ac 00000c56: JUMP 00000c57: JUMPDEST 00000c58: PUSH1 0x01 00000c5a: PUSH1 0x01 00000c5c: PUSH1 0xa0 00000c5e: SHL 00000c5f: SUB 00000c60: AND 00000c61: EQ 00000c62: PUSH1 0x40 00000c64: MLOAD 00000c65: DUP1 00000c66: PUSH1 0x40 00000c68: ADD 00000c69: PUSH1 0x40 00000c6b: MSTORE 00000c6c: DUP1 00000c6d: PUSH1 0x02 00000c6f: DUP2 00000c70: MSTORE 00000c71: PUSH1 0x20 00000c73: ADD 00000c74: PUSH2 0x3239 00000c77: PUSH1 0xf0 00000c79: SHL 00000c7a: DUP2 00000c7b: MSTORE 00000c7c: POP 00000c7d: SWAP1 00000c7e: PUSH2 0x0cc8 00000c81: JUMPI 00000c82: PUSH1 0x40 00000c84: MLOAD 00000c85: PUSH3 0x461bcd 00000c89: PUSH1 0xe5 00000c8b: SHL 00000c8c: DUP2 00000c8d: MSTORE 00000c8e: PUSH1 0x20 00000c90: PUSH1 0x04 00000c92: DUP3 00000c93: ADD 00000c94: DUP2 00000c95: DUP2 00000c96: MSTORE 00000c97: DUP4 00000c98: MLOAD 00000c99: PUSH1 0x24 00000c9b: DUP5 00000c9c: ADD 00000c9d: MSTORE 00000c9e: DUP4 00000c9f: MLOAD 00000ca0: SWAP1 00000ca1: SWAP3 00000ca2: DUP4 00000ca3: SWAP3 00000ca4: PUSH1 0x44 00000ca6: SWAP1 00000ca7: SWAP2 00000ca8: ADD 00000ca9: SWAP2 00000caa: SWAP1 00000cab: DUP6 00000cac: ADD 00000cad: SWAP1 00000cae: DUP1 00000caf: DUP4 00000cb0: DUP4 00000cb1: PUSH1 0x00 00000cb3: DUP4 00000cb4: ISZERO 00000cb5: PUSH2 0x08fb 00000cb8: JUMPI 00000cb9: DUP2 00000cba: DUP2 00000cbb: ADD 00000cbc: MLOAD 00000cbd: DUP4 00000cbe: DUP3 00000cbf: ADD 00000cc0: MSTORE 00000cc1: PUSH1 0x20 00000cc3: ADD 00000cc4: PUSH2 0x08e3 00000cc7: JUMP 00000cc8: JUMPDEST 00000cc9: POP 00000cca: PUSH1 0x3a 00000ccc: SLOAD 00000ccd: PUSH2 0x0ce0 00000cd0: SWAP1 00000cd1: PUSH1 0x01 00000cd3: PUSH1 0x01 00000cd5: PUSH1 0xa0 00000cd7: SHL 00000cd8: SUB 00000cd9: AND 00000cda: DUP5 00000cdb: DUP5 00000cdc: PUSH2 0x1e94 00000cdf: JUMP 00000ce0: JUMPDEST 00000ce1: POP 00000ce2: SWAP2 00000ce3: SWAP1 00000ce4: POP 00000ce5: JUMP 00000ce6: JUMPDEST 00000ce7: PUSH1 0x39 00000ce9: SLOAD 00000cea: PUSH1 0x3a 00000cec: SLOAD 00000ced: PUSH1 0x40 00000cef: DUP1 00000cf0: MLOAD 00000cf1: PUSH4 0xd15e0053 00000cf6: PUSH1 0xe0 00000cf8: SHL 00000cf9: DUP2 00000cfa: MSTORE 00000cfb: PUSH1 0x01 00000cfd: PUSH1 0x01 00000cff: PUSH1 0xa0 00000d01: SHL 00000d02: SUB 00000d03: SWAP3 00000d04: DUP4 00000d05: AND 00000d06: PUSH1 0x04 00000d08: DUP3 00000d09: ADD 00000d0a: MSTORE 00000d0b: SWAP1 00000d0c: MLOAD 00000d0d: PUSH1 0x00 00000d0f: SWAP4 00000d10: PUSH2 0x0844 00000d13: SWAP4 00000d14: PUSH2 0x0100 00000d17: SWAP1 00000d18: SWAP2 00000d19: DIV 00000d1a: AND 00000d1b: SWAP2 00000d1c: PUSH4 0xd15e0053 00000d21: SWAP2 00000d22: PUSH1 0x24 00000d24: DUP1 00000d25: DUP4 00000d26: ADD 00000d27: SWAP3 00000d28: PUSH1 0x20 00000d2a: SWAP3 00000d2b: SWAP2 00000d2c: SWAP1 00000d2d: DUP3 00000d2e: SWAP1 00000d2f: SUB 00000d30: ADD 00000d31: DUP2 00000d32: DUP7 00000d33: DUP1 00000d34: EXTCODESIZE 00000d35: ISZERO 00000d36: DUP1 00000d37: ISZERO 00000d38: PUSH2 0x0d40 00000d3b: JUMPI 00000d3c: PUSH1 0x00 00000d3e: DUP1 00000d3f: REVERT 00000d40: JUMPDEST 00000d41: POP 00000d42: GAS 00000d43: STATICCALL 00000d44: ISZERO 00000d45: DUP1 00000d46: ISZERO 00000d47: PUSH2 0x0d54 00000d4a: JUMPI 00000d4b: RETURNDATASIZE 00000d4c: PUSH1 0x00 00000d4e: DUP1 00000d4f: RETURNDATACOPY 00000d50: RETURNDATASIZE 00000d51: PUSH1 0x00 00000d53: REVERT 00000d54: JUMPDEST 00000d55: POP 00000d56: POP 00000d57: POP 00000d58: POP 00000d59: PUSH1 0x40 00000d5b: MLOAD 00000d5c: RETURNDATASIZE 00000d5d: PUSH1 0x20 00000d5f: DUP2 00000d60: LT 00000d61: ISZERO 00000d62: PUSH2 0x0d6a 00000d65: JUMPI 00000d66: PUSH1 0x00 00000d68: DUP1 00000d69: REVERT 00000d6a: JUMPDEST 00000d6b: POP 00000d6c: MLOAD 00000d6d: PUSH2 0x0d75 00000d70: DUP5 00000d71: PUSH2 0x1a9c 00000d74: JUMP 00000d75: JUMPDEST 00000d76: SWAP1 00000d77: PUSH2 0x1d15 00000d7a: JUMP 00000d7b: JUMPDEST 00000d7c: PUSH1 0x39 00000d7e: SLOAD 00000d7f: PUSH2 0x0100 00000d82: SWAP1 00000d83: DIV 00000d84: PUSH1 0x01 00000d86: PUSH1 0x01 00000d88: PUSH1 0xa0 00000d8a: SHL 00000d8b: SUB 00000d8c: AND 00000d8d: SWAP1 00000d8e: JUMP 00000d8f: JUMPDEST 00000d90: PUSH1 0x00 00000d92: PUSH2 0x0d99 00000d95: PUSH2 0x1ee6 00000d98: JUMP 00000d99: JUMPDEST 00000d9a: SWAP1 00000d9b: POP 00000d9c: SWAP1 00000d9d: JUMP 00000d9e: JUMPDEST 00000d9f: PUSH1 0x40 00000da1: MLOAD 00000da2: DUP1 00000da3: PUSH1 0x40 00000da5: ADD 00000da6: PUSH1 0x40 00000da8: MSTORE 00000da9: DUP1 00000daa: PUSH1 0x01 00000dac: DUP2 00000dad: MSTORE 00000dae: PUSH1 0x20 00000db0: ADD 00000db1: PUSH1 0x31 00000db3: PUSH1 0xf8 00000db5: SHL 00000db6: DUP2 00000db7: MSTORE 00000db8: POP 00000db9: DUP2 00000dba: JUMP 00000dbb: JUMPDEST 00000dbc: PUSH1 0x39 00000dbe: SLOAD 00000dbf: PUSH2 0x0100 00000dc2: SWAP1 00000dc3: DIV 00000dc4: PUSH1 0x01 00000dc6: PUSH1 0x01 00000dc8: PUSH1 0xa0 00000dca: SHL 00000dcb: SUB 00000dcc: AND 00000dcd: PUSH2 0x0dd4 00000dd0: PUSH2 0x19ac 00000dd3: JUMP 00000dd4: JUMPDEST 00000dd5: PUSH1 0x01 00000dd7: PUSH1 0x01 00000dd9: PUSH1 0xa0 00000ddb: SHL 00000ddc: SUB 00000ddd: AND 00000dde: EQ 00000ddf: PUSH1 0x40 00000de1: MLOAD 00000de2: DUP1 00000de3: PUSH1 0x40 00000de5: ADD 00000de6: PUSH1 0x40 00000de8: MSTORE 00000de9: DUP1 00000dea: PUSH1 0x02 00000dec: DUP2 00000ded: MSTORE 00000dee: PUSH1 0x20 00000df0: ADD 00000df1: PUSH2 0x3239 00000df4: PUSH1 0xf0 00000df6: SHL 00000df7: DUP2 00000df8: MSTORE 00000df9: POP 00000dfa: SWAP1 00000dfb: PUSH2 0x0e45 00000dfe: JUMPI 00000dff: PUSH1 0x40 00000e01: MLOAD 00000e02: PUSH3 0x461bcd 00000e06: PUSH1 0xe5 00000e08: SHL 00000e09: DUP2 00000e0a: MSTORE 00000e0b: PUSH1 0x20 00000e0d: PUSH1 0x04 00000e0f: DUP3 00000e10: ADD 00000e11: DUP2 00000e12: DUP2 00000e13: MSTORE 00000e14: DUP4 00000e15: MLOAD 00000e16: PUSH1 0x24 00000e18: DUP5 00000e19: ADD 00000e1a: MSTORE 00000e1b: DUP4 00000e1c: MLOAD 00000e1d: SWAP1 00000e1e: SWAP3 00000e1f: DUP4 00000e20: SWAP3 00000e21: PUSH1 0x44 00000e23: SWAP1 00000e24: SWAP2 00000e25: ADD 00000e26: SWAP2 00000e27: SWAP1 00000e28: DUP6 00000e29: ADD 00000e2a: SWAP1 00000e2b: DUP1 00000e2c: DUP4 00000e2d: DUP4 00000e2e: PUSH1 0x00 00000e30: DUP4 00000e31: ISZERO 00000e32: PUSH2 0x08fb 00000e35: JUMPI 00000e36: DUP2 00000e37: DUP2 00000e38: ADD 00000e39: MLOAD 00000e3a: DUP4 00000e3b: DUP3 00000e3c: ADD 00000e3d: MSTORE 00000e3e: PUSH1 0x20 00000e40: ADD 00000e41: PUSH2 0x08e3 00000e44: JUMP 00000e45: JUMPDEST 00000e46: POP 00000e47: DUP2 00000e48: PUSH2 0x0e50 00000e4b: JUMPI 00000e4c: PUSH2 0x0ee3 00000e4f: JUMP 00000e50: JUMPDEST 00000e51: PUSH1 0x3d 00000e53: SLOAD 00000e54: PUSH1 0x01 00000e56: PUSH1 0x01 00000e58: PUSH1 0xa0 00000e5a: SHL 00000e5b: SUB 00000e5c: AND 00000e5d: PUSH2 0x0e6f 00000e60: DUP2 00000e61: PUSH2 0x0e6a 00000e64: DUP6 00000e65: DUP6 00000e66: PUSH2 0x1abd 00000e69: JUMP 00000e6a: JUMPDEST 00000e6b: PUSH2 0x1bc4 00000e6e: JUMP 00000e6f: JUMPDEST 00000e70: PUSH1 0x40 00000e72: DUP1 00000e73: MLOAD 00000e74: DUP5 00000e75: DUP2 00000e76: MSTORE 00000e77: SWAP1 00000e78: MLOAD 00000e79: PUSH1 0x01 00000e7b: PUSH1 0x01 00000e7d: PUSH1 0xa0 00000e7f: SHL 00000e80: SUB 00000e81: DUP4 00000e82: AND 00000e83: SWAP2 00000e84: PUSH1 0x00 00000e86: SWAP2 00000e87: PUSH1 0x00 00000e89: DUP1 00000e8a: MLOAD 00000e8b: PUSH1 0x20 00000e8d: PUSH2 0x2995 00000e90: DUP4 00000e91: CODECOPY 00000e92: DUP2 00000e93: MLOAD 00000e94: SWAP2 00000e95: MSTORE 00000e96: SWAP2 00000e97: DUP2 00000e98: SWAP1 00000e99: SUB 00000e9a: PUSH1 0x20 00000e9c: ADD 00000e9d: SWAP1 00000e9e: LOG3 00000e9f: PUSH1 0x40 00000ea1: DUP1 00000ea2: MLOAD 00000ea3: DUP5 00000ea4: DUP2 00000ea5: MSTORE 00000ea6: PUSH1 0x20 00000ea8: DUP2 00000ea9: ADD 00000eaa: DUP5 00000eab: SWAP1 00000eac: MSTORE 00000ead: DUP2 00000eae: MLOAD 00000eaf: PUSH1 0x01 00000eb1: PUSH1 0x01 00000eb3: PUSH1 0xa0 00000eb5: SHL 00000eb6: SUB 00000eb7: DUP5 00000eb8: AND 00000eb9: SWAP3 00000eba: PUSH32 0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f 00000edb: SWAP3 00000edc: DUP3 00000edd: SWAP1 00000ede: SUB 00000edf: ADD 00000ee0: SWAP1 00000ee1: LOG2 00000ee2: POP 00000ee3: JUMPDEST 00000ee4: POP 00000ee5: POP 00000ee6: JUMP 00000ee7: JUMPDEST 00000ee8: PUSH1 0x39 00000eea: SLOAD 00000eeb: PUSH2 0x0100 00000eee: SWAP1 00000eef: DIV 00000ef0: PUSH1 0x01 00000ef2: PUSH1 0x01 00000ef4: PUSH1 0xa0 00000ef6: SHL 00000ef7: SUB 00000ef8: AND 00000ef9: PUSH2 0x0f00 00000efc: PUSH2 0x19ac 00000eff: JUMP 00000f00: JUMPDEST 00000f01: PUSH1 0x01 00000f03: PUSH1 0x01 00000f05: PUSH1 0xa0 00000f07: SHL 00000f08: SUB 00000f09: AND 00000f0a: EQ 00000f0b: PUSH1 0x40 00000f0d: MLOAD 00000f0e: DUP1 00000f0f: PUSH1 0x40 00000f11: ADD 00000f12: PUSH1 0x40 00000f14: MSTORE 00000f15: DUP1 00000f16: PUSH1 0x02 00000f18: DUP2 00000f19: MSTORE 00000f1a: PUSH1 0x20 00000f1c: ADD 00000f1d: PUSH2 0x3239 00000f20: PUSH1 0xf0 00000f22: SHL 00000f23: DUP2 00000f24: MSTORE 00000f25: POP 00000f26: SWAP1 00000f27: PUSH2 0x0f71 00000f2a: JUMPI 00000f2b: PUSH1 0x40 00000f2d: MLOAD 00000f2e: PUSH3 0x461bcd 00000f32: PUSH1 0xe5 00000f34: SHL 00000f35: DUP2 00000f36: MSTORE 00000f37: PUSH1 0x20 00000f39: PUSH1 0x04 00000f3b: DUP3 00000f3c: ADD 00000f3d: DUP2 00000f3e: DUP2 00000f3f: MSTORE 00000f40: DUP4 00000f41: MLOAD 00000f42: PUSH1 0x24 00000f44: DUP5 00000f45: ADD 00000f46: MSTORE 00000f47: DUP4 00000f48: MLOAD 00000f49: SWAP1 00000f4a: SWAP3 00000f4b: DUP4 00000f4c: SWAP3 00000f4d: PUSH1 0x44 00000f4f: SWAP1 00000f50: SWAP2 00000f51: ADD 00000f52: SWAP2 00000f53: SWAP1 00000f54: DUP6 00000f55: ADD 00000f56: SWAP1 00000f57: DUP1 00000f58: DUP4 00000f59: DUP4 00000f5a: PUSH1 0x00 00000f5c: DUP4 00000f5d: ISZERO 00000f5e: PUSH2 0x08fb 00000f61: JUMPI 00000f62: DUP2 00000f63: DUP2 00000f64: ADD 00000f65: MLOAD 00000f66: DUP4 00000f67: DUP3 00000f68: ADD 00000f69: MSTORE 00000f6a: PUSH1 0x20 00000f6c: ADD 00000f6d: PUSH2 0x08e3 00000f70: JUMP 00000f71: JUMPDEST 00000f72: POP 00000f73: POP 00000f74: POP 00000f75: JUMP 00000f76: JUMPDEST 00000f77: PUSH1 0x38 00000f79: DUP1 00000f7a: SLOAD 00000f7b: PUSH1 0x40 00000f7d: DUP1 00000f7e: MLOAD 00000f7f: PUSH1 0x20 00000f81: PUSH1 0x1f 00000f83: PUSH1 0x02 00000f85: PUSH1 0x00 00000f87: NOT 00000f88: PUSH2 0x0100 00000f8b: PUSH1 0x01 00000f8d: DUP9 00000f8e: AND 00000f8f: ISZERO 00000f90: MUL 00000f91: ADD 00000f92: SWAP1 00000f93: SWAP6 00000f94: AND 00000f95: SWAP5 00000f96: SWAP1 00000f97: SWAP5 00000f98: DIV 00000f99: SWAP4 00000f9a: DUP5 00000f9b: ADD 00000f9c: DUP2 00000f9d: SWAP1 00000f9e: DIV 00000f9f: DUP2 00000fa0: MUL 00000fa1: DUP3 00000fa2: ADD 00000fa3: DUP2 00000fa4: ADD 00000fa5: SWAP1 00000fa6: SWAP3 00000fa7: MSTORE 00000fa8: DUP3 00000fa9: DUP2 00000faa: MSTORE 00000fab: PUSH1 0x60 00000fad: SWAP4 00000fae: SWAP1 00000faf: SWAP3 00000fb0: SWAP1 00000fb1: SWAP2 00000fb2: DUP4 00000fb3: ADD 00000fb4: DUP3 00000fb5: DUP3 00000fb6: DUP1 00000fb7: ISZERO 00000fb8: PUSH2 0x0821 00000fbb: JUMPI 00000fbc: DUP1 00000fbd: PUSH1 0x1f 00000fbf: LT 00000fc0: PUSH2 0x07f6 00000fc3: JUMPI 00000fc4: PUSH2 0x0100 00000fc7: DUP1 00000fc8: DUP4 00000fc9: SLOAD 00000fca: DIV 00000fcb: MUL 00000fcc: DUP4 00000fcd: MSTORE 00000fce: SWAP2 00000fcf: PUSH1 0x20 00000fd1: ADD 00000fd2: SWAP2 00000fd3: PUSH2 0x0821 00000fd6: JUMP 00000fd7: JUMPDEST 00000fd8: PUSH1 0x00 00000fda: PUSH2 0x0840 00000fdd: PUSH2 0x0fe4 00000fe0: PUSH2 0x19ac 00000fe3: JUMP 00000fe4: JUMPDEST 00000fe5: DUP5 00000fe6: PUSH2 0x0b72 00000fe9: DUP6 00000fea: PUSH1 0x40 00000fec: MLOAD 00000fed: DUP1 00000fee: PUSH1 0x60 00000ff0: ADD 00000ff1: PUSH1 0x40 00000ff3: MSTORE 00000ff4: DUP1 00000ff5: PUSH1 0x25 00000ff7: DUP2 00000ff8: MSTORE 00000ff9: PUSH1 0x20 00000ffb: ADD 00000ffc: PUSH2 0x2a49 00000fff: PUSH1 0x25 00001001: SWAP2 00001002: CODECOPY 00001003: PUSH1 0x35 00001005: PUSH1 0x00 00001007: PUSH2 0x100e 0000100a: PUSH2 0x19ac 0000100d: JUMP 0000100e: JUMPDEST 0000100f: PUSH1 0x01 00001011: PUSH1 0x01 00001013: PUSH1 0xa0 00001015: SHL 00001016: SUB 00001017: SWAP1 00001018: DUP2 00001019: AND 0000101a: DUP3 0000101b: MSTORE 0000101c: PUSH1 0x20 0000101e: DUP1 0000101f: DUP4 00001020: ADD 00001021: SWAP4 00001022: SWAP1 00001023: SWAP4 00001024: MSTORE 00001025: PUSH1 0x40 00001027: SWAP2 00001028: DUP3 00001029: ADD 0000102a: PUSH1 0x00 0000102c: SWAP1 0000102d: DUP2 0000102e: KECCAK256 0000102f: SWAP2 00001030: DUP14 00001031: AND 00001032: DUP2 00001033: MSTORE 00001034: SWAP3 00001035: MSTORE 00001036: SWAP1 00001037: KECCAK256 00001038: SLOAD 00001039: SWAP2 0000103a: SWAP1 0000103b: PUSH2 0x1de0 0000103e: JUMP 0000103f: JUMPDEST 00001040: PUSH1 0x00 00001042: PUSH2 0x1053 00001045: PUSH2 0x104c 00001048: PUSH2 0x19ac 0000104b: JUMP 0000104c: JUMPDEST 0000104d: DUP5 0000104e: DUP5 0000104f: PUSH2 0x1dd3 00001052: JUMP 00001053: JUMPDEST 00001054: DUP3 00001055: PUSH1 0x01 00001057: PUSH1 0x01 00001059: PUSH1 0xa0 0000105b: SHL 0000105c: SUB 0000105d: AND 0000105e: PUSH2 0x1065 00001061: PUSH2 0x19ac 00001064: JUMP 00001065: JUMPDEST 00001066: PUSH1 0x01 00001068: PUSH1 0x01 0000106a: PUSH1 0xa0 0000106c: SHL 0000106d: SUB 0000106e: AND 0000106f: PUSH1 0x00 00001071: DUP1 00001072: MLOAD 00001073: PUSH1 0x20 00001075: PUSH2 0x2995 00001078: DUP4 00001079: CODECOPY 0000107a: DUP2 0000107b: MLOAD 0000107c: SWAP2 0000107d: MSTORE 0000107e: DUP5 0000107f: PUSH1 0x40 00001081: MLOAD 00001082: DUP1 00001083: DUP3 00001084: DUP2 00001085: MSTORE 00001086: PUSH1 0x20 00001088: ADD 00001089: SWAP2 0000108a: POP 0000108b: POP 0000108c: PUSH1 0x40 0000108e: MLOAD 0000108f: DUP1 00001090: SWAP2 00001091: SUB 00001092: SWAP1 00001093: LOG3 00001094: POP 00001095: PUSH1 0x01 00001097: SWAP3 00001098: SWAP2 00001099: POP 0000109a: POP 0000109b: JUMP 0000109c: JUMPDEST 0000109d: PUSH1 0x3d 0000109f: SLOAD 000010a0: PUSH1 0x01 000010a2: PUSH1 0x01 000010a4: PUSH1 0xa0 000010a6: SHL 000010a7: SUB 000010a8: AND 000010a9: SWAP1 000010aa: JUMP 000010ab: JUMPDEST 000010ac: PUSH1 0x3a 000010ae: SLOAD 000010af: PUSH1 0x01 000010b1: PUSH1 0x01 000010b3: PUSH1 0xa0 000010b5: SHL 000010b6: SUB 000010b7: AND 000010b8: SWAP1 000010b9: JUMP 000010ba: JUMPDEST 000010bb: PUSH1 0x00 000010bd: PUSH2 0x0d99 000010c0: PUSH2 0x1ab7 000010c3: JUMP 000010c4: JUMPDEST 000010c5: PUSH1 0x3b 000010c7: PUSH1 0x20 000010c9: MSTORE 000010ca: PUSH1 0x00 000010cc: SWAP1 000010cd: DUP2 000010ce: MSTORE 000010cf: PUSH1 0x40 000010d1: SWAP1 000010d2: KECCAK256 000010d3: SLOAD 000010d4: DUP2 000010d5: JUMP 000010d6: JUMPDEST 000010d7: PUSH1 0x00 000010d9: PUSH2 0x10e0 000010dc: PUSH2 0x1fd5 000010df: JUMP 000010e0: JUMPDEST 000010e1: PUSH1 0x01 000010e3: SLOAD 000010e4: SWAP1 000010e5: SWAP2 000010e6: POP 000010e7: PUSH1 0xff 000010e9: AND 000010ea: DUP1 000010eb: PUSH2 0x10f7 000010ee: JUMPI 000010ef: POP 000010f0: PUSH2 0x10f7 000010f3: PUSH2 0x1fda 000010f6: JUMP 000010f7: JUMPDEST 000010f8: DUP1 000010f9: PUSH2 0x1103 000010fc: JUMPI 000010fd: POP 000010fe: PUSH1 0x00 00001100: SLOAD 00001101: DUP2 00001102: GT 00001103: JUMPDEST 00001104: PUSH2 0x113e 00001107: JUMPI 00001108: PUSH1 0x40 0000110a: MLOAD 0000110b: PUSH3 0x461bcd 0000110f: PUSH1 0xe5 00001111: SHL 00001112: DUP2 00001113: MSTORE 00001114: PUSH1 0x04 00001116: ADD 00001117: DUP1 00001118: DUP1 00001119: PUSH1 0x20 0000111b: ADD 0000111c: DUP3 0000111d: DUP2 0000111e: SUB 0000111f: DUP3 00001120: MSTORE 00001121: PUSH1 0x2e 00001123: DUP2 00001124: MSTORE 00001125: PUSH1 0x20 00001127: ADD 00001128: DUP1 00001129: PUSH2 0x293f 0000112c: PUSH1 0x2e 0000112e: SWAP2 0000112f: CODECOPY 00001130: PUSH1 0x40 00001132: ADD 00001133: SWAP2 00001134: POP 00001135: POP 00001136: PUSH1 0x40 00001138: MLOAD 00001139: DUP1 0000113a: SWAP2 0000113b: SUB 0000113c: SWAP1 0000113d: REVERT 0000113e: JUMPDEST 0000113f: PUSH1 0x01 00001141: SLOAD 00001142: PUSH1 0xff 00001144: AND 00001145: ISZERO 00001146: DUP1 00001147: ISZERO 00001148: PUSH2 0x115d 0000114b: JUMPI 0000114c: PUSH1 0x01 0000114e: DUP1 0000114f: SLOAD 00001150: PUSH1 0xff 00001152: NOT 00001153: AND 00001154: DUP2 00001155: OR 00001156: SWAP1 00001157: SSTORE 00001158: PUSH1 0x00 0000115a: DUP3 0000115b: SWAP1 0000115c: SSTORE 0000115d: JUMPDEST 0000115e: PUSH1 0x01 00001160: PUSH1 0x01 00001162: PUSH1 0xa0 00001164: SHL 00001165: SUB 00001166: DUP12 00001167: AND 00001168: PUSH2 0x11b8 0000116b: JUMPI 0000116c: PUSH1 0x40 0000116e: DUP1 0000116f: MLOAD 00001170: PUSH3 0x461bcd 00001174: PUSH1 0xe5 00001176: SHL 00001177: DUP2 00001178: MSTORE 00001179: PUSH1 0x20 0000117b: PUSH1 0x04 0000117d: DUP3 0000117e: ADD 0000117f: DUP2 00001180: SWAP1 00001181: MSTORE 00001182: PUSH1 0x24 00001184: DUP3 00001185: ADD 00001186: MSTORE 00001187: PUSH32 0x54726561737572792063616e206e6f74206265207a65726f2061646472657373 000011a8: PUSH1 0x44 000011aa: DUP3 000011ab: ADD 000011ac: MSTORE 000011ad: SWAP1 000011ae: MLOAD 000011af: SWAP1 000011b0: DUP2 000011b1: SWAP1 000011b2: SUB 000011b3: PUSH1 0x64 000011b5: ADD 000011b6: SWAP1 000011b7: REVERT 000011b8: JUMPDEST 000011b9: PUSH1 0x01 000011bb: PUSH1 0x01 000011bd: PUSH1 0xa0 000011bf: SHL 000011c0: SUB 000011c1: DUP11 000011c2: AND 000011c3: PUSH2 0x11fd 000011c6: JUMPI 000011c7: PUSH1 0x40 000011c9: MLOAD 000011ca: PUSH3 0x461bcd 000011ce: PUSH1 0xe5 000011d0: SHL 000011d1: DUP2 000011d2: MSTORE 000011d3: PUSH1 0x04 000011d5: ADD 000011d6: DUP1 000011d7: DUP1 000011d8: PUSH1 0x20 000011da: ADD 000011db: DUP3 000011dc: DUP2 000011dd: SUB 000011de: DUP3 000011df: MSTORE 000011e0: PUSH1 0x28 000011e2: DUP2 000011e3: MSTORE 000011e4: PUSH1 0x20 000011e6: ADD 000011e7: DUP1 000011e8: PUSH2 0x296d 000011eb: PUSH1 0x28 000011ed: SWAP2 000011ee: CODECOPY 000011ef: PUSH1 0x40 000011f1: ADD 000011f2: SWAP2 000011f3: POP 000011f4: POP 000011f5: PUSH1 0x40 000011f7: MLOAD 000011f8: DUP1 000011f9: SWAP2 000011fa: SUB 000011fb: SWAP1 000011fc: REVERT 000011fd: JUMPDEST 000011fe: PUSH1 0x00 00001200: CHAINID 00001201: SWAP1 00001202: POP 00001203: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f 00001224: DUP10 00001225: DUP10 00001226: PUSH1 0x40 00001228: MLOAD 00001229: DUP1 0000122a: DUP4 0000122b: DUP4 0000122c: DUP1 0000122d: DUP3 0000122e: DUP5 0000122f: CALLDATACOPY 00001230: DUP1 00001231: DUP4 00001232: ADD 00001233: SWAP3 00001234: POP 00001235: POP 00001236: POP 00001237: SWAP3 00001238: POP 00001239: POP 0000123a: POP 0000123b: PUSH1 0x40 0000123d: MLOAD 0000123e: DUP1 0000123f: SWAP2 00001240: SUB 00001241: SWAP1 00001242: KECCAK256 00001243: PUSH1 0x40 00001245: MLOAD 00001246: DUP1 00001247: PUSH1 0x40 00001249: ADD 0000124a: PUSH1 0x40 0000124c: MSTORE 0000124d: DUP1 0000124e: PUSH1 0x01 00001250: DUP2 00001251: MSTORE 00001252: PUSH1 0x20 00001254: ADD 00001255: PUSH1 0x31 00001257: PUSH1 0xf8 00001259: SHL 0000125a: DUP2 0000125b: MSTORE 0000125c: POP 0000125d: DUP1 0000125e: MLOAD 0000125f: SWAP1 00001260: PUSH1 0x20 00001262: ADD 00001263: KECCAK256 00001264: DUP4 00001265: ADDRESS 00001266: PUSH1 0x40 00001268: MLOAD 00001269: PUSH1 0x20 0000126b: ADD 0000126c: DUP1 0000126d: DUP7 0000126e: DUP2 0000126f: MSTORE 00001270: PUSH1 0x20 00001272: ADD 00001273: DUP6 00001274: DUP2 00001275: MSTORE 00001276: PUSH1 0x20 00001278: ADD 00001279: DUP5 0000127a: DUP2 0000127b: MSTORE 0000127c: PUSH1 0x20 0000127e: ADD 0000127f: DUP4 00001280: DUP2 00001281: MSTORE 00001282: PUSH1 0x20 00001284: ADD 00001285: DUP3 00001286: PUSH1 0x01 00001288: PUSH1 0x01 0000128a: PUSH1 0xa0 0000128c: SHL 0000128d: SUB 0000128e: AND 0000128f: DUP2 00001290: MSTORE 00001291: PUSH1 0x20 00001293: ADD 00001294: SWAP6 00001295: POP 00001296: POP 00001297: POP 00001298: POP 00001299: POP 0000129a: POP 0000129b: PUSH1 0x40 0000129d: MLOAD 0000129e: PUSH1 0x20 000012a0: DUP2 000012a1: DUP4 000012a2: SUB 000012a3: SUB 000012a4: DUP2 000012a5: MSTORE 000012a6: SWAP1 000012a7: PUSH1 0x40 000012a9: MSTORE 000012aa: DUP1 000012ab: MLOAD 000012ac: SWAP1 000012ad: PUSH1 0x20 000012af: ADD 000012b0: KECCAK256 000012b1: PUSH1 0x3c 000012b3: DUP2 000012b4: SWAP1 000012b5: SSTORE 000012b6: POP 000012b7: PUSH2 0x12f5 000012ba: DUP10 000012bb: DUP10 000012bc: DUP1 000012bd: DUP1 000012be: PUSH1 0x1f 000012c0: ADD 000012c1: PUSH1 0x20 000012c3: DUP1 000012c4: SWAP2 000012c5: DIV 000012c6: MUL 000012c7: PUSH1 0x20 000012c9: ADD 000012ca: PUSH1 0x40 000012cc: MLOAD 000012cd: SWAP1 000012ce: DUP2 000012cf: ADD 000012d0: PUSH1 0x40 000012d2: MSTORE 000012d3: DUP1 000012d4: SWAP4 000012d5: SWAP3 000012d6: SWAP2 000012d7: SWAP1 000012d8: DUP2 000012d9: DUP2 000012da: MSTORE 000012db: PUSH1 0x20 000012dd: ADD 000012de: DUP4 000012df: DUP4 000012e0: DUP1 000012e1: DUP3 000012e2: DUP5 000012e3: CALLDATACOPY 000012e4: PUSH1 0x00 000012e6: SWAP3 000012e7: ADD 000012e8: SWAP2 000012e9: SWAP1 000012ea: SWAP2 000012eb: MSTORE 000012ec: POP 000012ed: PUSH2 0x1fe0 000012f0: SWAP3 000012f1: POP 000012f2: POP 000012f3: POP 000012f4: JUMP 000012f5: JUMPDEST 000012f6: PUSH2 0x1334 000012f9: DUP8 000012fa: DUP8 000012fb: DUP1 000012fc: DUP1 000012fd: PUSH1 0x1f 000012ff: ADD 00001300: PUSH1 0x20 00001302: DUP1 00001303: SWAP2 00001304: DIV 00001305: MUL 00001306: PUSH1 0x20 00001308: ADD 00001309: PUSH1 0x40 0000130b: MLOAD 0000130c: SWAP1 0000130d: DUP2 0000130e: ADD 0000130f: PUSH1 0x40 00001311: MSTORE 00001312: DUP1 00001313: SWAP4 00001314: SWAP3 00001315: SWAP2 00001316: SWAP1 00001317: DUP2 00001318: DUP2 00001319: MSTORE 0000131a: PUSH1 0x20 0000131c: ADD 0000131d: DUP4 0000131e: DUP4 0000131f: DUP1 00001320: DUP3 00001321: DUP5 00001322: CALLDATACOPY 00001323: PUSH1 0x00 00001325: SWAP3 00001326: ADD 00001327: SWAP2 00001328: SWAP1 00001329: SWAP2 0000132a: MSTORE 0000132b: POP 0000132c: PUSH2 0x1ff3 0000132f: SWAP3 00001330: POP 00001331: POP 00001332: POP 00001333: JUMP 00001334: JUMPDEST 00001335: PUSH2 0x133d 00001338: DUP11 00001339: PUSH2 0x2006 0000133c: JUMP 0000133d: JUMPDEST 0000133e: DUP13 0000133f: PUSH1 0x39 00001341: PUSH1 0x01 00001343: PUSH2 0x0100 00001346: EXP 00001347: DUP2 00001348: SLOAD 00001349: DUP2 0000134a: PUSH1 0x01 0000134c: PUSH1 0x01 0000134e: PUSH1 0xa0 00001350: SHL 00001351: SUB 00001352: MUL 00001353: NOT 00001354: AND 00001355: SWAP1 00001356: DUP4 00001357: PUSH1 0x01 00001359: PUSH1 0x01 0000135b: PUSH1 0xa0 0000135d: SHL 0000135e: SUB 0000135f: AND 00001360: MUL 00001361: OR 00001362: SWAP1 00001363: SSTORE 00001364: POP 00001365: DUP12 00001366: PUSH1 0x3d 00001368: PUSH1 0x00 0000136a: PUSH2 0x0100 0000136d: EXP 0000136e: DUP2 0000136f: SLOAD 00001370: DUP2 00001371: PUSH1 0x01 00001373: PUSH1 0x01 00001375: PUSH1 0xa0 00001377: SHL 00001378: SUB 00001379: MUL 0000137a: NOT 0000137b: AND 0000137c: SWAP1 0000137d: DUP4 0000137e: PUSH1 0x01 00001380: PUSH1 0x01 00001382: PUSH1 0xa0 00001384: SHL 00001385: SUB 00001386: AND 00001387: MUL 00001388: OR 00001389: SWAP1 0000138a: SSTORE 0000138b: POP 0000138c: DUP11 0000138d: PUSH1 0x3a 0000138f: PUSH1 0x00 00001391: PUSH2 0x0100 00001394: EXP 00001395: DUP2 00001396: SLOAD 00001397: DUP2 00001398: PUSH1 0x01 0000139a: PUSH1 0x01 0000139c: PUSH1 0xa0 0000139e: SHL 0000139f: SUB 000013a0: MUL 000013a1: NOT 000013a2: AND 000013a3: SWAP1 000013a4: DUP4 000013a5: PUSH1 0x01 000013a7: PUSH1 0x01 000013a9: PUSH1 0xa0 000013ab: SHL 000013ac: SUB 000013ad: AND 000013ae: MUL 000013af: OR 000013b0: SWAP1 000013b1: SSTORE 000013b2: POP 000013b3: DUP13 000013b4: PUSH1 0x01 000013b6: PUSH1 0x01 000013b8: PUSH1 0xa0 000013ba: SHL 000013bb: SUB 000013bc: AND 000013bd: DUP12 000013be: PUSH1 0x01 000013c0: PUSH1 0x01 000013c2: PUSH1 0xa0 000013c4: SHL 000013c5: SUB 000013c6: AND 000013c7: PUSH32 0x40251fbfb6656cfa65a00d7879029fec1fad21d28fdcff2f4f68f52795b74f2c 000013e8: DUP15 000013e9: DUP14 000013ea: DUP14 000013eb: DUP14 000013ec: DUP14 000013ed: DUP14 000013ee: DUP14 000013ef: DUP14 000013f0: PUSH1 0x40 000013f2: MLOAD 000013f3: DUP1 000013f4: DUP10 000013f5: PUSH1 0x01 000013f7: PUSH1 0x01 000013f9: PUSH1 0xa0 000013fb: SHL 000013fc: SUB 000013fd: AND 000013fe: DUP2 000013ff: MSTORE 00001400: PUSH1 0x20 00001402: ADD 00001403: DUP9 00001404: PUSH1 0xff 00001406: AND 00001407: DUP2 00001408: MSTORE 00001409: PUSH1 0x20 0000140b: ADD 0000140c: DUP1 0000140d: PUSH1 0x20 0000140f: ADD 00001410: DUP1 00001411: PUSH1 0x20 00001413: ADD 00001414: DUP1 00001415: PUSH1 0x20 00001417: ADD 00001418: DUP5 00001419: DUP2 0000141a: SUB 0000141b: DUP5 0000141c: MSTORE 0000141d: DUP11 0000141e: DUP11 0000141f: DUP3 00001420: DUP2 00001421: DUP2 00001422: MSTORE 00001423: PUSH1 0x20 00001425: ADD 00001426: SWAP3 00001427: POP 00001428: DUP1 00001429: DUP3 0000142a: DUP5 0000142b: CALLDATACOPY 0000142c: PUSH1 0x00 0000142e: DUP4 0000142f: DUP3 00001430: ADD 00001431: MSTORE 00001432: PUSH1 0x1f 00001434: ADD 00001435: PUSH1 0x1f 00001437: NOT 00001438: AND 00001439: SWAP1 0000143a: SWAP2 0000143b: ADD 0000143c: DUP6 0000143d: DUP2 0000143e: SUB 0000143f: DUP5 00001440: MSTORE 00001441: DUP9 00001442: DUP2 00001443: MSTORE 00001444: PUSH1 0x20 00001446: ADD 00001447: SWAP1 00001448: POP 00001449: DUP9 0000144a: DUP9 0000144b: DUP1 0000144c: DUP3 0000144d: DUP5 0000144e: CALLDATACOPY 0000144f: PUSH1 0x00 00001451: DUP4 00001452: DUP3 00001453: ADD 00001454: MSTORE 00001455: PUSH1 0x1f 00001457: ADD 00001458: PUSH1 0x1f 0000145a: NOT 0000145b: AND 0000145c: SWAP1 0000145d: SWAP2 0000145e: ADD 0000145f: DUP6 00001460: DUP2 00001461: SUB 00001462: DUP4 00001463: MSTORE 00001464: DUP7 00001465: DUP2 00001466: MSTORE 00001467: PUSH1 0x20 00001469: ADD 0000146a: SWAP1 0000146b: POP 0000146c: DUP7 0000146d: DUP7 0000146e: DUP1 0000146f: DUP3 00001470: DUP5 00001471: CALLDATACOPY 00001472: PUSH1 0x00 00001474: DUP4 00001475: DUP3 00001476: ADD 00001477: MSTORE 00001478: PUSH1 0x40 0000147a: MLOAD 0000147b: PUSH1 0x1f 0000147d: SWAP1 0000147e: SWAP2 0000147f: ADD 00001480: PUSH1 0x1f 00001482: NOT 00001483: AND 00001484: SWAP1 00001485: SWAP3 00001486: ADD 00001487: DUP3 00001488: SWAP1 00001489: SUB 0000148a: SWAP14 0000148b: POP 0000148c: SWAP1 0000148d: SWAP12 0000148e: POP 0000148f: POP 00001490: POP 00001491: POP 00001492: POP 00001493: POP 00001494: POP 00001495: POP 00001496: POP 00001497: POP 00001498: POP 00001499: POP 0000149a: LOG3 0000149b: POP 0000149c: DUP1 0000149d: ISZERO 0000149e: PUSH2 0x14ac 000014a1: JUMPI 000014a2: PUSH1 0x01 000014a4: DUP1 000014a5: SLOAD 000014a6: PUSH1 0xff 000014a8: NOT 000014a9: AND 000014aa: SWAP1 000014ab: SSTORE 000014ac: JUMPDEST 000014ad: POP 000014ae: POP 000014af: POP 000014b0: POP 000014b1: POP 000014b2: POP 000014b3: POP 000014b4: POP 000014b5: POP 000014b6: POP 000014b7: POP 000014b8: POP 000014b9: JUMP 000014ba: JUMPDEST 000014bb: PUSH1 0x01 000014bd: PUSH1 0x01 000014bf: PUSH1 0xa0 000014c1: SHL 000014c2: SUB 000014c3: DUP8 000014c4: AND 000014c5: PUSH2 0x1505 000014c8: JUMPI 000014c9: PUSH1 0x40 000014cb: DUP1 000014cc: MLOAD 000014cd: PUSH3 0x461bcd 000014d1: PUSH1 0xe5 000014d3: SHL 000014d4: DUP2 000014d5: MSTORE 000014d6: PUSH1 0x20 000014d8: PUSH1 0x04 000014da: DUP3 000014db: ADD 000014dc: MSTORE 000014dd: PUSH1 0x0d 000014df: PUSH1 0x24 000014e1: DUP3 000014e2: ADD 000014e3: MSTORE 000014e4: PUSH13 0x24a72b20a624a22fa7aba722a9 000014f2: PUSH1 0x99 000014f4: SHL 000014f5: PUSH1 0x44 000014f7: DUP3 000014f8: ADD 000014f9: MSTORE 000014fa: SWAP1 000014fb: MLOAD 000014fc: SWAP1 000014fd: DUP2 000014fe: SWAP1 000014ff: SUB 00001500: PUSH1 0x64 00001502: ADD 00001503: SWAP1 00001504: REVERT 00001505: JUMPDEST 00001506: DUP4 00001507: TIMESTAMP 00001508: GT 00001509: ISZERO 0000150a: PUSH2 0x154f 0000150d: JUMPI 0000150e: PUSH1 0x40 00001510: DUP1 00001511: MLOAD 00001512: PUSH3 0x461bcd 00001516: PUSH1 0xe5 00001518: SHL 00001519: DUP2 0000151a: MSTORE 0000151b: PUSH1 0x20 0000151d: PUSH1 0x04 0000151f: DUP3 00001520: ADD 00001521: MSTORE 00001522: PUSH1 0x12 00001524: PUSH1 0x24 00001526: DUP3 00001527: ADD 00001528: MSTORE 00001529: PUSH18 0x24a72b20a624a22fa2ac2824a920aa24a7a7 0000153c: PUSH1 0x71 0000153e: SHL 0000153f: PUSH1 0x44 00001541: DUP3 00001542: ADD 00001543: MSTORE 00001544: SWAP1 00001545: MLOAD 00001546: SWAP1 00001547: DUP2 00001548: SWAP1 00001549: SUB 0000154a: PUSH1 0x64 0000154c: ADD 0000154d: SWAP1 0000154e: REVERT 0000154f: JUMPDEST 00001550: PUSH1 0x01 00001552: PUSH1 0x01 00001554: PUSH1 0xa0 00001556: SHL 00001557: SUB 00001558: DUP1 00001559: DUP9 0000155a: AND 0000155b: PUSH1 0x00 0000155d: DUP2 0000155e: DUP2 0000155f: MSTORE 00001560: PUSH1 0x3b 00001562: PUSH1 0x20 00001564: SWAP1 00001565: DUP2 00001566: MSTORE 00001567: PUSH1 0x40 00001569: DUP1 0000156a: DUP4 0000156b: KECCAK256 0000156c: SLOAD 0000156d: PUSH1 0x3c 0000156f: SLOAD 00001570: DUP3 00001571: MLOAD 00001572: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9 00001593: DUP2 00001594: DUP7 00001595: ADD 00001596: MSTORE 00001597: DUP1 00001598: DUP5 00001599: ADD 0000159a: SWAP7 0000159b: SWAP1 0000159c: SWAP7 0000159d: MSTORE 0000159e: SWAP6 0000159f: DUP13 000015a0: AND 000015a1: PUSH1 0x60 000015a3: DUP7 000015a4: ADD 000015a5: MSTORE 000015a6: PUSH1 0x80 000015a8: DUP6 000015a9: ADD 000015aa: DUP12 000015ab: SWAP1 000015ac: MSTORE 000015ad: PUSH1 0xa0 000015af: DUP6 000015b0: ADD 000015b1: DUP2 000015b2: SWAP1 000015b3: MSTORE 000015b4: PUSH1 0xc0 000015b6: DUP1 000015b7: DUP7 000015b8: ADD 000015b9: DUP12 000015ba: SWAP1 000015bb: MSTORE 000015bc: DUP3 000015bd: MLOAD 000015be: DUP1 000015bf: DUP8 000015c0: SUB 000015c1: SWAP1 000015c2: SWAP2 000015c3: ADD 000015c4: DUP2 000015c5: MSTORE 000015c6: PUSH1 0xe0 000015c8: DUP7 000015c9: ADD 000015ca: DUP4 000015cb: MSTORE 000015cc: DUP1 000015cd: MLOAD 000015ce: SWAP1 000015cf: DUP5 000015d0: ADD 000015d1: KECCAK256 000015d2: PUSH2 0x1901 000015d5: PUSH1 0xf0 000015d7: SHL 000015d8: PUSH2 0x0100 000015db: DUP8 000015dc: ADD 000015dd: MSTORE 000015de: PUSH2 0x0102 000015e1: DUP7 000015e2: ADD 000015e3: SWAP7 000015e4: SWAP1 000015e5: SWAP7 000015e6: MSTORE 000015e7: PUSH2 0x0122 000015ea: DUP1 000015eb: DUP7 000015ec: ADD 000015ed: SWAP7 000015ee: SWAP1 000015ef: SWAP7 000015f0: MSTORE 000015f1: DUP2 000015f2: MLOAD 000015f3: DUP1 000015f4: DUP7 000015f5: SUB 000015f6: SWAP1 000015f7: SWAP7 000015f8: ADD 000015f9: DUP7 000015fa: MSTORE 000015fb: PUSH2 0x0142 000015fe: DUP6 000015ff: ADD 00001600: DUP1 00001601: DUP4 00001602: MSTORE 00001603: DUP7 00001604: MLOAD 00001605: SWAP7 00001606: DUP5 00001607: ADD 00001608: SWAP7 00001609: SWAP1 0000160a: SWAP7 0000160b: KECCAK256 0000160c: SWAP4 0000160d: SWAP1 0000160e: SWAP6 0000160f: MSTORE 00001610: PUSH2 0x0162 00001613: DUP5 00001614: ADD 00001615: DUP1 00001616: DUP3 00001617: MSTORE 00001618: DUP4 00001619: SWAP1 0000161a: MSTORE 0000161b: PUSH1 0xff 0000161d: DUP9 0000161e: AND 0000161f: PUSH2 0x0182 00001622: DUP6 00001623: ADD 00001624: MSTORE 00001625: PUSH2 0x01a2 00001628: DUP5 00001629: ADD 0000162a: DUP8 0000162b: SWAP1 0000162c: MSTORE 0000162d: PUSH2 0x01c2 00001630: DUP5 00001631: ADD 00001632: DUP7 00001633: SWAP1 00001634: MSTORE 00001635: MLOAD 00001636: SWAP2 00001637: SWAP3 00001638: PUSH1 0x01 0000163a: SWAP3 0000163b: PUSH2 0x01e2 0000163e: DUP1 0000163f: DUP4 00001640: ADD 00001641: SWAP4 00001642: SWAP3 00001643: PUSH1 0x1f 00001645: NOT 00001646: DUP4 00001647: ADD 00001648: SWAP3 00001649: SWAP1 0000164a: DUP2 0000164b: SWAP1 0000164c: SUB 0000164d: SWAP1 0000164e: SWAP2 0000164f: ADD 00001650: SWAP1 00001651: DUP6 00001652: GAS 00001653: STATICCALL 00001654: ISZERO 00001655: DUP1 00001656: ISZERO 00001657: PUSH2 0x1664 0000165a: JUMPI 0000165b: RETURNDATASIZE 0000165c: PUSH1 0x00 0000165e: DUP1 0000165f: RETURNDATACOPY 00001660: RETURNDATASIZE 00001661: PUSH1 0x00 00001663: REVERT 00001664: JUMPDEST 00001665: POP 00001666: POP 00001667: POP 00001668: PUSH1 0x20 0000166a: PUSH1 0x40 0000166c: MLOAD 0000166d: SUB 0000166e: MLOAD 0000166f: PUSH1 0x01 00001671: PUSH1 0x01 00001673: PUSH1 0xa0 00001675: SHL 00001676: SUB 00001677: AND 00001678: DUP10 00001679: PUSH1 0x01 0000167b: PUSH1 0x01 0000167d: PUSH1 0xa0 0000167f: SHL 00001680: SUB 00001681: AND 00001682: EQ 00001683: PUSH2 0x16c7 00001686: JUMPI 00001687: PUSH1 0x40 00001689: DUP1 0000168a: MLOAD 0000168b: PUSH3 0x461bcd 0000168f: PUSH1 0xe5 00001691: SHL 00001692: DUP2 00001693: MSTORE 00001694: PUSH1 0x20 00001696: PUSH1 0x04 00001698: DUP3 00001699: ADD 0000169a: MSTORE 0000169b: PUSH1 0x11 0000169d: PUSH1 0x24 0000169f: DUP3 000016a0: ADD 000016a1: MSTORE 000016a2: PUSH17 0x494e56414c49445f5349474e4154555245 000016b4: PUSH1 0x78 000016b6: SHL 000016b7: PUSH1 0x44 000016b9: DUP3 000016ba: ADD 000016bb: MSTORE 000016bc: SWAP1 000016bd: MLOAD 000016be: SWAP1 000016bf: DUP2 000016c0: SWAP1 000016c1: SUB 000016c2: PUSH1 0x64 000016c4: ADD 000016c5: SWAP1 000016c6: REVERT 000016c7: JUMPDEST 000016c8: PUSH2 0x16d2 000016cb: DUP3 000016cc: PUSH1 0x01 000016ce: PUSH2 0x1e3a 000016d1: JUMP 000016d2: JUMPDEST 000016d3: PUSH1 0x01 000016d5: PUSH1 0x01 000016d7: PUSH1 0xa0 000016d9: SHL 000016da: SUB 000016db: DUP11 000016dc: AND 000016dd: PUSH1 0x00 000016df: SWAP1 000016e0: DUP2 000016e1: MSTORE 000016e2: PUSH1 0x3b 000016e4: PUSH1 0x20 000016e6: MSTORE 000016e7: PUSH1 0x40 000016e9: SWAP1 000016ea: KECCAK256 000016eb: SSTORE 000016ec: PUSH2 0x16f6 000016ef: DUP10 000016f0: DUP10 000016f1: DUP10 000016f2: PUSH2 0x19b0 000016f5: JUMP 000016f6: JUMPDEST 000016f7: POP 000016f8: POP 000016f9: POP 000016fa: POP 000016fb: POP 000016fc: POP 000016fd: POP 000016fe: POP 000016ff: POP 00001700: JUMP 00001701: JUMPDEST 00001702: PUSH1 0x39 00001704: SLOAD 00001705: PUSH2 0x0100 00001708: SWAP1 00001709: DIV 0000170a: PUSH1 0x01 0000170c: PUSH1 0x01 0000170e: PUSH1 0xa0 00001710: SHL 00001711: SUB 00001712: AND 00001713: PUSH2 0x171a 00001716: PUSH2 0x19ac 00001719: JUMP 0000171a: JUMPDEST 0000171b: PUSH1 0x01 0000171d: PUSH1 0x01 0000171f: PUSH1 0xa0 00001721: SHL 00001722: SUB 00001723: AND 00001724: EQ 00001725: PUSH1 0x40 00001727: MLOAD 00001728: DUP1 00001729: PUSH1 0x40 0000172b: ADD 0000172c: PUSH1 0x40 0000172e: MSTORE 0000172f: DUP1 00001730: PUSH1 0x02 00001732: DUP2 00001733: MSTORE 00001734: PUSH1 0x20 00001736: ADD 00001737: PUSH2 0x3239 0000173a: PUSH1 0xf0 0000173c: SHL 0000173d: DUP2 0000173e: MSTORE 0000173f: POP 00001740: SWAP1 00001741: PUSH2 0x178b 00001744: JUMPI 00001745: PUSH1 0x40 00001747: MLOAD 00001748: PUSH3 0x461bcd 0000174c: PUSH1 0xe5 0000174e: SHL 0000174f: DUP2 00001750: MSTORE 00001751: PUSH1 0x20 00001753: PUSH1 0x04 00001755: DUP3 00001756: ADD 00001757: DUP2 00001758: DUP2 00001759: MSTORE 0000175a: DUP4 0000175b: MLOAD 0000175c: PUSH1 0x24 0000175e: DUP5 0000175f: ADD 00001760: MSTORE 00001761: DUP4 00001762: MLOAD 00001763: SWAP1 00001764: SWAP3 00001765: DUP4 00001766: SWAP3 00001767: PUSH1 0x44 00001769: SWAP1 0000176a: SWAP2 0000176b: ADD 0000176c: SWAP2 0000176d: SWAP1 0000176e: DUP6 0000176f: ADD 00001770: SWAP1 00001771: DUP1 00001772: DUP4 00001773: DUP4 00001774: PUSH1 0x00 00001776: DUP4 00001777: ISZERO 00001778: PUSH2 0x08fb 0000177b: JUMPI 0000177c: DUP2 0000177d: DUP2 0000177e: ADD 0000177f: MLOAD 00001780: DUP4 00001781: DUP3 00001782: ADD 00001783: MSTORE 00001784: PUSH1 0x20 00001786: ADD 00001787: PUSH2 0x08e3 0000178a: JUMP 0000178b: JUMPDEST 0000178c: POP 0000178d: PUSH1 0x00 0000178f: PUSH2 0x1798 00001792: DUP4 00001793: DUP4 00001794: PUSH2 0x1abd 00001797: JUMP 00001798: JUMPDEST 00001799: PUSH1 0x40 0000179b: DUP1 0000179c: MLOAD 0000179d: DUP1 0000179e: DUP3 0000179f: ADD 000017a0: SWAP1 000017a1: SWAP2 000017a2: MSTORE 000017a3: PUSH1 0x02 000017a5: DUP2 000017a6: MSTORE 000017a7: PUSH2 0x06a7 000017aa: PUSH1 0xf3 000017ac: SHL 000017ad: PUSH1 0x20 000017af: DUP3 000017b0: ADD 000017b1: MSTORE 000017b2: SWAP1 000017b3: SWAP2 000017b4: POP 000017b5: DUP2 000017b6: PUSH2 0x1800 000017b9: JUMPI 000017ba: PUSH1 0x40 000017bc: MLOAD 000017bd: PUSH3 0x461bcd 000017c1: PUSH1 0xe5 000017c3: SHL 000017c4: DUP2 000017c5: MSTORE 000017c6: PUSH1 0x20 000017c8: PUSH1 0x04 000017ca: DUP3 000017cb: ADD 000017cc: DUP2 000017cd: DUP2 000017ce: MSTORE 000017cf: DUP4 000017d0: MLOAD 000017d1: PUSH1 0x24 000017d3: DUP5 000017d4: ADD 000017d5: MSTORE 000017d6: DUP4 000017d7: MLOAD 000017d8: SWAP1 000017d9: SWAP3 000017da: DUP4 000017db: SWAP3 000017dc: PUSH1 0x44 000017de: SWAP1 000017df: SWAP2 000017e0: ADD 000017e1: SWAP2 000017e2: SWAP1 000017e3: DUP6 000017e4: ADD 000017e5: SWAP1 000017e6: DUP1 000017e7: DUP4 000017e8: DUP4 000017e9: PUSH1 0x00 000017eb: DUP4 000017ec: ISZERO 000017ed: PUSH2 0x08fb 000017f0: JUMPI 000017f1: DUP2 000017f2: DUP2 000017f3: ADD 000017f4: MLOAD 000017f5: DUP4 000017f6: DUP3 000017f7: ADD 000017f8: MSTORE 000017f9: PUSH1 0x20 000017fb: ADD 000017fc: PUSH2 0x08e3 000017ff: JUMP 00001800: JUMPDEST 00001801: POP 00001802: PUSH2 0x180b 00001805: DUP6 00001806: DUP3 00001807: PUSH2 0x201c 0000180a: JUMP 0000180b: JUMPDEST 0000180c: PUSH1 0x3a 0000180e: SLOAD 0000180f: PUSH2 0x1822 00001812: SWAP1 00001813: PUSH1 0x01 00001815: PUSH1 0x01 00001817: PUSH1 0xa0 00001819: SHL 0000181a: SUB 0000181b: AND 0000181c: DUP6 0000181d: DUP6 0000181e: PUSH2 0x1e94 00001821: JUMP 00001822: JUMPDEST 00001823: PUSH1 0x40 00001825: DUP1 00001826: MLOAD 00001827: DUP5 00001828: DUP2 00001829: MSTORE 0000182a: SWAP1 0000182b: MLOAD 0000182c: PUSH1 0x00 0000182e: SWAP2 0000182f: PUSH1 0x01 00001831: PUSH1 0x01 00001833: PUSH1 0xa0 00001835: SHL 00001836: SUB 00001837: DUP9 00001838: AND 00001839: SWAP2 0000183a: PUSH1 0x00 0000183c: DUP1 0000183d: MLOAD 0000183e: PUSH1 0x20 00001840: PUSH2 0x2995 00001843: DUP4 00001844: CODECOPY 00001845: DUP2 00001846: MLOAD 00001847: SWAP2 00001848: MSTORE 00001849: SWAP2 0000184a: DUP2 0000184b: SWAP1 0000184c: SUB 0000184d: PUSH1 0x20 0000184f: ADD 00001850: SWAP1 00001851: LOG3 00001852: DUP4 00001853: PUSH1 0x01 00001855: PUSH1 0x01 00001857: PUSH1 0xa0 00001859: SHL 0000185a: SUB 0000185b: AND 0000185c: DUP6 0000185d: PUSH1 0x01 0000185f: PUSH1 0x01 00001861: PUSH1 0xa0 00001863: SHL 00001864: SUB 00001865: AND 00001866: PUSH32 0x5d624aa9c148153ab3446c1b154f660ee7701e549fe9b62dab7171b1c80e6fa2 00001887: DUP6 00001888: DUP6 00001889: PUSH1 0x40 0000188b: MLOAD 0000188c: DUP1 0000188d: DUP4 0000188e: DUP2 0000188f: MSTORE 00001890: PUSH1 0x20 00001892: ADD 00001893: DUP3 00001894: DUP2 00001895: MSTORE 00001896: PUSH1 0x20 00001898: ADD 00001899: SWAP3 0000189a: POP 0000189b: POP 0000189c: POP 0000189d: PUSH1 0x40 0000189f: MLOAD 000018a0: DUP1 000018a1: SWAP2 000018a2: SUB 000018a3: SWAP1 000018a4: LOG3 000018a5: POP 000018a6: POP 000018a7: POP 000018a8: POP 000018a9: POP 000018aa: JUMP 000018ab: JUMPDEST 000018ac: PUSH1 0x01 000018ae: PUSH1 0x01 000018b0: PUSH1 0xa0 000018b2: SHL 000018b3: SUB 000018b4: SWAP2 000018b5: DUP3 000018b6: AND 000018b7: PUSH1 0x00 000018b9: SWAP1 000018ba: DUP2 000018bb: MSTORE 000018bc: PUSH1 0x35 000018be: PUSH1 0x20 000018c0: SWAP1 000018c1: DUP2 000018c2: MSTORE 000018c3: PUSH1 0x40 000018c5: DUP1 000018c6: DUP4 000018c7: KECCAK256 000018c8: SWAP4 000018c9: SWAP1 000018ca: SWAP5 000018cb: AND 000018cc: DUP3 000018cd: MSTORE 000018ce: SWAP2 000018cf: SWAP1 000018d0: SWAP2 000018d1: MSTORE 000018d2: KECCAK256 000018d3: SLOAD 000018d4: SWAP1 000018d5: JUMP 000018d6: JUMPDEST 000018d7: PUSH1 0x39 000018d9: SLOAD 000018da: PUSH2 0x0100 000018dd: SWAP1 000018de: DIV 000018df: PUSH1 0x01 000018e1: PUSH1 0x01 000018e3: PUSH1 0xa0 000018e5: SHL 000018e6: SUB 000018e7: AND 000018e8: PUSH2 0x18ef 000018eb: PUSH2 0x19ac 000018ee: JUMP 000018ef: JUMPDEST 000018f0: PUSH1 0x01 000018f2: PUSH1 0x01 000018f4: PUSH1 0xa0 000018f6: SHL 000018f7: SUB 000018f8: AND 000018f9: EQ 000018fa: PUSH1 0x40 000018fc: MLOAD 000018fd: DUP1 000018fe: PUSH1 0x40 00001900: ADD 00001901: PUSH1 0x40 00001903: MSTORE 00001904: DUP1 00001905: PUSH1 0x02 00001907: DUP2 00001908: MSTORE 00001909: PUSH1 0x20 0000190b: ADD 0000190c: PUSH2 0x3239 0000190f: PUSH1 0xf0 00001911: SHL 00001912: DUP2 00001913: MSTORE 00001914: POP 00001915: SWAP1 00001916: PUSH2 0x1960 00001919: JUMPI 0000191a: PUSH1 0x40 0000191c: MLOAD 0000191d: PUSH3 0x461bcd 00001921: PUSH1 0xe5 00001923: SHL 00001924: DUP2 00001925: MSTORE 00001926: PUSH1 0x20 00001928: PUSH1 0x04 0000192a: DUP3 0000192b: ADD 0000192c: DUP2 0000192d: DUP2 0000192e: MSTORE 0000192f: DUP4 00001930: MLOAD 00001931: PUSH1 0x24 00001933: DUP5 00001934: ADD 00001935: MSTORE 00001936: DUP4 00001937: MLOAD 00001938: SWAP1 00001939: SWAP3 0000193a: DUP4 0000193b: SWAP3 0000193c: PUSH1 0x44 0000193e: SWAP1 0000193f: SWAP2 00001940: ADD 00001941: SWAP2 00001942: SWAP1 00001943: DUP6 00001944: ADD 00001945: SWAP1 00001946: DUP1 00001947: DUP4 00001948: DUP4 00001949: PUSH1 0x00 0000194b: DUP4 0000194c: ISZERO 0000194d: PUSH2 0x08fb 00001950: JUMPI 00001951: DUP2 00001952: DUP2 00001953: ADD 00001954: MLOAD 00001955: DUP4 00001956: DUP3 00001957: ADD 00001958: MSTORE 00001959: PUSH1 0x20 0000195b: ADD 0000195c: PUSH2 0x08e3 0000195f: JUMP 00001960: JUMPDEST 00001961: POP 00001962: PUSH2 0x196e 00001965: DUP4 00001966: DUP4 00001967: DUP4 00001968: PUSH1 0x00 0000196a: PUSH2 0x20c0 0000196d: JUMP 0000196e: JUMPDEST 0000196f: DUP2 00001970: PUSH1 0x01 00001972: PUSH1 0x01 00001974: PUSH1 0xa0 00001976: SHL 00001977: SUB 00001978: AND 00001979: DUP4 0000197a: PUSH1 0x01 0000197c: PUSH1 0x01 0000197e: PUSH1 0xa0 00001980: SHL 00001981: SUB 00001982: AND 00001983: PUSH1 0x00 00001985: DUP1 00001986: MLOAD 00001987: PUSH1 0x20 00001989: PUSH2 0x2995 0000198c: DUP4 0000198d: CODECOPY 0000198e: DUP2 0000198f: MLOAD 00001990: SWAP2 00001991: MSTORE 00001992: DUP4 00001993: PUSH1 0x40 00001995: MLOAD 00001996: DUP1 00001997: DUP3 00001998: DUP2 00001999: MSTORE 0000199a: PUSH1 0x20 0000199c: ADD 0000199d: SWAP2 0000199e: POP 0000199f: POP 000019a0: PUSH1 0x40 000019a2: MLOAD 000019a3: DUP1 000019a4: SWAP2 000019a5: SUB 000019a6: SWAP1 000019a7: LOG3 000019a8: POP 000019a9: POP 000019aa: POP 000019ab: JUMP 000019ac: JUMPDEST 000019ad: CALLER 000019ae: SWAP1 000019af: JUMP 000019b0: JUMPDEST 000019b1: PUSH1 0x01 000019b3: PUSH1 0x01 000019b5: PUSH1 0xa0 000019b7: SHL 000019b8: SUB 000019b9: DUP4 000019ba: AND 000019bb: PUSH2 0x19f5 000019be: JUMPI 000019bf: PUSH1 0x40 000019c1: MLOAD 000019c2: PUSH3 0x461bcd 000019c6: PUSH1 0xe5 000019c8: SHL 000019c9: DUP2 000019ca: MSTORE 000019cb: PUSH1 0x04 000019cd: ADD 000019ce: DUP1 000019cf: DUP1 000019d0: PUSH1 0x20 000019d2: ADD 000019d3: DUP3 000019d4: DUP2 000019d5: SUB 000019d6: DUP3 000019d7: MSTORE 000019d8: PUSH1 0x24 000019da: DUP2 000019db: MSTORE 000019dc: PUSH1 0x20 000019de: ADD 000019df: DUP1 000019e0: PUSH2 0x29fb 000019e3: PUSH1 0x24 000019e5: SWAP2 000019e6: CODECOPY 000019e7: PUSH1 0x40 000019e9: ADD 000019ea: SWAP2 000019eb: POP 000019ec: POP 000019ed: PUSH1 0x40 000019ef: MLOAD 000019f0: DUP1 000019f1: SWAP2 000019f2: SUB 000019f3: SWAP1 000019f4: REVERT 000019f5: JUMPDEST 000019f6: PUSH1 0x01 000019f8: PUSH1 0x01 000019fa: PUSH1 0xa0 000019fc: SHL 000019fd: SUB 000019fe: DUP3 000019ff: AND 00001a00: PUSH2 0x1a3a 00001a03: JUMPI 00001a04: PUSH1 0x40 00001a06: MLOAD 00001a07: PUSH3 0x461bcd 00001a0b: PUSH1 0xe5 00001a0d: SHL 00001a0e: DUP2 00001a0f: MSTORE 00001a10: PUSH1 0x04 00001a12: ADD 00001a13: DUP1 00001a14: DUP1 00001a15: PUSH1 0x20 00001a17: ADD 00001a18: DUP3 00001a19: DUP2 00001a1a: SUB 00001a1b: DUP3 00001a1c: MSTORE 00001a1d: PUSH1 0x22 00001a1f: DUP2 00001a20: MSTORE 00001a21: PUSH1 0x20 00001a23: ADD 00001a24: DUP1 00001a25: PUSH2 0x28a9 00001a28: PUSH1 0x22 00001a2a: SWAP2 00001a2b: CODECOPY 00001a2c: PUSH1 0x40 00001a2e: ADD 00001a2f: SWAP2 00001a30: POP 00001a31: POP 00001a32: PUSH1 0x40 00001a34: MLOAD 00001a35: DUP1 00001a36: SWAP2 00001a37: SUB 00001a38: SWAP1 00001a39: REVERT 00001a3a: JUMPDEST 00001a3b: PUSH1 0x01 00001a3d: PUSH1 0x01 00001a3f: PUSH1 0xa0 00001a41: SHL 00001a42: SUB 00001a43: DUP1 00001a44: DUP5 00001a45: AND 00001a46: PUSH1 0x00 00001a48: DUP2 00001a49: DUP2 00001a4a: MSTORE 00001a4b: PUSH1 0x35 00001a4d: PUSH1 0x20 00001a4f: SWAP1 00001a50: DUP2 00001a51: MSTORE 00001a52: PUSH1 0x40 00001a54: DUP1 00001a55: DUP4 00001a56: KECCAK256 00001a57: SWAP5 00001a58: DUP8 00001a59: AND 00001a5a: DUP1 00001a5b: DUP5 00001a5c: MSTORE 00001a5d: SWAP5 00001a5e: DUP3 00001a5f: MSTORE 00001a60: SWAP2 00001a61: DUP3 00001a62: SWAP1 00001a63: KECCAK256 00001a64: DUP6 00001a65: SWAP1 00001a66: SSTORE 00001a67: DUP2 00001a68: MLOAD 00001a69: DUP6 00001a6a: DUP2 00001a6b: MSTORE 00001a6c: SWAP2 00001a6d: MLOAD 00001a6e: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 00001a8f: SWAP3 00001a90: DUP2 00001a91: SWAP1 00001a92: SUB 00001a93: SWAP1 00001a94: SWAP2 00001a95: ADD 00001a96: SWAP1 00001a97: LOG3 00001a98: POP 00001a99: POP 00001a9a: POP 00001a9b: JUMP 00001a9c: JUMPDEST 00001a9d: PUSH1 0x01 00001a9f: PUSH1 0x01 00001aa1: PUSH1 0xa0 00001aa3: SHL 00001aa4: SUB 00001aa5: AND 00001aa6: PUSH1 0x00 00001aa8: SWAP1 00001aa9: DUP2 00001aaa: MSTORE 00001aab: PUSH1 0x34 00001aad: PUSH1 0x20 00001aaf: MSTORE 00001ab0: PUSH1 0x40 00001ab2: SWAP1 00001ab3: KECCAK256 00001ab4: SLOAD 00001ab5: SWAP1 00001ab6: JUMP 00001ab7: JUMPDEST 00001ab8: PUSH1 0x36 00001aba: SLOAD 00001abb: SWAP1 00001abc: JUMP 00001abd: JUMPDEST 00001abe: PUSH1 0x40 00001ac0: DUP1 00001ac1: MLOAD 00001ac2: DUP1 00001ac3: DUP3 00001ac4: ADD 00001ac5: SWAP1 00001ac6: SWAP2 00001ac7: MSTORE 00001ac8: PUSH1 0x02 00001aca: DUP2 00001acb: MSTORE 00001acc: PUSH2 0x0353 00001acf: PUSH1 0xf4 00001ad1: SHL 00001ad2: PUSH1 0x20 00001ad4: DUP3 00001ad5: ADD 00001ad6: MSTORE 00001ad7: PUSH1 0x00 00001ad9: SWAP1 00001ada: DUP3 00001adb: PUSH2 0x1b25 00001ade: JUMPI 00001adf: PUSH1 0x40 00001ae1: MLOAD 00001ae2: PUSH3 0x461bcd 00001ae6: PUSH1 0xe5 00001ae8: SHL 00001ae9: DUP2 00001aea: MSTORE 00001aeb: PUSH1 0x20 00001aed: PUSH1 0x04 00001aef: DUP3 00001af0: ADD 00001af1: DUP2 00001af2: DUP2 00001af3: MSTORE 00001af4: DUP4 00001af5: MLOAD 00001af6: PUSH1 0x24 00001af8: DUP5 00001af9: ADD 00001afa: MSTORE 00001afb: DUP4 00001afc: MLOAD 00001afd: SWAP1 00001afe: SWAP3 00001aff: DUP4 00001b00: SWAP3 00001b01: PUSH1 0x44 00001b03: SWAP1 00001b04: SWAP2 00001b05: ADD 00001b06: SWAP2 00001b07: SWAP1 00001b08: DUP6 00001b09: ADD 00001b0a: SWAP1 00001b0b: DUP1 00001b0c: DUP4 00001b0d: DUP4 00001b0e: PUSH1 0x00 00001b10: DUP4 00001b11: ISZERO 00001b12: PUSH2 0x08fb 00001b15: JUMPI 00001b16: DUP2 00001b17: DUP2 00001b18: ADD 00001b19: MLOAD 00001b1a: DUP4 00001b1b: DUP3 00001b1c: ADD 00001b1d: MSTORE 00001b1e: PUSH1 0x20 00001b20: ADD 00001b21: PUSH2 0x08e3 00001b24: JUMP 00001b25: JUMPDEST 00001b26: POP 00001b27: PUSH1 0x40 00001b29: DUP1 00001b2a: MLOAD 00001b2b: DUP1 00001b2c: DUP3 00001b2d: ADD 00001b2e: SWAP1 00001b2f: SWAP2 00001b30: MSTORE 00001b31: PUSH1 0x02 00001b33: DUP1 00001b34: DUP3 00001b35: MSTORE 00001b36: PUSH2 0x0687 00001b39: PUSH1 0xf3 00001b3b: SHL 00001b3c: PUSH1 0x20 00001b3e: DUP4 00001b3f: ADD 00001b40: MSTORE 00001b41: DUP4 00001b42: DIV 00001b43: SWAP1 00001b44: PUSH12 0x033b2e3c9fd0803ce8000000 00001b51: DUP3 00001b52: NOT 00001b53: DIV 00001b54: DUP6 00001b55: GT 00001b56: ISZERO 00001b57: PUSH2 0x1ba1 00001b5a: JUMPI 00001b5b: PUSH1 0x40 00001b5d: MLOAD 00001b5e: PUSH3 0x461bcd 00001b62: PUSH1 0xe5 00001b64: SHL 00001b65: DUP2 00001b66: MSTORE 00001b67: PUSH1 0x20 00001b69: PUSH1 0x04 00001b6b: DUP3 00001b6c: ADD 00001b6d: DUP2 00001b6e: DUP2 00001b6f: MSTORE 00001b70: DUP4 00001b71: MLOAD 00001b72: PUSH1 0x24 00001b74: DUP5 00001b75: ADD 00001b76: MSTORE 00001b77: DUP4 00001b78: MLOAD 00001b79: SWAP1 00001b7a: SWAP3 00001b7b: DUP4 00001b7c: SWAP3 00001b7d: PUSH1 0x44 00001b7f: SWAP1 00001b80: SWAP2 00001b81: ADD 00001b82: SWAP2 00001b83: SWAP1 00001b84: DUP6 00001b85: ADD 00001b86: SWAP1 00001b87: DUP1 00001b88: DUP4 00001b89: DUP4 00001b8a: PUSH1 0x00 00001b8c: DUP4 00001b8d: ISZERO 00001b8e: PUSH2 0x08fb 00001b91: JUMPI 00001b92: DUP2 00001b93: DUP2 00001b94: ADD 00001b95: MLOAD 00001b96: DUP4 00001b97: DUP3 00001b98: ADD 00001b99: MSTORE 00001b9a: PUSH1 0x20 00001b9c: ADD 00001b9d: PUSH2 0x08e3 00001ba0: JUMP 00001ba1: JUMPDEST 00001ba2: POP 00001ba3: DUP3 00001ba4: DUP2 00001ba5: PUSH12 0x033b2e3c9fd0803ce8000000 00001bb2: DUP7 00001bb3: MUL 00001bb4: ADD 00001bb5: DUP2 00001bb6: PUSH2 0x1bbb 00001bb9: JUMPI 00001bba: INVALID 00001bbb: JUMPDEST 00001bbc: DIV 00001bbd: SWAP5 00001bbe: SWAP4 00001bbf: POP 00001bc0: POP 00001bc1: POP 00001bc2: POP 00001bc3: JUMP 00001bc4: JUMPDEST 00001bc5: PUSH1 0x01 00001bc7: PUSH1 0x01 00001bc9: PUSH1 0xa0 00001bcb: SHL 00001bcc: SUB 00001bcd: DUP3 00001bce: AND 00001bcf: PUSH2 0x1c1f 00001bd2: JUMPI 00001bd3: PUSH1 0x40 00001bd5: DUP1 00001bd6: MLOAD 00001bd7: PUSH3 0x461bcd 00001bdb: PUSH1 0xe5 00001bdd: SHL 00001bde: DUP2 00001bdf: MSTORE 00001be0: PUSH1 0x20 00001be2: PUSH1 0x04 00001be4: DUP3 00001be5: ADD 00001be6: MSTORE 00001be7: PUSH1 0x1f 00001be9: PUSH1 0x24 00001beb: DUP3 00001bec: ADD 00001bed: MSTORE 00001bee: PUSH32 0x45524332303a206d696e7420746f20746865207a65726f206164647265737300 00001c0f: PUSH1 0x44 00001c11: DUP3 00001c12: ADD 00001c13: MSTORE 00001c14: SWAP1 00001c15: MLOAD 00001c16: SWAP1 00001c17: DUP2 00001c18: SWAP1 00001c19: SUB 00001c1a: PUSH1 0x64 00001c1c: ADD 00001c1d: SWAP1 00001c1e: REVERT 00001c1f: JUMPDEST 00001c20: PUSH2 0x1c2b 00001c23: PUSH1 0x00 00001c25: DUP4 00001c26: DUP4 00001c27: PUSH2 0x0f71 00001c2a: JUMP 00001c2b: JUMPDEST 00001c2c: PUSH1 0x36 00001c2e: SLOAD 00001c2f: PUSH2 0x1c38 00001c32: DUP2 00001c33: DUP4 00001c34: PUSH2 0x1e3a 00001c37: JUMP 00001c38: JUMPDEST 00001c39: PUSH1 0x36 00001c3b: SSTORE 00001c3c: PUSH1 0x01 00001c3e: PUSH1 0x01 00001c40: PUSH1 0xa0 00001c42: SHL 00001c43: SUB 00001c44: DUP4 00001c45: AND 00001c46: PUSH1 0x00 00001c48: SWAP1 00001c49: DUP2 00001c4a: MSTORE 00001c4b: PUSH1 0x34 00001c4d: PUSH1 0x20 00001c4f: MSTORE 00001c50: PUSH1 0x40 00001c52: SWAP1 00001c53: KECCAK256 00001c54: SLOAD 00001c55: PUSH2 0x1c5e 00001c58: DUP2 00001c59: DUP5 00001c5a: PUSH2 0x1e3a 00001c5d: JUMP 00001c5e: JUMPDEST 00001c5f: PUSH1 0x01 00001c61: PUSH1 0x01 00001c63: PUSH1 0xa0 00001c65: SHL 00001c66: SUB 00001c67: DUP6 00001c68: AND 00001c69: PUSH1 0x00 00001c6b: SWAP1 00001c6c: DUP2 00001c6d: MSTORE 00001c6e: PUSH1 0x34 00001c70: PUSH1 0x20 00001c72: MSTORE 00001c73: PUSH1 0x40 00001c75: DUP2 00001c76: KECCAK256 00001c77: SWAP2 00001c78: SWAP1 00001c79: SWAP2 00001c7a: SSTORE 00001c7b: PUSH2 0x1c82 00001c7e: PUSH2 0x1ee6 00001c81: JUMP 00001c82: JUMPDEST 00001c83: PUSH1 0x01 00001c85: PUSH1 0x01 00001c87: PUSH1 0xa0 00001c89: SHL 00001c8a: SUB 00001c8b: AND 00001c8c: EQ 00001c8d: PUSH2 0x1d0f 00001c90: JUMPI 00001c91: PUSH2 0x1c98 00001c94: PUSH2 0x1ee6 00001c97: JUMP 00001c98: JUMPDEST 00001c99: PUSH1 0x01 00001c9b: PUSH1 0x01 00001c9d: PUSH1 0xa0 00001c9f: SHL 00001ca0: SUB 00001ca1: AND 00001ca2: PUSH4 0x31873e2e 00001ca7: DUP6 00001ca8: DUP4 00001ca9: DUP6 00001caa: PUSH1 0x40 00001cac: MLOAD 00001cad: DUP5 00001cae: PUSH4 0xffffffff 00001cb3: AND 00001cb4: PUSH1 0xe0 00001cb6: SHL 00001cb7: DUP2 00001cb8: MSTORE 00001cb9: PUSH1 0x04 00001cbb: ADD 00001cbc: DUP1 00001cbd: DUP5 00001cbe: PUSH1 0x01 00001cc0: PUSH1 0x01 00001cc2: PUSH1 0xa0 00001cc4: SHL 00001cc5: SUB 00001cc6: AND 00001cc7: DUP2 00001cc8: MSTORE 00001cc9: PUSH1 0x20 00001ccb: ADD 00001ccc: DUP4 00001ccd: DUP2 00001cce: MSTORE 00001ccf: PUSH1 0x20 00001cd1: ADD 00001cd2: DUP3 00001cd3: DUP2 00001cd4: MSTORE 00001cd5: PUSH1 0x20 00001cd7: ADD 00001cd8: SWAP4 00001cd9: POP 00001cda: POP 00001cdb: POP 00001cdc: POP 00001cdd: PUSH1 0x00 00001cdf: PUSH1 0x40 00001ce1: MLOAD 00001ce2: DUP1 00001ce3: DUP4 00001ce4: SUB 00001ce5: DUP2 00001ce6: PUSH1 0x00 00001ce8: DUP8 00001ce9: DUP1 00001cea: EXTCODESIZE 00001ceb: ISZERO 00001cec: DUP1 00001ced: ISZERO 00001cee: PUSH2 0x1cf6 00001cf1: JUMPI 00001cf2: PUSH1 0x00 00001cf4: DUP1 00001cf5: REVERT 00001cf6: JUMPDEST 00001cf7: POP 00001cf8: GAS 00001cf9: CALL 00001cfa: ISZERO 00001cfb: DUP1 00001cfc: ISZERO 00001cfd: PUSH2 0x1d0a 00001d00: JUMPI 00001d01: RETURNDATASIZE 00001d02: PUSH1 0x00 00001d04: DUP1 00001d05: RETURNDATACOPY 00001d06: RETURNDATASIZE 00001d07: PUSH1 0x00 00001d09: REVERT 00001d0a: JUMPDEST 00001d0b: POP 00001d0c: POP 00001d0d: POP 00001d0e: POP 00001d0f: JUMPDEST 00001d10: POP 00001d11: POP 00001d12: POP 00001d13: POP 00001d14: JUMP 00001d15: JUMPDEST 00001d16: PUSH1 0x00 00001d18: DUP3 00001d19: ISZERO 00001d1a: DUP1 00001d1b: PUSH2 0x1d22 00001d1e: JUMPI 00001d1f: POP 00001d20: DUP2 00001d21: ISZERO 00001d22: JUMPDEST 00001d23: ISZERO 00001d24: PUSH2 0x1d2f 00001d27: JUMPI 00001d28: POP 00001d29: PUSH1 0x00 00001d2b: PUSH2 0x0844 00001d2e: JUMP 00001d2f: JUMPDEST 00001d30: DUP2 00001d31: PUSH12 0x019d971e4fe8401e74000000 00001d3e: NOT 00001d3f: DUP2 00001d40: PUSH2 0x1d45 00001d43: JUMPI 00001d44: INVALID 00001d45: JUMPDEST 00001d46: DIV 00001d47: DUP4 00001d48: GT 00001d49: ISZERO 00001d4a: PUSH1 0x40 00001d4c: MLOAD 00001d4d: DUP1 00001d4e: PUSH1 0x40 00001d50: ADD 00001d51: PUSH1 0x40 00001d53: MSTORE 00001d54: DUP1 00001d55: PUSH1 0x02 00001d57: DUP2 00001d58: MSTORE 00001d59: PUSH1 0x20 00001d5b: ADD 00001d5c: PUSH2 0x0687 00001d5f: PUSH1 0xf3 00001d61: SHL 00001d62: DUP2 00001d63: MSTORE 00001d64: POP 00001d65: SWAP1 00001d66: PUSH2 0x1db0 00001d69: JUMPI 00001d6a: PUSH1 0x40 00001d6c: MLOAD 00001d6d: PUSH3 0x461bcd 00001d71: PUSH1 0xe5 00001d73: SHL 00001d74: DUP2 00001d75: MSTORE 00001d76: PUSH1 0x20 00001d78: PUSH1 0x04 00001d7a: DUP3 00001d7b: ADD 00001d7c: DUP2 00001d7d: DUP2 00001d7e: MSTORE 00001d7f: DUP4 00001d80: MLOAD 00001d81: PUSH1 0x24 00001d83: DUP5 00001d84: ADD 00001d85: MSTORE 00001d86: DUP4 00001d87: MLOAD 00001d88: SWAP1 00001d89: SWAP3 00001d8a: DUP4 00001d8b: SWAP3 00001d8c: PUSH1 0x44 00001d8e: SWAP1 00001d8f: SWAP2 00001d90: ADD 00001d91: SWAP2 00001d92: SWAP1 00001d93: DUP6 00001d94: ADD 00001d95: SWAP1 00001d96: DUP1 00001d97: DUP4 00001d98: DUP4 00001d99: PUSH1 0x00 00001d9b: DUP4 00001d9c: ISZERO 00001d9d: PUSH2 0x08fb 00001da0: JUMPI 00001da1: DUP2 00001da2: DUP2 00001da3: ADD 00001da4: MLOAD 00001da5: DUP4 00001da6: DUP3 00001da7: ADD 00001da8: MSTORE 00001da9: PUSH1 0x20 00001dab: ADD 00001dac: PUSH2 0x08e3 00001daf: JUMP 00001db0: JUMPDEST 00001db1: POP 00001db2: POP 00001db3: PUSH12 0x033b2e3c9fd0803ce8000000 00001dc0: SWAP2 00001dc1: MUL 00001dc2: PUSH12 0x019d971e4fe8401e74000000 00001dcf: ADD 00001dd0: DIV 00001dd1: SWAP1 00001dd2: JUMP 00001dd3: JUMPDEST 00001dd4: PUSH2 0x0f71 00001dd7: DUP4 00001dd8: DUP4 00001dd9: DUP4 00001dda: PUSH1 0x01 00001ddc: PUSH2 0x20c0 00001ddf: JUMP 00001de0: JUMPDEST 00001de1: PUSH1 0x00 00001de3: DUP2 00001de4: DUP5 00001de5: DUP5 00001de6: GT 00001de7: ISZERO 00001de8: PUSH2 0x1e32 00001deb: JUMPI 00001dec: PUSH1 0x40 00001dee: MLOAD 00001def: PUSH3 0x461bcd 00001df3: PUSH1 0xe5 00001df5: SHL 00001df6: DUP2 00001df7: MSTORE 00001df8: PUSH1 0x20 00001dfa: PUSH1 0x04 00001dfc: DUP3 00001dfd: ADD 00001dfe: DUP2 00001dff: DUP2 00001e00: MSTORE 00001e01: DUP4 00001e02: MLOAD 00001e03: PUSH1 0x24 00001e05: DUP5 00001e06: ADD 00001e07: MSTORE 00001e08: DUP4 00001e09: MLOAD 00001e0a: SWAP1 00001e0b: SWAP3 00001e0c: DUP4 00001e0d: SWAP3 00001e0e: PUSH1 0x44 00001e10: SWAP1 00001e11: SWAP2 00001e12: ADD 00001e13: SWAP2 00001e14: SWAP1 00001e15: DUP6 00001e16: ADD 00001e17: SWAP1 00001e18: DUP1 00001e19: DUP4 00001e1a: DUP4 00001e1b: PUSH1 0x00 00001e1d: DUP4 00001e1e: ISZERO 00001e1f: PUSH2 0x08fb 00001e22: JUMPI 00001e23: DUP2 00001e24: DUP2 00001e25: ADD 00001e26: MLOAD 00001e27: DUP4 00001e28: DUP3 00001e29: ADD 00001e2a: MSTORE 00001e2b: PUSH1 0x20 00001e2d: ADD 00001e2e: PUSH2 0x08e3 00001e31: JUMP 00001e32: JUMPDEST 00001e33: POP 00001e34: POP 00001e35: POP 00001e36: SWAP1 00001e37: SUB 00001e38: SWAP1 00001e39: JUMP 00001e3a: JUMPDEST 00001e3b: PUSH1 0x00 00001e3d: DUP3 00001e3e: DUP3 00001e3f: ADD 00001e40: DUP4 00001e41: DUP2 00001e42: LT 00001e43: ISZERO 00001e44: PUSH2 0x0a3a 00001e47: JUMPI 00001e48: PUSH1 0x40 00001e4a: DUP1 00001e4b: MLOAD 00001e4c: PUSH3 0x461bcd 00001e50: PUSH1 0xe5 00001e52: SHL 00001e53: DUP2 00001e54: MSTORE 00001e55: PUSH1 0x20 00001e57: PUSH1 0x04 00001e59: DUP3 00001e5a: ADD 00001e5b: MSTORE 00001e5c: PUSH1 0x1b 00001e5e: PUSH1 0x24 00001e60: DUP3 00001e61: ADD 00001e62: MSTORE 00001e63: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000 00001e84: PUSH1 0x44 00001e86: DUP3 00001e87: ADD 00001e88: MSTORE 00001e89: SWAP1 00001e8a: MLOAD 00001e8b: SWAP1 00001e8c: DUP2 00001e8d: SWAP1 00001e8e: SUB 00001e8f: PUSH1 0x64 00001e91: ADD 00001e92: SWAP1 00001e93: REVERT 00001e94: JUMPDEST 00001e95: PUSH1 0x40 00001e97: DUP1 00001e98: MLOAD 00001e99: PUSH1 0x01 00001e9b: PUSH1 0x01 00001e9d: PUSH1 0xa0 00001e9f: SHL 00001ea0: SUB 00001ea1: DUP5 00001ea2: AND 00001ea3: PUSH1 0x24 00001ea5: DUP3 00001ea6: ADD 00001ea7: MSTORE 00001ea8: PUSH1 0x44 00001eaa: DUP1 00001eab: DUP3 00001eac: ADD 00001ead: DUP5 00001eae: SWAP1 00001eaf: MSTORE 00001eb0: DUP3 00001eb1: MLOAD 00001eb2: DUP1 00001eb3: DUP4 00001eb4: SUB 00001eb5: SWAP1 00001eb6: SWAP2 00001eb7: ADD 00001eb8: DUP2 00001eb9: MSTORE 00001eba: PUSH1 0x64 00001ebc: SWAP1 00001ebd: SWAP2 00001ebe: ADD 00001ebf: SWAP1 00001ec0: SWAP2 00001ec1: MSTORE 00001ec2: PUSH1 0x20 00001ec4: DUP2 00001ec5: ADD 00001ec6: DUP1 00001ec7: MLOAD 00001ec8: PUSH1 0x01 00001eca: PUSH1 0x01 00001ecc: PUSH1 0xe0 00001ece: SHL 00001ecf: SUB 00001ed0: AND 00001ed1: PUSH4 0xa9059cbb 00001ed6: PUSH1 0xe0 00001ed8: SHL 00001ed9: OR 00001eda: SWAP1 00001edb: MSTORE 00001edc: PUSH2 0x0f71 00001edf: SWAP1 00001ee0: DUP5 00001ee1: SWAP1 00001ee2: PUSH2 0x226f 00001ee5: JUMP 00001ee6: JUMPDEST 00001ee7: PUSH1 0x00 00001ee9: PUSH1 0x39 00001eeb: PUSH1 0x01 00001eed: SWAP1 00001eee: SLOAD 00001eef: SWAP1 00001ef0: PUSH2 0x0100 00001ef3: EXP 00001ef4: SWAP1 00001ef5: DIV 00001ef6: PUSH1 0x01 00001ef8: PUSH1 0x01 00001efa: PUSH1 0xa0 00001efc: SHL 00001efd: SUB 00001efe: AND 00001eff: PUSH1 0x01 00001f01: PUSH1 0x01 00001f03: PUSH1 0xa0 00001f05: SHL 00001f06: SUB 00001f07: AND 00001f08: PUSH4 0xfe65acfe 00001f0d: PUSH1 0x40 00001f0f: MLOAD 00001f10: DUP2 00001f11: PUSH4 0xffffffff 00001f16: AND 00001f17: PUSH1 0xe0 00001f19: SHL 00001f1a: DUP2 00001f1b: MSTORE 00001f1c: PUSH1 0x04 00001f1e: ADD 00001f1f: PUSH1 0x20 00001f21: PUSH1 0x40 00001f23: MLOAD 00001f24: DUP1 00001f25: DUP4 00001f26: SUB 00001f27: DUP2 00001f28: DUP7 00001f29: DUP1 00001f2a: EXTCODESIZE 00001f2b: ISZERO 00001f2c: DUP1 00001f2d: ISZERO 00001f2e: PUSH2 0x1f36 00001f31: JUMPI 00001f32: PUSH1 0x00 00001f34: DUP1 00001f35: REVERT 00001f36: JUMPDEST 00001f37: POP 00001f38: GAS 00001f39: STATICCALL 00001f3a: ISZERO 00001f3b: DUP1 00001f3c: ISZERO 00001f3d: PUSH2 0x1f4a 00001f40: JUMPI 00001f41: RETURNDATASIZE 00001f42: PUSH1 0x00 00001f44: DUP1 00001f45: RETURNDATACOPY 00001f46: RETURNDATASIZE 00001f47: PUSH1 0x00 00001f49: REVERT 00001f4a: JUMPDEST 00001f4b: POP 00001f4c: POP 00001f4d: POP 00001f4e: POP 00001f4f: PUSH1 0x40 00001f51: MLOAD 00001f52: RETURNDATASIZE 00001f53: PUSH1 0x20 00001f55: DUP2 00001f56: LT 00001f57: ISZERO 00001f58: PUSH2 0x1f60 00001f5b: JUMPI 00001f5c: PUSH1 0x00 00001f5e: DUP1 00001f5f: REVERT 00001f60: JUMPDEST 00001f61: POP 00001f62: MLOAD 00001f63: PUSH1 0x40 00001f65: DUP1 00001f66: MLOAD 00001f67: PUSH4 0x75d26413 00001f6c: PUSH1 0xe0 00001f6e: SHL 00001f6f: DUP2 00001f70: MSTORE 00001f71: SWAP1 00001f72: MLOAD 00001f73: PUSH1 0x01 00001f75: PUSH1 0x01 00001f77: PUSH1 0xa0 00001f79: SHL 00001f7a: SUB 00001f7b: SWAP1 00001f7c: SWAP3 00001f7d: AND 00001f7e: SWAP2 00001f7f: PUSH4 0x75d26413 00001f84: SWAP2 00001f85: PUSH1 0x04 00001f87: DUP1 00001f88: DUP3 00001f89: ADD 00001f8a: SWAP3 00001f8b: PUSH1 0x20 00001f8d: SWAP3 00001f8e: SWAP1 00001f8f: SWAP2 00001f90: SWAP1 00001f91: DUP3 00001f92: SWAP1 00001f93: SUB 00001f94: ADD 00001f95: DUP2 00001f96: DUP7 00001f97: DUP1 00001f98: EXTCODESIZE 00001f99: ISZERO 00001f9a: DUP1 00001f9b: ISZERO 00001f9c: PUSH2 0x1fa4 00001f9f: JUMPI 00001fa0: PUSH1 0x00 00001fa2: DUP1 00001fa3: REVERT 00001fa4: JUMPDEST 00001fa5: POP 00001fa6: GAS 00001fa7: STATICCALL 00001fa8: ISZERO 00001fa9: DUP1 00001faa: ISZERO 00001fab: PUSH2 0x1fb8 00001fae: JUMPI 00001faf: RETURNDATASIZE 00001fb0: PUSH1 0x00 00001fb2: DUP1 00001fb3: RETURNDATACOPY 00001fb4: RETURNDATASIZE 00001fb5: PUSH1 0x00 00001fb7: REVERT 00001fb8: JUMPDEST 00001fb9: POP 00001fba: POP 00001fbb: POP 00001fbc: POP 00001fbd: PUSH1 0x40 00001fbf: MLOAD 00001fc0: RETURNDATASIZE 00001fc1: PUSH1 0x20 00001fc3: DUP2 00001fc4: LT 00001fc5: ISZERO 00001fc6: PUSH2 0x1fce 00001fc9: JUMPI 00001fca: PUSH1 0x00 00001fcc: DUP1 00001fcd: REVERT 00001fce: JUMPDEST 00001fcf: POP 00001fd0: MLOAD 00001fd1: SWAP1 00001fd2: POP 00001fd3: SWAP1 00001fd4: JUMP 00001fd5: JUMPDEST 00001fd6: PUSH1 0x01 00001fd8: SWAP1 00001fd9: JUMP 00001fda: JUMPDEST 00001fdb: ADDRESS 00001fdc: EXTCODESIZE 00001fdd: ISZERO 00001fde: SWAP1 00001fdf: JUMP 00001fe0: JUMPDEST 00001fe1: DUP1 00001fe2: MLOAD 00001fe3: PUSH2 0x0ee3 00001fe6: SWAP1 00001fe7: PUSH1 0x37 00001fe9: SWAP1 00001fea: PUSH1 0x20 00001fec: DUP5 00001fed: ADD 00001fee: SWAP1 00001fef: PUSH2 0x27c2 00001ff2: JUMP 00001ff3: JUMPDEST 00001ff4: DUP1 00001ff5: MLOAD 00001ff6: PUSH2 0x0ee3 00001ff9: SWAP1 00001ffa: PUSH1 0x38 00001ffc: SWAP1 00001ffd: PUSH1 0x20 00001fff: DUP5 00002000: ADD 00002001: SWAP1 00002002: PUSH2 0x27c2 00002005: JUMP 00002006: JUMPDEST 00002007: PUSH1 0x39 00002009: DUP1 0000200a: SLOAD 0000200b: PUSH1 0xff 0000200d: NOT 0000200e: AND 0000200f: PUSH1 0xff 00002011: SWAP3 00002012: SWAP1 00002013: SWAP3 00002014: AND 00002015: SWAP2 00002016: SWAP1 00002017: SWAP2 00002018: OR 00002019: SWAP1 0000201a: SSTORE 0000201b: JUMP 0000201c: JUMPDEST 0000201d: PUSH1 0x01 0000201f: PUSH1 0x01 00002021: PUSH1 0xa0 00002023: SHL 00002024: SUB 00002025: DUP3 00002026: AND 00002027: PUSH2 0x2061 0000202a: JUMPI 0000202b: PUSH1 0x40 0000202d: MLOAD 0000202e: PUSH3 0x461bcd 00002032: PUSH1 0xe5 00002034: SHL 00002035: DUP2 00002036: MSTORE 00002037: PUSH1 0x04 00002039: ADD 0000203a: DUP1 0000203b: DUP1 0000203c: PUSH1 0x20 0000203e: ADD 0000203f: DUP3 00002040: DUP2 00002041: SUB 00002042: DUP3 00002043: MSTORE 00002044: PUSH1 0x21 00002046: DUP2 00002047: MSTORE 00002048: PUSH1 0x20 0000204a: ADD 0000204b: DUP1 0000204c: PUSH2 0x29b5 0000204f: PUSH1 0x21 00002051: SWAP2 00002052: CODECOPY 00002053: PUSH1 0x40 00002055: ADD 00002056: SWAP2 00002057: POP 00002058: POP 00002059: PUSH1 0x40 0000205b: MLOAD 0000205c: DUP1 0000205d: SWAP2 0000205e: SUB 0000205f: SWAP1 00002060: REVERT 00002061: JUMPDEST 00002062: PUSH2 0x206d 00002065: DUP3 00002066: PUSH1 0x00 00002068: DUP4 00002069: PUSH2 0x0f71 0000206c: JUMP 0000206d: JUMPDEST 0000206e: PUSH1 0x36 00002070: SLOAD 00002071: PUSH2 0x207a 00002074: DUP2 00002075: DUP4 00002076: PUSH2 0x2320 00002079: JUMP 0000207a: JUMPDEST 0000207b: PUSH1 0x36 0000207d: SSTORE 0000207e: PUSH1 0x01 00002080: PUSH1 0x01 00002082: PUSH1 0xa0 00002084: SHL 00002085: SUB 00002086: DUP4 00002087: AND 00002088: PUSH1 0x00 0000208a: SWAP1 0000208b: DUP2 0000208c: MSTORE 0000208d: PUSH1 0x34 0000208f: PUSH1 0x20 00002091: SWAP1 00002092: DUP2 00002093: MSTORE 00002094: PUSH1 0x40 00002096: SWAP2 00002097: DUP3 00002098: SWAP1 00002099: KECCAK256 0000209a: SLOAD 0000209b: DUP3 0000209c: MLOAD 0000209d: PUSH1 0x60 0000209f: DUP2 000020a0: ADD 000020a1: SWAP1 000020a2: SWAP4 000020a3: MSTORE 000020a4: PUSH1 0x22 000020a6: DUP1 000020a7: DUP5 000020a8: MSTORE 000020a9: SWAP1 000020aa: SWAP3 000020ab: PUSH2 0x1c5e 000020ae: SWAP3 000020af: DUP7 000020b0: SWAP3 000020b1: SWAP1 000020b2: PUSH2 0x2887 000020b5: SWAP1 000020b6: DUP4 000020b7: ADD 000020b8: CODECOPY 000020b9: DUP4 000020ba: SWAP2 000020bb: SWAP1 000020bc: PUSH2 0x1de0 000020bf: JUMP 000020c0: JUMPDEST 000020c1: PUSH1 0x3a 000020c3: SLOAD 000020c4: PUSH1 0x39 000020c6: SLOAD 000020c7: PUSH1 0x40 000020c9: DUP1 000020ca: MLOAD 000020cb: PUSH4 0xd15e0053 000020d0: PUSH1 0xe0 000020d2: SHL 000020d3: DUP2 000020d4: MSTORE 000020d5: PUSH1 0x01 000020d7: PUSH1 0x01 000020d9: PUSH1 0xa0 000020db: SHL 000020dc: SUB 000020dd: SWAP4 000020de: DUP5 000020df: AND 000020e0: PUSH1 0x04 000020e2: DUP3 000020e3: ADD 000020e4: DUP2 000020e5: SWAP1 000020e6: MSTORE 000020e7: SWAP2 000020e8: MLOAD 000020e9: SWAP2 000020ea: SWAP4 000020eb: PUSH2 0x0100 000020ee: SWAP1 000020ef: SWAP4 000020f0: DIV 000020f1: SWAP1 000020f2: SWAP3 000020f3: AND 000020f4: SWAP2 000020f5: PUSH1 0x00 000020f7: SWAP2 000020f8: DUP4 000020f9: SWAP2 000020fa: PUSH4 0xd15e0053 000020ff: SWAP2 00002100: PUSH1 0x24 00002102: DUP1 00002103: DUP4 00002104: ADD 00002105: SWAP3 00002106: PUSH1 0x20 00002108: SWAP3 00002109: SWAP2 0000210a: SWAP1 0000210b: DUP3 0000210c: SWAP1 0000210d: SUB 0000210e: ADD 0000210f: DUP2 00002110: DUP7 00002111: DUP1 00002112: EXTCODESIZE 00002113: ISZERO 00002114: DUP1 00002115: ISZERO 00002116: PUSH2 0x211e 00002119: JUMPI 0000211a: PUSH1 0x00 0000211c: DUP1 0000211d: REVERT 0000211e: JUMPDEST 0000211f: POP 00002120: GAS 00002121: STATICCALL 00002122: ISZERO 00002123: DUP1 00002124: ISZERO 00002125: PUSH2 0x2132 00002128: JUMPI 00002129: RETURNDATASIZE 0000212a: PUSH1 0x00 0000212c: DUP1 0000212d: RETURNDATACOPY 0000212e: RETURNDATASIZE 0000212f: PUSH1 0x00 00002131: REVERT 00002132: JUMPDEST 00002133: POP 00002134: POP 00002135: POP 00002136: POP 00002137: PUSH1 0x40 00002139: MLOAD 0000213a: RETURNDATASIZE 0000213b: PUSH1 0x20 0000213d: DUP2 0000213e: LT 0000213f: ISZERO 00002140: PUSH2 0x2148 00002143: JUMPI 00002144: PUSH1 0x00 00002146: DUP1 00002147: REVERT 00002148: JUMPDEST 00002149: POP 0000214a: MLOAD 0000214b: SWAP1 0000214c: POP 0000214d: PUSH1 0x00 0000214f: PUSH2 0x215b 00002152: DUP3 00002153: PUSH2 0x0d75 00002156: DUP11 00002157: PUSH2 0x1a9c 0000215a: JUMP 0000215b: JUMPDEST 0000215c: SWAP1 0000215d: POP 0000215e: PUSH1 0x00 00002160: PUSH2 0x216c 00002163: DUP4 00002164: PUSH2 0x0d75 00002167: DUP11 00002168: PUSH2 0x1a9c 0000216b: JUMP 0000216c: JUMPDEST 0000216d: SWAP1 0000216e: POP 0000216f: PUSH2 0x2182 00002172: DUP10 00002173: DUP10 00002174: PUSH2 0x217d 00002177: DUP11 00002178: DUP8 00002179: PUSH2 0x1abd 0000217c: JUMP 0000217d: JUMPDEST 0000217e: PUSH2 0x237d 00002181: JUMP 00002182: JUMPDEST 00002183: DUP6 00002184: ISZERO 00002185: PUSH2 0x2211 00002188: JUMPI 00002189: PUSH1 0x40 0000218b: DUP1 0000218c: MLOAD 0000218d: PUSH4 0xd5ed3933 00002192: PUSH1 0xe0 00002194: SHL 00002195: DUP2 00002196: MSTORE 00002197: PUSH1 0x01 00002199: PUSH1 0x01 0000219b: PUSH1 0xa0 0000219d: SHL 0000219e: SUB 0000219f: DUP8 000021a0: DUP2 000021a1: AND 000021a2: PUSH1 0x04 000021a4: DUP4 000021a5: ADD 000021a6: MSTORE 000021a7: DUP12 000021a8: DUP2 000021a9: AND 000021aa: PUSH1 0x24 000021ac: DUP4 000021ad: ADD 000021ae: MSTORE 000021af: DUP11 000021b0: DUP2 000021b1: AND 000021b2: PUSH1 0x44 000021b4: DUP4 000021b5: ADD 000021b6: MSTORE 000021b7: PUSH1 0x64 000021b9: DUP3 000021ba: ADD 000021bb: DUP11 000021bc: SWAP1 000021bd: MSTORE 000021be: PUSH1 0x84 000021c0: DUP3 000021c1: ADD 000021c2: DUP6 000021c3: SWAP1 000021c4: MSTORE 000021c5: PUSH1 0xa4 000021c7: DUP3 000021c8: ADD 000021c9: DUP5 000021ca: SWAP1 000021cb: MSTORE 000021cc: SWAP2 000021cd: MLOAD 000021ce: SWAP2 000021cf: DUP7 000021d0: AND 000021d1: SWAP2 000021d2: PUSH4 0xd5ed3933 000021d7: SWAP2 000021d8: PUSH1 0xc4 000021da: DUP1 000021db: DUP3 000021dc: ADD 000021dd: SWAP3 000021de: PUSH1 0x00 000021e0: SWAP3 000021e1: SWAP1 000021e2: SWAP2 000021e3: SWAP1 000021e4: DUP3 000021e5: SWAP1 000021e6: SUB 000021e7: ADD 000021e8: DUP2 000021e9: DUP4 000021ea: DUP8 000021eb: DUP1 000021ec: EXTCODESIZE 000021ed: ISZERO 000021ee: DUP1 000021ef: ISZERO 000021f0: PUSH2 0x21f8 000021f3: JUMPI 000021f4: PUSH1 0x00 000021f6: DUP1 000021f7: REVERT 000021f8: JUMPDEST 000021f9: POP 000021fa: GAS 000021fb: CALL 000021fc: ISZERO 000021fd: DUP1 000021fe: ISZERO 000021ff: PUSH2 0x220c 00002202: JUMPI 00002203: RETURNDATASIZE 00002204: PUSH1 0x00 00002206: DUP1 00002207: RETURNDATACOPY 00002208: RETURNDATASIZE 00002209: PUSH1 0x00 0000220b: REVERT 0000220c: JUMPDEST 0000220d: POP 0000220e: POP 0000220f: POP 00002210: POP 00002211: JUMPDEST 00002212: DUP8 00002213: PUSH1 0x01 00002215: PUSH1 0x01 00002217: PUSH1 0xa0 00002219: SHL 0000221a: SUB 0000221b: AND 0000221c: DUP10 0000221d: PUSH1 0x01 0000221f: PUSH1 0x01 00002221: PUSH1 0xa0 00002223: SHL 00002224: SUB 00002225: AND 00002226: PUSH32 0x4beccb90f994c31aced7a23b5611020728a23d8ec5cddd1a3e9d97b96fda8666 00002247: DUP10 00002248: DUP7 00002249: PUSH1 0x40 0000224b: MLOAD 0000224c: DUP1 0000224d: DUP4 0000224e: DUP2 0000224f: MSTORE 00002250: PUSH1 0x20 00002252: ADD 00002253: DUP3 00002254: DUP2 00002255: MSTORE 00002256: PUSH1 0x20 00002258: ADD 00002259: SWAP3 0000225a: POP 0000225b: POP 0000225c: POP 0000225d: PUSH1 0x40 0000225f: MLOAD 00002260: DUP1 00002261: SWAP2 00002262: SUB 00002263: SWAP1 00002264: LOG3 00002265: POP 00002266: POP 00002267: POP 00002268: POP 00002269: POP 0000226a: POP 0000226b: POP 0000226c: POP 0000226d: POP 0000226e: JUMP 0000226f: JUMPDEST 00002270: PUSH1 0x00 00002272: PUSH2 0x22c4 00002275: DUP3 00002276: PUSH1 0x40 00002278: MLOAD 00002279: DUP1 0000227a: PUSH1 0x40 0000227c: ADD 0000227d: PUSH1 0x40 0000227f: MSTORE 00002280: DUP1 00002281: PUSH1 0x20 00002283: DUP2 00002284: MSTORE 00002285: PUSH1 0x20 00002287: ADD 00002288: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564 000022a9: DUP2 000022aa: MSTORE 000022ab: POP 000022ac: DUP6 000022ad: PUSH1 0x01 000022af: PUSH1 0x01 000022b1: PUSH1 0xa0 000022b3: SHL 000022b4: SUB 000022b5: AND 000022b6: PUSH2 0x25e4 000022b9: SWAP1 000022ba: SWAP3 000022bb: SWAP2 000022bc: SWAP1 000022bd: PUSH4 0xffffffff 000022c2: AND 000022c3: JUMP 000022c4: JUMPDEST 000022c5: DUP1 000022c6: MLOAD 000022c7: SWAP1 000022c8: SWAP2 000022c9: POP 000022ca: ISZERO 000022cb: PUSH2 0x0f71 000022ce: JUMPI 000022cf: DUP1 000022d0: DUP1 000022d1: PUSH1 0x20 000022d3: ADD 000022d4: SWAP1 000022d5: MLOAD 000022d6: PUSH1 0x20 000022d8: DUP2 000022d9: LT 000022da: ISZERO 000022db: PUSH2 0x22e3 000022de: JUMPI 000022df: PUSH1 0x00 000022e1: DUP1 000022e2: REVERT 000022e3: JUMPDEST 000022e4: POP 000022e5: MLOAD 000022e6: PUSH2 0x0f71 000022e9: JUMPI 000022ea: PUSH1 0x40 000022ec: MLOAD 000022ed: PUSH3 0x461bcd 000022f1: PUSH1 0xe5 000022f3: SHL 000022f4: DUP2 000022f5: MSTORE 000022f6: PUSH1 0x04 000022f8: ADD 000022f9: DUP1 000022fa: DUP1 000022fb: PUSH1 0x20 000022fd: ADD 000022fe: DUP3 000022ff: DUP2 00002300: SUB 00002301: DUP3 00002302: MSTORE 00002303: PUSH1 0x2a 00002305: DUP2 00002306: MSTORE 00002307: PUSH1 0x20 00002309: ADD 0000230a: DUP1 0000230b: PUSH2 0x2a1f 0000230e: PUSH1 0x2a 00002310: SWAP2 00002311: CODECOPY 00002312: PUSH1 0x40 00002314: ADD 00002315: SWAP2 00002316: POP 00002317: POP 00002318: PUSH1 0x40 0000231a: MLOAD 0000231b: DUP1 0000231c: SWAP2 0000231d: SUB 0000231e: SWAP1 0000231f: REVERT 00002320: JUMPDEST 00002321: PUSH1 0x00 00002323: DUP3 00002324: DUP3 00002325: GT 00002326: ISZERO 00002327: PUSH2 0x2377 0000232a: JUMPI 0000232b: PUSH1 0x40 0000232d: DUP1 0000232e: MLOAD 0000232f: PUSH3 0x461bcd 00002333: PUSH1 0xe5 00002335: SHL 00002336: DUP2 00002337: MSTORE 00002338: PUSH1 0x20 0000233a: PUSH1 0x04 0000233c: DUP3 0000233d: ADD 0000233e: MSTORE 0000233f: PUSH1 0x1e 00002341: PUSH1 0x24 00002343: DUP3 00002344: ADD 00002345: MSTORE 00002346: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000 00002367: PUSH1 0x44 00002369: DUP3 0000236a: ADD 0000236b: MSTORE 0000236c: SWAP1 0000236d: MLOAD 0000236e: SWAP1 0000236f: DUP2 00002370: SWAP1 00002371: SUB 00002372: PUSH1 0x64 00002374: ADD 00002375: SWAP1 00002376: REVERT 00002377: JUMPDEST 00002378: POP 00002379: SWAP1 0000237a: SUB 0000237b: SWAP1 0000237c: JUMP 0000237d: JUMPDEST 0000237e: PUSH1 0x01 00002380: PUSH1 0x01 00002382: PUSH1 0xa0 00002384: SHL 00002385: SUB 00002386: DUP4 00002387: AND 00002388: PUSH2 0x23c2 0000238b: JUMPI 0000238c: PUSH1 0x40 0000238e: MLOAD 0000238f: PUSH3 0x461bcd 00002393: PUSH1 0xe5 00002395: SHL 00002396: DUP2 00002397: MSTORE 00002398: PUSH1 0x04 0000239a: ADD 0000239b: DUP1 0000239c: DUP1 0000239d: PUSH1 0x20 0000239f: ADD 000023a0: DUP3 000023a1: DUP2 000023a2: SUB 000023a3: DUP3 000023a4: MSTORE 000023a5: PUSH1 0x25 000023a7: DUP2 000023a8: MSTORE 000023a9: PUSH1 0x20 000023ab: ADD 000023ac: DUP1 000023ad: PUSH2 0x29d6 000023b0: PUSH1 0x25 000023b2: SWAP2 000023b3: CODECOPY 000023b4: PUSH1 0x40 000023b6: ADD 000023b7: SWAP2 000023b8: POP 000023b9: POP 000023ba: PUSH1 0x40 000023bc: MLOAD 000023bd: DUP1 000023be: SWAP2 000023bf: SUB 000023c0: SWAP1 000023c1: REVERT 000023c2: JUMPDEST 000023c3: PUSH1 0x01 000023c5: PUSH1 0x01 000023c7: PUSH1 0xa0 000023c9: SHL 000023ca: SUB 000023cb: DUP3 000023cc: AND 000023cd: PUSH2 0x2407 000023d0: JUMPI 000023d1: PUSH1 0x40 000023d3: MLOAD 000023d4: PUSH3 0x461bcd 000023d8: PUSH1 0xe5 000023da: SHL 000023db: DUP2 000023dc: MSTORE 000023dd: PUSH1 0x04 000023df: ADD 000023e0: DUP1 000023e1: DUP1 000023e2: PUSH1 0x20 000023e4: ADD 000023e5: DUP3 000023e6: DUP2 000023e7: SUB 000023e8: DUP3 000023e9: MSTORE 000023ea: PUSH1 0x23 000023ec: DUP2 000023ed: MSTORE 000023ee: PUSH1 0x20 000023f0: ADD 000023f1: DUP1 000023f2: PUSH2 0x2864 000023f5: PUSH1 0x23 000023f7: SWAP2 000023f8: CODECOPY 000023f9: PUSH1 0x40 000023fb: ADD 000023fc: SWAP2 000023fd: POP 000023fe: POP 000023ff: PUSH1 0x40 00002401: MLOAD 00002402: DUP1 00002403: SWAP2 00002404: SUB 00002405: SWAP1 00002406: REVERT 00002407: JUMPDEST 00002408: PUSH2 0x2412 0000240b: DUP4 0000240c: DUP4 0000240d: DUP4 0000240e: PUSH2 0x0f71 00002411: JUMP 00002412: JUMPDEST 00002413: PUSH1 0x00 00002415: PUSH1 0x34 00002417: PUSH1 0x00 00002419: DUP6 0000241a: PUSH1 0x01 0000241c: PUSH1 0x01 0000241e: PUSH1 0xa0 00002420: SHL 00002421: SUB 00002422: AND 00002423: PUSH1 0x01 00002425: PUSH1 0x01 00002427: PUSH1 0xa0 00002429: SHL 0000242a: SUB 0000242b: AND 0000242c: DUP2 0000242d: MSTORE 0000242e: PUSH1 0x20 00002430: ADD 00002431: SWAP1 00002432: DUP2 00002433: MSTORE 00002434: PUSH1 0x20 00002436: ADD 00002437: PUSH1 0x00 00002439: KECCAK256 0000243a: SLOAD 0000243b: SWAP1 0000243c: POP 0000243d: PUSH2 0x2461 00002440: DUP3 00002441: PUSH1 0x40 00002443: MLOAD 00002444: DUP1 00002445: PUSH1 0x60 00002447: ADD 00002448: PUSH1 0x40 0000244a: MSTORE 0000244b: DUP1 0000244c: PUSH1 0x26 0000244e: DUP2 0000244f: MSTORE 00002450: PUSH1 0x20 00002452: ADD 00002453: PUSH2 0x28cb 00002456: PUSH1 0x26 00002458: SWAP2 00002459: CODECOPY 0000245a: DUP4 0000245b: SWAP2 0000245c: SWAP1 0000245d: PUSH2 0x1de0 00002460: JUMP 00002461: JUMPDEST 00002462: PUSH1 0x01 00002464: PUSH1 0x01 00002466: PUSH1 0xa0 00002468: SHL 00002469: SUB 0000246a: DUP1 0000246b: DUP7 0000246c: AND 0000246d: PUSH1 0x00 0000246f: SWAP1 00002470: DUP2 00002471: MSTORE 00002472: PUSH1 0x34 00002474: PUSH1 0x20 00002476: MSTORE 00002477: PUSH1 0x40 00002479: DUP1 0000247a: DUP3 0000247b: KECCAK256 0000247c: SWAP4 0000247d: SWAP1 0000247e: SWAP4 0000247f: SSTORE 00002480: SWAP1 00002481: DUP6 00002482: AND 00002483: DUP2 00002484: MSTORE 00002485: KECCAK256 00002486: SLOAD 00002487: PUSH2 0x2490 0000248a: DUP2 0000248b: DUP5 0000248c: PUSH2 0x1e3a 0000248f: JUMP 00002490: JUMPDEST 00002491: PUSH1 0x01 00002493: PUSH1 0x01 00002495: PUSH1 0xa0 00002497: SHL 00002498: SUB 00002499: DUP6 0000249a: AND 0000249b: PUSH1 0x00 0000249d: SWAP1 0000249e: DUP2 0000249f: MSTORE 000024a0: PUSH1 0x34 000024a2: PUSH1 0x20 000024a4: MSTORE 000024a5: PUSH1 0x40 000024a7: DUP2 000024a8: KECCAK256 000024a9: SWAP2 000024aa: SWAP1 000024ab: SWAP2 000024ac: SSTORE 000024ad: PUSH2 0x24b4 000024b0: PUSH2 0x1ee6 000024b3: JUMP 000024b4: JUMPDEST 000024b5: PUSH1 0x01 000024b7: PUSH1 0x01 000024b9: PUSH1 0xa0 000024bb: SHL 000024bc: SUB 000024bd: AND 000024be: EQ 000024bf: PUSH2 0x25dd 000024c2: JUMPI 000024c3: PUSH1 0x36 000024c5: SLOAD 000024c6: PUSH2 0x24cd 000024c9: PUSH2 0x1ee6 000024cc: JUMP 000024cd: JUMPDEST 000024ce: PUSH1 0x01 000024d0: PUSH1 0x01 000024d2: PUSH1 0xa0 000024d4: SHL 000024d5: SUB 000024d6: AND 000024d7: PUSH4 0x31873e2e 000024dc: DUP8 000024dd: DUP6 000024de: DUP5 000024df: PUSH1 0x40 000024e1: MLOAD 000024e2: DUP5 000024e3: PUSH4 0xffffffff 000024e8: AND 000024e9: PUSH1 0xe0 000024eb: SHL 000024ec: DUP2 000024ed: MSTORE 000024ee: PUSH1 0x04 000024f0: ADD 000024f1: DUP1 000024f2: DUP5 000024f3: PUSH1 0x01 000024f5: PUSH1 0x01 000024f7: PUSH1 0xa0 000024f9: SHL 000024fa: SUB 000024fb: AND 000024fc: DUP2 000024fd: MSTORE 000024fe: PUSH1 0x20 00002500: ADD 00002501: DUP4 00002502: DUP2 00002503: MSTORE 00002504: PUSH1 0x20 00002506: ADD 00002507: DUP3 00002508: DUP2 00002509: MSTORE 0000250a: PUSH1 0x20 0000250c: ADD 0000250d: SWAP4 0000250e: POP 0000250f: POP 00002510: POP 00002511: POP 00002512: PUSH1 0x00 00002514: PUSH1 0x40 00002516: MLOAD 00002517: DUP1 00002518: DUP4 00002519: SUB 0000251a: DUP2 0000251b: PUSH1 0x00 0000251d: DUP8 0000251e: DUP1 0000251f: EXTCODESIZE 00002520: ISZERO 00002521: DUP1 00002522: ISZERO 00002523: PUSH2 0x252b 00002526: JUMPI 00002527: PUSH1 0x00 00002529: DUP1 0000252a: REVERT 0000252b: JUMPDEST 0000252c: POP 0000252d: GAS 0000252e: CALL 0000252f: ISZERO 00002530: DUP1 00002531: ISZERO 00002532: PUSH2 0x253f 00002535: JUMPI 00002536: RETURNDATASIZE 00002537: PUSH1 0x00 00002539: DUP1 0000253a: RETURNDATACOPY 0000253b: RETURNDATASIZE 0000253c: PUSH1 0x00 0000253e: REVERT 0000253f: JUMPDEST 00002540: POP 00002541: POP 00002542: POP 00002543: POP 00002544: DUP5 00002545: PUSH1 0x01 00002547: PUSH1 0x01 00002549: PUSH1 0xa0 0000254b: SHL 0000254c: SUB 0000254d: AND 0000254e: DUP7 0000254f: PUSH1 0x01 00002551: PUSH1 0x01 00002553: PUSH1 0xa0 00002555: SHL 00002556: SUB 00002557: AND 00002558: EQ 00002559: PUSH2 0x25db 0000255c: JUMPI 0000255d: PUSH2 0x2564 00002560: PUSH2 0x1ee6 00002563: JUMP 00002564: JUMPDEST 00002565: PUSH1 0x01 00002567: PUSH1 0x01 00002569: PUSH1 0xa0 0000256b: SHL 0000256c: SUB 0000256d: AND 0000256e: PUSH4 0x31873e2e 00002573: DUP7 00002574: DUP5 00002575: DUP5 00002576: PUSH1 0x40 00002578: MLOAD 00002579: DUP5 0000257a: PUSH4 0xffffffff 0000257f: AND 00002580: PUSH1 0xe0 00002582: SHL 00002583: DUP2 00002584: MSTORE 00002585: PUSH1 0x04 00002587: ADD 00002588: DUP1 00002589: DUP5 0000258a: PUSH1 0x01 0000258c: PUSH1 0x01 0000258e: PUSH1 0xa0 00002590: SHL 00002591: SUB 00002592: AND 00002593: DUP2 00002594: MSTORE 00002595: PUSH1 0x20 00002597: ADD 00002598: DUP4 00002599: DUP2 0000259a: MSTORE 0000259b: PUSH1 0x20 0000259d: ADD 0000259e: DUP3 0000259f: DUP2 000025a0: MSTORE 000025a1: PUSH1 0x20 000025a3: ADD 000025a4: SWAP4 000025a5: POP 000025a6: POP 000025a7: POP 000025a8: POP 000025a9: PUSH1 0x00 000025ab: PUSH1 0x40 000025ad: MLOAD 000025ae: DUP1 000025af: DUP4 000025b0: SUB 000025b1: DUP2 000025b2: PUSH1 0x00 000025b4: DUP8 000025b5: DUP1 000025b6: EXTCODESIZE 000025b7: ISZERO 000025b8: DUP1 000025b9: ISZERO 000025ba: PUSH2 0x25c2 000025bd: JUMPI 000025be: PUSH1 0x00 000025c0: DUP1 000025c1: REVERT 000025c2: JUMPDEST 000025c3: POP 000025c4: GAS 000025c5: CALL 000025c6: ISZERO 000025c7: DUP1 000025c8: ISZERO 000025c9: PUSH2 0x25d6 000025cc: JUMPI 000025cd: RETURNDATASIZE 000025ce: PUSH1 0x00 000025d0: DUP1 000025d1: RETURNDATACOPY 000025d2: RETURNDATASIZE 000025d3: PUSH1 0x00 000025d5: REVERT 000025d6: JUMPDEST 000025d7: POP 000025d8: POP 000025d9: POP 000025da: POP 000025db: JUMPDEST 000025dc: POP 000025dd: JUMPDEST 000025de: POP 000025df: POP 000025e0: POP 000025e1: POP 000025e2: POP 000025e3: JUMP 000025e4: JUMPDEST 000025e5: PUSH1 0x60 000025e7: PUSH2 0x25f3 000025ea: DUP5 000025eb: DUP5 000025ec: PUSH1 0x00 000025ee: DUP6 000025ef: PUSH2 0x25fb 000025f2: JUMP 000025f3: JUMPDEST 000025f4: SWAP5 000025f5: SWAP4 000025f6: POP 000025f7: POP 000025f8: POP 000025f9: POP 000025fa: JUMP 000025fb: JUMPDEST 000025fc: PUSH1 0x60 000025fe: DUP3 000025ff: SELFBALANCE 00002600: LT 00002601: ISZERO 00002602: PUSH2 0x263c 00002605: JUMPI 00002606: PUSH1 0x40 00002608: MLOAD 00002609: PUSH3 0x461bcd 0000260d: PUSH1 0xe5 0000260f: SHL 00002610: DUP2 00002611: MSTORE 00002612: PUSH1 0x04 00002614: ADD 00002615: DUP1 00002616: DUP1 00002617: PUSH1 0x20 00002619: ADD 0000261a: DUP3 0000261b: DUP2 0000261c: SUB 0000261d: DUP3 0000261e: MSTORE 0000261f: PUSH1 0x26 00002621: DUP2 00002622: MSTORE 00002623: PUSH1 0x20 00002625: ADD 00002626: DUP1 00002627: PUSH2 0x28f1 0000262a: PUSH1 0x26 0000262c: SWAP2 0000262d: CODECOPY 0000262e: PUSH1 0x40 00002630: ADD 00002631: SWAP2 00002632: POP 00002633: POP 00002634: PUSH1 0x40 00002636: MLOAD 00002637: DUP1 00002638: SWAP2 00002639: SUB 0000263a: SWAP1 0000263b: REVERT 0000263c: JUMPDEST 0000263d: PUSH2 0x2645 00002640: DUP6 00002641: PUSH2 0x2756 00002644: JUMP 00002645: JUMPDEST 00002646: PUSH2 0x2696 00002649: JUMPI 0000264a: PUSH1 0x40 0000264c: DUP1 0000264d: MLOAD 0000264e: PUSH3 0x461bcd 00002652: PUSH1 0xe5 00002654: SHL 00002655: DUP2 00002656: MSTORE 00002657: PUSH1 0x20 00002659: PUSH1 0x04 0000265b: DUP3 0000265c: ADD 0000265d: MSTORE 0000265e: PUSH1 0x1d 00002660: PUSH1 0x24 00002662: DUP3 00002663: ADD 00002664: MSTORE 00002665: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 00002686: PUSH1 0x44 00002688: DUP3 00002689: ADD 0000268a: MSTORE 0000268b: SWAP1 0000268c: MLOAD 0000268d: SWAP1 0000268e: DUP2 0000268f: SWAP1 00002690: SUB 00002691: PUSH1 0x64 00002693: ADD 00002694: SWAP1 00002695: REVERT 00002696: JUMPDEST 00002697: PUSH1 0x00 00002699: DUP1 0000269a: DUP7 0000269b: PUSH1 0x01 0000269d: PUSH1 0x01 0000269f: PUSH1 0xa0 000026a1: SHL 000026a2: SUB 000026a3: AND 000026a4: DUP6 000026a5: DUP8 000026a6: PUSH1 0x40 000026a8: MLOAD 000026a9: DUP1 000026aa: DUP3 000026ab: DUP1 000026ac: MLOAD 000026ad: SWAP1 000026ae: PUSH1 0x20 000026b0: ADD 000026b1: SWAP1 000026b2: DUP1 000026b3: DUP4 000026b4: DUP4 000026b5: JUMPDEST 000026b6: PUSH1 0x20 000026b8: DUP4 000026b9: LT 000026ba: PUSH2 0x26d4 000026bd: JUMPI 000026be: DUP1 000026bf: MLOAD 000026c0: DUP3 000026c1: MSTORE 000026c2: PUSH1 0x1f 000026c4: NOT 000026c5: SWAP1 000026c6: SWAP3 000026c7: ADD 000026c8: SWAP2 000026c9: PUSH1 0x20 000026cb: SWAP2 000026cc: DUP3 000026cd: ADD 000026ce: SWAP2 000026cf: ADD 000026d0: PUSH2 0x26b5 000026d3: JUMP 000026d4: JUMPDEST 000026d5: PUSH1 0x01 000026d7: DUP4 000026d8: PUSH1 0x20 000026da: SUB 000026db: PUSH2 0x0100 000026de: EXP 000026df: SUB 000026e0: DUP1 000026e1: NOT 000026e2: DUP3 000026e3: MLOAD 000026e4: AND 000026e5: DUP2 000026e6: DUP5 000026e7: MLOAD 000026e8: AND 000026e9: DUP1 000026ea: DUP3 000026eb: OR 000026ec: DUP6 000026ed: MSTORE 000026ee: POP 000026ef: POP 000026f0: POP 000026f1: POP 000026f2: POP 000026f3: POP 000026f4: SWAP1 000026f5: POP 000026f6: ADD 000026f7: SWAP2 000026f8: POP 000026f9: POP 000026fa: PUSH1 0x00 000026fc: PUSH1 0x40 000026fe: MLOAD 000026ff: DUP1 00002700: DUP4 00002701: SUB 00002702: DUP2 00002703: DUP6 00002704: DUP8 00002705: GAS 00002706: CALL 00002707: SWAP3 00002708: POP 00002709: POP 0000270a: POP 0000270b: RETURNDATASIZE 0000270c: DUP1 0000270d: PUSH1 0x00 0000270f: DUP2 00002710: EQ 00002711: PUSH2 0x2736 00002714: JUMPI 00002715: PUSH1 0x40 00002717: MLOAD 00002718: SWAP2 00002719: POP 0000271a: PUSH1 0x1f 0000271c: NOT 0000271d: PUSH1 0x3f 0000271f: RETURNDATASIZE 00002720: ADD 00002721: AND 00002722: DUP3 00002723: ADD 00002724: PUSH1 0x40 00002726: MSTORE 00002727: RETURNDATASIZE 00002728: DUP3 00002729: MSTORE 0000272a: RETURNDATASIZE 0000272b: PUSH1 0x00 0000272d: PUSH1 0x20 0000272f: DUP5 00002730: ADD 00002731: RETURNDATACOPY 00002732: PUSH2 0x273b 00002735: JUMP 00002736: JUMPDEST 00002737: PUSH1 0x60 00002739: SWAP2 0000273a: POP 0000273b: JUMPDEST 0000273c: POP 0000273d: SWAP2 0000273e: POP 0000273f: SWAP2 00002740: POP 00002741: PUSH2 0x274b 00002744: DUP3 00002745: DUP3 00002746: DUP7 00002747: PUSH2 0x275c 0000274a: JUMP 0000274b: JUMPDEST 0000274c: SWAP8 0000274d: SWAP7 0000274e: POP 0000274f: POP 00002750: POP 00002751: POP 00002752: POP 00002753: POP 00002754: POP 00002755: JUMP 00002756: JUMPDEST 00002757: EXTCODESIZE 00002758: ISZERO 00002759: ISZERO 0000275a: SWAP1 0000275b: JUMP 0000275c: JUMPDEST 0000275d: PUSH1 0x60 0000275f: DUP4 00002760: ISZERO 00002761: PUSH2 0x276b 00002764: JUMPI 00002765: POP 00002766: DUP2 00002767: PUSH2 0x0a3a 0000276a: JUMP 0000276b: JUMPDEST 0000276c: DUP3 0000276d: MLOAD 0000276e: ISZERO 0000276f: PUSH2 0x277b 00002772: JUMPI 00002773: DUP3 00002774: MLOAD 00002775: DUP1 00002776: DUP5 00002777: PUSH1 0x20 00002779: ADD 0000277a: REVERT 0000277b: JUMPDEST 0000277c: PUSH1 0x40 0000277e: MLOAD 0000277f: PUSH3 0x461bcd 00002783: PUSH1 0xe5 00002785: SHL 00002786: DUP2 00002787: MSTORE 00002788: PUSH1 0x20 0000278a: PUSH1 0x04 0000278c: DUP3 0000278d: ADD 0000278e: DUP2 0000278f: DUP2 00002790: MSTORE 00002791: DUP5 00002792: MLOAD 00002793: PUSH1 0x24 00002795: DUP5 00002796: ADD 00002797: MSTORE 00002798: DUP5 00002799: MLOAD 0000279a: DUP6 0000279b: SWAP4 0000279c: SWAP2 0000279d: SWAP3 0000279e: DUP4 0000279f: SWAP3 000027a0: PUSH1 0x44 000027a2: ADD 000027a3: SWAP2 000027a4: SWAP1 000027a5: DUP6 000027a6: ADD 000027a7: SWAP1 000027a8: DUP1 000027a9: DUP4 000027aa: DUP4 000027ab: PUSH1 0x00 000027ad: DUP4 000027ae: ISZERO 000027af: PUSH2 0x08fb 000027b2: JUMPI 000027b3: DUP2 000027b4: DUP2 000027b5: ADD 000027b6: MLOAD 000027b7: DUP4 000027b8: DUP3 000027b9: ADD 000027ba: MSTORE 000027bb: PUSH1 0x20 000027bd: ADD 000027be: PUSH2 0x08e3 000027c1: JUMP 000027c2: JUMPDEST 000027c3: DUP3 000027c4: DUP1 000027c5: SLOAD 000027c6: PUSH1 0x01 000027c8: DUP2 000027c9: PUSH1 0x01 000027cb: AND 000027cc: ISZERO 000027cd: PUSH2 0x0100 000027d0: MUL 000027d1: SUB 000027d2: AND 000027d3: PUSH1 0x02 000027d5: SWAP1 000027d6: DIV 000027d7: SWAP1 000027d8: PUSH1 0x00 000027da: MSTORE 000027db: PUSH1 0x20 000027dd: PUSH1 0x00 000027df: KECCAK256 000027e0: SWAP1 000027e1: PUSH1 0x1f 000027e3: ADD 000027e4: PUSH1 0x20 000027e6: SWAP1 000027e7: DIV 000027e8: DUP2 000027e9: ADD 000027ea: SWAP3 000027eb: DUP3 000027ec: PUSH2 0x27f8 000027ef: JUMPI 000027f0: PUSH1 0x00 000027f2: DUP6 000027f3: SSTORE 000027f4: PUSH2 0x283e 000027f7: JUMP 000027f8: JUMPDEST 000027f9: DUP3 000027fa: PUSH1 0x1f 000027fc: LT 000027fd: PUSH2 0x2811 00002800: JUMPI 00002801: DUP1 00002802: MLOAD 00002803: PUSH1 0xff 00002805: NOT 00002806: AND 00002807: DUP4 00002808: DUP1 00002809: ADD 0000280a: OR 0000280b: DUP6 0000280c: SSTORE 0000280d: PUSH2 0x283e 00002810: JUMP 00002811: JUMPDEST 00002812: DUP3 00002813: DUP1 00002814: ADD 00002815: PUSH1 0x01 00002817: ADD 00002818: DUP6 00002819: SSTORE 0000281a: DUP3 0000281b: ISZERO 0000281c: PUSH2 0x283e 0000281f: JUMPI 00002820: SWAP2 00002821: DUP3 00002822: ADD 00002823: JUMPDEST 00002824: DUP3 00002825: DUP2 00002826: GT 00002827: ISZERO 00002828: PUSH2 0x283e 0000282b: JUMPI 0000282c: DUP3 0000282d: MLOAD 0000282e: DUP3 0000282f: SSTORE 00002830: SWAP2 00002831: PUSH1 0x20 00002833: ADD 00002834: SWAP2 00002835: SWAP1 00002836: PUSH1 0x01 00002838: ADD 00002839: SWAP1 0000283a: PUSH2 0x2823 0000283d: JUMP 0000283e: JUMPDEST 0000283f: POP 00002840: PUSH2 0x284a 00002843: SWAP3 00002844: SWAP2 00002845: POP 00002846: PUSH2 0x284e 00002849: JUMP 0000284a: JUMPDEST 0000284b: POP 0000284c: SWAP1 0000284d: JUMP 0000284e: JUMPDEST 0000284f: JUMPDEST 00002850: DUP1 00002851: DUP3 00002852: GT 00002853: ISZERO 00002854: PUSH2 0x284a 00002857: JUMPI 00002858: PUSH1 0x00 0000285a: DUP2 0000285b: SSTORE 0000285c: PUSH1 0x01 0000285e: ADD 0000285f: PUSH2 0x284f 00002862: JUMP 00002863: INVALID 00002864: GASLIMIT 00002865: MSTORE 00002866: NUMBER 00002867: ORIGIN 00002868: ADDRESS 00002869: GASPRICE 0000286a: KECCAK256 0000286b: PUSH21 0x72616e7366657220746f20746865207a65726f2061 00002881: PUSH5 0x6472657373 00002887: GASLIMIT 00002888: MSTORE 00002889: NUMBER 0000288a: ORIGIN 0000288b: ADDRESS 0000288c: GASPRICE 0000288d: KECCAK256 0000288e: PUSH3 0x75726e 00002892: KECCAK256 00002893: PUSH2 0x6d6f 00002896: PUSH22 0x6e7420657863656564732062616c616e636545524332 000028ad: ADDRESS 000028ae: GASPRICE 000028af: KECCAK256 000028b0: PUSH2 0x7070 000028b3: PUSH19 0x6f766520746f20746865207a65726f20616464 000028c7: PUSH19 0x65737345524332303a207472616e7366657220 000028db: PUSH2 0x6d6f 000028de: PUSH22 0x6e7420657863656564732062616c616e636541646472 000028f5: PUSH6 0x73733a20696e 000028fc: PUSH20 0x756666696369656e742062616c616e636520666f 00002911: PUSH19 0x2063616c6c45524332303a207472616e736665 00002925: PUSH19 0x20616d6f756e74206578636565647320616c6c 00002939: PUSH16 0x77616e6365436f6e747261637420696e 0000294a: PUSH20 0x74616e63652068617320616c7265616479206265 0000295f: PUSH6 0x6e20696e6974 00002966: PUSH10 0x616c697a6564556e6465 00002971: PUSH19 0x6c79696e672061737365742063616e206e6f74 00002985: KECCAK256 00002986: PUSH3 0x65207a 0000298a: PUSH6 0x726f20616464 00002991: PUSH19 0x657373ddf252ad1be2c89b69c2b068fc378daa 000029a5: SWAP6 000029a6: UNKNOWN(0x2B) 000029a7: UNKNOWN(0xA7) 000029a8: CALL 000029a9: PUSH4 0xc4a11628 000029ae: CREATE2 000029af: GAS 000029b0: UNKNOWN(0x4D) 000029b1: CREATE2 000029b2: UNKNOWN(0x23) 000029b3: UNKNOWN(0xB3) 000029b4: UNKNOWN(0xEF) 000029b5: GASLIMIT 000029b6: MSTORE 000029b7: NUMBER 000029b8: ORIGIN 000029b9: ADDRESS 000029ba: GASPRICE 000029bb: KECCAK256 000029bc: PUSH3 0x75726e 000029c0: KECCAK256 000029c1: PUSH7 0x726f6d20746865 000029c9: KECCAK256 000029ca: PUSH27 0x65726f206164647265737345524332303a207472616e7366657220 000029e6: PUSH7 0x726f6d20746865 000029ee: KECCAK256 000029ef: PUSH27 0x65726f206164647265737345524332303a20617070726f76652066 00002a0b: PUSH19 0x6f6d20746865207a65726f2061646472657373 00002a1f: MSTORE8 00002a20: PUSH2 0x6665 00002a23: GASLIMIT 00002a24: MSTORE 00002a25: NUMBER 00002a26: ORIGIN 00002a27: ADDRESS 00002a28: GASPRICE 00002a29: KECCAK256 00002a2a: GASLIMIT 00002a2b: MSTORE 00002a2c: NUMBER 00002a2d: ORIGIN 00002a2e: ADDRESS 00002a2f: KECCAK256 00002a30: PUSH16 0x7065726174696f6e20646964206e6f74 00002a41: KECCAK256 00002a42: PUSH20 0x75636365656445524332303a2064656372656173 00002a57: PUSH6 0x6420616c6c6f 00002a5e: PUSH24 0x616e63652062656c6f77207a65726fa26469706673582212 00002a77: KECCAK256 00002a78: PUSH20 0x505c26059da335cd55bae0ff13590c23ee3f9359 00002a8d: UNKNOWN(0xC4) 00002a8e: SMOD 00002a8f: PUSH25
| 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": "0xd505accf",
"selector": "0xd505accf",
"calldata_variants": [
"0xd505accf",
"0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd7020d0a",
"selector": "0xd7020d0a",
"calldata_variants": [
"0xd7020d0a",
"0xd7020d0a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf866c319",
"selector": "0xf866c319",
"calldata_variants": [
"0xf866c319",
"0xf866c3190000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb16a19de",
"selector": "0xb16a19de",
"calldata_variants": [
"0xb16a19de",
"0xb16a19de0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb1bf962d",
"selector": "0xb1bf962d",
"calldata_variants": [
"0xb1bf962d",
"0xb1bf962d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb9844d8d",
"selector": "0xb9844d8d",
"calldata_variants": [
"0xb9844d8d",
"0xb9844d8d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc222ec8a",
"selector": "0xc222ec8a",
"calldata_variants": [
"0xc222ec8a",
"0xc222ec8a0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 10343,
"type": "tx_origin_used"
},
{
"pc": 10378,
"type": "tx_origin_used"
},
{
"pc": 10680,
"type": "tx_origin_used"
},
{
"pc": 10790,
"type": "tx_origin_used"
},
{
"pc": 10797,
"type": "tx_origin_used"
}
]
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x70fcac2c1751d14aaa8a53ab47cb2562c5db1d18d07fc3eeae8d2b9008e22781
call_targets:
0x850e6306c2777e1a66b66680c7999240e7d312bf
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x70fcac2c1751d14aaa8a53ab47cb2562c5db1d18d07fc3eeae8d2b9008e22781",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x850e6306c2777e1a66b66680c7999240e7d312bf"
],
"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": "0xd505accf",
"selector": "0xd505accf",
"calldata_variants": [
"0xd505accf",
"0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd7020d0a",
"selector": "0xd7020d0a",
"calldata_variants": [
"0xd7020d0a",
"0xd7020d0a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf866c319",
"selector": "0xf866c319",
"calldata_variants": [
"0xf866c319",
"0xf866c3190000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb16a19de",
"selector": "0xb16a19de",
"calldata_variants": [
"0xb16a19de",
"0xb16a19de0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb1bf962d",
"selector": "0xb1bf962d",
"calldata_variants": [
"0xb1bf962d",
"0xb1bf962d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb9844d8d",
"selector": "0xb9844d8d",
"calldata_variants": [
"0xb9844d8d",
"0xb9844d8d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc222ec8a",
"selector": "0xc222ec8a",
"calldata_variants": [
"0xc222ec8a",
"0xc222ec8a0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 7417,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 8699,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 9518,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 6,
"guards_detected": [
{
"pc": 10343,
"type": "tx_origin_used"
},
{
"pc": 10378,
"type": "tx_origin_used"
},
{
"pc": 10680,
"type": "tx_origin_used"
},
{
"pc": 10790,
"type": "tx_origin_used"
},
{
"pc": 10797,
"type": "tx_origin_used"
}
]
}
|
| medium | upgradeability | codex | Unprotected initializer allows takeover of uninitialized proxy or post-upgrade reinitialization | 75 | no | — |
viewevidence_json{
"evidence": "`AToken.initialize` is `external` and only guarded by the `initializer` modifier; `VersionedInitializable` enforces revision ordering but does not restrict who can call the initializer.",
"locations": [
"contracts/contracts/protocol/tokenization/AToken.sol:69",
"contracts/contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol:32"
],
"recommendation": "Restrict `initialize` to a trusted admin (e.g., pool configurator/addresses provider) and invoke it atomically via `upgradeToAndCall` during deployment/upgrades. Consider adding an implementation-side initializer lock (e.g., OZ\u2019s `_disableInitializers`) to prevent initializing the logic contract directly.",
"exploit_scenario": "If a proxy is deployed without calling `initialize` in the same transaction (or an upgrade introduces a new revision), any external account can call `initialize` first and set `_pool`, `_treasury`, and `_underlyingAsset` to attacker-controlled values. That lets the attacker become the `onlyLendingPool` and mint/burn aTokens or call `transferUnderlyingTo`, potentially draining any underlying held by the token contract and permanently breaking the intended pool integration."
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0x8bffc655cec688e6fd25309af199eb27715768da690baf1a6a18dabc0d33d9f2
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0x8bffc655cec688e6fd25309af199eb27715768da690baf1a6a18dabc0d33d9f2",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xd505accf",
"selector": "0xd505accf",
"calldata_variants": [
"0xd505accf",
"0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd7020d0a",
"selector": "0xd7020d0a",
"calldata_variants": [
"0xd7020d0a",
"0xd7020d0a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf866c319",
"selector": "0xf866c319",
"calldata_variants": [
"0xf866c319",
"0xf866c3190000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb16a19de",
"selector": "0xb16a19de",
"calldata_variants": [
"0xb16a19de",
"0xb16a19de0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb1bf962d",
"selector": "0xb1bf962d",
"calldata_variants": [
"0xb1bf962d",
"0xb1bf962d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb9844d8d",
"selector": "0xb9844d8d",
"calldata_variants": [
"0xb9844d8d",
"0xb9844d8d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc222ec8a",
"selector": "0xc222ec8a",
"calldata_variants": [
"0xc222ec8a",
"0xc222ec8a0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 0,
"create2_count": 2
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x70fcac2c1751d14aaa8a53ab47cb2562c5db1d18d07fc3eeae8d2b9008e22781
call_targets:
0x850e6306c2777e1a66b66680c7999240e7d312bf
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x70fcac2c1751d14aaa8a53ab47cb2562c5db1d18d07fc3eeae8d2b9008e22781",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x850e6306c2777e1a66b66680c7999240e7d312bf"
],
"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": "0xd505accf",
"selector": "0xd505accf",
"calldata_variants": [
"0xd505accf",
"0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd7020d0a",
"selector": "0xd7020d0a",
"calldata_variants": [
"0xd7020d0a",
"0xd7020d0a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf866c319",
"selector": "0xf866c319",
"calldata_variants": [
"0xf866c319",
"0xf866c3190000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb16a19de",
"selector": "0xb16a19de",
"calldata_variants": [
"0xb16a19de",
"0xb16a19de0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb1bf962d",
"selector": "0xb1bf962d",
"calldata_variants": [
"0xb1bf962d",
"0xb1bf962d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb9844d8d",
"selector": "0xb9844d8d",
"calldata_variants": [
"0xb9844d8d",
"0xb9844d8d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc222ec8a",
"selector": "0xc222ec8a",
"calldata_variants": [
"0xc222ec8a",
"0xc222ec8a0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 7417,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 8699,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 9518,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 6,
"guards_detected": [
{
"pc": 10343,
"type": "tx_origin_used"
},
{
"pc": 10378,
"type": "tx_origin_used"
},
{
"pc": 10680,
"type": "tx_origin_used"
},
{
"pc": 10790,
"type": "tx_origin_used"
},
{
"pc": 10797,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 5
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 0,
"create2_count": 2
}
|
| 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": 12
}
|
| 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": 11
}
|