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

Analysis Run

019bab3d-a126-71a9-ba02-d6d1d782d905

complete
Chain ID
1
Address
Block Number
Created
Sun, Jan 11, 2026 4:08 AM
Review Summary

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
39119 artifact.fetch complete 1 / 3 3 months ago
39120 proxy.resolve complete 1 / 3 3 months ago
39121 tool.cast_disasm complete 1 / 3 3 months ago
39122 analysis.bundle complete 1 / 3 3 months ago
39123 capability.graph complete 1 / 3 3 months ago
39124 detector.run complete 1 / 3 3 months ago
39125 validation.fork complete 1 / 3 3 months ago
39251 report.consolidate complete 1 / 6 3 months ago
39252 tool.slither complete 1 / 2 3 months ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no not_proxy
Implementation:
Verified Source: yes
Proxy evidence
{
    "status": "not_proxy"
}

Slither

tool.slither
Status
complete
Attempts
1 / 2
Findings
0
Solc
0.6.12 (solc-select)
View stderr
'forge clean' running (wd: /tmp/slither-296267lr)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-296267lr)

IAaveIncentivesController.configureAssets(address[],uint256[]).assets (contracts/interfaces/IAaveIncentivesController.sol#67) shadows:
	- IAaveIncentivesController.assets(address) (contracts/interfaces/IAaveIncentivesController.sol#39-46) (function)
IAaveIncentivesController.getRewardsBalance(address[],address).assets (contracts/interfaces/IAaveIncentivesController.sol#87) shadows:
	- IAaveIncentivesController.assets(address) (contracts/interfaces/IAaveIncentivesController.sol#39-46) (function)
IAaveIncentivesController.claimRewards(address[],uint256,address).assets (contracts/interfaces/IAaveIncentivesController.sol#99) shadows:
	- IAaveIncentivesController.assets(address) (contracts/interfaces/IAaveIncentivesController.sol#39-46) (function)
IAaveIncentivesController.claimRewardsOnBehalf(address[],uint256,address,address).assets (contracts/interfaces/IAaveIncentivesController.sol#113) shadows:
	- IAaveIncentivesController.assets(address) (contracts/interfaces/IAaveIncentivesController.sol#39-46) (function)
IncentivizedERC20.constructor(string,string,uint8).name (contracts/protocol/tokenization/IncentivizedERC20.sol#27) shadows:
	- IncentivizedERC20.name() (contracts/protocol/tokenization/IncentivizedERC20.sol#39-41) (function)
	- IERC20Detailed.name() (contracts/dependencies/openzeppelin/contracts/IERC20Detailed.sol#7) (function)
IncentivizedERC20.constructor(string,string,uint8).symbol (contracts/protocol/tokenization/IncentivizedERC20.sol#28) shadows:
	- IncentivizedERC20.symbol() (contracts/protocol/tokenization/IncentivizedERC20.sol#46-48) (function)
	- IERC20Detailed.symbol() (contracts/dependencies/openzeppelin/contracts/IERC20Detailed.sol#9) (function)
IncentivizedERC20.constructor(string,string,uint8).decimals (contracts/protocol/tokenization/IncentivizedERC20.sol#29) shadows:
	- IncentivizedERC20.decimals() (contracts/protocol/tokenization/IncentivizedERC20.sol#53-55) (function)
	- IERC20Detailed.decimals() (contracts/dependencies/openzeppelin/contracts/IERC20Detailed.sol#11) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing

AToken.initialize(ILendingPool,address,address,IAaveIncentivesController,uint8,string,string,bytes).treasury (contracts/protocol/tokenization/AToken.sol#66) lacks a zero-check on :
		- _treasury = treasury (contracts/protocol/tokenization/AToken.sol#96)
AToken.initialize(ILendingPool,address,address,IAaveIncentivesController,uint8,string,string,bytes).underlyingAsset (contracts/protocol/tokenization/AToken.sol#67) lacks a zero-check on :
		- _underlyingAsset = underlyingAsset (contracts/protocol/tokenization/AToken.sol#97)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation

Reentrancy in IncentivizedERC20.transferFrom(address,address,uint256) (contracts/protocol/tokenization/IncentivizedERC20.sol#122-135):
	External calls:
	- _transfer(sender,recipient,amount) (contracts/protocol/tokenization/IncentivizedERC20.sol#127)
		- _getIncentivesController().handleAction(sender,currentTotalSupply,oldSenderBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#187)
		- _getIncentivesController().handleAction(recipient,currentTotalSupply,oldRecipientBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#189)
	State variables written after the call(s):
	- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (contracts/protocol/tokenization/IncentivizedERC20.sol#128-132)
		- _allowances[owner][spender] = amount (contracts/protocol/tokenization/IncentivizedERC20.sol#234)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-2

Reentrancy in AToken._transfer(address,address,uint256,bool) (contracts/protocol/tokenization/AToken.sol#370-391):
	External calls:
	- super._transfer(from,to,amount.rayDiv(index)) (contracts/protocol/tokenization/AToken.sol#384)
		- _getIncentivesController().handleAction(sender,currentTotalSupply,oldSenderBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#187)
		- _getIncentivesController().handleAction(recipient,currentTotalSupply,oldRecipientBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#189)
	- pool.finalizeTransfer(underlyingAsset,from,to,amount,fromBalanceBefore,toBalanceBefore) (contracts/protocol/tokenization/AToken.sol#387)
	Event emitted after the call(s):
	- BalanceTransfer(from,to,amount,index) (contracts/protocol/tokenization/AToken.sol#390)
Reentrancy in AToken.burn(address,address,uint256,uint256) (contracts/protocol/tokenization/AToken.sol#120-134):
	External calls:
	- _burn(user,amountScaled) (contracts/protocol/tokenization/AToken.sol#128)
		- _getIncentivesController().handleAction(account,oldTotalSupply,oldAccountBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#222)
	- IERC20(_underlyingAsset).safeTransfer(receiverOfUnderlying,amount) (contracts/protocol/tokenization/AToken.sol#130)
	Event emitted after the call(s):
	- Burn(user,receiverOfUnderlying,amount,index) (contracts/protocol/tokenization/AToken.sol#133)
	- Transfer(user,address(0),amount) (contracts/protocol/tokenization/AToken.sol#132)
Reentrancy in AToken.mint(address,uint256,uint256) (contracts/protocol/tokenization/AToken.sol#144-159):
	External calls:
	- _mint(user,amountScaled) (contracts/protocol/tokenization/AToken.sol#153)
		- _getIncentivesController().handleAction(account,oldTotalSupply,oldAccountBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#206)
	Event emitted after the call(s):
	- Mint(user,amount,index) (contracts/protocol/tokenization/AToken.sol#156)
	- Transfer(address(0),user,amount) (contracts/protocol/tokenization/AToken.sol#155)
Reentrancy in AToken.mintToTreasury(uint256,uint256) (contracts/protocol/tokenization/AToken.sol#167-182):
	External calls:
	- _mint(treasury,amount.rayDiv(index)) (contracts/protocol/tokenization/AToken.sol#178)
		- _getIncentivesController().handleAction(account,oldTotalSupply,oldAccountBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#206)
	Event emitted after the call(s):
	- Mint(treasury,amount,index) (contracts/protocol/tokenization/AToken.sol#181)
	- Transfer(address(0),treasury,amount) (contracts/protocol/tokenization/AToken.sol#180)
Reentrancy in IncentivizedERC20.transfer(address,uint256) (contracts/protocol/tokenization/IncentivizedERC20.sol#83-87):
	External calls:
	- _transfer(_msgSender(),recipient,amount) (contracts/protocol/tokenization/IncentivizedERC20.sol#84)
		- _getIncentivesController().handleAction(sender,currentTotalSupply,oldSenderBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#187)
		- _getIncentivesController().handleAction(recipient,currentTotalSupply,oldRecipientBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#189)
	Event emitted after the call(s):
	- Transfer(_msgSender(),recipient,amount) (contracts/protocol/tokenization/IncentivizedERC20.sol#85)
Reentrancy in IncentivizedERC20.transferFrom(address,address,uint256) (contracts/protocol/tokenization/IncentivizedERC20.sol#122-135):
	External calls:
	- _transfer(sender,recipient,amount) (contracts/protocol/tokenization/IncentivizedERC20.sol#127)
		- _getIncentivesController().handleAction(sender,currentTotalSupply,oldSenderBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#187)
		- _getIncentivesController().handleAction(recipient,currentTotalSupply,oldRecipientBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#189)
	Event emitted after the call(s):
	- Approval(owner,spender,amount) (contracts/protocol/tokenization/IncentivizedERC20.sol#235)
		- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (contracts/protocol/tokenization/IncentivizedERC20.sol#128-132)
	- Transfer(sender,recipient,amount) (contracts/protocol/tokenization/IncentivizedERC20.sol#133)
Reentrancy in AToken.transferOnLiquidation(address,address,uint256) (contracts/protocol/tokenization/AToken.sol#191-201):
	External calls:
	- _transfer(from,to,value,false) (contracts/protocol/tokenization/AToken.sol#198)
		- pool.finalizeTransfer(underlyingAsset,from,to,amount,fromBalanceBefore,toBalanceBefore) (contracts/protocol/tokenization/AToken.sol#387)
		- _getIncentivesController().handleAction(sender,currentTotalSupply,oldSenderBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#187)
		- _getIncentivesController().handleAction(recipient,currentTotalSupply,oldRecipientBalance) (contracts/protocol/tokenization/IncentivizedERC20.sol#189)
	Event emitted after the call(s):
	- Transfer(from,to,value) (contracts/protocol/tokenization/AToken.sol#200)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3

AToken.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (contracts/protocol/tokenization/AToken.sol#336-360) uses timestamp for comparisons
	Dangerous comparisons:
	- require(bool,string)(block.timestamp <= deadline,INVALID_EXPIRATION) (contracts/protocol/tokenization/AToken.sol#347)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp

Address.isContract(address) (contracts/dependencies/openzeppelin/contracts/Address.sol#25-36) uses assembly
	- INLINE ASM (contracts/dependencies/openzeppelin/contracts/Address.sol#32-34)
VersionedInitializable.isConstructor() (contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol#61-73) uses assembly
	- INLINE ASM (contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol#69-71)
AToken.initialize(ILendingPool,address,address,IAaveIncentivesController,uint8,string,string,bytes) (contracts/protocol/tokenization/AToken.sol#64-110) uses assembly
	- INLINE ASM (contracts/protocol/tokenization/AToken.sol#77-79)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage

Context._msgData() (contracts/dependencies/openzeppelin/contracts/Context.sol#19-22) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code

Version constraint 0.6.12 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- FullInlinerNonExpressionSplitArgumentEvaluationOrder
	- MissingSideEffectsOnSelectorAccess
	- AbiReencodingHeadOverflowWithStaticArrayCleanup
	- DirtyBytesArrayToStorage
	- DataLocationChangeInInternalOverride
	- NestedCalldataArrayAbiReencodingSizeValidation
	- SignedImmutables
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching
	- EmptyByteArrayCopy
	- DynamicArrayCleanup.
It is used by:
	- 0.6.12 (contracts/dependencies/openzeppelin/contracts/Address.sol#2)
	- 0.6.12 (contracts/dependencies/openzeppelin/contracts/Context.sol#2)
	- 0.6.12 (contracts/dependencies/openzeppelin/contracts/IERC20.sol#2)
	- 0.6.12 (contracts/dependencies/openzeppelin/contracts/IERC20Detailed.sol#2)
	- 0.6.12 (contracts/dependencies/openzeppelin/contracts/SafeERC20.sol#3)
	- 0.6.12 (contracts/dependencies/openzeppelin/contracts/SafeMath.sol#2)
	- 0.6.12 (contracts/interfaces/IAToken.sol#2)
	- 0.6.12 (contracts/interfaces/IAaveIncentivesController.sol#2)
	- 0.6.12 (contracts/interfaces/IInitializableAToken.sol#2)
	- 0.6.12 (contracts/interfaces/ILendingPool.sol#2)
	- 0.6.12 (contracts/interfaces/ILendingPoolAddressesProvider.sol#2)
	- 0.6.12 (contracts/interfaces/IScaledBalanceToken.sol#2)
	- 0.6.12 (contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol#2)
	- 0.6.12 (contracts/protocol/libraries/helpers/Errors.sol#2)
	- 0.6.12 (contracts/protocol/libraries/math/WadRayMath.sol#2)
	- 0.6.12 (contracts/protocol/libraries/types/DataTypes.sol#2)
	- 0.6.12 (contracts/protocol/tokenization/AToken.sol#2)
	- 0.6.12 (contracts/protocol/tokenization/IncentivizedERC20.sol#2)
solc-0.6.12 is an outdated solc version. Use a more recent version (at least 0.8.0), if possible.
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity

Low level call in Address.sendValue(address,uint256) (contracts/dependencies/openzeppelin/contracts/Address.sol#54-60):
	- (success,None) = recipient.call{value: amount}() (contracts/dependencies/openzeppelin/contracts/Address.sol#58)
Low level call in SafeERC20.callOptionalReturn(IERC20,bytes) (contracts/dependencies/openzeppelin/contracts/SafeERC20.sol#51-63):
	- (success,returndata) = address(token).call(data) (contracts/dependencies/openzeppelin/contracts/SafeERC20.sol#55)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls

Function IAToken.UNDERLYING_ASSET_ADDRESS() (contracts/interfaces/IAToken.sol#127) is not in mixedCase
Function IAaveIncentivesController.REWARD_TOKEN() (contracts/interfaces/IAaveIncentivesController.sol#137) is not in mixedCase
Function IAaveIncentivesController.PRECISION() (contracts/interfaces/IAaveIncentivesController.sol#142) is not in mixedCase
Function IAaveIncentivesController.DISTRIBUTION_END() (contracts/interfaces/IAaveIncentivesController.sol#147) is not in mixedCase
Variable VersionedInitializable.______gap (contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol#76) is not in mixedCase
Constant WadRayMath.halfWAD (contracts/protocol/libraries/math/WadRayMath.sol#14) is not in UPPER_CASE_WITH_UNDERSCORES
Constant WadRayMath.halfRAY (contracts/protocol/libraries/math/WadRayMath.sol#17) is not in UPPER_CASE_WITH_UNDERSCORES
Function AToken.RESERVE_TREASURY_ADDRESS() (contracts/protocol/tokenization/AToken.sol#269-271) is not in mixedCase
Function AToken.UNDERLYING_ASSET_ADDRESS() (contracts/protocol/tokenization/AToken.sol#276-278) is not in mixedCase
Function AToken.POOL() (contracts/protocol/tokenization/AToken.sol#283-285) is not in mixedCase
Variable AToken._nonces (contracts/protocol/tokenization/AToken.sol#36) is not in mixedCase
Variable AToken.DOMAIN_SEPARATOR (contracts/protocol/tokenization/AToken.sol#38) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions

Redundant expression "this (contracts/dependencies/openzeppelin/contracts/Context.sol#20)" inContext (contracts/dependencies/openzeppelin/contracts/Context.sol#14-23)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#redundant-statements
. analyzed (18 contracts with 100 detectors), 39 result(s) found
Metadata
{
    "solc": {
        "status": "ok",
        "use_rc": 0,
        "version": "0.6.12",
        "strategy": "solc-select",
        "solc_path": "/var/www/tripwire/.venv/bin/solc",
        "install_rc": 0,
        "use_stderr": null,
        "use_stdout": "Switched global version to 0.6.12",
        "install_stderr": null,
        "install_stdout": "Version '0.6.12' is already installed, skipping..."
    },
    "solc_args": "--base-path /tmp/slither-296267lr --allow-paths /tmp/slither-296267lr,/tmp/slither-296267lr/lib,/tmp/slither-296267lr/src",
    "remappings": [],
    "source_files": [
        "contracts/protocol/tokenization/AToken.sol",
        "contracts/dependencies/openzeppelin/contracts/IERC20.sol",
        "contracts/dependencies/openzeppelin/contracts/SafeERC20.sol",
        "contracts/dependencies/openzeppelin/contracts/SafeMath.sol",
        "contracts/dependencies/openzeppelin/contracts/Address.sol",
        "contracts/interfaces/ILendingPool.sol",
        "contracts/interfaces/ILendingPoolAddressesProvider.sol",
        "contracts/protocol/libraries/types/DataTypes.sol",
        "contracts/interfaces/IAToken.sol",
        "contracts/interfaces/IScaledBalanceToken.sol",
        "contracts/interfaces/IInitializableAToken.sol",
        "contracts/interfaces/IAaveIncentivesController.sol",
        "contracts/protocol/libraries/math/WadRayMath.sol",
        "contracts/protocol/libraries/helpers/Errors.sol",
        "contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol",
        "contracts/protocol/tokenization/IncentivizedERC20.sol",
        "contracts/dependencies/openzeppelin/contracts/Context.sol",
        "contracts/dependencies/openzeppelin/contracts/IERC20Detailed.sol"
    ],
    "contract_count": 0,
    "contract_names": [],
    "detector_count": 39,
    "workspace_hash": "649f40b98dbb503672e06cd31640557c77d63f17639f2609dd58d9023b01e388",
    "duration_seconds": 1.1110234260559082,
    "solc_version_requested": "0.6.12"
}

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
1
No findings?
no
Summary
Found one high-severity upgradeability risk: the AToken initializer is externally callable without access control, enabling takeover if a proxy or instance is deployed without atomic initialization.
View stdout
{"no_findings":false,"summary":"Found one high-severity upgradeability risk: the AToken initializer is externally callable without access control, enabling takeover if a proxy or instance is deployed without atomic initialization.","findings":[{"severity":"high","category":"upgradeability","title":"Unrestricted initializer allows takeover of uninitialized AToken instance/proxy","exploit_scenario":"If a new AToken proxy/instance is deployed and `initialize` is not called atomically, an attacker can call `initialize` first, set `_pool` to their address and `_underlyingAsset` to the real reserve asset, then use `transferUnderlyingTo`/`mint`/`burn` as the LendingPool to drain assets or mint arbitrary balances.","recommendation":"Ensure initialization happens atomically at deployment (constructor-based or factory call), or restrict `initialize` to a trusted deployer (e.g., addresses provider/admin). Consider locking the implementation with a constructor that sets `lastInitializedRevision` or a dedicated `_disableInitializers` pattern.","evidence":"`initialize` is `external` and only protected by `initializer`, with no caller restriction.","locations":["contracts/protocol/tokenization/AToken.sol:64"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-j2wcyvwt
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bac38-af46-7ed3-b737-9c2b7a0ea766
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.

Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.

Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.

Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers

thinking
**Reading AUDIT_BUNDLE file**
exec
/bin/bash -lc ls in /tmp/codex-j2wcyvwt succeeded in 6ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-j2wcyvwt succeeded in 7ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.

================================================================================
FILE: contracts/dependencies/openzeppelin/contracts/Address.sol
================================================================================
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.6.12;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
  /**
   * @dev Returns true if `account` is a contract.
   *
   * [IMPORTANT]
   * ====
   * It is unsafe to assume that an address for which this function returns
   * false is an externally-owned account (EOA) and not a contract.

thinking
**Identifying first-party source files**
exec
/bin/bash -lc 'rg "''^FILE:" -n AUDIT_BUNDLE.txt' in /tmp/codex-j2wcyvwt succeeded in 8ms:
5:FILE: contracts/dependencies/openzeppelin/contracts/Address.sol
70:FILE: contracts/dependencies/openzeppelin/contracts/Context.sol
97:FILE: contracts/dependencies/openzeppelin/contracts/IERC20.sol
181:FILE: contracts/dependencies/openzeppelin/contracts/IERC20Detailed.sol
197:FILE: contracts/dependencies/openzeppelin/contracts/SafeERC20.sol
265:FILE: contracts/dependencies/openzeppelin/contracts/SafeMath.sol
432:FILE: contracts/interfaces/IAToken.sol
564:FILE: contracts/interfaces/IAaveIncentivesController.sol
716:FILE: contracts/interfaces/IInitializableAToken.sol
775:FILE: contracts/interfaces/ILendingPool.sol
1189:FILE: contracts/interfaces/ILendingPoolAddressesProvider.sol
1253:FILE: contracts/interfaces/IScaledBalanceToken.sol
1283:FILE: contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol
1364:FILE: contracts/protocol/libraries/helpers/Errors.sol
1493:FILE: contracts/protocol/libraries/math/WadRayMath.sol
1632:FILE: contracts/protocol/libraries/types/DataTypes.sol
1687:FILE: contracts/protocol/tokenization/AToken.sol
2097:FILE: contracts/protocol/tokenization/IncentivizedERC20.sol

thinking
**Extracting AToken contract code**
exec
/bin/bash -lc "sed -n '1283,1750p' AUDIT_BUNDLE.txt" in /tmp/codex-j2wcyvwt succeeded in 7ms:
FILE: contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol
================================================================================
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.6.12;

/**
 * @title VersionedInitializable
 *
 * @dev Helper contract to implement initializer functions. To use it, replace
 * the constructor with a function that has the `initializer` modifier.
 * WARNING: Unlike constructors, initializer functions must be manually
 * invoked. This applies both to deploying an Initializable contract, as well
 * as extending an Initializable contract via inheritance.
 * WARNING: When used with inheritance, manual care must be taken to not invoke
 * a parent initializer twice, or ensure that all initializers are idempotent,
 * because this is not dealt with automatically as with constructors.
 *
 * @author Aave, inspired by the OpenZeppelin Initializable contract
 */
abstract contract VersionedInitializable {
exec
/bin/bash -lc "sed -n '1750,2160p' AUDIT_BUNDLE.txt" in /tmp/codex-j2wcyvwt succeeded in 12ms:
   * @param aTokenSymbol The symbol of the aToken
   */
  function initialize(
    ILendingPool pool,
    address treasury,
    address underlyingAsset,
    IAaveIncentivesController incentivesController,
    uint8 aTokenDecimals,
    string calldata aTokenName,
    string calldata aTokenSymbol,
    bytes calldata params
  ) external override initializer {
    uint256 chainId;

    //solium-disable-next-line
    assembly {
      chainId := chainid()
    }

    DOMAIN_SEPARATOR = keccak256(

thinking
**Analyzing potential upgradeability and access control risks**

I'm reviewing the AToken’s initialization and external functions, noting that its external initializer lacks access control which could allow takeover if deployed improperly. I’m also curious about signature malleability in permit and potential minor reentrancy or rounding issues, but overall these seem low risk or expected given the protocol context. The main concern is unprotected initialization in upgradeable proxy patterns, a typical but important risk to flag.
exec
/bin/bash -lc "sed -n '700,850p' AUDIT_BUNDLE.txt" in /tmp/codex-j2wcyvwt succeeded in 8ms:
   * @dev for backward compatibility with previous implementation of the Incentives controller
   */
  function REWARD_TOKEN() external view returns (address);

  /**
   * @dev for backward compatibility with previous implementation of the Incentives controller
   */
  function PRECISION() external view returns (uint8);

  /**
   * @dev Gets the distribution end timestamp of the emissions
   */
  function DISTRIBUTION_END() external view returns (uint256);
}

================================================================================
FILE: contracts/interfaces/IInitializableAToken.sol
================================================================================
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.6.12;

thinking
**Evaluating potential vulnerabilities and initializer risks**

I'm reviewing key concerns like unprotected initialization, possible reentrancy through external calls, domain separator chainId issues, and missing access control, focusing mainly on AToken's initializer and external call patterns to highlight the most meaningful risks.
exec
/bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '1687,1865p'" in /tmp/codex-j2wcyvwt succeeded in 6ms:
  1687	FILE: contracts/protocol/tokenization/AToken.sol
  1688	================================================================================
  1689	// SPDX-License-Identifier: agpl-3.0
  1690	pragma solidity 0.6.12;
  1691	
  1692	import {IERC20} from '../../dependencies/openzeppelin/contracts/IERC20.sol';
  1693	import {SafeERC20} from '../../dependencies/openzeppelin/contracts/SafeERC20.sol';
  1694	import {ILendingPool} from '../../interfaces/ILendingPool.sol';
  1695	import {IAToken} from '../../interfaces/IAToken.sol';
  1696	import {WadRayMath} from '../libraries/math/WadRayMath.sol';
  1697	import {Errors} from '../libraries/helpers/Errors.sol';
  1698	import {VersionedInitializable} from '../libraries/aave-upgradeability/VersionedInitializable.sol';
  1699	import {IncentivizedERC20} from './IncentivizedERC20.sol';
  1700	import {IAaveIncentivesController} from '../../interfaces/IAaveIncentivesController.sol';
  1701	
  1702	/**
  1703	 * @title Aave ERC20 AToken
  1704	 * @dev Implementation of the interest bearing token for the Aave protocol
  1705	 * @author Aave
  1706	 */

thinking
**Clarifying source file line numbers**
exec
/bin/bash -lc "nl -ba contracts/protocol/tokenization/AToken.sol | sed -n '60,160p'" in /tmp/codex-j2wcyvwt succeeded in 6ms:
    60	   * @param aTokenDecimals The decimals of the aToken, same as the underlying asset's
    61	   * @param aTokenName The name of the aToken
    62	   * @param aTokenSymbol The symbol of the aToken
    63	   */
    64	  function initialize(
    65	    ILendingPool pool,
    66	    address treasury,
    67	    address underlyingAsset,
    68	    IAaveIncentivesController incentivesController,
    69	    uint8 aTokenDecimals,
    70	    string calldata aTokenName,
    71	    string calldata aTokenSymbol,
    72	    bytes calldata params
    73	  ) external override initializer {
    74	    uint256 chainId;
    75	
    76	    //solium-disable-next-line
    77	    assembly {
    78	      chainId := chainid()
    79	    }

thinking
**Analyzing AToken initializer and upgradeability risks**
codex
{"no_findings":false,"summary":"Found one high-severity upgradeability risk: the AToken initializer is externally callable without access control, enabling takeover if a proxy or instance is deployed without atomic initialization.","findings":[{"severity":"high","category":"upgradeability","title":"Unrestricted initializer allows takeover of uninitialized AToken instance/proxy","exploit_scenario":"If a new AToken proxy/instance is deployed and `initialize` is not called atomically, an attacker can call `initialize` first, set `_pool` to their address and `_underlyingAsset` to the real reserve asset, then use `transferUnderlyingTo`/`mint`/`burn` as the LendingPool to drain assets or mint arbitrary balances.","recommendation":"Ensure initialization happens atomically at deployment (constructor-based or factory call), or restrict `initialize` to a trusted deployer (e.g., addresses provider/admin). Consider locking the implementation with a constructor that sets `lastInitializedRevision` or a dedicated `_disableInitializers` pattern.","evidence":"`initialize` is `external` and only protected by `initializer`, with no caller restriction.","locations":["contracts/protocol/tokenization/AToken.sol:64"]}]}
tokens used
32,953
Metadata
{
    "codex": {
        "ran_at": "2026-01-11T08:45:12.483350+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 18,
        "import_count": 23,
        "first_party_contracts_count": 18
    },
    "summary": "Found one high-severity upgradeability risk: the AToken initializer is externally callable without access control, enabling takeover if a proxy or instance is deployed without atomic initialization.",
    "raw_final": {
        "summary": "Found one high-severity upgradeability risk: the AToken initializer is externally callable without access control, enabling takeover if a proxy or instance is deployed without atomic initialization.",
        "findings": [
            {
                "title": "Unrestricted initializer allows takeover of uninitialized AToken instance/proxy",
                "category": "upgradeability",
                "evidence": "`initialize` is `external` and only protected by `initializer`, with no caller restriction.",
                "severity": "high",
                "locations": [
                    "contracts/protocol/tokenization/AToken.sol:64"
                ],
                "recommendation": "Ensure initialization happens atomically at deployment (constructor-based or factory call), or restrict `initialize` to a trusted deployer (e.g., addresses provider/admin). Consider locking the implementation with a constructor that sets `lastInitializedRevision` or a dedicated `_disableInitializers` pattern.",
                "exploit_scenario": "If a new AToken proxy/instance is deployed and `initialize` is not called atomically, an attacker can call `initialize` first, set `_pool` to their address and `_underlyingAsset` to the real reserve asset, then use `transferUnderlyingTo`/`mint`/`burn` as the LendingPool to drain assets or mint arbitrary balances."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
2
CALL-family (heavy)
11
EXT*/BALANCE
9
Total opcodes
6869
Flags
create_opcodes_present heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLVALUE
00000006: DUP1
00000007: ISZERO
00000008: PUSH2 0x0010
0000000b: JUMPI
0000000c: PUSH1 0x00
0000000e: DUP1
0000000f: REVERT
00000010: JUMPDEST
00000011: POP
00000012: PUSH1 0x04
00000014: CALLDATASIZE
00000015: LT
00000016: PUSH2 0x01a5
00000019: JUMPI
0000001a: PUSH1 0x00
0000001c: CALLDATALOAD
0000001d: PUSH1 0xe0
0000001f: SHR
00000020: DUP1
00000021: PUSH4 0x7535d246
00000026: GT
00000027: PUSH2 0x00ef
0000002a: JUMPI
0000002b: DUP1
0000002c: PUSH4 0xae167335
00000031: GT
00000032: PUSH2 0x0092
00000035: JUMPI
00000036: DUP1
00000037: PUSH4 0xae167335
0000003c: EQ
0000003d: PUSH2 0x0626
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0xb16a19de
00000047: EQ
00000048: PUSH2 0x062e
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0xb1bf962d
00000052: EQ
00000053: PUSH2 0x0636
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0xb9844d8d
0000005d: EQ
0000005e: PUSH2 0x063e
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0xd505accf
00000068: EQ
00000069: PUSH2 0x0664
0000006c: JUMPI
0000006d: DUP1
0000006e: PUSH4 0xd7020d0a
00000073: EQ
00000074: PUSH2 0x06b5
00000077: JUMPI
00000078: DUP1
00000079: PUSH4 0xdd62ed3e
0000007e: EQ
0000007f: PUSH2 0x06f1
00000082: JUMPI
00000083: DUP1
00000084: PUSH4 0xf866c319
00000089: EQ
0000008a: PUSH2 0x071f
0000008d: JUMPI
0000008e: PUSH2 0x01a5
00000091: JUMP
00000092: JUMPDEST
00000093: DUP1
00000094: PUSH4 0x7535d246
00000099: EQ
0000009a: PUSH2 0x0543
0000009d: JUMPI
0000009e: DUP1
0000009f: PUSH4 0x75d26413
000000a4: EQ
000000a5: PUSH2 0x0567
000000a8: JUMPI
000000a9: DUP1
000000aa: PUSH4 0x78160376
000000af: EQ
000000b0: PUSH2 0x056f
000000b3: JUMPI
000000b4: DUP1
000000b5: PUSH4 0x7df5bd3b
000000ba: EQ
000000bb: PUSH2 0x0577
000000be: JUMPI
000000bf: DUP1
000000c0: PUSH4 0x88dd91a1
000000c5: EQ
000000c6: PUSH2 0x059a
000000c9: JUMPI
000000ca: DUP1
000000cb: PUSH4 0x95d89b41
000000d0: EQ
000000d1: PUSH2 0x05c6
000000d4: JUMPI
000000d5: DUP1
000000d6: PUSH4 0xa457c2d7
000000db: EQ
000000dc: PUSH2 0x05ce
000000df: JUMPI
000000e0: DUP1
000000e1: PUSH4 0xa9059cbb
000000e6: EQ
000000e7: PUSH2 0x05fa
000000ea: JUMPI
000000eb: PUSH2 0x01a5
000000ee: JUMP
000000ef: JUMPDEST
000000f0: DUP1
000000f1: PUSH4 0x1da24f3e
000000f6: GT
000000f7: PUSH2 0x0157
000000fa: JUMPI
000000fb: DUP1
000000fc: PUSH4 0x1da24f3e
00000101: EQ
00000102: PUSH2 0x043b
00000105: JUMPI
00000106: DUP1
00000107: PUSH4 0x23b872dd
0000010c: EQ
0000010d: PUSH2 0x0461
00000110: JUMPI
00000111: DUP1
00000112: PUSH4 0x30adf81f
00000117: EQ
00000118: PUSH2 0x0497
0000011b: JUMPI
0000011c: DUP1
0000011d: PUSH4 0x313ce567
00000122: EQ
00000123: PUSH2 0x049f
00000126: JUMPI
00000127: DUP1
00000128: PUSH4 0x3644e515
0000012d: EQ
0000012e: PUSH2 0x04bd
00000131: JUMPI
00000132: DUP1
00000133: PUSH4 0x39509351
00000138: EQ
00000139: PUSH2 0x04c5
0000013c: JUMPI
0000013d: DUP1
0000013e: PUSH4 0x4efecaa5
00000143: EQ
00000144: PUSH2 0x04f1
00000147: JUMPI
00000148: DUP1
00000149: PUSH4 0x70a08231
0000014e: EQ
0000014f: PUSH2 0x051d
00000152: JUMPI
00000153: PUSH2 0x01a5
00000156: JUMP
00000157: JUMPDEST
00000158: DUP1
00000159: PUSH4 0x06fdde03
0000015e: EQ
0000015f: PUSH2 0x01aa
00000162: JUMPI
00000163: DUP1
00000164: PUSH4 0x095ea7b3
00000169: EQ
0000016a: PUSH2 0x0227
0000016d: JUMPI
0000016e: DUP1
0000016f: PUSH4 0x0afbcdc9
00000174: EQ
00000175: PUSH2 0x0267
00000178: JUMPI
00000179: DUP1
0000017a: PUSH4 0x0bd7ad3b
0000017f: EQ
00000180: PUSH2 0x02a6
00000183: JUMPI
00000184: DUP1
00000185: PUSH4 0x156e29f6
0000018a: EQ
0000018b: PUSH2 0x02c0
0000018e: JUMPI
0000018f: DUP1
00000190: PUSH4 0x18160ddd
00000195: EQ
00000196: PUSH2 0x02f2
00000199: JUMPI
0000019a: DUP1
0000019b: PUSH4 0x183fb413
000001a0: EQ
000001a1: PUSH2 0x02fa
000001a4: JUMPI
000001a5: JUMPDEST
000001a6: PUSH1 0x00
000001a8: DUP1
000001a9: REVERT
000001aa: JUMPDEST
000001ab: PUSH2 0x01b2
000001ae: PUSH2 0x0755
000001b1: JUMP
000001b2: JUMPDEST
000001b3: PUSH1 0x40
000001b5: DUP1
000001b6: MLOAD
000001b7: PUSH1 0x20
000001b9: DUP1
000001ba: DUP3
000001bb: MSTORE
000001bc: DUP4
000001bd: MLOAD
000001be: DUP2
000001bf: DUP4
000001c0: ADD
000001c1: MSTORE
000001c2: DUP4
000001c3: MLOAD
000001c4: SWAP2
000001c5: SWAP3
000001c6: DUP4
000001c7: SWAP3
000001c8: SWAP1
000001c9: DUP4
000001ca: ADD
000001cb: SWAP2
000001cc: DUP6
000001cd: ADD
000001ce: SWAP1
000001cf: DUP1
000001d0: DUP4
000001d1: DUP4
000001d2: PUSH1 0x00
000001d4: JUMPDEST
000001d5: DUP4
000001d6: DUP2
000001d7: LT
000001d8: ISZERO
000001d9: PUSH2 0x01ec
000001dc: JUMPI
000001dd: DUP2
000001de: DUP2
000001df: ADD
000001e0: MLOAD
000001e1: DUP4
000001e2: DUP3
000001e3: ADD
000001e4: MSTORE
000001e5: PUSH1 0x20
000001e7: ADD
000001e8: PUSH2 0x01d4
000001eb: JUMP
000001ec: JUMPDEST
000001ed: POP
000001ee: POP
000001ef: POP
000001f0: POP
000001f1: SWAP1
000001f2: POP
000001f3: SWAP1
000001f4: DUP2
000001f5: ADD
000001f6: SWAP1
000001f7: PUSH1 0x1f
000001f9: AND
000001fa: DUP1
000001fb: ISZERO
000001fc: PUSH2 0x0219
000001ff: JUMPI
00000200: DUP1
00000201: DUP3
00000202: SUB
00000203: DUP1
00000204: MLOAD
00000205: PUSH1 0x01
00000207: DUP4
00000208: PUSH1 0x20
0000020a: SUB
0000020b: PUSH2 0x0100
0000020e: EXP
0000020f: SUB
00000210: NOT
00000211: AND
00000212: DUP2
00000213: MSTORE
00000214: PUSH1 0x20
00000216: ADD
00000217: SWAP2
00000218: POP
00000219: JUMPDEST
0000021a: POP
0000021b: SWAP3
0000021c: POP
0000021d: POP
0000021e: POP
0000021f: PUSH1 0x40
00000221: MLOAD
00000222: DUP1
00000223: SWAP2
00000224: SUB
00000225: SWAP1
00000226: RETURN
00000227: JUMPDEST
00000228: PUSH2 0x0253
0000022b: PUSH1 0x04
0000022d: DUP1
0000022e: CALLDATASIZE
0000022f: SUB
00000230: PUSH1 0x40
00000232: DUP2
00000233: LT
00000234: ISZERO
00000235: PUSH2 0x023d
00000238: JUMPI
00000239: PUSH1 0x00
0000023b: DUP1
0000023c: REVERT
0000023d: JUMPDEST
0000023e: POP
0000023f: PUSH1 0x01
00000241: PUSH1 0x01
00000243: PUSH1 0xa0
00000245: SHL
00000246: SUB
00000247: DUP2
00000248: CALLDATALOAD
00000249: AND
0000024a: SWAP1
0000024b: PUSH1 0x20
0000024d: ADD
0000024e: CALLDATALOAD
0000024f: PUSH2 0x07ec
00000252: JUMP
00000253: JUMPDEST
00000254: PUSH1 0x40
00000256: DUP1
00000257: MLOAD
00000258: SWAP2
00000259: ISZERO
0000025a: ISZERO
0000025b: DUP3
0000025c: MSTORE
0000025d: MLOAD
0000025e: SWAP1
0000025f: DUP2
00000260: SWAP1
00000261: SUB
00000262: PUSH1 0x20
00000264: ADD
00000265: SWAP1
00000266: RETURN
00000267: JUMPDEST
00000268: PUSH2 0x028d
0000026b: PUSH1 0x04
0000026d: DUP1
0000026e: CALLDATASIZE
0000026f: SUB
00000270: PUSH1 0x20
00000272: DUP2
00000273: LT
00000274: ISZERO
00000275: PUSH2 0x027d
00000278: JUMPI
00000279: PUSH1 0x00
0000027b: DUP1
0000027c: REVERT
0000027d: JUMPDEST
0000027e: POP
0000027f: CALLDATALOAD
00000280: PUSH1 0x01
00000282: PUSH1 0x01
00000284: PUSH1 0xa0
00000286: SHL
00000287: SUB
00000288: AND
00000289: PUSH2 0x080a
0000028c: JUMP
0000028d: JUMPDEST
0000028e: PUSH1 0x40
00000290: DUP1
00000291: MLOAD
00000292: SWAP3
00000293: DUP4
00000294: MSTORE
00000295: PUSH1 0x20
00000297: DUP4
00000298: ADD
00000299: SWAP2
0000029a: SWAP1
0000029b: SWAP2
0000029c: MSTORE
0000029d: DUP1
0000029e: MLOAD
0000029f: SWAP2
000002a0: DUP3
000002a1: SWAP1
000002a2: SUB
000002a3: ADD
000002a4: SWAP1
000002a5: RETURN
000002a6: JUMPDEST
000002a7: PUSH2 0x02ae
000002aa: PUSH2 0x0827
000002ad: JUMP
000002ae: JUMPDEST
000002af: PUSH1 0x40
000002b1: DUP1
000002b2: MLOAD
000002b3: SWAP2
000002b4: DUP3
000002b5: MSTORE
000002b6: MLOAD
000002b7: SWAP1
000002b8: DUP2
000002b9: SWAP1
000002ba: SUB
000002bb: PUSH1 0x20
000002bd: ADD
000002be: SWAP1
000002bf: RETURN
000002c0: JUMPDEST
000002c1: PUSH2 0x0253
000002c4: PUSH1 0x04
000002c6: DUP1
000002c7: CALLDATASIZE
000002c8: SUB
000002c9: PUSH1 0x60
000002cb: DUP2
000002cc: LT
000002cd: ISZERO
000002ce: PUSH2 0x02d6
000002d1: JUMPI
000002d2: PUSH1 0x00
000002d4: DUP1
000002d5: REVERT
000002d6: JUMPDEST
000002d7: POP
000002d8: PUSH1 0x01
000002da: PUSH1 0x01
000002dc: PUSH1 0xa0
000002de: SHL
000002df: SUB
000002e0: DUP2
000002e1: CALLDATALOAD
000002e2: AND
000002e3: SWAP1
000002e4: PUSH1 0x20
000002e6: DUP2
000002e7: ADD
000002e8: CALLDATALOAD
000002e9: SWAP1
000002ea: PUSH1 0x40
000002ec: ADD
000002ed: CALLDATALOAD
000002ee: PUSH2 0x082c
000002f1: JUMP
000002f2: JUMPDEST
000002f3: PUSH2 0x02ae
000002f6: PUSH2 0x09fa
000002f9: JUMP
000002fa: JUMPDEST
000002fb: PUSH2 0x0439
000002fe: PUSH1 0x04
00000300: DUP1
00000301: CALLDATASIZE
00000302: SUB
00000303: PUSH2 0x0100
00000306: DUP2
00000307: LT
00000308: ISZERO
00000309: PUSH2 0x0311
0000030c: JUMPI
0000030d: PUSH1 0x00
0000030f: DUP1
00000310: REVERT
00000311: JUMPDEST
00000312: PUSH1 0x01
00000314: PUSH1 0x01
00000316: PUSH1 0xa0
00000318: SHL
00000319: SUB
0000031a: DUP3
0000031b: CALLDATALOAD
0000031c: DUP2
0000031d: AND
0000031e: SWAP3
0000031f: PUSH1 0x20
00000321: DUP2
00000322: ADD
00000323: CALLDATALOAD
00000324: DUP3
00000325: AND
00000326: SWAP3
00000327: PUSH1 0x40
00000329: DUP3
0000032a: ADD
0000032b: CALLDATALOAD
0000032c: DUP4
0000032d: AND
0000032e: SWAP3
0000032f: PUSH1 0x60
00000331: DUP4
00000332: ADD
00000333: CALLDATALOAD
00000334: AND
00000335: SWAP2
00000336: PUSH1 0xff
00000338: PUSH1 0x80
0000033a: DUP3
0000033b: ADD
0000033c: CALLDATALOAD
0000033d: AND
0000033e: SWAP2
0000033f: DUP2
00000340: ADD
00000341: SWAP1
00000342: PUSH1 0xc0
00000344: DUP2
00000345: ADD
00000346: PUSH1 0xa0
00000348: DUP3
00000349: ADD
0000034a: CALLDATALOAD
0000034b: PUSH1 0x01
0000034d: PUSH1 0x20
0000034f: SHL
00000350: DUP2
00000351: GT
00000352: ISZERO
00000353: PUSH2 0x035b
00000356: JUMPI
00000357: PUSH1 0x00
00000359: DUP1
0000035a: REVERT
0000035b: JUMPDEST
0000035c: DUP3
0000035d: ADD
0000035e: DUP4
0000035f: PUSH1 0x20
00000361: DUP3
00000362: ADD
00000363: GT
00000364: ISZERO
00000365: PUSH2 0x036d
00000368: JUMPI
00000369: PUSH1 0x00
0000036b: DUP1
0000036c: REVERT
0000036d: JUMPDEST
0000036e: DUP1
0000036f: CALLDATALOAD
00000370: SWAP1
00000371: PUSH1 0x20
00000373: ADD
00000374: SWAP2
00000375: DUP5
00000376: PUSH1 0x01
00000378: DUP4
00000379: MUL
0000037a: DUP5
0000037b: ADD
0000037c: GT
0000037d: PUSH1 0x01
0000037f: PUSH1 0x20
00000381: SHL
00000382: DUP4
00000383: GT
00000384: OR
00000385: ISZERO
00000386: PUSH2 0x038e
00000389: JUMPI
0000038a: PUSH1 0x00
0000038c: DUP1
0000038d: REVERT
0000038e: JUMPDEST
0000038f: SWAP2
00000390: SWAP4
00000391: SWAP1
00000392: SWAP3
00000393: SWAP1
00000394: SWAP2
00000395: PUSH1 0x20
00000397: DUP2
00000398: ADD
00000399: SWAP1
0000039a: CALLDATALOAD
0000039b: PUSH1 0x01
0000039d: PUSH1 0x20
0000039f: SHL
000003a0: DUP2
000003a1: GT
000003a2: ISZERO
000003a3: PUSH2 0x03ab
000003a6: JUMPI
000003a7: PUSH1 0x00
000003a9: DUP1
000003aa: REVERT
000003ab: JUMPDEST
000003ac: DUP3
000003ad: ADD
000003ae: DUP4
000003af: PUSH1 0x20
000003b1: DUP3
000003b2: ADD
000003b3: GT
000003b4: ISZERO
000003b5: PUSH2 0x03bd
000003b8: JUMPI
000003b9: PUSH1 0x00
000003bb: DUP1
000003bc: REVERT
000003bd: JUMPDEST
000003be: DUP1
000003bf: CALLDATALOAD
000003c0: SWAP1
000003c1: PUSH1 0x20
000003c3: ADD
000003c4: SWAP2
000003c5: DUP5
000003c6: PUSH1 0x01
000003c8: DUP4
000003c9: MUL
000003ca: DUP5
000003cb: ADD
000003cc: GT
000003cd: PUSH1 0x01
000003cf: PUSH1 0x20
000003d1: SHL
000003d2: DUP4
000003d3: GT
000003d4: OR
000003d5: ISZERO
000003d6: PUSH2 0x03de
000003d9: JUMPI
000003da: PUSH1 0x00
000003dc: DUP1
000003dd: REVERT
000003de: JUMPDEST
000003df: SWAP2
000003e0: SWAP4
000003e1: SWAP1
000003e2: SWAP3
000003e3: SWAP1
000003e4: SWAP2
000003e5: PUSH1 0x20
000003e7: DUP2
000003e8: ADD
000003e9: SWAP1
000003ea: CALLDATALOAD
000003eb: PUSH1 0x01
000003ed: PUSH1 0x20
000003ef: SHL
000003f0: DUP2
000003f1: GT
000003f2: ISZERO
000003f3: PUSH2 0x03fb
000003f6: JUMPI
000003f7: PUSH1 0x00
000003f9: DUP1
000003fa: REVERT
000003fb: JUMPDEST
000003fc: DUP3
000003fd: ADD
000003fe: DUP4
000003ff: PUSH1 0x20
00000401: DUP3
00000402: ADD
00000403: GT
00000404: ISZERO
00000405: PUSH2 0x040d
00000408: JUMPI
00000409: PUSH1 0x00
0000040b: DUP1
0000040c: REVERT
0000040d: JUMPDEST
0000040e: DUP1
0000040f: CALLDATALOAD
00000410: SWAP1
00000411: PUSH1 0x20
00000413: ADD
00000414: SWAP2
00000415: DUP5
00000416: PUSH1 0x01
00000418: DUP4
00000419: MUL
0000041a: DUP5
0000041b: ADD
0000041c: GT
0000041d: PUSH1 0x01
0000041f: PUSH1 0x20
00000421: SHL
00000422: DUP4
00000423: GT
00000424: OR
00000425: ISZERO
00000426: PUSH2 0x042e
00000429: JUMPI
0000042a: PUSH1 0x00
0000042c: DUP1
0000042d: REVERT
0000042e: JUMPDEST
0000042f: POP
00000430: SWAP1
00000431: SWAP3
00000432: POP
00000433: SWAP1
00000434: POP
00000435: PUSH2 0x0aa4
00000438: JUMP
00000439: JUMPDEST
0000043a: STOP
0000043b: JUMPDEST
0000043c: PUSH2 0x02ae
0000043f: PUSH1 0x04
00000441: DUP1
00000442: CALLDATASIZE
00000443: SUB
00000444: PUSH1 0x20
00000446: DUP2
00000447: LT
00000448: ISZERO
00000449: PUSH2 0x0451
0000044c: JUMPI
0000044d: PUSH1 0x00
0000044f: DUP1
00000450: REVERT
00000451: JUMPDEST
00000452: POP
00000453: CALLDATALOAD
00000454: PUSH1 0x01
00000456: PUSH1 0x01
00000458: PUSH1 0xa0
0000045a: SHL
0000045b: SUB
0000045c: AND
0000045d: PUSH2 0x0e21
00000460: JUMP
00000461: JUMPDEST
00000462: PUSH2 0x0253
00000465: PUSH1 0x04
00000467: DUP1
00000468: CALLDATASIZE
00000469: SUB
0000046a: PUSH1 0x60
0000046c: DUP2
0000046d: LT
0000046e: ISZERO
0000046f: PUSH2 0x0477
00000472: JUMPI
00000473: PUSH1 0x00
00000475: DUP1
00000476: REVERT
00000477: JUMPDEST
00000478: POP
00000479: PUSH1 0x01
0000047b: PUSH1 0x01
0000047d: PUSH1 0xa0
0000047f: SHL
00000480: SUB
00000481: DUP2
00000482: CALLDATALOAD
00000483: DUP2
00000484: AND
00000485: SWAP2
00000486: PUSH1 0x20
00000488: DUP2
00000489: ADD
0000048a: CALLDATALOAD
0000048b: SWAP1
0000048c: SWAP2
0000048d: AND
0000048e: SWAP1
0000048f: PUSH1 0x40
00000491: ADD
00000492: CALLDATALOAD
00000493: PUSH2 0x0e2c
00000496: JUMP
00000497: JUMPDEST
00000498: PUSH2 0x02ae
0000049b: PUSH2 0x0eec
0000049e: JUMP
0000049f: JUMPDEST
000004a0: PUSH2 0x04a7
000004a3: PUSH2 0x0f10
000004a6: JUMP
000004a7: JUMPDEST
000004a8: PUSH1 0x40
000004aa: DUP1
000004ab: MLOAD
000004ac: PUSH1 0xff
000004ae: SWAP1
000004af: SWAP3
000004b0: AND
000004b1: DUP3
000004b2: MSTORE
000004b3: MLOAD
000004b4: SWAP1
000004b5: DUP2
000004b6: SWAP1
000004b7: SUB
000004b8: PUSH1 0x20
000004ba: ADD
000004bb: SWAP1
000004bc: RETURN
000004bd: JUMPDEST
000004be: PUSH2 0x02ae
000004c1: PUSH2 0x0f19
000004c4: JUMP
000004c5: JUMPDEST
000004c6: PUSH2 0x0253
000004c9: PUSH1 0x04
000004cb: DUP1
000004cc: CALLDATASIZE
000004cd: SUB
000004ce: PUSH1 0x40
000004d0: DUP2
000004d1: LT
000004d2: ISZERO
000004d3: PUSH2 0x04db
000004d6: JUMPI
000004d7: PUSH1 0x00
000004d9: DUP1
000004da: REVERT
000004db: JUMPDEST
000004dc: POP
000004dd: PUSH1 0x01
000004df: PUSH1 0x01
000004e1: PUSH1 0xa0
000004e3: SHL
000004e4: SUB
000004e5: DUP2
000004e6: CALLDATALOAD
000004e7: AND
000004e8: SWAP1
000004e9: PUSH1 0x20
000004eb: ADD
000004ec: CALLDATALOAD
000004ed: PUSH2 0x0f1f
000004f0: JUMP
000004f1: JUMPDEST
000004f2: PUSH2 0x02ae
000004f5: PUSH1 0x04
000004f7: DUP1
000004f8: CALLDATASIZE
000004f9: SUB
000004fa: PUSH1 0x40
000004fc: DUP2
000004fd: LT
000004fe: ISZERO
000004ff: PUSH2 0x0507
00000502: JUMPI
00000503: PUSH1 0x00
00000505: DUP1
00000506: REVERT
00000507: JUMPDEST
00000508: POP
00000509: PUSH1 0x01
0000050b: PUSH1 0x01
0000050d: PUSH1 0xa0
0000050f: SHL
00000510: SUB
00000511: DUP2
00000512: CALLDATALOAD
00000513: AND
00000514: SWAP1
00000515: PUSH1 0x20
00000517: ADD
00000518: CALLDATALOAD
00000519: PUSH2 0x0f6d
0000051c: JUMP
0000051d: JUMPDEST
0000051e: PUSH2 0x02ae
00000521: PUSH1 0x04
00000523: DUP1
00000524: CALLDATASIZE
00000525: SUB
00000526: PUSH1 0x20
00000528: DUP2
00000529: LT
0000052a: ISZERO
0000052b: PUSH2 0x0533
0000052e: JUMPI
0000052f: PUSH1 0x00
00000531: DUP1
00000532: REVERT
00000533: JUMPDEST
00000534: POP
00000535: CALLDATALOAD
00000536: PUSH1 0x01
00000538: PUSH1 0x01
0000053a: PUSH1 0xa0
0000053c: SHL
0000053d: SUB
0000053e: AND
0000053f: PUSH2 0x1013
00000542: JUMP
00000543: JUMPDEST
00000544: PUSH2 0x054b
00000547: PUSH2 0x10a2
0000054a: JUMP
0000054b: JUMPDEST
0000054c: PUSH1 0x40
0000054e: DUP1
0000054f: MLOAD
00000550: PUSH1 0x01
00000552: PUSH1 0x01
00000554: PUSH1 0xa0
00000556: SHL
00000557: SUB
00000558: SWAP1
00000559: SWAP3
0000055a: AND
0000055b: DUP3
0000055c: MSTORE
0000055d: MLOAD
0000055e: SWAP1
0000055f: DUP2
00000560: SWAP1
00000561: SUB
00000562: PUSH1 0x20
00000564: ADD
00000565: SWAP1
00000566: RETURN
00000567: JUMPDEST
00000568: PUSH2 0x054b
0000056b: PUSH2 0x10b1
0000056e: JUMP
0000056f: JUMPDEST
00000570: PUSH2 0x01b2
00000573: PUSH2 0x10c0
00000576: JUMP
00000577: JUMPDEST
00000578: PUSH2 0x0439
0000057b: PUSH1 0x04
0000057d: DUP1
0000057e: CALLDATASIZE
0000057f: SUB
00000580: PUSH1 0x40
00000582: DUP2
00000583: LT
00000584: ISZERO
00000585: PUSH2 0x058d
00000588: JUMPI
00000589: PUSH1 0x00
0000058b: DUP1
0000058c: REVERT
0000058d: JUMPDEST
0000058e: POP
0000058f: DUP1
00000590: CALLDATALOAD
00000591: SWAP1
00000592: PUSH1 0x20
00000594: ADD
00000595: CALLDATALOAD
00000596: PUSH2 0x10dd
00000599: JUMP
0000059a: JUMPDEST
0000059b: PUSH2 0x0439
0000059e: PUSH1 0x04
000005a0: DUP1
000005a1: CALLDATASIZE
000005a2: SUB
000005a3: PUSH1 0x40
000005a5: DUP2
000005a6: LT
000005a7: ISZERO
000005a8: PUSH2 0x05b0
000005ab: JUMPI
000005ac: PUSH1 0x00
000005ae: DUP1
000005af: REVERT
000005b0: JUMPDEST
000005b1: POP
000005b2: PUSH1 0x01
000005b4: PUSH1 0x01
000005b6: PUSH1 0xa0
000005b8: SHL
000005b9: SUB
000005ba: DUP2
000005bb: CALLDATALOAD
000005bc: AND
000005bd: SWAP1
000005be: PUSH1 0x20
000005c0: ADD
000005c1: CALLDATALOAD
000005c2: PUSH2 0x1204
000005c5: JUMP
000005c6: JUMPDEST
000005c7: PUSH2 0x01b2
000005ca: PUSH2 0x128e
000005cd: JUMP
000005ce: JUMPDEST
000005cf: PUSH2 0x0253
000005d2: PUSH1 0x04
000005d4: DUP1
000005d5: CALLDATASIZE
000005d6: SUB
000005d7: PUSH1 0x40
000005d9: DUP2
000005da: LT
000005db: ISZERO
000005dc: PUSH2 0x05e4
000005df: JUMPI
000005e0: PUSH1 0x00
000005e2: DUP1
000005e3: REVERT
000005e4: JUMPDEST
000005e5: POP
000005e6: PUSH1 0x01
000005e8: PUSH1 0x01
000005ea: PUSH1 0xa0
000005ec: SHL
000005ed: SUB
000005ee: DUP2
000005ef: CALLDATALOAD
000005f0: AND
000005f1: SWAP1
000005f2: PUSH1 0x20
000005f4: ADD
000005f5: CALLDATALOAD
000005f6: PUSH2 0x12ef
000005f9: JUMP
000005fa: JUMPDEST
000005fb: PUSH2 0x0253
000005fe: PUSH1 0x04
00000600: DUP1
00000601: CALLDATASIZE
00000602: SUB
00000603: PUSH1 0x40
00000605: DUP2
00000606: LT
00000607: ISZERO
00000608: PUSH2 0x0610
0000060b: JUMPI
0000060c: PUSH1 0x00
0000060e: DUP1
0000060f: REVERT
00000610: JUMPDEST
00000611: POP
00000612: PUSH1 0x01
00000614: PUSH1 0x01
00000616: PUSH1 0xa0
00000618: SHL
00000619: SUB
0000061a: DUP2
0000061b: CALLDATALOAD
0000061c: AND
0000061d: SWAP1
0000061e: PUSH1 0x20
00000620: ADD
00000621: CALLDATALOAD
00000622: PUSH2 0x1357
00000625: JUMP
00000626: JUMPDEST
00000627: PUSH2 0x054b
0000062a: PUSH2 0x13b4
0000062d: JUMP
0000062e: JUMPDEST
0000062f: PUSH2 0x054b
00000632: PUSH2 0x13c3
00000635: JUMP
00000636: JUMPDEST
00000637: PUSH2 0x02ae
0000063a: PUSH2 0x13d2
0000063d: JUMP
0000063e: JUMPDEST
0000063f: PUSH2 0x02ae
00000642: PUSH1 0x04
00000644: DUP1
00000645: CALLDATASIZE
00000646: SUB
00000647: PUSH1 0x20
00000649: DUP2
0000064a: LT
0000064b: ISZERO
0000064c: PUSH2 0x0654
0000064f: JUMPI
00000650: PUSH1 0x00
00000652: DUP1
00000653: REVERT
00000654: JUMPDEST
00000655: POP
00000656: CALLDATALOAD
00000657: PUSH1 0x01
00000659: PUSH1 0x01
0000065b: PUSH1 0xa0
0000065d: SHL
0000065e: SUB
0000065f: AND
00000660: PUSH2 0x13dc
00000663: JUMP
00000664: JUMPDEST
00000665: PUSH2 0x0439
00000668: PUSH1 0x04
0000066a: DUP1
0000066b: CALLDATASIZE
0000066c: SUB
0000066d: PUSH1 0xe0
0000066f: DUP2
00000670: LT
00000671: ISZERO
00000672: PUSH2 0x067a
00000675: JUMPI
00000676: PUSH1 0x00
00000678: DUP1
00000679: REVERT
0000067a: JUMPDEST
0000067b: POP
0000067c: PUSH1 0x01
0000067e: PUSH1 0x01
00000680: PUSH1 0xa0
00000682: SHL
00000683: SUB
00000684: DUP2
00000685: CALLDATALOAD
00000686: DUP2
00000687: AND
00000688: SWAP2
00000689: PUSH1 0x20
0000068b: DUP2
0000068c: ADD
0000068d: CALLDATALOAD
0000068e: SWAP1
0000068f: SWAP2
00000690: AND
00000691: SWAP1
00000692: PUSH1 0x40
00000694: DUP2
00000695: ADD
00000696: CALLDATALOAD
00000697: SWAP1
00000698: PUSH1 0x60
0000069a: DUP2
0000069b: ADD
0000069c: CALLDATALOAD
0000069d: SWAP1
0000069e: PUSH1 0xff
000006a0: PUSH1 0x80
000006a2: DUP3
000006a3: ADD
000006a4: CALLDATALOAD
000006a5: AND
000006a6: SWAP1
000006a7: PUSH1 0xa0
000006a9: DUP2
000006aa: ADD
000006ab: CALLDATALOAD
000006ac: SWAP1
000006ad: PUSH1 0xc0
000006af: ADD
000006b0: CALLDATALOAD
000006b1: PUSH2 0x13ee
000006b4: JUMP
000006b5: JUMPDEST
000006b6: PUSH2 0x0439
000006b9: PUSH1 0x04
000006bb: DUP1
000006bc: CALLDATASIZE
000006bd: SUB
000006be: PUSH1 0x80
000006c0: DUP2
000006c1: LT
000006c2: ISZERO
000006c3: PUSH2 0x06cb
000006c6: JUMPI
000006c7: PUSH1 0x00
000006c9: DUP1
000006ca: REVERT
000006cb: JUMPDEST
000006cc: POP
000006cd: PUSH1 0x01
000006cf: PUSH1 0x01
000006d1: PUSH1 0xa0
000006d3: SHL
000006d4: SUB
000006d5: DUP2
000006d6: CALLDATALOAD
000006d7: DUP2
000006d8: AND
000006d9: SWAP2
000006da: PUSH1 0x20
000006dc: DUP2
000006dd: ADD
000006de: CALLDATALOAD
000006df: SWAP1
000006e0: SWAP2
000006e1: AND
000006e2: SWAP1
000006e3: PUSH1 0x40
000006e5: DUP2
000006e6: ADD
000006e7: CALLDATALOAD
000006e8: SWAP1
000006e9: PUSH1 0x60
000006eb: ADD
000006ec: CALLDATALOAD
000006ed: PUSH2 0x1635
000006f0: JUMP
000006f1: JUMPDEST
000006f2: PUSH2 0x02ae
000006f5: PUSH1 0x04
000006f7: DUP1
000006f8: CALLDATASIZE
000006f9: SUB
000006fa: PUSH1 0x40
000006fc: DUP2
000006fd: LT
000006fe: ISZERO
000006ff: PUSH2 0x0707
00000702: JUMPI
00000703: PUSH1 0x00
00000705: DUP1
00000706: REVERT
00000707: JUMPDEST
00000708: POP
00000709: PUSH1 0x01
0000070b: PUSH1 0x01
0000070d: PUSH1 0xa0
0000070f: SHL
00000710: SUB
00000711: DUP2
00000712: CALLDATALOAD
00000713: DUP2
00000714: AND
00000715: SWAP2
00000716: PUSH1 0x20
00000718: ADD
00000719: CALLDATALOAD
0000071a: AND
0000071b: PUSH2 0x17da
0000071e: JUMP
0000071f: JUMPDEST
00000720: PUSH2 0x0439
00000723: PUSH1 0x04
00000725: DUP1
00000726: CALLDATASIZE
00000727: SUB
00000728: PUSH1 0x60
0000072a: DUP2
0000072b: LT
0000072c: ISZERO
0000072d: PUSH2 0x0735
00000730: JUMPI
00000731: PUSH1 0x00
00000733: DUP1
00000734: REVERT
00000735: JUMPDEST
00000736: POP
00000737: PUSH1 0x01
00000739: PUSH1 0x01
0000073b: PUSH1 0xa0
0000073d: SHL
0000073e: SUB
0000073f: DUP2
00000740: CALLDATALOAD
00000741: DUP2
00000742: AND
00000743: SWAP2
00000744: PUSH1 0x20
00000746: DUP2
00000747: ADD
00000748: CALLDATALOAD
00000749: SWAP1
0000074a: SWAP2
0000074b: AND
0000074c: SWAP1
0000074d: PUSH1 0x40
0000074f: ADD
00000750: CALLDATALOAD
00000751: PUSH2 0x1805
00000754: JUMP
00000755: JUMPDEST
00000756: PUSH1 0x37
00000758: DUP1
00000759: SLOAD
0000075a: PUSH1 0x40
0000075c: DUP1
0000075d: MLOAD
0000075e: PUSH1 0x20
00000760: PUSH1 0x1f
00000762: PUSH1 0x02
00000764: PUSH1 0x00
00000766: NOT
00000767: PUSH2 0x0100
0000076a: PUSH1 0x01
0000076c: DUP9
0000076d: AND
0000076e: ISZERO
0000076f: MUL
00000770: ADD
00000771: SWAP1
00000772: SWAP6
00000773: AND
00000774: SWAP5
00000775: SWAP1
00000776: SWAP5
00000777: DIV
00000778: SWAP4
00000779: DUP5
0000077a: ADD
0000077b: DUP2
0000077c: SWAP1
0000077d: DIV
0000077e: DUP2
0000077f: MUL
00000780: DUP3
00000781: ADD
00000782: DUP2
00000783: ADD
00000784: SWAP1
00000785: SWAP3
00000786: MSTORE
00000787: DUP3
00000788: DUP2
00000789: MSTORE
0000078a: PUSH1 0x60
0000078c: SWAP4
0000078d: SWAP1
0000078e: SWAP3
0000078f: SWAP1
00000790: SWAP2
00000791: DUP4
00000792: ADD
00000793: DUP3
00000794: DUP3
00000795: DUP1
00000796: ISZERO
00000797: PUSH2 0x07e1
0000079a: JUMPI
0000079b: DUP1
0000079c: PUSH1 0x1f
0000079e: LT
0000079f: PUSH2 0x07b6
000007a2: JUMPI
000007a3: PUSH2 0x0100
000007a6: DUP1
000007a7: DUP4
000007a8: SLOAD
000007a9: DIV
000007aa: MUL
000007ab: DUP4
000007ac: MSTORE
000007ad: SWAP2
000007ae: PUSH1 0x20
000007b0: ADD
000007b1: SWAP2
000007b2: PUSH2 0x07e1
000007b5: JUMP
000007b6: JUMPDEST
000007b7: DUP3
000007b8: ADD
000007b9: SWAP2
000007ba: SWAP1
000007bb: PUSH1 0x00
000007bd: MSTORE
000007be: PUSH1 0x20
000007c0: PUSH1 0x00
000007c2: KECCAK256
000007c3: SWAP1
000007c4: JUMPDEST
000007c5: DUP2
000007c6: SLOAD
000007c7: DUP2
000007c8: MSTORE
000007c9: SWAP1
000007ca: PUSH1 0x01
000007cc: ADD
000007cd: SWAP1
000007ce: PUSH1 0x20
000007d0: ADD
000007d1: DUP1
000007d2: DUP4
000007d3: GT
000007d4: PUSH2 0x07c4
000007d7: JUMPI
000007d8: DUP3
000007d9: SWAP1
000007da: SUB
000007db: PUSH1 0x1f
000007dd: AND
000007de: DUP3
000007df: ADD
000007e0: SWAP2
000007e1: JUMPDEST
000007e2: POP
000007e3: POP
000007e4: POP
000007e5: POP
000007e6: POP
000007e7: SWAP1
000007e8: POP
000007e9: JUMPDEST
000007ea: SWAP1
000007eb: JUMP
000007ec: JUMPDEST
000007ed: PUSH1 0x00
000007ef: PUSH2 0x0800
000007f2: PUSH2 0x07f9
000007f5: PUSH2 0x18d6
000007f8: JUMP
000007f9: JUMPDEST
000007fa: DUP5
000007fb: DUP5
000007fc: PUSH2 0x18da
000007ff: JUMP
00000800: JUMPDEST
00000801: POP
00000802: PUSH1 0x01
00000804: JUMPDEST
00000805: SWAP3
00000806: SWAP2
00000807: POP
00000808: POP
00000809: JUMP
0000080a: JUMPDEST
0000080b: PUSH1 0x00
0000080d: DUP1
0000080e: PUSH2 0x0816
00000811: DUP4
00000812: PUSH2 0x19c6
00000815: JUMP
00000816: JUMPDEST
00000817: PUSH2 0x081e
0000081a: PUSH2 0x19e1
0000081d: JUMP
0000081e: JUMPDEST
0000081f: SWAP2
00000820: POP
00000821: SWAP2
00000822: POP
00000823: SWAP2
00000824: POP
00000825: SWAP2
00000826: JUMP
00000827: JUMPDEST
00000828: PUSH1 0x01
0000082a: DUP2
0000082b: JUMP
0000082c: JUMPDEST
0000082d: PUSH1 0x3c
0000082f: SLOAD
00000830: PUSH1 0x00
00000832: SWAP1
00000833: PUSH1 0x01
00000835: PUSH1 0x01
00000837: PUSH1 0xa0
00000839: SHL
0000083a: SUB
0000083b: AND
0000083c: PUSH2 0x0843
0000083f: PUSH2 0x18d6
00000842: JUMP
00000843: JUMPDEST
00000844: PUSH1 0x01
00000846: PUSH1 0x01
00000848: PUSH1 0xa0
0000084a: SHL
0000084b: SUB
0000084c: AND
0000084d: EQ
0000084e: PUSH1 0x40
00000850: MLOAD
00000851: DUP1
00000852: PUSH1 0x40
00000854: ADD
00000855: PUSH1 0x40
00000857: MSTORE
00000858: DUP1
00000859: PUSH1 0x02
0000085b: DUP2
0000085c: MSTORE
0000085d: PUSH1 0x20
0000085f: ADD
00000860: PUSH2 0x3239
00000863: PUSH1 0xf0
00000865: SHL
00000866: DUP2
00000867: MSTORE
00000868: POP
00000869: SWAP1
0000086a: PUSH2 0x08f1
0000086d: JUMPI
0000086e: PUSH1 0x40
00000870: MLOAD
00000871: PUSH3 0x461bcd
00000875: PUSH1 0xe5
00000877: SHL
00000878: DUP2
00000879: MSTORE
0000087a: PUSH1 0x04
0000087c: ADD
0000087d: DUP1
0000087e: DUP1
0000087f: PUSH1 0x20
00000881: ADD
00000882: DUP3
00000883: DUP2
00000884: SUB
00000885: DUP3
00000886: MSTORE
00000887: DUP4
00000888: DUP2
00000889: DUP2
0000088a: MLOAD
0000088b: DUP2
0000088c: MSTORE
0000088d: PUSH1 0x20
0000088f: ADD
00000890: SWAP2
00000891: POP
00000892: DUP1
00000893: MLOAD
00000894: SWAP1
00000895: PUSH1 0x20
00000897: ADD
00000898: SWAP1
00000899: DUP1
0000089a: DUP4
0000089b: DUP4
0000089c: PUSH1 0x00
0000089e: JUMPDEST
0000089f: DUP4
000008a0: DUP2
000008a1: LT
000008a2: ISZERO
000008a3: PUSH2 0x08b6
000008a6: JUMPI
000008a7: DUP2
000008a8: DUP2
000008a9: ADD
000008aa: MLOAD
000008ab: DUP4
000008ac: DUP3
000008ad: ADD
000008ae: MSTORE
000008af: PUSH1 0x20
000008b1: ADD
000008b2: PUSH2 0x089e
000008b5: JUMP
000008b6: JUMPDEST
000008b7: POP
000008b8: POP
000008b9: POP
000008ba: POP
000008bb: SWAP1
000008bc: POP
000008bd: SWAP1
000008be: DUP2
000008bf: ADD
000008c0: SWAP1
000008c1: PUSH1 0x1f
000008c3: AND
000008c4: DUP1
000008c5: ISZERO
000008c6: PUSH2 0x08e3
000008c9: JUMPI
000008ca: DUP1
000008cb: DUP3
000008cc: SUB
000008cd: DUP1
000008ce: MLOAD
000008cf: PUSH1 0x01
000008d1: DUP4
000008d2: PUSH1 0x20
000008d4: SUB
000008d5: PUSH2 0x0100
000008d8: EXP
000008d9: SUB
000008da: NOT
000008db: AND
000008dc: DUP2
000008dd: MSTORE
000008de: PUSH1 0x20
000008e0: ADD
000008e1: SWAP2
000008e2: POP
000008e3: JUMPDEST
000008e4: POP
000008e5: SWAP3
000008e6: POP
000008e7: POP
000008e8: POP
000008e9: PUSH1 0x40
000008eb: MLOAD
000008ec: DUP1
000008ed: SWAP2
000008ee: SUB
000008ef: SWAP1
000008f0: REVERT
000008f1: JUMPDEST
000008f2: POP
000008f3: PUSH1 0x00
000008f5: PUSH2 0x08fd
000008f8: DUP6
000008f9: PUSH2 0x19c6
000008fc: JUMP
000008fd: JUMPDEST
000008fe: SWAP1
000008ff: POP
00000900: PUSH1 0x00
00000902: PUSH2 0x090b
00000905: DUP6
00000906: DUP6
00000907: PUSH2 0x19e7
0000090a: JUMP
0000090b: JUMPDEST
0000090c: PUSH1 0x40
0000090e: DUP1
0000090f: MLOAD
00000910: DUP1
00000911: DUP3
00000912: ADD
00000913: SWAP1
00000914: SWAP2
00000915: MSTORE
00000916: PUSH1 0x02
00000918: DUP2
00000919: MSTORE
0000091a: PUSH2 0x1a9b
0000091d: PUSH1 0xf1
0000091f: SHL
00000920: PUSH1 0x20
00000922: DUP3
00000923: ADD
00000924: MSTORE
00000925: SWAP1
00000926: SWAP2
00000927: POP
00000928: DUP2
00000929: PUSH2 0x0973
0000092c: JUMPI
0000092d: PUSH1 0x40
0000092f: MLOAD
00000930: PUSH3 0x461bcd
00000934: PUSH1 0xe5
00000936: SHL
00000937: DUP2
00000938: MSTORE
00000939: PUSH1 0x20
0000093b: PUSH1 0x04
0000093d: DUP3
0000093e: ADD
0000093f: DUP2
00000940: DUP2
00000941: MSTORE
00000942: DUP4
00000943: MLOAD
00000944: PUSH1 0x24
00000946: DUP5
00000947: ADD
00000948: MSTORE
00000949: DUP4
0000094a: MLOAD
0000094b: SWAP1
0000094c: SWAP3
0000094d: DUP4
0000094e: SWAP3
0000094f: PUSH1 0x44
00000951: SWAP1
00000952: SWAP2
00000953: ADD
00000954: SWAP2
00000955: SWAP1
00000956: DUP6
00000957: ADD
00000958: SWAP1
00000959: DUP1
0000095a: DUP4
0000095b: DUP4
0000095c: PUSH1 0x00
0000095e: DUP4
0000095f: ISZERO
00000960: PUSH2 0x08b6
00000963: JUMPI
00000964: DUP2
00000965: DUP2
00000966: ADD
00000967: MLOAD
00000968: DUP4
00000969: DUP3
0000096a: ADD
0000096b: MSTORE
0000096c: PUSH1 0x20
0000096e: ADD
0000096f: PUSH2 0x089e
00000972: JUMP
00000973: JUMPDEST
00000974: POP
00000975: PUSH2 0x097e
00000978: DUP7
00000979: DUP3
0000097a: PUSH2 0x1aee
0000097d: JUMP
0000097e: JUMPDEST
0000097f: PUSH1 0x40
00000981: DUP1
00000982: MLOAD
00000983: DUP7
00000984: DUP2
00000985: MSTORE
00000986: SWAP1
00000987: MLOAD
00000988: PUSH1 0x01
0000098a: PUSH1 0x01
0000098c: PUSH1 0xa0
0000098e: SHL
0000098f: SUB
00000990: DUP9
00000991: AND
00000992: SWAP2
00000993: PUSH1 0x00
00000995: SWAP2
00000996: PUSH1 0x00
00000998: DUP1
00000999: MLOAD
0000099a: PUSH1 0x20
0000099c: PUSH2 0x26ce
0000099f: DUP4
000009a0: CODECOPY
000009a1: DUP2
000009a2: MLOAD
000009a3: SWAP2
000009a4: MSTORE
000009a5: SWAP2
000009a6: DUP2
000009a7: SWAP1
000009a8: SUB
000009a9: PUSH1 0x20
000009ab: ADD
000009ac: SWAP1
000009ad: LOG3
000009ae: PUSH1 0x40
000009b0: DUP1
000009b1: MLOAD
000009b2: DUP7
000009b3: DUP2
000009b4: MSTORE
000009b5: PUSH1 0x20
000009b7: DUP2
000009b8: ADD
000009b9: DUP7
000009ba: SWAP1
000009bb: MSTORE
000009bc: DUP2
000009bd: MLOAD
000009be: PUSH1 0x01
000009c0: PUSH1 0x01
000009c2: PUSH1 0xa0
000009c4: SHL
000009c5: SUB
000009c6: DUP10
000009c7: AND
000009c8: SWAP3
000009c9: PUSH32 0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f
000009ea: SWAP3
000009eb: DUP3
000009ec: SWAP1
000009ed: SUB
000009ee: ADD
000009ef: SWAP1
000009f0: LOG2
000009f1: POP
000009f2: ISZERO
000009f3: SWAP5
000009f4: SWAP4
000009f5: POP
000009f6: POP
000009f7: POP
000009f8: POP
000009f9: JUMP
000009fa: JUMPDEST
000009fb: PUSH1 0x00
000009fd: DUP1
000009fe: PUSH2 0x0a05
00000a01: PUSH2 0x19e1
00000a04: JUMP
00000a05: JUMPDEST
00000a06: SWAP1
00000a07: POP
00000a08: DUP1
00000a09: PUSH2 0x0a16
00000a0c: JUMPI
00000a0d: PUSH1 0x00
00000a0f: SWAP2
00000a10: POP
00000a11: POP
00000a12: PUSH2 0x07e9
00000a15: JUMP
00000a16: JUMPDEST
00000a17: PUSH1 0x3c
00000a19: SLOAD
00000a1a: PUSH1 0x3e
00000a1c: SLOAD
00000a1d: PUSH1 0x40
00000a1f: DUP1
00000a20: MLOAD
00000a21: PUSH4 0xd15e0053
00000a26: PUSH1 0xe0
00000a28: SHL
00000a29: DUP2
00000a2a: MSTORE
00000a2b: PUSH1 0x01
00000a2d: PUSH1 0x01
00000a2f: PUSH1 0xa0
00000a31: SHL
00000a32: SUB
00000a33: SWAP3
00000a34: DUP4
00000a35: AND
00000a36: PUSH1 0x04
00000a38: DUP3
00000a39: ADD
00000a3a: MSTORE
00000a3b: SWAP1
00000a3c: MLOAD
00000a3d: PUSH2 0x0a9e
00000a40: SWAP4
00000a41: SWAP3
00000a42: SWAP1
00000a43: SWAP3
00000a44: AND
00000a45: SWAP2
00000a46: PUSH4 0xd15e0053
00000a4b: SWAP2
00000a4c: PUSH1 0x24
00000a4e: DUP1
00000a4f: DUP3
00000a50: ADD
00000a51: SWAP3
00000a52: PUSH1 0x20
00000a54: SWAP3
00000a55: SWAP1
00000a56: SWAP2
00000a57: SWAP1
00000a58: DUP3
00000a59: SWAP1
00000a5a: SUB
00000a5b: ADD
00000a5c: DUP2
00000a5d: DUP7
00000a5e: DUP1
00000a5f: EXTCODESIZE
00000a60: ISZERO
00000a61: DUP1
00000a62: ISZERO
00000a63: PUSH2 0x0a6b
00000a66: JUMPI
00000a67: PUSH1 0x00
00000a69: DUP1
00000a6a: REVERT
00000a6b: JUMPDEST
00000a6c: POP
00000a6d: GAS
00000a6e: STATICCALL
00000a6f: ISZERO
00000a70: DUP1
00000a71: ISZERO
00000a72: PUSH2 0x0a7f
00000a75: JUMPI
00000a76: RETURNDATASIZE
00000a77: PUSH1 0x00
00000a79: DUP1
00000a7a: RETURNDATACOPY
00000a7b: RETURNDATASIZE
00000a7c: PUSH1 0x00
00000a7e: REVERT
00000a7f: JUMPDEST
00000a80: POP
00000a81: POP
00000a82: POP
00000a83: POP
00000a84: PUSH1 0x40
00000a86: MLOAD
00000a87: RETURNDATASIZE
00000a88: PUSH1 0x20
00000a8a: DUP2
00000a8b: LT
00000a8c: ISZERO
00000a8d: PUSH2 0x0a95
00000a90: JUMPI
00000a91: PUSH1 0x00
00000a93: DUP1
00000a94: REVERT
00000a95: JUMPDEST
00000a96: POP
00000a97: MLOAD
00000a98: DUP3
00000a99: SWAP1
00000a9a: PUSH2 0x1c3f
00000a9d: JUMP
00000a9e: JUMPDEST
00000a9f: SWAP2
00000aa0: POP
00000aa1: POP
00000aa2: SWAP1
00000aa3: JUMP
00000aa4: JUMPDEST
00000aa5: PUSH1 0x00
00000aa7: PUSH2 0x0aae
00000aaa: PUSH2 0x1cfd
00000aad: JUMP
00000aae: JUMPDEST
00000aaf: PUSH1 0x01
00000ab1: SLOAD
00000ab2: SWAP1
00000ab3: SWAP2
00000ab4: POP
00000ab5: PUSH1 0xff
00000ab7: AND
00000ab8: DUP1
00000ab9: PUSH2 0x0ac5
00000abc: JUMPI
00000abd: POP
00000abe: PUSH2 0x0ac5
00000ac1: PUSH2 0x1d02
00000ac4: JUMP
00000ac5: JUMPDEST
00000ac6: DUP1
00000ac7: PUSH2 0x0ad1
00000aca: JUMPI
00000acb: POP
00000acc: PUSH1 0x00
00000ace: SLOAD
00000acf: DUP2
00000ad0: GT
00000ad1: JUMPDEST
00000ad2: PUSH2 0x0b0c
00000ad5: JUMPI
00000ad6: PUSH1 0x40
00000ad8: MLOAD
00000ad9: PUSH3 0x461bcd
00000add: PUSH1 0xe5
00000adf: SHL
00000ae0: DUP2
00000ae1: MSTORE
00000ae2: PUSH1 0x04
00000ae4: ADD
00000ae5: DUP1
00000ae6: DUP1
00000ae7: PUSH1 0x20
00000ae9: ADD
00000aea: DUP3
00000aeb: DUP2
00000aec: SUB
00000aed: DUP3
00000aee: MSTORE
00000aef: PUSH1 0x2e
00000af1: DUP2
00000af2: MSTORE
00000af3: PUSH1 0x20
00000af5: ADD
00000af6: DUP1
00000af7: PUSH2 0x26a0
00000afa: PUSH1 0x2e
00000afc: SWAP2
00000afd: CODECOPY
00000afe: PUSH1 0x40
00000b00: ADD
00000b01: SWAP2
00000b02: POP
00000b03: POP
00000b04: PUSH1 0x40
00000b06: MLOAD
00000b07: DUP1
00000b08: SWAP2
00000b09: SUB
00000b0a: SWAP1
00000b0b: REVERT
00000b0c: JUMPDEST
00000b0d: PUSH1 0x01
00000b0f: SLOAD
00000b10: PUSH1 0xff
00000b12: AND
00000b13: ISZERO
00000b14: DUP1
00000b15: ISZERO
00000b16: PUSH2 0x0b2b
00000b19: JUMPI
00000b1a: PUSH1 0x01
00000b1c: DUP1
00000b1d: SLOAD
00000b1e: PUSH1 0xff
00000b20: NOT
00000b21: AND
00000b22: DUP2
00000b23: OR
00000b24: SWAP1
00000b25: SSTORE
00000b26: PUSH1 0x00
00000b28: DUP3
00000b29: SWAP1
00000b2a: SSTORE
00000b2b: JUMPDEST
00000b2c: PUSH1 0x00
00000b2e: CHAINID
00000b2f: SWAP1
00000b30: POP
00000b31: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f
00000b52: DUP10
00000b53: DUP10
00000b54: PUSH1 0x40
00000b56: MLOAD
00000b57: DUP1
00000b58: DUP4
00000b59: DUP4
00000b5a: DUP1
00000b5b: DUP3
00000b5c: DUP5
00000b5d: CALLDATACOPY
00000b5e: DUP1
00000b5f: DUP4
00000b60: ADD
00000b61: SWAP3
00000b62: POP
00000b63: POP
00000b64: POP
00000b65: SWAP3
00000b66: POP
00000b67: POP
00000b68: POP
00000b69: PUSH1 0x40
00000b6b: MLOAD
00000b6c: DUP1
00000b6d: SWAP2
00000b6e: SUB
00000b6f: SWAP1
00000b70: KECCAK256
00000b71: PUSH1 0x40
00000b73: MLOAD
00000b74: DUP1
00000b75: PUSH1 0x40
00000b77: ADD
00000b78: PUSH1 0x40
00000b7a: MSTORE
00000b7b: DUP1
00000b7c: PUSH1 0x01
00000b7e: DUP2
00000b7f: MSTORE
00000b80: PUSH1 0x20
00000b82: ADD
00000b83: PUSH1 0x31
00000b85: PUSH1 0xf8
00000b87: SHL
00000b88: DUP2
00000b89: MSTORE
00000b8a: POP
00000b8b: DUP1
00000b8c: MLOAD
00000b8d: SWAP1
00000b8e: PUSH1 0x20
00000b90: ADD
00000b91: KECCAK256
00000b92: DUP4
00000b93: ADDRESS
00000b94: PUSH1 0x40
00000b96: MLOAD
00000b97: PUSH1 0x20
00000b99: ADD
00000b9a: DUP1
00000b9b: DUP7
00000b9c: DUP2
00000b9d: MSTORE
00000b9e: PUSH1 0x20
00000ba0: ADD
00000ba1: DUP6
00000ba2: DUP2
00000ba3: MSTORE
00000ba4: PUSH1 0x20
00000ba6: ADD
00000ba7: DUP5
00000ba8: DUP2
00000ba9: MSTORE
00000baa: PUSH1 0x20
00000bac: ADD
00000bad: DUP4
00000bae: DUP2
00000baf: MSTORE
00000bb0: PUSH1 0x20
00000bb2: ADD
00000bb3: DUP3
00000bb4: PUSH1 0x01
00000bb6: PUSH1 0x01
00000bb8: PUSH1 0xa0
00000bba: SHL
00000bbb: SUB
00000bbc: AND
00000bbd: DUP2
00000bbe: MSTORE
00000bbf: PUSH1 0x20
00000bc1: ADD
00000bc2: SWAP6
00000bc3: POP
00000bc4: POP
00000bc5: POP
00000bc6: POP
00000bc7: POP
00000bc8: POP
00000bc9: PUSH1 0x40
00000bcb: MLOAD
00000bcc: PUSH1 0x20
00000bce: DUP2
00000bcf: DUP4
00000bd0: SUB
00000bd1: SUB
00000bd2: DUP2
00000bd3: MSTORE
00000bd4: SWAP1
00000bd5: PUSH1 0x40
00000bd7: MSTORE
00000bd8: DUP1
00000bd9: MLOAD
00000bda: SWAP1
00000bdb: PUSH1 0x20
00000bdd: ADD
00000bde: KECCAK256
00000bdf: PUSH1 0x3b
00000be1: DUP2
00000be2: SWAP1
00000be3: SSTORE
00000be4: POP
00000be5: PUSH2 0x0c23
00000be8: DUP10
00000be9: DUP10
00000bea: DUP1
00000beb: DUP1
00000bec: PUSH1 0x1f
00000bee: ADD
00000bef: PUSH1 0x20
00000bf1: DUP1
00000bf2: SWAP2
00000bf3: DIV
00000bf4: MUL
00000bf5: PUSH1 0x20
00000bf7: ADD
00000bf8: PUSH1 0x40
00000bfa: MLOAD
00000bfb: SWAP1
00000bfc: DUP2
00000bfd: ADD
00000bfe: PUSH1 0x40
00000c00: MSTORE
00000c01: DUP1
00000c02: SWAP4
00000c03: SWAP3
00000c04: SWAP2
00000c05: SWAP1
00000c06: DUP2
00000c07: DUP2
00000c08: MSTORE
00000c09: PUSH1 0x20
00000c0b: ADD
00000c0c: DUP4
00000c0d: DUP4
00000c0e: DUP1
00000c0f: DUP3
00000c10: DUP5
00000c11: CALLDATACOPY
00000c12: PUSH1 0x00
00000c14: SWAP3
00000c15: ADD
00000c16: SWAP2
00000c17: SWAP1
00000c18: SWAP2
00000c19: MSTORE
00000c1a: POP
00000c1b: PUSH2 0x1d08
00000c1e: SWAP3
00000c1f: POP
00000c20: POP
00000c21: POP
00000c22: JUMP
00000c23: JUMPDEST
00000c24: PUSH2 0x0c62
00000c27: DUP8
00000c28: DUP8
00000c29: DUP1
00000c2a: DUP1
00000c2b: PUSH1 0x1f
00000c2d: ADD
00000c2e: PUSH1 0x20
00000c30: DUP1
00000c31: SWAP2
00000c32: DIV
00000c33: MUL
00000c34: PUSH1 0x20
00000c36: ADD
00000c37: PUSH1 0x40
00000c39: MLOAD
00000c3a: SWAP1
00000c3b: DUP2
00000c3c: ADD
00000c3d: PUSH1 0x40
00000c3f: MSTORE
00000c40: DUP1
00000c41: SWAP4
00000c42: SWAP3
00000c43: SWAP2
00000c44: SWAP1
00000c45: DUP2
00000c46: DUP2
00000c47: MSTORE
00000c48: PUSH1 0x20
00000c4a: ADD
00000c4b: DUP4
00000c4c: DUP4
00000c4d: DUP1
00000c4e: DUP3
00000c4f: DUP5
00000c50: CALLDATACOPY
00000c51: PUSH1 0x00
00000c53: SWAP3
00000c54: ADD
00000c55: SWAP2
00000c56: SWAP1
00000c57: SWAP2
00000c58: MSTORE
00000c59: POP
00000c5a: PUSH2 0x1d1b
00000c5d: SWAP3
00000c5e: POP
00000c5f: POP
00000c60: POP
00000c61: JUMP
00000c62: JUMPDEST
00000c63: PUSH2 0x0c6b
00000c66: DUP11
00000c67: PUSH2 0x1d2e
00000c6a: JUMP
00000c6b: JUMPDEST
00000c6c: DUP14
00000c6d: PUSH1 0x3c
00000c6f: PUSH1 0x00
00000c71: PUSH2 0x0100
00000c74: EXP
00000c75: DUP2
00000c76: SLOAD
00000c77: DUP2
00000c78: PUSH1 0x01
00000c7a: PUSH1 0x01
00000c7c: PUSH1 0xa0
00000c7e: SHL
00000c7f: SUB
00000c80: MUL
00000c81: NOT
00000c82: AND
00000c83: SWAP1
00000c84: DUP4
00000c85: PUSH1 0x01
00000c87: PUSH1 0x01
00000c89: PUSH1 0xa0
00000c8b: SHL
00000c8c: SUB
00000c8d: AND
00000c8e: MUL
00000c8f: OR
00000c90: SWAP1
00000c91: SSTORE
00000c92: POP
00000c93: DUP13
00000c94: PUSH1 0x3d
00000c96: PUSH1 0x00
00000c98: PUSH2 0x0100
00000c9b: EXP
00000c9c: DUP2
00000c9d: SLOAD
00000c9e: DUP2
00000c9f: PUSH1 0x01
00000ca1: PUSH1 0x01
00000ca3: PUSH1 0xa0
00000ca5: SHL
00000ca6: SUB
00000ca7: MUL
00000ca8: NOT
00000ca9: AND
00000caa: SWAP1
00000cab: DUP4
00000cac: PUSH1 0x01
00000cae: PUSH1 0x01
00000cb0: PUSH1 0xa0
00000cb2: SHL
00000cb3: SUB
00000cb4: AND
00000cb5: MUL
00000cb6: OR
00000cb7: SWAP1
00000cb8: SSTORE
00000cb9: POP
00000cba: DUP12
00000cbb: PUSH1 0x3e
00000cbd: PUSH1 0x00
00000cbf: PUSH2 0x0100
00000cc2: EXP
00000cc3: DUP2
00000cc4: SLOAD
00000cc5: DUP2
00000cc6: PUSH1 0x01
00000cc8: PUSH1 0x01
00000cca: PUSH1 0xa0
00000ccc: SHL
00000ccd: SUB
00000cce: MUL
00000ccf: NOT
00000cd0: AND
00000cd1: SWAP1
00000cd2: DUP4
00000cd3: PUSH1 0x01
00000cd5: PUSH1 0x01
00000cd7: PUSH1 0xa0
00000cd9: SHL
00000cda: SUB
00000cdb: AND
00000cdc: MUL
00000cdd: OR
00000cde: SWAP1
00000cdf: SSTORE
00000ce0: POP
00000ce1: DUP11
00000ce2: PUSH1 0x3f
00000ce4: PUSH1 0x00
00000ce6: PUSH2 0x0100
00000ce9: EXP
00000cea: DUP2
00000ceb: SLOAD
00000cec: DUP2
00000ced: PUSH1 0x01
00000cef: PUSH1 0x01
00000cf1: PUSH1 0xa0
00000cf3: SHL
00000cf4: SUB
00000cf5: MUL
00000cf6: NOT
00000cf7: AND
00000cf8: SWAP1
00000cf9: DUP4
00000cfa: PUSH1 0x01
00000cfc: PUSH1 0x01
00000cfe: PUSH1 0xa0
00000d00: SHL
00000d01: SUB
00000d02: AND
00000d03: MUL
00000d04: OR
00000d05: SWAP1
00000d06: SSTORE
00000d07: POP
00000d08: DUP14
00000d09: PUSH1 0x01
00000d0b: PUSH1 0x01
00000d0d: PUSH1 0xa0
00000d0f: SHL
00000d10: SUB
00000d11: AND
00000d12: DUP13
00000d13: PUSH1 0x01
00000d15: PUSH1 0x01
00000d17: PUSH1 0xa0
00000d19: SHL
00000d1a: SUB
00000d1b: AND
00000d1c: PUSH32 0xb19e051f8af41150ccccb3fc2c2d8d15f4a4cf434f32a559ba75fe73d6eea20b
00000d3d: DUP16
00000d3e: DUP15
00000d3f: DUP15
00000d40: DUP15
00000d41: DUP15
00000d42: DUP15
00000d43: DUP15
00000d44: DUP15
00000d45: DUP15
00000d46: PUSH1 0x40
00000d48: MLOAD
00000d49: DUP1
00000d4a: DUP11
00000d4b: PUSH1 0x01
00000d4d: PUSH1 0x01
00000d4f: PUSH1 0xa0
00000d51: SHL
00000d52: SUB
00000d53: AND
00000d54: DUP2
00000d55: MSTORE
00000d56: PUSH1 0x20
00000d58: ADD
00000d59: DUP10
00000d5a: PUSH1 0x01
00000d5c: PUSH1 0x01
00000d5e: PUSH1 0xa0
00000d60: SHL
00000d61: SUB
00000d62: AND
00000d63: DUP2
00000d64: MSTORE
00000d65: PUSH1 0x20
00000d67: ADD
00000d68: DUP9
00000d69: PUSH1 0xff
00000d6b: AND
00000d6c: DUP2
00000d6d: MSTORE
00000d6e: PUSH1 0x20
00000d70: ADD
00000d71: DUP1
00000d72: PUSH1 0x20
00000d74: ADD
00000d75: DUP1
00000d76: PUSH1 0x20
00000d78: ADD
00000d79: DUP1
00000d7a: PUSH1 0x20
00000d7c: ADD
00000d7d: DUP5
00000d7e: DUP2
00000d7f: SUB
00000d80: DUP5
00000d81: MSTORE
00000d82: DUP11
00000d83: DUP11
00000d84: DUP3
00000d85: DUP2
00000d86: DUP2
00000d87: MSTORE
00000d88: PUSH1 0x20
00000d8a: ADD
00000d8b: SWAP3
00000d8c: POP
00000d8d: DUP1
00000d8e: DUP3
00000d8f: DUP5
00000d90: CALLDATACOPY
00000d91: PUSH1 0x00
00000d93: DUP4
00000d94: DUP3
00000d95: ADD
00000d96: MSTORE
00000d97: PUSH1 0x1f
00000d99: ADD
00000d9a: PUSH1 0x1f
00000d9c: NOT
00000d9d: AND
00000d9e: SWAP1
00000d9f: SWAP2
00000da0: ADD
00000da1: DUP6
00000da2: DUP2
00000da3: SUB
00000da4: DUP5
00000da5: MSTORE
00000da6: DUP9
00000da7: DUP2
00000da8: MSTORE
00000da9: PUSH1 0x20
00000dab: ADD
00000dac: SWAP1
00000dad: POP
00000dae: DUP9
00000daf: DUP9
00000db0: DUP1
00000db1: DUP3
00000db2: DUP5
00000db3: CALLDATACOPY
00000db4: PUSH1 0x00
00000db6: DUP4
00000db7: DUP3
00000db8: ADD
00000db9: MSTORE
00000dba: PUSH1 0x1f
00000dbc: ADD
00000dbd: PUSH1 0x1f
00000dbf: NOT
00000dc0: AND
00000dc1: SWAP1
00000dc2: SWAP2
00000dc3: ADD
00000dc4: DUP6
00000dc5: DUP2
00000dc6: SUB
00000dc7: DUP4
00000dc8: MSTORE
00000dc9: DUP7
00000dca: DUP2
00000dcb: MSTORE
00000dcc: PUSH1 0x20
00000dce: ADD
00000dcf: SWAP1
00000dd0: POP
00000dd1: DUP7
00000dd2: DUP7
00000dd3: DUP1
00000dd4: DUP3
00000dd5: DUP5
00000dd6: CALLDATACOPY
00000dd7: PUSH1 0x00
00000dd9: DUP4
00000dda: DUP3
00000ddb: ADD
00000ddc: MSTORE
00000ddd: PUSH1 0x40
00000ddf: MLOAD
00000de0: PUSH1 0x1f
00000de2: SWAP1
00000de3: SWAP2
00000de4: ADD
00000de5: PUSH1 0x1f
00000de7: NOT
00000de8: AND
00000de9: SWAP1
00000dea: SWAP3
00000deb: ADD
00000dec: DUP3
00000ded: SWAP1
00000dee: SUB
00000def: SWAP15
00000df0: POP
00000df1: SWAP1
00000df2: SWAP13
00000df3: POP
00000df4: POP
00000df5: POP
00000df6: POP
00000df7: POP
00000df8: POP
00000df9: POP
00000dfa: POP
00000dfb: POP
00000dfc: POP
00000dfd: POP
00000dfe: POP
00000dff: POP
00000e00: LOG3
00000e01: POP
00000e02: DUP1
00000e03: ISZERO
00000e04: PUSH2 0x0e12
00000e07: JUMPI
00000e08: PUSH1 0x01
00000e0a: DUP1
00000e0b: SLOAD
00000e0c: PUSH1 0xff
00000e0e: NOT
00000e0f: AND
00000e10: SWAP1
00000e11: SSTORE
00000e12: JUMPDEST
00000e13: POP
00000e14: POP
00000e15: POP
00000e16: POP
00000e17: POP
00000e18: POP
00000e19: POP
00000e1a: POP
00000e1b: POP
00000e1c: POP
00000e1d: POP
00000e1e: POP
00000e1f: POP
00000e20: JUMP
00000e21: JUMPDEST
00000e22: PUSH1 0x00
00000e24: PUSH2 0x0804
00000e27: DUP3
00000e28: PUSH2 0x19c6
00000e2b: JUMP
00000e2c: JUMPDEST
00000e2d: PUSH1 0x00
00000e2f: PUSH2 0x0e39
00000e32: DUP5
00000e33: DUP5
00000e34: DUP5
00000e35: PUSH2 0x1d44
00000e38: JUMP
00000e39: JUMPDEST
00000e3a: PUSH2 0x0ea9
00000e3d: DUP5
00000e3e: PUSH2 0x0e45
00000e41: PUSH2 0x18d6
00000e44: JUMP
00000e45: JUMPDEST
00000e46: PUSH2 0x0ea4
00000e49: DUP6
00000e4a: PUSH1 0x40
00000e4c: MLOAD
00000e4d: DUP1
00000e4e: PUSH1 0x60
00000e50: ADD
00000e51: PUSH1 0x40
00000e53: MSTORE
00000e54: DUP1
00000e55: PUSH1 0x28
00000e57: DUP2
00000e58: MSTORE
00000e59: PUSH1 0x20
00000e5b: ADD
00000e5c: PUSH2 0x2678
00000e5f: PUSH1 0x28
00000e61: SWAP2
00000e62: CODECOPY
00000e63: PUSH1 0x01
00000e65: PUSH1 0x01
00000e67: PUSH1 0xa0
00000e69: SHL
00000e6a: SUB
00000e6b: DUP11
00000e6c: AND
00000e6d: PUSH1 0x00
00000e6f: SWAP1
00000e70: DUP2
00000e71: MSTORE
00000e72: PUSH1 0x35
00000e74: PUSH1 0x20
00000e76: MSTORE
00000e77: PUSH1 0x40
00000e79: DUP2
00000e7a: KECCAK256
00000e7b: SWAP1
00000e7c: PUSH2 0x0e83
00000e7f: PUSH2 0x18d6
00000e82: JUMP
00000e83: JUMPDEST
00000e84: PUSH1 0x01
00000e86: PUSH1 0x01
00000e88: PUSH1 0xa0
00000e8a: SHL
00000e8b: SUB
00000e8c: AND
00000e8d: DUP2
00000e8e: MSTORE
00000e8f: PUSH1 0x20
00000e91: DUP2
00000e92: ADD
00000e93: SWAP2
00000e94: SWAP1
00000e95: SWAP2
00000e96: MSTORE
00000e97: PUSH1 0x40
00000e99: ADD
00000e9a: PUSH1 0x00
00000e9c: KECCAK256
00000e9d: SLOAD
00000e9e: SWAP2
00000e9f: SWAP1
00000ea0: PUSH2 0x1d51
00000ea3: JUMP
00000ea4: JUMPDEST
00000ea5: PUSH2 0x18da
00000ea8: JUMP
00000ea9: JUMPDEST
00000eaa: DUP3
00000eab: PUSH1 0x01
00000ead: PUSH1 0x01
00000eaf: PUSH1 0xa0
00000eb1: SHL
00000eb2: SUB
00000eb3: AND
00000eb4: DUP5
00000eb5: PUSH1 0x01
00000eb7: PUSH1 0x01
00000eb9: PUSH1 0xa0
00000ebb: SHL
00000ebc: SUB
00000ebd: AND
00000ebe: PUSH1 0x00
00000ec0: DUP1
00000ec1: MLOAD
00000ec2: PUSH1 0x20
00000ec4: PUSH2 0x26ce
00000ec7: DUP4
00000ec8: CODECOPY
00000ec9: DUP2
00000eca: MLOAD
00000ecb: SWAP2
00000ecc: MSTORE
00000ecd: DUP5
00000ece: PUSH1 0x40
00000ed0: MLOAD
00000ed1: DUP1
00000ed2: DUP3
00000ed3: DUP2
00000ed4: MSTORE
00000ed5: PUSH1 0x20
00000ed7: ADD
00000ed8: SWAP2
00000ed9: POP
00000eda: POP
00000edb: PUSH1 0x40
00000edd: MLOAD
00000ede: DUP1
00000edf: SWAP2
00000ee0: SUB
00000ee1: SWAP1
00000ee2: LOG3
00000ee3: POP
00000ee4: PUSH1 0x01
00000ee6: SWAP4
00000ee7: SWAP3
00000ee8: POP
00000ee9: POP
00000eea: POP
00000eeb: JUMP
00000eec: JUMPDEST
00000eed: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9
00000f0e: DUP2
00000f0f: JUMP
00000f10: JUMPDEST
00000f11: PUSH1 0x39
00000f13: SLOAD
00000f14: PUSH1 0xff
00000f16: AND
00000f17: SWAP1
00000f18: JUMP
00000f19: JUMPDEST
00000f1a: PUSH1 0x3b
00000f1c: SLOAD
00000f1d: DUP2
00000f1e: JUMP
00000f1f: JUMPDEST
00000f20: PUSH1 0x00
00000f22: PUSH2 0x0800
00000f25: PUSH2 0x0f2c
00000f28: PUSH2 0x18d6
00000f2b: JUMP
00000f2c: JUMPDEST
00000f2d: DUP5
00000f2e: PUSH2 0x0ea4
00000f31: DUP6
00000f32: PUSH1 0x35
00000f34: PUSH1 0x00
00000f36: PUSH2 0x0f3d
00000f39: PUSH2 0x18d6
00000f3c: JUMP
00000f3d: JUMPDEST
00000f3e: PUSH1 0x01
00000f40: PUSH1 0x01
00000f42: PUSH1 0xa0
00000f44: SHL
00000f45: SUB
00000f46: SWAP1
00000f47: DUP2
00000f48: AND
00000f49: DUP3
00000f4a: MSTORE
00000f4b: PUSH1 0x20
00000f4d: DUP1
00000f4e: DUP4
00000f4f: ADD
00000f50: SWAP4
00000f51: SWAP1
00000f52: SWAP4
00000f53: MSTORE
00000f54: PUSH1 0x40
00000f56: SWAP2
00000f57: DUP3
00000f58: ADD
00000f59: PUSH1 0x00
00000f5b: SWAP1
00000f5c: DUP2
00000f5d: KECCAK256
00000f5e: SWAP2
00000f5f: DUP13
00000f60: AND
00000f61: DUP2
00000f62: MSTORE
00000f63: SWAP3
00000f64: MSTORE
00000f65: SWAP1
00000f66: KECCAK256
00000f67: SLOAD
00000f68: SWAP1
00000f69: PUSH2 0x1dab
00000f6c: JUMP
00000f6d: JUMPDEST
00000f6e: PUSH1 0x3c
00000f70: SLOAD
00000f71: PUSH1 0x00
00000f73: SWAP1
00000f74: PUSH1 0x01
00000f76: PUSH1 0x01
00000f78: PUSH1 0xa0
00000f7a: SHL
00000f7b: SUB
00000f7c: AND
00000f7d: PUSH2 0x0f84
00000f80: PUSH2 0x18d6
00000f83: JUMP
00000f84: JUMPDEST
00000f85: PUSH1 0x01
00000f87: PUSH1 0x01
00000f89: PUSH1 0xa0
00000f8b: SHL
00000f8c: SUB
00000f8d: AND
00000f8e: EQ
00000f8f: PUSH1 0x40
00000f91: MLOAD
00000f92: DUP1
00000f93: PUSH1 0x40
00000f95: ADD
00000f96: PUSH1 0x40
00000f98: MSTORE
00000f99: DUP1
00000f9a: PUSH1 0x02
00000f9c: DUP2
00000f9d: MSTORE
00000f9e: PUSH1 0x20
00000fa0: ADD
00000fa1: PUSH2 0x3239
00000fa4: PUSH1 0xf0
00000fa6: SHL
00000fa7: DUP2
00000fa8: MSTORE
00000fa9: POP
00000faa: SWAP1
00000fab: PUSH2 0x0ff5
00000fae: JUMPI
00000faf: PUSH1 0x40
00000fb1: MLOAD
00000fb2: PUSH3 0x461bcd
00000fb6: PUSH1 0xe5
00000fb8: SHL
00000fb9: DUP2
00000fba: MSTORE
00000fbb: PUSH1 0x20
00000fbd: PUSH1 0x04
00000fbf: DUP3
00000fc0: ADD
00000fc1: DUP2
00000fc2: DUP2
00000fc3: MSTORE
00000fc4: DUP4
00000fc5: MLOAD
00000fc6: PUSH1 0x24
00000fc8: DUP5
00000fc9: ADD
00000fca: MSTORE
00000fcb: DUP4
00000fcc: MLOAD
00000fcd: SWAP1
00000fce: SWAP3
00000fcf: DUP4
00000fd0: SWAP3
00000fd1: PUSH1 0x44
00000fd3: SWAP1
00000fd4: SWAP2
00000fd5: ADD
00000fd6: SWAP2
00000fd7: SWAP1
00000fd8: DUP6
00000fd9: ADD
00000fda: SWAP1
00000fdb: DUP1
00000fdc: DUP4
00000fdd: DUP4
00000fde: PUSH1 0x00
00000fe0: DUP4
00000fe1: ISZERO
00000fe2: PUSH2 0x08b6
00000fe5: JUMPI
00000fe6: DUP2
00000fe7: DUP2
00000fe8: ADD
00000fe9: MLOAD
00000fea: DUP4
00000feb: DUP3
00000fec: ADD
00000fed: MSTORE
00000fee: PUSH1 0x20
00000ff0: ADD
00000ff1: PUSH2 0x089e
00000ff4: JUMP
00000ff5: JUMPDEST
00000ff6: POP
00000ff7: PUSH1 0x3e
00000ff9: SLOAD
00000ffa: PUSH2 0x100d
00000ffd: SWAP1
00000ffe: PUSH1 0x01
00001000: PUSH1 0x01
00001002: PUSH1 0xa0
00001004: SHL
00001005: SUB
00001006: AND
00001007: DUP5
00001008: DUP5
00001009: PUSH2 0x1e0c
0000100c: JUMP
0000100d: JUMPDEST
0000100e: POP
0000100f: SWAP2
00001010: SWAP1
00001011: POP
00001012: JUMP
00001013: JUMPDEST
00001014: PUSH1 0x3c
00001016: SLOAD
00001017: PUSH1 0x3e
00001019: SLOAD
0000101a: PUSH1 0x40
0000101c: DUP1
0000101d: MLOAD
0000101e: PUSH4 0xd15e0053
00001023: PUSH1 0xe0
00001025: SHL
00001026: DUP2
00001027: MSTORE
00001028: PUSH1 0x01
0000102a: PUSH1 0x01
0000102c: PUSH1 0xa0
0000102e: SHL
0000102f: SUB
00001030: SWAP3
00001031: DUP4
00001032: AND
00001033: PUSH1 0x04
00001035: DUP3
00001036: ADD
00001037: MSTORE
00001038: SWAP1
00001039: MLOAD
0000103a: PUSH1 0x00
0000103c: SWAP4
0000103d: PUSH2 0x0804
00001040: SWAP4
00001041: AND
00001042: SWAP2
00001043: PUSH4 0xd15e0053
00001048: SWAP2
00001049: PUSH1 0x24
0000104b: DUP1
0000104c: DUP4
0000104d: ADD
0000104e: SWAP3
0000104f: PUSH1 0x20
00001051: SWAP3
00001052: SWAP2
00001053: SWAP1
00001054: DUP3
00001055: SWAP1
00001056: SUB
00001057: ADD
00001058: DUP2
00001059: DUP7
0000105a: DUP1
0000105b: EXTCODESIZE
0000105c: ISZERO
0000105d: DUP1
0000105e: ISZERO
0000105f: PUSH2 0x1067
00001062: JUMPI
00001063: PUSH1 0x00
00001065: DUP1
00001066: REVERT
00001067: JUMPDEST
00001068: POP
00001069: GAS
0000106a: STATICCALL
0000106b: ISZERO
0000106c: DUP1
0000106d: ISZERO
0000106e: PUSH2 0x107b
00001071: JUMPI
00001072: RETURNDATASIZE
00001073: PUSH1 0x00
00001075: DUP1
00001076: RETURNDATACOPY
00001077: RETURNDATASIZE
00001078: PUSH1 0x00
0000107a: REVERT
0000107b: JUMPDEST
0000107c: POP
0000107d: POP
0000107e: POP
0000107f: POP
00001080: PUSH1 0x40
00001082: MLOAD
00001083: RETURNDATASIZE
00001084: PUSH1 0x20
00001086: DUP2
00001087: LT
00001088: ISZERO
00001089: PUSH2 0x1091
0000108c: JUMPI
0000108d: PUSH1 0x00
0000108f: DUP1
00001090: REVERT
00001091: JUMPDEST
00001092: POP
00001093: MLOAD
00001094: PUSH2 0x109c
00001097: DUP5
00001098: PUSH2 0x19c6
0000109b: JUMP
0000109c: JUMPDEST
0000109d: SWAP1
0000109e: PUSH2 0x1c3f
000010a1: JUMP
000010a2: JUMPDEST
000010a3: PUSH1 0x3c
000010a5: SLOAD
000010a6: PUSH1 0x01
000010a8: PUSH1 0x01
000010aa: PUSH1 0xa0
000010ac: SHL
000010ad: SUB
000010ae: AND
000010af: SWAP1
000010b0: JUMP
000010b1: JUMPDEST
000010b2: PUSH1 0x00
000010b4: PUSH2 0x10bb
000010b7: PUSH2 0x1e5e
000010ba: JUMP
000010bb: JUMPDEST
000010bc: SWAP1
000010bd: POP
000010be: SWAP1
000010bf: JUMP
000010c0: JUMPDEST
000010c1: PUSH1 0x40
000010c3: MLOAD
000010c4: DUP1
000010c5: PUSH1 0x40
000010c7: ADD
000010c8: PUSH1 0x40
000010ca: MSTORE
000010cb: DUP1
000010cc: PUSH1 0x01
000010ce: DUP2
000010cf: MSTORE
000010d0: PUSH1 0x20
000010d2: ADD
000010d3: PUSH1 0x31
000010d5: PUSH1 0xf8
000010d7: SHL
000010d8: DUP2
000010d9: MSTORE
000010da: POP
000010db: DUP2
000010dc: JUMP
000010dd: JUMPDEST
000010de: PUSH1 0x3c
000010e0: SLOAD
000010e1: PUSH1 0x01
000010e3: PUSH1 0x01
000010e5: PUSH1 0xa0
000010e7: SHL
000010e8: SUB
000010e9: AND
000010ea: PUSH2 0x10f1
000010ed: PUSH2 0x18d6
000010f0: JUMP
000010f1: JUMPDEST
000010f2: PUSH1 0x01
000010f4: PUSH1 0x01
000010f6: PUSH1 0xa0
000010f8: SHL
000010f9: SUB
000010fa: AND
000010fb: EQ
000010fc: PUSH1 0x40
000010fe: MLOAD
000010ff: DUP1
00001100: PUSH1 0x40
00001102: ADD
00001103: PUSH1 0x40
00001105: MSTORE
00001106: DUP1
00001107: PUSH1 0x02
00001109: DUP2
0000110a: MSTORE
0000110b: PUSH1 0x20
0000110d: ADD
0000110e: PUSH2 0x3239
00001111: PUSH1 0xf0
00001113: SHL
00001114: DUP2
00001115: MSTORE
00001116: POP
00001117: SWAP1
00001118: PUSH2 0x1162
0000111b: JUMPI
0000111c: PUSH1 0x40
0000111e: MLOAD
0000111f: PUSH3 0x461bcd
00001123: PUSH1 0xe5
00001125: SHL
00001126: DUP2
00001127: MSTORE
00001128: PUSH1 0x20
0000112a: PUSH1 0x04
0000112c: DUP3
0000112d: ADD
0000112e: DUP2
0000112f: DUP2
00001130: MSTORE
00001131: DUP4
00001132: MLOAD
00001133: PUSH1 0x24
00001135: DUP5
00001136: ADD
00001137: MSTORE
00001138: DUP4
00001139: MLOAD
0000113a: SWAP1
0000113b: SWAP3
0000113c: DUP4
0000113d: SWAP3
0000113e: PUSH1 0x44
00001140: SWAP1
00001141: SWAP2
00001142: ADD
00001143: SWAP2
00001144: SWAP1
00001145: DUP6
00001146: ADD
00001147: SWAP1
00001148: DUP1
00001149: DUP4
0000114a: DUP4
0000114b: PUSH1 0x00
0000114d: DUP4
0000114e: ISZERO
0000114f: PUSH2 0x08b6
00001152: JUMPI
00001153: DUP2
00001154: DUP2
00001155: ADD
00001156: MLOAD
00001157: DUP4
00001158: DUP3
00001159: ADD
0000115a: MSTORE
0000115b: PUSH1 0x20
0000115d: ADD
0000115e: PUSH2 0x089e
00001161: JUMP
00001162: JUMPDEST
00001163: POP
00001164: DUP2
00001165: PUSH2 0x116d
00001168: JUMPI
00001169: PUSH2 0x1200
0000116c: JUMP
0000116d: JUMPDEST
0000116e: PUSH1 0x3d
00001170: SLOAD
00001171: PUSH1 0x01
00001173: PUSH1 0x01
00001175: PUSH1 0xa0
00001177: SHL
00001178: SUB
00001179: AND
0000117a: PUSH2 0x118c
0000117d: DUP2
0000117e: PUSH2 0x1187
00001181: DUP6
00001182: DUP6
00001183: PUSH2 0x19e7
00001186: JUMP
00001187: JUMPDEST
00001188: PUSH2 0x1aee
0000118b: JUMP
0000118c: JUMPDEST
0000118d: PUSH1 0x40
0000118f: DUP1
00001190: MLOAD
00001191: DUP5
00001192: DUP2
00001193: MSTORE
00001194: SWAP1
00001195: MLOAD
00001196: PUSH1 0x01
00001198: PUSH1 0x01
0000119a: PUSH1 0xa0
0000119c: SHL
0000119d: SUB
0000119e: DUP4
0000119f: AND
000011a0: SWAP2
000011a1: PUSH1 0x00
000011a3: SWAP2
000011a4: PUSH1 0x00
000011a6: DUP1
000011a7: MLOAD
000011a8: PUSH1 0x20
000011aa: PUSH2 0x26ce
000011ad: DUP4
000011ae: CODECOPY
000011af: DUP2
000011b0: MLOAD
000011b1: SWAP2
000011b2: MSTORE
000011b3: SWAP2
000011b4: DUP2
000011b5: SWAP1
000011b6: SUB
000011b7: PUSH1 0x20
000011b9: ADD
000011ba: SWAP1
000011bb: LOG3
000011bc: PUSH1 0x40
000011be: DUP1
000011bf: MLOAD
000011c0: DUP5
000011c1: DUP2
000011c2: MSTORE
000011c3: PUSH1 0x20
000011c5: DUP2
000011c6: ADD
000011c7: DUP5
000011c8: SWAP1
000011c9: MSTORE
000011ca: DUP2
000011cb: MLOAD
000011cc: PUSH1 0x01
000011ce: PUSH1 0x01
000011d0: PUSH1 0xa0
000011d2: SHL
000011d3: SUB
000011d4: DUP5
000011d5: AND
000011d6: SWAP3
000011d7: PUSH32 0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f
000011f8: SWAP3
000011f9: DUP3
000011fa: SWAP1
000011fb: SUB
000011fc: ADD
000011fd: SWAP1
000011fe: LOG2
000011ff: POP
00001200: JUMPDEST
00001201: POP
00001202: POP
00001203: JUMP
00001204: JUMPDEST
00001205: PUSH1 0x3c
00001207: SLOAD
00001208: PUSH1 0x01
0000120a: PUSH1 0x01
0000120c: PUSH1 0xa0
0000120e: SHL
0000120f: SUB
00001210: AND
00001211: PUSH2 0x1218
00001214: PUSH2 0x18d6
00001217: JUMP
00001218: JUMPDEST
00001219: PUSH1 0x01
0000121b: PUSH1 0x01
0000121d: PUSH1 0xa0
0000121f: SHL
00001220: SUB
00001221: AND
00001222: EQ
00001223: PUSH1 0x40
00001225: MLOAD
00001226: DUP1
00001227: PUSH1 0x40
00001229: ADD
0000122a: PUSH1 0x40
0000122c: MSTORE
0000122d: DUP1
0000122e: PUSH1 0x02
00001230: DUP2
00001231: MSTORE
00001232: PUSH1 0x20
00001234: ADD
00001235: PUSH2 0x3239
00001238: PUSH1 0xf0
0000123a: SHL
0000123b: DUP2
0000123c: MSTORE
0000123d: POP
0000123e: SWAP1
0000123f: PUSH2 0x1289
00001242: JUMPI
00001243: PUSH1 0x40
00001245: MLOAD
00001246: PUSH3 0x461bcd
0000124a: PUSH1 0xe5
0000124c: SHL
0000124d: DUP2
0000124e: MSTORE
0000124f: PUSH1 0x20
00001251: PUSH1 0x04
00001253: DUP3
00001254: ADD
00001255: DUP2
00001256: DUP2
00001257: MSTORE
00001258: DUP4
00001259: MLOAD
0000125a: PUSH1 0x24
0000125c: DUP5
0000125d: ADD
0000125e: MSTORE
0000125f: DUP4
00001260: MLOAD
00001261: SWAP1
00001262: SWAP3
00001263: DUP4
00001264: SWAP3
00001265: PUSH1 0x44
00001267: SWAP1
00001268: SWAP2
00001269: ADD
0000126a: SWAP2
0000126b: SWAP1
0000126c: DUP6
0000126d: ADD
0000126e: SWAP1
0000126f: DUP1
00001270: DUP4
00001271: DUP4
00001272: PUSH1 0x00
00001274: DUP4
00001275: ISZERO
00001276: PUSH2 0x08b6
00001279: JUMPI
0000127a: DUP2
0000127b: DUP2
0000127c: ADD
0000127d: MLOAD
0000127e: DUP4
0000127f: DUP3
00001280: ADD
00001281: MSTORE
00001282: PUSH1 0x20
00001284: ADD
00001285: PUSH2 0x089e
00001288: JUMP
00001289: JUMPDEST
0000128a: POP
0000128b: POP
0000128c: POP
0000128d: JUMP
0000128e: JUMPDEST
0000128f: PUSH1 0x38
00001291: DUP1
00001292: SLOAD
00001293: PUSH1 0x40
00001295: DUP1
00001296: MLOAD
00001297: PUSH1 0x20
00001299: PUSH1 0x1f
0000129b: PUSH1 0x02
0000129d: PUSH1 0x00
0000129f: NOT
000012a0: PUSH2 0x0100
000012a3: PUSH1 0x01
000012a5: DUP9
000012a6: AND
000012a7: ISZERO
000012a8: MUL
000012a9: ADD
000012aa: SWAP1
000012ab: SWAP6
000012ac: AND
000012ad: SWAP5
000012ae: SWAP1
000012af: SWAP5
000012b0: DIV
000012b1: SWAP4
000012b2: DUP5
000012b3: ADD
000012b4: DUP2
000012b5: SWAP1
000012b6: DIV
000012b7: DUP2
000012b8: MUL
000012b9: DUP3
000012ba: ADD
000012bb: DUP2
000012bc: ADD
000012bd: SWAP1
000012be: SWAP3
000012bf: MSTORE
000012c0: DUP3
000012c1: DUP2
000012c2: MSTORE
000012c3: PUSH1 0x60
000012c5: SWAP4
000012c6: SWAP1
000012c7: SWAP3
000012c8: SWAP1
000012c9: SWAP2
000012ca: DUP4
000012cb: ADD
000012cc: DUP3
000012cd: DUP3
000012ce: DUP1
000012cf: ISZERO
000012d0: PUSH2 0x07e1
000012d3: JUMPI
000012d4: DUP1
000012d5: PUSH1 0x1f
000012d7: LT
000012d8: PUSH2 0x07b6
000012db: JUMPI
000012dc: PUSH2 0x0100
000012df: DUP1
000012e0: DUP4
000012e1: SLOAD
000012e2: DIV
000012e3: MUL
000012e4: DUP4
000012e5: MSTORE
000012e6: SWAP2
000012e7: PUSH1 0x20
000012e9: ADD
000012ea: SWAP2
000012eb: PUSH2 0x07e1
000012ee: JUMP
000012ef: JUMPDEST
000012f0: PUSH1 0x00
000012f2: PUSH2 0x0800
000012f5: PUSH2 0x12fc
000012f8: PUSH2 0x18d6
000012fb: JUMP
000012fc: JUMPDEST
000012fd: DUP5
000012fe: PUSH2 0x0ea4
00001301: DUP6
00001302: PUSH1 0x40
00001304: MLOAD
00001305: DUP1
00001306: PUSH1 0x60
00001308: ADD
00001309: PUSH1 0x40
0000130b: MSTORE
0000130c: DUP1
0000130d: PUSH1 0x25
0000130f: DUP2
00001310: MSTORE
00001311: PUSH1 0x20
00001313: ADD
00001314: PUSH2 0x2782
00001317: PUSH1 0x25
00001319: SWAP2
0000131a: CODECOPY
0000131b: PUSH1 0x35
0000131d: PUSH1 0x00
0000131f: PUSH2 0x1326
00001322: PUSH2 0x18d6
00001325: JUMP
00001326: JUMPDEST
00001327: PUSH1 0x01
00001329: PUSH1 0x01
0000132b: PUSH1 0xa0
0000132d: SHL
0000132e: SUB
0000132f: SWAP1
00001330: DUP2
00001331: AND
00001332: DUP3
00001333: MSTORE
00001334: PUSH1 0x20
00001336: DUP1
00001337: DUP4
00001338: ADD
00001339: SWAP4
0000133a: SWAP1
0000133b: SWAP4
0000133c: MSTORE
0000133d: PUSH1 0x40
0000133f: SWAP2
00001340: DUP3
00001341: ADD
00001342: PUSH1 0x00
00001344: SWAP1
00001345: DUP2
00001346: KECCAK256
00001347: SWAP2
00001348: DUP14
00001349: AND
0000134a: DUP2
0000134b: MSTORE
0000134c: SWAP3
0000134d: MSTORE
0000134e: SWAP1
0000134f: KECCAK256
00001350: SLOAD
00001351: SWAP2
00001352: SWAP1
00001353: PUSH2 0x1d51
00001356: JUMP
00001357: JUMPDEST
00001358: PUSH1 0x00
0000135a: PUSH2 0x136b
0000135d: PUSH2 0x1364
00001360: PUSH2 0x18d6
00001363: JUMP
00001364: JUMPDEST
00001365: DUP5
00001366: DUP5
00001367: PUSH2 0x1d44
0000136a: JUMP
0000136b: JUMPDEST
0000136c: DUP3
0000136d: PUSH1 0x01
0000136f: PUSH1 0x01
00001371: PUSH1 0xa0
00001373: SHL
00001374: SUB
00001375: AND
00001376: PUSH2 0x137d
00001379: PUSH2 0x18d6
0000137c: JUMP
0000137d: JUMPDEST
0000137e: PUSH1 0x01
00001380: PUSH1 0x01
00001382: PUSH1 0xa0
00001384: SHL
00001385: SUB
00001386: AND
00001387: PUSH1 0x00
00001389: DUP1
0000138a: MLOAD
0000138b: PUSH1 0x20
0000138d: PUSH2 0x26ce
00001390: DUP4
00001391: CODECOPY
00001392: DUP2
00001393: MLOAD
00001394: SWAP2
00001395: MSTORE
00001396: DUP5
00001397: PUSH1 0x40
00001399: MLOAD
0000139a: DUP1
0000139b: DUP3
0000139c: DUP2
0000139d: MSTORE
0000139e: PUSH1 0x20
000013a0: ADD
000013a1: SWAP2
000013a2: POP
000013a3: POP
000013a4: PUSH1 0x40
000013a6: MLOAD
000013a7: DUP1
000013a8: SWAP2
000013a9: SUB
000013aa: SWAP1
000013ab: LOG3
000013ac: POP
000013ad: PUSH1 0x01
000013af: SWAP3
000013b0: SWAP2
000013b1: POP
000013b2: POP
000013b3: JUMP
000013b4: JUMPDEST
000013b5: PUSH1 0x3d
000013b7: SLOAD
000013b8: PUSH1 0x01
000013ba: PUSH1 0x01
000013bc: PUSH1 0xa0
000013be: SHL
000013bf: SUB
000013c0: AND
000013c1: SWAP1
000013c2: JUMP
000013c3: JUMPDEST
000013c4: PUSH1 0x3e
000013c6: SLOAD
000013c7: PUSH1 0x01
000013c9: PUSH1 0x01
000013cb: PUSH1 0xa0
000013cd: SHL
000013ce: SUB
000013cf: AND
000013d0: SWAP1
000013d1: JUMP
000013d2: JUMPDEST
000013d3: PUSH1 0x00
000013d5: PUSH2 0x10bb
000013d8: PUSH2 0x19e1
000013db: JUMP
000013dc: JUMPDEST
000013dd: PUSH1 0x3a
000013df: PUSH1 0x20
000013e1: MSTORE
000013e2: PUSH1 0x00
000013e4: SWAP1
000013e5: DUP2
000013e6: MSTORE
000013e7: PUSH1 0x40
000013e9: SWAP1
000013ea: KECCAK256
000013eb: SLOAD
000013ec: DUP2
000013ed: JUMP
000013ee: JUMPDEST
000013ef: PUSH1 0x01
000013f1: PUSH1 0x01
000013f3: PUSH1 0xa0
000013f5: SHL
000013f6: SUB
000013f7: DUP8
000013f8: AND
000013f9: PUSH2 0x1439
000013fc: JUMPI
000013fd: PUSH1 0x40
000013ff: DUP1
00001400: MLOAD
00001401: PUSH3 0x461bcd
00001405: PUSH1 0xe5
00001407: SHL
00001408: DUP2
00001409: MSTORE
0000140a: PUSH1 0x20
0000140c: PUSH1 0x04
0000140e: DUP3
0000140f: ADD
00001410: MSTORE
00001411: PUSH1 0x0d
00001413: PUSH1 0x24
00001415: DUP3
00001416: ADD
00001417: MSTORE
00001418: PUSH13 0x24a72b20a624a22fa7aba722a9
00001426: PUSH1 0x99
00001428: SHL
00001429: PUSH1 0x44
0000142b: DUP3
0000142c: ADD
0000142d: MSTORE
0000142e: SWAP1
0000142f: MLOAD
00001430: SWAP1
00001431: DUP2
00001432: SWAP1
00001433: SUB
00001434: PUSH1 0x64
00001436: ADD
00001437: SWAP1
00001438: REVERT
00001439: JUMPDEST
0000143a: DUP4
0000143b: TIMESTAMP
0000143c: GT
0000143d: ISZERO
0000143e: PUSH2 0x1483
00001441: JUMPI
00001442: PUSH1 0x40
00001444: DUP1
00001445: MLOAD
00001446: PUSH3 0x461bcd
0000144a: PUSH1 0xe5
0000144c: SHL
0000144d: DUP2
0000144e: MSTORE
0000144f: PUSH1 0x20
00001451: PUSH1 0x04
00001453: DUP3
00001454: ADD
00001455: MSTORE
00001456: PUSH1 0x12
00001458: PUSH1 0x24
0000145a: DUP3
0000145b: ADD
0000145c: MSTORE
0000145d: PUSH18 0x24a72b20a624a22fa2ac2824a920aa24a7a7
00001470: PUSH1 0x71
00001472: SHL
00001473: PUSH1 0x44
00001475: DUP3
00001476: ADD
00001477: MSTORE
00001478: SWAP1
00001479: MLOAD
0000147a: SWAP1
0000147b: DUP2
0000147c: SWAP1
0000147d: SUB
0000147e: PUSH1 0x64
00001480: ADD
00001481: SWAP1
00001482: REVERT
00001483: JUMPDEST
00001484: PUSH1 0x01
00001486: PUSH1 0x01
00001488: PUSH1 0xa0
0000148a: SHL
0000148b: SUB
0000148c: DUP1
0000148d: DUP9
0000148e: AND
0000148f: PUSH1 0x00
00001491: DUP2
00001492: DUP2
00001493: MSTORE
00001494: PUSH1 0x3a
00001496: PUSH1 0x20
00001498: SWAP1
00001499: DUP2
0000149a: MSTORE
0000149b: PUSH1 0x40
0000149d: DUP1
0000149e: DUP4
0000149f: KECCAK256
000014a0: SLOAD
000014a1: PUSH1 0x3b
000014a3: SLOAD
000014a4: DUP3
000014a5: MLOAD
000014a6: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9
000014c7: DUP2
000014c8: DUP7
000014c9: ADD
000014ca: MSTORE
000014cb: DUP1
000014cc: DUP5
000014cd: ADD
000014ce: SWAP7
000014cf: SWAP1
000014d0: SWAP7
000014d1: MSTORE
000014d2: SWAP6
000014d3: DUP13
000014d4: AND
000014d5: PUSH1 0x60
000014d7: DUP7
000014d8: ADD
000014d9: MSTORE
000014da: PUSH1 0x80
000014dc: DUP6
000014dd: ADD
000014de: DUP12
000014df: SWAP1
000014e0: MSTORE
000014e1: PUSH1 0xa0
000014e3: DUP6
000014e4: ADD
000014e5: DUP2
000014e6: SWAP1
000014e7: MSTORE
000014e8: PUSH1 0xc0
000014ea: DUP1
000014eb: DUP7
000014ec: ADD
000014ed: DUP12
000014ee: SWAP1
000014ef: MSTORE
000014f0: DUP3
000014f1: MLOAD
000014f2: DUP1
000014f3: DUP8
000014f4: SUB
000014f5: SWAP1
000014f6: SWAP2
000014f7: ADD
000014f8: DUP2
000014f9: MSTORE
000014fa: PUSH1 0xe0
000014fc: DUP7
000014fd: ADD
000014fe: DUP4
000014ff: MSTORE
00001500: DUP1
00001501: MLOAD
00001502: SWAP1
00001503: DUP5
00001504: ADD
00001505: KECCAK256
00001506: PUSH2 0x1901
00001509: PUSH1 0xf0
0000150b: SHL
0000150c: PUSH2 0x0100
0000150f: DUP8
00001510: ADD
00001511: MSTORE
00001512: PUSH2 0x0102
00001515: DUP7
00001516: ADD
00001517: SWAP7
00001518: SWAP1
00001519: SWAP7
0000151a: MSTORE
0000151b: PUSH2 0x0122
0000151e: DUP1
0000151f: DUP7
00001520: ADD
00001521: SWAP7
00001522: SWAP1
00001523: SWAP7
00001524: MSTORE
00001525: DUP2
00001526: MLOAD
00001527: DUP1
00001528: DUP7
00001529: SUB
0000152a: SWAP1
0000152b: SWAP7
0000152c: ADD
0000152d: DUP7
0000152e: MSTORE
0000152f: PUSH2 0x0142
00001532: DUP6
00001533: ADD
00001534: DUP1
00001535: DUP4
00001536: MSTORE
00001537: DUP7
00001538: MLOAD
00001539: SWAP7
0000153a: DUP5
0000153b: ADD
0000153c: SWAP7
0000153d: SWAP1
0000153e: SWAP7
0000153f: KECCAK256
00001540: SWAP4
00001541: SWAP1
00001542: SWAP6
00001543: MSTORE
00001544: PUSH2 0x0162
00001547: DUP5
00001548: ADD
00001549: DUP1
0000154a: DUP3
0000154b: MSTORE
0000154c: DUP4
0000154d: SWAP1
0000154e: MSTORE
0000154f: PUSH1 0xff
00001551: DUP9
00001552: AND
00001553: PUSH2 0x0182
00001556: DUP6
00001557: ADD
00001558: MSTORE
00001559: PUSH2 0x01a2
0000155c: DUP5
0000155d: ADD
0000155e: DUP8
0000155f: SWAP1
00001560: MSTORE
00001561: PUSH2 0x01c2
00001564: DUP5
00001565: ADD
00001566: DUP7
00001567: SWAP1
00001568: MSTORE
00001569: MLOAD
0000156a: SWAP2
0000156b: SWAP3
0000156c: PUSH1 0x01
0000156e: SWAP3
0000156f: PUSH2 0x01e2
00001572: DUP1
00001573: DUP4
00001574: ADD
00001575: SWAP4
00001576: SWAP3
00001577: PUSH1 0x1f
00001579: NOT
0000157a: DUP4
0000157b: ADD
0000157c: SWAP3
0000157d: SWAP1
0000157e: DUP2
0000157f: SWAP1
00001580: SUB
00001581: SWAP1
00001582: SWAP2
00001583: ADD
00001584: SWAP1
00001585: DUP6
00001586: GAS
00001587: STATICCALL
00001588: ISZERO
00001589: DUP1
0000158a: ISZERO
0000158b: PUSH2 0x1598
0000158e: JUMPI
0000158f: RETURNDATASIZE
00001590: PUSH1 0x00
00001592: DUP1
00001593: RETURNDATACOPY
00001594: RETURNDATASIZE
00001595: PUSH1 0x00
00001597: REVERT
00001598: JUMPDEST
00001599: POP
0000159a: POP
0000159b: POP
0000159c: PUSH1 0x20
0000159e: PUSH1 0x40
000015a0: MLOAD
000015a1: SUB
000015a2: MLOAD
000015a3: PUSH1 0x01
000015a5: PUSH1 0x01
000015a7: PUSH1 0xa0
000015a9: SHL
000015aa: SUB
000015ab: AND
000015ac: DUP10
000015ad: PUSH1 0x01
000015af: PUSH1 0x01
000015b1: PUSH1 0xa0
000015b3: SHL
000015b4: SUB
000015b5: AND
000015b6: EQ
000015b7: PUSH2 0x15fb
000015ba: JUMPI
000015bb: PUSH1 0x40
000015bd: DUP1
000015be: MLOAD
000015bf: PUSH3 0x461bcd
000015c3: PUSH1 0xe5
000015c5: SHL
000015c6: DUP2
000015c7: MSTORE
000015c8: PUSH1 0x20
000015ca: PUSH1 0x04
000015cc: DUP3
000015cd: ADD
000015ce: MSTORE
000015cf: PUSH1 0x11
000015d1: PUSH1 0x24
000015d3: DUP3
000015d4: ADD
000015d5: MSTORE
000015d6: PUSH17 0x494e56414c49445f5349474e4154555245
000015e8: PUSH1 0x78
000015ea: SHL
000015eb: PUSH1 0x44
000015ed: DUP3
000015ee: ADD
000015ef: MSTORE
000015f0: SWAP1
000015f1: MLOAD
000015f2: SWAP1
000015f3: DUP2
000015f4: SWAP1
000015f5: SUB
000015f6: PUSH1 0x64
000015f8: ADD
000015f9: SWAP1
000015fa: REVERT
000015fb: JUMPDEST
000015fc: PUSH2 0x1606
000015ff: DUP3
00001600: PUSH1 0x01
00001602: PUSH2 0x1dab
00001605: JUMP
00001606: JUMPDEST
00001607: PUSH1 0x01
00001609: PUSH1 0x01
0000160b: PUSH1 0xa0
0000160d: SHL
0000160e: SUB
0000160f: DUP11
00001610: AND
00001611: PUSH1 0x00
00001613: SWAP1
00001614: DUP2
00001615: MSTORE
00001616: PUSH1 0x3a
00001618: PUSH1 0x20
0000161a: MSTORE
0000161b: PUSH1 0x40
0000161d: SWAP1
0000161e: KECCAK256
0000161f: SSTORE
00001620: PUSH2 0x162a
00001623: DUP10
00001624: DUP10
00001625: DUP10
00001626: PUSH2 0x18da
00001629: JUMP
0000162a: JUMPDEST
0000162b: POP
0000162c: POP
0000162d: POP
0000162e: POP
0000162f: POP
00001630: POP
00001631: POP
00001632: POP
00001633: POP
00001634: JUMP
00001635: JUMPDEST
00001636: PUSH1 0x3c
00001638: SLOAD
00001639: PUSH1 0x01
0000163b: PUSH1 0x01
0000163d: PUSH1 0xa0
0000163f: SHL
00001640: SUB
00001641: AND
00001642: PUSH2 0x1649
00001645: PUSH2 0x18d6
00001648: JUMP
00001649: JUMPDEST
0000164a: PUSH1 0x01
0000164c: PUSH1 0x01
0000164e: PUSH1 0xa0
00001650: SHL
00001651: SUB
00001652: AND
00001653: EQ
00001654: PUSH1 0x40
00001656: MLOAD
00001657: DUP1
00001658: PUSH1 0x40
0000165a: ADD
0000165b: PUSH1 0x40
0000165d: MSTORE
0000165e: DUP1
0000165f: PUSH1 0x02
00001661: DUP2
00001662: MSTORE
00001663: PUSH1 0x20
00001665: ADD
00001666: PUSH2 0x3239
00001669: PUSH1 0xf0
0000166b: SHL
0000166c: DUP2
0000166d: MSTORE
0000166e: POP
0000166f: SWAP1
00001670: PUSH2 0x16ba
00001673: JUMPI
00001674: PUSH1 0x40
00001676: MLOAD
00001677: PUSH3 0x461bcd
0000167b: PUSH1 0xe5
0000167d: SHL
0000167e: DUP2
0000167f: MSTORE
00001680: PUSH1 0x20
00001682: PUSH1 0x04
00001684: DUP3
00001685: ADD
00001686: DUP2
00001687: DUP2
00001688: MSTORE
00001689: DUP4
0000168a: MLOAD
0000168b: PUSH1 0x24
0000168d: DUP5
0000168e: ADD
0000168f: MSTORE
00001690: DUP4
00001691: MLOAD
00001692: SWAP1
00001693: SWAP3
00001694: DUP4
00001695: SWAP3
00001696: PUSH1 0x44
00001698: SWAP1
00001699: SWAP2
0000169a: ADD
0000169b: SWAP2
0000169c: SWAP1
0000169d: DUP6
0000169e: ADD
0000169f: SWAP1
000016a0: DUP1
000016a1: DUP4
000016a2: DUP4
000016a3: PUSH1 0x00
000016a5: DUP4
000016a6: ISZERO
000016a7: PUSH2 0x08b6
000016aa: JUMPI
000016ab: DUP2
000016ac: DUP2
000016ad: ADD
000016ae: MLOAD
000016af: DUP4
000016b0: DUP3
000016b1: ADD
000016b2: MSTORE
000016b3: PUSH1 0x20
000016b5: ADD
000016b6: PUSH2 0x089e
000016b9: JUMP
000016ba: JUMPDEST
000016bb: POP
000016bc: PUSH1 0x00
000016be: PUSH2 0x16c7
000016c1: DUP4
000016c2: DUP4
000016c3: PUSH2 0x19e7
000016c6: JUMP
000016c7: JUMPDEST
000016c8: PUSH1 0x40
000016ca: DUP1
000016cb: MLOAD
000016cc: DUP1
000016cd: DUP3
000016ce: ADD
000016cf: SWAP1
000016d0: SWAP2
000016d1: MSTORE
000016d2: PUSH1 0x02
000016d4: DUP2
000016d5: MSTORE
000016d6: PUSH2 0x06a7
000016d9: PUSH1 0xf3
000016db: SHL
000016dc: PUSH1 0x20
000016de: DUP3
000016df: ADD
000016e0: MSTORE
000016e1: SWAP1
000016e2: SWAP2
000016e3: POP
000016e4: DUP2
000016e5: PUSH2 0x172f
000016e8: JUMPI
000016e9: PUSH1 0x40
000016eb: MLOAD
000016ec: PUSH3 0x461bcd
000016f0: PUSH1 0xe5
000016f2: SHL
000016f3: DUP2
000016f4: MSTORE
000016f5: PUSH1 0x20
000016f7: PUSH1 0x04
000016f9: DUP3
000016fa: ADD
000016fb: DUP2
000016fc: DUP2
000016fd: MSTORE
000016fe: DUP4
000016ff: MLOAD
00001700: PUSH1 0x24
00001702: DUP5
00001703: ADD
00001704: MSTORE
00001705: DUP4
00001706: MLOAD
00001707: SWAP1
00001708: SWAP3
00001709: DUP4
0000170a: SWAP3
0000170b: PUSH1 0x44
0000170d: SWAP1
0000170e: SWAP2
0000170f: ADD
00001710: SWAP2
00001711: SWAP1
00001712: DUP6
00001713: ADD
00001714: SWAP1
00001715: DUP1
00001716: DUP4
00001717: DUP4
00001718: PUSH1 0x00
0000171a: DUP4
0000171b: ISZERO
0000171c: PUSH2 0x08b6
0000171f: JUMPI
00001720: DUP2
00001721: DUP2
00001722: ADD
00001723: MLOAD
00001724: DUP4
00001725: DUP3
00001726: ADD
00001727: MSTORE
00001728: PUSH1 0x20
0000172a: ADD
0000172b: PUSH2 0x089e
0000172e: JUMP
0000172f: JUMPDEST
00001730: POP
00001731: PUSH2 0x173a
00001734: DUP6
00001735: DUP3
00001736: PUSH2 0x1e6d
00001739: JUMP
0000173a: JUMPDEST
0000173b: PUSH1 0x3e
0000173d: SLOAD
0000173e: PUSH2 0x1751
00001741: SWAP1
00001742: PUSH1 0x01
00001744: PUSH1 0x01
00001746: PUSH1 0xa0
00001748: SHL
00001749: SUB
0000174a: AND
0000174b: DUP6
0000174c: DUP6
0000174d: PUSH2 0x1e0c
00001750: JUMP
00001751: JUMPDEST
00001752: PUSH1 0x40
00001754: DUP1
00001755: MLOAD
00001756: DUP5
00001757: DUP2
00001758: MSTORE
00001759: SWAP1
0000175a: MLOAD
0000175b: PUSH1 0x00
0000175d: SWAP2
0000175e: PUSH1 0x01
00001760: PUSH1 0x01
00001762: PUSH1 0xa0
00001764: SHL
00001765: SUB
00001766: DUP9
00001767: AND
00001768: SWAP2
00001769: PUSH1 0x00
0000176b: DUP1
0000176c: MLOAD
0000176d: PUSH1 0x20
0000176f: PUSH2 0x26ce
00001772: DUP4
00001773: CODECOPY
00001774: DUP2
00001775: MLOAD
00001776: SWAP2
00001777: MSTORE
00001778: SWAP2
00001779: DUP2
0000177a: SWAP1
0000177b: SUB
0000177c: PUSH1 0x20
0000177e: ADD
0000177f: SWAP1
00001780: LOG3
00001781: DUP4
00001782: PUSH1 0x01
00001784: PUSH1 0x01
00001786: PUSH1 0xa0
00001788: SHL
00001789: SUB
0000178a: AND
0000178b: DUP6
0000178c: PUSH1 0x01
0000178e: PUSH1 0x01
00001790: PUSH1 0xa0
00001792: SHL
00001793: SUB
00001794: AND
00001795: PUSH32 0x5d624aa9c148153ab3446c1b154f660ee7701e549fe9b62dab7171b1c80e6fa2
000017b6: DUP6
000017b7: DUP6
000017b8: PUSH1 0x40
000017ba: MLOAD
000017bb: DUP1
000017bc: DUP4
000017bd: DUP2
000017be: MSTORE
000017bf: PUSH1 0x20
000017c1: ADD
000017c2: DUP3
000017c3: DUP2
000017c4: MSTORE
000017c5: PUSH1 0x20
000017c7: ADD
000017c8: SWAP3
000017c9: POP
000017ca: POP
000017cb: POP
000017cc: PUSH1 0x40
000017ce: MLOAD
000017cf: DUP1
000017d0: SWAP2
000017d1: SUB
000017d2: SWAP1
000017d3: LOG3
000017d4: POP
000017d5: POP
000017d6: POP
000017d7: POP
000017d8: POP
000017d9: JUMP
000017da: JUMPDEST
000017db: PUSH1 0x01
000017dd: PUSH1 0x01
000017df: PUSH1 0xa0
000017e1: SHL
000017e2: SUB
000017e3: SWAP2
000017e4: DUP3
000017e5: AND
000017e6: PUSH1 0x00
000017e8: SWAP1
000017e9: DUP2
000017ea: MSTORE
000017eb: PUSH1 0x35
000017ed: PUSH1 0x20
000017ef: SWAP1
000017f0: DUP2
000017f1: MSTORE
000017f2: PUSH1 0x40
000017f4: DUP1
000017f5: DUP4
000017f6: KECCAK256
000017f7: SWAP4
000017f8: SWAP1
000017f9: SWAP5
000017fa: AND
000017fb: DUP3
000017fc: MSTORE
000017fd: SWAP2
000017fe: SWAP1
000017ff: SWAP2
00001800: MSTORE
00001801: KECCAK256
00001802: SLOAD
00001803: SWAP1
00001804: JUMP
00001805: JUMPDEST
00001806: PUSH1 0x3c
00001808: SLOAD
00001809: PUSH1 0x01
0000180b: PUSH1 0x01
0000180d: PUSH1 0xa0
0000180f: SHL
00001810: SUB
00001811: AND
00001812: PUSH2 0x1819
00001815: PUSH2 0x18d6
00001818: JUMP
00001819: JUMPDEST
0000181a: PUSH1 0x01
0000181c: PUSH1 0x01
0000181e: PUSH1 0xa0
00001820: SHL
00001821: SUB
00001822: AND
00001823: EQ
00001824: PUSH1 0x40
00001826: MLOAD
00001827: DUP1
00001828: PUSH1 0x40
0000182a: ADD
0000182b: PUSH1 0x40
0000182d: MSTORE
0000182e: DUP1
0000182f: PUSH1 0x02
00001831: DUP2
00001832: MSTORE
00001833: PUSH1 0x20
00001835: ADD
00001836: PUSH2 0x3239
00001839: PUSH1 0xf0
0000183b: SHL
0000183c: DUP2
0000183d: MSTORE
0000183e: POP
0000183f: SWAP1
00001840: PUSH2 0x188a
00001843: JUMPI
00001844: PUSH1 0x40
00001846: MLOAD
00001847: PUSH3 0x461bcd
0000184b: PUSH1 0xe5
0000184d: SHL
0000184e: DUP2
0000184f: MSTORE
00001850: PUSH1 0x20
00001852: PUSH1 0x04
00001854: DUP3
00001855: ADD
00001856: DUP2
00001857: DUP2
00001858: MSTORE
00001859: DUP4
0000185a: MLOAD
0000185b: PUSH1 0x24
0000185d: DUP5
0000185e: ADD
0000185f: MSTORE
00001860: DUP4
00001861: MLOAD
00001862: SWAP1
00001863: SWAP3
00001864: DUP4
00001865: SWAP3
00001866: PUSH1 0x44
00001868: SWAP1
00001869: SWAP2
0000186a: ADD
0000186b: SWAP2
0000186c: SWAP1
0000186d: DUP6
0000186e: ADD
0000186f: SWAP1
00001870: DUP1
00001871: DUP4
00001872: DUP4
00001873: PUSH1 0x00
00001875: DUP4
00001876: ISZERO
00001877: PUSH2 0x08b6
0000187a: JUMPI
0000187b: DUP2
0000187c: DUP2
0000187d: ADD
0000187e: MLOAD
0000187f: DUP4
00001880: DUP3
00001881: ADD
00001882: MSTORE
00001883: PUSH1 0x20
00001885: ADD
00001886: PUSH2 0x089e
00001889: JUMP
0000188a: JUMPDEST
0000188b: POP
0000188c: PUSH2 0x1898
0000188f: DUP4
00001890: DUP4
00001891: DUP4
00001892: PUSH1 0x00
00001894: PUSH2 0x1f11
00001897: JUMP
00001898: JUMPDEST
00001899: DUP2
0000189a: PUSH1 0x01
0000189c: PUSH1 0x01
0000189e: PUSH1 0xa0
000018a0: SHL
000018a1: SUB
000018a2: AND
000018a3: DUP4
000018a4: PUSH1 0x01
000018a6: PUSH1 0x01
000018a8: PUSH1 0xa0
000018aa: SHL
000018ab: SUB
000018ac: AND
000018ad: PUSH1 0x00
000018af: DUP1
000018b0: MLOAD
000018b1: PUSH1 0x20
000018b3: PUSH2 0x26ce
000018b6: DUP4
000018b7: CODECOPY
000018b8: DUP2
000018b9: MLOAD
000018ba: SWAP2
000018bb: MSTORE
000018bc: DUP4
000018bd: PUSH1 0x40
000018bf: MLOAD
000018c0: DUP1
000018c1: DUP3
000018c2: DUP2
000018c3: MSTORE
000018c4: PUSH1 0x20
000018c6: ADD
000018c7: SWAP2
000018c8: POP
000018c9: POP
000018ca: PUSH1 0x40
000018cc: MLOAD
000018cd: DUP1
000018ce: SWAP2
000018cf: SUB
000018d0: SWAP1
000018d1: LOG3
000018d2: POP
000018d3: POP
000018d4: POP
000018d5: JUMP
000018d6: JUMPDEST
000018d7: CALLER
000018d8: SWAP1
000018d9: JUMP
000018da: JUMPDEST
000018db: PUSH1 0x01
000018dd: PUSH1 0x01
000018df: PUSH1 0xa0
000018e1: SHL
000018e2: SUB
000018e3: DUP4
000018e4: AND
000018e5: PUSH2 0x191f
000018e8: JUMPI
000018e9: PUSH1 0x40
000018eb: MLOAD
000018ec: PUSH3 0x461bcd
000018f0: PUSH1 0xe5
000018f2: SHL
000018f3: DUP2
000018f4: MSTORE
000018f5: PUSH1 0x04
000018f7: ADD
000018f8: DUP1
000018f9: DUP1
000018fa: PUSH1 0x20
000018fc: ADD
000018fd: DUP3
000018fe: DUP2
000018ff: SUB
00001900: DUP3
00001901: MSTORE
00001902: PUSH1 0x24
00001904: DUP2
00001905: MSTORE
00001906: PUSH1 0x20
00001908: ADD
00001909: DUP1
0000190a: PUSH2 0x2734
0000190d: PUSH1 0x24
0000190f: SWAP2
00001910: CODECOPY
00001911: PUSH1 0x40
00001913: ADD
00001914: SWAP2
00001915: POP
00001916: POP
00001917: PUSH1 0x40
00001919: MLOAD
0000191a: DUP1
0000191b: SWAP2
0000191c: SUB
0000191d: SWAP1
0000191e: REVERT
0000191f: JUMPDEST
00001920: PUSH1 0x01
00001922: PUSH1 0x01
00001924: PUSH1 0xa0
00001926: SHL
00001927: SUB
00001928: DUP3
00001929: AND
0000192a: PUSH2 0x1964
0000192d: JUMPI
0000192e: PUSH1 0x40
00001930: MLOAD
00001931: PUSH3 0x461bcd
00001935: PUSH1 0xe5
00001937: SHL
00001938: DUP2
00001939: MSTORE
0000193a: PUSH1 0x04
0000193c: ADD
0000193d: DUP1
0000193e: DUP1
0000193f: PUSH1 0x20
00001941: ADD
00001942: DUP3
00001943: DUP2
00001944: SUB
00001945: DUP3
00001946: MSTORE
00001947: PUSH1 0x22
00001949: DUP2
0000194a: MSTORE
0000194b: PUSH1 0x20
0000194d: ADD
0000194e: DUP1
0000194f: PUSH2 0x2630
00001952: PUSH1 0x22
00001954: SWAP2
00001955: CODECOPY
00001956: PUSH1 0x40
00001958: ADD
00001959: SWAP2
0000195a: POP
0000195b: POP
0000195c: PUSH1 0x40
0000195e: MLOAD
0000195f: DUP1
00001960: SWAP2
00001961: SUB
00001962: SWAP1
00001963: REVERT
00001964: JUMPDEST
00001965: PUSH1 0x01
00001967: PUSH1 0x01
00001969: PUSH1 0xa0
0000196b: SHL
0000196c: SUB
0000196d: DUP1
0000196e: DUP5
0000196f: AND
00001970: PUSH1 0x00
00001972: DUP2
00001973: DUP2
00001974: MSTORE
00001975: PUSH1 0x35
00001977: PUSH1 0x20
00001979: SWAP1
0000197a: DUP2
0000197b: MSTORE
0000197c: PUSH1 0x40
0000197e: DUP1
0000197f: DUP4
00001980: KECCAK256
00001981: SWAP5
00001982: DUP8
00001983: AND
00001984: DUP1
00001985: DUP5
00001986: MSTORE
00001987: SWAP5
00001988: DUP3
00001989: MSTORE
0000198a: SWAP2
0000198b: DUP3
0000198c: SWAP1
0000198d: KECCAK256
0000198e: DUP6
0000198f: SWAP1
00001990: SSTORE
00001991: DUP2
00001992: MLOAD
00001993: DUP6
00001994: DUP2
00001995: MSTORE
00001996: SWAP2
00001997: MLOAD
00001998: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
000019b9: SWAP3
000019ba: DUP2
000019bb: SWAP1
000019bc: SUB
000019bd: SWAP1
000019be: SWAP2
000019bf: ADD
000019c0: SWAP1
000019c1: LOG3
000019c2: POP
000019c3: POP
000019c4: POP
000019c5: JUMP
000019c6: JUMPDEST
000019c7: PUSH1 0x01
000019c9: PUSH1 0x01
000019cb: PUSH1 0xa0
000019cd: SHL
000019ce: SUB
000019cf: AND
000019d0: PUSH1 0x00
000019d2: SWAP1
000019d3: DUP2
000019d4: MSTORE
000019d5: PUSH1 0x34
000019d7: PUSH1 0x20
000019d9: MSTORE
000019da: PUSH1 0x40
000019dc: SWAP1
000019dd: KECCAK256
000019de: SLOAD
000019df: SWAP1
000019e0: JUMP
000019e1: JUMPDEST
000019e2: PUSH1 0x36
000019e4: SLOAD
000019e5: SWAP1
000019e6: JUMP
000019e7: JUMPDEST
000019e8: PUSH1 0x40
000019ea: DUP1
000019eb: MLOAD
000019ec: DUP1
000019ed: DUP3
000019ee: ADD
000019ef: SWAP1
000019f0: SWAP2
000019f1: MSTORE
000019f2: PUSH1 0x02
000019f4: DUP2
000019f5: MSTORE
000019f6: PUSH2 0x0353
000019f9: PUSH1 0xf4
000019fb: SHL
000019fc: PUSH1 0x20
000019fe: DUP3
000019ff: ADD
00001a00: MSTORE
00001a01: PUSH1 0x00
00001a03: SWAP1
00001a04: DUP3
00001a05: PUSH2 0x1a4f
00001a08: JUMPI
00001a09: PUSH1 0x40
00001a0b: MLOAD
00001a0c: PUSH3 0x461bcd
00001a10: PUSH1 0xe5
00001a12: SHL
00001a13: DUP2
00001a14: MSTORE
00001a15: PUSH1 0x20
00001a17: PUSH1 0x04
00001a19: DUP3
00001a1a: ADD
00001a1b: DUP2
00001a1c: DUP2
00001a1d: MSTORE
00001a1e: DUP4
00001a1f: MLOAD
00001a20: PUSH1 0x24
00001a22: DUP5
00001a23: ADD
00001a24: MSTORE
00001a25: DUP4
00001a26: MLOAD
00001a27: SWAP1
00001a28: SWAP3
00001a29: DUP4
00001a2a: SWAP3
00001a2b: PUSH1 0x44
00001a2d: SWAP1
00001a2e: SWAP2
00001a2f: ADD
00001a30: SWAP2
00001a31: SWAP1
00001a32: DUP6
00001a33: ADD
00001a34: SWAP1
00001a35: DUP1
00001a36: DUP4
00001a37: DUP4
00001a38: PUSH1 0x00
00001a3a: DUP4
00001a3b: ISZERO
00001a3c: PUSH2 0x08b6
00001a3f: JUMPI
00001a40: DUP2
00001a41: DUP2
00001a42: ADD
00001a43: MLOAD
00001a44: DUP4
00001a45: DUP3
00001a46: ADD
00001a47: MSTORE
00001a48: PUSH1 0x20
00001a4a: ADD
00001a4b: PUSH2 0x089e
00001a4e: JUMP
00001a4f: JUMPDEST
00001a50: POP
00001a51: PUSH1 0x40
00001a53: DUP1
00001a54: MLOAD
00001a55: DUP1
00001a56: DUP3
00001a57: ADD
00001a58: SWAP1
00001a59: SWAP2
00001a5a: MSTORE
00001a5b: PUSH1 0x02
00001a5d: DUP1
00001a5e: DUP3
00001a5f: MSTORE
00001a60: PUSH2 0x0687
00001a63: PUSH1 0xf3
00001a65: SHL
00001a66: PUSH1 0x20
00001a68: DUP4
00001a69: ADD
00001a6a: MSTORE
00001a6b: DUP4
00001a6c: DIV
00001a6d: SWAP1
00001a6e: PUSH12 0x033b2e3c9fd0803ce8000000
00001a7b: DUP3
00001a7c: NOT
00001a7d: DIV
00001a7e: DUP6
00001a7f: GT
00001a80: ISZERO
00001a81: PUSH2 0x1acb
00001a84: JUMPI
00001a85: PUSH1 0x40
00001a87: MLOAD
00001a88: PUSH3 0x461bcd
00001a8c: PUSH1 0xe5
00001a8e: SHL
00001a8f: DUP2
00001a90: MSTORE
00001a91: PUSH1 0x20
00001a93: PUSH1 0x04
00001a95: DUP3
00001a96: ADD
00001a97: DUP2
00001a98: DUP2
00001a99: MSTORE
00001a9a: DUP4
00001a9b: MLOAD
00001a9c: PUSH1 0x24
00001a9e: DUP5
00001a9f: ADD
00001aa0: MSTORE
00001aa1: DUP4
00001aa2: MLOAD
00001aa3: SWAP1
00001aa4: SWAP3
00001aa5: DUP4
00001aa6: SWAP3
00001aa7: PUSH1 0x44
00001aa9: SWAP1
00001aaa: SWAP2
00001aab: ADD
00001aac: SWAP2
00001aad: SWAP1
00001aae: DUP6
00001aaf: ADD
00001ab0: SWAP1
00001ab1: DUP1
00001ab2: DUP4
00001ab3: DUP4
00001ab4: PUSH1 0x00
00001ab6: DUP4
00001ab7: ISZERO
00001ab8: PUSH2 0x08b6
00001abb: JUMPI
00001abc: DUP2
00001abd: DUP2
00001abe: ADD
00001abf: MLOAD
00001ac0: DUP4
00001ac1: DUP3
00001ac2: ADD
00001ac3: MSTORE
00001ac4: PUSH1 0x20
00001ac6: ADD
00001ac7: PUSH2 0x089e
00001aca: JUMP
00001acb: JUMPDEST
00001acc: POP
00001acd: DUP3
00001ace: DUP2
00001acf: PUSH12 0x033b2e3c9fd0803ce8000000
00001adc: DUP7
00001add: MUL
00001ade: ADD
00001adf: DUP2
00001ae0: PUSH2 0x1ae5
00001ae3: JUMPI
00001ae4: INVALID
00001ae5: JUMPDEST
00001ae6: DIV
00001ae7: SWAP5
00001ae8: SWAP4
00001ae9: POP
00001aea: POP
00001aeb: POP
00001aec: POP
00001aed: JUMP
00001aee: JUMPDEST
00001aef: PUSH1 0x01
00001af1: PUSH1 0x01
00001af3: PUSH1 0xa0
00001af5: SHL
00001af6: SUB
00001af7: DUP3
00001af8: AND
00001af9: PUSH2 0x1b49
00001afc: JUMPI
00001afd: PUSH1 0x40
00001aff: DUP1
00001b00: MLOAD
00001b01: PUSH3 0x461bcd
00001b05: PUSH1 0xe5
00001b07: SHL
00001b08: DUP2
00001b09: MSTORE
00001b0a: PUSH1 0x20
00001b0c: PUSH1 0x04
00001b0e: DUP3
00001b0f: ADD
00001b10: MSTORE
00001b11: PUSH1 0x1f
00001b13: PUSH1 0x24
00001b15: DUP3
00001b16: ADD
00001b17: MSTORE
00001b18: PUSH32 0x45524332303a206d696e7420746f20746865207a65726f206164647265737300
00001b39: PUSH1 0x44
00001b3b: DUP3
00001b3c: ADD
00001b3d: MSTORE
00001b3e: SWAP1
00001b3f: MLOAD
00001b40: SWAP1
00001b41: DUP2
00001b42: SWAP1
00001b43: SUB
00001b44: PUSH1 0x64
00001b46: ADD
00001b47: SWAP1
00001b48: REVERT
00001b49: JUMPDEST
00001b4a: PUSH2 0x1b55
00001b4d: PUSH1 0x00
00001b4f: DUP4
00001b50: DUP4
00001b51: PUSH2 0x1289
00001b54: JUMP
00001b55: JUMPDEST
00001b56: PUSH1 0x36
00001b58: SLOAD
00001b59: PUSH2 0x1b62
00001b5c: DUP2
00001b5d: DUP4
00001b5e: PUSH2 0x1dab
00001b61: JUMP
00001b62: JUMPDEST
00001b63: PUSH1 0x36
00001b65: SSTORE
00001b66: PUSH1 0x01
00001b68: PUSH1 0x01
00001b6a: PUSH1 0xa0
00001b6c: SHL
00001b6d: SUB
00001b6e: DUP4
00001b6f: AND
00001b70: PUSH1 0x00
00001b72: SWAP1
00001b73: DUP2
00001b74: MSTORE
00001b75: PUSH1 0x34
00001b77: PUSH1 0x20
00001b79: MSTORE
00001b7a: PUSH1 0x40
00001b7c: SWAP1
00001b7d: KECCAK256
00001b7e: SLOAD
00001b7f: PUSH2 0x1b88
00001b82: DUP2
00001b83: DUP5
00001b84: PUSH2 0x1dab
00001b87: JUMP
00001b88: JUMPDEST
00001b89: PUSH1 0x01
00001b8b: PUSH1 0x01
00001b8d: PUSH1 0xa0
00001b8f: SHL
00001b90: SUB
00001b91: DUP6
00001b92: AND
00001b93: PUSH1 0x00
00001b95: SWAP1
00001b96: DUP2
00001b97: MSTORE
00001b98: PUSH1 0x34
00001b9a: PUSH1 0x20
00001b9c: MSTORE
00001b9d: PUSH1 0x40
00001b9f: DUP2
00001ba0: KECCAK256
00001ba1: SWAP2
00001ba2: SWAP1
00001ba3: SWAP2
00001ba4: SSTORE
00001ba5: PUSH2 0x1bac
00001ba8: PUSH2 0x1e5e
00001bab: JUMP
00001bac: JUMPDEST
00001bad: PUSH1 0x01
00001baf: PUSH1 0x01
00001bb1: PUSH1 0xa0
00001bb3: SHL
00001bb4: SUB
00001bb5: AND
00001bb6: EQ
00001bb7: PUSH2 0x1c39
00001bba: JUMPI
00001bbb: PUSH2 0x1bc2
00001bbe: PUSH2 0x1e5e
00001bc1: JUMP
00001bc2: JUMPDEST
00001bc3: PUSH1 0x01
00001bc5: PUSH1 0x01
00001bc7: PUSH1 0xa0
00001bc9: SHL
00001bca: SUB
00001bcb: AND
00001bcc: PUSH4 0x31873e2e
00001bd1: DUP6
00001bd2: DUP5
00001bd3: DUP5
00001bd4: PUSH1 0x40
00001bd6: MLOAD
00001bd7: DUP5
00001bd8: PUSH4 0xffffffff
00001bdd: AND
00001bde: PUSH1 0xe0
00001be0: SHL
00001be1: DUP2
00001be2: MSTORE
00001be3: PUSH1 0x04
00001be5: ADD
00001be6: DUP1
00001be7: DUP5
00001be8: PUSH1 0x01
00001bea: PUSH1 0x01
00001bec: PUSH1 0xa0
00001bee: SHL
00001bef: SUB
00001bf0: AND
00001bf1: DUP2
00001bf2: MSTORE
00001bf3: PUSH1 0x20
00001bf5: ADD
00001bf6: DUP4
00001bf7: DUP2
00001bf8: MSTORE
00001bf9: PUSH1 0x20
00001bfb: ADD
00001bfc: DUP3
00001bfd: DUP2
00001bfe: MSTORE
00001bff: PUSH1 0x20
00001c01: ADD
00001c02: SWAP4
00001c03: POP
00001c04: POP
00001c05: POP
00001c06: POP
00001c07: PUSH1 0x00
00001c09: PUSH1 0x40
00001c0b: MLOAD
00001c0c: DUP1
00001c0d: DUP4
00001c0e: SUB
00001c0f: DUP2
00001c10: PUSH1 0x00
00001c12: DUP8
00001c13: DUP1
00001c14: EXTCODESIZE
00001c15: ISZERO
00001c16: DUP1
00001c17: ISZERO
00001c18: PUSH2 0x1c20
00001c1b: JUMPI
00001c1c: PUSH1 0x00
00001c1e: DUP1
00001c1f: REVERT
00001c20: JUMPDEST
00001c21: POP
00001c22: GAS
00001c23: CALL
00001c24: ISZERO
00001c25: DUP1
00001c26: ISZERO
00001c27: PUSH2 0x1c34
00001c2a: JUMPI
00001c2b: RETURNDATASIZE
00001c2c: PUSH1 0x00
00001c2e: DUP1
00001c2f: RETURNDATACOPY
00001c30: RETURNDATASIZE
00001c31: PUSH1 0x00
00001c33: REVERT
00001c34: JUMPDEST
00001c35: POP
00001c36: POP
00001c37: POP
00001c38: POP
00001c39: JUMPDEST
00001c3a: POP
00001c3b: POP
00001c3c: POP
00001c3d: POP
00001c3e: JUMP
00001c3f: JUMPDEST
00001c40: PUSH1 0x00
00001c42: DUP3
00001c43: ISZERO
00001c44: DUP1
00001c45: PUSH2 0x1c4c
00001c48: JUMPI
00001c49: POP
00001c4a: DUP2
00001c4b: ISZERO
00001c4c: JUMPDEST
00001c4d: ISZERO
00001c4e: PUSH2 0x1c59
00001c51: JUMPI
00001c52: POP
00001c53: PUSH1 0x00
00001c55: PUSH2 0x0804
00001c58: JUMP
00001c59: JUMPDEST
00001c5a: DUP2
00001c5b: PUSH12 0x019d971e4fe8401e74000000
00001c68: NOT
00001c69: DUP2
00001c6a: PUSH2 0x1c6f
00001c6d: JUMPI
00001c6e: INVALID
00001c6f: JUMPDEST
00001c70: DIV
00001c71: DUP4
00001c72: GT
00001c73: ISZERO
00001c74: PUSH1 0x40
00001c76: MLOAD
00001c77: DUP1
00001c78: PUSH1 0x40
00001c7a: ADD
00001c7b: PUSH1 0x40
00001c7d: MSTORE
00001c7e: DUP1
00001c7f: PUSH1 0x02
00001c81: DUP2
00001c82: MSTORE
00001c83: PUSH1 0x20
00001c85: ADD
00001c86: PUSH2 0x0687
00001c89: PUSH1 0xf3
00001c8b: SHL
00001c8c: DUP2
00001c8d: MSTORE
00001c8e: POP
00001c8f: SWAP1
00001c90: PUSH2 0x1cda
00001c93: JUMPI
00001c94: PUSH1 0x40
00001c96: MLOAD
00001c97: PUSH3 0x461bcd
00001c9b: PUSH1 0xe5
00001c9d: SHL
00001c9e: DUP2
00001c9f: MSTORE
00001ca0: PUSH1 0x20
00001ca2: PUSH1 0x04
00001ca4: DUP3
00001ca5: ADD
00001ca6: DUP2
00001ca7: DUP2
00001ca8: MSTORE
00001ca9: DUP4
00001caa: MLOAD
00001cab: PUSH1 0x24
00001cad: DUP5
00001cae: ADD
00001caf: MSTORE
00001cb0: DUP4
00001cb1: MLOAD
00001cb2: SWAP1
00001cb3: SWAP3
00001cb4: DUP4
00001cb5: SWAP3
00001cb6: PUSH1 0x44
00001cb8: SWAP1
00001cb9: SWAP2
00001cba: ADD
00001cbb: SWAP2
00001cbc: SWAP1
00001cbd: DUP6
00001cbe: ADD
00001cbf: SWAP1
00001cc0: DUP1
00001cc1: DUP4
00001cc2: DUP4
00001cc3: PUSH1 0x00
00001cc5: DUP4
00001cc6: ISZERO
00001cc7: PUSH2 0x08b6
00001cca: JUMPI
00001ccb: DUP2
00001ccc: DUP2
00001ccd: ADD
00001cce: MLOAD
00001ccf: DUP4
00001cd0: DUP3
00001cd1: ADD
00001cd2: MSTORE
00001cd3: PUSH1 0x20
00001cd5: ADD
00001cd6: PUSH2 0x089e
00001cd9: JUMP
00001cda: JUMPDEST
00001cdb: POP
00001cdc: POP
00001cdd: PUSH12 0x033b2e3c9fd0803ce8000000
00001cea: SWAP2
00001ceb: MUL
00001cec: PUSH12 0x019d971e4fe8401e74000000
00001cf9: ADD
00001cfa: DIV
00001cfb: SWAP1
00001cfc: JUMP
00001cfd: JUMPDEST
00001cfe: PUSH1 0x01
00001d00: SWAP1
00001d01: JUMP
00001d02: JUMPDEST
00001d03: ADDRESS
00001d04: EXTCODESIZE
00001d05: ISZERO
00001d06: SWAP1
00001d07: JUMP
00001d08: JUMPDEST
00001d09: DUP1
00001d0a: MLOAD
00001d0b: PUSH2 0x1200
00001d0e: SWAP1
00001d0f: PUSH1 0x37
00001d11: SWAP1
00001d12: PUSH1 0x20
00001d14: DUP5
00001d15: ADD
00001d16: SWAP1
00001d17: PUSH2 0x2557
00001d1a: JUMP
00001d1b: JUMPDEST
00001d1c: DUP1
00001d1d: MLOAD
00001d1e: PUSH2 0x1200
00001d21: SWAP1
00001d22: PUSH1 0x38
00001d24: SWAP1
00001d25: PUSH1 0x20
00001d27: DUP5
00001d28: ADD
00001d29: SWAP1
00001d2a: PUSH2 0x2557
00001d2d: JUMP
00001d2e: JUMPDEST
00001d2f: PUSH1 0x39
00001d31: DUP1
00001d32: SLOAD
00001d33: PUSH1 0xff
00001d35: NOT
00001d36: AND
00001d37: PUSH1 0xff
00001d39: SWAP3
00001d3a: SWAP1
00001d3b: SWAP3
00001d3c: AND
00001d3d: SWAP2
00001d3e: SWAP1
00001d3f: SWAP2
00001d40: OR
00001d41: SWAP1
00001d42: SSTORE
00001d43: JUMP
00001d44: JUMPDEST
00001d45: PUSH2 0x1289
00001d48: DUP4
00001d49: DUP4
00001d4a: DUP4
00001d4b: PUSH1 0x01
00001d4d: PUSH2 0x1f11
00001d50: JUMP
00001d51: JUMPDEST
00001d52: PUSH1 0x00
00001d54: DUP2
00001d55: DUP5
00001d56: DUP5
00001d57: GT
00001d58: ISZERO
00001d59: PUSH2 0x1da3
00001d5c: JUMPI
00001d5d: PUSH1 0x40
00001d5f: MLOAD
00001d60: PUSH3 0x461bcd
00001d64: PUSH1 0xe5
00001d66: SHL
00001d67: DUP2
00001d68: MSTORE
00001d69: PUSH1 0x20
00001d6b: PUSH1 0x04
00001d6d: DUP3
00001d6e: ADD
00001d6f: DUP2
00001d70: DUP2
00001d71: MSTORE
00001d72: DUP4
00001d73: MLOAD
00001d74: PUSH1 0x24
00001d76: DUP5
00001d77: ADD
00001d78: MSTORE
00001d79: DUP4
00001d7a: MLOAD
00001d7b: SWAP1
00001d7c: SWAP3
00001d7d: DUP4
00001d7e: SWAP3
00001d7f: PUSH1 0x44
00001d81: SWAP1
00001d82: SWAP2
00001d83: ADD
00001d84: SWAP2
00001d85: SWAP1
00001d86: DUP6
00001d87: ADD
00001d88: SWAP1
00001d89: DUP1
00001d8a: DUP4
00001d8b: DUP4
00001d8c: PUSH1 0x00
00001d8e: DUP4
00001d8f: ISZERO
00001d90: PUSH2 0x08b6
00001d93: JUMPI
00001d94: DUP2
00001d95: DUP2
00001d96: ADD
00001d97: MLOAD
00001d98: DUP4
00001d99: DUP3
00001d9a: ADD
00001d9b: MSTORE
00001d9c: PUSH1 0x20
00001d9e: ADD
00001d9f: PUSH2 0x089e
00001da2: JUMP
00001da3: JUMPDEST
00001da4: POP
00001da5: POP
00001da6: POP
00001da7: SWAP1
00001da8: SUB
00001da9: SWAP1
00001daa: JUMP
00001dab: JUMPDEST
00001dac: PUSH1 0x00
00001dae: DUP3
00001daf: DUP3
00001db0: ADD
00001db1: DUP4
00001db2: DUP2
00001db3: LT
00001db4: ISZERO
00001db5: PUSH2 0x1e05
00001db8: JUMPI
00001db9: PUSH1 0x40
00001dbb: DUP1
00001dbc: MLOAD
00001dbd: PUSH3 0x461bcd
00001dc1: PUSH1 0xe5
00001dc3: SHL
00001dc4: DUP2
00001dc5: MSTORE
00001dc6: PUSH1 0x20
00001dc8: PUSH1 0x04
00001dca: DUP3
00001dcb: ADD
00001dcc: MSTORE
00001dcd: PUSH1 0x1b
00001dcf: PUSH1 0x24
00001dd1: DUP3
00001dd2: ADD
00001dd3: MSTORE
00001dd4: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000
00001df5: PUSH1 0x44
00001df7: DUP3
00001df8: ADD
00001df9: MSTORE
00001dfa: SWAP1
00001dfb: MLOAD
00001dfc: SWAP1
00001dfd: DUP2
00001dfe: SWAP1
00001dff: SUB
00001e00: PUSH1 0x64
00001e02: ADD
00001e03: SWAP1
00001e04: REVERT
00001e05: JUMPDEST
00001e06: SWAP4
00001e07: SWAP3
00001e08: POP
00001e09: POP
00001e0a: POP
00001e0b: JUMP
00001e0c: JUMPDEST
00001e0d: PUSH1 0x40
00001e0f: DUP1
00001e10: MLOAD
00001e11: PUSH1 0x01
00001e13: PUSH1 0x01
00001e15: PUSH1 0xa0
00001e17: SHL
00001e18: SUB
00001e19: DUP5
00001e1a: AND
00001e1b: PUSH1 0x24
00001e1d: DUP3
00001e1e: ADD
00001e1f: MSTORE
00001e20: PUSH1 0x44
00001e22: DUP1
00001e23: DUP3
00001e24: ADD
00001e25: DUP5
00001e26: SWAP1
00001e27: MSTORE
00001e28: DUP3
00001e29: MLOAD
00001e2a: DUP1
00001e2b: DUP4
00001e2c: SUB
00001e2d: SWAP1
00001e2e: SWAP2
00001e2f: ADD
00001e30: DUP2
00001e31: MSTORE
00001e32: PUSH1 0x64
00001e34: SWAP1
00001e35: SWAP2
00001e36: ADD
00001e37: SWAP1
00001e38: SWAP2
00001e39: MSTORE
00001e3a: PUSH1 0x20
00001e3c: DUP2
00001e3d: ADD
00001e3e: DUP1
00001e3f: MLOAD
00001e40: PUSH1 0x01
00001e42: PUSH1 0x01
00001e44: PUSH1 0xe0
00001e46: SHL
00001e47: SUB
00001e48: AND
00001e49: PUSH4 0xa9059cbb
00001e4e: PUSH1 0xe0
00001e50: SHL
00001e51: OR
00001e52: SWAP1
00001e53: MSTORE
00001e54: PUSH2 0x1289
00001e57: SWAP1
00001e58: DUP5
00001e59: SWAP1
00001e5a: PUSH2 0x20ba
00001e5d: JUMP
00001e5e: JUMPDEST
00001e5f: PUSH1 0x3f
00001e61: SLOAD
00001e62: PUSH1 0x01
00001e64: PUSH1 0x01
00001e66: PUSH1 0xa0
00001e68: SHL
00001e69: SUB
00001e6a: AND
00001e6b: SWAP1
00001e6c: JUMP
00001e6d: JUMPDEST
00001e6e: PUSH1 0x01
00001e70: PUSH1 0x01
00001e72: PUSH1 0xa0
00001e74: SHL
00001e75: SUB
00001e76: DUP3
00001e77: AND
00001e78: PUSH2 0x1eb2
00001e7b: JUMPI
00001e7c: PUSH1 0x40
00001e7e: MLOAD
00001e7f: PUSH3 0x461bcd
00001e83: PUSH1 0xe5
00001e85: SHL
00001e86: DUP2
00001e87: MSTORE
00001e88: PUSH1 0x04
00001e8a: ADD
00001e8b: DUP1
00001e8c: DUP1
00001e8d: PUSH1 0x20
00001e8f: ADD
00001e90: DUP3
00001e91: DUP2
00001e92: SUB
00001e93: DUP3
00001e94: MSTORE
00001e95: PUSH1 0x21
00001e97: DUP2
00001e98: MSTORE
00001e99: PUSH1 0x20
00001e9b: ADD
00001e9c: DUP1
00001e9d: PUSH2 0x26ee
00001ea0: PUSH1 0x21
00001ea2: SWAP2
00001ea3: CODECOPY
00001ea4: PUSH1 0x40
00001ea6: ADD
00001ea7: SWAP2
00001ea8: POP
00001ea9: POP
00001eaa: PUSH1 0x40
00001eac: MLOAD
00001ead: DUP1
00001eae: SWAP2
00001eaf: SUB
00001eb0: SWAP1
00001eb1: REVERT
00001eb2: JUMPDEST
00001eb3: PUSH2 0x1ebe
00001eb6: DUP3
00001eb7: PUSH1 0x00
00001eb9: DUP4
00001eba: PUSH2 0x1289
00001ebd: JUMP
00001ebe: JUMPDEST
00001ebf: PUSH1 0x36
00001ec1: SLOAD
00001ec2: PUSH2 0x1ecb
00001ec5: DUP2
00001ec6: DUP4
00001ec7: PUSH2 0x2272
00001eca: JUMP
00001ecb: JUMPDEST
00001ecc: PUSH1 0x36
00001ece: SSTORE
00001ecf: PUSH1 0x01
00001ed1: PUSH1 0x01
00001ed3: PUSH1 0xa0
00001ed5: SHL
00001ed6: SUB
00001ed7: DUP4
00001ed8: AND
00001ed9: PUSH1 0x00
00001edb: SWAP1
00001edc: DUP2
00001edd: MSTORE
00001ede: PUSH1 0x34
00001ee0: PUSH1 0x20
00001ee2: SWAP1
00001ee3: DUP2
00001ee4: MSTORE
00001ee5: PUSH1 0x40
00001ee7: SWAP2
00001ee8: DUP3
00001ee9: SWAP1
00001eea: KECCAK256
00001eeb: SLOAD
00001eec: DUP3
00001eed: MLOAD
00001eee: PUSH1 0x60
00001ef0: DUP2
00001ef1: ADD
00001ef2: SWAP1
00001ef3: SWAP4
00001ef4: MSTORE
00001ef5: PUSH1 0x22
00001ef7: DUP1
00001ef8: DUP5
00001ef9: MSTORE
00001efa: SWAP1
00001efb: SWAP3
00001efc: PUSH2 0x1b88
00001eff: SWAP3
00001f00: DUP7
00001f01: SWAP3
00001f02: SWAP1
00001f03: PUSH2 0x260e
00001f06: SWAP1
00001f07: DUP4
00001f08: ADD
00001f09: CODECOPY
00001f0a: DUP4
00001f0b: SWAP2
00001f0c: SWAP1
00001f0d: PUSH2 0x1d51
00001f10: JUMP
00001f11: JUMPDEST
00001f12: PUSH1 0x3e
00001f14: SLOAD
00001f15: PUSH1 0x3c
00001f17: SLOAD
00001f18: PUSH1 0x40
00001f1a: DUP1
00001f1b: MLOAD
00001f1c: PUSH4 0xd15e0053
00001f21: PUSH1 0xe0
00001f23: SHL
00001f24: DUP2
00001f25: MSTORE
00001f26: PUSH1 0x01
00001f28: PUSH1 0x01
00001f2a: PUSH1 0xa0
00001f2c: SHL
00001f2d: SUB
00001f2e: SWAP4
00001f2f: DUP5
00001f30: AND
00001f31: PUSH1 0x04
00001f33: DUP3
00001f34: ADD
00001f35: DUP2
00001f36: SWAP1
00001f37: MSTORE
00001f38: SWAP2
00001f39: MLOAD
00001f3a: SWAP2
00001f3b: SWAP4
00001f3c: SWAP1
00001f3d: SWAP3
00001f3e: AND
00001f3f: SWAP2
00001f40: PUSH1 0x00
00001f42: SWAP2
00001f43: DUP4
00001f44: SWAP2
00001f45: PUSH4 0xd15e0053
00001f4a: SWAP2
00001f4b: PUSH1 0x24
00001f4d: DUP1
00001f4e: DUP4
00001f4f: ADD
00001f50: SWAP3
00001f51: PUSH1 0x20
00001f53: SWAP3
00001f54: SWAP2
00001f55: SWAP1
00001f56: DUP3
00001f57: SWAP1
00001f58: SUB
00001f59: ADD
00001f5a: DUP2
00001f5b: DUP7
00001f5c: DUP1
00001f5d: EXTCODESIZE
00001f5e: ISZERO
00001f5f: DUP1
00001f60: ISZERO
00001f61: PUSH2 0x1f69
00001f64: JUMPI
00001f65: PUSH1 0x00
00001f67: DUP1
00001f68: REVERT
00001f69: JUMPDEST
00001f6a: POP
00001f6b: GAS
00001f6c: STATICCALL
00001f6d: ISZERO
00001f6e: DUP1
00001f6f: ISZERO
00001f70: PUSH2 0x1f7d
00001f73: JUMPI
00001f74: RETURNDATASIZE
00001f75: PUSH1 0x00
00001f77: DUP1
00001f78: RETURNDATACOPY
00001f79: RETURNDATASIZE
00001f7a: PUSH1 0x00
00001f7c: REVERT
00001f7d: JUMPDEST
00001f7e: POP
00001f7f: POP
00001f80: POP
00001f81: POP
00001f82: PUSH1 0x40
00001f84: MLOAD
00001f85: RETURNDATASIZE
00001f86: PUSH1 0x20
00001f88: DUP2
00001f89: LT
00001f8a: ISZERO
00001f8b: PUSH2 0x1f93
00001f8e: JUMPI
00001f8f: PUSH1 0x00
00001f91: DUP1
00001f92: REVERT
00001f93: JUMPDEST
00001f94: POP
00001f95: MLOAD
00001f96: SWAP1
00001f97: POP
00001f98: PUSH1 0x00
00001f9a: PUSH2 0x1fa6
00001f9d: DUP3
00001f9e: PUSH2 0x109c
00001fa1: DUP11
00001fa2: PUSH2 0x19c6
00001fa5: JUMP
00001fa6: JUMPDEST
00001fa7: SWAP1
00001fa8: POP
00001fa9: PUSH1 0x00
00001fab: PUSH2 0x1fb7
00001fae: DUP4
00001faf: PUSH2 0x109c
00001fb2: DUP11
00001fb3: PUSH2 0x19c6
00001fb6: JUMP
00001fb7: JUMPDEST
00001fb8: SWAP1
00001fb9: POP
00001fba: PUSH2 0x1fcd
00001fbd: DUP10
00001fbe: DUP10
00001fbf: PUSH2 0x1fc8
00001fc2: DUP11
00001fc3: DUP8
00001fc4: PUSH2 0x19e7
00001fc7: JUMP
00001fc8: JUMPDEST
00001fc9: PUSH2 0x22b4
00001fcc: JUMP
00001fcd: JUMPDEST
00001fce: DUP6
00001fcf: ISZERO
00001fd0: PUSH2 0x205c
00001fd3: JUMPI
00001fd4: PUSH1 0x40
00001fd6: DUP1
00001fd7: MLOAD
00001fd8: PUSH4 0xd5ed3933
00001fdd: PUSH1 0xe0
00001fdf: SHL
00001fe0: DUP2
00001fe1: MSTORE
00001fe2: PUSH1 0x01
00001fe4: PUSH1 0x01
00001fe6: PUSH1 0xa0
00001fe8: SHL
00001fe9: SUB
00001fea: DUP8
00001feb: DUP2
00001fec: AND
00001fed: PUSH1 0x04
00001fef: DUP4
00001ff0: ADD
00001ff1: MSTORE
00001ff2: DUP12
00001ff3: DUP2
00001ff4: AND
00001ff5: PUSH1 0x24
00001ff7: DUP4
00001ff8: ADD
00001ff9: MSTORE
00001ffa: DUP11
00001ffb: DUP2
00001ffc: AND
00001ffd: PUSH1 0x44
00001fff: DUP4
00002000: ADD
00002001: MSTORE
00002002: PUSH1 0x64
00002004: DUP3
00002005: ADD
00002006: DUP11
00002007: SWAP1
00002008: MSTORE
00002009: PUSH1 0x84
0000200b: DUP3
0000200c: ADD
0000200d: DUP6
0000200e: SWAP1
0000200f: MSTORE
00002010: PUSH1 0xa4
00002012: DUP3
00002013: ADD
00002014: DUP5
00002015: SWAP1
00002016: MSTORE
00002017: SWAP2
00002018: MLOAD
00002019: SWAP2
0000201a: DUP7
0000201b: AND
0000201c: SWAP2
0000201d: PUSH4 0xd5ed3933
00002022: SWAP2
00002023: PUSH1 0xc4
00002025: DUP1
00002026: DUP3
00002027: ADD
00002028: SWAP3
00002029: PUSH1 0x00
0000202b: SWAP3
0000202c: SWAP1
0000202d: SWAP2
0000202e: SWAP1
0000202f: DUP3
00002030: SWAP1
00002031: SUB
00002032: ADD
00002033: DUP2
00002034: DUP4
00002035: DUP8
00002036: DUP1
00002037: EXTCODESIZE
00002038: ISZERO
00002039: DUP1
0000203a: ISZERO
0000203b: PUSH2 0x2043
0000203e: JUMPI
0000203f: PUSH1 0x00
00002041: DUP1
00002042: REVERT
00002043: JUMPDEST
00002044: POP
00002045: GAS
00002046: CALL
00002047: ISZERO
00002048: DUP1
00002049: ISZERO
0000204a: PUSH2 0x2057
0000204d: JUMPI
0000204e: RETURNDATASIZE
0000204f: PUSH1 0x00
00002051: DUP1
00002052: RETURNDATACOPY
00002053: RETURNDATASIZE
00002054: PUSH1 0x00
00002056: REVERT
00002057: JUMPDEST
00002058: POP
00002059: POP
0000205a: POP
0000205b: POP
0000205c: JUMPDEST
0000205d: DUP8
0000205e: PUSH1 0x01
00002060: PUSH1 0x01
00002062: PUSH1 0xa0
00002064: SHL
00002065: SUB
00002066: AND
00002067: DUP10
00002068: PUSH1 0x01
0000206a: PUSH1 0x01
0000206c: PUSH1 0xa0
0000206e: SHL
0000206f: SUB
00002070: AND
00002071: PUSH32 0x4beccb90f994c31aced7a23b5611020728a23d8ec5cddd1a3e9d97b96fda8666
00002092: DUP10
00002093: DUP7
00002094: PUSH1 0x40
00002096: MLOAD
00002097: DUP1
00002098: DUP4
00002099: DUP2
0000209a: MSTORE
0000209b: PUSH1 0x20
0000209d: ADD
0000209e: DUP3
0000209f: DUP2
000020a0: MSTORE
000020a1: PUSH1 0x20
000020a3: ADD
000020a4: SWAP3
000020a5: POP
000020a6: POP
000020a7: POP
000020a8: PUSH1 0x40
000020aa: MLOAD
000020ab: DUP1
000020ac: SWAP2
000020ad: SUB
000020ae: SWAP1
000020af: LOG3
000020b0: POP
000020b1: POP
000020b2: POP
000020b3: POP
000020b4: POP
000020b5: POP
000020b6: POP
000020b7: POP
000020b8: POP
000020b9: JUMP
000020ba: JUMPDEST
000020bb: PUSH2 0x20cc
000020be: DUP3
000020bf: PUSH1 0x01
000020c1: PUSH1 0x01
000020c3: PUSH1 0xa0
000020c5: SHL
000020c6: SUB
000020c7: AND
000020c8: PUSH2 0x251b
000020cb: JUMP
000020cc: JUMPDEST
000020cd: PUSH2 0x211d
000020d0: JUMPI
000020d1: PUSH1 0x40
000020d3: DUP1
000020d4: MLOAD
000020d5: PUSH3 0x461bcd
000020d9: PUSH1 0xe5
000020db: SHL
000020dc: DUP2
000020dd: MSTORE
000020de: PUSH1 0x20
000020e0: PUSH1 0x04
000020e2: DUP3
000020e3: ADD
000020e4: MSTORE
000020e5: PUSH1 0x1f
000020e7: PUSH1 0x24
000020e9: DUP3
000020ea: ADD
000020eb: MSTORE
000020ec: PUSH32 0x5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400
0000210d: PUSH1 0x44
0000210f: DUP3
00002110: ADD
00002111: MSTORE
00002112: SWAP1
00002113: MLOAD
00002114: SWAP1
00002115: DUP2
00002116: SWAP1
00002117: SUB
00002118: PUSH1 0x64
0000211a: ADD
0000211b: SWAP1
0000211c: REVERT
0000211d: JUMPDEST
0000211e: PUSH1 0x00
00002120: PUSH1 0x60
00002122: DUP4
00002123: PUSH1 0x01
00002125: PUSH1 0x01
00002127: PUSH1 0xa0
00002129: SHL
0000212a: SUB
0000212b: AND
0000212c: DUP4
0000212d: PUSH1 0x40
0000212f: MLOAD
00002130: DUP1
00002131: DUP3
00002132: DUP1
00002133: MLOAD
00002134: SWAP1
00002135: PUSH1 0x20
00002137: ADD
00002138: SWAP1
00002139: DUP1
0000213a: DUP4
0000213b: DUP4
0000213c: JUMPDEST
0000213d: PUSH1 0x20
0000213f: DUP4
00002140: LT
00002141: PUSH2 0x215b
00002144: JUMPI
00002145: DUP1
00002146: MLOAD
00002147: DUP3
00002148: MSTORE
00002149: PUSH1 0x1f
0000214b: NOT
0000214c: SWAP1
0000214d: SWAP3
0000214e: ADD
0000214f: SWAP2
00002150: PUSH1 0x20
00002152: SWAP2
00002153: DUP3
00002154: ADD
00002155: SWAP2
00002156: ADD
00002157: PUSH2 0x213c
0000215a: JUMP
0000215b: JUMPDEST
0000215c: PUSH1 0x01
0000215e: DUP4
0000215f: PUSH1 0x20
00002161: SUB
00002162: PUSH2 0x0100
00002165: EXP
00002166: SUB
00002167: DUP1
00002168: NOT
00002169: DUP3
0000216a: MLOAD
0000216b: AND
0000216c: DUP2
0000216d: DUP5
0000216e: MLOAD
0000216f: AND
00002170: DUP1
00002171: DUP3
00002172: OR
00002173: DUP6
00002174: MSTORE
00002175: POP
00002176: POP
00002177: POP
00002178: POP
00002179: POP
0000217a: POP
0000217b: SWAP1
0000217c: POP
0000217d: ADD
0000217e: SWAP2
0000217f: POP
00002180: POP
00002181: PUSH1 0x00
00002183: PUSH1 0x40
00002185: MLOAD
00002186: DUP1
00002187: DUP4
00002188: SUB
00002189: DUP2
0000218a: PUSH1 0x00
0000218c: DUP7
0000218d: GAS
0000218e: CALL
0000218f: SWAP2
00002190: POP
00002191: POP
00002192: RETURNDATASIZE
00002193: DUP1
00002194: PUSH1 0x00
00002196: DUP2
00002197: EQ
00002198: PUSH2 0x21bd
0000219b: JUMPI
0000219c: PUSH1 0x40
0000219e: MLOAD
0000219f: SWAP2
000021a0: POP
000021a1: PUSH1 0x1f
000021a3: NOT
000021a4: PUSH1 0x3f
000021a6: RETURNDATASIZE
000021a7: ADD
000021a8: AND
000021a9: DUP3
000021aa: ADD
000021ab: PUSH1 0x40
000021ad: MSTORE
000021ae: RETURNDATASIZE
000021af: DUP3
000021b0: MSTORE
000021b1: RETURNDATASIZE
000021b2: PUSH1 0x00
000021b4: PUSH1 0x20
000021b6: DUP5
000021b7: ADD
000021b8: RETURNDATACOPY
000021b9: PUSH2 0x21c2
000021bc: JUMP
000021bd: JUMPDEST
000021be: PUSH1 0x60
000021c0: SWAP2
000021c1: POP
000021c2: JUMPDEST
000021c3: POP
000021c4: SWAP2
000021c5: POP
000021c6: SWAP2
000021c7: POP
000021c8: DUP2
000021c9: PUSH2 0x2219
000021cc: JUMPI
000021cd: PUSH1 0x40
000021cf: DUP1
000021d0: MLOAD
000021d1: PUSH3 0x461bcd
000021d5: PUSH1 0xe5
000021d7: SHL
000021d8: DUP2
000021d9: MSTORE
000021da: PUSH1 0x20
000021dc: PUSH1 0x04
000021de: DUP3
000021df: ADD
000021e0: DUP2
000021e1: SWAP1
000021e2: MSTORE
000021e3: PUSH1 0x24
000021e5: DUP3
000021e6: ADD
000021e7: MSTORE
000021e8: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
00002209: PUSH1 0x44
0000220b: DUP3
0000220c: ADD
0000220d: MSTORE
0000220e: SWAP1
0000220f: MLOAD
00002210: SWAP1
00002211: DUP2
00002212: SWAP1
00002213: SUB
00002214: PUSH1 0x64
00002216: ADD
00002217: SWAP1
00002218: REVERT
00002219: JUMPDEST
0000221a: DUP1
0000221b: MLOAD
0000221c: ISZERO
0000221d: PUSH2 0x1c39
00002220: JUMPI
00002221: DUP1
00002222: DUP1
00002223: PUSH1 0x20
00002225: ADD
00002226: SWAP1
00002227: MLOAD
00002228: PUSH1 0x20
0000222a: DUP2
0000222b: LT
0000222c: ISZERO
0000222d: PUSH2 0x2235
00002230: JUMPI
00002231: PUSH1 0x00
00002233: DUP1
00002234: REVERT
00002235: JUMPDEST
00002236: POP
00002237: MLOAD
00002238: PUSH2 0x1c39
0000223b: JUMPI
0000223c: PUSH1 0x40
0000223e: MLOAD
0000223f: PUSH3 0x461bcd
00002243: PUSH1 0xe5
00002245: SHL
00002246: DUP2
00002247: MSTORE
00002248: PUSH1 0x04
0000224a: ADD
0000224b: DUP1
0000224c: DUP1
0000224d: PUSH1 0x20
0000224f: ADD
00002250: DUP3
00002251: DUP2
00002252: SUB
00002253: DUP3
00002254: MSTORE
00002255: PUSH1 0x2a
00002257: DUP2
00002258: MSTORE
00002259: PUSH1 0x20
0000225b: ADD
0000225c: DUP1
0000225d: PUSH2 0x2758
00002260: PUSH1 0x2a
00002262: SWAP2
00002263: CODECOPY
00002264: PUSH1 0x40
00002266: ADD
00002267: SWAP2
00002268: POP
00002269: POP
0000226a: PUSH1 0x40
0000226c: MLOAD
0000226d: DUP1
0000226e: SWAP2
0000226f: SUB
00002270: SWAP1
00002271: REVERT
00002272: JUMPDEST
00002273: PUSH1 0x00
00002275: PUSH2 0x1e05
00002278: DUP4
00002279: DUP4
0000227a: PUSH1 0x40
0000227c: MLOAD
0000227d: DUP1
0000227e: PUSH1 0x40
00002280: ADD
00002281: PUSH1 0x40
00002283: MSTORE
00002284: DUP1
00002285: PUSH1 0x1e
00002287: DUP2
00002288: MSTORE
00002289: PUSH1 0x20
0000228b: ADD
0000228c: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000
000022ad: DUP2
000022ae: MSTORE
000022af: POP
000022b0: PUSH2 0x1d51
000022b3: JUMP
000022b4: JUMPDEST
000022b5: PUSH1 0x01
000022b7: PUSH1 0x01
000022b9: PUSH1 0xa0
000022bb: SHL
000022bc: SUB
000022bd: DUP4
000022be: AND
000022bf: PUSH2 0x22f9
000022c2: JUMPI
000022c3: PUSH1 0x40
000022c5: MLOAD
000022c6: PUSH3 0x461bcd
000022ca: PUSH1 0xe5
000022cc: SHL
000022cd: DUP2
000022ce: MSTORE
000022cf: PUSH1 0x04
000022d1: ADD
000022d2: DUP1
000022d3: DUP1
000022d4: PUSH1 0x20
000022d6: ADD
000022d7: DUP3
000022d8: DUP2
000022d9: SUB
000022da: DUP3
000022db: MSTORE
000022dc: PUSH1 0x25
000022de: DUP2
000022df: MSTORE
000022e0: PUSH1 0x20
000022e2: ADD
000022e3: DUP1
000022e4: PUSH2 0x270f
000022e7: PUSH1 0x25
000022e9: SWAP2
000022ea: CODECOPY
000022eb: PUSH1 0x40
000022ed: ADD
000022ee: SWAP2
000022ef: POP
000022f0: POP
000022f1: PUSH1 0x40
000022f3: MLOAD
000022f4: DUP1
000022f5: SWAP2
000022f6: SUB
000022f7: SWAP1
000022f8: REVERT
000022f9: JUMPDEST
000022fa: PUSH1 0x01
000022fc: PUSH1 0x01
000022fe: PUSH1 0xa0
00002300: SHL
00002301: SUB
00002302: DUP3
00002303: AND
00002304: PUSH2 0x233e
00002307: JUMPI
00002308: PUSH1 0x40
0000230a: MLOAD
0000230b: PUSH3 0x461bcd
0000230f: PUSH1 0xe5
00002311: SHL
00002312: DUP2
00002313: MSTORE
00002314: PUSH1 0x04
00002316: ADD
00002317: DUP1
00002318: DUP1
00002319: PUSH1 0x20
0000231b: ADD
0000231c: DUP3
0000231d: DUP2
0000231e: SUB
0000231f: DUP3
00002320: MSTORE
00002321: PUSH1 0x23
00002323: DUP2
00002324: MSTORE
00002325: PUSH1 0x20
00002327: ADD
00002328: DUP1
00002329: PUSH2 0x25eb
0000232c: PUSH1 0x23
0000232e: SWAP2
0000232f: CODECOPY
00002330: PUSH1 0x40
00002332: ADD
00002333: SWAP2
00002334: POP
00002335: POP
00002336: PUSH1 0x40
00002338: MLOAD
00002339: DUP1
0000233a: SWAP2
0000233b: SUB
0000233c: SWAP1
0000233d: REVERT
0000233e: JUMPDEST
0000233f: PUSH2 0x2349
00002342: DUP4
00002343: DUP4
00002344: DUP4
00002345: PUSH2 0x1289
00002348: JUMP
00002349: JUMPDEST
0000234a: PUSH1 0x00
0000234c: PUSH1 0x34
0000234e: PUSH1 0x00
00002350: DUP6
00002351: PUSH1 0x01
00002353: PUSH1 0x01
00002355: PUSH1 0xa0
00002357: SHL
00002358: SUB
00002359: AND
0000235a: PUSH1 0x01
0000235c: PUSH1 0x01
0000235e: PUSH1 0xa0
00002360: SHL
00002361: SUB
00002362: AND
00002363: DUP2
00002364: MSTORE
00002365: PUSH1 0x20
00002367: ADD
00002368: SWAP1
00002369: DUP2
0000236a: MSTORE
0000236b: PUSH1 0x20
0000236d: ADD
0000236e: PUSH1 0x00
00002370: KECCAK256
00002371: SLOAD
00002372: SWAP1
00002373: POP
00002374: PUSH2 0x2398
00002377: DUP3
00002378: PUSH1 0x40
0000237a: MLOAD
0000237b: DUP1
0000237c: PUSH1 0x60
0000237e: ADD
0000237f: PUSH1 0x40
00002381: MSTORE
00002382: DUP1
00002383: PUSH1 0x26
00002385: DUP2
00002386: MSTORE
00002387: PUSH1 0x20
00002389: ADD
0000238a: PUSH2 0x2652
0000238d: PUSH1 0x26
0000238f: SWAP2
00002390: CODECOPY
00002391: DUP4
00002392: SWAP2
00002393: SWAP1
00002394: PUSH2 0x1d51
00002397: JUMP
00002398: JUMPDEST
00002399: PUSH1 0x01
0000239b: PUSH1 0x01
0000239d: PUSH1 0xa0
0000239f: SHL
000023a0: SUB
000023a1: DUP1
000023a2: DUP7
000023a3: AND
000023a4: PUSH1 0x00
000023a6: SWAP1
000023a7: DUP2
000023a8: MSTORE
000023a9: PUSH1 0x34
000023ab: PUSH1 0x20
000023ad: MSTORE
000023ae: PUSH1 0x40
000023b0: DUP1
000023b1: DUP3
000023b2: KECCAK256
000023b3: SWAP4
000023b4: SWAP1
000023b5: SWAP4
000023b6: SSTORE
000023b7: SWAP1
000023b8: DUP6
000023b9: AND
000023ba: DUP2
000023bb: MSTORE
000023bc: KECCAK256
000023bd: SLOAD
000023be: PUSH2 0x23c7
000023c1: DUP2
000023c2: DUP5
000023c3: PUSH2 0x1dab
000023c6: JUMP
000023c7: JUMPDEST
000023c8: PUSH1 0x01
000023ca: PUSH1 0x01
000023cc: PUSH1 0xa0
000023ce: SHL
000023cf: SUB
000023d0: DUP6
000023d1: AND
000023d2: PUSH1 0x00
000023d4: SWAP1
000023d5: DUP2
000023d6: MSTORE
000023d7: PUSH1 0x34
000023d9: PUSH1 0x20
000023db: MSTORE
000023dc: PUSH1 0x40
000023de: DUP2
000023df: KECCAK256
000023e0: SWAP2
000023e1: SWAP1
000023e2: SWAP2
000023e3: SSTORE
000023e4: PUSH2 0x23eb
000023e7: PUSH2 0x1e5e
000023ea: JUMP
000023eb: JUMPDEST
000023ec: PUSH1 0x01
000023ee: PUSH1 0x01
000023f0: PUSH1 0xa0
000023f2: SHL
000023f3: SUB
000023f4: AND
000023f5: EQ
000023f6: PUSH2 0x2514
000023f9: JUMPI
000023fa: PUSH1 0x36
000023fc: SLOAD
000023fd: PUSH2 0x2404
00002400: PUSH2 0x1e5e
00002403: JUMP
00002404: JUMPDEST
00002405: PUSH1 0x01
00002407: PUSH1 0x01
00002409: PUSH1 0xa0
0000240b: SHL
0000240c: SUB
0000240d: AND
0000240e: PUSH4 0x31873e2e
00002413: DUP8
00002414: DUP4
00002415: DUP7
00002416: PUSH1 0x40
00002418: MLOAD
00002419: DUP5
0000241a: PUSH4 0xffffffff
0000241f: AND
00002420: PUSH1 0xe0
00002422: SHL
00002423: DUP2
00002424: MSTORE
00002425: PUSH1 0x04
00002427: ADD
00002428: DUP1
00002429: DUP5
0000242a: PUSH1 0x01
0000242c: PUSH1 0x01
0000242e: PUSH1 0xa0
00002430: SHL
00002431: SUB
00002432: AND
00002433: DUP2
00002434: MSTORE
00002435: PUSH1 0x20
00002437: ADD
00002438: DUP4
00002439: DUP2
0000243a: MSTORE
0000243b: PUSH1 0x20
0000243d: ADD
0000243e: DUP3
0000243f: DUP2
00002440: MSTORE
00002441: PUSH1 0x20
00002443: ADD
00002444: SWAP4
00002445: POP
00002446: POP
00002447: POP
00002448: POP
00002449: PUSH1 0x00
0000244b: PUSH1 0x40
0000244d: MLOAD
0000244e: DUP1
0000244f: DUP4
00002450: SUB
00002451: DUP2
00002452: PUSH1 0x00
00002454: DUP8
00002455: DUP1
00002456: EXTCODESIZE
00002457: ISZERO
00002458: DUP1
00002459: ISZERO
0000245a: PUSH2 0x2462
0000245d: JUMPI
0000245e: PUSH1 0x00
00002460: DUP1
00002461: REVERT
00002462: JUMPDEST
00002463: POP
00002464: GAS
00002465: CALL
00002466: ISZERO
00002467: DUP1
00002468: ISZERO
00002469: PUSH2 0x2476
0000246c: JUMPI
0000246d: RETURNDATASIZE
0000246e: PUSH1 0x00
00002470: DUP1
00002471: RETURNDATACOPY
00002472: RETURNDATASIZE
00002473: PUSH1 0x00
00002475: REVERT
00002476: JUMPDEST
00002477: POP
00002478: POP
00002479: POP
0000247a: POP
0000247b: DUP5
0000247c: PUSH1 0x01
0000247e: PUSH1 0x01
00002480: PUSH1 0xa0
00002482: SHL
00002483: SUB
00002484: AND
00002485: DUP7
00002486: PUSH1 0x01
00002488: PUSH1 0x01
0000248a: PUSH1 0xa0
0000248c: SHL
0000248d: SUB
0000248e: AND
0000248f: EQ
00002490: PUSH2 0x2512
00002493: JUMPI
00002494: PUSH2 0x249b
00002497: PUSH2 0x1e5e
0000249a: JUMP
0000249b: JUMPDEST
0000249c: PUSH1 0x01
0000249e: PUSH1 0x01
000024a0: PUSH1 0xa0
000024a2: SHL
000024a3: SUB
000024a4: AND
000024a5: PUSH4 0x31873e2e
000024aa: DUP7
000024ab: DUP4
000024ac: DUP6
000024ad: PUSH1 0x40
000024af: MLOAD
000024b0: DUP5
000024b1: PUSH4 0xffffffff
000024b6: AND
000024b7: PUSH1 0xe0
000024b9: SHL
000024ba: DUP2
000024bb: MSTORE
000024bc: PUSH1 0x04
000024be: ADD
000024bf: DUP1
000024c0: DUP5
000024c1: PUSH1 0x01
000024c3: PUSH1 0x01
000024c5: PUSH1 0xa0
000024c7: SHL
000024c8: SUB
000024c9: AND
000024ca: DUP2
000024cb: MSTORE
000024cc: PUSH1 0x20
000024ce: ADD
000024cf: DUP4
000024d0: DUP2
000024d1: MSTORE
000024d2: PUSH1 0x20
000024d4: ADD
000024d5: DUP3
000024d6: DUP2
000024d7: MSTORE
000024d8: PUSH1 0x20
000024da: ADD
000024db: SWAP4
000024dc: POP
000024dd: POP
000024de: POP
000024df: POP
000024e0: PUSH1 0x00
000024e2: PUSH1 0x40
000024e4: MLOAD
000024e5: DUP1
000024e6: DUP4
000024e7: SUB
000024e8: DUP2
000024e9: PUSH1 0x00
000024eb: DUP8
000024ec: DUP1
000024ed: EXTCODESIZE
000024ee: ISZERO
000024ef: DUP1
000024f0: ISZERO
000024f1: PUSH2 0x24f9
000024f4: JUMPI
000024f5: PUSH1 0x00
000024f7: DUP1
000024f8: REVERT
000024f9: JUMPDEST
000024fa: POP
000024fb: GAS
000024fc: CALL
000024fd: ISZERO
000024fe: DUP1
000024ff: ISZERO
00002500: PUSH2 0x250d
00002503: JUMPI
00002504: RETURNDATASIZE
00002505: PUSH1 0x00
00002507: DUP1
00002508: RETURNDATACOPY
00002509: RETURNDATASIZE
0000250a: PUSH1 0x00
0000250c: REVERT
0000250d: JUMPDEST
0000250e: POP
0000250f: POP
00002510: POP
00002511: POP
00002512: JUMPDEST
00002513: POP
00002514: JUMPDEST
00002515: POP
00002516: POP
00002517: POP
00002518: POP
00002519: POP
0000251a: JUMP
0000251b: JUMPDEST
0000251c: PUSH1 0x00
0000251e: DUP2
0000251f: EXTCODEHASH
00002520: PUSH32 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
00002541: DUP2
00002542: DUP2
00002543: EQ
00002544: DUP1
00002545: ISZERO
00002546: SWAP1
00002547: PUSH2 0x254f
0000254a: JUMPI
0000254b: POP
0000254c: DUP2
0000254d: ISZERO
0000254e: ISZERO
0000254f: JUMPDEST
00002550: SWAP5
00002551: SWAP4
00002552: POP
00002553: POP
00002554: POP
00002555: POP
00002556: JUMP
00002557: JUMPDEST
00002558: DUP3
00002559: DUP1
0000255a: SLOAD
0000255b: PUSH1 0x01
0000255d: DUP2
0000255e: PUSH1 0x01
00002560: AND
00002561: ISZERO
00002562: PUSH2 0x0100
00002565: MUL
00002566: SUB
00002567: AND
00002568: PUSH1 0x02
0000256a: SWAP1
0000256b: DIV
0000256c: SWAP1
0000256d: PUSH1 0x00
0000256f: MSTORE
00002570: PUSH1 0x20
00002572: PUSH1 0x00
00002574: KECCAK256
00002575: SWAP1
00002576: PUSH1 0x1f
00002578: ADD
00002579: PUSH1 0x20
0000257b: SWAP1
0000257c: DIV
0000257d: DUP2
0000257e: ADD
0000257f: SWAP3
00002580: DUP3
00002581: PUSH1 0x1f
00002583: LT
00002584: PUSH2 0x2598
00002587: JUMPI
00002588: DUP1
00002589: MLOAD
0000258a: PUSH1 0xff
0000258c: NOT
0000258d: AND
0000258e: DUP4
0000258f: DUP1
00002590: ADD
00002591: OR
00002592: DUP6
00002593: SSTORE
00002594: PUSH2 0x25c5
00002597: JUMP
00002598: JUMPDEST
00002599: DUP3
0000259a: DUP1
0000259b: ADD
0000259c: PUSH1 0x01
0000259e: ADD
0000259f: DUP6
000025a0: SSTORE
000025a1: DUP3
000025a2: ISZERO
000025a3: PUSH2 0x25c5
000025a6: JUMPI
000025a7: SWAP2
000025a8: DUP3
000025a9: ADD
000025aa: JUMPDEST
000025ab: DUP3
000025ac: DUP2
000025ad: GT
000025ae: ISZERO
000025af: PUSH2 0x25c5
000025b2: JUMPI
000025b3: DUP3
000025b4: MLOAD
000025b5: DUP3
000025b6: SSTORE
000025b7: SWAP2
000025b8: PUSH1 0x20
000025ba: ADD
000025bb: SWAP2
000025bc: SWAP1
000025bd: PUSH1 0x01
000025bf: ADD
000025c0: SWAP1
000025c1: PUSH2 0x25aa
000025c4: JUMP
000025c5: JUMPDEST
000025c6: POP
000025c7: PUSH2 0x25d1
000025ca: SWAP3
000025cb: SWAP2
000025cc: POP
000025cd: PUSH2 0x25d5
000025d0: JUMP
000025d1: JUMPDEST
000025d2: POP
000025d3: SWAP1
000025d4: JUMP
000025d5: JUMPDEST
000025d6: JUMPDEST
000025d7: DUP1
000025d8: DUP3
000025d9: GT
000025da: ISZERO
000025db: PUSH2 0x25d1
000025de: JUMPI
000025df: PUSH1 0x00
000025e1: DUP2
000025e2: SSTORE
000025e3: PUSH1 0x01
000025e5: ADD
000025e6: PUSH2 0x25d6
000025e9: JUMP
000025ea: INVALID
000025eb: GASLIMIT
000025ec: MSTORE
000025ed: NUMBER
000025ee: ORIGIN
000025ef: ADDRESS
000025f0: GASPRICE
000025f1: KECCAK256
000025f2: PUSH21 0x72616e7366657220746f20746865207a65726f2061
00002608: PUSH5 0x6472657373
0000260e: GASLIMIT
0000260f: MSTORE
00002610: NUMBER
00002611: ORIGIN
00002612: ADDRESS
00002613: GASPRICE
00002614: KECCAK256
00002615: PUSH3 0x75726e
00002619: KECCAK256
0000261a: PUSH2 0x6d6f
0000261d: PUSH22 0x6e7420657863656564732062616c616e636545524332
00002634: ADDRESS
00002635: GASPRICE
00002636: KECCAK256
00002637: PUSH2 0x7070
0000263a: PUSH19 0x6f766520746f20746865207a65726f20616464
0000264e: PUSH19 0x65737345524332303a207472616e7366657220
00002662: PUSH2 0x6d6f
00002665: PUSH22 0x6e7420657863656564732062616c616e636545524332
0000267c: ADDRESS
0000267d: GASPRICE
0000267e: KECCAK256
0000267f: PUSH21 0x72616e7366657220616d6f756e7420657863656564
00002695: PUSH20 0x20616c6c6f77616e6365436f6e74726163742069
000026aa: PUSH15 0x7374616e63652068617320616c7265
000026ba: PUSH2 0x6479
000026bd: KECCAK256
000026be: PUSH3 0x65656e
000026c2: KECCAK256
000026c3: PUSH10 0x6e697469616c697a6564
000026ce: UNKNOWN(0xDD)
000026cf: CALLCODE
000026d0: MSTORE
000026d1: UNKNOWN(0xAD)
000026d2: SHL
000026d3: UNKNOWN(0xE2)
000026d4: UNKNOWN(0xC8)
000026d5: SWAP12
000026d6: PUSH10 0xc2b068fc378daa952ba7
000026e1: CALL
000026e2: PUSH4 0xc4a11628
000026e7: CREATE2
000026e8: GAS
000026e9: UNKNOWN(0x4D)
000026ea: CREATE2
000026eb: UNKNOWN(0x23)
000026ec: UNKNOWN(0xB3)
000026ed: UNKNOWN(0xEF)
000026ee: GASLIMIT
000026ef: MSTORE
000026f0: NUMBER
000026f1: ORIGIN
000026f2: ADDRESS
000026f3: GASPRICE
000026f4: KECCAK256
000026f5: PUSH3 0x75726e
000026f9: KECCAK256
000026fa: PUSH7 0x726f6d20746865
00002702: KECCAK256
00002703: PUSH27 0x65726f206164647265737345524332303a207472616e7366657220
0000271f: PUSH7 0x726f6d20746865
00002727: KECCAK256
00002728: PUSH27 0x65726f206164647265737345524332303a20617070726f76652066
00002744: PUSH19 0x6f6d20746865207a65726f2061646472657373
00002758: MSTORE8
00002759: PUSH2 0x6665
0000275c: GASLIMIT
0000275d: MSTORE
0000275e: NUMBER
0000275f: ORIGIN
00002760: ADDRESS
00002761: GASPRICE
00002762: KECCAK256
00002763: GASLIMIT
00002764: MSTORE
00002765: NUMBER
00002766: ORIGIN
00002767: ADDRESS
00002768: KECCAK256
00002769: PUSH16 0x7065726174696f6e20646964206e6f74
0000277a: KECCAK256
0000277b: PUSH20 0x75636365656445524332303a2064656372656173
00002790: PUSH6 0x6420616c6c6f
00002797: PUSH24 0x616e63652062656c6f77207a65726fa26469706673582212
000027b0: KECCAK256
000027b1: MCOPY
000027b2: PUSH27 0xd620e358939d62f35d1dc44c8774d95bcacb31160b78050b8271e3
000027ce: UNKNOWN(0xFB)
000027cf: UNKNOWN(0xB0)
000027d0: TLOAD
000027d1: PUSH5 0x736f6c6343
000027d7: STOP
000027d8: MOD
000027d9: UNKNOWN(0x0C)
000027da: STOP
000027db: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high upgradeability codex Unrestricted initializer allows takeover of uninitialized AToken instance/proxy 85 no
view
evidence_json
{
    "evidence": "`initialize` is `external` and only protected by `initializer`, with no caller restriction.",
    "locations": [
        "contracts/protocol/tokenization/AToken.sol:64"
    ],
    "recommendation": "Ensure initialization happens atomically at deployment (constructor-based or factory call), or restrict `initialize` to a trusted deployer (e.g., addresses provider/admin). Consider locking the implementation with a constructor that sets `lastInitializedRevision` or a dedicated `_disableInitializers` pattern.",
    "exploit_scenario": "If a new AToken proxy/instance is deployed and `initialize` is not called atomically, an attacker can call `initialize` first, set `_pool` to their address and `_underlyingAsset` to the real reserve asset, then use `transferUnderlyingTo`/`mint`/`burn` as the LendingPool to drain assets or mint arbitrary balances."
}
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xae167335",
            "selector": "0xae167335",
            "calldata_variants": [
                "0xae167335",
                "0xae1673350000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb16a19de",
            "selector": "0xb16a19de",
            "calldata_variants": [
                "0xb16a19de",
                "0xb16a19de0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb1bf962d",
            "selector": "0xb1bf962d",
            "calldata_variants": [
                "0xb1bf962d",
                "0xb1bf962d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb9844d8d",
            "selector": "0xb9844d8d",
            "calldata_variants": [
                "0xb9844d8d",
                "0xb9844d8d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd505accf",
            "selector": "0xd505accf",
            "calldata_variants": [
                "0xd505accf",
                "0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd7020d0a",
            "selector": "0xd7020d0a",
            "calldata_variants": [
                "0xd7020d0a",
                "0xd7020d0a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf866c319",
            "selector": "0xf866c319",
            "calldata_variants": [
                "0xf866c319",
                "0xf866c3190000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 9710,
            "type": "tx_origin_used"
        },
        {
            "pc": 9745,
            "type": "tx_origin_used"
        },
        {
            "pc": 9969,
            "type": "tx_origin_used"
        },
        {
            "pc": 10079,
            "type": "tx_origin_used"
        },
        {
            "pc": 10086,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x3ccc0c7ff039c01d295661b2e108b95c16add208df26416d4855e7228765ca91
call_targets: 0x6faee7aac498326660ac2b7207b9f67666073111
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x3ccc0c7ff039c01d295661b2e108b95c16add208df26416d4855e7228765ca91",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x6faee7aac498326660ac2b7207b9f67666073111"
    ],
    "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": "0xae167335",
            "selector": "0xae167335",
            "calldata_variants": [
                "0xae167335",
                "0xae1673350000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb16a19de",
            "selector": "0xb16a19de",
            "calldata_variants": [
                "0xb16a19de",
                "0xb16a19de0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb1bf962d",
            "selector": "0xb1bf962d",
            "calldata_variants": [
                "0xb1bf962d",
                "0xb1bf962d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb9844d8d",
            "selector": "0xb9844d8d",
            "calldata_variants": [
                "0xb9844d8d",
                "0xb9844d8d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd505accf",
            "selector": "0xd505accf",
            "calldata_variants": [
                "0xd505accf",
                "0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd7020d0a",
            "selector": "0xd7020d0a",
            "calldata_variants": [
                "0xd7020d0a",
                "0xd7020d0a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf866c319",
            "selector": "0xf866c319",
            "calldata_variants": [
                "0xf866c319",
                "0xf866c3190000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 7203,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 8262,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 8590,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 7,
    "guards_detected": [
        {
            "pc": 9710,
            "type": "tx_origin_used"
        },
        {
            "pc": 9745,
            "type": "tx_origin_used"
        },
        {
            "pc": 9969,
            "type": "tx_origin_used"
        },
        {
            "pc": 10079,
            "type": "tx_origin_used"
        },
        {
            "pc": 10086,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0x7ff8b93a37bafc28ae2fcbdf4cc2c52efcf6d7f43d57f2f40ab90a6d16839578
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0x7ff8b93a37bafc28ae2fcbdf4cc2c52efcf6d7f43d57f2f40ab90a6d16839578",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xae167335",
            "selector": "0xae167335",
            "calldata_variants": [
                "0xae167335",
                "0xae1673350000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb16a19de",
            "selector": "0xb16a19de",
            "calldata_variants": [
                "0xb16a19de",
                "0xb16a19de0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb1bf962d",
            "selector": "0xb1bf962d",
            "calldata_variants": [
                "0xb1bf962d",
                "0xb1bf962d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb9844d8d",
            "selector": "0xb9844d8d",
            "calldata_variants": [
                "0xb9844d8d",
                "0xb9844d8d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd505accf",
            "selector": "0xd505accf",
            "calldata_variants": [
                "0xd505accf",
                "0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd7020d0a",
            "selector": "0xd7020d0a",
            "calldata_variants": [
                "0xd7020d0a",
                "0xd7020d0a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf866c319",
            "selector": "0xf866c319",
            "calldata_variants": [
                "0xf866c319",
                "0xf866c3190000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 0,
    "create2_count": 2
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x3ccc0c7ff039c01d295661b2e108b95c16add208df26416d4855e7228765ca91
call_targets: 0x6faee7aac498326660ac2b7207b9f67666073111
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x3ccc0c7ff039c01d295661b2e108b95c16add208df26416d4855e7228765ca91",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x6faee7aac498326660ac2b7207b9f67666073111"
    ],
    "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": "0xae167335",
            "selector": "0xae167335",
            "calldata_variants": [
                "0xae167335",
                "0xae1673350000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb16a19de",
            "selector": "0xb16a19de",
            "calldata_variants": [
                "0xb16a19de",
                "0xb16a19de0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb1bf962d",
            "selector": "0xb1bf962d",
            "calldata_variants": [
                "0xb1bf962d",
                "0xb1bf962d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb9844d8d",
            "selector": "0xb9844d8d",
            "calldata_variants": [
                "0xb9844d8d",
                "0xb9844d8d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd505accf",
            "selector": "0xd505accf",
            "calldata_variants": [
                "0xd505accf",
                "0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd7020d0a",
            "selector": "0xd7020d0a",
            "calldata_variants": [
                "0xd7020d0a",
                "0xd7020d0a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf866c319",
            "selector": "0xf866c319",
            "calldata_variants": [
                "0xf866c319",
                "0xf866c3190000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 7203,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 8262,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 8590,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 7,
    "guards_detected": [
        {
            "pc": 9710,
            "type": "tx_origin_used"
        },
        {
            "pc": 9745,
            "type": "tx_origin_used"
        },
        {
            "pc": 9969,
            "type": "tx_origin_used"
        },
        {
            "pc": 10079,
            "type": "tx_origin_used"
        },
        {
            "pc": 10086,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 7
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 0,
    "create2_count": 2
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 9
}