019c0ea9-085c-723d-86d7-deacd328451d
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 41809 | artifact.fetch | complete | 1 / 3 | 2 months ago |
| 41810 | proxy.resolve | complete | 1 / 3 | 2 months ago |
| 41811 | tool.cast_disasm | complete | 1 / 3 | 2 months ago |
| 41812 | analysis.bundle | complete | 1 / 3 | 2 months ago |
| 41813 | capability.graph | complete | 1 / 3 | 2 months ago |
| 41814 | detector.run | complete | 1 / 3 | 2 months ago |
| 41815 | validation.fork | complete | 1 / 3 | 2 months ago |
| 42334 | report.consolidate | complete | 1 / 6 | 2 months ago |
| 42335 | tool.slither | complete | 1 / 2 | 2 months ago |
{
"status": "not_proxy"
}
'forge clean' running (wd: /tmp/slither-_aw4u1ni)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-_aw4u1ni)
BlazeStaking._dailyUpdate() (contracts/blazeStaking.sol#373-397) uses a weak PRNG: "tempDayInContract % DAY8 == 0 (contracts/blazeStaking.sol#387)"
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#weak-PRNG
BlazeStaking.calculateSharesAndBonus(uint256,uint256) (contracts/blazeStaking.sol#356-371) performs a multiplication on the result of a division:
- __bonus = ((__durationInDays - MINIMUM_STAKING_PERIOD) * BASE_1e18) / Percent_In_Days (contracts/blazeStaking.sol#364)
- __shares = __shares + ((__shares * __bonus) / BASE_1e18) (contracts/blazeStaking.sol#366)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#divide-before-multiply
BlazeStaking._dailyUpdate() (contracts/blazeStaking.sol#373-397) uses a dangerous strict equality:
- tempDayInContract % DAY8 == 0 (contracts/blazeStaking.sol#387)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dangerous-strict-equalities
BlazeStaking._calculateUserCycleFeesReward(address,uint16).shares (contracts/blazeStaking.sol#561) is a local variable never initialized
BlazeStaking.distributeFeeRewardsForAll().lastCycleDistributionPortion (contracts/blazeStaking.sol#163) is a local variable never initialized
BlazeStaking.distributeFeeRewardsForAll().incentiveAmount (contracts/blazeStaking.sol#164) is a local variable never initialized
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-local-variables
BlazeStaking._setDiamondHand(address,uint256) (contracts/blazeStaking.sol#593-602) ignores return value by (currentDay,currentCycle,None) = IDiamondHand(_lastDistributionAddress).getCurrentDayAndCycleDetails() (contracts/blazeStaking.sol#594-595)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
Ownable2Step.transferOwnership(address).newOwner (lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol#43) lacks a zero-check on :
- _pendingOwner = newOwner (lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol#44)
BlazeStaking.constructor(address)._blazeTokenAddress (contracts/blazeStaking.sol#79) lacks a zero-check on :
- _blazeToken = _blazeTokenAddress (contracts/blazeStaking.sol#80)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
BlazeStaking._dailyUpdate() (contracts/blazeStaking.sol#373-397) uses timestamp for comparisons
Dangerous comparisons:
- currentDay > currentDayInContract (contracts/blazeStaking.sol#377)
- i < dayDifference (contracts/blazeStaking.sol#384)
- tempDayInContract % DAY8 == 0 (contracts/blazeStaking.sol#387)
BlazeStaking._unstakeBlaze(address,uint256) (contracts/blazeStaking.sol#399-417) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(stakeInfo.status != StakeStatus.COMPLETED,blazeStaking:blaze stake has already ended) (contracts/blazeStaking.sol#404)
- require(bool,string)(block.timestamp >= stakeInfo.maturityTimestamp,blazeStaking:blaze stake not matured) (contracts/blazeStaking.sol#405)
BlazeStaking._distributeFeeRewardsForCycle(uint16,uint32,uint256) (contracts/blazeStaking.sol#492-510) uses timestamp for comparisons
Dangerous comparisons:
- __currentDay < _nextCycleDistributionDay[__cycle] (contracts/blazeStaking.sol#497)
BlazeStaking._calculateAndSetNextDistributionDay(uint16) (contracts/blazeStaking.sol#512-519) uses timestamp for comparisons
Dangerous comparisons:
- currentDay >= mDay (contracts/blazeStaking.sol#515)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp
SafeERC20._safeTransfer(IERC20,address,uint256,bool) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#176-200) uses assembly
- INLINE ASM (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#179-199)
SafeERC20._safeTransferFrom(IERC20,address,address,uint256,bool) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#212-244) uses assembly
- INLINE ASM (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#221-243)
SafeERC20._safeApprove(IERC20,address,uint256,bool) (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#255-279) uses assembly
- INLINE ASM (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#258-278)
StorageSlot.getAddressSlot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#66-70) uses assembly
- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#67-69)
StorageSlot.getBooleanSlot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#75-79) uses assembly
- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#76-78)
StorageSlot.getBytes32Slot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#84-88) uses assembly
- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#85-87)
StorageSlot.getUint256Slot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#93-97) uses assembly
- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#94-96)
StorageSlot.getInt256Slot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#102-106) uses assembly
- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#103-105)
StorageSlot.getStringSlot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#111-115) uses assembly
- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#112-114)
StorageSlot.getStringSlot(string) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#120-124) uses assembly
- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#121-123)
StorageSlot.getBytesSlot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#129-133) uses assembly
- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#130-132)
StorageSlot.getBytesSlot(bytes) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#138-142) uses assembly
- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#139-141)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
4 different versions of Solidity are used:
- Version constraint 0.8.24 is used by:
-0.8.24 (contracts/blazeStaking.sol#2)
-0.8.24 (contracts/interfaces/IDiamondHand.sol#2)
-0.8.24 (contracts/utils/constants.sol#2)
-0.8.24 (contracts/utils/userDefinedType.sol#2)
- Version constraint ^0.8.20 is used by:
-^0.8.20 (lib/openzeppelin-contracts/contracts/access/Ownable.sol#4)
-^0.8.20 (lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol#4)
-^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#4)
-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Context.sol#4)
-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol#4)
-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#5)
- Version constraint >=0.6.2 is used by:
->=0.6.2 (lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol#4)
->=0.6.2 (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#4)
- Version constraint >=0.4.16 is used by:
->=0.4.16 (lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol#4)
->=0.4.16 (lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol#4)
->=0.4.16 (lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#4)
->=0.4.16 (lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#4)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used
Version constraint ^0.8.20 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- VerbatimInvalidDeduplication
- FullInlinerNonExpressionSplitArgumentEvaluationOrder
- MissingSideEffectsOnSelectorAccess.
It is used by:
- ^0.8.20 (lib/openzeppelin-contracts/contracts/access/Ownable.sol#4)
- ^0.8.20 (lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol#4)
- ^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol#4)
- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Context.sol#4)
- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol#4)
- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#5)
Version constraint >=0.6.2 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- MissingSideEffectsOnSelectorAccess
- AbiReencodingHeadOverflowWithStaticArrayCleanup
- DirtyBytesArrayToStorage
- NestedCalldataArrayAbiReencodingSizeValidation
- ABIDecodeTwoDimensionalArrayMemory
- KeccakCaching
- EmptyByteArrayCopy
- DynamicArrayCleanup
- MissingEscapingInFormatting
- ArraySliceDynamicallyEncodedBaseType
- ImplicitConstructorCallvalueCheck
- TupleAssignmentMultiStackSlotComponents
- MemoryArrayCreationOverflow.
It is used by:
- >=0.6.2 (lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol#4)
- >=0.6.2 (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#4)
Version constraint >=0.4.16 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- DirtyBytesArrayToStorage
- ABIDecodeTwoDimensionalArrayMemory
- KeccakCaching
- EmptyByteArrayCopy
- DynamicArrayCleanup
- ImplicitConstructorCallvalueCheck
- TupleAssignmentMultiStackSlotComponents
- MemoryArrayCreationOverflow
- privateCanBeOverridden
- SignedArrayStorageCopy
- ABIEncoderV2StorageArrayWithMultiSlotElement
- DynamicConstructorArgumentsClippedABIV2
- UninitializedFunctionPointerInConstructor_0.4.x
- IncorrectEventSignatureInLibraries_0.4.x
- ExpExponentCleanup
- NestedArrayFunctionCallDecoder
- ZeroFunctionSelector.
It is used by:
- >=0.4.16 (lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol#4)
- >=0.4.16 (lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol#4)
- >=0.4.16 (lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#4)
- >=0.4.16 (lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#4)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity
Low level call in BlazeStaking._transferETH(address,uint256) (contracts/blazeStaking.sol#521-524):
- (successful,None) = address(__to).call{value: __amount}() (contracts/blazeStaking.sol#522)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
Parameter BlazeStaking.setLastDistributionAddress(address).__lastDistributionAddress (contracts/blazeStaking.sol#93) is not in mixedCase
Parameter BlazeStaking.stakeBlaze(uint256,uint256).__blazeAmount (contracts/blazeStaking.sol#98) is not in mixedCase
Parameter BlazeStaking.stakeBlaze(uint256,uint256).__durationInDays (contracts/blazeStaking.sol#98) is not in mixedCase
Parameter BlazeStaking.unstakeBlaze(address,uint256).__user (contracts/blazeStaking.sol#139) is not in mixedCase
Parameter BlazeStaking.unstakeBlaze(address,uint256).__id (contracts/blazeStaking.sol#139) is not in mixedCase
Parameter BlazeStaking.getAvailableRewardsForClaim(address).__user (contracts/blazeStaking.sol#221) is not in mixedCase
Parameter BlazeStaking.getStakes(address,uint256,uint256).__user (contracts/blazeStaking.sol#232) is not in mixedCase
Parameter BlazeStaking.getStakes(address,uint256,uint256).__cursor (contracts/blazeStaking.sol#233) is not in mixedCase
Parameter BlazeStaking.getStakes(address,uint256,uint256).__size (contracts/blazeStaking.sol#234) is not in mixedCase
Parameter BlazeStaking.getCurrentSharesOfUser(address).__user (contracts/blazeStaking.sol#261) is not in mixedCase
Parameter BlazeStaking.getUserSharesAtParticularUserIndex(address,uint256).__user (contracts/blazeStaking.sol#266) is not in mixedCase
Parameter BlazeStaking.getUserSharesAtParticularUserIndex(address,uint256).__index (contracts/blazeStaking.sol#267) is not in mixedCase
Parameter BlazeStaking.getTotalCycleRewards(uint16).__cycle (contracts/blazeStaking.sol#295) is not in mixedCase
Parameter BlazeStaking.getNextCycleDistributionDay(uint16).__cycle (contracts/blazeStaking.sol#299) is not in mixedCase
Parameter BlazeStaking.getCurrentCycleIndex(uint16).__cycle (contracts/blazeStaking.sol#303) is not in mixedCase
Parameter BlazeStaking.getUser2888BlazeToken(address,uint256).__user (contracts/blazeStaking.sol#327) is not in mixedCase
Parameter BlazeStaking.getUser2888BlazeToken(address,uint256).__cycle (contracts/blazeStaking.sol#327) is not in mixedCase
Parameter BlazeStaking.getUserLastCycleClaimIndex(address,uint16).__user (contracts/blazeStaking.sol#332) is not in mixedCase
Parameter BlazeStaking.getUserLastCycleClaimIndex(address,uint16).__cycle (contracts/blazeStaking.sol#333) is not in mixedCase
Parameter BlazeStaking.getStakeInfoByUserStakeId(address,uint256).__user (contracts/blazeStaking.sol#341) is not in mixedCase
Parameter BlazeStaking.getStakeInfoByUserStakeId(address,uint256).__userStakeId (contracts/blazeStaking.sol#341) is not in mixedCase
Parameter BlazeStaking.getRewardsPerShare(uint16,uint32).__cycle (contracts/blazeStaking.sol#346) is not in mixedCase
Parameter BlazeStaking.getRewardsPerShare(uint16,uint32).__index (contracts/blazeStaking.sol#347) is not in mixedCase
Parameter BlazeStaking.getUserLatestShareIndex(address).__user (contracts/blazeStaking.sol#352) is not in mixedCase
Parameter BlazeStaking.calculateSharesAndBonus(uint256,uint256).__blazeAmount (contracts/blazeStaking.sol#357) is not in mixedCase
Parameter BlazeStaking.calculateSharesAndBonus(uint256,uint256).__durationInDays (contracts/blazeStaking.sol#358) is not in mixedCase
Variable BlazeStaking._deploymentTimeStamp (contracts/blazeStaking.sol#16) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
BlazeStaking._blazeToken (contracts/blazeStaking.sol#17) should be immutable
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-immutable
. analyzed (12 contracts with 100 detectors), 58 result(s) found
{
"solc": {
"status": "ok",
"use_rc": 0,
"version": "0.8.24",
"strategy": "solc-select",
"solc_path": "/var/www/tripwire/.venv/bin/solc",
"install_rc": 0,
"use_stderr": null,
"use_stdout": "Switched global version to 0.8.24",
"install_stderr": null,
"install_stdout": "Version '0.8.24' is already installed, skipping..."
},
"solc_args": "--base-path /tmp/slither-_aw4u1ni --include-path /tmp/slither-_aw4u1ni/lib --include-path /tmp/slither-_aw4u1ni/lib/openzeppelin-contracts --allow-paths /tmp/slither-_aw4u1ni,/tmp/slither-_aw4u1ni/lib,/tmp/slither-_aw4u1ni/lib/openzeppelin-contracts,/tmp/slither-_aw4u1ni/src",
"remappings": [
"openzeppelin-contracts/=lib/openzeppelin-contracts/",
"@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/"
],
"source_files": [
"@openzeppelin/contracts/access/Ownable.sol",
"@openzeppelin/contracts/access/Ownable2Step.sol",
"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol",
"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol",
"@openzeppelin/contracts/token/ERC20/IERC20.sol",
"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
"@openzeppelin/contracts/utils/Address.sol",
"@openzeppelin/contracts/utils/Context.sol",
"@openzeppelin/contracts/utils/ReentrancyGuard.sol",
"contracts/blazeStaking.sol",
"contracts/interfaces/IDiamondHand.sol",
"contracts/utils/constants.sol",
"contracts/utils/userDefinedType.sol"
],
"contract_count": 0,
"contract_names": [],
"detector_count": 58,
"workspace_hash": "dad335438a01f7c5fe0b666e1fb1d28219d68a945b78bc25867970b9f7e6585b",
"duration_seconds": 1.2241384983062744,
"solc_version_requested": "0.8.24"
}
{"no_findings":false,"summary":"Found two issues: anyone can force‑unstake a matured position (griefing), and stake accounting assumes non‑deflationary transfers which can desync balances if the token takes fees.","findings":[{"severity":"medium","category":"access_control","title":"Anyone can end another user’s matured stake, cutting off their future rewards","exploit_scenario":"An attacker monitors for stakes that just reached maturity and calls `unstakeBlaze(victim, stakeId)`. This immediately marks the stake completed and transfers the principal to the victim, but it also removes the victim’s shares from future reward distributions, effectively griefing them and potentially causing missed cycle rewards.","recommendation":"Restrict `unstakeBlaze` to the stake owner (e.g., `require(msg.sender == __user)`), or add explicit operator approvals if third‑party unstaking is intended.","evidence":"`unstakeBlaze` is `external` and accepts an arbitrary `__user`, then calls `_unstakeBlaze` without checking caller identity.","locations":["contracts/blazeStaking.sol:139"]},{"severity":"low","category":"other","title":"Share/accounting assumes full token transfer; deflationary tokens can break invariants","exploit_scenario":"If the staking token charges transfer fees or is deflationary, the contract credits shares and `_totalBlazeTokenStaked` based on the requested `__blazeAmount`, but receives fewer tokens. This can make the contract insolvent and misallocate rewards, and may revert on unstake due to insufficient balance.","recommendation":"Either restrict `_blazeToken` to non‑fee‑on‑transfer tokens or compute the actual received amount by comparing balances before/after `safeTransferFrom`, then base shares and totals on the received value.","evidence":"Shares and totals are updated using `__blazeAmount` before calling `safeTransferFrom`, and unstake returns the originally recorded amount.","locations":["contracts/blazeStaking.sol:126","contracts/blazeStaking.sol:134"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-0poeessw
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0f27-5d6e-77c1-ab91-84a5c1bc1760
--------
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
exec
/bin/bash -lc 'cat /tmp/codex-0poeessw/AUDIT_BUNDLE.txt' in /tmp/codex-0poeessw succeeded in 6ms:
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/blazeStaking.sol
================================================================================
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.24;
import "@openzeppelin/contracts/access/Ownable2Step.sol";
import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
import "@openzeppelin/contracts/utils/Context.sol";
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
import "./interfaces/IDiamondHand.sol";
import "./utils/constants.sol";
import "./utils/userDefinedType.sol";
contract BlazeStaking is ReentrancyGuard, Context, Ownable2Step {
using SafeERC20 for IERC20;
exec
/bin/bash -lc 'rg -n "function unstakeBlaze" -n /tmp/codex-0poeessw/contracts/blazeStaking.sol' in /tmp/codex-0poeessw succeeded in 7ms:
139: function unstakeBlaze(address __user, uint256 __id) external dailyUpdate nonReentrant {
148: // function unstakeBlazeForOthers(address __user, uint256 __id) external dailyUpdate nonReentrant {
exec
/bin/bash -lc 'rg -n "_setDiamondHand" /tmp/codex-0poeessw/contracts/blazeStaking.sol' in /tmp/codex-0poeessw succeeded in 6ms:
132: _setDiamondHand(_msgSender(), __blazeAmount);
593: function _setDiamondHand(address __user, uint256 __amount) private {
exec
/bin/bash -lc 'rg -n "function stakeBlaze" /tmp/codex-0poeessw/contracts/blazeStaking.sol' in /tmp/codex-0poeessw succeeded in 9ms:
98: function stakeBlaze(uint256 __blazeAmount, uint256 __durationInDays) external dailyUpdate nonReentrant {
exec
/bin/bash -lc "nl -ba /tmp/codex-0poeessw/contracts/blazeStaking.sol | sed -n '98,150p'" in /tmp/codex-0poeessw succeeded in 12ms:
98 function stakeBlaze(uint256 __blazeAmount, uint256 __durationInDays) external dailyUpdate nonReentrant {
99 // IBlazeToken(_blazeToken).burn(_msgSender(), __blazeAmount);
100 // uint8 _isFirstStake = _stakeBlaze(_msgSender(), __blazeAmount, __durationInDays);
101
102 uint256 stakeId = ++_userAddressToStakeId[_msgSender()];
103
104 require(
105 __durationInDays >= MINIMUM_STAKING_PERIOD && __durationInDays <= MAXIMUM_STAKING_PERIOD,
106 "blazeStaking:blaze stake duration not valid"
107 );
108 //calculate shares
109 (uint256 totalShares, ) = calculateSharesAndBonus(__blazeAmount, __durationInDays);
110 uint256 globalStakeId = ++_stakeIdCounter;
111 _userStakeIdToGlobalStakeId[_msgSender()][stakeId] = globalStakeId;
112
113 uint32 stakeMaturityTimestamp = uint32(block.timestamp + (__durationInDays * SECONDS_IN_DAY));
114
115 StakeInfo memory stakeInfo = StakeInfo({
116 amount: __blazeAmount,
117 shares: totalShares,
exec
/bin/bash -lc "nl -ba /tmp/codex-0poeessw/contracts/blazeStaking.sol | sed -n '585,640p'" in /tmp/codex-0poeessw succeeded in 6ms:
585 ) private {
586 if (__userClaimCycleIndex != _userAddressToCycleToLastClaimIndex[__user][__cycle].cycleIndex)
587 _userAddressToCycleToLastClaimIndex[__user][__cycle].cycleIndex = (__userClaimCycleIndex);
588
589 if (__userClaimSharesIndex != _userAddressToCycleToLastClaimIndex[__user][__cycle].sharesIndex)
590 _userAddressToCycleToLastClaimIndex[__user][__cycle].sharesIndex = uint64(__userClaimSharesIndex);
591 }
592
593 function _setDiamondHand(address __user, uint256 __amount) private {
594 (uint256 currentDay, uint256 currentCycle, ) = IDiamondHand(_lastDistributionAddress)
595 .getCurrentDayAndCycleDetails();
596 uint256 cycleStartDay = (currentCycle - 1) * 888;
597 uint256 cycleEndDay = cycleStartDay + 365;
598 bool isEligible = currentDay <= cycleEndDay;
599 if (isEligible) {
600 _user2888CycleBlazeTokenAmount[__user][currentCycle] += __amount;
601 }
602 }
603 }
codex
{"no_findings":false,"summary":"Found two issues: anyone can force‑unstake a matured position (griefing), and stake accounting assumes non‑deflationary transfers which can desync balances if the token takes fees.","findings":[{"severity":"medium","category":"access_control","title":"Anyone can end another user’s matured stake, cutting off their future rewards","exploit_scenario":"An attacker monitors for stakes that just reached maturity and calls `unstakeBlaze(victim, stakeId)`. This immediately marks the stake completed and transfers the principal to the victim, but it also removes the victim’s shares from future reward distributions, effectively griefing them and potentially causing missed cycle rewards.","recommendation":"Restrict `unstakeBlaze` to the stake owner (e.g., `require(msg.sender == __user)`), or add explicit operator approvals if third‑party unstaking is intended.","evidence":"`unstakeBlaze` is `external` and accepts an arbitrary `__user`, then calls `_unstakeBlaze` without checking caller identity.","locations":["contracts/blazeStaking.sol:139"]},{"severity":"low","category":"other","title":"Share/accounting assumes full token transfer; deflationary tokens can break invariants","exploit_scenario":"If the staking token charges transfer fees or is deflationary, the contract credits shares and `_totalBlazeTokenStaked` based on the requested `__blazeAmount`, but receives fewer tokens. This can make the contract insolvent and misallocate rewards, and may revert on unstake due to insufficient balance.","recommendation":"Either restrict `_blazeToken` to non‑fee‑on‑transfer tokens or compute the actual received amount by comparing balances before/after `safeTransferFrom`, then base shares and totals on the received value.","evidence":"Shares and totals are updated using `__blazeAmount` before calling `safeTransferFrom`, and unstake returns the originally recorded amount.","locations":["contracts/blazeStaking.sol:126","contracts/blazeStaking.sol:134"]}]}
tokens used
37,135
{
"codex": {
"ran_at": "2026-01-30T13:48:00.266498+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 13,
"import_count": 13,
"first_party_contracts_count": 4
},
"summary": "Found two issues: anyone can force\u2011unstake a matured position (griefing), and stake accounting assumes non\u2011deflationary transfers which can desync balances if the token takes fees.",
"raw_final": {
"summary": "Found two issues: anyone can force\u2011unstake a matured position (griefing), and stake accounting assumes non\u2011deflationary transfers which can desync balances if the token takes fees.",
"findings": [
{
"title": "Anyone can end another user\u2019s matured stake, cutting off their future rewards",
"category": "access_control",
"evidence": "`unstakeBlaze` is `external` and accepts an arbitrary `__user`, then calls `_unstakeBlaze` without checking caller identity.",
"severity": "medium",
"locations": [
"contracts/blazeStaking.sol:139"
],
"recommendation": "Restrict `unstakeBlaze` to the stake owner (e.g., `require(msg.sender == __user)`), or add explicit operator approvals if third\u2011party unstaking is intended.",
"exploit_scenario": "An attacker monitors for stakes that just reached maturity and calls `unstakeBlaze(victim, stakeId)`. This immediately marks the stake completed and transfers the principal to the victim, but it also removes the victim\u2019s shares from future reward distributions, effectively griefing them and potentially causing missed cycle rewards."
},
{
"title": "Share/accounting assumes full token transfer; deflationary tokens can break invariants",
"category": "other",
"evidence": "Shares and totals are updated using `__blazeAmount` before calling `safeTransferFrom`, and unstake returns the originally recorded amount.",
"severity": "low",
"locations": [
"contracts/blazeStaking.sol:126",
"contracts/blazeStaking.sol:134"
],
"recommendation": "Either restrict `_blazeToken` to non\u2011fee\u2011on\u2011transfer tokens or compute the actual received amount by comparing balances before/after `safeTransferFrom`, then base shares and totals on the received value.",
"exploit_scenario": "If the staking token charges transfer fees or is deflationary, the contract credits shares and `_totalBlazeTokenStaked` based on the requested `__blazeAmount`, but receives fewer tokens. This can make the contract insolvent and misallocate rewards, and may revert on unstake due to insufficient balance."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x01fd 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x8ac81ba2 00000019: GT 0000001a: PUSH2 0x010d 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xb92f46cd 00000024: GT 00000025: PUSH2 0x00a0 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xcf9a3361 0000002f: GT 00000030: PUSH2 0x006f 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xcf9a3361 0000003a: EQ 0000003b: PUSH2 0x0702 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xe30c3978 00000045: EQ 00000046: PUSH2 0x0722 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xf2fde38b 00000050: EQ 00000051: PUSH2 0x0740 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xfaa94d3b 0000005b: EQ 0000005c: PUSH2 0x0760 0000005f: JUMPI 00000060: DUP1 00000061: PUSH4 0xfbf9529d 00000066: EQ 00000067: PUSH2 0x0796 0000006a: JUMPI 0000006b: PUSH1 0x00 0000006d: DUP1 0000006e: REVERT 0000006f: JUMPDEST 00000070: DUP1 00000071: PUSH4 0xb92f46cd 00000076: EQ 00000077: PUSH2 0x0665 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xc0e764cb 00000081: EQ 00000082: PUSH2 0x0696 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0xc36e60a9 0000008c: EQ 0000008d: PUSH2 0x06b6 00000090: JUMPI 00000091: DUP1 00000092: PUSH4 0xc61697aa 00000097: EQ 00000098: PUSH2 0x06cb 0000009b: JUMPI 0000009c: PUSH1 0x00 0000009e: DUP1 0000009f: REVERT 000000a0: JUMPDEST 000000a1: DUP1 000000a2: PUSH4 0xa84dd993 000000a7: GT 000000a8: PUSH2 0x00dc 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0xa84dd993 000000b2: EQ 000000b3: PUSH2 0x05d7 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0xaea80d8e 000000bd: EQ 000000be: PUSH2 0x060e 000000c1: JUMPI 000000c2: DUP1 000000c3: PUSH4 0xb48a8fa0 000000c8: EQ 000000c9: PUSH2 0x0630 000000cc: JUMPI 000000cd: DUP1 000000ce: PUSH4 0xb729bd24 000000d3: EQ 000000d4: PUSH2 0x0650 000000d7: JUMPI 000000d8: PUSH1 0x00 000000da: DUP1 000000db: REVERT 000000dc: JUMPDEST 000000dd: DUP1 000000de: PUSH4 0x8ac81ba2 000000e3: EQ 000000e4: PUSH2 0x0534 000000e7: JUMPI 000000e8: DUP1 000000e9: PUSH4 0x8da5cb5b 000000ee: EQ 000000ef: PUSH2 0x0554 000000f2: JUMPI 000000f3: DUP1 000000f4: PUSH4 0x8e48426f 000000f9: EQ 000000fa: PUSH2 0x0572 000000fd: JUMPI 000000fe: DUP1 000000ff: PUSH4 0x92013f73 00000104: EQ 00000105: PUSH2 0x0587 00000108: JUMPI 00000109: PUSH1 0x00 0000010b: DUP1 0000010c: REVERT 0000010d: JUMPDEST 0000010e: DUP1 0000010f: PUSH4 0x2c1fc492 00000114: GT 00000115: PUSH2 0x0190 00000118: JUMPI 00000119: DUP1 0000011a: PUSH4 0x64deb928 0000011f: GT 00000120: PUSH2 0x015f 00000123: JUMPI 00000124: DUP1 00000125: PUSH4 0x64deb928 0000012a: EQ 0000012b: PUSH2 0x0461 0000012e: JUMPI 0000012f: DUP1 00000130: PUSH4 0x715018a6 00000135: EQ 00000136: PUSH2 0x04aa 00000139: JUMPI 0000013a: DUP1 0000013b: PUSH4 0x73b714d3 00000140: EQ 00000141: PUSH2 0x04bf 00000144: JUMPI 00000145: DUP1 00000146: PUSH4 0x79ba5097 0000014b: EQ 0000014c: PUSH2 0x050a 0000014f: JUMPI 00000150: DUP1 00000151: PUSH4 0x86491dd9 00000156: EQ 00000157: PUSH2 0x051f 0000015a: JUMPI 0000015b: PUSH1 0x00 0000015d: DUP1 0000015e: REVERT 0000015f: JUMPDEST 00000160: DUP1 00000161: PUSH4 0x2c1fc492 00000166: EQ 00000167: PUSH2 0x03f4 0000016a: JUMPI 0000016b: DUP1 0000016c: PUSH4 0x2da496e3 00000171: EQ 00000172: PUSH2 0x0409 00000175: JUMPI 00000176: DUP1 00000177: PUSH4 0x51d18598 0000017c: EQ 0000017d: PUSH2 0x0437 00000180: JUMPI 00000181: DUP1 00000182: PUSH4 0x60484f1b 00000187: EQ 00000188: PUSH2 0x044c 0000018b: JUMPI 0000018c: PUSH1 0x00 0000018e: DUP1 0000018f: REVERT 00000190: JUMPDEST 00000191: DUP1 00000192: PUSH4 0x13480222 00000197: GT 00000198: PUSH2 0x01cc 0000019b: JUMPI 0000019c: DUP1 0000019d: PUSH4 0x13480222 000001a2: EQ 000001a3: PUSH2 0x0321 000001a6: JUMPI 000001a7: DUP1 000001a8: PUSH4 0x24bc8d3f 000001ad: EQ 000001ae: PUSH2 0x0353 000001b1: JUMPI 000001b2: DUP1 000001b3: PUSH4 0x260270c7 000001b8: EQ 000001b9: PUSH2 0x03a4 000001bc: JUMPI 000001bd: DUP1 000001be: PUSH4 0x28e4e99e 000001c3: EQ 000001c4: PUSH2 0x03c4 000001c7: JUMPI 000001c8: PUSH1 0x00 000001ca: DUP1 000001cb: REVERT 000001cc: JUMPDEST 000001cd: DUP1 000001ce: PUSH4 0x01a4146f 000001d3: EQ 000001d4: PUSH2 0x0221 000001d7: JUMPI 000001d8: DUP1 000001d9: PUSH4 0x04010c03 000001de: EQ 000001df: PUSH2 0x028e 000001e2: JUMPI 000001e3: DUP1 000001e4: PUSH4 0x0d1269ac 000001e9: EQ 000001ea: PUSH2 0x02b0 000001ed: JUMPI 000001ee: DUP1 000001ef: PUSH4 0x10d3872a 000001f4: EQ 000001f5: PUSH2 0x02dd 000001f8: JUMPI 000001f9: PUSH1 0x00 000001fb: DUP1 000001fc: REVERT 000001fd: JUMPDEST 000001fe: CALLDATASIZE 000001ff: PUSH2 0x021c 00000202: JUMPI 00000203: CALLVALUE 00000204: PUSH1 0x0b 00000206: PUSH1 0x00 00000208: DUP3 00000209: DUP3 0000020a: SLOAD 0000020b: PUSH2 0x0214 0000020e: SWAP2 0000020f: SWAP1 00000210: PUSH2 0x2554 00000213: JUMP 00000214: JUMPDEST 00000215: SWAP3 00000216: POP 00000217: POP 00000218: DUP2 00000219: SWAP1 0000021a: SSTORE 0000021b: STOP 0000021c: JUMPDEST 0000021d: PUSH1 0x00 0000021f: DUP1 00000220: REVERT 00000221: JUMPDEST 00000222: CALLVALUE 00000223: DUP1 00000224: ISZERO 00000225: PUSH2 0x022d 00000228: JUMPI 00000229: PUSH1 0x00 0000022b: DUP1 0000022c: REVERT 0000022d: JUMPDEST 0000022e: POP 0000022f: PUSH2 0x0274 00000232: PUSH2 0x023c 00000235: CALLDATASIZE 00000236: PUSH1 0x04 00000238: PUSH2 0x2583 0000023b: JUMP 0000023c: JUMPDEST 0000023d: PUSH1 0x01 0000023f: PUSH1 0x01 00000241: PUSH1 0xa0 00000243: SHL 00000244: SUB 00000245: SWAP2 00000246: SWAP1 00000247: SWAP2 00000248: AND 00000249: PUSH1 0x00 0000024b: SWAP1 0000024c: DUP2 0000024d: MSTORE 0000024e: PUSH1 0x16 00000250: PUSH1 0x20 00000252: SWAP1 00000253: DUP2 00000254: MSTORE 00000255: PUSH1 0x40 00000257: DUP1 00000258: DUP4 00000259: KECCAK256 0000025a: SWAP4 0000025b: DUP4 0000025c: MSTORE 0000025d: SWAP3 0000025e: SWAP1 0000025f: MSTORE 00000260: KECCAK256 00000261: PUSH1 0x01 00000263: DUP2 00000264: ADD 00000265: SLOAD 00000266: SWAP1 00000267: SLOAD 00000268: SWAP1 00000269: SWAP2 0000026a: PUSH4 0xffffffff 0000026f: SWAP1 00000270: SWAP2 00000271: AND 00000272: SWAP1 00000273: JUMP 00000274: JUMPDEST 00000275: PUSH1 0x40 00000277: DUP1 00000278: MLOAD 00000279: SWAP3 0000027a: DUP4 0000027b: MSTORE 0000027c: PUSH1 0x20 0000027e: DUP4 0000027f: ADD 00000280: SWAP2 00000281: SWAP1 00000282: SWAP2 00000283: MSTORE 00000284: ADD 00000285: JUMPDEST 00000286: PUSH1 0x40 00000288: MLOAD 00000289: DUP1 0000028a: SWAP2 0000028b: SUB 0000028c: SWAP1 0000028d: RETURN 0000028e: JUMPDEST 0000028f: CALLVALUE 00000290: DUP1 00000291: ISZERO 00000292: PUSH2 0x029a 00000295: JUMPI 00000296: PUSH1 0x00 00000298: DUP1 00000299: REVERT 0000029a: JUMPDEST 0000029b: POP 0000029c: PUSH2 0x02ae 0000029f: PUSH2 0x02a9 000002a2: CALLDATASIZE 000002a3: PUSH1 0x04 000002a5: PUSH2 0x25ad 000002a8: JUMP 000002a9: JUMPDEST 000002aa: PUSH2 0x07ab 000002ad: JUMP 000002ae: JUMPDEST 000002af: STOP 000002b0: JUMPDEST 000002b1: CALLVALUE 000002b2: DUP1 000002b3: ISZERO 000002b4: PUSH2 0x02bc 000002b7: JUMPI 000002b8: PUSH1 0x00 000002ba: DUP1 000002bb: REVERT 000002bc: JUMPDEST 000002bd: POP 000002be: PUSH2 0x02d0 000002c1: PUSH2 0x02cb 000002c4: CALLDATASIZE 000002c5: PUSH1 0x04 000002c7: PUSH2 0x2583 000002ca: JUMP 000002cb: JUMPDEST 000002cc: PUSH2 0x0a6e 000002cf: JUMP 000002d0: JUMPDEST 000002d1: PUSH1 0x40 000002d3: MLOAD 000002d4: PUSH2 0x0285 000002d7: SWAP2 000002d8: SWAP1 000002d9: PUSH2 0x2658 000002dc: JUMP 000002dd: JUMPDEST 000002de: CALLVALUE 000002df: DUP1 000002e0: ISZERO 000002e1: PUSH2 0x02e9 000002e4: JUMPI 000002e5: PUSH1 0x00 000002e7: DUP1 000002e8: REVERT 000002e9: JUMPDEST 000002ea: POP 000002eb: PUSH2 0x02fd 000002ee: PUSH2 0x02f8 000002f1: CALLDATASIZE 000002f2: PUSH1 0x04 000002f4: PUSH2 0x2678 000002f7: JUMP 000002f8: JUMPDEST 000002f9: PUSH2 0x0b2d 000002fc: JUMP 000002fd: JUMPDEST 000002fe: PUSH1 0x40 00000300: DUP1 00000301: MLOAD 00000302: PUSH4 0xffffffff 00000307: SWAP1 00000308: SWAP4 00000309: AND 0000030a: DUP4 0000030b: MSTORE 0000030c: PUSH1 0x01 0000030e: PUSH1 0x01 00000310: PUSH1 0x60 00000312: SHL 00000313: SUB 00000314: SWAP1 00000315: SWAP2 00000316: AND 00000317: PUSH1 0x20 00000319: DUP4 0000031a: ADD 0000031b: MSTORE 0000031c: ADD 0000031d: PUSH2 0x0285 00000320: JUMP 00000321: JUMPDEST 00000322: CALLVALUE 00000323: DUP1 00000324: ISZERO 00000325: PUSH2 0x032d 00000328: JUMPI 00000329: PUSH1 0x00 0000032b: DUP1 0000032c: REVERT 0000032d: JUMPDEST 0000032e: POP 0000032f: PUSH1 0x04 00000331: SLOAD 00000332: PUSH1 0x01 00000334: PUSH1 0x01 00000336: PUSH1 0xa0 00000338: SHL 00000339: SUB 0000033a: AND 0000033b: JUMPDEST 0000033c: PUSH1 0x40 0000033e: MLOAD 0000033f: PUSH1 0x01 00000341: PUSH1 0x01 00000343: PUSH1 0xa0 00000345: SHL 00000346: SUB 00000347: SWAP1 00000348: SWAP2 00000349: AND 0000034a: DUP2 0000034b: MSTORE 0000034c: PUSH1 0x20 0000034e: ADD 0000034f: PUSH2 0x0285 00000352: JUMP 00000353: JUMPDEST 00000354: CALLVALUE 00000355: DUP1 00000356: ISZERO 00000357: PUSH2 0x035f 0000035a: JUMPI 0000035b: PUSH1 0x00 0000035d: DUP1 0000035e: REVERT 0000035f: JUMPDEST 00000360: POP 00000361: PUSH2 0x0396 00000364: PUSH2 0x036e 00000367: CALLDATASIZE 00000368: PUSH1 0x04 0000036a: PUSH2 0x2583 0000036d: JUMP 0000036e: JUMPDEST 0000036f: PUSH1 0x01 00000371: PUSH1 0x01 00000373: PUSH1 0xa0 00000375: SHL 00000376: SUB 00000377: SWAP2 00000378: SWAP1 00000379: SWAP2 0000037a: AND 0000037b: PUSH1 0x00 0000037d: SWAP1 0000037e: DUP2 0000037f: MSTORE 00000380: PUSH1 0x17 00000382: PUSH1 0x20 00000384: SWAP1 00000385: DUP2 00000386: MSTORE 00000387: PUSH1 0x40 00000389: DUP1 0000038a: DUP4 0000038b: KECCAK256 0000038c: SWAP4 0000038d: DUP4 0000038e: MSTORE 0000038f: SWAP3 00000390: SWAP1 00000391: MSTORE 00000392: KECCAK256 00000393: SLOAD 00000394: SWAP1 00000395: JUMP 00000396: JUMPDEST 00000397: PUSH1 0x40 00000399: MLOAD 0000039a: SWAP1 0000039b: DUP2 0000039c: MSTORE 0000039d: PUSH1 0x20 0000039f: ADD 000003a0: PUSH2 0x0285 000003a3: JUMP 000003a4: JUMPDEST 000003a5: CALLVALUE 000003a6: DUP1 000003a7: ISZERO 000003a8: PUSH2 0x03b0 000003ab: JUMPI 000003ac: PUSH1 0x00 000003ae: DUP1 000003af: REVERT 000003b0: JUMPDEST 000003b1: POP 000003b2: PUSH2 0x02ae 000003b5: PUSH2 0x03bf 000003b8: CALLDATASIZE 000003b9: PUSH1 0x04 000003bb: PUSH2 0x2583 000003be: JUMP 000003bf: JUMPDEST 000003c0: PUSH2 0x0b75 000003c3: JUMP 000003c4: JUMPDEST 000003c5: CALLVALUE 000003c6: DUP1 000003c7: ISZERO 000003c8: PUSH2 0x03d0 000003cb: JUMPI 000003cc: PUSH1 0x00 000003ce: DUP1 000003cf: REVERT 000003d0: JUMPDEST 000003d1: POP 000003d2: PUSH2 0x03d9 000003d5: PUSH2 0x0bb6 000003d8: JUMP 000003d9: JUMPDEST 000003da: PUSH1 0x40 000003dc: DUP1 000003dd: MLOAD 000003de: SWAP4 000003df: DUP5 000003e0: MSTORE 000003e1: PUSH1 0x20 000003e3: DUP5 000003e4: ADD 000003e5: SWAP3 000003e6: SWAP1 000003e7: SWAP3 000003e8: MSTORE 000003e9: SWAP1 000003ea: DUP3 000003eb: ADD 000003ec: MSTORE 000003ed: PUSH1 0x60 000003ef: ADD 000003f0: PUSH2 0x0285 000003f3: JUMP 000003f4: JUMPDEST 000003f5: CALLVALUE 000003f6: DUP1 000003f7: ISZERO 000003f8: PUSH2 0x0400 000003fb: JUMPI 000003fc: PUSH1 0x00 000003fe: DUP1 000003ff: REVERT 00000400: JUMPDEST 00000401: POP 00000402: PUSH2 0x03d9 00000405: PUSH2 0x0bdc 00000408: JUMP 00000409: JUMPDEST 0000040a: CALLVALUE 0000040b: DUP1 0000040c: ISZERO 0000040d: PUSH2 0x0415 00000410: JUMPI 00000411: PUSH1 0x00 00000413: DUP1 00000414: REVERT 00000415: JUMPDEST 00000416: POP 00000417: PUSH2 0x0429 0000041a: PUSH2 0x0424 0000041d: CALLDATASIZE 0000041e: PUSH1 0x04 00000420: PUSH2 0x26ab 00000423: JUMP 00000424: JUMPDEST 00000425: PUSH2 0x0bf7 00000428: JUMP 00000429: JUMPDEST 0000042a: PUSH1 0x40 0000042c: MLOAD 0000042d: PUSH2 0x0285 00000430: SWAP3 00000431: SWAP2 00000432: SWAP1 00000433: PUSH2 0x26de 00000436: JUMP 00000437: JUMPDEST 00000438: CALLVALUE 00000439: DUP1 0000043a: ISZERO 0000043b: PUSH2 0x0443 0000043e: JUMPI 0000043f: PUSH1 0x00 00000441: DUP1 00000442: REVERT 00000443: JUMPDEST 00000444: POP 00000445: PUSH1 0x09 00000447: SLOAD 00000448: PUSH2 0x0396 0000044b: JUMP 0000044c: JUMPDEST 0000044d: CALLVALUE 0000044e: DUP1 0000044f: ISZERO 00000450: PUSH2 0x0458 00000453: JUMPI 00000454: PUSH1 0x00 00000456: DUP1 00000457: REVERT 00000458: JUMPDEST 00000459: POP 0000045a: PUSH2 0x02ae 0000045d: PUSH2 0x0d8a 00000460: JUMP 00000461: JUMPDEST 00000462: CALLVALUE 00000463: DUP1 00000464: ISZERO 00000465: PUSH2 0x046d 00000468: JUMPI 00000469: PUSH1 0x00 0000046b: DUP1 0000046c: REVERT 0000046d: JUMPDEST 0000046e: POP 0000046f: PUSH2 0x0495 00000472: PUSH32 0x00000000000000000000000000000000000000000000000000000000667be25b 00000493: DUP2 00000494: JUMP 00000495: JUMPDEST 00000496: PUSH1 0x40 00000498: MLOAD 00000499: PUSH4 0xffffffff 0000049e: SWAP1 0000049f: SWAP2 000004a0: AND 000004a1: DUP2 000004a2: MSTORE 000004a3: PUSH1 0x20 000004a5: ADD 000004a6: PUSH2 0x0285 000004a9: JUMP 000004aa: JUMPDEST 000004ab: CALLVALUE 000004ac: DUP1 000004ad: ISZERO 000004ae: PUSH2 0x04b6 000004b1: JUMPI 000004b2: PUSH1 0x00 000004b4: DUP1 000004b5: REVERT 000004b6: JUMPDEST 000004b7: POP 000004b8: PUSH2 0x02ae 000004bb: PUSH2 0x0e20 000004be: JUMP 000004bf: JUMPDEST 000004c0: CALLVALUE 000004c1: DUP1 000004c2: ISZERO 000004c3: PUSH2 0x04cb 000004c6: JUMPI 000004c7: PUSH1 0x00 000004c9: DUP1 000004ca: REVERT 000004cb: JUMPDEST 000004cc: POP 000004cd: PUSH2 0x0396 000004d0: PUSH2 0x04da 000004d3: CALLDATASIZE 000004d4: PUSH1 0x04 000004d6: PUSH2 0x274c 000004d9: JUMP 000004da: JUMPDEST 000004db: PUSH1 0x01 000004dd: PUSH1 0x01 000004df: PUSH1 0xa0 000004e1: SHL 000004e2: SUB 000004e3: AND 000004e4: PUSH1 0x00 000004e6: SWAP1 000004e7: DUP2 000004e8: MSTORE 000004e9: PUSH1 0x16 000004eb: PUSH1 0x20 000004ed: SWAP1 000004ee: DUP2 000004ef: MSTORE 000004f0: PUSH1 0x40 000004f2: DUP1 000004f3: DUP4 000004f4: KECCAK256 000004f5: PUSH1 0x15 000004f7: DUP4 000004f8: MSTORE 000004f9: DUP2 000004fa: DUP5 000004fb: KECCAK256 000004fc: SLOAD 000004fd: DUP5 000004fe: MSTORE 000004ff: SWAP1 00000500: SWAP2 00000501: MSTORE 00000502: SWAP1 00000503: KECCAK256 00000504: PUSH1 0x01 00000506: ADD 00000507: SLOAD 00000508: SWAP1 00000509: JUMP 0000050a: JUMPDEST 0000050b: CALLVALUE 0000050c: DUP1 0000050d: ISZERO 0000050e: PUSH2 0x0516 00000511: JUMPI 00000512: PUSH1 0x00 00000514: DUP1 00000515: REVERT 00000516: JUMPDEST 00000517: POP 00000518: PUSH2 0x02ae 0000051b: PUSH2 0x0e32 0000051e: JUMP 0000051f: JUMPDEST 00000520: CALLVALUE 00000521: DUP1 00000522: ISZERO 00000523: PUSH2 0x052b 00000526: JUMPI 00000527: PUSH1 0x00 00000529: DUP1 0000052a: REVERT 0000052b: JUMPDEST 0000052c: POP 0000052d: PUSH2 0x02ae 00000530: PUSH2 0x0e76 00000533: JUMP 00000534: JUMPDEST 00000535: CALLVALUE 00000536: DUP1 00000537: ISZERO 00000538: PUSH2 0x0540 0000053b: JUMPI 0000053c: PUSH1 0x00 0000053e: DUP1 0000053f: REVERT 00000540: JUMPDEST 00000541: POP 00000542: PUSH1 0x0c 00000544: SLOAD 00000545: PUSH1 0xff 00000547: AND 00000548: PUSH1 0x40 0000054a: MLOAD 0000054b: PUSH2 0x0285 0000054e: SWAP2 0000054f: SWAP1 00000550: PUSH2 0x2767 00000553: JUMP 00000554: JUMPDEST 00000555: CALLVALUE 00000556: DUP1 00000557: ISZERO 00000558: PUSH2 0x0560 0000055b: JUMPI 0000055c: PUSH1 0x00 0000055e: DUP1 0000055f: REVERT 00000560: JUMPDEST 00000561: POP 00000562: PUSH1 0x01 00000564: SLOAD 00000565: PUSH1 0x01 00000567: PUSH1 0x01 00000569: PUSH1 0xa0 0000056b: SHL 0000056c: SUB 0000056d: AND 0000056e: PUSH2 0x033b 00000571: JUMP 00000572: JUMPDEST 00000573: CALLVALUE 00000574: DUP1 00000575: ISZERO 00000576: PUSH2 0x057e 00000579: JUMPI 0000057a: PUSH1 0x00 0000057c: DUP1 0000057d: REVERT 0000057e: JUMPDEST 0000057f: POP 00000580: PUSH2 0x02ae 00000583: PUSH2 0x0eef 00000586: JUMP 00000587: JUMPDEST 00000588: CALLVALUE 00000589: DUP1 0000058a: ISZERO 0000058b: PUSH2 0x0593 0000058e: JUMPI 0000058f: PUSH1 0x00 00000591: DUP1 00000592: REVERT 00000593: JUMPDEST 00000594: POP 00000595: PUSH2 0x0274 00000598: PUSH2 0x05a2 0000059b: CALLDATASIZE 0000059c: PUSH1 0x04 0000059e: PUSH2 0x277a 000005a1: JUMP 000005a2: JUMPDEST 000005a3: PUSH2 0xffff 000005a6: SWAP2 000005a7: SWAP1 000005a8: SWAP2 000005a9: AND 000005aa: PUSH1 0x00 000005ac: SWAP1 000005ad: DUP2 000005ae: MSTORE 000005af: PUSH1 0x10 000005b1: PUSH1 0x20 000005b3: SWAP1 000005b4: DUP2 000005b5: MSTORE 000005b6: PUSH1 0x40 000005b8: DUP1 000005b9: DUP4 000005ba: KECCAK256 000005bb: PUSH4 0xffffffff 000005c0: SWAP5 000005c1: DUP6 000005c2: AND 000005c3: DUP5 000005c4: MSTORE 000005c5: SWAP1 000005c6: SWAP2 000005c7: MSTORE 000005c8: SWAP1 000005c9: KECCAK256 000005ca: PUSH1 0x01 000005cc: DUP2 000005cd: ADD 000005ce: SLOAD 000005cf: SWAP1 000005d0: SLOAD 000005d1: SWAP1 000005d2: SWAP3 000005d3: SWAP2 000005d4: AND 000005d5: SWAP1 000005d6: JUMP 000005d7: JUMPDEST 000005d8: CALLVALUE 000005d9: DUP1 000005da: ISZERO 000005db: PUSH2 0x05e3 000005de: JUMPI 000005df: PUSH1 0x00 000005e1: DUP1 000005e2: REVERT 000005e3: JUMPDEST 000005e4: POP 000005e5: PUSH2 0x0396 000005e8: PUSH2 0x05f2 000005eb: CALLDATASIZE 000005ec: PUSH1 0x04 000005ee: PUSH2 0x27ba 000005f1: JUMP 000005f2: JUMPDEST 000005f3: PUSH2 0xffff 000005f6: AND 000005f7: PUSH1 0x00 000005f9: SWAP1 000005fa: DUP2 000005fb: MSTORE 000005fc: PUSH1 0x0f 000005fe: PUSH1 0x20 00000600: MSTORE 00000601: PUSH1 0x40 00000603: SWAP1 00000604: KECCAK256 00000605: SLOAD 00000606: PUSH4 0xffffffff 0000060b: AND 0000060c: SWAP1 0000060d: JUMP 0000060e: JUMPDEST 0000060f: CALLVALUE 00000610: DUP1 00000611: ISZERO 00000612: PUSH2 0x061a 00000615: JUMPI 00000616: PUSH1 0x00 00000618: DUP1 00000619: REVERT 0000061a: JUMPDEST 0000061b: POP 0000061c: PUSH1 0x04 0000061e: SLOAD 0000061f: PUSH1 0x01 00000621: PUSH1 0xa0 00000623: SHL 00000624: SWAP1 00000625: DIV 00000626: PUSH4 0xffffffff 0000062b: AND 0000062c: PUSH2 0x0396 0000062f: JUMP 00000630: JUMPDEST 00000631: CALLVALUE 00000632: DUP1 00000633: ISZERO 00000634: PUSH2 0x063c 00000637: JUMPI 00000638: PUSH1 0x00 0000063a: DUP1 0000063b: REVERT 0000063c: JUMPDEST 0000063d: POP 0000063e: PUSH2 0x0274 00000641: PUSH2 0x064b 00000644: CALLDATASIZE 00000645: PUSH1 0x04 00000647: PUSH2 0x25ad 0000064a: JUMP 0000064b: JUMPDEST 0000064c: PUSH2 0x0ef7 0000064f: JUMP 00000650: JUMPDEST 00000651: CALLVALUE 00000652: DUP1 00000653: ISZERO 00000654: PUSH2 0x065c 00000657: JUMPI 00000658: PUSH1 0x00 0000065a: DUP1 0000065b: REVERT 0000065c: JUMPDEST 0000065d: POP 0000065e: PUSH1 0x0b 00000660: SLOAD 00000661: PUSH2 0x0396 00000664: JUMP 00000665: JUMPDEST 00000666: CALLVALUE 00000667: DUP1 00000668: ISZERO 00000669: PUSH2 0x0671 0000066c: JUMPI 0000066d: PUSH1 0x00 0000066f: DUP1 00000670: REVERT 00000671: JUMPDEST 00000672: POP 00000673: PUSH2 0x0396 00000676: PUSH2 0x0680 00000679: CALLDATASIZE 0000067a: PUSH1 0x04 0000067c: PUSH2 0x27ba 0000067f: JUMP 00000680: JUMPDEST 00000681: PUSH2 0xffff 00000684: AND 00000685: PUSH1 0x00 00000687: SWAP1 00000688: DUP2 00000689: MSTORE 0000068a: PUSH1 0x0d 0000068c: PUSH1 0x20 0000068e: MSTORE 0000068f: PUSH1 0x40 00000691: SWAP1 00000692: KECCAK256 00000693: SLOAD 00000694: SWAP1 00000695: JUMP 00000696: JUMPDEST 00000697: CALLVALUE 00000698: DUP1 00000699: ISZERO 0000069a: PUSH2 0x06a2 0000069d: JUMPI 0000069e: PUSH1 0x00 000006a0: DUP1 000006a1: REVERT 000006a2: JUMPDEST 000006a3: POP 000006a4: PUSH2 0x02ae 000006a7: PUSH2 0x06b1 000006aa: CALLDATASIZE 000006ab: PUSH1 0x04 000006ad: PUSH2 0x274c 000006b0: JUMP 000006b1: JUMPDEST 000006b2: PUSH2 0x0f79 000006b5: JUMP 000006b6: JUMPDEST 000006b7: CALLVALUE 000006b8: DUP1 000006b9: ISZERO 000006ba: PUSH2 0x06c2 000006bd: JUMPI 000006be: PUSH1 0x00 000006c0: DUP1 000006c1: REVERT 000006c2: JUMPDEST 000006c3: POP 000006c4: PUSH2 0x02ae 000006c7: PUSH2 0x1018 000006ca: JUMP 000006cb: JUMPDEST 000006cc: CALLVALUE 000006cd: DUP1 000006ce: ISZERO 000006cf: PUSH2 0x06d7 000006d2: JUMPI 000006d3: PUSH1 0x00 000006d5: DUP1 000006d6: REVERT 000006d7: JUMPDEST 000006d8: POP 000006d9: PUSH2 0x0396 000006dc: PUSH2 0x06e6 000006df: CALLDATASIZE 000006e0: PUSH1 0x04 000006e2: PUSH2 0x27ba 000006e5: JUMP 000006e6: JUMPDEST 000006e7: PUSH2 0xffff 000006ea: AND 000006eb: PUSH1 0x00 000006ed: SWAP1 000006ee: DUP2 000006ef: MSTORE 000006f0: PUSH1 0x0e 000006f2: PUSH1 0x20 000006f4: MSTORE 000006f5: PUSH1 0x40 000006f7: SWAP1 000006f8: KECCAK256 000006f9: SLOAD 000006fa: PUSH4 0xffffffff 000006ff: AND 00000700: SWAP1 00000701: JUMP 00000702: JUMPDEST 00000703: CALLVALUE 00000704: DUP1 00000705: ISZERO 00000706: PUSH2 0x070e 00000709: JUMPI 0000070a: PUSH1 0x00 0000070c: DUP1 0000070d: REVERT 0000070e: JUMPDEST 0000070f: POP 00000710: PUSH2 0x0396 00000713: PUSH2 0x071d 00000716: CALLDATASIZE 00000717: PUSH1 0x04 00000719: PUSH2 0x274c 0000071c: JUMP 0000071d: JUMPDEST 0000071e: PUSH2 0x1247 00000721: JUMP 00000722: JUMPDEST 00000723: CALLVALUE 00000724: DUP1 00000725: ISZERO 00000726: PUSH2 0x072e 00000729: JUMPI 0000072a: PUSH1 0x00 0000072c: DUP1 0000072d: REVERT 0000072e: JUMPDEST 0000072f: POP 00000730: PUSH1 0x02 00000732: SLOAD 00000733: PUSH1 0x01 00000735: PUSH1 0x01 00000737: PUSH1 0xa0 00000739: SHL 0000073a: SUB 0000073b: AND 0000073c: PUSH2 0x033b 0000073f: JUMP 00000740: JUMPDEST 00000741: CALLVALUE 00000742: DUP1 00000743: ISZERO 00000744: PUSH2 0x074c 00000747: JUMPI 00000748: PUSH1 0x00 0000074a: DUP1 0000074b: REVERT 0000074c: JUMPDEST 0000074d: POP 0000074e: PUSH2 0x02ae 00000751: PUSH2 0x075b 00000754: CALLDATASIZE 00000755: PUSH1 0x04 00000757: PUSH2 0x274c 0000075a: JUMP 0000075b: JUMPDEST 0000075c: PUSH2 0x12a7 0000075f: JUMP 00000760: JUMPDEST 00000761: CALLVALUE 00000762: DUP1 00000763: ISZERO 00000764: PUSH2 0x076c 00000767: JUMPI 00000768: PUSH1 0x00 0000076a: DUP1 0000076b: REVERT 0000076c: JUMPDEST 0000076d: POP 0000076e: PUSH2 0x0396 00000771: PUSH2 0x077b 00000774: CALLDATASIZE 00000775: PUSH1 0x04 00000777: PUSH2 0x274c 0000077a: JUMP 0000077b: JUMPDEST 0000077c: PUSH1 0x01 0000077e: PUSH1 0x01 00000780: PUSH1 0xa0 00000782: SHL 00000783: SUB 00000784: AND 00000785: PUSH1 0x00 00000787: SWAP1 00000788: DUP2 00000789: MSTORE 0000078a: PUSH1 0x15 0000078c: PUSH1 0x20 0000078e: MSTORE 0000078f: PUSH1 0x40 00000791: SWAP1 00000792: KECCAK256 00000793: SLOAD 00000794: SWAP1 00000795: JUMP 00000796: JUMPDEST 00000797: CALLVALUE 00000798: DUP1 00000799: ISZERO 0000079a: PUSH2 0x07a2 0000079d: JUMPI 0000079e: PUSH1 0x00 000007a0: DUP1 000007a1: REVERT 000007a2: JUMPDEST 000007a3: POP 000007a4: PUSH1 0x05 000007a6: SLOAD 000007a7: PUSH2 0x0396 000007aa: JUMP 000007ab: JUMPDEST 000007ac: PUSH2 0x07b3 000007af: PUSH2 0x1318 000007b2: JUMP 000007b3: JUMPDEST 000007b4: PUSH2 0x07bb 000007b7: PUSH2 0x143b 000007ba: JUMP 000007bb: JUMPDEST 000007bc: CALLER 000007bd: PUSH1 0x00 000007bf: SWAP1 000007c0: DUP2 000007c1: MSTORE 000007c2: PUSH1 0x12 000007c4: PUSH1 0x20 000007c6: MSTORE 000007c7: PUSH1 0x40 000007c9: DUP2 000007ca: KECCAK256 000007cb: DUP1 000007cc: SLOAD 000007cd: DUP3 000007ce: SWAP1 000007cf: PUSH2 0x07d7 000007d2: SWAP1 000007d3: PUSH2 0x27d5 000007d6: JUMP 000007d7: JUMPDEST 000007d8: SWAP2 000007d9: DUP3 000007da: SWAP1 000007db: SSTORE 000007dc: POP 000007dd: SWAP1 000007de: POP 000007df: PUSH1 0x58 000007e1: DUP3 000007e2: LT 000007e3: DUP1 000007e4: ISZERO 000007e5: SWAP1 000007e6: PUSH2 0x07f1 000007e9: JUMPI 000007ea: POP 000007eb: PUSH2 0x0b48 000007ee: DUP3 000007ef: GT 000007f0: ISZERO 000007f1: JUMPDEST 000007f2: PUSH2 0x0856 000007f5: JUMPI 000007f6: PUSH1 0x40 000007f8: MLOAD 000007f9: PUSH3 0x461bcd 000007fd: PUSH1 0xe5 000007ff: SHL 00000800: DUP2 00000801: MSTORE 00000802: PUSH1 0x20 00000804: PUSH1 0x04 00000806: DUP3 00000807: ADD 00000808: MSTORE 00000809: PUSH1 0x2b 0000080b: PUSH1 0x24 0000080d: DUP3 0000080e: ADD 0000080f: MSTORE 00000810: PUSH32 0x626c617a655374616b696e673a626c617a65207374616b65206475726174696f 00000831: PUSH1 0x44 00000833: DUP3 00000834: ADD 00000835: MSTORE 00000836: PUSH11 0x1b881b9bdd081d985b1a59 00000842: PUSH1 0xaa 00000844: SHL 00000845: PUSH1 0x64 00000847: DUP3 00000848: ADD 00000849: MSTORE 0000084a: PUSH1 0x84 0000084c: ADD 0000084d: JUMPDEST 0000084e: PUSH1 0x40 00000850: MLOAD 00000851: DUP1 00000852: SWAP2 00000853: SUB 00000854: SWAP1 00000855: REVERT 00000856: JUMPDEST 00000857: PUSH1 0x00 00000859: PUSH2 0x0862 0000085c: DUP5 0000085d: DUP5 0000085e: PUSH2 0x0ef7 00000861: JUMP 00000862: JUMPDEST 00000863: POP 00000864: SWAP1 00000865: POP 00000866: PUSH1 0x00 00000868: PUSH1 0x06 0000086a: PUSH1 0x00 0000086c: DUP2 0000086d: SLOAD 0000086e: PUSH2 0x0876 00000871: SWAP1 00000872: PUSH2 0x27d5 00000875: JUMP 00000876: JUMPDEST 00000877: SWAP2 00000878: DUP3 00000879: SWAP1 0000087a: SSTORE 0000087b: POP 0000087c: CALLER 0000087d: PUSH1 0x00 0000087f: SWAP1 00000880: DUP2 00000881: MSTORE 00000882: PUSH1 0x13 00000884: PUSH1 0x20 00000886: SWAP1 00000887: DUP2 00000888: MSTORE 00000889: PUSH1 0x40 0000088b: DUP1 0000088c: DUP4 0000088d: KECCAK256 0000088e: DUP8 0000088f: DUP5 00000890: MSTORE 00000891: SWAP1 00000892: SWAP2 00000893: MSTORE 00000894: DUP2 00000895: KECCAK256 00000896: DUP3 00000897: SWAP1 00000898: SSTORE 00000899: SWAP1 0000089a: SWAP2 0000089b: POP 0000089c: PUSH2 0x08a8 0000089f: PUSH3 0x015180 000008a3: DUP7 000008a4: PUSH2 0x27ee 000008a7: JUMP 000008a8: JUMPDEST 000008a9: PUSH2 0x08b2 000008ac: SWAP1 000008ad: TIMESTAMP 000008ae: PUSH2 0x2554 000008b1: JUMP 000008b2: JUMPDEST 000008b3: SWAP1 000008b4: POP 000008b5: PUSH1 0x00 000008b7: PUSH1 0x40 000008b9: MLOAD 000008ba: DUP1 000008bb: PUSH1 0xc0 000008bd: ADD 000008be: PUSH1 0x40 000008c0: MSTORE 000008c1: DUP1 000008c2: DUP9 000008c3: DUP2 000008c4: MSTORE 000008c5: PUSH1 0x20 000008c7: ADD 000008c8: DUP6 000008c9: DUP2 000008ca: MSTORE 000008cb: PUSH1 0x20 000008cd: ADD 000008ce: DUP8 000008cf: PUSH2 0xffff 000008d2: AND 000008d3: DUP2 000008d4: MSTORE 000008d5: PUSH1 0x20 000008d7: ADD 000008d8: TIMESTAMP 000008d9: PUSH4 0xffffffff 000008de: AND 000008df: DUP2 000008e0: MSTORE 000008e1: PUSH1 0x20 000008e3: ADD 000008e4: DUP4 000008e5: PUSH4 0xffffffff 000008ea: AND 000008eb: DUP2 000008ec: MSTORE 000008ed: PUSH1 0x20 000008ef: ADD 000008f0: PUSH1 0x00 000008f2: PUSH1 0x01 000008f4: DUP2 000008f5: GT 000008f6: ISZERO 000008f7: PUSH2 0x0902 000008fa: JUMPI 000008fb: PUSH2 0x0902 000008fe: PUSH2 0x25cf 00000901: JUMP 00000902: JUMPDEST 00000903: SWAP1 00000904: MSTORE 00000905: PUSH1 0x00 00000907: DUP5 00000908: DUP2 00000909: MSTORE 0000090a: PUSH1 0x14 0000090c: PUSH1 0x20 0000090e: SWAP1 0000090f: DUP2 00000910: MSTORE 00000911: PUSH1 0x40 00000913: SWAP2 00000914: DUP3 00000915: SWAP1 00000916: KECCAK256 00000917: DUP4 00000918: MLOAD 00000919: DUP2 0000091a: SSTORE 0000091b: SWAP1 0000091c: DUP4 0000091d: ADD 0000091e: MLOAD 0000091f: PUSH1 0x01 00000921: DUP1 00000922: DUP4 00000923: ADD 00000924: SWAP2 00000925: SWAP1 00000926: SWAP2 00000927: SSTORE 00000928: SWAP2 00000929: DUP4 0000092a: ADD 0000092b: MLOAD 0000092c: PUSH1 0x02 0000092e: DUP3 0000092f: ADD 00000930: DUP1 00000931: SLOAD 00000932: PUSH1 0x60 00000934: DUP7 00000935: ADD 00000936: MLOAD 00000937: PUSH1 0x80 00000939: DUP8 0000093a: ADD 0000093b: MLOAD 0000093c: PUSH4 0xffffffff 00000941: SWAP1 00000942: DUP2 00000943: AND 00000944: PUSH1 0x01 00000946: PUSH1 0x30 00000948: SHL 00000949: MUL 0000094a: PUSH10 0xffffffff000000000000 00000955: NOT 00000956: SWAP2 00000957: SWAP1 00000958: SWAP3 00000959: AND 0000095a: PUSH3 0x010000 0000095e: MUL 0000095f: PUSH6 0xffffffffffff 00000966: NOT 00000967: SWAP1 00000968: SWAP4 00000969: AND 0000096a: PUSH2 0xffff 0000096d: SWAP1 0000096e: SWAP6 0000096f: AND 00000970: SWAP5 00000971: SWAP1 00000972: SWAP5 00000973: OR 00000974: SWAP2 00000975: SWAP1 00000976: SWAP2 00000977: OR 00000978: SWAP3 00000979: DUP4 0000097a: AND 0000097b: DUP2 0000097c: OR 0000097d: DUP3 0000097e: SSTORE 0000097f: PUSH1 0xa0 00000981: DUP7 00000982: ADD 00000983: MLOAD 00000984: SWAP6 00000985: SWAP7 00000986: POP 00000987: DUP7 00000988: SWAP6 00000989: SWAP4 0000098a: SWAP5 0000098b: SWAP2 0000098c: SWAP3 0000098d: PUSH1 0xff 0000098f: PUSH1 0x50 00000991: SHL 00000992: NOT 00000993: SWAP1 00000994: SWAP2 00000995: AND 00000996: PUSH11 0xffffffffff000000000000 000009a2: NOT 000009a3: SWAP1 000009a4: SWAP2 000009a5: AND 000009a6: OR 000009a7: SWAP1 000009a8: PUSH1 0x01 000009aa: PUSH1 0x50 000009ac: SHL 000009ad: SWAP1 000009ae: DUP5 000009af: SWAP1 000009b0: DUP2 000009b1: GT 000009b2: ISZERO 000009b3: PUSH2 0x09be 000009b6: JUMPI 000009b7: PUSH2 0x09be 000009ba: PUSH2 0x25cf 000009bd: JUMP 000009be: JUMPDEST 000009bf: MUL 000009c0: OR 000009c1: SWAP1 000009c2: SSTORE 000009c3: POP 000009c4: SWAP1 000009c5: POP 000009c6: POP 000009c7: PUSH1 0x00 000009c9: PUSH2 0x09db 000009cc: PUSH2 0x09d2 000009cf: CALLER 000009d0: SWAP1 000009d1: JUMP 000009d2: JUMPDEST 000009d3: DUP7 000009d4: DUP11 000009d5: PUSH1 0x00 000009d7: PUSH2 0x1465 000009da: JUMP 000009db: JUMPDEST 000009dc: SWAP1 000009dd: POP 000009de: DUP1 000009df: PUSH1 0xff 000009e1: AND 000009e2: PUSH1 0x01 000009e4: SUB 000009e5: PUSH2 0x09f1 000009e8: JUMPI 000009e9: PUSH2 0x09f1 000009ec: CALLER 000009ed: PUSH2 0x1649 000009f0: JUMP 000009f1: JUMPDEST 000009f2: PUSH2 0x0b47 000009f5: NOT 000009f6: DUP8 000009f7: ADD 000009f8: PUSH2 0x0a05 000009fb: JUMPI 000009fc: PUSH2 0x0a05 000009ff: CALLER 00000a00: DUP10 00000a01: PUSH2 0x17db 00000a04: JUMP 00000a05: JUMPDEST 00000a06: PUSH2 0x0a1d 00000a09: CALLER 00000a0a: PUSH1 0x03 00000a0c: SLOAD 00000a0d: PUSH1 0x01 00000a0f: PUSH1 0x01 00000a11: PUSH1 0xa0 00000a13: SHL 00000a14: SUB 00000a15: AND 00000a16: SWAP1 00000a17: ADDRESS 00000a18: DUP12 00000a19: PUSH2 0x18c5 00000a1c: JUMP 00000a1d: JUMPDEST 00000a1e: PUSH1 0x40 00000a20: DUP1 00000a21: MLOAD 00000a22: DUP9 00000a23: DUP2 00000a24: MSTORE 00000a25: PUSH1 0x20 00000a27: DUP2 00000a28: ADD 00000a29: DUP11 00000a2a: SWAP1 00000a2b: MSTORE 00000a2c: DUP6 00000a2d: SWAP2 00000a2e: CALLER 00000a2f: SWAP2 00000a30: PUSH32 0x91e6a00503577c865efb830697017859d45cac59ab84291faa9141b55bc5f23c 00000a51: SWAP2 00000a52: ADD 00000a53: PUSH1 0x40 00000a55: MLOAD 00000a56: DUP1 00000a57: SWAP2 00000a58: SUB 00000a59: SWAP1 00000a5a: LOG3 00000a5b: POP 00000a5c: POP 00000a5d: POP 00000a5e: POP 00000a5f: POP 00000a60: POP 00000a61: PUSH2 0x0a6a 00000a64: PUSH1 0x01 00000a66: PUSH1 0x00 00000a68: SSTORE 00000a69: JUMP 00000a6a: JUMPDEST 00000a6b: POP 00000a6c: POP 00000a6d: JUMP 00000a6e: JUMPDEST 00000a6f: PUSH2 0x0a76 00000a72: PUSH2 0x24e7 00000a75: JUMP 00000a76: JUMPDEST 00000a77: PUSH1 0x01 00000a79: PUSH1 0x01 00000a7b: PUSH1 0xa0 00000a7d: SHL 00000a7e: SUB 00000a7f: DUP4 00000a80: AND 00000a81: PUSH1 0x00 00000a83: SWAP1 00000a84: DUP2 00000a85: MSTORE 00000a86: PUSH1 0x13 00000a88: PUSH1 0x20 00000a8a: SWAP1 00000a8b: DUP2 00000a8c: MSTORE 00000a8d: PUSH1 0x40 00000a8f: DUP1 00000a90: DUP4 00000a91: KECCAK256 00000a92: DUP6 00000a93: DUP5 00000a94: MSTORE 00000a95: DUP3 00000a96: MSTORE 00000a97: DUP1 00000a98: DUP4 00000a99: KECCAK256 00000a9a: SLOAD 00000a9b: DUP4 00000a9c: MSTORE 00000a9d: PUSH1 0x14 00000a9f: DUP3 00000aa0: MSTORE 00000aa1: SWAP2 00000aa2: DUP3 00000aa3: SWAP1 00000aa4: KECCAK256 00000aa5: DUP3 00000aa6: MLOAD 00000aa7: PUSH1 0xc0 00000aa9: DUP2 00000aaa: ADD 00000aab: DUP5 00000aac: MSTORE 00000aad: DUP2 00000aae: SLOAD 00000aaf: DUP2 00000ab0: MSTORE 00000ab1: PUSH1 0x01 00000ab3: DUP1 00000ab4: DUP4 00000ab5: ADD 00000ab6: SLOAD 00000ab7: SWAP4 00000ab8: DUP3 00000ab9: ADD 00000aba: SWAP4 00000abb: SWAP1 00000abc: SWAP4 00000abd: MSTORE 00000abe: PUSH1 0x02 00000ac0: DUP3 00000ac1: ADD 00000ac2: SLOAD 00000ac3: PUSH2 0xffff 00000ac6: DUP2 00000ac7: AND 00000ac8: SWAP5 00000ac9: DUP3 00000aca: ADD 00000acb: SWAP5 00000acc: SWAP1 00000acd: SWAP5 00000ace: MSTORE 00000acf: PUSH4 0xffffffff 00000ad4: PUSH3 0x010000 00000ad8: DUP6 00000ad9: DIV 00000ada: DUP2 00000adb: AND 00000adc: PUSH1 0x60 00000ade: DUP4 00000adf: ADD 00000ae0: MSTORE 00000ae1: PUSH1 0x01 00000ae3: PUSH1 0x30 00000ae5: SHL 00000ae6: DUP6 00000ae7: DIV 00000ae8: AND 00000ae9: PUSH1 0x80 00000aeb: DUP3 00000aec: ADD 00000aed: MSTORE 00000aee: SWAP3 00000aef: SWAP1 00000af0: SWAP2 00000af1: PUSH1 0xa0 00000af3: DUP5 00000af4: ADD 00000af5: SWAP2 00000af6: PUSH1 0xff 00000af8: PUSH1 0x01 00000afa: PUSH1 0x50 00000afc: SHL 00000afd: SWAP1 00000afe: SWAP2 00000aff: DIV 00000b00: AND 00000b01: SWAP1 00000b02: DUP2 00000b03: GT 00000b04: ISZERO 00000b05: PUSH2 0x0b10 00000b08: JUMPI 00000b09: PUSH2 0x0b10 00000b0c: PUSH2 0x25cf 00000b0f: JUMP 00000b10: JUMPDEST 00000b11: PUSH1 0x01 00000b13: DUP2 00000b14: GT 00000b15: ISZERO 00000b16: PUSH2 0x0b21 00000b19: JUMPI 00000b1a: PUSH2 0x0b21 00000b1d: PUSH2 0x25cf 00000b20: JUMP 00000b21: JUMPDEST 00000b22: SWAP1 00000b23: MSTORE 00000b24: POP 00000b25: SWAP1 00000b26: POP 00000b27: JUMPDEST 00000b28: SWAP3 00000b29: SWAP2 00000b2a: POP 00000b2b: POP 00000b2c: JUMP 00000b2d: JUMPDEST 00000b2e: PUSH1 0x01 00000b30: PUSH1 0x01 00000b32: PUSH1 0xa0 00000b34: SHL 00000b35: SUB 00000b36: SWAP2 00000b37: SWAP1 00000b38: SWAP2 00000b39: AND 00000b3a: PUSH1 0x00 00000b3c: SWAP1 00000b3d: DUP2 00000b3e: MSTORE 00000b3f: PUSH1 0x11 00000b41: PUSH1 0x20 00000b43: SWAP1 00000b44: DUP2 00000b45: MSTORE 00000b46: PUSH1 0x40 00000b48: DUP1 00000b49: DUP4 00000b4a: KECCAK256 00000b4b: PUSH2 0xffff 00000b4e: SWAP5 00000b4f: SWAP1 00000b50: SWAP5 00000b51: AND 00000b52: DUP4 00000b53: MSTORE 00000b54: SWAP3 00000b55: SWAP1 00000b56: MSTORE 00000b57: KECCAK256 00000b58: SLOAD 00000b59: PUSH4 0xffffffff 00000b5e: DUP2 00000b5f: AND 00000b60: SWAP2 00000b61: PUSH5 0x0100000000 00000b67: SWAP1 00000b68: SWAP2 00000b69: DIV 00000b6a: PUSH1 0x01 00000b6c: PUSH1 0x01 00000b6e: PUSH1 0x60 00000b70: SHL 00000b71: SUB 00000b72: AND 00000b73: SWAP1 00000b74: JUMP 00000b75: JUMPDEST 00000b76: PUSH2 0x0b7d 00000b79: PUSH2 0x1318 00000b7c: JUMP 00000b7d: JUMPDEST 00000b7e: PUSH2 0x0b85 00000b81: PUSH2 0x143b 00000b84: JUMP 00000b85: JUMPDEST 00000b86: PUSH1 0x00 00000b88: PUSH2 0x0b91 00000b8b: DUP4 00000b8c: DUP4 00000b8d: PUSH2 0x1932 00000b90: JUMP 00000b91: JUMPDEST 00000b92: PUSH1 0x03 00000b94: SLOAD 00000b95: SWAP1 00000b96: SWAP2 00000b97: POP 00000b98: PUSH2 0x0bab 00000b9b: SWAP1 00000b9c: PUSH1 0x01 00000b9e: PUSH1 0x01 00000ba0: PUSH1 0xa0 00000ba2: SHL 00000ba3: SUB 00000ba4: AND 00000ba5: DUP5 00000ba6: DUP4 00000ba7: PUSH2 0x1bbc 00000baa: JUMP 00000bab: JUMPDEST 00000bac: POP 00000bad: PUSH2 0x0a6a 00000bb0: PUSH1 0x01 00000bb2: PUSH1 0x00 00000bb4: SSTORE 00000bb5: JUMP 00000bb6: JUMPDEST 00000bb7: PUSH1 0x00 00000bb9: DUP1 00000bba: PUSH1 0x00 00000bbc: PUSH1 0x06 00000bbe: SLOAD 00000bbf: PUSH1 0x0a 00000bc1: SLOAD 00000bc2: PUSH1 0x0a 00000bc4: SLOAD 00000bc5: PUSH1 0x06 00000bc7: SLOAD 00000bc8: PUSH2 0x0bd1 00000bcb: SWAP2 00000bcc: SWAP1 00000bcd: PUSH2 0x2805 00000bd0: JUMP 00000bd1: JUMPDEST 00000bd2: SWAP3 00000bd3: POP 00000bd4: SWAP3 00000bd5: POP 00000bd6: SWAP3 00000bd7: POP 00000bd8: SWAP1 00000bd9: SWAP2 00000bda: SWAP3 00000bdb: JUMP 00000bdc: JUMPDEST 00000bdd: PUSH1 0x00 00000bdf: DUP1 00000be0: PUSH1 0x00 00000be2: PUSH1 0x07 00000be4: SLOAD 00000be5: PUSH1 0x08 00000be7: SLOAD 00000be8: PUSH1 0x08 00000bea: SLOAD 00000beb: PUSH1 0x07 00000bed: SLOAD 00000bee: PUSH2 0x0bd1 00000bf1: SWAP2 00000bf2: SWAP1 00000bf3: PUSH2 0x2805 00000bf6: JUMP 00000bf7: JUMPDEST 00000bf8: PUSH1 0x01 00000bfa: PUSH1 0x01 00000bfc: PUSH1 0xa0 00000bfe: SHL 00000bff: SUB 00000c00: DUP4 00000c01: AND 00000c02: PUSH1 0x00 00000c04: SWAP1 00000c05: DUP2 00000c06: MSTORE 00000c07: PUSH1 0x12 00000c09: PUSH1 0x20 00000c0b: MSTORE 00000c0c: PUSH1 0x40 00000c0e: DUP2 00000c0f: KECCAK256 00000c10: SLOAD 00000c11: PUSH1 0x60 00000c13: SWAP2 00000c14: SWAP1 00000c15: DUP1 00000c16: DUP1 00000c17: DUP7 00000c18: LT 00000c19: PUSH2 0x0c5b 00000c1c: JUMPI 00000c1d: PUSH1 0x40 00000c1f: DUP1 00000c20: MLOAD 00000c21: PUSH1 0x00 00000c23: DUP1 00000c24: DUP3 00000c25: MSTORE 00000c26: PUSH1 0x20 00000c28: DUP3 00000c29: ADD 00000c2a: SWAP1 00000c2b: SWAP3 00000c2c: MSTORE 00000c2d: SWAP1 00000c2e: PUSH2 0x0c4d 00000c31: JUMP 00000c32: JUMPDEST 00000c33: PUSH2 0x0c3a 00000c36: PUSH2 0x251d 00000c39: JUMP 00000c3a: JUMPDEST 00000c3b: DUP2 00000c3c: MSTORE 00000c3d: PUSH1 0x20 00000c3f: ADD 00000c40: SWAP1 00000c41: PUSH1 0x01 00000c43: SWAP1 00000c44: SUB 00000c45: SWAP1 00000c46: DUP2 00000c47: PUSH2 0x0c32 00000c4a: JUMPI 00000c4b: SWAP1 00000c4c: POP 00000c4d: JUMPDEST 00000c4e: POP 00000c4f: PUSH1 0x00 00000c51: SWAP4 00000c52: POP 00000c53: SWAP4 00000c54: POP 00000c55: POP 00000c56: POP 00000c57: PUSH2 0x0d82 00000c5a: JUMP 00000c5b: JUMPDEST 00000c5c: PUSH1 0x00 00000c5e: PUSH2 0x0c67 00000c61: DUP7 00000c62: DUP9 00000c63: PUSH2 0x2554 00000c66: JUMP 00000c67: JUMPDEST 00000c68: SWAP1 00000c69: POP 00000c6a: DUP2 00000c6b: DUP2 00000c6c: GT 00000c6d: ISZERO 00000c6e: PUSH2 0x0c74 00000c71: JUMPI 00000c72: POP 00000c73: DUP1 00000c74: JUMPDEST 00000c75: PUSH2 0x0c7e 00000c78: DUP8 00000c79: DUP3 00000c7a: PUSH2 0x2805 00000c7d: JUMP 00000c7e: JUMPDEST 00000c7f: PUSH8 0xffffffffffffffff 00000c88: DUP2 00000c89: GT 00000c8a: ISZERO 00000c8b: PUSH2 0x0c96 00000c8e: JUMPI 00000c8f: PUSH2 0x0c96 00000c92: PUSH2 0x2818 00000c95: JUMP 00000c96: JUMPDEST 00000c97: PUSH1 0x40 00000c99: MLOAD 00000c9a: SWAP1 00000c9b: DUP1 00000c9c: DUP3 00000c9d: MSTORE 00000c9e: DUP1 00000c9f: PUSH1 0x20 00000ca1: MUL 00000ca2: PUSH1 0x20 00000ca4: ADD 00000ca5: DUP3 00000ca6: ADD 00000ca7: PUSH1 0x40 00000ca9: MSTORE 00000caa: DUP1 00000cab: ISZERO 00000cac: PUSH2 0x0ccf 00000caf: JUMPI 00000cb0: DUP2 00000cb1: PUSH1 0x20 00000cb3: ADD 00000cb4: JUMPDEST 00000cb5: PUSH2 0x0cbc 00000cb8: PUSH2 0x251d 00000cbb: JUMP 00000cbc: JUMPDEST 00000cbd: DUP2 00000cbe: MSTORE 00000cbf: PUSH1 0x20 00000cc1: ADD 00000cc2: SWAP1 00000cc3: PUSH1 0x01 00000cc5: SWAP1 00000cc6: SUB 00000cc7: SWAP1 00000cc8: DUP2 00000cc9: PUSH2 0x0cb4 00000ccc: JUMPI 00000ccd: SWAP1 00000cce: POP 00000ccf: JUMPDEST 00000cd0: POP 00000cd1: SWAP5 00000cd2: POP 00000cd3: PUSH1 0x00 00000cd5: JUMPDEST 00000cd6: DUP2 00000cd7: DUP9 00000cd8: LT 00000cd9: ISZERO 00000cda: PUSH2 0x0d7c 00000cdd: JUMPI 00000cde: PUSH1 0x40 00000ce0: MLOAD 00000ce1: DUP1 00000ce2: PUSH1 0x60 00000ce4: ADD 00000ce5: PUSH1 0x40 00000ce7: MSTORE 00000ce8: DUP1 00000ce9: DUP10 00000cea: PUSH1 0x01 00000cec: PUSH2 0x0cf5 00000cef: SWAP2 00000cf0: SWAP1 00000cf1: PUSH2 0x2554 00000cf4: JUMP 00000cf5: JUMPDEST 00000cf6: DUP2 00000cf7: MSTORE 00000cf8: PUSH1 0x01 00000cfa: PUSH1 0x01 00000cfc: PUSH1 0xa0 00000cfe: SHL 00000cff: SUB 00000d00: DUP12 00000d01: AND 00000d02: PUSH1 0x00 00000d04: SWAP1 00000d05: DUP2 00000d06: MSTORE 00000d07: PUSH1 0x13 00000d09: PUSH1 0x20 00000d0b: SWAP1 00000d0c: DUP2 00000d0d: MSTORE 00000d0e: PUSH1 0x40 00000d10: DUP3 00000d11: KECCAK256 00000d12: SWAP3 00000d13: ADD 00000d14: SWAP2 00000d15: SWAP1 00000d16: PUSH2 0x0d20 00000d19: DUP13 00000d1a: PUSH1 0x01 00000d1c: PUSH2 0x2554 00000d1f: JUMP 00000d20: JUMPDEST 00000d21: DUP2 00000d22: MSTORE 00000d23: PUSH1 0x20 00000d25: ADD 00000d26: SWAP1 00000d27: DUP2 00000d28: MSTORE 00000d29: PUSH1 0x20 00000d2b: ADD 00000d2c: PUSH1 0x00 00000d2e: KECCAK256 00000d2f: SLOAD 00000d30: DUP2 00000d31: MSTORE 00000d32: PUSH1 0x20 00000d34: ADD 00000d35: PUSH2 0x0d45 00000d38: DUP12 00000d39: DUP12 00000d3a: PUSH1 0x01 00000d3c: PUSH2 0x02cb 00000d3f: SWAP2 00000d40: SWAP1 00000d41: PUSH2 0x2554 00000d44: JUMP 00000d45: JUMPDEST 00000d46: DUP2 00000d47: MSTORE 00000d48: POP 00000d49: DUP7 00000d4a: DUP3 00000d4b: DUP2 00000d4c: MLOAD 00000d4d: DUP2 00000d4e: LT 00000d4f: PUSH2 0x0d5a 00000d52: JUMPI 00000d53: PUSH2 0x0d5a 00000d56: PUSH2 0x282e 00000d59: JUMP 00000d5a: JUMPDEST 00000d5b: PUSH1 0x20 00000d5d: MUL 00000d5e: PUSH1 0x20 00000d60: ADD 00000d61: ADD 00000d62: DUP2 00000d63: SWAP1 00000d64: MSTORE 00000d65: POP 00000d66: DUP1 00000d67: PUSH2 0x0d6f 00000d6a: SWAP1 00000d6b: PUSH2 0x27d5 00000d6e: JUMP 00000d6f: JUMPDEST 00000d70: SWAP1 00000d71: POP 00000d72: DUP8 00000d73: PUSH1 0x01 00000d75: ADD 00000d76: SWAP8 00000d77: POP 00000d78: PUSH2 0x0cd5 00000d7b: JUMP 00000d7c: JUMPDEST 00000d7d: POP 00000d7e: SWAP3 00000d7f: POP 00000d80: POP 00000d81: POP 00000d82: JUMPDEST 00000d83: SWAP4 00000d84: POP 00000d85: SWAP4 00000d86: SWAP2 00000d87: POP 00000d88: POP 00000d89: JUMP 00000d8a: JUMPDEST 00000d8b: PUSH2 0x0d92 00000d8e: PUSH2 0x1318 00000d91: JUMP 00000d92: JUMPDEST 00000d93: PUSH2 0x0d9a 00000d96: PUSH2 0x143b 00000d99: JUMP 00000d9a: JUMPDEST 00000d9b: PUSH1 0x00 00000d9d: PUSH2 0x0da6 00000da0: PUSH1 0x08 00000da2: PUSH2 0x1bf2 00000da5: JUMP 00000da6: JUMPDEST 00000da7: SWAP1 00000da8: POP 00000da9: PUSH2 0x0db2 00000dac: PUSH1 0x58 00000dae: PUSH2 0x1bf2 00000db1: JUMP 00000db2: JUMPDEST 00000db3: PUSH2 0x0dbc 00000db6: SWAP1 00000db7: DUP3 00000db8: PUSH2 0x2554 00000dbb: JUMP 00000dbc: JUMPDEST 00000dbd: SWAP1 00000dbe: POP 00000dbf: PUSH2 0x0dc9 00000dc2: PUSH2 0x0120 00000dc5: PUSH2 0x1bf2 00000dc8: JUMP 00000dc9: JUMPDEST 00000dca: PUSH2 0x0dd3 00000dcd: SWAP1 00000dce: DUP3 00000dcf: PUSH2 0x2554 00000dd2: JUMP 00000dd3: JUMPDEST 00000dd4: SWAP1 00000dd5: POP 00000dd6: DUP1 00000dd7: ISZERO 00000dd8: PUSH2 0x0de6 00000ddb: JUMPI 00000ddc: PUSH2 0x0de6 00000ddf: CALLER 00000de0: JUMPDEST 00000de1: DUP3 00000de2: PUSH2 0x1c22 00000de5: JUMP 00000de6: JUMPDEST 00000de7: PUSH1 0x40 00000de9: MLOAD 00000dea: DUP2 00000deb: SWAP1 00000dec: CALLER 00000ded: SWAP1 00000dee: PUSH32 0x2871b64e3818cfce24806c82238518bcaa75f39220abe2118583210f29c7af60 00000e0f: SWAP1 00000e10: PUSH1 0x00 00000e12: SWAP1 00000e13: LOG3 00000e14: POP 00000e15: PUSH2 0x0e1e 00000e18: PUSH1 0x01 00000e1a: PUSH1 0x00 00000e1c: SSTORE 00000e1d: JUMP 00000e1e: JUMPDEST 00000e1f: JUMP 00000e20: JUMPDEST 00000e21: PUSH2 0x0e28 00000e24: PUSH2 0x1cc5 00000e27: JUMP 00000e28: JUMPDEST 00000e29: PUSH2 0x0e1e 00000e2c: PUSH1 0x00 00000e2e: PUSH2 0x1cf2 00000e31: JUMP 00000e32: JUMPDEST 00000e33: PUSH1 0x02 00000e35: SLOAD 00000e36: CALLER 00000e37: SWAP1 00000e38: PUSH1 0x01 00000e3a: PUSH1 0x01 00000e3c: PUSH1 0xa0 00000e3e: SHL 00000e3f: SUB 00000e40: AND 00000e41: DUP2 00000e42: EQ 00000e43: PUSH2 0x0e6a 00000e46: JUMPI 00000e47: PUSH1 0x40 00000e49: MLOAD 00000e4a: PUSH4 0x118cdaa7 00000e4f: PUSH1 0xe0 00000e51: SHL 00000e52: DUP2 00000e53: MSTORE 00000e54: PUSH1 0x01 00000e56: PUSH1 0x01 00000e58: PUSH1 0xa0 00000e5a: SHL 00000e5b: SUB 00000e5c: DUP3 00000e5d: AND 00000e5e: PUSH1 0x04 00000e60: DUP3 00000e61: ADD 00000e62: MSTORE 00000e63: PUSH1 0x24 00000e65: ADD 00000e66: PUSH2 0x084d 00000e69: JUMP 00000e6a: JUMPDEST 00000e6b: PUSH2 0x0e73 00000e6e: DUP2 00000e6f: PUSH2 0x1cf2 00000e72: JUMP 00000e73: JUMPDEST 00000e74: POP 00000e75: JUMP 00000e76: JUMPDEST 00000e77: PUSH2 0x0e7e 00000e7a: PUSH2 0x1318 00000e7d: JUMP 00000e7e: JUMPDEST 00000e7f: PUSH2 0x0e86 00000e82: PUSH2 0x143b 00000e85: JUMP 00000e86: JUMPDEST 00000e87: PUSH1 0x00 00000e89: DUP1 00000e8a: PUSH2 0x0e91 00000e8d: PUSH2 0x1d0b 00000e90: JUMP 00000e91: JUMPDEST 00000e92: PUSH1 0x04 00000e94: SLOAD 00000e95: SWAP2 00000e96: SWAP4 00000e97: POP 00000e98: SWAP2 00000e99: POP 00000e9a: PUSH1 0x01 00000e9c: PUSH1 0x01 00000e9e: PUSH1 0xa0 00000ea0: SHL 00000ea1: SUB 00000ea2: AND 00000ea3: PUSH2 0x0ebe 00000ea6: JUMPI 00000ea7: PUSH1 0x40 00000ea9: MLOAD 00000eaa: PUSH3 0x461bcd 00000eae: PUSH1 0xe5 00000eb0: SHL 00000eb1: DUP2 00000eb2: MSTORE 00000eb3: PUSH1 0x04 00000eb5: ADD 00000eb6: PUSH2 0x084d 00000eb9: SWAP1 00000eba: PUSH2 0x2844 00000ebd: JUMP 00000ebe: JUMPDEST 00000ebf: PUSH1 0x04 00000ec1: SLOAD 00000ec2: PUSH2 0x0ed4 00000ec5: SWAP1 00000ec6: PUSH1 0x01 00000ec8: PUSH1 0x01 00000eca: PUSH1 0xa0 00000ecc: SHL 00000ecd: SUB 00000ece: AND 00000ecf: DUP4 00000ed0: PUSH2 0x1c22 00000ed3: JUMP 00000ed4: JUMPDEST 00000ed5: DUP1 00000ed6: ISZERO 00000ed7: PUSH2 0x0ee3 00000eda: JUMPI 00000edb: PUSH2 0x0ee3 00000ede: CALLER 00000edf: PUSH2 0x0de0 00000ee2: JUMP 00000ee3: JUMPDEST 00000ee4: POP 00000ee5: POP 00000ee6: PUSH2 0x0e1e 00000ee9: PUSH1 0x01 00000eeb: PUSH1 0x00 00000eed: SSTORE 00000eee: JUMP 00000eef: JUMPDEST 00000ef0: PUSH2 0x0e1e 00000ef3: PUSH2 0x1318 00000ef6: JUMP 00000ef7: JUMPDEST 00000ef8: DUP2 00000ef9: PUSH1 0x00 00000efb: PUSH2 0x03cc 00000efe: PUSH8 0x0de0b6b3a7640000 00000f07: PUSH2 0x0f11 00000f0a: PUSH1 0x58 00000f0c: DUP7 00000f0d: PUSH2 0x2805 00000f10: JUMP 00000f11: JUMPDEST 00000f12: PUSH2 0x0f1b 00000f15: SWAP2 00000f16: SWAP1 00000f17: PUSH2 0x27ee 00000f1a: JUMP 00000f1b: JUMPDEST 00000f1c: PUSH2 0x0f25 00000f1f: SWAP2 00000f20: SWAP1 00000f21: PUSH2 0x28ae 00000f24: JUMP 00000f25: JUMPDEST 00000f26: SWAP1 00000f27: POP 00000f28: PUSH8 0x0de0b6b3a7640000 00000f31: PUSH2 0x0f3a 00000f34: DUP3 00000f35: DUP5 00000f36: PUSH2 0x27ee 00000f39: JUMP 00000f3a: JUMPDEST 00000f3b: PUSH2 0x0f44 00000f3e: SWAP2 00000f3f: SWAP1 00000f40: PUSH2 0x28ae 00000f43: JUMP 00000f44: JUMPDEST 00000f45: PUSH2 0x0f4e 00000f48: SWAP1 00000f49: DUP4 00000f4a: PUSH2 0x2554 00000f4d: JUMP 00000f4e: JUMPDEST 00000f4f: PUSH1 0x05 00000f51: SLOAD 00000f52: SWAP1 00000f53: SWAP3 00000f54: POP 00000f55: PUSH2 0x0f66 00000f58: PUSH8 0x0de0b6b3a7640000 00000f61: DUP5 00000f62: PUSH2 0x27ee 00000f65: JUMP 00000f66: JUMPDEST 00000f67: PUSH2 0x0f70 00000f6a: SWAP2 00000f6b: SWAP1 00000f6c: PUSH2 0x28ae 00000f6f: JUMP 00000f70: JUMPDEST 00000f71: SWAP2 00000f72: POP 00000f73: SWAP3 00000f74: POP 00000f75: SWAP3 00000f76: SWAP1 00000f77: POP 00000f78: JUMP 00000f79: JUMPDEST 00000f7a: PUSH2 0x0f81 00000f7d: PUSH2 0x1cc5 00000f80: JUMP 00000f81: JUMPDEST 00000f82: PUSH1 0x01 00000f84: PUSH1 0x01 00000f86: PUSH1 0xa0 00000f88: SHL 00000f89: SUB 00000f8a: DUP2 00000f8b: AND 00000f8c: PUSH2 0x0ff6 00000f8f: JUMPI 00000f90: PUSH1 0x40 00000f92: MLOAD 00000f93: PUSH3 0x461bcd 00000f97: PUSH1 0xe5 00000f99: SHL 00000f9a: DUP2 00000f9b: MSTORE 00000f9c: PUSH1 0x20 00000f9e: PUSH1 0x04 00000fa0: DUP3 00000fa1: ADD 00000fa2: MSTORE 00000fa3: PUSH1 0x36 00000fa5: PUSH1 0x24 00000fa7: DUP3 00000fa8: ADD 00000fa9: MSTORE 00000faa: PUSH32 0x626c617a655374616b696e673a6c61737420646973747269627574696f6e2061 00000fcb: PUSH1 0x44 00000fcd: DUP3 00000fce: ADD 00000fcf: MSTORE 00000fd0: PUSH22 0x6464726573732063616e206e6f74206265207a65726f 00000fe7: PUSH1 0x50 00000fe9: SHL 00000fea: PUSH1 0x64 00000fec: DUP3 00000fed: ADD 00000fee: MSTORE 00000fef: PUSH1 0x84 00000ff1: ADD 00000ff2: PUSH2 0x084d 00000ff5: JUMP 00000ff6: JUMPDEST 00000ff7: PUSH1 0x04 00000ff9: DUP1 00000ffa: SLOAD 00000ffb: PUSH1 0x01 00000ffd: PUSH1 0x01 00000fff: PUSH1 0xa0 00001001: SHL 00001002: SUB 00001003: NOT 00001004: AND 00001005: PUSH1 0x01 00001007: PUSH1 0x01 00001009: PUSH1 0xa0 0000100b: SHL 0000100c: SUB 0000100d: SWAP3 0000100e: SWAP1 0000100f: SWAP3 00001010: AND 00001011: SWAP2 00001012: SWAP1 00001013: SWAP2 00001014: OR 00001015: SWAP1 00001016: SSTORE 00001017: JUMP 00001018: JUMPDEST 00001019: PUSH2 0x1020 0000101c: PUSH2 0x1318 0000101f: JUMP 00001020: JUMPDEST 00001021: PUSH2 0x1028 00001024: PUSH2 0x143b 00001027: JUMP 00001028: JUMPDEST 00001029: PUSH1 0x00 0000102b: DUP1 0000102c: PUSH1 0x0b 0000102e: SLOAD 0000102f: PUSH1 0x00 00001031: EQ 00001032: PUSH2 0x1043 00001035: JUMPI 00001036: PUSH2 0x103d 00001039: PUSH2 0x1d0b 0000103c: JUMP 0000103d: JUMPDEST 0000103e: SWAP1 0000103f: SWAP3 00001040: POP 00001041: SWAP1 00001042: POP 00001043: JUMPDEST 00001044: PUSH1 0x00 00001046: PUSH1 0x08 00001048: SLOAD 00001049: PUSH1 0x07 0000104b: SLOAD 0000104c: PUSH2 0x1055 0000104f: SWAP2 00001050: SWAP1 00001051: PUSH2 0x2805 00001054: JUMP 00001055: JUMPDEST 00001056: SWAP1 00001057: POP 00001058: PUSH1 0x01 0000105a: DUP2 0000105b: GT 0000105c: PUSH2 0x10a7 0000105f: JUMPI 00001060: PUSH1 0x40 00001062: MLOAD 00001063: PUSH3 0x461bcd 00001067: PUSH1 0xe5 00001069: SHL 0000106a: DUP2 0000106b: MSTORE 0000106c: PUSH1 0x20 0000106e: PUSH1 0x04 00001070: DUP3 00001071: ADD 00001072: MSTORE 00001073: PUSH1 0x1d 00001075: PUSH1 0x24 00001077: DUP3 00001078: ADD 00001079: MSTORE 0000107a: PUSH32 0x626c617a655374616b696e673a6e6f2061637469766520736861726573000000 0000109b: PUSH1 0x44 0000109d: DUP3 0000109e: ADD 0000109f: MSTORE 000010a0: PUSH1 0x64 000010a2: ADD 000010a3: PUSH2 0x084d 000010a6: JUMP 000010a7: JUMPDEST 000010a8: PUSH1 0x04 000010aa: SLOAD 000010ab: PUSH1 0x01 000010ad: PUSH1 0xa0 000010af: SHL 000010b0: SWAP1 000010b1: DIV 000010b2: PUSH4 0xffffffff 000010b7: AND 000010b8: PUSH1 0x00 000010ba: DUP1 000010bb: PUSH2 0x10c6 000010be: PUSH1 0x08 000010c0: DUP5 000010c1: DUP7 000010c2: PUSH2 0x1e67 000010c5: JUMP 000010c6: JUMPDEST 000010c7: SWAP1 000010c8: POP 000010c9: PUSH1 0x01 000010cb: DUP2 000010cc: PUSH1 0x01 000010ce: DUP2 000010cf: GT 000010d0: ISZERO 000010d1: PUSH2 0x10dc 000010d4: JUMPI 000010d5: PUSH2 0x10dc 000010d8: PUSH2 0x25cf 000010db: JUMP 000010dc: JUMPDEST 000010dd: EQ 000010de: DUP1 000010df: ISZERO 000010e0: PUSH2 0x10fa 000010e3: JUMPI 000010e4: POP 000010e5: PUSH1 0x00 000010e7: DUP3 000010e8: PUSH1 0x01 000010ea: DUP2 000010eb: GT 000010ec: ISZERO 000010ed: PUSH2 0x10f8 000010f0: JUMPI 000010f1: PUSH2 0x10f8 000010f4: PUSH2 0x25cf 000010f7: JUMP 000010f8: JUMPDEST 000010f9: EQ 000010fa: JUMPDEST 000010fb: ISZERO 000010fc: PUSH2 0x1104 000010ff: JUMPI 00001100: PUSH1 0x01 00001102: SWAP2 00001103: POP 00001104: JUMPDEST 00001105: PUSH2 0x1110 00001108: PUSH1 0x58 0000110a: DUP5 0000110b: DUP7 0000110c: PUSH2 0x1e67 0000110f: JUMP 00001110: JUMPDEST 00001111: SWAP1 00001112: POP 00001113: PUSH1 0x01 00001115: DUP2 00001116: PUSH1 0x01 00001118: DUP2 00001119: GT 0000111a: ISZERO 0000111b: PUSH2 0x1126 0000111e: JUMPI 0000111f: PUSH2 0x1126 00001122: PUSH2 0x25cf 00001125: JUMP 00001126: JUMPDEST 00001127: EQ 00001128: DUP1 00001129: ISZERO 0000112a: PUSH2 0x1144 0000112d: JUMPI 0000112e: POP 0000112f: PUSH1 0x00 00001131: DUP3 00001132: PUSH1 0x01 00001134: DUP2 00001135: GT 00001136: ISZERO 00001137: PUSH2 0x1142 0000113a: JUMPI 0000113b: PUSH2 0x1142 0000113e: PUSH2 0x25cf 00001141: JUMP 00001142: JUMPDEST 00001143: EQ 00001144: JUMPDEST 00001145: ISZERO 00001146: PUSH2 0x114e 00001149: JUMPI 0000114a: PUSH1 0x01 0000114c: SWAP2 0000114d: POP 0000114e: JUMPDEST 0000114f: PUSH2 0x115b 00001152: PUSH2 0x0120 00001155: DUP5 00001156: DUP7 00001157: PUSH2 0x1e67 0000115a: JUMP 0000115b: JUMPDEST 0000115c: SWAP1 0000115d: POP 0000115e: PUSH1 0x01 00001160: DUP2 00001161: PUSH1 0x01 00001163: DUP2 00001164: GT 00001165: ISZERO 00001166: PUSH2 0x1171 00001169: JUMPI 0000116a: PUSH2 0x1171 0000116d: PUSH2 0x25cf 00001170: JUMP 00001171: JUMPDEST 00001172: EQ 00001173: DUP1 00001174: ISZERO 00001175: PUSH2 0x118f 00001178: JUMPI 00001179: POP 0000117a: PUSH1 0x00 0000117c: DUP3 0000117d: PUSH1 0x01 0000117f: DUP2 00001180: GT 00001181: ISZERO 00001182: PUSH2 0x118d 00001185: JUMPI 00001186: PUSH2 0x118d 00001189: PUSH2 0x25cf 0000118c: JUMP 0000118d: JUMPDEST 0000118e: EQ 0000118f: JUMPDEST 00001190: ISZERO 00001191: PUSH2 0x1199 00001194: JUMPI 00001195: PUSH1 0x01 00001197: SWAP2 00001198: POP 00001199: JUMPDEST 0000119a: PUSH1 0x01 0000119c: DUP3 0000119d: PUSH1 0x01 0000119f: DUP2 000011a0: GT 000011a1: ISZERO 000011a2: PUSH2 0x11ad 000011a5: JUMPI 000011a6: PUSH2 0x11ad 000011a9: PUSH2 0x25cf 000011ac: JUMP 000011ad: JUMPDEST 000011ae: EQ 000011af: DUP1 000011b0: ISZERO 000011b1: PUSH2 0x11d0 000011b4: JUMPI 000011b5: POP 000011b6: PUSH1 0x00 000011b8: PUSH1 0x0c 000011ba: SLOAD 000011bb: PUSH1 0xff 000011bd: AND 000011be: PUSH1 0x01 000011c0: DUP2 000011c1: GT 000011c2: ISZERO 000011c3: PUSH2 0x11ce 000011c6: JUMPI 000011c7: PUSH2 0x11ce 000011ca: PUSH2 0x25cf 000011cd: JUMP 000011ce: JUMPDEST 000011cf: EQ 000011d0: JUMPDEST 000011d1: ISZERO 000011d2: PUSH2 0x11e3 000011d5: JUMPI 000011d6: PUSH1 0x0c 000011d8: DUP1 000011d9: SLOAD 000011da: PUSH1 0xff 000011dc: NOT 000011dd: AND 000011de: PUSH1 0x01 000011e0: OR 000011e1: SWAP1 000011e2: SSTORE 000011e3: JUMPDEST 000011e4: PUSH1 0x04 000011e6: SLOAD 000011e7: PUSH1 0x01 000011e9: PUSH1 0x01 000011eb: PUSH1 0xa0 000011ed: SHL 000011ee: SUB 000011ef: AND 000011f0: PUSH2 0x120b 000011f3: JUMPI 000011f4: PUSH1 0x40 000011f6: MLOAD 000011f7: PUSH3 0x461bcd 000011fb: PUSH1 0xe5 000011fd: SHL 000011fe: DUP2 000011ff: MSTORE 00001200: PUSH1 0x04 00001202: ADD 00001203: PUSH2 0x084d 00001206: SWAP1 00001207: PUSH2 0x2844 0000120a: JUMP 0000120b: JUMPDEST 0000120c: DUP6 0000120d: ISZERO 0000120e: PUSH2 0x1227 00001211: JUMPI 00001212: PUSH1 0x04 00001214: SLOAD 00001215: PUSH2 0x1227 00001218: SWAP1 00001219: PUSH1 0x01 0000121b: PUSH1 0x01 0000121d: PUSH1 0xa0 0000121f: SHL 00001220: SUB 00001221: AND 00001222: DUP8 00001223: PUSH2 0x1c22 00001226: JUMP 00001227: JUMPDEST 00001228: DUP5 00001229: ISZERO 0000122a: PUSH2 0x1237 0000122d: JUMPI 0000122e: PUSH2 0x1237 00001231: CALLER 00001232: DUP7 00001233: PUSH2 0x1c22 00001236: JUMP 00001237: JUMPDEST 00001238: POP 00001239: POP 0000123a: POP 0000123b: POP 0000123c: POP 0000123d: POP 0000123e: PUSH2 0x0e1e 00001241: PUSH1 0x01 00001243: PUSH1 0x00 00001245: SSTORE 00001246: JUMP 00001247: JUMPDEST 00001248: PUSH1 0x00 0000124a: DUP1 0000124b: PUSH2 0x1255 0000124e: DUP4 0000124f: PUSH1 0x08 00001251: PUSH2 0x1f1b 00001254: JUMP 00001255: JUMPDEST 00001256: POP 00001257: SWAP1 00001258: SWAP2 00001259: POP 0000125a: PUSH2 0x1265 0000125d: SWAP1 0000125e: POP 0000125f: DUP2 00001260: DUP4 00001261: PUSH2 0x2554 00001264: JUMP 00001265: JUMPDEST 00001266: SWAP2 00001267: POP 00001268: PUSH2 0x1272 0000126b: DUP4 0000126c: PUSH1 0x58 0000126e: PUSH2 0x1f1b 00001271: JUMP 00001272: JUMPDEST 00001273: POP 00001274: SWAP1 00001275: SWAP2 00001276: POP 00001277: PUSH2 0x1282 0000127a: SWAP1 0000127b: POP 0000127c: DUP2 0000127d: DUP4 0000127e: PUSH2 0x2554 00001281: JUMP 00001282: JUMPDEST 00001283: SWAP2 00001284: POP 00001285: PUSH2 0x1290 00001288: DUP4 00001289: PUSH2 0x0120 0000128c: PUSH2 0x1f1b 0000128f: JUMP 00001290: JUMPDEST 00001291: POP 00001292: SWAP1 00001293: SWAP2 00001294: POP 00001295: PUSH2 0x12a0 00001298: SWAP1 00001299: POP 0000129a: DUP2 0000129b: DUP4 0000129c: PUSH2 0x2554 0000129f: JUMP 000012a0: JUMPDEST 000012a1: SWAP4 000012a2: SWAP3 000012a3: POP 000012a4: POP 000012a5: POP 000012a6: JUMP 000012a7: JUMPDEST 000012a8: PUSH2 0x12af 000012ab: PUSH2 0x1cc5 000012ae: JUMP 000012af: JUMPDEST 000012b0: PUSH1 0x02 000012b2: DUP1 000012b3: SLOAD 000012b4: PUSH1 0x01 000012b6: PUSH1 0x01 000012b8: PUSH1 0xa0 000012ba: SHL 000012bb: SUB 000012bc: DUP4 000012bd: AND 000012be: PUSH1 0x01 000012c0: PUSH1 0x01 000012c2: PUSH1 0xa0 000012c4: SHL 000012c5: SUB 000012c6: NOT 000012c7: SWAP1 000012c8: SWAP2 000012c9: AND 000012ca: DUP2 000012cb: OR 000012cc: SWAP1 000012cd: SWAP2 000012ce: SSTORE 000012cf: PUSH2 0x12e0 000012d2: PUSH1 0x01 000012d4: SLOAD 000012d5: PUSH1 0x01 000012d7: PUSH1 0x01 000012d9: PUSH1 0xa0 000012db: SHL 000012dc: SUB 000012dd: AND 000012de: SWAP1 000012df: JUMP 000012e0: JUMPDEST 000012e1: PUSH1 0x01 000012e3: PUSH1 0x01 000012e5: PUSH1 0xa0 000012e7: SHL 000012e8: SUB 000012e9: AND 000012ea: PUSH32 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700 0000130b: PUSH1 0x40 0000130d: MLOAD 0000130e: PUSH1 0x40 00001310: MLOAD 00001311: DUP1 00001312: SWAP2 00001313: SUB 00001314: SWAP1 00001315: LOG3 00001316: POP 00001317: JUMP 00001318: JUMPDEST 00001319: PUSH1 0x04 0000131b: SLOAD 0000131c: PUSH4 0xffffffff 00001321: PUSH1 0x01 00001323: PUSH1 0xa0 00001325: SHL 00001326: SWAP1 00001327: SWAP2 00001328: DIV 00001329: DUP2 0000132a: AND 0000132b: SWAP1 0000132c: PUSH1 0x00 0000132e: SWAP1 0000132f: PUSH3 0x015180 00001333: SWAP1 00001334: PUSH2 0x135f 00001337: SWAP1 00001338: PUSH32 0x00000000000000000000000000000000000000000000000000000000667be25b 00001359: AND 0000135a: TIMESTAMP 0000135b: PUSH2 0x2805 0000135e: JUMP 0000135f: JUMPDEST 00001360: PUSH2 0x1369 00001363: SWAP2 00001364: SWAP1 00001365: PUSH2 0x28ae 00001368: JUMP 00001369: JUMPDEST 0000136a: PUSH2 0x1374 0000136d: SWAP1 0000136e: PUSH1 0x01 00001370: PUSH2 0x2554 00001373: JUMP 00001374: JUMPDEST 00001375: SWAP1 00001376: POP 00001377: DUP2 00001378: PUSH4 0xffffffff 0000137d: AND 0000137e: DUP2 0000137f: PUSH4 0xffffffff 00001384: AND 00001385: GT 00001386: ISZERO 00001387: PUSH2 0x0a6a 0000138a: JUMPI 0000138b: PUSH1 0x05 0000138d: SLOAD 0000138e: PUSH1 0x00 00001390: PUSH2 0x1399 00001393: DUP5 00001394: DUP5 00001395: PUSH2 0x28c2 00001398: JUMP 00001399: JUMPDEST 0000139a: SWAP1 0000139b: POP 0000139c: DUP4 0000139d: PUSH1 0x00 0000139f: JUMPDEST 000013a0: DUP3 000013a1: PUSH4 0xffffffff 000013a6: AND 000013a7: DUP2 000013a8: PUSH4 0xffffffff 000013ad: AND 000013ae: LT 000013af: ISZERO 000013b0: PUSH2 0x1403 000013b3: JUMPI 000013b4: PUSH2 0x13bc 000013b7: DUP3 000013b8: PUSH2 0x28e6 000013bb: JUMP 000013bc: JUMPDEST 000013bd: SWAP2 000013be: POP 000013bf: PUSH2 0x13c9 000013c2: PUSH1 0x08 000013c4: DUP4 000013c5: PUSH2 0x2909 000013c8: JUMP 000013c9: JUMPDEST 000013ca: PUSH4 0xffffffff 000013cf: AND 000013d0: PUSH1 0x00 000013d2: SUB 000013d3: PUSH2 0x13fb 000013d6: JUMPI 000013d7: PUSH2 0x2710 000013da: PUSH2 0x13e4 000013dd: PUSH1 0x7e 000013df: DUP7 000013e0: PUSH2 0x27ee 000013e3: JUMP 000013e4: JUMPDEST 000013e5: PUSH2 0x13ee 000013e8: SWAP2 000013e9: SWAP1 000013ea: PUSH2 0x28ae 000013ed: JUMP 000013ee: JUMPDEST 000013ef: PUSH2 0x13f8 000013f2: SWAP1 000013f3: DUP6 000013f4: PUSH2 0x2805 000013f7: JUMP 000013f8: JUMPDEST 000013f9: SWAP4 000013fa: POP 000013fb: JUMPDEST 000013fc: PUSH1 0x01 000013fe: ADD 000013ff: PUSH2 0x139f 00001402: JUMP 00001403: JUMPDEST 00001404: POP 00001405: POP 00001406: POP 00001407: PUSH1 0x05 00001409: SSTORE 0000140a: PUSH1 0x04 0000140c: DUP1 0000140d: SLOAD 0000140e: PUSH4 0xffffffff 00001413: SWAP3 00001414: SWAP1 00001415: SWAP3 00001416: AND 00001417: PUSH1 0x01 00001419: PUSH1 0xa0 0000141b: SHL 0000141c: MUL 0000141d: PUSH4 0xffffffff 00001422: PUSH1 0xa0 00001424: SHL 00001425: NOT 00001426: SWAP1 00001427: SWAP3 00001428: AND 00001429: SWAP2 0000142a: SWAP1 0000142b: SWAP2 0000142c: OR 0000142d: SWAP1 0000142e: SSTORE 0000142f: POP 00001430: PUSH1 0x0c 00001432: DUP1 00001433: SLOAD 00001434: PUSH1 0xff 00001436: NOT 00001437: AND 00001438: SWAP1 00001439: SSTORE 0000143a: JUMP 0000143b: JUMPDEST 0000143c: PUSH1 0x02 0000143e: PUSH1 0x00 00001440: SLOAD 00001441: SUB 00001442: PUSH2 0x145e 00001445: JUMPI 00001446: PUSH1 0x40 00001448: MLOAD 00001449: PUSH4 0x3ee5aeb5 0000144e: PUSH1 0xe0 00001450: SHL 00001451: DUP2 00001452: MSTORE 00001453: PUSH1 0x04 00001455: ADD 00001456: PUSH1 0x40 00001458: MLOAD 00001459: DUP1 0000145a: SWAP2 0000145b: SUB 0000145c: SWAP1 0000145d: REVERT 0000145e: JUMPDEST 0000145f: PUSH1 0x02 00001461: PUSH1 0x00 00001463: SSTORE 00001464: JUMP 00001465: JUMPDEST 00001466: PUSH1 0x01 00001468: PUSH1 0x01 0000146a: PUSH1 0xa0 0000146c: SHL 0000146d: SUB 0000146e: DUP5 0000146f: AND 00001470: PUSH1 0x00 00001472: SWAP1 00001473: DUP2 00001474: MSTORE 00001475: PUSH1 0x15 00001477: PUSH1 0x20 00001479: SWAP1 0000147a: DUP2 0000147b: MSTORE 0000147c: PUSH1 0x40 0000147e: DUP1 0000147f: DUP4 00001480: KECCAK256 00001481: SLOAD 00001482: PUSH1 0x16 00001484: DUP4 00001485: MSTORE 00001486: DUP2 00001487: DUP5 00001488: KECCAK256 00001489: DUP2 0000148a: DUP6 0000148b: MSTORE 0000148c: SWAP1 0000148d: SWAP3 0000148e: MSTORE 0000148f: DUP3 00001490: KECCAK256 00001491: PUSH1 0x01 00001493: ADD 00001494: SLOAD 00001495: DUP3 00001496: DUP5 00001497: PUSH1 0x01 00001499: DUP2 0000149a: GT 0000149b: ISZERO 0000149c: PUSH2 0x14a7 0000149f: JUMPI 000014a0: PUSH2 0x14a7 000014a3: PUSH2 0x25cf 000014a6: JUMP 000014a7: JUMPDEST 000014a8: SUB 000014a9: PUSH2 0x1533 000014ac: JUMPI 000014ad: DUP2 000014ae: PUSH1 0x00 000014b0: SUB 000014b1: PUSH2 0x14b9 000014b4: JUMPI 000014b5: PUSH1 0x01 000014b7: SWAP3 000014b8: POP 000014b9: JUMPDEST 000014ba: PUSH2 0x14c3 000014bd: DUP7 000014be: DUP3 000014bf: PUSH2 0x2554 000014c2: JUMP 000014c3: JUMPDEST 000014c4: PUSH1 0x01 000014c6: PUSH1 0x01 000014c8: PUSH1 0xa0 000014ca: SHL 000014cb: SUB 000014cc: DUP9 000014cd: AND 000014ce: PUSH1 0x00 000014d0: SWAP1 000014d1: DUP2 000014d2: MSTORE 000014d3: PUSH1 0x16 000014d5: PUSH1 0x20 000014d7: MSTORE 000014d8: PUSH1 0x40 000014da: DUP2 000014db: KECCAK256 000014dc: SWAP1 000014dd: PUSH2 0x14e5 000014e0: DUP6 000014e1: PUSH2 0x27d5 000014e4: JUMP 000014e5: JUMPDEST 000014e6: SWAP5 000014e7: POP 000014e8: DUP5 000014e9: DUP2 000014ea: MSTORE 000014eb: PUSH1 0x20 000014ed: ADD 000014ee: SWAP1 000014ef: DUP2 000014f0: MSTORE 000014f1: PUSH1 0x20 000014f3: ADD 000014f4: PUSH1 0x00 000014f6: KECCAK256 000014f7: PUSH1 0x01 000014f9: ADD 000014fa: DUP2 000014fb: SWAP1 000014fc: SSTORE 000014fd: POP 000014fe: DUP6 000014ff: PUSH1 0x07 00001501: PUSH1 0x00 00001503: DUP3 00001504: DUP3 00001505: SLOAD 00001506: PUSH2 0x150f 00001509: SWAP2 0000150a: SWAP1 0000150b: PUSH2 0x2554 0000150e: JUMP 0000150f: JUMPDEST 00001510: SWAP3 00001511: POP 00001512: POP 00001513: DUP2 00001514: SWAP1 00001515: SSTORE 00001516: POP 00001517: DUP5 00001518: PUSH1 0x09 0000151a: PUSH1 0x00 0000151c: DUP3 0000151d: DUP3 0000151e: SLOAD 0000151f: PUSH2 0x1528 00001522: SWAP2 00001523: SWAP1 00001524: PUSH2 0x2554 00001527: JUMP 00001528: JUMPDEST 00001529: SWAP1 0000152a: SWAP2 0000152b: SSTORE 0000152c: POP 0000152d: PUSH2 0x15a8 00001530: SWAP1 00001531: POP 00001532: JUMP 00001533: JUMPDEST 00001534: PUSH2 0x153d 00001537: DUP7 00001538: DUP3 00001539: PUSH2 0x2805 0000153c: JUMP 0000153d: JUMPDEST 0000153e: PUSH1 0x01 00001540: PUSH1 0x01 00001542: PUSH1 0xa0 00001544: SHL 00001545: SUB 00001546: DUP9 00001547: AND 00001548: PUSH1 0x00 0000154a: SWAP1 0000154b: DUP2 0000154c: MSTORE 0000154d: PUSH1 0x16 0000154f: PUSH1 0x20 00001551: MSTORE 00001552: PUSH1 0x40 00001554: DUP2 00001555: KECCAK256 00001556: SWAP1 00001557: PUSH2 0x155f 0000155a: DUP6 0000155b: PUSH2 0x27d5 0000155e: JUMP 0000155f: JUMPDEST 00001560: SWAP5 00001561: POP 00001562: DUP5 00001563: DUP2 00001564: MSTORE 00001565: PUSH1 0x20 00001567: ADD 00001568: SWAP1 00001569: DUP2 0000156a: MSTORE 0000156b: PUSH1 0x20 0000156d: ADD 0000156e: PUSH1 0x00 00001570: KECCAK256 00001571: PUSH1 0x01 00001573: ADD 00001574: DUP2 00001575: SWAP1 00001576: SSTORE 00001577: POP 00001578: DUP6 00001579: PUSH1 0x08 0000157b: PUSH1 0x00 0000157d: DUP3 0000157e: DUP3 0000157f: SLOAD 00001580: PUSH2 0x1589 00001583: SWAP2 00001584: SWAP1 00001585: PUSH2 0x2554 00001588: JUMP 00001589: JUMPDEST 0000158a: SWAP3 0000158b: POP 0000158c: POP 0000158d: DUP2 0000158e: SWAP1 0000158f: SSTORE 00001590: POP 00001591: DUP5 00001592: PUSH1 0x09 00001594: PUSH1 0x00 00001596: DUP3 00001597: DUP3 00001598: SLOAD 00001599: PUSH2 0x15a2 0000159c: SWAP2 0000159d: SWAP1 0000159e: PUSH2 0x2805 000015a1: JUMP 000015a2: JUMPDEST 000015a3: SWAP1 000015a4: SWAP2 000015a5: SSTORE 000015a6: POP 000015a7: POP 000015a8: JUMPDEST 000015a9: PUSH1 0x00 000015ab: PUSH1 0x0c 000015ad: SLOAD 000015ae: PUSH1 0xff 000015b0: AND 000015b1: PUSH1 0x01 000015b3: DUP2 000015b4: GT 000015b5: ISZERO 000015b6: PUSH2 0x15c1 000015b9: JUMPI 000015ba: PUSH2 0x15c1 000015bd: PUSH2 0x25cf 000015c0: JUMP 000015c1: JUMPDEST 000015c2: EQ 000015c3: PUSH2 0x15e6 000015c6: JUMPI 000015c7: PUSH1 0x04 000015c9: SLOAD 000015ca: PUSH2 0x15e1 000015cd: SWAP1 000015ce: PUSH1 0x01 000015d0: PUSH1 0xa0 000015d2: SHL 000015d3: SWAP1 000015d4: DIV 000015d5: PUSH4 0xffffffff 000015da: AND 000015db: PUSH1 0x01 000015dd: PUSH2 0x292c 000015e0: JUMP 000015e1: JUMPDEST 000015e2: PUSH2 0x15f7 000015e5: JUMP 000015e6: JUMPDEST 000015e7: PUSH1 0x04 000015e9: SLOAD 000015ea: PUSH1 0x01 000015ec: PUSH1 0xa0 000015ee: SHL 000015ef: SWAP1 000015f0: DIV 000015f1: PUSH4 0xffffffff 000015f6: AND 000015f7: JUMPDEST 000015f8: PUSH1 0x01 000015fa: PUSH1 0x01 000015fc: PUSH1 0xa0 000015fe: SHL 000015ff: SUB 00001600: SWAP8 00001601: SWAP1 00001602: SWAP8 00001603: AND 00001604: PUSH1 0x00 00001606: DUP2 00001607: DUP2 00001608: MSTORE 00001609: PUSH1 0x16 0000160b: PUSH1 0x20 0000160d: SWAP1 0000160e: DUP2 0000160f: MSTORE 00001610: PUSH1 0x40 00001612: DUP1 00001613: DUP4 00001614: KECCAK256 00001615: DUP7 00001616: DUP5 00001617: MSTORE 00001618: DUP3 00001619: MSTORE 0000161a: DUP1 0000161b: DUP4 0000161c: KECCAK256 0000161d: DUP1 0000161e: SLOAD 0000161f: PUSH4 0xffffffff 00001624: NOT 00001625: AND 00001626: PUSH4 0xffffffff 0000162b: SWAP1 0000162c: SWAP13 0000162d: AND 0000162e: SWAP12 0000162f: SWAP1 00001630: SWAP12 00001631: OR 00001632: SWAP1 00001633: SWAP11 00001634: SSTORE 00001635: SWAP2 00001636: DUP2 00001637: MSTORE 00001638: PUSH1 0x15 0000163a: SWAP1 0000163b: SWAP2 0000163c: MSTORE 0000163d: SWAP7 0000163e: SWAP1 0000163f: SWAP7 00001640: KECCAK256 00001641: SSTORE 00001642: SWAP5 00001643: SWAP4 00001644: POP 00001645: POP 00001646: POP 00001647: POP 00001648: JUMP 00001649: JUMPDEST 0000164a: PUSH1 0x08 0000164c: PUSH1 0x00 0000164e: MSTORE 0000164f: PUSH1 0x0e 00001651: PUSH1 0x20 00001653: MSTORE 00001654: PUSH32 0xeab6bc3746954d8a0719de62c86ea908d362be2a58c781ada1046727253f9df2 00001675: SLOAD 00001676: PUSH4 0xffffffff 0000167b: AND 0000167c: ISZERO 0000167d: PUSH2 0x0e73 00001680: JUMPI 00001681: PUSH1 0x08 00001683: PUSH1 0x00 00001685: MSTORE 00001686: PUSH1 0x0e 00001688: PUSH1 0x20 0000168a: MSTORE 0000168b: PUSH32 0xeab6bc3746954d8a0719de62c86ea908d362be2a58c781ada1046727253f9df2 000016ac: SLOAD 000016ad: PUSH2 0x16bd 000016b0: SWAP1 000016b1: PUSH4 0xffffffff 000016b6: AND 000016b7: PUSH1 0x01 000016b9: PUSH2 0x292c 000016bc: JUMP 000016bd: JUMPDEST 000016be: PUSH1 0x01 000016c0: PUSH1 0x01 000016c2: PUSH1 0xa0 000016c4: SHL 000016c5: SUB 000016c6: DUP3 000016c7: AND 000016c8: PUSH1 0x00 000016ca: SWAP1 000016cb: DUP2 000016cc: MSTORE 000016cd: PUSH1 0x11 000016cf: PUSH1 0x20 000016d1: SWAP1 000016d2: DUP2 000016d3: MSTORE 000016d4: PUSH1 0x40 000016d6: DUP1 000016d7: DUP4 000016d8: KECCAK256 000016d9: PUSH1 0x08 000016db: DUP5 000016dc: MSTORE 000016dd: DUP3 000016de: MSTORE 000016df: DUP3 000016e0: KECCAK256 000016e1: DUP1 000016e2: SLOAD 000016e3: PUSH4 0xffffffff 000016e8: NOT 000016e9: AND 000016ea: PUSH4 0xffffffff 000016ef: SWAP5 000016f0: DUP6 000016f1: AND 000016f2: OR 000016f3: SWAP1 000016f4: SSTORE 000016f5: PUSH1 0x58 000016f7: SWAP1 000016f8: SWAP2 000016f9: MSTORE 000016fa: PUSH1 0x0e 000016fc: SWAP1 000016fd: MSTORE 000016fe: PUSH32 0x5ea54d52ee8c9b980f7ee6f575aaaf3d4769efd8809d64a2e6f4c02f24b3e922 0000171f: SLOAD 00001720: PUSH2 0x172b 00001723: SWAP2 00001724: AND 00001725: PUSH1 0x01 00001727: PUSH2 0x292c 0000172a: JUMP 0000172b: JUMPDEST 0000172c: PUSH1 0x01 0000172e: PUSH1 0x01 00001730: PUSH1 0xa0 00001732: SHL 00001733: SUB 00001734: DUP3 00001735: AND 00001736: PUSH1 0x00 00001738: SWAP1 00001739: DUP2 0000173a: MSTORE 0000173b: PUSH1 0x11 0000173d: PUSH1 0x20 0000173f: SWAP1 00001740: DUP2 00001741: MSTORE 00001742: PUSH1 0x40 00001744: DUP1 00001745: DUP4 00001746: KECCAK256 00001747: PUSH1 0x58 00001749: DUP5 0000174a: MSTORE 0000174b: DUP3 0000174c: MSTORE 0000174d: DUP3 0000174e: KECCAK256 0000174f: DUP1 00001750: SLOAD 00001751: PUSH4 0xffffffff 00001756: NOT 00001757: AND 00001758: PUSH4 0xffffffff 0000175d: SWAP5 0000175e: DUP6 0000175f: AND 00001760: OR 00001761: SWAP1 00001762: SSTORE 00001763: PUSH2 0x0120 00001766: SWAP1 00001767: SWAP2 00001768: MSTORE 00001769: PUSH1 0x0e 0000176b: SWAP1 0000176c: MSTORE 0000176d: PUSH32 0x6a7f5fcd829d841f4ae5df66fd4f81e89c1ed4f8ab5607b4598ad4aaec790678 0000178e: SLOAD 0000178f: PUSH2 0x179a 00001792: SWAP2 00001793: AND 00001794: PUSH1 0x01 00001796: PUSH2 0x292c 00001799: JUMP 0000179a: JUMPDEST 0000179b: PUSH1 0x01 0000179d: PUSH1 0x01 0000179f: PUSH1 0xa0 000017a1: SHL 000017a2: SUB 000017a3: SWAP2 000017a4: SWAP1 000017a5: SWAP2 000017a6: AND 000017a7: PUSH1 0x00 000017a9: SWAP1 000017aa: DUP2 000017ab: MSTORE 000017ac: PUSH1 0x11 000017ae: PUSH1 0x20 000017b0: SWAP1 000017b1: DUP2 000017b2: MSTORE 000017b3: PUSH1 0x40 000017b5: DUP1 000017b6: DUP4 000017b7: KECCAK256 000017b8: PUSH2 0x0120 000017bb: DUP5 000017bc: MSTORE 000017bd: SWAP1 000017be: SWAP2 000017bf: MSTORE 000017c0: SWAP1 000017c1: KECCAK256 000017c2: DUP1 000017c3: SLOAD 000017c4: PUSH4 0xffffffff 000017c9: NOT 000017ca: AND 000017cb: PUSH4 0xffffffff 000017d0: SWAP3 000017d1: SWAP1 000017d2: SWAP3 000017d3: AND 000017d4: SWAP2 000017d5: SWAP1 000017d6: SWAP2 000017d7: OR 000017d8: SWAP1 000017d9: SSTORE 000017da: JUMP 000017db: JUMPDEST 000017dc: PUSH1 0x04 000017de: DUP1 000017df: SLOAD 000017e0: PUSH1 0x40 000017e2: DUP1 000017e3: MLOAD 000017e4: PUSH4 0x3c42b341 000017e9: PUSH1 0xe0 000017eb: SHL 000017ec: DUP2 000017ed: MSTORE 000017ee: SWAP1 000017ef: MLOAD 000017f0: PUSH1 0x00 000017f2: SWAP4 000017f3: DUP5 000017f4: SWAP4 000017f5: PUSH1 0x01 000017f7: PUSH1 0x01 000017f9: PUSH1 0xa0 000017fb: SHL 000017fc: SUB 000017fd: AND 000017fe: SWAP3 000017ff: PUSH4 0x3c42b341 00001804: SWAP3 00001805: DUP2 00001806: DUP4 00001807: ADD 00001808: SWAP3 00001809: PUSH1 0x60 0000180b: SWAP3 0000180c: DUP3 0000180d: SWAP1 0000180e: SUB 0000180f: ADD 00001810: DUP2 00001811: DUP7 00001812: GAS 00001813: STATICCALL 00001814: ISZERO 00001815: DUP1 00001816: ISZERO 00001817: PUSH2 0x1824 0000181a: JUMPI 0000181b: RETURNDATASIZE 0000181c: PUSH1 0x00 0000181e: DUP1 0000181f: RETURNDATACOPY 00001820: RETURNDATASIZE 00001821: PUSH1 0x00 00001823: REVERT 00001824: JUMPDEST 00001825: POP 00001826: POP 00001827: POP 00001828: POP 00001829: PUSH1 0x40 0000182b: MLOAD 0000182c: RETURNDATASIZE 0000182d: PUSH1 0x1f 0000182f: NOT 00001830: PUSH1 0x1f 00001832: DUP3 00001833: ADD 00001834: AND 00001835: DUP3 00001836: ADD 00001837: DUP1 00001838: PUSH1 0x40 0000183a: MSTORE 0000183b: POP 0000183c: DUP2 0000183d: ADD 0000183e: SWAP1 0000183f: PUSH2 0x1848 00001842: SWAP2 00001843: SWAP1 00001844: PUSH2 0x2949 00001847: JUMP 00001848: JUMPDEST 00001849: POP 0000184a: SWAP1 0000184b: SWAP3 0000184c: POP 0000184d: SWAP1 0000184e: POP 0000184f: PUSH1 0x00 00001851: PUSH2 0x185b 00001854: PUSH1 0x01 00001856: DUP4 00001857: PUSH2 0x2805 0000185a: JUMP 0000185b: JUMPDEST 0000185c: PUSH2 0x1867 0000185f: SWAP1 00001860: PUSH2 0x0378 00001863: PUSH2 0x27ee 00001866: JUMP 00001867: JUMPDEST 00001868: SWAP1 00001869: POP 0000186a: PUSH1 0x00 0000186c: PUSH2 0x1877 0000186f: DUP3 00001870: PUSH2 0x016d 00001873: PUSH2 0x2554 00001876: JUMP 00001877: JUMPDEST 00001878: SWAP1 00001879: POP 0000187a: DUP1 0000187b: DUP5 0000187c: GT 0000187d: DUP1 0000187e: ISZERO 0000187f: SWAP1 00001880: PUSH2 0x18bc 00001883: JUMPI 00001884: PUSH1 0x01 00001886: PUSH1 0x01 00001888: PUSH1 0xa0 0000188a: SHL 0000188b: SUB 0000188c: DUP8 0000188d: AND 0000188e: PUSH1 0x00 00001890: SWAP1 00001891: DUP2 00001892: MSTORE 00001893: PUSH1 0x17 00001895: PUSH1 0x20 00001897: SWAP1 00001898: DUP2 00001899: MSTORE 0000189a: PUSH1 0x40 0000189c: DUP1 0000189d: DUP4 0000189e: KECCAK256 0000189f: DUP8 000018a0: DUP5 000018a1: MSTORE 000018a2: SWAP1 000018a3: SWAP2 000018a4: MSTORE 000018a5: DUP2 000018a6: KECCAK256 000018a7: DUP1 000018a8: SLOAD 000018a9: DUP9 000018aa: SWAP3 000018ab: SWAP1 000018ac: PUSH2 0x18b6 000018af: SWAP1 000018b0: DUP5 000018b1: SWAP1 000018b2: PUSH2 0x2554 000018b5: JUMP 000018b6: JUMPDEST 000018b7: SWAP1 000018b8: SWAP2 000018b9: SSTORE 000018ba: POP 000018bb: POP 000018bc: JUMPDEST 000018bd: POP 000018be: POP 000018bf: POP 000018c0: POP 000018c1: POP 000018c2: POP 000018c3: POP 000018c4: JUMP 000018c5: JUMPDEST 000018c6: PUSH1 0x40 000018c8: MLOAD 000018c9: PUSH1 0x01 000018cb: PUSH1 0x01 000018cd: PUSH1 0xa0 000018cf: SHL 000018d0: SUB 000018d1: DUP5 000018d2: DUP2 000018d3: AND 000018d4: PUSH1 0x24 000018d6: DUP4 000018d7: ADD 000018d8: MSTORE 000018d9: DUP4 000018da: DUP2 000018db: AND 000018dc: PUSH1 0x44 000018de: DUP4 000018df: ADD 000018e0: MSTORE 000018e1: PUSH1 0x64 000018e3: DUP3 000018e4: ADD 000018e5: DUP4 000018e6: SWAP1 000018e7: MSTORE 000018e8: PUSH2 0x192c 000018eb: SWAP2 000018ec: DUP7 000018ed: SWAP2 000018ee: DUP3 000018ef: AND 000018f0: SWAP1 000018f1: PUSH4 0x23b872dd 000018f6: SWAP1 000018f7: PUSH1 0x84 000018f9: ADD 000018fa: JUMPDEST 000018fb: PUSH1 0x40 000018fd: MLOAD 000018fe: PUSH1 0x20 00001900: DUP2 00001901: DUP4 00001902: SUB 00001903: SUB 00001904: DUP2 00001905: MSTORE 00001906: SWAP1 00001907: PUSH1 0x40 00001909: MSTORE 0000190a: SWAP2 0000190b: POP 0000190c: PUSH1 0xe0 0000190e: SHL 0000190f: PUSH1 0x20 00001911: DUP3 00001912: ADD 00001913: DUP1 00001914: MLOAD 00001915: PUSH1 0x01 00001917: PUSH1 0x01 00001919: PUSH1 0xe0 0000191b: SHL 0000191c: SUB 0000191d: DUP4 0000191e: DUP2 0000191f: DUP4 00001920: AND 00001921: OR 00001922: DUP4 00001923: MSTORE 00001924: POP 00001925: POP 00001926: POP 00001927: POP 00001928: PUSH2 0x2099 0000192b: JUMP 0000192c: JUMPDEST 0000192d: POP 0000192e: POP 0000192f: POP 00001930: POP 00001931: JUMP 00001932: JUMPDEST 00001933: PUSH1 0x01 00001935: PUSH1 0x01 00001937: PUSH1 0xa0 00001939: SHL 0000193a: SUB 0000193b: DUP3 0000193c: AND 0000193d: PUSH1 0x00 0000193f: SWAP1 00001940: DUP2 00001941: MSTORE 00001942: PUSH1 0x13 00001944: PUSH1 0x20 00001946: SWAP1 00001947: DUP2 00001948: MSTORE 00001949: PUSH1 0x40 0000194b: DUP1 0000194c: DUP4 0000194d: KECCAK256 0000194e: DUP5 0000194f: DUP5 00001950: MSTORE 00001951: SWAP1 00001952: SWAP2 00001953: MSTORE 00001954: DUP2 00001955: KECCAK256 00001956: SLOAD 00001957: DUP1 00001958: DUP3 00001959: SUB 0000195a: PUSH2 0x19bb 0000195d: JUMPI 0000195e: PUSH1 0x40 00001960: MLOAD 00001961: PUSH3 0x461bcd 00001965: PUSH1 0xe5 00001967: SHL 00001968: DUP2 00001969: MSTORE 0000196a: PUSH1 0x20 0000196c: PUSH1 0x04 0000196e: DUP3 0000196f: ADD 00001970: MSTORE 00001971: PUSH1 0x2d 00001973: PUSH1 0x24 00001975: DUP3 00001976: ADD 00001977: MSTORE 00001978: PUSH32 0x626c617a655374616b696e673a626c617a65207374616b696e67207374616b65 00001999: PUSH1 0x44 0000199b: DUP3 0000199c: ADD 0000199d: MSTORE 0000199e: PUSH13 0x081a59081b9bdd081d985b1a59 000019ac: PUSH1 0x9a 000019ae: SHL 000019af: PUSH1 0x64 000019b1: DUP3 000019b2: ADD 000019b3: MSTORE 000019b4: PUSH1 0x84 000019b6: ADD 000019b7: PUSH2 0x084d 000019ba: JUMP 000019bb: JUMPDEST 000019bc: PUSH1 0x00 000019be: DUP2 000019bf: DUP2 000019c0: MSTORE 000019c1: PUSH1 0x14 000019c3: PUSH1 0x20 000019c5: SWAP1 000019c6: DUP2 000019c7: MSTORE 000019c8: PUSH1 0x40 000019ca: DUP1 000019cb: DUP4 000019cc: KECCAK256 000019cd: DUP2 000019ce: MLOAD 000019cf: PUSH1 0xc0 000019d1: DUP2 000019d2: ADD 000019d3: DUP4 000019d4: MSTORE 000019d5: DUP2 000019d6: SLOAD 000019d7: DUP2 000019d8: MSTORE 000019d9: PUSH1 0x01 000019db: DUP1 000019dc: DUP4 000019dd: ADD 000019de: SLOAD 000019df: SWAP5 000019e0: DUP3 000019e1: ADD 000019e2: SWAP5 000019e3: SWAP1 000019e4: SWAP5 000019e5: MSTORE 000019e6: PUSH1 0x02 000019e8: DUP3 000019e9: ADD 000019ea: SLOAD 000019eb: PUSH2 0xffff 000019ee: DUP2 000019ef: AND 000019f0: SWAP4 000019f1: DUP3 000019f2: ADD 000019f3: SWAP4 000019f4: SWAP1 000019f5: SWAP4 000019f6: MSTORE 000019f7: PUSH3 0x010000 000019fb: DUP4 000019fc: DIV 000019fd: PUSH4 0xffffffff 00001a02: SWAP1 00001a03: DUP2 00001a04: AND 00001a05: PUSH1 0x60 00001a07: DUP4 00001a08: ADD 00001a09: MSTORE 00001a0a: PUSH1 0x01 00001a0c: PUSH1 0x30 00001a0e: SHL 00001a0f: DUP5 00001a10: DIV 00001a11: AND 00001a12: PUSH1 0x80 00001a14: DUP3 00001a15: ADD 00001a16: MSTORE 00001a17: SWAP3 00001a18: SWAP1 00001a19: SWAP2 00001a1a: PUSH1 0xa0 00001a1c: DUP5 00001a1d: ADD 00001a1e: SWAP2 00001a1f: PUSH1 0x01 00001a21: PUSH1 0x50 00001a23: SHL 00001a24: SWAP1 00001a25: SWAP2 00001a26: DIV 00001a27: PUSH1 0xff 00001a29: AND 00001a2a: SWAP1 00001a2b: DUP2 00001a2c: GT 00001a2d: ISZERO 00001a2e: PUSH2 0x1a39 00001a31: JUMPI 00001a32: PUSH2 0x1a39 00001a35: PUSH2 0x25cf 00001a38: JUMP 00001a39: JUMPDEST 00001a3a: PUSH1 0x01 00001a3c: DUP2 00001a3d: GT 00001a3e: ISZERO 00001a3f: PUSH2 0x1a4a 00001a42: JUMPI 00001a43: PUSH2 0x1a4a 00001a46: PUSH2 0x25cf 00001a49: JUMP 00001a4a: JUMPDEST 00001a4b: SWAP1 00001a4c: MSTORE 00001a4d: POP 00001a4e: SWAP1 00001a4f: POP 00001a50: PUSH1 0x01 00001a52: DUP2 00001a53: PUSH1 0xa0 00001a55: ADD 00001a56: MLOAD 00001a57: PUSH1 0x01 00001a59: DUP2 00001a5a: GT 00001a5b: ISZERO 00001a5c: PUSH2 0x1a67 00001a5f: JUMPI 00001a60: PUSH2 0x1a67 00001a63: PUSH2 0x25cf 00001a66: JUMP 00001a67: JUMPDEST 00001a68: SUB 00001a69: PUSH2 0x1ac7 00001a6c: JUMPI 00001a6d: PUSH1 0x40 00001a6f: MLOAD 00001a70: PUSH3 0x461bcd 00001a74: PUSH1 0xe5 00001a76: SHL 00001a77: DUP2 00001a78: MSTORE 00001a79: PUSH1 0x20 00001a7b: PUSH1 0x04 00001a7d: DUP3 00001a7e: ADD 00001a7f: MSTORE 00001a80: PUSH1 0x2a 00001a82: PUSH1 0x24 00001a84: DUP3 00001a85: ADD 00001a86: MSTORE 00001a87: PUSH32 0x626c617a655374616b696e673a626c617a65207374616b652068617320616c72 00001aa8: PUSH1 0x44 00001aaa: DUP3 00001aab: ADD 00001aac: MSTORE 00001aad: PUSH10 0x1958591e48195b991959 00001ab8: PUSH1 0xb2 00001aba: SHL 00001abb: PUSH1 0x64 00001abd: DUP3 00001abe: ADD 00001abf: MSTORE 00001ac0: PUSH1 0x84 00001ac2: ADD 00001ac3: PUSH2 0x084d 00001ac6: JUMP 00001ac7: JUMPDEST 00001ac8: DUP1 00001ac9: PUSH1 0x80 00001acb: ADD 00001acc: MLOAD 00001acd: PUSH4 0xffffffff 00001ad2: AND 00001ad3: TIMESTAMP 00001ad4: LT 00001ad5: ISZERO 00001ad6: PUSH2 0x1b2d 00001ad9: JUMPI 00001ada: PUSH1 0x40 00001adc: MLOAD 00001add: PUSH3 0x461bcd 00001ae1: PUSH1 0xe5 00001ae3: SHL 00001ae4: DUP2 00001ae5: MSTORE 00001ae6: PUSH1 0x20 00001ae8: PUSH1 0x04 00001aea: DUP3 00001aeb: ADD 00001aec: MSTORE 00001aed: PUSH1 0x24 00001aef: DUP1 00001af0: DUP3 00001af1: ADD 00001af2: MSTORE 00001af3: PUSH32 0x626c617a655374616b696e673a626c617a65207374616b65206e6f74206d6174 00001b14: PUSH1 0x44 00001b16: DUP3 00001b17: ADD 00001b18: MSTORE 00001b19: PUSH4 0x1d5c9959 00001b1e: PUSH1 0xe2 00001b20: SHL 00001b21: PUSH1 0x64 00001b23: DUP3 00001b24: ADD 00001b25: MSTORE 00001b26: PUSH1 0x84 00001b28: ADD 00001b29: PUSH2 0x084d 00001b2c: JUMP 00001b2d: JUMPDEST 00001b2e: PUSH1 0x20 00001b30: DUP2 00001b31: ADD 00001b32: MLOAD 00001b33: DUP2 00001b34: MLOAD 00001b35: PUSH2 0x1b43 00001b38: SWAP1 00001b39: DUP8 00001b3a: SWAP1 00001b3b: DUP4 00001b3c: SWAP1 00001b3d: PUSH1 0x01 00001b3f: PUSH2 0x1465 00001b42: JUMP 00001b43: JUMPDEST 00001b44: POP 00001b45: PUSH1 0x0a 00001b47: PUSH1 0x00 00001b49: DUP2 00001b4a: SLOAD 00001b4b: PUSH2 0x1b53 00001b4e: SWAP1 00001b4f: PUSH2 0x27d5 00001b52: JUMP 00001b53: JUMPDEST 00001b54: SWAP1 00001b55: SWAP2 00001b56: SSTORE 00001b57: POP 00001b58: PUSH1 0x00 00001b5a: DUP4 00001b5b: DUP2 00001b5c: MSTORE 00001b5d: PUSH1 0x14 00001b5f: PUSH1 0x20 00001b61: MSTORE 00001b62: PUSH1 0x40 00001b64: DUP1 00001b65: DUP3 00001b66: KECCAK256 00001b67: PUSH1 0x02 00001b69: ADD 00001b6a: DUP1 00001b6b: SLOAD 00001b6c: PUSH1 0xff 00001b6e: PUSH1 0x50 00001b70: SHL 00001b71: NOT 00001b72: AND 00001b73: PUSH1 0x01 00001b75: PUSH1 0x50 00001b77: SHL 00001b78: OR 00001b79: SWAP1 00001b7a: SSTORE 00001b7b: DUP4 00001b7c: MLOAD 00001b7d: SWAP1 00001b7e: MLOAD 00001b7f: SWAP1 00001b80: SWAP6 00001b81: POP 00001b82: DUP6 00001b83: SWAP2 00001b84: DUP6 00001b85: SWAP2 00001b86: PUSH1 0x01 00001b88: PUSH1 0x01 00001b8a: PUSH1 0xa0 00001b8c: SHL 00001b8d: SUB 00001b8e: DUP11 00001b8f: AND 00001b90: SWAP2 00001b91: PUSH32 0x7d3d1f4caaa5edea815c2f70589d94440879c198ee4240e2fdf87137d497e19b 00001bb2: SWAP2 00001bb3: LOG4 00001bb4: POP 00001bb5: POP 00001bb6: POP 00001bb7: SWAP3 00001bb8: SWAP2 00001bb9: POP 00001bba: POP 00001bbb: JUMP 00001bbc: JUMPDEST 00001bbd: PUSH1 0x40 00001bbf: MLOAD 00001bc0: PUSH1 0x01 00001bc2: PUSH1 0x01 00001bc4: PUSH1 0xa0 00001bc6: SHL 00001bc7: SUB 00001bc8: DUP4 00001bc9: DUP2 00001bca: AND 00001bcb: PUSH1 0x24 00001bcd: DUP4 00001bce: ADD 00001bcf: MSTORE 00001bd0: PUSH1 0x44 00001bd2: DUP3 00001bd3: ADD 00001bd4: DUP4 00001bd5: SWAP1 00001bd6: MSTORE 00001bd7: PUSH2 0x1bed 00001bda: SWAP2 00001bdb: DUP6 00001bdc: SWAP2 00001bdd: DUP3 00001bde: AND 00001bdf: SWAP1 00001be0: PUSH4 0xa9059cbb 00001be5: SWAP1 00001be6: PUSH1 0x64 00001be8: ADD 00001be9: PUSH2 0x18fa 00001bec: JUMP 00001bed: JUMPDEST 00001bee: POP 00001bef: POP 00001bf0: POP 00001bf1: JUMP 00001bf2: JUMPDEST 00001bf3: PUSH1 0x00 00001bf5: DUP1 00001bf6: DUP1 00001bf7: DUP1 00001bf8: PUSH2 0x1c01 00001bfb: CALLER 00001bfc: DUP7 00001bfd: PUSH2 0x1f1b 00001c00: JUMP 00001c01: JUMPDEST 00001c02: SWAP3 00001c03: POP 00001c04: SWAP3 00001c05: POP 00001c06: SWAP3 00001c07: POP 00001c08: PUSH2 0x1c19 00001c0b: PUSH2 0x1c11 00001c0e: CALLER 00001c0f: SWAP1 00001c10: JUMP 00001c11: JUMPDEST 00001c12: DUP7 00001c13: DUP4 00001c14: DUP6 00001c15: PUSH2 0x20fc 00001c18: JUMP 00001c19: JUMPDEST 00001c1a: POP 00001c1b: SWAP1 00001c1c: SWAP4 00001c1d: SWAP3 00001c1e: POP 00001c1f: POP 00001c20: POP 00001c21: JUMP 00001c22: JUMPDEST 00001c23: PUSH1 0x00 00001c25: DUP3 00001c26: PUSH1 0x01 00001c28: PUSH1 0x01 00001c2a: PUSH1 0xa0 00001c2c: SHL 00001c2d: SUB 00001c2e: AND 00001c2f: DUP3 00001c30: PUSH1 0x40 00001c32: MLOAD 00001c33: PUSH1 0x00 00001c35: PUSH1 0x40 00001c37: MLOAD 00001c38: DUP1 00001c39: DUP4 00001c3a: SUB 00001c3b: DUP2 00001c3c: DUP6 00001c3d: DUP8 00001c3e: GAS 00001c3f: CALL 00001c40: SWAP3 00001c41: POP 00001c42: POP 00001c43: POP 00001c44: RETURNDATASIZE 00001c45: DUP1 00001c46: PUSH1 0x00 00001c48: DUP2 00001c49: EQ 00001c4a: PUSH2 0x1c6f 00001c4d: JUMPI 00001c4e: PUSH1 0x40 00001c50: MLOAD 00001c51: SWAP2 00001c52: POP 00001c53: PUSH1 0x1f 00001c55: NOT 00001c56: PUSH1 0x3f 00001c58: RETURNDATASIZE 00001c59: ADD 00001c5a: AND 00001c5b: DUP3 00001c5c: ADD 00001c5d: PUSH1 0x40 00001c5f: MSTORE 00001c60: RETURNDATASIZE 00001c61: DUP3 00001c62: MSTORE 00001c63: RETURNDATASIZE 00001c64: PUSH1 0x00 00001c66: PUSH1 0x20 00001c68: DUP5 00001c69: ADD 00001c6a: RETURNDATACOPY 00001c6b: PUSH2 0x1c74 00001c6e: JUMP 00001c6f: JUMPDEST 00001c70: PUSH1 0x60 00001c72: SWAP2 00001c73: POP 00001c74: JUMPDEST 00001c75: POP 00001c76: POP 00001c77: SWAP1 00001c78: POP 00001c79: DUP1 00001c7a: PUSH2 0x1bed 00001c7d: JUMPI 00001c7e: PUSH1 0x40 00001c80: MLOAD 00001c81: PUSH3 0x461bcd 00001c85: PUSH1 0xe5 00001c87: SHL 00001c88: DUP2 00001c89: MSTORE 00001c8a: PUSH1 0x20 00001c8c: PUSH1 0x04 00001c8e: DUP3 00001c8f: ADD 00001c90: DUP2 00001c91: SWAP1 00001c92: MSTORE 00001c93: PUSH1 0x24 00001c95: DUP3 00001c96: ADD 00001c97: MSTORE 00001c98: PUSH32 0x626c617a655374616b696e673a657468207472616e73666572206661696c6564 00001cb9: PUSH1 0x44 00001cbb: DUP3 00001cbc: ADD 00001cbd: MSTORE 00001cbe: PUSH1 0x64 00001cc0: ADD 00001cc1: PUSH2 0x084d 00001cc4: JUMP 00001cc5: JUMPDEST 00001cc6: PUSH1 0x01 00001cc8: SLOAD 00001cc9: PUSH1 0x01 00001ccb: PUSH1 0x01 00001ccd: PUSH1 0xa0 00001ccf: SHL 00001cd0: SUB 00001cd1: AND 00001cd2: CALLER 00001cd3: EQ 00001cd4: PUSH2 0x0e1e 00001cd7: JUMPI 00001cd8: PUSH1 0x40 00001cda: MLOAD 00001cdb: PUSH4 0x118cdaa7 00001ce0: PUSH1 0xe0 00001ce2: SHL 00001ce3: DUP2 00001ce4: MSTORE 00001ce5: CALLER 00001ce6: PUSH1 0x04 00001ce8: DUP3 00001ce9: ADD 00001cea: MSTORE 00001ceb: PUSH1 0x24 00001ced: ADD 00001cee: PUSH2 0x084d 00001cf1: JUMP 00001cf2: JUMPDEST 00001cf3: PUSH1 0x02 00001cf5: DUP1 00001cf6: SLOAD 00001cf7: PUSH1 0x01 00001cf9: PUSH1 0x01 00001cfb: PUSH1 0xa0 00001cfd: SHL 00001cfe: SUB 00001cff: NOT 00001d00: AND 00001d01: SWAP1 00001d02: SSTORE 00001d03: PUSH2 0x0e73 00001d06: DUP2 00001d07: PUSH2 0x2206 00001d0a: JUMP 00001d0b: JUMPDEST 00001d0c: PUSH1 0x0b 00001d0e: SLOAD 00001d0f: PUSH1 0x00 00001d11: SWAP1 00001d12: DUP2 00001d13: SWAP1 00001d14: DUP1 00001d15: PUSH2 0x1d6b 00001d18: JUMPI 00001d19: PUSH1 0x40 00001d1b: MLOAD 00001d1c: PUSH3 0x461bcd 00001d20: PUSH1 0xe5 00001d22: SHL 00001d23: DUP2 00001d24: MSTORE 00001d25: PUSH1 0x20 00001d27: PUSH1 0x04 00001d29: DUP3 00001d2a: ADD 00001d2b: MSTORE 00001d2c: PUSH1 0x22 00001d2e: PUSH1 0x24 00001d30: DUP3 00001d31: ADD 00001d32: MSTORE 00001d33: PUSH32 0x626c617a655374616b696e673a4e6f206665657320746f206469737472696275 00001d54: PUSH1 0x44 00001d56: DUP3 00001d57: ADD 00001d58: MSTORE 00001d59: PUSH2 0x7465 00001d5c: PUSH1 0xf0 00001d5e: SHL 00001d5f: PUSH1 0x64 00001d61: DUP3 00001d62: ADD 00001d63: MSTORE 00001d64: PUSH1 0x84 00001d66: ADD 00001d67: PUSH2 0x084d 00001d6a: JUMP 00001d6b: JUMPDEST 00001d6c: PUSH1 0x00 00001d6e: PUSH1 0x0b 00001d70: SSTORE 00001d71: PUSH3 0x0f4240 00001d75: PUSH2 0x1d80 00001d78: PUSH2 0x0ce4 00001d7b: DUP4 00001d7c: PUSH2 0x27ee 00001d7f: JUMP 00001d80: JUMPDEST 00001d81: PUSH2 0x1d8a 00001d84: SWAP2 00001d85: SWAP1 00001d86: PUSH2 0x28ae 00001d89: JUMP 00001d8a: JUMPDEST 00001d8b: SWAP2 00001d8c: POP 00001d8d: PUSH2 0x1d96 00001d90: DUP3 00001d91: DUP3 00001d92: PUSH2 0x2805 00001d95: JUMP 00001d96: JUMPDEST 00001d97: SWAP1 00001d98: POP 00001d99: PUSH1 0x00 00001d9b: PUSH2 0x2710 00001d9e: PUSH2 0x1da9 00001da1: PUSH2 0x0cbd 00001da4: DUP5 00001da5: PUSH2 0x27ee 00001da8: JUMP 00001da9: JUMPDEST 00001daa: PUSH2 0x1db3 00001dad: SWAP2 00001dae: SWAP1 00001daf: PUSH2 0x28ae 00001db2: JUMP 00001db3: JUMPDEST 00001db4: SWAP1 00001db5: POP 00001db6: PUSH1 0x00 00001db8: PUSH2 0x2710 00001dbb: PUSH2 0x1dc6 00001dbe: PUSH2 0x0a30 00001dc1: DUP6 00001dc2: PUSH2 0x27ee 00001dc5: JUMP 00001dc6: JUMPDEST 00001dc7: PUSH2 0x1dd0 00001dca: SWAP2 00001dcb: SWAP1 00001dcc: PUSH2 0x28ae 00001dcf: JUMP 00001dd0: JUMPDEST 00001dd1: SWAP1 00001dd2: POP 00001dd3: PUSH1 0x00 00001dd5: PUSH2 0x2710 00001dd8: PUSH2 0x1de3 00001ddb: PUSH2 0x087e 00001dde: DUP7 00001ddf: PUSH2 0x27ee 00001de2: JUMP 00001de3: JUMPDEST 00001de4: PUSH2 0x1ded 00001de7: SWAP2 00001de8: SWAP1 00001de9: PUSH2 0x28ae 00001dec: JUMP 00001ded: JUMPDEST 00001dee: SWAP1 00001def: POP 00001df0: DUP1 00001df1: PUSH2 0x1dfa 00001df4: DUP4 00001df5: DUP6 00001df6: PUSH2 0x2554 00001df9: JUMP 00001dfa: JUMPDEST 00001dfb: PUSH2 0x1e04 00001dfe: SWAP2 00001dff: SWAP1 00001e00: PUSH2 0x2554 00001e03: JUMP 00001e04: JUMPDEST 00001e05: PUSH2 0x1e0e 00001e08: SWAP1 00001e09: DUP6 00001e0a: PUSH2 0x2805 00001e0d: JUMP 00001e0e: JUMPDEST 00001e0f: SWAP6 00001e10: POP 00001e11: PUSH2 0x1e1b 00001e14: PUSH1 0x08 00001e16: DUP5 00001e17: PUSH2 0x2258 00001e1a: JUMP 00001e1b: JUMPDEST 00001e1c: PUSH2 0x1e26 00001e1f: PUSH1 0x58 00001e21: DUP4 00001e22: PUSH2 0x2258 00001e25: JUMP 00001e26: JUMPDEST 00001e27: PUSH2 0x1e32 00001e2a: PUSH2 0x0120 00001e2d: DUP3 00001e2e: PUSH2 0x2258 00001e31: JUMP 00001e32: JUMPDEST 00001e33: PUSH1 0x40 00001e35: MLOAD 00001e36: DUP5 00001e37: SWAP1 00001e38: CALLER 00001e39: SWAP1 00001e3a: PUSH32 0x55083a582b32208b745a21c8ce4f8d545be8cce1437f34637f08fc9d943eacb0 00001e5b: SWAP1 00001e5c: PUSH1 0x00 00001e5e: SWAP1 00001e5f: LOG3 00001e60: POP 00001e61: POP 00001e62: POP 00001e63: POP 00001e64: SWAP1 00001e65: SWAP2 00001e66: JUMP 00001e67: JUMPDEST 00001e68: PUSH2 0xffff 00001e6b: DUP4 00001e6c: AND 00001e6d: PUSH1 0x00 00001e6f: SWAP1 00001e70: DUP2 00001e71: MSTORE 00001e72: PUSH1 0x0f 00001e74: PUSH1 0x20 00001e76: MSTORE 00001e77: PUSH1 0x40 00001e79: DUP2 00001e7a: KECCAK256 00001e7b: SLOAD 00001e7c: PUSH4 0xffffffff 00001e81: SWAP1 00001e82: DUP2 00001e83: AND 00001e84: SWAP1 00001e85: DUP5 00001e86: AND 00001e87: LT 00001e88: ISZERO 00001e89: PUSH2 0x1e94 00001e8c: JUMPI 00001e8d: POP 00001e8e: PUSH1 0x00 00001e90: PUSH2 0x12a0 00001e93: JUMP 00001e94: JUMPDEST 00001e95: PUSH2 0x1e9d 00001e98: DUP5 00001e99: PUSH2 0x2284 00001e9c: JUMP 00001e9d: JUMPDEST 00001e9e: PUSH2 0xffff 00001ea1: DUP5 00001ea2: AND 00001ea3: PUSH1 0x00 00001ea5: SWAP1 00001ea6: DUP2 00001ea7: MSTORE 00001ea8: PUSH1 0x0d 00001eaa: PUSH1 0x20 00001eac: MSTORE 00001ead: PUSH1 0x40 00001eaf: DUP2 00001eb0: KECCAK256 00001eb1: SLOAD 00001eb2: SWAP1 00001eb3: DUP2 00001eb4: SWAP1 00001eb5: SUB 00001eb6: PUSH2 0x1ec3 00001eb9: JUMPI 00001eba: PUSH1 0x00 00001ebc: SWAP2 00001ebd: POP 00001ebe: POP 00001ebf: PUSH2 0x12a0 00001ec2: JUMP 00001ec3: JUMPDEST 00001ec4: PUSH2 0x1ecf 00001ec7: DUP6 00001ec8: DUP6 00001ec9: DUP6 00001eca: DUP5 00001ecb: PUSH2 0x2337 00001ece: JUMP 00001ecf: JUMPDEST 00001ed0: PUSH2 0xffff 00001ed3: DUP6 00001ed4: AND 00001ed5: PUSH1 0x00 00001ed7: DUP2 00001ed8: DUP2 00001ed9: MSTORE 00001eda: PUSH1 0x0d 00001edc: PUSH1 0x20 00001ede: MSTORE 00001edf: PUSH1 0x40 00001ee1: DUP1 00001ee2: DUP3 00001ee3: KECCAK256 00001ee4: DUP3 00001ee5: SWAP1 00001ee6: SSTORE 00001ee7: MLOAD 00001ee8: DUP4 00001ee9: SWAP3 00001eea: SWAP2 00001eeb: CALLER 00001eec: SWAP2 00001eed: PUSH32 0x330997f7612b0eba67ced5af32716e9afe967ad3b31a80bf6601294e5055feea 00001f0e: SWAP2 00001f0f: SWAP1 00001f10: LOG4 00001f11: POP 00001f12: PUSH1 0x01 00001f14: SWAP5 00001f15: SWAP4 00001f16: POP 00001f17: POP 00001f18: POP 00001f19: POP 00001f1a: JUMP 00001f1b: JUMPDEST 00001f1c: PUSH2 0xffff 00001f1f: DUP2 00001f20: AND 00001f21: PUSH1 0x00 00001f23: SWAP1 00001f24: DUP2 00001f25: MSTORE 00001f26: PUSH1 0x0e 00001f28: PUSH1 0x20 00001f2a: MSTORE 00001f2b: PUSH1 0x40 00001f2d: DUP2 00001f2e: KECCAK256 00001f2f: SLOAD 00001f30: DUP2 00001f31: SWAP1 00001f32: DUP2 00001f33: SWAP1 00001f34: PUSH4 0xffffffff 00001f39: AND 00001f3a: PUSH2 0x1f43 00001f3d: DUP7 00001f3e: DUP7 00001f3f: PUSH2 0x0b2d 00001f42: JUMP 00001f43: JUMPDEST 00001f44: PUSH1 0x01 00001f46: PUSH1 0x01 00001f48: PUSH1 0xa0 00001f4a: SHL 00001f4b: SUB 00001f4c: DUP9 00001f4d: AND 00001f4e: PUSH1 0x00 00001f50: SWAP1 00001f51: DUP2 00001f52: MSTORE 00001f53: PUSH1 0x15 00001f55: PUSH1 0x20 00001f57: MSTORE 00001f58: PUSH1 0x40 00001f5a: SWAP1 00001f5b: KECCAK256 00001f5c: SLOAD 00001f5d: PUSH1 0x01 00001f5f: PUSH1 0x01 00001f61: PUSH1 0x60 00001f63: SHL 00001f64: SUB 00001f65: SWAP1 00001f66: SWAP2 00001f67: AND 00001f68: SWAP5 00001f69: POP 00001f6a: SWAP1 00001f6b: SWAP3 00001f6c: POP 00001f6d: DUP3 00001f6e: JUMPDEST 00001f6f: DUP3 00001f70: PUSH4 0xffffffff 00001f75: AND 00001f76: DUP2 00001f77: PUSH4 0xffffffff 00001f7c: AND 00001f7d: GT 00001f7e: PUSH2 0x208f 00001f81: JUMPI 00001f82: PUSH2 0xffff 00001f85: DUP8 00001f86: AND 00001f87: PUSH1 0x00 00001f89: SWAP1 00001f8a: DUP2 00001f8b: MSTORE 00001f8c: PUSH1 0x10 00001f8e: PUSH1 0x20 00001f90: SWAP1 00001f91: DUP2 00001f92: MSTORE 00001f93: PUSH1 0x40 00001f95: DUP1 00001f96: DUP4 00001f97: KECCAK256 00001f98: PUSH4 0xffffffff 00001f9d: DUP6 00001f9e: DUP2 00001f9f: AND 00001fa0: DUP6 00001fa1: MSTORE 00001fa2: SWAP3 00001fa3: MSTORE 00001fa4: DUP3 00001fa5: KECCAK256 00001fa6: PUSH1 0x01 00001fa8: DUP2 00001fa9: ADD 00001faa: SLOAD 00001fab: SWAP1 00001fac: SLOAD 00001fad: SWAP1 00001fae: SWAP3 00001faf: SWAP2 00001fb0: AND 00001fb1: SWAP1 00001fb2: DUP8 00001fb3: JUMPDEST 00001fb4: DUP6 00001fb5: DUP2 00001fb6: GT 00001fb7: PUSH2 0x2030 00001fba: JUMPI 00001fbb: PUSH1 0x01 00001fbd: PUSH1 0x01 00001fbf: PUSH1 0xa0 00001fc1: SHL 00001fc2: SUB 00001fc3: DUP13 00001fc4: AND 00001fc5: PUSH1 0x00 00001fc7: SWAP1 00001fc8: DUP2 00001fc9: MSTORE 00001fca: PUSH1 0x16 00001fcc: PUSH1 0x20 00001fce: SWAP1 00001fcf: DUP2 00001fd0: MSTORE 00001fd1: PUSH1 0x40 00001fd3: DUP1 00001fd4: DUP4 00001fd5: KECCAK256 00001fd6: DUP5 00001fd7: DUP5 00001fd8: MSTORE 00001fd9: SWAP1 00001fda: SWAP2 00001fdb: MSTORE 00001fdc: SWAP1 00001fdd: KECCAK256 00001fde: SLOAD 00001fdf: PUSH4 0xffffffff 00001fe4: AND 00001fe5: DUP4 00001fe6: LT 00001fe7: PUSH2 0x2018 00001fea: JUMPI 00001feb: PUSH1 0x01 00001fed: PUSH1 0x01 00001fef: PUSH1 0xa0 00001ff1: SHL 00001ff2: SUB 00001ff3: DUP13 00001ff4: AND 00001ff5: PUSH1 0x00 00001ff7: SWAP1 00001ff8: DUP2 00001ff9: MSTORE 00001ffa: PUSH1 0x16 00001ffc: PUSH1 0x20 00001ffe: SWAP1 00001fff: DUP2 00002000: MSTORE 00002001: PUSH1 0x40 00002003: DUP1 00002004: DUP4 00002005: KECCAK256 00002006: DUP5 00002007: DUP5 00002008: MSTORE 00002009: SWAP1 0000200a: SWAP2 0000200b: MSTORE 0000200c: SWAP1 0000200d: KECCAK256 0000200e: PUSH1 0x01 00002010: ADD 00002011: SLOAD 00002012: SWAP2 00002013: POP 00002014: PUSH2 0x201d 00002017: JUMP 00002018: JUMPDEST 00002019: PUSH2 0x2030 0000201c: JUMP 0000201d: JUMPDEST 0000201e: SWAP8 0000201f: POP 00002020: DUP8 00002021: PUSH2 0x2029 00002024: DUP2 00002025: PUSH2 0x27d5 00002028: JUMP 00002029: JUMPDEST 0000202a: SWAP1 0000202b: POP 0000202c: PUSH2 0x1fb3 0000202f: JUMP 00002030: JUMPDEST 00002031: POP 00002032: DUP3 00002033: ISZERO 00002034: DUP1 00002035: ISZERO 00002036: SWAP1 00002037: PUSH2 0x203f 0000203a: JUMPI 0000203b: POP 0000203c: DUP1 0000203d: ISZERO 0000203e: ISZERO 0000203f: JUMPDEST 00002040: ISZERO 00002041: PUSH2 0x206e 00002044: JUMPI 00002045: PUSH8 0x0de0b6b3a7640000 0000204e: PUSH2 0x2057 00002051: DUP5 00002052: DUP4 00002053: PUSH2 0x27ee 00002056: JUMP 00002057: JUMPDEST 00002058: PUSH2 0x2061 0000205b: SWAP2 0000205c: SWAP1 0000205d: PUSH2 0x28ae 00002060: JUMP 00002061: JUMPDEST 00002062: PUSH2 0x206b 00002065: SWAP1 00002066: DUP11 00002067: PUSH2 0x2554 0000206a: JUMP 0000206b: JUMPDEST 0000206c: SWAP9 0000206d: POP 0000206e: JUMPDEST 0000206f: PUSH2 0x2079 00002072: DUP5 00002073: PUSH1 0x01 00002075: PUSH2 0x292c 00002078: JUMP 00002079: JUMPDEST 0000207a: SWAP7 0000207b: POP 0000207c: POP 0000207d: POP 0000207e: POP 0000207f: DUP1 00002080: PUSH2 0x2088 00002083: SWAP1 00002084: PUSH2 0x28e6 00002087: JUMP 00002088: JUMPDEST 00002089: SWAP1 0000208a: POP 0000208b: PUSH2 0x1f6e 0000208e: JUMP 0000208f: JUMPDEST 00002090: POP 00002091: POP 00002092: POP 00002093: SWAP3 00002094: POP 00002095: SWAP3 00002096: POP 00002097: SWAP3 00002098: JUMP 00002099: JUMPDEST 0000209a: PUSH1 0x00 0000209c: PUSH2 0x20ae 0000209f: PUSH1 0x01 000020a1: PUSH1 0x01 000020a3: PUSH1 0xa0 000020a5: SHL 000020a6: SUB 000020a7: DUP5 000020a8: AND 000020a9: DUP4 000020aa: PUSH2 0x23e0 000020ad: JUMP 000020ae: JUMPDEST 000020af: SWAP1 000020b0: POP 000020b1: DUP1 000020b2: MLOAD 000020b3: PUSH1 0x00 000020b5: EQ 000020b6: ISZERO 000020b7: DUP1 000020b8: ISZERO 000020b9: PUSH2 0x20d3 000020bc: JUMPI 000020bd: POP 000020be: DUP1 000020bf: DUP1 000020c0: PUSH1 0x20 000020c2: ADD 000020c3: SWAP1 000020c4: MLOAD 000020c5: DUP2 000020c6: ADD 000020c7: SWAP1 000020c8: PUSH2 0x20d1 000020cb: SWAP2 000020cc: SWAP1 000020cd: PUSH2 0x2977 000020d0: JUMP 000020d1: JUMPDEST 000020d2: ISZERO 000020d3: JUMPDEST 000020d4: ISZERO 000020d5: PUSH2 0x1bed 000020d8: JUMPI 000020d9: PUSH1 0x40 000020db: MLOAD 000020dc: PUSH4 0x5274afe7 000020e1: PUSH1 0xe0 000020e3: SHL 000020e4: DUP2 000020e5: MSTORE 000020e6: PUSH1 0x01 000020e8: PUSH1 0x01 000020ea: PUSH1 0xa0 000020ec: SHL 000020ed: SUB 000020ee: DUP5 000020ef: AND 000020f0: PUSH1 0x04 000020f2: DUP3 000020f3: ADD 000020f4: MSTORE 000020f5: PUSH1 0x24 000020f7: ADD 000020f8: PUSH2 0x084d 000020fb: JUMP 000020fc: JUMPDEST 000020fd: PUSH1 0x01 000020ff: PUSH1 0x01 00002101: PUSH1 0xa0 00002103: SHL 00002104: SUB 00002105: DUP5 00002106: AND 00002107: PUSH1 0x00 00002109: SWAP1 0000210a: DUP2 0000210b: MSTORE 0000210c: PUSH1 0x11 0000210e: PUSH1 0x20 00002110: SWAP1 00002111: DUP2 00002112: MSTORE 00002113: PUSH1 0x40 00002115: DUP1 00002116: DUP4 00002117: KECCAK256 00002118: PUSH2 0xffff 0000211b: DUP8 0000211c: AND 0000211d: DUP5 0000211e: MSTORE 0000211f: SWAP1 00002120: SWAP2 00002121: MSTORE 00002122: SWAP1 00002123: KECCAK256 00002124: SLOAD 00002125: PUSH4 0xffffffff 0000212a: DUP4 0000212b: DUP2 0000212c: AND 0000212d: SWAP2 0000212e: AND 0000212f: EQ 00002130: PUSH2 0x216e 00002133: JUMPI 00002134: PUSH1 0x01 00002136: PUSH1 0x01 00002138: PUSH1 0xa0 0000213a: SHL 0000213b: SUB 0000213c: DUP5 0000213d: AND 0000213e: PUSH1 0x00 00002140: SWAP1 00002141: DUP2 00002142: MSTORE 00002143: PUSH1 0x11 00002145: PUSH1 0x20 00002147: SWAP1 00002148: DUP2 00002149: MSTORE 0000214a: PUSH1 0x40 0000214c: DUP1 0000214d: DUP4 0000214e: KECCAK256 0000214f: PUSH2 0xffff 00002152: DUP8 00002153: AND 00002154: DUP5 00002155: MSTORE 00002156: SWAP1 00002157: SWAP2 00002158: MSTORE 00002159: SWAP1 0000215a: KECCAK256 0000215b: DUP1 0000215c: SLOAD 0000215d: PUSH4 0xffffffff 00002162: NOT 00002163: AND 00002164: PUSH4 0xffffffff 00002169: DUP5 0000216a: AND 0000216b: OR 0000216c: SWAP1 0000216d: SSTORE 0000216e: JUMPDEST 0000216f: PUSH1 0x01 00002171: PUSH1 0x01 00002173: PUSH1 0xa0 00002175: SHL 00002176: SUB 00002177: DUP5 00002178: AND 00002179: PUSH1 0x00 0000217b: SWAP1 0000217c: DUP2 0000217d: MSTORE 0000217e: PUSH1 0x11 00002180: PUSH1 0x20 00002182: SWAP1 00002183: DUP2 00002184: MSTORE 00002185: PUSH1 0x40 00002187: DUP1 00002188: DUP4 00002189: KECCAK256 0000218a: PUSH2 0xffff 0000218d: DUP8 0000218e: AND 0000218f: DUP5 00002190: MSTORE 00002191: SWAP1 00002192: SWAP2 00002193: MSTORE 00002194: SWAP1 00002195: KECCAK256 00002196: SLOAD 00002197: PUSH5 0x0100000000 0000219d: SWAP1 0000219e: DIV 0000219f: PUSH1 0x01 000021a1: PUSH1 0x01 000021a3: PUSH1 0x60 000021a5: SHL 000021a6: SUB 000021a7: AND 000021a8: DUP2 000021a9: EQ 000021aa: PUSH2 0x192c 000021ad: JUMPI 000021ae: PUSH1 0x01 000021b0: PUSH1 0x01 000021b2: PUSH1 0xa0 000021b4: SHL 000021b5: SUB 000021b6: DUP5 000021b7: AND 000021b8: PUSH1 0x00 000021ba: SWAP1 000021bb: DUP2 000021bc: MSTORE 000021bd: PUSH1 0x11 000021bf: PUSH1 0x20 000021c1: SWAP1 000021c2: DUP2 000021c3: MSTORE 000021c4: PUSH1 0x40 000021c6: DUP1 000021c7: DUP4 000021c8: KECCAK256 000021c9: PUSH2 0xffff 000021cc: DUP8 000021cd: AND 000021ce: DUP5 000021cf: MSTORE 000021d0: SWAP1 000021d1: SWAP2 000021d2: MSTORE 000021d3: SWAP1 000021d4: KECCAK256 000021d5: DUP1 000021d6: SLOAD 000021d7: PUSH5 0x0100000000 000021dd: PUSH8 0xffffffffffffffff 000021e6: DUP5 000021e7: AND 000021e8: MUL 000021e9: PUSH16 0xffffffffffffffffffffffff00000000 000021fa: NOT 000021fb: SWAP1 000021fc: SWAP2 000021fd: AND 000021fe: OR 000021ff: SWAP1 00002200: SSTORE 00002201: POP 00002202: POP 00002203: POP 00002204: POP 00002205: JUMP 00002206: JUMPDEST 00002207: PUSH1 0x01 00002209: DUP1 0000220a: SLOAD 0000220b: PUSH1 0x01 0000220d: PUSH1 0x01 0000220f: PUSH1 0xa0 00002211: SHL 00002212: SUB 00002213: DUP4 00002214: DUP2 00002215: AND 00002216: PUSH1 0x01 00002218: PUSH1 0x01 0000221a: PUSH1 0xa0 0000221c: SHL 0000221d: SUB 0000221e: NOT 0000221f: DUP4 00002220: AND 00002221: DUP2 00002222: OR 00002223: SWAP1 00002224: SWAP4 00002225: SSTORE 00002226: PUSH1 0x40 00002228: MLOAD 00002229: SWAP2 0000222a: AND 0000222b: SWAP2 0000222c: SWAP1 0000222d: DUP3 0000222e: SWAP1 0000222f: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00002250: SWAP1 00002251: PUSH1 0x00 00002253: SWAP1 00002254: LOG3 00002255: POP 00002256: POP 00002257: JUMP 00002258: JUMPDEST 00002259: PUSH2 0xffff 0000225c: DUP3 0000225d: AND 0000225e: PUSH1 0x00 00002260: SWAP1 00002261: DUP2 00002262: MSTORE 00002263: PUSH1 0x0d 00002265: PUSH1 0x20 00002267: MSTORE 00002268: PUSH1 0x40 0000226a: DUP2 0000226b: KECCAK256 0000226c: DUP1 0000226d: SLOAD 0000226e: DUP4 0000226f: SWAP3 00002270: SWAP1 00002271: PUSH2 0x227b 00002274: SWAP1 00002275: DUP5 00002276: SWAP1 00002277: PUSH2 0x2554 0000227a: JUMP 0000227b: JUMPDEST 0000227c: SWAP1 0000227d: SWAP2 0000227e: SSTORE 0000227f: POP 00002280: POP 00002281: POP 00002282: POP 00002283: JUMP 00002284: JUMPDEST 00002285: PUSH2 0xffff 00002288: DUP2 00002289: AND 0000228a: PUSH1 0x00 0000228c: SWAP1 0000228d: DUP2 0000228e: MSTORE 0000228f: PUSH1 0x0f 00002291: PUSH1 0x20 00002293: MSTORE 00002294: PUSH1 0x40 00002296: SWAP1 00002297: KECCAK256 00002298: SLOAD 00002299: PUSH1 0x04 0000229b: SLOAD 0000229c: PUSH4 0xffffffff 000022a1: SWAP2 000022a2: DUP3 000022a3: AND 000022a4: SWAP2 000022a5: PUSH1 0x01 000022a7: PUSH1 0xa0 000022a9: SHL 000022aa: SWAP1 000022ab: SWAP2 000022ac: DIV 000022ad: AND 000022ae: DUP2 000022af: DUP2 000022b0: LT 000022b1: PUSH2 0x1bed 000022b4: JUMPI 000022b5: PUSH1 0x00 000022b7: PUSH2 0xffff 000022ba: DUP5 000022bb: AND 000022bc: PUSH2 0x22c5 000022bf: DUP5 000022c0: DUP5 000022c1: PUSH2 0x28c2 000022c4: JUMP 000022c5: JUMPDEST 000022c6: PUSH2 0x22cf 000022c9: SWAP2 000022ca: SWAP1 000022cb: PUSH2 0x2999 000022ce: JUMP 000022cf: JUMPDEST 000022d0: PUSH2 0x22da 000022d3: SWAP1 000022d4: PUSH1 0x01 000022d6: PUSH2 0x292c 000022d9: JUMP 000022da: JUMPDEST 000022db: SWAP1 000022dc: POP 000022dd: PUSH2 0x22ea 000022e0: DUP2 000022e1: PUSH2 0xffff 000022e4: DUP7 000022e5: AND 000022e6: PUSH2 0x29bc 000022e9: JUMP 000022ea: JUMPDEST 000022eb: PUSH2 0xffff 000022ee: DUP6 000022ef: AND 000022f0: PUSH1 0x00 000022f2: SWAP1 000022f3: DUP2 000022f4: MSTORE 000022f5: PUSH1 0x0f 000022f7: PUSH1 0x20 000022f9: MSTORE 000022fa: PUSH1 0x40 000022fc: DUP2 000022fd: KECCAK256 000022fe: DUP1 000022ff: SLOAD 00002300: SWAP1 00002301: SWAP2 00002302: SWAP1 00002303: PUSH2 0x2313 00002306: SWAP1 00002307: DUP5 00002308: SWAP1 00002309: PUSH4 0xffffffff 0000230e: AND 0000230f: PUSH2 0x292c 00002312: JUMP 00002313: JUMPDEST 00002314: SWAP3 00002315: POP 00002316: PUSH2 0x0100 00002319: EXP 0000231a: DUP2 0000231b: SLOAD 0000231c: DUP2 0000231d: PUSH4 0xffffffff 00002322: MUL 00002323: NOT 00002324: AND 00002325: SWAP1 00002326: DUP4 00002327: PUSH4 0xffffffff 0000232c: AND 0000232d: MUL 0000232e: OR 0000232f: SWAP1 00002330: SSTORE 00002331: POP 00002332: POP 00002333: POP 00002334: POP 00002335: POP 00002336: JUMP 00002337: JUMPDEST 00002338: PUSH2 0xffff 0000233b: DUP5 0000233c: AND 0000233d: PUSH1 0x00 0000233f: SWAP1 00002340: DUP2 00002341: MSTORE 00002342: PUSH1 0x0e 00002344: PUSH1 0x20 00002346: MSTORE 00002347: PUSH1 0x40 00002349: DUP2 0000234a: KECCAK256 0000234b: DUP1 0000234c: SLOAD 0000234d: DUP3 0000234e: SWAP1 0000234f: PUSH2 0x235d 00002352: SWAP1 00002353: PUSH4 0xffffffff 00002358: AND 00002359: PUSH2 0x28e6 0000235c: JUMP 0000235d: JUMPDEST 0000235e: SWAP2 0000235f: SWAP1 00002360: PUSH2 0x0100 00002363: EXP 00002364: DUP2 00002365: SLOAD 00002366: DUP2 00002367: PUSH4 0xffffffff 0000236c: MUL 0000236d: NOT 0000236e: AND 0000236f: SWAP1 00002370: DUP4 00002371: PUSH4 0xffffffff 00002376: AND 00002377: MUL 00002378: OR 00002379: SWAP1 0000237a: SSTORE 0000237b: SWAP1 0000237c: POP 0000237d: DUP3 0000237e: PUSH8 0x0de0b6b3a7640000 00002387: DUP4 00002388: PUSH2 0x2391 0000238b: SWAP2 0000238c: SWAP1 0000238d: PUSH2 0x27ee 00002390: JUMP 00002391: JUMPDEST 00002392: PUSH2 0x239b 00002395: SWAP2 00002396: SWAP1 00002397: PUSH2 0x28ae 0000239a: JUMP 0000239b: JUMPDEST 0000239c: PUSH2 0xffff 0000239f: SWAP6 000023a0: SWAP1 000023a1: SWAP6 000023a2: AND 000023a3: PUSH1 0x00 000023a5: SWAP1 000023a6: DUP2 000023a7: MSTORE 000023a8: PUSH1 0x10 000023aa: PUSH1 0x20 000023ac: SWAP1 000023ad: DUP2 000023ae: MSTORE 000023af: PUSH1 0x40 000023b1: DUP1 000023b2: DUP4 000023b3: KECCAK256 000023b4: PUSH4 0xffffffff 000023b9: SWAP5 000023ba: DUP6 000023bb: AND 000023bc: DUP5 000023bd: MSTORE 000023be: SWAP1 000023bf: SWAP2 000023c0: MSTORE 000023c1: SWAP1 000023c2: KECCAK256 000023c3: PUSH1 0x01 000023c5: DUP2 000023c6: ADD 000023c7: SWAP6 000023c8: SWAP1 000023c9: SWAP6 000023ca: SSTORE 000023cb: DUP5 000023cc: SLOAD 000023cd: PUSH4 0xffffffff 000023d2: NOT 000023d3: AND 000023d4: SWAP4 000023d5: AND 000023d6: SWAP3 000023d7: SWAP1 000023d8: SWAP3 000023d9: OR 000023da: SWAP1 000023db: SWAP3 000023dc: SSTORE 000023dd: POP 000023de: POP 000023df: JUMP 000023e0: JUMPDEST 000023e1: PUSH1 0x60 000023e3: PUSH2 0x12a0 000023e6: DUP4 000023e7: DUP4 000023e8: PUSH1 0x00 000023ea: DUP5 000023eb: PUSH1 0x00 000023ed: DUP1 000023ee: DUP6 000023ef: PUSH1 0x01 000023f1: PUSH1 0x01 000023f3: PUSH1 0xa0 000023f5: SHL 000023f6: SUB 000023f7: AND 000023f8: DUP5 000023f9: DUP7 000023fa: PUSH1 0x40 000023fc: MLOAD 000023fd: PUSH2 0x2406 00002400: SWAP2 00002401: SWAP1 00002402: PUSH2 0x29e4 00002405: JUMP 00002406: JUMPDEST 00002407: PUSH1 0x00 00002409: PUSH1 0x40 0000240b: MLOAD 0000240c: DUP1 0000240d: DUP4 0000240e: SUB 0000240f: DUP2 00002410: DUP6 00002411: DUP8 00002412: GAS 00002413: CALL 00002414: SWAP3 00002415: POP 00002416: POP 00002417: POP 00002418: RETURNDATASIZE 00002419: DUP1 0000241a: PUSH1 0x00 0000241c: DUP2 0000241d: EQ 0000241e: PUSH2 0x2443 00002421: JUMPI 00002422: PUSH1 0x40 00002424: MLOAD 00002425: SWAP2 00002426: POP 00002427: PUSH1 0x1f 00002429: NOT 0000242a: PUSH1 0x3f 0000242c: RETURNDATASIZE 0000242d: ADD 0000242e: AND 0000242f: DUP3 00002430: ADD 00002431: PUSH1 0x40 00002433: MSTORE 00002434: RETURNDATASIZE 00002435: DUP3 00002436: MSTORE 00002437: RETURNDATASIZE 00002438: PUSH1 0x00 0000243a: PUSH1 0x20 0000243c: DUP5 0000243d: ADD 0000243e: RETURNDATACOPY 0000243f: PUSH2 0x2448 00002442: JUMP 00002443: JUMPDEST 00002444: PUSH1 0x60 00002446: SWAP2 00002447: POP 00002448: JUMPDEST 00002449: POP 0000244a: SWAP2 0000244b: POP 0000244c: SWAP2 0000244d: POP 0000244e: PUSH2 0x2458 00002451: DUP7 00002452: DUP4 00002453: DUP4 00002454: PUSH2 0x2462 00002457: JUMP 00002458: JUMPDEST 00002459: SWAP7 0000245a: SWAP6 0000245b: POP 0000245c: POP 0000245d: POP 0000245e: POP 0000245f: POP 00002460: POP 00002461: JUMP 00002462: JUMPDEST 00002463: PUSH1 0x60 00002465: DUP3 00002466: PUSH2 0x2477 00002469: JUMPI 0000246a: PUSH2 0x2472 0000246d: DUP3 0000246e: PUSH2 0x24be 00002471: JUMP 00002472: JUMPDEST 00002473: PUSH2 0x12a0 00002476: JUMP 00002477: JUMPDEST 00002478: DUP2 00002479: MLOAD 0000247a: ISZERO 0000247b: DUP1 0000247c: ISZERO 0000247d: PUSH2 0x248e 00002480: JUMPI 00002481: POP 00002482: PUSH1 0x01 00002484: PUSH1 0x01 00002486: PUSH1 0xa0 00002488: SHL 00002489: SUB 0000248a: DUP5 0000248b: AND 0000248c: EXTCODESIZE 0000248d: ISZERO 0000248e: JUMPDEST 0000248f: ISZERO 00002490: PUSH2 0x24b7 00002493: JUMPI 00002494: PUSH1 0x40 00002496: MLOAD 00002497: PUSH4 0x9996b315 0000249c: PUSH1 0xe0 0000249e: SHL 0000249f: DUP2 000024a0: MSTORE 000024a1: PUSH1 0x01 000024a3: PUSH1 0x01 000024a5: PUSH1 0xa0 000024a7: SHL 000024a8: SUB 000024a9: DUP6 000024aa: AND 000024ab: PUSH1 0x04 000024ad: DUP3 000024ae: ADD 000024af: MSTORE 000024b0: PUSH1 0x24 000024b2: ADD 000024b3: PUSH2 0x084d 000024b6: JUMP 000024b7: JUMPDEST 000024b8: POP 000024b9: DUP1 000024ba: PUSH2 0x12a0 000024bd: JUMP 000024be: JUMPDEST 000024bf: DUP1 000024c0: MLOAD 000024c1: ISZERO 000024c2: PUSH2 0x24ce 000024c5: JUMPI 000024c6: DUP1 000024c7: MLOAD 000024c8: DUP1 000024c9: DUP3 000024ca: PUSH1 0x20 000024cc: ADD 000024cd: REVERT 000024ce: JUMPDEST 000024cf: PUSH1 0x40 000024d1: MLOAD 000024d2: PUSH4 0x0a12f521 000024d7: PUSH1 0xe1 000024d9: SHL 000024da: DUP2 000024db: MSTORE 000024dc: PUSH1 0x04 000024de: ADD 000024df: PUSH1 0x40 000024e1: MLOAD 000024e2: DUP1 000024e3: SWAP2 000024e4: SUB 000024e5: SWAP1 000024e6: REVERT 000024e7: JUMPDEST 000024e8: PUSH1 0x40 000024ea: DUP1 000024eb: MLOAD 000024ec: PUSH1 0xc0 000024ee: DUP2 000024ef: ADD 000024f0: DUP3 000024f1: MSTORE 000024f2: PUSH1 0x00 000024f4: DUP1 000024f5: DUP3 000024f6: MSTORE 000024f7: PUSH1 0x20 000024f9: DUP3 000024fa: ADD 000024fb: DUP2 000024fc: SWAP1 000024fd: MSTORE 000024fe: SWAP2 000024ff: DUP2 00002500: ADD 00002501: DUP3 00002502: SWAP1 00002503: MSTORE 00002504: PUSH1 0x60 00002506: DUP2 00002507: ADD 00002508: DUP3 00002509: SWAP1 0000250a: MSTORE 0000250b: PUSH1 0x80 0000250d: DUP2 0000250e: ADD 0000250f: DUP3 00002510: SWAP1 00002511: MSTORE 00002512: SWAP1 00002513: PUSH1 0xa0 00002515: DUP3 00002516: ADD 00002517: SWAP1 00002518: JUMPDEST 00002519: SWAP1 0000251a: MSTORE 0000251b: SWAP1 0000251c: JUMP 0000251d: JUMPDEST 0000251e: PUSH1 0x40 00002520: MLOAD 00002521: DUP1 00002522: PUSH1 0x60 00002524: ADD 00002525: PUSH1 0x40 00002527: MSTORE 00002528: DUP1 00002529: PUSH1 0x00 0000252b: DUP2 0000252c: MSTORE 0000252d: PUSH1 0x20 0000252f: ADD 00002530: PUSH1 0x00 00002532: DUP2 00002533: MSTORE 00002534: PUSH1 0x20 00002536: ADD 00002537: PUSH2 0x2518 0000253a: PUSH2 0x24e7 0000253d: JUMP 0000253e: JUMPDEST 0000253f: PUSH4 0x4e487b71 00002544: PUSH1 0xe0 00002546: SHL 00002547: PUSH1 0x00 00002549: MSTORE 0000254a: PUSH1 0x11 0000254c: PUSH1 0x04 0000254e: MSTORE 0000254f: PUSH1 0x24 00002551: PUSH1 0x00 00002553: REVERT 00002554: JUMPDEST 00002555: DUP1 00002556: DUP3 00002557: ADD 00002558: DUP1 00002559: DUP3 0000255a: GT 0000255b: ISZERO 0000255c: PUSH2 0x0b27 0000255f: JUMPI 00002560: PUSH2 0x0b27 00002563: PUSH2 0x253e 00002566: JUMP 00002567: JUMPDEST 00002568: DUP1 00002569: CALLDATALOAD 0000256a: PUSH1 0x01 0000256c: PUSH1 0x01 0000256e: PUSH1 0xa0 00002570: SHL 00002571: SUB 00002572: DUP2 00002573: AND 00002574: DUP2 00002575: EQ 00002576: PUSH2 0x257e 00002579: JUMPI 0000257a: PUSH1 0x00 0000257c: DUP1 0000257d: REVERT 0000257e: JUMPDEST 0000257f: SWAP2 00002580: SWAP1 00002581: POP 00002582: JUMP 00002583: JUMPDEST 00002584: PUSH1 0x00 00002586: DUP1 00002587: PUSH1 0x40 00002589: DUP4 0000258a: DUP6 0000258b: SUB 0000258c: SLT 0000258d: ISZERO 0000258e: PUSH2 0x2596 00002591: JUMPI 00002592: PUSH1 0x00 00002594: DUP1 00002595: REVERT 00002596: JUMPDEST 00002597: PUSH2 0x259f 0000259a: DUP4 0000259b: PUSH2 0x2567 0000259e: JUMP 0000259f: JUMPDEST 000025a0: SWAP5 000025a1: PUSH1 0x20 000025a3: SWAP4 000025a4: SWAP1 000025a5: SWAP4 000025a6: ADD 000025a7: CALLDATALOAD 000025a8: SWAP4 000025a9: POP 000025aa: POP 000025ab: POP 000025ac: JUMP 000025ad: JUMPDEST 000025ae: PUSH1 0x00 000025b0: DUP1 000025b1: PUSH1 0x40 000025b3: DUP4 000025b4: DUP6 000025b5: SUB 000025b6: SLT 000025b7: ISZERO 000025b8: PUSH2 0x25c0 000025bb: JUMPI 000025bc: PUSH1 0x00 000025be: DUP1 000025bf: REVERT 000025c0: JUMPDEST 000025c1: POP 000025c2: POP 000025c3: DUP1 000025c4: CALLDATALOAD 000025c5: SWAP3 000025c6: PUSH1 0x20 000025c8: SWAP1 000025c9: SWAP2 000025ca: ADD 000025cb: CALLDATALOAD 000025cc: SWAP2 000025cd: POP 000025ce: JUMP 000025cf: JUMPDEST 000025d0: PUSH4 0x4e487b71 000025d5: PUSH1 0xe0 000025d7: SHL 000025d8: PUSH1 0x00 000025da: MSTORE 000025db: PUSH1 0x21 000025dd: PUSH1 0x04 000025df: MSTORE 000025e0: PUSH1 0x24 000025e2: PUSH1 0x00 000025e4: REVERT 000025e5: JUMPDEST 000025e6: PUSH1 0x02 000025e8: DUP2 000025e9: LT 000025ea: PUSH2 0x0e73 000025ed: JUMPI 000025ee: PUSH4 0x4e487b71 000025f3: PUSH1 0xe0 000025f5: SHL 000025f6: PUSH1 0x00 000025f8: MSTORE 000025f9: PUSH1 0x21 000025fb: PUSH1 0x04 000025fd: MSTORE 000025fe: PUSH1 0x24 00002600: PUSH1 0x00 00002602: REVERT 00002603: JUMPDEST 00002604: DUP1 00002605: MLOAD 00002606: DUP3 00002607: MSTORE 00002608: PUSH1 0x20 0000260a: DUP2 0000260b: ADD 0000260c: MLOAD 0000260d: PUSH1 0x20 0000260f: DUP4 00002610: ADD 00002611: MSTORE 00002612: PUSH2 0xffff 00002615: PUSH1 0x40 00002617: DUP3 00002618: ADD 00002619: MLOAD 0000261a: AND 0000261b: PUSH1 0x40 0000261d: DUP4 0000261e: ADD 0000261f: MSTORE 00002620: PUSH1 0x60 00002622: DUP2 00002623: ADD 00002624: MLOAD 00002625: PUSH4 0xffffffff 0000262a: DUP1 0000262b: DUP3 0000262c: AND 0000262d: PUSH1 0x60 0000262f: DUP6 00002630: ADD 00002631: MSTORE 00002632: DUP1 00002633: PUSH1 0x80 00002635: DUP5 00002636: ADD 00002637: MLOAD 00002638: AND 00002639: PUSH1 0x80 0000263b: DUP6 0000263c: ADD 0000263d: MSTORE 0000263e: POP 0000263f: POP 00002640: PUSH1 0xa0 00002642: DUP2 00002643: ADD 00002644: MLOAD 00002645: PUSH2 0x264d 00002648: DUP2 00002649: PUSH2 0x25e5 0000264c: JUMP 0000264d: JUMPDEST 0000264e: DUP1 0000264f: PUSH1 0xa0 00002651: DUP5 00002652: ADD 00002653: MSTORE 00002654: POP 00002655: POP 00002656: POP 00002657: JUMP 00002658: JUMPDEST 00002659: PUSH1 0xc0 0000265b: DUP2 0000265c: ADD 0000265d: PUSH2 0x0b27 00002660: DUP3 00002661: DUP5 00002662: PUSH2 0x2603 00002665: JUMP 00002666: JUMPDEST 00002667: DUP1 00002668: CALLDATALOAD 00002669: PUSH2 0xffff 0000266c: DUP2 0000266d: AND 0000266e: DUP2 0000266f: EQ 00002670: PUSH2 0x257e 00002673: JUMPI 00002674: PUSH1 0x00 00002676: DUP1 00002677: REVERT 00002678: JUMPDEST 00002679: PUSH1 0x00 0000267b: DUP1 0000267c: PUSH1 0x40 0000267e: DUP4 0000267f: DUP6 00002680: SUB 00002681: SLT 00002682: ISZERO 00002683: PUSH2 0x268b 00002686: JUMPI 00002687: PUSH1 0x00 00002689: DUP1 0000268a: REVERT 0000268b: JUMPDEST 0000268c: PUSH2 0x2694 0000268f: DUP4 00002690: PUSH2 0x2567 00002693: JUMP 00002694: JUMPDEST 00002695: SWAP2 00002696: POP 00002697: PUSH2 0x26a2 0000269a: PUSH1 0x20 0000269c: DUP5 0000269d: ADD 0000269e: PUSH2 0x2666 000026a1: JUMP 000026a2: JUMPDEST 000026a3: SWAP1 000026a4: POP 000026a5: SWAP3 000026a6: POP 000026a7: SWAP3 000026a8: SWAP1 000026a9: POP 000026aa: JUMP 000026ab: JUMPDEST 000026ac: PUSH1 0x00 000026ae: DUP1 000026af: PUSH1 0x00 000026b1: PUSH1 0x60 000026b3: DUP5 000026b4: DUP7 000026b5: SUB 000026b6: SLT 000026b7: ISZERO 000026b8: PUSH2 0x26c0 000026bb: JUMPI 000026bc: PUSH1 0x00 000026be: DUP1 000026bf: REVERT 000026c0: JUMPDEST 000026c1: PUSH2 0x26c9 000026c4: DUP5 000026c5: PUSH2 0x2567 000026c8: JUMP 000026c9: JUMPDEST 000026ca: SWAP6 000026cb: PUSH1 0x20 000026cd: DUP6 000026ce: ADD 000026cf: CALLDATALOAD 000026d0: SWAP6 000026d1: POP 000026d2: PUSH1 0x40 000026d4: SWAP1 000026d5: SWAP5 000026d6: ADD 000026d7: CALLDATALOAD 000026d8: SWAP4 000026d9: SWAP3 000026da: POP 000026db: POP 000026dc: POP 000026dd: JUMP 000026de: JUMPDEST 000026df: PUSH1 0x40 000026e1: DUP1 000026e2: DUP3 000026e3: MSTORE 000026e4: DUP4 000026e5: MLOAD 000026e6: DUP3 000026e7: DUP3 000026e8: ADD 000026e9: DUP2 000026ea: SWAP1 000026eb: MSTORE 000026ec: PUSH1 0x00 000026ee: SWAP2 000026ef: SWAP1 000026f0: PUSH1 0x20 000026f2: SWAP1 000026f3: PUSH1 0x60 000026f5: DUP6 000026f6: ADD 000026f7: SWAP1 000026f8: DUP3 000026f9: DUP9 000026fa: ADD 000026fb: DUP6 000026fc: JUMPDEST 000026fd: DUP3 000026fe: DUP2 000026ff: LT 00002700: ISZERO 00002701: PUSH2 0x2736 00002704: JUMPI 00002705: DUP2 00002706: MLOAD 00002707: DUP1 00002708: MLOAD 00002709: DUP6 0000270a: MSTORE 0000270b: DUP6 0000270c: DUP2 0000270d: ADD 0000270e: MLOAD 0000270f: DUP7 00002710: DUP7 00002711: ADD 00002712: MSTORE 00002713: DUP7 00002714: ADD 00002715: MLOAD 00002716: PUSH2 0x2721 00002719: DUP8 0000271a: DUP7 0000271b: ADD 0000271c: DUP3 0000271d: PUSH2 0x2603 00002720: JUMP 00002721: JUMPDEST 00002722: POP 00002723: PUSH2 0x0100 00002726: SWAP4 00002727: SWAP1 00002728: SWAP4 00002729: ADD 0000272a: SWAP3 0000272b: SWAP1 0000272c: DUP5 0000272d: ADD 0000272e: SWAP1 0000272f: PUSH1 0x01 00002731: ADD 00002732: PUSH2 0x26fc 00002735: JUMP 00002736: JUMPDEST 00002737: POP 00002738: POP 00002739: POP 0000273a: DUP1 0000273b: SWAP4 0000273c: POP 0000273d: POP 0000273e: POP 0000273f: POP 00002740: DUP3 00002741: PUSH1 0x20 00002743: DUP4 00002744: ADD 00002745: MSTORE 00002746: SWAP4 00002747: SWAP3 00002748: POP 00002749: POP 0000274a: POP 0000274b: JUMP 0000274c: JUMPDEST 0000274d: PUSH1 0x00 0000274f: PUSH1 0x20 00002751: DUP3 00002752: DUP5 00002753: SUB 00002754: SLT 00002755: ISZERO 00002756: PUSH2 0x275e 00002759: JUMPI 0000275a: PUSH1 0x00 0000275c: DUP1 0000275d: REVERT 0000275e: JUMPDEST 0000275f: PUSH2 0x12a0 00002762: DUP3 00002763: PUSH2 0x2567 00002766: JUMP 00002767: JUMPDEST 00002768: PUSH1 0x20 0000276a: DUP2 0000276b: ADD 0000276c: PUSH2 0x2774 0000276f: DUP4 00002770: PUSH2 0x25e5 00002773: JUMP 00002774: JUMPDEST 00002775: SWAP2 00002776: SWAP1 00002777: MSTORE 00002778: SWAP1 00002779: JUMP 0000277a: JUMPDEST 0000277b: PUSH1 0x00 0000277d: DUP1 0000277e: PUSH1 0x40 00002780: DUP4 00002781: DUP6 00002782: SUB 00002783: SLT 00002784: ISZERO 00002785: PUSH2 0x278d 00002788: JUMPI 00002789: PUSH1 0x00 0000278b: DUP1 0000278c: REVERT 0000278d: JUMPDEST 0000278e: PUSH2 0x2796 00002791: DUP4 00002792: PUSH2 0x2666 00002795: JUMP 00002796: JUMPDEST 00002797: SWAP2 00002798: POP 00002799: PUSH1 0x20 0000279b: DUP4 0000279c: ADD 0000279d: CALLDATALOAD 0000279e: PUSH4 0xffffffff 000027a3: DUP2 000027a4: AND 000027a5: DUP2 000027a6: EQ 000027a7: PUSH2 0x27af 000027aa: JUMPI 000027ab: PUSH1 0x00 000027ad: DUP1 000027ae: REVERT 000027af: JUMPDEST 000027b0: DUP1 000027b1: SWAP2 000027b2: POP 000027b3: POP 000027b4: SWAP3 000027b5: POP 000027b6: SWAP3 000027b7: SWAP1 000027b8: POP 000027b9: JUMP 000027ba: JUMPDEST 000027bb: PUSH1 0x00 000027bd: PUSH1 0x20 000027bf: DUP3 000027c0: DUP5 000027c1: SUB 000027c2: SLT 000027c3: ISZERO 000027c4: PUSH2 0x27cc 000027c7: JUMPI 000027c8: PUSH1 0x00 000027ca: DUP1 000027cb: REVERT 000027cc: JUMPDEST 000027cd: PUSH2 0x12a0 000027d0: DUP3 000027d1: PUSH2 0x2666 000027d4: JUMP 000027d5: JUMPDEST 000027d6: PUSH1 0x00 000027d8: PUSH1 0x01 000027da: DUP3 000027db: ADD 000027dc: PUSH2 0x27e7 000027df: JUMPI 000027e0: PUSH2 0x27e7 000027e3: PUSH2 0x253e 000027e6: JUMP 000027e7: JUMPDEST 000027e8: POP 000027e9: PUSH1 0x01 000027eb: ADD 000027ec: SWAP1 000027ed: JUMP 000027ee: JUMPDEST 000027ef: DUP1 000027f0: DUP3 000027f1: MUL 000027f2: DUP2 000027f3: ISZERO 000027f4: DUP3 000027f5: DUP3 000027f6: DIV 000027f7: DUP5 000027f8: EQ 000027f9: OR 000027fa: PUSH2 0x0b27 000027fd: JUMPI 000027fe: PUSH2 0x0b27 00002801: PUSH2 0x253e 00002804: JUMP 00002805: JUMPDEST 00002806: DUP2 00002807: DUP2 00002808: SUB 00002809: DUP2 0000280a: DUP2 0000280b: GT 0000280c: ISZERO 0000280d: PUSH2 0x0b27 00002810: JUMPI 00002811: PUSH2 0x0b27 00002814: PUSH2 0x253e 00002817: JUMP 00002818: JUMPDEST 00002819: PUSH4 0x4e487b71 0000281e: PUSH1 0xe0 00002820: SHL 00002821: PUSH1 0x00 00002823: MSTORE 00002824: PUSH1 0x41 00002826: PUSH1 0x04 00002828: MSTORE 00002829: PUSH1 0x24 0000282b: PUSH1 0x00 0000282d: REVERT 0000282e: JUMPDEST 0000282f: PUSH4 0x4e487b71 00002834: PUSH1 0xe0 00002836: SHL 00002837: PUSH1 0x00 00002839: MSTORE 0000283a: PUSH1 0x32 0000283c: PUSH1 0x04 0000283e: MSTORE 0000283f: PUSH1 0x24 00002841: PUSH1 0x00 00002843: REVERT 00002844: JUMPDEST 00002845: PUSH1 0x20 00002847: DUP1 00002848: DUP3 00002849: MSTORE 0000284a: PUSH1 0x34 0000284c: SWAP1 0000284d: DUP3 0000284e: ADD 0000284f: MSTORE 00002850: PUSH32 0x626c617a655374616b696e673a6c617374206379636c65206469737472696275 00002871: PUSH1 0x40 00002873: DUP3 00002874: ADD 00002875: MSTORE 00002876: PUSH20 0x1d1a5bdb881859191c995cdcc81b9bdd081cd95d 0000288b: PUSH1 0x62 0000288d: SHL 0000288e: PUSH1 0x60 00002890: DUP3 00002891: ADD 00002892: MSTORE 00002893: PUSH1 0x80 00002895: ADD 00002896: SWAP1 00002897: JUMP 00002898: JUMPDEST 00002899: PUSH4 0x4e487b71 0000289e: PUSH1 0xe0 000028a0: SHL 000028a1: PUSH1 0x00 000028a3: MSTORE 000028a4: PUSH1 0x12 000028a6: PUSH1 0x04 000028a8: MSTORE 000028a9: PUSH1 0x24 000028ab: PUSH1 0x00 000028ad: REVERT 000028ae: JUMPDEST 000028af: PUSH1 0x00 000028b1: DUP3 000028b2: PUSH2 0x28bd 000028b5: JUMPI 000028b6: PUSH2 0x28bd 000028b9: PUSH2 0x2898 000028bc: JUMP 000028bd: JUMPDEST 000028be: POP 000028bf: DIV 000028c0: SWAP1 000028c1: JUMP 000028c2: JUMPDEST 000028c3: PUSH4 0xffffffff 000028c8: DUP3 000028c9: DUP2 000028ca: AND 000028cb: DUP3 000028cc: DUP3 000028cd: AND 000028ce: SUB 000028cf: SWAP1 000028d0: DUP1 000028d1: DUP3 000028d2: GT 000028d3: ISZERO 000028d4: PUSH2 0x28df 000028d7: JUMPI 000028d8: PUSH2 0x28df 000028db: PUSH2 0x253e 000028de: JUMP 000028df: JUMPDEST 000028e0: POP 000028e1: SWAP3 000028e2: SWAP2 000028e3: POP 000028e4: POP 000028e5: JUMP 000028e6: JUMPDEST 000028e7: PUSH1 0x00 000028e9: PUSH4 0xffffffff 000028ee: DUP1 000028ef: DUP4 000028f0: AND 000028f1: DUP2 000028f2: DUP2 000028f3: SUB 000028f4: PUSH2 0x28ff 000028f7: JUMPI 000028f8: PUSH2 0x28ff 000028fb: PUSH2 0x253e 000028fe: JUMP 000028ff: JUMPDEST 00002900: PUSH1 0x01 00002902: ADD 00002903: SWAP4 00002904: SWAP3 00002905: POP 00002906: POP 00002907: POP 00002908: JUMP 00002909: JUMPDEST 0000290a: PUSH1 0x00 0000290c: PUSH4 0xffffffff 00002911: DUP1 00002912: DUP5 00002913: AND 00002914: DUP1 00002915: PUSH2 0x2920 00002918: JUMPI 00002919: PUSH2 0x2920 0000291c: PUSH2 0x2898 0000291f: JUMP 00002920: JUMPDEST 00002921: SWAP3 00002922: AND 00002923: SWAP2 00002924: SWAP1 00002925: SWAP2 00002926: MOD 00002927: SWAP3 00002928: SWAP2 00002929: POP 0000292a: POP 0000292b: JUMP 0000292c: JUMPDEST 0000292d: PUSH4 0xffffffff 00002932: DUP2 00002933: DUP2 00002934: AND 00002935: DUP4 00002936: DUP3 00002937: AND 00002938: ADD 00002939: SWAP1 0000293a: DUP1 0000293b: DUP3 0000293c: GT 0000293d: ISZERO 0000293e: PUSH2 0x28df 00002941: JUMPI 00002942: PUSH2 0x28df 00002945: PUSH2 0x253e 00002948: JUMP 00002949: JUMPDEST 0000294a: PUSH1 0x00 0000294c: DUP1 0000294d: PUSH1 0x00 0000294f: PUSH1 0x60 00002951: DUP5 00002952: DUP7 00002953: SUB 00002954: SLT 00002955: ISZERO 00002956: PUSH2 0x295e 00002959: JUMPI 0000295a: PUSH1 0x00 0000295c: DUP1 0000295d: REVERT 0000295e: JUMPDEST 0000295f: DUP4 00002960: MLOAD 00002961: SWAP3 00002962: POP 00002963: PUSH1 0x20 00002965: DUP5 00002966: ADD 00002967: MLOAD 00002968: SWAP2 00002969: POP 0000296a: PUSH1 0x40 0000296c: DUP5 0000296d: ADD 0000296e: MLOAD 0000296f: SWAP1 00002970: POP 00002971: SWAP3 00002972: POP 00002973: SWAP3 00002974: POP 00002975: SWAP3 00002976: JUMP 00002977: JUMPDEST 00002978: PUSH1 0x00 0000297a: PUSH1 0x20 0000297c: DUP3 0000297d: DUP5 0000297e: SUB 0000297f: SLT 00002980: ISZERO 00002981: PUSH2 0x2989 00002984: JUMPI 00002985: PUSH1 0x00 00002987: DUP1 00002988: REVERT 00002989: JUMPDEST 0000298a: DUP2 0000298b: MLOAD 0000298c: DUP1 0000298d: ISZERO 0000298e: ISZERO 0000298f: DUP2 00002990: EQ 00002991: PUSH2 0x12a0 00002994: JUMPI 00002995: PUSH1 0x00 00002997: DUP1 00002998: REVERT 00002999: JUMPDEST 0000299a: PUSH1 0x00 0000299c: PUSH4 0xffffffff 000029a1: DUP1 000029a2: DUP5 000029a3: AND 000029a4: DUP1 000029a5: PUSH2 0x29b0 000029a8: JUMPI 000029a9: PUSH2 0x29b0 000029ac: PUSH2 0x2898 000029af: JUMP 000029b0: JUMPDEST 000029b1: SWAP3 000029b2: AND 000029b3: SWAP2 000029b4: SWAP1 000029b5: SWAP2 000029b6: DIV 000029b7: SWAP3 000029b8: SWAP2 000029b9: POP 000029ba: POP 000029bb: JUMP 000029bc: JUMPDEST 000029bd: PUSH4 0xffffffff 000029c2: DUP2 000029c3: DUP2 000029c4: AND 000029c5: DUP4 000029c6: DUP3 000029c7: AND 000029c8: MUL 000029c9: DUP1 000029ca: DUP3 000029cb: AND 000029cc: SWAP2 000029cd: SWAP1 000029ce: DUP3 000029cf: DUP2 000029d0: EQ 000029d1: PUSH2 0x29dc 000029d4: JUMPI 000029d5: PUSH2 0x29dc 000029d8: PUSH2 0x253e 000029db: JUMP 000029dc: JUMPDEST 000029dd: POP 000029de: POP 000029df: SWAP3 000029e0: SWAP2 000029e1: POP 000029e2: POP 000029e3: JUMP 000029e4: JUMPDEST 000029e5: PUSH1 0x00 000029e7: DUP3 000029e8: MLOAD 000029e9: PUSH1 0x00 000029eb: JUMPDEST 000029ec: DUP2 000029ed: DUP2 000029ee: LT 000029ef: ISZERO 000029f0: PUSH2 0x2a05 000029f3: JUMPI 000029f4: PUSH1 0x20 000029f6: DUP2 000029f7: DUP7 000029f8: ADD 000029f9: DUP2 000029fa: ADD 000029fb: MLOAD 000029fc: DUP6 000029fd: DUP4 000029fe: ADD 000029ff: MSTORE 00002a00: ADD 00002a01: PUSH2 0x29eb 00002a04: JUMP 00002a05: JUMPDEST 00002a06: POP 00002a07: PUSH1 0x00 00002a09: SWAP3 00002a0a: ADD 00002a0b: SWAP2 00002a0c: DUP3 00002a0d: MSTORE 00002a0e: POP 00002a0f: SWAP2 00002a10: SWAP1 00002a11: POP 00002a12: JUMP 00002a13: INVALID 00002a14: LOG2 00002a15: PUSH5 0x6970667358 00002a1b: UNKNOWN(0x22) 00002a1c: SLT 00002a1d: KECCAK256 00002a1e: ADDRESS 00002a1f: NOT 00002a20: UNKNOWN(0xC5) 00002a21: UNKNOWN(0xF9) 00002a22: UNKNOWN(0xD2) 00002a23: PUSH12 0x888715161e7d35ba0c0d2272 00002a30: MULMOD 00002a31: MLOAD 00002a32: GT 00002a33: COINBASE 00002a34: UNKNOWN(0xD6) 00002a35: UNKNOWN(0x0C) 00002a36: UNKNOWN(0x0D) 00002a37: DUP14 00002a38: PUSH0 00002a39: SWAP9 00002a3a: SWAP6 00002a3b: CHAINID 00002a3c: UNKNOWN(0xBF) 00002a3d: PUSH27
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x69af7ff6e42d477f4a31e9b6b674dd98adfe897394a92127f182bc8a4471bd05
call_targets:
0xbc0043bc5b0c394d9d05d49768f9548f8cf9587b
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x69af7ff6e42d477f4a31e9b6b674dd98adfe897394a92127f182bc8a4471bd05",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xbc0043bc5b0c394d9d05d49768f9548f8cf9587b"
],
"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": "0xcf9a3361",
"selector": "0xcf9a3361",
"calldata_variants": [
"0xcf9a3361",
"0xcf9a33610000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe30c3978",
"selector": "0xe30c3978",
"calldata_variants": [
"0xe30c3978",
"0xe30c39780000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfaa94d3b",
"selector": "0xfaa94d3b",
"calldata_variants": [
"0xfaa94d3b",
"0xfaa94d3b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfbf9529d",
"selector": "0xfbf9529d",
"calldata_variants": [
"0xfbf9529d",
"0xfbf9529d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb92f46cd",
"selector": "0xb92f46cd",
"calldata_variants": [
"0xb92f46cd",
"0xb92f46cd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc0e764cb",
"selector": "0xc0e764cb",
"calldata_variants": [
"0xc0e764cb",
"0xc0e764cb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc36e60a9",
"selector": "0xc36e60a9",
"calldata_variants": [
"0xc36e60a9",
"0xc36e60a90000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 7231,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 9235,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [],
"untrusted_call_count": 2
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x69af7ff6e42d477f4a31e9b6b674dd98adfe897394a92127f182bc8a4471bd05
call_targets:
0xbc0043bc5b0c394d9d05d49768f9548f8cf9587b
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x69af7ff6e42d477f4a31e9b6b674dd98adfe897394a92127f182bc8a4471bd05",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xbc0043bc5b0c394d9d05d49768f9548f8cf9587b"
],
"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": "0xcf9a3361",
"selector": "0xcf9a3361",
"calldata_variants": [
"0xcf9a3361",
"0xcf9a33610000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe30c3978",
"selector": "0xe30c3978",
"calldata_variants": [
"0xe30c3978",
"0xe30c39780000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfaa94d3b",
"selector": "0xfaa94d3b",
"calldata_variants": [
"0xfaa94d3b",
"0xfaa94d3b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfbf9529d",
"selector": "0xfbf9529d",
"calldata_variants": [
"0xfbf9529d",
"0xfbf9529d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb92f46cd",
"selector": "0xb92f46cd",
"calldata_variants": [
"0xb92f46cd",
"0xb92f46cd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc0e764cb",
"selector": "0xc0e764cb",
"calldata_variants": [
"0xc0e764cb",
"0xc0e764cb0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc36e60a9",
"selector": "0xc36e60a9",
"calldata_variants": [
"0xc36e60a9",
"0xc36e60a90000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 7231,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 9235,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": []
}
|
| medium | access_control | codex | Anyone can end another user’s matured stake, cutting off their future rewards | 75 | no | — |
viewevidence_json{
"evidence": "`unstakeBlaze` is `external` and accepts an arbitrary `__user`, then calls `_unstakeBlaze` without checking caller identity.",
"locations": [
"contracts/blazeStaking.sol:139"
],
"recommendation": "Restrict `unstakeBlaze` to the stake owner (e.g., `require(msg.sender == __user)`), or add explicit operator approvals if third\u2011party unstaking is intended.",
"exploit_scenario": "An attacker monitors for stakes that just reached maturity and calls `unstakeBlaze(victim, stakeId)`. This immediately marks the stake completed and transfers the principal to the victim, but it also removes the victim\u2019s shares from future reward distributions, effectively griefing them and potentially causing missed cycle rewards."
}
|
| low | other | codex | Share/accounting assumes full token transfer; deflationary tokens can break invariants | 65 | no | — |
viewevidence_json{
"evidence": "Shares and totals are updated using `__blazeAmount` before calling `safeTransferFrom`, and unstake returns the originally recorded amount.",
"locations": [
"contracts/blazeStaking.sol:126",
"contracts/blazeStaking.sol:134"
],
"recommendation": "Either restrict `_blazeToken` to non\u2011fee\u2011on\u2011transfer tokens or compute the actual received amount by comparing balances before/after `safeTransferFrom`, then base shares and totals on the received value.",
"exploit_scenario": "If the staking token charges transfer fees or is deflationary, the contract credits shares and `_totalBlazeTokenStaked` based on the requested `__blazeAmount`, but receives fewer tokens. This can make the contract insolvent and misallocate rewards, and may revert on unstake due to insufficient balance."
}
|