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

Analysis Run

3430da73-4891-4fc2-bd51-e14bb3caa70e

complete
Chain ID
1
Address
Block Number
Created
Thu, Jan 1, 2026 8:59 PM
Review Summary

What survived the funnel

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

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Untrusted DELEGATECALL target reachable
crit 0 high 0 proxy context implementation known
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
31128 report.consolidate complete 1 / 1 3 months ago
76582 artifact.fetch complete 1 / 3 1 week ago
76583 tool.cast_disasm complete 1 / 3 1 week ago
76584 analysis.bundle complete 1 / 3 1 week ago
76585 capability.graph complete 1 / 3 1 week ago
76586 detector.run complete 1 / 3 1 week ago
76587 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
1
No findings?
no
Summary
Found a concrete rounding exploit that lets liquidators extract vault yield without burning collateral shares.
View stderr
[codex:1007142] OpenAI Codex v0.77.0 (research preview)
[codex:1007142] --------
[codex:1007142] workdir: /tmp/codex-multi-uerlweg4
[codex:1007142] model: gpt-5.2-codex
[codex:1007142] provider: openai
[codex:1007142] approval: never
[codex:1007142] sandbox: read-only
[codex:1007142] reasoning effort: xhigh
[codex:1007142] reasoning summaries: auto
[codex:1007142] session id: 019b7b51-9329-7a71-9c37-55bedc437a68
[codex:1007142] --------
[codex:1007142] user
[codex:1007142] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:1007142] 
[codex:1007142] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:1007142] 
[codex:1007142] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:1007142] - Gas inefficiency, code quality, naming, or best practices
[codex:1007142] - Theoretical vulnerabilities without a clear extraction path
[codex:1007142] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:1007142] - Front-running unless it enables theft beyond MEV
[codex:1007142] - DoS, griefing, or issues that don't result in attacker profit
[codex:1007142] - Missing events, view function issues, or informational findings
[codex:1007142] 
[codex:1007142] HIGH-VALUE PATTERNS TO HUNT:
[codex:1007142] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:1007142] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:1007142] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:1007142] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:1007142] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:1007142] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:1007142] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:1007142] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:1007142] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:1007142] 
[codex:1007142] For each finding, you MUST provide:
[codex:1007142] 1. Exact file and line numbers of vulnerable code
[codex:1007142] 2. Step-by-step exploit transaction sequence
[codex:1007142] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:1007142] 
[codex:1007142] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:1007142] 
[codex:1007142] Output MUST be valid JSON matching the provided schema.
[codex:1007142] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:1007142] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:1007142] mcp startup: no servers
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Preparing to read AUDIT_BUNDLE.txt**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc ls in /tmp/codex-multi-uerlweg4 succeeded in 6ms:
[codex:1007142] AUDIT_BUNDLE.txt
[codex:1007142] codex-output-schema.json
[codex:1007142] contracts
[codex:1007142] exec
[codex:1007142] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-uerlweg4 succeeded in 6ms:
[codex:1007142] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:1007142] 
[codex:1007142] ================================================================================
[codex:1007142] FILE: contracts/contracts/base/Multicall.sol
[codex:1007142] ================================================================================
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142] 
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142] 
[codex:1007142] import {Address} from "@openzeppelin/contracts/utils/Address.sol";
[codex:1007142] import "../interfaces/IMulticall.sol";
[codex:1007142] 
[codex:1007142] /**
[codex:1007142]  * @title Multicall
[codex:1007142]  * @author StakeWise
[codex:1007142]  * @notice Enables calling multiple methods in a single call to the contract
[codex:1007142]  */
[codex:1007142] abstract contract Multicall is IMulticall {
[codex:1007142]     /// @inheritdoc IMulticall
[codex:1007142]     function multicall(bytes[] calldata data) external override returns (bytes[] memory results) {
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Searching for vulnerabilities**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc 'rg -n "withdraw|claim|redeem|mint|deposit|transfer" contracts/contracts -g "*.sol"' in /tmp/codex-multi-uerlweg4 succeeded in 9ms:
[codex:1007142] contracts/contracts/interfaces/IVaultEthStaking.sol:21:     * @return shares The number of shares minted
[codex:1007142] contracts/contracts/interfaces/IVaultEthStaking.sol:23:    function deposit(address receiver, address referrer) external payable returns (uint256 shares);
[codex:1007142] contracts/contracts/interfaces/IVaultEthStaking.sol:26:     * @notice Used by MEV escrow to transfer ETH.
[codex:1007142] contracts/contracts/interfaces/IVaultEthStaking.sol:31:     * @notice Donate assets to the Vault. Must transfer ETH together with the call.
[codex:1007142] contracts/contracts/interfaces/IVaultEthStaking.sol:36:     * @notice Updates Vault state and deposits ETH to the Vault
[codex:1007142] contracts/contracts/interfaces/IVaultEthStaking.sol:40:     * @return shares The number of shares minted
[codex:1007142] contracts/contracts/libraries/OsTokenUtils.sol:23:     * @param mintedAssets The amount of minted assets
[codex:1007142] contracts/contracts/libraries/OsTokenUtils.sol:24:     * @param depositedAssets The amount of deposited assets
[codex:1007142] contracts/contracts/libraries/OsTokenUtils.sol:25:     * @param redeemedOsTokenShares The amount of redeemed osToken shares
[codex:1007142] contracts/contracts/libraries/OsTokenUtils.sol:30:        uint256 mintedAssets;
[codex:1007142] contracts/contracts/libraries/OsTokenUtils.sol:31:        uint256 depositedAssets;
[codex:1007142] contracts/contracts/libraries/OsTokenUtils.sol:32:        uint256 redeemedOsTokenShares;
[codex:1007142] contracts/contracts/libraries/OsTokenUtils.sol:60:                Math.mulDiv(data.depositedAssets * _wad, config.liqThresholdPercent, data.mintedAssets * _maxPercent)
[codex:1007142] contracts/contracts/libraries/OsTokenUtils.sol:66:                osTokenVaultController.convertToAssets(data.redeemedOsTokenShares), config.liqBonusPercent, _maxPercent
[codex:1007142] contracts/contracts/libraries/OsTokenUtils.sol:69:            receivedAssets = osTokenVaultController.convertToAssets(data.redeemedOsTokenShares);
[codex:1007142] contracts/contracts/libraries/OsTokenUtils.sol:73:        if (receivedAssets > data.depositedAssets || receivedAssets > data.availableAssets) {
[codex:1007142] contracts/contracts/interfaces/IEthValidatorsRegistry.sol:10: * @notice This is the Ethereum validators deposit contract interface.
[codex:1007142] contracts/contracts/interfaces/IEthValidatorsRegistry.sol:11: *         See https://github.com/ethereum/consensus-specs/blob/v1.2.0/solidity_deposit_contract/deposit_contract.sol.
[codex:1007142] contracts/contracts/interfaces/IEthValidatorsRegistry.sol:17:    /// @param withdrawal_credentials Commitment to a public key for withdrawals.
[codex:1007142] contracts/contracts/interfaces/IEthValidatorsRegistry.sol:19:    /// @param deposit_data_root The SHA-256 hash of the SSZ-encoded DepositData object.
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Inspecting key files for vulnerabilities**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,240p' contracts/contracts/vaults/modules/VaultEnterExit.sol" in /tmp/codex-multi-uerlweg4 succeeded in 5ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142] 
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142] 
[codex:1007142] import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
[codex:1007142] import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol";
[codex:1007142] import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
[codex:1007142] import {IVaultEnterExit} from "../../interfaces/IVaultEnterExit.sol";
[codex:1007142] import {ExitQueue} from "../../libraries/ExitQueue.sol";
[codex:1007142] import {Errors} from "../../libraries/Errors.sol";
[codex:1007142] import {VaultImmutables} from "./VaultImmutables.sol";
[codex:1007142] import {VaultState} from "./VaultState.sol";
[codex:1007142] 
[codex:1007142] /**
[codex:1007142]  * @title VaultEnterExit
[codex:1007142]  * @author StakeWise
[codex:1007142]  * @notice Defines the functionality for entering and exiting the Vault
[codex:1007142]  */
[codex:1007142] abstract contract VaultEnterExit is VaultImmutables, Initializable, VaultState, IVaultEnterExit {
[codex:1007142]     using ExitQueue for ExitQueue.History;
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Inspecting _transferVaultAssets usage**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,220p' contracts/contracts/vaults/modules/VaultEthStaking.sol" in /tmp/codex-multi-uerlweg4 succeeded in 6ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142] 
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142] 
[codex:1007142] import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
[codex:1007142] import {Address} from "@openzeppelin/contracts/utils/Address.sol";
[codex:1007142] import {IEthValidatorsRegistry} from "../../interfaces/IEthValidatorsRegistry.sol";
[codex:1007142] import {IKeeperRewards} from "../../interfaces/IKeeperRewards.sol";
[codex:1007142] import {IVaultEthStaking} from "../../interfaces/IVaultEthStaking.sol";
[codex:1007142] import {Errors} from "../../libraries/Errors.sol";
[codex:1007142] import {ValidatorUtils} from "../../libraries/ValidatorUtils.sol";
[codex:1007142] import {VaultValidators} from "./VaultValidators.sol";
[codex:1007142] import {VaultState} from "./VaultState.sol";
[codex:1007142] import {VaultEnterExit} from "./VaultEnterExit.sol";
[codex:1007142] import {VaultMev} from "./VaultMev.sol";
[codex:1007142] 
[codex:1007142] /**
[codex:1007142]  * @title VaultEthStaking
[codex:1007142]  * @author StakeWise
[codex:1007142]  * @notice Defines the Ethereum staking functionality for the Vault
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Analyzing reentrancy protection and potential vulnerabilities**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,260p' contracts/contracts/vaults/modules/VaultOsToken.sol" in /tmp/codex-multi-uerlweg4 succeeded in 6ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142] 
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142] 
[codex:1007142] import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
[codex:1007142] import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol";
[codex:1007142] import {IOsTokenVaultController} from "../../interfaces/IOsTokenVaultController.sol";
[codex:1007142] import {IOsTokenConfig} from "../../interfaces/IOsTokenConfig.sol";
[codex:1007142] import {IVaultOsToken} from "../../interfaces/IVaultOsToken.sol";
[codex:1007142] import {IOsTokenVaultEscrow} from "../../interfaces/IOsTokenVaultEscrow.sol";
[codex:1007142] import {Errors} from "../../libraries/Errors.sol";
[codex:1007142] import {VaultImmutables} from "./VaultImmutables.sol";
[codex:1007142] import {VaultEnterExit, IVaultEnterExit} from "./VaultEnterExit.sol";
[codex:1007142] import {VaultState} from "./VaultState.sol";
[codex:1007142] import {OsTokenUtils} from "../../libraries/OsTokenUtils.sol";
[codex:1007142] 
[codex:1007142] /**
[codex:1007142]  * @title VaultOsToken
[codex:1007142]  * @author StakeWise
[codex:1007142]  * @notice Defines the functionality for minting OsToken
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '260,520p' contracts/contracts/vaults/modules/VaultOsToken.sol" in /tmp/codex-multi-uerlweg4 succeeded in 6ms:
[codex:1007142]     /**
[codex:1007142]      * @dev Internal function for syncing the osToken fee
[codex:1007142]      * @param position The position to sync the fee for
[codex:1007142]      */
[codex:1007142]     function _syncPositionFee(OsTokenPosition memory position) private view {
[codex:1007142]         // fetch current cumulative fee per share
[codex:1007142]         uint256 cumulativeFeePerShare = _osTokenVaultController.cumulativeFeePerShare();
[codex:1007142] 
[codex:1007142]         // check whether fee is already up to date
[codex:1007142]         if (cumulativeFeePerShare == position.cumulativeFeePerShare) return;
[codex:1007142] 
[codex:1007142]         // add treasury fee to the position
[codex:1007142]         position.shares =
[codex:1007142]             SafeCast.toUint128(Math.mulDiv(position.shares, cumulativeFeePerShare, position.cumulativeFeePerShare));
[codex:1007142]         position.cumulativeFeePerShare = SafeCast.toUint128(cumulativeFeePerShare);
[codex:1007142]     }
[codex:1007142] 
[codex:1007142]     /**
[codex:1007142]      * @notice Internal function for checking position validity. Reverts if it is invalid.
[codex:1007142]      * @param user The address of the user
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Analyzing osToken share burning logic**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,260p' contracts/contracts/OsTokenVaultEscrow.sol" in /tmp/codex-multi-uerlweg4 exited 2 in 5ms:
[codex:1007142] sed: can't read contracts/contracts/OsTokenVaultEscrow.sol: No such file or directory
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Searching for file using rg**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc 'rg -n "contract OsTokenVaultEscrow|OsTokenVaultEscrow" contracts/contracts -g "*.sol"' in /tmp/codex-multi-uerlweg4 succeeded in 9ms:
[codex:1007142] contracts/contracts/interfaces/IOsTokenVaultEscrow.sol:8: * @title IOsTokenVaultEscrow
[codex:1007142] contracts/contracts/interfaces/IOsTokenVaultEscrow.sol:10: * @notice Interface for OsTokenVaultEscrow contract
[codex:1007142] contracts/contracts/interfaces/IOsTokenVaultEscrow.sol:12:interface IOsTokenVaultEscrow is IMulticall {
[codex:1007142] contracts/contracts/interfaces/IVaultOsToken.sol:119:     * @notice Transfers minted osToken shares to the OsTokenVaultEscrow contract, enters the exit queue for staked assets
[codex:1007142] contracts/contracts/vaults/modules/VaultOsToken.sol:10:import {IOsTokenVaultEscrow} from "../../interfaces/IOsTokenVaultEscrow.sol";
[codex:1007142] contracts/contracts/vaults/modules/VaultOsToken.sol:32:    IOsTokenVaultEscrow private immutable _osTokenVaultEscrow;
[codex:1007142] contracts/contracts/vaults/modules/VaultOsToken.sol:42:     * @param osTokenVaultEscrow The address of the OsTokenVaultEscrow contract
[codex:1007142] contracts/contracts/vaults/modules/VaultOsToken.sol:48:        _osTokenVaultEscrow = IOsTokenVaultEscrow(osTokenVaultEscrow);
[codex:1007142] contracts/contracts/interfaces/IEthVault.sol:44:     * @param osTokenVaultEscrow The address of the OsTokenVaultEscrow contract
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Exploring related vault modules**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,220p' contracts/contracts/vaults/ethereum/EthVault.sol" in /tmp/codex-multi-uerlweg4 succeeded in 5ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142] 
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142] 
[codex:1007142] import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
[codex:1007142] import {IEthVault} from "../../interfaces/IEthVault.sol";
[codex:1007142] import {IEthVaultFactory} from "../../interfaces/IEthVaultFactory.sol";
[codex:1007142] import {IKeeperRewards} from "../../interfaces/IKeeperRewards.sol";
[codex:1007142] import {Multicall} from "../../base/Multicall.sol";
[codex:1007142] import {VaultValidators} from "../modules/VaultValidators.sol";
[codex:1007142] import {VaultAdmin} from "../modules/VaultAdmin.sol";
[codex:1007142] import {VaultFee} from "../modules/VaultFee.sol";
[codex:1007142] import {VaultVersion, IVaultVersion} from "../modules/VaultVersion.sol";
[codex:1007142] import {VaultImmutables} from "../modules/VaultImmutables.sol";
[codex:1007142] import {VaultState} from "../modules/VaultState.sol";
[codex:1007142] import {VaultEnterExit, IVaultEnterExit} from "../modules/VaultEnterExit.sol";
[codex:1007142] import {VaultOsToken} from "../modules/VaultOsToken.sol";
[codex:1007142] import {VaultEthStaking} from "../modules/VaultEthStaking.sol";
[codex:1007142] import {VaultMev} from "../modules/VaultMev.sol";
[codex:1007142] 
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Considering EthGenesisVault**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,260p' contracts/contracts/vaults/ethereum/EthGenesisVault.sol" in /tmp/codex-multi-uerlweg4 succeeded in 6ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142] 
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142] 
[codex:1007142] import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
[codex:1007142] import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol";
[codex:1007142] import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
[codex:1007142] import {IVaultVersion} from "../../interfaces/IVaultVersion.sol";
[codex:1007142] import {IEthPoolEscrow} from "../../interfaces/IEthPoolEscrow.sol";
[codex:1007142] import {IEthGenesisVault} from "../../interfaces/IEthGenesisVault.sol";
[codex:1007142] import {IRewardEthToken} from "../../interfaces/IRewardEthToken.sol";
[codex:1007142] import {Errors} from "../../libraries/Errors.sol";
[codex:1007142] import {ValidatorUtils} from "../../libraries/ValidatorUtils.sol";
[codex:1007142] import {VaultValidators} from "../modules/VaultValidators.sol";
[codex:1007142] import {VaultEnterExit} from "../modules/VaultEnterExit.sol";
[codex:1007142] import {VaultEthStaking} from "../modules/VaultEthStaking.sol";
[codex:1007142] import {VaultState, IVaultState} from "../modules/VaultState.sol";
[codex:1007142] import {EthVault, IEthVault} from "./EthVault.sol";
[codex:1007142] 
[codex:1007142] /**
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Inspecting Vault modules for access issues**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,220p' contracts/contracts/vaults/modules/VaultAdmin.sol" in /tmp/codex-multi-uerlweg4 succeeded in 6ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142] 
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142] 
[codex:1007142] import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
[codex:1007142] import {IVaultAdmin} from "../../interfaces/IVaultAdmin.sol";
[codex:1007142] import {Errors} from "../../libraries/Errors.sol";
[codex:1007142] 
[codex:1007142] /**
[codex:1007142]  * @title VaultAdmin
[codex:1007142]  * @author StakeWise
[codex:1007142]  * @notice Defines the admin functionality for the Vault
[codex:1007142]  */
[codex:1007142] abstract contract VaultAdmin is Initializable, IVaultAdmin {
[codex:1007142]     /// @inheritdoc IVaultAdmin
[codex:1007142]     address public override admin;
[codex:1007142] 
[codex:1007142]     /// @inheritdoc IVaultAdmin
[codex:1007142]     function setMetadata(string calldata metadataIpfsHash) external override {
[codex:1007142]         _checkAdmin();
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Checking VaultFee**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,260p' contracts/contracts/vaults/modules/VaultFee.sol" in /tmp/codex-multi-uerlweg4 succeeded in 5ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142] 
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142] 
[codex:1007142] import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
[codex:1007142] import {IVaultFee} from "../../interfaces/IVaultFee.sol";
[codex:1007142] import {Errors} from "../../libraries/Errors.sol";
[codex:1007142] import {VaultAdmin} from "./VaultAdmin.sol";
[codex:1007142] import {VaultImmutables} from "./VaultImmutables.sol";
[codex:1007142] 
[codex:1007142] /**
[codex:1007142]  * @title VaultFee
[codex:1007142]  * @author StakeWise
[codex:1007142]  * @notice Defines the fee functionality for the Vault
[codex:1007142]  */
[codex:1007142] abstract contract VaultFee is VaultImmutables, Initializable, VaultAdmin, IVaultFee {
[codex:1007142]     uint256 internal constant _maxFeePercent = 10_000; // @dev 100.00 %
[codex:1007142]     uint256 private constant _feeUpdateDelay = 3 days;
[codex:1007142]     uint256 private constant _feeUpdateMultiplier = 120;
[codex:1007142]     uint256 private constant _feeUpdateBase = 100;
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Checking VaultMev usage**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,220p' contracts/contracts/vaults/modules/VaultMev.sol" in /tmp/codex-multi-uerlweg4 succeeded in 5ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142] 
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142] 
[codex:1007142] import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
[codex:1007142] import {IKeeperRewards} from "../../interfaces/IKeeperRewards.sol";
[codex:1007142] import {ISharedMevEscrow} from "../../interfaces/ISharedMevEscrow.sol";
[codex:1007142] import {IOwnMevEscrow} from "../../interfaces/IOwnMevEscrow.sol";
[codex:1007142] import {IVaultMev} from "../../interfaces/IVaultMev.sol";
[codex:1007142] import {VaultState} from "./VaultState.sol";
[codex:1007142] 
[codex:1007142] /**
[codex:1007142]  * @title VaultMev
[codex:1007142]  * @author StakeWise
[codex:1007142]  * @notice Defines the Vaults' MEV functionality
[codex:1007142]  */
[codex:1007142] abstract contract VaultMev is Initializable, VaultState, IVaultMev {
[codex:1007142]     /// @custom:oz-upgrades-unsafe-allow state-variable-immutable
[codex:1007142]     address private immutable _sharedMevEscrow;
[codex:1007142]     address private _ownMevEscrow;
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Identifying key VaultState**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,260p' contracts/contracts/vaults/modules/VaultState.sol" in /tmp/codex-multi-uerlweg4 succeeded in 5ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142] 
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142] 
[codex:1007142] import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
[codex:1007142] import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol";
[codex:1007142] import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
[codex:1007142] import {IVaultState} from "../../interfaces/IVaultState.sol";
[codex:1007142] import {IKeeperRewards} from "../../interfaces/IKeeperRewards.sol";
[codex:1007142] import {ExitQueue} from "../../libraries/ExitQueue.sol";
[codex:1007142] import {Errors} from "../../libraries/Errors.sol";
[codex:1007142] import {VaultImmutables} from "./VaultImmutables.sol";
[codex:1007142] import {VaultFee} from "./VaultFee.sol";
[codex:1007142] 
[codex:1007142] /**
[codex:1007142]  * @title VaultState
[codex:1007142]  * @author StakeWise
[codex:1007142]  * @notice Defines Vault's state manipulation
[codex:1007142]  */
[codex:1007142] abstract contract VaultState is VaultImmutables, Initializable, VaultFee, IVaultState {
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Analyzing potential reentrancy risks**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,260p' contracts/contracts/libraries/ValidatorUtils.sol" in /tmp/codex-multi-uerlweg4 succeeded in 5ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142] 
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142] 
[codex:1007142] import {Address} from "@openzeppelin/contracts/utils/Address.sol";
[codex:1007142] import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol";
[codex:1007142] import {SignatureChecker} from "@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol";
[codex:1007142] import {IVaultValidators} from "../interfaces/IVaultValidators.sol";
[codex:1007142] import {Errors} from "./Errors.sol";
[codex:1007142] 
[codex:1007142] /**
[codex:1007142]  * @title ValidatorUtils
[codex:1007142]  * @author StakeWise
[codex:1007142]  * @notice Includes functionality for managing the validators
[codex:1007142]  */
[codex:1007142] library ValidatorUtils {
[codex:1007142]     bytes32 private constant _validatorsManagerTypeHash =
[codex:1007142]         keccak256("VaultValidators(bytes32 validatorsRegistryRoot,bytes validators)");
[codex:1007142]     uint256 private constant _validatorV1DepositLength = 176;
[codex:1007142]     uint256 private constant _validatorV2DepositLength = 184;
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '260,520p' contracts/contracts/libraries/ValidatorUtils.sol" in /tmp/codex-multi-uerlweg4 succeeded in 5ms:
[codex:1007142]         }
[codex:1007142] 
[codex:1007142]         uint256 totalFeeAssets = msg.value;
[codex:1007142] 
[codex:1007142]         // Process each validator
[codex:1007142]         uint256 startIndex;
[codex:1007142]         for (uint256 i = 0; i < validatorsCount;) {
[codex:1007142]             // consolidate validators
[codex:1007142]             (bytes calldata sourcePublicKey, bytes calldata destPublicKey, uint256 feePaid) = consolidateValidator(
[codex:1007142]                 validators[startIndex:startIndex + _validatorConsolidationLength], validatorsConsolidations
[codex:1007142]             );
[codex:1007142] 
[codex:1007142]             // check whether the destination public key is tracked or approved
[codex:1007142]             bytes32 destPubKeyHash = keccak256(destPublicKey);
[codex:1007142]             if (consolidationsApproved) {
[codex:1007142]                 v2Validators[destPubKeyHash] = true;
[codex:1007142]             } else if (!v2Validators[destPubKeyHash]) {
[codex:1007142]                 revert Errors.InvalidValidators();
[codex:1007142]             }
[codex:1007142] 
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Analyzing potential vulnerabilities in ValidatorUtils and related functions**
[codex:1007142] 
[codex:1007142] I'm scrutinizing the use of Address.sendValue in ValidatorUtils and how nonReentrant protections apply in withdrawValidators and consolidateValidators. I'm also evaluating asset share conversions, underflow checks, and whether any logic gaps could cause reverts or unintended profit. I'm curious about how multicall’s delegatecall and claimExitedAssets might open vulnerabilities, so I plan to check ExitQueue next.
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,260p' contracts/contracts/libraries/ExitQueue.sol" in /tmp/codex-multi-uerlweg4 succeeded in 5ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142] 
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142] 
[codex:1007142] import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
[codex:1007142] import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol";
[codex:1007142] import {Errors} from "./Errors.sol";
[codex:1007142] 
[codex:1007142] /**
[codex:1007142]  * @title ExitQueue
[codex:1007142]  * @author StakeWise
[codex:1007142]  * @notice ExitQueue represent checkpoints of burned shares and exited assets
[codex:1007142]  */
[codex:1007142] library ExitQueue {
[codex:1007142]     /**
[codex:1007142]      * @notice A struct containing checkpoint data
[codex:1007142]      * @param totalTickets The cumulative number of tickets (shares) exited
[codex:1007142]      * @param exitedAssets The number of assets that exited in this checkpoint
[codex:1007142]      */
[codex:1007142]     struct Checkpoint {
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Checking OsTokenUtils for issues**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,240p' contracts/contracts/libraries/OsTokenUtils.sol" in /tmp/codex-multi-uerlweg4 succeeded in 5ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142] 
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142] 
[codex:1007142] import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
[codex:1007142] import {IOsTokenConfig} from "../interfaces/IOsTokenConfig.sol";
[codex:1007142] import {IOsTokenVaultController} from "../interfaces/IOsTokenVaultController.sol";
[codex:1007142] import {Errors} from "./Errors.sol";
[codex:1007142] 
[codex:1007142] /**
[codex:1007142]  * @title OsTokenUtils
[codex:1007142]  * @author StakeWise
[codex:1007142]  * @notice Includes functionality for handling osToken redemptions
[codex:1007142]  */
[codex:1007142] library OsTokenUtils {
[codex:1007142]     uint256 private constant _wad = 1e18;
[codex:1007142]     uint256 private constant _hfLiqThreshold = 1e18;
[codex:1007142]     uint256 private constant _maxPercent = 1e18;
[codex:1007142]     uint256 private constant _disabledLiqThreshold = type(uint64).max;
[codex:1007142] 
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Analyzing asset calculations and state updates**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,260p' contracts/contracts/vaults/modules/VaultImmutables.sol" in /tmp/codex-multi-uerlweg4 succeeded in 6ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142] 
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142] 
[codex:1007142] import {IKeeperRewards} from "../../interfaces/IKeeperRewards.sol";
[codex:1007142] import {Errors} from "../../libraries/Errors.sol";
[codex:1007142] 
[codex:1007142] /**
[codex:1007142]  * @title VaultImmutables
[codex:1007142]  * @author StakeWise
[codex:1007142]  * @notice Defines the Vault common immutable variables and check functions.
[codex:1007142]  */
[codex:1007142] abstract contract VaultImmutables {
[codex:1007142]     /// @custom:oz-upgrades-unsafe-allow state-variable-immutable
[codex:1007142]     address internal immutable _keeper;
[codex:1007142] 
[codex:1007142]     /// @custom:oz-upgrades-unsafe-allow state-variable-immutable
[codex:1007142]     address internal immutable _vaultsRegistry;
[codex:1007142] 
[codex:1007142]     /**
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Analyzing potential initialize vulnerability**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,260p' contracts/contracts/vaults/ethereum/EthVaultFactory.sol" in /tmp/codex-multi-uerlweg4 exited 2 in 5ms:
[codex:1007142] sed: can't read contracts/contracts/vaults/ethereum/EthVaultFactory.sol: No such file or directory
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Searching in other folders**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc 'rg -n "contract EthVaultFactory|VaultFactory" contracts/contracts -g "*.sol"' in /tmp/codex-multi-uerlweg4 succeeded in 10ms:
[codex:1007142] contracts/contracts/interfaces/IEthVaultFactory.sol:6: * @title IEthVaultFactory
[codex:1007142] contracts/contracts/interfaces/IEthVaultFactory.sol:10:interface IEthVaultFactory {
[codex:1007142] contracts/contracts/vaults/ethereum/EthVault.sol:7:import {IEthVaultFactory} from "../../interfaces/IEthVaultFactory.sol";
[codex:1007142] contracts/contracts/vaults/ethereum/EthVault.sol:76:            IEthVaultFactory(msg.sender).vaultAdmin(),
[codex:1007142] contracts/contracts/vaults/ethereum/EthVault.sol:77:            IEthVaultFactory(msg.sender).ownMevEscrow(),
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Analyzing potential security and reentrancy issues**
[codex:1007142] 
[codex:1007142] I'm carefully reviewing the proxy initialization, upgrade authorization, multicall delegate calls, and access control logic around validator registration and fund management to identify if any exploitable vulnerabilities or replay attacks might exist. Since the factory code is missing, I can't fully confirm risks, but I'm scrutinizing patterns like nonReentrant usage in multicall, signature nonce handling, and validator deposit flows for possible attack vectors or unintended consequences.
[codex:1007142] exec
[codex:1007142] /bin/bash -lc 'rg -n "contract DepositDataRegistry" -n contracts/contracts -g "*.sol"' in /tmp/codex-multi-uerlweg4 exited 1 in 10ms:
[codex:1007142] 
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Searching for deposit data contracts**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc 'rg -n "DepositDataRegistry" contracts/contracts -g "*.sol"' in /tmp/codex-multi-uerlweg4 succeeded in 10ms:
[codex:1007142] contracts/contracts/interfaces/IDepositDataRegistry.sol:10: * @title IDepositDataRegistry
[codex:1007142] contracts/contracts/interfaces/IDepositDataRegistry.sol:12: * @notice Defines the interface for DepositDataRegistry
[codex:1007142] contracts/contracts/interfaces/IDepositDataRegistry.sol:14:interface IDepositDataRegistry is IMulticall {
[codex:1007142] contracts/contracts/interfaces/IEthVault.sol:46:     * @param depositDataRegistry The address of the DepositDataRegistry contract
[codex:1007142] contracts/contracts/interfaces/IVaultValidators.sol:130:     * @notice Function for updating the validators manager. Can only be called by the admin. Default is the DepositDataRegistry contract.
[codex:1007142] contracts/contracts/vaults/modules/VaultValidators.sol:10:import {IDepositDataRegistry} from "../../interfaces/IDepositDataRegistry.sol";
[codex:1007142] contracts/contracts/vaults/modules/VaultValidators.sol:49:    /// deprecated. Deposit data management is moved to DepositDataRegistry contract
[codex:1007142] contracts/contracts/vaults/modules/VaultValidators.sol:52:    /// deprecated. Deposit data management is moved to DepositDataRegistry contract
[codex:1007142] contracts/contracts/vaults/modules/VaultValidators.sol:250:        // migrate deposit data variables to DepositDataRegistry contract
[codex:1007142] contracts/contracts/vaults/modules/VaultValidators.sol:252:            IDepositDataRegistry(_depositDataRegistry).migrate(
[codex:1007142] 
[codex:1007142] 
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Analyzing potential multicall and reentrancy risks**
[codex:1007142] 
[codex:1007142] I’m examining possible exploits around multicall with delegatecall and msg.value handling, particularly if depositing ETH multiple times with a single payment inflates shares, causing imbalance in vault accounting. I’m also checking reentrancy guards and whether non-payable multicall blocks exploit paths, while considering access controls and intricacies of various internal state updates and external calls. Let’s explore if any logical loopholes allow unauthorized profit.
[codex:1007142] thinking
[codex:1007142] **Evaluating rounding and deposit timing vulnerabilities**
[codex:1007142] 
[codex:1007142] I’m exploring how rounding up on share minting might let small deposits yield disproportionate shares, potentially leading to repeated tiny profits that drain value over time. I’m also checking if entering exit queues before harvest updates can be exploited for stale pricing benefits and whether external calls in escrow interactions could open reentrancy risks. There’s a lot here to consider around state timing and share accounting nuances!
[codex:1007142] thinking
[codex:1007142] **Investigating validators signature replay and redemption mechanics**
[codex:1007142] 
[codex:1007142] I’m examining how validatorsManager nonce handling might allow repeated validator registrations and whether that can be leveraged beyond griefing. I’m also scrutinizing redeemOsToken’s logic, where burning shares from one account redeems collateral from another’s position, which seems unusual—this could be a subtle risk or an intended feature linked to liquidation flows. I want to understand if any of these mechanics open exploitable paths.
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,260p' contracts/contracts/interfaces/IOsTokenVaultEscrow.sol" in /tmp/codex-multi-uerlweg4 succeeded in 8ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142] 
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142] 
[codex:1007142] import {IMulticall} from "./IMulticall.sol";
[codex:1007142] 
[codex:1007142] /**
[codex:1007142]  * @title IOsTokenVaultEscrow
[codex:1007142]  * @author StakeWise
[codex:1007142]  * @notice Interface for OsTokenVaultEscrow contract
[codex:1007142]  */
[codex:1007142] interface IOsTokenVaultEscrow is IMulticall {
[codex:1007142]     /**
[codex:1007142]      * @notice Struct to store the escrow position details
[codex:1007142]      * @param owner The address of the assets owner
[codex:1007142]      * @param exitedAssets The amount of assets exited and ready to be claimed
[codex:1007142]      * @param osTokenShares The amount of osToken shares
[codex:1007142]      * @param cumulativeFeePerShare The cumulative fee per share used to calculate the osToken fee
[codex:1007142]      */
[codex:1007142]     struct Position {
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Reviewing security aspects and token redemption logic**
[codex:1007142] 
[codex:1007142] I'm analyzing various contract functions related to exit queues, asset transfers, and token redemption, checking for vulnerabilities like reentrancy, underflow, and improper access controls. I'm especially curious about how the transferable osToken shares allow redemption against others' collateral and the role of the redeemer contract in controlling that flow. I want to verify EIP712 signature validation next to see if that could be a risk.
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "sed -n '1,220p' contracts/contracts/libraries/EIP712Utils.sol" in /tmp/codex-multi-uerlweg4 succeeded in 6ms:
[codex:1007142] // SPDX-License-Identifier: BUSL-1.1
[codex:1007142] 
[codex:1007142] pragma solidity ^0.8.22;
[codex:1007142] 
[codex:1007142] /**
[codex:1007142]  * @title EIP712Utils
[codex:1007142]  * @author StakeWise
[codex:1007142]  * @notice Includes functionality for calculating EIP712 hashes
[codex:1007142]  */
[codex:1007142] library EIP712Utils {
[codex:1007142]     bytes32 private constant _domainTypeHash =
[codex:1007142]         keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)");
[codex:1007142]     bytes32 private constant _versionHash = keccak256("1");
[codex:1007142] 
[codex:1007142]     /**
[codex:1007142]      * @notice Computes the hash of the EIP712 typed data
[codex:1007142]      * @dev This function is used to compute the hash of the EIP712 typed data
[codex:1007142]      * @param name The name of the domain
[codex:1007142]      * @param verifyingContract The address of the verifying contract
[codex:1007142]      * @return The hash of the EIP712 typed data
[codex:1007142] 
[codex:1007142] 
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Analyzing potential arithmetic and access control issues**
[codex:1007142] 
[codex:1007142] I'm exploring various edge cases in the contract involving initialization, access control, reentrancy, and especially subtle arithmetic rounding in token redemption that could let a user withdraw assets without properly reducing their stake, possibly allowing value extraction at others' expense. I'm piecing together how shares, assets, and rounding checks interplay to see if this results in exploitable profit or denial-of-service.
[codex:1007142] thinking
[codex:1007142] **Examining rounding effects on share burning and yield extraction**
[codex:1007142] 
[codex:1007142] I'm working through how the share price above one enables tiny redemptions that burn zero shares due to rounding down, allowing extraction of accrued rewards without reducing collateral shares. This lets a user siphon the vault’s extra yield by fragmenting redemptions, potentially profiting by shifting losses onto other shareholders. The next step is confirming conditions and limits around minting, redeeming, and pulling this off practically.
[codex:1007142] thinking
[codex:1007142] **Reviewing redemption restrictions and related access controls**
[codex:1007142] 
[codex:1007142] I'm verifying how redeemOsToken’s restriction to a specific redeemer address limits the rounding exploit, considering that liquidation path requires undercollateralization and that self-liquidation might be blocked. At the same time, I'm looking into other subtle issues like exit queue timing, pending rewards or penalties affecting withdrawals, and potential for reentrancy or timestamp manipulation in exit processing. Next, I’ll locate the exact code for _redeemOsToken to get precise line info for reference.
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "nl -ba contracts/contracts/vaults/modules/VaultOsToken.sol | sed -n '200,320p'" in /tmp/codex-multi-uerlweg4 succeeded in 7ms:
[codex:1007142]    200	        // emit event
[codex:1007142]    201	        emit OsTokenMinted(owner, receiver, assets, osTokenShares, referrer);
[codex:1007142]    202	    }
[codex:1007142]    203	
[codex:1007142]    204	    /**
[codex:1007142]    205	     * @dev Internal function for redeeming and liquidating osToken shares
[codex:1007142]    206	     * @param owner The minter of the osToken shares
[codex:1007142]    207	     * @param receiver The receiver of the assets
[codex:1007142]    208	     * @param osTokenShares The amount of osToken shares to redeem or liquidate
[codex:1007142]    209	     * @param isLiquidation Whether the liquidation or redemption is being performed
[codex:1007142]    210	     * @return burnedShares The amount of shares burned
[codex:1007142]    211	     * @return receivedAssets The amount of assets received
[codex:1007142]    212	     */
[codex:1007142]    213	    function _redeemOsToken(address owner, address receiver, uint256 osTokenShares, bool isLiquidation)
[codex:1007142]    214	        private
[codex:1007142]    215	        returns (uint256 burnedShares, uint256 receivedAssets)
[codex:1007142]    216	    {
[codex:1007142]    217	        if (receiver == address(0)) revert Errors.ZeroAddress();
[codex:1007142]    218	        _checkHarvested();
[codex:1007142]    219	
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Verifying share rounding logic**
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "nl -ba contracts/contracts/vaults/modules/VaultState.sol | sed -n '40,140p'" in /tmp/codex-multi-uerlweg4 succeeded in 6ms:
[codex:1007142]     40	    /// @inheritdoc IVaultState
[codex:1007142]     41	    function totalShares() external view override returns (uint256) {
[codex:1007142]     42	        return _totalShares;
[codex:1007142]     43	    }
[codex:1007142]     44	
[codex:1007142]     45	    /// @inheritdoc IVaultState
[codex:1007142]     46	    function totalAssets() external view override returns (uint256) {
[codex:1007142]     47	        return _totalAssets;
[codex:1007142]     48	    }
[codex:1007142]     49	
[codex:1007142]     50	    /// @inheritdoc IVaultState
[codex:1007142]     51	    function getExitQueueData()
[codex:1007142]     52	        external
[codex:1007142]     53	        view
[codex:1007142]     54	        override
[codex:1007142]     55	        returns (
[codex:1007142]     56	            uint128 queuedShares,
[codex:1007142]     57	            uint128 unclaimedAssets,
[codex:1007142]     58	            uint128 totalExitingTickets,
[codex:1007142]     59	            uint128 totalExitingAssets,
[codex:1007142] 
[codex:1007142] 
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Analyzing zero-share burn exploit scenario**
[codex:1007142] 
[codex:1007142] I'm examining how rounding down in share burning can let an attacker redeem small amounts without burning collateral shares, potentially draining accrued yield from the vault by repeatedly liquidating tiny osToken shares if undercollateralized positions exist. This exploit hinges on vault conditions, liquidatable positions, and available withdrawable assets, so I'm carefully weighing whether this creates a concrete profit path.
[codex:1007142] thinking
[codex:1007142] **Evaluating ETH staking and rounding impact**
[codex:1007142] 
[codex:1007142] I'm carefully weighing how ETH staking’s illiquid rewards limit yield extraction via rounding exploits, while reviewing multiple contract functions and access controls for concrete profit paths. The analysis suggests the rounding issue enables small yield drains under liquidation, but practical constraints and intended behavior may reduce severity, so I’m deciding if this counts as a definitive vulnerability.
[codex:1007142] thinking
[codex:1007142] **Detailing liquidateOsToken rounding exploit**
[codex:1007142] 
[codex:1007142] I'm outlining a clear exploit where undercollateralized positions enable repeated calls to `liquidateOsToken` with tiny osTokenShares amounts that cause burned collateral shares to round down to zero, letting an attacker drain excess vault yield by extracting assets without reducing owner collateral shares—demonstrating significant profit potential bounded by liquid assets and accrued rewards.
[codex:1007142] exec
[codex:1007142] /bin/bash -lc "nl -ba contracts/contracts/vaults/modules/VaultOsToken.sol | sed -n '60,140p'" in /tmp/codex-multi-uerlweg4 succeeded in 6ms:
[codex:1007142]     60	        public
[codex:1007142]     61	        virtual
[codex:1007142]     62	        override
[codex:1007142]     63	        returns (uint256 assets)
[codex:1007142]     64	    {
[codex:1007142]     65	        return _mintOsToken(msg.sender, receiver, osTokenShares, referrer);
[codex:1007142]     66	    }
[codex:1007142]     67	
[codex:1007142]     68	    /// @inheritdoc IVaultOsToken
[codex:1007142]     69	    function burnOsToken(uint128 osTokenShares) external override returns (uint256 assets) {
[codex:1007142]     70	        // burn osToken shares
[codex:1007142]     71	        assets = _osTokenVaultController.burnShares(msg.sender, osTokenShares);
[codex:1007142]     72	
[codex:1007142]     73	        // fetch user position
[codex:1007142]     74	        OsTokenPosition memory position = _positions[msg.sender];
[codex:1007142]     75	        if (position.shares == 0) revert Errors.InvalidPosition();
[codex:1007142]     76	        _syncPositionFee(position);
[codex:1007142]     77	
[codex:1007142]     78	        // update osToken position
[codex:1007142]     79	        position.shares -= osTokenShares;
[codex:1007142] 
[codex:1007142] thinking
[codex:1007142] **Detailing osToken rounding vulnerability and exploit**
[codex:1007142] codex
[codex:1007142] {"no_findings":false,"summary":"Found a concrete rounding exploit that lets liquidators extract vault yield without burning collateral shares.","findings":[{"severity":"medium","category":"math","title":"Floor rounding on share burn allows zero-share liquidations that drain yield","exploit_scenario":"1) Wait until the vault has accrued rewards so `totalAssets > totalShares` (asset-per-share > 1) and a position is liquidatable (health factor below threshold). 2) Acquire osToken shares (mint against collateral or buy) and call `liquidateOsToken` with a very small `osTokenShares` amount so `receivedAssets < totalAssets/totalShares`. 3) In `_redeemOsToken`, `burnedShares = convertToShares(receivedAssets)` rounds down to 0, yet `_totalAssets` is reduced and assets are transferred to the attacker. 4) Repeat small liquidations to drain up to the vault’s surplus (`totalAssets - totalShares`) or current `withdrawableAssets`, extracting value from other shareholders without burning the target’s collateral shares.","recommendation":"When burning shares for redeemed assets, round up instead of down (e.g., use `Math.Rounding.Ceil`), or enforce a minimum burn of 1 share for any nonzero `receivedAssets`, or require `receivedAssets >= assetsPerShare` to proceed.","evidence":"`_redeemOsToken` computes `burnedShares = convertToShares(receivedAssets)` and then `_burnShares(owner, burnedShares)`; `convertToShares` uses floor rounding, enabling `burnedShares` to be 0 when `receivedAssets < assetsPerShare`.","locations":["contracts/contracts/vaults/modules/VaultOsToken.sol:87","contracts/contracts/vaults/modules/VaultOsToken.sol:248","contracts/contracts/vaults/modules/VaultOsToken.sol:251","contracts/contracts/vaults/modules/VaultOsToken.sol:254","contracts/contracts/vaults/modules/VaultState.sol:78","contracts/contracts/vaults/modules/VaultState.sol:79"]}]}
[codex:1007142] tokens used
[codex:1007142] 100,132
[codex:1007142] {"no_findings":false,"summary":"Found a concrete rounding exploit that lets liquidators extract vault yield without burning collateral shares.","findings":[{"severity":"medium","category":"math","title":"Floor rounding on share burn allows zero-share liquidations that drain yield","exploit_scenario":"1) Wait until the vault has accrued rewards so `totalAssets > totalShares` (asset-per-share > 1) and a position is liquidatable (health factor below threshold). 2) Acquire osToken shares (mint against collateral or buy) and call `liquidateOsToken` with a very small `osTokenShares` amount so `receivedAssets < totalAssets/totalShares`. 3) In `_redeemOsToken`, `burnedShares = convertToShares(receivedAssets)` rounds down to 0, yet `_totalAssets` is reduced and assets are transferred to the attacker. 4) Repeat small liquidations to drain up to the vault’s surplus (`totalAssets - totalShares`) or current `withdrawableAssets`, extracting value from other shareholders without burning the target’s collateral shares.","recommendation":"When burning shares for redeemed assets, round up instead of down (e.g., use `Math.Rounding.Ceil`), or enforce a minimum burn of 1 share for any nonzero `receivedAssets`, or require `receivedAssets >= assetsPerShare` to proceed.","evidence":"`_redeemOsToken` computes `burnedShares = convertToShares(receivedAssets)` and then `_burnShares(owner, burnedShares)`; `convertToShares` uses floor rounding, enabling `burnedShares` to be 0 when `receivedAssets < assetsPerShare`.","locations":["contracts/contracts/vaults/modules/VaultOsToken.sol:87","contracts/contracts/vaults/modules/VaultOsToken.sol:248","contracts/contracts/vaults/modules/VaultOsToken.sol:251","contracts/contracts/vaults/modules/VaultOsToken.sol:254","contracts/contracts/vaults/modules/VaultState.sol:78","contracts/contracts/vaults/modules/VaultState.sol:79"]}]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-01T20:59:41.275084+00:00",
        "returncode": 0
    },
    "summary": "Found a concrete rounding exploit that lets liquidators extract vault yield without burning collateral shares.",
    "raw_final": {
        "summary": "Found a concrete rounding exploit that lets liquidators extract vault yield without burning collateral shares.",
        "findings": [
            {
                "title": "Floor rounding on share burn allows zero-share liquidations that drain yield",
                "category": "math",
                "evidence": "`_redeemOsToken` computes `burnedShares = convertToShares(receivedAssets)` and then `_burnShares(owner, burnedShares)`; `convertToShares` uses floor rounding, enabling `burnedShares` to be 0 when `receivedAssets < assetsPerShare`.",
                "severity": "medium",
                "locations": [
                    "contracts/contracts/vaults/modules/VaultOsToken.sol:87",
                    "contracts/contracts/vaults/modules/VaultOsToken.sol:248",
                    "contracts/contracts/vaults/modules/VaultOsToken.sol:251",
                    "contracts/contracts/vaults/modules/VaultOsToken.sol:254",
                    "contracts/contracts/vaults/modules/VaultState.sol:78",
                    "contracts/contracts/vaults/modules/VaultState.sol:79"
                ],
                "recommendation": "When burning shares for redeemed assets, round up instead of down (e.g., use `Math.Rounding.Ceil`), or enforce a minimum burn of 1 share for any nonzero `receivedAssets`, or require `receivedAssets >= assetsPerShare` to proceed.",
                "exploit_scenario": "1) Wait until the vault has accrued rewards so `totalAssets > totalShares` (asset-per-share > 1) and a position is liquidatable (health factor below threshold). 2) Acquire osToken shares (mint against collateral or buy) and call `liquidateOsToken` with a very small `osTokenShares` amount so `receivedAssets < totalAssets/totalShares`. 3) In `_redeemOsToken`, `burnedShares = convertToShares(receivedAssets)` rounds down to 0, yet `_totalAssets` is reduced and assets are transferred to the attacker. 4) Repeat small liquidations to drain up to the vault\u2019s surplus (`totalAssets - totalShares`) or current `withdrawableAssets`, extracting value from other shareholders without burning the target\u2019s collateral shares."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
11
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
35
EXT*/BALANCE
18
Total opcodes
12207
Flags
delegatecall_present create_opcodes_present heavy_ext_balance_usage call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: ISZERO
0000000a: PUSH2 0x0022
0000000d: JUMPI
0000000e: JUMPDEST
0000000f: CALLDATASIZE
00000010: ISZERO
00000011: PUSH2 0x0018
00000014: JUMPI
00000015: PUSH0
00000016: DUP1
00000017: REVERT
00000018: JUMPDEST
00000019: PUSH2 0x0020
0000001c: PUSH2 0x2df4
0000001f: JUMP
00000020: JUMPDEST
00000021: STOP
00000022: JUMPDEST
00000023: PUSH0
00000024: CALLDATALOAD
00000025: PUSH1 0xe0
00000027: SHR
00000028: DUP1
00000029: PUSH4 0x01d523b6
0000002e: EQ
0000002f: PUSH2 0x0361
00000032: JUMPI
00000033: DUP1
00000034: PUSH4 0x01e1d114
00000039: EQ
0000003a: PUSH2 0x035c
0000003d: JUMPI
0000003e: DUP1
0000003f: PUSH4 0x0402f196
00000044: EQ
00000045: PUSH2 0x0357
00000048: JUMPI
00000049: DUP1
0000004a: PUSH4 0x066055e0
0000004f: EQ
00000050: PUSH2 0x0352
00000053: JUMPI
00000054: DUP1
00000055: PUSH4 0x07a2d13a
0000005a: EQ
0000005b: PUSH2 0x034d
0000005e: JUMPI
0000005f: DUP1
00000060: PUSH4 0x18f72950
00000065: EQ
00000066: PUSH2 0x0348
00000069: JUMPI
0000006a: DUP1
0000006b: PUSH4 0x1913bb24
00000070: EQ
00000071: PUSH2 0x0343
00000074: JUMPI
00000075: DUP1
00000076: PUSH4 0x1a7ff553
0000007b: EQ
0000007c: PUSH2 0x033e
0000007f: JUMPI
00000080: DUP1
00000081: PUSH4 0x201b9eb5
00000086: EQ
00000087: PUSH2 0x0339
0000008a: JUMPI
0000008b: DUP1
0000008c: PUSH4 0x24a14b14
00000091: EQ
00000092: PUSH2 0x0334
00000095: JUMPI
00000096: DUP1
00000097: PUSH4 0x2999ad3f
0000009c: EQ
0000009d: PUSH2 0x032f
000000a0: JUMPI
000000a1: DUP1
000000a2: PUSH4 0x2cdf7401
000000a7: EQ
000000a8: PUSH2 0x032a
000000ab: JUMPI
000000ac: DUP1
000000ad: PUSH4 0x3229fa95
000000b2: EQ
000000b3: PUSH2 0x0325
000000b6: JUMPI
000000b7: DUP1
000000b8: PUSH4 0x33194c0a
000000bd: EQ
000000be: PUSH2 0x0320
000000c1: JUMPI
000000c2: DUP1
000000c3: PUSH4 0x36fe59d2
000000c8: EQ
000000c9: PUSH2 0x031b
000000cc: JUMPI
000000cd: DUP1
000000ce: PUSH4 0x3a98ef39
000000d3: EQ
000000d4: PUSH2 0x0316
000000d7: JUMPI
000000d8: DUP1
000000d9: PUSH4 0x3e1655d3
000000de: EQ
000000df: PUSH2 0x0311
000000e2: JUMPI
000000e3: DUP1
000000e4: PUSH4 0x439fab91
000000e9: EQ
000000ea: PUSH2 0x030c
000000ed: JUMPI
000000ee: DUP1
000000ef: PUSH4 0x43e82a79
000000f4: EQ
000000f5: PUSH2 0x0307
000000f8: JUMPI
000000f9: DUP1
000000fa: PUSH4 0x46904840
000000ff: EQ
00000100: PUSH2 0x0302
00000103: JUMPI
00000104: DUP1
00000105: PUSH4 0x4ec96b22
0000010a: EQ
0000010b: PUSH2 0x02fd
0000010e: JUMPI
0000010f: DUP1
00000110: PUSH4 0x4f1ef286
00000115: EQ
00000116: PUSH2 0x02f8
00000119: JUMPI
0000011a: DUP1
0000011b: PUSH4 0x52d1902d
00000120: EQ
00000121: PUSH2 0x02f3
00000124: JUMPI
00000125: DUP1
00000126: PUSH4 0x53156f28
0000012b: EQ
0000012c: PUSH2 0x02ee
0000012f: JUMPI
00000130: DUP1
00000131: PUSH4 0x54fd4d50
00000136: EQ
00000137: PUSH2 0x02e9
0000013a: JUMPI
0000013b: DUP1
0000013c: PUSH4 0x5c0935db
00000141: EQ
00000142: PUSH2 0x02e4
00000145: JUMPI
00000146: DUP1
00000147: PUSH4 0x5c60da1b
0000014c: EQ
0000014d: PUSH2 0x02df
00000150: JUMPI
00000151: DUP1
00000152: PUSH4 0x5cfc1a51
00000157: EQ
00000158: PUSH2 0x02da
0000015b: JUMPI
0000015c: DUP1
0000015d: PUSH4 0x60d60e6e
00000162: EQ
00000163: PUSH2 0x02d5
00000166: JUMPI
00000167: DUP1
00000168: PUSH4 0x704b6c02
0000016d: EQ
0000016e: PUSH2 0x02d0
00000171: JUMPI
00000172: DUP1
00000173: PUSH4 0x72b410a8
00000178: EQ
00000179: PUSH2 0x02cb
0000017c: JUMPI
0000017d: DUP1
0000017e: PUSH4 0x754c3888
00000183: EQ
00000184: PUSH2 0x02c6
00000187: JUMPI
00000188: DUP1
00000189: PUSH4 0x76b58b90
0000018e: EQ
0000018f: PUSH2 0x02c1
00000192: JUMPI
00000193: DUP1
00000194: PUSH4 0x776ae2b0
00000199: EQ
0000019a: PUSH2 0x02bc
0000019d: JUMPI
0000019e: DUP1
0000019f: PUSH4 0x78f61ca8
000001a4: EQ
000001a5: PUSH2 0x02b7
000001a8: JUMPI
000001a9: DUP1
000001aa: PUSH4 0x7fd6f15c
000001af: EQ
000001b0: PUSH2 0x02b2
000001b3: JUMPI
000001b4: DUP1
000001b5: PUSH4 0x83d430d5
000001ba: EQ
000001bb: PUSH2 0x02ad
000001be: JUMPI
000001bf: DUP1
000001c0: PUSH4 0x8697d2c2
000001c5: EQ
000001c6: PUSH2 0x02a8
000001c9: JUMPI
000001ca: DUP1
000001cb: PUSH4 0x8ceab9aa
000001d0: EQ
000001d1: PUSH2 0x02a3
000001d4: JUMPI
000001d5: DUP1
000001d6: PUSH4 0x9267842a
000001db: EQ
000001dc: PUSH2 0x029e
000001df: JUMPI
000001e0: DUP1
000001e1: PUSH4 0xa145ca01
000001e6: EQ
000001e7: PUSH2 0x0299
000001ea: JUMPI
000001eb: DUP1
000001ec: PUSH4 0xa49a1e7d
000001f1: EQ
000001f2: PUSH2 0x0294
000001f5: JUMPI
000001f6: DUP1
000001f7: PUSH4 0xac9650d8
000001fc: EQ
000001fd: PUSH2 0x028f
00000200: JUMPI
00000201: DUP1
00000202: PUSH4 0xad3cb1cc
00000207: EQ
00000208: PUSH2 0x028a
0000020b: JUMPI
0000020c: DUP1
0000020d: PUSH4 0xad68ebf7
00000212: EQ
00000213: PUSH2 0x0285
00000216: JUMPI
00000217: DUP1
00000218: PUSH4 0xb1f0e7c7
0000021d: EQ
0000021e: PUSH2 0x0280
00000221: JUMPI
00000222: DUP1
00000223: PUSH4 0xc6e6f592
00000228: EQ
00000229: PUSH2 0x027b
0000022c: JUMPI
0000022d: DUP1
0000022e: PUSH4 0xd40a902f
00000233: EQ
00000234: PUSH2 0x0276
00000237: JUMPI
00000238: DUP1
00000239: PUSH4 0xe74b981b
0000023e: EQ
0000023f: PUSH2 0x0271
00000242: JUMPI
00000243: DUP1
00000244: PUSH4 0xf04da65b
00000249: EQ
0000024a: PUSH2 0x026c
0000024d: JUMPI
0000024e: DUP1
0000024f: PUSH4 0xf851a440
00000254: EQ
00000255: PUSH2 0x0267
00000258: JUMPI
00000259: PUSH4 0xf9609f08
0000025e: SUB
0000025f: PUSH2 0x000e
00000262: JUMPI
00000263: PUSH2 0x24c8
00000266: JUMP
00000267: JUMPDEST
00000268: PUSH2 0x24a1
0000026b: JUMP
0000026c: JUMPDEST
0000026d: PUSH2 0x2466
00000270: JUMP
00000271: JUMPDEST
00000272: PUSH2 0x23d2
00000275: JUMP
00000276: JUMPDEST
00000277: PUSH2 0x230d
0000027a: JUMP
0000027b: JUMPDEST
0000027c: PUSH2 0x22ef
0000027f: JUMP
00000280: JUMPDEST
00000281: PUSH2 0x22c7
00000284: JUMP
00000285: JUMPDEST
00000286: PUSH2 0x2109
00000289: JUMP
0000028a: JUMPDEST
0000028b: PUSH2 0x20c2
0000028e: JUMP
0000028f: JUMPDEST
00000290: PUSH2 0x2056
00000293: JUMP
00000294: JUMPDEST
00000295: PUSH2 0x1f81
00000298: JUMP
00000299: JUMPDEST
0000029a: PUSH2 0x1eee
0000029d: JUMP
0000029e: JUMPDEST
0000029f: PUSH2 0x1c9c
000002a2: JUMP
000002a3: JUMPDEST
000002a4: PUSH2 0x1c68
000002a7: JUMP
000002a8: JUMPDEST
000002a9: PUSH2 0x1ad6
000002ac: JUMP
000002ad: JUMPDEST
000002ae: PUSH2 0x1962
000002b1: JUMP
000002b2: JUMPDEST
000002b3: PUSH2 0x193e
000002b6: JUMP
000002b7: JUMPDEST
000002b8: PUSH2 0x18c5
000002bb: JUMP
000002bc: JUMPDEST
000002bd: PUSH2 0x1896
000002c0: JUMP
000002c1: JUMPDEST
000002c2: PUSH2 0x1846
000002c5: JUMP
000002c6: JUMPDEST
000002c7: PUSH2 0x17d4
000002ca: JUMP
000002cb: JUMPDEST
000002cc: PUSH2 0x173c
000002cf: JUMP
000002d0: JUMPDEST
000002d1: PUSH2 0x16af
000002d4: JUMP
000002d5: JUMPDEST
000002d6: PUSH2 0x160c
000002d9: JUMP
000002da: JUMPDEST
000002db: PUSH2 0x15f2
000002de: JUMP
000002df: JUMPDEST
000002e0: PUSH2 0x15be
000002e3: JUMP
000002e4: JUMPDEST
000002e5: PUSH2 0x13f9
000002e8: JUMP
000002e9: JUMPDEST
000002ea: PUSH2 0x13de
000002ed: JUMP
000002ee: JUMPDEST
000002ef: PUSH2 0x13ba
000002f2: JUMP
000002f3: JUMPDEST
000002f4: PUSH2 0x1354
000002f7: JUMP
000002f8: JUMPDEST
000002f9: PUSH2 0x10dc
000002fc: JUMP
000002fd: JUMPDEST
000002fe: PUSH2 0x0fde
00000301: JUMP
00000302: JUMPDEST
00000303: PUSH2 0x0fb6
00000306: JUMP
00000307: JUMPDEST
00000308: PUSH2 0x0ea7
0000030b: JUMP
0000030c: JUMPDEST
0000030d: PUSH2 0x0dc8
00000310: JUMP
00000311: JUMPDEST
00000312: PUSH2 0x0d1d
00000315: JUMP
00000316: JUMPDEST
00000317: PUSH2 0x0cf7
0000031a: JUMP
0000031b: JUMPDEST
0000031c: PUSH2 0x0cdd
0000031f: JUMP
00000320: JUMPDEST
00000321: PUSH2 0x0ca3
00000324: JUMP
00000325: JUMPDEST
00000326: PUSH2 0x0c77
00000329: JUMP
0000032a: JUMPDEST
0000032b: PUSH2 0x0c5d
0000032e: JUMP
0000032f: JUMPDEST
00000330: PUSH2 0x0899
00000333: JUMP
00000334: JUMPDEST
00000335: PUSH2 0x0853
00000338: JUMP
00000339: JUMPDEST
0000033a: PUSH2 0x0839
0000033d: JUMP
0000033e: JUMPDEST
0000033f: PUSH2 0x07da
00000342: JUMP
00000343: JUMPDEST
00000344: PUSH2 0x0764
00000347: JUMP
00000348: JUMPDEST
00000349: PUSH2 0x0710
0000034c: JUMP
0000034d: JUMPDEST
0000034e: PUSH2 0x06f2
00000351: JUMP
00000352: JUMPDEST
00000353: PUSH2 0x0551
00000356: JUMP
00000357: JUMPDEST
00000358: PUSH2 0x042e
0000035b: JUMP
0000035c: JUMPDEST
0000035d: PUSH2 0x040e
00000360: JUMP
00000361: JUMPDEST
00000362: PUSH2 0x0395
00000365: JUMP
00000366: JUMPDEST
00000367: PUSH1 0x01
00000369: PUSH1 0x01
0000036b: PUSH1 0xa0
0000036d: SHL
0000036e: SUB
0000036f: AND
00000370: SWAP1
00000371: JUMP
00000372: JUMPDEST
00000373: PUSH1 0x01
00000375: PUSH1 0x01
00000377: PUSH1 0xa0
00000379: SHL
0000037a: SUB
0000037b: DUP2
0000037c: AND
0000037d: SUB
0000037e: PUSH2 0x0383
00000381: JUMPI
00000382: JUMP
00000383: JUMPDEST
00000384: PUSH0
00000385: DUP1
00000386: REVERT
00000387: JUMPDEST
00000388: SWAP1
00000389: DUP2
0000038a: PUSH1 0x80
0000038c: SWAP2
0000038d: SUB
0000038e: SLT
0000038f: PUSH2 0x0383
00000392: JUMPI
00000393: SWAP1
00000394: JUMP
00000395: JUMPDEST
00000396: PUSH1 0x80
00000398: CALLDATASIZE
00000399: PUSH1 0x03
0000039b: NOT
0000039c: ADD
0000039d: SLT
0000039e: PUSH2 0x0383
000003a1: JUMPI
000003a2: PUSH1 0x04
000003a4: CALLDATALOAD
000003a5: PUSH2 0x03ad
000003a8: DUP2
000003a9: PUSH2 0x0372
000003ac: JUMP
000003ad: JUMPDEST
000003ae: PUSH1 0x24
000003b0: CALLDATALOAD
000003b1: PUSH1 0x44
000003b3: CALLDATALOAD
000003b4: PUSH2 0x03bc
000003b7: DUP2
000003b8: PUSH2 0x0372
000003bb: JUMP
000003bc: JUMPDEST
000003bd: PUSH1 0x64
000003bf: CALLDATALOAD
000003c0: SWAP2
000003c1: PUSH1 0x01
000003c3: PUSH1 0x01
000003c5: PUSH1 0x40
000003c7: SHL
000003c8: SUB
000003c9: DUP4
000003ca: GT
000003cb: PUSH2 0x0383
000003ce: JUMPI
000003cf: PUSH1 0x20
000003d1: SWAP4
000003d2: PUSH2 0x03ea
000003d5: PUSH2 0x03e5
000003d8: PUSH2 0x03fc
000003db: SWAP6
000003dc: CALLDATASIZE
000003dd: SWAP1
000003de: PUSH1 0x04
000003e0: ADD
000003e1: PUSH2 0x0387
000003e4: JUMP
000003e5: JUMPDEST
000003e6: PUSH2 0x2603
000003e9: JUMP
000003ea: JUMPDEST
000003eb: PUSH2 0x03f5
000003ee: DUP4
000003ef: CALLVALUE
000003f0: CALLER
000003f1: PUSH2 0x46e3
000003f4: JUMP
000003f5: JUMPDEST
000003f6: POP
000003f7: CALLER
000003f8: PUSH2 0x39d2
000003fb: JUMP
000003fc: JUMPDEST
000003fd: PUSH1 0x40
000003ff: MLOAD
00000400: SWAP1
00000401: DUP2
00000402: MSTORE
00000403: RETURN
00000404: JUMPDEST
00000405: PUSH0
00000406: SWAP2
00000407: SUB
00000408: SLT
00000409: PUSH2 0x0383
0000040c: JUMPI
0000040d: JUMP
0000040e: JUMPDEST
0000040f: CALLVALUE
00000410: PUSH2 0x0383
00000413: JUMPI
00000414: PUSH0
00000415: CALLDATASIZE
00000416: PUSH1 0x03
00000418: NOT
00000419: ADD
0000041a: SLT
0000041b: PUSH2 0x0383
0000041e: JUMPI
0000041f: PUSH1 0x20
00000421: PUSH1 0x98
00000423: SLOAD
00000424: PUSH1 0x80
00000426: SHR
00000427: PUSH1 0x40
00000429: MLOAD
0000042a: SWAP1
0000042b: DUP2
0000042c: MSTORE
0000042d: RETURN
0000042e: JUMPDEST
0000042f: CALLVALUE
00000430: PUSH2 0x0383
00000433: JUMPI
00000434: PUSH1 0x20
00000436: CALLDATASIZE
00000437: PUSH1 0x03
00000439: NOT
0000043a: ADD
0000043b: SLT
0000043c: PUSH2 0x0383
0000043f: JUMPI
00000440: PUSH1 0x04
00000442: CALLDATALOAD
00000443: PUSH2 0xffff
00000446: DUP2
00000447: AND
00000448: DUP1
00000449: DUP3
0000044a: SUB
0000044b: PUSH2 0x0383
0000044e: JUMPI
0000044f: PUSH2 0x0456
00000452: PUSH2 0x2e30
00000455: JUMP
00000456: JUMPDEST
00000457: PUSH2 0x045e
0000045a: PUSH2 0x41a2
0000045d: JUMP
0000045e: JUMPDEST
0000045f: PUSH2 0x2710
00000462: DUP2
00000463: GT
00000464: PUSH2 0x051c
00000467: JUMPI
00000468: PUSH1 0x65
0000046a: SLOAD
0000046b: PUSH2 0x0480
0000046e: PUSH1 0xb0
00000470: DUP3
00000471: SWAP1
00000472: SHR
00000473: PUSH1 0x01
00000475: PUSH1 0x01
00000477: PUSH1 0x40
00000479: SHL
0000047a: SUB
0000047b: AND
0000047c: PUSH2 0x25bd
0000047f: JUMP
00000480: JUMPDEST
00000481: TIMESTAMP
00000482: LT
00000483: PUSH2 0x0533
00000486: JUMPI
00000487: PUSH1 0xa0
00000489: SHR
0000048a: PUSH2 0xffff
0000048d: AND
0000048e: DUP1
0000048f: ISZERO
00000490: PUSH2 0x052b
00000493: JUMPI
00000494: PUSH2 0x049f
00000497: PUSH2 0x04a6
0000049a: SWAP2
0000049b: PUSH2 0x2e43
0000049e: JUMP
0000049f: JUMPDEST
000004a0: PUSH1 0x64
000004a2: SWAP1
000004a3: DIV
000004a4: SWAP1
000004a5: JUMP
000004a6: JUMPDEST
000004a7: LT
000004a8: PUSH2 0x051c
000004ab: JUMPI
000004ac: PUSH1 0x65
000004ae: DUP1
000004af: SLOAD
000004b0: PUSH8 0xffffffffffffffff
000004b9: PUSH1 0xb0
000004bb: SHL
000004bc: TIMESTAMP
000004bd: PUSH1 0xb0
000004bf: SHL
000004c0: AND
000004c1: PUSH10 0xffffffffffffffffffff
000004cc: PUSH1 0xa0
000004ce: SHL
000004cf: NOT
000004d0: SWAP1
000004d1: SWAP2
000004d2: AND
000004d3: PUSH2 0xffff
000004d6: PUSH1 0xa0
000004d8: SHL
000004d9: PUSH1 0xa0
000004db: DUP6
000004dc: SWAP1
000004dd: SHL
000004de: AND
000004df: OR
000004e0: OR
000004e1: SWAP1
000004e2: SSTORE
000004e3: PUSH1 0x40
000004e5: MLOAD
000004e6: PUSH2 0xffff
000004e9: SWAP1
000004ea: SWAP2
000004eb: AND
000004ec: DUP2
000004ed: MSTORE
000004ee: CALLER
000004ef: SWAP1
000004f0: PUSH32 0x96e06190cc0894376ae1c3ba56586573ed2786a831b68ad88c6a0410d3316304
00000511: SWAP1
00000512: DUP1
00000513: PUSH1 0x20
00000515: DUP2
00000516: ADD
00000517: JUMPDEST
00000518: SUB
00000519: SWAP1
0000051a: LOG2
0000051b: STOP
0000051c: JUMPDEST
0000051d: PUSH4 0x8a81d3b3
00000522: PUSH1 0xe0
00000524: SHL
00000525: PUSH0
00000526: MSTORE
00000527: PUSH1 0x04
00000529: PUSH0
0000052a: REVERT
0000052b: JUMPDEST
0000052c: POP
0000052d: PUSH1 0x64
0000052f: PUSH2 0x04a6
00000532: JUMP
00000533: JUMPDEST
00000534: PUSH2 0x2d23
00000537: PUSH1 0xf2
00000539: SHL
0000053a: PUSH0
0000053b: MSTORE
0000053c: PUSH1 0x04
0000053e: PUSH0
0000053f: REVERT
00000540: JUMPDEST
00000541: PUSH1 0x01
00000543: PUSH1 0x01
00000545: PUSH1 0x80
00000547: SHL
00000548: SUB
00000549: DUP2
0000054a: AND
0000054b: SUB
0000054c: PUSH2 0x0383
0000054f: JUMPI
00000550: JUMP
00000551: JUMPDEST
00000552: CALLVALUE
00000553: PUSH2 0x0383
00000556: JUMPI
00000557: PUSH1 0x20
00000559: CALLDATASIZE
0000055a: PUSH1 0x03
0000055c: NOT
0000055d: ADD
0000055e: SLT
0000055f: PUSH2 0x0383
00000562: JUMPI
00000563: PUSH1 0x04
00000565: CALLDATALOAD
00000566: PUSH2 0x056e
00000569: DUP2
0000056a: PUSH2 0x0540
0000056d: JUMP
0000056e: JUMPDEST
0000056f: PUSH1 0x40
00000571: MLOAD
00000572: PUSH4 0x3b9e9f01
00000577: PUSH1 0xe2
00000579: SHL
0000057a: DUP2
0000057b: MSTORE
0000057c: CALLER
0000057d: PUSH1 0x04
0000057f: DUP3
00000580: ADD
00000581: MSTORE
00000582: PUSH1 0x01
00000584: PUSH1 0x01
00000586: PUSH1 0x80
00000588: SHL
00000589: SUB
0000058a: DUP3
0000058b: AND
0000058c: PUSH1 0x24
0000058e: DUP3
0000058f: ADD
00000590: MSTORE
00000591: PUSH1 0x20
00000593: DUP2
00000594: PUSH1 0x44
00000596: DUP2
00000597: PUSH0
00000598: PUSH1 0x01
0000059a: PUSH1 0x01
0000059c: PUSH1 0xa0
0000059e: SHL
0000059f: SUB
000005a0: PUSH32 0x0000000000000000000000002a261e60fb14586b474c208b1b7ac6d0f5000306
000005c1: AND
000005c2: GAS
000005c3: CALL
000005c4: SWAP1
000005c5: DUP2
000005c6: ISZERO
000005c7: PUSH2 0x06ed
000005ca: JUMPI
000005cb: PUSH0
000005cc: SWAP2
000005cd: PUSH2 0x06be
000005d0: JUMPI
000005d1: JUMPDEST
000005d2: POP
000005d3: CALLER
000005d4: PUSH0
000005d5: SWAP1
000005d6: DUP2
000005d7: MSTORE
000005d8: PUSH2 0x0137
000005db: PUSH1 0x20
000005dd: MSTORE
000005de: PUSH1 0x40
000005e0: SWAP1
000005e1: KECCAK256
000005e2: PUSH2 0x05ea
000005e5: SWAP1
000005e6: PUSH2 0x250c
000005e9: JUMP
000005ea: JUMPDEST
000005eb: SWAP2
000005ec: PUSH1 0x01
000005ee: PUSH1 0x01
000005f0: PUSH1 0x80
000005f2: SHL
000005f3: SUB
000005f4: PUSH2 0x0604
000005f7: DUP5
000005f8: MLOAD
000005f9: PUSH1 0x01
000005fb: PUSH1 0x01
000005fd: PUSH1 0x80
000005ff: SHL
00000600: SUB
00000601: AND
00000602: SWAP1
00000603: JUMP
00000604: JUMPDEST
00000605: AND
00000606: ISZERO
00000607: PUSH2 0x06af
0000060a: JUMPI
0000060b: PUSH2 0x065d
0000060e: DUP4
0000060f: PUSH2 0x061a
00000612: PUSH2 0x06ab
00000615: SWAP6
00000616: PUSH2 0x2e7c
00000619: JUMP
0000061a: JUMPDEST
0000061b: PUSH2 0x0644
0000061e: PUSH2 0x0637
00000621: DUP5
00000622: PUSH2 0x0632
00000625: DUP5
00000626: MLOAD
00000627: PUSH1 0x01
00000629: PUSH1 0x01
0000062b: PUSH1 0x80
0000062d: SHL
0000062e: SUB
0000062f: AND
00000630: SWAP1
00000631: JUMP
00000632: JUMPDEST
00000633: PUSH2 0x2545
00000636: JUMP
00000637: JUMPDEST
00000638: PUSH1 0x01
0000063a: PUSH1 0x01
0000063c: PUSH1 0x80
0000063e: SHL
0000063f: SUB
00000640: AND
00000641: DUP3
00000642: MSTORE
00000643: JUMP
00000644: JUMPDEST
00000645: CALLER
00000646: PUSH0
00000647: SWAP1
00000648: DUP2
00000649: MSTORE
0000064a: PUSH2 0x0137
0000064d: PUSH1 0x20
0000064f: MSTORE
00000650: PUSH1 0x40
00000652: SWAP1
00000653: KECCAK256
00000654: PUSH2 0x2565
00000657: JUMP
00000658: JUMPDEST
00000659: PUSH2 0x2565
0000065c: JUMP
0000065d: JUMPDEST
0000065e: PUSH1 0x40
00000660: DUP1
00000661: MLOAD
00000662: DUP4
00000663: DUP2
00000664: MSTORE
00000665: PUSH1 0x01
00000667: PUSH1 0x01
00000669: PUSH1 0x80
0000066b: SHL
0000066c: SUB
0000066d: SWAP3
0000066e: SWAP1
0000066f: SWAP3
00000670: AND
00000671: PUSH1 0x20
00000673: DUP4
00000674: ADD
00000675: MSTORE
00000676: CALLER
00000677: SWAP2
00000678: PUSH32 0x3f7354ba02880b4fa37a629985852a38417ff369369ce1e52fa6f8342a9100a7
00000699: SWAP2
0000069a: SWAP1
0000069b: LOG2
0000069c: PUSH1 0x40
0000069e: MLOAD
0000069f: SWAP1
000006a0: DUP2
000006a1: MSTORE
000006a2: SWAP1
000006a3: DUP2
000006a4: SWAP1
000006a5: PUSH1 0x20
000006a7: DUP3
000006a8: ADD
000006a9: SWAP1
000006aa: JUMP
000006ab: JUMPDEST
000006ac: SUB
000006ad: SWAP1
000006ae: RETURN
000006af: JUMPDEST
000006b0: PUSH4 0x673f032f
000006b5: PUSH1 0xe1
000006b7: SHL
000006b8: PUSH0
000006b9: MSTORE
000006ba: PUSH1 0x04
000006bc: PUSH0
000006bd: REVERT
000006be: JUMPDEST
000006bf: PUSH2 0x06e0
000006c2: SWAP2
000006c3: POP
000006c4: PUSH1 0x20
000006c6: RETURNDATASIZE
000006c7: PUSH1 0x20
000006c9: GT
000006ca: PUSH2 0x06e6
000006cd: JUMPI
000006ce: JUMPDEST
000006cf: PUSH2 0x06d8
000006d2: DUP2
000006d3: DUP4
000006d4: PUSH2 0x104a
000006d7: JUMP
000006d8: JUMPDEST
000006d9: DUP2
000006da: ADD
000006db: SWAP1
000006dc: PUSH2 0x24f2
000006df: JUMP
000006e0: JUMPDEST
000006e1: PUSH0
000006e2: PUSH2 0x05d1
000006e5: JUMP
000006e6: JUMPDEST
000006e7: POP
000006e8: RETURNDATASIZE
000006e9: PUSH2 0x06ce
000006ec: JUMP
000006ed: JUMPDEST
000006ee: PUSH2 0x2501
000006f1: JUMP
000006f2: JUMPDEST
000006f3: CALLVALUE
000006f4: PUSH2 0x0383
000006f7: JUMPI
000006f8: PUSH1 0x20
000006fa: CALLDATASIZE
000006fb: PUSH1 0x03
000006fd: NOT
000006fe: ADD
000006ff: SLT
00000700: PUSH2 0x0383
00000703: JUMPI
00000704: PUSH1 0x20
00000706: PUSH2 0x03fc
00000709: PUSH1 0x04
0000070b: CALLDATALOAD
0000070c: PUSH2 0x2597
0000070f: JUMP
00000710: JUMPDEST
00000711: PUSH1 0x60
00000713: CALLDATASIZE
00000714: PUSH1 0x03
00000716: NOT
00000717: ADD
00000718: SLT
00000719: PUSH2 0x0383
0000071c: JUMPI
0000071d: PUSH1 0x04
0000071f: CALLDATALOAD
00000720: PUSH2 0x0728
00000723: DUP2
00000724: PUSH2 0x0372
00000727: JUMP
00000728: JUMPDEST
00000729: PUSH1 0x24
0000072b: CALLDATALOAD
0000072c: PUSH2 0x0734
0000072f: DUP2
00000730: PUSH2 0x0372
00000733: JUMP
00000734: JUMPDEST
00000735: PUSH1 0x44
00000737: CALLDATALOAD
00000738: SWAP1
00000739: PUSH1 0x01
0000073b: PUSH1 0x01
0000073d: PUSH1 0x40
0000073f: SHL
00000740: SUB
00000741: DUP3
00000742: GT
00000743: PUSH2 0x0383
00000746: JUMPI
00000747: PUSH1 0x20
00000749: SWAP3
0000074a: PUSH2 0x075d
0000074d: PUSH2 0x03e5
00000750: PUSH2 0x03fc
00000753: SWAP5
00000754: CALLDATASIZE
00000755: SWAP1
00000756: PUSH1 0x04
00000758: ADD
00000759: PUSH2 0x0387
0000075c: JUMP
0000075d: JUMPDEST
0000075e: CALLVALUE
0000075f: SWAP1
00000760: PUSH2 0x46e3
00000763: JUMP
00000764: JUMPDEST
00000765: PUSH0
00000766: CALLDATASIZE
00000767: PUSH1 0x03
00000769: NOT
0000076a: ADD
0000076b: SLT
0000076c: PUSH2 0x0383
0000076f: JUMPI
00000770: PUSH2 0x0777
00000773: PUSH2 0x30c4
00000776: JUMP
00000777: JUMPDEST
00000778: CALLVALUE
00000779: ISZERO
0000077a: PUSH2 0x07cb
0000077d: JUMPI
0000077e: PUSH1 0xa0
00000780: SLOAD
00000781: CALLVALUE
00000782: DUP2
00000783: ADD
00000784: DUP1
00000785: SWAP2
00000786: GT
00000787: PUSH2 0x07c6
0000078a: JUMPI
0000078b: PUSH1 0xa0
0000078d: SSTORE
0000078e: PUSH1 0x40
00000790: DUP1
00000791: MLOAD
00000792: CALLER
00000793: DUP2
00000794: MSTORE
00000795: CALLVALUE
00000796: PUSH1 0x20
00000798: DUP3
00000799: ADD
0000079a: MSTORE
0000079b: PUSH32 0x0e51de435f58267ce69726383d596a857c4be319b0cf09c61f3f1e99804d8d0e
000007bc: SWAP2
000007bd: DUP2
000007be: SWAP1
000007bf: DUP2
000007c0: ADD
000007c1: JUMPDEST
000007c2: SUB
000007c3: SWAP1
000007c4: LOG1
000007c5: STOP
000007c6: JUMPDEST
000007c7: PUSH2 0x2531
000007ca: JUMP
000007cb: JUMPDEST
000007cc: PUSH4 0x18374fd1
000007d1: PUSH1 0xe2
000007d3: SHL
000007d4: PUSH0
000007d5: MSTORE
000007d6: PUSH1 0x04
000007d8: PUSH0
000007d9: REVERT
000007da: JUMPDEST
000007db: CALLVALUE
000007dc: PUSH2 0x0383
000007df: JUMPI
000007e0: PUSH1 0x20
000007e2: CALLDATASIZE
000007e3: PUSH1 0x03
000007e5: NOT
000007e6: ADD
000007e7: SLT
000007e8: PUSH2 0x0383
000007eb: JUMPI
000007ec: PUSH1 0x04
000007ee: CALLDATALOAD
000007ef: PUSH1 0x01
000007f1: PUSH1 0x01
000007f3: PUSH1 0x40
000007f5: SHL
000007f6: SUB
000007f7: DUP2
000007f8: GT
000007f9: PUSH2 0x0383
000007fc: JUMPI
000007fd: PUSH2 0x03e5
00000800: PUSH2 0x0020
00000803: SWAP2
00000804: CALLDATASIZE
00000805: SWAP1
00000806: PUSH1 0x04
00000808: ADD
00000809: PUSH2 0x0387
0000080c: JUMP
0000080d: JUMPDEST
0000080e: PUSH1 0x60
00000810: SWAP1
00000811: PUSH1 0x03
00000813: NOT
00000814: ADD
00000815: SLT
00000816: PUSH2 0x0383
00000819: JUMPI
0000081a: PUSH1 0x04
0000081c: CALLDATALOAD
0000081d: PUSH2 0x0825
00000820: DUP2
00000821: PUSH2 0x0372
00000824: JUMP
00000825: JUMPDEST
00000826: SWAP1
00000827: PUSH1 0x24
00000829: CALLDATALOAD
0000082a: SWAP1
0000082b: PUSH1 0x44
0000082d: CALLDATALOAD
0000082e: PUSH2 0x0836
00000831: DUP2
00000832: PUSH2 0x0372
00000835: JUMP
00000836: JUMPDEST
00000837: SWAP1
00000838: JUMP
00000839: JUMPDEST
0000083a: CALLVALUE
0000083b: PUSH2 0x0383
0000083e: JUMPI
0000083f: PUSH1 0x20
00000841: PUSH2 0x03fc
00000844: PUSH2 0x084c
00000847: CALLDATASIZE
00000848: PUSH2 0x080d
0000084b: JUMP
0000084c: JUMPDEST
0000084d: SWAP2
0000084e: CALLER
0000084f: PUSH2 0x39d2
00000852: JUMP
00000853: JUMPDEST
00000854: CALLVALUE
00000855: PUSH2 0x0383
00000858: JUMPI
00000859: PUSH0
0000085a: CALLDATASIZE
0000085b: PUSH1 0x03
0000085d: NOT
0000085e: ADD
0000085f: SLT
00000860: PUSH2 0x0383
00000863: JUMPI
00000864: PUSH1 0x20
00000866: PUSH1 0xd5
00000868: SLOAD
00000869: PUSH1 0x40
0000086b: MLOAD
0000086c: SWAP1
0000086d: DUP2
0000086e: MSTORE
0000086f: RETURN
00000870: JUMPDEST
00000871: PUSH1 0x60
00000873: SWAP1
00000874: PUSH1 0x03
00000876: NOT
00000877: ADD
00000878: SLT
00000879: PUSH2 0x0383
0000087c: JUMPI
0000087d: PUSH1 0x04
0000087f: CALLDATALOAD
00000880: SWAP1
00000881: PUSH1 0x24
00000883: CALLDATALOAD
00000884: PUSH2 0x088c
00000887: DUP2
00000888: PUSH2 0x0372
0000088b: JUMP
0000088c: JUMPDEST
0000088d: SWAP1
0000088e: PUSH1 0x44
00000890: CALLDATALOAD
00000891: PUSH2 0x0836
00000894: DUP2
00000895: PUSH2 0x0372
00000898: JUMP
00000899: JUMPDEST
0000089a: CALLVALUE
0000089b: PUSH2 0x0383
0000089e: JUMPI
0000089f: PUSH2 0x08a7
000008a2: CALLDATASIZE
000008a3: PUSH2 0x0870
000008a6: JUMP
000008a7: JUMPDEST
000008a8: SWAP1
000008a9: PUSH1 0x01
000008ab: PUSH1 0x01
000008ad: PUSH1 0xa0
000008af: SHL
000008b0: SUB
000008b1: DUP3
000008b2: AND
000008b3: ISZERO
000008b4: PUSH2 0x0c4e
000008b7: JUMPI
000008b8: PUSH2 0x08bf
000008bb: PUSH2 0x41a2
000008be: JUMP
000008bf: JUMPDEST
000008c0: PUSH32 0x0000000000000000000000002a261e60fb14586b474c208b1b7ac6d0f5000306
000008e1: PUSH1 0x01
000008e3: PUSH1 0x01
000008e5: PUSH1 0xa0
000008e7: SHL
000008e8: SUB
000008e9: DUP2
000008ea: AND
000008eb: SWAP2
000008ec: DUP3
000008ed: EXTCODESIZE
000008ee: ISZERO
000008ef: PUSH2 0x0383
000008f2: JUMPI
000008f3: PUSH1 0x40
000008f5: MLOAD
000008f6: PUSH4 0x1d8557d7
000008fb: PUSH1 0xe0
000008fd: SHL
000008fe: DUP2
000008ff: MSTORE
00000900: PUSH0
00000901: DUP2
00000902: PUSH1 0x04
00000904: DUP2
00000905: DUP4
00000906: DUP9
00000907: GAS
00000908: CALL
00000909: DUP1
0000090a: ISZERO
0000090b: PUSH2 0x06ed
0000090e: JUMPI
0000090f: PUSH2 0x0c34
00000912: JUMPI
00000913: JUMPDEST
00000914: POP
00000915: PUSH1 0x01
00000917: PUSH1 0x01
00000919: PUSH1 0xa0
0000091b: SHL
0000091c: SUB
0000091d: DUP2
0000091e: AND
0000091f: PUSH0
00000920: SWAP1
00000921: DUP2
00000922: MSTORE
00000923: PUSH2 0x0137
00000926: PUSH1 0x20
00000928: MSTORE
00000929: PUSH1 0x40
0000092b: SWAP1
0000092c: KECCAK256
0000092d: PUSH2 0x0935
00000930: SWAP1
00000931: PUSH2 0x250c
00000934: JUMP
00000935: JUMPDEST
00000936: PUSH1 0x01
00000938: PUSH1 0x01
0000093a: PUSH1 0x80
0000093c: SHL
0000093d: SUB
0000093e: PUSH2 0x094e
00000941: DUP3
00000942: MLOAD
00000943: PUSH1 0x01
00000945: PUSH1 0x01
00000947: PUSH1 0x80
00000949: SHL
0000094a: SUB
0000094b: AND
0000094c: SWAP1
0000094d: JUMP
0000094e: JUMPDEST
0000094f: AND
00000950: ISZERO
00000951: PUSH2 0x06af
00000954: JUMPI
00000955: PUSH2 0x095d
00000958: DUP2
00000959: PUSH2 0x2e7c
0000095c: JUMP
0000095d: JUMPDEST
0000095e: PUSH2 0x099c
00000961: PUSH1 0x20
00000963: PUSH2 0x0973
00000966: DUP4
00000967: MLOAD
00000968: PUSH1 0x01
0000096a: PUSH1 0x01
0000096c: PUSH1 0x80
0000096e: SHL
0000096f: SUB
00000970: AND
00000971: SWAP1
00000972: JUMP
00000973: JUMPDEST
00000974: PUSH1 0x40
00000976: MLOAD
00000977: PUSH4 0x03d1689d
0000097c: PUSH1 0xe1
0000097e: SHL
0000097f: DUP2
00000980: MSTORE
00000981: PUSH1 0x01
00000983: PUSH1 0x01
00000985: PUSH1 0x80
00000987: SHL
00000988: SUB
00000989: SWAP1
0000098a: SWAP2
0000098b: AND
0000098c: PUSH1 0x04
0000098e: DUP3
0000098f: ADD
00000990: MSTORE
00000991: SWAP2
00000992: DUP3
00000993: SWAP1
00000994: DUP2
00000995: SWAP1
00000996: PUSH1 0x24
00000998: DUP3
00000999: ADD
0000099a: SWAP1
0000099b: JUMP
0000099c: JUMPDEST
0000099d: SUB
0000099e: DUP2
0000099f: DUP9
000009a0: GAS
000009a1: STATICCALL
000009a2: DUP1
000009a3: ISZERO
000009a4: PUSH2 0x06ed
000009a7: JUMPI
000009a8: PUSH2 0x0a86
000009ab: SWAP5
000009ac: PUSH1 0x20
000009ae: SWAP3
000009af: PUSH0
000009b0: SWAP3
000009b1: PUSH2 0x0c15
000009b4: JUMPI
000009b5: JUMPDEST
000009b6: POP
000009b7: PUSH1 0x01
000009b9: PUSH1 0x01
000009bb: PUSH1 0xa0
000009bd: SHL
000009be: SUB
000009bf: DUP6
000009c0: AND
000009c1: PUSH0
000009c2: SWAP1
000009c3: DUP2
000009c4: MSTORE
000009c5: PUSH1 0x9c
000009c7: PUSH1 0x20
000009c9: MSTORE
000009ca: PUSH1 0x40
000009cc: SWAP1
000009cd: KECCAK256
000009ce: PUSH2 0x09d8
000009d1: SWAP1
000009d2: JUMPDEST
000009d3: SLOAD
000009d4: PUSH2 0x2597
000009d7: JUMP
000009d8: JUMPDEST
000009d9: PUSH2 0x09e0
000009dc: PUSH2 0x2654
000009df: JUMP
000009e0: JUMPDEST
000009e1: SWAP1
000009e2: PUSH2 0x09e9
000009e5: PUSH2 0x106b
000009e8: JUMP
000009e9: JUMPDEST
000009ea: SWAP4
000009eb: DUP5
000009ec: MSTORE
000009ed: DUP5
000009ee: DUP5
000009ef: ADD
000009f0: MSTORE
000009f1: PUSH1 0x40
000009f3: DUP4
000009f4: ADD
000009f5: DUP11
000009f6: SWAP1
000009f7: MSTORE
000009f8: PUSH1 0x60
000009fa: DUP4
000009fb: ADD
000009fc: MSTORE
000009fd: PUSH1 0x01
000009ff: PUSH1 0x80
00000a01: DUP4
00000a02: ADD
00000a03: MSTORE
00000a04: JUMPDEST
00000a05: PUSH1 0x40
00000a07: DUP1
00000a08: MLOAD
00000a09: PUSH4 0x6f92a36f
00000a0e: PUSH1 0xe1
00000a10: SHL
00000a11: DUP2
00000a12: MSTORE
00000a13: PUSH1 0x01
00000a15: PUSH1 0x01
00000a17: PUSH1 0xa0
00000a19: SHL
00000a1a: SUB
00000a1b: PUSH32 0x000000000000000000000000287d1e2a8de183a8bf8f2b09fa1340fbd766eb59
00000a3c: DUP2
00000a3d: AND
00000a3e: PUSH1 0x04
00000a40: DUP4
00000a41: ADD
00000a42: MSTORE
00000a43: SWAP1
00000a44: SWAP3
00000a45: AND
00000a46: PUSH1 0x24
00000a48: DUP4
00000a49: ADD
00000a4a: MSTORE
00000a4b: DUP3
00000a4c: MLOAD
00000a4d: PUSH1 0x44
00000a4f: DUP4
00000a50: ADD
00000a51: MSTORE
00000a52: PUSH1 0x20
00000a54: DUP4
00000a55: ADD
00000a56: MLOAD
00000a57: PUSH1 0x64
00000a59: DUP4
00000a5a: ADD
00000a5b: MSTORE
00000a5c: DUP3
00000a5d: ADD
00000a5e: MLOAD
00000a5f: PUSH1 0x84
00000a61: DUP3
00000a62: ADD
00000a63: MSTORE
00000a64: PUSH1 0x60
00000a66: DUP3
00000a67: ADD
00000a68: MLOAD
00000a69: PUSH1 0xa4
00000a6b: DUP3
00000a6c: ADD
00000a6d: MSTORE
00000a6e: PUSH1 0x80
00000a70: SWAP1
00000a71: SWAP2
00000a72: ADD
00000a73: MLOAD
00000a74: ISZERO
00000a75: ISZERO
00000a76: PUSH1 0xc4
00000a78: DUP3
00000a79: ADD
00000a7a: MSTORE
00000a7b: SWAP4
00000a7c: DUP5
00000a7d: SWAP1
00000a7e: DUP2
00000a7f: SWAP1
00000a80: PUSH1 0xe4
00000a82: DUP3
00000a83: ADD
00000a84: SWAP1
00000a85: JUMP
00000a86: JUMPDEST
00000a87: SUB
00000a88: DUP2
00000a89: PUSH20 0xb3ce222b28fda660c1375246a179d2acce4a0f74
00000a9e: GAS
00000a9f: DELEGATECALL
00000aa0: SWAP3
00000aa1: DUP4
00000aa2: ISZERO
00000aa3: PUSH2 0x06ed
00000aa6: JUMPI
00000aa7: PUSH0
00000aa8: SWAP4
00000aa9: PUSH2 0x0bf4
00000aac: JUMPI
00000aad: JUMPDEST
00000aae: POP
00000aaf: PUSH1 0x40
00000ab1: MLOAD
00000ab2: PUSH4 0x3b9e9f01
00000ab7: PUSH1 0xe2
00000ab9: SHL
00000aba: DUP2
00000abb: MSTORE
00000abc: CALLER
00000abd: PUSH1 0x04
00000abf: DUP3
00000ac0: ADD
00000ac1: MSTORE
00000ac2: PUSH1 0x24
00000ac4: DUP2
00000ac5: ADD
00000ac6: DUP8
00000ac7: SWAP1
00000ac8: MSTORE
00000ac9: SWAP4
00000aca: PUSH1 0x20
00000acc: SWAP1
00000acd: DUP6
00000ace: SWAP1
00000acf: PUSH1 0x44
00000ad1: SWAP1
00000ad2: DUP3
00000ad3: SWAP1
00000ad4: PUSH0
00000ad5: SWAP1
00000ad6: GAS
00000ad7: CALL
00000ad8: SWAP1
00000ad9: DUP2
00000ada: ISZERO
00000adb: PUSH2 0x06ed
00000ade: JUMPI
00000adf: PUSH32 0x61fd285f9e34a3dbfa9846bdcf22a023e37a3c93549902843b30dd74a18c5350
00000b00: SWAP5
00000b01: PUSH2 0x0b46
00000b04: SWAP3
00000b05: PUSH2 0x0bd7
00000b08: JUMPI
00000b09: JUMPDEST
00000b0a: POP
00000b0b: PUSH2 0x0b29
00000b0e: PUSH2 0x0637
00000b11: PUSH2 0x0b19
00000b14: DUP10
00000b15: PUSH2 0x4305
00000b18: JUMP
00000b19: JUMPDEST
00000b1a: DUP4
00000b1b: MLOAD
00000b1c: PUSH1 0x01
00000b1e: PUSH1 0x01
00000b20: PUSH1 0x80
00000b22: SHL
00000b23: SUB
00000b24: AND
00000b25: PUSH2 0x2545
00000b28: JUMP
00000b29: JUMPDEST
00000b2a: PUSH1 0x01
00000b2c: PUSH1 0x01
00000b2e: PUSH1 0xa0
00000b30: SHL
00000b31: SUB
00000b32: DUP4
00000b33: AND
00000b34: PUSH0
00000b35: SWAP1
00000b36: DUP2
00000b37: MSTORE
00000b38: PUSH2 0x0137
00000b3b: PUSH1 0x20
00000b3d: MSTORE
00000b3e: PUSH1 0x40
00000b40: SWAP1
00000b41: KECCAK256
00000b42: PUSH2 0x2565
00000b45: JUMP
00000b46: JUMPDEST
00000b47: PUSH2 0x0bd2
00000b4a: PUSH2 0x0b52
00000b4d: DUP4
00000b4e: PUSH2 0x45b9
00000b51: JUMP
00000b52: JUMPDEST
00000b53: SWAP3
00000b54: PUSH2 0x0b88
00000b57: PUSH2 0x0b6d
00000b5a: PUSH2 0x0b62
00000b5d: DUP4
00000b5e: PUSH2 0x4305
00000b61: JUMP
00000b62: JUMPDEST
00000b63: PUSH1 0x98
00000b65: SLOAD
00000b66: PUSH1 0x80
00000b68: SHR
00000b69: PUSH2 0x2545
00000b6c: JUMP
00000b6d: JUMPDEST
00000b6e: PUSH1 0x01
00000b70: PUSH1 0x01
00000b72: PUSH1 0x80
00000b74: SHL
00000b75: SUB
00000b76: PUSH1 0x98
00000b78: SLOAD
00000b79: SWAP2
00000b7a: DUP2
00000b7b: NOT
00000b7c: SWAP1
00000b7d: PUSH1 0x80
00000b7f: SHL
00000b80: AND
00000b81: SWAP2
00000b82: AND
00000b83: OR
00000b84: PUSH1 0x98
00000b86: SSTORE
00000b87: JUMP
00000b88: JUMPDEST
00000b89: PUSH2 0x0b92
00000b8c: DUP5
00000b8d: DUP5
00000b8e: PUSH2 0x48bb
00000b91: JUMP
00000b92: JUMPDEST
00000b93: PUSH2 0x0b9c
00000b96: DUP2
00000b97: DUP8
00000b98: PUSH2 0x412d
00000b9b: JUMP
00000b9c: JUMPDEST
00000b9d: PUSH1 0x40
00000b9f: DUP1
00000ba0: MLOAD
00000ba1: PUSH1 0x01
00000ba3: PUSH1 0x01
00000ba5: PUSH1 0xa0
00000ba7: SHL
00000ba8: SUB
00000ba9: SWAP8
00000baa: DUP9
00000bab: AND
00000bac: DUP2
00000bad: MSTORE
00000bae: PUSH1 0x20
00000bb0: DUP2
00000bb1: ADD
00000bb2: SWAP9
00000bb3: SWAP1
00000bb4: SWAP9
00000bb5: MSTORE
00000bb6: DUP8
00000bb7: ADD
00000bb8: SWAP4
00000bb9: SWAP1
00000bba: SWAP4
00000bbb: MSTORE
00000bbc: PUSH1 0x60
00000bbe: DUP7
00000bbf: ADD
00000bc0: SWAP3
00000bc1: SWAP1
00000bc2: SWAP3
00000bc3: MSTORE
00000bc4: SWAP1
00000bc5: SWAP3
00000bc6: AND
00000bc7: SWAP3
00000bc8: CALLER
00000bc9: SWAP3
00000bca: DUP2
00000bcb: SWAP1
00000bcc: PUSH1 0x80
00000bce: DUP3
00000bcf: ADD
00000bd0: SWAP1
00000bd1: JUMP
00000bd2: JUMPDEST
00000bd3: SUB
00000bd4: SWAP1
00000bd5: LOG3
00000bd6: STOP
00000bd7: JUMPDEST
00000bd8: PUSH2 0x0bef
00000bdb: SWAP1
00000bdc: PUSH1 0x20
00000bde: RETURNDATASIZE
00000bdf: PUSH1 0x20
00000be1: GT
00000be2: PUSH2 0x06e6
00000be5: JUMPI
00000be6: PUSH2 0x06d8
00000be9: DUP2
00000bea: DUP4
00000beb: PUSH2 0x104a
00000bee: JUMP
00000bef: JUMPDEST
00000bf0: PUSH2 0x0b09
00000bf3: JUMP
00000bf4: JUMPDEST
00000bf5: PUSH2 0x0c0e
00000bf8: SWAP2
00000bf9: SWAP4
00000bfa: POP
00000bfb: PUSH1 0x20
00000bfd: RETURNDATASIZE
00000bfe: PUSH1 0x20
00000c00: GT
00000c01: PUSH2 0x06e6
00000c04: JUMPI
00000c05: PUSH2 0x06d8
00000c08: DUP2
00000c09: DUP4
00000c0a: PUSH2 0x104a
00000c0d: JUMP
00000c0e: JUMPDEST
00000c0f: SWAP2
00000c10: PUSH0
00000c11: PUSH2 0x0aad
00000c14: JUMP
00000c15: JUMPDEST
00000c16: PUSH2 0x0c2d
00000c19: SWAP2
00000c1a: SWAP3
00000c1b: POP
00000c1c: DUP4
00000c1d: RETURNDATASIZE
00000c1e: DUP6
00000c1f: GT
00000c20: PUSH2 0x06e6
00000c23: JUMPI
00000c24: PUSH2 0x06d8
00000c27: DUP2
00000c28: DUP4
00000c29: PUSH2 0x104a
00000c2c: JUMP
00000c2d: JUMPDEST
00000c2e: SWAP1
00000c2f: PUSH0
00000c30: PUSH2 0x09b5
00000c33: JUMP
00000c34: JUMPDEST
00000c35: DUP1
00000c36: PUSH2 0x0c42
00000c39: PUSH0
00000c3a: PUSH2 0x0c48
00000c3d: SWAP4
00000c3e: PUSH2 0x104a
00000c41: JUMP
00000c42: JUMPDEST
00000c43: DUP1
00000c44: PUSH2 0x0404
00000c47: JUMP
00000c48: JUMPDEST
00000c49: PUSH0
00000c4a: PUSH2 0x0913
00000c4d: JUMP
00000c4e: JUMPDEST
00000c4f: PUSH4 0xd92e233d
00000c54: PUSH1 0xe0
00000c56: SHL
00000c57: PUSH0
00000c58: MSTORE
00000c59: PUSH1 0x04
00000c5b: PUSH0
00000c5c: REVERT
00000c5d: JUMPDEST
00000c5e: CALLVALUE
00000c5f: PUSH2 0x0383
00000c62: JUMPI
00000c63: PUSH0
00000c64: CALLDATASIZE
00000c65: PUSH1 0x03
00000c67: NOT
00000c68: ADD
00000c69: SLT
00000c6a: PUSH2 0x0383
00000c6d: JUMPI
00000c6e: PUSH1 0x20
00000c70: PUSH2 0x03fc
00000c73: PUSH2 0x2654
00000c76: JUMP
00000c77: JUMPDEST
00000c78: CALLVALUE
00000c79: PUSH2 0x0383
00000c7c: JUMPI
00000c7d: PUSH0
00000c7e: CALLDATASIZE
00000c7f: PUSH1 0x03
00000c81: NOT
00000c82: ADD
00000c83: SLT
00000c84: PUSH2 0x0383
00000c87: JUMPI
00000c88: PUSH1 0x20
00000c8a: PUSH2 0x0c91
00000c8d: PUSH2 0x26bc
00000c90: JUMP
00000c91: JUMPDEST
00000c92: PUSH1 0x40
00000c94: MLOAD
00000c95: PUSH1 0x01
00000c97: PUSH1 0x01
00000c99: PUSH1 0xa0
00000c9b: SHL
00000c9c: SUB
00000c9d: SWAP1
00000c9e: SWAP2
00000c9f: AND
00000ca0: DUP2
00000ca1: MSTORE
00000ca2: RETURN
00000ca3: JUMPDEST
00000ca4: CALLVALUE
00000ca5: PUSH2 0x0383
00000ca8: JUMPI
00000ca9: PUSH0
00000caa: CALLDATASIZE
00000cab: PUSH1 0x03
00000cad: NOT
00000cae: ADD
00000caf: SLT
00000cb0: PUSH2 0x0383
00000cb3: JUMPI
00000cb4: PUSH1 0x20
00000cb6: PUSH1 0x40
00000cb8: MLOAD
00000cb9: PUSH32 0x11a6b7bef0f97d298d56e5af2aa94330353808e861cbac86172faad21b10c505
00000cda: DUP2
00000cdb: MSTORE
00000cdc: RETURN
00000cdd: JUMPDEST
00000cde: PUSH1 0x20
00000ce0: PUSH2 0x03fc
00000ce3: PUSH2 0x0ceb
00000ce6: CALLDATASIZE
00000ce7: PUSH2 0x080d
00000cea: JUMP
00000ceb: JUMPDEST
00000cec: SWAP2
00000ced: PUSH2 0x03f5
00000cf0: DUP4
00000cf1: CALLVALUE
00000cf2: CALLER
00000cf3: PUSH2 0x46e3
00000cf6: JUMP
00000cf7: JUMPDEST
00000cf8: CALLVALUE
00000cf9: PUSH2 0x0383
00000cfc: JUMPI
00000cfd: PUSH0
00000cfe: CALLDATASIZE
00000cff: PUSH1 0x03
00000d01: NOT
00000d02: ADD
00000d03: SLT
00000d04: PUSH2 0x0383
00000d07: JUMPI
00000d08: PUSH1 0x20
00000d0a: PUSH1 0x01
00000d0c: PUSH1 0x01
00000d0e: PUSH1 0x80
00000d10: SHL
00000d11: SUB
00000d12: PUSH1 0x98
00000d14: SLOAD
00000d15: AND
00000d16: PUSH1 0x40
00000d18: MLOAD
00000d19: SWAP1
00000d1a: DUP2
00000d1b: MSTORE
00000d1c: RETURN
00000d1d: JUMPDEST
00000d1e: CALLVALUE
00000d1f: PUSH2 0x0383
00000d22: JUMPI
00000d23: PUSH0
00000d24: CALLDATASIZE
00000d25: PUSH1 0x03
00000d27: NOT
00000d28: ADD
00000d29: SLT
00000d2a: PUSH2 0x0383
00000d2d: JUMPI
00000d2e: PUSH1 0xa0
00000d30: PUSH1 0x99
00000d32: SLOAD
00000d33: PUSH1 0x9e
00000d35: SLOAD
00000d36: PUSH1 0x01
00000d38: PUSH1 0x01
00000d3a: PUSH1 0x80
00000d3c: SHL
00000d3d: SUB
00000d3e: PUSH2 0x0d45
00000d41: PUSH2 0x3e7a
00000d44: JUMP
00000d45: JUMPDEST
00000d46: SWAP2
00000d47: PUSH1 0x40
00000d49: MLOAD
00000d4a: SWAP4
00000d4b: DUP3
00000d4c: DUP2
00000d4d: AND
00000d4e: DUP6
00000d4f: MSTORE
00000d50: PUSH1 0x80
00000d52: SHR
00000d53: PUSH1 0x20
00000d55: DUP6
00000d56: ADD
00000d57: MSTORE
00000d58: DUP1
00000d59: PUSH1 0x80
00000d5b: SHR
00000d5c: PUSH1 0x40
00000d5e: DUP6
00000d5f: ADD
00000d60: MSTORE
00000d61: AND
00000d62: PUSH1 0x60
00000d64: DUP4
00000d65: ADD
00000d66: MSTORE
00000d67: PUSH1 0x80
00000d69: DUP3
00000d6a: ADD
00000d6b: MSTORE
00000d6c: RETURN
00000d6d: JUMPDEST
00000d6e: SWAP2
00000d6f: DUP2
00000d70: PUSH1 0x1f
00000d72: DUP5
00000d73: ADD
00000d74: SLT
00000d75: ISZERO
00000d76: PUSH2 0x0383
00000d79: JUMPI
00000d7a: DUP3
00000d7b: CALLDATALOAD
00000d7c: SWAP2
00000d7d: PUSH1 0x01
00000d7f: PUSH1 0x01
00000d81: PUSH1 0x40
00000d83: SHL
00000d84: SUB
00000d85: DUP4
00000d86: GT
00000d87: PUSH2 0x0383
00000d8a: JUMPI
00000d8b: PUSH1 0x20
00000d8d: DUP4
00000d8e: DUP2
00000d8f: DUP7
00000d90: ADD
00000d91: SWAP6
00000d92: ADD
00000d93: ADD
00000d94: GT
00000d95: PUSH2 0x0383
00000d98: JUMPI
00000d99: JUMP
00000d9a: JUMPDEST
00000d9b: PUSH1 0x20
00000d9d: PUSH1 0x03
00000d9f: NOT
00000da0: DUP3
00000da1: ADD
00000da2: SLT
00000da3: PUSH2 0x0383
00000da6: JUMPI
00000da7: PUSH1 0x04
00000da9: CALLDATALOAD
00000daa: SWAP1
00000dab: PUSH1 0x01
00000dad: PUSH1 0x01
00000daf: PUSH1 0x40
00000db1: SHL
00000db2: SUB
00000db3: DUP3
00000db4: GT
00000db5: PUSH2 0x0383
00000db8: JUMPI
00000db9: PUSH2 0x0dc4
00000dbc: SWAP2
00000dbd: PUSH1 0x04
00000dbf: ADD
00000dc0: PUSH2 0x0d6d
00000dc3: JUMP
00000dc4: JUMPDEST
00000dc5: SWAP1
00000dc6: SWAP2
00000dc7: JUMP
00000dc8: JUMPDEST
00000dc9: PUSH2 0x0dd1
00000dcc: CALLDATASIZE
00000dcd: PUSH2 0x0d9a
00000dd0: JUMP
00000dd1: JUMPDEST
00000dd2: POP
00000dd3: POP
00000dd4: PUSH0
00000dd5: DUP1
00000dd6: MLOAD
00000dd7: PUSH1 0x20
00000dd9: PUSH2 0x4e93
00000ddc: DUP4
00000ddd: CODECOPY
00000dde: DUP2
00000ddf: MLOAD
00000de0: SWAP2
00000de1: MSTORE
00000de2: SLOAD
00000de3: PUSH1 0xff
00000de5: DUP2
00000de6: PUSH1 0x40
00000de8: SHR
00000de9: AND
00000dea: DUP1
00000deb: ISZERO
00000dec: PUSH2 0x0e93
00000def: JUMPI
00000df0: JUMPDEST
00000df1: PUSH2 0x0e84
00000df4: JUMPI
00000df5: PUSH9 0xffffffffffffffffff
00000dff: NOT
00000e00: AND
00000e01: PUSH9 0x010000000000000005
00000e0b: OR
00000e0c: PUSH0
00000e0d: DUP1
00000e0e: MLOAD
00000e0f: PUSH1 0x20
00000e11: PUSH2 0x4e93
00000e14: DUP4
00000e15: CODECOPY
00000e16: DUP2
00000e17: MLOAD
00000e18: SWAP2
00000e19: MSTORE
00000e1a: SSTORE
00000e1b: PUSH2 0x0e22
00000e1e: PUSH2 0x26f7
00000e21: JUMP
00000e22: JUMPDEST
00000e23: PUSH2 0x0e51
00000e26: PUSH9 0xff0000000000000000
00000e30: NOT
00000e31: PUSH0
00000e32: DUP1
00000e33: MLOAD
00000e34: PUSH1 0x20
00000e36: PUSH2 0x4e93
00000e39: DUP4
00000e3a: CODECOPY
00000e3b: DUP2
00000e3c: MLOAD
00000e3d: SWAP2
00000e3e: MSTORE
00000e3f: SLOAD
00000e40: AND
00000e41: PUSH0
00000e42: DUP1
00000e43: MLOAD
00000e44: PUSH1 0x20
00000e46: PUSH2 0x4e93
00000e49: DUP4
00000e4a: CODECOPY
00000e4b: DUP2
00000e4c: MLOAD
00000e4d: SWAP2
00000e4e: MSTORE
00000e4f: SSTORE
00000e50: JUMP
00000e51: JUMPDEST
00000e52: PUSH1 0x40
00000e54: MLOAD
00000e55: PUSH1 0x05
00000e57: DUP2
00000e58: MSTORE
00000e59: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2
00000e7a: SWAP1
00000e7b: DUP1
00000e7c: PUSH1 0x20
00000e7e: DUP2
00000e7f: ADD
00000e80: PUSH2 0x07c1
00000e83: JUMP
00000e84: JUMPDEST
00000e85: PUSH4 0xf92ee8a9
00000e8a: PUSH1 0xe0
00000e8c: SHL
00000e8d: PUSH0
00000e8e: MSTORE
00000e8f: PUSH1 0x04
00000e91: PUSH0
00000e92: REVERT
00000e93: JUMPDEST
00000e94: POP
00000e95: PUSH1 0x05
00000e97: PUSH1 0x01
00000e99: PUSH1 0x01
00000e9b: PUSH1 0x40
00000e9d: SHL
00000e9e: SUB
00000e9f: DUP3
00000ea0: AND
00000ea1: LT
00000ea2: ISZERO
00000ea3: PUSH2 0x0df0
00000ea6: JUMP
00000ea7: JUMPDEST
00000ea8: CALLVALUE
00000ea9: PUSH2 0x0383
00000eac: JUMPI
00000ead: PUSH2 0x0eb5
00000eb0: CALLDATASIZE
00000eb1: PUSH2 0x0870
00000eb4: JUMP
00000eb5: JUMPDEST
00000eb6: PUSH1 0x40
00000eb8: MLOAD
00000eb9: PUSH4 0x057453a7
00000ebe: PUSH1 0xe3
00000ec0: SHL
00000ec1: DUP2
00000ec2: MSTORE
00000ec3: SWAP1
00000ec4: SWAP2
00000ec5: SWAP1
00000ec6: PUSH1 0x20
00000ec8: DUP2
00000ec9: PUSH1 0x04
00000ecb: DUP2
00000ecc: PUSH32 0x000000000000000000000000287d1e2a8de183a8bf8f2b09fa1340fbd766eb59
00000eed: PUSH1 0x01
00000eef: PUSH1 0x01
00000ef1: PUSH1 0xa0
00000ef3: SHL
00000ef4: SUB
00000ef5: AND
00000ef6: GAS
00000ef7: STATICCALL
00000ef8: SWAP1
00000ef9: DUP2
00000efa: ISZERO
00000efb: PUSH2 0x06ed
00000efe: JUMPI
00000eff: PUSH0
00000f00: SWAP2
00000f01: PUSH2 0x0f87
00000f04: JUMPI
00000f05: JUMPDEST
00000f06: POP
00000f07: PUSH1 0x01
00000f09: PUSH1 0x01
00000f0b: PUSH1 0xa0
00000f0d: SHL
00000f0e: SUB
00000f0f: AND
00000f10: CALLER
00000f11: SUB
00000f12: PUSH2 0x0f78
00000f15: JUMPI
00000f16: PUSH2 0x0bd2
00000f19: DUP2
00000f1a: PUSH2 0x0f45
00000f1d: DUP6
00000f1e: DUP6
00000f1f: PUSH32 0x57f5eb636bf62215c111b54545422f11dfb0cb115f606be905f0be08e8859dd3
00000f40: SWAP6
00000f41: PUSH2 0x3c14
00000f44: JUMP
00000f45: JUMPDEST
00000f46: PUSH1 0x40
00000f48: DUP1
00000f49: MLOAD
00000f4a: PUSH1 0x01
00000f4c: PUSH1 0x01
00000f4e: PUSH1 0xa0
00000f50: SHL
00000f51: SUB
00000f52: SWAP8
00000f53: DUP9
00000f54: AND
00000f55: DUP2
00000f56: MSTORE
00000f57: PUSH1 0x20
00000f59: DUP2
00000f5a: ADD
00000f5b: SWAP9
00000f5c: SWAP1
00000f5d: SWAP9
00000f5e: MSTORE
00000f5f: DUP8
00000f60: ADD
00000f61: SWAP2
00000f62: SWAP1
00000f63: SWAP2
00000f64: MSTORE
00000f65: PUSH1 0x60
00000f67: DUP7
00000f68: ADD
00000f69: MSTORE
00000f6a: SWAP1
00000f6b: SWAP3
00000f6c: AND
00000f6d: SWAP3
00000f6e: CALLER
00000f6f: SWAP3
00000f70: DUP2
00000f71: SWAP1
00000f72: PUSH1 0x80
00000f74: DUP3
00000f75: ADD
00000f76: SWAP1
00000f77: JUMP
00000f78: JUMPDEST
00000f79: PUSH4 0x4ca88867
00000f7e: PUSH1 0xe0
00000f80: SHL
00000f81: PUSH0
00000f82: MSTORE
00000f83: PUSH1 0x04
00000f85: PUSH0
00000f86: REVERT
00000f87: JUMPDEST
00000f88: PUSH2 0x0fa9
00000f8b: SWAP2
00000f8c: POP
00000f8d: PUSH1 0x20
00000f8f: RETURNDATASIZE
00000f90: PUSH1 0x20
00000f92: GT
00000f93: PUSH2 0x0faf
00000f96: JUMPI
00000f97: JUMPDEST
00000f98: PUSH2 0x0fa1
00000f9b: DUP2
00000f9c: DUP4
00000f9d: PUSH2 0x104a
00000fa0: JUMP
00000fa1: JUMPDEST
00000fa2: DUP2
00000fa3: ADD
00000fa4: SWAP1
00000fa5: PUSH2 0x2830
00000fa8: JUMP
00000fa9: JUMPDEST
00000faa: PUSH0
00000fab: PUSH2 0x0f05
00000fae: JUMP
00000faf: JUMPDEST
00000fb0: POP
00000fb1: RETURNDATASIZE
00000fb2: PUSH2 0x0f97
00000fb5: JUMP
00000fb6: JUMPDEST
00000fb7: CALLVALUE
00000fb8: PUSH2 0x0383
00000fbb: JUMPI
00000fbc: PUSH0
00000fbd: CALLDATASIZE
00000fbe: PUSH1 0x03
00000fc0: NOT
00000fc1: ADD
00000fc2: SLT
00000fc3: PUSH2 0x0383
00000fc6: JUMPI
00000fc7: PUSH1 0x65
00000fc9: SLOAD
00000fca: PUSH1 0x40
00000fcc: MLOAD
00000fcd: PUSH1 0x01
00000fcf: PUSH1 0x01
00000fd1: PUSH1 0xa0
00000fd3: SHL
00000fd4: SUB
00000fd5: SWAP1
00000fd6: SWAP2
00000fd7: AND
00000fd8: DUP2
00000fd9: MSTORE
00000fda: PUSH1 0x20
00000fdc: SWAP1
00000fdd: RETURN
00000fde: JUMPDEST
00000fdf: CALLVALUE
00000fe0: PUSH2 0x0383
00000fe3: JUMPI
00000fe4: PUSH1 0x20
00000fe6: CALLDATASIZE
00000fe7: PUSH1 0x03
00000fe9: NOT
00000fea: ADD
00000feb: SLT
00000fec: PUSH2 0x0383
00000fef: JUMPI
00000ff0: PUSH1 0x20
00000ff2: PUSH2 0x1005
00000ff5: PUSH1 0x04
00000ff7: CALLDATALOAD
00000ff8: PUSH2 0x1000
00000ffb: DUP2
00000ffc: PUSH2 0x0372
00000fff: JUMP
00001000: JUMPDEST
00001001: PUSH2 0x2845
00001004: JUMP
00001005: JUMPDEST
00001006: PUSH1 0x01
00001008: PUSH1 0x01
0000100a: PUSH1 0x80
0000100c: SHL
0000100d: SUB
0000100e: PUSH1 0x40
00001010: MLOAD
00001011: SWAP2
00001012: AND
00001013: DUP2
00001014: MSTORE
00001015: RETURN
00001016: JUMPDEST
00001017: PUSH4 0x4e487b71
0000101c: PUSH1 0xe0
0000101e: SHL
0000101f: PUSH0
00001020: MSTORE
00001021: PUSH1 0x41
00001023: PUSH1 0x04
00001025: MSTORE
00001026: PUSH1 0x24
00001028: PUSH0
00001029: REVERT
0000102a: JUMPDEST
0000102b: PUSH1 0x40
0000102d: DUP2
0000102e: ADD
0000102f: SWAP1
00001030: DUP2
00001031: LT
00001032: PUSH1 0x01
00001034: PUSH1 0x01
00001036: PUSH1 0x40
00001038: SHL
00001039: SUB
0000103a: DUP3
0000103b: GT
0000103c: OR
0000103d: PUSH2 0x1045
00001040: JUMPI
00001041: PUSH1 0x40
00001043: MSTORE
00001044: JUMP
00001045: JUMPDEST
00001046: PUSH2 0x1016
00001049: JUMP
0000104a: JUMPDEST
0000104b: SWAP1
0000104c: PUSH1 0x1f
0000104e: DUP1
0000104f: NOT
00001050: SWAP2
00001051: ADD
00001052: AND
00001053: DUP2
00001054: ADD
00001055: SWAP1
00001056: DUP2
00001057: LT
00001058: PUSH1 0x01
0000105a: PUSH1 0x01
0000105c: PUSH1 0x40
0000105e: SHL
0000105f: SUB
00001060: DUP3
00001061: GT
00001062: OR
00001063: PUSH2 0x1045
00001066: JUMPI
00001067: PUSH1 0x40
00001069: MSTORE
0000106a: JUMP
0000106b: JUMPDEST
0000106c: PUSH1 0x40
0000106e: MLOAD
0000106f: SWAP1
00001070: PUSH2 0x107a
00001073: PUSH1 0xa0
00001075: DUP4
00001076: PUSH2 0x104a
00001079: JUMP
0000107a: JUMPDEST
0000107b: JUMP
0000107c: JUMPDEST
0000107d: PUSH1 0x40
0000107f: MLOAD
00001080: SWAP1
00001081: PUSH2 0x107a
00001084: PUSH1 0x40
00001086: DUP4
00001087: PUSH2 0x104a
0000108a: JUMP
0000108b: JUMPDEST
0000108c: PUSH1 0x01
0000108e: PUSH1 0x01
00001090: PUSH1 0x40
00001092: SHL
00001093: SUB
00001094: DUP2
00001095: GT
00001096: PUSH2 0x1045
00001099: JUMPI
0000109a: PUSH1 0x1f
0000109c: ADD
0000109d: PUSH1 0x1f
0000109f: NOT
000010a0: AND
000010a1: PUSH1 0x20
000010a3: ADD
000010a4: SWAP1
000010a5: JUMP
000010a6: JUMPDEST
000010a7: SWAP3
000010a8: SWAP2
000010a9: SWAP3
000010aa: PUSH2 0x10b2
000010ad: DUP3
000010ae: PUSH2 0x108b
000010b1: JUMP
000010b2: JUMPDEST
000010b3: SWAP2
000010b4: PUSH2 0x10c0
000010b7: PUSH1 0x40
000010b9: MLOAD
000010ba: SWAP4
000010bb: DUP5
000010bc: PUSH2 0x104a
000010bf: JUMP
000010c0: JUMPDEST
000010c1: DUP3
000010c2: SWAP5
000010c3: DUP2
000010c4: DUP5
000010c5: MSTORE
000010c6: DUP2
000010c7: DUP4
000010c8: ADD
000010c9: GT
000010ca: PUSH2 0x0383
000010cd: JUMPI
000010ce: DUP3
000010cf: DUP2
000010d0: PUSH1 0x20
000010d2: SWAP4
000010d3: DUP5
000010d4: PUSH0
000010d5: SWAP7
000010d6: ADD
000010d7: CALLDATACOPY
000010d8: ADD
000010d9: ADD
000010da: MSTORE
000010db: JUMP
000010dc: JUMPDEST
000010dd: PUSH1 0x40
000010df: CALLDATASIZE
000010e0: PUSH1 0x03
000010e2: NOT
000010e3: ADD
000010e4: SLT
000010e5: PUSH2 0x0383
000010e8: JUMPI
000010e9: PUSH1 0x04
000010eb: CALLDATALOAD
000010ec: PUSH2 0x10f4
000010ef: DUP2
000010f0: PUSH2 0x0372
000010f3: JUMP
000010f4: JUMPDEST
000010f5: PUSH1 0x24
000010f7: CALLDATALOAD
000010f8: PUSH1 0x01
000010fa: PUSH1 0x01
000010fc: PUSH1 0x40
000010fe: SHL
000010ff: SUB
00001100: DUP2
00001101: GT
00001102: PUSH2 0x0383
00001105: JUMPI
00001106: CALLDATASIZE
00001107: PUSH1 0x23
00001109: DUP3
0000110a: ADD
0000110b: SLT
0000110c: ISZERO
0000110d: PUSH2 0x0383
00001110: JUMPI
00001111: PUSH2 0x1164
00001114: PUSH2 0x112a
00001117: PUSH2 0x1156
0000111a: SWAP3
0000111b: CALLDATASIZE
0000111c: SWAP1
0000111d: PUSH1 0x24
0000111f: DUP2
00001120: PUSH1 0x04
00001122: ADD
00001123: CALLDATALOAD
00001124: SWAP2
00001125: ADD
00001126: PUSH2 0x10a6
00001129: JUMP
0000112a: JUMPDEST
0000112b: PUSH2 0x1132
0000112e: PUSH2 0x3ee6
00001131: JUMP
00001132: JUMPDEST
00001133: PUSH1 0x40
00001135: MLOAD
00001136: SWAP3
00001137: DUP4
00001138: SWAP2
00001139: PUSH4 0x439fab91
0000113e: PUSH1 0xe0
00001140: SHL
00001141: PUSH1 0x20
00001143: DUP5
00001144: ADD
00001145: MSTORE
00001146: PUSH1 0x20
00001148: PUSH1 0x24
0000114a: DUP5
0000114b: ADD
0000114c: MSTORE
0000114d: PUSH1 0x44
0000114f: DUP4
00001150: ADD
00001151: SWAP1
00001152: PUSH2 0x1fd3
00001155: JUMP
00001156: JUMPDEST
00001157: SUB
00001158: PUSH1 0x1f
0000115a: NOT
0000115b: DUP2
0000115c: ADD
0000115d: DUP4
0000115e: MSTORE
0000115f: DUP3
00001160: PUSH2 0x104a
00001163: JUMP
00001164: JUMPDEST
00001165: PUSH2 0x116c
00001168: PUSH2 0x3ee6
0000116b: JUMP
0000116c: JUMPDEST
0000116d: PUSH2 0x1174
00001170: PUSH2 0x2e30
00001173: JUMP
00001174: JUMPDEST
00001175: PUSH1 0x01
00001177: PUSH1 0x01
00001179: PUSH1 0xa0
0000117b: SHL
0000117c: SUB
0000117d: DUP3
0000117e: AND
0000117f: DUP1
00001180: ISZERO
00001181: SWAP1
00001182: DUP2
00001183: ISZERO
00001184: PUSH2 0x1327
00001187: JUMPI
00001188: JUMPDEST
00001189: DUP2
0000118a: ISZERO
0000118b: PUSH2 0x12b7
0000118e: JUMPI
0000118f: JUMPDEST
00001190: DUP2
00001191: ISZERO
00001192: PUSH2 0x1251
00001195: JUMPI
00001196: JUMPDEST
00001197: POP
00001198: DUP1
00001199: ISZERO
0000119a: PUSH2 0x11ba
0000119d: JUMPI
0000119e: JUMPDEST
0000119f: PUSH2 0x11ab
000011a2: JUMPI
000011a3: PUSH2 0x0020
000011a6: SWAP2
000011a7: PUSH2 0x4920
000011aa: JUMP
000011ab: JUMPDEST
000011ac: PUSH4 0x55299b49
000011b1: PUSH1 0xe0
000011b3: SHL
000011b4: PUSH0
000011b5: MSTORE
000011b6: PUSH1 0x04
000011b8: PUSH0
000011b9: REVERT
000011ba: JUMPDEST
000011bb: POP
000011bc: PUSH1 0x40
000011be: MLOAD
000011bf: PUSH4 0x45da87c5
000011c4: PUSH1 0xe0
000011c6: SHL
000011c7: DUP2
000011c8: MSTORE
000011c9: PUSH1 0x01
000011cb: PUSH1 0x01
000011cd: PUSH1 0xa0
000011cf: SHL
000011d0: SUB
000011d1: DUP4
000011d2: AND
000011d3: PUSH1 0x04
000011d5: DUP3
000011d6: ADD
000011d7: MSTORE
000011d8: PUSH1 0x20
000011da: DUP2
000011db: DUP1
000011dc: PUSH1 0x24
000011de: DUP2
000011df: ADD
000011e0: SUB
000011e1: DUP2
000011e2: PUSH32 0x0000000000000000000000003a0008a588772446f6e656133c2d5029cc4fc20e
00001203: PUSH1 0x01
00001205: PUSH1 0x01
00001207: PUSH1 0xa0
00001209: SHL
0000120a: SUB
0000120b: AND
0000120c: GAS
0000120d: STATICCALL
0000120e: SWAP1
0000120f: DUP2
00001210: ISZERO
00001211: PUSH2 0x06ed
00001214: JUMPI
00001215: PUSH0
00001216: SWAP2
00001217: PUSH2 0x1222
0000121a: JUMPI
0000121b: JUMPDEST
0000121c: POP
0000121d: ISZERO
0000121e: PUSH2 0x119e
00001221: JUMP
00001222: JUMPDEST
00001223: PUSH2 0x1244
00001226: SWAP2
00001227: POP
00001228: PUSH1 0x20
0000122a: RETURNDATASIZE
0000122b: PUSH1 0x20
0000122d: GT
0000122e: PUSH2 0x124a
00001231: JUMPI
00001232: JUMPDEST
00001233: PUSH2 0x123c
00001236: DUP2
00001237: DUP4
00001238: PUSH2 0x104a
0000123b: JUMP
0000123c: JUMPDEST
0000123d: DUP2
0000123e: ADD
0000123f: SWAP1
00001240: PUSH2 0x293a
00001243: JUMP
00001244: JUMPDEST
00001245: PUSH0
00001246: PUSH2 0x121b
00001249: JUMP
0000124a: JUMPDEST
0000124b: POP
0000124c: RETURNDATASIZE
0000124d: PUSH2 0x1232
00001250: JUMP
00001251: JUMPDEST
00001252: PUSH1 0x40
00001254: MLOAD
00001255: PUSH4 0x054fd4d5
0000125a: PUSH1 0xe4
0000125c: SHL
0000125d: DUP2
0000125e: MSTORE
0000125f: SWAP2
00001260: POP
00001261: PUSH1 0x20
00001263: SWAP1
00001264: DUP3
00001265: SWAP1
00001266: PUSH1 0x04
00001268: SWAP1
00001269: DUP3
0000126a: SWAP1
0000126b: GAS
0000126c: STATICCALL
0000126d: SWAP1
0000126e: DUP2
0000126f: ISZERO
00001270: PUSH2 0x06ed
00001273: JUMPI
00001274: PUSH0
00001275: SWAP2
00001276: PUSH2 0x1288
00001279: JUMPI
0000127a: JUMPDEST
0000127b: POP
0000127c: PUSH1 0xff
0000127e: AND
0000127f: PUSH1 0x06
00001281: EQ
00001282: ISZERO
00001283: PUSH0
00001284: PUSH2 0x1196
00001287: JUMP
00001288: JUMPDEST
00001289: PUSH2 0x12aa
0000128c: SWAP2
0000128d: POP
0000128e: PUSH1 0x20
00001290: RETURNDATASIZE
00001291: PUSH1 0x20
00001293: GT
00001294: PUSH2 0x12b0
00001297: JUMPI
00001298: JUMPDEST
00001299: PUSH2 0x12a2
0000129c: DUP2
0000129d: DUP4
0000129e: PUSH2 0x104a
000012a1: JUMP
000012a2: JUMPDEST
000012a3: DUP2
000012a4: ADD
000012a5: SWAP1
000012a6: PUSH2 0x4907
000012a9: JUMP
000012aa: JUMPDEST
000012ab: PUSH0
000012ac: PUSH2 0x127a
000012af: JUMP
000012b0: JUMPDEST
000012b1: POP
000012b2: RETURNDATASIZE
000012b3: PUSH2 0x1298
000012b6: JUMP
000012b7: JUMPDEST
000012b8: PUSH1 0x40
000012ba: MLOAD
000012bb: PUSH4 0x198ca605
000012c0: PUSH1 0xe1
000012c2: SHL
000012c3: DUP2
000012c4: MSTORE
000012c5: SWAP1
000012c6: SWAP2
000012c7: POP
000012c8: PUSH1 0x20
000012ca: DUP2
000012cb: PUSH1 0x04
000012cd: DUP2
000012ce: DUP6
000012cf: GAS
000012d0: STATICCALL
000012d1: DUP1
000012d2: ISZERO
000012d3: PUSH2 0x06ed
000012d6: JUMPI
000012d7: PUSH32 0x11a6b7bef0f97d298d56e5af2aa94330353808e861cbac86172faad21b10c505
000012f8: SWAP2
000012f9: PUSH0
000012fa: SWAP2
000012fb: PUSH2 0x1308
000012fe: JUMPI
000012ff: JUMPDEST
00001300: POP
00001301: EQ
00001302: ISZERO
00001303: SWAP1
00001304: PUSH2 0x118f
00001307: JUMP
00001308: JUMPDEST
00001309: PUSH2 0x1321
0000130c: SWAP2
0000130d: POP
0000130e: PUSH1 0x20
00001310: RETURNDATASIZE
00001311: PUSH1 0x20
00001313: GT
00001314: PUSH2 0x06e6
00001317: JUMPI
00001318: PUSH2 0x06d8
0000131b: DUP2
0000131c: DUP4
0000131d: PUSH2 0x104a
00001320: JUMP
00001321: JUMPDEST
00001322: PUSH0
00001323: PUSH2 0x12ff
00001326: JUMP
00001327: JUMPDEST
00001328: PUSH0
00001329: DUP1
0000132a: MLOAD
0000132b: PUSH1 0x20
0000132d: PUSH2 0x4e53
00001330: DUP4
00001331: CODECOPY
00001332: DUP2
00001333: MLOAD
00001334: SWAP2
00001335: MSTORE
00001336: SLOAD
00001337: SWAP1
00001338: SWAP2
00001339: POP
0000133a: DUP2
0000133b: SWAP1
0000133c: PUSH2 0x134d
0000133f: SWAP1
00001340: PUSH1 0x01
00001342: PUSH1 0x01
00001344: PUSH1 0xa0
00001346: SHL
00001347: SUB
00001348: AND
00001349: PUSH2 0x0366
0000134c: JUMP
0000134d: JUMPDEST
0000134e: EQ
0000134f: SWAP1
00001350: PUSH2 0x1188
00001353: JUMP
00001354: JUMPDEST
00001355: CALLVALUE
00001356: PUSH2 0x0383
00001359: JUMPI
0000135a: PUSH0
0000135b: CALLDATASIZE
0000135c: PUSH1 0x03
0000135e: NOT
0000135f: ADD
00001360: SLT
00001361: PUSH2 0x0383
00001364: JUMPI
00001365: PUSH32 0x000000000000000000000000f113bfd6423291b1dd2ca76f897bff54456e7c88
00001386: PUSH1 0x01
00001388: PUSH1 0x01
0000138a: PUSH1 0xa0
0000138c: SHL
0000138d: SUB
0000138e: AND
0000138f: ADDRESS
00001390: SUB
00001391: PUSH2 0x13ab
00001394: JUMPI
00001395: PUSH1 0x20
00001397: PUSH1 0x40
00001399: MLOAD
0000139a: PUSH0
0000139b: DUP1
0000139c: MLOAD
0000139d: PUSH1 0x20
0000139f: PUSH2 0x4e53
000013a2: DUP4
000013a3: CODECOPY
000013a4: DUP2
000013a5: MLOAD
000013a6: SWAP2
000013a7: MSTORE
000013a8: DUP2
000013a9: MSTORE
000013aa: RETURN
000013ab: JUMPDEST
000013ac: PUSH4 0x703e46dd
000013b1: PUSH1 0xe1
000013b3: SHL
000013b4: PUSH0
000013b5: MSTORE
000013b6: PUSH1 0x04
000013b8: PUSH0
000013b9: REVERT
000013ba: JUMPDEST
000013bb: PUSH0
000013bc: CALLDATASIZE
000013bd: PUSH1 0x03
000013bf: NOT
000013c0: ADD
000013c1: SLT
000013c2: PUSH2 0x0383
000013c5: JUMPI
000013c6: PUSH1 0x01
000013c8: PUSH1 0x01
000013ca: PUSH1 0xa0
000013cc: SHL
000013cd: SUB
000013ce: PUSH2 0x13d5
000013d1: PUSH2 0x26bc
000013d4: JUMP
000013d5: JUMPDEST
000013d6: AND
000013d7: CALLER
000013d8: SUB
000013d9: PUSH2 0x0f78
000013dc: JUMPI
000013dd: STOP
000013de: JUMPDEST
000013df: CALLVALUE
000013e0: PUSH2 0x0383
000013e3: JUMPI
000013e4: PUSH0
000013e5: CALLDATASIZE
000013e6: PUSH1 0x03
000013e8: NOT
000013e9: ADD
000013ea: SLT
000013eb: PUSH2 0x0383
000013ee: JUMPI
000013ef: PUSH1 0x20
000013f1: PUSH1 0x40
000013f3: MLOAD
000013f4: PUSH1 0x05
000013f6: DUP2
000013f7: MSTORE
000013f8: RETURN
000013f9: JUMPDEST
000013fa: PUSH1 0x60
000013fc: CALLDATASIZE
000013fd: PUSH1 0x03
000013ff: NOT
00001400: ADD
00001401: SLT
00001402: PUSH2 0x0383
00001405: JUMPI
00001406: PUSH1 0x04
00001408: CALLDATALOAD
00001409: PUSH1 0x01
0000140b: PUSH1 0x01
0000140d: PUSH1 0x40
0000140f: SHL
00001410: SUB
00001411: DUP2
00001412: GT
00001413: PUSH2 0x0383
00001416: JUMPI
00001417: PUSH2 0x1424
0000141a: SWAP1
0000141b: CALLDATASIZE
0000141c: SWAP1
0000141d: PUSH1 0x04
0000141f: ADD
00001420: PUSH2 0x0d6d
00001423: JUMP
00001424: JUMPDEST
00001425: PUSH1 0x24
00001427: CALLDATALOAD
00001428: PUSH1 0x01
0000142a: PUSH1 0x01
0000142c: PUSH1 0x40
0000142e: SHL
0000142f: SUB
00001430: DUP2
00001431: GT
00001432: PUSH2 0x0383
00001435: JUMPI
00001436: PUSH2 0x1443
00001439: SWAP1
0000143a: CALLDATASIZE
0000143b: SWAP1
0000143c: PUSH1 0x04
0000143e: ADD
0000143f: PUSH2 0x0d6d
00001442: JUMP
00001443: JUMPDEST
00001444: PUSH1 0x44
00001446: SWAP4
00001447: SWAP2
00001448: SWAP4
00001449: CALLDATALOAD
0000144a: PUSH1 0x01
0000144c: PUSH1 0x01
0000144e: PUSH1 0x40
00001450: SHL
00001451: SUB
00001452: DUP2
00001453: GT
00001454: PUSH2 0x0383
00001457: JUMPI
00001458: PUSH2 0x1488
0000145b: PUSH2 0x146b
0000145e: PUSH2 0x148c
00001461: SWAP3
00001462: CALLDATASIZE
00001463: SWAP1
00001464: PUSH1 0x04
00001466: ADD
00001467: PUSH2 0x0d6d
0000146a: JUMP
0000146b: JUMPDEST
0000146c: SWAP4
0000146d: SWAP1
0000146e: SWAP7
0000146f: PUSH2 0x1476
00001472: PUSH2 0x3f44
00001475: JUMP
00001476: JUMPDEST
00001477: PUSH2 0x147e
0000147a: PUSH2 0x30c4
0000147d: JUMP
0000147e: JUMPDEST
0000147f: PUSH1 0xd5
00001481: SLOAD
00001482: DUP8
00001483: DUP8
00001484: PUSH2 0x3fbd
00001487: JUMP
00001488: JUMPDEST
00001489: ISZERO
0000148a: SWAP1
0000148b: JUMP
0000148c: JUMPDEST
0000148d: PUSH2 0x0f78
00001490: JUMPI
00001491: PUSH0
00001492: SWAP4
00001493: DUP2
00001494: PUSH2 0x1534
00001497: JUMPI
00001498: JUMPDEST
00001499: POP
0000149a: POP
0000149b: PUSH20 0x2319ace2793561520fb600da1c4b09a660a4adb5
000014b0: DUP1
000014b1: EXTCODESIZE
000014b2: ISZERO
000014b3: PUSH2 0x0383
000014b6: JUMPI
000014b7: PUSH2 0x14fb
000014ba: SWAP4
000014bb: PUSH0
000014bc: SWAP4
000014bd: PUSH1 0x40
000014bf: MLOAD
000014c0: SWAP6
000014c1: DUP7
000014c2: SWAP5
000014c3: DUP6
000014c4: SWAP4
000014c5: DUP5
000014c6: SWAP4
000014c7: PUSH4 0x163be54b
000014cc: PUSH1 0xe0
000014ce: SHL
000014cf: DUP6
000014d0: MSTORE
000014d1: PUSH32 0x0000000000000000000000000000bbddc7ce488642fb579f8b00f3a590007251
000014f2: SWAP3
000014f3: PUSH1 0x04
000014f5: DUP7
000014f6: ADD
000014f7: PUSH2 0x28e9
000014fa: JUMP
000014fb: JUMPDEST
000014fc: SUB
000014fd: SWAP2
000014fe: GAS
000014ff: DELEGATECALL
00001500: DUP1
00001501: ISZERO
00001502: PUSH2 0x06ed
00001505: JUMPI
00001506: PUSH2 0x1520
00001509: JUMPI
0000150a: JUMPDEST
0000150b: PUSH2 0x0020
0000150e: PUSH1 0x01
00001510: PUSH0
00001511: DUP1
00001512: MLOAD
00001513: PUSH1 0x20
00001515: PUSH2 0x4e73
00001518: DUP4
00001519: CODECOPY
0000151a: DUP2
0000151b: MLOAD
0000151c: SWAP2
0000151d: MSTORE
0000151e: SSTORE
0000151f: JUMP
00001520: JUMPDEST
00001521: DUP1
00001522: PUSH2 0x0c42
00001525: PUSH0
00001526: PUSH2 0x152e
00001529: SWAP4
0000152a: PUSH2 0x104a
0000152d: JUMP
0000152e: JUMPDEST
0000152f: PUSH0
00001530: PUSH2 0x150a
00001533: JUMP
00001534: JUMPDEST
00001535: SWAP2
00001536: SWAP4
00001537: POP
00001538: PUSH32 0x000000000000000000000000033e5bae5bdc459cbb7d388b41a9d62020be810f
00001559: PUSH1 0x01
0000155b: PUSH1 0x01
0000155d: PUSH1 0xa0
0000155f: SHL
00001560: SUB
00001561: AND
00001562: SWAP2
00001563: SWAP1
00001564: DUP3
00001565: EXTCODESIZE
00001566: ISZERO
00001567: PUSH2 0x0383
0000156a: JUMPI
0000156b: PUSH2 0x1590
0000156e: SWAP3
0000156f: PUSH0
00001570: SWAP3
00001571: DUP4
00001572: PUSH1 0x40
00001574: MLOAD
00001575: DUP1
00001576: SWAP7
00001577: DUP2
00001578: SWAP6
00001579: DUP3
0000157a: SWAP5
0000157b: PUSH4 0x01bb2b53
00001580: PUSH1 0xe7
00001582: SHL
00001583: DUP5
00001584: MSTORE
00001585: DUP11
00001586: DUP13
00001587: ADDRESS
00001588: PUSH1 0x04
0000158a: DUP8
0000158b: ADD
0000158c: PUSH2 0x28b5
0000158f: JUMP
00001590: JUMPDEST
00001591: SUB
00001592: SWAP3
00001593: GAS
00001594: CALL
00001595: DUP1
00001596: ISZERO
00001597: PUSH2 0x06ed
0000159a: JUMPI
0000159b: PUSH2 0x15aa
0000159e: JUMPI
0000159f: JUMPDEST
000015a0: POP
000015a1: PUSH1 0x01
000015a3: SWAP2
000015a4: PUSH0
000015a5: DUP1
000015a6: PUSH2 0x1498
000015a9: JUMP
000015aa: JUMPDEST
000015ab: DUP1
000015ac: PUSH2 0x0c42
000015af: PUSH0
000015b0: PUSH2 0x15b8
000015b3: SWAP4
000015b4: PUSH2 0x104a
000015b7: JUMP
000015b8: JUMPDEST
000015b9: PUSH0
000015ba: PUSH2 0x159f
000015bd: JUMP
000015be: JUMPDEST
000015bf: CALLVALUE
000015c0: PUSH2 0x0383
000015c3: JUMPI
000015c4: PUSH0
000015c5: CALLDATASIZE
000015c6: PUSH1 0x03
000015c8: NOT
000015c9: ADD
000015ca: SLT
000015cb: PUSH2 0x0383
000015ce: JUMPI
000015cf: PUSH0
000015d0: DUP1
000015d1: MLOAD
000015d2: PUSH1 0x20
000015d4: PUSH2 0x4e53
000015d7: DUP4
000015d8: CODECOPY
000015d9: DUP2
000015da: MLOAD
000015db: SWAP2
000015dc: MSTORE
000015dd: SLOAD
000015de: PUSH1 0x40
000015e0: MLOAD
000015e1: PUSH1 0x01
000015e3: PUSH1 0x01
000015e5: PUSH1 0xa0
000015e7: SHL
000015e8: SUB
000015e9: SWAP1
000015ea: SWAP2
000015eb: AND
000015ec: DUP2
000015ed: MSTORE
000015ee: PUSH1 0x20
000015f0: SWAP1
000015f1: RETURN
000015f2: JUMPDEST
000015f3: CALLVALUE
000015f4: PUSH2 0x0383
000015f7: JUMPI
000015f8: PUSH0
000015f9: CALLDATASIZE
000015fa: PUSH1 0x03
000015fc: NOT
000015fd: ADD
000015fe: SLT
000015ff: PUSH2 0x0383
00001602: JUMPI
00001603: PUSH1 0x20
00001605: PUSH2 0x03fc
00001608: PUSH2 0x291f
0000160b: JUMP
0000160c: JUMPDEST
0000160d: CALLVALUE
0000160e: PUSH2 0x0383
00001611: JUMPI
00001612: PUSH1 0x20
00001614: CALLDATASIZE
00001615: PUSH1 0x03
00001617: NOT
00001618: ADD
00001619: SLT
0000161a: PUSH2 0x0383
0000161d: JUMPI
0000161e: PUSH1 0x04
00001620: CALLDATALOAD
00001621: PUSH1 0x40
00001623: MLOAD
00001624: SWAP1
00001625: PUSH4 0x3ec7cf4b
0000162a: PUSH1 0xe1
0000162c: SHL
0000162d: DUP3
0000162e: MSTORE
0000162f: PUSH1 0x9a
00001631: PUSH1 0x04
00001633: DUP4
00001634: ADD
00001635: MSTORE
00001636: PUSH1 0x24
00001638: DUP3
00001639: ADD
0000163a: MSTORE
0000163b: PUSH1 0x20
0000163d: DUP2
0000163e: PUSH1 0x44
00001640: DUP2
00001641: PUSH20 0x723399c5a3503a53af1bdf89bda7d6d1025cab97
00001656: GAS
00001657: DELEGATECALL
00001658: SWAP1
00001659: DUP2
0000165a: ISZERO
0000165b: PUSH2 0x06ed
0000165e: JUMPI
0000165f: PUSH0
00001660: SWAP2
00001661: PUSH2 0x1690
00001664: JUMPI
00001665: JUMPDEST
00001666: POP
00001667: PUSH1 0x9a
00001669: SLOAD
0000166a: DUP2
0000166b: LT
0000166c: ISZERO
0000166d: PUSH2 0x1685
00001670: JUMPI
00001671: PUSH2 0x06ab
00001674: SWAP1
00001675: JUMPDEST
00001676: PUSH1 0x40
00001678: MLOAD
00001679: SWAP1
0000167a: DUP2
0000167b: MSTORE
0000167c: SWAP1
0000167d: DUP2
0000167e: SWAP1
0000167f: PUSH1 0x20
00001681: DUP3
00001682: ADD
00001683: SWAP1
00001684: JUMP
00001685: JUMPDEST
00001686: POP
00001687: PUSH2 0x06ab
0000168a: PUSH0
0000168b: NOT
0000168c: PUSH2 0x1675
0000168f: JUMP
00001690: JUMPDEST
00001691: PUSH2 0x16a9
00001694: SWAP2
00001695: POP
00001696: PUSH1 0x20
00001698: RETURNDATASIZE
00001699: PUSH1 0x20
0000169b: GT
0000169c: PUSH2 0x06e6
0000169f: JUMPI
000016a0: PUSH2 0x06d8
000016a3: DUP2
000016a4: DUP4
000016a5: PUSH2 0x104a
000016a8: JUMP
000016a9: JUMPDEST
000016aa: PUSH0
000016ab: PUSH2 0x1665
000016ae: JUMP
000016af: JUMPDEST
000016b0: CALLVALUE
000016b1: PUSH2 0x0383
000016b4: JUMPI
000016b5: PUSH1 0x20
000016b7: CALLDATASIZE
000016b8: PUSH1 0x03
000016ba: NOT
000016bb: ADD
000016bc: SLT
000016bd: PUSH2 0x0383
000016c0: JUMPI
000016c1: PUSH1 0x04
000016c3: CALLDATALOAD
000016c4: PUSH2 0x16cc
000016c7: DUP2
000016c8: PUSH2 0x0372
000016cb: JUMP
000016cc: JUMPDEST
000016cd: PUSH2 0x16d4
000016d0: PUSH2 0x2e30
000016d3: JUMP
000016d4: JUMPDEST
000016d5: PUSH1 0x01
000016d7: PUSH1 0x01
000016d9: PUSH1 0xa0
000016db: SHL
000016dc: SUB
000016dd: AND
000016de: DUP1
000016df: ISZERO
000016e0: PUSH2 0x0c4e
000016e3: JUMPI
000016e4: PUSH0
000016e5: SLOAD
000016e6: PUSH1 0x01
000016e8: PUSH1 0x01
000016ea: PUSH1 0xa0
000016ec: SHL
000016ed: SUB
000016ee: DUP2
000016ef: AND
000016f0: DUP3
000016f1: EQ
000016f2: PUSH2 0x172d
000016f5: JUMPI
000016f6: DUP2
000016f7: SWAP1
000016f8: PUSH1 0x01
000016fa: PUSH1 0x01
000016fc: PUSH1 0x60
000016fe: SHL
000016ff: SUB
00001700: PUSH1 0xa0
00001702: SHL
00001703: AND
00001704: OR
00001705: PUSH0
00001706: SSTORE
00001707: CALLER
00001708: PUSH32 0x101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b
00001729: PUSH0
0000172a: DUP1
0000172b: LOG3
0000172c: STOP
0000172d: JUMPDEST
0000172e: PUSH4 0x8c8728c7
00001733: PUSH1 0xe0
00001735: SHL
00001736: PUSH0
00001737: MSTORE
00001738: PUSH1 0x04
0000173a: PUSH0
0000173b: REVERT
0000173c: JUMPDEST
0000173d: CALLVALUE
0000173e: PUSH2 0x0383
00001741: JUMPI
00001742: PUSH0
00001743: CALLDATASIZE
00001744: PUSH1 0x03
00001746: NOT
00001747: ADD
00001748: SLT
00001749: PUSH2 0x0383
0000174c: JUMPI
0000174d: PUSH1 0x40
0000174f: MLOAD
00001750: PUSH4 0x3eb1acf7
00001755: PUSH1 0xe1
00001757: SHL
00001758: DUP2
00001759: MSTORE
0000175a: ADDRESS
0000175b: PUSH1 0x04
0000175d: DUP3
0000175e: ADD
0000175f: MSTORE
00001760: PUSH1 0x20
00001762: DUP2
00001763: PUSH1 0x24
00001765: DUP2
00001766: PUSH32 0x0000000000000000000000006b5815467da09daa7dc83db21c9239d98bb487b5
00001787: PUSH1 0x01
00001789: PUSH1 0x01
0000178b: PUSH1 0xa0
0000178d: SHL
0000178e: SUB
0000178f: AND
00001790: GAS
00001791: STATICCALL
00001792: DUP1
00001793: ISZERO
00001794: PUSH2 0x06ed
00001797: JUMPI
00001798: PUSH2 0x06ab
0000179b: SWAP2
0000179c: PUSH0
0000179d: SWAP2
0000179e: PUSH2 0x17b5
000017a1: JUMPI
000017a2: JUMPDEST
000017a3: POP
000017a4: PUSH1 0x40
000017a6: MLOAD
000017a7: SWAP1
000017a8: ISZERO
000017a9: ISZERO
000017aa: DUP2
000017ab: MSTORE
000017ac: SWAP1
000017ad: DUP2
000017ae: SWAP1
000017af: PUSH1 0x20
000017b1: DUP3
000017b2: ADD
000017b3: SWAP1
000017b4: JUMP
000017b5: JUMPDEST
000017b6: PUSH2 0x17ce
000017b9: SWAP2
000017ba: POP
000017bb: PUSH1 0x20
000017bd: RETURNDATASIZE
000017be: PUSH1 0x20
000017c0: GT
000017c1: PUSH2 0x124a
000017c4: JUMPI
000017c5: PUSH2 0x123c
000017c8: DUP2
000017c9: DUP4
000017ca: PUSH2 0x104a
000017cd: JUMP
000017ce: JUMPDEST
000017cf: PUSH0
000017d0: PUSH2 0x17a2
000017d3: JUMP
000017d4: JUMPDEST
000017d5: CALLVALUE
000017d6: PUSH2 0x0383
000017d9: JUMPI
000017da: PUSH1 0x20
000017dc: CALLDATASIZE
000017dd: PUSH1 0x03
000017df: NOT
000017e0: ADD
000017e1: SLT
000017e2: PUSH2 0x0383
000017e5: JUMPI
000017e6: PUSH1 0x04
000017e8: CALLDATALOAD
000017e9: PUSH2 0x17f1
000017ec: DUP2
000017ed: PUSH2 0x0372
000017f0: JUMP
000017f1: JUMPDEST
000017f2: PUSH2 0x17f9
000017f5: PUSH2 0x2e30
000017f8: JUMP
000017f9: JUMPDEST
000017fa: PUSH1 0xd2
000017fc: SLOAD
000017fd: PUSH1 0x01
000017ff: PUSH1 0x01
00001801: PUSH1 0xa0
00001803: SHL
00001804: SUB
00001805: SWAP2
00001806: DUP3
00001807: AND
00001808: SWAP2
00001809: DUP2
0000180a: AND
0000180b: DUP3
0000180c: EQ
0000180d: PUSH2 0x172d
00001810: JUMPI
00001811: PUSH1 0x01
00001813: PUSH1 0x01
00001815: PUSH1 0xa0
00001817: SHL
00001818: SUB
00001819: NOT
0000181a: AND
0000181b: DUP2
0000181c: OR
0000181d: PUSH1 0xd2
0000181f: SSTORE
00001820: CALLER
00001821: PUSH32 0x6bdc78d8c88160b3fc3638e67f2afe523b3f4c7d00c56ebb6216790e4c3eb2cb
00001842: PUSH0
00001843: DUP1
00001844: LOG3
00001845: STOP
00001846: JUMPDEST
00001847: CALLVALUE
00001848: PUSH2 0x0383
0000184b: JUMPI
0000184c: PUSH1 0x80
0000184e: CALLDATASIZE
0000184f: PUSH1 0x03
00001851: NOT
00001852: ADD
00001853: SLT
00001854: PUSH2 0x0383
00001857: JUMPI
00001858: PUSH2 0x06ab
0000185b: PUSH2 0x1879
0000185e: PUSH1 0x04
00001860: CALLDATALOAD
00001861: PUSH2 0x1869
00001864: DUP2
00001865: PUSH2 0x0372
00001868: JUMP
00001869: JUMPDEST
0000186a: PUSH1 0x24
0000186c: CALLDATALOAD
0000186d: PUSH1 0x44
0000186f: CALLDATALOAD
00001870: SWAP1
00001871: PUSH1 0x64
00001873: CALLDATALOAD
00001874: SWAP3
00001875: PUSH2 0x2971
00001878: JUMP
00001879: JUMPDEST
0000187a: PUSH1 0x40
0000187c: DUP1
0000187d: MLOAD
0000187e: SWAP4
0000187f: DUP5
00001880: MSTORE
00001881: PUSH1 0x20
00001883: DUP5
00001884: ADD
00001885: SWAP3
00001886: SWAP1
00001887: SWAP3
00001888: MSTORE
00001889: SWAP1
0000188a: DUP3
0000188b: ADD
0000188c: MSTORE
0000188d: SWAP1
0000188e: DUP2
0000188f: SWAP1
00001890: PUSH1 0x60
00001892: DUP3
00001893: ADD
00001894: SWAP1
00001895: JUMP
00001896: JUMPDEST
00001897: CALLVALUE
00001898: PUSH2 0x0383
0000189b: JUMPI
0000189c: PUSH1 0x20
0000189e: CALLDATASIZE
0000189f: PUSH1 0x03
000018a1: NOT
000018a2: ADD
000018a3: SLT
000018a4: PUSH2 0x0383
000018a7: JUMPI
000018a8: PUSH1 0x04
000018aa: CALLDATALOAD
000018ab: PUSH0
000018ac: MSTORE
000018ad: PUSH1 0xd4
000018af: PUSH1 0x20
000018b1: MSTORE
000018b2: PUSH1 0x20
000018b4: PUSH1 0xff
000018b6: PUSH1 0x40
000018b8: PUSH0
000018b9: KECCAK256
000018ba: SLOAD
000018bb: AND
000018bc: PUSH1 0x40
000018be: MLOAD
000018bf: SWAP1
000018c0: ISZERO
000018c1: ISZERO
000018c2: DUP2
000018c3: MSTORE
000018c4: RETURN
000018c5: JUMPDEST
000018c6: CALLVALUE
000018c7: PUSH2 0x0383
000018ca: JUMPI
000018cb: PUSH0
000018cc: CALLDATASIZE
000018cd: PUSH1 0x03
000018cf: NOT
000018d0: ADD
000018d1: SLT
000018d2: PUSH2 0x0383
000018d5: JUMPI
000018d6: PUSH2 0x18dd
000018d9: PUSH2 0x2e30
000018dc: JUMP
000018dd: JUMPDEST
000018de: PUSH2 0x18e5
000018e1: PUSH2 0x40be
000018e4: JUMP
000018e5: JUMPDEST
000018e6: PUSH2 0x192f
000018e9: JUMPI
000018ea: PUSH32 0x0000000000000000000000002296e122c1a20fca3cac3371357bdad3be0df079
0000190b: PUSH1 0x01
0000190d: PUSH1 0x01
0000190f: PUSH1 0xa0
00001911: SHL
00001912: SUB
00001913: AND
00001914: BALANCE
00001915: SELFBALANCE
00001916: ADD
00001917: PUSH1 0x98
00001919: SLOAD
0000191a: PUSH1 0x80
0000191c: SHR
0000191d: DUP2
0000191e: SUB
0000191f: SWAP1
00001920: DUP2
00001921: GT
00001922: PUSH2 0x07c6
00001925: JUMPI
00001926: PUSH2 0x0020
00001929: SWAP1
0000192a: CALLER
0000192b: PUSH2 0x412d
0000192e: JUMP
0000192f: JUMPDEST
00001930: PUSH4 0x89a1dc63
00001935: PUSH1 0xe0
00001937: SHL
00001938: PUSH0
00001939: MSTORE
0000193a: PUSH1 0x04
0000193c: PUSH0
0000193d: REVERT
0000193e: JUMPDEST
0000193f: CALLVALUE
00001940: PUSH2 0x0383
00001943: JUMPI
00001944: PUSH0
00001945: CALLDATASIZE
00001946: PUSH1 0x03
00001948: NOT
00001949: ADD
0000194a: SLT
0000194b: PUSH2 0x0383
0000194e: JUMPI
0000194f: PUSH1 0x20
00001951: PUSH2 0xffff
00001954: PUSH1 0x65
00001956: SLOAD
00001957: PUSH1 0xa0
00001959: SHR
0000195a: AND
0000195b: PUSH1 0x40
0000195d: MLOAD
0000195e: SWAP1
0000195f: DUP2
00001960: MSTORE
00001961: RETURN
00001962: JUMPDEST
00001963: CALLVALUE
00001964: PUSH2 0x0383
00001967: JUMPI
00001968: PUSH1 0x40
0000196a: CALLDATASIZE
0000196b: PUSH1 0x03
0000196d: NOT
0000196e: ADD
0000196f: SLT
00001970: PUSH2 0x0383
00001973: JUMPI
00001974: PUSH1 0x04
00001976: CALLDATALOAD
00001977: PUSH1 0x01
00001979: PUSH1 0x01
0000197b: PUSH1 0x40
0000197d: SHL
0000197e: SUB
0000197f: DUP2
00001980: GT
00001981: PUSH2 0x0383
00001984: JUMPI
00001985: DUP1
00001986: PUSH1 0x04
00001988: ADD
00001989: SWAP1
0000198a: PUSH1 0xa0
0000198c: PUSH1 0x03
0000198e: NOT
0000198f: DUP3
00001990: CALLDATASIZE
00001991: SUB
00001992: ADD
00001993: SLT
00001994: PUSH2 0x0383
00001997: JUMPI
00001998: PUSH1 0x24
0000199a: CALLDATALOAD
0000199b: PUSH1 0x01
0000199d: PUSH1 0x01
0000199f: PUSH1 0x40
000019a1: SHL
000019a2: SUB
000019a3: DUP2
000019a4: GT
000019a5: PUSH2 0x0383
000019a8: JUMPI
000019a9: PUSH2 0x19b6
000019ac: SWAP1
000019ad: CALLDATASIZE
000019ae: SWAP1
000019af: PUSH1 0x04
000019b1: ADD
000019b2: PUSH2 0x0d6d
000019b5: JUMP
000019b6: JUMPDEST
000019b7: SWAP1
000019b8: SWAP2
000019b9: SWAP1
000019ba: PUSH32 0x0000000000000000000000006b5815467da09daa7dc83db21c9239d98bb487b5
000019db: PUSH1 0x01
000019dd: PUSH1 0x01
000019df: PUSH1 0xa0
000019e1: SHL
000019e2: SUB
000019e3: AND
000019e4: SWAP1
000019e5: DUP2
000019e6: EXTCODESIZE
000019e7: ISZERO
000019e8: PUSH2 0x0383
000019eb: JUMPI
000019ec: PUSH0
000019ed: PUSH1 0x40
000019ef: MLOAD
000019f0: DUP1
000019f1: SWAP4
000019f2: PUSH4 0x837d4441
000019f7: PUSH1 0xe0
000019f9: SHL
000019fa: DUP3
000019fb: MSTORE
000019fc: DUP2
000019fd: DUP4
000019fe: DUP2
000019ff: PUSH2 0x1a0b
00001a02: DUP12
00001a03: PUSH1 0x04
00001a05: DUP4
00001a06: ADD
00001a07: PUSH2 0x2aa3
00001a0a: JUMP
00001a0b: JUMPDEST
00001a0c: SUB
00001a0d: SWAP3
00001a0e: GAS
00001a0f: CALL
00001a10: DUP1
00001a11: ISZERO
00001a12: PUSH2 0x06ed
00001a15: JUMPI
00001a16: PUSH2 0x1a42
00001a19: SWAP4
00001a1a: PUSH2 0x1488
00001a1d: SWAP4
00001a1e: PUSH1 0x44
00001a20: SWAP3
00001a21: PUSH2 0x1ac2
00001a24: JUMPI
00001a25: JUMPDEST
00001a26: POP
00001a27: PUSH2 0x1a2e
00001a2a: PUSH2 0x41a2
00001a2d: JUMP
00001a2e: JUMPDEST
00001a2f: ADD
00001a30: SWAP4
00001a31: PUSH2 0x1a3a
00001a34: DUP6
00001a35: DUP8
00001a36: PUSH2 0x2b20
00001a39: JUMP
00001a3a: JUMPDEST
00001a3b: DUP8
00001a3c: CALLDATALOAD
00001a3d: SWAP2
00001a3e: PUSH2 0x3fbd
00001a41: JUMP
00001a42: JUMPDEST
00001a43: PUSH2 0x0f78
00001a46: JUMPI
00001a47: PUSH2 0x1a54
00001a4a: PUSH0
00001a4b: SWAP2
00001a4c: PUSH2 0x1a70
00001a4f: SWAP4
00001a50: PUSH2 0x2b20
00001a53: JUMP
00001a54: JUMPDEST
00001a55: PUSH1 0x40
00001a57: MLOAD
00001a58: PUSH4 0x0ee0f427
00001a5d: PUSH1 0xe2
00001a5f: SHL
00001a60: DUP2
00001a61: MSTORE
00001a62: SWAP4
00001a63: DUP5
00001a64: SWAP3
00001a65: DUP4
00001a66: SWAP3
00001a67: SWAP1
00001a68: PUSH1 0x04
00001a6a: DUP5
00001a6b: ADD
00001a6c: PUSH2 0x2cd9
00001a6f: JUMP
00001a70: JUMPDEST
00001a71: SUB
00001a72: DUP2
00001a73: PUSH20 0x2319ace2793561520fb600da1c4b09a660a4adb5
00001a88: GAS
00001a89: DELEGATECALL
00001a8a: DUP1
00001a8b: ISZERO
00001a8c: PUSH2 0x06ed
00001a8f: JUMPI
00001a90: PUSH2 0x0020
00001a93: SWAP2
00001a94: PUSH0
00001a95: SWAP2
00001a96: PUSH2 0x1aa0
00001a99: JUMPI
00001a9a: JUMPDEST
00001a9b: POP
00001a9c: PUSH2 0x422a
00001a9f: JUMP
00001aa0: JUMPDEST
00001aa1: PUSH2 0x1abc
00001aa4: SWAP2
00001aa5: POP
00001aa6: RETURNDATASIZE
00001aa7: DUP1
00001aa8: PUSH0
00001aa9: DUP4
00001aaa: RETURNDATACOPY
00001aab: PUSH2 0x1ab4
00001aae: DUP2
00001aaf: DUP4
00001ab0: PUSH2 0x104a
00001ab3: JUMP
00001ab4: JUMPDEST
00001ab5: DUP2
00001ab6: ADD
00001ab7: SWAP1
00001ab8: PUSH2 0x2baf
00001abb: JUMP
00001abc: JUMPDEST
00001abd: PUSH0
00001abe: PUSH2 0x1a9a
00001ac1: JUMP
00001ac2: JUMPDEST
00001ac3: DUP1
00001ac4: PUSH2 0x0c42
00001ac7: PUSH0
00001ac8: PUSH2 0x1ad0
00001acb: SWAP4
00001acc: PUSH2 0x104a
00001acf: JUMP
00001ad0: JUMPDEST
00001ad1: PUSH0
00001ad2: PUSH2 0x1a25
00001ad5: JUMP
00001ad6: JUMPDEST
00001ad7: CALLVALUE
00001ad8: PUSH2 0x0383
00001adb: JUMPI
00001adc: PUSH1 0x60
00001ade: CALLDATASIZE
00001adf: PUSH1 0x03
00001ae1: NOT
00001ae2: ADD
00001ae3: SLT
00001ae4: PUSH2 0x0383
00001ae7: JUMPI
00001ae8: PUSH1 0x04
00001aea: CALLDATALOAD
00001aeb: PUSH1 0x24
00001aed: CALLDATALOAD
00001aee: PUSH2 0x1afb
00001af1: PUSH1 0x44
00001af3: CALLDATALOAD
00001af4: DUP3
00001af5: DUP5
00001af6: CALLER
00001af7: PUSH2 0x2971
00001afa: JUMP
00001afb: JUMPDEST
00001afc: SWAP2
00001afd: SWAP3
00001afe: PUSH2 0x1b27
00001b01: PUSH32 0x000000000000000000000000000000000000000000000000000000000000d2f0
00001b22: DUP3
00001b23: PUSH2 0x25db
00001b26: JUMP
00001b27: JUMPDEST
00001b28: TIMESTAMP
00001b29: LT
00001b2a: DUP1
00001b2b: ISZERO
00001b2c: PUSH2 0x1c60
00001b2f: JUMPI
00001b30: JUMPDEST
00001b31: DUP1
00001b32: ISZERO
00001b33: PUSH2 0x1c58
00001b36: JUMPI
00001b37: JUMPDEST
00001b38: PUSH2 0x1c49
00001b3b: JUMPI
00001b3c: PUSH32 0xeb3b05c070c24f667611fdb3ff75fe007d42401c573aed8d8faca95fd00ccb56
00001b5d: SWAP4
00001b5e: PUSH2 0x1b92
00001b61: PUSH2 0x1b77
00001b64: PUSH2 0x1b6c
00001b67: DUP7
00001b68: PUSH2 0x4305
00001b6b: JUMP
00001b6c: JUMPDEST
00001b6d: PUSH1 0x99
00001b6f: SLOAD
00001b70: PUSH1 0x80
00001b72: SHR
00001b73: PUSH2 0x2545
00001b76: JUMP
00001b77: JUMPDEST
00001b78: PUSH1 0x01
00001b7a: PUSH1 0x01
00001b7c: PUSH1 0x80
00001b7e: SHL
00001b7f: SUB
00001b80: PUSH1 0x99
00001b82: SLOAD
00001b83: SWAP2
00001b84: DUP2
00001b85: NOT
00001b86: SWAP1
00001b87: PUSH1 0x80
00001b89: SHL
00001b8a: AND
00001b8b: SWAP2
00001b8c: AND
00001b8d: OR
00001b8e: PUSH1 0x99
00001b90: SSTORE
00001b91: JUMP
00001b92: JUMPDEST
00001b93: PUSH1 0x40
00001b95: DUP1
00001b96: MLOAD
00001b97: CALLER
00001b98: PUSH1 0x20
00001b9a: DUP3
00001b9b: ADD
00001b9c: SWAP1
00001b9d: DUP2
00001b9e: MSTORE
00001b9f: SWAP2
00001ba0: DUP2
00001ba1: ADD
00001ba2: DUP5
00001ba3: SWAP1
00001ba4: MSTORE
00001ba5: PUSH1 0x60
00001ba7: DUP2
00001ba8: ADD
00001ba9: DUP9
00001baa: SWAP1
00001bab: MSTORE
00001bac: PUSH0
00001bad: SWAP2
00001bae: PUSH2 0x1bcf
00001bb1: SWAP2
00001bb2: PUSH2 0x1bbe
00001bb5: DUP2
00001bb6: PUSH1 0x80
00001bb8: DUP2
00001bb9: ADD
00001bba: PUSH2 0x1156
00001bbd: JUMP
00001bbe: JUMPDEST
00001bbf: MLOAD
00001bc0: SWAP1
00001bc1: KECCAK256
00001bc2: PUSH0
00001bc3: MSTORE
00001bc4: PUSH1 0x9b
00001bc6: PUSH1 0x20
00001bc8: MSTORE
00001bc9: PUSH1 0x40
00001bcb: PUSH0
00001bcc: KECCAK256
00001bcd: SWAP1
00001bce: JUMP
00001bcf: JUMPDEST
00001bd0: SSTORE
00001bd1: PUSH0
00001bd2: SWAP3
00001bd3: PUSH1 0x01
00001bd5: DUP3
00001bd6: GT
00001bd7: PUSH2 0x1c06
00001bda: JUMPI
00001bdb: JUMPDEST
00001bdc: POP
00001bdd: POP
00001bde: POP
00001bdf: PUSH2 0x1be8
00001be2: DUP3
00001be3: CALLER
00001be4: PUSH2 0x412d
00001be7: JUMP
00001be8: JUMPDEST
00001be9: PUSH1 0x40
00001beb: DUP1
00001bec: MLOAD
00001bed: SWAP5
00001bee: DUP6
00001bef: MSTORE
00001bf0: PUSH1 0x20
00001bf2: DUP6
00001bf3: ADD
00001bf4: SWAP2
00001bf5: SWAP1
00001bf6: SWAP2
00001bf7: MSTORE
00001bf8: DUP4
00001bf9: ADD
00001bfa: MSTORE
00001bfb: CALLER
00001bfc: SWAP2
00001bfd: DUP1
00001bfe: PUSH1 0x60
00001c00: DUP2
00001c01: ADD
00001c02: PUSH2 0x0517
00001c05: JUMP
00001c06: JUMPDEST
00001c07: PUSH2 0x1c40
00001c0a: SWAP2
00001c0b: SWAP3
00001c0c: SWAP4
00001c0d: POP
00001c0e: PUSH2 0x1c17
00001c11: SWAP1
00001c12: DUP8
00001c13: PUSH2 0x25db
00001c16: JUMP
00001c17: JUMPDEST
00001c18: PUSH1 0x40
00001c1a: DUP1
00001c1b: MLOAD
00001c1c: CALLER
00001c1d: PUSH1 0x20
00001c1f: DUP3
00001c20: ADD
00001c21: SWAP1
00001c22: DUP2
00001c23: MSTORE
00001c24: SWAP2
00001c25: DUP2
00001c26: ADD
00001c27: SWAP6
00001c28: SWAP1
00001c29: SWAP6
00001c2a: MSTORE
00001c2b: PUSH1 0x60
00001c2d: DUP6
00001c2e: ADD
00001c2f: DUP3
00001c30: SWAP1
00001c31: MSTORE
00001c32: SWAP1
00001c33: SWAP4
00001c34: PUSH2 0x1bbe
00001c37: DUP2
00001c38: PUSH1 0x80
00001c3a: DUP2
00001c3b: ADD
00001c3c: PUSH2 0x1156
00001c3f: JUMP
00001c40: JUMPDEST
00001c41: SSTORE
00001c42: PUSH0
00001c43: DUP1
00001c44: DUP1
00001c45: PUSH2 0x1bdb
00001c48: JUMP
00001c49: JUMPDEST
00001c4a: PUSH4 0x0e3d8e8d
00001c4f: PUSH1 0xe1
00001c51: SHL
00001c52: PUSH0
00001c53: MSTORE
00001c54: PUSH1 0x04
00001c56: PUSH0
00001c57: REVERT
00001c58: JUMPDEST
00001c59: POP
00001c5a: DUP3
00001c5b: ISZERO
00001c5c: PUSH2 0x1b37
00001c5f: JUMP
00001c60: JUMPDEST
00001c61: POP
00001c62: DUP2
00001c63: ISZERO
00001c64: PUSH2 0x1b30
00001c67: JUMP
00001c68: JUMPDEST
00001c69: CALLVALUE
00001c6a: PUSH2 0x0383
00001c6d: JUMPI
00001c6e: PUSH1 0x40
00001c70: CALLDATASIZE
00001c71: PUSH1 0x03
00001c73: NOT
00001c74: ADD
00001c75: SLT
00001c76: PUSH2 0x0383
00001c79: JUMPI
00001c7a: PUSH1 0x20
00001c7c: PUSH2 0x1c93
00001c7f: PUSH1 0x24
00001c81: CALLDATALOAD
00001c82: PUSH1 0x04
00001c84: CALLDATALOAD
00001c85: PUSH2 0x1c8d
00001c88: DUP3
00001c89: PUSH2 0x0372
00001c8c: JUMP
00001c8d: JUMPDEST
00001c8e: CALLER
00001c8f: PUSH2 0x4bfc
00001c92: JUMP
00001c93: JUMPDEST
00001c94: PUSH2 0x03fc
00001c97: CALLER
00001c98: PUSH2 0x4b6a
00001c9b: JUMP
00001c9c: JUMPDEST
00001c9d: CALLVALUE
00001c9e: PUSH2 0x0383
00001ca1: JUMPI
00001ca2: PUSH1 0x20
00001ca4: CALLDATASIZE
00001ca5: PUSH1 0x03
00001ca7: NOT
00001ca8: ADD
00001ca9: SLT
00001caa: PUSH2 0x0383
00001cad: JUMPI
00001cae: PUSH1 0x04
00001cb0: CALLDATALOAD
00001cb1: PUSH2 0x1cb8
00001cb4: PUSH2 0x41a2
00001cb7: JUMP
00001cb8: JUMPDEST
00001cb9: CALLER
00001cba: PUSH0
00001cbb: SWAP1
00001cbc: DUP2
00001cbd: MSTORE
00001cbe: PUSH2 0x0137
00001cc1: PUSH1 0x20
00001cc3: MSTORE
00001cc4: PUSH1 0x40
00001cc6: SWAP1
00001cc7: KECCAK256
00001cc8: PUSH2 0x1cd0
00001ccb: SWAP1
00001ccc: PUSH2 0x250c
00001ccf: JUMP
00001cd0: JUMPDEST
00001cd1: PUSH1 0x01
00001cd3: PUSH1 0x01
00001cd5: PUSH1 0x80
00001cd7: SHL
00001cd8: SUB
00001cd9: PUSH2 0x1ce9
00001cdc: DUP3
00001cdd: MLOAD
00001cde: PUSH1 0x01
00001ce0: PUSH1 0x01
00001ce2: PUSH1 0x80
00001ce4: SHL
00001ce5: SUB
00001ce6: AND
00001ce7: SWAP1
00001ce8: JUMP
00001ce9: JUMPDEST
00001cea: AND
00001ceb: ISZERO
00001cec: PUSH2 0x06af
00001cef: JUMPI
00001cf0: PUSH2 0x1cf8
00001cf3: DUP2
00001cf4: PUSH2 0x2e7c
00001cf7: JUMP
00001cf8: JUMPDEST
00001cf9: DUP2
00001cfa: PUSH1 0x01
00001cfc: PUSH1 0x01
00001cfe: PUSH1 0x80
00001d00: SHL
00001d01: SUB
00001d02: PUSH2 0x1d12
00001d05: DUP4
00001d06: MLOAD
00001d07: PUSH1 0x01
00001d09: PUSH1 0x01
00001d0b: PUSH1 0x80
00001d0d: SHL
00001d0e: SUB
00001d0f: AND
00001d10: SWAP1
00001d11: JUMP
00001d12: JUMPDEST
00001d13: AND
00001d14: LT
00001d15: PUSH2 0x1e93
00001d18: JUMPI
00001d19: CALLER
00001d1a: PUSH0
00001d1b: SWAP1
00001d1c: DUP2
00001d1d: MSTORE
00001d1e: PUSH1 0x9c
00001d20: PUSH1 0x20
00001d22: MSTORE
00001d23: PUSH1 0x40
00001d25: SWAP1
00001d26: KECCAK256
00001d27: SLOAD
00001d28: DUP3
00001d29: PUSH2 0x1d48
00001d2c: PUSH2 0x1d3c
00001d2f: DUP5
00001d30: MLOAD
00001d31: PUSH1 0x01
00001d33: PUSH1 0x01
00001d35: PUSH1 0x80
00001d37: SHL
00001d38: SUB
00001d39: AND
00001d3a: SWAP1
00001d3b: JUMP
00001d3c: JUMPDEST
00001d3d: PUSH1 0x01
00001d3f: PUSH1 0x01
00001d41: PUSH1 0x80
00001d43: SHL
00001d44: SUB
00001d45: AND
00001d46: SWAP1
00001d47: JUMP
00001d48: JUMPDEST
00001d49: EQ
00001d4a: PUSH2 0x1e7d
00001d4d: JUMPI
00001d4e: PUSH2 0x1d6c
00001d51: SWAP1
00001d52: DUP4
00001d53: PUSH2 0x1d66
00001d56: PUSH2 0x1d3c
00001d59: DUP6
00001d5a: MLOAD
00001d5b: PUSH1 0x01
00001d5d: PUSH1 0x01
00001d5f: PUSH1 0x80
00001d61: SHL
00001d62: SUB
00001d63: AND
00001d64: SWAP1
00001d65: JUMP
00001d66: JUMPDEST
00001d67: SWAP2
00001d68: PUSH2 0x3039
00001d6b: JUMP
00001d6c: JUMPDEST
00001d6d: SWAP2
00001d6e: PUSH2 0x1da1
00001d71: PUSH2 0x1d94
00001d74: PUSH2 0x1d7c
00001d77: DUP4
00001d78: PUSH2 0x4305
00001d7b: JUMP
00001d7c: JUMPDEST
00001d7d: DUP5
00001d7e: MLOAD
00001d7f: PUSH1 0x01
00001d81: PUSH1 0x01
00001d83: PUSH1 0x80
00001d85: SHL
00001d86: SUB
00001d87: AND
00001d88: SUB
00001d89: PUSH1 0x01
00001d8b: PUSH1 0x01
00001d8d: PUSH1 0x80
00001d8f: SHL
00001d90: SUB
00001d91: AND
00001d92: SWAP1
00001d93: JUMP
00001d94: JUMPDEST
00001d95: PUSH1 0x01
00001d97: PUSH1 0x01
00001d99: PUSH1 0x80
00001d9b: SHL
00001d9c: SUB
00001d9d: AND
00001d9e: DUP4
00001d9f: MSTORE
00001da0: JUMP
00001da1: JUMPDEST
00001da2: CALLER
00001da3: PUSH0
00001da4: SWAP1
00001da5: DUP2
00001da6: MSTORE
00001da7: PUSH2 0x0137
00001daa: PUSH1 0x20
00001dac: MSTORE
00001dad: PUSH1 0x40
00001daf: SWAP1
00001db0: KECCAK256
00001db1: PUSH2 0x1dbb
00001db4: SWAP1
00001db5: DUP4
00001db6: SWAP1
00001db7: PUSH2 0x2565
00001dba: JUMP
00001dbb: JUMPDEST
00001dbc: PUSH2 0x1e03
00001dbf: PUSH1 0x20
00001dc1: PUSH2 0x1df4
00001dc4: PUSH1 0x01
00001dc6: DUP1
00001dc7: PUSH1 0xa0
00001dc9: SHL
00001dca: SUB
00001dcb: PUSH32 0x00000000000000000000000009e84205df7c68907e619d07afd90143c5763605
00001dec: AND
00001ded: DUP1
00001dee: SWAP7
00001def: CALLER
00001df0: PUSH2 0x4bfc
00001df3: JUMP
00001df4: JUMPDEST
00001df5: SWAP4
00001df6: ADD
00001df7: MLOAD
00001df8: PUSH1 0x01
00001dfa: PUSH1 0x01
00001dfc: PUSH1 0x80
00001dfe: SHL
00001dff: SUB
00001e00: AND
00001e01: SWAP1
00001e02: JUMP
00001e03: JUMPDEST
00001e04: DUP4
00001e05: EXTCODESIZE
00001e06: ISZERO
00001e07: PUSH2 0x0383
00001e0a: JUMPI
00001e0b: PUSH1 0x40
00001e0d: MLOAD
00001e0e: PUSH4 0x074ee969
00001e13: PUSH1 0xe3
00001e15: SHL
00001e16: DUP2
00001e17: MSTORE
00001e18: CALLER
00001e19: PUSH1 0x04
00001e1b: DUP3
00001e1c: ADD
00001e1d: MSTORE
00001e1e: PUSH1 0x24
00001e20: DUP2
00001e21: ADD
00001e22: DUP5
00001e23: SWAP1
00001e24: MSTORE
00001e25: PUSH1 0x44
00001e27: DUP2
00001e28: ADD
00001e29: SWAP3
00001e2a: SWAP1
00001e2b: SWAP3
00001e2c: MSTORE
00001e2d: PUSH1 0x01
00001e2f: PUSH1 0x01
00001e31: PUSH1 0x80
00001e33: SHL
00001e34: SUB
00001e35: AND
00001e36: PUSH1 0x64
00001e38: DUP3
00001e39: ADD
00001e3a: MSTORE
00001e3b: SWAP2
00001e3c: PUSH0
00001e3d: SWAP1
00001e3e: DUP4
00001e3f: SWAP1
00001e40: PUSH1 0x84
00001e42: SWAP1
00001e43: DUP3
00001e44: SWAP1
00001e45: DUP5
00001e46: SWAP1
00001e47: GAS
00001e48: CALL
00001e49: SWAP2
00001e4a: DUP3
00001e4b: ISZERO
00001e4c: PUSH2 0x06ed
00001e4f: JUMPI
00001e50: PUSH2 0x06ab
00001e53: SWAP3
00001e54: PUSH2 0x1e69
00001e57: JUMPI
00001e58: JUMPDEST
00001e59: POP
00001e5a: PUSH1 0x40
00001e5c: MLOAD
00001e5d: SWAP1
00001e5e: DUP2
00001e5f: MSTORE
00001e60: SWAP1
00001e61: DUP2
00001e62: SWAP1
00001e63: PUSH1 0x20
00001e65: DUP3
00001e66: ADD
00001e67: SWAP1
00001e68: JUMP
00001e69: JUMPDEST
00001e6a: DUP1
00001e6b: PUSH2 0x0c42
00001e6e: PUSH0
00001e6f: PUSH2 0x1e77
00001e72: SWAP4
00001e73: PUSH2 0x104a
00001e76: JUMP
00001e77: JUMPDEST
00001e78: PUSH0
00001e79: PUSH2 0x1e58
00001e7c: JUMP
00001e7d: JUMPDEST
00001e7e: CALLER
00001e7f: PUSH0
00001e80: SWAP1
00001e81: DUP2
00001e82: MSTORE
00001e83: PUSH2 0x0137
00001e86: PUSH1 0x20
00001e88: MSTORE
00001e89: PUSH1 0x40
00001e8b: DUP2
00001e8c: KECCAK256
00001e8d: SSTORE
00001e8e: SWAP2
00001e8f: PUSH2 0x1dbb
00001e92: JUMP
00001e93: JUMPDEST
00001e94: PUSH4 0x6edcc523
00001e99: PUSH1 0xe0
00001e9b: SHL
00001e9c: PUSH0
00001e9d: MSTORE
00001e9e: PUSH1 0x04
00001ea0: PUSH0
00001ea1: REVERT
00001ea2: JUMPDEST
00001ea3: PUSH1 0x40
00001ea5: PUSH1 0x03
00001ea7: NOT
00001ea8: DUP3
00001ea9: ADD
00001eaa: SLT
00001eab: PUSH2 0x0383
00001eae: JUMPI
00001eaf: PUSH1 0x04
00001eb1: CALLDATALOAD
00001eb2: PUSH1 0x01
00001eb4: PUSH1 0x01
00001eb6: PUSH1 0x40
00001eb8: SHL
00001eb9: SUB
00001eba: DUP2
00001ebb: GT
00001ebc: PUSH2 0x0383
00001ebf: JUMPI
00001ec0: DUP2
00001ec1: PUSH2 0x1ecc
00001ec4: SWAP2
00001ec5: PUSH1 0x04
00001ec7: ADD
00001ec8: PUSH2 0x0d6d
00001ecb: JUMP
00001ecc: JUMPDEST
00001ecd: SWAP3
00001ece: SWAP1
00001ecf: SWAP3
00001ed0: SWAP2
00001ed1: PUSH1 0x24
00001ed3: CALLDATALOAD
00001ed4: SWAP1
00001ed5: PUSH1 0x01
00001ed7: PUSH1 0x01
00001ed9: PUSH1 0x40
00001edb: SHL
00001edc: SUB
00001edd: DUP3
00001ede: GT
00001edf: PUSH2 0x0383
00001ee2: JUMPI
00001ee3: PUSH2 0x0dc4
00001ee6: SWAP2
00001ee7: PUSH1 0x04
00001ee9: ADD
00001eea: PUSH2 0x0d6d
00001eed: JUMP
00001eee: JUMPDEST
00001eef: CALLVALUE
00001ef0: PUSH2 0x0383
00001ef3: JUMPI
00001ef4: PUSH2 0x1f15
00001ef7: PUSH2 0x1eff
00001efa: CALLDATASIZE
00001efb: PUSH2 0x1ea2
00001efe: JUMP
00001eff: JUMPDEST
00001f00: SWAP1
00001f01: PUSH2 0x1f0b
00001f04: SWAP5
00001f05: SWAP3
00001f06: SWAP5
00001f07: PUSH2 0x41a2
00001f0a: JUMP
00001f0b: JUMPDEST
00001f0c: PUSH1 0xd5
00001f0e: SLOAD
00001f0f: DUP6
00001f10: DUP6
00001f11: PUSH2 0x3fbd
00001f14: JUMP
00001f15: JUMPDEST
00001f16: ISZERO
00001f17: PUSH2 0x0f78
00001f1a: JUMPI
00001f1b: PUSH2 0x1f4f
00001f1e: PUSH0
00001f1f: SWAP2
00001f20: PUSH1 0x40
00001f22: SWAP4
00001f23: PUSH1 0x01
00001f25: DUP6
00001f26: MLOAD
00001f27: SWAP6
00001f28: DUP7
00001f29: SWAP5
00001f2a: DUP6
00001f2b: SWAP5
00001f2c: PUSH4 0x0ee0f427
00001f31: PUSH1 0xe2
00001f33: SHL
00001f34: DUP7
00001f35: MSTORE
00001f36: PUSH1 0x04
00001f38: DUP7
00001f39: ADD
00001f3a: SWAP5
00001f3b: PUSH1 0xd4
00001f3d: DUP7
00001f3e: MSTORE
00001f3f: PUSH1 0x60
00001f41: PUSH1 0x20
00001f43: DUP8
00001f44: ADD
00001f45: MSTORE
00001f46: PUSH1 0x60
00001f48: DUP7
00001f49: ADD
00001f4a: SWAP2
00001f4b: PUSH2 0x2895
00001f4e: JUMP
00001f4f: JUMPDEST
00001f50: SWAP3
00001f51: ADD
00001f52: MSTORE
00001f53: SUB
00001f54: DUP2
00001f55: PUSH20 0x2319ace2793561520fb600da1c4b09a660a4adb5
00001f6a: GAS
00001f6b: DELEGATECALL
00001f6c: DUP1
00001f6d: ISZERO
00001f6e: PUSH2 0x06ed
00001f71: JUMPI
00001f72: PUSH2 0x0020
00001f75: SWAP2
00001f76: PUSH0
00001f77: SWAP2
00001f78: PUSH2 0x1aa0
00001f7b: JUMPI
00001f7c: POP
00001f7d: PUSH2 0x422a
00001f80: JUMP
00001f81: JUMPDEST
00001f82: CALLVALUE
00001f83: PUSH2 0x0383
00001f86: JUMPI
00001f87: PUSH2 0x0517
00001f8a: PUSH32 0x2013570c343af8ab14a9778150e381a0fda34ed6368127a95fd5e7210cbec5bf
00001fab: PUSH2 0x1fb3
00001fae: CALLDATASIZE
00001faf: PUSH2 0x0d9a
00001fb2: JUMP
00001fb3: JUMPDEST
00001fb4: SWAP3
00001fb5: SWAP1
00001fb6: PUSH2 0x1fbd
00001fb9: PUSH2 0x2e30
00001fbc: JUMP
00001fbd: JUMPDEST
00001fbe: PUSH1 0x40
00001fc0: MLOAD
00001fc1: SWAP2
00001fc2: DUP3
00001fc3: SWAP2
00001fc4: PUSH1 0x20
00001fc6: DUP4
00001fc7: MSTORE
00001fc8: CALLER
00001fc9: SWAP6
00001fca: PUSH1 0x20
00001fcc: DUP5
00001fcd: ADD
00001fce: SWAP2
00001fcf: PUSH2 0x2895
00001fd2: JUMP
00001fd3: JUMPDEST
00001fd4: DUP1
00001fd5: MLOAD
00001fd6: DUP1
00001fd7: DUP4
00001fd8: MSTORE
00001fd9: PUSH1 0x20
00001fdb: SWAP3
00001fdc: SWAP2
00001fdd: DUP2
00001fde: SWAP1
00001fdf: DUP5
00001fe0: ADD
00001fe1: DUP5
00001fe2: DUP5
00001fe3: ADD
00001fe4: MCOPY
00001fe5: PUSH0
00001fe6: DUP3
00001fe7: DUP3
00001fe8: ADD
00001fe9: DUP5
00001fea: ADD
00001feb: MSTORE
00001fec: PUSH1 0x1f
00001fee: ADD
00001fef: PUSH1 0x1f
00001ff1: NOT
00001ff2: AND
00001ff3: ADD
00001ff4: ADD
00001ff5: SWAP1
00001ff6: JUMP
00001ff7: JUMPDEST
00001ff8: PUSH1 0x20
00001ffa: DUP2
00001ffb: ADD
00001ffc: PUSH1 0x20
00001ffe: DUP3
00001fff: MSTORE
00002000: DUP3
00002001: MLOAD
00002002: DUP1
00002003: SWAP2
00002004: MSTORE
00002005: PUSH1 0x40
00002007: DUP3
00002008: ADD
00002009: SWAP2
0000200a: PUSH1 0x20
0000200c: PUSH1 0x40
0000200e: DUP4
0000200f: PUSH1 0x05
00002011: SHL
00002012: DUP4
00002013: ADD
00002014: ADD
00002015: SWAP5
00002016: ADD
00002017: SWAP3
00002018: PUSH0
00002019: SWAP2
0000201a: JUMPDEST
0000201b: DUP4
0000201c: DUP4
0000201d: LT
0000201e: PUSH2 0x2029
00002021: JUMPI
00002022: POP
00002023: POP
00002024: POP
00002025: POP
00002026: POP
00002027: SWAP1
00002028: JUMP
00002029: JUMPDEST
0000202a: SWAP1
0000202b: SWAP2
0000202c: SWAP3
0000202d: SWAP4
0000202e: SWAP5
0000202f: PUSH1 0x20
00002031: DUP1
00002032: PUSH2 0x2047
00002035: PUSH1 0x01
00002037: SWAP4
00002038: PUSH1 0x3f
0000203a: NOT
0000203b: DUP7
0000203c: DUP3
0000203d: SUB
0000203e: ADD
0000203f: DUP8
00002040: MSTORE
00002041: DUP10
00002042: MLOAD
00002043: PUSH2 0x1fd3
00002046: JUMP
00002047: JUMPDEST
00002048: SWAP8
00002049: ADD
0000204a: SWAP4
0000204b: ADD
0000204c: SWAP4
0000204d: ADD
0000204e: SWAP2
0000204f: SWAP4
00002050: SWAP3
00002051: SWAP1
00002052: PUSH2 0x201a
00002055: JUMP
00002056: JUMPDEST
00002057: CALLVALUE
00002058: PUSH2 0x0383
0000205b: JUMPI
0000205c: PUSH1 0x20
0000205e: CALLDATASIZE
0000205f: PUSH1 0x03
00002061: NOT
00002062: ADD
00002063: SLT
00002064: PUSH2 0x0383
00002067: JUMPI
00002068: PUSH1 0x04
0000206a: CALLDATALOAD
0000206b: PUSH1 0x01
0000206d: PUSH1 0x01
0000206f: PUSH1 0x40
00002071: SHL
00002072: SUB
00002073: DUP2
00002074: GT
00002075: PUSH2 0x0383
00002078: JUMPI
00002079: CALLDATASIZE
0000207a: PUSH1 0x23
0000207c: DUP3
0000207d: ADD
0000207e: SLT
0000207f: ISZERO
00002080: PUSH2 0x0383
00002083: JUMPI
00002084: DUP1
00002085: PUSH1 0x04
00002087: ADD
00002088: CALLDATALOAD
00002089: SWAP1
0000208a: PUSH1 0x01
0000208c: PUSH1 0x01
0000208e: PUSH1 0x40
00002090: SHL
00002091: SUB
00002092: DUP3
00002093: GT
00002094: PUSH2 0x0383
00002097: JUMPI
00002098: CALLDATASIZE
00002099: PUSH1 0x24
0000209b: DUP4
0000209c: PUSH1 0x05
0000209e: SHL
0000209f: DUP4
000020a0: ADD
000020a1: ADD
000020a2: GT
000020a3: PUSH2 0x0383
000020a6: JUMPI
000020a7: PUSH2 0x06ab
000020aa: SWAP2
000020ab: PUSH1 0x24
000020ad: PUSH2 0x20b6
000020b0: SWAP3
000020b1: ADD
000020b2: PUSH2 0x2d41
000020b5: JUMP
000020b6: JUMPDEST
000020b7: PUSH1 0x40
000020b9: MLOAD
000020ba: SWAP2
000020bb: DUP3
000020bc: SWAP2
000020bd: DUP3
000020be: PUSH2 0x1ff7
000020c1: JUMP
000020c2: JUMPDEST
000020c3: CALLVALUE
000020c4: PUSH2 0x0383
000020c7: JUMPI
000020c8: PUSH0
000020c9: CALLDATASIZE
000020ca: PUSH1 0x03
000020cc: NOT
000020cd: ADD
000020ce: SLT
000020cf: PUSH2 0x0383
000020d2: JUMPI
000020d3: PUSH2 0x06ab
000020d6: PUSH1 0x40
000020d8: MLOAD
000020d9: PUSH2 0x20e3
000020dc: PUSH1 0x40
000020de: DUP3
000020df: PUSH2 0x104a
000020e2: JUMP
000020e3: JUMPDEST
000020e4: PUSH1 0x05
000020e6: DUP2
000020e7: MSTORE
000020e8: PUSH5 0x0352e302e3
000020ee: PUSH1 0xdc
000020f0: SHL
000020f1: PUSH1 0x20
000020f3: DUP3
000020f4: ADD
000020f5: MSTORE
000020f6: PUSH1 0x40
000020f8: MLOAD
000020f9: SWAP2
000020fa: DUP3
000020fb: SWAP2
000020fc: PUSH1 0x20
000020fe: DUP4
000020ff: MSTORE
00002100: PUSH1 0x20
00002102: DUP4
00002103: ADD
00002104: SWAP1
00002105: PUSH2 0x1fd3
00002108: JUMP
00002109: JUMPDEST
0000210a: CALLVALUE
0000210b: PUSH2 0x0383
0000210e: JUMPI
0000210f: PUSH1 0x40
00002111: CALLDATASIZE
00002112: PUSH1 0x03
00002114: NOT
00002115: ADD
00002116: SLT
00002117: PUSH2 0x0383
0000211a: JUMPI
0000211b: PUSH1 0x04
0000211d: CALLDATALOAD
0000211e: PUSH2 0x2126
00002121: DUP2
00002122: PUSH2 0x0372
00002125: JUMP
00002126: JUMPDEST
00002127: PUSH1 0x24
00002129: CALLDATALOAD
0000212a: SWAP1
0000212b: CALLER
0000212c: PUSH32 0x00000000000000000000000020bc832ca081b91433ff6c17f85701b6e92486c5
0000214d: PUSH1 0x01
0000214f: PUSH1 0x01
00002151: PUSH1 0xa0
00002153: SHL
00002154: SUB
00002155: AND
00002156: EQ
00002157: DUP1
00002158: ISZERO
00002159: SWAP1
0000215a: PUSH2 0x2248
0000215d: JUMPI
0000215e: JUMPDEST
0000215f: PUSH2 0x0f78
00002162: JUMPI
00002163: PUSH2 0x216a
00002166: PUSH2 0x30c4
00002169: JUMP
0000216a: JUMPDEST
0000216b: PUSH2 0x2172
0000216e: PUSH2 0x41a2
00002171: JUMP
00002172: JUMPDEST
00002173: PUSH1 0x01
00002175: PUSH1 0x01
00002177: PUSH1 0xa0
00002179: SHL
0000217a: SUB
0000217b: DUP2
0000217c: AND
0000217d: ISZERO
0000217e: PUSH2 0x0c4e
00002181: JUMPI
00002182: DUP2
00002183: ISZERO
00002184: PUSH2 0x07cb
00002187: JUMPI
00002188: PUSH32 0xd083678824038160bef3975359ab29f19c3f0e9bcf9d7ead540a492d4d678b63
000021a9: DUP3
000021aa: PUSH2 0x21b5
000021ad: PUSH2 0x06ab
000021b0: SWAP5
000021b1: PUSH2 0x45b9
000021b4: JUMP
000021b5: JUMPDEST
000021b6: SWAP3
000021b7: PUSH2 0x21d0
000021ba: PUSH2 0x0b6d
000021bd: PUSH2 0x21c5
000021c0: DUP5
000021c1: PUSH2 0x4305
000021c4: JUMP
000021c5: JUMPDEST
000021c6: PUSH1 0x98
000021c8: SLOAD
000021c9: PUSH1 0x80
000021cb: SHR
000021cc: PUSH2 0x2dd4
000021cf: JUMP
000021d0: JUMPDEST
000021d1: PUSH2 0x21da
000021d4: DUP5
000021d5: DUP3
000021d6: PUSH2 0x4382
000021d9: JUMP
000021da: JUMPDEST
000021db: PUSH2 0x21fb
000021de: PUSH2 0x21e6
000021e1: DUP3
000021e2: PUSH2 0x43cd
000021e5: JUMP
000021e6: JUMPDEST
000021e7: PUSH2 0x21ef
000021ea: DUP5
000021eb: PUSH2 0x4493
000021ee: JUMP
000021ef: JUMPDEST
000021f0: SWAP1
000021f1: DUP2
000021f2: DUP1
000021f3: DUP3
000021f4: LT
000021f5: SWAP2
000021f6: XOR
000021f7: MUL
000021f8: XOR
000021f9: SWAP1
000021fa: JUMP
000021fb: JUMPDEST
000021fc: DUP1
000021fd: PUSH2 0x2236
00002200: JUMPI
00002201: JUMPDEST
00002202: POP
00002203: PUSH1 0x40
00002205: DUP1
00002206: MLOAD
00002207: PUSH1 0x01
00002209: PUSH1 0x01
0000220b: PUSH1 0xa0
0000220d: SHL
0000220e: SUB
0000220f: SWAP3
00002210: SWAP1
00002211: SWAP3
00002212: AND
00002213: DUP3
00002214: MSTORE
00002215: PUSH1 0x20
00002217: DUP3
00002218: ADD
00002219: SWAP3
0000221a: SWAP1
0000221b: SWAP3
0000221c: MSTORE
0000221d: SWAP1
0000221e: DUP2
0000221f: ADD
00002220: DUP4
00002221: SWAP1
00002222: MSTORE
00002223: PUSH1 0x60
00002225: SWAP1
00002226: LOG1
00002227: PUSH1 0x40
00002229: MLOAD
0000222a: SWAP1
0000222b: DUP2
0000222c: MSTORE
0000222d: SWAP1
0000222e: DUP2
0000222f: SWAP1
00002230: PUSH1 0x20
00002232: DUP3
00002233: ADD
00002234: SWAP1
00002235: JUMP
00002236: JUMPDEST
00002237: PUSH2 0x2241
0000223a: SWAP1
0000223b: DUP3
0000223c: DUP1
0000223d: PUSH2 0x3727
00002240: JUMP
00002241: JUMPDEST
00002242: POP
00002243: PUSH0
00002244: PUSH2 0x2201
00002247: JUMP
00002248: JUMPDEST
00002249: POP
0000224a: PUSH1 0x40
0000224c: MLOAD
0000224d: PUSH4 0x8da5cb5b
00002252: PUSH1 0xe0
00002254: SHL
00002255: DUP2
00002256: MSTORE
00002257: PUSH1 0x20
00002259: DUP2
0000225a: PUSH1 0x04
0000225c: DUP2
0000225d: PUSH32 0x0000000000000000000000002296e122c1a20fca3cac3371357bdad3be0df079
0000227e: PUSH1 0x01
00002280: PUSH1 0x01
00002282: PUSH1 0xa0
00002284: SHL
00002285: SUB
00002286: AND
00002287: GAS
00002288: STATICCALL
00002289: SWAP1
0000228a: DUP2
0000228b: ISZERO
0000228c: PUSH2 0x06ed
0000228f: JUMPI
00002290: PUSH0
00002291: SWAP2
00002292: PUSH2 0x22a8
00002295: JUMPI
00002296: JUMPDEST
00002297: POP
00002298: PUSH1 0x01
0000229a: PUSH1 0x01
0000229c: PUSH1 0xa0
0000229e: SHL
0000229f: SUB
000022a0: AND
000022a1: ADDRESS
000022a2: EQ
000022a3: ISZERO
000022a4: PUSH2 0x215e
000022a7: JUMP
000022a8: JUMPDEST
000022a9: PUSH2 0x22c1
000022ac: SWAP2
000022ad: POP
000022ae: PUSH1 0x20
000022b0: RETURNDATASIZE
000022b1: PUSH1 0x20
000022b3: GT
000022b4: PUSH2 0x0faf
000022b7: JUMPI
000022b8: PUSH2 0x0fa1
000022bb: DUP2
000022bc: DUP4
000022bd: PUSH2 0x104a
000022c0: JUMP
000022c1: JUMPDEST
000022c2: PUSH0
000022c3: PUSH2 0x2296
000022c6: JUMP
000022c7: JUMPDEST
000022c8: CALLVALUE
000022c9: PUSH2 0x0383
000022cc: JUMPI
000022cd: PUSH0
000022ce: CALLDATASIZE
000022cf: PUSH1 0x03
000022d1: NOT
000022d2: ADD
000022d3: SLT
000022d4: PUSH2 0x0383
000022d7: JUMPI
000022d8: PUSH1 0xd2
000022da: SLOAD
000022db: PUSH1 0x40
000022dd: MLOAD
000022de: PUSH1 0x01
000022e0: PUSH1 0x01
000022e2: PUSH1 0xa0
000022e4: SHL
000022e5: SUB
000022e6: SWAP1
000022e7: SWAP2
000022e8: AND
000022e9: DUP2
000022ea: MSTORE
000022eb: PUSH1 0x20
000022ed: SWAP1
000022ee: RETURN
000022ef: JUMPDEST
000022f0: CALLVALUE
000022f1: PUSH2 0x0383
000022f4: JUMPI
000022f5: PUSH1 0x20
000022f7: CALLDATASIZE
000022f8: PUSH1 0x03
000022fa: NOT
000022fb: ADD
000022fc: SLT
000022fd: PUSH2 0x0383
00002300: JUMPI
00002301: PUSH1 0x20
00002303: PUSH2 0x03fc
00002306: PUSH1 0x04
00002308: CALLDATALOAD
00002309: PUSH2 0x45b9
0000230c: JUMP
0000230d: JUMPDEST
0000230e: PUSH2 0x232d
00002311: PUSH2 0x2319
00002314: CALLDATASIZE
00002315: PUSH2 0x1ea2
00002318: JUMP
00002319: JUMPDEST
0000231a: SWAP1
0000231b: PUSH2 0x2325
0000231e: SWAP5
0000231f: SWAP3
00002320: SWAP5
00002321: PUSH2 0x3f44
00002324: JUMP
00002325: JUMPDEST
00002326: PUSH2 0x1f0b
00002329: PUSH2 0x30c4
0000232c: JUMP
0000232d: JUMPDEST
0000232e: ISZERO
0000232f: PUSH2 0x0f78
00002332: JUMPI
00002333: PUSH20 0x2319ace2793561520fb600da1c4b09a660a4adb5
00002348: SWAP1
00002349: DUP2
0000234a: EXTCODESIZE
0000234b: ISZERO
0000234c: PUSH2 0x0383
0000234f: JUMPI
00002350: PUSH0
00002351: SWAP2
00002352: PUSH2 0x237b
00002355: SWAP2
00002356: PUSH1 0x40
00002358: MLOAD
00002359: DUP1
0000235a: SWAP6
0000235b: DUP2
0000235c: SWAP5
0000235d: DUP3
0000235e: SWAP4
0000235f: PUSH4 0x2dc6eba3
00002364: PUSH1 0xe1
00002366: SHL
00002367: DUP5
00002368: MSTORE
00002369: PUSH1 0x04
0000236b: DUP5
0000236c: ADD
0000236d: SWAP3
0000236e: PUSH1 0x40
00002370: DUP5
00002371: MSTORE
00002372: PUSH1 0x40
00002374: DUP5
00002375: ADD
00002376: SWAP2
00002377: PUSH2 0x2895
0000237a: JUMP
0000237b: JUMPDEST
0000237c: PUSH32 0x00000000000000000000000000000961ef480eb55e80d19ad83579a64c007002
0000239d: PUSH1 0x01
0000239f: PUSH1 0x01
000023a1: PUSH1 0xa0
000023a3: SHL
000023a4: SUB
000023a5: AND
000023a6: PUSH1 0x20
000023a8: SWAP1
000023a9: SWAP3
000023aa: ADD
000023ab: SWAP2
000023ac: SWAP1
000023ad: SWAP2
000023ae: MSTORE
000023af: SUB
000023b0: SWAP2
000023b1: GAS
000023b2: DELEGATECALL
000023b3: DUP1
000023b4: ISZERO
000023b5: PUSH2 0x06ed
000023b8: JUMPI
000023b9: PUSH2 0x1520
000023bc: JUMPI
000023bd: PUSH2 0x0020
000023c0: PUSH1 0x01
000023c2: PUSH0
000023c3: DUP1
000023c4: MLOAD
000023c5: PUSH1 0x20
000023c7: PUSH2 0x4e73
000023ca: DUP4
000023cb: CODECOPY
000023cc: DUP2
000023cd: MLOAD
000023ce: SWAP2
000023cf: MSTORE
000023d0: SSTORE
000023d1: JUMP
000023d2: JUMPDEST
000023d3: CALLVALUE
000023d4: PUSH2 0x0383
000023d7: JUMPI
000023d8: PUSH1 0x20
000023da: CALLDATASIZE
000023db: PUSH1 0x03
000023dd: NOT
000023de: ADD
000023df: SLT
000023e0: PUSH2 0x0383
000023e3: JUMPI
000023e4: PUSH1 0x04
000023e6: CALLDATALOAD
000023e7: PUSH2 0x23ef
000023ea: DUP2
000023eb: PUSH2 0x0372
000023ee: JUMP
000023ef: JUMPDEST
000023f0: PUSH2 0x23f7
000023f3: PUSH2 0x2e30
000023f6: JUMP
000023f7: JUMPDEST
000023f8: PUSH2 0x23ff
000023fb: PUSH2 0x41a2
000023fe: JUMP
000023ff: JUMPDEST
00002400: PUSH1 0x01
00002402: PUSH1 0x01
00002404: PUSH1 0xa0
00002406: SHL
00002407: SUB
00002408: AND
00002409: DUP1
0000240a: ISZERO
0000240b: PUSH2 0x2457
0000240e: JUMPI
0000240f: PUSH1 0x65
00002411: SLOAD
00002412: PUSH1 0x01
00002414: PUSH1 0x01
00002416: PUSH1 0xa0
00002418: SHL
00002419: SUB
0000241a: DUP2
0000241b: AND
0000241c: DUP3
0000241d: EQ
0000241e: PUSH2 0x172d
00002421: JUMPI
00002422: PUSH1 0x01
00002424: PUSH1 0x01
00002426: PUSH1 0xa0
00002428: SHL
00002429: SUB
0000242a: NOT
0000242b: AND
0000242c: DUP2
0000242d: OR
0000242e: PUSH1 0x65
00002430: SSTORE
00002431: CALLER
00002432: PUSH32 0xaaebcf1bfa00580e41d966056b48521fa9f202645c86d4ddf28113e617c1b1d3
00002453: PUSH0
00002454: DUP1
00002455: LOG3
00002456: STOP
00002457: JUMPDEST
00002458: PUSH4 0x0ed1b8b3
0000245d: PUSH1 0xe3
0000245f: SHL
00002460: PUSH0
00002461: MSTORE
00002462: PUSH1 0x04
00002464: PUSH0
00002465: REVERT
00002466: JUMPDEST
00002467: CALLVALUE
00002468: PUSH2 0x0383
0000246b: JUMPI
0000246c: PUSH1 0x20
0000246e: CALLDATASIZE
0000246f: PUSH1 0x03
00002471: NOT
00002472: ADD
00002473: SLT
00002474: PUSH2 0x0383
00002477: JUMPI
00002478: PUSH1 0x04
0000247a: CALLDATALOAD
0000247b: PUSH2 0x2483
0000247e: DUP2
0000247f: PUSH2 0x0372
00002482: JUMP
00002483: JUMPDEST
00002484: PUSH1 0x01
00002486: DUP1
00002487: PUSH1 0xa0
00002489: SHL
0000248a: SUB
0000248b: AND
0000248c: PUSH0
0000248d: MSTORE
0000248e: PUSH1 0x9c
00002490: PUSH1 0x20
00002492: MSTORE
00002493: PUSH1 0x20
00002495: PUSH1 0x40
00002497: PUSH0
00002498: KECCAK256
00002499: SLOAD
0000249a: PUSH1 0x40
0000249c: MLOAD
0000249d: SWAP1
0000249e: DUP2
0000249f: MSTORE
000024a0: RETURN
000024a1: JUMPDEST
000024a2: CALLVALUE
000024a3: PUSH2 0x0383
000024a6: JUMPI
000024a7: PUSH0
000024a8: CALLDATASIZE
000024a9: PUSH1 0x03
000024ab: NOT
000024ac: ADD
000024ad: SLT
000024ae: PUSH2 0x0383
000024b1: JUMPI
000024b2: PUSH0
000024b3: SLOAD
000024b4: PUSH1 0x40
000024b6: MLOAD
000024b7: PUSH1 0x01
000024b9: PUSH1 0x01
000024bb: PUSH1 0xa0
000024bd: SHL
000024be: SUB
000024bf: SWAP1
000024c0: SWAP2
000024c1: AND
000024c2: DUP2
000024c3: MSTORE
000024c4: PUSH1 0x20
000024c6: SWAP1
000024c7: RETURN
000024c8: JUMPDEST
000024c9: PUSH1 0x40
000024cb: CALLDATASIZE
000024cc: PUSH1 0x03
000024ce: NOT
000024cf: ADD
000024d0: SLT
000024d1: PUSH2 0x0383
000024d4: JUMPI
000024d5: PUSH1 0x20
000024d7: PUSH2 0x03fc
000024da: PUSH1 0x04
000024dc: CALLDATALOAD
000024dd: PUSH2 0x24e5
000024e0: DUP2
000024e1: PUSH2 0x0372
000024e4: JUMP
000024e5: JUMPDEST
000024e6: PUSH1 0x24
000024e8: CALLDATALOAD
000024e9: SWAP1
000024ea: PUSH2 0x075d
000024ed: DUP3
000024ee: PUSH2 0x0372
000024f1: JUMP
000024f2: JUMPDEST
000024f3: SWAP1
000024f4: DUP2
000024f5: PUSH1 0x20
000024f7: SWAP2
000024f8: SUB
000024f9: SLT
000024fa: PUSH2 0x0383
000024fd: JUMPI
000024fe: MLOAD
000024ff: SWAP1
00002500: JUMP
00002501: JUMPDEST
00002502: PUSH1 0x40
00002504: MLOAD
00002505: RETURNDATASIZE
00002506: PUSH0
00002507: DUP3
00002508: RETURNDATACOPY
00002509: RETURNDATASIZE
0000250a: SWAP1
0000250b: REVERT
0000250c: JUMPDEST
0000250d: SWAP1
0000250e: PUSH1 0x40
00002510: MLOAD
00002511: PUSH2 0x2519
00002514: DUP2
00002515: PUSH2 0x102a
00002518: JUMP
00002519: JUMPDEST
0000251a: SWAP2
0000251b: SLOAD
0000251c: PUSH1 0x01
0000251e: PUSH1 0x01
00002520: PUSH1 0x80
00002522: SHL
00002523: SUB
00002524: DUP2
00002525: AND
00002526: DUP4
00002527: MSTORE
00002528: PUSH1 0x80
0000252a: SHR
0000252b: PUSH1 0x20
0000252d: DUP4
0000252e: ADD
0000252f: MSTORE
00002530: JUMP
00002531: JUMPDEST
00002532: PUSH4 0x4e487b71
00002537: PUSH1 0xe0
00002539: SHL
0000253a: PUSH0
0000253b: MSTORE
0000253c: PUSH1 0x11
0000253e: PUSH1 0x04
00002540: MSTORE
00002541: PUSH1 0x24
00002543: PUSH0
00002544: REVERT
00002545: JUMPDEST
00002546: SWAP1
00002547: PUSH1 0x01
00002549: PUSH1 0x01
0000254b: PUSH1 0x80
0000254d: SHL
0000254e: SUB
0000254f: DUP1
00002550: SWAP2
00002551: AND
00002552: SWAP2
00002553: AND
00002554: SUB
00002555: SWAP1
00002556: PUSH1 0x01
00002558: PUSH1 0x01
0000255a: PUSH1 0x80
0000255c: SHL
0000255d: SUB
0000255e: DUP3
0000255f: GT
00002560: PUSH2 0x07c6
00002563: JUMPI
00002564: JUMP
00002565: JUMPDEST
00002566: DUP2
00002567: MLOAD
00002568: PUSH1 0x20
0000256a: SWAP1
0000256b: SWAP3
0000256c: ADD
0000256d: MLOAD
0000256e: PUSH1 0x80
00002570: SHL
00002571: PUSH16 0xffffffffffffffffffffffffffffffff
00002582: NOT
00002583: AND
00002584: PUSH1 0x01
00002586: PUSH1 0x01
00002588: PUSH1 0x80
0000258a: SHL
0000258b: SUB
0000258c: SWAP3
0000258d: SWAP1
0000258e: SWAP3
0000258f: AND
00002590: SWAP2
00002591: SWAP1
00002592: SWAP2
00002593: OR
00002594: SWAP1
00002595: SSTORE
00002596: JUMP
00002597: JUMPDEST
00002598: PUSH1 0x98
0000259a: SLOAD
0000259b: PUSH1 0x01
0000259d: PUSH1 0x01
0000259f: PUSH1 0x80
000025a1: SHL
000025a2: SUB
000025a3: DUP2
000025a4: AND
000025a5: SWAP1
000025a6: DUP2
000025a7: PUSH2 0x25af
000025aa: JUMPI
000025ab: POP
000025ac: POP
000025ad: SWAP1
000025ae: JUMP
000025af: JUMPDEST
000025b0: SWAP2
000025b1: PUSH2 0x0836
000025b4: SWAP3
000025b5: PUSH1 0x80
000025b7: SHR
000025b8: SWAP1
000025b9: PUSH2 0x3039
000025bc: JUMP
000025bd: JUMPDEST
000025be: SWAP1
000025bf: PUSH3 0x03f480
000025c3: DUP3
000025c4: ADD
000025c5: DUP1
000025c6: SWAP3
000025c7: GT
000025c8: PUSH2 0x07c6
000025cb: JUMPI
000025cc: JUMP
000025cd: JUMPDEST
000025ce: SWAP1
000025cf: PUSH1 0x01
000025d1: DUP3
000025d2: ADD
000025d3: DUP1
000025d4: SWAP3
000025d5: GT
000025d6: PUSH2 0x07c6
000025d9: JUMPI
000025da: JUMP
000025db: JUMPDEST
000025dc: SWAP2
000025dd: SWAP1
000025de: DUP3
000025df: ADD
000025e0: DUP1
000025e1: SWAP3
000025e2: GT
000025e3: PUSH2 0x07c6
000025e6: JUMPI
000025e7: JUMP
000025e8: JUMPDEST
000025e9: SWAP2
000025ea: SWAP1
000025eb: SWAP2
000025ec: PUSH0
000025ed: DUP4
000025ee: DUP3
000025ef: ADD
000025f0: SWAP4
000025f1: DUP5
000025f2: SLT
000025f3: SWAP2
000025f4: SLT
000025f5: SWAP1
000025f6: DUP1
000025f7: ISZERO
000025f8: DUP3
000025f9: AND
000025fa: SWAP2
000025fb: ISZERO
000025fc: AND
000025fd: OR
000025fe: PUSH2 0x07c6
00002601: JUMPI
00002602: JUMP
00002603: JUMPDEST
00002604: PUSH2 0x260f
00002607: PUSH2 0x261e
0000260a: SWAP2
0000260b: PUSH2 0x31ad
0000260e: JUMP
0000260f: JUMPDEST
00002610: SWAP2
00002611: SWAP1
00002612: DUP1
00002613: DUP4
00002614: PUSH2 0x262f
00002617: JUMPI
00002618: JUMPDEST
00002619: POP
0000261a: PUSH2 0x334d
0000261d: JUMP
0000261e: JUMPDEST
0000261f: PUSH2 0x2624
00002622: JUMPI
00002623: JUMP
00002624: JUMPDEST
00002625: PUSH2 0x262c
00002628: PUSH2 0x3501
0000262b: JUMP
0000262c: JUMPDEST
0000262d: POP
0000262e: JUMP
0000262f: JUMPDEST
00002630: PUSH1 0xa0
00002632: SLOAD
00002633: SWAP1
00002634: DUP2
00002635: PUSH2 0x263f
00002638: JUMPI
00002639: JUMPDEST
0000263a: POP
0000263b: PUSH2 0x2618
0000263e: JUMP
0000263f: JUMPDEST
00002640: PUSH2 0x264d
00002643: SWAP3
00002644: POP
00002645: PUSH0
00002646: PUSH1 0xa0
00002648: SSTORE
00002649: PUSH2 0x25e8
0000264c: JUMP
0000264d: JUMPDEST
0000264e: PUSH0
0000264f: DUP1
00002650: PUSH2 0x2639
00002653: JUMP
00002654: JUMPDEST
00002655: PUSH32 0x0000000000000000000000002296e122c1a20fca3cac3371357bdad3be0df079
00002676: PUSH1 0x01
00002678: PUSH1 0x01
0000267a: PUSH1 0xa0
0000267c: SHL
0000267d: SUB
0000267e: AND
0000267f: BALANCE
00002680: SELFBALANCE
00002681: ADD
00002682: PUSH1 0x99
00002684: SLOAD
00002685: PUSH2 0x2696
00002688: PUSH1 0x01
0000268a: PUSH1 0x01
0000268c: PUSH1 0x80
0000268e: SHL
0000268f: SUB
00002690: DUP3
00002691: AND
00002692: PUSH2 0x2597
00002695: JUMP
00002696: JUMPDEST
00002697: PUSH1 0x01
00002699: PUSH1 0x01
0000269b: PUSH1 0x80
0000269d: SHL
0000269e: SUB
0000269f: PUSH1 0x9e
000026a1: SLOAD
000026a2: AND
000026a3: ADD
000026a4: SWAP1
000026a5: PUSH1 0x80
000026a7: SHR
000026a8: ADD
000026a9: SWAP1
000026aa: DUP2
000026ab: DUP2
000026ac: GT
000026ad: PUSH0
000026ae: EQ
000026af: PUSH2 0x26b6
000026b2: JUMPI
000026b3: SUB
000026b4: SWAP1
000026b5: JUMP
000026b6: JUMPDEST
000026b7: POP
000026b8: POP
000026b9: PUSH0
000026ba: SWAP1
000026bb: JUMP
000026bc: JUMPDEST
000026bd: PUSH2 0x016a
000026c0: SLOAD
000026c1: PUSH1 0x01
000026c3: PUSH1 0x01
000026c5: PUSH1 0xa0
000026c7: SHL
000026c8: SUB
000026c9: AND
000026ca: DUP1
000026cb: ISZERO
000026cc: PUSH2 0x26d2
000026cf: JUMPI
000026d0: SWAP1
000026d1: JUMP
000026d2: JUMPDEST
000026d3: POP
000026d4: PUSH32 0x00000000000000000000000048319f97e5da1233c21c48b80097c0fb7a20ff86
000026f5: SWAP1
000026f6: JUMP
000026f7: JUMPDEST
000026f8: PUSH0
000026f9: SLOAD
000026fa: PUSH1 0x01
000026fc: PUSH1 0x01
000026fe: PUSH1 0xa0
00002700: SHL
00002701: SUB
00002702: AND
00002703: ISZERO
00002704: PUSH2 0x11ab
00002707: JUMPI
00002708: PUSH2 0x270f
0000270b: PUSH2 0x4dcf
0000270e: JUMP
0000270f: JUMPDEST
00002710: PUSH2 0x2717
00002713: PUSH2 0x4dfa
00002716: JUMP
00002717: JUMPDEST
00002718: PUSH1 0xd0
0000271a: SLOAD
0000271b: DUP1
0000271c: PUSH2 0x2771
0000271f: JUMPI
00002720: JUMPDEST
00002721: POP
00002722: PUSH1 0xd2
00002724: SLOAD
00002725: PUSH1 0x01
00002727: PUSH1 0x01
00002729: PUSH1 0xa0
0000272b: SHL
0000272c: SUB
0000272d: AND
0000272e: ISZERO
0000272f: PUSH2 0x2734
00002732: JUMPI
00002733: JUMP
00002734: JUMPDEST
00002735: PUSH1 0xd2
00002737: DUP1
00002738: SLOAD
00002739: PUSH1 0x01
0000273b: PUSH1 0x01
0000273d: PUSH1 0xa0
0000273f: SHL
00002740: SUB
00002741: NOT
00002742: AND
00002743: PUSH1 0x01
00002745: PUSH1 0x01
00002747: PUSH1 0xa0
00002749: SHL
0000274a: SUB
0000274b: PUSH32 0x00000000000000000000000075ab6ddce07556639333d3df1eaa684f5735223e
0000276c: AND
0000276d: OR
0000276e: SWAP1
0000276f: SSTORE
00002770: JUMP
00002771: JUMPDEST
00002772: PUSH1 0xd1
00002774: SLOAD
00002775: PUSH1 0xd2
00002777: SLOAD
00002778: SWAP1
00002779: SWAP2
0000277a: SWAP1
0000277b: PUSH1 0x01
0000277d: PUSH1 0x01
0000277f: PUSH1 0xa0
00002781: SHL
00002782: SUB
00002783: PUSH32 0x00000000000000000000000075ab6ddce07556639333d3df1eaa684f5735223e
000027a4: DUP2
000027a5: AND
000027a6: SWAP2
000027a7: AND
000027a8: SWAP1
000027a9: DUP1
000027aa: EXTCODESIZE
000027ab: ISZERO
000027ac: PUSH2 0x0383
000027af: JUMPI
000027b0: PUSH1 0x40
000027b2: MLOAD
000027b3: PUSH4 0x76615a55
000027b8: PUSH1 0xe0
000027ba: SHL
000027bb: DUP2
000027bc: MSTORE
000027bd: PUSH1 0x04
000027bf: DUP2
000027c0: ADD
000027c1: SWAP4
000027c2: SWAP1
000027c3: SWAP4
000027c4: MSTORE
000027c5: PUSH1 0x24
000027c7: DUP4
000027c8: ADD
000027c9: SWAP4
000027ca: SWAP1
000027cb: SWAP4
000027cc: MSTORE
000027cd: PUSH1 0x01
000027cf: PUSH1 0x01
000027d1: PUSH1 0xa0
000027d3: SHL
000027d4: SUB
000027d5: AND
000027d6: PUSH1 0x44
000027d8: DUP3
000027d9: ADD
000027da: MSTORE
000027db: SWAP1
000027dc: PUSH0
000027dd: SWAP1
000027de: DUP3
000027df: SWAP1
000027e0: PUSH1 0x64
000027e2: SWAP1
000027e3: DUP3
000027e4: SWAP1
000027e5: DUP5
000027e6: SWAP1
000027e7: GAS
000027e8: CALL
000027e9: DUP1
000027ea: ISZERO
000027eb: PUSH2 0x06ed
000027ee: JUMPI
000027ef: PUSH2 0x281c
000027f2: JUMPI
000027f3: JUMPDEST
000027f4: POP
000027f5: PUSH2 0x27fd
000027f8: PUSH0
000027f9: PUSH1 0xd1
000027fb: SSTORE
000027fc: JUMP
000027fd: JUMPDEST
000027fe: PUSH2 0x2806
00002801: PUSH0
00002802: PUSH1 0xd0
00002804: SSTORE
00002805: JUMP
00002806: JUMPDEST
00002807: PUSH1 0xd2
00002809: DUP1
0000280a: SLOAD
0000280b: PUSH1 0x01
0000280d: PUSH1 0x01
0000280f: PUSH1 0xa0
00002811: SHL
00002812: SUB
00002813: NOT
00002814: AND
00002815: SWAP1
00002816: SSTORE
00002817: PUSH0
00002818: PUSH2 0x2720
0000281b: JUMP
0000281c: JUMPDEST
0000281d: DUP1
0000281e: PUSH2 0x0c42
00002821: PUSH0
00002822: PUSH2 0x282a
00002825: SWAP4
00002826: PUSH2 0x104a
00002829: JUMP
0000282a: JUMPDEST
0000282b: PUSH0
0000282c: PUSH2 0x27f3
0000282f: JUMP
00002830: JUMPDEST
00002831: SWAP1
00002832: DUP2
00002833: PUSH1 0x20
00002835: SWAP2
00002836: SUB
00002837: SLT
00002838: PUSH2 0x0383
0000283b: JUMPI
0000283c: MLOAD
0000283d: PUSH2 0x0836
00002840: DUP2
00002841: PUSH2 0x0372
00002844: JUMP
00002845: JUMPDEST
00002846: PUSH1 0x01
00002848: DUP1
00002849: PUSH1 0xa0
0000284b: SHL
0000284c: SUB
0000284d: AND
0000284e: PUSH0
0000284f: MSTORE
00002850: PUSH2 0x0137
00002853: PUSH1 0x20
00002855: MSTORE
00002856: PUSH1 0x01
00002858: PUSH1 0x01
0000285a: PUSH1 0x80
0000285c: SHL
0000285d: SUB
0000285e: PUSH1 0x40
00002860: PUSH0
00002861: KECCAK256
00002862: PUSH1 0x40
00002864: MLOAD
00002865: SWAP1
00002866: PUSH2 0x286e
00002869: DUP3
0000286a: PUSH2 0x102a
0000286d: JUMP
0000286e: JUMPDEST
0000286f: SLOAD
00002870: DUP3
00002871: DUP2
00002872: AND
00002873: SWAP1
00002874: DUP2
00002875: DUP4
00002876: MSTORE
00002877: PUSH1 0x80
00002879: SHR
0000287a: PUSH1 0x20
0000287c: DUP4
0000287d: ADD
0000287e: MSTORE
0000287f: PUSH2 0x2887
00002882: JUMPI
00002883: MLOAD
00002884: AND
00002885: SWAP1
00002886: JUMP
00002887: JUMPDEST
00002888: PUSH2 0x2890
0000288b: DUP2
0000288c: PUSH2 0x2e7c
0000288f: JUMP
00002890: JUMPDEST
00002891: MLOAD
00002892: AND
00002893: SWAP1
00002894: JUMP
00002895: JUMPDEST
00002896: SWAP1
00002897: DUP1
00002898: PUSH1 0x20
0000289a: SWAP4
0000289b: SWAP3
0000289c: DUP2
0000289d: DUP5
0000289e: MSTORE
0000289f: DUP5
000028a0: DUP5
000028a1: ADD
000028a2: CALLDATACOPY
000028a3: PUSH0
000028a4: DUP3
000028a5: DUP3
000028a6: ADD
000028a7: DUP5
000028a8: ADD
000028a9: MSTORE
000028aa: PUSH1 0x1f
000028ac: ADD
000028ad: PUSH1 0x1f
000028af: NOT
000028b0: AND
000028b1: ADD
000028b2: ADD
000028b3: SWAP1
000028b4: JUMP
000028b5: JUMPDEST
000028b6: SWAP4
000028b7: SWAP2
000028b8: PUSH2 0x0836
000028bb: SWAP6
000028bc: SWAP4
000028bd: PUSH2 0x28db
000028c0: SWAP3
000028c1: PUSH1 0x01
000028c3: DUP1
000028c4: PUSH1 0xa0
000028c6: SHL
000028c7: SUB
000028c8: AND
000028c9: DUP7
000028ca: MSTORE
000028cb: PUSH1 0x60
000028cd: PUSH1 0x20
000028cf: DUP8
000028d0: ADD
000028d1: MSTORE
000028d2: PUSH1 0x60
000028d4: DUP7
000028d5: ADD
000028d6: SWAP2
000028d7: PUSH2 0x2895
000028da: JUMP
000028db: JUMPDEST
000028dc: SWAP3
000028dd: PUSH1 0x40
000028df: DUP2
000028e0: DUP6
000028e1: SUB
000028e2: SWAP2
000028e3: ADD
000028e4: MSTORE
000028e5: PUSH2 0x2895
000028e8: JUMP
000028e9: JUMPDEST
000028ea: SWAP3
000028eb: SWAP5
000028ec: SWAP4
000028ed: SWAP1
000028ee: PUSH2 0x2909
000028f1: SWAP1
000028f2: PUSH1 0x60
000028f4: SWAP4
000028f5: PUSH1 0xd4
000028f7: DUP7
000028f8: MSTORE
000028f9: PUSH1 0x80
000028fb: PUSH1 0x20
000028fd: DUP8
000028fe: ADD
000028ff: MSTORE
00002900: PUSH1 0x80
00002902: DUP7
00002903: ADD
00002904: SWAP2
00002905: PUSH2 0x2895
00002908: JUMP
00002909: JUMPDEST
0000290a: SWAP5
0000290b: ISZERO
0000290c: ISZERO
0000290d: PUSH1 0x40
0000290f: DUP5
00002910: ADD
00002911: MSTORE
00002912: PUSH1 0x01
00002914: PUSH1 0x01
00002916: PUSH1 0xa0
00002918: SHL
00002919: SUB
0000291a: AND
0000291b: SWAP2
0000291c: ADD
0000291d: MSTORE
0000291e: JUMP
0000291f: JUMPDEST
00002920: PUSH1 0x9d
00002922: SLOAD
00002923: DUP1
00002924: PUSH2 0x0836
00002927: JUMPI
00002928: POP
00002929: PUSH0
0000292a: NOT
0000292b: SWAP1
0000292c: JUMP
0000292d: JUMPDEST
0000292e: MLOAD
0000292f: SWAP1
00002930: DUP2
00002931: ISZERO
00002932: ISZERO
00002933: DUP3
00002934: SUB
00002935: PUSH2 0x0383
00002938: JUMPI
00002939: JUMP
0000293a: JUMPDEST
0000293b: SWAP1
0000293c: DUP2
0000293d: PUSH1 0x20
0000293f: SWAP2
00002940: SUB
00002941: SLT
00002942: PUSH2 0x0383
00002945: JUMPI
00002946: PUSH2 0x0836
00002949: SWAP1
0000294a: PUSH2 0x292d
0000294d: JUMP
0000294e: JUMPDEST
0000294f: SWAP2
00002950: SWAP1
00002951: DUP3
00002952: PUSH1 0x40
00002954: SWAP2
00002955: SUB
00002956: SLT
00002957: PUSH2 0x0383
0000295a: JUMPI
0000295b: PUSH1 0x20
0000295d: DUP3
0000295e: MLOAD
0000295f: SWAP3
00002960: ADD
00002961: MLOAD
00002962: SWAP1
00002963: JUMP
00002964: JUMPDEST
00002965: SWAP2
00002966: SWAP1
00002967: DUP3
00002968: SUB
00002969: SWAP2
0000296a: DUP3
0000296b: GT
0000296c: PUSH2 0x07c6
0000296f: JUMPI
00002970: JUMP
00002971: JUMPDEST
00002972: PUSH1 0x40
00002974: DUP1
00002975: MLOAD
00002976: PUSH1 0x01
00002978: PUSH1 0x01
0000297a: PUSH1 0xa0
0000297c: SHL
0000297d: SUB
0000297e: SWAP1
0000297f: SWAP3
00002980: AND
00002981: PUSH1 0x20
00002983: DUP4
00002984: ADD
00002985: SWAP1
00002986: DUP2
00002987: MSTORE
00002988: SWAP1
00002989: DUP3
0000298a: ADD
0000298b: SWAP4
0000298c: SWAP1
0000298d: SWAP4
0000298e: MSTORE
0000298f: PUSH1 0x60
00002991: DUP2
00002992: ADD
00002993: DUP3
00002994: SWAP1
00002995: MSTORE
00002996: SWAP1
00002997: SWAP2
00002998: PUSH2 0x29a8
0000299b: SWAP2
0000299c: PUSH2 0x1bbe
0000299f: DUP2
000029a0: PUSH1 0x80
000029a2: DUP2
000029a3: ADD
000029a4: PUSH2 0x1156
000029a7: JUMP
000029a8: JUMPDEST
000029a9: SLOAD
000029aa: SWAP2
000029ab: DUP3
000029ac: ISZERO
000029ad: PUSH2 0x2a67
000029b0: JUMPI
000029b1: PUSH1 0x40
000029b3: DUP1
000029b4: MLOAD
000029b5: PUSH4 0x776e861f
000029ba: PUSH1 0xe0
000029bc: SHL
000029bd: DUP2
000029be: MSTORE
000029bf: PUSH1 0x9a
000029c1: PUSH1 0x04
000029c3: DUP3
000029c4: ADD
000029c5: MSTORE
000029c6: PUSH1 0x24
000029c8: DUP2
000029c9: ADD
000029ca: SWAP3
000029cb: SWAP1
000029cc: SWAP3
000029cd: MSTORE
000029ce: PUSH1 0x44
000029d0: DUP3
000029d1: ADD
000029d2: SWAP3
000029d3: SWAP1
000029d4: SWAP3
000029d5: MSTORE
000029d6: PUSH1 0x64
000029d8: DUP2
000029d9: ADD
000029da: DUP4
000029db: SWAP1
000029dc: MSTORE
000029dd: SWAP3
000029de: SWAP1
000029df: DUP4
000029e0: PUSH1 0x84
000029e2: DUP2
000029e3: PUSH20 0x723399c5a3503a53af1bdf89bda7d6d1025cab97
000029f8: GAS
000029f9: DELEGATECALL
000029fa: DUP1
000029fb: ISZERO
000029fc: PUSH2 0x06ed
000029ff: JUMPI
00002a00: PUSH0
00002a01: SWAP4
00002a02: PUSH0
00002a03: SWAP2
00002a04: PUSH2 0x2a32
00002a07: JUMPI
00002a08: JUMPDEST
00002a09: POP
00002a0a: SWAP1
00002a0b: PUSH2 0x2a15
00002a0e: DUP5
00002a0f: DUP1
00002a10: SWAP5
00002a11: PUSH2 0x2964
00002a14: JUMP
00002a15: JUMPDEST
00002a16: SWAP4
00002a17: PUSH1 0x01
00002a19: DUP6
00002a1a: EQ
00002a1b: PUSH2 0x2a21
00002a1e: JUMPI
00002a1f: POP
00002a20: JUMP
00002a21: JUMPDEST
00002a22: SWAP4
00002a23: POP
00002a24: SWAP2
00002a25: POP
00002a26: PUSH2 0x2a2f
00002a29: PUSH0
00002a2a: SWAP4
00002a2b: PUSH2 0x25cd
00002a2e: JUMP
00002a2f: JUMPDEST
00002a30: SWAP2
00002a31: JUMP
00002a32: JUMPDEST
00002a33: SWAP1
00002a34: POP
00002a35: PUSH2 0x2a57
00002a38: SWAP2
00002a39: SWAP4
00002a3a: POP
00002a3b: PUSH1 0x40
00002a3d: RETURNDATASIZE
00002a3e: PUSH1 0x40
00002a40: GT
00002a41: PUSH2 0x2a60
00002a44: JUMPI
00002a45: JUMPDEST
00002a46: PUSH2 0x2a4f
00002a49: DUP2
00002a4a: DUP4
00002a4b: PUSH2 0x104a
00002a4e: JUMP
00002a4f: JUMPDEST
00002a50: DUP2
00002a51: ADD
00002a52: SWAP1
00002a53: PUSH2 0x294e
00002a56: JUMP
00002a57: JUMPDEST
00002a58: SWAP3
00002a59: SWAP1
00002a5a: SWAP3
00002a5b: PUSH0
00002a5c: PUSH2 0x2a08
00002a5f: JUMP
00002a60: JUMPDEST
00002a61: POP
00002a62: RETURNDATASIZE
00002a63: PUSH2 0x2a45
00002a66: JUMP
00002a67: JUMPDEST
00002a68: POP
00002a69: POP
00002a6a: POP
00002a6b: PUSH0
00002a6c: SWAP1
00002a6d: PUSH0
00002a6e: SWAP1
00002a6f: PUSH0
00002a70: SWAP1
00002a71: JUMP
00002a72: JUMPDEST
00002a73: SWAP1
00002a74: CALLDATALOAD
00002a75: PUSH1 0x1e
00002a77: NOT
00002a78: DUP3
00002a79: CALLDATASIZE
00002a7a: SUB
00002a7b: ADD
00002a7c: DUP2
00002a7d: SLT
00002a7e: ISZERO
00002a7f: PUSH2 0x0383
00002a82: JUMPI
00002a83: ADD
00002a84: PUSH1 0x20
00002a86: DUP2
00002a87: CALLDATALOAD
00002a88: SWAP2
00002a89: ADD
00002a8a: SWAP2
00002a8b: PUSH1 0x01
00002a8d: PUSH1 0x01
00002a8f: PUSH1 0x40
00002a91: SHL
00002a92: SUB
00002a93: DUP3
00002a94: GT
00002a95: PUSH2 0x0383
00002a98: JUMPI
00002a99: DUP2
00002a9a: CALLDATASIZE
00002a9b: SUB
00002a9c: DUP4
00002a9d: SGT
00002a9e: PUSH2 0x0383
00002aa1: JUMPI
00002aa2: JUMP
00002aa3: JUMPDEST
00002aa4: SWAP1
00002aa5: PUSH2 0x0836
00002aa8: SWAP2
00002aa9: PUSH1 0x20
00002aab: DUP2
00002aac: MSTORE
00002aad: DUP2
00002aae: CALLDATALOAD
00002aaf: PUSH1 0x20
00002ab1: DUP3
00002ab2: ADD
00002ab3: MSTORE
00002ab4: PUSH1 0x20
00002ab6: DUP3
00002ab7: ADD
00002ab8: CALLDATALOAD
00002ab9: PUSH1 0x40
00002abb: DUP3
00002abc: ADD
00002abd: MSTORE
00002abe: PUSH2 0x2b0e
00002ac1: PUSH2 0x2b03
00002ac4: PUSH2 0x2ae4
00002ac7: PUSH2 0x2ad3
00002aca: PUSH1 0x40
00002acc: DUP7
00002acd: ADD
00002ace: DUP7
00002acf: PUSH2 0x2a72
00002ad2: JUMP
00002ad3: JUMPDEST
00002ad4: PUSH1 0xa0
00002ad6: PUSH1 0x60
00002ad8: DUP8
00002ad9: ADD
00002ada: MSTORE
00002adb: PUSH1 0xc0
00002add: DUP7
00002ade: ADD
00002adf: SWAP2
00002ae0: PUSH2 0x2895
00002ae3: JUMP
00002ae4: JUMPDEST
00002ae5: PUSH2 0x2af1
00002ae8: PUSH1 0x60
00002aea: DUP7
00002aeb: ADD
00002aec: DUP7
00002aed: PUSH2 0x2a72
00002af0: JUMP
00002af1: JUMPDEST
00002af2: DUP6
00002af3: DUP4
00002af4: SUB
00002af5: PUSH1 0x1f
00002af7: NOT
00002af8: ADD
00002af9: PUSH1 0x80
00002afb: DUP8
00002afc: ADD
00002afd: MSTORE
00002afe: SWAP1
00002aff: PUSH2 0x2895
00002b02: JUMP
00002b03: JUMPDEST
00002b04: SWAP3
00002b05: PUSH1 0x80
00002b07: DUP2
00002b08: ADD
00002b09: SWAP1
00002b0a: PUSH2 0x2a72
00002b0d: JUMP
00002b0e: JUMPDEST
00002b0f: SWAP2
00002b10: PUSH1 0xa0
00002b12: PUSH1 0x1f
00002b14: NOT
00002b15: DUP3
00002b16: DUP7
00002b17: SUB
00002b18: ADD
00002b19: SWAP2
00002b1a: ADD
00002b1b: MSTORE
00002b1c: PUSH2 0x2895
00002b1f: JUMP
00002b20: JUMPDEST
00002b21: SWAP1
00002b22: CALLDATALOAD
00002b23: SWAP1
00002b24: PUSH1 0x1e
00002b26: NOT
00002b27: DUP2
00002b28: CALLDATASIZE
00002b29: SUB
00002b2a: ADD
00002b2b: DUP3
00002b2c: SLT
00002b2d: ISZERO
00002b2e: PUSH2 0x0383
00002b31: JUMPI
00002b32: ADD
00002b33: DUP1
00002b34: CALLDATALOAD
00002b35: SWAP1
00002b36: PUSH1 0x01
00002b38: PUSH1 0x01
00002b3a: PUSH1 0x40
00002b3c: SHL
00002b3d: SUB
00002b3e: DUP3
00002b3f: GT
00002b40: PUSH2 0x0383
00002b43: JUMPI
00002b44: PUSH1 0x20
00002b46: ADD
00002b47: SWAP2
00002b48: DUP2
00002b49: CALLDATASIZE
00002b4a: SUB
00002b4b: DUP4
00002b4c: SGT
00002b4d: PUSH2 0x0383
00002b50: JUMPI
00002b51: JUMP
00002b52: JUMPDEST
00002b53: PUSH1 0x01
00002b55: PUSH1 0x01
00002b57: PUSH1 0x40
00002b59: SHL
00002b5a: SUB
00002b5b: DUP2
00002b5c: GT
00002b5d: PUSH2 0x1045
00002b60: JUMPI
00002b61: PUSH1 0x05
00002b63: SHL
00002b64: PUSH1 0x20
00002b66: ADD
00002b67: SWAP1
00002b68: JUMP
00002b69: JUMPDEST
00002b6a: DUP2
00002b6b: PUSH1 0x1f
00002b6d: DUP3
00002b6e: ADD
00002b6f: SLT
00002b70: ISZERO
00002b71: PUSH2 0x0383
00002b74: JUMPI
00002b75: DUP1
00002b76: MLOAD
00002b77: SWAP1
00002b78: PUSH2 0x2b80
00002b7b: DUP3
00002b7c: PUSH2 0x108b
00002b7f: JUMP
00002b80: JUMPDEST
00002b81: SWAP3
00002b82: PUSH2 0x2b8e
00002b85: PUSH1 0x40
00002b87: MLOAD
00002b88: SWAP5
00002b89: DUP6
00002b8a: PUSH2 0x104a
00002b8d: JUMP
00002b8e: JUMPDEST
00002b8f: DUP3
00002b90: DUP5
00002b91: MSTORE
00002b92: PUSH1 0x20
00002b94: DUP4
00002b95: DUP4
00002b96: ADD
00002b97: ADD
00002b98: GT
00002b99: PUSH2 0x0383
00002b9c: JUMPI
00002b9d: DUP2
00002b9e: PUSH0
00002b9f: SWAP3
00002ba0: PUSH1 0x20
00002ba2: DUP1
00002ba3: SWAP4
00002ba4: ADD
00002ba5: DUP4
00002ba6: DUP7
00002ba7: ADD
00002ba8: MCOPY
00002ba9: DUP4
00002baa: ADD
00002bab: ADD
00002bac: MSTORE
00002bad: SWAP1
00002bae: JUMP
00002baf: JUMPDEST
00002bb0: PUSH1 0x20
00002bb2: DUP2
00002bb3: DUP4
00002bb4: SUB
00002bb5: SLT
00002bb6: PUSH2 0x0383
00002bb9: JUMPI
00002bba: DUP1
00002bbb: MLOAD
00002bbc: SWAP1
00002bbd: PUSH1 0x01
00002bbf: PUSH1 0x01
00002bc1: PUSH1 0x40
00002bc3: SHL
00002bc4: SUB
00002bc5: DUP3
00002bc6: GT
00002bc7: PUSH2 0x0383
00002bca: JUMPI
00002bcb: ADD
00002bcc: DUP2
00002bcd: PUSH1 0x1f
00002bcf: DUP3
00002bd0: ADD
00002bd1: SLT
00002bd2: ISZERO
00002bd3: PUSH2 0x0383
00002bd6: JUMPI
00002bd7: DUP1
00002bd8: MLOAD
00002bd9: SWAP1
00002bda: PUSH2 0x2be2
00002bdd: DUP3
00002bde: PUSH2 0x2b52
00002be1: JUMP
00002be2: JUMPDEST
00002be3: SWAP3
00002be4: PUSH2 0x2bf0
00002be7: PUSH1 0x40
00002be9: MLOAD
00002bea: SWAP5
00002beb: DUP6
00002bec: PUSH2 0x104a
00002bef: JUMP
00002bf0: JUMPDEST
00002bf1: DUP3
00002bf2: DUP5
00002bf3: MSTORE
00002bf4: PUSH1 0x20
00002bf6: DUP1
00002bf7: DUP6
00002bf8: ADD
00002bf9: SWAP4
00002bfa: PUSH1 0x05
00002bfc: SHL
00002bfd: DUP4
00002bfe: ADD
00002bff: ADD
00002c00: SWAP2
00002c01: DUP2
00002c02: DUP4
00002c03: GT
00002c04: PUSH2 0x0383
00002c07: JUMPI
00002c08: PUSH1 0x20
00002c0a: DUP2
00002c0b: ADD
00002c0c: SWAP4
00002c0d: JUMPDEST
00002c0e: DUP4
00002c0f: DUP6
00002c10: LT
00002c11: PUSH2 0x2c1c
00002c14: JUMPI
00002c15: POP
00002c16: POP
00002c17: POP
00002c18: POP
00002c19: POP
00002c1a: SWAP1
00002c1b: JUMP
00002c1c: JUMPDEST
00002c1d: DUP5
00002c1e: MLOAD
00002c1f: PUSH1 0x01
00002c21: PUSH1 0x01
00002c23: PUSH1 0x40
00002c25: SHL
00002c26: SUB
00002c27: DUP2
00002c28: GT
00002c29: PUSH2 0x0383
00002c2c: JUMPI
00002c2d: DUP3
00002c2e: ADD
00002c2f: PUSH1 0xa0
00002c31: DUP2
00002c32: DUP6
00002c33: SUB
00002c34: PUSH1 0x1f
00002c36: NOT
00002c37: ADD
00002c38: SLT
00002c39: PUSH2 0x0383
00002c3c: JUMPI
00002c3d: PUSH2 0x2c44
00002c40: PUSH2 0x106b
00002c43: JUMP
00002c44: JUMPDEST
00002c45: SWAP2
00002c46: PUSH1 0x20
00002c48: DUP3
00002c49: ADD
00002c4a: MLOAD
00002c4b: PUSH1 0x01
00002c4d: PUSH1 0x01
00002c4f: PUSH1 0x40
00002c51: SHL
00002c52: SUB
00002c53: DUP2
00002c54: GT
00002c55: PUSH2 0x0383
00002c58: JUMPI
00002c59: DUP6
00002c5a: PUSH1 0x20
00002c5c: PUSH2 0x2c67
00002c5f: SWAP3
00002c60: DUP6
00002c61: ADD
00002c62: ADD
00002c63: PUSH2 0x2b69
00002c66: JUMP
00002c67: JUMPDEST
00002c68: DUP4
00002c69: MSTORE
00002c6a: PUSH1 0x40
00002c6c: DUP3
00002c6d: ADD
00002c6e: MLOAD
00002c6f: PUSH1 0x01
00002c71: PUSH1 0x01
00002c73: PUSH1 0x40
00002c75: SHL
00002c76: SUB
00002c77: DUP2
00002c78: GT
00002c79: PUSH2 0x0383
00002c7c: JUMPI
00002c7d: DUP6
00002c7e: PUSH1 0x20
00002c80: PUSH2 0x2c8b
00002c83: SWAP3
00002c84: DUP6
00002c85: ADD
00002c86: ADD
00002c87: PUSH2 0x2b69
00002c8a: JUMP
00002c8b: JUMPDEST
00002c8c: PUSH1 0x20
00002c8e: DUP5
00002c8f: ADD
00002c90: MSTORE
00002c91: PUSH1 0x60
00002c93: DUP3
00002c94: ADD
00002c95: MLOAD
00002c96: SWAP3
00002c97: PUSH1 0x01
00002c99: PUSH1 0x01
00002c9b: PUSH1 0x40
00002c9d: SHL
00002c9e: SUB
00002c9f: DUP5
00002ca0: GT
00002ca1: PUSH2 0x0383
00002ca4: JUMPI
00002ca5: PUSH1 0xa0
00002ca7: DUP4
00002ca8: PUSH2 0x2cb8
00002cab: DUP9
00002cac: PUSH1 0x20
00002cae: DUP1
00002caf: SWAP9
00002cb0: DUP2
00002cb1: SWAP9
00002cb2: ADD
00002cb3: ADD
00002cb4: PUSH2 0x2b69
00002cb7: JUMP
00002cb8: JUMPDEST
00002cb9: PUSH1 0x40
00002cbb: DUP5
00002cbc: ADD
00002cbd: MSTORE
00002cbe: PUSH1 0x80
00002cc0: DUP2
00002cc1: ADD
00002cc2: MLOAD
00002cc3: PUSH1 0x60
00002cc5: DUP5
00002cc6: ADD
00002cc7: MSTORE
00002cc8: ADD
00002cc9: MLOAD
00002cca: PUSH1 0x80
00002ccc: DUP3
00002ccd: ADD
00002cce: MSTORE
00002ccf: DUP2
00002cd0: MSTORE
00002cd1: ADD
00002cd2: SWAP5
00002cd3: ADD
00002cd4: SWAP4
00002cd5: PUSH2 0x2c0d
00002cd8: JUMP
00002cd9: JUMPDEST
00002cda: SWAP3
00002cdb: SWAP2
00002cdc: PUSH2 0x2cf8
00002cdf: PUSH0
00002ce0: SWAP3
00002ce1: PUSH1 0x40
00002ce3: SWAP3
00002ce4: PUSH1 0xd4
00002ce6: DUP8
00002ce7: MSTORE
00002ce8: PUSH1 0x60
00002cea: PUSH1 0x20
00002cec: DUP9
00002ced: ADD
00002cee: MSTORE
00002cef: PUSH1 0x60
00002cf1: DUP8
00002cf2: ADD
00002cf3: SWAP2
00002cf4: PUSH2 0x2895
00002cf7: JUMP
00002cf8: JUMPDEST
00002cf9: SWAP4
00002cfa: ADD
00002cfb: MSTORE
00002cfc: JUMP
00002cfd: JUMPDEST
00002cfe: PUSH4 0x4e487b71
00002d03: PUSH1 0xe0
00002d05: SHL
00002d06: PUSH0
00002d07: MSTORE
00002d08: PUSH1 0x32
00002d0a: PUSH1 0x04
00002d0c: MSTORE
00002d0d: PUSH1 0x24
00002d0f: PUSH0
00002d10: REVERT
00002d11: JUMPDEST
00002d12: SWAP1
00002d13: DUP3
00002d14: LT
00002d15: ISZERO
00002d16: PUSH2 0x2d28
00002d19: JUMPI
00002d1a: PUSH2 0x0dc4
00002d1d: SWAP2
00002d1e: PUSH1 0x05
00002d20: SHL
00002d21: DUP2
00002d22: ADD
00002d23: SWAP1
00002d24: PUSH2 0x2b20
00002d27: JUMP
00002d28: JUMPDEST
00002d29: PUSH2 0x2cfd
00002d2c: JUMP
00002d2d: JUMPDEST
00002d2e: DUP1
00002d2f: MLOAD
00002d30: DUP3
00002d31: LT
00002d32: ISZERO
00002d33: PUSH2 0x2d28
00002d36: JUMPI
00002d37: PUSH1 0x20
00002d39: SWAP2
00002d3a: PUSH1 0x05
00002d3c: SHL
00002d3d: ADD
00002d3e: ADD
00002d3f: SWAP1
00002d40: JUMP
00002d41: JUMPDEST
00002d42: SWAP2
00002d43: SWAP1
00002d44: SWAP2
00002d45: PUSH2 0x2d4d
00002d48: DUP4
00002d49: PUSH2 0x2b52
00002d4c: JUMP
00002d4d: JUMPDEST
00002d4e: PUSH2 0x2d5a
00002d51: PUSH1 0x40
00002d53: MLOAD
00002d54: SWAP2
00002d55: DUP3
00002d56: PUSH2 0x104a
00002d59: JUMP
00002d5a: JUMPDEST
00002d5b: DUP4
00002d5c: DUP2
00002d5d: MSTORE
00002d5e: PUSH1 0x1f
00002d60: NOT
00002d61: PUSH2 0x2d69
00002d64: DUP6
00002d65: PUSH2 0x2b52
00002d68: JUMP
00002d69: JUMPDEST
00002d6a: ADD
00002d6b: PUSH0
00002d6c: JUMPDEST
00002d6d: DUP2
00002d6e: DUP2
00002d6f: LT
00002d70: PUSH2 0x2dc3
00002d73: JUMPI
00002d74: POP
00002d75: POP
00002d76: DUP1
00002d77: SWAP4
00002d78: PUSH0
00002d79: JUMPDEST
00002d7a: DUP2
00002d7b: DUP2
00002d7c: LT
00002d7d: PUSH2 0x2d86
00002d80: JUMPI
00002d81: POP
00002d82: POP
00002d83: POP
00002d84: POP
00002d85: JUMP
00002d86: JUMPDEST
00002d87: DUP1
00002d88: PUSH2 0x2da7
00002d8b: PUSH2 0x2da1
00002d8e: PUSH2 0x2d9a
00002d91: PUSH1 0x01
00002d93: SWAP5
00002d94: DUP7
00002d95: DUP10
00002d96: PUSH2 0x2d11
00002d99: JUMP
00002d9a: JUMPDEST
00002d9b: CALLDATASIZE
00002d9c: SWAP2
00002d9d: PUSH2 0x10a6
00002da0: JUMP
00002da1: JUMPDEST
00002da2: ADDRESS
00002da3: PUSH2 0x4365
00002da6: JUMP
00002da7: JUMPDEST
00002da8: PUSH2 0x2db1
00002dab: DUP3
00002dac: DUP7
00002dad: PUSH2 0x2d2d
00002db0: JUMP
00002db1: JUMPDEST
00002db2: MSTORE
00002db3: PUSH2 0x2dbc
00002db6: DUP2
00002db7: DUP6
00002db8: PUSH2 0x2d2d
00002dbb: JUMP
00002dbc: JUMPDEST
00002dbd: POP
00002dbe: ADD
00002dbf: PUSH2 0x2d79
00002dc2: JUMP
00002dc3: JUMPDEST
00002dc4: DUP1
00002dc5: PUSH1 0x60
00002dc7: PUSH1 0x20
00002dc9: DUP1
00002dca: SWAP4
00002dcb: DUP7
00002dcc: ADD
00002dcd: ADD
00002dce: MSTORE
00002dcf: ADD
00002dd0: PUSH2 0x2d6c
00002dd3: JUMP
00002dd4: JUMPDEST
00002dd5: SWAP1
00002dd6: PUSH1 0x01
00002dd8: PUSH1 0x01
00002dda: PUSH1 0x80
00002ddc: SHL
00002ddd: SUB
00002dde: DUP1
00002ddf: SWAP2
00002de0: AND
00002de1: SWAP2
00002de2: AND
00002de3: ADD
00002de4: SWAP1
00002de5: PUSH1 0x01
00002de7: PUSH1 0x01
00002de9: PUSH1 0x80
00002deb: SHL
00002dec: SUB
00002ded: DUP3
00002dee: GT
00002def: PUSH2 0x07c6
00002df2: JUMPI
00002df3: JUMP
00002df4: JUMPDEST
00002df5: PUSH32 0x0000000000000000000000002296e122c1a20fca3cac3371357bdad3be0df079
00002e16: PUSH1 0x01
00002e18: PUSH1 0x01
00002e1a: PUSH1 0xa0
00002e1c: SHL
00002e1d: SUB
00002e1e: AND
00002e1f: CALLER
00002e20: SUB
00002e21: PUSH2 0x2e26
00002e24: JUMPI
00002e25: JUMP
00002e26: JUMPDEST
00002e27: PUSH2 0x262c
00002e2a: CALLVALUE
00002e2b: CALLER
00002e2c: PUSH2 0x463e
00002e2f: JUMP
00002e30: JUMPDEST
00002e31: PUSH0
00002e32: SLOAD
00002e33: PUSH1 0x01
00002e35: PUSH1 0x01
00002e37: PUSH1 0xa0
00002e39: SHL
00002e3a: SUB
00002e3b: AND
00002e3c: CALLER
00002e3d: SUB
00002e3e: PUSH2 0x0f78
00002e41: JUMPI
00002e42: JUMP
00002e43: JUMPDEST
00002e44: SWAP1
00002e45: PUSH1 0x78
00002e47: DUP3
00002e48: MUL
00002e49: SWAP2
00002e4a: DUP1
00002e4b: DUP4
00002e4c: DIV
00002e4d: PUSH1 0x78
00002e4f: EQ
00002e50: SWAP1
00002e51: ISZERO
00002e52: OR
00002e53: ISZERO
00002e54: PUSH2 0x07c6
00002e57: JUMPI
00002e58: JUMP
00002e59: JUMPDEST
00002e5a: PUSH4 0x4e487b71
00002e5f: PUSH1 0xe0
00002e61: SHL
00002e62: PUSH0
00002e63: MSTORE
00002e64: PUSH1 0x12
00002e66: PUSH1 0x04
00002e68: MSTORE
00002e69: PUSH1 0x24
00002e6b: PUSH0
00002e6c: REVERT
00002e6d: JUMPDEST
00002e6e: DUP2
00002e6f: ISZERO
00002e70: PUSH2 0x2e77
00002e73: JUMPI
00002e74: DIV
00002e75: SWAP1
00002e76: JUMP
00002e77: JUMPDEST
00002e78: PUSH2 0x2e59
00002e7b: JUMP
00002e7c: JUMPDEST
00002e7d: PUSH1 0x40
00002e7f: MLOAD
00002e80: PUSH4 0x752a536d
00002e85: PUSH1 0xe0
00002e87: SHL
00002e88: DUP2
00002e89: MSTORE
00002e8a: SWAP1
00002e8b: PUSH1 0x20
00002e8d: DUP3
00002e8e: PUSH1 0x04
00002e90: DUP2
00002e91: PUSH32 0x0000000000000000000000002a261e60fb14586b474c208b1b7ac6d0f5000306
00002eb2: PUSH1 0x01
00002eb4: PUSH1 0x01
00002eb6: PUSH1 0xa0
00002eb8: SHL
00002eb9: SUB
00002eba: AND
00002ebb: GAS
00002ebc: STATICCALL
00002ebd: SWAP2
00002ebe: DUP3
00002ebf: ISZERO
00002ec0: PUSH2 0x06ed
00002ec3: JUMPI
00002ec4: PUSH0
00002ec5: SWAP3
00002ec6: PUSH2 0x2f3f
00002ec9: JUMPI
00002eca: JUMPDEST
00002ecb: POP
00002ecc: PUSH1 0x20
00002ece: DUP2
00002ecf: ADD
00002ed0: SWAP1
00002ed1: PUSH2 0x2ee1
00002ed4: DUP3
00002ed5: MLOAD
00002ed6: PUSH1 0x01
00002ed8: PUSH1 0x01
00002eda: PUSH1 0x80
00002edc: SHL
00002edd: SUB
00002ede: AND
00002edf: SWAP1
00002ee0: JUMP
00002ee1: JUMPDEST
00002ee2: SWAP3
00002ee3: PUSH1 0x01
00002ee5: PUSH1 0x01
00002ee7: PUSH1 0x80
00002ee9: SHL
00002eea: SUB
00002eeb: DUP5
00002eec: AND
00002eed: DUP2
00002eee: EQ
00002eef: PUSH2 0x2f39
00002ef2: JUMPI
00002ef3: PUSH2 0x2f27
00002ef6: DUP3
00002ef7: PUSH2 0x2f2c
00002efa: PUSH2 0x2f27
00002efd: PUSH2 0x107a
00002f00: SWAP8
00002f01: DUP6
00002f02: PUSH1 0x01
00002f04: PUSH1 0x01
00002f06: PUSH1 0x80
00002f08: SHL
00002f09: SUB
00002f0a: DUP1
00002f0b: PUSH2 0x2f1e
00002f0e: PUSH2 0x2f2c
00002f11: SWAP11
00002f12: MLOAD
00002f13: PUSH1 0x01
00002f15: PUSH1 0x01
00002f17: PUSH1 0x80
00002f19: SHL
00002f1a: SUB
00002f1b: AND
00002f1c: SWAP1
00002f1d: JUMP
00002f1e: JUMPDEST
00002f1f: AND
00002f20: SWAP3
00002f21: AND
00002f22: SWAP2
00002f23: PUSH2 0x3039
00002f26: JUMP
00002f27: JUMPDEST
00002f28: PUSH2 0x4305
00002f2b: JUMP
00002f2c: JUMPDEST
00002f2d: PUSH1 0x01
00002f2f: PUSH1 0x01
00002f31: PUSH1 0x80
00002f33: SHL
00002f34: SUB
00002f35: AND
00002f36: SWAP1
00002f37: MSTORE
00002f38: JUMP
00002f39: JUMPDEST
00002f3a: POP
00002f3b: POP
00002f3c: POP
00002f3d: POP
00002f3e: JUMP
00002f3f: JUMPDEST
00002f40: PUSH2 0x2f59
00002f43: SWAP2
00002f44: SWAP3
00002f45: POP
00002f46: PUSH1 0x20
00002f48: RETURNDATASIZE
00002f49: PUSH1 0x20
00002f4b: GT
00002f4c: PUSH2 0x06e6
00002f4f: JUMPI
00002f50: PUSH2 0x06d8
00002f53: DUP2
00002f54: DUP4
00002f55: PUSH2 0x104a
00002f58: JUMP
00002f59: JUMPDEST
00002f5a: SWAP1
00002f5b: PUSH0
00002f5c: PUSH2 0x2eca
00002f5f: JUMP
00002f60: JUMPDEST
00002f61: PUSH2 0x2f6a
00002f64: DUP3
00002f65: DUP3
00002f66: PUSH2 0x478b
00002f69: JUMP
00002f6a: JUMPDEST
00002f6b: SWAP2
00002f6c: DUP2
00002f6d: ISZERO
00002f6e: PUSH2 0x2fbc
00002f71: JUMPI
00002f72: DUP2
00002f73: PUSH2 0x2710
00002f76: GT
00002f77: ISZERO
00002f78: PUSH2 0x2fb5
00002f7b: JUMPI
00002f7c: PUSH32 0xbc01a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e91
00002f9d: SWAP4
00002f9e: PUSH2 0x2710
00002fa1: SWAP2
00002fa2: MULMOD
00002fa3: SWAP1
00002fa4: DUP3
00002fa5: DUP3
00002fa6: GT
00002fa7: SWAP1
00002fa8: SUB
00002fa9: PUSH1 0xfc
00002fab: SHL
00002fac: SWAP2
00002fad: SUB
00002fae: PUSH1 0x04
00002fb0: SHR
00002fb1: OR
00002fb2: MUL
00002fb3: SWAP1
00002fb4: JUMP
00002fb5: JUMPDEST
00002fb6: PUSH1 0x11
00002fb8: PUSH2 0x479e
00002fbb: JUMP
00002fbc: JUMPDEST
00002fbd: POP
00002fbe: PUSH2 0x2710
00002fc1: SWAP3
00002fc2: POP
00002fc3: POP
00002fc4: DIV
00002fc5: SWAP1
00002fc6: JUMP
00002fc7: JUMPDEST
00002fc8: PUSH2 0x2fd1
00002fcb: DUP3
00002fcc: DUP3
00002fcd: PUSH2 0x478b
00002fd0: JUMP
00002fd1: JUMPDEST
00002fd2: SWAP2
00002fd3: DUP2
00002fd4: ISZERO
00002fd5: PUSH2 0x3028
00002fd8: JUMPI
00002fd9: DUP2
00002fda: PUSH8 0x0de0b6b3a7640000
00002fe3: GT
00002fe4: ISZERO
00002fe5: PUSH2 0x2fb5
00002fe8: JUMPI
00002fe9: PUSH32 0xaccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac10669
0000300a: SWAP4
0000300b: PUSH8 0x0de0b6b3a7640000
00003014: SWAP2
00003015: MULMOD
00003016: SWAP1
00003017: DUP3
00003018: DUP3
00003019: GT
0000301a: SWAP1
0000301b: SUB
0000301c: PUSH1 0xee
0000301e: SHL
0000301f: SWAP2
00003020: SUB
00003021: PUSH1 0x12
00003023: SHR
00003024: OR
00003025: MUL
00003026: SWAP1
00003027: JUMP
00003028: JUMPDEST
00003029: POP
0000302a: PUSH8 0x0de0b6b3a7640000
00003033: SWAP3
00003034: POP
00003035: POP
00003036: DIV
00003037: SWAP1
00003038: JUMP
00003039: JUMPDEST
0000303a: SWAP2
0000303b: PUSH2 0x3044
0000303e: DUP3
0000303f: DUP5
00003040: PUSH2 0x478b
00003043: JUMP
00003044: JUMPDEST
00003045: SWAP3
00003046: SWAP1
00003047: SWAP4
00003048: DUP5
00003049: ISZERO
0000304a: PUSH2 0x30b7
0000304d: JUMPI
0000304e: DUP5
0000304f: DUP4
00003050: GT
00003051: ISZERO
00003052: PUSH2 0x30aa
00003055: JUMPI
00003056: SWAP1
00003057: DUP3
00003058: SWAP2
00003059: MULMOD
0000305a: DUP2
0000305b: PUSH0
0000305c: SUB
0000305d: DUP3
0000305e: AND
0000305f: DUP1
00003060: SWAP3
00003061: DIV
00003062: PUSH1 0x02
00003064: DUP2
00003065: PUSH1 0x03
00003067: MUL
00003068: XOR
00003069: DUP1
0000306a: DUP3
0000306b: MUL
0000306c: PUSH1 0x02
0000306e: SUB
0000306f: MUL
00003070: DUP1
00003071: DUP3
00003072: MUL
00003073: PUSH1 0x02
00003075: SUB
00003076: MUL
00003077: DUP1
00003078: DUP3
00003079: MUL
0000307a: PUSH1 0x02
0000307c: SUB
0000307d: MUL
0000307e: DUP1
0000307f: DUP3
00003080: MUL
00003081: PUSH1 0x02
00003083: SUB
00003084: MUL
00003085: DUP1
00003086: DUP3
00003087: MUL
00003088: PUSH1 0x02
0000308a: SUB
0000308b: MUL
0000308c: DUP1
0000308d: SWAP2
0000308e: MUL
0000308f: PUSH1 0x02
00003091: SUB
00003092: MUL
00003093: SWAP4
00003094: PUSH1 0x01
00003096: DUP4
00003097: DUP1
00003098: PUSH0
00003099: SUB
0000309a: DIV
0000309b: ADD
0000309c: SWAP1
0000309d: DUP5
0000309e: DUP4
0000309f: GT
000030a0: SWAP1
000030a1: SUB
000030a2: MUL
000030a3: SWAP3
000030a4: SUB
000030a5: DIV
000030a6: OR
000030a7: MUL
000030a8: SWAP1
000030a9: JUMP
000030aa: JUMPDEST
000030ab: PUSH1 0x11
000030ad: PUSH1 0x03
000030af: DUP5
000030b0: ISZERO
000030b1: MUL
000030b2: XOR
000030b3: PUSH2 0x479e
000030b6: JUMP
000030b7: JUMPDEST
000030b8: POP
000030b9: POP
000030ba: SWAP1
000030bb: PUSH2 0x0836
000030be: SWAP3
000030bf: POP
000030c0: PUSH2 0x2e6d
000030c3: JUMP
000030c4: JUMPDEST
000030c5: PUSH2 0x30cc
000030c8: PUSH2 0x40be
000030cb: JUMP
000030cc: JUMPDEST
000030cd: ISZERO
000030ce: PUSH2 0x30d3
000030d1: JUMPI
000030d2: JUMP
000030d3: JUMPDEST
000030d4: PUSH4 0x0a62fbdb
000030d9: PUSH1 0xe1
000030db: SHL
000030dc: PUSH0
000030dd: MSTORE
000030de: PUSH1 0x04
000030e0: PUSH0
000030e1: REVERT
000030e2: JUMPDEST
000030e3: SWAP1
000030e4: DUP2
000030e5: PUSH1 0x60
000030e7: SWAP2
000030e8: SUB
000030e9: SLT
000030ea: PUSH2 0x0383
000030ed: JUMPI
000030ee: DUP1
000030ef: MLOAD
000030f0: SWAP2
000030f1: PUSH2 0x0836
000030f4: PUSH1 0x40
000030f6: PUSH1 0x20
000030f8: DUP5
000030f9: ADD
000030fa: MLOAD
000030fb: SWAP4
000030fc: ADD
000030fd: PUSH2 0x292d
00003100: JUMP
00003101: JUMPDEST
00003102: DUP2
00003103: DUP4
00003104: MSTORE
00003105: SWAP1
00003106: SWAP2
00003107: PUSH1 0x01
00003109: PUSH1 0x01
0000310b: PUSH1 0xfb
0000310d: SHL
0000310e: SUB
0000310f: DUP4
00003110: GT
00003111: PUSH2 0x0383
00003114: JUMPI
00003115: PUSH1 0x20
00003117: SWAP3
00003118: PUSH1 0x05
0000311a: SHL
0000311b: DUP1
0000311c: SWAP3
0000311d: DUP5
0000311e: DUP4
0000311f: ADD
00003120: CALLDATACOPY
00003121: ADD
00003122: ADD
00003123: SWAP1
00003124: JUMP
00003125: JUMPDEST
00003126: SWAP1
00003127: PUSH1 0x20
00003129: DUP3
0000312a: MSTORE
0000312b: DUP1
0000312c: CALLDATALOAD
0000312d: PUSH1 0x20
0000312f: DUP4
00003130: ADD
00003131: MSTORE
00003132: PUSH1 0x20
00003134: DUP2
00003135: ADD
00003136: CALLDATALOAD
00003137: DUP1
00003138: PUSH1 0x13
0000313a: SIGNEXTEND
0000313b: DUP1
0000313c: SWAP2
0000313d: SUB
0000313e: PUSH2 0x0383
00003141: JUMPI
00003142: PUSH1 0x40
00003144: DUP4
00003145: ADD
00003146: MSTORE
00003147: PUSH1 0x40
00003149: DUP2
0000314a: ADD
0000314b: CALLDATALOAD
0000314c: PUSH2 0x3154
0000314f: DUP2
00003150: PUSH2 0x0372
00003153: JUMP
00003154: JUMPDEST
00003155: PUSH1 0x01
00003157: PUSH1 0x01
00003159: PUSH1 0xa0
0000315b: SHL
0000315c: SUB
0000315d: AND
0000315e: PUSH1 0x60
00003160: DUP4
00003161: DUP2
00003162: ADD
00003163: SWAP2
00003164: SWAP1
00003165: SWAP2
00003166: MSTORE
00003167: DUP2
00003168: ADD
00003169: CALLDATALOAD
0000316a: CALLDATASIZE
0000316b: DUP3
0000316c: SWAP1
0000316d: SUB
0000316e: PUSH1 0x1e
00003170: NOT
00003171: ADD
00003172: DUP2
00003173: SLT
00003174: ISZERO
00003175: PUSH2 0x0383
00003178: JUMPI
00003179: ADD
0000317a: PUSH1 0x20
0000317c: DUP2
0000317d: CALLDATALOAD
0000317e: SWAP2
0000317f: ADD
00003180: SWAP1
00003181: PUSH1 0x01
00003183: PUSH1 0x01
00003185: PUSH1 0x40
00003187: SHL
00003188: SUB
00003189: DUP2
0000318a: GT
0000318b: PUSH2 0x0383
0000318e: JUMPI
0000318f: DUP1
00003190: PUSH1 0x05
00003192: SHL
00003193: CALLDATASIZE
00003194: SUB
00003195: DUP3
00003196: SGT
00003197: PUSH2 0x0383
0000319a: JUMPI
0000319b: PUSH1 0xa0
0000319d: DUP4
0000319e: PUSH1 0x80
000031a0: DUP1
000031a1: PUSH2 0x0836
000031a4: SWAP7
000031a5: ADD
000031a6: MSTORE
000031a7: ADD
000031a8: SWAP2
000031a9: PUSH2 0x3101
000031ac: JUMP
000031ad: JUMPDEST
000031ae: SWAP1
000031af: PUSH1 0x60
000031b1: PUSH2 0x31ce
000031b4: SWAP3
000031b5: PUSH1 0x40
000031b7: MLOAD
000031b8: DUP1
000031b9: SWAP5
000031ba: DUP2
000031bb: SWAP3
000031bc: PUSH4 0x25f56f11
000031c1: PUSH1 0xe0
000031c3: SHL
000031c4: DUP4
000031c5: MSTORE
000031c6: PUSH1 0x04
000031c8: DUP4
000031c9: ADD
000031ca: PUSH2 0x3125
000031cd: JUMP
000031ce: JUMPDEST
000031cf: SUB
000031d0: DUP2
000031d1: PUSH0
000031d2: PUSH32 0x0000000000000000000000006b5815467da09daa7dc83db21c9239d98bb487b5
000031f3: PUSH1 0x01
000031f5: PUSH1 0x01
000031f7: PUSH1 0xa0
000031f9: SHL
000031fa: SUB
000031fb: AND
000031fc: GAS
000031fd: CALL
000031fe: SWAP1
000031ff: DUP2
00003200: ISZERO
00003201: PUSH2 0x06ed
00003204: JUMPI
00003205: PUSH0
00003206: SWAP3
00003207: PUSH0
00003208: SWAP1
00003209: PUSH0
0000320a: SWAP4
0000320b: PUSH2 0x3307
0000320e: JUMPI
0000320f: JUMPDEST
00003210: POP
00003211: DUP3
00003212: DUP5
00003213: DUP2
00003214: ISZERO
00003215: PUSH2 0x3300
00003218: JUMPI
00003219: POP
0000321a: PUSH1 0x01
0000321c: PUSH1 0x01
0000321e: PUSH1 0xa0
00003220: SHL
00003221: SUB
00003222: SWAP1
00003223: POP
00003224: PUSH2 0x322b
00003227: PUSH2 0x26bc
0000322a: JUMP
0000322b: JUMPDEST
0000322c: AND
0000322d: PUSH32 0x00000000000000000000000048319f97e5da1233c21c48b80097c0fb7a20ff86
0000324e: PUSH1 0x01
00003250: PUSH1 0x01
00003252: PUSH1 0xa0
00003254: SHL
00003255: SUB
00003256: AND
00003257: DUP2
00003258: SUB
00003259: PUSH2 0x32aa
0000325c: JUMPI
0000325d: DUP2
0000325e: PUSH2 0x3266
00003261: JUMPI
00003262: JUMPDEST
00003263: POP
00003264: POP
00003265: JUMP
00003266: JUMPDEST
00003267: DUP1
00003268: EXTCODESIZE
00003269: ISZERO
0000326a: PUSH2 0x0383
0000326d: JUMPI
0000326e: PUSH1 0x40
00003270: MLOAD
00003271: PUSH4 0x6ee31931
00003276: PUSH1 0xe1
00003278: SHL
00003279: DUP2
0000327a: MSTORE
0000327b: PUSH1 0x04
0000327d: DUP2
0000327e: ADD
0000327f: SWAP3
00003280: SWAP1
00003281: SWAP3
00003282: MSTORE
00003283: PUSH0
00003284: SWAP1
00003285: DUP3
00003286: SWAP1
00003287: PUSH1 0x24
00003289: SWAP1
0000328a: DUP3
0000328b: SWAP1
0000328c: DUP5
0000328d: SWAP1
0000328e: GAS
0000328f: CALL
00003290: DUP1
00003291: ISZERO
00003292: PUSH2 0x06ed
00003295: JUMPI
00003296: PUSH2 0x329c
00003299: JUMPI
0000329a: POP
0000329b: JUMP
0000329c: JUMPDEST
0000329d: DUP1
0000329e: PUSH2 0x0c42
000032a1: PUSH0
000032a2: PUSH2 0x107a
000032a5: SWAP4
000032a6: PUSH2 0x104a
000032a9: JUMP
000032aa: JUMPDEST
000032ab: PUSH0
000032ac: SWAP3
000032ad: SWAP5
000032ae: SWAP2
000032af: POP
000032b0: PUSH1 0x20
000032b2: SWAP1
000032b3: PUSH1 0x04
000032b5: PUSH1 0x40
000032b7: MLOAD
000032b8: DUP1
000032b9: SWAP6
000032ba: DUP2
000032bb: SWAP4
000032bc: PUSH4 0x4641257d
000032c1: PUSH1 0xe0
000032c3: SHL
000032c4: DUP4
000032c5: MSTORE
000032c6: GAS
000032c7: CALL
000032c8: SWAP1
000032c9: DUP2
000032ca: ISZERO
000032cb: PUSH2 0x06ed
000032ce: JUMPI
000032cf: PUSH2 0x2a2f
000032d2: SWAP3
000032d3: PUSH0
000032d4: SWAP3
000032d5: PUSH2 0x32df
000032d8: JUMPI
000032d9: JUMPDEST
000032da: POP
000032db: PUSH2 0x25e8
000032de: JUMP
000032df: JUMPDEST
000032e0: PUSH2 0x32f9
000032e3: SWAP2
000032e4: SWAP3
000032e5: POP
000032e6: PUSH1 0x20
000032e8: RETURNDATASIZE
000032e9: PUSH1 0x20
000032eb: GT
000032ec: PUSH2 0x06e6
000032ef: JUMPI
000032f0: PUSH2 0x06d8
000032f3: DUP2
000032f4: DUP4
000032f5: PUSH2 0x104a
000032f8: JUMP
000032f9: JUMPDEST
000032fa: SWAP1
000032fb: PUSH0
000032fc: PUSH2 0x32d9
000032ff: JUMP
00003300: JUMPDEST
00003301: SWAP5
00003302: POP
00003303: SWAP3
00003304: POP
00003305: POP
00003306: JUMP
00003307: JUMPDEST
00003308: SWAP2
00003309: SWAP4
0000330a: POP
0000330b: POP
0000330c: PUSH2 0x332d
0000330f: SWAP2
00003310: POP
00003311: PUSH1 0x60
00003313: RETURNDATASIZE
00003314: PUSH1 0x60
00003316: GT
00003317: PUSH2 0x3336
0000331a: JUMPI
0000331b: JUMPDEST
0000331c: PUSH2 0x3325
0000331f: DUP2
00003320: DUP4
00003321: PUSH2 0x104a
00003324: JUMP
00003325: JUMPDEST
00003326: DUP2
00003327: ADD
00003328: SWAP1
00003329: PUSH2 0x30e2
0000332c: JUMP
0000332d: JUMPDEST
0000332e: SWAP2
0000332f: SWAP3
00003330: SWAP1
00003331: PUSH0
00003332: PUSH2 0x320f
00003335: JUMP
00003336: JUMPDEST
00003337: POP
00003338: RETURNDATASIZE
00003339: PUSH2 0x331b
0000333c: JUMP
0000333d: JUMPDEST
0000333e: PUSH1 0x01
00003340: PUSH1 0xff
00003342: SHL
00003343: DUP2
00003344: EQ
00003345: PUSH2 0x07c6
00003348: JUMPI
00003349: PUSH0
0000334a: SUB
0000334b: SWAP1
0000334c: JUMP
0000334d: JUMPDEST
0000334e: DUP1
0000334f: ISZERO
00003350: PUSH2 0x262c
00003353: JUMPI
00003354: PUSH2 0x3362
00003357: PUSH2 0x1d3c
0000335a: PUSH1 0x98
0000335c: SLOAD
0000335d: PUSH1 0x80
0000335f: SHR
00003360: SWAP1
00003361: JUMP
00003362: JUMPDEST
00003363: PUSH0
00003364: DUP3
00003365: SLT
00003366: PUSH2 0x3450
00003369: JUMPI
0000336a: DUP2
0000336b: PUSH2 0x3373
0000336e: SWAP2
0000336f: PUSH2 0x25db
00003372: JUMP
00003373: JUMPDEST
00003374: SWAP1
00003375: PUSH2 0x3380
00003378: PUSH2 0x0b6d
0000337b: DUP4
0000337c: PUSH2 0x4305
0000337f: JUMP
00003380: JUMPDEST
00003381: PUSH2 0x33a0
00003384: PUSH1 0x65
00003386: SLOAD
00003387: SWAP2
00003388: PUSH2 0xffff
0000338b: PUSH2 0x3399
0000338e: DUP5
0000338f: PUSH2 0xffff
00003392: SWAP1
00003393: PUSH1 0xa0
00003395: SHR
00003396: AND
00003397: SWAP1
00003398: JUMP
00003399: JUMPDEST
0000339a: AND
0000339b: SWAP1
0000339c: PUSH2 0x2f60
0000339f: JUMP
000033a0: JUMPDEST
000033a1: DUP1
000033a2: ISZERO
000033a3: PUSH2 0x344b
000033a6: JUMPI
000033a7: PUSH32 0x555ee6b2ef9506d870f386c067e47d3689435330b012ad263d8cc35318686547
000033c8: SWAP3
000033c9: DUP2
000033ca: PUSH2 0x33de
000033cd: PUSH2 0x1d3c
000033d0: PUSH1 0x98
000033d2: SLOAD
000033d3: PUSH1 0x01
000033d5: PUSH1 0x01
000033d7: PUSH1 0x80
000033d9: SHL
000033da: SUB
000033db: AND
000033dc: SWAP1
000033dd: JUMP
000033de: JUMPDEST
000033df: SWAP2
000033e0: DUP3
000033e1: PUSH2 0x342a
000033e4: JUMPI
000033e5: POP
000033e6: SWAP3
000033e7: PUSH2 0x3425
000033ea: SWAP2
000033eb: POP
000033ec: PUSH1 0x01
000033ee: PUSH1 0x01
000033f0: PUSH1 0xa0
000033f2: SHL
000033f3: SUB
000033f4: AND
000033f5: JUMPDEST
000033f6: SWAP2
000033f7: PUSH2 0x3400
000033fa: DUP5
000033fb: DUP5
000033fc: PUSH2 0x4382
000033ff: JUMP
00003400: JUMPDEST
00003401: PUSH1 0x40
00003403: MLOAD
00003404: SWAP4
00003405: DUP5
00003406: SWAP4
00003407: DUP5
00003408: PUSH1 0x40
0000340a: SWAP2
0000340b: SWAP5
0000340c: SWAP4
0000340d: SWAP3
0000340e: PUSH1 0x60
00003410: DUP3
00003411: ADD
00003412: SWAP6
00003413: PUSH1 0x01
00003415: DUP1
00003416: PUSH1 0xa0
00003418: SHL
00003419: SUB
0000341a: AND
0000341b: DUP3
0000341c: MSTORE
0000341d: PUSH1 0x20
0000341f: DUP3
00003420: ADD
00003421: MSTORE
00003422: ADD
00003423: MSTORE
00003424: JUMP
00003425: JUMPDEST
00003426: SUB
00003427: SWAP1
00003428: LOG1
00003429: JUMP
0000342a: JUMPDEST
0000342b: PUSH2 0x3425
0000342e: SWAP3
0000342f: PUSH2 0x33f5
00003432: SWAP3
00003433: PUSH2 0x343e
00003436: SWAP3
00003437: SUB
00003438: SWAP1
00003439: DUP6
0000343a: PUSH2 0x3039
0000343d: JUMP
0000343e: JUMPDEST
0000343f: SWAP4
00003440: PUSH1 0x01
00003442: PUSH1 0x01
00003444: PUSH1 0xa0
00003446: SHL
00003447: SUB
00003448: AND
00003449: SWAP1
0000344a: JUMP
0000344b: JUMPDEST
0000344c: POP
0000344d: POP
0000344e: POP
0000344f: JUMP
00003450: JUMPDEST
00003451: SWAP1
00003452: PUSH2 0x345a
00003455: SWAP1
00003456: PUSH2 0x333d
00003459: JUMP
0000345a: JUMPDEST
0000345b: PUSH2 0x346f
0000345e: PUSH2 0x1d3c
00003461: PUSH1 0x9e
00003463: SLOAD
00003464: PUSH1 0x01
00003466: PUSH1 0x01
00003468: PUSH1 0x80
0000346a: SHL
0000346b: SUB
0000346c: AND
0000346d: SWAP1
0000346e: JUMP
0000346f: JUMPDEST
00003470: DUP1
00003471: PUSH2 0x348f
00003474: JUMPI
00003475: JUMPDEST
00003476: POP
00003477: DUP1
00003478: PUSH2 0x347f
0000347b: JUMPI
0000347c: POP
0000347d: POP
0000347e: JUMP
0000347f: JUMPDEST
00003480: PUSH2 0x2f27
00003483: PUSH2 0x0b6d
00003486: SWAP2
00003487: PUSH2 0x107a
0000348a: SWAP4
0000348b: PUSH2 0x2964
0000348e: JUMP
0000348f: JUMPDEST
00003490: SWAP1
00003491: PUSH2 0x34f8
00003494: PUSH32 0x3623a54e8078be0d90ecfbef82da6a31ff3e6be8aa1718e7a7f3d0d33ff1d32a
000034b5: SWAP2
000034b6: PUSH2 0x1675
000034b9: PUSH2 0x34dc
000034bc: PUSH2 0x2f27
000034bf: PUSH2 0x34d2
000034c2: PUSH2 0x34cb
000034c5: DUP10
000034c6: DUP10
000034c7: PUSH2 0x25db
000034ca: JUMP
000034cb: JUMPDEST
000034cc: DUP9
000034cd: DUP7
000034ce: PUSH2 0x3039
000034d1: JUMP
000034d2: JUMPDEST
000034d3: DUP1
000034d4: DUP1
000034d5: SWAP6
000034d6: SUB
000034d7: SWAP8
000034d8: PUSH2 0x2964
000034db: JUMP
000034dc: JUMPDEST
000034dd: PUSH1 0x01
000034df: PUSH1 0x01
000034e1: PUSH1 0x80
000034e3: SHL
000034e4: SUB
000034e5: AND
000034e6: PUSH1 0x01
000034e8: PUSH1 0x01
000034ea: PUSH1 0x80
000034ec: SHL
000034ed: SUB
000034ee: NOT
000034ef: PUSH1 0x9e
000034f1: SLOAD
000034f2: AND
000034f3: OR
000034f4: PUSH1 0x9e
000034f6: SSTORE
000034f7: JUMP
000034f8: JUMPDEST
000034f9: SUB
000034fa: SWAP1
000034fb: LOG1
000034fc: PUSH0
000034fd: PUSH2 0x3475
00003500: JUMP
00003501: JUMPDEST
00003502: PUSH2 0x3546
00003505: PUSH32 0x0000000000000000000000002296e122c1a20fca3cac3371357bdad3be0df079
00003526: PUSH1 0x01
00003528: PUSH1 0x01
0000352a: PUSH1 0xa0
0000352c: SHL
0000352d: SUB
0000352e: AND
0000352f: BALANCE
00003530: SELFBALANCE
00003531: ADD
00003532: PUSH2 0x3540
00003535: PUSH2 0x1d3c
00003538: PUSH1 0x99
0000353a: SLOAD
0000353b: PUSH1 0x80
0000353d: SHR
0000353e: SWAP1
0000353f: JUMP
00003540: JUMPDEST
00003541: SWAP1
00003542: PUSH2 0x2964
00003545: JUMP
00003546: JUMPDEST
00003547: SWAP1
00003548: DUP2
00003549: ISZERO
0000354a: PUSH2 0x3722
0000354d: JUMPI
0000354e: PUSH1 0x9e
00003550: SLOAD
00003551: PUSH2 0x3562
00003554: PUSH1 0x01
00003556: PUSH1 0x01
00003558: PUSH1 0x80
0000355a: SHL
0000355b: SUB
0000355c: DUP3
0000355d: AND
0000355e: PUSH2 0x1d3c
00003561: JUMP
00003562: JUMPDEST
00003563: SWAP1
00003564: DUP2
00003565: PUSH2 0x368e
00003568: JUMPI
00003569: JUMPDEST
0000356a: POP
0000356b: POP
0000356c: PUSH2 0x3580
0000356f: PUSH2 0x1d3c
00003572: PUSH1 0x99
00003574: SLOAD
00003575: PUSH1 0x01
00003577: PUSH1 0x01
00003579: PUSH1 0x80
0000357b: SHL
0000357c: SUB
0000357d: AND
0000357e: SWAP1
0000357f: JUMP
00003580: JUMPDEST
00003581: SWAP2
00003582: DUP3
00003583: ISZERO
00003584: DUP1
00003585: ISZERO
00003586: PUSH2 0x3686
00003589: JUMPI
0000358a: JUMPDEST
0000358b: PUSH2 0x3680
0000358e: JUMPI
0000358f: PUSH2 0x359b
00003592: SWAP1
00003593: PUSH2 0x21ef
00003596: DUP5
00003597: PUSH2 0x2597
0000359a: JUMP
0000359b: JUMPDEST
0000359c: DUP1
0000359d: ISZERO
0000359e: PUSH2 0x3680
000035a1: JUMPI
000035a2: PUSH2 0x35aa
000035a5: DUP2
000035a6: PUSH2 0x45b9
000035a9: JUMP
000035aa: JUMPDEST
000035ab: SWAP3
000035ac: DUP4
000035ad: ISZERO
000035ae: PUSH2 0x3679
000035b1: JUMPI
000035b2: PUSH2 0x0b62
000035b5: PUSH2 0x107a
000035b8: SWAP3
000035b9: PUSH2 0x35e7
000035bc: PUSH2 0x35cb
000035bf: PUSH2 0x2f27
000035c2: DUP9
000035c3: PUSH2 0x0b6d
000035c6: SWAP7
000035c7: PUSH2 0x2964
000035ca: JUMP
000035cb: JUMPDEST
000035cc: PUSH1 0x01
000035ce: PUSH1 0x01
000035d0: PUSH1 0x80
000035d2: SHL
000035d3: SUB
000035d4: AND
000035d5: PUSH1 0x01
000035d7: PUSH1 0x01
000035d9: PUSH1 0x80
000035db: SHL
000035dc: SUB
000035dd: NOT
000035de: PUSH1 0x99
000035e0: SLOAD
000035e1: AND
000035e2: OR
000035e3: PUSH1 0x99
000035e5: SSTORE
000035e6: JUMP
000035e7: JUMPDEST
000035e8: PUSH2 0x3601
000035eb: PUSH2 0x1b77
000035ee: PUSH2 0x35f6
000035f1: DUP4
000035f2: PUSH2 0x4305
000035f5: JUMP
000035f6: JUMPDEST
000035f7: PUSH1 0x99
000035f9: SLOAD
000035fa: PUSH1 0x80
000035fc: SHR
000035fd: PUSH2 0x2dd4
00003600: JUMP
00003601: JUMPDEST
00003602: PUSH2 0x360b
00003605: DUP2
00003606: DUP8
00003607: PUSH2 0x4802
0000360a: JUMP
0000360b: JUMPDEST
0000360c: PUSH1 0x40
0000360e: DUP1
0000360f: MLOAD
00003610: DUP8
00003611: DUP2
00003612: MSTORE
00003613: PUSH1 0x20
00003615: DUP2
00003616: ADD
00003617: DUP4
00003618: SWAP1
00003619: MSTORE
0000361a: PUSH32 0x624ea167e477f9d39f7f4094b9dfe2e6346eb4a7aada54338db51abd554c4b9f
0000363b: SWAP2
0000363c: SWAP1
0000363d: LOG1
0000363e: PUSH2 0x2f27
00003641: PUSH2 0x365d
00003644: PUSH2 0x364c
00003647: DUP9
00003648: PUSH2 0x4305
0000364b: JUMP
0000364c: JUMPDEST
0000364d: PUSH1 0x98
0000364f: SLOAD
00003650: PUSH1 0x01
00003652: PUSH1 0x01
00003654: PUSH1 0x80
00003656: SHL
00003657: SUB
00003658: AND
00003659: PUSH2 0x2545
0000365c: JUMP
0000365d: JUMPDEST
0000365e: PUSH1 0x01
00003660: PUSH1 0x01
00003662: PUSH1 0x80
00003664: SHL
00003665: SUB
00003666: AND
00003667: PUSH1 0x01
00003669: PUSH1 0x01
0000366b: PUSH1 0x80
0000366d: SHL
0000366e: SUB
0000366f: NOT
00003670: PUSH1 0x98
00003672: SLOAD
00003673: AND
00003674: OR
00003675: PUSH1 0x98
00003677: SSTORE
00003678: JUMP
00003679: JUMPDEST
0000367a: POP
0000367b: PUSH0
0000367c: SWAP3
0000367d: POP
0000367e: POP
0000367f: JUMP
00003680: JUMPDEST
00003681: POP
00003682: PUSH0
00003683: SWAP2
00003684: POP
00003685: JUMP
00003686: JUMPDEST
00003687: POP
00003688: DUP1
00003689: ISZERO
0000368a: PUSH2 0x358a
0000368d: JUMP
0000368e: JUMPDEST
0000368f: DUP2
00003690: DUP5
00003691: SWAP3
00003692: SWAP5
00003693: LT
00003694: PUSH2 0x3679
00003697: JUMPI
00003698: PUSH2 0x35f6
0000369b: DUP5
0000369c: PUSH2 0x36f2
0000369f: SWAP4
000036a0: PUSH32 0x624ea167e477f9d39f7f4094b9dfe2e6346eb4a7aada54338db51abd554c4b9f
000036c1: DUP3
000036c2: PUSH2 0x36d1
000036c5: PUSH2 0x1d3c
000036c8: PUSH2 0x1b77
000036cb: SWAP8
000036cc: PUSH1 0x80
000036ce: SHR
000036cf: SWAP1
000036d0: JUMP
000036d1: JUMPDEST
000036d2: PUSH2 0x36db
000036d5: DUP3
000036d6: DUP3
000036d7: PUSH2 0x4802
000036da: JUMP
000036db: JUMPDEST
000036dc: PUSH1 0x40
000036de: DUP1
000036df: MLOAD
000036e0: SWAP2
000036e1: DUP3
000036e2: MSTORE
000036e3: PUSH1 0x20
000036e5: DUP3
000036e6: ADD
000036e7: SWAP3
000036e8: SWAP1
000036e9: SWAP3
000036ea: MSTORE
000036eb: LOG1
000036ec: SUB
000036ed: SWAP5
000036ee: PUSH2 0x4305
000036f1: JUMP
000036f2: JUMPDEST
000036f3: PUSH2 0x3706
000036f6: PUSH1 0x01
000036f8: PUSH1 0x01
000036fa: PUSH1 0x80
000036fc: SHL
000036fd: SUB
000036fe: PUSH1 0x9e
00003700: SLOAD
00003701: AND
00003702: PUSH1 0x9e
00003704: SSTORE
00003705: JUMP
00003706: JUMPDEST
00003707: PUSH2 0x371b
0000370a: PUSH1 0x01
0000370c: PUSH1 0x01
0000370e: PUSH1 0x80
00003710: SHL
00003711: SUB
00003712: NOT
00003713: PUSH1 0x9e
00003715: SLOAD
00003716: AND
00003717: PUSH1 0x9e
00003719: SSTORE
0000371a: JUMP
0000371b: JUMPDEST
0000371c: PUSH0
0000371d: DUP1
0000371e: PUSH2 0x3569
00003721: JUMP
00003722: JUMPDEST
00003723: PUSH0
00003724: SWAP2
00003725: POP
00003726: JUMP
00003727: JUMPDEST
00003728: SWAP3
00003729: SWAP2
0000372a: PUSH2 0x3731
0000372d: PUSH2 0x30c4
00003730: JUMP
00003731: JUMPDEST
00003732: PUSH2 0x3739
00003735: PUSH2 0x41a2
00003738: JUMP
00003739: JUMPDEST
0000373a: PUSH1 0x01
0000373c: PUSH1 0x01
0000373e: PUSH1 0xa0
00003740: SHL
00003741: SUB
00003742: DUP5
00003743: AND
00003744: PUSH0
00003745: SWAP1
00003746: DUP2
00003747: MSTORE
00003748: PUSH2 0x0137
0000374b: PUSH1 0x20
0000374d: MSTORE
0000374e: PUSH1 0x40
00003750: SWAP1
00003751: KECCAK256
00003752: PUSH2 0x375a
00003755: SWAP1
00003756: PUSH2 0x250c
00003759: JUMP
0000375a: JUMPDEST
0000375b: SWAP1
0000375c: PUSH1 0x01
0000375e: PUSH1 0x01
00003760: PUSH1 0x80
00003762: SHL
00003763: SUB
00003764: PUSH2 0x3774
00003767: DUP4
00003768: MLOAD
00003769: PUSH1 0x01
0000376b: PUSH1 0x01
0000376d: PUSH1 0x80
0000376f: SHL
00003770: SUB
00003771: AND
00003772: SWAP1
00003773: JUMP
00003774: JUMPDEST
00003775: AND
00003776: ISZERO
00003777: PUSH2 0x3943
0000377a: JUMPI
0000377b: PUSH2 0x3783
0000377e: DUP3
0000377f: PUSH2 0x2e7c
00003782: JUMP
00003783: JUMPDEST
00003784: PUSH1 0x01
00003786: PUSH1 0x01
00003788: PUSH1 0xa0
0000378a: SHL
0000378b: SUB
0000378c: DUP6
0000378d: AND
0000378e: PUSH0
0000378f: SWAP1
00003790: DUP2
00003791: MSTORE
00003792: PUSH1 0x9c
00003794: PUSH1 0x20
00003796: MSTORE
00003797: PUSH1 0x40
00003799: SWAP1
0000379a: KECCAK256
0000379b: PUSH2 0x37ac
0000379e: SWAP1
0000379f: PUSH2 0x37a7
000037a2: SWAP1
000037a3: PUSH2 0x09d2
000037a6: JUMP
000037a7: JUMPDEST
000037a8: PUSH2 0x4493
000037ab: JUMP
000037ac: JUMPDEST
000037ad: SWAP5
000037ae: PUSH0
000037af: NOT
000037b0: DUP3
000037b1: EQ
000037b2: PUSH2 0x3914
000037b5: JUMPI
000037b6: JUMPDEST
000037b7: PUSH1 0x40
000037b9: MLOAD
000037ba: PUSH4 0x29460cc5
000037bf: PUSH1 0xe1
000037c1: SHL
000037c2: DUP2
000037c3: MSTORE
000037c4: PUSH1 0x01
000037c6: PUSH1 0x01
000037c8: PUSH1 0xa0
000037ca: SHL
000037cb: SUB
000037cc: DUP6
000037cd: AND
000037ce: PUSH1 0x04
000037d0: DUP3
000037d1: ADD
000037d2: MSTORE
000037d3: PUSH1 0x24
000037d5: DUP2
000037d6: ADD
000037d7: DUP4
000037d8: SWAP1
000037d9: MSTORE
000037da: SWAP2
000037db: PUSH1 0x20
000037dd: DUP4
000037de: DUP1
000037df: PUSH1 0x44
000037e1: DUP2
000037e2: ADD
000037e3: SUB
000037e4: DUP2
000037e5: PUSH0
000037e6: PUSH32 0x0000000000000000000000002a261e60fb14586b474c208b1b7ac6d0f5000306
00003807: PUSH1 0x01
00003809: PUSH1 0x01
0000380b: PUSH1 0xa0
0000380d: SHL
0000380e: SUB
0000380f: AND
00003810: GAS
00003811: CALL
00003812: SWAP3
00003813: DUP4
00003814: ISZERO
00003815: PUSH2 0x06ed
00003818: JUMPI
00003819: PUSH0
0000381a: SWAP4
0000381b: PUSH2 0x38f3
0000381e: JUMPI
0000381f: JUMPDEST
00003820: POP
00003821: DUP3
00003822: SWAP7
00003823: PUSH2 0x384e
00003826: PUSH2 0x3841
00003829: PUSH2 0x3831
0000382c: DUP5
0000382d: PUSH2 0x4305
00003830: JUMP
00003831: JUMPDEST
00003832: DUP8
00003833: MLOAD
00003834: PUSH1 0x01
00003836: PUSH1 0x01
00003838: PUSH1 0x80
0000383a: SHL
0000383b: SUB
0000383c: AND
0000383d: PUSH2 0x2dd4
00003840: JUMP
00003841: JUMPDEST
00003842: PUSH1 0x01
00003844: PUSH1 0x01
00003846: PUSH1 0x80
00003848: SHL
00003849: SUB
0000384a: AND
0000384b: DUP7
0000384c: MSTORE
0000384d: JUMP
0000384e: JUMPDEST
0000384f: PUSH2 0x3862
00003852: PUSH2 0x1d3c
00003855: DUP7
00003856: MLOAD
00003857: PUSH1 0x01
00003859: PUSH1 0x01
0000385b: PUSH1 0x80
0000385d: SHL
0000385e: SUB
0000385f: AND
00003860: SWAP1
00003861: JUMP
00003862: JUMPDEST
00003863: GT
00003864: PUSH2 0x38e4
00003867: JUMPI
00003868: PUSH1 0x01
0000386a: PUSH1 0x01
0000386c: PUSH1 0xa0
0000386e: SHL
0000386f: SUB
00003870: DUP3
00003871: AND
00003872: PUSH0
00003873: SWAP1
00003874: DUP2
00003875: MSTORE
00003876: PUSH2 0x0137
00003879: PUSH1 0x20
0000387b: MSTORE
0000387c: PUSH1 0x40
0000387e: DUP2
0000387f: KECCAK256
00003880: PUSH32 0xa16d97739893e1436c9753925fb5cef174c4f368699dc86cc8fdb0e6e60f8e58
000038a1: SWAP6
000038a2: PUSH2 0x38df
000038a5: SWAP4
000038a6: SWAP2
000038a7: PUSH2 0x38b0
000038aa: SWAP2
000038ab: SWAP1
000038ac: PUSH2 0x2565
000038af: JUMP
000038b0: JUMPDEST
000038b1: PUSH1 0x40
000038b3: DUP1
000038b4: MLOAD
000038b5: PUSH1 0x01
000038b7: PUSH1 0x01
000038b9: PUSH1 0xa0
000038bb: SHL
000038bc: SUB
000038bd: SWAP9
000038be: DUP10
000038bf: AND
000038c0: DUP2
000038c1: MSTORE
000038c2: PUSH1 0x20
000038c4: DUP2
000038c5: ADD
000038c6: SWAP7
000038c7: SWAP1
000038c8: SWAP7
000038c9: MSTORE
000038ca: DUP6
000038cb: ADD
000038cc: MSTORE
000038cd: DUP6
000038ce: AND
000038cf: PUSH1 0x60
000038d1: DUP5
000038d2: ADD
000038d3: MSTORE
000038d4: SWAP4
000038d5: AND
000038d6: SWAP3
000038d7: DUP2
000038d8: SWAP1
000038d9: PUSH1 0x80
000038db: DUP3
000038dc: ADD
000038dd: SWAP1
000038de: JUMP
000038df: JUMPDEST
000038e0: SUB
000038e1: SWAP1
000038e2: LOG2
000038e3: JUMP
000038e4: JUMPDEST
000038e5: PUSH4 0x3684c659
000038ea: PUSH1 0xe0
000038ec: SHL
000038ed: PUSH0
000038ee: MSTORE
000038ef: PUSH1 0x04
000038f1: PUSH0
000038f2: REVERT
000038f3: JUMPDEST
000038f4: PUSH2 0x390d
000038f7: SWAP2
000038f8: SWAP4
000038f9: POP
000038fa: PUSH1 0x20
000038fc: RETURNDATASIZE
000038fd: PUSH1 0x20
000038ff: GT
00003900: PUSH2 0x06e6
00003903: JUMPI
00003904: PUSH2 0x06d8
00003907: DUP2
00003908: DUP4
00003909: PUSH2 0x104a
0000390c: JUMP
0000390d: JUMPDEST
0000390e: SWAP2
0000390f: PUSH0
00003910: PUSH2 0x381f
00003913: JUMP
00003914: JUMPDEST
00003915: SWAP1
00003916: POP
00003917: PUSH2 0x392a
0000391a: PUSH2 0x1d3c
0000391d: DUP4
0000391e: MLOAD
0000391f: PUSH1 0x01
00003921: PUSH1 0x01
00003923: PUSH1 0x80
00003925: SHL
00003926: SUB
00003927: AND
00003928: SWAP1
00003929: JUMP
0000392a: JUMPDEST
0000392b: DUP1
0000392c: DUP7
0000392d: GT
0000392e: ISZERO
0000392f: PUSH2 0x393a
00003932: JUMPI
00003933: DUP6
00003934: SUB
00003935: SWAP1
00003936: PUSH2 0x37b6
00003939: JUMP
0000393a: JUMPDEST
0000393b: POP
0000393c: PUSH0
0000393d: SWAP5
0000393e: POP
0000393f: POP
00003940: POP
00003941: POP
00003942: JUMP
00003943: JUMPDEST
00003944: PUSH1 0x40
00003946: MLOAD
00003947: PUSH4 0x752a536d
0000394c: PUSH1 0xe0
0000394e: SHL
0000394f: DUP2
00003950: MSTORE
00003951: PUSH1 0x20
00003953: DUP2
00003954: PUSH1 0x04
00003956: DUP2
00003957: PUSH32 0x0000000000000000000000002a261e60fb14586b474c208b1b7ac6d0f5000306
00003978: PUSH1 0x01
0000397a: PUSH1 0x01
0000397c: PUSH1 0xa0
0000397e: SHL
0000397f: SUB
00003980: AND
00003981: GAS
00003982: STATICCALL
00003983: SWAP1
00003984: DUP2
00003985: ISZERO
00003986: PUSH2 0x06ed
00003989: JUMPI
0000398a: PUSH2 0x39ae
0000398d: SWAP2
0000398e: PUSH2 0x399e
00003991: SWAP2
00003992: PUSH0
00003993: SWAP2
00003994: PUSH2 0x39b3
00003997: JUMPI
00003998: JUMPDEST
00003999: POP
0000399a: PUSH2 0x4305
0000399d: JUMP
0000399e: JUMPDEST
0000399f: PUSH1 0x01
000039a1: PUSH1 0x01
000039a3: PUSH1 0x80
000039a5: SHL
000039a6: SUB
000039a7: AND
000039a8: PUSH1 0x20
000039aa: DUP5
000039ab: ADD
000039ac: MSTORE
000039ad: JUMP
000039ae: JUMPDEST
000039af: PUSH2 0x3783
000039b2: JUMP
000039b3: JUMPDEST
000039b4: PUSH2 0x39cc
000039b7: SWAP2
000039b8: POP
000039b9: PUSH1 0x20
000039bb: RETURNDATASIZE
000039bc: PUSH1 0x20
000039be: GT
000039bf: PUSH2 0x06e6
000039c2: JUMPI
000039c3: PUSH2 0x06d8
000039c6: DUP2
000039c7: DUP4
000039c8: PUSH2 0x104a
000039cb: JUMP
000039cc: JUMPDEST
000039cd: PUSH0
000039ce: PUSH2 0x3998
000039d1: JUMP
000039d2: JUMPDEST
000039d3: SWAP4
000039d4: SWAP3
000039d5: SWAP2
000039d6: SWAP1
000039d7: SWAP2
000039d8: PUSH2 0x39df
000039db: PUSH2 0x30c4
000039de: JUMP
000039df: JUMPDEST
000039e0: PUSH2 0x39e7
000039e3: PUSH2 0x41a2
000039e6: JUMP
000039e7: JUMPDEST
000039e8: PUSH1 0x01
000039ea: PUSH1 0x01
000039ec: PUSH1 0xa0
000039ee: SHL
000039ef: SUB
000039f0: DUP6
000039f1: AND
000039f2: PUSH0
000039f3: SWAP1
000039f4: DUP2
000039f5: MSTORE
000039f6: PUSH2 0x0137
000039f9: PUSH1 0x20
000039fb: MSTORE
000039fc: PUSH1 0x40
000039fe: SWAP1
000039ff: KECCAK256
00003a00: PUSH2 0x3a08
00003a03: SWAP1
00003a04: PUSH2 0x250c
00003a07: JUMP
00003a08: JUMPDEST
00003a09: SWAP5
00003a0a: PUSH1 0x01
00003a0c: PUSH1 0x01
00003a0e: PUSH1 0x80
00003a10: SHL
00003a11: SUB
00003a12: PUSH2 0x3a22
00003a15: DUP8
00003a16: MLOAD
00003a17: PUSH1 0x01
00003a19: PUSH1 0x01
00003a1b: PUSH1 0x80
00003a1d: SHL
00003a1e: SUB
00003a1f: AND
00003a20: SWAP1
00003a21: JUMP
00003a22: JUMPDEST
00003a23: AND
00003a24: ISZERO
00003a25: PUSH2 0x3ba5
00003a28: JUMPI
00003a29: PUSH2 0x3a31
00003a2c: DUP7
00003a2d: PUSH2 0x2e7c
00003a30: JUMP
00003a31: JUMPDEST
00003a32: PUSH1 0x01
00003a34: PUSH1 0x01
00003a36: PUSH1 0xa0
00003a38: SHL
00003a39: SUB
00003a3a: DUP2
00003a3b: AND
00003a3c: PUSH0
00003a3d: SWAP1
00003a3e: DUP2
00003a3f: MSTORE
00003a40: PUSH1 0x9c
00003a42: PUSH1 0x20
00003a44: MSTORE
00003a45: PUSH1 0x40
00003a47: SWAP1
00003a48: KECCAK256
00003a49: PUSH2 0x3a55
00003a4c: SWAP1
00003a4d: PUSH2 0x37a7
00003a50: SWAP1
00003a51: PUSH2 0x09d2
00003a54: JUMP
00003a55: JUMPDEST
00003a56: SWAP6
00003a57: PUSH0
00003a58: NOT
00003a59: DUP5
00003a5a: EQ
00003a5b: PUSH2 0x3b75
00003a5e: JUMPI
00003a5f: JUMPDEST
00003a60: PUSH1 0x40
00003a62: MLOAD
00003a63: PUSH4 0x29460cc5
00003a68: PUSH1 0xe1
00003a6a: SHL
00003a6b: DUP2
00003a6c: MSTORE
00003a6d: PUSH1 0x01
00003a6f: PUSH1 0x01
00003a71: PUSH1 0xa0
00003a73: SHL
00003a74: SUB
00003a75: DUP7
00003a76: AND
00003a77: PUSH1 0x04
00003a79: DUP3
00003a7a: ADD
00003a7b: MSTORE
00003a7c: PUSH1 0x24
00003a7e: DUP2
00003a7f: ADD
00003a80: DUP6
00003a81: SWAP1
00003a82: MSTORE
00003a83: SWAP3
00003a84: PUSH1 0x20
00003a86: DUP5
00003a87: DUP1
00003a88: PUSH1 0x44
00003a8a: DUP2
00003a8b: ADD
00003a8c: SUB
00003a8d: DUP2
00003a8e: PUSH0
00003a8f: PUSH32 0x0000000000000000000000002a261e60fb14586b474c208b1b7ac6d0f5000306
00003ab0: PUSH1 0x01
00003ab2: PUSH1 0x01
00003ab4: PUSH1 0xa0
00003ab6: SHL
00003ab7: SUB
00003ab8: AND
00003ab9: GAS
00003aba: CALL
00003abb: SWAP4
00003abc: DUP5
00003abd: ISZERO
00003abe: PUSH2 0x06ed
00003ac1: JUMPI
00003ac2: PUSH0
00003ac3: SWAP5
00003ac4: PUSH2 0x3b54
00003ac7: JUMPI
00003ac8: JUMPDEST
00003ac9: POP
00003aca: DUP4
00003acb: SWAP8
00003acc: PUSH2 0x3af7
00003acf: PUSH2 0x3aea
00003ad2: PUSH2 0x3ada
00003ad5: DUP9
00003ad6: PUSH2 0x4305
00003ad9: JUMP
00003ada: JUMPDEST
00003adb: DUP6
00003adc: MLOAD
00003add: PUSH1 0x01
00003adf: PUSH1 0x01
00003ae1: PUSH1 0x80
00003ae3: SHL
00003ae4: SUB
00003ae5: AND
00003ae6: PUSH2 0x2dd4
00003ae9: JUMP
00003aea: JUMPDEST
00003aeb: PUSH1 0x01
00003aed: PUSH1 0x01
00003aef: PUSH1 0x80
00003af1: SHL
00003af2: SUB
00003af3: AND
00003af4: DUP5
00003af5: MSTORE
00003af6: JUMP
00003af7: JUMPDEST
00003af8: PUSH2 0x3b0b
00003afb: PUSH2 0x1d3c
00003afe: DUP5
00003aff: MLOAD
00003b00: PUSH1 0x01
00003b02: PUSH1 0x01
00003b04: PUSH1 0x80
00003b06: SHL
00003b07: SUB
00003b08: AND
00003b09: SWAP1
00003b0a: JUMP
00003b0b: JUMPDEST
00003b0c: GT
00003b0d: PUSH2 0x38e4
00003b10: JUMPI
00003b11: PUSH32 0xa16d97739893e1436c9753925fb5cef174c4f368699dc86cc8fdb0e6e60f8e58
00003b32: SWAP5
00003b33: PUSH2 0x38b0
00003b36: PUSH2 0x38df
00003b39: SWAP4
00003b3a: PUSH2 0x0658
00003b3d: DUP7
00003b3e: PUSH1 0x01
00003b40: DUP1
00003b41: PUSH1 0xa0
00003b43: SHL
00003b44: SUB
00003b45: AND
00003b46: PUSH0
00003b47: MSTORE
00003b48: PUSH2 0x0137
00003b4b: PUSH1 0x20
00003b4d: MSTORE
00003b4e: PUSH1 0x40
00003b50: PUSH0
00003b51: KECCAK256
00003b52: SWAP1
00003b53: JUMP
00003b54: JUMPDEST
00003b55: PUSH2 0x3b6e
00003b58: SWAP2
00003b59: SWAP5
00003b5a: POP
00003b5b: PUSH1 0x20
00003b5d: RETURNDATASIZE
00003b5e: PUSH1 0x20
00003b60: GT
00003b61: PUSH2 0x06e6
00003b64: JUMPI
00003b65: PUSH2 0x06d8
00003b68: DUP2
00003b69: DUP4
00003b6a: PUSH2 0x104a
00003b6d: JUMP
00003b6e: JUMPDEST
00003b6f: SWAP3
00003b70: PUSH0
00003b71: PUSH2 0x3ac8
00003b74: JUMP
00003b75: JUMPDEST
00003b76: SWAP3
00003b77: POP
00003b78: PUSH2 0x3b8b
00003b7b: PUSH2 0x1d3c
00003b7e: DUP5
00003b7f: MLOAD
00003b80: PUSH1 0x01
00003b82: PUSH1 0x01
00003b84: PUSH1 0x80
00003b86: SHL
00003b87: SUB
00003b88: AND
00003b89: SWAP1
00003b8a: JUMP
00003b8b: JUMPDEST
00003b8c: DUP1
00003b8d: DUP8
00003b8e: GT
00003b8f: ISZERO
00003b90: PUSH2 0x3b9b
00003b93: JUMPI
00003b94: DUP7
00003b95: SUB
00003b96: SWAP3
00003b97: PUSH2 0x3a5f
00003b9a: JUMP
00003b9b: JUMPDEST
00003b9c: POP
00003b9d: PUSH0
00003b9e: SWAP6
00003b9f: POP
00003ba0: POP
00003ba1: POP
00003ba2: POP
00003ba3: POP
00003ba4: JUMP
00003ba5: JUMPDEST
00003ba6: PUSH1 0x40
00003ba8: MLOAD
00003ba9: PUSH4 0x752a536d
00003bae: PUSH1 0xe0
00003bb0: SHL
00003bb1: DUP2
00003bb2: MSTORE
00003bb3: PUSH1 0x20
00003bb5: DUP2
00003bb6: PUSH1 0x04
00003bb8: DUP2
00003bb9: PUSH32 0x0000000000000000000000002a261e60fb14586b474c208b1b7ac6d0f5000306
00003bda: PUSH1 0x01
00003bdc: PUSH1 0x01
00003bde: PUSH1 0xa0
00003be0: SHL
00003be1: SUB
00003be2: AND
00003be3: GAS
00003be4: STATICCALL
00003be5: SWAP1
00003be6: DUP2
00003be7: ISZERO
00003be8: PUSH2 0x06ed
00003beb: JUMPI
00003bec: PUSH2 0x3c0f
00003bef: SWAP2
00003bf0: PUSH2 0x3bff
00003bf3: SWAP2
00003bf4: PUSH0
00003bf5: SWAP2
00003bf6: PUSH2 0x39b3
00003bf9: JUMPI
00003bfa: POP
00003bfb: PUSH2 0x4305
00003bfe: JUMP
00003bff: JUMPDEST
00003c00: PUSH1 0x01
00003c02: PUSH1 0x01
00003c04: PUSH1 0x80
00003c06: SHL
00003c07: SUB
00003c08: AND
00003c09: PUSH1 0x20
00003c0b: DUP9
00003c0c: ADD
00003c0d: MSTORE
00003c0e: JUMP
00003c0f: JUMPDEST
00003c10: PUSH2 0x3a31
00003c13: JUMP
00003c14: JUMPDEST
00003c15: SWAP3
00003c16: SWAP1
00003c17: PUSH1 0x01
00003c19: PUSH1 0x01
00003c1b: PUSH1 0xa0
00003c1d: SHL
00003c1e: SUB
00003c1f: DUP2
00003c20: AND
00003c21: ISZERO
00003c22: PUSH2 0x0c4e
00003c25: JUMPI
00003c26: PUSH2 0x3c2d
00003c29: PUSH2 0x41a2
00003c2c: JUMP
00003c2d: JUMPDEST
00003c2e: PUSH32 0x0000000000000000000000002a261e60fb14586b474c208b1b7ac6d0f5000306
00003c4f: PUSH1 0x01
00003c51: PUSH1 0x01
00003c53: PUSH1 0xa0
00003c55: SHL
00003c56: SUB
00003c57: DUP2
00003c58: AND
00003c59: SWAP2
00003c5a: DUP3
00003c5b: EXTCODESIZE
00003c5c: ISZERO
00003c5d: PUSH2 0x0383
00003c60: JUMPI
00003c61: PUSH1 0x40
00003c63: MLOAD
00003c64: PUSH4 0x1d8557d7
00003c69: PUSH1 0xe0
00003c6b: SHL
00003c6c: DUP2
00003c6d: MSTORE
00003c6e: PUSH0
00003c6f: DUP2
00003c70: PUSH1 0x04
00003c72: DUP2
00003c73: DUP4
00003c74: DUP9
00003c75: GAS
00003c76: CALL
00003c77: DUP1
00003c78: ISZERO
00003c79: PUSH2 0x06ed
00003c7c: JUMPI
00003c7d: PUSH2 0x3e66
00003c80: JUMPI
00003c81: JUMPDEST
00003c82: POP
00003c83: PUSH1 0x01
00003c85: PUSH1 0x01
00003c87: PUSH1 0xa0
00003c89: SHL
00003c8a: SUB
00003c8b: DUP7
00003c8c: AND
00003c8d: PUSH0
00003c8e: SWAP1
00003c8f: DUP2
00003c90: MSTORE
00003c91: PUSH2 0x0137
00003c94: PUSH1 0x20
00003c96: MSTORE
00003c97: PUSH1 0x40
00003c99: SWAP1
00003c9a: KECCAK256
00003c9b: PUSH2 0x3ca3
00003c9e: SWAP1
00003c9f: PUSH2 0x250c
00003ca2: JUMP
00003ca3: JUMPDEST
00003ca4: SWAP5
00003ca5: PUSH1 0x01
00003ca7: PUSH1 0x01
00003ca9: PUSH1 0x80
00003cab: SHL
00003cac: SUB
00003cad: PUSH2 0x3cbd
00003cb0: DUP8
00003cb1: MLOAD
00003cb2: PUSH1 0x01
00003cb4: PUSH1 0x01
00003cb6: PUSH1 0x80
00003cb8: SHL
00003cb9: SUB
00003cba: AND
00003cbb: SWAP1
00003cbc: JUMP
00003cbd: JUMPDEST
00003cbe: AND
00003cbf: ISZERO
00003cc0: PUSH2 0x06af
00003cc3: JUMPI
00003cc4: PUSH2 0x3ccc
00003cc7: DUP7
00003cc8: PUSH2 0x2e7c
00003ccb: JUMP
00003ccc: JUMPDEST
00003ccd: PUSH2 0x3ce2
00003cd0: PUSH1 0x20
00003cd2: PUSH2 0x0973
00003cd5: DUP9
00003cd6: MLOAD
00003cd7: PUSH1 0x01
00003cd9: PUSH1 0x01
00003cdb: PUSH1 0x80
00003cdd: SHL
00003cde: SUB
00003cdf: AND
00003ce0: SWAP1
00003ce1: JUMP
00003ce2: JUMPDEST
00003ce3: SUB
00003ce4: DUP2
00003ce5: DUP9
00003ce6: GAS
00003ce7: STATICCALL
00003ce8: DUP1
00003ce9: ISZERO
00003cea: PUSH2 0x06ed
00003ced: JUMPI
00003cee: PUSH2 0x3d4b
00003cf1: SWAP5
00003cf2: PUSH1 0x20
00003cf4: SWAP3
00003cf5: PUSH0
00003cf6: SWAP3
00003cf7: PUSH2 0x3e47
00003cfa: JUMPI
00003cfb: JUMPDEST
00003cfc: POP
00003cfd: PUSH1 0x01
00003cff: PUSH1 0x01
00003d01: PUSH1 0xa0
00003d03: SHL
00003d04: SUB
00003d05: DUP11
00003d06: AND
00003d07: PUSH0
00003d08: SWAP1
00003d09: DUP2
00003d0a: MSTORE
00003d0b: PUSH1 0x9c
00003d0d: PUSH1 0x20
00003d0f: MSTORE
00003d10: PUSH1 0x40
00003d12: SWAP1
00003d13: KECCAK256
00003d14: PUSH2 0x3d1c
00003d17: SWAP1
00003d18: PUSH2 0x09d2
00003d1b: JUMP
00003d1c: JUMPDEST
00003d1d: PUSH2 0x3d24
00003d20: PUSH2 0x2654
00003d23: JUMP
00003d24: JUMPDEST
00003d25: SWAP1
00003d26: PUSH2 0x3d2d
00003d29: PUSH2 0x106b
00003d2c: JUMP
00003d2d: JUMPDEST
00003d2e: SWAP4
00003d2f: DUP5
00003d30: MSTORE
00003d31: DUP5
00003d32: DUP5
00003d33: ADD
00003d34: MSTORE
00003d35: PUSH1 0x40
00003d37: DUP4
00003d38: ADD
00003d39: DUP6
00003d3a: SWAP1
00003d3b: MSTORE
00003d3c: PUSH1 0x60
00003d3e: DUP4
00003d3f: ADD
00003d40: MSTORE
00003d41: PUSH0
00003d42: PUSH1 0x80
00003d44: DUP4
00003d45: ADD
00003d46: MSTORE
00003d47: PUSH2 0x0a04
00003d4a: JUMP
00003d4b: JUMPDEST
00003d4c: SUB
00003d4d: DUP2
00003d4e: PUSH20 0xb3ce222b28fda660c1375246a179d2acce4a0f74
00003d63: GAS
00003d64: DELEGATECALL
00003d65: SWAP3
00003d66: DUP4
00003d67: ISZERO
00003d68: PUSH2 0x06ed
00003d6b: JUMPI
00003d6c: PUSH0
00003d6d: SWAP4
00003d6e: PUSH2 0x3e26
00003d71: JUMPI
00003d72: JUMPDEST
00003d73: POP
00003d74: PUSH1 0x40
00003d76: MLOAD
00003d77: PUSH4 0x3b9e9f01
00003d7c: PUSH1 0xe2
00003d7e: SHL
00003d7f: DUP2
00003d80: MSTORE
00003d81: CALLER
00003d82: PUSH1 0x04
00003d84: DUP3
00003d85: ADD
00003d86: MSTORE
00003d87: PUSH1 0x24
00003d89: DUP2
00003d8a: ADD
00003d8b: DUP3
00003d8c: SWAP1
00003d8d: MSTORE
00003d8e: SWAP3
00003d8f: SWAP6
00003d90: SWAP3
00003d91: SWAP4
00003d92: DUP7
00003d93: SWAP4
00003d94: SWAP1
00003d95: PUSH1 0x20
00003d97: SWAP1
00003d98: DUP7
00003d99: SWAP1
00003d9a: PUSH1 0x44
00003d9c: SWAP1
00003d9d: DUP3
00003d9e: SWAP1
00003d9f: PUSH0
00003da0: SWAP1
00003da1: GAS
00003da2: CALL
00003da3: SWAP2
00003da4: DUP3
00003da5: ISZERO
00003da6: PUSH2 0x06ed
00003da9: JUMPI
00003daa: PUSH2 0x0637
00003dad: PUSH2 0x0b19
00003db0: PUSH2 0x3dc5
00003db3: SWAP3
00003db4: PUSH2 0x107a
00003db7: SWAP9
00003db8: PUSH2 0x3de2
00003dbb: SWAP7
00003dbc: PUSH2 0x3e09
00003dbf: JUMPI
00003dc0: POP
00003dc1: PUSH2 0x4305
00003dc4: JUMP
00003dc5: JUMPDEST
00003dc6: PUSH1 0x01
00003dc8: PUSH1 0x01
00003dca: PUSH1 0xa0
00003dcc: SHL
00003dcd: SUB
00003dce: DUP9
00003dcf: AND
00003dd0: PUSH0
00003dd1: SWAP1
00003dd2: DUP2
00003dd3: MSTORE
00003dd4: PUSH2 0x0137
00003dd7: PUSH1 0x20
00003dd9: MSTORE
00003dda: PUSH1 0x40
00003ddc: SWAP1
00003ddd: KECCAK256
00003dde: PUSH2 0x2565
00003de1: JUMP
00003de2: JUMPDEST
00003de3: PUSH2 0x3e04
00003de6: PUSH2 0x3dee
00003de9: DUP4
00003dea: PUSH2 0x45b9
00003ded: JUMP
00003dee: JUMPDEST
00003def: DUP1
00003df0: SWAP8
00003df1: PUSH2 0x3dff
00003df4: PUSH2 0x0b6d
00003df7: PUSH2 0x0b62
00003dfa: DUP8
00003dfb: PUSH2 0x4305
00003dfe: JUMP
00003dff: JUMPDEST
00003e00: PUSH2 0x48bb
00003e03: JUMP
00003e04: JUMPDEST
00003e05: PUSH2 0x412d
00003e08: JUMP
00003e09: JUMPDEST
00003e0a: PUSH2 0x3e21
00003e0d: SWAP1
00003e0e: PUSH1 0x20
00003e10: RETURNDATASIZE
00003e11: PUSH1 0x20
00003e13: GT
00003e14: PUSH2 0x06e6
00003e17: JUMPI
00003e18: PUSH2 0x06d8
00003e1b: DUP2
00003e1c: DUP4
00003e1d: PUSH2 0x104a
00003e20: JUMP
00003e21: JUMPDEST
00003e22: PUSH2 0x3998
00003e25: JUMP
00003e26: JUMPDEST
00003e27: PUSH2 0x3e40
00003e2a: SWAP2
00003e2b: SWAP4
00003e2c: POP
00003e2d: PUSH1 0x20
00003e2f: RETURNDATASIZE
00003e30: PUSH1 0x20
00003e32: GT
00003e33: PUSH2 0x06e6
00003e36: JUMPI
00003e37: PUSH2 0x06d8
00003e3a: DUP2
00003e3b: DUP4
00003e3c: PUSH2 0x104a
00003e3f: JUMP
00003e40: JUMPDEST
00003e41: SWAP2
00003e42: PUSH0
00003e43: PUSH2 0x3d72
00003e46: JUMP
00003e47: JUMPDEST
00003e48: PUSH2 0x3e5f
00003e4b: SWAP2
00003e4c: SWAP3
00003e4d: POP
00003e4e: DUP4
00003e4f: RETURNDATASIZE
00003e50: DUP6
00003e51: GT
00003e52: PUSH2 0x06e6
00003e55: JUMPI
00003e56: PUSH2 0x06d8
00003e59: DUP2
00003e5a: DUP4
00003e5b: PUSH2 0x104a
00003e5e: JUMP
00003e5f: JUMPDEST
00003e60: SWAP1
00003e61: PUSH0
00003e62: PUSH2 0x3cfb
00003e65: JUMP
00003e66: JUMPDEST
00003e67: DUP1
00003e68: PUSH2 0x0c42
00003e6b: PUSH0
00003e6c: PUSH2 0x3e74
00003e6f: SWAP4
00003e70: PUSH2 0x104a
00003e73: JUMP
00003e74: JUMPDEST
00003e75: PUSH0
00003e76: PUSH2 0x3c81
00003e79: JUMP
00003e7a: JUMPDEST
00003e7b: PUSH1 0x9a
00003e7d: SLOAD
00003e7e: DUP1
00003e7f: PUSH2 0x3e87
00003e82: JUMPI
00003e83: POP
00003e84: PUSH0
00003e85: SWAP1
00003e86: JUMP
00003e87: JUMPDEST
00003e88: PUSH1 0x9a
00003e8a: PUSH0
00003e8b: MSTORE
00003e8c: PUSH32 0x44da158ba27f9252712a74ff6a55c5d531f69609f1f6e7f17c4443a8e2089be3
00003ead: ADD
00003eae: SLOAD
00003eaf: PUSH1 0x01
00003eb1: PUSH1 0x01
00003eb3: PUSH1 0xa0
00003eb5: SHL
00003eb6: SUB
00003eb7: AND
00003eb8: PUSH2 0x0366
00003ebb: JUMP
00003ebc: JUMPDEST
00003ebd: DUP1
00003ebe: SLOAD
00003ebf: SWAP1
00003ec0: DUP2
00003ec1: PUSH2 0x3ecb
00003ec4: JUMPI
00003ec5: POP
00003ec6: PUSH0
00003ec7: SWAP2
00003ec8: SWAP1
00003ec9: POP
00003eca: JUMP
00003ecb: JUMPDEST
00003ecc: PUSH0
00003ecd: SWAP1
00003ece: DUP2
00003ecf: MSTORE
00003ed0: PUSH1 0x20
00003ed2: SWAP1
00003ed3: KECCAK256
00003ed4: ADD
00003ed5: PUSH0
00003ed6: NOT
00003ed7: ADD
00003ed8: SLOAD
00003ed9: PUSH1 0x01
00003edb: PUSH1 0x01
00003edd: PUSH1 0xa0
00003edf: SHL
00003ee0: SUB
00003ee1: AND
00003ee2: PUSH2 0x0366
00003ee5: JUMP
00003ee6: JUMPDEST
00003ee7: PUSH1 0x01
00003ee9: PUSH1 0x01
00003eeb: PUSH1 0xa0
00003eed: SHL
00003eee: SUB
00003eef: PUSH32 0x000000000000000000000000f113bfd6423291b1dd2ca76f897bff54456e7c88
00003f10: AND
00003f11: ADDRESS
00003f12: DUP2
00003f13: EQ
00003f14: SWAP1
00003f15: DUP2
00003f16: ISZERO
00003f17: PUSH2 0x3f22
00003f1a: JUMPI
00003f1b: JUMPDEST
00003f1c: POP
00003f1d: PUSH2 0x13ab
00003f20: JUMPI
00003f21: JUMP
00003f22: JUMPDEST
00003f23: PUSH0
00003f24: DUP1
00003f25: MLOAD
00003f26: PUSH1 0x20
00003f28: PUSH2 0x4e53
00003f2b: DUP4
00003f2c: CODECOPY
00003f2d: DUP2
00003f2e: MLOAD
00003f2f: SWAP2
00003f30: MSTORE
00003f31: SLOAD
00003f32: PUSH1 0x01
00003f34: PUSH1 0x01
00003f36: PUSH1 0xa0
00003f38: SHL
00003f39: SUB
00003f3a: AND
00003f3b: EQ
00003f3c: ISZERO
00003f3d: SWAP1
00003f3e: POP
00003f3f: PUSH0
00003f40: PUSH2 0x3f1b
00003f43: JUMP
00003f44: JUMPDEST
00003f45: PUSH1 0x02
00003f47: PUSH0
00003f48: DUP1
00003f49: MLOAD
00003f4a: PUSH1 0x20
00003f4c: PUSH2 0x4e73
00003f4f: DUP4
00003f50: CODECOPY
00003f51: DUP2
00003f52: MLOAD
00003f53: SWAP2
00003f54: MSTORE
00003f55: SLOAD
00003f56: EQ
00003f57: PUSH2 0x3f6d
00003f5a: JUMPI
00003f5b: PUSH1 0x02
00003f5d: PUSH0
00003f5e: DUP1
00003f5f: MLOAD
00003f60: PUSH1 0x20
00003f62: PUSH2 0x4e73
00003f65: DUP4
00003f66: CODECOPY
00003f67: DUP2
00003f68: MLOAD
00003f69: SWAP2
00003f6a: MSTORE
00003f6b: SSTORE
00003f6c: JUMP
00003f6d: JUMPDEST
00003f6e: PUSH4 0x3ee5aeb5
00003f73: PUSH1 0xe0
00003f75: SHL
00003f76: PUSH0
00003f77: MSTORE
00003f78: PUSH1 0x04
00003f7a: PUSH0
00003f7b: REVERT
00003f7c: JUMPDEST
00003f7d: SWAP6
00003f7e: SWAP4
00003f7f: SWAP2
00003f80: SWAP3
00003f81: PUSH2 0x3faf
00003f84: SWAP4
00003f85: PUSH2 0x0836
00003f88: SWAP9
00003f89: SWAP7
00003f8a: SWAP3
00003f8b: DUP9
00003f8c: MSTORE
00003f8d: PUSH1 0x20
00003f8f: DUP9
00003f90: ADD
00003f91: MSTORE
00003f92: PUSH1 0x01
00003f94: DUP1
00003f95: PUSH1 0xa0
00003f97: SHL
00003f98: SUB
00003f99: AND
00003f9a: PUSH1 0x40
00003f9c: DUP8
00003f9d: ADD
00003f9e: MSTORE
00003f9f: PUSH1 0xa0
00003fa1: PUSH1 0x60
00003fa3: DUP8
00003fa4: ADD
00003fa5: MSTORE
00003fa6: PUSH1 0xa0
00003fa8: DUP7
00003fa9: ADD
00003faa: SWAP2
00003fab: PUSH2 0x2895
00003fae: JUMP
00003faf: JUMPDEST
00003fb0: SWAP3
00003fb1: PUSH1 0x80
00003fb3: DUP2
00003fb4: DUP6
00003fb5: SUB
00003fb6: SWAP2
00003fb7: ADD
00003fb8: MSTORE
00003fb9: PUSH2 0x2895
00003fbc: JUMP
00003fbd: JUMPDEST
00003fbe: PUSH1 0xd2
00003fc0: SLOAD
00003fc1: PUSH1 0x01
00003fc3: PUSH1 0x01
00003fc5: PUSH1 0xa0
00003fc7: SHL
00003fc8: SUB
00003fc9: AND
00003fca: SWAP4
00003fcb: SWAP1
00003fcc: SWAP3
00003fcd: SWAP2
00003fce: DUP5
00003fcf: DUP1
00003fd0: ISZERO
00003fd1: DUP1
00003fd2: ISZERO
00003fd3: PUSH2 0x40b6
00003fd6: JUMPI
00003fd7: JUMPDEST
00003fd8: PUSH2 0x40ab
00003fdb: JUMPI
00003fdc: DUP7
00003fdd: ISZERO
00003fde: PUSH2 0x409f
00003fe1: JUMPI
00003fe2: POP
00003fe3: SWAP5
00003fe4: PUSH2 0x4034
00003fe7: SWAP2
00003fe8: PUSH1 0x20
00003fea: SWAP6
00003feb: SWAP7
00003fec: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001
0000400d: CHAINID
0000400e: EQ
0000400f: PUSH0
00004010: EQ
00004011: PUSH2 0x4091
00004014: JUMPI
00004015: PUSH1 0xd3
00004017: SLOAD
00004018: SWAP6
00004019: JUMPDEST
0000401a: PUSH1 0x40
0000401c: MLOAD
0000401d: PUSH4 0x0b1192e1
00004022: PUSH1 0xe1
00004024: SHL
00004025: DUP2
00004026: MSTORE
00004027: SWAP9
00004028: DUP10
00004029: SWAP8
0000402a: DUP9
0000402b: SWAP8
0000402c: PUSH1 0x04
0000402e: DUP10
0000402f: ADD
00004030: PUSH2 0x3f7c
00004033: JUMP
00004034: JUMPDEST
00004035: SUB
00004036: DUP2
00004037: PUSH20 0x2319ace2793561520fb600da1c4b09a660a4adb5
0000404c: GAS
0000404d: DELEGATECALL
0000404e: SWAP1
0000404f: DUP2
00004050: ISZERO
00004051: PUSH2 0x06ed
00004054: JUMPI
00004055: PUSH0
00004056: SWAP2
00004057: PUSH2 0x4072
0000405a: JUMPI
0000405b: JUMPDEST
0000405c: POP
0000405d: DUP1
0000405e: PUSH2 0x4064
00004061: JUMPI
00004062: SWAP1
00004063: JUMP
00004064: JUMPDEST
00004065: PUSH2 0x0836
00004068: PUSH1 0x01
0000406a: PUSH1 0xd5
0000406c: SLOAD
0000406d: ADD
0000406e: PUSH1 0xd5
00004070: SSTORE
00004071: JUMP
00004072: JUMPDEST
00004073: PUSH2 0x408b
00004076: SWAP2
00004077: POP
00004078: PUSH1 0x20
0000407a: RETURNDATASIZE
0000407b: PUSH1 0x20
0000407d: GT
0000407e: PUSH2 0x124a
00004081: JUMPI
00004082: PUSH2 0x123c
00004085: DUP2
00004086: DUP4
00004087: PUSH2 0x104a
0000408a: JUMP
0000408b: JUMPDEST
0000408c: PUSH0
0000408d: PUSH2 0x405b
00004090: JUMP
00004091: JUMPDEST
00004092: PUSH2 0x4099
00004095: PUSH2 0x4a51
00004098: JUMP
00004099: JUMPDEST
0000409a: SWAP6
0000409b: PUSH2 0x4019
0000409e: JUMP
0000409f: JUMPDEST
000040a0: SWAP6
000040a1: POP
000040a2: POP
000040a3: POP
000040a4: POP
000040a5: POP
000040a6: POP
000040a7: CALLER
000040a8: EQ
000040a9: SWAP1
000040aa: JUMP
000040ab: JUMPDEST
000040ac: POP
000040ad: POP
000040ae: POP
000040af: POP
000040b0: POP
000040b1: POP
000040b2: POP
000040b3: PUSH0
000040b4: SWAP1
000040b5: JUMP
000040b6: JUMPDEST
000040b7: POP
000040b8: DUP2
000040b9: ISZERO
000040ba: PUSH2 0x3fd7
000040bd: JUMP
000040be: JUMPDEST
000040bf: PUSH1 0x40
000040c1: MLOAD
000040c2: PUSH4 0x0156a695
000040c7: PUSH1 0xe1
000040c9: SHL
000040ca: DUP2
000040cb: MSTORE
000040cc: ADDRESS
000040cd: PUSH1 0x04
000040cf: DUP3
000040d0: ADD
000040d1: MSTORE
000040d2: PUSH1 0x20
000040d4: DUP2
000040d5: PUSH1 0x24
000040d7: DUP2
000040d8: PUSH32 0x0000000000000000000000006b5815467da09daa7dc83db21c9239d98bb487b5
000040f9: PUSH1 0x01
000040fb: PUSH1 0x01
000040fd: PUSH1 0xa0
000040ff: SHL
00004100: SUB
00004101: AND
00004102: GAS
00004103: STATICCALL
00004104: SWAP1
00004105: DUP2
00004106: ISZERO
00004107: PUSH2 0x06ed
0000410a: JUMPI
0000410b: PUSH0
0000410c: SWAP2
0000410d: PUSH2 0x4114
00004110: JUMPI
00004111: POP
00004112: SWAP1
00004113: JUMP
00004114: JUMPDEST
00004115: PUSH2 0x0836
00004118: SWAP2
00004119: POP
0000411a: PUSH1 0x20
0000411c: RETURNDATASIZE
0000411d: PUSH1 0x20
0000411f: GT
00004120: PUSH2 0x124a
00004123: JUMPI
00004124: PUSH2 0x123c
00004127: DUP2
00004128: DUP4
00004129: PUSH2 0x104a
0000412c: JUMP
0000412d: JUMPDEST
0000412e: SELFBALANCE
0000412f: DUP3
00004130: GT
00004131: PUSH2 0x4195
00004134: JUMPI
00004135: JUMPDEST
00004136: PUSH2 0x413d
00004139: PUSH2 0x3f44
0000413c: JUMP
0000413d: JUMPDEST
0000413e: DUP2
0000413f: SELFBALANCE
00004140: LT
00004141: PUSH2 0x417e
00004144: JUMPI
00004145: PUSH0
00004146: SWAP2
00004147: DUP3
00004148: SWAP2
00004149: DUP3
0000414a: SWAP2
0000414b: DUP3
0000414c: SWAP2
0000414d: PUSH1 0x01
0000414f: PUSH1 0x01
00004151: PUSH1 0xa0
00004153: SHL
00004154: SUB
00004155: AND
00004156: GAS
00004157: CALL
00004158: PUSH2 0x415f
0000415b: PUSH2 0x4336
0000415e: JUMP
0000415f: JUMPDEST
00004160: SWAP1
00004161: ISZERO
00004162: PUSH2 0x4179
00004165: JUMPI
00004166: POP
00004167: PUSH1 0x01
00004169: PUSH0
0000416a: DUP1
0000416b: MLOAD
0000416c: PUSH1 0x20
0000416e: PUSH2 0x4e73
00004171: DUP4
00004172: CODECOPY
00004173: DUP2
00004174: MLOAD
00004175: SWAP2
00004176: MSTORE
00004177: SSTORE
00004178: JUMP
00004179: JUMPDEST
0000417a: PUSH2 0x4e34
0000417d: JUMP
0000417e: JUMPDEST
0000417f: POP
00004180: SELFBALANCE
00004181: PUSH4 0xcf479181
00004186: PUSH1 0xe0
00004188: SHL
00004189: PUSH0
0000418a: MSTORE
0000418b: PUSH1 0x04
0000418d: MSTORE
0000418e: PUSH1 0x24
00004190: MSTORE
00004191: PUSH1 0x44
00004193: PUSH0
00004194: REVERT
00004195: JUMPDEST
00004196: PUSH2 0x419d
00004199: PUSH2 0x4ab8
0000419c: JUMP
0000419d: JUMPDEST
0000419e: PUSH2 0x4135
000041a1: JUMP
000041a2: JUMPDEST
000041a3: PUSH1 0x40
000041a5: MLOAD
000041a6: PUSH4 0x3eb1acf7
000041ab: PUSH1 0xe1
000041ad: SHL
000041ae: DUP2
000041af: MSTORE
000041b0: ADDRESS
000041b1: PUSH1 0x04
000041b3: DUP3
000041b4: ADD
000041b5: MSTORE
000041b6: PUSH1 0x20
000041b8: DUP2
000041b9: PUSH1 0x24
000041bb: DUP2
000041bc: PUSH32 0x0000000000000000000000006b5815467da09daa7dc83db21c9239d98bb487b5
000041dd: PUSH1 0x01
000041df: PUSH1 0x01
000041e1: PUSH1 0xa0
000041e3: SHL
000041e4: SUB
000041e5: AND
000041e6: GAS
000041e7: STATICCALL
000041e8: SWAP1
000041e9: DUP2
000041ea: ISZERO
000041eb: PUSH2 0x06ed
000041ee: JUMPI
000041ef: PUSH0
000041f0: SWAP2
000041f1: PUSH2 0x420b
000041f4: JUMPI
000041f5: JUMPDEST
000041f6: POP
000041f7: PUSH2 0x41fc
000041fa: JUMPI
000041fb: JUMP
000041fc: JUMPDEST
000041fd: PUSH4 0xe7757151
00004202: PUSH1 0xe0
00004204: SHL
00004205: PUSH0
00004206: MSTORE
00004207: PUSH1 0x04
00004209: PUSH0
0000420a: REVERT
0000420b: JUMPDEST
0000420c: PUSH2 0x4224
0000420f: SWAP2
00004210: POP
00004211: PUSH1 0x20
00004213: RETURNDATASIZE
00004214: PUSH1 0x20
00004216: GT
00004217: PUSH2 0x124a
0000421a: JUMPI
0000421b: PUSH2 0x123c
0000421e: DUP2
0000421f: DUP4
00004220: PUSH2 0x104a
00004223: JUMP
00004224: JUMPDEST
00004225: PUSH0
00004226: PUSH2 0x41f5
00004229: JUMP
0000422a: JUMPDEST
0000422b: PUSH2 0x4232
0000422e: PUSH2 0x4ab8
00004231: JUMP
00004232: JUMPDEST
00004233: DUP1
00004234: MLOAD
00004235: PUSH2 0x423c
00004238: PUSH2 0x2654
0000423b: JUMP
0000423c: JUMPDEST
0000423d: PUSH0
0000423e: SWAP3
0000423f: PUSH32 0x00000000000000000000000000000000219ab540356cbb839cbe05303d7705fa
00004260: PUSH1 0x01
00004262: PUSH1 0x01
00004264: PUSH1 0xa0
00004266: SHL
00004267: SUB
00004268: AND
00004269: SWAP2
0000426a: JUMPDEST
0000426b: DUP4
0000426c: DUP6
0000426d: LT
0000426e: PUSH2 0x4278
00004271: JUMPI
00004272: POP
00004273: POP
00004274: POP
00004275: POP
00004276: POP
00004277: JUMP
00004278: JUMPDEST
00004279: PUSH2 0x4282
0000427c: DUP6
0000427d: DUP4
0000427e: PUSH2 0x2d2d
00004281: JUMP
00004282: JUMPDEST
00004283: MLOAD
00004284: SWAP1
00004285: PUSH1 0x80
00004287: DUP3
00004288: ADD
00004289: SWAP1
0000428a: DUP2
0000428b: MLOAD
0000428c: SWAP3
0000428d: DUP1
0000428e: MLOAD
0000428f: SWAP1
00004290: PUSH1 0x40
00004292: DUP2
00004293: ADD
00004294: MLOAD
00004295: SWAP5
00004296: PUSH1 0x60
00004298: PUSH1 0x20
0000429a: DUP4
0000429b: ADD
0000429c: MLOAD
0000429d: SWAP3
0000429e: ADD
0000429f: MLOAD
000042a0: SWAP6
000042a1: DUP9
000042a2: EXTCODESIZE
000042a3: ISZERO
000042a4: PUSH2 0x0383
000042a7: JUMPI
000042a8: PUSH0
000042a9: SWAP4
000042aa: PUSH2 0x42c9
000042ad: PUSH1 0x40
000042af: MLOAD
000042b0: SWAP9
000042b1: DUP10
000042b2: SWAP6
000042b3: DUP7
000042b4: SWAP5
000042b5: DUP6
000042b6: SWAP5
000042b7: PUSH4 0x04512a23
000042bc: PUSH1 0xe3
000042be: SHL
000042bf: DUP7
000042c0: MSTORE
000042c1: PUSH1 0x04
000042c3: DUP7
000042c4: ADD
000042c5: PUSH2 0x4b30
000042c8: JUMP
000042c9: JUMPDEST
000042ca: SUB
000042cb: SWAP2
000042cc: DUP10
000042cd: GAS
000042ce: CALL
000042cf: SWAP2
000042d0: DUP3
000042d1: ISZERO
000042d2: PUSH2 0x06ed
000042d5: JUMPI
000042d6: PUSH1 0x01
000042d8: SWAP4
000042d9: PUSH2 0x42e9
000042dc: SWAP4
000042dd: PUSH2 0x42f1
000042e0: JUMPI
000042e1: JUMPDEST
000042e2: POP
000042e3: MLOAD
000042e4: SWAP1
000042e5: PUSH2 0x2964
000042e8: JUMP
000042e9: JUMPDEST
000042ea: SWAP5
000042eb: ADD
000042ec: SWAP4
000042ed: PUSH2 0x426a
000042f0: JUMP
000042f1: JUMPDEST
000042f2: DUP1
000042f3: PUSH2 0x0c42
000042f6: PUSH0
000042f7: PUSH2 0x42ff
000042fa: SWAP4
000042fb: PUSH2 0x104a
000042fe: JUMP
000042ff: JUMPDEST
00004300: PUSH0
00004301: PUSH2 0x42e1
00004304: JUMP
00004305: JUMPDEST
00004306: PUSH1 0x01
00004308: PUSH1 0x01
0000430a: PUSH1 0x80
0000430c: SHL
0000430d: SUB
0000430e: DUP2
0000430f: GT
00004310: PUSH2 0x431f
00004313: JUMPI
00004314: PUSH1 0x01
00004316: PUSH1 0x01
00004318: PUSH1 0x80
0000431a: SHL
0000431b: SUB
0000431c: AND
0000431d: SWAP1
0000431e: JUMP
0000431f: JUMPDEST
00004320: PUSH4 0x06dfcc65
00004325: PUSH1 0xe4
00004327: SHL
00004328: PUSH0
00004329: MSTORE
0000432a: PUSH1 0x80
0000432c: PUSH1 0x04
0000432e: MSTORE
0000432f: PUSH1 0x24
00004331: MSTORE
00004332: PUSH1 0x44
00004334: PUSH0
00004335: REVERT
00004336: JUMPDEST
00004337: RETURNDATASIZE
00004338: ISZERO
00004339: PUSH2 0x4360
0000433c: JUMPI
0000433d: RETURNDATASIZE
0000433e: SWAP1
0000433f: PUSH2 0x4347
00004342: DUP3
00004343: PUSH2 0x108b
00004346: JUMP
00004347: JUMPDEST
00004348: SWAP2
00004349: PUSH2 0x4355
0000434c: PUSH1 0x40
0000434e: MLOAD
0000434f: SWAP4
00004350: DUP5
00004351: PUSH2 0x104a
00004354: JUMP
00004355: JUMPDEST
00004356: DUP3
00004357: MSTORE
00004358: RETURNDATASIZE
00004359: PUSH0
0000435a: PUSH1 0x20
0000435c: DUP5
0000435d: ADD
0000435e: RETURNDATACOPY
0000435f: JUMP
00004360: JUMPDEST
00004361: PUSH1 0x60
00004363: SWAP1
00004364: JUMP
00004365: JUMPDEST
00004366: PUSH0
00004367: DUP1
00004368: PUSH2 0x0836
0000436b: SWAP4
0000436c: PUSH1 0x20
0000436e: DUP2
0000436f: MLOAD
00004370: SWAP2
00004371: ADD
00004372: DUP5
00004373: GAS
00004374: DELEGATECALL
00004375: PUSH2 0x437c
00004378: PUSH2 0x4336
0000437b: JUMP
0000437c: JUMPDEST
0000437d: SWAP2
0000437e: PUSH2 0x4d8a
00004381: JUMP
00004382: JUMPDEST
00004383: PUSH2 0x438b
00004386: DUP3
00004387: PUSH2 0x4305
0000438a: JUMP
0000438b: JUMPDEST
0000438c: PUSH1 0x01
0000438e: PUSH1 0x01
00004390: PUSH1 0x80
00004392: SHL
00004393: SUB
00004394: PUSH2 0x43a2
00004397: PUSH1 0x98
00004399: SLOAD
0000439a: SWAP3
0000439b: DUP3
0000439c: DUP5
0000439d: AND
0000439e: PUSH2 0x2dd4
000043a1: JUMP
000043a2: JUMPDEST
000043a3: AND
000043a4: SWAP1
000043a5: PUSH1 0x01
000043a7: PUSH1 0x01
000043a9: PUSH1 0x80
000043ab: SHL
000043ac: SUB
000043ad: NOT
000043ae: AND
000043af: OR
000043b0: PUSH1 0x98
000043b2: SSTORE
000043b3: PUSH1 0x01
000043b5: DUP1
000043b6: PUSH1 0xa0
000043b8: SHL
000043b9: SUB
000043ba: AND
000043bb: PUSH0
000043bc: MSTORE
000043bd: PUSH1 0x9c
000043bf: PUSH1 0x20
000043c1: MSTORE
000043c2: PUSH1 0x40
000043c4: PUSH0
000043c5: KECCAK256
000043c6: SWAP1
000043c7: DUP2
000043c8: SLOAD
000043c9: ADD
000043ca: SWAP1
000043cb: SSTORE
000043cc: JUMP
000043cd: JUMPDEST
000043ce: PUSH1 0x01
000043d0: PUSH1 0x01
000043d2: PUSH1 0xa0
000043d4: SHL
000043d5: SUB
000043d6: DUP2
000043d7: AND
000043d8: PUSH0
000043d9: SWAP1
000043da: DUP2
000043db: MSTORE
000043dc: PUSH1 0x9c
000043de: PUSH1 0x20
000043e0: MSTORE
000043e1: PUSH1 0x40
000043e3: SWAP1
000043e4: KECCAK256
000043e5: SLOAD
000043e6: PUSH2 0x43ee
000043e9: SWAP1
000043ea: PUSH2 0x2597
000043ed: JUMP
000043ee: JUMPDEST
000043ef: SWAP1
000043f0: DUP2
000043f1: ISZERO
000043f2: PUSH2 0x26b6
000043f5: JUMPI
000043f6: PUSH1 0x01
000043f8: PUSH1 0x01
000043fa: PUSH1 0x80
000043fc: SHL
000043fd: SUB
000043fe: PUSH2 0x4409
00004401: PUSH2 0x4410
00004404: SWAP3
00004405: PUSH2 0x2845
00004408: JUMP
00004409: JUMPDEST
0000440a: AND
0000440b: SWAP2
0000440c: PUSH2 0x4493
0000440f: JUMP
00004410: JUMPDEST
00004411: SWAP1
00004412: DUP2
00004413: DUP2
00004414: LT
00004415: ISZERO
00004416: PUSH2 0x26b6
00004419: JUMPI
0000441a: DUP2
0000441b: SUB
0000441c: SWAP1
0000441d: DUP2
0000441e: GT
0000441f: PUSH2 0x07c6
00004422: JUMPI
00004423: SWAP1
00004424: JUMP
00004425: JUMPDEST
00004426: MLOAD
00004427: SWAP1
00004428: PUSH1 0x01
0000442a: PUSH1 0x01
0000442c: PUSH1 0x40
0000442e: SHL
0000442f: SUB
00004430: DUP3
00004431: AND
00004432: DUP3
00004433: SUB
00004434: PUSH2 0x0383
00004437: JUMPI
00004438: JUMP
00004439: JUMPDEST
0000443a: SWAP1
0000443b: DUP2
0000443c: PUSH1 0x60
0000443e: SWAP2
0000443f: SUB
00004440: SLT
00004441: PUSH2 0x0383
00004444: JUMPI
00004445: PUSH1 0x40
00004447: MLOAD
00004448: SWAP1
00004449: PUSH1 0x60
0000444b: DUP3
0000444c: ADD
0000444d: DUP3
0000444e: DUP2
0000444f: LT
00004450: PUSH1 0x01
00004452: PUSH1 0x01
00004454: PUSH1 0x40
00004456: SHL
00004457: SUB
00004458: DUP3
00004459: GT
0000445a: OR
0000445b: PUSH2 0x1045
0000445e: JUMPI
0000445f: PUSH2 0x448b
00004462: SWAP2
00004463: PUSH1 0x40
00004465: SWAP2
00004466: DUP3
00004467: MSTORE
00004468: DUP1
00004469: MLOAD
0000446a: PUSH2 0x4472
0000446d: DUP2
0000446e: PUSH2 0x0540
00004471: JUMP
00004472: JUMPDEST
00004473: DUP5
00004474: MSTORE
00004475: PUSH2 0x4480
00004478: PUSH1 0x20
0000447a: DUP3
0000447b: ADD
0000447c: PUSH2 0x4425
0000447f: JUMP
00004480: JUMPDEST
00004481: PUSH1 0x20
00004483: DUP6
00004484: ADD
00004485: MSTORE
00004486: ADD
00004487: PUSH2 0x4425
0000448a: JUMP
0000448b: JUMPDEST
0000448c: PUSH1 0x40
0000448e: DUP3
0000448f: ADD
00004490: MSTORE
00004491: SWAP1
00004492: JUMP
00004493: JUMPDEST
00004494: PUSH1 0x40
00004496: MLOAD
00004497: PUSH4 0xe48a5f7b
0000449c: PUSH1 0xe0
0000449e: SHL
0000449f: DUP2
000044a0: MSTORE
000044a1: ADDRESS
000044a2: PUSH1 0x04
000044a4: DUP3
000044a5: ADD
000044a6: MSTORE
000044a7: PUSH1 0x60
000044a9: DUP2
000044aa: PUSH1 0x24
000044ac: DUP2
000044ad: PUSH1 0x01
000044af: PUSH1 0x01
000044b1: PUSH1 0xa0
000044b3: SHL
000044b4: SUB
000044b5: PUSH32 0x000000000000000000000000287d1e2a8de183a8bf8f2b09fa1340fbd766eb59
000044d6: AND
000044d7: GAS
000044d8: STATICCALL
000044d9: DUP1
000044da: ISZERO
000044db: PUSH2 0x06ed
000044de: JUMPI
000044df: PUSH2 0x4532
000044e2: SWAP3
000044e3: PUSH1 0x01
000044e5: PUSH1 0x01
000044e7: PUSH1 0x40
000044e9: SHL
000044ea: SUB
000044eb: PUSH2 0x450c
000044ee: PUSH1 0x40
000044f0: PUSH2 0x4513
000044f3: SWAP5
000044f4: PUSH1 0x20
000044f6: SWAP7
000044f7: PUSH0
000044f8: SWAP2
000044f9: PUSH2 0x458a
000044fc: JUMPI
000044fd: JUMPDEST
000044fe: POP
000044ff: ADD
00004500: MLOAD
00004501: PUSH1 0x01
00004503: PUSH1 0x01
00004505: PUSH1 0x40
00004507: SHL
00004508: SUB
00004509: AND
0000450a: SWAP1
0000450b: JUMP
0000450c: JUMPDEST
0000450d: AND
0000450e: SWAP1
0000450f: PUSH2 0x2fc7
00004512: JUMP
00004513: JUMPDEST
00004514: PUSH1 0x40
00004516: MLOAD
00004517: DUP1
00004518: SWAP4
00004519: DUP2
0000451a: SWAP3
0000451b: PUSH4 0x63737ac9
00004520: PUSH1 0xe1
00004522: SHL
00004523: DUP4
00004524: MSTORE
00004525: PUSH1 0x04
00004527: DUP4
00004528: ADD
00004529: SWAP2
0000452a: SWAP1
0000452b: PUSH1 0x20
0000452d: DUP4
0000452e: ADD
0000452f: SWAP3
00004530: MSTORE
00004531: JUMP
00004532: JUMPDEST
00004533: SUB
00004534: DUP2
00004535: PUSH32 0x0000000000000000000000002a261e60fb14586b474c208b1b7ac6d0f5000306
00004556: PUSH1 0x01
00004558: PUSH1 0x01
0000455a: PUSH1 0xa0
0000455c: SHL
0000455d: SUB
0000455e: AND
0000455f: GAS
00004560: STATICCALL
00004561: SWAP1
00004562: DUP2
00004563: ISZERO
00004564: PUSH2 0x06ed
00004567: JUMPI
00004568: PUSH0
00004569: SWAP2
0000456a: PUSH2 0x4571
0000456d: JUMPI
0000456e: POP
0000456f: SWAP1
00004570: JUMP
00004571: JUMPDEST
00004572: PUSH2 0x0836
00004575: SWAP2
00004576: POP
00004577: PUSH1 0x20
00004579: RETURNDATASIZE
0000457a: PUSH1 0x20
0000457c: GT
0000457d: PUSH2 0x06e6
00004580: JUMPI
00004581: PUSH2 0x06d8
00004584: DUP2
00004585: DUP4
00004586: PUSH2 0x104a
00004589: JUMP
0000458a: JUMPDEST
0000458b: PUSH2 0x45ac
0000458e: SWAP2
0000458f: POP
00004590: PUSH1 0x60
00004592: RETURNDATASIZE
00004593: PUSH1 0x60
00004595: GT
00004596: PUSH2 0x45b2
00004599: JUMPI
0000459a: JUMPDEST
0000459b: PUSH2 0x45a4
0000459e: DUP2
0000459f: DUP4
000045a0: PUSH2 0x104a
000045a3: JUMP
000045a4: JUMPDEST
000045a5: DUP2
000045a6: ADD
000045a7: SWAP1
000045a8: PUSH2 0x4439
000045ab: JUMP
000045ac: JUMPDEST
000045ad: PUSH0
000045ae: PUSH2 0x44fd
000045b1: JUMP
000045b2: JUMPDEST
000045b3: POP
000045b4: RETURNDATASIZE
000045b5: PUSH2 0x459a
000045b8: JUMP
000045b9: JUMPDEST
000045ba: PUSH1 0x98
000045bc: SLOAD
000045bd: SWAP1
000045be: PUSH1 0x01
000045c0: PUSH1 0x01
000045c2: PUSH1 0x80
000045c4: SHL
000045c5: SUB
000045c6: DUP3
000045c7: AND
000045c8: DUP2
000045c9: ISZERO
000045ca: DUP1
000045cb: ISZERO
000045cc: PUSH2 0x45e8
000045cf: JUMPI
000045d0: JUMPDEST
000045d1: ISZERO
000045d2: PUSH2 0x45db
000045d5: JUMPI
000045d6: POP
000045d7: SWAP1
000045d8: POP
000045d9: SWAP1
000045da: JUMP
000045db: JUMPDEST
000045dc: PUSH2 0x0836
000045df: SWAP3
000045e0: PUSH1 0x80
000045e2: SHR
000045e3: SWAP2
000045e4: PUSH2 0x3039
000045e7: JUMP
000045e8: JUMPDEST
000045e9: POP
000045ea: DUP1
000045eb: ISZERO
000045ec: PUSH2 0x45d0
000045ef: JUMP
000045f0: JUMPDEST
000045f1: PUSH1 0x98
000045f3: SLOAD
000045f4: PUSH1 0x01
000045f6: PUSH1 0x01
000045f8: PUSH1 0x80
000045fa: SHL
000045fb: SUB
000045fc: DUP2
000045fd: AND
000045fe: SWAP1
000045ff: DUP3
00004600: ISZERO
00004601: DUP1
00004602: ISZERO
00004603: PUSH2 0x4636
00004606: JUMPI
00004607: JUMPDEST
00004608: ISZERO
00004609: PUSH2 0x4611
0000460c: JUMPI
0000460d: POP
0000460e: POP
0000460f: SWAP1
00004610: JUMP
00004611: JUMPDEST
00004612: PUSH1 0x80
00004614: SHR
00004615: SWAP1
00004616: PUSH2 0x4620
00004619: DUP3
0000461a: DUP3
0000461b: DUP6
0000461c: PUSH2 0x3039
0000461f: JUMP
00004620: JUMPDEST
00004621: SWAP3
00004622: DUP3
00004623: ISZERO
00004624: PUSH2 0x2e77
00004627: JUMPI
00004628: MULMOD
00004629: ISZERO
0000462a: ISZERO
0000462b: DUP2
0000462c: ADD
0000462d: DUP1
0000462e: SWAP2
0000462f: GT
00004630: PUSH2 0x07c6
00004633: JUMPI
00004634: SWAP1
00004635: JUMP
00004636: JUMPDEST
00004637: POP
00004638: DUP2
00004639: ISZERO
0000463a: PUSH2 0x4607
0000463d: JUMP
0000463e: JUMPDEST
0000463f: SWAP2
00004640: SWAP1
00004641: PUSH2 0x4648
00004644: PUSH2 0x41a2
00004647: JUMP
00004648: JUMPDEST
00004649: PUSH1 0x01
0000464b: PUSH1 0x01
0000464d: PUSH1 0xa0
0000464f: SHL
00004650: SUB
00004651: DUP4
00004652: AND
00004653: SWAP1
00004654: DUP2
00004655: ISZERO
00004656: PUSH2 0x0c4e
00004659: JUMPI
0000465a: DUP1
0000465b: ISZERO
0000465c: PUSH2 0x07cb
0000465f: JUMPI
00004660: PUSH1 0x98
00004662: SLOAD
00004663: PUSH1 0x80
00004665: SHR
00004666: DUP2
00004667: ADD
00004668: SWAP4
00004669: PUSH2 0x4670
0000466c: PUSH2 0x291f
0000466f: JUMP
00004670: JUMPDEST
00004671: DUP6
00004672: GT
00004673: PUSH2 0x46d4
00004676: JUMPI
00004677: PUSH2 0x0b6d
0000467a: SWAP5
0000467b: PUSH2 0x4697
0000467e: SWAP2
0000467f: PUSH2 0x4692
00004682: PUSH2 0x468a
00004685: DUP6
00004686: PUSH2 0x45f0
00004689: JUMP
0000468a: JUMPDEST
0000468b: SWAP8
0000468c: DUP9
0000468d: SWAP4
0000468e: PUSH2 0x4305
00004691: JUMP
00004692: JUMPDEST
00004693: PUSH2 0x4382
00004696: JUMP
00004697: JUMPDEST
00004698: PUSH1 0x40
0000469a: DUP1
0000469b: MLOAD
0000469c: SWAP2
0000469d: DUP3
0000469e: MSTORE
0000469f: PUSH1 0x20
000046a1: DUP3
000046a2: ADD
000046a3: DUP6
000046a4: SWAP1
000046a5: MSTORE
000046a6: PUSH0
000046a7: SWAP1
000046a8: DUP3
000046a9: ADD
000046aa: MSTORE
000046ab: CALLER
000046ac: SWAP1
000046ad: PUSH32 0x861a4138e41fb21c121a7dbb1053df465c837fc77380cc7226189a662281be2c
000046ce: SWAP1
000046cf: PUSH1 0x60
000046d1: SWAP1
000046d2: LOG3
000046d3: JUMP
000046d4: JUMPDEST
000046d5: PUSH4 0x04ffa0ff
000046da: PUSH1 0xe5
000046dc: SHL
000046dd: PUSH0
000046de: MSTORE
000046df: PUSH1 0x04
000046e1: PUSH0
000046e2: REVERT
000046e3: JUMPDEST
000046e4: SWAP1
000046e5: SWAP3
000046e6: SWAP2
000046e7: SWAP3
000046e8: PUSH2 0x46ef
000046eb: PUSH2 0x41a2
000046ee: JUMP
000046ef: JUMPDEST
000046f0: PUSH1 0x01
000046f2: PUSH1 0x01
000046f4: PUSH1 0xa0
000046f6: SHL
000046f7: SUB
000046f8: DUP3
000046f9: AND
000046fa: SWAP2
000046fb: DUP3
000046fc: ISZERO
000046fd: PUSH2 0x0c4e
00004700: JUMPI
00004701: DUP2
00004702: ISZERO
00004703: PUSH2 0x07cb
00004706: JUMPI
00004707: PUSH1 0x98
00004709: SLOAD
0000470a: PUSH1 0x80
0000470c: SHR
0000470d: DUP3
0000470e: ADD
0000470f: PUSH2 0x4716
00004712: PUSH2 0x291f
00004715: JUMP
00004716: JUMPDEST
00004717: DUP2
00004718: GT
00004719: PUSH2 0x46d4
0000471c: JUMPI
0000471d: PUSH2 0x0b6d
00004720: SWAP6
00004721: PUSH2 0x475d
00004724: PUSH2 0x4786
00004727: SWAP3
00004728: PUSH32 0x861a4138e41fb21c121a7dbb1053df465c837fc77380cc7226189a662281be2c
00004749: SWAP5
0000474a: PUSH2 0x4692
0000474d: PUSH2 0x4755
00004750: DUP9
00004751: PUSH2 0x45f0
00004754: JUMP
00004755: JUMPDEST
00004756: SWAP11
00004757: DUP12
00004758: SWAP4
00004759: PUSH2 0x4305
0000475c: JUMP
0000475d: JUMPDEST
0000475e: PUSH1 0x40
00004760: DUP1
00004761: MLOAD
00004762: SWAP5
00004763: DUP6
00004764: MSTORE
00004765: PUSH1 0x20
00004767: DUP6
00004768: ADD
00004769: DUP9
0000476a: SWAP1
0000476b: MSTORE
0000476c: PUSH1 0x01
0000476e: PUSH1 0x01
00004770: PUSH1 0xa0
00004772: SHL
00004773: SUB
00004774: SWAP1
00004775: SWAP2
00004776: AND
00004777: SWAP1
00004778: DUP5
00004779: ADD
0000477a: MSTORE
0000477b: CALLER
0000477c: SWAP3
0000477d: SWAP1
0000477e: DUP2
0000477f: SWAP1
00004780: PUSH1 0x60
00004782: DUP3
00004783: ADD
00004784: SWAP1
00004785: JUMP
00004786: JUMPDEST
00004787: SUB
00004788: SWAP1
00004789: LOG3
0000478a: JUMP
0000478b: JUMPDEST
0000478c: SWAP1
0000478d: PUSH0
0000478e: NOT
0000478f: DUP2
00004790: DUP4
00004791: MULMOD
00004792: SWAP2
00004793: MUL
00004794: SWAP1
00004795: DUP2
00004796: DUP1
00004797: DUP3
00004798: LT
00004799: SWAP2
0000479a: SUB
0000479b: SUB
0000479c: SWAP2
0000479d: JUMP
0000479e: JUMPDEST
0000479f: PUSH4 0x4e487b71
000047a4: PUSH0
000047a5: MSTORE
000047a6: PUSH1 0x20
000047a8: MSTORE
000047a9: PUSH1 0x24
000047ab: PUSH1 0x1c
000047ad: REVERT
000047ae: JUMPDEST
000047af: DUP1
000047b0: SLOAD
000047b1: PUSH9 0x010000000000000000
000047bb: DUP2
000047bc: LT
000047bd: ISZERO
000047be: PUSH2 0x1045
000047c1: JUMPI
000047c2: PUSH1 0x01
000047c4: DUP2
000047c5: ADD
000047c6: DUP1
000047c7: DUP4
000047c8: SSTORE
000047c9: DUP2
000047ca: LT
000047cb: ISZERO
000047cc: PUSH2 0x2d28
000047cf: JUMPI
000047d0: PUSH0
000047d1: SWAP2
000047d2: DUP3
000047d3: MSTORE
000047d4: PUSH1 0x20
000047d6: SWAP2
000047d7: DUP3
000047d8: SWAP1
000047d9: KECCAK256
000047da: DUP4
000047db: MLOAD
000047dc: SWAP4
000047dd: SWAP1
000047de: SWAP3
000047df: ADD
000047e0: MLOAD
000047e1: PUSH1 0xa0
000047e3: SHL
000047e4: PUSH1 0x01
000047e6: PUSH1 0x01
000047e8: PUSH1 0xa0
000047ea: SHL
000047eb: SUB
000047ec: NOT
000047ed: AND
000047ee: PUSH1 0x01
000047f0: PUSH1 0x01
000047f2: PUSH1 0xa0
000047f4: SHL
000047f5: SUB
000047f6: SWAP4
000047f7: SWAP1
000047f8: SWAP4
000047f9: AND
000047fa: SWAP3
000047fb: SWAP1
000047fc: SWAP3
000047fd: OR
000047fe: SWAP2
000047ff: ADD
00004800: SSTORE
00004801: JUMP
00004802: JUMPDEST
00004803: SWAP2
00004804: SWAP1
00004805: SWAP2
00004806: DUP1
00004807: ISZERO
00004808: PUSH2 0x48ac
0000480b: JUMPI
0000480c: PUSH2 0x4815
0000480f: PUSH1 0x9a
00004811: PUSH2 0x3ebc
00004814: JUMP
00004815: JUMPDEST
00004816: SWAP1
00004817: DUP2
00004818: ADD
00004819: DUP1
0000481a: SWAP2
0000481b: GT
0000481c: PUSH2 0x07c6
0000481f: JUMPI
00004820: PUSH1 0x01
00004822: PUSH1 0x01
00004824: PUSH1 0xa0
00004826: SHL
00004827: SUB
00004828: DUP2
00004829: GT
0000482a: PUSH2 0x4895
0000482d: JUMPI
0000482e: PUSH1 0x01
00004830: PUSH1 0x01
00004832: PUSH1 0x60
00004834: SHL
00004835: SUB
00004836: DUP4
00004837: GT
00004838: PUSH2 0x487d
0000483b: JUMPI
0000483c: PUSH2 0x4876
0000483f: PUSH1 0x01
00004841: PUSH1 0x01
00004843: PUSH1 0x60
00004845: SHL
00004846: SUB
00004847: PUSH2 0x107a
0000484a: SWAP4
0000484b: SWAP5
0000484c: PUSH2 0x4865
0000484f: PUSH2 0x4856
00004852: PUSH2 0x107c
00004855: JUMP
00004856: JUMPDEST
00004857: PUSH1 0x01
00004859: PUSH1 0x01
0000485b: PUSH1 0xa0
0000485d: SHL
0000485e: SUB
0000485f: SWAP1
00004860: SWAP6
00004861: AND
00004862: DUP6
00004863: MSTORE
00004864: JUMP
00004865: JUMPDEST
00004866: AND
00004867: PUSH1 0x01
00004869: PUSH1 0x01
0000486b: PUSH1 0x60
0000486d: SHL
0000486e: SUB
0000486f: AND
00004870: PUSH1 0x20
00004872: DUP4
00004873: ADD
00004874: MSTORE
00004875: JUMP
00004876: JUMPDEST
00004877: PUSH1 0x9a
00004879: PUSH2 0x47ae
0000487c: JUMP
0000487d: JUMPDEST
0000487e: DUP3
0000487f: PUSH4 0x06dfcc65
00004884: PUSH1 0xe4
00004886: SHL
00004887: PUSH0
00004888: MSTORE
00004889: PUSH1 0x60
0000488b: PUSH1 0x04
0000488d: MSTORE
0000488e: PUSH1 0x24
00004890: MSTORE
00004891: PUSH1 0x44
00004893: PUSH0
00004894: REVERT
00004895: JUMPDEST
00004896: PUSH4 0x06dfcc65
0000489b: PUSH1 0xe4
0000489d: SHL
0000489e: PUSH0
0000489f: MSTORE
000048a0: PUSH1 0xa0
000048a2: PUSH1 0x04
000048a4: MSTORE
000048a5: PUSH1 0x24
000048a7: MSTORE
000048a8: PUSH1 0x44
000048aa: PUSH0
000048ab: REVERT
000048ac: JUMPDEST
000048ad: PUSH4 0x2ec8835b
000048b2: PUSH1 0xe2
000048b4: SHL
000048b5: PUSH0
000048b6: MSTORE
000048b7: PUSH1 0x04
000048b9: PUSH0
000048ba: REVERT
000048bb: JUMPDEST
000048bc: PUSH1 0x01
000048be: DUP1
000048bf: PUSH1 0xa0
000048c1: SHL
000048c2: SUB
000048c3: AND
000048c4: PUSH0
000048c5: MSTORE
000048c6: PUSH1 0x9c
000048c8: PUSH1 0x20
000048ca: MSTORE
000048cb: PUSH1 0x40
000048cd: PUSH0
000048ce: KECCAK256
000048cf: SWAP1
000048d0: DUP2
000048d1: SLOAD
000048d2: DUP2
000048d3: DUP2
000048d4: SUB
000048d5: SWAP1
000048d6: DUP2
000048d7: GT
000048d8: PUSH2 0x07c6
000048db: JUMPI
000048dc: PUSH2 0x48e5
000048df: SWAP3
000048e0: SSTORE
000048e1: PUSH2 0x4305
000048e4: JUMP
000048e5: JUMPDEST
000048e6: PUSH1 0x01
000048e8: PUSH1 0x01
000048ea: PUSH1 0x80
000048ec: SHL
000048ed: SUB
000048ee: PUSH1 0x98
000048f0: SLOAD
000048f1: SWAP2
000048f2: DUP2
000048f3: DUP4
000048f4: AND
000048f5: SUB
000048f6: AND
000048f7: SWAP1
000048f8: PUSH1 0x01
000048fa: PUSH1 0x01
000048fc: PUSH1 0x80
000048fe: SHL
000048ff: SUB
00004900: NOT
00004901: AND
00004902: OR
00004903: PUSH1 0x98
00004905: SSTORE
00004906: JUMP
00004907: JUMPDEST
00004908: SWAP1
00004909: DUP2
0000490a: PUSH1 0x20
0000490c: SWAP2
0000490d: SUB
0000490e: SLT
0000490f: PUSH2 0x0383
00004912: JUMPI
00004913: MLOAD
00004914: PUSH1 0xff
00004916: DUP2
00004917: AND
00004918: DUP2
00004919: SUB
0000491a: PUSH2 0x0383
0000491d: JUMPI
0000491e: SWAP1
0000491f: JUMP
00004920: JUMPDEST
00004921: PUSH1 0x40
00004923: MLOAD
00004924: PUSH4 0x52d1902d
00004929: PUSH1 0xe0
0000492b: SHL
0000492c: DUP2
0000492d: MSTORE
0000492e: SWAP1
0000492f: SWAP2
00004930: SWAP1
00004931: PUSH1 0x20
00004933: DUP2
00004934: PUSH1 0x04
00004936: DUP2
00004937: PUSH1 0x01
00004939: PUSH1 0x01
0000493b: PUSH1 0xa0
0000493d: SHL
0000493e: SUB
0000493f: DUP8
00004940: AND
00004941: GAS
00004942: STATICCALL
00004943: PUSH0
00004944: SWAP2
00004945: DUP2
00004946: PUSH2 0x4a30
00004949: JUMPI
0000494a: JUMPDEST
0000494b: POP
0000494c: PUSH2 0x496b
0000494f: JUMPI
00004950: PUSH4 0x4c9c8ce3
00004955: PUSH1 0xe0
00004957: SHL
00004958: PUSH0
00004959: MSTORE
0000495a: PUSH1 0x01
0000495c: PUSH1 0x01
0000495e: PUSH1 0xa0
00004960: SHL
00004961: SUB
00004962: DUP4
00004963: AND
00004964: PUSH1 0x04
00004966: MSTORE
00004967: PUSH1 0x24
00004969: PUSH0
0000496a: REVERT
0000496b: JUMPDEST
0000496c: PUSH0
0000496d: DUP1
0000496e: MLOAD
0000496f: PUSH1 0x20
00004971: PUSH2 0x4e53
00004974: DUP4
00004975: CODECOPY
00004976: DUP2
00004977: MLOAD
00004978: SWAP2
00004979: MSTORE
0000497a: DUP2
0000497b: SUB
0000497c: PUSH2 0x4a1e
0000497f: JUMPI
00004980: POP
00004981: DUP2
00004982: EXTCODESIZE
00004983: ISZERO
00004984: PUSH2 0x49fd
00004987: JUMPI
00004988: PUSH0
00004989: DUP1
0000498a: MLOAD
0000498b: PUSH1 0x20
0000498d: PUSH2 0x4e53
00004990: DUP4
00004991: CODECOPY
00004992: DUP2
00004993: MLOAD
00004994: SWAP2
00004995: MSTORE
00004996: DUP1
00004997: SLOAD
00004998: PUSH1 0x01
0000499a: PUSH1 0x01
0000499c: PUSH1 0xa0
0000499e: SHL
0000499f: SUB
000049a0: NOT
000049a1: AND
000049a2: PUSH1 0x01
000049a4: PUSH1 0x01
000049a6: PUSH1 0xa0
000049a8: SHL
000049a9: SUB
000049aa: DUP5
000049ab: AND
000049ac: SWAP1
000049ad: DUP2
000049ae: OR
000049af: SWAP1
000049b0: SWAP2
000049b1: SSTORE
000049b2: PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b
000049d3: PUSH0
000049d4: DUP1
000049d5: LOG2
000049d6: DUP1
000049d7: MLOAD
000049d8: ISZERO
000049d9: PUSH2 0x49e5
000049dc: JUMPI
000049dd: PUSH2 0x262c
000049e0: SWAP2
000049e1: PUSH2 0x4365
000049e4: JUMP
000049e5: JUMPDEST
000049e6: POP
000049e7: POP
000049e8: CALLVALUE
000049e9: PUSH2 0x49ee
000049ec: JUMPI
000049ed: JUMP
000049ee: JUMPDEST
000049ef: PUSH4 0xb398979f
000049f4: PUSH1 0xe0
000049f6: SHL
000049f7: PUSH0
000049f8: MSTORE
000049f9: PUSH1 0x04
000049fb: PUSH0
000049fc: REVERT
000049fd: JUMPDEST
000049fe: POP
000049ff: PUSH4 0x4c9c8ce3
00004a04: PUSH1 0xe0
00004a06: SHL
00004a07: PUSH0
00004a08: SWAP1
00004a09: DUP2
00004a0a: MSTORE
00004a0b: PUSH1 0x01
00004a0d: PUSH1 0x01
00004a0f: PUSH1 0xa0
00004a11: SHL
00004a12: SUB
00004a13: SWAP2
00004a14: SWAP1
00004a15: SWAP2
00004a16: AND
00004a17: PUSH1 0x04
00004a19: MSTORE
00004a1a: PUSH1 0x24
00004a1c: SWAP1
00004a1d: REVERT
00004a1e: JUMPDEST
00004a1f: PUSH4 0x2a875269
00004a24: PUSH1 0xe2
00004a26: SHL
00004a27: PUSH0
00004a28: MSTORE
00004a29: PUSH1 0x04
00004a2b: MSTORE
00004a2c: PUSH1 0x24
00004a2e: PUSH0
00004a2f: REVERT
00004a30: JUMPDEST
00004a31: PUSH2 0x4a4a
00004a34: SWAP2
00004a35: SWAP3
00004a36: POP
00004a37: PUSH1 0x20
00004a39: RETURNDATASIZE
00004a3a: PUSH1 0x20
00004a3c: GT
00004a3d: PUSH2 0x06e6
00004a40: JUMPI
00004a41: PUSH2 0x06d8
00004a44: DUP2
00004a45: DUP4
00004a46: PUSH2 0x104a
00004a49: JUMP
00004a4a: JUMPDEST
00004a4b: SWAP1
00004a4c: PUSH0
00004a4d: PUSH2 0x494a
00004a50: JUMP
00004a51: JUMPDEST
00004a52: PUSH1 0x40
00004a54: MLOAD
00004a55: PUSH4 0x703f96f7
00004a5a: PUSH1 0xe1
00004a5c: SHL
00004a5d: DUP2
00004a5e: MSTORE
00004a5f: PUSH1 0x40
00004a61: PUSH1 0x04
00004a63: DUP3
00004a64: ADD
00004a65: MSTORE
00004a66: PUSH1 0x0f
00004a68: PUSH1 0x44
00004a6a: DUP3
00004a6b: ADD
00004a6c: MSTORE
00004a6d: PUSH15 0x5661756c7456616c696461746f7273
00004a7d: PUSH1 0x88
00004a7f: SHL
00004a80: PUSH1 0x64
00004a82: DUP3
00004a83: ADD
00004a84: MSTORE
00004a85: ADDRESS
00004a86: PUSH1 0x24
00004a88: DUP3
00004a89: ADD
00004a8a: MSTORE
00004a8b: PUSH1 0x20
00004a8d: DUP2
00004a8e: PUSH1 0x84
00004a90: DUP2
00004a91: PUSH20 0x26314bd892cea77e2731ebbfb7c47af0bdcfe773
00004aa6: GAS
00004aa7: DELEGATECALL
00004aa8: SWAP1
00004aa9: DUP2
00004aaa: ISZERO
00004aab: PUSH2 0x06ed
00004aae: JUMPI
00004aaf: PUSH0
00004ab0: SWAP2
00004ab1: PUSH2 0x4571
00004ab4: JUMPI
00004ab5: POP
00004ab6: SWAP1
00004ab7: JUMP
00004ab8: JUMPDEST
00004ab9: PUSH32 0x0000000000000000000000002296e122c1a20fca3cac3371357bdad3be0df079
00004ada: PUSH1 0x01
00004adc: PUSH1 0x01
00004ade: PUSH1 0xa0
00004ae0: SHL
00004ae1: SUB
00004ae2: AND
00004ae3: DUP1
00004ae4: BALANCE
00004ae5: DUP1
00004ae6: PUSH2 0x4aed
00004ae9: JUMPI
00004aea: POP
00004aeb: POP
00004aec: JUMP
00004aed: JUMPDEST
00004aee: DUP2
00004aef: EXTCODESIZE
00004af0: ISZERO
00004af1: PUSH2 0x0383
00004af4: JUMPI
00004af5: PUSH0
00004af6: SWAP2
00004af7: PUSH1 0x44
00004af9: DUP4
00004afa: SWAP3
00004afb: PUSH1 0x40
00004afd: MLOAD
00004afe: SWAP5
00004aff: DUP6
00004b00: SWAP4
00004b01: DUP5
00004b02: SWAP3
00004b03: PUSH4 0xf3fef3a3
00004b08: PUSH1 0xe0
00004b0a: SHL
00004b0b: DUP5
00004b0c: MSTORE
00004b0d: ADDRESS
00004b0e: PUSH1 0x04
00004b10: DUP6
00004b11: ADD
00004b12: MSTORE
00004b13: PUSH1 0x24
00004b15: DUP5
00004b16: ADD
00004b17: MSTORE
00004b18: GAS
00004b19: CALL
00004b1a: DUP1
00004b1b: ISZERO
00004b1c: PUSH2 0x06ed
00004b1f: JUMPI
00004b20: PUSH2 0x4b26
00004b23: JUMPI
00004b24: POP
00004b25: JUMP
00004b26: JUMPDEST
00004b27: PUSH0
00004b28: PUSH2 0x107a
00004b2b: SWAP2
00004b2c: PUSH2 0x104a
00004b2f: JUMP
00004b30: JUMPDEST
00004b31: SWAP5
00004b32: SWAP4
00004b33: SWAP3
00004b34: PUSH2 0x4b5c
00004b37: PUSH1 0x60
00004b39: SWAP4
00004b3a: PUSH2 0x4b4e
00004b3d: PUSH2 0x2cf8
00004b40: SWAP5
00004b41: PUSH1 0x80
00004b43: DUP11
00004b44: MSTORE
00004b45: PUSH1 0x80
00004b47: DUP11
00004b48: ADD
00004b49: SWAP1
00004b4a: PUSH2 0x1fd3
00004b4d: JUMP
00004b4e: JUMPDEST
00004b4f: SWAP1
00004b50: DUP9
00004b51: DUP3
00004b52: SUB
00004b53: PUSH1 0x20
00004b55: DUP11
00004b56: ADD
00004b57: MSTORE
00004b58: PUSH2 0x1fd3
00004b5b: JUMP
00004b5c: JUMPDEST
00004b5d: SWAP1
00004b5e: DUP7
00004b5f: DUP3
00004b60: SUB
00004b61: PUSH1 0x40
00004b63: DUP9
00004b64: ADD
00004b65: MSTORE
00004b66: PUSH2 0x1fd3
00004b69: JUMP
00004b6a: JUMPDEST
00004b6b: PUSH1 0x01
00004b6d: DUP1
00004b6e: PUSH1 0xa0
00004b70: SHL
00004b71: SUB
00004b72: DUP2
00004b73: AND
00004b74: PUSH0
00004b75: MSTORE
00004b76: PUSH2 0x0137
00004b79: PUSH1 0x20
00004b7b: MSTORE
00004b7c: PUSH1 0x40
00004b7e: PUSH0
00004b7f: KECCAK256
00004b80: SWAP1
00004b81: PUSH1 0x01
00004b83: PUSH1 0x01
00004b85: PUSH1 0x80
00004b87: SHL
00004b88: SUB
00004b89: DUP1
00004b8a: PUSH1 0x40
00004b8c: MLOAD
00004b8d: SWAP4
00004b8e: PUSH2 0x4b96
00004b91: DUP6
00004b92: PUSH2 0x102a
00004b95: JUMP
00004b96: JUMPDEST
00004b97: SLOAD
00004b98: DUP2
00004b99: DUP2
00004b9a: AND
00004b9b: SWAP1
00004b9c: DUP2
00004b9d: DUP7
00004b9e: MSTORE
00004b9f: PUSH1 0x80
00004ba1: SHR
00004ba2: PUSH1 0x20
00004ba4: DUP7
00004ba5: ADD
00004ba6: MSTORE
00004ba7: AND
00004ba8: AND
00004ba9: ISZERO
00004baa: PUSH2 0x3262
00004bad: JUMPI
00004bae: PUSH2 0x1d3c
00004bb1: PUSH2 0x4be7
00004bb4: PUSH2 0x37a7
00004bb7: PUSH2 0x09d2
00004bba: PUSH2 0x4bf5
00004bbd: SWAP5
00004bbe: PUSH2 0x4bc5
00004bc1: PUSH2 0x41a2
00004bc4: JUMP
00004bc5: JUMPDEST
00004bc6: PUSH2 0x4bce
00004bc9: DUP8
00004bca: PUSH2 0x2e7c
00004bcd: JUMP
00004bce: JUMPDEST
00004bcf: PUSH1 0x01
00004bd1: PUSH1 0x01
00004bd3: PUSH1 0xa0
00004bd5: SHL
00004bd6: SUB
00004bd7: AND
00004bd8: PUSH0
00004bd9: SWAP1
00004bda: DUP2
00004bdb: MSTORE
00004bdc: PUSH1 0x9c
00004bde: PUSH1 0x20
00004be0: MSTORE
00004be1: PUSH1 0x40
00004be3: SWAP1
00004be4: KECCAK256
00004be5: SWAP1
00004be6: JUMP
00004be7: JUMPDEST
00004be8: SWAP3
00004be9: MLOAD
00004bea: PUSH1 0x01
00004bec: PUSH1 0x01
00004bee: PUSH1 0x80
00004bf0: SHL
00004bf1: SUB
00004bf2: AND
00004bf3: SWAP1
00004bf4: JUMP
00004bf5: JUMPDEST
00004bf6: GT
00004bf7: PUSH2 0x38e4
00004bfa: JUMPI
00004bfb: JUMP
00004bfc: JUMPDEST
00004bfd: SWAP1
00004bfe: SWAP3
00004bff: SWAP2
00004c00: SWAP3
00004c01: DUP1
00004c02: ISZERO
00004c03: PUSH2 0x1e93
00004c06: JUMPI
00004c07: PUSH1 0x01
00004c09: PUSH1 0x01
00004c0b: PUSH1 0xa0
00004c0d: SHL
00004c0e: SUB
00004c0f: DUP5
00004c10: AND
00004c11: SWAP2
00004c12: DUP3
00004c13: ISZERO
00004c14: PUSH2 0x0c4e
00004c17: JUMPI
00004c18: PUSH2 0x4c22
00004c1b: PUSH2 0x1488
00004c1e: PUSH2 0x40be
00004c21: JUMP
00004c22: JUMPDEST
00004c23: PUSH2 0x4d18
00004c26: JUMPI
00004c27: PUSH2 0x4786
00004c2a: PUSH32 0x211091c5bf013c1230f996c3bb2bc327e3de429a3d3c356dcea9a0c858bc407f
00004c4b: SWAP2
00004c4c: PUSH2 0x4cf5
00004c4f: PUSH2 0x35cb
00004c52: DUP6
00004c53: PUSH2 0x1bbe
00004c56: SWAP10
00004c57: DUP2
00004c58: PUSH2 0x4cca
00004c5b: PUSH2 0x4c6f
00004c5e: PUSH2 0x1d3c
00004c61: PUSH1 0x99
00004c63: SLOAD
00004c64: PUSH1 0x01
00004c66: PUSH1 0x01
00004c68: PUSH1 0x80
00004c6a: SHL
00004c6b: SUB
00004c6c: AND
00004c6d: SWAP1
00004c6e: JUMP
00004c6f: JUMPDEST
00004c70: SWAP3
00004c71: PUSH2 0x1156
00004c74: PUSH2 0x4c9c
00004c77: DUP6
00004c78: PUSH2 0x4c97
00004c7b: PUSH2 0x4c82
00004c7e: PUSH2 0x3e7a
00004c81: JUMP
00004c82: JUMPDEST
00004c83: PUSH2 0x4c91
00004c86: PUSH2 0x1d3c
00004c89: PUSH1 0x9e
00004c8b: SLOAD
00004c8c: PUSH1 0x80
00004c8e: SHR
00004c8f: SWAP1
00004c90: JUMP
00004c91: JUMPDEST
00004c92: SWAP1
00004c93: PUSH2 0x25db
00004c96: JUMP
00004c97: JUMPDEST
00004c98: PUSH2 0x25db
00004c9b: JUMP
00004c9c: JUMPDEST
00004c9d: SWAP15
00004c9e: DUP16
00004c9f: PUSH1 0x40
00004ca1: MLOAD
00004ca2: SWAP3
00004ca3: DUP4
00004ca4: SWAP2
00004ca5: PUSH1 0x20
00004ca7: DUP4
00004ca8: ADD
00004ca9: SWAP6
00004caa: TIMESTAMP
00004cab: SWAP1
00004cac: DUP8
00004cad: PUSH1 0x40
00004caf: SWAP2
00004cb0: SWAP5
00004cb1: SWAP4
00004cb2: SWAP3
00004cb3: PUSH1 0x60
00004cb5: DUP3
00004cb6: ADD
00004cb7: SWAP6
00004cb8: PUSH1 0x01
00004cba: DUP1
00004cbb: PUSH1 0xa0
00004cbd: SHL
00004cbe: SUB
00004cbf: AND
00004cc0: DUP3
00004cc1: MSTORE
00004cc2: PUSH1 0x20
00004cc4: DUP3
00004cc5: ADD
00004cc6: MSTORE
00004cc7: ADD
00004cc8: MSTORE
00004cc9: JUMP
00004cca: JUMPDEST
00004ccb: SSTORE
00004ccc: PUSH1 0x01
00004cce: PUSH1 0x01
00004cd0: PUSH1 0xa0
00004cd2: SHL
00004cd3: SUB
00004cd4: DUP6
00004cd5: AND
00004cd6: PUSH0
00004cd7: SWAP1
00004cd8: DUP2
00004cd9: MSTORE
00004cda: PUSH1 0x9c
00004cdc: PUSH1 0x20
00004cde: MSTORE
00004cdf: PUSH1 0x40
00004ce1: SWAP1
00004ce2: KECCAK256
00004ce3: PUSH2 0x4ced
00004ce6: DUP4
00004ce7: DUP3
00004ce8: SLOAD
00004ce9: PUSH2 0x2964
00004cec: JUMP
00004ced: JUMPDEST
00004cee: SWAP1
00004cef: SSTORE
00004cf0: ADD
00004cf1: PUSH2 0x4305
00004cf4: JUMP
00004cf5: JUMPDEST
00004cf6: PUSH1 0x40
00004cf8: DUP1
00004cf9: MLOAD
00004cfa: DUP9
00004cfb: DUP2
00004cfc: MSTORE
00004cfd: PUSH1 0x20
00004cff: DUP2
00004d00: ADD
00004d01: SWAP6
00004d02: SWAP1
00004d03: SWAP6
00004d04: MSTORE
00004d05: PUSH1 0x01
00004d07: PUSH1 0x01
00004d09: PUSH1 0xa0
00004d0b: SHL
00004d0c: SUB
00004d0d: SWAP1
00004d0e: SWAP2
00004d0f: AND
00004d10: SWAP4
00004d11: SWAP2
00004d12: DUP3
00004d13: SWAP2
00004d14: DUP3
00004d15: ADD
00004d16: SWAP1
00004d17: JUMP
00004d18: JUMPDEST
00004d19: SWAP2
00004d1a: SWAP3
00004d1b: SWAP4
00004d1c: SWAP1
00004d1d: PUSH2 0x4d25
00004d20: DUP2
00004d21: PUSH2 0x2597
00004d24: JUMP
00004d25: JUMPDEST
00004d26: SWAP3
00004d27: DUP4
00004d28: ISZERO
00004d29: PUSH2 0x07cb
00004d2c: JUMPI
00004d2d: PUSH2 0x4d6b
00004d30: DUP5
00004d31: PUSH32 0x5cdf07ad0fc222442720b108e3ed4c4640f0fadc2ab2253e66f259a0fea83480
00004d52: SWAP5
00004d53: PUSH2 0x4d61
00004d56: PUSH2 0x0b6d
00004d59: PUSH2 0x0b62
00004d5c: DUP5
00004d5d: PUSH2 0x4305
00004d60: JUMP
00004d61: JUMPDEST
00004d62: PUSH2 0x3e04
00004d65: DUP6
00004d66: DUP6
00004d67: PUSH2 0x48bb
00004d6a: JUMP
00004d6b: JUMPDEST
00004d6c: PUSH1 0x40
00004d6e: DUP1
00004d6f: MLOAD
00004d70: SWAP5
00004d71: DUP6
00004d72: MSTORE
00004d73: PUSH1 0x20
00004d75: DUP6
00004d76: ADD
00004d77: SWAP3
00004d78: SWAP1
00004d79: SWAP3
00004d7a: MSTORE
00004d7b: PUSH1 0x01
00004d7d: PUSH1 0x01
00004d7f: PUSH1 0xa0
00004d81: SHL
00004d82: SUB
00004d83: AND
00004d84: SWAP3
00004d85: LOG3
00004d86: PUSH0
00004d87: NOT
00004d88: SWAP1
00004d89: JUMP
00004d8a: JUMPDEST
00004d8b: SWAP1
00004d8c: PUSH2 0x4d95
00004d8f: JUMPI
00004d90: POP
00004d91: PUSH2 0x4e34
00004d94: JUMP
00004d95: JUMPDEST
00004d96: DUP2
00004d97: MLOAD
00004d98: ISZERO
00004d99: DUP1
00004d9a: PUSH2 0x4dc6
00004d9d: JUMPI
00004d9e: JUMPDEST
00004d9f: PUSH2 0x4da6
00004da2: JUMPI
00004da3: POP
00004da4: SWAP1
00004da5: JUMP
00004da6: JUMPDEST
00004da7: PUSH4 0x9996b315
00004dac: PUSH1 0xe0
00004dae: SHL
00004daf: PUSH0
00004db0: SWAP1
00004db1: DUP2
00004db2: MSTORE
00004db3: PUSH1 0x01
00004db5: PUSH1 0x01
00004db7: PUSH1 0xa0
00004db9: SHL
00004dba: SUB
00004dbb: SWAP2
00004dbc: SWAP1
00004dbd: SWAP2
00004dbe: AND
00004dbf: PUSH1 0x04
00004dc1: MSTORE
00004dc2: PUSH1 0x24
00004dc4: SWAP1
00004dc5: REVERT
00004dc6: JUMPDEST
00004dc7: POP
00004dc8: DUP1
00004dc9: EXTCODESIZE
00004dca: ISZERO
00004dcb: PUSH2 0x4d9e
00004dce: JUMP
00004dcf: JUMPDEST
00004dd0: PUSH1 0xff
00004dd2: PUSH0
00004dd3: DUP1
00004dd4: MLOAD
00004dd5: PUSH1 0x20
00004dd7: PUSH2 0x4e93
00004dda: DUP4
00004ddb: CODECOPY
00004ddc: DUP2
00004ddd: MLOAD
00004dde: SWAP2
00004ddf: MSTORE
00004de0: SLOAD
00004de1: PUSH1 0x40
00004de3: SHR
00004de4: AND
00004de5: ISZERO
00004de6: PUSH2 0x4deb
00004de9: JUMPI
00004dea: JUMP
00004deb: JUMPDEST
00004dec: PUSH4 0x1afcd79f
00004df1: PUSH1 0xe3
00004df3: SHL
00004df4: PUSH0
00004df5: MSTORE
00004df6: PUSH1 0x04
00004df8: PUSH0
00004df9: REVERT
00004dfa: JUMPDEST
00004dfb: PUSH2 0x4e02
00004dfe: PUSH2 0x4dcf
00004e01: JUMP
00004e02: JUMPDEST
00004e03: PUSH2 0x4e0a
00004e06: PUSH2 0x4dcf
00004e09: JUMP
00004e0a: JUMPDEST
00004e0b: PUSH1 0x01
00004e0d: PUSH0
00004e0e: DUP1
00004e0f: MLOAD
00004e10: PUSH1 0x20
00004e12: PUSH2 0x4e73
00004e15: DUP4
00004e16: CODECOPY
00004e17: DUP2
00004e18: MLOAD
00004e19: SWAP2
00004e1a: MSTORE
00004e1b: SSTORE
00004e1c: PUSH2 0x4e23
00004e1f: PUSH2 0x4a51
00004e22: JUMP
00004e23: JUMPDEST
00004e24: PUSH1 0xd3
00004e26: SLOAD
00004e27: DUP2
00004e28: SUB
00004e29: PUSH2 0x4e2f
00004e2c: JUMPI
00004e2d: POP
00004e2e: JUMP
00004e2f: JUMPDEST
00004e30: PUSH1 0xd3
00004e32: SSTORE
00004e33: JUMP
00004e34: JUMPDEST
00004e35: DUP1
00004e36: MLOAD
00004e37: ISZERO
00004e38: PUSH2 0x4e43
00004e3b: JUMPI
00004e3c: DUP1
00004e3d: MLOAD
00004e3e: SWAP1
00004e3f: PUSH1 0x20
00004e41: ADD
00004e42: REVERT
00004e43: JUMPDEST
00004e44: PUSH4 0xd6bda275
00004e49: PUSH1 0xe0
00004e4b: SHL
00004e4c: PUSH0
00004e4d: MSTORE
00004e4e: PUSH1 0x04
00004e50: PUSH0
00004e51: REVERT
00004e52: INVALID
00004e53: CALLDATASIZE
00004e54: ADDMOD
00004e55: SWAP5
00004e56: LOG1
00004e57: EXTCODESIZE
00004e58: LOG1
00004e59: LOG3
00004e5a: UNKNOWN(0x21)
00004e5b: MOD
00004e5c: PUSH8 0xc828492db98dca3e
00004e65: KECCAK256
00004e66: PUSH23 0xcc3735a920a3ca505d382bbc9b779b17422d0df9222301
00004e7e: DUP12
00004e7f: ORIGIN
00004e80: UNKNOWN(0xB4)
00004e81: UNKNOWN(0xD1)
00004e82: STATICCALL
00004e83: CHAINID
00004e84: UNKNOWN(0xE0)
00004e85: PUSH18 0x723d6817e2486d003becc55f00f0c57e1684
00004e98: UNKNOWN(0x0D)
00004e99: CREATE
00004e9a: BLOCKHASH
00004e9b: CALL
00004e9c: POP
00004e9d: DUP9
00004e9e: UNKNOWN(0xDC)
00004e9f: UNKNOWN(0x2F)
00004ea0: DUP2
00004ea1: INVALID
00004ea2: CODECOPY
00004ea3: SHR
00004ea4: CODECOPY
00004ea5: UNKNOWN(0x23)
00004ea6: UNKNOWN(0xBE)
00004ea7: UNKNOWN(0xC7)
00004ea8: RETURNDATACOPY
00004ea9: UNKNOWN(0x23)
00004eaa: UNKNOWN(0xA9)
00004eab: PUSH7 0x2efc9c229c6a00
00004eb3: LOG1
00004eb4: PUSH5 0x736f6c6343
00004eba: STOP
00004ebb: ADDMOD
00004ebc: BYTE
00004ebd: STOP
00004ebe: EXP

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high upgradeability detector Untrusted DELEGATECALL target reachable 55 no no
view
trace_id: 0x5326008d89f25831370a088cb5c05f9ef43b46d9cac7084afe4d1fabdf126b4b
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 192,
    "trace_id": "0x5326008d89f25831370a088cb5c05f9ef43b46d9cac7084afe4d1fabdf126b4b",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x01d523b6",
            "selector": "0x01d523b6",
            "calldata_variants": [
                "0x01d523b6",
                "0x01d523b60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x01e1d114",
            "selector": "0x01e1d114",
            "calldata_variants": [
                "0x01e1d114",
                "0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0402f196",
            "selector": "0x0402f196",
            "calldata_variants": [
                "0x0402f196",
                "0x0402f1960000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x066055e0",
            "selector": "0x066055e0",
            "calldata_variants": [
                "0x066055e0",
                "0x066055e00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x07a2d13a",
            "selector": "0x07a2d13a",
            "calldata_variants": [
                "0x07a2d13a",
                "0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18f72950",
            "selector": "0x18f72950",
            "calldata_variants": [
                "0x18f72950",
                "0x18f729500000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1913bb24",
            "selector": "0x1913bb24",
            "calldata_variants": [
                "0x1913bb24",
                "0x1913bb240000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1a7ff553",
            "selector": "0x1a7ff553",
            "calldata_variants": [
                "0x1a7ff553",
                "0x1a7ff5530000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 2719,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 5375,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 5719,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [
        {
            "pc": 20095,
            "type": "tx_origin_used"
        }
    ],
    "delegatecall_count": 11,
    "untrusted_delegatecall_count": 11
}
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x01d523b6",
            "selector": "0x01d523b6",
            "calldata_variants": [
                "0x01d523b6",
                "0x01d523b60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x01e1d114",
            "selector": "0x01e1d114",
            "calldata_variants": [
                "0x01e1d114",
                "0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0402f196",
            "selector": "0x0402f196",
            "calldata_variants": [
                "0x0402f196",
                "0x0402f1960000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x066055e0",
            "selector": "0x066055e0",
            "calldata_variants": [
                "0x066055e0",
                "0x066055e00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x07a2d13a",
            "selector": "0x07a2d13a",
            "calldata_variants": [
                "0x07a2d13a",
                "0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18f72950",
            "selector": "0x18f72950",
            "calldata_variants": [
                "0x18f72950",
                "0x18f729500000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1913bb24",
            "selector": "0x1913bb24",
            "calldata_variants": [
                "0x1913bb24",
                "0x1913bb240000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1a7ff553",
            "selector": "0x1a7ff553",
            "calldata_variants": [
                "0x1a7ff553",
                "0x1a7ff5530000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 20095,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x146d14da2c7fe0b1d393410974ad81760cc982a30ca50c7a4c48ac2de3bc8127
call_targets: 0xf113bfd6423291b1dd2ca76f897bff54456e7c88
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x146d14da2c7fe0b1d393410974ad81760cc982a30ca50c7a4c48ac2de3bc8127",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xf113bfd6423291b1dd2ca76f897bff54456e7c88"
    ],
    "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": "0x01d523b6",
            "selector": "0x01d523b6",
            "calldata_variants": [
                "0x01d523b6",
                "0x01d523b60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x01e1d114",
            "selector": "0x01e1d114",
            "calldata_variants": [
                "0x01e1d114",
                "0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0402f196",
            "selector": "0x0402f196",
            "calldata_variants": [
                "0x0402f196",
                "0x0402f1960000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x066055e0",
            "selector": "0x066055e0",
            "calldata_variants": [
                "0x066055e0",
                "0x066055e00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x07a2d13a",
            "selector": "0x07a2d13a",
            "calldata_variants": [
                "0x07a2d13a",
                "0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18f72950",
            "selector": "0x18f72950",
            "calldata_variants": [
                "0x18f72950",
                "0x18f729500000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1913bb24",
            "selector": "0x1913bb24",
            "calldata_variants": [
                "0x1913bb24",
                "0x1913bb240000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1a7ff553",
            "selector": "0x1a7ff553",
            "calldata_variants": [
                "0x1a7ff553",
                "0x1a7ff5530000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1475,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2312,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2775,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 18,
    "guards_detected": [
        {
            "pc": 20095,
            "type": "tx_origin_used"
        }
    ]
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 11
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0x9a1d53ba808ffe184df9fe39b274acce5b21ca2232deb2edeba7dea6633ccf56
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0x9a1d53ba808ffe184df9fe39b274acce5b21ca2232deb2edeba7dea6633ccf56",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x01d523b6",
            "selector": "0x01d523b6",
            "calldata_variants": [
                "0x01d523b6",
                "0x01d523b60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x01e1d114",
            "selector": "0x01e1d114",
            "calldata_variants": [
                "0x01e1d114",
                "0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0402f196",
            "selector": "0x0402f196",
            "calldata_variants": [
                "0x0402f196",
                "0x0402f1960000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x066055e0",
            "selector": "0x066055e0",
            "calldata_variants": [
                "0x066055e0",
                "0x066055e00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x07a2d13a",
            "selector": "0x07a2d13a",
            "calldata_variants": [
                "0x07a2d13a",
                "0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18f72950",
            "selector": "0x18f72950",
            "calldata_variants": [
                "0x18f72950",
                "0x18f729500000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1913bb24",
            "selector": "0x1913bb24",
            "calldata_variants": [
                "0x1913bb24",
                "0x1913bb240000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1a7ff553",
            "selector": "0x1a7ff553",
            "calldata_variants": [
                "0x1a7ff553",
                "0x1a7ff5530000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 1,
    "create2_count": 0
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x146d14da2c7fe0b1d393410974ad81760cc982a30ca50c7a4c48ac2de3bc8127
call_targets: 0xf113bfd6423291b1dd2ca76f897bff54456e7c88
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x146d14da2c7fe0b1d393410974ad81760cc982a30ca50c7a4c48ac2de3bc8127",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xf113bfd6423291b1dd2ca76f897bff54456e7c88"
    ],
    "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": "0x01d523b6",
            "selector": "0x01d523b6",
            "calldata_variants": [
                "0x01d523b6",
                "0x01d523b60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x01e1d114",
            "selector": "0x01e1d114",
            "calldata_variants": [
                "0x01e1d114",
                "0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0402f196",
            "selector": "0x0402f196",
            "calldata_variants": [
                "0x0402f196",
                "0x0402f1960000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x066055e0",
            "selector": "0x066055e0",
            "calldata_variants": [
                "0x066055e0",
                "0x066055e00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x07a2d13a",
            "selector": "0x07a2d13a",
            "calldata_variants": [
                "0x07a2d13a",
                "0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18f72950",
            "selector": "0x18f72950",
            "calldata_variants": [
                "0x18f72950",
                "0x18f729500000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1913bb24",
            "selector": "0x1913bb24",
            "calldata_variants": [
                "0x1913bb24",
                "0x1913bb240000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1a7ff553",
            "selector": "0x1a7ff553",
            "calldata_variants": [
                "0x1a7ff553",
                "0x1a7ff5530000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1475,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2312,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2775,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 18,
    "guards_detected": [
        {
            "pc": 20095,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 18
}
medium math codex Floor rounding on share burn allows zero-share liquidations that drain yield 75 no
view
evidence_json
{
    "evidence": "`_redeemOsToken` computes `burnedShares = convertToShares(receivedAssets)` and then `_burnShares(owner, burnedShares)`; `convertToShares` uses floor rounding, enabling `burnedShares` to be 0 when `receivedAssets < assetsPerShare`.",
    "locations": [
        "contracts/contracts/vaults/modules/VaultOsToken.sol:87",
        "contracts/contracts/vaults/modules/VaultOsToken.sol:248",
        "contracts/contracts/vaults/modules/VaultOsToken.sol:251",
        "contracts/contracts/vaults/modules/VaultOsToken.sol:254",
        "contracts/contracts/vaults/modules/VaultState.sol:78",
        "contracts/contracts/vaults/modules/VaultState.sol:79"
    ],
    "recommendation": "When burning shares for redeemed assets, round up instead of down (e.g., use `Math.Rounding.Ceil`), or enforce a minimum burn of 1 share for any nonzero `receivedAssets`, or require `receivedAssets >= assetsPerShare` to proceed.",
    "exploit_scenario": "1) Wait until the vault has accrued rewards so `totalAssets > totalShares` (asset-per-share > 1) and a position is liquidatable (health factor below threshold). 2) Acquire osToken shares (mint against collateral or buy) and call `liquidateOsToken` with a very small `osTokenShares` amount so `receivedAssets < totalAssets/totalShares`. 3) In `_redeemOsToken`, `burnedShares = convertToShares(receivedAssets)` rounds down to 0, yet `_totalAssets` is reduced and assets are transferred to the attacker. 4) Repeat small liquidations to drain up to the vault\u2019s surplus (`totalAssets - totalShares`) or current `withdrawableAssets`, extracting value from other shareholders without burning the target\u2019s collateral shares."
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 1,
    "create2_count": 0
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 35
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 18
}