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

Analysis Run

d2059fa9-7d9b-46bb-87e6-c88defafd461

complete
Chain ID
1
Address
Block Number
Created
Sat, Dec 27, 2025 10:22 PM
Review Summary

What survived the funnel

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

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Untrusted CALL target/value reachable
crit 0 high 0 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
30210 report.consolidate complete 1 / 1 3 months ago
73444 artifact.fetch complete 1 / 3 1 week ago
73445 tool.cast_disasm complete 1 / 3 1 week ago
73446 analysis.bundle complete 1 / 3 1 week ago
73447 capability.graph complete 1 / 3 1 week ago
73448 detector.run complete 1 / 3 1 week ago
73449 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
2
No findings?
no
Summary
Found 2 issues: 1 medium (signature replay risk if gravityId is reused) and 1 low (duplicate validator addresses can reduce effective quorum).
View stderr
[codex:619198] OpenAI Codex v0.77.0 (research preview)
[codex:619198] --------
[codex:619198] workdir: /tmp/codex-multi-glsmobr7
[codex:619198] model: gpt-5.2-codex
[codex:619198] provider: openai
[codex:619198] approval: never
[codex:619198] sandbox: read-only
[codex:619198] reasoning effort: xhigh
[codex:619198] reasoning summaries: auto
[codex:619198] session id: 019b61e0-7636-74f0-94d8-9868e8f118e3
[codex:619198] --------
[codex:619198] user
[codex:619198] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:619198] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:619198] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:619198] 
[codex:619198] Scope rules:
[codex:619198] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:619198] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:619198] 
[codex:619198] Output MUST be valid JSON matching the provided schema.
[codex:619198] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:619198] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:619198] 
[codex:619198] Output constraints (IMPORTANT):
[codex:619198] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:619198] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:619198] mcp startup: no servers
[codex:619198] 
[codex:619198] thinking
[codex:619198] **Checking for instructions in AUDIT_BUNDLE.txt**
[codex:619198] exec
[codex:619198] /bin/bash -lc ls in /tmp/codex-multi-glsmobr7 succeeded in 6ms:
[codex:619198] AUDIT_BUNDLE.txt
[codex:619198] codex-output-schema.json
[codex:619198] contracts
[codex:619198] exec
[codex:619198] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-glsmobr7 succeeded in 5ms:
[codex:619198] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:619198] 
[codex:619198] ================================================================================
[codex:619198] FILE: contracts/@openzeppelin/contracts/security/ReentrancyGuard.sol
[codex:619198] ================================================================================
[codex:619198] // SPDX-License-Identifier: MIT
[codex:619198] 
[codex:619198] pragma solidity ^0.8.0;
[codex:619198] 
[codex:619198] /**
[codex:619198]  * @dev Contract module that helps prevent reentrant calls to a function.
[codex:619198]  *
[codex:619198]  * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
[codex:619198]  * available, which can be applied to functions to make sure there are no nested
[codex:619198]  * (reentrant) calls to them.
[codex:619198]  *
[codex:619198]  * Note that because there is a single `nonReentrant` guard, functions marked as
[codex:619198]  * `nonReentrant` may not call one another. This can be worked around by making
[codex:619198]  * those functions `private`, and then adding `external` `nonReentrant` entry
[codex:619198]  * points to them.
[codex:619198] 
[codex:619198] thinking
[codex:619198] **Searching for first-party contract files**
[codex:619198] exec
[codex:619198] /bin/bash -lc 'rg -n "''^FILE: contracts/" AUDIT_BUNDLE.txt' in /tmp/codex-multi-glsmobr7 succeeded in 7ms:
[codex:619198] 4:FILE: contracts/@openzeppelin/contracts/security/ReentrancyGuard.sol
[codex:619198] 70:FILE: contracts/@openzeppelin/contracts/token/ERC20/ERC20.sol
[codex:619198] 429:FILE: contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol
[codex:619198] 514:FILE: contracts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol
[codex:619198] 545:FILE: contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
[codex:619198] 647:FILE: contracts/@openzeppelin/contracts/utils/Address.sol
[codex:619198] 867:FILE: contracts/@openzeppelin/contracts/utils/Context.sol
[codex:619198] 894:FILE: contracts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol
[codex:619198] 1117:FILE: contracts/contracts/CosmosToken.sol
[codex:619198] 1156:FILE: contracts/contracts/Gravity.sol
[codex:619198] 
[codex:619198] thinking
[codex:619198] **Inspecting CosmosToken contract**
[codex:619198] exec
[codex:619198] /bin/bash -lc 'cat contracts/contracts/CosmosToken.sol' in /tmp/codex-multi-glsmobr7 succeeded in 5ms:
[codex:619198] //SPDX-License-Identifier: Apache-2.0
[codex:619198] pragma solidity 0.8.10;
[codex:619198] import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
[codex:619198] 
[codex:619198] contract CosmosERC20 is ERC20 {
[codex:619198] 	uint256 MAX_UINT = 2**256 - 1;
[codex:619198] 	uint8 private cosmosDecimals;
[codex:619198] 	address private gravityAddress;
[codex:619198] 
[codex:619198] 	// This override ensures we return the proper number of decimals
[codex:619198] 	// for the cosmos token
[codex:619198] 	function decimals() public view virtual override returns (uint8) {
[codex:619198] 		return cosmosDecimals;
[codex:619198] 	}
[codex:619198] 
[codex:619198] 	// This is not an accurate total supply. Instead this is the total supply
[codex:619198] 	// of the given cosmos asset on Ethereum at this moment in time. Keeping
[codex:619198] 	// a totally accurate supply would require constant updates from the Cosmos
[codex:619198] 	// side, while in theory this could be piggy-backed on some existing bridge
[codex:619198] 	// operation it's a lot of complextiy to add so we chose to forgoe it.
[codex:619198] 
[codex:619198] thinking
[codex:619198] **Checking Gravity.sol location**
[codex:619198] exec
[codex:619198] /bin/bash -lc 'cat contracts/contracts/Gravity.sol' in /tmp/codex-multi-glsmobr7 succeeded in 5ms:
[codex:619198] //SPDX-License-Identifier: Apache-2.0
[codex:619198] pragma solidity 0.8.10;
[codex:619198] 
[codex:619198] import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:619198] import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:619198] import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
[codex:619198] import "@openzeppelin/contracts/utils/Address.sol";
[codex:619198] import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
[codex:619198] import "./CosmosToken.sol";
[codex:619198] 
[codex:619198] error InvalidSignature();
[codex:619198] error InvalidValsetNonce(uint256 newNonce, uint256 currentNonce);
[codex:619198] error InvalidBatchNonce(uint256 newNonce, uint256 currentNonce);
[codex:619198] error InvalidLogicCallNonce(uint256 newNonce, uint256 currentNonce);
[codex:619198] error InvalidLogicCallTransfers();
[codex:619198] error InvalidLogicCallFees();
[codex:619198] error InvalidSendToCosmos();
[codex:619198] error IncorrectCheckpoint();
[codex:619198] error MalformedNewValidatorSet();
[codex:619198] error MalformedCurrentValidatorSet();
[codex:619198] 
[codex:619198] 
[codex:619198] 
[codex:619198] 
[codex:619198] 
[codex:619198] 
[codex:619198] thinking
[codex:619198] **Analyzing Gravity Bridge vulnerabilities**
[codex:619198] 
[codex:619198] I’m examining the Gravity Bridge contract for various vulnerabilities like reentrancy, signature validation, and access control. I’m considering specific functions such as updateValset, deployERC20, and submitBatch, checking for missing nonReentrant guards, signature uniqueness, and potential DoS via permissionless token deployment. This walkthrough digs into subtle risks around signature duplication, event nonce spamming, and the implications of permissionless deployERC20 calls, while noting mitigation by required signatures and contract design choices.
[codex:619198] thinking
[codex:619198] **Highlighting signature and call validations**
[codex:619198] 
[codex:619198] I’m exploring issues like missing uniqueness checks for validators leading to signature duplication, effects of non-standard signature values, and risks from the permissionless deployERC20 function enabling event nonce spamming. I also consider reentrancy through logic calls, signature ordering enforcement, and edge cases in token handling that might affect Bridge operations or event integrity.
[codex:619198] thinking
[codex:619198] **Examining state updates and reentrancy risks**
[codex:619198] 
[codex:619198] I’m reviewing subtle issues like potential event nonce ordering disruptions from reentrant calls during reward token transfers in updateValset, implications of permissionless deployERC20 spamming event nonces, and ERC20 nonstandard behaviors affecting bridging amounts. I also analyze signature checks, overflow protections, and how token transfers interact with contract state, aiming to find meaningful vulnerabilities or confirm robustness.
[codex:619198] thinking
[codex:619198] **Assessing logic call risks and event nonce sequencing**
[codex:619198] 
[codex:619198] I’m considering how the logic call might let contracts drain tokens unexpectedly by leveraging Gravity’s token holdings, and exploring implications of event nonce incrementation in valset updates that could cause mismatches with Cosmos module expectations. I’m weighing governance concerns and protocol design quirks versus exploitable flaws while reviewing signature schemes and state initialization nuances.
[codex:619198] thinking
[codex:619198] **Analyzing validator duplicates and token amount risks**
[codex:619198] 
[codex:619198] I’m examining implications of validator address duplicates allowing signature reuse to inflate voting power, assessment of event nonce DoS vectors via permissionless token deployment, and potential token balance manipulation causing inaccurate bridging amounts. These nuances reveal integration and design risks more than direct exploits, but I want to highlight them clearly before concluding.
[codex:619198] thinking
[codex:619198] **Identifying signature replay due to limited domain separation**
[codex:619198] 
[codex:619198] I’m noticing that signatures depend on gravityId alone without including contract address or chain ID, which means if gravityId is reused across deployments or chains, signatures can be replayed. This creates a plausible replay attack scenario if deployments share the same gravityId, so while it’s likely a configuration risk, it stands out as a meaningful issue worth reporting.
[codex:619198] exec
[codex:619198] /bin/bash -lc "nl -ba contracts/contracts/Gravity.sol | sed -n '60,200p'" in /tmp/codex-multi-glsmobr7 succeeded in 8ms:
[codex:619198]     60	struct Signature {
[codex:619198]     61		uint8 v;
[codex:619198]     62		bytes32 r;
[codex:619198]     63		bytes32 s;
[codex:619198]     64	}
[codex:619198]     65	
[codex:619198]     66	contract Gravity is ReentrancyGuard {
[codex:619198]     67		using SafeERC20 for IERC20;
[codex:619198]     68	
[codex:619198]     69		// The number of 'votes' required to execute a valset
[codex:619198]     70		// update or batch execution, set to 2/3 of 2^32
[codex:619198]     71		uint256 constant constant_powerThreshold = 2863311530;
[codex:619198]     72	
[codex:619198]     73		// These are updated often
[codex:619198]     74		bytes32 public state_lastValsetCheckpoint;
[codex:619198]     75		mapping(address => uint256) public state_lastBatchNonces;
[codex:619198]     76		mapping(bytes32 => uint256) public state_invalidationMapping;
[codex:619198]     77		uint256 public state_lastValsetNonce = 0;
[codex:619198]     78		// event nonce zero is reserved by the Cosmos module as a special
[codex:619198]     79		// value indicating that no events have yet been submitted
[codex:619198] 
[codex:619198] thinking
[codex:619198] **Continuing implementation for submitBatch and submitLogicCall**
[codex:619198] exec
[codex:619198] /bin/bash -lc "nl -ba contracts/contracts/Gravity.sol | sed -n '200,380p'" in /tmp/codex-multi-glsmobr7 succeeded in 6ms:
[codex:619198]    200				)
[codex:619198]    201			);
[codex:619198]    202	
[codex:619198]    203			return checkpoint;
[codex:619198]    204		}
[codex:619198]    205	
[codex:619198]    206		function checkValidatorSignatures(
[codex:619198]    207			// The current validator set and their powers
[codex:619198]    208			ValsetArgs calldata _currentValset,
[codex:619198]    209			// The current validator's signatures
[codex:619198]    210			Signature[] calldata _sigs,
[codex:619198]    211			// This is what we are checking they have signed
[codex:619198]    212			bytes32 _theHash,
[codex:619198]    213			uint256 _powerThreshold
[codex:619198]    214		) private pure {
[codex:619198]    215			uint256 cumulativePower = 0;
[codex:619198]    216	
[codex:619198]    217			for (uint256 i = 0; i < _currentValset.validators.length; i++) {
[codex:619198]    218				// If v is set to 0, this signifies that it was not possible to get a signature from this validator and we skip evaluation
[codex:619198]    219				// (In a valid signature, it is either 27 or 28)
[codex:619198] 
[codex:619198] thinking
[codex:619198] **Continuing examination of hash**
[codex:619198] exec
[codex:619198] /bin/bash -lc "nl -ba contracts/contracts/Gravity.sol | sed -n '380,560p'" in /tmp/codex-multi-glsmobr7 succeeded in 6ms:
[codex:619198]    380				if (block.number >= _batchTimeout) {
[codex:619198]    381					revert BatchTimedOut();
[codex:619198]    382				}
[codex:619198]    383	
[codex:619198]    384				// Check that current validators, powers, and signatures (v,r,s) set is well-formed
[codex:619198]    385				validateValset(_currentValset, _sigs);
[codex:619198]    386	
[codex:619198]    387				// Check that the supplied current validator set matches the saved checkpoint
[codex:619198]    388				if (makeCheckpoint(_currentValset, state_gravityId) != state_lastValsetCheckpoint) {
[codex:619198]    389					revert IncorrectCheckpoint();
[codex:619198]    390				}
[codex:619198]    391	
[codex:619198]    392				// Check that the transaction batch is well-formed
[codex:619198]    393				if (_amounts.length != _destinations.length || _amounts.length != _fees.length) {
[codex:619198]    394					revert MalformedBatch();
[codex:619198]    395				}
[codex:619198]    396	
[codex:619198]    397				// Check that enough current validators have signed off on the transaction batch and valset
[codex:619198]    398				checkValidatorSignatures(
[codex:619198]    399					_currentValset,
[codex:619198] 
[codex:619198] thinking
[codex:619198] **Continuing data transmission**
[codex:619198] exec
[codex:619198] /bin/bash -lc "nl -ba contracts/contracts/Gravity.sol | sed -n '560,740p'" in /tmp/codex-multi-glsmobr7 succeeded in 6ms:
[codex:619198]    560			// we snapshot our current balance of this token
[codex:619198]    561			uint256 ourStartingBalance = IERC20(_tokenContract).balanceOf(address(this));
[codex:619198]    562	
[codex:619198]    563			// attempt to transfer the user specified amount
[codex:619198]    564			IERC20(_tokenContract).safeTransferFrom(msg.sender, address(this), _amount);
[codex:619198]    565	
[codex:619198]    566			// check what this particular ERC20 implementation actually gave us, since it doesn't
[codex:619198]    567			// have to be at all related to the _amount
[codex:619198]    568			uint256 ourEndingBalance = IERC20(_tokenContract).balanceOf(address(this));
[codex:619198]    569	
[codex:619198]    570			// a very strange ERC20 may trigger this condition, if we didn't have this we would
[codex:619198]    571			// underflow, so it's mostly just an error message printer
[codex:619198]    572			if (ourEndingBalance <= ourStartingBalance) {
[codex:619198]    573				revert InvalidSendToCosmos();
[codex:619198]    574			}
[codex:619198]    575	
[codex:619198]    576			state_lastEventNonce = state_lastEventNonce + 1;
[codex:619198]    577	
[codex:619198]    578			// emit to Cosmos the actual amount our balance has changed, rather than the user
[codex:619198]    579			// provided amount. This protects against a small set of wonky ERC20 behavior, like
[codex:619198] 
[codex:619198] thinking
[codex:619198] **Adding line numbers for CosmosToken**
[codex:619198] exec
[codex:619198] /bin/bash -lc 'nl -ba contracts/contracts/CosmosToken.sol' in /tmp/codex-multi-glsmobr7 succeeded in 6ms:
[codex:619198]      1	//SPDX-License-Identifier: Apache-2.0
[codex:619198]      2	pragma solidity 0.8.10;
[codex:619198]      3	import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
[codex:619198]      4	
[codex:619198]      5	contract CosmosERC20 is ERC20 {
[codex:619198]      6		uint256 MAX_UINT = 2**256 - 1;
[codex:619198]      7		uint8 private cosmosDecimals;
[codex:619198]      8		address private gravityAddress;
[codex:619198]      9	
[codex:619198]     10		// This override ensures we return the proper number of decimals
[codex:619198]     11		// for the cosmos token
[codex:619198]     12		function decimals() public view virtual override returns (uint8) {
[codex:619198]     13			return cosmosDecimals;
[codex:619198]     14		}
[codex:619198]     15	
[codex:619198]     16		// This is not an accurate total supply. Instead this is the total supply
[codex:619198]     17		// of the given cosmos asset on Ethereum at this moment in time. Keeping
[codex:619198]     18		// a totally accurate supply would require constant updates from the Cosmos
[codex:619198]     19		// side, while in theory this could be piggy-backed on some existing bridge
[codex:619198]     20		// operation it's a lot of complextiy to add so we chose to forgoe it.
[codex:619198] 
[codex:619198] 
[codex:619198] thinking
[codex:619198] **Composing detailed findings JSON**
[codex:619198] 
[codex:619198] I'm crafting a JSON report with two findings: one medium-severity auth issue about missing domain separation causing signature replay risks across deployments, and one low-severity auth issue about duplicate validator addresses allowing signature reuse to inflate validator power. I'll carefully include titles, categories, severities, exploit scenarios, recommendations, evidence, and code locations to make the report clear and precise.
[codex:619198] thinking
[codex:619198] **Finalizing detailed JSON report**
[codex:619198] 
[codex:619198] I'm wrapping up the JSON output describing two findings: a medium-severity domain separation replay risk with its evidence and locations, and a low-severity duplicate validator address issue, complete with scenarios, recommendations, and precise contract line references. Ensuring the JSON is well-formed and matches the requested schema.
[codex:619198] codex
[codex:619198] {"no_findings":false,"summary":"Found 2 issues: 1 medium (signature replay risk if gravityId is reused) and 1 low (duplicate validator addresses can reduce effective quorum).","findings":[{"severity":"medium","category":"auth","title":"Signatures are not domain-separated by contract address or chain ID","exploit_scenario":"If the same gravityId is reused across multiple Gravity deployments (or chains), any signed batch/logic-call/valset update from one deployment can be replayed on another. An attacker can submit previously valid signatures to execute withdrawals on the other contract, draining its balances.","recommendation":"Include domain separation in all signed hashes by incorporating `address(this)` and/or `block.chainid` (and enforce unique gravityId on deployment). This prevents cross-deployment or cross-chain signature replay even if gravityId is misconfigured.","evidence":"Signed payloads and checkpoints only include `state_gravityId` as the domain separator; contract address/chain ID are not included.","locations":["contracts/contracts/Gravity.sol:183","contracts/contracts/Gravity.sol:402","contracts/contracts/Gravity.sol:495"]},{"severity":"low","category":"auth","title":"Validator address uniqueness is not enforced in valsets","exploit_scenario":"If a valset is created with duplicate validator addresses (accidentally or via operator error), a single validator can reuse its signature for each duplicate entry and have its power counted multiple times. This reduces the effective number of distinct signers required to reach the threshold and can enable unauthorized batch/valset execution.","recommendation":"Validate that `_valset.validators` contains unique addresses when initializing and updating the validator set (and consider enforcing sorted powers to match assumptions).","evidence":"`validateValset` only checks array lengths; `checkValidatorSignatures` counts power per entry and does not prevent duplicate signer addresses or reused signatures.","locations":["contracts/contracts/Gravity.sol:165","contracts/contracts/Gravity.sol:217"]}]}
[codex:619198] tokens used
[codex:619198] 55,698
[codex:619198] {"no_findings":false,"summary":"Found 2 issues: 1 medium (signature replay risk if gravityId is reused) and 1 low (duplicate validator addresses can reduce effective quorum).","findings":[{"severity":"medium","category":"auth","title":"Signatures are not domain-separated by contract address or chain ID","exploit_scenario":"If the same gravityId is reused across multiple Gravity deployments (or chains), any signed batch/logic-call/valset update from one deployment can be replayed on another. An attacker can submit previously valid signatures to execute withdrawals on the other contract, draining its balances.","recommendation":"Include domain separation in all signed hashes by incorporating `address(this)` and/or `block.chainid` (and enforce unique gravityId on deployment). This prevents cross-deployment or cross-chain signature replay even if gravityId is misconfigured.","evidence":"Signed payloads and checkpoints only include `state_gravityId` as the domain separator; contract address/chain ID are not included.","locations":["contracts/contracts/Gravity.sol:183","contracts/contracts/Gravity.sol:402","contracts/contracts/Gravity.sol:495"]},{"severity":"low","category":"auth","title":"Validator address uniqueness is not enforced in valsets","exploit_scenario":"If a valset is created with duplicate validator addresses (accidentally or via operator error), a single validator can reuse its signature for each duplicate entry and have its power counted multiple times. This reduces the effective number of distinct signers required to reach the threshold and can enable unauthorized batch/valset execution.","recommendation":"Validate that `_valset.validators` contains unique addresses when initializing and updating the validator set (and consider enforcing sorted powers to match assumptions).","evidence":"`validateValset` only checks array lengths; `checkValidatorSignatures` counts power per entry and does not prevent duplicate signer addresses or reused signatures.","locations":["contracts/contracts/Gravity.sol:165","contracts/contracts/Gravity.sol:217"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-27T22:22:04.952735+00:00",
        "returncode": 0
    },
    "summary": "Found 2 issues: 1 medium (signature replay risk if gravityId is reused) and 1 low (duplicate validator addresses can reduce effective quorum).",
    "raw_final": {
        "summary": "Found 2 issues: 1 medium (signature replay risk if gravityId is reused) and 1 low (duplicate validator addresses can reduce effective quorum).",
        "findings": [
            {
                "title": "Signatures are not domain-separated by contract address or chain ID",
                "category": "auth",
                "evidence": "Signed payloads and checkpoints only include `state_gravityId` as the domain separator; contract address/chain ID are not included.",
                "severity": "medium",
                "locations": [
                    "contracts/contracts/Gravity.sol:183",
                    "contracts/contracts/Gravity.sol:402",
                    "contracts/contracts/Gravity.sol:495"
                ],
                "recommendation": "Include domain separation in all signed hashes by incorporating `address(this)` and/or `block.chainid` (and enforce unique gravityId on deployment). This prevents cross-deployment or cross-chain signature replay even if gravityId is misconfigured.",
                "exploit_scenario": "If the same gravityId is reused across multiple Gravity deployments (or chains), any signed batch/logic-call/valset update from one deployment can be replayed on another. An attacker can submit previously valid signatures to execute withdrawals on the other contract, draining its balances."
            },
            {
                "title": "Validator address uniqueness is not enforced in valsets",
                "category": "auth",
                "evidence": "`validateValset` only checks array lengths; `checkValidatorSignatures` counts power per entry and does not prevent duplicate signer addresses or reused signatures.",
                "severity": "low",
                "locations": [
                    "contracts/contracts/Gravity.sol:165",
                    "contracts/contracts/Gravity.sol:217"
                ],
                "recommendation": "Validate that `_valset.validators` contains unique addresses when initializing and updating the validator set (and consider enforcing sorted powers to match assumptions).",
                "exploit_scenario": "If a valset is created with duplicate validator addresses (accidentally or via operator error), a single validator can reuse its signature for each duplicate entry and have its power counted multiple times. This reduces the effective number of distinct signers required to reach the threshold and can enable unauthorized batch/valset execution."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
4
EXT*/BALANCE
1
Total opcodes
8461
Flags
create_opcodes_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLVALUE
00000006: DUP1
00000007: ISZERO
00000008: PUSH3 0x000011
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: DUP1
00000010: REVERT
00000011: JUMPDEST
00000012: POP
00000013: PUSH1 0x04
00000015: CALLDATASIZE
00000016: LT
00000017: PUSH3 0x000108
0000001b: JUMPI
0000001c: PUSH1 0x00
0000001e: CALLDATALOAD
0000001f: PUSH1 0xe0
00000021: SHR
00000022: DUP1
00000023: PUSH4 0x8690ff98
00000028: GT
00000029: PUSH3 0x0000a3
0000002d: JUMPI
0000002e: DUP1
0000002f: PUSH4 0xc9d194d5
00000034: GT
00000035: PUSH3 0x00006e
00000039: JUMPI
0000003a: DUP1
0000003b: PUSH4 0xc9d194d5
00000040: EQ
00000041: PUSH3 0x000236
00000045: JUMPI
00000046: DUP1
00000047: PUSH4 0xdf97174b
0000004c: EQ
0000004d: PUSH3 0x000259
00000051: JUMPI
00000052: DUP1
00000053: PUSH4 0xf2b53307
00000058: EQ
00000059: PUSH3 0x00027c
0000005d: JUMPI
0000005e: DUP1
0000005f: PUSH4 0xf7955637
00000064: EQ
00000065: PUSH3 0x000286
00000069: JUMPI
0000006a: PUSH1 0x00
0000006c: DUP1
0000006d: REVERT
0000006e: JUMPDEST
0000006f: DUP1
00000070: PUSH4 0x8690ff98
00000075: EQ
00000076: PUSH3 0x0001d6
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0xaca6b1c1
00000081: EQ
00000082: PUSH3 0x0001ed
00000086: JUMPI
00000087: DUP1
00000088: PUSH4 0xb56561fe
0000008d: EQ
0000008e: PUSH3 0x000204
00000092: JUMPI
00000093: DUP1
00000094: PUSH4 0xbdda81d4
00000099: EQ
0000009a: PUSH3 0x00020e
0000009e: JUMPI
0000009f: PUSH1 0x00
000000a1: DUP1
000000a2: REVERT
000000a3: JUMPDEST
000000a4: DUP1
000000a5: PUSH4 0x0f212357
000000aa: GT
000000ab: PUSH3 0x0000e4
000000af: JUMPI
000000b0: DUP1
000000b1: PUSH4 0x0f212357
000000b6: EQ
000000b7: PUSH3 0x00017b
000000bb: JUMPI
000000bc: DUP1
000000bd: PUSH4 0x6941db93
000000c2: EQ
000000c3: PUSH3 0x000192
000000c7: JUMPI
000000c8: DUP1
000000c9: PUSH4 0x73b20547
000000ce: EQ
000000cf: PUSH3 0x0001a9
000000d3: JUMPI
000000d4: DUP1
000000d5: PUSH4 0x7dfb6f86
000000da: EQ
000000db: PUSH3 0x0001b3
000000df: JUMPI
000000e0: PUSH1 0x00
000000e2: DUP1
000000e3: REVERT
000000e4: JUMPDEST
000000e5: DUP1
000000e6: PUSH3 0x901153
000000ea: EQ
000000eb: PUSH3 0x00010d
000000ef: JUMPI
000000f0: DUP1
000000f1: PUSH4 0x01031525
000000f6: EQ
000000f7: PUSH3 0x000126
000000fb: JUMPI
000000fc: DUP1
000000fd: PUSH4 0x011b2174
00000102: EQ
00000103: PUSH3 0x00013d
00000107: JUMPI
00000108: JUMPDEST
00000109: PUSH1 0x00
0000010b: DUP1
0000010c: REVERT
0000010d: JUMPDEST
0000010e: PUSH3 0x000124
00000112: PUSH3 0x00011e
00000116: CALLDATASIZE
00000117: PUSH1 0x04
00000119: PUSH3 0x001893
0000011d: JUMP
0000011e: JUMPDEST
0000011f: PUSH3 0x00029d
00000123: JUMP
00000124: JUMPDEST
00000125: STOP
00000126: JUMPDEST
00000127: PUSH3 0x000124
0000012b: PUSH3 0x000137
0000012f: CALLDATASIZE
00000130: PUSH1 0x04
00000132: PUSH3 0x001914
00000136: JUMP
00000137: JUMPDEST
00000138: PUSH3 0x0002b3
0000013c: JUMP
0000013d: JUMPDEST
0000013e: PUSH3 0x000169
00000142: PUSH3 0x00014e
00000146: CALLDATASIZE
00000147: PUSH1 0x04
00000149: PUSH3 0x001979
0000014d: JUMP
0000014e: JUMPDEST
0000014f: PUSH1 0x01
00000151: PUSH1 0x01
00000153: PUSH1 0xa0
00000155: SHL
00000156: SUB
00000157: AND
00000158: PUSH1 0x00
0000015a: SWAP1
0000015b: DUP2
0000015c: MSTORE
0000015d: PUSH1 0x02
0000015f: PUSH1 0x20
00000161: MSTORE
00000162: PUSH1 0x40
00000164: SWAP1
00000165: KECCAK256
00000166: SLOAD
00000167: SWAP1
00000168: JUMP
00000169: JUMPDEST
0000016a: PUSH1 0x40
0000016c: MLOAD
0000016d: SWAP1
0000016e: DUP2
0000016f: MSTORE
00000170: PUSH1 0x20
00000172: ADD
00000173: PUSH1 0x40
00000175: MLOAD
00000176: DUP1
00000177: SWAP2
00000178: SUB
00000179: SWAP1
0000017a: RETURN
0000017b: JUMPDEST
0000017c: PUSH3 0x000124
00000180: PUSH3 0x00018c
00000184: CALLDATASIZE
00000185: PUSH1 0x04
00000187: PUSH3 0x0019db
0000018b: JUMP
0000018c: JUMPDEST
0000018d: PUSH3 0x0002ce
00000191: JUMP
00000192: JUMPDEST
00000193: PUSH3 0x000124
00000197: PUSH3 0x0001a3
0000019b: CALLDATASIZE
0000019c: PUSH1 0x04
0000019e: PUSH3 0x001c29
000001a2: JUMP
000001a3: JUMPDEST
000001a4: PUSH3 0x000490
000001a8: JUMP
000001a9: JUMPDEST
000001aa: PUSH3 0x000169
000001ae: PUSH1 0x05
000001b0: SLOAD
000001b1: DUP2
000001b2: JUMP
000001b3: JUMPDEST
000001b4: PUSH3 0x000169
000001b8: PUSH3 0x0001c4
000001bc: CALLDATASIZE
000001bd: PUSH1 0x04
000001bf: PUSH3 0x001dc5
000001c3: JUMP
000001c4: JUMPDEST
000001c5: PUSH1 0x03
000001c7: PUSH1 0x20
000001c9: MSTORE
000001ca: PUSH1 0x00
000001cc: SWAP1
000001cd: DUP2
000001ce: MSTORE
000001cf: PUSH1 0x40
000001d1: SWAP1
000001d2: KECCAK256
000001d3: SLOAD
000001d4: DUP2
000001d5: JUMP
000001d6: JUMPDEST
000001d7: PUSH3 0x000124
000001db: PUSH3 0x0001e7
000001df: CALLDATASIZE
000001e0: PUSH1 0x04
000001e2: PUSH3 0x001e26
000001e6: JUMP
000001e7: JUMPDEST
000001e8: PUSH3 0x000825
000001ec: JUMP
000001ed: JUMPDEST
000001ee: PUSH3 0x000124
000001f2: PUSH3 0x0001fe
000001f6: CALLDATASIZE
000001f7: PUSH1 0x04
000001f9: PUSH3 0x001f5f
000001fd: JUMP
000001fe: JUMPDEST
000001ff: PUSH3 0x000b7a
00000203: JUMP
00000204: JUMPDEST
00000205: PUSH3 0x000169
00000209: PUSH1 0x04
0000020b: SLOAD
0000020c: DUP2
0000020d: JUMP
0000020e: JUMPDEST
0000020f: PUSH3 0x000169
00000213: PUSH32 0x677261766974792d6272696467652d6d61696e6e657400000000000000000000
00000234: DUP2
00000235: JUMP
00000236: JUMPDEST
00000237: PUSH3 0x000169
0000023b: PUSH3 0x000247
0000023f: CALLDATASIZE
00000240: PUSH1 0x04
00000242: PUSH3 0x001dc5
00000246: JUMP
00000247: JUMPDEST
00000248: PUSH1 0x00
0000024a: SWAP1
0000024b: DUP2
0000024c: MSTORE
0000024d: PUSH1 0x03
0000024f: PUSH1 0x20
00000251: MSTORE
00000252: PUSH1 0x40
00000254: SWAP1
00000255: KECCAK256
00000256: SLOAD
00000257: SWAP1
00000258: JUMP
00000259: JUMPDEST
0000025a: PUSH3 0x000169
0000025e: PUSH3 0x00026a
00000262: CALLDATASIZE
00000263: PUSH1 0x04
00000265: PUSH3 0x001979
00000269: JUMP
0000026a: JUMPDEST
0000026b: PUSH1 0x02
0000026d: PUSH1 0x20
0000026f: MSTORE
00000270: PUSH1 0x00
00000272: SWAP1
00000273: DUP2
00000274: MSTORE
00000275: PUSH1 0x40
00000277: SWAP1
00000278: KECCAK256
00000279: SLOAD
0000027a: DUP2
0000027b: JUMP
0000027c: JUMPDEST
0000027d: PUSH3 0x000169
00000281: PUSH1 0x01
00000283: SLOAD
00000284: DUP2
00000285: JUMP
00000286: JUMPDEST
00000287: PUSH3 0x000124
0000028b: PUSH3 0x000297
0000028f: CALLDATASIZE
00000290: PUSH1 0x04
00000292: PUSH3 0x002005
00000296: JUMP
00000297: JUMPDEST
00000298: PUSH3 0x000e69
0000029c: JUMP
0000029d: JUMPDEST
0000029e: PUSH3 0x0002ac
000002a2: DUP6
000002a3: DUP6
000002a4: DUP6
000002a5: DUP6
000002a6: DUP6
000002a7: PUSH3 0x000f21
000002ab: JUMP
000002ac: JUMPDEST
000002ad: POP
000002ae: POP
000002af: POP
000002b0: POP
000002b1: POP
000002b2: JUMP
000002b3: JUMPDEST
000002b4: PUSH3 0x0002c9
000002b8: PUSH3 0x0002c2
000002bc: DUP4
000002bd: PUSH3 0x0020bb
000002c1: JUMP
000002c2: JUMPDEST
000002c3: DUP3
000002c4: PUSH3 0x00107b
000002c8: JUMP
000002c9: JUMPDEST
000002ca: POP
000002cb: POP
000002cc: POP
000002cd: JUMP
000002ce: JUMPDEST
000002cf: PUSH1 0x02
000002d1: PUSH1 0x00
000002d3: SLOAD
000002d4: EQ
000002d5: ISZERO
000002d6: PUSH3 0x0002fd
000002da: JUMPI
000002db: PUSH1 0x40
000002dd: MLOAD
000002de: PUSH3 0x461bcd
000002e2: PUSH1 0xe5
000002e4: SHL
000002e5: DUP2
000002e6: MSTORE
000002e7: PUSH1 0x04
000002e9: ADD
000002ea: PUSH3 0x0002f4
000002ee: SWAP1
000002ef: PUSH3 0x002171
000002f3: JUMP
000002f4: JUMPDEST
000002f5: PUSH1 0x40
000002f7: MLOAD
000002f8: DUP1
000002f9: SWAP2
000002fa: SUB
000002fb: SWAP1
000002fc: REVERT
000002fd: JUMPDEST
000002fe: PUSH1 0x02
00000300: PUSH1 0x00
00000302: SWAP1
00000303: DUP2
00000304: SSTORE
00000305: PUSH1 0x40
00000307: MLOAD
00000308: PUSH4 0x70a08231
0000030d: PUSH1 0xe0
0000030f: SHL
00000310: DUP2
00000311: MSTORE
00000312: ADDRESS
00000313: PUSH1 0x04
00000315: DUP3
00000316: ADD
00000317: MSTORE
00000318: PUSH1 0x01
0000031a: PUSH1 0x01
0000031c: PUSH1 0xa0
0000031e: SHL
0000031f: SUB
00000320: DUP7
00000321: AND
00000322: SWAP1
00000323: PUSH4 0x70a08231
00000328: SWAP1
00000329: PUSH1 0x24
0000032b: ADD
0000032c: PUSH1 0x20
0000032e: PUSH1 0x40
00000330: MLOAD
00000331: DUP1
00000332: DUP4
00000333: SUB
00000334: DUP2
00000335: DUP7
00000336: GAS
00000337: STATICCALL
00000338: ISZERO
00000339: DUP1
0000033a: ISZERO
0000033b: PUSH3 0x000349
0000033f: JUMPI
00000340: RETURNDATASIZE
00000341: PUSH1 0x00
00000343: DUP1
00000344: RETURNDATACOPY
00000345: RETURNDATASIZE
00000346: PUSH1 0x00
00000348: REVERT
00000349: JUMPDEST
0000034a: POP
0000034b: POP
0000034c: POP
0000034d: POP
0000034e: PUSH1 0x40
00000350: MLOAD
00000351: RETURNDATASIZE
00000352: PUSH1 0x1f
00000354: NOT
00000355: PUSH1 0x1f
00000357: DUP3
00000358: ADD
00000359: AND
0000035a: DUP3
0000035b: ADD
0000035c: DUP1
0000035d: PUSH1 0x40
0000035f: MSTORE
00000360: POP
00000361: DUP2
00000362: ADD
00000363: SWAP1
00000364: PUSH3 0x00036f
00000368: SWAP2
00000369: SWAP1
0000036a: PUSH3 0x0021a8
0000036e: JUMP
0000036f: JUMPDEST
00000370: SWAP1
00000371: POP
00000372: PUSH3 0x000388
00000376: PUSH1 0x01
00000378: PUSH1 0x01
0000037a: PUSH1 0xa0
0000037c: SHL
0000037d: SUB
0000037e: DUP7
0000037f: AND
00000380: CALLER
00000381: ADDRESS
00000382: DUP6
00000383: PUSH3 0x0010e7
00000387: JUMP
00000388: JUMPDEST
00000389: PUSH1 0x40
0000038b: MLOAD
0000038c: PUSH4 0x70a08231
00000391: PUSH1 0xe0
00000393: SHL
00000394: DUP2
00000395: MSTORE
00000396: ADDRESS
00000397: PUSH1 0x04
00000399: DUP3
0000039a: ADD
0000039b: MSTORE
0000039c: PUSH1 0x00
0000039e: SWAP1
0000039f: PUSH1 0x01
000003a1: PUSH1 0x01
000003a3: PUSH1 0xa0
000003a5: SHL
000003a6: SUB
000003a7: DUP8
000003a8: AND
000003a9: SWAP1
000003aa: PUSH4 0x70a08231
000003af: SWAP1
000003b0: PUSH1 0x24
000003b2: ADD
000003b3: PUSH1 0x20
000003b5: PUSH1 0x40
000003b7: MLOAD
000003b8: DUP1
000003b9: DUP4
000003ba: SUB
000003bb: DUP2
000003bc: DUP7
000003bd: GAS
000003be: STATICCALL
000003bf: ISZERO
000003c0: DUP1
000003c1: ISZERO
000003c2: PUSH3 0x0003d0
000003c6: JUMPI
000003c7: RETURNDATASIZE
000003c8: PUSH1 0x00
000003ca: DUP1
000003cb: RETURNDATACOPY
000003cc: RETURNDATASIZE
000003cd: PUSH1 0x00
000003cf: REVERT
000003d0: JUMPDEST
000003d1: POP
000003d2: POP
000003d3: POP
000003d4: POP
000003d5: PUSH1 0x40
000003d7: MLOAD
000003d8: RETURNDATASIZE
000003d9: PUSH1 0x1f
000003db: NOT
000003dc: PUSH1 0x1f
000003de: DUP3
000003df: ADD
000003e0: AND
000003e1: DUP3
000003e2: ADD
000003e3: DUP1
000003e4: PUSH1 0x40
000003e6: MSTORE
000003e7: POP
000003e8: DUP2
000003e9: ADD
000003ea: SWAP1
000003eb: PUSH3 0x0003f6
000003ef: SWAP2
000003f0: SWAP1
000003f1: PUSH3 0x0021a8
000003f5: JUMP
000003f6: JUMPDEST
000003f7: SWAP1
000003f8: POP
000003f9: DUP2
000003fa: DUP2
000003fb: GT
000003fc: PUSH3 0x000419
00000400: JUMPI
00000401: PUSH1 0x40
00000403: MLOAD
00000404: PUSH4 0x21739d9b
00000409: PUSH1 0xe0
0000040b: SHL
0000040c: DUP2
0000040d: MSTORE
0000040e: PUSH1 0x04
00000410: ADD
00000411: PUSH1 0x40
00000413: MLOAD
00000414: DUP1
00000415: SWAP2
00000416: SUB
00000417: SWAP1
00000418: REVERT
00000419: JUMPDEST
0000041a: PUSH1 0x05
0000041c: SLOAD
0000041d: PUSH3 0x000429
00000421: SWAP1
00000422: PUSH1 0x01
00000424: PUSH3 0x0021d8
00000428: JUMP
00000429: JUMPDEST
0000042a: PUSH1 0x05
0000042c: SSTORE
0000042d: CALLER
0000042e: PUSH1 0x01
00000430: PUSH1 0x01
00000432: PUSH1 0xa0
00000434: SHL
00000435: SUB
00000436: DUP8
00000437: AND
00000438: PUSH32 0x9e9794dbf94b0a0aa31a480f5b38550eda7f89115ac8fbf4953fa4dd219900c9
00000459: DUP8
0000045a: DUP8
0000045b: PUSH3 0x000466
0000045f: DUP8
00000460: DUP8
00000461: PUSH3 0x0021f3
00000465: JUMP
00000466: JUMPDEST
00000467: PUSH1 0x05
00000469: SLOAD
0000046a: PUSH1 0x40
0000046c: MLOAD
0000046d: PUSH3 0x00047b
00000471: SWAP5
00000472: SWAP4
00000473: SWAP3
00000474: SWAP2
00000475: SWAP1
00000476: PUSH3 0x002236
0000047a: JUMP
0000047b: JUMPDEST
0000047c: PUSH1 0x40
0000047e: MLOAD
0000047f: DUP1
00000480: SWAP2
00000481: SUB
00000482: SWAP1
00000483: LOG3
00000484: POP
00000485: POP
00000486: PUSH1 0x01
00000488: PUSH1 0x00
0000048a: SSTORE
0000048b: POP
0000048c: POP
0000048d: POP
0000048e: POP
0000048f: JUMP
00000490: JUMPDEST
00000491: PUSH1 0x02
00000493: PUSH1 0x00
00000495: SLOAD
00000496: EQ
00000497: ISZERO
00000498: PUSH3 0x0004b6
0000049c: JUMPI
0000049d: PUSH1 0x40
0000049f: MLOAD
000004a0: PUSH3 0x461bcd
000004a4: PUSH1 0xe5
000004a6: SHL
000004a7: DUP2
000004a8: MSTORE
000004a9: PUSH1 0x04
000004ab: ADD
000004ac: PUSH3 0x0002f4
000004b0: SWAP1
000004b1: PUSH3 0x002171
000004b5: JUMP
000004b6: JUMPDEST
000004b7: PUSH1 0x02
000004b9: PUSH1 0x00
000004bb: SSTORE
000004bc: PUSH1 0xc0
000004be: DUP2
000004bf: ADD
000004c0: MLOAD
000004c1: NUMBER
000004c2: LT
000004c3: PUSH3 0x0004e0
000004c7: JUMPI
000004c8: PUSH1 0x40
000004ca: MLOAD
000004cb: PUSH4 0xbcf37c25
000004d0: PUSH1 0xe0
000004d2: SHL
000004d3: DUP2
000004d4: MSTORE
000004d5: PUSH1 0x04
000004d7: ADD
000004d8: PUSH1 0x40
000004da: MLOAD
000004db: DUP1
000004dc: SWAP2
000004dd: SUB
000004de: SWAP1
000004df: REVERT
000004e0: JUMPDEST
000004e1: PUSH2 0x0100
000004e4: DUP2
000004e5: ADD
000004e6: MLOAD
000004e7: PUSH1 0xe0
000004e9: DUP3
000004ea: ADD
000004eb: MLOAD
000004ec: PUSH1 0x00
000004ee: SWAP1
000004ef: DUP2
000004f0: MSTORE
000004f1: PUSH1 0x03
000004f3: PUSH1 0x20
000004f5: MSTORE
000004f6: PUSH1 0x40
000004f8: SWAP1
000004f9: KECCAK256
000004fa: SLOAD
000004fb: LT
000004fc: PUSH3 0x00053d
00000500: JUMPI
00000501: PUSH2 0x0100
00000504: DUP2
00000505: ADD
00000506: MLOAD
00000507: PUSH1 0xe0
00000509: DUP3
0000050a: ADD
0000050b: MLOAD
0000050c: PUSH1 0x00
0000050e: SWAP1
0000050f: DUP2
00000510: MSTORE
00000511: PUSH1 0x03
00000513: PUSH1 0x20
00000515: MSTORE
00000516: PUSH1 0x40
00000518: SWAP1
00000519: DUP2
0000051a: SWAP1
0000051b: KECCAK256
0000051c: SLOAD
0000051d: SWAP1
0000051e: MLOAD
0000051f: PUSH3 0x9427e9
00000523: PUSH1 0xe1
00000525: SHL
00000526: DUP2
00000527: MSTORE
00000528: PUSH1 0x04
0000052a: DUP2
0000052b: ADD
0000052c: SWAP3
0000052d: SWAP1
0000052e: SWAP3
0000052f: MSTORE
00000530: PUSH1 0x24
00000532: DUP3
00000533: ADD
00000534: MSTORE
00000535: PUSH1 0x44
00000537: ADD
00000538: PUSH3 0x0002f4
0000053c: JUMP
0000053d: JUMPDEST
0000053e: PUSH3 0x00054a
00000542: DUP5
00000543: DUP5
00000544: DUP5
00000545: PUSH3 0x00115a
00000549: JUMP
0000054a: JUMPDEST
0000054b: PUSH1 0x01
0000054d: SLOAD
0000054e: PUSH3 0x000583
00000552: PUSH3 0x00055c
00000556: DUP7
00000557: PUSH3 0x0020bb
0000055b: JUMP
0000055c: JUMPDEST
0000055d: PUSH32 0x677261766974792d6272696467652d6d61696e6e657400000000000000000000
0000057e: PUSH3 0x00107b
00000582: JUMP
00000583: JUMPDEST
00000584: EQ
00000585: PUSH3 0x0005a2
00000589: JUMPI
0000058a: PUSH1 0x40
0000058c: MLOAD
0000058d: PUSH4 0x723a3403
00000592: PUSH1 0xe0
00000594: SHL
00000595: DUP2
00000596: MSTORE
00000597: PUSH1 0x04
00000599: ADD
0000059a: PUSH1 0x40
0000059c: MLOAD
0000059d: DUP1
0000059e: SWAP2
0000059f: SUB
000005a0: SWAP1
000005a1: REVERT
000005a2: JUMPDEST
000005a3: PUSH1 0x20
000005a5: DUP2
000005a6: ADD
000005a7: MLOAD
000005a8: MLOAD
000005a9: DUP2
000005aa: MLOAD
000005ab: MLOAD
000005ac: EQ
000005ad: PUSH3 0x0005ca
000005b1: JUMPI
000005b2: PUSH1 0x40
000005b4: MLOAD
000005b5: PUSH4 0x4298a951
000005ba: PUSH1 0xe1
000005bc: SHL
000005bd: DUP2
000005be: MSTORE
000005bf: PUSH1 0x04
000005c1: ADD
000005c2: PUSH1 0x40
000005c4: MLOAD
000005c5: DUP1
000005c6: SWAP2
000005c7: SUB
000005c8: SWAP1
000005c9: REVERT
000005ca: JUMPDEST
000005cb: DUP1
000005cc: PUSH1 0x60
000005ce: ADD
000005cf: MLOAD
000005d0: MLOAD
000005d1: DUP2
000005d2: PUSH1 0x40
000005d4: ADD
000005d5: MLOAD
000005d6: MLOAD
000005d7: EQ
000005d8: PUSH3 0x0005f5
000005dc: JUMPI
000005dd: PUSH1 0x40
000005df: MLOAD
000005e0: PUSH4 0x48292479
000005e5: PUSH1 0xe0
000005e7: SHL
000005e8: DUP2
000005e9: MSTORE
000005ea: PUSH1 0x04
000005ec: ADD
000005ed: PUSH1 0x40
000005ef: MLOAD
000005f0: DUP1
000005f1: SWAP2
000005f2: SUB
000005f3: SWAP1
000005f4: REVERT
000005f5: JUMPDEST
000005f6: PUSH1 0x00
000005f8: PUSH32 0x677261766974792d6272696467652d6d61696e6e657400000000000000000000
00000619: PUSH9 0x1b1bd9da58d0d85b1b
00000623: PUSH1 0xba
00000625: SHL
00000626: DUP4
00000627: PUSH1 0x00
00000629: ADD
0000062a: MLOAD
0000062b: DUP5
0000062c: PUSH1 0x20
0000062e: ADD
0000062f: MLOAD
00000630: DUP6
00000631: PUSH1 0x40
00000633: ADD
00000634: MLOAD
00000635: DUP7
00000636: PUSH1 0x60
00000638: ADD
00000639: MLOAD
0000063a: DUP8
0000063b: PUSH1 0x80
0000063d: ADD
0000063e: MLOAD
0000063f: DUP9
00000640: PUSH1 0xa0
00000642: ADD
00000643: MLOAD
00000644: DUP10
00000645: PUSH1 0xc0
00000647: ADD
00000648: MLOAD
00000649: DUP11
0000064a: PUSH1 0xe0
0000064c: ADD
0000064d: MLOAD
0000064e: DUP12
0000064f: PUSH2 0x0100
00000652: ADD
00000653: MLOAD
00000654: PUSH1 0x40
00000656: MLOAD
00000657: PUSH1 0x20
00000659: ADD
0000065a: PUSH3 0x00066f
0000065e: SWAP12
0000065f: SWAP11
00000660: SWAP10
00000661: SWAP9
00000662: SWAP8
00000663: SWAP7
00000664: SWAP6
00000665: SWAP5
00000666: SWAP4
00000667: SWAP3
00000668: SWAP2
00000669: SWAP1
0000066a: PUSH3 0x002334
0000066e: JUMP
0000066f: JUMPDEST
00000670: PUSH1 0x40
00000672: MLOAD
00000673: PUSH1 0x20
00000675: DUP2
00000676: DUP4
00000677: SUB
00000678: SUB
00000679: DUP2
0000067a: MSTORE
0000067b: SWAP1
0000067c: PUSH1 0x40
0000067e: MSTORE
0000067f: DUP1
00000680: MLOAD
00000681: SWAP1
00000682: PUSH1 0x20
00000684: ADD
00000685: KECCAK256
00000686: SWAP1
00000687: POP
00000688: PUSH3 0x00069a
0000068c: DUP6
0000068d: DUP6
0000068e: DUP6
0000068f: DUP5
00000690: PUSH4 0xaaaaaaaa
00000695: PUSH3 0x000f21
00000699: JUMP
0000069a: JUMPDEST
0000069b: POP
0000069c: PUSH2 0x0100
0000069f: DUP2
000006a0: ADD
000006a1: MLOAD
000006a2: PUSH1 0xe0
000006a4: DUP3
000006a5: ADD
000006a6: MLOAD
000006a7: PUSH1 0x00
000006a9: SWAP1
000006aa: DUP2
000006ab: MSTORE
000006ac: PUSH1 0x03
000006ae: PUSH1 0x20
000006b0: MSTORE
000006b1: PUSH1 0x40
000006b3: DUP2
000006b4: KECCAK256
000006b5: SWAP2
000006b6: SWAP1
000006b7: SWAP2
000006b8: SSTORE
000006b9: JUMPDEST
000006ba: DUP2
000006bb: MLOAD
000006bc: MLOAD
000006bd: DUP2
000006be: LT
000006bf: ISZERO
000006c0: PUSH3 0x00073d
000006c4: JUMPI
000006c5: PUSH3 0x000728
000006c9: DUP3
000006ca: PUSH1 0x80
000006cc: ADD
000006cd: MLOAD
000006ce: DUP4
000006cf: PUSH1 0x00
000006d1: ADD
000006d2: MLOAD
000006d3: DUP4
000006d4: DUP2
000006d5: MLOAD
000006d6: DUP2
000006d7: LT
000006d8: PUSH3 0x0006e6
000006dc: JUMPI
000006dd: PUSH3 0x0006e6
000006e1: PUSH3 0x0023e4
000006e5: JUMP
000006e6: JUMPDEST
000006e7: PUSH1 0x20
000006e9: MUL
000006ea: PUSH1 0x20
000006ec: ADD
000006ed: ADD
000006ee: MLOAD
000006ef: DUP5
000006f0: PUSH1 0x20
000006f2: ADD
000006f3: MLOAD
000006f4: DUP5
000006f5: DUP2
000006f6: MLOAD
000006f7: DUP2
000006f8: LT
000006f9: PUSH3 0x000707
000006fd: JUMPI
000006fe: PUSH3 0x000707
00000702: PUSH3 0x0023e4
00000706: JUMP
00000707: JUMPDEST
00000708: PUSH1 0x20
0000070a: MUL
0000070b: PUSH1 0x20
0000070d: ADD
0000070e: ADD
0000070f: MLOAD
00000710: PUSH1 0x01
00000712: PUSH1 0x01
00000714: PUSH1 0xa0
00000716: SHL
00000717: SUB
00000718: AND
00000719: PUSH3 0x0011b3
0000071d: SWAP1
0000071e: SWAP3
0000071f: SWAP2
00000720: SWAP1
00000721: PUSH4 0xffffffff
00000726: AND
00000727: JUMP
00000728: JUMPDEST
00000729: DUP1
0000072a: PUSH3 0x000734
0000072e: DUP2
0000072f: PUSH3 0x0023fa
00000733: JUMP
00000734: JUMPDEST
00000735: SWAP2
00000736: POP
00000737: POP
00000738: PUSH3 0x0006b9
0000073c: JUMP
0000073d: JUMPDEST
0000073e: POP
0000073f: PUSH1 0x00
00000741: PUSH3 0x000754
00000745: DUP3
00000746: PUSH1 0x80
00000748: ADD
00000749: MLOAD
0000074a: DUP4
0000074b: PUSH1 0xa0
0000074d: ADD
0000074e: MLOAD
0000074f: PUSH3 0x0011e5
00000753: JUMP
00000754: JUMPDEST
00000755: SWAP1
00000756: POP
00000757: PUSH1 0x00
00000759: JUMPDEST
0000075a: DUP3
0000075b: PUSH1 0x40
0000075d: ADD
0000075e: MLOAD
0000075f: MLOAD
00000760: DUP2
00000761: LT
00000762: ISZERO
00000763: PUSH3 0x0007bb
00000767: JUMPI
00000768: PUSH3 0x0007a6
0000076c: CALLER
0000076d: DUP5
0000076e: PUSH1 0x40
00000770: ADD
00000771: MLOAD
00000772: DUP4
00000773: DUP2
00000774: MLOAD
00000775: DUP2
00000776: LT
00000777: PUSH3 0x000785
0000077b: JUMPI
0000077c: PUSH3 0x000785
00000780: PUSH3 0x0023e4
00000784: JUMP
00000785: JUMPDEST
00000786: PUSH1 0x20
00000788: MUL
00000789: PUSH1 0x20
0000078b: ADD
0000078c: ADD
0000078d: MLOAD
0000078e: DUP6
0000078f: PUSH1 0x60
00000791: ADD
00000792: MLOAD
00000793: DUP5
00000794: DUP2
00000795: MLOAD
00000796: DUP2
00000797: LT
00000798: PUSH3 0x000707
0000079c: JUMPI
0000079d: PUSH3 0x000707
000007a1: PUSH3 0x0023e4
000007a5: JUMP
000007a6: JUMPDEST
000007a7: DUP1
000007a8: PUSH3 0x0007b2
000007ac: DUP2
000007ad: PUSH3 0x0023fa
000007b1: JUMP
000007b2: JUMPDEST
000007b3: SWAP2
000007b4: POP
000007b5: POP
000007b6: PUSH3 0x000759
000007ba: JUMP
000007bb: JUMPDEST
000007bc: POP
000007bd: PUSH1 0x05
000007bf: SLOAD
000007c0: PUSH3 0x0007cc
000007c4: SWAP1
000007c5: PUSH1 0x01
000007c7: PUSH3 0x0021d8
000007cb: JUMP
000007cc: JUMPDEST
000007cd: PUSH1 0x05
000007cf: DUP2
000007d0: SWAP1
000007d1: SSTORE
000007d2: PUSH1 0xe0
000007d4: DUP4
000007d5: ADD
000007d6: MLOAD
000007d7: PUSH2 0x0100
000007da: DUP5
000007db: ADD
000007dc: MLOAD
000007dd: PUSH1 0x40
000007df: MLOAD
000007e0: PUSH32 0x7c2bb24f8e1b3725cb613d7f11ef97d9745cc97a0e40f730621c052d684077a1
00000801: SWAP4
00000802: PUSH3 0x000811
00000806: SWAP4
00000807: SWAP3
00000808: SWAP2
00000809: DUP7
0000080a: SWAP2
0000080b: SWAP1
0000080c: PUSH3 0x002418
00000810: JUMP
00000811: JUMPDEST
00000812: PUSH1 0x40
00000814: MLOAD
00000815: DUP1
00000816: SWAP2
00000817: SUB
00000818: SWAP1
00000819: LOG1
0000081a: POP
0000081b: POP
0000081c: PUSH1 0x01
0000081e: PUSH1 0x00
00000820: SSTORE
00000821: POP
00000822: POP
00000823: POP
00000824: JUMP
00000825: JUMPDEST
00000826: PUSH1 0x02
00000828: PUSH1 0x00
0000082a: SLOAD
0000082b: EQ
0000082c: ISZERO
0000082d: PUSH3 0x00084b
00000831: JUMPI
00000832: PUSH1 0x40
00000834: MLOAD
00000835: PUSH3 0x461bcd
00000839: PUSH1 0xe5
0000083b: SHL
0000083c: DUP2
0000083d: MSTORE
0000083e: PUSH1 0x04
00000840: ADD
00000841: PUSH3 0x0002f4
00000845: SWAP1
00000846: PUSH3 0x002171
0000084a: JUMP
0000084b: JUMPDEST
0000084c: PUSH1 0x02
0000084e: PUSH1 0x00
00000850: DUP2
00000851: DUP2
00000852: SSTORE
00000853: PUSH1 0x01
00000855: PUSH1 0x01
00000857: PUSH1 0xa0
00000859: SHL
0000085a: SUB
0000085b: DUP5
0000085c: AND
0000085d: DUP2
0000085e: MSTORE
0000085f: PUSH1 0x20
00000861: SWAP2
00000862: SWAP1
00000863: SWAP2
00000864: MSTORE
00000865: PUSH1 0x40
00000867: SWAP1
00000868: KECCAK256
00000869: SLOAD
0000086a: DUP4
0000086b: GT
0000086c: PUSH3 0x0008af
00000870: JUMPI
00000871: PUSH1 0x01
00000873: PUSH1 0x01
00000875: PUSH1 0xa0
00000877: SHL
00000878: SUB
00000879: DUP3
0000087a: AND
0000087b: PUSH1 0x00
0000087d: SWAP1
0000087e: DUP2
0000087f: MSTORE
00000880: PUSH1 0x02
00000882: PUSH1 0x20
00000884: MSTORE
00000885: PUSH1 0x40
00000887: SWAP1
00000888: DUP2
00000889: SWAP1
0000088a: KECCAK256
0000088b: SLOAD
0000088c: SWAP1
0000088d: MLOAD
0000088e: PUSH4 0xf7f920ad
00000893: PUSH1 0xe0
00000895: SHL
00000896: DUP2
00000897: MSTORE
00000898: PUSH3 0x0002f4
0000089c: SWAP2
0000089d: DUP6
0000089e: SWAP2
0000089f: PUSH1 0x04
000008a1: ADD
000008a2: SWAP2
000008a3: DUP3
000008a4: MSTORE
000008a5: PUSH1 0x20
000008a7: DUP3
000008a8: ADD
000008a9: MSTORE
000008aa: PUSH1 0x40
000008ac: ADD
000008ad: SWAP1
000008ae: JUMP
000008af: JUMPDEST
000008b0: PUSH1 0x01
000008b2: PUSH1 0x01
000008b4: PUSH1 0xa0
000008b6: SHL
000008b7: SUB
000008b8: DUP3
000008b9: AND
000008ba: PUSH1 0x00
000008bc: SWAP1
000008bd: DUP2
000008be: MSTORE
000008bf: PUSH1 0x02
000008c1: PUSH1 0x20
000008c3: MSTORE
000008c4: PUSH1 0x40
000008c6: SWAP1
000008c7: KECCAK256
000008c8: SLOAD
000008c9: PUSH3 0x0008d7
000008cd: SWAP1
000008ce: PUSH3 0x0f4240
000008d2: PUSH3 0x0021d8
000008d6: JUMP
000008d7: JUMPDEST
000008d8: DUP4
000008d9: GT
000008da: ISZERO
000008db: PUSH3 0x00091e
000008df: JUMPI
000008e0: PUSH1 0x01
000008e2: PUSH1 0x01
000008e4: PUSH1 0xa0
000008e6: SHL
000008e7: SUB
000008e8: DUP3
000008e9: AND
000008ea: PUSH1 0x00
000008ec: SWAP1
000008ed: DUP2
000008ee: MSTORE
000008ef: PUSH1 0x02
000008f1: PUSH1 0x20
000008f3: MSTORE
000008f4: PUSH1 0x40
000008f6: SWAP1
000008f7: DUP2
000008f8: SWAP1
000008f9: KECCAK256
000008fa: SLOAD
000008fb: SWAP1
000008fc: MLOAD
000008fd: PUSH4 0xf7f920ad
00000902: PUSH1 0xe0
00000904: SHL
00000905: DUP2
00000906: MSTORE
00000907: PUSH3 0x0002f4
0000090b: SWAP2
0000090c: DUP6
0000090d: SWAP2
0000090e: PUSH1 0x04
00000910: ADD
00000911: SWAP2
00000912: DUP3
00000913: MSTORE
00000914: PUSH1 0x20
00000916: DUP3
00000917: ADD
00000918: MSTORE
00000919: PUSH1 0x40
0000091b: ADD
0000091c: SWAP1
0000091d: JUMP
0000091e: JUMPDEST
0000091f: DUP1
00000920: NUMBER
00000921: LT
00000922: PUSH3 0x00093f
00000926: JUMPI
00000927: PUSH1 0x40
00000929: MLOAD
0000092a: PUSH4 0x08b92663
0000092f: PUSH1 0xe1
00000931: SHL
00000932: DUP2
00000933: MSTORE
00000934: PUSH1 0x04
00000936: ADD
00000937: PUSH1 0x40
00000939: MLOAD
0000093a: DUP1
0000093b: SWAP2
0000093c: SUB
0000093d: SWAP1
0000093e: REVERT
0000093f: JUMPDEST
00000940: PUSH3 0x00094c
00000944: DUP13
00000945: DUP13
00000946: DUP13
00000947: PUSH3 0x00115a
0000094b: JUMP
0000094c: JUMPDEST
0000094d: PUSH1 0x01
0000094f: SLOAD
00000950: PUSH3 0x00095e
00000954: PUSH3 0x00055c
00000958: DUP15
00000959: PUSH3 0x0020bb
0000095d: JUMP
0000095e: JUMPDEST
0000095f: EQ
00000960: PUSH3 0x00097d
00000964: JUMPI
00000965: PUSH1 0x40
00000967: MLOAD
00000968: PUSH4 0x723a3403
0000096d: PUSH1 0xe0
0000096f: SHL
00000970: DUP2
00000971: MSTORE
00000972: PUSH1 0x04
00000974: ADD
00000975: PUSH1 0x40
00000977: MLOAD
00000978: DUP1
00000979: SWAP2
0000097a: SUB
0000097b: SWAP1
0000097c: REVERT
0000097d: JUMPDEST
0000097e: DUP8
0000097f: DUP7
00000980: EQ
00000981: ISZERO
00000982: DUP1
00000983: PUSH3 0x00098d
00000987: JUMPI
00000988: POP
00000989: DUP8
0000098a: DUP5
0000098b: EQ
0000098c: ISZERO
0000098d: JUMPDEST
0000098e: ISZERO
0000098f: PUSH3 0x0009ac
00000993: JUMPI
00000994: PUSH1 0x40
00000996: MLOAD
00000997: PUSH4 0xc1f97e35
0000099c: PUSH1 0xe0
0000099e: SHL
0000099f: DUP2
000009a0: MSTORE
000009a1: PUSH1 0x04
000009a3: ADD
000009a4: PUSH1 0x40
000009a6: MLOAD
000009a7: DUP1
000009a8: SWAP2
000009a9: SUB
000009aa: SWAP1
000009ab: REVERT
000009ac: JUMPDEST
000009ad: PUSH3 0x000a2e
000009b1: DUP13
000009b2: DUP13
000009b3: DUP13
000009b4: PUSH32 0x677261766974792d6272696467652d6d61696e6e657400000000000000000000
000009d5: PUSH16 0x0e8e4c2dce6c2c6e8d2dedc84c2e8c6d
000009e6: PUSH1 0x83
000009e8: SHL
000009e9: DUP15
000009ea: DUP15
000009eb: DUP15
000009ec: DUP15
000009ed: DUP15
000009ee: DUP15
000009ef: DUP15
000009f0: DUP15
000009f1: DUP15
000009f2: PUSH1 0x40
000009f4: MLOAD
000009f5: PUSH1 0x20
000009f7: ADD
000009f8: PUSH3 0x000a0d
000009fc: SWAP12
000009fd: SWAP11
000009fe: SWAP10
000009ff: SWAP9
00000a00: SWAP8
00000a01: SWAP7
00000a02: SWAP6
00000a03: SWAP5
00000a04: SWAP4
00000a05: SWAP3
00000a06: SWAP2
00000a07: SWAP1
00000a08: PUSH3 0x0024c1
00000a0c: JUMP
00000a0d: JUMPDEST
00000a0e: PUSH1 0x40
00000a10: MLOAD
00000a11: PUSH1 0x20
00000a13: DUP2
00000a14: DUP4
00000a15: SUB
00000a16: SUB
00000a17: DUP2
00000a18: MSTORE
00000a19: SWAP1
00000a1a: PUSH1 0x40
00000a1c: MSTORE
00000a1d: DUP1
00000a1e: MLOAD
00000a1f: SWAP1
00000a20: PUSH1 0x20
00000a22: ADD
00000a23: KECCAK256
00000a24: PUSH4 0xaaaaaaaa
00000a29: PUSH3 0x000f21
00000a2d: JUMP
00000a2e: JUMPDEST
00000a2f: PUSH1 0x01
00000a31: PUSH1 0x01
00000a33: PUSH1 0xa0
00000a35: SHL
00000a36: SUB
00000a37: DUP3
00000a38: AND
00000a39: PUSH1 0x00
00000a3b: SWAP1
00000a3c: DUP2
00000a3d: MSTORE
00000a3e: PUSH1 0x02
00000a40: PUSH1 0x20
00000a42: MSTORE
00000a43: PUSH1 0x40
00000a45: DUP2
00000a46: KECCAK256
00000a47: DUP5
00000a48: SWAP1
00000a49: SSTORE
00000a4a: DUP1
00000a4b: JUMPDEST
00000a4c: DUP10
00000a4d: DUP2
00000a4e: LT
00000a4f: ISZERO
00000a50: PUSH3 0x000afa
00000a54: JUMPI
00000a55: PUSH3 0x000aba
00000a59: DUP10
00000a5a: DUP10
00000a5b: DUP4
00000a5c: DUP2
00000a5d: DUP2
00000a5e: LT
00000a5f: PUSH3 0x000a6d
00000a63: JUMPI
00000a64: PUSH3 0x000a6d
00000a68: PUSH3 0x0023e4
00000a6c: JUMP
00000a6d: JUMPDEST
00000a6e: SWAP1
00000a6f: POP
00000a70: PUSH1 0x20
00000a72: MUL
00000a73: ADD
00000a74: PUSH1 0x20
00000a76: DUP2
00000a77: ADD
00000a78: SWAP1
00000a79: PUSH3 0x000a84
00000a7d: SWAP2
00000a7e: SWAP1
00000a7f: PUSH3 0x001979
00000a83: JUMP
00000a84: JUMPDEST
00000a85: DUP13
00000a86: DUP13
00000a87: DUP5
00000a88: DUP2
00000a89: DUP2
00000a8a: LT
00000a8b: PUSH3 0x000a99
00000a8f: JUMPI
00000a90: PUSH3 0x000a99
00000a94: PUSH3 0x0023e4
00000a98: JUMP
00000a99: JUMPDEST
00000a9a: SWAP1
00000a9b: POP
00000a9c: PUSH1 0x20
00000a9e: MUL
00000a9f: ADD
00000aa0: CALLDATALOAD
00000aa1: DUP7
00000aa2: PUSH1 0x01
00000aa4: PUSH1 0x01
00000aa6: PUSH1 0xa0
00000aa8: SHL
00000aa9: SUB
00000aaa: AND
00000aab: PUSH3 0x0011b3
00000aaf: SWAP1
00000ab0: SWAP3
00000ab1: SWAP2
00000ab2: SWAP1
00000ab3: PUSH4 0xffffffff
00000ab8: AND
00000ab9: JUMP
00000aba: JUMPDEST
00000abb: DUP7
00000abc: DUP7
00000abd: DUP3
00000abe: DUP2
00000abf: DUP2
00000ac0: LT
00000ac1: PUSH3 0x000acf
00000ac5: JUMPI
00000ac6: PUSH3 0x000acf
00000aca: PUSH3 0x0023e4
00000ace: JUMP
00000acf: JUMPDEST
00000ad0: SWAP1
00000ad1: POP
00000ad2: PUSH1 0x20
00000ad4: MUL
00000ad5: ADD
00000ad6: CALLDATALOAD
00000ad7: DUP3
00000ad8: PUSH3 0x000ae3
00000adc: SWAP2
00000add: SWAP1
00000ade: PUSH3 0x0021d8
00000ae2: JUMP
00000ae3: JUMPDEST
00000ae4: SWAP2
00000ae5: POP
00000ae6: DUP1
00000ae7: PUSH3 0x000af1
00000aeb: DUP2
00000aec: PUSH3 0x0023fa
00000af0: JUMP
00000af1: JUMPDEST
00000af2: SWAP2
00000af3: POP
00000af4: POP
00000af5: PUSH3 0x000a4b
00000af9: JUMP
00000afa: JUMPDEST
00000afb: POP
00000afc: PUSH3 0x000b11
00000b00: PUSH1 0x01
00000b02: PUSH1 0x01
00000b04: PUSH1 0xa0
00000b06: SHL
00000b07: SUB
00000b08: DUP5
00000b09: AND
00000b0a: CALLER
00000b0b: DUP4
00000b0c: PUSH3 0x0011b3
00000b10: JUMP
00000b11: JUMPDEST
00000b12: POP
00000b13: PUSH1 0x05
00000b15: SLOAD
00000b16: PUSH3 0x000b22
00000b1a: SWAP1
00000b1b: PUSH1 0x01
00000b1d: PUSH3 0x0021d8
00000b21: JUMP
00000b22: JUMPDEST
00000b23: PUSH1 0x05
00000b25: DUP2
00000b26: SWAP1
00000b27: SSTORE
00000b28: PUSH1 0x40
00000b2a: MLOAD
00000b2b: SWAP1
00000b2c: DUP2
00000b2d: MSTORE
00000b2e: PUSH1 0x01
00000b30: PUSH1 0x01
00000b32: PUSH1 0xa0
00000b34: SHL
00000b35: SUB
00000b36: DUP4
00000b37: AND
00000b38: SWAP1
00000b39: DUP5
00000b3a: SWAP1
00000b3b: PUSH32 0x02c7e81975f8edb86e2a0c038b7b86a49c744236abf0f6177ff5afc6986ab708
00000b5c: SWAP1
00000b5d: PUSH1 0x20
00000b5f: ADD
00000b60: PUSH1 0x40
00000b62: MLOAD
00000b63: DUP1
00000b64: SWAP2
00000b65: SUB
00000b66: SWAP1
00000b67: LOG3
00000b68: POP
00000b69: POP
00000b6a: PUSH1 0x01
00000b6c: PUSH1 0x00
00000b6e: SSTORE
00000b6f: POP
00000b70: POP
00000b71: POP
00000b72: POP
00000b73: POP
00000b74: POP
00000b75: POP
00000b76: POP
00000b77: POP
00000b78: POP
00000b79: JUMP
00000b7a: JUMPDEST
00000b7b: DUP3
00000b7c: PUSH1 0x40
00000b7e: ADD
00000b7f: CALLDATALOAD
00000b80: DUP5
00000b81: PUSH1 0x40
00000b83: ADD
00000b84: CALLDATALOAD
00000b85: GT
00000b86: PUSH3 0x000bb3
00000b8a: JUMPI
00000b8b: PUSH1 0x40
00000b8d: DUP1
00000b8e: MLOAD
00000b8f: PUSH4 0xe0e8edf3
00000b94: PUSH1 0xe0
00000b96: SHL
00000b97: DUP2
00000b98: MSTORE
00000b99: DUP2
00000b9a: DUP7
00000b9b: ADD
00000b9c: CALLDATALOAD
00000b9d: PUSH1 0x04
00000b9f: DUP3
00000ba0: ADD
00000ba1: MSTORE
00000ba2: SWAP1
00000ba3: DUP5
00000ba4: ADD
00000ba5: CALLDATALOAD
00000ba6: PUSH1 0x24
00000ba8: DUP3
00000ba9: ADD
00000baa: MSTORE
00000bab: PUSH1 0x44
00000bad: ADD
00000bae: PUSH3 0x0002f4
00000bb2: JUMP
00000bb3: JUMPDEST
00000bb4: PUSH3 0x000bc6
00000bb8: PUSH1 0x40
00000bba: DUP5
00000bbb: ADD
00000bbc: CALLDATALOAD
00000bbd: PUSH3 0x0f4240
00000bc1: PUSH3 0x0021d8
00000bc5: JUMP
00000bc6: JUMPDEST
00000bc7: DUP5
00000bc8: PUSH1 0x40
00000bca: ADD
00000bcb: CALLDATALOAD
00000bcc: GT
00000bcd: ISZERO
00000bce: PUSH3 0x000bfb
00000bd2: JUMPI
00000bd3: PUSH1 0x40
00000bd5: DUP1
00000bd6: MLOAD
00000bd7: PUSH4 0xe0e8edf3
00000bdc: PUSH1 0xe0
00000bde: SHL
00000bdf: DUP2
00000be0: MSTORE
00000be1: DUP2
00000be2: DUP7
00000be3: ADD
00000be4: CALLDATALOAD
00000be5: PUSH1 0x04
00000be7: DUP3
00000be8: ADD
00000be9: MSTORE
00000bea: SWAP1
00000beb: DUP5
00000bec: ADD
00000bed: CALLDATALOAD
00000bee: PUSH1 0x24
00000bf0: DUP3
00000bf1: ADD
00000bf2: MSTORE
00000bf3: PUSH1 0x44
00000bf5: ADD
00000bf6: PUSH3 0x0002f4
00000bfa: JUMP
00000bfb: JUMPDEST
00000bfc: PUSH3 0x000c0a
00000c00: PUSH1 0x20
00000c02: DUP6
00000c03: ADD
00000c04: DUP6
00000c05: PUSH3 0x00253f
00000c09: JUMP
00000c0a: JUMPDEST
00000c0b: SWAP1
00000c0c: POP
00000c0d: PUSH3 0x000c18
00000c11: DUP6
00000c12: DUP1
00000c13: PUSH3 0x00253f
00000c17: JUMP
00000c18: JUMPDEST
00000c19: SWAP1
00000c1a: POP
00000c1b: EQ
00000c1c: ISZERO
00000c1d: DUP1
00000c1e: PUSH3 0x000c33
00000c22: JUMPI
00000c23: POP
00000c24: PUSH3 0x000c2f
00000c28: DUP5
00000c29: DUP1
00000c2a: PUSH3 0x00253f
00000c2e: JUMP
00000c2f: JUMPDEST
00000c30: ISZERO
00000c31: SWAP1
00000c32: POP
00000c33: JUMPDEST
00000c34: ISZERO
00000c35: PUSH3 0x000c52
00000c39: JUMPI
00000c3a: PUSH1 0x40
00000c3c: MLOAD
00000c3d: PUSH4 0xc01ba0ab
00000c42: PUSH1 0xe0
00000c44: SHL
00000c45: DUP2
00000c46: MSTORE
00000c47: PUSH1 0x04
00000c49: ADD
00000c4a: PUSH1 0x40
00000c4c: MLOAD
00000c4d: DUP1
00000c4e: SWAP2
00000c4f: SUB
00000c50: SWAP1
00000c51: REVERT
00000c52: JUMPDEST
00000c53: PUSH3 0x000c5f
00000c57: DUP4
00000c58: DUP4
00000c59: DUP4
00000c5a: PUSH3 0x00115a
00000c5e: JUMP
00000c5f: JUMPDEST
00000c60: PUSH1 0x00
00000c62: DUP1
00000c63: JUMPDEST
00000c64: PUSH3 0x000c72
00000c68: PUSH1 0x20
00000c6a: DUP8
00000c6b: ADD
00000c6c: DUP8
00000c6d: PUSH3 0x00253f
00000c71: JUMP
00000c72: JUMPDEST
00000c73: SWAP1
00000c74: POP
00000c75: DUP2
00000c76: LT
00000c77: ISZERO
00000c78: PUSH3 0x000cdc
00000c7c: JUMPI
00000c7d: PUSH3 0x000c8b
00000c81: PUSH1 0x20
00000c83: DUP8
00000c84: ADD
00000c85: DUP8
00000c86: PUSH3 0x00253f
00000c8a: JUMP
00000c8b: JUMPDEST
00000c8c: DUP3
00000c8d: DUP2
00000c8e: DUP2
00000c8f: LT
00000c90: PUSH3 0x000c9e
00000c94: JUMPI
00000c95: PUSH3 0x000c9e
00000c99: PUSH3 0x0023e4
00000c9d: JUMP
00000c9e: JUMPDEST
00000c9f: SWAP1
00000ca0: POP
00000ca1: PUSH1 0x20
00000ca3: MUL
00000ca4: ADD
00000ca5: CALLDATALOAD
00000ca6: DUP3
00000ca7: PUSH3 0x000cb2
00000cab: SWAP2
00000cac: SWAP1
00000cad: PUSH3 0x0021d8
00000cb1: JUMP
00000cb2: JUMPDEST
00000cb3: SWAP2
00000cb4: POP
00000cb5: PUSH4 0xaaaaaaaa
00000cba: DUP3
00000cbb: GT
00000cbc: ISZERO
00000cbd: PUSH3 0x000cc7
00000cc1: JUMPI
00000cc2: PUSH3 0x000cdc
00000cc6: JUMP
00000cc7: JUMPDEST
00000cc8: DUP1
00000cc9: PUSH3 0x000cd3
00000ccd: DUP2
00000cce: PUSH3 0x0023fa
00000cd2: JUMP
00000cd3: JUMPDEST
00000cd4: SWAP2
00000cd5: POP
00000cd6: POP
00000cd7: PUSH3 0x000c63
00000cdb: JUMP
00000cdc: JUMPDEST
00000cdd: POP
00000cde: PUSH4 0xaaaaaaaa
00000ce3: DUP2
00000ce4: GT
00000ce5: PUSH3 0x000d0f
00000ce9: JUMPI
00000cea: PUSH1 0x40
00000cec: MLOAD
00000ced: PUSH3 0xbfb6ab
00000cf1: PUSH1 0xe0
00000cf3: SHL
00000cf4: DUP2
00000cf5: MSTORE
00000cf6: PUSH1 0x04
00000cf8: DUP2
00000cf9: ADD
00000cfa: DUP3
00000cfb: SWAP1
00000cfc: MSTORE
00000cfd: PUSH4 0xaaaaaaaa
00000d02: PUSH1 0x24
00000d04: DUP3
00000d05: ADD
00000d06: MSTORE
00000d07: PUSH1 0x44
00000d09: ADD
00000d0a: PUSH3 0x0002f4
00000d0e: JUMP
00000d0f: JUMPDEST
00000d10: PUSH1 0x01
00000d12: SLOAD
00000d13: PUSH3 0x000d21
00000d17: PUSH3 0x00055c
00000d1b: DUP7
00000d1c: PUSH3 0x0020bb
00000d20: JUMP
00000d21: JUMPDEST
00000d22: EQ
00000d23: PUSH3 0x000d40
00000d27: JUMPI
00000d28: PUSH1 0x40
00000d2a: MLOAD
00000d2b: PUSH4 0x723a3403
00000d30: PUSH1 0xe0
00000d32: SHL
00000d33: DUP2
00000d34: MSTORE
00000d35: PUSH1 0x04
00000d37: ADD
00000d38: PUSH1 0x40
00000d3a: MLOAD
00000d3b: DUP1
00000d3c: SWAP2
00000d3d: SUB
00000d3e: SWAP1
00000d3f: REVERT
00000d40: JUMPDEST
00000d41: PUSH1 0x00
00000d43: PUSH3 0x000d51
00000d47: PUSH3 0x00055c
00000d4b: DUP8
00000d4c: PUSH3 0x0020bb
00000d50: JUMP
00000d51: JUMPDEST
00000d52: SWAP1
00000d53: POP
00000d54: PUSH3 0x000d66
00000d58: DUP6
00000d59: DUP6
00000d5a: DUP6
00000d5b: DUP5
00000d5c: PUSH4 0xaaaaaaaa
00000d61: PUSH3 0x000f21
00000d65: JUMP
00000d66: JUMPDEST
00000d67: PUSH1 0x01
00000d69: DUP2
00000d6a: SWAP1
00000d6b: SSTORE
00000d6c: PUSH1 0x40
00000d6e: DUP7
00000d6f: ADD
00000d70: CALLDATALOAD
00000d71: PUSH1 0x04
00000d73: SSTORE
00000d74: PUSH1 0x00
00000d76: PUSH3 0x000d87
00000d7a: PUSH1 0xa0
00000d7c: DUP9
00000d7d: ADD
00000d7e: PUSH1 0x80
00000d80: DUP10
00000d81: ADD
00000d82: PUSH3 0x001979
00000d86: JUMP
00000d87: JUMPDEST
00000d88: PUSH1 0x01
00000d8a: PUSH1 0x01
00000d8c: PUSH1 0xa0
00000d8e: SHL
00000d8f: SUB
00000d90: AND
00000d91: EQ
00000d92: ISZERO
00000d93: DUP1
00000d94: ISZERO
00000d95: PUSH3 0x000da2
00000d99: JUMPI
00000d9a: POP
00000d9b: PUSH1 0x60
00000d9d: DUP7
00000d9e: ADD
00000d9f: CALLDATALOAD
00000da0: ISZERO
00000da1: ISZERO
00000da2: JUMPDEST
00000da3: ISZERO
00000da4: PUSH3 0x000dd5
00000da8: JUMPI
00000da9: PUSH3 0x000dd5
00000dad: CALLER
00000dae: PUSH1 0x60
00000db0: DUP9
00000db1: ADD
00000db2: CALLDATALOAD
00000db3: PUSH3 0x000dc4
00000db7: PUSH1 0xa0
00000db9: DUP11
00000dba: ADD
00000dbb: PUSH1 0x80
00000dbd: DUP12
00000dbe: ADD
00000dbf: PUSH3 0x001979
00000dc3: JUMP
00000dc4: JUMPDEST
00000dc5: PUSH1 0x01
00000dc7: PUSH1 0x01
00000dc9: PUSH1 0xa0
00000dcb: SHL
00000dcc: SUB
00000dcd: AND
00000dce: SWAP2
00000dcf: SWAP1
00000dd0: PUSH3 0x0011b3
00000dd4: JUMP
00000dd5: JUMPDEST
00000dd6: PUSH1 0x05
00000dd8: SLOAD
00000dd9: PUSH3 0x000de5
00000ddd: SWAP1
00000dde: PUSH1 0x01
00000de0: PUSH3 0x0021d8
00000de4: JUMP
00000de5: JUMPDEST
00000de6: PUSH1 0x05
00000de8: DUP2
00000de9: SWAP1
00000dea: SSTORE
00000deb: PUSH1 0x40
00000ded: DUP8
00000dee: ADD
00000def: CALLDATALOAD
00000df0: SWAP1
00000df1: PUSH32 0x76d08978c024a4bf8cbb30c67fd78fcaa1827cbc533e4e175f36d07e64ccf96a
00000e12: SWAP1
00000e13: PUSH1 0x60
00000e15: DUP10
00000e16: ADD
00000e17: CALLDATALOAD
00000e18: PUSH3 0x000e29
00000e1c: PUSH1 0xa0
00000e1e: DUP12
00000e1f: ADD
00000e20: PUSH1 0x80
00000e22: DUP13
00000e23: ADD
00000e24: PUSH3 0x001979
00000e28: JUMP
00000e29: JUMPDEST
00000e2a: PUSH3 0x000e35
00000e2e: DUP12
00000e2f: DUP1
00000e30: PUSH3 0x00253f
00000e34: JUMP
00000e35: JUMPDEST
00000e36: PUSH3 0x000e44
00000e3a: PUSH1 0x20
00000e3c: DUP15
00000e3d: ADD
00000e3e: DUP15
00000e3f: PUSH3 0x00253f
00000e43: JUMP
00000e44: JUMPDEST
00000e45: PUSH1 0x40
00000e47: MLOAD
00000e48: PUSH3 0x000e59
00000e4c: SWAP8
00000e4d: SWAP7
00000e4e: SWAP6
00000e4f: SWAP5
00000e50: SWAP4
00000e51: SWAP3
00000e52: SWAP2
00000e53: SWAP1
00000e54: PUSH3 0x00258b
00000e58: JUMP
00000e59: JUMPDEST
00000e5a: PUSH1 0x40
00000e5c: MLOAD
00000e5d: DUP1
00000e5e: SWAP2
00000e5f: SUB
00000e60: SWAP1
00000e61: LOG2
00000e62: POP
00000e63: POP
00000e64: POP
00000e65: POP
00000e66: POP
00000e67: POP
00000e68: JUMP
00000e69: JUMPDEST
00000e6a: PUSH1 0x00
00000e6c: ADDRESS
00000e6d: DUP7
00000e6e: DUP7
00000e6f: DUP7
00000e70: DUP7
00000e71: DUP7
00000e72: PUSH1 0x40
00000e74: MLOAD
00000e75: PUSH3 0x000e7f
00000e79: SWAP1
00000e7a: PUSH3 0x00181e
00000e7e: JUMP
00000e7f: JUMPDEST
00000e80: PUSH3 0x000e90
00000e84: SWAP7
00000e85: SWAP6
00000e86: SWAP5
00000e87: SWAP4
00000e88: SWAP3
00000e89: SWAP2
00000e8a: SWAP1
00000e8b: PUSH3 0x0025de
00000e8f: JUMP
00000e90: JUMPDEST
00000e91: PUSH1 0x40
00000e93: MLOAD
00000e94: DUP1
00000e95: SWAP2
00000e96: SUB
00000e97: SWAP1
00000e98: PUSH1 0x00
00000e9a: CREATE
00000e9b: DUP1
00000e9c: ISZERO
00000e9d: DUP1
00000e9e: ISZERO
00000e9f: PUSH3 0x000ead
00000ea3: JUMPI
00000ea4: RETURNDATASIZE
00000ea5: PUSH1 0x00
00000ea7: DUP1
00000ea8: RETURNDATACOPY
00000ea9: RETURNDATASIZE
00000eaa: PUSH1 0x00
00000eac: REVERT
00000ead: JUMPDEST
00000eae: POP
00000eaf: SWAP1
00000eb0: POP
00000eb1: PUSH1 0x05
00000eb3: SLOAD
00000eb4: PUSH1 0x01
00000eb6: PUSH3 0x000ec1
00000eba: SWAP2
00000ebb: SWAP1
00000ebc: PUSH3 0x0021d8
00000ec0: JUMP
00000ec1: JUMPDEST
00000ec2: PUSH1 0x05
00000ec4: DUP2
00000ec5: SWAP1
00000ec6: SSTORE
00000ec7: PUSH1 0x40
00000ec9: MLOAD
00000eca: PUSH1 0x01
00000ecc: PUSH1 0x01
00000ece: PUSH1 0xa0
00000ed0: SHL
00000ed1: SUB
00000ed2: DUP4
00000ed3: AND
00000ed4: SWAP2
00000ed5: PUSH32 0x82fe3a4fa49c6382d0c085746698ddbbafe6c2bf61285b19410644b5b26287c7
00000ef6: SWAP2
00000ef7: PUSH3 0x000f0f
00000efb: SWAP2
00000efc: DUP13
00000efd: SWAP2
00000efe: DUP13
00000eff: SWAP2
00000f00: DUP13
00000f01: SWAP2
00000f02: DUP13
00000f03: SWAP2
00000f04: DUP13
00000f05: SWAP2
00000f06: DUP13
00000f07: SWAP2
00000f08: DUP13
00000f09: SWAP2
00000f0a: PUSH3 0x002631
00000f0e: JUMP
00000f0f: JUMPDEST
00000f10: PUSH1 0x40
00000f12: MLOAD
00000f13: DUP1
00000f14: SWAP2
00000f15: SUB
00000f16: SWAP1
00000f17: LOG2
00000f18: POP
00000f19: POP
00000f1a: POP
00000f1b: POP
00000f1c: POP
00000f1d: POP
00000f1e: POP
00000f1f: POP
00000f20: JUMP
00000f21: JUMPDEST
00000f22: PUSH1 0x00
00000f24: DUP1
00000f25: JUMPDEST
00000f26: PUSH3 0x000f31
00000f2a: DUP8
00000f2b: DUP1
00000f2c: PUSH3 0x00253f
00000f30: JUMP
00000f31: JUMPDEST
00000f32: SWAP1
00000f33: POP
00000f34: DUP2
00000f35: LT
00000f36: ISZERO
00000f37: PUSH3 0x001047
00000f3b: JUMPI
00000f3c: DUP6
00000f3d: DUP6
00000f3e: DUP3
00000f3f: DUP2
00000f40: DUP2
00000f41: LT
00000f42: PUSH3 0x000f50
00000f46: JUMPI
00000f47: PUSH3 0x000f50
00000f4b: PUSH3 0x0023e4
00000f4f: JUMP
00000f50: JUMPDEST
00000f51: PUSH3 0x000f68
00000f55: SWAP3
00000f56: PUSH1 0x20
00000f58: PUSH1 0x60
00000f5a: SWAP1
00000f5b: SWAP3
00000f5c: MUL
00000f5d: ADD
00000f5e: SWAP1
00000f5f: DUP2
00000f60: ADD
00000f61: SWAP2
00000f62: POP
00000f63: PUSH3 0x00268e
00000f67: JUMP
00000f68: JUMPDEST
00000f69: PUSH1 0xff
00000f6b: AND
00000f6c: ISZERO
00000f6d: PUSH3 0x001032
00000f71: JUMPI
00000f72: PUSH3 0x000fcd
00000f76: PUSH3 0x000f81
00000f7a: DUP9
00000f7b: DUP1
00000f7c: PUSH3 0x00253f
00000f80: JUMP
00000f81: JUMPDEST
00000f82: DUP4
00000f83: DUP2
00000f84: DUP2
00000f85: LT
00000f86: PUSH3 0x000f94
00000f8a: JUMPI
00000f8b: PUSH3 0x000f94
00000f8f: PUSH3 0x0023e4
00000f93: JUMP
00000f94: JUMPDEST
00000f95: SWAP1
00000f96: POP
00000f97: PUSH1 0x20
00000f99: MUL
00000f9a: ADD
00000f9b: PUSH1 0x20
00000f9d: DUP2
00000f9e: ADD
00000f9f: SWAP1
00000fa0: PUSH3 0x000fab
00000fa4: SWAP2
00000fa5: SWAP1
00000fa6: PUSH3 0x001979
00000faa: JUMP
00000fab: JUMPDEST
00000fac: DUP6
00000fad: DUP9
00000fae: DUP9
00000faf: DUP6
00000fb0: DUP2
00000fb1: DUP2
00000fb2: LT
00000fb3: PUSH3 0x000fc1
00000fb7: JUMPI
00000fb8: PUSH3 0x000fc1
00000fbc: PUSH3 0x0023e4
00000fc0: JUMP
00000fc1: JUMPDEST
00000fc2: SWAP1
00000fc3: POP
00000fc4: PUSH1 0x60
00000fc6: MUL
00000fc7: ADD
00000fc8: PUSH3 0x001230
00000fcc: JUMP
00000fcd: JUMPDEST
00000fce: PUSH3 0x000feb
00000fd2: JUMPI
00000fd3: PUSH1 0x40
00000fd5: MLOAD
00000fd6: PUSH4 0x8baa579f
00000fdb: PUSH1 0xe0
00000fdd: SHL
00000fde: DUP2
00000fdf: MSTORE
00000fe0: PUSH1 0x04
00000fe2: ADD
00000fe3: PUSH1 0x40
00000fe5: MLOAD
00000fe6: DUP1
00000fe7: SWAP2
00000fe8: SUB
00000fe9: SWAP1
00000fea: REVERT
00000feb: JUMPDEST
00000fec: PUSH3 0x000ffa
00000ff0: PUSH1 0x20
00000ff2: DUP9
00000ff3: ADD
00000ff4: DUP9
00000ff5: PUSH3 0x00253f
00000ff9: JUMP
00000ffa: JUMPDEST
00000ffb: DUP3
00000ffc: DUP2
00000ffd: DUP2
00000ffe: LT
00000fff: PUSH3 0x00100d
00001003: JUMPI
00001004: PUSH3 0x00100d
00001008: PUSH3 0x0023e4
0000100c: JUMP
0000100d: JUMPDEST
0000100e: SWAP1
0000100f: POP
00001010: PUSH1 0x20
00001012: MUL
00001013: ADD
00001014: CALLDATALOAD
00001015: DUP3
00001016: PUSH3 0x001021
0000101a: SWAP2
0000101b: SWAP1
0000101c: PUSH3 0x0021d8
00001020: JUMP
00001021: JUMPDEST
00001022: SWAP2
00001023: POP
00001024: DUP3
00001025: DUP3
00001026: GT
00001027: ISZERO
00001028: PUSH3 0x001032
0000102c: JUMPI
0000102d: PUSH3 0x001047
00001031: JUMP
00001032: JUMPDEST
00001033: DUP1
00001034: PUSH3 0x00103e
00001038: DUP2
00001039: PUSH3 0x0023fa
0000103d: JUMP
0000103e: JUMPDEST
0000103f: SWAP2
00001040: POP
00001041: POP
00001042: PUSH3 0x000f25
00001046: JUMP
00001047: JUMPDEST
00001048: POP
00001049: DUP2
0000104a: DUP2
0000104b: GT
0000104c: PUSH3 0x001073
00001050: JUMPI
00001051: PUSH1 0x40
00001053: MLOAD
00001054: PUSH3 0xbfb6ab
00001058: PUSH1 0xe0
0000105a: SHL
0000105b: DUP2
0000105c: MSTORE
0000105d: PUSH1 0x04
0000105f: DUP2
00001060: ADD
00001061: DUP3
00001062: SWAP1
00001063: MSTORE
00001064: PUSH1 0x24
00001066: DUP2
00001067: ADD
00001068: DUP4
00001069: SWAP1
0000106a: MSTORE
0000106b: PUSH1 0x44
0000106d: ADD
0000106e: PUSH3 0x0002f4
00001072: JUMP
00001073: JUMPDEST
00001074: POP
00001075: POP
00001076: POP
00001077: POP
00001078: POP
00001079: POP
0000107a: JUMP
0000107b: JUMPDEST
0000107c: PUSH1 0x00
0000107e: DUP1
0000107f: PUSH10 0x18da1958dadc1bda5b9d
0000108a: PUSH1 0xb2
0000108c: SHL
0000108d: PUSH1 0x00
0000108f: SHL
00001090: SWAP1
00001091: POP
00001092: PUSH1 0x00
00001094: DUP4
00001095: DUP3
00001096: DUP7
00001097: PUSH1 0x40
00001099: ADD
0000109a: MLOAD
0000109b: DUP8
0000109c: PUSH1 0x00
0000109e: ADD
0000109f: MLOAD
000010a0: DUP9
000010a1: PUSH1 0x20
000010a3: ADD
000010a4: MLOAD
000010a5: DUP10
000010a6: PUSH1 0x60
000010a8: ADD
000010a9: MLOAD
000010aa: DUP11
000010ab: PUSH1 0x80
000010ad: ADD
000010ae: MLOAD
000010af: PUSH1 0x40
000010b1: MLOAD
000010b2: PUSH1 0x20
000010b4: ADD
000010b5: PUSH3 0x0010c6
000010b9: SWAP8
000010ba: SWAP7
000010bb: SWAP6
000010bc: SWAP5
000010bd: SWAP4
000010be: SWAP3
000010bf: SWAP2
000010c0: SWAP1
000010c1: PUSH3 0x0026ac
000010c5: JUMP
000010c6: JUMPDEST
000010c7: PUSH1 0x40
000010c9: DUP1
000010ca: MLOAD
000010cb: DUP1
000010cc: DUP4
000010cd: SUB
000010ce: PUSH1 0x1f
000010d0: NOT
000010d1: ADD
000010d2: DUP2
000010d3: MSTORE
000010d4: SWAP2
000010d5: SWAP1
000010d6: MSTORE
000010d7: DUP1
000010d8: MLOAD
000010d9: PUSH1 0x20
000010db: SWAP1
000010dc: SWAP2
000010dd: ADD
000010de: KECCAK256
000010df: SWAP6
000010e0: SWAP5
000010e1: POP
000010e2: POP
000010e3: POP
000010e4: POP
000010e5: POP
000010e6: JUMP
000010e7: JUMPDEST
000010e8: PUSH1 0x40
000010ea: MLOAD
000010eb: PUSH1 0x01
000010ed: PUSH1 0x01
000010ef: PUSH1 0xa0
000010f1: SHL
000010f2: SUB
000010f3: DUP1
000010f4: DUP6
000010f5: AND
000010f6: PUSH1 0x24
000010f8: DUP4
000010f9: ADD
000010fa: MSTORE
000010fb: DUP4
000010fc: AND
000010fd: PUSH1 0x44
000010ff: DUP3
00001100: ADD
00001101: MSTORE
00001102: PUSH1 0x64
00001104: DUP2
00001105: ADD
00001106: DUP3
00001107: SWAP1
00001108: MSTORE
00001109: PUSH3 0x001154
0000110d: SWAP1
0000110e: DUP6
0000110f: SWAP1
00001110: PUSH4 0x23b872dd
00001115: PUSH1 0xe0
00001117: SHL
00001118: SWAP1
00001119: PUSH1 0x84
0000111b: ADD
0000111c: JUMPDEST
0000111d: PUSH1 0x40
0000111f: DUP1
00001120: MLOAD
00001121: PUSH1 0x1f
00001123: NOT
00001124: DUP2
00001125: DUP5
00001126: SUB
00001127: ADD
00001128: DUP2
00001129: MSTORE
0000112a: SWAP2
0000112b: SWAP1
0000112c: MSTORE
0000112d: PUSH1 0x20
0000112f: DUP2
00001130: ADD
00001131: DUP1
00001132: MLOAD
00001133: PUSH1 0x01
00001135: PUSH1 0x01
00001137: PUSH1 0xe0
00001139: SHL
0000113a: SUB
0000113b: AND
0000113c: PUSH1 0x01
0000113e: PUSH1 0x01
00001140: PUSH1 0xe0
00001142: SHL
00001143: SUB
00001144: NOT
00001145: SWAP1
00001146: SWAP4
00001147: AND
00001148: SWAP3
00001149: SWAP1
0000114a: SWAP3
0000114b: OR
0000114c: SWAP1
0000114d: SWAP2
0000114e: MSTORE
0000114f: PUSH3 0x0012c5
00001153: JUMP
00001154: JUMPDEST
00001155: POP
00001156: POP
00001157: POP
00001158: POP
00001159: JUMP
0000115a: JUMPDEST
0000115b: PUSH3 0x001169
0000115f: PUSH1 0x20
00001161: DUP5
00001162: ADD
00001163: DUP5
00001164: PUSH3 0x00253f
00001168: JUMP
00001169: JUMPDEST
0000116a: SWAP1
0000116b: POP
0000116c: PUSH3 0x001177
00001170: DUP5
00001171: DUP1
00001172: PUSH3 0x00253f
00001176: JUMP
00001177: JUMPDEST
00001178: SWAP1
00001179: POP
0000117a: EQ
0000117b: ISZERO
0000117c: DUP1
0000117d: PUSH3 0x001194
00001181: JUMPI
00001182: POP
00001183: DUP1
00001184: PUSH3 0x00118f
00001188: DUP5
00001189: DUP1
0000118a: PUSH3 0x00253f
0000118e: JUMP
0000118f: JUMPDEST
00001190: SWAP1
00001191: POP
00001192: EQ
00001193: ISZERO
00001194: JUMPDEST
00001195: ISZERO
00001196: PUSH3 0x0002c9
0000119a: JUMPI
0000119b: PUSH1 0x40
0000119d: MLOAD
0000119e: PUSH4 0xc6617b7b
000011a3: PUSH1 0xe0
000011a5: SHL
000011a6: DUP2
000011a7: MSTORE
000011a8: PUSH1 0x04
000011aa: ADD
000011ab: PUSH1 0x40
000011ad: MLOAD
000011ae: DUP1
000011af: SWAP2
000011b0: SUB
000011b1: SWAP1
000011b2: REVERT
000011b3: JUMPDEST
000011b4: PUSH1 0x40
000011b6: MLOAD
000011b7: PUSH1 0x01
000011b9: PUSH1 0x01
000011bb: PUSH1 0xa0
000011bd: SHL
000011be: SUB
000011bf: DUP4
000011c0: AND
000011c1: PUSH1 0x24
000011c3: DUP3
000011c4: ADD
000011c5: MSTORE
000011c6: PUSH1 0x44
000011c8: DUP2
000011c9: ADD
000011ca: DUP3
000011cb: SWAP1
000011cc: MSTORE
000011cd: PUSH3 0x0002c9
000011d1: SWAP1
000011d2: DUP5
000011d3: SWAP1
000011d4: PUSH4 0xa9059cbb
000011d9: PUSH1 0xe0
000011db: SHL
000011dc: SWAP1
000011dd: PUSH1 0x64
000011df: ADD
000011e0: PUSH3 0x00111c
000011e4: JUMP
000011e5: JUMPDEST
000011e6: PUSH1 0x60
000011e8: PUSH3 0x001229
000011ec: DUP4
000011ed: DUP4
000011ee: PUSH1 0x40
000011f0: MLOAD
000011f1: DUP1
000011f2: PUSH1 0x40
000011f4: ADD
000011f5: PUSH1 0x40
000011f7: MSTORE
000011f8: DUP1
000011f9: PUSH1 0x1e
000011fb: DUP2
000011fc: MSTORE
000011fd: PUSH1 0x20
000011ff: ADD
00001200: PUSH32 0x416464726573733a206c6f772d6c6576656c2063616c6c206661696c65640000
00001221: DUP2
00001222: MSTORE
00001223: POP
00001224: PUSH3 0x00139e
00001228: JUMP
00001229: JUMPDEST
0000122a: SWAP4
0000122b: SWAP3
0000122c: POP
0000122d: POP
0000122e: POP
0000122f: JUMP
00001230: JUMPDEST
00001231: PUSH1 0x40
00001233: MLOAD
00001234: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000
00001255: PUSH1 0x20
00001257: DUP3
00001258: ADD
00001259: MSTORE
0000125a: PUSH1 0x3c
0000125c: DUP2
0000125d: ADD
0000125e: DUP4
0000125f: SWAP1
00001260: MSTORE
00001261: PUSH1 0x00
00001263: SWAP1
00001264: DUP2
00001265: SWAP1
00001266: PUSH1 0x5c
00001268: ADD
00001269: PUSH1 0x40
0000126b: DUP1
0000126c: MLOAD
0000126d: PUSH1 0x1f
0000126f: NOT
00001270: DUP2
00001271: DUP5
00001272: SUB
00001273: ADD
00001274: DUP2
00001275: MSTORE
00001276: SWAP2
00001277: SWAP1
00001278: MSTORE
00001279: DUP1
0000127a: MLOAD
0000127b: PUSH1 0x20
0000127d: SWAP2
0000127e: DUP3
0000127f: ADD
00001280: KECCAK256
00001281: SWAP2
00001282: POP
00001283: PUSH3 0x0012a7
00001287: SWAP1
00001288: DUP3
00001289: SWAP1
0000128a: PUSH3 0x001297
0000128e: SWAP1
0000128f: DUP7
00001290: ADD
00001291: DUP7
00001292: PUSH3 0x00268e
00001296: JUMP
00001297: JUMPDEST
00001298: DUP6
00001299: PUSH1 0x20
0000129b: ADD
0000129c: CALLDATALOAD
0000129d: DUP7
0000129e: PUSH1 0x40
000012a0: ADD
000012a1: CALLDATALOAD
000012a2: PUSH3 0x0013b7
000012a6: JUMP
000012a7: JUMPDEST
000012a8: PUSH1 0x01
000012aa: PUSH1 0x01
000012ac: PUSH1 0xa0
000012ae: SHL
000012af: SUB
000012b0: AND
000012b1: DUP6
000012b2: PUSH1 0x01
000012b4: PUSH1 0x01
000012b6: PUSH1 0xa0
000012b8: SHL
000012b9: SUB
000012ba: AND
000012bb: EQ
000012bc: SWAP2
000012bd: POP
000012be: POP
000012bf: SWAP4
000012c0: SWAP3
000012c1: POP
000012c2: POP
000012c3: POP
000012c4: JUMP
000012c5: JUMPDEST
000012c6: PUSH1 0x00
000012c8: PUSH3 0x00131c
000012cc: DUP3
000012cd: PUSH1 0x40
000012cf: MLOAD
000012d0: DUP1
000012d1: PUSH1 0x40
000012d3: ADD
000012d4: PUSH1 0x40
000012d6: MSTORE
000012d7: DUP1
000012d8: PUSH1 0x20
000012da: DUP2
000012db: MSTORE
000012dc: PUSH1 0x20
000012de: ADD
000012df: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
00001300: DUP2
00001301: MSTORE
00001302: POP
00001303: DUP6
00001304: PUSH1 0x01
00001306: PUSH1 0x01
00001308: PUSH1 0xa0
0000130a: SHL
0000130b: SUB
0000130c: AND
0000130d: PUSH3 0x00139e
00001311: SWAP1
00001312: SWAP3
00001313: SWAP2
00001314: SWAP1
00001315: PUSH4 0xffffffff
0000131a: AND
0000131b: JUMP
0000131c: JUMPDEST
0000131d: DUP1
0000131e: MLOAD
0000131f: SWAP1
00001320: SWAP2
00001321: POP
00001322: ISZERO
00001323: PUSH3 0x0002c9
00001327: JUMPI
00001328: DUP1
00001329: DUP1
0000132a: PUSH1 0x20
0000132c: ADD
0000132d: SWAP1
0000132e: MLOAD
0000132f: DUP2
00001330: ADD
00001331: SWAP1
00001332: PUSH3 0x00133d
00001336: SWAP2
00001337: SWAP1
00001338: PUSH3 0x00270c
0000133c: JUMP
0000133d: JUMPDEST
0000133e: PUSH3 0x0002c9
00001342: JUMPI
00001343: PUSH1 0x40
00001345: MLOAD
00001346: PUSH3 0x461bcd
0000134a: PUSH1 0xe5
0000134c: SHL
0000134d: DUP2
0000134e: MSTORE
0000134f: PUSH1 0x20
00001351: PUSH1 0x04
00001353: DUP3
00001354: ADD
00001355: MSTORE
00001356: PUSH1 0x2a
00001358: PUSH1 0x24
0000135a: DUP3
0000135b: ADD
0000135c: MSTORE
0000135d: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e
0000137e: PUSH1 0x44
00001380: DUP3
00001381: ADD
00001382: MSTORE
00001383: PUSH10 0x1bdd081cdd58d8d95959
0000138e: PUSH1 0xb2
00001390: SHL
00001391: PUSH1 0x64
00001393: DUP3
00001394: ADD
00001395: MSTORE
00001396: PUSH1 0x84
00001398: ADD
00001399: PUSH3 0x0002f4
0000139d: JUMP
0000139e: JUMPDEST
0000139f: PUSH1 0x60
000013a1: PUSH3 0x0013af
000013a5: DUP5
000013a6: DUP5
000013a7: PUSH1 0x00
000013a9: DUP6
000013aa: PUSH3 0x0013e3
000013ae: JUMP
000013af: JUMPDEST
000013b0: SWAP5
000013b1: SWAP4
000013b2: POP
000013b3: POP
000013b4: POP
000013b5: POP
000013b6: JUMP
000013b7: JUMPDEST
000013b8: PUSH1 0x00
000013ba: DUP1
000013bb: PUSH1 0x00
000013bd: PUSH3 0x0013ca
000013c1: DUP8
000013c2: DUP8
000013c3: DUP8
000013c4: DUP8
000013c5: PUSH3 0x001515
000013c9: JUMP
000013ca: JUMPDEST
000013cb: SWAP2
000013cc: POP
000013cd: SWAP2
000013ce: POP
000013cf: PUSH3 0x0013d9
000013d3: DUP2
000013d4: PUSH3 0x00160a
000013d8: JUMP
000013d9: JUMPDEST
000013da: POP
000013db: SWAP6
000013dc: SWAP5
000013dd: POP
000013de: POP
000013df: POP
000013e0: POP
000013e1: POP
000013e2: JUMP
000013e3: JUMPDEST
000013e4: PUSH1 0x60
000013e6: DUP3
000013e7: SELFBALANCE
000013e8: LT
000013e9: ISZERO
000013ea: PUSH3 0x001446
000013ee: JUMPI
000013ef: PUSH1 0x40
000013f1: MLOAD
000013f2: PUSH3 0x461bcd
000013f6: PUSH1 0xe5
000013f8: SHL
000013f9: DUP2
000013fa: MSTORE
000013fb: PUSH1 0x20
000013fd: PUSH1 0x04
000013ff: DUP3
00001400: ADD
00001401: MSTORE
00001402: PUSH1 0x26
00001404: PUSH1 0x24
00001406: DUP3
00001407: ADD
00001408: MSTORE
00001409: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f
0000142a: PUSH1 0x44
0000142c: DUP3
0000142d: ADD
0000142e: MSTORE
0000142f: PUSH6 0x1c8818d85b1b
00001436: PUSH1 0xd2
00001438: SHL
00001439: PUSH1 0x64
0000143b: DUP3
0000143c: ADD
0000143d: MSTORE
0000143e: PUSH1 0x84
00001440: ADD
00001441: PUSH3 0x0002f4
00001445: JUMP
00001446: JUMPDEST
00001447: DUP5
00001448: EXTCODESIZE
00001449: PUSH3 0x001496
0000144d: JUMPI
0000144e: PUSH1 0x40
00001450: MLOAD
00001451: PUSH3 0x461bcd
00001455: PUSH1 0xe5
00001457: SHL
00001458: DUP2
00001459: MSTORE
0000145a: PUSH1 0x20
0000145c: PUSH1 0x04
0000145e: DUP3
0000145f: ADD
00001460: MSTORE
00001461: PUSH1 0x1d
00001463: PUSH1 0x24
00001465: DUP3
00001466: ADD
00001467: MSTORE
00001468: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000
00001489: PUSH1 0x44
0000148b: DUP3
0000148c: ADD
0000148d: MSTORE
0000148e: PUSH1 0x64
00001490: ADD
00001491: PUSH3 0x0002f4
00001495: JUMP
00001496: JUMPDEST
00001497: PUSH1 0x00
00001499: DUP1
0000149a: DUP7
0000149b: PUSH1 0x01
0000149d: PUSH1 0x01
0000149f: PUSH1 0xa0
000014a1: SHL
000014a2: SUB
000014a3: AND
000014a4: DUP6
000014a5: DUP8
000014a6: PUSH1 0x40
000014a8: MLOAD
000014a9: PUSH3 0x0014b4
000014ad: SWAP2
000014ae: SWAP1
000014af: PUSH3 0x002730
000014b3: JUMP
000014b4: JUMPDEST
000014b5: PUSH1 0x00
000014b7: PUSH1 0x40
000014b9: MLOAD
000014ba: DUP1
000014bb: DUP4
000014bc: SUB
000014bd: DUP2
000014be: DUP6
000014bf: DUP8
000014c0: GAS
000014c1: CALL
000014c2: SWAP3
000014c3: POP
000014c4: POP
000014c5: POP
000014c6: RETURNDATASIZE
000014c7: DUP1
000014c8: PUSH1 0x00
000014ca: DUP2
000014cb: EQ
000014cc: PUSH3 0x0014f3
000014d0: JUMPI
000014d1: PUSH1 0x40
000014d3: MLOAD
000014d4: SWAP2
000014d5: POP
000014d6: PUSH1 0x1f
000014d8: NOT
000014d9: PUSH1 0x3f
000014db: RETURNDATASIZE
000014dc: ADD
000014dd: AND
000014de: DUP3
000014df: ADD
000014e0: PUSH1 0x40
000014e2: MSTORE
000014e3: RETURNDATASIZE
000014e4: DUP3
000014e5: MSTORE
000014e6: RETURNDATASIZE
000014e7: PUSH1 0x00
000014e9: PUSH1 0x20
000014eb: DUP5
000014ec: ADD
000014ed: RETURNDATACOPY
000014ee: PUSH3 0x0014f8
000014f2: JUMP
000014f3: JUMPDEST
000014f4: PUSH1 0x60
000014f6: SWAP2
000014f7: POP
000014f8: JUMPDEST
000014f9: POP
000014fa: SWAP2
000014fb: POP
000014fc: SWAP2
000014fd: POP
000014fe: PUSH3 0x00150a
00001502: DUP3
00001503: DUP3
00001504: DUP7
00001505: PUSH3 0x0017e0
00001509: JUMP
0000150a: JUMPDEST
0000150b: SWAP8
0000150c: SWAP7
0000150d: POP
0000150e: POP
0000150f: POP
00001510: POP
00001511: POP
00001512: POP
00001513: POP
00001514: JUMP
00001515: JUMPDEST
00001516: PUSH1 0x00
00001518: DUP1
00001519: PUSH32 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0
0000153a: DUP4
0000153b: GT
0000153c: ISZERO
0000153d: PUSH3 0x00154e
00001541: JUMPI
00001542: POP
00001543: PUSH1 0x00
00001545: SWAP1
00001546: POP
00001547: PUSH1 0x03
00001549: PUSH3 0x001601
0000154d: JUMP
0000154e: JUMPDEST
0000154f: DUP5
00001550: PUSH1 0xff
00001552: AND
00001553: PUSH1 0x1b
00001555: EQ
00001556: ISZERO
00001557: DUP1
00001558: ISZERO
00001559: PUSH3 0x001567
0000155d: JUMPI
0000155e: POP
0000155f: DUP5
00001560: PUSH1 0xff
00001562: AND
00001563: PUSH1 0x1c
00001565: EQ
00001566: ISZERO
00001567: JUMPDEST
00001568: ISZERO
00001569: PUSH3 0x00157a
0000156d: JUMPI
0000156e: POP
0000156f: PUSH1 0x00
00001571: SWAP1
00001572: POP
00001573: PUSH1 0x04
00001575: PUSH3 0x001601
00001579: JUMP
0000157a: JUMPDEST
0000157b: PUSH1 0x40
0000157d: DUP1
0000157e: MLOAD
0000157f: PUSH1 0x00
00001581: DUP1
00001582: DUP3
00001583: MSTORE
00001584: PUSH1 0x20
00001586: DUP3
00001587: ADD
00001588: DUP1
00001589: DUP5
0000158a: MSTORE
0000158b: DUP10
0000158c: SWAP1
0000158d: MSTORE
0000158e: PUSH1 0xff
00001590: DUP9
00001591: AND
00001592: SWAP3
00001593: DUP3
00001594: ADD
00001595: SWAP3
00001596: SWAP1
00001597: SWAP3
00001598: MSTORE
00001599: PUSH1 0x60
0000159b: DUP2
0000159c: ADD
0000159d: DUP7
0000159e: SWAP1
0000159f: MSTORE
000015a0: PUSH1 0x80
000015a2: DUP2
000015a3: ADD
000015a4: DUP6
000015a5: SWAP1
000015a6: MSTORE
000015a7: PUSH1 0x01
000015a9: SWAP1
000015aa: PUSH1 0xa0
000015ac: ADD
000015ad: PUSH1 0x20
000015af: PUSH1 0x40
000015b1: MLOAD
000015b2: PUSH1 0x20
000015b4: DUP2
000015b5: SUB
000015b6: SWAP1
000015b7: DUP1
000015b8: DUP5
000015b9: SUB
000015ba: SWAP1
000015bb: DUP6
000015bc: GAS
000015bd: STATICCALL
000015be: ISZERO
000015bf: DUP1
000015c0: ISZERO
000015c1: PUSH3 0x0015cf
000015c5: JUMPI
000015c6: RETURNDATASIZE
000015c7: PUSH1 0x00
000015c9: DUP1
000015ca: RETURNDATACOPY
000015cb: RETURNDATASIZE
000015cc: PUSH1 0x00
000015ce: REVERT
000015cf: JUMPDEST
000015d0: POP
000015d1: POP
000015d2: PUSH1 0x40
000015d4: MLOAD
000015d5: PUSH1 0x1f
000015d7: NOT
000015d8: ADD
000015d9: MLOAD
000015da: SWAP2
000015db: POP
000015dc: POP
000015dd: PUSH1 0x01
000015df: PUSH1 0x01
000015e1: PUSH1 0xa0
000015e3: SHL
000015e4: SUB
000015e5: DUP2
000015e6: AND
000015e7: PUSH3 0x0015fa
000015eb: JUMPI
000015ec: PUSH1 0x00
000015ee: PUSH1 0x01
000015f0: SWAP3
000015f1: POP
000015f2: SWAP3
000015f3: POP
000015f4: POP
000015f5: PUSH3 0x001601
000015f9: JUMP
000015fa: JUMPDEST
000015fb: SWAP2
000015fc: POP
000015fd: PUSH1 0x00
000015ff: SWAP1
00001600: POP
00001601: JUMPDEST
00001602: SWAP5
00001603: POP
00001604: SWAP5
00001605: SWAP3
00001606: POP
00001607: POP
00001608: POP
00001609: JUMP
0000160a: JUMPDEST
0000160b: PUSH1 0x00
0000160d: DUP2
0000160e: PUSH1 0x04
00001610: DUP2
00001611: GT
00001612: ISZERO
00001613: PUSH3 0x001621
00001617: JUMPI
00001618: PUSH3 0x001621
0000161c: PUSH3 0x00274e
00001620: JUMP
00001621: JUMPDEST
00001622: EQ
00001623: ISZERO
00001624: PUSH3 0x00162b
00001628: JUMPI
00001629: POP
0000162a: JUMP
0000162b: JUMPDEST
0000162c: PUSH1 0x01
0000162e: DUP2
0000162f: PUSH1 0x04
00001631: DUP2
00001632: GT
00001633: ISZERO
00001634: PUSH3 0x001642
00001638: JUMPI
00001639: PUSH3 0x001642
0000163d: PUSH3 0x00274e
00001641: JUMP
00001642: JUMPDEST
00001643: EQ
00001644: ISZERO
00001645: PUSH3 0x001692
00001649: JUMPI
0000164a: PUSH1 0x40
0000164c: MLOAD
0000164d: PUSH3 0x461bcd
00001651: PUSH1 0xe5
00001653: SHL
00001654: DUP2
00001655: MSTORE
00001656: PUSH1 0x20
00001658: PUSH1 0x04
0000165a: DUP3
0000165b: ADD
0000165c: MSTORE
0000165d: PUSH1 0x18
0000165f: PUSH1 0x24
00001661: DUP3
00001662: ADD
00001663: MSTORE
00001664: PUSH32 0x45434453413a20696e76616c6964207369676e61747572650000000000000000
00001685: PUSH1 0x44
00001687: DUP3
00001688: ADD
00001689: MSTORE
0000168a: PUSH1 0x64
0000168c: ADD
0000168d: PUSH3 0x0002f4
00001691: JUMP
00001692: JUMPDEST
00001693: PUSH1 0x02
00001695: DUP2
00001696: PUSH1 0x04
00001698: DUP2
00001699: GT
0000169a: ISZERO
0000169b: PUSH3 0x0016a9
0000169f: JUMPI
000016a0: PUSH3 0x0016a9
000016a4: PUSH3 0x00274e
000016a8: JUMP
000016a9: JUMPDEST
000016aa: EQ
000016ab: ISZERO
000016ac: PUSH3 0x0016f9
000016b0: JUMPI
000016b1: PUSH1 0x40
000016b3: MLOAD
000016b4: PUSH3 0x461bcd
000016b8: PUSH1 0xe5
000016ba: SHL
000016bb: DUP2
000016bc: MSTORE
000016bd: PUSH1 0x20
000016bf: PUSH1 0x04
000016c1: DUP3
000016c2: ADD
000016c3: MSTORE
000016c4: PUSH1 0x1f
000016c6: PUSH1 0x24
000016c8: DUP3
000016c9: ADD
000016ca: MSTORE
000016cb: PUSH32 0x45434453413a20696e76616c6964207369676e6174757265206c656e67746800
000016ec: PUSH1 0x44
000016ee: DUP3
000016ef: ADD
000016f0: MSTORE
000016f1: PUSH1 0x64
000016f3: ADD
000016f4: PUSH3 0x0002f4
000016f8: JUMP
000016f9: JUMPDEST
000016fa: PUSH1 0x03
000016fc: DUP2
000016fd: PUSH1 0x04
000016ff: DUP2
00001700: GT
00001701: ISZERO
00001702: PUSH3 0x001710
00001706: JUMPI
00001707: PUSH3 0x001710
0000170b: PUSH3 0x00274e
0000170f: JUMP
00001710: JUMPDEST
00001711: EQ
00001712: ISZERO
00001713: PUSH3 0x00176b
00001717: JUMPI
00001718: PUSH1 0x40
0000171a: MLOAD
0000171b: PUSH3 0x461bcd
0000171f: PUSH1 0xe5
00001721: SHL
00001722: DUP2
00001723: MSTORE
00001724: PUSH1 0x20
00001726: PUSH1 0x04
00001728: DUP3
00001729: ADD
0000172a: MSTORE
0000172b: PUSH1 0x22
0000172d: PUSH1 0x24
0000172f: DUP3
00001730: ADD
00001731: MSTORE
00001732: PUSH32 0x45434453413a20696e76616c6964207369676e6174757265202773272076616c
00001753: PUSH1 0x44
00001755: DUP3
00001756: ADD
00001757: MSTORE
00001758: PUSH2 0x7565
0000175b: PUSH1 0xf0
0000175d: SHL
0000175e: PUSH1 0x64
00001760: DUP3
00001761: ADD
00001762: MSTORE
00001763: PUSH1 0x84
00001765: ADD
00001766: PUSH3 0x0002f4
0000176a: JUMP
0000176b: JUMPDEST
0000176c: PUSH1 0x04
0000176e: DUP2
0000176f: PUSH1 0x04
00001771: DUP2
00001772: GT
00001773: ISZERO
00001774: PUSH3 0x001782
00001778: JUMPI
00001779: PUSH3 0x001782
0000177d: PUSH3 0x00274e
00001781: JUMP
00001782: JUMPDEST
00001783: EQ
00001784: ISZERO
00001785: PUSH3 0x0017dd
00001789: JUMPI
0000178a: PUSH1 0x40
0000178c: MLOAD
0000178d: PUSH3 0x461bcd
00001791: PUSH1 0xe5
00001793: SHL
00001794: DUP2
00001795: MSTORE
00001796: PUSH1 0x20
00001798: PUSH1 0x04
0000179a: DUP3
0000179b: ADD
0000179c: MSTORE
0000179d: PUSH1 0x22
0000179f: PUSH1 0x24
000017a1: DUP3
000017a2: ADD
000017a3: MSTORE
000017a4: PUSH32 0x45434453413a20696e76616c6964207369676e6174757265202776272076616c
000017c5: PUSH1 0x44
000017c7: DUP3
000017c8: ADD
000017c9: MSTORE
000017ca: PUSH2 0x7565
000017cd: PUSH1 0xf0
000017cf: SHL
000017d0: PUSH1 0x64
000017d2: DUP3
000017d3: ADD
000017d4: MSTORE
000017d5: PUSH1 0x84
000017d7: ADD
000017d8: PUSH3 0x0002f4
000017dc: JUMP
000017dd: JUMPDEST
000017de: POP
000017df: JUMP
000017e0: JUMPDEST
000017e1: PUSH1 0x60
000017e3: DUP4
000017e4: ISZERO
000017e5: PUSH3 0x0017f1
000017e9: JUMPI
000017ea: POP
000017eb: DUP2
000017ec: PUSH3 0x001229
000017f0: JUMP
000017f1: JUMPDEST
000017f2: DUP3
000017f3: MLOAD
000017f4: ISZERO
000017f5: PUSH3 0x001802
000017f9: JUMPI
000017fa: DUP3
000017fb: MLOAD
000017fc: DUP1
000017fd: DUP5
000017fe: PUSH1 0x20
00001800: ADD
00001801: REVERT
00001802: JUMPDEST
00001803: DUP2
00001804: PUSH1 0x40
00001806: MLOAD
00001807: PUSH3 0x461bcd
0000180b: PUSH1 0xe5
0000180d: SHL
0000180e: DUP2
0000180f: MSTORE
00001810: PUSH1 0x04
00001812: ADD
00001813: PUSH3 0x0002f4
00001817: SWAP2
00001818: SWAP1
00001819: PUSH3 0x002764
0000181d: JUMP
0000181e: JUMPDEST
0000181f: PUSH2 0x0d3e
00001822: DUP1
00001823: PUSH3 0x00277a
00001827: DUP4
00001828: CODECOPY
00001829: ADD
0000182a: SWAP1
0000182b: JUMP
0000182c: JUMPDEST
0000182d: PUSH1 0x00
0000182f: PUSH1 0xa0
00001831: DUP3
00001832: DUP5
00001833: SUB
00001834: SLT
00001835: ISZERO
00001836: PUSH3 0x00183f
0000183a: JUMPI
0000183b: PUSH1 0x00
0000183d: DUP1
0000183e: REVERT
0000183f: JUMPDEST
00001840: POP
00001841: SWAP2
00001842: SWAP1
00001843: POP
00001844: JUMP
00001845: JUMPDEST
00001846: PUSH1 0x00
00001848: DUP1
00001849: DUP4
0000184a: PUSH1 0x1f
0000184c: DUP5
0000184d: ADD
0000184e: SLT
0000184f: PUSH3 0x001858
00001853: JUMPI
00001854: PUSH1 0x00
00001856: DUP1
00001857: REVERT
00001858: JUMPDEST
00001859: POP
0000185a: DUP2
0000185b: CALLDATALOAD
0000185c: PUSH1 0x01
0000185e: PUSH1 0x01
00001860: PUSH1 0x40
00001862: SHL
00001863: SUB
00001864: DUP2
00001865: GT
00001866: ISZERO
00001867: PUSH3 0x001870
0000186b: JUMPI
0000186c: PUSH1 0x00
0000186e: DUP1
0000186f: REVERT
00001870: JUMPDEST
00001871: PUSH1 0x20
00001873: DUP4
00001874: ADD
00001875: SWAP2
00001876: POP
00001877: DUP4
00001878: PUSH1 0x20
0000187a: PUSH1 0x60
0000187c: DUP4
0000187d: MUL
0000187e: DUP6
0000187f: ADD
00001880: ADD
00001881: GT
00001882: ISZERO
00001883: PUSH3 0x00188c
00001887: JUMPI
00001888: PUSH1 0x00
0000188a: DUP1
0000188b: REVERT
0000188c: JUMPDEST
0000188d: SWAP3
0000188e: POP
0000188f: SWAP3
00001890: SWAP1
00001891: POP
00001892: JUMP
00001893: JUMPDEST
00001894: PUSH1 0x00
00001896: DUP1
00001897: PUSH1 0x00
00001899: DUP1
0000189a: PUSH1 0x00
0000189c: PUSH1 0x80
0000189e: DUP7
0000189f: DUP9
000018a0: SUB
000018a1: SLT
000018a2: ISZERO
000018a3: PUSH3 0x0018ac
000018a7: JUMPI
000018a8: PUSH1 0x00
000018aa: DUP1
000018ab: REVERT
000018ac: JUMPDEST
000018ad: DUP6
000018ae: CALLDATALOAD
000018af: PUSH1 0x01
000018b1: PUSH1 0x01
000018b3: PUSH1 0x40
000018b5: SHL
000018b6: SUB
000018b7: DUP1
000018b8: DUP3
000018b9: GT
000018ba: ISZERO
000018bb: PUSH3 0x0018c4
000018bf: JUMPI
000018c0: PUSH1 0x00
000018c2: DUP1
000018c3: REVERT
000018c4: JUMPDEST
000018c5: PUSH3 0x0018d2
000018c9: DUP10
000018ca: DUP4
000018cb: DUP11
000018cc: ADD
000018cd: PUSH3 0x00182c
000018d1: JUMP
000018d2: JUMPDEST
000018d3: SWAP7
000018d4: POP
000018d5: PUSH1 0x20
000018d7: DUP9
000018d8: ADD
000018d9: CALLDATALOAD
000018da: SWAP2
000018db: POP
000018dc: DUP1
000018dd: DUP3
000018de: GT
000018df: ISZERO
000018e0: PUSH3 0x0018e9
000018e4: JUMPI
000018e5: PUSH1 0x00
000018e7: DUP1
000018e8: REVERT
000018e9: JUMPDEST
000018ea: POP
000018eb: PUSH3 0x0018f8
000018ef: DUP9
000018f0: DUP3
000018f1: DUP10
000018f2: ADD
000018f3: PUSH3 0x001845
000018f7: JUMP
000018f8: JUMPDEST
000018f9: SWAP7
000018fa: SWAP10
000018fb: SWAP1
000018fc: SWAP9
000018fd: POP
000018fe: SWAP6
000018ff: SWAP7
00001900: PUSH1 0x40
00001902: DUP2
00001903: ADD
00001904: CALLDATALOAD
00001905: SWAP7
00001906: PUSH1 0x60
00001908: SWAP1
00001909: SWAP2
0000190a: ADD
0000190b: CALLDATALOAD
0000190c: SWAP6
0000190d: POP
0000190e: SWAP4
0000190f: POP
00001910: POP
00001911: POP
00001912: POP
00001913: JUMP
00001914: JUMPDEST
00001915: PUSH1 0x00
00001917: DUP1
00001918: PUSH1 0x40
0000191a: DUP4
0000191b: DUP6
0000191c: SUB
0000191d: SLT
0000191e: ISZERO
0000191f: PUSH3 0x001928
00001923: JUMPI
00001924: PUSH1 0x00
00001926: DUP1
00001927: REVERT
00001928: JUMPDEST
00001929: DUP3
0000192a: CALLDATALOAD
0000192b: PUSH1 0x01
0000192d: PUSH1 0x01
0000192f: PUSH1 0x40
00001931: SHL
00001932: SUB
00001933: DUP2
00001934: GT
00001935: ISZERO
00001936: PUSH3 0x00193f
0000193a: JUMPI
0000193b: PUSH1 0x00
0000193d: DUP1
0000193e: REVERT
0000193f: JUMPDEST
00001940: PUSH3 0x00194d
00001944: DUP6
00001945: DUP3
00001946: DUP7
00001947: ADD
00001948: PUSH3 0x00182c
0000194c: JUMP
0000194d: JUMPDEST
0000194e: SWAP6
0000194f: PUSH1 0x20
00001951: SWAP5
00001952: SWAP1
00001953: SWAP5
00001954: ADD
00001955: CALLDATALOAD
00001956: SWAP5
00001957: POP
00001958: POP
00001959: POP
0000195a: POP
0000195b: JUMP
0000195c: JUMPDEST
0000195d: DUP1
0000195e: CALLDATALOAD
0000195f: PUSH1 0x01
00001961: PUSH1 0x01
00001963: PUSH1 0xa0
00001965: SHL
00001966: SUB
00001967: DUP2
00001968: AND
00001969: DUP2
0000196a: EQ
0000196b: PUSH3 0x001974
0000196f: JUMPI
00001970: PUSH1 0x00
00001972: DUP1
00001973: REVERT
00001974: JUMPDEST
00001975: SWAP2
00001976: SWAP1
00001977: POP
00001978: JUMP
00001979: JUMPDEST
0000197a: PUSH1 0x00
0000197c: PUSH1 0x20
0000197e: DUP3
0000197f: DUP5
00001980: SUB
00001981: SLT
00001982: ISZERO
00001983: PUSH3 0x00198c
00001987: JUMPI
00001988: PUSH1 0x00
0000198a: DUP1
0000198b: REVERT
0000198c: JUMPDEST
0000198d: PUSH3 0x001229
00001991: DUP3
00001992: PUSH3 0x00195c
00001996: JUMP
00001997: JUMPDEST
00001998: PUSH1 0x00
0000199a: DUP1
0000199b: DUP4
0000199c: PUSH1 0x1f
0000199e: DUP5
0000199f: ADD
000019a0: SLT
000019a1: PUSH3 0x0019aa
000019a5: JUMPI
000019a6: PUSH1 0x00
000019a8: DUP1
000019a9: REVERT
000019aa: JUMPDEST
000019ab: POP
000019ac: DUP2
000019ad: CALLDATALOAD
000019ae: PUSH1 0x01
000019b0: PUSH1 0x01
000019b2: PUSH1 0x40
000019b4: SHL
000019b5: SUB
000019b6: DUP2
000019b7: GT
000019b8: ISZERO
000019b9: PUSH3 0x0019c2
000019bd: JUMPI
000019be: PUSH1 0x00
000019c0: DUP1
000019c1: REVERT
000019c2: JUMPDEST
000019c3: PUSH1 0x20
000019c5: DUP4
000019c6: ADD
000019c7: SWAP2
000019c8: POP
000019c9: DUP4
000019ca: PUSH1 0x20
000019cc: DUP3
000019cd: DUP6
000019ce: ADD
000019cf: ADD
000019d0: GT
000019d1: ISZERO
000019d2: PUSH3 0x00188c
000019d6: JUMPI
000019d7: PUSH1 0x00
000019d9: DUP1
000019da: REVERT
000019db: JUMPDEST
000019dc: PUSH1 0x00
000019de: DUP1
000019df: PUSH1 0x00
000019e1: DUP1
000019e2: PUSH1 0x60
000019e4: DUP6
000019e5: DUP8
000019e6: SUB
000019e7: SLT
000019e8: ISZERO
000019e9: PUSH3 0x0019f2
000019ed: JUMPI
000019ee: PUSH1 0x00
000019f0: DUP1
000019f1: REVERT
000019f2: JUMPDEST
000019f3: PUSH3 0x0019fd
000019f7: DUP6
000019f8: PUSH3 0x00195c
000019fc: JUMP
000019fd: JUMPDEST
000019fe: SWAP4
000019ff: POP
00001a00: PUSH1 0x20
00001a02: DUP6
00001a03: ADD
00001a04: CALLDATALOAD
00001a05: PUSH1 0x01
00001a07: PUSH1 0x01
00001a09: PUSH1 0x40
00001a0b: SHL
00001a0c: SUB
00001a0d: DUP2
00001a0e: GT
00001a0f: ISZERO
00001a10: PUSH3 0x001a19
00001a14: JUMPI
00001a15: PUSH1 0x00
00001a17: DUP1
00001a18: REVERT
00001a19: JUMPDEST
00001a1a: PUSH3 0x001a27
00001a1e: DUP8
00001a1f: DUP3
00001a20: DUP9
00001a21: ADD
00001a22: PUSH3 0x001997
00001a26: JUMP
00001a27: JUMPDEST
00001a28: SWAP6
00001a29: SWAP9
00001a2a: SWAP1
00001a2b: SWAP8
00001a2c: POP
00001a2d: SWAP5
00001a2e: SWAP6
00001a2f: PUSH1 0x40
00001a31: ADD
00001a32: CALLDATALOAD
00001a33: SWAP5
00001a34: SWAP4
00001a35: POP
00001a36: POP
00001a37: POP
00001a38: POP
00001a39: JUMP
00001a3a: JUMPDEST
00001a3b: PUSH4 0x4e487b71
00001a40: PUSH1 0xe0
00001a42: SHL
00001a43: PUSH1 0x00
00001a45: MSTORE
00001a46: PUSH1 0x41
00001a48: PUSH1 0x04
00001a4a: MSTORE
00001a4b: PUSH1 0x24
00001a4d: PUSH1 0x00
00001a4f: REVERT
00001a50: JUMPDEST
00001a51: PUSH1 0x40
00001a53: MLOAD
00001a54: PUSH2 0x0120
00001a57: DUP2
00001a58: ADD
00001a59: PUSH1 0x01
00001a5b: PUSH1 0x01
00001a5d: PUSH1 0x40
00001a5f: SHL
00001a60: SUB
00001a61: DUP2
00001a62: GT
00001a63: DUP3
00001a64: DUP3
00001a65: LT
00001a66: OR
00001a67: ISZERO
00001a68: PUSH3 0x001a76
00001a6c: JUMPI
00001a6d: PUSH3 0x001a76
00001a71: PUSH3 0x001a3a
00001a75: JUMP
00001a76: JUMPDEST
00001a77: PUSH1 0x40
00001a79: MSTORE
00001a7a: SWAP1
00001a7b: JUMP
00001a7c: JUMPDEST
00001a7d: PUSH1 0x40
00001a7f: MLOAD
00001a80: PUSH1 0x1f
00001a82: DUP3
00001a83: ADD
00001a84: PUSH1 0x1f
00001a86: NOT
00001a87: AND
00001a88: DUP2
00001a89: ADD
00001a8a: PUSH1 0x01
00001a8c: PUSH1 0x01
00001a8e: PUSH1 0x40
00001a90: SHL
00001a91: SUB
00001a92: DUP2
00001a93: GT
00001a94: DUP3
00001a95: DUP3
00001a96: LT
00001a97: OR
00001a98: ISZERO
00001a99: PUSH3 0x001aa7
00001a9d: JUMPI
00001a9e: PUSH3 0x001aa7
00001aa2: PUSH3 0x001a3a
00001aa6: JUMP
00001aa7: JUMPDEST
00001aa8: PUSH1 0x40
00001aaa: MSTORE
00001aab: SWAP2
00001aac: SWAP1
00001aad: POP
00001aae: JUMP
00001aaf: JUMPDEST
00001ab0: PUSH1 0x00
00001ab2: PUSH1 0x01
00001ab4: PUSH1 0x01
00001ab6: PUSH1 0x40
00001ab8: SHL
00001ab9: SUB
00001aba: DUP3
00001abb: GT
00001abc: ISZERO
00001abd: PUSH3 0x001acb
00001ac1: JUMPI
00001ac2: PUSH3 0x001acb
00001ac6: PUSH3 0x001a3a
00001aca: JUMP
00001acb: JUMPDEST
00001acc: POP
00001acd: PUSH1 0x05
00001acf: SHL
00001ad0: PUSH1 0x20
00001ad2: ADD
00001ad3: SWAP1
00001ad4: JUMP
00001ad5: JUMPDEST
00001ad6: PUSH1 0x00
00001ad8: DUP3
00001ad9: PUSH1 0x1f
00001adb: DUP4
00001adc: ADD
00001add: SLT
00001ade: PUSH3 0x001ae7
00001ae2: JUMPI
00001ae3: PUSH1 0x00
00001ae5: DUP1
00001ae6: REVERT
00001ae7: JUMPDEST
00001ae8: DUP2
00001ae9: CALLDATALOAD
00001aea: PUSH1 0x20
00001aec: PUSH3 0x001b00
00001af0: PUSH3 0x001afa
00001af4: DUP4
00001af5: PUSH3 0x001aaf
00001af9: JUMP
00001afa: JUMPDEST
00001afb: PUSH3 0x001a7c
00001aff: JUMP
00001b00: JUMPDEST
00001b01: DUP3
00001b02: DUP2
00001b03: MSTORE
00001b04: PUSH1 0x05
00001b06: SWAP3
00001b07: SWAP1
00001b08: SWAP3
00001b09: SHL
00001b0a: DUP5
00001b0b: ADD
00001b0c: DUP2
00001b0d: ADD
00001b0e: SWAP2
00001b0f: DUP2
00001b10: DUP2
00001b11: ADD
00001b12: SWAP1
00001b13: DUP7
00001b14: DUP5
00001b15: GT
00001b16: ISZERO
00001b17: PUSH3 0x001b20
00001b1b: JUMPI
00001b1c: PUSH1 0x00
00001b1e: DUP1
00001b1f: REVERT
00001b20: JUMPDEST
00001b21: DUP3
00001b22: DUP7
00001b23: ADD
00001b24: JUMPDEST
00001b25: DUP5
00001b26: DUP2
00001b27: LT
00001b28: ISZERO
00001b29: PUSH3 0x001b3d
00001b2d: JUMPI
00001b2e: DUP1
00001b2f: CALLDATALOAD
00001b30: DUP4
00001b31: MSTORE
00001b32: SWAP2
00001b33: DUP4
00001b34: ADD
00001b35: SWAP2
00001b36: DUP4
00001b37: ADD
00001b38: PUSH3 0x001b24
00001b3c: JUMP
00001b3d: JUMPDEST
00001b3e: POP
00001b3f: SWAP7
00001b40: SWAP6
00001b41: POP
00001b42: POP
00001b43: POP
00001b44: POP
00001b45: POP
00001b46: POP
00001b47: JUMP
00001b48: JUMPDEST
00001b49: PUSH1 0x00
00001b4b: DUP3
00001b4c: PUSH1 0x1f
00001b4e: DUP4
00001b4f: ADD
00001b50: SLT
00001b51: PUSH3 0x001b5a
00001b55: JUMPI
00001b56: PUSH1 0x00
00001b58: DUP1
00001b59: REVERT
00001b5a: JUMPDEST
00001b5b: DUP2
00001b5c: CALLDATALOAD
00001b5d: PUSH1 0x20
00001b5f: PUSH3 0x001b6d
00001b63: PUSH3 0x001afa
00001b67: DUP4
00001b68: PUSH3 0x001aaf
00001b6c: JUMP
00001b6d: JUMPDEST
00001b6e: DUP3
00001b6f: DUP2
00001b70: MSTORE
00001b71: PUSH1 0x05
00001b73: SWAP3
00001b74: SWAP1
00001b75: SWAP3
00001b76: SHL
00001b77: DUP5
00001b78: ADD
00001b79: DUP2
00001b7a: ADD
00001b7b: SWAP2
00001b7c: DUP2
00001b7d: DUP2
00001b7e: ADD
00001b7f: SWAP1
00001b80: DUP7
00001b81: DUP5
00001b82: GT
00001b83: ISZERO
00001b84: PUSH3 0x001b8d
00001b88: JUMPI
00001b89: PUSH1 0x00
00001b8b: DUP1
00001b8c: REVERT
00001b8d: JUMPDEST
00001b8e: DUP3
00001b8f: DUP7
00001b90: ADD
00001b91: JUMPDEST
00001b92: DUP5
00001b93: DUP2
00001b94: LT
00001b95: ISZERO
00001b96: PUSH3 0x001b3d
00001b9a: JUMPI
00001b9b: PUSH3 0x001ba5
00001b9f: DUP2
00001ba0: PUSH3 0x00195c
00001ba4: JUMP
00001ba5: JUMPDEST
00001ba6: DUP4
00001ba7: MSTORE
00001ba8: SWAP2
00001ba9: DUP4
00001baa: ADD
00001bab: SWAP2
00001bac: DUP4
00001bad: ADD
00001bae: PUSH3 0x001b91
00001bb2: JUMP
00001bb3: JUMPDEST
00001bb4: PUSH1 0x00
00001bb6: DUP3
00001bb7: PUSH1 0x1f
00001bb9: DUP4
00001bba: ADD
00001bbb: SLT
00001bbc: PUSH3 0x001bc5
00001bc0: JUMPI
00001bc1: PUSH1 0x00
00001bc3: DUP1
00001bc4: REVERT
00001bc5: JUMPDEST
00001bc6: DUP2
00001bc7: CALLDATALOAD
00001bc8: PUSH1 0x01
00001bca: PUSH1 0x01
00001bcc: PUSH1 0x40
00001bce: SHL
00001bcf: SUB
00001bd0: DUP2
00001bd1: GT
00001bd2: ISZERO
00001bd3: PUSH3 0x001be1
00001bd7: JUMPI
00001bd8: PUSH3 0x001be1
00001bdc: PUSH3 0x001a3a
00001be0: JUMP
00001be1: JUMPDEST
00001be2: PUSH3 0x001bf6
00001be6: PUSH1 0x1f
00001be8: DUP3
00001be9: ADD
00001bea: PUSH1 0x1f
00001bec: NOT
00001bed: AND
00001bee: PUSH1 0x20
00001bf0: ADD
00001bf1: PUSH3 0x001a7c
00001bf5: JUMP
00001bf6: JUMPDEST
00001bf7: DUP2
00001bf8: DUP2
00001bf9: MSTORE
00001bfa: DUP5
00001bfb: PUSH1 0x20
00001bfd: DUP4
00001bfe: DUP7
00001bff: ADD
00001c00: ADD
00001c01: GT
00001c02: ISZERO
00001c03: PUSH3 0x001c0c
00001c07: JUMPI
00001c08: PUSH1 0x00
00001c0a: DUP1
00001c0b: REVERT
00001c0c: JUMPDEST
00001c0d: DUP2
00001c0e: PUSH1 0x20
00001c10: DUP6
00001c11: ADD
00001c12: PUSH1 0x20
00001c14: DUP4
00001c15: ADD
00001c16: CALLDATACOPY
00001c17: PUSH1 0x00
00001c19: SWAP2
00001c1a: DUP2
00001c1b: ADD
00001c1c: PUSH1 0x20
00001c1e: ADD
00001c1f: SWAP2
00001c20: SWAP1
00001c21: SWAP2
00001c22: MSTORE
00001c23: SWAP4
00001c24: SWAP3
00001c25: POP
00001c26: POP
00001c27: POP
00001c28: JUMP
00001c29: JUMPDEST
00001c2a: PUSH1 0x00
00001c2c: DUP1
00001c2d: PUSH1 0x00
00001c2f: DUP1
00001c30: PUSH1 0x60
00001c32: DUP6
00001c33: DUP8
00001c34: SUB
00001c35: SLT
00001c36: ISZERO
00001c37: PUSH3 0x001c40
00001c3b: JUMPI
00001c3c: PUSH1 0x00
00001c3e: DUP1
00001c3f: REVERT
00001c40: JUMPDEST
00001c41: DUP5
00001c42: CALLDATALOAD
00001c43: PUSH1 0x01
00001c45: PUSH1 0x01
00001c47: PUSH1 0x40
00001c49: SHL
00001c4a: SUB
00001c4b: DUP1
00001c4c: DUP3
00001c4d: GT
00001c4e: ISZERO
00001c4f: PUSH3 0x001c58
00001c53: JUMPI
00001c54: PUSH1 0x00
00001c56: DUP1
00001c57: REVERT
00001c58: JUMPDEST
00001c59: PUSH3 0x001c66
00001c5d: DUP9
00001c5e: DUP4
00001c5f: DUP10
00001c60: ADD
00001c61: PUSH3 0x00182c
00001c65: JUMP
00001c66: JUMPDEST
00001c67: SWAP6
00001c68: POP
00001c69: PUSH1 0x20
00001c6b: DUP8
00001c6c: ADD
00001c6d: CALLDATALOAD
00001c6e: SWAP2
00001c6f: POP
00001c70: DUP1
00001c71: DUP3
00001c72: GT
00001c73: ISZERO
00001c74: PUSH3 0x001c7d
00001c78: JUMPI
00001c79: PUSH1 0x00
00001c7b: DUP1
00001c7c: REVERT
00001c7d: JUMPDEST
00001c7e: PUSH3 0x001c8b
00001c82: DUP9
00001c83: DUP4
00001c84: DUP10
00001c85: ADD
00001c86: PUSH3 0x001845
00001c8a: JUMP
00001c8b: JUMPDEST
00001c8c: SWAP1
00001c8d: SWAP6
00001c8e: POP
00001c8f: SWAP4
00001c90: POP
00001c91: PUSH1 0x40
00001c93: DUP8
00001c94: ADD
00001c95: CALLDATALOAD
00001c96: SWAP2
00001c97: POP
00001c98: DUP1
00001c99: DUP3
00001c9a: GT
00001c9b: ISZERO
00001c9c: PUSH3 0x001ca5
00001ca0: JUMPI
00001ca1: PUSH1 0x00
00001ca3: DUP1
00001ca4: REVERT
00001ca5: JUMPDEST
00001ca6: SWAP1
00001ca7: DUP7
00001ca8: ADD
00001ca9: SWAP1
00001caa: PUSH2 0x0120
00001cad: DUP3
00001cae: DUP10
00001caf: SUB
00001cb0: SLT
00001cb1: ISZERO
00001cb2: PUSH3 0x001cbb
00001cb6: JUMPI
00001cb7: PUSH1 0x00
00001cb9: DUP1
00001cba: REVERT
00001cbb: JUMPDEST
00001cbc: PUSH3 0x001cc5
00001cc0: PUSH3 0x001a50
00001cc4: JUMP
00001cc5: JUMPDEST
00001cc6: DUP3
00001cc7: CALLDATALOAD
00001cc8: DUP3
00001cc9: DUP2
00001cca: GT
00001ccb: ISZERO
00001ccc: PUSH3 0x001cd5
00001cd0: JUMPI
00001cd1: PUSH1 0x00
00001cd3: DUP1
00001cd4: REVERT
00001cd5: JUMPDEST
00001cd6: PUSH3 0x001ce3
00001cda: DUP11
00001cdb: DUP3
00001cdc: DUP7
00001cdd: ADD
00001cde: PUSH3 0x001ad5
00001ce2: JUMP
00001ce3: JUMPDEST
00001ce4: DUP3
00001ce5: MSTORE
00001ce6: POP
00001ce7: PUSH1 0x20
00001ce9: DUP4
00001cea: ADD
00001ceb: CALLDATALOAD
00001cec: DUP3
00001ced: DUP2
00001cee: GT
00001cef: ISZERO
00001cf0: PUSH3 0x001cf9
00001cf4: JUMPI
00001cf5: PUSH1 0x00
00001cf7: DUP1
00001cf8: REVERT
00001cf9: JUMPDEST
00001cfa: PUSH3 0x001d07
00001cfe: DUP11
00001cff: DUP3
00001d00: DUP7
00001d01: ADD
00001d02: PUSH3 0x001b48
00001d06: JUMP
00001d07: JUMPDEST
00001d08: PUSH1 0x20
00001d0a: DUP4
00001d0b: ADD
00001d0c: MSTORE
00001d0d: POP
00001d0e: PUSH1 0x40
00001d10: DUP4
00001d11: ADD
00001d12: CALLDATALOAD
00001d13: DUP3
00001d14: DUP2
00001d15: GT
00001d16: ISZERO
00001d17: PUSH3 0x001d20
00001d1b: JUMPI
00001d1c: PUSH1 0x00
00001d1e: DUP1
00001d1f: REVERT
00001d20: JUMPDEST
00001d21: PUSH3 0x001d2e
00001d25: DUP11
00001d26: DUP3
00001d27: DUP7
00001d28: ADD
00001d29: PUSH3 0x001ad5
00001d2d: JUMP
00001d2e: JUMPDEST
00001d2f: PUSH1 0x40
00001d31: DUP4
00001d32: ADD
00001d33: MSTORE
00001d34: POP
00001d35: PUSH1 0x60
00001d37: DUP4
00001d38: ADD
00001d39: CALLDATALOAD
00001d3a: DUP3
00001d3b: DUP2
00001d3c: GT
00001d3d: ISZERO
00001d3e: PUSH3 0x001d47
00001d42: JUMPI
00001d43: PUSH1 0x00
00001d45: DUP1
00001d46: REVERT
00001d47: JUMPDEST
00001d48: PUSH3 0x001d55
00001d4c: DUP11
00001d4d: DUP3
00001d4e: DUP7
00001d4f: ADD
00001d50: PUSH3 0x001b48
00001d54: JUMP
00001d55: JUMPDEST
00001d56: PUSH1 0x60
00001d58: DUP4
00001d59: ADD
00001d5a: MSTORE
00001d5b: POP
00001d5c: PUSH3 0x001d69
00001d60: PUSH1 0x80
00001d62: DUP5
00001d63: ADD
00001d64: PUSH3 0x00195c
00001d68: JUMP
00001d69: JUMPDEST
00001d6a: PUSH1 0x80
00001d6c: DUP3
00001d6d: ADD
00001d6e: MSTORE
00001d6f: PUSH1 0xa0
00001d71: DUP4
00001d72: ADD
00001d73: CALLDATALOAD
00001d74: DUP3
00001d75: DUP2
00001d76: GT
00001d77: ISZERO
00001d78: PUSH3 0x001d81
00001d7c: JUMPI
00001d7d: PUSH1 0x00
00001d7f: DUP1
00001d80: REVERT
00001d81: JUMPDEST
00001d82: PUSH3 0x001d8f
00001d86: DUP11
00001d87: DUP3
00001d88: DUP7
00001d89: ADD
00001d8a: PUSH3 0x001bb3
00001d8e: JUMP
00001d8f: JUMPDEST
00001d90: PUSH1 0xa0
00001d92: DUP4
00001d93: ADD
00001d94: MSTORE
00001d95: POP
00001d96: PUSH1 0xc0
00001d98: DUP4
00001d99: ADD
00001d9a: CALLDATALOAD
00001d9b: PUSH1 0xc0
00001d9d: DUP3
00001d9e: ADD
00001d9f: MSTORE
00001da0: PUSH1 0xe0
00001da2: DUP4
00001da3: ADD
00001da4: CALLDATALOAD
00001da5: PUSH1 0xe0
00001da7: DUP3
00001da8: ADD
00001da9: MSTORE
00001daa: PUSH2 0x0100
00001dad: SWAP2
00001dae: POP
00001daf: DUP2
00001db0: DUP4
00001db1: ADD
00001db2: CALLDATALOAD
00001db3: DUP3
00001db4: DUP3
00001db5: ADD
00001db6: MSTORE
00001db7: DUP1
00001db8: SWAP4
00001db9: POP
00001dba: POP
00001dbb: POP
00001dbc: POP
00001dbd: SWAP3
00001dbe: SWAP6
00001dbf: SWAP2
00001dc0: SWAP5
00001dc1: POP
00001dc2: SWAP3
00001dc3: POP
00001dc4: JUMP
00001dc5: JUMPDEST
00001dc6: PUSH1 0x00
00001dc8: PUSH1 0x20
00001dca: DUP3
00001dcb: DUP5
00001dcc: SUB
00001dcd: SLT
00001dce: ISZERO
00001dcf: PUSH3 0x001dd8
00001dd3: JUMPI
00001dd4: PUSH1 0x00
00001dd6: DUP1
00001dd7: REVERT
00001dd8: JUMPDEST
00001dd9: POP
00001dda: CALLDATALOAD
00001ddb: SWAP2
00001ddc: SWAP1
00001ddd: POP
00001dde: JUMP
00001ddf: JUMPDEST
00001de0: PUSH1 0x00
00001de2: DUP1
00001de3: DUP4
00001de4: PUSH1 0x1f
00001de6: DUP5
00001de7: ADD
00001de8: SLT
00001de9: PUSH3 0x001df2
00001ded: JUMPI
00001dee: PUSH1 0x00
00001df0: DUP1
00001df1: REVERT
00001df2: JUMPDEST
00001df3: POP
00001df4: DUP2
00001df5: CALLDATALOAD
00001df6: PUSH1 0x01
00001df8: PUSH1 0x01
00001dfa: PUSH1 0x40
00001dfc: SHL
00001dfd: SUB
00001dfe: DUP2
00001dff: GT
00001e00: ISZERO
00001e01: PUSH3 0x001e0a
00001e05: JUMPI
00001e06: PUSH1 0x00
00001e08: DUP1
00001e09: REVERT
00001e0a: JUMPDEST
00001e0b: PUSH1 0x20
00001e0d: DUP4
00001e0e: ADD
00001e0f: SWAP2
00001e10: POP
00001e11: DUP4
00001e12: PUSH1 0x20
00001e14: DUP3
00001e15: PUSH1 0x05
00001e17: SHL
00001e18: DUP6
00001e19: ADD
00001e1a: ADD
00001e1b: GT
00001e1c: ISZERO
00001e1d: PUSH3 0x00188c
00001e21: JUMPI
00001e22: PUSH1 0x00
00001e24: DUP1
00001e25: REVERT
00001e26: JUMPDEST
00001e27: PUSH1 0x00
00001e29: DUP1
00001e2a: PUSH1 0x00
00001e2c: DUP1
00001e2d: PUSH1 0x00
00001e2f: DUP1
00001e30: PUSH1 0x00
00001e32: DUP1
00001e33: PUSH1 0x00
00001e35: DUP1
00001e36: PUSH1 0x00
00001e38: DUP1
00001e39: PUSH2 0x0100
00001e3c: DUP14
00001e3d: DUP16
00001e3e: SUB
00001e3f: SLT
00001e40: ISZERO
00001e41: PUSH3 0x001e4a
00001e45: JUMPI
00001e46: PUSH1 0x00
00001e48: DUP1
00001e49: REVERT
00001e4a: JUMPDEST
00001e4b: PUSH1 0x01
00001e4d: PUSH1 0x01
00001e4f: PUSH1 0x40
00001e51: SHL
00001e52: SUB
00001e53: DUP14
00001e54: CALLDATALOAD
00001e55: GT
00001e56: ISZERO
00001e57: PUSH3 0x001e60
00001e5b: JUMPI
00001e5c: PUSH1 0x00
00001e5e: DUP1
00001e5f: REVERT
00001e60: JUMPDEST
00001e61: PUSH3 0x001e6f
00001e65: DUP15
00001e66: DUP15
00001e67: CALLDATALOAD
00001e68: DUP16
00001e69: ADD
00001e6a: PUSH3 0x00182c
00001e6e: JUMP
00001e6f: JUMPDEST
00001e70: SWAP12
00001e71: POP
00001e72: PUSH1 0x01
00001e74: PUSH1 0x01
00001e76: PUSH1 0x40
00001e78: SHL
00001e79: SUB
00001e7a: PUSH1 0x20
00001e7c: DUP15
00001e7d: ADD
00001e7e: CALLDATALOAD
00001e7f: GT
00001e80: ISZERO
00001e81: PUSH3 0x001e8a
00001e85: JUMPI
00001e86: PUSH1 0x00
00001e88: DUP1
00001e89: REVERT
00001e8a: JUMPDEST
00001e8b: PUSH3 0x001e9c
00001e8f: DUP15
00001e90: PUSH1 0x20
00001e92: DUP16
00001e93: ADD
00001e94: CALLDATALOAD
00001e95: DUP16
00001e96: ADD
00001e97: PUSH3 0x001845
00001e9b: JUMP
00001e9c: JUMPDEST
00001e9d: SWAP1
00001e9e: SWAP12
00001e9f: POP
00001ea0: SWAP10
00001ea1: POP
00001ea2: PUSH1 0x01
00001ea4: PUSH1 0x01
00001ea6: PUSH1 0x40
00001ea8: SHL
00001ea9: SUB
00001eaa: PUSH1 0x40
00001eac: DUP15
00001ead: ADD
00001eae: CALLDATALOAD
00001eaf: GT
00001eb0: ISZERO
00001eb1: PUSH3 0x001eba
00001eb5: JUMPI
00001eb6: PUSH1 0x00
00001eb8: DUP1
00001eb9: REVERT
00001eba: JUMPDEST
00001ebb: PUSH3 0x001ecc
00001ebf: DUP15
00001ec0: PUSH1 0x40
00001ec2: DUP16
00001ec3: ADD
00001ec4: CALLDATALOAD
00001ec5: DUP16
00001ec6: ADD
00001ec7: PUSH3 0x001ddf
00001ecb: JUMP
00001ecc: JUMPDEST
00001ecd: SWAP1
00001ece: SWAP10
00001ecf: POP
00001ed0: SWAP8
00001ed1: POP
00001ed2: PUSH1 0x01
00001ed4: PUSH1 0x01
00001ed6: PUSH1 0x40
00001ed8: SHL
00001ed9: SUB
00001eda: PUSH1 0x60
00001edc: DUP15
00001edd: ADD
00001ede: CALLDATALOAD
00001edf: GT
00001ee0: ISZERO
00001ee1: PUSH3 0x001eea
00001ee5: JUMPI
00001ee6: PUSH1 0x00
00001ee8: DUP1
00001ee9: REVERT
00001eea: JUMPDEST
00001eeb: PUSH3 0x001efc
00001eef: DUP15
00001ef0: PUSH1 0x60
00001ef2: DUP16
00001ef3: ADD
00001ef4: CALLDATALOAD
00001ef5: DUP16
00001ef6: ADD
00001ef7: PUSH3 0x001ddf
00001efb: JUMP
00001efc: JUMPDEST
00001efd: SWAP1
00001efe: SWAP8
00001eff: POP
00001f00: SWAP6
00001f01: POP
00001f02: PUSH1 0x01
00001f04: PUSH1 0x01
00001f06: PUSH1 0x40
00001f08: SHL
00001f09: SUB
00001f0a: PUSH1 0x80
00001f0c: DUP15
00001f0d: ADD
00001f0e: CALLDATALOAD
00001f0f: GT
00001f10: ISZERO
00001f11: PUSH3 0x001f1a
00001f15: JUMPI
00001f16: PUSH1 0x00
00001f18: DUP1
00001f19: REVERT
00001f1a: JUMPDEST
00001f1b: PUSH3 0x001f2c
00001f1f: DUP15
00001f20: PUSH1 0x80
00001f22: DUP16
00001f23: ADD
00001f24: CALLDATALOAD
00001f25: DUP16
00001f26: ADD
00001f27: PUSH3 0x001ddf
00001f2b: JUMP
00001f2c: JUMPDEST
00001f2d: SWAP1
00001f2e: SWAP6
00001f2f: POP
00001f30: SWAP4
00001f31: POP
00001f32: PUSH1 0xa0
00001f34: DUP14
00001f35: ADD
00001f36: CALLDATALOAD
00001f37: SWAP3
00001f38: POP
00001f39: PUSH3 0x001f46
00001f3d: PUSH1 0xc0
00001f3f: DUP15
00001f40: ADD
00001f41: PUSH3 0x00195c
00001f45: JUMP
00001f46: JUMPDEST
00001f47: SWAP2
00001f48: POP
00001f49: PUSH1 0xe0
00001f4b: DUP14
00001f4c: ADD
00001f4d: CALLDATALOAD
00001f4e: SWAP1
00001f4f: POP
00001f50: SWAP3
00001f51: SWAP6
00001f52: SWAP9
00001f53: SWAP12
00001f54: POP
00001f55: SWAP3
00001f56: SWAP6
00001f57: SWAP9
00001f58: SWAP12
00001f59: POP
00001f5a: SWAP3
00001f5b: SWAP6
00001f5c: SWAP9
00001f5d: SWAP12
00001f5e: JUMP
00001f5f: JUMPDEST
00001f60: PUSH1 0x00
00001f62: DUP1
00001f63: PUSH1 0x00
00001f65: DUP1
00001f66: PUSH1 0x60
00001f68: DUP6
00001f69: DUP8
00001f6a: SUB
00001f6b: SLT
00001f6c: ISZERO
00001f6d: PUSH3 0x001f76
00001f71: JUMPI
00001f72: PUSH1 0x00
00001f74: DUP1
00001f75: REVERT
00001f76: JUMPDEST
00001f77: DUP5
00001f78: CALLDATALOAD
00001f79: PUSH1 0x01
00001f7b: PUSH1 0x01
00001f7d: PUSH1 0x40
00001f7f: SHL
00001f80: SUB
00001f81: DUP1
00001f82: DUP3
00001f83: GT
00001f84: ISZERO
00001f85: PUSH3 0x001f8e
00001f89: JUMPI
00001f8a: PUSH1 0x00
00001f8c: DUP1
00001f8d: REVERT
00001f8e: JUMPDEST
00001f8f: PUSH3 0x001f9c
00001f93: DUP9
00001f94: DUP4
00001f95: DUP10
00001f96: ADD
00001f97: PUSH3 0x00182c
00001f9b: JUMP
00001f9c: JUMPDEST
00001f9d: SWAP6
00001f9e: POP
00001f9f: PUSH1 0x20
00001fa1: DUP8
00001fa2: ADD
00001fa3: CALLDATALOAD
00001fa4: SWAP2
00001fa5: POP
00001fa6: DUP1
00001fa7: DUP3
00001fa8: GT
00001fa9: ISZERO
00001faa: PUSH3 0x001fb3
00001fae: JUMPI
00001faf: PUSH1 0x00
00001fb1: DUP1
00001fb2: REVERT
00001fb3: JUMPDEST
00001fb4: PUSH3 0x001fc1
00001fb8: DUP9
00001fb9: DUP4
00001fba: DUP10
00001fbb: ADD
00001fbc: PUSH3 0x00182c
00001fc0: JUMP
00001fc1: JUMPDEST
00001fc2: SWAP5
00001fc3: POP
00001fc4: PUSH1 0x40
00001fc6: DUP8
00001fc7: ADD
00001fc8: CALLDATALOAD
00001fc9: SWAP2
00001fca: POP
00001fcb: DUP1
00001fcc: DUP3
00001fcd: GT
00001fce: ISZERO
00001fcf: PUSH3 0x001fd8
00001fd3: JUMPI
00001fd4: PUSH1 0x00
00001fd6: DUP1
00001fd7: REVERT
00001fd8: JUMPDEST
00001fd9: POP
00001fda: PUSH3 0x001fe7
00001fde: DUP8
00001fdf: DUP3
00001fe0: DUP9
00001fe1: ADD
00001fe2: PUSH3 0x001845
00001fe6: JUMP
00001fe7: JUMPDEST
00001fe8: SWAP6
00001fe9: SWAP9
00001fea: SWAP5
00001feb: SWAP8
00001fec: POP
00001fed: SWAP6
00001fee: POP
00001fef: POP
00001ff0: POP
00001ff1: POP
00001ff2: JUMP
00001ff3: JUMPDEST
00001ff4: DUP1
00001ff5: CALLDATALOAD
00001ff6: PUSH1 0xff
00001ff8: DUP2
00001ff9: AND
00001ffa: DUP2
00001ffb: EQ
00001ffc: PUSH3 0x001974
00002000: JUMPI
00002001: PUSH1 0x00
00002003: DUP1
00002004: REVERT
00002005: JUMPDEST
00002006: PUSH1 0x00
00002008: DUP1
00002009: PUSH1 0x00
0000200b: DUP1
0000200c: PUSH1 0x00
0000200e: DUP1
0000200f: PUSH1 0x00
00002011: PUSH1 0x80
00002013: DUP9
00002014: DUP11
00002015: SUB
00002016: SLT
00002017: ISZERO
00002018: PUSH3 0x002021
0000201c: JUMPI
0000201d: PUSH1 0x00
0000201f: DUP1
00002020: REVERT
00002021: JUMPDEST
00002022: DUP8
00002023: CALLDATALOAD
00002024: PUSH1 0x01
00002026: PUSH1 0x01
00002028: PUSH1 0x40
0000202a: SHL
0000202b: SUB
0000202c: DUP1
0000202d: DUP3
0000202e: GT
0000202f: ISZERO
00002030: PUSH3 0x002039
00002034: JUMPI
00002035: PUSH1 0x00
00002037: DUP1
00002038: REVERT
00002039: JUMPDEST
0000203a: PUSH3 0x002047
0000203e: DUP12
0000203f: DUP4
00002040: DUP13
00002041: ADD
00002042: PUSH3 0x001997
00002046: JUMP
00002047: JUMPDEST
00002048: SWAP1
00002049: SWAP10
0000204a: POP
0000204b: SWAP8
0000204c: POP
0000204d: PUSH1 0x20
0000204f: DUP11
00002050: ADD
00002051: CALLDATALOAD
00002052: SWAP2
00002053: POP
00002054: DUP1
00002055: DUP3
00002056: GT
00002057: ISZERO
00002058: PUSH3 0x002061
0000205c: JUMPI
0000205d: PUSH1 0x00
0000205f: DUP1
00002060: REVERT
00002061: JUMPDEST
00002062: PUSH3 0x00206f
00002066: DUP12
00002067: DUP4
00002068: DUP13
00002069: ADD
0000206a: PUSH3 0x001997
0000206e: JUMP
0000206f: JUMPDEST
00002070: SWAP1
00002071: SWAP8
00002072: POP
00002073: SWAP6
00002074: POP
00002075: PUSH1 0x40
00002077: DUP11
00002078: ADD
00002079: CALLDATALOAD
0000207a: SWAP2
0000207b: POP
0000207c: DUP1
0000207d: DUP3
0000207e: GT
0000207f: ISZERO
00002080: PUSH3 0x002089
00002084: JUMPI
00002085: PUSH1 0x00
00002087: DUP1
00002088: REVERT
00002089: JUMPDEST
0000208a: POP
0000208b: PUSH3 0x002098
0000208f: DUP11
00002090: DUP3
00002091: DUP12
00002092: ADD
00002093: PUSH3 0x001997
00002097: JUMP
00002098: JUMPDEST
00002099: SWAP1
0000209a: SWAP5
0000209b: POP
0000209c: SWAP3
0000209d: POP
0000209e: PUSH3 0x0020ad
000020a2: SWAP1
000020a3: POP
000020a4: PUSH1 0x60
000020a6: DUP10
000020a7: ADD
000020a8: PUSH3 0x001ff3
000020ac: JUMP
000020ad: JUMPDEST
000020ae: SWAP1
000020af: POP
000020b0: SWAP3
000020b1: SWAP6
000020b2: SWAP9
000020b3: SWAP2
000020b4: SWAP5
000020b5: SWAP8
000020b6: POP
000020b7: SWAP3
000020b8: SWAP6
000020b9: POP
000020ba: JUMP
000020bb: JUMPDEST
000020bc: PUSH1 0x00
000020be: PUSH1 0xa0
000020c0: DUP3
000020c1: CALLDATASIZE
000020c2: SUB
000020c3: SLT
000020c4: ISZERO
000020c5: PUSH3 0x0020ce
000020c9: JUMPI
000020ca: PUSH1 0x00
000020cc: DUP1
000020cd: REVERT
000020ce: JUMPDEST
000020cf: PUSH1 0x40
000020d1: MLOAD
000020d2: PUSH1 0xa0
000020d4: DUP2
000020d5: ADD
000020d6: PUSH1 0x01
000020d8: PUSH1 0x01
000020da: PUSH1 0x40
000020dc: SHL
000020dd: SUB
000020de: DUP3
000020df: DUP3
000020e0: LT
000020e1: DUP2
000020e2: DUP4
000020e3: GT
000020e4: OR
000020e5: ISZERO
000020e6: PUSH3 0x0020f4
000020ea: JUMPI
000020eb: PUSH3 0x0020f4
000020ef: PUSH3 0x001a3a
000020f3: JUMP
000020f4: JUMPDEST
000020f5: DUP2
000020f6: PUSH1 0x40
000020f8: MSTORE
000020f9: DUP5
000020fa: CALLDATALOAD
000020fb: SWAP2
000020fc: POP
000020fd: DUP1
000020fe: DUP3
000020ff: GT
00002100: ISZERO
00002101: PUSH3 0x00210a
00002105: JUMPI
00002106: PUSH1 0x00
00002108: DUP1
00002109: REVERT
0000210a: JUMPDEST
0000210b: PUSH3 0x002118
0000210f: CALLDATASIZE
00002110: DUP4
00002111: DUP8
00002112: ADD
00002113: PUSH3 0x001b48
00002117: JUMP
00002118: JUMPDEST
00002119: DUP4
0000211a: MSTORE
0000211b: PUSH1 0x20
0000211d: DUP6
0000211e: ADD
0000211f: CALLDATALOAD
00002120: SWAP2
00002121: POP
00002122: DUP1
00002123: DUP3
00002124: GT
00002125: ISZERO
00002126: PUSH3 0x00212f
0000212a: JUMPI
0000212b: PUSH1 0x00
0000212d: DUP1
0000212e: REVERT
0000212f: JUMPDEST
00002130: POP
00002131: PUSH3 0x00213e
00002135: CALLDATASIZE
00002136: DUP3
00002137: DUP7
00002138: ADD
00002139: PUSH3 0x001ad5
0000213d: JUMP
0000213e: JUMPDEST
0000213f: PUSH1 0x20
00002141: DUP4
00002142: ADD
00002143: MSTORE
00002144: POP
00002145: PUSH1 0x40
00002147: DUP4
00002148: ADD
00002149: CALLDATALOAD
0000214a: PUSH1 0x40
0000214c: DUP3
0000214d: ADD
0000214e: MSTORE
0000214f: PUSH1 0x60
00002151: DUP4
00002152: ADD
00002153: CALLDATALOAD
00002154: PUSH1 0x60
00002156: DUP3
00002157: ADD
00002158: MSTORE
00002159: PUSH3 0x002166
0000215d: PUSH1 0x80
0000215f: DUP5
00002160: ADD
00002161: PUSH3 0x00195c
00002165: JUMP
00002166: JUMPDEST
00002167: PUSH1 0x80
00002169: DUP3
0000216a: ADD
0000216b: MSTORE
0000216c: SWAP3
0000216d: SWAP2
0000216e: POP
0000216f: POP
00002170: JUMP
00002171: JUMPDEST
00002172: PUSH1 0x20
00002174: DUP1
00002175: DUP3
00002176: MSTORE
00002177: PUSH1 0x1f
00002179: SWAP1
0000217a: DUP3
0000217b: ADD
0000217c: MSTORE
0000217d: PUSH32 0x5265656e7472616e637947756172643a207265656e7472616e742063616c6c00
0000219e: PUSH1 0x40
000021a0: DUP3
000021a1: ADD
000021a2: MSTORE
000021a3: PUSH1 0x60
000021a5: ADD
000021a6: SWAP1
000021a7: JUMP
000021a8: JUMPDEST
000021a9: PUSH1 0x00
000021ab: PUSH1 0x20
000021ad: DUP3
000021ae: DUP5
000021af: SUB
000021b0: SLT
000021b1: ISZERO
000021b2: PUSH3 0x0021bb
000021b6: JUMPI
000021b7: PUSH1 0x00
000021b9: DUP1
000021ba: REVERT
000021bb: JUMPDEST
000021bc: POP
000021bd: MLOAD
000021be: SWAP2
000021bf: SWAP1
000021c0: POP
000021c1: JUMP
000021c2: JUMPDEST
000021c3: PUSH4 0x4e487b71
000021c8: PUSH1 0xe0
000021ca: SHL
000021cb: PUSH1 0x00
000021cd: MSTORE
000021ce: PUSH1 0x11
000021d0: PUSH1 0x04
000021d2: MSTORE
000021d3: PUSH1 0x24
000021d5: PUSH1 0x00
000021d7: REVERT
000021d8: JUMPDEST
000021d9: PUSH1 0x00
000021db: DUP3
000021dc: NOT
000021dd: DUP3
000021de: GT
000021df: ISZERO
000021e0: PUSH3 0x0021ee
000021e4: JUMPI
000021e5: PUSH3 0x0021ee
000021e9: PUSH3 0x0021c2
000021ed: JUMP
000021ee: JUMPDEST
000021ef: POP
000021f0: ADD
000021f1: SWAP1
000021f2: JUMP
000021f3: JUMPDEST
000021f4: PUSH1 0x00
000021f6: DUP3
000021f7: DUP3
000021f8: LT
000021f9: ISZERO
000021fa: PUSH3 0x002208
000021fe: JUMPI
000021ff: PUSH3 0x002208
00002203: PUSH3 0x0021c2
00002207: JUMP
00002208: JUMPDEST
00002209: POP
0000220a: SUB
0000220b: SWAP1
0000220c: JUMP
0000220d: JUMPDEST
0000220e: DUP2
0000220f: DUP4
00002210: MSTORE
00002211: DUP2
00002212: DUP2
00002213: PUSH1 0x20
00002215: DUP6
00002216: ADD
00002217: CALLDATACOPY
00002218: POP
00002219: PUSH1 0x00
0000221b: DUP3
0000221c: DUP3
0000221d: ADD
0000221e: PUSH1 0x20
00002220: SWAP1
00002221: DUP2
00002222: ADD
00002223: SWAP2
00002224: SWAP1
00002225: SWAP2
00002226: MSTORE
00002227: PUSH1 0x1f
00002229: SWAP1
0000222a: SWAP2
0000222b: ADD
0000222c: PUSH1 0x1f
0000222e: NOT
0000222f: AND
00002230: SWAP1
00002231: SWAP2
00002232: ADD
00002233: ADD
00002234: SWAP1
00002235: JUMP
00002236: JUMPDEST
00002237: PUSH1 0x60
00002239: DUP2
0000223a: MSTORE
0000223b: PUSH1 0x00
0000223d: PUSH3 0x00224c
00002241: PUSH1 0x60
00002243: DUP4
00002244: ADD
00002245: DUP7
00002246: DUP9
00002247: PUSH3 0x00220d
0000224b: JUMP
0000224c: JUMPDEST
0000224d: PUSH1 0x20
0000224f: DUP4
00002250: ADD
00002251: SWAP5
00002252: SWAP1
00002253: SWAP5
00002254: MSTORE
00002255: POP
00002256: PUSH1 0x40
00002258: ADD
00002259: MSTORE
0000225a: SWAP3
0000225b: SWAP2
0000225c: POP
0000225d: POP
0000225e: JUMP
0000225f: JUMPDEST
00002260: PUSH1 0x00
00002262: DUP2
00002263: MLOAD
00002264: DUP1
00002265: DUP5
00002266: MSTORE
00002267: PUSH1 0x20
00002269: DUP1
0000226a: DUP6
0000226b: ADD
0000226c: SWAP5
0000226d: POP
0000226e: DUP1
0000226f: DUP5
00002270: ADD
00002271: PUSH1 0x00
00002273: JUMPDEST
00002274: DUP4
00002275: DUP2
00002276: LT
00002277: ISZERO
00002278: PUSH3 0x002291
0000227c: JUMPI
0000227d: DUP2
0000227e: MLOAD
0000227f: DUP8
00002280: MSTORE
00002281: SWAP6
00002282: DUP3
00002283: ADD
00002284: SWAP6
00002285: SWAP1
00002286: DUP3
00002287: ADD
00002288: SWAP1
00002289: PUSH1 0x01
0000228b: ADD
0000228c: PUSH3 0x002273
00002290: JUMP
00002291: JUMPDEST
00002292: POP
00002293: SWAP5
00002294: SWAP6
00002295: SWAP5
00002296: POP
00002297: POP
00002298: POP
00002299: POP
0000229a: POP
0000229b: JUMP
0000229c: JUMPDEST
0000229d: PUSH1 0x00
0000229f: DUP2
000022a0: MLOAD
000022a1: DUP1
000022a2: DUP5
000022a3: MSTORE
000022a4: PUSH1 0x20
000022a6: DUP1
000022a7: DUP6
000022a8: ADD
000022a9: SWAP5
000022aa: POP
000022ab: DUP1
000022ac: DUP5
000022ad: ADD
000022ae: PUSH1 0x00
000022b0: JUMPDEST
000022b1: DUP4
000022b2: DUP2
000022b3: LT
000022b4: ISZERO
000022b5: PUSH3 0x002291
000022b9: JUMPI
000022ba: DUP2
000022bb: MLOAD
000022bc: PUSH1 0x01
000022be: PUSH1 0x01
000022c0: PUSH1 0xa0
000022c2: SHL
000022c3: SUB
000022c4: AND
000022c5: DUP8
000022c6: MSTORE
000022c7: SWAP6
000022c8: DUP3
000022c9: ADD
000022ca: SWAP6
000022cb: SWAP1
000022cc: DUP3
000022cd: ADD
000022ce: SWAP1
000022cf: PUSH1 0x01
000022d1: ADD
000022d2: PUSH3 0x0022b0
000022d6: JUMP
000022d7: JUMPDEST
000022d8: PUSH1 0x00
000022da: JUMPDEST
000022db: DUP4
000022dc: DUP2
000022dd: LT
000022de: ISZERO
000022df: PUSH3 0x0022f4
000022e3: JUMPI
000022e4: DUP2
000022e5: DUP2
000022e6: ADD
000022e7: MLOAD
000022e8: DUP4
000022e9: DUP3
000022ea: ADD
000022eb: MSTORE
000022ec: PUSH1 0x20
000022ee: ADD
000022ef: PUSH3 0x0022da
000022f3: JUMP
000022f4: JUMPDEST
000022f5: DUP4
000022f6: DUP2
000022f7: GT
000022f8: ISZERO
000022f9: PUSH3 0x001154
000022fd: JUMPI
000022fe: POP
000022ff: POP
00002300: PUSH1 0x00
00002302: SWAP2
00002303: ADD
00002304: MSTORE
00002305: JUMP
00002306: JUMPDEST
00002307: PUSH1 0x00
00002309: DUP2
0000230a: MLOAD
0000230b: DUP1
0000230c: DUP5
0000230d: MSTORE
0000230e: PUSH3 0x002320
00002312: DUP2
00002313: PUSH1 0x20
00002315: DUP7
00002316: ADD
00002317: PUSH1 0x20
00002319: DUP7
0000231a: ADD
0000231b: PUSH3 0x0022d7
0000231f: JUMP
00002320: JUMPDEST
00002321: PUSH1 0x1f
00002323: ADD
00002324: PUSH1 0x1f
00002326: NOT
00002327: AND
00002328: SWAP3
00002329: SWAP1
0000232a: SWAP3
0000232b: ADD
0000232c: PUSH1 0x20
0000232e: ADD
0000232f: SWAP3
00002330: SWAP2
00002331: POP
00002332: POP
00002333: JUMP
00002334: JUMPDEST
00002335: PUSH1 0x00
00002337: PUSH2 0x0160
0000233a: DUP14
0000233b: DUP4
0000233c: MSTORE
0000233d: DUP13
0000233e: PUSH1 0x20
00002340: DUP5
00002341: ADD
00002342: MSTORE
00002343: DUP1
00002344: PUSH1 0x40
00002346: DUP5
00002347: ADD
00002348: MSTORE
00002349: PUSH3 0x002356
0000234d: DUP2
0000234e: DUP5
0000234f: ADD
00002350: DUP14
00002351: PUSH3 0x00225f
00002355: JUMP
00002356: JUMPDEST
00002357: SWAP1
00002358: POP
00002359: DUP3
0000235a: DUP2
0000235b: SUB
0000235c: PUSH1 0x60
0000235e: DUP5
0000235f: ADD
00002360: MSTORE
00002361: PUSH3 0x00236c
00002365: DUP2
00002366: DUP13
00002367: PUSH3 0x00229c
0000236b: JUMP
0000236c: JUMPDEST
0000236d: SWAP1
0000236e: POP
0000236f: DUP3
00002370: DUP2
00002371: SUB
00002372: PUSH1 0x80
00002374: DUP5
00002375: ADD
00002376: MSTORE
00002377: PUSH3 0x002382
0000237b: DUP2
0000237c: DUP12
0000237d: PUSH3 0x00225f
00002381: JUMP
00002382: JUMPDEST
00002383: SWAP1
00002384: POP
00002385: DUP3
00002386: DUP2
00002387: SUB
00002388: PUSH1 0xa0
0000238a: DUP5
0000238b: ADD
0000238c: MSTORE
0000238d: PUSH3 0x002398
00002391: DUP2
00002392: DUP11
00002393: PUSH3 0x00229c
00002397: JUMP
00002398: JUMPDEST
00002399: PUSH1 0x01
0000239b: PUSH1 0x01
0000239d: PUSH1 0xa0
0000239f: SHL
000023a0: SUB
000023a1: DUP10
000023a2: AND
000023a3: PUSH1 0xc0
000023a5: DUP6
000023a6: ADD
000023a7: MSTORE
000023a8: DUP4
000023a9: DUP2
000023aa: SUB
000023ab: PUSH1 0xe0
000023ad: DUP6
000023ae: ADD
000023af: MSTORE
000023b0: SWAP1
000023b1: POP
000023b2: PUSH3 0x0023bd
000023b6: DUP2
000023b7: DUP9
000023b8: PUSH3 0x002306
000023bc: JUMP
000023bd: JUMPDEST
000023be: PUSH2 0x0100
000023c1: DUP5
000023c2: ADD
000023c3: SWAP7
000023c4: SWAP1
000023c5: SWAP7
000023c6: MSTORE
000023c7: POP
000023c8: POP
000023c9: PUSH2 0x0120
000023cc: DUP2
000023cd: ADD
000023ce: SWAP3
000023cf: SWAP1
000023d0: SWAP3
000023d1: MSTORE
000023d2: PUSH2 0x0140
000023d5: SWAP1
000023d6: SWAP2
000023d7: ADD
000023d8: MSTORE
000023d9: SWAP9
000023da: SWAP8
000023db: POP
000023dc: POP
000023dd: POP
000023de: POP
000023df: POP
000023e0: POP
000023e1: POP
000023e2: POP
000023e3: JUMP
000023e4: JUMPDEST
000023e5: PUSH4 0x4e487b71
000023ea: PUSH1 0xe0
000023ec: SHL
000023ed: PUSH1 0x00
000023ef: MSTORE
000023f0: PUSH1 0x32
000023f2: PUSH1 0x04
000023f4: MSTORE
000023f5: PUSH1 0x24
000023f7: PUSH1 0x00
000023f9: REVERT
000023fa: JUMPDEST
000023fb: PUSH1 0x00
000023fd: PUSH1 0x00
000023ff: NOT
00002400: DUP3
00002401: EQ
00002402: ISZERO
00002403: PUSH3 0x002411
00002407: JUMPI
00002408: PUSH3 0x002411
0000240c: PUSH3 0x0021c2
00002410: JUMP
00002411: JUMPDEST
00002412: POP
00002413: PUSH1 0x01
00002415: ADD
00002416: SWAP1
00002417: JUMP
00002418: JUMPDEST
00002419: DUP5
0000241a: DUP2
0000241b: MSTORE
0000241c: DUP4
0000241d: PUSH1 0x20
0000241f: DUP3
00002420: ADD
00002421: MSTORE
00002422: PUSH1 0x80
00002424: PUSH1 0x40
00002426: DUP3
00002427: ADD
00002428: MSTORE
00002429: PUSH1 0x00
0000242b: PUSH3 0x002439
0000242f: PUSH1 0x80
00002431: DUP4
00002432: ADD
00002433: DUP6
00002434: PUSH3 0x002306
00002438: JUMP
00002439: JUMPDEST
0000243a: SWAP1
0000243b: POP
0000243c: DUP3
0000243d: PUSH1 0x60
0000243f: DUP4
00002440: ADD
00002441: MSTORE
00002442: SWAP6
00002443: SWAP5
00002444: POP
00002445: POP
00002446: POP
00002447: POP
00002448: POP
00002449: JUMP
0000244a: JUMPDEST
0000244b: DUP2
0000244c: DUP4
0000244d: MSTORE
0000244e: PUSH1 0x00
00002450: PUSH1 0x01
00002452: PUSH1 0x01
00002454: PUSH1 0xfb
00002456: SHL
00002457: SUB
00002458: DUP4
00002459: GT
0000245a: ISZERO
0000245b: PUSH3 0x002464
0000245f: JUMPI
00002460: PUSH1 0x00
00002462: DUP1
00002463: REVERT
00002464: JUMPDEST
00002465: DUP3
00002466: PUSH1 0x05
00002468: SHL
00002469: DUP1
0000246a: DUP4
0000246b: PUSH1 0x20
0000246d: DUP8
0000246e: ADD
0000246f: CALLDATACOPY
00002470: PUSH1 0x00
00002472: SWAP5
00002473: ADD
00002474: PUSH1 0x20
00002476: ADD
00002477: SWAP4
00002478: DUP5
00002479: MSTORE
0000247a: POP
0000247b: SWAP2
0000247c: SWAP3
0000247d: SWAP2
0000247e: POP
0000247f: POP
00002480: JUMP
00002481: JUMPDEST
00002482: DUP2
00002483: DUP4
00002484: MSTORE
00002485: PUSH1 0x00
00002487: PUSH1 0x20
00002489: DUP1
0000248a: DUP6
0000248b: ADD
0000248c: SWAP5
0000248d: POP
0000248e: DUP3
0000248f: PUSH1 0x00
00002491: JUMPDEST
00002492: DUP6
00002493: DUP2
00002494: LT
00002495: ISZERO
00002496: PUSH3 0x002291
0000249a: JUMPI
0000249b: PUSH1 0x01
0000249d: PUSH1 0x01
0000249f: PUSH1 0xa0
000024a1: SHL
000024a2: SUB
000024a3: PUSH3 0x0024ad
000024a7: DUP4
000024a8: PUSH3 0x00195c
000024ac: JUMP
000024ad: JUMPDEST
000024ae: AND
000024af: DUP8
000024b0: MSTORE
000024b1: SWAP6
000024b2: DUP3
000024b3: ADD
000024b4: SWAP6
000024b5: SWAP1
000024b6: DUP3
000024b7: ADD
000024b8: SWAP1
000024b9: PUSH1 0x01
000024bb: ADD
000024bc: PUSH3 0x002491
000024c0: JUMP
000024c1: JUMPDEST
000024c2: PUSH1 0x00
000024c4: PUSH2 0x0100
000024c7: DUP14
000024c8: DUP4
000024c9: MSTORE
000024ca: DUP13
000024cb: PUSH1 0x20
000024cd: DUP5
000024ce: ADD
000024cf: MSTORE
000024d0: DUP1
000024d1: PUSH1 0x40
000024d3: DUP5
000024d4: ADD
000024d5: MSTORE
000024d6: PUSH3 0x0024e4
000024da: DUP2
000024db: DUP5
000024dc: ADD
000024dd: DUP13
000024de: DUP15
000024df: PUSH3 0x00244a
000024e3: JUMP
000024e4: JUMPDEST
000024e5: SWAP1
000024e6: POP
000024e7: DUP3
000024e8: DUP2
000024e9: SUB
000024ea: PUSH1 0x60
000024ec: DUP5
000024ed: ADD
000024ee: MSTORE
000024ef: PUSH3 0x0024fb
000024f3: DUP2
000024f4: DUP11
000024f5: DUP13
000024f6: PUSH3 0x002481
000024fa: JUMP
000024fb: JUMPDEST
000024fc: SWAP1
000024fd: POP
000024fe: DUP3
000024ff: DUP2
00002500: SUB
00002501: PUSH1 0x80
00002503: DUP5
00002504: ADD
00002505: MSTORE
00002506: PUSH3 0x002512
0000250a: DUP2
0000250b: DUP9
0000250c: DUP11
0000250d: PUSH3 0x00244a
00002511: JUMP
00002512: JUMPDEST
00002513: PUSH1 0xa0
00002515: DUP5
00002516: ADD
00002517: SWAP7
00002518: SWAP1
00002519: SWAP7
0000251a: MSTORE
0000251b: POP
0000251c: POP
0000251d: PUSH1 0x01
0000251f: PUSH1 0x01
00002521: PUSH1 0xa0
00002523: SHL
00002524: SUB
00002525: SWAP3
00002526: SWAP1
00002527: SWAP3
00002528: AND
00002529: PUSH1 0xc0
0000252b: DUP4
0000252c: ADD
0000252d: MSTORE
0000252e: PUSH1 0xe0
00002530: SWAP1
00002531: SWAP2
00002532: ADD
00002533: MSTORE
00002534: SWAP9
00002535: SWAP8
00002536: POP
00002537: POP
00002538: POP
00002539: POP
0000253a: POP
0000253b: POP
0000253c: POP
0000253d: POP
0000253e: JUMP
0000253f: JUMPDEST
00002540: PUSH1 0x00
00002542: DUP1
00002543: DUP4
00002544: CALLDATALOAD
00002545: PUSH1 0x1e
00002547: NOT
00002548: DUP5
00002549: CALLDATASIZE
0000254a: SUB
0000254b: ADD
0000254c: DUP2
0000254d: SLT
0000254e: PUSH3 0x002557
00002552: JUMPI
00002553: PUSH1 0x00
00002555: DUP1
00002556: REVERT
00002557: JUMPDEST
00002558: DUP4
00002559: ADD
0000255a: DUP1
0000255b: CALLDATALOAD
0000255c: SWAP2
0000255d: POP
0000255e: PUSH1 0x01
00002560: PUSH1 0x01
00002562: PUSH1 0x40
00002564: SHL
00002565: SUB
00002566: DUP3
00002567: GT
00002568: ISZERO
00002569: PUSH3 0x002572
0000256d: JUMPI
0000256e: PUSH1 0x00
00002570: DUP1
00002571: REVERT
00002572: JUMPDEST
00002573: PUSH1 0x20
00002575: ADD
00002576: SWAP2
00002577: POP
00002578: PUSH1 0x05
0000257a: DUP2
0000257b: SWAP1
0000257c: SHL
0000257d: CALLDATASIZE
0000257e: SUB
0000257f: DUP3
00002580: SGT
00002581: ISZERO
00002582: PUSH3 0x00188c
00002586: JUMPI
00002587: PUSH1 0x00
00002589: DUP1
0000258a: REVERT
0000258b: JUMPDEST
0000258c: DUP8
0000258d: DUP2
0000258e: MSTORE
0000258f: DUP7
00002590: PUSH1 0x20
00002592: DUP3
00002593: ADD
00002594: MSTORE
00002595: PUSH1 0x01
00002597: DUP1
00002598: PUSH1 0xa0
0000259a: SHL
0000259b: SUB
0000259c: DUP7
0000259d: AND
0000259e: PUSH1 0x40
000025a0: DUP3
000025a1: ADD
000025a2: MSTORE
000025a3: PUSH1 0xa0
000025a5: PUSH1 0x60
000025a7: DUP3
000025a8: ADD
000025a9: MSTORE
000025aa: PUSH1 0x00
000025ac: PUSH3 0x0025bb
000025b0: PUSH1 0xa0
000025b2: DUP4
000025b3: ADD
000025b4: DUP7
000025b5: DUP9
000025b6: PUSH3 0x002481
000025ba: JUMP
000025bb: JUMPDEST
000025bc: DUP3
000025bd: DUP2
000025be: SUB
000025bf: PUSH1 0x80
000025c1: DUP5
000025c2: ADD
000025c3: MSTORE
000025c4: PUSH3 0x0025d0
000025c8: DUP2
000025c9: DUP6
000025ca: DUP8
000025cb: PUSH3 0x00244a
000025cf: JUMP
000025d0: JUMPDEST
000025d1: SWAP11
000025d2: SWAP10
000025d3: POP
000025d4: POP
000025d5: POP
000025d6: POP
000025d7: POP
000025d8: POP
000025d9: POP
000025da: POP
000025db: POP
000025dc: POP
000025dd: JUMP
000025de: JUMPDEST
000025df: PUSH1 0x01
000025e1: PUSH1 0x01
000025e3: PUSH1 0xa0
000025e5: SHL
000025e6: SUB
000025e7: DUP8
000025e8: AND
000025e9: DUP2
000025ea: MSTORE
000025eb: PUSH1 0x80
000025ed: PUSH1 0x20
000025ef: DUP3
000025f0: ADD
000025f1: DUP2
000025f2: SWAP1
000025f3: MSTORE
000025f4: PUSH1 0x00
000025f6: SWAP1
000025f7: PUSH3 0x002605
000025fb: SWAP1
000025fc: DUP4
000025fd: ADD
000025fe: DUP8
000025ff: DUP10
00002600: PUSH3 0x00220d
00002604: JUMP
00002605: JUMPDEST
00002606: DUP3
00002607: DUP2
00002608: SUB
00002609: PUSH1 0x40
0000260b: DUP5
0000260c: ADD
0000260d: MSTORE
0000260e: PUSH3 0x00261a
00002612: DUP2
00002613: DUP7
00002614: DUP9
00002615: PUSH3 0x00220d
00002619: JUMP
0000261a: JUMPDEST
0000261b: SWAP2
0000261c: POP
0000261d: POP
0000261e: PUSH1 0xff
00002620: DUP4
00002621: AND
00002622: PUSH1 0x60
00002624: DUP4
00002625: ADD
00002626: MSTORE
00002627: SWAP8
00002628: SWAP7
00002629: POP
0000262a: POP
0000262b: POP
0000262c: POP
0000262d: POP
0000262e: POP
0000262f: POP
00002630: JUMP
00002631: JUMPDEST
00002632: PUSH1 0xa0
00002634: DUP2
00002635: MSTORE
00002636: PUSH1 0x00
00002638: PUSH3 0x002647
0000263c: PUSH1 0xa0
0000263e: DUP4
0000263f: ADD
00002640: DUP11
00002641: DUP13
00002642: PUSH3 0x00220d
00002646: JUMP
00002647: JUMPDEST
00002648: DUP3
00002649: DUP2
0000264a: SUB
0000264b: PUSH1 0x20
0000264d: DUP5
0000264e: ADD
0000264f: MSTORE
00002650: PUSH3 0x00265c
00002654: DUP2
00002655: DUP10
00002656: DUP12
00002657: PUSH3 0x00220d
0000265b: JUMP
0000265c: JUMPDEST
0000265d: SWAP1
0000265e: POP
0000265f: DUP3
00002660: DUP2
00002661: SUB
00002662: PUSH1 0x40
00002664: DUP5
00002665: ADD
00002666: MSTORE
00002667: PUSH3 0x002673
0000266b: DUP2
0000266c: DUP8
0000266d: DUP10
0000266e: PUSH3 0x00220d
00002672: JUMP
00002673: JUMPDEST
00002674: PUSH1 0xff
00002676: SWAP6
00002677: SWAP1
00002678: SWAP6
00002679: AND
0000267a: PUSH1 0x60
0000267c: DUP5
0000267d: ADD
0000267e: MSTORE
0000267f: POP
00002680: POP
00002681: PUSH1 0x80
00002683: ADD
00002684: MSTORE
00002685: SWAP7
00002686: SWAP6
00002687: POP
00002688: POP
00002689: POP
0000268a: POP
0000268b: POP
0000268c: POP
0000268d: JUMP
0000268e: JUMPDEST
0000268f: PUSH1 0x00
00002691: PUSH1 0x20
00002693: DUP3
00002694: DUP5
00002695: SUB
00002696: SLT
00002697: ISZERO
00002698: PUSH3 0x0026a1
0000269c: JUMPI
0000269d: PUSH1 0x00
0000269f: DUP1
000026a0: REVERT
000026a1: JUMPDEST
000026a2: PUSH3 0x001229
000026a6: DUP3
000026a7: PUSH3 0x001ff3
000026ab: JUMP
000026ac: JUMPDEST
000026ad: DUP8
000026ae: DUP2
000026af: MSTORE
000026b0: DUP7
000026b1: PUSH1 0x20
000026b3: DUP3
000026b4: ADD
000026b5: MSTORE
000026b6: DUP6
000026b7: PUSH1 0x40
000026b9: DUP3
000026ba: ADD
000026bb: MSTORE
000026bc: PUSH1 0xe0
000026be: PUSH1 0x60
000026c0: DUP3
000026c1: ADD
000026c2: MSTORE
000026c3: PUSH1 0x00
000026c5: PUSH3 0x0026d3
000026c9: PUSH1 0xe0
000026cb: DUP4
000026cc: ADD
000026cd: DUP8
000026ce: PUSH3 0x00229c
000026d2: JUMP
000026d3: JUMPDEST
000026d4: DUP3
000026d5: DUP2
000026d6: SUB
000026d7: PUSH1 0x80
000026d9: DUP5
000026da: ADD
000026db: MSTORE
000026dc: PUSH3 0x0026e7
000026e0: DUP2
000026e1: DUP8
000026e2: PUSH3 0x00225f
000026e6: JUMP
000026e7: JUMPDEST
000026e8: PUSH1 0xa0
000026ea: DUP5
000026eb: ADD
000026ec: SWAP6
000026ed: SWAP1
000026ee: SWAP6
000026ef: MSTORE
000026f0: POP
000026f1: POP
000026f2: PUSH1 0x01
000026f4: PUSH1 0x01
000026f6: PUSH1 0xa0
000026f8: SHL
000026f9: SUB
000026fa: SWAP2
000026fb: SWAP1
000026fc: SWAP2
000026fd: AND
000026fe: PUSH1 0xc0
00002700: SWAP1
00002701: SWAP2
00002702: ADD
00002703: MSTORE
00002704: SWAP6
00002705: SWAP5
00002706: POP
00002707: POP
00002708: POP
00002709: POP
0000270a: POP
0000270b: JUMP
0000270c: JUMPDEST
0000270d: PUSH1 0x00
0000270f: PUSH1 0x20
00002711: DUP3
00002712: DUP5
00002713: SUB
00002714: SLT
00002715: ISZERO
00002716: PUSH3 0x00271f
0000271a: JUMPI
0000271b: PUSH1 0x00
0000271d: DUP1
0000271e: REVERT
0000271f: JUMPDEST
00002720: DUP2
00002721: MLOAD
00002722: DUP1
00002723: ISZERO
00002724: ISZERO
00002725: DUP2
00002726: EQ
00002727: PUSH3 0x001229
0000272b: JUMPI
0000272c: PUSH1 0x00
0000272e: DUP1
0000272f: REVERT
00002730: JUMPDEST
00002731: PUSH1 0x00
00002733: DUP3
00002734: MLOAD
00002735: PUSH3 0x002744
00002739: DUP2
0000273a: DUP5
0000273b: PUSH1 0x20
0000273d: DUP8
0000273e: ADD
0000273f: PUSH3 0x0022d7
00002743: JUMP
00002744: JUMPDEST
00002745: SWAP2
00002746: SWAP1
00002747: SWAP2
00002748: ADD
00002749: SWAP3
0000274a: SWAP2
0000274b: POP
0000274c: POP
0000274d: JUMP
0000274e: JUMPDEST
0000274f: PUSH4 0x4e487b71
00002754: PUSH1 0xe0
00002756: SHL
00002757: PUSH1 0x00
00002759: MSTORE
0000275a: PUSH1 0x21
0000275c: PUSH1 0x04
0000275e: MSTORE
0000275f: PUSH1 0x24
00002761: PUSH1 0x00
00002763: REVERT
00002764: JUMPDEST
00002765: PUSH1 0x20
00002767: DUP2
00002768: MSTORE
00002769: PUSH1 0x00
0000276b: PUSH3 0x001229
0000276f: PUSH1 0x20
00002771: DUP4
00002772: ADD
00002773: DUP5
00002774: PUSH3 0x002306
00002778: JUMP
00002779: INVALID
0000277a: PUSH1 0x80
0000277c: PUSH1 0x40
0000277e: MSTORE
0000277f: PUSH1 0x00
00002781: NOT
00002782: PUSH1 0x05
00002784: SSTORE
00002785: CALLVALUE
00002786: DUP1
00002787: ISZERO
00002788: PUSH3 0x000017
0000278c: JUMPI
0000278d: PUSH1 0x00
0000278f: DUP1
00002790: REVERT
00002791: JUMPDEST
00002792: POP
00002793: PUSH1 0x40
00002795: MLOAD
00002796: PUSH3 0x000d3e
0000279a: CODESIZE
0000279b: SUB
0000279c: DUP1
0000279d: PUSH3 0x000d3e
000027a1: DUP4
000027a2: CODECOPY
000027a3: DUP2
000027a4: ADD
000027a5: PUSH1 0x40
000027a7: DUP2
000027a8: SWAP1
000027a9: MSTORE
000027aa: PUSH3 0x00003a
000027ae: SWAP2
000027af: PUSH3 0x000307
000027b3: JUMP
000027b4: JUMPDEST
000027b5: DUP3
000027b6: MLOAD
000027b7: DUP4
000027b8: SWAP1
000027b9: DUP4
000027ba: SWAP1
000027bb: PUSH3 0x000053
000027bf: SWAP1
000027c0: PUSH1 0x03
000027c2: SWAP1
000027c3: PUSH1 0x20
000027c5: DUP6
000027c6: ADD
000027c7: SWAP1
000027c8: PUSH3 0x000194
000027cc: JUMP
000027cd: JUMPDEST
000027ce: POP
000027cf: DUP1
000027d0: MLOAD
000027d1: PUSH3 0x000069
000027d5: SWAP1
000027d6: PUSH1 0x04
000027d8: SWAP1
000027d9: PUSH1 0x20
000027db: DUP5
000027dc: ADD
000027dd: SWAP1
000027de: PUSH3 0x000194
000027e2: JUMP
000027e3: JUMPDEST
000027e4: POP
000027e5: POP
000027e6: PUSH1 0x06
000027e8: DUP1
000027e9: SLOAD
000027ea: PUSH1 0x01
000027ec: PUSH1 0x01
000027ee: PUSH1 0xa0
000027f0: SHL
000027f1: SUB
000027f2: DUP8
000027f3: AND
000027f4: PUSH2 0x0100
000027f7: MUL
000027f8: PUSH1 0x01
000027fa: PUSH1 0x01
000027fc: PUSH1 0xa8
000027fe: SHL
000027ff: SUB
00002800: NOT
00002801: SWAP1
00002802: SWAP2
00002803: AND
00002804: PUSH1 0xff
00002806: DUP6
00002807: AND
00002808: OR
00002809: OR
0000280a: SWAP1
0000280b: SSTORE
0000280c: POP
0000280d: PUSH1 0x05
0000280f: SLOAD
00002810: PUSH3 0x0000a2
00002814: SWAP1
00002815: DUP6
00002816: SWAP1
00002817: PUSH3 0x0000ac
0000281b: JUMP
0000281c: JUMPDEST
0000281d: POP
0000281e: POP
0000281f: POP
00002820: POP
00002821: PUSH3 0x00040f
00002825: JUMP
00002826: JUMPDEST
00002827: PUSH1 0x01
00002829: PUSH1 0x01
0000282b: PUSH1 0xa0
0000282d: SHL
0000282e: SUB
0000282f: DUP3
00002830: AND
00002831: PUSH3 0x000107
00002835: JUMPI
00002836: PUSH1 0x40
00002838: MLOAD
00002839: PUSH3 0x461bcd
0000283d: PUSH1 0xe5
0000283f: SHL
00002840: DUP2
00002841: MSTORE
00002842: PUSH1 0x20
00002844: PUSH1 0x04
00002846: DUP3
00002847: ADD
00002848: MSTORE
00002849: PUSH1 0x1f
0000284b: PUSH1 0x24
0000284d: DUP3
0000284e: ADD
0000284f: MSTORE
00002850: PUSH32 0x45524332303a206d696e7420746f20746865207a65726f206164647265737300
00002871: PUSH1 0x44
00002873: DUP3
00002874: ADD
00002875: MSTORE
00002876: PUSH1 0x64
00002878: ADD
00002879: PUSH1 0x40
0000287b: MLOAD
0000287c: DUP1
0000287d: SWAP2
0000287e: SUB
0000287f: SWAP1
00002880: REVERT
00002881: JUMPDEST
00002882: DUP1
00002883: PUSH1 0x02
00002885: PUSH1 0x00
00002887: DUP3
00002888: DUP3
00002889: SLOAD
0000288a: PUSH3 0x00011b
0000288e: SWAP2
0000288f: SWAP1
00002890: PUSH3 0x0003ab
00002894: JUMP
00002895: JUMPDEST
00002896: SWAP1
00002897: SWAP2
00002898: SSTORE
00002899: POP
0000289a: POP
0000289b: PUSH1 0x01
0000289d: PUSH1 0x01
0000289f: PUSH1 0xa0
000028a1: SHL
000028a2: SUB
000028a3: DUP3
000028a4: AND
000028a5: PUSH1 0x00
000028a7: SWAP1
000028a8: DUP2
000028a9: MSTORE
000028aa: PUSH1 0x20
000028ac: DUP2
000028ad: SWAP1
000028ae: MSTORE
000028af: PUSH1 0x40
000028b1: DUP2
000028b2: KECCAK256
000028b3: DUP1
000028b4: SLOAD
000028b5: DUP4
000028b6: SWAP3
000028b7: SWAP1
000028b8: PUSH3 0x00014a
000028bc: SWAP1
000028bd: DUP5
000028be: SWAP1
000028bf: PUSH3 0x0003ab
000028c3: JUMP
000028c4: JUMPDEST
000028c5: SWAP1
000028c6: SWAP2
000028c7: SSTORE
000028c8: POP
000028c9: POP
000028ca: PUSH1 0x40
000028cc: MLOAD
000028cd: DUP2
000028ce: DUP2
000028cf: MSTORE
000028d0: PUSH1 0x01
000028d2: PUSH1 0x01
000028d4: PUSH1 0xa0
000028d6: SHL
000028d7: SUB
000028d8: DUP4
000028d9: AND
000028da: SWAP1
000028db: PUSH1 0x00
000028dd: SWAP1
000028de: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
000028ff: SWAP1
00002900: PUSH1 0x20
00002902: ADD
00002903: PUSH1 0x40
00002905: MLOAD
00002906: DUP1
00002907: SWAP2
00002908: SUB
00002909: SWAP1
0000290a: LOG3
0000290b: POP
0000290c: POP
0000290d: JUMP
0000290e: JUMPDEST
0000290f: DUP3
00002910: DUP1
00002911: SLOAD
00002912: PUSH3 0x0001a2
00002916: SWAP1
00002917: PUSH3 0x0003d2
0000291b: JUMP
0000291c: JUMPDEST
0000291d: SWAP1
0000291e: PUSH1 0x00
00002920: MSTORE
00002921: PUSH1 0x20
00002923: PUSH1 0x00
00002925: KECCAK256
00002926: SWAP1
00002927: PUSH1 0x1f
00002929: ADD
0000292a: PUSH1 0x20
0000292c: SWAP1
0000292d: DIV
0000292e: DUP2
0000292f: ADD
00002930: SWAP3
00002931: DUP3
00002932: PUSH3 0x0001c6
00002936: JUMPI
00002937: PUSH1 0x00
00002939: DUP6
0000293a: SSTORE
0000293b: PUSH3 0x000211
0000293f: JUMP
00002940: JUMPDEST
00002941: DUP3
00002942: PUSH1 0x1f
00002944: LT
00002945: PUSH3 0x0001e1
00002949: JUMPI
0000294a: DUP1
0000294b: MLOAD
0000294c: PUSH1 0xff
0000294e: NOT
0000294f: AND
00002950: DUP4
00002951: DUP1
00002952: ADD
00002953: OR
00002954: DUP6
00002955: SSTORE
00002956: PUSH3 0x000211
0000295a: JUMP
0000295b: JUMPDEST
0000295c: DUP3
0000295d: DUP1
0000295e: ADD
0000295f: PUSH1 0x01
00002961: ADD
00002962: DUP6
00002963: SSTORE
00002964: DUP3
00002965: ISZERO
00002966: PUSH3 0x000211
0000296a: JUMPI
0000296b: SWAP2
0000296c: DUP3
0000296d: ADD
0000296e: JUMPDEST
0000296f: DUP3
00002970: DUP2
00002971: GT
00002972: ISZERO
00002973: PUSH3 0x000211
00002977: JUMPI
00002978: DUP3
00002979: MLOAD
0000297a: DUP3
0000297b: SSTORE
0000297c: SWAP2
0000297d: PUSH1 0x20
0000297f: ADD
00002980: SWAP2
00002981: SWAP1
00002982: PUSH1 0x01
00002984: ADD
00002985: SWAP1
00002986: PUSH3 0x0001f4
0000298a: JUMP
0000298b: JUMPDEST
0000298c: POP
0000298d: PUSH3 0x00021f
00002991: SWAP3
00002992: SWAP2
00002993: POP
00002994: PUSH3 0x000223
00002998: JUMP
00002999: JUMPDEST
0000299a: POP
0000299b: SWAP1
0000299c: JUMP
0000299d: JUMPDEST
0000299e: JUMPDEST
0000299f: DUP1
000029a0: DUP3
000029a1: GT
000029a2: ISZERO
000029a3: PUSH3 0x00021f
000029a7: JUMPI
000029a8: PUSH1 0x00
000029aa: DUP2
000029ab: SSTORE
000029ac: PUSH1 0x01
000029ae: ADD
000029af: PUSH3 0x000224
000029b3: JUMP
000029b4: JUMPDEST
000029b5: PUSH4 0x4e487b71
000029ba: PUSH1 0xe0
000029bc: SHL
000029bd: PUSH1 0x00
000029bf: MSTORE
000029c0: PUSH1 0x41
000029c2: PUSH1 0x04
000029c4: MSTORE
000029c5: PUSH1 0x24
000029c7: PUSH1 0x00
000029c9: REVERT
000029ca: JUMPDEST
000029cb: PUSH1 0x00
000029cd: DUP3
000029ce: PUSH1 0x1f
000029d0: DUP4
000029d1: ADD
000029d2: SLT
000029d3: PUSH3 0x000262
000029d7: JUMPI
000029d8: PUSH1 0x00
000029da: DUP1
000029db: REVERT
000029dc: JUMPDEST
000029dd: DUP2
000029de: MLOAD
000029df: PUSH1 0x01
000029e1: PUSH1 0x01
000029e3: PUSH1 0x40
000029e5: SHL
000029e6: SUB
000029e7: DUP1
000029e8: DUP3
000029e9: GT
000029ea: ISZERO
000029eb: PUSH3 0x00027f
000029ef: JUMPI
000029f0: PUSH3 0x00027f
000029f4: PUSH3 0x00023a
000029f8: JUMP
000029f9: JUMPDEST
000029fa: PUSH1 0x40
000029fc: MLOAD
000029fd: PUSH1 0x1f
000029ff: DUP4
00002a00: ADD
00002a01: PUSH1 0x1f
00002a03: NOT
00002a04: SWAP1
00002a05: DUP2
00002a06: AND
00002a07: PUSH1 0x3f
00002a09: ADD
00002a0a: AND
00002a0b: DUP2
00002a0c: ADD
00002a0d: SWAP1
00002a0e: DUP3
00002a0f: DUP3
00002a10: GT
00002a11: DUP2
00002a12: DUP4
00002a13: LT
00002a14: OR
00002a15: ISZERO
00002a16: PUSH3 0x0002aa
00002a1a: JUMPI
00002a1b: PUSH3 0x0002aa
00002a1f: PUSH3 0x00023a
00002a23: JUMP
00002a24: JUMPDEST
00002a25: DUP2
00002a26: PUSH1 0x40
00002a28: MSTORE
00002a29: DUP4
00002a2a: DUP2
00002a2b: MSTORE
00002a2c: PUSH1 0x20
00002a2e: SWAP3
00002a2f: POP
00002a30: DUP7
00002a31: DUP4
00002a32: DUP6
00002a33: DUP9
00002a34: ADD
00002a35: ADD
00002a36: GT
00002a37: ISZERO
00002a38: PUSH3 0x0002c7
00002a3c: JUMPI
00002a3d: PUSH1 0x00
00002a3f: DUP1
00002a40: REVERT
00002a41: JUMPDEST
00002a42: PUSH1 0x00
00002a44: SWAP2
00002a45: POP
00002a46: JUMPDEST
00002a47: DUP4
00002a48: DUP3
00002a49: LT
00002a4a: ISZERO
00002a4b: PUSH3 0x0002eb
00002a4f: JUMPI
00002a50: DUP6
00002a51: DUP3
00002a52: ADD
00002a53: DUP4
00002a54: ADD
00002a55: MLOAD
00002a56: DUP2
00002a57: DUP4
00002a58: ADD
00002a59: DUP5
00002a5a: ADD
00002a5b: MSTORE
00002a5c: SWAP1
00002a5d: DUP3
00002a5e: ADD
00002a5f: SWAP1
00002a60: PUSH3 0x0002cc
00002a64: JUMP
00002a65: JUMPDEST
00002a66: DUP4
00002a67: DUP3
00002a68: GT
00002a69: ISZERO
00002a6a: PUSH3 0x0002fd
00002a6e: JUMPI
00002a6f: PUSH1 0x00
00002a71: DUP4
00002a72: DUP6
00002a73: DUP4
00002a74: ADD
00002a75: ADD
00002a76: MSTORE
00002a77: JUMPDEST
00002a78: SWAP7
00002a79: SWAP6
00002a7a: POP
00002a7b: POP
00002a7c: POP
00002a7d: POP
00002a7e: POP
00002a7f: POP
00002a80: JUMP
00002a81: JUMPDEST
00002a82: PUSH1 0x00
00002a84: DUP1
00002a85: PUSH1 0x00
00002a87: DUP1
00002a88: PUSH1 0x80
00002a8a: DUP6
00002a8b: DUP8
00002a8c: SUB
00002a8d: SLT
00002a8e: ISZERO
00002a8f: PUSH3 0x00031e
00002a93: JUMPI
00002a94: PUSH1 0x00
00002a96: DUP1
00002a97: REVERT
00002a98: JUMPDEST
00002a99: DUP5
00002a9a: MLOAD
00002a9b: PUSH1 0x01
00002a9d: PUSH1 0x01
00002a9f: PUSH1 0xa0
00002aa1: SHL
00002aa2: SUB
00002aa3: DUP2
00002aa4: AND
00002aa5: DUP2
00002aa6: EQ
00002aa7: PUSH3 0x000336
00002aab: JUMPI
00002aac: PUSH1 0x00
00002aae: DUP1
00002aaf: REVERT
00002ab0: JUMPDEST
00002ab1: PUSH1 0x20
00002ab3: DUP7
00002ab4: ADD
00002ab5: MLOAD
00002ab6: SWAP1
00002ab7: SWAP5
00002ab8: POP
00002ab9: PUSH1 0x01
00002abb: PUSH1 0x01
00002abd: PUSH1 0x40
00002abf: SHL
00002ac0: SUB
00002ac1: DUP1
00002ac2: DUP3
00002ac3: GT
00002ac4: ISZERO
00002ac5: PUSH3 0x000354
00002ac9: JUMPI
00002aca: PUSH1 0x00
00002acc: DUP1
00002acd: REVERT
00002ace: JUMPDEST
00002acf: PUSH3 0x000362
00002ad3: DUP9
00002ad4: DUP4
00002ad5: DUP10
00002ad6: ADD
00002ad7: PUSH3 0x000250
00002adb: JUMP
00002adc: JUMPDEST
00002add: SWAP5
00002ade: POP
00002adf: PUSH1 0x40
00002ae1: DUP8
00002ae2: ADD
00002ae3: MLOAD
00002ae4: SWAP2
00002ae5: POP
00002ae6: DUP1
00002ae7: DUP3
00002ae8: GT
00002ae9: ISZERO
00002aea: PUSH3 0x000379
00002aee: JUMPI
00002aef: PUSH1 0x00
00002af1: DUP1
00002af2: REVERT
00002af3: JUMPDEST
00002af4: POP
00002af5: PUSH3 0x000388
00002af9: DUP8
00002afa: DUP3
00002afb: DUP9
00002afc: ADD
00002afd: PUSH3 0x000250
00002b01: JUMP
00002b02: JUMPDEST
00002b03: SWAP3
00002b04: POP
00002b05: POP
00002b06: PUSH1 0x60
00002b08: DUP6
00002b09: ADD
00002b0a: MLOAD
00002b0b: PUSH1 0xff
00002b0d: DUP2
00002b0e: AND
00002b0f: DUP2
00002b10: EQ
00002b11: PUSH3 0x0003a0
00002b15: JUMPI
00002b16: PUSH1 0x00
00002b18: DUP1
00002b19: REVERT
00002b1a: JUMPDEST
00002b1b: SWAP4
00002b1c: SWAP7
00002b1d: SWAP3
00002b1e: SWAP6
00002b1f: POP
00002b20: SWAP1
00002b21: SWAP4
00002b22: POP
00002b23: POP
00002b24: JUMP
00002b25: JUMPDEST
00002b26: PUSH1 0x00
00002b28: DUP3
00002b29: NOT
00002b2a: DUP3
00002b2b: GT
00002b2c: ISZERO
00002b2d: PUSH3 0x0003cd
00002b31: JUMPI
00002b32: PUSH4 0x4e487b71
00002b37: PUSH1 0xe0
00002b39: SHL
00002b3a: PUSH1 0x00
00002b3c: MSTORE
00002b3d: PUSH1 0x11
00002b3f: PUSH1 0x04
00002b41: MSTORE
00002b42: PUSH1 0x24
00002b44: PUSH1 0x00
00002b46: REVERT
00002b47: JUMPDEST
00002b48: POP
00002b49: ADD
00002b4a: SWAP1
00002b4b: JUMP
00002b4c: JUMPDEST
00002b4d: PUSH1 0x01
00002b4f: DUP2
00002b50: DUP2
00002b51: SHR
00002b52: SWAP1
00002b53: DUP3
00002b54: AND
00002b55: DUP1
00002b56: PUSH3 0x0003e7
00002b5a: JUMPI
00002b5b: PUSH1 0x7f
00002b5d: DUP3
00002b5e: AND
00002b5f: SWAP2
00002b60: POP
00002b61: JUMPDEST
00002b62: PUSH1 0x20
00002b64: DUP3
00002b65: LT
00002b66: DUP2
00002b67: EQ
00002b68: ISZERO
00002b69: PUSH3 0x000409
00002b6d: JUMPI
00002b6e: PUSH4 0x4e487b71
00002b73: PUSH1 0xe0
00002b75: SHL
00002b76: PUSH1 0x00
00002b78: MSTORE
00002b79: PUSH1 0x22
00002b7b: PUSH1 0x04
00002b7d: MSTORE
00002b7e: PUSH1 0x24
00002b80: PUSH1 0x00
00002b82: REVERT
00002b83: JUMPDEST
00002b84: POP
00002b85: SWAP2
00002b86: SWAP1
00002b87: POP
00002b88: JUMP
00002b89: JUMPDEST
00002b8a: PUSH2 0x091f
00002b8d: DUP1
00002b8e: PUSH3 0x00041f
00002b92: PUSH1 0x00
00002b94: CODECOPY
00002b95: PUSH1 0x00
00002b97: RETURN
00002b98: INVALID
00002b99: PUSH1 0x80
00002b9b: PUSH1 0x40
00002b9d: MSTORE
00002b9e: CALLVALUE
00002b9f: DUP1
00002ba0: ISZERO
00002ba1: PUSH2 0x0010
00002ba4: JUMPI
00002ba5: PUSH1 0x00
00002ba7: DUP1
00002ba8: REVERT
00002ba9: JUMPDEST
00002baa: POP
00002bab: PUSH1 0x04
00002bad: CALLDATASIZE
00002bae: LT
00002baf: PUSH2 0x00a9
00002bb2: JUMPI
00002bb3: PUSH1 0x00
00002bb5: CALLDATALOAD
00002bb6: PUSH1 0xe0
00002bb8: SHR
00002bb9: DUP1
00002bba: PUSH4 0x39509351
00002bbf: GT
00002bc0: PUSH2 0x0071
00002bc3: JUMPI
00002bc4: DUP1
00002bc5: PUSH4 0x39509351
00002bca: EQ
00002bcb: PUSH2 0x012d
00002bce: JUMPI
00002bcf: DUP1
00002bd0: PUSH4 0x70a08231
00002bd5: EQ
00002bd6: PUSH2 0x0140
00002bd9: JUMPI
00002bda: DUP1
00002bdb: PUSH4 0x95d89b41
00002be0: EQ
00002be1: PUSH2 0x0169
00002be4: JUMPI
00002be5: DUP1
00002be6: PUSH4 0xa457c2d7
00002beb: EQ
00002bec: PUSH2 0x0171
00002bef: JUMPI
00002bf0: DUP1
00002bf1: PUSH4 0xa9059cbb
00002bf6: EQ
00002bf7: PUSH2 0x0184
00002bfa: JUMPI
00002bfb: DUP1
00002bfc: PUSH4 0xdd62ed3e
00002c01: EQ
00002c02: PUSH2 0x0197
00002c05: JUMPI
00002c06: PUSH1 0x00
00002c08: DUP1
00002c09: REVERT
00002c0a: JUMPDEST
00002c0b: DUP1
00002c0c: PUSH4 0x06fdde03
00002c11: EQ
00002c12: PUSH2 0x00ae
00002c15: JUMPI
00002c16: DUP1
00002c17: PUSH4 0x095ea7b3
00002c1c: EQ
00002c1d: PUSH2 0x00cc
00002c20: JUMPI
00002c21: DUP1
00002c22: PUSH4 0x18160ddd
00002c27: EQ
00002c28: PUSH2 0x00ef
00002c2b: JUMPI
00002c2c: DUP1
00002c2d: PUSH4 0x23b872dd
00002c32: EQ
00002c33: PUSH2 0x0105
00002c36: JUMPI
00002c37: DUP1
00002c38: PUSH4 0x313ce567
00002c3d: EQ
00002c3e: PUSH2 0x0118
00002c41: JUMPI
00002c42: JUMPDEST
00002c43: PUSH1 0x00
00002c45: DUP1
00002c46: REVERT
00002c47: JUMPDEST
00002c48: PUSH2 0x00b6
00002c4b: PUSH2 0x01d0
00002c4e: JUMP
00002c4f: JUMPDEST
00002c50: PUSH1 0x40
00002c52: MLOAD
00002c53: PUSH2 0x00c3
00002c56: SWAP2
00002c57: SWAP1
00002c58: PUSH2 0x073d
00002c5b: JUMP
00002c5c: JUMPDEST
00002c5d: PUSH1 0x40
00002c5f: MLOAD
00002c60: DUP1
00002c61: SWAP2
00002c62: SUB
00002c63: SWAP1
00002c64: RETURN
00002c65: JUMPDEST
00002c66: PUSH2 0x00df
00002c69: PUSH2 0x00da
00002c6c: CALLDATASIZE
00002c6d: PUSH1 0x04
00002c6f: PUSH2 0x07ae
00002c72: JUMP
00002c73: JUMPDEST
00002c74: PUSH2 0x0262
00002c77: JUMP
00002c78: JUMPDEST
00002c79: PUSH1 0x40
00002c7b: MLOAD
00002c7c: SWAP1
00002c7d: ISZERO
00002c7e: ISZERO
00002c7f: DUP2
00002c80: MSTORE
00002c81: PUSH1 0x20
00002c83: ADD
00002c84: PUSH2 0x00c3
00002c87: JUMP
00002c88: JUMPDEST
00002c89: PUSH2 0x00f7
00002c8c: PUSH2 0x0278
00002c8f: JUMP
00002c90: JUMPDEST
00002c91: PUSH1 0x40
00002c93: MLOAD
00002c94: SWAP1
00002c95: DUP2
00002c96: MSTORE
00002c97: PUSH1 0x20
00002c99: ADD
00002c9a: PUSH2 0x00c3
00002c9d: JUMP
00002c9e: JUMPDEST
00002c9f: PUSH2 0x00df
00002ca2: PUSH2 0x0113
00002ca5: CALLDATASIZE
00002ca6: PUSH1 0x04
00002ca8: PUSH2 0x07d8
00002cab: JUMP
00002cac: JUMPDEST
00002cad: PUSH2 0x02aa
00002cb0: JUMP
00002cb1: JUMPDEST
00002cb2: PUSH1 0x06
00002cb4: SLOAD
00002cb5: PUSH1 0x40
00002cb7: MLOAD
00002cb8: PUSH1 0xff
00002cba: SWAP1
00002cbb: SWAP2
00002cbc: AND
00002cbd: DUP2
00002cbe: MSTORE
00002cbf: PUSH1 0x20
00002cc1: ADD
00002cc2: PUSH2 0x00c3
00002cc5: JUMP
00002cc6: JUMPDEST
00002cc7: PUSH2 0x00df
00002cca: PUSH2 0x013b
00002ccd: CALLDATASIZE
00002cce: PUSH1 0x04
00002cd0: PUSH2 0x07ae
00002cd3: JUMP
00002cd4: JUMPDEST
00002cd5: PUSH2 0x0359
00002cd8: JUMP
00002cd9: JUMPDEST
00002cda: PUSH2 0x00f7
00002cdd: PUSH2 0x014e
00002ce0: CALLDATASIZE
00002ce1: PUSH1 0x04
00002ce3: PUSH2 0x0814
00002ce6: JUMP
00002ce7: JUMPDEST
00002ce8: PUSH1 0x01
00002cea: PUSH1 0x01
00002cec: PUSH1 0xa0
00002cee: SHL
00002cef: SUB
00002cf0: AND
00002cf1: PUSH1 0x00
00002cf3: SWAP1
00002cf4: DUP2
00002cf5: MSTORE
00002cf6: PUSH1 0x20
00002cf8: DUP2
00002cf9: SWAP1
00002cfa: MSTORE
00002cfb: PUSH1 0x40
00002cfd: SWAP1
00002cfe: KECCAK256
00002cff: SLOAD
00002d00: SWAP1
00002d01: JUMP
00002d02: JUMPDEST
00002d03: PUSH2 0x00b6
00002d06: PUSH2 0x0395
00002d09: JUMP
00002d0a: JUMPDEST
00002d0b: PUSH2 0x00df
00002d0e: PUSH2 0x017f
00002d11: CALLDATASIZE
00002d12: PUSH1 0x04
00002d14: PUSH2 0x07ae
00002d17: JUMP
00002d18: JUMPDEST
00002d19: PUSH2 0x03a4
00002d1c: JUMP
00002d1d: JUMPDEST
00002d1e: PUSH2 0x00df
00002d21: PUSH2 0x0192
00002d24: CALLDATASIZE
00002d25: PUSH1 0x04
00002d27: PUSH2 0x07ae
00002d2a: JUMP
00002d2b: JUMPDEST
00002d2c: PUSH2 0x043d
00002d2f: JUMP
00002d30: JUMPDEST
00002d31: PUSH2 0x00f7
00002d34: PUSH2 0x01a5
00002d37: CALLDATASIZE
00002d38: PUSH1 0x04
00002d3a: PUSH2 0x0836
00002d3d: JUMP
00002d3e: JUMPDEST
00002d3f: PUSH1 0x01
00002d41: PUSH1 0x01
00002d43: PUSH1 0xa0
00002d45: SHL
00002d46: SUB
00002d47: SWAP2
00002d48: DUP3
00002d49: AND
00002d4a: PUSH1 0x00
00002d4c: SWAP1
00002d4d: DUP2
00002d4e: MSTORE
00002d4f: PUSH1 0x01
00002d51: PUSH1 0x20
00002d53: SWAP1
00002d54: DUP2
00002d55: MSTORE
00002d56: PUSH1 0x40
00002d58: DUP1
00002d59: DUP4
00002d5a: KECCAK256
00002d5b: SWAP4
00002d5c: SWAP1
00002d5d: SWAP5
00002d5e: AND
00002d5f: DUP3
00002d60: MSTORE
00002d61: SWAP2
00002d62: SWAP1
00002d63: SWAP2
00002d64: MSTORE
00002d65: KECCAK256
00002d66: SLOAD
00002d67: SWAP1
00002d68: JUMP
00002d69: JUMPDEST
00002d6a: PUSH1 0x60
00002d6c: PUSH1 0x03
00002d6e: DUP1
00002d6f: SLOAD
00002d70: PUSH2 0x01df
00002d73: SWAP1
00002d74: PUSH2 0x0869
00002d77: JUMP
00002d78: JUMPDEST
00002d79: DUP1
00002d7a: PUSH1 0x1f
00002d7c: ADD
00002d7d: PUSH1 0x20
00002d7f: DUP1
00002d80: SWAP2
00002d81: DIV
00002d82: MUL
00002d83: PUSH1 0x20
00002d85: ADD
00002d86: PUSH1 0x40
00002d88: MLOAD
00002d89: SWAP1
00002d8a: DUP2
00002d8b: ADD
00002d8c: PUSH1 0x40
00002d8e: MSTORE
00002d8f: DUP1
00002d90: SWAP3
00002d91: SWAP2
00002d92: SWAP1
00002d93: DUP2
00002d94: DUP2
00002d95: MSTORE
00002d96: PUSH1 0x20
00002d98: ADD
00002d99: DUP3
00002d9a: DUP1
00002d9b: SLOAD
00002d9c: PUSH2 0x020b
00002d9f: SWAP1
00002da0: PUSH2 0x0869
00002da3: JUMP
00002da4: JUMPDEST
00002da5: DUP1
00002da6: ISZERO
00002da7: PUSH2 0x0258
00002daa: JUMPI
00002dab: DUP1
00002dac: PUSH1 0x1f
00002dae: LT
00002daf: PUSH2 0x022d
00002db2: JUMPI
00002db3: PUSH2 0x0100
00002db6: DUP1
00002db7: DUP4
00002db8: SLOAD
00002db9: DIV
00002dba: MUL
00002dbb: DUP4
00002dbc: MSTORE
00002dbd: SWAP2
00002dbe: PUSH1 0x20
00002dc0: ADD
00002dc1: SWAP2
00002dc2: PUSH2 0x0258
00002dc5: JUMP
00002dc6: JUMPDEST
00002dc7: DUP3
00002dc8: ADD
00002dc9: SWAP2
00002dca: SWAP1
00002dcb: PUSH1 0x00
00002dcd: MSTORE
00002dce: PUSH1 0x20
00002dd0: PUSH1 0x00
00002dd2: KECCAK256
00002dd3: SWAP1
00002dd4: JUMPDEST
00002dd5: DUP2
00002dd6: SLOAD
00002dd7: DUP2
00002dd8: MSTORE
00002dd9: SWAP1
00002dda: PUSH1 0x01
00002ddc: ADD
00002ddd: SWAP1
00002dde: PUSH1 0x20
00002de0: ADD
00002de1: DUP1
00002de2: DUP4
00002de3: GT
00002de4: PUSH2 0x023b
00002de7: JUMPI
00002de8: DUP3
00002de9: SWAP1
00002dea: SUB
00002deb: PUSH1 0x1f
00002ded: AND
00002dee: DUP3
00002def: ADD
00002df0: SWAP2
00002df1: JUMPDEST
00002df2: POP
00002df3: POP
00002df4: POP
00002df5: POP
00002df6: POP
00002df7: SWAP1
00002df8: POP
00002df9: SWAP1
00002dfa: JUMP
00002dfb: JUMPDEST
00002dfc: PUSH1 0x00
00002dfe: PUSH2 0x026f
00002e01: CALLER
00002e02: DUP5
00002e03: DUP5
00002e04: PUSH2 0x044a
00002e07: JUMP
00002e08: JUMPDEST
00002e09: POP
00002e0a: PUSH1 0x01
00002e0c: SWAP3
00002e0d: SWAP2
00002e0e: POP
00002e0f: POP
00002e10: JUMP
00002e11: JUMPDEST
00002e12: PUSH1 0x06
00002e14: SLOAD
00002e15: PUSH2 0x0100
00002e18: SWAP1
00002e19: DIV
00002e1a: PUSH1 0x01
00002e1c: PUSH1 0x01
00002e1e: PUSH1 0xa0
00002e20: SHL
00002e21: SUB
00002e22: AND
00002e23: PUSH1 0x00
00002e25: SWAP1
00002e26: DUP2
00002e27: MSTORE
00002e28: PUSH1 0x20
00002e2a: DUP2
00002e2b: SWAP1
00002e2c: MSTORE
00002e2d: PUSH1 0x40
00002e2f: DUP2
00002e30: KECCAK256
00002e31: SLOAD
00002e32: PUSH1 0x05
00002e34: SLOAD
00002e35: PUSH2 0x02a5
00002e38: SWAP2
00002e39: SWAP1
00002e3a: PUSH2 0x08ba
00002e3d: JUMP
00002e3e: JUMPDEST
00002e3f: SWAP1
00002e40: POP
00002e41: SWAP1
00002e42: JUMP
00002e43: JUMPDEST
00002e44: PUSH1 0x00
00002e46: PUSH2 0x02b7
00002e49: DUP5
00002e4a: DUP5
00002e4b: DUP5
00002e4c: PUSH2 0x056e
00002e4f: JUMP
00002e50: JUMPDEST
00002e51: PUSH1 0x01
00002e53: PUSH1 0x01
00002e55: PUSH1 0xa0
00002e57: SHL
00002e58: SUB
00002e59: DUP5
00002e5a: AND
00002e5b: PUSH1 0x00
00002e5d: SWAP1
00002e5e: DUP2
00002e5f: MSTORE
00002e60: PUSH1 0x01
00002e62: PUSH1 0x20
00002e64: SWAP1
00002e65: DUP2
00002e66: MSTORE
00002e67: PUSH1 0x40
00002e69: DUP1
00002e6a: DUP4
00002e6b: KECCAK256
00002e6c: CALLER
00002e6d: DUP5
00002e6e: MSTORE
00002e6f: SWAP1
00002e70: SWAP2
00002e71: MSTORE
00002e72: SWAP1
00002e73: KECCAK256
00002e74: SLOAD
00002e75: DUP3
00002e76: DUP2
00002e77: LT
00002e78: ISZERO
00002e79: PUSH2 0x0341
00002e7c: JUMPI
00002e7d: PUSH1 0x40
00002e7f: MLOAD
00002e80: PUSH3 0x461bcd
00002e84: PUSH1 0xe5
00002e86: SHL
00002e87: DUP2
00002e88: MSTORE
00002e89: PUSH1 0x20
00002e8b: PUSH1 0x04
00002e8d: DUP3
00002e8e: ADD
00002e8f: MSTORE
00002e90: PUSH1 0x28
00002e92: PUSH1 0x24
00002e94: DUP3
00002e95: ADD
00002e96: MSTORE
00002e97: PUSH32 0x45524332303a207472616e7366657220616d6f756e7420657863656564732061
00002eb8: PUSH1 0x44
00002eba: DUP3
00002ebb: ADD
00002ebc: MSTORE
00002ebd: PUSH8 0x6c6c6f77616e6365
00002ec6: PUSH1 0xc0
00002ec8: SHL
00002ec9: PUSH1 0x64
00002ecb: DUP3
00002ecc: ADD
00002ecd: MSTORE
00002ece: PUSH1 0x84
00002ed0: ADD
00002ed1: JUMPDEST
00002ed2: PUSH1 0x40
00002ed4: MLOAD
00002ed5: DUP1
00002ed6: SWAP2
00002ed7: SUB
00002ed8: SWAP1
00002ed9: REVERT
00002eda: JUMPDEST
00002edb: PUSH2 0x034e
00002ede: DUP6
00002edf: CALLER
00002ee0: DUP6
00002ee1: DUP5
00002ee2: SUB
00002ee3: PUSH2 0x044a
00002ee6: JUMP
00002ee7: JUMPDEST
00002ee8: POP
00002ee9: PUSH1 0x01
00002eeb: SWAP5
00002eec: SWAP4
00002eed: POP
00002eee: POP
00002eef: POP
00002ef0: POP
00002ef1: JUMP
00002ef2: JUMPDEST
00002ef3: CALLER
00002ef4: PUSH1 0x00
00002ef6: DUP2
00002ef7: DUP2
00002ef8: MSTORE
00002ef9: PUSH1 0x01
00002efb: PUSH1 0x20
00002efd: SWAP1
00002efe: DUP2
00002eff: MSTORE
00002f00: PUSH1 0x40
00002f02: DUP1
00002f03: DUP4
00002f04: KECCAK256
00002f05: PUSH1 0x01
00002f07: PUSH1 0x01
00002f09: PUSH1 0xa0
00002f0b: SHL
00002f0c: SUB
00002f0d: DUP8
00002f0e: AND
00002f0f: DUP5
00002f10: MSTORE
00002f11: SWAP1
00002f12: SWAP2
00002f13: MSTORE
00002f14: DUP2
00002f15: KECCAK256
00002f16: SLOAD
00002f17: SWAP1
00002f18: SWAP2
00002f19: PUSH2 0x026f
00002f1c: SWAP2
00002f1d: DUP6
00002f1e: SWAP1
00002f1f: PUSH2 0x0390
00002f22: SWAP1
00002f23: DUP7
00002f24: SWAP1
00002f25: PUSH2 0x08d1
00002f28: JUMP
00002f29: JUMPDEST
00002f2a: PUSH2 0x044a
00002f2d: JUMP
00002f2e: JUMPDEST
00002f2f: PUSH1 0x60
00002f31: PUSH1 0x04
00002f33: DUP1
00002f34: SLOAD
00002f35: PUSH2 0x01df
00002f38: SWAP1
00002f39: PUSH2 0x0869
00002f3c: JUMP
00002f3d: JUMPDEST
00002f3e: CALLER
00002f3f: PUSH1 0x00
00002f41: SWAP1
00002f42: DUP2
00002f43: MSTORE
00002f44: PUSH1 0x01
00002f46: PUSH1 0x20
00002f48: SWAP1
00002f49: DUP2
00002f4a: MSTORE
00002f4b: PUSH1 0x40
00002f4d: DUP1
00002f4e: DUP4
00002f4f: KECCAK256
00002f50: PUSH1 0x01
00002f52: PUSH1 0x01
00002f54: PUSH1 0xa0
00002f56: SHL
00002f57: SUB
00002f58: DUP7
00002f59: AND
00002f5a: DUP5
00002f5b: MSTORE
00002f5c: SWAP1
00002f5d: SWAP2
00002f5e: MSTORE
00002f5f: DUP2
00002f60: KECCAK256
00002f61: SLOAD
00002f62: DUP3
00002f63: DUP2
00002f64: LT
00002f65: ISZERO
00002f66: PUSH2 0x0426
00002f69: JUMPI
00002f6a: PUSH1 0x40
00002f6c: MLOAD
00002f6d: PUSH3 0x461bcd
00002f71: PUSH1 0xe5
00002f73: SHL
00002f74: DUP2
00002f75: MSTORE
00002f76: PUSH1 0x20
00002f78: PUSH1 0x04
00002f7a: DUP3
00002f7b: ADD
00002f7c: MSTORE
00002f7d: PUSH1 0x25
00002f7f: PUSH1 0x24
00002f81: DUP3
00002f82: ADD
00002f83: MSTORE
00002f84: PUSH32 0x45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77
00002fa5: PUSH1 0x44
00002fa7: DUP3
00002fa8: ADD
00002fa9: MSTORE
00002faa: PUSH5 0x207a65726f
00002fb0: PUSH1 0xd8
00002fb2: SHL
00002fb3: PUSH1 0x64
00002fb5: DUP3
00002fb6: ADD
00002fb7: MSTORE
00002fb8: PUSH1 0x84
00002fba: ADD
00002fbb: PUSH2 0x0338
00002fbe: JUMP
00002fbf: JUMPDEST
00002fc0: PUSH2 0x0433
00002fc3: CALLER
00002fc4: DUP6
00002fc5: DUP6
00002fc6: DUP5
00002fc7: SUB
00002fc8: PUSH2 0x044a
00002fcb: JUMP
00002fcc: JUMPDEST
00002fcd: POP
00002fce: PUSH1 0x01
00002fd0: SWAP4
00002fd1: SWAP3
00002fd2: POP
00002fd3: POP
00002fd4: POP
00002fd5: JUMP
00002fd6: JUMPDEST
00002fd7: PUSH1 0x00
00002fd9: PUSH2 0x026f
00002fdc: CALLER
00002fdd: DUP5
00002fde: DUP5
00002fdf: PUSH2 0x056e
00002fe2: JUMP
00002fe3: JUMPDEST
00002fe4: PUSH1 0x01
00002fe6: PUSH1 0x01
00002fe8: PUSH1 0xa0
00002fea: SHL
00002feb: SUB
00002fec: DUP4
00002fed: AND
00002fee: PUSH2 0x04ac
00002ff1: JUMPI
00002ff2: PUSH1 0x40
00002ff4: MLOAD
00002ff5: PUSH3 0x461bcd
00002ff9: PUSH1 0xe5
00002ffb: SHL
00002ffc: DUP2
00002ffd: MSTORE
00002ffe: PUSH1 0x20
00003000: PUSH1 0x04
00003002: DUP3
00003003: ADD
00003004: MSTORE
00003005: PUSH1 0x24
00003007: DUP1
00003008: DUP3
00003009: ADD
0000300a: MSTORE
0000300b: PUSH32 0x45524332303a20617070726f76652066726f6d20746865207a65726f20616464
0000302c: PUSH1 0x44
0000302e: DUP3
0000302f: ADD
00003030: MSTORE
00003031: PUSH4 0x72657373
00003036: PUSH1 0xe0
00003038: SHL
00003039: PUSH1 0x64
0000303b: DUP3
0000303c: ADD
0000303d: MSTORE
0000303e: PUSH1 0x84
00003040: ADD
00003041: PUSH2 0x0338
00003044: JUMP
00003045: JUMPDEST
00003046: PUSH1 0x01
00003048: PUSH1 0x01
0000304a: PUSH1 0xa0
0000304c: SHL
0000304d: SUB
0000304e: DUP3
0000304f: AND
00003050: PUSH2 0x050d
00003053: JUMPI
00003054: PUSH1 0x40
00003056: MLOAD
00003057: PUSH3 0x461bcd
0000305b: PUSH1 0xe5
0000305d: SHL
0000305e: DUP2
0000305f: MSTORE
00003060: PUSH1 0x20
00003062: PUSH1 0x04
00003064: DUP3
00003065: ADD
00003066: MSTORE
00003067: PUSH1 0x22
00003069: PUSH1 0x24
0000306b: DUP3
0000306c: ADD
0000306d: MSTORE
0000306e: PUSH32 0x45524332303a20617070726f766520746f20746865207a65726f206164647265
0000308f: PUSH1 0x44
00003091: DUP3
00003092: ADD
00003093: MSTORE
00003094: PUSH2 0x7373
00003097: PUSH1 0xf0
00003099: SHL
0000309a: PUSH1 0x64
0000309c: DUP3
0000309d: ADD
0000309e: MSTORE
0000309f: PUSH1 0x84
000030a1: ADD
000030a2: PUSH2 0x0338
000030a5: JUMP
000030a6: JUMPDEST
000030a7: PUSH1 0x01
000030a9: PUSH1 0x01
000030ab: PUSH1 0xa0
000030ad: SHL
000030ae: SUB
000030af: DUP4
000030b0: DUP2
000030b1: AND
000030b2: PUSH1 0x00
000030b4: DUP2
000030b5: DUP2
000030b6: MSTORE
000030b7: PUSH1 0x01
000030b9: PUSH1 0x20
000030bb: SWAP1
000030bc: DUP2
000030bd: MSTORE
000030be: PUSH1 0x40
000030c0: DUP1
000030c1: DUP4
000030c2: KECCAK256
000030c3: SWAP5
000030c4: DUP8
000030c5: AND
000030c6: DUP1
000030c7: DUP5
000030c8: MSTORE
000030c9: SWAP5
000030ca: DUP3
000030cb: MSTORE
000030cc: SWAP2
000030cd: DUP3
000030ce: SWAP1
000030cf: KECCAK256
000030d0: DUP6
000030d1: SWAP1
000030d2: SSTORE
000030d3: SWAP1
000030d4: MLOAD
000030d5: DUP5
000030d6: DUP2
000030d7: MSTORE
000030d8: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
000030f9: SWAP2
000030fa: ADD
000030fb: PUSH1 0x40
000030fd: MLOAD
000030fe: DUP1
000030ff: SWAP2
00003100: SUB
00003101: SWAP1
00003102: LOG3
00003103: POP
00003104: POP
00003105: POP
00003106: JUMP
00003107: JUMPDEST
00003108: PUSH1 0x01
0000310a: PUSH1 0x01
0000310c: PUSH1 0xa0
0000310e: SHL
0000310f: SUB
00003110: DUP4
00003111: AND
00003112: PUSH2 0x05d2
00003115: JUMPI
00003116: PUSH1 0x40
00003118: MLOAD
00003119: PUSH3 0x461bcd
0000311d: PUSH1 0xe5
0000311f: SHL
00003120: DUP2
00003121: MSTORE
00003122: PUSH1 0x20
00003124: PUSH1 0x04
00003126: DUP3
00003127: ADD
00003128: MSTORE
00003129: PUSH1 0x25
0000312b: PUSH1 0x24
0000312d: DUP3
0000312e: ADD
0000312f: MSTORE
00003130: PUSH32 0x45524332303a207472616e736665722066726f6d20746865207a65726f206164
00003151: PUSH1 0x44
00003153: DUP3
00003154: ADD
00003155: MSTORE
00003156: PUSH5 0x6472657373
0000315c: PUSH1 0xd8
0000315e: SHL
0000315f: PUSH1 0x64
00003161: DUP3
00003162: ADD
00003163: MSTORE
00003164: PUSH1 0x84
00003166: ADD
00003167: PUSH2 0x0338
0000316a: JUMP
0000316b: JUMPDEST
0000316c: PUSH1 0x01
0000316e: PUSH1 0x01
00003170: PUSH1 0xa0
00003172: SHL
00003173: SUB
00003174: DUP3
00003175: AND
00003176: PUSH2 0x0634
00003179: JUMPI
0000317a: PUSH1 0x40
0000317c: MLOAD
0000317d: PUSH3 0x461bcd
00003181: PUSH1 0xe5
00003183: SHL
00003184: DUP2
00003185: MSTORE
00003186: PUSH1 0x20
00003188: PUSH1 0x04
0000318a: DUP3
0000318b: ADD
0000318c: MSTORE
0000318d: PUSH1 0x23
0000318f: PUSH1 0x24
00003191: DUP3
00003192: ADD
00003193: MSTORE
00003194: PUSH32 0x45524332303a207472616e7366657220746f20746865207a65726f2061646472
000031b5: PUSH1 0x44
000031b7: DUP3
000031b8: ADD
000031b9: MSTORE
000031ba: PUSH3 0x657373
000031be: PUSH1 0xe8
000031c0: SHL
000031c1: PUSH1 0x64
000031c3: DUP3
000031c4: ADD
000031c5: MSTORE
000031c6: PUSH1 0x84
000031c8: ADD
000031c9: PUSH2 0x0338
000031cc: JUMP
000031cd: JUMPDEST
000031ce: PUSH1 0x01
000031d0: PUSH1 0x01
000031d2: PUSH1 0xa0
000031d4: SHL
000031d5: SUB
000031d6: DUP4
000031d7: AND
000031d8: PUSH1 0x00
000031da: SWAP1
000031db: DUP2
000031dc: MSTORE
000031dd: PUSH1 0x20
000031df: DUP2
000031e0: SWAP1
000031e1: MSTORE
000031e2: PUSH1 0x40
000031e4: SWAP1
000031e5: KECCAK256
000031e6: SLOAD
000031e7: DUP2
000031e8: DUP2
000031e9: LT
000031ea: ISZERO
000031eb: PUSH2 0x06ac
000031ee: JUMPI
000031ef: PUSH1 0x40
000031f1: MLOAD
000031f2: PUSH3 0x461bcd
000031f6: PUSH1 0xe5
000031f8: SHL
000031f9: DUP2
000031fa: MSTORE
000031fb: PUSH1 0x20
000031fd: PUSH1 0x04
000031ff: DUP3
00003200: ADD
00003201: MSTORE
00003202: PUSH1 0x26
00003204: PUSH1 0x24
00003206: DUP3
00003207: ADD
00003208: MSTORE
00003209: PUSH32 0x45524332303a207472616e7366657220616d6f756e7420657863656564732062
0000322a: PUSH1 0x44
0000322c: DUP3
0000322d: ADD
0000322e: MSTORE
0000322f: PUSH6 0x616c616e6365
00003236: PUSH1 0xd0
00003238: SHL
00003239: PUSH1 0x64
0000323b: DUP3
0000323c: ADD
0000323d: MSTORE
0000323e: PUSH1 0x84
00003240: ADD
00003241: PUSH2 0x0338
00003244: JUMP
00003245: JUMPDEST
00003246: PUSH1 0x01
00003248: PUSH1 0x01
0000324a: PUSH1 0xa0
0000324c: SHL
0000324d: SUB
0000324e: DUP1
0000324f: DUP6
00003250: AND
00003251: PUSH1 0x00
00003253: SWAP1
00003254: DUP2
00003255: MSTORE
00003256: PUSH1 0x20
00003258: DUP2
00003259: SWAP1
0000325a: MSTORE
0000325b: PUSH1 0x40
0000325d: DUP1
0000325e: DUP3
0000325f: KECCAK256
00003260: DUP6
00003261: DUP6
00003262: SUB
00003263: SWAP1
00003264: SSTORE
00003265: SWAP2
00003266: DUP6
00003267: AND
00003268: DUP2
00003269: MSTORE
0000326a: SWAP1
0000326b: DUP2
0000326c: KECCAK256
0000326d: DUP1
0000326e: SLOAD
0000326f: DUP5
00003270: SWAP3
00003271: SWAP1
00003272: PUSH2 0x06e3
00003275: SWAP1
00003276: DUP5
00003277: SWAP1
00003278: PUSH2 0x08d1
0000327b: JUMP
0000327c: JUMPDEST
0000327d: SWAP3
0000327e: POP
0000327f: POP
00003280: DUP2
00003281: SWAP1
00003282: SSTORE
00003283: POP
00003284: DUP3
00003285: PUSH1 0x01
00003287: PUSH1 0x01
00003289: PUSH1 0xa0
0000328b: SHL
0000328c: SUB
0000328d: AND
0000328e: DUP5
0000328f: PUSH1 0x01
00003291: PUSH1 0x01
00003293: PUSH1 0xa0
00003295: SHL
00003296: SUB
00003297: AND
00003298: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
000032b9: DUP5
000032ba: PUSH1 0x40
000032bc: MLOAD
000032bd: PUSH2 0x072f
000032c0: SWAP2
000032c1: DUP2
000032c2: MSTORE
000032c3: PUSH1 0x20
000032c5: ADD
000032c6: SWAP1
000032c7: JUMP
000032c8: JUMPDEST
000032c9: PUSH1 0x40
000032cb: MLOAD
000032cc: DUP1
000032cd: SWAP2
000032ce: SUB
000032cf: SWAP1
000032d0: LOG3
000032d1: POP
000032d2: POP
000032d3: POP
000032d4: POP
000032d5: JUMP
000032d6: JUMPDEST
000032d7: PUSH1 0x00
000032d9: PUSH1 0x20
000032db: DUP1
000032dc: DUP4
000032dd: MSTORE
000032de: DUP4
000032df: MLOAD
000032e0: DUP1
000032e1: DUP3
000032e2: DUP6
000032e3: ADD
000032e4: MSTORE
000032e5: PUSH1 0x00
000032e7: JUMPDEST
000032e8: DUP2
000032e9: DUP2
000032ea: LT
000032eb: ISZERO
000032ec: PUSH2 0x076a
000032ef: JUMPI
000032f0: DUP6
000032f1: DUP2
000032f2: ADD
000032f3: DUP4
000032f4: ADD
000032f5: MLOAD
000032f6: DUP6
000032f7: DUP3
000032f8: ADD
000032f9: PUSH1 0x40
000032fb: ADD
000032fc: MSTORE
000032fd: DUP3
000032fe: ADD
000032ff: PUSH2 0x074e
00003302: JUMP
00003303: JUMPDEST
00003304: DUP2
00003305: DUP2
00003306: GT
00003307: ISZERO
00003308: PUSH2 0x077c
0000330b: JUMPI
0000330c: PUSH1 0x00
0000330e: PUSH1 0x40
00003310: DUP4
00003311: DUP8
00003312: ADD
00003313: ADD
00003314: MSTORE
00003315: JUMPDEST
00003316: POP
00003317: PUSH1 0x1f
00003319: ADD
0000331a: PUSH1 0x1f
0000331c: NOT
0000331d: AND
0000331e: SWAP3
0000331f: SWAP1
00003320: SWAP3
00003321: ADD
00003322: PUSH1 0x40
00003324: ADD
00003325: SWAP4
00003326: SWAP3
00003327: POP
00003328: POP
00003329: POP
0000332a: JUMP
0000332b: JUMPDEST
0000332c: DUP1
0000332d: CALLDATALOAD
0000332e: PUSH1 0x01
00003330: PUSH1 0x01
00003332: PUSH1 0xa0
00003334: SHL
00003335: SUB
00003336: DUP2
00003337: AND
00003338: DUP2
00003339: EQ
0000333a: PUSH2 0x07a9
0000333d: JUMPI
0000333e: PUSH1 0x00
00003340: DUP1
00003341: REVERT
00003342: JUMPDEST
00003343: SWAP2
00003344: SWAP1
00003345: POP
00003346: JUMP
00003347: JUMPDEST
00003348: PUSH1 0x00
0000334a: DUP1
0000334b: PUSH1 0x40
0000334d: DUP4
0000334e: DUP6
0000334f: SUB
00003350: SLT
00003351: ISZERO
00003352: PUSH2 0x07c1
00003355: JUMPI
00003356: PUSH1 0x00
00003358: DUP1
00003359: REVERT
0000335a: JUMPDEST
0000335b: PUSH2 0x07ca
0000335e: DUP4
0000335f: PUSH2 0x0792
00003362: JUMP
00003363: JUMPDEST
00003364: SWAP5
00003365: PUSH1 0x20
00003367: SWAP4
00003368: SWAP1
00003369: SWAP4
0000336a: ADD
0000336b: CALLDATALOAD
0000336c: SWAP4
0000336d: POP
0000336e: POP
0000336f: POP
00003370: JUMP
00003371: JUMPDEST
00003372: PUSH1 0x00
00003374: DUP1
00003375: PUSH1 0x00
00003377: PUSH1 0x60
00003379: DUP5
0000337a: DUP7
0000337b: SUB
0000337c: SLT
0000337d: ISZERO
0000337e: PUSH2 0x07ed
00003381: JUMPI
00003382: PUSH1 0x00
00003384: DUP1
00003385: REVERT
00003386: JUMPDEST
00003387: PUSH2 0x07f6
0000338a: DUP5
0000338b: PUSH2 0x0792
0000338e: JUMP
0000338f: JUMPDEST
00003390: SWAP3
00003391: POP
00003392: PUSH2 0x0804
00003395: PUSH1 0x20
00003397: DUP6
00003398: ADD
00003399: PUSH2 0x0792
0000339c: JUMP
0000339d: JUMPDEST
0000339e: SWAP2
0000339f: POP
000033a0: PUSH1 0x40
000033a2: DUP5
000033a3: ADD
000033a4: CALLDATALOAD
000033a5: SWAP1
000033a6: POP
000033a7: SWAP3
000033a8: POP
000033a9: SWAP3
000033aa: POP
000033ab: SWAP3
000033ac: JUMP
000033ad: JUMPDEST
000033ae: PUSH1 0x00
000033b0: PUSH1 0x20
000033b2: DUP3
000033b3: DUP5
000033b4: SUB
000033b5: SLT
000033b6: ISZERO
000033b7: PUSH2 0x0826
000033ba: JUMPI
000033bb: PUSH1 0x00
000033bd: DUP1
000033be: REVERT
000033bf: JUMPDEST
000033c0: PUSH2 0x082f
000033c3: DUP3
000033c4: PUSH2 0x0792
000033c7: JUMP
000033c8: JUMPDEST
000033c9: SWAP4
000033ca: SWAP3
000033cb: POP
000033cc: POP
000033cd: POP
000033ce: JUMP
000033cf: JUMPDEST
000033d0: PUSH1 0x00
000033d2: DUP1
000033d3: PUSH1 0x40
000033d5: DUP4
000033d6: DUP6
000033d7: SUB
000033d8: SLT
000033d9: ISZERO
000033da: PUSH2 0x0849
000033dd: JUMPI
000033de: PUSH1 0x00
000033e0: DUP1
000033e1: REVERT
000033e2: JUMPDEST
000033e3: PUSH2 0x0852
000033e6: DUP4
000033e7: PUSH2 0x0792
000033ea: JUMP
000033eb: JUMPDEST
000033ec: SWAP2
000033ed: POP
000033ee: PUSH2 0x0860
000033f1: PUSH1 0x20
000033f3: DUP5
000033f4: ADD
000033f5: PUSH2 0x0792
000033f8: JUMP
000033f9: JUMPDEST
000033fa: SWAP1
000033fb: POP
000033fc: SWAP3
000033fd: POP
000033fe: SWAP3
000033ff: SWAP1
00003400: POP
00003401: JUMP
00003402: JUMPDEST
00003403: PUSH1 0x01
00003405: DUP2
00003406: DUP2
00003407: SHR
00003408: SWAP1
00003409: DUP3
0000340a: AND
0000340b: DUP1
0000340c: PUSH2 0x087d
0000340f: JUMPI
00003410: PUSH1 0x7f
00003412: DUP3
00003413: AND
00003414: SWAP2
00003415: POP
00003416: JUMPDEST
00003417: PUSH1 0x20
00003419: DUP3
0000341a: LT
0000341b: DUP2
0000341c: EQ
0000341d: ISZERO
0000341e: PUSH2 0x089e
00003421: JUMPI
00003422: PUSH4 0x4e487b71
00003427: PUSH1 0xe0
00003429: SHL
0000342a: PUSH1 0x00
0000342c: MSTORE
0000342d: PUSH1 0x22
0000342f: PUSH1 0x04
00003431: MSTORE
00003432: PUSH1 0x24
00003434: PUSH1 0x00
00003436: REVERT
00003437: JUMPDEST
00003438: POP
00003439: SWAP2
0000343a: SWAP1
0000343b: POP
0000343c: JUMP
0000343d: JUMPDEST
0000343e: PUSH4 0x4e487b71
00003443: PUSH1 0xe0
00003445: SHL
00003446: PUSH1 0x00
00003448: MSTORE
00003449: PUSH1 0x11
0000344b: PUSH1 0x04
0000344d: MSTORE
0000344e: PUSH1 0x24
00003450: PUSH1 0x00
00003452: REVERT
00003453: JUMPDEST
00003454: PUSH1 0x00
00003456: DUP3
00003457: DUP3
00003458: LT
00003459: ISZERO
0000345a: PUSH2 0x08cc
0000345d: JUMPI
0000345e: PUSH2 0x08cc
00003461: PUSH2 0x08a4
00003464: JUMP
00003465: JUMPDEST
00003466: POP
00003467: SUB
00003468: SWAP1
00003469: JUMP
0000346a: JUMPDEST
0000346b: PUSH1 0x00
0000346d: DUP3
0000346e: NOT
0000346f: DUP3
00003470: GT
00003471: ISZERO
00003472: PUSH2 0x08e4
00003475: JUMPI
00003476: PUSH2 0x08e4
00003479: PUSH2 0x08a4
0000347c: JUMP
0000347d: JUMPDEST
0000347e: POP
0000347f: ADD
00003480: SWAP1
00003481: JUMP
00003482: INVALID
00003483: LOG2
00003484: PUSH5 0x6970667358
0000348a: UNKNOWN(0x22)
0000348b: SLT
0000348c: KECCAK256
0000348d: ADDRESS
0000348e: LOG2
0000348f: DUP3
00003490: UNKNOWN(0xFB)
00003491: PUSH31 0x0b734096beb9323062edce33d11c6ccd7166512f1150282b9d8c8a64736f6c
000034b1: PUSH4 0x4300080a
000034b6: STOP
000034b7: CALLER
000034b8: LOG2
000034b9: PUSH5 0x6970667358
000034bf: UNKNOWN(0x22)
000034c0: SLT
000034c1: KECCAK256
000034c2: LOG3
000034c3: NUMBER
000034c4: UNKNOWN(0xE6)
000034c5: PUSH17 0x87c843940f5d01cf08cc6bb77beecfc24e
000034d7: UNKNOWN(0xE5)
000034d8: ADDMOD
000034d9: UNKNOWN(0xB7)
000034da: UNKNOWN(0xD1)
000034db: UNKNOWN(0x4C)
000034dc: UNKNOWN(0xC7)
000034dd: MSIZE
000034de: LOG0
000034df: UNKNOWN(0xD3)
000034e0: UNKNOWN(0xB1)
000034e1: SDIV
000034e2: PUSH5 0x736f6c6343
000034e8: STOP
000034e9: ADDMOD
000034ea: EXP
000034eb: STOP
000034ec: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0xd049a5dbc2f7b7a82de260440a94321622294b00fb2debbee793aead67d401d8
call_targets: 0xa4108aa1ec4967f8b52220a4f7e94a8201f2d906
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xd049a5dbc2f7b7a82de260440a94321622294b00fb2debbee793aead67d401d8",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xa4108aa1ec4967f8b52220a4f7e94a8201f2d906"
    ],
    "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": "0xc9d194d5",
            "selector": "0xc9d194d5",
            "calldata_variants": [
                "0xc9d194d5",
                "0xc9d194d50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdf97174b",
            "selector": "0xdf97174b",
            "calldata_variants": [
                "0xdf97174b",
                "0xdf97174b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2b53307",
            "selector": "0xf2b53307",
            "calldata_variants": [
                "0xf2b53307",
                "0xf2b533070000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf7955637",
            "selector": "0xf7955637",
            "calldata_variants": [
                "0xf7955637",
                "0xf79556370000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8690ff98",
            "selector": "0x8690ff98",
            "calldata_variants": [
                "0x8690ff98",
                "0x8690ff980000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xaca6b1c1",
            "selector": "0xaca6b1c1",
            "calldata_variants": [
                "0xaca6b1c1",
                "0xaca6b1c10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb56561fe",
            "selector": "0xb56561fe",
            "calldata_variants": [
                "0xb56561fe",
                "0xb56561fe0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbdda81d4",
            "selector": "0xbdda81d4",
            "calldata_variants": [
                "0xbdda81d4",
                "0xbdda81d40000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 5313,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 1,
    "guards_detected": [],
    "untrusted_call_count": 1
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0xd049a5dbc2f7b7a82de260440a94321622294b00fb2debbee793aead67d401d8
call_targets: 0xa4108aa1ec4967f8b52220a4f7e94a8201f2d906
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xd049a5dbc2f7b7a82de260440a94321622294b00fb2debbee793aead67d401d8",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xa4108aa1ec4967f8b52220a4f7e94a8201f2d906"
    ],
    "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": "0xc9d194d5",
            "selector": "0xc9d194d5",
            "calldata_variants": [
                "0xc9d194d5",
                "0xc9d194d50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdf97174b",
            "selector": "0xdf97174b",
            "calldata_variants": [
                "0xdf97174b",
                "0xdf97174b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2b53307",
            "selector": "0xf2b53307",
            "calldata_variants": [
                "0xf2b53307",
                "0xf2b533070000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf7955637",
            "selector": "0xf7955637",
            "calldata_variants": [
                "0xf7955637",
                "0xf79556370000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8690ff98",
            "selector": "0x8690ff98",
            "calldata_variants": [
                "0x8690ff98",
                "0x8690ff980000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xaca6b1c1",
            "selector": "0xaca6b1c1",
            "calldata_variants": [
                "0xaca6b1c1",
                "0xaca6b1c10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb56561fe",
            "selector": "0xb56561fe",
            "calldata_variants": [
                "0xb56561fe",
                "0xb56561fe0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbdda81d4",
            "selector": "0xbdda81d4",
            "calldata_variants": [
                "0xbdda81d4",
                "0xbdda81d40000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 5313,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 1,
    "guards_detected": []
}
medium auth codex Signatures are not domain-separated by contract address or chain ID 75 no
view
evidence_json
{
    "evidence": "Signed payloads and checkpoints only include `state_gravityId` as the domain separator; contract address/chain ID are not included.",
    "locations": [
        "contracts/contracts/Gravity.sol:183",
        "contracts/contracts/Gravity.sol:402",
        "contracts/contracts/Gravity.sol:495"
    ],
    "recommendation": "Include domain separation in all signed hashes by incorporating `address(this)` and/or `block.chainid` (and enforce unique gravityId on deployment). This prevents cross-deployment or cross-chain signature replay even if gravityId is misconfigured.",
    "exploit_scenario": "If the same gravityId is reused across multiple Gravity deployments (or chains), any signed batch/logic-call/valset update from one deployment can be replayed on another. An attacker can submit previously valid signatures to execute withdrawals on the other contract, draining its balances."
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0x7b5f682fa8b320f804888a174013f2a6901de2159dbb7d1ee29bbb7b7dd980fd
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0x7b5f682fa8b320f804888a174013f2a6901de2159dbb7d1ee29bbb7b7dd980fd",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xc9d194d5",
            "selector": "0xc9d194d5",
            "calldata_variants": [
                "0xc9d194d5",
                "0xc9d194d50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdf97174b",
            "selector": "0xdf97174b",
            "calldata_variants": [
                "0xdf97174b",
                "0xdf97174b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2b53307",
            "selector": "0xf2b53307",
            "calldata_variants": [
                "0xf2b53307",
                "0xf2b533070000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf7955637",
            "selector": "0xf7955637",
            "calldata_variants": [
                "0xf7955637",
                "0xf79556370000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8690ff98",
            "selector": "0x8690ff98",
            "calldata_variants": [
                "0x8690ff98",
                "0x8690ff980000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xaca6b1c1",
            "selector": "0xaca6b1c1",
            "calldata_variants": [
                "0xaca6b1c1",
                "0xaca6b1c10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb56561fe",
            "selector": "0xb56561fe",
            "calldata_variants": [
                "0xb56561fe",
                "0xb56561fe0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbdda81d4",
            "selector": "0xbdda81d4",
            "calldata_variants": [
                "0xbdda81d4",
                "0xbdda81d40000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 1,
    "create2_count": 0
}
low auth codex Validator address uniqueness is not enforced in valsets 65 no
view
evidence_json
{
    "evidence": "`validateValset` only checks array lengths; `checkValidatorSignatures` counts power per entry and does not prevent duplicate signer addresses or reused signatures.",
    "locations": [
        "contracts/contracts/Gravity.sol:165",
        "contracts/contracts/Gravity.sol:217"
    ],
    "recommendation": "Validate that `_valset.validators` contains unique addresses when initializing and updating the validator set (and consider enforcing sorted powers to match assumptions).",
    "exploit_scenario": "If a valset is created with duplicate validator addresses (accidentally or via operator error), a single validator can reuse its signature for each duplicate entry and have its power counted multiple times. This reduces the effective number of distinct signers required to reach the threshold and can enable unauthorized batch/valset execution."
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 1,
    "create2_count": 0
}