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

Analysis Run

614e8405-f6c9-4781-bd65-282f3a654a08

complete
Chain ID
1
Address
Block Number
Created
Wed, Dec 24, 2025 1:05 AM
Review Summary

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30159 report.consolidate complete 1 / 1 3 months ago
93553 artifact.fetch complete 1 / 3 1 week ago
93554 tool.cast_disasm complete 1 / 3 1 week ago
93555 analysis.bundle complete 1 / 3 1 week ago
93556 capability.graph complete 1 / 3 1 week ago
93557 detector.run complete 1 / 3 1 week ago
93558 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
1
No findings?
no
Summary
Found a reentrancy risk in ActivePool’s interest minting flow where external calls occur before state updates, which can allow repeated interest minting if the callee reenters.
View stderr
[codex:1315957] OpenAI Codex v0.77.0 (research preview)
[codex:1315957] --------
[codex:1315957] workdir: /tmp/codex-multi-rn2msm4b
[codex:1315957] model: gpt-5.2-codex
[codex:1315957] provider: openai
[codex:1315957] approval: never
[codex:1315957] sandbox: read-only
[codex:1315957] reasoning effort: none
[codex:1315957] reasoning summaries: auto
[codex:1315957] session id: 019b4de2-f32a-7900-83ec-398aea79b381
[codex:1315957] --------
[codex:1315957] user
[codex:1315957] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1315957] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1315957] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1315957] 
[codex:1315957] Scope rules:
[codex:1315957] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1315957] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1315957] 
[codex:1315957] Output MUST be valid JSON matching the provided schema.
[codex:1315957] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1315957] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1315957] 
[codex:1315957] Output constraints (IMPORTANT):
[codex:1315957] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1315957] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1315957] mcp startup: no servers
[codex:1315957] 
[codex:1315957] thinking
[codex:1315957] **Reading AUDIT_BUNDLE using shell**
[codex:1315957] exec
[codex:1315957] /bin/bash -lc ls in /tmp/codex-multi-rn2msm4b succeeded in 5ms:
[codex:1315957] AUDIT_BUNDLE.txt
[codex:1315957] codex-output-schema.json
[codex:1315957] contracts
[codex:1315957] exec
[codex:1315957] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-rn2msm4b succeeded in 6ms:
[codex:1315957] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1315957] 
[codex:1315957] ================================================================================
[codex:1315957] FILE: contracts/lib/Solady/src/utils/LibString.sol
[codex:1315957] ================================================================================
[codex:1315957] // SPDX-License-Identifier: MIT
[codex:1315957] pragma solidity ^0.8.4;
[codex:1315957] 
[codex:1315957] /// @notice Library for converting numbers into strings and other string operations.
[codex:1315957] /// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibString.sol)
[codex:1315957] /// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/LibString.sol)
[codex:1315957] ///
[codex:1315957] /// @dev Note:
[codex:1315957] /// For performance and bytecode compactness, most of the string operations are restricted to
[codex:1315957] /// byte strings (7-bit ASCII), except where otherwise specified.
[codex:1315957] /// Usage of byte string operations on charsets with runes spanning two or more bytes
[codex:1315957] /// can lead to undefined behavior.
[codex:1315957] library LibString {
[codex:1315957]     /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
[codex:1315957]     /*                        CUSTOM ERRORS                       */
[codex:1315957] 
[codex:1315957] thinking
[codex:1315957] **Focusing on first-party contracts**
[codex:1315957] exec
[codex:1315957] /bin/bash -lc 'rg -n "FILE: contracts/src" AUDIT_BUNDLE.txt' in /tmp/codex-multi-rn2msm4b succeeded in 6ms:
[codex:1315957] 2664:FILE: contracts/src/ActivePool.sol
[codex:1315957] 3013:FILE: contracts/src/Dependencies/Constants.sol
[codex:1315957] 3106:FILE: contracts/src/Interfaces/IActivePool.sol
[codex:1315957] 3156:FILE: contracts/src/Interfaces/IAddRemoveManagers.sol
[codex:1315957] 3171:FILE: contracts/src/Interfaces/IAddressesRegistry.sol
[codex:1315957] 3245:FILE: contracts/src/Interfaces/IBoldRewardsReceiver.sol
[codex:1315957] 3256:FILE: contracts/src/Interfaces/IBoldToken.sol
[codex:1315957] 3286:FILE: contracts/src/Interfaces/IBorrowerOperations.sol
[codex:1315957] 3464:FILE: contracts/src/Interfaces/ICollSurplusPool.sol
[codex:1315957] 3481:FILE: contracts/src/Interfaces/ICollateralRegistry.sol
[codex:1315957] 3511:FILE: contracts/src/Interfaces/IDefaultPool.sol
[codex:1315957] 3531:FILE: contracts/src/Interfaces/IHintHelpers.sol
[codex:1315957] 3576:FILE: contracts/src/Interfaces/IInterestRouter.sol
[codex:1315957] 3587:FILE: contracts/src/Interfaces/ILiquityBase.sol
[codex:1315957] 3604:FILE: contracts/src/Interfaces/IMultiTroveGetter.sol
[codex:1315957] 3648:FILE: contracts/src/Interfaces/IPriceFeed.sol
[codex:1315957] 3661:FILE: contracts/src/Interfaces/ISortedTroves.sol
[codex:1315957] 3719:FILE: contracts/src/Interfaces/IStabilityPool.sol
[codex:1315957] 3832:FILE: contracts/src/Interfaces/ITroveManager.sol
[codex:1315957] 4010:FILE: contracts/src/Interfaces/ITroveNFT.sol
[codex:1315957] 
[codex:1315957] thinking
[codex:1315957] **Inspecting ActivePool contract**
[codex:1315957] exec
[codex:1315957] /bin/bash -lc "sed -n '2664,3012p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-rn2msm4b succeeded in 6ms:
[codex:1315957] FILE: contracts/src/ActivePool.sol
[codex:1315957] ================================================================================
[codex:1315957] // SPDX-License-Identifier: BUSL-1.1
[codex:1315957] 
[codex:1315957] pragma solidity 0.8.24;
[codex:1315957] 
[codex:1315957] import "openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1315957] import "openzeppelin-contracts/contracts/utils/math/Math.sol";
[codex:1315957] 
[codex:1315957] import "./Dependencies/Constants.sol";
[codex:1315957] import "./Interfaces/IActivePool.sol";
[codex:1315957] import "./Interfaces/IAddressesRegistry.sol";
[codex:1315957] import "./Interfaces/IBoldToken.sol";
[codex:1315957] import "./Interfaces/IInterestRouter.sol";
[codex:1315957] import "./Interfaces/IDefaultPool.sol";
[codex:1315957] 
[codex:1315957] /*
[codex:1315957]  * The Active Pool holds the collateral and Bold debt (but not Bold tokens) for all active troves.
[codex:1315957]  *
[codex:1315957]  * When a trove is liquidated, it's Coll and Bold debt are transferred from the Active Pool, to either the
[codex:1315957] 
[codex:1315957] thinking
[codex:1315957] **Analyzing ActivePool for reentrancy risks**
[codex:1315957] 
[codex:1315957] I'm examining ActivePool as the main contract with external calls that could mean reentrancy vulnerabilities, especially via the boldToken minting and stabilityPool interactions. The key issue seems to be external calls happening before state updates like lastAggUpdateTime, which might allow repeated minting. I’m also assessing related system contracts like defaultPool and borrowerOperations to understand trust boundaries and potential exploits. This requires careful attention to call sequences and authorization checks.
[codex:1315957] exec
[codex:1315957] /bin/bash -lc "sed -n '3719,3831p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-rn2msm4b succeeded in 6ms:
[codex:1315957] FILE: contracts/src/Interfaces/IStabilityPool.sol
[codex:1315957] ================================================================================
[codex:1315957] // SPDX-License-Identifier: MIT
[codex:1315957] 
[codex:1315957] pragma solidity ^0.8.0;
[codex:1315957] 
[codex:1315957] import "./IActivePool.sol";
[codex:1315957] import "./ILiquityBase.sol";
[codex:1315957] import "./IBoldToken.sol";
[codex:1315957] import "./ITroveManager.sol";
[codex:1315957] import "./IBoldRewardsReceiver.sol";
[codex:1315957] 
[codex:1315957] /*
[codex:1315957]  * The Stability Pool holds Bold tokens deposited by Stability Pool depositors.
[codex:1315957]  *
[codex:1315957]  * When a trove is liquidated, then depending on system conditions, some of its Bold debt gets offset with
[codex:1315957]  * Bold in the Stability Pool:  that is, the offset debt evaporates, and an equal amount of Bold tokens in the Stability Pool is burned.
[codex:1315957]  *
[codex:1315957]  * Thus, a liquidation causes each depositor to receive a Bold loss, in proportion to their deposit as a share of total deposits.
[codex:1315957]  * They also receive an Coll gain, as the collateral of the liquidated trove is distributed among Stability depositors,
[codex:1315957] 
[codex:1315957] thinking
[codex:1315957] **Identifying reentrancy concerns**
[codex:1315957] exec
[codex:1315957] /bin/bash -lc "sed -n '3245,3285p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-rn2msm4b succeeded in 6ms:
[codex:1315957] FILE: contracts/src/Interfaces/IBoldRewardsReceiver.sol
[codex:1315957] ================================================================================
[codex:1315957] // SPDX-License-Identifier: MIT
[codex:1315957] 
[codex:1315957] pragma solidity ^0.8.0;
[codex:1315957] 
[codex:1315957] interface IBoldRewardsReceiver {
[codex:1315957]     function triggerBoldRewards(uint256 _boldYield) external;
[codex:1315957] }
[codex:1315957] 
[codex:1315957] ================================================================================
[codex:1315957] FILE: contracts/src/Interfaces/IBoldToken.sol
[codex:1315957] ================================================================================
[codex:1315957] // SPDX-License-Identifier: MIT
[codex:1315957] 
[codex:1315957] pragma solidity ^0.8.0;
[codex:1315957] 
[codex:1315957] import "openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol";
[codex:1315957] import "openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol";
[codex:1315957] import "openzeppelin-contracts/contracts/interfaces/IERC5267.sol";
[codex:1315957] 
[codex:1315957] thinking
[codex:1315957] **Considering locations for potential issues**
[codex:1315957] exec
[codex:1315957] /bin/bash -lc "nl -ba contracts/src/ActivePool.sol | sed -n '1,240p'" in /tmp/codex-multi-rn2msm4b succeeded in 6ms:
[codex:1315957]      1	// SPDX-License-Identifier: BUSL-1.1
[codex:1315957]      2	
[codex:1315957]      3	pragma solidity 0.8.24;
[codex:1315957]      4	
[codex:1315957]      5	import "openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1315957]      6	import "openzeppelin-contracts/contracts/utils/math/Math.sol";
[codex:1315957]      7	
[codex:1315957]      8	import "./Dependencies/Constants.sol";
[codex:1315957]      9	import "./Interfaces/IActivePool.sol";
[codex:1315957]     10	import "./Interfaces/IAddressesRegistry.sol";
[codex:1315957]     11	import "./Interfaces/IBoldToken.sol";
[codex:1315957]     12	import "./Interfaces/IInterestRouter.sol";
[codex:1315957]     13	import "./Interfaces/IDefaultPool.sol";
[codex:1315957]     14	
[codex:1315957]     15	/*
[codex:1315957]     16	 * The Active Pool holds the collateral and Bold debt (but not Bold tokens) for all active troves.
[codex:1315957]     17	 *
[codex:1315957]     18	 * When a trove is liquidated, it's Coll and Bold debt are transferred from the Active Pool, to either the
[codex:1315957]     19	 * Stability Pool, the Default Pool, or both, depending on the liquidation conditions.
[codex:1315957]     20	 *
[codex:1315957] exec
[codex:1315957] /bin/bash -lc "nl -ba contracts/src/ActivePool.sol | sed -n '240,420p'" in /tmp/codex-multi-rn2msm4b succeeded in 6ms:
[codex:1315957]    240	        aggWeightedDebtSum = newAggWeightedDebtSum; // 1 SSTORE
[codex:1315957]    241	    }
[codex:1315957]    242	
[codex:1315957]    243	    function mintAggInterest() external override {
[codex:1315957]    244	        _requireCallerIsBOorSP();
[codex:1315957]    245	        aggRecordedDebt += _mintAggInterest(0);
[codex:1315957]    246	    }
[codex:1315957]    247	
[codex:1315957]    248	    function _mintAggInterest(uint256 _upfrontFee) internal returns (uint256 mintedAmount) {
[codex:1315957]    249	        mintedAmount = calcPendingAggInterest() + _upfrontFee;
[codex:1315957]    250	
[codex:1315957]    251	        // Mint part of the BOLD interest to the SP and part to the router for LPs.
[codex:1315957]    252	        if (mintedAmount > 0) {
[codex:1315957]    253	            uint256 spYield = SP_YIELD_SPLIT * mintedAmount / DECIMAL_PRECISION;
[codex:1315957]    254	            uint256 remainderToLPs = mintedAmount - spYield;
[codex:1315957]    255	
[codex:1315957]    256	            boldToken.mint(address(interestRouter), remainderToLPs);
[codex:1315957]    257	
[codex:1315957]    258	            if (spYield > 0) {
[codex:1315957]    259	                boldToken.mint(address(stabilityPool), spYield);
[codex:1315957] 
[codex:1315957] thinking
[codex:1315957] **Generating JSON schema for reentrancy finding**
[codex:1315957] codex
[codex:1315957] {"no_findings":false,"summary":"Found a reentrancy risk in ActivePool’s interest minting flow where external calls occur before state updates, which can allow repeated interest minting if the callee reenters.","findings":[{"severity":"medium","category":"reentrancy","title":"Interest can be minted multiple times via reentrancy before lastAggUpdateTime is updated","exploit_scenario":"If the StabilityPool implementation (or another authorized caller) reenters during `stabilityPool.triggerBoldRewards` inside `_mintAggInterest`, it can call `mintAggInterest()` or `mintAggInterestAndAccountForTroveChange()` again before `lastAggUpdateTime` is set. Because `calcPendingAggInterest()` still uses the old timestamp, the same interest window can be minted repeatedly, inflating BOLD supply and recorded debt.","recommendation":"Apply checks-effects-interactions: update `lastAggUpdateTime` (and any other relevant aggregate state) before external calls, or add a reentrancy guard to `mintAggInterest`/`mintAggInterestAndAccountForTroveChange`. Alternatively, split reward distribution so external calls happen after all state updates.","evidence":"`_mintAggInterest` performs `boldToken.mint(...)` and `stabilityPool.triggerBoldRewards(...)` before setting `lastAggUpdateTime = block.timestamp`.","locations":["contracts/src/ActivePool.sol:248","contracts/src/ActivePool.sol:256","contracts/src/ActivePool.sol:259","contracts/src/ActivePool.sol:264"]}]}
[codex:1315957] tokens used
[codex:1315957] 29,443
[codex:1315957] {"no_findings":false,"summary":"Found a reentrancy risk in ActivePool’s interest minting flow where external calls occur before state updates, which can allow repeated interest minting if the callee reenters.","findings":[{"severity":"medium","category":"reentrancy","title":"Interest can be minted multiple times via reentrancy before lastAggUpdateTime is updated","exploit_scenario":"If the StabilityPool implementation (or another authorized caller) reenters during `stabilityPool.triggerBoldRewards` inside `_mintAggInterest`, it can call `mintAggInterest()` or `mintAggInterestAndAccountForTroveChange()` again before `lastAggUpdateTime` is set. Because `calcPendingAggInterest()` still uses the old timestamp, the same interest window can be minted repeatedly, inflating BOLD supply and recorded debt.","recommendation":"Apply checks-effects-interactions: update `lastAggUpdateTime` (and any other relevant aggregate state) before external calls, or add a reentrancy guard to `mintAggInterest`/`mintAggInterestAndAccountForTroveChange`. Alternatively, split reward distribution so external calls happen after all state updates.","evidence":"`_mintAggInterest` performs `boldToken.mint(...)` and `stabilityPool.triggerBoldRewards(...)` before setting `lastAggUpdateTime = block.timestamp`.","locations":["contracts/src/ActivePool.sol:248","contracts/src/ActivePool.sol:256","contracts/src/ActivePool.sol:259","contracts/src/ActivePool.sol:264"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-24T01:05:37.637602+00:00",
        "returncode": 0
    },
    "summary": "Found a reentrancy risk in ActivePool\u2019s interest minting flow where external calls occur before state updates, which can allow repeated interest minting if the callee reenters.",
    "raw_final": {
        "summary": "Found a reentrancy risk in ActivePool\u2019s interest minting flow where external calls occur before state updates, which can allow repeated interest minting if the callee reenters.",
        "findings": [
            {
                "title": "Interest can be minted multiple times via reentrancy before lastAggUpdateTime is updated",
                "category": "reentrancy",
                "evidence": "`_mintAggInterest` performs `boldToken.mint(...)` and `stabilityPool.triggerBoldRewards(...)` before setting `lastAggUpdateTime = block.timestamp`.",
                "severity": "medium",
                "locations": [
                    "contracts/src/ActivePool.sol:248",
                    "contracts/src/ActivePool.sol:256",
                    "contracts/src/ActivePool.sol:259",
                    "contracts/src/ActivePool.sol:264"
                ],
                "recommendation": "Apply checks-effects-interactions: update `lastAggUpdateTime` (and any other relevant aggregate state) before external calls, or add a reentrancy guard to `mintAggInterest`/`mintAggInterestAndAccountForTroveChange`. Alternatively, split reward distribution so external calls happen after all state updates.",
                "exploit_scenario": "If the StabilityPool implementation (or another authorized caller) reenters during `stabilityPool.triggerBoldRewards` inside `_mintAggInterest`, it can call `mintAggInterest()` or `mintAggInterestAndAccountForTroveChange()` again before `lastAggUpdateTime` is set. Because `calcPendingAggInterest()` still uses the old timestamp, the same interest window can be minted repeatedly, inflating BOLD supply and recorded debt."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
6
EXT*/BALANCE
7
Total opcodes
2908
Flags
heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLVALUE
00000006: DUP1
00000007: ISZERO
00000008: PUSH2 0x000f
0000000b: JUMPI
0000000c: PUSH0
0000000d: DUP1
0000000e: REVERT
0000000f: JUMPDEST
00000010: POP
00000011: PUSH1 0x04
00000013: CALLDATASIZE
00000014: LT
00000015: PUSH2 0x01d1
00000018: JUMPI
00000019: PUSH0
0000001a: CALLDATALOAD
0000001b: PUSH1 0xe0
0000001d: SHR
0000001e: DUP1
0000001f: PUSH4 0x71d4eb21
00000024: GT
00000025: PUSH2 0x00fe
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xaac1846f
0000002f: GT
00000030: PUSH2 0x009e
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xd0ee2ace
0000003a: GT
0000003b: PUSH2 0x006e
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xd0ee2ace
00000045: EQ
00000046: PUSH2 0x0408
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xdd9fbcb8
00000050: EQ
00000051: PUSH2 0x042f
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xf6e413f5
0000005b: EQ
0000005c: PUSH2 0x0442
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0xfa160c05
00000066: EQ
00000067: PUSH2 0x044b
0000006a: JUMPI
0000006b: PUSH0
0000006c: DUP1
0000006d: REVERT
0000006e: JUMPDEST
0000006f: DUP1
00000070: PUSH4 0xaac1846f
00000075: EQ
00000076: PUSH2 0x039e
00000079: JUMPI
0000007a: DUP1
0000007b: PUSH4 0xac8bbc49
00000080: EQ
00000081: PUSH2 0x03c5
00000084: JUMPI
00000085: DUP1
00000086: PUSH4 0xb7f8cf9b
0000008b: EQ
0000008c: PUSH2 0x03ce
0000008f: JUMPI
00000090: DUP1
00000091: PUSH4 0xc2283f1f
00000096: EQ
00000097: PUSH2 0x03f5
0000009a: JUMPI
0000009b: PUSH0
0000009c: DUP1
0000009d: REVERT
0000009e: JUMPDEST
0000009f: DUP1
000000a0: PUSH4 0x85fe37a3
000000a5: GT
000000a6: PUSH2 0x00d9
000000a9: JUMPI
000000aa: DUP1
000000ab: PUSH4 0x85fe37a3
000000b0: EQ
000000b1: PUSH2 0x0339
000000b4: JUMPI
000000b5: DUP1
000000b6: PUSH4 0x8d5c1d4c
000000bb: EQ
000000bc: PUSH2 0x034c
000000bf: JUMPI
000000c0: DUP1
000000c1: PUSH4 0x9f4e511e
000000c6: EQ
000000c7: PUSH2 0x0355
000000ca: JUMPI
000000cb: DUP1
000000cc: PUSH4 0xa3f4df7e
000000d1: EQ
000000d2: PUSH2 0x0368
000000d5: JUMPI
000000d6: PUSH0
000000d7: DUP1
000000d8: REVERT
000000d9: JUMPDEST
000000da: DUP1
000000db: PUSH4 0x71d4eb21
000000e0: EQ
000000e1: PUSH2 0x030a
000000e4: JUMPI
000000e5: DUP1
000000e6: PUSH4 0x759f9dec
000000eb: EQ
000000ec: PUSH2 0x031d
000000ef: JUMPI
000000f0: DUP1
000000f1: PUSH4 0x83b60e4d
000000f6: EQ
000000f7: PUSH2 0x0326
000000fa: JUMPI
000000fb: PUSH0
000000fc: DUP1
000000fd: REVERT
000000fe: JUMPDEST
000000ff: DUP1
00000100: PUSH4 0x3db6c94a
00000105: GT
00000106: PUSH2 0x0174
00000109: JUMPI
0000010a: DUP1
0000010b: PUSH4 0x58569081
00000110: GT
00000111: PUSH2 0x0144
00000114: JUMPI
00000115: DUP1
00000116: PUSH4 0x58569081
0000011b: EQ
0000011c: PUSH2 0x02ab
0000011f: JUMPI
00000120: DUP1
00000121: PUSH4 0x5a4d28bb
00000126: EQ
00000127: PUSH2 0x02b4
0000012a: JUMPI
0000012b: DUP1
0000012c: PUSH4 0x630afce5
00000131: EQ
00000132: PUSH2 0x02db
00000135: JUMPI
00000136: DUP1
00000137: PUSH4 0x6d8f962d
0000013c: EQ
0000013d: PUSH2 0x0302
00000140: JUMPI
00000141: PUSH0
00000142: DUP1
00000143: REVERT
00000144: JUMPDEST
00000145: DUP1
00000146: PUSH4 0x3db6c94a
0000014b: EQ
0000014c: PUSH2 0x028a
0000014f: JUMPI
00000150: DUP1
00000151: PUSH4 0x42635a95
00000156: EQ
00000157: PUSH2 0x0292
0000015a: JUMPI
0000015b: DUP1
0000015c: PUSH4 0x45507998
00000161: EQ
00000162: PUSH2 0x029b
00000165: JUMPI
00000166: DUP1
00000167: PUSH4 0x4ba89fa1
0000016c: EQ
0000016d: PUSH2 0x02a3
00000170: JUMPI
00000171: PUSH0
00000172: DUP1
00000173: REVERT
00000174: JUMPDEST
00000175: DUP1
00000176: PUSH4 0x10a985c1
0000017b: GT
0000017c: PUSH2 0x01af
0000017f: JUMPI
00000180: DUP1
00000181: PUSH4 0x10a985c1
00000186: EQ
00000187: PUSH2 0x023d
0000018a: JUMPI
0000018b: DUP1
0000018c: PUSH4 0x1bfa0d7b
00000191: EQ
00000192: PUSH2 0x0246
00000195: JUMPI
00000196: DUP1
00000197: PUSH4 0x2bcbcbcb
0000019c: EQ
0000019d: PUSH2 0x0250
000001a0: JUMPI
000001a1: DUP1
000001a2: PUSH4 0x31b8c946
000001a7: EQ
000001a8: PUSH2 0x0263
000001ab: JUMPI
000001ac: PUSH0
000001ad: DUP1
000001ae: REVERT
000001af: JUMPDEST
000001b0: DUP1
000001b1: PUSH4 0x0367b302
000001b6: EQ
000001b7: PUSH2 0x01d5
000001ba: JUMPI
000001bb: DUP1
000001bc: PUSH4 0x048c661d
000001c1: EQ
000001c2: PUSH2 0x01eb
000001c5: JUMPI
000001c6: DUP1
000001c7: PUSH4 0x06ff8dfb
000001cc: EQ
000001cd: PUSH2 0x022a
000001d0: JUMPI
000001d1: JUMPDEST
000001d2: PUSH0
000001d3: DUP1
000001d4: REVERT
000001d5: JUMPDEST
000001d6: PUSH0
000001d7: SLOAD
000001d8: JUMPDEST
000001d9: PUSH1 0x40
000001db: MLOAD
000001dc: SWAP1
000001dd: DUP2
000001de: MSTORE
000001df: PUSH1 0x20
000001e1: ADD
000001e2: JUMPDEST
000001e3: PUSH1 0x40
000001e5: MLOAD
000001e6: DUP1
000001e7: SWAP2
000001e8: SUB
000001e9: SWAP1
000001ea: RETURN
000001eb: JUMPDEST
000001ec: PUSH2 0x0212
000001ef: PUSH32 0x0000000000000000000000005721cbbd64fc7ae3ef44a0a3f9a790a9264cf9bf
00000210: DUP2
00000211: JUMP
00000212: JUMPDEST
00000213: PUSH1 0x40
00000215: MLOAD
00000216: PUSH1 0x01
00000218: PUSH1 0x01
0000021a: PUSH1 0xa0
0000021c: SHL
0000021d: SUB
0000021e: SWAP1
0000021f: SWAP2
00000220: AND
00000221: DUP2
00000222: MSTORE
00000223: PUSH1 0x20
00000225: ADD
00000226: PUSH2 0x01e2
00000229: JUMP
0000022a: JUMPDEST
0000022b: PUSH1 0x04
0000022d: SLOAD
0000022e: PUSH1 0x40
00000230: MLOAD
00000231: SWAP1
00000232: ISZERO
00000233: ISZERO
00000234: DUP2
00000235: MSTORE
00000236: PUSH1 0x20
00000238: ADD
00000239: PUSH2 0x01e2
0000023c: JUMP
0000023d: JUMPDEST
0000023e: PUSH2 0x01d8
00000241: PUSH1 0x06
00000243: SLOAD
00000244: DUP2
00000245: JUMP
00000246: JUMPDEST
00000247: PUSH2 0x024e
0000024a: PUSH2 0x0453
0000024d: JUMP
0000024e: JUMPDEST
0000024f: STOP
00000250: JUMPDEST
00000251: PUSH2 0x024e
00000254: PUSH2 0x025e
00000257: CALLDATASIZE
00000258: PUSH1 0x04
0000025a: PUSH2 0x12d1
0000025d: JUMP
0000025e: JUMPDEST
0000025f: PUSH2 0x047b
00000262: JUMP
00000263: JUMPDEST
00000264: PUSH2 0x0212
00000267: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00000288: DUP2
00000289: JUMP
0000028a: JUMPDEST
0000028b: PUSH2 0x01d8
0000028e: PUSH2 0x048f
00000291: JUMP
00000292: JUMPDEST
00000293: PUSH2 0x01d8
00000296: PUSH1 0x02
00000298: SLOAD
00000299: DUP2
0000029a: JUMP
0000029b: JUMPDEST
0000029c: PUSH2 0x01d8
0000029f: PUSH2 0x04dc
000002a2: JUMP
000002a3: JUMPDEST
000002a4: PUSH2 0x01d8
000002a7: PUSH2 0x0511
000002aa: JUMP
000002ab: JUMPDEST
000002ac: PUSH2 0x01d8
000002af: PUSH1 0x04
000002b1: SLOAD
000002b2: DUP2
000002b3: JUMP
000002b4: JUMPDEST
000002b5: PUSH2 0x0212
000002b8: PUSH32 0x0000000000000000000000007bcb64b2c9206a5b699ed43363f6f98d4776cf5a
000002d9: DUP2
000002da: JUMP
000002db: JUMPDEST
000002dc: PUSH2 0x0212
000002df: PUSH32 0x0000000000000000000000006440f144b7e50d6a8439336510312d2f54beb01d
00000300: DUP2
00000301: JUMP
00000302: JUMPDEST
00000303: PUSH2 0x024e
00000306: PUSH2 0x0558
00000309: JUMP
0000030a: JUMPDEST
0000030b: PUSH2 0x024e
0000030e: PUSH2 0x0318
00000311: CALLDATASIZE
00000312: PUSH1 0x04
00000314: PUSH2 0x131a
00000317: JUMP
00000318: JUMPDEST
00000319: PUSH2 0x0566
0000031c: JUMP
0000031d: JUMPDEST
0000031e: PUSH2 0x01d8
00000321: PUSH1 0x03
00000323: SLOAD
00000324: DUP2
00000325: JUMP
00000326: JUMPDEST
00000327: PUSH2 0x024e
0000032a: PUSH2 0x0334
0000032d: CALLDATASIZE
0000032e: PUSH1 0x04
00000330: PUSH2 0x12d1
00000333: JUMP
00000334: JUMPDEST
00000335: PUSH2 0x060f
00000338: JUMP
00000339: JUMPDEST
0000033a: PUSH2 0x01d8
0000033d: PUSH2 0x0347
00000340: CALLDATASIZE
00000341: PUSH1 0x04
00000343: PUSH2 0x134e
00000346: JUMP
00000347: JUMPDEST
00000348: PUSH2 0x0655
0000034b: JUMP
0000034c: JUMPDEST
0000034d: PUSH2 0x01d8
00000350: PUSH1 0x01
00000352: SLOAD
00000353: DUP2
00000354: JUMP
00000355: JUMPDEST
00000356: PUSH2 0x024e
00000359: PUSH2 0x0363
0000035c: CALLDATASIZE
0000035d: PUSH1 0x04
0000035f: PUSH2 0x1369
00000362: JUMP
00000363: JUMPDEST
00000364: PUSH2 0x0710
00000367: JUMP
00000368: JUMPDEST
00000369: PUSH2 0x0391
0000036c: PUSH1 0x40
0000036e: MLOAD
0000036f: DUP1
00000370: PUSH1 0x40
00000372: ADD
00000373: PUSH1 0x40
00000375: MSTORE
00000376: DUP1
00000377: PUSH1 0x0a
00000379: DUP2
0000037a: MSTORE
0000037b: PUSH1 0x20
0000037d: ADD
0000037e: PUSH10 0x1058dd1a5d99541bdbdb
00000389: PUSH1 0xb2
0000038b: SHL
0000038c: DUP2
0000038d: MSTORE
0000038e: POP
0000038f: DUP2
00000390: JUMP
00000391: JUMPDEST
00000392: PUSH1 0x40
00000394: MLOAD
00000395: PUSH2 0x01e2
00000398: SWAP2
00000399: SWAP1
0000039a: PUSH2 0x13b3
0000039d: JUMP
0000039e: JUMPDEST
0000039f: PUSH2 0x0212
000003a2: PUSH32 0x000000000000000000000000d4558240d50c2e219a21c9d25afd513bb6e5b1a0
000003c3: DUP2
000003c4: JUMP
000003c5: JUMPDEST
000003c6: PUSH2 0x01d8
000003c9: PUSH1 0x07
000003cb: SLOAD
000003cc: DUP2
000003cd: JUMP
000003ce: JUMPDEST
000003cf: PUSH2 0x0212
000003d2: PUSH32 0x000000000000000000000000372abd1810eaf23cb9d941bbe7596dfb2c46bc65
000003f3: DUP2
000003f4: JUMP
000003f5: JUMPDEST
000003f6: PUSH2 0x024e
000003f9: PUSH2 0x0403
000003fc: CALLDATASIZE
000003fd: PUSH1 0x04
000003ff: PUSH2 0x12d1
00000402: JUMP
00000403: JUMPDEST
00000404: PUSH2 0x0759
00000407: JUMP
00000408: JUMPDEST
00000409: PUSH2 0x0212
0000040c: PUSH32 0x000000000000000000000000807def5e7d057df05c796f4bc75c3fe82bd6eee1
0000042d: DUP2
0000042e: JUMP
0000042f: JUMPDEST
00000430: PUSH2 0x024e
00000433: PUSH2 0x043d
00000436: CALLDATASIZE
00000437: PUSH1 0x04
00000439: PUSH2 0x131a
0000043c: JUMP
0000043d: JUMPDEST
0000043e: PUSH2 0x07e2
00000441: JUMP
00000442: JUMPDEST
00000443: PUSH2 0x01d8
00000446: PUSH1 0x05
00000448: SLOAD
00000449: DUP2
0000044a: JUMP
0000044b: JUMPDEST
0000044c: PUSH2 0x01d8
0000044f: PUSH2 0x07fc
00000452: JUMP
00000453: JUMPDEST
00000454: PUSH2 0x045b
00000457: PUSH2 0x0838
0000045a: JUMP
0000045b: JUMPDEST
0000045c: PUSH2 0x0464
0000045f: PUSH0
00000460: PUSH2 0x0910
00000463: JUMP
00000464: JUMPDEST
00000465: PUSH1 0x01
00000467: PUSH0
00000468: DUP3
00000469: DUP3
0000046a: SLOAD
0000046b: PUSH2 0x0474
0000046e: SWAP2
0000046f: SWAP1
00000470: PUSH2 0x13f9
00000473: JUMP
00000474: JUMPDEST
00000475: SWAP1
00000476: SWAP2
00000477: SSTORE
00000478: POP
00000479: POP
0000047a: JUMP
0000047b: JUMPDEST
0000047c: PUSH2 0x0483
0000047f: PUSH2 0x0b37
00000482: JUMP
00000483: JUMPDEST
00000484: PUSH2 0x048c
00000487: DUP2
00000488: PUSH2 0x0bfc
0000048b: JUMP
0000048c: JUMPDEST
0000048d: POP
0000048e: JUMP
0000048f: JUMPDEST
00000490: PUSH0
00000491: PUSH1 0x04
00000493: SLOAD
00000494: PUSH0
00000495: EQ
00000496: PUSH2 0x049e
00000499: JUMPI
0000049a: POP
0000049b: PUSH0
0000049c: SWAP1
0000049d: JUMP
0000049e: JUMPDEST
0000049f: PUSH2 0x04d7
000004a2: PUSH1 0x03
000004a4: SLOAD
000004a5: TIMESTAMP
000004a6: PUSH2 0x04af
000004a9: SWAP2
000004aa: SWAP1
000004ab: PUSH2 0x140c
000004ae: JUMP
000004af: JUMPDEST
000004b0: PUSH1 0x02
000004b2: SLOAD
000004b3: PUSH2 0x04bc
000004b6: SWAP2
000004b7: SWAP1
000004b8: PUSH2 0x141f
000004bb: JUMP
000004bc: JUMPDEST
000004bd: PUSH2 0x04d2
000004c0: PUSH8 0x0de0b6b3a7640000
000004c9: PUSH4 0x01e13380
000004ce: PUSH2 0x141f
000004d1: JUMP
000004d2: JUMPDEST
000004d3: PUSH2 0x0c48
000004d6: JUMP
000004d7: JUMPDEST
000004d8: SWAP1
000004d9: POP
000004da: SWAP1
000004db: JUMP
000004dc: JUMPDEST
000004dd: PUSH0
000004de: PUSH2 0x04e5
000004e1: PUSH2 0x0511
000004e4: JUMP
000004e5: JUMPDEST
000004e6: PUSH1 0x05
000004e8: SLOAD
000004e9: PUSH2 0x04f0
000004ec: PUSH2 0x048f
000004ef: JUMP
000004f0: JUMPDEST
000004f1: PUSH1 0x01
000004f3: SLOAD
000004f4: PUSH2 0x04fd
000004f7: SWAP2
000004f8: SWAP1
000004f9: PUSH2 0x13f9
000004fc: JUMP
000004fd: JUMPDEST
000004fe: PUSH2 0x0507
00000501: SWAP2
00000502: SWAP1
00000503: PUSH2 0x13f9
00000506: JUMP
00000507: JUMPDEST
00000508: PUSH2 0x04d7
0000050b: SWAP2
0000050c: SWAP1
0000050d: PUSH2 0x13f9
00000510: JUMP
00000511: JUMPDEST
00000512: PUSH0
00000513: DUP1
00000514: PUSH1 0x04
00000516: SLOAD
00000517: PUSH0
00000518: SUB
00000519: PUSH2 0x0522
0000051c: JUMPI
0000051d: TIMESTAMP
0000051e: PUSH2 0x0526
00000521: JUMP
00000522: JUMPDEST
00000523: PUSH1 0x04
00000525: SLOAD
00000526: JUMPDEST
00000527: SWAP1
00000528: POP
00000529: PUSH0
0000052a: PUSH2 0x0535
0000052d: PUSH1 0x07
0000052f: SLOAD
00000530: DUP4
00000531: PUSH2 0x0c80
00000534: JUMP
00000535: JUMPDEST
00000536: SWAP1
00000537: POP
00000538: PUSH2 0x0551
0000053b: PUSH2 0x0544
0000053e: DUP3
0000053f: DUP5
00000540: PUSH2 0x140c
00000543: JUMP
00000544: JUMPDEST
00000545: PUSH1 0x06
00000547: SLOAD
00000548: PUSH2 0x04bc
0000054b: SWAP2
0000054c: SWAP1
0000054d: PUSH2 0x141f
00000550: JUMP
00000551: JUMPDEST
00000552: SWAP3
00000553: POP
00000554: POP
00000555: POP
00000556: SWAP1
00000557: JUMP
00000558: JUMPDEST
00000559: PUSH2 0x0560
0000055c: PUSH2 0x0c95
0000055f: JUMP
00000560: JUMPDEST
00000561: TIMESTAMP
00000562: PUSH1 0x04
00000564: SSTORE
00000565: JUMP
00000566: JUMPDEST
00000567: PUSH2 0x056e
0000056a: PUSH2 0x0d1c
0000056d: JUMP
0000056e: JUMPDEST
0000056f: PUSH1 0x01
00000571: PUSH1 0x01
00000573: PUSH1 0xa0
00000575: SHL
00000576: SUB
00000577: DUP2
00000578: AND
00000579: ISZERO
0000057a: PUSH2 0x0595
0000057d: JUMPI
0000057e: PUSH2 0x0595
00000581: PUSH2 0x058f
00000584: CALLDATASIZE
00000585: DUP5
00000586: SWAP1
00000587: SUB
00000588: DUP5
00000589: ADD
0000058a: DUP5
0000058b: PUSH2 0x146c
0000058e: JUMP
0000058f: JUMPDEST
00000590: DUP3
00000591: PUSH2 0x0df7
00000594: JUMP
00000595: JUMPDEST
00000596: PUSH1 0x01
00000598: SLOAD
00000599: PUSH2 0x05a6
0000059c: PUSH2 0x0100
0000059f: DUP5
000005a0: ADD
000005a1: CALLDATALOAD
000005a2: PUSH2 0x0910
000005a5: JUMP
000005a6: JUMPDEST
000005a7: PUSH2 0x05b0
000005aa: SWAP1
000005ab: DUP3
000005ac: PUSH2 0x13f9
000005af: JUMP
000005b0: JUMPDEST
000005b1: SWAP1
000005b2: POP
000005b3: PUSH2 0x05bd
000005b6: DUP4
000005b7: CALLDATALOAD
000005b8: DUP3
000005b9: PUSH2 0x13f9
000005bc: JUMP
000005bd: JUMPDEST
000005be: SWAP1
000005bf: POP
000005c0: PUSH2 0x05cd
000005c3: PUSH1 0x80
000005c5: DUP5
000005c6: ADD
000005c7: CALLDATALOAD
000005c8: DUP3
000005c9: PUSH2 0x13f9
000005cc: JUMP
000005cd: JUMPDEST
000005ce: SWAP1
000005cf: POP
000005d0: PUSH2 0x05dd
000005d3: PUSH1 0xa0
000005d5: DUP5
000005d6: ADD
000005d7: CALLDATALOAD
000005d8: DUP3
000005d9: PUSH2 0x140c
000005dc: JUMP
000005dd: JUMPDEST
000005de: PUSH1 0x01
000005e0: DUP2
000005e1: SWAP1
000005e2: SSTORE
000005e3: PUSH1 0x02
000005e5: SLOAD
000005e6: SWAP1
000005e7: SWAP2
000005e8: POP
000005e9: PUSH2 0x05f6
000005ec: PUSH1 0xc0
000005ee: DUP6
000005ef: ADD
000005f0: CALLDATALOAD
000005f1: DUP3
000005f2: PUSH2 0x13f9
000005f5: JUMP
000005f6: JUMPDEST
000005f7: SWAP1
000005f8: POP
000005f9: PUSH2 0x0606
000005fc: PUSH1 0xe0
000005fe: DUP6
000005ff: ADD
00000600: CALLDATALOAD
00000601: DUP3
00000602: PUSH2 0x140c
00000605: JUMP
00000606: JUMPDEST
00000607: PUSH1 0x02
00000609: SSTORE
0000060a: POP
0000060b: POP
0000060c: POP
0000060d: POP
0000060e: JUMP
0000060f: JUMPDEST
00000610: PUSH2 0x0617
00000613: PUSH2 0x0b37
00000616: JUMP
00000617: JUMPDEST
00000618: PUSH2 0x0620
0000061b: DUP2
0000061c: PUSH2 0x0bfc
0000061f: JUMP
00000620: JUMPDEST
00000621: PUSH2 0x048c
00000624: PUSH1 0x01
00000626: PUSH1 0x01
00000628: PUSH1 0xa0
0000062a: SHL
0000062b: SUB
0000062c: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
0000064d: AND
0000064e: CALLER
0000064f: ADDRESS
00000650: DUP5
00000651: PUSH2 0x0f0d
00000654: JUMP
00000655: JUMPDEST
00000656: PUSH0
00000657: PUSH2 0x0100
0000065a: DUP3
0000065b: ADD
0000065c: CALLDATALOAD
0000065d: ISZERO
0000065e: PUSH2 0x0669
00000661: JUMPI
00000662: PUSH2 0x0669
00000665: PUSH2 0x1509
00000668: JUMP
00000669: JUMPDEST
0000066a: PUSH1 0x04
0000066c: SLOAD
0000066d: ISZERO
0000066e: PUSH2 0x0678
00000671: JUMPI
00000672: POP
00000673: PUSH0
00000674: SWAP2
00000675: SWAP1
00000676: POP
00000677: JUMP
00000678: JUMPDEST
00000679: PUSH1 0x01
0000067b: SLOAD
0000067c: PUSH2 0x0683
0000067f: PUSH2 0x048f
00000682: JUMP
00000683: JUMPDEST
00000684: PUSH2 0x068d
00000687: SWAP1
00000688: DUP3
00000689: PUSH2 0x13f9
0000068c: JUMP
0000068d: JUMPDEST
0000068e: SWAP1
0000068f: POP
00000690: PUSH2 0x069a
00000693: DUP4
00000694: CALLDATALOAD
00000695: DUP3
00000696: PUSH2 0x13f9
00000699: JUMP
0000069a: JUMPDEST
0000069b: SWAP1
0000069c: POP
0000069d: PUSH2 0x06aa
000006a0: PUSH1 0x80
000006a2: DUP5
000006a3: ADD
000006a4: CALLDATALOAD
000006a5: DUP3
000006a6: PUSH2 0x13f9
000006a9: JUMP
000006aa: JUMPDEST
000006ab: SWAP1
000006ac: POP
000006ad: PUSH2 0x06bb
000006b0: PUSH2 0x0120
000006b3: DUP5
000006b4: ADD
000006b5: CALLDATALOAD
000006b6: DUP3
000006b7: PUSH2 0x13f9
000006ba: JUMP
000006bb: JUMPDEST
000006bc: SWAP1
000006bd: POP
000006be: PUSH2 0x06cb
000006c1: PUSH1 0xa0
000006c3: DUP5
000006c4: ADD
000006c5: CALLDATALOAD
000006c6: DUP3
000006c7: PUSH2 0x140c
000006ca: JUMP
000006cb: JUMPDEST
000006cc: PUSH1 0x02
000006ce: SLOAD
000006cf: SWAP1
000006d0: SWAP2
000006d1: POP
000006d2: PUSH2 0x06df
000006d5: PUSH1 0xc0
000006d7: DUP6
000006d8: ADD
000006d9: CALLDATALOAD
000006da: DUP3
000006db: PUSH2 0x13f9
000006de: JUMP
000006df: JUMPDEST
000006e0: SWAP1
000006e1: POP
000006e2: PUSH2 0x06ef
000006e5: PUSH1 0xe0
000006e7: DUP6
000006e8: ADD
000006e9: CALLDATALOAD
000006ea: DUP3
000006eb: PUSH2 0x140c
000006ee: JUMP
000006ef: JUMPDEST
000006f0: SWAP1
000006f1: POP
000006f2: PUSH0
000006f3: DUP3
000006f4: GT
000006f5: PUSH2 0x06fe
000006f8: JUMPI
000006f9: PUSH0
000006fa: PUSH2 0x0708
000006fd: JUMP
000006fe: JUMPDEST
000006ff: PUSH2 0x0708
00000702: DUP3
00000703: DUP3
00000704: PUSH2 0x151d
00000707: JUMP
00000708: JUMPDEST
00000709: SWAP5
0000070a: SWAP4
0000070b: POP
0000070c: POP
0000070d: POP
0000070e: POP
0000070f: JUMP
00000710: JUMPDEST
00000711: PUSH2 0x0718
00000714: PUSH2 0x0f7e
00000717: JUMP
00000718: JUMPDEST
00000719: PUSH2 0x0721
0000071c: DUP2
0000071d: PUSH2 0x109e
00000720: JUMP
00000721: JUMPDEST
00000722: PUSH2 0x0755
00000725: PUSH1 0x01
00000727: PUSH1 0x01
00000729: PUSH1 0xa0
0000072b: SHL
0000072c: SUB
0000072d: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
0000074e: AND
0000074f: DUP4
00000750: DUP4
00000751: PUSH2 0x10ac
00000754: JUMP
00000755: JUMPDEST
00000756: POP
00000757: POP
00000758: JUMP
00000759: JUMPDEST
0000075a: PUSH2 0x0761
0000075d: PUSH2 0x0c95
00000760: JUMP
00000761: JUMPDEST
00000762: PUSH2 0x076a
00000765: DUP2
00000766: PUSH2 0x109e
00000769: JUMP
0000076a: JUMPDEST
0000076b: PUSH1 0x40
0000076d: MLOAD
0000076e: PUSH4 0x83b60e4d
00000773: PUSH1 0xe0
00000775: SHL
00000776: DUP2
00000777: MSTORE
00000778: PUSH1 0x04
0000077a: DUP2
0000077b: ADD
0000077c: DUP3
0000077d: SWAP1
0000077e: MSTORE
0000077f: PUSH32 0x000000000000000000000000d4558240d50c2e219a21c9d25afd513bb6e5b1a0
000007a0: PUSH1 0x01
000007a2: PUSH1 0x01
000007a4: PUSH1 0xa0
000007a6: SHL
000007a7: SUB
000007a8: AND
000007a9: SWAP1
000007aa: PUSH4 0x83b60e4d
000007af: SWAP1
000007b0: PUSH1 0x24
000007b2: ADD
000007b3: PUSH0
000007b4: PUSH1 0x40
000007b6: MLOAD
000007b7: DUP1
000007b8: DUP4
000007b9: SUB
000007ba: DUP2
000007bb: PUSH0
000007bc: DUP8
000007bd: DUP1
000007be: EXTCODESIZE
000007bf: ISZERO
000007c0: DUP1
000007c1: ISZERO
000007c2: PUSH2 0x07c9
000007c5: JUMPI
000007c6: PUSH0
000007c7: DUP1
000007c8: REVERT
000007c9: JUMPDEST
000007ca: POP
000007cb: GAS
000007cc: CALL
000007cd: ISZERO
000007ce: DUP1
000007cf: ISZERO
000007d0: PUSH2 0x07db
000007d3: JUMPI
000007d4: RETURNDATASIZE
000007d5: PUSH0
000007d6: DUP1
000007d7: RETURNDATACOPY
000007d8: RETURNDATASIZE
000007d9: PUSH0
000007da: REVERT
000007db: JUMPDEST
000007dc: POP
000007dd: POP
000007de: POP
000007df: POP
000007e0: POP
000007e1: JUMP
000007e2: JUMPDEST
000007e3: PUSH2 0x07ea
000007e6: PUSH2 0x0c95
000007e9: JUMP
000007ea: JUMPDEST
000007eb: PUSH2 0x0755
000007ee: PUSH2 0x058f
000007f1: CALLDATASIZE
000007f2: DUP5
000007f3: SWAP1
000007f4: SUB
000007f5: DUP5
000007f6: ADD
000007f7: DUP5
000007f8: PUSH2 0x146c
000007fb: JUMP
000007fc: JUMPDEST
000007fd: PUSH0
000007fe: PUSH8 0x0de0b6b3a7640000
00000807: PUSH2 0x0811
0000080a: PUSH1 0x64
0000080c: DUP3
0000080d: PUSH2 0x151d
00000810: JUMP
00000811: JUMPDEST
00000812: PUSH2 0x081c
00000815: SWAP1
00000816: PUSH1 0x4b
00000818: PUSH2 0x141f
0000081b: JUMP
0000081c: JUMPDEST
0000081d: PUSH2 0x0824
00000820: PUSH2 0x048f
00000823: JUMP
00000824: JUMPDEST
00000825: PUSH2 0x082e
00000828: SWAP2
00000829: SWAP1
0000082a: PUSH2 0x141f
0000082d: JUMP
0000082e: JUMPDEST
0000082f: PUSH2 0x04d7
00000832: SWAP2
00000833: SWAP1
00000834: PUSH2 0x151d
00000837: JUMP
00000838: JUMPDEST
00000839: CALLER
0000083a: PUSH1 0x01
0000083c: PUSH1 0x01
0000083e: PUSH1 0xa0
00000840: SHL
00000841: SUB
00000842: PUSH32 0x000000000000000000000000372abd1810eaf23cb9d941bbe7596dfb2c46bc65
00000863: AND
00000864: EQ
00000865: DUP1
00000866: PUSH2 0x0897
00000869: JUMPI
0000086a: POP
0000086b: CALLER
0000086c: PUSH1 0x01
0000086e: PUSH1 0x01
00000870: PUSH1 0xa0
00000872: SHL
00000873: SUB
00000874: PUSH32 0x0000000000000000000000005721cbbd64fc7ae3ef44a0a3f9a790a9264cf9bf
00000895: AND
00000896: EQ
00000897: JUMPDEST
00000898: PUSH2 0x090e
0000089b: JUMPI
0000089c: PUSH1 0x40
0000089e: MLOAD
0000089f: PUSH3 0x461bcd
000008a3: PUSH1 0xe5
000008a5: SHL
000008a6: DUP2
000008a7: MSTORE
000008a8: PUSH1 0x20
000008aa: PUSH1 0x04
000008ac: DUP3
000008ad: ADD
000008ae: MSTORE
000008af: PUSH1 0x3e
000008b1: PUSH1 0x24
000008b3: DUP3
000008b4: ADD
000008b5: MSTORE
000008b6: PUSH32 0x416374697665506f6f6c3a2043616c6c6572206973206e6f7420426f72726f77
000008d7: PUSH1 0x44
000008d9: DUP3
000008da: ADD
000008db: MSTORE
000008dc: PUSH32 0x65724f7065726174696f6e73206e6f722053746162696c697479506f6f6c0000
000008fd: PUSH1 0x64
000008ff: DUP3
00000900: ADD
00000901: MSTORE
00000902: PUSH1 0x84
00000904: ADD
00000905: JUMPDEST
00000906: PUSH1 0x40
00000908: MLOAD
00000909: DUP1
0000090a: SWAP2
0000090b: SUB
0000090c: SWAP1
0000090d: REVERT
0000090e: JUMPDEST
0000090f: JUMP
00000910: JUMPDEST
00000911: PUSH0
00000912: DUP2
00000913: PUSH2 0x091a
00000916: PUSH2 0x048f
00000919: JUMP
0000091a: JUMPDEST
0000091b: PUSH2 0x0924
0000091e: SWAP2
0000091f: SWAP1
00000920: PUSH2 0x13f9
00000923: JUMP
00000924: JUMPDEST
00000925: SWAP1
00000926: POP
00000927: DUP1
00000928: ISZERO
00000929: PUSH2 0x0b2e
0000092c: JUMPI
0000092d: PUSH0
0000092e: PUSH8 0x0de0b6b3a7640000
00000937: DUP3
00000938: PUSH2 0x0942
0000093b: PUSH1 0x64
0000093d: DUP4
0000093e: PUSH2 0x151d
00000941: JUMP
00000942: JUMPDEST
00000943: PUSH2 0x094d
00000946: SWAP1
00000947: PUSH1 0x4b
00000949: PUSH2 0x141f
0000094c: JUMP
0000094d: JUMPDEST
0000094e: PUSH2 0x0957
00000951: SWAP2
00000952: SWAP1
00000953: PUSH2 0x141f
00000956: JUMP
00000957: JUMPDEST
00000958: PUSH2 0x0961
0000095b: SWAP2
0000095c: SWAP1
0000095d: PUSH2 0x151d
00000960: JUMP
00000961: JUMPDEST
00000962: SWAP1
00000963: POP
00000964: PUSH0
00000965: PUSH2 0x096e
00000968: DUP3
00000969: DUP5
0000096a: PUSH2 0x140c
0000096d: JUMP
0000096e: JUMPDEST
0000096f: PUSH1 0x40
00000971: MLOAD
00000972: PUSH4 0x40c10f19
00000977: PUSH1 0xe0
00000979: SHL
0000097a: DUP2
0000097b: MSTORE
0000097c: PUSH1 0x01
0000097e: PUSH1 0x01
00000980: PUSH1 0xa0
00000982: SHL
00000983: SUB
00000984: PUSH32 0x000000000000000000000000807def5e7d057df05c796f4bc75c3fe82bd6eee1
000009a5: DUP2
000009a6: AND
000009a7: PUSH1 0x04
000009a9: DUP4
000009aa: ADD
000009ab: MSTORE
000009ac: PUSH1 0x24
000009ae: DUP3
000009af: ADD
000009b0: DUP4
000009b1: SWAP1
000009b2: MSTORE
000009b3: SWAP2
000009b4: SWAP3
000009b5: POP
000009b6: PUSH32 0x0000000000000000000000006440f144b7e50d6a8439336510312d2f54beb01d
000009d7: SWAP1
000009d8: SWAP2
000009d9: AND
000009da: SWAP1
000009db: PUSH4 0x40c10f19
000009e0: SWAP1
000009e1: PUSH1 0x44
000009e3: ADD
000009e4: PUSH0
000009e5: PUSH1 0x40
000009e7: MLOAD
000009e8: DUP1
000009e9: DUP4
000009ea: SUB
000009eb: DUP2
000009ec: PUSH0
000009ed: DUP8
000009ee: DUP1
000009ef: EXTCODESIZE
000009f0: ISZERO
000009f1: DUP1
000009f2: ISZERO
000009f3: PUSH2 0x09fa
000009f6: JUMPI
000009f7: PUSH0
000009f8: DUP1
000009f9: REVERT
000009fa: JUMPDEST
000009fb: POP
000009fc: GAS
000009fd: CALL
000009fe: ISZERO
000009ff: DUP1
00000a00: ISZERO
00000a01: PUSH2 0x0a0c
00000a04: JUMPI
00000a05: RETURNDATASIZE
00000a06: PUSH0
00000a07: DUP1
00000a08: RETURNDATACOPY
00000a09: RETURNDATASIZE
00000a0a: PUSH0
00000a0b: REVERT
00000a0c: JUMPDEST
00000a0d: POP
00000a0e: POP
00000a0f: POP
00000a10: POP
00000a11: PUSH0
00000a12: DUP3
00000a13: GT
00000a14: ISZERO
00000a15: PUSH2 0x0b2b
00000a18: JUMPI
00000a19: PUSH1 0x40
00000a1b: MLOAD
00000a1c: PUSH4 0x40c10f19
00000a21: PUSH1 0xe0
00000a23: SHL
00000a24: DUP2
00000a25: MSTORE
00000a26: PUSH1 0x01
00000a28: PUSH1 0x01
00000a2a: PUSH1 0xa0
00000a2c: SHL
00000a2d: SUB
00000a2e: PUSH32 0x0000000000000000000000005721cbbd64fc7ae3ef44a0a3f9a790a9264cf9bf
00000a4f: DUP2
00000a50: AND
00000a51: PUSH1 0x04
00000a53: DUP4
00000a54: ADD
00000a55: MSTORE
00000a56: PUSH1 0x24
00000a58: DUP3
00000a59: ADD
00000a5a: DUP5
00000a5b: SWAP1
00000a5c: MSTORE
00000a5d: PUSH32 0x0000000000000000000000006440f144b7e50d6a8439336510312d2f54beb01d
00000a7e: AND
00000a7f: SWAP1
00000a80: PUSH4 0x40c10f19
00000a85: SWAP1
00000a86: PUSH1 0x44
00000a88: ADD
00000a89: PUSH0
00000a8a: PUSH1 0x40
00000a8c: MLOAD
00000a8d: DUP1
00000a8e: DUP4
00000a8f: SUB
00000a90: DUP2
00000a91: PUSH0
00000a92: DUP8
00000a93: DUP1
00000a94: EXTCODESIZE
00000a95: ISZERO
00000a96: DUP1
00000a97: ISZERO
00000a98: PUSH2 0x0a9f
00000a9b: JUMPI
00000a9c: PUSH0
00000a9d: DUP1
00000a9e: REVERT
00000a9f: JUMPDEST
00000aa0: POP
00000aa1: GAS
00000aa2: CALL
00000aa3: ISZERO
00000aa4: DUP1
00000aa5: ISZERO
00000aa6: PUSH2 0x0ab1
00000aa9: JUMPI
00000aaa: RETURNDATASIZE
00000aab: PUSH0
00000aac: DUP1
00000aad: RETURNDATACOPY
00000aae: RETURNDATASIZE
00000aaf: PUSH0
00000ab0: REVERT
00000ab1: JUMPDEST
00000ab2: POP
00000ab3: POP
00000ab4: PUSH1 0x40
00000ab6: MLOAD
00000ab7: PUSH4 0xaffb4669
00000abc: PUSH1 0xe0
00000abe: SHL
00000abf: DUP2
00000ac0: MSTORE
00000ac1: PUSH1 0x04
00000ac3: DUP2
00000ac4: ADD
00000ac5: DUP6
00000ac6: SWAP1
00000ac7: MSTORE
00000ac8: PUSH32 0x0000000000000000000000005721cbbd64fc7ae3ef44a0a3f9a790a9264cf9bf
00000ae9: PUSH1 0x01
00000aeb: PUSH1 0x01
00000aed: PUSH1 0xa0
00000aef: SHL
00000af0: SUB
00000af1: AND
00000af2: SWAP3
00000af3: POP
00000af4: PUSH4 0xaffb4669
00000af9: SWAP2
00000afa: POP
00000afb: PUSH1 0x24
00000afd: ADD
00000afe: PUSH0
00000aff: PUSH1 0x40
00000b01: MLOAD
00000b02: DUP1
00000b03: DUP4
00000b04: SUB
00000b05: DUP2
00000b06: PUSH0
00000b07: DUP8
00000b08: DUP1
00000b09: EXTCODESIZE
00000b0a: ISZERO
00000b0b: DUP1
00000b0c: ISZERO
00000b0d: PUSH2 0x0b14
00000b10: JUMPI
00000b11: PUSH0
00000b12: DUP1
00000b13: REVERT
00000b14: JUMPDEST
00000b15: POP
00000b16: GAS
00000b17: CALL
00000b18: ISZERO
00000b19: DUP1
00000b1a: ISZERO
00000b1b: PUSH2 0x0b26
00000b1e: JUMPI
00000b1f: RETURNDATASIZE
00000b20: PUSH0
00000b21: DUP1
00000b22: RETURNDATACOPY
00000b23: RETURNDATASIZE
00000b24: PUSH0
00000b25: REVERT
00000b26: JUMPDEST
00000b27: POP
00000b28: POP
00000b29: POP
00000b2a: POP
00000b2b: JUMPDEST
00000b2c: POP
00000b2d: POP
00000b2e: JUMPDEST
00000b2f: TIMESTAMP
00000b30: PUSH1 0x03
00000b32: SSTORE
00000b33: SWAP2
00000b34: SWAP1
00000b35: POP
00000b36: JUMP
00000b37: JUMPDEST
00000b38: CALLER
00000b39: PUSH1 0x01
00000b3b: PUSH1 0x01
00000b3d: PUSH1 0xa0
00000b3f: SHL
00000b40: SUB
00000b41: PUSH32 0x000000000000000000000000372abd1810eaf23cb9d941bbe7596dfb2c46bc65
00000b62: AND
00000b63: EQ
00000b64: DUP1
00000b65: PUSH2 0x0b96
00000b68: JUMPI
00000b69: POP
00000b6a: CALLER
00000b6b: PUSH1 0x01
00000b6d: PUSH1 0x01
00000b6f: PUSH1 0xa0
00000b71: SHL
00000b72: SUB
00000b73: PUSH32 0x000000000000000000000000d4558240d50c2e219a21c9d25afd513bb6e5b1a0
00000b94: AND
00000b95: EQ
00000b96: JUMPDEST
00000b97: PUSH2 0x090e
00000b9a: JUMPI
00000b9b: PUSH1 0x40
00000b9d: MLOAD
00000b9e: PUSH3 0x461bcd
00000ba2: PUSH1 0xe5
00000ba4: SHL
00000ba5: DUP2
00000ba6: MSTORE
00000ba7: PUSH1 0x20
00000ba9: PUSH1 0x04
00000bab: DUP3
00000bac: ADD
00000bad: MSTORE
00000bae: PUSH1 0x31
00000bb0: PUSH1 0x24
00000bb2: DUP3
00000bb3: ADD
00000bb4: MSTORE
00000bb5: PUSH32 0x416374697665506f6f6c3a2043616c6c6572206973206e65697468657220424f
00000bd6: PUSH1 0x44
00000bd8: DUP3
00000bd9: ADD
00000bda: MSTORE
00000bdb: PUSH17 0x081b9bdc88111959985d5b1d08141bdbdb
00000bed: PUSH1 0x7a
00000bef: SHL
00000bf0: PUSH1 0x64
00000bf2: DUP3
00000bf3: ADD
00000bf4: MSTORE
00000bf5: PUSH1 0x84
00000bf7: ADD
00000bf8: PUSH2 0x0905
00000bfb: JUMP
00000bfc: JUMPDEST
00000bfd: PUSH0
00000bfe: DUP2
00000bff: PUSH0
00000c00: SLOAD
00000c01: PUSH2 0x0c0a
00000c04: SWAP2
00000c05: SWAP1
00000c06: PUSH2 0x13f9
00000c09: JUMP
00000c0a: JUMPDEST
00000c0b: PUSH0
00000c0c: DUP2
00000c0d: SWAP1
00000c0e: SSTORE
00000c0f: PUSH1 0x40
00000c11: MLOAD
00000c12: DUP2
00000c13: DUP2
00000c14: MSTORE
00000c15: SWAP1
00000c16: SWAP2
00000c17: POP
00000c18: PUSH32 0x9bbe217b4113a0fc957e51f8db99c9989f520e3c6bcca7a8e12c6316eaf995bf
00000c39: SWAP1
00000c3a: PUSH1 0x20
00000c3c: ADD
00000c3d: PUSH1 0x40
00000c3f: MLOAD
00000c40: DUP1
00000c41: SWAP2
00000c42: SUB
00000c43: SWAP1
00000c44: LOG1
00000c45: POP
00000c46: POP
00000c47: JUMP
00000c48: JUMPDEST
00000c49: PUSH0
00000c4a: DUP3
00000c4b: ISZERO
00000c4c: PUSH2 0x0c75
00000c4f: JUMPI
00000c50: DUP2
00000c51: PUSH2 0x0c5b
00000c54: PUSH1 0x01
00000c56: DUP6
00000c57: PUSH2 0x140c
00000c5a: JUMP
00000c5b: JUMPDEST
00000c5c: PUSH2 0x0c65
00000c5f: SWAP2
00000c60: SWAP1
00000c61: PUSH2 0x151d
00000c64: JUMP
00000c65: JUMPDEST
00000c66: PUSH2 0x0c70
00000c69: SWAP1
00000c6a: PUSH1 0x01
00000c6c: PUSH2 0x13f9
00000c6f: JUMP
00000c70: JUMPDEST
00000c71: PUSH2 0x0c77
00000c74: JUMP
00000c75: JUMPDEST
00000c76: PUSH0
00000c77: JUMPDEST
00000c78: SWAP1
00000c79: POP
00000c7a: JUMPDEST
00000c7b: SWAP3
00000c7c: SWAP2
00000c7d: POP
00000c7e: POP
00000c7f: JUMP
00000c80: JUMPDEST
00000c81: PUSH0
00000c82: DUP2
00000c83: DUP4
00000c84: LT
00000c85: PUSH2 0x0c8e
00000c88: JUMPI
00000c89: DUP2
00000c8a: PUSH2 0x0c77
00000c8d: JUMP
00000c8e: JUMPDEST
00000c8f: POP
00000c90: SWAP1
00000c91: SWAP2
00000c92: SWAP1
00000c93: POP
00000c94: JUMP
00000c95: JUMPDEST
00000c96: CALLER
00000c97: PUSH1 0x01
00000c99: PUSH1 0x01
00000c9b: PUSH1 0xa0
00000c9d: SHL
00000c9e: SUB
00000c9f: PUSH32 0x0000000000000000000000007bcb64b2c9206a5b699ed43363f6f98d4776cf5a
00000cc0: AND
00000cc1: EQ
00000cc2: PUSH2 0x090e
00000cc5: JUMPI
00000cc6: PUSH1 0x40
00000cc8: MLOAD
00000cc9: PUSH3 0x461bcd
00000ccd: PUSH1 0xe5
00000ccf: SHL
00000cd0: DUP2
00000cd1: MSTORE
00000cd2: PUSH1 0x20
00000cd4: PUSH1 0x04
00000cd6: DUP3
00000cd7: ADD
00000cd8: MSTORE
00000cd9: PUSH1 0x26
00000cdb: PUSH1 0x24
00000cdd: DUP3
00000cde: ADD
00000cdf: MSTORE
00000ce0: PUSH32 0x416374697665506f6f6c3a2043616c6c6572206973206e6f742054726f76654d
00000d01: PUSH1 0x44
00000d03: DUP3
00000d04: ADD
00000d05: MSTORE
00000d06: PUSH6 0x30b730b3b2b9
00000d0d: PUSH1 0xd1
00000d0f: SHL
00000d10: PUSH1 0x64
00000d12: DUP3
00000d13: ADD
00000d14: MSTORE
00000d15: PUSH1 0x84
00000d17: ADD
00000d18: PUSH2 0x0905
00000d1b: JUMP
00000d1c: JUMPDEST
00000d1d: CALLER
00000d1e: PUSH1 0x01
00000d20: PUSH1 0x01
00000d22: PUSH1 0xa0
00000d24: SHL
00000d25: SUB
00000d26: PUSH32 0x000000000000000000000000372abd1810eaf23cb9d941bbe7596dfb2c46bc65
00000d47: AND
00000d48: EQ
00000d49: DUP1
00000d4a: PUSH2 0x0d7b
00000d4d: JUMPI
00000d4e: POP
00000d4f: CALLER
00000d50: PUSH1 0x01
00000d52: PUSH1 0x01
00000d54: PUSH1 0xa0
00000d56: SHL
00000d57: SUB
00000d58: PUSH32 0x0000000000000000000000007bcb64b2c9206a5b699ed43363f6f98d4776cf5a
00000d79: AND
00000d7a: EQ
00000d7b: JUMPDEST
00000d7c: PUSH2 0x090e
00000d7f: JUMPI
00000d80: PUSH1 0x40
00000d82: MLOAD
00000d83: PUSH3 0x461bcd
00000d87: PUSH1 0xe5
00000d89: SHL
00000d8a: DUP2
00000d8b: MSTORE
00000d8c: PUSH1 0x20
00000d8e: PUSH1 0x04
00000d90: DUP3
00000d91: ADD
00000d92: MSTORE
00000d93: PUSH1 0x41
00000d95: PUSH1 0x24
00000d97: DUP3
00000d98: ADD
00000d99: MSTORE
00000d9a: PUSH32 0x416374697665506f6f6c3a2043616c6c6572206973206e65697468657220426f
00000dbb: PUSH1 0x44
00000dbd: DUP3
00000dbe: ADD
00000dbf: MSTORE
00000dc0: PUSH32 0x72726f7765724f7065726174696f6e73206e6f722054726f76654d616e616765
00000de1: PUSH1 0x64
00000de3: DUP3
00000de4: ADD
00000de5: MSTORE
00000de6: PUSH1 0x39
00000de8: PUSH1 0xf9
00000dea: SHL
00000deb: PUSH1 0x84
00000ded: DUP3
00000dee: ADD
00000def: MSTORE
00000df0: PUSH1 0xa4
00000df2: ADD
00000df3: PUSH2 0x0905
00000df6: JUMP
00000df7: JUMPDEST
00000df8: DUP2
00000df9: PUSH2 0x0120
00000dfc: ADD
00000dfd: MLOAD
00000dfe: PUSH1 0x01
00000e00: PUSH0
00000e01: DUP3
00000e02: DUP3
00000e03: SLOAD
00000e04: PUSH2 0x0e0d
00000e07: SWAP2
00000e08: SWAP1
00000e09: PUSH2 0x13f9
00000e0c: JUMP
00000e0d: JUMPDEST
00000e0e: SWAP1
00000e0f: SWAP2
00000e10: SSTORE
00000e11: POP
00000e12: POP
00000e13: PUSH1 0x05
00000e15: SLOAD
00000e16: PUSH2 0x0e1d
00000e19: PUSH2 0x0511
00000e1c: JUMP
00000e1d: JUMPDEST
00000e1e: PUSH2 0x0e27
00000e21: SWAP1
00000e22: DUP3
00000e23: PUSH2 0x13f9
00000e26: JUMP
00000e27: JUMPDEST
00000e28: SWAP1
00000e29: POP
00000e2a: DUP3
00000e2b: PUSH2 0x0120
00000e2e: ADD
00000e2f: MLOAD
00000e30: DUP2
00000e31: PUSH2 0x0e3a
00000e34: SWAP2
00000e35: SWAP1
00000e36: PUSH2 0x140c
00000e39: JUMP
00000e3a: JUMPDEST
00000e3b: PUSH1 0x05
00000e3d: DUP2
00000e3e: SWAP1
00000e3f: SSTORE
00000e40: PUSH1 0x06
00000e42: SLOAD
00000e43: PUSH2 0x0140
00000e46: DUP6
00000e47: ADD
00000e48: MLOAD
00000e49: SWAP2
00000e4a: SWAP3
00000e4b: POP
00000e4c: SWAP1
00000e4d: PUSH2 0x0e56
00000e50: SWAP1
00000e51: DUP3
00000e52: PUSH2 0x13f9
00000e55: JUMP
00000e56: JUMPDEST
00000e57: SWAP1
00000e58: POP
00000e59: DUP4
00000e5a: PUSH2 0x0160
00000e5d: ADD
00000e5e: MLOAD
00000e5f: DUP2
00000e60: PUSH2 0x0e69
00000e63: SWAP2
00000e64: SWAP1
00000e65: PUSH2 0x140c
00000e68: JUMP
00000e69: JUMPDEST
00000e6a: PUSH1 0x06
00000e6c: DUP2
00000e6d: SWAP1
00000e6e: SSTORE
00000e6f: PUSH2 0x0120
00000e72: DUP6
00000e73: ADD
00000e74: MLOAD
00000e75: SWAP1
00000e76: SWAP2
00000e77: POP
00000e78: ISZERO
00000e79: PUSH2 0x0f03
00000e7c: JUMPI
00000e7d: PUSH2 0x0120
00000e80: DUP5
00000e81: ADD
00000e82: MLOAD
00000e83: PUSH1 0x40
00000e85: MLOAD
00000e86: PUSH4 0x40c10f19
00000e8b: PUSH1 0xe0
00000e8d: SHL
00000e8e: DUP2
00000e8f: MSTORE
00000e90: PUSH1 0x01
00000e92: PUSH1 0x01
00000e94: PUSH1 0xa0
00000e96: SHL
00000e97: SUB
00000e98: DUP6
00000e99: DUP2
00000e9a: AND
00000e9b: PUSH1 0x04
00000e9d: DUP4
00000e9e: ADD
00000e9f: MSTORE
00000ea0: PUSH1 0x24
00000ea2: DUP3
00000ea3: ADD
00000ea4: SWAP3
00000ea5: SWAP1
00000ea6: SWAP3
00000ea7: MSTORE
00000ea8: PUSH32 0x0000000000000000000000006440f144b7e50d6a8439336510312d2f54beb01d
00000ec9: SWAP1
00000eca: SWAP2
00000ecb: AND
00000ecc: SWAP1
00000ecd: PUSH4 0x40c10f19
00000ed2: SWAP1
00000ed3: PUSH1 0x44
00000ed5: ADD
00000ed6: PUSH0
00000ed7: PUSH1 0x40
00000ed9: MLOAD
00000eda: DUP1
00000edb: DUP4
00000edc: SUB
00000edd: DUP2
00000ede: PUSH0
00000edf: DUP8
00000ee0: DUP1
00000ee1: EXTCODESIZE
00000ee2: ISZERO
00000ee3: DUP1
00000ee4: ISZERO
00000ee5: PUSH2 0x0eec
00000ee8: JUMPI
00000ee9: PUSH0
00000eea: DUP1
00000eeb: REVERT
00000eec: JUMPDEST
00000eed: POP
00000eee: GAS
00000eef: CALL
00000ef0: ISZERO
00000ef1: DUP1
00000ef2: ISZERO
00000ef3: PUSH2 0x0efe
00000ef6: JUMPI
00000ef7: RETURNDATASIZE
00000ef8: PUSH0
00000ef9: DUP1
00000efa: RETURNDATACOPY
00000efb: RETURNDATASIZE
00000efc: PUSH0
00000efd: REVERT
00000efe: JUMPDEST
00000eff: POP
00000f00: POP
00000f01: POP
00000f02: POP
00000f03: JUMPDEST
00000f04: POP
00000f05: POP
00000f06: TIMESTAMP
00000f07: PUSH1 0x07
00000f09: SSTORE
00000f0a: POP
00000f0b: POP
00000f0c: JUMP
00000f0d: JUMPDEST
00000f0e: PUSH1 0x40
00000f10: MLOAD
00000f11: PUSH1 0x01
00000f13: PUSH1 0x01
00000f15: PUSH1 0xa0
00000f17: SHL
00000f18: SUB
00000f19: DUP1
00000f1a: DUP6
00000f1b: AND
00000f1c: PUSH1 0x24
00000f1e: DUP4
00000f1f: ADD
00000f20: MSTORE
00000f21: DUP4
00000f22: AND
00000f23: PUSH1 0x44
00000f25: DUP3
00000f26: ADD
00000f27: MSTORE
00000f28: PUSH1 0x64
00000f2a: DUP2
00000f2b: ADD
00000f2c: DUP3
00000f2d: SWAP1
00000f2e: MSTORE
00000f2f: PUSH2 0x0f78
00000f32: SWAP1
00000f33: DUP6
00000f34: SWAP1
00000f35: PUSH4 0x23b872dd
00000f3a: PUSH1 0xe0
00000f3c: SHL
00000f3d: SWAP1
00000f3e: PUSH1 0x84
00000f40: ADD
00000f41: JUMPDEST
00000f42: PUSH1 0x40
00000f44: DUP1
00000f45: MLOAD
00000f46: PUSH1 0x1f
00000f48: NOT
00000f49: DUP2
00000f4a: DUP5
00000f4b: SUB
00000f4c: ADD
00000f4d: DUP2
00000f4e: MSTORE
00000f4f: SWAP2
00000f50: SWAP1
00000f51: MSTORE
00000f52: PUSH1 0x20
00000f54: DUP2
00000f55: ADD
00000f56: DUP1
00000f57: MLOAD
00000f58: PUSH1 0x01
00000f5a: PUSH1 0x01
00000f5c: PUSH1 0xe0
00000f5e: SHL
00000f5f: SUB
00000f60: AND
00000f61: PUSH1 0x01
00000f63: PUSH1 0x01
00000f65: PUSH1 0xe0
00000f67: SHL
00000f68: SUB
00000f69: NOT
00000f6a: SWAP1
00000f6b: SWAP4
00000f6c: AND
00000f6d: SWAP3
00000f6e: SWAP1
00000f6f: SWAP3
00000f70: OR
00000f71: SWAP1
00000f72: SWAP2
00000f73: MSTORE
00000f74: PUSH2 0x10e1
00000f77: JUMP
00000f78: JUMPDEST
00000f79: POP
00000f7a: POP
00000f7b: POP
00000f7c: POP
00000f7d: JUMP
00000f7e: JUMPDEST
00000f7f: CALLER
00000f80: PUSH1 0x01
00000f82: PUSH1 0x01
00000f84: PUSH1 0xa0
00000f86: SHL
00000f87: SUB
00000f88: PUSH32 0x000000000000000000000000372abd1810eaf23cb9d941bbe7596dfb2c46bc65
00000fa9: AND
00000faa: EQ
00000fab: DUP1
00000fac: PUSH2 0x0fdd
00000faf: JUMPI
00000fb0: POP
00000fb1: CALLER
00000fb2: PUSH1 0x01
00000fb4: PUSH1 0x01
00000fb6: PUSH1 0xa0
00000fb8: SHL
00000fb9: SUB
00000fba: PUSH32 0x0000000000000000000000007bcb64b2c9206a5b699ed43363f6f98d4776cf5a
00000fdb: AND
00000fdc: EQ
00000fdd: JUMPDEST
00000fde: DUP1
00000fdf: PUSH2 0x1010
00000fe2: JUMPI
00000fe3: POP
00000fe4: CALLER
00000fe5: PUSH1 0x01
00000fe7: PUSH1 0x01
00000fe9: PUSH1 0xa0
00000feb: SHL
00000fec: SUB
00000fed: PUSH32 0x0000000000000000000000005721cbbd64fc7ae3ef44a0a3f9a790a9264cf9bf
0000100e: AND
0000100f: EQ
00001010: JUMPDEST
00001011: PUSH2 0x090e
00001014: JUMPI
00001015: PUSH1 0x40
00001017: MLOAD
00001018: PUSH3 0x461bcd
0000101c: PUSH1 0xe5
0000101e: SHL
0000101f: DUP2
00001020: MSTORE
00001021: PUSH1 0x20
00001023: PUSH1 0x04
00001025: DUP3
00001026: ADD
00001027: MSTORE
00001028: PUSH1 0x53
0000102a: PUSH1 0x24
0000102c: DUP3
0000102d: ADD
0000102e: MSTORE
0000102f: PUSH32 0x416374697665506f6f6c3a2043616c6c6572206973206e65697468657220426f
00001050: PUSH1 0x44
00001052: DUP3
00001053: ADD
00001054: MSTORE
00001055: PUSH32 0x72726f7765724f7065726174696f6e73206e6f722054726f76654d616e616765
00001076: PUSH1 0x64
00001078: DUP3
00001079: ADD
0000107a: MSTORE
0000107b: PUSH19 0x1c881b9bdc8814dd18589a5b1a5d1e541bdbdb
0000108f: PUSH1 0x6a
00001091: SHL
00001092: PUSH1 0x84
00001094: DUP3
00001095: ADD
00001096: MSTORE
00001097: PUSH1 0xa4
00001099: ADD
0000109a: PUSH2 0x0905
0000109d: JUMP
0000109e: JUMPDEST
0000109f: PUSH0
000010a0: DUP2
000010a1: PUSH0
000010a2: SLOAD
000010a3: PUSH2 0x0c0a
000010a6: SWAP2
000010a7: SWAP1
000010a8: PUSH2 0x140c
000010ab: JUMP
000010ac: JUMPDEST
000010ad: PUSH1 0x40
000010af: MLOAD
000010b0: PUSH1 0x01
000010b2: PUSH1 0x01
000010b4: PUSH1 0xa0
000010b6: SHL
000010b7: SUB
000010b8: DUP4
000010b9: AND
000010ba: PUSH1 0x24
000010bc: DUP3
000010bd: ADD
000010be: MSTORE
000010bf: PUSH1 0x44
000010c1: DUP2
000010c2: ADD
000010c3: DUP3
000010c4: SWAP1
000010c5: MSTORE
000010c6: PUSH2 0x10dc
000010c9: SWAP1
000010ca: DUP5
000010cb: SWAP1
000010cc: PUSH4 0xa9059cbb
000010d1: PUSH1 0xe0
000010d3: SHL
000010d4: SWAP1
000010d5: PUSH1 0x64
000010d7: ADD
000010d8: PUSH2 0x0f41
000010db: JUMP
000010dc: JUMPDEST
000010dd: POP
000010de: POP
000010df: POP
000010e0: JUMP
000010e1: JUMPDEST
000010e2: PUSH0
000010e3: PUSH2 0x1135
000010e6: DUP3
000010e7: PUSH1 0x40
000010e9: MLOAD
000010ea: DUP1
000010eb: PUSH1 0x40
000010ed: ADD
000010ee: PUSH1 0x40
000010f0: MSTORE
000010f1: DUP1
000010f2: PUSH1 0x20
000010f4: DUP2
000010f5: MSTORE
000010f6: PUSH1 0x20
000010f8: ADD
000010f9: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
0000111a: DUP2
0000111b: MSTORE
0000111c: POP
0000111d: DUP6
0000111e: PUSH1 0x01
00001120: PUSH1 0x01
00001122: PUSH1 0xa0
00001124: SHL
00001125: SUB
00001126: AND
00001127: PUSH2 0x11b4
0000112a: SWAP1
0000112b: SWAP3
0000112c: SWAP2
0000112d: SWAP1
0000112e: PUSH4 0xffffffff
00001133: AND
00001134: JUMP
00001135: JUMPDEST
00001136: SWAP1
00001137: POP
00001138: DUP1
00001139: MLOAD
0000113a: PUSH0
0000113b: EQ
0000113c: DUP1
0000113d: PUSH2 0x1155
00001140: JUMPI
00001141: POP
00001142: DUP1
00001143: DUP1
00001144: PUSH1 0x20
00001146: ADD
00001147: SWAP1
00001148: MLOAD
00001149: DUP2
0000114a: ADD
0000114b: SWAP1
0000114c: PUSH2 0x1155
0000114f: SWAP2
00001150: SWAP1
00001151: PUSH2 0x153c
00001154: JUMP
00001155: JUMPDEST
00001156: PUSH2 0x10dc
00001159: JUMPI
0000115a: PUSH1 0x40
0000115c: MLOAD
0000115d: PUSH3 0x461bcd
00001161: PUSH1 0xe5
00001163: SHL
00001164: DUP2
00001165: MSTORE
00001166: PUSH1 0x20
00001168: PUSH1 0x04
0000116a: DUP3
0000116b: ADD
0000116c: MSTORE
0000116d: PUSH1 0x2a
0000116f: PUSH1 0x24
00001171: DUP3
00001172: ADD
00001173: MSTORE
00001174: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e
00001195: PUSH1 0x44
00001197: DUP3
00001198: ADD
00001199: MSTORE
0000119a: PUSH10 0x1bdd081cdd58d8d95959
000011a5: PUSH1 0xb2
000011a7: SHL
000011a8: PUSH1 0x64
000011aa: DUP3
000011ab: ADD
000011ac: MSTORE
000011ad: PUSH1 0x84
000011af: ADD
000011b0: PUSH2 0x0905
000011b3: JUMP
000011b4: JUMPDEST
000011b5: PUSH1 0x60
000011b7: PUSH2 0x0708
000011ba: DUP5
000011bb: DUP5
000011bc: PUSH0
000011bd: DUP6
000011be: DUP6
000011bf: PUSH0
000011c0: DUP1
000011c1: DUP7
000011c2: PUSH1 0x01
000011c4: PUSH1 0x01
000011c6: PUSH1 0xa0
000011c8: SHL
000011c9: SUB
000011ca: AND
000011cb: DUP6
000011cc: DUP8
000011cd: PUSH1 0x40
000011cf: MLOAD
000011d0: PUSH2 0x11d9
000011d3: SWAP2
000011d4: SWAP1
000011d5: PUSH2 0x1562
000011d8: JUMP
000011d9: JUMPDEST
000011da: PUSH0
000011db: PUSH1 0x40
000011dd: MLOAD
000011de: DUP1
000011df: DUP4
000011e0: SUB
000011e1: DUP2
000011e2: DUP6
000011e3: DUP8
000011e4: GAS
000011e5: CALL
000011e6: SWAP3
000011e7: POP
000011e8: POP
000011e9: POP
000011ea: RETURNDATASIZE
000011eb: DUP1
000011ec: PUSH0
000011ed: DUP2
000011ee: EQ
000011ef: PUSH2 0x1213
000011f2: JUMPI
000011f3: PUSH1 0x40
000011f5: MLOAD
000011f6: SWAP2
000011f7: POP
000011f8: PUSH1 0x1f
000011fa: NOT
000011fb: PUSH1 0x3f
000011fd: RETURNDATASIZE
000011fe: ADD
000011ff: AND
00001200: DUP3
00001201: ADD
00001202: PUSH1 0x40
00001204: MSTORE
00001205: RETURNDATASIZE
00001206: DUP3
00001207: MSTORE
00001208: RETURNDATASIZE
00001209: PUSH0
0000120a: PUSH1 0x20
0000120c: DUP5
0000120d: ADD
0000120e: RETURNDATACOPY
0000120f: PUSH2 0x1218
00001212: JUMP
00001213: JUMPDEST
00001214: PUSH1 0x60
00001216: SWAP2
00001217: POP
00001218: JUMPDEST
00001219: POP
0000121a: SWAP2
0000121b: POP
0000121c: SWAP2
0000121d: POP
0000121e: PUSH2 0x1229
00001221: DUP8
00001222: DUP4
00001223: DUP4
00001224: DUP8
00001225: PUSH2 0x1234
00001228: JUMP
00001229: JUMPDEST
0000122a: SWAP8
0000122b: SWAP7
0000122c: POP
0000122d: POP
0000122e: POP
0000122f: POP
00001230: POP
00001231: POP
00001232: POP
00001233: JUMP
00001234: JUMPDEST
00001235: PUSH1 0x60
00001237: DUP4
00001238: ISZERO
00001239: PUSH2 0x12a2
0000123c: JUMPI
0000123d: DUP3
0000123e: MLOAD
0000123f: PUSH0
00001240: SUB
00001241: PUSH2 0x129b
00001244: JUMPI
00001245: PUSH1 0x01
00001247: PUSH1 0x01
00001249: PUSH1 0xa0
0000124b: SHL
0000124c: SUB
0000124d: DUP6
0000124e: AND
0000124f: EXTCODESIZE
00001250: PUSH2 0x129b
00001253: JUMPI
00001254: PUSH1 0x40
00001256: MLOAD
00001257: PUSH3 0x461bcd
0000125b: PUSH1 0xe5
0000125d: SHL
0000125e: DUP2
0000125f: MSTORE
00001260: PUSH1 0x20
00001262: PUSH1 0x04
00001264: DUP3
00001265: ADD
00001266: MSTORE
00001267: PUSH1 0x1d
00001269: PUSH1 0x24
0000126b: DUP3
0000126c: ADD
0000126d: MSTORE
0000126e: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000
0000128f: PUSH1 0x44
00001291: DUP3
00001292: ADD
00001293: MSTORE
00001294: PUSH1 0x64
00001296: ADD
00001297: PUSH2 0x0905
0000129a: JUMP
0000129b: JUMPDEST
0000129c: POP
0000129d: DUP2
0000129e: PUSH2 0x0708
000012a1: JUMP
000012a2: JUMPDEST
000012a3: PUSH2 0x0708
000012a6: DUP4
000012a7: DUP4
000012a8: DUP2
000012a9: MLOAD
000012aa: ISZERO
000012ab: PUSH2 0x12b7
000012ae: JUMPI
000012af: DUP2
000012b0: MLOAD
000012b1: DUP1
000012b2: DUP4
000012b3: PUSH1 0x20
000012b5: ADD
000012b6: REVERT
000012b7: JUMPDEST
000012b8: DUP1
000012b9: PUSH1 0x40
000012bb: MLOAD
000012bc: PUSH3 0x461bcd
000012c0: PUSH1 0xe5
000012c2: SHL
000012c3: DUP2
000012c4: MSTORE
000012c5: PUSH1 0x04
000012c7: ADD
000012c8: PUSH2 0x0905
000012cb: SWAP2
000012cc: SWAP1
000012cd: PUSH2 0x13b3
000012d0: JUMP
000012d1: JUMPDEST
000012d2: PUSH0
000012d3: PUSH1 0x20
000012d5: DUP3
000012d6: DUP5
000012d7: SUB
000012d8: SLT
000012d9: ISZERO
000012da: PUSH2 0x12e1
000012dd: JUMPI
000012de: PUSH0
000012df: DUP1
000012e0: REVERT
000012e1: JUMPDEST
000012e2: POP
000012e3: CALLDATALOAD
000012e4: SWAP2
000012e5: SWAP1
000012e6: POP
000012e7: JUMP
000012e8: JUMPDEST
000012e9: PUSH0
000012ea: PUSH2 0x0180
000012ed: DUP3
000012ee: DUP5
000012ef: SUB
000012f0: SLT
000012f1: ISZERO
000012f2: PUSH2 0x12f9
000012f5: JUMPI
000012f6: PUSH0
000012f7: DUP1
000012f8: REVERT
000012f9: JUMPDEST
000012fa: POP
000012fb: SWAP2
000012fc: SWAP1
000012fd: POP
000012fe: JUMP
000012ff: JUMPDEST
00001300: DUP1
00001301: CALLDATALOAD
00001302: PUSH1 0x01
00001304: PUSH1 0x01
00001306: PUSH1 0xa0
00001308: SHL
00001309: SUB
0000130a: DUP2
0000130b: AND
0000130c: DUP2
0000130d: EQ
0000130e: PUSH2 0x1315
00001311: JUMPI
00001312: PUSH0
00001313: DUP1
00001314: REVERT
00001315: JUMPDEST
00001316: SWAP2
00001317: SWAP1
00001318: POP
00001319: JUMP
0000131a: JUMPDEST
0000131b: PUSH0
0000131c: DUP1
0000131d: PUSH2 0x01a0
00001320: DUP4
00001321: DUP6
00001322: SUB
00001323: SLT
00001324: ISZERO
00001325: PUSH2 0x132c
00001328: JUMPI
00001329: PUSH0
0000132a: DUP1
0000132b: REVERT
0000132c: JUMPDEST
0000132d: PUSH2 0x1336
00001330: DUP5
00001331: DUP5
00001332: PUSH2 0x12e8
00001335: JUMP
00001336: JUMPDEST
00001337: SWAP2
00001338: POP
00001339: PUSH2 0x1345
0000133c: PUSH2 0x0180
0000133f: DUP5
00001340: ADD
00001341: PUSH2 0x12ff
00001344: JUMP
00001345: JUMPDEST
00001346: SWAP1
00001347: POP
00001348: SWAP3
00001349: POP
0000134a: SWAP3
0000134b: SWAP1
0000134c: POP
0000134d: JUMP
0000134e: JUMPDEST
0000134f: PUSH0
00001350: PUSH2 0x0180
00001353: DUP3
00001354: DUP5
00001355: SUB
00001356: SLT
00001357: ISZERO
00001358: PUSH2 0x135f
0000135b: JUMPI
0000135c: PUSH0
0000135d: DUP1
0000135e: REVERT
0000135f: JUMPDEST
00001360: PUSH2 0x0c77
00001363: DUP4
00001364: DUP4
00001365: PUSH2 0x12e8
00001368: JUMP
00001369: JUMPDEST
0000136a: PUSH0
0000136b: DUP1
0000136c: PUSH1 0x40
0000136e: DUP4
0000136f: DUP6
00001370: SUB
00001371: SLT
00001372: ISZERO
00001373: PUSH2 0x137a
00001376: JUMPI
00001377: PUSH0
00001378: DUP1
00001379: REVERT
0000137a: JUMPDEST
0000137b: PUSH2 0x1383
0000137e: DUP4
0000137f: PUSH2 0x12ff
00001382: JUMP
00001383: JUMPDEST
00001384: SWAP5
00001385: PUSH1 0x20
00001387: SWAP4
00001388: SWAP1
00001389: SWAP4
0000138a: ADD
0000138b: CALLDATALOAD
0000138c: SWAP4
0000138d: POP
0000138e: POP
0000138f: POP
00001390: JUMP
00001391: JUMPDEST
00001392: PUSH0
00001393: JUMPDEST
00001394: DUP4
00001395: DUP2
00001396: LT
00001397: ISZERO
00001398: PUSH2 0x13ab
0000139b: JUMPI
0000139c: DUP2
0000139d: DUP2
0000139e: ADD
0000139f: MLOAD
000013a0: DUP4
000013a1: DUP3
000013a2: ADD
000013a3: MSTORE
000013a4: PUSH1 0x20
000013a6: ADD
000013a7: PUSH2 0x1393
000013aa: JUMP
000013ab: JUMPDEST
000013ac: POP
000013ad: POP
000013ae: PUSH0
000013af: SWAP2
000013b0: ADD
000013b1: MSTORE
000013b2: JUMP
000013b3: JUMPDEST
000013b4: PUSH1 0x20
000013b6: DUP2
000013b7: MSTORE
000013b8: PUSH0
000013b9: DUP3
000013ba: MLOAD
000013bb: DUP1
000013bc: PUSH1 0x20
000013be: DUP5
000013bf: ADD
000013c0: MSTORE
000013c1: PUSH2 0x13d1
000013c4: DUP2
000013c5: PUSH1 0x40
000013c7: DUP6
000013c8: ADD
000013c9: PUSH1 0x20
000013cb: DUP8
000013cc: ADD
000013cd: PUSH2 0x1391
000013d0: JUMP
000013d1: JUMPDEST
000013d2: PUSH1 0x1f
000013d4: ADD
000013d5: PUSH1 0x1f
000013d7: NOT
000013d8: AND
000013d9: SWAP2
000013da: SWAP1
000013db: SWAP2
000013dc: ADD
000013dd: PUSH1 0x40
000013df: ADD
000013e0: SWAP3
000013e1: SWAP2
000013e2: POP
000013e3: POP
000013e4: JUMP
000013e5: JUMPDEST
000013e6: PUSH4 0x4e487b71
000013eb: PUSH1 0xe0
000013ed: SHL
000013ee: PUSH0
000013ef: MSTORE
000013f0: PUSH1 0x11
000013f2: PUSH1 0x04
000013f4: MSTORE
000013f5: PUSH1 0x24
000013f7: PUSH0
000013f8: REVERT
000013f9: JUMPDEST
000013fa: DUP1
000013fb: DUP3
000013fc: ADD
000013fd: DUP1
000013fe: DUP3
000013ff: GT
00001400: ISZERO
00001401: PUSH2 0x0c7a
00001404: JUMPI
00001405: PUSH2 0x0c7a
00001408: PUSH2 0x13e5
0000140b: JUMP
0000140c: JUMPDEST
0000140d: DUP2
0000140e: DUP2
0000140f: SUB
00001410: DUP2
00001411: DUP2
00001412: GT
00001413: ISZERO
00001414: PUSH2 0x0c7a
00001417: JUMPI
00001418: PUSH2 0x0c7a
0000141b: PUSH2 0x13e5
0000141e: JUMP
0000141f: JUMPDEST
00001420: DUP1
00001421: DUP3
00001422: MUL
00001423: DUP2
00001424: ISZERO
00001425: DUP3
00001426: DUP3
00001427: DIV
00001428: DUP5
00001429: EQ
0000142a: OR
0000142b: PUSH2 0x0c7a
0000142e: JUMPI
0000142f: PUSH2 0x0c7a
00001432: PUSH2 0x13e5
00001435: JUMP
00001436: JUMPDEST
00001437: PUSH1 0x40
00001439: MLOAD
0000143a: PUSH2 0x0180
0000143d: DUP2
0000143e: ADD
0000143f: PUSH8 0xffffffffffffffff
00001448: DUP2
00001449: GT
0000144a: DUP3
0000144b: DUP3
0000144c: LT
0000144d: OR
0000144e: ISZERO
0000144f: PUSH2 0x1466
00001452: JUMPI
00001453: PUSH4 0x4e487b71
00001458: PUSH1 0xe0
0000145a: SHL
0000145b: PUSH0
0000145c: MSTORE
0000145d: PUSH1 0x41
0000145f: PUSH1 0x04
00001461: MSTORE
00001462: PUSH1 0x24
00001464: PUSH0
00001465: REVERT
00001466: JUMPDEST
00001467: PUSH1 0x40
00001469: MSTORE
0000146a: SWAP1
0000146b: JUMP
0000146c: JUMPDEST
0000146d: PUSH0
0000146e: PUSH2 0x0180
00001471: DUP3
00001472: DUP5
00001473: SUB
00001474: SLT
00001475: ISZERO
00001476: PUSH2 0x147d
00001479: JUMPI
0000147a: PUSH0
0000147b: DUP1
0000147c: REVERT
0000147d: JUMPDEST
0000147e: PUSH2 0x1485
00001481: PUSH2 0x1436
00001484: JUMP
00001485: JUMPDEST
00001486: DUP3
00001487: CALLDATALOAD
00001488: DUP2
00001489: MSTORE
0000148a: PUSH1 0x20
0000148c: DUP4
0000148d: ADD
0000148e: CALLDATALOAD
0000148f: PUSH1 0x20
00001491: DUP3
00001492: ADD
00001493: MSTORE
00001494: PUSH1 0x40
00001496: DUP4
00001497: ADD
00001498: CALLDATALOAD
00001499: PUSH1 0x40
0000149b: DUP3
0000149c: ADD
0000149d: MSTORE
0000149e: PUSH1 0x60
000014a0: DUP4
000014a1: ADD
000014a2: CALLDATALOAD
000014a3: PUSH1 0x60
000014a5: DUP3
000014a6: ADD
000014a7: MSTORE
000014a8: PUSH1 0x80
000014aa: DUP4
000014ab: ADD
000014ac: CALLDATALOAD
000014ad: PUSH1 0x80
000014af: DUP3
000014b0: ADD
000014b1: MSTORE
000014b2: PUSH1 0xa0
000014b4: DUP4
000014b5: ADD
000014b6: CALLDATALOAD
000014b7: PUSH1 0xa0
000014b9: DUP3
000014ba: ADD
000014bb: MSTORE
000014bc: PUSH1 0xc0
000014be: DUP4
000014bf: ADD
000014c0: CALLDATALOAD
000014c1: PUSH1 0xc0
000014c3: DUP3
000014c4: ADD
000014c5: MSTORE
000014c6: PUSH1 0xe0
000014c8: DUP4
000014c9: ADD
000014ca: CALLDATALOAD
000014cb: PUSH1 0xe0
000014cd: DUP3
000014ce: ADD
000014cf: MSTORE
000014d0: PUSH2 0x0100
000014d3: DUP1
000014d4: DUP5
000014d5: ADD
000014d6: CALLDATALOAD
000014d7: DUP2
000014d8: DUP4
000014d9: ADD
000014da: MSTORE
000014db: POP
000014dc: PUSH2 0x0120
000014df: DUP1
000014e0: DUP5
000014e1: ADD
000014e2: CALLDATALOAD
000014e3: DUP2
000014e4: DUP4
000014e5: ADD
000014e6: MSTORE
000014e7: POP
000014e8: PUSH2 0x0140
000014eb: DUP1
000014ec: DUP5
000014ed: ADD
000014ee: CALLDATALOAD
000014ef: DUP2
000014f0: DUP4
000014f1: ADD
000014f2: MSTORE
000014f3: POP
000014f4: PUSH2 0x0160
000014f7: DUP1
000014f8: DUP5
000014f9: ADD
000014fa: CALLDATALOAD
000014fb: DUP2
000014fc: DUP4
000014fd: ADD
000014fe: MSTORE
000014ff: POP
00001500: DUP1
00001501: SWAP2
00001502: POP
00001503: POP
00001504: SWAP3
00001505: SWAP2
00001506: POP
00001507: POP
00001508: JUMP
00001509: JUMPDEST
0000150a: PUSH4 0x4e487b71
0000150f: PUSH1 0xe0
00001511: SHL
00001512: PUSH0
00001513: MSTORE
00001514: PUSH1 0x01
00001516: PUSH1 0x04
00001518: MSTORE
00001519: PUSH1 0x24
0000151b: PUSH0
0000151c: REVERT
0000151d: JUMPDEST
0000151e: PUSH0
0000151f: DUP3
00001520: PUSH2 0x1537
00001523: JUMPI
00001524: PUSH4 0x4e487b71
00001529: PUSH1 0xe0
0000152b: SHL
0000152c: PUSH0
0000152d: MSTORE
0000152e: PUSH1 0x12
00001530: PUSH1 0x04
00001532: MSTORE
00001533: PUSH1 0x24
00001535: PUSH0
00001536: REVERT
00001537: JUMPDEST
00001538: POP
00001539: DIV
0000153a: SWAP1
0000153b: JUMP
0000153c: JUMPDEST
0000153d: PUSH0
0000153e: PUSH1 0x20
00001540: DUP3
00001541: DUP5
00001542: SUB
00001543: SLT
00001544: ISZERO
00001545: PUSH2 0x154c
00001548: JUMPI
00001549: PUSH0
0000154a: DUP1
0000154b: REVERT
0000154c: JUMPDEST
0000154d: DUP2
0000154e: MLOAD
0000154f: DUP1
00001550: ISZERO
00001551: ISZERO
00001552: DUP2
00001553: EQ
00001554: PUSH2 0x155b
00001557: JUMPI
00001558: PUSH0
00001559: DUP1
0000155a: REVERT
0000155b: JUMPDEST
0000155c: SWAP4
0000155d: SWAP3
0000155e: POP
0000155f: POP
00001560: POP
00001561: JUMP
00001562: JUMPDEST
00001563: PUSH0
00001564: DUP3
00001565: MLOAD
00001566: PUSH2 0x1573
00001569: DUP2
0000156a: DUP5
0000156b: PUSH1 0x20
0000156d: DUP8
0000156e: ADD
0000156f: PUSH2 0x1391
00001572: JUMP
00001573: JUMPDEST
00001574: SWAP2
00001575: SWAP1
00001576: SWAP2
00001577: ADD
00001578: SWAP3
00001579: SWAP2
0000157a: POP
0000157b: POP
0000157c: JUMP
0000157d: INVALID
0000157e: LOG2
0000157f: PUSH5 0x6970667358
00001585: UNKNOWN(0x22)
00001586: SLT
00001587: KECCAK256
00001588: PUSH14 0x576d9a2f0055dadb6ae9021bb337
00001597: POP
00001598: SWAP8
00001599: CALLVALUE
0000159a: UNKNOWN(0x2D)
0000159b: SWAP2
0000159c: UNKNOWN(0xB1)
0000159d: UNKNOWN(0xBC)
0000159e: EXTCODEHASH
0000159f: UNKNOWN(0xF7)
000015a0: SMOD
000015a1: GAS
000015a2: LOG3
000015a3: BLOBBASEFEE
000015a4: PUSH31

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x5c766aff380df6b115a84e03625eb365b2e503da582f899346b61938e665ded2
call_targets: 0xeb5a8c825582965f1d84606e078620a84ab16afe
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x5c766aff380df6b115a84e03625eb365b2e503da582f899346b61938e665ded2",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xeb5a8c825582965f1d84606e078620a84ab16afe"
    ],
    "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": "0xd0ee2ace",
            "selector": "0xd0ee2ace",
            "calldata_variants": [
                "0xd0ee2ace",
                "0xd0ee2ace0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd9fbcb8",
            "selector": "0xdd9fbcb8",
            "calldata_variants": [
                "0xdd9fbcb8",
                "0xdd9fbcb80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf6e413f5",
            "selector": "0xf6e413f5",
            "calldata_variants": [
                "0xf6e413f5",
                "0xf6e413f50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa160c05",
            "selector": "0xfa160c05",
            "calldata_variants": [
                "0xfa160c05",
                "0xfa160c050000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xaac1846f",
            "selector": "0xaac1846f",
            "calldata_variants": [
                "0xaac1846f",
                "0xaac1846f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xac8bbc49",
            "selector": "0xac8bbc49",
            "calldata_variants": [
                "0xac8bbc49",
                "0xac8bbc490000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb7f8cf9b",
            "selector": "0xb7f8cf9b",
            "calldata_variants": [
                "0xb7f8cf9b",
                "0xb7f8cf9b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc2283f1f",
            "selector": "0xc2283f1f",
            "calldata_variants": [
                "0xc2283f1f",
                "0xc2283f1f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1996,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2557,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2722,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 6,
    "guards_detected": [],
    "untrusted_call_count": 6
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x5c766aff380df6b115a84e03625eb365b2e503da582f899346b61938e665ded2
call_targets: 0xeb5a8c825582965f1d84606e078620a84ab16afe
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x5c766aff380df6b115a84e03625eb365b2e503da582f899346b61938e665ded2",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xeb5a8c825582965f1d84606e078620a84ab16afe"
    ],
    "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": "0xd0ee2ace",
            "selector": "0xd0ee2ace",
            "calldata_variants": [
                "0xd0ee2ace",
                "0xd0ee2ace0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd9fbcb8",
            "selector": "0xdd9fbcb8",
            "calldata_variants": [
                "0xdd9fbcb8",
                "0xdd9fbcb80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf6e413f5",
            "selector": "0xf6e413f5",
            "calldata_variants": [
                "0xf6e413f5",
                "0xf6e413f50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa160c05",
            "selector": "0xfa160c05",
            "calldata_variants": [
                "0xfa160c05",
                "0xfa160c050000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xaac1846f",
            "selector": "0xaac1846f",
            "calldata_variants": [
                "0xaac1846f",
                "0xaac1846f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xac8bbc49",
            "selector": "0xac8bbc49",
            "calldata_variants": [
                "0xac8bbc49",
                "0xac8bbc490000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb7f8cf9b",
            "selector": "0xb7f8cf9b",
            "calldata_variants": [
                "0xb7f8cf9b",
                "0xb7f8cf9b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc2283f1f",
            "selector": "0xc2283f1f",
            "calldata_variants": [
                "0xc2283f1f",
                "0xc2283f1f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1996,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2557,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2722,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 6,
    "guards_detected": []
}
medium reentrancy codex Interest can be minted multiple times via reentrancy before lastAggUpdateTime is updated 75 no
view
evidence_json
{
    "evidence": "`_mintAggInterest` performs `boldToken.mint(...)` and `stabilityPool.triggerBoldRewards(...)` before setting `lastAggUpdateTime = block.timestamp`.",
    "locations": [
        "contracts/src/ActivePool.sol:248",
        "contracts/src/ActivePool.sol:256",
        "contracts/src/ActivePool.sol:259",
        "contracts/src/ActivePool.sol:264"
    ],
    "recommendation": "Apply checks-effects-interactions: update `lastAggUpdateTime` (and any other relevant aggregate state) before external calls, or add a reentrancy guard to `mintAggInterest`/`mintAggInterestAndAccountForTroveChange`. Alternatively, split reward distribution so external calls happen after all state updates.",
    "exploit_scenario": "If the StabilityPool implementation (or another authorized caller) reenters during `stabilityPool.triggerBoldRewards` inside `_mintAggInterest`, it can call `mintAggInterest()` or `mintAggInterestAndAccountForTroveChange()` again before `lastAggUpdateTime` is set. Because `calcPendingAggInterest()` still uses the old timestamp, the same interest window can be minted repeatedly, inflating BOLD supply and recorded debt."
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 7
}