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

Analysis Run

bb4cd4e4-bb89-4d72-9bad-ab081d2ed309

complete
Chain ID
1
Address
Block Number
Created
Mon, Dec 29, 2025 4:16 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
Keeper-controlled currentBalance can arbitrarily skew pricePerShare and queued withdrawals
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
30522 report.consolidate complete 1 / 1 3 months ago
103991 artifact.fetch complete 1 / 3 1 week ago
103992 tool.cast_disasm complete 1 / 3 1 week ago
103993 analysis.bundle complete 1 / 3 1 week ago
103994 capability.graph complete 1 / 3 1 week ago
103995 detector.run complete 1 / 3 1 week ago
103996 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
2
No findings?
no
Summary
Identified 2 issues: keeper-controlled balance reporting can manipulate share pricing/withdrawals, and owner can change vault parameters (asset/decimals) mid-flight, breaking accounting.
View stderr
[codex:1059560] OpenAI Codex v0.77.0 (research preview)
[codex:1059560] --------
[codex:1059560] workdir: /tmp/codex-multi-2n1o5f24
[codex:1059560] model: gpt-5.2-codex
[codex:1059560] provider: openai
[codex:1059560] approval: never
[codex:1059560] sandbox: read-only
[codex:1059560] reasoning effort: xhigh
[codex:1059560] reasoning summaries: auto
[codex:1059560] session id: 019b6ade-ba39-72e1-8bdd-a24d3a8f604b
[codex:1059560] --------
[codex:1059560] user
[codex:1059560] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1059560] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1059560] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1059560] 
[codex:1059560] Scope rules:
[codex:1059560] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1059560] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1059560] 
[codex:1059560] Output MUST be valid JSON matching the provided schema.
[codex:1059560] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1059560] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1059560] 
[codex:1059560] Output constraints (IMPORTANT):
[codex:1059560] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1059560] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1059560] mcp startup: no servers
[codex:1059560] 
[codex:1059560] thinking
[codex:1059560] **Checking skill requirements**
[codex:1059560] exec
[codex:1059560] /bin/bash -lc ls in /tmp/codex-multi-2n1o5f24 succeeded in 5ms:
[codex:1059560] AUDIT_BUNDLE.txt
[codex:1059560] codex-output-schema.json
[codex:1059560] contracts
[codex:1059560] exec
[codex:1059560] /bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2n1o5f24 succeeded in 5ms:
[codex:1059560] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1059560] 
[codex:1059560] ================================================================================
[codex:1059560] FILE: contracts/lib/openzeppelin-contracts/contracts/access/Ownable.sol
[codex:1059560] ================================================================================
[codex:1059560] // SPDX-License-Identifier: MIT
[codex:1059560] // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
[codex:1059560] 
[codex:1059560] pragma solidity ^0.8.20;
[codex:1059560] 
[codex:1059560] import {Context} from "../utils/Context.sol";
[codex:1059560] 
[codex:1059560] /**
[codex:1059560]  * @dev Contract module which provides a basic access control mechanism, where
[codex:1059560]  * there is an account (an owner) that can be granted exclusive access to
[codex:1059560]  * specific functions.
[codex:1059560]  *
[codex:1059560]  * The initial owner is set to the address provided by the deployer. This can
[codex:1059560]  * later be changed with {transferOwnership}.
[codex:1059560]  *
[codex:1059560] 
[codex:1059560] thinking
[codex:1059560] **Preparing to read full audit bundle**
[codex:1059560] exec
[codex:1059560] /bin/bash -lc 'wc -l AUDIT_BUNDLE.txt' in /tmp/codex-multi-2n1o5f24 succeeded in 5ms:
[codex:1059560] 2450 AUDIT_BUNDLE.txt
[codex:1059560] 
[codex:1059560] thinking
[codex:1059560] **Processing file in segments**
[codex:1059560] 
[codex:1059560] I'm planning to read the large 2450-line file in chunks of 200 lines each, using sed to extract these segments incrementally. Since the first 200 lines already show openzeppelin content, I'll keep moving forward this way to gradually process the whole file.
[codex:1059560] exec
[codex:1059560] /bin/bash -lc "sed -n '200,400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2n1o5f24 succeeded in 6ms:
[codex:1059560]      * @param operator Address that may be allowed to operate on tokens without being their owner.
[codex:1059560]      * @param tokenId Identifier number of a token.
[codex:1059560]      */
[codex:1059560]     error ERC721InsufficientApproval(address operator, uint256 tokenId);
[codex:1059560] 
[codex:1059560]     /**
[codex:1059560]      * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
[codex:1059560]      * @param approver Address initiating an approval operation.
[codex:1059560]      */
[codex:1059560]     error ERC721InvalidApprover(address approver);
[codex:1059560] 
[codex:1059560]     /**
[codex:1059560]      * @dev Indicates a failure with the `operator` to be approved. Used in approvals.
[codex:1059560]      * @param operator Address that may be allowed to operate on tokens without being their owner.
[codex:1059560]      */
[codex:1059560]     error ERC721InvalidOperator(address operator);
[codex:1059560] }
[codex:1059560] 
[codex:1059560] /**
[codex:1059560]  * @dev Standard ERC-1155 Errors
[codex:1059560] 
[codex:1059560] thinking
[codex:1059560] **Continuing to scan OpenZeppelin file**
[codex:1059560] exec
[codex:1059560] /bin/bash -lc "sed -n '400,800p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2n1o5f24 succeeded in 5ms:
[codex:1059560]      * `transferFrom`. This is semantically equivalent to an infinite approval.
[codex:1059560]      *
[codex:1059560]      * Requirements:
[codex:1059560]      *
[codex:1059560]      * - `spender` cannot be the zero address.
[codex:1059560]      */
[codex:1059560]     function approve(address spender, uint256 value) public virtual returns (bool) {
[codex:1059560]         address owner = _msgSender();
[codex:1059560]         _approve(owner, spender, value);
[codex:1059560]         return true;
[codex:1059560]     }
[codex:1059560] 
[codex:1059560]     /**
[codex:1059560]      * @dev See {IERC20-transferFrom}.
[codex:1059560]      *
[codex:1059560]      * Emits an {Approval} event indicating the updated allowance. This is not
[codex:1059560]      * required by the ERC. See the note at the beginning of {ERC20}.
[codex:1059560]      *
[codex:1059560]      * NOTE: Does not update the allowance if the current allowance
[codex:1059560]      * is the maximum `uint256`.
[codex:1059560] 
[codex:1059560] thinking
[codex:1059560] **Continuing with OpenZeppelin exploration**
[codex:1059560] exec
[codex:1059560] /bin/bash -lc "sed -n '800,1200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2n1o5f24 succeeded in 5ms:
[codex:1059560] FILE: contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol
[codex:1059560] ================================================================================
[codex:1059560] // SPDX-License-Identifier: MIT
[codex:1059560] // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/utils/SafeERC20.sol)
[codex:1059560] 
[codex:1059560] pragma solidity ^0.8.20;
[codex:1059560] 
[codex:1059560] import {IERC20} from "../IERC20.sol";
[codex:1059560] import {IERC20Permit} from "../extensions/IERC20Permit.sol";
[codex:1059560] import {Address} from "../../../utils/Address.sol";
[codex:1059560] 
[codex:1059560] /**
[codex:1059560]  * @title SafeERC20
[codex:1059560]  * @dev Wrappers around ERC-20 operations that throw on failure (when the token
[codex:1059560]  * contract returns false). Tokens that return no value (and instead revert or
[codex:1059560]  * throw on failure) are also supported, non-reverting calls are assumed to be
[codex:1059560]  * successful.
[codex:1059560]  * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,
[codex:1059560]  * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
[codex:1059560]  */
[codex:1059560] 
[codex:1059560] thinking
[codex:1059560] **Continuing analysis**
[codex:1059560] exec
[codex:1059560] /bin/bash -lc "sed -n '1200,1600p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2n1o5f24 succeeded in 5ms:
[codex:1059560]         return _status == ENTERED;
[codex:1059560]     }
[codex:1059560] }
[codex:1059560] 
[codex:1059560] ================================================================================
[codex:1059560] FILE: contracts/lib/solady/src/utils/MerkleProofLib.sol
[codex:1059560] ================================================================================
[codex:1059560] // SPDX-License-Identifier: MIT
[codex:1059560] pragma solidity ^0.8.4;
[codex:1059560] 
[codex:1059560] /// @notice Gas optimized verification of proof of inclusion for a leaf in a Merkle tree.
[codex:1059560] /// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/MerkleProofLib.sol)
[codex:1059560] /// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/MerkleProofLib.sol)
[codex:1059560] /// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/cryptography/MerkleProof.sol)
[codex:1059560] library MerkleProofLib {
[codex:1059560]     /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
[codex:1059560]     /*            MERKLE PROOF VERIFICATION OPERATIONS            */
[codex:1059560]     /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
[codex:1059560] 
[codex:1059560]     /// @dev Returns whether `leaf` exists in the Merkle tree with `root`, given `proof`.
[codex:1059560] 
[codex:1059560] thinking
[codex:1059560] **Continuing to review StreamVault**
[codex:1059560] exec
[codex:1059560] /bin/bash -lc "sed -n '1600,2000p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2n1o5f24 succeeded in 6ms:
[codex:1059560]     event CapSet(uint256 oldCap, uint256 newCap);
[codex:1059560] 
[codex:1059560]     event InstantWithdraw(
[codex:1059560]         address indexed account,
[codex:1059560]         uint256 amount,
[codex:1059560]         uint256 round
[codex:1059560]     );
[codex:1059560] 
[codex:1059560]     /************************************************
[codex:1059560]      *  MODIFIERS
[codex:1059560]      ***********************************************/
[codex:1059560] 
[codex:1059560]     /**
[codex:1059560]      * @dev Throws if called by any account other than the keeper.
[codex:1059560]      */
[codex:1059560]     modifier onlyKeeper() {
[codex:1059560]         require(msg.sender == keeper, "!keeper");
[codex:1059560]         _;
[codex:1059560]     }
[codex:1059560] 
[codex:1059560] 
[codex:1059560] thinking
[codex:1059560] **Continuing process**
[codex:1059560] exec
[codex:1059560] /bin/bash -lc "sed -n '2000,2400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2n1o5f24 succeeded in 6ms:
[codex:1059560]     /**
[codex:1059560]      * @notice Rolls to the next round, finalizing prev round pricePerShare and minting new shares
[codex:1059560]      * @notice Keeper only deposits enough to fulfill withdraws and passes the true amount as 'currentBalance'
[codex:1059560]      * @notice Keeper should be a contract so currentBalance and the call to the func happens atomically
[codex:1059560]      * @param currentBalance is the amount of `asset` that is currently being used for strategy 
[codex:1059560]               + the amount in the contract right before the roll
[codex:1059560] 
[codex:1059560]      */
[codex:1059560]     function rollToNextRound(
[codex:1059560]         uint256 currentBalance
[codex:1059560]     ) external onlyKeeper nonReentrant {
[codex:1059560]         require(
[codex:1059560]             currentBalance >= uint256(vaultParams.minimumSupply),
[codex:1059560]             "Insufficient balance"
[codex:1059560]         );
[codex:1059560]         Vault.VaultState memory state = vaultState;
[codex:1059560]         uint256 currentRound = state.round;
[codex:1059560] 
[codex:1059560]         uint256 newPricePerShare = ShareMath.pricePerShare(
[codex:1059560]             totalSupply() - state.queuedWithdrawShares,
[codex:1059560] 
[codex:1059560] thinking
[codex:1059560] **Requesting remaining Vault.sol code**
[codex:1059560] exec
[codex:1059560] /bin/bash -lc "sed -n '2400,2600p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2n1o5f24 succeeded in 7ms:
[codex:1059560] 
[codex:1059560] /*
[codex:1059560]  * @title Vault
[codex:1059560]  * @dev Vault Data Type library for Stream Vaults
[codex:1059560]  */
[codex:1059560] library Vault {
[codex:1059560]     struct VaultParams {
[codex:1059560]         // Token decimals for vault shares
[codex:1059560]         uint8 decimals;
[codex:1059560]         // Asset used in Stream Vault
[codex:1059560]         address asset;
[codex:1059560]         // Minimum supply of the vault shares issued, for ETH it's 10**10
[codex:1059560]         uint56 minimumSupply;
[codex:1059560]         // Vault cap
[codex:1059560]         uint104 cap;
[codex:1059560]     }
[codex:1059560] 
[codex:1059560]     struct VaultState {
[codex:1059560]         // 32 byte slot 1
[codex:1059560]         //  Current round number. `round` represents the number of `period`s elapsed.
[codex:1059560] 
[codex:1059560] 
[codex:1059560] 
[codex:1059560] 
[codex:1059560] 
[codex:1059560] thinking
[codex:1059560] **Evaluating StreamVault contract risks**
[codex:1059560] 
[codex:1059560] I'm carefully reviewing StreamVault's code to spot vulnerabilities like reentrancy, access control issues, and oracle manipulation. I'm paying special attention to how the keeper’s privileged role and the currentBalance parameter could allow asset misappropriation, how state updates interact with external calls, and potential effects from owner-controlled parameters. There’s a lot to unpack around minting shares, price calculations, and withdrawal logic, so I’m analyzing each pattern to understand possible exploit scenarios.
[codex:1059560] thinking
[codex:1059560] **Examining arithmetic and state consistency concerns**
[codex:1059560] 
[codex:1059560] I'm diving deeper into potential underflow risks and edge cases in rollToNextRound and redemption logic, especially around queued withdrawal amounts versus vault balances. I’m also considering the impact of unupdated depositReceipt rounds after redemption and how keeper-controlled currentBalance can skew pricing to the keeper’s advantage, alongside subtle rounding and decimal configuration issues that might introduce operational risks.
[codex:1059560] thinking
[codex:1059560] **Detailing oracle manipulation and token behavior risks**
[codex:1059560] 
[codex:1059560] There is a significant risk that the keeper’s unchecked `currentBalance` input can manipulate share pricing to dilute existing shareholders or unfairly benefit pending deposits, effectively shifting value. I’m also weighing the impact of fee-on-transfer tokens causing the vault to credit deposits without receiving full amounts, which could disrupt accounting, as well as some nuanced effects from direct ETH transfers and how the vault tracks balances in those scenarios.
[codex:1059560] thinking
[codex:1059560] **Analyzing share accounting and withdrawal mechanics**
[codex:1059560] 
[codex:1059560] I’m examining how shares held by the vault—both for pending deposits and queued withdrawals—interact during burn and redeem operations, ensuring no mixing causes incorrect balance reductions. The fungible nature of shares means the vault’s balance pools together both types, but the accounting looks consistent. I’m also reviewing the timing of state updates around withdrawals and transfers to spot any subtle risks like reentrancy or rounding dust, but nothing critical stands out so far.
[codex:1059560] thinking
[codex:1059560] **Examining asset switching and keeper input trust risks**
[codex:1059560] 
[codex:1059560] I'm reviewing how changing the vault's asset via `setVaultParams` can break share accounting and enable the owner to redirect withdrawals, effectively risking user funds. Also, I’m considering the trusted keeper’s ability to supply `currentBalance` for price calculations without on-chain verification, which can lead to share price manipulation. These centralized control points represent key risks worth highlighting.
[codex:1059560] exec
[codex:1059560] /bin/bash -lc "nl -ba contracts/src/StreamVault.sol | sed -n '200,360p'" in /tmp/codex-multi-2n1o5f24 succeeded in 9ms:
[codex:1059560]    200	        require(vaultParams.asset == WETH, "!WETH");
[codex:1059560]    201	        require(msg.value > 0, "!value");
[codex:1059560]    202	        require(creditor != address(0), "!creditor");
[codex:1059560]    203	
[codex:1059560]    204	        _depositFor(msg.value, creditor);
[codex:1059560]    205	
[codex:1059560]    206	        IWETH(WETH).deposit{value: msg.value}();
[codex:1059560]    207	    }
[codex:1059560]    208	
[codex:1059560]    209	    /**
[codex:1059560]    210	     * @notice Manages the deposit receipts for a depositer
[codex:1059560]    211	     * @param amount is the amount of `asset` deposited
[codex:1059560]    212	     * @param creditor is the address to receieve the deposit
[codex:1059560]    213	     */
[codex:1059560]    214	    function _depositFor(uint256 amount, address creditor) private {
[codex:1059560]    215	        uint256 currentRound = vaultState.round;
[codex:1059560]    216	        uint256 totalWithDepositedAmount = totalBalance() + amount;
[codex:1059560]    217	
[codex:1059560]    218	        require(totalWithDepositedAmount <= vaultParams.cap, "Exceed cap");
[codex:1059560]    219	        require(
[codex:1059560] 
[codex:1059560] thinking
[codex:1059560] **Reviewing functions rollToNextRound and setVaultParams**
[codex:1059560] exec
[codex:1059560] /bin/bash -lc "nl -ba contracts/src/StreamVault.sol | sed -n '420,560p'" in /tmp/codex-multi-2n1o5f24 succeeded in 8ms:
[codex:1059560]    420	     * @param numShares is the number of shares to redeem
[codex:1059560]    421	     */
[codex:1059560]    422	    function redeem(uint256 numShares) external nonReentrant {
[codex:1059560]    423	        require(numShares > 0, "!numShares");
[codex:1059560]    424	        _redeem(numShares, false);
[codex:1059560]    425	    }
[codex:1059560]    426	
[codex:1059560]    427	    /**
[codex:1059560]    428	     * @notice Redeems the entire unredeemedShares balance that is owed to the account
[codex:1059560]    429	     */
[codex:1059560]    430	    function maxRedeem() external nonReentrant {
[codex:1059560]    431	        _redeem(0, true);
[codex:1059560]    432	    }
[codex:1059560]    433	
[codex:1059560]    434	    /**
[codex:1059560]    435	     * @notice Redeems shares that are owed to the account
[codex:1059560]    436	     * @param numShares is the number of shares to redeem, could be 0 when isMax=true
[codex:1059560]    437	     * @param isMax is flag for when callers do a max redemption
[codex:1059560]    438	     */
[codex:1059560]    439	    function _redeem(uint256 numShares, bool isMax) internal {
[codex:1059560] 
[codex:1059560] thinking
[codex:1059560] **Searching for SetVaultParams usage**
[codex:1059560] exec
[codex:1059560] /bin/bash -lc "nl -ba contracts/src/StreamVault.sol | sed -n '600,760p'" in /tmp/codex-multi-2n1o5f24 succeeded in 6ms:
[codex:1059560]    600	    function setCap(uint256 newCap) external onlyOwner {
[codex:1059560]    601	        require(newCap > 0, "!newCap");
[codex:1059560]    602	        ShareMath.assertUint104(newCap);
[codex:1059560]    603	        emit CapSet(vaultParams.cap, newCap);
[codex:1059560]    604	        vaultParams.cap = uint104(newCap);
[codex:1059560]    605	    }
[codex:1059560]    606	
[codex:1059560]    607	    /**
[codex:1059560]    608	      * @notice Sets the new vault parameters
[codex:1059560]    609	    */
[codex:1059560]    610	    function setVaultParams(Vault.VaultParams memory newVaultParams) external onlyOwner {
[codex:1059560]    611	        require(newVaultParams.cap > 0, "!newCap");
[codex:1059560]    612	        require(newVaultParams.asset != address(0), "!newAsset");
[codex:1059560]    613	        vaultParams = newVaultParams;
[codex:1059560]    614	    }
[codex:1059560]    615	
[codex:1059560]    616	    /************************************************
[codex:1059560]    617	     *  GETTERS
[codex:1059560]    618	     ***********************************************/
[codex:1059560]    619	
[codex:1059560] 
[codex:1059560] thinking
[codex:1059560] **Summarizing vulnerability findings**
[codex:1059560] codex
[codex:1059560] {"no_findings":false,"summary":"Identified 2 issues: keeper-controlled balance reporting can manipulate share pricing/withdrawals, and owner can change vault parameters (asset/decimals) mid-flight, breaking accounting.","findings":[{"severity":"high","category":"oracle","title":"Keeper-controlled currentBalance can arbitrarily skew pricePerShare and queued withdrawals","exploit_scenario":"A malicious or compromised keeper deposits before a round roll, then calls rollToNextRound with an artificially low currentBalance. This drives newPricePerShare down, mints excessive shares for their pending deposit, and reduces queuedWithdrawAmount. The vault then transfers a larger on-chain balance to the keeper, while queued withdrawers are underfunded. The keeper later redeems inflated shares to extract value from other holders.","recommendation":"Derive currentBalance from on-chain data or a strategy contract with verifiable accounting (e.g., report-and-verify pattern), add bounds/consistency checks against observed balances, and/or gate rollToNextRound behind a timelock or multisig with monitored reporting.","evidence":"rollToNextRound accepts a caller-supplied currentBalance and uses it directly in pricePerShare and queuedWithdrawAmount calculations, then transfers balance minus queuedWithdrawAmount to the keeper.","locations":["contracts/src/StreamVault.sol:489","contracts/src/StreamVault.sol:499","contracts/src/StreamVault.sol:519","contracts/src/StreamVault.sol:544"]},{"severity":"medium","category":"access_control","title":"Owner can change vault asset/decimals mid-flight, breaking accounting and withdrawals","exploit_scenario":"The owner calls setVaultParams to switch the asset or decimals while shares and pending deposits exist. Subsequent rolls/redemptions calculate shares against the new asset/decimals, potentially paying users in the wrong token or making withdrawals revert. The original asset can be stranded or later swept by toggling the asset back and rolling, effectively enabling a rug if the owner is malicious or compromised.","recommendation":"Make asset/decimals immutable after deployment, or restrict parameter changes to times when totalSupply, totalPending, and queuedWithdrawShares are zero; consider timelocks and explicit migration flows for any parameter changes.","evidence":"setVaultParams overwrites vaultParams with only minimal checks (non-zero cap/asset), allowing asset/decimals changes at any time.","locations":["contracts/src/StreamVault.sol:610","contracts/src/StreamVault.sol:613"]}]}
[codex:1059560] tokens used
[codex:1059560] 55,401
[codex:1059560] {"no_findings":false,"summary":"Identified 2 issues: keeper-controlled balance reporting can manipulate share pricing/withdrawals, and owner can change vault parameters (asset/decimals) mid-flight, breaking accounting.","findings":[{"severity":"high","category":"oracle","title":"Keeper-controlled currentBalance can arbitrarily skew pricePerShare and queued withdrawals","exploit_scenario":"A malicious or compromised keeper deposits before a round roll, then calls rollToNextRound with an artificially low currentBalance. This drives newPricePerShare down, mints excessive shares for their pending deposit, and reduces queuedWithdrawAmount. The vault then transfers a larger on-chain balance to the keeper, while queued withdrawers are underfunded. The keeper later redeems inflated shares to extract value from other holders.","recommendation":"Derive currentBalance from on-chain data or a strategy contract with verifiable accounting (e.g., report-and-verify pattern), add bounds/consistency checks against observed balances, and/or gate rollToNextRound behind a timelock or multisig with monitored reporting.","evidence":"rollToNextRound accepts a caller-supplied currentBalance and uses it directly in pricePerShare and queuedWithdrawAmount calculations, then transfers balance minus queuedWithdrawAmount to the keeper.","locations":["contracts/src/StreamVault.sol:489","contracts/src/StreamVault.sol:499","contracts/src/StreamVault.sol:519","contracts/src/StreamVault.sol:544"]},{"severity":"medium","category":"access_control","title":"Owner can change vault asset/decimals mid-flight, breaking accounting and withdrawals","exploit_scenario":"The owner calls setVaultParams to switch the asset or decimals while shares and pending deposits exist. Subsequent rolls/redemptions calculate shares against the new asset/decimals, potentially paying users in the wrong token or making withdrawals revert. The original asset can be stranded or later swept by toggling the asset back and rolling, effectively enabling a rug if the owner is malicious or compromised.","recommendation":"Make asset/decimals immutable after deployment, or restrict parameter changes to times when totalSupply, totalPending, and queuedWithdrawShares are zero; consider timelocks and explicit migration flows for any parameter changes.","evidence":"setVaultParams overwrites vaultParams with only minimal checks (non-zero cap/asset), allowing asset/decimals changes at any time.","locations":["contracts/src/StreamVault.sol:610","contracts/src/StreamVault.sol:613"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-29T16:16:29.267239+00:00",
        "returncode": 0
    },
    "summary": "Identified 2 issues: keeper-controlled balance reporting can manipulate share pricing/withdrawals, and owner can change vault parameters (asset/decimals) mid-flight, breaking accounting.",
    "raw_final": {
        "summary": "Identified 2 issues: keeper-controlled balance reporting can manipulate share pricing/withdrawals, and owner can change vault parameters (asset/decimals) mid-flight, breaking accounting.",
        "findings": [
            {
                "title": "Keeper-controlled currentBalance can arbitrarily skew pricePerShare and queued withdrawals",
                "category": "oracle",
                "evidence": "rollToNextRound accepts a caller-supplied currentBalance and uses it directly in pricePerShare and queuedWithdrawAmount calculations, then transfers balance minus queuedWithdrawAmount to the keeper.",
                "severity": "high",
                "locations": [
                    "contracts/src/StreamVault.sol:489",
                    "contracts/src/StreamVault.sol:499",
                    "contracts/src/StreamVault.sol:519",
                    "contracts/src/StreamVault.sol:544"
                ],
                "recommendation": "Derive currentBalance from on-chain data or a strategy contract with verifiable accounting (e.g., report-and-verify pattern), add bounds/consistency checks against observed balances, and/or gate rollToNextRound behind a timelock or multisig with monitored reporting.",
                "exploit_scenario": "A malicious or compromised keeper deposits before a round roll, then calls rollToNextRound with an artificially low currentBalance. This drives newPricePerShare down, mints excessive shares for their pending deposit, and reduces queuedWithdrawAmount. The vault then transfers a larger on-chain balance to the keeper, while queued withdrawers are underfunded. The keeper later redeems inflated shares to extract value from other holders."
            },
            {
                "title": "Owner can change vault asset/decimals mid-flight, breaking accounting and withdrawals",
                "category": "access_control",
                "evidence": "setVaultParams overwrites vaultParams with only minimal checks (non-zero cap/asset), allowing asset/decimals changes at any time.",
                "severity": "medium",
                "locations": [
                    "contracts/src/StreamVault.sol:610",
                    "contracts/src/StreamVault.sol:613"
                ],
                "recommendation": "Make asset/decimals immutable after deployment, or restrict parameter changes to times when totalSupply, totalPending, and queuedWithdrawShares are zero; consider timelocks and explicit migration flows for any parameter changes.",
                "exploit_scenario": "The owner calls setVaultParams to switch the asset or decimals while shares and pending deposits exist. Subsequent rolls/redemptions calculate shares against the new asset/decimals, potentially paying users in the wrong token or making withdrawals revert. The original asset can be stranded or later swept by toggling the asset back and rolling, effectively enabling a rug if the owner is malicious or compromised."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
7
EXT*/BALANCE
4
Total opcodes
8535
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x02cd
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x7cb64759
00000019: GT
0000001a: PUSH2 0x0175
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xc0ce93f1
00000024: GT
00000025: PUSH2 0x00dc
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xeae1f265
0000002f: GT
00000030: PUSH2 0x0095
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xf6203e35
0000003a: GT
0000003b: PUSH2 0x006f
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xf6203e35
00000045: EQ
00000046: PUSH2 0x0a40
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xf6326fb3
00000050: EQ
00000051: PUSH2 0x0a53
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xf656ba51
0000005b: EQ
0000005c: PUSH2 0x0a5b
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0xf756fa21
00000066: EQ
00000067: PUSH2 0x0a90
0000006a: JUMPI
0000006b: PUSH1 0x00
0000006d: DUP1
0000006e: REVERT
0000006f: JUMPDEST
00000070: DUP1
00000071: PUSH4 0xeae1f265
00000076: EQ
00000077: PUSH2 0x09ed
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0xf0b2c7e6
00000081: EQ
00000082: PUSH2 0x0a00
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0xf2fde38b
0000008c: EQ
0000008d: PUSH2 0x0a20
00000090: JUMPI
00000091: PUSH1 0x00
00000093: DUP1
00000094: REVERT
00000095: JUMPDEST
00000096: DUP1
00000097: PUSH4 0xc0ce93f1
0000009c: EQ
0000009d: PUSH2 0x0906
000000a0: JUMPI
000000a1: DUP1
000000a2: PUSH4 0xce7c2ac2
000000a7: EQ
000000a8: PUSH2 0x0926
000000ab: JUMPI
000000ac: DUP1
000000ad: PUSH4 0xd164cc15
000000b2: EQ
000000b3: PUSH2 0x0946
000000b6: JUMPI
000000b7: DUP1
000000b8: PUSH4 0xdb006a75
000000bd: EQ
000000be: PUSH2 0x0966
000000c1: JUMPI
000000c2: DUP1
000000c3: PUSH4 0xdc9a1535
000000c8: EQ
000000c9: PUSH2 0x0986
000000cc: JUMPI
000000cd: DUP1
000000ce: PUSH4 0xdd62ed3e
000000d3: EQ
000000d4: PUSH2 0x09a7
000000d7: JUMPI
000000d8: PUSH1 0x00
000000da: DUP1
000000db: REVERT
000000dc: JUMPDEST
000000dd: DUP1
000000de: PUSH4 0x9fcc2d75
000000e3: GT
000000e4: PUSH2 0x012e
000000e7: JUMPI
000000e8: DUP1
000000e9: PUSH4 0x9fcc2d75
000000ee: EQ
000000ef: PUSH2 0x07d2
000000f2: JUMPI
000000f3: DUP1
000000f4: PUSH4 0xa9059cbb
000000f9: EQ
000000fa: PUSH2 0x085d
000000fd: JUMPI
000000fe: DUP1
000000ff: PUSH4 0xaced1661
00000104: EQ
00000105: PUSH2 0x087d
00000108: JUMPI
00000109: DUP1
0000010a: PUSH4 0xad5c4648
0000010f: EQ
00000110: PUSH2 0x089d
00000113: JUMPI
00000114: DUP1
00000115: PUSH4 0xad7a672f
0000011a: EQ
0000011b: PUSH2 0x08d1
0000011e: JUMPI
0000011f: DUP1
00000120: PUSH4 0xb6b55f25
00000125: EQ
00000126: PUSH2 0x08e6
00000129: JUMPI
0000012a: PUSH1 0x00
0000012c: DUP1
0000012d: REVERT
0000012e: JUMPDEST
0000012f: DUP1
00000130: PUSH4 0x7cb64759
00000135: EQ
00000136: PUSH2 0x0709
00000139: JUMPI
0000013a: DUP1
0000013b: PUSH4 0x7e108d52
00000140: EQ
00000141: PUSH2 0x0729
00000144: JUMPI
00000145: DUP1
00000146: PUSH4 0x87153eb1
0000014b: EQ
0000014c: PUSH2 0x0749
0000014f: JUMPI
00000150: DUP1
00000151: PUSH4 0x8da5cb5b
00000156: EQ
00000157: PUSH2 0x0776
0000015a: JUMPI
0000015b: DUP1
0000015c: PUSH4 0x95d89b41
00000161: EQ
00000162: PUSH2 0x07a8
00000165: JUMPI
00000166: DUP1
00000167: PUSH4 0x99530b06
0000016c: EQ
0000016d: PUSH2 0x07bd
00000170: JUMPI
00000171: PUSH1 0x00
00000173: DUP1
00000174: REVERT
00000175: JUMPDEST
00000176: DUP1
00000177: PUSH4 0x38bca726
0000017c: GT
0000017d: PUSH2 0x0234
00000180: JUMPI
00000181: DUP1
00000182: PUSH4 0x503c70aa
00000187: GT
00000188: PUSH2 0x01ed
0000018b: JUMPI
0000018c: DUP1
0000018d: PUSH4 0x6f31ab34
00000192: GT
00000193: PUSH2 0x01c7
00000196: JUMPI
00000197: DUP1
00000198: PUSH4 0x6f31ab34
0000019d: EQ
0000019e: PUSH2 0x0645
000001a1: JUMPI
000001a2: DUP1
000001a3: PUSH4 0x70a08231
000001a8: EQ
000001a9: PUSH2 0x065a
000001ac: JUMPI
000001ad: DUP1
000001ae: PUSH4 0x715018a6
000001b3: EQ
000001b4: PUSH2 0x0690
000001b7: JUMPI
000001b8: DUP1
000001b9: PUSH4 0x7a9262a2
000001be: EQ
000001bf: PUSH2 0x06a5
000001c2: JUMPI
000001c3: PUSH1 0x00
000001c5: DUP1
000001c6: REVERT
000001c7: JUMPDEST
000001c8: DUP1
000001c9: PUSH4 0x503c70aa
000001ce: EQ
000001cf: PUSH2 0x058b
000001d2: JUMPI
000001d3: DUP1
000001d4: PUSH4 0x5cbcec4e
000001d9: EQ
000001da: PUSH2 0x05a1
000001dd: JUMPI
000001de: DUP1
000001df: PUSH4 0x6719b2ee
000001e4: EQ
000001e5: PUSH2 0x05c1
000001e8: JUMPI
000001e9: PUSH1 0x00
000001eb: DUP1
000001ec: REVERT
000001ed: JUMPDEST
000001ee: DUP1
000001ef: PUSH4 0x38bca726
000001f4: EQ
000001f5: PUSH2 0x04d7
000001f8: JUMPI
000001f9: DUP1
000001fa: PUSH4 0x3aa03f17
000001ff: EQ
00000200: PUSH2 0x04f7
00000203: JUMPI
00000204: DUP1
00000205: PUSH4 0x3f23bb73
0000020a: EQ
0000020b: PUSH2 0x0517
0000020e: JUMPI
0000020f: DUP1
00000210: PUSH4 0x3f90916a
00000215: EQ
00000216: PUSH2 0x0537
00000219: JUMPI
0000021a: DUP1
0000021b: PUSH4 0x47786d37
00000220: EQ
00000221: PUSH2 0x0555
00000224: JUMPI
00000225: DUP1
00000226: PUSH4 0x4b2431d9
0000022b: EQ
0000022c: PUSH2 0x0575
0000022f: JUMPI
00000230: PUSH1 0x00
00000232: DUP1
00000233: REVERT
00000234: JUMPDEST
00000235: DUP1
00000236: PUSH4 0x2775d01c
0000023b: GT
0000023c: PUSH2 0x0286
0000023f: JUMPI
00000240: DUP1
00000241: PUSH4 0x2775d01c
00000246: EQ
00000247: PUSH2 0x041f
0000024a: JUMPI
0000024b: DUP1
0000024c: PUSH4 0x2eb4a7ab
00000251: EQ
00000252: PUSH2 0x0441
00000255: JUMPI
00000256: DUP1
00000257: PUSH4 0x313ce567
0000025c: EQ
0000025d: PUSH2 0x0457
00000260: JUMPI
00000261: DUP1
00000262: PUSH4 0x3340d73c
00000267: EQ
00000268: PUSH2 0x0479
0000026b: JUMPI
0000026c: DUP1
0000026d: PUSH4 0x355274ea
00000272: EQ
00000273: PUSH2 0x0499
00000276: JUMPI
00000277: DUP1
00000278: PUSH4 0x36efd16f
0000027d: EQ
0000027e: PUSH2 0x04b7
00000281: JUMPI
00000282: PUSH1 0x00
00000284: DUP1
00000285: REVERT
00000286: JUMPDEST
00000287: DUP1
00000288: PUSH4 0x06fdde03
0000028d: EQ
0000028e: PUSH2 0x02d9
00000291: JUMPI
00000292: DUP1
00000293: PUSH4 0x095ea7b3
00000298: EQ
00000299: PUSH2 0x0304
0000029c: JUMPI
0000029d: DUP1
0000029e: PUSH4 0x146ca531
000002a3: EQ
000002a4: PUSH2 0x0334
000002a7: JUMPI
000002a8: DUP1
000002a9: PUSH4 0x18160ddd
000002ae: EQ
000002af: PUSH2 0x0357
000002b2: JUMPI
000002b3: DUP1
000002b4: PUSH4 0x23b872dd
000002b9: EQ
000002ba: PUSH2 0x036c
000002bd: JUMPI
000002be: DUP1
000002bf: PUSH4 0x2728f333
000002c4: EQ
000002c5: PUSH2 0x038c
000002c8: JUMPI
000002c9: PUSH1 0x00
000002cb: DUP1
000002cc: REVERT
000002cd: JUMPDEST
000002ce: CALLDATASIZE
000002cf: PUSH2 0x02d4
000002d2: JUMPI
000002d3: STOP
000002d4: JUMPDEST
000002d5: PUSH1 0x00
000002d7: DUP1
000002d8: REVERT
000002d9: JUMPDEST
000002da: CALLVALUE
000002db: DUP1
000002dc: ISZERO
000002dd: PUSH2 0x02e5
000002e0: JUMPI
000002e1: PUSH1 0x00
000002e3: DUP1
000002e4: REVERT
000002e5: JUMPDEST
000002e6: POP
000002e7: PUSH2 0x02ee
000002ea: PUSH2 0x0aa5
000002ed: JUMP
000002ee: JUMPDEST
000002ef: PUSH1 0x40
000002f1: MLOAD
000002f2: PUSH2 0x02fb
000002f5: SWAP2
000002f6: SWAP1
000002f7: PUSH2 0x2e78
000002fa: JUMP
000002fb: JUMPDEST
000002fc: PUSH1 0x40
000002fe: MLOAD
000002ff: DUP1
00000300: SWAP2
00000301: SUB
00000302: SWAP1
00000303: RETURN
00000304: JUMPDEST
00000305: CALLVALUE
00000306: DUP1
00000307: ISZERO
00000308: PUSH2 0x0310
0000030b: JUMPI
0000030c: PUSH1 0x00
0000030e: DUP1
0000030f: REVERT
00000310: JUMPDEST
00000311: POP
00000312: PUSH2 0x0324
00000315: PUSH2 0x031f
00000318: CALLDATASIZE
00000319: PUSH1 0x04
0000031b: PUSH2 0x2ec7
0000031e: JUMP
0000031f: JUMPDEST
00000320: PUSH2 0x0b37
00000323: JUMP
00000324: JUMPDEST
00000325: PUSH1 0x40
00000327: MLOAD
00000328: SWAP1
00000329: ISZERO
0000032a: ISZERO
0000032b: DUP2
0000032c: MSTORE
0000032d: PUSH1 0x20
0000032f: ADD
00000330: PUSH2 0x02fb
00000333: JUMP
00000334: JUMPDEST
00000335: CALLVALUE
00000336: DUP1
00000337: ISZERO
00000338: PUSH2 0x0340
0000033b: JUMPI
0000033c: PUSH1 0x00
0000033e: DUP1
0000033f: REVERT
00000340: JUMPDEST
00000341: POP
00000342: PUSH1 0x0c
00000344: SLOAD
00000345: PUSH2 0xffff
00000348: AND
00000349: JUMPDEST
0000034a: PUSH1 0x40
0000034c: MLOAD
0000034d: SWAP1
0000034e: DUP2
0000034f: MSTORE
00000350: PUSH1 0x20
00000352: ADD
00000353: PUSH2 0x02fb
00000356: JUMP
00000357: JUMPDEST
00000358: CALLVALUE
00000359: DUP1
0000035a: ISZERO
0000035b: PUSH2 0x0363
0000035e: JUMPI
0000035f: PUSH1 0x00
00000361: DUP1
00000362: REVERT
00000363: JUMPDEST
00000364: POP
00000365: PUSH1 0x03
00000367: SLOAD
00000368: PUSH2 0x0349
0000036b: JUMP
0000036c: JUMPDEST
0000036d: CALLVALUE
0000036e: DUP1
0000036f: ISZERO
00000370: PUSH2 0x0378
00000373: JUMPI
00000374: PUSH1 0x00
00000376: DUP1
00000377: REVERT
00000378: JUMPDEST
00000379: POP
0000037a: PUSH2 0x0324
0000037d: PUSH2 0x0387
00000380: CALLDATASIZE
00000381: PUSH1 0x04
00000383: PUSH2 0x2ef1
00000386: JUMP
00000387: JUMPDEST
00000388: PUSH2 0x0b51
0000038b: JUMP
0000038c: JUMPDEST
0000038d: CALLVALUE
0000038e: DUP1
0000038f: ISZERO
00000390: PUSH2 0x0398
00000393: JUMPI
00000394: PUSH1 0x00
00000396: DUP1
00000397: REVERT
00000398: JUMPDEST
00000399: POP
0000039a: PUSH1 0x0c
0000039c: SLOAD
0000039d: PUSH1 0x0d
0000039f: SLOAD
000003a0: PUSH2 0x03da
000003a3: SWAP2
000003a4: PUSH2 0xffff
000003a7: DUP2
000003a8: AND
000003a9: SWAP2
000003aa: PUSH1 0x01
000003ac: PUSH1 0x01
000003ae: PUSH1 0x68
000003b0: SHL
000003b1: SUB
000003b2: PUSH3 0x010000
000003b6: DUP4
000003b7: DIV
000003b8: DUP2
000003b9: AND
000003ba: SWAP3
000003bb: PUSH1 0x01
000003bd: PUSH1 0x78
000003bf: SHL
000003c0: SWAP1
000003c1: DIV
000003c2: AND
000003c3: SWAP1
000003c4: PUSH1 0x01
000003c6: PUSH1 0x01
000003c8: PUSH1 0x80
000003ca: SHL
000003cb: SUB
000003cc: DUP1
000003cd: DUP3
000003ce: AND
000003cf: SWAP2
000003d0: PUSH1 0x01
000003d2: PUSH1 0x80
000003d4: SHL
000003d5: SWAP1
000003d6: DIV
000003d7: AND
000003d8: DUP6
000003d9: JUMP
000003da: JUMPDEST
000003db: PUSH1 0x40
000003dd: DUP1
000003de: MLOAD
000003df: PUSH2 0xffff
000003e2: SWAP1
000003e3: SWAP7
000003e4: AND
000003e5: DUP7
000003e6: MSTORE
000003e7: PUSH1 0x01
000003e9: PUSH1 0x01
000003eb: PUSH1 0x68
000003ed: SHL
000003ee: SUB
000003ef: SWAP5
000003f0: DUP6
000003f1: AND
000003f2: PUSH1 0x20
000003f4: DUP8
000003f5: ADD
000003f6: MSTORE
000003f7: SWAP4
000003f8: SWAP1
000003f9: SWAP3
000003fa: AND
000003fb: SWAP3
000003fc: DUP5
000003fd: ADD
000003fe: SWAP3
000003ff: SWAP1
00000400: SWAP3
00000401: MSTORE
00000402: PUSH1 0x01
00000404: PUSH1 0x01
00000406: PUSH1 0x80
00000408: SHL
00000409: SUB
0000040a: SWAP2
0000040b: DUP3
0000040c: AND
0000040d: PUSH1 0x60
0000040f: DUP5
00000410: ADD
00000411: MSTORE
00000412: AND
00000413: PUSH1 0x80
00000415: DUP3
00000416: ADD
00000417: MSTORE
00000418: PUSH1 0xa0
0000041a: ADD
0000041b: PUSH2 0x02fb
0000041e: JUMP
0000041f: JUMPDEST
00000420: CALLVALUE
00000421: DUP1
00000422: ISZERO
00000423: PUSH2 0x042b
00000426: JUMPI
00000427: PUSH1 0x00
00000429: DUP1
0000042a: REVERT
0000042b: JUMPDEST
0000042c: POP
0000042d: PUSH2 0x043f
00000430: PUSH2 0x043a
00000433: CALLDATASIZE
00000434: PUSH1 0x04
00000436: PUSH2 0x2f2d
00000439: JUMP
0000043a: JUMPDEST
0000043b: PUSH2 0x0b77
0000043e: JUMP
0000043f: JUMPDEST
00000440: STOP
00000441: JUMPDEST
00000442: CALLVALUE
00000443: DUP1
00000444: ISZERO
00000445: PUSH2 0x044d
00000448: JUMPI
00000449: PUSH1 0x00
0000044b: DUP1
0000044c: REVERT
0000044d: JUMPDEST
0000044e: POP
0000044f: PUSH2 0x0349
00000452: PUSH1 0x11
00000454: SLOAD
00000455: DUP2
00000456: JUMP
00000457: JUMPDEST
00000458: CALLVALUE
00000459: DUP1
0000045a: ISZERO
0000045b: PUSH2 0x0463
0000045e: JUMPI
0000045f: PUSH1 0x00
00000461: DUP1
00000462: REVERT
00000463: JUMPDEST
00000464: POP
00000465: PUSH1 0x0a
00000467: SLOAD
00000468: PUSH1 0x40
0000046a: MLOAD
0000046b: PUSH1 0xff
0000046d: SWAP1
0000046e: SWAP2
0000046f: AND
00000470: DUP2
00000471: MSTORE
00000472: PUSH1 0x20
00000474: ADD
00000475: PUSH2 0x02fb
00000478: JUMP
00000479: JUMPDEST
0000047a: CALLVALUE
0000047b: DUP1
0000047c: ISZERO
0000047d: PUSH2 0x0485
00000480: JUMPI
00000481: PUSH1 0x00
00000483: DUP1
00000484: REVERT
00000485: JUMPDEST
00000486: POP
00000487: PUSH2 0x043f
0000048a: PUSH2 0x0494
0000048d: CALLDATASIZE
0000048e: PUSH1 0x04
00000490: PUSH2 0x2ff7
00000493: JUMP
00000494: JUMPDEST
00000495: PUSH2 0x0d0a
00000498: JUMP
00000499: JUMPDEST
0000049a: CALLVALUE
0000049b: DUP1
0000049c: ISZERO
0000049d: PUSH2 0x04a5
000004a0: JUMPI
000004a1: PUSH1 0x00
000004a3: DUP1
000004a4: REVERT
000004a5: JUMPDEST
000004a6: POP
000004a7: PUSH1 0x0b
000004a9: SLOAD
000004aa: PUSH1 0x01
000004ac: PUSH1 0x01
000004ae: PUSH1 0x68
000004b0: SHL
000004b1: SUB
000004b2: AND
000004b3: PUSH2 0x0349
000004b6: JUMP
000004b7: JUMPDEST
000004b8: CALLVALUE
000004b9: DUP1
000004ba: ISZERO
000004bb: PUSH2 0x04c3
000004be: JUMPI
000004bf: PUSH1 0x00
000004c1: DUP1
000004c2: REVERT
000004c3: JUMPDEST
000004c4: POP
000004c5: PUSH2 0x043f
000004c8: PUSH2 0x04d2
000004cb: CALLDATASIZE
000004cc: PUSH1 0x04
000004ce: PUSH2 0x303e
000004d1: JUMP
000004d2: JUMPDEST
000004d3: PUSH2 0x0dfc
000004d6: JUMP
000004d7: JUMPDEST
000004d8: CALLVALUE
000004d9: DUP1
000004da: ISZERO
000004db: PUSH2 0x04e3
000004de: JUMPI
000004df: PUSH1 0x00
000004e1: DUP1
000004e2: REVERT
000004e3: JUMPDEST
000004e4: POP
000004e5: PUSH2 0x043f
000004e8: PUSH2 0x04f2
000004eb: CALLDATASIZE
000004ec: PUSH1 0x04
000004ee: PUSH2 0x2f2d
000004f1: JUMP
000004f2: JUMPDEST
000004f3: PUSH2 0x0e99
000004f6: JUMP
000004f7: JUMPDEST
000004f8: CALLVALUE
000004f9: DUP1
000004fa: ISZERO
000004fb: PUSH2 0x0503
000004fe: JUMPI
000004ff: PUSH1 0x00
00000501: DUP1
00000502: REVERT
00000503: JUMPDEST
00000504: POP
00000505: PUSH2 0x0349
00000508: PUSH2 0x0512
0000050b: CALLDATASIZE
0000050c: PUSH1 0x04
0000050e: PUSH2 0x2f2d
00000511: JUMP
00000512: JUMPDEST
00000513: PUSH2 0x11ec
00000516: JUMP
00000517: JUMPDEST
00000518: CALLVALUE
00000519: DUP1
0000051a: ISZERO
0000051b: PUSH2 0x0523
0000051e: JUMPI
0000051f: PUSH1 0x00
00000521: DUP1
00000522: REVERT
00000523: JUMPDEST
00000524: POP
00000525: PUSH2 0x0349
00000528: PUSH2 0x0532
0000052b: CALLDATASIZE
0000052c: PUSH1 0x04
0000052e: PUSH2 0x306a
00000531: JUMP
00000532: JUMPDEST
00000533: PUSH2 0x12ba
00000536: JUMP
00000537: JUMPDEST
00000538: CALLVALUE
00000539: DUP1
0000053a: ISZERO
0000053b: PUSH2 0x0543
0000053e: JUMPI
0000053f: PUSH1 0x00
00000541: DUP1
00000542: REVERT
00000543: JUMPDEST
00000544: POP
00000545: PUSH1 0x0d
00000547: SLOAD
00000548: PUSH1 0x01
0000054a: PUSH1 0x01
0000054c: PUSH1 0x80
0000054e: SHL
0000054f: SUB
00000550: AND
00000551: PUSH2 0x0349
00000554: JUMP
00000555: JUMPDEST
00000556: CALLVALUE
00000557: DUP1
00000558: ISZERO
00000559: PUSH2 0x0561
0000055c: JUMPI
0000055d: PUSH1 0x00
0000055f: DUP1
00000560: REVERT
00000561: JUMPDEST
00000562: POP
00000563: PUSH2 0x043f
00000566: PUSH2 0x0570
00000569: CALLDATASIZE
0000056a: PUSH1 0x04
0000056c: PUSH2 0x2f2d
0000056f: JUMP
00000570: JUMPDEST
00000571: PUSH2 0x12ff
00000574: JUMP
00000575: JUMPDEST
00000576: CALLVALUE
00000577: DUP1
00000578: ISZERO
00000579: PUSH2 0x0581
0000057c: JUMPI
0000057d: PUSH1 0x00
0000057f: DUP1
00000580: REVERT
00000581: JUMPDEST
00000582: POP
00000583: PUSH2 0x0349
00000586: PUSH1 0x0f
00000588: SLOAD
00000589: DUP2
0000058a: JUMP
0000058b: JUMPDEST
0000058c: CALLVALUE
0000058d: DUP1
0000058e: ISZERO
0000058f: PUSH2 0x0597
00000592: JUMPI
00000593: PUSH1 0x00
00000595: DUP1
00000596: REVERT
00000597: JUMPDEST
00000598: POP
00000599: PUSH2 0x0349
0000059c: PUSH1 0x0e
0000059e: SLOAD
0000059f: DUP2
000005a0: JUMP
000005a1: JUMPDEST
000005a2: CALLVALUE
000005a3: DUP1
000005a4: ISZERO
000005a5: PUSH2 0x05ad
000005a8: JUMPI
000005a9: PUSH1 0x00
000005ab: DUP1
000005ac: REVERT
000005ad: JUMPDEST
000005ae: POP
000005af: PUSH2 0x043f
000005b2: PUSH2 0x05bc
000005b5: CALLDATASIZE
000005b6: PUSH1 0x04
000005b8: PUSH2 0x3093
000005bb: JUMP
000005bc: JUMPDEST
000005bd: PUSH2 0x13b8
000005c0: JUMP
000005c1: JUMPDEST
000005c2: CALLVALUE
000005c3: DUP1
000005c4: ISZERO
000005c5: PUSH2 0x05cd
000005c8: JUMPI
000005c9: PUSH1 0x00
000005cb: DUP1
000005cc: REVERT
000005cd: JUMPDEST
000005ce: POP
000005cf: PUSH2 0x0614
000005d2: PUSH2 0x05dc
000005d5: CALLDATASIZE
000005d6: PUSH1 0x04
000005d8: PUSH2 0x306a
000005db: JUMP
000005dc: JUMPDEST
000005dd: PUSH1 0x07
000005df: PUSH1 0x20
000005e1: MSTORE
000005e2: PUSH1 0x00
000005e4: SWAP1
000005e5: DUP2
000005e6: MSTORE
000005e7: PUSH1 0x40
000005e9: SWAP1
000005ea: KECCAK256
000005eb: SLOAD
000005ec: PUSH2 0xffff
000005ef: DUP2
000005f0: AND
000005f1: SWAP1
000005f2: PUSH3 0x010000
000005f6: DUP2
000005f7: DIV
000005f8: PUSH1 0x01
000005fa: PUSH1 0x01
000005fc: PUSH1 0x68
000005fe: SHL
000005ff: SUB
00000600: AND
00000601: SWAP1
00000602: PUSH1 0x01
00000604: PUSH1 0x78
00000606: SHL
00000607: SWAP1
00000608: DIV
00000609: PUSH1 0x01
0000060b: PUSH1 0x01
0000060d: PUSH1 0x80
0000060f: SHL
00000610: SUB
00000611: AND
00000612: DUP4
00000613: JUMP
00000614: JUMPDEST
00000615: PUSH1 0x40
00000617: DUP1
00000618: MLOAD
00000619: PUSH2 0xffff
0000061c: SWAP1
0000061d: SWAP5
0000061e: AND
0000061f: DUP5
00000620: MSTORE
00000621: PUSH1 0x01
00000623: PUSH1 0x01
00000625: PUSH1 0x68
00000627: SHL
00000628: SUB
00000629: SWAP1
0000062a: SWAP3
0000062b: AND
0000062c: PUSH1 0x20
0000062e: DUP5
0000062f: ADD
00000630: MSTORE
00000631: PUSH1 0x01
00000633: PUSH1 0x01
00000635: PUSH1 0x80
00000637: SHL
00000638: SUB
00000639: AND
0000063a: SWAP1
0000063b: DUP3
0000063c: ADD
0000063d: MSTORE
0000063e: PUSH1 0x60
00000640: ADD
00000641: PUSH2 0x02fb
00000644: JUMP
00000645: JUMPDEST
00000646: CALLVALUE
00000647: DUP1
00000648: ISZERO
00000649: PUSH2 0x0651
0000064c: JUMPI
0000064d: PUSH1 0x00
0000064f: DUP1
00000650: REVERT
00000651: JUMPDEST
00000652: POP
00000653: PUSH2 0x043f
00000656: PUSH2 0x13de
00000659: JUMP
0000065a: JUMPDEST
0000065b: CALLVALUE
0000065c: DUP1
0000065d: ISZERO
0000065e: PUSH2 0x0666
00000661: JUMPI
00000662: PUSH1 0x00
00000664: DUP1
00000665: REVERT
00000666: JUMPDEST
00000667: POP
00000668: PUSH2 0x0349
0000066b: PUSH2 0x0675
0000066e: CALLDATASIZE
0000066f: PUSH1 0x04
00000671: PUSH2 0x306a
00000674: JUMP
00000675: JUMPDEST
00000676: PUSH1 0x01
00000678: PUSH1 0x01
0000067a: PUSH1 0xa0
0000067c: SHL
0000067d: SUB
0000067e: AND
0000067f: PUSH1 0x00
00000681: SWAP1
00000682: DUP2
00000683: MSTORE
00000684: PUSH1 0x01
00000686: PUSH1 0x20
00000688: MSTORE
00000689: PUSH1 0x40
0000068b: SWAP1
0000068c: KECCAK256
0000068d: SLOAD
0000068e: SWAP1
0000068f: JUMP
00000690: JUMPDEST
00000691: CALLVALUE
00000692: DUP1
00000693: ISZERO
00000694: PUSH2 0x069c
00000697: JUMPI
00000698: PUSH1 0x00
0000069a: DUP1
0000069b: REVERT
0000069c: JUMPDEST
0000069d: POP
0000069e: PUSH2 0x043f
000006a1: PUSH2 0x13fe
000006a4: JUMP
000006a5: JUMPDEST
000006a6: CALLVALUE
000006a7: DUP1
000006a8: ISZERO
000006a9: PUSH2 0x06b1
000006ac: JUMPI
000006ad: PUSH1 0x00
000006af: DUP1
000006b0: REVERT
000006b1: JUMPDEST
000006b2: POP
000006b3: PUSH2 0x06e7
000006b6: PUSH2 0x06c0
000006b9: CALLDATASIZE
000006ba: PUSH1 0x04
000006bc: PUSH2 0x306a
000006bf: JUMP
000006c0: JUMPDEST
000006c1: PUSH1 0x09
000006c3: PUSH1 0x20
000006c5: MSTORE
000006c6: PUSH1 0x00
000006c8: SWAP1
000006c9: DUP2
000006ca: MSTORE
000006cb: PUSH1 0x40
000006cd: SWAP1
000006ce: KECCAK256
000006cf: SLOAD
000006d0: PUSH2 0xffff
000006d3: DUP2
000006d4: AND
000006d5: SWAP1
000006d6: PUSH3 0x010000
000006da: SWAP1
000006db: DIV
000006dc: PUSH1 0x01
000006de: PUSH1 0x01
000006e0: PUSH1 0x80
000006e2: SHL
000006e3: SUB
000006e4: AND
000006e5: DUP3
000006e6: JUMP
000006e7: JUMPDEST
000006e8: PUSH1 0x40
000006ea: DUP1
000006eb: MLOAD
000006ec: PUSH2 0xffff
000006ef: SWAP1
000006f0: SWAP4
000006f1: AND
000006f2: DUP4
000006f3: MSTORE
000006f4: PUSH1 0x01
000006f6: PUSH1 0x01
000006f8: PUSH1 0x80
000006fa: SHL
000006fb: SUB
000006fc: SWAP1
000006fd: SWAP2
000006fe: AND
000006ff: PUSH1 0x20
00000701: DUP4
00000702: ADD
00000703: MSTORE
00000704: ADD
00000705: PUSH2 0x02fb
00000708: JUMP
00000709: JUMPDEST
0000070a: CALLVALUE
0000070b: DUP1
0000070c: ISZERO
0000070d: PUSH2 0x0715
00000710: JUMPI
00000711: PUSH1 0x00
00000713: DUP1
00000714: REVERT
00000715: JUMPDEST
00000716: POP
00000717: PUSH2 0x043f
0000071a: PUSH2 0x0724
0000071d: CALLDATASIZE
0000071e: PUSH1 0x04
00000720: PUSH2 0x2f2d
00000723: JUMP
00000724: JUMPDEST
00000725: PUSH2 0x1410
00000728: JUMP
00000729: JUMPDEST
0000072a: CALLVALUE
0000072b: DUP1
0000072c: ISZERO
0000072d: PUSH2 0x0735
00000730: JUMPI
00000731: PUSH1 0x00
00000733: DUP1
00000734: REVERT
00000735: JUMPDEST
00000736: POP
00000737: PUSH2 0x043f
0000073a: PUSH2 0x0744
0000073d: CALLDATASIZE
0000073e: PUSH1 0x04
00000740: PUSH2 0x2f2d
00000743: JUMP
00000744: JUMPDEST
00000745: PUSH2 0x141d
00000748: JUMP
00000749: JUMPDEST
0000074a: CALLVALUE
0000074b: DUP1
0000074c: ISZERO
0000074d: PUSH2 0x0755
00000750: JUMPI
00000751: PUSH1 0x00
00000753: DUP1
00000754: REVERT
00000755: JUMPDEST
00000756: POP
00000757: PUSH2 0x0349
0000075a: PUSH2 0x0764
0000075d: CALLDATASIZE
0000075e: PUSH1 0x04
00000760: PUSH2 0x2f2d
00000763: JUMP
00000764: JUMPDEST
00000765: PUSH1 0x08
00000767: PUSH1 0x20
00000769: MSTORE
0000076a: PUSH1 0x00
0000076c: SWAP1
0000076d: DUP2
0000076e: MSTORE
0000076f: PUSH1 0x40
00000771: SWAP1
00000772: KECCAK256
00000773: SLOAD
00000774: DUP2
00000775: JUMP
00000776: JUMPDEST
00000777: CALLVALUE
00000778: DUP1
00000779: ISZERO
0000077a: PUSH2 0x0782
0000077d: JUMPI
0000077e: PUSH1 0x00
00000780: DUP1
00000781: REVERT
00000782: JUMPDEST
00000783: POP
00000784: PUSH1 0x06
00000786: SLOAD
00000787: PUSH1 0x01
00000789: PUSH1 0x01
0000078b: PUSH1 0xa0
0000078d: SHL
0000078e: SUB
0000078f: AND
00000790: JUMPDEST
00000791: PUSH1 0x40
00000793: MLOAD
00000794: PUSH1 0x01
00000796: PUSH1 0x01
00000798: PUSH1 0xa0
0000079a: SHL
0000079b: SUB
0000079c: SWAP1
0000079d: SWAP2
0000079e: AND
0000079f: DUP2
000007a0: MSTORE
000007a1: PUSH1 0x20
000007a3: ADD
000007a4: PUSH2 0x02fb
000007a7: JUMP
000007a8: JUMPDEST
000007a9: CALLVALUE
000007aa: DUP1
000007ab: ISZERO
000007ac: PUSH2 0x07b4
000007af: JUMPI
000007b0: PUSH1 0x00
000007b2: DUP1
000007b3: REVERT
000007b4: JUMPDEST
000007b5: POP
000007b6: PUSH2 0x02ee
000007b9: PUSH2 0x1626
000007bc: JUMP
000007bd: JUMPDEST
000007be: CALLVALUE
000007bf: DUP1
000007c0: ISZERO
000007c1: PUSH2 0x07c9
000007c4: JUMPI
000007c5: PUSH1 0x00
000007c7: DUP1
000007c8: REVERT
000007c9: JUMPDEST
000007ca: POP
000007cb: PUSH2 0x0349
000007ce: PUSH2 0x1635
000007d1: JUMP
000007d2: JUMPDEST
000007d3: CALLVALUE
000007d4: DUP1
000007d5: ISZERO
000007d6: PUSH2 0x07de
000007d9: JUMPI
000007da: PUSH1 0x00
000007dc: DUP1
000007dd: REVERT
000007de: JUMPDEST
000007df: POP
000007e0: PUSH1 0x0a
000007e2: SLOAD
000007e3: PUSH1 0x0b
000007e5: SLOAD
000007e6: PUSH2 0x081a
000007e9: SWAP2
000007ea: PUSH1 0xff
000007ec: DUP2
000007ed: AND
000007ee: SWAP2
000007ef: PUSH2 0x0100
000007f2: DUP3
000007f3: DIV
000007f4: PUSH1 0x01
000007f6: PUSH1 0x01
000007f8: PUSH1 0xa0
000007fa: SHL
000007fb: SUB
000007fc: AND
000007fd: SWAP2
000007fe: PUSH1 0x01
00000800: PUSH1 0xa8
00000802: SHL
00000803: SWAP1
00000804: DIV
00000805: PUSH7 0xffffffffffffff
0000080d: AND
0000080e: SWAP1
0000080f: PUSH1 0x01
00000811: PUSH1 0x01
00000813: PUSH1 0x68
00000815: SHL
00000816: SUB
00000817: AND
00000818: DUP5
00000819: JUMP
0000081a: JUMPDEST
0000081b: PUSH1 0x40
0000081d: DUP1
0000081e: MLOAD
0000081f: PUSH1 0xff
00000821: SWAP1
00000822: SWAP6
00000823: AND
00000824: DUP6
00000825: MSTORE
00000826: PUSH1 0x01
00000828: PUSH1 0x01
0000082a: PUSH1 0xa0
0000082c: SHL
0000082d: SUB
0000082e: SWAP1
0000082f: SWAP4
00000830: AND
00000831: PUSH1 0x20
00000833: DUP6
00000834: ADD
00000835: MSTORE
00000836: PUSH7 0xffffffffffffff
0000083e: SWAP1
0000083f: SWAP2
00000840: AND
00000841: SWAP2
00000842: DUP4
00000843: ADD
00000844: SWAP2
00000845: SWAP1
00000846: SWAP2
00000847: MSTORE
00000848: PUSH1 0x01
0000084a: PUSH1 0x01
0000084c: PUSH1 0x68
0000084e: SHL
0000084f: SUB
00000850: AND
00000851: PUSH1 0x60
00000853: DUP3
00000854: ADD
00000855: MSTORE
00000856: PUSH1 0x80
00000858: ADD
00000859: PUSH2 0x02fb
0000085c: JUMP
0000085d: JUMPDEST
0000085e: CALLVALUE
0000085f: DUP1
00000860: ISZERO
00000861: PUSH2 0x0869
00000864: JUMPI
00000865: PUSH1 0x00
00000867: DUP1
00000868: REVERT
00000869: JUMPDEST
0000086a: POP
0000086b: PUSH2 0x0324
0000086e: PUSH2 0x0878
00000871: CALLDATASIZE
00000872: PUSH1 0x04
00000874: PUSH2 0x2ec7
00000877: JUMP
00000878: JUMPDEST
00000879: PUSH2 0x166a
0000087c: JUMP
0000087d: JUMPDEST
0000087e: CALLVALUE
0000087f: DUP1
00000880: ISZERO
00000881: PUSH2 0x0889
00000884: JUMPI
00000885: PUSH1 0x00
00000887: DUP1
00000888: REVERT
00000889: JUMPDEST
0000088a: POP
0000088b: PUSH1 0x10
0000088d: SLOAD
0000088e: PUSH2 0x0790
00000891: SWAP1
00000892: PUSH1 0x01
00000894: PUSH1 0x01
00000896: PUSH1 0xa0
00000898: SHL
00000899: SUB
0000089a: AND
0000089b: DUP2
0000089c: JUMP
0000089d: JUMPDEST
0000089e: CALLVALUE
0000089f: DUP1
000008a0: ISZERO
000008a1: PUSH2 0x08a9
000008a4: JUMPI
000008a5: PUSH1 0x00
000008a7: DUP1
000008a8: REVERT
000008a9: JUMPDEST
000008aa: POP
000008ab: PUSH2 0x0790
000008ae: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
000008cf: DUP2
000008d0: JUMP
000008d1: JUMPDEST
000008d2: CALLVALUE
000008d3: DUP1
000008d4: ISZERO
000008d5: PUSH2 0x08dd
000008d8: JUMPI
000008d9: PUSH1 0x00
000008db: DUP1
000008dc: REVERT
000008dd: JUMPDEST
000008de: POP
000008df: PUSH2 0x0349
000008e2: PUSH2 0x1678
000008e5: JUMP
000008e6: JUMPDEST
000008e7: CALLVALUE
000008e8: DUP1
000008e9: ISZERO
000008ea: PUSH2 0x08f2
000008ed: JUMPI
000008ee: PUSH1 0x00
000008f0: DUP1
000008f1: REVERT
000008f2: JUMPDEST
000008f3: POP
000008f4: PUSH2 0x043f
000008f7: PUSH2 0x0901
000008fa: CALLDATASIZE
000008fb: PUSH1 0x04
000008fd: PUSH2 0x2f2d
00000900: JUMP
00000901: JUMPDEST
00000902: PUSH2 0x1706
00000905: JUMP
00000906: JUMPDEST
00000907: CALLVALUE
00000908: DUP1
00000909: ISZERO
0000090a: PUSH2 0x0912
0000090d: JUMPI
0000090e: PUSH1 0x00
00000910: DUP1
00000911: REVERT
00000912: JUMPDEST
00000913: POP
00000914: PUSH2 0x0324
00000917: PUSH2 0x0921
0000091a: CALLDATASIZE
0000091b: PUSH1 0x04
0000091d: PUSH2 0x30b0
00000920: JUMP
00000921: JUMPDEST
00000922: PUSH2 0x1788
00000925: JUMP
00000926: JUMPDEST
00000927: CALLVALUE
00000928: DUP1
00000929: ISZERO
0000092a: PUSH2 0x0932
0000092d: JUMPI
0000092e: PUSH1 0x00
00000930: DUP1
00000931: REVERT
00000932: JUMPDEST
00000933: POP
00000934: PUSH2 0x0349
00000937: PUSH2 0x0941
0000093a: CALLDATASIZE
0000093b: PUSH1 0x04
0000093d: PUSH2 0x306a
00000940: JUMP
00000941: JUMPDEST
00000942: PUSH2 0x17e6
00000945: JUMP
00000946: JUMPDEST
00000947: CALLVALUE
00000948: DUP1
00000949: ISZERO
0000094a: PUSH2 0x0952
0000094d: JUMPI
0000094e: PUSH1 0x00
00000950: DUP1
00000951: REVERT
00000952: JUMPDEST
00000953: POP
00000954: PUSH2 0x043f
00000957: PUSH2 0x0961
0000095a: CALLDATASIZE
0000095b: PUSH1 0x04
0000095d: PUSH2 0x306a
00000960: JUMP
00000961: JUMPDEST
00000962: PUSH2 0x1803
00000965: JUMP
00000966: JUMPDEST
00000967: CALLVALUE
00000968: DUP1
00000969: ISZERO
0000096a: PUSH2 0x0972
0000096d: JUMPI
0000096e: PUSH1 0x00
00000970: DUP1
00000971: REVERT
00000972: JUMPDEST
00000973: POP
00000974: PUSH2 0x043f
00000977: PUSH2 0x0981
0000097a: CALLDATASIZE
0000097b: PUSH1 0x04
0000097d: PUSH2 0x2f2d
00000980: JUMP
00000981: JUMPDEST
00000982: PUSH2 0x1870
00000985: JUMP
00000986: JUMPDEST
00000987: CALLVALUE
00000988: DUP1
00000989: ISZERO
0000098a: PUSH2 0x0992
0000098d: JUMPI
0000098e: PUSH1 0x00
00000990: DUP1
00000991: REVERT
00000992: JUMPDEST
00000993: POP
00000994: PUSH1 0x10
00000996: SLOAD
00000997: PUSH2 0x0324
0000099a: SWAP1
0000099b: PUSH1 0x01
0000099d: PUSH1 0xa0
0000099f: SHL
000009a0: SWAP1
000009a1: DIV
000009a2: PUSH1 0xff
000009a4: AND
000009a5: DUP2
000009a6: JUMP
000009a7: JUMPDEST
000009a8: CALLVALUE
000009a9: DUP1
000009aa: ISZERO
000009ab: PUSH2 0x09b3
000009ae: JUMPI
000009af: PUSH1 0x00
000009b1: DUP1
000009b2: REVERT
000009b3: JUMPDEST
000009b4: POP
000009b5: PUSH2 0x0349
000009b8: PUSH2 0x09c2
000009bb: CALLDATASIZE
000009bc: PUSH1 0x04
000009be: PUSH2 0x30e8
000009c1: JUMP
000009c2: JUMPDEST
000009c3: PUSH1 0x01
000009c5: PUSH1 0x01
000009c7: PUSH1 0xa0
000009c9: SHL
000009ca: SUB
000009cb: SWAP2
000009cc: DUP3
000009cd: AND
000009ce: PUSH1 0x00
000009d0: SWAP1
000009d1: DUP2
000009d2: MSTORE
000009d3: PUSH1 0x02
000009d5: PUSH1 0x20
000009d7: SWAP1
000009d8: DUP2
000009d9: MSTORE
000009da: PUSH1 0x40
000009dc: DUP1
000009dd: DUP4
000009de: KECCAK256
000009df: SWAP4
000009e0: SWAP1
000009e1: SWAP5
000009e2: AND
000009e3: DUP3
000009e4: MSTORE
000009e5: SWAP2
000009e6: SWAP1
000009e7: SWAP2
000009e8: MSTORE
000009e9: KECCAK256
000009ea: SLOAD
000009eb: SWAP1
000009ec: JUMP
000009ed: JUMPDEST
000009ee: PUSH2 0x043f
000009f1: PUSH2 0x09fb
000009f4: CALLDATASIZE
000009f5: PUSH1 0x04
000009f7: PUSH2 0x3112
000009fa: JUMP
000009fb: JUMPDEST
000009fc: PUSH2 0x18c0
000009ff: JUMP
00000a00: JUMPDEST
00000a01: CALLVALUE
00000a02: DUP1
00000a03: ISZERO
00000a04: PUSH2 0x0a0c
00000a07: JUMPI
00000a08: PUSH1 0x00
00000a0a: DUP1
00000a0b: REVERT
00000a0c: JUMPDEST
00000a0d: POP
00000a0e: PUSH2 0x043f
00000a11: PUSH2 0x0a1b
00000a14: CALLDATASIZE
00000a15: PUSH1 0x04
00000a17: PUSH2 0x3147
00000a1a: JUMP
00000a1b: JUMPDEST
00000a1c: PUSH2 0x1a36
00000a1f: JUMP
00000a20: JUMPDEST
00000a21: CALLVALUE
00000a22: DUP1
00000a23: ISZERO
00000a24: PUSH2 0x0a2c
00000a27: JUMPI
00000a28: PUSH1 0x00
00000a2a: DUP1
00000a2b: REVERT
00000a2c: JUMPDEST
00000a2d: POP
00000a2e: PUSH2 0x043f
00000a31: PUSH2 0x0a3b
00000a34: CALLDATASIZE
00000a35: PUSH1 0x04
00000a37: PUSH2 0x306a
00000a3a: JUMP
00000a3b: JUMPDEST
00000a3c: PUSH2 0x1b52
00000a3f: JUMP
00000a40: JUMPDEST
00000a41: PUSH2 0x043f
00000a44: PUSH2 0x0a4e
00000a47: CALLDATASIZE
00000a48: PUSH1 0x04
00000a4a: PUSH2 0x306a
00000a4d: JUMP
00000a4e: JUMPDEST
00000a4f: PUSH2 0x1b8d
00000a52: JUMP
00000a53: JUMPDEST
00000a54: PUSH2 0x043f
00000a57: PUSH2 0x1c7d
00000a5a: JUMP
00000a5b: JUMPDEST
00000a5c: CALLVALUE
00000a5d: DUP1
00000a5e: ISZERO
00000a5f: PUSH2 0x0a67
00000a62: JUMPI
00000a63: PUSH1 0x00
00000a65: DUP1
00000a66: REVERT
00000a67: JUMPDEST
00000a68: POP
00000a69: PUSH2 0x0a7b
00000a6c: PUSH2 0x0a76
00000a6f: CALLDATASIZE
00000a70: PUSH1 0x04
00000a72: PUSH2 0x306a
00000a75: JUMP
00000a76: JUMPDEST
00000a77: PUSH2 0x1da9
00000a7a: JUMP
00000a7b: JUMPDEST
00000a7c: PUSH1 0x40
00000a7e: DUP1
00000a7f: MLOAD
00000a80: SWAP3
00000a81: DUP4
00000a82: MSTORE
00000a83: PUSH1 0x20
00000a85: DUP4
00000a86: ADD
00000a87: SWAP2
00000a88: SWAP1
00000a89: SWAP2
00000a8a: MSTORE
00000a8b: ADD
00000a8c: PUSH2 0x02fb
00000a8f: JUMP
00000a90: JUMPDEST
00000a91: CALLVALUE
00000a92: DUP1
00000a93: ISZERO
00000a94: PUSH2 0x0a9c
00000a97: JUMPI
00000a98: PUSH1 0x00
00000a9a: DUP1
00000a9b: REVERT
00000a9c: JUMPDEST
00000a9d: POP
00000a9e: PUSH2 0x043f
00000aa1: PUSH2 0x1e87
00000aa4: JUMP
00000aa5: JUMPDEST
00000aa6: PUSH1 0x60
00000aa8: PUSH1 0x04
00000aaa: DUP1
00000aab: SLOAD
00000aac: PUSH2 0x0ab4
00000aaf: SWAP1
00000ab0: PUSH2 0x31e8
00000ab3: JUMP
00000ab4: JUMPDEST
00000ab5: DUP1
00000ab6: PUSH1 0x1f
00000ab8: ADD
00000ab9: PUSH1 0x20
00000abb: DUP1
00000abc: SWAP2
00000abd: DIV
00000abe: MUL
00000abf: PUSH1 0x20
00000ac1: ADD
00000ac2: PUSH1 0x40
00000ac4: MLOAD
00000ac5: SWAP1
00000ac6: DUP2
00000ac7: ADD
00000ac8: PUSH1 0x40
00000aca: MSTORE
00000acb: DUP1
00000acc: SWAP3
00000acd: SWAP2
00000ace: SWAP1
00000acf: DUP2
00000ad0: DUP2
00000ad1: MSTORE
00000ad2: PUSH1 0x20
00000ad4: ADD
00000ad5: DUP3
00000ad6: DUP1
00000ad7: SLOAD
00000ad8: PUSH2 0x0ae0
00000adb: SWAP1
00000adc: PUSH2 0x31e8
00000adf: JUMP
00000ae0: JUMPDEST
00000ae1: DUP1
00000ae2: ISZERO
00000ae3: PUSH2 0x0b2d
00000ae6: JUMPI
00000ae7: DUP1
00000ae8: PUSH1 0x1f
00000aea: LT
00000aeb: PUSH2 0x0b02
00000aee: JUMPI
00000aef: PUSH2 0x0100
00000af2: DUP1
00000af3: DUP4
00000af4: SLOAD
00000af5: DIV
00000af6: MUL
00000af7: DUP4
00000af8: MSTORE
00000af9: SWAP2
00000afa: PUSH1 0x20
00000afc: ADD
00000afd: SWAP2
00000afe: PUSH2 0x0b2d
00000b01: JUMP
00000b02: JUMPDEST
00000b03: DUP3
00000b04: ADD
00000b05: SWAP2
00000b06: SWAP1
00000b07: PUSH1 0x00
00000b09: MSTORE
00000b0a: PUSH1 0x20
00000b0c: PUSH1 0x00
00000b0e: KECCAK256
00000b0f: SWAP1
00000b10: JUMPDEST
00000b11: DUP2
00000b12: SLOAD
00000b13: DUP2
00000b14: MSTORE
00000b15: SWAP1
00000b16: PUSH1 0x01
00000b18: ADD
00000b19: SWAP1
00000b1a: PUSH1 0x20
00000b1c: ADD
00000b1d: DUP1
00000b1e: DUP4
00000b1f: GT
00000b20: PUSH2 0x0b10
00000b23: JUMPI
00000b24: DUP3
00000b25: SWAP1
00000b26: SUB
00000b27: PUSH1 0x1f
00000b29: AND
00000b2a: DUP3
00000b2b: ADD
00000b2c: SWAP2
00000b2d: JUMPDEST
00000b2e: POP
00000b2f: POP
00000b30: POP
00000b31: POP
00000b32: POP
00000b33: SWAP1
00000b34: POP
00000b35: SWAP1
00000b36: JUMP
00000b37: JUMPDEST
00000b38: PUSH1 0x00
00000b3a: CALLER
00000b3b: PUSH2 0x0b45
00000b3e: DUP2
00000b3f: DUP6
00000b40: DUP6
00000b41: PUSH2 0x2066
00000b44: JUMP
00000b45: JUMPDEST
00000b46: PUSH1 0x01
00000b48: SWAP2
00000b49: POP
00000b4a: POP
00000b4b: JUMPDEST
00000b4c: SWAP3
00000b4d: SWAP2
00000b4e: POP
00000b4f: POP
00000b50: JUMP
00000b51: JUMPDEST
00000b52: PUSH1 0x00
00000b54: CALLER
00000b55: PUSH2 0x0b5f
00000b58: DUP6
00000b59: DUP3
00000b5a: DUP6
00000b5b: PUSH2 0x2078
00000b5e: JUMP
00000b5f: JUMPDEST
00000b60: PUSH2 0x0b6a
00000b63: DUP6
00000b64: DUP6
00000b65: DUP6
00000b66: PUSH2 0x20f6
00000b69: JUMP
00000b6a: JUMPDEST
00000b6b: PUSH1 0x01
00000b6d: SWAP2
00000b6e: POP
00000b6f: POP
00000b70: JUMPDEST
00000b71: SWAP4
00000b72: SWAP3
00000b73: POP
00000b74: POP
00000b75: POP
00000b76: JUMP
00000b77: JUMPDEST
00000b78: PUSH2 0x0b7f
00000b7b: PUSH2 0x2155
00000b7e: JUMP
00000b7f: JUMPDEST
00000b80: CALLER
00000b81: PUSH1 0x00
00000b83: SWAP1
00000b84: DUP2
00000b85: MSTORE
00000b86: PUSH1 0x07
00000b88: PUSH1 0x20
00000b8a: MSTORE
00000b8b: PUSH1 0x40
00000b8d: SWAP1
00000b8e: KECCAK256
00000b8f: PUSH1 0x0c
00000b91: SLOAD
00000b92: PUSH2 0xffff
00000b95: AND
00000b96: DUP3
00000b97: PUSH2 0x0bbb
00000b9a: JUMPI
00000b9b: PUSH1 0x40
00000b9d: MLOAD
00000b9e: PUSH3 0x461bcd
00000ba2: PUSH1 0xe5
00000ba4: SHL
00000ba5: DUP2
00000ba6: MSTORE
00000ba7: PUSH1 0x04
00000ba9: ADD
00000baa: PUSH2 0x0bb2
00000bad: SWAP1
00000bae: PUSH2 0x3222
00000bb1: JUMP
00000bb2: JUMPDEST
00000bb3: PUSH1 0x40
00000bb5: MLOAD
00000bb6: DUP1
00000bb7: SWAP2
00000bb8: SUB
00000bb9: SWAP1
00000bba: REVERT
00000bbb: JUMPDEST
00000bbc: DUP2
00000bbd: SLOAD
00000bbe: PUSH2 0xffff
00000bc1: AND
00000bc2: DUP2
00000bc3: EQ
00000bc4: PUSH2 0x0bff
00000bc7: JUMPI
00000bc8: PUSH1 0x40
00000bca: MLOAD
00000bcb: PUSH3 0x461bcd
00000bcf: PUSH1 0xe5
00000bd1: SHL
00000bd2: DUP2
00000bd3: MSTORE
00000bd4: PUSH1 0x20
00000bd6: PUSH1 0x04
00000bd8: DUP3
00000bd9: ADD
00000bda: MSTORE
00000bdb: PUSH1 0x0d
00000bdd: PUSH1 0x24
00000bdf: DUP3
00000be0: ADD
00000be1: MSTORE
00000be2: PUSH13 0x125b9d985b1a59081c9bdd5b99
00000bf0: PUSH1 0x9a
00000bf2: SHL
00000bf3: PUSH1 0x44
00000bf5: DUP3
00000bf6: ADD
00000bf7: MSTORE
00000bf8: PUSH1 0x64
00000bfa: ADD
00000bfb: PUSH2 0x0bb2
00000bfe: JUMP
00000bff: JUMPDEST
00000c00: DUP2
00000c01: SLOAD
00000c02: PUSH3 0x010000
00000c06: SWAP1
00000c07: DIV
00000c08: PUSH1 0x01
00000c0a: PUSH1 0x01
00000c0c: PUSH1 0x68
00000c0e: SHL
00000c0f: SUB
00000c10: AND
00000c11: DUP4
00000c12: DUP2
00000c13: LT
00000c14: ISZERO
00000c15: PUSH2 0x0c50
00000c18: JUMPI
00000c19: PUSH1 0x40
00000c1b: MLOAD
00000c1c: PUSH3 0x461bcd
00000c20: PUSH1 0xe5
00000c22: SHL
00000c23: DUP2
00000c24: MSTORE
00000c25: PUSH1 0x20
00000c27: PUSH1 0x04
00000c29: DUP3
00000c2a: ADD
00000c2b: MSTORE
00000c2c: PUSH1 0x0d
00000c2e: PUSH1 0x24
00000c30: DUP3
00000c31: ADD
00000c32: MSTORE
00000c33: PUSH13 0x115e18d9595908185b5bdd5b9d
00000c41: PUSH1 0x9a
00000c43: SHL
00000c44: PUSH1 0x44
00000c46: DUP3
00000c47: ADD
00000c48: MSTORE
00000c49: PUSH1 0x64
00000c4b: ADD
00000c4c: PUSH2 0x0bb2
00000c4f: JUMP
00000c50: JUMPDEST
00000c51: PUSH2 0x0c5a
00000c54: DUP5
00000c55: DUP3
00000c56: PUSH2 0x3259
00000c59: JUMP
00000c5a: JUMPDEST
00000c5b: DUP4
00000c5c: SLOAD
00000c5d: PUSH1 0x01
00000c5f: PUSH1 0x01
00000c61: PUSH1 0x68
00000c63: SHL
00000c64: SUB
00000c65: SWAP2
00000c66: SWAP1
00000c67: SWAP2
00000c68: AND
00000c69: PUSH3 0x010000
00000c6d: MUL
00000c6e: PUSH3 0x010000
00000c72: PUSH1 0x01
00000c74: PUSH1 0x78
00000c76: SHL
00000c77: SUB
00000c78: NOT
00000c79: SWAP1
00000c7a: SWAP2
00000c7b: AND
00000c7c: OR
00000c7d: DUP4
00000c7e: SSTORE
00000c7f: PUSH1 0x0d
00000c81: SLOAD
00000c82: PUSH2 0x0c95
00000c85: SWAP1
00000c86: DUP6
00000c87: SWAP1
00000c88: PUSH1 0x01
00000c8a: PUSH1 0x01
00000c8c: PUSH1 0x80
00000c8e: SHL
00000c8f: SUB
00000c90: AND
00000c91: PUSH2 0x3259
00000c94: JUMP
00000c95: JUMPDEST
00000c96: PUSH1 0x0d
00000c98: DUP1
00000c99: SLOAD
00000c9a: PUSH1 0x01
00000c9c: PUSH1 0x01
00000c9e: PUSH1 0x80
00000ca0: SHL
00000ca1: SUB
00000ca2: NOT
00000ca3: AND
00000ca4: PUSH1 0x01
00000ca6: PUSH1 0x01
00000ca8: PUSH1 0x80
00000caa: SHL
00000cab: SUB
00000cac: SWAP3
00000cad: SWAP1
00000cae: SWAP3
00000caf: AND
00000cb0: SWAP2
00000cb1: SWAP1
00000cb2: SWAP2
00000cb3: OR
00000cb4: SWAP1
00000cb5: SSTORE
00000cb6: PUSH1 0x40
00000cb8: DUP1
00000cb9: MLOAD
00000cba: DUP6
00000cbb: DUP2
00000cbc: MSTORE
00000cbd: PUSH1 0x20
00000cbf: DUP2
00000cc0: ADD
00000cc1: DUP5
00000cc2: SWAP1
00000cc3: MSTORE
00000cc4: CALLER
00000cc5: SWAP2
00000cc6: PUSH32 0xab2daf3c146ca6416cbccd2a86ed2ba995e171ef6319df14a38aef01403a9c96
00000ce7: SWAP2
00000ce8: ADD
00000ce9: PUSH1 0x40
00000ceb: MLOAD
00000cec: DUP1
00000ced: SWAP2
00000cee: SUB
00000cef: SWAP1
00000cf0: LOG2
00000cf1: PUSH2 0x0cfa
00000cf4: CALLER
00000cf5: DUP6
00000cf6: PUSH2 0x217f
00000cf9: JUMP
00000cfa: JUMPDEST
00000cfb: POP
00000cfc: POP
00000cfd: POP
00000cfe: PUSH2 0x0d07
00000d01: PUSH1 0x01
00000d03: PUSH1 0x00
00000d05: SSTORE
00000d06: JUMP
00000d07: JUMPDEST
00000d08: POP
00000d09: JUMP
00000d0a: JUMPDEST
00000d0b: PUSH2 0x0d12
00000d0e: PUSH2 0x2155
00000d11: JUMP
00000d12: JUMPDEST
00000d13: PUSH1 0x10
00000d15: SLOAD
00000d16: PUSH1 0x01
00000d18: PUSH1 0xa0
00000d1a: SHL
00000d1b: SWAP1
00000d1c: DIV
00000d1d: PUSH1 0xff
00000d1f: AND
00000d20: PUSH2 0x0da7
00000d23: JUMPI
00000d24: PUSH1 0x11
00000d26: SLOAD
00000d27: PUSH1 0x40
00000d29: MLOAD
00000d2a: PUSH1 0x01
00000d2c: PUSH1 0x01
00000d2e: PUSH1 0x60
00000d30: SHL
00000d31: SUB
00000d32: NOT
00000d33: CALLER
00000d34: PUSH1 0x60
00000d36: SHL
00000d37: AND
00000d38: PUSH1 0x20
00000d3a: DUP3
00000d3b: ADD
00000d3c: MSTORE
00000d3d: PUSH2 0x0d6b
00000d40: SWAP2
00000d41: SWAP1
00000d42: PUSH1 0x34
00000d44: ADD
00000d45: JUMPDEST
00000d46: PUSH1 0x40
00000d48: MLOAD
00000d49: PUSH1 0x20
00000d4b: DUP2
00000d4c: DUP4
00000d4d: SUB
00000d4e: SUB
00000d4f: DUP2
00000d50: MSTORE
00000d51: SWAP1
00000d52: PUSH1 0x40
00000d54: MSTORE
00000d55: DUP1
00000d56: MLOAD
00000d57: SWAP1
00000d58: PUSH1 0x20
00000d5a: ADD
00000d5b: KECCAK256
00000d5c: DUP4
00000d5d: PUSH2 0x22e5
00000d60: SWAP1
00000d61: SWAP3
00000d62: SWAP2
00000d63: SWAP1
00000d64: PUSH4 0xffffffff
00000d69: AND
00000d6a: JUMP
00000d6b: JUMPDEST
00000d6c: PUSH2 0x0da7
00000d6f: JUMPI
00000d70: PUSH1 0x40
00000d72: MLOAD
00000d73: PUSH3 0x461bcd
00000d77: PUSH1 0xe5
00000d79: SHL
00000d7a: DUP2
00000d7b: MSTORE
00000d7c: PUSH1 0x20
00000d7e: PUSH1 0x04
00000d80: DUP3
00000d81: ADD
00000d82: MSTORE
00000d83: PUSH1 0x0d
00000d85: PUSH1 0x24
00000d87: DUP3
00000d88: ADD
00000d89: MSTORE
00000d8a: PUSH13 0x24b73b30b634b210383937b7b3
00000d98: PUSH1 0x99
00000d9a: SHL
00000d9b: PUSH1 0x44
00000d9d: DUP3
00000d9e: ADD
00000d9f: MSTORE
00000da0: PUSH1 0x64
00000da2: ADD
00000da3: PUSH2 0x0bb2
00000da6: JUMP
00000da7: JUMPDEST
00000da8: PUSH1 0x00
00000daa: DUP3
00000dab: GT
00000dac: PUSH2 0x0dc7
00000daf: JUMPI
00000db0: PUSH1 0x40
00000db2: MLOAD
00000db3: PUSH3 0x461bcd
00000db7: PUSH1 0xe5
00000db9: SHL
00000dba: DUP2
00000dbb: MSTORE
00000dbc: PUSH1 0x04
00000dbe: ADD
00000dbf: PUSH2 0x0bb2
00000dc2: SWAP1
00000dc3: PUSH2 0x3222
00000dc6: JUMP
00000dc7: JUMPDEST
00000dc8: PUSH2 0x0dd1
00000dcb: DUP3
00000dcc: CALLER
00000dcd: PUSH2 0x2327
00000dd0: JUMP
00000dd1: JUMPDEST
00000dd2: PUSH1 0x0a
00000dd4: SLOAD
00000dd5: PUSH2 0x0dee
00000dd8: SWAP1
00000dd9: PUSH2 0x0100
00000ddc: SWAP1
00000ddd: DIV
00000dde: PUSH1 0x01
00000de0: PUSH1 0x01
00000de2: PUSH1 0xa0
00000de4: SHL
00000de5: SUB
00000de6: AND
00000de7: CALLER
00000de8: ADDRESS
00000de9: DUP6
00000dea: PUSH2 0x25b5
00000ded: JUMP
00000dee: JUMPDEST
00000def: PUSH2 0x0df8
00000df2: PUSH1 0x01
00000df4: PUSH1 0x00
00000df6: SSTORE
00000df7: JUMP
00000df8: JUMPDEST
00000df9: POP
00000dfa: POP
00000dfb: JUMP
00000dfc: JUMPDEST
00000dfd: PUSH2 0x0e04
00000e00: PUSH2 0x2155
00000e03: JUMP
00000e04: JUMPDEST
00000e05: PUSH1 0x10
00000e07: SLOAD
00000e08: PUSH1 0x01
00000e0a: PUSH1 0xa0
00000e0c: SHL
00000e0d: SWAP1
00000e0e: DIV
00000e0f: PUSH1 0xff
00000e11: AND
00000e12: PUSH2 0x0e2d
00000e15: JUMPI
00000e16: PUSH1 0x40
00000e18: MLOAD
00000e19: PUSH3 0x461bcd
00000e1d: PUSH1 0xe5
00000e1f: SHL
00000e20: DUP2
00000e21: MSTORE
00000e22: PUSH1 0x04
00000e24: ADD
00000e25: PUSH2 0x0bb2
00000e28: SWAP1
00000e29: PUSH2 0x326c
00000e2c: JUMP
00000e2d: JUMPDEST
00000e2e: PUSH1 0x00
00000e30: DUP3
00000e31: GT
00000e32: PUSH2 0x0e4d
00000e35: JUMPI
00000e36: PUSH1 0x40
00000e38: MLOAD
00000e39: PUSH3 0x461bcd
00000e3d: PUSH1 0xe5
00000e3f: SHL
00000e40: DUP2
00000e41: MSTORE
00000e42: PUSH1 0x04
00000e44: ADD
00000e45: PUSH2 0x0bb2
00000e48: SWAP1
00000e49: PUSH2 0x3222
00000e4c: JUMP
00000e4d: JUMPDEST
00000e4e: PUSH1 0x01
00000e50: PUSH1 0x01
00000e52: PUSH1 0xa0
00000e54: SHL
00000e55: SUB
00000e56: DUP2
00000e57: AND
00000e58: PUSH2 0x0e8f
00000e5b: JUMPI
00000e5c: PUSH1 0x40
00000e5e: MLOAD
00000e5f: PUSH3 0x461bcd
00000e63: PUSH1 0xe5
00000e65: SHL
00000e66: DUP2
00000e67: MSTORE
00000e68: PUSH1 0x20
00000e6a: PUSH1 0x04
00000e6c: DUP3
00000e6d: ADD
00000e6e: MSTORE
00000e6f: PUSH1 0x09
00000e71: PUSH1 0x24
00000e73: DUP3
00000e74: ADD
00000e75: MSTORE
00000e76: PUSH9 0x10b1b932b234ba37b9
00000e80: PUSH1 0xb9
00000e82: SHL
00000e83: PUSH1 0x44
00000e85: DUP3
00000e86: ADD
00000e87: MSTORE
00000e88: PUSH1 0x64
00000e8a: ADD
00000e8b: PUSH2 0x0bb2
00000e8e: JUMP
00000e8f: JUMPDEST
00000e90: PUSH2 0x0dd1
00000e93: DUP3
00000e94: DUP3
00000e95: PUSH2 0x2327
00000e98: JUMP
00000e99: JUMPDEST
00000e9a: PUSH1 0x10
00000e9c: SLOAD
00000e9d: PUSH1 0x01
00000e9f: PUSH1 0x01
00000ea1: PUSH1 0xa0
00000ea3: SHL
00000ea4: SUB
00000ea5: AND
00000ea6: CALLER
00000ea7: EQ
00000ea8: PUSH2 0x0edd
00000eab: JUMPI
00000eac: PUSH1 0x40
00000eae: MLOAD
00000eaf: PUSH3 0x461bcd
00000eb3: PUSH1 0xe5
00000eb5: SHL
00000eb6: DUP2
00000eb7: MSTORE
00000eb8: PUSH1 0x20
00000eba: PUSH1 0x04
00000ebc: DUP3
00000ebd: ADD
00000ebe: MSTORE
00000ebf: PUSH1 0x07
00000ec1: PUSH1 0x24
00000ec3: DUP3
00000ec4: ADD
00000ec5: MSTORE
00000ec6: PUSH7 0x10b5b2b2b832b9
00000ece: PUSH1 0xc9
00000ed0: SHL
00000ed1: PUSH1 0x44
00000ed3: DUP3
00000ed4: ADD
00000ed5: MSTORE
00000ed6: PUSH1 0x64
00000ed8: ADD
00000ed9: PUSH2 0x0bb2
00000edc: JUMP
00000edd: JUMPDEST
00000ede: PUSH2 0x0ee5
00000ee1: PUSH2 0x2155
00000ee4: JUMP
00000ee5: JUMPDEST
00000ee6: PUSH1 0x0a
00000ee8: SLOAD
00000ee9: PUSH1 0x01
00000eeb: PUSH1 0xa8
00000eed: SHL
00000eee: SWAP1
00000eef: DIV
00000ef0: PUSH7 0xffffffffffffff
00000ef8: AND
00000ef9: DUP2
00000efa: LT
00000efb: ISZERO
00000efc: PUSH2 0x0f3e
00000eff: JUMPI
00000f00: PUSH1 0x40
00000f02: MLOAD
00000f03: PUSH3 0x461bcd
00000f07: PUSH1 0xe5
00000f09: SHL
00000f0a: DUP2
00000f0b: MSTORE
00000f0c: PUSH1 0x20
00000f0e: PUSH1 0x04
00000f10: DUP3
00000f11: ADD
00000f12: MSTORE
00000f13: PUSH1 0x14
00000f15: PUSH1 0x24
00000f17: DUP3
00000f18: ADD
00000f19: MSTORE
00000f1a: PUSH20 0x496e73756666696369656e742062616c616e6365
00000f2f: PUSH1 0x60
00000f31: SHL
00000f32: PUSH1 0x44
00000f34: DUP3
00000f35: ADD
00000f36: MSTORE
00000f37: PUSH1 0x64
00000f39: ADD
00000f3a: PUSH2 0x0bb2
00000f3d: JUMP
00000f3e: JUMPDEST
00000f3f: PUSH1 0x40
00000f41: DUP1
00000f42: MLOAD
00000f43: PUSH1 0xa0
00000f45: DUP2
00000f46: ADD
00000f47: DUP3
00000f48: MSTORE
00000f49: PUSH1 0x0c
00000f4b: SLOAD
00000f4c: PUSH2 0xffff
00000f4f: DUP2
00000f50: AND
00000f51: DUP1
00000f52: DUP4
00000f53: MSTORE
00000f54: PUSH1 0x01
00000f56: PUSH1 0x01
00000f58: PUSH1 0x68
00000f5a: SHL
00000f5b: SUB
00000f5c: PUSH3 0x010000
00000f60: DUP4
00000f61: DIV
00000f62: DUP2
00000f63: AND
00000f64: PUSH1 0x20
00000f66: DUP6
00000f67: ADD
00000f68: MSTORE
00000f69: PUSH1 0x01
00000f6b: PUSH1 0x78
00000f6d: SHL
00000f6e: SWAP1
00000f6f: SWAP3
00000f70: DIV
00000f71: SWAP1
00000f72: SWAP2
00000f73: AND
00000f74: SWAP3
00000f75: DUP3
00000f76: ADD
00000f77: SWAP3
00000f78: SWAP1
00000f79: SWAP3
00000f7a: MSTORE
00000f7b: PUSH1 0x0d
00000f7d: SLOAD
00000f7e: PUSH1 0x01
00000f80: PUSH1 0x01
00000f82: PUSH1 0x80
00000f84: SHL
00000f85: SUB
00000f86: DUP1
00000f87: DUP3
00000f88: AND
00000f89: PUSH1 0x60
00000f8b: DUP5
00000f8c: ADD
00000f8d: MSTORE
00000f8e: PUSH1 0x01
00000f90: PUSH1 0x80
00000f92: SHL
00000f93: SWAP1
00000f94: SWAP2
00000f95: DIV
00000f96: AND
00000f97: PUSH1 0x80
00000f99: DUP3
00000f9a: ADD
00000f9b: DUP2
00000f9c: SWAP1
00000f9d: MSTORE
00000f9e: SWAP1
00000f9f: SWAP2
00000fa0: SWAP1
00000fa1: PUSH1 0x00
00000fa3: SWAP1
00000fa4: PUSH2 0x0fe3
00000fa7: SWAP1
00000fa8: PUSH2 0x0fb0
00000fab: PUSH1 0x03
00000fad: SLOAD
00000fae: SWAP1
00000faf: JUMP
00000fb0: JUMPDEST
00000fb1: PUSH2 0x0fba
00000fb4: SWAP2
00000fb5: SWAP1
00000fb6: PUSH2 0x3259
00000fb9: JUMP
00000fba: JUMPDEST
00000fbb: PUSH1 0x0e
00000fbd: SLOAD
00000fbe: PUSH2 0x0fc7
00000fc1: SWAP1
00000fc2: DUP8
00000fc3: PUSH2 0x3259
00000fc6: JUMP
00000fc7: JUMPDEST
00000fc8: PUSH1 0x60
00000fca: DUP7
00000fcb: ADD
00000fcc: MLOAD
00000fcd: PUSH1 0x0a
00000fcf: SLOAD
00000fd0: PUSH1 0x01
00000fd2: PUSH1 0x01
00000fd4: PUSH1 0x80
00000fd6: SHL
00000fd7: SUB
00000fd8: SWAP1
00000fd9: SWAP2
00000fda: AND
00000fdb: SWAP1
00000fdc: PUSH1 0xff
00000fde: AND
00000fdf: PUSH2 0x261c
00000fe2: JUMP
00000fe3: JUMPDEST
00000fe4: PUSH1 0x00
00000fe6: DUP4
00000fe7: DUP2
00000fe8: MSTORE
00000fe9: PUSH1 0x08
00000feb: PUSH1 0x20
00000fed: MSTORE
00000fee: PUSH1 0x40
00000ff0: SWAP1
00000ff1: KECCAK256
00000ff2: DUP2
00000ff3: SWAP1
00000ff4: SSTORE
00000ff5: PUSH1 0x0d
00000ff7: DUP1
00000ff8: SLOAD
00000ff9: PUSH1 0x01
00000ffb: PUSH1 0x01
00000ffd: PUSH1 0x80
00000fff: SHL
00001000: SUB
00001001: NOT
00001002: AND
00001003: SWAP1
00001004: SSTORE
00001005: SWAP1
00001006: POP
00001007: PUSH2 0x1011
0000100a: DUP3
0000100b: PUSH1 0x01
0000100d: PUSH2 0x328d
00001010: JUMP
00001011: JUMPDEST
00001012: PUSH1 0x0c
00001014: DUP1
00001015: SLOAD
00001016: PUSH2 0xffff
00001019: NOT
0000101a: AND
0000101b: PUSH2 0xffff
0000101e: SWAP3
0000101f: SWAP1
00001020: SWAP3
00001021: AND
00001022: SWAP2
00001023: SWAP1
00001024: SWAP2
00001025: OR
00001026: SWAP1
00001027: SSTORE
00001028: PUSH1 0x60
0000102a: DUP4
0000102b: ADD
0000102c: MLOAD
0000102d: PUSH1 0x0a
0000102f: SLOAD
00001030: PUSH1 0x00
00001032: SWAP2
00001033: PUSH2 0x104c
00001036: SWAP2
00001037: PUSH1 0x01
00001039: PUSH1 0x01
0000103b: PUSH1 0x80
0000103d: SHL
0000103e: SUB
0000103f: SWAP1
00001040: SWAP2
00001041: AND
00001042: SWAP1
00001043: DUP5
00001044: SWAP1
00001045: PUSH1 0xff
00001047: AND
00001048: PUSH2 0x2663
0000104b: JUMP
0000104c: JUMPDEST
0000104d: SWAP1
0000104e: POP
0000104f: PUSH2 0x1058
00001052: ADDRESS
00001053: DUP3
00001054: PUSH2 0x26cd
00001057: JUMP
00001058: JUMPDEST
00001059: PUSH1 0x0f
0000105b: SLOAD
0000105c: PUSH1 0x0a
0000105e: SLOAD
0000105f: PUSH1 0x00
00001061: SWAP2
00001062: PUSH2 0x106f
00001065: SWAP2
00001066: DUP6
00001067: SWAP1
00001068: PUSH1 0xff
0000106a: AND
0000106b: PUSH2 0x2703
0000106e: JUMP
0000106f: JUMPDEST
00001070: PUSH1 0x0e
00001072: SLOAD
00001073: PUSH2 0x107c
00001076: SWAP2
00001077: SWAP1
00001078: PUSH2 0x328d
0000107b: JUMP
0000107c: JUMPDEST
0000107d: SWAP1
0000107e: POP
0000107f: DUP1
00001080: PUSH1 0x0e
00001082: DUP2
00001083: SWAP1
00001084: SSTORE
00001085: POP
00001086: PUSH1 0x00
00001088: PUSH1 0x0f
0000108a: SLOAD
0000108b: DUP7
0000108c: PUSH1 0x80
0000108e: ADD
0000108f: MLOAD
00001090: PUSH1 0x01
00001092: PUSH1 0x01
00001094: PUSH1 0x80
00001096: SHL
00001097: SUB
00001098: AND
00001099: PUSH2 0x10a2
0000109c: SWAP2
0000109d: SWAP1
0000109e: PUSH2 0x328d
000010a1: JUMP
000010a2: JUMPDEST
000010a3: SWAP1
000010a4: POP
000010a5: PUSH2 0x10ad
000010a8: DUP2
000010a9: PUSH2 0x2762
000010ac: JUMP
000010ad: JUMPDEST
000010ae: PUSH1 0x0d
000010b0: DUP1
000010b1: SLOAD
000010b2: PUSH1 0x01
000010b4: PUSH1 0x01
000010b6: PUSH1 0x80
000010b8: SHL
000010b9: SUB
000010ba: DUP1
000010bb: DUP5
000010bc: AND
000010bd: PUSH1 0x01
000010bf: PUSH1 0x80
000010c1: SHL
000010c2: MUL
000010c3: SWAP2
000010c4: AND
000010c5: OR
000010c6: SWAP1
000010c7: SSTORE
000010c8: PUSH1 0x00
000010ca: PUSH1 0x0f
000010cc: DUP2
000010cd: SWAP1
000010ce: SSTORE
000010cf: PUSH1 0x20
000010d1: DUP8
000010d2: ADD
000010d3: MLOAD
000010d4: PUSH1 0x0c
000010d6: DUP1
000010d7: SLOAD
000010d8: PUSH1 0x01
000010da: PUSH1 0x01
000010dc: PUSH1 0x68
000010de: SHL
000010df: SUB
000010e0: SWAP1
000010e1: SWAP3
000010e2: AND
000010e3: PUSH1 0x01
000010e5: PUSH1 0x78
000010e7: SHL
000010e8: MUL
000010e9: PUSH13 0xffffffffffffffffffffffffff
000010f7: PUSH1 0x78
000010f9: SHL
000010fa: NOT
000010fb: SWAP1
000010fc: SWAP3
000010fd: AND
000010fe: SWAP2
000010ff: SWAP1
00001100: SWAP2
00001101: OR
00001102: SWAP1
00001103: SSTORE
00001104: PUSH2 0x110d
00001107: DUP4
00001108: DUP10
00001109: PUSH2 0x3259
0000110c: JUMP
0000110d: JUMPDEST
0000110e: SWAP1
0000110f: POP
00001110: PUSH2 0x1118
00001113: DUP2
00001114: PUSH2 0x27ac
00001117: JUMP
00001118: JUMPDEST
00001119: PUSH1 0x0c
0000111b: DUP1
0000111c: SLOAD
0000111d: PUSH3 0x010000
00001121: PUSH1 0x01
00001123: PUSH1 0x78
00001125: SHL
00001126: SUB
00001127: NOT
00001128: AND
00001129: PUSH3 0x010000
0000112d: PUSH1 0x01
0000112f: PUSH1 0x01
00001131: PUSH1 0x68
00001133: SHL
00001134: SUB
00001135: DUP5
00001136: AND
00001137: MUL
00001138: OR
00001139: SWAP1
0000113a: SSTORE
0000113b: PUSH1 0x10
0000113d: SLOAD
0000113e: PUSH1 0x0a
00001140: SLOAD
00001141: PUSH1 0x40
00001143: MLOAD
00001144: PUSH4 0x70a08231
00001149: PUSH1 0xe0
0000114b: SHL
0000114c: DUP2
0000114d: MSTORE
0000114e: ADDRESS
0000114f: PUSH1 0x04
00001151: DUP3
00001152: ADD
00001153: MSTORE
00001154: PUSH2 0x11db
00001157: SWAP3
00001158: PUSH1 0x01
0000115a: PUSH1 0x01
0000115c: PUSH1 0xa0
0000115e: SHL
0000115f: SUB
00001160: SWAP1
00001161: DUP2
00001162: AND
00001163: SWAP3
00001164: DUP8
00001165: SWAP3
00001166: PUSH2 0x0100
00001169: SWAP1
0000116a: SWAP2
0000116b: DIV
0000116c: SWAP1
0000116d: SWAP2
0000116e: AND
0000116f: SWAP1
00001170: PUSH4 0x70a08231
00001175: SWAP1
00001176: PUSH1 0x24
00001178: ADD
00001179: PUSH1 0x20
0000117b: PUSH1 0x40
0000117d: MLOAD
0000117e: DUP1
0000117f: DUP4
00001180: SUB
00001181: DUP2
00001182: DUP7
00001183: GAS
00001184: STATICCALL
00001185: ISZERO
00001186: DUP1
00001187: ISZERO
00001188: PUSH2 0x1195
0000118b: JUMPI
0000118c: RETURNDATASIZE
0000118d: PUSH1 0x00
0000118f: DUP1
00001190: RETURNDATACOPY
00001191: RETURNDATASIZE
00001192: PUSH1 0x00
00001194: REVERT
00001195: JUMPDEST
00001196: POP
00001197: POP
00001198: POP
00001199: POP
0000119a: PUSH1 0x40
0000119c: MLOAD
0000119d: RETURNDATASIZE
0000119e: PUSH1 0x1f
000011a0: NOT
000011a1: PUSH1 0x1f
000011a3: DUP3
000011a4: ADD
000011a5: AND
000011a6: DUP3
000011a7: ADD
000011a8: DUP1
000011a9: PUSH1 0x40
000011ab: MSTORE
000011ac: POP
000011ad: DUP2
000011ae: ADD
000011af: SWAP1
000011b0: PUSH2 0x11b9
000011b3: SWAP2
000011b4: SWAP1
000011b5: PUSH2 0x32a0
000011b8: JUMP
000011b9: JUMPDEST
000011ba: PUSH2 0x11c3
000011bd: SWAP2
000011be: SWAP1
000011bf: PUSH2 0x3259
000011c2: JUMP
000011c3: JUMPDEST
000011c4: PUSH1 0x0a
000011c6: SLOAD
000011c7: PUSH2 0x0100
000011ca: SWAP1
000011cb: DIV
000011cc: PUSH1 0x01
000011ce: PUSH1 0x01
000011d0: PUSH1 0xa0
000011d2: SHL
000011d3: SUB
000011d4: AND
000011d5: SWAP2
000011d6: SWAP1
000011d7: PUSH2 0x27f6
000011da: JUMP
000011db: JUMPDEST
000011dc: POP
000011dd: POP
000011de: POP
000011df: POP
000011e0: POP
000011e1: POP
000011e2: POP
000011e3: PUSH2 0x0d07
000011e6: PUSH1 0x01
000011e8: PUSH1 0x00
000011ea: SSTORE
000011eb: JUMP
000011ec: JUMPDEST
000011ed: PUSH1 0x40
000011ef: DUP1
000011f0: MLOAD
000011f1: PUSH1 0xa0
000011f3: DUP2
000011f4: ADD
000011f5: DUP3
000011f6: MSTORE
000011f7: PUSH1 0x0c
000011f9: SLOAD
000011fa: PUSH2 0xffff
000011fd: DUP2
000011fe: AND
000011ff: DUP3
00001200: MSTORE
00001201: PUSH1 0x01
00001203: PUSH1 0x01
00001205: PUSH1 0x68
00001207: SHL
00001208: SUB
00001209: PUSH3 0x010000
0000120d: DUP3
0000120e: DIV
0000120f: DUP2
00001210: AND
00001211: PUSH1 0x20
00001213: DUP5
00001214: ADD
00001215: MSTORE
00001216: PUSH1 0x01
00001218: PUSH1 0x78
0000121a: SHL
0000121b: SWAP1
0000121c: SWAP2
0000121d: DIV
0000121e: AND
0000121f: SWAP2
00001220: DUP2
00001221: ADD
00001222: SWAP2
00001223: SWAP1
00001224: SWAP2
00001225: MSTORE
00001226: PUSH1 0x0d
00001228: SLOAD
00001229: PUSH1 0x01
0000122b: PUSH1 0x01
0000122d: PUSH1 0x80
0000122f: SHL
00001230: SUB
00001231: DUP1
00001232: DUP3
00001233: AND
00001234: PUSH1 0x60
00001236: DUP5
00001237: ADD
00001238: MSTORE
00001239: PUSH1 0x01
0000123b: PUSH1 0x80
0000123d: SHL
0000123e: SWAP1
0000123f: SWAP2
00001240: DIV
00001241: AND
00001242: PUSH1 0x80
00001244: DUP3
00001245: ADD
00001246: DUP2
00001247: SWAP1
00001248: MSTORE
00001249: PUSH1 0x00
0000124b: SWAP2
0000124c: SWAP1
0000124d: DUP3
0000124e: SWAP1
0000124f: PUSH2 0x128e
00001252: SWAP1
00001253: PUSH2 0x125b
00001256: PUSH1 0x03
00001258: SLOAD
00001259: SWAP1
0000125a: JUMP
0000125b: JUMPDEST
0000125c: PUSH2 0x1265
0000125f: SWAP2
00001260: SWAP1
00001261: PUSH2 0x3259
00001264: JUMP
00001265: JUMPDEST
00001266: PUSH1 0x0e
00001268: SLOAD
00001269: PUSH2 0x1272
0000126c: SWAP1
0000126d: DUP8
0000126e: PUSH2 0x3259
00001271: JUMP
00001272: JUMPDEST
00001273: PUSH1 0x60
00001275: DUP6
00001276: ADD
00001277: MLOAD
00001278: PUSH1 0x0a
0000127a: SLOAD
0000127b: PUSH1 0x01
0000127d: PUSH1 0x01
0000127f: PUSH1 0x80
00001281: SHL
00001282: SUB
00001283: SWAP1
00001284: SWAP2
00001285: AND
00001286: SWAP1
00001287: PUSH1 0xff
00001289: AND
0000128a: PUSH2 0x261c
0000128d: JUMP
0000128e: JUMPDEST
0000128f: PUSH1 0x0f
00001291: SLOAD
00001292: PUSH1 0x0a
00001294: SLOAD
00001295: SWAP2
00001296: SWAP3
00001297: POP
00001298: PUSH2 0x12a5
0000129b: SWAP2
0000129c: DUP4
0000129d: SWAP1
0000129e: PUSH1 0xff
000012a0: AND
000012a1: PUSH2 0x2703
000012a4: JUMP
000012a5: JUMPDEST
000012a6: PUSH1 0x0e
000012a8: SLOAD
000012a9: PUSH2 0x12b2
000012ac: SWAP2
000012ad: SWAP1
000012ae: PUSH2 0x328d
000012b1: JUMP
000012b2: JUMPDEST
000012b3: SWAP5
000012b4: SWAP4
000012b5: POP
000012b6: POP
000012b7: POP
000012b8: POP
000012b9: JUMP
000012ba: JUMPDEST
000012bb: PUSH1 0x0a
000012bd: SLOAD
000012be: PUSH1 0x00
000012c0: SWAP1
000012c1: PUSH1 0xff
000012c3: AND
000012c4: DUP2
000012c5: PUSH2 0x12ea
000012c8: PUSH2 0x12d0
000012cb: PUSH1 0x03
000012cd: SLOAD
000012ce: SWAP1
000012cf: JUMP
000012d0: JUMPDEST
000012d1: PUSH2 0x12d8
000012d4: PUSH2 0x1678
000012d7: JUMP
000012d8: JUMPDEST
000012d9: PUSH1 0x0d
000012db: SLOAD
000012dc: PUSH1 0x01
000012de: PUSH1 0x01
000012e0: PUSH1 0x80
000012e2: SHL
000012e3: SUB
000012e4: AND
000012e5: DUP6
000012e6: PUSH2 0x261c
000012e9: JUMP
000012ea: JUMPDEST
000012eb: SWAP1
000012ec: POP
000012ed: PUSH2 0x12b2
000012f0: PUSH2 0x12f8
000012f3: DUP6
000012f4: PUSH2 0x17e6
000012f7: JUMP
000012f8: JUMPDEST
000012f9: DUP3
000012fa: DUP5
000012fb: PUSH2 0x2703
000012fe: JUMP
000012ff: JUMPDEST
00001300: PUSH2 0x1307
00001303: PUSH2 0x2827
00001306: JUMP
00001307: JUMPDEST
00001308: PUSH1 0x00
0000130a: DUP2
0000130b: GT
0000130c: PUSH2 0x1341
0000130f: JUMPI
00001310: PUSH1 0x40
00001312: MLOAD
00001313: PUSH3 0x461bcd
00001317: PUSH1 0xe5
00001319: SHL
0000131a: DUP2
0000131b: MSTORE
0000131c: PUSH1 0x20
0000131e: PUSH1 0x04
00001320: DUP3
00001321: ADD
00001322: MSTORE
00001323: PUSH1 0x07
00001325: PUSH1 0x24
00001327: DUP3
00001328: ADD
00001329: MSTORE
0000132a: PUSH7 0x0216e657743617
00001332: PUSH1 0xcc
00001334: SHL
00001335: PUSH1 0x44
00001337: DUP3
00001338: ADD
00001339: MSTORE
0000133a: PUSH1 0x64
0000133c: ADD
0000133d: PUSH2 0x0bb2
00001340: JUMP
00001341: JUMPDEST
00001342: PUSH2 0x134a
00001345: DUP2
00001346: PUSH2 0x27ac
00001349: JUMP
0000134a: JUMPDEST
0000134b: PUSH1 0x0b
0000134d: SLOAD
0000134e: PUSH1 0x40
00001350: DUP1
00001351: MLOAD
00001352: PUSH1 0x01
00001354: PUSH1 0x01
00001356: PUSH1 0x68
00001358: SHL
00001359: SUB
0000135a: SWAP1
0000135b: SWAP3
0000135c: AND
0000135d: DUP3
0000135e: MSTORE
0000135f: PUSH1 0x20
00001361: DUP3
00001362: ADD
00001363: DUP4
00001364: SWAP1
00001365: MSTORE
00001366: PUSH32 0x5f86edbb9d92228a9edc3f0ebc0f001bda1ea345ac7335e0eeef3504b31d1a1c
00001387: SWAP2
00001388: ADD
00001389: PUSH1 0x40
0000138b: MLOAD
0000138c: DUP1
0000138d: SWAP2
0000138e: SUB
0000138f: SWAP1
00001390: LOG1
00001391: PUSH1 0x0b
00001393: DUP1
00001394: SLOAD
00001395: PUSH13 0xffffffffffffffffffffffffff
000013a3: NOT
000013a4: AND
000013a5: PUSH1 0x01
000013a7: PUSH1 0x01
000013a9: PUSH1 0x68
000013ab: SHL
000013ac: SUB
000013ad: SWAP3
000013ae: SWAP1
000013af: SWAP3
000013b0: AND
000013b1: SWAP2
000013b2: SWAP1
000013b3: SWAP2
000013b4: OR
000013b5: SWAP1
000013b6: SSTORE
000013b7: JUMP
000013b8: JUMPDEST
000013b9: PUSH2 0x13c0
000013bc: PUSH2 0x2827
000013bf: JUMP
000013c0: JUMPDEST
000013c1: PUSH1 0x10
000013c3: DUP1
000013c4: SLOAD
000013c5: SWAP2
000013c6: ISZERO
000013c7: ISZERO
000013c8: PUSH1 0x01
000013ca: PUSH1 0xa0
000013cc: SHL
000013cd: MUL
000013ce: PUSH1 0xff
000013d0: PUSH1 0xa0
000013d2: SHL
000013d3: NOT
000013d4: SWAP1
000013d5: SWAP3
000013d6: AND
000013d7: SWAP2
000013d8: SWAP1
000013d9: SWAP2
000013da: OR
000013db: SWAP1
000013dc: SSTORE
000013dd: JUMP
000013de: JUMPDEST
000013df: PUSH2 0x13e6
000013e2: PUSH2 0x2155
000013e5: JUMP
000013e6: JUMPDEST
000013e7: PUSH2 0x13f2
000013ea: PUSH1 0x00
000013ec: PUSH1 0x01
000013ee: PUSH2 0x2854
000013f1: JUMP
000013f2: JUMPDEST
000013f3: PUSH2 0x13fc
000013f6: PUSH1 0x01
000013f8: PUSH1 0x00
000013fa: SSTORE
000013fb: JUMP
000013fc: JUMPDEST
000013fd: JUMP
000013fe: JUMPDEST
000013ff: PUSH2 0x1406
00001402: PUSH2 0x2827
00001405: JUMP
00001406: JUMPDEST
00001407: PUSH2 0x13fc
0000140a: PUSH1 0x00
0000140c: PUSH2 0x2a01
0000140f: JUMP
00001410: JUMPDEST
00001411: PUSH2 0x1418
00001414: PUSH2 0x2827
00001417: JUMP
00001418: JUMPDEST
00001419: PUSH1 0x11
0000141b: SSTORE
0000141c: JUMP
0000141d: JUMPDEST
0000141e: PUSH2 0x1425
00001421: PUSH2 0x2155
00001424: JUMP
00001425: JUMPDEST
00001426: PUSH1 0x00
00001428: DUP2
00001429: GT
0000142a: PUSH2 0x1462
0000142d: JUMPI
0000142e: PUSH1 0x40
00001430: MLOAD
00001431: PUSH3 0x461bcd
00001435: PUSH1 0xe5
00001437: SHL
00001438: DUP2
00001439: MSTORE
0000143a: PUSH1 0x20
0000143c: PUSH1 0x04
0000143e: DUP3
0000143f: ADD
00001440: MSTORE
00001441: PUSH1 0x0a
00001443: PUSH1 0x24
00001445: DUP3
00001446: ADD
00001447: MSTORE
00001448: PUSH10 0x216e756d536861726573
00001453: PUSH1 0xb0
00001455: SHL
00001456: PUSH1 0x44
00001458: DUP3
00001459: ADD
0000145a: MSTORE
0000145b: PUSH1 0x64
0000145d: ADD
0000145e: PUSH2 0x0bb2
00001461: JUMP
00001462: JUMPDEST
00001463: CALLER
00001464: PUSH1 0x00
00001466: SWAP1
00001467: DUP2
00001468: MSTORE
00001469: PUSH1 0x07
0000146b: PUSH1 0x20
0000146d: MSTORE
0000146e: PUSH1 0x40
00001470: SWAP1
00001471: KECCAK256
00001472: SLOAD
00001473: PUSH3 0x010000
00001477: SWAP1
00001478: DIV
00001479: PUSH1 0x01
0000147b: PUSH1 0x01
0000147d: PUSH1 0x68
0000147f: SHL
00001480: SUB
00001481: AND
00001482: ISZERO
00001483: ISZERO
00001484: DUP1
00001485: PUSH2 0x14ac
00001488: JUMPI
00001489: POP
0000148a: CALLER
0000148b: PUSH1 0x00
0000148d: SWAP1
0000148e: DUP2
0000148f: MSTORE
00001490: PUSH1 0x07
00001492: PUSH1 0x20
00001494: MSTORE
00001495: PUSH1 0x40
00001497: SWAP1
00001498: KECCAK256
00001499: SLOAD
0000149a: PUSH1 0x01
0000149c: PUSH1 0x78
0000149e: SHL
0000149f: SWAP1
000014a0: DIV
000014a1: PUSH1 0x01
000014a3: PUSH1 0x01
000014a5: PUSH1 0x80
000014a7: SHL
000014a8: SUB
000014a9: AND
000014aa: ISZERO
000014ab: ISZERO
000014ac: JUMPDEST
000014ad: ISZERO
000014ae: PUSH2 0x14bd
000014b1: JUMPI
000014b2: PUSH2 0x14bd
000014b5: PUSH1 0x00
000014b7: PUSH1 0x01
000014b9: PUSH2 0x2854
000014bc: JUMP
000014bd: JUMPDEST
000014be: PUSH1 0x0c
000014c0: SLOAD
000014c1: CALLER
000014c2: PUSH1 0x00
000014c4: DUP2
000014c5: DUP2
000014c6: MSTORE
000014c7: PUSH1 0x09
000014c9: PUSH1 0x20
000014cb: SWAP1
000014cc: DUP2
000014cd: MSTORE
000014ce: PUSH1 0x40
000014d0: SWAP2
000014d1: DUP3
000014d2: SWAP1
000014d3: KECCAK256
000014d4: DUP3
000014d5: MLOAD
000014d6: DUP1
000014d7: DUP5
000014d8: ADD
000014d9: DUP5
000014da: MSTORE
000014db: SWAP1
000014dc: SLOAD
000014dd: PUSH2 0xffff
000014e0: DUP1
000014e1: DUP3
000014e2: AND
000014e3: DUP1
000014e4: DUP5
000014e5: MSTORE
000014e6: PUSH3 0x010000
000014ea: SWAP1
000014eb: SWAP3
000014ec: DIV
000014ed: PUSH1 0x01
000014ef: PUSH1 0x01
000014f1: PUSH1 0x80
000014f3: SHL
000014f4: SUB
000014f5: AND
000014f6: DUP4
000014f7: DUP6
000014f8: ADD
000014f9: MSTORE
000014fa: DUP5
000014fb: MLOAD
000014fc: DUP9
000014fd: DUP2
000014fe: MSTORE
000014ff: SWAP7
00001500: AND
00001501: SWAP3
00001502: DUP7
00001503: ADD
00001504: DUP4
00001505: SWAP1
00001506: MSTORE
00001507: SWAP2
00001508: SWAP5
00001509: SWAP1
0000150a: SWAP4
0000150b: SWAP2
0000150c: DUP6
0000150d: EQ
0000150e: SWAP3
0000150f: PUSH32 0x0c53c82ad07e2d592d88ece3b066777dd60f1118e2a081b380efc4358f0d9e2a
00001530: SWAP2
00001531: ADD
00001532: PUSH1 0x40
00001534: MLOAD
00001535: DUP1
00001536: SWAP2
00001537: SUB
00001538: SWAP1
00001539: LOG2
0000153a: PUSH1 0x20
0000153c: DUP3
0000153d: ADD
0000153e: MLOAD
0000153f: PUSH1 0x01
00001541: PUSH1 0x01
00001543: PUSH1 0x80
00001545: SHL
00001546: SUB
00001547: AND
00001548: PUSH1 0x00
0000154a: DUP3
0000154b: ISZERO
0000154c: PUSH2 0x1560
0000154f: JUMPI
00001550: PUSH2 0x1559
00001553: DUP7
00001554: DUP4
00001555: PUSH2 0x328d
00001558: JUMP
00001559: JUMPDEST
0000155a: SWAP1
0000155b: POP
0000155c: PUSH2 0x15c3
0000155f: JUMP
00001560: JUMPDEST
00001561: DUP2
00001562: ISZERO
00001563: PUSH2 0x15a2
00001566: JUMPI
00001567: PUSH1 0x40
00001569: MLOAD
0000156a: PUSH3 0x461bcd
0000156e: PUSH1 0xe5
00001570: SHL
00001571: DUP2
00001572: MSTORE
00001573: PUSH1 0x20
00001575: PUSH1 0x04
00001577: DUP3
00001578: ADD
00001579: MSTORE
0000157a: PUSH1 0x11
0000157c: PUSH1 0x24
0000157e: DUP3
0000157f: ADD
00001580: MSTORE
00001581: PUSH17 0x4578697374696e67207769746864726177
00001593: PUSH1 0x78
00001595: SHL
00001596: PUSH1 0x44
00001598: DUP3
00001599: ADD
0000159a: MSTORE
0000159b: PUSH1 0x64
0000159d: ADD
0000159e: PUSH2 0x0bb2
000015a1: JUMP
000015a2: JUMPDEST
000015a3: POP
000015a4: CALLER
000015a5: PUSH1 0x00
000015a7: SWAP1
000015a8: DUP2
000015a9: MSTORE
000015aa: PUSH1 0x09
000015ac: PUSH1 0x20
000015ae: MSTORE
000015af: PUSH1 0x40
000015b1: SWAP1
000015b2: KECCAK256
000015b3: DUP1
000015b4: SLOAD
000015b5: PUSH2 0xffff
000015b8: NOT
000015b9: AND
000015ba: PUSH2 0xffff
000015bd: DUP7
000015be: AND
000015bf: OR
000015c0: SWAP1
000015c1: SSTORE
000015c2: DUP5
000015c3: JUMPDEST
000015c4: PUSH2 0x15cc
000015c7: DUP2
000015c8: PUSH2 0x2762
000015cb: JUMP
000015cc: JUMPDEST
000015cd: CALLER
000015ce: PUSH1 0x00
000015d0: DUP2
000015d1: DUP2
000015d2: MSTORE
000015d3: PUSH1 0x09
000015d5: PUSH1 0x20
000015d7: MSTORE
000015d8: PUSH1 0x40
000015da: SWAP1
000015db: KECCAK256
000015dc: DUP1
000015dd: SLOAD
000015de: PUSH3 0x010000
000015e2: PUSH1 0x01
000015e4: PUSH1 0x90
000015e6: SHL
000015e7: SUB
000015e8: NOT
000015e9: AND
000015ea: PUSH3 0x010000
000015ee: PUSH1 0x01
000015f0: PUSH1 0x01
000015f2: PUSH1 0x80
000015f4: SHL
000015f5: SUB
000015f6: DUP6
000015f7: AND
000015f8: MUL
000015f9: OR
000015fa: SWAP1
000015fb: SSTORE
000015fc: PUSH2 0x1606
000015ff: SWAP1
00001600: ADDRESS
00001601: DUP9
00001602: PUSH2 0x20f6
00001605: JUMP
00001606: JUMPDEST
00001607: DUP6
00001608: PUSH1 0x0f
0000160a: SLOAD
0000160b: PUSH2 0x1614
0000160e: SWAP2
0000160f: SWAP1
00001610: PUSH2 0x328d
00001613: JUMP
00001614: JUMPDEST
00001615: PUSH1 0x0f
00001617: SSTORE
00001618: POP
00001619: PUSH2 0x0d07
0000161c: SWAP4
0000161d: POP
0000161e: PUSH2 0x22de
00001621: SWAP3
00001622: POP
00001623: POP
00001624: POP
00001625: JUMP
00001626: JUMPDEST
00001627: PUSH1 0x60
00001629: PUSH1 0x05
0000162b: DUP1
0000162c: SLOAD
0000162d: PUSH2 0x0ab4
00001630: SWAP1
00001631: PUSH2 0x31e8
00001634: JUMP
00001635: JUMPDEST
00001636: PUSH1 0x00
00001638: PUSH2 0x1665
0000163b: PUSH2 0x1643
0000163e: PUSH1 0x03
00001640: SLOAD
00001641: SWAP1
00001642: JUMP
00001643: JUMPDEST
00001644: PUSH2 0x164b
00001647: PUSH2 0x1678
0000164a: JUMP
0000164b: JUMPDEST
0000164c: PUSH1 0x0d
0000164e: SLOAD
0000164f: PUSH1 0x0a
00001651: SLOAD
00001652: PUSH1 0x01
00001654: PUSH1 0x01
00001656: PUSH1 0x80
00001658: SHL
00001659: SUB
0000165a: SWAP1
0000165b: SWAP2
0000165c: AND
0000165d: SWAP1
0000165e: PUSH1 0xff
00001660: AND
00001661: PUSH2 0x261c
00001664: JUMP
00001665: JUMPDEST
00001666: SWAP1
00001667: POP
00001668: SWAP1
00001669: JUMP
0000166a: JUMPDEST
0000166b: PUSH1 0x00
0000166d: CALLER
0000166e: PUSH2 0x0b45
00001671: DUP2
00001672: DUP6
00001673: DUP6
00001674: PUSH2 0x20f6
00001677: JUMP
00001678: JUMPDEST
00001679: PUSH1 0x0a
0000167b: SLOAD
0000167c: PUSH1 0x40
0000167e: MLOAD
0000167f: PUSH4 0x70a08231
00001684: PUSH1 0xe0
00001686: SHL
00001687: DUP2
00001688: MSTORE
00001689: ADDRESS
0000168a: PUSH1 0x04
0000168c: DUP3
0000168d: ADD
0000168e: MSTORE
0000168f: PUSH1 0x00
00001691: SWAP2
00001692: PUSH2 0x0100
00001695: SWAP1
00001696: DIV
00001697: PUSH1 0x01
00001699: PUSH1 0x01
0000169b: PUSH1 0xa0
0000169d: SHL
0000169e: SUB
0000169f: AND
000016a0: SWAP1
000016a1: PUSH4 0x70a08231
000016a6: SWAP1
000016a7: PUSH1 0x24
000016a9: ADD
000016aa: PUSH1 0x20
000016ac: PUSH1 0x40
000016ae: MLOAD
000016af: DUP1
000016b0: DUP4
000016b1: SUB
000016b2: DUP2
000016b3: DUP7
000016b4: GAS
000016b5: STATICCALL
000016b6: ISZERO
000016b7: DUP1
000016b8: ISZERO
000016b9: PUSH2 0x16c6
000016bc: JUMPI
000016bd: RETURNDATASIZE
000016be: PUSH1 0x00
000016c0: DUP1
000016c1: RETURNDATACOPY
000016c2: RETURNDATASIZE
000016c3: PUSH1 0x00
000016c5: REVERT
000016c6: JUMPDEST
000016c7: POP
000016c8: POP
000016c9: POP
000016ca: POP
000016cb: PUSH1 0x40
000016cd: MLOAD
000016ce: RETURNDATASIZE
000016cf: PUSH1 0x1f
000016d1: NOT
000016d2: PUSH1 0x1f
000016d4: DUP3
000016d5: ADD
000016d6: AND
000016d7: DUP3
000016d8: ADD
000016d9: DUP1
000016da: PUSH1 0x40
000016dc: MSTORE
000016dd: POP
000016de: DUP2
000016df: ADD
000016e0: SWAP1
000016e1: PUSH2 0x16ea
000016e4: SWAP2
000016e5: SWAP1
000016e6: PUSH2 0x32a0
000016e9: JUMP
000016ea: JUMPDEST
000016eb: PUSH1 0x0c
000016ed: SLOAD
000016ee: PUSH2 0x1665
000016f1: SWAP2
000016f2: SWAP1
000016f3: PUSH3 0x010000
000016f7: SWAP1
000016f8: DIV
000016f9: PUSH1 0x01
000016fb: PUSH1 0x01
000016fd: PUSH1 0x68
000016ff: SHL
00001700: SUB
00001701: AND
00001702: PUSH2 0x328d
00001705: JUMP
00001706: JUMPDEST
00001707: PUSH2 0x170e
0000170a: PUSH2 0x2155
0000170d: JUMP
0000170e: JUMPDEST
0000170f: PUSH1 0x10
00001711: SLOAD
00001712: PUSH1 0x01
00001714: PUSH1 0xa0
00001716: SHL
00001717: SWAP1
00001718: DIV
00001719: PUSH1 0xff
0000171b: AND
0000171c: PUSH2 0x1737
0000171f: JUMPI
00001720: PUSH1 0x40
00001722: MLOAD
00001723: PUSH3 0x461bcd
00001727: PUSH1 0xe5
00001729: SHL
0000172a: DUP2
0000172b: MSTORE
0000172c: PUSH1 0x04
0000172e: ADD
0000172f: PUSH2 0x0bb2
00001732: SWAP1
00001733: PUSH2 0x326c
00001736: JUMP
00001737: JUMPDEST
00001738: PUSH1 0x00
0000173a: DUP2
0000173b: GT
0000173c: PUSH2 0x1757
0000173f: JUMPI
00001740: PUSH1 0x40
00001742: MLOAD
00001743: PUSH3 0x461bcd
00001747: PUSH1 0xe5
00001749: SHL
0000174a: DUP2
0000174b: MSTORE
0000174c: PUSH1 0x04
0000174e: ADD
0000174f: PUSH2 0x0bb2
00001752: SWAP1
00001753: PUSH2 0x3222
00001756: JUMP
00001757: JUMPDEST
00001758: PUSH2 0x1761
0000175b: DUP2
0000175c: CALLER
0000175d: PUSH2 0x2327
00001760: JUMP
00001761: JUMPDEST
00001762: PUSH1 0x0a
00001764: SLOAD
00001765: PUSH2 0x177e
00001768: SWAP1
00001769: PUSH2 0x0100
0000176c: SWAP1
0000176d: DIV
0000176e: PUSH1 0x01
00001770: PUSH1 0x01
00001772: PUSH1 0xa0
00001774: SHL
00001775: SUB
00001776: AND
00001777: CALLER
00001778: ADDRESS
00001779: DUP5
0000177a: PUSH2 0x25b5
0000177d: JUMP
0000177e: JUMPDEST
0000177f: PUSH2 0x0d07
00001782: PUSH1 0x01
00001784: PUSH1 0x00
00001786: SSTORE
00001787: JUMP
00001788: JUMPDEST
00001789: PUSH1 0x10
0000178b: SLOAD
0000178c: PUSH1 0x00
0000178e: SWAP1
0000178f: PUSH1 0x01
00001791: PUSH1 0xa0
00001793: SHL
00001794: SWAP1
00001795: DIV
00001796: PUSH1 0xff
00001798: AND
00001799: DUP1
0000179a: PUSH2 0x0b70
0000179d: JUMPI
0000179e: POP
0000179f: PUSH1 0x11
000017a1: SLOAD
000017a2: PUSH1 0x40
000017a4: MLOAD
000017a5: PUSH1 0x01
000017a7: PUSH1 0x01
000017a9: PUSH1 0x60
000017ab: SHL
000017ac: SUB
000017ad: NOT
000017ae: PUSH1 0x60
000017b0: DUP7
000017b1: SWAP1
000017b2: SHL
000017b3: AND
000017b4: PUSH1 0x20
000017b6: DUP3
000017b7: ADD
000017b8: MSTORE
000017b9: PUSH2 0x0b70
000017bc: SWAP2
000017bd: SWAP1
000017be: PUSH1 0x34
000017c0: ADD
000017c1: PUSH1 0x40
000017c3: MLOAD
000017c4: PUSH1 0x20
000017c6: DUP2
000017c7: DUP4
000017c8: SUB
000017c9: SUB
000017ca: DUP2
000017cb: MSTORE
000017cc: SWAP1
000017cd: PUSH1 0x40
000017cf: MSTORE
000017d0: DUP1
000017d1: MLOAD
000017d2: SWAP1
000017d3: PUSH1 0x20
000017d5: ADD
000017d6: KECCAK256
000017d7: DUP5
000017d8: PUSH2 0x22e5
000017db: SWAP1
000017dc: SWAP3
000017dd: SWAP2
000017de: SWAP1
000017df: PUSH4 0xffffffff
000017e4: AND
000017e5: JUMP
000017e6: JUMPDEST
000017e7: PUSH1 0x00
000017e9: DUP1
000017ea: PUSH1 0x00
000017ec: PUSH2 0x17f4
000017ef: DUP5
000017f0: PUSH2 0x1da9
000017f3: JUMP
000017f4: JUMPDEST
000017f5: SWAP1
000017f6: SWAP3
000017f7: POP
000017f8: SWAP1
000017f9: POP
000017fa: PUSH2 0x12b2
000017fd: DUP2
000017fe: DUP4
000017ff: PUSH2 0x328d
00001802: JUMP
00001803: JUMPDEST
00001804: PUSH2 0x180b
00001807: PUSH2 0x2827
0000180a: JUMP
0000180b: JUMPDEST
0000180c: PUSH1 0x01
0000180e: PUSH1 0x01
00001810: PUSH1 0xa0
00001812: SHL
00001813: SUB
00001814: DUP2
00001815: AND
00001816: PUSH2 0x184e
00001819: JUMPI
0000181a: PUSH1 0x40
0000181c: MLOAD
0000181d: PUSH3 0x461bcd
00001821: PUSH1 0xe5
00001823: SHL
00001824: DUP2
00001825: MSTORE
00001826: PUSH1 0x20
00001828: PUSH1 0x04
0000182a: DUP3
0000182b: ADD
0000182c: MSTORE
0000182d: PUSH1 0x0a
0000182f: PUSH1 0x24
00001831: DUP3
00001832: ADD
00001833: MSTORE
00001834: PUSH10 0x10b732bba5b2b2b832b9
0000183f: PUSH1 0xb1
00001841: SHL
00001842: PUSH1 0x44
00001844: DUP3
00001845: ADD
00001846: MSTORE
00001847: PUSH1 0x64
00001849: ADD
0000184a: PUSH2 0x0bb2
0000184d: JUMP
0000184e: JUMPDEST
0000184f: PUSH1 0x10
00001851: DUP1
00001852: SLOAD
00001853: PUSH1 0x01
00001855: PUSH1 0x01
00001857: PUSH1 0xa0
00001859: SHL
0000185a: SUB
0000185b: NOT
0000185c: AND
0000185d: PUSH1 0x01
0000185f: PUSH1 0x01
00001861: PUSH1 0xa0
00001863: SHL
00001864: SUB
00001865: SWAP3
00001866: SWAP1
00001867: SWAP3
00001868: AND
00001869: SWAP2
0000186a: SWAP1
0000186b: SWAP2
0000186c: OR
0000186d: SWAP1
0000186e: SSTORE
0000186f: JUMP
00001870: JUMPDEST
00001871: PUSH2 0x1878
00001874: PUSH2 0x2155
00001877: JUMP
00001878: JUMPDEST
00001879: PUSH1 0x00
0000187b: DUP2
0000187c: GT
0000187d: PUSH2 0x18b5
00001880: JUMPI
00001881: PUSH1 0x40
00001883: MLOAD
00001884: PUSH3 0x461bcd
00001888: PUSH1 0xe5
0000188a: SHL
0000188b: DUP2
0000188c: MSTORE
0000188d: PUSH1 0x20
0000188f: PUSH1 0x04
00001891: DUP3
00001892: ADD
00001893: MSTORE
00001894: PUSH1 0x0a
00001896: PUSH1 0x24
00001898: DUP3
00001899: ADD
0000189a: MSTORE
0000189b: PUSH10 0x216e756d536861726573
000018a6: PUSH1 0xb0
000018a8: SHL
000018a9: PUSH1 0x44
000018ab: DUP3
000018ac: ADD
000018ad: MSTORE
000018ae: PUSH1 0x64
000018b0: ADD
000018b1: PUSH2 0x0bb2
000018b4: JUMP
000018b5: JUMPDEST
000018b6: PUSH2 0x177e
000018b9: DUP2
000018ba: PUSH1 0x00
000018bc: PUSH2 0x2854
000018bf: JUMP
000018c0: JUMPDEST
000018c1: PUSH2 0x18c8
000018c4: PUSH2 0x2155
000018c7: JUMP
000018c8: JUMPDEST
000018c9: PUSH1 0x10
000018cb: SLOAD
000018cc: PUSH1 0x01
000018ce: PUSH1 0xa0
000018d0: SHL
000018d1: SWAP1
000018d2: DIV
000018d3: PUSH1 0xff
000018d5: AND
000018d6: PUSH2 0x193b
000018d9: JUMPI
000018da: PUSH1 0x11
000018dc: SLOAD
000018dd: PUSH1 0x40
000018df: MLOAD
000018e0: PUSH1 0x01
000018e2: PUSH1 0x01
000018e4: PUSH1 0x60
000018e6: SHL
000018e7: SUB
000018e8: NOT
000018e9: CALLER
000018ea: PUSH1 0x60
000018ec: SHL
000018ed: AND
000018ee: PUSH1 0x20
000018f0: DUP3
000018f1: ADD
000018f2: MSTORE
000018f3: PUSH2 0x18ff
000018f6: SWAP2
000018f7: SWAP1
000018f8: PUSH1 0x34
000018fa: ADD
000018fb: PUSH2 0x0d45
000018fe: JUMP
000018ff: JUMPDEST
00001900: PUSH2 0x193b
00001903: JUMPI
00001904: PUSH1 0x40
00001906: MLOAD
00001907: PUSH3 0x461bcd
0000190b: PUSH1 0xe5
0000190d: SHL
0000190e: DUP2
0000190f: MSTORE
00001910: PUSH1 0x20
00001912: PUSH1 0x04
00001914: DUP3
00001915: ADD
00001916: MSTORE
00001917: PUSH1 0x0d
00001919: PUSH1 0x24
0000191b: DUP3
0000191c: ADD
0000191d: MSTORE
0000191e: PUSH13 0x24b73b30b634b210383937b7b3
0000192c: PUSH1 0x99
0000192e: SHL
0000192f: PUSH1 0x44
00001931: DUP3
00001932: ADD
00001933: MSTORE
00001934: PUSH1 0x64
00001936: ADD
00001937: PUSH2 0x0bb2
0000193a: JUMP
0000193b: JUMPDEST
0000193c: PUSH1 0x0a
0000193e: SLOAD
0000193f: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00001960: PUSH1 0x01
00001962: PUSH1 0x01
00001964: PUSH1 0xa0
00001966: SHL
00001967: SUB
00001968: SWAP1
00001969: DUP2
0000196a: AND
0000196b: PUSH2 0x0100
0000196e: SWAP1
0000196f: SWAP3
00001970: DIV
00001971: AND
00001972: EQ
00001973: PUSH2 0x198e
00001976: JUMPI
00001977: PUSH1 0x40
00001979: MLOAD
0000197a: PUSH3 0x461bcd
0000197e: PUSH1 0xe5
00001980: SHL
00001981: DUP2
00001982: MSTORE
00001983: PUSH1 0x04
00001985: ADD
00001986: PUSH2 0x0bb2
00001989: SWAP1
0000198a: PUSH2 0x32b9
0000198d: JUMP
0000198e: JUMPDEST
0000198f: PUSH1 0x00
00001991: CALLVALUE
00001992: GT
00001993: PUSH2 0x19ae
00001996: JUMPI
00001997: PUSH1 0x40
00001999: MLOAD
0000199a: PUSH3 0x461bcd
0000199e: PUSH1 0xe5
000019a0: SHL
000019a1: DUP2
000019a2: MSTORE
000019a3: PUSH1 0x04
000019a5: ADD
000019a6: PUSH2 0x0bb2
000019a9: SWAP1
000019aa: PUSH2 0x32d8
000019ad: JUMP
000019ae: JUMPDEST
000019af: PUSH2 0x19b8
000019b2: CALLVALUE
000019b3: CALLER
000019b4: PUSH2 0x2327
000019b7: JUMP
000019b8: JUMPDEST
000019b9: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
000019da: PUSH1 0x01
000019dc: PUSH1 0x01
000019de: PUSH1 0xa0
000019e0: SHL
000019e1: SUB
000019e2: AND
000019e3: PUSH4 0xd0e30db0
000019e8: CALLVALUE
000019e9: PUSH1 0x40
000019eb: MLOAD
000019ec: DUP3
000019ed: PUSH4 0xffffffff
000019f2: AND
000019f3: PUSH1 0xe0
000019f5: SHL
000019f6: DUP2
000019f7: MSTORE
000019f8: PUSH1 0x04
000019fa: ADD
000019fb: PUSH1 0x00
000019fd: PUSH1 0x40
000019ff: MLOAD
00001a00: DUP1
00001a01: DUP4
00001a02: SUB
00001a03: DUP2
00001a04: DUP6
00001a05: DUP9
00001a06: DUP1
00001a07: EXTCODESIZE
00001a08: ISZERO
00001a09: DUP1
00001a0a: ISZERO
00001a0b: PUSH2 0x1a13
00001a0e: JUMPI
00001a0f: PUSH1 0x00
00001a11: DUP1
00001a12: REVERT
00001a13: JUMPDEST
00001a14: POP
00001a15: GAS
00001a16: CALL
00001a17: ISZERO
00001a18: DUP1
00001a19: ISZERO
00001a1a: PUSH2 0x1a27
00001a1d: JUMPI
00001a1e: RETURNDATASIZE
00001a1f: PUSH1 0x00
00001a21: DUP1
00001a22: RETURNDATACOPY
00001a23: RETURNDATASIZE
00001a24: PUSH1 0x00
00001a26: REVERT
00001a27: JUMPDEST
00001a28: POP
00001a29: POP
00001a2a: POP
00001a2b: POP
00001a2c: POP
00001a2d: PUSH2 0x0d07
00001a30: PUSH1 0x01
00001a32: PUSH1 0x00
00001a34: SSTORE
00001a35: JUMP
00001a36: JUMPDEST
00001a37: PUSH2 0x1a3e
00001a3a: PUSH2 0x2827
00001a3d: JUMP
00001a3e: JUMPDEST
00001a3f: PUSH1 0x00
00001a41: DUP2
00001a42: PUSH1 0x60
00001a44: ADD
00001a45: MLOAD
00001a46: PUSH1 0x01
00001a48: PUSH1 0x01
00001a4a: PUSH1 0x68
00001a4c: SHL
00001a4d: SUB
00001a4e: AND
00001a4f: GT
00001a50: PUSH2 0x1a85
00001a53: JUMPI
00001a54: PUSH1 0x40
00001a56: MLOAD
00001a57: PUSH3 0x461bcd
00001a5b: PUSH1 0xe5
00001a5d: SHL
00001a5e: DUP2
00001a5f: MSTORE
00001a60: PUSH1 0x20
00001a62: PUSH1 0x04
00001a64: DUP3
00001a65: ADD
00001a66: MSTORE
00001a67: PUSH1 0x07
00001a69: PUSH1 0x24
00001a6b: DUP3
00001a6c: ADD
00001a6d: MSTORE
00001a6e: PUSH7 0x0216e657743617
00001a76: PUSH1 0xcc
00001a78: SHL
00001a79: PUSH1 0x44
00001a7b: DUP3
00001a7c: ADD
00001a7d: MSTORE
00001a7e: PUSH1 0x64
00001a80: ADD
00001a81: PUSH2 0x0bb2
00001a84: JUMP
00001a85: JUMPDEST
00001a86: PUSH1 0x20
00001a88: DUP2
00001a89: ADD
00001a8a: MLOAD
00001a8b: PUSH1 0x01
00001a8d: PUSH1 0x01
00001a8f: PUSH1 0xa0
00001a91: SHL
00001a92: SUB
00001a93: AND
00001a94: PUSH2 0x1acb
00001a97: JUMPI
00001a98: PUSH1 0x40
00001a9a: MLOAD
00001a9b: PUSH3 0x461bcd
00001a9f: PUSH1 0xe5
00001aa1: SHL
00001aa2: DUP2
00001aa3: MSTORE
00001aa4: PUSH1 0x20
00001aa6: PUSH1 0x04
00001aa8: DUP3
00001aa9: ADD
00001aaa: MSTORE
00001aab: PUSH1 0x09
00001aad: PUSH1 0x24
00001aaf: DUP3
00001ab0: ADD
00001ab1: MSTORE
00001ab2: PUSH9 0x085b995dd05cdcd95d
00001abc: PUSH1 0xba
00001abe: SHL
00001abf: PUSH1 0x44
00001ac1: DUP3
00001ac2: ADD
00001ac3: MSTORE
00001ac4: PUSH1 0x64
00001ac6: ADD
00001ac7: PUSH2 0x0bb2
00001aca: JUMP
00001acb: JUMPDEST
00001acc: DUP1
00001acd: MLOAD
00001ace: PUSH1 0x0a
00001ad0: DUP1
00001ad1: SLOAD
00001ad2: PUSH1 0x20
00001ad4: DUP5
00001ad5: ADD
00001ad6: MLOAD
00001ad7: PUSH1 0x40
00001ad9: DUP6
00001ada: ADD
00001adb: MLOAD
00001adc: PUSH7 0xffffffffffffff
00001ae4: AND
00001ae5: PUSH1 0x01
00001ae7: PUSH1 0xa8
00001ae9: SHL
00001aea: MUL
00001aeb: PUSH7 0xffffffffffffff
00001af3: PUSH1 0xa8
00001af5: SHL
00001af6: NOT
00001af7: PUSH1 0x01
00001af9: PUSH1 0x01
00001afb: PUSH1 0xa0
00001afd: SHL
00001afe: SUB
00001aff: SWAP1
00001b00: SWAP3
00001b01: AND
00001b02: PUSH2 0x0100
00001b05: MUL
00001b06: PUSH1 0x01
00001b08: PUSH1 0x01
00001b0a: PUSH1 0xa8
00001b0c: SHL
00001b0d: SUB
00001b0e: NOT
00001b0f: SWAP1
00001b10: SWAP4
00001b11: AND
00001b12: PUSH1 0xff
00001b14: SWAP1
00001b15: SWAP6
00001b16: AND
00001b17: SWAP5
00001b18: SWAP1
00001b19: SWAP5
00001b1a: OR
00001b1b: SWAP2
00001b1c: SWAP1
00001b1d: SWAP2
00001b1e: OR
00001b1f: AND
00001b20: SWAP2
00001b21: SWAP1
00001b22: SWAP2
00001b23: OR
00001b24: SWAP1
00001b25: SSTORE
00001b26: PUSH1 0x60
00001b28: ADD
00001b29: MLOAD
00001b2a: PUSH1 0x0b
00001b2c: DUP1
00001b2d: SLOAD
00001b2e: PUSH1 0x01
00001b30: PUSH1 0x01
00001b32: PUSH1 0x68
00001b34: SHL
00001b35: SUB
00001b36: SWAP1
00001b37: SWAP3
00001b38: AND
00001b39: PUSH13 0xffffffffffffffffffffffffff
00001b47: NOT
00001b48: SWAP1
00001b49: SWAP3
00001b4a: AND
00001b4b: SWAP2
00001b4c: SWAP1
00001b4d: SWAP2
00001b4e: OR
00001b4f: SWAP1
00001b50: SSTORE
00001b51: JUMP
00001b52: JUMPDEST
00001b53: PUSH2 0x1b5a
00001b56: PUSH2 0x2827
00001b59: JUMP
00001b5a: JUMPDEST
00001b5b: PUSH1 0x01
00001b5d: PUSH1 0x01
00001b5f: PUSH1 0xa0
00001b61: SHL
00001b62: SUB
00001b63: DUP2
00001b64: AND
00001b65: PUSH2 0x1b84
00001b68: JUMPI
00001b69: PUSH1 0x40
00001b6b: MLOAD
00001b6c: PUSH4 0x1e4fbdf7
00001b71: PUSH1 0xe0
00001b73: SHL
00001b74: DUP2
00001b75: MSTORE
00001b76: PUSH1 0x00
00001b78: PUSH1 0x04
00001b7a: DUP3
00001b7b: ADD
00001b7c: MSTORE
00001b7d: PUSH1 0x24
00001b7f: ADD
00001b80: PUSH2 0x0bb2
00001b83: JUMP
00001b84: JUMPDEST
00001b85: PUSH2 0x0d07
00001b88: DUP2
00001b89: PUSH2 0x2a01
00001b8c: JUMP
00001b8d: JUMPDEST
00001b8e: PUSH2 0x1b95
00001b91: PUSH2 0x2155
00001b94: JUMP
00001b95: JUMPDEST
00001b96: PUSH1 0x10
00001b98: SLOAD
00001b99: PUSH1 0x01
00001b9b: PUSH1 0xa0
00001b9d: SHL
00001b9e: SWAP1
00001b9f: DIV
00001ba0: PUSH1 0xff
00001ba2: AND
00001ba3: PUSH2 0x1bbe
00001ba6: JUMPI
00001ba7: PUSH1 0x40
00001ba9: MLOAD
00001baa: PUSH3 0x461bcd
00001bae: PUSH1 0xe5
00001bb0: SHL
00001bb1: DUP2
00001bb2: MSTORE
00001bb3: PUSH1 0x04
00001bb5: ADD
00001bb6: PUSH2 0x0bb2
00001bb9: SWAP1
00001bba: PUSH2 0x326c
00001bbd: JUMP
00001bbe: JUMPDEST
00001bbf: PUSH1 0x0a
00001bc1: SLOAD
00001bc2: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00001be3: PUSH1 0x01
00001be5: PUSH1 0x01
00001be7: PUSH1 0xa0
00001be9: SHL
00001bea: SUB
00001beb: SWAP1
00001bec: DUP2
00001bed: AND
00001bee: PUSH2 0x0100
00001bf1: SWAP1
00001bf2: SWAP3
00001bf3: DIV
00001bf4: AND
00001bf5: EQ
00001bf6: PUSH2 0x1c11
00001bf9: JUMPI
00001bfa: PUSH1 0x40
00001bfc: MLOAD
00001bfd: PUSH3 0x461bcd
00001c01: PUSH1 0xe5
00001c03: SHL
00001c04: DUP2
00001c05: MSTORE
00001c06: PUSH1 0x04
00001c08: ADD
00001c09: PUSH2 0x0bb2
00001c0c: SWAP1
00001c0d: PUSH2 0x32b9
00001c10: JUMP
00001c11: JUMPDEST
00001c12: PUSH1 0x00
00001c14: CALLVALUE
00001c15: GT
00001c16: PUSH2 0x1c31
00001c19: JUMPI
00001c1a: PUSH1 0x40
00001c1c: MLOAD
00001c1d: PUSH3 0x461bcd
00001c21: PUSH1 0xe5
00001c23: SHL
00001c24: DUP2
00001c25: MSTORE
00001c26: PUSH1 0x04
00001c28: ADD
00001c29: PUSH2 0x0bb2
00001c2c: SWAP1
00001c2d: PUSH2 0x32d8
00001c30: JUMP
00001c31: JUMPDEST
00001c32: PUSH1 0x01
00001c34: PUSH1 0x01
00001c36: PUSH1 0xa0
00001c38: SHL
00001c39: SUB
00001c3a: DUP2
00001c3b: AND
00001c3c: PUSH2 0x1c73
00001c3f: JUMPI
00001c40: PUSH1 0x40
00001c42: MLOAD
00001c43: PUSH3 0x461bcd
00001c47: PUSH1 0xe5
00001c49: SHL
00001c4a: DUP2
00001c4b: MSTORE
00001c4c: PUSH1 0x20
00001c4e: PUSH1 0x04
00001c50: DUP3
00001c51: ADD
00001c52: MSTORE
00001c53: PUSH1 0x09
00001c55: PUSH1 0x24
00001c57: DUP3
00001c58: ADD
00001c59: MSTORE
00001c5a: PUSH9 0x10b1b932b234ba37b9
00001c64: PUSH1 0xb9
00001c66: SHL
00001c67: PUSH1 0x44
00001c69: DUP3
00001c6a: ADD
00001c6b: MSTORE
00001c6c: PUSH1 0x64
00001c6e: ADD
00001c6f: PUSH2 0x0bb2
00001c72: JUMP
00001c73: JUMPDEST
00001c74: PUSH2 0x19b8
00001c77: CALLVALUE
00001c78: DUP3
00001c79: PUSH2 0x2327
00001c7c: JUMP
00001c7d: JUMPDEST
00001c7e: PUSH2 0x1c85
00001c81: PUSH2 0x2155
00001c84: JUMP
00001c85: JUMPDEST
00001c86: PUSH1 0x10
00001c88: SLOAD
00001c89: PUSH1 0x01
00001c8b: PUSH1 0xa0
00001c8d: SHL
00001c8e: SWAP1
00001c8f: DIV
00001c90: PUSH1 0xff
00001c92: AND
00001c93: PUSH2 0x1cae
00001c96: JUMPI
00001c97: PUSH1 0x40
00001c99: MLOAD
00001c9a: PUSH3 0x461bcd
00001c9e: PUSH1 0xe5
00001ca0: SHL
00001ca1: DUP2
00001ca2: MSTORE
00001ca3: PUSH1 0x04
00001ca5: ADD
00001ca6: PUSH2 0x0bb2
00001ca9: SWAP1
00001caa: PUSH2 0x326c
00001cad: JUMP
00001cae: JUMPDEST
00001caf: PUSH1 0x0a
00001cb1: SLOAD
00001cb2: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00001cd3: PUSH1 0x01
00001cd5: PUSH1 0x01
00001cd7: PUSH1 0xa0
00001cd9: SHL
00001cda: SUB
00001cdb: SWAP1
00001cdc: DUP2
00001cdd: AND
00001cde: PUSH2 0x0100
00001ce1: SWAP1
00001ce2: SWAP3
00001ce3: DIV
00001ce4: AND
00001ce5: EQ
00001ce6: PUSH2 0x1d01
00001ce9: JUMPI
00001cea: PUSH1 0x40
00001cec: MLOAD
00001ced: PUSH3 0x461bcd
00001cf1: PUSH1 0xe5
00001cf3: SHL
00001cf4: DUP2
00001cf5: MSTORE
00001cf6: PUSH1 0x04
00001cf8: ADD
00001cf9: PUSH2 0x0bb2
00001cfc: SWAP1
00001cfd: PUSH2 0x32b9
00001d00: JUMP
00001d01: JUMPDEST
00001d02: PUSH1 0x00
00001d04: CALLVALUE
00001d05: GT
00001d06: PUSH2 0x1d21
00001d09: JUMPI
00001d0a: PUSH1 0x40
00001d0c: MLOAD
00001d0d: PUSH3 0x461bcd
00001d11: PUSH1 0xe5
00001d13: SHL
00001d14: DUP2
00001d15: MSTORE
00001d16: PUSH1 0x04
00001d18: ADD
00001d19: PUSH2 0x0bb2
00001d1c: SWAP1
00001d1d: PUSH2 0x32d8
00001d20: JUMP
00001d21: JUMPDEST
00001d22: PUSH2 0x1d2b
00001d25: CALLVALUE
00001d26: CALLER
00001d27: PUSH2 0x2327
00001d2a: JUMP
00001d2b: JUMPDEST
00001d2c: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00001d4d: PUSH1 0x01
00001d4f: PUSH1 0x01
00001d51: PUSH1 0xa0
00001d53: SHL
00001d54: SUB
00001d55: AND
00001d56: PUSH4 0xd0e30db0
00001d5b: CALLVALUE
00001d5c: PUSH1 0x40
00001d5e: MLOAD
00001d5f: DUP3
00001d60: PUSH4 0xffffffff
00001d65: AND
00001d66: PUSH1 0xe0
00001d68: SHL
00001d69: DUP2
00001d6a: MSTORE
00001d6b: PUSH1 0x04
00001d6d: ADD
00001d6e: PUSH1 0x00
00001d70: PUSH1 0x40
00001d72: MLOAD
00001d73: DUP1
00001d74: DUP4
00001d75: SUB
00001d76: DUP2
00001d77: DUP6
00001d78: DUP9
00001d79: DUP1
00001d7a: EXTCODESIZE
00001d7b: ISZERO
00001d7c: DUP1
00001d7d: ISZERO
00001d7e: PUSH2 0x1d86
00001d81: JUMPI
00001d82: PUSH1 0x00
00001d84: DUP1
00001d85: REVERT
00001d86: JUMPDEST
00001d87: POP
00001d88: GAS
00001d89: CALL
00001d8a: ISZERO
00001d8b: DUP1
00001d8c: ISZERO
00001d8d: PUSH2 0x1d9a
00001d90: JUMPI
00001d91: RETURNDATASIZE
00001d92: PUSH1 0x00
00001d94: DUP1
00001d95: RETURNDATACOPY
00001d96: RETURNDATASIZE
00001d97: PUSH1 0x00
00001d99: REVERT
00001d9a: JUMPDEST
00001d9b: POP
00001d9c: POP
00001d9d: POP
00001d9e: POP
00001d9f: POP
00001da0: PUSH2 0x13fc
00001da3: PUSH1 0x01
00001da5: PUSH1 0x00
00001da7: SSTORE
00001da8: JUMP
00001da9: JUMPDEST
00001daa: PUSH1 0x01
00001dac: PUSH1 0x01
00001dae: PUSH1 0xa0
00001db0: SHL
00001db1: SUB
00001db2: DUP2
00001db3: AND
00001db4: PUSH1 0x00
00001db6: SWAP1
00001db7: DUP2
00001db8: MSTORE
00001db9: PUSH1 0x07
00001dbb: PUSH1 0x20
00001dbd: SWAP1
00001dbe: DUP2
00001dbf: MSTORE
00001dc0: PUSH1 0x40
00001dc2: DUP1
00001dc3: DUP4
00001dc4: KECCAK256
00001dc5: DUP2
00001dc6: MLOAD
00001dc7: PUSH1 0x60
00001dc9: DUP2
00001dca: ADD
00001dcb: DUP4
00001dcc: MSTORE
00001dcd: SWAP1
00001dce: SLOAD
00001dcf: PUSH2 0xffff
00001dd2: DUP2
00001dd3: AND
00001dd4: DUP1
00001dd5: DUP4
00001dd6: MSTORE
00001dd7: PUSH3 0x010000
00001ddb: DUP3
00001ddc: DIV
00001ddd: PUSH1 0x01
00001ddf: PUSH1 0x01
00001de1: PUSH1 0x68
00001de3: SHL
00001de4: SUB
00001de5: AND
00001de6: SWAP5
00001de7: DUP4
00001de8: ADD
00001de9: SWAP5
00001dea: SWAP1
00001deb: SWAP5
00001dec: MSTORE
00001ded: PUSH1 0x01
00001def: PUSH1 0x78
00001df1: SHL
00001df2: SWAP1
00001df3: DIV
00001df4: PUSH1 0x01
00001df6: PUSH1 0x01
00001df8: PUSH1 0x80
00001dfa: SHL
00001dfb: SUB
00001dfc: AND
00001dfd: SWAP2
00001dfe: DUP2
00001dff: ADD
00001e00: SWAP2
00001e01: SWAP1
00001e02: SWAP2
00001e03: MSTORE
00001e04: DUP3
00001e05: SWAP2
00001e06: PUSH1 0x01
00001e08: GT
00001e09: ISZERO
00001e0a: PUSH2 0x1e2b
00001e0d: JUMPI
00001e0e: POP
00001e0f: POP
00001e10: POP
00001e11: PUSH1 0x01
00001e13: PUSH1 0x01
00001e15: PUSH1 0xa0
00001e17: SHL
00001e18: SUB
00001e19: AND
00001e1a: PUSH1 0x00
00001e1c: SWAP1
00001e1d: DUP2
00001e1e: MSTORE
00001e1f: PUSH1 0x01
00001e21: PUSH1 0x20
00001e23: MSTORE
00001e24: PUSH1 0x40
00001e26: DUP2
00001e27: KECCAK256
00001e28: SLOAD
00001e29: SWAP2
00001e2a: JUMP
00001e2b: JUMPDEST
00001e2c: PUSH1 0x0c
00001e2e: SLOAD
00001e2f: DUP2
00001e30: MLOAD
00001e31: PUSH2 0xffff
00001e34: SWAP1
00001e35: DUP2
00001e36: AND
00001e37: PUSH1 0x00
00001e39: SWAP1
00001e3a: DUP2
00001e3b: MSTORE
00001e3c: PUSH1 0x08
00001e3e: PUSH1 0x20
00001e40: MSTORE
00001e41: PUSH1 0x40
00001e43: DUP2
00001e44: KECCAK256
00001e45: SLOAD
00001e46: PUSH1 0x0a
00001e48: SLOAD
00001e49: SWAP2
00001e4a: SWAP4
00001e4b: PUSH2 0x1e5c
00001e4e: SWAP4
00001e4f: DUP7
00001e50: SWAP4
00001e51: SWAP2
00001e52: AND
00001e53: SWAP2
00001e54: SWAP1
00001e55: PUSH1 0xff
00001e57: AND
00001e58: PUSH2 0x2a53
00001e5b: JUMP
00001e5c: JUMPDEST
00001e5d: SWAP1
00001e5e: POP
00001e5f: PUSH2 0x1e7d
00001e62: DUP6
00001e63: PUSH1 0x01
00001e65: PUSH1 0x01
00001e67: PUSH1 0xa0
00001e69: SHL
00001e6a: SUB
00001e6b: AND
00001e6c: PUSH1 0x00
00001e6e: SWAP1
00001e6f: DUP2
00001e70: MSTORE
00001e71: PUSH1 0x01
00001e73: PUSH1 0x20
00001e75: MSTORE
00001e76: PUSH1 0x40
00001e78: SWAP1
00001e79: KECCAK256
00001e7a: SLOAD
00001e7b: SWAP1
00001e7c: JUMP
00001e7d: JUMPDEST
00001e7e: SWAP6
00001e7f: SWAP1
00001e80: SWAP5
00001e81: POP
00001e82: SWAP3
00001e83: POP
00001e84: POP
00001e85: POP
00001e86: JUMP
00001e87: JUMPDEST
00001e88: PUSH2 0x1e8f
00001e8b: PUSH2 0x2155
00001e8e: JUMP
00001e8f: JUMPDEST
00001e90: CALLER
00001e91: PUSH1 0x00
00001e93: SWAP1
00001e94: DUP2
00001e95: MSTORE
00001e96: PUSH1 0x09
00001e98: PUSH1 0x20
00001e9a: MSTORE
00001e9b: PUSH1 0x40
00001e9d: SWAP1
00001e9e: KECCAK256
00001e9f: DUP1
00001ea0: SLOAD
00001ea1: PUSH1 0x01
00001ea3: PUSH1 0x01
00001ea5: PUSH1 0x80
00001ea7: SHL
00001ea8: SUB
00001ea9: PUSH3 0x010000
00001ead: DUP3
00001eae: DIV
00001eaf: AND
00001eb0: SWAP1
00001eb1: PUSH2 0xffff
00001eb4: AND
00001eb5: DUP2
00001eb6: PUSH2 0x1ef1
00001eb9: JUMPI
00001eba: PUSH1 0x40
00001ebc: MLOAD
00001ebd: PUSH3 0x461bcd
00001ec1: PUSH1 0xe5
00001ec3: SHL
00001ec4: DUP2
00001ec5: MSTORE
00001ec6: PUSH1 0x20
00001ec8: PUSH1 0x04
00001eca: DUP3
00001ecb: ADD
00001ecc: MSTORE
00001ecd: PUSH1 0x0d
00001ecf: PUSH1 0x24
00001ed1: DUP3
00001ed2: ADD
00001ed3: MSTORE
00001ed4: PUSH13 0x139bdd081a5b9a5d1a585d1959
00001ee2: PUSH1 0x9a
00001ee4: SHL
00001ee5: PUSH1 0x44
00001ee7: DUP3
00001ee8: ADD
00001ee9: MSTORE
00001eea: PUSH1 0x64
00001eec: ADD
00001eed: PUSH2 0x0bb2
00001ef0: JUMP
00001ef1: JUMPDEST
00001ef2: PUSH1 0x0c
00001ef4: SLOAD
00001ef5: PUSH2 0xffff
00001ef8: AND
00001ef9: DUP2
00001efa: LT
00001efb: PUSH2 0x1f39
00001efe: JUMPI
00001eff: PUSH1 0x40
00001f01: MLOAD
00001f02: PUSH3 0x461bcd
00001f06: PUSH1 0xe5
00001f08: SHL
00001f09: DUP2
00001f0a: MSTORE
00001f0b: PUSH1 0x20
00001f0d: PUSH1 0x04
00001f0f: DUP3
00001f10: ADD
00001f11: MSTORE
00001f12: PUSH1 0x10
00001f14: PUSH1 0x24
00001f16: DUP3
00001f17: ADD
00001f18: MSTORE
00001f19: PUSH16 0x149bdd5b99081b9bdd0818db1bdcd959
00001f2a: PUSH1 0x82
00001f2c: SHL
00001f2d: PUSH1 0x44
00001f2f: DUP3
00001f30: ADD
00001f31: MSTORE
00001f32: PUSH1 0x64
00001f34: ADD
00001f35: PUSH2 0x0bb2
00001f38: JUMP
00001f39: JUMPDEST
00001f3a: CALLER
00001f3b: PUSH1 0x00
00001f3d: SWAP1
00001f3e: DUP2
00001f3f: MSTORE
00001f40: PUSH1 0x09
00001f42: PUSH1 0x20
00001f44: MSTORE
00001f45: PUSH1 0x40
00001f47: SWAP1
00001f48: KECCAK256
00001f49: DUP1
00001f4a: SLOAD
00001f4b: PUSH3 0x010000
00001f4f: PUSH1 0x01
00001f51: PUSH1 0x90
00001f53: SHL
00001f54: SUB
00001f55: NOT
00001f56: AND
00001f57: SWAP1
00001f58: SSTORE
00001f59: PUSH1 0x0d
00001f5b: SLOAD
00001f5c: PUSH2 0x1f76
00001f5f: SWAP1
00001f60: DUP4
00001f61: SWAP1
00001f62: PUSH1 0x01
00001f64: PUSH1 0x80
00001f66: SHL
00001f67: SWAP1
00001f68: DIV
00001f69: PUSH1 0x01
00001f6b: PUSH1 0x01
00001f6d: PUSH1 0x80
00001f6f: SHL
00001f70: SUB
00001f71: AND
00001f72: PUSH2 0x3259
00001f75: JUMP
00001f76: JUMPDEST
00001f77: PUSH1 0x0d
00001f79: DUP1
00001f7a: SLOAD
00001f7b: PUSH1 0x01
00001f7d: PUSH1 0x01
00001f7f: PUSH1 0x80
00001f81: SHL
00001f82: SUB
00001f83: SWAP3
00001f84: DUP4
00001f85: AND
00001f86: PUSH1 0x01
00001f88: PUSH1 0x80
00001f8a: SHL
00001f8b: MUL
00001f8c: SWAP3
00001f8d: AND
00001f8e: SWAP2
00001f8f: SWAP1
00001f90: SWAP2
00001f91: OR
00001f92: SWAP1
00001f93: SSTORE
00001f94: PUSH1 0x00
00001f96: DUP2
00001f97: DUP2
00001f98: MSTORE
00001f99: PUSH1 0x08
00001f9b: PUSH1 0x20
00001f9d: MSTORE
00001f9e: PUSH1 0x40
00001fa0: DUP2
00001fa1: KECCAK256
00001fa2: SLOAD
00001fa3: PUSH1 0x0a
00001fa5: SLOAD
00001fa6: PUSH2 0x1fb3
00001fa9: SWAP2
00001faa: DUP6
00001fab: SWAP2
00001fac: PUSH1 0xff
00001fae: AND
00001faf: PUSH2 0x2703
00001fb2: JUMP
00001fb3: JUMPDEST
00001fb4: PUSH1 0x40
00001fb6: DUP1
00001fb7: MLOAD
00001fb8: DUP3
00001fb9: DUP2
00001fba: MSTORE
00001fbb: PUSH1 0x20
00001fbd: DUP2
00001fbe: ADD
00001fbf: DUP7
00001fc0: SWAP1
00001fc1: MSTORE
00001fc2: SWAP2
00001fc3: SWAP3
00001fc4: POP
00001fc5: CALLER
00001fc6: SWAP2
00001fc7: PUSH32 0xf279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568
00001fe8: SWAP2
00001fe9: ADD
00001fea: PUSH1 0x40
00001fec: MLOAD
00001fed: DUP1
00001fee: SWAP2
00001fef: SUB
00001ff0: SWAP1
00001ff1: LOG2
00001ff2: PUSH2 0x1ffb
00001ff5: ADDRESS
00001ff6: DUP5
00001ff7: PUSH2 0x2ac4
00001ffa: JUMP
00001ffb: JUMPDEST
00001ffc: PUSH1 0x00
00001ffe: DUP2
00001fff: GT
00002000: PUSH2 0x203d
00002003: JUMPI
00002004: PUSH1 0x40
00002006: MLOAD
00002007: PUSH3 0x461bcd
0000200b: PUSH1 0xe5
0000200d: SHL
0000200e: DUP2
0000200f: MSTORE
00002010: PUSH1 0x20
00002012: PUSH1 0x04
00002014: DUP3
00002015: ADD
00002016: MSTORE
00002017: PUSH1 0x0f
00002019: PUSH1 0x24
0000201b: DUP3
0000201c: ADD
0000201d: MSTORE
0000201e: PUSH15 0x085dda5d1a191c985dd05b5bdd5b9d
0000202e: PUSH1 0x8a
00002030: SHL
00002031: PUSH1 0x44
00002033: DUP3
00002034: ADD
00002035: MSTORE
00002036: PUSH1 0x64
00002038: ADD
00002039: PUSH2 0x0bb2
0000203c: JUMP
0000203d: JUMPDEST
0000203e: PUSH2 0x2047
00002041: CALLER
00002042: DUP3
00002043: PUSH2 0x217f
00002046: JUMP
00002047: JUMPDEST
00002048: DUP1
00002049: PUSH1 0x0e
0000204b: SLOAD
0000204c: PUSH2 0x2055
0000204f: SWAP2
00002050: SWAP1
00002051: PUSH2 0x3259
00002054: JUMP
00002055: JUMPDEST
00002056: PUSH1 0x0e
00002058: SSTORE
00002059: POP
0000205a: PUSH2 0x13fc
0000205d: SWAP3
0000205e: POP
0000205f: PUSH2 0x22de
00002062: SWAP2
00002063: POP
00002064: POP
00002065: JUMP
00002066: JUMPDEST
00002067: PUSH2 0x2073
0000206a: DUP4
0000206b: DUP4
0000206c: DUP4
0000206d: PUSH1 0x01
0000206f: PUSH2 0x2afa
00002072: JUMP
00002073: JUMPDEST
00002074: POP
00002075: POP
00002076: POP
00002077: JUMP
00002078: JUMPDEST
00002079: PUSH1 0x01
0000207b: PUSH1 0x01
0000207d: PUSH1 0xa0
0000207f: SHL
00002080: SUB
00002081: DUP4
00002082: DUP2
00002083: AND
00002084: PUSH1 0x00
00002086: SWAP1
00002087: DUP2
00002088: MSTORE
00002089: PUSH1 0x02
0000208b: PUSH1 0x20
0000208d: SWAP1
0000208e: DUP2
0000208f: MSTORE
00002090: PUSH1 0x40
00002092: DUP1
00002093: DUP4
00002094: KECCAK256
00002095: SWAP4
00002096: DUP7
00002097: AND
00002098: DUP4
00002099: MSTORE
0000209a: SWAP3
0000209b: SWAP1
0000209c: MSTORE
0000209d: KECCAK256
0000209e: SLOAD
0000209f: PUSH1 0x00
000020a1: NOT
000020a2: DUP2
000020a3: EQ
000020a4: PUSH2 0x20f0
000020a7: JUMPI
000020a8: DUP2
000020a9: DUP2
000020aa: LT
000020ab: ISZERO
000020ac: PUSH2 0x20e1
000020af: JUMPI
000020b0: PUSH1 0x40
000020b2: MLOAD
000020b3: PUSH4 0x7dc7a0d9
000020b8: PUSH1 0xe1
000020ba: SHL
000020bb: DUP2
000020bc: MSTORE
000020bd: PUSH1 0x01
000020bf: PUSH1 0x01
000020c1: PUSH1 0xa0
000020c3: SHL
000020c4: SUB
000020c5: DUP5
000020c6: AND
000020c7: PUSH1 0x04
000020c9: DUP3
000020ca: ADD
000020cb: MSTORE
000020cc: PUSH1 0x24
000020ce: DUP2
000020cf: ADD
000020d0: DUP3
000020d1: SWAP1
000020d2: MSTORE
000020d3: PUSH1 0x44
000020d5: DUP2
000020d6: ADD
000020d7: DUP4
000020d8: SWAP1
000020d9: MSTORE
000020da: PUSH1 0x64
000020dc: ADD
000020dd: PUSH2 0x0bb2
000020e0: JUMP
000020e1: JUMPDEST
000020e2: PUSH2 0x20f0
000020e5: DUP5
000020e6: DUP5
000020e7: DUP5
000020e8: DUP5
000020e9: SUB
000020ea: PUSH1 0x00
000020ec: PUSH2 0x2afa
000020ef: JUMP
000020f0: JUMPDEST
000020f1: POP
000020f2: POP
000020f3: POP
000020f4: POP
000020f5: JUMP
000020f6: JUMPDEST
000020f7: PUSH1 0x01
000020f9: PUSH1 0x01
000020fb: PUSH1 0xa0
000020fd: SHL
000020fe: SUB
000020ff: DUP4
00002100: AND
00002101: PUSH2 0x2120
00002104: JUMPI
00002105: PUSH1 0x40
00002107: MLOAD
00002108: PUSH4 0x4b637e8f
0000210d: PUSH1 0xe1
0000210f: SHL
00002110: DUP2
00002111: MSTORE
00002112: PUSH1 0x00
00002114: PUSH1 0x04
00002116: DUP3
00002117: ADD
00002118: MSTORE
00002119: PUSH1 0x24
0000211b: ADD
0000211c: PUSH2 0x0bb2
0000211f: JUMP
00002120: JUMPDEST
00002121: PUSH1 0x01
00002123: PUSH1 0x01
00002125: PUSH1 0xa0
00002127: SHL
00002128: SUB
00002129: DUP3
0000212a: AND
0000212b: PUSH2 0x214a
0000212e: JUMPI
0000212f: PUSH1 0x40
00002131: MLOAD
00002132: PUSH4 0xec442f05
00002137: PUSH1 0xe0
00002139: SHL
0000213a: DUP2
0000213b: MSTORE
0000213c: PUSH1 0x00
0000213e: PUSH1 0x04
00002140: DUP3
00002141: ADD
00002142: MSTORE
00002143: PUSH1 0x24
00002145: ADD
00002146: PUSH2 0x0bb2
00002149: JUMP
0000214a: JUMPDEST
0000214b: PUSH2 0x2073
0000214e: DUP4
0000214f: DUP4
00002150: DUP4
00002151: PUSH2 0x2bcf
00002154: JUMP
00002155: JUMPDEST
00002156: PUSH1 0x02
00002158: PUSH1 0x00
0000215a: SLOAD
0000215b: SUB
0000215c: PUSH2 0x2178
0000215f: JUMPI
00002160: PUSH1 0x40
00002162: MLOAD
00002163: PUSH4 0x3ee5aeb5
00002168: PUSH1 0xe0
0000216a: SHL
0000216b: DUP2
0000216c: MSTORE
0000216d: PUSH1 0x04
0000216f: ADD
00002170: PUSH1 0x40
00002172: MLOAD
00002173: DUP1
00002174: SWAP2
00002175: SUB
00002176: SWAP1
00002177: REVERT
00002178: JUMPDEST
00002179: PUSH1 0x02
0000217b: PUSH1 0x00
0000217d: SSTORE
0000217e: JUMP
0000217f: JUMPDEST
00002180: PUSH1 0x0a
00002182: SLOAD
00002183: PUSH1 0x01
00002185: PUSH1 0x01
00002187: PUSH1 0xa0
00002189: SHL
0000218a: SUB
0000218b: PUSH2 0x0100
0000218e: SWAP1
0000218f: SWAP2
00002190: DIV
00002191: DUP2
00002192: AND
00002193: SWAP1
00002194: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
000021b5: AND
000021b6: DUP2
000021b7: SUB
000021b8: PUSH2 0x22ca
000021bb: JUMPI
000021bc: PUSH1 0x40
000021be: MLOAD
000021bf: PUSH4 0x2e1a7d4d
000021c4: PUSH1 0xe0
000021c6: SHL
000021c7: DUP2
000021c8: MSTORE
000021c9: PUSH1 0x04
000021cb: DUP2
000021cc: ADD
000021cd: DUP4
000021ce: SWAP1
000021cf: MSTORE
000021d0: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
000021f1: PUSH1 0x01
000021f3: PUSH1 0x01
000021f5: PUSH1 0xa0
000021f7: SHL
000021f8: SUB
000021f9: AND
000021fa: SWAP1
000021fb: PUSH4 0x2e1a7d4d
00002200: SWAP1
00002201: PUSH1 0x24
00002203: ADD
00002204: PUSH1 0x00
00002206: PUSH1 0x40
00002208: MLOAD
00002209: DUP1
0000220a: DUP4
0000220b: SUB
0000220c: DUP2
0000220d: PUSH1 0x00
0000220f: DUP8
00002210: DUP1
00002211: EXTCODESIZE
00002212: ISZERO
00002213: DUP1
00002214: ISZERO
00002215: PUSH2 0x221d
00002218: JUMPI
00002219: PUSH1 0x00
0000221b: DUP1
0000221c: REVERT
0000221d: JUMPDEST
0000221e: POP
0000221f: GAS
00002220: CALL
00002221: ISZERO
00002222: DUP1
00002223: ISZERO
00002224: PUSH2 0x2231
00002227: JUMPI
00002228: RETURNDATASIZE
00002229: PUSH1 0x00
0000222b: DUP1
0000222c: RETURNDATACOPY
0000222d: RETURNDATASIZE
0000222e: PUSH1 0x00
00002230: REVERT
00002231: JUMPDEST
00002232: POP
00002233: POP
00002234: POP
00002235: POP
00002236: PUSH1 0x00
00002238: DUP4
00002239: PUSH1 0x01
0000223b: PUSH1 0x01
0000223d: PUSH1 0xa0
0000223f: SHL
00002240: SUB
00002241: AND
00002242: DUP4
00002243: PUSH1 0x40
00002245: MLOAD
00002246: PUSH1 0x00
00002248: PUSH1 0x40
0000224a: MLOAD
0000224b: DUP1
0000224c: DUP4
0000224d: SUB
0000224e: DUP2
0000224f: DUP6
00002250: DUP8
00002251: GAS
00002252: CALL
00002253: SWAP3
00002254: POP
00002255: POP
00002256: POP
00002257: RETURNDATASIZE
00002258: DUP1
00002259: PUSH1 0x00
0000225b: DUP2
0000225c: EQ
0000225d: PUSH2 0x2282
00002260: JUMPI
00002261: PUSH1 0x40
00002263: MLOAD
00002264: SWAP2
00002265: POP
00002266: PUSH1 0x1f
00002268: NOT
00002269: PUSH1 0x3f
0000226b: RETURNDATASIZE
0000226c: ADD
0000226d: AND
0000226e: DUP3
0000226f: ADD
00002270: PUSH1 0x40
00002272: MSTORE
00002273: RETURNDATASIZE
00002274: DUP3
00002275: MSTORE
00002276: RETURNDATASIZE
00002277: PUSH1 0x00
00002279: PUSH1 0x20
0000227b: DUP5
0000227c: ADD
0000227d: RETURNDATACOPY
0000227e: PUSH2 0x2287
00002281: JUMP
00002282: JUMPDEST
00002283: PUSH1 0x60
00002285: SWAP2
00002286: POP
00002287: JUMPDEST
00002288: POP
00002289: POP
0000228a: SWAP1
0000228b: POP
0000228c: DUP1
0000228d: PUSH2 0x20f0
00002290: JUMPI
00002291: PUSH1 0x40
00002293: MLOAD
00002294: PUSH3 0x461bcd
00002298: PUSH1 0xe5
0000229a: SHL
0000229b: DUP2
0000229c: MSTORE
0000229d: PUSH1 0x20
0000229f: PUSH1 0x04
000022a1: DUP3
000022a2: ADD
000022a3: MSTORE
000022a4: PUSH1 0x0f
000022a6: PUSH1 0x24
000022a8: DUP3
000022a9: ADD
000022aa: MSTORE
000022ab: PUSH15 0x151c985b9cd9995c8819985a5b1959
000022bb: PUSH1 0x8a
000022bd: SHL
000022be: PUSH1 0x44
000022c0: DUP3
000022c1: ADD
000022c2: MSTORE
000022c3: PUSH1 0x64
000022c5: ADD
000022c6: PUSH2 0x0bb2
000022c9: JUMP
000022ca: JUMPDEST
000022cb: PUSH2 0x2073
000022ce: PUSH1 0x01
000022d0: PUSH1 0x01
000022d2: PUSH1 0xa0
000022d4: SHL
000022d5: SUB
000022d6: DUP3
000022d7: AND
000022d8: DUP5
000022d9: DUP5
000022da: PUSH2 0x27f6
000022dd: JUMP
000022de: JUMPDEST
000022df: PUSH1 0x01
000022e1: PUSH1 0x00
000022e3: SSTORE
000022e4: JUMP
000022e5: JUMPDEST
000022e6: PUSH1 0x00
000022e8: DUP4
000022e9: MLOAD
000022ea: ISZERO
000022eb: PUSH2 0x2320
000022ee: JUMPI
000022ef: PUSH1 0x20
000022f1: DUP5
000022f2: ADD
000022f3: DUP5
000022f4: MLOAD
000022f5: PUSH1 0x05
000022f7: SHL
000022f8: DUP2
000022f9: ADD
000022fa: JUMPDEST
000022fb: DUP2
000022fc: MLOAD
000022fd: DUP5
000022fe: GT
000022ff: PUSH1 0x05
00002301: SHL
00002302: SWAP4
00002303: DUP5
00002304: MSTORE
00002305: DUP2
00002306: MLOAD
00002307: PUSH1 0x20
00002309: SWAP5
0000230a: DUP6
0000230b: XOR
0000230c: MSTORE
0000230d: PUSH1 0x40
0000230f: PUSH1 0x00
00002311: KECCAK256
00002312: SWAP4
00002313: SWAP1
00002314: SWAP2
00002315: ADD
00002316: SWAP1
00002317: DUP1
00002318: DUP3
00002319: LT
0000231a: PUSH2 0x22fa
0000231d: JUMPI
0000231e: POP
0000231f: POP
00002320: JUMPDEST
00002321: POP
00002322: EQ
00002323: SWAP2
00002324: SWAP1
00002325: POP
00002326: JUMP
00002327: JUMPDEST
00002328: PUSH1 0x0c
0000232a: SLOAD
0000232b: PUSH2 0xffff
0000232e: AND
0000232f: PUSH1 0x00
00002331: DUP4
00002332: PUSH2 0x2339
00002335: PUSH2 0x1678
00002338: JUMP
00002339: JUMPDEST
0000233a: PUSH2 0x2343
0000233d: SWAP2
0000233e: SWAP1
0000233f: PUSH2 0x328d
00002342: JUMP
00002343: JUMPDEST
00002344: PUSH1 0x0b
00002346: SLOAD
00002347: SWAP1
00002348: SWAP2
00002349: POP
0000234a: PUSH1 0x01
0000234c: PUSH1 0x01
0000234e: PUSH1 0x68
00002350: SHL
00002351: SUB
00002352: AND
00002353: DUP2
00002354: GT
00002355: ISZERO
00002356: PUSH2 0x238e
00002359: JUMPI
0000235a: PUSH1 0x40
0000235c: MLOAD
0000235d: PUSH3 0x461bcd
00002361: PUSH1 0xe5
00002363: SHL
00002364: DUP2
00002365: MSTORE
00002366: PUSH1 0x20
00002368: PUSH1 0x04
0000236a: DUP3
0000236b: ADD
0000236c: MSTORE
0000236d: PUSH1 0x0a
0000236f: PUSH1 0x24
00002371: DUP3
00002372: ADD
00002373: MSTORE
00002374: PUSH10 0x04578636565642063617
0000237f: PUSH1 0xb4
00002381: SHL
00002382: PUSH1 0x44
00002384: DUP3
00002385: ADD
00002386: MSTORE
00002387: PUSH1 0x64
00002389: ADD
0000238a: PUSH2 0x0bb2
0000238d: JUMP
0000238e: JUMPDEST
0000238f: PUSH1 0x0a
00002391: SLOAD
00002392: PUSH1 0x01
00002394: PUSH1 0xa8
00002396: SHL
00002397: SWAP1
00002398: DIV
00002399: PUSH7 0xffffffffffffff
000023a1: AND
000023a2: DUP2
000023a3: LT
000023a4: ISZERO
000023a5: PUSH2 0x23e7
000023a8: JUMPI
000023a9: PUSH1 0x40
000023ab: MLOAD
000023ac: PUSH3 0x461bcd
000023b0: PUSH1 0xe5
000023b2: SHL
000023b3: DUP2
000023b4: MSTORE
000023b5: PUSH1 0x20
000023b7: PUSH1 0x04
000023b9: DUP3
000023ba: ADD
000023bb: MSTORE
000023bc: PUSH1 0x14
000023be: PUSH1 0x24
000023c0: DUP3
000023c1: ADD
000023c2: MSTORE
000023c3: PUSH20 0x496e73756666696369656e742062616c616e6365
000023d8: PUSH1 0x60
000023da: SHL
000023db: PUSH1 0x44
000023dd: DUP3
000023de: ADD
000023df: MSTORE
000023e0: PUSH1 0x64
000023e2: ADD
000023e3: PUSH2 0x0bb2
000023e6: JUMP
000023e7: JUMPDEST
000023e8: PUSH1 0x40
000023ea: DUP1
000023eb: MLOAD
000023ec: DUP6
000023ed: DUP2
000023ee: MSTORE
000023ef: PUSH1 0x20
000023f1: DUP2
000023f2: ADD
000023f3: DUP5
000023f4: SWAP1
000023f5: MSTORE
000023f6: PUSH1 0x01
000023f8: PUSH1 0x01
000023fa: PUSH1 0xa0
000023fc: SHL
000023fd: SUB
000023fe: DUP6
000023ff: AND
00002400: SWAP2
00002401: PUSH32 0x90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15
00002422: SWAP2
00002423: ADD
00002424: PUSH1 0x40
00002426: MLOAD
00002427: DUP1
00002428: SWAP2
00002429: SUB
0000242a: SWAP1
0000242b: LOG2
0000242c: PUSH1 0x01
0000242e: PUSH1 0x01
00002430: PUSH1 0xa0
00002432: SHL
00002433: SUB
00002434: DUP4
00002435: AND
00002436: PUSH1 0x00
00002438: SWAP1
00002439: DUP2
0000243a: MSTORE
0000243b: PUSH1 0x07
0000243d: PUSH1 0x20
0000243f: SWAP1
00002440: DUP2
00002441: MSTORE
00002442: PUSH1 0x40
00002444: DUP1
00002445: DUP4
00002446: KECCAK256
00002447: DUP2
00002448: MLOAD
00002449: PUSH1 0x60
0000244b: DUP2
0000244c: ADD
0000244d: DUP4
0000244e: MSTORE
0000244f: SWAP1
00002450: SLOAD
00002451: PUSH2 0xffff
00002454: DUP2
00002455: AND
00002456: DUP1
00002457: DUP4
00002458: MSTORE
00002459: PUSH3 0x010000
0000245d: DUP3
0000245e: DIV
0000245f: PUSH1 0x01
00002461: PUSH1 0x01
00002463: PUSH1 0x68
00002465: SHL
00002466: SUB
00002467: AND
00002468: DUP4
00002469: DUP7
0000246a: ADD
0000246b: MSTORE
0000246c: PUSH1 0x01
0000246e: PUSH1 0x78
00002470: SHL
00002471: SWAP1
00002472: SWAP2
00002473: DIV
00002474: PUSH1 0x01
00002476: PUSH1 0x01
00002478: PUSH1 0x80
0000247a: SHL
0000247b: SUB
0000247c: AND
0000247d: DUP3
0000247e: DUP5
0000247f: ADD
00002480: MSTORE
00002481: DUP5
00002482: MSTORE
00002483: PUSH1 0x08
00002485: SWAP1
00002486: SWAP3
00002487: MSTORE
00002488: DUP3
00002489: KECCAK256
0000248a: SLOAD
0000248b: PUSH1 0x0a
0000248d: SLOAD
0000248e: SWAP2
0000248f: SWAP3
00002490: SWAP2
00002491: PUSH2 0x24a1
00002494: SWAP2
00002495: DUP5
00002496: SWAP2
00002497: DUP8
00002498: SWAP2
00002499: SWAP1
0000249a: PUSH1 0xff
0000249c: AND
0000249d: PUSH2 0x2a53
000024a0: JUMP
000024a1: JUMPDEST
000024a2: DUP3
000024a3: MLOAD
000024a4: SWAP1
000024a5: SWAP2
000024a6: POP
000024a7: DUP7
000024a8: SWAP1
000024a9: PUSH2 0xffff
000024ac: AND
000024ad: DUP6
000024ae: SUB
000024af: PUSH2 0x24d1
000024b2: JUMPI
000024b3: PUSH1 0x00
000024b5: DUP8
000024b6: DUP5
000024b7: PUSH1 0x20
000024b9: ADD
000024ba: MLOAD
000024bb: PUSH1 0x01
000024bd: PUSH1 0x01
000024bf: PUSH1 0x68
000024c1: SHL
000024c2: SUB
000024c3: AND
000024c4: PUSH2 0x24cd
000024c7: SWAP2
000024c8: SWAP1
000024c9: PUSH2 0x328d
000024cc: JUMP
000024cd: JUMPDEST
000024ce: SWAP2
000024cf: POP
000024d0: POP
000024d1: JUMPDEST
000024d2: PUSH2 0x24da
000024d5: DUP2
000024d6: PUSH2 0x27ac
000024d9: JUMP
000024da: JUMPDEST
000024db: PUSH1 0x40
000024dd: DUP1
000024de: MLOAD
000024df: PUSH1 0x60
000024e1: DUP2
000024e2: ADD
000024e3: DUP3
000024e4: MSTORE
000024e5: PUSH2 0xffff
000024e8: DUP1
000024e9: DUP9
000024ea: AND
000024eb: DUP3
000024ec: MSTORE
000024ed: PUSH1 0x01
000024ef: PUSH1 0x01
000024f1: PUSH1 0x68
000024f3: SHL
000024f4: SUB
000024f5: DUP1
000024f6: DUP6
000024f7: AND
000024f8: PUSH1 0x20
000024fa: DUP1
000024fb: DUP6
000024fc: ADD
000024fd: SWAP2
000024fe: DUP3
000024ff: MSTORE
00002500: PUSH1 0x01
00002502: PUSH1 0x01
00002504: PUSH1 0x80
00002506: SHL
00002507: SUB
00002508: DUP1
00002509: DUP10
0000250a: AND
0000250b: DUP7
0000250c: DUP9
0000250d: ADD
0000250e: SWAP1
0000250f: DUP2
00002510: MSTORE
00002511: PUSH1 0x01
00002513: PUSH1 0x01
00002515: PUSH1 0xa0
00002517: SHL
00002518: SUB
00002519: DUP15
0000251a: AND
0000251b: PUSH1 0x00
0000251d: SWAP1
0000251e: DUP2
0000251f: MSTORE
00002520: PUSH1 0x07
00002522: SWAP1
00002523: SWAP4
00002524: MSTORE
00002525: SWAP7
00002526: DUP3
00002527: KECCAK256
00002528: SWAP6
00002529: MLOAD
0000252a: DUP7
0000252b: SLOAD
0000252c: SWAP4
0000252d: MLOAD
0000252e: SWAP8
0000252f: MLOAD
00002530: DUP3
00002531: AND
00002532: PUSH1 0x01
00002534: PUSH1 0x78
00002536: SHL
00002537: MUL
00002538: PUSH1 0x01
0000253a: PUSH1 0x78
0000253c: SHL
0000253d: PUSH1 0x01
0000253f: PUSH1 0xf8
00002541: SHL
00002542: SUB
00002543: NOT
00002544: SWAP9
00002545: SWAP1
00002546: SWAP6
00002547: AND
00002548: PUSH3 0x010000
0000254c: MUL
0000254d: PUSH15 0xffffffffffffffffffffffffffffff
0000255d: NOT
0000255e: SWAP1
0000255f: SWAP5
00002560: AND
00002561: SWAP6
00002562: AND
00002563: SWAP5
00002564: SWAP1
00002565: SWAP5
00002566: OR
00002567: SWAP2
00002568: SWAP1
00002569: SWAP2
0000256a: OR
0000256b: SWAP5
0000256c: SWAP1
0000256d: SWAP5
0000256e: AND
0000256f: OR
00002570: SWAP1
00002571: SWAP2
00002572: SSTORE
00002573: PUSH1 0x0d
00002575: SLOAD
00002576: PUSH2 0x2581
00002579: SWAP2
0000257a: DUP11
0000257b: SWAP2
0000257c: AND
0000257d: PUSH2 0x328d
00002580: JUMP
00002581: JUMPDEST
00002582: SWAP1
00002583: POP
00002584: PUSH2 0x258c
00002587: DUP2
00002588: PUSH2 0x2762
0000258b: JUMP
0000258c: JUMPDEST
0000258d: PUSH1 0x0d
0000258f: DUP1
00002590: SLOAD
00002591: PUSH1 0x01
00002593: PUSH1 0x01
00002595: PUSH1 0x80
00002597: SHL
00002598: SUB
00002599: NOT
0000259a: AND
0000259b: PUSH1 0x01
0000259d: PUSH1 0x01
0000259f: PUSH1 0x80
000025a1: SHL
000025a2: SUB
000025a3: SWAP3
000025a4: SWAP1
000025a5: SWAP3
000025a6: AND
000025a7: SWAP2
000025a8: SWAP1
000025a9: SWAP2
000025aa: OR
000025ab: SWAP1
000025ac: SSTORE
000025ad: POP
000025ae: POP
000025af: POP
000025b0: POP
000025b1: POP
000025b2: POP
000025b3: POP
000025b4: JUMP
000025b5: JUMPDEST
000025b6: PUSH1 0x40
000025b8: MLOAD
000025b9: PUSH1 0x01
000025bb: PUSH1 0x01
000025bd: PUSH1 0xa0
000025bf: SHL
000025c0: SUB
000025c1: DUP5
000025c2: DUP2
000025c3: AND
000025c4: PUSH1 0x24
000025c6: DUP4
000025c7: ADD
000025c8: MSTORE
000025c9: DUP4
000025ca: DUP2
000025cb: AND
000025cc: PUSH1 0x44
000025ce: DUP4
000025cf: ADD
000025d0: MSTORE
000025d1: PUSH1 0x64
000025d3: DUP3
000025d4: ADD
000025d5: DUP4
000025d6: SWAP1
000025d7: MSTORE
000025d8: PUSH2 0x20f0
000025db: SWAP2
000025dc: DUP7
000025dd: SWAP2
000025de: DUP3
000025df: AND
000025e0: SWAP1
000025e1: PUSH4 0x23b872dd
000025e6: SWAP1
000025e7: PUSH1 0x84
000025e9: ADD
000025ea: JUMPDEST
000025eb: PUSH1 0x40
000025ed: MLOAD
000025ee: PUSH1 0x20
000025f0: DUP2
000025f1: DUP4
000025f2: SUB
000025f3: SUB
000025f4: DUP2
000025f5: MSTORE
000025f6: SWAP1
000025f7: PUSH1 0x40
000025f9: MSTORE
000025fa: SWAP2
000025fb: POP
000025fc: PUSH1 0xe0
000025fe: SHL
000025ff: PUSH1 0x20
00002601: DUP3
00002602: ADD
00002603: DUP1
00002604: MLOAD
00002605: PUSH1 0x01
00002607: PUSH1 0x01
00002609: PUSH1 0xe0
0000260b: SHL
0000260c: SUB
0000260d: DUP4
0000260e: DUP2
0000260f: DUP4
00002610: AND
00002611: OR
00002612: DUP4
00002613: MSTORE
00002614: POP
00002615: POP
00002616: POP
00002617: POP
00002618: PUSH2 0x2cf9
0000261b: JUMP
0000261c: JUMPDEST
0000261d: PUSH1 0x00
0000261f: DUP1
00002620: PUSH2 0x262a
00002623: DUP4
00002624: PUSH1 0x0a
00002626: PUSH2 0x33dc
00002629: JUMP
0000262a: JUMPDEST
0000262b: SWAP1
0000262c: POP
0000262d: PUSH1 0x00
0000262f: DUP7
00002630: GT
00002631: PUSH2 0x263a
00002634: JUMPI
00002635: DUP1
00002636: PUSH2 0x2659
00002639: JUMP
0000263a: JUMPDEST
0000263b: DUP6
0000263c: PUSH2 0x2645
0000263f: DUP6
00002640: DUP8
00002641: PUSH2 0x3259
00002644: JUMP
00002645: JUMPDEST
00002646: PUSH2 0x264f
00002649: SWAP1
0000264a: DUP4
0000264b: PUSH2 0x33e8
0000264e: JUMP
0000264f: JUMPDEST
00002650: PUSH2 0x2659
00002653: SWAP2
00002654: SWAP1
00002655: PUSH2 0x33ff
00002658: JUMP
00002659: JUMPDEST
0000265a: SWAP7
0000265b: SWAP6
0000265c: POP
0000265d: POP
0000265e: POP
0000265f: POP
00002660: POP
00002661: POP
00002662: JUMP
00002663: JUMPDEST
00002664: PUSH1 0x00
00002666: PUSH1 0x01
00002668: DUP4
00002669: GT
0000266a: PUSH2 0x26ad
0000266d: JUMPI
0000266e: PUSH1 0x40
00002670: MLOAD
00002671: PUSH3 0x461bcd
00002675: PUSH1 0xe5
00002677: SHL
00002678: DUP2
00002679: MSTORE
0000267a: PUSH1 0x20
0000267c: PUSH1 0x04
0000267e: DUP3
0000267f: ADD
00002680: MSTORE
00002681: PUSH1 0x15
00002683: PUSH1 0x24
00002685: DUP3
00002686: ADD
00002687: MSTORE
00002688: PUSH21 0x496e76616c69642061737365745065725368617265
0000269e: PUSH1 0x58
000026a0: SHL
000026a1: PUSH1 0x44
000026a3: DUP3
000026a4: ADD
000026a5: MSTORE
000026a6: PUSH1 0x64
000026a8: ADD
000026a9: PUSH2 0x0bb2
000026ac: JUMP
000026ad: JUMPDEST
000026ae: DUP3
000026af: PUSH2 0x26b9
000026b2: DUP4
000026b3: PUSH1 0x0a
000026b5: PUSH2 0x33dc
000026b8: JUMP
000026b9: JUMPDEST
000026ba: PUSH2 0x26c3
000026bd: SWAP1
000026be: DUP7
000026bf: PUSH2 0x33e8
000026c2: JUMP
000026c3: JUMPDEST
000026c4: PUSH2 0x12b2
000026c7: SWAP2
000026c8: SWAP1
000026c9: PUSH2 0x33ff
000026cc: JUMP
000026cd: JUMPDEST
000026ce: PUSH1 0x01
000026d0: PUSH1 0x01
000026d2: PUSH1 0xa0
000026d4: SHL
000026d5: SUB
000026d6: DUP3
000026d7: AND
000026d8: PUSH2 0x26f7
000026db: JUMPI
000026dc: PUSH1 0x40
000026de: MLOAD
000026df: PUSH4 0xec442f05
000026e4: PUSH1 0xe0
000026e6: SHL
000026e7: DUP2
000026e8: MSTORE
000026e9: PUSH1 0x00
000026eb: PUSH1 0x04
000026ed: DUP3
000026ee: ADD
000026ef: MSTORE
000026f0: PUSH1 0x24
000026f2: ADD
000026f3: PUSH2 0x0bb2
000026f6: JUMP
000026f7: JUMPDEST
000026f8: PUSH2 0x0df8
000026fb: PUSH1 0x00
000026fd: DUP4
000026fe: DUP4
000026ff: PUSH2 0x2bcf
00002702: JUMP
00002703: JUMPDEST
00002704: PUSH1 0x00
00002706: PUSH1 0x01
00002708: DUP4
00002709: GT
0000270a: PUSH2 0x274d
0000270d: JUMPI
0000270e: PUSH1 0x40
00002710: MLOAD
00002711: PUSH3 0x461bcd
00002715: PUSH1 0xe5
00002717: SHL
00002718: DUP2
00002719: MSTORE
0000271a: PUSH1 0x20
0000271c: PUSH1 0x04
0000271e: DUP3
0000271f: ADD
00002720: MSTORE
00002721: PUSH1 0x15
00002723: PUSH1 0x24
00002725: DUP3
00002726: ADD
00002727: MSTORE
00002728: PUSH21 0x496e76616c69642061737365745065725368617265
0000273e: PUSH1 0x58
00002740: SHL
00002741: PUSH1 0x44
00002743: DUP3
00002744: ADD
00002745: MSTORE
00002746: PUSH1 0x64
00002748: ADD
00002749: PUSH2 0x0bb2
0000274c: JUMP
0000274d: JUMPDEST
0000274e: PUSH2 0x2758
00002751: DUP3
00002752: PUSH1 0x0a
00002754: PUSH2 0x33dc
00002757: JUMP
00002758: JUMPDEST
00002759: PUSH2 0x26c3
0000275c: DUP5
0000275d: DUP7
0000275e: PUSH2 0x33e8
00002761: JUMP
00002762: JUMPDEST
00002763: PUSH1 0x01
00002765: PUSH1 0x01
00002767: PUSH1 0x80
00002769: SHL
0000276a: SUB
0000276b: DUP2
0000276c: GT
0000276d: ISZERO
0000276e: PUSH2 0x0d07
00002771: JUMPI
00002772: PUSH1 0x40
00002774: MLOAD
00002775: PUSH3 0x461bcd
00002779: PUSH1 0xe5
0000277b: SHL
0000277c: DUP2
0000277d: MSTORE
0000277e: PUSH1 0x20
00002780: PUSH1 0x04
00002782: DUP3
00002783: ADD
00002784: MSTORE
00002785: PUSH1 0x10
00002787: PUSH1 0x24
00002789: DUP3
0000278a: ADD
0000278b: MSTORE
0000278c: PUSH16 0x09eeccae4ccd8deee40ead2dce862647
0000279d: PUSH1 0x83
0000279f: SHL
000027a0: PUSH1 0x44
000027a2: DUP3
000027a3: ADD
000027a4: MSTORE
000027a5: PUSH1 0x64
000027a7: ADD
000027a8: PUSH2 0x0bb2
000027ab: JUMP
000027ac: JUMPDEST
000027ad: PUSH1 0x01
000027af: PUSH1 0x01
000027b1: PUSH1 0x68
000027b3: SHL
000027b4: SUB
000027b5: DUP2
000027b6: GT
000027b7: ISZERO
000027b8: PUSH2 0x0d07
000027bb: JUMPI
000027bc: PUSH1 0x40
000027be: MLOAD
000027bf: PUSH3 0x461bcd
000027c3: PUSH1 0xe5
000027c5: SHL
000027c6: DUP2
000027c7: MSTORE
000027c8: PUSH1 0x20
000027ca: PUSH1 0x04
000027cc: DUP3
000027cd: ADD
000027ce: MSTORE
000027cf: PUSH1 0x10
000027d1: PUSH1 0x24
000027d3: DUP3
000027d4: ADD
000027d5: MSTORE
000027d6: PUSH16 0x13dd995c999b1bddc81d5a5b9d0c4c0d
000027e7: PUSH1 0x82
000027e9: SHL
000027ea: PUSH1 0x44
000027ec: DUP3
000027ed: ADD
000027ee: MSTORE
000027ef: PUSH1 0x64
000027f1: ADD
000027f2: PUSH2 0x0bb2
000027f5: JUMP
000027f6: JUMPDEST
000027f7: PUSH1 0x40
000027f9: MLOAD
000027fa: PUSH1 0x01
000027fc: PUSH1 0x01
000027fe: PUSH1 0xa0
00002800: SHL
00002801: SUB
00002802: DUP4
00002803: DUP2
00002804: AND
00002805: PUSH1 0x24
00002807: DUP4
00002808: ADD
00002809: MSTORE
0000280a: PUSH1 0x44
0000280c: DUP3
0000280d: ADD
0000280e: DUP4
0000280f: SWAP1
00002810: MSTORE
00002811: PUSH2 0x2073
00002814: SWAP2
00002815: DUP6
00002816: SWAP2
00002817: DUP3
00002818: AND
00002819: SWAP1
0000281a: PUSH4 0xa9059cbb
0000281f: SWAP1
00002820: PUSH1 0x64
00002822: ADD
00002823: PUSH2 0x25ea
00002826: JUMP
00002827: JUMPDEST
00002828: PUSH1 0x06
0000282a: SLOAD
0000282b: PUSH1 0x01
0000282d: PUSH1 0x01
0000282f: PUSH1 0xa0
00002831: SHL
00002832: SUB
00002833: AND
00002834: CALLER
00002835: EQ
00002836: PUSH2 0x13fc
00002839: JUMPI
0000283a: PUSH1 0x40
0000283c: MLOAD
0000283d: PUSH4 0x118cdaa7
00002842: PUSH1 0xe0
00002844: SHL
00002845: DUP2
00002846: MSTORE
00002847: CALLER
00002848: PUSH1 0x04
0000284a: DUP3
0000284b: ADD
0000284c: MSTORE
0000284d: PUSH1 0x24
0000284f: ADD
00002850: PUSH2 0x0bb2
00002853: JUMP
00002854: JUMPDEST
00002855: CALLER
00002856: PUSH1 0x00
00002858: SWAP1
00002859: DUP2
0000285a: MSTORE
0000285b: PUSH1 0x07
0000285d: PUSH1 0x20
0000285f: SWAP1
00002860: DUP2
00002861: MSTORE
00002862: PUSH1 0x40
00002864: DUP1
00002865: DUP4
00002866: KECCAK256
00002867: DUP2
00002868: MLOAD
00002869: PUSH1 0x60
0000286b: DUP2
0000286c: ADD
0000286d: DUP4
0000286e: MSTORE
0000286f: SWAP1
00002870: SLOAD
00002871: PUSH2 0xffff
00002874: DUP1
00002875: DUP3
00002876: AND
00002877: DUP1
00002878: DUP5
00002879: MSTORE
0000287a: PUSH3 0x010000
0000287e: DUP4
0000287f: DIV
00002880: PUSH1 0x01
00002882: PUSH1 0x01
00002884: PUSH1 0x68
00002886: SHL
00002887: SUB
00002888: AND
00002889: DUP5
0000288a: DUP8
0000288b: ADD
0000288c: MSTORE
0000288d: PUSH1 0x01
0000288f: PUSH1 0x78
00002891: SHL
00002892: SWAP1
00002893: SWAP3
00002894: DIV
00002895: PUSH1 0x01
00002897: PUSH1 0x01
00002899: PUSH1 0x80
0000289b: SHL
0000289c: SUB
0000289d: AND
0000289e: DUP4
0000289f: DUP6
000028a0: ADD
000028a1: MSTORE
000028a2: PUSH1 0x0c
000028a4: SLOAD
000028a5: SWAP2
000028a6: DUP7
000028a7: MSTORE
000028a8: PUSH1 0x08
000028aa: SWAP1
000028ab: SWAP5
000028ac: MSTORE
000028ad: SWAP2
000028ae: DUP5
000028af: KECCAK256
000028b0: SLOAD
000028b1: PUSH1 0x0a
000028b3: SLOAD
000028b4: SWAP2
000028b5: SWAP5
000028b6: SWAP3
000028b7: SWAP1
000028b8: SWAP4
000028b9: AND
000028ba: SWAP3
000028bb: PUSH2 0x28ca
000028be: SWAP2
000028bf: DUP6
000028c0: SWAP2
000028c1: DUP6
000028c2: SWAP2
000028c3: PUSH1 0xff
000028c5: AND
000028c6: PUSH2 0x2a53
000028c9: JUMP
000028ca: JUMPDEST
000028cb: SWAP1
000028cc: POP
000028cd: DUP4
000028ce: PUSH2 0x28d7
000028d1: JUMPI
000028d2: DUP5
000028d3: PUSH2 0x28d9
000028d6: JUMP
000028d7: JUMPDEST
000028d8: DUP1
000028d9: JUMPDEST
000028da: SWAP5
000028db: POP
000028dc: DUP5
000028dd: PUSH1 0x00
000028df: SUB
000028e0: PUSH2 0x28ea
000028e3: JUMPI
000028e4: POP
000028e5: POP
000028e6: POP
000028e7: POP
000028e8: POP
000028e9: JUMP
000028ea: JUMPDEST
000028eb: DUP1
000028ec: DUP6
000028ed: GT
000028ee: ISZERO
000028ef: PUSH2 0x292e
000028f2: JUMPI
000028f3: PUSH1 0x40
000028f5: MLOAD
000028f6: PUSH3 0x461bcd
000028fa: PUSH1 0xe5
000028fc: SHL
000028fd: DUP2
000028fe: MSTORE
000028ff: PUSH1 0x20
00002901: PUSH1 0x04
00002903: DUP3
00002904: ADD
00002905: MSTORE
00002906: PUSH1 0x11
00002908: PUSH1 0x24
0000290a: DUP3
0000290b: ADD
0000290c: MSTORE
0000290d: PUSH17 0x4578636565647320617661696c61626c65
0000291f: PUSH1 0x78
00002921: SHL
00002922: PUSH1 0x44
00002924: DUP3
00002925: ADD
00002926: MSTORE
00002927: PUSH1 0x64
00002929: ADD
0000292a: PUSH2 0x0bb2
0000292d: JUMP
0000292e: JUMPDEST
0000292f: DUP3
00002930: MLOAD
00002931: PUSH2 0xffff
00002934: AND
00002935: DUP3
00002936: GT
00002937: ISZERO
00002938: PUSH2 0x295b
0000293b: JUMPI
0000293c: CALLER
0000293d: PUSH1 0x00
0000293f: SWAP1
00002940: DUP2
00002941: MSTORE
00002942: PUSH1 0x07
00002944: PUSH1 0x20
00002946: MSTORE
00002947: PUSH1 0x40
00002949: SWAP1
0000294a: KECCAK256
0000294b: DUP1
0000294c: SLOAD
0000294d: PUSH3 0x010000
00002951: PUSH1 0x01
00002953: PUSH1 0x78
00002955: SHL
00002956: SUB
00002957: NOT
00002958: AND
00002959: SWAP1
0000295a: SSTORE
0000295b: JUMPDEST
0000295c: PUSH2 0x2964
0000295f: DUP6
00002960: PUSH2 0x2762
00002963: JUMP
00002964: JUMPDEST
00002965: PUSH2 0x296e
00002968: DUP6
00002969: DUP3
0000296a: PUSH2 0x3259
0000296d: JUMP
0000296e: JUMPDEST
0000296f: CALLER
00002970: PUSH1 0x00
00002972: DUP2
00002973: DUP2
00002974: MSTORE
00002975: PUSH1 0x07
00002977: PUSH1 0x20
00002979: MSTORE
0000297a: PUSH1 0x40
0000297c: SWAP1
0000297d: DUP2
0000297e: SWAP1
0000297f: KECCAK256
00002980: DUP1
00002981: SLOAD
00002982: PUSH1 0x01
00002984: PUSH1 0x01
00002986: PUSH1 0x80
00002988: SHL
00002989: SUB
0000298a: SWAP5
0000298b: SWAP1
0000298c: SWAP5
0000298d: AND
0000298e: PUSH1 0x01
00002990: PUSH1 0x78
00002992: SHL
00002993: MUL
00002994: PUSH1 0x01
00002996: PUSH1 0x78
00002998: SHL
00002999: PUSH1 0x01
0000299b: PUSH1 0xf8
0000299d: SHL
0000299e: SUB
0000299f: NOT
000029a0: SWAP1
000029a1: SWAP5
000029a2: AND
000029a3: SWAP4
000029a4: SWAP1
000029a5: SWAP4
000029a6: OR
000029a7: SWAP1
000029a8: SWAP3
000029a9: SSTORE
000029aa: DUP5
000029ab: MLOAD
000029ac: SWAP2
000029ad: MLOAD
000029ae: SWAP1
000029af: SWAP2
000029b0: PUSH32 0xe5b754fb1abb7f01b499791d0b820ae3b6af3424ac1c59768edb53f4ec31a929
000029d1: SWAP2
000029d2: PUSH2 0x29e7
000029d5: SWAP2
000029d6: DUP10
000029d7: DUP3
000029d8: MSTORE
000029d9: PUSH2 0xffff
000029dc: AND
000029dd: PUSH1 0x20
000029df: DUP3
000029e0: ADD
000029e1: MSTORE
000029e2: PUSH1 0x40
000029e4: ADD
000029e5: SWAP1
000029e6: JUMP
000029e7: JUMPDEST
000029e8: PUSH1 0x40
000029ea: MLOAD
000029eb: DUP1
000029ec: SWAP2
000029ed: SUB
000029ee: SWAP1
000029ef: LOG2
000029f0: PUSH2 0x29fa
000029f3: ADDRESS
000029f4: CALLER
000029f5: DUP8
000029f6: PUSH2 0x20f6
000029f9: JUMP
000029fa: JUMPDEST
000029fb: POP
000029fc: POP
000029fd: POP
000029fe: POP
000029ff: POP
00002a00: JUMP
00002a01: JUMPDEST
00002a02: PUSH1 0x06
00002a04: DUP1
00002a05: SLOAD
00002a06: PUSH1 0x01
00002a08: PUSH1 0x01
00002a0a: PUSH1 0xa0
00002a0c: SHL
00002a0d: SUB
00002a0e: DUP4
00002a0f: DUP2
00002a10: AND
00002a11: PUSH1 0x01
00002a13: PUSH1 0x01
00002a15: PUSH1 0xa0
00002a17: SHL
00002a18: SUB
00002a19: NOT
00002a1a: DUP4
00002a1b: AND
00002a1c: DUP2
00002a1d: OR
00002a1e: SWAP1
00002a1f: SWAP4
00002a20: SSTORE
00002a21: PUSH1 0x40
00002a23: MLOAD
00002a24: SWAP2
00002a25: AND
00002a26: SWAP2
00002a27: SWAP1
00002a28: DUP3
00002a29: SWAP1
00002a2a: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00002a4b: SWAP1
00002a4c: PUSH1 0x00
00002a4e: SWAP1
00002a4f: LOG3
00002a50: POP
00002a51: POP
00002a52: JUMP
00002a53: JUMPDEST
00002a54: DUP4
00002a55: MLOAD
00002a56: PUSH1 0x00
00002a58: SWAP1
00002a59: PUSH2 0xffff
00002a5c: AND
00002a5d: ISZERO
00002a5e: DUP1
00002a5f: ISZERO
00002a60: SWAP1
00002a61: PUSH2 0x2a6e
00002a64: JUMPI
00002a65: POP
00002a66: DUP5
00002a67: MLOAD
00002a68: PUSH2 0xffff
00002a6b: AND
00002a6c: DUP5
00002a6d: GT
00002a6e: JUMPDEST
00002a6f: ISZERO
00002a70: PUSH2 0x2ab0
00002a73: JUMPI
00002a74: PUSH1 0x00
00002a76: PUSH2 0x2a8d
00002a79: DUP7
00002a7a: PUSH1 0x20
00002a7c: ADD
00002a7d: MLOAD
00002a7e: PUSH1 0x01
00002a80: PUSH1 0x01
00002a82: PUSH1 0x68
00002a84: SHL
00002a85: SUB
00002a86: AND
00002a87: DUP6
00002a88: DUP6
00002a89: PUSH2 0x2663
00002a8c: JUMP
00002a8d: JUMPDEST
00002a8e: SWAP1
00002a8f: POP
00002a90: DUP1
00002a91: DUP7
00002a92: PUSH1 0x40
00002a94: ADD
00002a95: MLOAD
00002a96: PUSH1 0x01
00002a98: PUSH1 0x01
00002a9a: PUSH1 0x80
00002a9c: SHL
00002a9d: SUB
00002a9e: AND
00002a9f: PUSH2 0x2aa8
00002aa2: SWAP2
00002aa3: SWAP1
00002aa4: PUSH2 0x328d
00002aa7: JUMP
00002aa8: JUMPDEST
00002aa9: SWAP2
00002aaa: POP
00002aab: POP
00002aac: PUSH2 0x12b2
00002aaf: JUMP
00002ab0: JUMPDEST
00002ab1: POP
00002ab2: POP
00002ab3: POP
00002ab4: POP
00002ab5: PUSH1 0x40
00002ab7: ADD
00002ab8: MLOAD
00002ab9: PUSH1 0x01
00002abb: PUSH1 0x01
00002abd: PUSH1 0x80
00002abf: SHL
00002ac0: SUB
00002ac1: AND
00002ac2: SWAP1
00002ac3: JUMP
00002ac4: JUMPDEST
00002ac5: PUSH1 0x01
00002ac7: PUSH1 0x01
00002ac9: PUSH1 0xa0
00002acb: SHL
00002acc: SUB
00002acd: DUP3
00002ace: AND
00002acf: PUSH2 0x2aee
00002ad2: JUMPI
00002ad3: PUSH1 0x40
00002ad5: MLOAD
00002ad6: PUSH4 0x4b637e8f
00002adb: PUSH1 0xe1
00002add: SHL
00002ade: DUP2
00002adf: MSTORE
00002ae0: PUSH1 0x00
00002ae2: PUSH1 0x04
00002ae4: DUP3
00002ae5: ADD
00002ae6: MSTORE
00002ae7: PUSH1 0x24
00002ae9: ADD
00002aea: PUSH2 0x0bb2
00002aed: JUMP
00002aee: JUMPDEST
00002aef: PUSH2 0x0df8
00002af2: DUP3
00002af3: PUSH1 0x00
00002af5: DUP4
00002af6: PUSH2 0x2bcf
00002af9: JUMP
00002afa: JUMPDEST
00002afb: PUSH1 0x01
00002afd: PUSH1 0x01
00002aff: PUSH1 0xa0
00002b01: SHL
00002b02: SUB
00002b03: DUP5
00002b04: AND
00002b05: PUSH2 0x2b24
00002b08: JUMPI
00002b09: PUSH1 0x40
00002b0b: MLOAD
00002b0c: PUSH4 0xe602df05
00002b11: PUSH1 0xe0
00002b13: SHL
00002b14: DUP2
00002b15: MSTORE
00002b16: PUSH1 0x00
00002b18: PUSH1 0x04
00002b1a: DUP3
00002b1b: ADD
00002b1c: MSTORE
00002b1d: PUSH1 0x24
00002b1f: ADD
00002b20: PUSH2 0x0bb2
00002b23: JUMP
00002b24: JUMPDEST
00002b25: PUSH1 0x01
00002b27: PUSH1 0x01
00002b29: PUSH1 0xa0
00002b2b: SHL
00002b2c: SUB
00002b2d: DUP4
00002b2e: AND
00002b2f: PUSH2 0x2b4e
00002b32: JUMPI
00002b33: PUSH1 0x40
00002b35: MLOAD
00002b36: PUSH4 0x4a1406b1
00002b3b: PUSH1 0xe1
00002b3d: SHL
00002b3e: DUP2
00002b3f: MSTORE
00002b40: PUSH1 0x00
00002b42: PUSH1 0x04
00002b44: DUP3
00002b45: ADD
00002b46: MSTORE
00002b47: PUSH1 0x24
00002b49: ADD
00002b4a: PUSH2 0x0bb2
00002b4d: JUMP
00002b4e: JUMPDEST
00002b4f: PUSH1 0x01
00002b51: PUSH1 0x01
00002b53: PUSH1 0xa0
00002b55: SHL
00002b56: SUB
00002b57: DUP1
00002b58: DUP6
00002b59: AND
00002b5a: PUSH1 0x00
00002b5c: SWAP1
00002b5d: DUP2
00002b5e: MSTORE
00002b5f: PUSH1 0x02
00002b61: PUSH1 0x20
00002b63: SWAP1
00002b64: DUP2
00002b65: MSTORE
00002b66: PUSH1 0x40
00002b68: DUP1
00002b69: DUP4
00002b6a: KECCAK256
00002b6b: SWAP4
00002b6c: DUP8
00002b6d: AND
00002b6e: DUP4
00002b6f: MSTORE
00002b70: SWAP3
00002b71: SWAP1
00002b72: MSTORE
00002b73: KECCAK256
00002b74: DUP3
00002b75: SWAP1
00002b76: SSTORE
00002b77: DUP1
00002b78: ISZERO
00002b79: PUSH2 0x20f0
00002b7c: JUMPI
00002b7d: DUP3
00002b7e: PUSH1 0x01
00002b80: PUSH1 0x01
00002b82: PUSH1 0xa0
00002b84: SHL
00002b85: SUB
00002b86: AND
00002b87: DUP5
00002b88: PUSH1 0x01
00002b8a: PUSH1 0x01
00002b8c: PUSH1 0xa0
00002b8e: SHL
00002b8f: SUB
00002b90: AND
00002b91: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
00002bb2: DUP5
00002bb3: PUSH1 0x40
00002bb5: MLOAD
00002bb6: PUSH2 0x2bc1
00002bb9: SWAP2
00002bba: DUP2
00002bbb: MSTORE
00002bbc: PUSH1 0x20
00002bbe: ADD
00002bbf: SWAP1
00002bc0: JUMP
00002bc1: JUMPDEST
00002bc2: PUSH1 0x40
00002bc4: MLOAD
00002bc5: DUP1
00002bc6: SWAP2
00002bc7: SUB
00002bc8: SWAP1
00002bc9: LOG3
00002bca: POP
00002bcb: POP
00002bcc: POP
00002bcd: POP
00002bce: JUMP
00002bcf: JUMPDEST
00002bd0: PUSH1 0x01
00002bd2: PUSH1 0x01
00002bd4: PUSH1 0xa0
00002bd6: SHL
00002bd7: SUB
00002bd8: DUP4
00002bd9: AND
00002bda: PUSH2 0x2bfa
00002bdd: JUMPI
00002bde: DUP1
00002bdf: PUSH1 0x03
00002be1: PUSH1 0x00
00002be3: DUP3
00002be4: DUP3
00002be5: SLOAD
00002be6: PUSH2 0x2bef
00002be9: SWAP2
00002bea: SWAP1
00002beb: PUSH2 0x328d
00002bee: JUMP
00002bef: JUMPDEST
00002bf0: SWAP1
00002bf1: SWAP2
00002bf2: SSTORE
00002bf3: POP
00002bf4: PUSH2 0x2c6c
00002bf7: SWAP1
00002bf8: POP
00002bf9: JUMP
00002bfa: JUMPDEST
00002bfb: PUSH1 0x01
00002bfd: PUSH1 0x01
00002bff: PUSH1 0xa0
00002c01: SHL
00002c02: SUB
00002c03: DUP4
00002c04: AND
00002c05: PUSH1 0x00
00002c07: SWAP1
00002c08: DUP2
00002c09: MSTORE
00002c0a: PUSH1 0x01
00002c0c: PUSH1 0x20
00002c0e: MSTORE
00002c0f: PUSH1 0x40
00002c11: SWAP1
00002c12: KECCAK256
00002c13: SLOAD
00002c14: DUP2
00002c15: DUP2
00002c16: LT
00002c17: ISZERO
00002c18: PUSH2 0x2c4d
00002c1b: JUMPI
00002c1c: PUSH1 0x40
00002c1e: MLOAD
00002c1f: PUSH4 0x391434e3
00002c24: PUSH1 0xe2
00002c26: SHL
00002c27: DUP2
00002c28: MSTORE
00002c29: PUSH1 0x01
00002c2b: PUSH1 0x01
00002c2d: PUSH1 0xa0
00002c2f: SHL
00002c30: SUB
00002c31: DUP6
00002c32: AND
00002c33: PUSH1 0x04
00002c35: DUP3
00002c36: ADD
00002c37: MSTORE
00002c38: PUSH1 0x24
00002c3a: DUP2
00002c3b: ADD
00002c3c: DUP3
00002c3d: SWAP1
00002c3e: MSTORE
00002c3f: PUSH1 0x44
00002c41: DUP2
00002c42: ADD
00002c43: DUP4
00002c44: SWAP1
00002c45: MSTORE
00002c46: PUSH1 0x64
00002c48: ADD
00002c49: PUSH2 0x0bb2
00002c4c: JUMP
00002c4d: JUMPDEST
00002c4e: PUSH1 0x01
00002c50: PUSH1 0x01
00002c52: PUSH1 0xa0
00002c54: SHL
00002c55: SUB
00002c56: DUP5
00002c57: AND
00002c58: PUSH1 0x00
00002c5a: SWAP1
00002c5b: DUP2
00002c5c: MSTORE
00002c5d: PUSH1 0x01
00002c5f: PUSH1 0x20
00002c61: MSTORE
00002c62: PUSH1 0x40
00002c64: SWAP1
00002c65: KECCAK256
00002c66: SWAP1
00002c67: DUP3
00002c68: SWAP1
00002c69: SUB
00002c6a: SWAP1
00002c6b: SSTORE
00002c6c: JUMPDEST
00002c6d: PUSH1 0x01
00002c6f: PUSH1 0x01
00002c71: PUSH1 0xa0
00002c73: SHL
00002c74: SUB
00002c75: DUP3
00002c76: AND
00002c77: PUSH2 0x2c88
00002c7a: JUMPI
00002c7b: PUSH1 0x03
00002c7d: DUP1
00002c7e: SLOAD
00002c7f: DUP3
00002c80: SWAP1
00002c81: SUB
00002c82: SWAP1
00002c83: SSTORE
00002c84: PUSH2 0x2ca7
00002c87: JUMP
00002c88: JUMPDEST
00002c89: PUSH1 0x01
00002c8b: PUSH1 0x01
00002c8d: PUSH1 0xa0
00002c8f: SHL
00002c90: SUB
00002c91: DUP3
00002c92: AND
00002c93: PUSH1 0x00
00002c95: SWAP1
00002c96: DUP2
00002c97: MSTORE
00002c98: PUSH1 0x01
00002c9a: PUSH1 0x20
00002c9c: MSTORE
00002c9d: PUSH1 0x40
00002c9f: SWAP1
00002ca0: KECCAK256
00002ca1: DUP1
00002ca2: SLOAD
00002ca3: DUP3
00002ca4: ADD
00002ca5: SWAP1
00002ca6: SSTORE
00002ca7: JUMPDEST
00002ca8: DUP2
00002ca9: PUSH1 0x01
00002cab: PUSH1 0x01
00002cad: PUSH1 0xa0
00002caf: SHL
00002cb0: SUB
00002cb1: AND
00002cb2: DUP4
00002cb3: PUSH1 0x01
00002cb5: PUSH1 0x01
00002cb7: PUSH1 0xa0
00002cb9: SHL
00002cba: SUB
00002cbb: AND
00002cbc: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00002cdd: DUP4
00002cde: PUSH1 0x40
00002ce0: MLOAD
00002ce1: PUSH2 0x2cec
00002ce4: SWAP2
00002ce5: DUP2
00002ce6: MSTORE
00002ce7: PUSH1 0x20
00002ce9: ADD
00002cea: SWAP1
00002ceb: JUMP
00002cec: JUMPDEST
00002ced: PUSH1 0x40
00002cef: MLOAD
00002cf0: DUP1
00002cf1: SWAP2
00002cf2: SUB
00002cf3: SWAP1
00002cf4: LOG3
00002cf5: POP
00002cf6: POP
00002cf7: POP
00002cf8: JUMP
00002cf9: JUMPDEST
00002cfa: PUSH1 0x00
00002cfc: PUSH2 0x2d0e
00002cff: PUSH1 0x01
00002d01: PUSH1 0x01
00002d03: PUSH1 0xa0
00002d05: SHL
00002d06: SUB
00002d07: DUP5
00002d08: AND
00002d09: DUP4
00002d0a: PUSH2 0x2d5c
00002d0d: JUMP
00002d0e: JUMPDEST
00002d0f: SWAP1
00002d10: POP
00002d11: DUP1
00002d12: MLOAD
00002d13: PUSH1 0x00
00002d15: EQ
00002d16: ISZERO
00002d17: DUP1
00002d18: ISZERO
00002d19: PUSH2 0x2d33
00002d1c: JUMPI
00002d1d: POP
00002d1e: DUP1
00002d1f: DUP1
00002d20: PUSH1 0x20
00002d22: ADD
00002d23: SWAP1
00002d24: MLOAD
00002d25: DUP2
00002d26: ADD
00002d27: SWAP1
00002d28: PUSH2 0x2d31
00002d2b: SWAP2
00002d2c: SWAP1
00002d2d: PUSH2 0x3421
00002d30: JUMP
00002d31: JUMPDEST
00002d32: ISZERO
00002d33: JUMPDEST
00002d34: ISZERO
00002d35: PUSH2 0x2073
00002d38: JUMPI
00002d39: PUSH1 0x40
00002d3b: MLOAD
00002d3c: PUSH4 0x5274afe7
00002d41: PUSH1 0xe0
00002d43: SHL
00002d44: DUP2
00002d45: MSTORE
00002d46: PUSH1 0x01
00002d48: PUSH1 0x01
00002d4a: PUSH1 0xa0
00002d4c: SHL
00002d4d: SUB
00002d4e: DUP5
00002d4f: AND
00002d50: PUSH1 0x04
00002d52: DUP3
00002d53: ADD
00002d54: MSTORE
00002d55: PUSH1 0x24
00002d57: ADD
00002d58: PUSH2 0x0bb2
00002d5b: JUMP
00002d5c: JUMPDEST
00002d5d: PUSH1 0x60
00002d5f: PUSH2 0x0b70
00002d62: DUP4
00002d63: DUP4
00002d64: PUSH1 0x00
00002d66: DUP5
00002d67: PUSH1 0x00
00002d69: DUP1
00002d6a: DUP6
00002d6b: PUSH1 0x01
00002d6d: PUSH1 0x01
00002d6f: PUSH1 0xa0
00002d71: SHL
00002d72: SUB
00002d73: AND
00002d74: DUP5
00002d75: DUP7
00002d76: PUSH1 0x40
00002d78: MLOAD
00002d79: PUSH2 0x2d82
00002d7c: SWAP2
00002d7d: SWAP1
00002d7e: PUSH2 0x343e
00002d81: JUMP
00002d82: JUMPDEST
00002d83: PUSH1 0x00
00002d85: PUSH1 0x40
00002d87: MLOAD
00002d88: DUP1
00002d89: DUP4
00002d8a: SUB
00002d8b: DUP2
00002d8c: DUP6
00002d8d: DUP8
00002d8e: GAS
00002d8f: CALL
00002d90: SWAP3
00002d91: POP
00002d92: POP
00002d93: POP
00002d94: RETURNDATASIZE
00002d95: DUP1
00002d96: PUSH1 0x00
00002d98: DUP2
00002d99: EQ
00002d9a: PUSH2 0x2dbf
00002d9d: JUMPI
00002d9e: PUSH1 0x40
00002da0: MLOAD
00002da1: SWAP2
00002da2: POP
00002da3: PUSH1 0x1f
00002da5: NOT
00002da6: PUSH1 0x3f
00002da8: RETURNDATASIZE
00002da9: ADD
00002daa: AND
00002dab: DUP3
00002dac: ADD
00002dad: PUSH1 0x40
00002daf: MSTORE
00002db0: RETURNDATASIZE
00002db1: DUP3
00002db2: MSTORE
00002db3: RETURNDATASIZE
00002db4: PUSH1 0x00
00002db6: PUSH1 0x20
00002db8: DUP5
00002db9: ADD
00002dba: RETURNDATACOPY
00002dbb: PUSH2 0x2dc4
00002dbe: JUMP
00002dbf: JUMPDEST
00002dc0: PUSH1 0x60
00002dc2: SWAP2
00002dc3: POP
00002dc4: JUMPDEST
00002dc5: POP
00002dc6: SWAP2
00002dc7: POP
00002dc8: SWAP2
00002dc9: POP
00002dca: PUSH2 0x2659
00002dcd: DUP7
00002dce: DUP4
00002dcf: DUP4
00002dd0: PUSH1 0x60
00002dd2: DUP3
00002dd3: PUSH2 0x2de4
00002dd6: JUMPI
00002dd7: PUSH2 0x2ddf
00002dda: DUP3
00002ddb: PUSH2 0x2e2b
00002dde: JUMP
00002ddf: JUMPDEST
00002de0: PUSH2 0x0b70
00002de3: JUMP
00002de4: JUMPDEST
00002de5: DUP2
00002de6: MLOAD
00002de7: ISZERO
00002de8: DUP1
00002de9: ISZERO
00002dea: PUSH2 0x2dfb
00002ded: JUMPI
00002dee: POP
00002def: PUSH1 0x01
00002df1: PUSH1 0x01
00002df3: PUSH1 0xa0
00002df5: SHL
00002df6: SUB
00002df7: DUP5
00002df8: AND
00002df9: EXTCODESIZE
00002dfa: ISZERO
00002dfb: JUMPDEST
00002dfc: ISZERO
00002dfd: PUSH2 0x2e24
00002e00: JUMPI
00002e01: PUSH1 0x40
00002e03: MLOAD
00002e04: PUSH4 0x9996b315
00002e09: PUSH1 0xe0
00002e0b: SHL
00002e0c: DUP2
00002e0d: MSTORE
00002e0e: PUSH1 0x01
00002e10: PUSH1 0x01
00002e12: PUSH1 0xa0
00002e14: SHL
00002e15: SUB
00002e16: DUP6
00002e17: AND
00002e18: PUSH1 0x04
00002e1a: DUP3
00002e1b: ADD
00002e1c: MSTORE
00002e1d: PUSH1 0x24
00002e1f: ADD
00002e20: PUSH2 0x0bb2
00002e23: JUMP
00002e24: JUMPDEST
00002e25: POP
00002e26: DUP1
00002e27: PUSH2 0x0b70
00002e2a: JUMP
00002e2b: JUMPDEST
00002e2c: DUP1
00002e2d: MLOAD
00002e2e: ISZERO
00002e2f: PUSH2 0x2e3b
00002e32: JUMPI
00002e33: DUP1
00002e34: MLOAD
00002e35: DUP1
00002e36: DUP3
00002e37: PUSH1 0x20
00002e39: ADD
00002e3a: REVERT
00002e3b: JUMPDEST
00002e3c: PUSH1 0x40
00002e3e: MLOAD
00002e3f: PUSH4 0x0a12f521
00002e44: PUSH1 0xe1
00002e46: SHL
00002e47: DUP2
00002e48: MSTORE
00002e49: PUSH1 0x04
00002e4b: ADD
00002e4c: PUSH1 0x40
00002e4e: MLOAD
00002e4f: DUP1
00002e50: SWAP2
00002e51: SUB
00002e52: SWAP1
00002e53: REVERT
00002e54: JUMPDEST
00002e55: PUSH1 0x00
00002e57: JUMPDEST
00002e58: DUP4
00002e59: DUP2
00002e5a: LT
00002e5b: ISZERO
00002e5c: PUSH2 0x2e6f
00002e5f: JUMPI
00002e60: DUP2
00002e61: DUP2
00002e62: ADD
00002e63: MLOAD
00002e64: DUP4
00002e65: DUP3
00002e66: ADD
00002e67: MSTORE
00002e68: PUSH1 0x20
00002e6a: ADD
00002e6b: PUSH2 0x2e57
00002e6e: JUMP
00002e6f: JUMPDEST
00002e70: POP
00002e71: POP
00002e72: PUSH1 0x00
00002e74: SWAP2
00002e75: ADD
00002e76: MSTORE
00002e77: JUMP
00002e78: JUMPDEST
00002e79: PUSH1 0x20
00002e7b: DUP2
00002e7c: MSTORE
00002e7d: PUSH1 0x00
00002e7f: DUP3
00002e80: MLOAD
00002e81: DUP1
00002e82: PUSH1 0x20
00002e84: DUP5
00002e85: ADD
00002e86: MSTORE
00002e87: PUSH2 0x2e97
00002e8a: DUP2
00002e8b: PUSH1 0x40
00002e8d: DUP6
00002e8e: ADD
00002e8f: PUSH1 0x20
00002e91: DUP8
00002e92: ADD
00002e93: PUSH2 0x2e54
00002e96: JUMP
00002e97: JUMPDEST
00002e98: PUSH1 0x1f
00002e9a: ADD
00002e9b: PUSH1 0x1f
00002e9d: NOT
00002e9e: AND
00002e9f: SWAP2
00002ea0: SWAP1
00002ea1: SWAP2
00002ea2: ADD
00002ea3: PUSH1 0x40
00002ea5: ADD
00002ea6: SWAP3
00002ea7: SWAP2
00002ea8: POP
00002ea9: POP
00002eaa: JUMP
00002eab: JUMPDEST
00002eac: DUP1
00002ead: CALLDATALOAD
00002eae: PUSH1 0x01
00002eb0: PUSH1 0x01
00002eb2: PUSH1 0xa0
00002eb4: SHL
00002eb5: SUB
00002eb6: DUP2
00002eb7: AND
00002eb8: DUP2
00002eb9: EQ
00002eba: PUSH2 0x2ec2
00002ebd: JUMPI
00002ebe: PUSH1 0x00
00002ec0: DUP1
00002ec1: REVERT
00002ec2: JUMPDEST
00002ec3: SWAP2
00002ec4: SWAP1
00002ec5: POP
00002ec6: JUMP
00002ec7: JUMPDEST
00002ec8: PUSH1 0x00
00002eca: DUP1
00002ecb: PUSH1 0x40
00002ecd: DUP4
00002ece: DUP6
00002ecf: SUB
00002ed0: SLT
00002ed1: ISZERO
00002ed2: PUSH2 0x2eda
00002ed5: JUMPI
00002ed6: PUSH1 0x00
00002ed8: DUP1
00002ed9: REVERT
00002eda: JUMPDEST
00002edb: PUSH2 0x2ee3
00002ede: DUP4
00002edf: PUSH2 0x2eab
00002ee2: JUMP
00002ee3: JUMPDEST
00002ee4: SWAP5
00002ee5: PUSH1 0x20
00002ee7: SWAP4
00002ee8: SWAP1
00002ee9: SWAP4
00002eea: ADD
00002eeb: CALLDATALOAD
00002eec: SWAP4
00002eed: POP
00002eee: POP
00002eef: POP
00002ef0: JUMP
00002ef1: JUMPDEST
00002ef2: PUSH1 0x00
00002ef4: DUP1
00002ef5: PUSH1 0x00
00002ef7: PUSH1 0x60
00002ef9: DUP5
00002efa: DUP7
00002efb: SUB
00002efc: SLT
00002efd: ISZERO
00002efe: PUSH2 0x2f06
00002f01: JUMPI
00002f02: PUSH1 0x00
00002f04: DUP1
00002f05: REVERT
00002f06: JUMPDEST
00002f07: PUSH2 0x2f0f
00002f0a: DUP5
00002f0b: PUSH2 0x2eab
00002f0e: JUMP
00002f0f: JUMPDEST
00002f10: SWAP3
00002f11: POP
00002f12: PUSH2 0x2f1d
00002f15: PUSH1 0x20
00002f17: DUP6
00002f18: ADD
00002f19: PUSH2 0x2eab
00002f1c: JUMP
00002f1d: JUMPDEST
00002f1e: SWAP2
00002f1f: POP
00002f20: PUSH1 0x40
00002f22: DUP5
00002f23: ADD
00002f24: CALLDATALOAD
00002f25: SWAP1
00002f26: POP
00002f27: SWAP3
00002f28: POP
00002f29: SWAP3
00002f2a: POP
00002f2b: SWAP3
00002f2c: JUMP
00002f2d: JUMPDEST
00002f2e: PUSH1 0x00
00002f30: PUSH1 0x20
00002f32: DUP3
00002f33: DUP5
00002f34: SUB
00002f35: SLT
00002f36: ISZERO
00002f37: PUSH2 0x2f3f
00002f3a: JUMPI
00002f3b: PUSH1 0x00
00002f3d: DUP1
00002f3e: REVERT
00002f3f: JUMPDEST
00002f40: POP
00002f41: CALLDATALOAD
00002f42: SWAP2
00002f43: SWAP1
00002f44: POP
00002f45: JUMP
00002f46: JUMPDEST
00002f47: PUSH4 0x4e487b71
00002f4c: PUSH1 0xe0
00002f4e: SHL
00002f4f: PUSH1 0x00
00002f51: MSTORE
00002f52: PUSH1 0x41
00002f54: PUSH1 0x04
00002f56: MSTORE
00002f57: PUSH1 0x24
00002f59: PUSH1 0x00
00002f5b: REVERT
00002f5c: JUMPDEST
00002f5d: PUSH1 0x00
00002f5f: DUP3
00002f60: PUSH1 0x1f
00002f62: DUP4
00002f63: ADD
00002f64: SLT
00002f65: PUSH2 0x2f6d
00002f68: JUMPI
00002f69: PUSH1 0x00
00002f6b: DUP1
00002f6c: REVERT
00002f6d: JUMPDEST
00002f6e: DUP2
00002f6f: CALLDATALOAD
00002f70: PUSH1 0x20
00002f72: PUSH8 0xffffffffffffffff
00002f7b: DUP1
00002f7c: DUP4
00002f7d: GT
00002f7e: ISZERO
00002f7f: PUSH2 0x2f8a
00002f82: JUMPI
00002f83: PUSH2 0x2f8a
00002f86: PUSH2 0x2f46
00002f89: JUMP
00002f8a: JUMPDEST
00002f8b: DUP3
00002f8c: PUSH1 0x05
00002f8e: SHL
00002f8f: PUSH1 0x40
00002f91: MLOAD
00002f92: PUSH1 0x1f
00002f94: NOT
00002f95: PUSH1 0x3f
00002f97: DUP4
00002f98: ADD
00002f99: AND
00002f9a: DUP2
00002f9b: ADD
00002f9c: DUP2
00002f9d: DUP2
00002f9e: LT
00002f9f: DUP5
00002fa0: DUP3
00002fa1: GT
00002fa2: OR
00002fa3: ISZERO
00002fa4: PUSH2 0x2faf
00002fa7: JUMPI
00002fa8: PUSH2 0x2faf
00002fab: PUSH2 0x2f46
00002fae: JUMP
00002faf: JUMPDEST
00002fb0: PUSH1 0x40
00002fb2: MSTORE
00002fb3: SWAP4
00002fb4: DUP5
00002fb5: MSTORE
00002fb6: DUP6
00002fb7: DUP2
00002fb8: ADD
00002fb9: DUP4
00002fba: ADD
00002fbb: SWAP4
00002fbc: DUP4
00002fbd: DUP2
00002fbe: ADD
00002fbf: SWAP3
00002fc0: POP
00002fc1: DUP8
00002fc2: DUP6
00002fc3: GT
00002fc4: ISZERO
00002fc5: PUSH2 0x2fcd
00002fc8: JUMPI
00002fc9: PUSH1 0x00
00002fcb: DUP1
00002fcc: REVERT
00002fcd: JUMPDEST
00002fce: DUP4
00002fcf: DUP8
00002fd0: ADD
00002fd1: SWAP2
00002fd2: POP
00002fd3: JUMPDEST
00002fd4: DUP5
00002fd5: DUP3
00002fd6: LT
00002fd7: ISZERO
00002fd8: PUSH2 0x2fec
00002fdb: JUMPI
00002fdc: DUP2
00002fdd: CALLDATALOAD
00002fde: DUP4
00002fdf: MSTORE
00002fe0: SWAP2
00002fe1: DUP4
00002fe2: ADD
00002fe3: SWAP2
00002fe4: SWAP1
00002fe5: DUP4
00002fe6: ADD
00002fe7: SWAP1
00002fe8: PUSH2 0x2fd3
00002feb: JUMP
00002fec: JUMPDEST
00002fed: SWAP8
00002fee: SWAP7
00002fef: POP
00002ff0: POP
00002ff1: POP
00002ff2: POP
00002ff3: POP
00002ff4: POP
00002ff5: POP
00002ff6: JUMP
00002ff7: JUMPDEST
00002ff8: PUSH1 0x00
00002ffa: DUP1
00002ffb: PUSH1 0x40
00002ffd: DUP4
00002ffe: DUP6
00002fff: SUB
00003000: SLT
00003001: ISZERO
00003002: PUSH2 0x300a
00003005: JUMPI
00003006: PUSH1 0x00
00003008: DUP1
00003009: REVERT
0000300a: JUMPDEST
0000300b: DUP3
0000300c: CALLDATALOAD
0000300d: SWAP2
0000300e: POP
0000300f: PUSH1 0x20
00003011: DUP4
00003012: ADD
00003013: CALLDATALOAD
00003014: PUSH8 0xffffffffffffffff
0000301d: DUP2
0000301e: GT
0000301f: ISZERO
00003020: PUSH2 0x3028
00003023: JUMPI
00003024: PUSH1 0x00
00003026: DUP1
00003027: REVERT
00003028: JUMPDEST
00003029: PUSH2 0x3034
0000302c: DUP6
0000302d: DUP3
0000302e: DUP7
0000302f: ADD
00003030: PUSH2 0x2f5c
00003033: JUMP
00003034: JUMPDEST
00003035: SWAP2
00003036: POP
00003037: POP
00003038: SWAP3
00003039: POP
0000303a: SWAP3
0000303b: SWAP1
0000303c: POP
0000303d: JUMP
0000303e: JUMPDEST
0000303f: PUSH1 0x00
00003041: DUP1
00003042: PUSH1 0x40
00003044: DUP4
00003045: DUP6
00003046: SUB
00003047: SLT
00003048: ISZERO
00003049: PUSH2 0x3051
0000304c: JUMPI
0000304d: PUSH1 0x00
0000304f: DUP1
00003050: REVERT
00003051: JUMPDEST
00003052: DUP3
00003053: CALLDATALOAD
00003054: SWAP2
00003055: POP
00003056: PUSH2 0x3061
00003059: PUSH1 0x20
0000305b: DUP5
0000305c: ADD
0000305d: PUSH2 0x2eab
00003060: JUMP
00003061: JUMPDEST
00003062: SWAP1
00003063: POP
00003064: SWAP3
00003065: POP
00003066: SWAP3
00003067: SWAP1
00003068: POP
00003069: JUMP
0000306a: JUMPDEST
0000306b: PUSH1 0x00
0000306d: PUSH1 0x20
0000306f: DUP3
00003070: DUP5
00003071: SUB
00003072: SLT
00003073: ISZERO
00003074: PUSH2 0x307c
00003077: JUMPI
00003078: PUSH1 0x00
0000307a: DUP1
0000307b: REVERT
0000307c: JUMPDEST
0000307d: PUSH2 0x0b70
00003080: DUP3
00003081: PUSH2 0x2eab
00003084: JUMP
00003085: JUMPDEST
00003086: DUP1
00003087: ISZERO
00003088: ISZERO
00003089: DUP2
0000308a: EQ
0000308b: PUSH2 0x0d07
0000308e: JUMPI
0000308f: PUSH1 0x00
00003091: DUP1
00003092: REVERT
00003093: JUMPDEST
00003094: PUSH1 0x00
00003096: PUSH1 0x20
00003098: DUP3
00003099: DUP5
0000309a: SUB
0000309b: SLT
0000309c: ISZERO
0000309d: PUSH2 0x30a5
000030a0: JUMPI
000030a1: PUSH1 0x00
000030a3: DUP1
000030a4: REVERT
000030a5: JUMPDEST
000030a6: DUP2
000030a7: CALLDATALOAD
000030a8: PUSH2 0x0b70
000030ab: DUP2
000030ac: PUSH2 0x3085
000030af: JUMP
000030b0: JUMPDEST
000030b1: PUSH1 0x00
000030b3: DUP1
000030b4: PUSH1 0x40
000030b6: DUP4
000030b7: DUP6
000030b8: SUB
000030b9: SLT
000030ba: ISZERO
000030bb: PUSH2 0x30c3
000030be: JUMPI
000030bf: PUSH1 0x00
000030c1: DUP1
000030c2: REVERT
000030c3: JUMPDEST
000030c4: PUSH2 0x30cc
000030c7: DUP4
000030c8: PUSH2 0x2eab
000030cb: JUMP
000030cc: JUMPDEST
000030cd: SWAP2
000030ce: POP
000030cf: PUSH1 0x20
000030d1: DUP4
000030d2: ADD
000030d3: CALLDATALOAD
000030d4: PUSH8 0xffffffffffffffff
000030dd: DUP2
000030de: GT
000030df: ISZERO
000030e0: PUSH2 0x3028
000030e3: JUMPI
000030e4: PUSH1 0x00
000030e6: DUP1
000030e7: REVERT
000030e8: JUMPDEST
000030e9: PUSH1 0x00
000030eb: DUP1
000030ec: PUSH1 0x40
000030ee: DUP4
000030ef: DUP6
000030f0: SUB
000030f1: SLT
000030f2: ISZERO
000030f3: PUSH2 0x30fb
000030f6: JUMPI
000030f7: PUSH1 0x00
000030f9: DUP1
000030fa: REVERT
000030fb: JUMPDEST
000030fc: PUSH2 0x3104
000030ff: DUP4
00003100: PUSH2 0x2eab
00003103: JUMP
00003104: JUMPDEST
00003105: SWAP2
00003106: POP
00003107: PUSH2 0x3061
0000310a: PUSH1 0x20
0000310c: DUP5
0000310d: ADD
0000310e: PUSH2 0x2eab
00003111: JUMP
00003112: JUMPDEST
00003113: PUSH1 0x00
00003115: PUSH1 0x20
00003117: DUP3
00003118: DUP5
00003119: SUB
0000311a: SLT
0000311b: ISZERO
0000311c: PUSH2 0x3124
0000311f: JUMPI
00003120: PUSH1 0x00
00003122: DUP1
00003123: REVERT
00003124: JUMPDEST
00003125: DUP2
00003126: CALLDATALOAD
00003127: PUSH8 0xffffffffffffffff
00003130: DUP2
00003131: GT
00003132: ISZERO
00003133: PUSH2 0x313b
00003136: JUMPI
00003137: PUSH1 0x00
00003139: DUP1
0000313a: REVERT
0000313b: JUMPDEST
0000313c: PUSH2 0x12b2
0000313f: DUP5
00003140: DUP3
00003141: DUP6
00003142: ADD
00003143: PUSH2 0x2f5c
00003146: JUMP
00003147: JUMPDEST
00003148: PUSH1 0x00
0000314a: PUSH1 0x80
0000314c: DUP3
0000314d: DUP5
0000314e: SUB
0000314f: SLT
00003150: ISZERO
00003151: PUSH2 0x3159
00003154: JUMPI
00003155: PUSH1 0x00
00003157: DUP1
00003158: REVERT
00003159: JUMPDEST
0000315a: PUSH1 0x40
0000315c: MLOAD
0000315d: PUSH1 0x80
0000315f: DUP2
00003160: ADD
00003161: DUP2
00003162: DUP2
00003163: LT
00003164: PUSH8 0xffffffffffffffff
0000316d: DUP3
0000316e: GT
0000316f: OR
00003170: ISZERO
00003171: PUSH2 0x317c
00003174: JUMPI
00003175: PUSH2 0x317c
00003178: PUSH2 0x2f46
0000317b: JUMP
0000317c: JUMPDEST
0000317d: PUSH1 0x40
0000317f: MSTORE
00003180: DUP3
00003181: CALLDATALOAD
00003182: PUSH1 0xff
00003184: DUP2
00003185: AND
00003186: DUP2
00003187: EQ
00003188: PUSH2 0x3190
0000318b: JUMPI
0000318c: PUSH1 0x00
0000318e: DUP1
0000318f: REVERT
00003190: JUMPDEST
00003191: DUP2
00003192: MSTORE
00003193: PUSH2 0x319e
00003196: PUSH1 0x20
00003198: DUP5
00003199: ADD
0000319a: PUSH2 0x2eab
0000319d: JUMP
0000319e: JUMPDEST
0000319f: PUSH1 0x20
000031a1: DUP3
000031a2: ADD
000031a3: MSTORE
000031a4: PUSH1 0x40
000031a6: DUP4
000031a7: ADD
000031a8: CALLDATALOAD
000031a9: PUSH7 0xffffffffffffff
000031b1: DUP2
000031b2: AND
000031b3: DUP2
000031b4: EQ
000031b5: PUSH2 0x31bd
000031b8: JUMPI
000031b9: PUSH1 0x00
000031bb: DUP1
000031bc: REVERT
000031bd: JUMPDEST
000031be: PUSH1 0x40
000031c0: DUP3
000031c1: ADD
000031c2: MSTORE
000031c3: PUSH1 0x60
000031c5: DUP4
000031c6: ADD
000031c7: CALLDATALOAD
000031c8: PUSH1 0x01
000031ca: PUSH1 0x01
000031cc: PUSH1 0x68
000031ce: SHL
000031cf: SUB
000031d0: DUP2
000031d1: AND
000031d2: DUP2
000031d3: EQ
000031d4: PUSH2 0x31dc
000031d7: JUMPI
000031d8: PUSH1 0x00
000031da: DUP1
000031db: REVERT
000031dc: JUMPDEST
000031dd: PUSH1 0x60
000031df: DUP3
000031e0: ADD
000031e1: MSTORE
000031e2: SWAP4
000031e3: SWAP3
000031e4: POP
000031e5: POP
000031e6: POP
000031e7: JUMP
000031e8: JUMPDEST
000031e9: PUSH1 0x01
000031eb: DUP2
000031ec: DUP2
000031ed: SHR
000031ee: SWAP1
000031ef: DUP3
000031f0: AND
000031f1: DUP1
000031f2: PUSH2 0x31fc
000031f5: JUMPI
000031f6: PUSH1 0x7f
000031f8: DUP3
000031f9: AND
000031fa: SWAP2
000031fb: POP
000031fc: JUMPDEST
000031fd: PUSH1 0x20
000031ff: DUP3
00003200: LT
00003201: DUP2
00003202: SUB
00003203: PUSH2 0x321c
00003206: JUMPI
00003207: PUSH4 0x4e487b71
0000320c: PUSH1 0xe0
0000320e: SHL
0000320f: PUSH1 0x00
00003211: MSTORE
00003212: PUSH1 0x22
00003214: PUSH1 0x04
00003216: MSTORE
00003217: PUSH1 0x24
00003219: PUSH1 0x00
0000321b: REVERT
0000321c: JUMPDEST
0000321d: POP
0000321e: SWAP2
0000321f: SWAP1
00003220: POP
00003221: JUMP
00003222: JUMPDEST
00003223: PUSH1 0x20
00003225: DUP1
00003226: DUP3
00003227: MSTORE
00003228: PUSH1 0x07
0000322a: SWAP1
0000322b: DUP3
0000322c: ADD
0000322d: MSTORE
0000322e: PUSH7 0x08585b5bdd5b9d
00003236: PUSH1 0xca
00003238: SHL
00003239: PUSH1 0x40
0000323b: DUP3
0000323c: ADD
0000323d: MSTORE
0000323e: PUSH1 0x60
00003240: ADD
00003241: SWAP1
00003242: JUMP
00003243: JUMPDEST
00003244: PUSH4 0x4e487b71
00003249: PUSH1 0xe0
0000324b: SHL
0000324c: PUSH1 0x00
0000324e: MSTORE
0000324f: PUSH1 0x11
00003251: PUSH1 0x04
00003253: MSTORE
00003254: PUSH1 0x24
00003256: PUSH1 0x00
00003258: REVERT
00003259: JUMPDEST
0000325a: DUP2
0000325b: DUP2
0000325c: SUB
0000325d: DUP2
0000325e: DUP2
0000325f: GT
00003260: ISZERO
00003261: PUSH2 0x0b4b
00003264: JUMPI
00003265: PUSH2 0x0b4b
00003268: PUSH2 0x3243
0000326b: JUMP
0000326c: JUMPDEST
0000326d: PUSH1 0x20
0000326f: DUP1
00003270: DUP3
00003271: MSTORE
00003272: PUSH1 0x07
00003274: SWAP1
00003275: DUP3
00003276: ADD
00003277: MSTORE
00003278: PUSH7 0x217075626c6963
00003280: PUSH1 0xc8
00003282: SHL
00003283: PUSH1 0x40
00003285: DUP3
00003286: ADD
00003287: MSTORE
00003288: PUSH1 0x60
0000328a: ADD
0000328b: SWAP1
0000328c: JUMP
0000328d: JUMPDEST
0000328e: DUP1
0000328f: DUP3
00003290: ADD
00003291: DUP1
00003292: DUP3
00003293: GT
00003294: ISZERO
00003295: PUSH2 0x0b4b
00003298: JUMPI
00003299: PUSH2 0x0b4b
0000329c: PUSH2 0x3243
0000329f: JUMP
000032a0: JUMPDEST
000032a1: PUSH1 0x00
000032a3: PUSH1 0x20
000032a5: DUP3
000032a6: DUP5
000032a7: SUB
000032a8: SLT
000032a9: ISZERO
000032aa: PUSH2 0x32b2
000032ad: JUMPI
000032ae: PUSH1 0x00
000032b0: DUP1
000032b1: REVERT
000032b2: JUMPDEST
000032b3: POP
000032b4: MLOAD
000032b5: SWAP2
000032b6: SWAP1
000032b7: POP
000032b8: JUMP
000032b9: JUMPDEST
000032ba: PUSH1 0x20
000032bc: DUP1
000032bd: DUP3
000032be: MSTORE
000032bf: PUSH1 0x05
000032c1: SWAP1
000032c2: DUP3
000032c3: ADD
000032c4: MSTORE
000032c5: PUSH5 0x042ae8aa89
000032cb: PUSH1 0xdb
000032cd: SHL
000032ce: PUSH1 0x40
000032d0: DUP3
000032d1: ADD
000032d2: MSTORE
000032d3: PUSH1 0x60
000032d5: ADD
000032d6: SWAP1
000032d7: JUMP
000032d8: JUMPDEST
000032d9: PUSH1 0x20
000032db: DUP1
000032dc: DUP3
000032dd: MSTORE
000032de: PUSH1 0x06
000032e0: SWAP1
000032e1: DUP3
000032e2: ADD
000032e3: MSTORE
000032e4: PUSH6 0x2176616c7565
000032eb: PUSH1 0xd0
000032ed: SHL
000032ee: PUSH1 0x40
000032f0: DUP3
000032f1: ADD
000032f2: MSTORE
000032f3: PUSH1 0x60
000032f5: ADD
000032f6: SWAP1
000032f7: JUMP
000032f8: JUMPDEST
000032f9: PUSH1 0x01
000032fb: DUP2
000032fc: DUP2
000032fd: JUMPDEST
000032fe: DUP1
000032ff: DUP6
00003300: GT
00003301: ISZERO
00003302: PUSH2 0x3333
00003305: JUMPI
00003306: DUP2
00003307: PUSH1 0x00
00003309: NOT
0000330a: DIV
0000330b: DUP3
0000330c: GT
0000330d: ISZERO
0000330e: PUSH2 0x3319
00003311: JUMPI
00003312: PUSH2 0x3319
00003315: PUSH2 0x3243
00003318: JUMP
00003319: JUMPDEST
0000331a: DUP1
0000331b: DUP6
0000331c: AND
0000331d: ISZERO
0000331e: PUSH2 0x3326
00003321: JUMPI
00003322: SWAP2
00003323: DUP2
00003324: MUL
00003325: SWAP2
00003326: JUMPDEST
00003327: SWAP4
00003328: DUP5
00003329: SHR
0000332a: SWAP4
0000332b: SWAP1
0000332c: DUP1
0000332d: MUL
0000332e: SWAP1
0000332f: PUSH2 0x32fd
00003332: JUMP
00003333: JUMPDEST
00003334: POP
00003335: SWAP3
00003336: POP
00003337: SWAP3
00003338: SWAP1
00003339: POP
0000333a: JUMP
0000333b: JUMPDEST
0000333c: PUSH1 0x00
0000333e: DUP3
0000333f: PUSH2 0x334a
00003342: JUMPI
00003343: POP
00003344: PUSH1 0x01
00003346: PUSH2 0x0b4b
00003349: JUMP
0000334a: JUMPDEST
0000334b: DUP2
0000334c: PUSH2 0x3357
0000334f: JUMPI
00003350: POP
00003351: PUSH1 0x00
00003353: PUSH2 0x0b4b
00003356: JUMP
00003357: JUMPDEST
00003358: DUP2
00003359: PUSH1 0x01
0000335b: DUP2
0000335c: EQ
0000335d: PUSH2 0x336d
00003360: JUMPI
00003361: PUSH1 0x02
00003363: DUP2
00003364: EQ
00003365: PUSH2 0x3377
00003368: JUMPI
00003369: PUSH2 0x3393
0000336c: JUMP
0000336d: JUMPDEST
0000336e: PUSH1 0x01
00003370: SWAP2
00003371: POP
00003372: POP
00003373: PUSH2 0x0b4b
00003376: JUMP
00003377: JUMPDEST
00003378: PUSH1 0xff
0000337a: DUP5
0000337b: GT
0000337c: ISZERO
0000337d: PUSH2 0x3388
00003380: JUMPI
00003381: PUSH2 0x3388
00003384: PUSH2 0x3243
00003387: JUMP
00003388: JUMPDEST
00003389: POP
0000338a: POP
0000338b: PUSH1 0x01
0000338d: DUP3
0000338e: SHL
0000338f: PUSH2 0x0b4b
00003392: JUMP
00003393: JUMPDEST
00003394: POP
00003395: PUSH1 0x20
00003397: DUP4
00003398: LT
00003399: PUSH2 0x0133
0000339c: DUP4
0000339d: LT
0000339e: AND
0000339f: PUSH1 0x4e
000033a1: DUP5
000033a2: LT
000033a3: PUSH1 0x0b
000033a5: DUP5
000033a6: LT
000033a7: AND
000033a8: OR
000033a9: ISZERO
000033aa: PUSH2 0x33b6
000033ad: JUMPI
000033ae: POP
000033af: DUP2
000033b0: DUP2
000033b1: EXP
000033b2: PUSH2 0x0b4b
000033b5: JUMP
000033b6: JUMPDEST
000033b7: PUSH2 0x33c0
000033ba: DUP4
000033bb: DUP4
000033bc: PUSH2 0x32f8
000033bf: JUMP
000033c0: JUMPDEST
000033c1: DUP1
000033c2: PUSH1 0x00
000033c4: NOT
000033c5: DIV
000033c6: DUP3
000033c7: GT
000033c8: ISZERO
000033c9: PUSH2 0x33d4
000033cc: JUMPI
000033cd: PUSH2 0x33d4
000033d0: PUSH2 0x3243
000033d3: JUMP
000033d4: JUMPDEST
000033d5: MUL
000033d6: SWAP4
000033d7: SWAP3
000033d8: POP
000033d9: POP
000033da: POP
000033db: JUMP
000033dc: JUMPDEST
000033dd: PUSH1 0x00
000033df: PUSH2 0x0b70
000033e2: DUP4
000033e3: DUP4
000033e4: PUSH2 0x333b
000033e7: JUMP
000033e8: JUMPDEST
000033e9: DUP1
000033ea: DUP3
000033eb: MUL
000033ec: DUP2
000033ed: ISZERO
000033ee: DUP3
000033ef: DUP3
000033f0: DIV
000033f1: DUP5
000033f2: EQ
000033f3: OR
000033f4: PUSH2 0x0b4b
000033f7: JUMPI
000033f8: PUSH2 0x0b4b
000033fb: PUSH2 0x3243
000033fe: JUMP
000033ff: JUMPDEST
00003400: PUSH1 0x00
00003402: DUP3
00003403: PUSH2 0x341c
00003406: JUMPI
00003407: PUSH4 0x4e487b71
0000340c: PUSH1 0xe0
0000340e: SHL
0000340f: PUSH1 0x00
00003411: MSTORE
00003412: PUSH1 0x12
00003414: PUSH1 0x04
00003416: MSTORE
00003417: PUSH1 0x24
00003419: PUSH1 0x00
0000341b: REVERT
0000341c: JUMPDEST
0000341d: POP
0000341e: DIV
0000341f: SWAP1
00003420: JUMP
00003421: JUMPDEST
00003422: PUSH1 0x00
00003424: PUSH1 0x20
00003426: DUP3
00003427: DUP5
00003428: SUB
00003429: SLT
0000342a: ISZERO
0000342b: PUSH2 0x3433
0000342e: JUMPI
0000342f: PUSH1 0x00
00003431: DUP1
00003432: REVERT
00003433: JUMPDEST
00003434: DUP2
00003435: MLOAD
00003436: PUSH2 0x0b70
00003439: DUP2
0000343a: PUSH2 0x3085
0000343d: JUMP
0000343e: JUMPDEST
0000343f: PUSH1 0x00
00003441: DUP3
00003442: MLOAD
00003443: PUSH2 0x3450
00003446: DUP2
00003447: DUP5
00003448: PUSH1 0x20
0000344a: DUP8
0000344b: ADD
0000344c: PUSH2 0x2e54
0000344f: JUMP
00003450: JUMPDEST
00003451: SWAP2
00003452: SWAP1
00003453: SWAP2
00003454: ADD
00003455: SWAP3
00003456: SWAP2
00003457: POP
00003458: POP
00003459: JUMP
0000345a: INVALID
0000345b: LOG2
0000345c: PUSH5 0x6970667358
00003462: UNKNOWN(0x22)
00003463: SLT
00003464: KECCAK256
00003465: UNKNOWN(0xCC)
00003466: UNKNOWN(0xEE)
00003467: UNKNOWN(0xC2)
00003468: SWAP15
00003469: DUP4
0000346a: UNKNOWN(0xD3)
0000346b: UNKNOWN(0xE1)
0000346c: PUSH19 0x01141a80f2aa9789ba99e0c8200a654a28dd2a
00003480: UNKNOWN(0xCB)
00003481: UNKNOWN(0xA7)
00003482: MSIZE
00003483: PUSH11 0x1b64736f6c634300081400
0000348f: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high oracle codex Keeper-controlled currentBalance can arbitrarily skew pricePerShare and queued withdrawals 85 no
view
evidence_json
{
    "evidence": "rollToNextRound accepts a caller-supplied currentBalance and uses it directly in pricePerShare and queuedWithdrawAmount calculations, then transfers balance minus queuedWithdrawAmount to the keeper.",
    "locations": [
        "contracts/src/StreamVault.sol:489",
        "contracts/src/StreamVault.sol:499",
        "contracts/src/StreamVault.sol:519",
        "contracts/src/StreamVault.sol:544"
    ],
    "recommendation": "Derive currentBalance from on-chain data or a strategy contract with verifiable accounting (e.g., report-and-verify pattern), add bounds/consistency checks against observed balances, and/or gate rollToNextRound behind a timelock or multisig with monitored reporting.",
    "exploit_scenario": "A malicious or compromised keeper deposits before a round roll, then calls rollToNextRound with an artificially low currentBalance. This drives newPricePerShare down, mints excessive shares for their pending deposit, and reduces queuedWithdrawAmount. The vault then transfers a larger on-chain balance to the keeper, while queued withdrawers are underfunded. The keeper later redeems inflated shares to extract value from other holders."
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x0616dcca1a1f63e166fb060c483b094d96a7b6c96963b76e5a560f7f812d98a6
call_targets: 0xf3b466f09ef476e311ce275407cfb09a8d8de3a7
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x0616dcca1a1f63e166fb060c483b094d96a7b6c96963b76e5a560f7f812d98a6",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xf3b466f09ef476e311ce275407cfb09a8d8de3a7"
    ],
    "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": "0xf6203e35",
            "selector": "0xf6203e35",
            "calldata_variants": [
                "0xf6203e35",
                "0xf6203e350000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf6326fb3",
            "selector": "0xf6326fb3",
            "calldata_variants": [
                "0xf6326fb3",
                "0xf6326fb30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf656ba51",
            "selector": "0xf656ba51",
            "calldata_variants": [
                "0xf656ba51",
                "0xf656ba510000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf756fa21",
            "selector": "0xf756fa21",
            "calldata_variants": [
                "0xf756fa21",
                "0xf756fa210000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xeae1f265",
            "selector": "0xeae1f265",
            "calldata_variants": [
                "0xeae1f265",
                "0xeae1f2650000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf0b2c7e6",
            "selector": "0xf0b2c7e6",
            "calldata_variants": [
                "0xf0b2c7e6",
                "0xf0b2c7e60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc0ce93f1",
            "selector": "0xc0ce93f1",
            "calldata_variants": [
                "0xc0ce93f1",
                "0xc0ce93f10000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 6678,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 7561,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 8736,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 5,
    "guards_detected": [],
    "untrusted_call_count": 5
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x0616dcca1a1f63e166fb060c483b094d96a7b6c96963b76e5a560f7f812d98a6
call_targets: 0xf3b466f09ef476e311ce275407cfb09a8d8de3a7
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x0616dcca1a1f63e166fb060c483b094d96a7b6c96963b76e5a560f7f812d98a6",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xf3b466f09ef476e311ce275407cfb09a8d8de3a7"
    ],
    "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": "0xf6203e35",
            "selector": "0xf6203e35",
            "calldata_variants": [
                "0xf6203e35",
                "0xf6203e350000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf6326fb3",
            "selector": "0xf6326fb3",
            "calldata_variants": [
                "0xf6326fb3",
                "0xf6326fb30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf656ba51",
            "selector": "0xf656ba51",
            "calldata_variants": [
                "0xf656ba51",
                "0xf656ba510000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf756fa21",
            "selector": "0xf756fa21",
            "calldata_variants": [
                "0xf756fa21",
                "0xf756fa210000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xeae1f265",
            "selector": "0xeae1f265",
            "calldata_variants": [
                "0xeae1f265",
                "0xeae1f2650000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf0b2c7e6",
            "selector": "0xf0b2c7e6",
            "calldata_variants": [
                "0xf0b2c7e6",
                "0xf0b2c7e60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc0ce93f1",
            "selector": "0xc0ce93f1",
            "calldata_variants": [
                "0xc0ce93f1",
                "0xc0ce93f10000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 6678,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 7561,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 8736,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 5,
    "guards_detected": []
}
medium access_control codex Owner can change vault asset/decimals mid-flight, breaking accounting and withdrawals 75 no
view
evidence_json
{
    "evidence": "setVaultParams overwrites vaultParams with only minimal checks (non-zero cap/asset), allowing asset/decimals changes at any time.",
    "locations": [
        "contracts/src/StreamVault.sol:610",
        "contracts/src/StreamVault.sol:613"
    ],
    "recommendation": "Make asset/decimals immutable after deployment, or restrict parameter changes to times when totalSupply, totalPending, and queuedWithdrawShares are zero; consider timelocks and explicit migration flows for any parameter changes.",
    "exploit_scenario": "The owner calls setVaultParams to switch the asset or decimals while shares and pending deposits exist. Subsequent rolls/redemptions calculate shares against the new asset/decimals, potentially paying users in the wrong token or making withdrawals revert. The original asset can be stranded or later swept by toggling the asset back and rolling, effectively enabling a rug if the owner is malicious or compromised."
}