0815ab6e-ac94-48f3-9332-fc564f6cd817
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 30772 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 75628 | artifact.fetch | failed | 1 / 3 | 1 week ago |
| 75629 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 75630 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 75631 | capability.graph | complete | 1 / 3 | 1 week ago |
| 75632 | detector.run | complete | 1 / 3 | 1 week ago |
| 75633 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1273320] OpenAI Codex v0.77.0 (research preview)
[codex:1273320] --------
[codex:1273320] workdir: /tmp/codex-multi-2a0igx6l
[codex:1273320] model: gpt-5.2-codex
[codex:1273320] provider: openai
[codex:1273320] approval: never
[codex:1273320] sandbox: read-only
[codex:1273320] reasoning effort: xhigh
[codex:1273320] reasoning summaries: auto
[codex:1273320] session id: 019b711f-9dea-7840-a880-98ba05afd258
[codex:1273320] --------
[codex:1273320] user
[codex:1273320] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1273320] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1273320] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1273320]
[codex:1273320] Scope rules:
[codex:1273320] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1273320] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1273320]
[codex:1273320] Output MUST be valid JSON matching the provided schema.
[codex:1273320] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1273320] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1273320]
[codex:1273320] Output constraints (IMPORTANT):
[codex:1273320] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1273320] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1273320] mcp startup: no servers
[codex:1273320]
[codex:1273320] thinking
[codex:1273320] **Reading instruction file**
[codex:1273320] exec
[codex:1273320] /bin/bash -lc ls in /tmp/codex-multi-2a0igx6l succeeded in 5ms:
[codex:1273320] AUDIT_BUNDLE.txt
[codex:1273320] codex-output-schema.json
[codex:1273320] contracts
[codex:1273320] exec
[codex:1273320] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-2a0igx6l succeeded in 6ms:
[codex:1273320] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1273320]
[codex:1273320] ================================================================================
[codex:1273320] FILE: contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol
[codex:1273320] ================================================================================
[codex:1273320] // SPDX-License-Identifier: MIT
[codex:1273320] // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)
[codex:1273320]
[codex:1273320] pragma solidity ^0.8.0;
[codex:1273320]
[codex:1273320] import "../utils/ContextUpgradeable.sol";
[codex:1273320] import "../proxy/utils/Initializable.sol";
[codex:1273320]
[codex:1273320] /**
[codex:1273320] * @dev Contract module which provides a basic access control mechanism, where
[codex:1273320] * there is an account (an owner) that can be granted exclusive access to
[codex:1273320] * specific functions.
[codex:1273320] *
[codex:1273320] * By default, the owner account will be the one that deploys the contract. This
[codex:1273320] * can later be changed with {transferOwnership}.
[codex:1273320]
[codex:1273320]
[codex:1273320] thinking
[codex:1273320] **Evaluating signature and reentrancy risks in contract**
[codex:1273320] thinking
[codex:1273320] **Summarizing cross-deployment risks and upgradeability concerns**
[codex:1273320]
[codex:1273320] I'm gathering detailed analysis about signature reuse across multiple deployments or chains, owner-controlled variables affecting token claims, and upgradeability patterns. I’m weighing impacts like cross-contract replay risks due to missing domain separation in signatures and noting standard upgradeable contract practices that might cause issues if not handled carefully. I’m also considering how contract owner actions and external token behaviors could affect security within the current setup.
[codex:1273320] exec
[codex:1273320] /bin/bash -lc 'nl -ba contracts/contracts/CampaignRewardDistribution.sol' in /tmp/codex-multi-2a0igx6l succeeded in 5ms:
[codex:1273320] 1 //SPDX-License-Identifier: Unlicense
[codex:1273320] 2 pragma solidity ^0.8.4;
[codex:1273320] 3
[codex:1273320] 4 import "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol";
[codex:1273320] 5 import "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol";
[codex:1273320] 6 import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
[codex:1273320] 7 import "@openzeppelin/contracts-upgradeable/utils/cryptography/ECDSAUpgradeable.sol";
[codex:1273320] 8
[codex:1273320] 9 contract CampaignRewardDistribution is OwnableUpgradeable {
[codex:1273320] 10 using SafeERC20Upgradeable for IERC20Upgradeable;
[codex:1273320] 11 using ECDSAUpgradeable for bytes32;
[codex:1273320] 12
[codex:1273320] 13 event CampaignCreated(uint256 campaignId, address rewardToken);
[codex:1273320] 14 event RewardClaimed(address user, uint256 campaignId, uint256 amount);
[codex:1273320] 15
[codex:1273320] 16 struct Campaign {
[codex:1273320] 17 bool enabled;
[codex:1273320] 18 address rewardToken;
[codex:1273320] 19 uint256 claimableFrom;
[codex:1273320] 20 uint256 claimableUntil;
[codex:1273320]
[codex:1273320] thinking
[codex:1273320] **Preparing JSON audit findings**
[codex:1273320]
[codex:1273320] I'll create JSON output per the codex-output-schema.json with a summary and two findings: one medium-severity auth issue about missing domain separation causing signature replay across contracts/chains, and one low-severity upgradeability issue due to missing _disableInitializers in the implementation contract. I'll ensure all evidence lines and locations are precise and JSON is valid without extra commentary.
[codex:1273320] codex
[codex:1273320] {"no_findings":false,"summary":"Found 2 issues: signatures are not domain-separated (replay risk across contracts/chains), and the upgradeable implementation is not locked against direct initialization.","findings":[{"severity":"medium","category":"auth","title":"Signatures lack domain separation, enabling cross-contract/chain replay","exploit_scenario":"If the same masterSigner key is reused across deployments or chains, a signature intended for one deployment can be replayed against another deployment with the same campaignId/prefix and active window, allowing unauthorized claims on that other contract.","recommendation":"Include domain separation in the signed payload (at least `address(this)` and `block.chainid`), or move to EIP-712 typed data with a contract-specific domain separator.","evidence":"`isSignatureValid` hashes only `prefix`, `user`, `campaignId`, and `amount`, without `address(this)` or `chainId`.","locations":["contracts/contracts/CampaignRewardDistribution.sol:33"]},{"severity":"low","category":"upgradeability","title":"Upgradeable implementation can be initialized directly","exploit_scenario":"An attacker can call `initialize` on the implementation contract (if deployed standalone), become owner, and drain any assets mistakenly sent to the implementation address or operate it directly.","recommendation":"Add a constructor that calls `_disableInitializers()` to lock the implementation contract.","evidence":"No constructor disables initializers; `initialize` is public and uses the `initializer` modifier.","locations":["contracts/contracts/CampaignRewardDistribution.sol:28"]}]}
[codex:1273320] tokens used
[codex:1273320] 20,758
[codex:1273320] {"no_findings":false,"summary":"Found 2 issues: signatures are not domain-separated (replay risk across contracts/chains), and the upgradeable implementation is not locked against direct initialization.","findings":[{"severity":"medium","category":"auth","title":"Signatures lack domain separation, enabling cross-contract/chain replay","exploit_scenario":"If the same masterSigner key is reused across deployments or chains, a signature intended for one deployment can be replayed against another deployment with the same campaignId/prefix and active window, allowing unauthorized claims on that other contract.","recommendation":"Include domain separation in the signed payload (at least `address(this)` and `block.chainid`), or move to EIP-712 typed data with a contract-specific domain separator.","evidence":"`isSignatureValid` hashes only `prefix`, `user`, `campaignId`, and `amount`, without `address(this)` or `chainId`.","locations":["contracts/contracts/CampaignRewardDistribution.sol:33"]},{"severity":"low","category":"upgradeability","title":"Upgradeable implementation can be initialized directly","exploit_scenario":"An attacker can call `initialize` on the implementation contract (if deployed standalone), become owner, and drain any assets mistakenly sent to the implementation address or operate it directly.","recommendation":"Add a constructor that calls `_disableInitializers()` to lock the implementation contract.","evidence":"No constructor disables initializers; `initialize` is public and uses the `initializer` modifier.","locations":["contracts/contracts/CampaignRewardDistribution.sol:28"]}]}
{
"codex": {
"ran_at": "2025-12-30T21:20:18.040965+00:00",
"returncode": 0
},
"summary": "Found 2 issues: signatures are not domain-separated (replay risk across contracts/chains), and the upgradeable implementation is not locked against direct initialization.",
"raw_final": {
"summary": "Found 2 issues: signatures are not domain-separated (replay risk across contracts/chains), and the upgradeable implementation is not locked against direct initialization.",
"findings": [
{
"title": "Signatures lack domain separation, enabling cross-contract/chain replay",
"category": "auth",
"evidence": "`isSignatureValid` hashes only `prefix`, `user`, `campaignId`, and `amount`, without `address(this)` or `chainId`.",
"severity": "medium",
"locations": [
"contracts/contracts/CampaignRewardDistribution.sol:33"
],
"recommendation": "Include domain separation in the signed payload (at least `address(this)` and `block.chainid`), or move to EIP-712 typed data with a contract-specific domain separator.",
"exploit_scenario": "If the same masterSigner key is reused across deployments or chains, a signature intended for one deployment can be replayed against another deployment with the same campaignId/prefix and active window, allowing unauthorized claims on that other contract."
},
{
"title": "Upgradeable implementation can be initialized directly",
"category": "upgradeability",
"evidence": "No constructor disables initializers; `initialize` is public and uses the `initializer` modifier.",
"severity": "low",
"locations": [
"contracts/contracts/CampaignRewardDistribution.sol:28"
],
"recommendation": "Add a constructor that calls `_disableInitializers()` to lock the implementation contract.",
"exploit_scenario": "An attacker can call `initialize` on the implementation contract (if deployed standalone), become owner, and drain any assets mistakenly sent to the implementation address or operate it directly."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLVALUE 00000006: DUP1 00000007: ISZERO 00000008: PUSH2 0x0010 0000000b: JUMPI 0000000c: PUSH1 0x00 0000000e: DUP1 0000000f: REVERT 00000010: JUMPDEST 00000011: POP 00000012: PUSH1 0x04 00000014: CALLDATASIZE 00000015: LT 00000016: PUSH2 0x010b 00000019: JUMPI 0000001a: PUSH1 0x00 0000001c: CALLDATALOAD 0000001d: PUSH1 0xe0 0000001f: SHR 00000020: DUP1 00000021: PUSH4 0x7e45984b 00000026: GT 00000027: PUSH2 0x00a2 0000002a: JUMPI 0000002b: DUP1 0000002c: PUSH4 0xc4d66de8 00000031: GT 00000032: PUSH2 0x0071 00000035: JUMPI 00000036: DUP1 00000037: PUSH4 0xc4d66de8 0000003c: EQ 0000003d: PUSH2 0x0246 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0xcd70584f 00000047: EQ 00000048: PUSH2 0x0259 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0xd352c8b6 00000052: EQ 00000053: PUSH2 0x026c 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0xdd53c4a7 0000005d: EQ 0000005e: PUSH2 0x027f 00000061: JUMPI 00000062: DUP1 00000063: PUSH4 0xf2fde38b 00000068: EQ 00000069: PUSH2 0x0292 0000006c: JUMPI 0000006d: PUSH1 0x00 0000006f: DUP1 00000070: REVERT 00000071: JUMPDEST 00000072: DUP1 00000073: PUSH4 0x7e45984b 00000078: EQ 00000079: PUSH2 0x01fc 0000007c: JUMPI 0000007d: DUP1 0000007e: PUSH4 0x8da5cb5b 00000083: EQ 00000084: PUSH2 0x020f 00000087: JUMPI 00000088: DUP1 00000089: PUSH4 0x8fa2a9f0 0000008e: EQ 0000008f: PUSH2 0x0220 00000092: JUMPI 00000093: DUP1 00000094: PUSH4 0xa5328c99 00000099: EQ 0000009a: PUSH2 0x0233 0000009d: JUMPI 0000009e: PUSH1 0x00 000000a0: DUP1 000000a1: REVERT 000000a2: JUMPDEST 000000a3: DUP1 000000a4: PUSH4 0x30e07f3e 000000a9: GT 000000aa: PUSH2 0x00de 000000ad: JUMPI 000000ae: DUP1 000000af: PUSH4 0x30e07f3e 000000b4: EQ 000000b5: PUSH2 0x0190 000000b8: JUMPI 000000b9: DUP1 000000ba: PUSH4 0x4a0dcc21 000000bf: EQ 000000c0: PUSH2 0x01a3 000000c3: JUMPI 000000c4: DUP1 000000c5: PUSH4 0x4dd6c8de 000000ca: EQ 000000cb: PUSH2 0x01b6 000000ce: JUMPI 000000cf: DUP1 000000d0: PUSH4 0x715018a6 000000d5: EQ 000000d6: PUSH2 0x01f4 000000d9: JUMPI 000000da: PUSH1 0x00 000000dc: DUP1 000000dd: REVERT 000000de: JUMPDEST 000000df: DUP1 000000e0: PUSH4 0x141961bc 000000e5: EQ 000000e6: PUSH2 0x0110 000000e9: JUMPI 000000ea: DUP1 000000eb: PUSH4 0x19251fd5 000000f0: EQ 000000f1: PUSH2 0x013d 000000f4: JUMPI 000000f5: DUP1 000000f6: PUSH4 0x20a3cd01 000000fb: EQ 000000fc: PUSH2 0x0152 000000ff: JUMPI 00000100: DUP1 00000101: PUSH4 0x2ada8a32 00000106: EQ 00000107: PUSH2 0x017d 0000010a: JUMPI 0000010b: JUMPDEST 0000010c: PUSH1 0x00 0000010e: DUP1 0000010f: REVERT 00000110: JUMPDEST 00000111: PUSH2 0x0123 00000114: PUSH2 0x011e 00000117: CALLDATASIZE 00000118: PUSH1 0x04 0000011a: PUSH2 0x1614 0000011d: JUMP 0000011e: JUMPDEST 0000011f: PUSH2 0x02a5 00000122: JUMP 00000123: JUMPDEST 00000124: PUSH1 0x40 00000126: MLOAD 00000127: PUSH2 0x0134 0000012a: SWAP6 0000012b: SWAP5 0000012c: SWAP4 0000012d: SWAP3 0000012e: SWAP2 0000012f: SWAP1 00000130: PUSH2 0x17e1 00000133: JUMP 00000134: JUMPDEST 00000135: PUSH1 0x40 00000137: MLOAD 00000138: DUP1 00000139: SWAP2 0000013a: SUB 0000013b: SWAP1 0000013c: RETURN 0000013d: JUMPDEST 0000013e: PUSH2 0x0150 00000141: PUSH2 0x014b 00000144: CALLDATASIZE 00000145: PUSH1 0x04 00000147: PUSH2 0x162c 0000014a: JUMP 0000014b: JUMPDEST 0000014c: PUSH2 0x0368 0000014f: JUMP 00000150: JUMPDEST 00000151: STOP 00000152: JUMPDEST 00000153: PUSH1 0x67 00000155: SLOAD 00000156: PUSH2 0x0165 00000159: SWAP1 0000015a: PUSH1 0x01 0000015c: PUSH1 0x01 0000015e: PUSH1 0xa0 00000160: SHL 00000161: SUB 00000162: AND 00000163: DUP2 00000164: JUMP 00000165: JUMPDEST 00000166: PUSH1 0x40 00000168: MLOAD 00000169: PUSH1 0x01 0000016b: PUSH1 0x01 0000016d: PUSH1 0xa0 0000016f: SHL 00000170: SUB 00000171: SWAP1 00000172: SWAP2 00000173: AND 00000174: DUP2 00000175: MSTORE 00000176: PUSH1 0x20 00000178: ADD 00000179: PUSH2 0x0134 0000017c: JUMP 0000017d: JUMPDEST 0000017e: PUSH2 0x0150 00000181: PUSH2 0x018b 00000184: CALLDATASIZE 00000185: PUSH1 0x04 00000187: PUSH2 0x1586 0000018a: JUMP 0000018b: JUMPDEST 0000018c: PUSH2 0x03a5 0000018f: JUMP 00000190: JUMPDEST 00000191: PUSH2 0x0150 00000194: PUSH2 0x019e 00000197: CALLDATASIZE 00000198: PUSH1 0x04 0000019a: PUSH2 0x1734 0000019d: JUMP 0000019e: JUMPDEST 0000019f: PUSH2 0x061d 000001a2: JUMP 000001a3: JUMPDEST 000001a4: PUSH2 0x0150 000001a7: PUSH2 0x01b1 000001aa: CALLDATASIZE 000001ab: PUSH1 0x04 000001ad: PUSH2 0x1657 000001b0: JUMP 000001b1: JUMPDEST 000001b2: PUSH2 0x066a 000001b5: JUMP 000001b6: JUMPDEST 000001b7: PUSH2 0x01e4 000001ba: PUSH2 0x01c4 000001bd: CALLDATASIZE 000001be: PUSH1 0x04 000001c0: PUSH2 0x155d 000001c3: JUMP 000001c4: JUMPDEST 000001c5: PUSH1 0x66 000001c7: PUSH1 0x20 000001c9: SWAP1 000001ca: DUP2 000001cb: MSTORE 000001cc: PUSH1 0x00 000001ce: SWAP3 000001cf: DUP4 000001d0: MSTORE 000001d1: PUSH1 0x40 000001d3: DUP1 000001d4: DUP5 000001d5: KECCAK256 000001d6: SWAP1 000001d7: SWAP2 000001d8: MSTORE 000001d9: SWAP1 000001da: DUP3 000001db: MSTORE 000001dc: SWAP1 000001dd: KECCAK256 000001de: SLOAD 000001df: PUSH1 0xff 000001e1: AND 000001e2: DUP2 000001e3: JUMP 000001e4: JUMPDEST 000001e5: PUSH1 0x40 000001e7: MLOAD 000001e8: SWAP1 000001e9: ISZERO 000001ea: ISZERO 000001eb: DUP2 000001ec: MSTORE 000001ed: PUSH1 0x20 000001ef: ADD 000001f0: PUSH2 0x0134 000001f3: JUMP 000001f4: JUMPDEST 000001f5: PUSH2 0x0150 000001f8: PUSH2 0x0777 000001fb: JUMP 000001fc: JUMPDEST 000001fd: PUSH2 0x0150 00000200: PUSH2 0x020a 00000203: CALLDATASIZE 00000204: PUSH1 0x04 00000206: PUSH2 0x16ef 00000209: JUMP 0000020a: JUMPDEST 0000020b: PUSH2 0x078b 0000020e: JUMP 0000020f: JUMPDEST 00000210: PUSH1 0x33 00000212: SLOAD 00000213: PUSH1 0x01 00000215: PUSH1 0x01 00000217: PUSH1 0xa0 00000219: SHL 0000021a: SUB 0000021b: AND 0000021c: PUSH2 0x0165 0000021f: JUMP 00000220: JUMPDEST 00000221: PUSH2 0x0150 00000224: PUSH2 0x022e 00000227: CALLDATASIZE 00000228: PUSH1 0x04 0000022a: PUSH2 0x1543 0000022d: JUMP 0000022e: JUMPDEST 0000022f: PUSH2 0x07bd 00000232: JUMP 00000233: JUMPDEST 00000234: PUSH2 0x0150 00000237: PUSH2 0x0241 0000023a: CALLDATASIZE 0000023b: PUSH1 0x04 0000023d: PUSH2 0x1734 00000240: JUMP 00000241: JUMPDEST 00000242: PUSH2 0x07e7 00000245: JUMP 00000246: JUMPDEST 00000247: PUSH2 0x0150 0000024a: PUSH2 0x0254 0000024d: CALLDATASIZE 0000024e: PUSH1 0x04 00000250: PUSH2 0x1543 00000253: JUMP 00000254: JUMPDEST 00000255: PUSH2 0x08de 00000258: JUMP 00000259: JUMPDEST 0000025a: PUSH2 0x0150 0000025d: PUSH2 0x0267 00000260: CALLDATASIZE 00000261: PUSH1 0x04 00000263: PUSH2 0x1734 00000266: JUMP 00000267: JUMPDEST 00000268: PUSH2 0x0a0b 0000026b: JUMP 0000026c: JUMPDEST 0000026d: PUSH2 0x01e4 00000270: PUSH2 0x027a 00000273: CALLDATASIZE 00000274: PUSH1 0x04 00000276: PUSH2 0x1586 00000279: JUMP 0000027a: JUMPDEST 0000027b: PUSH2 0x0a9b 0000027e: JUMP 0000027f: JUMPDEST 00000280: PUSH2 0x0150 00000283: PUSH2 0x028d 00000286: CALLDATASIZE 00000287: PUSH1 0x04 00000289: PUSH2 0x16c0 0000028c: JUMP 0000028d: JUMPDEST 0000028e: PUSH2 0x0beb 00000291: JUMP 00000292: JUMPDEST 00000293: PUSH2 0x0150 00000296: PUSH2 0x02a0 00000299: CALLDATASIZE 0000029a: PUSH1 0x04 0000029c: PUSH2 0x1543 0000029f: JUMP 000002a0: JUMPDEST 000002a1: PUSH2 0x0c13 000002a4: JUMP 000002a5: JUMPDEST 000002a6: PUSH1 0x65 000002a8: PUSH1 0x20 000002aa: MSTORE 000002ab: PUSH1 0x00 000002ad: SWAP1 000002ae: DUP2 000002af: MSTORE 000002b0: PUSH1 0x40 000002b2: SWAP1 000002b3: KECCAK256 000002b4: DUP1 000002b5: SLOAD 000002b6: PUSH1 0x01 000002b8: DUP3 000002b9: ADD 000002ba: SLOAD 000002bb: PUSH1 0x02 000002bd: DUP4 000002be: ADD 000002bf: SLOAD 000002c0: PUSH1 0x03 000002c2: DUP5 000002c3: ADD 000002c4: DUP1 000002c5: SLOAD 000002c6: PUSH1 0xff 000002c8: DUP6 000002c9: AND 000002ca: SWAP6 000002cb: PUSH2 0x0100 000002ce: SWAP1 000002cf: SWAP6 000002d0: DIV 000002d1: PUSH1 0x01 000002d3: PUSH1 0x01 000002d5: PUSH1 0xa0 000002d7: SHL 000002d8: SUB 000002d9: AND 000002da: SWAP5 000002db: SWAP2 000002dc: SWAP1 000002dd: PUSH2 0x02e5 000002e0: SWAP1 000002e1: PUSH2 0x190f 000002e4: JUMP 000002e5: JUMPDEST 000002e6: DUP1 000002e7: PUSH1 0x1f 000002e9: ADD 000002ea: PUSH1 0x20 000002ec: DUP1 000002ed: SWAP2 000002ee: DIV 000002ef: MUL 000002f0: PUSH1 0x20 000002f2: ADD 000002f3: PUSH1 0x40 000002f5: MLOAD 000002f6: SWAP1 000002f7: DUP2 000002f8: ADD 000002f9: PUSH1 0x40 000002fb: MSTORE 000002fc: DUP1 000002fd: SWAP3 000002fe: SWAP2 000002ff: SWAP1 00000300: DUP2 00000301: DUP2 00000302: MSTORE 00000303: PUSH1 0x20 00000305: ADD 00000306: DUP3 00000307: DUP1 00000308: SLOAD 00000309: PUSH2 0x0311 0000030c: SWAP1 0000030d: PUSH2 0x190f 00000310: JUMP 00000311: JUMPDEST 00000312: DUP1 00000313: ISZERO 00000314: PUSH2 0x035e 00000317: JUMPI 00000318: DUP1 00000319: PUSH1 0x1f 0000031b: LT 0000031c: PUSH2 0x0333 0000031f: JUMPI 00000320: PUSH2 0x0100 00000323: DUP1 00000324: DUP4 00000325: SLOAD 00000326: DIV 00000327: MUL 00000328: DUP4 00000329: MSTORE 0000032a: SWAP2 0000032b: PUSH1 0x20 0000032d: ADD 0000032e: SWAP2 0000032f: PUSH2 0x035e 00000332: JUMP 00000333: JUMPDEST 00000334: DUP3 00000335: ADD 00000336: SWAP2 00000337: SWAP1 00000338: PUSH1 0x00 0000033a: MSTORE 0000033b: PUSH1 0x20 0000033d: PUSH1 0x00 0000033f: KECCAK256 00000340: SWAP1 00000341: JUMPDEST 00000342: DUP2 00000343: SLOAD 00000344: DUP2 00000345: MSTORE 00000346: SWAP1 00000347: PUSH1 0x01 00000349: ADD 0000034a: SWAP1 0000034b: PUSH1 0x20 0000034d: ADD 0000034e: DUP1 0000034f: DUP4 00000350: GT 00000351: PUSH2 0x0341 00000354: JUMPI 00000355: DUP3 00000356: SWAP1 00000357: SUB 00000358: PUSH1 0x1f 0000035a: AND 0000035b: DUP3 0000035c: ADD 0000035d: SWAP2 0000035e: JUMPDEST 0000035f: POP 00000360: POP 00000361: POP 00000362: POP 00000363: POP 00000364: SWAP1 00000365: POP 00000366: DUP6 00000367: JUMP 00000368: JUMPDEST 00000369: PUSH2 0x0370 0000036c: PUSH2 0x0c8c 0000036f: JUMP 00000370: JUMPDEST 00000371: PUSH1 0x00 00000373: SWAP2 00000374: DUP3 00000375: MSTORE 00000376: PUSH1 0x65 00000378: PUSH1 0x20 0000037a: MSTORE 0000037b: PUSH1 0x40 0000037d: SWAP1 0000037e: SWAP2 0000037f: KECCAK256 00000380: DUP1 00000381: SLOAD 00000382: PUSH1 0x01 00000384: PUSH1 0x01 00000386: PUSH1 0xa0 00000388: SHL 00000389: SUB 0000038a: SWAP1 0000038b: SWAP3 0000038c: AND 0000038d: PUSH2 0x0100 00000390: MUL 00000391: PUSH2 0x0100 00000394: PUSH1 0x01 00000396: PUSH1 0xa8 00000398: SHL 00000399: SUB 0000039a: NOT 0000039b: SWAP1 0000039c: SWAP3 0000039d: AND 0000039e: SWAP2 0000039f: SWAP1 000003a0: SWAP2 000003a1: OR 000003a2: SWAP1 000003a3: SSTORE 000003a4: JUMP 000003a5: JUMPDEST 000003a6: PUSH1 0x00 000003a8: DUP4 000003a9: DUP2 000003aa: MSTORE 000003ab: PUSH1 0x65 000003ad: PUSH1 0x20 000003af: MSTORE 000003b0: PUSH1 0x40 000003b2: SWAP1 000003b3: KECCAK256 000003b4: SLOAD 000003b5: PUSH1 0xff 000003b7: AND 000003b8: PUSH2 0x03ff 000003bb: JUMPI 000003bc: PUSH1 0x40 000003be: MLOAD 000003bf: PUSH3 0x461bcd 000003c3: PUSH1 0xe5 000003c5: SHL 000003c6: DUP2 000003c7: MSTORE 000003c8: PUSH1 0x20 000003ca: PUSH1 0x04 000003cc: DUP3 000003cd: ADD 000003ce: MSTORE 000003cf: PUSH1 0x14 000003d1: PUSH1 0x24 000003d3: DUP3 000003d4: ADD 000003d5: MSTORE 000003d6: PUSH20 0x18d85b5c185a59db881b9bdd08195b98589b1959 000003eb: PUSH1 0x62 000003ed: SHL 000003ee: PUSH1 0x44 000003f0: DUP3 000003f1: ADD 000003f2: MSTORE 000003f3: PUSH1 0x64 000003f5: ADD 000003f6: JUMPDEST 000003f7: PUSH1 0x40 000003f9: MLOAD 000003fa: DUP1 000003fb: SWAP2 000003fc: SUB 000003fd: SWAP1 000003fe: REVERT 000003ff: JUMPDEST 00000400: PUSH1 0x00 00000402: DUP4 00000403: DUP2 00000404: MSTORE 00000405: PUSH1 0x65 00000407: PUSH1 0x20 00000409: MSTORE 0000040a: PUSH1 0x40 0000040c: SWAP1 0000040d: KECCAK256 0000040e: PUSH1 0x01 00000410: ADD 00000411: SLOAD 00000412: TIMESTAMP 00000413: LT 00000414: ISZERO 00000415: PUSH2 0x0460 00000418: JUMPI 00000419: PUSH1 0x40 0000041b: MLOAD 0000041c: PUSH3 0x461bcd 00000420: PUSH1 0xe5 00000422: SHL 00000423: DUP2 00000424: MSTORE 00000425: PUSH1 0x20 00000427: PUSH1 0x04 00000429: DUP3 0000042a: ADD 0000042b: MSTORE 0000042c: PUSH1 0x1d 0000042e: PUSH1 0x24 00000430: DUP3 00000431: ADD 00000432: MSTORE 00000433: PUSH32 0x726577617264732063616e6e6f7420626520636c61696d656420796574000000 00000454: PUSH1 0x44 00000456: DUP3 00000457: ADD 00000458: MSTORE 00000459: PUSH1 0x64 0000045b: ADD 0000045c: PUSH2 0x03f6 0000045f: JUMP 00000460: JUMPDEST 00000461: PUSH1 0x00 00000463: DUP4 00000464: DUP2 00000465: MSTORE 00000466: PUSH1 0x65 00000468: PUSH1 0x20 0000046a: MSTORE 0000046b: PUSH1 0x40 0000046d: SWAP1 0000046e: KECCAK256 0000046f: PUSH1 0x02 00000471: ADD 00000472: SLOAD 00000473: TIMESTAMP 00000474: GT 00000475: ISZERO 00000476: PUSH2 0x04cb 00000479: JUMPI 0000047a: PUSH1 0x40 0000047c: MLOAD 0000047d: PUSH3 0x461bcd 00000481: PUSH1 0xe5 00000483: SHL 00000484: DUP2 00000485: MSTORE 00000486: PUSH1 0x20 00000488: PUSH1 0x04 0000048a: DUP3 0000048b: ADD 0000048c: MSTORE 0000048d: PUSH1 0x21 0000048f: PUSH1 0x24 00000491: DUP3 00000492: ADD 00000493: MSTORE 00000494: PUSH32 0x726577617264732063616e6e6f7420626520636c61696d656420616e796d6f72 000004b5: PUSH1 0x44 000004b7: DUP3 000004b8: ADD 000004b9: MSTORE 000004ba: PUSH1 0x65 000004bc: PUSH1 0xf8 000004be: SHL 000004bf: PUSH1 0x64 000004c1: DUP3 000004c2: ADD 000004c3: MSTORE 000004c4: PUSH1 0x84 000004c6: ADD 000004c7: PUSH2 0x03f6 000004ca: JUMP 000004cb: JUMPDEST 000004cc: PUSH1 0x01 000004ce: PUSH1 0x01 000004d0: PUSH1 0xa0 000004d2: SHL 000004d3: SUB 000004d4: DUP5 000004d5: AND 000004d6: PUSH1 0x00 000004d8: SWAP1 000004d9: DUP2 000004da: MSTORE 000004db: PUSH1 0x66 000004dd: PUSH1 0x20 000004df: SWAP1 000004e0: DUP2 000004e1: MSTORE 000004e2: PUSH1 0x40 000004e4: DUP1 000004e5: DUP4 000004e6: KECCAK256 000004e7: DUP7 000004e8: DUP5 000004e9: MSTORE 000004ea: SWAP1 000004eb: SWAP2 000004ec: MSTORE 000004ed: SWAP1 000004ee: KECCAK256 000004ef: SLOAD 000004f0: PUSH1 0xff 000004f2: AND 000004f3: ISZERO 000004f4: PUSH2 0x0538 000004f7: JUMPI 000004f8: PUSH1 0x40 000004fa: MLOAD 000004fb: PUSH3 0x461bcd 000004ff: PUSH1 0xe5 00000501: SHL 00000502: DUP2 00000503: MSTORE 00000504: PUSH1 0x20 00000506: PUSH1 0x04 00000508: DUP3 00000509: ADD 0000050a: MSTORE 0000050b: PUSH1 0x16 0000050d: PUSH1 0x24 0000050f: DUP3 00000510: ADD 00000511: MSTORE 00000512: PUSH22 0x1c995dd85c9908185b1c9958591e4818db185a5b5959 00000529: PUSH1 0x52 0000052b: SHL 0000052c: PUSH1 0x44 0000052e: DUP3 0000052f: ADD 00000530: MSTORE 00000531: PUSH1 0x64 00000533: ADD 00000534: PUSH2 0x03f6 00000537: JUMP 00000538: JUMPDEST 00000539: PUSH2 0x0544 0000053c: DUP5 0000053d: DUP5 0000053e: DUP5 0000053f: DUP5 00000540: PUSH2 0x0a9b 00000543: JUMP 00000544: JUMPDEST 00000545: PUSH2 0x0584 00000548: JUMPI 00000549: PUSH1 0x40 0000054b: MLOAD 0000054c: PUSH3 0x461bcd 00000550: PUSH1 0xe5 00000552: SHL 00000553: DUP2 00000554: MSTORE 00000555: PUSH1 0x20 00000557: PUSH1 0x04 00000559: DUP3 0000055a: ADD 0000055b: MSTORE 0000055c: PUSH1 0x11 0000055e: PUSH1 0x24 00000560: DUP3 00000561: ADD 00000562: MSTORE 00000563: PUSH17 0x696e76616c6964207369676e6174757265 00000575: PUSH1 0x78 00000577: SHL 00000578: PUSH1 0x44 0000057a: DUP3 0000057b: ADD 0000057c: MSTORE 0000057d: PUSH1 0x64 0000057f: ADD 00000580: PUSH2 0x03f6 00000583: JUMP 00000584: JUMPDEST 00000585: PUSH1 0x01 00000587: PUSH1 0x01 00000589: PUSH1 0xa0 0000058b: SHL 0000058c: SUB 0000058d: DUP1 0000058e: DUP6 0000058f: AND 00000590: PUSH1 0x00 00000592: SWAP1 00000593: DUP2 00000594: MSTORE 00000595: PUSH1 0x66 00000597: PUSH1 0x20 00000599: SWAP1 0000059a: DUP2 0000059b: MSTORE 0000059c: PUSH1 0x40 0000059e: DUP1 0000059f: DUP4 000005a0: KECCAK256 000005a1: DUP8 000005a2: DUP5 000005a3: MSTORE 000005a4: DUP3 000005a5: MSTORE 000005a6: DUP1 000005a7: DUP4 000005a8: KECCAK256 000005a9: DUP1 000005aa: SLOAD 000005ab: PUSH1 0xff 000005ad: NOT 000005ae: AND 000005af: PUSH1 0x01 000005b1: OR 000005b2: SWAP1 000005b3: SSTORE 000005b4: PUSH1 0x65 000005b6: SWAP1 000005b7: SWAP2 000005b8: MSTORE 000005b9: SWAP1 000005ba: KECCAK256 000005bb: SLOAD 000005bc: PUSH2 0x05cd 000005bf: SWAP2 000005c0: PUSH2 0x0100 000005c3: SWAP1 000005c4: SWAP2 000005c5: DIV 000005c6: AND 000005c7: DUP6 000005c8: DUP5 000005c9: PUSH2 0x0ce6 000005cc: JUMP 000005cd: JUMPDEST 000005ce: PUSH1 0x40 000005d0: DUP1 000005d1: MLOAD 000005d2: PUSH1 0x01 000005d4: PUSH1 0x01 000005d6: PUSH1 0xa0 000005d8: SHL 000005d9: SUB 000005da: DUP7 000005db: AND 000005dc: DUP2 000005dd: MSTORE 000005de: PUSH1 0x20 000005e0: DUP2 000005e1: ADD 000005e2: DUP6 000005e3: SWAP1 000005e4: MSTORE 000005e5: SWAP1 000005e6: DUP2 000005e7: ADD 000005e8: DUP4 000005e9: SWAP1 000005ea: MSTORE 000005eb: PUSH32 0xf01da32686223933d8a18a391060918c7f11a3648639edd87ae013e2e2731743 0000060c: SWAP1 0000060d: PUSH1 0x60 0000060f: ADD 00000610: PUSH1 0x40 00000612: MLOAD 00000613: DUP1 00000614: SWAP2 00000615: SUB 00000616: SWAP1 00000617: LOG1 00000618: POP 00000619: POP 0000061a: POP 0000061b: POP 0000061c: JUMP 0000061d: JUMPDEST 0000061e: PUSH2 0x0625 00000621: PUSH2 0x0c8c 00000624: JUMP 00000625: JUMPDEST 00000626: PUSH1 0x00 00000628: DUP3 00000629: DUP2 0000062a: MSTORE 0000062b: PUSH1 0x65 0000062d: PUSH1 0x20 0000062f: MSTORE 00000630: PUSH1 0x40 00000632: SWAP1 00000633: KECCAK256 00000634: PUSH1 0x02 00000636: ADD 00000637: SLOAD 00000638: DUP2 00000639: LT 0000063a: PUSH2 0x0655 0000063d: JUMPI 0000063e: PUSH1 0x40 00000640: MLOAD 00000641: PUSH3 0x461bcd 00000645: PUSH1 0xe5 00000647: SHL 00000648: DUP2 00000649: MSTORE 0000064a: PUSH1 0x04 0000064c: ADD 0000064d: PUSH2 0x03f6 00000650: SWAP1 00000651: PUSH2 0x1829 00000654: JUMP 00000655: JUMPDEST 00000656: PUSH1 0x00 00000658: SWAP2 00000659: DUP3 0000065a: MSTORE 0000065b: PUSH1 0x65 0000065d: PUSH1 0x20 0000065f: MSTORE 00000660: PUSH1 0x40 00000662: SWAP1 00000663: SWAP2 00000664: KECCAK256 00000665: PUSH1 0x01 00000667: ADD 00000668: SSTORE 00000669: JUMP 0000066a: JUMPDEST 0000066b: PUSH2 0x0672 0000066e: PUSH2 0x0c8c 00000671: JUMP 00000672: JUMPDEST 00000673: DUP2 00000674: DUP4 00000675: LT 00000676: PUSH2 0x0691 00000679: JUMPI 0000067a: PUSH1 0x40 0000067c: MLOAD 0000067d: PUSH3 0x461bcd 00000681: PUSH1 0xe5 00000683: SHL 00000684: DUP2 00000685: MSTORE 00000686: PUSH1 0x04 00000688: ADD 00000689: PUSH2 0x03f6 0000068c: SWAP1 0000068d: PUSH2 0x1829 00000690: JUMP 00000691: JUMPDEST 00000692: PUSH1 0x40 00000694: DUP1 00000695: MLOAD 00000696: PUSH1 0xa0 00000698: DUP2 00000699: ADD 0000069a: DUP3 0000069b: MSTORE 0000069c: PUSH1 0x01 0000069e: DUP1 0000069f: DUP3 000006a0: MSTORE 000006a1: PUSH1 0x01 000006a3: PUSH1 0x01 000006a5: PUSH1 0xa0 000006a7: SHL 000006a8: SUB 000006a9: DUP8 000006aa: DUP2 000006ab: AND 000006ac: PUSH1 0x20 000006ae: DUP1 000006af: DUP6 000006b0: ADD 000006b1: SWAP2 000006b2: DUP3 000006b3: MSTORE 000006b4: DUP5 000006b5: DUP7 000006b6: ADD 000006b7: DUP10 000006b8: DUP2 000006b9: MSTORE 000006ba: PUSH1 0x60 000006bc: DUP7 000006bd: ADD 000006be: DUP10 000006bf: DUP2 000006c0: MSTORE 000006c1: PUSH1 0x80 000006c3: DUP8 000006c4: ADD 000006c5: DUP10 000006c6: DUP2 000006c7: MSTORE 000006c8: PUSH1 0x00 000006ca: DUP15 000006cb: DUP2 000006cc: MSTORE 000006cd: PUSH1 0x65 000006cf: DUP6 000006d0: MSTORE 000006d1: SWAP9 000006d2: SWAP1 000006d3: SWAP9 000006d4: KECCAK256 000006d5: DUP8 000006d6: MLOAD 000006d7: DUP2 000006d8: SLOAD 000006d9: SWAP6 000006da: MLOAD 000006db: PUSH1 0x01 000006dd: PUSH1 0x01 000006df: PUSH1 0xa8 000006e1: SHL 000006e2: SUB 000006e3: NOT 000006e4: SWAP1 000006e5: SWAP7 000006e6: AND 000006e7: SWAP1 000006e8: ISZERO 000006e9: ISZERO 000006ea: PUSH2 0x0100 000006ed: PUSH1 0x01 000006ef: PUSH1 0xa8 000006f1: SHL 000006f2: SUB 000006f3: NOT 000006f4: AND 000006f5: OR 000006f6: PUSH2 0x0100 000006f9: SWAP6 000006fa: SWAP1 000006fb: SWAP7 000006fc: AND 000006fd: SWAP5 000006fe: SWAP1 000006ff: SWAP5 00000700: MUL 00000701: SWAP5 00000702: SWAP1 00000703: SWAP5 00000704: OR 00000705: DUP4 00000706: SSTORE 00000707: MLOAD 00000708: SWAP4 00000709: DUP3 0000070a: ADD 0000070b: SWAP4 0000070c: SWAP1 0000070d: SWAP4 0000070e: SSTORE 0000070f: SWAP1 00000710: MLOAD 00000711: PUSH1 0x02 00000713: DUP3 00000714: ADD 00000715: SSTORE 00000716: SWAP3 00000717: MLOAD 00000718: DUP1 00000719: MLOAD 0000071a: SWAP3 0000071b: SWAP4 0000071c: SWAP3 0000071d: PUSH2 0x072c 00000720: SWAP3 00000721: PUSH1 0x03 00000723: DUP6 00000724: ADD 00000725: SWAP3 00000726: ADD 00000727: SWAP1 00000728: PUSH2 0x13f9 0000072b: JUMP 0000072c: JUMPDEST 0000072d: POP 0000072e: POP 0000072f: PUSH1 0x40 00000731: DUP1 00000732: MLOAD 00000733: DUP8 00000734: DUP2 00000735: MSTORE 00000736: PUSH1 0x01 00000738: PUSH1 0x01 0000073a: PUSH1 0xa0 0000073c: SHL 0000073d: SUB 0000073e: DUP8 0000073f: AND 00000740: PUSH1 0x20 00000742: DUP3 00000743: ADD 00000744: MSTORE 00000745: PUSH32 0x633109eec20320eded000fc1e2634211aa7e92ba3f5b15faf6dcdafca05094e4 00000766: SWAP3 00000767: POP 00000768: ADD 00000769: PUSH1 0x40 0000076b: MLOAD 0000076c: DUP1 0000076d: SWAP2 0000076e: SUB 0000076f: SWAP1 00000770: LOG1 00000771: POP 00000772: POP 00000773: POP 00000774: POP 00000775: POP 00000776: JUMP 00000777: JUMPDEST 00000778: PUSH2 0x077f 0000077b: PUSH2 0x0c8c 0000077e: JUMP 0000077f: JUMPDEST 00000780: PUSH2 0x0789 00000783: PUSH1 0x00 00000785: PUSH2 0x0d38 00000788: JUMP 00000789: JUMPDEST 0000078a: JUMP 0000078b: JUMPDEST 0000078c: PUSH2 0x0793 0000078f: PUSH2 0x0c8c 00000792: JUMP 00000793: JUMPDEST 00000794: PUSH1 0x00 00000796: DUP3 00000797: DUP2 00000798: MSTORE 00000799: PUSH1 0x65 0000079b: PUSH1 0x20 0000079d: SWAP1 0000079e: DUP2 0000079f: MSTORE 000007a0: PUSH1 0x40 000007a2: SWAP1 000007a3: SWAP2 000007a4: KECCAK256 000007a5: DUP3 000007a6: MLOAD 000007a7: PUSH2 0x07b8 000007aa: SWAP3 000007ab: PUSH1 0x03 000007ad: SWAP1 000007ae: SWAP3 000007af: ADD 000007b0: SWAP2 000007b1: DUP5 000007b2: ADD 000007b3: SWAP1 000007b4: PUSH2 0x13f9 000007b7: JUMP 000007b8: JUMPDEST 000007b9: POP 000007ba: POP 000007bb: POP 000007bc: JUMP 000007bd: JUMPDEST 000007be: PUSH2 0x07c5 000007c1: PUSH2 0x0c8c 000007c4: JUMP 000007c5: JUMPDEST 000007c6: PUSH1 0x67 000007c8: DUP1 000007c9: SLOAD 000007ca: PUSH1 0x01 000007cc: PUSH1 0x01 000007ce: PUSH1 0xa0 000007d0: SHL 000007d1: SUB 000007d2: NOT 000007d3: AND 000007d4: PUSH1 0x01 000007d6: PUSH1 0x01 000007d8: PUSH1 0xa0 000007da: SHL 000007db: SUB 000007dc: SWAP3 000007dd: SWAP1 000007de: SWAP3 000007df: AND 000007e0: SWAP2 000007e1: SWAP1 000007e2: SWAP2 000007e3: OR 000007e4: SWAP1 000007e5: SSTORE 000007e6: JUMP 000007e7: JUMPDEST 000007e8: PUSH2 0x07ef 000007eb: PUSH2 0x0c8c 000007ee: JUMP 000007ef: JUMPDEST 000007f0: PUSH2 0x0828 000007f3: PUSH2 0x0804 000007f6: PUSH1 0x33 000007f8: SLOAD 000007f9: PUSH1 0x01 000007fb: PUSH1 0x01 000007fd: PUSH1 0xa0 000007ff: SHL 00000800: SUB 00000801: AND 00000802: SWAP1 00000803: JUMP 00000804: JUMPDEST 00000805: PUSH1 0x00 00000807: DUP5 00000808: DUP2 00000809: MSTORE 0000080a: PUSH1 0x65 0000080c: PUSH1 0x20 0000080e: MSTORE 0000080f: PUSH1 0x40 00000811: SWAP1 00000812: KECCAK256 00000813: SLOAD 00000814: PUSH2 0x0100 00000817: SWAP1 00000818: DIV 00000819: PUSH1 0x01 0000081b: PUSH1 0x01 0000081d: PUSH1 0xa0 0000081f: SHL 00000820: SUB 00000821: AND 00000822: SWAP1 00000823: DUP4 00000824: PUSH2 0x0ce6 00000827: JUMP 00000828: JUMPDEST 00000829: SELFBALANCE 0000082a: DUP1 0000082b: ISZERO 0000082c: PUSH2 0x07b8 0000082f: JUMPI 00000830: PUSH1 0x00 00000832: PUSH2 0x0843 00000835: PUSH1 0x33 00000837: SLOAD 00000838: PUSH1 0x01 0000083a: PUSH1 0x01 0000083c: PUSH1 0xa0 0000083e: SHL 0000083f: SUB 00000840: AND 00000841: SWAP1 00000842: JUMP 00000843: JUMPDEST 00000844: PUSH1 0x01 00000846: PUSH1 0x01 00000848: PUSH1 0xa0 0000084a: SHL 0000084b: SUB 0000084c: AND 0000084d: SELFBALANCE 0000084e: PUSH1 0x40 00000850: MLOAD 00000851: PUSH1 0x00 00000853: PUSH1 0x40 00000855: MLOAD 00000856: DUP1 00000857: DUP4 00000858: SUB 00000859: DUP2 0000085a: DUP6 0000085b: DUP8 0000085c: GAS 0000085d: CALL 0000085e: SWAP3 0000085f: POP 00000860: POP 00000861: POP 00000862: RETURNDATASIZE 00000863: DUP1 00000864: PUSH1 0x00 00000866: DUP2 00000867: EQ 00000868: PUSH2 0x088d 0000086b: JUMPI 0000086c: PUSH1 0x40 0000086e: MLOAD 0000086f: SWAP2 00000870: POP 00000871: PUSH1 0x1f 00000873: NOT 00000874: PUSH1 0x3f 00000876: RETURNDATASIZE 00000877: ADD 00000878: AND 00000879: DUP3 0000087a: ADD 0000087b: PUSH1 0x40 0000087d: MSTORE 0000087e: RETURNDATASIZE 0000087f: DUP3 00000880: MSTORE 00000881: RETURNDATASIZE 00000882: PUSH1 0x00 00000884: PUSH1 0x20 00000886: DUP5 00000887: ADD 00000888: RETURNDATACOPY 00000889: PUSH2 0x0892 0000088c: JUMP 0000088d: JUMPDEST 0000088e: PUSH1 0x60 00000890: SWAP2 00000891: POP 00000892: JUMPDEST 00000893: POP 00000894: POP 00000895: SWAP1 00000896: POP 00000897: DUP1 00000898: PUSH2 0x08d8 0000089b: JUMPI 0000089c: PUSH1 0x40 0000089e: MLOAD 0000089f: PUSH3 0x461bcd 000008a3: PUSH1 0xe5 000008a5: SHL 000008a6: DUP2 000008a7: MSTORE 000008a8: PUSH1 0x20 000008aa: PUSH1 0x04 000008ac: DUP3 000008ad: ADD 000008ae: MSTORE 000008af: PUSH1 0x12 000008b1: PUSH1 0x24 000008b3: DUP3 000008b4: ADD 000008b5: MSTORE 000008b6: PUSH18 0x4641494c45445f544f5f5749544844524157 000008c9: PUSH1 0x70 000008cb: SHL 000008cc: PUSH1 0x44 000008ce: DUP3 000008cf: ADD 000008d0: MSTORE 000008d1: PUSH1 0x64 000008d3: ADD 000008d4: PUSH2 0x03f6 000008d7: JUMP 000008d8: JUMPDEST 000008d9: POP 000008da: POP 000008db: POP 000008dc: POP 000008dd: JUMP 000008de: JUMPDEST 000008df: PUSH1 0x00 000008e1: SLOAD 000008e2: PUSH2 0x0100 000008e5: SWAP1 000008e6: DIV 000008e7: PUSH1 0xff 000008e9: AND 000008ea: ISZERO 000008eb: DUP1 000008ec: DUP1 000008ed: ISZERO 000008ee: PUSH2 0x08fe 000008f1: JUMPI 000008f2: POP 000008f3: PUSH1 0x00 000008f5: SLOAD 000008f6: PUSH1 0x01 000008f8: PUSH1 0xff 000008fa: SWAP1 000008fb: SWAP2 000008fc: AND 000008fd: LT 000008fe: JUMPDEST 000008ff: DUP1 00000900: PUSH2 0x0918 00000903: JUMPI 00000904: POP 00000905: ADDRESS 00000906: EXTCODESIZE 00000907: ISZERO 00000908: DUP1 00000909: ISZERO 0000090a: PUSH2 0x0918 0000090d: JUMPI 0000090e: POP 0000090f: PUSH1 0x00 00000911: SLOAD 00000912: PUSH1 0xff 00000914: AND 00000915: PUSH1 0x01 00000917: EQ 00000918: JUMPDEST 00000919: PUSH2 0x097b 0000091c: JUMPI 0000091d: PUSH1 0x40 0000091f: MLOAD 00000920: PUSH3 0x461bcd 00000924: PUSH1 0xe5 00000926: SHL 00000927: DUP2 00000928: MSTORE 00000929: PUSH1 0x20 0000092b: PUSH1 0x04 0000092d: DUP3 0000092e: ADD 0000092f: MSTORE 00000930: PUSH1 0x2e 00000932: PUSH1 0x24 00000934: DUP3 00000935: ADD 00000936: MSTORE 00000937: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561 00000958: PUSH1 0x44 0000095a: DUP3 0000095b: ADD 0000095c: MSTORE 0000095d: PUSH14 0x191e481a5b9a5d1a585b1a5e9959 0000096c: PUSH1 0x92 0000096e: SHL 0000096f: PUSH1 0x64 00000971: DUP3 00000972: ADD 00000973: MSTORE 00000974: PUSH1 0x84 00000976: ADD 00000977: PUSH2 0x03f6 0000097a: JUMP 0000097b: JUMPDEST 0000097c: PUSH1 0x00 0000097e: DUP1 0000097f: SLOAD 00000980: PUSH1 0xff 00000982: NOT 00000983: AND 00000984: PUSH1 0x01 00000986: OR 00000987: SWAP1 00000988: SSTORE 00000989: DUP1 0000098a: ISZERO 0000098b: PUSH2 0x099e 0000098e: JUMPI 0000098f: PUSH1 0x00 00000991: DUP1 00000992: SLOAD 00000993: PUSH2 0xff00 00000996: NOT 00000997: AND 00000998: PUSH2 0x0100 0000099b: OR 0000099c: SWAP1 0000099d: SSTORE 0000099e: JUMPDEST 0000099f: PUSH2 0x09a6 000009a2: PUSH2 0x0d8a 000009a5: JUMP 000009a6: JUMPDEST 000009a7: PUSH1 0x67 000009a9: DUP1 000009aa: SLOAD 000009ab: PUSH1 0x01 000009ad: PUSH1 0x01 000009af: PUSH1 0xa0 000009b1: SHL 000009b2: SUB 000009b3: NOT 000009b4: AND 000009b5: PUSH1 0x01 000009b7: PUSH1 0x01 000009b9: PUSH1 0xa0 000009bb: SHL 000009bc: SUB 000009bd: DUP5 000009be: AND 000009bf: OR 000009c0: SWAP1 000009c1: SSTORE 000009c2: DUP1 000009c3: ISZERO 000009c4: PUSH2 0x0a07 000009c7: JUMPI 000009c8: PUSH1 0x00 000009ca: DUP1 000009cb: SLOAD 000009cc: PUSH2 0xff00 000009cf: NOT 000009d0: AND 000009d1: SWAP1 000009d2: SSTORE 000009d3: PUSH1 0x40 000009d5: MLOAD 000009d6: PUSH1 0x01 000009d8: DUP2 000009d9: MSTORE 000009da: PUSH32 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498 000009fb: SWAP1 000009fc: PUSH1 0x20 000009fe: ADD 000009ff: PUSH1 0x40 00000a01: MLOAD 00000a02: DUP1 00000a03: SWAP2 00000a04: SUB 00000a05: SWAP1 00000a06: LOG1 00000a07: JUMPDEST 00000a08: POP 00000a09: POP 00000a0a: JUMP 00000a0b: JUMPDEST 00000a0c: PUSH2 0x0a13 00000a0f: PUSH2 0x0c8c 00000a12: JUMP 00000a13: JUMPDEST 00000a14: PUSH1 0x00 00000a16: DUP3 00000a17: DUP2 00000a18: MSTORE 00000a19: PUSH1 0x65 00000a1b: PUSH1 0x20 00000a1d: MSTORE 00000a1e: PUSH1 0x40 00000a20: SWAP1 00000a21: KECCAK256 00000a22: PUSH1 0x01 00000a24: ADD 00000a25: SLOAD 00000a26: DUP2 00000a27: GT 00000a28: PUSH2 0x0a86 00000a2b: JUMPI 00000a2c: PUSH1 0x40 00000a2e: MLOAD 00000a2f: PUSH3 0x461bcd 00000a33: PUSH1 0xe5 00000a35: SHL 00000a36: DUP2 00000a37: MSTORE 00000a38: PUSH1 0x20 00000a3a: PUSH1 0x04 00000a3c: DUP3 00000a3d: ADD 00000a3e: MSTORE 00000a3f: PUSH1 0x2a 00000a41: PUSH1 0x24 00000a43: DUP3 00000a44: ADD 00000a45: MSTORE 00000a46: PUSH32 0x636c61696d61626c65556e74696c206d75737420626520616674657220636c61 00000a67: PUSH1 0x44 00000a69: DUP3 00000a6a: ADD 00000a6b: MSTORE 00000a6c: PUSH10 0x696d61626c6546726f6d 00000a77: PUSH1 0xb0 00000a79: SHL 00000a7a: PUSH1 0x64 00000a7c: DUP3 00000a7d: ADD 00000a7e: MSTORE 00000a7f: PUSH1 0x84 00000a81: ADD 00000a82: PUSH2 0x03f6 00000a85: JUMP 00000a86: JUMPDEST 00000a87: PUSH1 0x00 00000a89: SWAP2 00000a8a: DUP3 00000a8b: MSTORE 00000a8c: PUSH1 0x65 00000a8e: PUSH1 0x20 00000a90: MSTORE 00000a91: PUSH1 0x40 00000a93: SWAP1 00000a94: SWAP2 00000a95: KECCAK256 00000a96: PUSH1 0x02 00000a98: ADD 00000a99: SSTORE 00000a9a: JUMP 00000a9b: JUMPDEST 00000a9c: PUSH1 0x00 00000a9e: DUP4 00000a9f: DUP2 00000aa0: MSTORE 00000aa1: PUSH1 0x65 00000aa3: PUSH1 0x20 00000aa5: MSTORE 00000aa6: PUSH1 0x40 00000aa8: DUP2 00000aa9: KECCAK256 00000aaa: PUSH1 0x03 00000aac: ADD 00000aad: DUP1 00000aae: SLOAD 00000aaf: DUP3 00000ab0: SWAP2 00000ab1: SWAP1 00000ab2: PUSH2 0x0aba 00000ab5: SWAP1 00000ab6: PUSH2 0x190f 00000ab9: JUMP 00000aba: JUMPDEST 00000abb: DUP1 00000abc: PUSH1 0x1f 00000abe: ADD 00000abf: PUSH1 0x20 00000ac1: DUP1 00000ac2: SWAP2 00000ac3: DIV 00000ac4: MUL 00000ac5: PUSH1 0x20 00000ac7: ADD 00000ac8: PUSH1 0x40 00000aca: MLOAD 00000acb: SWAP1 00000acc: DUP2 00000acd: ADD 00000ace: PUSH1 0x40 00000ad0: MSTORE 00000ad1: DUP1 00000ad2: SWAP3 00000ad3: SWAP2 00000ad4: SWAP1 00000ad5: DUP2 00000ad6: DUP2 00000ad7: MSTORE 00000ad8: PUSH1 0x20 00000ada: ADD 00000adb: DUP3 00000adc: DUP1 00000add: SLOAD 00000ade: PUSH2 0x0ae6 00000ae1: SWAP1 00000ae2: PUSH2 0x190f 00000ae5: JUMP 00000ae6: JUMPDEST 00000ae7: DUP1 00000ae8: ISZERO 00000ae9: PUSH2 0x0b33 00000aec: JUMPI 00000aed: DUP1 00000aee: PUSH1 0x1f 00000af0: LT 00000af1: PUSH2 0x0b08 00000af4: JUMPI 00000af5: PUSH2 0x0100 00000af8: DUP1 00000af9: DUP4 00000afa: SLOAD 00000afb: DIV 00000afc: MUL 00000afd: DUP4 00000afe: MSTORE 00000aff: SWAP2 00000b00: PUSH1 0x20 00000b02: ADD 00000b03: SWAP2 00000b04: PUSH2 0x0b33 00000b07: JUMP 00000b08: JUMPDEST 00000b09: DUP3 00000b0a: ADD 00000b0b: SWAP2 00000b0c: SWAP1 00000b0d: PUSH1 0x00 00000b0f: MSTORE 00000b10: PUSH1 0x20 00000b12: PUSH1 0x00 00000b14: KECCAK256 00000b15: SWAP1 00000b16: JUMPDEST 00000b17: DUP2 00000b18: SLOAD 00000b19: DUP2 00000b1a: MSTORE 00000b1b: SWAP1 00000b1c: PUSH1 0x01 00000b1e: ADD 00000b1f: SWAP1 00000b20: PUSH1 0x20 00000b22: ADD 00000b23: DUP1 00000b24: DUP4 00000b25: GT 00000b26: PUSH2 0x0b16 00000b29: JUMPI 00000b2a: DUP3 00000b2b: SWAP1 00000b2c: SUB 00000b2d: PUSH1 0x1f 00000b2f: AND 00000b30: DUP3 00000b31: ADD 00000b32: SWAP2 00000b33: JUMPDEST 00000b34: POP 00000b35: POP 00000b36: POP 00000b37: POP 00000b38: POP 00000b39: SWAP1 00000b3a: POP 00000b3b: PUSH1 0x00 00000b3d: DUP2 00000b3e: DUP8 00000b3f: DUP8 00000b40: DUP8 00000b41: PUSH1 0x40 00000b43: MLOAD 00000b44: PUSH1 0x20 00000b46: ADD 00000b47: PUSH2 0x0b53 00000b4a: SWAP5 00000b4b: SWAP4 00000b4c: SWAP3 00000b4d: SWAP2 00000b4e: SWAP1 00000b4f: PUSH2 0x179d 00000b52: JUMP 00000b53: JUMPDEST 00000b54: PUSH1 0x40 00000b56: MLOAD 00000b57: PUSH1 0x20 00000b59: DUP2 00000b5a: DUP4 00000b5b: SUB 00000b5c: SUB 00000b5d: DUP2 00000b5e: MSTORE 00000b5f: SWAP1 00000b60: PUSH1 0x40 00000b62: MSTORE 00000b63: DUP1 00000b64: MLOAD 00000b65: SWAP1 00000b66: PUSH1 0x20 00000b68: ADD 00000b69: KECCAK256 00000b6a: SWAP1 00000b6b: POP 00000b6c: PUSH1 0x00 00000b6e: PUSH2 0x0bce 00000b71: DUP6 00000b72: PUSH2 0x0bc8 00000b75: DUP5 00000b76: PUSH1 0x40 00000b78: MLOAD 00000b79: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000 00000b9a: PUSH1 0x20 00000b9c: DUP3 00000b9d: ADD 00000b9e: MSTORE 00000b9f: PUSH1 0x3c 00000ba1: DUP2 00000ba2: ADD 00000ba3: DUP3 00000ba4: SWAP1 00000ba5: MSTORE 00000ba6: PUSH1 0x00 00000ba8: SWAP1 00000ba9: PUSH1 0x5c 00000bab: ADD 00000bac: PUSH1 0x40 00000bae: MLOAD 00000baf: PUSH1 0x20 00000bb1: DUP2 00000bb2: DUP4 00000bb3: SUB 00000bb4: SUB 00000bb5: DUP2 00000bb6: MSTORE 00000bb7: SWAP1 00000bb8: PUSH1 0x40 00000bba: MSTORE 00000bbb: DUP1 00000bbc: MLOAD 00000bbd: SWAP1 00000bbe: PUSH1 0x20 00000bc0: ADD 00000bc1: KECCAK256 00000bc2: SWAP1 00000bc3: POP 00000bc4: SWAP2 00000bc5: SWAP1 00000bc6: POP 00000bc7: JUMP 00000bc8: JUMPDEST 00000bc9: SWAP1 00000bca: PUSH2 0x0db9 00000bcd: JUMP 00000bce: JUMPDEST 00000bcf: PUSH1 0x67 00000bd1: SLOAD 00000bd2: PUSH1 0x01 00000bd4: PUSH1 0x01 00000bd6: PUSH1 0xa0 00000bd8: SHL 00000bd9: SUB 00000bda: SWAP1 00000bdb: DUP2 00000bdc: AND 00000bdd: SWAP2 00000bde: AND 00000bdf: EQ 00000be0: SWAP9 00000be1: SWAP8 00000be2: POP 00000be3: POP 00000be4: POP 00000be5: POP 00000be6: POP 00000be7: POP 00000be8: POP 00000be9: POP 00000bea: JUMP 00000beb: JUMPDEST 00000bec: PUSH2 0x0bf3 00000bef: PUSH2 0x0c8c 00000bf2: JUMP 00000bf3: JUMPDEST 00000bf4: PUSH1 0x00 00000bf6: SWAP2 00000bf7: DUP3 00000bf8: MSTORE 00000bf9: PUSH1 0x65 00000bfb: PUSH1 0x20 00000bfd: MSTORE 00000bfe: PUSH1 0x40 00000c00: SWAP1 00000c01: SWAP2 00000c02: KECCAK256 00000c03: DUP1 00000c04: SLOAD 00000c05: PUSH1 0xff 00000c07: NOT 00000c08: AND 00000c09: SWAP2 00000c0a: ISZERO 00000c0b: ISZERO 00000c0c: SWAP2 00000c0d: SWAP1 00000c0e: SWAP2 00000c0f: OR 00000c10: SWAP1 00000c11: SSTORE 00000c12: JUMP 00000c13: JUMPDEST 00000c14: PUSH2 0x0c1b 00000c17: PUSH2 0x0c8c 00000c1a: JUMP 00000c1b: JUMPDEST 00000c1c: PUSH1 0x01 00000c1e: PUSH1 0x01 00000c20: PUSH1 0xa0 00000c22: SHL 00000c23: SUB 00000c24: DUP2 00000c25: AND 00000c26: PUSH2 0x0c80 00000c29: JUMPI 00000c2a: PUSH1 0x40 00000c2c: MLOAD 00000c2d: PUSH3 0x461bcd 00000c31: PUSH1 0xe5 00000c33: SHL 00000c34: DUP2 00000c35: MSTORE 00000c36: PUSH1 0x20 00000c38: PUSH1 0x04 00000c3a: DUP3 00000c3b: ADD 00000c3c: MSTORE 00000c3d: PUSH1 0x26 00000c3f: PUSH1 0x24 00000c41: DUP3 00000c42: ADD 00000c43: MSTORE 00000c44: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061 00000c65: PUSH1 0x44 00000c67: DUP3 00000c68: ADD 00000c69: MSTORE 00000c6a: PUSH6 0x646472657373 00000c71: PUSH1 0xd0 00000c73: SHL 00000c74: PUSH1 0x64 00000c76: DUP3 00000c77: ADD 00000c78: MSTORE 00000c79: PUSH1 0x84 00000c7b: ADD 00000c7c: PUSH2 0x03f6 00000c7f: JUMP 00000c80: JUMPDEST 00000c81: PUSH2 0x0c89 00000c84: DUP2 00000c85: PUSH2 0x0d38 00000c88: JUMP 00000c89: JUMPDEST 00000c8a: POP 00000c8b: JUMP 00000c8c: JUMPDEST 00000c8d: PUSH1 0x33 00000c8f: SLOAD 00000c90: PUSH1 0x01 00000c92: PUSH1 0x01 00000c94: PUSH1 0xa0 00000c96: SHL 00000c97: SUB 00000c98: AND 00000c99: CALLER 00000c9a: EQ 00000c9b: PUSH2 0x0789 00000c9e: JUMPI 00000c9f: PUSH1 0x40 00000ca1: MLOAD 00000ca2: PUSH3 0x461bcd 00000ca6: PUSH1 0xe5 00000ca8: SHL 00000ca9: DUP2 00000caa: MSTORE 00000cab: PUSH1 0x20 00000cad: PUSH1 0x04 00000caf: DUP3 00000cb0: ADD 00000cb1: DUP2 00000cb2: SWAP1 00000cb3: MSTORE 00000cb4: PUSH1 0x24 00000cb6: DUP3 00000cb7: ADD 00000cb8: MSTORE 00000cb9: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00000cda: PUSH1 0x44 00000cdc: DUP3 00000cdd: ADD 00000cde: MSTORE 00000cdf: PUSH1 0x64 00000ce1: ADD 00000ce2: PUSH2 0x03f6 00000ce5: JUMP 00000ce6: JUMPDEST 00000ce7: PUSH1 0x40 00000ce9: DUP1 00000cea: MLOAD 00000ceb: PUSH1 0x01 00000ced: PUSH1 0x01 00000cef: PUSH1 0xa0 00000cf1: SHL 00000cf2: SUB 00000cf3: DUP5 00000cf4: AND 00000cf5: PUSH1 0x24 00000cf7: DUP3 00000cf8: ADD 00000cf9: MSTORE 00000cfa: PUSH1 0x44 00000cfc: DUP1 00000cfd: DUP3 00000cfe: ADD 00000cff: DUP5 00000d00: SWAP1 00000d01: MSTORE 00000d02: DUP3 00000d03: MLOAD 00000d04: DUP1 00000d05: DUP4 00000d06: SUB 00000d07: SWAP1 00000d08: SWAP2 00000d09: ADD 00000d0a: DUP2 00000d0b: MSTORE 00000d0c: PUSH1 0x64 00000d0e: SWAP1 00000d0f: SWAP2 00000d10: ADD 00000d11: SWAP1 00000d12: SWAP2 00000d13: MSTORE 00000d14: PUSH1 0x20 00000d16: DUP2 00000d17: ADD 00000d18: DUP1 00000d19: MLOAD 00000d1a: PUSH1 0x01 00000d1c: PUSH1 0x01 00000d1e: PUSH1 0xe0 00000d20: SHL 00000d21: SUB 00000d22: AND 00000d23: PUSH4 0xa9059cbb 00000d28: PUSH1 0xe0 00000d2a: SHL 00000d2b: OR 00000d2c: SWAP1 00000d2d: MSTORE 00000d2e: PUSH2 0x07b8 00000d31: SWAP1 00000d32: DUP5 00000d33: SWAP1 00000d34: PUSH2 0x0ddd 00000d37: JUMP 00000d38: JUMPDEST 00000d39: PUSH1 0x33 00000d3b: DUP1 00000d3c: SLOAD 00000d3d: PUSH1 0x01 00000d3f: PUSH1 0x01 00000d41: PUSH1 0xa0 00000d43: SHL 00000d44: SUB 00000d45: DUP4 00000d46: DUP2 00000d47: AND 00000d48: PUSH1 0x01 00000d4a: PUSH1 0x01 00000d4c: PUSH1 0xa0 00000d4e: SHL 00000d4f: SUB 00000d50: NOT 00000d51: DUP4 00000d52: AND 00000d53: DUP2 00000d54: OR 00000d55: SWAP1 00000d56: SWAP4 00000d57: SSTORE 00000d58: PUSH1 0x40 00000d5a: MLOAD 00000d5b: SWAP2 00000d5c: AND 00000d5d: SWAP2 00000d5e: SWAP1 00000d5f: DUP3 00000d60: SWAP1 00000d61: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00000d82: SWAP1 00000d83: PUSH1 0x00 00000d85: SWAP1 00000d86: LOG3 00000d87: POP 00000d88: POP 00000d89: JUMP 00000d8a: JUMPDEST 00000d8b: PUSH1 0x00 00000d8d: SLOAD 00000d8e: PUSH2 0x0100 00000d91: SWAP1 00000d92: DIV 00000d93: PUSH1 0xff 00000d95: AND 00000d96: PUSH2 0x0db1 00000d99: JUMPI 00000d9a: PUSH1 0x40 00000d9c: MLOAD 00000d9d: PUSH3 0x461bcd 00000da1: PUSH1 0xe5 00000da3: SHL 00000da4: DUP2 00000da5: MSTORE 00000da6: PUSH1 0x04 00000da8: ADD 00000da9: PUSH2 0x03f6 00000dac: SWAP1 00000dad: PUSH2 0x1874 00000db0: JUMP 00000db1: JUMPDEST 00000db2: PUSH2 0x0789 00000db5: PUSH2 0x0eaf 00000db8: JUMP 00000db9: JUMPDEST 00000dba: PUSH1 0x00 00000dbc: DUP1 00000dbd: PUSH1 0x00 00000dbf: PUSH2 0x0dc8 00000dc2: DUP6 00000dc3: DUP6 00000dc4: PUSH2 0x0edf 00000dc7: JUMP 00000dc8: JUMPDEST 00000dc9: SWAP2 00000dca: POP 00000dcb: SWAP2 00000dcc: POP 00000dcd: PUSH2 0x0dd5 00000dd0: DUP2 00000dd1: PUSH2 0x0f4f 00000dd4: JUMP 00000dd5: JUMPDEST 00000dd6: POP 00000dd7: SWAP4 00000dd8: SWAP3 00000dd9: POP 00000dda: POP 00000ddb: POP 00000ddc: JUMP 00000ddd: JUMPDEST 00000dde: PUSH1 0x00 00000de0: PUSH2 0x0e32 00000de3: DUP3 00000de4: PUSH1 0x40 00000de6: MLOAD 00000de7: DUP1 00000de8: PUSH1 0x40 00000dea: ADD 00000deb: PUSH1 0x40 00000ded: MSTORE 00000dee: DUP1 00000def: PUSH1 0x20 00000df1: DUP2 00000df2: MSTORE 00000df3: PUSH1 0x20 00000df5: ADD 00000df6: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564 00000e17: DUP2 00000e18: MSTORE 00000e19: POP 00000e1a: DUP6 00000e1b: PUSH1 0x01 00000e1d: PUSH1 0x01 00000e1f: PUSH1 0xa0 00000e21: SHL 00000e22: SUB 00000e23: AND 00000e24: PUSH2 0x1150 00000e27: SWAP1 00000e28: SWAP3 00000e29: SWAP2 00000e2a: SWAP1 00000e2b: PUSH4 0xffffffff 00000e30: AND 00000e31: JUMP 00000e32: JUMPDEST 00000e33: DUP1 00000e34: MLOAD 00000e35: SWAP1 00000e36: SWAP2 00000e37: POP 00000e38: ISZERO 00000e39: PUSH2 0x07b8 00000e3c: JUMPI 00000e3d: DUP1 00000e3e: DUP1 00000e3f: PUSH1 0x20 00000e41: ADD 00000e42: SWAP1 00000e43: MLOAD 00000e44: DUP2 00000e45: ADD 00000e46: SWAP1 00000e47: PUSH2 0x0e50 00000e4a: SWAP2 00000e4b: SWAP1 00000e4c: PUSH2 0x15f8 00000e4f: JUMP 00000e50: JUMPDEST 00000e51: PUSH2 0x07b8 00000e54: JUMPI 00000e55: PUSH1 0x40 00000e57: MLOAD 00000e58: PUSH3 0x461bcd 00000e5c: PUSH1 0xe5 00000e5e: SHL 00000e5f: DUP2 00000e60: MSTORE 00000e61: PUSH1 0x20 00000e63: PUSH1 0x04 00000e65: DUP3 00000e66: ADD 00000e67: MSTORE 00000e68: PUSH1 0x2a 00000e6a: PUSH1 0x24 00000e6c: DUP3 00000e6d: ADD 00000e6e: MSTORE 00000e6f: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e 00000e90: PUSH1 0x44 00000e92: DUP3 00000e93: ADD 00000e94: MSTORE 00000e95: PUSH10 0x1bdd081cdd58d8d95959 00000ea0: PUSH1 0xb2 00000ea2: SHL 00000ea3: PUSH1 0x64 00000ea5: DUP3 00000ea6: ADD 00000ea7: MSTORE 00000ea8: PUSH1 0x84 00000eaa: ADD 00000eab: PUSH2 0x03f6 00000eae: JUMP 00000eaf: JUMPDEST 00000eb0: PUSH1 0x00 00000eb2: SLOAD 00000eb3: PUSH2 0x0100 00000eb6: SWAP1 00000eb7: DIV 00000eb8: PUSH1 0xff 00000eba: AND 00000ebb: PUSH2 0x0ed6 00000ebe: JUMPI 00000ebf: PUSH1 0x40 00000ec1: MLOAD 00000ec2: PUSH3 0x461bcd 00000ec6: PUSH1 0xe5 00000ec8: SHL 00000ec9: DUP2 00000eca: MSTORE 00000ecb: PUSH1 0x04 00000ecd: ADD 00000ece: PUSH2 0x03f6 00000ed1: SWAP1 00000ed2: PUSH2 0x1874 00000ed5: JUMP 00000ed6: JUMPDEST 00000ed7: PUSH2 0x0789 00000eda: CALLER 00000edb: PUSH2 0x0d38 00000ede: JUMP 00000edf: JUMPDEST 00000ee0: PUSH1 0x00 00000ee2: DUP1 00000ee3: DUP3 00000ee4: MLOAD 00000ee5: PUSH1 0x41 00000ee7: EQ 00000ee8: ISZERO 00000ee9: PUSH2 0x0f16 00000eec: JUMPI 00000eed: PUSH1 0x20 00000eef: DUP4 00000ef0: ADD 00000ef1: MLOAD 00000ef2: PUSH1 0x40 00000ef4: DUP5 00000ef5: ADD 00000ef6: MLOAD 00000ef7: PUSH1 0x60 00000ef9: DUP6 00000efa: ADD 00000efb: MLOAD 00000efc: PUSH1 0x00 00000efe: BYTE 00000eff: PUSH2 0x0f0a 00000f02: DUP8 00000f03: DUP3 00000f04: DUP6 00000f05: DUP6 00000f06: PUSH2 0x1169 00000f09: JUMP 00000f0a: JUMPDEST 00000f0b: SWAP5 00000f0c: POP 00000f0d: SWAP5 00000f0e: POP 00000f0f: POP 00000f10: POP 00000f11: POP 00000f12: PUSH2 0x0f48 00000f15: JUMP 00000f16: JUMPDEST 00000f17: DUP3 00000f18: MLOAD 00000f19: PUSH1 0x40 00000f1b: EQ 00000f1c: ISZERO 00000f1d: PUSH2 0x0f40 00000f20: JUMPI 00000f21: PUSH1 0x20 00000f23: DUP4 00000f24: ADD 00000f25: MLOAD 00000f26: PUSH1 0x40 00000f28: DUP5 00000f29: ADD 00000f2a: MLOAD 00000f2b: PUSH2 0x0f35 00000f2e: DUP7 00000f2f: DUP4 00000f30: DUP4 00000f31: PUSH2 0x1256 00000f34: JUMP 00000f35: JUMPDEST 00000f36: SWAP4 00000f37: POP 00000f38: SWAP4 00000f39: POP 00000f3a: POP 00000f3b: POP 00000f3c: PUSH2 0x0f48 00000f3f: JUMP 00000f40: JUMPDEST 00000f41: POP 00000f42: PUSH1 0x00 00000f44: SWAP1 00000f45: POP 00000f46: PUSH1 0x02 00000f48: JUMPDEST 00000f49: SWAP3 00000f4a: POP 00000f4b: SWAP3 00000f4c: SWAP1 00000f4d: POP 00000f4e: JUMP 00000f4f: JUMPDEST 00000f50: PUSH1 0x00 00000f52: DUP2 00000f53: PUSH1 0x04 00000f55: DUP2 00000f56: GT 00000f57: ISZERO 00000f58: PUSH2 0x0f71 00000f5b: JUMPI 00000f5c: PUSH4 0x4e487b71 00000f61: PUSH1 0xe0 00000f63: SHL 00000f64: PUSH1 0x00 00000f66: MSTORE 00000f67: PUSH1 0x21 00000f69: PUSH1 0x04 00000f6b: MSTORE 00000f6c: PUSH1 0x24 00000f6e: PUSH1 0x00 00000f70: REVERT 00000f71: JUMPDEST 00000f72: EQ 00000f73: ISZERO 00000f74: PUSH2 0x0f7a 00000f77: JUMPI 00000f78: POP 00000f79: JUMP 00000f7a: JUMPDEST 00000f7b: PUSH1 0x01 00000f7d: DUP2 00000f7e: PUSH1 0x04 00000f80: DUP2 00000f81: GT 00000f82: ISZERO 00000f83: PUSH2 0x0f9c 00000f86: JUMPI 00000f87: PUSH4 0x4e487b71 00000f8c: PUSH1 0xe0 00000f8e: SHL 00000f8f: PUSH1 0x00 00000f91: MSTORE 00000f92: PUSH1 0x21 00000f94: PUSH1 0x04 00000f96: MSTORE 00000f97: PUSH1 0x24 00000f99: PUSH1 0x00 00000f9b: REVERT 00000f9c: JUMPDEST 00000f9d: EQ 00000f9e: ISZERO 00000f9f: PUSH2 0x0fea 00000fa2: JUMPI 00000fa3: PUSH1 0x40 00000fa5: MLOAD 00000fa6: PUSH3 0x461bcd 00000faa: PUSH1 0xe5 00000fac: SHL 00000fad: DUP2 00000fae: MSTORE 00000faf: PUSH1 0x20 00000fb1: PUSH1 0x04 00000fb3: DUP3 00000fb4: ADD 00000fb5: MSTORE 00000fb6: PUSH1 0x18 00000fb8: PUSH1 0x24 00000fba: DUP3 00000fbb: ADD 00000fbc: MSTORE 00000fbd: PUSH32 0x45434453413a20696e76616c6964207369676e61747572650000000000000000 00000fde: PUSH1 0x44 00000fe0: DUP3 00000fe1: ADD 00000fe2: MSTORE 00000fe3: PUSH1 0x64 00000fe5: ADD 00000fe6: PUSH2 0x03f6 00000fe9: JUMP 00000fea: JUMPDEST 00000feb: PUSH1 0x02 00000fed: DUP2 00000fee: PUSH1 0x04 00000ff0: DUP2 00000ff1: GT 00000ff2: ISZERO 00000ff3: PUSH2 0x100c 00000ff6: JUMPI 00000ff7: PUSH4 0x4e487b71 00000ffc: PUSH1 0xe0 00000ffe: SHL 00000fff: PUSH1 0x00 00001001: MSTORE 00001002: PUSH1 0x21 00001004: PUSH1 0x04 00001006: MSTORE 00001007: PUSH1 0x24 00001009: PUSH1 0x00 0000100b: REVERT 0000100c: JUMPDEST 0000100d: EQ 0000100e: ISZERO 0000100f: PUSH2 0x105a 00001012: JUMPI 00001013: PUSH1 0x40 00001015: MLOAD 00001016: PUSH3 0x461bcd 0000101a: PUSH1 0xe5 0000101c: SHL 0000101d: DUP2 0000101e: MSTORE 0000101f: PUSH1 0x20 00001021: PUSH1 0x04 00001023: DUP3 00001024: ADD 00001025: MSTORE 00001026: PUSH1 0x1f 00001028: PUSH1 0x24 0000102a: DUP3 0000102b: ADD 0000102c: MSTORE 0000102d: PUSH32 0x45434453413a20696e76616c6964207369676e6174757265206c656e67746800 0000104e: PUSH1 0x44 00001050: DUP3 00001051: ADD 00001052: MSTORE 00001053: PUSH1 0x64 00001055: ADD 00001056: PUSH2 0x03f6 00001059: JUMP 0000105a: JUMPDEST 0000105b: PUSH1 0x03 0000105d: DUP2 0000105e: PUSH1 0x04 00001060: DUP2 00001061: GT 00001062: ISZERO 00001063: PUSH2 0x107c 00001066: JUMPI 00001067: PUSH4 0x4e487b71 0000106c: PUSH1 0xe0 0000106e: SHL 0000106f: PUSH1 0x00 00001071: MSTORE 00001072: PUSH1 0x21 00001074: PUSH1 0x04 00001076: MSTORE 00001077: PUSH1 0x24 00001079: PUSH1 0x00 0000107b: REVERT 0000107c: JUMPDEST 0000107d: EQ 0000107e: ISZERO 0000107f: PUSH2 0x10d5 00001082: JUMPI 00001083: PUSH1 0x40 00001085: MLOAD 00001086: PUSH3 0x461bcd 0000108a: PUSH1 0xe5 0000108c: SHL 0000108d: DUP2 0000108e: MSTORE 0000108f: PUSH1 0x20 00001091: PUSH1 0x04 00001093: DUP3 00001094: ADD 00001095: MSTORE 00001096: PUSH1 0x22 00001098: PUSH1 0x24 0000109a: DUP3 0000109b: ADD 0000109c: MSTORE 0000109d: PUSH32 0x45434453413a20696e76616c6964207369676e6174757265202773272076616c 000010be: PUSH1 0x44 000010c0: DUP3 000010c1: ADD 000010c2: MSTORE 000010c3: PUSH2 0x7565 000010c6: PUSH1 0xf0 000010c8: SHL 000010c9: PUSH1 0x64 000010cb: DUP3 000010cc: ADD 000010cd: MSTORE 000010ce: PUSH1 0x84 000010d0: ADD 000010d1: PUSH2 0x03f6 000010d4: JUMP 000010d5: JUMPDEST 000010d6: PUSH1 0x04 000010d8: DUP2 000010d9: PUSH1 0x04 000010db: DUP2 000010dc: GT 000010dd: ISZERO 000010de: PUSH2 0x10f7 000010e1: JUMPI 000010e2: PUSH4 0x4e487b71 000010e7: PUSH1 0xe0 000010e9: SHL 000010ea: PUSH1 0x00 000010ec: MSTORE 000010ed: PUSH1 0x21 000010ef: PUSH1 0x04 000010f1: MSTORE 000010f2: PUSH1 0x24 000010f4: PUSH1 0x00 000010f6: REVERT 000010f7: JUMPDEST 000010f8: EQ 000010f9: ISZERO 000010fa: PUSH2 0x0c89 000010fd: JUMPI 000010fe: PUSH1 0x40 00001100: MLOAD 00001101: PUSH3 0x461bcd 00001105: PUSH1 0xe5 00001107: SHL 00001108: DUP2 00001109: MSTORE 0000110a: PUSH1 0x20 0000110c: PUSH1 0x04 0000110e: DUP3 0000110f: ADD 00001110: MSTORE 00001111: PUSH1 0x22 00001113: PUSH1 0x24 00001115: DUP3 00001116: ADD 00001117: MSTORE 00001118: PUSH32 0x45434453413a20696e76616c6964207369676e6174757265202776272076616c 00001139: PUSH1 0x44 0000113b: DUP3 0000113c: ADD 0000113d: MSTORE 0000113e: PUSH2 0x7565 00001141: PUSH1 0xf0 00001143: SHL 00001144: PUSH1 0x64 00001146: DUP3 00001147: ADD 00001148: MSTORE 00001149: PUSH1 0x84 0000114b: ADD 0000114c: PUSH2 0x03f6 0000114f: JUMP 00001150: JUMPDEST 00001151: PUSH1 0x60 00001153: PUSH2 0x115f 00001156: DUP5 00001157: DUP5 00001158: PUSH1 0x00 0000115a: DUP6 0000115b: PUSH2 0x128f 0000115e: JUMP 0000115f: JUMPDEST 00001160: SWAP1 00001161: POP 00001162: JUMPDEST 00001163: SWAP4 00001164: SWAP3 00001165: POP 00001166: POP 00001167: POP 00001168: JUMP 00001169: JUMPDEST 0000116a: PUSH1 0x00 0000116c: DUP1 0000116d: PUSH32 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 0000118e: DUP4 0000118f: GT 00001190: ISZERO 00001191: PUSH2 0x11a0 00001194: JUMPI 00001195: POP 00001196: PUSH1 0x00 00001198: SWAP1 00001199: POP 0000119a: PUSH1 0x03 0000119c: PUSH2 0x124d 0000119f: JUMP 000011a0: JUMPDEST 000011a1: DUP5 000011a2: PUSH1 0xff 000011a4: AND 000011a5: PUSH1 0x1b 000011a7: EQ 000011a8: ISZERO 000011a9: DUP1 000011aa: ISZERO 000011ab: PUSH2 0x11b8 000011ae: JUMPI 000011af: POP 000011b0: DUP5 000011b1: PUSH1 0xff 000011b3: AND 000011b4: PUSH1 0x1c 000011b6: EQ 000011b7: ISZERO 000011b8: JUMPDEST 000011b9: ISZERO 000011ba: PUSH2 0x11c9 000011bd: JUMPI 000011be: POP 000011bf: PUSH1 0x00 000011c1: SWAP1 000011c2: POP 000011c3: PUSH1 0x04 000011c5: PUSH2 0x124d 000011c8: JUMP 000011c9: JUMPDEST 000011ca: PUSH1 0x40 000011cc: DUP1 000011cd: MLOAD 000011ce: PUSH1 0x00 000011d0: DUP1 000011d1: DUP3 000011d2: MSTORE 000011d3: PUSH1 0x20 000011d5: DUP3 000011d6: ADD 000011d7: DUP1 000011d8: DUP5 000011d9: MSTORE 000011da: DUP10 000011db: SWAP1 000011dc: MSTORE 000011dd: PUSH1 0xff 000011df: DUP9 000011e0: AND 000011e1: SWAP3 000011e2: DUP3 000011e3: ADD 000011e4: SWAP3 000011e5: SWAP1 000011e6: SWAP3 000011e7: MSTORE 000011e8: PUSH1 0x60 000011ea: DUP2 000011eb: ADD 000011ec: DUP7 000011ed: SWAP1 000011ee: MSTORE 000011ef: PUSH1 0x80 000011f1: DUP2 000011f2: ADD 000011f3: DUP6 000011f4: SWAP1 000011f5: MSTORE 000011f6: PUSH1 0x01 000011f8: SWAP1 000011f9: PUSH1 0xa0 000011fb: ADD 000011fc: PUSH1 0x20 000011fe: PUSH1 0x40 00001200: MLOAD 00001201: PUSH1 0x20 00001203: DUP2 00001204: SUB 00001205: SWAP1 00001206: DUP1 00001207: DUP5 00001208: SUB 00001209: SWAP1 0000120a: DUP6 0000120b: GAS 0000120c: STATICCALL 0000120d: ISZERO 0000120e: DUP1 0000120f: ISZERO 00001210: PUSH2 0x121d 00001213: JUMPI 00001214: RETURNDATASIZE 00001215: PUSH1 0x00 00001217: DUP1 00001218: RETURNDATACOPY 00001219: RETURNDATASIZE 0000121a: PUSH1 0x00 0000121c: REVERT 0000121d: JUMPDEST 0000121e: POP 0000121f: POP 00001220: PUSH1 0x40 00001222: MLOAD 00001223: PUSH1 0x1f 00001225: NOT 00001226: ADD 00001227: MLOAD 00001228: SWAP2 00001229: POP 0000122a: POP 0000122b: PUSH1 0x01 0000122d: PUSH1 0x01 0000122f: PUSH1 0xa0 00001231: SHL 00001232: SUB 00001233: DUP2 00001234: AND 00001235: PUSH2 0x1246 00001238: JUMPI 00001239: PUSH1 0x00 0000123b: PUSH1 0x01 0000123d: SWAP3 0000123e: POP 0000123f: SWAP3 00001240: POP 00001241: POP 00001242: PUSH2 0x124d 00001245: JUMP 00001246: JUMPDEST 00001247: SWAP2 00001248: POP 00001249: PUSH1 0x00 0000124b: SWAP1 0000124c: POP 0000124d: JUMPDEST 0000124e: SWAP5 0000124f: POP 00001250: SWAP5 00001251: SWAP3 00001252: POP 00001253: POP 00001254: POP 00001255: JUMP 00001256: JUMPDEST 00001257: PUSH1 0x00 00001259: DUP1 0000125a: PUSH1 0x01 0000125c: PUSH1 0x01 0000125e: PUSH1 0xff 00001260: SHL 00001261: SUB 00001262: DUP4 00001263: AND 00001264: DUP2 00001265: PUSH2 0x1273 00001268: PUSH1 0xff 0000126a: DUP7 0000126b: SWAP1 0000126c: SHR 0000126d: PUSH1 0x1b 0000126f: PUSH2 0x18bf 00001272: JUMP 00001273: JUMPDEST 00001274: SWAP1 00001275: POP 00001276: PUSH2 0x1281 00001279: DUP8 0000127a: DUP3 0000127b: DUP9 0000127c: DUP6 0000127d: PUSH2 0x1169 00001280: JUMP 00001281: JUMPDEST 00001282: SWAP4 00001283: POP 00001284: SWAP4 00001285: POP 00001286: POP 00001287: POP 00001288: SWAP4 00001289: POP 0000128a: SWAP4 0000128b: SWAP2 0000128c: POP 0000128d: POP 0000128e: JUMP 0000128f: JUMPDEST 00001290: PUSH1 0x60 00001292: DUP3 00001293: SELFBALANCE 00001294: LT 00001295: ISZERO 00001296: PUSH2 0x12f0 00001299: JUMPI 0000129a: PUSH1 0x40 0000129c: MLOAD 0000129d: PUSH3 0x461bcd 000012a1: PUSH1 0xe5 000012a3: SHL 000012a4: DUP2 000012a5: MSTORE 000012a6: PUSH1 0x20 000012a8: PUSH1 0x04 000012aa: DUP3 000012ab: ADD 000012ac: MSTORE 000012ad: PUSH1 0x26 000012af: PUSH1 0x24 000012b1: DUP3 000012b2: ADD 000012b3: MSTORE 000012b4: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f 000012d5: PUSH1 0x44 000012d7: DUP3 000012d8: ADD 000012d9: MSTORE 000012da: PUSH6 0x1c8818d85b1b 000012e1: PUSH1 0xd2 000012e3: SHL 000012e4: PUSH1 0x64 000012e6: DUP3 000012e7: ADD 000012e8: MSTORE 000012e9: PUSH1 0x84 000012eb: ADD 000012ec: PUSH2 0x03f6 000012ef: JUMP 000012f0: JUMPDEST 000012f1: PUSH1 0x01 000012f3: PUSH1 0x01 000012f5: PUSH1 0xa0 000012f7: SHL 000012f8: SUB 000012f9: DUP6 000012fa: AND 000012fb: EXTCODESIZE 000012fc: PUSH2 0x1347 000012ff: JUMPI 00001300: PUSH1 0x40 00001302: MLOAD 00001303: PUSH3 0x461bcd 00001307: PUSH1 0xe5 00001309: SHL 0000130a: DUP2 0000130b: MSTORE 0000130c: PUSH1 0x20 0000130e: PUSH1 0x04 00001310: DUP3 00001311: ADD 00001312: MSTORE 00001313: PUSH1 0x1d 00001315: PUSH1 0x24 00001317: DUP3 00001318: ADD 00001319: MSTORE 0000131a: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 0000133b: PUSH1 0x44 0000133d: DUP3 0000133e: ADD 0000133f: MSTORE 00001340: PUSH1 0x64 00001342: ADD 00001343: PUSH2 0x03f6 00001346: JUMP 00001347: JUMPDEST 00001348: PUSH1 0x00 0000134a: DUP1 0000134b: DUP7 0000134c: PUSH1 0x01 0000134e: PUSH1 0x01 00001350: PUSH1 0xa0 00001352: SHL 00001353: SUB 00001354: AND 00001355: DUP6 00001356: DUP8 00001357: PUSH1 0x40 00001359: MLOAD 0000135a: PUSH2 0x1363 0000135d: SWAP2 0000135e: SWAP1 0000135f: PUSH2 0x1781 00001362: JUMP 00001363: JUMPDEST 00001364: PUSH1 0x00 00001366: PUSH1 0x40 00001368: MLOAD 00001369: DUP1 0000136a: DUP4 0000136b: SUB 0000136c: DUP2 0000136d: DUP6 0000136e: DUP8 0000136f: GAS 00001370: CALL 00001371: SWAP3 00001372: POP 00001373: POP 00001374: POP 00001375: RETURNDATASIZE 00001376: DUP1 00001377: PUSH1 0x00 00001379: DUP2 0000137a: EQ 0000137b: PUSH2 0x13a0 0000137e: JUMPI 0000137f: PUSH1 0x40 00001381: MLOAD 00001382: SWAP2 00001383: POP 00001384: PUSH1 0x1f 00001386: NOT 00001387: PUSH1 0x3f 00001389: RETURNDATASIZE 0000138a: ADD 0000138b: AND 0000138c: DUP3 0000138d: ADD 0000138e: PUSH1 0x40 00001390: MSTORE 00001391: RETURNDATASIZE 00001392: DUP3 00001393: MSTORE 00001394: RETURNDATASIZE 00001395: PUSH1 0x00 00001397: PUSH1 0x20 00001399: DUP5 0000139a: ADD 0000139b: RETURNDATACOPY 0000139c: PUSH2 0x13a5 0000139f: JUMP 000013a0: JUMPDEST 000013a1: PUSH1 0x60 000013a3: SWAP2 000013a4: POP 000013a5: JUMPDEST 000013a6: POP 000013a7: SWAP2 000013a8: POP 000013a9: SWAP2 000013aa: POP 000013ab: PUSH2 0x13b5 000013ae: DUP3 000013af: DUP3 000013b0: DUP7 000013b1: PUSH2 0x13c0 000013b4: JUMP 000013b5: JUMPDEST 000013b6: SWAP8 000013b7: SWAP7 000013b8: POP 000013b9: POP 000013ba: POP 000013bb: POP 000013bc: POP 000013bd: POP 000013be: POP 000013bf: JUMP 000013c0: JUMPDEST 000013c1: PUSH1 0x60 000013c3: DUP4 000013c4: ISZERO 000013c5: PUSH2 0x13cf 000013c8: JUMPI 000013c9: POP 000013ca: DUP2 000013cb: PUSH2 0x1162 000013ce: JUMP 000013cf: JUMPDEST 000013d0: DUP3 000013d1: MLOAD 000013d2: ISZERO 000013d3: PUSH2 0x13df 000013d6: JUMPI 000013d7: DUP3 000013d8: MLOAD 000013d9: DUP1 000013da: DUP5 000013db: PUSH1 0x20 000013dd: ADD 000013de: REVERT 000013df: JUMPDEST 000013e0: DUP2 000013e1: PUSH1 0x40 000013e3: MLOAD 000013e4: PUSH3 0x461bcd 000013e8: PUSH1 0xe5 000013ea: SHL 000013eb: DUP2 000013ec: MSTORE 000013ed: PUSH1 0x04 000013ef: ADD 000013f0: PUSH2 0x03f6 000013f3: SWAP2 000013f4: SWAP1 000013f5: PUSH2 0x1816 000013f8: JUMP 000013f9: JUMPDEST 000013fa: DUP3 000013fb: DUP1 000013fc: SLOAD 000013fd: PUSH2 0x1405 00001400: SWAP1 00001401: PUSH2 0x190f 00001404: JUMP 00001405: JUMPDEST 00001406: SWAP1 00001407: PUSH1 0x00 00001409: MSTORE 0000140a: PUSH1 0x20 0000140c: PUSH1 0x00 0000140e: KECCAK256 0000140f: SWAP1 00001410: PUSH1 0x1f 00001412: ADD 00001413: PUSH1 0x20 00001415: SWAP1 00001416: DIV 00001417: DUP2 00001418: ADD 00001419: SWAP3 0000141a: DUP3 0000141b: PUSH2 0x1427 0000141e: JUMPI 0000141f: PUSH1 0x00 00001421: DUP6 00001422: SSTORE 00001423: PUSH2 0x146d 00001426: JUMP 00001427: JUMPDEST 00001428: DUP3 00001429: PUSH1 0x1f 0000142b: LT 0000142c: PUSH2 0x1440 0000142f: JUMPI 00001430: DUP1 00001431: MLOAD 00001432: PUSH1 0xff 00001434: NOT 00001435: AND 00001436: DUP4 00001437: DUP1 00001438: ADD 00001439: OR 0000143a: DUP6 0000143b: SSTORE 0000143c: PUSH2 0x146d 0000143f: JUMP 00001440: JUMPDEST 00001441: DUP3 00001442: DUP1 00001443: ADD 00001444: PUSH1 0x01 00001446: ADD 00001447: DUP6 00001448: SSTORE 00001449: DUP3 0000144a: ISZERO 0000144b: PUSH2 0x146d 0000144e: JUMPI 0000144f: SWAP2 00001450: DUP3 00001451: ADD 00001452: JUMPDEST 00001453: DUP3 00001454: DUP2 00001455: GT 00001456: ISZERO 00001457: PUSH2 0x146d 0000145a: JUMPI 0000145b: DUP3 0000145c: MLOAD 0000145d: DUP3 0000145e: SSTORE 0000145f: SWAP2 00001460: PUSH1 0x20 00001462: ADD 00001463: SWAP2 00001464: SWAP1 00001465: PUSH1 0x01 00001467: ADD 00001468: SWAP1 00001469: PUSH2 0x1452 0000146c: JUMP 0000146d: JUMPDEST 0000146e: POP 0000146f: PUSH2 0x1479 00001472: SWAP3 00001473: SWAP2 00001474: POP 00001475: PUSH2 0x147d 00001478: JUMP 00001479: JUMPDEST 0000147a: POP 0000147b: SWAP1 0000147c: JUMP 0000147d: JUMPDEST 0000147e: JUMPDEST 0000147f: DUP1 00001480: DUP3 00001481: GT 00001482: ISZERO 00001483: PUSH2 0x1479 00001486: JUMPI 00001487: PUSH1 0x00 00001489: DUP2 0000148a: SSTORE 0000148b: PUSH1 0x01 0000148d: ADD 0000148e: PUSH2 0x147e 00001491: JUMP 00001492: JUMPDEST 00001493: PUSH1 0x00 00001495: PUSH8 0xffffffffffffffff 0000149e: DUP1 0000149f: DUP5 000014a0: GT 000014a1: ISZERO 000014a2: PUSH2 0x14ad 000014a5: JUMPI 000014a6: PUSH2 0x14ad 000014a9: PUSH2 0x194a 000014ac: JUMP 000014ad: JUMPDEST 000014ae: PUSH1 0x40 000014b0: MLOAD 000014b1: PUSH1 0x1f 000014b3: DUP6 000014b4: ADD 000014b5: PUSH1 0x1f 000014b7: NOT 000014b8: SWAP1 000014b9: DUP2 000014ba: AND 000014bb: PUSH1 0x3f 000014bd: ADD 000014be: AND 000014bf: DUP2 000014c0: ADD 000014c1: SWAP1 000014c2: DUP3 000014c3: DUP3 000014c4: GT 000014c5: DUP2 000014c6: DUP4 000014c7: LT 000014c8: OR 000014c9: ISZERO 000014ca: PUSH2 0x14d5 000014cd: JUMPI 000014ce: PUSH2 0x14d5 000014d1: PUSH2 0x194a 000014d4: JUMP 000014d5: JUMPDEST 000014d6: DUP2 000014d7: PUSH1 0x40 000014d9: MSTORE 000014da: DUP1 000014db: SWAP4 000014dc: POP 000014dd: DUP6 000014de: DUP2 000014df: MSTORE 000014e0: DUP7 000014e1: DUP7 000014e2: DUP7 000014e3: ADD 000014e4: GT 000014e5: ISZERO 000014e6: PUSH2 0x14ee 000014e9: JUMPI 000014ea: PUSH1 0x00 000014ec: DUP1 000014ed: REVERT 000014ee: JUMPDEST 000014ef: DUP6 000014f0: DUP6 000014f1: PUSH1 0x20 000014f3: DUP4 000014f4: ADD 000014f5: CALLDATACOPY 000014f6: PUSH1 0x00 000014f8: PUSH1 0x20 000014fa: DUP8 000014fb: DUP4 000014fc: ADD 000014fd: ADD 000014fe: MSTORE 000014ff: POP 00001500: POP 00001501: POP 00001502: SWAP4 00001503: SWAP3 00001504: POP 00001505: POP 00001506: POP 00001507: JUMP 00001508: JUMPDEST 00001509: DUP1 0000150a: CALLDATALOAD 0000150b: PUSH1 0x01 0000150d: PUSH1 0x01 0000150f: PUSH1 0xa0 00001511: SHL 00001512: SUB 00001513: DUP2 00001514: AND 00001515: DUP2 00001516: EQ 00001517: PUSH2 0x151f 0000151a: JUMPI 0000151b: PUSH1 0x00 0000151d: DUP1 0000151e: REVERT 0000151f: JUMPDEST 00001520: SWAP2 00001521: SWAP1 00001522: POP 00001523: JUMP 00001524: JUMPDEST 00001525: PUSH1 0x00 00001527: DUP3 00001528: PUSH1 0x1f 0000152a: DUP4 0000152b: ADD 0000152c: SLT 0000152d: PUSH2 0x1534 00001530: JUMPI 00001531: DUP1 00001532: DUP2 00001533: REVERT 00001534: JUMPDEST 00001535: PUSH2 0x1162 00001538: DUP4 00001539: DUP4 0000153a: CALLDATALOAD 0000153b: PUSH1 0x20 0000153d: DUP6 0000153e: ADD 0000153f: PUSH2 0x1492 00001542: JUMP 00001543: JUMPDEST 00001544: PUSH1 0x00 00001546: PUSH1 0x20 00001548: DUP3 00001549: DUP5 0000154a: SUB 0000154b: SLT 0000154c: ISZERO 0000154d: PUSH2 0x1554 00001550: JUMPI 00001551: DUP1 00001552: DUP2 00001553: REVERT 00001554: JUMPDEST 00001555: PUSH2 0x1162 00001558: DUP3 00001559: PUSH2 0x1508 0000155c: JUMP 0000155d: JUMPDEST 0000155e: PUSH1 0x00 00001560: DUP1 00001561: PUSH1 0x40 00001563: DUP4 00001564: DUP6 00001565: SUB 00001566: SLT 00001567: ISZERO 00001568: PUSH2 0x156f 0000156b: JUMPI 0000156c: DUP1 0000156d: DUP2 0000156e: REVERT 0000156f: JUMPDEST 00001570: PUSH2 0x1578 00001573: DUP4 00001574: PUSH2 0x1508 00001577: JUMP 00001578: JUMPDEST 00001579: SWAP5 0000157a: PUSH1 0x20 0000157c: SWAP4 0000157d: SWAP1 0000157e: SWAP4 0000157f: ADD 00001580: CALLDATALOAD 00001581: SWAP4 00001582: POP 00001583: POP 00001584: POP 00001585: JUMP 00001586: JUMPDEST 00001587: PUSH1 0x00 00001589: DUP1 0000158a: PUSH1 0x00 0000158c: DUP1 0000158d: PUSH1 0x80 0000158f: DUP6 00001590: DUP8 00001591: SUB 00001592: SLT 00001593: ISZERO 00001594: PUSH2 0x159b 00001597: JUMPI 00001598: DUP2 00001599: DUP3 0000159a: REVERT 0000159b: JUMPDEST 0000159c: PUSH2 0x15a4 0000159f: DUP6 000015a0: PUSH2 0x1508 000015a3: JUMP 000015a4: JUMPDEST 000015a5: SWAP4 000015a6: POP 000015a7: PUSH1 0x20 000015a9: DUP6 000015aa: ADD 000015ab: CALLDATALOAD 000015ac: SWAP3 000015ad: POP 000015ae: PUSH1 0x40 000015b0: DUP6 000015b1: ADD 000015b2: CALLDATALOAD 000015b3: SWAP2 000015b4: POP 000015b5: PUSH1 0x60 000015b7: DUP6 000015b8: ADD 000015b9: CALLDATALOAD 000015ba: PUSH8 0xffffffffffffffff 000015c3: DUP2 000015c4: GT 000015c5: ISZERO 000015c6: PUSH2 0x15cd 000015c9: JUMPI 000015ca: DUP2 000015cb: DUP3 000015cc: REVERT 000015cd: JUMPDEST 000015ce: DUP6 000015cf: ADD 000015d0: PUSH1 0x1f 000015d2: DUP2 000015d3: ADD 000015d4: DUP8 000015d5: SGT 000015d6: PUSH2 0x15dd 000015d9: JUMPI 000015da: DUP2 000015db: DUP3 000015dc: REVERT 000015dd: JUMPDEST 000015de: PUSH2 0x15ec 000015e1: DUP8 000015e2: DUP3 000015e3: CALLDATALOAD 000015e4: PUSH1 0x20 000015e6: DUP5 000015e7: ADD 000015e8: PUSH2 0x1492 000015eb: JUMP 000015ec: JUMPDEST 000015ed: SWAP2 000015ee: POP 000015ef: POP 000015f0: SWAP3 000015f1: SWAP6 000015f2: SWAP2 000015f3: SWAP5 000015f4: POP 000015f5: SWAP3 000015f6: POP 000015f7: JUMP 000015f8: JUMPDEST 000015f9: PUSH1 0x00 000015fb: PUSH1 0x20 000015fd: DUP3 000015fe: DUP5 000015ff: SUB 00001600: SLT 00001601: ISZERO 00001602: PUSH2 0x1609 00001605: JUMPI 00001606: DUP1 00001607: DUP2 00001608: REVERT 00001609: JUMPDEST 0000160a: DUP2 0000160b: MLOAD 0000160c: PUSH2 0x1162 0000160f: DUP2 00001610: PUSH2 0x1960 00001613: JUMP 00001614: JUMPDEST 00001615: PUSH1 0x00 00001617: PUSH1 0x20 00001619: DUP3 0000161a: DUP5 0000161b: SUB 0000161c: SLT 0000161d: ISZERO 0000161e: PUSH2 0x1625 00001621: JUMPI 00001622: DUP1 00001623: DUP2 00001624: REVERT 00001625: JUMPDEST 00001626: POP 00001627: CALLDATALOAD 00001628: SWAP2 00001629: SWAP1 0000162a: POP 0000162b: JUMP 0000162c: JUMPDEST 0000162d: PUSH1 0x00 0000162f: DUP1 00001630: PUSH1 0x40 00001632: DUP4 00001633: DUP6 00001634: SUB 00001635: SLT 00001636: ISZERO 00001637: PUSH2 0x163e 0000163a: JUMPI 0000163b: DUP2 0000163c: DUP3 0000163d: REVERT 0000163e: JUMPDEST 0000163f: DUP3 00001640: CALLDATALOAD 00001641: SWAP2 00001642: POP 00001643: PUSH2 0x164e 00001646: PUSH1 0x20 00001648: DUP5 00001649: ADD 0000164a: PUSH2 0x1508 0000164d: JUMP 0000164e: JUMPDEST 0000164f: SWAP1 00001650: POP 00001651: SWAP3 00001652: POP 00001653: SWAP3 00001654: SWAP1 00001655: POP 00001656: JUMP 00001657: JUMPDEST 00001658: PUSH1 0x00 0000165a: DUP1 0000165b: PUSH1 0x00 0000165d: DUP1 0000165e: PUSH1 0x00 00001660: PUSH1 0xa0 00001662: DUP7 00001663: DUP9 00001664: SUB 00001665: SLT 00001666: ISZERO 00001667: PUSH2 0x166e 0000166a: JUMPI 0000166b: DUP1 0000166c: DUP2 0000166d: REVERT 0000166e: JUMPDEST 0000166f: DUP6 00001670: CALLDATALOAD 00001671: SWAP5 00001672: POP 00001673: PUSH2 0x167e 00001676: PUSH1 0x20 00001678: DUP8 00001679: ADD 0000167a: PUSH2 0x1508 0000167d: JUMP 0000167e: JUMPDEST 0000167f: SWAP4 00001680: POP 00001681: PUSH1 0x40 00001683: DUP7 00001684: ADD 00001685: CALLDATALOAD 00001686: SWAP3 00001687: POP 00001688: PUSH1 0x60 0000168a: DUP7 0000168b: ADD 0000168c: CALLDATALOAD 0000168d: SWAP2 0000168e: POP 0000168f: PUSH1 0x80 00001691: DUP7 00001692: ADD 00001693: CALLDATALOAD 00001694: PUSH8 0xffffffffffffffff 0000169d: DUP2 0000169e: GT 0000169f: ISZERO 000016a0: PUSH2 0x16a7 000016a3: JUMPI 000016a4: DUP2 000016a5: DUP3 000016a6: REVERT 000016a7: JUMPDEST 000016a8: PUSH2 0x16b3 000016ab: DUP9 000016ac: DUP3 000016ad: DUP10 000016ae: ADD 000016af: PUSH2 0x1524 000016b2: JUMP 000016b3: JUMPDEST 000016b4: SWAP2 000016b5: POP 000016b6: POP 000016b7: SWAP3 000016b8: SWAP6 000016b9: POP 000016ba: SWAP3 000016bb: SWAP6 000016bc: SWAP1 000016bd: SWAP4 000016be: POP 000016bf: JUMP 000016c0: JUMPDEST 000016c1: PUSH1 0x00 000016c3: DUP1 000016c4: PUSH1 0x40 000016c6: DUP4 000016c7: DUP6 000016c8: SUB 000016c9: SLT 000016ca: ISZERO 000016cb: PUSH2 0x16d2 000016ce: JUMPI 000016cf: DUP2 000016d0: DUP3 000016d1: REVERT 000016d2: JUMPDEST 000016d3: DUP3 000016d4: CALLDATALOAD 000016d5: SWAP2 000016d6: POP 000016d7: PUSH1 0x20 000016d9: DUP4 000016da: ADD 000016db: CALLDATALOAD 000016dc: PUSH2 0x16e4 000016df: DUP2 000016e0: PUSH2 0x1960 000016e3: JUMP 000016e4: JUMPDEST 000016e5: DUP1 000016e6: SWAP2 000016e7: POP 000016e8: POP 000016e9: SWAP3 000016ea: POP 000016eb: SWAP3 000016ec: SWAP1 000016ed: POP 000016ee: JUMP 000016ef: JUMPDEST 000016f0: PUSH1 0x00 000016f2: DUP1 000016f3: PUSH1 0x40 000016f5: DUP4 000016f6: DUP6 000016f7: SUB 000016f8: SLT 000016f9: ISZERO 000016fa: PUSH2 0x1701 000016fd: JUMPI 000016fe: DUP2 000016ff: DUP3 00001700: REVERT 00001701: JUMPDEST 00001702: DUP3 00001703: CALLDATALOAD 00001704: SWAP2 00001705: POP 00001706: PUSH1 0x20 00001708: DUP4 00001709: ADD 0000170a: CALLDATALOAD 0000170b: PUSH8 0xffffffffffffffff 00001714: DUP2 00001715: GT 00001716: ISZERO 00001717: PUSH2 0x171e 0000171a: JUMPI 0000171b: DUP2 0000171c: DUP3 0000171d: REVERT 0000171e: JUMPDEST 0000171f: PUSH2 0x172a 00001722: DUP6 00001723: DUP3 00001724: DUP7 00001725: ADD 00001726: PUSH2 0x1524 00001729: JUMP 0000172a: JUMPDEST 0000172b: SWAP2 0000172c: POP 0000172d: POP 0000172e: SWAP3 0000172f: POP 00001730: SWAP3 00001731: SWAP1 00001732: POP 00001733: JUMP 00001734: JUMPDEST 00001735: PUSH1 0x00 00001737: DUP1 00001738: PUSH1 0x40 0000173a: DUP4 0000173b: DUP6 0000173c: SUB 0000173d: SLT 0000173e: ISZERO 0000173f: PUSH2 0x1746 00001742: JUMPI 00001743: DUP2 00001744: DUP3 00001745: REVERT 00001746: JUMPDEST 00001747: POP 00001748: POP 00001749: DUP1 0000174a: CALLDATALOAD 0000174b: SWAP3 0000174c: PUSH1 0x20 0000174e: SWAP1 0000174f: SWAP2 00001750: ADD 00001751: CALLDATALOAD 00001752: SWAP2 00001753: POP 00001754: JUMP 00001755: JUMPDEST 00001756: PUSH1 0x00 00001758: DUP2 00001759: MLOAD 0000175a: DUP1 0000175b: DUP5 0000175c: MSTORE 0000175d: PUSH2 0x176d 00001760: DUP2 00001761: PUSH1 0x20 00001763: DUP7 00001764: ADD 00001765: PUSH1 0x20 00001767: DUP7 00001768: ADD 00001769: PUSH2 0x18e3 0000176c: JUMP 0000176d: JUMPDEST 0000176e: PUSH1 0x1f 00001770: ADD 00001771: PUSH1 0x1f 00001773: NOT 00001774: AND 00001775: SWAP3 00001776: SWAP1 00001777: SWAP3 00001778: ADD 00001779: PUSH1 0x20 0000177b: ADD 0000177c: SWAP3 0000177d: SWAP2 0000177e: POP 0000177f: POP 00001780: JUMP 00001781: JUMPDEST 00001782: PUSH1 0x00 00001784: DUP3 00001785: MLOAD 00001786: PUSH2 0x1793 00001789: DUP2 0000178a: DUP5 0000178b: PUSH1 0x20 0000178d: DUP8 0000178e: ADD 0000178f: PUSH2 0x18e3 00001792: JUMP 00001793: JUMPDEST 00001794: SWAP2 00001795: SWAP1 00001796: SWAP2 00001797: ADD 00001798: SWAP3 00001799: SWAP2 0000179a: POP 0000179b: POP 0000179c: JUMP 0000179d: JUMPDEST 0000179e: PUSH1 0x00 000017a0: DUP6 000017a1: MLOAD 000017a2: PUSH2 0x17af 000017a5: DUP2 000017a6: DUP5 000017a7: PUSH1 0x20 000017a9: DUP11 000017aa: ADD 000017ab: PUSH2 0x18e3 000017ae: JUMP 000017af: JUMPDEST 000017b0: PUSH1 0x60 000017b2: SWAP6 000017b3: SWAP1 000017b4: SWAP6 000017b5: SHL 000017b6: PUSH12 0xffffffffffffffffffffffff 000017c3: NOT 000017c4: AND 000017c5: SWAP2 000017c6: SWAP1 000017c7: SWAP5 000017c8: ADD 000017c9: SWAP1 000017ca: DUP2 000017cb: MSTORE 000017cc: PUSH1 0x14 000017ce: DUP2 000017cf: ADD 000017d0: SWAP3 000017d1: SWAP1 000017d2: SWAP3 000017d3: MSTORE 000017d4: PUSH1 0x34 000017d6: DUP3 000017d7: ADD 000017d8: MSTORE 000017d9: PUSH1 0x54 000017db: ADD 000017dc: SWAP3 000017dd: SWAP2 000017de: POP 000017df: POP 000017e0: JUMP 000017e1: JUMPDEST 000017e2: DUP6 000017e3: ISZERO 000017e4: ISZERO 000017e5: DUP2 000017e6: MSTORE 000017e7: PUSH1 0x01 000017e9: DUP1 000017ea: PUSH1 0xa0 000017ec: SHL 000017ed: SUB 000017ee: DUP6 000017ef: AND 000017f0: PUSH1 0x20 000017f2: DUP3 000017f3: ADD 000017f4: MSTORE 000017f5: DUP4 000017f6: PUSH1 0x40 000017f8: DUP3 000017f9: ADD 000017fa: MSTORE 000017fb: DUP3 000017fc: PUSH1 0x60 000017fe: DUP3 000017ff: ADD 00001800: MSTORE 00001801: PUSH1 0xa0 00001803: PUSH1 0x80 00001805: DUP3 00001806: ADD 00001807: MSTORE 00001808: PUSH1 0x00 0000180a: PUSH2 0x13b5 0000180d: PUSH1 0xa0 0000180f: DUP4 00001810: ADD 00001811: DUP5 00001812: PUSH2 0x1755 00001815: JUMP 00001816: JUMPDEST 00001817: PUSH1 0x20 00001819: DUP2 0000181a: MSTORE 0000181b: PUSH1 0x00 0000181d: PUSH2 0x1162 00001820: PUSH1 0x20 00001822: DUP4 00001823: ADD 00001824: DUP5 00001825: PUSH2 0x1755 00001828: JUMP 00001829: JUMPDEST 0000182a: PUSH1 0x20 0000182c: DUP1 0000182d: DUP3 0000182e: MSTORE 0000182f: PUSH1 0x2b 00001831: SWAP1 00001832: DUP3 00001833: ADD 00001834: MSTORE 00001835: PUSH32 0x636c61696d61626c6546726f6d206d757374206265206265666f726520636c61 00001856: PUSH1 0x40 00001858: DUP3 00001859: ADD 0000185a: MSTORE 0000185b: PUSH11 0x1a5b58589b19555b9d1a5b 00001867: PUSH1 0xaa 00001869: SHL 0000186a: PUSH1 0x60 0000186c: DUP3 0000186d: ADD 0000186e: MSTORE 0000186f: PUSH1 0x80 00001871: ADD 00001872: SWAP1 00001873: JUMP 00001874: JUMPDEST 00001875: PUSH1 0x20 00001877: DUP1 00001878: DUP3 00001879: MSTORE 0000187a: PUSH1 0x2b 0000187c: SWAP1 0000187d: DUP3 0000187e: ADD 0000187f: MSTORE 00001880: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 000018a1: PUSH1 0x40 000018a3: DUP3 000018a4: ADD 000018a5: MSTORE 000018a6: PUSH11 0x6e697469616c697a696e67 000018b2: PUSH1 0xa8 000018b4: SHL 000018b5: PUSH1 0x60 000018b7: DUP3 000018b8: ADD 000018b9: MSTORE 000018ba: PUSH1 0x80 000018bc: ADD 000018bd: SWAP1 000018be: JUMP 000018bf: JUMPDEST 000018c0: PUSH1 0x00 000018c2: DUP3 000018c3: NOT 000018c4: DUP3 000018c5: GT 000018c6: ISZERO 000018c7: PUSH2 0x18de 000018ca: JUMPI 000018cb: PUSH4 0x4e487b71 000018d0: PUSH1 0xe0 000018d2: SHL 000018d3: DUP2 000018d4: MSTORE 000018d5: PUSH1 0x11 000018d7: PUSH1 0x04 000018d9: MSTORE 000018da: PUSH1 0x24 000018dc: DUP2 000018dd: REVERT 000018de: JUMPDEST 000018df: POP 000018e0: ADD 000018e1: SWAP1 000018e2: JUMP 000018e3: JUMPDEST 000018e4: PUSH1 0x00 000018e6: JUMPDEST 000018e7: DUP4 000018e8: DUP2 000018e9: LT 000018ea: ISZERO 000018eb: PUSH2 0x18fe 000018ee: JUMPI 000018ef: DUP2 000018f0: DUP2 000018f1: ADD 000018f2: MLOAD 000018f3: DUP4 000018f4: DUP3 000018f5: ADD 000018f6: MSTORE 000018f7: PUSH1 0x20 000018f9: ADD 000018fa: PUSH2 0x18e6 000018fd: JUMP 000018fe: JUMPDEST 000018ff: DUP4 00001900: DUP2 00001901: GT 00001902: ISZERO 00001903: PUSH2 0x08d8 00001906: JUMPI 00001907: POP 00001908: POP 00001909: PUSH1 0x00 0000190b: SWAP2 0000190c: ADD 0000190d: MSTORE 0000190e: JUMP 0000190f: JUMPDEST 00001910: PUSH1 0x01 00001912: DUP2 00001913: DUP2 00001914: SHR 00001915: SWAP1 00001916: DUP3 00001917: AND 00001918: DUP1 00001919: PUSH2 0x1923 0000191c: JUMPI 0000191d: PUSH1 0x7f 0000191f: DUP3 00001920: AND 00001921: SWAP2 00001922: POP 00001923: JUMPDEST 00001924: PUSH1 0x20 00001926: DUP3 00001927: LT 00001928: DUP2 00001929: EQ 0000192a: ISZERO 0000192b: PUSH2 0x1944 0000192e: JUMPI 0000192f: PUSH4 0x4e487b71 00001934: PUSH1 0xe0 00001936: SHL 00001937: PUSH1 0x00 00001939: MSTORE 0000193a: PUSH1 0x22 0000193c: PUSH1 0x04 0000193e: MSTORE 0000193f: PUSH1 0x24 00001941: PUSH1 0x00 00001943: REVERT 00001944: JUMPDEST 00001945: POP 00001946: SWAP2 00001947: SWAP1 00001948: POP 00001949: JUMP 0000194a: JUMPDEST 0000194b: PUSH4 0x4e487b71 00001950: PUSH1 0xe0 00001952: SHL 00001953: PUSH1 0x00 00001955: MSTORE 00001956: PUSH1 0x41 00001958: PUSH1 0x04 0000195a: MSTORE 0000195b: PUSH1 0x24 0000195d: PUSH1 0x00 0000195f: REVERT 00001960: JUMPDEST 00001961: DUP1 00001962: ISZERO 00001963: ISZERO 00001964: DUP2 00001965: EQ 00001966: PUSH2 0x0c89 00001969: JUMPI 0000196a: PUSH1 0x00 0000196c: DUP1 0000196d: REVERT 0000196e: INVALID 0000196f: LOG2 00001970: PUSH5 0x6970667358 00001976: UNKNOWN(0x22) 00001977: SLT 00001978: KECCAK256 00001979: PUSH26 0xeadf82ae9079b6c560feef029812efa951e09fa8f6f49ae285d4 00001994: SWAP13 00001995: UNKNOWN(0xBE) 00001996: UNKNOWN(0xC6) 00001997: SWAP10 00001998: UNKNOWN(0xCB) 00001999: PUSH5 0x736f6c6343 0000199f: STOP 000019a0: ADDMOD 000019a1: DIV 000019a2: STOP 000019a3: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x496042c200569246fcb2af8f04478724c5e6838fa5cf38e0c988a1845cd06401
call_targets:
0x717d0bf97ce58e14945f5e0320ee98381aeaddaf
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x496042c200569246fcb2af8f04478724c5e6838fa5cf38e0c988a1845cd06401",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x717d0bf97ce58e14945f5e0320ee98381aeaddaf"
],
"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": "0xc4d66de8",
"selector": "0xc4d66de8",
"calldata_variants": [
"0xc4d66de8",
"0xc4d66de80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcd70584f",
"selector": "0xcd70584f",
"calldata_variants": [
"0xcd70584f",
"0xcd70584f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd352c8b6",
"selector": "0xd352c8b6",
"calldata_variants": [
"0xd352c8b6",
"0xd352c8b60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd53c4a7",
"selector": "0xdd53c4a7",
"calldata_variants": [
"0xdd53c4a7",
"0xdd53c4a70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7e45984b",
"selector": "0x7e45984b",
"calldata_variants": [
"0x7e45984b",
"0x7e45984b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8fa2a9f0",
"selector": "0x8fa2a9f0",
"calldata_variants": [
"0x8fa2a9f0",
"0x8fa2a9f00000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2141,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4976,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [],
"untrusted_call_count": 2
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x496042c200569246fcb2af8f04478724c5e6838fa5cf38e0c988a1845cd06401
call_targets:
0x717d0bf97ce58e14945f5e0320ee98381aeaddaf
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x496042c200569246fcb2af8f04478724c5e6838fa5cf38e0c988a1845cd06401",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x717d0bf97ce58e14945f5e0320ee98381aeaddaf"
],
"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": "0xc4d66de8",
"selector": "0xc4d66de8",
"calldata_variants": [
"0xc4d66de8",
"0xc4d66de80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcd70584f",
"selector": "0xcd70584f",
"calldata_variants": [
"0xcd70584f",
"0xcd70584f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd352c8b6",
"selector": "0xd352c8b6",
"calldata_variants": [
"0xd352c8b6",
"0xd352c8b60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd53c4a7",
"selector": "0xdd53c4a7",
"calldata_variants": [
"0xdd53c4a7",
"0xdd53c4a70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7e45984b",
"selector": "0x7e45984b",
"calldata_variants": [
"0x7e45984b",
"0x7e45984b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8fa2a9f0",
"selector": "0x8fa2a9f0",
"calldata_variants": [
"0x8fa2a9f0",
"0x8fa2a9f00000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2141,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4976,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": []
}
|
| medium | auth | codex | Signatures lack domain separation, enabling cross-contract/chain replay | 75 | no | — |
viewevidence_json{
"evidence": "`isSignatureValid` hashes only `prefix`, `user`, `campaignId`, and `amount`, without `address(this)` or `chainId`.",
"locations": [
"contracts/contracts/CampaignRewardDistribution.sol:33"
],
"recommendation": "Include domain separation in the signed payload (at least `address(this)` and `block.chainid`), or move to EIP-712 typed data with a contract-specific domain separator.",
"exploit_scenario": "If the same masterSigner key is reused across deployments or chains, a signature intended for one deployment can be replayed against another deployment with the same campaignId/prefix and active window, allowing unauthorized claims on that other contract."
}
|
| low | upgradeability | codex | Upgradeable implementation can be initialized directly | 65 | no | — |
viewevidence_json{
"evidence": "No constructor disables initializers; `initialize` is public and uses the `initializer` modifier.",
"locations": [
"contracts/contracts/CampaignRewardDistribution.sol:28"
],
"recommendation": "Add a constructor that calls `_disableInitializers()` to lock the implementation contract.",
"exploit_scenario": "An attacker can call `initialize` on the implementation contract (if deployed standalone), become owner, and drain any assets mistakenly sent to the implementation address or operate it directly."
}
|