019bab3b-acdd-73a3-9188-eb035b52b55e
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 |
|---|---|---|---|---|
| 38849 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 38850 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 38851 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 38852 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 38853 | capability.graph | complete | 1 / 3 | 3 months ago |
| 38854 | detector.run | complete | 1 / 3 | 3 months ago |
| 38855 | validation.fork | complete | 1 / 3 | 3 months ago |
| 39206 | report.consolidate | complete | 1 / 6 | 3 months ago |
| 39207 | tool.slither | failed | 2 / 2 | 3 months ago |
{
"status": "not_proxy"
}
Traceback (most recent call last):
File "/var/www/tripwire/worker/worker.py", line 198, in main
payload = dispatch_job(job_type, job_id, job_meta, run_data, config, laravel_client)
File "/var/www/tripwire/worker/worker.py", line 114, in dispatch_job
return slither_run.run(job_id, job_meta, run_data, config, log, laravel_client)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/worker/jobs/slither_run.py", line 1084, in run
stdout_text, stderr_text, result_json = _run_slither(
~~~~~~~~~~~~^
workspace,
^^^^^^^^^^
...<4 lines>...
target_path=target_path,
^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/var/www/tripwire/worker/jobs/slither_run.py", line 958, in _run_slither
raise RuntimeError(f"slither failed (exit {result.returncode}): {stderr_text or stdout_text}")
RuntimeError: slither failed (exit 1): 'forge clean' running (wd: /tmp/slither-g9hzf6cg)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-g9hzf6cg)
'forge' returned non-zero exit code 1
[2m2026-01-11T09:01:38.538664Z[0m [31mERROR[0m [2mfoundry_compilers_artifacts_solc::sources[0m[2m:[0m [3merror[0m[2m=[0m"/tmp/slither-g9hzf6cg/lib/openzeppelin-contracts/utils/math/Math.sol": No such file or directory (os error 2)
stdout: [2m2026-01-11T09:01:38.538690Z[0m [31mERROR[0m [2mfoundry_compilers_artifacts_solc::sources[0m[2m:[0m [3merror[0m[2m=[0m"/tmp/slither-g9hzf6cg/lib/openzeppelin-contracts/utils/math/SafeCast.sol": No such file or directory (os error 2)
stdout: [2m2026-01-11T09:01:38.538704Z[0m [31mERROR[0m [2mfoundry_compilers_artifacts_solc::sources[0m[2m:[0m [3merror[0m[2m=[0m"/tmp/slither-g9hzf6cg/lib/solmate/tokens/ERC20.sol": No such file or directory (os error 2)
stdout: [2m2026-01-11T09:01:38.538716Z[0m [31mERROR[0m [2mfoundry_compilers_artifacts_solc::sources[0m[2m:[0m [3merror[0m[2m=[0m"/tmp/slither-g9hzf6cg/lib/solmate/utils/SafeTransferLib.sol": No such file or directory (os error 2)
stdout: [2m2026-01-11T09:01:38.538732Z[0m [31mERROR[0m [2mfoundry_compilers_artifacts_solc::sources[0m[2m:[0m [3merror[0m[2m=[0m"/tmp/slither-g9hzf6cg/lib/solmate/utils/ReentrancyGuard.sol": No such file or directory (os error 2)
stdout: [2m2026-01-11T09:01:38.538754Z[0m [31mERROR[0m [2mfoundry_compilers_artifacts_solc::sources[0m[2m:[0m [3merror[0m[2m=[0m"/tmp/slither-g9hzf6cg/lib/solmate/tokens/ERC20.sol": No such file or directory (os error 2)
stdout: [2m2026-01-11T09:01:38.538769Z[0m [31mERROR[0m [2mfoundry_compilers_artifacts_solc::sources[0m[2m:[0m [3merror[0m[2m=[0m"/tmp/slither-g9hzf6cg/lib/openzeppelin-contracts/utils/cryptography/EIP712.sol": No such file or directory (os error 2)
stdout: Unable to resolve imports:
stdout: "solmate/utils/ReentrancyGuard.sol" in "/tmp/slither-g9hzf6cg/src/FeeDistributor.sol"
stdout: "solmate/tokens/ERC20.sol" in "/tmp/slither-g9hzf6cg/src/interfaces/IFeeDistributor.sol"
stdout: "openzeppelin-contracts/utils/cryptography/EIP712.sol" in "/tmp/slither-g9hzf6cg/src/lib/EOASignaturesValidator.sol"
stdout: "solmate/tokens/ERC20.sol" in "/tmp/slither-g9hzf6cg/src/FeeDistributor.sol"
stdout: "openzeppelin-contracts/utils/math/Math.sol" in "/tmp/slither-g9hzf6cg/src/FeeDistributor.sol"
stdout: "openzeppelin-contracts/utils/math/SafeCast.sol" in "/tmp/slither-g9hzf6cg/src/FeeDistributor.sol"
stdout: "solmate/utils/SafeTransferLib.sol" in "/tmp/slither-g9hzf6cg/src/FeeDistributor.sol"
stdout: with remappings:
stdout: create3-factory/=/tmp/slither-g9hzf6cg/lib/create3-factory/src/
stdout: ds-test/=/tmp/slither-g9hzf6cg/lib/forge-std/lib/ds-test/src/
stdout: forge-std/=/tmp/slither-g9hzf6cg/lib/forge-std/src/
stdout: openzeppelin-contracts/=/tmp/slither-g9hzf6cg/lib/openzeppelin-contracts/
stdout: solmate/=/tmp/slither-g9hzf6cg/lib/solmate/
stdout: Compiling 7 files with Solc 0.8.0
stdout: Solc 0.8.0 finished in 23.93ms
Error: Compiler run failed:
stderr: Error (2314): Expected ';' but got '('
stderr: --> src/FeeDistributor.sol:48:46:
stderr: |
stderr: 48 | error FeeDistributor__InputLengthMismatch();
stderr: | ^
stderr:
stderr: Error (6275): Source "lib/solmate/tokens/ERC20.sol" not found: File not found.
stderr: --> src/interfaces/IFeeDistributor.sol:17:1:
stderr: |
stderr: 17 | import {ERC20} from "solmate/tokens/ERC20.sol";
stderr: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stderr:
stderr: Error (2314): Expected ';' but got '('
stderr: --> src/lib/EOASignaturesValidator.sol:25:51:
stderr: |
stderr: 25 | error EOASignaturesValidator__ExpiredSignature();
stderr: | ^
stderr:
stderr: Error (2314): Expected ';' but got '('
stderr: --> src/lib/OptionalOnlyCaller.sol:21:47:
stderr: |
stderr: 21 | error OptionalOnlyCaller__SenderNotAllowed();
stderr: | ^
Traceback (most recent call last):
File "/var/www/tripwire/.venv/bin/slither", line 10, in <module>
sys.exit(main())
~~~~^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 776, in main
main_impl(all_detector_classes=detectors, all_printer_classes=printers)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 882, in main_impl
) = process_all(filename, args, detector_classes, printer_classes)
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 96, in process_all
compilations = compile_all(target, **vars(args))
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 722, in compile_all
compilations.append(CryticCompile(target, **kwargs))
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 211, in __init__
self._compile(**kwargs)
~~~~~~~~~~~~~^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 633, in _compile
self._platform.compile(self, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/foundry.py", line 102, in compile
hardhat_like_parsing(
~~~~~~~~~~~~~~~~~~~~^
crytic_compile, str(self._target), build_directory, str(self._project_root)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/hardhat.py", line 52, in hardhat_like_parsing
raise InvalidCompilation(txt)
crytic_compile.platform.exceptions.InvalidCompilation: Compilation failed. Can you run build command?
/tmp/slither-g9hzf6cg/out/build-info is not a directory.
{"no_findings":false,"summary":"Two issues can permanently lock fee distributions: token checkpointing truncates after 20 weeks, and zero veSupply weeks trigger division-by-zero in claims.","findings":[{"severity":"medium","category":"other","title":"Token checkpointing stops after 20 weeks, leaving undistributed tokens permanently unclaimable","exploit_scenario":"If a token is not checkpointed for more than 20 weeks, `_checkpointToken` only assigns fees for the first 20 weeks, then sets `tokenState.timeCursor` to `block.timestamp` and `cachedBalance` to the full balance. The remaining weeks are never assigned to `_tokensPerWeek`, and future checkpoints see no new tokens, so the unassigned portion can never be claimed.","recommendation":"Only advance the token time cursor to the last processed week, not `block.timestamp`, and allow repeated calls to continue distributing across remaining weeks. Alternatively, keep the loop bound but persist `lastTokenTime`/`firstIncompleteWeek` so subsequent calls resume until caught up.","evidence":"`tokenState.timeCursor = uint64(block.timestamp)` is set before a loop bounded to 20 iterations, so gaps >20 weeks are not fully distributed.","locations":["src/FeeDistributor.sol:446","src/FeeDistributor.sol:460","src/FeeDistributor.sol:495"]},{"severity":"medium","category":"math","title":"Zero totalSupply weeks cause division-by-zero and permanently block claims","exploit_scenario":"If the VotingEscrow total supply is zero for any week (e.g., all locks expire), `_checkpointTotalSupply` caches 0 for that week. When a user later claims, `_claimToken` divides by `_veSupplyCache[week]` and reverts on that zero, preventing the cursor from advancing and locking all current and future claims for that token.","recommendation":"Guard against zero supply in `_claimToken` by skipping weeks where `_veSupplyCache[week] == 0` (advance the user token cursor without dividing), or prevent fee assignment for weeks with zero supply and ensure claims can bypass them safely.","evidence":"Claim math divides by `_veSupplyCache[nextUserTokenWeekToClaim]` without a zero check; `_checkpointTotalSupply` stores zero when totalSupply is zero.","locations":["src/FeeDistributor.sol:384","src/FeeDistributor.sol:637"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-8vsvt1do
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bac01-fb11-7b72-bff2-a048e444ed31
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers
thinking
**Checking AUDIT_BUNDLE.txt contents**
exec
/bin/bash -lc ls in /tmp/codex-8vsvt1do succeeded in 6ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
lib
src
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-8vsvt1do succeeded in 27ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.
================================================================================
FILE: src/FeeDistributor.sol
================================================================================
// SPDX-License-Identifier: GPL-3.0
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
thinking
**Preparing to analyze FeeDistributor file**
exec
/bin/bash -lc 'nl -ba src/FeeDistributor.sol' in /tmp/codex-8vsvt1do succeeded in 7ms:
1 // SPDX-License-Identifier: GPL-3.0
2 // This program is free software: you can redistribute it and/or modify
3 // it under the terms of the GNU General Public License as published by
4 // the Free Software Foundation, either version 3 of the License, or
5 // (at your option) any later version.
6
7 // This program is distributed in the hope that it will be useful,
8 // but WITHOUT ANY WARRANTY; without even the implied warranty of
9 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 // GNU General Public License for more details.
11
12 // You should have received a copy of the GNU General Public License
13 // along with this program. If not, see <http://www.gnu.org/licenses/>.
14
15 pragma solidity ^0.8.0;
16
17 import {Math} from "openzeppelin-contracts/utils/math/Math.sol";
18 import {SafeCast} from "openzeppelin-contracts/utils/math/SafeCast.sol";
19
20 import {ERC20} from "solmate/tokens/ERC20.sol";
thinking
**Checking for related files**
exec
/bin/bash -lc 'nl -ba src/lib/OptionalOnlyCaller.sol' in /tmp/codex-8vsvt1do succeeded in 7ms:
1 // SPDX-License-Identifier: GPL-3.0
2 // This program is free software: you can redistribute it and/or modify
3 // it under the terms of the GNU General Public License as published by
4 // the Free Software Foundation, either version 3 of the License, or
5 // (at your option) any later version.
6
7 // This program is distributed in the hope that it will be useful,
8 // but WITHOUT ANY WARRANTY; without even the implied warranty of
9 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 // GNU General Public License for more details.
11
12 // You should have received a copy of the GNU General Public License
13 // along with this program. If not, see <http://www.gnu.org/licenses/>.
14
15 pragma solidity ^0.8.0;
16
17 import "./EOASignaturesValidator.sol";
18 import "../interfaces/IOptionalOnlyCaller.sol";
19
20 abstract contract OptionalOnlyCaller is IOptionalOnlyCaller, EOASignaturesValidator {
exec
/bin/bash -lc 'nl -ba src/lib/EOASignaturesValidator.sol' in /tmp/codex-8vsvt1do succeeded in 5ms:
1 // SPDX-License-Identifier: GPL-3.0
2 // This program is free software: you can redistribute it and/or modify
3 // it under the terms of the GNU General Public License as published by
4 // the Free Software Foundation, either version 3 of the License, or
5 // (at your option) any later version.
6
7 // This program is distributed in the hope that it will be useful,
8 // but WITHOUT ANY WARRANTY; without even the implied warranty of
9 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 // GNU General Public License for more details.
11
12 // You should have received a copy of the GNU General Public License
13 // along with this program. If not, see <http://www.gnu.org/licenses/>.
14
15 pragma solidity ^0.8.0;
16
17 import "openzeppelin-contracts/utils/cryptography/EIP712.sol";
18
19 import "../interfaces/ISignaturesValidator.sol";
20
thinking
**Evaluating FeeDistributor vulnerabilities**
I'll carefully analyze a FeeDistributor contract, focusing on reentrancy protections, signature validation quirks including malleability and lack of expiry, division-by-zero risks in token claims when supply is zero, potential token balance underflows with rebasing tokens, and a notable bug in token distribution loops capped at 20 weeks causing misallocation and stuck tokens. These issues seem mostly medium or low severity but could lead to locked tokens or DoS scenarios, so it's important to flag them clearly. Let's explore these nuances methodically!
thinking
**Summarizing detailed FeeDistributor issues**
I’m preparing a JSON report highlighting two main findings: the token checkpoint cutoff after 20 weeks that locks undistributed tokens, and the division-by-zero claim bug when total supply is zero for a week that blocks all future claims. I’ll include severity, category, and recommendations with relevant code locations and exploit scenarios to clearly present these risks. The signature malleability issue seems minor, so I’ll omit it from findings but note it briefly if needed. This will help the user understand the main contract weaknesses precisely.
codex
{"no_findings":false,"summary":"Two issues can permanently lock fee distributions: token checkpointing truncates after 20 weeks, and zero veSupply weeks trigger division-by-zero in claims.","findings":[{"severity":"medium","category":"other","title":"Token checkpointing stops after 20 weeks, leaving undistributed tokens permanently unclaimable","exploit_scenario":"If a token is not checkpointed for more than 20 weeks, `_checkpointToken` only assigns fees for the first 20 weeks, then sets `tokenState.timeCursor` to `block.timestamp` and `cachedBalance` to the full balance. The remaining weeks are never assigned to `_tokensPerWeek`, and future checkpoints see no new tokens, so the unassigned portion can never be claimed.","recommendation":"Only advance the token time cursor to the last processed week, not `block.timestamp`, and allow repeated calls to continue distributing across remaining weeks. Alternatively, keep the loop bound but persist `lastTokenTime`/`firstIncompleteWeek` so subsequent calls resume until caught up.","evidence":"`tokenState.timeCursor = uint64(block.timestamp)` is set before a loop bounded to 20 iterations, so gaps >20 weeks are not fully distributed.","locations":["src/FeeDistributor.sol:446","src/FeeDistributor.sol:460","src/FeeDistributor.sol:495"]},{"severity":"medium","category":"math","title":"Zero totalSupply weeks cause division-by-zero and permanently block claims","exploit_scenario":"If the VotingEscrow total supply is zero for any week (e.g., all locks expire), `_checkpointTotalSupply` caches 0 for that week. When a user later claims, `_claimToken` divides by `_veSupplyCache[week]` and reverts on that zero, preventing the cursor from advancing and locking all current and future claims for that token.","recommendation":"Guard against zero supply in `_claimToken` by skipping weeks where `_veSupplyCache[week] == 0` (advance the user token cursor without dividing), or prevent fee assignment for weeks with zero supply and ensure claims can bypass them safely.","evidence":"Claim math divides by `_veSupplyCache[nextUserTokenWeekToClaim]` without a zero check; `_checkpointTotalSupply` stores zero when totalSupply is zero.","locations":["src/FeeDistributor.sol:384","src/FeeDistributor.sol:637"]}]}
tokens used
32,411
{
"codex": {
"ran_at": "2026-01-11T07:45:02.332891+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 15,
"import_count": 17,
"first_party_contracts_count": 7
},
"summary": "Two issues can permanently lock fee distributions: token checkpointing truncates after 20 weeks, and zero veSupply weeks trigger division-by-zero in claims.",
"raw_final": {
"summary": "Two issues can permanently lock fee distributions: token checkpointing truncates after 20 weeks, and zero veSupply weeks trigger division-by-zero in claims.",
"findings": [
{
"title": "Token checkpointing stops after 20 weeks, leaving undistributed tokens permanently unclaimable",
"category": "other",
"evidence": "`tokenState.timeCursor = uint64(block.timestamp)` is set before a loop bounded to 20 iterations, so gaps >20 weeks are not fully distributed.",
"severity": "medium",
"locations": [
"src/FeeDistributor.sol:446",
"src/FeeDistributor.sol:460",
"src/FeeDistributor.sol:495"
],
"recommendation": "Only advance the token time cursor to the last processed week, not `block.timestamp`, and allow repeated calls to continue distributing across remaining weeks. Alternatively, keep the loop bound but persist `lastTokenTime`/`firstIncompleteWeek` so subsequent calls resume until caught up.",
"exploit_scenario": "If a token is not checkpointed for more than 20 weeks, `_checkpointToken` only assigns fees for the first 20 weeks, then sets `tokenState.timeCursor` to `block.timestamp` and `cachedBalance` to the full balance. The remaining weeks are never assigned to `_tokensPerWeek`, and future checkpoints see no new tokens, so the unassigned portion can never be claimed."
},
{
"title": "Zero totalSupply weeks cause division-by-zero and permanently block claims",
"category": "math",
"evidence": "Claim math divides by `_veSupplyCache[nextUserTokenWeekToClaim]` without a zero check; `_checkpointTotalSupply` stores zero when totalSupply is zero.",
"severity": "medium",
"locations": [
"src/FeeDistributor.sol:384",
"src/FeeDistributor.sol:637"
],
"recommendation": "Guard against zero supply in `_claimToken` by skipping weeks where `_veSupplyCache[week] == 0` (advance the user token cursor without dividing), or prevent fee assignment for weeks with zero supply and ensure claims can bypass them safely.",
"exploit_scenario": "If the VotingEscrow total supply is zero for any week (e.g., all locks expire), `_checkpointTotalSupply` caches 0 for that week. When a user later claims, `_claimToken` divides by `_veSupplyCache[week]` and reverts on that zero, preventing the cursor from advancing and locking all current and future claims for that token."
}
],
"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 0x0182 00000019: JUMPI 0000001a: PUSH1 0x00 0000001c: CALLDATALOAD 0000001d: PUSH1 0xe0 0000001f: SHR 00000020: DUP1 00000021: PUSH4 0x90193b7c 00000026: GT 00000027: PUSH2 0x00d8 0000002a: JUMPI 0000002b: DUP1 0000002c: PUSH4 0xca31879d 00000031: GT 00000032: PUSH2 0x008c 00000035: JUMPI 00000036: DUP1 00000037: PUSH4 0xe811f44b 0000003c: GT 0000003d: PUSH2 0x0066 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0xe811f44b 00000047: EQ 00000048: PUSH2 0x04ae 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0xed24911d 00000052: EQ 00000053: PUSH2 0x04c1 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0xfcaa54ee 0000005d: EQ 0000005e: PUSH2 0x04c9 00000061: JUMPI 00000062: PUSH1 0x00 00000064: DUP1 00000065: REVERT 00000066: JUMPDEST 00000067: DUP1 00000068: PUSH4 0xca31879d 0000006d: EQ 0000006e: PUSH2 0x0415 00000071: JUMPI 00000072: DUP1 00000073: PUSH4 0xd3dc4ca1 00000078: EQ 00000079: PUSH2 0x0428 0000007c: JUMPI 0000007d: DUP1 0000007e: PUSH4 0xde681faf 00000083: EQ 00000084: PUSH2 0x046b 00000087: JUMPI 00000088: PUSH1 0x00 0000008a: DUP1 0000008b: REVERT 0000008c: JUMPDEST 0000008d: DUP1 0000008e: PUSH4 0xa1648aa5 00000093: GT 00000094: PUSH2 0x00bd 00000097: JUMPI 00000098: DUP1 00000099: PUSH4 0xa1648aa5 0000009e: EQ 0000009f: PUSH2 0x0378 000000a2: JUMPI 000000a3: DUP1 000000a4: PUSH4 0xacbc1428 000000a9: EQ 000000aa: PUSH2 0x03c1 000000ad: JUMPI 000000ae: DUP1 000000af: PUSH4 0xc2c4c5c1 000000b4: EQ 000000b5: PUSH2 0x040d 000000b8: JUMPI 000000b9: PUSH1 0x00 000000bb: DUP1 000000bc: REVERT 000000bd: JUMPDEST 000000be: DUP1 000000bf: PUSH4 0x90193b7c 000000c4: EQ 000000c5: PUSH2 0x032f 000000c8: JUMPI 000000c9: DUP1 000000ca: PUSH4 0x905d10ac 000000cf: EQ 000000d0: PUSH2 0x0365 000000d3: JUMPI 000000d4: PUSH1 0x00 000000d6: DUP1 000000d7: REVERT 000000d8: JUMPDEST 000000d9: DUP1 000000da: PUSH4 0x4f3c5090 000000df: GT 000000e0: PUSH2 0x013a 000000e3: JUMPI 000000e4: DUP1 000000e5: PUSH4 0x82aa5ad4 000000ea: GT 000000eb: PUSH2 0x0114 000000ee: JUMPI 000000ef: DUP1 000000f0: PUSH4 0x82aa5ad4 000000f5: EQ 000000f6: PUSH2 0x02bb 000000f9: JUMPI 000000fa: DUP1 000000fb: PUSH4 0x876e69a1 00000100: EQ 00000101: PUSH2 0x02c3 00000104: JUMPI 00000105: DUP1 00000106: PUSH4 0x88720467 0000010b: EQ 0000010c: PUSH2 0x030f 0000010f: JUMPI 00000110: PUSH1 0x00 00000112: DUP1 00000113: REVERT 00000114: JUMPDEST 00000115: DUP1 00000116: PUSH4 0x4f3c5090 0000011b: EQ 0000011c: PUSH2 0x0275 0000011f: JUMPI 00000120: DUP1 00000121: PUSH4 0x7b8d6221 00000126: EQ 00000127: PUSH2 0x0295 0000012a: JUMPI 0000012b: DUP1 0000012c: PUSH4 0x8050a7ee 00000131: EQ 00000132: PUSH2 0x02a8 00000135: JUMPI 00000136: PUSH1 0x00 00000138: DUP1 00000139: REVERT 0000013a: JUMPDEST 0000013b: DUP1 0000013c: PUSH4 0x2308805b 00000141: GT 00000142: PUSH2 0x016b 00000145: JUMPI 00000146: DUP1 00000147: PUSH4 0x2308805b 0000014c: EQ 0000014d: PUSH2 0x01e5 00000150: JUMPI 00000151: DUP1 00000152: PUSH4 0x338b5dea 00000157: EQ 00000158: PUSH2 0x024f 0000015b: JUMPI 0000015c: DUP1 0000015d: PUSH4 0x3902b9bc 00000162: EQ 00000163: PUSH2 0x0262 00000166: JUMPI 00000167: PUSH1 0x00 00000169: DUP1 0000016a: REVERT 0000016b: JUMPDEST 0000016c: DUP1 0000016d: PUSH4 0x08b0308a 00000172: EQ 00000173: PUSH2 0x0187 00000176: JUMPI 00000177: DUP1 00000178: PUSH4 0x14866e08 0000017d: EQ 0000017e: PUSH2 0x01d0 00000181: JUMPI 00000182: JUMPDEST 00000183: PUSH1 0x00 00000185: DUP1 00000186: REVERT 00000187: JUMPDEST 00000188: PUSH1 0x40 0000018a: MLOAD 0000018b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001a0: PUSH32 0x000000000000000000000000f17d23136b4fead139f54fb766c8795faae09660 000001c1: AND 000001c2: DUP2 000001c3: MSTORE 000001c4: PUSH1 0x20 000001c6: ADD 000001c7: JUMPDEST 000001c8: PUSH1 0x40 000001ca: MLOAD 000001cb: DUP1 000001cc: SWAP2 000001cd: SUB 000001ce: SWAP1 000001cf: RETURN 000001d0: JUMPDEST 000001d1: PUSH2 0x01e3 000001d4: PUSH2 0x01de 000001d7: CALLDATASIZE 000001d8: PUSH1 0x04 000001da: PUSH2 0x24eb 000001dd: JUMP 000001de: JUMPDEST 000001df: PUSH2 0x04dc 000001e2: JUMP 000001e3: JUMPDEST 000001e4: STOP 000001e5: JUMPDEST 000001e6: PUSH2 0x0241 000001e9: PUSH2 0x01f3 000001ec: CALLDATASIZE 000001ed: PUSH1 0x04 000001ef: PUSH2 0x24eb 000001f2: JUMP 000001f3: JUMPDEST 000001f4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000209: AND 0000020a: PUSH1 0x00 0000020c: SWAP1 0000020d: DUP2 0000020e: MSTORE 0000020f: PUSH1 0x05 00000211: PUSH1 0x20 00000213: MSTORE 00000214: PUSH1 0x40 00000216: SWAP1 00000217: KECCAK256 00000218: SLOAD 00000219: PUSH17 0x0100000000000000000000000000000000 0000022b: SWAP1 0000022c: DIV 0000022d: PUSH16 0xffffffffffffffffffffffffffffffff 0000023e: AND 0000023f: SWAP1 00000240: JUMP 00000241: JUMPDEST 00000242: PUSH1 0x40 00000244: MLOAD 00000245: SWAP1 00000246: DUP2 00000247: MSTORE 00000248: PUSH1 0x20 0000024a: ADD 0000024b: PUSH2 0x01c7 0000024e: JUMP 0000024f: JUMPDEST 00000250: PUSH2 0x01e3 00000253: PUSH2 0x025d 00000256: CALLDATASIZE 00000257: PUSH1 0x04 00000259: PUSH2 0x250f 0000025c: JUMP 0000025d: JUMPDEST 0000025e: PUSH2 0x0562 00000261: JUMP 00000262: JUMPDEST 00000263: PUSH2 0x01e3 00000266: PUSH2 0x0270 00000269: CALLDATASIZE 0000026a: PUSH1 0x04 0000026c: PUSH2 0x24eb 0000026f: JUMP 00000270: JUMPDEST 00000271: PUSH2 0x0613 00000274: JUMP 00000275: JUMPDEST 00000276: PUSH2 0x0241 00000279: PUSH2 0x0283 0000027c: CALLDATASIZE 0000027d: PUSH1 0x04 0000027f: PUSH2 0x253b 00000282: JUMP 00000283: JUMPDEST 00000284: PUSH1 0x00 00000286: SWAP1 00000287: DUP2 00000288: MSTORE 00000289: PUSH1 0x04 0000028b: PUSH1 0x20 0000028d: MSTORE 0000028e: PUSH1 0x40 00000290: SWAP1 00000291: KECCAK256 00000292: SLOAD 00000293: SWAP1 00000294: JUMP 00000295: JUMPDEST 00000296: PUSH2 0x01e3 00000299: PUSH2 0x02a3 0000029c: CALLDATASIZE 0000029d: PUSH1 0x04 0000029f: PUSH2 0x25a0 000002a2: JUMP 000002a3: JUMPDEST 000002a4: PUSH2 0x068e 000002a7: JUMP 000002a8: JUMPDEST 000002a9: PUSH2 0x0241 000002ac: PUSH2 0x02b6 000002af: CALLDATASIZE 000002b0: PUSH1 0x04 000002b2: PUSH2 0x260c 000002b5: JUMP 000002b6: JUMPDEST 000002b7: PUSH2 0x081d 000002ba: JUMP 000002bb: JUMPDEST 000002bc: PUSH1 0x03 000002be: SLOAD 000002bf: PUSH2 0x0241 000002c2: JUMP 000002c3: JUMPDEST 000002c4: PUSH2 0x0241 000002c7: PUSH2 0x02d1 000002ca: CALLDATASIZE 000002cb: PUSH1 0x04 000002cd: PUSH2 0x24eb 000002d0: JUMP 000002d1: JUMPDEST 000002d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002e7: AND 000002e8: PUSH1 0x00 000002ea: SWAP1 000002eb: DUP2 000002ec: MSTORE 000002ed: PUSH1 0x07 000002ef: PUSH1 0x20 000002f1: MSTORE 000002f2: PUSH1 0x40 000002f4: SWAP1 000002f5: KECCAK256 000002f6: SLOAD 000002f7: PUSH9 0x010000000000000000 00000301: SWAP1 00000302: DIV 00000303: PUSH8 0xffffffffffffffff 0000030c: AND 0000030d: SWAP1 0000030e: JUMP 0000030f: JUMPDEST 00000310: PUSH2 0x0322 00000313: PUSH2 0x031d 00000316: CALLDATASIZE 00000317: PUSH1 0x04 00000319: PUSH2 0x2645 0000031c: JUMP 0000031d: JUMPDEST 0000031e: PUSH2 0x0832 00000321: JUMP 00000322: JUMPDEST 00000323: PUSH1 0x40 00000325: MLOAD 00000326: PUSH2 0x01c7 00000329: SWAP2 0000032a: SWAP1 0000032b: PUSH2 0x269a 0000032e: JUMP 0000032f: JUMPDEST 00000330: PUSH2 0x0241 00000333: PUSH2 0x033d 00000336: CALLDATASIZE 00000337: PUSH1 0x04 00000339: PUSH2 0x24eb 0000033c: JUMP 0000033d: JUMPDEST 0000033e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000353: AND 00000354: PUSH1 0x00 00000356: SWAP1 00000357: DUP2 00000358: MSTORE 00000359: PUSH1 0x20 0000035b: DUP2 0000035c: SWAP1 0000035d: MSTORE 0000035e: PUSH1 0x40 00000360: SWAP1 00000361: KECCAK256 00000362: SLOAD 00000363: SWAP1 00000364: JUMP 00000365: JUMPDEST 00000366: PUSH2 0x01e3 00000369: PUSH2 0x0373 0000036c: CALLDATASIZE 0000036d: PUSH1 0x04 0000036f: PUSH2 0x26d2 00000372: JUMP 00000373: JUMPDEST 00000374: PUSH2 0x098c 00000377: JUMP 00000378: JUMPDEST 00000379: PUSH2 0x03b1 0000037c: PUSH2 0x0386 0000037f: CALLDATASIZE 00000380: PUSH1 0x04 00000382: PUSH2 0x24eb 00000385: JUMP 00000386: JUMPDEST 00000387: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000039c: AND 0000039d: PUSH1 0x00 0000039f: SWAP1 000003a0: DUP2 000003a1: MSTORE 000003a2: PUSH1 0x01 000003a4: PUSH1 0x20 000003a6: MSTORE 000003a7: PUSH1 0x40 000003a9: SWAP1 000003aa: KECCAK256 000003ab: SLOAD 000003ac: PUSH1 0xff 000003ae: AND 000003af: SWAP1 000003b0: JUMP 000003b1: JUMPDEST 000003b2: PUSH1 0x40 000003b4: MLOAD 000003b5: SWAP1 000003b6: ISZERO 000003b7: ISZERO 000003b8: DUP2 000003b9: MSTORE 000003ba: PUSH1 0x20 000003bc: ADD 000003bd: PUSH2 0x01c7 000003c0: JUMP 000003c1: JUMPDEST 000003c2: PUSH2 0x0241 000003c5: PUSH2 0x03cf 000003c8: CALLDATASIZE 000003c9: PUSH1 0x04 000003cb: PUSH2 0x24eb 000003ce: JUMP 000003cf: JUMPDEST 000003d0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003e5: AND 000003e6: PUSH1 0x00 000003e8: SWAP1 000003e9: DUP2 000003ea: MSTORE 000003eb: PUSH1 0x05 000003ed: PUSH1 0x20 000003ef: MSTORE 000003f0: PUSH1 0x40 000003f2: SWAP1 000003f3: KECCAK256 000003f4: SLOAD 000003f5: PUSH9 0x010000000000000000 000003ff: SWAP1 00000400: DIV 00000401: PUSH8 0xffffffffffffffff 0000040a: AND 0000040b: SWAP1 0000040c: JUMP 0000040d: JUMPDEST 0000040e: PUSH2 0x01e3 00000411: PUSH2 0x0a30 00000414: JUMP 00000415: JUMPDEST 00000416: PUSH2 0x0241 00000419: PUSH2 0x0423 0000041c: CALLDATASIZE 0000041d: PUSH1 0x04 0000041f: PUSH2 0x260c 00000422: JUMP 00000423: JUMPDEST 00000424: PUSH2 0x0aaf 00000427: JUMP 00000428: JUMPDEST 00000429: PUSH2 0x0241 0000042c: PUSH2 0x0436 0000042f: CALLDATASIZE 00000430: PUSH1 0x04 00000432: PUSH2 0x250f 00000435: JUMP 00000436: JUMPDEST 00000437: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000044c: SWAP2 0000044d: SWAP1 0000044e: SWAP2 0000044f: AND 00000450: PUSH1 0x00 00000452: SWAP1 00000453: DUP2 00000454: MSTORE 00000455: PUSH1 0x06 00000457: PUSH1 0x20 00000459: SWAP1 0000045a: DUP2 0000045b: MSTORE 0000045c: PUSH1 0x40 0000045e: DUP1 0000045f: DUP4 00000460: KECCAK256 00000461: SWAP4 00000462: DUP4 00000463: MSTORE 00000464: SWAP3 00000465: SWAP1 00000466: MSTORE 00000467: KECCAK256 00000468: SLOAD 00000469: SWAP1 0000046a: JUMP 0000046b: JUMPDEST 0000046c: PUSH2 0x0241 0000046f: PUSH2 0x0479 00000472: CALLDATASIZE 00000473: PUSH1 0x04 00000475: PUSH2 0x250f 00000478: JUMP 00000479: JUMPDEST 0000047a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000048f: SWAP2 00000490: SWAP1 00000491: SWAP2 00000492: AND 00000493: PUSH1 0x00 00000495: SWAP1 00000496: DUP2 00000497: MSTORE 00000498: PUSH1 0x08 0000049a: PUSH1 0x20 0000049c: SWAP1 0000049d: DUP2 0000049e: MSTORE 0000049f: PUSH1 0x40 000004a1: DUP1 000004a2: DUP4 000004a3: KECCAK256 000004a4: SWAP4 000004a5: DUP4 000004a6: MSTORE 000004a7: SWAP3 000004a8: SWAP1 000004a9: MSTORE 000004aa: KECCAK256 000004ab: SLOAD 000004ac: SWAP1 000004ad: JUMP 000004ae: JUMPDEST 000004af: PUSH2 0x01e3 000004b2: PUSH2 0x04bc 000004b5: CALLDATASIZE 000004b6: PUSH1 0x04 000004b8: PUSH2 0x2724 000004bb: JUMP 000004bc: JUMPDEST 000004bd: PUSH2 0x0b61 000004c0: JUMP 000004c1: JUMPDEST 000004c2: PUSH2 0x0241 000004c5: PUSH2 0x0b6e 000004c8: JUMP 000004c9: JUMPDEST 000004ca: PUSH2 0x01e3 000004cd: PUSH2 0x04d7 000004d0: CALLDATASIZE 000004d1: PUSH1 0x04 000004d3: PUSH2 0x27bd 000004d6: JUMP 000004d7: JUMPDEST 000004d8: PUSH2 0x0b7d 000004db: JUMP 000004dc: JUMPDEST 000004dd: PUSH1 0x02 000004df: SLOAD 000004e0: PUSH1 0x01 000004e2: EQ 000004e3: PUSH2 0x054d 000004e6: JUMPI 000004e7: PUSH1 0x40 000004e9: MLOAD 000004ea: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000050b: DUP2 0000050c: MSTORE 0000050d: PUSH1 0x20 0000050f: PUSH1 0x04 00000511: DUP3 00000512: ADD 00000513: MSTORE 00000514: PUSH1 0x0a 00000516: PUSH1 0x24 00000518: DUP3 00000519: ADD 0000051a: MSTORE 0000051b: PUSH32 0x5245454e5452414e435900000000000000000000000000000000000000000000 0000053c: PUSH1 0x44 0000053e: DUP3 0000053f: ADD 00000540: MSTORE 00000541: PUSH1 0x64 00000543: ADD 00000544: JUMPDEST 00000545: PUSH1 0x40 00000547: MLOAD 00000548: DUP1 00000549: SWAP2 0000054a: SUB 0000054b: SWAP1 0000054c: REVERT 0000054d: JUMPDEST 0000054e: PUSH1 0x02 00000550: DUP1 00000551: SSTORE 00000552: PUSH2 0x055a 00000555: DUP2 00000556: PUSH2 0x0c3d 00000559: JUMP 0000055a: JUMPDEST 0000055b: POP 0000055c: PUSH1 0x01 0000055e: PUSH1 0x02 00000560: SSTORE 00000561: JUMP 00000562: JUMPDEST 00000563: PUSH1 0x02 00000565: SLOAD 00000566: PUSH1 0x01 00000568: EQ 00000569: PUSH2 0x05ce 0000056c: JUMPI 0000056d: PUSH1 0x40 0000056f: MLOAD 00000570: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000591: DUP2 00000592: MSTORE 00000593: PUSH1 0x20 00000595: PUSH1 0x04 00000597: DUP3 00000598: ADD 00000599: MSTORE 0000059a: PUSH1 0x0a 0000059c: PUSH1 0x24 0000059e: DUP3 0000059f: ADD 000005a0: MSTORE 000005a1: PUSH32 0x5245454e5452414e435900000000000000000000000000000000000000000000 000005c2: PUSH1 0x44 000005c4: DUP3 000005c5: ADD 000005c6: MSTORE 000005c7: PUSH1 0x64 000005c9: ADD 000005ca: PUSH2 0x0544 000005cd: JUMP 000005ce: JUMPDEST 000005cf: PUSH1 0x02 000005d1: DUP1 000005d2: SSTORE 000005d3: PUSH2 0x05dd 000005d6: DUP3 000005d7: PUSH1 0x00 000005d9: PUSH2 0x124f 000005dc: JUMP 000005dd: JUMPDEST 000005de: PUSH2 0x05ff 000005e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005f6: DUP4 000005f7: AND 000005f8: CALLER 000005f9: ADDRESS 000005fa: DUP5 000005fb: PUSH2 0x1718 000005fe: JUMP 000005ff: JUMPDEST 00000600: PUSH2 0x060a 00000603: DUP3 00000604: PUSH1 0x01 00000606: PUSH2 0x124f 00000609: JUMP 0000060a: JUMPDEST 0000060b: POP 0000060c: POP 0000060d: PUSH1 0x01 0000060f: PUSH1 0x02 00000611: SSTORE 00000612: JUMP 00000613: JUMPDEST 00000614: PUSH1 0x02 00000616: SLOAD 00000617: PUSH1 0x01 00000619: EQ 0000061a: PUSH2 0x067f 0000061d: JUMPI 0000061e: PUSH1 0x40 00000620: MLOAD 00000621: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000642: DUP2 00000643: MSTORE 00000644: PUSH1 0x20 00000646: PUSH1 0x04 00000648: DUP3 00000649: ADD 0000064a: MSTORE 0000064b: PUSH1 0x0a 0000064d: PUSH1 0x24 0000064f: DUP3 00000650: ADD 00000651: MSTORE 00000652: PUSH32 0x5245454e5452414e435900000000000000000000000000000000000000000000 00000673: PUSH1 0x44 00000675: DUP3 00000676: ADD 00000677: MSTORE 00000678: PUSH1 0x64 0000067a: ADD 0000067b: PUSH2 0x0544 0000067e: JUMP 0000067f: JUMPDEST 00000680: PUSH1 0x02 00000682: DUP1 00000683: SSTORE 00000684: PUSH2 0x055a 00000687: DUP2 00000688: PUSH1 0x01 0000068a: PUSH2 0x124f 0000068d: JUMP 0000068e: JUMPDEST 0000068f: PUSH1 0x02 00000691: SLOAD 00000692: PUSH1 0x01 00000694: EQ 00000695: PUSH2 0x06fa 00000698: JUMPI 00000699: PUSH1 0x40 0000069b: MLOAD 0000069c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000006bd: DUP2 000006be: MSTORE 000006bf: PUSH1 0x20 000006c1: PUSH1 0x04 000006c3: DUP3 000006c4: ADD 000006c5: MSTORE 000006c6: PUSH1 0x0a 000006c8: PUSH1 0x24 000006ca: DUP3 000006cb: ADD 000006cc: MSTORE 000006cd: PUSH32 0x5245454e5452414e435900000000000000000000000000000000000000000000 000006ee: PUSH1 0x44 000006f0: DUP3 000006f1: ADD 000006f2: MSTORE 000006f3: PUSH1 0x64 000006f5: ADD 000006f6: PUSH2 0x0544 000006f9: JUMP 000006fa: JUMPDEST 000006fb: PUSH1 0x02 000006fd: DUP1 000006fe: SSTORE 000006ff: DUP3 00000700: DUP2 00000701: EQ 00000702: PUSH2 0x0737 00000705: JUMPI 00000706: PUSH1 0x40 00000708: MLOAD 00000709: PUSH32 0xb0208d4900000000000000000000000000000000000000000000000000000000 0000072a: DUP2 0000072b: MSTORE 0000072c: PUSH1 0x04 0000072e: ADD 0000072f: PUSH1 0x40 00000731: MLOAD 00000732: DUP1 00000733: SWAP2 00000734: SUB 00000735: SWAP1 00000736: REVERT 00000737: JUMPDEST 00000738: DUP3 00000739: PUSH1 0x00 0000073b: JUMPDEST 0000073c: DUP2 0000073d: DUP2 0000073e: LT 0000073f: ISZERO 00000740: PUSH2 0x0810 00000743: JUMPI 00000744: PUSH2 0x0774 00000747: DUP7 00000748: DUP7 00000749: DUP4 0000074a: DUP2 0000074b: DUP2 0000074c: LT 0000074d: PUSH2 0x0758 00000750: JUMPI 00000751: PUSH2 0x0758 00000754: PUSH2 0x2893 00000757: JUMP 00000758: JUMPDEST 00000759: SWAP1 0000075a: POP 0000075b: PUSH1 0x20 0000075d: MUL 0000075e: ADD 0000075f: PUSH1 0x20 00000761: DUP2 00000762: ADD 00000763: SWAP1 00000764: PUSH2 0x076d 00000767: SWAP2 00000768: SWAP1 00000769: PUSH2 0x24eb 0000076c: JUMP 0000076d: JUMPDEST 0000076e: PUSH1 0x00 00000770: PUSH2 0x124f 00000773: JUMP 00000774: JUMPDEST 00000775: PUSH2 0x07d7 00000778: CALLER 00000779: ADDRESS 0000077a: DUP7 0000077b: DUP7 0000077c: DUP6 0000077d: DUP2 0000077e: DUP2 0000077f: LT 00000780: PUSH2 0x078b 00000783: JUMPI 00000784: PUSH2 0x078b 00000787: PUSH2 0x2893 0000078a: JUMP 0000078b: JUMPDEST 0000078c: SWAP1 0000078d: POP 0000078e: PUSH1 0x20 00000790: MUL 00000791: ADD 00000792: CALLDATALOAD 00000793: DUP10 00000794: DUP10 00000795: DUP7 00000796: DUP2 00000797: DUP2 00000798: LT 00000799: PUSH2 0x07a4 0000079c: JUMPI 0000079d: PUSH2 0x07a4 000007a0: PUSH2 0x2893 000007a3: JUMP 000007a4: JUMPDEST 000007a5: SWAP1 000007a6: POP 000007a7: PUSH1 0x20 000007a9: MUL 000007aa: ADD 000007ab: PUSH1 0x20 000007ad: DUP2 000007ae: ADD 000007af: SWAP1 000007b0: PUSH2 0x07b9 000007b3: SWAP2 000007b4: SWAP1 000007b5: PUSH2 0x24eb 000007b8: JUMP 000007b9: JUMPDEST 000007ba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007cf: AND 000007d0: SWAP3 000007d1: SWAP2 000007d2: SWAP1 000007d3: PUSH2 0x1718 000007d6: JUMP 000007d7: JUMPDEST 000007d8: PUSH2 0x0808 000007db: DUP7 000007dc: DUP7 000007dd: DUP4 000007de: DUP2 000007df: DUP2 000007e0: LT 000007e1: PUSH2 0x07ec 000007e4: JUMPI 000007e5: PUSH2 0x07ec 000007e8: PUSH2 0x2893 000007eb: JUMP 000007ec: JUMPDEST 000007ed: SWAP1 000007ee: POP 000007ef: PUSH1 0x20 000007f1: MUL 000007f2: ADD 000007f3: PUSH1 0x20 000007f5: DUP2 000007f6: ADD 000007f7: SWAP1 000007f8: PUSH2 0x0801 000007fb: SWAP2 000007fc: SWAP1 000007fd: PUSH2 0x24eb 00000800: JUMP 00000801: JUMPDEST 00000802: PUSH1 0x01 00000804: PUSH2 0x124f 00000807: JUMP 00000808: JUMPDEST 00000809: PUSH1 0x01 0000080b: ADD 0000080c: PUSH2 0x073b 0000080f: JUMP 00000810: JUMPDEST 00000811: POP 00000812: POP 00000813: PUSH1 0x01 00000815: PUSH1 0x02 00000817: SSTORE 00000818: POP 00000819: POP 0000081a: POP 0000081b: POP 0000081c: JUMP 0000081d: JUMPDEST 0000081e: PUSH1 0x00 00000820: PUSH2 0x0829 00000823: DUP4 00000824: DUP4 00000825: PUSH2 0x17de 00000828: JUMP 00000829: JUMPDEST 0000082a: SWAP1 0000082b: POP 0000082c: JUMPDEST 0000082d: SWAP3 0000082e: SWAP2 0000082f: POP 00000830: POP 00000831: JUMP 00000832: JUMPDEST 00000833: PUSH1 0x60 00000835: PUSH1 0x02 00000837: SLOAD 00000838: PUSH1 0x01 0000083a: EQ 0000083b: PUSH2 0x08a0 0000083e: JUMPI 0000083f: PUSH1 0x40 00000841: MLOAD 00000842: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000863: DUP2 00000864: MSTORE 00000865: PUSH1 0x20 00000867: PUSH1 0x04 00000869: DUP3 0000086a: ADD 0000086b: MSTORE 0000086c: PUSH1 0x0a 0000086e: PUSH1 0x24 00000870: DUP3 00000871: ADD 00000872: MSTORE 00000873: PUSH32 0x5245454e5452414e435900000000000000000000000000000000000000000000 00000894: PUSH1 0x44 00000896: DUP3 00000897: ADD 00000898: MSTORE 00000899: PUSH1 0x64 0000089b: ADD 0000089c: PUSH2 0x0544 0000089f: JUMP 000008a0: JUMPDEST 000008a1: PUSH1 0x02 000008a3: DUP1 000008a4: SSTORE 000008a5: DUP4 000008a6: PUSH2 0x08ae 000008a9: DUP2 000008aa: PUSH2 0x1876 000008ad: JUMP 000008ae: JUMPDEST 000008af: PUSH2 0x08b6 000008b2: PUSH2 0x18f3 000008b5: JUMP 000008b6: JUMPDEST 000008b7: PUSH2 0x08bf 000008ba: DUP6 000008bb: PUSH2 0x0c3d 000008be: JUMP 000008bf: JUMPDEST 000008c0: DUP3 000008c1: PUSH1 0x00 000008c3: DUP2 000008c4: PUSH8 0xffffffffffffffff 000008cd: DUP2 000008ce: GT 000008cf: ISZERO 000008d0: PUSH2 0x08db 000008d3: JUMPI 000008d4: PUSH2 0x08db 000008d7: PUSH2 0x273f 000008da: JUMP 000008db: JUMPDEST 000008dc: PUSH1 0x40 000008de: MLOAD 000008df: SWAP1 000008e0: DUP1 000008e1: DUP3 000008e2: MSTORE 000008e3: DUP1 000008e4: PUSH1 0x20 000008e6: MUL 000008e7: PUSH1 0x20 000008e9: ADD 000008ea: DUP3 000008eb: ADD 000008ec: PUSH1 0x40 000008ee: MSTORE 000008ef: DUP1 000008f0: ISZERO 000008f1: PUSH2 0x0904 000008f4: JUMPI 000008f5: DUP2 000008f6: PUSH1 0x20 000008f8: ADD 000008f9: PUSH1 0x20 000008fb: DUP3 000008fc: MUL 000008fd: DUP1 000008fe: CALLDATASIZE 000008ff: DUP4 00000900: CALLDATACOPY 00000901: ADD 00000902: SWAP1 00000903: POP 00000904: JUMPDEST 00000905: POP 00000906: SWAP1 00000907: POP 00000908: PUSH1 0x00 0000090a: JUMPDEST 0000090b: DUP3 0000090c: DUP2 0000090d: LT 0000090e: ISZERO 0000090f: PUSH2 0x097c 00000912: JUMPI 00000913: PUSH2 0x0927 00000916: DUP8 00000917: DUP8 00000918: DUP4 00000919: DUP2 0000091a: DUP2 0000091b: LT 0000091c: PUSH2 0x0758 0000091f: JUMPI 00000920: PUSH2 0x0758 00000923: PUSH2 0x2893 00000926: JUMP 00000927: JUMPDEST 00000928: PUSH2 0x0957 0000092b: DUP9 0000092c: DUP9 0000092d: DUP9 0000092e: DUP5 0000092f: DUP2 00000930: DUP2 00000931: LT 00000932: PUSH2 0x093d 00000935: JUMPI 00000936: PUSH2 0x093d 00000939: PUSH2 0x2893 0000093c: JUMP 0000093d: JUMPDEST 0000093e: SWAP1 0000093f: POP 00000940: PUSH1 0x20 00000942: MUL 00000943: ADD 00000944: PUSH1 0x20 00000946: DUP2 00000947: ADD 00000948: SWAP1 00000949: PUSH2 0x0952 0000094c: SWAP2 0000094d: SWAP1 0000094e: PUSH2 0x24eb 00000951: JUMP 00000952: JUMPDEST 00000953: PUSH2 0x1a7d 00000956: JUMP 00000957: JUMPDEST 00000958: DUP3 00000959: DUP3 0000095a: DUP2 0000095b: MLOAD 0000095c: DUP2 0000095d: LT 0000095e: PUSH2 0x0969 00000961: JUMPI 00000962: PUSH2 0x0969 00000965: PUSH2 0x2893 00000968: JUMP 00000969: JUMPDEST 0000096a: PUSH1 0x20 0000096c: SWAP1 0000096d: DUP2 0000096e: MUL 0000096f: SWAP2 00000970: SWAP1 00000971: SWAP2 00000972: ADD 00000973: ADD 00000974: MSTORE 00000975: PUSH1 0x01 00000977: ADD 00000978: PUSH2 0x090a 0000097b: JUMP 0000097c: JUMPDEST 0000097d: POP 0000097e: PUSH1 0x01 00000980: PUSH1 0x02 00000982: SSTORE 00000983: SWAP7 00000984: SWAP6 00000985: POP 00000986: POP 00000987: POP 00000988: POP 00000989: POP 0000098a: POP 0000098b: JUMP 0000098c: JUMPDEST 0000098d: PUSH1 0x02 0000098f: SLOAD 00000990: PUSH1 0x01 00000992: EQ 00000993: PUSH2 0x09f8 00000996: JUMPI 00000997: PUSH1 0x40 00000999: MLOAD 0000099a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000009bb: DUP2 000009bc: MSTORE 000009bd: PUSH1 0x20 000009bf: PUSH1 0x04 000009c1: DUP3 000009c2: ADD 000009c3: MSTORE 000009c4: PUSH1 0x0a 000009c6: PUSH1 0x24 000009c8: DUP3 000009c9: ADD 000009ca: MSTORE 000009cb: PUSH32 0x5245454e5452414e435900000000000000000000000000000000000000000000 000009ec: PUSH1 0x44 000009ee: DUP3 000009ef: ADD 000009f0: MSTORE 000009f1: PUSH1 0x64 000009f3: ADD 000009f4: PUSH2 0x0544 000009f7: JUMP 000009f8: JUMPDEST 000009f9: PUSH1 0x02 000009fb: DUP1 000009fc: SSTORE 000009fd: DUP1 000009fe: PUSH1 0x00 00000a00: JUMPDEST 00000a01: DUP2 00000a02: DUP2 00000a03: LT 00000a04: ISZERO 00000a05: PUSH2 0x0a25 00000a08: JUMPI 00000a09: PUSH2 0x0a1d 00000a0c: DUP5 00000a0d: DUP5 00000a0e: DUP4 00000a0f: DUP2 00000a10: DUP2 00000a11: LT 00000a12: PUSH2 0x07ec 00000a15: JUMPI 00000a16: PUSH2 0x07ec 00000a19: PUSH2 0x2893 00000a1c: JUMP 00000a1d: JUMPDEST 00000a1e: PUSH1 0x01 00000a20: ADD 00000a21: PUSH2 0x0a00 00000a24: JUMP 00000a25: JUMPDEST 00000a26: POP 00000a27: POP 00000a28: PUSH1 0x01 00000a2a: PUSH1 0x02 00000a2c: SSTORE 00000a2d: POP 00000a2e: POP 00000a2f: JUMP 00000a30: JUMPDEST 00000a31: PUSH1 0x02 00000a33: SLOAD 00000a34: PUSH1 0x01 00000a36: EQ 00000a37: PUSH2 0x0a9c 00000a3a: JUMPI 00000a3b: PUSH1 0x40 00000a3d: MLOAD 00000a3e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000a5f: DUP2 00000a60: MSTORE 00000a61: PUSH1 0x20 00000a63: PUSH1 0x04 00000a65: DUP3 00000a66: ADD 00000a67: MSTORE 00000a68: PUSH1 0x0a 00000a6a: PUSH1 0x24 00000a6c: DUP3 00000a6d: ADD 00000a6e: MSTORE 00000a6f: PUSH32 0x5245454e5452414e435900000000000000000000000000000000000000000000 00000a90: PUSH1 0x44 00000a92: DUP3 00000a93: ADD 00000a94: MSTORE 00000a95: PUSH1 0x64 00000a97: ADD 00000a98: PUSH2 0x0544 00000a9b: JUMP 00000a9c: JUMPDEST 00000a9d: PUSH1 0x02 00000a9f: DUP1 00000aa0: SSTORE 00000aa1: PUSH2 0x0aa8 00000aa4: PUSH2 0x18f3 00000aa7: JUMP 00000aa8: JUMPDEST 00000aa9: PUSH1 0x01 00000aab: PUSH1 0x02 00000aad: SSTORE 00000aae: JUMP 00000aaf: JUMPDEST 00000ab0: PUSH1 0x00 00000ab2: PUSH1 0x02 00000ab4: SLOAD 00000ab5: PUSH1 0x01 00000ab7: EQ 00000ab8: PUSH2 0x0b1d 00000abb: JUMPI 00000abc: PUSH1 0x40 00000abe: MLOAD 00000abf: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000ae0: DUP2 00000ae1: MSTORE 00000ae2: PUSH1 0x20 00000ae4: PUSH1 0x04 00000ae6: DUP3 00000ae7: ADD 00000ae8: MSTORE 00000ae9: PUSH1 0x0a 00000aeb: PUSH1 0x24 00000aed: DUP3 00000aee: ADD 00000aef: MSTORE 00000af0: PUSH32 0x5245454e5452414e435900000000000000000000000000000000000000000000 00000b11: PUSH1 0x44 00000b13: DUP3 00000b14: ADD 00000b15: MSTORE 00000b16: PUSH1 0x64 00000b18: ADD 00000b19: PUSH2 0x0544 00000b1c: JUMP 00000b1d: JUMPDEST 00000b1e: PUSH1 0x02 00000b20: DUP1 00000b21: SSTORE 00000b22: DUP3 00000b23: PUSH2 0x0b2b 00000b26: DUP2 00000b27: PUSH2 0x1876 00000b2a: JUMP 00000b2b: JUMPDEST 00000b2c: PUSH2 0x0b33 00000b2f: PUSH2 0x18f3 00000b32: JUMP 00000b33: JUMPDEST 00000b34: PUSH2 0x0b3c 00000b37: DUP5 00000b38: PUSH2 0x0c3d 00000b3b: JUMP 00000b3c: JUMPDEST 00000b3d: PUSH2 0x0b47 00000b40: DUP4 00000b41: PUSH1 0x00 00000b43: PUSH2 0x124f 00000b46: JUMP 00000b47: JUMPDEST 00000b48: PUSH1 0x00 00000b4a: PUSH2 0x0b53 00000b4d: DUP6 00000b4e: DUP6 00000b4f: PUSH2 0x1a7d 00000b52: JUMP 00000b53: JUMPDEST 00000b54: PUSH1 0x01 00000b56: PUSH1 0x02 00000b58: SSTORE 00000b59: SWAP6 00000b5a: SWAP5 00000b5b: POP 00000b5c: POP 00000b5d: POP 00000b5e: POP 00000b5f: POP 00000b60: JUMP 00000b61: JUMPDEST 00000b62: PUSH2 0x0b6b 00000b65: CALLER 00000b66: DUP3 00000b67: PUSH2 0x1cc5 00000b6a: JUMP 00000b6b: JUMPDEST 00000b6c: POP 00000b6d: JUMP 00000b6e: JUMPDEST 00000b6f: PUSH1 0x00 00000b71: PUSH2 0x0b78 00000b74: PUSH2 0x1d53 00000b77: JUMP 00000b78: JUMPDEST 00000b79: SWAP1 00000b7a: POP 00000b7b: SWAP1 00000b7c: JUMP 00000b7d: JUMPDEST 00000b7e: PUSH1 0x00 00000b80: PUSH32 0xbd291ffccec065968fe20c5f8debdad73ab50837733f357eeae8814178015a90 00000ba1: DUP5 00000ba2: DUP5 00000ba3: PUSH2 0x0bce 00000ba6: DUP8 00000ba7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bbc: AND 00000bbd: PUSH1 0x00 00000bbf: SWAP1 00000bc0: DUP2 00000bc1: MSTORE 00000bc2: PUSH1 0x20 00000bc4: DUP2 00000bc5: SWAP1 00000bc6: MSTORE 00000bc7: PUSH1 0x40 00000bc9: SWAP1 00000bca: KECCAK256 00000bcb: SLOAD 00000bcc: SWAP1 00000bcd: JUMP 00000bce: JUMPDEST 00000bcf: PUSH1 0x40 00000bd1: DUP1 00000bd2: MLOAD 00000bd3: PUSH1 0x20 00000bd5: DUP2 00000bd6: ADD 00000bd7: SWAP6 00000bd8: SWAP1 00000bd9: SWAP6 00000bda: MSTORE 00000bdb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bf0: SWAP1 00000bf1: SWAP4 00000bf2: AND 00000bf3: SWAP3 00000bf4: DUP5 00000bf5: ADD 00000bf6: SWAP3 00000bf7: SWAP1 00000bf8: SWAP3 00000bf9: MSTORE 00000bfa: ISZERO 00000bfb: ISZERO 00000bfc: PUSH1 0x60 00000bfe: DUP4 00000bff: ADD 00000c00: MSTORE 00000c01: PUSH1 0x80 00000c03: DUP3 00000c04: ADD 00000c05: MSTORE 00000c06: PUSH1 0xa0 00000c08: ADD 00000c09: PUSH1 0x40 00000c0b: MLOAD 00000c0c: PUSH1 0x20 00000c0e: DUP2 00000c0f: DUP4 00000c10: SUB 00000c11: SUB 00000c12: DUP2 00000c13: MSTORE 00000c14: SWAP1 00000c15: PUSH1 0x40 00000c17: MSTORE 00000c18: DUP1 00000c19: MLOAD 00000c1a: SWAP1 00000c1b: PUSH1 0x20 00000c1d: ADD 00000c1e: KECCAK256 00000c1f: SWAP1 00000c20: POP 00000c21: PUSH2 0x0c2d 00000c24: DUP5 00000c25: DUP3 00000c26: DUP5 00000c27: PUSH1 0x01 00000c29: PUSH2 0x1e87 00000c2c: JUMP 00000c2d: JUMPDEST 00000c2e: PUSH2 0x0c37 00000c31: DUP5 00000c32: DUP5 00000c33: PUSH2 0x1cc5 00000c36: JUMP 00000c37: JUMPDEST 00000c38: POP 00000c39: POP 00000c3a: POP 00000c3b: POP 00000c3c: JUMP 00000c3d: JUMPDEST 00000c3e: PUSH1 0x40 00000c40: MLOAD 00000c41: PUSH32 0x010ae75700000000000000000000000000000000000000000000000000000000 00000c62: DUP2 00000c63: MSTORE 00000c64: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c79: DUP3 00000c7a: DUP2 00000c7b: AND 00000c7c: PUSH1 0x04 00000c7e: DUP4 00000c7f: ADD 00000c80: MSTORE 00000c81: PUSH1 0x00 00000c83: SWAP2 00000c84: PUSH32 0x000000000000000000000000f17d23136b4fead139f54fb766c8795faae09660 00000ca5: SWAP1 00000ca6: SWAP2 00000ca7: AND 00000ca8: SWAP1 00000ca9: PUSH4 0x010ae757 00000cae: SWAP1 00000caf: PUSH1 0x24 00000cb1: ADD 00000cb2: PUSH1 0x20 00000cb4: PUSH1 0x40 00000cb6: MLOAD 00000cb7: DUP1 00000cb8: DUP4 00000cb9: SUB 00000cba: DUP2 00000cbb: DUP7 00000cbc: GAS 00000cbd: STATICCALL 00000cbe: ISZERO 00000cbf: DUP1 00000cc0: ISZERO 00000cc1: PUSH2 0x0cce 00000cc4: JUMPI 00000cc5: RETURNDATASIZE 00000cc6: PUSH1 0x00 00000cc8: DUP1 00000cc9: RETURNDATACOPY 00000cca: RETURNDATASIZE 00000ccb: PUSH1 0x00 00000ccd: REVERT 00000cce: JUMPDEST 00000ccf: POP 00000cd0: POP 00000cd1: POP 00000cd2: POP 00000cd3: PUSH1 0x40 00000cd5: MLOAD 00000cd6: RETURNDATASIZE 00000cd7: PUSH1 0x1f 00000cd9: NOT 00000cda: PUSH1 0x1f 00000cdc: DUP3 00000cdd: ADD 00000cde: AND 00000cdf: DUP3 00000ce0: ADD 00000ce1: DUP1 00000ce2: PUSH1 0x40 00000ce4: MSTORE 00000ce5: POP 00000ce6: DUP2 00000ce7: ADD 00000ce8: SWAP1 00000ce9: PUSH2 0x0cf2 00000cec: SWAP2 00000ced: SWAP1 00000cee: PUSH2 0x28c2 00000cf1: JUMP 00000cf2: JUMPDEST 00000cf3: SWAP1 00000cf4: POP 00000cf5: DUP1 00000cf6: PUSH1 0x00 00000cf8: SUB 00000cf9: PUSH2 0x0d00 00000cfc: JUMPI 00000cfd: POP 00000cfe: POP 00000cff: JUMP 00000d00: JUMPDEST 00000d01: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d16: DUP3 00000d17: AND 00000d18: PUSH1 0x00 00000d1a: SWAP1 00000d1b: DUP2 00000d1c: MSTORE 00000d1d: PUSH1 0x07 00000d1f: PUSH1 0x20 00000d21: MSTORE 00000d22: PUSH1 0x40 00000d24: DUP2 00000d25: KECCAK256 00000d26: DUP1 00000d27: SLOAD 00000d28: SWAP1 00000d29: SWAP2 00000d2a: PUSH9 0x010000000000000000 00000d34: SWAP1 00000d35: SWAP2 00000d36: DIV 00000d37: PUSH8 0xffffffffffffffff 00000d40: AND 00000d41: SWAP1 00000d42: DUP2 00000d43: DUP2 00000d44: SUB 00000d45: PUSH2 0x0d7c 00000d48: JUMPI 00000d49: PUSH2 0x0d75 00000d4c: DUP6 00000d4d: PUSH32 0x0000000000000000000000000000000000000000000000000000000063dafd00 00000d6e: PUSH1 0x00 00000d70: DUP8 00000d71: PUSH2 0x1eb4 00000d74: JUMP 00000d75: JUMPDEST 00000d76: SWAP1 00000d77: POP 00000d78: PUSH2 0x0dcd 00000d7b: JUMP 00000d7c: JUMPDEST 00000d7d: TIMESTAMP 00000d7e: DUP3 00000d7f: LT 00000d80: PUSH2 0x0d8a 00000d83: JUMPI 00000d84: POP 00000d85: POP 00000d86: POP 00000d87: POP 00000d88: POP 00000d89: JUMP 00000d8a: JUMPDEST 00000d8b: POP 00000d8c: DUP2 00000d8d: SLOAD 00000d8e: PUSH17 0x0100000000000000000000000000000000 00000da0: SWAP1 00000da1: DIV 00000da2: PUSH16 0xffffffffffffffffffffffffffffffff 00000db3: AND 00000db4: PUSH1 0x14 00000db6: DUP2 00000db7: DUP6 00000db8: SUB 00000db9: GT 00000dba: ISZERO 00000dbb: PUSH2 0x0dcd 00000dbe: JUMPI 00000dbf: PUSH2 0x0dca 00000dc2: DUP6 00000dc3: DUP4 00000dc4: DUP4 00000dc5: DUP8 00000dc6: PUSH2 0x1eb4 00000dc9: JUMP 00000dca: JUMPDEST 00000dcb: SWAP1 00000dcc: POP 00000dcd: JUMPDEST 00000dce: DUP1 00000dcf: PUSH1 0x00 00000dd1: SUB 00000dd2: PUSH2 0x0dd9 00000dd5: JUMPI 00000dd6: POP 00000dd7: PUSH1 0x01 00000dd9: JUMPDEST 00000dda: PUSH1 0x40 00000ddc: MLOAD 00000ddd: PUSH32 0x28d09d4700000000000000000000000000000000000000000000000000000000 00000dfe: DUP2 00000dff: MSTORE 00000e00: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e15: DUP7 00000e16: DUP2 00000e17: AND 00000e18: PUSH1 0x04 00000e1a: DUP4 00000e1b: ADD 00000e1c: MSTORE 00000e1d: PUSH1 0x24 00000e1f: DUP3 00000e20: ADD 00000e21: DUP4 00000e22: SWAP1 00000e23: MSTORE 00000e24: PUSH1 0x00 00000e26: SWAP2 00000e27: PUSH32 0x000000000000000000000000f17d23136b4fead139f54fb766c8795faae09660 00000e48: SWAP1 00000e49: SWAP2 00000e4a: AND 00000e4b: SWAP1 00000e4c: PUSH4 0x28d09d47 00000e51: SWAP1 00000e52: PUSH1 0x44 00000e54: ADD 00000e55: PUSH1 0x80 00000e57: PUSH1 0x40 00000e59: MLOAD 00000e5a: DUP1 00000e5b: DUP4 00000e5c: SUB 00000e5d: DUP2 00000e5e: DUP7 00000e5f: GAS 00000e60: STATICCALL 00000e61: ISZERO 00000e62: DUP1 00000e63: ISZERO 00000e64: PUSH2 0x0e71 00000e67: JUMPI 00000e68: RETURNDATASIZE 00000e69: PUSH1 0x00 00000e6b: DUP1 00000e6c: RETURNDATACOPY 00000e6d: RETURNDATASIZE 00000e6e: PUSH1 0x00 00000e70: REVERT 00000e71: JUMPDEST 00000e72: POP 00000e73: POP 00000e74: POP 00000e75: POP 00000e76: PUSH1 0x40 00000e78: MLOAD 00000e79: RETURNDATASIZE 00000e7a: PUSH1 0x1f 00000e7c: NOT 00000e7d: PUSH1 0x1f 00000e7f: DUP3 00000e80: ADD 00000e81: AND 00000e82: DUP3 00000e83: ADD 00000e84: DUP1 00000e85: PUSH1 0x40 00000e87: MSTORE 00000e88: POP 00000e89: DUP2 00000e8a: ADD 00000e8b: SWAP1 00000e8c: PUSH2 0x0e95 00000e8f: SWAP2 00000e90: SWAP1 00000e91: PUSH2 0x28ed 00000e94: JUMP 00000e95: JUMPDEST 00000e96: SWAP1 00000e97: POP 00000e98: DUP3 00000e99: PUSH1 0x00 00000e9b: SUB 00000e9c: PUSH2 0x0fb8 00000e9f: JUMPI 00000ea0: PUSH32 0x0000000000000000000000000000000000000000000000000000000063dafd00 00000ec1: TIMESTAMP 00000ec2: GT 00000ec3: PUSH2 0x0f4d 00000ec6: JUMPI 00000ec7: PUSH1 0x40 00000ec9: MLOAD 00000eca: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000eeb: DUP2 00000eec: MSTORE 00000eed: PUSH1 0x20 00000eef: PUSH1 0x04 00000ef1: DUP3 00000ef2: ADD 00000ef3: MSTORE 00000ef4: PUSH1 0x24 00000ef6: DUP1 00000ef7: DUP3 00000ef8: ADD 00000ef9: MSTORE 00000efa: PUSH32 0x46656520646973747269627574696f6e20686173206e6f742073746172746564 00000f1b: PUSH1 0x44 00000f1d: DUP3 00000f1e: ADD 00000f1f: MSTORE 00000f20: PUSH32 0x2079657400000000000000000000000000000000000000000000000000000000 00000f41: PUSH1 0x64 00000f43: DUP3 00000f44: ADD 00000f45: MSTORE 00000f46: PUSH1 0x84 00000f48: ADD 00000f49: PUSH2 0x0544 00000f4c: JUMP 00000f4d: JUMPDEST 00000f4e: PUSH2 0x0f83 00000f51: PUSH32 0x0000000000000000000000000000000000000000000000000000000063dafd00 00000f72: PUSH2 0x0f7e 00000f75: DUP4 00000f76: PUSH1 0x40 00000f78: ADD 00000f79: MLOAD 00000f7a: PUSH2 0x1fbd 00000f7d: JUMP 00000f7e: JUMPDEST 00000f7f: PUSH2 0x1fd2 00000f82: JUMP 00000f83: JUMPDEST 00000f84: DUP5 00000f85: SLOAD 00000f86: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 00000fa7: AND 00000fa8: PUSH8 0xffffffffffffffff 00000fb1: DUP3 00000fb2: AND 00000fb3: OR 00000fb4: DUP6 00000fb5: SSTORE 00000fb6: SWAP3 00000fb7: POP 00000fb8: JUMPDEST 00000fb9: PUSH1 0x40 00000fbb: DUP1 00000fbc: MLOAD 00000fbd: PUSH1 0x80 00000fbf: DUP2 00000fc0: ADD 00000fc1: DUP3 00000fc2: MSTORE 00000fc3: PUSH1 0x00 00000fc5: DUP1 00000fc6: DUP3 00000fc7: MSTORE 00000fc8: PUSH1 0x20 00000fca: DUP3 00000fcb: ADD 00000fcc: DUP2 00000fcd: SWAP1 00000fce: MSTORE 00000fcf: SWAP2 00000fd0: DUP2 00000fd1: ADD 00000fd2: DUP3 00000fd3: SWAP1 00000fd4: MSTORE 00000fd5: PUSH1 0x60 00000fd7: DUP2 00000fd8: ADD 00000fd9: DUP3 00000fda: SWAP1 00000fdb: MSTORE 00000fdc: SWAP1 00000fdd: JUMPDEST 00000fde: PUSH1 0x32 00000fe0: DUP2 00000fe1: LT 00000fe2: ISZERO 00000fe3: PUSH2 0x11c4 00000fe6: JUMPI 00000fe7: DUP3 00000fe8: PUSH1 0x40 00000fea: ADD 00000feb: MLOAD 00000fec: DUP6 00000fed: LT 00000fee: ISZERO 00000fef: DUP1 00000ff0: ISZERO 00000ff1: PUSH2 0x0ffa 00000ff4: JUMPI 00000ff5: POP 00000ff6: DUP7 00000ff7: DUP5 00000ff8: GT 00000ff9: ISZERO 00000ffa: JUMPDEST 00000ffb: ISZERO 00000ffc: PUSH2 0x1100 00000fff: JUMPI 00001000: PUSH1 0x01 00001002: DUP5 00001003: ADD 00001004: SWAP4 00001005: POP 00001006: DUP3 00001007: SWAP2 00001008: POP 00001009: DUP7 0000100a: DUP5 0000100b: GT 0000100c: ISZERO 0000100d: PUSH2 0x1042 00001010: JUMPI 00001011: PUSH1 0x40 00001013: MLOAD 00001014: DUP1 00001015: PUSH1 0x80 00001017: ADD 00001018: PUSH1 0x40 0000101a: MSTORE 0000101b: DUP1 0000101c: PUSH1 0x00 0000101e: PUSH1 0x0f 00001020: SIGNEXTEND 00001021: DUP2 00001022: MSTORE 00001023: PUSH1 0x20 00001025: ADD 00001026: PUSH1 0x00 00001028: PUSH1 0x0f 0000102a: SIGNEXTEND 0000102b: DUP2 0000102c: MSTORE 0000102d: PUSH1 0x20 0000102f: ADD 00001030: PUSH1 0x00 00001032: DUP2 00001033: MSTORE 00001034: PUSH1 0x20 00001036: ADD 00001037: PUSH1 0x00 00001039: DUP2 0000103a: MSTORE 0000103b: POP 0000103c: SWAP3 0000103d: POP 0000103e: PUSH2 0x11bc 00001041: JUMP 00001042: JUMPDEST 00001043: PUSH1 0x40 00001045: MLOAD 00001046: PUSH32 0x28d09d4700000000000000000000000000000000000000000000000000000000 00001067: DUP2 00001068: MSTORE 00001069: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000107e: DUP10 0000107f: DUP2 00001080: AND 00001081: PUSH1 0x04 00001083: DUP4 00001084: ADD 00001085: MSTORE 00001086: PUSH1 0x24 00001088: DUP3 00001089: ADD 0000108a: DUP7 0000108b: SWAP1 0000108c: MSTORE 0000108d: PUSH32 0x000000000000000000000000f17d23136b4fead139f54fb766c8795faae09660 000010ae: AND 000010af: SWAP1 000010b0: PUSH4 0x28d09d47 000010b5: SWAP1 000010b6: PUSH1 0x44 000010b8: ADD 000010b9: PUSH1 0x80 000010bb: PUSH1 0x40 000010bd: MLOAD 000010be: DUP1 000010bf: DUP4 000010c0: SUB 000010c1: DUP2 000010c2: DUP7 000010c3: GAS 000010c4: STATICCALL 000010c5: ISZERO 000010c6: DUP1 000010c7: ISZERO 000010c8: PUSH2 0x10d5 000010cb: JUMPI 000010cc: RETURNDATASIZE 000010cd: PUSH1 0x00 000010cf: DUP1 000010d0: RETURNDATACOPY 000010d1: RETURNDATASIZE 000010d2: PUSH1 0x00 000010d4: REVERT 000010d5: JUMPDEST 000010d6: POP 000010d7: POP 000010d8: POP 000010d9: POP 000010da: PUSH1 0x40 000010dc: MLOAD 000010dd: RETURNDATASIZE 000010de: PUSH1 0x1f 000010e0: NOT 000010e1: PUSH1 0x1f 000010e3: DUP3 000010e4: ADD 000010e5: AND 000010e6: DUP3 000010e7: ADD 000010e8: DUP1 000010e9: PUSH1 0x40 000010eb: MSTORE 000010ec: POP 000010ed: DUP2 000010ee: ADD 000010ef: SWAP1 000010f0: PUSH2 0x10f9 000010f3: SWAP2 000010f4: SWAP1 000010f5: PUSH2 0x28ed 000010f8: JUMP 000010f9: JUMPDEST 000010fa: SWAP3 000010fb: POP 000010fc: PUSH2 0x11bc 000010ff: JUMP 00001100: JUMPDEST 00001101: TIMESTAMP 00001102: DUP6 00001103: LT 00001104: ISZERO 00001105: PUSH2 0x11c4 00001108: JUMPI 00001109: PUSH1 0x00 0000110b: PUSH2 0x1121 0000110e: PUSH2 0x111c 00001111: DUP5 00001112: PUSH1 0x40 00001114: ADD 00001115: MLOAD 00001116: DUP9 00001117: SUB 00001118: PUSH2 0x1fe8 0000111b: JUMP 0000111c: JUMPDEST 0000111d: PUSH2 0x209e 00001120: JUMP 00001121: JUMPDEST 00001122: SWAP1 00001123: POP 00001124: PUSH1 0x00 00001126: DUP2 00001127: DUP5 00001128: PUSH1 0x20 0000112a: ADD 0000112b: MLOAD 0000112c: MUL 0000112d: PUSH1 0x0f 0000112f: SIGNEXTEND 00001130: DUP5 00001131: PUSH1 0x00 00001133: ADD 00001134: MLOAD 00001135: PUSH1 0x0f 00001137: SIGNEXTEND 00001138: SGT 00001139: PUSH2 0x1143 0000113c: JUMPI 0000113d: PUSH1 0x00 0000113f: PUSH2 0x115b 00001142: JUMP 00001143: JUMPDEST 00001144: PUSH2 0x115b 00001147: DUP3 00001148: DUP6 00001149: PUSH1 0x20 0000114b: ADD 0000114c: MLOAD 0000114d: MUL 0000114e: DUP6 0000114f: PUSH1 0x00 00001151: ADD 00001152: MLOAD 00001153: SUB 00001154: PUSH1 0x0f 00001156: SIGNEXTEND 00001157: PUSH2 0x2137 0000115a: JUMP 0000115b: JUMPDEST 0000115c: SWAP1 0000115d: POP 0000115e: DUP1 0000115f: ISZERO 00001160: DUP1 00001161: ISZERO 00001162: PUSH2 0x116a 00001165: JUMPI 00001166: POP 00001167: DUP9 00001168: DUP7 00001169: GT 0000116a: JUMPDEST 0000116b: ISZERO 0000116c: PUSH2 0x1181 0000116f: JUMPI 00001170: PUSH2 0x1178 00001173: TIMESTAMP 00001174: PUSH2 0x1fbd 00001177: JUMP 00001178: JUMPDEST 00001179: SWAP7 0000117a: POP 0000117b: POP 0000117c: POP 0000117d: PUSH2 0x11c4 00001180: JUMP 00001181: JUMPDEST 00001182: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001197: DUP11 00001198: AND 00001199: PUSH1 0x00 0000119b: SWAP1 0000119c: DUP2 0000119d: MSTORE 0000119e: PUSH1 0x08 000011a0: PUSH1 0x20 000011a2: SWAP1 000011a3: DUP2 000011a4: MSTORE 000011a5: PUSH1 0x40 000011a7: DUP1 000011a8: DUP4 000011a9: KECCAK256 000011aa: DUP11 000011ab: DUP5 000011ac: MSTORE 000011ad: SWAP1 000011ae: SWAP2 000011af: MSTORE 000011b0: SWAP1 000011b1: KECCAK256 000011b2: SSTORE 000011b3: POP 000011b4: PUSH3 0x093a80 000011b8: SWAP1 000011b9: SWAP5 000011ba: ADD 000011bb: SWAP4 000011bc: JUMPDEST 000011bd: PUSH1 0x01 000011bf: ADD 000011c0: PUSH2 0x0fdd 000011c3: JUMP 000011c4: JUMPDEST 000011c5: POP 000011c6: POP 000011c7: DUP4 000011c8: SLOAD 000011c9: PUSH8 0xffffffffffffffff 000011d2: SWAP4 000011d3: DUP5 000011d4: AND 000011d5: PUSH9 0x010000000000000000 000011df: MUL 000011e0: PUSH32 0xffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff 00001201: PUSH17 0x0100000000000000000000000000000000 00001213: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00001234: SWAP1 00001235: SWAP6 00001236: ADD 00001237: DUP7 00001238: AND 00001239: SWAP5 0000123a: SWAP1 0000123b: SWAP5 0000123c: MUL 0000123d: SWAP4 0000123e: SWAP1 0000123f: SWAP4 00001240: AND 00001241: SWAP4 00001242: AND 00001243: SWAP3 00001244: SWAP1 00001245: SWAP3 00001246: OR 00001247: OR 00001248: SWAP1 00001249: SWAP2 0000124a: SSTORE 0000124b: POP 0000124c: POP 0000124d: POP 0000124e: JUMP 0000124f: JUMPDEST 00001250: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001265: DUP3 00001266: AND 00001267: PUSH1 0x00 00001269: SWAP1 0000126a: DUP2 0000126b: MSTORE 0000126c: PUSH1 0x05 0000126e: PUSH1 0x20 00001270: MSTORE 00001271: PUSH1 0x40 00001273: DUP2 00001274: KECCAK256 00001275: DUP1 00001276: SLOAD 00001277: SWAP1 00001278: SWAP2 00001279: PUSH9 0x010000000000000000 00001283: SWAP1 00001284: SWAP2 00001285: DIV 00001286: PUSH8 0xffffffffffffffff 0000128f: AND 00001290: SWAP1 00001291: DUP2 00001292: DUP2 00001293: SUB 00001294: PUSH2 0x1389 00001297: JUMPI 00001298: TIMESTAMP 00001299: SWAP2 0000129a: POP 0000129b: PUSH3 0x093a80 0000129f: DUP1 000012a0: DUP4 000012a1: DIV 000012a2: MUL 000012a3: DUP4 000012a4: SLOAD 000012a5: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 000012c6: AND 000012c7: PUSH8 0xffffffffffffffff 000012d0: SWAP2 000012d1: SWAP1 000012d2: SWAP2 000012d3: AND 000012d4: OR 000012d5: DUP4 000012d6: SSTORE 000012d7: PUSH32 0x0000000000000000000000000000000000000000000000000000000063dafd00 000012f8: TIMESTAMP 000012f9: GT 000012fa: PUSH2 0x1384 000012fd: JUMPI 000012fe: PUSH1 0x40 00001300: MLOAD 00001301: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001322: DUP2 00001323: MSTORE 00001324: PUSH1 0x20 00001326: PUSH1 0x04 00001328: DUP3 00001329: ADD 0000132a: MSTORE 0000132b: PUSH1 0x24 0000132d: DUP1 0000132e: DUP3 0000132f: ADD 00001330: MSTORE 00001331: PUSH32 0x46656520646973747269627574696f6e20686173206e6f742073746172746564 00001352: PUSH1 0x44 00001354: DUP3 00001355: ADD 00001356: MSTORE 00001357: PUSH32 0x2079657400000000000000000000000000000000000000000000000000000000 00001378: PUSH1 0x64 0000137a: DUP3 0000137b: ADD 0000137c: MSTORE 0000137d: PUSH1 0x84 0000137f: ADD 00001380: PUSH2 0x0544 00001383: JUMP 00001384: JUMPDEST 00001385: PUSH2 0x13d9 00001388: JUMP 00001389: JUMPDEST 0000138a: DUP2 0000138b: TIMESTAMP 0000138c: SUB 0000138d: SWAP1 0000138e: POP 0000138f: DUP4 00001390: PUSH2 0x13d9 00001393: JUMPI 00001394: PUSH1 0x00 00001396: PUSH3 0x093a80 0000139a: DUP1 0000139b: DUP5 0000139c: DIV 0000139d: MUL 0000139e: PUSH3 0x093a80 000013a2: TIMESTAMP 000013a3: DUP2 000013a4: SWAP1 000013a5: DIV 000013a6: MUL 000013a7: EQ 000013a8: SWAP1 000013a9: POP 000013aa: PUSH1 0x00 000013ac: PUSH3 0x015180 000013b0: TIMESTAMP 000013b1: PUSH2 0x13b9 000013b4: TIMESTAMP 000013b5: PUSH2 0x1fbd 000013b8: JUMP 000013b9: JUMPDEST 000013ba: SUB 000013bb: LT 000013bc: SWAP1 000013bd: POP 000013be: DUP2 000013bf: DUP1 000013c0: ISZERO 000013c1: PUSH2 0x13c8 000013c4: JUMPI 000013c5: POP 000013c6: DUP1 000013c7: ISZERO 000013c8: JUMPDEST 000013c9: ISZERO 000013ca: PUSH2 0x13d6 000013cd: JUMPI 000013ce: POP 000013cf: POP 000013d0: POP 000013d1: POP 000013d2: POP 000013d3: POP 000013d4: POP 000013d5: JUMP 000013d6: JUMPDEST 000013d7: POP 000013d8: POP 000013d9: JUMPDEST 000013da: DUP3 000013db: SLOAD 000013dc: PUSH32 0xffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff 000013fd: AND 000013fe: PUSH9 0x010000000000000000 00001408: TIMESTAMP 00001409: PUSH8 0xffffffffffffffff 00001412: AND 00001413: MUL 00001414: OR 00001415: DUP4 00001416: SSTORE 00001417: PUSH1 0x40 00001419: MLOAD 0000141a: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 0000143b: DUP2 0000143c: MSTORE 0000143d: ADDRESS 0000143e: PUSH1 0x04 00001440: DUP3 00001441: ADD 00001442: MSTORE 00001443: PUSH1 0x00 00001445: SWAP1 00001446: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000145b: DUP8 0000145c: AND 0000145d: SWAP1 0000145e: PUSH4 0x70a08231 00001463: SWAP1 00001464: PUSH1 0x24 00001466: ADD 00001467: PUSH1 0x20 00001469: PUSH1 0x40 0000146b: MLOAD 0000146c: DUP1 0000146d: DUP4 0000146e: SUB 0000146f: DUP2 00001470: DUP7 00001471: GAS 00001472: STATICCALL 00001473: ISZERO 00001474: DUP1 00001475: ISZERO 00001476: PUSH2 0x1483 00001479: JUMPI 0000147a: RETURNDATASIZE 0000147b: PUSH1 0x00 0000147d: DUP1 0000147e: RETURNDATACOPY 0000147f: RETURNDATASIZE 00001480: PUSH1 0x00 00001482: REVERT 00001483: JUMPDEST 00001484: POP 00001485: POP 00001486: POP 00001487: POP 00001488: PUSH1 0x40 0000148a: MLOAD 0000148b: RETURNDATASIZE 0000148c: PUSH1 0x1f 0000148e: NOT 0000148f: PUSH1 0x1f 00001491: DUP3 00001492: ADD 00001493: AND 00001494: DUP3 00001495: ADD 00001496: DUP1 00001497: PUSH1 0x40 00001499: MSTORE 0000149a: POP 0000149b: DUP2 0000149c: ADD 0000149d: SWAP1 0000149e: PUSH2 0x14a7 000014a1: SWAP2 000014a2: SWAP1 000014a3: PUSH2 0x28c2 000014a6: JUMP 000014a7: JUMPDEST 000014a8: DUP5 000014a9: SLOAD 000014aa: SWAP1 000014ab: SWAP2 000014ac: POP 000014ad: PUSH1 0x00 000014af: SWAP1 000014b0: PUSH2 0x14df 000014b3: SWAP1 000014b4: PUSH17 0x0100000000000000000000000000000000 000014c6: SWAP1 000014c7: DIV 000014c8: PUSH16 0xffffffffffffffffffffffffffffffff 000014d9: AND 000014da: DUP4 000014db: PUSH2 0x298e 000014de: JUMP 000014df: JUMPDEST 000014e0: SWAP1 000014e1: POP 000014e2: DUP1 000014e3: PUSH1 0x00 000014e5: SUB 000014e6: PUSH2 0x14f2 000014e9: JUMPI 000014ea: POP 000014eb: POP 000014ec: POP 000014ed: POP 000014ee: POP 000014ef: POP 000014f0: POP 000014f1: JUMP 000014f2: JUMPDEST 000014f3: PUSH16 0xffffffffffffffffffffffffffffffff 00001504: DUP3 00001505: GT 00001506: ISZERO 00001507: PUSH2 0x156c 0000150a: JUMPI 0000150b: PUSH1 0x40 0000150d: MLOAD 0000150e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000152f: DUP2 00001530: MSTORE 00001531: PUSH1 0x20 00001533: PUSH1 0x04 00001535: DUP3 00001536: ADD 00001537: MSTORE 00001538: PUSH1 0x1e 0000153a: PUSH1 0x24 0000153c: DUP3 0000153d: ADD 0000153e: MSTORE 0000153f: PUSH32 0x4d6178696d756d20746f6b656e2062616c616e63652065786365656465640000 00001560: PUSH1 0x44 00001562: DUP3 00001563: ADD 00001564: MSTORE 00001565: PUSH1 0x64 00001567: ADD 00001568: PUSH2 0x0544 0000156b: JUMP 0000156c: JUMPDEST 0000156d: DUP5 0000156e: SLOAD 0000156f: PUSH16 0xffffffffffffffffffffffffffffffff 00001580: DUP1 00001581: DUP5 00001582: AND 00001583: PUSH17 0x0100000000000000000000000000000000 00001595: MUL 00001596: SWAP2 00001597: AND 00001598: OR 00001599: DUP6 0000159a: SSTORE 0000159b: PUSH1 0x00 0000159d: PUSH2 0x15ac 000015a0: DUP6 000015a1: PUSH3 0x093a80 000015a5: SWAP1 000015a6: DUP2 000015a7: SWAP1 000015a8: DIV 000015a9: MUL 000015aa: SWAP1 000015ab: JUMP 000015ac: JUMPDEST 000015ad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015c2: DUP10 000015c3: AND 000015c4: PUSH1 0x00 000015c6: SWAP1 000015c7: DUP2 000015c8: MSTORE 000015c9: PUSH1 0x06 000015cb: PUSH1 0x20 000015cd: MSTORE 000015ce: PUSH1 0x40 000015d0: DUP2 000015d1: KECCAK256 000015d2: SWAP2 000015d3: SWAP3 000015d4: POP 000015d5: SWAP1 000015d6: DUP2 000015d7: JUMPDEST 000015d8: PUSH1 0x14 000015da: DUP2 000015db: LT 000015dc: ISZERO 000015dd: PUSH2 0x16b4 000015e0: JUMPI 000015e1: DUP4 000015e2: PUSH3 0x093a80 000015e6: ADD 000015e7: SWAP3 000015e8: POP 000015e9: DUP3 000015ea: TIMESTAMP 000015eb: LT 000015ec: ISZERO 000015ed: PUSH2 0x164c 000015f0: JUMPI 000015f1: DUP7 000015f2: ISZERO 000015f3: DUP1 000015f4: ISZERO 000015f5: PUSH2 0x15fd 000015f8: JUMPI 000015f9: POP 000015fa: DUP8 000015fb: TIMESTAMP 000015fc: EQ 000015fd: JUMPDEST 000015fe: ISZERO 000015ff: PUSH2 0x161b 00001602: JUMPI 00001603: PUSH1 0x00 00001605: DUP5 00001606: DUP2 00001607: MSTORE 00001608: PUSH1 0x20 0000160a: DUP4 0000160b: SWAP1 0000160c: MSTORE 0000160d: PUSH1 0x40 0000160f: SWAP1 00001610: KECCAK256 00001611: DUP1 00001612: SLOAD 00001613: DUP7 00001614: ADD 00001615: SWAP1 00001616: SSTORE 00001617: PUSH2 0x16b4 0000161a: JUMP 0000161b: JUMPDEST 0000161c: DUP7 0000161d: DUP9 0000161e: TIMESTAMP 0000161f: SUB 00001620: DUP7 00001621: MUL 00001622: DUP2 00001623: PUSH2 0x162e 00001626: JUMPI 00001627: PUSH2 0x162e 0000162a: PUSH2 0x29a1 0000162d: JUMP 0000162e: JUMPDEST 0000162f: PUSH1 0x00 00001631: DUP7 00001632: DUP2 00001633: MSTORE 00001634: PUSH1 0x20 00001636: DUP6 00001637: SWAP1 00001638: MSTORE 00001639: PUSH1 0x40 0000163b: SWAP1 0000163c: KECCAK256 0000163d: DUP1 0000163e: SLOAD 0000163f: SWAP3 00001640: SWAP1 00001641: SWAP2 00001642: DIV 00001643: SWAP1 00001644: SWAP2 00001645: ADD 00001646: SWAP1 00001647: SSTORE 00001648: PUSH2 0x16b4 0000164b: JUMP 0000164c: JUMPDEST 0000164d: DUP7 0000164e: ISZERO 0000164f: DUP1 00001650: ISZERO 00001651: PUSH2 0x1659 00001654: JUMPI 00001655: POP 00001656: DUP8 00001657: DUP4 00001658: EQ 00001659: JUMPDEST 0000165a: ISZERO 0000165b: PUSH2 0x1677 0000165e: JUMPI 0000165f: PUSH1 0x00 00001661: DUP5 00001662: DUP2 00001663: MSTORE 00001664: PUSH1 0x20 00001666: DUP4 00001667: SWAP1 00001668: MSTORE 00001669: PUSH1 0x40 0000166b: SWAP1 0000166c: KECCAK256 0000166d: DUP1 0000166e: SLOAD 0000166f: DUP7 00001670: ADD 00001671: SWAP1 00001672: SSTORE 00001673: PUSH2 0x16a4 00001676: JUMP 00001677: JUMPDEST 00001678: DUP7 00001679: DUP9 0000167a: DUP5 0000167b: SUB 0000167c: DUP7 0000167d: MUL 0000167e: DUP2 0000167f: PUSH2 0x168a 00001682: JUMPI 00001683: PUSH2 0x168a 00001686: PUSH2 0x29a1 00001689: JUMP 0000168a: JUMPDEST 0000168b: PUSH1 0x00 0000168d: DUP7 0000168e: DUP2 0000168f: MSTORE 00001690: PUSH1 0x20 00001692: DUP6 00001693: SWAP1 00001694: MSTORE 00001695: PUSH1 0x40 00001697: SWAP1 00001698: KECCAK256 00001699: DUP1 0000169a: SLOAD 0000169b: SWAP3 0000169c: SWAP1 0000169d: SWAP2 0000169e: DIV 0000169f: SWAP1 000016a0: SWAP2 000016a1: ADD 000016a2: SWAP1 000016a3: SSTORE 000016a4: JUMPDEST 000016a5: SWAP2 000016a6: SWAP7 000016a7: POP 000016a8: DUP7 000016a9: SWAP3 000016aa: POP 000016ab: DUP3 000016ac: SWAP2 000016ad: PUSH1 0x01 000016af: ADD 000016b0: PUSH2 0x15d7 000016b3: JUMP 000016b4: JUMPDEST 000016b5: POP 000016b6: PUSH1 0x40 000016b8: DUP1 000016b9: MLOAD 000016ba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016cf: DUP13 000016d0: AND 000016d1: DUP2 000016d2: MSTORE 000016d3: PUSH1 0x20 000016d5: DUP2 000016d6: ADD 000016d7: DUP7 000016d8: SWAP1 000016d9: MSTORE 000016da: SWAP1 000016db: DUP2 000016dc: ADD 000016dd: DUP9 000016de: SWAP1 000016df: MSTORE 000016e0: PUSH32 0x9b7f1a85a4c9b4e59e1b6527d9969c50cdfb3a1a467d0c4a51fb0ed8bf07f130 00001701: SWAP1 00001702: PUSH1 0x60 00001704: ADD 00001705: PUSH1 0x40 00001707: MLOAD 00001708: DUP1 00001709: SWAP2 0000170a: SUB 0000170b: SWAP1 0000170c: LOG1 0000170d: POP 0000170e: POP 0000170f: POP 00001710: POP 00001711: POP 00001712: POP 00001713: POP 00001714: POP 00001715: POP 00001716: POP 00001717: JUMP 00001718: JUMPDEST 00001719: PUSH1 0x00 0000171b: PUSH1 0x40 0000171d: MLOAD 0000171e: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000 0000173f: DUP2 00001740: MSTORE 00001741: DUP5 00001742: PUSH1 0x04 00001744: DUP3 00001745: ADD 00001746: MSTORE 00001747: DUP4 00001748: PUSH1 0x24 0000174a: DUP3 0000174b: ADD 0000174c: MSTORE 0000174d: DUP3 0000174e: PUSH1 0x44 00001750: DUP3 00001751: ADD 00001752: MSTORE 00001753: PUSH1 0x20 00001755: PUSH1 0x00 00001757: PUSH1 0x64 00001759: DUP4 0000175a: PUSH1 0x00 0000175c: DUP11 0000175d: GAS 0000175e: CALL 0000175f: RETURNDATASIZE 00001760: ISZERO 00001761: PUSH1 0x1f 00001763: RETURNDATASIZE 00001764: GT 00001765: PUSH1 0x01 00001767: PUSH1 0x00 00001769: MLOAD 0000176a: EQ 0000176b: AND 0000176c: OR 0000176d: AND 0000176e: SWAP2 0000176f: POP 00001770: POP 00001771: DUP1 00001772: PUSH2 0x17d7 00001775: JUMPI 00001776: PUSH1 0x40 00001778: MLOAD 00001779: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000179a: DUP2 0000179b: MSTORE 0000179c: PUSH1 0x20 0000179e: PUSH1 0x04 000017a0: DUP3 000017a1: ADD 000017a2: MSTORE 000017a3: PUSH1 0x14 000017a5: PUSH1 0x24 000017a7: DUP3 000017a8: ADD 000017a9: MSTORE 000017aa: PUSH32 0x5452414e534645525f46524f4d5f4641494c4544000000000000000000000000 000017cb: PUSH1 0x44 000017cd: DUP3 000017ce: ADD 000017cf: MSTORE 000017d0: PUSH1 0x64 000017d2: ADD 000017d3: PUSH2 0x0544 000017d6: JUMP 000017d7: JUMPDEST 000017d8: POP 000017d9: POP 000017da: POP 000017db: POP 000017dc: POP 000017dd: JUMP 000017de: JUMPDEST 000017df: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017f4: DUP1 000017f5: DUP4 000017f6: AND 000017f7: PUSH1 0x00 000017f9: SWAP1 000017fa: DUP2 000017fb: MSTORE 000017fc: PUSH1 0x09 000017fe: PUSH1 0x20 00001800: SWAP1 00001801: DUP2 00001802: MSTORE 00001803: PUSH1 0x40 00001805: DUP1 00001806: DUP4 00001807: KECCAK256 00001808: SWAP4 00001809: DUP6 0000180a: AND 0000180b: DUP4 0000180c: MSTORE 0000180d: SWAP3 0000180e: SWAP1 0000180f: MSTORE 00001810: SWAP1 00001811: DUP2 00001812: KECCAK256 00001813: SLOAD 00001814: DUP1 00001815: ISZERO 00001816: PUSH2 0x1820 00001819: JUMPI 0000181a: SWAP1 0000181b: POP 0000181c: PUSH2 0x082c 0000181f: JUMP 00001820: JUMPDEST 00001821: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001836: DUP1 00001837: DUP6 00001838: AND 00001839: PUSH1 0x00 0000183b: SWAP1 0000183c: DUP2 0000183d: MSTORE 0000183e: PUSH1 0x07 00001840: PUSH1 0x20 00001842: SWAP1 00001843: DUP2 00001844: MSTORE 00001845: PUSH1 0x40 00001847: DUP1 00001848: DUP4 00001849: KECCAK256 0000184a: SLOAD 0000184b: SWAP4 0000184c: DUP8 0000184d: AND 0000184e: DUP4 0000184f: MSTORE 00001850: PUSH1 0x05 00001852: SWAP1 00001853: SWAP2 00001854: MSTORE 00001855: SWAP1 00001856: KECCAK256 00001857: SLOAD 00001858: PUSH2 0x186e 0000185b: SWAP2 0000185c: PUSH8 0xffffffffffffffff 00001865: SWAP1 00001866: DUP2 00001867: AND 00001868: SWAP2 00001869: AND 0000186a: PUSH2 0x1fd2 0000186d: JUMP 0000186e: JUMPDEST 0000186f: SWAP5 00001870: SWAP4 00001871: POP 00001872: POP 00001873: POP 00001874: POP 00001875: JUMP 00001876: JUMPDEST 00001877: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000188c: DUP2 0000188d: AND 0000188e: PUSH1 0x00 00001890: SWAP1 00001891: DUP2 00001892: MSTORE 00001893: PUSH1 0x01 00001895: PUSH1 0x20 00001897: MSTORE 00001898: PUSH1 0x40 0000189a: SWAP1 0000189b: KECCAK256 0000189c: SLOAD 0000189d: PUSH1 0xff 0000189f: AND 000018a0: ISZERO 000018a1: PUSH2 0x0b6b 000018a4: JUMPI 000018a5: CALLER 000018a6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018bb: DUP3 000018bc: AND 000018bd: EQ 000018be: PUSH2 0x0b6b 000018c1: JUMPI 000018c2: PUSH1 0x40 000018c4: MLOAD 000018c5: PUSH32 0xf93014bb00000000000000000000000000000000000000000000000000000000 000018e6: DUP2 000018e7: MSTORE 000018e8: PUSH1 0x04 000018ea: ADD 000018eb: PUSH1 0x40 000018ed: MLOAD 000018ee: DUP1 000018ef: SWAP2 000018f0: SUB 000018f1: SWAP1 000018f2: REVERT 000018f3: JUMPDEST 000018f4: PUSH1 0x03 000018f6: SLOAD 000018f7: PUSH3 0x093a80 000018fb: TIMESTAMP 000018fc: DUP2 000018fd: SWAP1 000018fe: DIV 000018ff: MUL 00001900: DUP1 00001901: DUP3 00001902: GT 00001903: DUP1 00001904: PUSH2 0x190c 00001907: JUMPI 00001908: POP 00001909: TIMESTAMP 0000190a: DUP2 0000190b: EQ 0000190c: JUMPDEST 0000190d: ISZERO 0000190e: PUSH2 0x1915 00001911: JUMPI 00001912: POP 00001913: POP 00001914: JUMP 00001915: JUMPDEST 00001916: PUSH32 0x000000000000000000000000f17d23136b4fead139f54fb766c8795faae09660 00001937: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000194c: AND 0000194d: PUSH4 0xc2c4c5c1 00001952: PUSH1 0x40 00001954: MLOAD 00001955: DUP2 00001956: PUSH4 0xffffffff 0000195b: AND 0000195c: PUSH1 0xe0 0000195e: SHL 0000195f: DUP2 00001960: MSTORE 00001961: PUSH1 0x04 00001963: ADD 00001964: PUSH1 0x00 00001966: PUSH1 0x40 00001968: MLOAD 00001969: DUP1 0000196a: DUP4 0000196b: SUB 0000196c: DUP2 0000196d: PUSH1 0x00 0000196f: DUP8 00001970: DUP1 00001971: EXTCODESIZE 00001972: ISZERO 00001973: DUP1 00001974: ISZERO 00001975: PUSH2 0x197d 00001978: JUMPI 00001979: PUSH1 0x00 0000197b: DUP1 0000197c: REVERT 0000197d: JUMPDEST 0000197e: POP 0000197f: GAS 00001980: CALL 00001981: ISZERO 00001982: DUP1 00001983: ISZERO 00001984: PUSH2 0x1991 00001987: JUMPI 00001988: RETURNDATASIZE 00001989: PUSH1 0x00 0000198b: DUP1 0000198c: RETURNDATACOPY 0000198d: RETURNDATASIZE 0000198e: PUSH1 0x00 00001990: REVERT 00001991: JUMPDEST 00001992: POP 00001993: POP 00001994: POP 00001995: POP 00001996: PUSH1 0x00 00001998: JUMPDEST 00001999: PUSH1 0x14 0000199b: DUP2 0000199c: LT 0000199d: ISZERO 0000199e: PUSH2 0x1a76 000019a1: JUMPI 000019a2: DUP2 000019a3: DUP4 000019a4: GT 000019a5: PUSH2 0x1a76 000019a8: JUMPI 000019a9: PUSH1 0x40 000019ab: MLOAD 000019ac: PUSH32 0xbd85b03900000000000000000000000000000000000000000000000000000000 000019cd: DUP2 000019ce: MSTORE 000019cf: PUSH1 0x04 000019d1: DUP2 000019d2: ADD 000019d3: DUP5 000019d4: SWAP1 000019d5: MSTORE 000019d6: PUSH32 0x000000000000000000000000f17d23136b4fead139f54fb766c8795faae09660 000019f7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a0c: AND 00001a0d: SWAP1 00001a0e: PUSH4 0xbd85b039 00001a13: SWAP1 00001a14: PUSH1 0x24 00001a16: ADD 00001a17: PUSH1 0x20 00001a19: PUSH1 0x40 00001a1b: MLOAD 00001a1c: DUP1 00001a1d: DUP4 00001a1e: SUB 00001a1f: DUP2 00001a20: DUP7 00001a21: GAS 00001a22: STATICCALL 00001a23: ISZERO 00001a24: DUP1 00001a25: ISZERO 00001a26: PUSH2 0x1a33 00001a29: JUMPI 00001a2a: RETURNDATASIZE 00001a2b: PUSH1 0x00 00001a2d: DUP1 00001a2e: RETURNDATACOPY 00001a2f: RETURNDATASIZE 00001a30: PUSH1 0x00 00001a32: REVERT 00001a33: JUMPDEST 00001a34: POP 00001a35: POP 00001a36: POP 00001a37: POP 00001a38: PUSH1 0x40 00001a3a: MLOAD 00001a3b: RETURNDATASIZE 00001a3c: PUSH1 0x1f 00001a3e: NOT 00001a3f: PUSH1 0x1f 00001a41: DUP3 00001a42: ADD 00001a43: AND 00001a44: DUP3 00001a45: ADD 00001a46: DUP1 00001a47: PUSH1 0x40 00001a49: MSTORE 00001a4a: POP 00001a4b: DUP2 00001a4c: ADD 00001a4d: SWAP1 00001a4e: PUSH2 0x1a57 00001a51: SWAP2 00001a52: SWAP1 00001a53: PUSH2 0x28c2 00001a56: JUMP 00001a57: JUMPDEST 00001a58: PUSH1 0x00 00001a5a: DUP5 00001a5b: DUP2 00001a5c: MSTORE 00001a5d: PUSH1 0x04 00001a5f: PUSH1 0x20 00001a61: MSTORE 00001a62: PUSH1 0x40 00001a64: SWAP1 00001a65: KECCAK256 00001a66: SSTORE 00001a67: PUSH3 0x093a80 00001a6b: SWAP1 00001a6c: SWAP3 00001a6d: ADD 00001a6e: SWAP2 00001a6f: PUSH1 0x01 00001a71: ADD 00001a72: PUSH2 0x1998 00001a75: JUMP 00001a76: JUMPDEST 00001a77: POP 00001a78: POP 00001a79: PUSH1 0x03 00001a7b: SSTORE 00001a7c: JUMP 00001a7d: JUMPDEST 00001a7e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a93: DUP2 00001a94: AND 00001a95: PUSH1 0x00 00001a97: SWAP1 00001a98: DUP2 00001a99: MSTORE 00001a9a: PUSH1 0x05 00001a9c: PUSH1 0x20 00001a9e: MSTORE 00001a9f: PUSH1 0x40 00001aa1: DUP2 00001aa2: KECCAK256 00001aa3: DUP2 00001aa4: PUSH2 0x1aad 00001aa7: DUP6 00001aa8: DUP6 00001aa9: PUSH2 0x17de 00001aac: JUMP 00001aad: JUMPDEST 00001aae: PUSH1 0x03 00001ab0: SLOAD 00001ab1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ac6: DUP8 00001ac7: AND 00001ac8: PUSH1 0x00 00001aca: SWAP1 00001acb: DUP2 00001acc: MSTORE 00001acd: PUSH1 0x07 00001acf: PUSH1 0x20 00001ad1: MSTORE 00001ad2: PUSH1 0x40 00001ad4: DUP2 00001ad5: KECCAK256 00001ad6: SLOAD 00001ad7: SWAP3 00001ad8: SWAP4 00001ad9: POP 00001ada: SWAP2 00001adb: PUSH2 0x1b34 00001ade: SWAP2 00001adf: PUSH2 0x1b07 00001ae2: SWAP2 00001ae3: PUSH2 0x1b02 00001ae6: SWAP2 00001ae7: SWAP1 00001ae8: PUSH9 0x010000000000000000 00001af2: SWAP1 00001af3: DIV 00001af4: PUSH8 0xffffffffffffffff 00001afd: AND 00001afe: PUSH2 0x21a3 00001b01: JUMP 00001b02: JUMPDEST 00001b03: PUSH2 0x1fbd 00001b06: JUMP 00001b07: JUMPDEST 00001b08: DUP5 00001b09: SLOAD 00001b0a: PUSH2 0x1b2f 00001b0d: SWAP1 00001b0e: PUSH9 0x010000000000000000 00001b18: SWAP1 00001b19: DIV 00001b1a: PUSH8 0xffffffffffffffff 00001b23: AND 00001b24: PUSH3 0x093a80 00001b28: SWAP1 00001b29: DUP2 00001b2a: SWAP1 00001b2b: DIV 00001b2c: MUL 00001b2d: SWAP1 00001b2e: JUMP 00001b2f: JUMPDEST 00001b30: PUSH2 0x21a3 00001b33: JUMP 00001b34: JUMPDEST 00001b35: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b4a: DUP1 00001b4b: DUP8 00001b4c: AND 00001b4d: PUSH1 0x00 00001b4f: SWAP1 00001b50: DUP2 00001b51: MSTORE 00001b52: PUSH1 0x06 00001b54: PUSH1 0x20 00001b56: SWAP1 00001b57: DUP2 00001b58: MSTORE 00001b59: PUSH1 0x40 00001b5b: DUP1 00001b5c: DUP4 00001b5d: KECCAK256 00001b5e: SWAP4 00001b5f: DUP12 00001b60: AND 00001b61: DUP4 00001b62: MSTORE 00001b63: PUSH1 0x08 00001b65: SWAP1 00001b66: SWAP2 00001b67: MSTORE 00001b68: DUP2 00001b69: KECCAK256 00001b6a: SWAP3 00001b6b: SWAP4 00001b6c: POP 00001b6d: SWAP1 00001b6e: SWAP2 00001b6f: SWAP1 00001b70: DUP1 00001b71: JUMPDEST 00001b72: PUSH1 0x14 00001b74: DUP2 00001b75: LT 00001b76: ISZERO 00001b77: PUSH2 0x1bc7 00001b7a: JUMPI 00001b7b: DUP5 00001b7c: DUP7 00001b7d: LT 00001b7e: ISZERO 00001b7f: PUSH2 0x1bc7 00001b82: JUMPI 00001b83: PUSH1 0x00 00001b85: DUP7 00001b86: DUP2 00001b87: MSTORE 00001b88: PUSH1 0x04 00001b8a: PUSH1 0x20 00001b8c: SWAP1 00001b8d: DUP2 00001b8e: MSTORE 00001b8f: PUSH1 0x40 00001b91: DUP1 00001b92: DUP4 00001b93: KECCAK256 00001b94: SLOAD 00001b95: DUP7 00001b96: DUP4 00001b97: MSTORE 00001b98: DUP2 00001b99: DUP5 00001b9a: KECCAK256 00001b9b: SLOAD 00001b9c: SWAP3 00001b9d: DUP9 00001b9e: SWAP1 00001b9f: MSTORE 00001ba0: SWAP3 00001ba1: KECCAK256 00001ba2: SLOAD 00001ba3: MUL 00001ba4: DUP2 00001ba5: PUSH2 0x1bb0 00001ba8: JUMPI 00001ba9: PUSH2 0x1bb0 00001bac: PUSH2 0x29a1 00001baf: JUMP 00001bb0: JUMPDEST 00001bb1: PUSH3 0x093a80 00001bb5: SWAP8 00001bb6: SWAP1 00001bb7: SWAP8 00001bb8: ADD 00001bb9: SWAP7 00001bba: DIV 00001bbb: SWAP2 00001bbc: SWAP1 00001bbd: SWAP2 00001bbe: ADD 00001bbf: SWAP1 00001bc0: PUSH1 0x01 00001bc2: ADD 00001bc3: PUSH2 0x1b71 00001bc6: JUMP 00001bc7: JUMPDEST 00001bc8: POP 00001bc9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bde: DUP1 00001bdf: DUP11 00001be0: AND 00001be1: PUSH1 0x00 00001be3: SWAP1 00001be4: DUP2 00001be5: MSTORE 00001be6: PUSH1 0x09 00001be8: PUSH1 0x20 00001bea: SWAP1 00001beb: DUP2 00001bec: MSTORE 00001bed: PUSH1 0x40 00001bef: DUP1 00001bf0: DUP4 00001bf1: KECCAK256 00001bf2: SWAP4 00001bf3: DUP13 00001bf4: AND 00001bf5: DUP4 00001bf6: MSTORE 00001bf7: SWAP3 00001bf8: SWAP1 00001bf9: MSTORE 00001bfa: KECCAK256 00001bfb: DUP6 00001bfc: SWAP1 00001bfd: SSTORE 00001bfe: DUP1 00001bff: ISZERO 00001c00: PUSH2 0x1cb9 00001c03: JUMPI 00001c04: DUP6 00001c05: SLOAD 00001c06: PUSH16 0xffffffffffffffffffffffffffffffff 00001c17: PUSH17 0x0100000000000000000000000000000000 00001c29: DUP1 00001c2a: DUP4 00001c2b: DIV 00001c2c: DUP3 00001c2d: AND 00001c2e: DUP5 00001c2f: SWAP1 00001c30: SUB 00001c31: DUP3 00001c32: AND 00001c33: MUL 00001c34: SWAP2 00001c35: AND 00001c36: OR 00001c37: DUP7 00001c38: SSTORE 00001c39: PUSH2 0x1c59 00001c3c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c51: DUP10 00001c52: AND 00001c53: DUP11 00001c54: DUP4 00001c55: PUSH2 0x21b2 00001c58: JUMP 00001c59: JUMPDEST 00001c5a: PUSH1 0x40 00001c5c: DUP1 00001c5d: MLOAD 00001c5e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c73: DUP1 00001c74: DUP13 00001c75: AND 00001c76: DUP3 00001c77: MSTORE 00001c78: DUP11 00001c79: AND 00001c7a: PUSH1 0x20 00001c7c: DUP3 00001c7d: ADD 00001c7e: MSTORE 00001c7f: SWAP1 00001c80: DUP2 00001c81: ADD 00001c82: DUP3 00001c83: SWAP1 00001c84: MSTORE 00001c85: PUSH1 0x60 00001c87: DUP2 00001c88: ADD 00001c89: DUP7 00001c8a: SWAP1 00001c8b: MSTORE 00001c8c: PUSH32 0xff097c7d8b1957a4ff09ef1361b5fb54dcede3941ba836d0beb9d10bec725de6 00001cad: SWAP1 00001cae: PUSH1 0x80 00001cb0: ADD 00001cb1: PUSH1 0x40 00001cb3: MLOAD 00001cb4: DUP1 00001cb5: SWAP2 00001cb6: SUB 00001cb7: SWAP1 00001cb8: LOG1 00001cb9: JUMPDEST 00001cba: SWAP9 00001cbb: SWAP8 00001cbc: POP 00001cbd: POP 00001cbe: POP 00001cbf: POP 00001cc0: POP 00001cc1: POP 00001cc2: POP 00001cc3: POP 00001cc4: JUMP 00001cc5: JUMPDEST 00001cc6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cdb: DUP3 00001cdc: AND 00001cdd: PUSH1 0x00 00001cdf: DUP2 00001ce0: DUP2 00001ce1: MSTORE 00001ce2: PUSH1 0x01 00001ce4: PUSH1 0x20 00001ce6: SWAP1 00001ce7: DUP2 00001ce8: MSTORE 00001ce9: PUSH1 0x40 00001ceb: SWAP2 00001cec: DUP3 00001ced: SWAP1 00001cee: KECCAK256 00001cef: DUP1 00001cf0: SLOAD 00001cf1: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00001d12: AND 00001d13: DUP6 00001d14: ISZERO 00001d15: ISZERO 00001d16: SWAP1 00001d17: DUP2 00001d18: OR 00001d19: SWAP1 00001d1a: SWAP2 00001d1b: SSTORE 00001d1c: DUP3 00001d1d: MLOAD 00001d1e: SWAP4 00001d1f: DUP5 00001d20: MSTORE 00001d21: SWAP1 00001d22: DUP4 00001d23: ADD 00001d24: MSTORE 00001d25: PUSH32 0xac9874a7a931a3f5c9f202c6d9cf40de5d21506993c9f9c38ca8265add89584c 00001d46: SWAP2 00001d47: ADD 00001d48: PUSH1 0x40 00001d4a: MLOAD 00001d4b: DUP1 00001d4c: SWAP2 00001d4d: SUB 00001d4e: SWAP1 00001d4f: LOG1 00001d50: POP 00001d51: POP 00001d52: JUMP 00001d53: JUMPDEST 00001d54: PUSH1 0x00 00001d56: ADDRESS 00001d57: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d6c: PUSH32 0x000000000000000000000000951f99350d816c0e160a2c71defe828bdfc17f12 00001d8d: AND 00001d8e: EQ 00001d8f: DUP1 00001d90: ISZERO 00001d91: PUSH2 0x1db9 00001d94: JUMPI 00001d95: POP 00001d96: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001 00001db7: CHAINID 00001db8: EQ 00001db9: JUMPDEST 00001dba: ISZERO 00001dbb: PUSH2 0x1de3 00001dbe: JUMPI 00001dbf: POP 00001dc0: PUSH32 0x8bddfbe7a6a37f0262112d2cb0eefbcfe5248abd98001dd69e1c4bf08bffc3b2 00001de1: SWAP1 00001de2: JUMP 00001de3: JUMPDEST 00001de4: POP 00001de5: PUSH1 0x40 00001de7: DUP1 00001de8: MLOAD 00001de9: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f 00001e0a: PUSH1 0x20 00001e0c: DUP1 00001e0d: DUP4 00001e0e: ADD 00001e0f: SWAP2 00001e10: SWAP1 00001e11: SWAP2 00001e12: MSTORE 00001e13: PUSH32 0x0618c188edbe06a8ffa15e11b4f74493cfd6f23aba7fab610364d908072aac99 00001e34: DUP3 00001e35: DUP5 00001e36: ADD 00001e37: MSTORE 00001e38: PUSH32 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6 00001e59: PUSH1 0x60 00001e5b: DUP4 00001e5c: ADD 00001e5d: MSTORE 00001e5e: CHAINID 00001e5f: PUSH1 0x80 00001e61: DUP4 00001e62: ADD 00001e63: MSTORE 00001e64: ADDRESS 00001e65: PUSH1 0xa0 00001e67: DUP1 00001e68: DUP5 00001e69: ADD 00001e6a: SWAP2 00001e6b: SWAP1 00001e6c: SWAP2 00001e6d: MSTORE 00001e6e: DUP4 00001e6f: MLOAD 00001e70: DUP1 00001e71: DUP5 00001e72: SUB 00001e73: SWAP1 00001e74: SWAP2 00001e75: ADD 00001e76: DUP2 00001e77: MSTORE 00001e78: PUSH1 0xc0 00001e7a: SWAP1 00001e7b: SWAP3 00001e7c: ADD 00001e7d: SWAP1 00001e7e: SWAP3 00001e7f: MSTORE 00001e80: DUP1 00001e81: MLOAD 00001e82: SWAP2 00001e83: ADD 00001e84: KECCAK256 00001e85: SWAP1 00001e86: JUMP 00001e87: JUMPDEST 00001e88: PUSH2 0x0c37 00001e8b: DUP5 00001e8c: DUP5 00001e8d: DUP5 00001e8e: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00001eaf: DUP6 00001eb0: PUSH2 0x226b 00001eb3: JUMP 00001eb4: JUMPDEST 00001eb5: PUSH1 0x00 00001eb7: DUP3 00001eb8: DUP3 00001eb9: DUP3 00001eba: JUMPDEST 00001ebb: PUSH1 0x80 00001ebd: DUP2 00001ebe: LT 00001ebf: ISZERO 00001ec0: PUSH2 0x1fb1 00001ec3: JUMPI 00001ec4: DUP2 00001ec5: DUP4 00001ec6: LT 00001ec7: ISZERO 00001ec8: PUSH2 0x1fb1 00001ecb: JUMPI 00001ecc: PUSH1 0x40 00001ece: MLOAD 00001ecf: PUSH32 0x28d09d4700000000000000000000000000000000000000000000000000000000 00001ef0: DUP2 00001ef1: MSTORE 00001ef2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f07: DUP10 00001f08: DUP2 00001f09: AND 00001f0a: PUSH1 0x04 00001f0c: DUP4 00001f0d: ADD 00001f0e: MSTORE 00001f0f: PUSH1 0x02 00001f11: DUP5 00001f12: DUP7 00001f13: ADD 00001f14: DUP2 00001f15: ADD 00001f16: DIV 00001f17: PUSH1 0x24 00001f19: DUP4 00001f1a: ADD 00001f1b: DUP2 00001f1c: SWAP1 00001f1d: MSTORE 00001f1e: SWAP2 00001f1f: PUSH1 0x00 00001f21: SWAP2 00001f22: PUSH32 0x000000000000000000000000f17d23136b4fead139f54fb766c8795faae09660 00001f43: AND 00001f44: SWAP1 00001f45: PUSH4 0x28d09d47 00001f4a: SWAP1 00001f4b: PUSH1 0x44 00001f4d: ADD 00001f4e: PUSH1 0x80 00001f50: PUSH1 0x40 00001f52: MLOAD 00001f53: DUP1 00001f54: DUP4 00001f55: SUB 00001f56: DUP2 00001f57: DUP7 00001f58: GAS 00001f59: STATICCALL 00001f5a: ISZERO 00001f5b: DUP1 00001f5c: ISZERO 00001f5d: PUSH2 0x1f6a 00001f60: JUMPI 00001f61: RETURNDATASIZE 00001f62: PUSH1 0x00 00001f64: DUP1 00001f65: RETURNDATACOPY 00001f66: RETURNDATASIZE 00001f67: PUSH1 0x00 00001f69: REVERT 00001f6a: JUMPDEST 00001f6b: POP 00001f6c: POP 00001f6d: POP 00001f6e: POP 00001f6f: PUSH1 0x40 00001f71: MLOAD 00001f72: RETURNDATASIZE 00001f73: PUSH1 0x1f 00001f75: NOT 00001f76: PUSH1 0x1f 00001f78: DUP3 00001f79: ADD 00001f7a: AND 00001f7b: DUP3 00001f7c: ADD 00001f7d: DUP1 00001f7e: PUSH1 0x40 00001f80: MSTORE 00001f81: POP 00001f82: DUP2 00001f83: ADD 00001f84: SWAP1 00001f85: PUSH2 0x1f8e 00001f88: SWAP2 00001f89: SWAP1 00001f8a: PUSH2 0x28ed 00001f8d: JUMP 00001f8e: JUMPDEST 00001f8f: SWAP1 00001f90: POP 00001f91: DUP9 00001f92: DUP2 00001f93: PUSH1 0x40 00001f95: ADD 00001f96: MLOAD 00001f97: GT 00001f98: PUSH2 0x1fa3 00001f9b: JUMPI 00001f9c: DUP2 00001f9d: SWAP5 00001f9e: POP 00001f9f: PUSH2 0x1faa 00001fa2: JUMP 00001fa3: JUMPDEST 00001fa4: PUSH1 0x01 00001fa6: DUP3 00001fa7: SUB 00001fa8: SWAP4 00001fa9: POP 00001faa: JUMPDEST 00001fab: POP 00001fac: POP 00001fad: PUSH2 0x1eba 00001fb0: JUMP 00001fb1: JUMPDEST 00001fb2: POP 00001fb3: SWAP1 00001fb4: SWAP7 00001fb5: SWAP6 00001fb6: POP 00001fb7: POP 00001fb8: POP 00001fb9: POP 00001fba: POP 00001fbb: POP 00001fbc: JUMP 00001fbd: JUMPDEST 00001fbe: PUSH1 0x00 00001fc0: PUSH3 0x093a80 00001fc4: PUSH3 0x093a7f 00001fc8: DUP4 00001fc9: ADD 00001fca: DUP2 00001fcb: SWAP1 00001fcc: DIV 00001fcd: MUL 00001fce: PUSH2 0x082c 00001fd1: JUMP 00001fd2: JUMPDEST 00001fd3: PUSH1 0x00 00001fd5: DUP2 00001fd6: DUP4 00001fd7: GT 00001fd8: PUSH2 0x1fe1 00001fdb: JUMPI 00001fdc: DUP2 00001fdd: PUSH2 0x0829 00001fe0: JUMP 00001fe1: JUMPDEST 00001fe2: POP 00001fe3: SWAP1 00001fe4: SWAP2 00001fe5: SWAP1 00001fe6: POP 00001fe7: JUMP 00001fe8: JUMPDEST 00001fe9: PUSH1 0x00 00001feb: PUSH32 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000200c: DUP3 0000200d: GT 0000200e: ISZERO 0000200f: PUSH2 0x209a 00002012: JUMPI 00002013: PUSH1 0x40 00002015: MLOAD 00002016: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002037: DUP2 00002038: MSTORE 00002039: PUSH1 0x20 0000203b: PUSH1 0x04 0000203d: DUP3 0000203e: ADD 0000203f: MSTORE 00002040: PUSH1 0x28 00002042: PUSH1 0x24 00002044: DUP3 00002045: ADD 00002046: MSTORE 00002047: PUSH32 0x53616665436173743a2076616c756520646f65736e27742066697420696e2061 00002068: PUSH1 0x44 0000206a: DUP3 0000206b: ADD 0000206c: MSTORE 0000206d: PUSH32 0x6e20696e74323536000000000000000000000000000000000000000000000000 0000208e: PUSH1 0x64 00002090: DUP3 00002091: ADD 00002092: MSTORE 00002093: PUSH1 0x84 00002095: ADD 00002096: PUSH2 0x0544 00002099: JUMP 0000209a: JUMPDEST 0000209b: POP 0000209c: SWAP1 0000209d: JUMP 0000209e: JUMPDEST 0000209f: DUP1 000020a0: PUSH1 0x0f 000020a2: DUP2 000020a3: SWAP1 000020a4: SIGNEXTEND 000020a5: DUP2 000020a6: EQ 000020a7: PUSH2 0x2132 000020aa: JUMPI 000020ab: PUSH1 0x40 000020ad: MLOAD 000020ae: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000020cf: DUP2 000020d0: MSTORE 000020d1: PUSH1 0x20 000020d3: PUSH1 0x04 000020d5: DUP3 000020d6: ADD 000020d7: MSTORE 000020d8: PUSH1 0x27 000020da: PUSH1 0x24 000020dc: DUP3 000020dd: ADD 000020de: MSTORE 000020df: PUSH32 0x53616665436173743a2076616c756520646f65736e27742066697420696e2031 00002100: PUSH1 0x44 00002102: DUP3 00002103: ADD 00002104: MSTORE 00002105: PUSH32 0x3238206269747300000000000000000000000000000000000000000000000000 00002126: PUSH1 0x64 00002128: DUP3 00002129: ADD 0000212a: MSTORE 0000212b: PUSH1 0x84 0000212d: ADD 0000212e: PUSH2 0x0544 00002131: JUMP 00002132: JUMPDEST 00002133: SWAP2 00002134: SWAP1 00002135: POP 00002136: JUMP 00002137: JUMPDEST 00002138: PUSH1 0x00 0000213a: DUP1 0000213b: DUP3 0000213c: SLT 0000213d: ISZERO 0000213e: PUSH2 0x209a 00002141: JUMPI 00002142: PUSH1 0x40 00002144: MLOAD 00002145: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002166: DUP2 00002167: MSTORE 00002168: PUSH1 0x20 0000216a: PUSH1 0x04 0000216c: DUP3 0000216d: ADD 0000216e: DUP2 0000216f: SWAP1 00002170: MSTORE 00002171: PUSH1 0x24 00002173: DUP3 00002174: ADD 00002175: MSTORE 00002176: PUSH32 0x53616665436173743a2076616c7565206d75737420626520706f736974697665 00002197: PUSH1 0x44 00002199: DUP3 0000219a: ADD 0000219b: MSTORE 0000219c: PUSH1 0x64 0000219e: ADD 0000219f: PUSH2 0x0544 000021a2: JUMP 000021a3: JUMPDEST 000021a4: PUSH1 0x00 000021a6: DUP2 000021a7: DUP4 000021a8: LT 000021a9: PUSH2 0x1fe1 000021ac: JUMPI 000021ad: DUP2 000021ae: PUSH2 0x0829 000021b1: JUMP 000021b2: JUMPDEST 000021b3: PUSH1 0x00 000021b5: PUSH1 0x40 000021b7: MLOAD 000021b8: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000 000021d9: DUP2 000021da: MSTORE 000021db: DUP4 000021dc: PUSH1 0x04 000021de: DUP3 000021df: ADD 000021e0: MSTORE 000021e1: DUP3 000021e2: PUSH1 0x24 000021e4: DUP3 000021e5: ADD 000021e6: MSTORE 000021e7: PUSH1 0x20 000021e9: PUSH1 0x00 000021eb: PUSH1 0x44 000021ed: DUP4 000021ee: PUSH1 0x00 000021f0: DUP10 000021f1: GAS 000021f2: CALL 000021f3: RETURNDATASIZE 000021f4: ISZERO 000021f5: PUSH1 0x1f 000021f7: RETURNDATASIZE 000021f8: GT 000021f9: PUSH1 0x01 000021fb: PUSH1 0x00 000021fd: MLOAD 000021fe: EQ 000021ff: AND 00002200: OR 00002201: AND 00002202: SWAP2 00002203: POP 00002204: POP 00002205: DUP1 00002206: PUSH2 0x0c37 00002209: JUMPI 0000220a: PUSH1 0x40 0000220c: MLOAD 0000220d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000222e: DUP2 0000222f: MSTORE 00002230: PUSH1 0x20 00002232: PUSH1 0x04 00002234: DUP3 00002235: ADD 00002236: MSTORE 00002237: PUSH1 0x0f 00002239: PUSH1 0x24 0000223b: DUP3 0000223c: ADD 0000223d: MSTORE 0000223e: PUSH32 0x5452414e534645525f4641494c45440000000000000000000000000000000000 0000225f: PUSH1 0x44 00002261: DUP3 00002262: ADD 00002263: MSTORE 00002264: PUSH1 0x64 00002266: ADD 00002267: PUSH2 0x0544 0000226a: JUMP 0000226b: JUMPDEST 0000226c: PUSH1 0x00 0000226e: PUSH2 0x2276 00002271: DUP6 00002272: PUSH2 0x2339 00002275: JUMP 00002276: JUMPDEST 00002277: SWAP1 00002278: POP 00002279: PUSH2 0x2283 0000227c: DUP7 0000227d: DUP3 0000227e: DUP7 0000227f: PUSH2 0x23a2 00002282: JUMP 00002283: JUMPDEST 00002284: PUSH2 0x22bc 00002287: JUMPI 00002288: PUSH1 0x40 0000228a: MLOAD 0000228b: PUSH32 0xe9a06b8b00000000000000000000000000000000000000000000000000000000 000022ac: DUP2 000022ad: MSTORE 000022ae: PUSH1 0x04 000022b0: DUP2 000022b1: ADD 000022b2: DUP4 000022b3: SWAP1 000022b4: MSTORE 000022b5: PUSH1 0x24 000022b7: ADD 000022b8: PUSH2 0x0544 000022bb: JUMP 000022bc: JUMPDEST 000022bd: TIMESTAMP 000022be: DUP4 000022bf: LT 000022c0: ISZERO 000022c1: PUSH2 0x22f6 000022c4: JUMPI 000022c5: PUSH1 0x40 000022c7: MLOAD 000022c8: PUSH32 0x922f30c600000000000000000000000000000000000000000000000000000000 000022e9: DUP2 000022ea: MSTORE 000022eb: PUSH1 0x04 000022ed: ADD 000022ee: PUSH1 0x40 000022f0: MLOAD 000022f1: DUP1 000022f2: SWAP2 000022f3: SUB 000022f4: SWAP1 000022f5: REVERT 000022f6: JUMPDEST 000022f7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000230c: DUP7 0000230d: AND 0000230e: PUSH1 0x00 00002310: SWAP1 00002311: DUP2 00002312: MSTORE 00002313: PUSH1 0x20 00002315: DUP2 00002316: SWAP1 00002317: MSTORE 00002318: PUSH1 0x40 0000231a: DUP2 0000231b: KECCAK256 0000231c: DUP1 0000231d: SLOAD 0000231e: PUSH1 0x01 00002320: SWAP3 00002321: SWAP1 00002322: PUSH2 0x232c 00002325: SWAP1 00002326: DUP5 00002327: SWAP1 00002328: PUSH2 0x29d0 0000232b: JUMP 0000232c: JUMPDEST 0000232d: SWAP1 0000232e: SWAP2 0000232f: SSTORE 00002330: POP 00002331: POP 00002332: POP 00002333: POP 00002334: POP 00002335: POP 00002336: POP 00002337: POP 00002338: JUMP 00002339: JUMPDEST 0000233a: PUSH1 0x00 0000233c: PUSH2 0x082c 0000233f: PUSH2 0x2346 00002342: PUSH2 0x1d53 00002345: JUMP 00002346: JUMPDEST 00002347: DUP4 00002348: PUSH1 0x40 0000234a: MLOAD 0000234b: PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 0000236c: PUSH1 0x20 0000236e: DUP3 0000236f: ADD 00002370: MSTORE 00002371: PUSH1 0x22 00002373: DUP2 00002374: ADD 00002375: DUP4 00002376: SWAP1 00002377: MSTORE 00002378: PUSH1 0x42 0000237a: DUP2 0000237b: ADD 0000237c: DUP3 0000237d: SWAP1 0000237e: MSTORE 0000237f: PUSH1 0x00 00002381: SWAP1 00002382: PUSH1 0x62 00002384: ADD 00002385: PUSH1 0x40 00002387: MLOAD 00002388: PUSH1 0x20 0000238a: DUP2 0000238b: DUP4 0000238c: SUB 0000238d: SUB 0000238e: DUP2 0000238f: MSTORE 00002390: SWAP1 00002391: PUSH1 0x40 00002393: MSTORE 00002394: DUP1 00002395: MLOAD 00002396: SWAP1 00002397: PUSH1 0x20 00002399: ADD 0000239a: KECCAK256 0000239b: SWAP1 0000239c: POP 0000239d: SWAP3 0000239e: SWAP2 0000239f: POP 000023a0: POP 000023a1: JUMP 000023a2: JUMPDEST 000023a3: PUSH1 0x00 000023a5: DUP2 000023a6: MLOAD 000023a7: PUSH1 0x41 000023a9: EQ 000023aa: PUSH2 0x23df 000023ad: JUMPI 000023ae: PUSH1 0x40 000023b0: MLOAD 000023b1: PUSH32 0x98af90f600000000000000000000000000000000000000000000000000000000 000023d2: DUP2 000023d3: MSTORE 000023d4: PUSH1 0x04 000023d6: ADD 000023d7: PUSH1 0x40 000023d9: MLOAD 000023da: DUP1 000023db: SWAP2 000023dc: SUB 000023dd: SWAP1 000023de: REVERT 000023df: JUMPDEST 000023e0: PUSH1 0x20 000023e2: DUP3 000023e3: DUP2 000023e4: ADD 000023e5: MLOAD 000023e6: PUSH1 0x40 000023e8: DUP1 000023e9: DUP6 000023ea: ADD 000023eb: MLOAD 000023ec: PUSH1 0x60 000023ee: DUP1 000023ef: DUP8 000023f0: ADD 000023f1: MLOAD 000023f2: DUP4 000023f3: MLOAD 000023f4: PUSH1 0x00 000023f6: DUP1 000023f7: DUP3 000023f8: MSTORE 000023f9: SWAP7 000023fa: DUP2 000023fb: ADD 000023fc: DUP1 000023fd: DUP7 000023fe: MSTORE 000023ff: DUP11 00002400: SWAP1 00002401: MSTORE 00002402: SWAP1 00002403: DUP7 00002404: BYTE 00002405: SWAP4 00002406: DUP2 00002407: ADD 00002408: DUP5 00002409: SWAP1 0000240a: MSTORE 0000240b: SWAP1 0000240c: DUP2 0000240d: ADD 0000240e: DUP5 0000240f: SWAP1 00002410: MSTORE 00002411: PUSH1 0x80 00002413: DUP2 00002414: ADD 00002415: DUP3 00002416: SWAP1 00002417: MSTORE 00002418: SWAP3 00002419: SWAP4 0000241a: SWAP1 0000241b: SWAP3 0000241c: PUSH1 0x01 0000241e: SWAP1 0000241f: PUSH1 0xa0 00002421: ADD 00002422: PUSH1 0x20 00002424: PUSH1 0x40 00002426: MLOAD 00002427: PUSH1 0x20 00002429: DUP2 0000242a: SUB 0000242b: SWAP1 0000242c: DUP1 0000242d: DUP5 0000242e: SUB 0000242f: SWAP1 00002430: DUP6 00002431: GAS 00002432: STATICCALL 00002433: ISZERO 00002434: DUP1 00002435: ISZERO 00002436: PUSH2 0x2443 00002439: JUMPI 0000243a: RETURNDATASIZE 0000243b: PUSH1 0x00 0000243d: DUP1 0000243e: RETURNDATACOPY 0000243f: RETURNDATASIZE 00002440: PUSH1 0x00 00002442: REVERT 00002443: JUMPDEST 00002444: POP 00002445: POP 00002446: PUSH1 0x40 00002448: MLOAD 00002449: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 0000246a: ADD 0000246b: MLOAD 0000246c: SWAP2 0000246d: POP 0000246e: POP 0000246f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002484: DUP2 00002485: AND 00002486: ISZERO 00002487: DUP1 00002488: ISZERO 00002489: SWAP1 0000248a: PUSH2 0x1cb9 0000248d: JUMPI 0000248e: POP 0000248f: DUP8 00002490: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024a5: AND 000024a6: DUP2 000024a7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024bc: AND 000024bd: EQ 000024be: SWAP9 000024bf: SWAP8 000024c0: POP 000024c1: POP 000024c2: POP 000024c3: POP 000024c4: POP 000024c5: POP 000024c6: POP 000024c7: POP 000024c8: JUMP 000024c9: JUMPDEST 000024ca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024df: DUP2 000024e0: AND 000024e1: DUP2 000024e2: EQ 000024e3: PUSH2 0x0b6b 000024e6: JUMPI 000024e7: PUSH1 0x00 000024e9: DUP1 000024ea: REVERT 000024eb: JUMPDEST 000024ec: PUSH1 0x00 000024ee: PUSH1 0x20 000024f0: DUP3 000024f1: DUP5 000024f2: SUB 000024f3: SLT 000024f4: ISZERO 000024f5: PUSH2 0x24fd 000024f8: JUMPI 000024f9: PUSH1 0x00 000024fb: DUP1 000024fc: REVERT 000024fd: JUMPDEST 000024fe: DUP2 000024ff: CALLDATALOAD 00002500: PUSH2 0x2508 00002503: DUP2 00002504: PUSH2 0x24c9 00002507: JUMP 00002508: JUMPDEST 00002509: SWAP4 0000250a: SWAP3 0000250b: POP 0000250c: POP 0000250d: POP 0000250e: JUMP 0000250f: JUMPDEST 00002510: PUSH1 0x00 00002512: DUP1 00002513: PUSH1 0x40 00002515: DUP4 00002516: DUP6 00002517: SUB 00002518: SLT 00002519: ISZERO 0000251a: PUSH2 0x2522 0000251d: JUMPI 0000251e: PUSH1 0x00 00002520: DUP1 00002521: REVERT 00002522: JUMPDEST 00002523: DUP3 00002524: CALLDATALOAD 00002525: PUSH2 0x252d 00002528: DUP2 00002529: PUSH2 0x24c9 0000252c: JUMP 0000252d: JUMPDEST 0000252e: SWAP5 0000252f: PUSH1 0x20 00002531: SWAP4 00002532: SWAP1 00002533: SWAP4 00002534: ADD 00002535: CALLDATALOAD 00002536: SWAP4 00002537: POP 00002538: POP 00002539: POP 0000253a: JUMP 0000253b: JUMPDEST 0000253c: PUSH1 0x00 0000253e: PUSH1 0x20 00002540: DUP3 00002541: DUP5 00002542: SUB 00002543: SLT 00002544: ISZERO 00002545: PUSH2 0x254d 00002548: JUMPI 00002549: PUSH1 0x00 0000254b: DUP1 0000254c: REVERT 0000254d: JUMPDEST 0000254e: POP 0000254f: CALLDATALOAD 00002550: SWAP2 00002551: SWAP1 00002552: POP 00002553: JUMP 00002554: JUMPDEST 00002555: PUSH1 0x00 00002557: DUP1 00002558: DUP4 00002559: PUSH1 0x1f 0000255b: DUP5 0000255c: ADD 0000255d: SLT 0000255e: PUSH2 0x2566 00002561: JUMPI 00002562: PUSH1 0x00 00002564: DUP1 00002565: REVERT 00002566: JUMPDEST 00002567: POP 00002568: DUP2 00002569: CALLDATALOAD 0000256a: PUSH8 0xffffffffffffffff 00002573: DUP2 00002574: GT 00002575: ISZERO 00002576: PUSH2 0x257e 00002579: JUMPI 0000257a: PUSH1 0x00 0000257c: DUP1 0000257d: REVERT 0000257e: JUMPDEST 0000257f: PUSH1 0x20 00002581: DUP4 00002582: ADD 00002583: SWAP2 00002584: POP 00002585: DUP4 00002586: PUSH1 0x20 00002588: DUP3 00002589: PUSH1 0x05 0000258b: SHL 0000258c: DUP6 0000258d: ADD 0000258e: ADD 0000258f: GT 00002590: ISZERO 00002591: PUSH2 0x2599 00002594: JUMPI 00002595: PUSH1 0x00 00002597: DUP1 00002598: REVERT 00002599: JUMPDEST 0000259a: SWAP3 0000259b: POP 0000259c: SWAP3 0000259d: SWAP1 0000259e: POP 0000259f: JUMP 000025a0: JUMPDEST 000025a1: PUSH1 0x00 000025a3: DUP1 000025a4: PUSH1 0x00 000025a6: DUP1 000025a7: PUSH1 0x40 000025a9: DUP6 000025aa: DUP8 000025ab: SUB 000025ac: SLT 000025ad: ISZERO 000025ae: PUSH2 0x25b6 000025b1: JUMPI 000025b2: PUSH1 0x00 000025b4: DUP1 000025b5: REVERT 000025b6: JUMPDEST 000025b7: DUP5 000025b8: CALLDATALOAD 000025b9: PUSH8 0xffffffffffffffff 000025c2: DUP1 000025c3: DUP3 000025c4: GT 000025c5: ISZERO 000025c6: PUSH2 0x25ce 000025c9: JUMPI 000025ca: PUSH1 0x00 000025cc: DUP1 000025cd: REVERT 000025ce: JUMPDEST 000025cf: PUSH2 0x25da 000025d2: DUP9 000025d3: DUP4 000025d4: DUP10 000025d5: ADD 000025d6: PUSH2 0x2554 000025d9: JUMP 000025da: JUMPDEST 000025db: SWAP1 000025dc: SWAP7 000025dd: POP 000025de: SWAP5 000025df: POP 000025e0: PUSH1 0x20 000025e2: DUP8 000025e3: ADD 000025e4: CALLDATALOAD 000025e5: SWAP2 000025e6: POP 000025e7: DUP1 000025e8: DUP3 000025e9: GT 000025ea: ISZERO 000025eb: PUSH2 0x25f3 000025ee: JUMPI 000025ef: PUSH1 0x00 000025f1: DUP1 000025f2: REVERT 000025f3: JUMPDEST 000025f4: POP 000025f5: PUSH2 0x2600 000025f8: DUP8 000025f9: DUP3 000025fa: DUP9 000025fb: ADD 000025fc: PUSH2 0x2554 000025ff: JUMP 00002600: JUMPDEST 00002601: SWAP6 00002602: SWAP9 00002603: SWAP5 00002604: SWAP8 00002605: POP 00002606: SWAP6 00002607: POP 00002608: POP 00002609: POP 0000260a: POP 0000260b: JUMP 0000260c: JUMPDEST 0000260d: PUSH1 0x00 0000260f: DUP1 00002610: PUSH1 0x40 00002612: DUP4 00002613: DUP6 00002614: SUB 00002615: SLT 00002616: ISZERO 00002617: PUSH2 0x261f 0000261a: JUMPI 0000261b: PUSH1 0x00 0000261d: DUP1 0000261e: REVERT 0000261f: JUMPDEST 00002620: DUP3 00002621: CALLDATALOAD 00002622: PUSH2 0x262a 00002625: DUP2 00002626: PUSH2 0x24c9 00002629: JUMP 0000262a: JUMPDEST 0000262b: SWAP2 0000262c: POP 0000262d: PUSH1 0x20 0000262f: DUP4 00002630: ADD 00002631: CALLDATALOAD 00002632: PUSH2 0x263a 00002635: DUP2 00002636: PUSH2 0x24c9 00002639: JUMP 0000263a: JUMPDEST 0000263b: DUP1 0000263c: SWAP2 0000263d: POP 0000263e: POP 0000263f: SWAP3 00002640: POP 00002641: SWAP3 00002642: SWAP1 00002643: POP 00002644: JUMP 00002645: JUMPDEST 00002646: PUSH1 0x00 00002648: DUP1 00002649: PUSH1 0x00 0000264b: PUSH1 0x40 0000264d: DUP5 0000264e: DUP7 0000264f: SUB 00002650: SLT 00002651: ISZERO 00002652: PUSH2 0x265a 00002655: JUMPI 00002656: PUSH1 0x00 00002658: DUP1 00002659: REVERT 0000265a: JUMPDEST 0000265b: DUP4 0000265c: CALLDATALOAD 0000265d: PUSH2 0x2665 00002660: DUP2 00002661: PUSH2 0x24c9 00002664: JUMP 00002665: JUMPDEST 00002666: SWAP3 00002667: POP 00002668: PUSH1 0x20 0000266a: DUP5 0000266b: ADD 0000266c: CALLDATALOAD 0000266d: PUSH8 0xffffffffffffffff 00002676: DUP2 00002677: GT 00002678: ISZERO 00002679: PUSH2 0x2681 0000267c: JUMPI 0000267d: PUSH1 0x00 0000267f: DUP1 00002680: REVERT 00002681: JUMPDEST 00002682: PUSH2 0x268d 00002685: DUP7 00002686: DUP3 00002687: DUP8 00002688: ADD 00002689: PUSH2 0x2554 0000268c: JUMP 0000268d: JUMPDEST 0000268e: SWAP5 0000268f: SWAP8 00002690: SWAP1 00002691: SWAP7 00002692: POP 00002693: SWAP4 00002694: SWAP5 00002695: POP 00002696: POP 00002697: POP 00002698: POP 00002699: JUMP 0000269a: JUMPDEST 0000269b: PUSH1 0x20 0000269d: DUP1 0000269e: DUP3 0000269f: MSTORE 000026a0: DUP3 000026a1: MLOAD 000026a2: DUP3 000026a3: DUP3 000026a4: ADD 000026a5: DUP2 000026a6: SWAP1 000026a7: MSTORE 000026a8: PUSH1 0x00 000026aa: SWAP2 000026ab: SWAP1 000026ac: DUP5 000026ad: DUP3 000026ae: ADD 000026af: SWAP1 000026b0: PUSH1 0x40 000026b2: DUP6 000026b3: ADD 000026b4: SWAP1 000026b5: DUP5 000026b6: JUMPDEST 000026b7: DUP2 000026b8: DUP2 000026b9: LT 000026ba: ISZERO 000026bb: PUSH2 0x1fb1 000026be: JUMPI 000026bf: DUP4 000026c0: MLOAD 000026c1: DUP4 000026c2: MSTORE 000026c3: SWAP3 000026c4: DUP5 000026c5: ADD 000026c6: SWAP3 000026c7: SWAP2 000026c8: DUP5 000026c9: ADD 000026ca: SWAP2 000026cb: PUSH1 0x01 000026cd: ADD 000026ce: PUSH2 0x26b6 000026d1: JUMP 000026d2: JUMPDEST 000026d3: PUSH1 0x00 000026d5: DUP1 000026d6: PUSH1 0x20 000026d8: DUP4 000026d9: DUP6 000026da: SUB 000026db: SLT 000026dc: ISZERO 000026dd: PUSH2 0x26e5 000026e0: JUMPI 000026e1: PUSH1 0x00 000026e3: DUP1 000026e4: REVERT 000026e5: JUMPDEST 000026e6: DUP3 000026e7: CALLDATALOAD 000026e8: PUSH8 0xffffffffffffffff 000026f1: DUP2 000026f2: GT 000026f3: ISZERO 000026f4: PUSH2 0x26fc 000026f7: JUMPI 000026f8: PUSH1 0x00 000026fa: DUP1 000026fb: REVERT 000026fc: JUMPDEST 000026fd: PUSH2 0x2708 00002700: DUP6 00002701: DUP3 00002702: DUP7 00002703: ADD 00002704: PUSH2 0x2554 00002707: JUMP 00002708: JUMPDEST 00002709: SWAP1 0000270a: SWAP7 0000270b: SWAP1 0000270c: SWAP6 0000270d: POP 0000270e: SWAP4 0000270f: POP 00002710: POP 00002711: POP 00002712: POP 00002713: JUMP 00002714: JUMPDEST 00002715: DUP1 00002716: CALLDATALOAD 00002717: DUP1 00002718: ISZERO 00002719: ISZERO 0000271a: DUP2 0000271b: EQ 0000271c: PUSH2 0x2132 0000271f: JUMPI 00002720: PUSH1 0x00 00002722: DUP1 00002723: REVERT 00002724: JUMPDEST 00002725: PUSH1 0x00 00002727: PUSH1 0x20 00002729: DUP3 0000272a: DUP5 0000272b: SUB 0000272c: SLT 0000272d: ISZERO 0000272e: PUSH2 0x2736 00002731: JUMPI 00002732: PUSH1 0x00 00002734: DUP1 00002735: REVERT 00002736: JUMPDEST 00002737: PUSH2 0x0829 0000273a: DUP3 0000273b: PUSH2 0x2714 0000273e: JUMP 0000273f: JUMPDEST 00002740: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00002761: PUSH1 0x00 00002763: MSTORE 00002764: PUSH1 0x41 00002766: PUSH1 0x04 00002768: MSTORE 00002769: PUSH1 0x24 0000276b: PUSH1 0x00 0000276d: REVERT 0000276e: JUMPDEST 0000276f: PUSH1 0x40 00002771: MLOAD 00002772: PUSH1 0x1f 00002774: DUP3 00002775: ADD 00002776: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00002797: AND 00002798: DUP2 00002799: ADD 0000279a: PUSH8 0xffffffffffffffff 000027a3: DUP2 000027a4: GT 000027a5: DUP3 000027a6: DUP3 000027a7: LT 000027a8: OR 000027a9: ISZERO 000027aa: PUSH2 0x27b5 000027ad: JUMPI 000027ae: PUSH2 0x27b5 000027b1: PUSH2 0x273f 000027b4: JUMP 000027b5: JUMPDEST 000027b6: PUSH1 0x40 000027b8: MSTORE 000027b9: SWAP2 000027ba: SWAP1 000027bb: POP 000027bc: JUMP 000027bd: JUMPDEST 000027be: PUSH1 0x00 000027c0: DUP1 000027c1: PUSH1 0x00 000027c3: PUSH1 0x60 000027c5: DUP5 000027c6: DUP7 000027c7: SUB 000027c8: SLT 000027c9: ISZERO 000027ca: PUSH2 0x27d2 000027cd: JUMPI 000027ce: PUSH1 0x00 000027d0: DUP1 000027d1: REVERT 000027d2: JUMPDEST 000027d3: DUP4 000027d4: CALLDATALOAD 000027d5: PUSH2 0x27dd 000027d8: DUP2 000027d9: PUSH2 0x24c9 000027dc: JUMP 000027dd: JUMPDEST 000027de: SWAP3 000027df: POP 000027e0: PUSH1 0x20 000027e2: PUSH2 0x27ec 000027e5: DUP6 000027e6: DUP3 000027e7: ADD 000027e8: PUSH2 0x2714 000027eb: JUMP 000027ec: JUMPDEST 000027ed: SWAP3 000027ee: POP 000027ef: PUSH1 0x40 000027f1: DUP6 000027f2: ADD 000027f3: CALLDATALOAD 000027f4: PUSH8 0xffffffffffffffff 000027fd: DUP1 000027fe: DUP3 000027ff: GT 00002800: ISZERO 00002801: PUSH2 0x2809 00002804: JUMPI 00002805: PUSH1 0x00 00002807: DUP1 00002808: REVERT 00002809: JUMPDEST 0000280a: DUP2 0000280b: DUP8 0000280c: ADD 0000280d: SWAP2 0000280e: POP 0000280f: DUP8 00002810: PUSH1 0x1f 00002812: DUP4 00002813: ADD 00002814: SLT 00002815: PUSH2 0x281d 00002818: JUMPI 00002819: PUSH1 0x00 0000281b: DUP1 0000281c: REVERT 0000281d: JUMPDEST 0000281e: DUP2 0000281f: CALLDATALOAD 00002820: DUP2 00002821: DUP2 00002822: GT 00002823: ISZERO 00002824: PUSH2 0x282f 00002827: JUMPI 00002828: PUSH2 0x282f 0000282b: PUSH2 0x273f 0000282e: JUMP 0000282f: JUMPDEST 00002830: PUSH2 0x285f 00002833: DUP5 00002834: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00002855: PUSH1 0x1f 00002857: DUP5 00002858: ADD 00002859: AND 0000285a: ADD 0000285b: PUSH2 0x276e 0000285e: JUMP 0000285f: JUMPDEST 00002860: SWAP2 00002861: POP 00002862: DUP1 00002863: DUP3 00002864: MSTORE 00002865: DUP9 00002866: DUP5 00002867: DUP3 00002868: DUP6 00002869: ADD 0000286a: ADD 0000286b: GT 0000286c: ISZERO 0000286d: PUSH2 0x2875 00002870: JUMPI 00002871: PUSH1 0x00 00002873: DUP1 00002874: REVERT 00002875: JUMPDEST 00002876: DUP1 00002877: DUP5 00002878: DUP5 00002879: ADD 0000287a: DUP6 0000287b: DUP5 0000287c: ADD 0000287d: CALLDATACOPY 0000287e: PUSH1 0x00 00002880: DUP5 00002881: DUP3 00002882: DUP5 00002883: ADD 00002884: ADD 00002885: MSTORE 00002886: POP 00002887: DUP1 00002888: SWAP4 00002889: POP 0000288a: POP 0000288b: POP 0000288c: POP 0000288d: SWAP3 0000288e: POP 0000288f: SWAP3 00002890: POP 00002891: SWAP3 00002892: JUMP 00002893: JUMPDEST 00002894: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000028b5: PUSH1 0x00 000028b7: MSTORE 000028b8: PUSH1 0x32 000028ba: PUSH1 0x04 000028bc: MSTORE 000028bd: PUSH1 0x24 000028bf: PUSH1 0x00 000028c1: REVERT 000028c2: JUMPDEST 000028c3: PUSH1 0x00 000028c5: PUSH1 0x20 000028c7: DUP3 000028c8: DUP5 000028c9: SUB 000028ca: SLT 000028cb: ISZERO 000028cc: PUSH2 0x28d4 000028cf: JUMPI 000028d0: PUSH1 0x00 000028d2: DUP1 000028d3: REVERT 000028d4: JUMPDEST 000028d5: POP 000028d6: MLOAD 000028d7: SWAP2 000028d8: SWAP1 000028d9: POP 000028da: JUMP 000028db: JUMPDEST 000028dc: DUP1 000028dd: MLOAD 000028de: PUSH1 0x0f 000028e0: DUP2 000028e1: SWAP1 000028e2: SIGNEXTEND 000028e3: DUP2 000028e4: EQ 000028e5: PUSH2 0x2132 000028e8: JUMPI 000028e9: PUSH1 0x00 000028eb: DUP1 000028ec: REVERT 000028ed: JUMPDEST 000028ee: PUSH1 0x00 000028f0: PUSH1 0x80 000028f2: DUP3 000028f3: DUP5 000028f4: SUB 000028f5: SLT 000028f6: ISZERO 000028f7: PUSH2 0x28ff 000028fa: JUMPI 000028fb: PUSH1 0x00 000028fd: DUP1 000028fe: REVERT 000028ff: JUMPDEST 00002900: PUSH1 0x40 00002902: MLOAD 00002903: PUSH1 0x80 00002905: DUP2 00002906: ADD 00002907: DUP2 00002908: DUP2 00002909: LT 0000290a: PUSH8 0xffffffffffffffff 00002913: DUP3 00002914: GT 00002915: OR 00002916: ISZERO 00002917: PUSH2 0x2922 0000291a: JUMPI 0000291b: PUSH2 0x2922 0000291e: PUSH2 0x273f 00002921: JUMP 00002922: JUMPDEST 00002923: PUSH1 0x40 00002925: MSTORE 00002926: PUSH2 0x292e 00002929: DUP4 0000292a: PUSH2 0x28db 0000292d: JUMP 0000292e: JUMPDEST 0000292f: DUP2 00002930: MSTORE 00002931: PUSH2 0x293c 00002934: PUSH1 0x20 00002936: DUP5 00002937: ADD 00002938: PUSH2 0x28db 0000293b: JUMP 0000293c: JUMPDEST 0000293d: PUSH1 0x20 0000293f: DUP3 00002940: ADD 00002941: MSTORE 00002942: PUSH1 0x40 00002944: DUP4 00002945: ADD 00002946: MLOAD 00002947: PUSH1 0x40 00002949: DUP3 0000294a: ADD 0000294b: MSTORE 0000294c: PUSH1 0x60 0000294e: DUP4 0000294f: ADD 00002950: MLOAD 00002951: PUSH1 0x60 00002953: DUP3 00002954: ADD 00002955: MSTORE 00002956: DUP1 00002957: SWAP2 00002958: POP 00002959: POP 0000295a: SWAP3 0000295b: SWAP2 0000295c: POP 0000295d: POP 0000295e: JUMP 0000295f: JUMPDEST 00002960: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00002981: PUSH1 0x00 00002983: MSTORE 00002984: PUSH1 0x11 00002986: PUSH1 0x04 00002988: MSTORE 00002989: PUSH1 0x24 0000298b: PUSH1 0x00 0000298d: REVERT 0000298e: JUMPDEST 0000298f: DUP2 00002990: DUP2 00002991: SUB 00002992: DUP2 00002993: DUP2 00002994: GT 00002995: ISZERO 00002996: PUSH2 0x082c 00002999: JUMPI 0000299a: PUSH2 0x082c 0000299d: PUSH2 0x295f 000029a0: JUMP 000029a1: JUMPDEST 000029a2: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000029c3: PUSH1 0x00 000029c5: MSTORE 000029c6: PUSH1 0x12 000029c8: PUSH1 0x04 000029ca: MSTORE 000029cb: PUSH1 0x24 000029cd: PUSH1 0x00 000029cf: REVERT 000029d0: JUMPDEST 000029d1: DUP1 000029d2: DUP3 000029d3: ADD 000029d4: DUP1 000029d5: DUP3 000029d6: GT 000029d7: ISZERO 000029d8: PUSH2 0x082c 000029db: JUMPI 000029dc: PUSH2 0x082c 000029df: PUSH2 0x295f 000029e2: JUMP 000029e3: INVALID 000029e4: LOG2 000029e5: PUSH5 0x6970667358 000029eb: UNKNOWN(0x22) 000029ec: SLT 000029ed: KECCAK256 000029ee: LOG4 000029ef: UNKNOWN(0x28) 000029f0: SUB 000029f1: SWAP14 000029f2: UNKNOWN(0xE8) 000029f3: SWAP10 000029f4: UNKNOWN(0xA5) 000029f5: ADD 000029f6: CREATE2 000029f7: BALANCE 000029f8: SWAP4 000029f9: UNKNOWN(0x22) 000029fa: SWAP9 000029fb: CODESIZE 000029fc: UNKNOWN(0x2F) 000029fd: UNKNOWN(0xCF) 000029fe: UNKNOWN(0x22) 000029ff: ORIGIN 00002a00: UNKNOWN(0xDD) 00002a01: UNKNOWN(0xB7) 00002a02: PUSH10 0x30843b9efd1786d24c6c 00002a0d: UNKNOWN(0x2E) 00002a0e: PUSH5 0x736f6c6343 00002a14: STOP 00002a15: ADDMOD 00002a16: LT 00002a17: STOP 00002a18: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xe811f44b",
"selector": "0xe811f44b",
"calldata_variants": [
"0xe811f44b",
"0xe811f44b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xed24911d",
"selector": "0xed24911d",
"calldata_variants": [
"0xed24911d",
"0xed24911d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfcaa54ee",
"selector": "0xfcaa54ee",
"calldata_variants": [
"0xfcaa54ee",
"0xfcaa54ee0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xca31879d",
"selector": "0xca31879d",
"calldata_variants": [
"0xca31879d",
"0xca31879d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd3dc4ca1",
"selector": "0xd3dc4ca1",
"calldata_variants": [
"0xd3dc4ca1",
"0xd3dc4ca10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xde681faf",
"selector": "0xde681faf",
"calldata_variants": [
"0xde681faf",
"0xde681faf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa1648aa5",
"selector": "0xa1648aa5",
"calldata_variants": [
"0xa1648aa5",
"0xa1648aa50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xacbc1428",
"selector": "0xacbc1428",
"calldata_variants": [
"0xacbc1428",
"0xacbc14280000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 6309,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 10751,
"type": "tx_origin_used"
}
]
}
|
| medium | other | codex | Token checkpointing stops after 20 weeks, leaving undistributed tokens permanently unclaimable | 75 | no | — |
viewevidence_json{
"evidence": "`tokenState.timeCursor = uint64(block.timestamp)` is set before a loop bounded to 20 iterations, so gaps >20 weeks are not fully distributed.",
"locations": [
"src/FeeDistributor.sol:446",
"src/FeeDistributor.sol:460",
"src/FeeDistributor.sol:495"
],
"recommendation": "Only advance the token time cursor to the last processed week, not `block.timestamp`, and allow repeated calls to continue distributing across remaining weeks. Alternatively, keep the loop bound but persist `lastTokenTime`/`firstIncompleteWeek` so subsequent calls resume until caught up.",
"exploit_scenario": "If a token is not checkpointed for more than 20 weeks, `_checkpointToken` only assigns fees for the first 20 weeks, then sets `tokenState.timeCursor` to `block.timestamp` and `cachedBalance` to the full balance. The remaining weeks are never assigned to `_tokensPerWeek`, and future checkpoints see no new tokens, so the unassigned portion can never be claimed."
}
|
| medium | math | codex | Zero totalSupply weeks cause division-by-zero and permanently block claims | 75 | no | — |
viewevidence_json{
"evidence": "Claim math divides by `_veSupplyCache[nextUserTokenWeekToClaim]` without a zero check; `_checkpointTotalSupply` stores zero when totalSupply is zero.",
"locations": [
"src/FeeDistributor.sol:384",
"src/FeeDistributor.sol:637"
],
"recommendation": "Guard against zero supply in `_claimToken` by skipping weeks where `_veSupplyCache[week] == 0` (advance the user token cursor without dividing), or prevent fee assignment for weeks with zero supply and ensure claims can bypass them safely.",
"exploit_scenario": "If the VotingEscrow total supply is zero for any week (e.g., all locks expire), `_checkpointTotalSupply` caches 0 for that week. When a user later claims, `_claimToken` divides by `_veSupplyCache[week]` and reverts on that zero, preventing the cursor from advancing and locking all current and future claims for that token."
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0x4393a440fd4d218fa9104cff59377824950098269f55150472e63ef3d097c6a7
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0x4393a440fd4d218fa9104cff59377824950098269f55150472e63ef3d097c6a7",
"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": "0xe811f44b",
"selector": "0xe811f44b",
"calldata_variants": [
"0xe811f44b",
"0xe811f44b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xed24911d",
"selector": "0xed24911d",
"calldata_variants": [
"0xed24911d",
"0xed24911d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfcaa54ee",
"selector": "0xfcaa54ee",
"calldata_variants": [
"0xfcaa54ee",
"0xfcaa54ee0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xca31879d",
"selector": "0xca31879d",
"calldata_variants": [
"0xca31879d",
"0xca31879d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd3dc4ca1",
"selector": "0xd3dc4ca1",
"calldata_variants": [
"0xd3dc4ca1",
"0xd3dc4ca10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xde681faf",
"selector": "0xde681faf",
"calldata_variants": [
"0xde681faf",
"0xde681faf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa1648aa5",
"selector": "0xa1648aa5",
"calldata_variants": [
"0xa1648aa5",
"0xa1648aa50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xacbc1428",
"selector": "0xacbc1428",
"calldata_variants": [
"0xacbc1428",
"0xacbc14280000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 0,
"create2_count": 1
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0xb8d98e0e70b497fc32aa519b2ee67126ff720f6575647d7b14262ba06f2ea6b4
call_targets:
0x951f99350d816c0e160a2c71defe828bdfc17f12
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xb8d98e0e70b497fc32aa519b2ee67126ff720f6575647d7b14262ba06f2ea6b4",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x951f99350d816c0e160a2c71defe828bdfc17f12"
],
"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": "0xe811f44b",
"selector": "0xe811f44b",
"calldata_variants": [
"0xe811f44b",
"0xe811f44b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xed24911d",
"selector": "0xed24911d",
"calldata_variants": [
"0xed24911d",
"0xed24911d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfcaa54ee",
"selector": "0xfcaa54ee",
"calldata_variants": [
"0xfcaa54ee",
"0xfcaa54ee0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xca31879d",
"selector": "0xca31879d",
"calldata_variants": [
"0xca31879d",
"0xca31879d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd3dc4ca1",
"selector": "0xd3dc4ca1",
"calldata_variants": [
"0xd3dc4ca1",
"0xd3dc4ca10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xde681faf",
"selector": "0xde681faf",
"calldata_variants": [
"0xde681faf",
"0xde681faf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa1648aa5",
"selector": "0xa1648aa5",
"calldata_variants": [
"0xa1648aa5",
"0xa1648aa50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xacbc1428",
"selector": "0xacbc1428",
"calldata_variants": [
"0xacbc1428",
"0xacbc14280000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 5982,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6528,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 8690,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 3,
"guards_detected": [
{
"pc": 6309,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 10751,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 3
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0xb8d98e0e70b497fc32aa519b2ee67126ff720f6575647d7b14262ba06f2ea6b4
call_targets:
0x951f99350d816c0e160a2c71defe828bdfc17f12
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xb8d98e0e70b497fc32aa519b2ee67126ff720f6575647d7b14262ba06f2ea6b4",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x951f99350d816c0e160a2c71defe828bdfc17f12"
],
"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": "0xe811f44b",
"selector": "0xe811f44b",
"calldata_variants": [
"0xe811f44b",
"0xe811f44b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xed24911d",
"selector": "0xed24911d",
"calldata_variants": [
"0xed24911d",
"0xed24911d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfcaa54ee",
"selector": "0xfcaa54ee",
"calldata_variants": [
"0xfcaa54ee",
"0xfcaa54ee0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xca31879d",
"selector": "0xca31879d",
"calldata_variants": [
"0xca31879d",
"0xca31879d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd3dc4ca1",
"selector": "0xd3dc4ca1",
"calldata_variants": [
"0xd3dc4ca1",
"0xd3dc4ca10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xde681faf",
"selector": "0xde681faf",
"calldata_variants": [
"0xde681faf",
"0xde681faf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa1648aa5",
"selector": "0xa1648aa5",
"calldata_variants": [
"0xa1648aa5",
"0xa1648aa50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xacbc1428",
"selector": "0xacbc1428",
"calldata_variants": [
"0xacbc1428",
"0xacbc14280000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 5982,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6528,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 8690,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 3,
"guards_detected": [
{
"pc": 6309,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 10751,
"type": "tx_origin_used"
}
]
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 0,
"create2_count": 1
}
|