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

Analysis Run

e861a905-892a-48df-87c8-ed66476df752

failed
Chain ID
1
Address
Block Number
Created
Mon, Dec 29, 2025 6:24 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 CALL target/value 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
30551 report.consolidate complete 1 / 1 3 months ago
104165 artifact.fetch failed 1 / 3 1 week ago
104166 tool.cast_disasm complete 1 / 3 1 week ago
104167 analysis.bundle complete 1 / 3 1 week ago
104168 capability.graph complete 1 / 3 1 week ago
104169 detector.run complete 1 / 3 1 week ago
104170 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
2
No findings?
no
Summary
Identified reentrancy gaps around delegated borrowing and reward claiming that could allow nested calls with reentrant tokens.
View stderr
[codex:1042718] OpenAI Codex v0.77.0 (research preview)
[codex:1042718] --------
[codex:1042718] workdir: /tmp/codex-multi-c2n5vosy
[codex:1042718] model: gpt-5.2-codex
[codex:1042718] provider: openai
[codex:1042718] approval: never
[codex:1042718] sandbox: read-only
[codex:1042718] reasoning effort: xhigh
[codex:1042718] reasoning summaries: auto
[codex:1042718] session id: 019b6b55-aa11-7aa0-8bb6-27284d5a9e83
[codex:1042718] --------
[codex:1042718] user
[codex:1042718] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1042718] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1042718] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1042718] 
[codex:1042718] Scope rules:
[codex:1042718] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1042718] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1042718] 
[codex:1042718] Output MUST be valid JSON matching the provided schema.
[codex:1042718] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1042718] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1042718] 
[codex:1042718] Output constraints (IMPORTANT):
[codex:1042718] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1042718] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1042718] mcp startup: no servers
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Opening AUDIT_BUNDLE.txt**
[codex:1042718] exec
[codex:1042718] /bin/bash -lc ls in /tmp/codex-multi-c2n5vosy succeeded in 5ms:
[codex:1042718] AUDIT_BUNDLE.txt
[codex:1042718] codex-output-schema.json
[codex:1042718] contracts
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Reading AUDIT_BUNDLE**
[codex:1042718] exec
[codex:1042718] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-c2n5vosy succeeded in 6ms:
[codex:1042718] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1042718] 
[codex:1042718] ================================================================================
[codex:1042718] FILE: contracts/@openzeppelin/contracts/access/IAccessControl.sol
[codex:1042718] ================================================================================
[codex:1042718] // SPDX-License-Identifier: MIT
[codex:1042718] // OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)
[codex:1042718] 
[codex:1042718] pragma solidity ^0.8.0;
[codex:1042718] 
[codex:1042718] /**
[codex:1042718]  * @dev External interface of AccessControl declared to support ERC165 detection.
[codex:1042718]  */
[codex:1042718] interface IAccessControl {
[codex:1042718]     /**
[codex:1042718]      * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`
[codex:1042718]      *
[codex:1042718]      * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite
[codex:1042718]      * {RoleAdminChanged} not being emitted signaling this.
[codex:1042718]      *
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Planning to parse AUDIT_BUNDLE.txt**
[codex:1042718] exec
[codex:1042718] /bin/bash -lc 'rg -n "''^FILE:" AUDIT_BUNDLE.txt' in /tmp/codex-multi-c2n5vosy succeeded in 7ms:
[codex:1042718] 4:FILE: contracts/@openzeppelin/contracts/access/IAccessControl.sol
[codex:1042718] 96:FILE: contracts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol
[codex:1042718] 171:FILE: contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol
[codex:1042718] 270:FILE: contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol
[codex:1042718] 440:FILE: contracts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol
[codex:1042718] 522:FILE: contracts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20PermitUpgradeable.sol
[codex:1042718] 616:FILE: contracts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol
[codex:1042718] 763:FILE: contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol
[codex:1042718] 1011:FILE: contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol
[codex:1042718] 1056:FILE: contracts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol
[codex:1042718] 1141:FILE: contracts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol
[codex:1042718] 1172:FILE: contracts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol
[codex:1042718] 1202:FILE: contracts/@venusprotocol/protocol-reserve/contracts/Interfaces/IProtocolShareReserve.sol
[codex:1042718] 1222:FILE: contracts/@venusprotocol/solidity-utilities/contracts/TimeManagerV8.sol
[codex:1042718] 1303:FILE: contracts/@venusprotocol/solidity-utilities/contracts/constants.sol
[codex:1042718] 1318:FILE: contracts/@venusprotocol/venus-protocol/contracts/Tokens/Prime/Interfaces/IPrime.sol
[codex:1042718] 1547:FILE: contracts/@venusprotocol/venus-protocol/contracts/Tokens/Prime/PrimeStorage.sol
[codex:1042718] 1670:FILE: contracts/contracts/Comptroller.sol
[codex:1042718] 3432:FILE: contracts/contracts/ComptrollerInterface.sol
[codex:1042718] 3571:FILE: contracts/contracts/ComptrollerStorage.sol
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Determining first-party contract scope and audit targets**
[codex:1042718] exec
[codex:1042718] /bin/bash -lc "sed -n '1670,2100p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-c2n5vosy succeeded in 7ms:
[codex:1042718] FILE: contracts/contracts/Comptroller.sol
[codex:1042718] ================================================================================
[codex:1042718] // SPDX-License-Identifier: BSD-3-Clause
[codex:1042718] pragma solidity 0.8.25;
[codex:1042718] 
[codex:1042718] import { Ownable2StepUpgradeable } from "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol";
[codex:1042718] import { ResilientOracleInterface } from "@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol";
[codex:1042718] import { AccessControlledV8 } from "@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol";
[codex:1042718] import { IPrime } from "@venusprotocol/venus-protocol/contracts/Tokens/Prime/Interfaces/IPrime.sol";
[codex:1042718] 
[codex:1042718] import { ComptrollerInterface, Action } from "./ComptrollerInterface.sol";
[codex:1042718] import { ComptrollerStorage } from "./ComptrollerStorage.sol";
[codex:1042718] import { ExponentialNoError } from "./ExponentialNoError.sol";
[codex:1042718] import { VToken } from "./VToken.sol";
[codex:1042718] import { RewardsDistributor } from "./Rewards/RewardsDistributor.sol";
[codex:1042718] import { MaxLoopsLimitHelper } from "./MaxLoopsLimitHelper.sol";
[codex:1042718] import { ensureNonzeroAddress } from "./lib/validators.sol";
[codex:1042718] 
[codex:1042718] /**
[codex:1042718]  * @title Comptroller
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Reviewing Comptroller for risks**
[codex:1042718] exec
[codex:1042718] /bin/bash -lc "sed -n '2100,2600p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-c2n5vosy succeeded in 6ms:
[codex:1042718] 
[codex:1042718]         if (!markets[vToken].isListed) {
[codex:1042718]             revert MarketNotListed(address(vToken));
[codex:1042718]         }
[codex:1042718] 
[codex:1042718]         uint256 supplyCap = supplyCaps[vToken];
[codex:1042718]         // Skipping the cap check for uncapped coins to save some gas
[codex:1042718]         if (supplyCap != type(uint256).max) {
[codex:1042718]             uint256 vTokenSupply = VToken(vToken).totalSupply();
[codex:1042718]             Exp memory exchangeRate = Exp({ mantissa: VToken(vToken).exchangeRateStored() });
[codex:1042718]             uint256 nextTotalSupply = mul_ScalarTruncateAddUInt(exchangeRate, vTokenSupply, mintAmount);
[codex:1042718]             if (nextTotalSupply > supplyCap) {
[codex:1042718]                 revert SupplyCapExceeded(vToken, supplyCap);
[codex:1042718]             }
[codex:1042718]         }
[codex:1042718] 
[codex:1042718]         // Keep the flywheel moving
[codex:1042718]         uint256 rewardDistributorsCount = rewardsDistributors.length;
[codex:1042718] 
[codex:1042718]         for (uint256 i; i < rewardDistributorsCount; ++i) {
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Continuing exploration**
[codex:1042718] exec
[codex:1042718] /bin/bash -lc "sed -n '2600,3100p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-c2n5vosy succeeded in 6ms:
[codex:1042718]      * @custom:error CollateralExceedsThreshold error is thrown when the collateral is too big for a batch liquidation
[codex:1042718]      * @custom:error InsufficientCollateral error is thrown when there is not enough collateral to cover the debt
[codex:1042718]      * @custom:error SnapshotError is thrown if some vToken fails to return the account's supply and borrows
[codex:1042718]      * @custom:error PriceError is thrown if the oracle returns an incorrect price for some asset
[codex:1042718]      * @custom:access Not restricted
[codex:1042718]      */
[codex:1042718]     function liquidateAccount(address borrower, LiquidationOrder[] calldata orders) external {
[codex:1042718]         // We will accrue interest and update the oracle prices later during the liquidation
[codex:1042718] 
[codex:1042718]         AccountLiquiditySnapshot memory snapshot = _getCurrentLiquiditySnapshot(borrower, _getLiquidationThreshold);
[codex:1042718] 
[codex:1042718]         if (snapshot.totalCollateral > minLiquidatableCollateral) {
[codex:1042718]             // You should use the regular vToken.liquidateBorrow(...) call
[codex:1042718]             revert CollateralExceedsThreshold(minLiquidatableCollateral, snapshot.totalCollateral);
[codex:1042718]         }
[codex:1042718] 
[codex:1042718]         uint256 collateralToSeize = mul_ScalarTruncate(
[codex:1042718]             Exp({ mantissa: liquidationIncentiveMantissa }),
[codex:1042718]             snapshot.borrows
[codex:1042718]         );
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Examining potential vulnerabilities**
[codex:1042718] exec
[codex:1042718] /bin/bash -lc "sed -n '4018,4759p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-c2n5vosy succeeded in 6ms:
[codex:1042718] FILE: contracts/contracts/Rewards/RewardsDistributor.sol
[codex:1042718] ================================================================================
[codex:1042718] // SPDX-License-Identifier: BSD-3-Clause
[codex:1042718] pragma solidity 0.8.25;
[codex:1042718] 
[codex:1042718] import { Ownable2StepUpgradeable } from "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol";
[codex:1042718] import { IERC20Upgradeable } from "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol";
[codex:1042718] import { SafeERC20Upgradeable } from "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol";
[codex:1042718] import { AccessControlledV8 } from "@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol";
[codex:1042718] import { TimeManagerV8 } from "@venusprotocol/solidity-utilities/contracts/TimeManagerV8.sol";
[codex:1042718] 
[codex:1042718] import { ExponentialNoError } from "../ExponentialNoError.sol";
[codex:1042718] import { VToken } from "../VToken.sol";
[codex:1042718] import { Comptroller } from "../Comptroller.sol";
[codex:1042718] import { MaxLoopsLimitHelper } from "../MaxLoopsLimitHelper.sol";
[codex:1042718] import { RewardsDistributorStorage } from "./RewardsDistributorStorage.sol";
[codex:1042718] 
[codex:1042718] /**
[codex:1042718]  * @title `RewardsDistributor`
[codex:1042718]  * @author Venus
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Reviewing reward distribution logic**
[codex:1042718] exec
[codex:1042718] /bin/bash -lc "sed -n '4838,5600p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-c2n5vosy succeeded in 6ms:
[codex:1042718] FILE: contracts/contracts/VToken.sol
[codex:1042718] ================================================================================
[codex:1042718] // SPDX-License-Identifier: BSD-3-Clause
[codex:1042718] pragma solidity 0.8.25;
[codex:1042718] 
[codex:1042718] import { Ownable2StepUpgradeable } from "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol";
[codex:1042718] import { IERC20Upgradeable } from "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol";
[codex:1042718] import { SafeERC20Upgradeable } from "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol";
[codex:1042718] import { AccessControlledV8 } from "@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol";
[codex:1042718] import { IProtocolShareReserve } from "@venusprotocol/protocol-reserve/contracts/Interfaces/IProtocolShareReserve.sol";
[codex:1042718] 
[codex:1042718] import { VTokenInterface } from "./VTokenInterfaces.sol";
[codex:1042718] import { ComptrollerInterface, ComptrollerViewInterface } from "./ComptrollerInterface.sol";
[codex:1042718] import { TokenErrorReporter } from "./ErrorReporter.sol";
[codex:1042718] import { InterestRateModel } from "./InterestRateModel.sol";
[codex:1042718] import { ExponentialNoError } from "./ExponentialNoError.sol";
[codex:1042718] import { TimeManagerV8 } from "@venusprotocol/solidity-utilities/contracts/TimeManagerV8.sol";
[codex:1042718] import { ensureNonzeroAddress } from "./lib/validators.sol";
[codex:1042718] 
[codex:1042718] /**
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Reviewing internal functions for vulnerabilities**
[codex:1042718] exec
[codex:1042718] /bin/bash -lc "sed -n '5600,6400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-c2n5vosy succeeded in 6ms:
[codex:1042718]      * @return rate The borrow interest rate per slot(block or second), scaled by 1e18
[codex:1042718]      */
[codex:1042718]     function borrowRatePerBlock() external view override returns (uint256) {
[codex:1042718]         return interestRateModel.getBorrowRate(_getCashPrior(), totalBorrows, totalReserves, badDebt);
[codex:1042718]     }
[codex:1042718] 
[codex:1042718]     /**
[codex:1042718]      * @notice Returns the current per-slot(block or second) supply interest rate for this v
[codex:1042718]      * @return rate The supply interest rate per slot(block or second), scaled by 1e18
[codex:1042718]      */
[codex:1042718]     function supplyRatePerBlock() external view override returns (uint256) {
[codex:1042718]         return
[codex:1042718]             interestRateModel.getSupplyRate(
[codex:1042718]                 _getCashPrior(),
[codex:1042718]                 totalBorrows,
[codex:1042718]                 totalReserves,
[codex:1042718]                 reserveFactorMantissa,
[codex:1042718]                 badDebt
[codex:1042718]             );
[codex:1042718]     }
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Analyzing reentrancy risks in VToken functions**
[codex:1042718] 
[codex:1042718] I'm carefully examining which VToken functions use the nonReentrant guard and spotting that borrowBehalf lacks this protection, which may open reentrancy attacks via the underlying token’s transfer hooks. I'm weighing the state updates and external calls during borrowBehalf to understand if attackers could exploit these to break invariants or reenter protected functions, while also checking other functions like accrueInterest and sweepToken for similar concerns.
[codex:1042718] exec
[codex:1042718] /bin/bash -lc 'rg -n "delegatecall" AUDIT_BUNDLE.txt' in /tmp/codex-multi-c2n5vosy succeeded in 7ms:
[codex:1042718] 949:        (bool success, bytes memory returndata) = target.delegatecall(data);
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Reviewing upgradeability and security checks**
[codex:1042718] exec
[codex:1042718] /bin/bash -lc 'rg -n "reduceReservesBlockDelta" AUDIT_BUNDLE.txt' in /tmp/codex-multi-c2n5vosy succeeded in 7ms:
[codex:1042718] 5547:        emit NewReduceReservesBlockDelta(reduceReservesBlockDelta, _newReduceReservesBlockOrTimestampDelta);
[codex:1042718] 5548:        reduceReservesBlockDelta = _newReduceReservesBlockOrTimestampDelta;
[codex:1042718] 5710:        if (currentSlotNumber - reduceReservesBlockNumber >= reduceReservesBlockDelta) {
[codex:1042718] 6635:    uint256 public reduceReservesBlockDelta;
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Analyzing reduceReservesBlockDelta behavior**
[codex:1042718] exec
[codex:1042718] /bin/bash -lc 'rg -n "function _addToMarket" -n AUDIT_BUNDLE.txt' in /tmp/codex-multi-c2n5vosy succeeded in 8ms:
[codex:1042718] 3179:    function _addToMarket(VToken vToken, address borrower) internal {
[codex:1042718] exec
[codex:1042718] /bin/bash -lc "sed -n '3170,3290p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-c2n5vosy succeeded in 6ms:
[codex:1042718] 
[codex:1042718]         return assetsIn;
[codex:1042718]     }
[codex:1042718] 
[codex:1042718]     /**
[codex:1042718]      * @notice Add the market to the borrower's "assets in" for liquidity calculations
[codex:1042718]      * @param vToken The market to enter
[codex:1042718]      * @param borrower The address of the account to modify
[codex:1042718]      */
[codex:1042718]     function _addToMarket(VToken vToken, address borrower) internal {
[codex:1042718]         _checkActionPauseState(address(vToken), Action.ENTER_MARKET);
[codex:1042718]         Market storage marketToJoin = markets[address(vToken)];
[codex:1042718] 
[codex:1042718]         if (!marketToJoin.isListed) {
[codex:1042718]             revert MarketNotListed(address(vToken));
[codex:1042718]         }
[codex:1042718] 
[codex:1042718]         if (marketToJoin.accountMembership[borrower]) {
[codex:1042718]             // already joined
[codex:1042718]             return;
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Searching for updatePrices function**
[codex:1042718] exec
[codex:1042718] /bin/bash -lc 'rg -n "updatePrices" -n AUDIT_BUNDLE.txt' in /tmp/codex-multi-c2n5vosy succeeded in 7ms:
[codex:1042718] 2288:        updatePrices(borrower);
[codex:1042718] 2398:        updatePrices(borrower);
[codex:1042718] 3126:    function updatePrices(address account) public {
[codex:1042718] 3252:        updatePrices(redeemer);
[codex:1042718] exec
[codex:1042718] /bin/bash -lc "sed -n '3090,3185p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-c2n5vosy succeeded in 7ms:
[codex:1042718]      */
[codex:1042718]     function getRewardsByMarket(address vToken) external view returns (RewardSpeeds[] memory rewardSpeeds) {
[codex:1042718]         uint256 rewardsDistributorsLength = rewardsDistributors.length;
[codex:1042718]         rewardSpeeds = new RewardSpeeds[](rewardsDistributorsLength);
[codex:1042718]         for (uint256 i; i < rewardsDistributorsLength; ++i) {
[codex:1042718]             RewardsDistributor rewardsDistributor = rewardsDistributors[i];
[codex:1042718]             address rewardToken = address(rewardsDistributor.rewardToken());
[codex:1042718]             rewardSpeeds[i] = RewardSpeeds({
[codex:1042718]                 rewardToken: rewardToken,
[codex:1042718]                 supplySpeed: rewardsDistributor.rewardTokenSupplySpeeds(vToken),
[codex:1042718]                 borrowSpeed: rewardsDistributor.rewardTokenBorrowSpeeds(vToken)
[codex:1042718]             });
[codex:1042718]         }
[codex:1042718]         return rewardSpeeds;
[codex:1042718]     }
[codex:1042718] 
[codex:1042718]     /**
[codex:1042718]      * @notice Return all reward distributors for this pool
[codex:1042718]      * @return Array of RewardDistributor addresses
[codex:1042718]      */
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Checking upgradeable contract patterns**
[codex:1042718] exec
[codex:1042718] /bin/bash -lc "sed -n '1056,1145p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-c2n5vosy succeeded in 5ms:
[codex:1042718] FILE: contracts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol
[codex:1042718] ================================================================================
[codex:1042718] // SPDX-License-Identifier: BSD-3-Clause
[codex:1042718] pragma solidity 0.8.25;
[codex:1042718] 
[codex:1042718] import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
[codex:1042718] import "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol";
[codex:1042718] 
[codex:1042718] import "./IAccessControlManagerV8.sol";
[codex:1042718] 
[codex:1042718] /**
[codex:1042718]  * @title AccessControlledV8
[codex:1042718]  * @author Venus
[codex:1042718]  * @notice This contract is helper between access control manager and actual contract. This contract further inherited by other contract (using solidity 0.8.13)
[codex:1042718]  * to integrate access controlled mechanism. It provides initialise methods and verifying access methods.
[codex:1042718]  */
[codex:1042718] abstract contract AccessControlledV8 is Initializable, Ownable2StepUpgradeable {
[codex:1042718]     /// @notice Access control manager contract
[codex:1042718]     IAccessControlManagerV8 private _accessControlManager;
[codex:1042718] 
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Analyzing potential reentrancy and initialization risks**
[codex:1042718] 
[codex:1042718] I'm examining double initialization risks and various potential vulnerabilities like reentrancy in borrowBehalf and redeem interactions, underflow in allowance handling, liquidateAccount's order checks, and oracle price updates, thinking through how these might be exploited or prevented given existing guards and assumptions about token behavior.
[codex:1042718] exec
[codex:1042718] /bin/bash -lc "sed -n '3755,3913p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-c2n5vosy succeeded in 6ms:
[codex:1042718] FILE: contracts/contracts/ExponentialNoError.sol
[codex:1042718] ================================================================================
[codex:1042718] // SPDX-License-Identifier: BSD-3-Clause
[codex:1042718] pragma solidity 0.8.25;
[codex:1042718] 
[codex:1042718] import { EXP_SCALE as EXP_SCALE_, MANTISSA_ONE as MANTISSA_ONE_ } from "./lib/constants.sol";
[codex:1042718] 
[codex:1042718] /**
[codex:1042718]  * @title Exponential module for storing fixed-precision decimals
[codex:1042718]  * @author Compound
[codex:1042718]  * @notice Exp is a struct which stores decimals with a fixed precision of 18 decimal places.
[codex:1042718]  *         Thus, if we wanted to store the 5.1, mantissa would store 5.1e18. That is:
[codex:1042718]  *         `Exp({mantissa: 5100000000000000000})`.
[codex:1042718]  */
[codex:1042718] contract ExponentialNoError {
[codex:1042718]     struct Exp {
[codex:1042718]         uint256 mantissa;
[codex:1042718]     }
[codex:1042718] 
[codex:1042718]     struct Double {
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Analyzing reentrancy and access control risks**
[codex:1042718] 
[codex:1042718] I'm carefully evaluating potential reentrancy issues in `RewardsDistributor.claimRewardToken`, especially how transfers done after state updates might allow double claims if the reward token is malicious or ERC777. I'm also checking functions like `borrowBehalf` for missing nonReentrant protection and verifying access controls and upgradeability safeguards in related contracts to highlight any security gaps.
[codex:1042718] exec
[codex:1042718] /bin/bash -lc 'rg -n "_checkSenderIs" -n AUDIT_BUNDLE.txt' in /tmp/codex-multi-c2n5vosy succeeded in 7ms:
[codex:1042718] 2281:            _checkSenderIs(vToken);
[codex:1042718] 2767:        _checkSenderIs(poolRegistry);
[codex:1042718] 3415:    function _checkSenderIs(address expectedSender) internal view {
[codex:1042718] exec
[codex:1042718] /bin/bash -lc "sed -n '3400,3435p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-c2n5vosy succeeded in 6ms:
[codex:1042718]      */
[codex:1042718]     function _safeGetAccountSnapshot(
[codex:1042718]         VToken vToken,
[codex:1042718]         address user
[codex:1042718]     ) internal view returns (uint256 vTokenBalance, uint256 borrowBalance, uint256 exchangeRateMantissa) {
[codex:1042718]         uint256 err;
[codex:1042718]         (err, vTokenBalance, borrowBalance, exchangeRateMantissa) = vToken.getAccountSnapshot(user);
[codex:1042718]         if (err != 0) {
[codex:1042718]             revert SnapshotError(address(vToken), user);
[codex:1042718]         }
[codex:1042718]         return (vTokenBalance, borrowBalance, exchangeRateMantissa);
[codex:1042718]     }
[codex:1042718] 
[codex:1042718]     /// @notice Reverts if the call is not from expectedSender
[codex:1042718]     /// @param expectedSender Expected transaction sender
[codex:1042718]     function _checkSenderIs(address expectedSender) internal view {
[codex:1042718]         if (msg.sender != expectedSender) {
[codex:1042718]             revert UnexpectedSender(expectedSender, msg.sender);
[codex:1042718]         }
[codex:1042718]     }
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Analyzing potential vulnerabilities and contract checks**
[codex:1042718] exec
[codex:1042718] /bin/bash -lc 'rg -n "function borrowBehalf" contracts/contracts/VToken.sol' in /tmp/codex-multi-c2n5vosy succeeded in 6ms:
[codex:1042718] 402:    function borrowBehalf(address borrower, uint256 borrowAmount) external override returns (uint256) {
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Confirming file line numbers and references**
[codex:1042718] exec
[codex:1042718] /bin/bash -lc "sed -n '390,430p' contracts/contracts/VToken.sol" in /tmp/codex-multi-c2n5vosy succeeded in 5ms:
[codex:1042718] 
[codex:1042718]     /**
[codex:1042718]      * @notice Sender borrows assets on behalf of some other address. This function is only available
[codex:1042718]      *   for senders, explicitly marked as delegates of the borrower using `comptroller.updateDelegate`
[codex:1042718]      * @param borrower The borrower, on behalf of whom to borrow
[codex:1042718]      * @param borrowAmount The amount of the underlying asset to borrow
[codex:1042718]      * @return error Always NO_ERROR for compatibility with Venus core tooling
[codex:1042718]      * @custom:error DelegateNotApproved is thrown if caller is not approved delegate
[codex:1042718]      * @custom:error BorrowCashNotAvailable is thrown when the protocol has insufficient cash
[codex:1042718]      * @custom:event Emits Borrow event; may emit AccrueInterest
[codex:1042718]      * @custom:access Not restricted
[codex:1042718]      */
[codex:1042718]     function borrowBehalf(address borrower, uint256 borrowAmount) external override returns (uint256) {
[codex:1042718]         _ensureSenderIsDelegateOf(borrower);
[codex:1042718]         accrueInterest();
[codex:1042718] 
[codex:1042718]         _borrowFresh(borrower, msg.sender, borrowAmount);
[codex:1042718]         return NO_ERROR;
[codex:1042718]     }
[codex:1042718] 
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Locating claimRewardToken method**
[codex:1042718] exec
[codex:1042718] /bin/bash -lc 'rg -n "function claimRewardToken" contracts/contracts/Rewards/RewardsDistributor.sol' in /tmp/codex-multi-c2n5vosy succeeded in 6ms:
[codex:1042718] 300:    function claimRewardToken(address holder) external {
[codex:1042718] 336:    function claimRewardToken(address holder, VToken[] memory vTokens) public {
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Searching for function line numbers**
[codex:1042718] exec
[codex:1042718] /bin/bash -lc "sed -n '320,380p' contracts/contracts/Rewards/RewardsDistributor.sol" in /tmp/codex-multi-c2n5vosy succeeded in 6ms:
[codex:1042718]         if (deltaBlocksOrTimestamp > 0 && rewardTokenSpeed > 0) {
[codex:1042718]             uint256 newAccrued = mul_(deltaBlocksOrTimestamp, rewardTokenSpeed);
[codex:1042718]             uint256 contributorAccrued = add_(rewardTokenAccrued[contributor], newAccrued);
[codex:1042718] 
[codex:1042718]             rewardTokenAccrued[contributor] = contributorAccrued;
[codex:1042718]             lastContributorBlock[contributor] = blockNumberOrTimestamp;
[codex:1042718] 
[codex:1042718]             emit ContributorRewardsUpdated(contributor, rewardTokenAccrued[contributor]);
[codex:1042718]         }
[codex:1042718]     }
[codex:1042718] 
[codex:1042718]     /**
[codex:1042718]      * @notice Claim all the rewardToken accrued by holder in the specified markets
[codex:1042718]      * @param holder The address to claim REWARD TOKEN for
[codex:1042718]      * @param vTokens The list of markets to claim REWARD TOKEN in
[codex:1042718]      */
[codex:1042718]     function claimRewardToken(address holder, VToken[] memory vTokens) public {
[codex:1042718]         uint256 vTokensCount = vTokens.length;
[codex:1042718] 
[codex:1042718]         _ensureMaxLoops(vTokensCount);
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Extracting line numbers for _grantRewardToken**
[codex:1042718] exec
[codex:1042718] /bin/bash -lc 'rg -n "_grantRewardToken" -n contracts/contracts/Rewards/RewardsDistributor.sol' in /tmp/codex-multi-c2n5vosy succeeded in 6ms:
[codex:1042718] 183:        uint256 amountLeft = _grantRewardToken(recipient, amount);
[codex:1042718] 350:        rewardTokenAccrued[holder] = _grantRewardToken(holder, rewardTokenAccrued[holder]);
[codex:1042718] 558:    function _grantRewardToken(address user, uint256 amount) internal returns (uint256) {
[codex:1042718] exec
[codex:1042718] /bin/bash -lc "sed -n '540,590p' contracts/contracts/Rewards/RewardsDistributor.sol" in /tmp/codex-multi-c2n5vosy succeeded in 5ms:
[codex:1042718]         // Calculate REWARD TOKEN accrued: vTokenAmount * accruedPerBorrowedUnit
[codex:1042718]         if (borrowerAmount != 0) {
[codex:1042718]             uint256 borrowerDelta = mul_(borrowerAmount, deltaIndex);
[codex:1042718] 
[codex:1042718]             uint256 borrowerAccrued = add_(rewardTokenAccrued[borrower], borrowerDelta);
[codex:1042718]             rewardTokenAccrued[borrower] = borrowerAccrued;
[codex:1042718] 
[codex:1042718]             emit DistributedBorrowerRewardToken(VToken(vToken), borrower, borrowerDelta, borrowerAccrued, borrowIndex);
[codex:1042718]         }
[codex:1042718]     }
[codex:1042718] 
[codex:1042718]     /**
[codex:1042718]      * @notice Transfer REWARD TOKEN to the user.
[codex:1042718]      * @dev Note: If there is not enough REWARD TOKEN, we do not perform the transfer all.
[codex:1042718]      * @param user The address of the user to transfer REWARD TOKEN to
[codex:1042718]      * @param amount The amount of REWARD TOKEN to (possibly) transfer
[codex:1042718]      * @return The amount of REWARD TOKEN which was NOT transferred to the user
[codex:1042718]      */
[codex:1042718]     function _grantRewardToken(address user, uint256 amount) internal returns (uint256) {
[codex:1042718]         uint256 rewardTokenRemaining = rewardToken.balanceOf(address(this));
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Analyzing reentrancy and internal function locations**
[codex:1042718] exec
[codex:1042718] /bin/bash -lc "sed -n '1,220p' contracts/contracts/VTokenInterfaces.sol" in /tmp/codex-multi-c2n5vosy succeeded in 5ms:
[codex:1042718] // SPDX-License-Identifier: BSD-3-Clause
[codex:1042718] pragma solidity 0.8.25;
[codex:1042718] 
[codex:1042718] import { IERC20Upgradeable } from "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol";
[codex:1042718] import { ResilientOracleInterface } from "@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol";
[codex:1042718] 
[codex:1042718] import { ComptrollerInterface } from "./ComptrollerInterface.sol";
[codex:1042718] import { InterestRateModel } from "./InterestRateModel.sol";
[codex:1042718] 
[codex:1042718] /**
[codex:1042718]  * @title VTokenStorage
[codex:1042718]  * @author Venus
[codex:1042718]  * @notice Storage layout used by the `VToken` contract
[codex:1042718]  */
[codex:1042718] // solhint-disable-next-line max-states-count
[codex:1042718] contract VTokenStorage {
[codex:1042718]     /**
[codex:1042718]      * @notice Container for borrow balance information
[codex:1042718]      * @member principal Total balance (with accrued interest), after applying the most recent balance-changing action
[codex:1042718]      * @member interestIndex Global borrowIndex as of the most recent balance-changing action
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Analyzing potential reentrancy vulnerabilities and contract issues**
[codex:1042718] 
[codex:1042718] I’m evaluating two main findings: a missing nonReentrant guard on `borrowBehalf`, which poses a medium severity reentrancy risk due to possible nested calls enabled by certain tokens like ERC777, and reentrancy in `RewardsDistributor.claimRewardToken`, which has a low severity risk given the token is protocol-owned. I’m also scanning for other issues, such as reserve calculations and access controls, to assess if they introduce vulnerabilities or misconfigurations.
[codex:1042718] exec
[codex:1042718] /bin/bash -lc "sed -n '3571,3705p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-c2n5vosy succeeded in 6ms:
[codex:1042718] FILE: contracts/contracts/ComptrollerStorage.sol
[codex:1042718] ================================================================================
[codex:1042718] // SPDX-License-Identifier: BSD-3-Clause
[codex:1042718] pragma solidity 0.8.25;
[codex:1042718] 
[codex:1042718] import { ResilientOracleInterface } from "@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol";
[codex:1042718] 
[codex:1042718] import { VToken } from "./VToken.sol";
[codex:1042718] import { RewardsDistributor } from "./Rewards/RewardsDistributor.sol";
[codex:1042718] import { IPrime } from "@venusprotocol/venus-protocol/contracts/Tokens/Prime/Interfaces/IPrime.sol";
[codex:1042718] import { Action } from "./ComptrollerInterface.sol";
[codex:1042718] 
[codex:1042718] /**
[codex:1042718]  * @title ComptrollerStorage
[codex:1042718]  * @author Venus
[codex:1042718]  * @notice Storage layout for the `Comptroller` contract.
[codex:1042718]  */
[codex:1042718] contract ComptrollerStorage {
[codex:1042718]     struct LiquidationOrder {
[codex:1042718]         VToken vTokenCollateral;
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Analyzing potential vulnerabilities and controls**
[codex:1042718] exec
[codex:1042718] /bin/bash -lc 'rg -n "_safeGetUnderlyingPrice" -n contracts/contracts/Comptroller.sol' in /tmp/codex-multi-c2n5vosy succeeded in 6ms:
[codex:1042718] 1391:        uint256 priceBorrowedMantissa = _safeGetUnderlyingPrice(VToken(vTokenBorrowed));
[codex:1042718] 1392:        uint256 priceCollateralMantissa = _safeGetUnderlyingPrice(VToken(vTokenCollateral));
[codex:1042718] 1645:            Exp memory oraclePrice = Exp({ mantissa: _safeGetUnderlyingPrice(asset) });
[codex:1042718] 1696:    function _safeGetUnderlyingPrice(VToken asset) internal view returns (uint256) {
[codex:1042718] exec
[codex:1042718] /bin/bash -lc "sed -n '1670,1715p' contracts/contracts/Comptroller.sol" in /tmp/codex-multi-c2n5vosy succeeded in 6ms:
[codex:1042718]                 // borrow effect
[codex:1042718]                 // effects += oraclePrice * borrowAmount
[codex:1042718]                 snapshot.effects = mul_ScalarTruncateAddUInt(oraclePrice, borrowAmount, snapshot.effects);
[codex:1042718]             }
[codex:1042718]         }
[codex:1042718] 
[codex:1042718]         uint256 borrowPlusEffects = snapshot.borrows + snapshot.effects;
[codex:1042718]         // These are safe, as the underflow condition is checked first
[codex:1042718]         unchecked {
[codex:1042718]             if (snapshot.weightedCollateral > borrowPlusEffects) {
[codex:1042718]                 snapshot.liquidity = snapshot.weightedCollateral - borrowPlusEffects;
[codex:1042718]                 snapshot.shortfall = 0;
[codex:1042718]             } else {
[codex:1042718]                 snapshot.liquidity = 0;
[codex:1042718]                 snapshot.shortfall = borrowPlusEffects - snapshot.weightedCollateral;
[codex:1042718]             }
[codex:1042718]         }
[codex:1042718] 
[codex:1042718]         return snapshot;
[codex:1042718]     }
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Analyzing potential sources of errors in liquidation and reward logic**
[codex:1042718] exec
[codex:1042718] /bin/bash -lc "sed -n '3965,4018p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-c2n5vosy succeeded in 5ms:
[codex:1042718] FILE: contracts/contracts/MaxLoopsLimitHelper.sol
[codex:1042718] ================================================================================
[codex:1042718] // SPDX-License-Identifier: BSD-3-Clause
[codex:1042718] pragma solidity 0.8.25;
[codex:1042718] 
[codex:1042718] /**
[codex:1042718]  * @title MaxLoopsLimitHelper
[codex:1042718]  * @author Venus
[codex:1042718]  * @notice Abstract contract used to avoid collection with too many items that would generate gas errors and DoS.
[codex:1042718]  */
[codex:1042718] abstract contract MaxLoopsLimitHelper {
[codex:1042718]     // Limit for the loops to avoid the DOS
[codex:1042718]     uint256 public maxLoopsLimit;
[codex:1042718] 
[codex:1042718]     /**
[codex:1042718]      * @dev This empty reserved space is put in place to allow future versions to add new
[codex:1042718]      * variables without shifting down storage in the inheritance chain.
[codex:1042718]      * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps
[codex:1042718]      */
[codex:1042718]     uint256[49] private __gap;
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Analyzing potential reentrancy vulnerabilities**
[codex:1042718] exec
[codex:1042718] /bin/bash -lc 'rg -n "function _borrowFresh" -n contracts/contracts/VToken.sol' in /tmp/codex-multi-c2n5vosy succeeded in 7ms:
[codex:1042718] 1032:    function _borrowFresh(address borrower, address receiver, uint256 borrowAmount) internal {
[codex:1042718] exec
[codex:1042718] /bin/bash -lc "sed -n '1032,1085p' contracts/contracts/VToken.sol" in /tmp/codex-multi-c2n5vosy succeeded in 6ms:
[codex:1042718]     function _borrowFresh(address borrower, address receiver, uint256 borrowAmount) internal {
[codex:1042718]         /* Fail if borrow not allowed */
[codex:1042718]         comptroller.preBorrowHook(address(this), borrower, borrowAmount);
[codex:1042718] 
[codex:1042718]         /* Verify market's slot(block or second) number equals current slot(block or second) number */
[codex:1042718]         if (accrualBlockNumber != getBlockNumberOrTimestamp()) {
[codex:1042718]             revert BorrowFreshnessCheck();
[codex:1042718]         }
[codex:1042718] 
[codex:1042718]         /* Fail gracefully if protocol has insufficient underlying cash */
[codex:1042718]         if (_getCashPrior() - totalReserves < borrowAmount) {
[codex:1042718]             revert BorrowCashNotAvailable();
[codex:1042718]         }
[codex:1042718] 
[codex:1042718]         /*
[codex:1042718]          * We calculate the new borrower and total borrow balances, failing on overflow:
[codex:1042718]          *  accountBorrowNew = accountBorrow + borrowAmount
[codex:1042718]          *  totalBorrowsNew = totalBorrows + borrowAmount
[codex:1042718]          */
[codex:1042718]         uint256 accountBorrowsPrev = _borrowBalanceStored(borrower);
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Planning to check _doTransferOut line**
[codex:1042718] exec
[codex:1042718] /bin/bash -lc 'rg -n "function _doTransferOut" contracts/contracts/VToken.sol' in /tmp/codex-multi-c2n5vosy succeeded in 7ms:
[codex:1042718] 1474:    function _doTransferOut(address to, uint256 amount) internal virtual {
[codex:1042718] 
[codex:1042718] thinking
[codex:1042718] **Preparing detailed security findings JSON**
[codex:1042718] codex
[codex:1042718] {"no_findings":false,"summary":"Identified reentrancy gaps around delegated borrowing and reward claiming that could allow nested calls with reentrant tokens.","findings":[{"severity":"medium","category":"reentrancy","title":"borrowBehalf lacks reentrancy guard, enabling nested calls during underlying transfer","exploit_scenario":"A delegate contract calls `borrowBehalf` for a borrower on a vToken whose underlying token is ERC777 (or a malicious ERC20). During `_doTransferOut` the token’s hook reenters the vToken and calls other state-changing functions (e.g., another borrow/redeem) while `_notEntered` is still true, bypassing the intended reentrancy protection and potentially extracting more cash than allowed by normal sequencing.","recommendation":"Add `nonReentrant` to `borrowBehalf` (matching `borrow`) or move the guard into `_borrowFresh` so all borrow entrypoints are protected. Consider adding tests with ERC777-style hooks.","evidence":"`borrowBehalf` has no `nonReentrant` modifier and calls `_borrowFresh`, which performs an external `_doTransferOut` to the receiver.","locations":["contracts/contracts/VToken.sol:402","contracts/contracts/VToken.sol:1032"]},{"severity":"low","category":"reentrancy","title":"Reward claims update state after transfer, allowing reentrant double-claims with hook-enabled tokens","exploit_scenario":"If the reward token invokes a callback during `safeTransfer` (ERC777 or malicious ERC20), it can reenter `claimRewardToken` before `rewardTokenAccrued[holder]` is set to the post-transfer value. This enables repeated claims in a single transaction and can drain the RewardsDistributor’s balance.","recommendation":"Apply checks-effects-interactions: set `rewardTokenAccrued[holder]` to 0 (or the remaining amount) before calling `_grantRewardToken`, and optionally add a reentrancy guard to reward-claiming functions.","evidence":"`claimRewardToken` updates `rewardTokenAccrued` only after `_grantRewardToken` completes, and `_grantRewardToken` performs the external transfer.","locations":["contracts/contracts/Rewards/RewardsDistributor.sol:336","contracts/contracts/Rewards/RewardsDistributor.sol:558"]}]}
[codex:1042718] tokens used
[codex:1042718] 90,969
[codex:1042718] {"no_findings":false,"summary":"Identified reentrancy gaps around delegated borrowing and reward claiming that could allow nested calls with reentrant tokens.","findings":[{"severity":"medium","category":"reentrancy","title":"borrowBehalf lacks reentrancy guard, enabling nested calls during underlying transfer","exploit_scenario":"A delegate contract calls `borrowBehalf` for a borrower on a vToken whose underlying token is ERC777 (or a malicious ERC20). During `_doTransferOut` the token’s hook reenters the vToken and calls other state-changing functions (e.g., another borrow/redeem) while `_notEntered` is still true, bypassing the intended reentrancy protection and potentially extracting more cash than allowed by normal sequencing.","recommendation":"Add `nonReentrant` to `borrowBehalf` (matching `borrow`) or move the guard into `_borrowFresh` so all borrow entrypoints are protected. Consider adding tests with ERC777-style hooks.","evidence":"`borrowBehalf` has no `nonReentrant` modifier and calls `_borrowFresh`, which performs an external `_doTransferOut` to the receiver.","locations":["contracts/contracts/VToken.sol:402","contracts/contracts/VToken.sol:1032"]},{"severity":"low","category":"reentrancy","title":"Reward claims update state after transfer, allowing reentrant double-claims with hook-enabled tokens","exploit_scenario":"If the reward token invokes a callback during `safeTransfer` (ERC777 or malicious ERC20), it can reenter `claimRewardToken` before `rewardTokenAccrued[holder]` is set to the post-transfer value. This enables repeated claims in a single transaction and can drain the RewardsDistributor’s balance.","recommendation":"Apply checks-effects-interactions: set `rewardTokenAccrued[holder]` to 0 (or the remaining amount) before calling `_grantRewardToken`, and optionally add a reentrancy guard to reward-claiming functions.","evidence":"`claimRewardToken` updates `rewardTokenAccrued` only after `_grantRewardToken` completes, and `_grantRewardToken` performs the external transfer.","locations":["contracts/contracts/Rewards/RewardsDistributor.sol:336","contracts/contracts/Rewards/RewardsDistributor.sol:558"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-29T18:24:54.455183+00:00",
        "returncode": 0
    },
    "summary": "Identified reentrancy gaps around delegated borrowing and reward claiming that could allow nested calls with reentrant tokens.",
    "raw_final": {
        "summary": "Identified reentrancy gaps around delegated borrowing and reward claiming that could allow nested calls with reentrant tokens.",
        "findings": [
            {
                "title": "borrowBehalf lacks reentrancy guard, enabling nested calls during underlying transfer",
                "category": "reentrancy",
                "evidence": "`borrowBehalf` has no `nonReentrant` modifier and calls `_borrowFresh`, which performs an external `_doTransferOut` to the receiver.",
                "severity": "medium",
                "locations": [
                    "contracts/contracts/VToken.sol:402",
                    "contracts/contracts/VToken.sol:1032"
                ],
                "recommendation": "Add `nonReentrant` to `borrowBehalf` (matching `borrow`) or move the guard into `_borrowFresh` so all borrow entrypoints are protected. Consider adding tests with ERC777-style hooks.",
                "exploit_scenario": "A delegate contract calls `borrowBehalf` for a borrower on a vToken whose underlying token is ERC777 (or a malicious ERC20). During `_doTransferOut` the token\u2019s hook reenters the vToken and calls other state-changing functions (e.g., another borrow/redeem) while `_notEntered` is still true, bypassing the intended reentrancy protection and potentially extracting more cash than allowed by normal sequencing."
            },
            {
                "title": "Reward claims update state after transfer, allowing reentrant double-claims with hook-enabled tokens",
                "category": "reentrancy",
                "evidence": "`claimRewardToken` updates `rewardTokenAccrued` only after `_grantRewardToken` completes, and `_grantRewardToken` performs the external transfer.",
                "severity": "low",
                "locations": [
                    "contracts/contracts/Rewards/RewardsDistributor.sol:336",
                    "contracts/contracts/Rewards/RewardsDistributor.sol:558"
                ],
                "recommendation": "Apply checks-effects-interactions: set `rewardTokenAccrued[holder]` to 0 (or the remaining amount) before calling `_grantRewardToken`, and optionally add a reentrancy guard to reward-claiming functions.",
                "exploit_scenario": "If the reward token invokes a callback during `safeTransfer` (ERC777 or malicious ERC20), it can reenter `claimRewardToken` before `rewardTokenAccrued[holder]` is set to the post-transfer value. This enables repeated claims in a single transaction and can drain the RewardsDistributor\u2019s balance."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
2
CALL-family (heavy)
35
EXT*/BALANCE
18
Total opcodes
12381
Flags
create_opcodes_present heavy_ext_balance_usage call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLVALUE
00000006: DUP1
00000007: ISZERO
00000008: PUSH2 0x0010
0000000b: JUMPI
0000000c: PUSH1 0x00
0000000e: DUP1
0000000f: REVERT
00000010: JUMPDEST
00000011: POP
00000012: PUSH1 0x04
00000014: CALLDATASIZE
00000015: LT
00000016: PUSH2 0x0433
00000019: JUMPI
0000001a: PUSH1 0x00
0000001c: CALLDATALOAD
0000001d: PUSH1 0xe0
0000001f: SHR
00000020: DUP1
00000021: PUSH4 0x7821a514
00000026: GT
00000027: PUSH2 0x0236
0000002a: JUMPI
0000002b: DUP1
0000002c: PUSH4 0xb2a02ff1
00000031: GT
00000032: PUSH2 0x013b
00000035: JUMPI
00000036: DUP1
00000037: PUSH4 0xdd62ed3e
0000003c: GT
0000003d: PUSH2 0x00c3
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0xef60450c
00000047: GT
00000048: PUSH2 0x0087
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0xef60450c
00000052: EQ
00000053: PUSH2 0x0932
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0xf2fde38b
0000005d: EQ
0000005e: PUSH2 0x0945
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0xf3fdb15a
00000068: EQ
00000069: PUSH2 0x0958
0000006c: JUMPI
0000006d: DUP1
0000006e: PUSH4 0xf5e3c462
00000073: EQ
00000074: PUSH2 0x096b
00000077: JUMPI
00000078: DUP1
00000079: PUSH4 0xf8f9da28
0000007e: EQ
0000007f: PUSH2 0x097e
00000082: JUMPI
00000083: PUSH1 0x00
00000085: DUP1
00000086: REVERT
00000087: JUMPDEST
00000088: DUP1
00000089: PUSH4 0xdd62ed3e
0000008e: EQ
0000008f: PUSH2 0x08b5
00000092: JUMPI
00000093: DUP1
00000094: PUSH4 0xdf3a516e
00000099: EQ
0000009a: PUSH2 0x08ee
0000009d: JUMPI
0000009e: DUP1
0000009f: PUSH4 0xe1d146fb
000000a4: EQ
000000a5: PUSH2 0x0901
000000a8: JUMPI
000000a9: DUP1
000000aa: PUSH4 0xe30c3978
000000af: EQ
000000b0: PUSH2 0x0909
000000b3: JUMPI
000000b4: DUP1
000000b5: PUSH4 0xe9a44fd9
000000ba: EQ
000000bb: PUSH2 0x091a
000000be: JUMPI
000000bf: PUSH1 0x00
000000c1: DUP1
000000c2: REVERT
000000c3: JUMPDEST
000000c4: DUP1
000000c5: PUSH4 0xc37f68e2
000000ca: GT
000000cb: PUSH2 0x010a
000000ce: JUMPI
000000cf: DUP1
000000d0: PUSH4 0xc37f68e2
000000d5: EQ
000000d6: PUSH2 0x082c
000000d9: JUMPI
000000da: DUP1
000000db: PUSH4 0xc5ebeaec
000000e0: EQ
000000e1: PUSH2 0x085f
000000e4: JUMPI
000000e5: DUP1
000000e6: PUSH4 0xc7ad0895
000000eb: EQ
000000ec: PUSH2 0x0872
000000ef: JUMPI
000000f0: DUP1
000000f1: PUSH4 0xd1109c2f
000000f6: EQ
000000f7: PUSH2 0x0899
000000fa: JUMPI
000000fb: DUP1
000000fc: PUSH4 0xdb006a75
00000101: EQ
00000102: PUSH2 0x08a2
00000105: JUMPI
00000106: PUSH1 0x00
00000108: DUP1
00000109: REVERT
0000010a: JUMPDEST
0000010b: DUP1
0000010c: PUSH4 0xb2a02ff1
00000111: EQ
00000112: PUSH2 0x07f7
00000115: JUMPI
00000116: DUP1
00000117: PUSH4 0xb4a0bdf3
0000011c: EQ
0000011d: PUSH2 0x080a
00000120: JUMPI
00000121: DUP1
00000122: PUSH4 0xbbcac557
00000127: EQ
00000128: PUSH2 0x081b
0000012b: JUMPI
0000012c: DUP1
0000012d: PUSH4 0xbd6d894d
00000132: EQ
00000133: PUSH2 0x0824
00000136: JUMPI
00000137: PUSH1 0x00
00000139: DUP1
0000013a: REVERT
0000013b: JUMPDEST
0000013c: DUP1
0000013d: PUSH4 0x95d89b41
00000142: GT
00000143: PUSH2 0x01be
00000146: JUMPI
00000147: DUP1
00000148: PUSH4 0xa6afed95
0000014d: GT
0000014e: PUSH2 0x018d
00000151: JUMPI
00000152: DUP1
00000153: PUSH4 0xa6afed95
00000158: EQ
00000159: PUSH2 0x07c2
0000015c: JUMPI
0000015d: DUP1
0000015e: PUSH4 0xa9059cbb
00000163: EQ
00000164: PUSH2 0x07ca
00000167: JUMPI
00000168: DUP1
00000169: PUSH4 0xaa5af0fd
0000016e: EQ
0000016f: PUSH2 0x07dd
00000172: JUMPI
00000173: DUP1
00000174: PUSH4 0xae96f141
00000179: EQ
0000017a: PUSH2 0x07e6
0000017d: JUMPI
0000017e: DUP1
0000017f: PUSH4 0xae9d70b0
00000184: EQ
00000185: PUSH2 0x07ef
00000188: JUMPI
00000189: PUSH1 0x00
0000018b: DUP1
0000018c: REVERT
0000018d: JUMPDEST
0000018e: DUP1
0000018f: PUSH4 0x95d89b41
00000194: EQ
00000195: PUSH2 0x0781
00000198: JUMPI
00000199: DUP1
0000019a: PUSH4 0x95dd9193
0000019f: EQ
000001a0: PUSH2 0x0789
000001a3: JUMPI
000001a4: DUP1
000001a5: PUSH4 0xa0712d68
000001aa: EQ
000001ab: PUSH2 0x079c
000001ae: JUMPI
000001af: DUP1
000001b0: PUSH4 0xa457c2d7
000001b5: EQ
000001b6: PUSH2 0x07af
000001b9: JUMPI
000001ba: PUSH1 0x00
000001bc: DUP1
000001bd: REVERT
000001be: JUMPDEST
000001bf: DUP1
000001c0: PUSH4 0x8a42c319
000001c5: GT
000001c6: PUSH2 0x0205
000001c9: JUMPI
000001ca: DUP1
000001cb: PUSH4 0x8a42c319
000001d0: EQ
000001d1: PUSH2 0x072e
000001d4: JUMPI
000001d5: DUP1
000001d6: PUSH4 0x8bbdb6db
000001db: EQ
000001dc: PUSH2 0x0741
000001df: JUMPI
000001e0: DUP1
000001e1: PUSH4 0x8bcd4016
000001e6: EQ
000001e7: PUSH2 0x0754
000001ea: JUMPI
000001eb: DUP1
000001ec: PUSH4 0x8da5cb5b
000001f1: EQ
000001f2: PUSH2 0x0767
000001f5: JUMPI
000001f6: DUP1
000001f7: PUSH4 0x8f840ddd
000001fc: EQ
000001fd: PUSH2 0x0778
00000200: JUMPI
00000201: PUSH1 0x00
00000203: DUP1
00000204: REVERT
00000205: JUMPDEST
00000206: DUP1
00000207: PUSH4 0x7821a514
0000020c: EQ
0000020d: PUSH2 0x06ed
00000210: JUMPI
00000211: DUP1
00000212: PUSH4 0x79ba5097
00000217: EQ
00000218: PUSH2 0x0700
0000021b: JUMPI
0000021c: DUP1
0000021d: PUSH4 0x852a12e3
00000222: EQ
00000223: PUSH2 0x0708
00000226: JUMPI
00000227: DUP1
00000228: PUSH4 0x856e5bb3
0000022d: EQ
0000022e: PUSH2 0x071b
00000231: JUMPI
00000232: PUSH1 0x00
00000234: DUP1
00000235: REVERT
00000236: JUMPDEST
00000237: DUP1
00000238: PUSH4 0x313ce567
0000023d: GT
0000023e: PUSH2 0x033c
00000241: JUMPI
00000242: DUP1
00000243: PUSH4 0x6752e702
00000248: GT
00000249: PUSH2 0x02c4
0000024c: JUMPI
0000024d: DUP1
0000024e: PUSH4 0x6f307dc3
00000253: GT
00000254: PUSH2 0x0293
00000257: JUMPI
00000258: DUP1
00000259: PUSH4 0x6f307dc3
0000025e: EQ
0000025f: PUSH2 0x0689
00000262: JUMPI
00000263: DUP1
00000264: PUSH4 0x70a08231
00000269: EQ
0000026a: PUSH2 0x06a1
0000026d: JUMPI
0000026e: DUP1
0000026f: PUSH4 0x715018a6
00000274: EQ
00000275: PUSH2 0x06ca
00000278: JUMPI
00000279: DUP1
0000027a: PUSH4 0x73acee98
0000027f: EQ
00000280: PUSH2 0x06d2
00000283: JUMPI
00000284: DUP1
00000285: PUSH4 0x757212f0
0000028a: EQ
0000028b: PUSH2 0x06da
0000028e: JUMPI
0000028f: PUSH1 0x00
00000291: DUP1
00000292: REVERT
00000293: JUMPDEST
00000294: DUP1
00000295: PUSH4 0x6752e702
0000029a: EQ
0000029b: PUSH2 0x0648
0000029e: JUMPI
0000029f: DUP1
000002a0: PUSH4 0x6857249c
000002a5: EQ
000002a6: PUSH2 0x0651
000002a9: JUMPI
000002aa: DUP1
000002ab: PUSH4 0x69ab3250
000002b0: EQ
000002b1: PUSH2 0x0678
000002b4: JUMPI
000002b5: DUP1
000002b6: PUSH4 0x6c540baf
000002bb: EQ
000002bc: PUSH2 0x0680
000002bf: JUMPI
000002c0: PUSH1 0x00
000002c2: DUP1
000002c3: REVERT
000002c4: JUMPDEST
000002c5: DUP1
000002c6: PUSH4 0x3d9ea3a1
000002cb: GT
000002cc: PUSH2 0x030b
000002cf: JUMPI
000002d0: DUP1
000002d1: PUSH4 0x3d9ea3a1
000002d6: EQ
000002d7: PUSH2 0x05ff
000002da: JUMPI
000002db: DUP1
000002dc: PUSH4 0x41f641ee
000002e1: EQ
000002e2: PUSH2 0x0606
000002e5: JUMPI
000002e6: DUP1
000002e7: PUSH4 0x44fe6ffe
000002ec: EQ
000002ed: PUSH2 0x0619
000002f0: JUMPI
000002f1: DUP1
000002f2: PUSH4 0x47bd3718
000002f7: EQ
000002f8: PUSH2 0x062c
000002fb: JUMPI
000002fc: DUP1
000002fd: PUSH4 0x5fe3b567
00000302: EQ
00000303: PUSH2 0x0635
00000306: JUMPI
00000307: PUSH1 0x00
00000309: DUP1
0000030a: REVERT
0000030b: JUMPDEST
0000030c: DUP1
0000030d: PUSH4 0x313ce567
00000312: EQ
00000313: PUSH2 0x05b2
00000316: JUMPI
00000317: DUP1
00000318: PUSH4 0x39509351
0000031d: EQ
0000031e: PUSH2 0x05d1
00000321: JUMPI
00000322: DUP1
00000323: PUSH4 0x3af9e669
00000328: EQ
00000329: PUSH2 0x05e4
0000032c: JUMPI
0000032d: DUP1
0000032e: PUSH4 0x3b1d21a2
00000333: EQ
00000334: PUSH2 0x05f7
00000337: JUMPI
00000338: PUSH1 0x00
0000033a: DUP1
0000033b: REVERT
0000033c: JUMPDEST
0000033d: DUP1
0000033e: PUSH4 0x182df0f5
00000343: GT
00000344: PUSH2 0x03bf
00000347: JUMPI
00000348: DUP1
00000349: PUSH4 0x210bc052
0000034e: GT
0000034f: PUSH2 0x038e
00000352: JUMPI
00000353: DUP1
00000354: PUSH4 0x210bc052
00000359: EQ
0000035a: PUSH2 0x0553
0000035d: JUMPI
0000035e: DUP1
0000035f: PUSH4 0x23323e03
00000364: EQ
00000365: PUSH2 0x0566
00000368: JUMPI
00000369: DUP1
0000036a: PUSH4 0x23b872dd
0000036f: EQ
00000370: PUSH2 0x0579
00000373: JUMPI
00000374: DUP1
00000375: PUSH4 0x2464176b
0000037a: EQ
0000037b: PUSH2 0x058c
0000037e: JUMPI
0000037f: DUP1
00000380: PUSH4 0x2608f818
00000385: EQ
00000386: PUSH2 0x059f
00000389: JUMPI
0000038a: PUSH1 0x00
0000038c: DUP1
0000038d: REVERT
0000038e: JUMPDEST
0000038f: DUP1
00000390: PUSH4 0x182df0f5
00000395: EQ
00000396: PUSH2 0x04fa
00000399: JUMPI
0000039a: DUP1
0000039b: PUSH4 0x19b1faef
000003a0: EQ
000003a1: PUSH2 0x0502
000003a4: JUMPI
000003a5: DUP1
000003a6: PUSH4 0x1be19560
000003ab: EQ
000003ac: PUSH2 0x052d
000003af: JUMPI
000003b0: DUP1
000003b1: PUSH4 0x1c446983
000003b6: EQ
000003b7: PUSH2 0x0540
000003ba: JUMPI
000003bb: PUSH1 0x00
000003bd: DUP1
000003be: REVERT
000003bf: JUMPDEST
000003c0: DUP1
000003c1: PUSH4 0x0e752702
000003c6: GT
000003c7: PUSH2 0x0406
000003ca: JUMPI
000003cb: DUP1
000003cc: PUSH4 0x0e752702
000003d1: EQ
000003d2: PUSH2 0x04a1
000003d5: JUMPI
000003d6: DUP1
000003d7: PUSH4 0x107568df
000003dc: EQ
000003dd: PUSH2 0x04c2
000003e0: JUMPI
000003e1: DUP1
000003e2: PUSH4 0x173b9904
000003e7: EQ
000003e8: PUSH2 0x04d5
000003eb: JUMPI
000003ec: DUP1
000003ed: PUSH4 0x17bfdfbc
000003f2: EQ
000003f3: PUSH2 0x04de
000003f6: JUMPI
000003f7: DUP1
000003f8: PUSH4 0x18160ddd
000003fd: EQ
000003fe: PUSH2 0x04f1
00000401: JUMPI
00000402: PUSH1 0x00
00000404: DUP1
00000405: REVERT
00000406: JUMPDEST
00000407: DUP1
00000408: PUSH4 0x06fdde03
0000040d: EQ
0000040e: PUSH2 0x0438
00000411: JUMPI
00000412: DUP1
00000413: PUSH4 0x07e27959
00000418: EQ
00000419: PUSH2 0x0456
0000041c: JUMPI
0000041d: DUP1
0000041e: PUSH4 0x095ea7b3
00000423: EQ
00000424: PUSH2 0x046b
00000427: JUMPI
00000428: DUP1
00000429: PUSH4 0x0e32cb86
0000042e: EQ
0000042f: PUSH2 0x048e
00000432: JUMPI
00000433: JUMPDEST
00000434: PUSH1 0x00
00000436: DUP1
00000437: REVERT
00000438: JUMPDEST
00000439: PUSH2 0x0440
0000043c: PUSH2 0x0986
0000043f: JUMP
00000440: JUMPDEST
00000441: PUSH1 0x40
00000443: MLOAD
00000444: PUSH2 0x044d
00000447: SWAP2
00000448: SWAP1
00000449: PUSH2 0x468f
0000044c: JUMP
0000044d: JUMPDEST
0000044e: PUSH1 0x40
00000450: MLOAD
00000451: DUP1
00000452: SWAP2
00000453: SUB
00000454: SWAP1
00000455: RETURN
00000456: JUMPDEST
00000457: PUSH2 0x0469
0000045a: PUSH2 0x0464
0000045d: CALLDATASIZE
0000045e: PUSH1 0x04
00000460: PUSH2 0x46a2
00000463: JUMP
00000464: JUMPDEST
00000465: PUSH2 0x0a14
00000468: JUMP
00000469: JUMPDEST
0000046a: STOP
0000046b: JUMPDEST
0000046c: PUSH2 0x047e
0000046f: PUSH2 0x0479
00000472: CALLDATASIZE
00000473: PUSH1 0x04
00000475: PUSH2 0x46e0
00000478: JUMP
00000479: JUMPDEST
0000047a: PUSH2 0x0a7b
0000047d: JUMP
0000047e: JUMPDEST
0000047f: PUSH1 0x40
00000481: MLOAD
00000482: SWAP1
00000483: ISZERO
00000484: ISZERO
00000485: DUP2
00000486: MSTORE
00000487: PUSH1 0x20
00000489: ADD
0000048a: PUSH2 0x044d
0000048d: JUMP
0000048e: JUMPDEST
0000048f: PUSH2 0x0469
00000492: PUSH2 0x049c
00000495: CALLDATASIZE
00000496: PUSH1 0x04
00000498: PUSH2 0x470c
0000049b: JUMP
0000049c: JUMPDEST
0000049d: PUSH2 0x0aec
000004a0: JUMP
000004a1: JUMPDEST
000004a2: PUSH2 0x04b4
000004a5: PUSH2 0x04af
000004a8: CALLDATASIZE
000004a9: PUSH1 0x04
000004ab: PUSH2 0x46a2
000004ae: JUMP
000004af: JUMPDEST
000004b0: PUSH2 0x0b00
000004b3: JUMP
000004b4: JUMPDEST
000004b5: PUSH1 0x40
000004b7: MLOAD
000004b8: SWAP1
000004b9: DUP2
000004ba: MSTORE
000004bb: PUSH1 0x20
000004bd: ADD
000004be: PUSH2 0x044d
000004c1: JUMP
000004c2: JUMPDEST
000004c3: PUSH2 0x0469
000004c6: PUSH2 0x04d0
000004c9: CALLDATASIZE
000004ca: PUSH1 0x04
000004cc: PUSH2 0x470c
000004cf: JUMP
000004d0: JUMPDEST
000004d1: PUSH2 0x0b5a
000004d4: JUMP
000004d5: JUMPDEST
000004d6: PUSH2 0x04b4
000004d9: PUSH1 0xd0
000004db: SLOAD
000004dc: DUP2
000004dd: JUMP
000004de: JUMPDEST
000004df: PUSH2 0x04b4
000004e2: PUSH2 0x04ec
000004e5: CALLDATASIZE
000004e6: PUSH1 0x04
000004e8: PUSH2 0x470c
000004eb: JUMP
000004ec: JUMPDEST
000004ed: PUSH2 0x0b6b
000004f0: JUMP
000004f1: JUMPDEST
000004f2: PUSH2 0x04b4
000004f5: PUSH1 0xd5
000004f7: SLOAD
000004f8: DUP2
000004f9: JUMP
000004fa: JUMPDEST
000004fb: PUSH2 0x04b4
000004fe: PUSH2 0x0bc0
00000501: JUMP
00000502: JUMPDEST
00000503: PUSH1 0xdb
00000505: SLOAD
00000506: PUSH2 0x0515
00000509: SWAP1
0000050a: PUSH1 0x01
0000050c: PUSH1 0x01
0000050e: PUSH1 0xa0
00000510: SHL
00000511: SUB
00000512: AND
00000513: DUP2
00000514: JUMP
00000515: JUMPDEST
00000516: PUSH1 0x40
00000518: MLOAD
00000519: PUSH1 0x01
0000051b: PUSH1 0x01
0000051d: PUSH1 0xa0
0000051f: SHL
00000520: SUB
00000521: SWAP1
00000522: SWAP2
00000523: AND
00000524: DUP2
00000525: MSTORE
00000526: PUSH1 0x20
00000528: ADD
00000529: PUSH2 0x044d
0000052c: JUMP
0000052d: JUMPDEST
0000052e: PUSH2 0x0469
00000531: PUSH2 0x053b
00000534: CALLDATASIZE
00000535: PUSH1 0x04
00000537: PUSH2 0x470c
0000053a: JUMP
0000053b: JUMPDEST
0000053c: PUSH2 0x0bcf
0000053f: JUMP
00000540: JUMPDEST
00000541: PUSH2 0x0469
00000544: PUSH2 0x054e
00000547: CALLDATASIZE
00000548: PUSH1 0x04
0000054a: PUSH2 0x46a2
0000054d: JUMP
0000054e: JUMPDEST
0000054f: PUSH2 0x0d8a
00000552: JUMP
00000553: JUMPDEST
00000554: PUSH2 0x04b4
00000557: PUSH2 0x0561
0000055a: CALLDATASIZE
0000055b: PUSH1 0x04
0000055d: PUSH2 0x46e0
00000560: JUMP
00000561: JUMPDEST
00000562: PUSH2 0x0e05
00000565: JUMP
00000566: JUMPDEST
00000567: PUSH2 0x04b4
0000056a: PUSH2 0x0574
0000056d: CALLDATASIZE
0000056e: PUSH1 0x04
00000570: PUSH2 0x46e0
00000573: JUMP
00000574: JUMPDEST
00000575: PUSH2 0x0e69
00000578: JUMP
00000579: JUMPDEST
0000057a: PUSH2 0x047e
0000057d: PUSH2 0x0587
00000580: CALLDATASIZE
00000581: PUSH1 0x04
00000583: PUSH2 0x4729
00000586: JUMP
00000587: JUMPDEST
00000588: PUSH2 0x0eb5
0000058b: JUMP
0000058c: JUMPDEST
0000058d: PUSH2 0x0469
00000590: PUSH2 0x059a
00000593: CALLDATASIZE
00000594: PUSH1 0x04
00000596: PUSH2 0x46a2
00000599: JUMP
0000059a: JUMPDEST
0000059b: PUSH2 0x0f07
0000059e: JUMP
0000059f: JUMPDEST
000005a0: PUSH2 0x04b4
000005a3: PUSH2 0x05ad
000005a6: CALLDATASIZE
000005a7: PUSH1 0x04
000005a9: PUSH2 0x46e0
000005ac: JUMP
000005ad: JUMPDEST
000005ae: PUSH2 0x0fa9
000005b1: JUMP
000005b2: JUMPDEST
000005b3: PUSH1 0xcc
000005b5: SLOAD
000005b6: PUSH2 0x05bf
000005b9: SWAP1
000005ba: PUSH1 0xff
000005bc: AND
000005bd: DUP2
000005be: JUMP
000005bf: JUMPDEST
000005c0: PUSH1 0x40
000005c2: MLOAD
000005c3: PUSH1 0xff
000005c5: SWAP1
000005c6: SWAP2
000005c7: AND
000005c8: DUP2
000005c9: MSTORE
000005ca: PUSH1 0x20
000005cc: ADD
000005cd: PUSH2 0x044d
000005d0: JUMP
000005d1: JUMPDEST
000005d2: PUSH2 0x047e
000005d5: PUSH2 0x05df
000005d8: CALLDATASIZE
000005d9: PUSH1 0x04
000005db: PUSH2 0x46e0
000005de: JUMP
000005df: JUMPDEST
000005e0: PUSH2 0x1004
000005e3: JUMP
000005e4: JUMPDEST
000005e5: PUSH2 0x04b4
000005e8: PUSH2 0x05f2
000005eb: CALLDATASIZE
000005ec: PUSH1 0x04
000005ee: PUSH2 0x470c
000005f1: JUMP
000005f2: JUMPDEST
000005f3: PUSH2 0x10ac
000005f6: JUMP
000005f7: JUMPDEST
000005f8: PUSH2 0x04b4
000005fb: PUSH2 0x10f2
000005fe: JUMP
000005ff: JUMPDEST
00000600: PUSH1 0x01
00000602: PUSH2 0x047e
00000605: JUMP
00000606: JUMPDEST
00000607: PUSH2 0x0469
0000060a: PUSH2 0x0614
0000060d: CALLDATASIZE
0000060e: PUSH1 0x04
00000610: PUSH2 0x470c
00000613: JUMP
00000614: JUMPDEST
00000615: PUSH2 0x10fc
00000618: JUMP
00000619: JUMPDEST
0000061a: PUSH2 0x0469
0000061d: PUSH2 0x0627
00000620: CALLDATASIZE
00000621: PUSH1 0x04
00000623: PUSH2 0x4729
00000626: JUMP
00000627: JUMPDEST
00000628: PUSH2 0x110d
0000062b: JUMP
0000062c: JUMPDEST
0000062d: PUSH2 0x04b4
00000630: PUSH1 0xd3
00000632: SLOAD
00000633: DUP2
00000634: JUMP
00000635: JUMPDEST
00000636: PUSH1 0xcd
00000638: SLOAD
00000639: PUSH2 0x0515
0000063c: SWAP1
0000063d: PUSH1 0x01
0000063f: PUSH1 0x01
00000641: PUSH1 0xa0
00000643: SHL
00000644: SUB
00000645: AND
00000646: DUP2
00000647: JUMP
00000648: JUMPDEST
00000649: PUSH2 0x04b4
0000064c: PUSH1 0xda
0000064e: SLOAD
0000064f: DUP2
00000650: JUMP
00000651: JUMPDEST
00000652: PUSH2 0x04b4
00000655: PUSH32 0x00000000000000000000000000000000000000000000000000000000002819a0
00000676: DUP2
00000677: JUMP
00000678: JUMPDEST
00000679: PUSH2 0x04b4
0000067c: PUSH1 0x00
0000067e: DUP2
0000067f: JUMP
00000680: JUMPDEST
00000681: PUSH2 0x04b4
00000684: PUSH1 0xd1
00000686: SLOAD
00000687: DUP2
00000688: JUMP
00000689: JUMPDEST
0000068a: PUSH1 0xc9
0000068c: SLOAD
0000068d: PUSH2 0x0515
00000690: SWAP1
00000691: PUSH2 0x0100
00000694: SWAP1
00000695: DIV
00000696: PUSH1 0x01
00000698: PUSH1 0x01
0000069a: PUSH1 0xa0
0000069c: SHL
0000069d: SUB
0000069e: AND
0000069f: DUP2
000006a0: JUMP
000006a1: JUMPDEST
000006a2: PUSH2 0x04b4
000006a5: PUSH2 0x06af
000006a8: CALLDATASIZE
000006a9: PUSH1 0x04
000006ab: PUSH2 0x470c
000006ae: JUMP
000006af: JUMPDEST
000006b0: PUSH1 0x01
000006b2: PUSH1 0x01
000006b4: PUSH1 0xa0
000006b6: SHL
000006b7: SUB
000006b8: AND
000006b9: PUSH1 0x00
000006bb: SWAP1
000006bc: DUP2
000006bd: MSTORE
000006be: PUSH1 0xd7
000006c0: PUSH1 0x20
000006c2: MSTORE
000006c3: PUSH1 0x40
000006c5: SWAP1
000006c6: KECCAK256
000006c7: SLOAD
000006c8: SWAP1
000006c9: JUMP
000006ca: JUMPDEST
000006cb: PUSH2 0x0469
000006ce: PUSH2 0x13b0
000006d1: JUMP
000006d2: JUMPDEST
000006d3: PUSH2 0x04b4
000006d6: PUSH2 0x13c4
000006d9: JUMP
000006da: JUMPDEST
000006db: PUSH2 0x0469
000006de: PUSH2 0x06e8
000006e1: CALLDATASIZE
000006e2: PUSH1 0x04
000006e4: PUSH2 0x46a2
000006e7: JUMP
000006e8: JUMPDEST
000006e9: PUSH2 0x1410
000006ec: JUMP
000006ed: JUMPDEST
000006ee: PUSH2 0x0469
000006f1: PUSH2 0x06fb
000006f4: CALLDATASIZE
000006f5: PUSH1 0x04
000006f7: PUSH2 0x46a2
000006fa: JUMP
000006fb: JUMPDEST
000006fc: PUSH2 0x1537
000006ff: JUMP
00000700: JUMPDEST
00000701: PUSH2 0x0469
00000704: PUSH2 0x1586
00000707: JUMP
00000708: JUMPDEST
00000709: PUSH2 0x04b4
0000070c: PUSH2 0x0716
0000070f: CALLDATASIZE
00000710: PUSH1 0x04
00000712: PUSH2 0x46a2
00000715: JUMP
00000716: JUMPDEST
00000717: PUSH2 0x15fd
0000071a: JUMP
0000071b: JUMPDEST
0000071c: PUSH2 0x04b4
0000071f: PUSH2 0x0729
00000722: CALLDATASIZE
00000723: PUSH1 0x04
00000725: PUSH2 0x46e0
00000728: JUMP
00000729: JUMPDEST
0000072a: PUSH2 0x1657
0000072d: JUMP
0000072e: JUMPDEST
0000072f: PUSH2 0x0469
00000732: PUSH2 0x073c
00000735: CALLDATASIZE
00000736: PUSH1 0x04
00000738: PUSH2 0x4881
0000073b: JUMP
0000073c: JUMPDEST
0000073d: PUSH2 0x167f
00000740: JUMP
00000741: JUMPDEST
00000742: PUSH2 0x0469
00000745: PUSH2 0x074f
00000748: CALLDATASIZE
00000749: PUSH1 0x04
0000074b: PUSH2 0x4982
0000074e: JUMP
0000074f: JUMPDEST
00000750: PUSH2 0x17af
00000753: JUMP
00000754: JUMPDEST
00000755: PUSH2 0x0469
00000758: PUSH2 0x0762
0000075b: CALLDATASIZE
0000075c: PUSH1 0x04
0000075e: PUSH2 0x470c
00000761: JUMP
00000762: JUMPDEST
00000763: PUSH2 0x17ee
00000766: JUMP
00000767: JUMPDEST
00000768: PUSH1 0x33
0000076a: SLOAD
0000076b: PUSH1 0x01
0000076d: PUSH1 0x01
0000076f: PUSH1 0xa0
00000771: SHL
00000772: SUB
00000773: AND
00000774: PUSH2 0x0515
00000777: JUMP
00000778: JUMPDEST
00000779: PUSH2 0x04b4
0000077c: PUSH1 0xd4
0000077e: SLOAD
0000077f: DUP2
00000780: JUMP
00000781: JUMPDEST
00000782: PUSH2 0x0440
00000785: PUSH2 0x183e
00000788: JUMP
00000789: JUMPDEST
0000078a: PUSH2 0x04b4
0000078d: PUSH2 0x0797
00000790: CALLDATASIZE
00000791: PUSH1 0x04
00000793: PUSH2 0x470c
00000796: JUMP
00000797: JUMPDEST
00000798: PUSH2 0x184b
0000079b: JUMP
0000079c: JUMPDEST
0000079d: PUSH2 0x04b4
000007a0: PUSH2 0x07aa
000007a3: CALLDATASIZE
000007a4: PUSH1 0x04
000007a6: PUSH2 0x46a2
000007a9: JUMP
000007aa: JUMPDEST
000007ab: PUSH2 0x1856
000007ae: JUMP
000007af: JUMPDEST
000007b0: PUSH2 0x047e
000007b3: PUSH2 0x07bd
000007b6: CALLDATASIZE
000007b7: PUSH1 0x04
000007b9: PUSH2 0x46e0
000007bc: JUMP
000007bd: JUMPDEST
000007be: PUSH2 0x1899
000007c1: JUMP
000007c2: JUMPDEST
000007c3: PUSH2 0x04b4
000007c6: PUSH2 0x1976
000007c9: JUMP
000007ca: JUMPDEST
000007cb: PUSH2 0x047e
000007ce: PUSH2 0x07d8
000007d1: CALLDATASIZE
000007d2: PUSH1 0x04
000007d4: PUSH2 0x46e0
000007d7: JUMP
000007d8: JUMPDEST
000007d9: PUSH2 0x1bcb
000007dc: JUMP
000007dd: JUMPDEST
000007de: PUSH2 0x04b4
000007e1: PUSH1 0xd2
000007e3: SLOAD
000007e4: DUP2
000007e5: JUMP
000007e6: JUMPDEST
000007e7: PUSH2 0x04b4
000007ea: PUSH1 0xdd
000007ec: SLOAD
000007ed: DUP2
000007ee: JUMP
000007ef: JUMPDEST
000007f0: PUSH2 0x04b4
000007f3: PUSH2 0x1c1c
000007f6: JUMP
000007f7: JUMPDEST
000007f8: PUSH2 0x0469
000007fb: PUSH2 0x0805
000007fe: CALLDATASIZE
000007ff: PUSH1 0x04
00000801: PUSH2 0x4729
00000804: JUMP
00000805: JUMPDEST
00000806: PUSH2 0x1cbf
00000809: JUMP
0000080a: JUMPDEST
0000080b: PUSH1 0x97
0000080d: SLOAD
0000080e: PUSH1 0x01
00000810: PUSH1 0x01
00000812: PUSH1 0xa0
00000814: SHL
00000815: SUB
00000816: AND
00000817: PUSH2 0x0515
0000081a: JUMP
0000081b: JUMPDEST
0000081c: PUSH2 0x04b4
0000081f: PUSH1 0xd6
00000821: SLOAD
00000822: DUP2
00000823: JUMP
00000824: JUMPDEST
00000825: PUSH2 0x04b4
00000828: PUSH2 0x1d09
0000082b: JUMP
0000082c: JUMPDEST
0000082d: PUSH2 0x083f
00000830: PUSH2 0x083a
00000833: CALLDATASIZE
00000834: PUSH1 0x04
00000836: PUSH2 0x470c
00000839: JUMP
0000083a: JUMPDEST
0000083b: PUSH2 0x1d5b
0000083e: JUMP
0000083f: JUMPDEST
00000840: PUSH1 0x40
00000842: DUP1
00000843: MLOAD
00000844: SWAP5
00000845: DUP6
00000846: MSTORE
00000847: PUSH1 0x20
00000849: DUP6
0000084a: ADD
0000084b: SWAP4
0000084c: SWAP1
0000084d: SWAP4
0000084e: MSTORE
0000084f: SWAP2
00000850: DUP4
00000851: ADD
00000852: MSTORE
00000853: PUSH1 0x60
00000855: DUP3
00000856: ADD
00000857: MSTORE
00000858: PUSH1 0x80
0000085a: ADD
0000085b: PUSH2 0x044d
0000085e: JUMP
0000085f: JUMPDEST
00000860: PUSH2 0x04b4
00000863: PUSH2 0x086d
00000866: CALLDATASIZE
00000867: PUSH1 0x04
00000869: PUSH2 0x46a2
0000086c: JUMP
0000086d: JUMPDEST
0000086e: PUSH2 0x1d9c
00000871: JUMP
00000872: JUMPDEST
00000873: PUSH2 0x047e
00000876: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000000
00000897: DUP2
00000898: JUMP
00000899: JUMPDEST
0000089a: PUSH2 0x04b4
0000089d: PUSH1 0xdc
0000089f: SLOAD
000008a0: DUP2
000008a1: JUMP
000008a2: JUMPDEST
000008a3: PUSH2 0x04b4
000008a6: PUSH2 0x08b0
000008a9: CALLDATASIZE
000008aa: PUSH1 0x04
000008ac: PUSH2 0x46a2
000008af: JUMP
000008b0: JUMPDEST
000008b1: PUSH2 0x1ddf
000008b4: JUMP
000008b5: JUMPDEST
000008b6: PUSH2 0x04b4
000008b9: PUSH2 0x08c3
000008bc: CALLDATASIZE
000008bd: PUSH1 0x04
000008bf: PUSH2 0x49ea
000008c2: JUMP
000008c3: JUMPDEST
000008c4: PUSH1 0x01
000008c6: PUSH1 0x01
000008c8: PUSH1 0xa0
000008ca: SHL
000008cb: SUB
000008cc: SWAP2
000008cd: DUP3
000008ce: AND
000008cf: PUSH1 0x00
000008d1: SWAP1
000008d2: DUP2
000008d3: MSTORE
000008d4: PUSH1 0xd8
000008d6: PUSH1 0x20
000008d8: SWAP1
000008d9: DUP2
000008da: MSTORE
000008db: PUSH1 0x40
000008dd: DUP1
000008de: DUP4
000008df: KECCAK256
000008e0: SWAP4
000008e1: SWAP1
000008e2: SWAP5
000008e3: AND
000008e4: DUP3
000008e5: MSTORE
000008e6: SWAP2
000008e7: SWAP1
000008e8: SWAP2
000008e9: MSTORE
000008ea: KECCAK256
000008eb: SLOAD
000008ec: SWAP1
000008ed: JUMP
000008ee: JUMPDEST
000008ef: PUSH2 0x04b4
000008f2: PUSH2 0x08fc
000008f5: CALLDATASIZE
000008f6: PUSH1 0x04
000008f8: PUSH2 0x46e0
000008fb: JUMP
000008fc: JUMPDEST
000008fd: PUSH2 0x1e24
00000900: JUMP
00000901: JUMPDEST
00000902: PUSH2 0x04b4
00000905: PUSH2 0x1e72
00000908: JUMP
00000909: JUMPDEST
0000090a: PUSH1 0x65
0000090c: SLOAD
0000090d: PUSH1 0x01
0000090f: PUSH1 0x01
00000911: PUSH1 0xa0
00000913: SHL
00000914: SUB
00000915: AND
00000916: PUSH2 0x0515
00000919: JUMP
0000091a: JUMPDEST
0000091b: PUSH1 0xcc
0000091d: SLOAD
0000091e: PUSH2 0x0515
00000921: SWAP1
00000922: PUSH2 0x0100
00000925: SWAP1
00000926: DIV
00000927: PUSH1 0x01
00000929: PUSH1 0x01
0000092b: PUSH1 0xa0
0000092d: SHL
0000092e: SUB
0000092f: AND
00000930: DUP2
00000931: JUMP
00000932: JUMPDEST
00000933: PUSH2 0x0469
00000936: PUSH2 0x0940
00000939: CALLDATASIZE
0000093a: PUSH1 0x04
0000093c: PUSH2 0x46a2
0000093f: JUMP
00000940: JUMPDEST
00000941: PUSH2 0x1ea0
00000944: JUMP
00000945: JUMPDEST
00000946: PUSH2 0x0469
00000949: PUSH2 0x0953
0000094c: CALLDATASIZE
0000094d: PUSH1 0x04
0000094f: PUSH2 0x470c
00000952: JUMP
00000953: JUMPDEST
00000954: PUSH2 0x1fbf
00000957: JUMP
00000958: JUMPDEST
00000959: PUSH1 0xce
0000095b: SLOAD
0000095c: PUSH2 0x0515
0000095f: SWAP1
00000960: PUSH1 0x01
00000962: PUSH1 0x01
00000964: PUSH1 0xa0
00000966: SHL
00000967: SUB
00000968: AND
00000969: DUP2
0000096a: JUMP
0000096b: JUMPDEST
0000096c: PUSH2 0x04b4
0000096f: PUSH2 0x0979
00000972: CALLDATASIZE
00000973: PUSH1 0x04
00000975: PUSH2 0x4a23
00000978: JUMP
00000979: JUMPDEST
0000097a: PUSH2 0x2030
0000097d: JUMP
0000097e: JUMPDEST
0000097f: PUSH2 0x04b4
00000982: PUSH2 0x204a
00000985: JUMP
00000986: JUMPDEST
00000987: PUSH1 0xca
00000989: DUP1
0000098a: SLOAD
0000098b: PUSH2 0x0993
0000098e: SWAP1
0000098f: PUSH2 0x4a65
00000992: JUMP
00000993: JUMPDEST
00000994: DUP1
00000995: PUSH1 0x1f
00000997: ADD
00000998: PUSH1 0x20
0000099a: DUP1
0000099b: SWAP2
0000099c: DIV
0000099d: MUL
0000099e: PUSH1 0x20
000009a0: ADD
000009a1: PUSH1 0x40
000009a3: MLOAD
000009a4: SWAP1
000009a5: DUP2
000009a6: ADD
000009a7: PUSH1 0x40
000009a9: MSTORE
000009aa: DUP1
000009ab: SWAP3
000009ac: SWAP2
000009ad: SWAP1
000009ae: DUP2
000009af: DUP2
000009b0: MSTORE
000009b1: PUSH1 0x20
000009b3: ADD
000009b4: DUP3
000009b5: DUP1
000009b6: SLOAD
000009b7: PUSH2 0x09bf
000009ba: SWAP1
000009bb: PUSH2 0x4a65
000009be: JUMP
000009bf: JUMPDEST
000009c0: DUP1
000009c1: ISZERO
000009c2: PUSH2 0x0a0c
000009c5: JUMPI
000009c6: DUP1
000009c7: PUSH1 0x1f
000009c9: LT
000009ca: PUSH2 0x09e1
000009cd: JUMPI
000009ce: PUSH2 0x0100
000009d1: DUP1
000009d2: DUP4
000009d3: SLOAD
000009d4: DIV
000009d5: MUL
000009d6: DUP4
000009d7: MSTORE
000009d8: SWAP2
000009d9: PUSH1 0x20
000009db: ADD
000009dc: SWAP2
000009dd: PUSH2 0x0a0c
000009e0: JUMP
000009e1: JUMPDEST
000009e2: DUP3
000009e3: ADD
000009e4: SWAP2
000009e5: SWAP1
000009e6: PUSH1 0x00
000009e8: MSTORE
000009e9: PUSH1 0x20
000009eb: PUSH1 0x00
000009ed: KECCAK256
000009ee: SWAP1
000009ef: JUMPDEST
000009f0: DUP2
000009f1: SLOAD
000009f2: DUP2
000009f3: MSTORE
000009f4: SWAP1
000009f5: PUSH1 0x01
000009f7: ADD
000009f8: SWAP1
000009f9: PUSH1 0x20
000009fb: ADD
000009fc: DUP1
000009fd: DUP4
000009fe: GT
000009ff: PUSH2 0x09ef
00000a02: JUMPI
00000a03: DUP3
00000a04: SWAP1
00000a05: SUB
00000a06: PUSH1 0x1f
00000a08: AND
00000a09: DUP3
00000a0a: ADD
00000a0b: SWAP2
00000a0c: JUMPDEST
00000a0d: POP
00000a0e: POP
00000a0f: POP
00000a10: POP
00000a11: POP
00000a12: DUP2
00000a13: JUMP
00000a14: JUMPDEST
00000a15: PUSH1 0xc9
00000a17: SLOAD
00000a18: PUSH1 0xff
00000a1a: AND
00000a1b: PUSH2 0x0a3f
00000a1e: JUMPI
00000a1f: PUSH1 0x40
00000a21: MLOAD
00000a22: PUSH3 0x461bcd
00000a26: PUSH1 0xe5
00000a28: SHL
00000a29: DUP2
00000a2a: MSTORE
00000a2b: PUSH1 0x04
00000a2d: ADD
00000a2e: PUSH2 0x0a36
00000a31: SWAP1
00000a32: PUSH2 0x4a9f
00000a35: JUMP
00000a36: JUMPDEST
00000a37: PUSH1 0x40
00000a39: MLOAD
00000a3a: DUP1
00000a3b: SWAP2
00000a3c: SUB
00000a3d: SWAP1
00000a3e: REVERT
00000a3f: JUMPDEST
00000a40: PUSH1 0xc9
00000a42: DUP1
00000a43: SLOAD
00000a44: PUSH1 0xff
00000a46: NOT
00000a47: AND
00000a48: SWAP1
00000a49: SSTORE
00000a4a: PUSH2 0x0a51
00000a4d: PUSH2 0x1976
00000a50: JUMP
00000a51: JUMPDEST
00000a52: POP
00000a53: PUSH2 0x0a5a
00000a56: PUSH2 0x1e72
00000a59: JUMP
00000a5a: JUMPDEST
00000a5b: PUSH1 0xdd
00000a5d: SLOAD
00000a5e: EQ
00000a5f: PUSH2 0x0a6b
00000a62: JUMPI
00000a63: PUSH2 0x0a6b
00000a66: DUP2
00000a67: PUSH2 0x20ad
00000a6a: JUMP
00000a6b: JUMPDEST
00000a6c: POP
00000a6d: PUSH1 0xc9
00000a6f: DUP1
00000a70: SLOAD
00000a71: PUSH1 0xff
00000a73: NOT
00000a74: AND
00000a75: PUSH1 0x01
00000a77: OR
00000a78: SWAP1
00000a79: SSTORE
00000a7a: JUMP
00000a7b: JUMPDEST
00000a7c: PUSH1 0x00
00000a7e: PUSH2 0x0a86
00000a81: DUP4
00000a82: PUSH2 0x2229
00000a85: JUMP
00000a86: JUMPDEST
00000a87: CALLER
00000a88: PUSH1 0x00
00000a8a: DUP2
00000a8b: DUP2
00000a8c: MSTORE
00000a8d: PUSH1 0xd8
00000a8f: PUSH1 0x20
00000a91: SWAP1
00000a92: DUP2
00000a93: MSTORE
00000a94: PUSH1 0x40
00000a96: DUP1
00000a97: DUP4
00000a98: KECCAK256
00000a99: PUSH1 0x01
00000a9b: PUSH1 0x01
00000a9d: PUSH1 0xa0
00000a9f: SHL
00000aa0: SUB
00000aa1: DUP9
00000aa2: AND
00000aa3: DUP1
00000aa4: DUP6
00000aa5: MSTORE
00000aa6: SWAP1
00000aa7: DUP4
00000aa8: MSTORE
00000aa9: SWAP3
00000aaa: DUP2
00000aab: SWAP1
00000aac: KECCAK256
00000aad: DUP7
00000aae: SWAP1
00000aaf: SSTORE
00000ab0: MLOAD
00000ab1: DUP6
00000ab2: DUP2
00000ab3: MSTORE
00000ab4: DUP4
00000ab5: SWAP2
00000ab6: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
00000ad7: SWAP2
00000ad8: ADD
00000ad9: PUSH1 0x40
00000adb: MLOAD
00000adc: DUP1
00000add: SWAP2
00000ade: SUB
00000adf: SWAP1
00000ae0: LOG3
00000ae1: PUSH1 0x01
00000ae3: SWAP2
00000ae4: POP
00000ae5: POP
00000ae6: JUMPDEST
00000ae7: SWAP3
00000ae8: SWAP2
00000ae9: POP
00000aea: POP
00000aeb: JUMP
00000aec: JUMPDEST
00000aed: PUSH2 0x0af4
00000af0: PUSH2 0x2250
00000af3: JUMP
00000af4: JUMPDEST
00000af5: PUSH2 0x0afd
00000af8: DUP2
00000af9: PUSH2 0x22aa
00000afc: JUMP
00000afd: JUMPDEST
00000afe: POP
00000aff: JUMP
00000b00: JUMPDEST
00000b01: PUSH1 0xc9
00000b03: SLOAD
00000b04: PUSH1 0x00
00000b06: SWAP1
00000b07: PUSH1 0xff
00000b09: AND
00000b0a: PUSH2 0x0b25
00000b0d: JUMPI
00000b0e: PUSH1 0x40
00000b10: MLOAD
00000b11: PUSH3 0x461bcd
00000b15: PUSH1 0xe5
00000b17: SHL
00000b18: DUP2
00000b19: MSTORE
00000b1a: PUSH1 0x04
00000b1c: ADD
00000b1d: PUSH2 0x0a36
00000b20: SWAP1
00000b21: PUSH2 0x4a9f
00000b24: JUMP
00000b25: JUMPDEST
00000b26: PUSH1 0xc9
00000b28: DUP1
00000b29: SLOAD
00000b2a: PUSH1 0xff
00000b2c: NOT
00000b2d: AND
00000b2e: SWAP1
00000b2f: SSTORE
00000b30: PUSH2 0x0b37
00000b33: PUSH2 0x1976
00000b36: JUMP
00000b37: JUMPDEST
00000b38: POP
00000b39: PUSH2 0x0b43
00000b3c: CALLER
00000b3d: CALLER
00000b3e: DUP5
00000b3f: PUSH2 0x2370
00000b42: JUMP
00000b43: JUMPDEST
00000b44: POP
00000b45: PUSH1 0x00
00000b47: SWAP1
00000b48: POP
00000b49: PUSH1 0xc9
00000b4b: DUP1
00000b4c: SLOAD
00000b4d: PUSH1 0xff
00000b4f: NOT
00000b50: AND
00000b51: PUSH1 0x01
00000b53: OR
00000b54: SWAP1
00000b55: SSTORE
00000b56: SWAP2
00000b57: SWAP1
00000b58: POP
00000b59: JUMP
00000b5a: JUMPDEST
00000b5b: PUSH2 0x0b62
00000b5e: PUSH2 0x2250
00000b61: JUMP
00000b62: JUMPDEST
00000b63: PUSH2 0x0afd
00000b66: DUP2
00000b67: PUSH2 0x254b
00000b6a: JUMP
00000b6b: JUMPDEST
00000b6c: PUSH1 0xc9
00000b6e: SLOAD
00000b6f: PUSH1 0x00
00000b71: SWAP1
00000b72: PUSH1 0xff
00000b74: AND
00000b75: PUSH2 0x0b90
00000b78: JUMPI
00000b79: PUSH1 0x40
00000b7b: MLOAD
00000b7c: PUSH3 0x461bcd
00000b80: PUSH1 0xe5
00000b82: SHL
00000b83: DUP2
00000b84: MSTORE
00000b85: PUSH1 0x04
00000b87: ADD
00000b88: PUSH2 0x0a36
00000b8b: SWAP1
00000b8c: PUSH2 0x4a9f
00000b8f: JUMP
00000b90: JUMPDEST
00000b91: PUSH1 0xc9
00000b93: DUP1
00000b94: SLOAD
00000b95: PUSH1 0xff
00000b97: NOT
00000b98: AND
00000b99: SWAP1
00000b9a: SSTORE
00000b9b: PUSH2 0x0ba2
00000b9e: PUSH2 0x1976
00000ba1: JUMP
00000ba2: JUMPDEST
00000ba3: POP
00000ba4: PUSH2 0x0bac
00000ba7: DUP3
00000ba8: PUSH2 0x25ae
00000bab: JUMP
00000bac: JUMPDEST
00000bad: SWAP1
00000bae: POP
00000baf: PUSH1 0xc9
00000bb1: DUP1
00000bb2: SLOAD
00000bb3: PUSH1 0xff
00000bb5: NOT
00000bb6: AND
00000bb7: PUSH1 0x01
00000bb9: OR
00000bba: SWAP1
00000bbb: SSTORE
00000bbc: SWAP2
00000bbd: SWAP1
00000bbe: POP
00000bbf: JUMP
00000bc0: JUMPDEST
00000bc1: PUSH1 0x00
00000bc3: PUSH2 0x0bca
00000bc6: PUSH2 0x261e
00000bc9: JUMP
00000bca: JUMPDEST
00000bcb: SWAP1
00000bcc: POP
00000bcd: SWAP1
00000bce: JUMP
00000bcf: JUMPDEST
00000bd0: PUSH1 0x33
00000bd2: SLOAD
00000bd3: PUSH1 0x01
00000bd5: PUSH1 0x01
00000bd7: PUSH1 0xa0
00000bd9: SHL
00000bda: SUB
00000bdb: AND
00000bdc: CALLER
00000bdd: EQ
00000bde: PUSH2 0x0c41
00000be1: JUMPI
00000be2: PUSH1 0x40
00000be4: MLOAD
00000be5: PUSH3 0x461bcd
00000be9: PUSH1 0xe5
00000beb: SHL
00000bec: DUP2
00000bed: MSTORE
00000bee: PUSH1 0x20
00000bf0: PUSH1 0x04
00000bf2: DUP3
00000bf3: ADD
00000bf4: MSTORE
00000bf5: PUSH1 0x2f
00000bf7: PUSH1 0x24
00000bf9: DUP3
00000bfa: ADD
00000bfb: MSTORE
00000bfc: PUSH32 0x56546f6b656e3a3a7377656570546f6b656e3a206f6e6c792061646d696e2063
00000c1d: PUSH1 0x44
00000c1f: DUP3
00000c20: ADD
00000c21: MSTORE
00000c22: PUSH15 0x616e20737765657020746f6b656e73
00000c32: PUSH1 0x88
00000c34: SHL
00000c35: PUSH1 0x64
00000c37: DUP3
00000c38: ADD
00000c39: MSTORE
00000c3a: PUSH1 0x84
00000c3c: ADD
00000c3d: PUSH2 0x0a36
00000c40: JUMP
00000c41: JUMPDEST
00000c42: PUSH1 0xc9
00000c44: SLOAD
00000c45: PUSH1 0x01
00000c47: PUSH1 0x01
00000c49: PUSH1 0xa0
00000c4b: SHL
00000c4c: SUB
00000c4d: PUSH2 0x0100
00000c50: SWAP1
00000c51: SWAP2
00000c52: DIV
00000c53: DUP2
00000c54: AND
00000c55: SWAP1
00000c56: DUP3
00000c57: AND
00000c58: SUB
00000c59: PUSH2 0x0cbf
00000c5c: JUMPI
00000c5d: PUSH1 0x40
00000c5f: MLOAD
00000c60: PUSH3 0x461bcd
00000c64: PUSH1 0xe5
00000c66: SHL
00000c67: DUP2
00000c68: MSTORE
00000c69: PUSH1 0x20
00000c6b: PUSH1 0x04
00000c6d: DUP3
00000c6e: ADD
00000c6f: MSTORE
00000c70: PUSH1 0x32
00000c72: PUSH1 0x24
00000c74: DUP3
00000c75: ADD
00000c76: MSTORE
00000c77: PUSH32 0x56546f6b656e3a3a7377656570546f6b656e3a2063616e206e6f742073776565
00000c98: PUSH1 0x44
00000c9a: DUP3
00000c9b: ADD
00000c9c: MSTORE
00000c9d: PUSH18 0x38103ab73232b9363cb4b733903a37b5b2b7
00000cb0: PUSH1 0x71
00000cb2: SHL
00000cb3: PUSH1 0x64
00000cb5: DUP3
00000cb6: ADD
00000cb7: MSTORE
00000cb8: PUSH1 0x84
00000cba: ADD
00000cbb: PUSH2 0x0a36
00000cbe: JUMP
00000cbf: JUMPDEST
00000cc0: PUSH1 0x40
00000cc2: MLOAD
00000cc3: PUSH4 0x70a08231
00000cc8: PUSH1 0xe0
00000cca: SHL
00000ccb: DUP2
00000ccc: MSTORE
00000ccd: ADDRESS
00000cce: PUSH1 0x04
00000cd0: DUP3
00000cd1: ADD
00000cd2: MSTORE
00000cd3: PUSH1 0x00
00000cd5: SWAP1
00000cd6: PUSH1 0x01
00000cd8: PUSH1 0x01
00000cda: PUSH1 0xa0
00000cdc: SHL
00000cdd: SUB
00000cde: DUP4
00000cdf: AND
00000ce0: SWAP1
00000ce1: PUSH4 0x70a08231
00000ce6: SWAP1
00000ce7: PUSH1 0x24
00000ce9: ADD
00000cea: PUSH1 0x20
00000cec: PUSH1 0x40
00000cee: MLOAD
00000cef: DUP1
00000cf0: DUP4
00000cf1: SUB
00000cf2: DUP2
00000cf3: DUP7
00000cf4: GAS
00000cf5: STATICCALL
00000cf6: ISZERO
00000cf7: DUP1
00000cf8: ISZERO
00000cf9: PUSH2 0x0d06
00000cfc: JUMPI
00000cfd: RETURNDATASIZE
00000cfe: PUSH1 0x00
00000d00: DUP1
00000d01: RETURNDATACOPY
00000d02: RETURNDATASIZE
00000d03: PUSH1 0x00
00000d05: REVERT
00000d06: JUMPDEST
00000d07: POP
00000d08: POP
00000d09: POP
00000d0a: POP
00000d0b: PUSH1 0x40
00000d0d: MLOAD
00000d0e: RETURNDATASIZE
00000d0f: PUSH1 0x1f
00000d11: NOT
00000d12: PUSH1 0x1f
00000d14: DUP3
00000d15: ADD
00000d16: AND
00000d17: DUP3
00000d18: ADD
00000d19: DUP1
00000d1a: PUSH1 0x40
00000d1c: MSTORE
00000d1d: POP
00000d1e: DUP2
00000d1f: ADD
00000d20: SWAP1
00000d21: PUSH2 0x0d2a
00000d24: SWAP2
00000d25: SWAP1
00000d26: PUSH2 0x4ac3
00000d29: JUMP
00000d2a: JUMPDEST
00000d2b: SWAP1
00000d2c: POP
00000d2d: PUSH2 0x0d52
00000d30: PUSH2 0x0d41
00000d33: PUSH1 0x33
00000d35: SLOAD
00000d36: PUSH1 0x01
00000d38: PUSH1 0x01
00000d3a: PUSH1 0xa0
00000d3c: SHL
00000d3d: SUB
00000d3e: AND
00000d3f: SWAP1
00000d40: JUMP
00000d41: JUMPDEST
00000d42: PUSH1 0x01
00000d44: PUSH1 0x01
00000d46: PUSH1 0xa0
00000d48: SHL
00000d49: SUB
00000d4a: DUP5
00000d4b: AND
00000d4c: SWAP1
00000d4d: DUP4
00000d4e: PUSH2 0x2693
00000d51: JUMP
00000d52: JUMPDEST
00000d53: PUSH1 0x40
00000d55: MLOAD
00000d56: PUSH1 0x01
00000d58: PUSH1 0x01
00000d5a: PUSH1 0xa0
00000d5c: SHL
00000d5d: SUB
00000d5e: DUP4
00000d5f: AND
00000d60: SWAP1
00000d61: PUSH32 0x35ce4c546a473796a8e70ec2d4af4f2031afe357afa7057b6ea7fa340730e1b2
00000d82: SWAP1
00000d83: PUSH1 0x00
00000d85: SWAP1
00000d86: LOG2
00000d87: POP
00000d88: POP
00000d89: JUMP
00000d8a: JUMPDEST
00000d8b: PUSH1 0xc9
00000d8d: SLOAD
00000d8e: PUSH1 0xff
00000d90: AND
00000d91: PUSH2 0x0dac
00000d94: JUMPI
00000d95: PUSH1 0x40
00000d97: MLOAD
00000d98: PUSH3 0x461bcd
00000d9c: PUSH1 0xe5
00000d9e: SHL
00000d9f: DUP2
00000da0: MSTORE
00000da1: PUSH1 0x04
00000da3: ADD
00000da4: PUSH2 0x0a36
00000da7: SWAP1
00000da8: PUSH2 0x4a9f
00000dab: JUMP
00000dac: JUMPDEST
00000dad: PUSH1 0xc9
00000daf: DUP1
00000db0: SLOAD
00000db1: PUSH1 0xff
00000db3: NOT
00000db4: AND
00000db5: SWAP1
00000db6: SSTORE
00000db7: PUSH1 0x40
00000db9: DUP1
00000dba: MLOAD
00000dbb: DUP1
00000dbc: DUP3
00000dbd: ADD
00000dbe: SWAP1
00000dbf: SWAP2
00000dc0: MSTORE
00000dc1: PUSH1 0x19
00000dc3: DUP2
00000dc4: MSTORE
00000dc5: PUSH32 0x73657452657365727665466163746f722875696e743235362900000000000000
00000de6: PUSH1 0x20
00000de8: DUP3
00000de9: ADD
00000dea: MSTORE
00000deb: PUSH2 0x0df3
00000dee: SWAP1
00000def: PUSH2 0x26fb
00000df2: JUMP
00000df3: JUMPDEST
00000df4: PUSH2 0x0dfb
00000df7: PUSH2 0x1976
00000dfa: JUMP
00000dfb: JUMPDEST
00000dfc: POP
00000dfd: PUSH2 0x0a6b
00000e00: DUP2
00000e01: PUSH2 0x2799
00000e04: JUMP
00000e05: JUMPDEST
00000e06: PUSH1 0xc9
00000e08: SLOAD
00000e09: PUSH1 0x00
00000e0b: SWAP1
00000e0c: PUSH1 0xff
00000e0e: AND
00000e0f: PUSH2 0x0e2a
00000e12: JUMPI
00000e13: PUSH1 0x40
00000e15: MLOAD
00000e16: PUSH3 0x461bcd
00000e1a: PUSH1 0xe5
00000e1c: SHL
00000e1d: DUP2
00000e1e: MSTORE
00000e1f: PUSH1 0x04
00000e21: ADD
00000e22: PUSH2 0x0a36
00000e25: SWAP1
00000e26: PUSH2 0x4a9f
00000e29: JUMP
00000e2a: JUMPDEST
00000e2b: PUSH1 0xc9
00000e2d: DUP1
00000e2e: SLOAD
00000e2f: PUSH1 0xff
00000e31: NOT
00000e32: AND
00000e33: SWAP1
00000e34: SSTORE
00000e35: PUSH2 0x0e3d
00000e38: DUP4
00000e39: PUSH2 0x2829
00000e3c: JUMP
00000e3d: JUMPDEST
00000e3e: PUSH2 0x0e45
00000e41: PUSH2 0x1976
00000e44: JUMP
00000e45: JUMPDEST
00000e46: POP
00000e47: PUSH2 0x0e53
00000e4a: DUP4
00000e4b: CALLER
00000e4c: DUP5
00000e4d: PUSH1 0x00
00000e4f: PUSH2 0x28ba
00000e52: JUMP
00000e53: JUMPDEST
00000e54: POP
00000e55: PUSH1 0x00
00000e57: PUSH1 0xc9
00000e59: DUP1
00000e5a: SLOAD
00000e5b: PUSH1 0xff
00000e5d: NOT
00000e5e: AND
00000e5f: PUSH1 0x01
00000e61: OR
00000e62: SWAP1
00000e63: SSTORE
00000e64: SWAP3
00000e65: SWAP2
00000e66: POP
00000e67: POP
00000e68: JUMP
00000e69: JUMPDEST
00000e6a: PUSH1 0xc9
00000e6c: SLOAD
00000e6d: PUSH1 0x00
00000e6f: SWAP1
00000e70: PUSH1 0xff
00000e72: AND
00000e73: PUSH2 0x0e8e
00000e76: JUMPI
00000e77: PUSH1 0x40
00000e79: MLOAD
00000e7a: PUSH3 0x461bcd
00000e7e: PUSH1 0xe5
00000e80: SHL
00000e81: DUP2
00000e82: MSTORE
00000e83: PUSH1 0x04
00000e85: ADD
00000e86: PUSH2 0x0a36
00000e89: SWAP1
00000e8a: PUSH2 0x4a9f
00000e8d: JUMP
00000e8e: JUMPDEST
00000e8f: PUSH1 0xc9
00000e91: DUP1
00000e92: SLOAD
00000e93: PUSH1 0xff
00000e95: NOT
00000e96: AND
00000e97: SWAP1
00000e98: SSTORE
00000e99: PUSH2 0x0ea1
00000e9c: DUP4
00000e9d: PUSH2 0x2229
00000ea0: JUMP
00000ea1: JUMPDEST
00000ea2: PUSH2 0x0ea9
00000ea5: PUSH2 0x1976
00000ea8: JUMP
00000ea9: JUMPDEST
00000eaa: POP
00000eab: PUSH2 0x0e53
00000eae: CALLER
00000eaf: DUP5
00000eb0: DUP5
00000eb1: PUSH2 0x2bf3
00000eb4: JUMP
00000eb5: JUMPDEST
00000eb6: PUSH1 0xc9
00000eb8: SLOAD
00000eb9: PUSH1 0x00
00000ebb: SWAP1
00000ebc: PUSH1 0xff
00000ebe: AND
00000ebf: PUSH2 0x0eda
00000ec2: JUMPI
00000ec3: PUSH1 0x40
00000ec5: MLOAD
00000ec6: PUSH3 0x461bcd
00000eca: PUSH1 0xe5
00000ecc: SHL
00000ecd: DUP2
00000ece: MSTORE
00000ecf: PUSH1 0x04
00000ed1: ADD
00000ed2: PUSH2 0x0a36
00000ed5: SWAP1
00000ed6: PUSH2 0x4a9f
00000ed9: JUMP
00000eda: JUMPDEST
00000edb: PUSH1 0xc9
00000edd: DUP1
00000ede: SLOAD
00000edf: PUSH1 0xff
00000ee1: NOT
00000ee2: AND
00000ee3: SWAP1
00000ee4: SSTORE
00000ee5: PUSH2 0x0ef0
00000ee8: CALLER
00000ee9: DUP6
00000eea: DUP6
00000eeb: DUP6
00000eec: PUSH2 0x2df8
00000eef: JUMP
00000ef0: JUMPDEST
00000ef1: POP
00000ef2: PUSH1 0x01
00000ef4: PUSH1 0xc9
00000ef6: DUP1
00000ef7: SLOAD
00000ef8: PUSH1 0xff
00000efa: NOT
00000efb: AND
00000efc: PUSH1 0x01
00000efe: OR
00000eff: SWAP1
00000f00: SSTORE
00000f01: SWAP4
00000f02: SWAP3
00000f03: POP
00000f04: POP
00000f05: POP
00000f06: JUMP
00000f07: JUMPDEST
00000f08: PUSH2 0x0f28
00000f0b: PUSH1 0x40
00000f0d: MLOAD
00000f0e: DUP1
00000f0f: PUSH1 0x60
00000f11: ADD
00000f12: PUSH1 0x40
00000f14: MSTORE
00000f15: DUP1
00000f16: PUSH1 0x24
00000f18: DUP2
00000f19: MSTORE
00000f1a: PUSH1 0x20
00000f1c: ADD
00000f1d: PUSH2 0x4ddb
00000f20: PUSH1 0x24
00000f22: SWAP2
00000f23: CODECOPY
00000f24: PUSH2 0x26fb
00000f27: JUMP
00000f28: JUMPDEST
00000f29: PUSH1 0x00
00000f2b: DUP2
00000f2c: GT
00000f2d: PUSH2 0x0f68
00000f30: JUMPI
00000f31: PUSH1 0x40
00000f33: MLOAD
00000f34: PUSH3 0x461bcd
00000f38: PUSH1 0xe5
00000f3a: SHL
00000f3b: DUP2
00000f3c: MSTORE
00000f3d: PUSH1 0x20
00000f3f: PUSH1 0x04
00000f41: DUP3
00000f42: ADD
00000f43: MSTORE
00000f44: PUSH1 0x0d
00000f46: PUSH1 0x24
00000f48: DUP3
00000f49: ADD
00000f4a: MSTORE
00000f4b: PUSH13 0x125b9d985b1a5908125b9c1d5d
00000f59: PUSH1 0x9a
00000f5b: SHL
00000f5c: PUSH1 0x44
00000f5e: DUP3
00000f5f: ADD
00000f60: MSTORE
00000f61: PUSH1 0x64
00000f63: ADD
00000f64: PUSH2 0x0a36
00000f67: JUMP
00000f68: JUMPDEST
00000f69: PUSH1 0xdc
00000f6b: SLOAD
00000f6c: PUSH1 0x40
00000f6e: DUP1
00000f6f: MLOAD
00000f70: SWAP2
00000f71: DUP3
00000f72: MSTORE
00000f73: PUSH1 0x20
00000f75: DUP3
00000f76: ADD
00000f77: DUP4
00000f78: SWAP1
00000f79: MSTORE
00000f7a: PUSH32 0xc2ac513cdb57f91eb2bef4db918c285829524f549682b99717c6cb06cc011183
00000f9b: SWAP2
00000f9c: ADD
00000f9d: PUSH1 0x40
00000f9f: MLOAD
00000fa0: DUP1
00000fa1: SWAP2
00000fa2: SUB
00000fa3: SWAP1
00000fa4: LOG1
00000fa5: PUSH1 0xdc
00000fa7: SSTORE
00000fa8: JUMP
00000fa9: JUMPDEST
00000faa: PUSH1 0xc9
00000fac: SLOAD
00000fad: PUSH1 0x00
00000faf: SWAP1
00000fb0: PUSH1 0xff
00000fb2: AND
00000fb3: PUSH2 0x0fce
00000fb6: JUMPI
00000fb7: PUSH1 0x40
00000fb9: MLOAD
00000fba: PUSH3 0x461bcd
00000fbe: PUSH1 0xe5
00000fc0: SHL
00000fc1: DUP2
00000fc2: MSTORE
00000fc3: PUSH1 0x04
00000fc5: ADD
00000fc6: PUSH2 0x0a36
00000fc9: SWAP1
00000fca: PUSH2 0x4a9f
00000fcd: JUMP
00000fce: JUMPDEST
00000fcf: PUSH1 0xc9
00000fd1: DUP1
00000fd2: SLOAD
00000fd3: PUSH1 0xff
00000fd5: NOT
00000fd6: AND
00000fd7: SWAP1
00000fd8: SSTORE
00000fd9: PUSH2 0x0fe0
00000fdc: PUSH2 0x1976
00000fdf: JUMP
00000fe0: JUMPDEST
00000fe1: POP
00000fe2: PUSH2 0x0fec
00000fe5: CALLER
00000fe6: DUP5
00000fe7: DUP5
00000fe8: PUSH2 0x2370
00000feb: JUMP
00000fec: JUMPDEST
00000fed: POP
00000fee: PUSH1 0x00
00000ff0: SWAP1
00000ff1: POP
00000ff2: PUSH1 0xc9
00000ff4: DUP1
00000ff5: SLOAD
00000ff6: PUSH1 0xff
00000ff8: NOT
00000ff9: AND
00000ffa: PUSH1 0x01
00000ffc: OR
00000ffd: SWAP1
00000ffe: SSTORE
00000fff: SWAP3
00001000: SWAP2
00001001: POP
00001002: POP
00001003: JUMP
00001004: JUMPDEST
00001005: PUSH1 0x00
00001007: PUSH2 0x100f
0000100a: DUP4
0000100b: PUSH2 0x2229
0000100e: JUMP
0000100f: JUMPDEST
00001010: CALLER
00001011: PUSH1 0x00
00001013: DUP2
00001014: DUP2
00001015: MSTORE
00001016: PUSH1 0xd8
00001018: PUSH1 0x20
0000101a: SWAP1
0000101b: DUP2
0000101c: MSTORE
0000101d: PUSH1 0x40
0000101f: DUP1
00001020: DUP4
00001021: KECCAK256
00001022: PUSH1 0x01
00001024: PUSH1 0x01
00001026: PUSH1 0xa0
00001028: SHL
00001029: SUB
0000102a: DUP9
0000102b: AND
0000102c: DUP5
0000102d: MSTORE
0000102e: SWAP1
0000102f: SWAP2
00001030: MSTORE
00001031: SWAP1
00001032: KECCAK256
00001033: SLOAD
00001034: PUSH2 0x103d
00001037: DUP5
00001038: DUP3
00001039: PUSH2 0x4af2
0000103c: JUMP
0000103d: JUMPDEST
0000103e: PUSH1 0x01
00001040: PUSH1 0x01
00001042: PUSH1 0xa0
00001044: SHL
00001045: SUB
00001046: DUP4
00001047: DUP2
00001048: AND
00001049: PUSH1 0x00
0000104b: DUP2
0000104c: DUP2
0000104d: MSTORE
0000104e: PUSH1 0xd8
00001050: PUSH1 0x20
00001052: SWAP1
00001053: DUP2
00001054: MSTORE
00001055: PUSH1 0x40
00001057: DUP1
00001058: DUP4
00001059: KECCAK256
0000105a: SWAP5
0000105b: DUP12
0000105c: AND
0000105d: DUP1
0000105e: DUP5
0000105f: MSTORE
00001060: SWAP5
00001061: DUP3
00001062: MSTORE
00001063: SWAP2
00001064: DUP3
00001065: SWAP1
00001066: KECCAK256
00001067: DUP6
00001068: SWAP1
00001069: SSTORE
0000106a: SWAP1
0000106b: MLOAD
0000106c: DUP5
0000106d: DUP2
0000106e: MSTORE
0000106f: SWAP4
00001070: SWAP5
00001071: POP
00001072: SWAP2
00001073: SWAP3
00001074: SWAP1
00001075: SWAP2
00001076: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
00001097: SWAP2
00001098: ADD
00001099: JUMPDEST
0000109a: PUSH1 0x40
0000109c: MLOAD
0000109d: DUP1
0000109e: SWAP2
0000109f: SUB
000010a0: SWAP1
000010a1: LOG3
000010a2: POP
000010a3: PUSH1 0x01
000010a5: SWAP5
000010a6: SWAP4
000010a7: POP
000010a8: POP
000010a9: POP
000010aa: POP
000010ab: JUMP
000010ac: JUMPDEST
000010ad: PUSH1 0x00
000010af: DUP1
000010b0: PUSH1 0x40
000010b2: MLOAD
000010b3: DUP1
000010b4: PUSH1 0x20
000010b6: ADD
000010b7: PUSH1 0x40
000010b9: MSTORE
000010ba: DUP1
000010bb: PUSH2 0x10c2
000010be: PUSH2 0x1d09
000010c1: JUMP
000010c2: JUMPDEST
000010c3: SWAP1
000010c4: MSTORE
000010c5: PUSH1 0x01
000010c7: PUSH1 0x01
000010c9: PUSH1 0xa0
000010cb: SHL
000010cc: SUB
000010cd: DUP5
000010ce: AND
000010cf: PUSH1 0x00
000010d1: SWAP1
000010d2: DUP2
000010d3: MSTORE
000010d4: PUSH1 0xd7
000010d6: PUSH1 0x20
000010d8: MSTORE
000010d9: PUSH1 0x40
000010db: SWAP1
000010dc: KECCAK256
000010dd: SLOAD
000010de: SWAP1
000010df: SWAP2
000010e0: POP
000010e1: PUSH2 0x10eb
000010e4: SWAP1
000010e5: DUP3
000010e6: SWAP1
000010e7: PUSH2 0x3022
000010ea: JUMP
000010eb: JUMPDEST
000010ec: SWAP4
000010ed: SWAP3
000010ee: POP
000010ef: POP
000010f0: POP
000010f1: JUMP
000010f2: JUMPDEST
000010f3: PUSH1 0x00
000010f5: PUSH2 0x0bca
000010f8: PUSH2 0x303a
000010fb: JUMP
000010fc: JUMPDEST
000010fd: PUSH2 0x1104
00001100: PUSH2 0x2250
00001103: JUMP
00001104: JUMPDEST
00001105: PUSH2 0x0afd
00001108: DUP2
00001109: PUSH2 0x3070
0000110c: JUMP
0000110d: JUMPDEST
0000110e: PUSH1 0xc9
00001110: SLOAD
00001111: PUSH1 0xff
00001113: AND
00001114: PUSH2 0x112f
00001117: JUMPI
00001118: PUSH1 0x40
0000111a: MLOAD
0000111b: PUSH3 0x461bcd
0000111f: PUSH1 0xe5
00001121: SHL
00001122: DUP2
00001123: MSTORE
00001124: PUSH1 0x04
00001126: ADD
00001127: PUSH2 0x0a36
0000112a: SWAP1
0000112b: PUSH2 0x4a9f
0000112e: JUMP
0000112f: JUMPDEST
00001130: PUSH1 0xc9
00001132: DUP1
00001133: SLOAD
00001134: PUSH1 0xff
00001136: NOT
00001137: AND
00001138: SWAP1
00001139: SSTORE
0000113a: DUP1
0000113b: ISZERO
0000113c: PUSH2 0x11a5
0000113f: JUMPI
00001140: PUSH1 0xcd
00001142: SLOAD
00001143: PUSH1 0x40
00001145: MLOAD
00001146: PUSH4 0xeade3eed
0000114b: PUSH1 0xe0
0000114d: SHL
0000114e: DUP2
0000114f: MSTORE
00001150: ADDRESS
00001151: PUSH1 0x04
00001153: DUP3
00001154: ADD
00001155: MSTORE
00001156: PUSH1 0x01
00001158: PUSH1 0x01
0000115a: PUSH1 0xa0
0000115c: SHL
0000115d: SUB
0000115e: DUP5
0000115f: DUP2
00001160: AND
00001161: PUSH1 0x24
00001163: DUP4
00001164: ADD
00001165: MSTORE
00001166: SWAP1
00001167: SWAP2
00001168: AND
00001169: SWAP1
0000116a: PUSH4 0xeade3eed
0000116f: SWAP1
00001170: PUSH1 0x44
00001172: ADD
00001173: PUSH1 0x00
00001175: PUSH1 0x40
00001177: MLOAD
00001178: DUP1
00001179: DUP4
0000117a: SUB
0000117b: DUP2
0000117c: PUSH1 0x00
0000117e: DUP8
0000117f: DUP1
00001180: EXTCODESIZE
00001181: ISZERO
00001182: DUP1
00001183: ISZERO
00001184: PUSH2 0x118c
00001187: JUMPI
00001188: PUSH1 0x00
0000118a: DUP1
0000118b: REVERT
0000118c: JUMPDEST
0000118d: POP
0000118e: GAS
0000118f: CALL
00001190: ISZERO
00001191: DUP1
00001192: ISZERO
00001193: PUSH2 0x11a0
00001196: JUMPI
00001197: RETURNDATASIZE
00001198: PUSH1 0x00
0000119a: DUP1
0000119b: RETURNDATACOPY
0000119c: RETURNDATASIZE
0000119d: PUSH1 0x00
0000119f: REVERT
000011a0: JUMPDEST
000011a1: POP
000011a2: POP
000011a3: POP
000011a4: POP
000011a5: JUMPDEST
000011a6: PUSH1 0xcd
000011a8: SLOAD
000011a9: PUSH1 0x01
000011ab: PUSH1 0x01
000011ad: PUSH1 0xa0
000011af: SHL
000011b0: SUB
000011b1: AND
000011b2: CALLER
000011b3: EQ
000011b4: PUSH2 0x11d0
000011b7: JUMPI
000011b8: PUSH1 0x40
000011ba: MLOAD
000011bb: PUSH4 0x2c402925
000011c0: PUSH1 0xe0
000011c2: SHL
000011c3: DUP2
000011c4: MSTORE
000011c5: PUSH1 0x04
000011c7: ADD
000011c8: PUSH1 0x40
000011ca: MLOAD
000011cb: DUP1
000011cc: SWAP2
000011cd: SUB
000011ce: SWAP1
000011cf: REVERT
000011d0: JUMPDEST
000011d1: PUSH1 0x00
000011d3: PUSH2 0x11db
000011d6: DUP4
000011d7: PUSH2 0x25ae
000011da: JUMP
000011db: JUMPDEST
000011dc: PUSH1 0xd3
000011de: SLOAD
000011df: SWAP1
000011e0: SWAP2
000011e1: POP
000011e2: PUSH1 0x00
000011e4: DUP4
000011e5: ISZERO
000011e6: PUSH2 0x125b
000011e9: JUMPI
000011ea: PUSH2 0x11f3
000011ed: DUP7
000011ee: DUP6
000011ef: PUSH2 0x30cb
000011f2: JUMP
000011f3: JUMPDEST
000011f4: SWAP1
000011f5: POP
000011f6: PUSH2 0x11ff
000011f9: DUP2
000011fa: DUP4
000011fb: PUSH2 0x4b05
000011fe: JUMP
000011ff: JUMPDEST
00001200: SWAP2
00001201: POP
00001202: PUSH1 0x01
00001204: PUSH1 0x01
00001206: PUSH1 0xa0
00001208: SHL
00001209: SUB
0000120a: DUP1
0000120b: DUP7
0000120c: AND
0000120d: SWAP1
0000120e: DUP8
0000120f: AND
00001210: PUSH32 0x1a2a22cb034d26d1854bdc6666a5b91fe25efbbb5dcad3b0355478d6f5c362a1
00001231: DUP4
00001232: PUSH2 0x123b
00001235: DUP2
00001236: DUP9
00001237: PUSH2 0x4b05
0000123a: JUMP
0000123b: JUMPDEST
0000123c: PUSH1 0x40
0000123e: DUP1
0000123f: MLOAD
00001240: SWAP3
00001241: DUP4
00001242: MSTORE
00001243: PUSH1 0x20
00001245: DUP4
00001246: ADD
00001247: SWAP2
00001248: SWAP1
00001249: SWAP2
0000124a: MSTORE
0000124b: DUP2
0000124c: ADD
0000124d: DUP7
0000124e: SWAP1
0000124f: MSTORE
00001250: PUSH1 0x60
00001252: ADD
00001253: PUSH1 0x40
00001255: MLOAD
00001256: DUP1
00001257: SWAP2
00001258: SUB
00001259: SWAP1
0000125a: LOG3
0000125b: JUMPDEST
0000125c: PUSH1 0x00
0000125e: PUSH2 0x1267
00001261: DUP3
00001262: DUP6
00001263: PUSH2 0x4b05
00001266: JUMP
00001267: JUMPDEST
00001268: SWAP1
00001269: POP
0000126a: DUP1
0000126b: ISZERO
0000126c: PUSH2 0x132f
0000126f: JUMPI
00001270: PUSH1 0xd6
00001272: SLOAD
00001273: PUSH1 0x00
00001275: PUSH2 0x127e
00001278: DUP4
00001279: DUP4
0000127a: PUSH2 0x4af2
0000127d: JUMP
0000127e: JUMPDEST
0000127f: SWAP1
00001280: POP
00001281: PUSH2 0x128a
00001284: DUP4
00001285: DUP7
00001286: PUSH2 0x4b05
00001289: JUMP
0000128a: JUMPDEST
0000128b: PUSH1 0xd6
0000128d: DUP3
0000128e: SWAP1
0000128f: SSTORE
00001290: PUSH1 0x40
00001292: DUP1
00001293: MLOAD
00001294: DUP6
00001295: DUP2
00001296: MSTORE
00001297: PUSH1 0x00
00001299: PUSH1 0x20
0000129b: DUP3
0000129c: ADD
0000129d: MSTORE
0000129e: SWAP1
0000129f: DUP2
000012a0: ADD
000012a1: DUP3
000012a2: SWAP1
000012a3: MSTORE
000012a4: SWAP1
000012a5: SWAP6
000012a6: POP
000012a7: PUSH1 0x01
000012a9: PUSH1 0x01
000012ab: PUSH1 0xa0
000012ad: SHL
000012ae: SUB
000012af: DUP10
000012b0: AND
000012b1: SWAP1
000012b2: ADDRESS
000012b3: SWAP1
000012b4: PUSH32 0x1a2a22cb034d26d1854bdc6666a5b91fe25efbbb5dcad3b0355478d6f5c362a1
000012d5: SWAP1
000012d6: PUSH1 0x60
000012d8: ADD
000012d9: PUSH1 0x40
000012db: MLOAD
000012dc: DUP1
000012dd: SWAP2
000012de: SUB
000012df: SWAP1
000012e0: LOG3
000012e1: PUSH1 0x40
000012e3: DUP1
000012e4: MLOAD
000012e5: DUP5
000012e6: DUP2
000012e7: MSTORE
000012e8: PUSH1 0x20
000012ea: DUP2
000012eb: ADD
000012ec: DUP5
000012ed: SWAP1
000012ee: MSTORE
000012ef: SWAP1
000012f0: DUP2
000012f1: ADD
000012f2: DUP3
000012f3: SWAP1
000012f4: MSTORE
000012f5: PUSH1 0x01
000012f7: PUSH1 0x01
000012f9: PUSH1 0xa0
000012fb: SHL
000012fc: SUB
000012fd: DUP10
000012fe: AND
000012ff: SWAP1
00001300: PUSH32 0x90125ffdb441e57c4f6bf69789206424859f206bea5727f2d81ad2470826ef6a
00001321: SWAP1
00001322: PUSH1 0x60
00001324: ADD
00001325: PUSH1 0x40
00001327: MLOAD
00001328: DUP1
00001329: SWAP2
0000132a: SUB
0000132b: SWAP1
0000132c: LOG2
0000132d: POP
0000132e: POP
0000132f: JUMPDEST
00001330: PUSH1 0x01
00001332: PUSH1 0x01
00001334: PUSH1 0xa0
00001336: SHL
00001337: SUB
00001338: DUP1
00001339: DUP8
0000133a: AND
0000133b: PUSH1 0x00
0000133d: DUP2
0000133e: DUP2
0000133f: MSTORE
00001340: PUSH1 0xd9
00001342: PUSH1 0x20
00001344: MSTORE
00001345: PUSH1 0x40
00001347: DUP1
00001348: DUP3
00001349: KECCAK256
0000134a: SWAP2
0000134b: DUP3
0000134c: SSTORE
0000134d: PUSH1 0xd2
0000134f: SLOAD
00001350: PUSH1 0x01
00001352: SWAP1
00001353: SWAP3
00001354: ADD
00001355: SWAP2
00001356: SWAP1
00001357: SWAP2
00001358: SSTORE
00001359: PUSH1 0xd3
0000135b: DUP7
0000135c: SWAP1
0000135d: SSTORE
0000135e: MLOAD
0000135f: SWAP1
00001360: SWAP2
00001361: DUP10
00001362: AND
00001363: SWAP1
00001364: PUSH32 0x9fe0294717a8efbc6ace1c151b73a4c89982339b2228a27d1ca21394e348986f
00001385: SWAP1
00001386: PUSH2 0x1392
00001389: SWAP1
0000138a: DUP10
0000138b: DUP2
0000138c: MSTORE
0000138d: PUSH1 0x20
0000138f: ADD
00001390: SWAP1
00001391: JUMP
00001392: JUMPDEST
00001393: PUSH1 0x40
00001395: MLOAD
00001396: DUP1
00001397: SWAP2
00001398: SUB
00001399: SWAP1
0000139a: LOG3
0000139b: POP
0000139c: POP
0000139d: PUSH1 0xc9
0000139f: DUP1
000013a0: SLOAD
000013a1: PUSH1 0xff
000013a3: NOT
000013a4: AND
000013a5: PUSH1 0x01
000013a7: OR
000013a8: SWAP1
000013a9: SSTORE
000013aa: POP
000013ab: POP
000013ac: POP
000013ad: POP
000013ae: POP
000013af: JUMP
000013b0: JUMPDEST
000013b1: PUSH2 0x13b8
000013b4: PUSH2 0x2250
000013b7: JUMP
000013b8: JUMPDEST
000013b9: PUSH2 0x13c2
000013bc: PUSH1 0x00
000013be: PUSH2 0x31d9
000013c1: JUMP
000013c2: JUMPDEST
000013c3: JUMP
000013c4: JUMPDEST
000013c5: PUSH1 0xc9
000013c7: SLOAD
000013c8: PUSH1 0x00
000013ca: SWAP1
000013cb: PUSH1 0xff
000013cd: AND
000013ce: PUSH2 0x13e9
000013d1: JUMPI
000013d2: PUSH1 0x40
000013d4: MLOAD
000013d5: PUSH3 0x461bcd
000013d9: PUSH1 0xe5
000013db: SHL
000013dc: DUP2
000013dd: MSTORE
000013de: PUSH1 0x04
000013e0: ADD
000013e1: PUSH2 0x0a36
000013e4: SWAP1
000013e5: PUSH2 0x4a9f
000013e8: JUMP
000013e9: JUMPDEST
000013ea: PUSH1 0xc9
000013ec: DUP1
000013ed: SLOAD
000013ee: PUSH1 0xff
000013f0: NOT
000013f1: AND
000013f2: SWAP1
000013f3: SSTORE
000013f4: PUSH2 0x13fb
000013f7: PUSH2 0x1976
000013fa: JUMP
000013fb: JUMPDEST
000013fc: POP
000013fd: POP
000013fe: PUSH1 0xd3
00001400: SLOAD
00001401: PUSH1 0xc9
00001403: DUP1
00001404: SLOAD
00001405: PUSH1 0xff
00001407: NOT
00001408: AND
00001409: PUSH1 0x01
0000140b: OR
0000140c: SWAP1
0000140d: SSTORE
0000140e: SWAP1
0000140f: JUMP
00001410: JUMPDEST
00001411: PUSH2 0x144e
00001414: PUSH1 0x40
00001416: MLOAD
00001417: DUP1
00001418: PUSH1 0x40
0000141a: ADD
0000141b: PUSH1 0x40
0000141d: MSTORE
0000141e: DUP1
0000141f: PUSH1 0x1e
00001421: DUP2
00001422: MSTORE
00001423: PUSH1 0x20
00001425: ADD
00001426: PUSH32 0x73657450726f746f636f6c5365697a6553686172652875696e74323536290000
00001447: DUP2
00001448: MSTORE
00001449: POP
0000144a: PUSH2 0x26fb
0000144d: JUMP
0000144e: JUMPDEST
0000144f: PUSH1 0xcd
00001451: SLOAD
00001452: PUSH1 0x40
00001454: DUP1
00001455: MLOAD
00001456: PUSH4 0x4ada90af
0000145b: PUSH1 0xe0
0000145d: SHL
0000145e: DUP2
0000145f: MSTORE
00001460: SWAP1
00001461: MLOAD
00001462: PUSH1 0x00
00001464: SWAP3
00001465: PUSH1 0x01
00001467: PUSH1 0x01
00001469: PUSH1 0xa0
0000146b: SHL
0000146c: SUB
0000146d: AND
0000146e: SWAP2
0000146f: PUSH4 0x4ada90af
00001474: SWAP2
00001475: PUSH1 0x04
00001477: DUP1
00001478: DUP4
00001479: ADD
0000147a: SWAP3
0000147b: PUSH1 0x20
0000147d: SWAP3
0000147e: SWAP2
0000147f: SWAP1
00001480: DUP3
00001481: SWAP1
00001482: SUB
00001483: ADD
00001484: DUP2
00001485: DUP7
00001486: GAS
00001487: STATICCALL
00001488: ISZERO
00001489: DUP1
0000148a: ISZERO
0000148b: PUSH2 0x1498
0000148e: JUMPI
0000148f: RETURNDATASIZE
00001490: PUSH1 0x00
00001492: DUP1
00001493: RETURNDATACOPY
00001494: RETURNDATASIZE
00001495: PUSH1 0x00
00001497: REVERT
00001498: JUMPDEST
00001499: POP
0000149a: POP
0000149b: POP
0000149c: POP
0000149d: PUSH1 0x40
0000149f: MLOAD
000014a0: RETURNDATASIZE
000014a1: PUSH1 0x1f
000014a3: NOT
000014a4: PUSH1 0x1f
000014a6: DUP3
000014a7: ADD
000014a8: AND
000014a9: DUP3
000014aa: ADD
000014ab: DUP1
000014ac: PUSH1 0x40
000014ae: MSTORE
000014af: POP
000014b0: DUP2
000014b1: ADD
000014b2: SWAP1
000014b3: PUSH2 0x14bc
000014b6: SWAP2
000014b7: SWAP1
000014b8: PUSH2 0x4ac3
000014bb: JUMP
000014bc: JUMPDEST
000014bd: SWAP1
000014be: POP
000014bf: DUP1
000014c0: PUSH2 0x14d1
000014c3: PUSH8 0x0de0b6b3a7640000
000014cc: DUP5
000014cd: PUSH2 0x4af2
000014d0: JUMP
000014d1: JUMPDEST
000014d2: GT
000014d3: ISZERO
000014d4: PUSH2 0x14f0
000014d7: JUMPI
000014d8: PUSH1 0x40
000014da: MLOAD
000014db: PUSH4 0x034dd2c1
000014e0: PUSH1 0xe1
000014e2: SHL
000014e3: DUP2
000014e4: MSTORE
000014e5: PUSH1 0x04
000014e7: ADD
000014e8: PUSH1 0x40
000014ea: MLOAD
000014eb: DUP1
000014ec: SWAP2
000014ed: SUB
000014ee: SWAP1
000014ef: REVERT
000014f0: JUMPDEST
000014f1: PUSH1 0xda
000014f3: DUP1
000014f4: SLOAD
000014f5: SWAP1
000014f6: DUP4
000014f7: SWAP1
000014f8: SSTORE
000014f9: PUSH1 0x40
000014fb: DUP1
000014fc: MLOAD
000014fd: DUP3
000014fe: DUP2
000014ff: MSTORE
00001500: PUSH1 0x20
00001502: DUP2
00001503: ADD
00001504: DUP6
00001505: SWAP1
00001506: MSTORE
00001507: PUSH32 0xf5815f353a60e815cce7553e4f60c533a59d26b1b5504ea4b6db8d60da3e4da2
00001528: SWAP2
00001529: ADD
0000152a: JUMPDEST
0000152b: PUSH1 0x40
0000152d: MLOAD
0000152e: DUP1
0000152f: SWAP2
00001530: SUB
00001531: SWAP1
00001532: LOG1
00001533: POP
00001534: POP
00001535: POP
00001536: JUMP
00001537: JUMPDEST
00001538: PUSH1 0xc9
0000153a: SLOAD
0000153b: PUSH1 0xff
0000153d: AND
0000153e: PUSH2 0x1559
00001541: JUMPI
00001542: PUSH1 0x40
00001544: MLOAD
00001545: PUSH3 0x461bcd
00001549: PUSH1 0xe5
0000154b: SHL
0000154c: DUP2
0000154d: MSTORE
0000154e: PUSH1 0x04
00001550: ADD
00001551: PUSH2 0x0a36
00001554: SWAP1
00001555: PUSH2 0x4a9f
00001558: JUMP
00001559: JUMPDEST
0000155a: PUSH1 0xc9
0000155c: DUP1
0000155d: SLOAD
0000155e: PUSH1 0xff
00001560: NOT
00001561: AND
00001562: SWAP1
00001563: SSTORE
00001564: PUSH2 0x156b
00001567: PUSH2 0x1976
0000156a: JUMP
0000156b: JUMPDEST
0000156c: POP
0000156d: PUSH2 0x1575
00001570: DUP2
00001571: PUSH2 0x31f2
00001574: JUMP
00001575: JUMPDEST
00001576: POP
00001577: POP
00001578: PUSH1 0xc9
0000157a: DUP1
0000157b: SLOAD
0000157c: PUSH1 0xff
0000157e: NOT
0000157f: AND
00001580: PUSH1 0x01
00001582: OR
00001583: SWAP1
00001584: SSTORE
00001585: JUMP
00001586: JUMPDEST
00001587: PUSH1 0x65
00001589: SLOAD
0000158a: CALLER
0000158b: SWAP1
0000158c: PUSH1 0x01
0000158e: PUSH1 0x01
00001590: PUSH1 0xa0
00001592: SHL
00001593: SUB
00001594: AND
00001595: DUP2
00001596: EQ
00001597: PUSH2 0x15f4
0000159a: JUMPI
0000159b: PUSH1 0x40
0000159d: MLOAD
0000159e: PUSH3 0x461bcd
000015a2: PUSH1 0xe5
000015a4: SHL
000015a5: DUP2
000015a6: MSTORE
000015a7: PUSH1 0x20
000015a9: PUSH1 0x04
000015ab: DUP3
000015ac: ADD
000015ad: MSTORE
000015ae: PUSH1 0x29
000015b0: PUSH1 0x24
000015b2: DUP3
000015b3: ADD
000015b4: MSTORE
000015b5: PUSH32 0x4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520
000015d6: PUSH1 0x44
000015d8: DUP3
000015d9: ADD
000015da: MSTORE
000015db: PUSH9 0x3732bb9037bbb732b9
000015e5: PUSH1 0xb9
000015e7: SHL
000015e8: PUSH1 0x64
000015ea: DUP3
000015eb: ADD
000015ec: MSTORE
000015ed: PUSH1 0x84
000015ef: ADD
000015f0: PUSH2 0x0a36
000015f3: JUMP
000015f4: JUMPDEST
000015f5: PUSH2 0x0afd
000015f8: DUP2
000015f9: PUSH2 0x31d9
000015fc: JUMP
000015fd: JUMPDEST
000015fe: PUSH1 0xc9
00001600: SLOAD
00001601: PUSH1 0x00
00001603: SWAP1
00001604: PUSH1 0xff
00001606: AND
00001607: PUSH2 0x1622
0000160a: JUMPI
0000160b: PUSH1 0x40
0000160d: MLOAD
0000160e: PUSH3 0x461bcd
00001612: PUSH1 0xe5
00001614: SHL
00001615: DUP2
00001616: MSTORE
00001617: PUSH1 0x04
00001619: ADD
0000161a: PUSH2 0x0a36
0000161d: SWAP1
0000161e: PUSH2 0x4a9f
00001621: JUMP
00001622: JUMPDEST
00001623: PUSH1 0xc9
00001625: DUP1
00001626: SLOAD
00001627: PUSH1 0xff
00001629: NOT
0000162a: AND
0000162b: SWAP1
0000162c: SSTORE
0000162d: PUSH2 0x1634
00001630: PUSH2 0x1976
00001633: JUMP
00001634: JUMPDEST
00001635: POP
00001636: PUSH2 0x1642
00001639: CALLER
0000163a: CALLER
0000163b: PUSH1 0x00
0000163d: DUP6
0000163e: PUSH2 0x28ba
00001641: JUMP
00001642: JUMPDEST
00001643: POP
00001644: PUSH1 0x00
00001646: PUSH1 0xc9
00001648: DUP1
00001649: SLOAD
0000164a: PUSH1 0xff
0000164c: NOT
0000164d: AND
0000164e: PUSH1 0x01
00001650: OR
00001651: SWAP1
00001652: SSTORE
00001653: SWAP2
00001654: SWAP1
00001655: POP
00001656: JUMP
00001657: JUMPDEST
00001658: PUSH1 0x00
0000165a: PUSH2 0x1662
0000165d: DUP4
0000165e: PUSH2 0x2829
00001661: JUMP
00001662: JUMPDEST
00001663: PUSH2 0x166a
00001666: PUSH2 0x1976
00001669: JUMP
0000166a: JUMPDEST
0000166b: POP
0000166c: PUSH2 0x1676
0000166f: DUP4
00001670: CALLER
00001671: DUP5
00001672: PUSH2 0x3287
00001675: JUMP
00001676: JUMPDEST
00001677: POP
00001678: PUSH1 0x00
0000167a: SWAP3
0000167b: SWAP2
0000167c: POP
0000167d: POP
0000167e: JUMP
0000167f: JUMPDEST
00001680: PUSH1 0x00
00001682: SLOAD
00001683: PUSH2 0x0100
00001686: SWAP1
00001687: DIV
00001688: PUSH1 0xff
0000168a: AND
0000168b: ISZERO
0000168c: DUP1
0000168d: DUP1
0000168e: ISZERO
0000168f: PUSH2 0x169f
00001692: JUMPI
00001693: POP
00001694: PUSH1 0x00
00001696: SLOAD
00001697: PUSH1 0x01
00001699: PUSH1 0xff
0000169b: SWAP1
0000169c: SWAP2
0000169d: AND
0000169e: LT
0000169f: JUMPDEST
000016a0: DUP1
000016a1: PUSH2 0x16b9
000016a4: JUMPI
000016a5: POP
000016a6: ADDRESS
000016a7: EXTCODESIZE
000016a8: ISZERO
000016a9: DUP1
000016aa: ISZERO
000016ab: PUSH2 0x16b9
000016ae: JUMPI
000016af: POP
000016b0: PUSH1 0x00
000016b2: SLOAD
000016b3: PUSH1 0xff
000016b5: AND
000016b6: PUSH1 0x01
000016b8: EQ
000016b9: JUMPDEST
000016ba: PUSH2 0x171c
000016bd: JUMPI
000016be: PUSH1 0x40
000016c0: MLOAD
000016c1: PUSH3 0x461bcd
000016c5: PUSH1 0xe5
000016c7: SHL
000016c8: DUP2
000016c9: MSTORE
000016ca: PUSH1 0x20
000016cc: PUSH1 0x04
000016ce: DUP3
000016cf: ADD
000016d0: MSTORE
000016d1: PUSH1 0x2e
000016d3: PUSH1 0x24
000016d5: DUP3
000016d6: ADD
000016d7: MSTORE
000016d8: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561
000016f9: PUSH1 0x44
000016fb: DUP3
000016fc: ADD
000016fd: MSTORE
000016fe: PUSH14 0x191e481a5b9a5d1a585b1a5e9959
0000170d: PUSH1 0x92
0000170f: SHL
00001710: PUSH1 0x64
00001712: DUP3
00001713: ADD
00001714: MSTORE
00001715: PUSH1 0x84
00001717: ADD
00001718: PUSH2 0x0a36
0000171b: JUMP
0000171c: JUMPDEST
0000171d: PUSH1 0x00
0000171f: DUP1
00001720: SLOAD
00001721: PUSH1 0xff
00001723: NOT
00001724: AND
00001725: PUSH1 0x01
00001727: OR
00001728: SWAP1
00001729: SSTORE
0000172a: DUP1
0000172b: ISZERO
0000172c: PUSH2 0x173f
0000172f: JUMPI
00001730: PUSH1 0x00
00001732: DUP1
00001733: SLOAD
00001734: PUSH2 0xff00
00001737: NOT
00001738: AND
00001739: PUSH2 0x0100
0000173c: OR
0000173d: SWAP1
0000173e: SSTORE
0000173f: JUMPDEST
00001740: PUSH2 0x1748
00001743: DUP6
00001744: PUSH2 0x2229
00001747: JUMP
00001748: JUMPDEST
00001749: PUSH2 0x175b
0000174c: DUP13
0000174d: DUP13
0000174e: DUP13
0000174f: DUP13
00001750: DUP13
00001751: DUP13
00001752: DUP13
00001753: DUP13
00001754: DUP13
00001755: DUP13
00001756: DUP13
00001757: PUSH2 0x3465
0000175a: JUMP
0000175b: JUMPDEST
0000175c: DUP1
0000175d: ISZERO
0000175e: PUSH2 0x17a1
00001761: JUMPI
00001762: PUSH1 0x00
00001764: DUP1
00001765: SLOAD
00001766: PUSH2 0xff00
00001769: NOT
0000176a: AND
0000176b: SWAP1
0000176c: SSTORE
0000176d: PUSH1 0x40
0000176f: MLOAD
00001770: PUSH1 0x01
00001772: DUP2
00001773: MSTORE
00001774: PUSH32 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498
00001795: SWAP1
00001796: PUSH1 0x20
00001798: ADD
00001799: PUSH1 0x40
0000179b: MLOAD
0000179c: DUP1
0000179d: SWAP2
0000179e: SUB
0000179f: SWAP1
000017a0: LOG1
000017a1: JUMPDEST
000017a2: POP
000017a3: POP
000017a4: POP
000017a5: POP
000017a6: POP
000017a7: POP
000017a8: POP
000017a9: POP
000017aa: POP
000017ab: POP
000017ac: POP
000017ad: POP
000017ae: JUMP
000017af: JUMPDEST
000017b0: PUSH1 0xcd
000017b2: SLOAD
000017b3: PUSH1 0x01
000017b5: PUSH1 0x01
000017b7: PUSH1 0xa0
000017b9: SHL
000017ba: SUB
000017bb: AND
000017bc: CALLER
000017bd: EQ
000017be: PUSH2 0x17da
000017c1: JUMPI
000017c2: PUSH1 0x40
000017c4: MLOAD
000017c5: PUSH4 0x5c85a5e7
000017ca: PUSH1 0xe0
000017cc: SHL
000017cd: DUP2
000017ce: MSTORE
000017cf: PUSH1 0x04
000017d1: ADD
000017d2: PUSH1 0x40
000017d4: MLOAD
000017d5: DUP1
000017d6: SWAP2
000017d7: SUB
000017d8: SWAP1
000017d9: REVERT
000017da: JUMPDEST
000017db: PUSH2 0x17e7
000017de: DUP6
000017df: DUP6
000017e0: DUP6
000017e1: DUP6
000017e2: DUP6
000017e3: PUSH2 0x3692
000017e6: JUMP
000017e7: JUMPDEST
000017e8: POP
000017e9: POP
000017ea: POP
000017eb: POP
000017ec: POP
000017ed: JUMP
000017ee: JUMPDEST
000017ef: PUSH2 0x182c
000017f2: PUSH1 0x40
000017f4: MLOAD
000017f5: DUP1
000017f6: PUSH1 0x40
000017f8: ADD
000017f9: PUSH1 0x40
000017fb: MSTORE
000017fc: DUP1
000017fd: PUSH1 0x1d
000017ff: DUP2
00001800: MSTORE
00001801: PUSH1 0x20
00001803: ADD
00001804: PUSH32 0x736574496e746572657374526174654d6f64656c286164647265737329000000
00001825: DUP2
00001826: MSTORE
00001827: POP
00001828: PUSH2 0x26fb
0000182b: JUMP
0000182c: JUMPDEST
0000182d: PUSH2 0x1834
00001830: PUSH2 0x1976
00001833: JUMP
00001834: JUMPDEST
00001835: POP
00001836: PUSH2 0x0afd
00001839: DUP2
0000183a: PUSH2 0x3773
0000183d: JUMP
0000183e: JUMPDEST
0000183f: PUSH1 0xcb
00001841: DUP1
00001842: SLOAD
00001843: PUSH2 0x0993
00001846: SWAP1
00001847: PUSH2 0x4a65
0000184a: JUMP
0000184b: JUMPDEST
0000184c: PUSH1 0x00
0000184e: PUSH2 0x0ae6
00001851: DUP3
00001852: PUSH2 0x25ae
00001855: JUMP
00001856: JUMPDEST
00001857: PUSH1 0xc9
00001859: SLOAD
0000185a: PUSH1 0x00
0000185c: SWAP1
0000185d: PUSH1 0xff
0000185f: AND
00001860: PUSH2 0x187b
00001863: JUMPI
00001864: PUSH1 0x40
00001866: MLOAD
00001867: PUSH3 0x461bcd
0000186b: PUSH1 0xe5
0000186d: SHL
0000186e: DUP2
0000186f: MSTORE
00001870: PUSH1 0x04
00001872: ADD
00001873: PUSH2 0x0a36
00001876: SWAP1
00001877: PUSH2 0x4a9f
0000187a: JUMP
0000187b: JUMPDEST
0000187c: PUSH1 0xc9
0000187e: DUP1
0000187f: SLOAD
00001880: PUSH1 0xff
00001882: NOT
00001883: AND
00001884: SWAP1
00001885: SSTORE
00001886: PUSH2 0x188d
00001889: PUSH2 0x1976
0000188c: JUMP
0000188d: JUMPDEST
0000188e: POP
0000188f: PUSH2 0x1642
00001892: CALLER
00001893: CALLER
00001894: DUP5
00001895: PUSH2 0x2bf3
00001898: JUMP
00001899: JUMPDEST
0000189a: PUSH1 0x00
0000189c: PUSH2 0x18a4
0000189f: DUP4
000018a0: PUSH2 0x2229
000018a3: JUMP
000018a4: JUMPDEST
000018a5: CALLER
000018a6: PUSH1 0x00
000018a8: DUP2
000018a9: DUP2
000018aa: MSTORE
000018ab: PUSH1 0xd8
000018ad: PUSH1 0x20
000018af: SWAP1
000018b0: DUP2
000018b1: MSTORE
000018b2: PUSH1 0x40
000018b4: DUP1
000018b5: DUP4
000018b6: KECCAK256
000018b7: PUSH1 0x01
000018b9: PUSH1 0x01
000018bb: PUSH1 0xa0
000018bd: SHL
000018be: SUB
000018bf: DUP9
000018c0: AND
000018c1: DUP5
000018c2: MSTORE
000018c3: SWAP1
000018c4: SWAP2
000018c5: MSTORE
000018c6: SWAP1
000018c7: KECCAK256
000018c8: SLOAD
000018c9: DUP4
000018ca: DUP2
000018cb: LT
000018cc: ISZERO
000018cd: PUSH2 0x1918
000018d0: JUMPI
000018d1: PUSH1 0x40
000018d3: MLOAD
000018d4: PUSH3 0x461bcd
000018d8: PUSH1 0xe5
000018da: SHL
000018db: DUP2
000018dc: MSTORE
000018dd: PUSH1 0x20
000018df: PUSH1 0x04
000018e1: DUP3
000018e2: ADD
000018e3: MSTORE
000018e4: PUSH1 0x1e
000018e6: PUSH1 0x24
000018e8: DUP3
000018e9: ADD
000018ea: MSTORE
000018eb: PUSH32 0x64656372656173656420616c6c6f77616e63652062656c6f77207a65726f0000
0000190c: PUSH1 0x44
0000190e: DUP3
0000190f: ADD
00001910: MSTORE
00001911: PUSH1 0x64
00001913: ADD
00001914: PUSH2 0x0a36
00001917: JUMP
00001918: JUMPDEST
00001919: PUSH1 0x01
0000191b: PUSH1 0x01
0000191d: PUSH1 0xa0
0000191f: SHL
00001920: SUB
00001921: DUP3
00001922: DUP2
00001923: AND
00001924: PUSH1 0x00
00001926: DUP2
00001927: DUP2
00001928: MSTORE
00001929: PUSH1 0xd8
0000192b: PUSH1 0x20
0000192d: SWAP1
0000192e: DUP2
0000192f: MSTORE
00001930: PUSH1 0x40
00001932: DUP1
00001933: DUP4
00001934: KECCAK256
00001935: SWAP5
00001936: DUP11
00001937: AND
00001938: DUP1
00001939: DUP5
0000193a: MSTORE
0000193b: SWAP5
0000193c: DUP3
0000193d: MSTORE
0000193e: SWAP2
0000193f: DUP3
00001940: SWAP1
00001941: KECCAK256
00001942: SWAP5
00001943: DUP9
00001944: SWAP1
00001945: SUB
00001946: SWAP5
00001947: DUP6
00001948: SWAP1
00001949: SSTORE
0000194a: SWAP1
0000194b: MLOAD
0000194c: DUP5
0000194d: DUP2
0000194e: MSTORE
0000194f: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
00001970: SWAP2
00001971: ADD
00001972: PUSH2 0x1099
00001975: JUMP
00001976: JUMPDEST
00001977: PUSH1 0x00
00001979: DUP1
0000197a: PUSH2 0x1981
0000197d: PUSH2 0x1e72
00001980: JUMP
00001981: JUMPDEST
00001982: PUSH1 0xd1
00001984: SLOAD
00001985: SWAP1
00001986: SWAP2
00001987: POP
00001988: DUP2
00001989: DUP2
0000198a: SUB
0000198b: PUSH2 0x1997
0000198e: JUMPI
0000198f: PUSH1 0x00
00001991: SWAP3
00001992: POP
00001993: POP
00001994: POP
00001995: SWAP1
00001996: JUMP
00001997: JUMPDEST
00001998: PUSH1 0x00
0000199a: PUSH2 0x19a1
0000199d: PUSH2 0x303a
000019a0: JUMP
000019a1: JUMPDEST
000019a2: PUSH1 0xd3
000019a4: SLOAD
000019a5: PUSH1 0xd4
000019a7: SLOAD
000019a8: PUSH1 0xd2
000019aa: SLOAD
000019ab: PUSH1 0xce
000019ad: SLOAD
000019ae: PUSH1 0xd6
000019b0: SLOAD
000019b1: PUSH1 0x40
000019b3: MLOAD
000019b4: PUSH4 0x01cee29d
000019b9: PUSH1 0xe2
000019bb: SHL
000019bc: DUP2
000019bd: MSTORE
000019be: PUSH1 0x04
000019c0: DUP2
000019c1: ADD
000019c2: DUP8
000019c3: SWAP1
000019c4: MSTORE
000019c5: PUSH1 0x24
000019c7: DUP2
000019c8: ADD
000019c9: DUP7
000019ca: SWAP1
000019cb: MSTORE
000019cc: PUSH1 0x44
000019ce: DUP2
000019cf: ADD
000019d0: DUP6
000019d1: SWAP1
000019d2: MSTORE
000019d3: PUSH1 0x64
000019d5: DUP2
000019d6: ADD
000019d7: SWAP2
000019d8: SWAP1
000019d9: SWAP2
000019da: MSTORE
000019db: SWAP5
000019dc: SWAP6
000019dd: POP
000019de: SWAP3
000019df: SWAP4
000019e0: SWAP2
000019e1: SWAP3
000019e2: SWAP1
000019e3: SWAP2
000019e4: PUSH1 0x00
000019e6: SWAP2
000019e7: PUSH1 0x01
000019e9: PUSH1 0x01
000019eb: PUSH1 0xa0
000019ed: SHL
000019ee: SUB
000019ef: AND
000019f0: SWAP1
000019f1: PUSH4 0x073b8a74
000019f6: SWAP1
000019f7: PUSH1 0x84
000019f9: ADD
000019fa: PUSH1 0x20
000019fc: PUSH1 0x40
000019fe: MLOAD
000019ff: DUP1
00001a00: DUP4
00001a01: SUB
00001a02: DUP2
00001a03: DUP7
00001a04: GAS
00001a05: STATICCALL
00001a06: ISZERO
00001a07: DUP1
00001a08: ISZERO
00001a09: PUSH2 0x1a16
00001a0c: JUMPI
00001a0d: RETURNDATASIZE
00001a0e: PUSH1 0x00
00001a10: DUP1
00001a11: RETURNDATACOPY
00001a12: RETURNDATASIZE
00001a13: PUSH1 0x00
00001a15: REVERT
00001a16: JUMPDEST
00001a17: POP
00001a18: POP
00001a19: POP
00001a1a: POP
00001a1b: PUSH1 0x40
00001a1d: MLOAD
00001a1e: RETURNDATASIZE
00001a1f: PUSH1 0x1f
00001a21: NOT
00001a22: PUSH1 0x1f
00001a24: DUP3
00001a25: ADD
00001a26: AND
00001a27: DUP3
00001a28: ADD
00001a29: DUP1
00001a2a: PUSH1 0x40
00001a2c: MSTORE
00001a2d: POP
00001a2e: DUP2
00001a2f: ADD
00001a30: SWAP1
00001a31: PUSH2 0x1a3a
00001a34: SWAP2
00001a35: SWAP1
00001a36: PUSH2 0x4ac3
00001a39: JUMP
00001a3a: JUMPDEST
00001a3b: SWAP1
00001a3c: POP
00001a3d: PUSH32 0x0000000000000000000000000000000000000000000000000000048c27395000
00001a5e: DUP2
00001a5f: GT
00001a60: ISZERO
00001a61: PUSH2 0x1aac
00001a64: JUMPI
00001a65: PUSH1 0x40
00001a67: MLOAD
00001a68: PUSH3 0x461bcd
00001a6c: PUSH1 0xe5
00001a6e: SHL
00001a6f: DUP2
00001a70: MSTORE
00001a71: PUSH1 0x20
00001a73: PUSH1 0x04
00001a75: DUP3
00001a76: ADD
00001a77: MSTORE
00001a78: PUSH1 0x1c
00001a7a: PUSH1 0x24
00001a7c: DUP3
00001a7d: ADD
00001a7e: MSTORE
00001a7f: PUSH32 0x626f72726f772072617465206973206162737572646c79206869676800000000
00001aa0: PUSH1 0x44
00001aa2: DUP3
00001aa3: ADD
00001aa4: MSTORE
00001aa5: PUSH1 0x64
00001aa7: ADD
00001aa8: PUSH2 0x0a36
00001aab: JUMP
00001aac: JUMPDEST
00001aad: PUSH1 0x00
00001aaf: PUSH2 0x1ab8
00001ab2: DUP8
00001ab3: DUP10
00001ab4: PUSH2 0x4b05
00001ab7: JUMP
00001ab8: JUMPDEST
00001ab9: SWAP1
00001aba: POP
00001abb: PUSH1 0x00
00001abd: PUSH2 0x1ad4
00001ac0: PUSH1 0x40
00001ac2: MLOAD
00001ac3: DUP1
00001ac4: PUSH1 0x20
00001ac6: ADD
00001ac7: PUSH1 0x40
00001ac9: MSTORE
00001aca: DUP1
00001acb: DUP6
00001acc: DUP2
00001acd: MSTORE
00001ace: POP
00001acf: DUP4
00001ad0: PUSH2 0x38b5
00001ad3: JUMP
00001ad4: JUMPDEST
00001ad5: SWAP1
00001ad6: POP
00001ad7: PUSH1 0x00
00001ad9: PUSH2 0x1ae2
00001adc: DUP3
00001add: DUP9
00001ade: PUSH2 0x3022
00001ae1: JUMP
00001ae2: JUMPDEST
00001ae3: SWAP1
00001ae4: POP
00001ae5: PUSH1 0x00
00001ae7: PUSH2 0x1af0
00001aea: DUP9
00001aeb: DUP4
00001aec: PUSH2 0x4af2
00001aef: JUMP
00001af0: JUMPDEST
00001af1: SWAP1
00001af2: POP
00001af3: PUSH1 0x00
00001af5: PUSH2 0x1b0f
00001af8: PUSH1 0x40
00001afa: MLOAD
00001afb: DUP1
00001afc: PUSH1 0x20
00001afe: ADD
00001aff: PUSH1 0x40
00001b01: MSTORE
00001b02: DUP1
00001b03: PUSH1 0xd0
00001b05: SLOAD
00001b06: DUP2
00001b07: MSTORE
00001b08: POP
00001b09: DUP5
00001b0a: DUP11
00001b0b: PUSH2 0x38e6
00001b0e: JUMP
00001b0f: JUMPDEST
00001b10: SWAP1
00001b11: POP
00001b12: PUSH1 0x00
00001b14: PUSH2 0x1b1e
00001b17: DUP6
00001b18: DUP10
00001b19: DUP11
00001b1a: PUSH2 0x38e6
00001b1d: JUMP
00001b1e: JUMPDEST
00001b1f: PUSH1 0xd1
00001b21: DUP15
00001b22: SWAP1
00001b23: SSTORE
00001b24: PUSH1 0xd2
00001b26: DUP2
00001b27: SWAP1
00001b28: SSTORE
00001b29: PUSH1 0xd3
00001b2b: DUP5
00001b2c: SWAP1
00001b2d: SSTORE
00001b2e: PUSH1 0xd4
00001b30: DUP4
00001b31: SWAP1
00001b32: SSTORE
00001b33: PUSH1 0xdc
00001b35: SLOAD
00001b36: PUSH1 0xdd
00001b38: SLOAD
00001b39: SWAP2
00001b3a: SWAP3
00001b3b: POP
00001b3c: SWAP1
00001b3d: PUSH2 0x1b46
00001b40: SWAP1
00001b41: DUP16
00001b42: PUSH2 0x4b05
00001b45: JUMP
00001b46: JUMPDEST
00001b47: LT
00001b48: PUSH2 0x1b6f
00001b4b: JUMPI
00001b4c: PUSH1 0xdd
00001b4e: DUP14
00001b4f: SWAP1
00001b50: SSTORE
00001b51: DUP2
00001b52: DUP12
00001b53: LT
00001b54: ISZERO
00001b55: PUSH2 0x1b66
00001b58: JUMPI
00001b59: PUSH2 0x1b61
00001b5c: DUP12
00001b5d: PUSH2 0x20ad
00001b60: JUMP
00001b61: JUMPDEST
00001b62: PUSH2 0x1b6f
00001b65: JUMP
00001b66: JUMPDEST
00001b67: PUSH2 0x1b6f
00001b6a: DUP3
00001b6b: PUSH2 0x20ad
00001b6e: JUMP
00001b6f: JUMPDEST
00001b70: PUSH1 0x40
00001b72: DUP1
00001b73: MLOAD
00001b74: DUP13
00001b75: DUP2
00001b76: MSTORE
00001b77: PUSH1 0x20
00001b79: DUP2
00001b7a: ADD
00001b7b: DUP7
00001b7c: SWAP1
00001b7d: MSTORE
00001b7e: SWAP1
00001b7f: DUP2
00001b80: ADD
00001b81: DUP3
00001b82: SWAP1
00001b83: MSTORE
00001b84: PUSH1 0x60
00001b86: DUP2
00001b87: ADD
00001b88: DUP5
00001b89: SWAP1
00001b8a: MSTORE
00001b8b: PUSH32 0x4dec04e750ca11537cabcd8a9eab06494de08da3735bc8871cd41250e190bc04
00001bac: SWAP1
00001bad: PUSH1 0x80
00001baf: ADD
00001bb0: PUSH1 0x40
00001bb2: MLOAD
00001bb3: DUP1
00001bb4: SWAP2
00001bb5: SUB
00001bb6: SWAP1
00001bb7: LOG1
00001bb8: PUSH1 0x00
00001bba: SWAP14
00001bbb: POP
00001bbc: POP
00001bbd: POP
00001bbe: POP
00001bbf: POP
00001bc0: POP
00001bc1: POP
00001bc2: POP
00001bc3: POP
00001bc4: POP
00001bc5: POP
00001bc6: POP
00001bc7: POP
00001bc8: POP
00001bc9: SWAP1
00001bca: JUMP
00001bcb: JUMPDEST
00001bcc: PUSH1 0xc9
00001bce: SLOAD
00001bcf: PUSH1 0x00
00001bd1: SWAP1
00001bd2: PUSH1 0xff
00001bd4: AND
00001bd5: PUSH2 0x1bf0
00001bd8: JUMPI
00001bd9: PUSH1 0x40
00001bdb: MLOAD
00001bdc: PUSH3 0x461bcd
00001be0: PUSH1 0xe5
00001be2: SHL
00001be3: DUP2
00001be4: MSTORE
00001be5: PUSH1 0x04
00001be7: ADD
00001be8: PUSH2 0x0a36
00001beb: SWAP1
00001bec: PUSH2 0x4a9f
00001bef: JUMP
00001bf0: JUMPDEST
00001bf1: PUSH1 0xc9
00001bf3: DUP1
00001bf4: SLOAD
00001bf5: PUSH1 0xff
00001bf7: NOT
00001bf8: AND
00001bf9: SWAP1
00001bfa: SSTORE
00001bfb: PUSH2 0x1c06
00001bfe: CALLER
00001bff: DUP1
00001c00: DUP6
00001c01: DUP6
00001c02: PUSH2 0x2df8
00001c05: JUMP
00001c06: JUMPDEST
00001c07: POP
00001c08: PUSH1 0x01
00001c0a: PUSH1 0xc9
00001c0c: DUP1
00001c0d: SLOAD
00001c0e: PUSH1 0xff
00001c10: NOT
00001c11: AND
00001c12: PUSH1 0x01
00001c14: OR
00001c15: SWAP1
00001c16: SSTORE
00001c17: SWAP3
00001c18: SWAP2
00001c19: POP
00001c1a: POP
00001c1b: JUMP
00001c1c: JUMPDEST
00001c1d: PUSH1 0xce
00001c1f: SLOAD
00001c20: PUSH1 0x00
00001c22: SWAP1
00001c23: PUSH1 0x01
00001c25: PUSH1 0x01
00001c27: PUSH1 0xa0
00001c29: SHL
00001c2a: SUB
00001c2b: AND
00001c2c: PUSH4 0x0cde8d1c
00001c31: PUSH2 0x1c38
00001c34: PUSH2 0x303a
00001c37: JUMP
00001c38: JUMPDEST
00001c39: PUSH1 0xd3
00001c3b: SLOAD
00001c3c: PUSH1 0xd4
00001c3e: SLOAD
00001c3f: PUSH1 0xd0
00001c41: SLOAD
00001c42: PUSH1 0xd6
00001c44: SLOAD
00001c45: PUSH1 0x40
00001c47: MLOAD
00001c48: PUSH1 0x01
00001c4a: PUSH1 0x01
00001c4c: PUSH1 0xe0
00001c4e: SHL
00001c4f: SUB
00001c50: NOT
00001c51: PUSH1 0xe0
00001c53: DUP9
00001c54: SWAP1
00001c55: SHL
00001c56: AND
00001c57: DUP2
00001c58: MSTORE
00001c59: PUSH1 0x04
00001c5b: DUP2
00001c5c: ADD
00001c5d: SWAP6
00001c5e: SWAP1
00001c5f: SWAP6
00001c60: MSTORE
00001c61: PUSH1 0x24
00001c63: DUP6
00001c64: ADD
00001c65: SWAP4
00001c66: SWAP1
00001c67: SWAP4
00001c68: MSTORE
00001c69: PUSH1 0x44
00001c6b: DUP5
00001c6c: ADD
00001c6d: SWAP2
00001c6e: SWAP1
00001c6f: SWAP2
00001c70: MSTORE
00001c71: PUSH1 0x64
00001c73: DUP4
00001c74: ADD
00001c75: MSTORE
00001c76: PUSH1 0x84
00001c78: DUP3
00001c79: ADD
00001c7a: MSTORE
00001c7b: PUSH1 0xa4
00001c7d: ADD
00001c7e: JUMPDEST
00001c7f: PUSH1 0x20
00001c81: PUSH1 0x40
00001c83: MLOAD
00001c84: DUP1
00001c85: DUP4
00001c86: SUB
00001c87: DUP2
00001c88: DUP7
00001c89: GAS
00001c8a: STATICCALL
00001c8b: ISZERO
00001c8c: DUP1
00001c8d: ISZERO
00001c8e: PUSH2 0x1c9b
00001c91: JUMPI
00001c92: RETURNDATASIZE
00001c93: PUSH1 0x00
00001c95: DUP1
00001c96: RETURNDATACOPY
00001c97: RETURNDATASIZE
00001c98: PUSH1 0x00
00001c9a: REVERT
00001c9b: JUMPDEST
00001c9c: POP
00001c9d: POP
00001c9e: POP
00001c9f: POP
00001ca0: PUSH1 0x40
00001ca2: MLOAD
00001ca3: RETURNDATASIZE
00001ca4: PUSH1 0x1f
00001ca6: NOT
00001ca7: PUSH1 0x1f
00001ca9: DUP3
00001caa: ADD
00001cab: AND
00001cac: DUP3
00001cad: ADD
00001cae: DUP1
00001caf: PUSH1 0x40
00001cb1: MSTORE
00001cb2: POP
00001cb3: DUP2
00001cb4: ADD
00001cb5: SWAP1
00001cb6: PUSH2 0x0bca
00001cb9: SWAP2
00001cba: SWAP1
00001cbb: PUSH2 0x4ac3
00001cbe: JUMP
00001cbf: JUMPDEST
00001cc0: PUSH1 0xc9
00001cc2: SLOAD
00001cc3: PUSH1 0xff
00001cc5: AND
00001cc6: PUSH2 0x1ce1
00001cc9: JUMPI
00001cca: PUSH1 0x40
00001ccc: MLOAD
00001ccd: PUSH3 0x461bcd
00001cd1: PUSH1 0xe5
00001cd3: SHL
00001cd4: DUP2
00001cd5: MSTORE
00001cd6: PUSH1 0x04
00001cd8: ADD
00001cd9: PUSH2 0x0a36
00001cdc: SWAP1
00001cdd: PUSH2 0x4a9f
00001ce0: JUMP
00001ce1: JUMPDEST
00001ce2: PUSH1 0xc9
00001ce4: DUP1
00001ce5: SLOAD
00001ce6: PUSH1 0xff
00001ce8: NOT
00001ce9: AND
00001cea: SWAP1
00001ceb: SSTORE
00001cec: PUSH2 0x1cf7
00001cef: CALLER
00001cf0: DUP5
00001cf1: DUP5
00001cf2: DUP5
00001cf3: PUSH2 0x3907
00001cf6: JUMP
00001cf7: JUMPDEST
00001cf8: POP
00001cf9: POP
00001cfa: PUSH1 0xc9
00001cfc: DUP1
00001cfd: SLOAD
00001cfe: PUSH1 0xff
00001d00: NOT
00001d01: AND
00001d02: PUSH1 0x01
00001d04: OR
00001d05: SWAP1
00001d06: SSTORE
00001d07: POP
00001d08: JUMP
00001d09: JUMPDEST
00001d0a: PUSH1 0xc9
00001d0c: SLOAD
00001d0d: PUSH1 0x00
00001d0f: SWAP1
00001d10: PUSH1 0xff
00001d12: AND
00001d13: PUSH2 0x1d2e
00001d16: JUMPI
00001d17: PUSH1 0x40
00001d19: MLOAD
00001d1a: PUSH3 0x461bcd
00001d1e: PUSH1 0xe5
00001d20: SHL
00001d21: DUP2
00001d22: MSTORE
00001d23: PUSH1 0x04
00001d25: ADD
00001d26: PUSH2 0x0a36
00001d29: SWAP1
00001d2a: PUSH2 0x4a9f
00001d2d: JUMP
00001d2e: JUMPDEST
00001d2f: PUSH1 0xc9
00001d31: DUP1
00001d32: SLOAD
00001d33: PUSH1 0xff
00001d35: NOT
00001d36: AND
00001d37: SWAP1
00001d38: SSTORE
00001d39: PUSH2 0x1d40
00001d3c: PUSH2 0x1976
00001d3f: JUMP
00001d40: JUMPDEST
00001d41: POP
00001d42: PUSH2 0x1d49
00001d45: PUSH2 0x261e
00001d48: JUMP
00001d49: JUMPDEST
00001d4a: SWAP1
00001d4b: POP
00001d4c: PUSH1 0xc9
00001d4e: DUP1
00001d4f: SLOAD
00001d50: PUSH1 0xff
00001d52: NOT
00001d53: AND
00001d54: PUSH1 0x01
00001d56: OR
00001d57: SWAP1
00001d58: SSTORE
00001d59: SWAP1
00001d5a: JUMP
00001d5b: JUMPDEST
00001d5c: PUSH1 0x01
00001d5e: PUSH1 0x01
00001d60: PUSH1 0xa0
00001d62: SHL
00001d63: SUB
00001d64: DUP2
00001d65: AND
00001d66: PUSH1 0x00
00001d68: SWAP1
00001d69: DUP2
00001d6a: MSTORE
00001d6b: PUSH1 0xd7
00001d6d: PUSH1 0x20
00001d6f: MSTORE
00001d70: PUSH1 0x40
00001d72: DUP2
00001d73: KECCAK256
00001d74: SLOAD
00001d75: DUP2
00001d76: SWAP1
00001d77: DUP2
00001d78: SWAP1
00001d79: DUP2
00001d7a: SWAP1
00001d7b: DUP2
00001d7c: SWAP1
00001d7d: PUSH2 0x1d85
00001d80: DUP8
00001d81: PUSH2 0x25ae
00001d84: JUMP
00001d85: JUMPDEST
00001d86: PUSH2 0x1d8d
00001d89: PUSH2 0x261e
00001d8c: JUMP
00001d8d: JUMPDEST
00001d8e: SWAP4
00001d8f: POP
00001d90: SWAP4
00001d91: POP
00001d92: SWAP4
00001d93: POP
00001d94: SWAP4
00001d95: POP
00001d96: SWAP2
00001d97: SWAP4
00001d98: POP
00001d99: SWAP2
00001d9a: SWAP4
00001d9b: JUMP
00001d9c: JUMPDEST
00001d9d: PUSH1 0xc9
00001d9f: SLOAD
00001da0: PUSH1 0x00
00001da2: SWAP1
00001da3: PUSH1 0xff
00001da5: AND
00001da6: PUSH2 0x1dc1
00001da9: JUMPI
00001daa: PUSH1 0x40
00001dac: MLOAD
00001dad: PUSH3 0x461bcd
00001db1: PUSH1 0xe5
00001db3: SHL
00001db4: DUP2
00001db5: MSTORE
00001db6: PUSH1 0x04
00001db8: ADD
00001db9: PUSH2 0x0a36
00001dbc: SWAP1
00001dbd: PUSH2 0x4a9f
00001dc0: JUMP
00001dc1: JUMPDEST
00001dc2: PUSH1 0xc9
00001dc4: DUP1
00001dc5: SLOAD
00001dc6: PUSH1 0xff
00001dc8: NOT
00001dc9: AND
00001dca: SWAP1
00001dcb: SSTORE
00001dcc: PUSH2 0x1dd3
00001dcf: PUSH2 0x1976
00001dd2: JUMP
00001dd3: JUMPDEST
00001dd4: POP
00001dd5: PUSH2 0x1642
00001dd8: CALLER
00001dd9: CALLER
00001dda: DUP5
00001ddb: PUSH2 0x3287
00001dde: JUMP
00001ddf: JUMPDEST
00001de0: PUSH1 0xc9
00001de2: SLOAD
00001de3: PUSH1 0x00
00001de5: SWAP1
00001de6: PUSH1 0xff
00001de8: AND
00001de9: PUSH2 0x1e04
00001dec: JUMPI
00001ded: PUSH1 0x40
00001def: MLOAD
00001df0: PUSH3 0x461bcd
00001df4: PUSH1 0xe5
00001df6: SHL
00001df7: DUP2
00001df8: MSTORE
00001df9: PUSH1 0x04
00001dfb: ADD
00001dfc: PUSH2 0x0a36
00001dff: SWAP1
00001e00: PUSH2 0x4a9f
00001e03: JUMP
00001e04: JUMPDEST
00001e05: PUSH1 0xc9
00001e07: DUP1
00001e08: SLOAD
00001e09: PUSH1 0xff
00001e0b: NOT
00001e0c: AND
00001e0d: SWAP1
00001e0e: SSTORE
00001e0f: PUSH2 0x1e16
00001e12: PUSH2 0x1976
00001e15: JUMP
00001e16: JUMPDEST
00001e17: POP
00001e18: PUSH2 0x1642
00001e1b: CALLER
00001e1c: CALLER
00001e1d: DUP5
00001e1e: PUSH1 0x00
00001e20: PUSH2 0x28ba
00001e23: JUMP
00001e24: JUMPDEST
00001e25: PUSH1 0xc9
00001e27: SLOAD
00001e28: PUSH1 0x00
00001e2a: SWAP1
00001e2b: PUSH1 0xff
00001e2d: AND
00001e2e: PUSH2 0x1e49
00001e31: JUMPI
00001e32: PUSH1 0x40
00001e34: MLOAD
00001e35: PUSH3 0x461bcd
00001e39: PUSH1 0xe5
00001e3b: SHL
00001e3c: DUP2
00001e3d: MSTORE
00001e3e: PUSH1 0x04
00001e40: ADD
00001e41: PUSH2 0x0a36
00001e44: SWAP1
00001e45: PUSH2 0x4a9f
00001e48: JUMP
00001e49: JUMPDEST
00001e4a: PUSH1 0xc9
00001e4c: DUP1
00001e4d: SLOAD
00001e4e: PUSH1 0xff
00001e50: NOT
00001e51: AND
00001e52: SWAP1
00001e53: SSTORE
00001e54: PUSH2 0x1e5c
00001e57: DUP4
00001e58: PUSH2 0x2829
00001e5b: JUMP
00001e5c: JUMPDEST
00001e5d: PUSH2 0x1e64
00001e60: PUSH2 0x1976
00001e63: JUMP
00001e64: JUMPDEST
00001e65: POP
00001e66: PUSH2 0x0e53
00001e69: DUP4
00001e6a: CALLER
00001e6b: PUSH1 0x00
00001e6d: DUP6
00001e6e: PUSH2 0x28ba
00001e71: JUMP
00001e72: JUMPDEST
00001e73: PUSH1 0x00
00001e75: PUSH2 0x0bca
00001e78: PUSH32 0x0000000000000000000000000000000000000000000000000000013f000020a5
00001e99: PUSH4 0xffffffff
00001e9e: AND
00001e9f: JUMP
00001ea0: JUMPDEST
00001ea1: PUSH1 0xdb
00001ea3: SLOAD
00001ea4: PUSH1 0x01
00001ea6: PUSH1 0x01
00001ea8: PUSH1 0xa0
00001eaa: SHL
00001eab: SUB
00001eac: AND
00001ead: CALLER
00001eae: EQ
00001eaf: PUSH2 0x1f0e
00001eb2: JUMPI
00001eb3: PUSH1 0x40
00001eb5: MLOAD
00001eb6: PUSH3 0x461bcd
00001eba: PUSH1 0xe5
00001ebc: SHL
00001ebd: DUP2
00001ebe: MSTORE
00001ebf: PUSH1 0x20
00001ec1: PUSH1 0x04
00001ec3: DUP3
00001ec4: ADD
00001ec5: MSTORE
00001ec6: PUSH1 0x2b
00001ec8: PUSH1 0x24
00001eca: DUP3
00001ecb: ADD
00001ecc: MSTORE
00001ecd: PUSH32 0x6f6e6c792073686f727466616c6c20636f6e74726163742063616e2075706461
00001eee: PUSH1 0x44
00001ef0: DUP3
00001ef1: ADD
00001ef2: MSTORE
00001ef3: PUSH11 0x1d1948189859081919589d
00001eff: PUSH1 0xaa
00001f01: SHL
00001f02: PUSH1 0x64
00001f04: DUP3
00001f05: ADD
00001f06: MSTORE
00001f07: PUSH1 0x84
00001f09: ADD
00001f0a: PUSH2 0x0a36
00001f0d: JUMP
00001f0e: JUMPDEST
00001f0f: PUSH1 0xd6
00001f11: SLOAD
00001f12: DUP2
00001f13: GT
00001f14: ISZERO
00001f15: PUSH2 0x1f72
00001f18: JUMPI
00001f19: PUSH1 0x40
00001f1b: MLOAD
00001f1c: PUSH3 0x461bcd
00001f20: PUSH1 0xe5
00001f22: SHL
00001f23: DUP2
00001f24: MSTORE
00001f25: PUSH1 0x20
00001f27: PUSH1 0x04
00001f29: DUP3
00001f2a: ADD
00001f2b: MSTORE
00001f2c: PUSH1 0x29
00001f2e: PUSH1 0x24
00001f30: DUP3
00001f31: ADD
00001f32: MSTORE
00001f33: PUSH32 0x6d6f7265207468616e206261642064656274207265636f76657265642066726f
00001f54: PUSH1 0x44
00001f56: DUP3
00001f57: ADD
00001f58: MSTORE
00001f59: PUSH9 0x369030bab1ba34b7b7
00001f63: PUSH1 0xb9
00001f65: SHL
00001f66: PUSH1 0x64
00001f68: DUP3
00001f69: ADD
00001f6a: MSTORE
00001f6b: PUSH1 0x84
00001f6d: ADD
00001f6e: PUSH2 0x0a36
00001f71: JUMP
00001f72: JUMPDEST
00001f73: PUSH1 0xd6
00001f75: SLOAD
00001f76: PUSH1 0x00
00001f78: PUSH2 0x1f81
00001f7b: DUP4
00001f7c: DUP4
00001f7d: PUSH2 0x4b05
00001f80: JUMP
00001f81: JUMPDEST
00001f82: PUSH1 0xd6
00001f84: DUP2
00001f85: SWAP1
00001f86: SSTORE
00001f87: PUSH1 0x40
00001f89: DUP1
00001f8a: MLOAD
00001f8b: DUP5
00001f8c: DUP2
00001f8d: MSTORE
00001f8e: PUSH1 0x20
00001f90: DUP2
00001f91: ADD
00001f92: DUP4
00001f93: SWAP1
00001f94: MSTORE
00001f95: SWAP2
00001f96: SWAP3
00001f97: POP
00001f98: PUSH32 0x9e19ec7d2b8f8a94df8cc0072453ace318d221e3cbb2731d0eaa0baac856520f
00001fb9: SWAP2
00001fba: ADD
00001fbb: PUSH2 0x152a
00001fbe: JUMP
00001fbf: JUMPDEST
00001fc0: PUSH2 0x1fc7
00001fc3: PUSH2 0x2250
00001fc6: JUMP
00001fc7: JUMPDEST
00001fc8: PUSH1 0x65
00001fca: DUP1
00001fcb: SLOAD
00001fcc: PUSH1 0x01
00001fce: PUSH1 0x01
00001fd0: PUSH1 0xa0
00001fd2: SHL
00001fd3: SUB
00001fd4: DUP4
00001fd5: AND
00001fd6: PUSH1 0x01
00001fd8: PUSH1 0x01
00001fda: PUSH1 0xa0
00001fdc: SHL
00001fdd: SUB
00001fde: NOT
00001fdf: SWAP1
00001fe0: SWAP2
00001fe1: AND
00001fe2: DUP2
00001fe3: OR
00001fe4: SWAP1
00001fe5: SWAP2
00001fe6: SSTORE
00001fe7: PUSH2 0x1ff8
00001fea: PUSH1 0x33
00001fec: SLOAD
00001fed: PUSH1 0x01
00001fef: PUSH1 0x01
00001ff1: PUSH1 0xa0
00001ff3: SHL
00001ff4: SUB
00001ff5: AND
00001ff6: SWAP1
00001ff7: JUMP
00001ff8: JUMPDEST
00001ff9: PUSH1 0x01
00001ffb: PUSH1 0x01
00001ffd: PUSH1 0xa0
00001fff: SHL
00002000: SUB
00002001: AND
00002002: PUSH32 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700
00002023: PUSH1 0x40
00002025: MLOAD
00002026: PUSH1 0x40
00002028: MLOAD
00002029: DUP1
0000202a: SWAP2
0000202b: SUB
0000202c: SWAP1
0000202d: LOG3
0000202e: POP
0000202f: JUMP
00002030: JUMPDEST
00002031: PUSH1 0x00
00002033: PUSH2 0x2040
00002036: CALLER
00002037: DUP6
00002038: DUP6
00002039: DUP6
0000203a: PUSH1 0x00
0000203c: PUSH2 0x3692
0000203f: JUMP
00002040: JUMPDEST
00002041: POP
00002042: PUSH1 0x00
00002044: SWAP4
00002045: SWAP3
00002046: POP
00002047: POP
00002048: POP
00002049: JUMP
0000204a: JUMPDEST
0000204b: PUSH1 0xce
0000204d: SLOAD
0000204e: PUSH1 0x00
00002050: SWAP1
00002051: PUSH1 0x01
00002053: PUSH1 0x01
00002055: PUSH1 0xa0
00002057: SHL
00002058: SUB
00002059: AND
0000205a: PUSH4 0x073b8a74
0000205f: PUSH2 0x2066
00002062: PUSH2 0x303a
00002065: JUMP
00002066: JUMPDEST
00002067: PUSH1 0xd3
00002069: SLOAD
0000206a: PUSH1 0xd4
0000206c: SLOAD
0000206d: PUSH1 0xd6
0000206f: SLOAD
00002070: PUSH1 0x40
00002072: MLOAD
00002073: PUSH1 0x01
00002075: PUSH1 0x01
00002077: PUSH1 0xe0
00002079: SHL
0000207a: SUB
0000207b: NOT
0000207c: PUSH1 0xe0
0000207e: DUP8
0000207f: SWAP1
00002080: SHL
00002081: AND
00002082: DUP2
00002083: MSTORE
00002084: PUSH1 0x04
00002086: DUP2
00002087: ADD
00002088: SWAP5
00002089: SWAP1
0000208a: SWAP5
0000208b: MSTORE
0000208c: PUSH1 0x24
0000208e: DUP5
0000208f: ADD
00002090: SWAP3
00002091: SWAP1
00002092: SWAP3
00002093: MSTORE
00002094: PUSH1 0x44
00002096: DUP4
00002097: ADD
00002098: MSTORE
00002099: PUSH1 0x64
0000209b: DUP3
0000209c: ADD
0000209d: MSTORE
0000209e: PUSH1 0x84
000020a0: ADD
000020a1: PUSH2 0x1c7e
000020a4: JUMP
000020a5: JUMPDEST
000020a6: NUMBER
000020a7: SWAP1
000020a8: JUMP
000020a9: JUMPDEST
000020aa: TIMESTAMP
000020ab: SWAP1
000020ac: JUMP
000020ad: JUMPDEST
000020ae: DUP1
000020af: PUSH1 0x00
000020b1: SUB
000020b2: PUSH2 0x20b8
000020b5: JUMPI
000020b6: POP
000020b7: JUMP
000020b8: JUMPDEST
000020b9: PUSH1 0x00
000020bb: PUSH2 0x20c2
000020be: PUSH2 0x1e72
000020c1: JUMP
000020c2: JUMPDEST
000020c3: PUSH1 0xd1
000020c5: SLOAD
000020c6: EQ
000020c7: PUSH2 0x20e3
000020ca: JUMPI
000020cb: PUSH1 0x40
000020cd: MLOAD
000020ce: PUSH4 0x0dff50cb
000020d3: PUSH1 0xe4
000020d5: SHL
000020d6: DUP2
000020d7: MSTORE
000020d8: PUSH1 0x04
000020da: ADD
000020db: PUSH1 0x40
000020dd: MLOAD
000020de: DUP1
000020df: SWAP2
000020e0: SUB
000020e1: SWAP1
000020e2: REVERT
000020e3: JUMPDEST
000020e4: DUP2
000020e5: PUSH2 0x20ec
000020e8: PUSH2 0x303a
000020eb: JUMP
000020ec: JUMPDEST
000020ed: LT
000020ee: ISZERO
000020ef: PUSH2 0x210b
000020f2: JUMPI
000020f3: PUSH1 0x40
000020f5: MLOAD
000020f6: PUSH4 0x3345e999
000020fb: PUSH1 0xe0
000020fd: SHL
000020fe: DUP2
000020ff: MSTORE
00002100: PUSH1 0x04
00002102: ADD
00002103: PUSH1 0x40
00002105: MLOAD
00002106: DUP1
00002107: SWAP2
00002108: SUB
00002109: SWAP1
0000210a: REVERT
0000210b: JUMPDEST
0000210c: PUSH1 0xd4
0000210e: SLOAD
0000210f: DUP3
00002110: GT
00002111: ISZERO
00002112: PUSH2 0x212e
00002115: JUMPI
00002116: PUSH1 0x40
00002118: MLOAD
00002119: PUSH4 0x78d29805
0000211e: PUSH1 0xe1
00002120: SHL
00002121: DUP2
00002122: MSTORE
00002123: PUSH1 0x04
00002125: ADD
00002126: PUSH1 0x40
00002128: MLOAD
00002129: DUP1
0000212a: SWAP2
0000212b: SUB
0000212c: SWAP1
0000212d: REVERT
0000212e: JUMPDEST
0000212f: DUP2
00002130: PUSH1 0xd4
00002132: SLOAD
00002133: PUSH2 0x213c
00002136: SWAP2
00002137: SWAP1
00002138: PUSH2 0x4b05
0000213b: JUMP
0000213c: JUMPDEST
0000213d: PUSH1 0xd4
0000213f: DUP2
00002140: SWAP1
00002141: SSTORE
00002142: PUSH1 0xcc
00002144: SLOAD
00002145: SWAP1
00002146: SWAP2
00002147: POP
00002148: PUSH2 0x215f
0000214b: SWAP1
0000214c: PUSH2 0x0100
0000214f: SWAP1
00002150: DIV
00002151: PUSH1 0x01
00002153: PUSH1 0x01
00002155: PUSH1 0xa0
00002157: SHL
00002158: SUB
00002159: AND
0000215a: DUP4
0000215b: PUSH2 0x3cb1
0000215e: JUMP
0000215f: JUMPDEST
00002160: PUSH1 0xcc
00002162: SLOAD
00002163: PUSH1 0xcd
00002165: SLOAD
00002166: PUSH1 0xc9
00002168: SLOAD
00002169: PUSH1 0x40
0000216b: MLOAD
0000216c: PUSH4 0x05bebb3b
00002171: PUSH1 0xe2
00002173: SHL
00002174: DUP2
00002175: MSTORE
00002176: PUSH1 0x01
00002178: PUSH1 0x01
0000217a: PUSH1 0xa0
0000217c: SHL
0000217d: SUB
0000217e: PUSH2 0x0100
00002181: SWAP5
00002182: DUP6
00002183: SWAP1
00002184: DIV
00002185: DUP2
00002186: AND
00002187: SWAP5
00002188: PUSH4 0x16faecec
0000218d: SWAP5
0000218e: PUSH2 0x21a7
00002191: SWAP5
00002192: SWAP1
00002193: DUP4
00002194: AND
00002195: SWAP4
00002196: SWAP2
00002197: SWAP1
00002198: DIV
00002199: SWAP1
0000219a: SWAP2
0000219b: AND
0000219c: SWAP1
0000219d: PUSH1 0x00
0000219f: SWAP1
000021a0: PUSH1 0x04
000021a2: ADD
000021a3: PUSH2 0x4b18
000021a6: JUMP
000021a7: JUMPDEST
000021a8: PUSH1 0x00
000021aa: PUSH1 0x40
000021ac: MLOAD
000021ad: DUP1
000021ae: DUP4
000021af: SUB
000021b0: DUP2
000021b1: PUSH1 0x00
000021b3: DUP8
000021b4: DUP1
000021b5: EXTCODESIZE
000021b6: ISZERO
000021b7: DUP1
000021b8: ISZERO
000021b9: PUSH2 0x21c1
000021bc: JUMPI
000021bd: PUSH1 0x00
000021bf: DUP1
000021c0: REVERT
000021c1: JUMPDEST
000021c2: POP
000021c3: GAS
000021c4: CALL
000021c5: ISZERO
000021c6: DUP1
000021c7: ISZERO
000021c8: PUSH2 0x21d5
000021cb: JUMPI
000021cc: RETURNDATASIZE
000021cd: PUSH1 0x00
000021cf: DUP1
000021d0: RETURNDATACOPY
000021d1: RETURNDATASIZE
000021d2: PUSH1 0x00
000021d4: REVERT
000021d5: JUMPDEST
000021d6: POP
000021d7: POP
000021d8: PUSH1 0xcc
000021da: SLOAD
000021db: PUSH1 0x40
000021dd: DUP1
000021de: MLOAD
000021df: DUP7
000021e0: DUP2
000021e1: MSTORE
000021e2: PUSH1 0x20
000021e4: DUP2
000021e5: ADD
000021e6: DUP7
000021e7: SWAP1
000021e8: MSTORE
000021e9: PUSH2 0x0100
000021ec: SWAP1
000021ed: SWAP3
000021ee: DIV
000021ef: PUSH1 0x01
000021f1: PUSH1 0x01
000021f3: PUSH1 0xa0
000021f5: SHL
000021f6: SUB
000021f7: AND
000021f8: SWAP4
000021f9: POP
000021fa: PUSH32 0x9cc63bb4ef37ad6a5f5f657dfaf94865531d4234acbc431cc8ac035468f62720
0000221b: SWAP3
0000221c: POP
0000221d: ADD
0000221e: PUSH1 0x40
00002220: MLOAD
00002221: DUP1
00002222: SWAP2
00002223: SUB
00002224: SWAP1
00002225: LOG2
00002226: POP
00002227: POP
00002228: JUMP
00002229: JUMPDEST
0000222a: PUSH1 0x01
0000222c: PUSH1 0x01
0000222e: PUSH1 0xa0
00002230: SHL
00002231: SUB
00002232: DUP2
00002233: AND
00002234: PUSH2 0x0afd
00002237: JUMPI
00002238: PUSH1 0x40
0000223a: MLOAD
0000223b: PUSH4 0x42bcdf7f
00002240: PUSH1 0xe1
00002242: SHL
00002243: DUP2
00002244: MSTORE
00002245: PUSH1 0x04
00002247: ADD
00002248: PUSH1 0x40
0000224a: MLOAD
0000224b: DUP1
0000224c: SWAP2
0000224d: SUB
0000224e: SWAP1
0000224f: REVERT
00002250: JUMPDEST
00002251: PUSH1 0x33
00002253: SLOAD
00002254: PUSH1 0x01
00002256: PUSH1 0x01
00002258: PUSH1 0xa0
0000225a: SHL
0000225b: SUB
0000225c: AND
0000225d: CALLER
0000225e: EQ
0000225f: PUSH2 0x13c2
00002262: JUMPI
00002263: PUSH1 0x40
00002265: MLOAD
00002266: PUSH3 0x461bcd
0000226a: PUSH1 0xe5
0000226c: SHL
0000226d: DUP2
0000226e: MSTORE
0000226f: PUSH1 0x20
00002271: PUSH1 0x04
00002273: DUP3
00002274: ADD
00002275: DUP2
00002276: SWAP1
00002277: MSTORE
00002278: PUSH1 0x24
0000227a: DUP3
0000227b: ADD
0000227c: MSTORE
0000227d: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
0000229e: PUSH1 0x44
000022a0: DUP3
000022a1: ADD
000022a2: MSTORE
000022a3: PUSH1 0x64
000022a5: ADD
000022a6: PUSH2 0x0a36
000022a9: JUMP
000022aa: JUMPDEST
000022ab: PUSH1 0x01
000022ad: PUSH1 0x01
000022af: PUSH1 0xa0
000022b1: SHL
000022b2: SUB
000022b3: DUP2
000022b4: AND
000022b5: PUSH2 0x230e
000022b8: JUMPI
000022b9: PUSH1 0x40
000022bb: MLOAD
000022bc: PUSH3 0x461bcd
000022c0: PUSH1 0xe5
000022c2: SHL
000022c3: DUP2
000022c4: MSTORE
000022c5: PUSH1 0x20
000022c7: PUSH1 0x04
000022c9: DUP3
000022ca: ADD
000022cb: MSTORE
000022cc: PUSH1 0x25
000022ce: PUSH1 0x24
000022d0: DUP3
000022d1: ADD
000022d2: MSTORE
000022d3: PUSH32 0x696e76616c696420616365737320636f6e74726f6c206d616e61676572206164
000022f4: PUSH1 0x44
000022f6: DUP3
000022f7: ADD
000022f8: MSTORE
000022f9: PUSH5 0x6472657373
000022ff: PUSH1 0xd8
00002301: SHL
00002302: PUSH1 0x64
00002304: DUP3
00002305: ADD
00002306: MSTORE
00002307: PUSH1 0x84
00002309: ADD
0000230a: PUSH2 0x0a36
0000230d: JUMP
0000230e: JUMPDEST
0000230f: PUSH1 0x97
00002311: DUP1
00002312: SLOAD
00002313: PUSH1 0x01
00002315: PUSH1 0x01
00002317: PUSH1 0xa0
00002319: SHL
0000231a: SUB
0000231b: DUP4
0000231c: DUP2
0000231d: AND
0000231e: PUSH1 0x01
00002320: PUSH1 0x01
00002322: PUSH1 0xa0
00002324: SHL
00002325: SUB
00002326: NOT
00002327: DUP4
00002328: AND
00002329: DUP2
0000232a: OR
0000232b: SWAP1
0000232c: SWAP4
0000232d: SSTORE
0000232e: PUSH1 0x40
00002330: DUP1
00002331: MLOAD
00002332: SWAP2
00002333: SWAP1
00002334: SWAP3
00002335: AND
00002336: DUP1
00002337: DUP3
00002338: MSTORE
00002339: PUSH1 0x20
0000233b: DUP3
0000233c: ADD
0000233d: SWAP4
0000233e: SWAP1
0000233f: SWAP4
00002340: MSTORE
00002341: PUSH32 0x66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0
00002362: SWAP2
00002363: ADD
00002364: JUMPDEST
00002365: PUSH1 0x40
00002367: MLOAD
00002368: DUP1
00002369: SWAP2
0000236a: SUB
0000236b: SWAP1
0000236c: LOG1
0000236d: POP
0000236e: POP
0000236f: JUMP
00002370: JUMPDEST
00002371: PUSH1 0xcd
00002373: SLOAD
00002374: PUSH1 0x40
00002376: MLOAD
00002377: PUSH4 0xeade3eed
0000237c: PUSH1 0xe0
0000237e: SHL
0000237f: DUP2
00002380: MSTORE
00002381: ADDRESS
00002382: PUSH1 0x04
00002384: DUP3
00002385: ADD
00002386: MSTORE
00002387: PUSH1 0x01
00002389: PUSH1 0x01
0000238b: PUSH1 0xa0
0000238d: SHL
0000238e: SUB
0000238f: DUP5
00002390: DUP2
00002391: AND
00002392: PUSH1 0x24
00002394: DUP4
00002395: ADD
00002396: MSTORE
00002397: PUSH1 0x00
00002399: SWAP3
0000239a: AND
0000239b: SWAP1
0000239c: PUSH4 0xeade3eed
000023a1: SWAP1
000023a2: PUSH1 0x44
000023a4: ADD
000023a5: PUSH1 0x00
000023a7: PUSH1 0x40
000023a9: MLOAD
000023aa: DUP1
000023ab: DUP4
000023ac: SUB
000023ad: DUP2
000023ae: PUSH1 0x00
000023b0: DUP8
000023b1: DUP1
000023b2: EXTCODESIZE
000023b3: ISZERO
000023b4: DUP1
000023b5: ISZERO
000023b6: PUSH2 0x23be
000023b9: JUMPI
000023ba: PUSH1 0x00
000023bc: DUP1
000023bd: REVERT
000023be: JUMPDEST
000023bf: POP
000023c0: GAS
000023c1: CALL
000023c2: ISZERO
000023c3: DUP1
000023c4: ISZERO
000023c5: PUSH2 0x23d2
000023c8: JUMPI
000023c9: RETURNDATASIZE
000023ca: PUSH1 0x00
000023cc: DUP1
000023cd: RETURNDATACOPY
000023ce: RETURNDATASIZE
000023cf: PUSH1 0x00
000023d1: REVERT
000023d2: JUMPDEST
000023d3: POP
000023d4: POP
000023d5: POP
000023d6: POP
000023d7: PUSH2 0x23de
000023da: PUSH2 0x1e72
000023dd: JUMP
000023de: JUMPDEST
000023df: PUSH1 0xd1
000023e1: SLOAD
000023e2: EQ
000023e3: PUSH2 0x23ff
000023e6: JUMPI
000023e7: PUSH1 0x40
000023e9: MLOAD
000023ea: PUSH4 0xc9021e2f
000023ef: PUSH1 0xe0
000023f1: SHL
000023f2: DUP2
000023f3: MSTORE
000023f4: PUSH1 0x04
000023f6: ADD
000023f7: PUSH1 0x40
000023f9: MLOAD
000023fa: DUP1
000023fb: SWAP2
000023fc: SUB
000023fd: SWAP1
000023fe: REVERT
000023ff: JUMPDEST
00002400: PUSH1 0x00
00002402: PUSH2 0x240a
00002405: DUP5
00002406: PUSH2 0x25ae
00002409: JUMP
0000240a: JUMPDEST
0000240b: SWAP1
0000240c: POP
0000240d: PUSH1 0x00
0000240f: DUP2
00002410: DUP5
00002411: LT
00002412: ISZERO
00002413: PUSH2 0x241c
00002416: JUMPI
00002417: DUP4
00002418: PUSH2 0x241e
0000241b: JUMP
0000241c: JUMPDEST
0000241d: DUP2
0000241e: JUMPDEST
0000241f: SWAP1
00002420: POP
00002421: PUSH1 0x00
00002423: PUSH2 0x242c
00002426: DUP8
00002427: DUP4
00002428: PUSH2 0x30cb
0000242b: JUMP
0000242c: JUMPDEST
0000242d: SWAP1
0000242e: POP
0000242f: PUSH1 0x00
00002431: PUSH2 0x243a
00002434: DUP3
00002435: DUP6
00002436: PUSH2 0x4b05
00002439: JUMP
0000243a: JUMPDEST
0000243b: SWAP1
0000243c: POP
0000243d: PUSH1 0x00
0000243f: DUP3
00002440: PUSH1 0xd3
00002442: SLOAD
00002443: PUSH2 0x244c
00002446: SWAP2
00002447: SWAP1
00002448: PUSH2 0x4b05
0000244b: JUMP
0000244c: JUMPDEST
0000244d: PUSH1 0x01
0000244f: PUSH1 0x01
00002451: PUSH1 0xa0
00002453: SHL
00002454: SUB
00002455: DUP10
00002456: DUP2
00002457: AND
00002458: PUSH1 0x00
0000245a: DUP2
0000245b: DUP2
0000245c: MSTORE
0000245d: PUSH1 0xd9
0000245f: PUSH1 0x20
00002461: SWAP1
00002462: DUP2
00002463: MSTORE
00002464: PUSH1 0x40
00002466: SWAP2
00002467: DUP3
00002468: SWAP1
00002469: KECCAK256
0000246a: DUP8
0000246b: DUP2
0000246c: SSTORE
0000246d: PUSH1 0xd2
0000246f: SLOAD
00002470: PUSH1 0x01
00002472: SWAP1
00002473: SWAP2
00002474: ADD
00002475: SSTORE
00002476: PUSH1 0xd3
00002478: DUP6
00002479: SWAP1
0000247a: SSTORE
0000247b: DUP2
0000247c: MLOAD
0000247d: DUP9
0000247e: DUP2
0000247f: MSTORE
00002480: SWAP1
00002481: DUP2
00002482: ADD
00002483: DUP8
00002484: SWAP1
00002485: MSTORE
00002486: SWAP1
00002487: DUP2
00002488: ADD
00002489: DUP5
0000248a: SWAP1
0000248b: MSTORE
0000248c: SWAP3
0000248d: SWAP4
0000248e: POP
0000248f: SWAP2
00002490: SWAP1
00002491: DUP12
00002492: AND
00002493: SWAP1
00002494: PUSH32 0x1a2a22cb034d26d1854bdc6666a5b91fe25efbbb5dcad3b0355478d6f5c362a1
000024b5: SWAP1
000024b6: PUSH1 0x60
000024b8: ADD
000024b9: PUSH1 0x40
000024bb: MLOAD
000024bc: DUP1
000024bd: SWAP2
000024be: SUB
000024bf: SWAP1
000024c0: LOG3
000024c1: PUSH1 0xcd
000024c3: SLOAD
000024c4: PUSH1 0xd2
000024c6: SLOAD
000024c7: PUSH1 0x40
000024c9: MLOAD
000024ca: PUSH4 0x1ededc91
000024cf: PUSH1 0xe0
000024d1: SHL
000024d2: DUP2
000024d3: MSTORE
000024d4: ADDRESS
000024d5: PUSH1 0x04
000024d7: DUP3
000024d8: ADD
000024d9: MSTORE
000024da: PUSH1 0x01
000024dc: PUSH1 0x01
000024de: PUSH1 0xa0
000024e0: SHL
000024e1: SUB
000024e2: DUP13
000024e3: DUP2
000024e4: AND
000024e5: PUSH1 0x24
000024e7: DUP4
000024e8: ADD
000024e9: MSTORE
000024ea: DUP12
000024eb: DUP2
000024ec: AND
000024ed: PUSH1 0x44
000024ef: DUP4
000024f0: ADD
000024f1: MSTORE
000024f2: PUSH1 0x64
000024f4: DUP3
000024f5: ADD
000024f6: DUP8
000024f7: SWAP1
000024f8: MSTORE
000024f9: PUSH1 0x84
000024fb: DUP3
000024fc: ADD
000024fd: SWAP3
000024fe: SWAP1
000024ff: SWAP3
00002500: MSTORE
00002501: SWAP2
00002502: AND
00002503: SWAP1
00002504: PUSH4 0x1ededc91
00002509: SWAP1
0000250a: PUSH1 0xa4
0000250c: ADD
0000250d: PUSH1 0x00
0000250f: PUSH1 0x40
00002511: MLOAD
00002512: DUP1
00002513: DUP4
00002514: SUB
00002515: DUP2
00002516: PUSH1 0x00
00002518: DUP8
00002519: DUP1
0000251a: EXTCODESIZE
0000251b: ISZERO
0000251c: DUP1
0000251d: ISZERO
0000251e: PUSH2 0x2526
00002521: JUMPI
00002522: PUSH1 0x00
00002524: DUP1
00002525: REVERT
00002526: JUMPDEST
00002527: POP
00002528: GAS
00002529: CALL
0000252a: ISZERO
0000252b: DUP1
0000252c: ISZERO
0000252d: PUSH2 0x253a
00002530: JUMPI
00002531: RETURNDATASIZE
00002532: PUSH1 0x00
00002534: DUP1
00002535: RETURNDATACOPY
00002536: RETURNDATASIZE
00002537: PUSH1 0x00
00002539: REVERT
0000253a: JUMPDEST
0000253b: POP
0000253c: SWAP5
0000253d: SWAP12
0000253e: SWAP11
0000253f: POP
00002540: POP
00002541: POP
00002542: POP
00002543: POP
00002544: POP
00002545: POP
00002546: POP
00002547: POP
00002548: POP
00002549: POP
0000254a: JUMP
0000254b: JUMPDEST
0000254c: PUSH2 0x2554
0000254f: DUP2
00002550: PUSH2 0x2229
00002553: JUMP
00002554: JUMPDEST
00002555: PUSH1 0xcc
00002557: DUP1
00002558: SLOAD
00002559: PUSH1 0x01
0000255b: PUSH1 0x01
0000255d: PUSH1 0xa0
0000255f: SHL
00002560: SUB
00002561: DUP4
00002562: DUP2
00002563: AND
00002564: PUSH2 0x0100
00002567: DUP2
00002568: DUP2
00002569: MUL
0000256a: PUSH2 0x0100
0000256d: PUSH1 0x01
0000256f: PUSH1 0xa8
00002571: SHL
00002572: SUB
00002573: NOT
00002574: DUP6
00002575: AND
00002576: OR
00002577: SWAP1
00002578: SWAP5
00002579: SSTORE
0000257a: PUSH1 0x40
0000257c: MLOAD
0000257d: SWAP4
0000257e: SWAP1
0000257f: SWAP3
00002580: DIV
00002581: AND
00002582: SWAP2
00002583: DUP3
00002584: SWAP1
00002585: PUSH32 0xafec95c8612496c3ecf5dddc71e393528fe29bd145fbaf9c6b496d78d7e2d79b
000025a6: SWAP1
000025a7: PUSH1 0x00
000025a9: SWAP1
000025aa: LOG3
000025ab: POP
000025ac: POP
000025ad: JUMP
000025ae: JUMPDEST
000025af: PUSH1 0x01
000025b1: PUSH1 0x01
000025b3: PUSH1 0xa0
000025b5: SHL
000025b6: SUB
000025b7: DUP2
000025b8: AND
000025b9: PUSH1 0x00
000025bb: SWAP1
000025bc: DUP2
000025bd: MSTORE
000025be: PUSH1 0xd9
000025c0: PUSH1 0x20
000025c2: SWAP1
000025c3: DUP2
000025c4: MSTORE
000025c5: PUSH1 0x40
000025c7: DUP1
000025c8: DUP4
000025c9: KECCAK256
000025ca: DUP2
000025cb: MLOAD
000025cc: DUP1
000025cd: DUP4
000025ce: ADD
000025cf: SWAP1
000025d0: SWAP3
000025d1: MSTORE
000025d2: DUP1
000025d3: SLOAD
000025d4: DUP1
000025d5: DUP4
000025d6: MSTORE
000025d7: PUSH1 0x01
000025d9: SWAP1
000025da: SWAP2
000025db: ADD
000025dc: SLOAD
000025dd: SWAP3
000025de: DUP3
000025df: ADD
000025e0: SWAP3
000025e1: SWAP1
000025e2: SWAP3
000025e3: MSTORE
000025e4: SWAP1
000025e5: DUP3
000025e6: SUB
000025e7: PUSH2 0x25f3
000025ea: JUMPI
000025eb: POP
000025ec: PUSH1 0x00
000025ee: SWAP3
000025ef: SWAP2
000025f0: POP
000025f1: POP
000025f2: JUMP
000025f3: JUMPDEST
000025f4: PUSH1 0xd2
000025f6: SLOAD
000025f7: DUP2
000025f8: MLOAD
000025f9: PUSH1 0x00
000025fb: SWAP2
000025fc: PUSH2 0x2604
000025ff: SWAP2
00002600: PUSH2 0x4b5c
00002603: JUMP
00002604: JUMPDEST
00002605: SWAP1
00002606: POP
00002607: DUP2
00002608: PUSH1 0x20
0000260a: ADD
0000260b: MLOAD
0000260c: DUP2
0000260d: PUSH2 0x2616
00002610: SWAP2
00002611: SWAP1
00002612: PUSH2 0x4b73
00002615: JUMP
00002616: JUMPDEST
00002617: SWAP5
00002618: SWAP4
00002619: POP
0000261a: POP
0000261b: POP
0000261c: POP
0000261d: JUMP
0000261e: JUMPDEST
0000261f: PUSH1 0xd5
00002621: SLOAD
00002622: PUSH1 0x00
00002624: SWAP1
00002625: DUP1
00002626: DUP3
00002627: SUB
00002628: PUSH2 0x2633
0000262b: JUMPI
0000262c: POP
0000262d: POP
0000262e: PUSH1 0xcf
00002630: SLOAD
00002631: SWAP1
00002632: JUMP
00002633: JUMPDEST
00002634: PUSH1 0x00
00002636: PUSH2 0x263d
00002639: PUSH2 0x303a
0000263c: JUMP
0000263d: JUMPDEST
0000263e: SWAP1
0000263f: POP
00002640: PUSH1 0x00
00002642: PUSH1 0xd4
00002644: SLOAD
00002645: PUSH1 0xd6
00002647: SLOAD
00002648: PUSH1 0xd3
0000264a: SLOAD
0000264b: DUP5
0000264c: PUSH2 0x2655
0000264f: SWAP2
00002650: SWAP1
00002651: PUSH2 0x4af2
00002654: JUMP
00002655: JUMPDEST
00002656: PUSH2 0x265f
00002659: SWAP2
0000265a: SWAP1
0000265b: PUSH2 0x4af2
0000265e: JUMP
0000265f: JUMPDEST
00002660: PUSH2 0x2669
00002663: SWAP2
00002664: SWAP1
00002665: PUSH2 0x4b05
00002668: JUMP
00002669: JUMPDEST
0000266a: SWAP1
0000266b: POP
0000266c: PUSH1 0x00
0000266e: DUP4
0000266f: PUSH2 0x2680
00002672: PUSH8 0x0de0b6b3a7640000
0000267b: DUP5
0000267c: PUSH2 0x4b5c
0000267f: JUMP
00002680: JUMPDEST
00002681: PUSH2 0x268a
00002684: SWAP2
00002685: SWAP1
00002686: PUSH2 0x4b73
00002689: JUMP
0000268a: JUMPDEST
0000268b: SWAP6
0000268c: SWAP5
0000268d: POP
0000268e: POP
0000268f: POP
00002690: POP
00002691: POP
00002692: JUMP
00002693: JUMPDEST
00002694: PUSH1 0x40
00002696: MLOAD
00002697: PUSH1 0x01
00002699: PUSH1 0x01
0000269b: PUSH1 0xa0
0000269d: SHL
0000269e: SUB
0000269f: DUP4
000026a0: AND
000026a1: PUSH1 0x24
000026a3: DUP3
000026a4: ADD
000026a5: MSTORE
000026a6: PUSH1 0x44
000026a8: DUP2
000026a9: ADD
000026aa: DUP3
000026ab: SWAP1
000026ac: MSTORE
000026ad: PUSH2 0x26f6
000026b0: SWAP1
000026b1: DUP5
000026b2: SWAP1
000026b3: PUSH4 0xa9059cbb
000026b8: PUSH1 0xe0
000026ba: SHL
000026bb: SWAP1
000026bc: PUSH1 0x64
000026be: ADD
000026bf: JUMPDEST
000026c0: PUSH1 0x40
000026c2: DUP1
000026c3: MLOAD
000026c4: PUSH1 0x1f
000026c6: NOT
000026c7: DUP2
000026c8: DUP5
000026c9: SUB
000026ca: ADD
000026cb: DUP2
000026cc: MSTORE
000026cd: SWAP2
000026ce: SWAP1
000026cf: MSTORE
000026d0: PUSH1 0x20
000026d2: DUP2
000026d3: ADD
000026d4: DUP1
000026d5: MLOAD
000026d6: PUSH1 0x01
000026d8: PUSH1 0x01
000026da: PUSH1 0xe0
000026dc: SHL
000026dd: SUB
000026de: AND
000026df: PUSH1 0x01
000026e1: PUSH1 0x01
000026e3: PUSH1 0xe0
000026e5: SHL
000026e6: SUB
000026e7: NOT
000026e8: SWAP1
000026e9: SWAP4
000026ea: AND
000026eb: SWAP3
000026ec: SWAP1
000026ed: SWAP3
000026ee: OR
000026ef: SWAP1
000026f0: SWAP2
000026f1: MSTORE
000026f2: PUSH2 0x3ccd
000026f5: JUMP
000026f6: JUMPDEST
000026f7: POP
000026f8: POP
000026f9: POP
000026fa: JUMP
000026fb: JUMPDEST
000026fc: PUSH1 0x97
000026fe: SLOAD
000026ff: PUSH1 0x40
00002701: MLOAD
00002702: PUSH4 0x18c5e8ab
00002707: PUSH1 0xe0
00002709: SHL
0000270a: DUP2
0000270b: MSTORE
0000270c: PUSH1 0x00
0000270e: SWAP2
0000270f: PUSH1 0x01
00002711: PUSH1 0x01
00002713: PUSH1 0xa0
00002715: SHL
00002716: SUB
00002717: AND
00002718: SWAP1
00002719: PUSH4 0x18c5e8ab
0000271e: SWAP1
0000271f: PUSH2 0x272e
00002722: SWAP1
00002723: CALLER
00002724: SWAP1
00002725: DUP7
00002726: SWAP1
00002727: PUSH1 0x04
00002729: ADD
0000272a: PUSH2 0x4b95
0000272d: JUMP
0000272e: JUMPDEST
0000272f: PUSH1 0x20
00002731: PUSH1 0x40
00002733: MLOAD
00002734: DUP1
00002735: DUP4
00002736: SUB
00002737: DUP2
00002738: DUP7
00002739: GAS
0000273a: STATICCALL
0000273b: ISZERO
0000273c: DUP1
0000273d: ISZERO
0000273e: PUSH2 0x274b
00002741: JUMPI
00002742: RETURNDATASIZE
00002743: PUSH1 0x00
00002745: DUP1
00002746: RETURNDATACOPY
00002747: RETURNDATASIZE
00002748: PUSH1 0x00
0000274a: REVERT
0000274b: JUMPDEST
0000274c: POP
0000274d: POP
0000274e: POP
0000274f: POP
00002750: PUSH1 0x40
00002752: MLOAD
00002753: RETURNDATASIZE
00002754: PUSH1 0x1f
00002756: NOT
00002757: PUSH1 0x1f
00002759: DUP3
0000275a: ADD
0000275b: AND
0000275c: DUP3
0000275d: ADD
0000275e: DUP1
0000275f: PUSH1 0x40
00002761: MSTORE
00002762: POP
00002763: DUP2
00002764: ADD
00002765: SWAP1
00002766: PUSH2 0x276f
00002769: SWAP2
0000276a: SWAP1
0000276b: PUSH2 0x4bb9
0000276e: JUMP
0000276f: JUMPDEST
00002770: SWAP1
00002771: POP
00002772: DUP1
00002773: PUSH2 0x2795
00002776: JUMPI
00002777: CALLER
00002778: ADDRESS
00002779: DUP4
0000277a: PUSH1 0x40
0000277c: MLOAD
0000277d: PUSH4 0x4a3fa293
00002782: PUSH1 0xe0
00002784: SHL
00002785: DUP2
00002786: MSTORE
00002787: PUSH1 0x04
00002789: ADD
0000278a: PUSH2 0x0a36
0000278d: SWAP4
0000278e: SWAP3
0000278f: SWAP2
00002790: SWAP1
00002791: PUSH2 0x4bd6
00002794: JUMP
00002795: JUMPDEST
00002796: POP
00002797: POP
00002798: JUMP
00002799: JUMPDEST
0000279a: PUSH2 0x27a1
0000279d: PUSH2 0x1e72
000027a0: JUMP
000027a1: JUMPDEST
000027a2: PUSH1 0xd1
000027a4: SLOAD
000027a5: EQ
000027a6: PUSH2 0x27c2
000027a9: JUMPI
000027aa: PUSH1 0x40
000027ac: MLOAD
000027ad: PUSH4 0x7dfca6b7
000027b2: PUSH1 0xe1
000027b4: SHL
000027b5: DUP2
000027b6: MSTORE
000027b7: PUSH1 0x04
000027b9: ADD
000027ba: PUSH1 0x40
000027bc: MLOAD
000027bd: DUP1
000027be: SWAP2
000027bf: SUB
000027c0: SWAP1
000027c1: REVERT
000027c2: JUMPDEST
000027c3: PUSH8 0x0de0b6b3a7640000
000027cc: DUP2
000027cd: GT
000027ce: ISZERO
000027cf: PUSH2 0x27eb
000027d2: JUMPI
000027d3: PUSH1 0x40
000027d5: MLOAD
000027d6: PUSH4 0x717220f3
000027db: PUSH1 0xe1
000027dd: SHL
000027de: DUP2
000027df: MSTORE
000027e0: PUSH1 0x04
000027e2: ADD
000027e3: PUSH1 0x40
000027e5: MLOAD
000027e6: DUP1
000027e7: SWAP2
000027e8: SUB
000027e9: SWAP1
000027ea: REVERT
000027eb: JUMPDEST
000027ec: PUSH1 0xd0
000027ee: DUP1
000027ef: SLOAD
000027f0: SWAP1
000027f1: DUP3
000027f2: SWAP1
000027f3: SSTORE
000027f4: PUSH1 0x40
000027f6: DUP1
000027f7: MLOAD
000027f8: DUP3
000027f9: DUP2
000027fa: MSTORE
000027fb: PUSH1 0x20
000027fd: DUP2
000027fe: ADD
000027ff: DUP5
00002800: SWAP1
00002801: MSTORE
00002802: PUSH32 0xaaa68312e2ea9d50e16af5068410ab56e1a1fd06037b1a35664812c30f821460
00002823: SWAP2
00002824: ADD
00002825: PUSH2 0x2364
00002828: JUMP
00002829: JUMPDEST
0000282a: PUSH1 0xcd
0000282c: SLOAD
0000282d: PUSH1 0x40
0000282f: MLOAD
00002830: PUSH4 0x02173067
00002835: PUSH1 0xe3
00002837: SHL
00002838: DUP2
00002839: MSTORE
0000283a: PUSH1 0x01
0000283c: PUSH1 0x01
0000283e: PUSH1 0xa0
00002840: SHL
00002841: SUB
00002842: DUP4
00002843: DUP2
00002844: AND
00002845: PUSH1 0x04
00002847: DUP4
00002848: ADD
00002849: MSTORE
0000284a: CALLER
0000284b: PUSH1 0x24
0000284d: DUP4
0000284e: ADD
0000284f: MSTORE
00002850: SWAP1
00002851: SWAP2
00002852: AND
00002853: SWAP1
00002854: PUSH4 0x10b98338
00002859: SWAP1
0000285a: PUSH1 0x44
0000285c: ADD
0000285d: PUSH1 0x20
0000285f: PUSH1 0x40
00002861: MLOAD
00002862: DUP1
00002863: DUP4
00002864: SUB
00002865: DUP2
00002866: DUP7
00002867: GAS
00002868: STATICCALL
00002869: ISZERO
0000286a: DUP1
0000286b: ISZERO
0000286c: PUSH2 0x2879
0000286f: JUMPI
00002870: RETURNDATASIZE
00002871: PUSH1 0x00
00002873: DUP1
00002874: RETURNDATACOPY
00002875: RETURNDATASIZE
00002876: PUSH1 0x00
00002878: REVERT
00002879: JUMPDEST
0000287a: POP
0000287b: POP
0000287c: POP
0000287d: POP
0000287e: PUSH1 0x40
00002880: MLOAD
00002881: RETURNDATASIZE
00002882: PUSH1 0x1f
00002884: NOT
00002885: PUSH1 0x1f
00002887: DUP3
00002888: ADD
00002889: AND
0000288a: DUP3
0000288b: ADD
0000288c: DUP1
0000288d: PUSH1 0x40
0000288f: MSTORE
00002890: POP
00002891: DUP2
00002892: ADD
00002893: SWAP1
00002894: PUSH2 0x289d
00002897: SWAP2
00002898: SWAP1
00002899: PUSH2 0x4bb9
0000289c: JUMP
0000289d: JUMPDEST
0000289e: PUSH2 0x0afd
000028a1: JUMPI
000028a2: PUSH1 0x40
000028a4: MLOAD
000028a5: PUSH4 0x0cf0b6f5
000028aa: PUSH1 0xe0
000028ac: SHL
000028ad: DUP2
000028ae: MSTORE
000028af: PUSH1 0x04
000028b1: ADD
000028b2: PUSH1 0x40
000028b4: MLOAD
000028b5: DUP1
000028b6: SWAP2
000028b7: SUB
000028b8: SWAP1
000028b9: REVERT
000028ba: JUMPDEST
000028bb: DUP2
000028bc: ISZERO
000028bd: DUP1
000028be: PUSH2 0x28c5
000028c1: JUMPI
000028c2: POP
000028c3: DUP1
000028c4: ISZERO
000028c5: JUMPDEST
000028c6: PUSH2 0x292e
000028c9: JUMPI
000028ca: PUSH1 0x40
000028cc: MLOAD
000028cd: PUSH3 0x461bcd
000028d1: PUSH1 0xe5
000028d3: SHL
000028d4: DUP2
000028d5: MSTORE
000028d6: PUSH1 0x20
000028d8: PUSH1 0x04
000028da: DUP3
000028db: ADD
000028dc: MSTORE
000028dd: PUSH1 0x34
000028df: PUSH1 0x24
000028e1: DUP3
000028e2: ADD
000028e3: MSTORE
000028e4: PUSH32 0x6f6e65206f662072656465656d546f6b656e73496e206f722072656465656d41
00002905: PUSH1 0x44
00002907: DUP3
00002908: ADD
00002909: MSTORE
0000290a: PUSH20 0x6d6f756e74496e206d757374206265207a65726f
0000291f: PUSH1 0x60
00002921: SHL
00002922: PUSH1 0x64
00002924: DUP3
00002925: ADD
00002926: MSTORE
00002927: PUSH1 0x84
00002929: ADD
0000292a: PUSH2 0x0a36
0000292d: JUMP
0000292e: JUMPDEST
0000292f: PUSH2 0x2936
00002932: PUSH2 0x1e72
00002935: JUMP
00002936: JUMPDEST
00002937: PUSH1 0xd1
00002939: SLOAD
0000293a: EQ
0000293b: PUSH2 0x2957
0000293e: JUMPI
0000293f: PUSH1 0x40
00002941: MLOAD
00002942: PUSH4 0x97b5cfcd
00002947: PUSH1 0xe0
00002949: SHL
0000294a: DUP2
0000294b: MSTORE
0000294c: PUSH1 0x04
0000294e: ADD
0000294f: PUSH1 0x40
00002951: MLOAD
00002952: DUP1
00002953: SWAP2
00002954: SUB
00002955: SWAP1
00002956: REVERT
00002957: JUMPDEST
00002958: PUSH1 0x00
0000295a: PUSH1 0x40
0000295c: MLOAD
0000295d: DUP1
0000295e: PUSH1 0x20
00002960: ADD
00002961: PUSH1 0x40
00002963: MSTORE
00002964: DUP1
00002965: PUSH2 0x296c
00002968: PUSH2 0x261e
0000296b: JUMP
0000296c: JUMPDEST
0000296d: SWAP1
0000296e: MSTORE
0000296f: SWAP1
00002970: POP
00002971: PUSH1 0x00
00002973: DUP1
00002974: DUP5
00002975: ISZERO
00002976: PUSH2 0x2981
00002979: JUMPI
0000297a: DUP5
0000297b: SWAP2
0000297c: POP
0000297d: PUSH2 0x29bf
00002980: JUMP
00002981: JUMPDEST
00002982: PUSH2 0x298b
00002985: DUP5
00002986: DUP5
00002987: PUSH2 0x3da2
0000298a: JUMP
0000298b: JUMPDEST
0000298c: SWAP2
0000298d: POP
0000298e: PUSH1 0x00
00002990: PUSH2 0x2999
00002993: DUP4
00002994: DUP6
00002995: PUSH2 0x3dc0
00002998: JUMP
00002999: JUMPDEST
0000299a: SWAP1
0000299b: POP
0000299c: DUP1
0000299d: ISZERO
0000299e: DUP1
0000299f: ISZERO
000029a0: SWAP1
000029a1: PUSH2 0x29aa
000029a4: JUMPI
000029a5: POP
000029a6: DUP5
000029a7: DUP2
000029a8: EQ
000029a9: ISZERO
000029aa: JUMPDEST
000029ab: ISZERO
000029ac: PUSH2 0x29bd
000029af: JUMPI
000029b0: DUP3
000029b1: PUSH2 0x29b9
000029b4: DUP2
000029b5: PUSH2 0x4c02
000029b8: JUMP
000029b9: JUMPDEST
000029ba: SWAP4
000029bb: POP
000029bc: POP
000029bd: JUMPDEST
000029be: POP
000029bf: JUMPDEST
000029c0: PUSH2 0x29c9
000029c3: DUP4
000029c4: DUP4
000029c5: PUSH2 0x3022
000029c8: JUMP
000029c9: JUMPDEST
000029ca: SWAP1
000029cb: POP
000029cc: DUP1
000029cd: PUSH1 0x00
000029cf: SUB
000029d0: PUSH2 0x2a12
000029d3: JUMPI
000029d4: PUSH1 0x40
000029d6: MLOAD
000029d7: PUSH3 0x461bcd
000029db: PUSH1 0xe5
000029dd: SHL
000029de: DUP2
000029df: MSTORE
000029e0: PUSH1 0x20
000029e2: PUSH1 0x04
000029e4: DUP3
000029e5: ADD
000029e6: MSTORE
000029e7: PUSH1 0x14
000029e9: PUSH1 0x24
000029eb: DUP3
000029ec: ADD
000029ed: MSTORE
000029ee: PUSH20 0x72656465656d416d6f756e74206973207a65726f
00002a03: PUSH1 0x60
00002a05: SHL
00002a06: PUSH1 0x44
00002a08: DUP3
00002a09: ADD
00002a0a: MSTORE
00002a0b: PUSH1 0x64
00002a0d: ADD
00002a0e: PUSH2 0x0a36
00002a11: JUMP
00002a12: JUMPDEST
00002a13: PUSH1 0xcd
00002a15: SLOAD
00002a16: PUSH1 0x40
00002a18: MLOAD
00002a19: PUSH4 0x47323875
00002a1e: PUSH1 0xe1
00002a20: SHL
00002a21: DUP2
00002a22: MSTORE
00002a23: PUSH1 0x01
00002a25: PUSH1 0x01
00002a27: PUSH1 0xa0
00002a29: SHL
00002a2a: SUB
00002a2b: SWAP1
00002a2c: SWAP2
00002a2d: AND
00002a2e: SWAP1
00002a2f: PUSH4 0x8e6470ea
00002a34: SWAP1
00002a35: PUSH2 0x2a46
00002a38: SWAP1
00002a39: ADDRESS
00002a3a: SWAP1
00002a3b: DUP12
00002a3c: SWAP1
00002a3d: DUP8
00002a3e: SWAP1
00002a3f: PUSH1 0x04
00002a41: ADD
00002a42: PUSH2 0x4c1b
00002a45: JUMP
00002a46: JUMPDEST
00002a47: PUSH1 0x00
00002a49: PUSH1 0x40
00002a4b: MLOAD
00002a4c: DUP1
00002a4d: DUP4
00002a4e: SUB
00002a4f: DUP2
00002a50: PUSH1 0x00
00002a52: DUP8
00002a53: DUP1
00002a54: EXTCODESIZE
00002a55: ISZERO
00002a56: DUP1
00002a57: ISZERO
00002a58: PUSH2 0x2a60
00002a5b: JUMPI
00002a5c: PUSH1 0x00
00002a5e: DUP1
00002a5f: REVERT
00002a60: JUMPDEST
00002a61: POP
00002a62: GAS
00002a63: CALL
00002a64: ISZERO
00002a65: DUP1
00002a66: ISZERO
00002a67: PUSH2 0x2a74
00002a6a: JUMPI
00002a6b: RETURNDATASIZE
00002a6c: PUSH1 0x00
00002a6e: DUP1
00002a6f: RETURNDATACOPY
00002a70: RETURNDATASIZE
00002a71: PUSH1 0x00
00002a73: REVERT
00002a74: JUMPDEST
00002a75: POP
00002a76: POP
00002a77: POP
00002a78: POP
00002a79: DUP1
00002a7a: PUSH1 0xd4
00002a7c: SLOAD
00002a7d: PUSH2 0x2a84
00002a80: PUSH2 0x303a
00002a83: JUMP
00002a84: JUMPDEST
00002a85: PUSH2 0x2a8e
00002a88: SWAP2
00002a89: SWAP1
00002a8a: PUSH2 0x4b05
00002a8d: JUMP
00002a8e: JUMPDEST
00002a8f: LT
00002a90: ISZERO
00002a91: PUSH2 0x2aad
00002a94: JUMPI
00002a95: PUSH1 0x40
00002a97: MLOAD
00002a98: PUSH4 0x91240a1b
00002a9d: PUSH1 0xe0
00002a9f: SHL
00002aa0: DUP2
00002aa1: MSTORE
00002aa2: PUSH1 0x04
00002aa4: ADD
00002aa5: PUSH1 0x40
00002aa7: MLOAD
00002aa8: DUP1
00002aa9: SWAP2
00002aaa: SUB
00002aab: SWAP1
00002aac: REVERT
00002aad: JUMPDEST
00002aae: DUP2
00002aaf: PUSH1 0xd5
00002ab1: SLOAD
00002ab2: PUSH2 0x2abb
00002ab5: SWAP2
00002ab6: SWAP1
00002ab7: PUSH2 0x4b05
00002aba: JUMP
00002abb: JUMPDEST
00002abc: PUSH1 0xd5
00002abe: SSTORE
00002abf: PUSH1 0x01
00002ac1: PUSH1 0x01
00002ac3: PUSH1 0xa0
00002ac5: SHL
00002ac6: SUB
00002ac7: DUP8
00002ac8: AND
00002ac9: PUSH1 0x00
00002acb: SWAP1
00002acc: DUP2
00002acd: MSTORE
00002ace: PUSH1 0xd7
00002ad0: PUSH1 0x20
00002ad2: MSTORE
00002ad3: PUSH1 0x40
00002ad5: DUP2
00002ad6: KECCAK256
00002ad7: SLOAD
00002ad8: PUSH2 0x2ae2
00002adb: SWAP1
00002adc: DUP5
00002add: SWAP1
00002ade: PUSH2 0x4b05
00002ae1: JUMP
00002ae2: JUMPDEST
00002ae3: PUSH1 0x01
00002ae5: PUSH1 0x01
00002ae7: PUSH1 0xa0
00002ae9: SHL
00002aea: SUB
00002aeb: DUP10
00002aec: AND
00002aed: PUSH1 0x00
00002aef: SWAP1
00002af0: DUP2
00002af1: MSTORE
00002af2: PUSH1 0xd7
00002af4: PUSH1 0x20
00002af6: MSTORE
00002af7: PUSH1 0x40
00002af9: SWAP1
00002afa: KECCAK256
00002afb: DUP2
00002afc: SWAP1
00002afd: SSTORE
00002afe: SWAP1
00002aff: POP
00002b00: PUSH2 0x2b09
00002b03: DUP8
00002b04: DUP4
00002b05: PUSH2 0x3cb1
00002b08: JUMP
00002b09: JUMPDEST
00002b0a: PUSH1 0x40
00002b0c: MLOAD
00002b0d: DUP4
00002b0e: DUP2
00002b0f: MSTORE
00002b10: ADDRESS
00002b11: SWAP1
00002b12: PUSH1 0x01
00002b14: PUSH1 0x01
00002b16: PUSH1 0xa0
00002b18: SHL
00002b19: SUB
00002b1a: DUP11
00002b1b: AND
00002b1c: SWAP1
00002b1d: PUSH1 0x00
00002b1f: DUP1
00002b20: MLOAD
00002b21: PUSH1 0x20
00002b23: PUSH2 0x4dff
00002b26: DUP4
00002b27: CODECOPY
00002b28: DUP2
00002b29: MLOAD
00002b2a: SWAP2
00002b2b: MSTORE
00002b2c: SWAP1
00002b2d: PUSH1 0x20
00002b2f: ADD
00002b30: PUSH1 0x40
00002b32: MLOAD
00002b33: DUP1
00002b34: SWAP2
00002b35: SUB
00002b36: SWAP1
00002b37: LOG3
00002b38: PUSH1 0x40
00002b3a: DUP1
00002b3b: MLOAD
00002b3c: DUP4
00002b3d: DUP2
00002b3e: MSTORE
00002b3f: PUSH1 0x20
00002b41: DUP2
00002b42: ADD
00002b43: DUP6
00002b44: SWAP1
00002b45: MSTORE
00002b46: SWAP1
00002b47: DUP2
00002b48: ADD
00002b49: DUP3
00002b4a: SWAP1
00002b4b: MSTORE
00002b4c: PUSH1 0x01
00002b4e: PUSH1 0x01
00002b50: PUSH1 0xa0
00002b52: SHL
00002b53: SUB
00002b54: DUP10
00002b55: AND
00002b56: SWAP1
00002b57: PUSH32 0xbd5034ffbd47e4e72a94baa2cdb74c6fad73cb3bcdc13036b72ec8306f5a7646
00002b78: SWAP1
00002b79: PUSH1 0x60
00002b7b: ADD
00002b7c: PUSH1 0x40
00002b7e: MLOAD
00002b7f: DUP1
00002b80: SWAP2
00002b81: SUB
00002b82: SWAP1
00002b83: LOG2
00002b84: PUSH1 0xcd
00002b86: SLOAD
00002b87: PUSH1 0x40
00002b89: MLOAD
00002b8a: PUSH4 0x51dff989
00002b8f: PUSH1 0xe0
00002b91: SHL
00002b92: DUP2
00002b93: MSTORE
00002b94: ADDRESS
00002b95: PUSH1 0x04
00002b97: DUP3
00002b98: ADD
00002b99: MSTORE
00002b9a: PUSH1 0x01
00002b9c: PUSH1 0x01
00002b9e: PUSH1 0xa0
00002ba0: SHL
00002ba1: SUB
00002ba2: DUP11
00002ba3: DUP2
00002ba4: AND
00002ba5: PUSH1 0x24
00002ba7: DUP4
00002ba8: ADD
00002ba9: MSTORE
00002baa: PUSH1 0x44
00002bac: DUP3
00002bad: ADD
00002bae: DUP6
00002baf: SWAP1
00002bb0: MSTORE
00002bb1: PUSH1 0x64
00002bb3: DUP3
00002bb4: ADD
00002bb5: DUP7
00002bb6: SWAP1
00002bb7: MSTORE
00002bb8: SWAP1
00002bb9: SWAP2
00002bba: AND
00002bbb: SWAP1
00002bbc: PUSH4 0x51dff989
00002bc1: SWAP1
00002bc2: PUSH1 0x84
00002bc4: ADD
00002bc5: JUMPDEST
00002bc6: PUSH1 0x00
00002bc8: PUSH1 0x40
00002bca: MLOAD
00002bcb: DUP1
00002bcc: DUP4
00002bcd: SUB
00002bce: DUP2
00002bcf: PUSH1 0x00
00002bd1: DUP8
00002bd2: DUP1
00002bd3: EXTCODESIZE
00002bd4: ISZERO
00002bd5: DUP1
00002bd6: ISZERO
00002bd7: PUSH2 0x2bdf
00002bda: JUMPI
00002bdb: PUSH1 0x00
00002bdd: DUP1
00002bde: REVERT
00002bdf: JUMPDEST
00002be0: POP
00002be1: GAS
00002be2: CALL
00002be3: ISZERO
00002be4: DUP1
00002be5: ISZERO
00002be6: PUSH2 0x17a1
00002be9: JUMPI
00002bea: RETURNDATASIZE
00002beb: PUSH1 0x00
00002bed: DUP1
00002bee: RETURNDATACOPY
00002bef: RETURNDATASIZE
00002bf0: PUSH1 0x00
00002bf2: REVERT
00002bf3: JUMPDEST
00002bf4: PUSH1 0xcd
00002bf6: SLOAD
00002bf7: PUSH1 0x40
00002bf9: MLOAD
00002bfa: PUSH4 0xc0891ba9
00002bff: PUSH1 0xe0
00002c01: SHL
00002c02: DUP2
00002c03: MSTORE
00002c04: PUSH1 0x01
00002c06: PUSH1 0x01
00002c08: PUSH1 0xa0
00002c0a: SHL
00002c0b: SUB
00002c0c: SWAP1
00002c0d: SWAP2
00002c0e: AND
00002c0f: SWAP1
00002c10: PUSH4 0xc0891ba9
00002c15: SWAP1
00002c16: PUSH2 0x2c27
00002c19: SWAP1
00002c1a: ADDRESS
00002c1b: SWAP1
00002c1c: DUP7
00002c1d: SWAP1
00002c1e: DUP7
00002c1f: SWAP1
00002c20: PUSH1 0x04
00002c22: ADD
00002c23: PUSH2 0x4c1b
00002c26: JUMP
00002c27: JUMPDEST
00002c28: PUSH1 0x00
00002c2a: PUSH1 0x40
00002c2c: MLOAD
00002c2d: DUP1
00002c2e: DUP4
00002c2f: SUB
00002c30: DUP2
00002c31: PUSH1 0x00
00002c33: DUP8
00002c34: DUP1
00002c35: EXTCODESIZE
00002c36: ISZERO
00002c37: DUP1
00002c38: ISZERO
00002c39: PUSH2 0x2c41
00002c3c: JUMPI
00002c3d: PUSH1 0x00
00002c3f: DUP1
00002c40: REVERT
00002c41: JUMPDEST
00002c42: POP
00002c43: GAS
00002c44: CALL
00002c45: ISZERO
00002c46: DUP1
00002c47: ISZERO
00002c48: PUSH2 0x2c55
00002c4b: JUMPI
00002c4c: RETURNDATASIZE
00002c4d: PUSH1 0x00
00002c4f: DUP1
00002c50: RETURNDATACOPY
00002c51: RETURNDATASIZE
00002c52: PUSH1 0x00
00002c54: REVERT
00002c55: JUMPDEST
00002c56: POP
00002c57: POP
00002c58: POP
00002c59: POP
00002c5a: PUSH2 0x2c61
00002c5d: PUSH2 0x1e72
00002c60: JUMP
00002c61: JUMPDEST
00002c62: PUSH1 0xd1
00002c64: SLOAD
00002c65: EQ
00002c66: PUSH2 0x2c82
00002c69: JUMPI
00002c6a: PUSH1 0x40
00002c6c: MLOAD
00002c6d: PUSH4 0x38d88597
00002c72: PUSH1 0xe0
00002c74: SHL
00002c75: DUP2
00002c76: MSTORE
00002c77: PUSH1 0x04
00002c79: ADD
00002c7a: PUSH1 0x40
00002c7c: MLOAD
00002c7d: DUP1
00002c7e: SWAP2
00002c7f: SUB
00002c80: SWAP1
00002c81: REVERT
00002c82: JUMPDEST
00002c83: PUSH1 0x00
00002c85: PUSH1 0x40
00002c87: MLOAD
00002c88: DUP1
00002c89: PUSH1 0x20
00002c8b: ADD
00002c8c: PUSH1 0x40
00002c8e: MSTORE
00002c8f: DUP1
00002c90: PUSH2 0x2c97
00002c93: PUSH2 0x261e
00002c96: JUMP
00002c97: JUMPDEST
00002c98: SWAP1
00002c99: MSTORE
00002c9a: SWAP1
00002c9b: POP
00002c9c: PUSH1 0x00
00002c9e: PUSH2 0x2ca7
00002ca1: DUP6
00002ca2: DUP5
00002ca3: PUSH2 0x30cb
00002ca6: JUMP
00002ca7: JUMPDEST
00002ca8: SWAP1
00002ca9: POP
00002caa: PUSH1 0x00
00002cac: PUSH2 0x2cb5
00002caf: DUP3
00002cb0: DUP5
00002cb1: PUSH2 0x3da2
00002cb4: JUMP
00002cb5: JUMPDEST
00002cb6: SWAP1
00002cb7: POP
00002cb8: DUP1
00002cb9: PUSH1 0xd5
00002cbb: SLOAD
00002cbc: PUSH2 0x2cc5
00002cbf: SWAP2
00002cc0: SWAP1
00002cc1: PUSH2 0x4af2
00002cc4: JUMP
00002cc5: JUMPDEST
00002cc6: PUSH1 0xd5
00002cc8: SSTORE
00002cc9: PUSH1 0x01
00002ccb: PUSH1 0x01
00002ccd: PUSH1 0xa0
00002ccf: SHL
00002cd0: SUB
00002cd1: DUP6
00002cd2: AND
00002cd3: PUSH1 0x00
00002cd5: SWAP1
00002cd6: DUP2
00002cd7: MSTORE
00002cd8: PUSH1 0xd7
00002cda: PUSH1 0x20
00002cdc: MSTORE
00002cdd: PUSH1 0x40
00002cdf: DUP2
00002ce0: KECCAK256
00002ce1: SLOAD
00002ce2: PUSH2 0x2cec
00002ce5: SWAP1
00002ce6: DUP4
00002ce7: SWAP1
00002ce8: PUSH2 0x4af2
00002ceb: JUMP
00002cec: JUMPDEST
00002ced: PUSH1 0x01
00002cef: PUSH1 0x01
00002cf1: PUSH1 0xa0
00002cf3: SHL
00002cf4: SUB
00002cf5: DUP8
00002cf6: AND
00002cf7: PUSH1 0x00
00002cf9: DUP2
00002cfa: DUP2
00002cfb: MSTORE
00002cfc: PUSH1 0xd7
00002cfe: PUSH1 0x20
00002d00: SWAP1
00002d01: DUP2
00002d02: MSTORE
00002d03: PUSH1 0x40
00002d05: SWAP2
00002d06: DUP3
00002d07: SWAP1
00002d08: KECCAK256
00002d09: DUP5
00002d0a: SWAP1
00002d0b: SSTORE
00002d0c: DUP2
00002d0d: MLOAD
00002d0e: DUP8
00002d0f: DUP2
00002d10: MSTORE
00002d11: SWAP1
00002d12: DUP2
00002d13: ADD
00002d14: DUP7
00002d15: SWAP1
00002d16: MSTORE
00002d17: SWAP1
00002d18: DUP2
00002d19: ADD
00002d1a: DUP4
00002d1b: SWAP1
00002d1c: MSTORE
00002d1d: SWAP2
00002d1e: SWAP3
00002d1f: POP
00002d20: SWAP1
00002d21: PUSH32 0xb4c03061fb5b7fed76389d5af8f2e0ddb09f8c70d1333abbb62582835e10accb
00002d42: SWAP1
00002d43: PUSH1 0x60
00002d45: ADD
00002d46: PUSH1 0x40
00002d48: MLOAD
00002d49: DUP1
00002d4a: SWAP2
00002d4b: SUB
00002d4c: SWAP1
00002d4d: LOG2
00002d4e: PUSH1 0x40
00002d50: MLOAD
00002d51: DUP3
00002d52: DUP2
00002d53: MSTORE
00002d54: PUSH1 0x01
00002d56: PUSH1 0x01
00002d58: PUSH1 0xa0
00002d5a: SHL
00002d5b: SUB
00002d5c: DUP8
00002d5d: AND
00002d5e: SWAP1
00002d5f: PUSH1 0x00
00002d61: SWAP1
00002d62: PUSH1 0x00
00002d64: DUP1
00002d65: MLOAD
00002d66: PUSH1 0x20
00002d68: PUSH2 0x4dff
00002d6b: DUP4
00002d6c: CODECOPY
00002d6d: DUP2
00002d6e: MLOAD
00002d6f: SWAP2
00002d70: MSTORE
00002d71: SWAP1
00002d72: PUSH1 0x20
00002d74: ADD
00002d75: PUSH1 0x40
00002d77: MLOAD
00002d78: DUP1
00002d79: SWAP2
00002d7a: SUB
00002d7b: SWAP1
00002d7c: LOG3
00002d7d: PUSH1 0xcd
00002d7f: SLOAD
00002d80: PUSH1 0x40
00002d82: MLOAD
00002d83: PUSH4 0x41c728b9
00002d88: PUSH1 0xe0
00002d8a: SHL
00002d8b: DUP2
00002d8c: MSTORE
00002d8d: ADDRESS
00002d8e: PUSH1 0x04
00002d90: DUP3
00002d91: ADD
00002d92: MSTORE
00002d93: PUSH1 0x01
00002d95: PUSH1 0x01
00002d97: PUSH1 0xa0
00002d99: SHL
00002d9a: SUB
00002d9b: DUP9
00002d9c: DUP2
00002d9d: AND
00002d9e: PUSH1 0x24
00002da0: DUP4
00002da1: ADD
00002da2: MSTORE
00002da3: PUSH1 0x44
00002da5: DUP3
00002da6: ADD
00002da7: DUP7
00002da8: SWAP1
00002da9: MSTORE
00002daa: PUSH1 0x64
00002dac: DUP3
00002dad: ADD
00002dae: DUP6
00002daf: SWAP1
00002db0: MSTORE
00002db1: SWAP1
00002db2: SWAP2
00002db3: AND
00002db4: SWAP1
00002db5: PUSH4 0x41c728b9
00002dba: SWAP1
00002dbb: PUSH1 0x84
00002dbd: ADD
00002dbe: PUSH1 0x00
00002dc0: PUSH1 0x40
00002dc2: MLOAD
00002dc3: DUP1
00002dc4: DUP4
00002dc5: SUB
00002dc6: DUP2
00002dc7: PUSH1 0x00
00002dc9: DUP8
00002dca: DUP1
00002dcb: EXTCODESIZE
00002dcc: ISZERO
00002dcd: DUP1
00002dce: ISZERO
00002dcf: PUSH2 0x2dd7
00002dd2: JUMPI
00002dd3: PUSH1 0x00
00002dd5: DUP1
00002dd6: REVERT
00002dd7: JUMPDEST
00002dd8: POP
00002dd9: GAS
00002dda: CALL
00002ddb: ISZERO
00002ddc: DUP1
00002ddd: ISZERO
00002dde: PUSH2 0x2deb
00002de1: JUMPI
00002de2: RETURNDATASIZE
00002de3: PUSH1 0x00
00002de5: DUP1
00002de6: RETURNDATACOPY
00002de7: RETURNDATASIZE
00002de8: PUSH1 0x00
00002dea: REVERT
00002deb: JUMPDEST
00002dec: POP
00002ded: POP
00002dee: POP
00002def: POP
00002df0: POP
00002df1: POP
00002df2: POP
00002df3: POP
00002df4: POP
00002df5: POP
00002df6: POP
00002df7: JUMP
00002df8: JUMPDEST
00002df9: PUSH1 0xcd
00002dfb: SLOAD
00002dfc: PUSH1 0x40
00002dfe: MLOAD
00002dff: PUSH4 0x6d0be88d
00002e04: PUSH1 0xe0
00002e06: SHL
00002e07: DUP2
00002e08: MSTORE
00002e09: ADDRESS
00002e0a: PUSH1 0x04
00002e0c: DUP3
00002e0d: ADD
00002e0e: MSTORE
00002e0f: PUSH1 0x01
00002e11: PUSH1 0x01
00002e13: PUSH1 0xa0
00002e15: SHL
00002e16: SUB
00002e17: DUP6
00002e18: DUP2
00002e19: AND
00002e1a: PUSH1 0x24
00002e1c: DUP4
00002e1d: ADD
00002e1e: MSTORE
00002e1f: DUP5
00002e20: DUP2
00002e21: AND
00002e22: PUSH1 0x44
00002e24: DUP4
00002e25: ADD
00002e26: MSTORE
00002e27: PUSH1 0x64
00002e29: DUP3
00002e2a: ADD
00002e2b: DUP5
00002e2c: SWAP1
00002e2d: MSTORE
00002e2e: SWAP1
00002e2f: SWAP2
00002e30: AND
00002e31: SWAP1
00002e32: PUSH4 0x6d0be88d
00002e37: SWAP1
00002e38: PUSH1 0x84
00002e3a: ADD
00002e3b: PUSH1 0x00
00002e3d: PUSH1 0x40
00002e3f: MLOAD
00002e40: DUP1
00002e41: DUP4
00002e42: SUB
00002e43: DUP2
00002e44: PUSH1 0x00
00002e46: DUP8
00002e47: DUP1
00002e48: EXTCODESIZE
00002e49: ISZERO
00002e4a: DUP1
00002e4b: ISZERO
00002e4c: PUSH2 0x2e54
00002e4f: JUMPI
00002e50: PUSH1 0x00
00002e52: DUP1
00002e53: REVERT
00002e54: JUMPDEST
00002e55: POP
00002e56: GAS
00002e57: CALL
00002e58: ISZERO
00002e59: DUP1
00002e5a: ISZERO
00002e5b: PUSH2 0x2e68
00002e5e: JUMPI
00002e5f: RETURNDATASIZE
00002e60: PUSH1 0x00
00002e62: DUP1
00002e63: RETURNDATACOPY
00002e64: RETURNDATASIZE
00002e65: PUSH1 0x00
00002e67: REVERT
00002e68: JUMPDEST
00002e69: POP
00002e6a: POP
00002e6b: POP
00002e6c: POP
00002e6d: DUP2
00002e6e: PUSH1 0x01
00002e70: PUSH1 0x01
00002e72: PUSH1 0xa0
00002e74: SHL
00002e75: SUB
00002e76: AND
00002e77: DUP4
00002e78: PUSH1 0x01
00002e7a: PUSH1 0x01
00002e7c: PUSH1 0xa0
00002e7e: SHL
00002e7f: SUB
00002e80: AND
00002e81: SUB
00002e82: PUSH2 0x2e9e
00002e85: JUMPI
00002e86: PUSH1 0x40
00002e88: MLOAD
00002e89: PUSH4 0x8cd22d19
00002e8e: PUSH1 0xe0
00002e90: SHL
00002e91: DUP2
00002e92: MSTORE
00002e93: PUSH1 0x04
00002e95: ADD
00002e96: PUSH1 0x40
00002e98: MLOAD
00002e99: DUP1
00002e9a: SWAP2
00002e9b: SUB
00002e9c: SWAP1
00002e9d: REVERT
00002e9e: JUMPDEST
00002e9f: PUSH1 0x00
00002ea1: DUP4
00002ea2: PUSH1 0x01
00002ea4: PUSH1 0x01
00002ea6: PUSH1 0xa0
00002ea8: SHL
00002ea9: SUB
00002eaa: AND
00002eab: DUP6
00002eac: PUSH1 0x01
00002eae: PUSH1 0x01
00002eb0: PUSH1 0xa0
00002eb2: SHL
00002eb3: SUB
00002eb4: AND
00002eb5: SUB
00002eb6: PUSH2 0x2ec2
00002eb9: JUMPI
00002eba: POP
00002ebb: PUSH1 0x00
00002ebd: NOT
00002ebe: PUSH2 0x2eea
00002ec1: JUMP
00002ec2: JUMPDEST
00002ec3: POP
00002ec4: PUSH1 0x01
00002ec6: PUSH1 0x01
00002ec8: PUSH1 0xa0
00002eca: SHL
00002ecb: SUB
00002ecc: DUP1
00002ecd: DUP5
00002ece: AND
00002ecf: PUSH1 0x00
00002ed1: SWAP1
00002ed2: DUP2
00002ed3: MSTORE
00002ed4: PUSH1 0xd8
00002ed6: PUSH1 0x20
00002ed8: SWAP1
00002ed9: DUP2
00002eda: MSTORE
00002edb: PUSH1 0x40
00002edd: DUP1
00002ede: DUP4
00002edf: KECCAK256
00002ee0: SWAP4
00002ee1: DUP9
00002ee2: AND
00002ee3: DUP4
00002ee4: MSTORE
00002ee5: SWAP3
00002ee6: SWAP1
00002ee7: MSTORE
00002ee8: KECCAK256
00002ee9: SLOAD
00002eea: JUMPDEST
00002eeb: PUSH1 0x00
00002eed: PUSH2 0x2ef6
00002ef0: DUP4
00002ef1: DUP4
00002ef2: PUSH2 0x4b05
00002ef5: JUMP
00002ef6: JUMPDEST
00002ef7: PUSH1 0x01
00002ef9: PUSH1 0x01
00002efb: PUSH1 0xa0
00002efd: SHL
00002efe: SUB
00002eff: DUP7
00002f00: AND
00002f01: PUSH1 0x00
00002f03: SWAP1
00002f04: DUP2
00002f05: MSTORE
00002f06: PUSH1 0xd7
00002f08: PUSH1 0x20
00002f0a: MSTORE
00002f0b: PUSH1 0x40
00002f0d: DUP2
00002f0e: KECCAK256
00002f0f: SLOAD
00002f10: SWAP2
00002f11: SWAP3
00002f12: POP
00002f13: SWAP1
00002f14: PUSH2 0x2f1e
00002f17: SWAP1
00002f18: DUP6
00002f19: SWAP1
00002f1a: PUSH2 0x4b05
00002f1d: JUMP
00002f1e: JUMPDEST
00002f1f: PUSH1 0x01
00002f21: PUSH1 0x01
00002f23: PUSH1 0xa0
00002f25: SHL
00002f26: SUB
00002f27: DUP7
00002f28: AND
00002f29: PUSH1 0x00
00002f2b: SWAP1
00002f2c: DUP2
00002f2d: MSTORE
00002f2e: PUSH1 0xd7
00002f30: PUSH1 0x20
00002f32: MSTORE
00002f33: PUSH1 0x40
00002f35: DUP2
00002f36: KECCAK256
00002f37: SLOAD
00002f38: SWAP2
00002f39: SWAP3
00002f3a: POP
00002f3b: SWAP1
00002f3c: PUSH2 0x2f46
00002f3f: SWAP1
00002f40: DUP7
00002f41: SWAP1
00002f42: PUSH2 0x4af2
00002f45: JUMP
00002f46: JUMPDEST
00002f47: PUSH1 0x01
00002f49: PUSH1 0x01
00002f4b: PUSH1 0xa0
00002f4d: SHL
00002f4e: SUB
00002f4f: DUP1
00002f50: DUP10
00002f51: AND
00002f52: PUSH1 0x00
00002f54: SWAP1
00002f55: DUP2
00002f56: MSTORE
00002f57: PUSH1 0xd7
00002f59: PUSH1 0x20
00002f5b: MSTORE
00002f5c: PUSH1 0x40
00002f5e: DUP1
00002f5f: DUP3
00002f60: KECCAK256
00002f61: DUP7
00002f62: SWAP1
00002f63: SSTORE
00002f64: SWAP2
00002f65: DUP10
00002f66: AND
00002f67: DUP2
00002f68: MSTORE
00002f69: KECCAK256
00002f6a: DUP2
00002f6b: SWAP1
00002f6c: SSTORE
00002f6d: SWAP1
00002f6e: POP
00002f6f: PUSH1 0x00
00002f71: NOT
00002f72: DUP5
00002f73: EQ
00002f74: PUSH2 0x2fa0
00002f77: JUMPI
00002f78: PUSH1 0x01
00002f7a: PUSH1 0x01
00002f7c: PUSH1 0xa0
00002f7e: SHL
00002f7f: SUB
00002f80: DUP1
00002f81: DUP9
00002f82: AND
00002f83: PUSH1 0x00
00002f85: SWAP1
00002f86: DUP2
00002f87: MSTORE
00002f88: PUSH1 0xd8
00002f8a: PUSH1 0x20
00002f8c: SWAP1
00002f8d: DUP2
00002f8e: MSTORE
00002f8f: PUSH1 0x40
00002f91: DUP1
00002f92: DUP4
00002f93: KECCAK256
00002f94: SWAP4
00002f95: DUP13
00002f96: AND
00002f97: DUP4
00002f98: MSTORE
00002f99: SWAP3
00002f9a: SWAP1
00002f9b: MSTORE
00002f9c: KECCAK256
00002f9d: DUP4
00002f9e: SWAP1
00002f9f: SSTORE
00002fa0: JUMPDEST
00002fa1: DUP6
00002fa2: PUSH1 0x01
00002fa4: PUSH1 0x01
00002fa6: PUSH1 0xa0
00002fa8: SHL
00002fa9: SUB
00002faa: AND
00002fab: DUP8
00002fac: PUSH1 0x01
00002fae: PUSH1 0x01
00002fb0: PUSH1 0xa0
00002fb2: SHL
00002fb3: SUB
00002fb4: AND
00002fb5: PUSH1 0x00
00002fb7: DUP1
00002fb8: MLOAD
00002fb9: PUSH1 0x20
00002fbb: PUSH2 0x4dff
00002fbe: DUP4
00002fbf: CODECOPY
00002fc0: DUP2
00002fc1: MLOAD
00002fc2: SWAP2
00002fc3: MSTORE
00002fc4: DUP8
00002fc5: PUSH1 0x40
00002fc7: MLOAD
00002fc8: PUSH2 0x2fd3
00002fcb: SWAP2
00002fcc: DUP2
00002fcd: MSTORE
00002fce: PUSH1 0x20
00002fd0: ADD
00002fd1: SWAP1
00002fd2: JUMP
00002fd3: JUMPDEST
00002fd4: PUSH1 0x40
00002fd6: MLOAD
00002fd7: DUP1
00002fd8: SWAP2
00002fd9: SUB
00002fda: SWAP1
00002fdb: LOG3
00002fdc: PUSH1 0xcd
00002fde: SLOAD
00002fdf: PUSH1 0x40
00002fe1: MLOAD
00002fe2: PUSH4 0x352b4a3f
00002fe7: PUSH1 0xe1
00002fe9: SHL
00002fea: DUP2
00002feb: MSTORE
00002fec: ADDRESS
00002fed: PUSH1 0x04
00002fef: DUP3
00002ff0: ADD
00002ff1: MSTORE
00002ff2: PUSH1 0x01
00002ff4: PUSH1 0x01
00002ff6: PUSH1 0xa0
00002ff8: SHL
00002ff9: SUB
00002ffa: DUP10
00002ffb: DUP2
00002ffc: AND
00002ffd: PUSH1 0x24
00002fff: DUP4
00003000: ADD
00003001: MSTORE
00003002: DUP9
00003003: DUP2
00003004: AND
00003005: PUSH1 0x44
00003007: DUP4
00003008: ADD
00003009: MSTORE
0000300a: PUSH1 0x64
0000300c: DUP3
0000300d: ADD
0000300e: DUP9
0000300f: SWAP1
00003010: MSTORE
00003011: SWAP1
00003012: SWAP2
00003013: AND
00003014: SWAP1
00003015: PUSH4 0x6a56947e
0000301a: SWAP1
0000301b: PUSH1 0x84
0000301d: ADD
0000301e: PUSH2 0x2bc5
00003021: JUMP
00003022: JUMPDEST
00003023: PUSH1 0x00
00003025: DUP1
00003026: PUSH2 0x302f
00003029: DUP5
0000302a: DUP5
0000302b: PUSH2 0x38b5
0000302e: JUMP
0000302f: JUMPDEST
00003030: SWAP1
00003031: POP
00003032: PUSH2 0x2616
00003035: DUP2
00003036: PUSH2 0x3de3
00003039: JUMP
0000303a: JUMPDEST
0000303b: PUSH1 0xc9
0000303d: SLOAD
0000303e: PUSH1 0x40
00003040: MLOAD
00003041: PUSH4 0x70a08231
00003046: PUSH1 0xe0
00003048: SHL
00003049: DUP2
0000304a: MSTORE
0000304b: ADDRESS
0000304c: PUSH1 0x04
0000304e: DUP3
0000304f: ADD
00003050: MSTORE
00003051: PUSH1 0x00
00003053: SWAP2
00003054: PUSH2 0x0100
00003057: SWAP1
00003058: DIV
00003059: PUSH1 0x01
0000305b: PUSH1 0x01
0000305d: PUSH1 0xa0
0000305f: SHL
00003060: SUB
00003061: AND
00003062: SWAP1
00003063: PUSH4 0x70a08231
00003068: SWAP1
00003069: PUSH1 0x24
0000306b: ADD
0000306c: PUSH2 0x1c7e
0000306f: JUMP
00003070: JUMPDEST
00003071: PUSH2 0x3079
00003074: DUP2
00003075: PUSH2 0x2229
00003078: JUMP
00003079: JUMPDEST
0000307a: PUSH1 0xdb
0000307c: DUP1
0000307d: SLOAD
0000307e: PUSH1 0x01
00003080: PUSH1 0x01
00003082: PUSH1 0xa0
00003084: SHL
00003085: SUB
00003086: DUP4
00003087: DUP2
00003088: AND
00003089: PUSH1 0x01
0000308b: PUSH1 0x01
0000308d: PUSH1 0xa0
0000308f: SHL
00003090: SUB
00003091: NOT
00003092: DUP4
00003093: AND
00003094: DUP2
00003095: OR
00003096: SWAP1
00003097: SWAP4
00003098: SSTORE
00003099: PUSH1 0x40
0000309b: MLOAD
0000309c: SWAP2
0000309d: AND
0000309e: SWAP2
0000309f: SWAP1
000030a0: DUP3
000030a1: SWAP1
000030a2: PUSH32 0x6dbf1ff28f860de5edafa4c6505e37c0aba213288cc4166c5352b6d3776c79ef
000030c3: SWAP1
000030c4: PUSH1 0x00
000030c6: SWAP1
000030c7: LOG3
000030c8: POP
000030c9: POP
000030ca: JUMP
000030cb: JUMPDEST
000030cc: PUSH1 0xc9
000030ce: SLOAD
000030cf: PUSH1 0x40
000030d1: MLOAD
000030d2: PUSH4 0x70a08231
000030d7: PUSH1 0xe0
000030d9: SHL
000030da: DUP2
000030db: MSTORE
000030dc: ADDRESS
000030dd: PUSH1 0x04
000030df: DUP3
000030e0: ADD
000030e1: MSTORE
000030e2: PUSH1 0x00
000030e4: SWAP2
000030e5: PUSH2 0x0100
000030e8: SWAP1
000030e9: DIV
000030ea: PUSH1 0x01
000030ec: PUSH1 0x01
000030ee: PUSH1 0xa0
000030f0: SHL
000030f1: SUB
000030f2: AND
000030f3: SWAP1
000030f4: DUP3
000030f5: SWAP1
000030f6: DUP3
000030f7: SWAP1
000030f8: PUSH4 0x70a08231
000030fd: SWAP1
000030fe: PUSH1 0x24
00003100: ADD
00003101: PUSH1 0x20
00003103: PUSH1 0x40
00003105: MLOAD
00003106: DUP1
00003107: DUP4
00003108: SUB
00003109: DUP2
0000310a: DUP7
0000310b: GAS
0000310c: STATICCALL
0000310d: ISZERO
0000310e: DUP1
0000310f: ISZERO
00003110: PUSH2 0x311d
00003113: JUMPI
00003114: RETURNDATASIZE
00003115: PUSH1 0x00
00003117: DUP1
00003118: RETURNDATACOPY
00003119: RETURNDATASIZE
0000311a: PUSH1 0x00
0000311c: REVERT
0000311d: JUMPDEST
0000311e: POP
0000311f: POP
00003120: POP
00003121: POP
00003122: PUSH1 0x40
00003124: MLOAD
00003125: RETURNDATASIZE
00003126: PUSH1 0x1f
00003128: NOT
00003129: PUSH1 0x1f
0000312b: DUP3
0000312c: ADD
0000312d: AND
0000312e: DUP3
0000312f: ADD
00003130: DUP1
00003131: PUSH1 0x40
00003133: MSTORE
00003134: POP
00003135: DUP2
00003136: ADD
00003137: SWAP1
00003138: PUSH2 0x3141
0000313b: SWAP2
0000313c: SWAP1
0000313d: PUSH2 0x4ac3
00003140: JUMP
00003141: JUMPDEST
00003142: SWAP1
00003143: POP
00003144: PUSH2 0x3158
00003147: PUSH1 0x01
00003149: PUSH1 0x01
0000314b: PUSH1 0xa0
0000314d: SHL
0000314e: SUB
0000314f: DUP4
00003150: AND
00003151: DUP7
00003152: ADDRESS
00003153: DUP8
00003154: PUSH2 0x3dfb
00003157: JUMP
00003158: JUMPDEST
00003159: PUSH1 0x40
0000315b: MLOAD
0000315c: PUSH4 0x70a08231
00003161: PUSH1 0xe0
00003163: SHL
00003164: DUP2
00003165: MSTORE
00003166: ADDRESS
00003167: PUSH1 0x04
00003169: DUP3
0000316a: ADD
0000316b: MSTORE
0000316c: PUSH1 0x00
0000316e: SWAP1
0000316f: PUSH1 0x01
00003171: PUSH1 0x01
00003173: PUSH1 0xa0
00003175: SHL
00003176: SUB
00003177: DUP5
00003178: AND
00003179: SWAP1
0000317a: PUSH4 0x70a08231
0000317f: SWAP1
00003180: PUSH1 0x24
00003182: ADD
00003183: PUSH1 0x20
00003185: PUSH1 0x40
00003187: MLOAD
00003188: DUP1
00003189: DUP4
0000318a: SUB
0000318b: DUP2
0000318c: DUP7
0000318d: GAS
0000318e: STATICCALL
0000318f: ISZERO
00003190: DUP1
00003191: ISZERO
00003192: PUSH2 0x319f
00003195: JUMPI
00003196: RETURNDATASIZE
00003197: PUSH1 0x00
00003199: DUP1
0000319a: RETURNDATACOPY
0000319b: RETURNDATASIZE
0000319c: PUSH1 0x00
0000319e: REVERT
0000319f: JUMPDEST
000031a0: POP
000031a1: POP
000031a2: POP
000031a3: POP
000031a4: PUSH1 0x40
000031a6: MLOAD
000031a7: RETURNDATASIZE
000031a8: PUSH1 0x1f
000031aa: NOT
000031ab: PUSH1 0x1f
000031ad: DUP3
000031ae: ADD
000031af: AND
000031b0: DUP3
000031b1: ADD
000031b2: DUP1
000031b3: PUSH1 0x40
000031b5: MSTORE
000031b6: POP
000031b7: DUP2
000031b8: ADD
000031b9: SWAP1
000031ba: PUSH2 0x31c3
000031bd: SWAP2
000031be: SWAP1
000031bf: PUSH2 0x4ac3
000031c2: JUMP
000031c3: JUMPDEST
000031c4: SWAP1
000031c5: POP
000031c6: PUSH2 0x31cf
000031c9: DUP3
000031ca: DUP3
000031cb: PUSH2 0x4b05
000031ce: JUMP
000031cf: JUMPDEST
000031d0: SWAP7
000031d1: SWAP6
000031d2: POP
000031d3: POP
000031d4: POP
000031d5: POP
000031d6: POP
000031d7: POP
000031d8: JUMP
000031d9: JUMPDEST
000031da: PUSH1 0x65
000031dc: DUP1
000031dd: SLOAD
000031de: PUSH1 0x01
000031e0: PUSH1 0x01
000031e2: PUSH1 0xa0
000031e4: SHL
000031e5: SUB
000031e6: NOT
000031e7: AND
000031e8: SWAP1
000031e9: SSTORE
000031ea: PUSH2 0x0afd
000031ed: DUP2
000031ee: PUSH2 0x3e22
000031f1: JUMP
000031f2: JUMPDEST
000031f3: PUSH1 0x00
000031f5: DUP1
000031f6: PUSH1 0x00
000031f8: PUSH2 0x31ff
000031fb: PUSH2 0x1e72
000031fe: JUMP
000031ff: JUMPDEST
00003200: PUSH1 0xd1
00003202: SLOAD
00003203: EQ
00003204: PUSH2 0x3223
00003207: JUMPI
00003208: PUSH1 0x40
0000320a: MLOAD
0000320b: PUSH4 0x38acf799
00003210: PUSH1 0xe0
00003212: SHL
00003213: DUP2
00003214: MSTORE
00003215: PUSH1 0x04
00003217: DUP2
00003218: ADD
00003219: DUP3
0000321a: SWAP1
0000321b: MSTORE
0000321c: PUSH1 0x24
0000321e: ADD
0000321f: PUSH2 0x0a36
00003222: JUMP
00003223: JUMPDEST
00003224: PUSH2 0x322d
00003227: CALLER
00003228: DUP6
00003229: PUSH2 0x30cb
0000322c: JUMP
0000322d: JUMPDEST
0000322e: SWAP1
0000322f: POP
00003230: DUP1
00003231: PUSH1 0xd4
00003233: SLOAD
00003234: PUSH2 0x323d
00003237: SWAP2
00003238: SWAP1
00003239: PUSH2 0x4af2
0000323c: JUMP
0000323d: JUMPDEST
0000323e: PUSH1 0xd4
00003240: DUP2
00003241: SWAP1
00003242: SSTORE
00003243: PUSH1 0x40
00003245: DUP1
00003246: MLOAD
00003247: DUP4
00003248: DUP2
00003249: MSTORE
0000324a: PUSH1 0x20
0000324c: DUP2
0000324d: ADD
0000324e: DUP4
0000324f: SWAP1
00003250: MSTORE
00003251: SWAP2
00003252: SWAP4
00003253: POP
00003254: CALLER
00003255: SWAP2
00003256: PUSH32 0xa91e67c5ea634cd43a12c5a482724b03de01e85ca68702a53d0c2f45cb7c1dc5
00003277: SWAP2
00003278: ADD
00003279: PUSH1 0x40
0000327b: MLOAD
0000327c: DUP1
0000327d: SWAP2
0000327e: SUB
0000327f: SWAP1
00003280: LOG2
00003281: SWAP4
00003282: SWAP3
00003283: POP
00003284: POP
00003285: POP
00003286: JUMP
00003287: JUMPDEST
00003288: PUSH1 0xcd
0000328a: SLOAD
0000328b: PUSH1 0x40
0000328d: MLOAD
0000328e: PUSH4 0xdf71403b
00003293: PUSH1 0xe0
00003295: SHL
00003296: DUP2
00003297: MSTORE
00003298: PUSH1 0x01
0000329a: PUSH1 0x01
0000329c: PUSH1 0xa0
0000329e: SHL
0000329f: SUB
000032a0: SWAP1
000032a1: SWAP2
000032a2: AND
000032a3: SWAP1
000032a4: PUSH4 0xdf71403b
000032a9: SWAP1
000032aa: PUSH2 0x32bb
000032ad: SWAP1
000032ae: ADDRESS
000032af: SWAP1
000032b0: DUP8
000032b1: SWAP1
000032b2: DUP7
000032b3: SWAP1
000032b4: PUSH1 0x04
000032b6: ADD
000032b7: PUSH2 0x4c1b
000032ba: JUMP
000032bb: JUMPDEST
000032bc: PUSH1 0x00
000032be: PUSH1 0x40
000032c0: MLOAD
000032c1: DUP1
000032c2: DUP4
000032c3: SUB
000032c4: DUP2
000032c5: PUSH1 0x00
000032c7: DUP8
000032c8: DUP1
000032c9: EXTCODESIZE
000032ca: ISZERO
000032cb: DUP1
000032cc: ISZERO
000032cd: PUSH2 0x32d5
000032d0: JUMPI
000032d1: PUSH1 0x00
000032d3: DUP1
000032d4: REVERT
000032d5: JUMPDEST
000032d6: POP
000032d7: GAS
000032d8: CALL
000032d9: ISZERO
000032da: DUP1
000032db: ISZERO
000032dc: PUSH2 0x32e9
000032df: JUMPI
000032e0: RETURNDATASIZE
000032e1: PUSH1 0x00
000032e3: DUP1
000032e4: RETURNDATACOPY
000032e5: RETURNDATASIZE
000032e6: PUSH1 0x00
000032e8: REVERT
000032e9: JUMPDEST
000032ea: POP
000032eb: POP
000032ec: POP
000032ed: POP
000032ee: PUSH2 0x32f5
000032f1: PUSH2 0x1e72
000032f4: JUMP
000032f5: JUMPDEST
000032f6: PUSH1 0xd1
000032f8: SLOAD
000032f9: EQ
000032fa: PUSH2 0x3316
000032fd: JUMPI
000032fe: PUSH1 0x40
00003300: MLOAD
00003301: PUSH4 0x0e8d8c61
00003306: PUSH1 0xe2
00003308: SHL
00003309: DUP2
0000330a: MSTORE
0000330b: PUSH1 0x04
0000330d: ADD
0000330e: PUSH1 0x40
00003310: MLOAD
00003311: DUP1
00003312: SWAP2
00003313: SUB
00003314: SWAP1
00003315: REVERT
00003316: JUMPDEST
00003317: DUP1
00003318: PUSH1 0xd4
0000331a: SLOAD
0000331b: PUSH2 0x3322
0000331e: PUSH2 0x303a
00003321: JUMP
00003322: JUMPDEST
00003323: PUSH2 0x332c
00003326: SWAP2
00003327: SWAP1
00003328: PUSH2 0x4b05
0000332b: JUMP
0000332c: JUMPDEST
0000332d: LT
0000332e: ISZERO
0000332f: PUSH2 0x334b
00003332: JUMPI
00003333: PUSH1 0x40
00003335: MLOAD
00003336: PUSH4 0x48c25881
0000333b: PUSH1 0xe0
0000333d: SHL
0000333e: DUP2
0000333f: MSTORE
00003340: PUSH1 0x04
00003342: ADD
00003343: PUSH1 0x40
00003345: MLOAD
00003346: DUP1
00003347: SWAP2
00003348: SUB
00003349: SWAP1
0000334a: REVERT
0000334b: JUMPDEST
0000334c: PUSH1 0x00
0000334e: PUSH2 0x3356
00003351: DUP5
00003352: PUSH2 0x25ae
00003355: JUMP
00003356: JUMPDEST
00003357: SWAP1
00003358: POP
00003359: PUSH1 0x00
0000335b: PUSH2 0x3364
0000335e: DUP4
0000335f: DUP4
00003360: PUSH2 0x4af2
00003363: JUMP
00003364: JUMPDEST
00003365: SWAP1
00003366: POP
00003367: PUSH1 0x00
00003369: DUP4
0000336a: PUSH1 0xd3
0000336c: SLOAD
0000336d: PUSH2 0x3376
00003370: SWAP2
00003371: SWAP1
00003372: PUSH2 0x4af2
00003375: JUMP
00003376: JUMPDEST
00003377: PUSH1 0x01
00003379: PUSH1 0x01
0000337b: PUSH1 0xa0
0000337d: SHL
0000337e: SUB
0000337f: DUP8
00003380: AND
00003381: PUSH1 0x00
00003383: SWAP1
00003384: DUP2
00003385: MSTORE
00003386: PUSH1 0xd9
00003388: PUSH1 0x20
0000338a: MSTORE
0000338b: PUSH1 0x40
0000338d: SWAP1
0000338e: KECCAK256
0000338f: DUP4
00003390: DUP2
00003391: SSTORE
00003392: PUSH1 0xd2
00003394: SLOAD
00003395: PUSH1 0x01
00003397: SWAP1
00003398: SWAP2
00003399: ADD
0000339a: SSTORE
0000339b: PUSH1 0xd3
0000339d: DUP2
0000339e: SWAP1
0000339f: SSTORE
000033a0: SWAP1
000033a1: POP
000033a2: PUSH2 0x33ab
000033a5: DUP6
000033a6: DUP6
000033a7: PUSH2 0x3cb1
000033aa: JUMP
000033ab: JUMPDEST
000033ac: PUSH1 0x40
000033ae: DUP1
000033af: MLOAD
000033b0: DUP6
000033b1: DUP2
000033b2: MSTORE
000033b3: PUSH1 0x20
000033b5: DUP2
000033b6: ADD
000033b7: DUP5
000033b8: SWAP1
000033b9: MSTORE
000033ba: SWAP1
000033bb: DUP2
000033bc: ADD
000033bd: DUP3
000033be: SWAP1
000033bf: MSTORE
000033c0: PUSH1 0x01
000033c2: PUSH1 0x01
000033c4: PUSH1 0xa0
000033c6: SHL
000033c7: SUB
000033c8: DUP8
000033c9: AND
000033ca: SWAP1
000033cb: PUSH32 0x13ed6866d4e1ee6da46f845c46d7e54120883d75c5ea9a2dacc1c4ca8984ab80
000033ec: SWAP1
000033ed: PUSH1 0x60
000033ef: ADD
000033f0: PUSH1 0x40
000033f2: MLOAD
000033f3: DUP1
000033f4: SWAP2
000033f5: SUB
000033f6: SWAP1
000033f7: LOG2
000033f8: PUSH1 0xcd
000033fa: SLOAD
000033fb: PUSH1 0x40
000033fd: MLOAD
000033fe: PUSH4 0x5c778605
00003403: PUSH1 0xe0
00003405: SHL
00003406: DUP2
00003407: MSTORE
00003408: PUSH1 0x01
0000340a: PUSH1 0x01
0000340c: PUSH1 0xa0
0000340e: SHL
0000340f: SUB
00003410: SWAP1
00003411: SWAP2
00003412: AND
00003413: SWAP1
00003414: PUSH4 0x5c778605
00003419: SWAP1
0000341a: PUSH2 0x342b
0000341d: SWAP1
0000341e: ADDRESS
0000341f: SWAP1
00003420: DUP11
00003421: SWAP1
00003422: DUP10
00003423: SWAP1
00003424: PUSH1 0x04
00003426: ADD
00003427: PUSH2 0x4c1b
0000342a: JUMP
0000342b: JUMPDEST
0000342c: PUSH1 0x00
0000342e: PUSH1 0x40
00003430: MLOAD
00003431: DUP1
00003432: DUP4
00003433: SUB
00003434: DUP2
00003435: PUSH1 0x00
00003437: DUP8
00003438: DUP1
00003439: EXTCODESIZE
0000343a: ISZERO
0000343b: DUP1
0000343c: ISZERO
0000343d: PUSH2 0x3445
00003440: JUMPI
00003441: PUSH1 0x00
00003443: DUP1
00003444: REVERT
00003445: JUMPDEST
00003446: POP
00003447: GAS
00003448: CALL
00003449: ISZERO
0000344a: DUP1
0000344b: ISZERO
0000344c: PUSH2 0x3459
0000344f: JUMPI
00003450: RETURNDATASIZE
00003451: PUSH1 0x00
00003453: DUP1
00003454: RETURNDATACOPY
00003455: RETURNDATASIZE
00003456: PUSH1 0x00
00003458: REVERT
00003459: JUMPDEST
0000345a: POP
0000345b: POP
0000345c: POP
0000345d: POP
0000345e: POP
0000345f: POP
00003460: POP
00003461: POP
00003462: POP
00003463: POP
00003464: JUMP
00003465: JUMPDEST
00003466: PUSH1 0x00
00003468: SLOAD
00003469: PUSH2 0x0100
0000346c: SWAP1
0000346d: DIV
0000346e: PUSH1 0xff
00003470: AND
00003471: PUSH2 0x348c
00003474: JUMPI
00003475: PUSH1 0x40
00003477: MLOAD
00003478: PUSH3 0x461bcd
0000347c: PUSH1 0xe5
0000347e: SHL
0000347f: DUP2
00003480: MSTORE
00003481: PUSH1 0x04
00003483: ADD
00003484: PUSH2 0x0a36
00003487: SWAP1
00003488: PUSH2 0x4c3f
0000348b: JUMP
0000348c: JUMPDEST
0000348d: PUSH2 0x3494
00003490: PUSH2 0x3e74
00003493: JUMP
00003494: JUMPDEST
00003495: PUSH2 0x349d
00003498: DUP4
00003499: PUSH2 0x3ea3
0000349c: JUMP
0000349d: JUMPDEST
0000349e: PUSH1 0xd1
000034a0: SLOAD
000034a1: ISZERO
000034a2: DUP1
000034a3: ISZERO
000034a4: PUSH2 0x34ad
000034a7: JUMPI
000034a8: POP
000034a9: PUSH1 0xd2
000034ab: SLOAD
000034ac: ISZERO
000034ad: JUMPDEST
000034ae: PUSH2 0x3505
000034b1: JUMPI
000034b2: PUSH1 0x40
000034b4: MLOAD
000034b5: PUSH3 0x461bcd
000034b9: PUSH1 0xe5
000034bb: SHL
000034bc: DUP2
000034bd: MSTORE
000034be: PUSH1 0x20
000034c0: PUSH1 0x04
000034c2: DUP3
000034c3: ADD
000034c4: MSTORE
000034c5: PUSH1 0x23
000034c7: PUSH1 0x24
000034c9: DUP3
000034ca: ADD
000034cb: MSTORE
000034cc: PUSH32 0x6d61726b6574206d6179206f6e6c7920626520696e697469616c697a6564206f
000034ed: PUSH1 0x44
000034ef: DUP3
000034f0: ADD
000034f1: MSTORE
000034f2: PUSH3 0x6e6365
000034f6: PUSH1 0xe8
000034f8: SHL
000034f9: PUSH1 0x64
000034fb: DUP3
000034fc: ADD
000034fd: MSTORE
000034fe: PUSH1 0x84
00003500: ADD
00003501: PUSH2 0x0a36
00003504: JUMP
00003505: JUMPDEST
00003506: PUSH1 0xcf
00003508: DUP9
00003509: SWAP1
0000350a: SSTORE
0000350b: DUP8
0000350c: PUSH2 0x3570
0000350f: JUMPI
00003510: PUSH1 0x40
00003512: MLOAD
00003513: PUSH3 0x461bcd
00003517: PUSH1 0xe5
00003519: SHL
0000351a: DUP2
0000351b: MSTORE
0000351c: PUSH1 0x20
0000351e: PUSH1 0x04
00003520: DUP3
00003521: ADD
00003522: MSTORE
00003523: PUSH1 0x30
00003525: PUSH1 0x24
00003527: DUP3
00003528: ADD
00003529: MSTORE
0000352a: PUSH32 0x696e697469616c2065786368616e67652072617465206d757374206265206772
0000354b: PUSH1 0x44
0000354d: DUP3
0000354e: ADD
0000354f: MSTORE
00003550: PUSH16 0x32b0ba32b9103a3430b7103d32b93797
00003561: PUSH1 0x81
00003563: SHL
00003564: PUSH1 0x64
00003566: DUP3
00003567: ADD
00003568: MSTORE
00003569: PUSH1 0x84
0000356b: ADD
0000356c: PUSH2 0x0a36
0000356f: JUMP
00003570: JUMPDEST
00003571: PUSH2 0x3579
00003574: DUP11
00003575: PUSH2 0x3eca
00003578: JUMP
00003579: JUMPDEST
0000357a: PUSH2 0x3581
0000357d: PUSH2 0x1e72
00003580: JUMP
00003581: JUMPDEST
00003582: PUSH1 0xd1
00003584: SSTORE
00003585: PUSH8 0x0de0b6b3a7640000
0000358e: PUSH1 0xd2
00003590: SSTORE
00003591: PUSH2 0x3599
00003594: DUP10
00003595: PUSH2 0x3773
00003598: JUMP
00003599: JUMPDEST
0000359a: PUSH2 0x35a2
0000359d: DUP2
0000359e: PUSH2 0x2799
000035a1: JUMP
000035a2: JUMPDEST
000035a3: PUSH1 0xca
000035a5: PUSH2 0x35ae
000035a8: DUP9
000035a9: DUP3
000035aa: PUSH2 0x4cda
000035ad: JUMP
000035ae: JUMPDEST
000035af: POP
000035b0: PUSH1 0xcb
000035b2: PUSH2 0x35bb
000035b5: DUP8
000035b6: DUP3
000035b7: PUSH2 0x4cda
000035ba: JUMP
000035bb: JUMPDEST
000035bc: POP
000035bd: PUSH1 0xcc
000035bf: DUP1
000035c0: SLOAD
000035c1: PUSH1 0xff
000035c3: NOT
000035c4: AND
000035c5: PUSH1 0xff
000035c7: DUP8
000035c8: AND
000035c9: OR
000035ca: SWAP1
000035cb: SSTORE
000035cc: DUP2
000035cd: MLOAD
000035ce: PUSH2 0x35d6
000035d1: SWAP1
000035d2: PUSH2 0x3070
000035d5: JUMP
000035d6: JUMPDEST
000035d7: PUSH2 0x35e3
000035da: DUP3
000035db: PUSH1 0x20
000035dd: ADD
000035de: MLOAD
000035df: PUSH2 0x254b
000035e2: JUMP
000035e3: JUMPDEST
000035e4: PUSH7 0xb1a2bc2ec50000
000035ec: PUSH1 0xda
000035ee: SSTORE
000035ef: PUSH1 0xc9
000035f1: DUP1
000035f2: SLOAD
000035f3: PUSH2 0x0100
000035f6: PUSH1 0x01
000035f8: PUSH1 0xa8
000035fa: SHL
000035fb: SUB
000035fc: NOT
000035fd: AND
000035fe: PUSH2 0x0100
00003601: PUSH1 0x01
00003603: PUSH1 0x01
00003605: PUSH1 0xa0
00003607: SHL
00003608: SUB
00003609: DUP15
0000360a: DUP2
0000360b: AND
0000360c: DUP3
0000360d: MUL
0000360e: SWAP3
0000360f: SWAP1
00003610: SWAP3
00003611: OR
00003612: SWAP3
00003613: DUP4
00003614: SWAP1
00003615: SSTORE
00003616: PUSH1 0x40
00003618: DUP1
00003619: MLOAD
0000361a: PUSH4 0x18160ddd
0000361f: PUSH1 0xe0
00003621: SHL
00003622: DUP2
00003623: MSTORE
00003624: SWAP1
00003625: MLOAD
00003626: SWAP2
00003627: SWAP1
00003628: SWAP4
00003629: DIV
0000362a: SWAP1
0000362b: SWAP2
0000362c: AND
0000362d: SWAP2
0000362e: PUSH4 0x18160ddd
00003633: SWAP2
00003634: PUSH1 0x04
00003636: DUP1
00003637: DUP4
00003638: ADD
00003639: SWAP3
0000363a: PUSH1 0x20
0000363c: SWAP3
0000363d: SWAP2
0000363e: SWAP1
0000363f: DUP3
00003640: SWAP1
00003641: SUB
00003642: ADD
00003643: DUP2
00003644: DUP7
00003645: GAS
00003646: STATICCALL
00003647: ISZERO
00003648: DUP1
00003649: ISZERO
0000364a: PUSH2 0x3657
0000364d: JUMPI
0000364e: RETURNDATASIZE
0000364f: PUSH1 0x00
00003651: DUP1
00003652: RETURNDATACOPY
00003653: RETURNDATASIZE
00003654: PUSH1 0x00
00003656: REVERT
00003657: JUMPDEST
00003658: POP
00003659: POP
0000365a: POP
0000365b: POP
0000365c: PUSH1 0x40
0000365e: MLOAD
0000365f: RETURNDATASIZE
00003660: PUSH1 0x1f
00003662: NOT
00003663: PUSH1 0x1f
00003665: DUP3
00003666: ADD
00003667: AND
00003668: DUP3
00003669: ADD
0000366a: DUP1
0000366b: PUSH1 0x40
0000366d: MSTORE
0000366e: POP
0000366f: DUP2
00003670: ADD
00003671: SWAP1
00003672: PUSH2 0x367b
00003675: SWAP2
00003676: SWAP1
00003677: PUSH2 0x4ac3
0000367a: JUMP
0000367b: JUMPDEST
0000367c: POP
0000367d: PUSH1 0xc9
0000367f: DUP1
00003680: SLOAD
00003681: PUSH1 0xff
00003683: NOT
00003684: AND
00003685: PUSH1 0x01
00003687: OR
00003688: SWAP1
00003689: SSTORE
0000368a: PUSH2 0x2deb
0000368d: DUP5
0000368e: PUSH2 0x31d9
00003691: JUMP
00003692: JUMPDEST
00003693: PUSH1 0xc9
00003695: SLOAD
00003696: PUSH1 0xff
00003698: AND
00003699: PUSH2 0x36b4
0000369c: JUMPI
0000369d: PUSH1 0x40
0000369f: MLOAD
000036a0: PUSH3 0x461bcd
000036a4: PUSH1 0xe5
000036a6: SHL
000036a7: DUP2
000036a8: MSTORE
000036a9: PUSH1 0x04
000036ab: ADD
000036ac: PUSH2 0x0a36
000036af: SWAP1
000036b0: PUSH2 0x4a9f
000036b3: JUMP
000036b4: JUMPDEST
000036b5: PUSH1 0xc9
000036b7: DUP1
000036b8: SLOAD
000036b9: PUSH1 0xff
000036bb: NOT
000036bc: AND
000036bd: SWAP1
000036be: SSTORE
000036bf: PUSH2 0x36c6
000036c2: PUSH2 0x1976
000036c5: JUMP
000036c6: JUMPDEST
000036c7: POP
000036c8: PUSH1 0x00
000036ca: DUP3
000036cb: PUSH1 0x01
000036cd: PUSH1 0x01
000036cf: PUSH1 0xa0
000036d1: SHL
000036d2: SUB
000036d3: AND
000036d4: PUSH4 0xa6afed95
000036d9: PUSH1 0x40
000036db: MLOAD
000036dc: DUP2
000036dd: PUSH4 0xffffffff
000036e2: AND
000036e3: PUSH1 0xe0
000036e5: SHL
000036e6: DUP2
000036e7: MSTORE
000036e8: PUSH1 0x04
000036ea: ADD
000036eb: PUSH1 0x20
000036ed: PUSH1 0x40
000036ef: MLOAD
000036f0: DUP1
000036f1: DUP4
000036f2: SUB
000036f3: DUP2
000036f4: PUSH1 0x00
000036f6: DUP8
000036f7: GAS
000036f8: CALL
000036f9: ISZERO
000036fa: DUP1
000036fb: ISZERO
000036fc: PUSH2 0x3709
000036ff: JUMPI
00003700: RETURNDATASIZE
00003701: PUSH1 0x00
00003703: DUP1
00003704: RETURNDATACOPY
00003705: RETURNDATASIZE
00003706: PUSH1 0x00
00003708: REVERT
00003709: JUMPDEST
0000370a: POP
0000370b: POP
0000370c: POP
0000370d: POP
0000370e: PUSH1 0x40
00003710: MLOAD
00003711: RETURNDATASIZE
00003712: PUSH1 0x1f
00003714: NOT
00003715: PUSH1 0x1f
00003717: DUP3
00003718: ADD
00003719: AND
0000371a: DUP3
0000371b: ADD
0000371c: DUP1
0000371d: PUSH1 0x40
0000371f: MSTORE
00003720: POP
00003721: DUP2
00003722: ADD
00003723: SWAP1
00003724: PUSH2 0x372d
00003727: SWAP2
00003728: SWAP1
00003729: PUSH2 0x4ac3
0000372c: JUMP
0000372d: JUMPDEST
0000372e: SWAP1
0000372f: POP
00003730: DUP1
00003731: ISZERO
00003732: PUSH2 0x3751
00003735: JUMPI
00003736: PUSH1 0x40
00003738: MLOAD
00003739: PUSH4 0x3eea49b7
0000373e: PUSH1 0xe1
00003740: SHL
00003741: DUP2
00003742: MSTORE
00003743: PUSH1 0x04
00003745: DUP2
00003746: ADD
00003747: DUP3
00003748: SWAP1
00003749: MSTORE
0000374a: PUSH1 0x24
0000374c: ADD
0000374d: PUSH2 0x0a36
00003750: JUMP
00003751: JUMPDEST
00003752: PUSH2 0x375e
00003755: DUP7
00003756: DUP7
00003757: DUP7
00003758: DUP7
00003759: DUP7
0000375a: PUSH2 0x3fd5
0000375d: JUMP
0000375e: JUMPDEST
0000375f: POP
00003760: POP
00003761: PUSH1 0xc9
00003763: DUP1
00003764: SLOAD
00003765: PUSH1 0xff
00003767: NOT
00003768: AND
00003769: PUSH1 0x01
0000376b: OR
0000376c: SWAP1
0000376d: SSTORE
0000376e: POP
0000376f: POP
00003770: POP
00003771: POP
00003772: JUMP
00003773: JUMPDEST
00003774: PUSH1 0x00
00003776: PUSH2 0x377d
00003779: PUSH2 0x1e72
0000377c: JUMP
0000377d: JUMPDEST
0000377e: PUSH1 0xd1
00003780: SLOAD
00003781: EQ
00003782: PUSH2 0x379e
00003785: JUMPI
00003786: PUSH1 0x40
00003788: MLOAD
00003789: PUSH4 0x0be2a5cb
0000378e: PUSH1 0xe1
00003790: SHL
00003791: DUP2
00003792: MSTORE
00003793: PUSH1 0x04
00003795: ADD
00003796: PUSH1 0x40
00003798: MLOAD
00003799: DUP1
0000379a: SWAP2
0000379b: SUB
0000379c: SWAP1
0000379d: REVERT
0000379e: JUMPDEST
0000379f: PUSH1 0xce
000037a1: PUSH1 0x00
000037a3: SWAP1
000037a4: SLOAD
000037a5: SWAP1
000037a6: PUSH2 0x0100
000037a9: EXP
000037aa: SWAP1
000037ab: DIV
000037ac: PUSH1 0x01
000037ae: PUSH1 0x01
000037b0: PUSH1 0xa0
000037b2: SHL
000037b3: SUB
000037b4: AND
000037b5: SWAP1
000037b6: POP
000037b7: DUP2
000037b8: PUSH1 0x01
000037ba: PUSH1 0x01
000037bc: PUSH1 0xa0
000037be: SHL
000037bf: SUB
000037c0: AND
000037c1: PUSH4 0x2191f92a
000037c6: PUSH1 0x40
000037c8: MLOAD
000037c9: DUP2
000037ca: PUSH4 0xffffffff
000037cf: AND
000037d0: PUSH1 0xe0
000037d2: SHL
000037d3: DUP2
000037d4: MSTORE
000037d5: PUSH1 0x04
000037d7: ADD
000037d8: PUSH1 0x20
000037da: PUSH1 0x40
000037dc: MLOAD
000037dd: DUP1
000037de: DUP4
000037df: SUB
000037e0: DUP2
000037e1: DUP7
000037e2: GAS
000037e3: STATICCALL
000037e4: ISZERO
000037e5: DUP1
000037e6: ISZERO
000037e7: PUSH2 0x37f4
000037ea: JUMPI
000037eb: RETURNDATASIZE
000037ec: PUSH1 0x00
000037ee: DUP1
000037ef: RETURNDATACOPY
000037f0: RETURNDATASIZE
000037f1: PUSH1 0x00
000037f3: REVERT
000037f4: JUMPDEST
000037f5: POP
000037f6: POP
000037f7: POP
000037f8: POP
000037f9: PUSH1 0x40
000037fb: MLOAD
000037fc: RETURNDATASIZE
000037fd: PUSH1 0x1f
000037ff: NOT
00003800: PUSH1 0x1f
00003802: DUP3
00003803: ADD
00003804: AND
00003805: DUP3
00003806: ADD
00003807: DUP1
00003808: PUSH1 0x40
0000380a: MSTORE
0000380b: POP
0000380c: DUP2
0000380d: ADD
0000380e: SWAP1
0000380f: PUSH2 0x3818
00003812: SWAP2
00003813: SWAP1
00003814: PUSH2 0x4bb9
00003817: JUMP
00003818: JUMPDEST
00003819: PUSH2 0x3864
0000381c: JUMPI
0000381d: PUSH1 0x40
0000381f: MLOAD
00003820: PUSH3 0x461bcd
00003824: PUSH1 0xe5
00003826: SHL
00003827: DUP2
00003828: MSTORE
00003829: PUSH1 0x20
0000382b: PUSH1 0x04
0000382d: DUP3
0000382e: ADD
0000382f: MSTORE
00003830: PUSH1 0x1c
00003832: PUSH1 0x24
00003834: DUP3
00003835: ADD
00003836: MSTORE
00003837: PUSH32 0x6d61726b6572206d6574686f642072657475726e65642066616c736500000000
00003858: PUSH1 0x44
0000385a: DUP3
0000385b: ADD
0000385c: MSTORE
0000385d: PUSH1 0x64
0000385f: ADD
00003860: PUSH2 0x0a36
00003863: JUMP
00003864: JUMPDEST
00003865: PUSH1 0xce
00003867: DUP1
00003868: SLOAD
00003869: PUSH1 0x01
0000386b: PUSH1 0x01
0000386d: PUSH1 0xa0
0000386f: SHL
00003870: SUB
00003871: NOT
00003872: AND
00003873: PUSH1 0x01
00003875: PUSH1 0x01
00003877: PUSH1 0xa0
00003879: SHL
0000387a: SUB
0000387b: DUP5
0000387c: DUP2
0000387d: AND
0000387e: SWAP2
0000387f: DUP3
00003880: OR
00003881: SWAP1
00003882: SWAP3
00003883: SSTORE
00003884: PUSH1 0x40
00003886: MLOAD
00003887: SWAP1
00003888: SWAP2
00003889: DUP4
0000388a: AND
0000388b: SWAP1
0000388c: PUSH32 0xedffc32e068c7c95dfd4bdfd5c4d939a084d6b11c4199eac8436ed234d72f926
000038ad: SWAP1
000038ae: PUSH1 0x00
000038b0: SWAP1
000038b1: LOG3
000038b2: POP
000038b3: POP
000038b4: JUMP
000038b5: JUMPDEST
000038b6: PUSH1 0x40
000038b8: DUP1
000038b9: MLOAD
000038ba: PUSH1 0x20
000038bc: DUP2
000038bd: ADD
000038be: SWAP1
000038bf: SWAP2
000038c0: MSTORE
000038c1: PUSH1 0x00
000038c3: DUP2
000038c4: MSTORE
000038c5: PUSH1 0x40
000038c7: MLOAD
000038c8: DUP1
000038c9: PUSH1 0x20
000038cb: ADD
000038cc: PUSH1 0x40
000038ce: MSTORE
000038cf: DUP1
000038d0: PUSH2 0x38dd
000038d3: DUP6
000038d4: PUSH1 0x00
000038d6: ADD
000038d7: MLOAD
000038d8: DUP6
000038d9: PUSH2 0x4463
000038dc: JUMP
000038dd: JUMPDEST
000038de: SWAP1
000038df: MSTORE
000038e0: SWAP4
000038e1: SWAP3
000038e2: POP
000038e3: POP
000038e4: POP
000038e5: JUMP
000038e6: JUMPDEST
000038e7: PUSH1 0x00
000038e9: DUP1
000038ea: PUSH2 0x38f3
000038ed: DUP6
000038ee: DUP6
000038ef: PUSH2 0x38b5
000038f2: JUMP
000038f3: JUMPDEST
000038f4: SWAP1
000038f5: POP
000038f6: PUSH2 0x268a
000038f9: PUSH2 0x3901
000038fc: DUP3
000038fd: PUSH2 0x3de3
00003900: JUMP
00003901: JUMPDEST
00003902: DUP5
00003903: PUSH2 0x446f
00003906: JUMP
00003907: JUMPDEST
00003908: PUSH1 0xcd
0000390a: SLOAD
0000390b: PUSH1 0x40
0000390d: MLOAD
0000390e: PUSH4 0x037883e5
00003913: PUSH1 0xe3
00003915: SHL
00003916: DUP2
00003917: MSTORE
00003918: ADDRESS
00003919: PUSH1 0x04
0000391b: DUP3
0000391c: ADD
0000391d: MSTORE
0000391e: PUSH1 0x01
00003920: PUSH1 0x01
00003922: PUSH1 0xa0
00003924: SHL
00003925: SUB
00003926: DUP7
00003927: DUP2
00003928: AND
00003929: PUSH1 0x24
0000392b: DUP4
0000392c: ADD
0000392d: MSTORE
0000392e: DUP6
0000392f: DUP2
00003930: AND
00003931: PUSH1 0x44
00003933: DUP4
00003934: ADD
00003935: MSTORE
00003936: DUP5
00003937: DUP2
00003938: AND
00003939: PUSH1 0x64
0000393b: DUP4
0000393c: ADD
0000393d: MSTORE
0000393e: SWAP1
0000393f: SWAP2
00003940: AND
00003941: SWAP1
00003942: PUSH4 0x1bc41f28
00003947: SWAP1
00003948: PUSH1 0x84
0000394a: ADD
0000394b: PUSH1 0x00
0000394d: PUSH1 0x40
0000394f: MLOAD
00003950: DUP1
00003951: DUP4
00003952: SUB
00003953: DUP2
00003954: PUSH1 0x00
00003956: DUP8
00003957: DUP1
00003958: EXTCODESIZE
00003959: ISZERO
0000395a: DUP1
0000395b: ISZERO
0000395c: PUSH2 0x3964
0000395f: JUMPI
00003960: PUSH1 0x00
00003962: DUP1
00003963: REVERT
00003964: JUMPDEST
00003965: POP
00003966: GAS
00003967: CALL
00003968: ISZERO
00003969: DUP1
0000396a: ISZERO
0000396b: PUSH2 0x3978
0000396e: JUMPI
0000396f: RETURNDATASIZE
00003970: PUSH1 0x00
00003972: DUP1
00003973: RETURNDATACOPY
00003974: RETURNDATASIZE
00003975: PUSH1 0x00
00003977: REVERT
00003978: JUMPDEST
00003979: POP
0000397a: POP
0000397b: POP
0000397c: POP
0000397d: DUP3
0000397e: PUSH1 0x01
00003980: PUSH1 0x01
00003982: PUSH1 0xa0
00003984: SHL
00003985: SUB
00003986: AND
00003987: DUP3
00003988: PUSH1 0x01
0000398a: PUSH1 0x01
0000398c: PUSH1 0xa0
0000398e: SHL
0000398f: SUB
00003990: AND
00003991: SUB
00003992: PUSH2 0x39ae
00003995: JUMPI
00003996: PUSH1 0x40
00003998: MLOAD
00003999: PUSH4 0x3a946267
0000399e: PUSH1 0xe1
000039a0: SHL
000039a1: DUP2
000039a2: MSTORE
000039a3: PUSH1 0x04
000039a5: ADD
000039a6: PUSH1 0x40
000039a8: MLOAD
000039a9: DUP1
000039aa: SWAP2
000039ab: SUB
000039ac: SWAP1
000039ad: REVERT
000039ae: JUMPDEST
000039af: PUSH1 0xcd
000039b1: SLOAD
000039b2: PUSH1 0x40
000039b4: DUP1
000039b5: MLOAD
000039b6: PUSH4 0x4ada90af
000039bb: PUSH1 0xe0
000039bd: SHL
000039be: DUP2
000039bf: MSTORE
000039c0: SWAP1
000039c1: MLOAD
000039c2: PUSH1 0x00
000039c4: SWAP3
000039c5: PUSH1 0x01
000039c7: PUSH1 0x01
000039c9: PUSH1 0xa0
000039cb: SHL
000039cc: SUB
000039cd: AND
000039ce: SWAP2
000039cf: PUSH4 0x4ada90af
000039d4: SWAP2
000039d5: PUSH1 0x04
000039d7: DUP1
000039d8: DUP4
000039d9: ADD
000039da: SWAP3
000039db: PUSH1 0x20
000039dd: SWAP3
000039de: SWAP2
000039df: SWAP1
000039e0: DUP3
000039e1: SWAP1
000039e2: SUB
000039e3: ADD
000039e4: DUP2
000039e5: DUP7
000039e6: GAS
000039e7: STATICCALL
000039e8: ISZERO
000039e9: DUP1
000039ea: ISZERO
000039eb: PUSH2 0x39f8
000039ee: JUMPI
000039ef: RETURNDATASIZE
000039f0: PUSH1 0x00
000039f2: DUP1
000039f3: RETURNDATACOPY
000039f4: RETURNDATASIZE
000039f5: PUSH1 0x00
000039f7: REVERT
000039f8: JUMPDEST
000039f9: POP
000039fa: POP
000039fb: POP
000039fc: POP
000039fd: PUSH1 0x40
000039ff: MLOAD
00003a00: RETURNDATASIZE
00003a01: PUSH1 0x1f
00003a03: NOT
00003a04: PUSH1 0x1f
00003a06: DUP3
00003a07: ADD
00003a08: AND
00003a09: DUP3
00003a0a: ADD
00003a0b: DUP1
00003a0c: PUSH1 0x40
00003a0e: MSTORE
00003a0f: POP
00003a10: DUP2
00003a11: ADD
00003a12: SWAP1
00003a13: PUSH2 0x3a1c
00003a16: SWAP2
00003a17: SWAP1
00003a18: PUSH2 0x4ac3
00003a1b: JUMP
00003a1c: JUMPDEST
00003a1d: SWAP1
00003a1e: POP
00003a1f: PUSH1 0x00
00003a21: PUSH2 0x3a3a
00003a24: DUP4
00003a25: PUSH1 0x40
00003a27: MLOAD
00003a28: DUP1
00003a29: PUSH1 0x20
00003a2b: ADD
00003a2c: PUSH1 0x40
00003a2e: MSTORE
00003a2f: DUP1
00003a30: PUSH1 0xda
00003a32: SLOAD
00003a33: DUP2
00003a34: MSTORE
00003a35: POP
00003a36: PUSH2 0x3dc0
00003a39: JUMP
00003a3a: JUMPDEST
00003a3b: SWAP1
00003a3c: POP
00003a3d: PUSH1 0x00
00003a3f: PUSH2 0x3a56
00003a42: DUP3
00003a43: PUSH1 0x40
00003a45: MLOAD
00003a46: DUP1
00003a47: PUSH1 0x20
00003a49: ADD
00003a4a: PUSH1 0x40
00003a4c: MSTORE
00003a4d: DUP1
00003a4e: DUP7
00003a4f: DUP2
00003a50: MSTORE
00003a51: POP
00003a52: PUSH2 0x3da2
00003a55: JUMP
00003a56: JUMPDEST
00003a57: SWAP1
00003a58: POP
00003a59: PUSH1 0x00
00003a5b: PUSH2 0x3a64
00003a5e: DUP3
00003a5f: DUP7
00003a60: PUSH2 0x4b05
00003a63: JUMP
00003a64: JUMPDEST
00003a65: SWAP1
00003a66: POP
00003a67: PUSH1 0x00
00003a69: PUSH1 0x40
00003a6b: MLOAD
00003a6c: DUP1
00003a6d: PUSH1 0x20
00003a6f: ADD
00003a70: PUSH1 0x40
00003a72: MSTORE
00003a73: DUP1
00003a74: PUSH2 0x3a7b
00003a77: PUSH2 0x261e
00003a7a: JUMP
00003a7b: JUMPDEST
00003a7c: SWAP1
00003a7d: MSTORE
00003a7e: SWAP1
00003a7f: POP
00003a80: PUSH1 0x00
00003a82: PUSH2 0x3a8b
00003a85: DUP3
00003a86: DUP6
00003a87: PUSH2 0x3022
00003a8a: JUMP
00003a8b: JUMPDEST
00003a8c: SWAP1
00003a8d: POP
00003a8e: DUP4
00003a8f: PUSH1 0xd5
00003a91: SLOAD
00003a92: PUSH2 0x3a9b
00003a95: SWAP2
00003a96: SWAP1
00003a97: PUSH2 0x4b05
00003a9a: JUMP
00003a9b: JUMPDEST
00003a9c: PUSH1 0xd5
00003a9e: SSTORE
00003a9f: PUSH1 0x01
00003aa1: PUSH1 0x01
00003aa3: PUSH1 0xa0
00003aa5: SHL
00003aa6: SUB
00003aa7: DUP9
00003aa8: AND
00003aa9: PUSH1 0x00
00003aab: SWAP1
00003aac: DUP2
00003aad: MSTORE
00003aae: PUSH1 0xd7
00003ab0: PUSH1 0x20
00003ab2: MSTORE
00003ab3: PUSH1 0x40
00003ab5: SWAP1
00003ab6: KECCAK256
00003ab7: SLOAD
00003ab8: PUSH2 0x3ac2
00003abb: SWAP1
00003abc: DUP9
00003abd: SWAP1
00003abe: PUSH2 0x4b05
00003ac1: JUMP
00003ac2: JUMPDEST
00003ac3: PUSH1 0x01
00003ac5: PUSH1 0x01
00003ac7: PUSH1 0xa0
00003ac9: SHL
00003aca: SUB
00003acb: DUP1
00003acc: DUP11
00003acd: AND
00003ace: PUSH1 0x00
00003ad0: SWAP1
00003ad1: DUP2
00003ad2: MSTORE
00003ad3: PUSH1 0xd7
00003ad5: PUSH1 0x20
00003ad7: MSTORE
00003ad8: PUSH1 0x40
00003ada: DUP1
00003adb: DUP3
00003adc: KECCAK256
00003add: SWAP4
00003ade: SWAP1
00003adf: SWAP4
00003ae0: SSTORE
00003ae1: SWAP1
00003ae2: DUP12
00003ae3: AND
00003ae4: DUP2
00003ae5: MSTORE
00003ae6: KECCAK256
00003ae7: SLOAD
00003ae8: PUSH2 0x3af2
00003aeb: SWAP1
00003aec: DUP5
00003aed: SWAP1
00003aee: PUSH2 0x4af2
00003af1: JUMP
00003af2: JUMPDEST
00003af3: PUSH1 0x01
00003af5: PUSH1 0x01
00003af7: PUSH1 0xa0
00003af9: SHL
00003afa: SUB
00003afb: DUP1
00003afc: DUP12
00003afd: AND
00003afe: PUSH1 0x00
00003b00: SWAP1
00003b01: DUP2
00003b02: MSTORE
00003b03: PUSH1 0xd7
00003b05: PUSH1 0x20
00003b07: MSTORE
00003b08: PUSH1 0x40
00003b0a: SWAP1
00003b0b: KECCAK256
00003b0c: SWAP2
00003b0d: SWAP1
00003b0e: SWAP2
00003b0f: SSTORE
00003b10: PUSH1 0xcc
00003b12: SLOAD
00003b13: PUSH2 0x3b23
00003b16: SWAP2
00003b17: PUSH2 0x0100
00003b1a: SWAP1
00003b1b: SWAP2
00003b1c: DIV
00003b1d: AND
00003b1e: DUP3
00003b1f: PUSH2 0x3cb1
00003b22: JUMP
00003b23: JUMPDEST
00003b24: PUSH1 0xcc
00003b26: SLOAD
00003b27: PUSH1 0xcd
00003b29: SLOAD
00003b2a: PUSH1 0xc9
00003b2c: SLOAD
00003b2d: PUSH1 0x40
00003b2f: MLOAD
00003b30: PUSH4 0x05bebb3b
00003b35: PUSH1 0xe2
00003b37: SHL
00003b38: DUP2
00003b39: MSTORE
00003b3a: PUSH1 0x01
00003b3c: PUSH1 0x01
00003b3e: PUSH1 0xa0
00003b40: SHL
00003b41: SUB
00003b42: PUSH2 0x0100
00003b45: SWAP5
00003b46: DUP6
00003b47: SWAP1
00003b48: DIV
00003b49: DUP2
00003b4a: AND
00003b4b: SWAP5
00003b4c: PUSH4 0x16faecec
00003b51: SWAP5
00003b52: PUSH2 0x3b6b
00003b55: SWAP5
00003b56: SWAP1
00003b57: DUP4
00003b58: AND
00003b59: SWAP4
00003b5a: SWAP2
00003b5b: SWAP1
00003b5c: DIV
00003b5d: SWAP1
00003b5e: SWAP2
00003b5f: AND
00003b60: SWAP1
00003b61: PUSH1 0x01
00003b63: SWAP1
00003b64: PUSH1 0x04
00003b66: ADD
00003b67: PUSH2 0x4b18
00003b6a: JUMP
00003b6b: JUMPDEST
00003b6c: PUSH1 0x00
00003b6e: PUSH1 0x40
00003b70: MLOAD
00003b71: DUP1
00003b72: DUP4
00003b73: SUB
00003b74: DUP2
00003b75: PUSH1 0x00
00003b77: DUP8
00003b78: DUP1
00003b79: EXTCODESIZE
00003b7a: ISZERO
00003b7b: DUP1
00003b7c: ISZERO
00003b7d: PUSH2 0x3b85
00003b80: JUMPI
00003b81: PUSH1 0x00
00003b83: DUP1
00003b84: REVERT
00003b85: JUMPDEST
00003b86: POP
00003b87: GAS
00003b88: CALL
00003b89: ISZERO
00003b8a: DUP1
00003b8b: ISZERO
00003b8c: PUSH2 0x3b99
00003b8f: JUMPI
00003b90: RETURNDATASIZE
00003b91: PUSH1 0x00
00003b93: DUP1
00003b94: RETURNDATACOPY
00003b95: RETURNDATASIZE
00003b96: PUSH1 0x00
00003b98: REVERT
00003b99: JUMPDEST
00003b9a: POP
00003b9b: POP
00003b9c: POP
00003b9d: POP
00003b9e: DUP9
00003b9f: PUSH1 0x01
00003ba1: PUSH1 0x01
00003ba3: PUSH1 0xa0
00003ba5: SHL
00003ba6: SUB
00003ba7: AND
00003ba8: DUP9
00003ba9: PUSH1 0x01
00003bab: PUSH1 0x01
00003bad: PUSH1 0xa0
00003baf: SHL
00003bb0: SUB
00003bb1: AND
00003bb2: PUSH1 0x00
00003bb4: DUP1
00003bb5: MLOAD
00003bb6: PUSH1 0x20
00003bb8: PUSH2 0x4dff
00003bbb: DUP4
00003bbc: CODECOPY
00003bbd: DUP2
00003bbe: MLOAD
00003bbf: SWAP2
00003bc0: MSTORE
00003bc1: DUP6
00003bc2: PUSH1 0x40
00003bc4: MLOAD
00003bc5: PUSH2 0x3bd0
00003bc8: SWAP2
00003bc9: DUP2
00003bca: MSTORE
00003bcb: PUSH1 0x20
00003bcd: ADD
00003bce: SWAP1
00003bcf: JUMP
00003bd0: JUMPDEST
00003bd1: PUSH1 0x40
00003bd3: MLOAD
00003bd4: DUP1
00003bd5: SWAP2
00003bd6: SUB
00003bd7: SWAP1
00003bd8: LOG3
00003bd9: PUSH1 0xcc
00003bdb: SLOAD
00003bdc: PUSH1 0x40
00003bde: MLOAD
00003bdf: PUSH1 0x01
00003be1: PUSH1 0x01
00003be3: PUSH1 0xa0
00003be5: SHL
00003be6: SUB
00003be7: PUSH2 0x0100
00003bea: SWAP1
00003beb: SWAP3
00003bec: DIV
00003bed: DUP3
00003bee: AND
00003bef: SWAP2
00003bf0: DUP11
00003bf1: AND
00003bf2: SWAP1
00003bf3: PUSH32 0x3ac0548d62d3fa3c9a817cd33899b9acacd57e8958ebe51bc7d9a79f26a8a5db
00003c14: SWAP1
00003c15: PUSH2 0x3c21
00003c18: SWAP1
00003c19: DUP6
00003c1a: DUP2
00003c1b: MSTORE
00003c1c: PUSH1 0x20
00003c1e: ADD
00003c1f: SWAP1
00003c20: JUMP
00003c21: JUMPDEST
00003c22: PUSH1 0x40
00003c24: MLOAD
00003c25: DUP1
00003c26: SWAP2
00003c27: SUB
00003c28: SWAP1
00003c29: LOG3
00003c2a: PUSH1 0xcd
00003c2c: SLOAD
00003c2d: PUSH1 0x40
00003c2f: MLOAD
00003c30: PUSH4 0x6d35bf91
00003c35: PUSH1 0xe0
00003c37: SHL
00003c38: DUP2
00003c39: MSTORE
00003c3a: ADDRESS
00003c3b: PUSH1 0x04
00003c3d: DUP3
00003c3e: ADD
00003c3f: MSTORE
00003c40: PUSH1 0x01
00003c42: PUSH1 0x01
00003c44: PUSH1 0xa0
00003c46: SHL
00003c47: SUB
00003c48: DUP13
00003c49: DUP2
00003c4a: AND
00003c4b: PUSH1 0x24
00003c4d: DUP4
00003c4e: ADD
00003c4f: MSTORE
00003c50: DUP12
00003c51: DUP2
00003c52: AND
00003c53: PUSH1 0x44
00003c55: DUP4
00003c56: ADD
00003c57: MSTORE
00003c58: DUP11
00003c59: DUP2
00003c5a: AND
00003c5b: PUSH1 0x64
00003c5d: DUP4
00003c5e: ADD
00003c5f: MSTORE
00003c60: PUSH1 0x84
00003c62: DUP3
00003c63: ADD
00003c64: DUP11
00003c65: SWAP1
00003c66: MSTORE
00003c67: SWAP1
00003c68: SWAP2
00003c69: AND
00003c6a: SWAP1
00003c6b: PUSH4 0x6d35bf91
00003c70: SWAP1
00003c71: PUSH1 0xa4
00003c73: ADD
00003c74: PUSH1 0x00
00003c76: PUSH1 0x40
00003c78: MLOAD
00003c79: DUP1
00003c7a: DUP4
00003c7b: SUB
00003c7c: DUP2
00003c7d: PUSH1 0x00
00003c7f: DUP8
00003c80: DUP1
00003c81: EXTCODESIZE
00003c82: ISZERO
00003c83: DUP1
00003c84: ISZERO
00003c85: PUSH2 0x3c8d
00003c88: JUMPI
00003c89: PUSH1 0x00
00003c8b: DUP1
00003c8c: REVERT
00003c8d: JUMPDEST
00003c8e: POP
00003c8f: GAS
00003c90: CALL
00003c91: ISZERO
00003c92: DUP1
00003c93: ISZERO
00003c94: PUSH2 0x3ca1
00003c97: JUMPI
00003c98: RETURNDATASIZE
00003c99: PUSH1 0x00
00003c9b: DUP1
00003c9c: RETURNDATACOPY
00003c9d: RETURNDATASIZE
00003c9e: PUSH1 0x00
00003ca0: REVERT
00003ca1: JUMPDEST
00003ca2: POP
00003ca3: POP
00003ca4: POP
00003ca5: POP
00003ca6: POP
00003ca7: POP
00003ca8: POP
00003ca9: POP
00003caa: POP
00003cab: POP
00003cac: POP
00003cad: POP
00003cae: POP
00003caf: POP
00003cb0: JUMP
00003cb1: JUMPDEST
00003cb2: PUSH1 0xc9
00003cb4: SLOAD
00003cb5: PUSH2 0x0100
00003cb8: SWAP1
00003cb9: DIV
00003cba: PUSH1 0x01
00003cbc: PUSH1 0x01
00003cbe: PUSH1 0xa0
00003cc0: SHL
00003cc1: SUB
00003cc2: AND
00003cc3: PUSH2 0x26f6
00003cc6: DUP2
00003cc7: DUP5
00003cc8: DUP5
00003cc9: PUSH2 0x2693
00003ccc: JUMP
00003ccd: JUMPDEST
00003cce: PUSH1 0x00
00003cd0: PUSH2 0x3d22
00003cd3: DUP3
00003cd4: PUSH1 0x40
00003cd6: MLOAD
00003cd7: DUP1
00003cd8: PUSH1 0x40
00003cda: ADD
00003cdb: PUSH1 0x40
00003cdd: MSTORE
00003cde: DUP1
00003cdf: PUSH1 0x20
00003ce1: DUP2
00003ce2: MSTORE
00003ce3: PUSH1 0x20
00003ce5: ADD
00003ce6: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
00003d07: DUP2
00003d08: MSTORE
00003d09: POP
00003d0a: DUP6
00003d0b: PUSH1 0x01
00003d0d: PUSH1 0x01
00003d0f: PUSH1 0xa0
00003d11: SHL
00003d12: SUB
00003d13: AND
00003d14: PUSH2 0x447b
00003d17: SWAP1
00003d18: SWAP3
00003d19: SWAP2
00003d1a: SWAP1
00003d1b: PUSH4 0xffffffff
00003d20: AND
00003d21: JUMP
00003d22: JUMPDEST
00003d23: SWAP1
00003d24: POP
00003d25: DUP1
00003d26: MLOAD
00003d27: PUSH1 0x00
00003d29: EQ
00003d2a: DUP1
00003d2b: PUSH2 0x3d43
00003d2e: JUMPI
00003d2f: POP
00003d30: DUP1
00003d31: DUP1
00003d32: PUSH1 0x20
00003d34: ADD
00003d35: SWAP1
00003d36: MLOAD
00003d37: DUP2
00003d38: ADD
00003d39: SWAP1
00003d3a: PUSH2 0x3d43
00003d3d: SWAP2
00003d3e: SWAP1
00003d3f: PUSH2 0x4bb9
00003d42: JUMP
00003d43: JUMPDEST
00003d44: PUSH2 0x26f6
00003d47: JUMPI
00003d48: PUSH1 0x40
00003d4a: MLOAD
00003d4b: PUSH3 0x461bcd
00003d4f: PUSH1 0xe5
00003d51: SHL
00003d52: DUP2
00003d53: MSTORE
00003d54: PUSH1 0x20
00003d56: PUSH1 0x04
00003d58: DUP3
00003d59: ADD
00003d5a: MSTORE
00003d5b: PUSH1 0x2a
00003d5d: PUSH1 0x24
00003d5f: DUP3
00003d60: ADD
00003d61: MSTORE
00003d62: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e
00003d83: PUSH1 0x44
00003d85: DUP3
00003d86: ADD
00003d87: MSTORE
00003d88: PUSH10 0x1bdd081cdd58d8d95959
00003d93: PUSH1 0xb2
00003d95: SHL
00003d96: PUSH1 0x64
00003d98: DUP3
00003d99: ADD
00003d9a: MSTORE
00003d9b: PUSH1 0x84
00003d9d: ADD
00003d9e: PUSH2 0x0a36
00003da1: JUMP
00003da2: JUMPDEST
00003da3: PUSH1 0x00
00003da5: PUSH2 0x10eb
00003da8: PUSH2 0x3db9
00003dab: DUP5
00003dac: PUSH8 0x0de0b6b3a7640000
00003db5: PUSH2 0x4463
00003db8: JUMP
00003db9: JUMPDEST
00003dba: DUP4
00003dbb: MLOAD
00003dbc: PUSH2 0x448a
00003dbf: JUMP
00003dc0: JUMPDEST
00003dc1: PUSH1 0x00
00003dc3: PUSH8 0x0de0b6b3a7640000
00003dcc: PUSH2 0x3dd9
00003dcf: DUP5
00003dd0: DUP5
00003dd1: PUSH1 0x00
00003dd3: ADD
00003dd4: MLOAD
00003dd5: PUSH2 0x4463
00003dd8: JUMP
00003dd9: JUMPDEST
00003dda: PUSH2 0x10eb
00003ddd: SWAP2
00003dde: SWAP1
00003ddf: PUSH2 0x4b73
00003de2: JUMP
00003de3: JUMPDEST
00003de4: DUP1
00003de5: MLOAD
00003de6: PUSH1 0x00
00003de8: SWAP1
00003de9: PUSH2 0x0ae6
00003dec: SWAP1
00003ded: PUSH8 0x0de0b6b3a7640000
00003df6: SWAP1
00003df7: PUSH2 0x4b73
00003dfa: JUMP
00003dfb: JUMPDEST
00003dfc: PUSH2 0x3e1c
00003dff: DUP5
00003e00: PUSH4 0x23b872dd
00003e05: PUSH1 0xe0
00003e07: SHL
00003e08: DUP6
00003e09: DUP6
00003e0a: DUP6
00003e0b: PUSH1 0x40
00003e0d: MLOAD
00003e0e: PUSH1 0x24
00003e10: ADD
00003e11: PUSH2 0x26bf
00003e14: SWAP4
00003e15: SWAP3
00003e16: SWAP2
00003e17: SWAP1
00003e18: PUSH2 0x4c1b
00003e1b: JUMP
00003e1c: JUMPDEST
00003e1d: POP
00003e1e: POP
00003e1f: POP
00003e20: POP
00003e21: JUMP
00003e22: JUMPDEST
00003e23: PUSH1 0x33
00003e25: DUP1
00003e26: SLOAD
00003e27: PUSH1 0x01
00003e29: PUSH1 0x01
00003e2b: PUSH1 0xa0
00003e2d: SHL
00003e2e: SUB
00003e2f: DUP4
00003e30: DUP2
00003e31: AND
00003e32: PUSH1 0x01
00003e34: PUSH1 0x01
00003e36: PUSH1 0xa0
00003e38: SHL
00003e39: SUB
00003e3a: NOT
00003e3b: DUP4
00003e3c: AND
00003e3d: DUP2
00003e3e: OR
00003e3f: SWAP1
00003e40: SWAP4
00003e41: SSTORE
00003e42: PUSH1 0x40
00003e44: MLOAD
00003e45: SWAP2
00003e46: AND
00003e47: SWAP2
00003e48: SWAP1
00003e49: DUP3
00003e4a: SWAP1
00003e4b: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00003e6c: SWAP1
00003e6d: PUSH1 0x00
00003e6f: SWAP1
00003e70: LOG3
00003e71: POP
00003e72: POP
00003e73: JUMP
00003e74: JUMPDEST
00003e75: PUSH1 0x00
00003e77: SLOAD
00003e78: PUSH2 0x0100
00003e7b: SWAP1
00003e7c: DIV
00003e7d: PUSH1 0xff
00003e7f: AND
00003e80: PUSH2 0x3e9b
00003e83: JUMPI
00003e84: PUSH1 0x40
00003e86: MLOAD
00003e87: PUSH3 0x461bcd
00003e8b: PUSH1 0xe5
00003e8d: SHL
00003e8e: DUP2
00003e8f: MSTORE
00003e90: PUSH1 0x04
00003e92: ADD
00003e93: PUSH2 0x0a36
00003e96: SWAP1
00003e97: PUSH2 0x4c3f
00003e9a: JUMP
00003e9b: JUMPDEST
00003e9c: PUSH2 0x13c2
00003e9f: PUSH2 0x4496
00003ea2: JUMP
00003ea3: JUMPDEST
00003ea4: PUSH1 0x00
00003ea6: SLOAD
00003ea7: PUSH2 0x0100
00003eaa: SWAP1
00003eab: DIV
00003eac: PUSH1 0xff
00003eae: AND
00003eaf: PUSH2 0x0af4
00003eb2: JUMPI
00003eb3: PUSH1 0x40
00003eb5: MLOAD
00003eb6: PUSH3 0x461bcd
00003eba: PUSH1 0xe5
00003ebc: SHL
00003ebd: DUP2
00003ebe: MSTORE
00003ebf: PUSH1 0x04
00003ec1: ADD
00003ec2: PUSH2 0x0a36
00003ec5: SWAP1
00003ec6: PUSH2 0x4c3f
00003ec9: JUMP
00003eca: JUMPDEST
00003ecb: PUSH1 0xcd
00003ecd: SLOAD
00003ece: PUSH1 0x40
00003ed0: DUP1
00003ed1: MLOAD
00003ed2: PUSH3 0x3f1ee9
00003ed6: PUSH1 0xe1
00003ed8: SHL
00003ed9: DUP2
00003eda: MSTORE
00003edb: SWAP1
00003edc: MLOAD
00003edd: PUSH1 0x01
00003edf: PUSH1 0x01
00003ee1: PUSH1 0xa0
00003ee3: SHL
00003ee4: SUB
00003ee5: SWAP3
00003ee6: DUP4
00003ee7: AND
00003ee8: SWAP3
00003ee9: DUP5
00003eea: AND
00003eeb: SWAP2
00003eec: PUSH3 0x7e3dd2
00003ef0: SWAP2
00003ef1: PUSH1 0x04
00003ef3: DUP1
00003ef4: DUP4
00003ef5: ADD
00003ef6: SWAP3
00003ef7: PUSH1 0x20
00003ef9: SWAP3
00003efa: SWAP2
00003efb: SWAP1
00003efc: DUP3
00003efd: SWAP1
00003efe: SUB
00003eff: ADD
00003f00: DUP2
00003f01: DUP7
00003f02: GAS
00003f03: STATICCALL
00003f04: ISZERO
00003f05: DUP1
00003f06: ISZERO
00003f07: PUSH2 0x3f14
00003f0a: JUMPI
00003f0b: RETURNDATASIZE
00003f0c: PUSH1 0x00
00003f0e: DUP1
00003f0f: RETURNDATACOPY
00003f10: RETURNDATASIZE
00003f11: PUSH1 0x00
00003f13: REVERT
00003f14: JUMPDEST
00003f15: POP
00003f16: POP
00003f17: POP
00003f18: POP
00003f19: PUSH1 0x40
00003f1b: MLOAD
00003f1c: RETURNDATASIZE
00003f1d: PUSH1 0x1f
00003f1f: NOT
00003f20: PUSH1 0x1f
00003f22: DUP3
00003f23: ADD
00003f24: AND
00003f25: DUP3
00003f26: ADD
00003f27: DUP1
00003f28: PUSH1 0x40
00003f2a: MSTORE
00003f2b: POP
00003f2c: DUP2
00003f2d: ADD
00003f2e: SWAP1
00003f2f: PUSH2 0x3f38
00003f32: SWAP2
00003f33: SWAP1
00003f34: PUSH2 0x4bb9
00003f37: JUMP
00003f38: JUMPDEST
00003f39: PUSH2 0x3f84
00003f3c: JUMPI
00003f3d: PUSH1 0x40
00003f3f: MLOAD
00003f40: PUSH3 0x461bcd
00003f44: PUSH1 0xe5
00003f46: SHL
00003f47: DUP2
00003f48: MSTORE
00003f49: PUSH1 0x20
00003f4b: PUSH1 0x04
00003f4d: DUP3
00003f4e: ADD
00003f4f: MSTORE
00003f50: PUSH1 0x1c
00003f52: PUSH1 0x24
00003f54: DUP3
00003f55: ADD
00003f56: MSTORE
00003f57: PUSH32 0x6d61726b6572206d6574686f642072657475726e65642066616c736500000000
00003f78: PUSH1 0x44
00003f7a: DUP3
00003f7b: ADD
00003f7c: MSTORE
00003f7d: PUSH1 0x64
00003f7f: ADD
00003f80: PUSH2 0x0a36
00003f83: JUMP
00003f84: JUMPDEST
00003f85: PUSH1 0xcd
00003f87: DUP1
00003f88: SLOAD
00003f89: PUSH1 0x01
00003f8b: PUSH1 0x01
00003f8d: PUSH1 0xa0
00003f8f: SHL
00003f90: SUB
00003f91: NOT
00003f92: AND
00003f93: PUSH1 0x01
00003f95: PUSH1 0x01
00003f97: PUSH1 0xa0
00003f99: SHL
00003f9a: SUB
00003f9b: DUP5
00003f9c: DUP2
00003f9d: AND
00003f9e: SWAP2
00003f9f: DUP3
00003fa0: OR
00003fa1: SWAP1
00003fa2: SWAP3
00003fa3: SSTORE
00003fa4: PUSH1 0x40
00003fa6: MLOAD
00003fa7: SWAP1
00003fa8: SWAP2
00003fa9: DUP4
00003faa: AND
00003fab: SWAP1
00003fac: PUSH32 0x7ac369dbd14fa5ea3f473ed67cc9d598964a77501540ba6751eb0b3decf5870d
00003fcd: SWAP1
00003fce: PUSH1 0x00
00003fd0: SWAP1
00003fd1: LOG3
00003fd2: POP
00003fd3: POP
00003fd4: JUMP
00003fd5: JUMPDEST
00003fd6: PUSH1 0xcd
00003fd8: SLOAD
00003fd9: PUSH1 0x40
00003fdb: MLOAD
00003fdc: PUSH4 0xe89d51ad
00003fe1: PUSH1 0xe0
00003fe3: SHL
00003fe4: DUP2
00003fe5: MSTORE
00003fe6: ADDRESS
00003fe7: PUSH1 0x04
00003fe9: DUP3
00003fea: ADD
00003feb: MSTORE
00003fec: PUSH1 0x01
00003fee: PUSH1 0x01
00003ff0: PUSH1 0xa0
00003ff2: SHL
00003ff3: SUB
00003ff4: DUP5
00003ff5: DUP2
00003ff6: AND
00003ff7: PUSH1 0x24
00003ff9: DUP4
00003ffa: ADD
00003ffb: MSTORE
00003ffc: DUP7
00003ffd: DUP2
00003ffe: AND
00003fff: PUSH1 0x44
00004001: DUP4
00004002: ADD
00004003: MSTORE
00004004: PUSH1 0x64
00004006: DUP3
00004007: ADD
00004008: DUP7
00004009: SWAP1
0000400a: MSTORE
0000400b: DUP4
0000400c: ISZERO
0000400d: ISZERO
0000400e: PUSH1 0x84
00004010: DUP4
00004011: ADD
00004012: MSTORE
00004013: SWAP1
00004014: SWAP2
00004015: AND
00004016: SWAP1
00004017: PUSH4 0xe89d51ad
0000401c: SWAP1
0000401d: PUSH1 0xa4
0000401f: ADD
00004020: PUSH1 0x00
00004022: PUSH1 0x40
00004024: MLOAD
00004025: DUP1
00004026: DUP4
00004027: SUB
00004028: DUP2
00004029: PUSH1 0x00
0000402b: DUP8
0000402c: DUP1
0000402d: EXTCODESIZE
0000402e: ISZERO
0000402f: DUP1
00004030: ISZERO
00004031: PUSH2 0x4039
00004034: JUMPI
00004035: PUSH1 0x00
00004037: DUP1
00004038: REVERT
00004039: JUMPDEST
0000403a: POP
0000403b: GAS
0000403c: CALL
0000403d: ISZERO
0000403e: DUP1
0000403f: ISZERO
00004040: PUSH2 0x404d
00004043: JUMPI
00004044: RETURNDATASIZE
00004045: PUSH1 0x00
00004047: DUP1
00004048: RETURNDATACOPY
00004049: RETURNDATASIZE
0000404a: PUSH1 0x00
0000404c: REVERT
0000404d: JUMPDEST
0000404e: POP
0000404f: POP
00004050: POP
00004051: POP
00004052: PUSH2 0x4059
00004055: PUSH2 0x1e72
00004058: JUMP
00004059: JUMPDEST
0000405a: PUSH1 0xd1
0000405c: SLOAD
0000405d: EQ
0000405e: PUSH2 0x407a
00004061: JUMPI
00004062: PUSH1 0x40
00004064: MLOAD
00004065: PUSH4 0x80965b1b
0000406a: PUSH1 0xe0
0000406c: SHL
0000406d: DUP2
0000406e: MSTORE
0000406f: PUSH1 0x04
00004071: ADD
00004072: PUSH1 0x40
00004074: MLOAD
00004075: DUP1
00004076: SWAP2
00004077: SUB
00004078: SWAP1
00004079: REVERT
0000407a: JUMPDEST
0000407b: PUSH2 0x4082
0000407e: PUSH2 0x1e72
00004081: JUMP
00004082: JUMPDEST
00004083: DUP3
00004084: PUSH1 0x01
00004086: PUSH1 0x01
00004088: PUSH1 0xa0
0000408a: SHL
0000408b: SUB
0000408c: AND
0000408d: PUSH4 0x6c540baf
00004092: PUSH1 0x40
00004094: MLOAD
00004095: DUP2
00004096: PUSH4 0xffffffff
0000409b: AND
0000409c: PUSH1 0xe0
0000409e: SHL
0000409f: DUP2
000040a0: MSTORE
000040a1: PUSH1 0x04
000040a3: ADD
000040a4: PUSH1 0x20
000040a6: PUSH1 0x40
000040a8: MLOAD
000040a9: DUP1
000040aa: DUP4
000040ab: SUB
000040ac: DUP2
000040ad: DUP7
000040ae: GAS
000040af: STATICCALL
000040b0: ISZERO
000040b1: DUP1
000040b2: ISZERO
000040b3: PUSH2 0x40c0
000040b6: JUMPI
000040b7: RETURNDATASIZE
000040b8: PUSH1 0x00
000040ba: DUP1
000040bb: RETURNDATACOPY
000040bc: RETURNDATASIZE
000040bd: PUSH1 0x00
000040bf: REVERT
000040c0: JUMPDEST
000040c1: POP
000040c2: POP
000040c3: POP
000040c4: POP
000040c5: PUSH1 0x40
000040c7: MLOAD
000040c8: RETURNDATASIZE
000040c9: PUSH1 0x1f
000040cb: NOT
000040cc: PUSH1 0x1f
000040ce: DUP3
000040cf: ADD
000040d0: AND
000040d1: DUP3
000040d2: ADD
000040d3: DUP1
000040d4: PUSH1 0x40
000040d6: MSTORE
000040d7: POP
000040d8: DUP2
000040d9: ADD
000040da: SWAP1
000040db: PUSH2 0x40e4
000040de: SWAP2
000040df: SWAP1
000040e0: PUSH2 0x4ac3
000040e3: JUMP
000040e4: JUMPDEST
000040e5: EQ
000040e6: PUSH2 0x4102
000040e9: JUMPI
000040ea: PUSH1 0x40
000040ec: MLOAD
000040ed: PUSH4 0x1046f38d
000040f2: PUSH1 0xe3
000040f4: SHL
000040f5: DUP2
000040f6: MSTORE
000040f7: PUSH1 0x04
000040f9: ADD
000040fa: PUSH1 0x40
000040fc: MLOAD
000040fd: DUP1
000040fe: SWAP2
000040ff: SUB
00004100: SWAP1
00004101: REVERT
00004102: JUMPDEST
00004103: DUP5
00004104: PUSH1 0x01
00004106: PUSH1 0x01
00004108: PUSH1 0xa0
0000410a: SHL
0000410b: SUB
0000410c: AND
0000410d: DUP5
0000410e: PUSH1 0x01
00004110: PUSH1 0x01
00004112: PUSH1 0xa0
00004114: SHL
00004115: SUB
00004116: AND
00004117: SUB
00004118: PUSH2 0x4134
0000411b: JUMPI
0000411c: PUSH1 0x40
0000411e: MLOAD
0000411f: PUSH4 0x1bd1a621
00004124: PUSH1 0xe2
00004126: SHL
00004127: DUP2
00004128: MSTORE
00004129: PUSH1 0x04
0000412b: ADD
0000412c: PUSH1 0x40
0000412e: MLOAD
0000412f: DUP1
00004130: SWAP2
00004131: SUB
00004132: SWAP1
00004133: REVERT
00004134: JUMPDEST
00004135: DUP3
00004136: PUSH1 0x00
00004138: SUB
00004139: PUSH2 0x4155
0000413c: JUMPI
0000413d: PUSH1 0x40
0000413f: MLOAD
00004140: PUSH4 0xd29da7ef
00004145: PUSH1 0xe0
00004147: SHL
00004148: DUP2
00004149: MSTORE
0000414a: PUSH1 0x04
0000414c: ADD
0000414d: PUSH1 0x40
0000414f: MLOAD
00004150: DUP1
00004151: SWAP2
00004152: SUB
00004153: SWAP1
00004154: REVERT
00004155: JUMPDEST
00004156: PUSH1 0x00
00004158: NOT
00004159: DUP4
0000415a: SUB
0000415b: PUSH2 0x4177
0000415e: JUMPI
0000415f: PUSH1 0x40
00004161: MLOAD
00004162: PUSH4 0x5982c5bb
00004167: PUSH1 0xe1
00004169: SHL
0000416a: DUP2
0000416b: MSTORE
0000416c: PUSH1 0x04
0000416e: ADD
0000416f: PUSH1 0x40
00004171: MLOAD
00004172: DUP1
00004173: SWAP2
00004174: SUB
00004175: SWAP1
00004176: REVERT
00004177: JUMPDEST
00004178: PUSH1 0x00
0000417a: PUSH2 0x4184
0000417d: DUP7
0000417e: DUP7
0000417f: DUP7
00004180: PUSH2 0x2370
00004183: JUMP
00004184: JUMPDEST
00004185: PUSH1 0xcd
00004187: SLOAD
00004188: PUSH1 0x40
0000418a: MLOAD
0000418b: PUSH4 0xc488847b
00004190: PUSH1 0xe0
00004192: SHL
00004193: DUP2
00004194: MSTORE
00004195: SWAP2
00004196: SWAP3
00004197: POP
00004198: PUSH1 0x00
0000419a: SWAP2
0000419b: DUP3
0000419c: SWAP2
0000419d: PUSH1 0x01
0000419f: PUSH1 0x01
000041a1: PUSH1 0xa0
000041a3: SHL
000041a4: SUB
000041a5: AND
000041a6: SWAP1
000041a7: PUSH4 0xc488847b
000041ac: SWAP1
000041ad: PUSH2 0x41be
000041b0: SWAP1
000041b1: ADDRESS
000041b2: SWAP1
000041b3: DUP10
000041b4: SWAP1
000041b5: DUP9
000041b6: SWAP1
000041b7: PUSH1 0x04
000041b9: ADD
000041ba: PUSH2 0x4c1b
000041bd: JUMP
000041be: JUMPDEST
000041bf: PUSH1 0x40
000041c1: DUP1
000041c2: MLOAD
000041c3: DUP1
000041c4: DUP4
000041c5: SUB
000041c6: DUP2
000041c7: DUP7
000041c8: GAS
000041c9: STATICCALL
000041ca: ISZERO
000041cb: DUP1
000041cc: ISZERO
000041cd: PUSH2 0x41da
000041d0: JUMPI
000041d1: RETURNDATASIZE
000041d2: PUSH1 0x00
000041d4: DUP1
000041d5: RETURNDATACOPY
000041d6: RETURNDATASIZE
000041d7: PUSH1 0x00
000041d9: REVERT
000041da: JUMPDEST
000041db: POP
000041dc: POP
000041dd: POP
000041de: POP
000041df: PUSH1 0x40
000041e1: MLOAD
000041e2: RETURNDATASIZE
000041e3: PUSH1 0x1f
000041e5: NOT
000041e6: PUSH1 0x1f
000041e8: DUP3
000041e9: ADD
000041ea: AND
000041eb: DUP3
000041ec: ADD
000041ed: DUP1
000041ee: PUSH1 0x40
000041f0: MSTORE
000041f1: POP
000041f2: DUP2
000041f3: ADD
000041f4: SWAP1
000041f5: PUSH2 0x41fe
000041f8: SWAP2
000041f9: SWAP1
000041fa: PUSH2 0x4d9a
000041fd: JUMP
000041fe: JUMPDEST
000041ff: SWAP2
00004200: POP
00004201: SWAP2
00004202: POP
00004203: PUSH1 0x00
00004205: DUP3
00004206: EQ
00004207: PUSH2 0x426e
0000420a: JUMPI
0000420b: PUSH1 0x40
0000420d: MLOAD
0000420e: PUSH3 0x461bcd
00004212: PUSH1 0xe5
00004214: SHL
00004215: DUP2
00004216: MSTORE
00004217: PUSH1 0x20
00004219: PUSH1 0x04
0000421b: DUP3
0000421c: ADD
0000421d: MSTORE
0000421e: PUSH1 0x33
00004220: PUSH1 0x24
00004222: DUP3
00004223: ADD
00004224: MSTORE
00004225: PUSH32 0x4c49515549444154455f434f4d5054524f4c4c45525f43414c43554c4154455f
00004246: PUSH1 0x44
00004248: DUP3
00004249: ADD
0000424a: MSTORE
0000424b: PUSH19 0x105353d5539517d4d152569157d19052531151
0000425f: PUSH1 0x6a
00004261: SHL
00004262: PUSH1 0x64
00004264: DUP3
00004265: ADD
00004266: MSTORE
00004267: PUSH1 0x84
00004269: ADD
0000426a: PUSH2 0x0a36
0000426d: JUMP
0000426e: JUMPDEST
0000426f: PUSH1 0x40
00004271: MLOAD
00004272: PUSH4 0x70a08231
00004277: PUSH1 0xe0
00004279: SHL
0000427a: DUP2
0000427b: MSTORE
0000427c: PUSH1 0x01
0000427e: PUSH1 0x01
00004280: PUSH1 0xa0
00004282: SHL
00004283: SUB
00004284: DUP9
00004285: DUP2
00004286: AND
00004287: PUSH1 0x04
00004289: DUP4
0000428a: ADD
0000428b: MSTORE
0000428c: DUP3
0000428d: SWAP2
0000428e: SWAP1
0000428f: DUP8
00004290: AND
00004291: SWAP1
00004292: PUSH4 0x70a08231
00004297: SWAP1
00004298: PUSH1 0x24
0000429a: ADD
0000429b: PUSH1 0x20
0000429d: PUSH1 0x40
0000429f: MLOAD
000042a0: DUP1
000042a1: DUP4
000042a2: SUB
000042a3: DUP2
000042a4: DUP7
000042a5: GAS
000042a6: STATICCALL
000042a7: ISZERO
000042a8: DUP1
000042a9: ISZERO
000042aa: PUSH2 0x42b7
000042ad: JUMPI
000042ae: RETURNDATASIZE
000042af: PUSH1 0x00
000042b1: DUP1
000042b2: RETURNDATACOPY
000042b3: RETURNDATASIZE
000042b4: PUSH1 0x00
000042b6: REVERT
000042b7: JUMPDEST
000042b8: POP
000042b9: POP
000042ba: POP
000042bb: POP
000042bc: PUSH1 0x40
000042be: MLOAD
000042bf: RETURNDATASIZE
000042c0: PUSH1 0x1f
000042c2: NOT
000042c3: PUSH1 0x1f
000042c5: DUP3
000042c6: ADD
000042c7: AND
000042c8: DUP3
000042c9: ADD
000042ca: DUP1
000042cb: PUSH1 0x40
000042cd: MSTORE
000042ce: POP
000042cf: DUP2
000042d0: ADD
000042d1: SWAP1
000042d2: PUSH2 0x42db
000042d5: SWAP2
000042d6: SWAP1
000042d7: PUSH2 0x4ac3
000042da: JUMP
000042db: JUMPDEST
000042dc: LT
000042dd: ISZERO
000042de: PUSH2 0x4329
000042e1: JUMPI
000042e2: PUSH1 0x40
000042e4: MLOAD
000042e5: PUSH3 0x461bcd
000042e9: PUSH1 0xe5
000042eb: SHL
000042ec: DUP2
000042ed: MSTORE
000042ee: PUSH1 0x20
000042f0: PUSH1 0x04
000042f2: DUP3
000042f3: ADD
000042f4: MSTORE
000042f5: PUSH1 0x18
000042f7: PUSH1 0x24
000042f9: DUP3
000042fa: ADD
000042fb: MSTORE
000042fc: PUSH32 0x4c49515549444154455f5345495a455f544f4f5f4d5543480000000000000000
0000431d: PUSH1 0x44
0000431f: DUP3
00004320: ADD
00004321: MSTORE
00004322: PUSH1 0x64
00004324: ADD
00004325: PUSH2 0x0a36
00004328: JUMP
00004329: JUMPDEST
0000432a: ADDRESS
0000432b: PUSH1 0x01
0000432d: PUSH1 0x01
0000432f: PUSH1 0xa0
00004331: SHL
00004332: SUB
00004333: DUP7
00004334: AND
00004335: SUB
00004336: PUSH2 0x434a
00004339: JUMPI
0000433a: PUSH2 0x4345
0000433d: ADDRESS
0000433e: DUP10
0000433f: DUP10
00004340: DUP5
00004341: PUSH2 0x3907
00004344: JUMP
00004345: JUMPDEST
00004346: PUSH2 0x43ad
00004349: JUMP
0000434a: JUMPDEST
0000434b: PUSH1 0x40
0000434d: MLOAD
0000434e: PUSH4 0xb2a02ff1
00004353: PUSH1 0xe0
00004355: SHL
00004356: DUP2
00004357: MSTORE
00004358: PUSH1 0x01
0000435a: PUSH1 0x01
0000435c: PUSH1 0xa0
0000435e: SHL
0000435f: SUB
00004360: DUP7
00004361: AND
00004362: SWAP1
00004363: PUSH4 0xb2a02ff1
00004368: SWAP1
00004369: PUSH2 0x437a
0000436c: SWAP1
0000436d: DUP12
0000436e: SWAP1
0000436f: DUP12
00004370: SWAP1
00004371: DUP7
00004372: SWAP1
00004373: PUSH1 0x04
00004375: ADD
00004376: PUSH2 0x4c1b
00004379: JUMP
0000437a: JUMPDEST
0000437b: PUSH1 0x00
0000437d: PUSH1 0x40
0000437f: MLOAD
00004380: DUP1
00004381: DUP4
00004382: SUB
00004383: DUP2
00004384: PUSH1 0x00
00004386: DUP8
00004387: DUP1
00004388: EXTCODESIZE
00004389: ISZERO
0000438a: DUP1
0000438b: ISZERO
0000438c: PUSH2 0x4394
0000438f: JUMPI
00004390: PUSH1 0x00
00004392: DUP1
00004393: REVERT
00004394: JUMPDEST
00004395: POP
00004396: GAS
00004397: CALL
00004398: ISZERO
00004399: DUP1
0000439a: ISZERO
0000439b: PUSH2 0x43a8
0000439e: JUMPI
0000439f: RETURNDATASIZE
000043a0: PUSH1 0x00
000043a2: DUP1
000043a3: RETURNDATACOPY
000043a4: RETURNDATASIZE
000043a5: PUSH1 0x00
000043a7: REVERT
000043a8: JUMPDEST
000043a9: POP
000043aa: POP
000043ab: POP
000043ac: POP
000043ad: JUMPDEST
000043ae: DUP5
000043af: PUSH1 0x01
000043b1: PUSH1 0x01
000043b3: PUSH1 0xa0
000043b5: SHL
000043b6: SUB
000043b7: AND
000043b8: DUP8
000043b9: PUSH1 0x01
000043bb: PUSH1 0x01
000043bd: PUSH1 0xa0
000043bf: SHL
000043c0: SUB
000043c1: AND
000043c2: DUP10
000043c3: PUSH1 0x01
000043c5: PUSH1 0x01
000043c7: PUSH1 0xa0
000043c9: SHL
000043ca: SUB
000043cb: AND
000043cc: PUSH32 0x298637f684da70674f26509b10f07ec2fbc77a335ab1e7d6215a4b2484d8bb52
000043ed: DUP7
000043ee: DUP6
000043ef: PUSH1 0x40
000043f1: MLOAD
000043f2: PUSH2 0x4405
000043f5: SWAP3
000043f6: SWAP2
000043f7: SWAP1
000043f8: SWAP2
000043f9: DUP3
000043fa: MSTORE
000043fb: PUSH1 0x20
000043fd: DUP3
000043fe: ADD
000043ff: MSTORE
00004400: PUSH1 0x40
00004402: ADD
00004403: SWAP1
00004404: JUMP
00004405: JUMPDEST
00004406: PUSH1 0x40
00004408: MLOAD
00004409: DUP1
0000440a: SWAP2
0000440b: SUB
0000440c: SWAP1
0000440d: LOG4
0000440e: PUSH1 0xcd
00004410: SLOAD
00004411: PUSH1 0x40
00004413: MLOAD
00004414: PUSH4 0x47ef3b3b
00004419: PUSH1 0xe0
0000441b: SHL
0000441c: DUP2
0000441d: MSTORE
0000441e: ADDRESS
0000441f: PUSH1 0x04
00004421: DUP3
00004422: ADD
00004423: MSTORE
00004424: PUSH1 0x01
00004426: PUSH1 0x01
00004428: PUSH1 0xa0
0000442a: SHL
0000442b: SUB
0000442c: DUP8
0000442d: DUP2
0000442e: AND
0000442f: PUSH1 0x24
00004431: DUP4
00004432: ADD
00004433: MSTORE
00004434: DUP11
00004435: DUP2
00004436: AND
00004437: PUSH1 0x44
00004439: DUP4
0000443a: ADD
0000443b: MSTORE
0000443c: DUP10
0000443d: DUP2
0000443e: AND
0000443f: PUSH1 0x64
00004441: DUP4
00004442: ADD
00004443: MSTORE
00004444: PUSH1 0x84
00004446: DUP3
00004447: ADD
00004448: DUP7
00004449: SWAP1
0000444a: MSTORE
0000444b: PUSH1 0xa4
0000444d: DUP3
0000444e: ADD
0000444f: DUP5
00004450: SWAP1
00004451: MSTORE
00004452: SWAP1
00004453: SWAP2
00004454: AND
00004455: SWAP1
00004456: PUSH4 0x47ef3b3b
0000445b: SWAP1
0000445c: PUSH1 0xc4
0000445e: ADD
0000445f: PUSH2 0x2bc5
00004462: JUMP
00004463: JUMPDEST
00004464: PUSH1 0x00
00004466: PUSH2 0x10eb
00004469: DUP3
0000446a: DUP5
0000446b: PUSH2 0x4b5c
0000446e: JUMP
0000446f: JUMPDEST
00004470: PUSH1 0x00
00004472: PUSH2 0x10eb
00004475: DUP3
00004476: DUP5
00004477: PUSH2 0x4af2
0000447a: JUMP
0000447b: JUMPDEST
0000447c: PUSH1 0x60
0000447e: PUSH2 0x2616
00004481: DUP5
00004482: DUP5
00004483: PUSH1 0x00
00004485: DUP6
00004486: PUSH2 0x44c6
00004489: JUMP
0000448a: JUMPDEST
0000448b: PUSH1 0x00
0000448d: PUSH2 0x10eb
00004490: DUP3
00004491: DUP5
00004492: PUSH2 0x4b73
00004495: JUMP
00004496: JUMPDEST
00004497: PUSH1 0x00
00004499: SLOAD
0000449a: PUSH2 0x0100
0000449d: SWAP1
0000449e: DIV
0000449f: PUSH1 0xff
000044a1: AND
000044a2: PUSH2 0x44bd
000044a5: JUMPI
000044a6: PUSH1 0x40
000044a8: MLOAD
000044a9: PUSH3 0x461bcd
000044ad: PUSH1 0xe5
000044af: SHL
000044b0: DUP2
000044b1: MSTORE
000044b2: PUSH1 0x04
000044b4: ADD
000044b5: PUSH2 0x0a36
000044b8: SWAP1
000044b9: PUSH2 0x4c3f
000044bc: JUMP
000044bd: JUMPDEST
000044be: PUSH2 0x13c2
000044c1: CALLER
000044c2: PUSH2 0x31d9
000044c5: JUMP
000044c6: JUMPDEST
000044c7: PUSH1 0x60
000044c9: DUP3
000044ca: SELFBALANCE
000044cb: LT
000044cc: ISZERO
000044cd: PUSH2 0x4527
000044d0: JUMPI
000044d1: PUSH1 0x40
000044d3: MLOAD
000044d4: PUSH3 0x461bcd
000044d8: PUSH1 0xe5
000044da: SHL
000044db: DUP2
000044dc: MSTORE
000044dd: PUSH1 0x20
000044df: PUSH1 0x04
000044e1: DUP3
000044e2: ADD
000044e3: MSTORE
000044e4: PUSH1 0x26
000044e6: PUSH1 0x24
000044e8: DUP3
000044e9: ADD
000044ea: MSTORE
000044eb: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f
0000450c: PUSH1 0x44
0000450e: DUP3
0000450f: ADD
00004510: MSTORE
00004511: PUSH6 0x1c8818d85b1b
00004518: PUSH1 0xd2
0000451a: SHL
0000451b: PUSH1 0x64
0000451d: DUP3
0000451e: ADD
0000451f: MSTORE
00004520: PUSH1 0x84
00004522: ADD
00004523: PUSH2 0x0a36
00004526: JUMP
00004527: JUMPDEST
00004528: PUSH1 0x00
0000452a: DUP1
0000452b: DUP7
0000452c: PUSH1 0x01
0000452e: PUSH1 0x01
00004530: PUSH1 0xa0
00004532: SHL
00004533: SUB
00004534: AND
00004535: DUP6
00004536: DUP8
00004537: PUSH1 0x40
00004539: MLOAD
0000453a: PUSH2 0x4543
0000453d: SWAP2
0000453e: SWAP1
0000453f: PUSH2 0x4dbe
00004542: JUMP
00004543: JUMPDEST
00004544: PUSH1 0x00
00004546: PUSH1 0x40
00004548: MLOAD
00004549: DUP1
0000454a: DUP4
0000454b: SUB
0000454c: DUP2
0000454d: DUP6
0000454e: DUP8
0000454f: GAS
00004550: CALL
00004551: SWAP3
00004552: POP
00004553: POP
00004554: POP
00004555: RETURNDATASIZE
00004556: DUP1
00004557: PUSH1 0x00
00004559: DUP2
0000455a: EQ
0000455b: PUSH2 0x4580
0000455e: JUMPI
0000455f: PUSH1 0x40
00004561: MLOAD
00004562: SWAP2
00004563: POP
00004564: PUSH1 0x1f
00004566: NOT
00004567: PUSH1 0x3f
00004569: RETURNDATASIZE
0000456a: ADD
0000456b: AND
0000456c: DUP3
0000456d: ADD
0000456e: PUSH1 0x40
00004570: MSTORE
00004571: RETURNDATASIZE
00004572: DUP3
00004573: MSTORE
00004574: RETURNDATASIZE
00004575: PUSH1 0x00
00004577: PUSH1 0x20
00004579: DUP5
0000457a: ADD
0000457b: RETURNDATACOPY
0000457c: PUSH2 0x4585
0000457f: JUMP
00004580: JUMPDEST
00004581: PUSH1 0x60
00004583: SWAP2
00004584: POP
00004585: JUMPDEST
00004586: POP
00004587: SWAP2
00004588: POP
00004589: SWAP2
0000458a: POP
0000458b: PUSH2 0x4596
0000458e: DUP8
0000458f: DUP4
00004590: DUP4
00004591: DUP8
00004592: PUSH2 0x45a1
00004595: JUMP
00004596: JUMPDEST
00004597: SWAP8
00004598: SWAP7
00004599: POP
0000459a: POP
0000459b: POP
0000459c: POP
0000459d: POP
0000459e: POP
0000459f: POP
000045a0: JUMP
000045a1: JUMPDEST
000045a2: PUSH1 0x60
000045a4: DUP4
000045a5: ISZERO
000045a6: PUSH2 0x4610
000045a9: JUMPI
000045aa: DUP3
000045ab: MLOAD
000045ac: PUSH1 0x00
000045ae: SUB
000045af: PUSH2 0x4609
000045b2: JUMPI
000045b3: PUSH1 0x01
000045b5: PUSH1 0x01
000045b7: PUSH1 0xa0
000045b9: SHL
000045ba: SUB
000045bb: DUP6
000045bc: AND
000045bd: EXTCODESIZE
000045be: PUSH2 0x4609
000045c1: JUMPI
000045c2: PUSH1 0x40
000045c4: MLOAD
000045c5: PUSH3 0x461bcd
000045c9: PUSH1 0xe5
000045cb: SHL
000045cc: DUP2
000045cd: MSTORE
000045ce: PUSH1 0x20
000045d0: PUSH1 0x04
000045d2: DUP3
000045d3: ADD
000045d4: MSTORE
000045d5: PUSH1 0x1d
000045d7: PUSH1 0x24
000045d9: DUP3
000045da: ADD
000045db: MSTORE
000045dc: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000
000045fd: PUSH1 0x44
000045ff: DUP3
00004600: ADD
00004601: MSTORE
00004602: PUSH1 0x64
00004604: ADD
00004605: PUSH2 0x0a36
00004608: JUMP
00004609: JUMPDEST
0000460a: POP
0000460b: DUP2
0000460c: PUSH2 0x2616
0000460f: JUMP
00004610: JUMPDEST
00004611: PUSH2 0x2616
00004614: DUP4
00004615: DUP4
00004616: DUP2
00004617: MLOAD
00004618: ISZERO
00004619: PUSH2 0x4625
0000461c: JUMPI
0000461d: DUP2
0000461e: MLOAD
0000461f: DUP1
00004620: DUP4
00004621: PUSH1 0x20
00004623: ADD
00004624: REVERT
00004625: JUMPDEST
00004626: DUP1
00004627: PUSH1 0x40
00004629: MLOAD
0000462a: PUSH3 0x461bcd
0000462e: PUSH1 0xe5
00004630: SHL
00004631: DUP2
00004632: MSTORE
00004633: PUSH1 0x04
00004635: ADD
00004636: PUSH2 0x0a36
00004639: SWAP2
0000463a: SWAP1
0000463b: PUSH2 0x468f
0000463e: JUMP
0000463f: JUMPDEST
00004640: PUSH1 0x00
00004642: JUMPDEST
00004643: DUP4
00004644: DUP2
00004645: LT
00004646: ISZERO
00004647: PUSH2 0x465a
0000464a: JUMPI
0000464b: DUP2
0000464c: DUP2
0000464d: ADD
0000464e: MLOAD
0000464f: DUP4
00004650: DUP3
00004651: ADD
00004652: MSTORE
00004653: PUSH1 0x20
00004655: ADD
00004656: PUSH2 0x4642
00004659: JUMP
0000465a: JUMPDEST
0000465b: POP
0000465c: POP
0000465d: PUSH1 0x00
0000465f: SWAP2
00004660: ADD
00004661: MSTORE
00004662: JUMP
00004663: JUMPDEST
00004664: PUSH1 0x00
00004666: DUP2
00004667: MLOAD
00004668: DUP1
00004669: DUP5
0000466a: MSTORE
0000466b: PUSH2 0x467b
0000466e: DUP2
0000466f: PUSH1 0x20
00004671: DUP7
00004672: ADD
00004673: PUSH1 0x20
00004675: DUP7
00004676: ADD
00004677: PUSH2 0x463f
0000467a: JUMP
0000467b: JUMPDEST
0000467c: PUSH1 0x1f
0000467e: ADD
0000467f: PUSH1 0x1f
00004681: NOT
00004682: AND
00004683: SWAP3
00004684: SWAP1
00004685: SWAP3
00004686: ADD
00004687: PUSH1 0x20
00004689: ADD
0000468a: SWAP3
0000468b: SWAP2
0000468c: POP
0000468d: POP
0000468e: JUMP
0000468f: JUMPDEST
00004690: PUSH1 0x20
00004692: DUP2
00004693: MSTORE
00004694: PUSH1 0x00
00004696: PUSH2 0x10eb
00004699: PUSH1 0x20
0000469b: DUP4
0000469c: ADD
0000469d: DUP5
0000469e: PUSH2 0x4663
000046a1: JUMP
000046a2: JUMPDEST
000046a3: PUSH1 0x00
000046a5: PUSH1 0x20
000046a7: DUP3
000046a8: DUP5
000046a9: SUB
000046aa: SLT
000046ab: ISZERO
000046ac: PUSH2 0x46b4
000046af: JUMPI
000046b0: PUSH1 0x00
000046b2: DUP1
000046b3: REVERT
000046b4: JUMPDEST
000046b5: POP
000046b6: CALLDATALOAD
000046b7: SWAP2
000046b8: SWAP1
000046b9: POP
000046ba: JUMP
000046bb: JUMPDEST
000046bc: PUSH1 0x01
000046be: PUSH1 0x01
000046c0: PUSH1 0xa0
000046c2: SHL
000046c3: SUB
000046c4: DUP2
000046c5: AND
000046c6: DUP2
000046c7: EQ
000046c8: PUSH2 0x0afd
000046cb: JUMPI
000046cc: PUSH1 0x00
000046ce: DUP1
000046cf: REVERT
000046d0: JUMPDEST
000046d1: DUP1
000046d2: CALLDATALOAD
000046d3: PUSH2 0x46db
000046d6: DUP2
000046d7: PUSH2 0x46bb
000046da: JUMP
000046db: JUMPDEST
000046dc: SWAP2
000046dd: SWAP1
000046de: POP
000046df: JUMP
000046e0: JUMPDEST
000046e1: PUSH1 0x00
000046e3: DUP1
000046e4: PUSH1 0x40
000046e6: DUP4
000046e7: DUP6
000046e8: SUB
000046e9: SLT
000046ea: ISZERO
000046eb: PUSH2 0x46f3
000046ee: JUMPI
000046ef: PUSH1 0x00
000046f1: DUP1
000046f2: REVERT
000046f3: JUMPDEST
000046f4: DUP3
000046f5: CALLDATALOAD
000046f6: PUSH2 0x46fe
000046f9: DUP2
000046fa: PUSH2 0x46bb
000046fd: JUMP
000046fe: JUMPDEST
000046ff: SWAP5
00004700: PUSH1 0x20
00004702: SWAP4
00004703: SWAP1
00004704: SWAP4
00004705: ADD
00004706: CALLDATALOAD
00004707: SWAP4
00004708: POP
00004709: POP
0000470a: POP
0000470b: JUMP
0000470c: JUMPDEST
0000470d: PUSH1 0x00
0000470f: PUSH1 0x20
00004711: DUP3
00004712: DUP5
00004713: SUB
00004714: SLT
00004715: ISZERO
00004716: PUSH2 0x471e
00004719: JUMPI
0000471a: PUSH1 0x00
0000471c: DUP1
0000471d: REVERT
0000471e: JUMPDEST
0000471f: DUP2
00004720: CALLDATALOAD
00004721: PUSH2 0x10eb
00004724: DUP2
00004725: PUSH2 0x46bb
00004728: JUMP
00004729: JUMPDEST
0000472a: PUSH1 0x00
0000472c: DUP1
0000472d: PUSH1 0x00
0000472f: PUSH1 0x60
00004731: DUP5
00004732: DUP7
00004733: SUB
00004734: SLT
00004735: ISZERO
00004736: PUSH2 0x473e
00004739: JUMPI
0000473a: PUSH1 0x00
0000473c: DUP1
0000473d: REVERT
0000473e: JUMPDEST
0000473f: DUP4
00004740: CALLDATALOAD
00004741: PUSH2 0x4749
00004744: DUP2
00004745: PUSH2 0x46bb
00004748: JUMP
00004749: JUMPDEST
0000474a: SWAP3
0000474b: POP
0000474c: PUSH1 0x20
0000474e: DUP5
0000474f: ADD
00004750: CALLDATALOAD
00004751: PUSH2 0x4759
00004754: DUP2
00004755: PUSH2 0x46bb
00004758: JUMP
00004759: JUMPDEST
0000475a: SWAP3
0000475b: SWAP6
0000475c: SWAP3
0000475d: SWAP5
0000475e: POP
0000475f: POP
00004760: POP
00004761: PUSH1 0x40
00004763: SWAP2
00004764: SWAP1
00004765: SWAP2
00004766: ADD
00004767: CALLDATALOAD
00004768: SWAP1
00004769: JUMP
0000476a: JUMPDEST
0000476b: PUSH4 0x4e487b71
00004770: PUSH1 0xe0
00004772: SHL
00004773: PUSH1 0x00
00004775: MSTORE
00004776: PUSH1 0x41
00004778: PUSH1 0x04
0000477a: MSTORE
0000477b: PUSH1 0x24
0000477d: PUSH1 0x00
0000477f: REVERT
00004780: JUMPDEST
00004781: PUSH1 0x00
00004783: DUP3
00004784: PUSH1 0x1f
00004786: DUP4
00004787: ADD
00004788: SLT
00004789: PUSH2 0x4791
0000478c: JUMPI
0000478d: PUSH1 0x00
0000478f: DUP1
00004790: REVERT
00004791: JUMPDEST
00004792: DUP2
00004793: CALLDATALOAD
00004794: PUSH8 0xffffffffffffffff
0000479d: DUP1
0000479e: DUP3
0000479f: GT
000047a0: ISZERO
000047a1: PUSH2 0x47ac
000047a4: JUMPI
000047a5: PUSH2 0x47ac
000047a8: PUSH2 0x476a
000047ab: JUMP
000047ac: JUMPDEST
000047ad: PUSH1 0x40
000047af: MLOAD
000047b0: PUSH1 0x1f
000047b2: DUP4
000047b3: ADD
000047b4: PUSH1 0x1f
000047b6: NOT
000047b7: SWAP1
000047b8: DUP2
000047b9: AND
000047ba: PUSH1 0x3f
000047bc: ADD
000047bd: AND
000047be: DUP2
000047bf: ADD
000047c0: SWAP1
000047c1: DUP3
000047c2: DUP3
000047c3: GT
000047c4: DUP2
000047c5: DUP4
000047c6: LT
000047c7: OR
000047c8: ISZERO
000047c9: PUSH2 0x47d4
000047cc: JUMPI
000047cd: PUSH2 0x47d4
000047d0: PUSH2 0x476a
000047d3: JUMP
000047d4: JUMPDEST
000047d5: DUP2
000047d6: PUSH1 0x40
000047d8: MSTORE
000047d9: DUP4
000047da: DUP2
000047db: MSTORE
000047dc: DUP7
000047dd: PUSH1 0x20
000047df: DUP6
000047e0: DUP9
000047e1: ADD
000047e2: ADD
000047e3: GT
000047e4: ISZERO
000047e5: PUSH2 0x47ed
000047e8: JUMPI
000047e9: PUSH1 0x00
000047eb: DUP1
000047ec: REVERT
000047ed: JUMPDEST
000047ee: DUP4
000047ef: PUSH1 0x20
000047f1: DUP8
000047f2: ADD
000047f3: PUSH1 0x20
000047f5: DUP4
000047f6: ADD
000047f7: CALLDATACOPY
000047f8: PUSH1 0x00
000047fa: PUSH1 0x20
000047fc: DUP6
000047fd: DUP4
000047fe: ADD
000047ff: ADD
00004800: MSTORE
00004801: DUP1
00004802: SWAP5
00004803: POP
00004804: POP
00004805: POP
00004806: POP
00004807: POP
00004808: SWAP3
00004809: SWAP2
0000480a: POP
0000480b: POP
0000480c: JUMP
0000480d: JUMPDEST
0000480e: DUP1
0000480f: CALLDATALOAD
00004810: PUSH1 0xff
00004812: DUP2
00004813: AND
00004814: DUP2
00004815: EQ
00004816: PUSH2 0x46db
00004819: JUMPI
0000481a: PUSH1 0x00
0000481c: DUP1
0000481d: REVERT
0000481e: JUMPDEST
0000481f: PUSH1 0x00
00004821: PUSH1 0x40
00004823: DUP3
00004824: DUP5
00004825: SUB
00004826: SLT
00004827: ISZERO
00004828: PUSH2 0x4830
0000482b: JUMPI
0000482c: PUSH1 0x00
0000482e: DUP1
0000482f: REVERT
00004830: JUMPDEST
00004831: PUSH1 0x40
00004833: MLOAD
00004834: PUSH1 0x40
00004836: DUP2
00004837: ADD
00004838: DUP2
00004839: DUP2
0000483a: LT
0000483b: PUSH8 0xffffffffffffffff
00004844: DUP3
00004845: GT
00004846: OR
00004847: ISZERO
00004848: PUSH2 0x4853
0000484b: JUMPI
0000484c: PUSH2 0x4853
0000484f: PUSH2 0x476a
00004852: JUMP
00004853: JUMPDEST
00004854: PUSH1 0x40
00004856: MSTORE
00004857: SWAP1
00004858: POP
00004859: DUP1
0000485a: DUP3
0000485b: CALLDATALOAD
0000485c: PUSH2 0x4864
0000485f: DUP2
00004860: PUSH2 0x46bb
00004863: JUMP
00004864: JUMPDEST
00004865: DUP2
00004866: MSTORE
00004867: PUSH1 0x20
00004869: DUP4
0000486a: ADD
0000486b: CALLDATALOAD
0000486c: PUSH2 0x4874
0000486f: DUP2
00004870: PUSH2 0x46bb
00004873: JUMP
00004874: JUMPDEST
00004875: PUSH1 0x20
00004877: SWAP2
00004878: SWAP1
00004879: SWAP2
0000487a: ADD
0000487b: MSTORE
0000487c: SWAP3
0000487d: SWAP2
0000487e: POP
0000487f: POP
00004880: JUMP
00004881: JUMPDEST
00004882: PUSH1 0x00
00004884: DUP1
00004885: PUSH1 0x00
00004887: DUP1
00004888: PUSH1 0x00
0000488a: DUP1
0000488b: PUSH1 0x00
0000488d: DUP1
0000488e: PUSH1 0x00
00004890: DUP1
00004891: PUSH1 0x00
00004893: PUSH2 0x0180
00004896: DUP13
00004897: DUP15
00004898: SUB
00004899: SLT
0000489a: ISZERO
0000489b: PUSH2 0x48a3
0000489e: JUMPI
0000489f: PUSH1 0x00
000048a1: DUP1
000048a2: REVERT
000048a3: JUMPDEST
000048a4: PUSH2 0x48ac
000048a7: DUP13
000048a8: PUSH2 0x46d0
000048ab: JUMP
000048ac: JUMPDEST
000048ad: SWAP11
000048ae: POP
000048af: PUSH2 0x48ba
000048b2: PUSH1 0x20
000048b4: DUP14
000048b5: ADD
000048b6: PUSH2 0x46d0
000048b9: JUMP
000048ba: JUMPDEST
000048bb: SWAP10
000048bc: POP
000048bd: PUSH2 0x48c8
000048c0: PUSH1 0x40
000048c2: DUP14
000048c3: ADD
000048c4: PUSH2 0x46d0
000048c7: JUMP
000048c8: JUMPDEST
000048c9: SWAP9
000048ca: POP
000048cb: PUSH1 0x60
000048cd: DUP13
000048ce: ADD
000048cf: CALLDATALOAD
000048d0: SWAP8
000048d1: POP
000048d2: PUSH8 0xffffffffffffffff
000048db: DUP1
000048dc: PUSH1 0x80
000048de: DUP15
000048df: ADD
000048e0: CALLDATALOAD
000048e1: GT
000048e2: ISZERO
000048e3: PUSH2 0x48eb
000048e6: JUMPI
000048e7: PUSH1 0x00
000048e9: DUP1
000048ea: REVERT
000048eb: JUMPDEST
000048ec: PUSH2 0x48fb
000048ef: DUP15
000048f0: PUSH1 0x80
000048f2: DUP16
000048f3: ADD
000048f4: CALLDATALOAD
000048f5: DUP16
000048f6: ADD
000048f7: PUSH2 0x4780
000048fa: JUMP
000048fb: JUMPDEST
000048fc: SWAP8
000048fd: POP
000048fe: DUP1
000048ff: PUSH1 0xa0
00004901: DUP15
00004902: ADD
00004903: CALLDATALOAD
00004904: GT
00004905: ISZERO
00004906: PUSH2 0x490e
00004909: JUMPI
0000490a: PUSH1 0x00
0000490c: DUP1
0000490d: REVERT
0000490e: JUMPDEST
0000490f: POP
00004910: PUSH2 0x491f
00004913: DUP14
00004914: PUSH1 0xa0
00004916: DUP15
00004917: ADD
00004918: CALLDATALOAD
00004919: DUP15
0000491a: ADD
0000491b: PUSH2 0x4780
0000491e: JUMP
0000491f: JUMPDEST
00004920: SWAP6
00004921: POP
00004922: PUSH2 0x492d
00004925: PUSH1 0xc0
00004927: DUP14
00004928: ADD
00004929: PUSH2 0x480d
0000492c: JUMP
0000492d: JUMPDEST
0000492e: SWAP5
0000492f: POP
00004930: PUSH2 0x493b
00004933: PUSH1 0xe0
00004935: DUP14
00004936: ADD
00004937: PUSH2 0x46d0
0000493a: JUMP
0000493b: JUMPDEST
0000493c: SWAP4
0000493d: POP
0000493e: PUSH2 0x494a
00004941: PUSH2 0x0100
00004944: DUP14
00004945: ADD
00004946: PUSH2 0x46d0
00004949: JUMP
0000494a: JUMPDEST
0000494b: SWAP3
0000494c: POP
0000494d: PUSH2 0x495a
00004950: DUP14
00004951: PUSH2 0x0120
00004954: DUP15
00004955: ADD
00004956: PUSH2 0x481e
00004959: JUMP
0000495a: JUMPDEST
0000495b: SWAP2
0000495c: POP
0000495d: PUSH2 0x0160
00004960: DUP13
00004961: ADD
00004962: CALLDATALOAD
00004963: SWAP1
00004964: POP
00004965: SWAP3
00004966: SWAP6
00004967: SWAP9
00004968: SWAP12
00004969: POP
0000496a: SWAP3
0000496b: SWAP6
0000496c: SWAP9
0000496d: SWAP12
0000496e: SWAP1
0000496f: SWAP4
00004970: SWAP7
00004971: SWAP10
00004972: POP
00004973: JUMP
00004974: JUMPDEST
00004975: DUP1
00004976: ISZERO
00004977: ISZERO
00004978: DUP2
00004979: EQ
0000497a: PUSH2 0x0afd
0000497d: JUMPI
0000497e: PUSH1 0x00
00004980: DUP1
00004981: REVERT
00004982: JUMPDEST
00004983: PUSH1 0x00
00004985: DUP1
00004986: PUSH1 0x00
00004988: DUP1
00004989: PUSH1 0x00
0000498b: PUSH1 0xa0
0000498d: DUP7
0000498e: DUP9
0000498f: SUB
00004990: SLT
00004991: ISZERO
00004992: PUSH2 0x499a
00004995: JUMPI
00004996: PUSH1 0x00
00004998: DUP1
00004999: REVERT
0000499a: JUMPDEST
0000499b: DUP6
0000499c: CALLDATALOAD
0000499d: PUSH2 0x49a5
000049a0: DUP2
000049a1: PUSH2 0x46bb
000049a4: JUMP
000049a5: JUMPDEST
000049a6: SWAP5
000049a7: POP
000049a8: PUSH1 0x20
000049aa: DUP7
000049ab: ADD
000049ac: CALLDATALOAD
000049ad: PUSH2 0x49b5
000049b0: DUP2
000049b1: PUSH2 0x46bb
000049b4: JUMP
000049b5: JUMPDEST
000049b6: SWAP4
000049b7: POP
000049b8: PUSH1 0x40
000049ba: DUP7
000049bb: ADD
000049bc: CALLDATALOAD
000049bd: SWAP3
000049be: POP
000049bf: PUSH1 0x60
000049c1: DUP7
000049c2: ADD
000049c3: CALLDATALOAD
000049c4: PUSH2 0x49cc
000049c7: DUP2
000049c8: PUSH2 0x46bb
000049cb: JUMP
000049cc: JUMPDEST
000049cd: SWAP2
000049ce: POP
000049cf: PUSH1 0x80
000049d1: DUP7
000049d2: ADD
000049d3: CALLDATALOAD
000049d4: PUSH2 0x49dc
000049d7: DUP2
000049d8: PUSH2 0x4974
000049db: JUMP
000049dc: JUMPDEST
000049dd: DUP1
000049de: SWAP2
000049df: POP
000049e0: POP
000049e1: SWAP3
000049e2: SWAP6
000049e3: POP
000049e4: SWAP3
000049e5: SWAP6
000049e6: SWAP1
000049e7: SWAP4
000049e8: POP
000049e9: JUMP
000049ea: JUMPDEST
000049eb: PUSH1 0x00
000049ed: DUP1
000049ee: PUSH1 0x40
000049f0: DUP4
000049f1: DUP6
000049f2: SUB
000049f3: SLT
000049f4: ISZERO
000049f5: PUSH2 0x49fd
000049f8: JUMPI
000049f9: PUSH1 0x00
000049fb: DUP1
000049fc: REVERT
000049fd: JUMPDEST
000049fe: DUP3
000049ff: CALLDATALOAD
00004a00: PUSH2 0x4a08
00004a03: DUP2
00004a04: PUSH2 0x46bb
00004a07: JUMP
00004a08: JUMPDEST
00004a09: SWAP2
00004a0a: POP
00004a0b: PUSH1 0x20
00004a0d: DUP4
00004a0e: ADD
00004a0f: CALLDATALOAD
00004a10: PUSH2 0x4a18
00004a13: DUP2
00004a14: PUSH2 0x46bb
00004a17: JUMP
00004a18: JUMPDEST
00004a19: DUP1
00004a1a: SWAP2
00004a1b: POP
00004a1c: POP
00004a1d: SWAP3
00004a1e: POP
00004a1f: SWAP3
00004a20: SWAP1
00004a21: POP
00004a22: JUMP
00004a23: JUMPDEST
00004a24: PUSH1 0x00
00004a26: DUP1
00004a27: PUSH1 0x00
00004a29: PUSH1 0x60
00004a2b: DUP5
00004a2c: DUP7
00004a2d: SUB
00004a2e: SLT
00004a2f: ISZERO
00004a30: PUSH2 0x4a38
00004a33: JUMPI
00004a34: PUSH1 0x00
00004a36: DUP1
00004a37: REVERT
00004a38: JUMPDEST
00004a39: DUP4
00004a3a: CALLDATALOAD
00004a3b: PUSH2 0x4a43
00004a3e: DUP2
00004a3f: PUSH2 0x46bb
00004a42: JUMP
00004a43: JUMPDEST
00004a44: SWAP3
00004a45: POP
00004a46: PUSH1 0x20
00004a48: DUP5
00004a49: ADD
00004a4a: CALLDATALOAD
00004a4b: SWAP2
00004a4c: POP
00004a4d: PUSH1 0x40
00004a4f: DUP5
00004a50: ADD
00004a51: CALLDATALOAD
00004a52: PUSH2 0x4a5a
00004a55: DUP2
00004a56: PUSH2 0x46bb
00004a59: JUMP
00004a5a: JUMPDEST
00004a5b: DUP1
00004a5c: SWAP2
00004a5d: POP
00004a5e: POP
00004a5f: SWAP3
00004a60: POP
00004a61: SWAP3
00004a62: POP
00004a63: SWAP3
00004a64: JUMP
00004a65: JUMPDEST
00004a66: PUSH1 0x01
00004a68: DUP2
00004a69: DUP2
00004a6a: SHR
00004a6b: SWAP1
00004a6c: DUP3
00004a6d: AND
00004a6e: DUP1
00004a6f: PUSH2 0x4a79
00004a72: JUMPI
00004a73: PUSH1 0x7f
00004a75: DUP3
00004a76: AND
00004a77: SWAP2
00004a78: POP
00004a79: JUMPDEST
00004a7a: PUSH1 0x20
00004a7c: DUP3
00004a7d: LT
00004a7e: DUP2
00004a7f: SUB
00004a80: PUSH2 0x4a99
00004a83: JUMPI
00004a84: PUSH4 0x4e487b71
00004a89: PUSH1 0xe0
00004a8b: SHL
00004a8c: PUSH1 0x00
00004a8e: MSTORE
00004a8f: PUSH1 0x22
00004a91: PUSH1 0x04
00004a93: MSTORE
00004a94: PUSH1 0x24
00004a96: PUSH1 0x00
00004a98: REVERT
00004a99: JUMPDEST
00004a9a: POP
00004a9b: SWAP2
00004a9c: SWAP1
00004a9d: POP
00004a9e: JUMP
00004a9f: JUMPDEST
00004aa0: PUSH1 0x20
00004aa2: DUP1
00004aa3: DUP3
00004aa4: MSTORE
00004aa5: PUSH1 0x0a
00004aa7: SWAP1
00004aa8: DUP3
00004aa9: ADD
00004aaa: MSTORE
00004aab: PUSH10 0x1c994b595b9d195c9959
00004ab6: PUSH1 0xb2
00004ab8: SHL
00004ab9: PUSH1 0x40
00004abb: DUP3
00004abc: ADD
00004abd: MSTORE
00004abe: PUSH1 0x60
00004ac0: ADD
00004ac1: SWAP1
00004ac2: JUMP
00004ac3: JUMPDEST
00004ac4: PUSH1 0x00
00004ac6: PUSH1 0x20
00004ac8: DUP3
00004ac9: DUP5
00004aca: SUB
00004acb: SLT
00004acc: ISZERO
00004acd: PUSH2 0x4ad5
00004ad0: JUMPI
00004ad1: PUSH1 0x00
00004ad3: DUP1
00004ad4: REVERT
00004ad5: JUMPDEST
00004ad6: POP
00004ad7: MLOAD
00004ad8: SWAP2
00004ad9: SWAP1
00004ada: POP
00004adb: JUMP
00004adc: JUMPDEST
00004add: PUSH4 0x4e487b71
00004ae2: PUSH1 0xe0
00004ae4: SHL
00004ae5: PUSH1 0x00
00004ae7: MSTORE
00004ae8: PUSH1 0x11
00004aea: PUSH1 0x04
00004aec: MSTORE
00004aed: PUSH1 0x24
00004aef: PUSH1 0x00
00004af1: REVERT
00004af2: JUMPDEST
00004af3: DUP1
00004af4: DUP3
00004af5: ADD
00004af6: DUP1
00004af7: DUP3
00004af8: GT
00004af9: ISZERO
00004afa: PUSH2 0x0ae6
00004afd: JUMPI
00004afe: PUSH2 0x0ae6
00004b01: PUSH2 0x4adc
00004b04: JUMP
00004b05: JUMPDEST
00004b06: DUP2
00004b07: DUP2
00004b08: SUB
00004b09: DUP2
00004b0a: DUP2
00004b0b: GT
00004b0c: ISZERO
00004b0d: PUSH2 0x0ae6
00004b10: JUMPI
00004b11: PUSH2 0x0ae6
00004b14: PUSH2 0x4adc
00004b17: JUMP
00004b18: JUMPDEST
00004b19: PUSH1 0x01
00004b1b: PUSH1 0x01
00004b1d: PUSH1 0xa0
00004b1f: SHL
00004b20: SUB
00004b21: DUP5
00004b22: DUP2
00004b23: AND
00004b24: DUP3
00004b25: MSTORE
00004b26: DUP4
00004b27: AND
00004b28: PUSH1 0x20
00004b2a: DUP3
00004b2b: ADD
00004b2c: MSTORE
00004b2d: PUSH1 0x60
00004b2f: DUP2
00004b30: ADD
00004b31: PUSH1 0x02
00004b33: DUP4
00004b34: LT
00004b35: PUSH2 0x4b4e
00004b38: JUMPI
00004b39: PUSH4 0x4e487b71
00004b3e: PUSH1 0xe0
00004b40: SHL
00004b41: PUSH1 0x00
00004b43: MSTORE
00004b44: PUSH1 0x21
00004b46: PUSH1 0x04
00004b48: MSTORE
00004b49: PUSH1 0x24
00004b4b: PUSH1 0x00
00004b4d: REVERT
00004b4e: JUMPDEST
00004b4f: DUP3
00004b50: PUSH1 0x40
00004b52: DUP4
00004b53: ADD
00004b54: MSTORE
00004b55: SWAP5
00004b56: SWAP4
00004b57: POP
00004b58: POP
00004b59: POP
00004b5a: POP
00004b5b: JUMP
00004b5c: JUMPDEST
00004b5d: DUP1
00004b5e: DUP3
00004b5f: MUL
00004b60: DUP2
00004b61: ISZERO
00004b62: DUP3
00004b63: DUP3
00004b64: DIV
00004b65: DUP5
00004b66: EQ
00004b67: OR
00004b68: PUSH2 0x0ae6
00004b6b: JUMPI
00004b6c: PUSH2 0x0ae6
00004b6f: PUSH2 0x4adc
00004b72: JUMP
00004b73: JUMPDEST
00004b74: PUSH1 0x00
00004b76: DUP3
00004b77: PUSH2 0x4b90
00004b7a: JUMPI
00004b7b: PUSH4 0x4e487b71
00004b80: PUSH1 0xe0
00004b82: SHL
00004b83: PUSH1 0x00
00004b85: MSTORE
00004b86: PUSH1 0x12
00004b88: PUSH1 0x04
00004b8a: MSTORE
00004b8b: PUSH1 0x24
00004b8d: PUSH1 0x00
00004b8f: REVERT
00004b90: JUMPDEST
00004b91: POP
00004b92: DIV
00004b93: SWAP1
00004b94: JUMP
00004b95: JUMPDEST
00004b96: PUSH1 0x01
00004b98: PUSH1 0x01
00004b9a: PUSH1 0xa0
00004b9c: SHL
00004b9d: SUB
00004b9e: DUP4
00004b9f: AND
00004ba0: DUP2
00004ba1: MSTORE
00004ba2: PUSH1 0x40
00004ba4: PUSH1 0x20
00004ba6: DUP3
00004ba7: ADD
00004ba8: DUP2
00004ba9: SWAP1
00004baa: MSTORE
00004bab: PUSH1 0x00
00004bad: SWAP1
00004bae: PUSH2 0x2616
00004bb1: SWAP1
00004bb2: DUP4
00004bb3: ADD
00004bb4: DUP5
00004bb5: PUSH2 0x4663
00004bb8: JUMP
00004bb9: JUMPDEST
00004bba: PUSH1 0x00
00004bbc: PUSH1 0x20
00004bbe: DUP3
00004bbf: DUP5
00004bc0: SUB
00004bc1: SLT
00004bc2: ISZERO
00004bc3: PUSH2 0x4bcb
00004bc6: JUMPI
00004bc7: PUSH1 0x00
00004bc9: DUP1
00004bca: REVERT
00004bcb: JUMPDEST
00004bcc: DUP2
00004bcd: MLOAD
00004bce: PUSH2 0x10eb
00004bd1: DUP2
00004bd2: PUSH2 0x4974
00004bd5: JUMP
00004bd6: JUMPDEST
00004bd7: PUSH1 0x01
00004bd9: PUSH1 0x01
00004bdb: PUSH1 0xa0
00004bdd: SHL
00004bde: SUB
00004bdf: DUP5
00004be0: DUP2
00004be1: AND
00004be2: DUP3
00004be3: MSTORE
00004be4: DUP4
00004be5: AND
00004be6: PUSH1 0x20
00004be8: DUP3
00004be9: ADD
00004bea: MSTORE
00004beb: PUSH1 0x60
00004bed: PUSH1 0x40
00004bef: DUP3
00004bf0: ADD
00004bf1: DUP2
00004bf2: SWAP1
00004bf3: MSTORE
00004bf4: PUSH1 0x00
00004bf6: SWAP1
00004bf7: PUSH2 0x268a
00004bfa: SWAP1
00004bfb: DUP4
00004bfc: ADD
00004bfd: DUP5
00004bfe: PUSH2 0x4663
00004c01: JUMP
00004c02: JUMPDEST
00004c03: PUSH1 0x00
00004c05: PUSH1 0x01
00004c07: DUP3
00004c08: ADD
00004c09: PUSH2 0x4c14
00004c0c: JUMPI
00004c0d: PUSH2 0x4c14
00004c10: PUSH2 0x4adc
00004c13: JUMP
00004c14: JUMPDEST
00004c15: POP
00004c16: PUSH1 0x01
00004c18: ADD
00004c19: SWAP1
00004c1a: JUMP
00004c1b: JUMPDEST
00004c1c: PUSH1 0x01
00004c1e: PUSH1 0x01
00004c20: PUSH1 0xa0
00004c22: SHL
00004c23: SUB
00004c24: SWAP4
00004c25: DUP5
00004c26: AND
00004c27: DUP2
00004c28: MSTORE
00004c29: SWAP2
00004c2a: SWAP1
00004c2b: SWAP3
00004c2c: AND
00004c2d: PUSH1 0x20
00004c2f: DUP3
00004c30: ADD
00004c31: MSTORE
00004c32: PUSH1 0x40
00004c34: DUP2
00004c35: ADD
00004c36: SWAP2
00004c37: SWAP1
00004c38: SWAP2
00004c39: MSTORE
00004c3a: PUSH1 0x60
00004c3c: ADD
00004c3d: SWAP1
00004c3e: JUMP
00004c3f: JUMPDEST
00004c40: PUSH1 0x20
00004c42: DUP1
00004c43: DUP3
00004c44: MSTORE
00004c45: PUSH1 0x2b
00004c47: SWAP1
00004c48: DUP3
00004c49: ADD
00004c4a: MSTORE
00004c4b: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069
00004c6c: PUSH1 0x40
00004c6e: DUP3
00004c6f: ADD
00004c70: MSTORE
00004c71: PUSH11 0x6e697469616c697a696e67
00004c7d: PUSH1 0xa8
00004c7f: SHL
00004c80: PUSH1 0x60
00004c82: DUP3
00004c83: ADD
00004c84: MSTORE
00004c85: PUSH1 0x80
00004c87: ADD
00004c88: SWAP1
00004c89: JUMP
00004c8a: JUMPDEST
00004c8b: PUSH1 0x1f
00004c8d: DUP3
00004c8e: GT
00004c8f: ISZERO
00004c90: PUSH2 0x26f6
00004c93: JUMPI
00004c94: PUSH1 0x00
00004c96: DUP2
00004c97: PUSH1 0x00
00004c99: MSTORE
00004c9a: PUSH1 0x20
00004c9c: PUSH1 0x00
00004c9e: KECCAK256
00004c9f: PUSH1 0x1f
00004ca1: DUP6
00004ca2: ADD
00004ca3: PUSH1 0x05
00004ca5: SHR
00004ca6: DUP2
00004ca7: ADD
00004ca8: PUSH1 0x20
00004caa: DUP7
00004cab: LT
00004cac: ISZERO
00004cad: PUSH2 0x4cb3
00004cb0: JUMPI
00004cb1: POP
00004cb2: DUP1
00004cb3: JUMPDEST
00004cb4: PUSH1 0x1f
00004cb6: DUP6
00004cb7: ADD
00004cb8: PUSH1 0x05
00004cba: SHR
00004cbb: DUP3
00004cbc: ADD
00004cbd: SWAP2
00004cbe: POP
00004cbf: JUMPDEST
00004cc0: DUP2
00004cc1: DUP2
00004cc2: LT
00004cc3: ISZERO
00004cc4: PUSH2 0x4cd2
00004cc7: JUMPI
00004cc8: DUP3
00004cc9: DUP2
00004cca: SSTORE
00004ccb: PUSH1 0x01
00004ccd: ADD
00004cce: PUSH2 0x4cbf
00004cd1: JUMP
00004cd2: JUMPDEST
00004cd3: POP
00004cd4: POP
00004cd5: POP
00004cd6: POP
00004cd7: POP
00004cd8: POP
00004cd9: JUMP
00004cda: JUMPDEST
00004cdb: DUP2
00004cdc: MLOAD
00004cdd: PUSH8 0xffffffffffffffff
00004ce6: DUP2
00004ce7: GT
00004ce8: ISZERO
00004ce9: PUSH2 0x4cf4
00004cec: JUMPI
00004ced: PUSH2 0x4cf4
00004cf0: PUSH2 0x476a
00004cf3: JUMP
00004cf4: JUMPDEST
00004cf5: PUSH2 0x4d08
00004cf8: DUP2
00004cf9: PUSH2 0x4d02
00004cfc: DUP5
00004cfd: SLOAD
00004cfe: PUSH2 0x4a65
00004d01: JUMP
00004d02: JUMPDEST
00004d03: DUP5
00004d04: PUSH2 0x4c8a
00004d07: JUMP
00004d08: JUMPDEST
00004d09: PUSH1 0x20
00004d0b: DUP1
00004d0c: PUSH1 0x1f
00004d0e: DUP4
00004d0f: GT
00004d10: PUSH1 0x01
00004d12: DUP2
00004d13: EQ
00004d14: PUSH2 0x4d3d
00004d17: JUMPI
00004d18: PUSH1 0x00
00004d1a: DUP5
00004d1b: ISZERO
00004d1c: PUSH2 0x4d25
00004d1f: JUMPI
00004d20: POP
00004d21: DUP6
00004d22: DUP4
00004d23: ADD
00004d24: MLOAD
00004d25: JUMPDEST
00004d26: PUSH1 0x00
00004d28: NOT
00004d29: PUSH1 0x03
00004d2b: DUP7
00004d2c: SWAP1
00004d2d: SHL
00004d2e: SHR
00004d2f: NOT
00004d30: AND
00004d31: PUSH1 0x01
00004d33: DUP6
00004d34: SWAP1
00004d35: SHL
00004d36: OR
00004d37: DUP6
00004d38: SSTORE
00004d39: PUSH2 0x4cd2
00004d3c: JUMP
00004d3d: JUMPDEST
00004d3e: PUSH1 0x00
00004d40: DUP6
00004d41: DUP2
00004d42: MSTORE
00004d43: PUSH1 0x20
00004d45: DUP2
00004d46: KECCAK256
00004d47: PUSH1 0x1f
00004d49: NOT
00004d4a: DUP7
00004d4b: AND
00004d4c: SWAP2
00004d4d: JUMPDEST
00004d4e: DUP3
00004d4f: DUP2
00004d50: LT
00004d51: ISZERO
00004d52: PUSH2 0x4d6c
00004d55: JUMPI
00004d56: DUP9
00004d57: DUP7
00004d58: ADD
00004d59: MLOAD
00004d5a: DUP3
00004d5b: SSTORE
00004d5c: SWAP5
00004d5d: DUP5
00004d5e: ADD
00004d5f: SWAP5
00004d60: PUSH1 0x01
00004d62: SWAP1
00004d63: SWAP2
00004d64: ADD
00004d65: SWAP1
00004d66: DUP5
00004d67: ADD
00004d68: PUSH2 0x4d4d
00004d6b: JUMP
00004d6c: JUMPDEST
00004d6d: POP
00004d6e: DUP6
00004d6f: DUP3
00004d70: LT
00004d71: ISZERO
00004d72: PUSH2 0x4d8a
00004d75: JUMPI
00004d76: DUP8
00004d77: DUP6
00004d78: ADD
00004d79: MLOAD
00004d7a: PUSH1 0x00
00004d7c: NOT
00004d7d: PUSH1 0x03
00004d7f: DUP9
00004d80: SWAP1
00004d81: SHL
00004d82: PUSH1 0xf8
00004d84: AND
00004d85: SHR
00004d86: NOT
00004d87: AND
00004d88: DUP2
00004d89: SSTORE
00004d8a: JUMPDEST
00004d8b: POP
00004d8c: POP
00004d8d: POP
00004d8e: POP
00004d8f: POP
00004d90: PUSH1 0x01
00004d92: SWAP1
00004d93: DUP2
00004d94: SHL
00004d95: ADD
00004d96: SWAP1
00004d97: SSTORE
00004d98: POP
00004d99: JUMP
00004d9a: JUMPDEST
00004d9b: PUSH1 0x00
00004d9d: DUP1
00004d9e: PUSH1 0x40
00004da0: DUP4
00004da1: DUP6
00004da2: SUB
00004da3: SLT
00004da4: ISZERO
00004da5: PUSH2 0x4dad
00004da8: JUMPI
00004da9: PUSH1 0x00
00004dab: DUP1
00004dac: REVERT
00004dad: JUMPDEST
00004dae: POP
00004daf: POP
00004db0: DUP1
00004db1: MLOAD
00004db2: PUSH1 0x20
00004db4: SWAP1
00004db5: SWAP2
00004db6: ADD
00004db7: MLOAD
00004db8: SWAP1
00004db9: SWAP3
00004dba: SWAP1
00004dbb: SWAP2
00004dbc: POP
00004dbd: JUMP
00004dbe: JUMPDEST
00004dbf: PUSH1 0x00
00004dc1: DUP3
00004dc2: MLOAD
00004dc3: PUSH2 0x4dd0
00004dc6: DUP2
00004dc7: DUP5
00004dc8: PUSH1 0x20
00004dca: DUP8
00004dcb: ADD
00004dcc: PUSH2 0x463f
00004dcf: JUMP
00004dd0: JUMPDEST
00004dd1: SWAP2
00004dd2: SWAP1
00004dd3: SWAP2
00004dd4: ADD
00004dd5: SWAP3
00004dd6: SWAP2
00004dd7: POP
00004dd8: POP
00004dd9: JUMP
00004dda: INVALID
00004ddb: PUSH20 0x65745265647563655265736572766573426c6f63
00004df0: PUSH12 0x44656c74612875696e743235
00004dfd: CALLDATASIZE
00004dfe: UNKNOWN(0x29)
00004dff: UNKNOWN(0xDD)
00004e00: CALLCODE
00004e01: MSTORE
00004e02: UNKNOWN(0xAD)
00004e03: SHL
00004e04: UNKNOWN(0xE2)
00004e05: UNKNOWN(0xC8)
00004e06: SWAP12
00004e07: PUSH10 0xc2b068fc378daa952ba7
00004e12: CALL
00004e13: PUSH4 0xc4a11628
00004e18: CREATE2
00004e19: GAS
00004e1a: UNKNOWN(0x4D)
00004e1b: CREATE2
00004e1c: UNKNOWN(0x23)
00004e1d: UNKNOWN(0xB3)
00004e1e: UNKNOWN(0xEF)
00004e1f: LOG2
00004e20: PUSH5 0x6970667358
00004e26: UNKNOWN(0x22)
00004e27: SLT
00004e28: KECCAK256
00004e29: UNKNOWN(0xEA)
00004e2a: DUP12
00004e2b: GT
00004e2c: CLZ
00004e2d: TIMESTAMP
00004e2e: LOG3
00004e2f: UNKNOWN(0x4B)
00004e30: PUSH5 0x9ca4a2dd9f
00004e36: PUSH22 0xe129412dd50037fa3a998ff5958bd540d05864736f6c
00004e4d: PUSH4 0x43000819
00004e52: STOP
00004e53: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0xa870e291053d5ec974b5a9f7c8d7b20fef986f7a85b728278a358e9c9b447beb
call_targets: 0xefdf5ccc12d8cff4a7ed4e421b95f8f69cf2f766
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xa870e291053d5ec974b5a9f7c8d7b20fef986f7a85b728278a358e9c9b447beb",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xefdf5ccc12d8cff4a7ed4e421b95f8f69cf2f766"
    ],
    "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": "0xef60450c",
            "selector": "0xef60450c",
            "calldata_variants": [
                "0xef60450c",
                "0xef60450c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3fdb15a",
            "selector": "0xf3fdb15a",
            "calldata_variants": [
                "0xf3fdb15a",
                "0xf3fdb15a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf5e3c462",
            "selector": "0xf5e3c462",
            "calldata_variants": [
                "0xf5e3c462",
                "0xf5e3c4620000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf8f9da28",
            "selector": "0xf8f9da28",
            "calldata_variants": [
                "0xf8f9da28",
                "0xf8f9da280000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdf3a516e",
            "selector": "0xdf3a516e",
            "calldata_variants": [
                "0xdf3a516e",
                "0xdf3a516e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe1d146fb",
            "selector": "0xe1d146fb",
            "calldata_variants": [
                "0xe1d146fb",
                "0xe1d146fb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 4495,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 8644,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 9153,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 20,
    "guards_detected": [],
    "untrusted_call_count": 20
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0xa870e291053d5ec974b5a9f7c8d7b20fef986f7a85b728278a358e9c9b447beb
call_targets: 0xefdf5ccc12d8cff4a7ed4e421b95f8f69cf2f766
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xa870e291053d5ec974b5a9f7c8d7b20fef986f7a85b728278a358e9c9b447beb",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xefdf5ccc12d8cff4a7ed4e421b95f8f69cf2f766"
    ],
    "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": "0xef60450c",
            "selector": "0xef60450c",
            "calldata_variants": [
                "0xef60450c",
                "0xef60450c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3fdb15a",
            "selector": "0xf3fdb15a",
            "calldata_variants": [
                "0xf3fdb15a",
                "0xf3fdb15a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf5e3c462",
            "selector": "0xf5e3c462",
            "calldata_variants": [
                "0xf5e3c462",
                "0xf5e3c4620000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf8f9da28",
            "selector": "0xf8f9da28",
            "calldata_variants": [
                "0xf8f9da28",
                "0xf8f9da280000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdf3a516e",
            "selector": "0xdf3a516e",
            "calldata_variants": [
                "0xdf3a516e",
                "0xdf3a516e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe1d146fb",
            "selector": "0xe1d146fb",
            "calldata_variants": [
                "0xe1d146fb",
                "0xe1d146fb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 4495,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 8644,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 9153,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 20,
    "guards_detected": []
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0x054548fa12c70c4e784d648086a6a54e72a574fac7ae9d983de26ef3a4a02fbf
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0x054548fa12c70c4e784d648086a6a54e72a574fac7ae9d983de26ef3a4a02fbf",
    "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": "0xef60450c",
            "selector": "0xef60450c",
            "calldata_variants": [
                "0xef60450c",
                "0xef60450c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3fdb15a",
            "selector": "0xf3fdb15a",
            "calldata_variants": [
                "0xf3fdb15a",
                "0xf3fdb15a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf5e3c462",
            "selector": "0xf5e3c462",
            "calldata_variants": [
                "0xf5e3c462",
                "0xf5e3c4620000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf8f9da28",
            "selector": "0xf8f9da28",
            "calldata_variants": [
                "0xf8f9da28",
                "0xf8f9da280000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdf3a516e",
            "selector": "0xdf3a516e",
            "calldata_variants": [
                "0xdf3a516e",
                "0xdf3a516e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe1d146fb",
            "selector": "0xe1d146fb",
            "calldata_variants": [
                "0xe1d146fb",
                "0xe1d146fb0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 0,
    "create2_count": 2
}
medium reentrancy codex borrowBehalf lacks reentrancy guard, enabling nested calls during underlying transfer 75 no
view
evidence_json
{
    "evidence": "`borrowBehalf` has no `nonReentrant` modifier and calls `_borrowFresh`, which performs an external `_doTransferOut` to the receiver.",
    "locations": [
        "contracts/contracts/VToken.sol:402",
        "contracts/contracts/VToken.sol:1032"
    ],
    "recommendation": "Add `nonReentrant` to `borrowBehalf` (matching `borrow`) or move the guard into `_borrowFresh` so all borrow entrypoints are protected. Consider adding tests with ERC777-style hooks.",
    "exploit_scenario": "A delegate contract calls `borrowBehalf` for a borrower on a vToken whose underlying token is ERC777 (or a malicious ERC20). During `_doTransferOut` the token\u2019s hook reenters the vToken and calls other state-changing functions (e.g., another borrow/redeem) while `_notEntered` is still true, bypassing the intended reentrancy protection and potentially extracting more cash than allowed by normal sequencing."
}
low reentrancy codex Reward claims update state after transfer, allowing reentrant double-claims with hook-enabled tokens 65 no
view
evidence_json
{
    "evidence": "`claimRewardToken` updates `rewardTokenAccrued` only after `_grantRewardToken` completes, and `_grantRewardToken` performs the external transfer.",
    "locations": [
        "contracts/contracts/Rewards/RewardsDistributor.sol:336",
        "contracts/contracts/Rewards/RewardsDistributor.sol:558"
    ],
    "recommendation": "Apply checks-effects-interactions: set `rewardTokenAccrued[holder]` to 0 (or the remaining amount) before calling `_grantRewardToken`, and optionally add a reentrancy guard to reward-claiming functions.",
    "exploit_scenario": "If the reward token invokes a callback during `safeTransfer` (ERC777 or malicious ERC20), it can reenter `claimRewardToken` before `rewardTokenAccrued[holder]` is set to the post-transfer value. This enables repeated claims in a single transaction and can drain the RewardsDistributor\u2019s balance."
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 0,
    "create2_count": 2
}
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
}
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
}