TW
Tripwire
Find contracts. Test them. Review real vulns.

Analysis Run

ec13adc9-d3c5-410d-a84d-202d987a4dca

complete
Chain ID
1
Address
Block Number
Created
Sun, Dec 28, 2025 12:40 PM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Untrusted DELEGATECALL target reachable
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30287 report.consolidate complete 1 / 1 3 months ago
73906 artifact.fetch complete 1 / 3 1 week ago
73907 tool.cast_disasm complete 1 / 3 1 week ago
73908 analysis.bundle complete 1 / 3 1 week ago
73909 capability.graph complete 1 / 3 1 week ago
73910 detector.run complete 1 / 3 1 week ago
73911 validation.fork complete 1 / 3 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no
Implementation:
Verified Source: yes

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
3
No findings?
no
Summary
Found 3 issues: user-triggerable delegatecall hook via extraData, oracle-manipulable center price, and 64-bit pool ID collisions.
View stderr
[codex:1380276] OpenAI Codex v0.77.0 (research preview)
[codex:1380276] --------
[codex:1380276] workdir: /tmp/codex-multi-46mjyx8g
[codex:1380276] model: gpt-5.2-codex
[codex:1380276] provider: openai
[codex:1380276] approval: never
[codex:1380276] sandbox: read-only
[codex:1380276] reasoning effort: xhigh
[codex:1380276] reasoning summaries: auto
[codex:1380276] session id: 019b64f3-1c11-73f1-bd4b-5e3628113671
[codex:1380276] --------
[codex:1380276] user
[codex:1380276] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1380276] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1380276] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1380276] 
[codex:1380276] Scope rules:
[codex:1380276] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1380276] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1380276] 
[codex:1380276] Output MUST be valid JSON matching the provided schema.
[codex:1380276] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1380276] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1380276] 
[codex:1380276] Output constraints (IMPORTANT):
[codex:1380276] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1380276] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1380276] mcp startup: no servers
[codex:1380276] 
[codex:1380276] thinking
[codex:1380276] **Preparing to read audit file**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc ls in /tmp/codex-multi-46mjyx8g succeeded in 5ms:
[codex:1380276] AUDIT_BUNDLE.txt
[codex:1380276] codex-output-schema.json
[codex:1380276] contracts
[codex:1380276] exec
[codex:1380276] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1380276] 
[codex:1380276] ================================================================================
[codex:1380276] FILE: contracts/contracts/infiniteProxy/interfaces/iProxy.sol
[codex:1380276] ================================================================================
[codex:1380276] // SPDX-License-Identifier: MIT
[codex:1380276] pragma solidity >=0.8.21 <=0.8.29;
[codex:1380276] 
[codex:1380276] interface IProxy {
[codex:1380276]     function setAdmin(address newAdmin_) external;
[codex:1380276] 
[codex:1380276]     function setDummyImplementation(address newDummyImplementation_) external;
[codex:1380276] 
[codex:1380276]     function addImplementation(address implementation_, bytes4[] calldata sigs_) external;
[codex:1380276] 
[codex:1380276]     function removeImplementation(address implementation_) external;
[codex:1380276] 
[codex:1380276]     function getAdmin() external view returns (address);
[codex:1380276] 
[codex:1380276]     function getDummyImplementation() external view returns (address);
[codex:1380276] 
[codex:1380276] thinking
[codex:1380276] **Analyzing large audit file**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc 'rg -n "''^FILE:" AUDIT_BUNDLE.txt' in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276] 4:FILE: contracts/contracts/infiniteProxy/interfaces/iProxy.sol
[codex:1380276] 30:FILE: contracts/contracts/libraries/addressCalcs.sol
[codex:1380276] 69:FILE: contracts/contracts/libraries/bigMathMinified.sol
[codex:1380276] 288:FILE: contracts/contracts/libraries/dexLiteSlotsLink.sol
[codex:1380276] 364:FILE: contracts/contracts/libraries/errorTypes.sol
[codex:1380276] 402:FILE: contracts/contracts/libraries/reentrancyLock.sol
[codex:1380276] 424:FILE: contracts/contracts/libraries/safeTransfer.sol
[codex:1380276] 525:FILE: contracts/contracts/liquidity/adminModule/structs.sol
[codex:1380276] 674:FILE: contracts/contracts/liquidity/interfaces/iLiquidity.sol
[codex:1380276] 807:FILE: contracts/contracts/protocols/dexLite/core/coreInternals.sol
[codex:1380276] 1097:FILE: contracts/contracts/protocols/dexLite/core/errors.sol
[codex:1380276] 1126:FILE: contracts/contracts/protocols/dexLite/core/helpers.sol
[codex:1380276] 1665:FILE: contracts/contracts/protocols/dexLite/core/main.sol
[codex:1380276] 1882:FILE: contracts/contracts/protocols/dexLite/other/commonImport.sol
[codex:1380276] 1892:FILE: contracts/contracts/protocols/dexLite/other/constantVariables.sol
[codex:1380276] 1959:FILE: contracts/contracts/protocols/dexLite/other/events.sol
[codex:1380276] 1977:FILE: contracts/contracts/protocols/dexLite/other/immutableVariables.sol
[codex:1380276] 2001:FILE: contracts/contracts/protocols/dexLite/other/interfaces.sol
[codex:1380276] 2027:FILE: contracts/contracts/protocols/dexLite/other/structs.sol
[codex:1380276] 2048:FILE: contracts/contracts/protocols/dexLite/other/variables.sol
[codex:1380276] 
[codex:1380276] thinking
[codex:1380276] **Reviewing core contracts**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc "sed -n '424,524p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276] FILE: contracts/contracts/libraries/safeTransfer.sol
[codex:1380276] ================================================================================
[codex:1380276] // SPDX-License-Identifier: MIT OR Apache-2.0
[codex:1380276] pragma solidity >=0.8.21 <=0.8.29;
[codex:1380276] 
[codex:1380276] import { LibsErrorTypes as ErrorTypes } from "./errorTypes.sol";
[codex:1380276] 
[codex:1380276] /// @notice provides minimalistic methods for safe transfers, e.g. ERC20 safeTransferFrom
[codex:1380276] library SafeTransfer {
[codex:1380276]     uint256 internal constant MAX_NATIVE_TRANSFER_GAS = 20000; // pass max. 20k gas for native transfers
[codex:1380276] 
[codex:1380276]     error FluidSafeTransferError(uint256 errorId_);
[codex:1380276] 
[codex:1380276]     /// @dev Transfer `amount_` of `token_` from `from_` to `to_`, spending the approval given by `from_` to the
[codex:1380276]     /// calling contract. If `token_` returns no value, non-reverting calls are assumed to be successful.
[codex:1380276]     /// Minimally modified from Solmate SafeTransferLib (address as input param for token, Custom Error):
[codex:1380276]     /// https://github.com/transmissions11/solmate/blob/50e15bb566f98b7174da9b0066126a4c3e75e0fd/src/utils/SafeTransferLib.sol#L31-L63
[codex:1380276]     function safeTransferFrom(address token_, address from_, address to_, uint256 amount_) internal {
[codex:1380276]         bool success_;
[codex:1380276] 
[codex:1380276] 
[codex:1380276] thinking
[codex:1380276] **Browsing core contract files**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc "sed -n '807,1096p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276] FILE: contracts/contracts/protocols/dexLite/core/coreInternals.sol
[codex:1380276] ================================================================================
[codex:1380276] // SPDX-License-Identifier: BUSL-1.1
[codex:1380276] pragma solidity 0.8.29;
[codex:1380276] 
[codex:1380276] import "./helpers.sol";
[codex:1380276] 
[codex:1380276] abstract contract CoreInternals is Helpers {
[codex:1380276]     function _swapIn(
[codex:1380276]         DexKey calldata dexKey_,
[codex:1380276]         bool swap0To1_,
[codex:1380276]         uint256 amountIn_
[codex:1380276]     ) internal returns (uint256 amountOut_) {
[codex:1380276]         bytes8 dexId_ = bytes8(keccak256(abi.encode(dexKey_)));
[codex:1380276]         uint256 dexVariables_ = _dexVariables[dexId_];
[codex:1380276] 
[codex:1380276]         if (dexVariables_ == 0) {
[codex:1380276]             revert DexNotInitialized(dexId_);
[codex:1380276]         }
[codex:1380276] 
[codex:1380276] 
[codex:1380276] thinking
[codex:1380276] **Reviewing CoreInternals for reentrancy**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc "sed -n '1126,1664p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276] FILE: contracts/contracts/protocols/dexLite/core/helpers.sol
[codex:1380276] ================================================================================
[codex:1380276] // SPDX-License-Identifier: BUSL-1.1
[codex:1380276] pragma solidity 0.8.29;
[codex:1380276] import "./errors.sol";
[codex:1380276] import { DexLiteSlotsLink as DSL } from "../../../libraries/dexLiteSlotsLink.sol";
[codex:1380276] import { FixedPointMathLib } from "solmate/src/utils/FixedPointMathLib.sol";
[codex:1380276] import { AddressCalcs } from "../../../libraries/addressCalcs.sol";
[codex:1380276] import { BigMathMinified } from "../../../libraries/bigMathMinified.sol";
[codex:1380276] import { ReentrancyLock } from "../../../libraries/reentrancyLock.sol";
[codex:1380276] import { SafeTransfer } from "../../../libraries/safeTransfer.sol";
[codex:1380276] 
[codex:1380276] abstract contract Helpers is CommonImport {
[codex:1380276]     using BigMathMinified for uint256;
[codex:1380276] 
[codex:1380276]     modifier _reentrancyLock() {
[codex:1380276]         ReentrancyLock.lock();
[codex:1380276]         _;
[codex:1380276]         ReentrancyLock.unlock();
[codex:1380276]     }
[codex:1380276] 
[codex:1380276] thinking
[codex:1380276] **Reviewing token transfer and reentrancy risks**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc "sed -n '1665,1881p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-46mjyx8g succeeded in 5ms:
[codex:1380276] FILE: contracts/contracts/protocols/dexLite/core/main.sol
[codex:1380276] ================================================================================
[codex:1380276] // SPDX-License-Identifier: BUSL-1.1
[codex:1380276] pragma solidity 0.8.29;
[codex:1380276] 
[codex:1380276] import "./coreInternals.sol";
[codex:1380276] 
[codex:1380276] /// @title FluidDexLite
[codex:1380276] contract FluidDexLite is CoreInternals {
[codex:1380276]     constructor(address auth_, address liquidity_, address deployerContract_) {
[codex:1380276]         _isAuth[auth_] = 1;
[codex:1380276]         LIQUIDITY = IFluidLiquidity(liquidity_);
[codex:1380276]         DEPLOYER_CONTRACT = deployerContract_;
[codex:1380276]     }
[codex:1380276] 
[codex:1380276]     /// @notice Swap through a single dex pool
[codex:1380276]     /// @dev Uses _swapIn for positive amountSpecified_ (user provides input), _swapOut for negative (user receives output).
[codex:1380276]     /// @param dexKey_ The dex pool to swap through.
[codex:1380276]     /// @param swap0To1_ Whether to swap from token0 to token1 or vice versa.
[codex:1380276]     /// @param amountSpecified_ The amount to swap (positive for exact input, negative for exact output).
[codex:1380276] 
[codex:1380276] thinking
[codex:1380276] **Checking for error definitions**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc "sed -n '1097,1125p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276] FILE: contracts/contracts/protocols/dexLite/core/errors.sol
[codex:1380276] ================================================================================
[codex:1380276] // SPDX-License-Identifier: BUSL-1.1
[codex:1380276] pragma solidity 0.8.29;
[codex:1380276] import "../other/commonImport.sol";
[codex:1380276] 
[codex:1380276] // --- Custom Errors ---
[codex:1380276] error EstimateSwap(uint256 amountUnspecified);
[codex:1380276] error AmountLimitExceeded(uint256 amountUnspecified, uint256 amountLimit);
[codex:1380276] error AmountLimitNotMet(uint256 amountUnspecified, uint256 amountLimit);
[codex:1380276] error EmptyDexKeysArray();
[codex:1380276] error InvalidPathLength(uint256 pathLength, uint256 dexKeysLength);
[codex:1380276] error InvalidAmountLimitsLength(uint256 dexKeysLength, uint256 amountLimitsLength);
[codex:1380276] error InvalidPathTokenOrder();
[codex:1380276] error UnauthorizedCaller(address caller);
[codex:1380276] error DexNotInitialized(bytes32 dexId);
[codex:1380276] error AdjustedSupplyOverflow(bytes32 dexId, uint256 token0AdjustedSupply, uint256 token1AdjustedSupply);
[codex:1380276] error ZeroAddress();
[codex:1380276] error InvalidPower(uint256 power);
[codex:1380276] error InvalidSwapAmounts(uint256 adjustedAmount);
[codex:1380276] 
[codex:1380276] thinking
[codex:1380276] **Inspecting commonImport file**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc "sed -n '1882,1976p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276] FILE: contracts/contracts/protocols/dexLite/other/commonImport.sol
[codex:1380276] ================================================================================
[codex:1380276] // SPDX-License-Identifier: BUSL-1.1
[codex:1380276] pragma solidity 0.8.29;
[codex:1380276] 
[codex:1380276] import "./variables.sol";
[codex:1380276] 
[codex:1380276] abstract contract CommonImport is Variables {}
[codex:1380276] 
[codex:1380276] ================================================================================
[codex:1380276] FILE: contracts/contracts/protocols/dexLite/other/constantVariables.sol
[codex:1380276] ================================================================================
[codex:1380276] // SPDX-License-Identifier: BUSL-1.1
[codex:1380276] pragma solidity 0.8.29;
[codex:1380276] 
[codex:1380276] import "./events.sol";
[codex:1380276] 
[codex:1380276] abstract contract ConstantVariables {
[codex:1380276]     /*//////////////////////////////////////////////////////////////
[codex:1380276]                                 CONSTANTS
[codex:1380276] 
[codex:1380276] thinking
[codex:1380276] **Inspecting liquidity interfaces**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc "sed -n '674,806p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276] FILE: contracts/contracts/liquidity/interfaces/iLiquidity.sol
[codex:1380276] ================================================================================
[codex:1380276] //SPDX-License-Identifier: MIT
[codex:1380276] pragma solidity >=0.8.21 <=0.8.29;
[codex:1380276] 
[codex:1380276] import { IProxy } from "../../infiniteProxy/interfaces/iProxy.sol";
[codex:1380276] import { Structs as AdminModuleStructs } from "../adminModule/structs.sol";
[codex:1380276] 
[codex:1380276] interface IFluidLiquidityAdmin {
[codex:1380276]     /// @notice adds/removes auths. Auths generally could be contracts which can have restricted actions defined on contract.
[codex:1380276]     ///         auths can be helpful in reducing governance overhead where it's not needed.
[codex:1380276]     /// @param authsStatus_ array of structs setting allowed status for an address.
[codex:1380276]     ///                     status true => add auth, false => remove auth
[codex:1380276]     function updateAuths(AdminModuleStructs.AddressBool[] calldata authsStatus_) external;
[codex:1380276] 
[codex:1380276]     /// @notice adds/removes guardians. Only callable by Governance.
[codex:1380276]     /// @param guardiansStatus_ array of structs setting allowed status for an address.
[codex:1380276]     ///                         status true => add guardian, false => remove guardian
[codex:1380276]     function updateGuardians(AdminModuleStructs.AddressBool[] calldata guardiansStatus_) external;
[codex:1380276] 
[codex:1380276] 
[codex:1380276] 
[codex:1380276] 
[codex:1380276] 
[codex:1380276] thinking
[codex:1380276] **Evaluating complex reentrancy and oracle risks**
[codex:1380276] 
[codex:1380276] I’m carefully examining reentrancy protections involving transient storage and delegatecalls, noting how the fallback’s powerful delegatecall to governance-controlled modules could risk state corruption if those modules are compromised. Additionally, I’m inspecting risks tied to external oracle calls, including potential price manipulation and unchecked big number operations that could lead to overflow or invariant breaches. Overall, I’m weighing contract assumptions, upgradeability, and access controls to spot any subtle vulnerabilities.
[codex:1380276] thinking
[codex:1380276] **Analyzing initialization, delegatecall, and hash collision concerns**
[codex:1380276] 
[codex:1380276] I'm reviewing edge cases around contract deployment nonces, transient storage lock behavior when delegatecalls modify it, and how the powerful delegatecall fallback enables admin upgrades. I’m also considering risks from truncated 64-bit hashes used as dex IDs that might allow rare collisions, plus the implications of unvalidated swap parameters and interaction with external oracles. These nuanced details help me gauge subtle avenues for problems or misconfigurations.
[codex:1380276] thinking
[codex:1380276] **Evaluating swap logic, delegatecall risk, and numeric edge cases**
[codex:1380276] 
[codex:1380276] I'm digging into how swap initialization and key validation happen, noting that delegatecalls triggered by extraData create a high-trust plugin surface with potential for state changes or destruction if the module is compromised. I’m also checking numeric edge cases like division by zero or overflow in price calculations and how reentrancy and callbacks interplay with token transfers, shaping a careful view of subtle risks versus intended safeguards.
[codex:1380276] thinking
[codex:1380276] **Identifying key risks in oracle use and delegatecall design**
[codex:1380276] 
[codex:1380276] I'm focusing on potential attack vectors including oracle price manipulation via a direct external call, and a risky delegatecall path triggered by user-controlled extraData that delegates to an admin-set contract with full access to internal state. I’m also noting subtle numerical edge cases and how internal accounting updates without token transfers could desynchronize pool state if the extraData module is improperly implemented.
[codex:1380276] exec
[codex:1380276] /bin/bash -lc 'rg -n "EXTRA_DATA_SLOT" -n AUDIT_BUNDLE.txt' in /tmp/codex-multi-46mjyx8g succeeded in 8ms:
[codex:1380276] 1149:            extraDataAddress_ := sload(EXTRA_DATA_SLOT)
[codex:1380276] 1905:    bytes32 internal constant EXTRA_DATA_SLOT = 0x7e8134afb5ed35d36cb65e24b9a4712a52bb77d952806c1acf50970d2107797f;
[codex:1380276] 
[codex:1380276] thinking
[codex:1380276] **Evaluating potential security risks**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc 'ls contracts/contracts/protocols/dexLite/core' in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276] coreInternals.sol
[codex:1380276] errors.sol
[codex:1380276] helpers.sol
[codex:1380276] main.sol
[codex:1380276] 
[codex:1380276] thinking
[codex:1380276] **Locating line numbers for delegatecall in main.sol**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc "nl -ba contracts/contracts/protocols/dexLite/core/main.sol | sed -n '1,220p'" in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276]      1	// SPDX-License-Identifier: BUSL-1.1
[codex:1380276]      2	pragma solidity 0.8.29;
[codex:1380276]      3	
[codex:1380276]      4	import "./coreInternals.sol";
[codex:1380276]      5	
[codex:1380276]      6	/// @title FluidDexLite
[codex:1380276]      7	contract FluidDexLite is CoreInternals {
[codex:1380276]      8	    constructor(address auth_, address liquidity_, address deployerContract_) {
[codex:1380276]      9	        _isAuth[auth_] = 1;
[codex:1380276]     10	        LIQUIDITY = IFluidLiquidity(liquidity_);
[codex:1380276]     11	        DEPLOYER_CONTRACT = deployerContract_;
[codex:1380276]     12	    }
[codex:1380276]     13	
[codex:1380276]     14	    /// @notice Swap through a single dex pool
[codex:1380276]     15	    /// @dev Uses _swapIn for positive amountSpecified_ (user provides input), _swapOut for negative (user receives output).
[codex:1380276]     16	    /// @param dexKey_ The dex pool to swap through.
[codex:1380276]     17	    /// @param swap0To1_ Whether to swap from token0 to token1 or vice versa.
[codex:1380276]     18	    /// @param amountSpecified_ The amount to swap (positive for exact input, negative for exact output).
[codex:1380276]     19	    /// @param amountLimit_ The minimum/maximum amount for the unspecified side.
[codex:1380276]     20	    /// @param to_ The recipient address.
[codex:1380276] 
[codex:1380276] thinking
[codex:1380276] **Identifying delegatecall occurrences**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc "nl -ba contracts/contracts/protocols/dexLite/core/helpers.sol | sed -n '1,260p'" in /tmp/codex-multi-46mjyx8g succeeded in 7ms:
[codex:1380276]      1	// SPDX-License-Identifier: BUSL-1.1
[codex:1380276]      2	pragma solidity 0.8.29;
[codex:1380276]      3	import "./errors.sol";
[codex:1380276]      4	import { DexLiteSlotsLink as DSL } from "../../../libraries/dexLiteSlotsLink.sol";
[codex:1380276]      5	import { FixedPointMathLib } from "solmate/src/utils/FixedPointMathLib.sol";
[codex:1380276]      6	import { AddressCalcs } from "../../../libraries/addressCalcs.sol";
[codex:1380276]      7	import { BigMathMinified } from "../../../libraries/bigMathMinified.sol";
[codex:1380276]      8	import { ReentrancyLock } from "../../../libraries/reentrancyLock.sol";
[codex:1380276]      9	import { SafeTransfer } from "../../../libraries/safeTransfer.sol";
[codex:1380276]     10	
[codex:1380276]     11	abstract contract Helpers is CommonImport {
[codex:1380276]     12	    using BigMathMinified for uint256;
[codex:1380276]     13	
[codex:1380276]     14	    modifier _reentrancyLock() {
[codex:1380276]     15	        ReentrancyLock.lock();
[codex:1380276]     16	        _;
[codex:1380276]     17	        ReentrancyLock.unlock();
[codex:1380276]     18	    }
[codex:1380276]     19	
[codex:1380276]     20	    function _getExtraDataSlot() internal view returns (address extraDataAddress_) {
[codex:1380276] 
[codex:1380276] thinking
[codex:1380276] **Investigating _getPricesAndReserves calls**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc "nl -ba contracts/contracts/protocols/dexLite/core/helpers.sol | sed -n '220,460p'" in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276]    220	    ) internal returns (uint256 newCenterPrice_) {
[codex:1380276]    221	        uint256 oldCenterPrice_ = (dexVariables_ >> DSL.BITS_DEX_LITE_DEX_VARIABLES_CENTER_PRICE) & X40;
[codex:1380276]    222	        oldCenterPrice_ = (oldCenterPrice_ >> DEFAULT_EXPONENT_SIZE) << (oldCenterPrice_ & DEFAULT_EXPONENT_MASK);
[codex:1380276]    223	        uint256 centerPriceShift_ = _centerPriceShift[dexId_];
[codex:1380276]    224	        uint256 startTimeStamp_ = (centerPriceShift_ >> DSL.BITS_DEX_LITE_CENTER_PRICE_SHIFT_TIMESTAMP) & X33;
[codex:1380276]    225	
[codex:1380276]    226	        uint256 fromTimeStamp_ = (centerPriceShift_ >> DSL.BITS_DEX_LITE_CENTER_PRICE_SHIFT_LAST_INTERACTION_TIMESTAMP) & X33;
[codex:1380276]    227	        fromTimeStamp_ = fromTimeStamp_ > startTimeStamp_ ? fromTimeStamp_ : startTimeStamp_;
[codex:1380276]    228	
[codex:1380276]    229	        newCenterPrice_ = ICenterPrice(
[codex:1380276]    230	            AddressCalcs.addressCalc(DEPLOYER_CONTRACT, ((dexVariables_ >> DSL.BITS_DEX_LITE_DEX_VARIABLES_CENTER_PRICE_CONTRACT_ADDRESS) & X19)))
[codex:1380276]    231	            .centerPrice(dexKey_.token0, dexKey_.token1);
[codex:1380276]    232	        
[codex:1380276]    233	        unchecked {
[codex:1380276]    234	            uint256 priceShift_ = (oldCenterPrice_ * ((centerPriceShift_ >> DSL.BITS_DEX_LITE_CENTER_PRICE_SHIFT_PERCENT) & X20) * (block.timestamp - fromTimeStamp_)) 
[codex:1380276]    235	                                    / (((centerPriceShift_ >> DSL.BITS_DEX_LITE_CENTER_PRICE_SHIFT_TIME_TO_SHIFT) & X20) * SIX_DECIMALS);
[codex:1380276]    236	
[codex:1380276]    237	            if (newCenterPrice_ > oldCenterPrice_) {
[codex:1380276]    238	                // shift on positive side
[codex:1380276]    239	                oldCenterPrice_ += priceShift_;
[codex:1380276] 
[codex:1380276] thinking
[codex:1380276] **Searching for dexId line numbers**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc "nl -ba contracts/contracts/protocols/dexLite/core/coreInternals.sol | sed -n '1,200p'" in /tmp/codex-multi-46mjyx8g succeeded in 8ms:
[codex:1380276]      1	// SPDX-License-Identifier: BUSL-1.1
[codex:1380276]      2	pragma solidity 0.8.29;
[codex:1380276]      3	
[codex:1380276]      4	import "./helpers.sol";
[codex:1380276]      5	
[codex:1380276]      6	abstract contract CoreInternals is Helpers {
[codex:1380276]      7	    function _swapIn(
[codex:1380276]      8	        DexKey calldata dexKey_,
[codex:1380276]      9	        bool swap0To1_,
[codex:1380276]     10	        uint256 amountIn_
[codex:1380276]     11	    ) internal returns (uint256 amountOut_) {
[codex:1380276]     12	        bytes8 dexId_ = bytes8(keccak256(abi.encode(dexKey_)));
[codex:1380276]     13	        uint256 dexVariables_ = _dexVariables[dexId_];
[codex:1380276]     14	
[codex:1380276]     15	        if (dexVariables_ == 0) {
[codex:1380276]     16	            revert DexNotInitialized(dexId_);
[codex:1380276]     17	        }
[codex:1380276]     18	
[codex:1380276]     19	        uint256 token0AdjustedSupply_ = (dexVariables_ >> DSL.BITS_DEX_LITE_DEX_VARIABLES_TOKEN_0_TOTAL_SUPPLY_ADJUSTED) & X60;
[codex:1380276]     20	        uint256 token1AdjustedSupply_ = (dexVariables_ >> DSL.BITS_DEX_LITE_DEX_VARIABLES_TOKEN_1_TOTAL_SUPPLY_ADJUSTED) & X60;
[codex:1380276] 
[codex:1380276] thinking
[codex:1380276] **Identifying key code sections**
[codex:1380276] exec
[codex:1380276] /bin/bash -lc 'rg -n "_spell" -n contracts/contracts/protocols/dexLite/core/helpers.sol' in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276] 35:        _spell(extraDataAddress_, data_);
[codex:1380276] 518:    function _spell(address target_, bytes memory data_) internal returns (bytes memory response_) {
[codex:1380276] exec
[codex:1380276] /bin/bash -lc "nl -ba contracts/contracts/protocols/dexLite/core/helpers.sol | sed -n '500,560p'" in /tmp/codex-multi-46mjyx8g succeeded in 6ms:
[codex:1380276]    500	            if (msg.value > 0) {
[codex:1380276]    501	                revert InvalidMsgValue(); // msg.value should be 0 for non native tokens
[codex:1380276]    502	            }
[codex:1380276]    503	            if (isCallback_) {
[codex:1380276]    504	                uint256 tokenInBalance_ = IERC20(tokenIn_).balanceOf(address(this));
[codex:1380276]    505	                IDexLiteCallback(msg.sender).dexCallback(tokenIn_, amountIn_, callbackData_);
[codex:1380276]    506	                if ((IERC20(tokenIn_).balanceOf(address(this)) - tokenInBalance_) < amountIn_) {
[codex:1380276]    507	                    revert InsufficientERC20Received(IERC20(tokenIn_).balanceOf(address(this)) - tokenInBalance_, amountIn_);
[codex:1380276]    508	                }
[codex:1380276]    509	            } else {
[codex:1380276]    510	                SafeTransfer.safeTransferFrom(tokenIn_, msg.sender, address(this), amountIn_);
[codex:1380276]    511	            }
[codex:1380276]    512	        }
[codex:1380276]    513	    }
[codex:1380276]    514	
[codex:1380276]    515	    /// @dev            do any arbitrary call
[codex:1380276]    516	    /// @param target_  Address to which the call needs to be delegated
[codex:1380276]    517	    /// @param data_    Data to execute at the delegated address
[codex:1380276]    518	    function _spell(address target_, bytes memory data_) internal returns (bytes memory response_) {
[codex:1380276]    519	        assembly {
[codex:1380276] 
[codex:1380276] thinking
[codex:1380276] **Summarizing vulnerability findings and crafting JSON**
[codex:1380276] 
[codex:1380276] I'm organizing and categorizing three security findings related to user-triggerable delegatecall risks, oracle price manipulation, and pool ID hash collisions. I'm preparing a detailed JSON output with severity levels, exploit scenarios, recommendations, evidence, and file locations to provide a clear audit report as requested.
[codex:1380276] codex
[codex:1380276] {"no_findings":false,"summary":"Found 3 issues: user-triggerable delegatecall hook via extraData, oracle-manipulable center price, and 64-bit pool ID collisions.","findings":[{"severity":"medium","category":"upgradeability","title":"User-triggerable delegatecall hook enables full-state execution if extension is compromised","exploit_scenario":"Governance sets `EXTRA_DATA_SLOT` to an upgradeable module. An attacker exploits a bug or unprotected function in that module and calls `swapSingle`/`swapHop` with non-empty `extraData_`, causing the module to execute via `delegatecall` in DexLite’s context and overwrite `_dexVariables`/balances or even selfdestruct the contract.","recommendation":"Avoid `delegatecall` for user-triggerable hooks; use an external-call interface with explicit allowed selectors, or restrict `extraData_` usage to trusted callers and keep the extension immutable and tightly audited.","evidence":"`swapSingle`/`swapHop` route non-empty `extraData_` into `_callExtraDataSlot`, which performs a `delegatecall` via `_spell`.","locations":["contracts/contracts/protocols/dexLite/core/main.sol:38","contracts/contracts/protocols/dexLite/core/main.sol:129","contracts/contracts/protocols/dexLite/core/helpers.sol:30","contracts/contracts/protocols/dexLite/core/helpers.sol:518"]},{"severity":"medium","category":"oracle","title":"Center price uses external oracle without manipulation bounds","exploit_scenario":"If the `ICenterPrice` implementation relies on manipulable spot prices (e.g., AMM reserves), an attacker can skew the oracle in the same block, then call `swapSingle`/`swapHop` to trade against an artificial center price and extract value, leaving the pool with bad inventory once the oracle normalizes.","recommendation":"Use a manipulation-resistant oracle (TWAP/Chainlink), add sanity bounds against sudden price jumps, and/or cache prices and enforce minimum update intervals.","evidence":"`ICenterPrice.centerPrice` is called during swap pricing and its return value is used directly to compute reserves and swap amounts.","locations":["contracts/contracts/protocols/dexLite/core/helpers.sol:229","contracts/contracts/protocols/dexLite/core/helpers.sol:284"]},{"severity":"low","category":"other","title":"Dex pool ID truncation to 64 bits allows hash collisions","exploit_scenario":"A sufficiently resourced attacker can search for a `DexKey` whose `keccak256` prefix collides with an existing pool’s `bytes8` ID. Swaps using the colliding key would operate on the victim pool’s `dexVariables` while transferring attacker-chosen tokens, potentially corrupting accounting or draining any held balances of those tokens.","recommendation":"Use `bytes32` (full `keccak256`) as the mapping key or otherwise include the full hash to avoid collision risk.","evidence":"Pool IDs are derived as `bytes8(keccak256(abi.encode(dexKey_)))`.","locations":["contracts/contracts/protocols/dexLite/core/coreInternals.sol:12","contracts/contracts/protocols/dexLite/core/coreInternals.sol:153"]}]}
[codex:1380276] tokens used
[codex:1380276] 70,852
[codex:1380276] {"no_findings":false,"summary":"Found 3 issues: user-triggerable delegatecall hook via extraData, oracle-manipulable center price, and 64-bit pool ID collisions.","findings":[{"severity":"medium","category":"upgradeability","title":"User-triggerable delegatecall hook enables full-state execution if extension is compromised","exploit_scenario":"Governance sets `EXTRA_DATA_SLOT` to an upgradeable module. An attacker exploits a bug or unprotected function in that module and calls `swapSingle`/`swapHop` with non-empty `extraData_`, causing the module to execute via `delegatecall` in DexLite’s context and overwrite `_dexVariables`/balances or even selfdestruct the contract.","recommendation":"Avoid `delegatecall` for user-triggerable hooks; use an external-call interface with explicit allowed selectors, or restrict `extraData_` usage to trusted callers and keep the extension immutable and tightly audited.","evidence":"`swapSingle`/`swapHop` route non-empty `extraData_` into `_callExtraDataSlot`, which performs a `delegatecall` via `_spell`.","locations":["contracts/contracts/protocols/dexLite/core/main.sol:38","contracts/contracts/protocols/dexLite/core/main.sol:129","contracts/contracts/protocols/dexLite/core/helpers.sol:30","contracts/contracts/protocols/dexLite/core/helpers.sol:518"]},{"severity":"medium","category":"oracle","title":"Center price uses external oracle without manipulation bounds","exploit_scenario":"If the `ICenterPrice` implementation relies on manipulable spot prices (e.g., AMM reserves), an attacker can skew the oracle in the same block, then call `swapSingle`/`swapHop` to trade against an artificial center price and extract value, leaving the pool with bad inventory once the oracle normalizes.","recommendation":"Use a manipulation-resistant oracle (TWAP/Chainlink), add sanity bounds against sudden price jumps, and/or cache prices and enforce minimum update intervals.","evidence":"`ICenterPrice.centerPrice` is called during swap pricing and its return value is used directly to compute reserves and swap amounts.","locations":["contracts/contracts/protocols/dexLite/core/helpers.sol:229","contracts/contracts/protocols/dexLite/core/helpers.sol:284"]},{"severity":"low","category":"other","title":"Dex pool ID truncation to 64 bits allows hash collisions","exploit_scenario":"A sufficiently resourced attacker can search for a `DexKey` whose `keccak256` prefix collides with an existing pool’s `bytes8` ID. Swaps using the colliding key would operate on the victim pool’s `dexVariables` while transferring attacker-chosen tokens, potentially corrupting accounting or draining any held balances of those tokens.","recommendation":"Use `bytes32` (full `keccak256`) as the mapping key or otherwise include the full hash to avoid collision risk.","evidence":"Pool IDs are derived as `bytes8(keccak256(abi.encode(dexKey_)))`.","locations":["contracts/contracts/protocols/dexLite/core/coreInternals.sol:12","contracts/contracts/protocols/dexLite/core/coreInternals.sol:153"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-28T12:40:11.921175+00:00",
        "returncode": 0
    },
    "summary": "Found 3 issues: user-triggerable delegatecall hook via extraData, oracle-manipulable center price, and 64-bit pool ID collisions.",
    "raw_final": {
        "summary": "Found 3 issues: user-triggerable delegatecall hook via extraData, oracle-manipulable center price, and 64-bit pool ID collisions.",
        "findings": [
            {
                "title": "User-triggerable delegatecall hook enables full-state execution if extension is compromised",
                "category": "upgradeability",
                "evidence": "`swapSingle`/`swapHop` route non-empty `extraData_` into `_callExtraDataSlot`, which performs a `delegatecall` via `_spell`.",
                "severity": "medium",
                "locations": [
                    "contracts/contracts/protocols/dexLite/core/main.sol:38",
                    "contracts/contracts/protocols/dexLite/core/main.sol:129",
                    "contracts/contracts/protocols/dexLite/core/helpers.sol:30",
                    "contracts/contracts/protocols/dexLite/core/helpers.sol:518"
                ],
                "recommendation": "Avoid `delegatecall` for user-triggerable hooks; use an external-call interface with explicit allowed selectors, or restrict `extraData_` usage to trusted callers and keep the extension immutable and tightly audited.",
                "exploit_scenario": "Governance sets `EXTRA_DATA_SLOT` to an upgradeable module. An attacker exploits a bug or unprotected function in that module and calls `swapSingle`/`swapHop` with non-empty `extraData_`, causing the module to execute via `delegatecall` in DexLite\u2019s context and overwrite `_dexVariables`/balances or even selfdestruct the contract."
            },
            {
                "title": "Center price uses external oracle without manipulation bounds",
                "category": "oracle",
                "evidence": "`ICenterPrice.centerPrice` is called during swap pricing and its return value is used directly to compute reserves and swap amounts.",
                "severity": "medium",
                "locations": [
                    "contracts/contracts/protocols/dexLite/core/helpers.sol:229",
                    "contracts/contracts/protocols/dexLite/core/helpers.sol:284"
                ],
                "recommendation": "Use a manipulation-resistant oracle (TWAP/Chainlink), add sanity bounds against sudden price jumps, and/or cache prices and enforce minimum update intervals.",
                "exploit_scenario": "If the `ICenterPrice` implementation relies on manipulable spot prices (e.g., AMM reserves), an attacker can skew the oracle in the same block, then call `swapSingle`/`swapHop` to trade against an artificial center price and extract value, leaving the pool with bad inventory once the oracle normalizes."
            },
            {
                "title": "Dex pool ID truncation to 64 bits allows hash collisions",
                "category": "other",
                "evidence": "Pool IDs are derived as `bytes8(keccak256(abi.encode(dexKey_)))`.",
                "severity": "low",
                "locations": [
                    "contracts/contracts/protocols/dexLite/core/coreInternals.sol:12",
                    "contracts/contracts/protocols/dexLite/core/coreInternals.sol:153"
                ],
                "recommendation": "Use `bytes32` (full `keccak256`) as the mapping key or otherwise include the full hash to avoid collision risk.",
                "exploit_scenario": "A sufficiently resourced attacker can search for a `DexKey` whose `keccak256` prefix collides with an existing pool\u2019s `bytes8` ID. Swaps using the colliding key would operate on the victim pool\u2019s `dexVariables` while transferring attacker-chosen tokens, potentially corrupting accounting or draining any held balances of those tokens."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
1
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
11
EXT*/BALANCE
3
Total opcodes
7885
Flags
delegatecall_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x0037
0000000c: JUMPI
0000000d: PUSH0
0000000e: CALLDATALOAD
0000000f: PUSH1 0xe0
00000011: SHR
00000012: DUP1
00000013: PUSH4 0x7fc9d4ad
00000018: EQ
00000019: PUSH2 0x00f7
0000001c: JUMPI
0000001d: DUP1
0000001e: PUSH4 0xa3c779fd
00000023: EQ
00000024: PUSH2 0x011c
00000027: JUMPI
00000028: DUP1
00000029: PUSH4 0xb5c736e4
0000002e: EQ
0000002f: PUSH2 0x012f
00000032: JUMPI
00000033: PUSH2 0x003e
00000036: JUMP
00000037: JUMPDEST
00000038: CALLDATASIZE
00000039: PUSH2 0x003e
0000003c: JUMPI
0000003d: STOP
0000003e: JUMPDEST
0000003f: PUSH0
00000040: CALLDATASIZE
00000041: PUSH1 0x60
00000043: PUSH2 0x004a
00000046: PUSH2 0x014d
00000049: JUMP
0000004a: JUMPDEST
0000004b: CALLER
0000004c: PUSH0
0000004d: SWAP1
0000004e: DUP2
0000004f: MSTORE
00000050: PUSH1 0x20
00000052: DUP2
00000053: SWAP1
00000054: MSTORE
00000055: PUSH1 0x40
00000057: SWAP1
00000058: KECCAK256
00000059: SLOAD
0000005a: PUSH1 0x01
0000005c: EQ
0000005d: DUP1
0000005e: ISZERO
0000005f: SWAP1
00000060: PUSH2 0x0086
00000063: JUMPI
00000064: POP
00000065: CALLER
00000066: PUSH2 0x006d
00000069: PUSH2 0x019e
0000006c: JUMP
0000006d: JUMPDEST
0000006e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000083: AND
00000084: EQ
00000085: ISZERO
00000086: JUMPDEST
00000087: ISZERO
00000088: PUSH2 0x00c4
0000008b: JUMPI
0000008c: PUSH1 0x40
0000008e: MLOAD
0000008f: PUSH32 0xd86ad9cf00000000000000000000000000000000000000000000000000000000
000000b0: DUP2
000000b1: MSTORE
000000b2: CALLER
000000b3: PUSH1 0x04
000000b5: DUP3
000000b6: ADD
000000b7: MSTORE
000000b8: PUSH1 0x24
000000ba: ADD
000000bb: JUMPDEST
000000bc: PUSH1 0x40
000000be: MLOAD
000000bf: DUP1
000000c0: SWAP2
000000c1: SUB
000000c2: SWAP1
000000c3: REVERT
000000c4: JUMPDEST
000000c5: PUSH0
000000c6: DUP1
000000c7: PUSH2 0x00d2
000000ca: DUP5
000000cb: DUP7
000000cc: ADD
000000cd: DUP7
000000ce: PUSH2 0x37f8
000000d1: JUMP
000000d2: JUMPDEST
000000d3: SWAP2
000000d4: POP
000000d5: SWAP2
000000d6: POP
000000d7: PUSH2 0x00e0
000000da: DUP3
000000db: DUP3
000000dc: PUSH2 0x0271
000000df: JUMP
000000e0: JUMPDEST
000000e1: SWAP3
000000e2: POP
000000e3: POP
000000e4: POP
000000e5: PUSH2 0x00ec
000000e8: PUSH2 0x02b3
000000eb: JUMP
000000ec: JUMPDEST
000000ed: SWAP2
000000ee: POP
000000ef: POP
000000f0: DUP1
000000f1: MLOAD
000000f2: SWAP1
000000f3: PUSH1 0x20
000000f5: ADD
000000f6: RETURN
000000f7: JUMPDEST
000000f8: PUSH2 0x010a
000000fb: PUSH2 0x0105
000000fe: CALLDATASIZE
000000ff: PUSH1 0x04
00000101: PUSH2 0x395f
00000104: JUMP
00000105: JUMPDEST
00000106: PUSH2 0x02d8
00000109: JUMP
0000010a: JUMPDEST
0000010b: PUSH1 0x40
0000010d: MLOAD
0000010e: SWAP1
0000010f: DUP2
00000110: MSTORE
00000111: PUSH1 0x20
00000113: ADD
00000114: PUSH1 0x40
00000116: MLOAD
00000117: DUP1
00000118: SWAP2
00000119: SUB
0000011a: SWAP1
0000011b: RETURN
0000011c: JUMPDEST
0000011d: PUSH2 0x010a
00000120: PUSH2 0x012a
00000123: CALLDATASIZE
00000124: PUSH1 0x04
00000126: PUSH2 0x3a85
00000129: JUMP
0000012a: JUMPDEST
0000012b: PUSH2 0x0634
0000012e: JUMP
0000012f: JUMPDEST
00000130: CALLVALUE
00000131: DUP1
00000132: ISZERO
00000133: PUSH2 0x013a
00000136: JUMPI
00000137: PUSH0
00000138: PUSH0
00000139: REVERT
0000013a: JUMPDEST
0000013b: POP
0000013c: PUSH2 0x010a
0000013f: PUSH2 0x0149
00000142: CALLDATASIZE
00000143: PUSH1 0x04
00000145: PUSH2 0x3b88
00000148: JUMP
00000149: JUMPDEST
0000014a: SLOAD
0000014b: SWAP1
0000014c: JUMP
0000014d: JUMPDEST
0000014e: PUSH32 0xb9cde754d19acfff2b3ccabc66f256d3563a0bc5805da4205f01a9bda38a2df7
0000016f: TLOAD
00000170: ISZERO
00000171: PUSH2 0x0178
00000174: JUMPI
00000175: PUSH0
00000176: PUSH0
00000177: REVERT
00000178: JUMPDEST
00000179: PUSH1 0x01
0000017b: PUSH32 0xb9cde754d19acfff2b3ccabc66f256d3563a0bc5805da4205f01a9bda38a2df7
0000019c: TSTORE
0000019d: JUMP
0000019e: JUMPDEST
0000019f: PUSH1 0x40
000001a1: MLOAD
000001a2: PUSH32 0xb5c736e400000000000000000000000000000000000000000000000000000000
000001c3: DUP2
000001c4: MSTORE
000001c5: PUSH32 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103
000001e6: PUSH1 0x04
000001e8: DUP3
000001e9: ADD
000001ea: MSTORE
000001eb: PUSH0
000001ec: SWAP1
000001ed: PUSH32 0x00000000000000000000000052aa899454998be5b000ad077a46bbe360f4e497
0000020e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000223: AND
00000224: SWAP1
00000225: PUSH4 0xb5c736e4
0000022a: SWAP1
0000022b: PUSH1 0x24
0000022d: ADD
0000022e: PUSH1 0x20
00000230: PUSH1 0x40
00000232: MLOAD
00000233: DUP1
00000234: DUP4
00000235: SUB
00000236: DUP2
00000237: DUP7
00000238: GAS
00000239: STATICCALL
0000023a: ISZERO
0000023b: DUP1
0000023c: ISZERO
0000023d: PUSH2 0x0248
00000240: JUMPI
00000241: RETURNDATASIZE
00000242: PUSH0
00000243: PUSH0
00000244: RETURNDATACOPY
00000245: RETURNDATASIZE
00000246: PUSH0
00000247: REVERT
00000248: JUMPDEST
00000249: POP
0000024a: POP
0000024b: POP
0000024c: POP
0000024d: PUSH1 0x40
0000024f: MLOAD
00000250: RETURNDATASIZE
00000251: PUSH1 0x1f
00000253: NOT
00000254: PUSH1 0x1f
00000256: DUP3
00000257: ADD
00000258: AND
00000259: DUP3
0000025a: ADD
0000025b: DUP1
0000025c: PUSH1 0x40
0000025e: MSTORE
0000025f: POP
00000260: DUP2
00000261: ADD
00000262: SWAP1
00000263: PUSH2 0x026c
00000266: SWAP2
00000267: SWAP1
00000268: PUSH2 0x3b9f
0000026b: JUMP
0000026c: JUMPDEST
0000026d: SWAP1
0000026e: POP
0000026f: SWAP1
00000270: JUMP
00000271: JUMPDEST
00000272: PUSH1 0x60
00000274: PUSH0
00000275: PUSH0
00000276: DUP4
00000277: MLOAD
00000278: PUSH1 0x20
0000027a: DUP6
0000027b: ADD
0000027c: DUP7
0000027d: GAS
0000027e: DELEGATECALL
0000027f: RETURNDATASIZE
00000280: PUSH1 0x40
00000282: MLOAD
00000283: SWAP3
00000284: POP
00000285: PUSH1 0x1f
00000287: NOT
00000288: PUSH1 0x1f
0000028a: PUSH1 0x20
0000028c: DUP4
0000028d: ADD
0000028e: ADD
0000028f: AND
00000290: DUP4
00000291: ADD
00000292: PUSH1 0x40
00000294: MSTORE
00000295: DUP1
00000296: DUP4
00000297: MSTORE
00000298: DUP1
00000299: PUSH0
0000029a: PUSH1 0x20
0000029c: DUP6
0000029d: ADD
0000029e: RETURNDATACOPY
0000029f: DUP2
000002a0: PUSH2 0x02ab
000002a3: JUMPI
000002a4: DUP1
000002a5: PUSH0
000002a6: PUSH0
000002a7: RETURNDATACOPY
000002a8: DUP1
000002a9: PUSH0
000002aa: REVERT
000002ab: JUMPDEST
000002ac: POP
000002ad: POP
000002ae: SWAP3
000002af: SWAP2
000002b0: POP
000002b1: POP
000002b2: JUMP
000002b3: JUMPDEST
000002b4: PUSH0
000002b5: PUSH32 0xb9cde754d19acfff2b3ccabc66f256d3563a0bc5805da4205f01a9bda38a2df7
000002d6: TSTORE
000002d7: JUMP
000002d8: JUMPDEST
000002d9: PUSH0
000002da: PUSH2 0x02e1
000002dd: PUSH2 0x014d
000002e0: JUMP
000002e1: JUMPDEST
000002e2: PUSH0
000002e3: DUP10
000002e4: SGT
000002e5: ISZERO
000002e6: PUSH2 0x04a6
000002e9: JUMPI
000002ea: PUSH2 0x02f4
000002ed: DUP12
000002ee: DUP12
000002ef: DUP12
000002f0: PUSH2 0x0ff5
000002f3: JUMP
000002f4: JUMPDEST
000002f5: SWAP1
000002f6: POP
000002f7: DUP8
000002f8: DUP2
000002f9: LT
000002fa: ISZERO
000002fb: PUSH2 0x033a
000002fe: JUMPI
000002ff: PUSH1 0x40
00000301: MLOAD
00000302: PUSH32 0x552ac31300000000000000000000000000000000000000000000000000000000
00000323: DUP2
00000324: MSTORE
00000325: PUSH1 0x04
00000327: DUP2
00000328: ADD
00000329: DUP3
0000032a: SWAP1
0000032b: MSTORE
0000032c: PUSH1 0x24
0000032e: DUP2
0000032f: ADD
00000330: DUP10
00000331: SWAP1
00000332: MSTORE
00000333: PUSH1 0x44
00000335: ADD
00000336: PUSH2 0x00bb
00000339: JUMP
0000033a: JUMPDEST
0000033b: PUSH0
0000033c: DUP3
0000033d: SWAP1
0000033e: SUB
0000033f: PUSH2 0x039c
00000342: JUMPI
00000343: DUP10
00000344: ISZERO
00000345: PUSH2 0x037b
00000348: JUMPI
00000349: PUSH2 0x0376
0000034c: PUSH2 0x0358
0000034f: PUSH1 0x20
00000351: DUP14
00000352: ADD
00000353: DUP14
00000354: PUSH2 0x3bb6
00000357: JUMP
00000358: JUMPDEST
00000359: DUP11
0000035a: DUP14
0000035b: PUSH1 0x20
0000035d: ADD
0000035e: PUSH1 0x20
00000360: DUP2
00000361: ADD
00000362: SWAP1
00000363: PUSH2 0x036c
00000366: SWAP2
00000367: SWAP1
00000368: PUSH2 0x3bb6
0000036b: JUMP
0000036c: JUMPDEST
0000036d: DUP5
0000036e: DUP12
0000036f: DUP12
00000370: DUP12
00000371: DUP12
00000372: PUSH2 0x1794
00000375: JUMP
00000376: JUMPDEST
00000377: PUSH2 0x061e
0000037a: JUMP
0000037b: JUMPDEST
0000037c: PUSH2 0x0376
0000037f: PUSH2 0x038e
00000382: PUSH1 0x40
00000384: DUP14
00000385: ADD
00000386: PUSH1 0x20
00000388: DUP15
00000389: ADD
0000038a: PUSH2 0x3bb6
0000038d: JUMP
0000038e: JUMPDEST
0000038f: DUP11
00000390: PUSH2 0x036c
00000393: PUSH1 0x20
00000395: DUP16
00000396: ADD
00000397: DUP16
00000398: PUSH2 0x3bb6
0000039b: JUMP
0000039c: JUMPDEST
0000039d: PUSH1 0x40
0000039f: DUP1
000003a0: MLOAD
000003a1: DUP1
000003a2: DUP3
000003a3: ADD
000003a4: SWAP1
000003a5: SWAP2
000003a6: MSTORE
000003a7: PUSH1 0x0d
000003a9: DUP2
000003aa: MSTORE
000003ab: PUSH32 0x455354494d4154455f5357415000000000000000000000000000000000000000
000003cc: PUSH1 0x20
000003ce: SWAP1
000003cf: SWAP2
000003d0: ADD
000003d1: MSTORE
000003d2: PUSH32 0x9fbe8fb0ae8f68c4e90aaac8dee895c5ba9596470c68a601101c9d65a103a943
000003f3: PUSH2 0x03fc
000003f6: DUP4
000003f7: DUP6
000003f8: PUSH2 0x3bd8
000003fb: JUMP
000003fc: JUMPDEST
000003fd: SUB
000003fe: PUSH2 0x0436
00000401: JUMPI
00000402: PUSH1 0x40
00000404: MLOAD
00000405: PUSH32 0x5fea03c900000000000000000000000000000000000000000000000000000000
00000426: DUP2
00000427: MSTORE
00000428: PUSH1 0x04
0000042a: DUP2
0000042b: ADD
0000042c: DUP3
0000042d: SWAP1
0000042e: MSTORE
0000042f: PUSH1 0x24
00000431: ADD
00000432: PUSH2 0x00bb
00000435: JUMP
00000436: JUMPDEST
00000437: PUSH2 0x0376
0000043a: PUSH1 0x01
0000043c: DUP13
0000043d: DUP13
0000043e: DUP13
0000043f: DUP6
00000440: DUP9
00000441: DUP9
00000442: PUSH1 0x40
00000444: MLOAD
00000445: PUSH1 0x20
00000447: ADD
00000448: PUSH2 0x0456
0000044b: SWAP7
0000044c: SWAP6
0000044d: SWAP5
0000044e: SWAP4
0000044f: SWAP3
00000450: SWAP2
00000451: SWAP1
00000452: PUSH2 0x3cb2
00000455: JUMP
00000456: JUMPDEST
00000457: PUSH1 0x40
00000459: DUP1
0000045a: MLOAD
0000045b: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
0000047c: DUP2
0000047d: DUP5
0000047e: SUB
0000047f: ADD
00000480: DUP2
00000481: MSTORE
00000482: SWAP1
00000483: DUP3
00000484: SWAP1
00000485: MSTORE
00000486: PUSH2 0x0492
00000489: SWAP3
0000048a: SWAP2
0000048b: PUSH1 0x20
0000048d: ADD
0000048e: PUSH2 0x3ce6
00000491: JUMP
00000492: JUMPDEST
00000493: PUSH1 0x40
00000495: MLOAD
00000496: PUSH1 0x20
00000498: DUP2
00000499: DUP4
0000049a: SUB
0000049b: SUB
0000049c: DUP2
0000049d: MSTORE
0000049e: SWAP1
0000049f: PUSH1 0x40
000004a1: MSTORE
000004a2: PUSH2 0x1c54
000004a5: JUMP
000004a6: JUMPDEST
000004a7: PUSH2 0x04b9
000004aa: DUP12
000004ab: DUP12
000004ac: PUSH2 0x04b4
000004af: DUP13
000004b0: PUSH2 0x3d6f
000004b3: JUMP
000004b4: JUMPDEST
000004b5: PUSH2 0x1cdb
000004b8: JUMP
000004b9: JUMPDEST
000004ba: SWAP1
000004bb: POP
000004bc: DUP8
000004bd: DUP2
000004be: GT
000004bf: ISZERO
000004c0: PUSH2 0x04ff
000004c3: JUMPI
000004c4: PUSH1 0x40
000004c6: MLOAD
000004c7: PUSH32 0x97121c2100000000000000000000000000000000000000000000000000000000
000004e8: DUP2
000004e9: MSTORE
000004ea: PUSH1 0x04
000004ec: DUP2
000004ed: ADD
000004ee: DUP3
000004ef: SWAP1
000004f0: MSTORE
000004f1: PUSH1 0x24
000004f3: DUP2
000004f4: ADD
000004f5: DUP10
000004f6: SWAP1
000004f7: MSTORE
000004f8: PUSH1 0x44
000004fa: ADD
000004fb: PUSH2 0x00bb
000004fe: JUMP
000004ff: JUMPDEST
00000500: PUSH0
00000501: DUP3
00000502: SWAP1
00000503: SUB
00000504: PUSH2 0x0564
00000507: JUMPI
00000508: DUP10
00000509: ISZERO
0000050a: PUSH2 0x0543
0000050d: JUMPI
0000050e: PUSH2 0x0376
00000511: PUSH2 0x051d
00000514: PUSH1 0x20
00000516: DUP14
00000517: ADD
00000518: DUP14
00000519: PUSH2 0x3bb6
0000051c: JUMP
0000051d: JUMPDEST
0000051e: DUP3
0000051f: DUP14
00000520: PUSH1 0x20
00000522: ADD
00000523: PUSH1 0x20
00000525: DUP2
00000526: ADD
00000527: SWAP1
00000528: PUSH2 0x0531
0000052b: SWAP2
0000052c: SWAP1
0000052d: PUSH2 0x3bb6
00000530: JUMP
00000531: JUMPDEST
00000532: PUSH2 0x053a
00000535: DUP14
00000536: PUSH2 0x3d6f
00000539: JUMP
0000053a: JUMPDEST
0000053b: DUP12
0000053c: DUP12
0000053d: DUP12
0000053e: DUP12
0000053f: PUSH2 0x1794
00000542: JUMP
00000543: JUMPDEST
00000544: PUSH2 0x0376
00000547: PUSH2 0x0556
0000054a: PUSH1 0x40
0000054c: DUP14
0000054d: ADD
0000054e: PUSH1 0x20
00000550: DUP15
00000551: ADD
00000552: PUSH2 0x3bb6
00000555: JUMP
00000556: JUMPDEST
00000557: DUP3
00000558: PUSH2 0x0531
0000055b: PUSH1 0x20
0000055d: DUP16
0000055e: ADD
0000055f: DUP16
00000560: PUSH2 0x3bb6
00000563: JUMP
00000564: JUMPDEST
00000565: PUSH1 0x40
00000567: DUP1
00000568: MLOAD
00000569: DUP1
0000056a: DUP3
0000056b: ADD
0000056c: SWAP1
0000056d: SWAP2
0000056e: MSTORE
0000056f: PUSH1 0x0d
00000571: DUP2
00000572: MSTORE
00000573: PUSH32 0x455354494d4154455f5357415000000000000000000000000000000000000000
00000594: PUSH1 0x20
00000596: SWAP1
00000597: SWAP2
00000598: ADD
00000599: MSTORE
0000059a: PUSH32 0x9fbe8fb0ae8f68c4e90aaac8dee895c5ba9596470c68a601101c9d65a103a943
000005bb: PUSH2 0x05c4
000005be: DUP4
000005bf: DUP6
000005c0: PUSH2 0x3bd8
000005c3: JUMP
000005c4: JUMPDEST
000005c5: SUB
000005c6: PUSH2 0x05fe
000005c9: JUMPI
000005ca: PUSH1 0x40
000005cc: MLOAD
000005cd: PUSH32 0x5fea03c900000000000000000000000000000000000000000000000000000000
000005ee: DUP2
000005ef: MSTORE
000005f0: PUSH1 0x04
000005f2: DUP2
000005f3: ADD
000005f4: DUP3
000005f5: SWAP1
000005f6: MSTORE
000005f7: PUSH1 0x24
000005f9: ADD
000005fa: PUSH2 0x00bb
000005fd: JUMP
000005fe: JUMPDEST
000005ff: PUSH2 0x061e
00000602: PUSH1 0x01
00000604: DUP13
00000605: DUP13
00000606: DUP13
00000607: DUP6
00000608: DUP9
00000609: DUP9
0000060a: PUSH1 0x40
0000060c: MLOAD
0000060d: PUSH1 0x20
0000060f: ADD
00000610: PUSH2 0x0456
00000613: SWAP7
00000614: SWAP6
00000615: SWAP5
00000616: SWAP4
00000617: SWAP3
00000618: SWAP2
00000619: SWAP1
0000061a: PUSH2 0x3cb2
0000061d: JUMP
0000061e: JUMPDEST
0000061f: PUSH2 0x0626
00000622: PUSH2 0x02b3
00000625: JUMP
00000626: JUMPDEST
00000627: SWAP11
00000628: SWAP10
00000629: POP
0000062a: POP
0000062b: POP
0000062c: POP
0000062d: POP
0000062e: POP
0000062f: POP
00000630: POP
00000631: POP
00000632: POP
00000633: JUMP
00000634: JUMPDEST
00000635: PUSH0
00000636: PUSH2 0x063d
00000639: PUSH2 0x014d
0000063c: JUMP
0000063d: JUMPDEST
0000063e: PUSH0
0000063f: DUP7
00000640: SWAP1
00000641: SUB
00000642: PUSH2 0x0677
00000645: JUMPI
00000646: PUSH1 0x40
00000648: MLOAD
00000649: PUSH32 0xd15d5eeb00000000000000000000000000000000000000000000000000000000
0000066a: DUP2
0000066b: MSTORE
0000066c: PUSH1 0x04
0000066e: ADD
0000066f: PUSH1 0x40
00000671: MLOAD
00000672: DUP1
00000673: SWAP2
00000674: SUB
00000675: SWAP1
00000676: REVERT
00000677: JUMPDEST
00000678: DUP6
00000679: PUSH2 0x0683
0000067c: PUSH1 0x01
0000067e: DUP11
0000067f: PUSH2 0x3da5
00000682: JUMP
00000683: JUMPDEST
00000684: EQ
00000685: PUSH2 0x06c4
00000688: JUMPI
00000689: PUSH1 0x40
0000068b: MLOAD
0000068c: PUSH32 0x88b3170e00000000000000000000000000000000000000000000000000000000
000006ad: DUP2
000006ae: MSTORE
000006af: PUSH1 0x04
000006b1: DUP2
000006b2: ADD
000006b3: DUP10
000006b4: SWAP1
000006b5: MSTORE
000006b6: PUSH1 0x24
000006b8: DUP2
000006b9: ADD
000006ba: DUP8
000006bb: SWAP1
000006bc: MSTORE
000006bd: PUSH1 0x44
000006bf: ADD
000006c0: PUSH2 0x00bb
000006c3: JUMP
000006c4: JUMPDEST
000006c5: DUP3
000006c6: DUP7
000006c7: EQ
000006c8: PUSH2 0x0707
000006cb: JUMPI
000006cc: PUSH1 0x40
000006ce: MLOAD
000006cf: PUSH32 0xb932f13700000000000000000000000000000000000000000000000000000000
000006f0: DUP2
000006f1: MSTORE
000006f2: PUSH1 0x04
000006f4: DUP2
000006f5: ADD
000006f6: DUP5
000006f7: SWAP1
000006f8: MSTORE
000006f9: PUSH1 0x24
000006fb: DUP2
000006fc: ADD
000006fd: DUP8
000006fe: SWAP1
000006ff: MSTORE
00000700: PUSH1 0x44
00000702: ADD
00000703: PUSH2 0x00bb
00000706: JUMP
00000707: JUMPDEST
00000708: PUSH0
00000709: DUP6
0000070a: SGT
0000070b: ISZERO
0000070c: PUSH2 0x0b86
0000070f: JUMPI
00000710: POP
00000711: DUP4
00000712: PUSH0
00000713: JUMPDEST
00000714: DUP7
00000715: DUP2
00000716: LT
00000717: ISZERO
00000718: PUSH2 0x0a15
0000071b: JUMPI
0000071c: PUSH0
0000071d: DUP9
0000071e: DUP9
0000071f: DUP4
00000720: DUP2
00000721: DUP2
00000722: LT
00000723: PUSH2 0x072e
00000726: JUMPI
00000727: PUSH2 0x072e
0000072a: PUSH2 0x3db8
0000072d: JUMP
0000072e: JUMPDEST
0000072f: PUSH2 0x0744
00000732: SWAP3
00000733: PUSH1 0x20
00000735: PUSH1 0x60
00000737: SWAP1
00000738: SWAP3
00000739: MUL
0000073a: ADD
0000073b: SWAP1
0000073c: DUP2
0000073d: ADD
0000073e: SWAP2
0000073f: POP
00000740: PUSH2 0x3bb6
00000743: JUMP
00000744: JUMPDEST
00000745: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000075a: AND
0000075b: DUP12
0000075c: DUP12
0000075d: DUP5
0000075e: DUP2
0000075f: DUP2
00000760: LT
00000761: PUSH2 0x076c
00000764: JUMPI
00000765: PUSH2 0x076c
00000768: PUSH2 0x3db8
0000076b: JUMP
0000076c: JUMPDEST
0000076d: SWAP1
0000076e: POP
0000076f: PUSH1 0x20
00000771: MUL
00000772: ADD
00000773: PUSH1 0x20
00000775: DUP2
00000776: ADD
00000777: SWAP1
00000778: PUSH2 0x0781
0000077b: SWAP2
0000077c: SWAP1
0000077d: PUSH2 0x3bb6
00000780: JUMP
00000781: JUMPDEST
00000782: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000797: AND
00000798: EQ
00000799: DUP1
0000079a: ISZERO
0000079b: PUSH2 0x0821
0000079e: JUMPI
0000079f: POP
000007a0: DUP9
000007a1: DUP9
000007a2: DUP4
000007a3: DUP2
000007a4: DUP2
000007a5: LT
000007a6: PUSH2 0x07b1
000007a9: JUMPI
000007aa: PUSH2 0x07b1
000007ad: PUSH2 0x3db8
000007b0: JUMP
000007b1: JUMPDEST
000007b2: SWAP1
000007b3: POP
000007b4: PUSH1 0x60
000007b6: MUL
000007b7: ADD
000007b8: PUSH1 0x20
000007ba: ADD
000007bb: PUSH1 0x20
000007bd: DUP2
000007be: ADD
000007bf: SWAP1
000007c0: PUSH2 0x07c9
000007c3: SWAP2
000007c4: SWAP1
000007c5: PUSH2 0x3bb6
000007c8: JUMP
000007c9: JUMPDEST
000007ca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007df: AND
000007e0: DUP12
000007e1: DUP12
000007e2: DUP5
000007e3: PUSH1 0x01
000007e5: ADD
000007e6: DUP2
000007e7: DUP2
000007e8: LT
000007e9: PUSH2 0x07f4
000007ec: JUMPI
000007ed: PUSH2 0x07f4
000007f0: PUSH2 0x3db8
000007f3: JUMP
000007f4: JUMPDEST
000007f5: SWAP1
000007f6: POP
000007f7: PUSH1 0x20
000007f9: MUL
000007fa: ADD
000007fb: PUSH1 0x20
000007fd: DUP2
000007fe: ADD
000007ff: SWAP1
00000800: PUSH2 0x0809
00000803: SWAP2
00000804: SWAP1
00000805: PUSH2 0x3bb6
00000808: JUMP
00000809: JUMPDEST
0000080a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000081f: AND
00000820: EQ
00000821: JUMPDEST
00000822: ISZERO
00000823: PUSH2 0x082e
00000826: JUMPI
00000827: POP
00000828: PUSH1 0x01
0000082a: PUSH2 0x0971
0000082d: JUMP
0000082e: JUMPDEST
0000082f: DUP9
00000830: DUP9
00000831: DUP4
00000832: DUP2
00000833: DUP2
00000834: LT
00000835: PUSH2 0x0840
00000838: JUMPI
00000839: PUSH2 0x0840
0000083c: PUSH2 0x3db8
0000083f: JUMP
00000840: JUMPDEST
00000841: SWAP1
00000842: POP
00000843: PUSH1 0x60
00000845: MUL
00000846: ADD
00000847: PUSH1 0x20
00000849: ADD
0000084a: PUSH1 0x20
0000084c: DUP2
0000084d: ADD
0000084e: SWAP1
0000084f: PUSH2 0x0858
00000852: SWAP2
00000853: SWAP1
00000854: PUSH2 0x3bb6
00000857: JUMP
00000858: JUMPDEST
00000859: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000086e: AND
0000086f: DUP12
00000870: DUP12
00000871: DUP5
00000872: DUP2
00000873: DUP2
00000874: LT
00000875: PUSH2 0x0880
00000878: JUMPI
00000879: PUSH2 0x0880
0000087c: PUSH2 0x3db8
0000087f: JUMP
00000880: JUMPDEST
00000881: SWAP1
00000882: POP
00000883: PUSH1 0x20
00000885: MUL
00000886: ADD
00000887: PUSH1 0x20
00000889: DUP2
0000088a: ADD
0000088b: SWAP1
0000088c: PUSH2 0x0895
0000088f: SWAP2
00000890: SWAP1
00000891: PUSH2 0x3bb6
00000894: JUMP
00000895: JUMPDEST
00000896: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008ab: AND
000008ac: EQ
000008ad: DUP1
000008ae: ISZERO
000008af: PUSH2 0x0933
000008b2: JUMPI
000008b3: POP
000008b4: DUP9
000008b5: DUP9
000008b6: DUP4
000008b7: DUP2
000008b8: DUP2
000008b9: LT
000008ba: PUSH2 0x08c5
000008bd: JUMPI
000008be: PUSH2 0x08c5
000008c1: PUSH2 0x3db8
000008c4: JUMP
000008c5: JUMPDEST
000008c6: PUSH2 0x08db
000008c9: SWAP3
000008ca: PUSH1 0x20
000008cc: PUSH1 0x60
000008ce: SWAP1
000008cf: SWAP3
000008d0: MUL
000008d1: ADD
000008d2: SWAP1
000008d3: DUP2
000008d4: ADD
000008d5: SWAP2
000008d6: POP
000008d7: PUSH2 0x3bb6
000008da: JUMP
000008db: JUMPDEST
000008dc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008f1: AND
000008f2: DUP12
000008f3: DUP12
000008f4: DUP5
000008f5: PUSH1 0x01
000008f7: ADD
000008f8: DUP2
000008f9: DUP2
000008fa: LT
000008fb: PUSH2 0x0906
000008fe: JUMPI
000008ff: PUSH2 0x0906
00000902: PUSH2 0x3db8
00000905: JUMP
00000906: JUMPDEST
00000907: SWAP1
00000908: POP
00000909: PUSH1 0x20
0000090b: MUL
0000090c: ADD
0000090d: PUSH1 0x20
0000090f: DUP2
00000910: ADD
00000911: SWAP1
00000912: PUSH2 0x091b
00000915: SWAP2
00000916: SWAP1
00000917: PUSH2 0x3bb6
0000091a: JUMP
0000091b: JUMPDEST
0000091c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000931: AND
00000932: EQ
00000933: JUMPDEST
00000934: ISZERO
00000935: PUSH2 0x093f
00000938: JUMPI
00000939: POP
0000093a: PUSH0
0000093b: PUSH2 0x0971
0000093e: JUMP
0000093f: JUMPDEST
00000940: PUSH1 0x40
00000942: MLOAD
00000943: PUSH32 0x0a33bc9500000000000000000000000000000000000000000000000000000000
00000964: DUP2
00000965: MSTORE
00000966: PUSH1 0x04
00000968: ADD
00000969: PUSH1 0x40
0000096b: MLOAD
0000096c: DUP1
0000096d: SWAP2
0000096e: SUB
0000096f: SWAP1
00000970: REVERT
00000971: JUMPDEST
00000972: PUSH2 0x0993
00000975: DUP10
00000976: DUP10
00000977: DUP5
00000978: DUP2
00000979: DUP2
0000097a: LT
0000097b: PUSH2 0x0986
0000097e: JUMPI
0000097f: PUSH2 0x0986
00000982: PUSH2 0x3db8
00000985: JUMP
00000986: JUMPDEST
00000987: SWAP1
00000988: POP
00000989: PUSH1 0x60
0000098b: MUL
0000098c: ADD
0000098d: DUP3
0000098e: DUP6
0000098f: PUSH2 0x0ff5
00000992: JUMP
00000993: JUMPDEST
00000994: SWAP3
00000995: POP
00000996: DUP6
00000997: DUP6
00000998: DUP4
00000999: DUP2
0000099a: DUP2
0000099b: LT
0000099c: PUSH2 0x09a7
0000099f: JUMPI
000009a0: PUSH2 0x09a7
000009a3: PUSH2 0x3db8
000009a6: JUMP
000009a7: JUMPDEST
000009a8: SWAP1
000009a9: POP
000009aa: PUSH1 0x20
000009ac: MUL
000009ad: ADD
000009ae: CALLDATALOAD
000009af: DUP4
000009b0: LT
000009b1: ISZERO
000009b2: PUSH2 0x0a0c
000009b5: JUMPI
000009b6: DUP3
000009b7: DUP7
000009b8: DUP7
000009b9: DUP5
000009ba: DUP2
000009bb: DUP2
000009bc: LT
000009bd: PUSH2 0x09c8
000009c0: JUMPI
000009c1: PUSH2 0x09c8
000009c4: PUSH2 0x3db8
000009c7: JUMP
000009c8: JUMPDEST
000009c9: SWAP1
000009ca: POP
000009cb: PUSH1 0x20
000009cd: MUL
000009ce: ADD
000009cf: CALLDATALOAD
000009d0: PUSH1 0x40
000009d2: MLOAD
000009d3: PUSH32 0x552ac31300000000000000000000000000000000000000000000000000000000
000009f4: DUP2
000009f5: MSTORE
000009f6: PUSH1 0x04
000009f8: ADD
000009f9: PUSH2 0x00bb
000009fc: SWAP3
000009fd: SWAP2
000009fe: SWAP1
000009ff: SWAP2
00000a00: DUP3
00000a01: MSTORE
00000a02: PUSH1 0x20
00000a04: DUP3
00000a05: ADD
00000a06: MSTORE
00000a07: PUSH1 0x40
00000a09: ADD
00000a0a: SWAP1
00000a0b: JUMP
00000a0c: JUMPDEST
00000a0d: POP
00000a0e: PUSH1 0x01
00000a10: ADD
00000a11: PUSH2 0x0713
00000a14: JUMP
00000a15: JUMPDEST
00000a16: POP
00000a17: PUSH2 0x0a23
00000a1a: PUSH1 0x60
00000a1c: DUP4
00000a1d: ADD
00000a1e: DUP4
00000a1f: PUSH2 0x3de5
00000a22: JUMP
00000a23: JUMPDEST
00000a24: SWAP1
00000a25: POP
00000a26: PUSH0
00000a27: SUB
00000a28: PUSH2 0x0ab2
00000a2b: JUMPI
00000a2c: PUSH2 0x0aad
00000a2f: DUP10
00000a30: DUP10
00000a31: PUSH0
00000a32: DUP2
00000a33: DUP2
00000a34: LT
00000a35: PUSH2 0x0a40
00000a38: JUMPI
00000a39: PUSH2 0x0a40
00000a3c: PUSH2 0x3db8
00000a3f: JUMP
00000a40: JUMPDEST
00000a41: SWAP1
00000a42: POP
00000a43: PUSH1 0x20
00000a45: MUL
00000a46: ADD
00000a47: PUSH1 0x20
00000a49: DUP2
00000a4a: ADD
00000a4b: SWAP1
00000a4c: PUSH2 0x0a55
00000a4f: SWAP2
00000a50: SWAP1
00000a51: PUSH2 0x3bb6
00000a54: JUMP
00000a55: JUMPDEST
00000a56: DUP7
00000a57: DUP12
00000a58: DUP12
00000a59: DUP11
00000a5a: DUP2
00000a5b: DUP2
00000a5c: LT
00000a5d: PUSH2 0x0a68
00000a60: JUMPI
00000a61: PUSH2 0x0a68
00000a64: PUSH2 0x3db8
00000a67: JUMP
00000a68: JUMPDEST
00000a69: SWAP1
00000a6a: POP
00000a6b: PUSH1 0x20
00000a6d: MUL
00000a6e: ADD
00000a6f: PUSH1 0x20
00000a71: DUP2
00000a72: ADD
00000a73: SWAP1
00000a74: PUSH2 0x0a7d
00000a77: SWAP2
00000a78: SWAP1
00000a79: PUSH2 0x3bb6
00000a7c: JUMP
00000a7d: JUMPDEST
00000a7e: DUP5
00000a7f: PUSH2 0x0a8b
00000a82: PUSH1 0x20
00000a84: DUP9
00000a85: ADD
00000a86: DUP9
00000a87: PUSH2 0x3bb6
00000a8a: JUMP
00000a8b: JUMPDEST
00000a8c: PUSH2 0x0a9b
00000a8f: PUSH1 0x40
00000a91: DUP10
00000a92: ADD
00000a93: PUSH1 0x20
00000a95: DUP11
00000a96: ADD
00000a97: PUSH2 0x3e46
00000a9a: JUMP
00000a9b: JUMPDEST
00000a9c: PUSH2 0x0aa8
00000a9f: PUSH1 0x40
00000aa1: DUP11
00000aa2: ADD
00000aa3: DUP11
00000aa4: PUSH2 0x3de5
00000aa7: JUMP
00000aa8: JUMPDEST
00000aa9: PUSH2 0x1794
00000aac: JUMP
00000aad: JUMPDEST
00000aae: PUSH2 0x0fe1
00000ab1: JUMP
00000ab2: JUMPDEST
00000ab3: PUSH1 0x40
00000ab5: DUP1
00000ab6: MLOAD
00000ab7: DUP1
00000ab8: DUP3
00000ab9: ADD
00000aba: SWAP1
00000abb: SWAP2
00000abc: MSTORE
00000abd: PUSH1 0x0d
00000abf: DUP2
00000ac0: MSTORE
00000ac1: PUSH32 0x455354494d4154455f5357415000000000000000000000000000000000000000
00000ae2: PUSH1 0x20
00000ae4: SWAP1
00000ae5: SWAP2
00000ae6: ADD
00000ae7: MSTORE
00000ae8: PUSH32 0x9fbe8fb0ae8f68c4e90aaac8dee895c5ba9596470c68a601101c9d65a103a943
00000b09: PUSH2 0x0b15
00000b0c: PUSH1 0x60
00000b0e: DUP5
00000b0f: ADD
00000b10: DUP5
00000b11: PUSH2 0x3de5
00000b14: JUMP
00000b15: JUMPDEST
00000b16: PUSH2 0x0b1e
00000b19: SWAP2
00000b1a: PUSH2 0x3bd8
00000b1d: JUMP
00000b1e: JUMPDEST
00000b1f: SUB
00000b20: PUSH2 0x0b58
00000b23: JUMPI
00000b24: PUSH1 0x40
00000b26: MLOAD
00000b27: PUSH32 0x5fea03c900000000000000000000000000000000000000000000000000000000
00000b48: DUP2
00000b49: MSTORE
00000b4a: PUSH1 0x04
00000b4c: DUP2
00000b4d: ADD
00000b4e: DUP3
00000b4f: SWAP1
00000b50: MSTORE
00000b51: PUSH1 0x24
00000b53: ADD
00000b54: PUSH2 0x00bb
00000b57: JUMP
00000b58: JUMPDEST
00000b59: PUSH2 0x0aad
00000b5c: PUSH0
00000b5d: DUP11
00000b5e: DUP11
00000b5f: DUP11
00000b60: DUP11
00000b61: DUP11
00000b62: DUP8
00000b63: PUSH2 0x0b6f
00000b66: PUSH1 0x60
00000b68: DUP12
00000b69: ADD
00000b6a: DUP12
00000b6b: PUSH2 0x3de5
00000b6e: JUMP
00000b6f: JUMPDEST
00000b70: PUSH1 0x40
00000b72: MLOAD
00000b73: PUSH1 0x20
00000b75: ADD
00000b76: PUSH2 0x0456
00000b79: SWAP9
00000b7a: SWAP8
00000b7b: SWAP7
00000b7c: SWAP6
00000b7d: SWAP5
00000b7e: SWAP4
00000b7f: SWAP3
00000b80: SWAP2
00000b81: SWAP1
00000b82: PUSH2 0x3e5f
00000b85: JUMP
00000b86: JUMPDEST
00000b87: PUSH2 0x0b8f
00000b8a: DUP6
00000b8b: PUSH2 0x3d6f
00000b8e: JUMP
00000b8f: JUMPDEST
00000b90: SWAP1
00000b91: POP
00000b92: DUP6
00000b93: JUMPDEST
00000b94: DUP1
00000b95: ISZERO
00000b96: PUSH2 0x0ea6
00000b99: JUMPI
00000b9a: PUSH0
00000b9b: DUP9
00000b9c: DUP9
00000b9d: PUSH1 0x01
00000b9f: DUP5
00000ba0: SUB
00000ba1: DUP2
00000ba2: DUP2
00000ba3: LT
00000ba4: PUSH2 0x0baf
00000ba7: JUMPI
00000ba8: PUSH2 0x0baf
00000bab: PUSH2 0x3db8
00000bae: JUMP
00000baf: JUMPDEST
00000bb0: PUSH2 0x0bc5
00000bb3: SWAP3
00000bb4: PUSH1 0x20
00000bb6: PUSH1 0x60
00000bb8: SWAP1
00000bb9: SWAP3
00000bba: MUL
00000bbb: ADD
00000bbc: SWAP1
00000bbd: DUP2
00000bbe: ADD
00000bbf: SWAP2
00000bc0: POP
00000bc1: PUSH2 0x3bb6
00000bc4: JUMP
00000bc5: JUMPDEST
00000bc6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bdb: AND
00000bdc: DUP12
00000bdd: DUP12
00000bde: PUSH1 0x01
00000be0: DUP6
00000be1: SUB
00000be2: DUP2
00000be3: DUP2
00000be4: LT
00000be5: PUSH2 0x0bf0
00000be8: JUMPI
00000be9: PUSH2 0x0bf0
00000bec: PUSH2 0x3db8
00000bef: JUMP
00000bf0: JUMPDEST
00000bf1: SWAP1
00000bf2: POP
00000bf3: PUSH1 0x20
00000bf5: MUL
00000bf6: ADD
00000bf7: PUSH1 0x20
00000bf9: DUP2
00000bfa: ADD
00000bfb: SWAP1
00000bfc: PUSH2 0x0c05
00000bff: SWAP2
00000c00: SWAP1
00000c01: PUSH2 0x3bb6
00000c04: JUMP
00000c05: JUMPDEST
00000c06: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c1b: AND
00000c1c: EQ
00000c1d: DUP1
00000c1e: ISZERO
00000c1f: PUSH2 0x0ca5
00000c22: JUMPI
00000c23: POP
00000c24: DUP9
00000c25: DUP9
00000c26: PUSH1 0x01
00000c28: DUP5
00000c29: SUB
00000c2a: DUP2
00000c2b: DUP2
00000c2c: LT
00000c2d: PUSH2 0x0c38
00000c30: JUMPI
00000c31: PUSH2 0x0c38
00000c34: PUSH2 0x3db8
00000c37: JUMP
00000c38: JUMPDEST
00000c39: SWAP1
00000c3a: POP
00000c3b: PUSH1 0x60
00000c3d: MUL
00000c3e: ADD
00000c3f: PUSH1 0x20
00000c41: ADD
00000c42: PUSH1 0x20
00000c44: DUP2
00000c45: ADD
00000c46: SWAP1
00000c47: PUSH2 0x0c50
00000c4a: SWAP2
00000c4b: SWAP1
00000c4c: PUSH2 0x3bb6
00000c4f: JUMP
00000c50: JUMPDEST
00000c51: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c66: AND
00000c67: DUP12
00000c68: DUP12
00000c69: DUP5
00000c6a: DUP2
00000c6b: DUP2
00000c6c: LT
00000c6d: PUSH2 0x0c78
00000c70: JUMPI
00000c71: PUSH2 0x0c78
00000c74: PUSH2 0x3db8
00000c77: JUMP
00000c78: JUMPDEST
00000c79: SWAP1
00000c7a: POP
00000c7b: PUSH1 0x20
00000c7d: MUL
00000c7e: ADD
00000c7f: PUSH1 0x20
00000c81: DUP2
00000c82: ADD
00000c83: SWAP1
00000c84: PUSH2 0x0c8d
00000c87: SWAP2
00000c88: SWAP1
00000c89: PUSH2 0x3bb6
00000c8c: JUMP
00000c8d: JUMPDEST
00000c8e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ca3: AND
00000ca4: EQ
00000ca5: JUMPDEST
00000ca6: ISZERO
00000ca7: PUSH2 0x0cb2
00000caa: JUMPI
00000cab: POP
00000cac: PUSH1 0x01
00000cae: PUSH2 0x0dc5
00000cb1: JUMP
00000cb2: JUMPDEST
00000cb3: DUP9
00000cb4: DUP9
00000cb5: PUSH1 0x01
00000cb7: DUP5
00000cb8: SUB
00000cb9: DUP2
00000cba: DUP2
00000cbb: LT
00000cbc: PUSH2 0x0cc7
00000cbf: JUMPI
00000cc0: PUSH2 0x0cc7
00000cc3: PUSH2 0x3db8
00000cc6: JUMP
00000cc7: JUMPDEST
00000cc8: SWAP1
00000cc9: POP
00000cca: PUSH1 0x60
00000ccc: MUL
00000ccd: ADD
00000cce: PUSH1 0x20
00000cd0: ADD
00000cd1: PUSH1 0x20
00000cd3: DUP2
00000cd4: ADD
00000cd5: SWAP1
00000cd6: PUSH2 0x0cdf
00000cd9: SWAP2
00000cda: SWAP1
00000cdb: PUSH2 0x3bb6
00000cde: JUMP
00000cdf: JUMPDEST
00000ce0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000cf5: AND
00000cf6: DUP12
00000cf7: DUP12
00000cf8: PUSH1 0x01
00000cfa: DUP6
00000cfb: SUB
00000cfc: DUP2
00000cfd: DUP2
00000cfe: LT
00000cff: PUSH2 0x0d0a
00000d02: JUMPI
00000d03: PUSH2 0x0d0a
00000d06: PUSH2 0x3db8
00000d09: JUMP
00000d0a: JUMPDEST
00000d0b: SWAP1
00000d0c: POP
00000d0d: PUSH1 0x20
00000d0f: MUL
00000d10: ADD
00000d11: PUSH1 0x20
00000d13: DUP2
00000d14: ADD
00000d15: SWAP1
00000d16: PUSH2 0x0d1f
00000d19: SWAP2
00000d1a: SWAP1
00000d1b: PUSH2 0x3bb6
00000d1e: JUMP
00000d1f: JUMPDEST
00000d20: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d35: AND
00000d36: EQ
00000d37: DUP1
00000d38: ISZERO
00000d39: PUSH2 0x0dbd
00000d3c: JUMPI
00000d3d: POP
00000d3e: DUP9
00000d3f: DUP9
00000d40: PUSH1 0x01
00000d42: DUP5
00000d43: SUB
00000d44: DUP2
00000d45: DUP2
00000d46: LT
00000d47: PUSH2 0x0d52
00000d4a: JUMPI
00000d4b: PUSH2 0x0d52
00000d4e: PUSH2 0x3db8
00000d51: JUMP
00000d52: JUMPDEST
00000d53: PUSH2 0x0d68
00000d56: SWAP3
00000d57: PUSH1 0x20
00000d59: PUSH1 0x60
00000d5b: SWAP1
00000d5c: SWAP3
00000d5d: MUL
00000d5e: ADD
00000d5f: SWAP1
00000d60: DUP2
00000d61: ADD
00000d62: SWAP2
00000d63: POP
00000d64: PUSH2 0x3bb6
00000d67: JUMP
00000d68: JUMPDEST
00000d69: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d7e: AND
00000d7f: DUP12
00000d80: DUP12
00000d81: DUP5
00000d82: DUP2
00000d83: DUP2
00000d84: LT
00000d85: PUSH2 0x0d90
00000d88: JUMPI
00000d89: PUSH2 0x0d90
00000d8c: PUSH2 0x3db8
00000d8f: JUMP
00000d90: JUMPDEST
00000d91: SWAP1
00000d92: POP
00000d93: PUSH1 0x20
00000d95: MUL
00000d96: ADD
00000d97: PUSH1 0x20
00000d99: DUP2
00000d9a: ADD
00000d9b: SWAP1
00000d9c: PUSH2 0x0da5
00000d9f: SWAP2
00000da0: SWAP1
00000da1: PUSH2 0x3bb6
00000da4: JUMP
00000da5: JUMPDEST
00000da6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000dbb: AND
00000dbc: EQ
00000dbd: JUMPDEST
00000dbe: ISZERO
00000dbf: PUSH2 0x093f
00000dc2: JUMPI
00000dc3: POP
00000dc4: PUSH0
00000dc5: JUMPDEST
00000dc6: PUSH2 0x0df1
00000dc9: DUP10
00000dca: DUP10
00000dcb: PUSH2 0x0dd5
00000dce: PUSH1 0x01
00000dd0: DUP7
00000dd1: PUSH2 0x3da5
00000dd4: JUMP
00000dd5: JUMPDEST
00000dd6: DUP2
00000dd7: DUP2
00000dd8: LT
00000dd9: PUSH2 0x0de4
00000ddc: JUMPI
00000ddd: PUSH2 0x0de4
00000de0: PUSH2 0x3db8
00000de3: JUMP
00000de4: JUMPDEST
00000de5: SWAP1
00000de6: POP
00000de7: PUSH1 0x60
00000de9: MUL
00000dea: ADD
00000deb: DUP3
00000dec: DUP6
00000ded: PUSH2 0x1cdb
00000df0: JUMP
00000df1: JUMPDEST
00000df2: SWAP3
00000df3: POP
00000df4: DUP6
00000df5: DUP6
00000df6: PUSH2 0x0e00
00000df9: PUSH1 0x01
00000dfb: DUP6
00000dfc: PUSH2 0x3da5
00000dff: JUMP
00000e00: JUMPDEST
00000e01: DUP2
00000e02: DUP2
00000e03: LT
00000e04: PUSH2 0x0e0f
00000e07: JUMPI
00000e08: PUSH2 0x0e0f
00000e0b: PUSH2 0x3db8
00000e0e: JUMP
00000e0f: JUMPDEST
00000e10: SWAP1
00000e11: POP
00000e12: PUSH1 0x20
00000e14: MUL
00000e15: ADD
00000e16: CALLDATALOAD
00000e17: DUP4
00000e18: GT
00000e19: ISZERO
00000e1a: PUSH2 0x0e7e
00000e1d: JUMPI
00000e1e: DUP3
00000e1f: DUP7
00000e20: DUP7
00000e21: PUSH2 0x0e2b
00000e24: PUSH1 0x01
00000e26: DUP7
00000e27: PUSH2 0x3da5
00000e2a: JUMP
00000e2b: JUMPDEST
00000e2c: DUP2
00000e2d: DUP2
00000e2e: LT
00000e2f: PUSH2 0x0e3a
00000e32: JUMPI
00000e33: PUSH2 0x0e3a
00000e36: PUSH2 0x3db8
00000e39: JUMP
00000e3a: JUMPDEST
00000e3b: SWAP1
00000e3c: POP
00000e3d: PUSH1 0x20
00000e3f: MUL
00000e40: ADD
00000e41: CALLDATALOAD
00000e42: PUSH1 0x40
00000e44: MLOAD
00000e45: PUSH32 0x97121c2100000000000000000000000000000000000000000000000000000000
00000e66: DUP2
00000e67: MSTORE
00000e68: PUSH1 0x04
00000e6a: ADD
00000e6b: PUSH2 0x00bb
00000e6e: SWAP3
00000e6f: SWAP2
00000e70: SWAP1
00000e71: SWAP2
00000e72: DUP3
00000e73: MSTORE
00000e74: PUSH1 0x20
00000e76: DUP3
00000e77: ADD
00000e78: MSTORE
00000e79: PUSH1 0x40
00000e7b: ADD
00000e7c: SWAP1
00000e7d: JUMP
00000e7e: JUMPDEST
00000e7f: POP
00000e80: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00000ea1: ADD
00000ea2: PUSH2 0x0b93
00000ea5: JUMP
00000ea6: JUMPDEST
00000ea7: POP
00000ea8: PUSH2 0x0eb4
00000eab: PUSH1 0x60
00000ead: DUP4
00000eae: ADD
00000eaf: DUP4
00000eb0: PUSH2 0x3de5
00000eb3: JUMP
00000eb4: JUMPDEST
00000eb5: SWAP1
00000eb6: POP
00000eb7: PUSH0
00000eb8: SUB
00000eb9: PUSH2 0x0f24
00000ebc: JUMPI
00000ebd: PUSH2 0x0aad
00000ec0: DUP10
00000ec1: DUP10
00000ec2: PUSH0
00000ec3: DUP2
00000ec4: DUP2
00000ec5: LT
00000ec6: PUSH2 0x0ed1
00000ec9: JUMPI
00000eca: PUSH2 0x0ed1
00000ecd: PUSH2 0x3db8
00000ed0: JUMP
00000ed1: JUMPDEST
00000ed2: SWAP1
00000ed3: POP
00000ed4: PUSH1 0x20
00000ed6: MUL
00000ed7: ADD
00000ed8: PUSH1 0x20
00000eda: DUP2
00000edb: ADD
00000edc: SWAP1
00000edd: PUSH2 0x0ee6
00000ee0: SWAP2
00000ee1: SWAP1
00000ee2: PUSH2 0x3bb6
00000ee5: JUMP
00000ee6: JUMPDEST
00000ee7: DUP3
00000ee8: DUP12
00000ee9: DUP12
00000eea: DUP11
00000eeb: DUP2
00000eec: DUP2
00000eed: LT
00000eee: PUSH2 0x0ef9
00000ef1: JUMPI
00000ef2: PUSH2 0x0ef9
00000ef5: PUSH2 0x3db8
00000ef8: JUMP
00000ef9: JUMPDEST
00000efa: SWAP1
00000efb: POP
00000efc: PUSH1 0x20
00000efe: MUL
00000eff: ADD
00000f00: PUSH1 0x20
00000f02: DUP2
00000f03: ADD
00000f04: SWAP1
00000f05: PUSH2 0x0f0e
00000f08: SWAP2
00000f09: SWAP1
00000f0a: PUSH2 0x3bb6
00000f0d: JUMP
00000f0e: JUMPDEST
00000f0f: PUSH2 0x0f17
00000f12: DUP10
00000f13: PUSH2 0x3d6f
00000f16: JUMP
00000f17: JUMPDEST
00000f18: PUSH2 0x0a8b
00000f1b: PUSH1 0x20
00000f1d: DUP9
00000f1e: ADD
00000f1f: DUP9
00000f20: PUSH2 0x3bb6
00000f23: JUMP
00000f24: JUMPDEST
00000f25: PUSH1 0x40
00000f27: DUP1
00000f28: MLOAD
00000f29: DUP1
00000f2a: DUP3
00000f2b: ADD
00000f2c: SWAP1
00000f2d: SWAP2
00000f2e: MSTORE
00000f2f: PUSH1 0x0d
00000f31: DUP2
00000f32: MSTORE
00000f33: PUSH32 0x455354494d4154455f5357415000000000000000000000000000000000000000
00000f54: PUSH1 0x20
00000f56: SWAP1
00000f57: SWAP2
00000f58: ADD
00000f59: MSTORE
00000f5a: PUSH32 0x9fbe8fb0ae8f68c4e90aaac8dee895c5ba9596470c68a601101c9d65a103a943
00000f7b: PUSH2 0x0f87
00000f7e: PUSH1 0x60
00000f80: DUP5
00000f81: ADD
00000f82: DUP5
00000f83: PUSH2 0x3de5
00000f86: JUMP
00000f87: JUMPDEST
00000f88: PUSH2 0x0f90
00000f8b: SWAP2
00000f8c: PUSH2 0x3bd8
00000f8f: JUMP
00000f90: JUMPDEST
00000f91: SUB
00000f92: PUSH2 0x0fca
00000f95: JUMPI
00000f96: PUSH1 0x40
00000f98: MLOAD
00000f99: PUSH32 0x5fea03c900000000000000000000000000000000000000000000000000000000
00000fba: DUP2
00000fbb: MSTORE
00000fbc: PUSH1 0x04
00000fbe: DUP2
00000fbf: ADD
00000fc0: DUP3
00000fc1: SWAP1
00000fc2: MSTORE
00000fc3: PUSH1 0x24
00000fc5: ADD
00000fc6: PUSH2 0x00bb
00000fc9: JUMP
00000fca: JUMPDEST
00000fcb: PUSH2 0x0fe1
00000fce: PUSH0
00000fcf: DUP11
00000fd0: DUP11
00000fd1: DUP11
00000fd2: DUP11
00000fd3: DUP11
00000fd4: DUP8
00000fd5: PUSH2 0x0b6f
00000fd8: PUSH1 0x60
00000fda: DUP12
00000fdb: ADD
00000fdc: DUP12
00000fdd: PUSH2 0x3de5
00000fe0: JUMP
00000fe1: JUMPDEST
00000fe2: PUSH2 0x0fe9
00000fe5: PUSH2 0x02b3
00000fe8: JUMP
00000fe9: JUMPDEST
00000fea: SWAP9
00000feb: SWAP8
00000fec: POP
00000fed: POP
00000fee: POP
00000fef: POP
00000ff0: POP
00000ff1: POP
00000ff2: POP
00000ff3: POP
00000ff4: JUMP
00000ff5: JUMPDEST
00000ff6: PUSH0
00000ff7: PUSH0
00000ff8: DUP5
00000ff9: PUSH1 0x40
00000ffb: MLOAD
00000ffc: PUSH1 0x20
00000ffe: ADD
00000fff: PUSH2 0x1008
00001002: SWAP2
00001003: SWAP1
00001004: PUSH2 0x3f1d
00001007: JUMP
00001008: JUMPDEST
00001009: PUSH1 0x40
0000100b: DUP1
0000100c: MLOAD
0000100d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
0000102e: DUP2
0000102f: DUP5
00001030: SUB
00001031: ADD
00001032: DUP2
00001033: MSTORE
00001034: SWAP2
00001035: DUP2
00001036: MSTORE
00001037: DUP2
00001038: MLOAD
00001039: PUSH1 0x20
0000103b: SWAP3
0000103c: DUP4
0000103d: ADD
0000103e: KECCAK256
0000103f: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
00001060: DUP2
00001061: AND
00001062: PUSH0
00001063: SWAP1
00001064: DUP2
00001065: MSTORE
00001066: PUSH1 0x02
00001068: SWAP1
00001069: SWAP4
0000106a: MSTORE
0000106b: SWAP1
0000106c: DUP3
0000106d: KECCAK256
0000106e: SLOAD
0000106f: SWAP1
00001070: SWAP3
00001071: POP
00001072: SWAP1
00001073: DUP2
00001074: SWAP1
00001075: SUB
00001076: PUSH2 0x10cf
00001079: JUMPI
0000107a: PUSH1 0x40
0000107c: MLOAD
0000107d: PUSH32 0x7229481100000000000000000000000000000000000000000000000000000000
0000109e: DUP2
0000109f: MSTORE
000010a0: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
000010c1: DUP4
000010c2: AND
000010c3: PUSH1 0x04
000010c5: DUP3
000010c6: ADD
000010c7: MSTORE
000010c8: PUSH1 0x24
000010ca: ADD
000010cb: PUSH2 0x00bb
000010ce: JUMP
000010cf: JUMPDEST
000010d0: PUSH1 0x88
000010d2: DUP2
000010d3: SWAP1
000010d4: SHR
000010d5: PUSH8 0x0fffffffffffffff
000010de: AND
000010df: PUSH1 0xc4
000010e1: DUP3
000010e2: SWAP1
000010e3: SHR
000010e4: PUSH0
000010e5: DUP1
000010e6: DUP1
000010e7: PUSH2 0x10f3
000010ea: DUP12
000010eb: DUP8
000010ec: DUP10
000010ed: DUP9
000010ee: DUP9
000010ef: PUSH2 0x2435
000010f2: JUMP
000010f3: JUMPDEST
000010f4: SWAP3
000010f5: POP
000010f6: SWAP3
000010f7: POP
000010f8: SWAP3
000010f9: POP
000010fa: DUP10
000010fb: ISZERO
000010fc: PUSH2 0x12b8
000010ff: JUMPI
00001100: PUSH1 0x7e
00001102: DUP7
00001103: SWAP1
00001104: SHR
00001105: PUSH1 0x1f
00001107: AND
00001108: PUSH1 0x09
0000110a: DUP2
0000110b: GT
0000110c: ISZERO
0000110d: PUSH2 0x1132
00001110: JUMPI
00001111: PUSH2 0x111c
00001114: PUSH1 0x09
00001116: DUP3
00001117: SUB
00001118: PUSH2 0x2844
0000111b: JUMP
0000111c: JUMPDEST
0000111d: DUP11
0000111e: DUP2
0000111f: PUSH2 0x112a
00001122: JUMPI
00001123: PUSH2 0x112a
00001126: PUSH2 0x3f2b
00001129: JUMP
0000112a: JUMPDEST
0000112b: DIV
0000112c: SWAP10
0000112d: POP
0000112e: PUSH2 0x1143
00001131: JUMP
00001132: JUMPDEST
00001133: PUSH2 0x113e
00001136: DUP2
00001137: PUSH1 0x09
00001139: SUB
0000113a: PUSH2 0x2844
0000113d: JUMP
0000113e: JUMPDEST
0000113f: DUP11
00001140: MUL
00001141: SWAP10
00001142: POP
00001143: JUMPDEST
00001144: PUSH2 0x2710
00001147: DUP11
00001148: LT
00001149: DUP1
0000114a: PUSH2 0x115a
0000114d: JUMPI
0000114e: POP
0000114f: PUSH8 0x0fffffffffffffff
00001158: DUP11
00001159: GT
0000115a: JUMPDEST
0000115b: ISZERO
0000115c: PUSH2 0x1194
0000115f: JUMPI
00001160: PUSH1 0x40
00001162: MLOAD
00001163: PUSH32 0x17d5c4d200000000000000000000000000000000000000000000000000000000
00001184: DUP2
00001185: MSTORE
00001186: PUSH1 0x04
00001188: DUP2
00001189: ADD
0000118a: DUP12
0000118b: SWAP1
0000118c: MSTORE
0000118d: PUSH1 0x24
0000118f: ADD
00001190: PUSH2 0x00bb
00001193: JUMP
00001194: JUMPDEST
00001195: PUSH1 0x02
00001197: DUP4
00001198: DIV
00001199: DUP11
0000119a: GT
0000119b: ISZERO
0000119c: PUSH2 0x11db
0000119f: JUMPI
000011a0: PUSH1 0x40
000011a2: MLOAD
000011a3: PUSH32 0xfecbb38c00000000000000000000000000000000000000000000000000000000
000011c4: DUP2
000011c5: MSTORE
000011c6: PUSH1 0x04
000011c8: DUP2
000011c9: ADD
000011ca: DUP12
000011cb: SWAP1
000011cc: MSTORE
000011cd: PUSH1 0x24
000011cf: DUP2
000011d0: ADD
000011d1: DUP5
000011d2: SWAP1
000011d3: MSTORE
000011d4: PUSH1 0x44
000011d6: ADD
000011d7: PUSH2 0x00bb
000011da: JUMP
000011db: JUMPDEST
000011dc: PUSH3 0x0f4240
000011e0: PUSH2 0x1fff
000011e3: DUP9
000011e4: AND
000011e5: DUP12
000011e6: MUL
000011e7: DIV
000011e8: DUP1
000011e9: DUP12
000011ea: SUB
000011eb: DUP5
000011ec: DUP2
000011ed: ADD
000011ee: SWAP1
000011ef: DUP5
000011f0: MUL
000011f1: DUP2
000011f2: PUSH2 0x11fd
000011f5: JUMPI
000011f6: PUSH2 0x11fd
000011f9: PUSH2 0x3f2b
000011fc: JUMP
000011fd: JUMPDEST
000011fe: DIV
000011ff: SWAP10
00001200: POP
00001201: PUSH1 0x64
00001203: PUSH1 0x0d
00001205: DUP10
00001206: SWAP1
00001207: SHR
00001208: PUSH1 0x7f
0000120a: AND
0000120b: DUP3
0000120c: MUL
0000120d: DIV
0000120e: DUP12
0000120f: SUB
00001210: DUP8
00001211: ADD
00001212: SWAP7
00001213: POP
00001214: DUP10
00001215: DUP7
00001216: LT
00001217: ISZERO
00001218: PUSH2 0x1257
0000121b: JUMPI
0000121c: PUSH1 0x40
0000121e: MLOAD
0000121f: PUSH32 0x473f499f00000000000000000000000000000000000000000000000000000000
00001240: DUP2
00001241: MSTORE
00001242: PUSH1 0x04
00001244: DUP2
00001245: ADD
00001246: DUP12
00001247: SWAP1
00001248: MSTORE
00001249: PUSH1 0x24
0000124b: DUP2
0000124c: ADD
0000124d: DUP8
0000124e: SWAP1
0000124f: MSTORE
00001250: PUSH1 0x44
00001252: ADD
00001253: PUSH2 0x00bb
00001256: JUMP
00001257: JUMPDEST
00001258: SWAP5
00001259: DUP10
0000125a: SWAP1
0000125b: SUB
0000125c: SWAP5
0000125d: PUSH13 0x7e37be2022c0914b2680000000
0000126b: DUP8
0000126c: DUP7
0000126d: MUL
0000126e: DIV
0000126f: DUP7
00001270: LT
00001271: ISZERO
00001272: PUSH2 0x12b1
00001275: JUMPI
00001276: PUSH1 0x40
00001278: MLOAD
00001279: PUSH32 0xb499466c00000000000000000000000000000000000000000000000000000000
0000129a: DUP2
0000129b: MSTORE
0000129c: PUSH1 0x04
0000129e: DUP2
0000129f: ADD
000012a0: DUP9
000012a1: SWAP1
000012a2: MSTORE
000012a3: PUSH1 0x24
000012a5: DUP2
000012a6: ADD
000012a7: DUP8
000012a8: SWAP1
000012a9: MSTORE
000012aa: PUSH1 0x44
000012ac: ADD
000012ad: PUSH2 0x00bb
000012b0: JUMP
000012b1: JUMPDEST
000012b2: POP
000012b3: POP
000012b4: PUSH2 0x147d
000012b7: JUMP
000012b8: JUMPDEST
000012b9: PUSH1 0x83
000012bb: DUP7
000012bc: SWAP1
000012bd: SHR
000012be: PUSH1 0x1f
000012c0: AND
000012c1: PUSH1 0x09
000012c3: DUP2
000012c4: GT
000012c5: ISZERO
000012c6: PUSH2 0x12eb
000012c9: JUMPI
000012ca: PUSH2 0x12d5
000012cd: PUSH1 0x09
000012cf: DUP3
000012d0: SUB
000012d1: PUSH2 0x2844
000012d4: JUMP
000012d5: JUMPDEST
000012d6: DUP11
000012d7: DUP2
000012d8: PUSH2 0x12e3
000012db: JUMPI
000012dc: PUSH2 0x12e3
000012df: PUSH2 0x3f2b
000012e2: JUMP
000012e3: JUMPDEST
000012e4: DIV
000012e5: SWAP10
000012e6: POP
000012e7: PUSH2 0x12fc
000012ea: JUMP
000012eb: JUMPDEST
000012ec: PUSH2 0x12f7
000012ef: DUP2
000012f0: PUSH1 0x09
000012f2: SUB
000012f3: PUSH2 0x2844
000012f6: JUMP
000012f7: JUMPDEST
000012f8: DUP11
000012f9: MUL
000012fa: SWAP10
000012fb: POP
000012fc: JUMPDEST
000012fd: PUSH2 0x2710
00001300: DUP11
00001301: LT
00001302: DUP1
00001303: PUSH2 0x1313
00001306: JUMPI
00001307: POP
00001308: PUSH8 0x0fffffffffffffff
00001311: DUP11
00001312: GT
00001313: JUMPDEST
00001314: ISZERO
00001315: PUSH2 0x134d
00001318: JUMPI
00001319: PUSH1 0x40
0000131b: MLOAD
0000131c: PUSH32 0x17d5c4d200000000000000000000000000000000000000000000000000000000
0000133d: DUP2
0000133e: MSTORE
0000133f: PUSH1 0x04
00001341: DUP2
00001342: ADD
00001343: DUP12
00001344: SWAP1
00001345: MSTORE
00001346: PUSH1 0x24
00001348: ADD
00001349: PUSH2 0x00bb
0000134c: JUMP
0000134d: JUMPDEST
0000134e: PUSH1 0x02
00001350: DUP3
00001351: DIV
00001352: DUP11
00001353: GT
00001354: ISZERO
00001355: PUSH2 0x1394
00001358: JUMPI
00001359: PUSH1 0x40
0000135b: MLOAD
0000135c: PUSH32 0xfecbb38c00000000000000000000000000000000000000000000000000000000
0000137d: DUP2
0000137e: MSTORE
0000137f: PUSH1 0x04
00001381: DUP2
00001382: ADD
00001383: DUP12
00001384: SWAP1
00001385: MSTORE
00001386: PUSH1 0x24
00001388: DUP2
00001389: ADD
0000138a: DUP4
0000138b: SWAP1
0000138c: MSTORE
0000138d: PUSH1 0x44
0000138f: ADD
00001390: PUSH2 0x00bb
00001393: JUMP
00001394: JUMPDEST
00001395: PUSH3 0x0f4240
00001399: PUSH2 0x1fff
0000139c: DUP9
0000139d: AND
0000139e: DUP12
0000139f: MUL
000013a0: DIV
000013a1: DUP1
000013a2: DUP12
000013a3: SUB
000013a4: DUP4
000013a5: DUP2
000013a6: ADD
000013a7: SWAP1
000013a8: DUP6
000013a9: MUL
000013aa: DUP2
000013ab: PUSH2 0x13b6
000013ae: JUMPI
000013af: PUSH2 0x13b6
000013b2: PUSH2 0x3f2b
000013b5: JUMP
000013b6: JUMPDEST
000013b7: DIV
000013b8: SWAP10
000013b9: POP
000013ba: PUSH1 0x64
000013bc: PUSH1 0x0d
000013be: DUP10
000013bf: SWAP1
000013c0: SHR
000013c1: PUSH1 0x7f
000013c3: AND
000013c4: DUP3
000013c5: MUL
000013c6: DIV
000013c7: DUP12
000013c8: SUB
000013c9: DUP7
000013ca: ADD
000013cb: SWAP6
000013cc: POP
000013cd: DUP10
000013ce: DUP8
000013cf: LT
000013d0: ISZERO
000013d1: PUSH2 0x1410
000013d4: JUMPI
000013d5: PUSH1 0x40
000013d7: MLOAD
000013d8: PUSH32 0x473f499f00000000000000000000000000000000000000000000000000000000
000013f9: DUP2
000013fa: MSTORE
000013fb: PUSH1 0x04
000013fd: DUP2
000013fe: ADD
000013ff: DUP12
00001400: SWAP1
00001401: MSTORE
00001402: PUSH1 0x24
00001404: DUP2
00001405: ADD
00001406: DUP9
00001407: SWAP1
00001408: MSTORE
00001409: PUSH1 0x44
0000140b: ADD
0000140c: PUSH2 0x00bb
0000140f: JUMP
00001410: JUMPDEST
00001411: DUP10
00001412: DUP8
00001413: SUB
00001414: SWAP7
00001415: POP
00001416: PUSH2 0x2710
00001419: DUP6
0000141a: MUL
0000141b: PUSH12 0x033b2e3c9fd0803ce8000000
00001428: DUP8
00001429: MUL
0000142a: DUP2
0000142b: PUSH2 0x1436
0000142e: JUMPI
0000142f: PUSH2 0x1436
00001432: PUSH2 0x3f2b
00001435: JUMP
00001436: JUMPDEST
00001437: DIV
00001438: DUP8
00001439: LT
0000143a: ISZERO
0000143b: PUSH2 0x147a
0000143e: JUMPI
0000143f: PUSH1 0x40
00001441: MLOAD
00001442: PUSH32 0xb499466c00000000000000000000000000000000000000000000000000000000
00001463: DUP2
00001464: MSTORE
00001465: PUSH1 0x04
00001467: DUP2
00001468: ADD
00001469: DUP9
0000146a: SWAP1
0000146b: MSTORE
0000146c: PUSH1 0x24
0000146e: DUP2
0000146f: ADD
00001470: DUP8
00001471: SWAP1
00001472: MSTORE
00001473: PUSH1 0x44
00001475: ADD
00001476: PUSH2 0x00bb
00001479: JUMP
0000147a: JUMPDEST
0000147b: POP
0000147c: POP
0000147d: JUMPDEST
0000147e: PUSH1 0x14
00001480: DUP7
00001481: SWAP1
00001482: SHR
00001483: PUSH1 0x03
00001485: AND
00001486: DUP1
00001487: ISZERO
00001488: PUSH2 0x14ee
0000148b: JUMPI
0000148c: PUSH0
0000148d: DUP12
0000148e: PUSH2 0x14b8
00001491: JUMPI
00001492: DUP10
00001493: DUP5
00001494: SUB
00001495: PUSH12 0x033b2e3c9fd0803ce8000000
000014a2: DUP13
000014a3: DUP6
000014a4: ADD
000014a5: MUL
000014a6: DUP2
000014a7: PUSH2 0x14b2
000014aa: JUMPI
000014ab: PUSH2 0x14b2
000014ae: PUSH2 0x3f2b
000014b1: JUMP
000014b2: JUMPDEST
000014b3: DIV
000014b4: PUSH2 0x14db
000014b7: JUMP
000014b8: JUMPDEST
000014b9: DUP11
000014ba: DUP5
000014bb: ADD
000014bc: PUSH12 0x033b2e3c9fd0803ce8000000
000014c9: DUP12
000014ca: DUP6
000014cb: SUB
000014cc: MUL
000014cd: DUP2
000014ce: PUSH2 0x14d9
000014d1: JUMPI
000014d2: PUSH2 0x14d9
000014d5: PUSH2 0x3f2b
000014d8: JUMP
000014d9: JUMPDEST
000014da: DIV
000014db: JUMPDEST
000014dc: SWAP1
000014dd: POP
000014de: PUSH2 0x14ea
000014e1: DUP9
000014e2: DUP11
000014e3: DUP5
000014e4: DUP5
000014e5: DUP10
000014e6: PUSH2 0x2927
000014e9: JUMP
000014ea: JUMPDEST
000014eb: SWAP2
000014ec: POP
000014ed: POP
000014ee: JUMPDEST
000014ef: PUSH1 0x01
000014f1: DUP2
000014f2: GT
000014f3: DUP1
000014f4: PUSH2 0x1504
000014f7: JUMPI
000014f8: POP
000014f9: PUSH1 0x01
000014fb: PUSH1 0x16
000014fd: DUP9
000014fe: SWAP1
000014ff: SHR
00001500: AND
00001501: PUSH1 0x01
00001503: EQ
00001504: JUMPDEST
00001505: ISZERO
00001506: PUSH2 0x1562
00001509: JUMPI
0000150a: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
0000152b: DUP9
0000152c: AND
0000152d: PUSH0
0000152e: SWAP1
0000152f: DUP2
00001530: MSTORE
00001531: PUSH1 0x03
00001533: PUSH1 0x20
00001535: MSTORE
00001536: PUSH1 0x40
00001538: SWAP1
00001539: KECCAK256
0000153a: DUP1
0000153b: SLOAD
0000153c: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000
0000155d: AND
0000155e: TIMESTAMP
0000155f: OR
00001560: SWAP1
00001561: SSTORE
00001562: JUMPDEST
00001563: POP
00001564: PUSH8 0x0fffffffffffffff
0000156d: DUP6
0000156e: GT
0000156f: DUP1
00001570: PUSH2 0x1580
00001573: JUMPI
00001574: POP
00001575: PUSH8 0x0fffffffffffffff
0000157e: DUP5
0000157f: GT
00001580: JUMPDEST
00001581: ISZERO
00001582: PUSH2 0x15e9
00001585: JUMPI
00001586: PUSH1 0x40
00001588: MLOAD
00001589: PUSH32 0x9e0db87800000000000000000000000000000000000000000000000000000000
000015aa: DUP2
000015ab: MSTORE
000015ac: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
000015cd: DUP9
000015ce: AND
000015cf: PUSH1 0x04
000015d1: DUP3
000015d2: ADD
000015d3: MSTORE
000015d4: PUSH1 0x24
000015d6: DUP2
000015d7: ADD
000015d8: DUP7
000015d9: SWAP1
000015da: MSTORE
000015db: PUSH1 0x44
000015dd: DUP2
000015de: ADD
000015df: DUP6
000015e0: SWAP1
000015e1: MSTORE
000015e2: PUSH1 0x64
000015e4: ADD
000015e5: PUSH2 0x00bb
000015e8: JUMP
000015e9: JUMPDEST
000015ea: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
0000160b: DUP8
0000160c: AND
0000160d: PUSH0
0000160e: SWAP1
0000160f: DUP2
00001610: MSTORE
00001611: PUSH1 0x02
00001613: PUSH1 0x20
00001615: MSTORE
00001616: PUSH1 0x40
00001618: SWAP1
00001619: KECCAK256
0000161a: DUP1
0000161b: SLOAD
0000161c: PUSH17 0xffffffffffffffffffffffffffffffffff
0000162e: AND
0000162f: PUSH1 0x88
00001631: DUP8
00001632: SWAP1
00001633: SHL
00001634: OR
00001635: PUSH1 0xc4
00001637: DUP7
00001638: SWAP1
00001639: SHL
0000163a: OR
0000163b: SWAP1
0000163c: DUP2
0000163d: SWAP1
0000163e: SSTORE
0000163f: SWAP6
00001640: POP
00001641: DUP10
00001642: ISZERO
00001643: PUSH2 0x16f0
00001646: JUMPI
00001647: PUSH1 0x40
00001649: DUP1
0000164a: MLOAD
0000164b: PUSH9 0x010000000000000000
00001655: PUSH1 0x7d
00001657: DUP12
00001658: SWAP1
00001659: SHL
0000165a: PUSH1 0x41
0000165c: DUP14
0000165d: SWAP1
0000165e: SHL
0000165f: PUSH1 0xc0
00001661: DUP13
00001662: SWAP1
00001663: SHR
00001664: OR
00001665: OR
00001666: OR
00001667: DUP2
00001668: MSTORE
00001669: PUSH1 0x20
0000166b: DUP2
0000166c: ADD
0000166d: DUP9
0000166e: SWAP1
0000166f: MSTORE
00001670: PUSH32 0xfbce846c23a724e6e61161894819ec46c90a8d3dd96e90e7342c6ef49ffb539c
00001691: SWAP2
00001692: ADD
00001693: PUSH1 0x40
00001695: MLOAD
00001696: DUP1
00001697: SWAP2
00001698: SUB
00001699: SWAP1
0000169a: LOG1
0000169b: PUSH1 0x83
0000169d: DUP7
0000169e: SWAP1
0000169f: SHR
000016a0: PUSH1 0x1f
000016a2: AND
000016a3: PUSH1 0x09
000016a5: DUP2
000016a6: GT
000016a7: ISZERO
000016a8: PUSH2 0x16cf
000016ab: JUMPI
000016ac: PUSH2 0x16be
000016af: PUSH2 0x16b9
000016b2: PUSH1 0x09
000016b4: DUP4
000016b5: PUSH2 0x3da5
000016b8: JUMP
000016b9: JUMPDEST
000016ba: PUSH2 0x2844
000016bd: JUMP
000016be: JUMPDEST
000016bf: PUSH2 0x16c8
000016c2: SWAP1
000016c3: DUP11
000016c4: PUSH2 0x3f58
000016c7: JUMP
000016c8: JUMPDEST
000016c9: SWAP9
000016ca: POP
000016cb: PUSH2 0x16ea
000016ce: JUMP
000016cf: JUMPDEST
000016d0: PUSH2 0x16dd
000016d3: PUSH2 0x16b9
000016d6: DUP3
000016d7: PUSH1 0x09
000016d9: PUSH2 0x3da5
000016dc: JUMP
000016dd: JUMPDEST
000016de: PUSH2 0x16e7
000016e1: SWAP1
000016e2: DUP11
000016e3: PUSH2 0x3f6f
000016e6: JUMP
000016e7: JUMPDEST
000016e8: SWAP9
000016e9: POP
000016ea: JUMPDEST
000016eb: POP
000016ec: PUSH2 0x1786
000016ef: JUMP
000016f0: JUMPDEST
000016f1: PUSH1 0x40
000016f3: DUP1
000016f4: MLOAD
000016f5: PUSH1 0x7d
000016f7: DUP11
000016f8: SWAP1
000016f9: SHL
000016fa: PUSH1 0x41
000016fc: DUP13
000016fd: SWAP1
000016fe: SHL
000016ff: PUSH1 0xc0
00001701: DUP12
00001702: SWAP1
00001703: SHR
00001704: OR
00001705: OR
00001706: DUP2
00001707: MSTORE
00001708: PUSH1 0x20
0000170a: DUP2
0000170b: ADD
0000170c: DUP9
0000170d: SWAP1
0000170e: MSTORE
0000170f: PUSH32 0xfbce846c23a724e6e61161894819ec46c90a8d3dd96e90e7342c6ef49ffb539c
00001730: SWAP2
00001731: ADD
00001732: PUSH1 0x40
00001734: MLOAD
00001735: DUP1
00001736: SWAP2
00001737: SUB
00001738: SWAP1
00001739: LOG1
0000173a: PUSH1 0x7e
0000173c: DUP7
0000173d: SWAP1
0000173e: SHR
0000173f: PUSH1 0x1f
00001741: AND
00001742: PUSH1 0x09
00001744: DUP2
00001745: GT
00001746: ISZERO
00001747: PUSH2 0x1769
0000174a: JUMPI
0000174b: PUSH2 0x1758
0000174e: PUSH2 0x16b9
00001751: PUSH1 0x09
00001753: DUP4
00001754: PUSH2 0x3da5
00001757: JUMP
00001758: JUMPDEST
00001759: PUSH2 0x1762
0000175c: SWAP1
0000175d: DUP11
0000175e: PUSH2 0x3f58
00001761: JUMP
00001762: JUMPDEST
00001763: SWAP9
00001764: POP
00001765: PUSH2 0x1784
00001768: JUMP
00001769: JUMPDEST
0000176a: PUSH2 0x1777
0000176d: PUSH2 0x16b9
00001770: DUP3
00001771: PUSH1 0x09
00001773: PUSH2 0x3da5
00001776: JUMP
00001777: JUMPDEST
00001778: PUSH2 0x1781
0000177b: SWAP1
0000177c: DUP11
0000177d: PUSH2 0x3f6f
00001780: JUMP
00001781: JUMPDEST
00001782: SWAP9
00001783: POP
00001784: JUMPDEST
00001785: POP
00001786: JUMPDEST
00001787: POP
00001788: POP
00001789: POP
0000178a: POP
0000178b: POP
0000178c: POP
0000178d: POP
0000178e: SWAP4
0000178f: SWAP3
00001790: POP
00001791: POP
00001792: POP
00001793: JUMP
00001794: JUMPDEST
00001795: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017aa: DUP5
000017ab: AND
000017ac: PUSH2 0x17b3
000017af: JUMPI
000017b0: CALLER
000017b1: SWAP4
000017b2: POP
000017b3: JUMPDEST
000017b4: PUSH32 0xffffffffffffffffffffffff1111111111111111111111111111111111111112
000017d5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017ea: DUP8
000017eb: AND
000017ec: ADD
000017ed: PUSH2 0x17ff
000017f0: JUMPI
000017f1: PUSH2 0x17fa
000017f4: DUP5
000017f5: DUP7
000017f6: PUSH2 0x2b3f
000017f9: JUMP
000017fa: JUMPDEST
000017fb: PUSH2 0x180a
000017fe: JUMP
000017ff: JUMPDEST
00001800: PUSH2 0x180a
00001803: DUP7
00001804: DUP6
00001805: DUP8
00001806: PUSH2 0x2b88
00001809: JUMP
0000180a: JUMPDEST
0000180b: PUSH32 0xffffffffffffffffffffffff1111111111111111111111111111111111111112
0000182c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001841: DUP10
00001842: AND
00001843: ADD
00001844: PUSH2 0x198b
00001847: JUMPI
00001848: DUP3
00001849: DUP1
0000184a: ISZERO
0000184b: PUSH2 0x1852
0000184e: JUMPI
0000184f: POP
00001850: CALLVALUE
00001851: ISZERO
00001852: JUMPDEST
00001853: ISZERO
00001854: PUSH2 0x1928
00001857: JUMPI
00001858: PUSH1 0x40
0000185a: MLOAD
0000185b: PUSH32 0xb6a5454800000000000000000000000000000000000000000000000000000000
0000187c: DUP2
0000187d: MSTORE
0000187e: SELFBALANCE
0000187f: SWAP1
00001880: CALLER
00001881: SWAP1
00001882: PUSH4 0xb6a54548
00001887: SWAP1
00001888: PUSH2 0x189b
0000188b: SWAP1
0000188c: DUP13
0000188d: SWAP1
0000188e: DUP13
0000188f: SWAP1
00001890: DUP9
00001891: SWAP1
00001892: DUP9
00001893: SWAP1
00001894: PUSH1 0x04
00001896: ADD
00001897: PUSH2 0x3fa7
0000189a: JUMP
0000189b: JUMPDEST
0000189c: PUSH0
0000189d: PUSH1 0x40
0000189f: MLOAD
000018a0: DUP1
000018a1: DUP4
000018a2: SUB
000018a3: DUP2
000018a4: PUSH0
000018a5: DUP8
000018a6: DUP1
000018a7: EXTCODESIZE
000018a8: ISZERO
000018a9: DUP1
000018aa: ISZERO
000018ab: PUSH2 0x18b2
000018ae: JUMPI
000018af: PUSH0
000018b0: PUSH0
000018b1: REVERT
000018b2: JUMPDEST
000018b3: POP
000018b4: GAS
000018b5: CALL
000018b6: ISZERO
000018b7: DUP1
000018b8: ISZERO
000018b9: PUSH2 0x18c4
000018bc: JUMPI
000018bd: RETURNDATASIZE
000018be: PUSH0
000018bf: PUSH0
000018c0: RETURNDATACOPY
000018c1: RETURNDATASIZE
000018c2: PUSH0
000018c3: REVERT
000018c4: JUMPDEST
000018c5: POP
000018c6: POP
000018c7: POP
000018c8: POP
000018c9: DUP8
000018ca: DUP2
000018cb: SELFBALANCE
000018cc: PUSH2 0x18d5
000018cf: SWAP2
000018d0: SWAP1
000018d1: PUSH2 0x3da5
000018d4: JUMP
000018d5: JUMPDEST
000018d6: LT
000018d7: ISZERO
000018d8: PUSH2 0x1922
000018db: JUMPI
000018dc: PUSH2 0x18e5
000018df: DUP2
000018e0: SELFBALANCE
000018e1: PUSH2 0x3da5
000018e4: JUMP
000018e5: JUMPDEST
000018e6: PUSH1 0x40
000018e8: MLOAD
000018e9: PUSH32 0xbdd289ca00000000000000000000000000000000000000000000000000000000
0000190a: DUP2
0000190b: MSTORE
0000190c: PUSH1 0x04
0000190e: DUP2
0000190f: ADD
00001910: SWAP2
00001911: SWAP1
00001912: SWAP2
00001913: MSTORE
00001914: PUSH1 0x24
00001916: DUP2
00001917: ADD
00001918: DUP10
00001919: SWAP1
0000191a: MSTORE
0000191b: PUSH1 0x44
0000191d: ADD
0000191e: PUSH2 0x00bb
00001921: JUMP
00001922: JUMPDEST
00001923: POP
00001924: PUSH2 0x1c4a
00001927: JUMP
00001928: JUMPDEST
00001929: DUP7
0000192a: CALLVALUE
0000192b: LT
0000192c: ISZERO
0000192d: PUSH2 0x196b
00001930: JUMPI
00001931: PUSH1 0x40
00001933: MLOAD
00001934: PUSH32 0xbdd289ca00000000000000000000000000000000000000000000000000000000
00001955: DUP2
00001956: MSTORE
00001957: CALLVALUE
00001958: PUSH1 0x04
0000195a: DUP3
0000195b: ADD
0000195c: MSTORE
0000195d: PUSH1 0x24
0000195f: DUP2
00001960: ADD
00001961: DUP9
00001962: SWAP1
00001963: MSTORE
00001964: PUSH1 0x44
00001966: ADD
00001967: PUSH2 0x00bb
0000196a: JUMP
0000196b: JUMPDEST
0000196c: DUP7
0000196d: CALLVALUE
0000196e: GT
0000196f: ISZERO
00001970: PUSH2 0x1986
00001973: JUMPI
00001974: PUSH2 0x1986
00001977: CALLER
00001978: PUSH2 0x1981
0000197b: DUP10
0000197c: CALLVALUE
0000197d: PUSH2 0x3da5
00001980: JUMP
00001981: JUMPDEST
00001982: PUSH2 0x2b3f
00001985: JUMP
00001986: JUMPDEST
00001987: PUSH2 0x1c4a
0000198a: JUMP
0000198b: JUMPDEST
0000198c: CALLVALUE
0000198d: ISZERO
0000198e: PUSH2 0x19c3
00001991: JUMPI
00001992: PUSH1 0x40
00001994: MLOAD
00001995: PUSH32 0x1841b4e100000000000000000000000000000000000000000000000000000000
000019b6: DUP2
000019b7: MSTORE
000019b8: PUSH1 0x04
000019ba: ADD
000019bb: PUSH1 0x40
000019bd: MLOAD
000019be: DUP1
000019bf: SWAP2
000019c0: SUB
000019c1: SWAP1
000019c2: REVERT
000019c3: JUMPDEST
000019c4: DUP3
000019c5: ISZERO
000019c6: PUSH2 0x1c3e
000019c9: JUMPI
000019ca: PUSH1 0x40
000019cc: MLOAD
000019cd: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
000019ee: DUP2
000019ef: MSTORE
000019f0: ADDRESS
000019f1: PUSH1 0x04
000019f3: DUP3
000019f4: ADD
000019f5: MSTORE
000019f6: PUSH0
000019f7: SWAP1
000019f8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a0d: DUP11
00001a0e: AND
00001a0f: SWAP1
00001a10: PUSH4 0x70a08231
00001a15: SWAP1
00001a16: PUSH1 0x24
00001a18: ADD
00001a19: PUSH1 0x20
00001a1b: PUSH1 0x40
00001a1d: MLOAD
00001a1e: DUP1
00001a1f: DUP4
00001a20: SUB
00001a21: DUP2
00001a22: DUP7
00001a23: GAS
00001a24: STATICCALL
00001a25: ISZERO
00001a26: DUP1
00001a27: ISZERO
00001a28: PUSH2 0x1a33
00001a2b: JUMPI
00001a2c: RETURNDATASIZE
00001a2d: PUSH0
00001a2e: PUSH0
00001a2f: RETURNDATACOPY
00001a30: RETURNDATASIZE
00001a31: PUSH0
00001a32: REVERT
00001a33: JUMPDEST
00001a34: POP
00001a35: POP
00001a36: POP
00001a37: POP
00001a38: PUSH1 0x40
00001a3a: MLOAD
00001a3b: RETURNDATASIZE
00001a3c: PUSH1 0x1f
00001a3e: NOT
00001a3f: PUSH1 0x1f
00001a41: DUP3
00001a42: ADD
00001a43: AND
00001a44: DUP3
00001a45: ADD
00001a46: DUP1
00001a47: PUSH1 0x40
00001a49: MSTORE
00001a4a: POP
00001a4b: DUP2
00001a4c: ADD
00001a4d: SWAP1
00001a4e: PUSH2 0x1a57
00001a51: SWAP2
00001a52: SWAP1
00001a53: PUSH2 0x3b9f
00001a56: JUMP
00001a57: JUMPDEST
00001a58: PUSH1 0x40
00001a5a: MLOAD
00001a5b: PUSH32 0xb6a5454800000000000000000000000000000000000000000000000000000000
00001a7c: DUP2
00001a7d: MSTORE
00001a7e: SWAP1
00001a7f: SWAP2
00001a80: POP
00001a81: CALLER
00001a82: SWAP1
00001a83: PUSH4 0xb6a54548
00001a88: SWAP1
00001a89: PUSH2 0x1a9c
00001a8c: SWAP1
00001a8d: DUP13
00001a8e: SWAP1
00001a8f: DUP13
00001a90: SWAP1
00001a91: DUP9
00001a92: SWAP1
00001a93: DUP9
00001a94: SWAP1
00001a95: PUSH1 0x04
00001a97: ADD
00001a98: PUSH2 0x3fa7
00001a9b: JUMP
00001a9c: JUMPDEST
00001a9d: PUSH0
00001a9e: PUSH1 0x40
00001aa0: MLOAD
00001aa1: DUP1
00001aa2: DUP4
00001aa3: SUB
00001aa4: DUP2
00001aa5: PUSH0
00001aa6: DUP8
00001aa7: DUP1
00001aa8: EXTCODESIZE
00001aa9: ISZERO
00001aaa: DUP1
00001aab: ISZERO
00001aac: PUSH2 0x1ab3
00001aaf: JUMPI
00001ab0: PUSH0
00001ab1: PUSH0
00001ab2: REVERT
00001ab3: JUMPDEST
00001ab4: POP
00001ab5: GAS
00001ab6: CALL
00001ab7: ISZERO
00001ab8: DUP1
00001ab9: ISZERO
00001aba: PUSH2 0x1ac5
00001abd: JUMPI
00001abe: RETURNDATASIZE
00001abf: PUSH0
00001ac0: PUSH0
00001ac1: RETURNDATACOPY
00001ac2: RETURNDATASIZE
00001ac3: PUSH0
00001ac4: REVERT
00001ac5: JUMPDEST
00001ac6: POP
00001ac7: POP
00001ac8: PUSH1 0x40
00001aca: MLOAD
00001acb: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
00001aec: DUP2
00001aed: MSTORE
00001aee: ADDRESS
00001aef: PUSH1 0x04
00001af1: DUP3
00001af2: ADD
00001af3: MSTORE
00001af4: DUP11
00001af5: SWAP3
00001af6: POP
00001af7: DUP4
00001af8: SWAP2
00001af9: POP
00001afa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b0f: DUP13
00001b10: AND
00001b11: SWAP1
00001b12: PUSH4 0x70a08231
00001b17: SWAP1
00001b18: PUSH1 0x24
00001b1a: ADD
00001b1b: PUSH1 0x20
00001b1d: PUSH1 0x40
00001b1f: MLOAD
00001b20: DUP1
00001b21: DUP4
00001b22: SUB
00001b23: DUP2
00001b24: DUP7
00001b25: GAS
00001b26: STATICCALL
00001b27: ISZERO
00001b28: DUP1
00001b29: ISZERO
00001b2a: PUSH2 0x1b35
00001b2d: JUMPI
00001b2e: RETURNDATASIZE
00001b2f: PUSH0
00001b30: PUSH0
00001b31: RETURNDATACOPY
00001b32: RETURNDATASIZE
00001b33: PUSH0
00001b34: REVERT
00001b35: JUMPDEST
00001b36: POP
00001b37: POP
00001b38: POP
00001b39: POP
00001b3a: PUSH1 0x40
00001b3c: MLOAD
00001b3d: RETURNDATASIZE
00001b3e: PUSH1 0x1f
00001b40: NOT
00001b41: PUSH1 0x1f
00001b43: DUP3
00001b44: ADD
00001b45: AND
00001b46: DUP3
00001b47: ADD
00001b48: DUP1
00001b49: PUSH1 0x40
00001b4b: MSTORE
00001b4c: POP
00001b4d: DUP2
00001b4e: ADD
00001b4f: SWAP1
00001b50: PUSH2 0x1b59
00001b53: SWAP2
00001b54: SWAP1
00001b55: PUSH2 0x3b9f
00001b58: JUMP
00001b59: JUMPDEST
00001b5a: PUSH2 0x1b63
00001b5d: SWAP2
00001b5e: SWAP1
00001b5f: PUSH2 0x3da5
00001b62: JUMP
00001b63: JUMPDEST
00001b64: LT
00001b65: ISZERO
00001b66: PUSH2 0x1922
00001b69: JUMPI
00001b6a: PUSH1 0x40
00001b6c: MLOAD
00001b6d: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
00001b8e: DUP2
00001b8f: MSTORE
00001b90: ADDRESS
00001b91: PUSH1 0x04
00001b93: DUP3
00001b94: ADD
00001b95: MSTORE
00001b96: DUP2
00001b97: SWAP1
00001b98: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001bad: DUP12
00001bae: AND
00001baf: SWAP1
00001bb0: PUSH4 0x70a08231
00001bb5: SWAP1
00001bb6: PUSH1 0x24
00001bb8: ADD
00001bb9: PUSH1 0x20
00001bbb: PUSH1 0x40
00001bbd: MLOAD
00001bbe: DUP1
00001bbf: DUP4
00001bc0: SUB
00001bc1: DUP2
00001bc2: DUP7
00001bc3: GAS
00001bc4: STATICCALL
00001bc5: ISZERO
00001bc6: DUP1
00001bc7: ISZERO
00001bc8: PUSH2 0x1bd3
00001bcb: JUMPI
00001bcc: RETURNDATASIZE
00001bcd: PUSH0
00001bce: PUSH0
00001bcf: RETURNDATACOPY
00001bd0: RETURNDATASIZE
00001bd1: PUSH0
00001bd2: REVERT
00001bd3: JUMPDEST
00001bd4: POP
00001bd5: POP
00001bd6: POP
00001bd7: POP
00001bd8: PUSH1 0x40
00001bda: MLOAD
00001bdb: RETURNDATASIZE
00001bdc: PUSH1 0x1f
00001bde: NOT
00001bdf: PUSH1 0x1f
00001be1: DUP3
00001be2: ADD
00001be3: AND
00001be4: DUP3
00001be5: ADD
00001be6: DUP1
00001be7: PUSH1 0x40
00001be9: MSTORE
00001bea: POP
00001beb: DUP2
00001bec: ADD
00001bed: SWAP1
00001bee: PUSH2 0x1bf7
00001bf1: SWAP2
00001bf2: SWAP1
00001bf3: PUSH2 0x3b9f
00001bf6: JUMP
00001bf7: JUMPDEST
00001bf8: PUSH2 0x1c01
00001bfb: SWAP2
00001bfc: SWAP1
00001bfd: PUSH2 0x3da5
00001c00: JUMP
00001c01: JUMPDEST
00001c02: PUSH1 0x40
00001c04: MLOAD
00001c05: PUSH32 0xaf35ea9e00000000000000000000000000000000000000000000000000000000
00001c26: DUP2
00001c27: MSTORE
00001c28: PUSH1 0x04
00001c2a: DUP2
00001c2b: ADD
00001c2c: SWAP2
00001c2d: SWAP1
00001c2e: SWAP2
00001c2f: MSTORE
00001c30: PUSH1 0x24
00001c32: DUP2
00001c33: ADD
00001c34: DUP10
00001c35: SWAP1
00001c36: MSTORE
00001c37: PUSH1 0x44
00001c39: ADD
00001c3a: PUSH2 0x00bb
00001c3d: JUMP
00001c3e: JUMPDEST
00001c3f: PUSH2 0x1c4a
00001c42: DUP9
00001c43: CALLER
00001c44: ADDRESS
00001c45: DUP11
00001c46: PUSH2 0x2c2e
00001c49: JUMP
00001c4a: JUMPDEST
00001c4b: POP
00001c4c: POP
00001c4d: POP
00001c4e: POP
00001c4f: POP
00001c50: POP
00001c51: POP
00001c52: POP
00001c53: JUMP
00001c54: JUMPDEST
00001c55: PUSH0
00001c56: PUSH2 0x1c7d
00001c59: PUSH32 0x7e8134afb5ed35d36cb65e24b9a4712a52bb77d952806c1acf50970d2107797f
00001c7a: SLOAD
00001c7b: SWAP1
00001c7c: JUMP
00001c7d: JUMPDEST
00001c7e: SWAP1
00001c7f: POP
00001c80: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c95: DUP2
00001c96: AND
00001c97: PUSH2 0x1ccc
00001c9a: JUMPI
00001c9b: PUSH1 0x40
00001c9d: MLOAD
00001c9e: PUSH32 0xd92e233d00000000000000000000000000000000000000000000000000000000
00001cbf: DUP2
00001cc0: MSTORE
00001cc1: PUSH1 0x04
00001cc3: ADD
00001cc4: PUSH1 0x40
00001cc6: MLOAD
00001cc7: DUP1
00001cc8: SWAP2
00001cc9: SUB
00001cca: SWAP1
00001ccb: REVERT
00001ccc: JUMPDEST
00001ccd: PUSH2 0x1cd6
00001cd0: DUP2
00001cd1: DUP4
00001cd2: PUSH2 0x0271
00001cd5: JUMP
00001cd6: JUMPDEST
00001cd7: POP
00001cd8: POP
00001cd9: POP
00001cda: JUMP
00001cdb: JUMPDEST
00001cdc: PUSH0
00001cdd: PUSH0
00001cde: DUP5
00001cdf: PUSH1 0x40
00001ce1: MLOAD
00001ce2: PUSH1 0x20
00001ce4: ADD
00001ce5: PUSH2 0x1cee
00001ce8: SWAP2
00001ce9: SWAP1
00001cea: PUSH2 0x3f1d
00001ced: JUMP
00001cee: JUMPDEST
00001cef: PUSH1 0x40
00001cf1: DUP1
00001cf2: MLOAD
00001cf3: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00001d14: DUP2
00001d15: DUP5
00001d16: SUB
00001d17: ADD
00001d18: DUP2
00001d19: MSTORE
00001d1a: SWAP2
00001d1b: DUP2
00001d1c: MSTORE
00001d1d: DUP2
00001d1e: MLOAD
00001d1f: PUSH1 0x20
00001d21: SWAP3
00001d22: DUP4
00001d23: ADD
00001d24: KECCAK256
00001d25: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
00001d46: DUP2
00001d47: AND
00001d48: PUSH0
00001d49: SWAP1
00001d4a: DUP2
00001d4b: MSTORE
00001d4c: PUSH1 0x02
00001d4e: SWAP1
00001d4f: SWAP4
00001d50: MSTORE
00001d51: SWAP1
00001d52: DUP3
00001d53: KECCAK256
00001d54: SLOAD
00001d55: SWAP1
00001d56: SWAP3
00001d57: POP
00001d58: SWAP1
00001d59: DUP2
00001d5a: SWAP1
00001d5b: SUB
00001d5c: PUSH2 0x1db5
00001d5f: JUMPI
00001d60: PUSH1 0x40
00001d62: MLOAD
00001d63: PUSH32 0x7229481100000000000000000000000000000000000000000000000000000000
00001d84: DUP2
00001d85: MSTORE
00001d86: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
00001da7: DUP4
00001da8: AND
00001da9: PUSH1 0x04
00001dab: DUP3
00001dac: ADD
00001dad: MSTORE
00001dae: PUSH1 0x24
00001db0: ADD
00001db1: PUSH2 0x00bb
00001db4: JUMP
00001db5: JUMPDEST
00001db6: PUSH1 0x88
00001db8: DUP2
00001db9: SWAP1
00001dba: SHR
00001dbb: PUSH8 0x0fffffffffffffff
00001dc4: AND
00001dc5: PUSH1 0xc4
00001dc7: DUP3
00001dc8: SWAP1
00001dc9: SHR
00001dca: PUSH0
00001dcb: DUP1
00001dcc: DUP1
00001dcd: PUSH2 0x1dd9
00001dd0: DUP12
00001dd1: DUP8
00001dd2: DUP10
00001dd3: DUP9
00001dd4: DUP9
00001dd5: PUSH2 0x2435
00001dd8: JUMP
00001dd9: JUMPDEST
00001dda: SWAP3
00001ddb: POP
00001ddc: SWAP3
00001ddd: POP
00001dde: SWAP3
00001ddf: POP
00001de0: DUP10
00001de1: ISZERO
00001de2: PUSH2 0x1fb5
00001de5: JUMPI
00001de6: PUSH1 0x83
00001de8: DUP7
00001de9: SWAP1
00001dea: SHR
00001deb: PUSH1 0x1f
00001ded: AND
00001dee: PUSH1 0x09
00001df0: DUP2
00001df1: GT
00001df2: ISZERO
00001df3: PUSH2 0x1e18
00001df6: JUMPI
00001df7: PUSH2 0x1e02
00001dfa: PUSH1 0x09
00001dfc: DUP3
00001dfd: SUB
00001dfe: PUSH2 0x2844
00001e01: JUMP
00001e02: JUMPDEST
00001e03: DUP11
00001e04: DUP2
00001e05: PUSH2 0x1e10
00001e08: JUMPI
00001e09: PUSH2 0x1e10
00001e0c: PUSH2 0x3f2b
00001e0f: JUMP
00001e10: JUMPDEST
00001e11: DIV
00001e12: SWAP10
00001e13: POP
00001e14: PUSH2 0x1e29
00001e17: JUMP
00001e18: JUMPDEST
00001e19: PUSH2 0x1e24
00001e1c: DUP2
00001e1d: PUSH1 0x09
00001e1f: SUB
00001e20: PUSH2 0x2844
00001e23: JUMP
00001e24: JUMPDEST
00001e25: DUP11
00001e26: MUL
00001e27: SWAP10
00001e28: POP
00001e29: JUMPDEST
00001e2a: PUSH2 0x2710
00001e2d: DUP11
00001e2e: LT
00001e2f: DUP1
00001e30: PUSH2 0x1e40
00001e33: JUMPI
00001e34: POP
00001e35: PUSH8 0x0fffffffffffffff
00001e3e: DUP11
00001e3f: GT
00001e40: JUMPDEST
00001e41: ISZERO
00001e42: PUSH2 0x1e7a
00001e45: JUMPI
00001e46: PUSH1 0x40
00001e48: MLOAD
00001e49: PUSH32 0x17d5c4d200000000000000000000000000000000000000000000000000000000
00001e6a: DUP2
00001e6b: MSTORE
00001e6c: PUSH1 0x04
00001e6e: DUP2
00001e6f: ADD
00001e70: DUP12
00001e71: SWAP1
00001e72: MSTORE
00001e73: PUSH1 0x24
00001e75: ADD
00001e76: PUSH2 0x00bb
00001e79: JUMP
00001e7a: JUMPDEST
00001e7b: PUSH1 0x02
00001e7d: DUP3
00001e7e: DIV
00001e7f: DUP11
00001e80: GT
00001e81: ISZERO
00001e82: PUSH2 0x1ec1
00001e85: JUMPI
00001e86: PUSH1 0x40
00001e88: MLOAD
00001e89: PUSH32 0xfecbb38c00000000000000000000000000000000000000000000000000000000
00001eaa: DUP2
00001eab: MSTORE
00001eac: PUSH1 0x04
00001eae: DUP2
00001eaf: ADD
00001eb0: DUP12
00001eb1: SWAP1
00001eb2: MSTORE
00001eb3: PUSH1 0x24
00001eb5: DUP2
00001eb6: ADD
00001eb7: DUP4
00001eb8: SWAP1
00001eb9: MSTORE
00001eba: PUSH1 0x44
00001ebc: ADD
00001ebd: PUSH2 0x00bb
00001ec0: JUMP
00001ec1: JUMPDEST
00001ec2: DUP10
00001ec3: DUP3
00001ec4: SUB
00001ec5: DUP4
00001ec6: DUP12
00001ec7: MUL
00001ec8: DUP2
00001ec9: PUSH2 0x1ed4
00001ecc: JUMPI
00001ecd: PUSH2 0x1ed4
00001ed0: PUSH2 0x3f2b
00001ed3: JUMP
00001ed4: JUMPDEST
00001ed5: DIV
00001ed6: SWAP9
00001ed7: POP
00001ed8: PUSH0
00001ed9: DUP10
00001eda: PUSH2 0x1fff
00001edd: DUP10
00001ede: AND
00001edf: PUSH3 0x0f4240
00001ee3: SWAP1
00001ee4: DUP2
00001ee5: SUB
00001ee6: SWAP1
00001ee7: DUP3
00001ee8: MUL
00001ee9: DUP2
00001eea: PUSH2 0x1ef5
00001eed: JUMPI
00001eee: PUSH2 0x1ef5
00001ef1: PUSH2 0x3f2b
00001ef4: JUMP
00001ef5: JUMPDEST
00001ef6: DIV
00001ef7: SUB
00001ef8: SWAP10
00001ef9: DUP11
00001efa: ADD
00001efb: SWAP10
00001efc: SWAP1
00001efd: POP
00001efe: PUSH1 0x64
00001f00: PUSH1 0x0d
00001f02: DUP10
00001f03: SWAP1
00001f04: SHR
00001f05: PUSH1 0x7f
00001f07: AND
00001f08: DUP3
00001f09: MUL
00001f0a: DIV
00001f0b: DUP11
00001f0c: SUB
00001f0d: DUP8
00001f0e: ADD
00001f0f: SWAP7
00001f10: POP
00001f11: DUP11
00001f12: DUP7
00001f13: LT
00001f14: ISZERO
00001f15: PUSH2 0x1f54
00001f18: JUMPI
00001f19: PUSH1 0x40
00001f1b: MLOAD
00001f1c: PUSH32 0x473f499f00000000000000000000000000000000000000000000000000000000
00001f3d: DUP2
00001f3e: MSTORE
00001f3f: PUSH1 0x04
00001f41: DUP2
00001f42: ADD
00001f43: DUP13
00001f44: SWAP1
00001f45: MSTORE
00001f46: PUSH1 0x24
00001f48: DUP2
00001f49: ADD
00001f4a: DUP8
00001f4b: SWAP1
00001f4c: MSTORE
00001f4d: PUSH1 0x44
00001f4f: ADD
00001f50: PUSH2 0x00bb
00001f53: JUMP
00001f54: JUMPDEST
00001f55: SWAP5
00001f56: DUP11
00001f57: SWAP1
00001f58: SUB
00001f59: SWAP5
00001f5a: PUSH13 0x7e37be2022c0914b2680000000
00001f68: DUP8
00001f69: DUP7
00001f6a: MUL
00001f6b: DIV
00001f6c: DUP7
00001f6d: LT
00001f6e: ISZERO
00001f6f: PUSH2 0x1fae
00001f72: JUMPI
00001f73: PUSH1 0x40
00001f75: MLOAD
00001f76: PUSH32 0xb499466c00000000000000000000000000000000000000000000000000000000
00001f97: DUP2
00001f98: MSTORE
00001f99: PUSH1 0x04
00001f9b: DUP2
00001f9c: ADD
00001f9d: DUP9
00001f9e: SWAP1
00001f9f: MSTORE
00001fa0: PUSH1 0x24
00001fa2: DUP2
00001fa3: ADD
00001fa4: DUP8
00001fa5: SWAP1
00001fa6: MSTORE
00001fa7: PUSH1 0x44
00001fa9: ADD
00001faa: PUSH2 0x00bb
00001fad: JUMP
00001fae: JUMPDEST
00001faf: POP
00001fb0: POP
00001fb1: PUSH2 0x2191
00001fb4: JUMP
00001fb5: JUMPDEST
00001fb6: PUSH1 0x7e
00001fb8: DUP7
00001fb9: SWAP1
00001fba: SHR
00001fbb: PUSH1 0x1f
00001fbd: AND
00001fbe: PUSH1 0x09
00001fc0: DUP2
00001fc1: GT
00001fc2: ISZERO
00001fc3: PUSH2 0x1fe8
00001fc6: JUMPI
00001fc7: PUSH2 0x1fd2
00001fca: PUSH1 0x09
00001fcc: DUP3
00001fcd: SUB
00001fce: PUSH2 0x2844
00001fd1: JUMP
00001fd2: JUMPDEST
00001fd3: DUP11
00001fd4: DUP2
00001fd5: PUSH2 0x1fe0
00001fd8: JUMPI
00001fd9: PUSH2 0x1fe0
00001fdc: PUSH2 0x3f2b
00001fdf: JUMP
00001fe0: JUMPDEST
00001fe1: DIV
00001fe2: SWAP10
00001fe3: POP
00001fe4: PUSH2 0x1ff9
00001fe7: JUMP
00001fe8: JUMPDEST
00001fe9: PUSH2 0x1ff4
00001fec: DUP2
00001fed: PUSH1 0x09
00001fef: SUB
00001ff0: PUSH2 0x2844
00001ff3: JUMP
00001ff4: JUMPDEST
00001ff5: DUP11
00001ff6: MUL
00001ff7: SWAP10
00001ff8: POP
00001ff9: JUMPDEST
00001ffa: PUSH2 0x2710
00001ffd: DUP11
00001ffe: LT
00001fff: DUP1
00002000: PUSH2 0x2010
00002003: JUMPI
00002004: POP
00002005: PUSH8 0x0fffffffffffffff
0000200e: DUP11
0000200f: GT
00002010: JUMPDEST
00002011: ISZERO
00002012: PUSH2 0x204a
00002015: JUMPI
00002016: PUSH1 0x40
00002018: MLOAD
00002019: PUSH32 0x17d5c4d200000000000000000000000000000000000000000000000000000000
0000203a: DUP2
0000203b: MSTORE
0000203c: PUSH1 0x04
0000203e: DUP2
0000203f: ADD
00002040: DUP12
00002041: SWAP1
00002042: MSTORE
00002043: PUSH1 0x24
00002045: ADD
00002046: PUSH2 0x00bb
00002049: JUMP
0000204a: JUMPDEST
0000204b: PUSH1 0x02
0000204d: DUP4
0000204e: DIV
0000204f: DUP11
00002050: GT
00002051: ISZERO
00002052: PUSH2 0x2091
00002055: JUMPI
00002056: PUSH1 0x40
00002058: MLOAD
00002059: PUSH32 0xfecbb38c00000000000000000000000000000000000000000000000000000000
0000207a: DUP2
0000207b: MSTORE
0000207c: PUSH1 0x04
0000207e: DUP2
0000207f: ADD
00002080: DUP12
00002081: SWAP1
00002082: MSTORE
00002083: PUSH1 0x24
00002085: DUP2
00002086: ADD
00002087: DUP5
00002088: SWAP1
00002089: MSTORE
0000208a: PUSH1 0x44
0000208c: ADD
0000208d: PUSH2 0x00bb
00002090: JUMP
00002091: JUMPDEST
00002092: DUP10
00002093: DUP4
00002094: SUB
00002095: DUP3
00002096: DUP12
00002097: MUL
00002098: DUP2
00002099: PUSH2 0x20a4
0000209c: JUMPI
0000209d: PUSH2 0x20a4
000020a0: PUSH2 0x3f2b
000020a3: JUMP
000020a4: JUMPDEST
000020a5: DIV
000020a6: SWAP9
000020a7: POP
000020a8: PUSH0
000020a9: DUP10
000020aa: PUSH2 0x1fff
000020ad: DUP10
000020ae: AND
000020af: PUSH3 0x0f4240
000020b3: SWAP1
000020b4: DUP2
000020b5: SUB
000020b6: SWAP1
000020b7: DUP3
000020b8: MUL
000020b9: DUP2
000020ba: PUSH2 0x20c5
000020bd: JUMPI
000020be: PUSH2 0x20c5
000020c1: PUSH2 0x3f2b
000020c4: JUMP
000020c5: JUMPDEST
000020c6: DIV
000020c7: SUB
000020c8: SWAP10
000020c9: DUP11
000020ca: ADD
000020cb: SWAP10
000020cc: SWAP1
000020cd: POP
000020ce: PUSH1 0x64
000020d0: PUSH1 0x0d
000020d2: DUP10
000020d3: SWAP1
000020d4: SHR
000020d5: PUSH1 0x7f
000020d7: AND
000020d8: DUP3
000020d9: MUL
000020da: DIV
000020db: DUP11
000020dc: SUB
000020dd: DUP7
000020de: ADD
000020df: SWAP6
000020e0: POP
000020e1: DUP11
000020e2: DUP8
000020e3: LT
000020e4: ISZERO
000020e5: PUSH2 0x2124
000020e8: JUMPI
000020e9: PUSH1 0x40
000020eb: MLOAD
000020ec: PUSH32 0x473f499f00000000000000000000000000000000000000000000000000000000
0000210d: DUP2
0000210e: MSTORE
0000210f: PUSH1 0x04
00002111: DUP2
00002112: ADD
00002113: DUP13
00002114: SWAP1
00002115: MSTORE
00002116: PUSH1 0x24
00002118: DUP2
00002119: ADD
0000211a: DUP9
0000211b: SWAP1
0000211c: MSTORE
0000211d: PUSH1 0x44
0000211f: ADD
00002120: PUSH2 0x00bb
00002123: JUMP
00002124: JUMPDEST
00002125: DUP11
00002126: DUP8
00002127: SUB
00002128: SWAP7
00002129: POP
0000212a: PUSH2 0x2710
0000212d: DUP6
0000212e: MUL
0000212f: PUSH12 0x033b2e3c9fd0803ce8000000
0000213c: DUP8
0000213d: MUL
0000213e: DUP2
0000213f: PUSH2 0x214a
00002142: JUMPI
00002143: PUSH2 0x214a
00002146: PUSH2 0x3f2b
00002149: JUMP
0000214a: JUMPDEST
0000214b: DIV
0000214c: DUP8
0000214d: LT
0000214e: ISZERO
0000214f: PUSH2 0x218e
00002152: JUMPI
00002153: PUSH1 0x40
00002155: MLOAD
00002156: PUSH32 0xb499466c00000000000000000000000000000000000000000000000000000000
00002177: DUP2
00002178: MSTORE
00002179: PUSH1 0x04
0000217b: DUP2
0000217c: ADD
0000217d: DUP9
0000217e: SWAP1
0000217f: MSTORE
00002180: PUSH1 0x24
00002182: DUP2
00002183: ADD
00002184: DUP8
00002185: SWAP1
00002186: MSTORE
00002187: PUSH1 0x44
00002189: ADD
0000218a: PUSH2 0x00bb
0000218d: JUMP
0000218e: JUMPDEST
0000218f: POP
00002190: POP
00002191: JUMPDEST
00002192: PUSH1 0x14
00002194: DUP7
00002195: SWAP1
00002196: SHR
00002197: PUSH1 0x03
00002199: AND
0000219a: DUP1
0000219b: ISZERO
0000219c: PUSH2 0x2202
0000219f: JUMPI
000021a0: PUSH0
000021a1: DUP12
000021a2: PUSH2 0x21cc
000021a5: JUMPI
000021a6: DUP11
000021a7: DUP5
000021a8: SUB
000021a9: PUSH12 0x033b2e3c9fd0803ce8000000
000021b6: DUP12
000021b7: DUP6
000021b8: ADD
000021b9: MUL
000021ba: DUP2
000021bb: PUSH2 0x21c6
000021be: JUMPI
000021bf: PUSH2 0x21c6
000021c2: PUSH2 0x3f2b
000021c5: JUMP
000021c6: JUMPDEST
000021c7: DIV
000021c8: PUSH2 0x21ef
000021cb: JUMP
000021cc: JUMPDEST
000021cd: DUP10
000021ce: DUP5
000021cf: ADD
000021d0: PUSH12 0x033b2e3c9fd0803ce8000000
000021dd: DUP13
000021de: DUP6
000021df: SUB
000021e0: MUL
000021e1: DUP2
000021e2: PUSH2 0x21ed
000021e5: JUMPI
000021e6: PUSH2 0x21ed
000021e9: PUSH2 0x3f2b
000021ec: JUMP
000021ed: JUMPDEST
000021ee: DIV
000021ef: JUMPDEST
000021f0: SWAP1
000021f1: POP
000021f2: PUSH2 0x21fe
000021f5: DUP9
000021f6: DUP11
000021f7: DUP5
000021f8: DUP5
000021f9: DUP10
000021fa: PUSH2 0x2927
000021fd: JUMP
000021fe: JUMPDEST
000021ff: SWAP2
00002200: POP
00002201: POP
00002202: JUMPDEST
00002203: PUSH1 0x01
00002205: DUP2
00002206: GT
00002207: DUP1
00002208: PUSH2 0x2218
0000220b: JUMPI
0000220c: POP
0000220d: PUSH1 0x01
0000220f: PUSH1 0x16
00002211: DUP9
00002212: SWAP1
00002213: SHR
00002214: AND
00002215: PUSH1 0x01
00002217: EQ
00002218: JUMPDEST
00002219: ISZERO
0000221a: PUSH2 0x2276
0000221d: JUMPI
0000221e: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
0000223f: DUP9
00002240: AND
00002241: PUSH0
00002242: SWAP1
00002243: DUP2
00002244: MSTORE
00002245: PUSH1 0x03
00002247: PUSH1 0x20
00002249: MSTORE
0000224a: PUSH1 0x40
0000224c: SWAP1
0000224d: KECCAK256
0000224e: DUP1
0000224f: SLOAD
00002250: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000
00002271: AND
00002272: TIMESTAMP
00002273: OR
00002274: SWAP1
00002275: SSTORE
00002276: JUMPDEST
00002277: POP
00002278: PUSH8 0x0fffffffffffffff
00002281: DUP6
00002282: GT
00002283: DUP1
00002284: PUSH2 0x2294
00002287: JUMPI
00002288: POP
00002289: PUSH8 0x0fffffffffffffff
00002292: DUP5
00002293: GT
00002294: JUMPDEST
00002295: ISZERO
00002296: PUSH2 0x22fd
00002299: JUMPI
0000229a: PUSH1 0x40
0000229c: MLOAD
0000229d: PUSH32 0x9e0db87800000000000000000000000000000000000000000000000000000000
000022be: DUP2
000022bf: MSTORE
000022c0: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
000022e1: DUP9
000022e2: AND
000022e3: PUSH1 0x04
000022e5: DUP3
000022e6: ADD
000022e7: MSTORE
000022e8: PUSH1 0x24
000022ea: DUP2
000022eb: ADD
000022ec: DUP7
000022ed: SWAP1
000022ee: MSTORE
000022ef: PUSH1 0x44
000022f1: DUP2
000022f2: ADD
000022f3: DUP6
000022f4: SWAP1
000022f5: MSTORE
000022f6: PUSH1 0x64
000022f8: ADD
000022f9: PUSH2 0x00bb
000022fc: JUMP
000022fd: JUMPDEST
000022fe: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
0000231f: DUP8
00002320: AND
00002321: PUSH0
00002322: SWAP1
00002323: DUP2
00002324: MSTORE
00002325: PUSH1 0x02
00002327: PUSH1 0x20
00002329: MSTORE
0000232a: PUSH1 0x40
0000232c: SWAP1
0000232d: KECCAK256
0000232e: DUP1
0000232f: SLOAD
00002330: PUSH17 0xffffffffffffffffffffffffffffffffff
00002342: AND
00002343: PUSH1 0x88
00002345: DUP8
00002346: SWAP1
00002347: SHL
00002348: OR
00002349: PUSH1 0xc4
0000234b: DUP7
0000234c: SWAP1
0000234d: SHL
0000234e: OR
0000234f: SWAP1
00002350: DUP2
00002351: SWAP1
00002352: SSTORE
00002353: SWAP6
00002354: POP
00002355: DUP10
00002356: ISZERO
00002357: PUSH2 0x23cd
0000235a: JUMPI
0000235b: PUSH1 0x40
0000235d: DUP1
0000235e: MLOAD
0000235f: PUSH9 0x010000000000000000
00002369: PUSH1 0x7d
0000236b: DUP13
0000236c: SWAP1
0000236d: SHL
0000236e: PUSH1 0x41
00002370: DUP13
00002371: SWAP1
00002372: SHL
00002373: PUSH1 0xc0
00002375: DUP13
00002376: SWAP1
00002377: SHR
00002378: OR
00002379: OR
0000237a: OR
0000237b: DUP2
0000237c: MSTORE
0000237d: PUSH1 0x20
0000237f: DUP2
00002380: ADD
00002381: DUP9
00002382: SWAP1
00002383: MSTORE
00002384: PUSH32 0xfbce846c23a724e6e61161894819ec46c90a8d3dd96e90e7342c6ef49ffb539c
000023a5: SWAP2
000023a6: ADD
000023a7: PUSH1 0x40
000023a9: MLOAD
000023aa: DUP1
000023ab: SWAP2
000023ac: SUB
000023ad: SWAP1
000023ae: LOG1
000023af: PUSH1 0x7e
000023b1: DUP7
000023b2: SWAP1
000023b3: SHR
000023b4: PUSH1 0x1f
000023b6: AND
000023b7: PUSH1 0x09
000023b9: DUP2
000023ba: GT
000023bb: ISZERO
000023bc: PUSH2 0x16cf
000023bf: JUMPI
000023c0: PUSH2 0x16be
000023c3: PUSH2 0x16b9
000023c6: PUSH1 0x09
000023c8: DUP4
000023c9: PUSH2 0x3da5
000023cc: JUMP
000023cd: JUMPDEST
000023ce: PUSH1 0x40
000023d0: DUP1
000023d1: MLOAD
000023d2: PUSH1 0x7d
000023d4: DUP12
000023d5: SWAP1
000023d6: SHL
000023d7: PUSH1 0x41
000023d9: DUP12
000023da: SWAP1
000023db: SHL
000023dc: PUSH1 0xc0
000023de: DUP12
000023df: SWAP1
000023e0: SHR
000023e1: OR
000023e2: OR
000023e3: DUP2
000023e4: MSTORE
000023e5: PUSH1 0x20
000023e7: DUP2
000023e8: ADD
000023e9: DUP9
000023ea: SWAP1
000023eb: MSTORE
000023ec: PUSH32 0xfbce846c23a724e6e61161894819ec46c90a8d3dd96e90e7342c6ef49ffb539c
0000240d: SWAP2
0000240e: ADD
0000240f: PUSH1 0x40
00002411: MLOAD
00002412: DUP1
00002413: SWAP2
00002414: SUB
00002415: SWAP1
00002416: LOG1
00002417: PUSH1 0x83
00002419: DUP7
0000241a: SWAP1
0000241b: SHR
0000241c: PUSH1 0x1f
0000241e: AND
0000241f: PUSH1 0x09
00002421: DUP2
00002422: GT
00002423: ISZERO
00002424: PUSH2 0x1769
00002427: JUMPI
00002428: PUSH2 0x1758
0000242b: PUSH2 0x16b9
0000242e: PUSH1 0x09
00002430: DUP4
00002431: PUSH2 0x3da5
00002434: JUMP
00002435: JUMPDEST
00002436: PUSH0
00002437: PUSH0
00002438: PUSH0
00002439: PUSH1 0x01
0000243b: PUSH1 0x16
0000243d: DUP9
0000243e: SWAP1
0000243f: SHR
00002440: AND
00002441: PUSH0
00002442: SUB
00002443: PUSH2 0x2570
00002446: JUMPI
00002447: PUSH3 0x07ffff
0000244b: PUSH1 0x3f
0000244d: DUP9
0000244e: SWAP1
0000244f: SHR
00002450: AND
00002451: SWAP3
00002452: POP
00002453: DUP3
00002454: PUSH0
00002455: SUB
00002456: PUSH2 0x2474
00002459: JUMPI
0000245a: PUSH4 0xffffffff
0000245f: PUSH1 0x1f
00002461: DUP9
00002462: SWAP1
00002463: SHR
00002464: AND
00002465: PUSH1 0xff
00002467: PUSH1 0x17
00002469: DUP10
0000246a: SWAP1
0000246b: SHR
0000246c: AND
0000246d: SHL
0000246e: SWAP3
0000246f: POP
00002470: PUSH2 0x257e
00002473: JUMP
00002474: JUMPDEST
00002475: PUSH2 0x249e
00002478: PUSH32 0x0000000000000000000000004ec7b668baf70d4a4b0fc7941a7708a07b6d45be
00002499: DUP5
0000249a: PUSH2 0x2cf1
0000249d: JUMP
0000249e: JUMPDEST
0000249f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000024b4: AND
000024b5: PUSH4 0x02c59a68
000024ba: PUSH2 0x24c6
000024bd: PUSH1 0x20
000024bf: DUP12
000024c0: ADD
000024c1: DUP12
000024c2: PUSH2 0x3bb6
000024c5: JUMP
000024c6: JUMPDEST
000024c7: PUSH2 0x24d6
000024ca: PUSH1 0x40
000024cc: DUP13
000024cd: ADD
000024ce: PUSH1 0x20
000024d0: DUP14
000024d1: ADD
000024d2: PUSH2 0x3bb6
000024d5: JUMP
000024d6: JUMPDEST
000024d7: PUSH1 0x40
000024d9: MLOAD
000024da: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
000024fb: PUSH1 0xe0
000024fd: DUP6
000024fe: SWAP1
000024ff: SHL
00002500: AND
00002501: DUP2
00002502: MSTORE
00002503: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002518: SWAP3
00002519: DUP4
0000251a: AND
0000251b: PUSH1 0x04
0000251d: DUP3
0000251e: ADD
0000251f: MSTORE
00002520: SWAP2
00002521: AND
00002522: PUSH1 0x24
00002524: DUP3
00002525: ADD
00002526: MSTORE
00002527: PUSH1 0x44
00002529: ADD
0000252a: PUSH1 0x20
0000252c: PUSH1 0x40
0000252e: MLOAD
0000252f: DUP1
00002530: DUP4
00002531: SUB
00002532: DUP2
00002533: PUSH0
00002534: DUP8
00002535: GAS
00002536: CALL
00002537: ISZERO
00002538: DUP1
00002539: ISZERO
0000253a: PUSH2 0x2545
0000253d: JUMPI
0000253e: RETURNDATASIZE
0000253f: PUSH0
00002540: PUSH0
00002541: RETURNDATACOPY
00002542: RETURNDATASIZE
00002543: PUSH0
00002544: REVERT
00002545: JUMPDEST
00002546: POP
00002547: POP
00002548: POP
00002549: POP
0000254a: PUSH1 0x40
0000254c: MLOAD
0000254d: RETURNDATASIZE
0000254e: PUSH1 0x1f
00002550: NOT
00002551: PUSH1 0x1f
00002553: DUP3
00002554: ADD
00002555: AND
00002556: DUP3
00002557: ADD
00002558: DUP1
00002559: PUSH1 0x40
0000255b: MSTORE
0000255c: POP
0000255d: DUP2
0000255e: ADD
0000255f: SWAP1
00002560: PUSH2 0x2569
00002563: SWAP2
00002564: SWAP1
00002565: PUSH2 0x3b9f
00002568: JUMP
00002569: JUMPDEST
0000256a: SWAP3
0000256b: POP
0000256c: PUSH2 0x257e
0000256f: JUMP
00002570: JUMPDEST
00002571: PUSH2 0x257b
00002574: DUP9
00002575: DUP9
00002576: DUP9
00002577: PUSH2 0x315a
0000257a: JUMP
0000257b: JUMPDEST
0000257c: SWAP3
0000257d: POP
0000257e: JUMPDEST
0000257f: PUSH2 0x3fff
00002582: PUSH1 0x53
00002584: DUP9
00002585: SWAP1
00002586: SHR
00002587: DUP2
00002588: AND
00002589: SWAP1
0000258a: PUSH1 0x61
0000258c: DUP10
0000258d: SWAP1
0000258e: SHR
0000258f: AND
00002590: PUSH1 0x01
00002592: PUSH1 0x52
00002594: DUP11
00002595: SWAP1
00002596: SHR
00002597: DUP2
00002598: AND
00002599: SWAP1
0000259a: SUB
0000259b: PUSH2 0x25af
0000259e: JUMPI
0000259f: PUSH2 0x25a9
000025a2: DUP3
000025a3: DUP3
000025a4: DUP11
000025a5: PUSH2 0x344e
000025a8: JUMP
000025a9: JUMPDEST
000025aa: SWAP1
000025ab: SWAP3
000025ac: POP
000025ad: SWAP1
000025ae: POP
000025af: JUMPDEST
000025b0: PUSH0
000025b1: PUSH0
000025b2: DUP4
000025b3: PUSH2 0x2710
000025b6: SUB
000025b7: PUSH2 0x2710
000025ba: DUP9
000025bb: MUL
000025bc: DUP2
000025bd: PUSH2 0x25c8
000025c0: JUMPI
000025c1: PUSH2 0x25c8
000025c4: PUSH2 0x3f2b
000025c7: JUMP
000025c8: JUMPDEST
000025c9: DIV
000025ca: SWAP2
000025cb: POP
000025cc: POP
000025cd: PUSH2 0x2710
000025d0: DUP3
000025d1: DUP2
000025d2: SUB
000025d3: DUP8
000025d4: MUL
000025d5: DIV
000025d6: PUSH1 0x03
000025d8: PUSH1 0x14
000025da: DUP13
000025db: SWAP1
000025dc: SHR
000025dd: AND
000025de: PUSH0
000025df: PUSH1 0x01
000025e1: DUP3
000025e2: GT
000025e3: ISZERO
000025e4: PUSH2 0x2751
000025e7: JUMPI
000025e8: DUP2
000025e9: PUSH1 0x02
000025eb: SUB
000025ec: PUSH2 0x2665
000025ef: JUMPI
000025f0: POP
000025f1: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
00002612: DUP12
00002613: AND
00002614: PUSH0
00002615: SWAP1
00002616: DUP2
00002617: MSTORE
00002618: PUSH1 0x03
0000261a: PUSH1 0x20
0000261c: MSTORE
0000261d: PUSH1 0x40
0000261f: SWAP1
00002620: KECCAK256
00002621: SLOAD
00002622: PUSH1 0x21
00002624: DUP2
00002625: SWAP1
00002626: SHR
00002627: PUSH3 0xffffff
0000262b: AND
0000262c: PUSH5 0x01ffffffff
00002632: DUP3
00002633: AND
00002634: TIMESTAMP
00002635: SUB
00002636: DUP2
00002637: DUP2
00002638: LT
00002639: ISZERO
0000263a: PUSH2 0x265a
0000263d: JUMPI
0000263e: DUP2
0000263f: DUP2
00002640: DUP13
00002641: DUP9
00002642: SUB
00002643: MUL
00002644: DUP2
00002645: PUSH2 0x2650
00002648: JUMPI
00002649: PUSH2 0x2650
0000264c: PUSH2 0x3f2b
0000264f: JUMP
00002650: JUMPDEST
00002651: DIV
00002652: DUP12
00002653: ADD
00002654: SWAP11
00002655: POP
00002656: PUSH2 0x265e
00002659: JUMP
0000265a: JUMPDEST
0000265b: DUP6
0000265c: SWAP11
0000265d: POP
0000265e: JUMPDEST
0000265f: POP
00002660: POP
00002661: PUSH2 0x26df
00002664: JUMP
00002665: JUMPDEST
00002666: DUP2
00002667: PUSH1 0x03
00002669: SUB
0000266a: PUSH2 0x26df
0000266d: JUMPI
0000266e: POP
0000266f: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
00002690: DUP12
00002691: AND
00002692: PUSH0
00002693: SWAP1
00002694: DUP2
00002695: MSTORE
00002696: PUSH1 0x03
00002698: PUSH1 0x20
0000269a: MSTORE
0000269b: PUSH1 0x40
0000269d: SWAP1
0000269e: KECCAK256
0000269f: SLOAD
000026a0: PUSH1 0x21
000026a2: DUP2
000026a3: SWAP1
000026a4: SHR
000026a5: PUSH3 0xffffff
000026a9: AND
000026aa: PUSH5 0x01ffffffff
000026b0: DUP3
000026b1: AND
000026b2: TIMESTAMP
000026b3: SUB
000026b4: DUP2
000026b5: DUP2
000026b6: LT
000026b7: ISZERO
000026b8: PUSH2 0x26d8
000026bb: JUMPI
000026bc: DUP2
000026bd: DUP2
000026be: DUP7
000026bf: DUP14
000026c0: SUB
000026c1: MUL
000026c2: DUP2
000026c3: PUSH2 0x26ce
000026c6: JUMPI
000026c7: PUSH2 0x26ce
000026ca: PUSH2 0x3f2b
000026cd: JUMP
000026ce: JUMPDEST
000026cf: DIV
000026d0: DUP12
000026d1: SUB
000026d2: SWAP11
000026d3: POP
000026d4: PUSH2 0x26dc
000026d7: JUMP
000026d8: JUMPDEST
000026d9: DUP5
000026da: SWAP11
000026db: POP
000026dc: JUMPDEST
000026dd: POP
000026de: POP
000026df: JUMPDEST
000026e0: DUP1
000026e1: ISZERO
000026e2: PUSH2 0x2751
000026e5: JUMPI
000026e6: PUSH3 0x0fffff
000026ea: PUSH1 0x41
000026ec: DUP3
000026ed: SWAP1
000026ee: SHR
000026ef: AND
000026f0: PUSH1 0xff
000026f2: PUSH1 0x39
000026f4: DUP4
000026f5: SWAP1
000026f6: SHR
000026f7: AND
000026f8: SHL
000026f9: SWAP2
000026fa: POP
000026fb: DUP2
000026fc: DUP10
000026fd: GT
000026fe: ISZERO
000026ff: PUSH2 0x270a
00002702: JUMPI
00002703: DUP2
00002704: SWAP9
00002705: POP
00002706: PUSH2 0x272b
00002709: JUMP
0000270a: JUMPDEST
0000270b: PUSH3 0x0fffff
0000270f: PUSH1 0x5d
00002711: DUP3
00002712: SWAP1
00002713: SHR
00002714: AND
00002715: PUSH1 0xff
00002717: PUSH1 0x55
00002719: DUP4
0000271a: SWAP1
0000271b: SHR
0000271c: AND
0000271d: SHL
0000271e: SWAP2
0000271f: POP
00002720: DUP2
00002721: DUP10
00002722: LT
00002723: ISZERO
00002724: PUSH2 0x272b
00002727: JUMPI
00002728: DUP2
00002729: SWAP9
0000272a: POP
0000272b: JUMPDEST
0000272c: DUP6
0000272d: PUSH2 0x2710
00002730: SUB
00002731: PUSH2 0x2710
00002734: DUP11
00002735: MUL
00002736: DUP2
00002737: PUSH2 0x2742
0000273a: JUMPI
0000273b: PUSH2 0x2742
0000273e: PUSH2 0x3f2b
00002741: JUMP
00002742: JUMPDEST
00002743: DIV
00002744: SWAP4
00002745: POP
00002746: PUSH2 0x2710
00002749: DUP6
0000274a: DUP2
0000274b: SUB
0000274c: DUP11
0000274d: MUL
0000274e: DIV
0000274f: SWAP3
00002750: POP
00002751: JUMPDEST
00002752: PUSH16 0x4b3b4ca85a86c47a098a224000000000
00002763: DUP5
00002764: LT
00002765: ISZERO
00002766: PUSH2 0x277b
00002769: JUMPI
0000276a: PUSH2 0x2774
0000276d: DUP4
0000276e: DUP6
0000276f: MUL
00002770: PUSH2 0x354d
00002773: JUMP
00002774: JUMPDEST
00002775: SWAP2
00002776: POP
00002777: PUSH2 0x27a7
0000277a: JUMP
0000277b: JUMPDEST
0000277c: PUSH2 0x279a
0000277f: PUSH8 0x0de0b6b3a7640000
00002788: DUP5
00002789: DIV
0000278a: PUSH8 0x0de0b6b3a7640000
00002793: DUP7
00002794: DIV
00002795: MUL
00002796: PUSH2 0x354d
00002799: JUMP
0000279a: JUMPDEST
0000279b: PUSH8 0x0de0b6b3a7640000
000027a4: MUL
000027a5: SWAP2
000027a6: POP
000027a7: JUMPDEST
000027a8: PUSH12 0x033b2e3c9fd0803ce8000000
000027b5: DUP3
000027b6: LT
000027b7: ISZERO
000027b8: PUSH2 0x27d1
000027bb: JUMPI
000027bc: PUSH2 0x27c7
000027bf: DUP3
000027c0: DUP6
000027c1: DUP14
000027c2: DUP14
000027c3: PUSH2 0x35ff
000027c6: JUMP
000027c7: JUMPDEST
000027c8: SWAP1
000027c9: SWAP9
000027ca: POP
000027cb: SWAP7
000027cc: POP
000027cd: PUSH2 0x282e
000027d0: JUMP
000027d1: JUMPDEST
000027d2: PUSH2 0x2829
000027d5: DUP3
000027d6: PUSH23 0x0a70c3c40a64e6c51999090b65f67d9240000000000000
000027ee: DUP2
000027ef: PUSH2 0x27fa
000027f2: JUMPI
000027f3: PUSH2 0x27fa
000027f6: PUSH2 0x3f2b
000027f9: JUMP
000027fa: JUMPDEST
000027fb: DIV
000027fc: DUP5
000027fd: PUSH23 0x0a70c3c40a64e6c51999090b65f67d9240000000000000
00002815: DUP2
00002816: PUSH2 0x2821
00002819: JUMPI
0000281a: PUSH2 0x2821
0000281d: PUSH2 0x3f2b
00002820: JUMP
00002821: JUMPDEST
00002822: DIV
00002823: DUP13
00002824: DUP15
00002825: PUSH2 0x35ff
00002828: JUMP
00002829: JUMPDEST
0000282a: SWAP9
0000282b: POP
0000282c: SWAP7
0000282d: POP
0000282e: JUMPDEST
0000282f: POP
00002830: SWAP7
00002831: SWAP13
00002832: SWAP6
00002833: SWAP1
00002834: SWAP9
00002835: ADD
00002836: SWAP11
00002837: POP
00002838: POP
00002839: POP
0000283a: SWAP4
0000283b: ADD
0000283c: SWAP6
0000283d: POP
0000283e: SWAP4
0000283f: POP
00002840: POP
00002841: POP
00002842: POP
00002843: JUMP
00002844: JUMPDEST
00002845: PUSH0
00002846: DUP2
00002847: PUSH1 0x03
00002849: SUB
0000284a: PUSH2 0x2856
0000284d: JUMPI
0000284e: POP
0000284f: PUSH2 0x03e8
00002852: SWAP2
00002853: SWAP1
00002854: POP
00002855: JUMP
00002856: JUMPDEST
00002857: DUP2
00002858: PUSH1 0x09
0000285a: SUB
0000285b: PUSH2 0x2869
0000285e: JUMPI
0000285f: POP
00002860: PUSH4 0x3b9aca00
00002865: SWAP2
00002866: SWAP1
00002867: POP
00002868: JUMP
00002869: JUMPDEST
0000286a: DUP2
0000286b: PUSH1 0x01
0000286d: SUB
0000286e: PUSH2 0x2879
00002871: JUMPI
00002872: POP
00002873: PUSH1 0x0a
00002875: SWAP2
00002876: SWAP1
00002877: POP
00002878: JUMP
00002879: JUMPDEST
0000287a: DUP2
0000287b: PUSH0
0000287c: SUB
0000287d: PUSH2 0x2888
00002880: JUMPI
00002881: POP
00002882: PUSH1 0x01
00002884: SWAP2
00002885: SWAP1
00002886: POP
00002887: JUMP
00002888: JUMPDEST
00002889: DUP2
0000288a: PUSH1 0x02
0000288c: SUB
0000288d: PUSH2 0x2898
00002890: JUMPI
00002891: POP
00002892: PUSH1 0x64
00002894: SWAP2
00002895: SWAP1
00002896: POP
00002897: JUMP
00002898: JUMPDEST
00002899: DUP2
0000289a: PUSH1 0x04
0000289c: SUB
0000289d: PUSH2 0x28a9
000028a0: JUMPI
000028a1: POP
000028a2: PUSH2 0x2710
000028a5: SWAP2
000028a6: SWAP1
000028a7: POP
000028a8: JUMP
000028a9: JUMPDEST
000028aa: DUP2
000028ab: PUSH1 0x05
000028ad: SUB
000028ae: PUSH2 0x28bb
000028b1: JUMPI
000028b2: POP
000028b3: PUSH3 0x0186a0
000028b7: SWAP2
000028b8: SWAP1
000028b9: POP
000028ba: JUMP
000028bb: JUMPDEST
000028bc: DUP2
000028bd: PUSH1 0x06
000028bf: SUB
000028c0: PUSH2 0x28cd
000028c3: JUMPI
000028c4: POP
000028c5: PUSH3 0x0f4240
000028c9: SWAP2
000028ca: SWAP1
000028cb: POP
000028cc: JUMP
000028cd: JUMPDEST
000028ce: DUP2
000028cf: PUSH1 0x07
000028d1: SUB
000028d2: PUSH2 0x28df
000028d5: JUMPI
000028d6: POP
000028d7: PUSH3 0x989680
000028db: SWAP2
000028dc: SWAP1
000028dd: POP
000028de: JUMP
000028df: JUMPDEST
000028e0: DUP2
000028e1: PUSH1 0x08
000028e3: SUB
000028e4: PUSH2 0x28f2
000028e7: JUMPI
000028e8: POP
000028e9: PUSH4 0x05f5e100
000028ee: SWAP2
000028ef: SWAP1
000028f0: POP
000028f1: JUMP
000028f2: JUMPDEST
000028f3: PUSH1 0x40
000028f5: MLOAD
000028f6: PUSH32 0x42cfde2500000000000000000000000000000000000000000000000000000000
00002917: DUP2
00002918: MSTORE
00002919: PUSH1 0x04
0000291b: DUP2
0000291c: ADD
0000291d: DUP4
0000291e: SWAP1
0000291f: MSTORE
00002920: PUSH1 0x24
00002922: ADD
00002923: PUSH2 0x00bb
00002926: JUMP
00002927: JUMPDEST
00002928: PUSH0
00002929: PUSH2 0x3fff
0000292c: PUSH1 0x53
0000292e: DUP8
0000292f: SWAP1
00002930: SHR
00002931: DUP2
00002932: AND
00002933: SWAP1
00002934: PUSH1 0x61
00002936: DUP9
00002937: SWAP1
00002938: SHR
00002939: AND
0000293a: PUSH1 0x01
0000293c: PUSH1 0x52
0000293e: DUP10
0000293f: SWAP1
00002940: SHR
00002941: DUP2
00002942: AND
00002943: SWAP1
00002944: SUB
00002945: PUSH2 0x2959
00002948: JUMPI
00002949: PUSH2 0x2953
0000294c: DUP3
0000294d: DUP3
0000294e: DUP10
0000294f: PUSH2 0x344e
00002952: JUMP
00002953: JUMPDEST
00002954: SWAP1
00002955: SWAP3
00002956: POP
00002957: SWAP1
00002958: POP
00002959: JUMPDEST
0000295a: DUP2
0000295b: PUSH2 0x2710
0000295e: SUB
0000295f: PUSH2 0x2710
00002962: DUP6
00002963: MUL
00002964: DUP2
00002965: PUSH2 0x2970
00002968: JUMPI
00002969: PUSH2 0x2970
0000296c: PUSH2 0x3f2b
0000296f: JUMP
00002970: JUMPDEST
00002971: DIV
00002972: SWAP2
00002973: POP
00002974: PUSH2 0x2710
00002977: DUP2
00002978: DUP2
00002979: SUB
0000297a: DUP6
0000297b: MUL
0000297c: DIV
0000297d: SWAP1
0000297e: POP
0000297f: PUSH1 0x7f
00002981: PUSH1 0x70
00002983: DUP10
00002984: SWAP1
00002985: SHR
00002986: DUP2
00002987: AND
00002988: SWAP1
00002989: PUSH1 0x77
0000298b: DUP11
0000298c: SWAP1
0000298d: SHR
0000298e: AND
0000298f: PUSH1 0x01
00002991: PUSH1 0x6f
00002993: DUP12
00002994: SWAP1
00002995: SHR
00002996: DUP2
00002997: AND
00002998: SWAP1
00002999: SUB
0000299a: PUSH2 0x29ae
0000299d: JUMPI
0000299e: PUSH2 0x29a8
000029a1: DUP3
000029a2: DUP3
000029a3: DUP12
000029a4: PUSH2 0x3678
000029a7: JUMP
000029a8: JUMPDEST
000029a9: SWAP1
000029aa: SWAP3
000029ab: POP
000029ac: SWAP1
000029ad: POP
000029ae: JUMPDEST
000029af: PUSH1 0x64
000029b1: SWAP2
000029b2: DUP3
000029b3: SUB
000029b4: DUP7
000029b5: DUP6
000029b6: SUB
000029b7: MUL
000029b8: DUP3
000029b9: SWAP1
000029ba: DIV
000029bb: DUP7
000029bc: ADD
000029bd: SWAP2
000029be: SWAP1
000029bf: DUP2
000029c0: SUB
000029c1: DUP4
000029c2: DUP8
000029c3: SUB
000029c4: MUL
000029c5: DIV
000029c6: DUP6
000029c7: SUB
000029c8: DUP2
000029c9: DUP8
000029ca: GT
000029cb: ISZERO
000029cc: PUSH2 0x2a46
000029cf: JUMPI
000029d0: DUP8
000029d1: PUSH1 0x02
000029d3: EQ
000029d4: PUSH2 0x2a41
000029d7: JUMPI
000029d8: POP
000029d9: POP
000029da: POP
000029db: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
000029fc: DUP7
000029fd: AND
000029fe: PUSH0
000029ff: SWAP1
00002a00: DUP2
00002a01: MSTORE
00002a02: PUSH1 0x02
00002a04: PUSH1 0x20
00002a06: DUP2
00002a07: SWAP1
00002a08: MSTORE
00002a09: PUSH1 0x40
00002a0b: SWAP1
00002a0c: SWAP2
00002a0d: KECCAK256
00002a0e: DUP1
00002a0f: SLOAD
00002a10: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffff
00002a31: AND
00002a32: PUSH3 0x200000
00002a36: OR
00002a37: SWAP1
00002a38: SSTORE
00002a39: SWAP2
00002a3a: POP
00002a3b: PUSH2 0x2b36
00002a3e: SWAP1
00002a3f: POP
00002a40: JUMP
00002a41: JUMPDEST
00002a42: PUSH2 0x2b2e
00002a45: JUMP
00002a46: JUMPDEST
00002a47: DUP1
00002a48: DUP8
00002a49: LT
00002a4a: ISZERO
00002a4b: PUSH2 0x2abe
00002a4e: JUMPI
00002a4f: DUP8
00002a50: PUSH1 0x03
00002a52: EQ
00002a53: PUSH2 0x2a41
00002a56: JUMPI
00002a57: POP
00002a58: POP
00002a59: POP
00002a5a: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
00002a7b: DUP7
00002a7c: AND
00002a7d: PUSH0
00002a7e: SWAP1
00002a7f: DUP2
00002a80: MSTORE
00002a81: PUSH1 0x02
00002a83: PUSH1 0x20
00002a85: MSTORE
00002a86: PUSH1 0x40
00002a88: SWAP1
00002a89: KECCAK256
00002a8a: DUP1
00002a8b: SLOAD
00002a8c: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffff
00002aad: AND
00002aae: PUSH3 0x300000
00002ab2: OR
00002ab3: SWAP1
00002ab4: SSTORE
00002ab5: POP
00002ab6: PUSH1 0x03
00002ab8: SWAP1
00002ab9: POP
00002aba: PUSH2 0x2b36
00002abd: JUMP
00002abe: JUMPDEST
00002abf: DUP8
00002ac0: PUSH1 0x01
00002ac2: EQ
00002ac3: PUSH2 0x2b2e
00002ac6: JUMPI
00002ac7: POP
00002ac8: POP
00002ac9: POP
00002aca: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
00002aeb: DUP7
00002aec: AND
00002aed: PUSH0
00002aee: SWAP1
00002aef: DUP2
00002af0: MSTORE
00002af1: PUSH1 0x02
00002af3: PUSH1 0x20
00002af5: MSTORE
00002af6: PUSH1 0x40
00002af8: SWAP1
00002af9: KECCAK256
00002afa: DUP1
00002afb: SLOAD
00002afc: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfffff
00002b1d: AND
00002b1e: PUSH3 0x100000
00002b22: OR
00002b23: SWAP1
00002b24: SSTORE
00002b25: POP
00002b26: PUSH1 0x01
00002b28: SWAP1
00002b29: POP
00002b2a: PUSH2 0x2b36
00002b2d: JUMP
00002b2e: JUMPDEST
00002b2f: DUP8
00002b30: SWAP5
00002b31: POP
00002b32: POP
00002b33: POP
00002b34: POP
00002b35: POP
00002b36: JUMPDEST
00002b37: SWAP6
00002b38: SWAP5
00002b39: POP
00002b3a: POP
00002b3b: POP
00002b3c: POP
00002b3d: POP
00002b3e: JUMP
00002b3f: JUMPDEST
00002b40: PUSH0
00002b41: PUSH0
00002b42: PUSH0
00002b43: PUSH0
00002b44: PUSH0
00002b45: DUP6
00002b46: DUP8
00002b47: PUSH2 0x4e20
00002b4a: CALL
00002b4b: SWAP1
00002b4c: POP
00002b4d: DUP1
00002b4e: PUSH2 0x1cd6
00002b51: JUMPI
00002b52: PUSH1 0x40
00002b54: MLOAD
00002b55: PUSH32 0xdee51a8a00000000000000000000000000000000000000000000000000000000
00002b76: DUP2
00002b77: MSTORE
00002b78: PUSH3 0x01155a
00002b7c: PUSH1 0x04
00002b7e: DUP3
00002b7f: ADD
00002b80: MSTORE
00002b81: PUSH1 0x24
00002b83: ADD
00002b84: PUSH2 0x00bb
00002b87: JUMP
00002b88: JUMPDEST
00002b89: PUSH0
00002b8a: PUSH1 0x40
00002b8c: MLOAD
00002b8d: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000
00002bae: DUP2
00002baf: MSTORE
00002bb0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002bc5: DUP5
00002bc6: AND
00002bc7: PUSH1 0x04
00002bc9: DUP3
00002bca: ADD
00002bcb: MSTORE
00002bcc: DUP3
00002bcd: PUSH1 0x24
00002bcf: DUP3
00002bd0: ADD
00002bd1: MSTORE
00002bd2: PUSH1 0x20
00002bd4: PUSH0
00002bd5: PUSH1 0x44
00002bd7: DUP4
00002bd8: PUSH0
00002bd9: DUP10
00002bda: GAS
00002bdb: CALL
00002bdc: RETURNDATASIZE
00002bdd: ISZERO
00002bde: PUSH1 0x1f
00002be0: RETURNDATASIZE
00002be1: GT
00002be2: PUSH1 0x01
00002be4: PUSH0
00002be5: MLOAD
00002be6: EQ
00002be7: AND
00002be8: OR
00002be9: AND
00002bea: SWAP2
00002beb: POP
00002bec: POP
00002bed: DUP1
00002bee: PUSH2 0x2c28
00002bf1: JUMPI
00002bf2: PUSH1 0x40
00002bf4: MLOAD
00002bf5: PUSH32 0xdee51a8a00000000000000000000000000000000000000000000000000000000
00002c16: DUP2
00002c17: MSTORE
00002c18: PUSH3 0x01155a
00002c1c: PUSH1 0x04
00002c1e: DUP3
00002c1f: ADD
00002c20: MSTORE
00002c21: PUSH1 0x24
00002c23: ADD
00002c24: PUSH2 0x00bb
00002c27: JUMP
00002c28: JUMPDEST
00002c29: POP
00002c2a: POP
00002c2b: POP
00002c2c: POP
00002c2d: JUMP
00002c2e: JUMPDEST
00002c2f: PUSH0
00002c30: PUSH1 0x40
00002c32: MLOAD
00002c33: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000
00002c54: DUP2
00002c55: MSTORE
00002c56: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002c6b: DUP6
00002c6c: AND
00002c6d: PUSH1 0x04
00002c6f: DUP3
00002c70: ADD
00002c71: MSTORE
00002c72: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002c87: DUP5
00002c88: AND
00002c89: PUSH1 0x24
00002c8b: DUP3
00002c8c: ADD
00002c8d: MSTORE
00002c8e: DUP3
00002c8f: PUSH1 0x44
00002c91: DUP3
00002c92: ADD
00002c93: MSTORE
00002c94: PUSH1 0x20
00002c96: PUSH0
00002c97: PUSH1 0x64
00002c99: DUP4
00002c9a: PUSH0
00002c9b: DUP11
00002c9c: GAS
00002c9d: CALL
00002c9e: RETURNDATASIZE
00002c9f: ISZERO
00002ca0: PUSH1 0x1f
00002ca2: RETURNDATASIZE
00002ca3: GT
00002ca4: PUSH1 0x01
00002ca6: PUSH0
00002ca7: MLOAD
00002ca8: EQ
00002ca9: AND
00002caa: OR
00002cab: AND
00002cac: SWAP2
00002cad: POP
00002cae: POP
00002caf: DUP1
00002cb0: PUSH2 0x2cea
00002cb3: JUMPI
00002cb4: PUSH1 0x40
00002cb6: MLOAD
00002cb7: PUSH32 0xdee51a8a00000000000000000000000000000000000000000000000000000000
00002cd8: DUP2
00002cd9: MSTORE
00002cda: PUSH3 0x011559
00002cde: PUSH1 0x04
00002ce0: DUP3
00002ce1: ADD
00002ce2: MSTORE
00002ce3: PUSH1 0x24
00002ce5: ADD
00002ce6: PUSH2 0x00bb
00002ce9: JUMP
00002cea: JUMPDEST
00002ceb: POP
00002cec: POP
00002ced: POP
00002cee: POP
00002cef: POP
00002cf0: JUMP
00002cf1: JUMPDEST
00002cf2: PUSH0
00002cf3: PUSH1 0x60
00002cf5: DUP3
00002cf6: PUSH0
00002cf7: SUB
00002cf8: PUSH2 0x2d04
00002cfb: JUMPI
00002cfc: PUSH0
00002cfd: SWAP2
00002cfe: POP
00002cff: POP
00002d00: PUSH2 0x3154
00002d03: JUMP
00002d04: JUMPDEST
00002d05: PUSH1 0x7f
00002d07: DUP4
00002d08: GT
00002d09: PUSH2 0x2dcd
00002d0c: JUMPI
00002d0d: PUSH1 0x40
00002d0f: MLOAD
00002d10: PUSH32 0xd600000000000000000000000000000000000000000000000000000000000000
00002d31: PUSH1 0x20
00002d33: DUP3
00002d34: ADD
00002d35: MSTORE
00002d36: PUSH32 0x9400000000000000000000000000000000000000000000000000000000000000
00002d57: PUSH1 0x21
00002d59: DUP3
00002d5a: ADD
00002d5b: MSTORE
00002d5c: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000
00002d7d: PUSH1 0x60
00002d7f: DUP7
00002d80: SWAP1
00002d81: SHL
00002d82: AND
00002d83: PUSH1 0x22
00002d85: DUP3
00002d86: ADD
00002d87: MSTORE
00002d88: PUSH1 0xf8
00002d8a: DUP5
00002d8b: SWAP1
00002d8c: SHL
00002d8d: PUSH32 0xff00000000000000000000000000000000000000000000000000000000000000
00002dae: AND
00002daf: PUSH1 0x36
00002db1: DUP3
00002db2: ADD
00002db3: MSTORE
00002db4: PUSH1 0x37
00002db6: ADD
00002db7: JUMPDEST
00002db8: PUSH1 0x40
00002dba: MLOAD
00002dbb: PUSH1 0x20
00002dbd: DUP2
00002dbe: DUP4
00002dbf: SUB
00002dc0: SUB
00002dc1: DUP2
00002dc2: MSTORE
00002dc3: SWAP1
00002dc4: PUSH1 0x40
00002dc6: MSTORE
00002dc7: SWAP1
00002dc8: POP
00002dc9: PUSH2 0x3149
00002dcc: JUMP
00002dcd: JUMPDEST
00002dce: PUSH1 0xff
00002dd0: DUP4
00002dd1: GT
00002dd2: PUSH2 0x2eaa
00002dd5: JUMPI
00002dd6: PUSH1 0x40
00002dd8: MLOAD
00002dd9: PUSH32 0xd700000000000000000000000000000000000000000000000000000000000000
00002dfa: PUSH1 0x20
00002dfc: DUP3
00002dfd: ADD
00002dfe: MSTORE
00002dff: PUSH32 0x9400000000000000000000000000000000000000000000000000000000000000
00002e20: PUSH1 0x21
00002e22: DUP3
00002e23: ADD
00002e24: MSTORE
00002e25: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000
00002e46: PUSH1 0x60
00002e48: DUP7
00002e49: SWAP1
00002e4a: SHL
00002e4b: AND
00002e4c: PUSH1 0x22
00002e4e: DUP3
00002e4f: ADD
00002e50: MSTORE
00002e51: PUSH32 0x8100000000000000000000000000000000000000000000000000000000000000
00002e72: PUSH1 0x36
00002e74: DUP3
00002e75: ADD
00002e76: MSTORE
00002e77: PUSH1 0xf8
00002e79: DUP5
00002e7a: SWAP1
00002e7b: SHL
00002e7c: PUSH32 0xff00000000000000000000000000000000000000000000000000000000000000
00002e9d: AND
00002e9e: PUSH1 0x37
00002ea0: DUP3
00002ea1: ADD
00002ea2: MSTORE
00002ea3: PUSH1 0x38
00002ea5: ADD
00002ea6: PUSH2 0x2db7
00002ea9: JUMP
00002eaa: JUMPDEST
00002eab: PUSH2 0xffff
00002eae: DUP4
00002eaf: GT
00002eb0: PUSH2 0x2f88
00002eb3: JUMPI
00002eb4: PUSH1 0x40
00002eb6: MLOAD
00002eb7: PUSH32 0xd800000000000000000000000000000000000000000000000000000000000000
00002ed8: PUSH1 0x20
00002eda: DUP3
00002edb: ADD
00002edc: MSTORE
00002edd: PUSH32 0x9400000000000000000000000000000000000000000000000000000000000000
00002efe: PUSH1 0x21
00002f00: DUP3
00002f01: ADD
00002f02: MSTORE
00002f03: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000
00002f24: PUSH1 0x60
00002f26: DUP7
00002f27: SWAP1
00002f28: SHL
00002f29: AND
00002f2a: PUSH1 0x22
00002f2c: DUP3
00002f2d: ADD
00002f2e: MSTORE
00002f2f: PUSH32 0x8200000000000000000000000000000000000000000000000000000000000000
00002f50: PUSH1 0x36
00002f52: DUP3
00002f53: ADD
00002f54: MSTORE
00002f55: PUSH32 0xffff000000000000000000000000000000000000000000000000000000000000
00002f76: PUSH1 0xf0
00002f78: DUP6
00002f79: SWAP1
00002f7a: SHL
00002f7b: AND
00002f7c: PUSH1 0x37
00002f7e: DUP3
00002f7f: ADD
00002f80: MSTORE
00002f81: PUSH1 0x39
00002f83: ADD
00002f84: PUSH2 0x2db7
00002f87: JUMP
00002f88: JUMPDEST
00002f89: PUSH3 0xffffff
00002f8d: DUP4
00002f8e: GT
00002f8f: PUSH2 0x3067
00002f92: JUMPI
00002f93: PUSH1 0x40
00002f95: MLOAD
00002f96: PUSH32 0xd900000000000000000000000000000000000000000000000000000000000000
00002fb7: PUSH1 0x20
00002fb9: DUP3
00002fba: ADD
00002fbb: MSTORE
00002fbc: PUSH32 0x9400000000000000000000000000000000000000000000000000000000000000
00002fdd: PUSH1 0x21
00002fdf: DUP3
00002fe0: ADD
00002fe1: MSTORE
00002fe2: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000
00003003: PUSH1 0x60
00003005: DUP7
00003006: SWAP1
00003007: SHL
00003008: AND
00003009: PUSH1 0x22
0000300b: DUP3
0000300c: ADD
0000300d: MSTORE
0000300e: PUSH32 0x8300000000000000000000000000000000000000000000000000000000000000
0000302f: PUSH1 0x36
00003031: DUP3
00003032: ADD
00003033: MSTORE
00003034: PUSH32 0xffffff0000000000000000000000000000000000000000000000000000000000
00003055: PUSH1 0xe8
00003057: DUP6
00003058: SWAP1
00003059: SHL
0000305a: AND
0000305b: PUSH1 0x37
0000305d: DUP3
0000305e: ADD
0000305f: MSTORE
00003060: PUSH1 0x3a
00003062: ADD
00003063: PUSH2 0x2db7
00003066: JUMP
00003067: JUMPDEST
00003068: PUSH1 0x40
0000306a: MLOAD
0000306b: PUSH32 0xda00000000000000000000000000000000000000000000000000000000000000
0000308c: PUSH1 0x20
0000308e: DUP3
0000308f: ADD
00003090: MSTORE
00003091: PUSH32 0x9400000000000000000000000000000000000000000000000000000000000000
000030b2: PUSH1 0x21
000030b4: DUP3
000030b5: ADD
000030b6: MSTORE
000030b7: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000
000030d8: PUSH1 0x60
000030da: DUP7
000030db: SWAP1
000030dc: SHL
000030dd: AND
000030de: PUSH1 0x22
000030e0: DUP3
000030e1: ADD
000030e2: MSTORE
000030e3: PUSH32 0x8400000000000000000000000000000000000000000000000000000000000000
00003104: PUSH1 0x36
00003106: DUP3
00003107: ADD
00003108: MSTORE
00003109: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
0000312a: PUSH1 0xe0
0000312c: DUP6
0000312d: SWAP1
0000312e: SHL
0000312f: AND
00003130: PUSH1 0x37
00003132: DUP3
00003133: ADD
00003134: MSTORE
00003135: PUSH1 0x3b
00003137: ADD
00003138: PUSH1 0x40
0000313a: MLOAD
0000313b: PUSH1 0x20
0000313d: DUP2
0000313e: DUP4
0000313f: SUB
00003140: SUB
00003141: DUP2
00003142: MSTORE
00003143: SWAP1
00003144: PUSH1 0x40
00003146: MSTORE
00003147: SWAP1
00003148: POP
00003149: JUMPDEST
0000314a: DUP1
0000314b: MLOAD
0000314c: PUSH1 0x20
0000314e: SWAP1
0000314f: SWAP2
00003150: ADD
00003151: KECCAK256
00003152: SWAP1
00003153: POP
00003154: JUMPDEST
00003155: SWAP3
00003156: SWAP2
00003157: POP
00003158: POP
00003159: JUMP
0000315a: JUMPDEST
0000315b: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
0000317c: DUP2
0000317d: AND
0000317e: PUSH0
0000317f: SWAP1
00003180: DUP2
00003181: MSTORE
00003182: PUSH1 0x03
00003184: PUSH1 0x20
00003186: MSTORE
00003187: PUSH1 0x40
00003189: DUP2
0000318a: KECCAK256
0000318b: SLOAD
0000318c: PUSH1 0x1f
0000318e: DUP5
0000318f: SWAP1
00003190: SHR
00003191: PUSH4 0xffffffff
00003196: AND
00003197: PUSH1 0x17
00003199: DUP6
0000319a: SWAP1
0000319b: SHR
0000319c: PUSH1 0xff
0000319e: AND
0000319f: SHL
000031a0: SWAP1
000031a1: PUSH5 0x01ffffffff
000031a7: PUSH1 0x99
000031a9: DUP3
000031aa: SWAP1
000031ab: SHR
000031ac: DUP2
000031ad: AND
000031ae: SWAP1
000031af: DUP3
000031b0: AND
000031b1: DUP2
000031b2: DUP2
000031b3: GT
000031b4: PUSH2 0x31bd
000031b7: JUMPI
000031b8: DUP2
000031b9: PUSH2 0x31bf
000031bc: JUMP
000031bd: JUMPDEST
000031be: DUP1
000031bf: JUMPDEST
000031c0: SWAP1
000031c1: POP
000031c2: PUSH2 0x31f4
000031c5: PUSH32 0x0000000000000000000000004ec7b668baf70d4a4b0fc7941a7708a07b6d45be
000031e6: PUSH3 0x07ffff
000031ea: PUSH1 0x3f
000031ec: DUP11
000031ed: SWAP1
000031ee: SHR
000031ef: AND
000031f0: PUSH2 0x2cf1
000031f3: JUMP
000031f4: JUMPDEST
000031f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000320a: AND
0000320b: PUSH4 0x02c59a68
00003210: PUSH2 0x321c
00003213: PUSH1 0x20
00003215: DUP12
00003216: ADD
00003217: DUP12
00003218: PUSH2 0x3bb6
0000321b: JUMP
0000321c: JUMPDEST
0000321d: PUSH2 0x322c
00003220: PUSH1 0x40
00003222: DUP13
00003223: ADD
00003224: PUSH1 0x20
00003226: DUP14
00003227: ADD
00003228: PUSH2 0x3bb6
0000322b: JUMP
0000322c: JUMPDEST
0000322d: PUSH1 0x40
0000322f: MLOAD
00003230: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00003251: PUSH1 0xe0
00003253: DUP6
00003254: SWAP1
00003255: SHL
00003256: AND
00003257: DUP2
00003258: MSTORE
00003259: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000326e: SWAP3
0000326f: DUP4
00003270: AND
00003271: PUSH1 0x04
00003273: DUP3
00003274: ADD
00003275: MSTORE
00003276: SWAP2
00003277: AND
00003278: PUSH1 0x24
0000327a: DUP3
0000327b: ADD
0000327c: MSTORE
0000327d: PUSH1 0x44
0000327f: ADD
00003280: PUSH1 0x20
00003282: PUSH1 0x40
00003284: MLOAD
00003285: DUP1
00003286: DUP4
00003287: SUB
00003288: DUP2
00003289: PUSH0
0000328a: DUP8
0000328b: GAS
0000328c: CALL
0000328d: ISZERO
0000328e: DUP1
0000328f: ISZERO
00003290: PUSH2 0x329b
00003293: JUMPI
00003294: RETURNDATASIZE
00003295: PUSH0
00003296: PUSH0
00003297: RETURNDATACOPY
00003298: RETURNDATASIZE
00003299: PUSH0
0000329a: REVERT
0000329b: JUMPDEST
0000329c: POP
0000329d: POP
0000329e: POP
0000329f: POP
000032a0: PUSH1 0x40
000032a2: MLOAD
000032a3: RETURNDATASIZE
000032a4: PUSH1 0x1f
000032a6: NOT
000032a7: PUSH1 0x1f
000032a9: DUP3
000032aa: ADD
000032ab: AND
000032ac: DUP3
000032ad: ADD
000032ae: DUP1
000032af: PUSH1 0x40
000032b1: MSTORE
000032b2: POP
000032b3: DUP2
000032b4: ADD
000032b5: SWAP1
000032b6: PUSH2 0x32bf
000032b9: SWAP2
000032ba: SWAP1
000032bb: PUSH2 0x3b9f
000032be: JUMP
000032bf: JUMPDEST
000032c0: SWAP5
000032c1: POP
000032c2: PUSH0
000032c3: PUSH3 0x0f4240
000032c7: PUSH3 0x0fffff
000032cb: PUSH1 0x85
000032cd: DUP7
000032ce: SWAP1
000032cf: SHR
000032d0: AND
000032d1: MUL
000032d2: DUP3
000032d3: TIMESTAMP
000032d4: SUB
000032d5: PUSH3 0x0fffff
000032d9: PUSH1 0x71
000032db: DUP8
000032dc: SWAP1
000032dd: SHR
000032de: AND
000032df: DUP8
000032e0: MUL
000032e1: MUL
000032e2: DUP2
000032e3: PUSH2 0x32ee
000032e6: JUMPI
000032e7: PUSH2 0x32ee
000032ea: PUSH2 0x3f2b
000032ed: JUMP
000032ee: JUMPDEST
000032ef: DIV
000032f0: SWAP1
000032f1: POP
000032f2: DUP5
000032f3: DUP7
000032f4: GT
000032f5: ISZERO
000032f6: PUSH2 0x3398
000032f9: JUMPI
000032fa: SWAP4
000032fb: DUP5
000032fc: ADD
000032fd: SWAP4
000032fe: DUP5
000032ff: DUP7
00003300: GT
00003301: ISZERO
00003302: PUSH2 0x330d
00003305: JUMPI
00003306: DUP5
00003307: SWAP6
00003308: POP
00003309: PUSH2 0x3442
0000330c: JUMP
0000330d: JUMPDEST
0000330e: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
0000332f: DUP8
00003330: AND
00003331: PUSH0
00003332: SWAP1
00003333: DUP2
00003334: MSTORE
00003335: PUSH1 0x03
00003337: PUSH1 0x20
00003339: SWAP1
0000333a: DUP2
0000333b: MSTORE
0000333c: PUSH1 0x40
0000333e: DUP1
0000333f: DUP4
00003340: KECCAK256
00003341: DUP1
00003342: SLOAD
00003343: PUSH32 0xfffffffffffffffffc000000000000000001ffffffffffffffffffffffffffff
00003364: AND
00003365: SWAP1
00003366: SSTORE
00003367: PUSH1 0x02
00003369: SWAP1
0000336a: SWAP2
0000336b: MSTORE
0000336c: SWAP1
0000336d: KECCAK256
0000336e: DUP1
0000336f: SLOAD
00003370: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffff
00003391: AND
00003392: SWAP1
00003393: SSTORE
00003394: PUSH2 0x3442
00003397: JUMP
00003398: JUMPDEST
00003399: DUP1
0000339a: DUP6
0000339b: GT
0000339c: PUSH2 0x33a5
0000339f: JUMPI
000033a0: PUSH0
000033a1: PUSH2 0x33a9
000033a4: JUMP
000033a5: JUMPDEST
000033a6: DUP1
000033a7: DUP6
000033a8: SUB
000033a9: JUMPDEST
000033aa: SWAP5
000033ab: POP
000033ac: DUP5
000033ad: DUP7
000033ae: LT
000033af: ISZERO
000033b0: PUSH2 0x33bb
000033b3: JUMPI
000033b4: DUP5
000033b5: SWAP6
000033b6: POP
000033b7: PUSH2 0x3442
000033ba: JUMP
000033bb: JUMPDEST
000033bc: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
000033dd: DUP8
000033de: AND
000033df: PUSH0
000033e0: SWAP1
000033e1: DUP2
000033e2: MSTORE
000033e3: PUSH1 0x03
000033e5: PUSH1 0x20
000033e7: SWAP1
000033e8: DUP2
000033e9: MSTORE
000033ea: PUSH1 0x40
000033ec: DUP1
000033ed: DUP4
000033ee: KECCAK256
000033ef: DUP1
000033f0: SLOAD
000033f1: PUSH32 0xfffffffffffffffffc000000000000000001ffffffffffffffffffffffffffff
00003412: AND
00003413: SWAP1
00003414: SSTORE
00003415: PUSH1 0x02
00003417: SWAP1
00003418: SWAP2
00003419: MSTORE
0000341a: SWAP1
0000341b: KECCAK256
0000341c: DUP1
0000341d: SLOAD
0000341e: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffff
0000343f: AND
00003440: SWAP1
00003441: SSTORE
00003442: JUMPDEST
00003443: POP
00003444: POP
00003445: POP
00003446: POP
00003447: POP
00003448: SWAP4
00003449: SWAP3
0000344a: POP
0000344b: POP
0000344c: POP
0000344d: JUMP
0000344e: JUMPDEST
0000344f: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
00003470: DUP2
00003471: AND
00003472: PUSH0
00003473: SWAP1
00003474: DUP2
00003475: MSTORE
00003476: PUSH1 0x04
00003478: PUSH1 0x20
0000347a: MSTORE
0000347b: PUSH1 0x40
0000347d: DUP2
0000347e: KECCAK256
0000347f: SLOAD
00003480: DUP2
00003481: SWAP1
00003482: PUSH1 0x1c
00003484: DUP2
00003485: SWAP1
00003486: SHR
00003487: PUSH3 0x0fffff
0000348b: AND
0000348c: PUSH1 0x30
0000348e: DUP3
0000348f: SWAP1
00003490: SHR
00003491: PUSH5 0x01ffffffff
00003497: AND
00003498: DUP4
00003499: TIMESTAMP
0000349a: DUP3
0000349b: DUP5
0000349c: ADD
0000349d: LT
0000349e: ISZERO
0000349f: PUSH2 0x3513
000034a2: JUMPI
000034a3: POP
000034a4: POP
000034a5: POP
000034a6: POP
000034a7: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
000034c8: DUP4
000034c9: AND
000034ca: PUSH0
000034cb: SWAP1
000034cc: DUP2
000034cd: MSTORE
000034ce: PUSH1 0x04
000034d0: PUSH1 0x20
000034d2: SWAP1
000034d3: DUP2
000034d4: MSTORE
000034d5: PUSH1 0x40
000034d7: DUP1
000034d8: DUP4
000034d9: KECCAK256
000034da: DUP4
000034db: SWAP1
000034dc: SSTORE
000034dd: PUSH1 0x02
000034df: SWAP1
000034e0: SWAP2
000034e1: MSTORE
000034e2: SWAP1
000034e3: KECCAK256
000034e4: DUP1
000034e5: SLOAD
000034e6: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffbffffffffffffffffffff
00003507: AND
00003508: SWAP1
00003509: SSTORE
0000350a: POP
0000350b: DUP4
0000350c: SWAP1
0000350d: POP
0000350e: DUP3
0000350f: PUSH2 0x3545
00003512: JUMP
00003513: JUMPDEST
00003514: POP
00003515: TIMESTAMP
00003516: DUP2
00003517: SWAP1
00003518: SUB
00003519: PUSH2 0x3528
0000351c: DUP10
0000351d: PUSH2 0x3fff
00003520: DUP7
00003521: AND
00003522: DUP4
00003523: DUP7
00003524: PUSH2 0x3760
00003527: JUMP
00003528: JUMPDEST
00003529: PUSH2 0x353c
0000352c: DUP10
0000352d: PUSH2 0x3fff
00003530: PUSH1 0x0e
00003532: DUP9
00003533: SWAP1
00003534: SHR
00003535: AND
00003536: DUP5
00003537: DUP8
00003538: PUSH2 0x3760
0000353b: JUMP
0000353c: JUMPDEST
0000353d: SWAP6
0000353e: POP
0000353f: SWAP6
00003540: POP
00003541: POP
00003542: POP
00003543: POP
00003544: POP
00003545: JUMPDEST
00003546: SWAP4
00003547: POP
00003548: SWAP4
00003549: SWAP2
0000354a: POP
0000354b: POP
0000354c: JUMP
0000354d: JUMPDEST
0000354e: PUSH1 0xb5
00003550: DUP2
00003551: PUSH18 0x010000000000000000000000000000000000
00003564: DUP2
00003565: LT
00003566: PUSH2 0x3574
00003569: JUMPI
0000356a: PUSH1 0x40
0000356c: SWAP2
0000356d: SWAP1
0000356e: SWAP2
0000356f: SHL
00003570: SWAP1
00003571: PUSH1 0x80
00003573: SHR
00003574: JUMPDEST
00003575: PUSH10 0x01000000000000000000
00003580: DUP2
00003581: LT
00003582: PUSH2 0x3590
00003585: JUMPI
00003586: PUSH1 0x20
00003588: SWAP2
00003589: SWAP1
0000358a: SWAP2
0000358b: SHL
0000358c: SWAP1
0000358d: PUSH1 0x40
0000358f: SHR
00003590: JUMPDEST
00003591: PUSH6 0x010000000000
00003598: DUP2
00003599: LT
0000359a: PUSH2 0x35a8
0000359d: JUMPI
0000359e: PUSH1 0x10
000035a0: SWAP2
000035a1: SWAP1
000035a2: SWAP2
000035a3: SHL
000035a4: SWAP1
000035a5: PUSH1 0x20
000035a7: SHR
000035a8: JUMPDEST
000035a9: PUSH4 0x01000000
000035ae: DUP2
000035af: LT
000035b0: PUSH2 0x35be
000035b3: JUMPI
000035b4: PUSH1 0x08
000035b6: SWAP2
000035b7: SWAP1
000035b8: SWAP2
000035b9: SHL
000035ba: SWAP1
000035bb: PUSH1 0x10
000035bd: SHR
000035be: JUMPDEST
000035bf: PUSH3 0x010000
000035c3: ADD
000035c4: MUL
000035c5: PUSH1 0x12
000035c7: SHR
000035c8: DUP1
000035c9: DUP3
000035ca: DIV
000035cb: ADD
000035cc: PUSH1 0x01
000035ce: SWAP1
000035cf: DUP2
000035d0: SHR
000035d1: DUP1
000035d2: DUP4
000035d3: DIV
000035d4: ADD
000035d5: DUP2
000035d6: SHR
000035d7: DUP1
000035d8: DUP4
000035d9: DIV
000035da: ADD
000035db: DUP2
000035dc: SHR
000035dd: DUP1
000035de: DUP4
000035df: DIV
000035e0: ADD
000035e1: DUP2
000035e2: SHR
000035e3: DUP1
000035e4: DUP4
000035e5: DIV
000035e6: ADD
000035e7: DUP2
000035e8: SHR
000035e9: DUP1
000035ea: DUP4
000035eb: DIV
000035ec: ADD
000035ed: DUP2
000035ee: SHR
000035ef: DUP1
000035f0: DUP4
000035f1: DIV
000035f2: ADD
000035f3: SWAP1
000035f4: SHR
000035f5: SWAP1
000035f6: DUP2
000035f7: SWAP1
000035f8: DIV
000035f9: DUP2
000035fa: GT
000035fb: SWAP1
000035fc: SUB
000035fd: SWAP1
000035fe: JUMP
000035ff: JUMPDEST
00003600: PUSH0
00003601: DUP1
00003602: DUP6
00003603: DUP6
00003604: SUB
00003605: DUP2
00003606: PUSH1 0x02
00003608: DUP3
00003609: MUL
0000360a: DUP7
0000360b: DUP10
0000360c: MUL
0000360d: PUSH12 0x033b2e3c9fd0803ce8000000
0000361a: DUP8
0000361b: MUL
0000361c: ADD
0000361d: DUP2
0000361e: PUSH2 0x3629
00003621: JUMPI
00003622: PUSH2 0x3629
00003625: PUSH2 0x3f2b
00003628: JUMP
00003629: JUMPDEST
0000362a: DIV
0000362b: SWAP1
0000362c: POP
0000362d: PUSH2 0x3658
00003630: DUP2
00003631: DUP3
00003632: MUL
00003633: DUP4
00003634: PUSH12 0x033b2e3c9fd0803ce8000000
00003641: DUP9
00003642: DUP11
00003643: MUL
00003644: MUL
00003645: DUP2
00003646: PUSH2 0x3651
00003649: JUMPI
0000364a: PUSH2 0x3651
0000364d: PUSH2 0x3f2b
00003650: JUMP
00003651: JUMPDEST
00003652: DIV
00003653: ADD
00003654: PUSH2 0x354d
00003657: JUMP
00003658: JUMPDEST
00003659: ADD
0000365a: SWAP8
0000365b: PUSH12 0x033b2e3c9fd0803ce8000000
00003668: SWAP8
00003669: DUP10
0000366a: MUL
0000366b: SWAP8
0000366c: SWAP1
0000366d: SWAP8
0000366e: DIV
0000366f: SWAP7
00003670: SWAP6
00003671: POP
00003672: POP
00003673: POP
00003674: POP
00003675: POP
00003676: POP
00003677: JUMP
00003678: JUMPDEST
00003679: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
0000369a: DUP2
0000369b: AND
0000369c: PUSH0
0000369d: SWAP1
0000369e: DUP2
0000369f: MSTORE
000036a0: PUSH1 0x05
000036a2: PUSH1 0x20
000036a4: MSTORE
000036a5: PUSH1 0x40
000036a7: DUP2
000036a8: KECCAK256
000036a9: SLOAD
000036aa: DUP2
000036ab: SWAP1
000036ac: PUSH1 0x0e
000036ae: DUP2
000036af: SWAP1
000036b0: SHR
000036b1: PUSH3 0x0fffff
000036b5: AND
000036b6: PUSH1 0x22
000036b8: DUP3
000036b9: SWAP1
000036ba: SHR
000036bb: PUSH5 0x01ffffffff
000036c1: AND
000036c2: DUP4
000036c3: TIMESTAMP
000036c4: DUP3
000036c5: DUP5
000036c6: ADD
000036c7: LT
000036c8: ISZERO
000036c9: PUSH2 0x373d
000036cc: JUMPI
000036cd: POP
000036ce: POP
000036cf: POP
000036d0: POP
000036d1: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000
000036f2: DUP4
000036f3: AND
000036f4: PUSH0
000036f5: SWAP1
000036f6: DUP2
000036f7: MSTORE
000036f8: PUSH1 0x05
000036fa: PUSH1 0x20
000036fc: SWAP1
000036fd: DUP2
000036fe: MSTORE
000036ff: PUSH1 0x40
00003701: DUP1
00003702: DUP4
00003703: KECCAK256
00003704: DUP4
00003705: SWAP1
00003706: SSTORE
00003707: PUSH1 0x02
00003709: SWAP1
0000370a: SWAP2
0000370b: MSTORE
0000370c: SWAP1
0000370d: KECCAK256
0000370e: DUP1
0000370f: SLOAD
00003710: PUSH32 0xffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffff
00003731: AND
00003732: SWAP1
00003733: SSTORE
00003734: POP
00003735: DUP4
00003736: SWAP1
00003737: POP
00003738: DUP3
00003739: PUSH2 0x3545
0000373c: JUMP
0000373d: JUMPDEST
0000373e: POP
0000373f: TIMESTAMP
00003740: DUP2
00003741: SWAP1
00003742: SUB
00003743: PUSH2 0x3751
00003746: DUP10
00003747: PUSH1 0x7f
00003749: DUP7
0000374a: AND
0000374b: DUP4
0000374c: DUP7
0000374d: PUSH2 0x3760
00003750: JUMP
00003751: JUMPDEST
00003752: PUSH2 0x353c
00003755: DUP10
00003756: PUSH1 0x7f
00003758: PUSH1 0x07
0000375a: DUP9
0000375b: SWAP1
0000375c: SHR
0000375d: AND
0000375e: DUP5
0000375f: DUP8
00003760: JUMPDEST
00003761: PUSH0
00003762: DUP4
00003763: DUP6
00003764: GT
00003765: ISZERO
00003766: PUSH2 0x3786
00003769: JUMPI
0000376a: DUP2
0000376b: DUP4
0000376c: DUP6
0000376d: DUP8
0000376e: SUB
0000376f: MUL
00003770: DUP2
00003771: PUSH2 0x377c
00003774: JUMPI
00003775: PUSH2 0x377c
00003778: PUSH2 0x3f2b
0000377b: JUMP
0000377c: JUMPDEST
0000377d: DIV
0000377e: DUP5
0000377f: ADD
00003780: SWAP1
00003781: POP
00003782: PUSH2 0x379f
00003785: JUMP
00003786: JUMPDEST
00003787: DUP2
00003788: DUP4
00003789: DUP7
0000378a: DUP7
0000378b: SUB
0000378c: MUL
0000378d: DUP2
0000378e: PUSH2 0x3799
00003791: JUMPI
00003792: PUSH2 0x3799
00003795: PUSH2 0x3f2b
00003798: JUMP
00003799: JUMPDEST
0000379a: DIV
0000379b: DUP5
0000379c: SUB
0000379d: SWAP1
0000379e: POP
0000379f: JUMPDEST
000037a0: SWAP5
000037a1: SWAP4
000037a2: POP
000037a3: POP
000037a4: POP
000037a5: POP
000037a6: JUMP
000037a7: JUMPDEST
000037a8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000037bd: DUP2
000037be: AND
000037bf: DUP2
000037c0: EQ
000037c1: PUSH2 0x37c8
000037c4: JUMPI
000037c5: PUSH0
000037c6: PUSH0
000037c7: REVERT
000037c8: JUMPDEST
000037c9: POP
000037ca: JUMP
000037cb: JUMPDEST
000037cc: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000037ed: PUSH0
000037ee: MSTORE
000037ef: PUSH1 0x41
000037f1: PUSH1 0x04
000037f3: MSTORE
000037f4: PUSH1 0x24
000037f6: PUSH0
000037f7: REVERT
000037f8: JUMPDEST
000037f9: PUSH0
000037fa: PUSH0
000037fb: PUSH1 0x40
000037fd: DUP4
000037fe: DUP6
000037ff: SUB
00003800: SLT
00003801: ISZERO
00003802: PUSH2 0x3809
00003805: JUMPI
00003806: PUSH0
00003807: PUSH0
00003808: REVERT
00003809: JUMPDEST
0000380a: DUP3
0000380b: CALLDATALOAD
0000380c: PUSH2 0x3814
0000380f: DUP2
00003810: PUSH2 0x37a7
00003813: JUMP
00003814: JUMPDEST
00003815: SWAP2
00003816: POP
00003817: PUSH1 0x20
00003819: DUP4
0000381a: ADD
0000381b: CALLDATALOAD
0000381c: PUSH8 0xffffffffffffffff
00003825: DUP2
00003826: GT
00003827: ISZERO
00003828: PUSH2 0x382f
0000382b: JUMPI
0000382c: PUSH0
0000382d: PUSH0
0000382e: REVERT
0000382f: JUMPDEST
00003830: DUP4
00003831: ADD
00003832: PUSH1 0x1f
00003834: DUP2
00003835: ADD
00003836: DUP6
00003837: SGT
00003838: PUSH2 0x383f
0000383b: JUMPI
0000383c: PUSH0
0000383d: PUSH0
0000383e: REVERT
0000383f: JUMPDEST
00003840: DUP1
00003841: CALLDATALOAD
00003842: PUSH8 0xffffffffffffffff
0000384b: DUP2
0000384c: GT
0000384d: ISZERO
0000384e: PUSH2 0x3859
00003851: JUMPI
00003852: PUSH2 0x3859
00003855: PUSH2 0x37cb
00003858: JUMP
00003859: JUMPDEST
0000385a: PUSH1 0x40
0000385c: MLOAD
0000385d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
0000387e: PUSH1 0x3f
00003880: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
000038a1: PUSH1 0x1f
000038a3: DUP6
000038a4: ADD
000038a5: AND
000038a6: ADD
000038a7: AND
000038a8: DUP2
000038a9: ADD
000038aa: DUP2
000038ab: DUP2
000038ac: LT
000038ad: PUSH8 0xffffffffffffffff
000038b6: DUP3
000038b7: GT
000038b8: OR
000038b9: ISZERO
000038ba: PUSH2 0x38c5
000038bd: JUMPI
000038be: PUSH2 0x38c5
000038c1: PUSH2 0x37cb
000038c4: JUMP
000038c5: JUMPDEST
000038c6: PUSH1 0x40
000038c8: MSTORE
000038c9: DUP2
000038ca: DUP2
000038cb: MSTORE
000038cc: DUP3
000038cd: DUP3
000038ce: ADD
000038cf: PUSH1 0x20
000038d1: ADD
000038d2: DUP8
000038d3: LT
000038d4: ISZERO
000038d5: PUSH2 0x38dc
000038d8: JUMPI
000038d9: PUSH0
000038da: PUSH0
000038db: REVERT
000038dc: JUMPDEST
000038dd: DUP2
000038de: PUSH1 0x20
000038e0: DUP5
000038e1: ADD
000038e2: PUSH1 0x20
000038e4: DUP4
000038e5: ADD
000038e6: CALLDATACOPY
000038e7: PUSH0
000038e8: PUSH1 0x20
000038ea: DUP4
000038eb: DUP4
000038ec: ADD
000038ed: ADD
000038ee: MSTORE
000038ef: DUP1
000038f0: SWAP4
000038f1: POP
000038f2: POP
000038f3: POP
000038f4: POP
000038f5: SWAP3
000038f6: POP
000038f7: SWAP3
000038f8: SWAP1
000038f9: POP
000038fa: JUMP
000038fb: JUMPDEST
000038fc: DUP1
000038fd: CALLDATALOAD
000038fe: DUP1
000038ff: ISZERO
00003900: ISZERO
00003901: DUP2
00003902: EQ
00003903: PUSH2 0x390a
00003906: JUMPI
00003907: PUSH0
00003908: PUSH0
00003909: REVERT
0000390a: JUMPDEST
0000390b: SWAP2
0000390c: SWAP1
0000390d: POP
0000390e: JUMP
0000390f: JUMPDEST
00003910: DUP1
00003911: CALLDATALOAD
00003912: PUSH2 0x390a
00003915: DUP2
00003916: PUSH2 0x37a7
00003919: JUMP
0000391a: JUMPDEST
0000391b: PUSH0
0000391c: PUSH0
0000391d: DUP4
0000391e: PUSH1 0x1f
00003920: DUP5
00003921: ADD
00003922: SLT
00003923: PUSH2 0x392a
00003926: JUMPI
00003927: PUSH0
00003928: PUSH0
00003929: REVERT
0000392a: JUMPDEST
0000392b: POP
0000392c: DUP2
0000392d: CALLDATALOAD
0000392e: PUSH8 0xffffffffffffffff
00003937: DUP2
00003938: GT
00003939: ISZERO
0000393a: PUSH2 0x3941
0000393d: JUMPI
0000393e: PUSH0
0000393f: PUSH0
00003940: REVERT
00003941: JUMPDEST
00003942: PUSH1 0x20
00003944: DUP4
00003945: ADD
00003946: SWAP2
00003947: POP
00003948: DUP4
00003949: PUSH1 0x20
0000394b: DUP3
0000394c: DUP6
0000394d: ADD
0000394e: ADD
0000394f: GT
00003950: ISZERO
00003951: PUSH2 0x3958
00003954: JUMPI
00003955: PUSH0
00003956: PUSH0
00003957: REVERT
00003958: JUMPDEST
00003959: SWAP3
0000395a: POP
0000395b: SWAP3
0000395c: SWAP1
0000395d: POP
0000395e: JUMP
0000395f: JUMPDEST
00003960: PUSH0
00003961: PUSH0
00003962: PUSH0
00003963: PUSH0
00003964: PUSH0
00003965: PUSH0
00003966: PUSH0
00003967: PUSH0
00003968: PUSH0
00003969: PUSH0
0000396a: DUP11
0000396b: DUP13
0000396c: SUB
0000396d: PUSH2 0x0140
00003970: DUP2
00003971: SLT
00003972: ISZERO
00003973: PUSH2 0x397a
00003976: JUMPI
00003977: PUSH0
00003978: PUSH0
00003979: REVERT
0000397a: JUMPDEST
0000397b: PUSH1 0x60
0000397d: DUP2
0000397e: SLT
0000397f: ISZERO
00003980: PUSH2 0x3987
00003983: JUMPI
00003984: PUSH0
00003985: PUSH0
00003986: REVERT
00003987: JUMPDEST
00003988: POP
00003989: DUP11
0000398a: SWAP10
0000398b: POP
0000398c: PUSH2 0x3997
0000398f: PUSH1 0x60
00003991: DUP13
00003992: ADD
00003993: PUSH2 0x38fb
00003996: JUMP
00003997: JUMPDEST
00003998: SWAP9
00003999: POP
0000399a: PUSH1 0x80
0000399c: DUP12
0000399d: ADD
0000399e: CALLDATALOAD
0000399f: SWAP8
000039a0: POP
000039a1: PUSH1 0xa0
000039a3: DUP12
000039a4: ADD
000039a5: CALLDATALOAD
000039a6: SWAP7
000039a7: POP
000039a8: PUSH2 0x39b3
000039ab: PUSH1 0xc0
000039ad: DUP13
000039ae: ADD
000039af: PUSH2 0x390f
000039b2: JUMP
000039b3: JUMPDEST
000039b4: SWAP6
000039b5: POP
000039b6: PUSH2 0x39c1
000039b9: PUSH1 0xe0
000039bb: DUP13
000039bc: ADD
000039bd: PUSH2 0x38fb
000039c0: JUMP
000039c1: JUMPDEST
000039c2: SWAP5
000039c3: POP
000039c4: PUSH2 0x0100
000039c7: DUP12
000039c8: ADD
000039c9: CALLDATALOAD
000039ca: PUSH8 0xffffffffffffffff
000039d3: DUP2
000039d4: GT
000039d5: ISZERO
000039d6: PUSH2 0x39dd
000039d9: JUMPI
000039da: PUSH0
000039db: PUSH0
000039dc: REVERT
000039dd: JUMPDEST
000039de: PUSH2 0x39e9
000039e1: DUP14
000039e2: DUP3
000039e3: DUP15
000039e4: ADD
000039e5: PUSH2 0x391a
000039e8: JUMP
000039e9: JUMPDEST
000039ea: SWAP1
000039eb: SWAP6
000039ec: POP
000039ed: SWAP4
000039ee: POP
000039ef: POP
000039f0: PUSH2 0x0120
000039f3: DUP12
000039f4: ADD
000039f5: CALLDATALOAD
000039f6: PUSH8 0xffffffffffffffff
000039ff: DUP2
00003a00: GT
00003a01: ISZERO
00003a02: PUSH2 0x3a09
00003a05: JUMPI
00003a06: PUSH0
00003a07: PUSH0
00003a08: REVERT
00003a09: JUMPDEST
00003a0a: PUSH2 0x3a15
00003a0d: DUP14
00003a0e: DUP3
00003a0f: DUP15
00003a10: ADD
00003a11: PUSH2 0x391a
00003a14: JUMP
00003a15: JUMPDEST
00003a16: SWAP2
00003a17: POP
00003a18: DUP1
00003a19: SWAP4
00003a1a: POP
00003a1b: POP
00003a1c: DUP1
00003a1d: SWAP2
00003a1e: POP
00003a1f: POP
00003a20: SWAP3
00003a21: SWAP6
00003a22: SWAP9
00003a23: SWAP12
00003a24: SWAP2
00003a25: SWAP5
00003a26: SWAP8
00003a27: SWAP11
00003a28: POP
00003a29: SWAP3
00003a2a: SWAP6
00003a2b: SWAP9
00003a2c: POP
00003a2d: JUMP
00003a2e: JUMPDEST
00003a2f: PUSH0
00003a30: PUSH0
00003a31: DUP4
00003a32: PUSH1 0x1f
00003a34: DUP5
00003a35: ADD
00003a36: SLT
00003a37: PUSH2 0x3a3e
00003a3a: JUMPI
00003a3b: PUSH0
00003a3c: PUSH0
00003a3d: REVERT
00003a3e: JUMPDEST
00003a3f: POP
00003a40: DUP2
00003a41: CALLDATALOAD
00003a42: PUSH8 0xffffffffffffffff
00003a4b: DUP2
00003a4c: GT
00003a4d: ISZERO
00003a4e: PUSH2 0x3a55
00003a51: JUMPI
00003a52: PUSH0
00003a53: PUSH0
00003a54: REVERT
00003a55: JUMPDEST
00003a56: PUSH1 0x20
00003a58: DUP4
00003a59: ADD
00003a5a: SWAP2
00003a5b: POP
00003a5c: DUP4
00003a5d: PUSH1 0x20
00003a5f: DUP3
00003a60: PUSH1 0x05
00003a62: SHL
00003a63: DUP6
00003a64: ADD
00003a65: ADD
00003a66: GT
00003a67: ISZERO
00003a68: PUSH2 0x3958
00003a6b: JUMPI
00003a6c: PUSH0
00003a6d: PUSH0
00003a6e: REVERT
00003a6f: JUMPDEST
00003a70: PUSH0
00003a71: PUSH1 0x80
00003a73: DUP3
00003a74: DUP5
00003a75: SUB
00003a76: SLT
00003a77: ISZERO
00003a78: PUSH2 0x3a7f
00003a7b: JUMPI
00003a7c: PUSH0
00003a7d: PUSH0
00003a7e: REVERT
00003a7f: JUMPDEST
00003a80: POP
00003a81: SWAP2
00003a82: SWAP1
00003a83: POP
00003a84: JUMP
00003a85: JUMPDEST
00003a86: PUSH0
00003a87: PUSH0
00003a88: PUSH0
00003a89: PUSH0
00003a8a: PUSH0
00003a8b: PUSH0
00003a8c: PUSH0
00003a8d: PUSH0
00003a8e: PUSH1 0xa0
00003a90: DUP10
00003a91: DUP12
00003a92: SUB
00003a93: SLT
00003a94: ISZERO
00003a95: PUSH2 0x3a9c
00003a98: JUMPI
00003a99: PUSH0
00003a9a: PUSH0
00003a9b: REVERT
00003a9c: JUMPDEST
00003a9d: DUP9
00003a9e: CALLDATALOAD
00003a9f: PUSH8 0xffffffffffffffff
00003aa8: DUP2
00003aa9: GT
00003aaa: ISZERO
00003aab: PUSH2 0x3ab2
00003aae: JUMPI
00003aaf: PUSH0
00003ab0: PUSH0
00003ab1: REVERT
00003ab2: JUMPDEST
00003ab3: PUSH2 0x3abe
00003ab6: DUP12
00003ab7: DUP3
00003ab8: DUP13
00003ab9: ADD
00003aba: PUSH2 0x3a2e
00003abd: JUMP
00003abe: JUMPDEST
00003abf: SWAP1
00003ac0: SWAP10
00003ac1: POP
00003ac2: SWAP8
00003ac3: POP
00003ac4: POP
00003ac5: PUSH1 0x20
00003ac7: DUP10
00003ac8: ADD
00003ac9: CALLDATALOAD
00003aca: PUSH8 0xffffffffffffffff
00003ad3: DUP2
00003ad4: GT
00003ad5: ISZERO
00003ad6: PUSH2 0x3add
00003ad9: JUMPI
00003ada: PUSH0
00003adb: PUSH0
00003adc: REVERT
00003add: JUMPDEST
00003ade: DUP10
00003adf: ADD
00003ae0: PUSH1 0x1f
00003ae2: DUP2
00003ae3: ADD
00003ae4: DUP12
00003ae5: SGT
00003ae6: PUSH2 0x3aed
00003ae9: JUMPI
00003aea: PUSH0
00003aeb: PUSH0
00003aec: REVERT
00003aed: JUMPDEST
00003aee: DUP1
00003aef: CALLDATALOAD
00003af0: PUSH8 0xffffffffffffffff
00003af9: DUP2
00003afa: GT
00003afb: ISZERO
00003afc: PUSH2 0x3b03
00003aff: JUMPI
00003b00: PUSH0
00003b01: PUSH0
00003b02: REVERT
00003b03: JUMPDEST
00003b04: DUP12
00003b05: PUSH1 0x20
00003b07: PUSH1 0x60
00003b09: DUP4
00003b0a: MUL
00003b0b: DUP5
00003b0c: ADD
00003b0d: ADD
00003b0e: GT
00003b0f: ISZERO
00003b10: PUSH2 0x3b17
00003b13: JUMPI
00003b14: PUSH0
00003b15: PUSH0
00003b16: REVERT
00003b17: JUMPDEST
00003b18: PUSH1 0x20
00003b1a: SWAP2
00003b1b: SWAP1
00003b1c: SWAP2
00003b1d: ADD
00003b1e: SWAP7
00003b1f: POP
00003b20: SWAP5
00003b21: POP
00003b22: PUSH1 0x40
00003b24: DUP10
00003b25: ADD
00003b26: CALLDATALOAD
00003b27: SWAP4
00003b28: POP
00003b29: PUSH1 0x60
00003b2b: DUP10
00003b2c: ADD
00003b2d: CALLDATALOAD
00003b2e: PUSH8 0xffffffffffffffff
00003b37: DUP2
00003b38: GT
00003b39: ISZERO
00003b3a: PUSH2 0x3b41
00003b3d: JUMPI
00003b3e: PUSH0
00003b3f: PUSH0
00003b40: REVERT
00003b41: JUMPDEST
00003b42: PUSH2 0x3b4d
00003b45: DUP12
00003b46: DUP3
00003b47: DUP13
00003b48: ADD
00003b49: PUSH2 0x3a2e
00003b4c: JUMP
00003b4d: JUMPDEST
00003b4e: SWAP1
00003b4f: SWAP5
00003b50: POP
00003b51: SWAP3
00003b52: POP
00003b53: POP
00003b54: PUSH1 0x80
00003b56: DUP10
00003b57: ADD
00003b58: CALLDATALOAD
00003b59: PUSH8 0xffffffffffffffff
00003b62: DUP2
00003b63: GT
00003b64: ISZERO
00003b65: PUSH2 0x3b6c
00003b68: JUMPI
00003b69: PUSH0
00003b6a: PUSH0
00003b6b: REVERT
00003b6c: JUMPDEST
00003b6d: PUSH2 0x3b78
00003b70: DUP12
00003b71: DUP3
00003b72: DUP13
00003b73: ADD
00003b74: PUSH2 0x3a6f
00003b77: JUMP
00003b78: JUMPDEST
00003b79: SWAP2
00003b7a: POP
00003b7b: POP
00003b7c: SWAP3
00003b7d: SWAP6
00003b7e: SWAP9
00003b7f: POP
00003b80: SWAP3
00003b81: SWAP6
00003b82: SWAP9
00003b83: SWAP1
00003b84: SWAP4
00003b85: SWAP7
00003b86: POP
00003b87: JUMP
00003b88: JUMPDEST
00003b89: PUSH0
00003b8a: PUSH1 0x20
00003b8c: DUP3
00003b8d: DUP5
00003b8e: SUB
00003b8f: SLT
00003b90: ISZERO
00003b91: PUSH2 0x3b98
00003b94: JUMPI
00003b95: PUSH0
00003b96: PUSH0
00003b97: REVERT
00003b98: JUMPDEST
00003b99: POP
00003b9a: CALLDATALOAD
00003b9b: SWAP2
00003b9c: SWAP1
00003b9d: POP
00003b9e: JUMP
00003b9f: JUMPDEST
00003ba0: PUSH0
00003ba1: PUSH1 0x20
00003ba3: DUP3
00003ba4: DUP5
00003ba5: SUB
00003ba6: SLT
00003ba7: ISZERO
00003ba8: PUSH2 0x3baf
00003bab: JUMPI
00003bac: PUSH0
00003bad: PUSH0
00003bae: REVERT
00003baf: JUMPDEST
00003bb0: POP
00003bb1: MLOAD
00003bb2: SWAP2
00003bb3: SWAP1
00003bb4: POP
00003bb5: JUMP
00003bb6: JUMPDEST
00003bb7: PUSH0
00003bb8: PUSH1 0x20
00003bba: DUP3
00003bbb: DUP5
00003bbc: SUB
00003bbd: SLT
00003bbe: ISZERO
00003bbf: PUSH2 0x3bc6
00003bc2: JUMPI
00003bc3: PUSH0
00003bc4: PUSH0
00003bc5: REVERT
00003bc6: JUMPDEST
00003bc7: DUP2
00003bc8: CALLDATALOAD
00003bc9: PUSH2 0x3bd1
00003bcc: DUP2
00003bcd: PUSH2 0x37a7
00003bd0: JUMP
00003bd1: JUMPDEST
00003bd2: SWAP4
00003bd3: SWAP3
00003bd4: POP
00003bd5: POP
00003bd6: POP
00003bd7: JUMP
00003bd8: JUMPDEST
00003bd9: DUP1
00003bda: CALLDATALOAD
00003bdb: PUSH1 0x20
00003bdd: DUP4
00003bde: LT
00003bdf: ISZERO
00003be0: PUSH2 0x3154
00003be3: JUMPI
00003be4: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00003c05: PUSH1 0x20
00003c07: DUP5
00003c08: SWAP1
00003c09: SUB
00003c0a: PUSH1 0x03
00003c0c: SHL
00003c0d: SHL
00003c0e: AND
00003c0f: SWAP3
00003c10: SWAP2
00003c11: POP
00003c12: POP
00003c13: JUMP
00003c14: JUMPDEST
00003c15: DUP1
00003c16: CALLDATALOAD
00003c17: PUSH2 0x3c1f
00003c1a: DUP2
00003c1b: PUSH2 0x37a7
00003c1e: JUMP
00003c1f: JUMPDEST
00003c20: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003c35: AND
00003c36: DUP3
00003c37: MSTORE
00003c38: PUSH1 0x20
00003c3a: DUP2
00003c3b: ADD
00003c3c: CALLDATALOAD
00003c3d: PUSH2 0x3c45
00003c40: DUP2
00003c41: PUSH2 0x37a7
00003c44: JUMP
00003c45: JUMPDEST
00003c46: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003c5b: AND
00003c5c: PUSH1 0x20
00003c5e: DUP4
00003c5f: ADD
00003c60: MSTORE
00003c61: PUSH1 0x40
00003c63: SWAP1
00003c64: DUP2
00003c65: ADD
00003c66: CALLDATALOAD
00003c67: SWAP2
00003c68: ADD
00003c69: MSTORE
00003c6a: JUMP
00003c6b: JUMPDEST
00003c6c: DUP2
00003c6d: DUP4
00003c6e: MSTORE
00003c6f: DUP2
00003c70: DUP2
00003c71: PUSH1 0x20
00003c73: DUP6
00003c74: ADD
00003c75: CALLDATACOPY
00003c76: POP
00003c77: PUSH0
00003c78: PUSH1 0x20
00003c7a: DUP3
00003c7b: DUP5
00003c7c: ADD
00003c7d: ADD
00003c7e: MSTORE
00003c7f: PUSH0
00003c80: PUSH1 0x20
00003c82: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00003ca3: PUSH1 0x1f
00003ca5: DUP5
00003ca6: ADD
00003ca7: AND
00003ca8: DUP5
00003ca9: ADD
00003caa: ADD
00003cab: SWAP1
00003cac: POP
00003cad: SWAP3
00003cae: SWAP2
00003caf: POP
00003cb0: POP
00003cb1: JUMP
00003cb2: JUMPDEST
00003cb3: PUSH2 0x3cbc
00003cb6: DUP2
00003cb7: DUP9
00003cb8: PUSH2 0x3c14
00003cbb: JUMP
00003cbc: JUMPDEST
00003cbd: DUP6
00003cbe: ISZERO
00003cbf: ISZERO
00003cc0: PUSH1 0x60
00003cc2: DUP3
00003cc3: ADD
00003cc4: MSTORE
00003cc5: DUP5
00003cc6: PUSH1 0x80
00003cc8: DUP3
00003cc9: ADD
00003cca: MSTORE
00003ccb: DUP4
00003ccc: PUSH1 0xa0
00003cce: DUP3
00003ccf: ADD
00003cd0: MSTORE
00003cd1: PUSH1 0xe0
00003cd3: PUSH1 0xc0
00003cd5: DUP3
00003cd6: ADD
00003cd7: MSTORE
00003cd8: PUSH0
00003cd9: PUSH2 0x0fe9
00003cdc: PUSH1 0xe0
00003cde: DUP4
00003cdf: ADD
00003ce0: DUP5
00003ce1: DUP7
00003ce2: PUSH2 0x3c6b
00003ce5: JUMP
00003ce6: JUMPDEST
00003ce7: DUP3
00003ce8: ISZERO
00003ce9: ISZERO
00003cea: DUP2
00003ceb: MSTORE
00003cec: PUSH1 0x40
00003cee: PUSH1 0x20
00003cf0: DUP3
00003cf1: ADD
00003cf2: MSTORE
00003cf3: PUSH0
00003cf4: DUP3
00003cf5: MLOAD
00003cf6: DUP1
00003cf7: PUSH1 0x40
00003cf9: DUP5
00003cfa: ADD
00003cfb: MSTORE
00003cfc: DUP1
00003cfd: PUSH1 0x20
00003cff: DUP6
00003d00: ADD
00003d01: PUSH1 0x60
00003d03: DUP6
00003d04: ADD
00003d05: MCOPY
00003d06: PUSH0
00003d07: PUSH1 0x60
00003d09: DUP3
00003d0a: DUP6
00003d0b: ADD
00003d0c: ADD
00003d0d: MSTORE
00003d0e: PUSH1 0x60
00003d10: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00003d31: PUSH1 0x1f
00003d33: DUP4
00003d34: ADD
00003d35: AND
00003d36: DUP5
00003d37: ADD
00003d38: ADD
00003d39: SWAP2
00003d3a: POP
00003d3b: POP
00003d3c: SWAP4
00003d3d: SWAP3
00003d3e: POP
00003d3f: POP
00003d40: POP
00003d41: JUMP
00003d42: JUMPDEST
00003d43: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00003d64: PUSH0
00003d65: MSTORE
00003d66: PUSH1 0x11
00003d68: PUSH1 0x04
00003d6a: MSTORE
00003d6b: PUSH1 0x24
00003d6d: PUSH0
00003d6e: REVERT
00003d6f: JUMPDEST
00003d70: PUSH0
00003d71: PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000
00003d92: DUP3
00003d93: SUB
00003d94: PUSH2 0x3d9f
00003d97: JUMPI
00003d98: PUSH2 0x3d9f
00003d9b: PUSH2 0x3d42
00003d9e: JUMP
00003d9f: JUMPDEST
00003da0: POP
00003da1: PUSH0
00003da2: SUB
00003da3: SWAP1
00003da4: JUMP
00003da5: JUMPDEST
00003da6: DUP2
00003da7: DUP2
00003da8: SUB
00003da9: DUP2
00003daa: DUP2
00003dab: GT
00003dac: ISZERO
00003dad: PUSH2 0x3154
00003db0: JUMPI
00003db1: PUSH2 0x3154
00003db4: PUSH2 0x3d42
00003db7: JUMP
00003db8: JUMPDEST
00003db9: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00003dda: PUSH0
00003ddb: MSTORE
00003ddc: PUSH1 0x32
00003dde: PUSH1 0x04
00003de0: MSTORE
00003de1: PUSH1 0x24
00003de3: PUSH0
00003de4: REVERT
00003de5: JUMPDEST
00003de6: PUSH0
00003de7: PUSH0
00003de8: DUP4
00003de9: CALLDATALOAD
00003dea: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1
00003e0b: DUP5
00003e0c: CALLDATASIZE
00003e0d: SUB
00003e0e: ADD
00003e0f: DUP2
00003e10: SLT
00003e11: PUSH2 0x3e18
00003e14: JUMPI
00003e15: PUSH0
00003e16: PUSH0
00003e17: REVERT
00003e18: JUMPDEST
00003e19: DUP4
00003e1a: ADD
00003e1b: DUP1
00003e1c: CALLDATALOAD
00003e1d: SWAP2
00003e1e: POP
00003e1f: PUSH8 0xffffffffffffffff
00003e28: DUP3
00003e29: GT
00003e2a: ISZERO
00003e2b: PUSH2 0x3e32
00003e2e: JUMPI
00003e2f: PUSH0
00003e30: PUSH0
00003e31: REVERT
00003e32: JUMPDEST
00003e33: PUSH1 0x20
00003e35: ADD
00003e36: SWAP2
00003e37: POP
00003e38: CALLDATASIZE
00003e39: DUP2
00003e3a: SWAP1
00003e3b: SUB
00003e3c: DUP3
00003e3d: SGT
00003e3e: ISZERO
00003e3f: PUSH2 0x3958
00003e42: JUMPI
00003e43: PUSH0
00003e44: PUSH0
00003e45: REVERT
00003e46: JUMPDEST
00003e47: PUSH0
00003e48: PUSH1 0x20
00003e4a: DUP3
00003e4b: DUP5
00003e4c: SUB
00003e4d: SLT
00003e4e: ISZERO
00003e4f: PUSH2 0x3e56
00003e52: JUMPI
00003e53: PUSH0
00003e54: PUSH0
00003e55: REVERT
00003e56: JUMPDEST
00003e57: PUSH2 0x3bd1
00003e5a: DUP3
00003e5b: PUSH2 0x38fb
00003e5e: JUMP
00003e5f: JUMPDEST
00003e60: PUSH1 0xa0
00003e62: DUP1
00003e63: DUP3
00003e64: MSTORE
00003e65: DUP2
00003e66: ADD
00003e67: DUP9
00003e68: SWAP1
00003e69: MSTORE
00003e6a: PUSH0
00003e6b: DUP10
00003e6c: PUSH1 0xc0
00003e6e: DUP4
00003e6f: ADD
00003e70: DUP3
00003e71: JUMPDEST
00003e72: DUP12
00003e73: DUP2
00003e74: LT
00003e75: ISZERO
00003e76: PUSH2 0x3eae
00003e79: JUMPI
00003e7a: DUP3
00003e7b: CALLDATALOAD
00003e7c: PUSH2 0x3e84
00003e7f: DUP2
00003e80: PUSH2 0x37a7
00003e83: JUMP
00003e84: JUMPDEST
00003e85: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003e9a: AND
00003e9b: DUP3
00003e9c: MSTORE
00003e9d: PUSH1 0x20
00003e9f: SWAP3
00003ea0: DUP4
00003ea1: ADD
00003ea2: SWAP3
00003ea3: SWAP1
00003ea4: SWAP2
00003ea5: ADD
00003ea6: SWAP1
00003ea7: PUSH1 0x01
00003ea9: ADD
00003eaa: PUSH2 0x3e71
00003ead: JUMP
00003eae: JUMPDEST
00003eaf: POP
00003eb0: DUP4
00003eb1: DUP2
00003eb2: SUB
00003eb3: PUSH1 0x20
00003eb5: DUP1
00003eb6: DUP7
00003eb7: ADD
00003eb8: SWAP2
00003eb9: SWAP1
00003eba: SWAP2
00003ebb: MSTORE
00003ebc: DUP10
00003ebd: DUP3
00003ebe: MSTORE
00003ebf: ADD
00003ec0: SWAP1
00003ec1: POP
00003ec2: DUP9
00003ec3: PUSH0
00003ec4: DUP1
00003ec5: JUMPDEST
00003ec6: DUP11
00003ec7: DUP2
00003ec8: LT
00003ec9: ISZERO
00003eca: PUSH2 0x3eea
00003ecd: JUMPI
00003ece: PUSH2 0x3ed7
00003ed1: DUP5
00003ed2: DUP5
00003ed3: PUSH2 0x3c14
00003ed6: JUMP
00003ed7: JUMPDEST
00003ed8: PUSH1 0x60
00003eda: SWAP4
00003edb: DUP5
00003edc: ADD
00003edd: SWAP4
00003ede: SWAP3
00003edf: SWAP1
00003ee0: SWAP3
00003ee1: ADD
00003ee2: SWAP2
00003ee3: PUSH1 0x01
00003ee5: ADD
00003ee6: PUSH2 0x3ec5
00003ee9: JUMP
00003eea: JUMPDEST
00003eeb: POP
00003eec: POP
00003eed: POP
00003eee: PUSH1 0x40
00003ef0: DUP4
00003ef1: ADD
00003ef2: DUP8
00003ef3: SWAP1
00003ef4: MSTORE
00003ef5: PUSH1 0x60
00003ef7: DUP4
00003ef8: ADD
00003ef9: DUP7
00003efa: SWAP1
00003efb: MSTORE
00003efc: DUP3
00003efd: DUP2
00003efe: SUB
00003eff: PUSH1 0x80
00003f01: DUP5
00003f02: ADD
00003f03: MSTORE
00003f04: PUSH2 0x3f0e
00003f07: DUP2
00003f08: DUP6
00003f09: DUP8
00003f0a: PUSH2 0x3c6b
00003f0d: JUMP
00003f0e: JUMPDEST
00003f0f: SWAP12
00003f10: SWAP11
00003f11: POP
00003f12: POP
00003f13: POP
00003f14: POP
00003f15: POP
00003f16: POP
00003f17: POP
00003f18: POP
00003f19: POP
00003f1a: POP
00003f1b: POP
00003f1c: JUMP
00003f1d: JUMPDEST
00003f1e: PUSH1 0x60
00003f20: DUP2
00003f21: ADD
00003f22: PUSH2 0x3154
00003f25: DUP3
00003f26: DUP5
00003f27: PUSH2 0x3c14
00003f2a: JUMP
00003f2b: JUMPDEST
00003f2c: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00003f4d: PUSH0
00003f4e: MSTORE
00003f4f: PUSH1 0x12
00003f51: PUSH1 0x04
00003f53: MSTORE
00003f54: PUSH1 0x24
00003f56: PUSH0
00003f57: REVERT
00003f58: JUMPDEST
00003f59: DUP1
00003f5a: DUP3
00003f5b: MUL
00003f5c: DUP2
00003f5d: ISZERO
00003f5e: DUP3
00003f5f: DUP3
00003f60: DIV
00003f61: DUP5
00003f62: EQ
00003f63: OR
00003f64: PUSH2 0x3154
00003f67: JUMPI
00003f68: PUSH2 0x3154
00003f6b: PUSH2 0x3d42
00003f6e: JUMP
00003f6f: JUMPDEST
00003f70: PUSH0
00003f71: DUP3
00003f72: PUSH2 0x3fa2
00003f75: JUMPI
00003f76: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00003f97: PUSH0
00003f98: MSTORE
00003f99: PUSH1 0x12
00003f9b: PUSH1 0x04
00003f9d: MSTORE
00003f9e: PUSH1 0x24
00003fa0: PUSH0
00003fa1: REVERT
00003fa2: JUMPDEST
00003fa3: POP
00003fa4: DIV
00003fa5: SWAP1
00003fa6: JUMP
00003fa7: JUMPDEST
00003fa8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003fbd: DUP6
00003fbe: AND
00003fbf: DUP2
00003fc0: MSTORE
00003fc1: DUP4
00003fc2: PUSH1 0x20
00003fc4: DUP3
00003fc5: ADD
00003fc6: MSTORE
00003fc7: PUSH1 0x60
00003fc9: PUSH1 0x40
00003fcb: DUP3
00003fcc: ADD
00003fcd: MSTORE
00003fce: PUSH0
00003fcf: PUSH2 0x3fdc
00003fd2: PUSH1 0x60
00003fd4: DUP4
00003fd5: ADD
00003fd6: DUP5
00003fd7: DUP7
00003fd8: PUSH2 0x3c6b
00003fdb: JUMP
00003fdc: JUMPDEST
00003fdd: SWAP7
00003fde: SWAP6
00003fdf: POP
00003fe0: POP
00003fe1: POP
00003fe2: POP
00003fe3: POP
00003fe4: POP
00003fe5: JUMP
00003fe6: INVALID
00003fe7: LOG2
00003fe8: PUSH5 0x6970667358
00003fee: UNKNOWN(0x22)
00003fef: SLT
00003ff0: KECCAK256
00003ff1: BASEFEE
00003ff2: BALANCE
00003ff3: UNKNOWN(0x4B)
00003ff4: DUP14
00003ff5: UNKNOWN(0xEC)
00003ff6: ISZERO
00003ff7: UNKNOWN(0xE7)
00003ff8: SWAP7
00003ff9: UNKNOWN(0xDE)
00003ffa: UNKNOWN(0xCF)
00003ffb: CALLDATASIZE
00003ffc: UNKNOWN(0xEB)
00003ffd: PUSH4 0x6ff0c093
00004002: ADDRESS
00004003: MUL
00004004: OR
00004005: DUP2
00004006: UNKNOWN(0xB5)
00004007: DUP14
00004008: UNKNOWN(0xFC)
00004009: UNKNOWN(0xE7)
0000400a: COINBASE
0000400b: UNKNOWN(0xAA)
0000400c: PUSH17

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability detector Untrusted DELEGATECALL target reachable 70 no no
view
trace_id: 0xa83f315e32a84b867235a442f619b4332dd404b14be40b6ba87f67c2f8dacce8
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 36,
    "trace_id": "0xa83f315e32a84b867235a442f619b4332dd404b14be40b6ba87f67c2f8dacce8",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x7fc9d4ad",
            "selector": "0x7fc9d4ad",
            "calldata_variants": [
                "0x7fc9d4ad",
                "0x7fc9d4ad0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa3c779fd",
            "selector": "0xa3c779fd",
            "calldata_variants": [
                "0xa3c779fd",
                "0xa3c779fd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb5c736e4",
            "selector": "0xb5c736e4",
            "calldata_variants": [
                "0xb5c736e4",
                "0xb5c736e40000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 638,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [],
    "delegatecall_count": 1,
    "untrusted_delegatecall_count": 1
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x8b0f763becc80e5a645ae12fffddd2700f96b58d32eeb0add0b7971bcbd12117
call_targets: 0xbbcb91440523216e2b87052a99f69c604a7b6e00
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x8b0f763becc80e5a645ae12fffddd2700f96b58d32eeb0add0b7971bcbd12117",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xbbcb91440523216e2b87052a99f69c604a7b6e00"
    ],
    "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": "0x7fc9d4ad",
            "selector": "0x7fc9d4ad",
            "calldata_variants": [
                "0x7fc9d4ad",
                "0x7fc9d4ad0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa3c779fd",
            "selector": "0xa3c779fd",
            "calldata_variants": [
                "0xa3c779fd",
                "0xa3c779fd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb5c736e4",
            "selector": "0xb5c736e4",
            "calldata_variants": [
                "0xb5c736e4",
                "0xb5c736e40000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 6325,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6838,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 9526,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 7,
    "guards_detected": [],
    "untrusted_call_count": 6
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x8b0f763becc80e5a645ae12fffddd2700f96b58d32eeb0add0b7971bcbd12117
call_targets: 0xbbcb91440523216e2b87052a99f69c604a7b6e00
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x8b0f763becc80e5a645ae12fffddd2700f96b58d32eeb0add0b7971bcbd12117",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xbbcb91440523216e2b87052a99f69c604a7b6e00"
    ],
    "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": "0x7fc9d4ad",
            "selector": "0x7fc9d4ad",
            "calldata_variants": [
                "0x7fc9d4ad",
                "0x7fc9d4ad0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa3c779fd",
            "selector": "0xa3c779fd",
            "calldata_variants": [
                "0xa3c779fd",
                "0xa3c779fd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb5c736e4",
            "selector": "0xb5c736e4",
            "calldata_variants": [
                "0xb5c736e4",
                "0xb5c736e40000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 6325,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6838,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 9526,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 6,
    "guards_detected": []
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 1
}
medium upgradeability codex User-triggerable delegatecall hook enables full-state execution if extension is compromised 75 no
view
evidence_json
{
    "evidence": "`swapSingle`/`swapHop` route non-empty `extraData_` into `_callExtraDataSlot`, which performs a `delegatecall` via `_spell`.",
    "locations": [
        "contracts/contracts/protocols/dexLite/core/main.sol:38",
        "contracts/contracts/protocols/dexLite/core/main.sol:129",
        "contracts/contracts/protocols/dexLite/core/helpers.sol:30",
        "contracts/contracts/protocols/dexLite/core/helpers.sol:518"
    ],
    "recommendation": "Avoid `delegatecall` for user-triggerable hooks; use an external-call interface with explicit allowed selectors, or restrict `extraData_` usage to trusted callers and keep the extension immutable and tightly audited.",
    "exploit_scenario": "Governance sets `EXTRA_DATA_SLOT` to an upgradeable module. An attacker exploits a bug or unprotected function in that module and calls `swapSingle`/`swapHop` with non-empty `extraData_`, causing the module to execute via `delegatecall` in DexLite\u2019s context and overwrite `_dexVariables`/balances or even selfdestruct the contract."
}
medium oracle codex Center price uses external oracle without manipulation bounds 75 no
view
evidence_json
{
    "evidence": "`ICenterPrice.centerPrice` is called during swap pricing and its return value is used directly to compute reserves and swap amounts.",
    "locations": [
        "contracts/contracts/protocols/dexLite/core/helpers.sol:229",
        "contracts/contracts/protocols/dexLite/core/helpers.sol:284"
    ],
    "recommendation": "Use a manipulation-resistant oracle (TWAP/Chainlink), add sanity bounds against sudden price jumps, and/or cache prices and enforce minimum update intervals.",
    "exploit_scenario": "If the `ICenterPrice` implementation relies on manipulable spot prices (e.g., AMM reserves), an attacker can skew the oracle in the same block, then call `swapSingle`/`swapHop` to trade against an artificial center price and extract value, leaving the pool with bad inventory once the oracle normalizes."
}
low other codex Dex pool ID truncation to 64 bits allows hash collisions 65 no
view
evidence_json
{
    "evidence": "Pool IDs are derived as `bytes8(keccak256(abi.encode(dexKey_)))`.",
    "locations": [
        "contracts/contracts/protocols/dexLite/core/coreInternals.sol:12",
        "contracts/contracts/protocols/dexLite/core/coreInternals.sol:153"
    ],
    "recommendation": "Use `bytes32` (full `keccak256`) as the mapping key or otherwise include the full hash to avoid collision risk.",
    "exploit_scenario": "A sufficiently resourced attacker can search for a `DexKey` whose `keccak256` prefix collides with an existing pool\u2019s `bytes8` ID. Swaps using the colliding key would operate on the victim pool\u2019s `dexVariables` while transferring attacker-chosen tokens, potentially corrupting accounting or draining any held balances of those tokens."
}