9707eaa0-327d-4499-891d-f96c86f59835
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 30587 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 104381 | artifact.fetch | failed | 1 / 3 | 1 week ago |
| 104382 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 104383 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 104384 | capability.graph | complete | 1 / 3 | 1 week ago |
| 104385 | detector.run | complete | 1 / 3 | 1 week ago |
| 104386 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1525766] OpenAI Codex v0.77.0 (research preview)
[codex:1525766] --------
[codex:1525766] workdir: /tmp/codex-multi-2bssvp1n
[codex:1525766] model: gpt-5.2-codex
[codex:1525766] provider: openai
[codex:1525766] approval: never
[codex:1525766] sandbox: read-only
[codex:1525766] reasoning effort: xhigh
[codex:1525766] reasoning summaries: auto
[codex:1525766] session id: 019b6c19-48b9-7f53-a23d-90fce7ee1988
[codex:1525766] --------
[codex:1525766] user
[codex:1525766] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1525766] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1525766] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1525766]
[codex:1525766] Scope rules:
[codex:1525766] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1525766] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1525766]
[codex:1525766] Output MUST be valid JSON matching the provided schema.
[codex:1525766] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1525766] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1525766]
[codex:1525766] Output constraints (IMPORTANT):
[codex:1525766] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1525766] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1525766] mcp startup: no servers
[codex:1525766]
[codex:1525766] thinking
[codex:1525766] **Reading AUDIT_BUNDLE file**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc ls in /tmp/codex-multi-2bssvp1n succeeded in 6ms:
[codex:1525766] AUDIT_BUNDLE.txt
[codex:1525766] codex-output-schema.json
[codex:1525766] contracts
[codex:1525766] exec
[codex:1525766] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-2bssvp1n succeeded in 6ms:
[codex:1525766] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1525766]
[codex:1525766] ================================================================================
[codex:1525766] FILE: contracts/contracts/lending/interfaces/IMintableERC20.sol
[codex:1525766] ================================================================================
[codex:1525766] // SPDX-License-Identifier: MIT
[codex:1525766] pragma solidity ^0.8.22;
[codex:1525766]
[codex:1525766] import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1525766]
[codex:1525766] /// @title IMintableERC20
[codex:1525766] /// @author GPM
[codex:1525766] /// @custom:contact security@altofoundation.org
[codex:1525766] /// @notice Interface for mintable ERC20 tokens.
[codex:1525766] /// @dev This is used as a borrow token in the AltoMintMarket contract.
[codex:1525766] interface IMintableERC20 is IERC20 {
[codex:1525766] /// @notice Mints tokens to an address.
[codex:1525766] /// @param to The address to mint tokens to.
[codex:1525766] /// @param amount The amount of tokens to mint.
[codex:1525766] function mint(address to, uint256 amount) external;
[codex:1525766]
[codex:1525766] thinking
[codex:1525766] **Dealing with large audit bundle file**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc 'rg -n "''^FILE:" AUDIT_BUNDLE.txt' in /tmp/codex-multi-2bssvp1n succeeded in 9ms:
[codex:1525766] 4:FILE: contracts/contracts/lending/interfaces/IMintableERC20.sol
[codex:1525766] 29:FILE: contracts/contracts/tokens/interfaces/IDUSD.sol
[codex:1525766] 115:FILE: contracts/contracts/usm/DUSDUsm.sol
[codex:1525766] 155:FILE: contracts/contracts/usm/Usm.sol
[codex:1525766] 743:FILE: contracts/contracts/usm/interfaces/IStableTokenFacilitator.sol
[codex:1525766] 792:FILE: contracts/contracts/usm/interfaces/IUsm.sol
[codex:1525766] 1169:FILE: contracts/contracts/usm/interfaces/IUsmFeeStrategy.sol
[codex:1525766] 1231:FILE: contracts/contracts/usm/interfaces/IUsmPriceStrategy.sol
[codex:1525766] 1300:FILE: contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol
[codex:1525766] 1536:FILE: contracts/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol
[codex:1525766] 1778:FILE: contracts/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol
[codex:1525766] 1934:FILE: contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol
[codex:1525766] 1972:FILE: contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol
[codex:1525766] 2007:FILE: contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol
[codex:1525766] 2109:FILE: contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/Ownable.sol
[codex:1525766] 2213:FILE: contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol
[codex:1525766] 2303:FILE: contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol
[codex:1525766] 2313:FILE: contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol
[codex:1525766] 2341:FILE: contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol
[codex:1525766] 2351:FILE: contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol
[codex:1525766]
[codex:1525766] thinking
[codex:1525766] **Segmenting USM file for review**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '155,350p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 6ms:
[codex:1525766] FILE: contracts/contracts/usm/Usm.sol
[codex:1525766] ================================================================================
[codex:1525766] // SPDX-License-Identifier: MIT
[codex:1525766] pragma solidity ^0.8.10;
[codex:1525766]
[codex:1525766] import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol";
[codex:1525766] import {IStableTokenFacilitator} from "./interfaces/IStableTokenFacilitator.sol";
[codex:1525766] import {IUsmPriceStrategy} from "./interfaces/IUsmPriceStrategy.sol";
[codex:1525766] import {IUsmFeeStrategy} from "./interfaces/IUsmFeeStrategy.sol";
[codex:1525766] import {IUsm, AccessMode} from "./interfaces/IUsm.sol";
[codex:1525766] import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1525766] import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1525766] import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
[codex:1525766] import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
[codex:1525766] import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
[codex:1525766]
[codex:1525766] /**
[codex:1525766] * @title Usm
[codex:1525766] * @author GPM
[codex:1525766] * @author Adapted from Aave (https://github.com/aave/gho-core/)
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '350,550p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 6ms:
[codex:1525766] }
[codex:1525766]
[codex:1525766] emit Seized(msg.sender, _stableTokenTreasury, underlyingBalance, stableTokenMinted);
[codex:1525766] return underlyingBalance;
[codex:1525766] }
[codex:1525766]
[codex:1525766] /// @inheritdoc IUsm
[codex:1525766] function burnAfterSeize(uint256 amount) external onlyRole(LIQUIDATOR_ROLE) returns (uint256) {
[codex:1525766] require(_isSeized, "USM_NOT_SEIZED");
[codex:1525766] require(amount > 0, "INVALID_AMOUNT");
[codex:1525766]
[codex:1525766] uint256 stableTokenMinted = _getCurrentlyMintedStableTokenByUsm();
[codex:1525766] if (amount > stableTokenMinted) {
[codex:1525766] amount = stableTokenMinted;
[codex:1525766] }
[codex:1525766] IERC20(STABLE_TOKEN).safeTransferFrom(msg.sender, address(this), amount);
[codex:1525766] _burnStableToken(address(this), amount);
[codex:1525766]
[codex:1525766] emit BurnAfterSeize(msg.sender, amount, (stableTokenMinted - amount));
[codex:1525766] return amount;
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '550,742p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 6ms:
[codex:1525766] }
[codex:1525766]
[codex:1525766] /**
[codex:1525766] * @dev Hook that is called before `buyAsset`.
[codex:1525766] * @dev This can be used to add custom logic
[codex:1525766] * @param originator Originator of the request
[codex:1525766] * @param amount The amount of the underlying asset desired for purchase
[codex:1525766] * @param receiver Recipient address of the underlying asset being purchased
[codex:1525766] */
[codex:1525766] function _beforeBuyAsset(address originator, uint256 amount, address receiver) internal virtual {}
[codex:1525766]
[codex:1525766] /**
[codex:1525766] * @dev Sells an underlying asset for Stable Token
[codex:1525766] * @param originator The originator of the request
[codex:1525766] * @param maxAmount The maximum amount of the underlying asset desired to sell
[codex:1525766] * @param receiver The recipient address of the Stable Token being purchased
[codex:1525766] * @return The amount of underlying asset sold
[codex:1525766] * @return The amount of Stable Token bought by the user
[codex:1525766] */
[codex:1525766] function _sellAsset(address originator, uint256 maxAmount, address receiver) internal returns (uint256, uint256) {
[codex:1525766]
[codex:1525766] thinking
[codex:1525766] **Planning full AUDIT_BUNDLE review**
[codex:1525766]
[codex:1525766] I’m preparing to thoroughly read the entire 5122-line AUDIT_BUNDLE file in manageable chunks, starting with the first 154 lines covering key interfaces like IMintableERC20, IDUSD, and DUSDUsm, to ensure nothing is missed before moving on to analysis.
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '1,154p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 6ms:
[codex:1525766] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1525766]
[codex:1525766] ================================================================================
[codex:1525766] FILE: contracts/contracts/lending/interfaces/IMintableERC20.sol
[codex:1525766] ================================================================================
[codex:1525766] // SPDX-License-Identifier: MIT
[codex:1525766] pragma solidity ^0.8.22;
[codex:1525766]
[codex:1525766] import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1525766]
[codex:1525766] /// @title IMintableERC20
[codex:1525766] /// @author GPM
[codex:1525766] /// @custom:contact security@altofoundation.org
[codex:1525766] /// @notice Interface for mintable ERC20 tokens.
[codex:1525766] /// @dev This is used as a borrow token in the AltoMintMarket contract.
[codex:1525766] interface IMintableERC20 is IERC20 {
[codex:1525766] /// @notice Mints tokens to an address.
[codex:1525766] /// @param to The address to mint tokens to.
[codex:1525766] /// @param amount The amount of tokens to mint.
[codex:1525766] function mint(address to, uint256 amount) external;
[codex:1525766]
[codex:1525766] thinking
[codex:1525766] **Identifying interfaces for extraction**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '743,1300p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 6ms:
[codex:1525766] FILE: contracts/contracts/usm/interfaces/IStableTokenFacilitator.sol
[codex:1525766] ================================================================================
[codex:1525766] // SPDX-License-Identifier: MIT
[codex:1525766] pragma solidity ^0.8.0;
[codex:1525766]
[codex:1525766] /**
[codex:1525766] * @title IStableTokenFacilitator
[codex:1525766] * @author GPM
[codex:1525766] * @author Adapted from Aave (https://github.com/aave/gho-core/)
[codex:1525766] * @custom:contact security@altofoundation.org
[codex:1525766] * @notice Defines the behavior of a Stable Token Facilitator
[codex:1525766] */
[codex:1525766] interface IStableTokenFacilitator {
[codex:1525766] /**
[codex:1525766] * @dev Emitted when fees are distributed to the fee recipient
[codex:1525766] * @param feeRecipient The address of the Fee Recipient
[codex:1525766] * @param asset The address of the asset transferred to the fee recipient
[codex:1525766] * @param amount The amount of the asset transferred to the Fee Recipient
[codex:1525766] */
[codex:1525766] event FeesDistributedToFeeRecipient(address indexed feeRecipient, address indexed asset, uint256 amount);
[codex:1525766]
[codex:1525766] thinking
[codex:1525766] **Planning staged reading of AUDIT_BUNDLE**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '1300,1700p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 6ms:
[codex:1525766] FILE: contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol
[codex:1525766] ================================================================================
[codex:1525766] // SPDX-License-Identifier: MIT
[codex:1525766] // OpenZeppelin Contracts (last updated v5.3.0) (access/AccessControl.sol)
[codex:1525766]
[codex:1525766] pragma solidity ^0.8.20;
[codex:1525766]
[codex:1525766] import {IAccessControl} from "@openzeppelin/contracts/access/IAccessControl.sol";
[codex:1525766] import {ContextUpgradeable} from "../utils/ContextUpgradeable.sol";
[codex:1525766] import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
[codex:1525766] import {ERC165Upgradeable} from "../utils/introspection/ERC165Upgradeable.sol";
[codex:1525766] import {Initializable} from "../proxy/utils/Initializable.sol";
[codex:1525766]
[codex:1525766] /**
[codex:1525766] * @dev Contract module that allows children to implement role-based access
[codex:1525766] * control mechanisms. This is a lightweight version that doesn't allow enumerating role
[codex:1525766] * members except through off-chain means by accessing the contract event logs. Some
[codex:1525766] * applications may benefit from on-chain enumerability, for those cases see
[codex:1525766] * {AccessControlEnumerable}.
[codex:1525766] *
[codex:1525766]
[codex:1525766] thinking
[codex:1525766] **Planning chunked reading**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '1700,2100p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 7ms:
[codex:1525766] emit Initialized(version);
[codex:1525766] }
[codex:1525766]
[codex:1525766] /**
[codex:1525766] * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the
[codex:1525766] * {initializer} and {reinitializer} modifiers, directly or indirectly.
[codex:1525766] */
[codex:1525766] modifier onlyInitializing() {
[codex:1525766] _checkInitializing();
[codex:1525766] _;
[codex:1525766] }
[codex:1525766]
[codex:1525766] /**
[codex:1525766] * @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}.
[codex:1525766] */
[codex:1525766] function _checkInitializing() internal view virtual {
[codex:1525766] if (!_isInitializing()) {
[codex:1525766] revert NotInitializing();
[codex:1525766] }
[codex:1525766] }
[codex:1525766]
[codex:1525766] thinking
[codex:1525766] **Continuing to review next lines**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '2100,2500p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 6ms:
[codex:1525766] *
[codex:1525766] * Requirements:
[codex:1525766] *
[codex:1525766] * - the caller must be `callerConfirmation`.
[codex:1525766] */
[codex:1525766] function renounceRole(bytes32 role, address callerConfirmation) external;
[codex:1525766] }
[codex:1525766]
[codex:1525766] ================================================================================
[codex:1525766] FILE: contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/Ownable.sol
[codex:1525766] ================================================================================
[codex:1525766] // SPDX-License-Identifier: MIT
[codex:1525766] // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
[codex:1525766]
[codex:1525766] pragma solidity ^0.8.20;
[codex:1525766]
[codex:1525766] import {Context} from "../utils/Context.sol";
[codex:1525766]
[codex:1525766] /**
[codex:1525766] * @dev Contract module which provides a basic access control mechanism, where
[codex:1525766]
[codex:1525766] thinking
[codex:1525766] **Continuing to review code lines**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '2500,2900p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 7ms:
[codex:1525766] * @dev Returns the current beacon.
[codex:1525766] */
[codex:1525766] function getBeacon() internal view returns (address) {
[codex:1525766] return StorageSlot.getAddressSlot(BEACON_SLOT).value;
[codex:1525766] }
[codex:1525766]
[codex:1525766] /**
[codex:1525766] * @dev Stores a new beacon in the ERC-1967 beacon slot.
[codex:1525766] */
[codex:1525766] function _setBeacon(address newBeacon) private {
[codex:1525766] if (newBeacon.code.length == 0) {
[codex:1525766] revert ERC1967InvalidBeacon(newBeacon);
[codex:1525766] }
[codex:1525766]
[codex:1525766] StorageSlot.getAddressSlot(BEACON_SLOT).value = newBeacon;
[codex:1525766]
[codex:1525766] address beaconImplementation = IBeacon(newBeacon).implementation();
[codex:1525766] if (beaconImplementation.code.length == 0) {
[codex:1525766] revert ERC1967InvalidImplementation(beaconImplementation);
[codex:1525766] }
[codex:1525766]
[codex:1525766] thinking
[codex:1525766] **Continuing file exploration**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '2900,3300p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 6ms:
[codex:1525766] * `transfer`. {sendValue} removes this limitation.
[codex:1525766] *
[codex:1525766] * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].
[codex:1525766] *
[codex:1525766] * IMPORTANT: because control is transferred to `recipient`, care must be
[codex:1525766] * taken to not create reentrancy vulnerabilities. Consider using
[codex:1525766] * {ReentrancyGuard} or the
[codex:1525766] * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
[codex:1525766] */
[codex:1525766] function sendValue(address payable recipient, uint256 amount) internal {
[codex:1525766] if (address(this).balance < amount) {
[codex:1525766] revert Errors.InsufficientBalance(address(this).balance, amount);
[codex:1525766] }
[codex:1525766]
[codex:1525766] (bool success, bytes memory returndata) = recipient.call{value: amount}("");
[codex:1525766] if (!success) {
[codex:1525766] _revert(returndata);
[codex:1525766] }
[codex:1525766] }
[codex:1525766]
[codex:1525766]
[codex:1525766] thinking
[codex:1525766] **Continuing file review**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '3300,3700p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 5ms:
[codex:1525766] /**
[codex:1525766] * @dev An int value doesn't fit in an uint of `bits` size.
[codex:1525766] */
[codex:1525766] error SafeCastOverflowedIntToUint(int256 value);
[codex:1525766]
[codex:1525766] /**
[codex:1525766] * @dev Value doesn't fit in an int of `bits` size.
[codex:1525766] */
[codex:1525766] error SafeCastOverflowedIntDowncast(uint8 bits, int256 value);
[codex:1525766]
[codex:1525766] /**
[codex:1525766] * @dev An uint value doesn't fit in an int of `bits` size.
[codex:1525766] */
[codex:1525766] error SafeCastOverflowedUintToInt(uint256 value);
[codex:1525766]
[codex:1525766] /**
[codex:1525766] * @dev Returns the downcasted uint248 from uint256, reverting on
[codex:1525766] * overflow (when the input is greater than largest uint248).
[codex:1525766] *
[codex:1525766] * Counterpart to Solidity's `uint248` operator.
[codex:1525766]
[codex:1525766] thinking
[codex:1525766] **Scrolling through large chunk**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '3700,4100p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 5ms:
[codex:1525766] if (value > type(uint72).max) {
[codex:1525766] revert SafeCastOverflowedUintDowncast(72, value);
[codex:1525766] }
[codex:1525766] return uint72(value);
[codex:1525766] }
[codex:1525766]
[codex:1525766] /**
[codex:1525766] * @dev Returns the downcasted uint64 from uint256, reverting on
[codex:1525766] * overflow (when the input is greater than largest uint64).
[codex:1525766] *
[codex:1525766] * Counterpart to Solidity's `uint64` operator.
[codex:1525766] *
[codex:1525766] * Requirements:
[codex:1525766] *
[codex:1525766] * - input must fit into 64 bits
[codex:1525766] */
[codex:1525766] function toUint64(uint256 value) internal pure returns (uint64) {
[codex:1525766] if (value > type(uint64).max) {
[codex:1525766] revert SafeCastOverflowedUintDowncast(64, value);
[codex:1525766] }
[codex:1525766]
[codex:1525766] thinking
[codex:1525766] **Evaluating strategies for full file reading**
[codex:1525766]
[codex:1525766] I'm considering how to meet the requirement to fully read the AUDIT_BUNDLE file by processing it in chunks. Since it's quite large, I’m weighing options like using python or shell commands to read efficiently without overwhelming the response size, and deciding to continue chunked reading to cover all relevant parts thoroughly.
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '4100,4500p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 7ms:
[codex:1525766] */
[codex:1525766] function toInt144(int256 value) internal pure returns (int144 downcasted) {
[codex:1525766] downcasted = int144(value);
[codex:1525766] if (downcasted != value) {
[codex:1525766] revert SafeCastOverflowedIntDowncast(144, value);
[codex:1525766] }
[codex:1525766] }
[codex:1525766]
[codex:1525766] /**
[codex:1525766] * @dev Returns the downcasted int136 from int256, reverting on
[codex:1525766] * overflow (when the input is less than smallest int136 or
[codex:1525766] * greater than largest int136).
[codex:1525766] *
[codex:1525766] * Counterpart to Solidity's `int136` operator.
[codex:1525766] *
[codex:1525766] * Requirements:
[codex:1525766] *
[codex:1525766] * - input must fit into 136 bits
[codex:1525766] */
[codex:1525766] function toInt136(int256 value) internal pure returns (int136 downcasted) {
[codex:1525766]
[codex:1525766] thinking
[codex:1525766] **Continuing to review additional lines**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '4500,4900p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 6ms:
[codex:1525766]
[codex:1525766] function send(
[codex:1525766] MessagingParams calldata _params,
[codex:1525766] address _refundAddress
[codex:1525766] ) external payable returns (MessagingReceipt memory);
[codex:1525766]
[codex:1525766] function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;
[codex:1525766]
[codex:1525766] function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);
[codex:1525766]
[codex:1525766] function initializable(Origin calldata _origin, address _receiver) external view returns (bool);
[codex:1525766]
[codex:1525766] function lzReceive(
[codex:1525766] Origin calldata _origin,
[codex:1525766] address _receiver,
[codex:1525766] bytes32 _guid,
[codex:1525766] bytes calldata _message,
[codex:1525766] bytes calldata _extraData
[codex:1525766] ) external payable;
[codex:1525766]
[codex:1525766]
[codex:1525766] thinking
[codex:1525766] **Continuing file review**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '4900,5122p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 6ms:
[codex:1525766] *
[codex:1525766] * @dev If the caller is trying to pay in the specified lzToken, then the lzTokenFee is passed to the endpoint.
[codex:1525766] * @dev Any excess sent, is passed back to the specified _refundAddress in the _lzSend().
[codex:1525766] */
[codex:1525766] function _payLzToken(uint256 _lzTokenFee) internal virtual {
[codex:1525766] // @dev Cannot cache the token because it is not immutable in the endpoint.
[codex:1525766] address lzToken = endpoint.lzToken();
[codex:1525766] if (lzToken == address(0)) revert LzTokenUnavailable();
[codex:1525766]
[codex:1525766] // Pay LZ token fee by sending tokens to the endpoint.
[codex:1525766] IERC20(lzToken).safeTransferFrom(msg.sender, address(endpoint), _lzTokenFee);
[codex:1525766] }
[codex:1525766] }
[codex:1525766]
[codex:1525766] ================================================================================
[codex:1525766] FILE: contracts/node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol
[codex:1525766] ================================================================================
[codex:1525766] // SPDX-License-Identifier: MIT
[codex:1525766]
[codex:1525766] pragma solidity ^0.8.20;
[codex:1525766]
[codex:1525766]
[codex:1525766]
[codex:1525766] thinking
[codex:1525766] **Evaluating USM contract for vulnerabilities**
[codex:1525766] thinking
[codex:1525766] **Highlighting accounting and slippage concerns**
[codex:1525766]
[codex:1525766] I’m noticing the sellAsset function lacks a check ensuring the actual asset amount sold doesn’t exceed the user’s maxAmount due to rounding and price conversions, which can cause users to spend more underlying than intended. Also, fee-on-transfer tokens may cause exposure mismatches since the contract assumes full transfer amounts. There are risks with token rebasing and external contract updates that could affect accounting integrity or cause reverts, so these math and accounting nuances deserve careful attention.
[codex:1525766] thinking
[codex:1525766] **Evaluating low-severity issues and upgrade nuances**
[codex:1525766]
[codex:1525766] I’m reviewing the missing maxAmount enforcement in sellAsset, confirming it can cause user overspending due to rounding and fee calculations—a low-severity correctness bug. I’m also noting possible subtle upgradeability quirks with immutable variables in proxy deployments and access control nuances, but no high-severity vulnerabilities stand out. I’ll prepare a detailed JSON summary with these key findings and supporting evidence from the code.
[codex:1525766] exec
[codex:1525766] /bin/bash -lc 'rg -n "function _sellAsset" contracts/contracts/usm/Usm.sol' in /tmp/codex-multi-2bssvp1n succeeded in 7ms:
[codex:1525766] 413: function _sellAsset(address originator, uint256 maxAmount, address receiver) internal returns (uint256, uint256) {
[codex:1525766]
[codex:1525766] thinking
[codex:1525766] **Reviewing code around line 413**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "nl -ba contracts/contracts/usm/Usm.sol | sed -n '400,460p'" in /tmp/codex-multi-2bssvp1n succeeded in 7ms:
[codex:1525766] 400 * @param amount The amount of the underlying asset desired for purchase
[codex:1525766] 401 * @param receiver Recipient address of the underlying asset being purchased
[codex:1525766] 402 */
[codex:1525766] 403 function _beforeBuyAsset(address originator, uint256 amount, address receiver) internal virtual {}
[codex:1525766] 404
[codex:1525766] 405 /**
[codex:1525766] 406 * @dev Sells an underlying asset for Stable Token
[codex:1525766] 407 * @param originator The originator of the request
[codex:1525766] 408 * @param maxAmount The maximum amount of the underlying asset desired to sell
[codex:1525766] 409 * @param receiver The recipient address of the Stable Token being purchased
[codex:1525766] 410 * @return The amount of underlying asset sold
[codex:1525766] 411 * @return The amount of Stable Token bought by the user
[codex:1525766] 412 */
[codex:1525766] 413 function _sellAsset(address originator, uint256 maxAmount, address receiver) internal returns (uint256, uint256) {
[codex:1525766] 414 (uint256 assetAmount, uint256 stableTokenBought, uint256 grossAmount, uint256 fee) =
[codex:1525766] 415 _calculateStableTokenAmountForSellAsset(maxAmount);
[codex:1525766] 416
[codex:1525766] 417 _beforeSellAsset(originator, assetAmount, receiver);
[codex:1525766] 418
[codex:1525766] 419 require(assetAmount > 0, "INVALID_AMOUNT");
[codex:1525766]
[codex:1525766] thinking
[codex:1525766] **Analyzing potential maxAmount check vulnerability**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc 'rg -n "_calculateStableTokenAmountForSellAsset" contracts/contracts/usm/Usm.sol' in /tmp/codex-multi-2bssvp1n succeeded in 7ms:
[codex:1525766] 271: return _calculateStableTokenAmountForSellAsset(maxAssetAmount);
[codex:1525766] 415: _calculateStableTokenAmountForSellAsset(maxAmount);
[codex:1525766] 476: function _calculateStableTokenAmountForSellAsset(uint256 assetAmount)
[codex:1525766]
[codex:1525766] thinking
[codex:1525766] **Reviewing additional lines**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "nl -ba contracts/contracts/usm/Usm.sol | sed -n '470,520p'" in /tmp/codex-multi-2bssvp1n succeeded in 7ms:
[codex:1525766] 470 * @param assetAmount The amount of underlying asset to sell
[codex:1525766] 471 * @return The exact amount of asset the user sells
[codex:1525766] 472 * @return The total amount of Stable Token the user buys (gross amount in Stable Token minus fee)
[codex:1525766] 473 * @return The gross amount of Stable Token
[codex:1525766] 474 * @return The fee amount in Stable Token, applied to the gross amount of Stable Token
[codex:1525766] 475 */
[codex:1525766] 476 function _calculateStableTokenAmountForSellAsset(uint256 assetAmount)
[codex:1525766] 477 internal
[codex:1525766] 478 view
[codex:1525766] 479 returns (uint256, uint256, uint256, uint256)
[codex:1525766] 480 {
[codex:1525766] 481 bool withFee = _feeStrategy != address(0);
[codex:1525766] 482 // pick the lowest Stable Token amount possible for given asset amount
[codex:1525766] 483 uint256 grossAmount = IUsmPriceStrategy(priceStrategy).getAssetPriceInStableToken(assetAmount, false);
[codex:1525766] 484 uint256 fee = withFee ? IUsmFeeStrategy(_feeStrategy).getSellFee(grossAmount) : 0;
[codex:1525766] 485 uint256 stableTokenBought = grossAmount - fee;
[codex:1525766] 486 uint256 finalGrossAmount =
[codex:1525766] 487 withFee ? IUsmFeeStrategy(_feeStrategy).getGrossAmountFromTotalSold(stableTokenBought) : stableTokenBought;
[codex:1525766] 488 // pick the highest asset amount possible for given Stable Token amount
[codex:1525766] 489 uint256 finalAssetAmount = IUsmPriceStrategy(priceStrategy).getStableTokenPriceInAsset(finalGrossAmount, true);
[codex:1525766]
[codex:1525766] thinking
[codex:1525766] **Preparing JSON report for rounding issue**
[codex:1525766]
[codex:1525766] I'm putting together a JSON object that summarizes a low-severity math issue with `sellAsset` in `Usm`, where rounding and fee adjustments can cause asset amounts to exceed the caller's max. I'll include a clear summary, finding details, exploit scenario, recommendation, evidence, and code locations, making sure the summary is a clean string and the JSON is valid.
[codex:1525766] codex
[codex:1525766] {"no_findings":false,"summary":"1 low-severity issue found in Usm where sellAsset can pull more underlying than the caller’s maxAmount due to fee/rounding adjustments.","findings":[{"severity":"low","category":"math","title":"sellAsset does not enforce the caller’s maxAmount after fee/rounding adjustments","exploit_scenario":"If the fee strategy rounds up and price conversions round up, _calculateStableTokenAmountForSellAsset(maxAmount) can return an assetAmount slightly greater than maxAmount. When a user has pre-approved a larger allowance, sellAsset will transfer the larger amount, exceeding the user’s intended cap and allowing a malicious UI or attacker to overcharge.","recommendation":"After computing assetAmount in _sellAsset, add a guard such as require(assetAmount <= maxAmount, \"EXCESS_ASSET_AMOUNT\"), or adjust _calculateStableTokenAmountForSellAsset so it never returns a value above the caller’s max input.","evidence":"_sellAsset computes assetAmount from maxAmount and transfers that amount without checking it against maxAmount. The calculation explicitly rounds the final asset amount up (getStableTokenPriceInAsset(..., true)), which can exceed the input when fees are applied.","locations":["contracts/contracts/usm/Usm.sol:413","contracts/contracts/usm/Usm.sol:476"]}]}
[codex:1525766] tokens used
[codex:1525766] 86,549
[codex:1525766] {"no_findings":false,"summary":"1 low-severity issue found in Usm where sellAsset can pull more underlying than the caller’s maxAmount due to fee/rounding adjustments.","findings":[{"severity":"low","category":"math","title":"sellAsset does not enforce the caller’s maxAmount after fee/rounding adjustments","exploit_scenario":"If the fee strategy rounds up and price conversions round up, _calculateStableTokenAmountForSellAsset(maxAmount) can return an assetAmount slightly greater than maxAmount. When a user has pre-approved a larger allowance, sellAsset will transfer the larger amount, exceeding the user’s intended cap and allowing a malicious UI or attacker to overcharge.","recommendation":"After computing assetAmount in _sellAsset, add a guard such as require(assetAmount <= maxAmount, \"EXCESS_ASSET_AMOUNT\"), or adjust _calculateStableTokenAmountForSellAsset so it never returns a value above the caller’s max input.","evidence":"_sellAsset computes assetAmount from maxAmount and transfers that amount without checking it against maxAmount. The calculation explicitly rounds the final asset amount up (getStableTokenPriceInAsset(..., true)), which can exceed the input when fees are applied.","locations":["contracts/contracts/usm/Usm.sol:413","contracts/contracts/usm/Usm.sol:476"]}]}
{
"codex": {
"ran_at": "2025-12-29T21:58:34.648555+00:00",
"returncode": 0
},
"summary": "1 low-severity issue found in Usm where sellAsset can pull more underlying than the caller\u2019s maxAmount due to fee/rounding adjustments.",
"raw_final": {
"summary": "1 low-severity issue found in Usm where sellAsset can pull more underlying than the caller\u2019s maxAmount due to fee/rounding adjustments.",
"findings": [
{
"title": "sellAsset does not enforce the caller\u2019s maxAmount after fee/rounding adjustments",
"category": "math",
"evidence": "_sellAsset computes assetAmount from maxAmount and transfers that amount without checking it against maxAmount. The calculation explicitly rounds the final asset amount up (getStableTokenPriceInAsset(..., true)), which can exceed the input when fees are applied.",
"severity": "low",
"locations": [
"contracts/contracts/usm/Usm.sol:413",
"contracts/contracts/usm/Usm.sol:476"
],
"recommendation": "After computing assetAmount in _sellAsset, add a guard such as require(assetAmount <= maxAmount, \"EXCESS_ASSET_AMOUNT\"), or adjust _calculateStableTokenAmountForSellAsset so it never returns a value above the caller\u2019s max input.",
"exploit_scenario": "If the fee strategy rounds up and price conversions round up, _calculateStableTokenAmountForSellAsset(maxAmount) can return an assetAmount slightly greater than maxAmount. When a user has pre-approved a larger allowance, sellAsset will transfer the larger amount, exceeding the user\u2019s intended cap and allowing a malicious UI or attacker to overcharge."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x028b 0000000c: JUMPI 0000000d: PUSH0 0000000e: CALLDATALOAD 0000000f: PUSH1 0xe0 00000011: SHR 00000012: DUP1 00000013: PUSH4 0x605297e1 00000018: GT 00000019: PUSH2 0x0155 0000001c: JUMPI 0000001d: DUP1 0000001e: PUSH4 0xaa443ac0 00000023: GT 00000024: PUSH2 0x00be 00000027: JUMPI 00000028: DUP1 00000029: PUSH4 0xd417e511 0000002e: GT 0000002f: PUSH2 0x0078 00000032: JUMPI 00000033: DUP1 00000034: PUSH4 0xd417e511 00000039: EQ 0000003a: PUSH2 0x082f 0000003d: JUMPI 0000003e: DUP1 0000003f: PUSH4 0xd547741f 00000044: EQ 00000045: PUSH2 0x084e 00000048: JUMPI 00000049: DUP1 0000004a: PUSH4 0xd853015e 0000004f: EQ 00000050: PUSH2 0x086d 00000053: JUMPI 00000054: DUP1 00000055: PUSH4 0xdf668eca 0000005a: EQ 0000005b: PUSH2 0x088d 0000005e: JUMPI 0000005f: DUP1 00000060: PUSH4 0xe6025393 00000065: EQ 00000066: PUSH2 0x08c0 00000069: JUMPI 0000006a: DUP1 0000006b: PUSH4 0xf160d369 00000070: EQ 00000071: PUSH2 0x08f3 00000074: JUMPI 00000075: PUSH0 00000076: PUSH0 00000077: REVERT 00000078: JUMPDEST 00000079: DUP1 0000007a: PUSH4 0xaa443ac0 0000007f: EQ 00000080: PUSH2 0x0758 00000083: JUMPI 00000084: DUP1 00000085: PUSH4 0xad3cb1cc 0000008a: EQ 0000008b: PUSH2 0x0777 0000008e: JUMPI 0000008f: DUP1 00000090: PUSH4 0xbd710448 00000095: EQ 00000096: PUSH2 0x07b4 00000099: JUMPI 0000009a: DUP1 0000009b: PUSH4 0xc876a2a7 000000a0: EQ 000000a1: PUSH2 0x07d2 000000a4: JUMPI 000000a5: DUP1 000000a6: PUSH4 0xcab46bc6 000000ab: EQ 000000ac: PUSH2 0x07f1 000000af: JUMPI 000000b0: DUP1 000000b1: PUSH4 0xcea9d26f 000000b6: EQ 000000b7: PUSH2 0x0810 000000ba: JUMPI 000000bb: PUSH0 000000bc: PUSH0 000000bd: REVERT 000000be: JUMPDEST 000000bf: DUP1 000000c0: PUSH4 0x9b745aec 000000c5: GT 000000c6: PUSH2 0x010f 000000c9: JUMPI 000000ca: DUP1 000000cb: PUSH4 0x9b745aec 000000d0: EQ 000000d1: PUSH2 0x06b1 000000d4: JUMPI 000000d5: DUP1 000000d6: PUSH4 0x9e7b0109 000000db: EQ 000000dc: PUSH2 0x06d5 000000df: JUMPI 000000e0: DUP1 000000e1: PUSH4 0xa217fddf 000000e6: EQ 000000e7: PUSH2 0x06f4 000000ea: JUMPI 000000eb: DUP1 000000ec: PUSH4 0xa6c8fb9a 000000f1: EQ 000000f2: PUSH2 0x0707 000000f5: JUMPI 000000f6: DUP1 000000f7: PUSH4 0xa9c3ebda 000000fc: EQ 000000fd: PUSH2 0x071a 00000100: JUMPI 00000101: DUP1 00000102: PUSH4 0xaa278b03 00000107: EQ 00000108: PUSH2 0x0739 0000010b: JUMPI 0000010c: PUSH0 0000010d: PUSH0 0000010e: REVERT 0000010f: JUMPDEST 00000110: DUP1 00000111: PUSH4 0x605297e1 00000116: EQ 00000117: PUSH2 0x05d3 0000011a: JUMPI 0000011b: DUP1 0000011c: PUSH4 0x7754f887 00000121: EQ 00000122: PUSH2 0x05e7 00000125: JUMPI 00000126: DUP1 00000127: PUSH4 0x80bc659a 0000012c: EQ 0000012d: PUSH2 0x061a 00000130: JUMPI 00000131: DUP1 00000132: PUSH4 0x8bcd9797 00000137: EQ 00000138: PUSH2 0x0638 0000013b: JUMPI 0000013c: DUP1 0000013d: PUSH4 0x8fa46890 00000142: EQ 00000143: PUSH2 0x066b 00000146: JUMPI 00000147: DUP1 00000148: PUSH4 0x91d14854 0000014d: EQ 0000014e: PUSH2 0x0692 00000151: JUMPI 00000152: PUSH0 00000153: PUSH0 00000154: REVERT 00000155: JUMPDEST 00000156: DUP1 00000157: PUSH4 0x36568abe 0000015c: GT 0000015d: PUSH2 0x01f7 00000160: JUMPI 00000161: DUP1 00000162: PUSH4 0x49cfb402 00000167: GT 00000168: PUSH2 0x01b1 0000016b: JUMPI 0000016c: DUP1 0000016d: PUSH4 0x49cfb402 00000172: EQ 00000173: PUSH2 0x051d 00000176: JUMPI 00000177: DUP1 00000178: PUSH4 0x4ccb20c0 0000017d: EQ 0000017e: PUSH2 0x0531 00000181: JUMPI 00000182: DUP1 00000183: PUSH4 0x4f1ef286 00000188: EQ 00000189: PUSH2 0x054e 0000018c: JUMPI 0000018d: DUP1 0000018e: PUSH4 0x519b657a 00000193: EQ 00000194: PUSH2 0x0561 00000197: JUMPI 00000198: DUP1 00000199: PUSH4 0x52d1902d 0000019e: EQ 0000019f: PUSH2 0x05a0 000001a2: JUMPI 000001a3: DUP1 000001a4: PUSH4 0x5921c8e0 000001a9: EQ 000001aa: PUSH2 0x05b4 000001ad: JUMPI 000001ae: PUSH0 000001af: PUSH0 000001b0: REVERT 000001b1: JUMPDEST 000001b2: DUP1 000001b3: PUSH4 0x36568abe 000001b8: EQ 000001b9: PUSH2 0x0449 000001bc: JUMPI 000001bd: DUP1 000001be: PUSH4 0x40fb07a0 000001c3: EQ 000001c4: PUSH2 0x0468 000001c7: JUMPI 000001c8: DUP1 000001c9: PUSH4 0x4101d9f4 000001ce: EQ 000001cf: PUSH2 0x049c 000001d2: JUMPI 000001d3: DUP1 000001d4: PUSH4 0x41787b0a 000001d9: EQ 000001da: PUSH2 0x04b9 000001dd: JUMPI 000001de: DUP1 000001df: PUSH4 0x430b0952 000001e4: EQ 000001e5: PUSH2 0x04d8 000001e8: JUMPI 000001e9: DUP1 000001ea: PUSH4 0x48c07568 000001ef: EQ 000001f0: PUSH2 0x04f7 000001f3: JUMPI 000001f4: PUSH0 000001f5: PUSH0 000001f6: REVERT 000001f7: JUMPDEST 000001f8: DUP1 000001f9: PUSH4 0x236fc8ad 000001fe: GT 000001ff: PUSH2 0x0248 00000202: JUMPI 00000203: DUP1 00000204: PUSH4 0x236fc8ad 00000209: EQ 0000020a: PUSH2 0x036a 0000020d: JUMPI 0000020e: DUP1 0000020f: PUSH4 0x24708ffc 00000214: EQ 00000215: PUSH2 0x0388 00000218: JUMPI 00000219: DUP1 0000021a: PUSH4 0x248a9ca3 0000021f: EQ 00000220: PUSH2 0x03b9 00000223: JUMPI 00000224: DUP1 00000225: PUSH4 0x2a90a827 0000022a: EQ 0000022b: PUSH2 0x03d8 0000022e: JUMPI 0000022f: DUP1 00000230: PUSH4 0x2f2ff15d 00000235: EQ 00000236: PUSH2 0x03f7 00000239: JUMPI 0000023a: DUP1 0000023b: PUSH4 0x353f03bd 00000240: EQ 00000241: PUSH2 0x0416 00000244: JUMPI 00000245: PUSH0 00000246: PUSH0 00000247: REVERT 00000248: JUMPDEST 00000249: DUP1 0000024a: PUSH4 0x01ffc9a7 0000024f: EQ 00000250: PUSH2 0x028f 00000253: JUMPI 00000254: DUP1 00000255: PUSH4 0x10ce0516 0000025a: EQ 0000025b: PUSH2 0x02c3 0000025e: JUMPI 0000025f: DUP1 00000260: PUSH4 0x110934d6 00000265: EQ 00000266: PUSH2 0x02d7 00000269: JUMPI 0000026a: DUP1 0000026b: PUSH4 0x16d8887a 00000270: EQ 00000271: PUSH2 0x02f9 00000274: JUMPI 00000275: DUP1 00000276: PUSH4 0x1f3da150 0000027b: EQ 0000027c: PUSH2 0x032c 0000027f: JUMPI 00000280: DUP1 00000281: PUSH4 0x211651a5 00000286: EQ 00000287: PUSH2 0x0349 0000028a: JUMPI 0000028b: JUMPDEST 0000028c: PUSH0 0000028d: PUSH0 0000028e: REVERT 0000028f: JUMPDEST 00000290: CALLVALUE 00000291: DUP1 00000292: ISZERO 00000293: PUSH2 0x029a 00000296: JUMPI 00000297: PUSH0 00000298: PUSH0 00000299: REVERT 0000029a: JUMPDEST 0000029b: POP 0000029c: PUSH2 0x02ae 0000029f: PUSH2 0x02a9 000002a2: CALLDATASIZE 000002a3: PUSH1 0x04 000002a5: PUSH2 0x3060 000002a8: JUMP 000002a9: JUMPDEST 000002aa: PUSH2 0x0912 000002ad: JUMP 000002ae: JUMPDEST 000002af: PUSH1 0x40 000002b1: MLOAD 000002b2: SWAP1 000002b3: ISZERO 000002b4: ISZERO 000002b5: DUP2 000002b6: MSTORE 000002b7: PUSH1 0x20 000002b9: ADD 000002ba: JUMPDEST 000002bb: PUSH1 0x40 000002bd: MLOAD 000002be: DUP1 000002bf: SWAP2 000002c0: SUB 000002c1: SWAP1 000002c2: RETURN 000002c3: JUMPDEST 000002c4: CALLVALUE 000002c5: DUP1 000002c6: ISZERO 000002c7: PUSH2 0x02ce 000002ca: JUMPI 000002cb: PUSH0 000002cc: PUSH0 000002cd: REVERT 000002ce: JUMPDEST 000002cf: POP 000002d0: PUSH2 0x02ae 000002d3: PUSH2 0x0948 000002d6: JUMP 000002d7: JUMPDEST 000002d8: CALLVALUE 000002d9: DUP1 000002da: ISZERO 000002db: PUSH2 0x02e2 000002de: JUMPI 000002df: PUSH0 000002e0: PUSH0 000002e1: REVERT 000002e2: JUMPDEST 000002e3: POP 000002e4: PUSH2 0x02eb 000002e7: PUSH2 0x0973 000002ea: JUMP 000002eb: JUMPDEST 000002ec: PUSH1 0x40 000002ee: MLOAD 000002ef: SWAP1 000002f0: DUP2 000002f1: MSTORE 000002f2: PUSH1 0x20 000002f4: ADD 000002f5: PUSH2 0x02ba 000002f8: JUMP 000002f9: JUMPDEST 000002fa: CALLVALUE 000002fb: DUP1 000002fc: ISZERO 000002fd: PUSH2 0x0304 00000300: JUMPI 00000301: PUSH0 00000302: PUSH0 00000303: REVERT 00000304: JUMPDEST 00000305: POP 00000306: PUSH2 0x02eb 00000309: PUSH32 0x5e17fc5225d4a099df75359ce1f405503ca79498a8dc46a7d583235a0ee45c16 0000032a: DUP2 0000032b: JUMP 0000032c: JUMPDEST 0000032d: CALLVALUE 0000032e: DUP1 0000032f: ISZERO 00000330: PUSH2 0x0337 00000333: JUMPI 00000334: PUSH0 00000335: PUSH0 00000336: REVERT 00000337: JUMPDEST 00000338: POP 00000339: PUSH1 0x04 0000033b: SLOAD 0000033c: PUSH1 0x01 0000033e: PUSH1 0x01 00000340: PUSH1 0x80 00000342: SHL 00000343: SUB 00000344: AND 00000345: PUSH2 0x02eb 00000348: JUMP 00000349: JUMPDEST 0000034a: CALLVALUE 0000034b: DUP1 0000034c: ISZERO 0000034d: PUSH2 0x0354 00000350: JUMPI 00000351: PUSH0 00000352: PUSH0 00000353: REVERT 00000354: JUMPDEST 00000355: POP 00000356: PUSH2 0x0368 00000359: PUSH2 0x0363 0000035c: CALLDATASIZE 0000035d: PUSH1 0x04 0000035f: PUSH2 0x309b 00000362: JUMP 00000363: JUMPDEST 00000364: PUSH2 0x09c3 00000367: JUMP 00000368: JUMPDEST 00000369: STOP 0000036a: JUMPDEST 0000036b: CALLVALUE 0000036c: DUP1 0000036d: ISZERO 0000036e: PUSH2 0x0375 00000371: JUMPI 00000372: PUSH0 00000373: PUSH0 00000374: REVERT 00000375: JUMPDEST 00000376: POP 00000377: PUSH1 0x02 00000379: SLOAD 0000037a: PUSH1 0x01 0000037c: PUSH1 0xa0 0000037e: SHL 0000037f: SWAP1 00000380: DIV 00000381: PUSH1 0xff 00000383: AND 00000384: PUSH2 0x02ae 00000387: JUMP 00000388: JUMPDEST 00000389: CALLVALUE 0000038a: DUP1 0000038b: ISZERO 0000038c: PUSH2 0x0393 0000038f: JUMPI 00000390: PUSH0 00000391: PUSH0 00000392: REVERT 00000393: JUMPDEST 00000394: POP 00000395: PUSH1 0x01 00000397: SLOAD 00000398: PUSH1 0x01 0000039a: PUSH1 0x01 0000039c: PUSH1 0xa0 0000039e: SHL 0000039f: SUB 000003a0: AND 000003a1: JUMPDEST 000003a2: PUSH1 0x40 000003a4: MLOAD 000003a5: PUSH1 0x01 000003a7: PUSH1 0x01 000003a9: PUSH1 0xa0 000003ab: SHL 000003ac: SUB 000003ad: SWAP1 000003ae: SWAP2 000003af: AND 000003b0: DUP2 000003b1: MSTORE 000003b2: PUSH1 0x20 000003b4: ADD 000003b5: PUSH2 0x02ba 000003b8: JUMP 000003b9: JUMPDEST 000003ba: CALLVALUE 000003bb: DUP1 000003bc: ISZERO 000003bd: PUSH2 0x03c4 000003c0: JUMPI 000003c1: PUSH0 000003c2: PUSH0 000003c3: REVERT 000003c4: JUMPDEST 000003c5: POP 000003c6: PUSH2 0x02eb 000003c9: PUSH2 0x03d3 000003cc: CALLDATASIZE 000003cd: PUSH1 0x04 000003cf: PUSH2 0x30b6 000003d2: JUMP 000003d3: JUMPDEST 000003d4: PUSH2 0x09e7 000003d7: JUMP 000003d8: JUMPDEST 000003d9: CALLVALUE 000003da: DUP1 000003db: ISZERO 000003dc: PUSH2 0x03e3 000003df: JUMPI 000003e0: PUSH0 000003e1: PUSH0 000003e2: REVERT 000003e3: JUMPDEST 000003e4: POP 000003e5: PUSH2 0x0368 000003e8: PUSH2 0x03f2 000003eb: CALLDATASIZE 000003ec: PUSH1 0x04 000003ee: PUSH2 0x30f6 000003f1: JUMP 000003f2: JUMPDEST 000003f3: PUSH2 0x0a07 000003f6: JUMP 000003f7: JUMPDEST 000003f8: CALLVALUE 000003f9: DUP1 000003fa: ISZERO 000003fb: PUSH2 0x0402 000003fe: JUMPI 000003ff: PUSH0 00000400: PUSH0 00000401: REVERT 00000402: JUMPDEST 00000403: POP 00000404: PUSH2 0x0368 00000407: PUSH2 0x0411 0000040a: CALLDATASIZE 0000040b: PUSH1 0x04 0000040d: PUSH2 0x315d 00000410: JUMP 00000411: JUMPDEST 00000412: PUSH2 0x0b08 00000415: JUMP 00000416: JUMPDEST 00000417: CALLVALUE 00000418: DUP1 00000419: ISZERO 0000041a: PUSH2 0x0421 0000041d: JUMPI 0000041e: PUSH0 0000041f: PUSH0 00000420: REVERT 00000421: JUMPDEST 00000422: POP 00000423: PUSH2 0x02eb 00000426: PUSH32 0x6dac4cc0544e34aa1a4ed2862f6de78290e3f18f00fe77179ee8ef34de9dfa24 00000447: DUP2 00000448: JUMP 00000449: JUMPDEST 0000044a: CALLVALUE 0000044b: DUP1 0000044c: ISZERO 0000044d: PUSH2 0x0454 00000450: JUMPI 00000451: PUSH0 00000452: PUSH0 00000453: REVERT 00000454: JUMPDEST 00000455: POP 00000456: PUSH2 0x0368 00000459: PUSH2 0x0463 0000045c: CALLDATASIZE 0000045d: PUSH1 0x04 0000045f: PUSH2 0x315d 00000462: JUMP 00000463: JUMPDEST 00000464: PUSH2 0x0b2a 00000467: JUMP 00000468: JUMPDEST 00000469: CALLVALUE 0000046a: DUP1 0000046b: ISZERO 0000046c: PUSH2 0x0473 0000046f: JUMPI 00000470: PUSH0 00000471: PUSH0 00000472: REVERT 00000473: JUMPDEST 00000474: POP 00000475: PUSH2 0x0487 00000478: PUSH2 0x0482 0000047b: CALLDATASIZE 0000047c: PUSH1 0x04 0000047e: PUSH2 0x315d 00000481: JUMP 00000482: JUMPDEST 00000483: PUSH2 0x0b62 00000486: JUMP 00000487: JUMPDEST 00000488: PUSH1 0x40 0000048a: DUP1 0000048b: MLOAD 0000048c: SWAP3 0000048d: DUP4 0000048e: MSTORE 0000048f: PUSH1 0x20 00000491: DUP4 00000492: ADD 00000493: SWAP2 00000494: SWAP1 00000495: SWAP2 00000496: MSTORE 00000497: ADD 00000498: PUSH2 0x02ba 0000049b: JUMP 0000049c: JUMPDEST 0000049d: CALLVALUE 0000049e: DUP1 0000049f: ISZERO 000004a0: PUSH2 0x04a7 000004a3: JUMPI 000004a4: PUSH0 000004a5: PUSH0 000004a6: REVERT 000004a7: JUMPDEST 000004a8: POP 000004a9: PUSH1 0x02 000004ab: SLOAD 000004ac: PUSH1 0x01 000004ae: PUSH1 0x01 000004b0: PUSH1 0xa0 000004b2: SHL 000004b3: SUB 000004b4: AND 000004b5: PUSH2 0x03a1 000004b8: JUMP 000004b9: JUMPDEST 000004ba: CALLVALUE 000004bb: DUP1 000004bc: ISZERO 000004bd: PUSH2 0x04c4 000004c0: JUMPI 000004c1: PUSH0 000004c2: PUSH0 000004c3: REVERT 000004c4: JUMPDEST 000004c5: POP 000004c6: PUSH2 0x0368 000004c9: PUSH2 0x04d3 000004cc: CALLDATASIZE 000004cd: PUSH1 0x04 000004cf: PUSH2 0x318b 000004d2: JUMP 000004d3: JUMPDEST 000004d4: PUSH2 0x0c82 000004d7: JUMP 000004d8: JUMPDEST 000004d9: CALLVALUE 000004da: DUP1 000004db: ISZERO 000004dc: PUSH2 0x04e3 000004df: JUMPI 000004e0: PUSH0 000004e1: PUSH0 000004e2: REVERT 000004e3: JUMPDEST 000004e4: POP 000004e5: PUSH2 0x0368 000004e8: PUSH2 0x04f2 000004eb: CALLDATASIZE 000004ec: PUSH1 0x04 000004ee: PUSH2 0x31a4 000004f1: JUMP 000004f2: JUMPDEST 000004f3: PUSH2 0x0ca2 000004f6: JUMP 000004f7: JUMPDEST 000004f8: CALLVALUE 000004f9: DUP1 000004fa: ISZERO 000004fb: PUSH2 0x0502 000004fe: JUMPI 000004ff: PUSH0 00000500: PUSH0 00000501: REVERT 00000502: JUMPDEST 00000503: POP 00000504: PUSH1 0x04 00000506: SLOAD 00000507: PUSH1 0x01 00000509: PUSH1 0x80 0000050b: SHL 0000050c: SWAP1 0000050d: DIV 0000050e: PUSH1 0xff 00000510: AND 00000511: PUSH1 0x40 00000513: MLOAD 00000514: PUSH2 0x02ba 00000517: SWAP2 00000518: SWAP1 00000519: PUSH2 0x31d1 0000051c: JUMP 0000051d: JUMPDEST 0000051e: CALLVALUE 0000051f: DUP1 00000520: ISZERO 00000521: PUSH2 0x0528 00000524: JUMPI 00000525: PUSH0 00000526: PUSH0 00000527: REVERT 00000528: JUMPDEST 00000529: POP 0000052a: PUSH2 0x0368 0000052d: PUSH2 0x0cc2 00000530: JUMP 00000531: JUMPDEST 00000532: CALLVALUE 00000533: DUP1 00000534: ISZERO 00000535: PUSH2 0x053c 00000538: JUMPI 00000539: PUSH0 0000053a: PUSH0 0000053b: REVERT 0000053c: JUMPDEST 0000053d: POP 0000053e: PUSH1 0x05 00000540: SLOAD 00000541: PUSH1 0x01 00000543: PUSH1 0x01 00000545: PUSH1 0xa0 00000547: SHL 00000548: SUB 00000549: AND 0000054a: PUSH2 0x03a1 0000054d: JUMP 0000054e: JUMPDEST 0000054f: PUSH2 0x0368 00000552: PUSH2 0x055c 00000555: CALLDATASIZE 00000556: PUSH1 0x04 00000558: PUSH2 0x320b 0000055b: JUMP 0000055c: JUMPDEST 0000055d: PUSH2 0x0d9e 00000560: JUMP 00000561: JUMPDEST 00000562: CALLVALUE 00000563: DUP1 00000564: ISZERO 00000565: PUSH2 0x056c 00000568: JUMPI 00000569: PUSH0 0000056a: PUSH0 0000056b: REVERT 0000056c: JUMPDEST 0000056d: POP 0000056e: PUSH2 0x0580 00000571: PUSH2 0x057b 00000574: CALLDATASIZE 00000575: PUSH1 0x04 00000577: PUSH2 0x30b6 0000057a: JUMP 0000057b: JUMPDEST 0000057c: PUSH2 0x0db9 0000057f: JUMP 00000580: JUMPDEST 00000581: PUSH1 0x40 00000583: DUP1 00000584: MLOAD 00000585: SWAP5 00000586: DUP6 00000587: MSTORE 00000588: PUSH1 0x20 0000058a: DUP6 0000058b: ADD 0000058c: SWAP4 0000058d: SWAP1 0000058e: SWAP4 0000058f: MSTORE 00000590: SWAP2 00000591: DUP4 00000592: ADD 00000593: MSTORE 00000594: PUSH1 0x60 00000596: DUP3 00000597: ADD 00000598: MSTORE 00000599: PUSH1 0x80 0000059b: ADD 0000059c: PUSH2 0x02ba 0000059f: JUMP 000005a0: JUMPDEST 000005a1: CALLVALUE 000005a2: DUP1 000005a3: ISZERO 000005a4: PUSH2 0x05ab 000005a7: JUMPI 000005a8: PUSH0 000005a9: PUSH0 000005aa: REVERT 000005ab: JUMPDEST 000005ac: POP 000005ad: PUSH2 0x02eb 000005b0: PUSH2 0x0dd5 000005b3: JUMP 000005b4: JUMPDEST 000005b5: CALLVALUE 000005b6: DUP1 000005b7: ISZERO 000005b8: PUSH2 0x05bf 000005bb: JUMPI 000005bc: PUSH0 000005bd: PUSH0 000005be: REVERT 000005bf: JUMPDEST 000005c0: POP 000005c1: PUSH2 0x02eb 000005c4: PUSH2 0x05ce 000005c7: CALLDATASIZE 000005c8: PUSH1 0x04 000005ca: PUSH2 0x30b6 000005cd: JUMP 000005ce: JUMPDEST 000005cf: PUSH2 0x0df0 000005d2: JUMP 000005d3: JUMPDEST 000005d4: CALLVALUE 000005d5: DUP1 000005d6: ISZERO 000005d7: PUSH2 0x05de 000005da: JUMPI 000005db: PUSH0 000005dc: PUSH0 000005dd: REVERT 000005de: JUMPDEST 000005df: POP 000005e0: PUSH2 0x02eb 000005e3: PUSH2 0x0f27 000005e6: JUMP 000005e7: JUMPDEST 000005e8: CALLVALUE 000005e9: DUP1 000005ea: ISZERO 000005eb: PUSH2 0x05f2 000005ee: JUMPI 000005ef: PUSH0 000005f0: PUSH0 000005f1: REVERT 000005f2: JUMPDEST 000005f3: POP 000005f4: PUSH2 0x03a1 000005f7: PUSH32 0x00000000000000000000000063d74d22e689c715a04f2c13962b1f77f443d35b 00000618: DUP2 00000619: JUMP 0000061a: JUMPDEST 0000061b: CALLVALUE 0000061c: DUP1 0000061d: ISZERO 0000061e: PUSH2 0x0625 00000621: JUMPI 00000622: PUSH0 00000623: PUSH0 00000624: REVERT 00000625: JUMPDEST 00000626: POP 00000627: PUSH1 0x02 00000629: SLOAD 0000062a: PUSH1 0x01 0000062c: PUSH1 0xa8 0000062e: SHL 0000062f: SWAP1 00000630: DIV 00000631: PUSH1 0xff 00000633: AND 00000634: PUSH2 0x02ae 00000637: JUMP 00000638: JUMPDEST 00000639: CALLVALUE 0000063a: DUP1 0000063b: ISZERO 0000063c: PUSH2 0x0643 0000063f: JUMPI 00000640: PUSH0 00000641: PUSH0 00000642: REVERT 00000643: JUMPDEST 00000644: POP 00000645: PUSH2 0x02eb 00000648: PUSH32 0xbf63066482b01a20567880b14a2934fecb21c925e6bcc0a0a091c59723fa9c06 00000669: DUP2 0000066a: JUMP 0000066b: JUMPDEST 0000066c: CALLVALUE 0000066d: DUP1 0000066e: ISZERO 0000066f: PUSH2 0x0676 00000672: JUMPI 00000673: PUSH0 00000674: PUSH0 00000675: REVERT 00000676: JUMPDEST 00000677: POP 00000678: PUSH1 0x03 0000067a: SLOAD 0000067b: PUSH1 0x40 0000067d: MLOAD 0000067e: PUSH1 0x01 00000680: PUSH1 0x01 00000682: PUSH1 0x80 00000684: SHL 00000685: SUB 00000686: SWAP1 00000687: SWAP2 00000688: AND 00000689: DUP2 0000068a: MSTORE 0000068b: PUSH1 0x20 0000068d: ADD 0000068e: PUSH2 0x02ba 00000691: JUMP 00000692: JUMPDEST 00000693: CALLVALUE 00000694: DUP1 00000695: ISZERO 00000696: PUSH2 0x069d 00000699: JUMPI 0000069a: PUSH0 0000069b: PUSH0 0000069c: REVERT 0000069d: JUMPDEST 0000069e: POP 0000069f: PUSH2 0x02ae 000006a2: PUSH2 0x06ac 000006a5: CALLDATASIZE 000006a6: PUSH1 0x04 000006a8: PUSH2 0x315d 000006ab: JUMP 000006ac: JUMPDEST 000006ad: PUSH2 0x10df 000006b0: JUMP 000006b1: JUMPDEST 000006b2: CALLVALUE 000006b3: DUP1 000006b4: ISZERO 000006b5: PUSH2 0x06bc 000006b8: JUMPI 000006b9: PUSH0 000006ba: PUSH0 000006bb: REVERT 000006bc: JUMPDEST 000006bd: POP 000006be: PUSH1 0x03 000006c0: SLOAD 000006c1: PUSH1 0x01 000006c3: PUSH1 0x80 000006c5: SHL 000006c6: SWAP1 000006c7: DIV 000006c8: PUSH1 0x01 000006ca: PUSH1 0x01 000006cc: PUSH1 0x80 000006ce: SHL 000006cf: SUB 000006d0: AND 000006d1: PUSH2 0x02eb 000006d4: JUMP 000006d5: JUMPDEST 000006d6: CALLVALUE 000006d7: DUP1 000006d8: ISZERO 000006d9: PUSH2 0x06e0 000006dc: JUMPI 000006dd: PUSH0 000006de: PUSH0 000006df: REVERT 000006e0: JUMPDEST 000006e1: POP 000006e2: PUSH2 0x0368 000006e5: PUSH2 0x06ef 000006e8: CALLDATASIZE 000006e9: PUSH1 0x04 000006eb: PUSH2 0x309b 000006ee: JUMP 000006ef: JUMPDEST 000006f0: PUSH2 0x1115 000006f3: JUMP 000006f4: JUMPDEST 000006f5: CALLVALUE 000006f6: DUP1 000006f7: ISZERO 000006f8: PUSH2 0x06ff 000006fb: JUMPI 000006fc: PUSH0 000006fd: PUSH0 000006fe: REVERT 000006ff: JUMPDEST 00000700: POP 00000701: PUSH2 0x02eb 00000704: PUSH0 00000705: DUP2 00000706: JUMP 00000707: JUMPDEST 00000708: CALLVALUE 00000709: DUP1 0000070a: ISZERO 0000070b: PUSH2 0x0712 0000070e: JUMPI 0000070f: PUSH0 00000710: PUSH0 00000711: REVERT 00000712: JUMPDEST 00000713: POP 00000714: PUSH1 0x01 00000716: PUSH2 0x02eb 00000719: JUMP 0000071a: JUMPDEST 0000071b: CALLVALUE 0000071c: DUP1 0000071d: ISZERO 0000071e: PUSH2 0x0725 00000721: JUMPI 00000722: PUSH0 00000723: PUSH0 00000724: REVERT 00000725: JUMPDEST 00000726: POP 00000727: PUSH2 0x0580 0000072a: PUSH2 0x0734 0000072d: CALLDATASIZE 0000072e: PUSH1 0x04 00000730: PUSH2 0x30b6 00000733: JUMP 00000734: JUMPDEST 00000735: PUSH2 0x1135 00000738: JUMP 00000739: JUMPDEST 0000073a: CALLVALUE 0000073b: DUP1 0000073c: ISZERO 0000073d: PUSH2 0x0744 00000740: JUMPI 00000741: PUSH0 00000742: PUSH0 00000743: REVERT 00000744: JUMPDEST 00000745: POP 00000746: PUSH2 0x0580 00000749: PUSH2 0x0753 0000074c: CALLDATASIZE 0000074d: PUSH1 0x04 0000074f: PUSH2 0x30b6 00000752: JUMP 00000753: JUMPDEST 00000754: PUSH2 0x1348 00000757: JUMP 00000758: JUMPDEST 00000759: CALLVALUE 0000075a: DUP1 0000075b: ISZERO 0000075c: PUSH2 0x0763 0000075f: JUMPI 00000760: PUSH0 00000761: PUSH0 00000762: REVERT 00000763: JUMPDEST 00000764: POP 00000765: PUSH2 0x0487 00000768: PUSH2 0x0772 0000076b: CALLDATASIZE 0000076c: PUSH1 0x04 0000076e: PUSH2 0x315d 00000771: JUMP 00000772: JUMPDEST 00000773: PUSH2 0x1549 00000776: JUMP 00000777: JUMPDEST 00000778: CALLVALUE 00000779: DUP1 0000077a: ISZERO 0000077b: PUSH2 0x0782 0000077e: JUMPI 0000077f: PUSH0 00000780: PUSH0 00000781: REVERT 00000782: JUMPDEST 00000783: POP 00000784: PUSH2 0x07a7 00000787: PUSH1 0x40 00000789: MLOAD 0000078a: DUP1 0000078b: PUSH1 0x40 0000078d: ADD 0000078e: PUSH1 0x40 00000790: MSTORE 00000791: DUP1 00000792: PUSH1 0x05 00000794: DUP2 00000795: MSTORE 00000796: PUSH1 0x20 00000798: ADD 00000799: PUSH5 0x0352e302e3 0000079f: PUSH1 0xdc 000007a1: SHL 000007a2: DUP2 000007a3: MSTORE 000007a4: POP 000007a5: DUP2 000007a6: JUMP 000007a7: JUMPDEST 000007a8: PUSH1 0x40 000007aa: MLOAD 000007ab: PUSH2 0x02ba 000007ae: SWAP2 000007af: SWAP1 000007b0: PUSH2 0x32d1 000007b3: JUMP 000007b4: JUMPDEST 000007b5: CALLVALUE 000007b6: DUP1 000007b7: ISZERO 000007b8: PUSH2 0x07bf 000007bb: JUMPI 000007bc: PUSH0 000007bd: PUSH0 000007be: REVERT 000007bf: JUMPDEST 000007c0: POP 000007c1: PUSH0 000007c2: SLOAD 000007c3: PUSH2 0x03a1 000007c6: SWAP1 000007c7: PUSH1 0x01 000007c9: PUSH1 0x01 000007cb: PUSH1 0xa0 000007cd: SHL 000007ce: SUB 000007cf: AND 000007d0: DUP2 000007d1: JUMP 000007d2: JUMPDEST 000007d3: CALLVALUE 000007d4: DUP1 000007d5: ISZERO 000007d6: PUSH2 0x07dd 000007d9: JUMPI 000007da: PUSH0 000007db: PUSH0 000007dc: REVERT 000007dd: JUMPDEST 000007de: POP 000007df: PUSH2 0x0368 000007e2: PUSH2 0x07ec 000007e5: CALLDATASIZE 000007e6: PUSH1 0x04 000007e8: PUSH2 0x309b 000007eb: JUMP 000007ec: JUMPDEST 000007ed: PUSH2 0x1658 000007f0: JUMP 000007f1: JUMPDEST 000007f2: CALLVALUE 000007f3: DUP1 000007f4: ISZERO 000007f5: PUSH2 0x07fc 000007f8: JUMPI 000007f9: PUSH0 000007fa: PUSH0 000007fb: REVERT 000007fc: JUMPDEST 000007fd: POP 000007fe: PUSH2 0x0368 00000801: PUSH2 0x080b 00000804: CALLDATASIZE 00000805: PUSH1 0x04 00000807: PUSH2 0x3306 0000080a: JUMP 0000080b: JUMPDEST 0000080c: PUSH2 0x1678 0000080f: JUMP 00000810: JUMPDEST 00000811: CALLVALUE 00000812: DUP1 00000813: ISZERO 00000814: PUSH2 0x081b 00000817: JUMPI 00000818: PUSH0 00000819: PUSH0 0000081a: REVERT 0000081b: JUMPDEST 0000081c: POP 0000081d: PUSH2 0x0368 00000820: PUSH2 0x082a 00000823: CALLDATASIZE 00000824: PUSH1 0x04 00000826: PUSH2 0x3325 00000829: JUMP 0000082a: JUMPDEST 0000082b: PUSH2 0x17a7 0000082e: JUMP 0000082f: JUMPDEST 00000830: CALLVALUE 00000831: DUP1 00000832: ISZERO 00000833: PUSH2 0x083a 00000836: JUMPI 00000837: PUSH0 00000838: PUSH0 00000839: REVERT 0000083a: JUMPDEST 0000083b: POP 0000083c: PUSH2 0x0580 0000083f: PUSH2 0x0849 00000842: CALLDATASIZE 00000843: PUSH1 0x04 00000845: PUSH2 0x30b6 00000848: JUMP 00000849: JUMPDEST 0000084a: PUSH2 0x1a96 0000084d: JUMP 0000084e: JUMPDEST 0000084f: CALLVALUE 00000850: DUP1 00000851: ISZERO 00000852: PUSH2 0x0859 00000855: JUMPI 00000856: PUSH0 00000857: PUSH0 00000858: REVERT 00000859: JUMPDEST 0000085a: POP 0000085b: PUSH2 0x0368 0000085e: PUSH2 0x0868 00000861: CALLDATASIZE 00000862: PUSH1 0x04 00000864: PUSH2 0x315d 00000867: JUMP 00000868: JUMPDEST 00000869: PUSH2 0x1aa3 0000086c: JUMP 0000086d: JUMPDEST 0000086e: CALLVALUE 0000086f: DUP1 00000870: ISZERO 00000871: PUSH2 0x0878 00000874: JUMPI 00000875: PUSH0 00000876: PUSH0 00000877: REVERT 00000878: JUMPDEST 00000879: POP 0000087a: PUSH2 0x02eb 0000087d: PUSH0 0000087e: MLOAD 0000087f: PUSH1 0x20 00000881: PUSH2 0x3492 00000884: PUSH0 00000885: CODECOPY 00000886: PUSH0 00000887: MLOAD 00000888: SWAP1 00000889: PUSH0 0000088a: MSTORE 0000088b: DUP2 0000088c: JUMP 0000088d: JUMPDEST 0000088e: CALLVALUE 0000088f: DUP1 00000890: ISZERO 00000891: PUSH2 0x0898 00000894: JUMPI 00000895: PUSH0 00000896: PUSH0 00000897: REVERT 00000898: JUMPDEST 00000899: POP 0000089a: PUSH2 0x02eb 0000089d: PUSH32 0x724f6a44d576143e18c60911798b2b15551ca96bd8f7cb7524b8fa36253a26d8 000008be: DUP2 000008bf: JUMP 000008c0: JUMPDEST 000008c1: CALLVALUE 000008c2: DUP1 000008c3: ISZERO 000008c4: PUSH2 0x08cb 000008c7: JUMPI 000008c8: PUSH0 000008c9: PUSH0 000008ca: REVERT 000008cb: JUMPDEST 000008cc: POP 000008cd: PUSH2 0x03a1 000008d0: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 000008f1: DUP2 000008f2: JUMP 000008f3: JUMPDEST 000008f4: CALLVALUE 000008f5: DUP1 000008f6: ISZERO 000008f7: PUSH2 0x08fe 000008fa: JUMPI 000008fb: PUSH0 000008fc: PUSH0 000008fd: REVERT 000008fe: JUMPDEST 000008ff: POP 00000900: PUSH2 0x0368 00000903: PUSH2 0x090d 00000906: CALLDATASIZE 00000907: PUSH1 0x04 00000909: PUSH2 0x309b 0000090c: JUMP 0000090d: JUMPDEST 0000090e: PUSH2 0x1abf 00000911: JUMP 00000912: JUMPDEST 00000913: PUSH0 00000914: PUSH1 0x01 00000916: PUSH1 0x01 00000918: PUSH1 0xe0 0000091a: SHL 0000091b: SUB 0000091c: NOT 0000091d: DUP3 0000091e: AND 0000091f: PUSH4 0x7965db0b 00000924: PUSH1 0xe0 00000926: SHL 00000927: EQ 00000928: DUP1 00000929: PUSH2 0x0942 0000092c: JUMPI 0000092d: POP 0000092e: PUSH4 0x01ffc9a7 00000933: PUSH1 0xe0 00000935: SHL 00000936: PUSH1 0x01 00000938: PUSH1 0x01 0000093a: PUSH1 0xe0 0000093c: SHL 0000093d: SUB 0000093e: NOT 0000093f: DUP4 00000940: AND 00000941: EQ 00000942: JUMPDEST 00000943: SWAP3 00000944: SWAP2 00000945: POP 00000946: POP 00000947: JUMP 00000948: JUMPDEST 00000949: PUSH1 0x02 0000094b: SLOAD 0000094c: PUSH0 0000094d: SWAP1 0000094e: PUSH1 0x01 00000950: PUSH1 0xa0 00000952: SHL 00000953: SWAP1 00000954: DIV 00000955: PUSH1 0xff 00000957: AND 00000958: ISZERO 00000959: DUP1 0000095a: ISZERO 0000095b: PUSH2 0x096e 0000095e: JUMPI 0000095f: POP 00000960: PUSH1 0x02 00000962: SLOAD 00000963: PUSH1 0x01 00000965: PUSH1 0xa8 00000967: SHL 00000968: SWAP1 00000969: DIV 0000096a: PUSH1 0xff 0000096c: AND 0000096d: ISZERO 0000096e: JUMPDEST 0000096f: SWAP1 00000970: POP 00000971: SWAP1 00000972: JUMP 00000973: JUMPDEST 00000974: PUSH1 0x03 00000976: SLOAD 00000977: PUSH0 00000978: SWAP1 00000979: PUSH1 0x01 0000097b: PUSH1 0x01 0000097d: PUSH1 0x80 0000097f: SHL 00000980: SUB 00000981: PUSH1 0x01 00000983: PUSH1 0x80 00000985: SHL 00000986: DUP3 00000987: DIV 00000988: DUP2 00000989: AND 0000098a: SWAP2 0000098b: AND 0000098c: GT 0000098d: PUSH2 0x0996 00000990: JUMPI 00000991: PUSH0 00000992: PUSH2 0x09b5 00000995: JUMP 00000996: JUMPDEST 00000997: PUSH1 0x03 00000999: SLOAD 0000099a: PUSH2 0x09b5 0000099d: SWAP1 0000099e: PUSH1 0x01 000009a0: PUSH1 0x01 000009a2: PUSH1 0x80 000009a4: SHL 000009a5: SUB 000009a6: PUSH1 0x01 000009a8: PUSH1 0x80 000009aa: SHL 000009ab: DUP3 000009ac: DIV 000009ad: DUP2 000009ae: AND 000009af: SWAP2 000009b0: AND 000009b1: PUSH2 0x3377 000009b4: JUMP 000009b5: JUMPDEST 000009b6: PUSH1 0x01 000009b8: PUSH1 0x01 000009ba: PUSH1 0x80 000009bc: SHL 000009bd: SUB 000009be: AND 000009bf: SWAP1 000009c0: POP 000009c1: SWAP1 000009c2: JUMP 000009c3: JUMPDEST 000009c4: PUSH0 000009c5: MLOAD 000009c6: PUSH1 0x20 000009c8: PUSH2 0x3492 000009cb: PUSH0 000009cc: CODECOPY 000009cd: PUSH0 000009ce: MLOAD 000009cf: SWAP1 000009d0: PUSH0 000009d1: MSTORE 000009d2: PUSH2 0x09da 000009d5: DUP2 000009d6: PUSH2 0x1adf 000009d9: JUMP 000009da: JUMPDEST 000009db: PUSH2 0x09e3 000009de: DUP3 000009df: PUSH2 0x1ae9 000009e2: JUMP 000009e3: JUMPDEST 000009e4: POP 000009e5: POP 000009e6: JUMP 000009e7: JUMPDEST 000009e8: PUSH0 000009e9: SWAP1 000009ea: DUP2 000009eb: MSTORE 000009ec: PUSH0 000009ed: MLOAD 000009ee: PUSH1 0x20 000009f0: PUSH2 0x34d2 000009f3: PUSH0 000009f4: CODECOPY 000009f5: PUSH0 000009f6: MLOAD 000009f7: SWAP1 000009f8: PUSH0 000009f9: MSTORE 000009fa: PUSH1 0x20 000009fc: MSTORE 000009fd: PUSH1 0x40 000009ff: SWAP1 00000a00: KECCAK256 00000a01: PUSH1 0x01 00000a03: ADD 00000a04: SLOAD 00000a05: SWAP1 00000a06: JUMP 00000a07: JUMPDEST 00000a08: PUSH0 00000a09: PUSH2 0x0a10 00000a0c: PUSH2 0x1b89 00000a0f: JUMP 00000a10: JUMPDEST 00000a11: DUP1 00000a12: SLOAD 00000a13: SWAP1 00000a14: SWAP2 00000a15: POP 00000a16: PUSH1 0xff 00000a18: PUSH1 0x01 00000a1a: PUSH1 0x40 00000a1c: SHL 00000a1d: DUP3 00000a1e: DIV 00000a1f: AND 00000a20: ISZERO 00000a21: SWAP1 00000a22: PUSH8 0xffffffffffffffff 00000a2b: AND 00000a2c: PUSH0 00000a2d: DUP2 00000a2e: ISZERO 00000a2f: DUP1 00000a30: ISZERO 00000a31: PUSH2 0x0a37 00000a34: JUMPI 00000a35: POP 00000a36: DUP3 00000a37: JUMPDEST 00000a38: SWAP1 00000a39: POP 00000a3a: PUSH0 00000a3b: DUP3 00000a3c: PUSH8 0xffffffffffffffff 00000a45: AND 00000a46: PUSH1 0x01 00000a48: EQ 00000a49: DUP1 00000a4a: ISZERO 00000a4b: PUSH2 0x0a53 00000a4e: JUMPI 00000a4f: POP 00000a50: ADDRESS 00000a51: EXTCODESIZE 00000a52: ISZERO 00000a53: JUMPDEST 00000a54: SWAP1 00000a55: POP 00000a56: DUP2 00000a57: ISZERO 00000a58: DUP1 00000a59: ISZERO 00000a5a: PUSH2 0x0a61 00000a5d: JUMPI 00000a5e: POP 00000a5f: DUP1 00000a60: ISZERO 00000a61: JUMPDEST 00000a62: ISZERO 00000a63: PUSH2 0x0a7f 00000a66: JUMPI 00000a67: PUSH1 0x40 00000a69: MLOAD 00000a6a: PUSH4 0xf92ee8a9 00000a6f: PUSH1 0xe0 00000a71: SHL 00000a72: DUP2 00000a73: MSTORE 00000a74: PUSH1 0x04 00000a76: ADD 00000a77: PUSH1 0x40 00000a79: MLOAD 00000a7a: DUP1 00000a7b: SWAP2 00000a7c: SUB 00000a7d: SWAP1 00000a7e: REVERT 00000a7f: JUMPDEST 00000a80: DUP5 00000a81: SLOAD 00000a82: PUSH8 0xffffffffffffffff 00000a8b: NOT 00000a8c: AND 00000a8d: PUSH1 0x01 00000a8f: OR 00000a90: DUP6 00000a91: SSTORE 00000a92: DUP4 00000a93: ISZERO 00000a94: PUSH2 0x0aa9 00000a97: JUMPI 00000a98: DUP5 00000a99: SLOAD 00000a9a: PUSH1 0xff 00000a9c: PUSH1 0x40 00000a9e: SHL 00000a9f: NOT 00000aa0: AND 00000aa1: PUSH1 0x01 00000aa3: PUSH1 0x40 00000aa5: SHL 00000aa6: OR 00000aa7: DUP6 00000aa8: SSTORE 00000aa9: JUMPDEST 00000aaa: PUSH2 0x0ab6 00000aad: DUP11 00000aae: DUP11 00000aaf: DUP11 00000ab0: DUP11 00000ab1: DUP11 00000ab2: PUSH2 0x1bb1 00000ab5: JUMP 00000ab6: JUMPDEST 00000ab7: DUP4 00000ab8: ISZERO 00000ab9: PUSH2 0x0afc 00000abc: JUMPI 00000abd: DUP5 00000abe: SLOAD 00000abf: PUSH1 0xff 00000ac1: PUSH1 0x40 00000ac3: SHL 00000ac4: NOT 00000ac5: AND 00000ac6: DUP6 00000ac7: SSTORE 00000ac8: PUSH1 0x40 00000aca: MLOAD 00000acb: PUSH1 0x01 00000acd: DUP2 00000ace: MSTORE 00000acf: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2 00000af0: SWAP1 00000af1: PUSH1 0x20 00000af3: ADD 00000af4: PUSH1 0x40 00000af6: MLOAD 00000af7: DUP1 00000af8: SWAP2 00000af9: SUB 00000afa: SWAP1 00000afb: LOG1 00000afc: JUMPDEST 00000afd: POP 00000afe: POP 00000aff: POP 00000b00: POP 00000b01: POP 00000b02: POP 00000b03: POP 00000b04: POP 00000b05: POP 00000b06: POP 00000b07: JUMP 00000b08: JUMPDEST 00000b09: PUSH2 0x0b11 00000b0c: DUP3 00000b0d: PUSH2 0x09e7 00000b10: JUMP 00000b11: JUMPDEST 00000b12: PUSH2 0x0b1a 00000b15: DUP2 00000b16: PUSH2 0x1adf 00000b19: JUMP 00000b1a: JUMPDEST 00000b1b: PUSH2 0x0b24 00000b1e: DUP4 00000b1f: DUP4 00000b20: PUSH2 0x1c66 00000b23: JUMP 00000b24: JUMPDEST 00000b25: POP 00000b26: POP 00000b27: POP 00000b28: POP 00000b29: JUMP 00000b2a: JUMPDEST 00000b2b: PUSH1 0x01 00000b2d: PUSH1 0x01 00000b2f: PUSH1 0xa0 00000b31: SHL 00000b32: SUB 00000b33: DUP2 00000b34: AND 00000b35: CALLER 00000b36: EQ 00000b37: PUSH2 0x0b53 00000b3a: JUMPI 00000b3b: PUSH1 0x40 00000b3d: MLOAD 00000b3e: PUSH4 0x334bd919 00000b43: PUSH1 0xe1 00000b45: SHL 00000b46: DUP2 00000b47: MSTORE 00000b48: PUSH1 0x04 00000b4a: ADD 00000b4b: PUSH1 0x40 00000b4d: MLOAD 00000b4e: DUP1 00000b4f: SWAP2 00000b50: SUB 00000b51: SWAP1 00000b52: REVERT 00000b53: JUMPDEST 00000b54: PUSH2 0x0b5d 00000b57: DUP3 00000b58: DUP3 00000b59: PUSH2 0x1d07 00000b5c: JUMP 00000b5d: JUMPDEST 00000b5e: POP 00000b5f: POP 00000b60: POP 00000b61: JUMP 00000b62: JUMPDEST 00000b63: PUSH1 0x02 00000b65: SLOAD 00000b66: PUSH0 00000b67: SWAP1 00000b68: DUP2 00000b69: SWAP1 00000b6a: PUSH1 0x01 00000b6c: PUSH1 0xa0 00000b6e: SHL 00000b6f: SWAP1 00000b70: DIV 00000b71: PUSH1 0xff 00000b73: AND 00000b74: ISZERO 00000b75: PUSH2 0x0bb2 00000b78: JUMPI 00000b79: PUSH1 0x40 00000b7b: MLOAD 00000b7c: PUSH3 0x461bcd 00000b80: PUSH1 0xe5 00000b82: SHL 00000b83: DUP2 00000b84: MSTORE 00000b85: PUSH1 0x20 00000b87: PUSH1 0x04 00000b89: DUP3 00000b8a: ADD 00000b8b: MSTORE 00000b8c: PUSH1 0x0a 00000b8e: PUSH1 0x24 00000b90: DUP3 00000b91: ADD 00000b92: MSTORE 00000b93: PUSH10 0x2aa9a6afa32927ad22a7 00000b9e: PUSH1 0xb1 00000ba0: SHL 00000ba1: PUSH1 0x44 00000ba3: DUP3 00000ba4: ADD 00000ba5: MSTORE 00000ba6: PUSH1 0x64 00000ba8: ADD 00000ba9: JUMPDEST 00000baa: PUSH1 0x40 00000bac: MLOAD 00000bad: DUP1 00000bae: SWAP2 00000baf: SUB 00000bb0: SWAP1 00000bb1: REVERT 00000bb2: JUMPDEST 00000bb3: PUSH1 0x02 00000bb5: SLOAD 00000bb6: PUSH1 0x01 00000bb8: PUSH1 0xa8 00000bba: SHL 00000bbb: SWAP1 00000bbc: DIV 00000bbd: PUSH1 0xff 00000bbf: AND 00000bc0: ISZERO 00000bc1: PUSH2 0x0bdc 00000bc4: JUMPI 00000bc5: PUSH1 0x40 00000bc7: MLOAD 00000bc8: PUSH3 0x461bcd 00000bcc: PUSH1 0xe5 00000bce: SHL 00000bcf: DUP2 00000bd0: MSTORE 00000bd1: PUSH1 0x04 00000bd3: ADD 00000bd4: PUSH2 0x0ba9 00000bd7: SWAP1 00000bd8: PUSH2 0x3396 00000bdb: JUMP 00000bdc: JUMPDEST 00000bdd: CALLER 00000bde: PUSH1 0x01 00000be0: PUSH1 0x04 00000be2: SLOAD 00000be3: PUSH1 0x01 00000be5: PUSH1 0x80 00000be7: SHL 00000be8: SWAP1 00000be9: DIV 00000bea: PUSH1 0xff 00000bec: AND 00000bed: PUSH1 0x01 00000bef: DUP2 00000bf0: GT 00000bf1: ISZERO 00000bf2: PUSH2 0x0bfd 00000bf5: JUMPI 00000bf6: PUSH2 0x0bfd 00000bf9: PUSH2 0x31bd 00000bfc: JUMP 00000bfd: JUMPDEST 00000bfe: SUB 00000bff: PUSH2 0x0c6b 00000c02: JUMPI 00000c03: PUSH2 0x0c2c 00000c06: PUSH32 0x724f6a44d576143e18c60911798b2b15551ca96bd8f7cb7524b8fa36253a26d8 00000c27: DUP3 00000c28: PUSH2 0x10df 00000c2b: JUMP 00000c2c: JUMPDEST 00000c2d: PUSH2 0x0c6b 00000c30: JUMPI 00000c31: PUSH1 0x40 00000c33: MLOAD 00000c34: PUSH3 0x461bcd 00000c38: PUSH1 0xe5 00000c3a: SHL 00000c3b: DUP2 00000c3c: MSTORE 00000c3d: PUSH1 0x20 00000c3f: PUSH1 0x04 00000c41: DUP3 00000c42: ADD 00000c43: MSTORE 00000c44: PUSH1 0x10 00000c46: PUSH1 0x24 00000c48: DUP3 00000c49: ADD 00000c4a: MSTORE 00000c4b: PUSH16 0x1393d508141154935254d4d253d39151 00000c5c: PUSH1 0x82 00000c5e: SHL 00000c5f: PUSH1 0x44 00000c61: DUP3 00000c62: ADD 00000c63: MSTORE 00000c64: PUSH1 0x64 00000c66: ADD 00000c67: PUSH2 0x0ba9 00000c6a: JUMP 00000c6b: JUMPDEST 00000c6c: PUSH2 0x0c76 00000c6f: CALLER 00000c70: DUP7 00000c71: DUP7 00000c72: PUSH2 0x1d80 00000c75: JUMP 00000c76: JUMPDEST 00000c77: SWAP3 00000c78: POP 00000c79: SWAP3 00000c7a: POP 00000c7b: POP 00000c7c: SWAP3 00000c7d: POP 00000c7e: SWAP3 00000c7f: SWAP1 00000c80: POP 00000c81: JUMP 00000c82: JUMPDEST 00000c83: PUSH0 00000c84: MLOAD 00000c85: PUSH1 0x20 00000c87: PUSH2 0x3492 00000c8a: PUSH0 00000c8b: CODECOPY 00000c8c: PUSH0 00000c8d: MLOAD 00000c8e: SWAP1 00000c8f: PUSH0 00000c90: MSTORE 00000c91: PUSH2 0x0c99 00000c94: DUP2 00000c95: PUSH2 0x1adf 00000c98: JUMP 00000c99: JUMPDEST 00000c9a: PUSH2 0x09e3 00000c9d: DUP3 00000c9e: PUSH2 0x1fee 00000ca1: JUMP 00000ca2: JUMPDEST 00000ca3: PUSH0 00000ca4: MLOAD 00000ca5: PUSH1 0x20 00000ca7: PUSH2 0x3492 00000caa: PUSH0 00000cab: CODECOPY 00000cac: PUSH0 00000cad: MLOAD 00000cae: SWAP1 00000caf: PUSH0 00000cb0: MSTORE 00000cb1: PUSH2 0x0cb9 00000cb4: DUP2 00000cb5: PUSH2 0x1adf 00000cb8: JUMP 00000cb9: JUMPDEST 00000cba: PUSH2 0x09e3 00000cbd: DUP3 00000cbe: PUSH2 0x2052 00000cc1: JUMP 00000cc2: JUMPDEST 00000cc3: PUSH1 0x04 00000cc5: SLOAD 00000cc6: PUSH1 0x01 00000cc8: PUSH1 0x01 00000cca: PUSH1 0x80 00000ccc: SHL 00000ccd: SUB 00000cce: AND 00000ccf: DUP1 00000cd0: ISZERO 00000cd1: DUP1 00000cd2: ISZERO 00000cd3: SWAP1 00000cd4: PUSH2 0x0ce7 00000cd7: JUMPI 00000cd8: POP 00000cd9: PUSH1 0x05 00000cdb: SLOAD 00000cdc: PUSH1 0x01 00000cde: PUSH1 0x01 00000ce0: PUSH1 0xa0 00000ce2: SHL 00000ce3: SUB 00000ce4: AND 00000ce5: ISZERO 00000ce6: ISZERO 00000ce7: JUMPDEST 00000ce8: ISZERO 00000ce9: PUSH2 0x0d9b 00000cec: JUMPI 00000ced: PUSH1 0x04 00000cef: DUP1 00000cf0: SLOAD 00000cf1: PUSH1 0x01 00000cf3: PUSH1 0x01 00000cf5: PUSH1 0x80 00000cf7: SHL 00000cf8: SUB 00000cf9: NOT 00000cfa: AND 00000cfb: SWAP1 00000cfc: SSTORE 00000cfd: PUSH1 0x05 00000cff: SLOAD 00000d00: PUSH2 0x0d36 00000d03: SWAP1 00000d04: PUSH1 0x01 00000d06: PUSH1 0x01 00000d08: PUSH1 0xa0 00000d0a: SHL 00000d0b: SUB 00000d0c: PUSH32 0x00000000000000000000000063d74d22e689c715a04f2c13962b1f77f443d35b 00000d2d: DUP2 00000d2e: AND 00000d2f: SWAP2 00000d30: AND 00000d31: DUP4 00000d32: PUSH2 0x20b3 00000d35: JUMP 00000d36: JUMPDEST 00000d37: PUSH1 0x05 00000d39: SLOAD 00000d3a: PUSH1 0x40 00000d3c: MLOAD 00000d3d: DUP3 00000d3e: DUP2 00000d3f: MSTORE 00000d40: PUSH1 0x01 00000d42: PUSH1 0x01 00000d44: PUSH1 0xa0 00000d46: SHL 00000d47: SUB 00000d48: PUSH32 0x00000000000000000000000063d74d22e689c715a04f2c13962b1f77f443d35b 00000d69: DUP2 00000d6a: AND 00000d6b: SWAP3 00000d6c: AND 00000d6d: SWAP1 00000d6e: PUSH32 0x715a6d9237efd5ad5fbddd5b85a988b5d4c56284576e0161cdfb4acda45681c2 00000d8f: SWAP1 00000d90: PUSH1 0x20 00000d92: ADD 00000d93: PUSH1 0x40 00000d95: MLOAD 00000d96: DUP1 00000d97: SWAP2 00000d98: SUB 00000d99: SWAP1 00000d9a: LOG3 00000d9b: JUMPDEST 00000d9c: POP 00000d9d: JUMP 00000d9e: JUMPDEST 00000d9f: PUSH2 0x0da6 00000da2: PUSH2 0x2112 00000da5: JUMP 00000da6: JUMPDEST 00000da7: PUSH2 0x0daf 00000daa: DUP3 00000dab: PUSH2 0x21b8 00000dae: JUMP 00000daf: JUMPDEST 00000db0: PUSH2 0x09e3 00000db3: DUP3 00000db4: DUP3 00000db5: PUSH2 0x21c2 00000db8: JUMP 00000db9: JUMPDEST 00000dba: PUSH0 00000dbb: PUSH0 00000dbc: PUSH0 00000dbd: PUSH0 00000dbe: PUSH2 0x0dc6 00000dc1: DUP6 00000dc2: PUSH2 0x227e 00000dc5: JUMP 00000dc6: JUMPDEST 00000dc7: SWAP4 00000dc8: POP 00000dc9: SWAP4 00000dca: POP 00000dcb: SWAP4 00000dcc: POP 00000dcd: SWAP4 00000dce: POP 00000dcf: SWAP2 00000dd0: SWAP4 00000dd1: POP 00000dd2: SWAP2 00000dd3: SWAP4 00000dd4: JUMP 00000dd5: JUMPDEST 00000dd6: PUSH0 00000dd7: PUSH2 0x0dde 00000dda: PUSH2 0x24a9 00000ddd: JUMP 00000dde: JUMPDEST 00000ddf: POP 00000de0: PUSH0 00000de1: MLOAD 00000de2: PUSH1 0x20 00000de4: PUSH2 0x34b2 00000de7: PUSH0 00000de8: CODECOPY 00000de9: PUSH0 00000dea: MLOAD 00000deb: SWAP1 00000dec: PUSH0 00000ded: MSTORE 00000dee: SWAP1 00000def: JUMP 00000df0: JUMPDEST 00000df1: PUSH0 00000df2: PUSH32 0x5e17fc5225d4a099df75359ce1f405503ca79498a8dc46a7d583235a0ee45c16 00000e13: PUSH2 0x0e1b 00000e16: DUP2 00000e17: PUSH2 0x1adf 00000e1a: JUMP 00000e1b: JUMPDEST 00000e1c: PUSH1 0x02 00000e1e: SLOAD 00000e1f: PUSH1 0x01 00000e21: PUSH1 0xa8 00000e23: SHL 00000e24: SWAP1 00000e25: DIV 00000e26: PUSH1 0xff 00000e28: AND 00000e29: PUSH2 0x0e65 00000e2c: JUMPI 00000e2d: PUSH1 0x40 00000e2f: MLOAD 00000e30: PUSH3 0x461bcd 00000e34: PUSH1 0xe5 00000e36: SHL 00000e37: DUP2 00000e38: MSTORE 00000e39: PUSH1 0x20 00000e3b: PUSH1 0x04 00000e3d: DUP3 00000e3e: ADD 00000e3f: MSTORE 00000e40: PUSH1 0x0e 00000e42: PUSH1 0x24 00000e44: DUP3 00000e45: ADD 00000e46: MSTORE 00000e47: PUSH14 0x1554d357d393d517d4d152569151 00000e56: PUSH1 0x92 00000e58: SHL 00000e59: PUSH1 0x44 00000e5b: DUP3 00000e5c: ADD 00000e5d: MSTORE 00000e5e: PUSH1 0x64 00000e60: ADD 00000e61: PUSH2 0x0ba9 00000e64: JUMP 00000e65: JUMPDEST 00000e66: PUSH0 00000e67: DUP4 00000e68: GT 00000e69: PUSH2 0x0e84 00000e6c: JUMPI 00000e6d: PUSH1 0x40 00000e6f: MLOAD 00000e70: PUSH3 0x461bcd 00000e74: PUSH1 0xe5 00000e76: SHL 00000e77: DUP2 00000e78: MSTORE 00000e79: PUSH1 0x04 00000e7b: ADD 00000e7c: PUSH2 0x0ba9 00000e7f: SWAP1 00000e80: PUSH2 0x33ba 00000e83: JUMP 00000e84: JUMPDEST 00000e85: PUSH0 00000e86: PUSH2 0x0e8d 00000e89: PUSH2 0x24f2 00000e8c: JUMP 00000e8d: JUMPDEST 00000e8e: SWAP1 00000e8f: POP 00000e90: DUP1 00000e91: DUP5 00000e92: GT 00000e93: ISZERO 00000e94: PUSH2 0x0e9b 00000e97: JUMPI 00000e98: DUP1 00000e99: SWAP4 00000e9a: POP 00000e9b: JUMPDEST 00000e9c: PUSH2 0x0ed0 00000e9f: PUSH1 0x01 00000ea1: PUSH1 0x01 00000ea3: PUSH1 0xa0 00000ea5: SHL 00000ea6: SUB 00000ea7: PUSH32 0x00000000000000000000000063d74d22e689c715a04f2c13962b1f77f443d35b 00000ec8: AND 00000ec9: CALLER 00000eca: ADDRESS 00000ecb: DUP8 00000ecc: PUSH2 0x2582 00000ecf: JUMP 00000ed0: JUMPDEST 00000ed1: PUSH2 0x0eda 00000ed4: ADDRESS 00000ed5: DUP6 00000ed6: PUSH2 0x25bb 00000ed9: JUMP 00000eda: JUMPDEST 00000edb: CALLER 00000edc: PUSH32 0x40812dae8a8ddfad8bbf45f53c5cdbca587edc4238cbcc7537ae84e204b1c8ae 00000efd: DUP6 00000efe: PUSH2 0x0f07 00000f01: DUP2 00000f02: DUP6 00000f03: PUSH2 0x33e2 00000f06: JUMP 00000f07: JUMPDEST 00000f08: PUSH1 0x40 00000f0a: DUP1 00000f0b: MLOAD 00000f0c: SWAP3 00000f0d: DUP4 00000f0e: MSTORE 00000f0f: PUSH1 0x20 00000f11: DUP4 00000f12: ADD 00000f13: SWAP2 00000f14: SWAP1 00000f15: SWAP2 00000f16: MSTORE 00000f17: ADD 00000f18: PUSH1 0x40 00000f1a: MLOAD 00000f1b: DUP1 00000f1c: SWAP2 00000f1d: SUB 00000f1e: SWAP1 00000f1f: LOG2 00000f20: POP 00000f21: SWAP2 00000f22: SWAP3 00000f23: SWAP2 00000f24: POP 00000f25: POP 00000f26: JUMP 00000f27: JUMPDEST 00000f28: PUSH1 0x02 00000f2a: SLOAD 00000f2b: PUSH0 00000f2c: SWAP1 00000f2d: PUSH1 0x01 00000f2f: PUSH1 0xa8 00000f31: SHL 00000f32: SWAP1 00000f33: DIV 00000f34: PUSH1 0xff 00000f36: AND 00000f37: ISZERO 00000f38: PUSH2 0x0f53 00000f3b: JUMPI 00000f3c: PUSH1 0x40 00000f3e: MLOAD 00000f3f: PUSH3 0x461bcd 00000f43: PUSH1 0xe5 00000f45: SHL 00000f46: DUP2 00000f47: MSTORE 00000f48: PUSH1 0x04 00000f4a: ADD 00000f4b: PUSH2 0x0ba9 00000f4e: SWAP1 00000f4f: PUSH2 0x3396 00000f52: JUMP 00000f53: JUMPDEST 00000f54: PUSH32 0x5e17fc5225d4a099df75359ce1f405503ca79498a8dc46a7d583235a0ee45c16 00000f75: PUSH2 0x0f7d 00000f78: DUP2 00000f79: PUSH2 0x1adf 00000f7c: JUMP 00000f7d: JUMPDEST 00000f7e: PUSH1 0x02 00000f80: DUP1 00000f81: SLOAD 00000f82: PUSH1 0xff 00000f84: PUSH1 0xa8 00000f86: SHL 00000f87: NOT 00000f88: AND 00000f89: PUSH1 0x01 00000f8b: PUSH1 0xa8 00000f8d: SHL 00000f8e: OR 00000f8f: SWAP1 00000f90: SSTORE 00000f91: PUSH1 0x03 00000f93: DUP1 00000f94: SLOAD 00000f95: PUSH1 0x01 00000f97: PUSH1 0x01 00000f99: PUSH1 0x80 00000f9b: SHL 00000f9c: SUB 00000f9d: AND 00000f9e: SWAP1 00000f9f: SSTORE 00000fa0: PUSH1 0x04 00000fa2: DUP1 00000fa3: SLOAD 00000fa4: PUSH1 0x01 00000fa6: PUSH1 0x01 00000fa8: PUSH1 0x80 00000faa: SHL 00000fab: SUB 00000fac: NOT 00000fad: AND 00000fae: SWAP1 00000faf: SSTORE 00000fb0: PUSH2 0x0fb8 00000fb3: PUSH0 00000fb4: PUSH2 0x2052 00000fb7: JUMP 00000fb8: JUMPDEST 00000fb9: PUSH0 00000fba: PUSH2 0x0fc1 00000fbd: PUSH2 0x24f2 00000fc0: JUMP 00000fc1: JUMPDEST 00000fc2: PUSH1 0x40 00000fc4: MLOAD 00000fc5: PUSH4 0x70a08231 00000fca: PUSH1 0xe0 00000fcc: SHL 00000fcd: DUP2 00000fce: MSTORE 00000fcf: ADDRESS 00000fd0: PUSH1 0x04 00000fd2: DUP3 00000fd3: ADD 00000fd4: MSTORE 00000fd5: SWAP1 00000fd6: SWAP2 00000fd7: POP 00000fd8: PUSH0 00000fd9: SWAP1 00000fda: PUSH1 0x01 00000fdc: PUSH1 0x01 00000fde: PUSH1 0xa0 00000fe0: SHL 00000fe1: SUB 00000fe2: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 00001003: AND 00001004: SWAP1 00001005: PUSH4 0x70a08231 0000100a: SWAP1 0000100b: PUSH1 0x24 0000100d: ADD 0000100e: PUSH1 0x20 00001010: PUSH1 0x40 00001012: MLOAD 00001013: DUP1 00001014: DUP4 00001015: SUB 00001016: DUP2 00001017: DUP7 00001018: GAS 00001019: STATICCALL 0000101a: ISZERO 0000101b: DUP1 0000101c: ISZERO 0000101d: PUSH2 0x1028 00001020: JUMPI 00001021: RETURNDATASIZE 00001022: PUSH0 00001023: PUSH0 00001024: RETURNDATACOPY 00001025: RETURNDATASIZE 00001026: PUSH0 00001027: REVERT 00001028: JUMPDEST 00001029: POP 0000102a: POP 0000102b: POP 0000102c: POP 0000102d: PUSH1 0x40 0000102f: MLOAD 00001030: RETURNDATASIZE 00001031: PUSH1 0x1f 00001033: NOT 00001034: PUSH1 0x1f 00001036: DUP3 00001037: ADD 00001038: AND 00001039: DUP3 0000103a: ADD 0000103b: DUP1 0000103c: PUSH1 0x40 0000103e: MSTORE 0000103f: POP 00001040: DUP2 00001041: ADD 00001042: SWAP1 00001043: PUSH2 0x104c 00001046: SWAP2 00001047: SWAP1 00001048: PUSH2 0x33f5 0000104b: JUMP 0000104c: JUMPDEST 0000104d: SWAP1 0000104e: POP 0000104f: DUP1 00001050: ISZERO 00001051: PUSH2 0x108e 00001054: JUMPI 00001055: PUSH1 0x01 00001057: SLOAD 00001058: PUSH2 0x108e 0000105b: SWAP1 0000105c: PUSH1 0x01 0000105e: PUSH1 0x01 00001060: PUSH1 0xa0 00001062: SHL 00001063: SUB 00001064: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 00001085: DUP2 00001086: AND 00001087: SWAP2 00001088: AND 00001089: DUP4 0000108a: PUSH2 0x20b3 0000108d: JUMP 0000108e: JUMPDEST 0000108f: PUSH1 0x01 00001091: SLOAD 00001092: PUSH1 0x40 00001094: DUP1 00001095: MLOAD 00001096: DUP4 00001097: DUP2 00001098: MSTORE 00001099: PUSH1 0x20 0000109b: DUP2 0000109c: ADD 0000109d: DUP6 0000109e: SWAP1 0000109f: MSTORE 000010a0: PUSH1 0x01 000010a2: PUSH1 0x01 000010a4: PUSH1 0xa0 000010a6: SHL 000010a7: SUB 000010a8: SWAP1 000010a9: SWAP3 000010aa: AND 000010ab: SWAP2 000010ac: CALLER 000010ad: SWAP2 000010ae: PUSH32 0xe51b546a59a5440500bc9464ab1cb969d07a4508292c32e540ac0f37b644aca8 000010cf: SWAP2 000010d0: ADD 000010d1: PUSH1 0x40 000010d3: MLOAD 000010d4: DUP1 000010d5: SWAP2 000010d6: SUB 000010d7: SWAP1 000010d8: LOG3 000010d9: SWAP3 000010da: POP 000010db: POP 000010dc: POP 000010dd: SWAP1 000010de: JUMP 000010df: JUMPDEST 000010e0: PUSH0 000010e1: SWAP2 000010e2: DUP3 000010e3: MSTORE 000010e4: PUSH0 000010e5: MLOAD 000010e6: PUSH1 0x20 000010e8: PUSH2 0x34d2 000010eb: PUSH0 000010ec: CODECOPY 000010ed: PUSH0 000010ee: MLOAD 000010ef: SWAP1 000010f0: PUSH0 000010f1: MSTORE 000010f2: PUSH1 0x20 000010f4: SWAP1 000010f5: DUP2 000010f6: MSTORE 000010f7: PUSH1 0x40 000010f9: DUP1 000010fa: DUP5 000010fb: KECCAK256 000010fc: PUSH1 0x01 000010fe: PUSH1 0x01 00001100: PUSH1 0xa0 00001102: SHL 00001103: SUB 00001104: SWAP4 00001105: SWAP1 00001106: SWAP4 00001107: AND 00001108: DUP5 00001109: MSTORE 0000110a: SWAP2 0000110b: SWAP1 0000110c: MSTORE 0000110d: SWAP1 0000110e: KECCAK256 0000110f: SLOAD 00001110: PUSH1 0xff 00001112: AND 00001113: SWAP1 00001114: JUMP 00001115: JUMPDEST 00001116: PUSH0 00001117: MLOAD 00001118: PUSH1 0x20 0000111a: PUSH2 0x3492 0000111d: PUSH0 0000111e: CODECOPY 0000111f: PUSH0 00001120: MLOAD 00001121: SWAP1 00001122: PUSH0 00001123: MSTORE 00001124: PUSH2 0x112c 00001127: DUP2 00001128: PUSH2 0x1adf 0000112b: JUMP 0000112c: JUMPDEST 0000112d: PUSH2 0x09e3 00001130: DUP3 00001131: PUSH2 0x263d 00001134: JUMP 00001135: JUMPDEST 00001136: PUSH1 0x02 00001138: SLOAD 00001139: PUSH0 0000113a: SWAP1 0000113b: DUP2 0000113c: SWAP1 0000113d: DUP2 0000113e: SWAP1 0000113f: DUP2 00001140: SWAP1 00001141: PUSH1 0x01 00001143: PUSH1 0x01 00001145: PUSH1 0xa0 00001147: SHL 00001148: SUB 00001149: AND 0000114a: ISZERO 0000114b: ISZERO 0000114c: DUP2 0000114d: DUP2 0000114e: PUSH2 0x1157 00001151: JUMPI 00001152: DUP7 00001153: PUSH2 0x11c2 00001156: JUMP 00001157: JUMPDEST 00001158: PUSH1 0x02 0000115a: SLOAD 0000115b: PUSH1 0x40 0000115d: MLOAD 0000115e: PUSH4 0x18fdd06b 00001163: PUSH1 0xe0 00001165: SHL 00001166: DUP2 00001167: MSTORE 00001168: PUSH1 0x04 0000116a: DUP2 0000116b: ADD 0000116c: DUP10 0000116d: SWAP1 0000116e: MSTORE 0000116f: PUSH1 0x01 00001171: PUSH1 0x01 00001173: PUSH1 0xa0 00001175: SHL 00001176: SUB 00001177: SWAP1 00001178: SWAP2 00001179: AND 0000117a: SWAP1 0000117b: PUSH4 0x18fdd06b 00001180: SWAP1 00001181: PUSH1 0x24 00001183: ADD 00001184: PUSH1 0x20 00001186: PUSH1 0x40 00001188: MLOAD 00001189: DUP1 0000118a: DUP4 0000118b: SUB 0000118c: DUP2 0000118d: DUP7 0000118e: GAS 0000118f: STATICCALL 00001190: ISZERO 00001191: DUP1 00001192: ISZERO 00001193: PUSH2 0x119e 00001196: JUMPI 00001197: RETURNDATASIZE 00001198: PUSH0 00001199: PUSH0 0000119a: RETURNDATACOPY 0000119b: RETURNDATASIZE 0000119c: PUSH0 0000119d: REVERT 0000119e: JUMPDEST 0000119f: POP 000011a0: POP 000011a1: POP 000011a2: POP 000011a3: PUSH1 0x40 000011a5: MLOAD 000011a6: RETURNDATASIZE 000011a7: PUSH1 0x1f 000011a9: NOT 000011aa: PUSH1 0x1f 000011ac: DUP3 000011ad: ADD 000011ae: AND 000011af: DUP3 000011b0: ADD 000011b1: DUP1 000011b2: PUSH1 0x40 000011b4: MSTORE 000011b5: POP 000011b6: DUP2 000011b7: ADD 000011b8: SWAP1 000011b9: PUSH2 0x11c2 000011bc: SWAP2 000011bd: SWAP1 000011be: PUSH2 0x33f5 000011c1: JUMP 000011c2: JUMPDEST 000011c3: PUSH0 000011c4: DUP1 000011c5: SLOAD 000011c6: PUSH1 0x40 000011c8: MLOAD 000011c9: PUSH4 0x0c66c2a1 000011ce: PUSH1 0xe2 000011d0: SHL 000011d1: DUP2 000011d2: MSTORE 000011d3: PUSH1 0x04 000011d5: DUP2 000011d6: ADD 000011d7: DUP5 000011d8: SWAP1 000011d9: MSTORE 000011da: PUSH1 0x01 000011dc: PUSH1 0x24 000011de: DUP3 000011df: ADD 000011e0: MSTORE 000011e1: SWAP3 000011e2: SWAP4 000011e3: POP 000011e4: SWAP1 000011e5: SWAP2 000011e6: PUSH1 0x01 000011e8: PUSH1 0x01 000011ea: PUSH1 0xa0 000011ec: SHL 000011ed: SUB 000011ee: SWAP1 000011ef: SWAP2 000011f0: AND 000011f1: SWAP1 000011f2: PUSH4 0x319b0a84 000011f7: SWAP1 000011f8: PUSH1 0x44 000011fa: ADD 000011fb: PUSH1 0x20 000011fd: PUSH1 0x40 000011ff: MLOAD 00001200: DUP1 00001201: DUP4 00001202: SUB 00001203: DUP2 00001204: DUP7 00001205: GAS 00001206: STATICCALL 00001207: ISZERO 00001208: DUP1 00001209: ISZERO 0000120a: PUSH2 0x1215 0000120d: JUMPI 0000120e: RETURNDATASIZE 0000120f: PUSH0 00001210: PUSH0 00001211: RETURNDATACOPY 00001212: RETURNDATASIZE 00001213: PUSH0 00001214: REVERT 00001215: JUMPDEST 00001216: POP 00001217: POP 00001218: POP 00001219: POP 0000121a: PUSH1 0x40 0000121c: MLOAD 0000121d: RETURNDATASIZE 0000121e: PUSH1 0x1f 00001220: NOT 00001221: PUSH1 0x1f 00001223: DUP3 00001224: ADD 00001225: AND 00001226: DUP3 00001227: ADD 00001228: DUP1 00001229: PUSH1 0x40 0000122b: MSTORE 0000122c: POP 0000122d: DUP2 0000122e: ADD 0000122f: SWAP1 00001230: PUSH2 0x1239 00001233: SWAP2 00001234: SWAP1 00001235: PUSH2 0x33f5 00001238: JUMP 00001239: JUMPDEST 0000123a: PUSH0 0000123b: DUP1 0000123c: SLOAD 0000123d: PUSH1 0x40 0000123f: MLOAD 00001240: PUSH4 0x4e71f09b 00001245: PUSH1 0xe1 00001247: SHL 00001248: DUP2 00001249: MSTORE 0000124a: PUSH1 0x04 0000124c: DUP2 0000124d: ADD 0000124e: DUP5 0000124f: SWAP1 00001250: MSTORE 00001251: PUSH1 0x24 00001253: DUP2 00001254: ADD 00001255: DUP4 00001256: SWAP1 00001257: MSTORE 00001258: SWAP3 00001259: SWAP4 0000125a: POP 0000125b: SWAP1 0000125c: SWAP2 0000125d: PUSH1 0x01 0000125f: PUSH1 0x01 00001261: PUSH1 0xa0 00001263: SHL 00001264: SUB 00001265: SWAP1 00001266: SWAP2 00001267: AND 00001268: SWAP1 00001269: PUSH4 0x9ce3e136 0000126e: SWAP1 0000126f: PUSH1 0x44 00001271: ADD 00001272: PUSH1 0x20 00001274: PUSH1 0x40 00001276: MLOAD 00001277: DUP1 00001278: DUP4 00001279: SUB 0000127a: DUP2 0000127b: DUP7 0000127c: GAS 0000127d: STATICCALL 0000127e: ISZERO 0000127f: DUP1 00001280: ISZERO 00001281: PUSH2 0x128c 00001284: JUMPI 00001285: RETURNDATASIZE 00001286: PUSH0 00001287: PUSH0 00001288: RETURNDATACOPY 00001289: RETURNDATASIZE 0000128a: PUSH0 0000128b: REVERT 0000128c: JUMPDEST 0000128d: POP 0000128e: POP 0000128f: POP 00001290: POP 00001291: PUSH1 0x40 00001293: MLOAD 00001294: RETURNDATASIZE 00001295: PUSH1 0x1f 00001297: NOT 00001298: PUSH1 0x1f 0000129a: DUP3 0000129b: ADD 0000129c: AND 0000129d: DUP3 0000129e: ADD 0000129f: DUP1 000012a0: PUSH1 0x40 000012a2: MSTORE 000012a3: POP 000012a4: DUP2 000012a5: ADD 000012a6: SWAP1 000012a7: PUSH2 0x12b0 000012aa: SWAP2 000012ab: SWAP1 000012ac: PUSH2 0x33f5 000012af: JUMP 000012b0: JUMPDEST 000012b1: SWAP1 000012b2: POP 000012b3: PUSH0 000012b4: DUP5 000012b5: PUSH2 0x12be 000012b8: JUMPI 000012b9: PUSH0 000012ba: PUSH2 0x1329 000012bd: JUMP 000012be: JUMPDEST 000012bf: PUSH1 0x02 000012c1: SLOAD 000012c2: PUSH1 0x40 000012c4: MLOAD 000012c5: PUSH4 0x959d6d29 000012ca: PUSH1 0xe0 000012cc: SHL 000012cd: DUP2 000012ce: MSTORE 000012cf: PUSH1 0x04 000012d1: DUP2 000012d2: ADD 000012d3: DUP5 000012d4: SWAP1 000012d5: MSTORE 000012d6: PUSH1 0x01 000012d8: PUSH1 0x01 000012da: PUSH1 0xa0 000012dc: SHL 000012dd: SUB 000012de: SWAP1 000012df: SWAP2 000012e0: AND 000012e1: SWAP1 000012e2: PUSH4 0x959d6d29 000012e7: SWAP1 000012e8: PUSH1 0x24 000012ea: ADD 000012eb: PUSH1 0x20 000012ed: PUSH1 0x40 000012ef: MLOAD 000012f0: DUP1 000012f1: DUP4 000012f2: SUB 000012f3: DUP2 000012f4: DUP7 000012f5: GAS 000012f6: STATICCALL 000012f7: ISZERO 000012f8: DUP1 000012f9: ISZERO 000012fa: PUSH2 0x1305 000012fd: JUMPI 000012fe: RETURNDATASIZE 000012ff: PUSH0 00001300: PUSH0 00001301: RETURNDATACOPY 00001302: RETURNDATASIZE 00001303: PUSH0 00001304: REVERT 00001305: JUMPDEST 00001306: POP 00001307: POP 00001308: POP 00001309: POP 0000130a: PUSH1 0x40 0000130c: MLOAD 0000130d: RETURNDATASIZE 0000130e: PUSH1 0x1f 00001310: NOT 00001311: PUSH1 0x1f 00001313: DUP3 00001314: ADD 00001315: AND 00001316: DUP3 00001317: ADD 00001318: DUP1 00001319: PUSH1 0x40 0000131b: MSTORE 0000131c: POP 0000131d: DUP2 0000131e: ADD 0000131f: SWAP1 00001320: PUSH2 0x1329 00001323: SWAP2 00001324: SWAP1 00001325: PUSH2 0x33f5 00001328: JUMP 00001329: JUMPDEST 0000132a: SWAP1 0000132b: POP 0000132c: DUP3 0000132d: PUSH2 0x1336 00001330: DUP3 00001331: DUP5 00001332: PUSH2 0x33e2 00001335: JUMP 00001336: JUMPDEST 00001337: SWAP1 00001338: SWAP12 00001339: SWAP1 0000133a: SWAP11 0000133b: POP 0000133c: SWAP2 0000133d: SWAP9 0000133e: POP 0000133f: SWAP7 00001340: POP 00001341: SWAP5 00001342: POP 00001343: POP 00001344: POP 00001345: POP 00001346: POP 00001347: JUMP 00001348: JUMPDEST 00001349: PUSH1 0x02 0000134b: SLOAD 0000134c: PUSH0 0000134d: SWAP1 0000134e: DUP2 0000134f: SWAP1 00001350: DUP2 00001351: SWAP1 00001352: DUP2 00001353: SWAP1 00001354: PUSH1 0x01 00001356: PUSH1 0x01 00001358: PUSH1 0xa0 0000135a: SHL 0000135b: SUB 0000135c: AND 0000135d: ISZERO 0000135e: ISZERO 0000135f: DUP2 00001360: DUP2 00001361: PUSH2 0x136a 00001364: JUMPI 00001365: DUP7 00001366: PUSH2 0x13d5 00001369: JUMP 0000136a: JUMPDEST 0000136b: PUSH1 0x02 0000136d: SLOAD 0000136e: PUSH1 0x40 00001370: MLOAD 00001371: PUSH4 0x52510fd1 00001376: PUSH1 0xe1 00001378: SHL 00001379: DUP2 0000137a: MSTORE 0000137b: PUSH1 0x04 0000137d: DUP2 0000137e: ADD 0000137f: DUP10 00001380: SWAP1 00001381: MSTORE 00001382: PUSH1 0x01 00001384: PUSH1 0x01 00001386: PUSH1 0xa0 00001388: SHL 00001389: SUB 0000138a: SWAP1 0000138b: SWAP2 0000138c: AND 0000138d: SWAP1 0000138e: PUSH4 0xa4a21fa2 00001393: SWAP1 00001394: PUSH1 0x24 00001396: ADD 00001397: PUSH1 0x20 00001399: PUSH1 0x40 0000139b: MLOAD 0000139c: DUP1 0000139d: DUP4 0000139e: SUB 0000139f: DUP2 000013a0: DUP7 000013a1: GAS 000013a2: STATICCALL 000013a3: ISZERO 000013a4: DUP1 000013a5: ISZERO 000013a6: PUSH2 0x13b1 000013a9: JUMPI 000013aa: RETURNDATASIZE 000013ab: PUSH0 000013ac: PUSH0 000013ad: RETURNDATACOPY 000013ae: RETURNDATASIZE 000013af: PUSH0 000013b0: REVERT 000013b1: JUMPDEST 000013b2: POP 000013b3: POP 000013b4: POP 000013b5: POP 000013b6: PUSH1 0x40 000013b8: MLOAD 000013b9: RETURNDATASIZE 000013ba: PUSH1 0x1f 000013bc: NOT 000013bd: PUSH1 0x1f 000013bf: DUP3 000013c0: ADD 000013c1: AND 000013c2: DUP3 000013c3: ADD 000013c4: DUP1 000013c5: PUSH1 0x40 000013c7: MSTORE 000013c8: POP 000013c9: DUP2 000013ca: ADD 000013cb: SWAP1 000013cc: PUSH2 0x13d5 000013cf: SWAP2 000013d0: SWAP1 000013d1: PUSH2 0x33f5 000013d4: JUMP 000013d5: JUMPDEST 000013d6: PUSH0 000013d7: DUP1 000013d8: SLOAD 000013d9: PUSH1 0x40 000013db: MLOAD 000013dc: PUSH4 0x0c66c2a1 000013e1: PUSH1 0xe2 000013e3: SHL 000013e4: DUP2 000013e5: MSTORE 000013e6: PUSH1 0x04 000013e8: DUP2 000013e9: ADD 000013ea: DUP5 000013eb: SWAP1 000013ec: MSTORE 000013ed: PUSH1 0x24 000013ef: DUP2 000013f0: ADD 000013f1: DUP4 000013f2: SWAP1 000013f3: MSTORE 000013f4: SWAP3 000013f5: SWAP4 000013f6: POP 000013f7: SWAP1 000013f8: SWAP2 000013f9: PUSH1 0x01 000013fb: PUSH1 0x01 000013fd: PUSH1 0xa0 000013ff: SHL 00001400: SUB 00001401: SWAP1 00001402: SWAP2 00001403: AND 00001404: SWAP1 00001405: PUSH4 0x319b0a84 0000140a: SWAP1 0000140b: PUSH1 0x44 0000140d: ADD 0000140e: PUSH1 0x20 00001410: PUSH1 0x40 00001412: MLOAD 00001413: DUP1 00001414: DUP4 00001415: SUB 00001416: DUP2 00001417: DUP7 00001418: GAS 00001419: STATICCALL 0000141a: ISZERO 0000141b: DUP1 0000141c: ISZERO 0000141d: PUSH2 0x1428 00001420: JUMPI 00001421: RETURNDATASIZE 00001422: PUSH0 00001423: PUSH0 00001424: RETURNDATACOPY 00001425: RETURNDATASIZE 00001426: PUSH0 00001427: REVERT 00001428: JUMPDEST 00001429: POP 0000142a: POP 0000142b: POP 0000142c: POP 0000142d: PUSH1 0x40 0000142f: MLOAD 00001430: RETURNDATASIZE 00001431: PUSH1 0x1f 00001433: NOT 00001434: PUSH1 0x1f 00001436: DUP3 00001437: ADD 00001438: AND 00001439: DUP3 0000143a: ADD 0000143b: DUP1 0000143c: PUSH1 0x40 0000143e: MSTORE 0000143f: POP 00001440: DUP2 00001441: ADD 00001442: SWAP1 00001443: PUSH2 0x144c 00001446: SWAP2 00001447: SWAP1 00001448: PUSH2 0x33f5 0000144b: JUMP 0000144c: JUMPDEST 0000144d: PUSH0 0000144e: DUP1 0000144f: SLOAD 00001450: PUSH1 0x40 00001452: MLOAD 00001453: PUSH4 0x4e71f09b 00001458: PUSH1 0xe1 0000145a: SHL 0000145b: DUP2 0000145c: MSTORE 0000145d: PUSH1 0x04 0000145f: DUP2 00001460: ADD 00001461: DUP5 00001462: SWAP1 00001463: MSTORE 00001464: PUSH1 0x01 00001466: PUSH1 0x24 00001468: DUP3 00001469: ADD 0000146a: MSTORE 0000146b: SWAP3 0000146c: SWAP4 0000146d: POP 0000146e: SWAP1 0000146f: SWAP2 00001470: PUSH1 0x01 00001472: PUSH1 0x01 00001474: PUSH1 0xa0 00001476: SHL 00001477: SUB 00001478: SWAP1 00001479: SWAP2 0000147a: AND 0000147b: SWAP1 0000147c: PUSH4 0x9ce3e136 00001481: SWAP1 00001482: PUSH1 0x44 00001484: ADD 00001485: PUSH1 0x20 00001487: PUSH1 0x40 00001489: MLOAD 0000148a: DUP1 0000148b: DUP4 0000148c: SUB 0000148d: DUP2 0000148e: DUP7 0000148f: GAS 00001490: STATICCALL 00001491: ISZERO 00001492: DUP1 00001493: ISZERO 00001494: PUSH2 0x149f 00001497: JUMPI 00001498: RETURNDATASIZE 00001499: PUSH0 0000149a: PUSH0 0000149b: RETURNDATACOPY 0000149c: RETURNDATASIZE 0000149d: PUSH0 0000149e: REVERT 0000149f: JUMPDEST 000014a0: POP 000014a1: POP 000014a2: POP 000014a3: POP 000014a4: PUSH1 0x40 000014a6: MLOAD 000014a7: RETURNDATASIZE 000014a8: PUSH1 0x1f 000014aa: NOT 000014ab: PUSH1 0x1f 000014ad: DUP3 000014ae: ADD 000014af: AND 000014b0: DUP3 000014b1: ADD 000014b2: DUP1 000014b3: PUSH1 0x40 000014b5: MSTORE 000014b6: POP 000014b7: DUP2 000014b8: ADD 000014b9: SWAP1 000014ba: PUSH2 0x14c3 000014bd: SWAP2 000014be: SWAP1 000014bf: PUSH2 0x33f5 000014c2: JUMP 000014c3: JUMPDEST 000014c4: SWAP1 000014c5: POP 000014c6: PUSH0 000014c7: DUP5 000014c8: PUSH2 0x14d1 000014cb: JUMPI 000014cc: PUSH0 000014cd: PUSH2 0x153c 000014d0: JUMP 000014d1: JUMPDEST 000014d2: PUSH1 0x02 000014d4: SLOAD 000014d5: PUSH1 0x40 000014d7: MLOAD 000014d8: PUSH4 0x45d6494d 000014dd: PUSH1 0xe0 000014df: SHL 000014e0: DUP2 000014e1: MSTORE 000014e2: PUSH1 0x04 000014e4: DUP2 000014e5: ADD 000014e6: DUP5 000014e7: SWAP1 000014e8: MSTORE 000014e9: PUSH1 0x01 000014eb: PUSH1 0x01 000014ed: PUSH1 0xa0 000014ef: SHL 000014f0: SUB 000014f1: SWAP1 000014f2: SWAP2 000014f3: AND 000014f4: SWAP1 000014f5: PUSH4 0x45d6494d 000014fa: SWAP1 000014fb: PUSH1 0x24 000014fd: ADD 000014fe: PUSH1 0x20 00001500: PUSH1 0x40 00001502: MLOAD 00001503: DUP1 00001504: DUP4 00001505: SUB 00001506: DUP2 00001507: DUP7 00001508: GAS 00001509: STATICCALL 0000150a: ISZERO 0000150b: DUP1 0000150c: ISZERO 0000150d: PUSH2 0x1518 00001510: JUMPI 00001511: RETURNDATASIZE 00001512: PUSH0 00001513: PUSH0 00001514: RETURNDATACOPY 00001515: RETURNDATASIZE 00001516: PUSH0 00001517: REVERT 00001518: JUMPDEST 00001519: POP 0000151a: POP 0000151b: POP 0000151c: POP 0000151d: PUSH1 0x40 0000151f: MLOAD 00001520: RETURNDATASIZE 00001521: PUSH1 0x1f 00001523: NOT 00001524: PUSH1 0x1f 00001526: DUP3 00001527: ADD 00001528: AND 00001529: DUP3 0000152a: ADD 0000152b: DUP1 0000152c: PUSH1 0x40 0000152e: MSTORE 0000152f: POP 00001530: DUP2 00001531: ADD 00001532: SWAP1 00001533: PUSH2 0x153c 00001536: SWAP2 00001537: SWAP1 00001538: PUSH2 0x33f5 0000153b: JUMP 0000153c: JUMPDEST 0000153d: SWAP1 0000153e: POP 0000153f: DUP3 00001540: PUSH2 0x1336 00001543: DUP3 00001544: DUP5 00001545: PUSH2 0x340c 00001548: JUMP 00001549: JUMPDEST 0000154a: PUSH1 0x02 0000154c: SLOAD 0000154d: PUSH0 0000154e: SWAP1 0000154f: DUP2 00001550: SWAP1 00001551: PUSH1 0x01 00001553: PUSH1 0xa0 00001555: SHL 00001556: SWAP1 00001557: DIV 00001558: PUSH1 0xff 0000155a: AND 0000155b: ISZERO 0000155c: PUSH2 0x1594 0000155f: JUMPI 00001560: PUSH1 0x40 00001562: MLOAD 00001563: PUSH3 0x461bcd 00001567: PUSH1 0xe5 00001569: SHL 0000156a: DUP2 0000156b: MSTORE 0000156c: PUSH1 0x20 0000156e: PUSH1 0x04 00001570: DUP3 00001571: ADD 00001572: MSTORE 00001573: PUSH1 0x0a 00001575: PUSH1 0x24 00001577: DUP3 00001578: ADD 00001579: MSTORE 0000157a: PUSH10 0x2aa9a6afa32927ad22a7 00001585: PUSH1 0xb1 00001587: SHL 00001588: PUSH1 0x44 0000158a: DUP3 0000158b: ADD 0000158c: MSTORE 0000158d: PUSH1 0x64 0000158f: ADD 00001590: PUSH2 0x0ba9 00001593: JUMP 00001594: JUMPDEST 00001595: PUSH1 0x02 00001597: SLOAD 00001598: PUSH1 0x01 0000159a: PUSH1 0xa8 0000159c: SHL 0000159d: SWAP1 0000159e: DIV 0000159f: PUSH1 0xff 000015a1: AND 000015a2: ISZERO 000015a3: PUSH2 0x15be 000015a6: JUMPI 000015a7: PUSH1 0x40 000015a9: MLOAD 000015aa: PUSH3 0x461bcd 000015ae: PUSH1 0xe5 000015b0: SHL 000015b1: DUP2 000015b2: MSTORE 000015b3: PUSH1 0x04 000015b5: ADD 000015b6: PUSH2 0x0ba9 000015b9: SWAP1 000015ba: PUSH2 0x3396 000015bd: JUMP 000015be: JUMPDEST 000015bf: CALLER 000015c0: PUSH1 0x01 000015c2: PUSH1 0x04 000015c4: SLOAD 000015c5: PUSH1 0x01 000015c7: PUSH1 0x80 000015c9: SHL 000015ca: SWAP1 000015cb: DIV 000015cc: PUSH1 0xff 000015ce: AND 000015cf: PUSH1 0x01 000015d1: DUP2 000015d2: GT 000015d3: ISZERO 000015d4: PUSH2 0x15df 000015d7: JUMPI 000015d8: PUSH2 0x15df 000015db: PUSH2 0x31bd 000015de: JUMP 000015df: JUMPDEST 000015e0: SUB 000015e1: PUSH2 0x164d 000015e4: JUMPI 000015e5: PUSH2 0x160e 000015e8: PUSH32 0x724f6a44d576143e18c60911798b2b15551ca96bd8f7cb7524b8fa36253a26d8 00001609: DUP3 0000160a: PUSH2 0x10df 0000160d: JUMP 0000160e: JUMPDEST 0000160f: PUSH2 0x164d 00001612: JUMPI 00001613: PUSH1 0x40 00001615: MLOAD 00001616: PUSH3 0x461bcd 0000161a: PUSH1 0xe5 0000161c: SHL 0000161d: DUP2 0000161e: MSTORE 0000161f: PUSH1 0x20 00001621: PUSH1 0x04 00001623: DUP3 00001624: ADD 00001625: MSTORE 00001626: PUSH1 0x10 00001628: PUSH1 0x24 0000162a: DUP3 0000162b: ADD 0000162c: MSTORE 0000162d: PUSH16 0x1393d508141154935254d4d253d39151 0000163e: PUSH1 0x82 00001640: SHL 00001641: PUSH1 0x44 00001643: DUP3 00001644: ADD 00001645: MSTORE 00001646: PUSH1 0x64 00001648: ADD 00001649: PUSH2 0x0ba9 0000164c: JUMP 0000164d: JUMPDEST 0000164e: PUSH2 0x0c76 00001651: CALLER 00001652: DUP7 00001653: DUP7 00001654: PUSH2 0x2765 00001657: JUMP 00001658: JUMPDEST 00001659: PUSH0 0000165a: MLOAD 0000165b: PUSH1 0x20 0000165d: PUSH2 0x3492 00001660: PUSH0 00001661: CODECOPY 00001662: PUSH0 00001663: MLOAD 00001664: SWAP1 00001665: PUSH0 00001666: MSTORE 00001667: PUSH2 0x166f 0000166a: DUP2 0000166b: PUSH2 0x1adf 0000166e: JUMP 0000166f: JUMPDEST 00001670: PUSH2 0x09e3 00001673: DUP3 00001674: PUSH2 0x2970 00001677: JUMP 00001678: JUMPDEST 00001679: PUSH32 0x6dac4cc0544e34aa1a4ed2862f6de78290e3f18f00fe77179ee8ef34de9dfa24 0000169a: PUSH2 0x16a2 0000169d: DUP2 0000169e: PUSH2 0x1adf 000016a1: JUMP 000016a2: JUMPDEST 000016a3: DUP2 000016a4: ISZERO 000016a5: PUSH2 0x16fc 000016a8: JUMPI 000016a9: PUSH1 0x02 000016ab: SLOAD 000016ac: PUSH1 0x01 000016ae: PUSH1 0xa0 000016b0: SHL 000016b1: SWAP1 000016b2: DIV 000016b3: PUSH1 0xff 000016b5: AND 000016b6: ISZERO 000016b7: PUSH2 0x16f7 000016ba: JUMPI 000016bb: PUSH1 0x40 000016bd: MLOAD 000016be: PUSH3 0x461bcd 000016c2: PUSH1 0xe5 000016c4: SHL 000016c5: DUP2 000016c6: MSTORE 000016c7: PUSH1 0x20 000016c9: PUSH1 0x04 000016cb: DUP3 000016cc: ADD 000016cd: MSTORE 000016ce: PUSH1 0x12 000016d0: PUSH1 0x24 000016d2: DUP3 000016d3: ADD 000016d4: MSTORE 000016d5: PUSH18 0x2aa9a6afa0a62922a0a22cafa32927ad22a7 000016e8: PUSH1 0x71 000016ea: SHL 000016eb: PUSH1 0x44 000016ed: DUP3 000016ee: ADD 000016ef: MSTORE 000016f0: PUSH1 0x64 000016f2: ADD 000016f3: PUSH2 0x0ba9 000016f6: JUMP 000016f7: JUMPDEST 000016f8: PUSH2 0x174c 000016fb: JUMP 000016fc: JUMPDEST 000016fd: PUSH1 0x02 000016ff: SLOAD 00001700: PUSH1 0x01 00001702: PUSH1 0xa0 00001704: SHL 00001705: SWAP1 00001706: DIV 00001707: PUSH1 0xff 00001709: AND 0000170a: PUSH2 0x174c 0000170d: JUMPI 0000170e: PUSH1 0x40 00001710: MLOAD 00001711: PUSH3 0x461bcd 00001715: PUSH1 0xe5 00001717: SHL 00001718: DUP2 00001719: MSTORE 0000171a: PUSH1 0x20 0000171c: PUSH1 0x04 0000171e: DUP3 0000171f: ADD 00001720: MSTORE 00001721: PUSH1 0x14 00001723: PUSH1 0x24 00001725: DUP3 00001726: ADD 00001727: MSTORE 00001728: PUSH20 0x2aa9a6afa0a62922a0a22cafaaa7232927ad22a7 0000173d: PUSH1 0x61 0000173f: SHL 00001740: PUSH1 0x44 00001742: DUP3 00001743: ADD 00001744: MSTORE 00001745: PUSH1 0x64 00001747: ADD 00001748: PUSH2 0x0ba9 0000174b: JUMP 0000174c: JUMPDEST 0000174d: PUSH1 0x02 0000174f: DUP1 00001750: SLOAD 00001751: DUP4 00001752: ISZERO 00001753: ISZERO 00001754: PUSH1 0x01 00001756: PUSH1 0xa0 00001758: SHL 00001759: MUL 0000175a: PUSH1 0xff 0000175c: PUSH1 0xa0 0000175e: SHL 0000175f: NOT 00001760: SWAP1 00001761: SWAP2 00001762: AND 00001763: OR 00001764: SWAP1 00001765: SSTORE 00001766: PUSH1 0x40 00001768: MLOAD 00001769: CALLER 0000176a: SWAP1 0000176b: PUSH32 0x2aa23821d2fd7524b53239d5f8398ea59652bbfea171645c0da0dbe82afb5d43 0000178c: SWAP1 0000178d: PUSH2 0x179b 00001790: SWAP1 00001791: DUP6 00001792: ISZERO 00001793: ISZERO 00001794: DUP2 00001795: MSTORE 00001796: PUSH1 0x20 00001798: ADD 00001799: SWAP1 0000179a: JUMP 0000179b: JUMPDEST 0000179c: PUSH1 0x40 0000179e: MLOAD 0000179f: DUP1 000017a0: SWAP2 000017a1: SUB 000017a2: SWAP1 000017a3: LOG2 000017a4: POP 000017a5: POP 000017a6: JUMP 000017a7: JUMPDEST 000017a8: PUSH32 0xbf63066482b01a20567880b14a2934fecb21c925e6bcc0a0a091c59723fa9c06 000017c9: PUSH2 0x17d1 000017cc: DUP2 000017cd: PUSH2 0x1adf 000017d0: JUMP 000017d1: JUMPDEST 000017d2: PUSH0 000017d3: DUP3 000017d4: GT 000017d5: PUSH2 0x17f0 000017d8: JUMPI 000017d9: PUSH1 0x40 000017db: MLOAD 000017dc: PUSH3 0x461bcd 000017e0: PUSH1 0xe5 000017e2: SHL 000017e3: DUP2 000017e4: MSTORE 000017e5: PUSH1 0x04 000017e7: ADD 000017e8: PUSH2 0x0ba9 000017eb: SWAP1 000017ec: PUSH2 0x33ba 000017ef: JUMP 000017f0: JUMPDEST 000017f1: PUSH32 0x00000000000000000000000063d74d22e689c715a04f2c13962b1f77f443d35b 00001812: PUSH1 0x01 00001814: PUSH1 0x01 00001816: PUSH1 0xa0 00001818: SHL 00001819: SUB 0000181a: AND 0000181b: DUP5 0000181c: PUSH1 0x01 0000181e: PUSH1 0x01 00001820: PUSH1 0xa0 00001822: SHL 00001823: SUB 00001824: AND 00001825: SUB 00001826: PUSH2 0x190d 00001829: JUMPI 0000182a: PUSH1 0x04 0000182c: DUP1 0000182d: SLOAD 0000182e: PUSH1 0x40 00001830: MLOAD 00001831: PUSH4 0x70a08231 00001836: PUSH1 0xe0 00001838: SHL 00001839: DUP2 0000183a: MSTORE 0000183b: ADDRESS 0000183c: SWAP3 0000183d: DUP2 0000183e: ADD 0000183f: SWAP3 00001840: SWAP1 00001841: SWAP3 00001842: MSTORE 00001843: PUSH0 00001844: SWAP2 00001845: PUSH1 0x01 00001847: PUSH1 0x01 00001849: PUSH1 0x80 0000184b: SHL 0000184c: SUB 0000184d: SWAP1 0000184e: SWAP2 0000184f: AND 00001850: SWAP1 00001851: PUSH1 0x01 00001853: PUSH1 0x01 00001855: PUSH1 0xa0 00001857: SHL 00001858: SUB 00001859: DUP8 0000185a: AND 0000185b: SWAP1 0000185c: PUSH4 0x70a08231 00001861: SWAP1 00001862: PUSH1 0x24 00001864: ADD 00001865: PUSH1 0x20 00001867: PUSH1 0x40 00001869: MLOAD 0000186a: DUP1 0000186b: DUP4 0000186c: SUB 0000186d: DUP2 0000186e: DUP7 0000186f: GAS 00001870: STATICCALL 00001871: ISZERO 00001872: DUP1 00001873: ISZERO 00001874: PUSH2 0x187f 00001877: JUMPI 00001878: RETURNDATASIZE 00001879: PUSH0 0000187a: PUSH0 0000187b: RETURNDATACOPY 0000187c: RETURNDATASIZE 0000187d: PUSH0 0000187e: REVERT 0000187f: JUMPDEST 00001880: POP 00001881: POP 00001882: POP 00001883: POP 00001884: PUSH1 0x40 00001886: MLOAD 00001887: RETURNDATASIZE 00001888: PUSH1 0x1f 0000188a: NOT 0000188b: PUSH1 0x1f 0000188d: DUP3 0000188e: ADD 0000188f: AND 00001890: DUP3 00001891: ADD 00001892: DUP1 00001893: PUSH1 0x40 00001895: MSTORE 00001896: POP 00001897: DUP2 00001898: ADD 00001899: SWAP1 0000189a: PUSH2 0x18a3 0000189d: SWAP2 0000189e: SWAP1 0000189f: PUSH2 0x33f5 000018a2: JUMP 000018a3: JUMPDEST 000018a4: PUSH2 0x18ad 000018a7: SWAP2 000018a8: SWAP1 000018a9: PUSH2 0x33e2 000018ac: JUMP 000018ad: JUMPDEST 000018ae: SWAP1 000018af: POP 000018b0: DUP3 000018b1: DUP2 000018b2: LT 000018b3: ISZERO 000018b4: PUSH2 0x190b 000018b7: JUMPI 000018b8: PUSH1 0x40 000018ba: MLOAD 000018bb: PUSH3 0x461bcd 000018bf: PUSH1 0xe5 000018c1: SHL 000018c2: DUP2 000018c3: MSTORE 000018c4: PUSH1 0x20 000018c6: PUSH1 0x04 000018c8: DUP3 000018c9: ADD 000018ca: MSTORE 000018cb: PUSH1 0x23 000018cd: PUSH1 0x24 000018cf: DUP3 000018d0: ADD 000018d1: MSTORE 000018d2: PUSH32 0x494e53554646494349454e545f535441424c455f544f4b454e5f544f5f524553 000018f3: PUSH1 0x44 000018f5: DUP3 000018f6: ADD 000018f7: MSTORE 000018f8: PUSH3 0x435545 000018fc: PUSH1 0xe8 000018fe: SHL 000018ff: PUSH1 0x64 00001901: DUP3 00001902: ADD 00001903: MSTORE 00001904: PUSH1 0x84 00001906: ADD 00001907: PUSH2 0x0ba9 0000190a: JUMP 0000190b: JUMPDEST 0000190c: POP 0000190d: JUMPDEST 0000190e: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 0000192f: PUSH1 0x01 00001931: PUSH1 0x01 00001933: PUSH1 0xa0 00001935: SHL 00001936: SUB 00001937: AND 00001938: DUP5 00001939: PUSH1 0x01 0000193b: PUSH1 0x01 0000193d: PUSH1 0xa0 0000193f: SHL 00001940: SUB 00001941: AND 00001942: SUB 00001943: PUSH2 0x1a2f 00001946: JUMPI 00001947: PUSH1 0x03 00001949: SLOAD 0000194a: PUSH1 0x40 0000194c: MLOAD 0000194d: PUSH4 0x70a08231 00001952: PUSH1 0xe0 00001954: SHL 00001955: DUP2 00001956: MSTORE 00001957: ADDRESS 00001958: PUSH1 0x04 0000195a: DUP3 0000195b: ADD 0000195c: MSTORE 0000195d: PUSH0 0000195e: SWAP2 0000195f: PUSH1 0x01 00001961: PUSH1 0x80 00001963: SHL 00001964: SWAP1 00001965: DIV 00001966: PUSH1 0x01 00001968: PUSH1 0x01 0000196a: PUSH1 0x80 0000196c: SHL 0000196d: SUB 0000196e: AND 0000196f: SWAP1 00001970: PUSH1 0x01 00001972: PUSH1 0x01 00001974: PUSH1 0xa0 00001976: SHL 00001977: SUB 00001978: DUP8 00001979: AND 0000197a: SWAP1 0000197b: PUSH4 0x70a08231 00001980: SWAP1 00001981: PUSH1 0x24 00001983: ADD 00001984: PUSH1 0x20 00001986: PUSH1 0x40 00001988: MLOAD 00001989: DUP1 0000198a: DUP4 0000198b: SUB 0000198c: DUP2 0000198d: DUP7 0000198e: GAS 0000198f: STATICCALL 00001990: ISZERO 00001991: DUP1 00001992: ISZERO 00001993: PUSH2 0x199e 00001996: JUMPI 00001997: RETURNDATASIZE 00001998: PUSH0 00001999: PUSH0 0000199a: RETURNDATACOPY 0000199b: RETURNDATASIZE 0000199c: PUSH0 0000199d: REVERT 0000199e: JUMPDEST 0000199f: POP 000019a0: POP 000019a1: POP 000019a2: POP 000019a3: PUSH1 0x40 000019a5: MLOAD 000019a6: RETURNDATASIZE 000019a7: PUSH1 0x1f 000019a9: NOT 000019aa: PUSH1 0x1f 000019ac: DUP3 000019ad: ADD 000019ae: AND 000019af: DUP3 000019b0: ADD 000019b1: DUP1 000019b2: PUSH1 0x40 000019b4: MSTORE 000019b5: POP 000019b6: DUP2 000019b7: ADD 000019b8: SWAP1 000019b9: PUSH2 0x19c2 000019bc: SWAP2 000019bd: SWAP1 000019be: PUSH2 0x33f5 000019c1: JUMP 000019c2: JUMPDEST 000019c3: PUSH2 0x19cc 000019c6: SWAP2 000019c7: SWAP1 000019c8: PUSH2 0x33e2 000019cb: JUMP 000019cc: JUMPDEST 000019cd: SWAP1 000019ce: POP 000019cf: DUP3 000019d0: DUP2 000019d1: LT 000019d2: ISZERO 000019d3: PUSH2 0x1a2d 000019d6: JUMPI 000019d7: PUSH1 0x40 000019d9: MLOAD 000019da: PUSH3 0x461bcd 000019de: PUSH1 0xe5 000019e0: SHL 000019e1: DUP2 000019e2: MSTORE 000019e3: PUSH1 0x20 000019e5: PUSH1 0x04 000019e7: DUP3 000019e8: ADD 000019e9: MSTORE 000019ea: PUSH1 0x26 000019ec: PUSH1 0x24 000019ee: DUP3 000019ef: ADD 000019f0: MSTORE 000019f1: PUSH32 0x494e53554646494349454e545f45584f47454e4f55535f41535345545f544f5f 00001a12: PUSH1 0x44 00001a14: DUP3 00001a15: ADD 00001a16: MSTORE 00001a17: PUSH6 0x524553435545 00001a1e: PUSH1 0xd0 00001a20: SHL 00001a21: PUSH1 0x64 00001a23: DUP3 00001a24: ADD 00001a25: MSTORE 00001a26: PUSH1 0x84 00001a28: ADD 00001a29: PUSH2 0x0ba9 00001a2c: JUMP 00001a2d: JUMPDEST 00001a2e: POP 00001a2f: JUMPDEST 00001a30: PUSH2 0x1a43 00001a33: PUSH1 0x01 00001a35: PUSH1 0x01 00001a37: PUSH1 0xa0 00001a39: SHL 00001a3a: SUB 00001a3b: DUP6 00001a3c: AND 00001a3d: DUP5 00001a3e: DUP5 00001a3f: PUSH2 0x20b3 00001a42: JUMP 00001a43: JUMPDEST 00001a44: DUP3 00001a45: PUSH1 0x01 00001a47: PUSH1 0x01 00001a49: PUSH1 0xa0 00001a4b: SHL 00001a4c: SUB 00001a4d: AND 00001a4e: DUP5 00001a4f: PUSH1 0x01 00001a51: PUSH1 0x01 00001a53: PUSH1 0xa0 00001a55: SHL 00001a56: SUB 00001a57: AND 00001a58: PUSH32 0x77023e19c7343ad491fd706c36335ca0e738340a91f29b1fd81e2673d44896c4 00001a79: DUP5 00001a7a: PUSH1 0x40 00001a7c: MLOAD 00001a7d: PUSH2 0x1a88 00001a80: SWAP2 00001a81: DUP2 00001a82: MSTORE 00001a83: PUSH1 0x20 00001a85: ADD 00001a86: SWAP1 00001a87: JUMP 00001a88: JUMPDEST 00001a89: PUSH1 0x40 00001a8b: MLOAD 00001a8c: DUP1 00001a8d: SWAP2 00001a8e: SUB 00001a8f: SWAP1 00001a90: LOG3 00001a91: POP 00001a92: POP 00001a93: POP 00001a94: POP 00001a95: JUMP 00001a96: JUMPDEST 00001a97: PUSH0 00001a98: PUSH0 00001a99: PUSH0 00001a9a: PUSH0 00001a9b: PUSH2 0x0dc6 00001a9e: DUP6 00001a9f: PUSH2 0x2a34 00001aa2: JUMP 00001aa3: JUMPDEST 00001aa4: PUSH2 0x1aac 00001aa7: DUP3 00001aa8: PUSH2 0x09e7 00001aab: JUMP 00001aac: JUMPDEST 00001aad: PUSH2 0x1ab5 00001ab0: DUP2 00001ab1: PUSH2 0x1adf 00001ab4: JUMP 00001ab5: JUMPDEST 00001ab6: PUSH2 0x0b24 00001ab9: DUP4 00001aba: DUP4 00001abb: PUSH2 0x1d07 00001abe: JUMP 00001abf: JUMPDEST 00001ac0: PUSH0 00001ac1: MLOAD 00001ac2: PUSH1 0x20 00001ac4: PUSH2 0x3492 00001ac7: PUSH0 00001ac8: CODECOPY 00001ac9: PUSH0 00001aca: MLOAD 00001acb: SWAP1 00001acc: PUSH0 00001acd: MSTORE 00001ace: PUSH2 0x1ad6 00001ad1: DUP2 00001ad2: PUSH2 0x1adf 00001ad5: JUMP 00001ad6: JUMPDEST 00001ad7: PUSH2 0x09e3 00001ada: DUP3 00001adb: PUSH2 0x2c4a 00001ade: JUMP 00001adf: JUMPDEST 00001ae0: PUSH2 0x0d9b 00001ae3: DUP2 00001ae4: CALLER 00001ae5: PUSH2 0x2d19 00001ae8: JUMP 00001ae9: JUMPDEST 00001aea: PUSH1 0x01 00001aec: PUSH1 0x01 00001aee: PUSH1 0xa0 00001af0: SHL 00001af1: SUB 00001af2: DUP2 00001af3: AND 00001af4: PUSH2 0x1b38 00001af7: JUMPI 00001af8: PUSH1 0x40 00001afa: MLOAD 00001afb: PUSH3 0x461bcd 00001aff: PUSH1 0xe5 00001b01: SHL 00001b02: DUP2 00001b03: MSTORE 00001b04: PUSH1 0x20 00001b06: PUSH1 0x04 00001b08: DUP3 00001b09: ADD 00001b0a: MSTORE 00001b0b: PUSH1 0x16 00001b0d: PUSH1 0x24 00001b0f: DUP3 00001b10: ADD 00001b11: MSTORE 00001b12: PUSH22 0x16915493d7d05111149154d4d7d393d517d590531251 00001b29: PUSH1 0x52 00001b2b: SHL 00001b2c: PUSH1 0x44 00001b2e: DUP3 00001b2f: ADD 00001b30: MSTORE 00001b31: PUSH1 0x64 00001b33: ADD 00001b34: PUSH2 0x0ba9 00001b37: JUMP 00001b38: JUMPDEST 00001b39: PUSH1 0x01 00001b3b: DUP1 00001b3c: SLOAD 00001b3d: PUSH1 0x01 00001b3f: PUSH1 0x01 00001b41: PUSH1 0xa0 00001b43: SHL 00001b44: SUB 00001b45: DUP4 00001b46: DUP2 00001b47: AND 00001b48: PUSH1 0x01 00001b4a: PUSH1 0x01 00001b4c: PUSH1 0xa0 00001b4e: SHL 00001b4f: SUB 00001b50: NOT 00001b51: DUP4 00001b52: AND 00001b53: DUP2 00001b54: OR 00001b55: SWAP1 00001b56: SWAP4 00001b57: SSTORE 00001b58: PUSH1 0x40 00001b5a: MLOAD 00001b5b: SWAP2 00001b5c: AND 00001b5d: SWAP2 00001b5e: SWAP1 00001b5f: DUP3 00001b60: SWAP1 00001b61: PUSH32 0x5bb4a397b030d1b442eb0e5f988366866a9c68db58a5102c534e6b4c5fb41b57 00001b82: SWAP1 00001b83: PUSH0 00001b84: SWAP1 00001b85: LOG3 00001b86: POP 00001b87: POP 00001b88: JUMP 00001b89: JUMPDEST 00001b8a: PUSH0 00001b8b: DUP1 00001b8c: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00 00001bad: PUSH2 0x0942 00001bb0: JUMP 00001bb1: JUMPDEST 00001bb2: PUSH2 0x1bb9 00001bb5: PUSH2 0x2d52 00001bb8: JUMP 00001bb9: JUMPDEST 00001bba: PUSH1 0x01 00001bbc: PUSH1 0x01 00001bbe: PUSH1 0xa0 00001bc0: SHL 00001bc1: SUB 00001bc2: DUP6 00001bc3: AND 00001bc4: PUSH2 0x1c08 00001bc7: JUMPI 00001bc8: PUSH1 0x40 00001bca: MLOAD 00001bcb: PUSH3 0x461bcd 00001bcf: PUSH1 0xe5 00001bd1: SHL 00001bd2: DUP2 00001bd3: MSTORE 00001bd4: PUSH1 0x20 00001bd6: PUSH1 0x04 00001bd8: DUP3 00001bd9: ADD 00001bda: MSTORE 00001bdb: PUSH1 0x16 00001bdd: PUSH1 0x24 00001bdf: DUP3 00001be0: ADD 00001be1: MSTORE 00001be2: PUSH22 0x16915493d7d05111149154d4d7d393d517d590531251 00001bf9: PUSH1 0x52 00001bfb: SHL 00001bfc: PUSH1 0x44 00001bfe: DUP3 00001bff: ADD 00001c00: MSTORE 00001c01: PUSH1 0x64 00001c03: ADD 00001c04: PUSH2 0x0ba9 00001c07: JUMP 00001c08: JUMPDEST 00001c09: PUSH2 0x1c10 00001c0c: PUSH2 0x2d77 00001c0f: JUMP 00001c10: JUMPDEST 00001c11: PUSH2 0x1c18 00001c14: PUSH2 0x2d77 00001c17: JUMP 00001c18: JUMPDEST 00001c19: PUSH2 0x1c22 00001c1c: PUSH0 00001c1d: DUP7 00001c1e: PUSH2 0x1c66 00001c21: JUMP 00001c22: JUMPDEST 00001c23: POP 00001c24: PUSH2 0x1c3a 00001c27: PUSH0 00001c28: MLOAD 00001c29: PUSH1 0x20 00001c2b: PUSH2 0x3492 00001c2e: PUSH0 00001c2f: CODECOPY 00001c30: PUSH0 00001c31: MLOAD 00001c32: SWAP1 00001c33: PUSH0 00001c34: MSTORE 00001c35: DUP7 00001c36: PUSH2 0x1c66 00001c39: JUMP 00001c3a: JUMPDEST 00001c3b: POP 00001c3c: PUSH2 0x1c44 00001c3f: DUP5 00001c40: PUSH2 0x1ae9 00001c43: JUMP 00001c44: JUMPDEST 00001c45: PUSH2 0x1c4d 00001c48: DUP4 00001c49: PUSH2 0x2052 00001c4c: JUMP 00001c4d: JUMPDEST 00001c4e: PUSH2 0x1c56 00001c51: DUP3 00001c52: PUSH2 0x263d 00001c55: JUMP 00001c56: JUMPDEST 00001c57: PUSH2 0x1c5f 00001c5a: DUP2 00001c5b: PUSH2 0x1fee 00001c5e: JUMP 00001c5f: JUMPDEST 00001c60: POP 00001c61: POP 00001c62: POP 00001c63: POP 00001c64: POP 00001c65: JUMP 00001c66: JUMPDEST 00001c67: PUSH0 00001c68: PUSH0 00001c69: MLOAD 00001c6a: PUSH1 0x20 00001c6c: PUSH2 0x34d2 00001c6f: PUSH0 00001c70: CODECOPY 00001c71: PUSH0 00001c72: MLOAD 00001c73: SWAP1 00001c74: PUSH0 00001c75: MSTORE 00001c76: PUSH2 0x1c7f 00001c79: DUP5 00001c7a: DUP5 00001c7b: PUSH2 0x10df 00001c7e: JUMP 00001c7f: JUMPDEST 00001c80: PUSH2 0x1cfe 00001c83: JUMPI 00001c84: PUSH0 00001c85: DUP5 00001c86: DUP2 00001c87: MSTORE 00001c88: PUSH1 0x20 00001c8a: DUP3 00001c8b: DUP2 00001c8c: MSTORE 00001c8d: PUSH1 0x40 00001c8f: DUP1 00001c90: DUP4 00001c91: KECCAK256 00001c92: PUSH1 0x01 00001c94: PUSH1 0x01 00001c96: PUSH1 0xa0 00001c98: SHL 00001c99: SUB 00001c9a: DUP8 00001c9b: AND 00001c9c: DUP5 00001c9d: MSTORE 00001c9e: SWAP1 00001c9f: SWAP2 00001ca0: MSTORE 00001ca1: SWAP1 00001ca2: KECCAK256 00001ca3: DUP1 00001ca4: SLOAD 00001ca5: PUSH1 0xff 00001ca7: NOT 00001ca8: AND 00001ca9: PUSH1 0x01 00001cab: OR 00001cac: SWAP1 00001cad: SSTORE 00001cae: PUSH2 0x1cb4 00001cb1: CALLER 00001cb2: SWAP1 00001cb3: JUMP 00001cb4: JUMPDEST 00001cb5: PUSH1 0x01 00001cb7: PUSH1 0x01 00001cb9: PUSH1 0xa0 00001cbb: SHL 00001cbc: SUB 00001cbd: AND 00001cbe: DUP4 00001cbf: PUSH1 0x01 00001cc1: PUSH1 0x01 00001cc3: PUSH1 0xa0 00001cc5: SHL 00001cc6: SUB 00001cc7: AND 00001cc8: DUP6 00001cc9: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d 00001cea: PUSH1 0x40 00001cec: MLOAD 00001ced: PUSH1 0x40 00001cef: MLOAD 00001cf0: DUP1 00001cf1: SWAP2 00001cf2: SUB 00001cf3: SWAP1 00001cf4: LOG4 00001cf5: PUSH1 0x01 00001cf7: SWAP2 00001cf8: POP 00001cf9: POP 00001cfa: PUSH2 0x0942 00001cfd: JUMP 00001cfe: JUMPDEST 00001cff: PUSH0 00001d00: SWAP2 00001d01: POP 00001d02: POP 00001d03: PUSH2 0x0942 00001d06: JUMP 00001d07: JUMPDEST 00001d08: PUSH0 00001d09: PUSH0 00001d0a: MLOAD 00001d0b: PUSH1 0x20 00001d0d: PUSH2 0x34d2 00001d10: PUSH0 00001d11: CODECOPY 00001d12: PUSH0 00001d13: MLOAD 00001d14: SWAP1 00001d15: PUSH0 00001d16: MSTORE 00001d17: PUSH2 0x1d20 00001d1a: DUP5 00001d1b: DUP5 00001d1c: PUSH2 0x10df 00001d1f: JUMP 00001d20: JUMPDEST 00001d21: ISZERO 00001d22: PUSH2 0x1cfe 00001d25: JUMPI 00001d26: PUSH0 00001d27: DUP5 00001d28: DUP2 00001d29: MSTORE 00001d2a: PUSH1 0x20 00001d2c: DUP3 00001d2d: DUP2 00001d2e: MSTORE 00001d2f: PUSH1 0x40 00001d31: DUP1 00001d32: DUP4 00001d33: KECCAK256 00001d34: PUSH1 0x01 00001d36: PUSH1 0x01 00001d38: PUSH1 0xa0 00001d3a: SHL 00001d3b: SUB 00001d3c: DUP8 00001d3d: AND 00001d3e: DUP1 00001d3f: DUP6 00001d40: MSTORE 00001d41: SWAP3 00001d42: MSTORE 00001d43: DUP1 00001d44: DUP4 00001d45: KECCAK256 00001d46: DUP1 00001d47: SLOAD 00001d48: PUSH1 0xff 00001d4a: NOT 00001d4b: AND 00001d4c: SWAP1 00001d4d: SSTORE 00001d4e: MLOAD 00001d4f: CALLER 00001d50: SWAP3 00001d51: DUP8 00001d52: SWAP2 00001d53: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b 00001d74: SWAP2 00001d75: SWAP1 00001d76: LOG4 00001d77: PUSH1 0x01 00001d79: SWAP2 00001d7a: POP 00001d7b: POP 00001d7c: PUSH2 0x0942 00001d7f: JUMP 00001d80: JUMPDEST 00001d81: PUSH0 00001d82: PUSH0 00001d83: PUSH0 00001d84: PUSH0 00001d85: PUSH0 00001d86: PUSH0 00001d87: PUSH2 0x1d8f 00001d8a: DUP9 00001d8b: PUSH2 0x2a34 00001d8e: JUMP 00001d8f: JUMPDEST 00001d90: SWAP4 00001d91: POP 00001d92: SWAP4 00001d93: POP 00001d94: SWAP4 00001d95: POP 00001d96: SWAP4 00001d97: POP 00001d98: PUSH0 00001d99: DUP5 00001d9a: GT 00001d9b: PUSH2 0x1db6 00001d9e: JUMPI 00001d9f: PUSH1 0x40 00001da1: MLOAD 00001da2: PUSH3 0x461bcd 00001da6: PUSH1 0xe5 00001da8: SHL 00001da9: DUP2 00001daa: MSTORE 00001dab: PUSH1 0x04 00001dad: ADD 00001dae: PUSH2 0x0ba9 00001db1: SWAP1 00001db2: PUSH2 0x33ba 00001db5: JUMP 00001db6: JUMPDEST 00001db7: DUP8 00001db8: DUP5 00001db9: LT 00001dba: ISZERO 00001dbb: PUSH2 0x1e06 00001dbe: JUMPI 00001dbf: PUSH1 0x40 00001dc1: MLOAD 00001dc2: PUSH3 0x461bcd 00001dc6: PUSH1 0xe5 00001dc8: SHL 00001dc9: DUP2 00001dca: MSTORE 00001dcb: PUSH1 0x20 00001dcd: PUSH1 0x04 00001dcf: DUP3 00001dd0: ADD 00001dd1: MSTORE 00001dd2: PUSH1 0x1a 00001dd4: PUSH1 0x24 00001dd6: DUP3 00001dd7: ADD 00001dd8: MSTORE 00001dd9: PUSH32 0x494e53554646494349454e545f4f55545055545f414d4f554e54000000000000 00001dfa: PUSH1 0x44 00001dfc: DUP3 00001dfd: ADD 00001dfe: MSTORE 00001dff: PUSH1 0x64 00001e01: ADD 00001e02: PUSH2 0x0ba9 00001e05: JUMP 00001e06: JUMPDEST 00001e07: PUSH1 0x03 00001e09: SLOAD 00001e0a: PUSH1 0x01 00001e0c: PUSH1 0x80 00001e0e: SHL 00001e0f: SWAP1 00001e10: DIV 00001e11: PUSH1 0x01 00001e13: PUSH1 0x01 00001e15: PUSH1 0x80 00001e17: SHL 00001e18: SUB 00001e19: AND 00001e1a: DUP5 00001e1b: GT 00001e1c: ISZERO 00001e1d: PUSH2 0x1e81 00001e20: JUMPI 00001e21: PUSH1 0x40 00001e23: MLOAD 00001e24: PUSH3 0x461bcd 00001e28: PUSH1 0xe5 00001e2a: SHL 00001e2b: DUP2 00001e2c: MSTORE 00001e2d: PUSH1 0x20 00001e2f: PUSH1 0x04 00001e31: DUP3 00001e32: ADD 00001e33: MSTORE 00001e34: PUSH1 0x30 00001e36: PUSH1 0x24 00001e38: DUP3 00001e39: ADD 00001e3a: MSTORE 00001e3b: PUSH32 0x494e53554646494349454e545f415641494c41424c455f45584f47454e4f5553 00001e5c: PUSH1 0x44 00001e5e: DUP3 00001e5f: ADD 00001e60: MSTORE 00001e61: PUSH16 0x5f41535345545f4c4951554944495459 00001e72: PUSH1 0x80 00001e74: SHL 00001e75: PUSH1 0x64 00001e77: DUP3 00001e78: ADD 00001e79: MSTORE 00001e7a: PUSH1 0x84 00001e7c: ADD 00001e7d: PUSH2 0x0ba9 00001e80: JUMP 00001e81: JUMPDEST 00001e82: DUP4 00001e83: PUSH1 0x03 00001e85: PUSH1 0x10 00001e87: DUP3 00001e88: DUP3 00001e89: DUP3 00001e8a: SWAP1 00001e8b: SLOAD 00001e8c: SWAP1 00001e8d: PUSH2 0x0100 00001e90: EXP 00001e91: SWAP1 00001e92: DIV 00001e93: PUSH1 0x01 00001e95: PUSH1 0x01 00001e97: PUSH1 0x80 00001e99: SHL 00001e9a: SUB 00001e9b: AND 00001e9c: PUSH2 0x1ea5 00001e9f: SWAP2 00001ea0: SWAP1 00001ea1: PUSH2 0x3377 00001ea4: JUMP 00001ea5: JUMPDEST 00001ea6: SWAP3 00001ea7: POP 00001ea8: PUSH2 0x0100 00001eab: EXP 00001eac: DUP2 00001ead: SLOAD 00001eae: DUP2 00001eaf: PUSH1 0x01 00001eb1: PUSH1 0x01 00001eb3: PUSH1 0x80 00001eb5: SHL 00001eb6: SUB 00001eb7: MUL 00001eb8: NOT 00001eb9: AND 00001eba: SWAP1 00001ebb: DUP4 00001ebc: PUSH1 0x01 00001ebe: PUSH1 0x01 00001ec0: PUSH1 0x80 00001ec2: SHL 00001ec3: SUB 00001ec4: AND 00001ec5: MUL 00001ec6: OR 00001ec7: SWAP1 00001ec8: SSTORE 00001ec9: POP 00001eca: PUSH2 0x1ed2 00001ecd: DUP2 00001ece: PUSH2 0x2d7f 00001ed1: JUMP 00001ed2: JUMPDEST 00001ed3: PUSH1 0x04 00001ed5: DUP1 00001ed6: SLOAD 00001ed7: PUSH0 00001ed8: SWAP1 00001ed9: PUSH2 0x1eec 00001edc: SWAP1 00001edd: DUP5 00001ede: SWAP1 00001edf: PUSH1 0x01 00001ee1: PUSH1 0x01 00001ee3: PUSH1 0x80 00001ee5: SHL 00001ee6: SUB 00001ee7: AND 00001ee8: PUSH2 0x341f 00001eeb: JUMP 00001eec: JUMPDEST 00001eed: SWAP3 00001eee: POP 00001eef: PUSH2 0x0100 00001ef2: EXP 00001ef3: DUP2 00001ef4: SLOAD 00001ef5: DUP2 00001ef6: PUSH1 0x01 00001ef8: PUSH1 0x01 00001efa: PUSH1 0x80 00001efc: SHL 00001efd: SUB 00001efe: MUL 00001eff: NOT 00001f00: AND 00001f01: SWAP1 00001f02: DUP4 00001f03: PUSH1 0x01 00001f05: PUSH1 0x01 00001f07: PUSH1 0x80 00001f09: SHL 00001f0a: SUB 00001f0b: AND 00001f0c: MUL 00001f0d: OR 00001f0e: SWAP1 00001f0f: SSTORE 00001f10: POP 00001f11: PUSH2 0x1f50 00001f14: DUP10 00001f15: ADDRESS 00001f16: DUP6 00001f17: PUSH32 0x00000000000000000000000063d74d22e689c715a04f2c13962b1f77f443d35b 00001f38: PUSH1 0x01 00001f3a: PUSH1 0x01 00001f3c: PUSH1 0xa0 00001f3e: SHL 00001f3f: SUB 00001f40: AND 00001f41: PUSH2 0x2582 00001f44: SWAP1 00001f45: SWAP4 00001f46: SWAP3 00001f47: SWAP2 00001f48: SWAP1 00001f49: PUSH4 0xffffffff 00001f4e: AND 00001f4f: JUMP 00001f50: JUMPDEST 00001f51: PUSH2 0x1f5a 00001f54: ADDRESS 00001f55: DUP4 00001f56: PUSH2 0x25bb 00001f59: JUMP 00001f5a: JUMPDEST 00001f5b: PUSH2 0x1f8e 00001f5e: PUSH1 0x01 00001f60: PUSH1 0x01 00001f62: PUSH1 0xa0 00001f64: SHL 00001f65: SUB 00001f66: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 00001f87: AND 00001f88: DUP9 00001f89: DUP7 00001f8a: PUSH2 0x20b3 00001f8d: JUMP 00001f8e: JUMPDEST 00001f8f: PUSH1 0x40 00001f91: DUP1 00001f92: MLOAD 00001f93: DUP6 00001f94: DUP2 00001f95: MSTORE 00001f96: PUSH1 0x20 00001f98: DUP2 00001f99: ADD 00001f9a: DUP6 00001f9b: SWAP1 00001f9c: MSTORE 00001f9d: SWAP1 00001f9e: DUP2 00001f9f: ADD 00001fa0: DUP3 00001fa1: SWAP1 00001fa2: MSTORE 00001fa3: PUSH1 0x01 00001fa5: PUSH1 0x01 00001fa7: PUSH1 0xa0 00001fa9: SHL 00001faa: SUB 00001fab: DUP1 00001fac: DUP10 00001fad: AND 00001fae: SWAP2 00001faf: SWAP1 00001fb0: DUP12 00001fb1: AND 00001fb2: SWAP1 00001fb3: PUSH32 0x35b18eb91d0f8ce2968fdf81c1ed9ac429776c7260cdb8bf35c314564e714f66 00001fd4: SWAP1 00001fd5: PUSH1 0x60 00001fd7: ADD 00001fd8: JUMPDEST 00001fd9: PUSH1 0x40 00001fdb: MLOAD 00001fdc: DUP1 00001fdd: SWAP2 00001fde: SUB 00001fdf: SWAP1 00001fe0: LOG3 00001fe1: POP 00001fe2: SWAP2 00001fe3: SWAP8 00001fe4: SWAP1 00001fe5: SWAP7 00001fe6: POP 00001fe7: SWAP5 00001fe8: POP 00001fe9: POP 00001fea: POP 00001feb: POP 00001fec: POP 00001fed: JUMP 00001fee: JUMPDEST 00001fef: PUSH1 0x04 00001ff1: DUP1 00001ff2: SLOAD 00001ff3: DUP3 00001ff4: SWAP2 00001ff5: SWAP1 00001ff6: PUSH1 0xff 00001ff8: PUSH1 0x80 00001ffa: SHL 00001ffb: NOT 00001ffc: AND 00001ffd: PUSH1 0x01 00001fff: PUSH1 0x80 00002001: SHL 00002002: DUP4 00002003: PUSH1 0x01 00002005: DUP2 00002006: GT 00002007: ISZERO 00002008: PUSH2 0x2013 0000200b: JUMPI 0000200c: PUSH2 0x2013 0000200f: PUSH2 0x31bd 00002012: JUMP 00002013: JUMPDEST 00002014: MUL 00002015: OR 00002016: SWAP1 00002017: SSTORE 00002018: POP 00002019: PUSH32 0xfd5cdc42bae811dee131f609e8baa96f36aff411392111457b2113ea36bf9cc4 0000203a: DUP2 0000203b: PUSH1 0x40 0000203d: MLOAD 0000203e: PUSH2 0x2047 00002041: SWAP2 00002042: SWAP1 00002043: PUSH2 0x31d1 00002046: JUMP 00002047: JUMPDEST 00002048: PUSH1 0x40 0000204a: MLOAD 0000204b: DUP1 0000204c: SWAP2 0000204d: SUB 0000204e: SWAP1 0000204f: LOG1 00002050: POP 00002051: JUMP 00002052: JUMPDEST 00002053: PUSH1 0x03 00002055: DUP1 00002056: SLOAD 00002057: PUSH1 0x01 00002059: PUSH1 0x01 0000205b: PUSH1 0x80 0000205d: SHL 0000205e: SUB 0000205f: DUP4 00002060: DUP2 00002061: AND 00002062: PUSH1 0x01 00002064: PUSH1 0x01 00002066: PUSH1 0x80 00002068: SHL 00002069: SUB 0000206a: NOT 0000206b: DUP4 0000206c: AND 0000206d: DUP2 0000206e: OR 0000206f: SWAP1 00002070: SWAP4 00002071: SSTORE 00002072: PUSH1 0x40 00002074: DUP1 00002075: MLOAD 00002076: SWAP2 00002077: SWAP1 00002078: SWAP3 00002079: AND 0000207a: DUP1 0000207b: DUP3 0000207c: MSTORE 0000207d: PUSH1 0x20 0000207f: DUP3 00002080: ADD 00002081: SWAP4 00002082: SWAP1 00002083: SWAP4 00002084: MSTORE 00002085: PUSH32 0xe0f222fd3dc07d1f2556e7d34819cc5fe0ab68fedb472dc2de611aa3398409ce 000020a6: SWAP2 000020a7: ADD 000020a8: PUSH1 0x40 000020aa: MLOAD 000020ab: DUP1 000020ac: SWAP2 000020ad: SUB 000020ae: SWAP1 000020af: LOG1 000020b0: POP 000020b1: POP 000020b2: JUMP 000020b3: JUMPDEST 000020b4: PUSH1 0x40 000020b6: MLOAD 000020b7: PUSH1 0x01 000020b9: PUSH1 0x01 000020bb: PUSH1 0xa0 000020bd: SHL 000020be: SUB 000020bf: DUP4 000020c0: DUP2 000020c1: AND 000020c2: PUSH1 0x24 000020c4: DUP4 000020c5: ADD 000020c6: MSTORE 000020c7: PUSH1 0x44 000020c9: DUP3 000020ca: ADD 000020cb: DUP4 000020cc: SWAP1 000020cd: MSTORE 000020ce: PUSH2 0x0b5d 000020d1: SWAP2 000020d2: DUP6 000020d3: SWAP2 000020d4: DUP3 000020d5: AND 000020d6: SWAP1 000020d7: PUSH4 0xa9059cbb 000020dc: SWAP1 000020dd: PUSH1 0x64 000020df: ADD 000020e0: JUMPDEST 000020e1: PUSH1 0x40 000020e3: MLOAD 000020e4: PUSH1 0x20 000020e6: DUP2 000020e7: DUP4 000020e8: SUB 000020e9: SUB 000020ea: DUP2 000020eb: MSTORE 000020ec: SWAP1 000020ed: PUSH1 0x40 000020ef: MSTORE 000020f0: SWAP2 000020f1: POP 000020f2: PUSH1 0xe0 000020f4: SHL 000020f5: PUSH1 0x20 000020f7: DUP3 000020f8: ADD 000020f9: DUP1 000020fa: MLOAD 000020fb: PUSH1 0x01 000020fd: PUSH1 0x01 000020ff: PUSH1 0xe0 00002101: SHL 00002102: SUB 00002103: DUP4 00002104: DUP2 00002105: DUP4 00002106: AND 00002107: OR 00002108: DUP4 00002109: MSTORE 0000210a: POP 0000210b: POP 0000210c: POP 0000210d: POP 0000210e: PUSH2 0x2db6 00002111: JUMP 00002112: JUMPDEST 00002113: ADDRESS 00002114: PUSH1 0x01 00002116: PUSH1 0x01 00002118: PUSH1 0xa0 0000211a: SHL 0000211b: SUB 0000211c: PUSH32 0x0000000000000000000000007dadf78d641f7ad327aeb0f71e97b6229345eca4 0000213d: AND 0000213e: EQ 0000213f: DUP1 00002140: PUSH2 0x2198 00002143: JUMPI 00002144: POP 00002145: PUSH32 0x0000000000000000000000007dadf78d641f7ad327aeb0f71e97b6229345eca4 00002166: PUSH1 0x01 00002168: PUSH1 0x01 0000216a: PUSH1 0xa0 0000216c: SHL 0000216d: SUB 0000216e: AND 0000216f: PUSH2 0x218c 00002172: PUSH0 00002173: MLOAD 00002174: PUSH1 0x20 00002176: PUSH2 0x34b2 00002179: PUSH0 0000217a: CODECOPY 0000217b: PUSH0 0000217c: MLOAD 0000217d: SWAP1 0000217e: PUSH0 0000217f: MSTORE 00002180: SLOAD 00002181: PUSH1 0x01 00002183: PUSH1 0x01 00002185: PUSH1 0xa0 00002187: SHL 00002188: SUB 00002189: AND 0000218a: SWAP1 0000218b: JUMP 0000218c: JUMPDEST 0000218d: PUSH1 0x01 0000218f: PUSH1 0x01 00002191: PUSH1 0xa0 00002193: SHL 00002194: SUB 00002195: AND 00002196: EQ 00002197: ISZERO 00002198: JUMPDEST 00002199: ISZERO 0000219a: PUSH2 0x21b6 0000219d: JUMPI 0000219e: PUSH1 0x40 000021a0: MLOAD 000021a1: PUSH4 0x703e46dd 000021a6: PUSH1 0xe1 000021a8: SHL 000021a9: DUP2 000021aa: MSTORE 000021ab: PUSH1 0x04 000021ad: ADD 000021ae: PUSH1 0x40 000021b0: MLOAD 000021b1: DUP1 000021b2: SWAP2 000021b3: SUB 000021b4: SWAP1 000021b5: REVERT 000021b6: JUMPDEST 000021b7: JUMP 000021b8: JUMPDEST 000021b9: PUSH0 000021ba: PUSH2 0x09e3 000021bd: DUP2 000021be: PUSH2 0x1adf 000021c1: JUMP 000021c2: JUMPDEST 000021c3: DUP2 000021c4: PUSH1 0x01 000021c6: PUSH1 0x01 000021c8: PUSH1 0xa0 000021ca: SHL 000021cb: SUB 000021cc: AND 000021cd: PUSH4 0x52d1902d 000021d2: PUSH1 0x40 000021d4: MLOAD 000021d5: DUP2 000021d6: PUSH4 0xffffffff 000021db: AND 000021dc: PUSH1 0xe0 000021de: SHL 000021df: DUP2 000021e0: MSTORE 000021e1: PUSH1 0x04 000021e3: ADD 000021e4: PUSH1 0x20 000021e6: PUSH1 0x40 000021e8: MLOAD 000021e9: DUP1 000021ea: DUP4 000021eb: SUB 000021ec: DUP2 000021ed: DUP7 000021ee: GAS 000021ef: STATICCALL 000021f0: SWAP3 000021f1: POP 000021f2: POP 000021f3: POP 000021f4: DUP1 000021f5: ISZERO 000021f6: PUSH2 0x221c 000021f9: JUMPI 000021fa: POP 000021fb: PUSH1 0x40 000021fd: DUP1 000021fe: MLOAD 000021ff: PUSH1 0x1f 00002201: RETURNDATASIZE 00002202: SWAP1 00002203: DUP2 00002204: ADD 00002205: PUSH1 0x1f 00002207: NOT 00002208: AND 00002209: DUP3 0000220a: ADD 0000220b: SWAP1 0000220c: SWAP3 0000220d: MSTORE 0000220e: PUSH2 0x2219 00002211: SWAP2 00002212: DUP2 00002213: ADD 00002214: SWAP1 00002215: PUSH2 0x33f5 00002218: JUMP 00002219: JUMPDEST 0000221a: PUSH1 0x01 0000221c: JUMPDEST 0000221d: PUSH2 0x2244 00002220: JUMPI 00002221: PUSH1 0x40 00002223: MLOAD 00002224: PUSH4 0x4c9c8ce3 00002229: PUSH1 0xe0 0000222b: SHL 0000222c: DUP2 0000222d: MSTORE 0000222e: PUSH1 0x01 00002230: PUSH1 0x01 00002232: PUSH1 0xa0 00002234: SHL 00002235: SUB 00002236: DUP4 00002237: AND 00002238: PUSH1 0x04 0000223a: DUP3 0000223b: ADD 0000223c: MSTORE 0000223d: PUSH1 0x24 0000223f: ADD 00002240: PUSH2 0x0ba9 00002243: JUMP 00002244: JUMPDEST 00002245: PUSH0 00002246: MLOAD 00002247: PUSH1 0x20 00002249: PUSH2 0x34b2 0000224c: PUSH0 0000224d: CODECOPY 0000224e: PUSH0 0000224f: MLOAD 00002250: SWAP1 00002251: PUSH0 00002252: MSTORE 00002253: DUP2 00002254: EQ 00002255: PUSH2 0x2274 00002258: JUMPI 00002259: PUSH1 0x40 0000225b: MLOAD 0000225c: PUSH4 0x2a875269 00002261: PUSH1 0xe2 00002263: SHL 00002264: DUP2 00002265: MSTORE 00002266: PUSH1 0x04 00002268: DUP2 00002269: ADD 0000226a: DUP3 0000226b: SWAP1 0000226c: MSTORE 0000226d: PUSH1 0x24 0000226f: ADD 00002270: PUSH2 0x0ba9 00002273: JUMP 00002274: JUMPDEST 00002275: PUSH2 0x0b5d 00002278: DUP4 00002279: DUP4 0000227a: PUSH2 0x2e22 0000227d: JUMP 0000227e: JUMPDEST 0000227f: PUSH1 0x02 00002281: SLOAD 00002282: PUSH0 00002283: DUP1 00002284: SLOAD 00002285: PUSH1 0x40 00002287: MLOAD 00002288: PUSH4 0x4e71f09b 0000228d: PUSH1 0xe1 0000228f: SHL 00002290: DUP2 00002291: MSTORE 00002292: PUSH1 0x04 00002294: DUP2 00002295: ADD 00002296: DUP6 00002297: SWAP1 00002298: MSTORE 00002299: PUSH1 0x24 0000229b: DUP2 0000229c: ADD 0000229d: DUP4 0000229e: SWAP1 0000229f: MSTORE 000022a0: SWAP2 000022a1: SWAP3 000022a2: DUP4 000022a3: SWAP3 000022a4: DUP4 000022a5: SWAP3 000022a6: DUP4 000022a7: SWAP3 000022a8: PUSH1 0x01 000022aa: PUSH1 0x01 000022ac: PUSH1 0xa0 000022ae: SHL 000022af: SUB 000022b0: SWAP1 000022b1: DUP2 000022b2: AND 000022b3: ISZERO 000022b4: ISZERO 000022b5: SWAP3 000022b6: DUP5 000022b7: SWAP3 000022b8: SWAP2 000022b9: SWAP1 000022ba: SWAP2 000022bb: AND 000022bc: SWAP1 000022bd: PUSH4 0x9ce3e136 000022c2: SWAP1 000022c3: PUSH1 0x44 000022c5: ADD 000022c6: PUSH1 0x20 000022c8: PUSH1 0x40 000022ca: MLOAD 000022cb: DUP1 000022cc: DUP4 000022cd: SUB 000022ce: DUP2 000022cf: DUP7 000022d0: GAS 000022d1: STATICCALL 000022d2: ISZERO 000022d3: DUP1 000022d4: ISZERO 000022d5: PUSH2 0x22e0 000022d8: JUMPI 000022d9: RETURNDATASIZE 000022da: PUSH0 000022db: PUSH0 000022dc: RETURNDATACOPY 000022dd: RETURNDATASIZE 000022de: PUSH0 000022df: REVERT 000022e0: JUMPDEST 000022e1: POP 000022e2: POP 000022e3: POP 000022e4: POP 000022e5: PUSH1 0x40 000022e7: MLOAD 000022e8: RETURNDATASIZE 000022e9: PUSH1 0x1f 000022eb: NOT 000022ec: PUSH1 0x1f 000022ee: DUP3 000022ef: ADD 000022f0: AND 000022f1: DUP3 000022f2: ADD 000022f3: DUP1 000022f4: PUSH1 0x40 000022f6: MSTORE 000022f7: POP 000022f8: DUP2 000022f9: ADD 000022fa: SWAP1 000022fb: PUSH2 0x2304 000022fe: SWAP2 000022ff: SWAP1 00002300: PUSH2 0x33f5 00002303: JUMP 00002304: JUMPDEST 00002305: SWAP1 00002306: POP 00002307: PUSH0 00002308: DUP3 00002309: PUSH2 0x2312 0000230c: JUMPI 0000230d: PUSH0 0000230e: PUSH2 0x237d 00002311: JUMP 00002312: JUMPDEST 00002313: PUSH1 0x02 00002315: SLOAD 00002316: PUSH1 0x40 00002318: MLOAD 00002319: PUSH4 0x959d6d29 0000231e: PUSH1 0xe0 00002320: SHL 00002321: DUP2 00002322: MSTORE 00002323: PUSH1 0x04 00002325: DUP2 00002326: ADD 00002327: DUP5 00002328: SWAP1 00002329: MSTORE 0000232a: PUSH1 0x01 0000232c: PUSH1 0x01 0000232e: PUSH1 0xa0 00002330: SHL 00002331: SUB 00002332: SWAP1 00002333: SWAP2 00002334: AND 00002335: SWAP1 00002336: PUSH4 0x959d6d29 0000233b: SWAP1 0000233c: PUSH1 0x24 0000233e: ADD 0000233f: PUSH1 0x20 00002341: PUSH1 0x40 00002343: MLOAD 00002344: DUP1 00002345: DUP4 00002346: SUB 00002347: DUP2 00002348: DUP7 00002349: GAS 0000234a: STATICCALL 0000234b: ISZERO 0000234c: DUP1 0000234d: ISZERO 0000234e: PUSH2 0x2359 00002351: JUMPI 00002352: RETURNDATASIZE 00002353: PUSH0 00002354: PUSH0 00002355: RETURNDATACOPY 00002356: RETURNDATASIZE 00002357: PUSH0 00002358: REVERT 00002359: JUMPDEST 0000235a: POP 0000235b: POP 0000235c: POP 0000235d: POP 0000235e: PUSH1 0x40 00002360: MLOAD 00002361: RETURNDATASIZE 00002362: PUSH1 0x1f 00002364: NOT 00002365: PUSH1 0x1f 00002367: DUP3 00002368: ADD 00002369: AND 0000236a: DUP3 0000236b: ADD 0000236c: DUP1 0000236d: PUSH1 0x40 0000236f: MSTORE 00002370: POP 00002371: DUP2 00002372: ADD 00002373: SWAP1 00002374: PUSH2 0x237d 00002377: SWAP2 00002378: SWAP1 00002379: PUSH2 0x33f5 0000237c: JUMP 0000237d: JUMPDEST 0000237e: SWAP1 0000237f: POP 00002380: PUSH0 00002381: PUSH2 0x238a 00002384: DUP3 00002385: DUP5 00002386: PUSH2 0x33e2 00002389: JUMP 0000238a: JUMPDEST 0000238b: SWAP1 0000238c: POP 0000238d: PUSH0 0000238e: DUP5 0000238f: PUSH2 0x2398 00002392: JUMPI 00002393: DUP2 00002394: PUSH2 0x2403 00002397: JUMP 00002398: JUMPDEST 00002399: PUSH1 0x02 0000239b: SLOAD 0000239c: PUSH1 0x40 0000239e: MLOAD 0000239f: PUSH4 0x18fdd06b 000023a4: PUSH1 0xe0 000023a6: SHL 000023a7: DUP2 000023a8: MSTORE 000023a9: PUSH1 0x04 000023ab: DUP2 000023ac: ADD 000023ad: DUP5 000023ae: SWAP1 000023af: MSTORE 000023b0: PUSH1 0x01 000023b2: PUSH1 0x01 000023b4: PUSH1 0xa0 000023b6: SHL 000023b7: SUB 000023b8: SWAP1 000023b9: SWAP2 000023ba: AND 000023bb: SWAP1 000023bc: PUSH4 0x18fdd06b 000023c1: SWAP1 000023c2: PUSH1 0x24 000023c4: ADD 000023c5: PUSH1 0x20 000023c7: PUSH1 0x40 000023c9: MLOAD 000023ca: DUP1 000023cb: DUP4 000023cc: SUB 000023cd: DUP2 000023ce: DUP7 000023cf: GAS 000023d0: STATICCALL 000023d1: ISZERO 000023d2: DUP1 000023d3: ISZERO 000023d4: PUSH2 0x23df 000023d7: JUMPI 000023d8: RETURNDATASIZE 000023d9: PUSH0 000023da: PUSH0 000023db: RETURNDATACOPY 000023dc: RETURNDATASIZE 000023dd: PUSH0 000023de: REVERT 000023df: JUMPDEST 000023e0: POP 000023e1: POP 000023e2: POP 000023e3: POP 000023e4: PUSH1 0x40 000023e6: MLOAD 000023e7: RETURNDATASIZE 000023e8: PUSH1 0x1f 000023ea: NOT 000023eb: PUSH1 0x1f 000023ed: DUP3 000023ee: ADD 000023ef: AND 000023f0: DUP3 000023f1: ADD 000023f2: DUP1 000023f3: PUSH1 0x40 000023f5: MSTORE 000023f6: POP 000023f7: DUP2 000023f8: ADD 000023f9: SWAP1 000023fa: PUSH2 0x2403 000023fd: SWAP2 000023fe: SWAP1 000023ff: PUSH2 0x33f5 00002402: JUMP 00002403: JUMPDEST 00002404: PUSH0 00002405: DUP1 00002406: SLOAD 00002407: PUSH1 0x40 00002409: MLOAD 0000240a: PUSH4 0x0c66c2a1 0000240f: PUSH1 0xe2 00002411: SHL 00002412: DUP2 00002413: MSTORE 00002414: PUSH1 0x04 00002416: DUP2 00002417: ADD 00002418: DUP5 00002419: SWAP1 0000241a: MSTORE 0000241b: PUSH1 0x01 0000241d: PUSH1 0x24 0000241f: DUP3 00002420: ADD 00002421: MSTORE 00002422: SWAP3 00002423: SWAP4 00002424: POP 00002425: SWAP1 00002426: SWAP2 00002427: PUSH1 0x01 00002429: PUSH1 0x01 0000242b: PUSH1 0xa0 0000242d: SHL 0000242e: SUB 0000242f: SWAP1 00002430: SWAP2 00002431: AND 00002432: SWAP1 00002433: PUSH4 0x319b0a84 00002438: SWAP1 00002439: PUSH1 0x44 0000243b: ADD 0000243c: PUSH1 0x20 0000243e: PUSH1 0x40 00002440: MLOAD 00002441: DUP1 00002442: DUP4 00002443: SUB 00002444: DUP2 00002445: DUP7 00002446: GAS 00002447: STATICCALL 00002448: ISZERO 00002449: DUP1 0000244a: ISZERO 0000244b: PUSH2 0x2456 0000244e: JUMPI 0000244f: RETURNDATASIZE 00002450: PUSH0 00002451: PUSH0 00002452: RETURNDATACOPY 00002453: RETURNDATASIZE 00002454: PUSH0 00002455: REVERT 00002456: JUMPDEST 00002457: POP 00002458: POP 00002459: POP 0000245a: POP 0000245b: PUSH1 0x40 0000245d: MLOAD 0000245e: RETURNDATASIZE 0000245f: PUSH1 0x1f 00002461: NOT 00002462: PUSH1 0x1f 00002464: DUP3 00002465: ADD 00002466: AND 00002467: DUP3 00002468: ADD 00002469: DUP1 0000246a: PUSH1 0x40 0000246c: MSTORE 0000246d: POP 0000246e: DUP2 0000246f: ADD 00002470: SWAP1 00002471: PUSH2 0x247a 00002474: SWAP2 00002475: SWAP1 00002476: PUSH2 0x33f5 00002479: JUMP 0000247a: JUMPDEST 0000247b: SWAP1 0000247c: POP 0000247d: PUSH0 0000247e: PUSH2 0x2487 00002481: DUP5 00002482: DUP5 00002483: PUSH2 0x33e2 00002486: JUMP 00002487: JUMPDEST 00002488: SWAP1 00002489: POP 0000248a: DUP2 0000248b: PUSH2 0x2494 0000248e: DUP3 0000248f: DUP6 00002490: PUSH2 0x33e2 00002493: JUMP 00002494: JUMPDEST 00002495: SWAP1 00002496: SWAP14 00002497: SWAP1 00002498: SWAP13 00002499: POP 0000249a: SWAP3 0000249b: SWAP11 0000249c: POP 0000249d: SWAP9 0000249e: POP 0000249f: SWAP1 000024a0: SWAP7 000024a1: POP 000024a2: POP 000024a3: POP 000024a4: POP 000024a5: POP 000024a6: POP 000024a7: POP 000024a8: JUMP 000024a9: JUMPDEST 000024aa: ADDRESS 000024ab: PUSH1 0x01 000024ad: PUSH1 0x01 000024af: PUSH1 0xa0 000024b1: SHL 000024b2: SUB 000024b3: PUSH32 0x0000000000000000000000007dadf78d641f7ad327aeb0f71e97b6229345eca4 000024d4: AND 000024d5: EQ 000024d6: PUSH2 0x21b6 000024d9: JUMPI 000024da: PUSH1 0x40 000024dc: MLOAD 000024dd: PUSH4 0x703e46dd 000024e2: PUSH1 0xe1 000024e4: SHL 000024e5: DUP2 000024e6: MSTORE 000024e7: PUSH1 0x04 000024e9: ADD 000024ea: PUSH1 0x40 000024ec: MLOAD 000024ed: DUP1 000024ee: SWAP2 000024ef: SUB 000024f0: SWAP1 000024f1: REVERT 000024f2: JUMPDEST 000024f3: PUSH1 0x40 000024f5: MLOAD 000024f6: PUSH4 0x9255eef9 000024fb: PUSH1 0xe0 000024fd: SHL 000024fe: DUP2 000024ff: MSTORE 00002500: ADDRESS 00002501: PUSH1 0x04 00002503: DUP3 00002504: ADD 00002505: MSTORE 00002506: PUSH0 00002507: SWAP1 00002508: DUP2 00002509: SWAP1 0000250a: PUSH1 0x01 0000250c: PUSH1 0x01 0000250e: PUSH1 0xa0 00002510: SHL 00002511: SUB 00002512: PUSH32 0x00000000000000000000000063d74d22e689c715a04f2c13962b1f77f443d35b 00002533: AND 00002534: SWAP1 00002535: PUSH4 0x9255eef9 0000253a: SWAP1 0000253b: PUSH1 0x24 0000253d: ADD 0000253e: PUSH1 0x40 00002540: DUP1 00002541: MLOAD 00002542: DUP1 00002543: DUP4 00002544: SUB 00002545: DUP2 00002546: DUP7 00002547: GAS 00002548: STATICCALL 00002549: ISZERO 0000254a: DUP1 0000254b: ISZERO 0000254c: PUSH2 0x2557 0000254f: JUMPI 00002550: RETURNDATASIZE 00002551: PUSH0 00002552: PUSH0 00002553: RETURNDATACOPY 00002554: RETURNDATASIZE 00002555: PUSH0 00002556: REVERT 00002557: JUMPDEST 00002558: POP 00002559: POP 0000255a: POP 0000255b: POP 0000255c: PUSH1 0x40 0000255e: MLOAD 0000255f: RETURNDATASIZE 00002560: PUSH1 0x1f 00002562: NOT 00002563: PUSH1 0x1f 00002565: DUP3 00002566: ADD 00002567: AND 00002568: DUP3 00002569: ADD 0000256a: DUP1 0000256b: PUSH1 0x40 0000256d: MSTORE 0000256e: POP 0000256f: DUP2 00002570: ADD 00002571: SWAP1 00002572: PUSH2 0x257b 00002575: SWAP2 00002576: SWAP1 00002577: PUSH2 0x343e 0000257a: JUMP 0000257b: JUMPDEST 0000257c: POP 0000257d: SWAP3 0000257e: SWAP2 0000257f: POP 00002580: POP 00002581: JUMP 00002582: JUMPDEST 00002583: PUSH1 0x40 00002585: MLOAD 00002586: PUSH1 0x01 00002588: PUSH1 0x01 0000258a: PUSH1 0xa0 0000258c: SHL 0000258d: SUB 0000258e: DUP5 0000258f: DUP2 00002590: AND 00002591: PUSH1 0x24 00002593: DUP4 00002594: ADD 00002595: MSTORE 00002596: DUP4 00002597: DUP2 00002598: AND 00002599: PUSH1 0x44 0000259b: DUP4 0000259c: ADD 0000259d: MSTORE 0000259e: PUSH1 0x64 000025a0: DUP3 000025a1: ADD 000025a2: DUP4 000025a3: SWAP1 000025a4: MSTORE 000025a5: PUSH2 0x0b24 000025a8: SWAP2 000025a9: DUP7 000025aa: SWAP2 000025ab: DUP3 000025ac: AND 000025ad: SWAP1 000025ae: PUSH4 0x23b872dd 000025b3: SWAP1 000025b4: PUSH1 0x84 000025b6: ADD 000025b7: PUSH2 0x20e0 000025ba: JUMP 000025bb: JUMPDEST 000025bc: PUSH1 0x40 000025be: MLOAD 000025bf: PUSH4 0x2770a7eb 000025c4: PUSH1 0xe2 000025c6: SHL 000025c7: DUP2 000025c8: MSTORE 000025c9: PUSH1 0x01 000025cb: PUSH1 0x01 000025cd: PUSH1 0xa0 000025cf: SHL 000025d0: SUB 000025d1: DUP4 000025d2: DUP2 000025d3: AND 000025d4: PUSH1 0x04 000025d6: DUP4 000025d7: ADD 000025d8: MSTORE 000025d9: PUSH1 0x24 000025db: DUP3 000025dc: ADD 000025dd: DUP4 000025de: SWAP1 000025df: MSTORE 000025e0: PUSH32 0x00000000000000000000000063d74d22e689c715a04f2c13962b1f77f443d35b 00002601: AND 00002602: SWAP1 00002603: PUSH4 0x9dc29fac 00002608: SWAP1 00002609: PUSH1 0x44 0000260b: ADD 0000260c: JUMPDEST 0000260d: PUSH0 0000260e: PUSH1 0x40 00002610: MLOAD 00002611: DUP1 00002612: DUP4 00002613: SUB 00002614: DUP2 00002615: PUSH0 00002616: DUP8 00002617: DUP1 00002618: EXTCODESIZE 00002619: ISZERO 0000261a: DUP1 0000261b: ISZERO 0000261c: PUSH2 0x2623 0000261f: JUMPI 00002620: PUSH0 00002621: PUSH0 00002622: REVERT 00002623: JUMPDEST 00002624: POP 00002625: GAS 00002626: CALL 00002627: ISZERO 00002628: DUP1 00002629: ISZERO 0000262a: PUSH2 0x2635 0000262d: JUMPI 0000262e: RETURNDATASIZE 0000262f: PUSH0 00002630: PUSH0 00002631: RETURNDATACOPY 00002632: RETURNDATASIZE 00002633: PUSH0 00002634: REVERT 00002635: JUMPDEST 00002636: POP 00002637: POP 00002638: POP 00002639: POP 0000263a: POP 0000263b: POP 0000263c: JUMP 0000263d: JUMPDEST 0000263e: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 0000265f: PUSH1 0x01 00002661: PUSH1 0x01 00002663: PUSH1 0xa0 00002665: SHL 00002666: SUB 00002667: AND 00002668: DUP2 00002669: PUSH1 0x01 0000266b: PUSH1 0x01 0000266d: PUSH1 0xa0 0000266f: SHL 00002670: SUB 00002671: AND 00002672: PUSH4 0xe6025393 00002677: PUSH1 0x40 00002679: MLOAD 0000267a: DUP2 0000267b: PUSH4 0xffffffff 00002680: AND 00002681: PUSH1 0xe0 00002683: SHL 00002684: DUP2 00002685: MSTORE 00002686: PUSH1 0x04 00002688: ADD 00002689: PUSH1 0x20 0000268b: PUSH1 0x40 0000268d: MLOAD 0000268e: DUP1 0000268f: DUP4 00002690: SUB 00002691: DUP2 00002692: DUP7 00002693: GAS 00002694: STATICCALL 00002695: ISZERO 00002696: DUP1 00002697: ISZERO 00002698: PUSH2 0x26a3 0000269b: JUMPI 0000269c: RETURNDATASIZE 0000269d: PUSH0 0000269e: PUSH0 0000269f: RETURNDATACOPY 000026a0: RETURNDATASIZE 000026a1: PUSH0 000026a2: REVERT 000026a3: JUMPDEST 000026a4: POP 000026a5: POP 000026a6: POP 000026a7: POP 000026a8: PUSH1 0x40 000026aa: MLOAD 000026ab: RETURNDATASIZE 000026ac: PUSH1 0x1f 000026ae: NOT 000026af: PUSH1 0x1f 000026b1: DUP3 000026b2: ADD 000026b3: AND 000026b4: DUP3 000026b5: ADD 000026b6: DUP1 000026b7: PUSH1 0x40 000026b9: MSTORE 000026ba: POP 000026bb: DUP2 000026bc: ADD 000026bd: SWAP1 000026be: PUSH2 0x26c7 000026c1: SWAP2 000026c2: SWAP1 000026c3: PUSH2 0x3460 000026c6: JUMP 000026c7: JUMPDEST 000026c8: PUSH1 0x01 000026ca: PUSH1 0x01 000026cc: PUSH1 0xa0 000026ce: SHL 000026cf: SUB 000026d0: AND 000026d1: EQ 000026d2: PUSH2 0x2716 000026d5: JUMPI 000026d6: PUSH1 0x40 000026d8: MLOAD 000026d9: PUSH3 0x461bcd 000026dd: PUSH1 0xe5 000026df: SHL 000026e0: DUP2 000026e1: MSTORE 000026e2: PUSH1 0x20 000026e4: PUSH1 0x04 000026e6: DUP3 000026e7: ADD 000026e8: MSTORE 000026e9: PUSH1 0x16 000026eb: PUSH1 0x24 000026ed: DUP3 000026ee: ADD 000026ef: MSTORE 000026f0: PUSH22 0x494e56414c49445f50524943455f5354524154454759 00002707: PUSH1 0x50 00002709: SHL 0000270a: PUSH1 0x44 0000270c: DUP3 0000270d: ADD 0000270e: MSTORE 0000270f: PUSH1 0x64 00002711: ADD 00002712: PUSH2 0x0ba9 00002715: JUMP 00002716: JUMPDEST 00002717: PUSH0 00002718: DUP1 00002719: SLOAD 0000271a: PUSH1 0x01 0000271c: PUSH1 0x01 0000271e: PUSH1 0xa0 00002720: SHL 00002721: SUB 00002722: DUP4 00002723: DUP2 00002724: AND 00002725: PUSH1 0x01 00002727: PUSH1 0x01 00002729: PUSH1 0xa0 0000272b: SHL 0000272c: SUB 0000272d: NOT 0000272e: DUP4 0000272f: AND 00002730: DUP2 00002731: OR 00002732: DUP5 00002733: SSTORE 00002734: PUSH1 0x40 00002736: MLOAD 00002737: SWAP2 00002738: SWAP1 00002739: SWAP3 0000273a: AND 0000273b: SWAP3 0000273c: DUP4 0000273d: SWAP2 0000273e: PUSH32 0x8fabb1569224d052b9f7299d4c061d96e3bf9a04d0f5df85ceaa2bf80782b30c 0000275f: SWAP2 00002760: SWAP1 00002761: LOG3 00002762: POP 00002763: POP 00002764: JUMP 00002765: JUMPDEST 00002766: PUSH0 00002767: PUSH0 00002768: PUSH0 00002769: PUSH0 0000276a: PUSH0 0000276b: PUSH0 0000276c: PUSH2 0x2774 0000276f: DUP9 00002770: PUSH2 0x227e 00002773: JUMP 00002774: JUMPDEST 00002775: SWAP4 00002776: POP 00002777: SWAP4 00002778: POP 00002779: SWAP4 0000277a: POP 0000277b: SWAP4 0000277c: POP 0000277d: PUSH0 0000277e: DUP5 0000277f: GT 00002780: PUSH2 0x279b 00002783: JUMPI 00002784: PUSH1 0x40 00002786: MLOAD 00002787: PUSH3 0x461bcd 0000278b: PUSH1 0xe5 0000278d: SHL 0000278e: DUP2 0000278f: MSTORE 00002790: PUSH1 0x04 00002792: ADD 00002793: PUSH2 0x0ba9 00002796: SWAP1 00002797: PUSH2 0x33ba 0000279a: JUMP 0000279b: JUMPDEST 0000279c: PUSH1 0x03 0000279e: SLOAD 0000279f: PUSH1 0x01 000027a1: PUSH1 0x01 000027a3: PUSH1 0x80 000027a5: SHL 000027a6: SUB 000027a7: DUP1 000027a8: DUP3 000027a9: AND 000027aa: SWAP2 000027ab: PUSH2 0x27bd 000027ae: SWAP2 000027af: DUP8 000027b0: SWAP2 000027b1: PUSH1 0x01 000027b3: PUSH1 0x80 000027b5: SHL 000027b6: SWAP1 000027b7: DIV 000027b8: AND 000027b9: PUSH2 0x340c 000027bc: JUMP 000027bd: JUMPDEST 000027be: GT 000027bf: ISZERO 000027c0: PUSH2 0x2815 000027c3: JUMPI 000027c4: PUSH1 0x40 000027c6: MLOAD 000027c7: PUSH3 0x461bcd 000027cb: PUSH1 0xe5 000027cd: SHL 000027ce: DUP2 000027cf: MSTORE 000027d0: PUSH1 0x20 000027d2: PUSH1 0x04 000027d4: DUP3 000027d5: ADD 000027d6: MSTORE 000027d7: PUSH1 0x21 000027d9: PUSH1 0x24 000027db: DUP3 000027dc: ADD 000027dd: MSTORE 000027de: PUSH32 0x45584f47454e4f55535f41535345545f4558504f535552455f544f4f5f484947 000027ff: PUSH1 0x44 00002801: DUP3 00002802: ADD 00002803: MSTORE 00002804: PUSH1 0x09 00002806: PUSH1 0xfb 00002808: SHL 00002809: PUSH1 0x64 0000280b: DUP3 0000280c: ADD 0000280d: MSTORE 0000280e: PUSH1 0x84 00002810: ADD 00002811: PUSH2 0x0ba9 00002814: JUMP 00002815: JUMPDEST 00002816: DUP4 00002817: PUSH1 0x03 00002819: PUSH1 0x10 0000281b: DUP3 0000281c: DUP3 0000281d: DUP3 0000281e: SWAP1 0000281f: SLOAD 00002820: SWAP1 00002821: PUSH2 0x0100 00002824: EXP 00002825: SWAP1 00002826: DIV 00002827: PUSH1 0x01 00002829: PUSH1 0x01 0000282b: PUSH1 0x80 0000282d: SHL 0000282e: SUB 0000282f: AND 00002830: PUSH2 0x2839 00002833: SWAP2 00002834: SWAP1 00002835: PUSH2 0x341f 00002838: JUMP 00002839: JUMPDEST 0000283a: SWAP3 0000283b: POP 0000283c: PUSH2 0x0100 0000283f: EXP 00002840: DUP2 00002841: SLOAD 00002842: DUP2 00002843: PUSH1 0x01 00002845: PUSH1 0x01 00002847: PUSH1 0x80 00002849: SHL 0000284a: SUB 0000284b: MUL 0000284c: NOT 0000284d: AND 0000284e: SWAP1 0000284f: DUP4 00002850: PUSH1 0x01 00002852: PUSH1 0x01 00002854: PUSH1 0x80 00002856: SHL 00002857: SUB 00002858: AND 00002859: MUL 0000285a: OR 0000285b: SWAP1 0000285c: SSTORE 0000285d: POP 0000285e: PUSH2 0x2866 00002861: DUP2 00002862: PUSH2 0x2d7f 00002865: JUMP 00002866: JUMPDEST 00002867: PUSH1 0x04 00002869: DUP1 0000286a: SLOAD 0000286b: PUSH0 0000286c: SWAP1 0000286d: PUSH2 0x2880 00002870: SWAP1 00002871: DUP5 00002872: SWAP1 00002873: PUSH1 0x01 00002875: PUSH1 0x01 00002877: PUSH1 0x80 00002879: SHL 0000287a: SUB 0000287b: AND 0000287c: PUSH2 0x341f 0000287f: JUMP 00002880: JUMPDEST 00002881: SWAP3 00002882: POP 00002883: PUSH2 0x0100 00002886: EXP 00002887: DUP2 00002888: SLOAD 00002889: DUP2 0000288a: PUSH1 0x01 0000288c: PUSH1 0x01 0000288e: PUSH1 0x80 00002890: SHL 00002891: SUB 00002892: MUL 00002893: NOT 00002894: AND 00002895: SWAP1 00002896: DUP4 00002897: PUSH1 0x01 00002899: PUSH1 0x01 0000289b: PUSH1 0x80 0000289d: SHL 0000289e: SUB 0000289f: AND 000028a0: MUL 000028a1: OR 000028a2: SWAP1 000028a3: SSTORE 000028a4: POP 000028a5: PUSH2 0x28e4 000028a8: DUP10 000028a9: ADDRESS 000028aa: DUP7 000028ab: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 000028cc: PUSH1 0x01 000028ce: PUSH1 0x01 000028d0: PUSH1 0xa0 000028d2: SHL 000028d3: SUB 000028d4: AND 000028d5: PUSH2 0x2582 000028d8: SWAP1 000028d9: SWAP4 000028da: SWAP3 000028db: SWAP2 000028dc: SWAP1 000028dd: PUSH4 0xffffffff 000028e2: AND 000028e3: JUMP 000028e4: JUMPDEST 000028e5: PUSH2 0x28ee 000028e8: ADDRESS 000028e9: DUP4 000028ea: PUSH2 0x2e77 000028ed: JUMP 000028ee: JUMPDEST 000028ef: PUSH2 0x2922 000028f2: PUSH1 0x01 000028f4: PUSH1 0x01 000028f6: PUSH1 0xa0 000028f8: SHL 000028f9: SUB 000028fa: PUSH32 0x00000000000000000000000063d74d22e689c715a04f2c13962b1f77f443d35b 0000291b: AND 0000291c: DUP9 0000291d: DUP6 0000291e: PUSH2 0x20b3 00002921: JUMP 00002922: JUMPDEST 00002923: PUSH1 0x40 00002925: DUP1 00002926: MLOAD 00002927: DUP6 00002928: DUP2 00002929: MSTORE 0000292a: PUSH1 0x20 0000292c: DUP2 0000292d: ADD 0000292e: DUP5 0000292f: SWAP1 00002930: MSTORE 00002931: SWAP1 00002932: DUP2 00002933: ADD 00002934: DUP3 00002935: SWAP1 00002936: MSTORE 00002937: PUSH1 0x01 00002939: PUSH1 0x01 0000293b: PUSH1 0xa0 0000293d: SHL 0000293e: SUB 0000293f: DUP1 00002940: DUP10 00002941: AND 00002942: SWAP2 00002943: SWAP1 00002944: DUP12 00002945: AND 00002946: SWAP1 00002947: PUSH32 0xefd9053c6d75eeb7635ae405072e58d5d1588e1ee0db5d212e6afcb529b975e3 00002968: SWAP1 00002969: PUSH1 0x60 0000296b: ADD 0000296c: PUSH2 0x1fd8 0000296f: JUMP 00002970: JUMPDEST 00002971: PUSH1 0x01 00002973: PUSH1 0x01 00002975: PUSH1 0xa0 00002977: SHL 00002978: SUB 00002979: DUP2 0000297a: AND 0000297b: ISZERO 0000297c: PUSH2 0x29e3 0000297f: JUMPI 00002980: PUSH1 0x05 00002982: SLOAD 00002983: PUSH1 0x01 00002985: PUSH1 0x01 00002987: PUSH1 0xa0 00002989: SHL 0000298a: SUB 0000298b: AND 0000298c: PUSH2 0x29e3 0000298f: JUMPI 00002990: PUSH1 0x40 00002992: MLOAD 00002993: PUSH3 0x461bcd 00002997: PUSH1 0xe5 00002999: SHL 0000299a: DUP2 0000299b: MSTORE 0000299c: PUSH1 0x20 0000299e: PUSH1 0x04 000029a0: DUP3 000029a1: ADD 000029a2: MSTORE 000029a3: PUSH1 0x23 000029a5: PUSH1 0x24 000029a7: DUP3 000029a8: ADD 000029a9: MSTORE 000029aa: PUSH32 0x4645455f53545241544547595f52455155495245535f4645455f524543495049 000029cb: PUSH1 0x44 000029cd: DUP3 000029ce: ADD 000029cf: MSTORE 000029d0: PUSH3 0x115395 000029d4: PUSH1 0xea 000029d6: SHL 000029d7: PUSH1 0x64 000029d9: DUP3 000029da: ADD 000029db: MSTORE 000029dc: PUSH1 0x84 000029de: ADD 000029df: PUSH2 0x0ba9 000029e2: JUMP 000029e3: JUMPDEST 000029e4: PUSH1 0x02 000029e6: DUP1 000029e7: SLOAD 000029e8: PUSH1 0x01 000029ea: PUSH1 0x01 000029ec: PUSH1 0xa0 000029ee: SHL 000029ef: SUB 000029f0: DUP4 000029f1: DUP2 000029f2: AND 000029f3: PUSH1 0x01 000029f5: PUSH1 0x01 000029f7: PUSH1 0xa0 000029f9: SHL 000029fa: SUB 000029fb: NOT 000029fc: DUP4 000029fd: AND 000029fe: DUP2 000029ff: OR 00002a00: SWAP1 00002a01: SWAP4 00002a02: SSTORE 00002a03: PUSH1 0x40 00002a05: MLOAD 00002a06: SWAP2 00002a07: AND 00002a08: SWAP2 00002a09: SWAP1 00002a0a: DUP3 00002a0b: SWAP1 00002a0c: PUSH32 0x8a53d8a38ee2969ab6c2a4793fc6d15aac23906030c4943495dd2e843b48f9d6 00002a2d: SWAP1 00002a2e: PUSH0 00002a2f: SWAP1 00002a30: LOG3 00002a31: POP 00002a32: POP 00002a33: JUMP 00002a34: JUMPDEST 00002a35: PUSH1 0x02 00002a37: SLOAD 00002a38: PUSH0 00002a39: DUP1 00002a3a: SLOAD 00002a3b: PUSH1 0x40 00002a3d: MLOAD 00002a3e: PUSH4 0x4e71f09b 00002a43: PUSH1 0xe1 00002a45: SHL 00002a46: DUP2 00002a47: MSTORE 00002a48: PUSH1 0x04 00002a4a: DUP2 00002a4b: ADD 00002a4c: DUP6 00002a4d: SWAP1 00002a4e: MSTORE 00002a4f: PUSH1 0x01 00002a51: PUSH1 0x24 00002a53: DUP3 00002a54: ADD 00002a55: MSTORE 00002a56: SWAP2 00002a57: SWAP3 00002a58: DUP4 00002a59: SWAP3 00002a5a: DUP4 00002a5b: SWAP3 00002a5c: DUP4 00002a5d: SWAP3 00002a5e: PUSH1 0x01 00002a60: PUSH1 0x01 00002a62: PUSH1 0xa0 00002a64: SHL 00002a65: SUB 00002a66: SWAP1 00002a67: DUP2 00002a68: AND 00002a69: ISZERO 00002a6a: ISZERO 00002a6b: SWAP3 00002a6c: DUP5 00002a6d: SWAP3 00002a6e: SWAP2 00002a6f: SWAP1 00002a70: SWAP2 00002a71: AND 00002a72: SWAP1 00002a73: PUSH4 0x9ce3e136 00002a78: SWAP1 00002a79: PUSH1 0x44 00002a7b: ADD 00002a7c: PUSH1 0x20 00002a7e: PUSH1 0x40 00002a80: MLOAD 00002a81: DUP1 00002a82: DUP4 00002a83: SUB 00002a84: DUP2 00002a85: DUP7 00002a86: GAS 00002a87: STATICCALL 00002a88: ISZERO 00002a89: DUP1 00002a8a: ISZERO 00002a8b: PUSH2 0x2a96 00002a8e: JUMPI 00002a8f: RETURNDATASIZE 00002a90: PUSH0 00002a91: PUSH0 00002a92: RETURNDATACOPY 00002a93: RETURNDATASIZE 00002a94: PUSH0 00002a95: REVERT 00002a96: JUMPDEST 00002a97: POP 00002a98: POP 00002a99: POP 00002a9a: POP 00002a9b: PUSH1 0x40 00002a9d: MLOAD 00002a9e: RETURNDATASIZE 00002a9f: PUSH1 0x1f 00002aa1: NOT 00002aa2: PUSH1 0x1f 00002aa4: DUP3 00002aa5: ADD 00002aa6: AND 00002aa7: DUP3 00002aa8: ADD 00002aa9: DUP1 00002aaa: PUSH1 0x40 00002aac: MSTORE 00002aad: POP 00002aae: DUP2 00002aaf: ADD 00002ab0: SWAP1 00002ab1: PUSH2 0x2aba 00002ab4: SWAP2 00002ab5: SWAP1 00002ab6: PUSH2 0x33f5 00002ab9: JUMP 00002aba: JUMPDEST 00002abb: SWAP1 00002abc: POP 00002abd: PUSH0 00002abe: DUP3 00002abf: PUSH2 0x2ac8 00002ac2: JUMPI 00002ac3: PUSH0 00002ac4: PUSH2 0x2b33 00002ac7: JUMP 00002ac8: JUMPDEST 00002ac9: PUSH1 0x02 00002acb: SLOAD 00002acc: PUSH1 0x40 00002ace: MLOAD 00002acf: PUSH4 0x45d6494d 00002ad4: PUSH1 0xe0 00002ad6: SHL 00002ad7: DUP2 00002ad8: MSTORE 00002ad9: PUSH1 0x04 00002adb: DUP2 00002adc: ADD 00002add: DUP5 00002ade: SWAP1 00002adf: MSTORE 00002ae0: PUSH1 0x01 00002ae2: PUSH1 0x01 00002ae4: PUSH1 0xa0 00002ae6: SHL 00002ae7: SUB 00002ae8: SWAP1 00002ae9: SWAP2 00002aea: AND 00002aeb: SWAP1 00002aec: PUSH4 0x45d6494d 00002af1: SWAP1 00002af2: PUSH1 0x24 00002af4: ADD 00002af5: PUSH1 0x20 00002af7: PUSH1 0x40 00002af9: MLOAD 00002afa: DUP1 00002afb: DUP4 00002afc: SUB 00002afd: DUP2 00002afe: DUP7 00002aff: GAS 00002b00: STATICCALL 00002b01: ISZERO 00002b02: DUP1 00002b03: ISZERO 00002b04: PUSH2 0x2b0f 00002b07: JUMPI 00002b08: RETURNDATASIZE 00002b09: PUSH0 00002b0a: PUSH0 00002b0b: RETURNDATACOPY 00002b0c: RETURNDATASIZE 00002b0d: PUSH0 00002b0e: REVERT 00002b0f: JUMPDEST 00002b10: POP 00002b11: POP 00002b12: POP 00002b13: POP 00002b14: PUSH1 0x40 00002b16: MLOAD 00002b17: RETURNDATASIZE 00002b18: PUSH1 0x1f 00002b1a: NOT 00002b1b: PUSH1 0x1f 00002b1d: DUP3 00002b1e: ADD 00002b1f: AND 00002b20: DUP3 00002b21: ADD 00002b22: DUP1 00002b23: PUSH1 0x40 00002b25: MSTORE 00002b26: POP 00002b27: DUP2 00002b28: ADD 00002b29: SWAP1 00002b2a: PUSH2 0x2b33 00002b2d: SWAP2 00002b2e: SWAP1 00002b2f: PUSH2 0x33f5 00002b32: JUMP 00002b33: JUMPDEST 00002b34: SWAP1 00002b35: POP 00002b36: PUSH0 00002b37: PUSH2 0x2b40 00002b3a: DUP3 00002b3b: DUP5 00002b3c: PUSH2 0x340c 00002b3f: JUMP 00002b40: JUMPDEST 00002b41: SWAP1 00002b42: POP 00002b43: PUSH0 00002b44: DUP5 00002b45: PUSH2 0x2b4e 00002b48: JUMPI 00002b49: DUP2 00002b4a: PUSH2 0x2bb9 00002b4d: JUMP 00002b4e: JUMPDEST 00002b4f: PUSH1 0x02 00002b51: SLOAD 00002b52: PUSH1 0x40 00002b54: MLOAD 00002b55: PUSH4 0x52510fd1 00002b5a: PUSH1 0xe1 00002b5c: SHL 00002b5d: DUP2 00002b5e: MSTORE 00002b5f: PUSH1 0x04 00002b61: DUP2 00002b62: ADD 00002b63: DUP5 00002b64: SWAP1 00002b65: MSTORE 00002b66: PUSH1 0x01 00002b68: PUSH1 0x01 00002b6a: PUSH1 0xa0 00002b6c: SHL 00002b6d: SUB 00002b6e: SWAP1 00002b6f: SWAP2 00002b70: AND 00002b71: SWAP1 00002b72: PUSH4 0xa4a21fa2 00002b77: SWAP1 00002b78: PUSH1 0x24 00002b7a: ADD 00002b7b: PUSH1 0x20 00002b7d: PUSH1 0x40 00002b7f: MLOAD 00002b80: DUP1 00002b81: DUP4 00002b82: SUB 00002b83: DUP2 00002b84: DUP7 00002b85: GAS 00002b86: STATICCALL 00002b87: ISZERO 00002b88: DUP1 00002b89: ISZERO 00002b8a: PUSH2 0x2b95 00002b8d: JUMPI 00002b8e: RETURNDATASIZE 00002b8f: PUSH0 00002b90: PUSH0 00002b91: RETURNDATACOPY 00002b92: RETURNDATASIZE 00002b93: PUSH0 00002b94: REVERT 00002b95: JUMPDEST 00002b96: POP 00002b97: POP 00002b98: POP 00002b99: POP 00002b9a: PUSH1 0x40 00002b9c: MLOAD 00002b9d: RETURNDATASIZE 00002b9e: PUSH1 0x1f 00002ba0: NOT 00002ba1: PUSH1 0x1f 00002ba3: DUP3 00002ba4: ADD 00002ba5: AND 00002ba6: DUP3 00002ba7: ADD 00002ba8: DUP1 00002ba9: PUSH1 0x40 00002bab: MSTORE 00002bac: POP 00002bad: DUP2 00002bae: ADD 00002baf: SWAP1 00002bb0: PUSH2 0x2bb9 00002bb3: SWAP2 00002bb4: SWAP1 00002bb5: PUSH2 0x33f5 00002bb8: JUMP 00002bb9: JUMPDEST 00002bba: PUSH0 00002bbb: DUP1 00002bbc: SLOAD 00002bbd: PUSH1 0x40 00002bbf: MLOAD 00002bc0: PUSH4 0x0c66c2a1 00002bc5: PUSH1 0xe2 00002bc7: SHL 00002bc8: DUP2 00002bc9: MSTORE 00002bca: PUSH1 0x04 00002bcc: DUP2 00002bcd: ADD 00002bce: DUP5 00002bcf: SWAP1 00002bd0: MSTORE 00002bd1: PUSH1 0x24 00002bd3: DUP2 00002bd4: ADD 00002bd5: DUP4 00002bd6: SWAP1 00002bd7: MSTORE 00002bd8: SWAP3 00002bd9: SWAP4 00002bda: POP 00002bdb: SWAP1 00002bdc: SWAP2 00002bdd: PUSH1 0x01 00002bdf: PUSH1 0x01 00002be1: PUSH1 0xa0 00002be3: SHL 00002be4: SUB 00002be5: SWAP1 00002be6: SWAP2 00002be7: AND 00002be8: SWAP1 00002be9: PUSH4 0x319b0a84 00002bee: SWAP1 00002bef: PUSH1 0x44 00002bf1: ADD 00002bf2: PUSH1 0x20 00002bf4: PUSH1 0x40 00002bf6: MLOAD 00002bf7: DUP1 00002bf8: DUP4 00002bf9: SUB 00002bfa: DUP2 00002bfb: DUP7 00002bfc: GAS 00002bfd: STATICCALL 00002bfe: ISZERO 00002bff: DUP1 00002c00: ISZERO 00002c01: PUSH2 0x2c0c 00002c04: JUMPI 00002c05: RETURNDATASIZE 00002c06: PUSH0 00002c07: PUSH0 00002c08: RETURNDATACOPY 00002c09: RETURNDATASIZE 00002c0a: PUSH0 00002c0b: REVERT 00002c0c: JUMPDEST 00002c0d: POP 00002c0e: POP 00002c0f: POP 00002c10: POP 00002c11: PUSH1 0x40 00002c13: MLOAD 00002c14: RETURNDATASIZE 00002c15: PUSH1 0x1f 00002c17: NOT 00002c18: PUSH1 0x1f 00002c1a: DUP3 00002c1b: ADD 00002c1c: AND 00002c1d: DUP3 00002c1e: ADD 00002c1f: DUP1 00002c20: PUSH1 0x40 00002c22: MSTORE 00002c23: POP 00002c24: DUP2 00002c25: ADD 00002c26: SWAP1 00002c27: PUSH2 0x2c30 00002c2a: SWAP2 00002c2b: SWAP1 00002c2c: PUSH2 0x33f5 00002c2f: JUMP 00002c30: JUMPDEST 00002c31: SWAP1 00002c32: POP 00002c33: PUSH0 00002c34: PUSH2 0x2c3d 00002c37: DUP4 00002c38: DUP6 00002c39: PUSH2 0x33e2 00002c3c: JUMP 00002c3d: JUMPDEST 00002c3e: SWAP1 00002c3f: POP 00002c40: DUP2 00002c41: PUSH2 0x2494 00002c44: DUP3 00002c45: DUP6 00002c46: PUSH2 0x340c 00002c49: JUMP 00002c4a: JUMPDEST 00002c4b: PUSH1 0x01 00002c4d: PUSH1 0x01 00002c4f: PUSH1 0xa0 00002c51: SHL 00002c52: SUB 00002c53: DUP2 00002c54: AND 00002c55: PUSH2 0x2cc8 00002c58: JUMPI 00002c59: PUSH1 0x02 00002c5b: SLOAD 00002c5c: PUSH1 0x01 00002c5e: PUSH1 0x01 00002c60: PUSH1 0xa0 00002c62: SHL 00002c63: SUB 00002c64: AND 00002c65: ISZERO 00002c66: PUSH2 0x2cc8 00002c69: JUMPI 00002c6a: PUSH1 0x40 00002c6c: MLOAD 00002c6d: PUSH3 0x461bcd 00002c71: PUSH1 0xe5 00002c73: SHL 00002c74: DUP2 00002c75: MSTORE 00002c76: PUSH1 0x20 00002c78: PUSH1 0x04 00002c7a: DUP3 00002c7b: ADD 00002c7c: MSTORE 00002c7d: PUSH1 0x2e 00002c7f: PUSH1 0x24 00002c81: DUP3 00002c82: ADD 00002c83: MSTORE 00002c84: PUSH32 0x4645455f524543495049454e545f43414e4e4f545f42455f5a45524f5f574954 00002ca5: PUSH1 0x44 00002ca7: DUP3 00002ca8: ADD 00002ca9: MSTORE 00002caa: PUSH14 0x485f4645455f5354524154454759 00002cb9: PUSH1 0x90 00002cbb: SHL 00002cbc: PUSH1 0x64 00002cbe: DUP3 00002cbf: ADD 00002cc0: MSTORE 00002cc1: PUSH1 0x84 00002cc3: ADD 00002cc4: PUSH2 0x0ba9 00002cc7: JUMP 00002cc8: JUMPDEST 00002cc9: PUSH1 0x05 00002ccb: DUP1 00002ccc: SLOAD 00002ccd: PUSH1 0x01 00002ccf: PUSH1 0x01 00002cd1: PUSH1 0xa0 00002cd3: SHL 00002cd4: SUB 00002cd5: DUP4 00002cd6: DUP2 00002cd7: AND 00002cd8: PUSH1 0x01 00002cda: PUSH1 0x01 00002cdc: PUSH1 0xa0 00002cde: SHL 00002cdf: SUB 00002ce0: NOT 00002ce1: DUP4 00002ce2: AND 00002ce3: DUP2 00002ce4: OR 00002ce5: SWAP1 00002ce6: SWAP4 00002ce7: SSTORE 00002ce8: PUSH1 0x40 00002cea: MLOAD 00002ceb: SWAP2 00002cec: AND 00002ced: SWAP2 00002cee: SWAP1 00002cef: DUP3 00002cf0: SWAP1 00002cf1: PUSH32 0xcee2c6a26cf3af00fae523d3ebe28e154ac2cb032e8f4bd4604a7749b6e68a94 00002d12: SWAP1 00002d13: PUSH0 00002d14: SWAP1 00002d15: LOG3 00002d16: POP 00002d17: POP 00002d18: JUMP 00002d19: JUMPDEST 00002d1a: PUSH2 0x2d23 00002d1d: DUP3 00002d1e: DUP3 00002d1f: PUSH2 0x10df 00002d22: JUMP 00002d23: JUMPDEST 00002d24: PUSH2 0x09e3 00002d27: JUMPI 00002d28: PUSH1 0x40 00002d2a: MLOAD 00002d2b: PUSH4 0xe2517d3f 00002d30: PUSH1 0xe0 00002d32: SHL 00002d33: DUP2 00002d34: MSTORE 00002d35: PUSH1 0x01 00002d37: PUSH1 0x01 00002d39: PUSH1 0xa0 00002d3b: SHL 00002d3c: SUB 00002d3d: DUP3 00002d3e: AND 00002d3f: PUSH1 0x04 00002d41: DUP3 00002d42: ADD 00002d43: MSTORE 00002d44: PUSH1 0x24 00002d46: DUP2 00002d47: ADD 00002d48: DUP4 00002d49: SWAP1 00002d4a: MSTORE 00002d4b: PUSH1 0x44 00002d4d: ADD 00002d4e: PUSH2 0x0ba9 00002d51: JUMP 00002d52: JUMPDEST 00002d53: PUSH2 0x2d5a 00002d56: PUSH2 0x2ecc 00002d59: JUMP 00002d5a: JUMPDEST 00002d5b: PUSH2 0x21b6 00002d5e: JUMPI 00002d5f: PUSH1 0x40 00002d61: MLOAD 00002d62: PUSH4 0x1afcd79f 00002d67: PUSH1 0xe3 00002d69: SHL 00002d6a: DUP2 00002d6b: MSTORE 00002d6c: PUSH1 0x04 00002d6e: ADD 00002d6f: PUSH1 0x40 00002d71: MLOAD 00002d72: DUP1 00002d73: SWAP2 00002d74: SUB 00002d75: SWAP1 00002d76: REVERT 00002d77: JUMPDEST 00002d78: PUSH2 0x21b6 00002d7b: PUSH2 0x2d52 00002d7e: JUMP 00002d7f: JUMPDEST 00002d80: PUSH0 00002d81: PUSH1 0x01 00002d83: PUSH1 0x01 00002d85: PUSH1 0x80 00002d87: SHL 00002d88: SUB 00002d89: DUP3 00002d8a: GT 00002d8b: ISZERO 00002d8c: PUSH2 0x2db2 00002d8f: JUMPI 00002d90: PUSH1 0x40 00002d92: MLOAD 00002d93: PUSH4 0x06dfcc65 00002d98: PUSH1 0xe4 00002d9a: SHL 00002d9b: DUP2 00002d9c: MSTORE 00002d9d: PUSH1 0x80 00002d9f: PUSH1 0x04 00002da1: DUP3 00002da2: ADD 00002da3: MSTORE 00002da4: PUSH1 0x24 00002da6: DUP2 00002da7: ADD 00002da8: DUP4 00002da9: SWAP1 00002daa: MSTORE 00002dab: PUSH1 0x44 00002dad: ADD 00002dae: PUSH2 0x0ba9 00002db1: JUMP 00002db2: JUMPDEST 00002db3: POP 00002db4: SWAP1 00002db5: JUMP 00002db6: JUMPDEST 00002db7: PUSH0 00002db8: PUSH0 00002db9: PUSH1 0x20 00002dbb: PUSH0 00002dbc: DUP5 00002dbd: MLOAD 00002dbe: PUSH1 0x20 00002dc0: DUP7 00002dc1: ADD 00002dc2: PUSH0 00002dc3: DUP9 00002dc4: GAS 00002dc5: CALL 00002dc6: DUP1 00002dc7: PUSH2 0x2dd5 00002dca: JUMPI 00002dcb: PUSH1 0x40 00002dcd: MLOAD 00002dce: RETURNDATASIZE 00002dcf: PUSH0 00002dd0: DUP3 00002dd1: RETURNDATACOPY 00002dd2: RETURNDATASIZE 00002dd3: DUP2 00002dd4: REVERT 00002dd5: JUMPDEST 00002dd6: POP 00002dd7: POP 00002dd8: PUSH0 00002dd9: MLOAD 00002dda: RETURNDATASIZE 00002ddb: SWAP2 00002ddc: POP 00002ddd: DUP2 00002dde: ISZERO 00002ddf: PUSH2 0x2dec 00002de2: JUMPI 00002de3: DUP1 00002de4: PUSH1 0x01 00002de6: EQ 00002de7: ISZERO 00002de8: PUSH2 0x2df9 00002deb: JUMP 00002dec: JUMPDEST 00002ded: PUSH1 0x01 00002def: PUSH1 0x01 00002df1: PUSH1 0xa0 00002df3: SHL 00002df4: SUB 00002df5: DUP5 00002df6: AND 00002df7: EXTCODESIZE 00002df8: ISZERO 00002df9: JUMPDEST 00002dfa: ISZERO 00002dfb: PUSH2 0x0b24 00002dfe: JUMPI 00002dff: PUSH1 0x40 00002e01: MLOAD 00002e02: PUSH4 0x5274afe7 00002e07: PUSH1 0xe0 00002e09: SHL 00002e0a: DUP2 00002e0b: MSTORE 00002e0c: PUSH1 0x01 00002e0e: PUSH1 0x01 00002e10: PUSH1 0xa0 00002e12: SHL 00002e13: SUB 00002e14: DUP6 00002e15: AND 00002e16: PUSH1 0x04 00002e18: DUP3 00002e19: ADD 00002e1a: MSTORE 00002e1b: PUSH1 0x24 00002e1d: ADD 00002e1e: PUSH2 0x0ba9 00002e21: JUMP 00002e22: JUMPDEST 00002e23: PUSH2 0x2e2b 00002e26: DUP3 00002e27: PUSH2 0x2ee5 00002e2a: JUMP 00002e2b: JUMPDEST 00002e2c: PUSH1 0x40 00002e2e: MLOAD 00002e2f: PUSH1 0x01 00002e31: PUSH1 0x01 00002e33: PUSH1 0xa0 00002e35: SHL 00002e36: SUB 00002e37: DUP4 00002e38: AND 00002e39: SWAP1 00002e3a: PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b 00002e5b: SWAP1 00002e5c: PUSH0 00002e5d: SWAP1 00002e5e: LOG2 00002e5f: DUP1 00002e60: MLOAD 00002e61: ISZERO 00002e62: PUSH2 0x2e6f 00002e65: JUMPI 00002e66: PUSH2 0x0b5d 00002e69: DUP3 00002e6a: DUP3 00002e6b: PUSH2 0x2f48 00002e6e: JUMP 00002e6f: JUMPDEST 00002e70: PUSH2 0x09e3 00002e73: PUSH2 0x2fba 00002e76: JUMP 00002e77: JUMPDEST 00002e78: PUSH1 0x40 00002e7a: MLOAD 00002e7b: PUSH4 0x40c10f19 00002e80: PUSH1 0xe0 00002e82: SHL 00002e83: DUP2 00002e84: MSTORE 00002e85: PUSH1 0x01 00002e87: PUSH1 0x01 00002e89: PUSH1 0xa0 00002e8b: SHL 00002e8c: SUB 00002e8d: DUP4 00002e8e: DUP2 00002e8f: AND 00002e90: PUSH1 0x04 00002e92: DUP4 00002e93: ADD 00002e94: MSTORE 00002e95: PUSH1 0x24 00002e97: DUP3 00002e98: ADD 00002e99: DUP4 00002e9a: SWAP1 00002e9b: MSTORE 00002e9c: PUSH32 0x00000000000000000000000063d74d22e689c715a04f2c13962b1f77f443d35b 00002ebd: AND 00002ebe: SWAP1 00002ebf: PUSH4 0x40c10f19 00002ec4: SWAP1 00002ec5: PUSH1 0x44 00002ec7: ADD 00002ec8: PUSH2 0x260c 00002ecb: JUMP 00002ecc: JUMPDEST 00002ecd: PUSH0 00002ece: PUSH2 0x2ed5 00002ed1: PUSH2 0x1b89 00002ed4: JUMP 00002ed5: JUMPDEST 00002ed6: SLOAD 00002ed7: PUSH1 0x01 00002ed9: PUSH1 0x40 00002edb: SHL 00002edc: SWAP1 00002edd: DIV 00002ede: PUSH1 0xff 00002ee0: AND 00002ee1: SWAP2 00002ee2: SWAP1 00002ee3: POP 00002ee4: JUMP 00002ee5: JUMPDEST 00002ee6: DUP1 00002ee7: PUSH1 0x01 00002ee9: PUSH1 0x01 00002eeb: PUSH1 0xa0 00002eed: SHL 00002eee: SUB 00002eef: AND 00002ef0: EXTCODESIZE 00002ef1: PUSH0 00002ef2: SUB 00002ef3: PUSH2 0x2f1a 00002ef6: JUMPI 00002ef7: PUSH1 0x40 00002ef9: MLOAD 00002efa: PUSH4 0x4c9c8ce3 00002eff: PUSH1 0xe0 00002f01: SHL 00002f02: DUP2 00002f03: MSTORE 00002f04: PUSH1 0x01 00002f06: PUSH1 0x01 00002f08: PUSH1 0xa0 00002f0a: SHL 00002f0b: SUB 00002f0c: DUP3 00002f0d: AND 00002f0e: PUSH1 0x04 00002f10: DUP3 00002f11: ADD 00002f12: MSTORE 00002f13: PUSH1 0x24 00002f15: ADD 00002f16: PUSH2 0x0ba9 00002f19: JUMP 00002f1a: JUMPDEST 00002f1b: PUSH0 00002f1c: MLOAD 00002f1d: PUSH1 0x20 00002f1f: PUSH2 0x34b2 00002f22: PUSH0 00002f23: CODECOPY 00002f24: PUSH0 00002f25: MLOAD 00002f26: SWAP1 00002f27: PUSH0 00002f28: MSTORE 00002f29: DUP1 00002f2a: SLOAD 00002f2b: PUSH1 0x01 00002f2d: PUSH1 0x01 00002f2f: PUSH1 0xa0 00002f31: SHL 00002f32: SUB 00002f33: NOT 00002f34: AND 00002f35: PUSH1 0x01 00002f37: PUSH1 0x01 00002f39: PUSH1 0xa0 00002f3b: SHL 00002f3c: SUB 00002f3d: SWAP3 00002f3e: SWAP1 00002f3f: SWAP3 00002f40: AND 00002f41: SWAP2 00002f42: SWAP1 00002f43: SWAP2 00002f44: OR 00002f45: SWAP1 00002f46: SSTORE 00002f47: JUMP 00002f48: JUMPDEST 00002f49: PUSH1 0x60 00002f4b: PUSH0 00002f4c: PUSH0 00002f4d: DUP5 00002f4e: PUSH1 0x01 00002f50: PUSH1 0x01 00002f52: PUSH1 0xa0 00002f54: SHL 00002f55: SUB 00002f56: AND 00002f57: DUP5 00002f58: PUSH1 0x40 00002f5a: MLOAD 00002f5b: PUSH2 0x2f64 00002f5e: SWAP2 00002f5f: SWAP1 00002f60: PUSH2 0x347b 00002f63: JUMP 00002f64: JUMPDEST 00002f65: PUSH0 00002f66: PUSH1 0x40 00002f68: MLOAD 00002f69: DUP1 00002f6a: DUP4 00002f6b: SUB 00002f6c: DUP2 00002f6d: DUP6 00002f6e: GAS 00002f6f: DELEGATECALL 00002f70: SWAP2 00002f71: POP 00002f72: POP 00002f73: RETURNDATASIZE 00002f74: DUP1 00002f75: PUSH0 00002f76: DUP2 00002f77: EQ 00002f78: PUSH2 0x2f9c 00002f7b: JUMPI 00002f7c: PUSH1 0x40 00002f7e: MLOAD 00002f7f: SWAP2 00002f80: POP 00002f81: PUSH1 0x1f 00002f83: NOT 00002f84: PUSH1 0x3f 00002f86: RETURNDATASIZE 00002f87: ADD 00002f88: AND 00002f89: DUP3 00002f8a: ADD 00002f8b: PUSH1 0x40 00002f8d: MSTORE 00002f8e: RETURNDATASIZE 00002f8f: DUP3 00002f90: MSTORE 00002f91: RETURNDATASIZE 00002f92: PUSH0 00002f93: PUSH1 0x20 00002f95: DUP5 00002f96: ADD 00002f97: RETURNDATACOPY 00002f98: PUSH2 0x2fa1 00002f9b: JUMP 00002f9c: JUMPDEST 00002f9d: PUSH1 0x60 00002f9f: SWAP2 00002fa0: POP 00002fa1: JUMPDEST 00002fa2: POP 00002fa3: SWAP2 00002fa4: POP 00002fa5: SWAP2 00002fa6: POP 00002fa7: PUSH2 0x2fb1 00002faa: DUP6 00002fab: DUP4 00002fac: DUP4 00002fad: PUSH2 0x2fd9 00002fb0: JUMP 00002fb1: JUMPDEST 00002fb2: SWAP6 00002fb3: SWAP5 00002fb4: POP 00002fb5: POP 00002fb6: POP 00002fb7: POP 00002fb8: POP 00002fb9: JUMP 00002fba: JUMPDEST 00002fbb: CALLVALUE 00002fbc: ISZERO 00002fbd: PUSH2 0x21b6 00002fc0: JUMPI 00002fc1: PUSH1 0x40 00002fc3: MLOAD 00002fc4: PUSH4 0xb398979f 00002fc9: PUSH1 0xe0 00002fcb: SHL 00002fcc: DUP2 00002fcd: MSTORE 00002fce: PUSH1 0x04 00002fd0: ADD 00002fd1: PUSH1 0x40 00002fd3: MLOAD 00002fd4: DUP1 00002fd5: SWAP2 00002fd6: SUB 00002fd7: SWAP1 00002fd8: REVERT 00002fd9: JUMPDEST 00002fda: PUSH1 0x60 00002fdc: DUP3 00002fdd: PUSH2 0x2fee 00002fe0: JUMPI 00002fe1: PUSH2 0x2fe9 00002fe4: DUP3 00002fe5: PUSH2 0x3038 00002fe8: JUMP 00002fe9: JUMPDEST 00002fea: PUSH2 0x3031 00002fed: JUMP 00002fee: JUMPDEST 00002fef: DUP2 00002ff0: MLOAD 00002ff1: ISZERO 00002ff2: DUP1 00002ff3: ISZERO 00002ff4: PUSH2 0x3005 00002ff7: JUMPI 00002ff8: POP 00002ff9: PUSH1 0x01 00002ffb: PUSH1 0x01 00002ffd: PUSH1 0xa0 00002fff: SHL 00003000: SUB 00003001: DUP5 00003002: AND 00003003: EXTCODESIZE 00003004: ISZERO 00003005: JUMPDEST 00003006: ISZERO 00003007: PUSH2 0x302e 0000300a: JUMPI 0000300b: PUSH1 0x40 0000300d: MLOAD 0000300e: PUSH4 0x9996b315 00003013: PUSH1 0xe0 00003015: SHL 00003016: DUP2 00003017: MSTORE 00003018: PUSH1 0x01 0000301a: PUSH1 0x01 0000301c: PUSH1 0xa0 0000301e: SHL 0000301f: SUB 00003020: DUP6 00003021: AND 00003022: PUSH1 0x04 00003024: DUP3 00003025: ADD 00003026: MSTORE 00003027: PUSH1 0x24 00003029: ADD 0000302a: PUSH2 0x0ba9 0000302d: JUMP 0000302e: JUMPDEST 0000302f: POP 00003030: DUP1 00003031: JUMPDEST 00003032: SWAP4 00003033: SWAP3 00003034: POP 00003035: POP 00003036: POP 00003037: JUMP 00003038: JUMPDEST 00003039: DUP1 0000303a: MLOAD 0000303b: ISZERO 0000303c: PUSH2 0x3047 0000303f: JUMPI 00003040: DUP1 00003041: MLOAD 00003042: PUSH1 0x20 00003044: DUP3 00003045: ADD 00003046: REVERT 00003047: JUMPDEST 00003048: PUSH1 0x40 0000304a: MLOAD 0000304b: PUSH4 0xd6bda275 00003050: PUSH1 0xe0 00003052: SHL 00003053: DUP2 00003054: MSTORE 00003055: PUSH1 0x04 00003057: ADD 00003058: PUSH1 0x40 0000305a: MLOAD 0000305b: DUP1 0000305c: SWAP2 0000305d: SUB 0000305e: SWAP1 0000305f: REVERT 00003060: JUMPDEST 00003061: PUSH0 00003062: PUSH1 0x20 00003064: DUP3 00003065: DUP5 00003066: SUB 00003067: SLT 00003068: ISZERO 00003069: PUSH2 0x3070 0000306c: JUMPI 0000306d: PUSH0 0000306e: PUSH0 0000306f: REVERT 00003070: JUMPDEST 00003071: DUP2 00003072: CALLDATALOAD 00003073: PUSH1 0x01 00003075: PUSH1 0x01 00003077: PUSH1 0xe0 00003079: SHL 0000307a: SUB 0000307b: NOT 0000307c: DUP2 0000307d: AND 0000307e: DUP2 0000307f: EQ 00003080: PUSH2 0x3031 00003083: JUMPI 00003084: PUSH0 00003085: PUSH0 00003086: REVERT 00003087: JUMPDEST 00003088: PUSH1 0x01 0000308a: PUSH1 0x01 0000308c: PUSH1 0xa0 0000308e: SHL 0000308f: SUB 00003090: DUP2 00003091: AND 00003092: DUP2 00003093: EQ 00003094: PUSH2 0x0d9b 00003097: JUMPI 00003098: PUSH0 00003099: PUSH0 0000309a: REVERT 0000309b: JUMPDEST 0000309c: PUSH0 0000309d: PUSH1 0x20 0000309f: DUP3 000030a0: DUP5 000030a1: SUB 000030a2: SLT 000030a3: ISZERO 000030a4: PUSH2 0x30ab 000030a7: JUMPI 000030a8: PUSH0 000030a9: PUSH0 000030aa: REVERT 000030ab: JUMPDEST 000030ac: DUP2 000030ad: CALLDATALOAD 000030ae: PUSH2 0x3031 000030b1: DUP2 000030b2: PUSH2 0x3087 000030b5: JUMP 000030b6: JUMPDEST 000030b7: PUSH0 000030b8: PUSH1 0x20 000030ba: DUP3 000030bb: DUP5 000030bc: SUB 000030bd: SLT 000030be: ISZERO 000030bf: PUSH2 0x30c6 000030c2: JUMPI 000030c3: PUSH0 000030c4: PUSH0 000030c5: REVERT 000030c6: JUMPDEST 000030c7: POP 000030c8: CALLDATALOAD 000030c9: SWAP2 000030ca: SWAP1 000030cb: POP 000030cc: JUMP 000030cd: JUMPDEST 000030ce: DUP1 000030cf: CALLDATALOAD 000030d0: PUSH1 0x01 000030d2: PUSH1 0x01 000030d4: PUSH1 0x80 000030d6: SHL 000030d7: SUB 000030d8: DUP2 000030d9: AND 000030da: DUP2 000030db: EQ 000030dc: PUSH2 0x30e3 000030df: JUMPI 000030e0: PUSH0 000030e1: PUSH0 000030e2: REVERT 000030e3: JUMPDEST 000030e4: SWAP2 000030e5: SWAP1 000030e6: POP 000030e7: JUMP 000030e8: JUMPDEST 000030e9: DUP1 000030ea: CALLDATALOAD 000030eb: PUSH1 0x02 000030ed: DUP2 000030ee: LT 000030ef: PUSH2 0x30e3 000030f2: JUMPI 000030f3: PUSH0 000030f4: PUSH0 000030f5: REVERT 000030f6: JUMPDEST 000030f7: PUSH0 000030f8: PUSH0 000030f9: PUSH0 000030fa: PUSH0 000030fb: PUSH0 000030fc: PUSH1 0xa0 000030fe: DUP7 000030ff: DUP9 00003100: SUB 00003101: SLT 00003102: ISZERO 00003103: PUSH2 0x310a 00003106: JUMPI 00003107: PUSH0 00003108: PUSH0 00003109: REVERT 0000310a: JUMPDEST 0000310b: DUP6 0000310c: CALLDATALOAD 0000310d: PUSH2 0x3115 00003110: DUP2 00003111: PUSH2 0x3087 00003114: JUMP 00003115: JUMPDEST 00003116: SWAP5 00003117: POP 00003118: PUSH1 0x20 0000311a: DUP7 0000311b: ADD 0000311c: CALLDATALOAD 0000311d: PUSH2 0x3125 00003120: DUP2 00003121: PUSH2 0x3087 00003124: JUMP 00003125: JUMPDEST 00003126: SWAP4 00003127: POP 00003128: PUSH2 0x3133 0000312b: PUSH1 0x40 0000312d: DUP8 0000312e: ADD 0000312f: PUSH2 0x30cd 00003132: JUMP 00003133: JUMPDEST 00003134: SWAP3 00003135: POP 00003136: PUSH1 0x60 00003138: DUP7 00003139: ADD 0000313a: CALLDATALOAD 0000313b: PUSH2 0x3143 0000313e: DUP2 0000313f: PUSH2 0x3087 00003142: JUMP 00003143: JUMPDEST 00003144: SWAP2 00003145: POP 00003146: PUSH2 0x3151 00003149: PUSH1 0x80 0000314b: DUP8 0000314c: ADD 0000314d: PUSH2 0x30e8 00003150: JUMP 00003151: JUMPDEST 00003152: SWAP1 00003153: POP 00003154: SWAP3 00003155: SWAP6 00003156: POP 00003157: SWAP3 00003158: SWAP6 00003159: SWAP1 0000315a: SWAP4 0000315b: POP 0000315c: JUMP 0000315d: JUMPDEST 0000315e: PUSH0 0000315f: PUSH0 00003160: PUSH1 0x40 00003162: DUP4 00003163: DUP6 00003164: SUB 00003165: SLT 00003166: ISZERO 00003167: PUSH2 0x316e 0000316a: JUMPI 0000316b: PUSH0 0000316c: PUSH0 0000316d: REVERT 0000316e: JUMPDEST 0000316f: DUP3 00003170: CALLDATALOAD 00003171: SWAP2 00003172: POP 00003173: PUSH1 0x20 00003175: DUP4 00003176: ADD 00003177: CALLDATALOAD 00003178: PUSH2 0x3180 0000317b: DUP2 0000317c: PUSH2 0x3087 0000317f: JUMP 00003180: JUMPDEST 00003181: DUP1 00003182: SWAP2 00003183: POP 00003184: POP 00003185: SWAP3 00003186: POP 00003187: SWAP3 00003188: SWAP1 00003189: POP 0000318a: JUMP 0000318b: JUMPDEST 0000318c: PUSH0 0000318d: PUSH1 0x20 0000318f: DUP3 00003190: DUP5 00003191: SUB 00003192: SLT 00003193: ISZERO 00003194: PUSH2 0x319b 00003197: JUMPI 00003198: PUSH0 00003199: PUSH0 0000319a: REVERT 0000319b: JUMPDEST 0000319c: PUSH2 0x3031 0000319f: DUP3 000031a0: PUSH2 0x30e8 000031a3: JUMP 000031a4: JUMPDEST 000031a5: PUSH0 000031a6: PUSH1 0x20 000031a8: DUP3 000031a9: DUP5 000031aa: SUB 000031ab: SLT 000031ac: ISZERO 000031ad: PUSH2 0x31b4 000031b0: JUMPI 000031b1: PUSH0 000031b2: PUSH0 000031b3: REVERT 000031b4: JUMPDEST 000031b5: PUSH2 0x3031 000031b8: DUP3 000031b9: PUSH2 0x30cd 000031bc: JUMP 000031bd: JUMPDEST 000031be: PUSH4 0x4e487b71 000031c3: PUSH1 0xe0 000031c5: SHL 000031c6: PUSH0 000031c7: MSTORE 000031c8: PUSH1 0x21 000031ca: PUSH1 0x04 000031cc: MSTORE 000031cd: PUSH1 0x24 000031cf: PUSH0 000031d0: REVERT 000031d1: JUMPDEST 000031d2: PUSH1 0x20 000031d4: DUP2 000031d5: ADD 000031d6: PUSH1 0x02 000031d8: DUP4 000031d9: LT 000031da: PUSH2 0x31f1 000031dd: JUMPI 000031de: PUSH4 0x4e487b71 000031e3: PUSH1 0xe0 000031e5: SHL 000031e6: PUSH0 000031e7: MSTORE 000031e8: PUSH1 0x21 000031ea: PUSH1 0x04 000031ec: MSTORE 000031ed: PUSH1 0x24 000031ef: PUSH0 000031f0: REVERT 000031f1: JUMPDEST 000031f2: SWAP2 000031f3: SWAP1 000031f4: MSTORE 000031f5: SWAP1 000031f6: JUMP 000031f7: JUMPDEST 000031f8: PUSH4 0x4e487b71 000031fd: PUSH1 0xe0 000031ff: SHL 00003200: PUSH0 00003201: MSTORE 00003202: PUSH1 0x41 00003204: PUSH1 0x04 00003206: MSTORE 00003207: PUSH1 0x24 00003209: PUSH0 0000320a: REVERT 0000320b: JUMPDEST 0000320c: PUSH0 0000320d: PUSH0 0000320e: PUSH1 0x40 00003210: DUP4 00003211: DUP6 00003212: SUB 00003213: SLT 00003214: ISZERO 00003215: PUSH2 0x321c 00003218: JUMPI 00003219: PUSH0 0000321a: PUSH0 0000321b: REVERT 0000321c: JUMPDEST 0000321d: DUP3 0000321e: CALLDATALOAD 0000321f: PUSH2 0x3227 00003222: DUP2 00003223: PUSH2 0x3087 00003226: JUMP 00003227: JUMPDEST 00003228: SWAP2 00003229: POP 0000322a: PUSH1 0x20 0000322c: DUP4 0000322d: ADD 0000322e: CALLDATALOAD 0000322f: PUSH8 0xffffffffffffffff 00003238: DUP2 00003239: GT 0000323a: ISZERO 0000323b: PUSH2 0x3242 0000323e: JUMPI 0000323f: PUSH0 00003240: PUSH0 00003241: REVERT 00003242: JUMPDEST 00003243: DUP4 00003244: ADD 00003245: PUSH1 0x1f 00003247: DUP2 00003248: ADD 00003249: DUP6 0000324a: SGT 0000324b: PUSH2 0x3252 0000324e: JUMPI 0000324f: PUSH0 00003250: PUSH0 00003251: REVERT 00003252: JUMPDEST 00003253: DUP1 00003254: CALLDATALOAD 00003255: PUSH8 0xffffffffffffffff 0000325e: DUP2 0000325f: GT 00003260: ISZERO 00003261: PUSH2 0x326c 00003264: JUMPI 00003265: PUSH2 0x326c 00003268: PUSH2 0x31f7 0000326b: JUMP 0000326c: JUMPDEST 0000326d: PUSH1 0x40 0000326f: MLOAD 00003270: PUSH1 0x1f 00003272: DUP3 00003273: ADD 00003274: PUSH1 0x1f 00003276: NOT 00003277: SWAP1 00003278: DUP2 00003279: AND 0000327a: PUSH1 0x3f 0000327c: ADD 0000327d: AND 0000327e: DUP2 0000327f: ADD 00003280: PUSH8 0xffffffffffffffff 00003289: DUP2 0000328a: GT 0000328b: DUP3 0000328c: DUP3 0000328d: LT 0000328e: OR 0000328f: ISZERO 00003290: PUSH2 0x329b 00003293: JUMPI 00003294: PUSH2 0x329b 00003297: PUSH2 0x31f7 0000329a: JUMP 0000329b: JUMPDEST 0000329c: PUSH1 0x40 0000329e: MSTORE 0000329f: DUP2 000032a0: DUP2 000032a1: MSTORE 000032a2: DUP3 000032a3: DUP3 000032a4: ADD 000032a5: PUSH1 0x20 000032a7: ADD 000032a8: DUP8 000032a9: LT 000032aa: ISZERO 000032ab: PUSH2 0x32b2 000032ae: JUMPI 000032af: PUSH0 000032b0: PUSH0 000032b1: REVERT 000032b2: JUMPDEST 000032b3: DUP2 000032b4: PUSH1 0x20 000032b6: DUP5 000032b7: ADD 000032b8: PUSH1 0x20 000032ba: DUP4 000032bb: ADD 000032bc: CALLDATACOPY 000032bd: PUSH0 000032be: PUSH1 0x20 000032c0: DUP4 000032c1: DUP4 000032c2: ADD 000032c3: ADD 000032c4: MSTORE 000032c5: DUP1 000032c6: SWAP4 000032c7: POP 000032c8: POP 000032c9: POP 000032ca: POP 000032cb: SWAP3 000032cc: POP 000032cd: SWAP3 000032ce: SWAP1 000032cf: POP 000032d0: JUMP 000032d1: JUMPDEST 000032d2: PUSH1 0x20 000032d4: DUP2 000032d5: MSTORE 000032d6: PUSH0 000032d7: DUP3 000032d8: MLOAD 000032d9: DUP1 000032da: PUSH1 0x20 000032dc: DUP5 000032dd: ADD 000032de: MSTORE 000032df: DUP1 000032e0: PUSH1 0x20 000032e2: DUP6 000032e3: ADD 000032e4: PUSH1 0x40 000032e6: DUP6 000032e7: ADD 000032e8: MCOPY 000032e9: PUSH0 000032ea: PUSH1 0x40 000032ec: DUP3 000032ed: DUP6 000032ee: ADD 000032ef: ADD 000032f0: MSTORE 000032f1: PUSH1 0x40 000032f3: PUSH1 0x1f 000032f5: NOT 000032f6: PUSH1 0x1f 000032f8: DUP4 000032f9: ADD 000032fa: AND 000032fb: DUP5 000032fc: ADD 000032fd: ADD 000032fe: SWAP2 000032ff: POP 00003300: POP 00003301: SWAP3 00003302: SWAP2 00003303: POP 00003304: POP 00003305: JUMP 00003306: JUMPDEST 00003307: PUSH0 00003308: PUSH1 0x20 0000330a: DUP3 0000330b: DUP5 0000330c: SUB 0000330d: SLT 0000330e: ISZERO 0000330f: PUSH2 0x3316 00003312: JUMPI 00003313: PUSH0 00003314: PUSH0 00003315: REVERT 00003316: JUMPDEST 00003317: DUP2 00003318: CALLDATALOAD 00003319: DUP1 0000331a: ISZERO 0000331b: ISZERO 0000331c: DUP2 0000331d: EQ 0000331e: PUSH2 0x3031 00003321: JUMPI 00003322: PUSH0 00003323: PUSH0 00003324: REVERT 00003325: JUMPDEST 00003326: PUSH0 00003327: PUSH0 00003328: PUSH0 00003329: PUSH1 0x60 0000332b: DUP5 0000332c: DUP7 0000332d: SUB 0000332e: SLT 0000332f: ISZERO 00003330: PUSH2 0x3337 00003333: JUMPI 00003334: PUSH0 00003335: PUSH0 00003336: REVERT 00003337: JUMPDEST 00003338: DUP4 00003339: CALLDATALOAD 0000333a: PUSH2 0x3342 0000333d: DUP2 0000333e: PUSH2 0x3087 00003341: JUMP 00003342: JUMPDEST 00003343: SWAP3 00003344: POP 00003345: PUSH1 0x20 00003347: DUP5 00003348: ADD 00003349: CALLDATALOAD 0000334a: PUSH2 0x3352 0000334d: DUP2 0000334e: PUSH2 0x3087 00003351: JUMP 00003352: JUMPDEST 00003353: SWAP3 00003354: SWAP6 00003355: SWAP3 00003356: SWAP5 00003357: POP 00003358: POP 00003359: POP 0000335a: PUSH1 0x40 0000335c: SWAP2 0000335d: SWAP1 0000335e: SWAP2 0000335f: ADD 00003360: CALLDATALOAD 00003361: SWAP1 00003362: JUMP 00003363: JUMPDEST 00003364: PUSH4 0x4e487b71 00003369: PUSH1 0xe0 0000336b: SHL 0000336c: PUSH0 0000336d: MSTORE 0000336e: PUSH1 0x11 00003370: PUSH1 0x04 00003372: MSTORE 00003373: PUSH1 0x24 00003375: PUSH0 00003376: REVERT 00003377: JUMPDEST 00003378: PUSH1 0x01 0000337a: PUSH1 0x01 0000337c: PUSH1 0x80 0000337e: SHL 0000337f: SUB 00003380: DUP3 00003381: DUP2 00003382: AND 00003383: DUP3 00003384: DUP3 00003385: AND 00003386: SUB 00003387: SWAP1 00003388: DUP2 00003389: GT 0000338a: ISZERO 0000338b: PUSH2 0x0942 0000338e: JUMPI 0000338f: PUSH2 0x0942 00003392: PUSH2 0x3363 00003395: JUMP 00003396: JUMPDEST 00003397: PUSH1 0x20 00003399: DUP1 0000339a: DUP3 0000339b: MSTORE 0000339c: PUSH1 0x0a 0000339e: SWAP1 0000339f: DUP3 000033a0: ADD 000033a1: MSTORE 000033a2: PUSH10 0x1554d357d4d152569151 000033ad: PUSH1 0xb2 000033af: SHL 000033b0: PUSH1 0x40 000033b2: DUP3 000033b3: ADD 000033b4: MSTORE 000033b5: PUSH1 0x60 000033b7: ADD 000033b8: SWAP1 000033b9: JUMP 000033ba: JUMPDEST 000033bb: PUSH1 0x20 000033bd: DUP1 000033be: DUP3 000033bf: MSTORE 000033c0: PUSH1 0x0e 000033c2: SWAP1 000033c3: DUP3 000033c4: ADD 000033c5: MSTORE 000033c6: PUSH14 0x1253959053125117d05353d55395 000033d5: PUSH1 0x92 000033d7: SHL 000033d8: PUSH1 0x40 000033da: DUP3 000033db: ADD 000033dc: MSTORE 000033dd: PUSH1 0x60 000033df: ADD 000033e0: SWAP1 000033e1: JUMP 000033e2: JUMPDEST 000033e3: DUP2 000033e4: DUP2 000033e5: SUB 000033e6: DUP2 000033e7: DUP2 000033e8: GT 000033e9: ISZERO 000033ea: PUSH2 0x0942 000033ed: JUMPI 000033ee: PUSH2 0x0942 000033f1: PUSH2 0x3363 000033f4: JUMP 000033f5: JUMPDEST 000033f6: PUSH0 000033f7: PUSH1 0x20 000033f9: DUP3 000033fa: DUP5 000033fb: SUB 000033fc: SLT 000033fd: ISZERO 000033fe: PUSH2 0x3405 00003401: JUMPI 00003402: PUSH0 00003403: PUSH0 00003404: REVERT 00003405: JUMPDEST 00003406: POP 00003407: MLOAD 00003408: SWAP2 00003409: SWAP1 0000340a: POP 0000340b: JUMP 0000340c: JUMPDEST 0000340d: DUP1 0000340e: DUP3 0000340f: ADD 00003410: DUP1 00003411: DUP3 00003412: GT 00003413: ISZERO 00003414: PUSH2 0x0942 00003417: JUMPI 00003418: PUSH2 0x0942 0000341b: PUSH2 0x3363 0000341e: JUMP 0000341f: JUMPDEST 00003420: PUSH1 0x01 00003422: PUSH1 0x01 00003424: PUSH1 0x80 00003426: SHL 00003427: SUB 00003428: DUP2 00003429: DUP2 0000342a: AND 0000342b: DUP4 0000342c: DUP3 0000342d: AND 0000342e: ADD 0000342f: SWAP1 00003430: DUP2 00003431: GT 00003432: ISZERO 00003433: PUSH2 0x0942 00003436: JUMPI 00003437: PUSH2 0x0942 0000343a: PUSH2 0x3363 0000343d: JUMP 0000343e: JUMPDEST 0000343f: PUSH0 00003440: PUSH0 00003441: PUSH1 0x40 00003443: DUP4 00003444: DUP6 00003445: SUB 00003446: SLT 00003447: ISZERO 00003448: PUSH2 0x344f 0000344b: JUMPI 0000344c: PUSH0 0000344d: PUSH0 0000344e: REVERT 0000344f: JUMPDEST 00003450: POP 00003451: POP 00003452: DUP1 00003453: MLOAD 00003454: PUSH1 0x20 00003456: SWAP1 00003457: SWAP2 00003458: ADD 00003459: MLOAD 0000345a: SWAP1 0000345b: SWAP3 0000345c: SWAP1 0000345d: SWAP2 0000345e: POP 0000345f: JUMP 00003460: JUMPDEST 00003461: PUSH0 00003462: PUSH1 0x20 00003464: DUP3 00003465: DUP5 00003466: SUB 00003467: SLT 00003468: ISZERO 00003469: PUSH2 0x3470 0000346c: JUMPI 0000346d: PUSH0 0000346e: PUSH0 0000346f: REVERT 00003470: JUMPDEST 00003471: DUP2 00003472: MLOAD 00003473: PUSH2 0x3031 00003476: DUP2 00003477: PUSH2 0x3087 0000347a: JUMP 0000347b: JUMPDEST 0000347c: PUSH0 0000347d: DUP3 0000347e: MLOAD 0000347f: DUP1 00003480: PUSH1 0x20 00003482: DUP6 00003483: ADD 00003484: DUP5 00003485: MCOPY 00003486: PUSH0 00003487: SWAP3 00003488: ADD 00003489: SWAP2 0000348a: DUP3 0000348b: MSTORE 0000348c: POP 0000348d: SWAP2 0000348e: SWAP1 0000348f: POP 00003490: JUMP 00003491: INVALID 00003492: EXTCODESIZE 00003493: BLOBHASH 00003494: LOG2 00003495: CALLDATACOPY 00003496: INVALID 00003497: UNKNOWN(0x2D) 00003498: XOR 00003499: STATICCALL 0000349a: UNKNOWN(0x4D) 0000349b: SWAP7 0000349c: TIMESTAMP 0000349d: UNKNOWN(0xB8) 0000349e: LOG0 0000349f: UNKNOWN(0xE0) 000034a0: PUSH6 0x923cceb71b79 000034a7: PUSH24 0x83b619a030a61d848bf0360894a13ba1a3210667c828492d 000034c0: UNKNOWN(0xB9) 000034c1: DUP14 000034c2: UNKNOWN(0xCA) 000034c3: RETURNDATACOPY 000034c4: KECCAK256 000034c5: PUSH23 0xcc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775 000034dd: UNKNOWN(0xE5) 000034de: DUP14 000034df: UNKNOWN(0xD5) 000034e0: COINBASE 000034e1: UNKNOWN(0xE0) 000034e2: DUP11 000034e3: GT 000034e4: PUSH13 0x6c53815c0bd028192f7b626800 000034f2: LOG2 000034f3: PUSH5 0x6970667358 000034f9: UNKNOWN(0x22) 000034fa: SLT 000034fb: KECCAK256 000034fc: UNKNOWN(0xEB) 000034fd: UNKNOWN(0xDA) 000034fe: UNKNOWN(0xC5) 000034ff: UNKNOWN(0xDB) 00003500: LT 00003501: PUSH13 0xc97fc691a7997d61364f80db3e 0000350f: MSIZE 00003510: SWAP7 00003511: UNKNOWN(0x2A) 00003512: UNKNOWN(0xC2) 00003513: PUSH12 0x230550f9481206c464736f6c 00003520: PUSH4 0x4300081c 00003525: STOP 00003526: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | detector | Untrusted DELEGATECALL target reachable | 70 | no | no |
viewtrace_id: 0x139c83ba6804113ef2fdfb50d0ddac18e9e524645e47ed6e36cc96b411470534
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 192,
"trace_id": "0x139c83ba6804113ef2fdfb50d0ddac18e9e524645e47ed6e36cc96b411470534",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xd417e511",
"selector": "0xd417e511",
"calldata_variants": [
"0xd417e511",
"0xd417e5110000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd853015e",
"selector": "0xd853015e",
"calldata_variants": [
"0xd853015e",
"0xd853015e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdf668eca",
"selector": "0xdf668eca",
"calldata_variants": [
"0xdf668eca",
"0xdf668eca0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe6025393",
"selector": "0xe6025393",
"calldata_variants": [
"0xe6025393",
"0xe60253930000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf160d369",
"selector": "0xf160d369",
"calldata_variants": [
"0xf160d369",
"0xf160d3690000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xaa443ac0",
"selector": "0xaa443ac0",
"calldata_variants": [
"0xaa443ac0",
"0xaa443ac00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xad3cb1cc",
"selector": "0xad3cb1cc",
"calldata_variants": [
"0xad3cb1cc",
"0xad3cb1cc0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 12143,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [],
"delegatecall_count": 1,
"untrusted_delegatecall_count": 1
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0xf3907cd5432793dc99a11c3a448a9a2028a6871f1c6e86800d44b0f44778aa64
call_targets:
0x7dadf78d641f7ad327aeb0f71e97b6229345eca4
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xf3907cd5432793dc99a11c3a448a9a2028a6871f1c6e86800d44b0f44778aa64",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x7dadf78d641f7ad327aeb0f71e97b6229345eca4"
],
"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": "0xd417e511",
"selector": "0xd417e511",
"calldata_variants": [
"0xd417e511",
"0xd417e5110000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd853015e",
"selector": "0xd853015e",
"calldata_variants": [
"0xd853015e",
"0xd853015e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdf668eca",
"selector": "0xdf668eca",
"calldata_variants": [
"0xdf668eca",
"0xdf668eca0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe6025393",
"selector": "0xe6025393",
"calldata_variants": [
"0xe6025393",
"0xe60253930000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf160d369",
"selector": "0xf160d369",
"calldata_variants": [
"0xf160d369",
"0xf160d3690000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xaa443ac0",
"selector": "0xaa443ac0",
"calldata_variants": [
"0xaa443ac0",
"0xaa443ac00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xad3cb1cc",
"selector": "0xad3cb1cc",
"calldata_variants": [
"0xad3cb1cc",
"0xad3cb1cc0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 9766,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 11717,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "constant_zero",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [],
"untrusted_call_count": 2
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0xf3907cd5432793dc99a11c3a448a9a2028a6871f1c6e86800d44b0f44778aa64
call_targets:
0x7dadf78d641f7ad327aeb0f71e97b6229345eca4
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xf3907cd5432793dc99a11c3a448a9a2028a6871f1c6e86800d44b0f44778aa64",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x7dadf78d641f7ad327aeb0f71e97b6229345eca4"
],
"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": "0xd417e511",
"selector": "0xd417e511",
"calldata_variants": [
"0xd417e511",
"0xd417e5110000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd853015e",
"selector": "0xd853015e",
"calldata_variants": [
"0xd853015e",
"0xd853015e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdf668eca",
"selector": "0xdf668eca",
"calldata_variants": [
"0xdf668eca",
"0xdf668eca0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe6025393",
"selector": "0xe6025393",
"calldata_variants": [
"0xe6025393",
"0xe60253930000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf160d369",
"selector": "0xf160d369",
"calldata_variants": [
"0xf160d369",
"0xf160d3690000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xaa443ac0",
"selector": "0xaa443ac0",
"calldata_variants": [
"0xaa443ac0",
"0xaa443ac00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xad3cb1cc",
"selector": "0xad3cb1cc",
"calldata_variants": [
"0xad3cb1cc",
"0xad3cb1cc0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 9766,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 1,
"guards_detected": []
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 1
}
|
| low | math | codex | sellAsset does not enforce the caller’s maxAmount after fee/rounding adjustments | 65 | no | — |
viewevidence_json{
"evidence": "_sellAsset computes assetAmount from maxAmount and transfers that amount without checking it against maxAmount. The calculation explicitly rounds the final asset amount up (getStableTokenPriceInAsset(..., true)), which can exceed the input when fees are applied.",
"locations": [
"contracts/contracts/usm/Usm.sol:413",
"contracts/contracts/usm/Usm.sol:476"
],
"recommendation": "After computing assetAmount in _sellAsset, add a guard such as require(assetAmount <= maxAmount, \"EXCESS_ASSET_AMOUNT\"), or adjust _calculateStableTokenAmountForSellAsset so it never returns a value above the caller\u2019s max input.",
"exploit_scenario": "If the fee strategy rounds up and price conversions round up, _calculateStableTokenAmountForSellAsset(maxAmount) can return an assetAmount slightly greater than maxAmount. When a user has pre-approved a larger allowance, sellAsset will transfer the larger amount, exceeding the user\u2019s intended cap and allowing a malicious UI or attacker to overcharge."
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 6
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 25
}
|