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

Analysis Run

b84cc237-c90a-4d2a-a39b-3b8b6f7bf892

complete
Chain ID
1
Address
Block Number
Created
Sat, Jan 3, 2026 11:58 PM
Review Summary

What survived the funnel

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

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
AutoBoost reserve burn enables ETH‑neutral buy/sell loops that ratchet price upward
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
31486 report.consolidate complete 1 / 1 3 months ago
77542 artifact.fetch complete 1 / 3 1 week ago
77543 tool.cast_disasm complete 1 / 3 1 week ago
77544 analysis.bundle complete 1 / 3 1 week ago
77545 capability.graph complete 1 / 3 1 week ago
77546 detector.run complete 1 / 3 1 week ago
77547 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
1
No findings?
no
Summary
Found a zero-cost price‑pump loop: the AutoBoost burn reduces token reserves during sells while the pricing math returns the same ETH on a buy→sell round trip, letting an attacker ratchet price upward for free and dump holdings for profit.
View stderr
[codex:528440] OpenAI Codex v0.77.0 (research preview)
[codex:528440] --------
[codex:528440] workdir: /tmp/codex-multi-o6na9o4h
[codex:528440] model: gpt-5.2-codex
[codex:528440] provider: openai
[codex:528440] approval: never
[codex:528440] sandbox: read-only
[codex:528440] reasoning effort: xhigh
[codex:528440] reasoning summaries: auto
[codex:528440] session id: 019b8644-1273-77d3-acea-79925bdc1fc3
[codex:528440] --------
[codex:528440] user
[codex:528440] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:528440] 
[codex:528440] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:528440] 
[codex:528440] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:528440] - Gas inefficiency, code quality, naming, or best practices
[codex:528440] - Theoretical vulnerabilities without a clear extraction path
[codex:528440] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:528440] - Front-running unless it enables theft beyond MEV
[codex:528440] - DoS, griefing, or issues that don't result in attacker profit
[codex:528440] - Missing events, view function issues, or informational findings
[codex:528440] 
[codex:528440] HIGH-VALUE PATTERNS TO HUNT:
[codex:528440] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:528440] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:528440] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:528440] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:528440] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:528440] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:528440] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:528440] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:528440] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:528440] 
[codex:528440] For each finding, you MUST provide:
[codex:528440] 1. Exact file and line numbers of vulnerable code
[codex:528440] 2. Step-by-step exploit transaction sequence
[codex:528440] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:528440] 
[codex:528440] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:528440] 
[codex:528440] Output MUST be valid JSON matching the provided schema.
[codex:528440] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:528440] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:528440] mcp startup: no servers
[codex:528440] 
[codex:528440] thinking
[codex:528440] **Preparing to read AUDIT_BUNDLE.txt**
[codex:528440] exec
[codex:528440] /bin/bash -lc ls in /tmp/codex-multi-o6na9o4h succeeded in 5ms:
[codex:528440] AUDIT_BUNDLE.txt
[codex:528440] codex-output-schema.json
[codex:528440] contracts
[codex:528440] 
[codex:528440] thinking
[codex:528440] **Reading AUDIT_BUNDLE.txt**
[codex:528440] exec
[codex:528440] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-o6na9o4h succeeded in 5ms:
[codex:528440] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:528440] 
[codex:528440] ================================================================================
[codex:528440] FILE: contracts/Contract.sol
[codex:528440] ================================================================================
[codex:528440] //   _    _ _   _                __ _                            
[codex:528440] //  | |  (_) | | |              / _(_)                           
[codex:528440] //  | | ___| |_| |_ ___ _ __   | |_ _ _ __   __ _ _ __   ___ ___ 
[codex:528440] //  | |/ / | __| __/ _ \ '_ \  |  _| | '_ \ / _` | '_ \ / __/ _ \
[codex:528440] //  |   <| | |_| ||  __/ | | |_| | | | | | | (_| | | | | (_|  __/
[codex:528440] //  |_|\_\_|\__|\__\___|_| |_(_)_| |_|_| |_|\__,_|_| |_|\___\___|
[codex:528440] //
[codex:528440] //  LIQUID : a token with deep floor liquidity & ever-rising floor price
[codex:528440] //
[codex:528440] //  https://www.KittenSwap.org
[codex:528440] //
[codex:528440] //  https://www.Kitten.finance
[codex:528440] //
[codex:528440] pragma solidity ^0.5.17;
[codex:528440] 
[codex:528440] 
[codex:528440] 
[codex:528440] thinking
[codex:528440] **Analyzing bonding curve for exploits**
[codex:528440] thinking
[codex:528440] **Evaluating bonding curve invariants**
[codex:528440] 
[codex:528440] I’m unpacking the formulas for buy and sell operations on the bonding curve, trying to identify if the asymmetric "+ half reserve" terms create an exploitable spread or rounding arbitrage. Looks like the invariant isn’t constant across trades, so I’m planning to simulate buys and sells with Python to spot any profit opportunities.
[codex:528440] exec
[codex:528440] /bin/bash -lc "python3 - <<'PY'
[codex:528440] from decimal import Decimal, getcontext
[codex:528440] getcontext().prec=50
[codex:528440] 
[codex:528440] def buy(R_e,R_t,delta_e):
[codex:528440]     newE=R_e+delta_e
[codex:528440]     newT=(R_e*R_t + newE/2)/newE
[codex:528440]     outT=R_t-newT
[codex:528440]     return newE,newT,outT
[codex:528440] 
[codex:528440] def sell(R_e,R_t,delta_t):
[codex:528440]     newT=R_t+delta_t
[codex:528440]     newE=(R_e*R_t + newT/2)/newT
[codex:528440]     outE=R_e-newE
[codex:528440]     return newE,newT,outE
[codex:528440] 
[codex:528440] R_e=Decimal(2100)
[codex:528440] R_t=Decimal(21000)
[codex:528440] for d in [Decimal('1'),Decimal('0.1'),Decimal('10')]:
[codex:528440]     newE,newT,outT=buy(R_e,R_t,d)
[codex:528440]     # sell back outT (no burn)
[codex:528440]     newE2,newT2,outE=sell(newE,newT,outT)
[codex:528440]     print('delta_e',d,'outT',outT,'outE',outE,'profit',outE-d)
[codex:528440] PY" in /tmp/codex-multi-o6na9o4h succeeded in 22ms:
[codex:528440] delta_e 1 outT 9.495240361732508329366968110423607805806758686 outE 0.4499761904761904761904761904761904761904761904 profit -0.5500238095238095238095238095238095238095238096
[codex:528440] delta_e 0.1 outT 0.499952383219846673967906290176658254368839579 outE -0.4500023809523809523809523809523809523809523810 profit -0.5500023809523809523809523809523809523809523810
[codex:528440] delta_e 10 outT 99.026066350710900473933649289099526066350710900 outE 9.4497619047619047619047619047619047619047619047 profit -0.5502380952380952380952380952380952380952380953
[codex:528440] 
[codex:528440] thinking
[codex:528440] **Analyzing token reserve and burn mechanisms**
[codex:528440] exec
[codex:528440] /bin/bash -lc "python3 - <<'PY'
[codex:528440] from decimal import Decimal, getcontext
[codex:528440] getcontext().prec=60
[codex:528440] 
[codex:528440] def buy(R_e,R_t,delta_e):
[codex:528440]     newE=R_e+delta_e
[codex:528440]     newT=(R_e*R_t + newE/2)/newE
[codex:528440]     outT=R_t-newT
[codex:528440]     return newE,newT,outT
[codex:528440] 
[codex:528440] def sell(R_e,R_t,delta_t):
[codex:528440]     newT=R_t+delta_t
[codex:528440]     newE=(R_e*R_t + newT/2)/newT
[codex:528440]     outE=R_e-newE
[codex:528440]     return newE,newT,outE
[codex:528440] 
[codex:528440] R_e=Decimal(2100)
[codex:528440] R_t=Decimal(21000)
[codex:528440] for d in [Decimal('100'),Decimal('1000'),Decimal('10')]:
[codex:528440]     # sell tokens d, then buy back with outE
[codex:528440]     newE,newT,outE=sell(R_e,R_t,d)
[codex:528440]     newE2,newT2,outT=buy(newE,newT,outE)
[codex:528440]     print('sell tokens',d,'outE',outE,'buy back tokens',outT,'net tokens',outT-d)
[codex:528440] PY" in /tmp/codex-multi-o6na9o4h succeeded in 19ms:
[codex:528440] sell tokens 100 outE 9.45260663507109004739336492890995260663507109004739336493 buy back tokens 94.4761904761904761904761904761904761904761904761904761905 net tokens -5.5238095238095238095238095238095238095238095238095238095
[codex:528440] sell tokens 1000 outE 94.95454545454545454545454545454545454545454545454545454545 buy back tokens 994.2619047619047619047619047619047619047619047619047619047 net tokens -5.7380952380952380952380952380952380952380952380952380953
[codex:528440] sell tokens 10 outE 0.49952403617325083293669681104236078058067586863398381723 buy back tokens 4.4976190476190476190476190476190476190476190476190476190 net tokens -5.5023809523809523809523809523809523809523809523809523810
[codex:528440] 
[codex:528440] 
[codex:528440] thinking
[codex:528440] **Analyzing token mechanics and potential exploits**
[codex:528440] 
[codex:528440] I'm carefully checking the contract’s buy and sell logic, focusing on burn mechanics, treasury accounting, whitelist checks, reentrancy risks, and reserve adjustments. There’s a deep dive into how burning tokens affects the token reserve and total supply, considering scenarios where a high reserve-to-circulating ratio might allow sellers to manipulate prices or gain profit, especially via strategies like flashloans or exploiting early-stage circulating supply. I want to understand if the complex burn and extraBurn calculations could unintentionally enable a profit beyond the intended tokenomics.
[codex:528440] thinking
[codex:528440] **Modeling buy-sell cycle with burns and reserves**
[codex:528440] 
[codex:528440] I'm setting up a detailed simulation of token buy and sell operations including burn and extraBurn effects on token reserves and total supply. I want to test whether executing a buy followed by a sell—accounting for the complex burn mechanics and auto-boost adjustments—could yield a net profit by exploiting how tokenReserve and totalSupply change during these transactions. This should clarify if any subtle exploit or unintended profit emerges from the tokenomics.
[codex:528440] exec
[codex:528440] /bin/bash -lc "python3 - <<'PY'
[codex:528440] from decimal import Decimal, getcontext
[codex:528440] getcontext().prec=80
[codex:528440] 
[codex:528440] BP=Decimal(10000)
[codex:528440] SELL_BURN_BP=Decimal(60)  # 0.6%
[codex:528440] 
[codex:528440] 
[codex:528440] def buy(R_e, R_t, delta_e):
[codex:528440]     newE = R_e + delta_e
[codex:528440]     newT = (R_e * R_t + newE/2) / newE
[codex:528440]     outT = R_t - newT
[codex:528440]     # update reserves: tokenReserve decreases by outT; totalSupply unchanged
[codex:528440]     return newE, newT, outT
[codex:528440] 
[codex:528440] def burn(totalSupply, tokenReserve, burnAmt):
[codex:528440]     if burnAmt==0:
[codex:528440]         return totalSupply, tokenReserve
[codex:528440]     if totalSupply > tokenReserve:
[codex:528440]         extraBurn = tokenReserve * burnAmt / (totalSupply - tokenReserve)
[codex:528440]         # simulate revert if extraBurn > tokenReserve (shouldn't here)
[codex:528440]         tokenReserve -= extraBurn
[codex:528440]         totalSupply -= (burnAmt + extraBurn)
[codex:528440]     else:
[codex:528440]         totalSupply -= burnAmt
[codex:528440]     return totalSupply, tokenReserve
[codex:528440] 
[codex:528440] def sell(R_e, R_t, totalSupply, tokenAmt):
[codex:528440]     burnAmt = tokenAmt * SELL_BURN_BP / BP
[codex:528440]     tokenAmtAfterBurn = tokenAmt - burnAmt
[codex:528440]     # burn reduces totalSupply and tokenReserve by extraBurn
[codex:528440]     totalSupply, R_t = burn(totalSupply, R_t, burnAmt)
[codex:528440]     # now oldTokenReserve = R_t
[codex:528440]     newT = R_t + tokenAmtAfterBurn
[codex:528440]     newE = (R_e * R_t + newT/2) / newT
[codex:528440]     outE = R_e - newE
[codex:528440]     # update reserves: tokenReserve becomes newT, ethReserve becomes newE
[codex:528440]     return newE, newT, totalSupply, outE
[codex:528440] 
[codex:528440] # simulate buy then sell
[codex:528440] R_e=Decimal(2100)
[codex:528440] R_t=Decimal(21000)
[codex:528440] Total=Decimal(21000)
[codex:528440] 
[codex:528440] for d in [Decimal('1'), Decimal('10'), Decimal('100')]:
[codex:528440]     e1,t1,outT=buy(R_e,R_t,d)
[codex:528440]     # update state after buy
[codex:528440]     R_e1=e1; R_t1=t1; Total1=Total
[codex:528440]     # sell outT
[codex:528440]     e2,t2,Total2,outE=sell(R_e1,R_t1,Total1,outT)
[codex:528440]     print('buy ETH',d,'got tokens',outT,'sell ETH out',outE,'profit',outE-d)
[codex:528440] PY" in /tmp/codex-multi-o6na9o4h succeeded in 20ms:
[codex:528440] buy ETH 1 got tokens 9.495240361732508329366968110423607805806758686339838172298905283198476915754 sell ETH out 0.4499761904761904761904761904761904761904761904761904761904761904761904761904 profit -0.5500238095238095238095238095238095238095238095238095238095238095238095238096
[codex:528440] buy ETH 10 got tokens 99.026066350710900473933649289099526066350710900473933649289099526066350710900 sell ETH out 9.4497619047619047619047619047619047619047619047619047619047619047619047619048 profit -0.5502380952380952380952380952380952380952380952380952380952380952380952380952
[codex:528440] buy ETH 100 got tokens 954.045454545454545454545454545454545454545454545454545454545454545454545454545 sell ETH out 99.4476190476190476190476190476190476190476190476190476190476190476190476190476 profit -0.5523809523809523809523809523809523809523809523809523809523809523809523809524
[codex:528440] 
[codex:528440] thinking
[codex:528440] **Analyzing potential reentrancy and rounding exploits**
[codex:528440] exec
[codex:528440] /bin/bash -lc "python3 - <<'PY'
[codex:528440] from decimal import Decimal
[codex:528440] 
[codex:528440] WAD=10**18
[codex:528440] INIT_E=2100*WAD
[codex:528440] INIT_T=21000*WAD
[codex:528440] SELL_BURN_BP=60
[codex:528440] BP=10000
[codex:528440] 
[codex:528440] # integer math functions
[codex:528440] 
[codex:528440] def buy(R_e,R_t,delta_e):
[codex:528440]     newE=R_e+delta_e
[codex:528440]     newT=(R_e*R_t + newE//2)//newE
[codex:528440]     outT=R_t-newT
[codex:528440]     return newE,newT,outT
[codex:528440] 
[codex:528440] def burn(totalSupply, tokenReserve, burnAmt):
[codex:528440]     if burnAmt==0:
[codex:528440]         return totalSupply, tokenReserve
[codex:528440]     if totalSupply > tokenReserve:
[codex:528440]         extraBurn = tokenReserve * burnAmt // (totalSupply - tokenReserve)
[codex:528440]         if extraBurn > tokenReserve:
[codex:528440]             raise Exception('extraBurn > tokenReserve')
[codex:528440]         tokenReserve -= extraBurn
[codex:528440]         totalSupply -= (burnAmt + extraBurn)
[codex:528440]     else:
[codex:528440]         totalSupply -= burnAmt
[codex:528440]     return totalSupply, tokenReserve
[codex:528440] 
[codex:528440] 
[codex:528440] def sell(R_e,R_t,totalSupply,tokenAmt):
[codex:528440]     burnAmt = tokenAmt * SELL_BURN_BP // BP
[codex:528440]     tokenAmtAfterBurn = tokenAmt - burnAmt
[codex:528440]     totalSupply, R_t = burn(totalSupply, R_t, burnAmt)
[codex:528440]     newT = R_t + tokenAmtAfterBurn
[codex:528440]     newE = (R_e*R_t + newT//2)//newT
[codex:528440]     outE = R_e - newE
[codex:528440]     return newE,newT,totalSupply,outE
[codex:528440] 
[codex:528440] # simulate small trades
[codex:528440] R_e=INIT_E
[codex:528440] R_t=INIT_T
[codex:528440] Total=INIT_T
[codex:528440] 
[codex:528440] for delta_e in [1,10,10**6,10**12,10**15,10**18]:
[codex:528440]     e1,t1,outT=buy(R_e,R_t,delta_e)
[codex:528440]     e2,t2,Total2,outE=sell(e1,t1,Total,outT)
[codex:528440]     print('delta_e',delta_e,'outT',outT,'outE',outE,'profit',outE-delta_e)
[codex:528440] PY" in /tmp/codex-multi-o6na9o4h succeeded in 20ms:
[codex:528440] delta_e 1 outT 10 outE 1 profit 0
[codex:528440] delta_e 10 outT 100 outE 10 profit 0
[codex:528440] delta_e 1000000 outT 10000000 outE 1000000 profit 0
[codex:528440] delta_e 1000000000000 outT 9999999995238 outE 1000000000000 profit 0
[codex:528440] delta_e 1000000000000000 outT 9999995238097506 outE 1000000000000000 profit 0
[codex:528440] delta_e 1000000000000000000 outT 9995240361732508329 outE 1000000000000000000 profit 0
[codex:528440] 
[codex:528440] thinking
[codex:528440] **Analyzing rounding and burn effects in integer math**
[codex:528440] exec
[codex:528440] /bin/bash -lc "python3 - <<'PY'
[codex:528440] WAD=10**18
[codex:528440] INIT_E=2100*WAD
[codex:528440] INIT_T=21000*WAD
[codex:528440] SELL_BURN_BP=60
[codex:528440] BP=10000
[codex:528440] 
[codex:528440] def buy(R_e,R_t,delta_e):
[codex:528440]     newE=R_e+delta_e
[codex:528440]     newT=(R_e*R_t + newE//2)//newE
[codex:528440]     outT=R_t-newT
[codex:528440]     return newE,newT,outT
[codex:528440] 
[codex:528440] def burn(totalSupply, tokenReserve, burnAmt):
[codex:528440]     if burnAmt==0:
[codex:528440]         return totalSupply, tokenReserve
[codex:528440]     if totalSupply > tokenReserve:
[codex:528440]         extraBurn = tokenReserve * burnAmt // (totalSupply - tokenReserve)
[codex:528440]         tokenReserve -= extraBurn
[codex:528440]         totalSupply -= (burnAmt + extraBurn)
[codex:528440]     else:
[codex:528440]         totalSupply -= burnAmt
[codex:528440]     return totalSupply, tokenReserve
[codex:528440] 
[codex:528440] 
[codex:528440] def sell(R_e,R_t,totalSupply,tokenAmt):
[codex:528440]     burnAmt = tokenAmt * SELL_BURN_BP // BP
[codex:528440]     tokenAmtAfterBurn = tokenAmt - burnAmt
[codex:528440]     totalSupply, R_t = burn(totalSupply, R_t, burnAmt)
[codex:528440]     newT = R_t + tokenAmtAfterBurn
[codex:528440]     newE = (R_e*R_t + newT//2)//newT
[codex:528440]     outE = R_e - newE
[codex:528440]     return newE,newT,totalSupply,outE,burnAmt,tokenAmtAfterBurn
[codex:528440] 
[codex:528440] R_e=INIT_E; R_t=INIT_T; Total=INIT_T
[codex:528440] 
[codex:528440] delta_e=10**18
[codex:528440] R_e1,R_t1,outT=buy(R_e,R_t,delta_e)
[codex:528440] print('outT',outT)
[codex:528440] R_e2,R_t2,Total2,outE,burnAmt,tokenAfter=sell(R_e1,R_t1,Total,outT)
[codex:528440] print('burnAmt',burnAmt,'tokenAfter',tokenAfter)
[codex:528440] print('outE',outE,'profit',outE-delta_e)
[codex:528440] print('R_e1',R_e1,'R_t1',R_t1)
[codex:528440] print('R_e2',R_e2,'R_t2',R_t2)
[codex:528440] print('Total2',Total2)
[codex:528440] PY" in /tmp/codex-multi-o6na9o4h succeeded in 17ms:
[codex:528440] outT 9995240361732508329
[codex:528440] burnAmt 59971442170395049 tokenAfter 9935268919562113280
[codex:528440] outE 1000000000000000000 profit 0
[codex:528440] R_e1 2101000000000000000000 R_t1 20990004759638267491671
[codex:528440] R_e2 2100000000000000000000 R_t2 20874000000000000002047
[codex:528440] Total2 20874000000000000002047
[codex:528440] 
[codex:528440] thinking
[codex:528440] **Analyzing token burn and price pump cycle**
[codex:528440] 
[codex:528440] I’m exploring how a buy-sell cycle burns tokens from the reserve without net ETH loss, effectively removing tokens while returning the user’s ETH. This could let someone repeatedly burn reserve tokens for free (aside from gas), potentially pumping the token price and profiting if they hold tokens beforehand. I want to test multiple cycles to see how much the price increases and if infinite pumping is possible.
[codex:528440] exec
[codex:528440] /bin/bash -lc "python3 - <<'PY'
[codex:528440] WAD=10**18
[codex:528440] INIT_E=2100*WAD
[codex:528440] INIT_T=21000*WAD
[codex:528440] SELL_BURN_BP=60
[codex:528440] BP=10000
[codex:528440] 
[codex:528440] def buy(R_e,R_t,delta_e):
[codex:528440]     newE=R_e+delta_e
[codex:528440]     newT=(R_e*R_t + newE//2)//newE
[codex:528440]     outT=R_t-newT
[codex:528440]     return newE,newT,outT
[codex:528440] 
[codex:528440] def burn(totalSupply, tokenReserve, burnAmt):
[codex:528440]     if burnAmt==0:
[codex:528440]         return totalSupply, tokenReserve
[codex:528440]     if totalSupply > tokenReserve:
[codex:528440]         extraBurn = tokenReserve * burnAmt // (totalSupply - tokenReserve)
[codex:528440]         tokenReserve -= extraBurn
[codex:528440]         totalSupply -= (burnAmt + extraBurn)
[codex:528440]     else:
[codex:528440]         totalSupply -= burnAmt
[codex:528440]     return totalSupply, tokenReserve
[codex:528440] 
[codex:528440] 
[codex:528440] def sell(R_e,R_t,totalSupply,tokenAmt):
[codex:528440]     burnAmt = tokenAmt * SELL_BURN_BP // BP
[codex:528440]     tokenAmtAfterBurn = tokenAmt - burnAmt
[codex:528440]     totalSupply, R_t = burn(totalSupply, R_t, burnAmt)
[codex:528440]     newT = R_t + tokenAmtAfterBurn
[codex:528440]     newE = (R_e*R_t + newT//2)//newT
[codex:528440]     outE = R_e - newE
[codex:528440]     return newE,newT,totalSupply,outE
[codex:528440] 
[codex:528440] 
[codex:528440] def price_per_token(R_e,R_t):
[codex:528440]     # approximate marginal price: ETH out for selling 1 token (1e18 units)
[codex:528440]     tokenAmt = 1*WAD
[codex:528440]     # compute outE using sell formula without burn? Actually selling 1 token includes burn 0.6%.
[codex:528440]     totalSupply = R_t  # not accurate; need totalSupply? We'll track separately.
[codex:528440] 
[codex:528440] # simulate cycles
[codex:528440] R_e=INIT_E
[codex:528440] R_t=INIT_T
[codex:528440] Total=INIT_T
[codex:528440] 
[codex:528440] # function to compute ETH out for selling 1 token given state
[codex:528440] 
[codex:528440] def eth_out_for_sell(R_e,R_t,Total,tokenAmt):
[codex:528440]     burnAmt = tokenAmt * SELL_BURN_BP // BP
[codex:528440]     tokenAmtAfterBurn = tokenAmt - burnAmt
[codex:528440]     Total2, R_t2 = burn(Total, R_t, burnAmt)
[codex:528440]     newT = R_t2 + tokenAmtAfterBurn
[codex:528440]     newE = (R_e*R_t2 + newT//2)//newT
[codex:528440]     outE = R_e - newE
[codex:528440]     return outE
[codex:528440] 
[codex:528440] print('initial price (ETH for 1 token):', eth_out_for_sell(R_e,R_t,Total,WAD)/WAD)
[codex:528440] 
[codex:528440] # perform 10 pump cycles with delta_e = 1 ETH
[codex:528440] for i in range(1,6):
[codex:528440]     # buy and sell with 1 ETH
[codex:528440]     R_e1,R_t1,outT=buy(R_e,R_t,1*WAD)
[codex:528440]     R_e2,R_t2,Total2,outE=sell(R_e1,R_t1,Total,outT)
[codex:528440]     # update state to post-cycle
[codex:528440]     R_e,R_t,Total = R_e2,R_t2,Total2
[codex:528440]     price = eth_out_for_sell(R_e,R_t,Total,WAD)
[codex:528440]     print('cycle',i,'R_e',R_e/WAD,'R_t',R_t/WAD,'Total',Total/WAD,'price',price/WAD)
[codex:528440] PY" in /tmp/codex-multi-o6na9o4h succeeded in 17ms:
[codex:528440] initial price (ETH for 1 token): 0.0993952952893563
[codex:528440] cycle 1 R_e 2100.0 R_t 20874.0 Total 20874.0 price 0.09999523832198466
[codex:528440] cycle 2 R_e 2100.0 R_t 20748.756 Total 20748.756 price 0.10059880239520957
[codex:528440] cycle 3 R_e 2100.0 R_t 20624.263464 Total 20624.263464 price 0.10120600936223058
[codex:528440] cycle 4 R_e 2100.0 R_t 20500.517883216 Total 20500.517883216 price 0.10181688120810713
[codex:528440] cycle 5 R_e 2100.0 R_t 20377.514775916705 Total 20377.514775916705 price 0.10243144005055398
[codex:528440] 
[codex:528440] thinking
[codex:528440] **Analyzing pump cycle tokenomics**
[codex:528440] exec
[codex:528440] /bin/bash -lc "python3 - <<'PY'
[codex:528440] WAD=10**18
[codex:528440] INIT_E=2100*WAD
[codex:528440] INIT_T=21000*WAD
[codex:528440] SELL_BURN_BP=60
[codex:528440] BP=10000
[codex:528440] 
[codex:528440] 
[codex:528440] def buy(R_e,R_t,delta_e):
[codex:528440]     newE=R_e+delta_e
[codex:528440]     newT=(R_e*R_t + newE//2)//newE
[codex:528440]     outT=R_t-newT
[codex:528440]     return newE,newT,outT
[codex:528440] 
[codex:528440] def burn(totalSupply, tokenReserve, burnAmt):
[codex:528440]     if burnAmt==0:
[codex:528440]         return totalSupply, tokenReserve
[codex:528440]     if totalSupply > tokenReserve:
[codex:528440]         extraBurn = tokenReserve * burnAmt // (totalSupply - tokenReserve)
[codex:528440]         tokenReserve -= extraBurn
[codex:528440]         totalSupply -= (burnAmt + extraBurn)
[codex:528440]     else:
[codex:528440]         totalSupply -= burnAmt
[codex:528440]     return totalSupply, tokenReserve
[codex:528440] 
[codex:528440] 
[codex:528440] def sell(R_e,R_t,totalSupply,tokenAmt):
[codex:528440]     burnAmt = tokenAmt * SELL_BURN_BP // BP
[codex:528440]     tokenAmtAfterBurn = tokenAmt - burnAmt
[codex:528440]     totalSupply, R_t = burn(totalSupply, R_t, burnAmt)
[codex:528440]     newT = R_t + tokenAmtAfterBurn
[codex:528440]     newE = (R_e*R_t + newT//2)//newT
[codex:528440]     outE = R_e - newE
[codex:528440]     return newE,newT,totalSupply,outE
[codex:528440] 
[codex:528440] # simulate attack
[codex:528440] R_e=INIT_E
[codex:528440] R_t=INIT_T
[codex:528440] Total=INIT_T
[codex:528440] 
[codex:528440] # attacker buys tokens with buy_eth
[codex:528440] buy_eth=100*WAD
[codex:528440] R_e, R_t, tokens = buy(R_e, R_t, buy_eth)
[codex:528440] # tokens acquired
[codex:528440] 
[codex:528440] # pump cycles
[codex:528440] cycle_eth=1*WAD
[codex:528440] cycles=50
[codex:528440] for i in range(cycles):
[codex:528440]     R_e1,R_t1,outT=buy(R_e,R_t,cycle_eth)
[codex:528440]     R_e2,R_t2,Total,outE=sell(R_e1,R_t1,Total,outT)
[codex:528440]     R_e,R_t = R_e2,R_t2
[codex:528440] 
[codex:528440] # attacker sells his tokens
[codex:528440] R_e, R_t, Total, outE = sell(R_e, R_t, Total, tokens)
[codex:528440] profit = outE - buy_eth
[codex:528440] 
[codex:528440] print('tokens acquired',tokens/WAD)
[codex:528440] print('profit ETH',profit/WAD)
[codex:528440] PY" in /tmp/codex-multi-o6na9o4h succeeded in 18ms:
[codex:528440] tokens acquired 954.5454545454545
[codex:528440] profit ETH 0.29705159652352586
[codex:528440] 
[codex:528440] thinking
[codex:528440] **Analyzing profit impact of pump cycles**
[codex:528440] exec
[codex:528440] /bin/bash -lc "python3 - <<'PY'
[codex:528440] WAD=10**18
[codex:528440] INIT_E=2100*WAD
[codex:528440] INIT_T=21000*WAD
[codex:528440] SELL_BURN_BP=60
[codex:528440] BP=10000
[codex:528440] 
[codex:528440] def buy(R_e,R_t,delta_e):
[codex:528440]     newE=R_e+delta_e
[codex:528440]     newT=(R_e*R_t + newE//2)//newE
[codex:528440]     outT=R_t-newT
[codex:528440]     return newE,newT,outT
[codex:528440] 
[codex:528440] def burn(totalSupply, tokenReserve, burnAmt):
[codex:528440]     if burnAmt==0:
[codex:528440]         return totalSupply, tokenReserve
[codex:528440]     if totalSupply > tokenReserve:
[codex:528440]         extraBurn = tokenReserve * burnAmt // (totalSupply - tokenReserve)
[codex:528440]         tokenReserve -= extraBurn
[codex:528440]         totalSupply -= (burnAmt + extraBurn)
[codex:528440]     else:
[codex:528440]         totalSupply -= burnAmt
[codex:528440]     return totalSupply, tokenReserve
[codex:528440] 
[codex:528440] 
[codex:528440] def sell(R_e,R_t,totalSupply,tokenAmt):
[codex:528440]     burnAmt = tokenAmt * SELL_BURN_BP // BP
[codex:528440]     tokenAmtAfterBurn = tokenAmt - burnAmt
[codex:528440]     totalSupply, R_t = burn(totalSupply, R_t, burnAmt)
[codex:528440]     newT = R_t + tokenAmtAfterBurn
[codex:528440]     newE = (R_e*R_t + newT//2)//newT
[codex:528440]     outE = R_e - newE
[codex:528440]     return newE,newT,totalSupply,outE
[codex:528440] 
[codex:528440] 
[codex:528440] def simulate(buy_eth, cycles, cycle_eth):
[codex:528440]     R_e=INIT_E; R_t=INIT_T; Total=INIT_T
[codex:528440]     R_e, R_t, tokens = buy(R_e,R_t,buy_eth)
[codex:528440]     for _ in range(cycles):
[codex:528440]         R_e1,R_t1,outT=buy(R_e,R_t,cycle_eth)
[codex:528440]         R_e2,R_t2,Total,_=sell(R_e1,R_t1,Total,outT)
[codex:528440]         R_e,R_t = R_e2,R_t2
[codex:528440]     R_e,R_t,Total,outE = sell(R_e,R_t,Total,tokens)
[codex:528440]     return (outE - buy_eth)
[codex:528440] 
[codex:528440] buy_eth = 100*WAD
[codex:528440] cycle_eth = 1*WAD
[codex:528440] for cycles in [0,1,5,10,20,50,100,200,500]:
[codex:528440]     profit = simulate(buy_eth, cycles, cycle_eth)
[codex:528440]     print('cycles',cycles,'profit',profit/WAD)
[codex:528440] PY" in /tmp/codex-multi-o6na9o4h succeeded in 18ms:
[codex:528440] cycles 0 profit 0.0
[codex:528440] cycles 1 profit 0.00594094698694972
[codex:528440] cycles 5 profit 0.029704769666428155
[codex:528440] cycles 10 profit 0.05940962613157461
[codex:528440] cycles 20 profit 0.11881959925498727
[codex:528440] cycles 50 profit 0.29705159652352586
[codex:528440] cycles 100 profit 0.5941118274216024
[codex:528440] cycles 200 profit 1.1882579920733205
[codex:528440] cycles 500 profit 2.9708985810425794
[codex:528440] 
[codex:528440] thinking
[codex:528440] **Analyzing pump cycle profits**
[codex:528440] exec
[codex:528440] /bin/bash -lc "python3 - <<'PY'
[codex:528440] import random
[codex:528440] WAD=10**18
[codex:528440] INIT_E=2100*WAD
[codex:528440] INIT_T=21000*WAD
[codex:528440] SELL_BURN_BP=60
[codex:528440] BP=10000
[codex:528440] 
[codex:528440] 
[codex:528440] def buy(R_e,R_t,delta_e):
[codex:528440]     newE=R_e+delta_e
[codex:528440]     newT=(R_e*R_t + newE//2)//newE
[codex:528440]     outT=R_t-newT
[codex:528440]     return newE,newT,outT
[codex:528440] 
[codex:528440] def burn(totalSupply, tokenReserve, burnAmt):
[codex:528440]     if burnAmt==0:
[codex:528440]         return totalSupply, tokenReserve
[codex:528440]     if totalSupply > tokenReserve:
[codex:528440]         extraBurn = tokenReserve * burnAmt // (totalSupply - tokenReserve)
[codex:528440]         tokenReserve -= extraBurn
[codex:528440]         totalSupply -= (burnAmt + extraBurn)
[codex:528440]     else:
[codex:528440]         totalSupply -= burnAmt
[codex:528440]     return totalSupply, tokenReserve
[codex:528440] 
[codex:528440] 
[codex:528440] def sell(R_e,R_t,totalSupply,tokenAmt):
[codex:528440]     burnAmt = tokenAmt * SELL_BURN_BP // BP
[codex:528440]     tokenAmtAfterBurn = tokenAmt - burnAmt
[codex:528440]     totalSupply, R_t = burn(totalSupply, R_t, burnAmt)
[codex:528440]     newT = R_t + tokenAmtAfterBurn
[codex:528440]     newE = (R_e*R_t + newT//2)//newT
[codex:528440]     outE = R_e - newE
[codex:528440]     return newE,newT,totalSupply,outE
[codex:528440] 
[codex:528440] R_e=INIT_E; R_t=INIT_T; Total=INIT_T
[codex:528440] 
[codex:528440] for delta_e in [1,2,3,5,7,11,123,1000,10**6,10**12,10**15,10**17,10**18,5*10**18,17*10**18]:
[codex:528440]     e1,t1,outT=buy(R_e,R_t,delta_e)
[codex:528440]     e2,t2,Total2,outE=sell(e1,t1,Total,outT)
[codex:528440]     diff=outE-delta_e
[codex:528440]     print(delta_e, diff)
[codex:528440] PY" in /tmp/codex-multi-o6na9o4h succeeded in 19ms:
[codex:528440] 1 0
[codex:528440] 2 0
[codex:528440] 3 0
[codex:528440] 5 0
[codex:528440] 7 0
[codex:528440] 11 0
[codex:528440] 123 0
[codex:528440] 1000 0
[codex:528440] 1000000 0
[codex:528440] 1000000000000 0
[codex:528440] 1000000000000000 0
[codex:528440] 100000000000000000 0
[codex:528440] 1000000000000000000 0
[codex:528440] 5000000000000000000 0
[codex:528440] 17000000000000000000 0
[codex:528440] 
[codex:528440] thinking
[codex:528440] **Analyzing buy-sell token exploit and limits**
[codex:528440] exec
[codex:528440] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '120,260p'" in /tmp/codex-multi-o6na9o4h succeeded in 6ms:
[codex:528440]    120	        // This method relies in extcodesize, which returns 0 for contracts in
[codex:528440]    121	        // construction, since the code is only stored at the end of the
[codex:528440]    122	        // constructor execution.
[codex:528440]    123	
[codex:528440]    124	        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
[codex:528440]    125	        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
[codex:528440]    126	        // for accounts without code, i.e. `keccak256('')`
[codex:528440]    127	        bytes32 codehash;
[codex:528440]    128	        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
[codex:528440]    129	        // solhint-disable-next-line no-inline-assembly
[codex:528440]    130	        assembly { codehash := extcodehash(account) }
[codex:528440]    131	        return (codehash != 0x0 && codehash != accountHash);
[codex:528440]    132	    }
[codex:528440]    133	
[codex:528440]    134	    ////////////////////////////////////////////////////////////////////////////////
[codex:528440]    135	
[codex:528440]    136	    address constant tokenFactoryAddr = 0x1111111111111111111111111111111111111111;
[codex:528440]    137	    
[codex:528440]    138	    address public govAddr;
[codex:528440]    139	    
[codex:528440] exec
[codex:528440] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '260,360p'" in /tmp/codex-multi-o6na9o4h succeeded in 6ms:
[codex:528440]    260	            
[codex:528440]    261	            if (_totalSupply > TokenReserve) { // shall always satisfy
[codex:528440]    262	                uint extraBurn = TokenReserve.mul(amount).div(_totalSupply.sub(TokenReserve));
[codex:528440]    263	                _balances[tokenFactoryAddr] = TokenReserve.sub(extraBurn);
[codex:528440]    264	                emit Transfer(tokenFactoryAddr, address(0), extraBurn);
[codex:528440]    265	                
[codex:528440]    266	                _totalSupply = _totalSupply.sub(amount).sub(extraBurn);
[codex:528440]    267	            } else {
[codex:528440]    268	                _totalSupply = _totalSupply.sub(amount);
[codex:528440]    269	            }
[codex:528440]    270	        }
[codex:528440]    271	    }
[codex:528440]    272	    function _approve(address owner, address spender, uint amount) internal {
[codex:528440]    273	        require(owner != address(0), "ERC20: approve from the zero address");
[codex:528440]    274	        require(spender != address(0), "ERC20: approve to the zero address");
[codex:528440]    275	
[codex:528440]    276	        _allowances[owner][spender] = amount;
[codex:528440]    277	        emit Approval(owner, spender, amount);
[codex:528440]    278	    }    
[codex:528440]    279	    
[codex:528440] exec
[codex:528440] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '360,460p'" in /tmp/codex-multi-o6na9o4h succeeded in 6ms:
[codex:528440]    360	
[codex:528440]    361	        uint newTokenReserve = oldTokenReserve.add(tokenAmtAfterBurn);
[codex:528440]    362	        uint newEthReserve = (oldEthReserve.mul(oldTokenReserve).add(newTokenReserve / 2)).div(newTokenReserve);
[codex:528440]    363	        
[codex:528440]    364	        uint outEthAmt = oldEthReserve.sub(newEthReserve);
[codex:528440]    365	        require (outEthAmt > 0, '!outEth');
[codex:528440]    366	        require (outEthAmt >= minEthAmt, "KittenSwap: INSUFFICIENT_OUTPUT_AMOUNT");
[codex:528440]    367	
[codex:528440]    368	        _transferRawNoBurn(user, tokenFactoryAddr, tokenAmtAfterBurn);
[codex:528440]    369	
[codex:528440]    370	        //------------------------------------------------------------------------------
[codex:528440]    371	
[codex:528440]    372	        if (gSellTreasuryBP > 0) 
[codex:528440]    373	        {
[codex:528440]    374	            uint treasuryAmt = outEthAmt.mul(gSellTreasuryBP).div(10000);
[codex:528440]    375	            treasuryAmtTotal = treasuryAmtTotal.add(treasuryAmt);
[codex:528440]    376	            user.transfer(outEthAmt.sub(treasuryAmt));
[codex:528440]    377	        } 
[codex:528440]    378	        else
[codex:528440]    379	        {
[codex:528440] 
[codex:528440] thinking
[codex:528440] **Summarizing vulnerability and exploit scenario**
[codex:528440] 
[codex:528440] I'll lay out how the auto-burn on sells combined with the price formula lets an attacker do a buy-sell loop that returns their ETH but burns token reserves, boosting price for free. Then I'll outline the step-by-step exploit, profit potential, severity, and provide exact code line references to create a detailed, clear JSON report.
[codex:528440] codex
[codex:528440] {"no_findings":false,"summary":"Found a zero-cost price‑pump loop: the AutoBoost burn reduces token reserves during sells while the pricing math returns the same ETH on a buy→sell round trip, letting an attacker ratchet price upward for free and dump holdings for profit.","findings":[{"severity":"high","category":"math","title":"AutoBoost reserve burn enables ETH‑neutral buy/sell loops that ratchet price upward","exploit_scenario":"1) Buy LIQUID to establish a position (buyToken). 2) Repeatedly call buyToken with the max allowed ETH per tx (default 0.001 ETH), then immediately sellToken the exact amount received. Because _burn() reduces the tokenFactoryAddr reserve (extraBurn) before sellToken reads oldTokenReserve, each loop returns essentially the same ETH you put in but permanently shrinks token reserves, increasing the price. 3) After enough loops, sell your held LIQUID to extract more ETH than you originally paid. Profit potential: scales with loop count and token holdings; upper bound is on the order of the contract’s ETH reserve (initial 2100 ETH + current balance − treasury).","recommendation":"Do not let sell‑side burns reduce reserves used for pricing without compensating ETH loss. Options: (a) move reserve‑burning logic to after pricing and ETH payout, (b) incorporate extraBurn into the pricing formula (so buy→sell is ETH‑lossy), or (c) apply a fee or reduce sell payout so round‑trips cannot be ETH‑neutral.","evidence":"sellToken burns before pricing and _burn() auto‑burns tokenFactoryAddr reserve (extraBurn), then pricing uses the reduced oldTokenReserve. buyToken’s formula is symmetric, so buy→sell of the same tokens returns the same ETH while extraBurn permanently shrinks reserves.","locations":["contracts/Contract.sol:243","contracts/Contract.sol:261","contracts/Contract.sol:352","contracts/Contract.sol:358","contracts/Contract.sol:310","contracts/Contract.sol:361"]}]}
[codex:528440] tokens used
[codex:528440] 55,259
[codex:528440] {"no_findings":false,"summary":"Found a zero-cost price‑pump loop: the AutoBoost burn reduces token reserves during sells while the pricing math returns the same ETH on a buy→sell round trip, letting an attacker ratchet price upward for free and dump holdings for profit.","findings":[{"severity":"high","category":"math","title":"AutoBoost reserve burn enables ETH‑neutral buy/sell loops that ratchet price upward","exploit_scenario":"1) Buy LIQUID to establish a position (buyToken). 2) Repeatedly call buyToken with the max allowed ETH per tx (default 0.001 ETH), then immediately sellToken the exact amount received. Because _burn() reduces the tokenFactoryAddr reserve (extraBurn) before sellToken reads oldTokenReserve, each loop returns essentially the same ETH you put in but permanently shrinks token reserves, increasing the price. 3) After enough loops, sell your held LIQUID to extract more ETH than you originally paid. Profit potential: scales with loop count and token holdings; upper bound is on the order of the contract’s ETH reserve (initial 2100 ETH + current balance − treasury).","recommendation":"Do not let sell‑side burns reduce reserves used for pricing without compensating ETH loss. Options: (a) move reserve‑burning logic to after pricing and ETH payout, (b) incorporate extraBurn into the pricing formula (so buy→sell is ETH‑lossy), or (c) apply a fee or reduce sell payout so round‑trips cannot be ETH‑neutral.","evidence":"sellToken burns before pricing and _burn() auto‑burns tokenFactoryAddr reserve (extraBurn), then pricing uses the reduced oldTokenReserve. buyToken’s formula is symmetric, so buy→sell of the same tokens returns the same ETH while extraBurn permanently shrinks reserves.","locations":["contracts/Contract.sol:243","contracts/Contract.sol:261","contracts/Contract.sol:352","contracts/Contract.sol:358","contracts/Contract.sol:310","contracts/Contract.sol:361"]}]}
Metadata
{
    "codex": {
        "ran_at": "2026-01-03T23:58:22.392857+00:00",
        "returncode": 0
    },
    "summary": "Found a zero-cost price\u2011pump loop: the AutoBoost burn reduces token reserves during sells while the pricing math returns the same ETH on a buy\u2192sell round trip, letting an attacker ratchet price upward for free and dump holdings for profit.",
    "raw_final": {
        "summary": "Found a zero-cost price\u2011pump loop: the AutoBoost burn reduces token reserves during sells while the pricing math returns the same ETH on a buy\u2192sell round trip, letting an attacker ratchet price upward for free and dump holdings for profit.",
        "findings": [
            {
                "title": "AutoBoost reserve burn enables ETH\u2011neutral buy/sell loops that ratchet price upward",
                "category": "math",
                "evidence": "sellToken burns before pricing and _burn() auto\u2011burns tokenFactoryAddr reserve (extraBurn), then pricing uses the reduced oldTokenReserve. buyToken\u2019s formula is symmetric, so buy\u2192sell of the same tokens returns the same ETH while extraBurn permanently shrinks reserves.",
                "severity": "high",
                "locations": [
                    "contracts/Contract.sol:243",
                    "contracts/Contract.sol:261",
                    "contracts/Contract.sol:352",
                    "contracts/Contract.sol:358",
                    "contracts/Contract.sol:310",
                    "contracts/Contract.sol:361"
                ],
                "recommendation": "Do not let sell\u2011side burns reduce reserves used for pricing without compensating ETH loss. Options: (a) move reserve\u2011burning logic to after pricing and ETH payout, (b) incorporate extraBurn into the pricing formula (so buy\u2192sell is ETH\u2011lossy), or (c) apply a fee or reduce sell payout so round\u2011trips cannot be ETH\u2011neutral.",
                "exploit_scenario": "1) Buy LIQUID to establish a position (buyToken). 2) Repeatedly call buyToken with the max allowed ETH per tx (default 0.001 ETH), then immediately sellToken the exact amount received. Because _burn() reduces the tokenFactoryAddr reserve (extraBurn) before sellToken reads oldTokenReserve, each loop returns essentially the same ETH you put in but permanently shrinks token reserves, increasing the price. 3) After enough loops, sell your held LIQUID to extract more ETH than you originally paid. Profit potential: scales with loop count and token holdings; upper bound is on the order of the contract\u2019s ETH reserve (initial 2100 ETH + current balance \u2212 treasury)."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
2
CALL-family (heavy)
5
EXT*/BALANCE
2
Total opcodes
6273
Flags
create_opcodes_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x0272
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x683f9287
00000019: GT
0000001a: PUSH2 0x014f
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xc21d74fe
00000024: GT
00000025: PUSH2 0x00c1
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xd9b69774
0000002f: GT
00000030: PUSH2 0x007a
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xd9b69774
0000003a: EQ
0000003b: PUSH2 0x0907
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xdd62ed3e
00000045: EQ
00000046: PUSH2 0x091c
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xeb0ee934
00000050: EQ
00000051: PUSH2 0x0957
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xf1d9f88b
0000005b: EQ
0000005c: PUSH2 0x096c
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0xfa59e6d4
00000066: EQ
00000067: PUSH2 0x0981
0000006a: JUMPI
0000006b: DUP1
0000006c: PUSH4 0xff71b4e5
00000071: EQ
00000072: PUSH2 0x0996
00000075: JUMPI
00000076: PUSH2 0x0272
00000079: JUMP
0000007a: JUMPDEST
0000007b: DUP1
0000007c: PUSH4 0xc21d74fe
00000081: EQ
00000082: PUSH2 0x0814
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0xc83ce00a
0000008c: EQ
0000008d: PUSH2 0x0847
00000090: JUMPI
00000091: DUP1
00000092: PUSH4 0xca392e0e
00000097: EQ
00000098: PUSH2 0x0871
0000009b: JUMPI
0000009c: DUP1
0000009d: PUSH4 0xcac65b1d
000000a2: EQ
000000a3: PUSH2 0x08aa
000000a6: JUMPI
000000a7: DUP1
000000a8: PUSH4 0xcb85ce67
000000ad: EQ
000000ae: PUSH2 0x08dd
000000b1: JUMPI
000000b2: DUP1
000000b3: PUSH4 0xd222f1bc
000000b8: EQ
000000b9: PUSH2 0x08f2
000000bc: JUMPI
000000bd: PUSH2 0x0272
000000c0: JUMP
000000c1: JUMPDEST
000000c2: DUP1
000000c3: PUSH4 0x8a9118c0
000000c8: GT
000000c9: PUSH2 0x0113
000000cc: JUMPI
000000cd: DUP1
000000ce: PUSH4 0x8a9118c0
000000d3: EQ
000000d4: PUSH2 0x074e
000000d7: JUMPI
000000d8: DUP1
000000d9: PUSH4 0x95d89b41
000000de: EQ
000000df: PUSH2 0x0763
000000e2: JUMPI
000000e3: DUP1
000000e4: PUSH4 0xa457c2d7
000000e9: EQ
000000ea: PUSH2 0x0778
000000ed: JUMPI
000000ee: DUP1
000000ef: PUSH4 0xa9059cbb
000000f4: EQ
000000f5: PUSH2 0x07b1
000000f8: JUMPI
000000f9: DUP1
000000fa: PUSH4 0xbf47f715
000000ff: EQ
00000100: PUSH2 0x07ea
00000103: JUMPI
00000104: DUP1
00000105: PUSH4 0xc1b8411a
0000010a: EQ
0000010b: PUSH2 0x07ff
0000010e: JUMPI
0000010f: PUSH2 0x0272
00000112: JUMP
00000113: JUMPDEST
00000114: DUP1
00000115: PUSH4 0x683f9287
0000011a: EQ
0000011b: PUSH2 0x0643
0000011e: JUMPI
0000011f: DUP1
00000120: PUSH4 0x70a08231
00000125: EQ
00000126: PUSH2 0x0673
00000129: JUMPI
0000012a: DUP1
0000012b: PUSH4 0x72223c6c
00000130: EQ
00000131: PUSH2 0x06a6
00000134: JUMPI
00000135: DUP1
00000136: PUSH4 0x7cfd312d
0000013b: EQ
0000013c: PUSH2 0x06e5
0000013f: JUMPI
00000140: DUP1
00000141: PUSH4 0x80abb055
00000146: EQ
00000147: PUSH2 0x0718
0000014a: JUMPI
0000014b: PUSH2 0x0272
0000014e: JUMP
0000014f: JUMPDEST
00000150: DUP1
00000151: PUSH4 0x30d9a62a
00000156: GT
00000157: PUSH2 0x01e8
0000015a: JUMPI
0000015b: DUP1
0000015c: PUSH4 0x3ad6bd34
00000161: GT
00000162: PUSH2 0x01ac
00000165: JUMPI
00000166: DUP1
00000167: PUSH4 0x3ad6bd34
0000016c: EQ
0000016d: PUSH2 0x0574
00000170: JUMPI
00000171: DUP1
00000172: PUSH4 0x3dae21aa
00000177: EQ
00000178: PUSH2 0x0589
0000017b: JUMPI
0000017c: DUP1
0000017d: PUSH4 0x42edd8e0
00000182: EQ
00000183: PUSH2 0x059e
00000186: JUMPI
00000187: DUP1
00000188: PUSH4 0x4a427c0c
0000018d: EQ
0000018e: PUSH2 0x05d1
00000191: JUMPI
00000192: DUP1
00000193: PUSH4 0x52c06865
00000198: EQ
00000199: PUSH2 0x0604
0000019c: JUMPI
0000019d: DUP1
0000019e: PUSH4 0x580c8544
000001a3: EQ
000001a4: PUSH2 0x062e
000001a7: JUMPI
000001a8: PUSH2 0x0272
000001ab: JUMP
000001ac: JUMPDEST
000001ad: DUP1
000001ae: PUSH4 0x30d9a62a
000001b3: EQ
000001b4: PUSH2 0x04b5
000001b7: JUMPI
000001b8: DUP1
000001b9: PUSH4 0x313ce567
000001be: EQ
000001bf: PUSH2 0x04e6
000001c2: JUMPI
000001c3: DUP1
000001c4: PUSH4 0x327ba06c
000001c9: EQ
000001ca: PUSH2 0x0511
000001cd: JUMPI
000001ce: DUP1
000001cf: PUSH4 0x37e2cde9
000001d4: EQ
000001d5: PUSH2 0x0526
000001d8: JUMPI
000001d9: DUP1
000001da: PUSH4 0x39509351
000001df: EQ
000001e0: PUSH2 0x053b
000001e3: JUMPI
000001e4: PUSH2 0x0272
000001e7: JUMP
000001e8: JUMPDEST
000001e9: DUP1
000001ea: PUSH4 0x18160ddd
000001ef: GT
000001f0: PUSH2 0x023a
000001f3: JUMPI
000001f4: DUP1
000001f5: PUSH4 0x18160ddd
000001fa: EQ
000001fb: PUSH2 0x03d6
000001fe: JUMPI
000001ff: DUP1
00000200: PUSH4 0x1efbe895
00000205: EQ
00000206: PUSH2 0x03fd
00000209: JUMPI
0000020a: DUP1
0000020b: PUSH4 0x1f181d57
00000210: EQ
00000211: PUSH2 0x0412
00000214: JUMPI
00000215: DUP1
00000216: PUSH4 0x23b872dd
0000021b: EQ
0000021c: PUSH2 0x0448
0000021f: JUMPI
00000220: DUP1
00000221: PUSH4 0x24c0fb00
00000226: EQ
00000227: PUSH2 0x048b
0000022a: JUMPI
0000022b: DUP1
0000022c: PUSH4 0x25653eca
00000231: EQ
00000232: PUSH2 0x04a0
00000235: JUMPI
00000236: PUSH2 0x0272
00000239: JUMP
0000023a: JUMPDEST
0000023b: DUP1
0000023c: PUSH4 0x057466ea
00000241: EQ
00000242: PUSH2 0x0277
00000245: JUMPI
00000246: DUP1
00000247: PUSH4 0x06fdde03
0000024c: EQ
0000024d: PUSH2 0x029c
00000250: JUMPI
00000251: DUP1
00000252: PUSH4 0x095ea7b3
00000257: EQ
00000258: PUSH2 0x0326
0000025b: JUMPI
0000025c: DUP1
0000025d: PUSH4 0x0c278a8d
00000262: EQ
00000263: PUSH2 0x0373
00000266: JUMPI
00000267: DUP1
00000268: PUSH4 0x1073b375
0000026d: EQ
0000026e: PUSH2 0x039d
00000271: JUMPI
00000272: JUMPDEST
00000273: PUSH1 0x00
00000275: DUP1
00000276: REVERT
00000277: JUMPDEST
00000278: PUSH2 0x029a
0000027b: PUSH1 0x04
0000027d: DUP1
0000027e: CALLDATASIZE
0000027f: SUB
00000280: PUSH1 0x40
00000282: DUP2
00000283: LT
00000284: ISZERO
00000285: PUSH2 0x028d
00000288: JUMPI
00000289: PUSH1 0x00
0000028b: DUP1
0000028c: REVERT
0000028d: JUMPDEST
0000028e: POP
0000028f: DUP1
00000290: CALLDATALOAD
00000291: SWAP1
00000292: PUSH1 0x20
00000294: ADD
00000295: CALLDATALOAD
00000296: PUSH2 0x09ab
00000299: JUMP
0000029a: JUMPDEST
0000029b: STOP
0000029c: JUMPDEST
0000029d: CALLVALUE
0000029e: DUP1
0000029f: ISZERO
000002a0: PUSH2 0x02a8
000002a3: JUMPI
000002a4: PUSH1 0x00
000002a6: DUP1
000002a7: REVERT
000002a8: JUMPDEST
000002a9: POP
000002aa: PUSH2 0x02b1
000002ad: PUSH2 0x0ed5
000002b0: JUMP
000002b1: JUMPDEST
000002b2: PUSH1 0x40
000002b4: DUP1
000002b5: MLOAD
000002b6: PUSH1 0x20
000002b8: DUP1
000002b9: DUP3
000002ba: MSTORE
000002bb: DUP4
000002bc: MLOAD
000002bd: DUP2
000002be: DUP4
000002bf: ADD
000002c0: MSTORE
000002c1: DUP4
000002c2: MLOAD
000002c3: SWAP2
000002c4: SWAP3
000002c5: DUP4
000002c6: SWAP3
000002c7: SWAP1
000002c8: DUP4
000002c9: ADD
000002ca: SWAP2
000002cb: DUP6
000002cc: ADD
000002cd: SWAP1
000002ce: DUP1
000002cf: DUP4
000002d0: DUP4
000002d1: PUSH1 0x00
000002d3: JUMPDEST
000002d4: DUP4
000002d5: DUP2
000002d6: LT
000002d7: ISZERO
000002d8: PUSH2 0x02eb
000002db: JUMPI
000002dc: DUP2
000002dd: DUP2
000002de: ADD
000002df: MLOAD
000002e0: DUP4
000002e1: DUP3
000002e2: ADD
000002e3: MSTORE
000002e4: PUSH1 0x20
000002e6: ADD
000002e7: PUSH2 0x02d3
000002ea: JUMP
000002eb: JUMPDEST
000002ec: POP
000002ed: POP
000002ee: POP
000002ef: POP
000002f0: SWAP1
000002f1: POP
000002f2: SWAP1
000002f3: DUP2
000002f4: ADD
000002f5: SWAP1
000002f6: PUSH1 0x1f
000002f8: AND
000002f9: DUP1
000002fa: ISZERO
000002fb: PUSH2 0x0318
000002fe: JUMPI
000002ff: DUP1
00000300: DUP3
00000301: SUB
00000302: DUP1
00000303: MLOAD
00000304: PUSH1 0x01
00000306: DUP4
00000307: PUSH1 0x20
00000309: SUB
0000030a: PUSH2 0x0100
0000030d: EXP
0000030e: SUB
0000030f: NOT
00000310: AND
00000311: DUP2
00000312: MSTORE
00000313: PUSH1 0x20
00000315: ADD
00000316: SWAP2
00000317: POP
00000318: JUMPDEST
00000319: POP
0000031a: SWAP3
0000031b: POP
0000031c: POP
0000031d: POP
0000031e: PUSH1 0x40
00000320: MLOAD
00000321: DUP1
00000322: SWAP2
00000323: SUB
00000324: SWAP1
00000325: RETURN
00000326: JUMPDEST
00000327: CALLVALUE
00000328: DUP1
00000329: ISZERO
0000032a: PUSH2 0x0332
0000032d: JUMPI
0000032e: PUSH1 0x00
00000330: DUP1
00000331: REVERT
00000332: JUMPDEST
00000333: POP
00000334: PUSH2 0x035f
00000337: PUSH1 0x04
00000339: DUP1
0000033a: CALLDATASIZE
0000033b: SUB
0000033c: PUSH1 0x40
0000033e: DUP2
0000033f: LT
00000340: ISZERO
00000341: PUSH2 0x0349
00000344: JUMPI
00000345: PUSH1 0x00
00000347: DUP1
00000348: REVERT
00000349: JUMPDEST
0000034a: POP
0000034b: PUSH1 0x01
0000034d: PUSH1 0x01
0000034f: PUSH1 0xa0
00000351: SHL
00000352: SUB
00000353: DUP2
00000354: CALLDATALOAD
00000355: AND
00000356: SWAP1
00000357: PUSH1 0x20
00000359: ADD
0000035a: CALLDATALOAD
0000035b: PUSH2 0x0f6b
0000035e: JUMP
0000035f: JUMPDEST
00000360: PUSH1 0x40
00000362: DUP1
00000363: MLOAD
00000364: SWAP2
00000365: ISZERO
00000366: ISZERO
00000367: DUP3
00000368: MSTORE
00000369: MLOAD
0000036a: SWAP1
0000036b: DUP2
0000036c: SWAP1
0000036d: SUB
0000036e: PUSH1 0x20
00000370: ADD
00000371: SWAP1
00000372: RETURN
00000373: JUMPDEST
00000374: CALLVALUE
00000375: DUP1
00000376: ISZERO
00000377: PUSH2 0x037f
0000037a: JUMPI
0000037b: PUSH1 0x00
0000037d: DUP1
0000037e: REVERT
0000037f: JUMPDEST
00000380: POP
00000381: PUSH2 0x029a
00000384: PUSH1 0x04
00000386: DUP1
00000387: CALLDATASIZE
00000388: SUB
00000389: PUSH1 0x20
0000038b: DUP2
0000038c: LT
0000038d: ISZERO
0000038e: PUSH2 0x0396
00000391: JUMPI
00000392: PUSH1 0x00
00000394: DUP1
00000395: REVERT
00000396: JUMPDEST
00000397: POP
00000398: CALLDATALOAD
00000399: PUSH2 0x0f89
0000039c: JUMP
0000039d: JUMPDEST
0000039e: CALLVALUE
0000039f: DUP1
000003a0: ISZERO
000003a1: PUSH2 0x03a9
000003a4: JUMPI
000003a5: PUSH1 0x00
000003a7: DUP1
000003a8: REVERT
000003a9: JUMPDEST
000003aa: POP
000003ab: PUSH2 0x029a
000003ae: PUSH1 0x04
000003b0: DUP1
000003b1: CALLDATASIZE
000003b2: SUB
000003b3: PUSH1 0x40
000003b5: DUP2
000003b6: LT
000003b7: ISZERO
000003b8: PUSH2 0x03c0
000003bb: JUMPI
000003bc: PUSH1 0x00
000003be: DUP1
000003bf: REVERT
000003c0: JUMPDEST
000003c1: POP
000003c2: PUSH1 0x01
000003c4: PUSH1 0x01
000003c6: PUSH1 0xa0
000003c8: SHL
000003c9: SUB
000003ca: DUP2
000003cb: CALLDATALOAD
000003cc: AND
000003cd: SWAP1
000003ce: PUSH1 0x20
000003d0: ADD
000003d1: CALLDATALOAD
000003d2: PUSH2 0x0fd6
000003d5: JUMP
000003d6: JUMPDEST
000003d7: CALLVALUE
000003d8: DUP1
000003d9: ISZERO
000003da: PUSH2 0x03e2
000003dd: JUMPI
000003de: PUSH1 0x00
000003e0: DUP1
000003e1: REVERT
000003e2: JUMPDEST
000003e3: POP
000003e4: PUSH2 0x03eb
000003e7: PUSH2 0x1044
000003ea: JUMP
000003eb: JUMPDEST
000003ec: PUSH1 0x40
000003ee: DUP1
000003ef: MLOAD
000003f0: SWAP2
000003f1: DUP3
000003f2: MSTORE
000003f3: MLOAD
000003f4: SWAP1
000003f5: DUP2
000003f6: SWAP1
000003f7: SUB
000003f8: PUSH1 0x20
000003fa: ADD
000003fb: SWAP1
000003fc: RETURN
000003fd: JUMPDEST
000003fe: CALLVALUE
000003ff: DUP1
00000400: ISZERO
00000401: PUSH2 0x0409
00000404: JUMPI
00000405: PUSH1 0x00
00000407: DUP1
00000408: REVERT
00000409: JUMPDEST
0000040a: POP
0000040b: PUSH2 0x03eb
0000040e: PUSH2 0x104a
00000411: JUMP
00000412: JUMPDEST
00000413: CALLVALUE
00000414: DUP1
00000415: ISZERO
00000416: PUSH2 0x041e
00000419: JUMPI
0000041a: PUSH1 0x00
0000041c: DUP1
0000041d: REVERT
0000041e: JUMPDEST
0000041f: POP
00000420: PUSH2 0x029a
00000423: PUSH1 0x04
00000425: DUP1
00000426: CALLDATASIZE
00000427: SUB
00000428: PUSH1 0x60
0000042a: DUP2
0000042b: LT
0000042c: ISZERO
0000042d: PUSH2 0x0435
00000430: JUMPI
00000431: PUSH1 0x00
00000433: DUP1
00000434: REVERT
00000435: JUMPDEST
00000436: POP
00000437: DUP1
00000438: CALLDATALOAD
00000439: SWAP1
0000043a: PUSH1 0x20
0000043c: DUP2
0000043d: ADD
0000043e: CALLDATALOAD
0000043f: SWAP1
00000440: PUSH1 0x40
00000442: ADD
00000443: CALLDATALOAD
00000444: PUSH2 0x1050
00000447: JUMP
00000448: JUMPDEST
00000449: CALLVALUE
0000044a: DUP1
0000044b: ISZERO
0000044c: PUSH2 0x0454
0000044f: JUMPI
00000450: PUSH1 0x00
00000452: DUP1
00000453: REVERT
00000454: JUMPDEST
00000455: POP
00000456: PUSH2 0x035f
00000459: PUSH1 0x04
0000045b: DUP1
0000045c: CALLDATASIZE
0000045d: SUB
0000045e: PUSH1 0x60
00000460: DUP2
00000461: LT
00000462: ISZERO
00000463: PUSH2 0x046b
00000466: JUMPI
00000467: PUSH1 0x00
00000469: DUP1
0000046a: REVERT
0000046b: JUMPDEST
0000046c: POP
0000046d: PUSH1 0x01
0000046f: PUSH1 0x01
00000471: PUSH1 0xa0
00000473: SHL
00000474: SUB
00000475: DUP2
00000476: CALLDATALOAD
00000477: DUP2
00000478: AND
00000479: SWAP2
0000047a: PUSH1 0x20
0000047c: DUP2
0000047d: ADD
0000047e: CALLDATALOAD
0000047f: SWAP1
00000480: SWAP2
00000481: AND
00000482: SWAP1
00000483: PUSH1 0x40
00000485: ADD
00000486: CALLDATALOAD
00000487: PUSH2 0x145c
0000048a: JUMP
0000048b: JUMPDEST
0000048c: CALLVALUE
0000048d: DUP1
0000048e: ISZERO
0000048f: PUSH2 0x0497
00000492: JUMPI
00000493: PUSH1 0x00
00000495: DUP1
00000496: REVERT
00000497: JUMPDEST
00000498: POP
00000499: PUSH2 0x03eb
0000049c: PUSH2 0x14e9
0000049f: JUMP
000004a0: JUMPDEST
000004a1: CALLVALUE
000004a2: DUP1
000004a3: ISZERO
000004a4: PUSH2 0x04ac
000004a7: JUMPI
000004a8: PUSH1 0x00
000004aa: DUP1
000004ab: REVERT
000004ac: JUMPDEST
000004ad: POP
000004ae: PUSH2 0x03eb
000004b1: PUSH2 0x14f7
000004b4: JUMP
000004b5: JUMPDEST
000004b6: CALLVALUE
000004b7: DUP1
000004b8: ISZERO
000004b9: PUSH2 0x04c1
000004bc: JUMPI
000004bd: PUSH1 0x00
000004bf: DUP1
000004c0: REVERT
000004c1: JUMPDEST
000004c2: POP
000004c3: PUSH2 0x04ca
000004c6: PUSH2 0x14fd
000004c9: JUMP
000004ca: JUMPDEST
000004cb: PUSH1 0x40
000004cd: DUP1
000004ce: MLOAD
000004cf: PUSH1 0x01
000004d1: PUSH1 0x01
000004d3: PUSH1 0xa0
000004d5: SHL
000004d6: SUB
000004d7: SWAP1
000004d8: SWAP3
000004d9: AND
000004da: DUP3
000004db: MSTORE
000004dc: MLOAD
000004dd: SWAP1
000004de: DUP2
000004df: SWAP1
000004e0: SUB
000004e1: PUSH1 0x20
000004e3: ADD
000004e4: SWAP1
000004e5: RETURN
000004e6: JUMPDEST
000004e7: CALLVALUE
000004e8: DUP1
000004e9: ISZERO
000004ea: PUSH2 0x04f2
000004ed: JUMPI
000004ee: PUSH1 0x00
000004f0: DUP1
000004f1: REVERT
000004f2: JUMPDEST
000004f3: POP
000004f4: PUSH2 0x04fb
000004f7: PUSH2 0x150c
000004fa: JUMP
000004fb: JUMPDEST
000004fc: PUSH1 0x40
000004fe: DUP1
000004ff: MLOAD
00000500: PUSH1 0xff
00000502: SWAP1
00000503: SWAP3
00000504: AND
00000505: DUP3
00000506: MSTORE
00000507: MLOAD
00000508: SWAP1
00000509: DUP2
0000050a: SWAP1
0000050b: SUB
0000050c: PUSH1 0x20
0000050e: ADD
0000050f: SWAP1
00000510: RETURN
00000511: JUMPDEST
00000512: CALLVALUE
00000513: DUP1
00000514: ISZERO
00000515: PUSH2 0x051d
00000518: JUMPI
00000519: PUSH1 0x00
0000051b: DUP1
0000051c: REVERT
0000051d: JUMPDEST
0000051e: POP
0000051f: PUSH2 0x03eb
00000522: PUSH2 0x1515
00000525: JUMP
00000526: JUMPDEST
00000527: CALLVALUE
00000528: DUP1
00000529: ISZERO
0000052a: PUSH2 0x0532
0000052d: JUMPI
0000052e: PUSH1 0x00
00000530: DUP1
00000531: REVERT
00000532: JUMPDEST
00000533: POP
00000534: PUSH2 0x03eb
00000537: PUSH2 0x151b
0000053a: JUMP
0000053b: JUMPDEST
0000053c: CALLVALUE
0000053d: DUP1
0000053e: ISZERO
0000053f: PUSH2 0x0547
00000542: JUMPI
00000543: PUSH1 0x00
00000545: DUP1
00000546: REVERT
00000547: JUMPDEST
00000548: POP
00000549: PUSH2 0x035f
0000054c: PUSH1 0x04
0000054e: DUP1
0000054f: CALLDATASIZE
00000550: SUB
00000551: PUSH1 0x40
00000553: DUP2
00000554: LT
00000555: ISZERO
00000556: PUSH2 0x055e
00000559: JUMPI
0000055a: PUSH1 0x00
0000055c: DUP1
0000055d: REVERT
0000055e: JUMPDEST
0000055f: POP
00000560: PUSH1 0x01
00000562: PUSH1 0x01
00000564: PUSH1 0xa0
00000566: SHL
00000567: SUB
00000568: DUP2
00000569: CALLDATALOAD
0000056a: AND
0000056b: SWAP1
0000056c: PUSH1 0x20
0000056e: ADD
0000056f: CALLDATALOAD
00000570: PUSH2 0x1521
00000573: JUMP
00000574: JUMPDEST
00000575: CALLVALUE
00000576: DUP1
00000577: ISZERO
00000578: PUSH2 0x0580
0000057b: JUMPI
0000057c: PUSH1 0x00
0000057e: DUP1
0000057f: REVERT
00000580: JUMPDEST
00000581: POP
00000582: PUSH2 0x029a
00000585: PUSH2 0x1575
00000588: JUMP
00000589: JUMPDEST
0000058a: CALLVALUE
0000058b: DUP1
0000058c: ISZERO
0000058d: PUSH2 0x0595
00000590: JUMPI
00000591: PUSH1 0x00
00000593: DUP1
00000594: REVERT
00000595: JUMPDEST
00000596: POP
00000597: PUSH2 0x03eb
0000059a: PUSH2 0x15c4
0000059d: JUMP
0000059e: JUMPDEST
0000059f: CALLVALUE
000005a0: DUP1
000005a1: ISZERO
000005a2: PUSH2 0x05aa
000005a5: JUMPI
000005a6: PUSH1 0x00
000005a8: DUP1
000005a9: REVERT
000005aa: JUMPDEST
000005ab: POP
000005ac: PUSH2 0x029a
000005af: PUSH1 0x04
000005b1: DUP1
000005b2: CALLDATASIZE
000005b3: SUB
000005b4: PUSH1 0x20
000005b6: DUP2
000005b7: LT
000005b8: ISZERO
000005b9: PUSH2 0x05c1
000005bc: JUMPI
000005bd: PUSH1 0x00
000005bf: DUP1
000005c0: REVERT
000005c1: JUMPDEST
000005c2: POP
000005c3: CALLDATALOAD
000005c4: PUSH1 0x01
000005c6: PUSH1 0x01
000005c8: PUSH1 0xa0
000005ca: SHL
000005cb: SUB
000005cc: AND
000005cd: PUSH2 0x15ca
000005d0: JUMP
000005d1: JUMPDEST
000005d2: CALLVALUE
000005d3: DUP1
000005d4: ISZERO
000005d5: PUSH2 0x05dd
000005d8: JUMPI
000005d9: PUSH1 0x00
000005db: DUP1
000005dc: REVERT
000005dd: JUMPDEST
000005de: POP
000005df: PUSH2 0x03eb
000005e2: PUSH1 0x04
000005e4: DUP1
000005e5: CALLDATASIZE
000005e6: SUB
000005e7: PUSH1 0x20
000005e9: DUP2
000005ea: LT
000005eb: ISZERO
000005ec: PUSH2 0x05f4
000005ef: JUMPI
000005f0: PUSH1 0x00
000005f2: DUP1
000005f3: REVERT
000005f4: JUMPDEST
000005f5: POP
000005f6: CALLDATALOAD
000005f7: PUSH1 0x01
000005f9: PUSH1 0x01
000005fb: PUSH1 0xa0
000005fd: SHL
000005fe: SUB
000005ff: AND
00000600: PUSH2 0x1677
00000603: JUMP
00000604: JUMPDEST
00000605: CALLVALUE
00000606: DUP1
00000607: ISZERO
00000608: PUSH2 0x0610
0000060b: JUMPI
0000060c: PUSH1 0x00
0000060e: DUP1
0000060f: REVERT
00000610: JUMPDEST
00000611: POP
00000612: PUSH2 0x029a
00000615: PUSH1 0x04
00000617: DUP1
00000618: CALLDATASIZE
00000619: SUB
0000061a: PUSH1 0x20
0000061c: DUP2
0000061d: LT
0000061e: ISZERO
0000061f: PUSH2 0x0627
00000622: JUMPI
00000623: PUSH1 0x00
00000625: DUP1
00000626: REVERT
00000627: JUMPDEST
00000628: POP
00000629: CALLDATALOAD
0000062a: PUSH2 0x1689
0000062d: JUMP
0000062e: JUMPDEST
0000062f: CALLVALUE
00000630: DUP1
00000631: ISZERO
00000632: PUSH2 0x063a
00000635: JUMPI
00000636: PUSH1 0x00
00000638: DUP1
00000639: REVERT
0000063a: JUMPDEST
0000063b: POP
0000063c: PUSH2 0x03eb
0000063f: PUSH2 0x16d6
00000642: JUMP
00000643: JUMPDEST
00000644: CALLVALUE
00000645: DUP1
00000646: ISZERO
00000647: PUSH2 0x064f
0000064a: JUMPI
0000064b: PUSH1 0x00
0000064d: DUP1
0000064e: REVERT
0000064f: JUMPDEST
00000650: POP
00000651: PUSH2 0x029a
00000654: PUSH1 0x04
00000656: DUP1
00000657: CALLDATASIZE
00000658: SUB
00000659: PUSH1 0x40
0000065b: DUP2
0000065c: LT
0000065d: ISZERO
0000065e: PUSH2 0x0666
00000661: JUMPI
00000662: PUSH1 0x00
00000664: DUP1
00000665: REVERT
00000666: JUMPDEST
00000667: POP
00000668: DUP1
00000669: CALLDATALOAD
0000066a: SWAP1
0000066b: PUSH1 0x20
0000066d: ADD
0000066e: CALLDATALOAD
0000066f: PUSH2 0x16dc
00000672: JUMP
00000673: JUMPDEST
00000674: CALLVALUE
00000675: DUP1
00000676: ISZERO
00000677: PUSH2 0x067f
0000067a: JUMPI
0000067b: PUSH1 0x00
0000067d: DUP1
0000067e: REVERT
0000067f: JUMPDEST
00000680: POP
00000681: PUSH2 0x03eb
00000684: PUSH1 0x04
00000686: DUP1
00000687: CALLDATASIZE
00000688: SUB
00000689: PUSH1 0x20
0000068b: DUP2
0000068c: LT
0000068d: ISZERO
0000068e: PUSH2 0x0696
00000691: JUMPI
00000692: PUSH1 0x00
00000694: DUP1
00000695: REVERT
00000696: JUMPDEST
00000697: POP
00000698: CALLDATALOAD
00000699: PUSH1 0x01
0000069b: PUSH1 0x01
0000069d: PUSH1 0xa0
0000069f: SHL
000006a0: SUB
000006a1: AND
000006a2: PUSH2 0x172f
000006a5: JUMP
000006a6: JUMPDEST
000006a7: CALLVALUE
000006a8: DUP1
000006a9: ISZERO
000006aa: PUSH2 0x06b2
000006ad: JUMPI
000006ae: PUSH1 0x00
000006b0: DUP1
000006b1: REVERT
000006b2: JUMPDEST
000006b3: POP
000006b4: PUSH2 0x029a
000006b7: PUSH1 0x04
000006b9: DUP1
000006ba: CALLDATASIZE
000006bb: SUB
000006bc: PUSH1 0x60
000006be: DUP2
000006bf: LT
000006c0: ISZERO
000006c1: PUSH2 0x06c9
000006c4: JUMPI
000006c5: PUSH1 0x00
000006c7: DUP1
000006c8: REVERT
000006c9: JUMPDEST
000006ca: POP
000006cb: PUSH1 0x01
000006cd: PUSH1 0x01
000006cf: PUSH1 0xa0
000006d1: SHL
000006d2: SUB
000006d3: DUP2
000006d4: CALLDATALOAD
000006d5: AND
000006d6: SWAP1
000006d7: PUSH1 0x20
000006d9: DUP2
000006da: ADD
000006db: CALLDATALOAD
000006dc: SWAP1
000006dd: PUSH1 0x40
000006df: ADD
000006e0: CALLDATALOAD
000006e1: PUSH2 0x174a
000006e4: JUMP
000006e5: JUMPDEST
000006e6: CALLVALUE
000006e7: DUP1
000006e8: ISZERO
000006e9: PUSH2 0x06f1
000006ec: JUMPI
000006ed: PUSH1 0x00
000006ef: DUP1
000006f0: REVERT
000006f1: JUMPDEST
000006f2: POP
000006f3: PUSH2 0x029a
000006f6: PUSH1 0x04
000006f8: DUP1
000006f9: CALLDATASIZE
000006fa: SUB
000006fb: PUSH1 0x20
000006fd: DUP2
000006fe: LT
000006ff: ISZERO
00000700: PUSH2 0x0708
00000703: JUMPI
00000704: PUSH1 0x00
00000706: DUP1
00000707: REVERT
00000708: JUMPDEST
00000709: POP
0000070a: CALLDATALOAD
0000070b: PUSH1 0x01
0000070d: PUSH1 0x01
0000070f: PUSH1 0xa0
00000711: SHL
00000712: SUB
00000713: AND
00000714: PUSH2 0x17d8
00000717: JUMP
00000718: JUMPDEST
00000719: CALLVALUE
0000071a: DUP1
0000071b: ISZERO
0000071c: PUSH2 0x0724
0000071f: JUMPI
00000720: PUSH1 0x00
00000722: DUP1
00000723: REVERT
00000724: JUMPDEST
00000725: POP
00000726: PUSH2 0x029a
00000729: PUSH1 0x04
0000072b: DUP1
0000072c: CALLDATASIZE
0000072d: SUB
0000072e: PUSH1 0x60
00000730: DUP2
00000731: LT
00000732: ISZERO
00000733: PUSH2 0x073b
00000736: JUMPI
00000737: PUSH1 0x00
00000739: DUP1
0000073a: REVERT
0000073b: JUMPDEST
0000073c: POP
0000073d: DUP1
0000073e: CALLDATALOAD
0000073f: SWAP1
00000740: PUSH1 0x20
00000742: DUP2
00000743: ADD
00000744: CALLDATALOAD
00000745: SWAP1
00000746: PUSH1 0x40
00000748: ADD
00000749: CALLDATALOAD
0000074a: PUSH2 0x1885
0000074d: JUMP
0000074e: JUMPDEST
0000074f: CALLVALUE
00000750: DUP1
00000751: ISZERO
00000752: PUSH2 0x075a
00000755: JUMPI
00000756: PUSH1 0x00
00000758: DUP1
00000759: REVERT
0000075a: JUMPDEST
0000075b: POP
0000075c: PUSH2 0x03eb
0000075f: PUSH2 0x192f
00000762: JUMP
00000763: JUMPDEST
00000764: CALLVALUE
00000765: DUP1
00000766: ISZERO
00000767: PUSH2 0x076f
0000076a: JUMPI
0000076b: PUSH1 0x00
0000076d: DUP1
0000076e: REVERT
0000076f: JUMPDEST
00000770: POP
00000771: PUSH2 0x02b1
00000774: PUSH2 0x1957
00000777: JUMP
00000778: JUMPDEST
00000779: CALLVALUE
0000077a: DUP1
0000077b: ISZERO
0000077c: PUSH2 0x0784
0000077f: JUMPI
00000780: PUSH1 0x00
00000782: DUP1
00000783: REVERT
00000784: JUMPDEST
00000785: POP
00000786: PUSH2 0x035f
00000789: PUSH1 0x04
0000078b: DUP1
0000078c: CALLDATASIZE
0000078d: SUB
0000078e: PUSH1 0x40
00000790: DUP2
00000791: LT
00000792: ISZERO
00000793: PUSH2 0x079b
00000796: JUMPI
00000797: PUSH1 0x00
00000799: DUP1
0000079a: REVERT
0000079b: JUMPDEST
0000079c: POP
0000079d: PUSH1 0x01
0000079f: PUSH1 0x01
000007a1: PUSH1 0xa0
000007a3: SHL
000007a4: SUB
000007a5: DUP2
000007a6: CALLDATALOAD
000007a7: AND
000007a8: SWAP1
000007a9: PUSH1 0x20
000007ab: ADD
000007ac: CALLDATALOAD
000007ad: PUSH2 0x19b7
000007b0: JUMP
000007b1: JUMPDEST
000007b2: CALLVALUE
000007b3: DUP1
000007b4: ISZERO
000007b5: PUSH2 0x07bd
000007b8: JUMPI
000007b9: PUSH1 0x00
000007bb: DUP1
000007bc: REVERT
000007bd: JUMPDEST
000007be: POP
000007bf: PUSH2 0x035f
000007c2: PUSH1 0x04
000007c4: DUP1
000007c5: CALLDATASIZE
000007c6: SUB
000007c7: PUSH1 0x40
000007c9: DUP2
000007ca: LT
000007cb: ISZERO
000007cc: PUSH2 0x07d4
000007cf: JUMPI
000007d0: PUSH1 0x00
000007d2: DUP1
000007d3: REVERT
000007d4: JUMPDEST
000007d5: POP
000007d6: PUSH1 0x01
000007d8: PUSH1 0x01
000007da: PUSH1 0xa0
000007dc: SHL
000007dd: SUB
000007de: DUP2
000007df: CALLDATALOAD
000007e0: AND
000007e1: SWAP1
000007e2: PUSH1 0x20
000007e4: ADD
000007e5: CALLDATALOAD
000007e6: PUSH2 0x1a25
000007e9: JUMP
000007ea: JUMPDEST
000007eb: CALLVALUE
000007ec: DUP1
000007ed: ISZERO
000007ee: PUSH2 0x07f6
000007f1: JUMPI
000007f2: PUSH1 0x00
000007f4: DUP1
000007f5: REVERT
000007f6: JUMPDEST
000007f7: POP
000007f8: PUSH2 0x03eb
000007fb: PUSH2 0x1a39
000007fe: JUMP
000007ff: JUMPDEST
00000800: CALLVALUE
00000801: DUP1
00000802: ISZERO
00000803: PUSH2 0x080b
00000806: JUMPI
00000807: PUSH1 0x00
00000809: DUP1
0000080a: REVERT
0000080b: JUMPDEST
0000080c: POP
0000080d: PUSH2 0x04ca
00000810: PUSH2 0x1a3f
00000813: JUMP
00000814: JUMPDEST
00000815: CALLVALUE
00000816: DUP1
00000817: ISZERO
00000818: PUSH2 0x0820
0000081b: JUMPI
0000081c: PUSH1 0x00
0000081e: DUP1
0000081f: REVERT
00000820: JUMPDEST
00000821: POP
00000822: PUSH2 0x03eb
00000825: PUSH1 0x04
00000827: DUP1
00000828: CALLDATASIZE
00000829: SUB
0000082a: PUSH1 0x20
0000082c: DUP2
0000082d: LT
0000082e: ISZERO
0000082f: PUSH2 0x0837
00000832: JUMPI
00000833: PUSH1 0x00
00000835: DUP1
00000836: REVERT
00000837: JUMPDEST
00000838: POP
00000839: CALLDATALOAD
0000083a: PUSH1 0x01
0000083c: PUSH1 0x01
0000083e: PUSH1 0xa0
00000840: SHL
00000841: SUB
00000842: AND
00000843: PUSH2 0x1a53
00000846: JUMP
00000847: JUMPDEST
00000848: CALLVALUE
00000849: DUP1
0000084a: ISZERO
0000084b: PUSH2 0x0853
0000084e: JUMPI
0000084f: PUSH1 0x00
00000851: DUP1
00000852: REVERT
00000853: JUMPDEST
00000854: POP
00000855: PUSH2 0x029a
00000858: PUSH1 0x04
0000085a: DUP1
0000085b: CALLDATASIZE
0000085c: SUB
0000085d: PUSH1 0x20
0000085f: DUP2
00000860: LT
00000861: ISZERO
00000862: PUSH2 0x086a
00000865: JUMPI
00000866: PUSH1 0x00
00000868: DUP1
00000869: REVERT
0000086a: JUMPDEST
0000086b: POP
0000086c: CALLDATALOAD
0000086d: PUSH2 0x1a65
00000870: JUMP
00000871: JUMPDEST
00000872: CALLVALUE
00000873: DUP1
00000874: ISZERO
00000875: PUSH2 0x087d
00000878: JUMPI
00000879: PUSH1 0x00
0000087b: DUP1
0000087c: REVERT
0000087d: JUMPDEST
0000087e: POP
0000087f: PUSH2 0x029a
00000882: PUSH1 0x04
00000884: DUP1
00000885: CALLDATASIZE
00000886: SUB
00000887: PUSH1 0x40
00000889: DUP2
0000088a: LT
0000088b: ISZERO
0000088c: PUSH2 0x0894
0000088f: JUMPI
00000890: PUSH1 0x00
00000892: DUP1
00000893: REVERT
00000894: JUMPDEST
00000895: POP
00000896: PUSH1 0x01
00000898: PUSH1 0x01
0000089a: PUSH1 0xa0
0000089c: SHL
0000089d: SUB
0000089e: DUP2
0000089f: CALLDATALOAD
000008a0: AND
000008a1: SWAP1
000008a2: PUSH1 0x20
000008a4: ADD
000008a5: CALLDATALOAD
000008a6: PUSH2 0x1b16
000008a9: JUMP
000008aa: JUMPDEST
000008ab: CALLVALUE
000008ac: DUP1
000008ad: ISZERO
000008ae: PUSH2 0x08b6
000008b1: JUMPI
000008b2: PUSH1 0x00
000008b4: DUP1
000008b5: REVERT
000008b6: JUMPDEST
000008b7: POP
000008b8: PUSH2 0x03eb
000008bb: PUSH1 0x04
000008bd: DUP1
000008be: CALLDATASIZE
000008bf: SUB
000008c0: PUSH1 0x20
000008c2: DUP2
000008c3: LT
000008c4: ISZERO
000008c5: PUSH2 0x08cd
000008c8: JUMPI
000008c9: PUSH1 0x00
000008cb: DUP1
000008cc: REVERT
000008cd: JUMPDEST
000008ce: POP
000008cf: CALLDATALOAD
000008d0: PUSH1 0x01
000008d2: PUSH1 0x01
000008d4: PUSH1 0xa0
000008d6: SHL
000008d7: SUB
000008d8: AND
000008d9: PUSH2 0x1b7a
000008dc: JUMP
000008dd: JUMPDEST
000008de: CALLVALUE
000008df: DUP1
000008e0: ISZERO
000008e1: PUSH2 0x08e9
000008e4: JUMPI
000008e5: PUSH1 0x00
000008e7: DUP1
000008e8: REVERT
000008e9: JUMPDEST
000008ea: POP
000008eb: PUSH2 0x04ca
000008ee: PUSH2 0x1b8c
000008f1: JUMP
000008f2: JUMPDEST
000008f3: CALLVALUE
000008f4: DUP1
000008f5: ISZERO
000008f6: PUSH2 0x08fe
000008f9: JUMPI
000008fa: PUSH1 0x00
000008fc: DUP1
000008fd: REVERT
000008fe: JUMPDEST
000008ff: POP
00000900: PUSH2 0x03eb
00000903: PUSH2 0x1b9b
00000906: JUMP
00000907: JUMPDEST
00000908: CALLVALUE
00000909: DUP1
0000090a: ISZERO
0000090b: PUSH2 0x0913
0000090e: JUMPI
0000090f: PUSH1 0x00
00000911: DUP1
00000912: REVERT
00000913: JUMPDEST
00000914: POP
00000915: PUSH2 0x03eb
00000918: PUSH2 0x1ba1
0000091b: JUMP
0000091c: JUMPDEST
0000091d: CALLVALUE
0000091e: DUP1
0000091f: ISZERO
00000920: PUSH2 0x0928
00000923: JUMPI
00000924: PUSH1 0x00
00000926: DUP1
00000927: REVERT
00000928: JUMPDEST
00000929: POP
0000092a: PUSH2 0x03eb
0000092d: PUSH1 0x04
0000092f: DUP1
00000930: CALLDATASIZE
00000931: SUB
00000932: PUSH1 0x40
00000934: DUP2
00000935: LT
00000936: ISZERO
00000937: PUSH2 0x093f
0000093a: JUMPI
0000093b: PUSH1 0x00
0000093d: DUP1
0000093e: REVERT
0000093f: JUMPDEST
00000940: POP
00000941: PUSH1 0x01
00000943: PUSH1 0x01
00000945: PUSH1 0xa0
00000947: SHL
00000948: SUB
00000949: DUP2
0000094a: CALLDATALOAD
0000094b: DUP2
0000094c: AND
0000094d: SWAP2
0000094e: PUSH1 0x20
00000950: ADD
00000951: CALLDATALOAD
00000952: AND
00000953: PUSH2 0x1ba7
00000956: JUMP
00000957: JUMPDEST
00000958: CALLVALUE
00000959: DUP1
0000095a: ISZERO
0000095b: PUSH2 0x0963
0000095e: JUMPI
0000095f: PUSH1 0x00
00000961: DUP1
00000962: REVERT
00000963: JUMPDEST
00000964: POP
00000965: PUSH2 0x04ca
00000968: PUSH2 0x1bd2
0000096b: JUMP
0000096c: JUMPDEST
0000096d: CALLVALUE
0000096e: DUP1
0000096f: ISZERO
00000970: PUSH2 0x0978
00000973: JUMPI
00000974: PUSH1 0x00
00000976: DUP1
00000977: REVERT
00000978: JUMPDEST
00000979: POP
0000097a: PUSH2 0x03eb
0000097d: PUSH2 0x1be1
00000980: JUMP
00000981: JUMPDEST
00000982: CALLVALUE
00000983: DUP1
00000984: ISZERO
00000985: PUSH2 0x098d
00000988: JUMPI
00000989: PUSH1 0x00
0000098b: DUP1
0000098c: REVERT
0000098d: JUMPDEST
0000098e: POP
0000098f: PUSH2 0x03eb
00000992: PUSH2 0x1c11
00000995: JUMP
00000996: JUMPDEST
00000997: CALLVALUE
00000998: DUP1
00000999: ISZERO
0000099a: PUSH2 0x09a2
0000099d: JUMPI
0000099e: PUSH1 0x00
000009a0: DUP1
000009a1: REVERT
000009a2: JUMPDEST
000009a3: POP
000009a4: PUSH2 0x03eb
000009a7: PUSH2 0x1c1e
000009aa: JUMP
000009ab: JUMPDEST
000009ac: CALLER
000009ad: PUSH1 0x00
000009af: DUP2
000009b0: DUP2
000009b1: MSTORE
000009b2: PUSH1 0x0f
000009b4: PUSH1 0x20
000009b6: MSTORE
000009b7: PUSH1 0x40
000009b9: SWAP1
000009ba: KECCAK256
000009bb: SLOAD
000009bc: PUSH1 0x02
000009be: GT
000009bf: ISZERO
000009c0: PUSH2 0x0a6c
000009c3: JUMPI
000009c4: PUSH1 0x02
000009c6: PUSH1 0x0d
000009c8: SLOAD
000009c9: DUP2
000009ca: PUSH2 0x09cf
000009cd: JUMPI
000009ce: INVALID
000009cf: JUMPDEST
000009d0: MOD
000009d1: PUSH1 0x01
000009d3: EQ
000009d4: ISZERO
000009d5: PUSH2 0x0a1c
000009d8: JUMPI
000009d9: PUSH2 0x09e1
000009dc: DUP2
000009dd: PUSH2 0x1c24
000009e0: JUMP
000009e1: JUMPDEST
000009e2: ISZERO
000009e3: PUSH2 0x0a1c
000009e6: JUMPI
000009e7: PUSH1 0x40
000009e9: DUP1
000009ea: MLOAD
000009eb: PUSH3 0x461bcd
000009ef: PUSH1 0xe5
000009f1: SHL
000009f2: DUP2
000009f3: MSTORE
000009f4: PUSH1 0x20
000009f6: PUSH1 0x04
000009f8: DUP3
000009f9: ADD
000009fa: MSTORE
000009fb: PUSH1 0x06
000009fd: PUSH1 0x24
000009ff: DUP3
00000a00: ADD
00000a01: MSTORE
00000a02: PUSH6 0x10b43ab6b0b7
00000a09: PUSH1 0xd1
00000a0b: SHL
00000a0c: PUSH1 0x44
00000a0e: DUP3
00000a0f: ADD
00000a10: MSTORE
00000a11: SWAP1
00000a12: MLOAD
00000a13: SWAP1
00000a14: DUP2
00000a15: SWAP1
00000a16: SUB
00000a17: PUSH1 0x64
00000a19: ADD
00000a1a: SWAP1
00000a1b: REVERT
00000a1c: JUMPDEST
00000a1d: PUSH1 0x02
00000a1f: PUSH1 0x0d
00000a21: SLOAD
00000a22: LT
00000a23: PUSH2 0x0a6c
00000a26: JUMPI
00000a27: PUSH1 0x01
00000a29: PUSH1 0x01
00000a2b: PUSH1 0xa0
00000a2d: SHL
00000a2e: SUB
00000a2f: DUP2
00000a30: AND
00000a31: ORIGIN
00000a32: EQ
00000a33: PUSH2 0x0a6c
00000a36: JUMPI
00000a37: PUSH1 0x40
00000a39: DUP1
00000a3a: MLOAD
00000a3b: PUSH3 0x461bcd
00000a3f: PUSH1 0xe5
00000a41: SHL
00000a42: DUP2
00000a43: MSTORE
00000a44: PUSH1 0x20
00000a46: PUSH1 0x04
00000a48: DUP3
00000a49: ADD
00000a4a: MSTORE
00000a4b: PUSH1 0x06
00000a4d: PUSH1 0x24
00000a4f: DUP3
00000a50: ADD
00000a51: MSTORE
00000a52: PUSH6 0x10b43ab6b0b7
00000a59: PUSH1 0xd1
00000a5b: SHL
00000a5c: PUSH1 0x44
00000a5e: DUP3
00000a5f: ADD
00000a60: MSTORE
00000a61: SWAP1
00000a62: MLOAD
00000a63: SWAP1
00000a64: DUP2
00000a65: SWAP1
00000a66: SUB
00000a67: PUSH1 0x64
00000a69: ADD
00000a6a: SWAP1
00000a6b: REVERT
00000a6c: JUMPDEST
00000a6d: PUSH1 0x00
00000a6f: PUSH1 0x03
00000a71: SLOAD
00000a72: GT
00000a73: DUP1
00000a74: PUSH2 0x0a8a
00000a77: JUMPI
00000a78: POP
00000a79: PUSH1 0x10
00000a7b: SLOAD
00000a7c: PUSH1 0x01
00000a7e: PUSH1 0x01
00000a80: PUSH1 0xa0
00000a82: SHL
00000a83: SUB
00000a84: DUP3
00000a85: DUP2
00000a86: AND
00000a87: SWAP2
00000a88: AND
00000a89: EQ
00000a8a: JUMPDEST
00000a8b: PUSH2 0x0ac5
00000a8e: JUMPI
00000a8f: PUSH1 0x40
00000a91: DUP1
00000a92: MLOAD
00000a93: PUSH3 0x461bcd
00000a97: PUSH1 0xe5
00000a99: SHL
00000a9a: DUP2
00000a9b: MSTORE
00000a9c: PUSH1 0x20
00000a9e: PUSH1 0x04
00000aa0: DUP3
00000aa1: ADD
00000aa2: MSTORE
00000aa3: PUSH1 0x07
00000aa5: PUSH1 0x24
00000aa7: DUP3
00000aa8: ADD
00000aa9: MSTORE
00000aaa: PUSH7 0x085b585c9ad95d
00000ab2: PUSH1 0xca
00000ab4: SHL
00000ab5: PUSH1 0x44
00000ab7: DUP3
00000ab8: ADD
00000ab9: MSTORE
00000aba: SWAP1
00000abb: MLOAD
00000abc: SWAP1
00000abd: DUP2
00000abe: SWAP1
00000abf: SUB
00000ac0: PUSH1 0x64
00000ac2: ADD
00000ac3: SWAP1
00000ac4: REVERT
00000ac5: JUMPDEST
00000ac6: PUSH1 0x00
00000ac8: CALLVALUE
00000ac9: GT
00000aca: PUSH2 0x0b03
00000acd: JUMPI
00000ace: PUSH1 0x40
00000ad0: DUP1
00000ad1: MLOAD
00000ad2: PUSH3 0x461bcd
00000ad6: PUSH1 0xe5
00000ad8: SHL
00000ad9: DUP2
00000ada: MSTORE
00000adb: PUSH1 0x20
00000add: PUSH1 0x04
00000adf: DUP1
00000ae0: DUP4
00000ae1: ADD
00000ae2: SWAP2
00000ae3: SWAP1
00000ae4: SWAP2
00000ae5: MSTORE
00000ae6: PUSH1 0x24
00000ae8: DUP3
00000ae9: ADD
00000aea: MSTORE
00000aeb: PUSH4 0x042cae8d
00000af0: PUSH1 0xe3
00000af2: SHL
00000af3: PUSH1 0x44
00000af5: DUP3
00000af6: ADD
00000af7: MSTORE
00000af8: SWAP1
00000af9: MLOAD
00000afa: SWAP1
00000afb: DUP2
00000afc: SWAP1
00000afd: SUB
00000afe: PUSH1 0x64
00000b00: ADD
00000b01: SWAP1
00000b02: REVERT
00000b03: JUMPDEST
00000b04: PUSH1 0x00
00000b06: DUP4
00000b07: GT
00000b08: PUSH2 0x0b44
00000b0b: JUMPI
00000b0c: PUSH1 0x40
00000b0e: DUP1
00000b0f: MLOAD
00000b10: PUSH3 0x461bcd
00000b14: PUSH1 0xe5
00000b16: SHL
00000b17: DUP2
00000b18: MSTORE
00000b19: PUSH1 0x20
00000b1b: PUSH1 0x04
00000b1d: DUP3
00000b1e: ADD
00000b1f: MSTORE
00000b20: PUSH1 0x09
00000b22: PUSH1 0x24
00000b24: DUP3
00000b25: ADD
00000b26: MSTORE
00000b27: PUSH9 0x10b6b4b72a37b5b2b7
00000b31: PUSH1 0xb9
00000b33: SHL
00000b34: PUSH1 0x44
00000b36: DUP3
00000b37: ADD
00000b38: MSTORE
00000b39: SWAP1
00000b3a: MLOAD
00000b3b: SWAP1
00000b3c: DUP2
00000b3d: SWAP1
00000b3e: SUB
00000b3f: PUSH1 0x64
00000b41: ADD
00000b42: SWAP1
00000b43: REVERT
00000b44: JUMPDEST
00000b45: DUP2
00000b46: ISZERO
00000b47: DUP1
00000b48: PUSH2 0x0b51
00000b4b: JUMPI
00000b4c: POP
00000b4d: DUP2
00000b4e: TIMESTAMP
00000b4f: GT
00000b50: ISZERO
00000b51: JUMPDEST
00000b52: PUSH2 0x0b8c
00000b55: JUMPI
00000b56: PUSH1 0x40
00000b58: DUP1
00000b59: MLOAD
00000b5a: PUSH3 0x461bcd
00000b5e: PUSH1 0xe5
00000b60: SHL
00000b61: DUP2
00000b62: MSTORE
00000b63: PUSH1 0x20
00000b65: PUSH1 0x04
00000b67: DUP3
00000b68: ADD
00000b69: MSTORE
00000b6a: PUSH1 0x07
00000b6c: PUSH1 0x24
00000b6e: DUP3
00000b6f: ADD
00000b70: MSTORE
00000b71: PUSH7 0x21657870697265
00000b79: PUSH1 0xc8
00000b7b: SHL
00000b7c: PUSH1 0x44
00000b7e: DUP3
00000b7f: ADD
00000b80: MSTORE
00000b81: SWAP1
00000b82: MLOAD
00000b83: SWAP1
00000b84: DUP2
00000b85: SWAP1
00000b86: SUB
00000b87: PUSH1 0x64
00000b89: ADD
00000b8a: SWAP1
00000b8b: REVERT
00000b8c: JUMPDEST
00000b8d: PUSH1 0x04
00000b8f: SLOAD
00000b90: ISZERO
00000b91: DUP1
00000b92: PUSH2 0x0b9d
00000b95: JUMPI
00000b96: POP
00000b97: PUSH1 0x04
00000b99: SLOAD
00000b9a: CALLVALUE
00000b9b: GT
00000b9c: ISZERO
00000b9d: JUMPDEST
00000b9e: PUSH2 0x0bda
00000ba1: JUMPI
00000ba2: PUSH1 0x40
00000ba4: DUP1
00000ba5: MLOAD
00000ba6: PUSH3 0x461bcd
00000baa: PUSH1 0xe5
00000bac: SHL
00000bad: DUP2
00000bae: MSTORE
00000baf: PUSH1 0x20
00000bb1: PUSH1 0x04
00000bb3: DUP3
00000bb4: ADD
00000bb5: MSTORE
00000bb6: PUSH1 0x09
00000bb8: PUSH1 0x24
00000bba: DUP3
00000bbb: ADD
00000bbc: MSTORE
00000bbd: PUSH9 0x08595d1a131a5b5a5d
00000bc7: PUSH1 0xba
00000bc9: SHL
00000bca: PUSH1 0x44
00000bcc: DUP3
00000bcd: ADD
00000bce: MSTORE
00000bcf: SWAP1
00000bd0: MLOAD
00000bd1: SWAP1
00000bd2: DUP2
00000bd3: SWAP1
00000bd4: SUB
00000bd5: PUSH1 0x64
00000bd7: ADD
00000bd8: SWAP1
00000bd9: REVERT
00000bda: JUMPDEST
00000bdb: PUSH1 0x12
00000bdd: SLOAD
00000bde: PUSH1 0x00
00000be0: SWAP1
00000be1: PUSH2 0x0c09
00000be4: SWAP1
00000be5: PUSH2 0x0bfd
00000be8: PUSH9 0x71d75ab9b920500000
00000bf2: SELFBALANCE
00000bf3: PUSH4 0xffffffff
00000bf8: PUSH2 0x1c60
00000bfb: AND
00000bfc: JUMP
00000bfd: JUMPDEST
00000bfe: SWAP1
00000bff: PUSH4 0xffffffff
00000c04: PUSH2 0x1cc1
00000c07: AND
00000c08: JUMP
00000c09: JUMPDEST
00000c0a: SWAP1
00000c0b: POP
00000c0c: PUSH1 0x00
00000c0e: PUSH2 0x0c1d
00000c11: DUP3
00000c12: CALLVALUE
00000c13: PUSH4 0xffffffff
00000c18: PUSH2 0x1cc1
00000c1b: AND
00000c1c: JUMP
00000c1d: JUMPDEST
00000c1e: PUSH20 0x1111111111111111111111111111111111111111
00000c33: PUSH1 0x00
00000c35: SWAP1
00000c36: DUP2
00000c37: MSTORE
00000c38: PUSH1 0x13
00000c3a: PUSH1 0x20
00000c3c: MSTORE
00000c3d: PUSH1 0x00
00000c3f: DUP1
00000c40: MLOAD
00000c41: PUSH1 0x20
00000c43: PUSH2 0x25be
00000c46: DUP4
00000c47: CODECOPY
00000c48: DUP2
00000c49: MLOAD
00000c4a: SWAP2
00000c4b: MSTORE
00000c4c: SLOAD
00000c4d: SWAP2
00000c4e: SWAP3
00000c4f: POP
00000c50: PUSH2 0x0c82
00000c53: DUP5
00000c54: PUSH2 0x0c76
00000c57: PUSH1 0x02
00000c59: DUP3
00000c5a: DIV
00000c5b: PUSH2 0x0c6a
00000c5e: DUP8
00000c5f: DUP8
00000c60: PUSH4 0xffffffff
00000c65: PUSH2 0x1d03
00000c68: AND
00000c69: JUMP
00000c6a: JUMPDEST
00000c6b: SWAP1
00000c6c: PUSH4 0xffffffff
00000c71: PUSH2 0x1c60
00000c74: AND
00000c75: JUMP
00000c76: JUMPDEST
00000c77: SWAP1
00000c78: PUSH4 0xffffffff
00000c7d: PUSH2 0x1d5c
00000c80: AND
00000c81: JUMP
00000c82: JUMPDEST
00000c83: SWAP1
00000c84: POP
00000c85: PUSH1 0x00
00000c87: PUSH2 0x0c96
00000c8a: DUP4
00000c8b: DUP4
00000c8c: PUSH4 0xffffffff
00000c91: PUSH2 0x1cc1
00000c94: AND
00000c95: JUMP
00000c96: JUMPDEST
00000c97: SWAP1
00000c98: POP
00000c99: PUSH1 0x00
00000c9b: DUP2
00000c9c: GT
00000c9d: PUSH2 0x0cd9
00000ca0: JUMPI
00000ca1: PUSH1 0x40
00000ca3: DUP1
00000ca4: MLOAD
00000ca5: PUSH3 0x461bcd
00000ca9: PUSH1 0xe5
00000cab: SHL
00000cac: DUP2
00000cad: MSTORE
00000cae: PUSH1 0x20
00000cb0: PUSH1 0x04
00000cb2: DUP3
00000cb3: ADD
00000cb4: MSTORE
00000cb5: PUSH1 0x09
00000cb7: PUSH1 0x24
00000cb9: DUP3
00000cba: ADD
00000cbb: MSTORE
00000cbc: PUSH9 0x10b7baba2a37b5b2b7
00000cc6: PUSH1 0xb9
00000cc8: SHL
00000cc9: PUSH1 0x44
00000ccb: DUP3
00000ccc: ADD
00000ccd: MSTORE
00000cce: SWAP1
00000ccf: MLOAD
00000cd0: SWAP1
00000cd1: DUP2
00000cd2: SWAP1
00000cd3: SUB
00000cd4: PUSH1 0x64
00000cd6: ADD
00000cd7: SWAP1
00000cd8: REVERT
00000cd9: JUMPDEST
00000cda: DUP8
00000cdb: DUP2
00000cdc: LT
00000cdd: ISZERO
00000cde: PUSH2 0x0d18
00000ce1: JUMPI
00000ce2: PUSH1 0x40
00000ce4: MLOAD
00000ce5: PUSH3 0x461bcd
00000ce9: PUSH1 0xe5
00000ceb: SHL
00000cec: DUP2
00000ced: MSTORE
00000cee: PUSH1 0x04
00000cf0: ADD
00000cf1: DUP1
00000cf2: DUP1
00000cf3: PUSH1 0x20
00000cf5: ADD
00000cf6: DUP3
00000cf7: DUP2
00000cf8: SUB
00000cf9: DUP3
00000cfa: MSTORE
00000cfb: PUSH1 0x26
00000cfd: DUP2
00000cfe: MSTORE
00000cff: PUSH1 0x20
00000d01: ADD
00000d02: DUP1
00000d03: PUSH2 0x25de
00000d06: PUSH1 0x26
00000d08: SWAP2
00000d09: CODECOPY
00000d0a: PUSH1 0x40
00000d0c: ADD
00000d0d: SWAP2
00000d0e: POP
00000d0f: POP
00000d10: PUSH1 0x40
00000d12: MLOAD
00000d13: DUP1
00000d14: SWAP2
00000d15: SUB
00000d16: SWAP1
00000d17: REVERT
00000d18: JUMPDEST
00000d19: PUSH1 0x00
00000d1b: PUSH1 0x06
00000d1d: SLOAD
00000d1e: GT
00000d1f: DUP1
00000d20: ISZERO
00000d21: PUSH2 0x0d34
00000d24: JUMPI
00000d25: POP
00000d26: PUSH1 0x05
00000d28: SLOAD
00000d29: PUSH1 0x01
00000d2b: PUSH1 0x01
00000d2d: PUSH1 0xa0
00000d2f: SHL
00000d30: SUB
00000d31: AND
00000d32: ISZERO
00000d33: ISZERO
00000d34: JUMPDEST
00000d35: ISZERO
00000d36: PUSH2 0x0e6a
00000d39: JUMPI
00000d3a: PUSH1 0x05
00000d3c: SLOAD
00000d3d: PUSH1 0x40
00000d3f: DUP1
00000d40: MLOAD
00000d41: PUSH4 0x70a08231
00000d46: PUSH1 0xe0
00000d48: SHL
00000d49: DUP2
00000d4a: MSTORE
00000d4b: PUSH1 0x01
00000d4d: PUSH1 0x01
00000d4f: PUSH1 0xa0
00000d51: SHL
00000d52: SUB
00000d53: DUP10
00000d54: DUP2
00000d55: AND
00000d56: PUSH1 0x04
00000d58: DUP4
00000d59: ADD
00000d5a: MSTORE
00000d5b: SWAP2
00000d5c: MLOAD
00000d5d: PUSH1 0x00
00000d5f: SWAP4
00000d60: SWAP3
00000d61: SWAP1
00000d62: SWAP3
00000d63: AND
00000d64: SWAP2
00000d65: PUSH4 0x70a08231
00000d6a: SWAP2
00000d6b: PUSH1 0x24
00000d6d: DUP1
00000d6e: DUP3
00000d6f: ADD
00000d70: SWAP3
00000d71: PUSH1 0x20
00000d73: SWAP3
00000d74: SWAP1
00000d75: SWAP2
00000d76: SWAP1
00000d77: DUP3
00000d78: SWAP1
00000d79: SUB
00000d7a: ADD
00000d7b: DUP2
00000d7c: DUP7
00000d7d: DUP1
00000d7e: EXTCODESIZE
00000d7f: ISZERO
00000d80: DUP1
00000d81: ISZERO
00000d82: PUSH2 0x0d8a
00000d85: JUMPI
00000d86: PUSH1 0x00
00000d88: DUP1
00000d89: REVERT
00000d8a: JUMPDEST
00000d8b: POP
00000d8c: GAS
00000d8d: STATICCALL
00000d8e: ISZERO
00000d8f: DUP1
00000d90: ISZERO
00000d91: PUSH2 0x0d9e
00000d94: JUMPI
00000d95: RETURNDATASIZE
00000d96: PUSH1 0x00
00000d98: DUP1
00000d99: RETURNDATACOPY
00000d9a: RETURNDATASIZE
00000d9b: PUSH1 0x00
00000d9d: REVERT
00000d9e: JUMPDEST
00000d9f: POP
00000da0: POP
00000da1: POP
00000da2: POP
00000da3: PUSH1 0x40
00000da5: MLOAD
00000da6: RETURNDATASIZE
00000da7: PUSH1 0x20
00000da9: DUP2
00000daa: LT
00000dab: ISZERO
00000dac: PUSH2 0x0db4
00000daf: JUMPI
00000db0: PUSH1 0x00
00000db2: DUP1
00000db3: REVERT
00000db4: JUMPDEST
00000db5: POP
00000db6: MLOAD
00000db7: PUSH1 0x06
00000db9: SLOAD
00000dba: SWAP1
00000dbb: SWAP2
00000dbc: POP
00000dbd: PUSH1 0x00
00000dbf: SWAP1
00000dc0: PUSH2 0x0dd8
00000dc3: SWAP1
00000dc4: PUSH2 0x2710
00000dc7: SWAP1
00000dc8: PUSH2 0x0c76
00000dcb: SWAP1
00000dcc: DUP6
00000dcd: SWAP1
00000dce: PUSH4 0xffffffff
00000dd3: PUSH2 0x1d03
00000dd6: AND
00000dd7: JUMP
00000dd8: JUMPDEST
00000dd9: SWAP1
00000dda: POP
00000ddb: PUSH1 0x07
00000ddd: SLOAD
00000dde: DUP2
00000ddf: LT
00000de0: ISZERO
00000de1: PUSH2 0x0de9
00000de4: JUMPI
00000de5: POP
00000de6: PUSH1 0x07
00000de8: SLOAD
00000de9: JUMPDEST
00000dea: PUSH1 0x01
00000dec: PUSH1 0x01
00000dee: PUSH1 0xa0
00000df0: SHL
00000df1: SUB
00000df2: DUP9
00000df3: AND
00000df4: PUSH1 0x00
00000df6: SWAP1
00000df7: DUP2
00000df8: MSTORE
00000df9: PUSH1 0x13
00000dfb: PUSH1 0x20
00000dfd: MSTORE
00000dfe: PUSH1 0x40
00000e00: SWAP1
00000e01: KECCAK256
00000e02: SLOAD
00000e03: DUP2
00000e04: SWAP1
00000e05: PUSH2 0x0e14
00000e08: SWAP1
00000e09: DUP6
00000e0a: PUSH4 0xffffffff
00000e0f: PUSH2 0x1c60
00000e12: AND
00000e13: JUMP
00000e14: JUMPDEST
00000e15: GT
00000e16: ISZERO
00000e17: PUSH2 0x0e67
00000e1a: JUMPI
00000e1b: PUSH1 0x40
00000e1d: DUP1
00000e1e: MLOAD
00000e1f: PUSH3 0x461bcd
00000e23: PUSH1 0xe5
00000e25: SHL
00000e26: DUP2
00000e27: MSTORE
00000e28: PUSH1 0x20
00000e2a: PUSH1 0x04
00000e2c: DUP3
00000e2d: ADD
00000e2e: MSTORE
00000e2f: PUSH1 0x1a
00000e31: PUSH1 0x24
00000e33: DUP3
00000e34: ADD
00000e35: MSTORE
00000e36: PUSH32 0x216e6565642d6d6f72652d77686974656c6973742d746f6b656e000000000000
00000e57: PUSH1 0x44
00000e59: DUP3
00000e5a: ADD
00000e5b: MSTORE
00000e5c: SWAP1
00000e5d: MLOAD
00000e5e: SWAP1
00000e5f: DUP2
00000e60: SWAP1
00000e61: SUB
00000e62: PUSH1 0x64
00000e64: ADD
00000e65: SWAP1
00000e66: REVERT
00000e67: JUMPDEST
00000e68: POP
00000e69: POP
00000e6a: JUMPDEST
00000e6b: PUSH2 0x0e89
00000e6e: PUSH20 0x1111111111111111111111111111111111111111
00000e83: DUP8
00000e84: DUP4
00000e85: PUSH2 0x1d9e
00000e88: JUMP
00000e89: JUMPDEST
00000e8a: PUSH1 0x40
00000e8c: DUP1
00000e8d: MLOAD
00000e8e: DUP3
00000e8f: DUP2
00000e90: MSTORE
00000e91: CALLVALUE
00000e92: PUSH1 0x20
00000e94: DUP3
00000e95: ADD
00000e96: MSTORE
00000e97: DUP2
00000e98: MLOAD
00000e99: PUSH1 0x01
00000e9b: PUSH1 0x01
00000e9d: PUSH1 0xa0
00000e9f: SHL
00000ea0: SUB
00000ea1: DUP10
00000ea2: AND
00000ea3: SWAP3
00000ea4: PUSH32 0xf6f342132c7de5e5a1e99c8efae544c94731f3ff093f5c3c97c6973d9415cdfb
00000ec5: SWAP3
00000ec6: DUP3
00000ec7: SWAP1
00000ec8: SUB
00000ec9: ADD
00000eca: SWAP1
00000ecb: LOG2
00000ecc: POP
00000ecd: POP
00000ece: POP
00000ecf: POP
00000ed0: POP
00000ed1: POP
00000ed2: POP
00000ed3: POP
00000ed4: JUMP
00000ed5: JUMPDEST
00000ed6: PUSH1 0x00
00000ed8: DUP1
00000ed9: SLOAD
00000eda: PUSH1 0x40
00000edc: DUP1
00000edd: MLOAD
00000ede: PUSH1 0x20
00000ee0: PUSH1 0x1f
00000ee2: PUSH1 0x02
00000ee4: PUSH1 0x00
00000ee6: NOT
00000ee7: PUSH2 0x0100
00000eea: PUSH1 0x01
00000eec: DUP9
00000eed: AND
00000eee: ISZERO
00000eef: MUL
00000ef0: ADD
00000ef1: SWAP1
00000ef2: SWAP6
00000ef3: AND
00000ef4: SWAP5
00000ef5: SWAP1
00000ef6: SWAP5
00000ef7: DIV
00000ef8: SWAP4
00000ef9: DUP5
00000efa: ADD
00000efb: DUP2
00000efc: SWAP1
00000efd: DIV
00000efe: DUP2
00000eff: MUL
00000f00: DUP3
00000f01: ADD
00000f02: DUP2
00000f03: ADD
00000f04: SWAP1
00000f05: SWAP3
00000f06: MSTORE
00000f07: DUP3
00000f08: DUP2
00000f09: MSTORE
00000f0a: PUSH1 0x60
00000f0c: SWAP4
00000f0d: SWAP1
00000f0e: SWAP3
00000f0f: SWAP1
00000f10: SWAP2
00000f11: DUP4
00000f12: ADD
00000f13: DUP3
00000f14: DUP3
00000f15: DUP1
00000f16: ISZERO
00000f17: PUSH2 0x0f61
00000f1a: JUMPI
00000f1b: DUP1
00000f1c: PUSH1 0x1f
00000f1e: LT
00000f1f: PUSH2 0x0f36
00000f22: JUMPI
00000f23: PUSH2 0x0100
00000f26: DUP1
00000f27: DUP4
00000f28: SLOAD
00000f29: DIV
00000f2a: MUL
00000f2b: DUP4
00000f2c: MSTORE
00000f2d: SWAP2
00000f2e: PUSH1 0x20
00000f30: ADD
00000f31: SWAP2
00000f32: PUSH2 0x0f61
00000f35: JUMP
00000f36: JUMPDEST
00000f37: DUP3
00000f38: ADD
00000f39: SWAP2
00000f3a: SWAP1
00000f3b: PUSH1 0x00
00000f3d: MSTORE
00000f3e: PUSH1 0x20
00000f40: PUSH1 0x00
00000f42: KECCAK256
00000f43: SWAP1
00000f44: JUMPDEST
00000f45: DUP2
00000f46: SLOAD
00000f47: DUP2
00000f48: MSTORE
00000f49: SWAP1
00000f4a: PUSH1 0x01
00000f4c: ADD
00000f4d: SWAP1
00000f4e: PUSH1 0x20
00000f50: ADD
00000f51: DUP1
00000f52: DUP4
00000f53: GT
00000f54: PUSH2 0x0f44
00000f57: JUMPI
00000f58: DUP3
00000f59: SWAP1
00000f5a: SUB
00000f5b: PUSH1 0x1f
00000f5d: AND
00000f5e: DUP3
00000f5f: ADD
00000f60: SWAP2
00000f61: JUMPDEST
00000f62: POP
00000f63: POP
00000f64: POP
00000f65: POP
00000f66: POP
00000f67: SWAP1
00000f68: POP
00000f69: SWAP1
00000f6a: JUMP
00000f6b: JUMPDEST
00000f6c: PUSH1 0x00
00000f6e: PUSH2 0x0f7f
00000f71: PUSH2 0x0f78
00000f74: PUSH2 0x1e60
00000f77: JUMP
00000f78: JUMPDEST
00000f79: DUP5
00000f7a: DUP5
00000f7b: PUSH2 0x1e64
00000f7e: JUMP
00000f7f: JUMPDEST
00000f80: POP
00000f81: PUSH1 0x01
00000f83: JUMPDEST
00000f84: SWAP3
00000f85: SWAP2
00000f86: POP
00000f87: POP
00000f88: JUMP
00000f89: JUMPDEST
00000f8a: PUSH1 0x10
00000f8c: SLOAD
00000f8d: PUSH1 0x01
00000f8f: PUSH1 0x01
00000f91: PUSH1 0xa0
00000f93: SHL
00000f94: SUB
00000f95: AND
00000f96: CALLER
00000f97: EQ
00000f98: PUSH2 0x0fd1
00000f9b: JUMPI
00000f9c: PUSH1 0x40
00000f9e: DUP1
00000f9f: MLOAD
00000fa0: PUSH3 0x461bcd
00000fa4: PUSH1 0xe5
00000fa6: SHL
00000fa7: DUP2
00000fa8: MSTORE
00000fa9: PUSH1 0x20
00000fab: PUSH1 0x04
00000fad: DUP1
00000fae: DUP4
00000faf: ADD
00000fb0: SWAP2
00000fb1: SWAP1
00000fb2: SWAP2
00000fb3: MSTORE
00000fb4: PUSH1 0x24
00000fb6: DUP3
00000fb7: ADD
00000fb8: MSTORE
00000fb9: PUSH4 0x10b3b7bb
00000fbe: PUSH1 0xe1
00000fc0: SHL
00000fc1: PUSH1 0x44
00000fc3: DUP3
00000fc4: ADD
00000fc5: MSTORE
00000fc6: SWAP1
00000fc7: MLOAD
00000fc8: SWAP1
00000fc9: DUP2
00000fca: SWAP1
00000fcb: SUB
00000fcc: PUSH1 0x64
00000fce: ADD
00000fcf: SWAP1
00000fd0: REVERT
00000fd1: JUMPDEST
00000fd2: PUSH1 0x07
00000fd4: SSTORE
00000fd5: JUMP
00000fd6: JUMPDEST
00000fd7: PUSH1 0x10
00000fd9: SLOAD
00000fda: PUSH1 0x01
00000fdc: PUSH1 0x01
00000fde: PUSH1 0xa0
00000fe0: SHL
00000fe1: SUB
00000fe2: AND
00000fe3: CALLER
00000fe4: EQ
00000fe5: PUSH2 0x101e
00000fe8: JUMPI
00000fe9: PUSH1 0x40
00000feb: DUP1
00000fec: MLOAD
00000fed: PUSH3 0x461bcd
00000ff1: PUSH1 0xe5
00000ff3: SHL
00000ff4: DUP2
00000ff5: MSTORE
00000ff6: PUSH1 0x20
00000ff8: PUSH1 0x04
00000ffa: DUP1
00000ffb: DUP4
00000ffc: ADD
00000ffd: SWAP2
00000ffe: SWAP1
00000fff: SWAP2
00001000: MSTORE
00001001: PUSH1 0x24
00001003: DUP3
00001004: ADD
00001005: MSTORE
00001006: PUSH4 0x10b3b7bb
0000100b: PUSH1 0xe1
0000100d: SHL
0000100e: PUSH1 0x44
00001010: DUP3
00001011: ADD
00001012: MSTORE
00001013: SWAP1
00001014: MLOAD
00001015: SWAP1
00001016: DUP2
00001017: SWAP1
00001018: SUB
00001019: PUSH1 0x64
0000101b: ADD
0000101c: SWAP1
0000101d: REVERT
0000101e: JUMPDEST
0000101f: PUSH1 0x05
00001021: DUP1
00001022: SLOAD
00001023: PUSH1 0x01
00001025: PUSH1 0x01
00001027: PUSH1 0xa0
00001029: SHL
0000102a: SUB
0000102b: NOT
0000102c: AND
0000102d: PUSH1 0x01
0000102f: PUSH1 0x01
00001031: PUSH1 0xa0
00001033: SHL
00001034: SUB
00001035: SWAP4
00001036: SWAP1
00001037: SWAP4
00001038: AND
00001039: SWAP3
0000103a: SWAP1
0000103b: SWAP3
0000103c: OR
0000103d: SWAP1
0000103e: SWAP2
0000103f: SSTORE
00001040: PUSH1 0x06
00001042: SSTORE
00001043: JUMP
00001044: JUMPDEST
00001045: PUSH1 0x15
00001047: SLOAD
00001048: SWAP1
00001049: JUMP
0000104a: JUMPDEST
0000104b: PUSH1 0x07
0000104d: SLOAD
0000104e: DUP2
0000104f: JUMP
00001050: JUMPDEST
00001051: CALLER
00001052: PUSH1 0x00
00001054: DUP2
00001055: DUP2
00001056: MSTORE
00001057: PUSH1 0x0f
00001059: PUSH1 0x20
0000105b: MSTORE
0000105c: PUSH1 0x40
0000105e: SWAP1
0000105f: KECCAK256
00001060: SLOAD
00001061: PUSH1 0x01
00001063: AND
00001064: PUSH2 0x1110
00001067: JUMPI
00001068: PUSH1 0x02
0000106a: PUSH1 0x0e
0000106c: SLOAD
0000106d: DUP2
0000106e: PUSH2 0x1073
00001071: JUMPI
00001072: INVALID
00001073: JUMPDEST
00001074: MOD
00001075: PUSH1 0x01
00001077: EQ
00001078: ISZERO
00001079: PUSH2 0x10c0
0000107c: JUMPI
0000107d: PUSH2 0x1085
00001080: DUP2
00001081: PUSH2 0x1c24
00001084: JUMP
00001085: JUMPDEST
00001086: ISZERO
00001087: PUSH2 0x10c0
0000108a: JUMPI
0000108b: PUSH1 0x40
0000108d: DUP1
0000108e: MLOAD
0000108f: PUSH3 0x461bcd
00001093: PUSH1 0xe5
00001095: SHL
00001096: DUP2
00001097: MSTORE
00001098: PUSH1 0x20
0000109a: PUSH1 0x04
0000109c: DUP3
0000109d: ADD
0000109e: MSTORE
0000109f: PUSH1 0x06
000010a1: PUSH1 0x24
000010a3: DUP3
000010a4: ADD
000010a5: MSTORE
000010a6: PUSH6 0x10b43ab6b0b7
000010ad: PUSH1 0xd1
000010af: SHL
000010b0: PUSH1 0x44
000010b2: DUP3
000010b3: ADD
000010b4: MSTORE
000010b5: SWAP1
000010b6: MLOAD
000010b7: SWAP1
000010b8: DUP2
000010b9: SWAP1
000010ba: SUB
000010bb: PUSH1 0x64
000010bd: ADD
000010be: SWAP1
000010bf: REVERT
000010c0: JUMPDEST
000010c1: PUSH1 0x02
000010c3: PUSH1 0x0e
000010c5: SLOAD
000010c6: LT
000010c7: PUSH2 0x1110
000010ca: JUMPI
000010cb: PUSH1 0x01
000010cd: PUSH1 0x01
000010cf: PUSH1 0xa0
000010d1: SHL
000010d2: SUB
000010d3: DUP2
000010d4: AND
000010d5: ORIGIN
000010d6: EQ
000010d7: PUSH2 0x1110
000010da: JUMPI
000010db: PUSH1 0x40
000010dd: DUP1
000010de: MLOAD
000010df: PUSH3 0x461bcd
000010e3: PUSH1 0xe5
000010e5: SHL
000010e6: DUP2
000010e7: MSTORE
000010e8: PUSH1 0x20
000010ea: PUSH1 0x04
000010ec: DUP3
000010ed: ADD
000010ee: MSTORE
000010ef: PUSH1 0x06
000010f1: PUSH1 0x24
000010f3: DUP3
000010f4: ADD
000010f5: MSTORE
000010f6: PUSH6 0x10b43ab6b0b7
000010fd: PUSH1 0xd1
000010ff: SHL
00001100: PUSH1 0x44
00001102: DUP3
00001103: ADD
00001104: MSTORE
00001105: SWAP1
00001106: MLOAD
00001107: SWAP1
00001108: DUP2
00001109: SWAP1
0000110a: SUB
0000110b: PUSH1 0x64
0000110d: ADD
0000110e: SWAP1
0000110f: REVERT
00001110: JUMPDEST
00001111: PUSH1 0x00
00001113: DUP5
00001114: GT
00001115: PUSH2 0x114e
00001118: JUMPI
00001119: PUSH1 0x40
0000111b: DUP1
0000111c: MLOAD
0000111d: PUSH3 0x461bcd
00001121: PUSH1 0xe5
00001123: SHL
00001124: DUP2
00001125: MSTORE
00001126: PUSH1 0x20
00001128: PUSH1 0x04
0000112a: DUP3
0000112b: ADD
0000112c: MSTORE
0000112d: PUSH1 0x06
0000112f: PUSH1 0x24
00001131: DUP3
00001132: ADD
00001133: MSTORE
00001134: PUSH6 0x10ba37b5b2b7
0000113b: PUSH1 0xd1
0000113d: SHL
0000113e: PUSH1 0x44
00001140: DUP3
00001141: ADD
00001142: MSTORE
00001143: SWAP1
00001144: MLOAD
00001145: SWAP1
00001146: DUP2
00001147: SWAP1
00001148: SUB
00001149: PUSH1 0x64
0000114b: ADD
0000114c: SWAP1
0000114d: REVERT
0000114e: JUMPDEST
0000114f: PUSH1 0x00
00001151: DUP4
00001152: GT
00001153: PUSH2 0x118d
00001156: JUMPI
00001157: PUSH1 0x40
00001159: DUP1
0000115a: MLOAD
0000115b: PUSH3 0x461bcd
0000115f: PUSH1 0xe5
00001161: SHL
00001162: DUP2
00001163: MSTORE
00001164: PUSH1 0x20
00001166: PUSH1 0x04
00001168: DUP3
00001169: ADD
0000116a: MSTORE
0000116b: PUSH1 0x07
0000116d: PUSH1 0x24
0000116f: DUP3
00001170: ADD
00001171: MSTORE
00001172: PUSH7 0x042dad2dc8ae8d
0000117a: PUSH1 0xcb
0000117c: SHL
0000117d: PUSH1 0x44
0000117f: DUP3
00001180: ADD
00001181: MSTORE
00001182: SWAP1
00001183: MLOAD
00001184: SWAP1
00001185: DUP2
00001186: SWAP1
00001187: SUB
00001188: PUSH1 0x64
0000118a: ADD
0000118b: SWAP1
0000118c: REVERT
0000118d: JUMPDEST
0000118e: DUP2
0000118f: ISZERO
00001190: DUP1
00001191: PUSH2 0x119a
00001194: JUMPI
00001195: POP
00001196: DUP2
00001197: TIMESTAMP
00001198: GT
00001199: ISZERO
0000119a: JUMPDEST
0000119b: PUSH2 0x11d5
0000119e: JUMPI
0000119f: PUSH1 0x40
000011a1: DUP1
000011a2: MLOAD
000011a3: PUSH3 0x461bcd
000011a7: PUSH1 0xe5
000011a9: SHL
000011aa: DUP2
000011ab: MSTORE
000011ac: PUSH1 0x20
000011ae: PUSH1 0x04
000011b0: DUP3
000011b1: ADD
000011b2: MSTORE
000011b3: PUSH1 0x07
000011b5: PUSH1 0x24
000011b7: DUP3
000011b8: ADD
000011b9: MSTORE
000011ba: PUSH7 0x21657870697265
000011c2: PUSH1 0xc8
000011c4: SHL
000011c5: PUSH1 0x44
000011c7: DUP3
000011c8: ADD
000011c9: MSTORE
000011ca: SWAP1
000011cb: MLOAD
000011cc: SWAP1
000011cd: DUP2
000011ce: SWAP1
000011cf: SUB
000011d0: PUSH1 0x64
000011d2: ADD
000011d3: SWAP1
000011d4: REVERT
000011d5: JUMPDEST
000011d6: PUSH1 0x00
000011d8: PUSH2 0x11f2
000011db: PUSH2 0x2710
000011de: PUSH2 0x0c76
000011e1: PUSH1 0x09
000011e3: SLOAD
000011e4: DUP9
000011e5: PUSH2 0x1d03
000011e8: SWAP1
000011e9: SWAP2
000011ea: SWAP1
000011eb: PUSH4 0xffffffff
000011f0: AND
000011f1: JUMP
000011f2: JUMPDEST
000011f3: SWAP1
000011f4: POP
000011f5: PUSH2 0x11fe
000011f8: DUP3
000011f9: DUP3
000011fa: PUSH2 0x1f50
000011fd: JUMP
000011fe: JUMPDEST
000011ff: PUSH1 0x00
00001201: PUSH2 0x1210
00001204: DUP7
00001205: DUP4
00001206: PUSH4 0xffffffff
0000120b: PUSH2 0x1cc1
0000120e: AND
0000120f: JUMP
00001210: JUMPDEST
00001211: SWAP1
00001212: POP
00001213: PUSH1 0x00
00001215: PUSH2 0x1236
00001218: PUSH1 0x12
0000121a: SLOAD
0000121b: PUSH2 0x0bfd
0000121e: SELFBALANCE
0000121f: PUSH9 0x71d75ab9b920500000
00001229: PUSH2 0x1c60
0000122c: SWAP1
0000122d: SWAP2
0000122e: SWAP1
0000122f: PUSH4 0xffffffff
00001234: AND
00001235: JUMP
00001236: JUMPDEST
00001237: PUSH20 0x1111111111111111111111111111111111111111
0000124c: PUSH1 0x00
0000124e: SWAP1
0000124f: DUP2
00001250: MSTORE
00001251: PUSH1 0x13
00001253: PUSH1 0x20
00001255: MSTORE
00001256: PUSH1 0x00
00001258: DUP1
00001259: MLOAD
0000125a: PUSH1 0x20
0000125c: PUSH2 0x25be
0000125f: DUP4
00001260: CODECOPY
00001261: DUP2
00001262: MLOAD
00001263: SWAP2
00001264: MSTORE
00001265: SLOAD
00001266: SWAP2
00001267: SWAP3
00001268: POP
00001269: PUSH2 0x1278
0000126c: DUP3
0000126d: DUP6
0000126e: PUSH4 0xffffffff
00001273: PUSH2 0x1c60
00001276: AND
00001277: JUMP
00001278: JUMPDEST
00001279: SWAP1
0000127a: POP
0000127b: PUSH1 0x00
0000127d: PUSH2 0x1297
00001280: DUP3
00001281: PUSH2 0x0c76
00001284: PUSH1 0x02
00001286: DUP3
00001287: DIV
00001288: PUSH2 0x0c6a
0000128b: DUP9
0000128c: DUP9
0000128d: PUSH4 0xffffffff
00001292: PUSH2 0x1d03
00001295: AND
00001296: JUMP
00001297: JUMPDEST
00001298: SWAP1
00001299: POP
0000129a: PUSH1 0x00
0000129c: PUSH2 0x12ab
0000129f: DUP6
000012a0: DUP4
000012a1: PUSH4 0xffffffff
000012a6: PUSH2 0x1cc1
000012a9: AND
000012aa: JUMP
000012ab: JUMPDEST
000012ac: SWAP1
000012ad: POP
000012ae: PUSH1 0x00
000012b0: DUP2
000012b1: GT
000012b2: PUSH2 0x12ec
000012b5: JUMPI
000012b6: PUSH1 0x40
000012b8: DUP1
000012b9: MLOAD
000012ba: PUSH3 0x461bcd
000012be: PUSH1 0xe5
000012c0: SHL
000012c1: DUP2
000012c2: MSTORE
000012c3: PUSH1 0x20
000012c5: PUSH1 0x04
000012c7: DUP3
000012c8: ADD
000012c9: MSTORE
000012ca: PUSH1 0x07
000012cc: PUSH1 0x24
000012ce: DUP3
000012cf: ADD
000012d0: MSTORE
000012d1: PUSH7 0x042deeae88ae8d
000012d9: PUSH1 0xcb
000012db: SHL
000012dc: PUSH1 0x44
000012de: DUP3
000012df: ADD
000012e0: MSTORE
000012e1: SWAP1
000012e2: MLOAD
000012e3: SWAP1
000012e4: DUP2
000012e5: SWAP1
000012e6: SUB
000012e7: PUSH1 0x64
000012e9: ADD
000012ea: SWAP1
000012eb: REVERT
000012ec: JUMPDEST
000012ed: DUP10
000012ee: DUP2
000012ef: LT
000012f0: ISZERO
000012f1: PUSH2 0x132b
000012f4: JUMPI
000012f5: PUSH1 0x40
000012f7: MLOAD
000012f8: PUSH3 0x461bcd
000012fc: PUSH1 0xe5
000012fe: SHL
000012ff: DUP2
00001300: MSTORE
00001301: PUSH1 0x04
00001303: ADD
00001304: DUP1
00001305: DUP1
00001306: PUSH1 0x20
00001308: ADD
00001309: DUP3
0000130a: DUP2
0000130b: SUB
0000130c: DUP3
0000130d: MSTORE
0000130e: PUSH1 0x26
00001310: DUP2
00001311: MSTORE
00001312: PUSH1 0x20
00001314: ADD
00001315: DUP1
00001316: PUSH2 0x25de
00001319: PUSH1 0x26
0000131b: SWAP2
0000131c: CODECOPY
0000131d: PUSH1 0x40
0000131f: ADD
00001320: SWAP2
00001321: POP
00001322: POP
00001323: PUSH1 0x40
00001325: MLOAD
00001326: DUP1
00001327: SWAP2
00001328: SUB
00001329: SWAP1
0000132a: REVERT
0000132b: JUMPDEST
0000132c: PUSH2 0x134a
0000132f: DUP9
00001330: PUSH20 0x1111111111111111111111111111111111111111
00001345: DUP9
00001346: PUSH2 0x1d9e
00001349: JUMP
0000134a: JUMPDEST
0000134b: PUSH1 0x0a
0000134d: SLOAD
0000134e: ISZERO
0000134f: PUSH2 0x13d4
00001352: JUMPI
00001353: PUSH1 0x00
00001355: PUSH2 0x136f
00001358: PUSH2 0x2710
0000135b: PUSH2 0x0c76
0000135e: PUSH1 0x0a
00001360: SLOAD
00001361: DUP6
00001362: PUSH2 0x1d03
00001365: SWAP1
00001366: SWAP2
00001367: SWAP1
00001368: PUSH4 0xffffffff
0000136d: AND
0000136e: JUMP
0000136f: JUMPDEST
00001370: PUSH1 0x12
00001372: SLOAD
00001373: SWAP1
00001374: SWAP2
00001375: POP
00001376: PUSH2 0x1385
00001379: SWAP1
0000137a: DUP3
0000137b: PUSH4 0xffffffff
00001380: PUSH2 0x1c60
00001383: AND
00001384: JUMP
00001385: JUMPDEST
00001386: PUSH1 0x12
00001388: SSTORE
00001389: PUSH1 0x01
0000138b: PUSH1 0x01
0000138d: PUSH1 0xa0
0000138f: SHL
00001390: SUB
00001391: DUP10
00001392: AND
00001393: PUSH2 0x08fc
00001396: PUSH2 0x13a5
00001399: DUP5
0000139a: DUP5
0000139b: PUSH4 0xffffffff
000013a0: PUSH2 0x1cc1
000013a3: AND
000013a4: JUMP
000013a5: JUMPDEST
000013a6: PUSH1 0x40
000013a8: MLOAD
000013a9: DUP2
000013aa: ISZERO
000013ab: SWAP1
000013ac: SWAP3
000013ad: MUL
000013ae: SWAP2
000013af: PUSH1 0x00
000013b1: DUP2
000013b2: DUP2
000013b3: DUP2
000013b4: DUP6
000013b5: DUP9
000013b6: DUP9
000013b7: CALL
000013b8: SWAP4
000013b9: POP
000013ba: POP
000013bb: POP
000013bc: POP
000013bd: ISZERO
000013be: DUP1
000013bf: ISZERO
000013c0: PUSH2 0x13cd
000013c3: JUMPI
000013c4: RETURNDATASIZE
000013c5: PUSH1 0x00
000013c7: DUP1
000013c8: RETURNDATACOPY
000013c9: RETURNDATASIZE
000013ca: PUSH1 0x00
000013cc: REVERT
000013cd: JUMPDEST
000013ce: POP
000013cf: POP
000013d0: PUSH2 0x140c
000013d3: JUMP
000013d4: JUMPDEST
000013d5: PUSH1 0x40
000013d7: MLOAD
000013d8: PUSH1 0x01
000013da: PUSH1 0x01
000013dc: PUSH1 0xa0
000013de: SHL
000013df: SUB
000013e0: DUP10
000013e1: AND
000013e2: SWAP1
000013e3: DUP3
000013e4: ISZERO
000013e5: PUSH2 0x08fc
000013e8: MUL
000013e9: SWAP1
000013ea: DUP4
000013eb: SWAP1
000013ec: PUSH1 0x00
000013ee: DUP2
000013ef: DUP2
000013f0: DUP2
000013f1: DUP6
000013f2: DUP9
000013f3: DUP9
000013f4: CALL
000013f5: SWAP4
000013f6: POP
000013f7: POP
000013f8: POP
000013f9: POP
000013fa: ISZERO
000013fb: DUP1
000013fc: ISZERO
000013fd: PUSH2 0x140a
00001400: JUMPI
00001401: RETURNDATASIZE
00001402: PUSH1 0x00
00001404: DUP1
00001405: RETURNDATACOPY
00001406: RETURNDATASIZE
00001407: PUSH1 0x00
00001409: REVERT
0000140a: JUMPDEST
0000140b: POP
0000140c: JUMPDEST
0000140d: PUSH1 0x40
0000140f: DUP1
00001410: MLOAD
00001411: DUP13
00001412: DUP2
00001413: MSTORE
00001414: PUSH1 0x20
00001416: DUP2
00001417: ADD
00001418: DUP4
00001419: SWAP1
0000141a: MSTORE
0000141b: DUP2
0000141c: MLOAD
0000141d: PUSH1 0x01
0000141f: PUSH1 0x01
00001421: PUSH1 0xa0
00001423: SHL
00001424: SUB
00001425: DUP12
00001426: AND
00001427: SWAP3
00001428: PUSH32 0xa8ff15eb642b39da3ab82bb74a87b76cc3e1aef2b82b70bc2a35458386db29aa
00001449: SWAP3
0000144a: DUP3
0000144b: SWAP1
0000144c: SUB
0000144d: ADD
0000144e: SWAP1
0000144f: LOG2
00001450: POP
00001451: POP
00001452: POP
00001453: POP
00001454: POP
00001455: POP
00001456: POP
00001457: POP
00001458: POP
00001459: POP
0000145a: POP
0000145b: JUMP
0000145c: JUMPDEST
0000145d: PUSH1 0x00
0000145f: PUSH2 0x1469
00001462: DUP5
00001463: DUP5
00001464: DUP5
00001465: PUSH2 0x2170
00001468: JUMP
00001469: JUMPDEST
0000146a: PUSH2 0x14df
0000146d: DUP5
0000146e: PUSH2 0x1475
00001471: PUSH2 0x1e60
00001474: JUMP
00001475: JUMPDEST
00001476: PUSH2 0x14da
00001479: DUP6
0000147a: PUSH1 0x40
0000147c: MLOAD
0000147d: DUP1
0000147e: PUSH1 0x60
00001480: ADD
00001481: PUSH1 0x40
00001483: MSTORE
00001484: DUP1
00001485: PUSH1 0x28
00001487: DUP2
00001488: MSTORE
00001489: PUSH1 0x20
0000148b: ADD
0000148c: PUSH2 0x250c
0000148f: PUSH1 0x28
00001491: SWAP2
00001492: CODECOPY
00001493: PUSH1 0x01
00001495: PUSH1 0x01
00001497: PUSH1 0xa0
00001499: SHL
0000149a: SUB
0000149b: DUP11
0000149c: AND
0000149d: PUSH1 0x00
0000149f: SWAP1
000014a0: DUP2
000014a1: MSTORE
000014a2: PUSH1 0x14
000014a4: PUSH1 0x20
000014a6: MSTORE
000014a7: PUSH1 0x40
000014a9: DUP2
000014aa: KECCAK256
000014ab: SWAP1
000014ac: PUSH2 0x14b3
000014af: PUSH2 0x1e60
000014b2: JUMP
000014b3: JUMPDEST
000014b4: PUSH1 0x01
000014b6: PUSH1 0x01
000014b8: PUSH1 0xa0
000014ba: SHL
000014bb: SUB
000014bc: AND
000014bd: DUP2
000014be: MSTORE
000014bf: PUSH1 0x20
000014c1: DUP2
000014c2: ADD
000014c3: SWAP2
000014c4: SWAP1
000014c5: SWAP2
000014c6: MSTORE
000014c7: PUSH1 0x40
000014c9: ADD
000014ca: PUSH1 0x00
000014cc: KECCAK256
000014cd: SLOAD
000014ce: SWAP2
000014cf: SWAP1
000014d0: PUSH4 0xffffffff
000014d5: PUSH2 0x2361
000014d8: AND
000014d9: JUMP
000014da: JUMPDEST
000014db: PUSH2 0x1e64
000014de: JUMP
000014df: JUMPDEST
000014e0: POP
000014e1: PUSH1 0x01
000014e3: SWAP4
000014e4: SWAP3
000014e5: POP
000014e6: POP
000014e7: POP
000014e8: JUMP
000014e9: JUMPDEST
000014ea: PUSH10 0x0472698b413b43200000
000014f5: DUP2
000014f6: JUMP
000014f7: JUMPDEST
000014f8: PUSH1 0x06
000014fa: SLOAD
000014fb: DUP2
000014fc: JUMP
000014fd: JUMPDEST
000014fe: PUSH1 0x11
00001500: SLOAD
00001501: PUSH1 0x01
00001503: PUSH1 0x01
00001505: PUSH1 0xa0
00001507: SHL
00001508: SUB
00001509: AND
0000150a: DUP2
0000150b: JUMP
0000150c: JUMPDEST
0000150d: PUSH1 0x02
0000150f: SLOAD
00001510: PUSH1 0xff
00001512: AND
00001513: SWAP1
00001514: JUMP
00001515: JUMPDEST
00001516: PUSH1 0x04
00001518: SLOAD
00001519: DUP2
0000151a: JUMP
0000151b: JUMPDEST
0000151c: PUSH1 0x0a
0000151e: SLOAD
0000151f: DUP2
00001520: JUMP
00001521: JUMPDEST
00001522: PUSH1 0x00
00001524: PUSH2 0x0f7f
00001527: PUSH2 0x152e
0000152a: PUSH2 0x1e60
0000152d: JUMP
0000152e: JUMPDEST
0000152f: DUP5
00001530: PUSH2 0x14da
00001533: DUP6
00001534: PUSH1 0x14
00001536: PUSH1 0x00
00001538: PUSH2 0x153f
0000153b: PUSH2 0x1e60
0000153e: JUMP
0000153f: JUMPDEST
00001540: PUSH1 0x01
00001542: PUSH1 0x01
00001544: PUSH1 0xa0
00001546: SHL
00001547: SUB
00001548: SWAP1
00001549: DUP2
0000154a: AND
0000154b: DUP3
0000154c: MSTORE
0000154d: PUSH1 0x20
0000154f: DUP1
00001550: DUP4
00001551: ADD
00001552: SWAP4
00001553: SWAP1
00001554: SWAP4
00001555: MSTORE
00001556: PUSH1 0x40
00001558: SWAP2
00001559: DUP3
0000155a: ADD
0000155b: PUSH1 0x00
0000155d: SWAP1
0000155e: DUP2
0000155f: KECCAK256
00001560: SWAP2
00001561: DUP13
00001562: AND
00001563: DUP2
00001564: MSTORE
00001565: SWAP3
00001566: MSTORE
00001567: SWAP1
00001568: KECCAK256
00001569: SLOAD
0000156a: SWAP1
0000156b: PUSH4 0xffffffff
00001570: PUSH2 0x1c60
00001573: AND
00001574: JUMP
00001575: JUMPDEST
00001576: PUSH1 0x10
00001578: SLOAD
00001579: PUSH1 0x01
0000157b: PUSH1 0x01
0000157d: PUSH1 0xa0
0000157f: SHL
00001580: SUB
00001581: AND
00001582: CALLER
00001583: EQ
00001584: PUSH2 0x15bd
00001587: JUMPI
00001588: PUSH1 0x40
0000158a: DUP1
0000158b: MLOAD
0000158c: PUSH3 0x461bcd
00001590: PUSH1 0xe5
00001592: SHL
00001593: DUP2
00001594: MSTORE
00001595: PUSH1 0x20
00001597: PUSH1 0x04
00001599: DUP1
0000159a: DUP4
0000159b: ADD
0000159c: SWAP2
0000159d: SWAP1
0000159e: SWAP2
0000159f: MSTORE
000015a0: PUSH1 0x24
000015a2: DUP3
000015a3: ADD
000015a4: MSTORE
000015a5: PUSH4 0x10b3b7bb
000015aa: PUSH1 0xe1
000015ac: SHL
000015ad: PUSH1 0x44
000015af: DUP3
000015b0: ADD
000015b1: MSTORE
000015b2: SWAP1
000015b3: MLOAD
000015b4: SWAP1
000015b5: DUP2
000015b6: SWAP1
000015b7: SUB
000015b8: PUSH1 0x64
000015ba: ADD
000015bb: SWAP1
000015bc: REVERT
000015bd: JUMPDEST
000015be: PUSH1 0x01
000015c0: PUSH1 0x03
000015c2: SSTORE
000015c3: JUMP
000015c4: JUMPDEST
000015c5: PUSH1 0x03
000015c7: SLOAD
000015c8: DUP2
000015c9: JUMP
000015ca: JUMPDEST
000015cb: PUSH1 0x10
000015cd: SLOAD
000015ce: PUSH1 0x01
000015d0: PUSH1 0x01
000015d2: PUSH1 0xa0
000015d4: SHL
000015d5: SUB
000015d6: AND
000015d7: CALLER
000015d8: EQ
000015d9: PUSH2 0x1612
000015dc: JUMPI
000015dd: PUSH1 0x40
000015df: DUP1
000015e0: MLOAD
000015e1: PUSH3 0x461bcd
000015e5: PUSH1 0xe5
000015e7: SHL
000015e8: DUP2
000015e9: MSTORE
000015ea: PUSH1 0x20
000015ec: PUSH1 0x04
000015ee: DUP1
000015ef: DUP4
000015f0: ADD
000015f1: SWAP2
000015f2: SWAP1
000015f3: SWAP2
000015f4: MSTORE
000015f5: PUSH1 0x24
000015f7: DUP3
000015f8: ADD
000015f9: MSTORE
000015fa: PUSH4 0x10b3b7bb
000015ff: PUSH1 0xe1
00001601: SHL
00001602: PUSH1 0x44
00001604: DUP3
00001605: ADD
00001606: MSTORE
00001607: SWAP1
00001608: MLOAD
00001609: SWAP1
0000160a: DUP2
0000160b: SWAP1
0000160c: SUB
0000160d: PUSH1 0x64
0000160f: ADD
00001610: SWAP1
00001611: REVERT
00001612: JUMPDEST
00001613: PUSH1 0x01
00001615: PUSH1 0x01
00001617: PUSH1 0xa0
00001619: SHL
0000161a: SUB
0000161b: DUP2
0000161c: AND
0000161d: PUSH2 0x1655
00001620: JUMPI
00001621: PUSH1 0x40
00001623: DUP1
00001624: MLOAD
00001625: PUSH3 0x461bcd
00001629: PUSH1 0xe5
0000162b: SHL
0000162c: DUP2
0000162d: MSTORE
0000162e: PUSH1 0x20
00001630: PUSH1 0x04
00001632: DUP3
00001633: ADD
00001634: MSTORE
00001635: PUSH1 0x05
00001637: PUSH1 0x24
00001639: DUP3
0000163a: ADD
0000163b: MSTORE
0000163c: PUSH5 0x10b0b23239
00001642: PUSH1 0xd9
00001644: SHL
00001645: PUSH1 0x44
00001647: DUP3
00001648: ADD
00001649: MSTORE
0000164a: SWAP1
0000164b: MLOAD
0000164c: SWAP1
0000164d: DUP2
0000164e: SWAP1
0000164f: SUB
00001650: PUSH1 0x64
00001652: ADD
00001653: SWAP1
00001654: REVERT
00001655: JUMPDEST
00001656: PUSH1 0x10
00001658: DUP1
00001659: SLOAD
0000165a: PUSH1 0x01
0000165c: PUSH1 0x01
0000165e: PUSH1 0xa0
00001660: SHL
00001661: SUB
00001662: NOT
00001663: AND
00001664: PUSH1 0x01
00001666: PUSH1 0x01
00001668: PUSH1 0xa0
0000166a: SHL
0000166b: SUB
0000166c: SWAP3
0000166d: SWAP1
0000166e: SWAP3
0000166f: AND
00001670: SWAP2
00001671: SWAP1
00001672: SWAP2
00001673: OR
00001674: SWAP1
00001675: SSTORE
00001676: JUMP
00001677: JUMPDEST
00001678: PUSH1 0x0b
0000167a: PUSH1 0x20
0000167c: MSTORE
0000167d: PUSH1 0x00
0000167f: SWAP1
00001680: DUP2
00001681: MSTORE
00001682: PUSH1 0x40
00001684: SWAP1
00001685: KECCAK256
00001686: SLOAD
00001687: DUP2
00001688: JUMP
00001689: JUMPDEST
0000168a: PUSH1 0x10
0000168c: SLOAD
0000168d: PUSH1 0x01
0000168f: PUSH1 0x01
00001691: PUSH1 0xa0
00001693: SHL
00001694: SUB
00001695: AND
00001696: CALLER
00001697: EQ
00001698: PUSH2 0x16d1
0000169b: JUMPI
0000169c: PUSH1 0x40
0000169e: DUP1
0000169f: MLOAD
000016a0: PUSH3 0x461bcd
000016a4: PUSH1 0xe5
000016a6: SHL
000016a7: DUP2
000016a8: MSTORE
000016a9: PUSH1 0x20
000016ab: PUSH1 0x04
000016ad: DUP1
000016ae: DUP4
000016af: ADD
000016b0: SWAP2
000016b1: SWAP1
000016b2: SWAP2
000016b3: MSTORE
000016b4: PUSH1 0x24
000016b6: DUP3
000016b7: ADD
000016b8: MSTORE
000016b9: PUSH4 0x10b3b7bb
000016be: PUSH1 0xe1
000016c0: SHL
000016c1: PUSH1 0x44
000016c3: DUP3
000016c4: ADD
000016c5: MSTORE
000016c6: SWAP1
000016c7: MLOAD
000016c8: SWAP1
000016c9: DUP2
000016ca: SWAP1
000016cb: SUB
000016cc: PUSH1 0x64
000016ce: ADD
000016cf: SWAP1
000016d0: REVERT
000016d1: JUMPDEST
000016d2: PUSH1 0x04
000016d4: SSTORE
000016d5: JUMP
000016d6: JUMPDEST
000016d7: PUSH1 0x0e
000016d9: SLOAD
000016da: DUP2
000016db: JUMP
000016dc: JUMPDEST
000016dd: PUSH1 0x10
000016df: SLOAD
000016e0: PUSH1 0x01
000016e2: PUSH1 0x01
000016e4: PUSH1 0xa0
000016e6: SHL
000016e7: SUB
000016e8: AND
000016e9: CALLER
000016ea: EQ
000016eb: PUSH2 0x1724
000016ee: JUMPI
000016ef: PUSH1 0x40
000016f1: DUP1
000016f2: MLOAD
000016f3: PUSH3 0x461bcd
000016f7: PUSH1 0xe5
000016f9: SHL
000016fa: DUP2
000016fb: MSTORE
000016fc: PUSH1 0x20
000016fe: PUSH1 0x04
00001700: DUP1
00001701: DUP4
00001702: ADD
00001703: SWAP2
00001704: SWAP1
00001705: SWAP2
00001706: MSTORE
00001707: PUSH1 0x24
00001709: DUP3
0000170a: ADD
0000170b: MSTORE
0000170c: PUSH4 0x10b3b7bb
00001711: PUSH1 0xe1
00001713: SHL
00001714: PUSH1 0x44
00001716: DUP3
00001717: ADD
00001718: MSTORE
00001719: SWAP1
0000171a: MLOAD
0000171b: SWAP1
0000171c: DUP2
0000171d: SWAP1
0000171e: SUB
0000171f: PUSH1 0x64
00001721: ADD
00001722: SWAP1
00001723: REVERT
00001724: JUMPDEST
00001725: PUSH1 0x0d
00001727: SWAP2
00001728: SWAP1
00001729: SWAP2
0000172a: SSTORE
0000172b: PUSH1 0x0e
0000172d: SSTORE
0000172e: JUMP
0000172f: JUMPDEST
00001730: PUSH1 0x01
00001732: PUSH1 0x01
00001734: PUSH1 0xa0
00001736: SHL
00001737: SUB
00001738: AND
00001739: PUSH1 0x00
0000173b: SWAP1
0000173c: DUP2
0000173d: MSTORE
0000173e: PUSH1 0x13
00001740: PUSH1 0x20
00001742: MSTORE
00001743: PUSH1 0x40
00001745: SWAP1
00001746: KECCAK256
00001747: SLOAD
00001748: SWAP1
00001749: JUMP
0000174a: JUMPDEST
0000174b: PUSH1 0x10
0000174d: SLOAD
0000174e: PUSH1 0x01
00001750: PUSH1 0x01
00001752: PUSH1 0xa0
00001754: SHL
00001755: SUB
00001756: AND
00001757: CALLER
00001758: EQ
00001759: PUSH2 0x1792
0000175c: JUMPI
0000175d: PUSH1 0x40
0000175f: DUP1
00001760: MLOAD
00001761: PUSH3 0x461bcd
00001765: PUSH1 0xe5
00001767: SHL
00001768: DUP2
00001769: MSTORE
0000176a: PUSH1 0x20
0000176c: PUSH1 0x04
0000176e: DUP1
0000176f: DUP4
00001770: ADD
00001771: SWAP2
00001772: SWAP1
00001773: SWAP2
00001774: MSTORE
00001775: PUSH1 0x24
00001777: DUP3
00001778: ADD
00001779: MSTORE
0000177a: PUSH4 0x10b3b7bb
0000177f: PUSH1 0xe1
00001781: SHL
00001782: PUSH1 0x44
00001784: DUP3
00001785: ADD
00001786: MSTORE
00001787: SWAP1
00001788: MLOAD
00001789: SWAP1
0000178a: DUP2
0000178b: SWAP1
0000178c: SUB
0000178d: PUSH1 0x64
0000178f: ADD
00001790: SWAP1
00001791: REVERT
00001792: JUMPDEST
00001793: PUSH2 0x2711
00001796: DUP3
00001797: GT
00001798: ISZERO
00001799: PUSH2 0x17a1
0000179c: JUMPI
0000179d: PUSH1 0x00
0000179f: DUP1
000017a0: REVERT
000017a1: JUMPDEST
000017a2: PUSH2 0x2711
000017a5: DUP2
000017a6: GT
000017a7: ISZERO
000017a8: PUSH2 0x17b0
000017ab: JUMPI
000017ac: PUSH1 0x00
000017ae: DUP1
000017af: REVERT
000017b0: JUMPDEST
000017b1: PUSH1 0x01
000017b3: PUSH1 0x01
000017b5: PUSH1 0xa0
000017b7: SHL
000017b8: SUB
000017b9: SWAP1
000017ba: SWAP3
000017bb: AND
000017bc: PUSH1 0x00
000017be: SWAP1
000017bf: DUP2
000017c0: MSTORE
000017c1: PUSH1 0x0b
000017c3: PUSH1 0x20
000017c5: SWAP1
000017c6: DUP2
000017c7: MSTORE
000017c8: PUSH1 0x40
000017ca: DUP1
000017cb: DUP4
000017cc: KECCAK256
000017cd: SWAP4
000017ce: SWAP1
000017cf: SWAP4
000017d0: SSTORE
000017d1: PUSH1 0x0c
000017d3: SWAP1
000017d4: MSTORE
000017d5: KECCAK256
000017d6: SSTORE
000017d7: JUMP
000017d8: JUMPDEST
000017d9: PUSH1 0x10
000017db: SLOAD
000017dc: PUSH1 0x01
000017de: PUSH1 0x01
000017e0: PUSH1 0xa0
000017e2: SHL
000017e3: SUB
000017e4: AND
000017e5: CALLER
000017e6: EQ
000017e7: PUSH2 0x1820
000017ea: JUMPI
000017eb: PUSH1 0x40
000017ed: DUP1
000017ee: MLOAD
000017ef: PUSH3 0x461bcd
000017f3: PUSH1 0xe5
000017f5: SHL
000017f6: DUP2
000017f7: MSTORE
000017f8: PUSH1 0x20
000017fa: PUSH1 0x04
000017fc: DUP1
000017fd: DUP4
000017fe: ADD
000017ff: SWAP2
00001800: SWAP1
00001801: SWAP2
00001802: MSTORE
00001803: PUSH1 0x24
00001805: DUP3
00001806: ADD
00001807: MSTORE
00001808: PUSH4 0x10b3b7bb
0000180d: PUSH1 0xe1
0000180f: SHL
00001810: PUSH1 0x44
00001812: DUP3
00001813: ADD
00001814: MSTORE
00001815: SWAP1
00001816: MLOAD
00001817: SWAP1
00001818: DUP2
00001819: SWAP1
0000181a: SUB
0000181b: PUSH1 0x64
0000181d: ADD
0000181e: SWAP1
0000181f: REVERT
00001820: JUMPDEST
00001821: PUSH1 0x01
00001823: PUSH1 0x01
00001825: PUSH1 0xa0
00001827: SHL
00001828: SUB
00001829: DUP2
0000182a: AND
0000182b: PUSH2 0x1863
0000182e: JUMPI
0000182f: PUSH1 0x40
00001831: DUP1
00001832: MLOAD
00001833: PUSH3 0x461bcd
00001837: PUSH1 0xe5
00001839: SHL
0000183a: DUP2
0000183b: MSTORE
0000183c: PUSH1 0x20
0000183e: PUSH1 0x04
00001840: DUP3
00001841: ADD
00001842: MSTORE
00001843: PUSH1 0x05
00001845: PUSH1 0x24
00001847: DUP3
00001848: ADD
00001849: MSTORE
0000184a: PUSH5 0x10b0b23239
00001850: PUSH1 0xd9
00001852: SHL
00001853: PUSH1 0x44
00001855: DUP3
00001856: ADD
00001857: MSTORE
00001858: SWAP1
00001859: MLOAD
0000185a: SWAP1
0000185b: DUP2
0000185c: SWAP1
0000185d: SUB
0000185e: PUSH1 0x64
00001860: ADD
00001861: SWAP1
00001862: REVERT
00001863: JUMPDEST
00001864: PUSH1 0x11
00001866: DUP1
00001867: SLOAD
00001868: PUSH1 0x01
0000186a: PUSH1 0x01
0000186c: PUSH1 0xa0
0000186e: SHL
0000186f: SUB
00001870: NOT
00001871: AND
00001872: PUSH1 0x01
00001874: PUSH1 0x01
00001876: PUSH1 0xa0
00001878: SHL
00001879: SUB
0000187a: SWAP3
0000187b: SWAP1
0000187c: SWAP3
0000187d: AND
0000187e: SWAP2
0000187f: SWAP1
00001880: SWAP2
00001881: OR
00001882: SWAP1
00001883: SSTORE
00001884: JUMP
00001885: JUMPDEST
00001886: PUSH1 0x10
00001888: SLOAD
00001889: PUSH1 0x01
0000188b: PUSH1 0x01
0000188d: PUSH1 0xa0
0000188f: SHL
00001890: SUB
00001891: AND
00001892: CALLER
00001893: EQ
00001894: PUSH2 0x18cd
00001897: JUMPI
00001898: PUSH1 0x40
0000189a: DUP1
0000189b: MLOAD
0000189c: PUSH3 0x461bcd
000018a0: PUSH1 0xe5
000018a2: SHL
000018a3: DUP2
000018a4: MSTORE
000018a5: PUSH1 0x20
000018a7: PUSH1 0x04
000018a9: DUP1
000018aa: DUP4
000018ab: ADD
000018ac: SWAP2
000018ad: SWAP1
000018ae: SWAP2
000018af: MSTORE
000018b0: PUSH1 0x24
000018b2: DUP3
000018b3: ADD
000018b4: MSTORE
000018b5: PUSH4 0x10b3b7bb
000018ba: PUSH1 0xe1
000018bc: SHL
000018bd: PUSH1 0x44
000018bf: DUP3
000018c0: ADD
000018c1: MSTORE
000018c2: SWAP1
000018c3: MLOAD
000018c4: SWAP1
000018c5: DUP2
000018c6: SWAP1
000018c7: SUB
000018c8: PUSH1 0x64
000018ca: ADD
000018cb: SWAP1
000018cc: REVERT
000018cd: JUMPDEST
000018ce: PUSH1 0x3c
000018d0: DUP4
000018d1: GT
000018d2: ISZERO
000018d3: PUSH2 0x18db
000018d6: JUMPI
000018d7: PUSH1 0x00
000018d9: DUP1
000018da: REVERT
000018db: JUMPDEST
000018dc: PUSH1 0x3c
000018de: DUP3
000018df: GT
000018e0: ISZERO
000018e1: PUSH2 0x18e9
000018e4: JUMPI
000018e5: PUSH1 0x00
000018e7: DUP1
000018e8: REVERT
000018e9: JUMPDEST
000018ea: PUSH1 0x1e
000018ec: DUP2
000018ed: GT
000018ee: ISZERO
000018ef: PUSH2 0x18f7
000018f2: JUMPI
000018f3: PUSH1 0x00
000018f5: DUP1
000018f6: REVERT
000018f7: JUMPDEST
000018f8: DUP2
000018f9: DUP2
000018fa: GT
000018fb: ISZERO
000018fc: PUSH2 0x1904
000018ff: JUMPI
00001900: PUSH1 0x00
00001902: DUP1
00001903: REVERT
00001904: JUMPDEST
00001905: PUSH1 0x3c
00001907: PUSH2 0x1916
0000190a: DUP4
0000190b: DUP4
0000190c: PUSH4 0xffffffff
00001911: PUSH2 0x1c60
00001914: AND
00001915: JUMP
00001916: JUMPDEST
00001917: GT
00001918: ISZERO
00001919: PUSH2 0x1921
0000191c: JUMPI
0000191d: PUSH1 0x00
0000191f: DUP1
00001920: REVERT
00001921: JUMPDEST
00001922: PUSH1 0x08
00001924: SWAP3
00001925: SWAP1
00001926: SWAP3
00001927: SSTORE
00001928: PUSH1 0x09
0000192a: SSTORE
0000192b: PUSH1 0x0a
0000192d: SSTORE
0000192e: JUMP
0000192f: JUMPDEST
00001930: PUSH1 0x12
00001932: SLOAD
00001933: PUSH1 0x00
00001935: SWAP1
00001936: PUSH2 0x1952
00001939: SWAP1
0000193a: PUSH2 0x0bfd
0000193d: PUSH9 0x71d75ab9b920500000
00001947: SELFBALANCE
00001948: PUSH4 0xffffffff
0000194d: PUSH2 0x1c60
00001950: AND
00001951: JUMP
00001952: JUMPDEST
00001953: SWAP1
00001954: POP
00001955: SWAP1
00001956: JUMP
00001957: JUMPDEST
00001958: PUSH1 0x01
0000195a: DUP1
0000195b: SLOAD
0000195c: PUSH1 0x40
0000195e: DUP1
0000195f: MLOAD
00001960: PUSH1 0x20
00001962: PUSH1 0x1f
00001964: PUSH1 0x02
00001966: PUSH1 0x00
00001968: NOT
00001969: PUSH2 0x0100
0000196c: DUP8
0000196d: DUP10
0000196e: AND
0000196f: ISZERO
00001970: MUL
00001971: ADD
00001972: SWAP1
00001973: SWAP6
00001974: AND
00001975: SWAP5
00001976: SWAP1
00001977: SWAP5
00001978: DIV
00001979: SWAP4
0000197a: DUP5
0000197b: ADD
0000197c: DUP2
0000197d: SWAP1
0000197e: DIV
0000197f: DUP2
00001980: MUL
00001981: DUP3
00001982: ADD
00001983: DUP2
00001984: ADD
00001985: SWAP1
00001986: SWAP3
00001987: MSTORE
00001988: DUP3
00001989: DUP2
0000198a: MSTORE
0000198b: PUSH1 0x60
0000198d: SWAP4
0000198e: SWAP1
0000198f: SWAP3
00001990: SWAP1
00001991: SWAP2
00001992: DUP4
00001993: ADD
00001994: DUP3
00001995: DUP3
00001996: DUP1
00001997: ISZERO
00001998: PUSH2 0x0f61
0000199b: JUMPI
0000199c: DUP1
0000199d: PUSH1 0x1f
0000199f: LT
000019a0: PUSH2 0x0f36
000019a3: JUMPI
000019a4: PUSH2 0x0100
000019a7: DUP1
000019a8: DUP4
000019a9: SLOAD
000019aa: DIV
000019ab: MUL
000019ac: DUP4
000019ad: MSTORE
000019ae: SWAP2
000019af: PUSH1 0x20
000019b1: ADD
000019b2: SWAP2
000019b3: PUSH2 0x0f61
000019b6: JUMP
000019b7: JUMPDEST
000019b8: PUSH1 0x00
000019ba: PUSH2 0x0f7f
000019bd: PUSH2 0x19c4
000019c0: PUSH2 0x1e60
000019c3: JUMP
000019c4: JUMPDEST
000019c5: DUP5
000019c6: PUSH2 0x14da
000019c9: DUP6
000019ca: PUSH1 0x40
000019cc: MLOAD
000019cd: DUP1
000019ce: PUSH1 0x60
000019d0: ADD
000019d1: PUSH1 0x40
000019d3: MSTORE
000019d4: DUP1
000019d5: PUSH1 0x25
000019d7: DUP2
000019d8: MSTORE
000019d9: PUSH1 0x20
000019db: ADD
000019dc: PUSH2 0x2604
000019df: PUSH1 0x25
000019e1: SWAP2
000019e2: CODECOPY
000019e3: PUSH1 0x14
000019e5: PUSH1 0x00
000019e7: PUSH2 0x19ee
000019ea: PUSH2 0x1e60
000019ed: JUMP
000019ee: JUMPDEST
000019ef: PUSH1 0x01
000019f1: PUSH1 0x01
000019f3: PUSH1 0xa0
000019f5: SHL
000019f6: SUB
000019f7: SWAP1
000019f8: DUP2
000019f9: AND
000019fa: DUP3
000019fb: MSTORE
000019fc: PUSH1 0x20
000019fe: DUP1
000019ff: DUP4
00001a00: ADD
00001a01: SWAP4
00001a02: SWAP1
00001a03: SWAP4
00001a04: MSTORE
00001a05: PUSH1 0x40
00001a07: SWAP2
00001a08: DUP3
00001a09: ADD
00001a0a: PUSH1 0x00
00001a0c: SWAP1
00001a0d: DUP2
00001a0e: KECCAK256
00001a0f: SWAP2
00001a10: DUP14
00001a11: AND
00001a12: DUP2
00001a13: MSTORE
00001a14: SWAP3
00001a15: MSTORE
00001a16: SWAP1
00001a17: KECCAK256
00001a18: SLOAD
00001a19: SWAP2
00001a1a: SWAP1
00001a1b: PUSH4 0xffffffff
00001a20: PUSH2 0x2361
00001a23: AND
00001a24: JUMP
00001a25: JUMPDEST
00001a26: PUSH1 0x00
00001a28: PUSH2 0x0f7f
00001a2b: PUSH2 0x1a32
00001a2e: PUSH2 0x1e60
00001a31: JUMP
00001a32: JUMPDEST
00001a33: DUP5
00001a34: DUP5
00001a35: PUSH2 0x2170
00001a38: JUMP
00001a39: JUMPDEST
00001a3a: PUSH1 0x09
00001a3c: SLOAD
00001a3d: DUP2
00001a3e: JUMP
00001a3f: JUMPDEST
00001a40: PUSH1 0x02
00001a42: SLOAD
00001a43: PUSH2 0x0100
00001a46: SWAP1
00001a47: DIV
00001a48: PUSH1 0x01
00001a4a: PUSH1 0x01
00001a4c: PUSH1 0xa0
00001a4e: SHL
00001a4f: SUB
00001a50: AND
00001a51: DUP2
00001a52: JUMP
00001a53: JUMPDEST
00001a54: PUSH1 0x0f
00001a56: PUSH1 0x20
00001a58: MSTORE
00001a59: PUSH1 0x00
00001a5b: SWAP1
00001a5c: DUP2
00001a5d: MSTORE
00001a5e: PUSH1 0x40
00001a60: SWAP1
00001a61: KECCAK256
00001a62: SLOAD
00001a63: DUP2
00001a64: JUMP
00001a65: JUMPDEST
00001a66: PUSH1 0x11
00001a68: SLOAD
00001a69: PUSH1 0x01
00001a6b: PUSH1 0x01
00001a6d: PUSH1 0xa0
00001a6f: SHL
00001a70: SUB
00001a71: AND
00001a72: CALLER
00001a73: EQ
00001a74: PUSH2 0x1ab0
00001a77: JUMPI
00001a78: PUSH1 0x40
00001a7a: DUP1
00001a7b: MLOAD
00001a7c: PUSH3 0x461bcd
00001a80: PUSH1 0xe5
00001a82: SHL
00001a83: DUP2
00001a84: MSTORE
00001a85: PUSH1 0x20
00001a87: PUSH1 0x04
00001a89: DUP3
00001a8a: ADD
00001a8b: MSTORE
00001a8c: PUSH1 0x09
00001a8e: PUSH1 0x24
00001a90: DUP3
00001a91: ADD
00001a92: MSTORE
00001a93: PUSH9 0x217472656173757279
00001a9d: PUSH1 0xb8
00001a9f: SHL
00001aa0: PUSH1 0x44
00001aa2: DUP3
00001aa3: ADD
00001aa4: MSTORE
00001aa5: SWAP1
00001aa6: MLOAD
00001aa7: SWAP1
00001aa8: DUP2
00001aa9: SWAP1
00001aaa: SUB
00001aab: PUSH1 0x64
00001aad: ADD
00001aae: SWAP1
00001aaf: REVERT
00001ab0: JUMPDEST
00001ab1: PUSH1 0x12
00001ab3: SLOAD
00001ab4: DUP2
00001ab5: GT
00001ab6: ISZERO
00001ab7: PUSH2 0x1abf
00001aba: JUMPI
00001abb: PUSH1 0x00
00001abd: DUP1
00001abe: REVERT
00001abf: JUMPDEST
00001ac0: PUSH1 0x12
00001ac2: SLOAD
00001ac3: PUSH2 0x1ad2
00001ac6: SWAP1
00001ac7: DUP3
00001ac8: PUSH4 0xffffffff
00001acd: PUSH2 0x1cc1
00001ad0: AND
00001ad1: JUMP
00001ad2: JUMPDEST
00001ad3: PUSH1 0x12
00001ad5: SSTORE
00001ad6: PUSH1 0x11
00001ad8: SLOAD
00001ad9: PUSH1 0x40
00001adb: MLOAD
00001adc: PUSH1 0x01
00001ade: PUSH1 0x01
00001ae0: PUSH1 0xa0
00001ae2: SHL
00001ae3: SUB
00001ae4: SWAP1
00001ae5: SWAP2
00001ae6: AND
00001ae7: SWAP1
00001ae8: DUP2
00001ae9: SWAP1
00001aea: DUP4
00001aeb: ISZERO
00001aec: PUSH2 0x08fc
00001aef: MUL
00001af0: SWAP1
00001af1: DUP5
00001af2: SWAP1
00001af3: PUSH1 0x00
00001af5: DUP2
00001af6: DUP2
00001af7: DUP2
00001af8: DUP6
00001af9: DUP9
00001afa: DUP9
00001afb: CALL
00001afc: SWAP4
00001afd: POP
00001afe: POP
00001aff: POP
00001b00: POP
00001b01: ISZERO
00001b02: DUP1
00001b03: ISZERO
00001b04: PUSH2 0x1b11
00001b07: JUMPI
00001b08: RETURNDATASIZE
00001b09: PUSH1 0x00
00001b0b: DUP1
00001b0c: RETURNDATACOPY
00001b0d: RETURNDATASIZE
00001b0e: PUSH1 0x00
00001b10: REVERT
00001b11: JUMPDEST
00001b12: POP
00001b13: POP
00001b14: POP
00001b15: JUMP
00001b16: JUMPDEST
00001b17: PUSH1 0x10
00001b19: SLOAD
00001b1a: PUSH1 0x01
00001b1c: PUSH1 0x01
00001b1e: PUSH1 0xa0
00001b20: SHL
00001b21: SUB
00001b22: AND
00001b23: CALLER
00001b24: EQ
00001b25: PUSH2 0x1b5e
00001b28: JUMPI
00001b29: PUSH1 0x40
00001b2b: DUP1
00001b2c: MLOAD
00001b2d: PUSH3 0x461bcd
00001b31: PUSH1 0xe5
00001b33: SHL
00001b34: DUP2
00001b35: MSTORE
00001b36: PUSH1 0x20
00001b38: PUSH1 0x04
00001b3a: DUP1
00001b3b: DUP4
00001b3c: ADD
00001b3d: SWAP2
00001b3e: SWAP1
00001b3f: SWAP2
00001b40: MSTORE
00001b41: PUSH1 0x24
00001b43: DUP3
00001b44: ADD
00001b45: MSTORE
00001b46: PUSH4 0x10b3b7bb
00001b4b: PUSH1 0xe1
00001b4d: SHL
00001b4e: PUSH1 0x44
00001b50: DUP3
00001b51: ADD
00001b52: MSTORE
00001b53: SWAP1
00001b54: MLOAD
00001b55: SWAP1
00001b56: DUP2
00001b57: SWAP1
00001b58: SUB
00001b59: PUSH1 0x64
00001b5b: ADD
00001b5c: SWAP1
00001b5d: REVERT
00001b5e: JUMPDEST
00001b5f: PUSH1 0x01
00001b61: PUSH1 0x01
00001b63: PUSH1 0xa0
00001b65: SHL
00001b66: SUB
00001b67: SWAP1
00001b68: SWAP2
00001b69: AND
00001b6a: PUSH1 0x00
00001b6c: SWAP1
00001b6d: DUP2
00001b6e: MSTORE
00001b6f: PUSH1 0x0f
00001b71: PUSH1 0x20
00001b73: MSTORE
00001b74: PUSH1 0x40
00001b76: SWAP1
00001b77: KECCAK256
00001b78: SSTORE
00001b79: JUMP
00001b7a: JUMPDEST
00001b7b: PUSH1 0x0c
00001b7d: PUSH1 0x20
00001b7f: MSTORE
00001b80: PUSH1 0x00
00001b82: SWAP1
00001b83: DUP2
00001b84: MSTORE
00001b85: PUSH1 0x40
00001b87: SWAP1
00001b88: KECCAK256
00001b89: SLOAD
00001b8a: DUP2
00001b8b: JUMP
00001b8c: JUMPDEST
00001b8d: PUSH1 0x10
00001b8f: SLOAD
00001b90: PUSH1 0x01
00001b92: PUSH1 0x01
00001b94: PUSH1 0xa0
00001b96: SHL
00001b97: SUB
00001b98: AND
00001b99: DUP2
00001b9a: JUMP
00001b9b: JUMPDEST
00001b9c: PUSH1 0x08
00001b9e: SLOAD
00001b9f: DUP2
00001ba0: JUMP
00001ba1: JUMPDEST
00001ba2: PUSH1 0x0d
00001ba4: SLOAD
00001ba5: DUP2
00001ba6: JUMP
00001ba7: JUMPDEST
00001ba8: PUSH1 0x01
00001baa: PUSH1 0x01
00001bac: PUSH1 0xa0
00001bae: SHL
00001baf: SUB
00001bb0: SWAP2
00001bb1: DUP3
00001bb2: AND
00001bb3: PUSH1 0x00
00001bb5: SWAP1
00001bb6: DUP2
00001bb7: MSTORE
00001bb8: PUSH1 0x14
00001bba: PUSH1 0x20
00001bbc: SWAP1
00001bbd: DUP2
00001bbe: MSTORE
00001bbf: PUSH1 0x40
00001bc1: DUP1
00001bc2: DUP4
00001bc3: KECCAK256
00001bc4: SWAP4
00001bc5: SWAP1
00001bc6: SWAP5
00001bc7: AND
00001bc8: DUP3
00001bc9: MSTORE
00001bca: SWAP2
00001bcb: SWAP1
00001bcc: SWAP2
00001bcd: MSTORE
00001bce: KECCAK256
00001bcf: SLOAD
00001bd0: SWAP1
00001bd1: JUMP
00001bd2: JUMPDEST
00001bd3: PUSH1 0x05
00001bd5: SLOAD
00001bd6: PUSH1 0x01
00001bd8: PUSH1 0x01
00001bda: PUSH1 0xa0
00001bdc: SHL
00001bdd: SUB
00001bde: AND
00001bdf: DUP2
00001be0: JUMP
00001be1: JUMPDEST
00001be2: PUSH20 0x1111111111111111111111111111111111111111
00001bf7: PUSH1 0x00
00001bf9: MSTORE
00001bfa: PUSH1 0x13
00001bfc: PUSH1 0x20
00001bfe: MSTORE
00001bff: PUSH1 0x00
00001c01: DUP1
00001c02: MLOAD
00001c03: PUSH1 0x20
00001c05: PUSH2 0x25be
00001c08: DUP4
00001c09: CODECOPY
00001c0a: DUP2
00001c0b: MLOAD
00001c0c: SWAP2
00001c0d: MSTORE
00001c0e: SLOAD
00001c0f: SWAP1
00001c10: JUMP
00001c11: JUMPDEST
00001c12: PUSH9 0x71d75ab9b920500000
00001c1c: DUP2
00001c1d: JUMP
00001c1e: JUMPDEST
00001c1f: PUSH1 0x12
00001c21: SLOAD
00001c22: DUP2
00001c23: JUMP
00001c24: JUMPDEST
00001c25: PUSH1 0x00
00001c27: DUP2
00001c28: EXTCODEHASH
00001c29: PUSH32 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
00001c4a: DUP2
00001c4b: ISZERO
00001c4c: DUP1
00001c4d: ISZERO
00001c4e: SWAP1
00001c4f: PUSH2 0x1c58
00001c52: JUMPI
00001c53: POP
00001c54: DUP1
00001c55: DUP3
00001c56: EQ
00001c57: ISZERO
00001c58: JUMPDEST
00001c59: SWAP5
00001c5a: SWAP4
00001c5b: POP
00001c5c: POP
00001c5d: POP
00001c5e: POP
00001c5f: JUMP
00001c60: JUMPDEST
00001c61: PUSH1 0x00
00001c63: DUP3
00001c64: DUP3
00001c65: ADD
00001c66: DUP4
00001c67: DUP2
00001c68: LT
00001c69: ISZERO
00001c6a: PUSH2 0x1cba
00001c6d: JUMPI
00001c6e: PUSH1 0x40
00001c70: DUP1
00001c71: MLOAD
00001c72: PUSH3 0x461bcd
00001c76: PUSH1 0xe5
00001c78: SHL
00001c79: DUP2
00001c7a: MSTORE
00001c7b: PUSH1 0x20
00001c7d: PUSH1 0x04
00001c7f: DUP3
00001c80: ADD
00001c81: MSTORE
00001c82: PUSH1 0x1b
00001c84: PUSH1 0x24
00001c86: DUP3
00001c87: ADD
00001c88: MSTORE
00001c89: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000
00001caa: PUSH1 0x44
00001cac: DUP3
00001cad: ADD
00001cae: MSTORE
00001caf: SWAP1
00001cb0: MLOAD
00001cb1: SWAP1
00001cb2: DUP2
00001cb3: SWAP1
00001cb4: SUB
00001cb5: PUSH1 0x64
00001cb7: ADD
00001cb8: SWAP1
00001cb9: REVERT
00001cba: JUMPDEST
00001cbb: SWAP4
00001cbc: SWAP3
00001cbd: POP
00001cbe: POP
00001cbf: POP
00001cc0: JUMP
00001cc1: JUMPDEST
00001cc2: PUSH1 0x00
00001cc4: PUSH2 0x1cba
00001cc7: DUP4
00001cc8: DUP4
00001cc9: PUSH1 0x40
00001ccb: MLOAD
00001ccc: DUP1
00001ccd: PUSH1 0x40
00001ccf: ADD
00001cd0: PUSH1 0x40
00001cd2: MSTORE
00001cd3: DUP1
00001cd4: PUSH1 0x1e
00001cd6: DUP2
00001cd7: MSTORE
00001cd8: PUSH1 0x20
00001cda: ADD
00001cdb: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000
00001cfc: DUP2
00001cfd: MSTORE
00001cfe: POP
00001cff: PUSH2 0x2361
00001d02: JUMP
00001d03: JUMPDEST
00001d04: PUSH1 0x00
00001d06: DUP3
00001d07: PUSH2 0x1d12
00001d0a: JUMPI
00001d0b: POP
00001d0c: PUSH1 0x00
00001d0e: PUSH2 0x0f83
00001d11: JUMP
00001d12: JUMPDEST
00001d13: DUP3
00001d14: DUP3
00001d15: MUL
00001d16: DUP3
00001d17: DUP5
00001d18: DUP3
00001d19: DUP2
00001d1a: PUSH2 0x1d1f
00001d1d: JUMPI
00001d1e: INVALID
00001d1f: JUMPDEST
00001d20: DIV
00001d21: EQ
00001d22: PUSH2 0x1cba
00001d25: JUMPI
00001d26: PUSH1 0x40
00001d28: MLOAD
00001d29: PUSH3 0x461bcd
00001d2d: PUSH1 0xe5
00001d2f: SHL
00001d30: DUP2
00001d31: MSTORE
00001d32: PUSH1 0x04
00001d34: ADD
00001d35: DUP1
00001d36: DUP1
00001d37: PUSH1 0x20
00001d39: ADD
00001d3a: DUP3
00001d3b: DUP2
00001d3c: SUB
00001d3d: DUP3
00001d3e: MSTORE
00001d3f: PUSH1 0x21
00001d41: DUP2
00001d42: MSTORE
00001d43: PUSH1 0x20
00001d45: ADD
00001d46: DUP1
00001d47: PUSH2 0x24eb
00001d4a: PUSH1 0x21
00001d4c: SWAP2
00001d4d: CODECOPY
00001d4e: PUSH1 0x40
00001d50: ADD
00001d51: SWAP2
00001d52: POP
00001d53: POP
00001d54: PUSH1 0x40
00001d56: MLOAD
00001d57: DUP1
00001d58: SWAP2
00001d59: SUB
00001d5a: SWAP1
00001d5b: REVERT
00001d5c: JUMPDEST
00001d5d: PUSH1 0x00
00001d5f: PUSH2 0x1cba
00001d62: DUP4
00001d63: DUP4
00001d64: PUSH1 0x40
00001d66: MLOAD
00001d67: DUP1
00001d68: PUSH1 0x40
00001d6a: ADD
00001d6b: PUSH1 0x40
00001d6d: MSTORE
00001d6e: DUP1
00001d6f: PUSH1 0x1a
00001d71: DUP2
00001d72: MSTORE
00001d73: PUSH1 0x20
00001d75: ADD
00001d76: PUSH32 0x536166654d6174683a206469766973696f6e206279207a65726f000000000000
00001d97: DUP2
00001d98: MSTORE
00001d99: POP
00001d9a: PUSH2 0x23f8
00001d9d: JUMP
00001d9e: JUMPDEST
00001d9f: PUSH2 0x1de1
00001da2: DUP2
00001da3: PUSH1 0x40
00001da5: MLOAD
00001da6: DUP1
00001da7: PUSH1 0x60
00001da9: ADD
00001daa: PUSH1 0x40
00001dac: MSTORE
00001dad: DUP1
00001dae: PUSH1 0x26
00001db0: DUP2
00001db1: MSTORE
00001db2: PUSH1 0x20
00001db4: ADD
00001db5: PUSH2 0x24c5
00001db8: PUSH1 0x26
00001dba: SWAP2
00001dbb: CODECOPY
00001dbc: PUSH1 0x01
00001dbe: PUSH1 0x01
00001dc0: PUSH1 0xa0
00001dc2: SHL
00001dc3: SUB
00001dc4: DUP7
00001dc5: AND
00001dc6: PUSH1 0x00
00001dc8: SWAP1
00001dc9: DUP2
00001dca: MSTORE
00001dcb: PUSH1 0x13
00001dcd: PUSH1 0x20
00001dcf: MSTORE
00001dd0: PUSH1 0x40
00001dd2: SWAP1
00001dd3: KECCAK256
00001dd4: SLOAD
00001dd5: SWAP2
00001dd6: SWAP1
00001dd7: PUSH4 0xffffffff
00001ddc: PUSH2 0x2361
00001ddf: AND
00001de0: JUMP
00001de1: JUMPDEST
00001de2: PUSH1 0x01
00001de4: PUSH1 0x01
00001de6: PUSH1 0xa0
00001de8: SHL
00001de9: SUB
00001dea: DUP1
00001deb: DUP6
00001dec: AND
00001ded: PUSH1 0x00
00001def: SWAP1
00001df0: DUP2
00001df1: MSTORE
00001df2: PUSH1 0x13
00001df4: PUSH1 0x20
00001df6: MSTORE
00001df7: PUSH1 0x40
00001df9: DUP1
00001dfa: DUP3
00001dfb: KECCAK256
00001dfc: SWAP4
00001dfd: SWAP1
00001dfe: SWAP4
00001dff: SSTORE
00001e00: SWAP1
00001e01: DUP5
00001e02: AND
00001e03: DUP2
00001e04: MSTORE
00001e05: KECCAK256
00001e06: SLOAD
00001e07: PUSH2 0x1e16
00001e0a: SWAP1
00001e0b: DUP3
00001e0c: PUSH4 0xffffffff
00001e11: PUSH2 0x1c60
00001e14: AND
00001e15: JUMP
00001e16: JUMPDEST
00001e17: PUSH1 0x01
00001e19: PUSH1 0x01
00001e1b: PUSH1 0xa0
00001e1d: SHL
00001e1e: SUB
00001e1f: DUP1
00001e20: DUP5
00001e21: AND
00001e22: PUSH1 0x00
00001e24: DUP2
00001e25: DUP2
00001e26: MSTORE
00001e27: PUSH1 0x13
00001e29: PUSH1 0x20
00001e2b: SWAP1
00001e2c: DUP2
00001e2d: MSTORE
00001e2e: PUSH1 0x40
00001e30: SWAP2
00001e31: DUP3
00001e32: SWAP1
00001e33: KECCAK256
00001e34: SWAP5
00001e35: SWAP1
00001e36: SWAP5
00001e37: SSTORE
00001e38: DUP1
00001e39: MLOAD
00001e3a: DUP6
00001e3b: DUP2
00001e3c: MSTORE
00001e3d: SWAP1
00001e3e: MLOAD
00001e3f: SWAP2
00001e40: SWAP4
00001e41: SWAP3
00001e42: DUP8
00001e43: AND
00001e44: SWAP3
00001e45: PUSH1 0x00
00001e47: DUP1
00001e48: MLOAD
00001e49: PUSH1 0x20
00001e4b: PUSH2 0x2534
00001e4e: DUP4
00001e4f: CODECOPY
00001e50: DUP2
00001e51: MLOAD
00001e52: SWAP2
00001e53: MSTORE
00001e54: SWAP3
00001e55: SWAP2
00001e56: DUP3
00001e57: SWAP1
00001e58: SUB
00001e59: ADD
00001e5a: SWAP1
00001e5b: LOG3
00001e5c: POP
00001e5d: POP
00001e5e: POP
00001e5f: JUMP
00001e60: JUMPDEST
00001e61: CALLER
00001e62: SWAP1
00001e63: JUMP
00001e64: JUMPDEST
00001e65: PUSH1 0x01
00001e67: PUSH1 0x01
00001e69: PUSH1 0xa0
00001e6b: SHL
00001e6c: SUB
00001e6d: DUP4
00001e6e: AND
00001e6f: PUSH2 0x1ea9
00001e72: JUMPI
00001e73: PUSH1 0x40
00001e75: MLOAD
00001e76: PUSH3 0x461bcd
00001e7a: PUSH1 0xe5
00001e7c: SHL
00001e7d: DUP2
00001e7e: MSTORE
00001e7f: PUSH1 0x04
00001e81: ADD
00001e82: DUP1
00001e83: DUP1
00001e84: PUSH1 0x20
00001e86: ADD
00001e87: DUP3
00001e88: DUP2
00001e89: SUB
00001e8a: DUP3
00001e8b: MSTORE
00001e8c: PUSH1 0x24
00001e8e: DUP2
00001e8f: MSTORE
00001e90: PUSH1 0x20
00001e92: ADD
00001e93: DUP1
00001e94: PUSH2 0x259a
00001e97: PUSH1 0x24
00001e99: SWAP2
00001e9a: CODECOPY
00001e9b: PUSH1 0x40
00001e9d: ADD
00001e9e: SWAP2
00001e9f: POP
00001ea0: POP
00001ea1: PUSH1 0x40
00001ea3: MLOAD
00001ea4: DUP1
00001ea5: SWAP2
00001ea6: SUB
00001ea7: SWAP1
00001ea8: REVERT
00001ea9: JUMPDEST
00001eaa: PUSH1 0x01
00001eac: PUSH1 0x01
00001eae: PUSH1 0xa0
00001eb0: SHL
00001eb1: SUB
00001eb2: DUP3
00001eb3: AND
00001eb4: PUSH2 0x1eee
00001eb7: JUMPI
00001eb8: PUSH1 0x40
00001eba: MLOAD
00001ebb: PUSH3 0x461bcd
00001ebf: PUSH1 0xe5
00001ec1: SHL
00001ec2: DUP2
00001ec3: MSTORE
00001ec4: PUSH1 0x04
00001ec6: ADD
00001ec7: DUP1
00001ec8: DUP1
00001ec9: PUSH1 0x20
00001ecb: ADD
00001ecc: DUP3
00001ecd: DUP2
00001ece: SUB
00001ecf: DUP3
00001ed0: MSTORE
00001ed1: PUSH1 0x22
00001ed3: DUP2
00001ed4: MSTORE
00001ed5: PUSH1 0x20
00001ed7: ADD
00001ed8: DUP1
00001ed9: PUSH2 0x24a3
00001edc: PUSH1 0x22
00001ede: SWAP2
00001edf: CODECOPY
00001ee0: PUSH1 0x40
00001ee2: ADD
00001ee3: SWAP2
00001ee4: POP
00001ee5: POP
00001ee6: PUSH1 0x40
00001ee8: MLOAD
00001ee9: DUP1
00001eea: SWAP2
00001eeb: SUB
00001eec: SWAP1
00001eed: REVERT
00001eee: JUMPDEST
00001eef: PUSH1 0x01
00001ef1: PUSH1 0x01
00001ef3: PUSH1 0xa0
00001ef5: SHL
00001ef6: SUB
00001ef7: DUP1
00001ef8: DUP5
00001ef9: AND
00001efa: PUSH1 0x00
00001efc: DUP2
00001efd: DUP2
00001efe: MSTORE
00001eff: PUSH1 0x14
00001f01: PUSH1 0x20
00001f03: SWAP1
00001f04: DUP2
00001f05: MSTORE
00001f06: PUSH1 0x40
00001f08: DUP1
00001f09: DUP4
00001f0a: KECCAK256
00001f0b: SWAP5
00001f0c: DUP8
00001f0d: AND
00001f0e: DUP1
00001f0f: DUP5
00001f10: MSTORE
00001f11: SWAP5
00001f12: DUP3
00001f13: MSTORE
00001f14: SWAP2
00001f15: DUP3
00001f16: SWAP1
00001f17: KECCAK256
00001f18: DUP6
00001f19: SWAP1
00001f1a: SSTORE
00001f1b: DUP2
00001f1c: MLOAD
00001f1d: DUP6
00001f1e: DUP2
00001f1f: MSTORE
00001f20: SWAP2
00001f21: MLOAD
00001f22: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
00001f43: SWAP3
00001f44: DUP2
00001f45: SWAP1
00001f46: SUB
00001f47: SWAP1
00001f48: SWAP2
00001f49: ADD
00001f4a: SWAP1
00001f4b: LOG3
00001f4c: POP
00001f4d: POP
00001f4e: POP
00001f4f: JUMP
00001f50: JUMPDEST
00001f51: PUSH1 0x01
00001f53: PUSH1 0x01
00001f55: PUSH1 0xa0
00001f57: SHL
00001f58: SUB
00001f59: DUP3
00001f5a: AND
00001f5b: PUSH2 0x1f95
00001f5e: JUMPI
00001f5f: PUSH1 0x40
00001f61: MLOAD
00001f62: PUSH3 0x461bcd
00001f66: PUSH1 0xe5
00001f68: SHL
00001f69: DUP2
00001f6a: MSTORE
00001f6b: PUSH1 0x04
00001f6d: ADD
00001f6e: DUP1
00001f6f: DUP1
00001f70: PUSH1 0x20
00001f72: ADD
00001f73: DUP3
00001f74: DUP2
00001f75: SUB
00001f76: DUP3
00001f77: MSTORE
00001f78: PUSH1 0x21
00001f7a: DUP2
00001f7b: MSTORE
00001f7c: PUSH1 0x20
00001f7e: ADD
00001f7f: DUP1
00001f80: PUSH2 0x2554
00001f83: PUSH1 0x21
00001f85: SWAP2
00001f86: CODECOPY
00001f87: PUSH1 0x40
00001f89: ADD
00001f8a: SWAP2
00001f8b: POP
00001f8c: POP
00001f8d: PUSH1 0x40
00001f8f: MLOAD
00001f90: DUP1
00001f91: SWAP2
00001f92: SUB
00001f93: SWAP1
00001f94: REVERT
00001f95: JUMPDEST
00001f96: DUP1
00001f97: PUSH2 0x1f9f
00001f9a: JUMPI
00001f9b: PUSH2 0x216c
00001f9e: JUMP
00001f9f: JUMPDEST
00001fa0: PUSH1 0x01
00001fa2: PUSH1 0x01
00001fa4: PUSH1 0xa0
00001fa6: SHL
00001fa7: SUB
00001fa8: DUP3
00001fa9: AND
00001faa: PUSH1 0x00
00001fac: SWAP1
00001fad: DUP2
00001fae: MSTORE
00001faf: PUSH1 0x13
00001fb1: PUSH1 0x20
00001fb3: MSTORE
00001fb4: PUSH1 0x40
00001fb6: SWAP1
00001fb7: KECCAK256
00001fb8: SLOAD
00001fb9: PUSH2 0x1fc1
00001fbc: JUMPI
00001fbd: PUSH2 0x216c
00001fc0: JUMP
00001fc1: JUMPDEST
00001fc2: PUSH1 0x01
00001fc4: PUSH1 0x01
00001fc6: PUSH1 0xa0
00001fc8: SHL
00001fc9: SUB
00001fca: DUP3
00001fcb: AND
00001fcc: PUSH20 0x1111111111111111111111111111111111111111
00001fe1: EQ
00001fe2: PUSH2 0x216c
00001fe5: JUMPI
00001fe6: PUSH2 0x2028
00001fe9: DUP2
00001fea: PUSH1 0x40
00001fec: MLOAD
00001fed: DUP1
00001fee: PUSH1 0x60
00001ff0: ADD
00001ff1: PUSH1 0x40
00001ff3: MSTORE
00001ff4: DUP1
00001ff5: PUSH1 0x22
00001ff7: DUP2
00001ff8: MSTORE
00001ff9: PUSH1 0x20
00001ffb: ADD
00001ffc: PUSH2 0x2481
00001fff: PUSH1 0x22
00002001: SWAP2
00002002: CODECOPY
00002003: PUSH1 0x01
00002005: PUSH1 0x01
00002007: PUSH1 0xa0
00002009: SHL
0000200a: SUB
0000200b: DUP6
0000200c: AND
0000200d: PUSH1 0x00
0000200f: SWAP1
00002010: DUP2
00002011: MSTORE
00002012: PUSH1 0x13
00002014: PUSH1 0x20
00002016: MSTORE
00002017: PUSH1 0x40
00002019: SWAP1
0000201a: KECCAK256
0000201b: SLOAD
0000201c: SWAP2
0000201d: SWAP1
0000201e: PUSH4 0xffffffff
00002023: PUSH2 0x2361
00002026: AND
00002027: JUMP
00002028: JUMPDEST
00002029: PUSH1 0x01
0000202b: PUSH1 0x01
0000202d: PUSH1 0xa0
0000202f: SHL
00002030: SUB
00002031: DUP4
00002032: AND
00002033: PUSH1 0x00
00002035: DUP2
00002036: DUP2
00002037: MSTORE
00002038: PUSH1 0x13
0000203a: PUSH1 0x20
0000203c: SWAP1
0000203d: DUP2
0000203e: MSTORE
0000203f: PUSH1 0x40
00002041: DUP1
00002042: DUP4
00002043: KECCAK256
00002044: SWAP5
00002045: SWAP1
00002046: SWAP5
00002047: SSTORE
00002048: DUP4
00002049: MLOAD
0000204a: DUP6
0000204b: DUP2
0000204c: MSTORE
0000204d: SWAP4
0000204e: MLOAD
0000204f: SWAP2
00002050: SWAP4
00002051: PUSH1 0x00
00002053: DUP1
00002054: MLOAD
00002055: PUSH1 0x20
00002057: PUSH2 0x2534
0000205a: DUP4
0000205b: CODECOPY
0000205c: DUP2
0000205d: MLOAD
0000205e: SWAP2
0000205f: MSTORE
00002060: SWAP3
00002061: SWAP1
00002062: DUP2
00002063: SWAP1
00002064: SUB
00002065: SWAP1
00002066: SWAP2
00002067: ADD
00002068: SWAP1
00002069: LOG3
0000206a: PUSH20 0x1111111111111111111111111111111111111111
0000207f: PUSH1 0x00
00002081: MSTORE
00002082: PUSH1 0x13
00002084: PUSH1 0x20
00002086: MSTORE
00002087: PUSH1 0x00
00002089: DUP1
0000208a: MLOAD
0000208b: PUSH1 0x20
0000208d: PUSH2 0x25be
00002090: DUP4
00002091: CODECOPY
00002092: DUP2
00002093: MLOAD
00002094: SWAP2
00002095: MSTORE
00002096: SLOAD
00002097: PUSH1 0x15
00002099: SLOAD
0000209a: DUP2
0000209b: LT
0000209c: ISZERO
0000209d: PUSH2 0x2154
000020a0: JUMPI
000020a1: PUSH1 0x00
000020a3: PUSH2 0x20ca
000020a6: PUSH2 0x20ba
000020a9: DUP4
000020aa: PUSH1 0x15
000020ac: SLOAD
000020ad: PUSH2 0x1cc1
000020b0: SWAP1
000020b1: SWAP2
000020b2: SWAP1
000020b3: PUSH4 0xffffffff
000020b8: AND
000020b9: JUMP
000020ba: JUMPDEST
000020bb: PUSH2 0x0c76
000020be: DUP5
000020bf: DUP7
000020c0: PUSH4 0xffffffff
000020c5: PUSH2 0x1d03
000020c8: AND
000020c9: JUMP
000020ca: JUMPDEST
000020cb: SWAP1
000020cc: POP
000020cd: PUSH2 0x20dc
000020d0: DUP3
000020d1: DUP3
000020d2: PUSH4 0xffffffff
000020d7: PUSH2 0x1cc1
000020da: AND
000020db: JUMP
000020dc: JUMPDEST
000020dd: PUSH20 0x1111111111111111111111111111111111111111
000020f2: PUSH1 0x00
000020f4: DUP2
000020f5: DUP2
000020f6: MSTORE
000020f7: PUSH1 0x13
000020f9: PUSH1 0x20
000020fb: SWAP1
000020fc: DUP2
000020fd: MSTORE
000020fe: PUSH1 0x00
00002100: DUP1
00002101: MLOAD
00002102: PUSH1 0x20
00002104: PUSH2 0x25be
00002107: DUP4
00002108: CODECOPY
00002109: DUP2
0000210a: MLOAD
0000210b: SWAP2
0000210c: MSTORE
0000210d: SWAP4
0000210e: SWAP1
0000210f: SWAP4
00002110: SSTORE
00002111: PUSH1 0x40
00002113: DUP1
00002114: MLOAD
00002115: DUP6
00002116: DUP2
00002117: MSTORE
00002118: SWAP1
00002119: MLOAD
0000211a: SWAP2
0000211b: SWAP4
0000211c: PUSH1 0x00
0000211e: DUP1
0000211f: MLOAD
00002120: PUSH1 0x20
00002122: PUSH2 0x2534
00002125: DUP4
00002126: CODECOPY
00002127: DUP2
00002128: MLOAD
00002129: SWAP2
0000212a: MSTORE
0000212b: SWAP3
0000212c: SWAP2
0000212d: DUP3
0000212e: SWAP1
0000212f: SUB
00002130: ADD
00002131: SWAP1
00002132: LOG3
00002133: PUSH2 0x214b
00002136: DUP2
00002137: PUSH2 0x0bfd
0000213a: DUP6
0000213b: PUSH1 0x15
0000213d: SLOAD
0000213e: PUSH2 0x1cc1
00002141: SWAP1
00002142: SWAP2
00002143: SWAP1
00002144: PUSH4 0xffffffff
00002149: AND
0000214a: JUMP
0000214b: JUMPDEST
0000214c: PUSH1 0x15
0000214e: SSTORE
0000214f: POP
00002150: PUSH2 0x1b11
00002153: JUMP
00002154: JUMPDEST
00002155: PUSH1 0x15
00002157: SLOAD
00002158: PUSH2 0x2167
0000215b: SWAP1
0000215c: DUP4
0000215d: PUSH4 0xffffffff
00002162: PUSH2 0x1cc1
00002165: AND
00002166: JUMP
00002167: JUMPDEST
00002168: PUSH1 0x15
0000216a: SSTORE
0000216b: POP
0000216c: JUMPDEST
0000216d: POP
0000216e: POP
0000216f: JUMP
00002170: JUMPDEST
00002171: PUSH1 0x01
00002173: PUSH1 0x01
00002175: PUSH1 0xa0
00002177: SHL
00002178: SUB
00002179: DUP4
0000217a: AND
0000217b: PUSH2 0x21b5
0000217e: JUMPI
0000217f: PUSH1 0x40
00002181: MLOAD
00002182: PUSH3 0x461bcd
00002186: PUSH1 0xe5
00002188: SHL
00002189: DUP2
0000218a: MSTORE
0000218b: PUSH1 0x04
0000218d: ADD
0000218e: DUP1
0000218f: DUP1
00002190: PUSH1 0x20
00002192: ADD
00002193: DUP3
00002194: DUP2
00002195: SUB
00002196: DUP3
00002197: MSTORE
00002198: PUSH1 0x25
0000219a: DUP2
0000219b: MSTORE
0000219c: PUSH1 0x20
0000219e: ADD
0000219f: DUP1
000021a0: PUSH2 0x2575
000021a3: PUSH1 0x25
000021a5: SWAP2
000021a6: CODECOPY
000021a7: PUSH1 0x40
000021a9: ADD
000021aa: SWAP2
000021ab: POP
000021ac: POP
000021ad: PUSH1 0x40
000021af: MLOAD
000021b0: DUP1
000021b1: SWAP2
000021b2: SUB
000021b3: SWAP1
000021b4: REVERT
000021b5: JUMPDEST
000021b6: PUSH1 0x01
000021b8: PUSH1 0x01
000021ba: PUSH1 0xa0
000021bc: SHL
000021bd: SUB
000021be: DUP3
000021bf: AND
000021c0: PUSH2 0x21fa
000021c3: JUMPI
000021c4: PUSH1 0x40
000021c6: MLOAD
000021c7: PUSH3 0x461bcd
000021cb: PUSH1 0xe5
000021cd: SHL
000021ce: DUP2
000021cf: MSTORE
000021d0: PUSH1 0x04
000021d2: ADD
000021d3: DUP1
000021d4: DUP1
000021d5: PUSH1 0x20
000021d7: ADD
000021d8: DUP3
000021d9: DUP2
000021da: SUB
000021db: DUP3
000021dc: MSTORE
000021dd: PUSH1 0x23
000021df: DUP2
000021e0: MSTORE
000021e1: PUSH1 0x20
000021e3: ADD
000021e4: DUP1
000021e5: PUSH2 0x245e
000021e8: PUSH1 0x23
000021ea: SWAP2
000021eb: CODECOPY
000021ec: PUSH1 0x40
000021ee: ADD
000021ef: SWAP2
000021f0: POP
000021f1: POP
000021f2: PUSH1 0x40
000021f4: MLOAD
000021f5: DUP1
000021f6: SWAP2
000021f7: SUB
000021f8: SWAP1
000021f9: REVERT
000021fa: JUMPDEST
000021fb: PUSH2 0x223d
000021fe: DUP2
000021ff: PUSH1 0x40
00002201: MLOAD
00002202: DUP1
00002203: PUSH1 0x60
00002205: ADD
00002206: PUSH1 0x40
00002208: MSTORE
00002209: DUP1
0000220a: PUSH1 0x26
0000220c: DUP2
0000220d: MSTORE
0000220e: PUSH1 0x20
00002210: ADD
00002211: PUSH2 0x24c5
00002214: PUSH1 0x26
00002216: SWAP2
00002217: CODECOPY
00002218: PUSH1 0x01
0000221a: PUSH1 0x01
0000221c: PUSH1 0xa0
0000221e: SHL
0000221f: SUB
00002220: DUP7
00002221: AND
00002222: PUSH1 0x00
00002224: SWAP1
00002225: DUP2
00002226: MSTORE
00002227: PUSH1 0x13
00002229: PUSH1 0x20
0000222b: MSTORE
0000222c: PUSH1 0x40
0000222e: SWAP1
0000222f: KECCAK256
00002230: SLOAD
00002231: SWAP2
00002232: SWAP1
00002233: PUSH4 0xffffffff
00002238: PUSH2 0x2361
0000223b: AND
0000223c: JUMP
0000223d: JUMPDEST
0000223e: PUSH1 0x01
00002240: PUSH1 0x01
00002242: PUSH1 0xa0
00002244: SHL
00002245: SUB
00002246: DUP1
00002247: DUP6
00002248: AND
00002249: PUSH1 0x00
0000224b: SWAP1
0000224c: DUP2
0000224d: MSTORE
0000224e: PUSH1 0x13
00002250: PUSH1 0x20
00002252: MSTORE
00002253: PUSH1 0x40
00002255: DUP1
00002256: DUP3
00002257: KECCAK256
00002258: SWAP4
00002259: SWAP1
0000225a: SWAP4
0000225b: SSTORE
0000225c: SWAP1
0000225d: DUP5
0000225e: AND
0000225f: DUP2
00002260: MSTORE
00002261: KECCAK256
00002262: SLOAD
00002263: PUSH2 0x2272
00002266: SWAP1
00002267: DUP3
00002268: PUSH4 0xffffffff
0000226d: PUSH2 0x1c60
00002270: AND
00002271: JUMP
00002272: JUMPDEST
00002273: PUSH1 0x01
00002275: PUSH1 0x01
00002277: PUSH1 0xa0
00002279: SHL
0000227a: SUB
0000227b: DUP1
0000227c: DUP5
0000227d: AND
0000227e: PUSH1 0x00
00002280: DUP2
00002281: DUP2
00002282: MSTORE
00002283: PUSH1 0x13
00002285: PUSH1 0x20
00002287: SWAP1
00002288: DUP2
00002289: MSTORE
0000228a: PUSH1 0x40
0000228c: SWAP2
0000228d: DUP3
0000228e: SWAP1
0000228f: KECCAK256
00002290: SWAP5
00002291: SWAP1
00002292: SWAP5
00002293: SSTORE
00002294: DUP1
00002295: MLOAD
00002296: DUP6
00002297: DUP2
00002298: MSTORE
00002299: SWAP1
0000229a: MLOAD
0000229b: SWAP2
0000229c: SWAP4
0000229d: SWAP3
0000229e: DUP8
0000229f: AND
000022a0: SWAP3
000022a1: PUSH1 0x00
000022a3: DUP1
000022a4: MLOAD
000022a5: PUSH1 0x20
000022a7: PUSH2 0x2534
000022aa: DUP4
000022ab: CODECOPY
000022ac: DUP2
000022ad: MLOAD
000022ae: SWAP2
000022af: MSTORE
000022b0: SWAP3
000022b1: SWAP2
000022b2: DUP3
000022b3: SWAP1
000022b4: SUB
000022b5: ADD
000022b6: SWAP1
000022b7: LOG3
000022b8: PUSH1 0x01
000022ba: PUSH1 0x01
000022bc: PUSH1 0xa0
000022be: SHL
000022bf: SUB
000022c0: DUP4
000022c1: AND
000022c2: PUSH1 0x00
000022c4: SWAP1
000022c5: DUP2
000022c6: MSTORE
000022c7: PUSH1 0x0b
000022c9: PUSH1 0x20
000022cb: MSTORE
000022cc: PUSH1 0x40
000022ce: SWAP1
000022cf: KECCAK256
000022d0: SLOAD
000022d1: DUP1
000022d2: PUSH2 0x22de
000022d5: JUMPI
000022d6: POP
000022d7: PUSH1 0x08
000022d9: SLOAD
000022da: PUSH2 0x22ec
000022dd: JUMP
000022de: JUMPDEST
000022df: PUSH2 0x2710
000022e2: DUP2
000022e3: GT
000022e4: ISZERO
000022e5: PUSH2 0x22ec
000022e8: JUMPI
000022e9: POP
000022ea: PUSH1 0x00
000022ec: JUMPDEST
000022ed: PUSH1 0x01
000022ef: PUSH1 0x01
000022f1: PUSH1 0xa0
000022f3: SHL
000022f4: SUB
000022f5: DUP4
000022f6: AND
000022f7: PUSH1 0x00
000022f9: SWAP1
000022fa: DUP2
000022fb: MSTORE
000022fc: PUSH1 0x0c
000022fe: PUSH1 0x20
00002300: MSTORE
00002301: PUSH1 0x40
00002303: SWAP1
00002304: KECCAK256
00002305: SLOAD
00002306: DUP1
00002307: PUSH2 0x2313
0000230a: JUMPI
0000230b: POP
0000230c: PUSH1 0x08
0000230e: SLOAD
0000230f: PUSH2 0x2321
00002312: JUMP
00002313: JUMPDEST
00002314: PUSH2 0x2710
00002317: DUP2
00002318: GT
00002319: ISZERO
0000231a: PUSH2 0x2321
0000231d: JUMPI
0000231e: POP
0000231f: PUSH1 0x00
00002321: JUMPDEST
00002322: DUP2
00002323: DUP2
00002324: DUP2
00002325: GT
00002326: ISZERO
00002327: PUSH2 0x232d
0000232a: JUMPI
0000232b: POP
0000232c: DUP1
0000232d: JUMPDEST
0000232e: DUP1
0000232f: ISZERO
00002330: PUSH2 0x2359
00002333: JUMPI
00002334: PUSH1 0x00
00002336: PUSH2 0x234b
00002339: PUSH2 0x2710
0000233c: PUSH2 0x0c76
0000233f: DUP8
00002340: DUP6
00002341: PUSH4 0xffffffff
00002346: PUSH2 0x1d03
00002349: AND
0000234a: JUMP
0000234b: JUMPDEST
0000234c: SWAP1
0000234d: POP
0000234e: PUSH2 0x2357
00002351: DUP7
00002352: DUP3
00002353: PUSH2 0x1f50
00002356: JUMP
00002357: JUMPDEST
00002358: POP
00002359: JUMPDEST
0000235a: POP
0000235b: POP
0000235c: POP
0000235d: POP
0000235e: POP
0000235f: POP
00002360: JUMP
00002361: JUMPDEST
00002362: PUSH1 0x00
00002364: DUP2
00002365: DUP5
00002366: DUP5
00002367: GT
00002368: ISZERO
00002369: PUSH2 0x23f0
0000236c: JUMPI
0000236d: PUSH1 0x40
0000236f: MLOAD
00002370: PUSH3 0x461bcd
00002374: PUSH1 0xe5
00002376: SHL
00002377: DUP2
00002378: MSTORE
00002379: PUSH1 0x04
0000237b: ADD
0000237c: DUP1
0000237d: DUP1
0000237e: PUSH1 0x20
00002380: ADD
00002381: DUP3
00002382: DUP2
00002383: SUB
00002384: DUP3
00002385: MSTORE
00002386: DUP4
00002387: DUP2
00002388: DUP2
00002389: MLOAD
0000238a: DUP2
0000238b: MSTORE
0000238c: PUSH1 0x20
0000238e: ADD
0000238f: SWAP2
00002390: POP
00002391: DUP1
00002392: MLOAD
00002393: SWAP1
00002394: PUSH1 0x20
00002396: ADD
00002397: SWAP1
00002398: DUP1
00002399: DUP4
0000239a: DUP4
0000239b: PUSH1 0x00
0000239d: JUMPDEST
0000239e: DUP4
0000239f: DUP2
000023a0: LT
000023a1: ISZERO
000023a2: PUSH2 0x23b5
000023a5: JUMPI
000023a6: DUP2
000023a7: DUP2
000023a8: ADD
000023a9: MLOAD
000023aa: DUP4
000023ab: DUP3
000023ac: ADD
000023ad: MSTORE
000023ae: PUSH1 0x20
000023b0: ADD
000023b1: PUSH2 0x239d
000023b4: JUMP
000023b5: JUMPDEST
000023b6: POP
000023b7: POP
000023b8: POP
000023b9: POP
000023ba: SWAP1
000023bb: POP
000023bc: SWAP1
000023bd: DUP2
000023be: ADD
000023bf: SWAP1
000023c0: PUSH1 0x1f
000023c2: AND
000023c3: DUP1
000023c4: ISZERO
000023c5: PUSH2 0x23e2
000023c8: JUMPI
000023c9: DUP1
000023ca: DUP3
000023cb: SUB
000023cc: DUP1
000023cd: MLOAD
000023ce: PUSH1 0x01
000023d0: DUP4
000023d1: PUSH1 0x20
000023d3: SUB
000023d4: PUSH2 0x0100
000023d7: EXP
000023d8: SUB
000023d9: NOT
000023da: AND
000023db: DUP2
000023dc: MSTORE
000023dd: PUSH1 0x20
000023df: ADD
000023e0: SWAP2
000023e1: POP
000023e2: JUMPDEST
000023e3: POP
000023e4: SWAP3
000023e5: POP
000023e6: POP
000023e7: POP
000023e8: PUSH1 0x40
000023ea: MLOAD
000023eb: DUP1
000023ec: SWAP2
000023ed: SUB
000023ee: SWAP1
000023ef: REVERT
000023f0: JUMPDEST
000023f1: POP
000023f2: POP
000023f3: POP
000023f4: SWAP1
000023f5: SUB
000023f6: SWAP1
000023f7: JUMP
000023f8: JUMPDEST
000023f9: PUSH1 0x00
000023fb: DUP2
000023fc: DUP4
000023fd: PUSH2 0x2447
00002400: JUMPI
00002401: PUSH1 0x40
00002403: MLOAD
00002404: PUSH3 0x461bcd
00002408: PUSH1 0xe5
0000240a: SHL
0000240b: DUP2
0000240c: MSTORE
0000240d: PUSH1 0x20
0000240f: PUSH1 0x04
00002411: DUP3
00002412: ADD
00002413: DUP2
00002414: DUP2
00002415: MSTORE
00002416: DUP4
00002417: MLOAD
00002418: PUSH1 0x24
0000241a: DUP5
0000241b: ADD
0000241c: MSTORE
0000241d: DUP4
0000241e: MLOAD
0000241f: SWAP1
00002420: SWAP3
00002421: DUP4
00002422: SWAP3
00002423: PUSH1 0x44
00002425: SWAP1
00002426: SWAP2
00002427: ADD
00002428: SWAP2
00002429: SWAP1
0000242a: DUP6
0000242b: ADD
0000242c: SWAP1
0000242d: DUP1
0000242e: DUP4
0000242f: DUP4
00002430: PUSH1 0x00
00002432: DUP4
00002433: ISZERO
00002434: PUSH2 0x23b5
00002437: JUMPI
00002438: DUP2
00002439: DUP2
0000243a: ADD
0000243b: MLOAD
0000243c: DUP4
0000243d: DUP3
0000243e: ADD
0000243f: MSTORE
00002440: PUSH1 0x20
00002442: ADD
00002443: PUSH2 0x239d
00002446: JUMP
00002447: JUMPDEST
00002448: POP
00002449: PUSH1 0x00
0000244b: DUP4
0000244c: DUP6
0000244d: DUP2
0000244e: PUSH2 0x2453
00002451: JUMPI
00002452: INVALID
00002453: JUMPDEST
00002454: DIV
00002455: SWAP6
00002456: SWAP5
00002457: POP
00002458: POP
00002459: POP
0000245a: POP
0000245b: POP
0000245c: JUMP
0000245d: INVALID
0000245e: GASLIMIT
0000245f: MSTORE
00002460: NUMBER
00002461: ORIGIN
00002462: ADDRESS
00002463: GASPRICE
00002464: KECCAK256
00002465: PUSH21 0x72616e7366657220746f20746865207a65726f2061
0000247b: PUSH5 0x6472657373
00002481: GASLIMIT
00002482: MSTORE
00002483: NUMBER
00002484: ORIGIN
00002485: ADDRESS
00002486: GASPRICE
00002487: KECCAK256
00002488: PUSH3 0x75726e
0000248c: KECCAK256
0000248d: PUSH2 0x6d6f
00002490: PUSH22 0x6e7420657863656564732062616c616e636545524332
000024a7: ADDRESS
000024a8: GASPRICE
000024a9: KECCAK256
000024aa: PUSH2 0x7070
000024ad: PUSH19 0x6f766520746f20746865207a65726f20616464
000024c1: PUSH19 0x65737345524332303a207472616e7366657220
000024d5: PUSH2 0x6d6f
000024d8: PUSH22 0x6e7420657863656564732062616c616e636553616665
000024ef: UNKNOWN(0x4D)
000024f0: PUSH2 0x7468
000024f3: GASPRICE
000024f4: KECCAK256
000024f5: PUSH14 0x756c7469706c69636174696f6e20
00002504: PUSH16 0x766572666c6f7745524332303a207472
00002515: PUSH2 0x6e73
00002518: PUSH7 0x657220616d6f75
00002520: PUSH15 0x74206578636565647320616c6c6f77
00002530: PUSH2 0x6e63
00002533: PUSH6 0xddf252ad1be2
0000253a: UNKNOWN(0xC8)
0000253b: SWAP12
0000253c: PUSH10 0xc2b068fc378daa952ba7
00002547: CALL
00002548: PUSH4 0xc4a11628
0000254d: CREATE2
0000254e: GAS
0000254f: UNKNOWN(0x4D)
00002550: CREATE2
00002551: UNKNOWN(0x23)
00002552: UNKNOWN(0xB3)
00002553: UNKNOWN(0xEF)
00002554: GASLIMIT
00002555: MSTORE
00002556: NUMBER
00002557: ORIGIN
00002558: ADDRESS
00002559: GASPRICE
0000255a: KECCAK256
0000255b: PUSH3 0x75726e
0000255f: KECCAK256
00002560: PUSH7 0x726f6d20746865
00002568: KECCAK256
00002569: PUSH27 0x65726f206164647265737345524332303a207472616e7366657220
00002585: PUSH7 0x726f6d20746865
0000258d: KECCAK256
0000258e: PUSH27 0x65726f206164647265737345524332303a20617070726f76652066
000025aa: PUSH19 0x6f6d20746865207a65726f2061646472657373
000025be: UNKNOWN(0xB8)
000025bf: UNKNOWN(0x0C)
000025c0: UNKNOWN(0x4D)
000025c1: UNKNOWN(0xB4)
000025c2: SAR
000025c3: PUSH21 0xa7d9fa7e40985cc7e838aad3e70f26bd87a5ba2786
000025d9: UNKNOWN(0x2C)
000025da: SSTORE
000025db: DUP10
000025dc: SSTORE
000025dd: PUSH3 0x4b6974
000025e1: PUSH21 0x656e537761703a20494e53554646494349454e545f
000025f7: UNKNOWN(0x4F)
000025f8: SSTORE
000025f9: SLOAD
000025fa: POP
000025fb: SSTORE
000025fc: SLOAD
000025fd: PUSH0
000025fe: COINBASE
000025ff: UNKNOWN(0x4D)
00002600: UNKNOWN(0x4F)
00002601: SSTORE
00002602: UNKNOWN(0x4E)
00002603: SLOAD
00002604: GASLIMIT
00002605: MSTORE
00002606: NUMBER
00002607: ORIGIN
00002608: ADDRESS
00002609: GASPRICE
0000260a: KECCAK256
0000260b: PUSH5 0x6563726561
00002611: PUSH20 0x656420616c6c6f77616e63652062656c6f77207a
00002626: PUSH6 0x726fa265627a
0000262d: PUSH27 0x723158209f02fe762af55ad2d1716063cbaffebb244b86d4b2b16c
00002649: UNKNOWN(0xC1)
0000264a: UNKNOWN(0xEC)
0000264b: UNKNOWN(0xDE)
0000264c: ADDMOD
0000264d: PUSH31

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high math codex AutoBoost reserve burn enables ETH‑neutral buy/sell loops that ratchet price upward 85 no
view
evidence_json
{
    "evidence": "sellToken burns before pricing and _burn() auto\u2011burns tokenFactoryAddr reserve (extraBurn), then pricing uses the reduced oldTokenReserve. buyToken\u2019s formula is symmetric, so buy\u2192sell of the same tokens returns the same ETH while extraBurn permanently shrinks reserves.",
    "locations": [
        "contracts/Contract.sol:243",
        "contracts/Contract.sol:261",
        "contracts/Contract.sol:352",
        "contracts/Contract.sol:358",
        "contracts/Contract.sol:310",
        "contracts/Contract.sol:361"
    ],
    "recommendation": "Do not let sell\u2011side burns reduce reserves used for pricing without compensating ETH loss. Options: (a) move reserve\u2011burning logic to after pricing and ETH payout, (b) incorporate extraBurn into the pricing formula (so buy\u2192sell is ETH\u2011lossy), or (c) apply a fee or reduce sell payout so round\u2011trips cannot be ETH\u2011neutral.",
    "exploit_scenario": "1) Buy LIQUID to establish a position (buyToken). 2) Repeatedly call buyToken with the max allowed ETH per tx (default 0.001 ETH), then immediately sellToken the exact amount received. Because _burn() reduces the tokenFactoryAddr reserve (extraBurn) before sellToken reads oldTokenReserve, each loop returns essentially the same ETH you put in but permanently shrinks token reserves, increasing the price. 3) After enough loops, sell your held LIQUID to extract more ETH than you originally paid. Profit potential: scales with loop count and token holdings; upper bound is on the order of the contract\u2019s ETH reserve (initial 2100 ETH + current balance \u2212 treasury)."
}
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xd9b69774",
            "selector": "0xd9b69774",
            "calldata_variants": [
                "0xd9b69774",
                "0xd9b697740000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xeb0ee934",
            "selector": "0xeb0ee934",
            "calldata_variants": [
                "0xeb0ee934",
                "0xeb0ee9340000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf1d9f88b",
            "selector": "0xf1d9f88b",
            "calldata_variants": [
                "0xf1d9f88b",
                "0xf1d9f88b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa59e6d4",
            "selector": "0xfa59e6d4",
            "calldata_variants": [
                "0xfa59e6d4",
                "0xfa59e6d40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xff71b4e5",
            "selector": "0xff71b4e5",
            "calldata_variants": [
                "0xff71b4e5",
                "0xff71b4e50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc21d74fe",
            "selector": "0xc21d74fe",
            "calldata_variants": [
                "0xc21d74fe",
                "0xc21d74fe0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc83ce00a",
            "selector": "0xc83ce00a",
            "calldata_variants": [
                "0xc83ce00a",
                "0xc83ce00a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 2610,
            "type": "tx_origin_used"
        },
        {
            "pc": 4310,
            "type": "tx_origin_used"
        },
        {
            "pc": 2609,
            "type": "tx_origin_used"
        },
        {
            "pc": 4309,
            "type": "tx_origin_used"
        },
        {
            "pc": 9313,
            "type": "tx_origin_used"
        },
        {
            "pc": 9348,
            "type": "tx_origin_used"
        },
        {
            "pc": 9559,
            "type": "tx_origin_used"
        },
        {
            "pc": 9735,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0xb7031ec8172301046ebd2704a89140ef0addf061e7e000d705f63029b0f6f92c
call_targets: 0xc618d56b6d606e59c6b87af724ab5a91eb40d1cb
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xb7031ec8172301046ebd2704a89140ef0addf061e7e000d705f63029b0f6f92c",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xc618d56b6d606e59c6b87af724ab5a91eb40d1cb"
    ],
    "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": "0xd9b69774",
            "selector": "0xd9b69774",
            "calldata_variants": [
                "0xd9b69774",
                "0xd9b697740000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xeb0ee934",
            "selector": "0xeb0ee934",
            "calldata_variants": [
                "0xeb0ee934",
                "0xeb0ee9340000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf1d9f88b",
            "selector": "0xf1d9f88b",
            "calldata_variants": [
                "0xf1d9f88b",
                "0xf1d9f88b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa59e6d4",
            "selector": "0xfa59e6d4",
            "calldata_variants": [
                "0xfa59e6d4",
                "0xfa59e6d40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xff71b4e5",
            "selector": "0xff71b4e5",
            "calldata_variants": [
                "0xff71b4e5",
                "0xff71b4e50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc21d74fe",
            "selector": "0xc21d74fe",
            "calldata_variants": [
                "0xc21d74fe",
                "0xc21d74fe0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc83ce00a",
            "selector": "0xc83ce00a",
            "calldata_variants": [
                "0xc83ce00a",
                "0xc83ce00a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 5047,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5108,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6907,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 4,
    "guards_detected": [
        {
            "pc": 2610,
            "type": "tx_origin_used"
        },
        {
            "pc": 4310,
            "type": "tx_origin_used"
        },
        {
            "pc": 2609,
            "type": "tx_origin_used"
        },
        {
            "pc": 4309,
            "type": "tx_origin_used"
        },
        {
            "pc": 9313,
            "type": "tx_origin_used"
        },
        {
            "pc": 9348,
            "type": "tx_origin_used"
        },
        {
            "pc": 9559,
            "type": "tx_origin_used"
        },
        {
            "pc": 9735,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 3
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0xb7031ec8172301046ebd2704a89140ef0addf061e7e000d705f63029b0f6f92c
call_targets: 0xc618d56b6d606e59c6b87af724ab5a91eb40d1cb
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xb7031ec8172301046ebd2704a89140ef0addf061e7e000d705f63029b0f6f92c",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xc618d56b6d606e59c6b87af724ab5a91eb40d1cb"
    ],
    "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": "0xd9b69774",
            "selector": "0xd9b69774",
            "calldata_variants": [
                "0xd9b69774",
                "0xd9b697740000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xeb0ee934",
            "selector": "0xeb0ee934",
            "calldata_variants": [
                "0xeb0ee934",
                "0xeb0ee9340000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf1d9f88b",
            "selector": "0xf1d9f88b",
            "calldata_variants": [
                "0xf1d9f88b",
                "0xf1d9f88b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa59e6d4",
            "selector": "0xfa59e6d4",
            "calldata_variants": [
                "0xfa59e6d4",
                "0xfa59e6d40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xff71b4e5",
            "selector": "0xff71b4e5",
            "calldata_variants": [
                "0xff71b4e5",
                "0xff71b4e50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc21d74fe",
            "selector": "0xc21d74fe",
            "calldata_variants": [
                "0xc21d74fe",
                "0xc21d74fe0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc83ce00a",
            "selector": "0xc83ce00a",
            "calldata_variants": [
                "0xc83ce00a",
                "0xc83ce00a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 5047,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5108,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6907,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 4,
    "guards_detected": [
        {
            "pc": 2610,
            "type": "tx_origin_used"
        },
        {
            "pc": 4310,
            "type": "tx_origin_used"
        },
        {
            "pc": 2609,
            "type": "tx_origin_used"
        },
        {
            "pc": 4309,
            "type": "tx_origin_used"
        },
        {
            "pc": 9313,
            "type": "tx_origin_used"
        },
        {
            "pc": 9348,
            "type": "tx_origin_used"
        },
        {
            "pc": 9559,
            "type": "tx_origin_used"
        },
        {
            "pc": 9735,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0xed23a6d06e8a1bff1a0076e6b6db2236ef4b0ab03fbcc4fea2434cdc4411b87e
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0xed23a6d06e8a1bff1a0076e6b6db2236ef4b0ab03fbcc4fea2434cdc4411b87e",
    "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": "0xd9b69774",
            "selector": "0xd9b69774",
            "calldata_variants": [
                "0xd9b69774",
                "0xd9b697740000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xeb0ee934",
            "selector": "0xeb0ee934",
            "calldata_variants": [
                "0xeb0ee934",
                "0xeb0ee9340000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf1d9f88b",
            "selector": "0xf1d9f88b",
            "calldata_variants": [
                "0xf1d9f88b",
                "0xf1d9f88b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa59e6d4",
            "selector": "0xfa59e6d4",
            "calldata_variants": [
                "0xfa59e6d4",
                "0xfa59e6d40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xff71b4e5",
            "selector": "0xff71b4e5",
            "calldata_variants": [
                "0xff71b4e5",
                "0xff71b4e50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc21d74fe",
            "selector": "0xc21d74fe",
            "calldata_variants": [
                "0xc21d74fe",
                "0xc21d74fe0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc83ce00a",
            "selector": "0xc83ce00a",
            "calldata_variants": [
                "0xc83ce00a",
                "0xc83ce00a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 0,
    "create2_count": 2
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 0,
    "create2_count": 2
}