019be3d6-8201-73d9-b7fe-2f43c4915ca9
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 40568 | artifact.fetch | complete | 1 / 3 | 2 months ago |
| 40569 | proxy.resolve | complete | 1 / 3 | 2 months ago |
| 40570 | tool.cast_disasm | complete | 1 / 3 | 2 months ago |
| 40571 | analysis.bundle | complete | 1 / 3 | 2 months ago |
| 40572 | capability.graph | complete | 1 / 3 | 2 months ago |
| 40573 | detector.run | complete | 1 / 3 | 2 months ago |
| 40574 | validation.fork | complete | 1 / 3 | 2 months ago |
| 41241 | report.consolidate | complete | 1 / 6 | 2 months ago |
| 41242 | tool.slither | complete | 1 / 2 | 2 months ago |
{
"status": "not_proxy"
}
'forge clean' running (wd: /tmp/slither-ltu3tt7n) 'forge config --json' running 'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-ltu3tt7n) ExchangeProxy.transferAll(TokenInterface,uint256) (contracts/Contract.sol#775-788) sends eth to arbitrary user Dangerous calls: - (xfer,None) = msg.sender.call.value(amount)() (contracts/Contract.sol#782-785) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#functions-that-send-ether-to-arbitrary-destinations ExchangeProxy.calcEffectiveLiquidity(uint256,uint256,uint256) (contracts/Contract.sol#701-710) performs a multiplication on the result of a division: - effectiveLiquidity = tokenWeightIn.mul(BONE).div(tokenWeightOut.add(tokenWeightIn)).mul(tokenBalanceOut).div(BONE) (contracts/Contract.sol#706-709) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#divide-before-multiply ExchangeProxy.transferAll(TokenInterface,uint256) (contracts/Contract.sol#775-788) uses a dangerous strict equality: - amount == 0 (contracts/Contract.sol#777) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dangerous-strict-equalities ExchangeProxy.viewSplitExactIn(address,address,uint256,uint256).sumEffectiveLiquidity (contracts/Contract.sol#584) is a local variable never initialized ExchangeProxy.viewSplitExactOut(address,address,uint256,uint256).totalInputAmount (contracts/Contract.sol#642) is a local variable never initialized ExchangeProxy.viewSplitExactIn(address,address,uint256,uint256).totalInputAmount (contracts/Contract.sol#595-596) is a local variable never initialized ExchangeProxy.multihopBatchSwapExactIn(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256,uint256).tokenAmountOut (contracts/Contract.sol#406-410) is a local variable never initialized ExchangeProxy.viewSplitExactOut(address,address,uint256,uint256).sumEffectiveLiquidity (contracts/Contract.sol#628-629) is a local variable never initialized Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-local-variables ExchangeProxy.batchSwapExactIn(ExchangeProxy.Swap[],TokenInterface,TokenInterface,uint256,uint256) (contracts/Contract.sol#324-361) ignores return value by SwapTokenIn.approve(swap.pool,0) (contracts/Contract.sol#345) ExchangeProxy.batchSwapExactIn(ExchangeProxy.Swap[],TokenInterface,TokenInterface,uint256,uint256) (contracts/Contract.sol#324-361) ignores return value by SwapTokenIn.approve(swap.pool,swap.swapAmount) (contracts/Contract.sol#347-348) ExchangeProxy.batchSwapExactIn(ExchangeProxy.Swap[],TokenInterface,TokenInterface,uint256,uint256) (contracts/Contract.sol#324-361) ignores return value by (tokenAmountOut,None) = pool.swapExactAmountIn(swap.tokenIn,swap.swapAmount,swap.tokenOut,swap.limitReturnAmount,swap.maxPrice) (contracts/Contract.sol#348-357) ExchangeProxy.batchSwapExactOut(ExchangeProxy.Swap[],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#361-398) ignores return value by SwapTokenIn.approve(swap.pool,0) (contracts/Contract.sol#380-382) ExchangeProxy.batchSwapExactOut(ExchangeProxy.Swap[],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#361-398) ignores return value by SwapTokenIn.approve(swap.pool,swap.limitReturnAmount) (contracts/Contract.sol#382-384) ExchangeProxy.batchSwapExactOut(ExchangeProxy.Swap[],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#361-398) ignores return value by (tokenAmountIn,None) = pool.swapExactAmountOut(swap.tokenIn,swap.limitReturnAmount,swap.tokenOut,swap.swapAmount,swap.maxPrice) (contracts/Contract.sol#385-392) ExchangeProxy.multihopBatchSwapExactIn(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256,uint256) (contracts/Contract.sol#398-443) ignores return value by SwapTokenIn.approve(swap.pool,0) (contracts/Contract.sol#427-428) ExchangeProxy.multihopBatchSwapExactIn(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256,uint256) (contracts/Contract.sol#398-443) ignores return value by SwapTokenIn.approve(swap.pool,swap.swapAmount) (contracts/Contract.sol#429) ExchangeProxy.multihopBatchSwapExactIn(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256,uint256) (contracts/Contract.sol#398-443) ignores return value by (tokenAmountOut,None) = pool.swapExactAmountIn(swap.tokenIn,swap.swapAmount,swap.tokenOut,swap.limitReturnAmount,swap.maxPrice) (contracts/Contract.sol#430-438) ExchangeProxy.multihopBatchSwapExactOut(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#443-530) ignores return value by SwapTokenIn.approve(swap.pool,0) (contracts/Contract.sol#470-471) ExchangeProxy.multihopBatchSwapExactOut(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#443-530) ignores return value by SwapTokenIn.approve(swap.pool,swap.limitReturnAmount) (contracts/Contract.sol#472) ExchangeProxy.multihopBatchSwapExactOut(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#443-530) ignores return value by (tokenAmountInFirstSwap,None) = pool.swapExactAmountOut(swap.tokenIn,swap.limitReturnAmount,swap.tokenOut,swap.swapAmount,swap.maxPrice) (contracts/Contract.sol#473-480) ExchangeProxy.multihopBatchSwapExactOut(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#443-530) ignores return value by FirstSwapTokenIn.approve(firstSwap.pool,uint256(- 1)) (contracts/Contract.sol#503-504) ExchangeProxy.multihopBatchSwapExactOut(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#443-530) ignores return value by (tokenAmountInFirstSwap,None) = poolFirstSwap.swapExactAmountOut(firstSwap.tokenIn,firstSwap.limitReturnAmount,firstSwap.tokenOut,intermediateTokenAmount,firstSwap.maxPrice) (contracts/Contract.sol#506-511) ExchangeProxy.multihopBatchSwapExactOut(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#443-530) ignores return value by SecondSwapTokenIn.approve(secondSwap.pool,uint256(- 1)) (contracts/Contract.sol#517-518) ExchangeProxy.multihopBatchSwapExactOut(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#443-530) ignores return value by poolSecondSwap.swapExactAmountOut(secondSwap.tokenIn,secondSwap.limitReturnAmount,secondSwap.tokenOut,secondSwap.swapAmount,secondSwap.maxPrice) (contracts/Contract.sol#518-524) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return ExchangeProxy.batchSwapExactIn(ExchangeProxy.Swap[],TokenInterface,TokenInterface,uint256,uint256) (contracts/Contract.sol#324-361) has external calls inside a loop: SwapTokenIn.allowance(address(this),swap.pool) > 0 (contracts/Contract.sol#342-344) ExchangeProxy.batchSwapExactIn(ExchangeProxy.Swap[],TokenInterface,TokenInterface,uint256,uint256) (contracts/Contract.sol#324-361) has external calls inside a loop: SwapTokenIn.approve(swap.pool,0) (contracts/Contract.sol#345) ExchangeProxy.batchSwapExactIn(ExchangeProxy.Swap[],TokenInterface,TokenInterface,uint256,uint256) (contracts/Contract.sol#324-361) has external calls inside a loop: SwapTokenIn.approve(swap.pool,swap.swapAmount) (contracts/Contract.sol#347-348) ExchangeProxy.batchSwapExactIn(ExchangeProxy.Swap[],TokenInterface,TokenInterface,uint256,uint256) (contracts/Contract.sol#324-361) has external calls inside a loop: (tokenAmountOut,None) = pool.swapExactAmountIn(swap.tokenIn,swap.swapAmount,swap.tokenOut,swap.limitReturnAmount,swap.maxPrice) (contracts/Contract.sol#348-357) ExchangeProxy.batchSwapExactOut(ExchangeProxy.Swap[],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#361-398) has external calls inside a loop: SwapTokenIn.allowance(address(this),swap.pool) > 0 (contracts/Contract.sol#377-380) ExchangeProxy.batchSwapExactOut(ExchangeProxy.Swap[],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#361-398) has external calls inside a loop: SwapTokenIn.approve(swap.pool,0) (contracts/Contract.sol#380-382) ExchangeProxy.batchSwapExactOut(ExchangeProxy.Swap[],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#361-398) has external calls inside a loop: SwapTokenIn.approve(swap.pool,swap.limitReturnAmount) (contracts/Contract.sol#382-384) ExchangeProxy.batchSwapExactOut(ExchangeProxy.Swap[],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#361-398) has external calls inside a loop: (tokenAmountIn,None) = pool.swapExactAmountOut(swap.tokenIn,swap.limitReturnAmount,swap.tokenOut,swap.swapAmount,swap.maxPrice) (contracts/Contract.sol#385-392) ExchangeProxy.multihopBatchSwapExactIn(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256,uint256) (contracts/Contract.sol#398-443) has external calls inside a loop: SwapTokenIn.allowance(address(this),swap.pool) > 0 (contracts/Contract.sol#426-427) ExchangeProxy.multihopBatchSwapExactIn(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256,uint256) (contracts/Contract.sol#398-443) has external calls inside a loop: SwapTokenIn.approve(swap.pool,0) (contracts/Contract.sol#427-428) ExchangeProxy.multihopBatchSwapExactIn(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256,uint256) (contracts/Contract.sol#398-443) has external calls inside a loop: SwapTokenIn.approve(swap.pool,swap.swapAmount) (contracts/Contract.sol#429) ExchangeProxy.multihopBatchSwapExactIn(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256,uint256) (contracts/Contract.sol#398-443) has external calls inside a loop: (tokenAmountOut,None) = pool.swapExactAmountIn(swap.tokenIn,swap.swapAmount,swap.tokenOut,swap.limitReturnAmount,swap.maxPrice) (contracts/Contract.sol#430-438) ExchangeProxy.multihopBatchSwapExactOut(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#443-530) has external calls inside a loop: SwapTokenIn.allowance(address(this),swap.pool) > 0 (contracts/Contract.sol#468-470) ExchangeProxy.multihopBatchSwapExactOut(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#443-530) has external calls inside a loop: SwapTokenIn.approve(swap.pool,0) (contracts/Contract.sol#470-471) ExchangeProxy.multihopBatchSwapExactOut(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#443-530) has external calls inside a loop: SwapTokenIn.approve(swap.pool,swap.limitReturnAmount) (contracts/Contract.sol#472) ExchangeProxy.multihopBatchSwapExactOut(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#443-530) has external calls inside a loop: (tokenAmountInFirstSwap,None) = pool.swapExactAmountOut(swap.tokenIn,swap.limitReturnAmount,swap.tokenOut,swap.swapAmount,swap.maxPrice) (contracts/Contract.sol#473-480) ExchangeProxy.multihopBatchSwapExactOut(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#443-530) has external calls inside a loop: intermediateTokenAmount = poolSecondSwap.calcInGivenOut(poolSecondSwap.getBalance(secondSwap.tokenIn),poolSecondSwap.getDenormalizedWeight(secondSwap.tokenIn),poolSecondSwap.getBalance(secondSwap.tokenOut),poolSecondSwap.getDenormalizedWeight(secondSwap.tokenOut),secondSwap.swapAmount,poolSecondSwap.getSwapFee()) (contracts/Contract.sol#491-498) ExchangeProxy.multihopBatchSwapExactOut(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#443-530) has external calls inside a loop: FirstSwapTokenIn.allowance(address(this),firstSwap.pool) < uint256(- 1) (contracts/Contract.sol#501-503) ExchangeProxy.multihopBatchSwapExactOut(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#443-530) has external calls inside a loop: FirstSwapTokenIn.approve(firstSwap.pool,uint256(- 1)) (contracts/Contract.sol#503-504) ExchangeProxy.multihopBatchSwapExactOut(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#443-530) has external calls inside a loop: (tokenAmountInFirstSwap,None) = poolFirstSwap.swapExactAmountOut(firstSwap.tokenIn,firstSwap.limitReturnAmount,firstSwap.tokenOut,intermediateTokenAmount,firstSwap.maxPrice) (contracts/Contract.sol#506-511) ExchangeProxy.multihopBatchSwapExactOut(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#443-530) has external calls inside a loop: SecondSwapTokenIn.allowance(address(this),secondSwap.pool) < uint256(- 1) (contracts/Contract.sol#515-516) ExchangeProxy.multihopBatchSwapExactOut(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#443-530) has external calls inside a loop: SecondSwapTokenIn.approve(secondSwap.pool,uint256(- 1)) (contracts/Contract.sol#517-518) ExchangeProxy.multihopBatchSwapExactOut(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#443-530) has external calls inside a loop: poolSecondSwap.swapExactAmountOut(secondSwap.tokenIn,secondSwap.limitReturnAmount,secondSwap.tokenOut,secondSwap.swapAmount,secondSwap.maxPrice) (contracts/Contract.sol#518-524) ExchangeProxy.getPoolData(address,address,address) (contracts/Contract.sol#666-700) has external calls inside a loop: tokenBalanceIn = pool.getBalance(tokenIn) (contracts/Contract.sol#673-674) Calls stack containing the loop: ExchangeProxy.smartSwapExactIn(TokenInterface,TokenInterface,uint256,uint256,uint256) ExchangeProxy.viewSplitExactIn(address,address,uint256,uint256) ExchangeProxy.getPoolData(address,address,address) (contracts/Contract.sol#666-700) has external calls inside a loop: tokenBalanceOut = pool.getBalance(tokenOut) (contracts/Contract.sol#675-676) Calls stack containing the loop: ExchangeProxy.smartSwapExactIn(TokenInterface,TokenInterface,uint256,uint256,uint256) ExchangeProxy.viewSplitExactIn(address,address,uint256,uint256) ExchangeProxy.getPoolData(address,address,address) (contracts/Contract.sol#666-700) has external calls inside a loop: tokenWeightIn = pool.getDenormalizedWeight(tokenIn) (contracts/Contract.sol#676-677) Calls stack containing the loop: ExchangeProxy.smartSwapExactIn(TokenInterface,TokenInterface,uint256,uint256,uint256) ExchangeProxy.viewSplitExactIn(address,address,uint256,uint256) ExchangeProxy.getPoolData(address,address,address) (contracts/Contract.sol#666-700) has external calls inside a loop: tokenWeightOut = pool.getDenormalizedWeight(tokenOut) (contracts/Contract.sol#677-678) Calls stack containing the loop: ExchangeProxy.smartSwapExactIn(TokenInterface,TokenInterface,uint256,uint256,uint256) ExchangeProxy.viewSplitExactIn(address,address,uint256,uint256) ExchangeProxy.getPoolData(address,address,address) (contracts/Contract.sol#666-700) has external calls inside a loop: swapFee = pool.getSwapFee() (contracts/Contract.sol#678-679) Calls stack containing the loop: ExchangeProxy.smartSwapExactIn(TokenInterface,TokenInterface,uint256,uint256,uint256) ExchangeProxy.viewSplitExactIn(address,address,uint256,uint256) ExchangeProxy.calcTotalOutExactIn(uint256[],ExchangeProxy.Pool[]) (contracts/Contract.sol#710-740) has external calls inside a loop: output = PoolInterface(bestPools[i].pool).calcOutGivenIn(bestPools[i].tokenBalanceIn,bestPools[i].tokenWeightIn,bestPools[i].tokenBalanceOut,bestPools[i].tokenWeightOut,bestInputAmounts[i],bestPools[i].swapFee) (contracts/Contract.sol#718-736) Calls stack containing the loop: ExchangeProxy.smartSwapExactIn(TokenInterface,TokenInterface,uint256,uint256,uint256) ExchangeProxy.viewSplitExactIn(address,address,uint256,uint256) ExchangeProxy.batchSwapExactIn(ExchangeProxy.Swap[],TokenInterface,TokenInterface,uint256,uint256) (contracts/Contract.sol#324-361) has external calls inside a loop: SwapTokenIn.allowance(address(this),swap.pool) > 0 (contracts/Contract.sol#342-344) Calls stack containing the loop: ExchangeProxy.smartSwapExactIn(TokenInterface,TokenInterface,uint256,uint256,uint256) ExchangeProxy.batchSwapExactIn(ExchangeProxy.Swap[],TokenInterface,TokenInterface,uint256,uint256) (contracts/Contract.sol#324-361) has external calls inside a loop: SwapTokenIn.approve(swap.pool,0) (contracts/Contract.sol#345) Calls stack containing the loop: ExchangeProxy.smartSwapExactIn(TokenInterface,TokenInterface,uint256,uint256,uint256) ExchangeProxy.batchSwapExactIn(ExchangeProxy.Swap[],TokenInterface,TokenInterface,uint256,uint256) (contracts/Contract.sol#324-361) has external calls inside a loop: SwapTokenIn.approve(swap.pool,swap.swapAmount) (contracts/Contract.sol#347-348) Calls stack containing the loop: ExchangeProxy.smartSwapExactIn(TokenInterface,TokenInterface,uint256,uint256,uint256) ExchangeProxy.batchSwapExactIn(ExchangeProxy.Swap[],TokenInterface,TokenInterface,uint256,uint256) (contracts/Contract.sol#324-361) has external calls inside a loop: (tokenAmountOut,None) = pool.swapExactAmountIn(swap.tokenIn,swap.swapAmount,swap.tokenOut,swap.limitReturnAmount,swap.maxPrice) (contracts/Contract.sol#348-357) Calls stack containing the loop: ExchangeProxy.smartSwapExactIn(TokenInterface,TokenInterface,uint256,uint256,uint256) ExchangeProxy.getPoolData(address,address,address) (contracts/Contract.sol#666-700) has external calls inside a loop: tokenBalanceIn = pool.getBalance(tokenIn) (contracts/Contract.sol#673-674) Calls stack containing the loop: ExchangeProxy.smartSwapExactOut(TokenInterface,TokenInterface,uint256,uint256,uint256) ExchangeProxy.viewSplitExactOut(address,address,uint256,uint256) ExchangeProxy.getPoolData(address,address,address) (contracts/Contract.sol#666-700) has external calls inside a loop: tokenBalanceOut = pool.getBalance(tokenOut) (contracts/Contract.sol#675-676) Calls stack containing the loop: ExchangeProxy.smartSwapExactOut(TokenInterface,TokenInterface,uint256,uint256,uint256) ExchangeProxy.viewSplitExactOut(address,address,uint256,uint256) ExchangeProxy.getPoolData(address,address,address) (contracts/Contract.sol#666-700) has external calls inside a loop: tokenWeightIn = pool.getDenormalizedWeight(tokenIn) (contracts/Contract.sol#676-677) Calls stack containing the loop: ExchangeProxy.smartSwapExactOut(TokenInterface,TokenInterface,uint256,uint256,uint256) ExchangeProxy.viewSplitExactOut(address,address,uint256,uint256) ExchangeProxy.getPoolData(address,address,address) (contracts/Contract.sol#666-700) has external calls inside a loop: tokenWeightOut = pool.getDenormalizedWeight(tokenOut) (contracts/Contract.sol#677-678) Calls stack containing the loop: ExchangeProxy.smartSwapExactOut(TokenInterface,TokenInterface,uint256,uint256,uint256) ExchangeProxy.viewSplitExactOut(address,address,uint256,uint256) ExchangeProxy.getPoolData(address,address,address) (contracts/Contract.sol#666-700) has external calls inside a loop: swapFee = pool.getSwapFee() (contracts/Contract.sol#678-679) Calls stack containing the loop: ExchangeProxy.smartSwapExactOut(TokenInterface,TokenInterface,uint256,uint256,uint256) ExchangeProxy.viewSplitExactOut(address,address,uint256,uint256) ExchangeProxy.calcTotalOutExactOut(uint256[],ExchangeProxy.Pool[]) (contracts/Contract.sol#741-763) has external calls inside a loop: output = PoolInterface(bestPools[i].pool).calcInGivenOut(bestPools[i].tokenBalanceIn,bestPools[i].tokenWeightIn,bestPools[i].tokenBalanceOut,bestPools[i].tokenWeightOut,bestInputAmounts[i],bestPools[i].swapFee) (contracts/Contract.sol#749-758) Calls stack containing the loop: ExchangeProxy.smartSwapExactOut(TokenInterface,TokenInterface,uint256,uint256,uint256) ExchangeProxy.viewSplitExactOut(address,address,uint256,uint256) ExchangeProxy.batchSwapExactOut(ExchangeProxy.Swap[],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#361-398) has external calls inside a loop: SwapTokenIn.allowance(address(this),swap.pool) > 0 (contracts/Contract.sol#377-380) Calls stack containing the loop: ExchangeProxy.smartSwapExactOut(TokenInterface,TokenInterface,uint256,uint256,uint256) ExchangeProxy.batchSwapExactOut(ExchangeProxy.Swap[],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#361-398) has external calls inside a loop: SwapTokenIn.approve(swap.pool,0) (contracts/Contract.sol#380-382) Calls stack containing the loop: ExchangeProxy.smartSwapExactOut(TokenInterface,TokenInterface,uint256,uint256,uint256) ExchangeProxy.batchSwapExactOut(ExchangeProxy.Swap[],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#361-398) has external calls inside a loop: SwapTokenIn.approve(swap.pool,swap.limitReturnAmount) (contracts/Contract.sol#382-384) Calls stack containing the loop: ExchangeProxy.smartSwapExactOut(TokenInterface,TokenInterface,uint256,uint256,uint256) ExchangeProxy.batchSwapExactOut(ExchangeProxy.Swap[],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#361-398) has external calls inside a loop: (tokenAmountIn,None) = pool.swapExactAmountOut(swap.tokenIn,swap.limitReturnAmount,swap.tokenOut,swap.swapAmount,swap.maxPrice) (contracts/Contract.sol#385-392) Calls stack containing the loop: ExchangeProxy.smartSwapExactOut(TokenInterface,TokenInterface,uint256,uint256,uint256) ExchangeProxy.getPoolData(address,address,address) (contracts/Contract.sol#666-700) has external calls inside a loop: tokenBalanceIn = pool.getBalance(tokenIn) (contracts/Contract.sol#673-674) Calls stack containing the loop: ExchangeProxy.viewSplitExactIn(address,address,uint256,uint256) ExchangeProxy.getPoolData(address,address,address) (contracts/Contract.sol#666-700) has external calls inside a loop: tokenBalanceOut = pool.getBalance(tokenOut) (contracts/Contract.sol#675-676) Calls stack containing the loop: ExchangeProxy.viewSplitExactIn(address,address,uint256,uint256) ExchangeProxy.getPoolData(address,address,address) (contracts/Contract.sol#666-700) has external calls inside a loop: tokenWeightIn = pool.getDenormalizedWeight(tokenIn) (contracts/Contract.sol#676-677) Calls stack containing the loop: ExchangeProxy.viewSplitExactIn(address,address,uint256,uint256) ExchangeProxy.getPoolData(address,address,address) (contracts/Contract.sol#666-700) has external calls inside a loop: tokenWeightOut = pool.getDenormalizedWeight(tokenOut) (contracts/Contract.sol#677-678) Calls stack containing the loop: ExchangeProxy.viewSplitExactIn(address,address,uint256,uint256) ExchangeProxy.getPoolData(address,address,address) (contracts/Contract.sol#666-700) has external calls inside a loop: swapFee = pool.getSwapFee() (contracts/Contract.sol#678-679) Calls stack containing the loop: ExchangeProxy.viewSplitExactIn(address,address,uint256,uint256) ExchangeProxy.calcTotalOutExactIn(uint256[],ExchangeProxy.Pool[]) (contracts/Contract.sol#710-740) has external calls inside a loop: output = PoolInterface(bestPools[i].pool).calcOutGivenIn(bestPools[i].tokenBalanceIn,bestPools[i].tokenWeightIn,bestPools[i].tokenBalanceOut,bestPools[i].tokenWeightOut,bestInputAmounts[i],bestPools[i].swapFee) (contracts/Contract.sol#718-736) Calls stack containing the loop: ExchangeProxy.viewSplitExactIn(address,address,uint256,uint256) ExchangeProxy.getPoolData(address,address,address) (contracts/Contract.sol#666-700) has external calls inside a loop: tokenBalanceIn = pool.getBalance(tokenIn) (contracts/Contract.sol#673-674) Calls stack containing the loop: ExchangeProxy.viewSplitExactOut(address,address,uint256,uint256) ExchangeProxy.getPoolData(address,address,address) (contracts/Contract.sol#666-700) has external calls inside a loop: tokenBalanceOut = pool.getBalance(tokenOut) (contracts/Contract.sol#675-676) Calls stack containing the loop: ExchangeProxy.viewSplitExactOut(address,address,uint256,uint256) ExchangeProxy.getPoolData(address,address,address) (contracts/Contract.sol#666-700) has external calls inside a loop: tokenWeightIn = pool.getDenormalizedWeight(tokenIn) (contracts/Contract.sol#676-677) Calls stack containing the loop: ExchangeProxy.viewSplitExactOut(address,address,uint256,uint256) ExchangeProxy.getPoolData(address,address,address) (contracts/Contract.sol#666-700) has external calls inside a loop: tokenWeightOut = pool.getDenormalizedWeight(tokenOut) (contracts/Contract.sol#677-678) Calls stack containing the loop: ExchangeProxy.viewSplitExactOut(address,address,uint256,uint256) ExchangeProxy.getPoolData(address,address,address) (contracts/Contract.sol#666-700) has external calls inside a loop: swapFee = pool.getSwapFee() (contracts/Contract.sol#678-679) Calls stack containing the loop: ExchangeProxy.viewSplitExactOut(address,address,uint256,uint256) ExchangeProxy.calcTotalOutExactOut(uint256[],ExchangeProxy.Pool[]) (contracts/Contract.sol#741-763) has external calls inside a loop: output = PoolInterface(bestPools[i].pool).calcInGivenOut(bestPools[i].tokenBalanceIn,bestPools[i].tokenWeightIn,bestPools[i].tokenBalanceOut,bestPools[i].tokenWeightOut,bestInputAmounts[i],bestPools[i].swapFee) (contracts/Contract.sol#749-758) Calls stack containing the loop: ExchangeProxy.viewSplitExactOut(address,address,uint256,uint256) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation/#calls-inside-a-loop 2 different versions of Solidity are used: - Version constraint 0.5.12 is used by: -0.5.12 (contracts/Contract.sol#12-14) - Version constraint ^0.5.0 is used by: -^0.5.0 (contracts/Contract.sol#15-17) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used Context._msgData() (contracts/Contract.sol#187-194) is never used and should be removed Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code Version constraint 0.5.12 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html) - AbiReencodingHeadOverflowWithStaticArrayCleanup - DirtyBytesArrayToStorage - NestedCalldataArrayAbiReencodingSizeValidation - ABIDecodeTwoDimensionalArrayMemory - KeccakCaching - EmptyByteArrayCopy - DynamicArrayCleanup - ImplicitConstructorCallvalueCheck - TupleAssignmentMultiStackSlotComponents - MemoryArrayCreationOverflow - privateCanBeOverridden - YulOptimizerRedundantAssignmentBreakContinue0.5. It is used by: - 0.5.12 (contracts/Contract.sol#12-14) Version constraint ^0.5.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html) - DirtyBytesArrayToStorage - ABIDecodeTwoDimensionalArrayMemory - KeccakCaching - EmptyByteArrayCopy - DynamicArrayCleanup - ImplicitConstructorCallvalueCheck - TupleAssignmentMultiStackSlotComponents - MemoryArrayCreationOverflow - privateCanBeOverridden - SignedArrayStorageCopy - ABIEncoderV2StorageArrayWithMultiSlotElement - DynamicConstructorArgumentsClippedABIV2 - UninitializedFunctionPointerInConstructor - IncorrectEventSignatureInLibraries - ABIEncoderV2PackedStorage. It is used by: - ^0.5.0 (contracts/Contract.sol#15-17) solc-0.5.12 is an outdated solc version. Use a more recent version (at least 0.8.0), if possible. Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity Low level call in ExchangeProxy.transferAll(TokenInterface,uint256) (contracts/Contract.sol#775-788): - (xfer,None) = msg.sender.call.value(amount)() (contracts/Contract.sol#782-785) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls Parameter ExchangeProxy.setRegistry(address)._registry (contracts/Contract.sol#319-322) is not in mixedCase Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions Redundant expression "this (contracts/Contract.sol#188)" inContext (contracts/Contract.sol#179-194) Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#redundant-statements multihopBatchSwapExactIn(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256,uint256) should be declared external: - ExchangeProxy.multihopBatchSwapExactIn(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256,uint256) (contracts/Contract.sol#398-443) Moreover, the following function parameters should change its data location: swapSequences location should be calldata multihopBatchSwapExactOut(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256) should be declared external: - ExchangeProxy.multihopBatchSwapExactOut(ExchangeProxy.Swap[][],TokenInterface,TokenInterface,uint256) (contracts/Contract.sol#443-530) Moreover, the following function parameters should change its data location: swapSequences location should be calldata Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#public-function-that-could-be-declared-external . analyzed (7 contracts with 100 detectors), 89 result(s) found
{
"solc": {
"status": "ok",
"use_rc": 0,
"version": "0.5.12",
"strategy": "solc-select",
"solc_path": "/var/www/tripwire/.venv/bin/solc",
"install_rc": 0,
"use_stderr": null,
"use_stdout": "Switched global version to 0.5.12",
"install_stderr": null,
"install_stdout": "Version '0.5.12' is already installed, skipping..."
},
"solc_args": "--base-path /tmp/slither-ltu3tt7n --allow-paths /tmp/slither-ltu3tt7n,/tmp/slither-ltu3tt7n/lib,/tmp/slither-ltu3tt7n/src",
"remappings": [],
"source_files": [
"contracts/Contract.sol"
],
"contract_count": 0,
"contract_names": [],
"detector_count": 89,
"workspace_hash": "84af27c9239e09fc56def6131a5ddb889976306d56553efe84504b669899b62d",
"duration_seconds": 1.5094547271728516,
"solc_version_requested": "0.5.12"
}
{"no_findings":false,"summary":"Found 2 issues: multihop exact-out grants unlimited allowances to arbitrary pools, and swap functions can sweep any residual ERC20 balances by transferring full contract balances to the caller.","findings":[{"severity":"medium","category":"access_control","title":"Unlimited approvals to user-supplied pools allow token drain","exploit_scenario":"A caller supplies a malicious pool address in multihopBatchSwapExactOut. The proxy approves uint(-1) for tokenIn/secondSwap.tokenIn, then calls the pool. The malicious pool uses transferFrom to pull all of those tokens from the proxy (not just the intended swap amount) and returns a small tokenAmountIn so the maxTotalAmountIn check passes, stealing the caller’s funds. The unlimited approval also persists for later drains if the proxy ever holds those tokens again.","recommendation":"Avoid unlimited approvals to arbitrary pools. Approve only the exact amount needed for each swap and reset to zero afterward, or enforce that pools are from a trusted registry/whitelist before granting allowances.","evidence":"multihopBatchSwapExactOut grants uint(-1) approvals to pool addresses supplied in swapSequences without validation or revocation.","locations":["contracts/Contract.sol:510","contracts/Contract.sol:524"]},{"severity":"low","category":"access_control","title":"Public swap functions can sweep any ERC20 balance held by the proxy","exploit_scenario":"If any ERC20 tokens are accidentally sent to the proxy (or left from partial/multi-hop flows), any caller can pass empty swap arrays and set tokenIn/tokenOut to that token. The functions still call transferAll with getBalance, transferring the entire token balance to the caller, enabling theft of stranded funds.","recommendation":"Require non-empty swap arrays and only transfer the exact expected amounts (not full balances). Consider adding an owner-only token rescue function instead of letting arbitrary callers sweep balances.","evidence":"Exact-in/out functions transfer the full token balance via getBalance regardless of swaps length.","locations":["contracts/Contract.sol:369","contracts/Contract.sol:405","contracts/Contract.sol:453","contracts/Contract.sol:541"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-3bso5p8v
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019be3e5-3a7c-7611-88ea-f33cdfdf91c8
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers
thinking
**Preparing to read audit bundle**
exec
/bin/bash -lc ls in /tmp/codex-3bso5p8v succeeded in 8ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-3bso5p8v succeeded in 7ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.
================================================================================
FILE: contracts/Contract.sol
================================================================================
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
pragma solidity 0.5.12;
thinking
**Identifying potential reentrancy and payment mismatch issues**
Detected a possible reentrancy risk via external ETH transfers at the end of swaps, since no nonReentrant guards protect the functions and state tracking is minimal. Also, noticed missing validation that msg.value matches the declared ETH input amount, which could enable underpayment attacks.
thinking
**Highlighting risky unlimited approvals and token sweep vulnerabilities**
Unlimited allowances are granted to user-supplied pool addresses, enabling malicious pools to drain tokens held by the contract during swaps. Additionally, leftover or accidentally sent tokens can be fully swept by any caller in exact-out functions since transfers use full contract balances without strict accounting.
thinking
**Confirming reentrancy risk via ETH transfer and unchecked unlimited pool approvals**
Reentrancy can occur during ETH refunds via external calls without guard, potentially enabling nested swaps using contract-held tokens mid-execution. Also, unlimited token approvals to user-supplied pool addresses without validation allow malicious pools to drain tokens from the contract during swaps.
thinking
**Confirming arbitrary token sweeping via empty swap calls and pool trust assumptions**
Exact-out swap functions allow callers to drain any token balance held by the contract by submitting empty swap arrays, enabling theft of accidentally sent or leftover tokens. Also, unrestricted user-supplied pool addresses combined with unlimited approvals expose callers to token theft if they use malicious pools.
thinking
**Summarizing key low-severity issues for reporting**
Exact-out swap functions transfer the full tokenOut balance, allowing any caller to sweep stray tokens if no swaps occur, which could unintentionally drain tokens. Also, multihopBatchSwapExactOut grants unlimited approvals to user-supplied pool addresses, risking token theft if malicious pools are used. Both are low-severity but should be flagged with supporting evidence and code locations.
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '220,420p'" in /tmp/codex-3bso5p8v succeeded in 16ms:
220 emit OwnershipTransferred(address(0), msgSender);
221 }
222
223 /**
224 * @dev Returns the address of the current owner.
225 */
226 function owner() public view returns (address) {
227 return _owner;
228 }
229
230 /**
231 * @dev Throws if called by any account other than the owner.
232 */
233 modifier onlyOwner() {
234 require(isOwner(), "Ownable: caller is not the owner");
235 _;
236 }
237
238 /**
239 * @dev Returns true if the caller is the current owner.
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '420,700p'" in /tmp/codex-3bso5p8v succeeded in 7ms:
420
421 transferFromAll(tokenIn, totalAmountIn);
422
423 for (uint i = 0; i < swapSequences.length; i++) {
424 uint tokenAmountOut;
425 for (uint k = 0; k < swapSequences[i].length; k++) {
426 Swap memory swap = swapSequences[i][k];
427 TokenInterface SwapTokenIn = TokenInterface(swap.tokenIn);
428 if (k == 1) {
429 // Makes sure that on the second swap the output of the first was used
430 // so there is not intermediate token leftover
431 swap.swapAmount = tokenAmountOut;
432 }
433
434 PoolInterface pool = PoolInterface(swap.pool);
435 if (SwapTokenIn.allowance(address(this), swap.pool) > 0) {
436 SwapTokenIn.approve(swap.pool, 0);
437 }
438 SwapTokenIn.approve(swap.pool, swap.swapAmount);
439 (tokenAmountOut,) = pool.swapExactAmountIn(
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '700,900p'" in /tmp/codex-3bso5p8v succeeded in 9ms:
700 uint tokenWeightOut = pool.getDenormalizedWeight(tokenOut);
701 uint swapFee = pool.getSwapFee();
702
703 uint effectiveLiquidity = calcEffectiveLiquidity(
704 tokenWeightIn,
705 tokenBalanceOut,
706 tokenWeightOut
707 );
708 Pool memory returnPool = Pool({
709 pool: poolAddress,
710 tokenBalanceIn: tokenBalanceIn,
711 tokenWeightIn: tokenWeightIn,
712 tokenBalanceOut: tokenBalanceOut,
713 tokenWeightOut: tokenWeightOut,
714 swapFee: swapFee,
715 effectiveLiquidity: effectiveLiquidity
716 });
717
718 return returnPool;
719 }
thinking
**Summarizing two key findings**
Identified unlimited approvals to arbitrary pools with potential medium severity due to lasting approvals despite the contract's statelessness and exact-out functions enabling callers to sweep any token balances with low severity for unintended transfers.
thinking
**Detailing additional access control issues**
Found that batch swap functions allow sweeping any ERC20 token balance held by the contract via empty swap arrays, enabling unauthorized token drainage. Also confirmed unlimited approvals to user-supplied pools grant broad token spending rights, both categorized as access control risks with medium and low severities respectively.
codex
{"no_findings":false,"summary":"Found 2 issues: multihop exact-out grants unlimited allowances to arbitrary pools, and swap functions can sweep any residual ERC20 balances by transferring full contract balances to the caller.","findings":[{"severity":"medium","category":"access_control","title":"Unlimited approvals to user-supplied pools allow token drain","exploit_scenario":"A caller supplies a malicious pool address in multihopBatchSwapExactOut. The proxy approves uint(-1) for tokenIn/secondSwap.tokenIn, then calls the pool. The malicious pool uses transferFrom to pull all of those tokens from the proxy (not just the intended swap amount) and returns a small tokenAmountIn so the maxTotalAmountIn check passes, stealing the caller’s funds. The unlimited approval also persists for later drains if the proxy ever holds those tokens again.","recommendation":"Avoid unlimited approvals to arbitrary pools. Approve only the exact amount needed for each swap and reset to zero afterward, or enforce that pools are from a trusted registry/whitelist before granting allowances.","evidence":"multihopBatchSwapExactOut grants uint(-1) approvals to pool addresses supplied in swapSequences without validation or revocation.","locations":["contracts/Contract.sol:510","contracts/Contract.sol:524"]},{"severity":"low","category":"access_control","title":"Public swap functions can sweep any ERC20 balance held by the proxy","exploit_scenario":"If any ERC20 tokens are accidentally sent to the proxy (or left from partial/multi-hop flows), any caller can pass empty swap arrays and set tokenIn/tokenOut to that token. The functions still call transferAll with getBalance, transferring the entire token balance to the caller, enabling theft of stranded funds.","recommendation":"Require non-empty swap arrays and only transfer the exact expected amounts (not full balances). Consider adding an owner-only token rescue function instead of letting arbitrary callers sweep balances.","evidence":"Exact-in/out functions transfer the full token balance via getBalance regardless of swaps length.","locations":["contracts/Contract.sol:369","contracts/Contract.sol:405","contracts/Contract.sol:453","contracts/Contract.sol:541"]}]}
tokens used
46,359
{
"codex": {
"ran_at": "2026-01-22T04:15:10.444513+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 1,
"import_count": 0,
"first_party_contracts_count": 1
},
"summary": "Found 2 issues: multihop exact-out grants unlimited allowances to arbitrary pools, and swap functions can sweep any residual ERC20 balances by transferring full contract balances to the caller.",
"raw_final": {
"summary": "Found 2 issues: multihop exact-out grants unlimited allowances to arbitrary pools, and swap functions can sweep any residual ERC20 balances by transferring full contract balances to the caller.",
"findings": [
{
"title": "Unlimited approvals to user-supplied pools allow token drain",
"category": "access_control",
"evidence": "multihopBatchSwapExactOut grants uint(-1) approvals to pool addresses supplied in swapSequences without validation or revocation.",
"severity": "medium",
"locations": [
"contracts/Contract.sol:510",
"contracts/Contract.sol:524"
],
"recommendation": "Avoid unlimited approvals to arbitrary pools. Approve only the exact amount needed for each swap and reset to zero afterward, or enforce that pools are from a trusted registry/whitelist before granting allowances.",
"exploit_scenario": "A caller supplies a malicious pool address in multihopBatchSwapExactOut. The proxy approves uint(-1) for tokenIn/secondSwap.tokenIn, then calls the pool. The malicious pool uses transferFrom to pull all of those tokens from the proxy (not just the intended swap amount) and returns a small tokenAmountIn so the maxTotalAmountIn check passes, stealing the caller\u2019s funds. The unlimited approval also persists for later drains if the proxy ever holds those tokens again."
},
{
"title": "Public swap functions can sweep any ERC20 balance held by the proxy",
"category": "access_control",
"evidence": "Exact-in/out functions transfer the full token balance via getBalance regardless of swaps length.",
"severity": "low",
"locations": [
"contracts/Contract.sol:369",
"contracts/Contract.sol:405",
"contracts/Contract.sol:453",
"contracts/Contract.sol:541"
],
"recommendation": "Require non-empty swap arrays and only transfer the exact expected amounts (not full balances). Consider adding an owner-only token rescue function instead of letting arbitrary callers sweep balances.",
"exploit_scenario": "If any ERC20 tokens are accidentally sent to the proxy (or left from partial/multi-hop flows), any caller can pass empty swap arrays and set tokenIn/tokenOut to that token. The functions still call transferAll with getBalance, transferring the entire token balance to the caller, enabling theft of stranded funds."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x00c2 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x8743ad58 00000019: GT 0000001a: PUSH2 0x007f 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xa91ee0dc 00000024: GT 00000025: PUSH2 0x0059 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xa91ee0dc 0000002f: EQ 00000030: PUSH2 0x01cd 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xb40f39ee 0000003a: EQ 0000003b: PUSH2 0x01ed 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xe2b39746 00000045: EQ 00000046: PUSH2 0x0200 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xf2fde38b 00000050: EQ 00000051: PUSH2 0x0213 00000054: JUMPI 00000055: PUSH2 0x00c2 00000058: JUMP 00000059: JUMPDEST 0000005a: DUP1 0000005b: PUSH4 0x8743ad58 00000060: EQ 00000061: PUSH2 0x0176 00000064: JUMPI 00000065: DUP1 00000066: PUSH4 0x8da5cb5b 0000006b: EQ 0000006c: PUSH2 0x0189 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0x8f32d59b 00000076: EQ 00000077: PUSH2 0x01ab 0000007a: JUMPI 0000007b: PUSH2 0x00c2 0000007e: JUMP 0000007f: JUMPDEST 00000080: DUP1 00000081: PUSH4 0x21b0eb85 00000086: EQ 00000087: PUSH2 0x00c4 0000008a: JUMPI 0000008b: DUP1 0000008c: PUSH4 0x2db58134 00000091: EQ 00000092: PUSH2 0x00ed 00000095: JUMPI 00000096: DUP1 00000097: PUSH4 0x368bb1fc 0000009c: EQ 0000009d: PUSH2 0x0100 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0x4b0f93fb 000000a7: EQ 000000a8: PUSH2 0x012e 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0x715018a6 000000b2: EQ 000000b3: PUSH2 0x014e 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0x86b2ecc4 000000bd: EQ 000000be: PUSH2 0x0163 000000c1: JUMPI 000000c2: JUMPDEST 000000c3: STOP 000000c4: JUMPDEST 000000c5: PUSH2 0x00d7 000000c8: PUSH2 0x00d2 000000cb: CALLDATASIZE 000000cc: PUSH1 0x04 000000ce: PUSH2 0x2d41 000000d1: JUMP 000000d2: JUMPDEST 000000d3: PUSH2 0x0233 000000d6: JUMP 000000d7: JUMPDEST 000000d8: PUSH1 0x40 000000da: MLOAD 000000db: PUSH2 0x00e4 000000de: SWAP2 000000df: SWAP1 000000e0: PUSH2 0x32b5 000000e3: JUMP 000000e4: JUMPDEST 000000e5: PUSH1 0x40 000000e7: MLOAD 000000e8: DUP1 000000e9: SWAP2 000000ea: SUB 000000eb: SWAP1 000000ec: RETURN 000000ed: JUMPDEST 000000ee: PUSH2 0x00d7 000000f1: PUSH2 0x00fb 000000f4: CALLDATASIZE 000000f5: PUSH1 0x04 000000f7: PUSH2 0x2caf 000000fa: JUMP 000000fb: JUMPDEST 000000fc: PUSH2 0x02b4 000000ff: JUMP 00000100: JUMPDEST 00000101: CALLVALUE 00000102: DUP1 00000103: ISZERO 00000104: PUSH2 0x010c 00000107: JUMPI 00000108: PUSH1 0x00 0000010a: DUP1 0000010b: REVERT 0000010c: JUMPDEST 0000010d: POP 0000010e: PUSH2 0x0120 00000111: PUSH2 0x011b 00000114: CALLDATASIZE 00000115: PUSH1 0x04 00000117: PUSH2 0x2b32 0000011a: JUMP 0000011b: JUMPDEST 0000011c: PUSH2 0x059a 0000011f: JUMP 00000120: JUMPDEST 00000121: PUSH1 0x40 00000123: MLOAD 00000124: PUSH2 0x00e4 00000127: SWAP3 00000128: SWAP2 00000129: SWAP1 0000012a: PUSH2 0x31f6 0000012d: JUMP 0000012e: JUMPDEST 0000012f: CALLVALUE 00000130: DUP1 00000131: ISZERO 00000132: PUSH2 0x013a 00000135: JUMPI 00000136: PUSH1 0x00 00000138: DUP1 00000139: REVERT 0000013a: JUMPDEST 0000013b: POP 0000013c: PUSH2 0x0120 0000013f: PUSH2 0x0149 00000142: CALLDATASIZE 00000143: PUSH1 0x04 00000145: PUSH2 0x2b32 00000148: JUMP 00000149: JUMPDEST 0000014a: PUSH2 0x0947 0000014d: JUMP 0000014e: JUMPDEST 0000014f: CALLVALUE 00000150: DUP1 00000151: ISZERO 00000152: PUSH2 0x015a 00000155: JUMPI 00000156: PUSH1 0x00 00000158: DUP1 00000159: REVERT 0000015a: JUMPDEST 0000015b: POP 0000015c: PUSH2 0x00c2 0000015f: PUSH2 0x0c37 00000162: JUMP 00000163: JUMPDEST 00000164: PUSH2 0x00d7 00000167: PUSH2 0x0171 0000016a: CALLDATASIZE 0000016b: PUSH1 0x04 0000016d: PUSH2 0x2bc8 00000170: JUMP 00000171: JUMPDEST 00000172: PUSH2 0x0ca5 00000175: JUMP 00000176: JUMPDEST 00000177: PUSH2 0x00d7 0000017a: PUSH2 0x0184 0000017d: CALLDATASIZE 0000017e: PUSH1 0x04 00000180: PUSH2 0x2ce8 00000183: JUMP 00000184: JUMPDEST 00000185: PUSH2 0x1632 00000188: JUMP 00000189: JUMPDEST 0000018a: CALLVALUE 0000018b: DUP1 0000018c: ISZERO 0000018d: PUSH2 0x0195 00000190: JUMPI 00000191: PUSH1 0x00 00000193: DUP1 00000194: REVERT 00000195: JUMPDEST 00000196: POP 00000197: PUSH2 0x019e 0000019a: PUSH2 0x1908 0000019d: JUMP 0000019e: JUMPDEST 0000019f: PUSH1 0x40 000001a1: MLOAD 000001a2: PUSH2 0x00e4 000001a5: SWAP2 000001a6: SWAP1 000001a7: PUSH2 0x30ec 000001aa: JUMP 000001ab: JUMPDEST 000001ac: CALLVALUE 000001ad: DUP1 000001ae: ISZERO 000001af: PUSH2 0x01b7 000001b2: JUMPI 000001b3: PUSH1 0x00 000001b5: DUP1 000001b6: REVERT 000001b7: JUMPDEST 000001b8: POP 000001b9: PUSH2 0x01c0 000001bc: PUSH2 0x1917 000001bf: JUMP 000001c0: JUMPDEST 000001c1: PUSH1 0x40 000001c3: MLOAD 000001c4: PUSH2 0x00e4 000001c7: SWAP2 000001c8: SWAP1 000001c9: PUSH2 0x3216 000001cc: JUMP 000001cd: JUMPDEST 000001ce: CALLVALUE 000001cf: DUP1 000001d0: ISZERO 000001d1: PUSH2 0x01d9 000001d4: JUMPI 000001d5: PUSH1 0x00 000001d7: DUP1 000001d8: REVERT 000001d9: JUMPDEST 000001da: POP 000001db: PUSH2 0x00c2 000001de: PUSH2 0x01e8 000001e1: CALLDATASIZE 000001e2: PUSH1 0x04 000001e4: PUSH2 0x2b14 000001e7: JUMP 000001e8: JUMPDEST 000001e9: PUSH2 0x193b 000001ec: JUMP 000001ed: JUMPDEST 000001ee: PUSH2 0x00d7 000001f1: PUSH2 0x01fb 000001f4: CALLDATASIZE 000001f5: PUSH1 0x04 000001f7: PUSH2 0x2d41 000001fa: JUMP 000001fb: JUMPDEST 000001fc: PUSH2 0x1981 000001ff: JUMP 00000200: JUMPDEST 00000201: PUSH2 0x00d7 00000204: PUSH2 0x020e 00000207: CALLDATASIZE 00000208: PUSH1 0x04 0000020a: PUSH2 0x2c23 0000020d: JUMP 0000020e: JUMPDEST 0000020f: PUSH2 0x19f6 00000212: JUMP 00000213: JUMPDEST 00000214: CALLVALUE 00000215: DUP1 00000216: ISZERO 00000217: PUSH2 0x021f 0000021a: JUMPI 0000021b: PUSH1 0x00 0000021d: DUP1 0000021e: REVERT 0000021f: JUMPDEST 00000220: POP 00000221: PUSH2 0x00c2 00000224: PUSH2 0x022e 00000227: CALLDATASIZE 00000228: PUSH1 0x04 0000022a: PUSH2 0x2b14 0000022d: JUMP 0000022e: JUMPDEST 0000022f: PUSH2 0x1cd2 00000232: JUMP 00000233: JUMPDEST 00000234: PUSH1 0x00 00000236: PUSH1 0x60 00000238: PUSH2 0x0240 0000023b: DUP8 0000023c: PUSH2 0x1d02 0000023f: JUMP 00000240: JUMPDEST 00000241: ISZERO 00000242: PUSH2 0x0265 00000245: JUMPI 00000246: PUSH1 0x01 00000248: SLOAD 00000249: PUSH2 0x025d 0000024c: SWAP1 0000024d: PUSH1 0x01 0000024f: PUSH1 0x01 00000251: PUSH1 0xa0 00000253: SHL 00000254: SUB 00000255: AND 00000256: DUP8 00000257: DUP8 00000258: DUP7 00000259: PUSH2 0x0947 0000025c: JUMP 0000025d: JUMPDEST 0000025e: POP 0000025f: SWAP1 00000260: POP 00000261: PUSH2 0x029c 00000264: JUMP 00000265: JUMPDEST 00000266: PUSH2 0x026e 00000269: DUP7 0000026a: PUSH2 0x1d02 0000026d: JUMP 0000026e: JUMPDEST 0000026f: ISZERO 00000270: PUSH2 0x028c 00000273: JUMPI 00000274: PUSH1 0x01 00000276: SLOAD 00000277: PUSH2 0x025d 0000027a: SWAP1 0000027b: DUP9 0000027c: SWAP1 0000027d: PUSH1 0x01 0000027f: PUSH1 0x01 00000281: PUSH1 0xa0 00000283: SHL 00000284: SUB 00000285: AND 00000286: DUP8 00000287: DUP7 00000288: PUSH2 0x0947 0000028b: JUMP 0000028c: JUMPDEST 0000028d: PUSH2 0x0298 00000290: DUP8 00000291: DUP8 00000292: DUP8 00000293: DUP7 00000294: PUSH2 0x0947 00000297: JUMP 00000298: JUMPDEST 00000299: POP 0000029a: SWAP1 0000029b: POP 0000029c: JUMPDEST 0000029d: PUSH2 0x02a9 000002a0: DUP2 000002a1: DUP9 000002a2: DUP9 000002a3: DUP9 000002a4: DUP9 000002a5: PUSH2 0x1632 000002a8: JUMP 000002a9: JUMPDEST 000002aa: SWAP8 000002ab: SWAP7 000002ac: POP 000002ad: POP 000002ae: POP 000002af: POP 000002b0: POP 000002b1: POP 000002b2: POP 000002b3: JUMP 000002b4: JUMPDEST 000002b5: PUSH1 0x00 000002b7: PUSH2 0x02c0 000002ba: DUP5 000002bb: DUP4 000002bc: PUSH2 0x1d28 000002bf: JUMP 000002c0: JUMPDEST 000002c1: POP 000002c2: PUSH1 0x00 000002c4: JUMPDEST 000002c5: DUP6 000002c6: MLOAD 000002c7: DUP2 000002c8: LT 000002c9: ISZERO 000002ca: PUSH2 0x0547 000002cd: JUMPI 000002ce: PUSH2 0x02d5 000002d1: PUSH2 0x27e4 000002d4: JUMP 000002d5: JUMPDEST 000002d6: DUP7 000002d7: DUP3 000002d8: DUP2 000002d9: MLOAD 000002da: DUP2 000002db: LT 000002dc: PUSH2 0x02e1 000002df: JUMPI 000002e0: INVALID 000002e1: JUMPDEST 000002e2: PUSH1 0x20 000002e4: SWAP1 000002e5: DUP2 000002e6: MUL 000002e7: SWAP2 000002e8: SWAP1 000002e9: SWAP2 000002ea: ADD 000002eb: DUP2 000002ec: ADD 000002ed: MLOAD 000002ee: SWAP1 000002ef: DUP2 000002f0: ADD 000002f1: MLOAD 000002f2: DUP2 000002f3: MLOAD 000002f4: PUSH1 0x40 000002f6: MLOAD 000002f7: PUSH4 0x6eb1769f 000002fc: PUSH1 0xe1 000002fe: SHL 000002ff: DUP2 00000300: MSTORE 00000301: SWAP3 00000302: SWAP4 00000303: POP 00000304: SWAP1 00000305: SWAP2 00000306: PUSH1 0x00 00000308: SWAP1 00000309: PUSH1 0x01 0000030b: PUSH1 0x01 0000030d: PUSH1 0xa0 0000030f: SHL 00000310: SUB 00000311: DUP5 00000312: AND 00000313: SWAP1 00000314: PUSH4 0xdd62ed3e 00000319: SWAP1 0000031a: PUSH2 0x0329 0000031d: SWAP1 0000031e: ADDRESS 0000031f: SWAP1 00000320: DUP7 00000321: SWAP1 00000322: PUSH1 0x04 00000324: ADD 00000325: PUSH2 0x3108 00000328: JUMP 00000329: JUMPDEST 0000032a: PUSH1 0x20 0000032c: PUSH1 0x40 0000032e: MLOAD 0000032f: DUP1 00000330: DUP4 00000331: SUB 00000332: DUP2 00000333: DUP7 00000334: DUP1 00000335: EXTCODESIZE 00000336: ISZERO 00000337: DUP1 00000338: ISZERO 00000339: PUSH2 0x0341 0000033c: JUMPI 0000033d: PUSH1 0x00 0000033f: DUP1 00000340: REVERT 00000341: JUMPDEST 00000342: POP 00000343: GAS 00000344: STATICCALL 00000345: ISZERO 00000346: DUP1 00000347: ISZERO 00000348: PUSH2 0x0355 0000034b: JUMPI 0000034c: RETURNDATASIZE 0000034d: PUSH1 0x00 0000034f: DUP1 00000350: RETURNDATACOPY 00000351: RETURNDATASIZE 00000352: PUSH1 0x00 00000354: REVERT 00000355: JUMPDEST 00000356: POP 00000357: POP 00000358: POP 00000359: POP 0000035a: PUSH1 0x40 0000035c: MLOAD 0000035d: RETURNDATASIZE 0000035e: PUSH1 0x1f 00000360: NOT 00000361: PUSH1 0x1f 00000363: DUP3 00000364: ADD 00000365: AND 00000366: DUP3 00000367: ADD 00000368: DUP1 00000369: PUSH1 0x40 0000036b: MSTORE 0000036c: POP 0000036d: PUSH2 0x0379 00000370: SWAP2 00000371: SWAP1 00000372: DUP2 00000373: ADD 00000374: SWAP1 00000375: PUSH2 0x2d87 00000378: JUMP 00000379: JUMPDEST 0000037a: GT 0000037b: ISZERO 0000037c: PUSH2 0x0403 0000037f: JUMPI 00000380: DUP3 00000381: MLOAD 00000382: PUSH1 0x40 00000384: MLOAD 00000385: PUSH4 0x095ea7b3 0000038a: PUSH1 0xe0 0000038c: SHL 0000038d: DUP2 0000038e: MSTORE 0000038f: PUSH1 0x01 00000391: PUSH1 0x01 00000393: PUSH1 0xa0 00000395: SHL 00000396: SUB 00000397: DUP5 00000398: AND 00000399: SWAP2 0000039a: PUSH4 0x095ea7b3 0000039f: SWAP2 000003a0: PUSH2 0x03af 000003a3: SWAP2 000003a4: SWAP1 000003a5: PUSH1 0x00 000003a7: SWAP1 000003a8: PUSH1 0x04 000003aa: ADD 000003ab: PUSH2 0x3181 000003ae: JUMP 000003af: JUMPDEST 000003b0: PUSH1 0x20 000003b2: PUSH1 0x40 000003b4: MLOAD 000003b5: DUP1 000003b6: DUP4 000003b7: SUB 000003b8: DUP2 000003b9: PUSH1 0x00 000003bb: DUP8 000003bc: DUP1 000003bd: EXTCODESIZE 000003be: ISZERO 000003bf: DUP1 000003c0: ISZERO 000003c1: PUSH2 0x03c9 000003c4: JUMPI 000003c5: PUSH1 0x00 000003c7: DUP1 000003c8: REVERT 000003c9: JUMPDEST 000003ca: POP 000003cb: GAS 000003cc: CALL 000003cd: ISZERO 000003ce: DUP1 000003cf: ISZERO 000003d0: PUSH2 0x03dd 000003d3: JUMPI 000003d4: RETURNDATASIZE 000003d5: PUSH1 0x00 000003d7: DUP1 000003d8: RETURNDATACOPY 000003d9: RETURNDATASIZE 000003da: PUSH1 0x00 000003dc: REVERT 000003dd: JUMPDEST 000003de: POP 000003df: POP 000003e0: POP 000003e1: POP 000003e2: PUSH1 0x40 000003e4: MLOAD 000003e5: RETURNDATASIZE 000003e6: PUSH1 0x1f 000003e8: NOT 000003e9: PUSH1 0x1f 000003eb: DUP3 000003ec: ADD 000003ed: AND 000003ee: DUP3 000003ef: ADD 000003f0: DUP1 000003f1: PUSH1 0x40 000003f3: MSTORE 000003f4: POP 000003f5: PUSH2 0x0401 000003f8: SWAP2 000003f9: SWAP1 000003fa: DUP2 000003fb: ADD 000003fc: SWAP1 000003fd: PUSH2 0x2d23 00000400: JUMP 00000401: JUMPDEST 00000402: POP 00000403: JUMPDEST 00000404: DUP3 00000405: MLOAD 00000406: PUSH1 0x80 00000408: DUP5 00000409: ADD 0000040a: MLOAD 0000040b: PUSH1 0x40 0000040d: MLOAD 0000040e: PUSH4 0x095ea7b3 00000413: PUSH1 0xe0 00000415: SHL 00000416: DUP2 00000417: MSTORE 00000418: PUSH1 0x01 0000041a: PUSH1 0x01 0000041c: PUSH1 0xa0 0000041e: SHL 0000041f: SUB 00000420: DUP6 00000421: AND 00000422: SWAP3 00000423: PUSH4 0x095ea7b3 00000428: SWAP3 00000429: PUSH2 0x0434 0000042c: SWAP3 0000042d: PUSH1 0x04 0000042f: ADD 00000430: PUSH2 0x319c 00000433: JUMP 00000434: JUMPDEST 00000435: PUSH1 0x20 00000437: PUSH1 0x40 00000439: MLOAD 0000043a: DUP1 0000043b: DUP4 0000043c: SUB 0000043d: DUP2 0000043e: PUSH1 0x00 00000440: DUP8 00000441: DUP1 00000442: EXTCODESIZE 00000443: ISZERO 00000444: DUP1 00000445: ISZERO 00000446: PUSH2 0x044e 00000449: JUMPI 0000044a: PUSH1 0x00 0000044c: DUP1 0000044d: REVERT 0000044e: JUMPDEST 0000044f: POP 00000450: GAS 00000451: CALL 00000452: ISZERO 00000453: DUP1 00000454: ISZERO 00000455: PUSH2 0x0462 00000458: JUMPI 00000459: RETURNDATASIZE 0000045a: PUSH1 0x00 0000045c: DUP1 0000045d: RETURNDATACOPY 0000045e: RETURNDATASIZE 0000045f: PUSH1 0x00 00000461: REVERT 00000462: JUMPDEST 00000463: POP 00000464: POP 00000465: POP 00000466: POP 00000467: PUSH1 0x40 00000469: MLOAD 0000046a: RETURNDATASIZE 0000046b: PUSH1 0x1f 0000046d: NOT 0000046e: PUSH1 0x1f 00000470: DUP3 00000471: ADD 00000472: AND 00000473: DUP3 00000474: ADD 00000475: DUP1 00000476: PUSH1 0x40 00000478: MSTORE 00000479: POP 0000047a: PUSH2 0x0486 0000047d: SWAP2 0000047e: SWAP1 0000047f: DUP2 00000480: ADD 00000481: SWAP1 00000482: PUSH2 0x2d23 00000485: JUMP 00000486: JUMPDEST 00000487: POP 00000488: PUSH1 0x20 0000048a: DUP4 0000048b: ADD 0000048c: MLOAD 0000048d: PUSH1 0x80 0000048f: DUP5 00000490: ADD 00000491: MLOAD 00000492: PUSH1 0x40 00000494: DUP1 00000495: DUP7 00000496: ADD 00000497: MLOAD 00000498: PUSH1 0x60 0000049a: DUP8 0000049b: ADD 0000049c: MLOAD 0000049d: PUSH1 0xa0 0000049f: DUP9 000004a0: ADD 000004a1: MLOAD 000004a2: SWAP3 000004a3: MLOAD 000004a4: PUSH4 0x1f17a7a9 000004a9: PUSH1 0xe2 000004ab: SHL 000004ac: DUP2 000004ad: MSTORE 000004ae: PUSH1 0x00 000004b0: SWAP6 000004b1: PUSH1 0x01 000004b3: PUSH1 0x01 000004b5: PUSH1 0xa0 000004b7: SHL 000004b8: SUB 000004b9: DUP9 000004ba: AND 000004bb: SWAP6 000004bc: PUSH4 0x7c5e9ea4 000004c1: SWAP6 000004c2: PUSH2 0x04d1 000004c5: SWAP6 000004c6: SWAP3 000004c7: SWAP5 000004c8: SWAP2 000004c9: SWAP4 000004ca: PUSH1 0x04 000004cc: ADD 000004cd: PUSH2 0x31aa 000004d0: JUMP 000004d1: JUMPDEST 000004d2: PUSH1 0x40 000004d4: DUP1 000004d5: MLOAD 000004d6: DUP1 000004d7: DUP4 000004d8: SUB 000004d9: DUP2 000004da: PUSH1 0x00 000004dc: DUP8 000004dd: DUP1 000004de: EXTCODESIZE 000004df: ISZERO 000004e0: DUP1 000004e1: ISZERO 000004e2: PUSH2 0x04ea 000004e5: JUMPI 000004e6: PUSH1 0x00 000004e8: DUP1 000004e9: REVERT 000004ea: JUMPDEST 000004eb: POP 000004ec: GAS 000004ed: CALL 000004ee: ISZERO 000004ef: DUP1 000004f0: ISZERO 000004f1: PUSH2 0x04fe 000004f4: JUMPI 000004f5: RETURNDATASIZE 000004f6: PUSH1 0x00 000004f8: DUP1 000004f9: RETURNDATACOPY 000004fa: RETURNDATASIZE 000004fb: PUSH1 0x00 000004fd: REVERT 000004fe: JUMPDEST 000004ff: POP 00000500: POP 00000501: POP 00000502: POP 00000503: PUSH1 0x40 00000505: MLOAD 00000506: RETURNDATASIZE 00000507: PUSH1 0x1f 00000509: NOT 0000050a: PUSH1 0x1f 0000050c: DUP3 0000050d: ADD 0000050e: AND 0000050f: DUP3 00000510: ADD 00000511: DUP1 00000512: PUSH1 0x40 00000514: MSTORE 00000515: POP 00000516: PUSH2 0x0522 00000519: SWAP2 0000051a: SWAP1 0000051b: DUP2 0000051c: ADD 0000051d: SWAP1 0000051e: PUSH2 0x2da5 00000521: JUMP 00000522: JUMPDEST 00000523: POP 00000524: SWAP1 00000525: POP 00000526: PUSH2 0x0535 00000529: DUP2 0000052a: DUP8 0000052b: PUSH4 0xffffffff 00000530: PUSH2 0x1e4a 00000533: AND 00000534: JUMP 00000535: JUMPDEST 00000536: SWAP6 00000537: POP 00000538: POP 00000539: PUSH1 0x01 0000053b: SWAP1 0000053c: SWAP4 0000053d: ADD 0000053e: SWAP3 0000053f: POP 00000540: PUSH2 0x02c4 00000543: SWAP2 00000544: POP 00000545: POP 00000546: JUMP 00000547: JUMPDEST 00000548: POP 00000549: DUP2 0000054a: DUP2 0000054b: GT 0000054c: ISZERO 0000054d: PUSH2 0x0571 00000550: JUMPI 00000551: PUSH1 0x40 00000553: MLOAD 00000554: PUSH3 0x461bcd 00000558: PUSH1 0xe5 0000055a: SHL 0000055b: DUP2 0000055c: MSTORE 0000055d: PUSH1 0x04 0000055f: ADD 00000560: PUSH2 0x0568 00000563: SWAP1 00000564: PUSH2 0x3265 00000567: JUMP 00000568: JUMPDEST 00000569: PUSH1 0x40 0000056b: MLOAD 0000056c: DUP1 0000056d: SWAP2 0000056e: SUB 0000056f: SWAP1 00000570: REVERT 00000571: JUMPDEST 00000572: PUSH2 0x0583 00000575: DUP4 00000576: PUSH2 0x057e 00000579: DUP6 0000057a: PUSH2 0x1e76 0000057d: JUMP 0000057e: JUMPDEST 0000057f: PUSH2 0x1f39 00000582: JUMP 00000583: JUMPDEST 00000584: POP 00000585: PUSH2 0x0591 00000588: DUP5 00000589: PUSH2 0x057e 0000058c: DUP7 0000058d: PUSH2 0x1e76 00000590: JUMP 00000591: JUMPDEST 00000592: POP 00000593: SWAP5 00000594: SWAP4 00000595: POP 00000596: POP 00000597: POP 00000598: POP 00000599: JUMP 0000059a: JUMPDEST 0000059b: PUSH1 0x02 0000059d: SLOAD 0000059e: PUSH1 0x40 000005a0: MLOAD 000005a1: PUSH4 0xbfdbfc43 000005a6: PUSH1 0xe0 000005a8: SHL 000005a9: DUP2 000005aa: MSTORE 000005ab: PUSH1 0x60 000005ad: SWAP2 000005ae: PUSH1 0x00 000005b0: SWAP2 000005b1: DUP4 000005b2: SWAP2 000005b3: PUSH1 0x01 000005b5: PUSH1 0x01 000005b7: PUSH1 0xa0 000005b9: SHL 000005ba: SUB 000005bb: AND 000005bc: SWAP1 000005bd: PUSH4 0xbfdbfc43 000005c2: SWAP1 000005c3: PUSH2 0x05d4 000005c6: SWAP1 000005c7: DUP11 000005c8: SWAP1 000005c9: DUP11 000005ca: SWAP1 000005cb: DUP10 000005cc: SWAP1 000005cd: PUSH1 0x04 000005cf: ADD 000005d0: PUSH2 0x3166 000005d3: JUMP 000005d4: JUMPDEST 000005d5: PUSH1 0x00 000005d7: PUSH1 0x40 000005d9: MLOAD 000005da: DUP1 000005db: DUP4 000005dc: SUB 000005dd: DUP2 000005de: DUP7 000005df: DUP1 000005e0: EXTCODESIZE 000005e1: ISZERO 000005e2: DUP1 000005e3: ISZERO 000005e4: PUSH2 0x05ec 000005e7: JUMPI 000005e8: PUSH1 0x00 000005ea: DUP1 000005eb: REVERT 000005ec: JUMPDEST 000005ed: POP 000005ee: GAS 000005ef: STATICCALL 000005f0: ISZERO 000005f1: DUP1 000005f2: ISZERO 000005f3: PUSH2 0x0600 000005f6: JUMPI 000005f7: RETURNDATASIZE 000005f8: PUSH1 0x00 000005fa: DUP1 000005fb: RETURNDATACOPY 000005fc: RETURNDATASIZE 000005fd: PUSH1 0x00 000005ff: REVERT 00000600: JUMPDEST 00000601: POP 00000602: POP 00000603: POP 00000604: POP 00000605: PUSH1 0x40 00000607: MLOAD 00000608: RETURNDATASIZE 00000609: PUSH1 0x00 0000060b: DUP3 0000060c: RETURNDATACOPY 0000060d: PUSH1 0x1f 0000060f: RETURNDATASIZE 00000610: SWAP1 00000611: DUP2 00000612: ADD 00000613: PUSH1 0x1f 00000615: NOT 00000616: AND 00000617: DUP3 00000618: ADD 00000619: PUSH1 0x40 0000061b: MSTORE 0000061c: PUSH2 0x0628 0000061f: SWAP2 00000620: SWAP1 00000621: DUP2 00000622: ADD 00000623: SWAP1 00000624: PUSH2 0x2b93 00000627: JUMP 00000628: JUMPDEST 00000629: SWAP1 0000062a: POP 0000062b: PUSH1 0x60 0000062d: DUP2 0000062e: MLOAD 0000062f: PUSH1 0x40 00000631: MLOAD 00000632: SWAP1 00000633: DUP1 00000634: DUP3 00000635: MSTORE 00000636: DUP1 00000637: PUSH1 0x20 00000639: MUL 0000063a: PUSH1 0x20 0000063c: ADD 0000063d: DUP3 0000063e: ADD 0000063f: PUSH1 0x40 00000641: MSTORE 00000642: DUP1 00000643: ISZERO 00000644: PUSH2 0x0667 00000647: JUMPI 00000648: DUP2 00000649: PUSH1 0x20 0000064b: ADD 0000064c: JUMPDEST 0000064d: PUSH2 0x0654 00000650: PUSH2 0x2835 00000653: JUMP 00000654: JUMPDEST 00000655: DUP2 00000656: MSTORE 00000657: PUSH1 0x20 00000659: ADD 0000065a: SWAP1 0000065b: PUSH1 0x01 0000065d: SWAP1 0000065e: SUB 0000065f: SWAP1 00000660: DUP2 00000661: PUSH2 0x064c 00000664: JUMPI 00000665: SWAP1 00000666: POP 00000667: JUMPDEST 00000668: POP 00000669: SWAP1 0000066a: POP 0000066b: PUSH1 0x00 0000066d: DUP1 0000066e: JUMPDEST 0000066f: DUP4 00000670: MLOAD 00000671: DUP2 00000672: LT 00000673: ISZERO 00000674: PUSH2 0x06e0 00000677: JUMPI 00000678: PUSH2 0x0695 0000067b: DUP11 0000067c: DUP11 0000067d: DUP7 0000067e: DUP5 0000067f: DUP2 00000680: MLOAD 00000681: DUP2 00000682: LT 00000683: PUSH2 0x0688 00000686: JUMPI 00000687: INVALID 00000688: JUMPDEST 00000689: PUSH1 0x20 0000068b: MUL 0000068c: PUSH1 0x20 0000068e: ADD 0000068f: ADD 00000690: MLOAD 00000691: PUSH2 0x2068 00000694: JUMP 00000695: JUMPDEST 00000696: DUP4 00000697: DUP3 00000698: DUP2 00000699: MLOAD 0000069a: DUP2 0000069b: LT 0000069c: PUSH2 0x06a1 0000069f: JUMPI 000006a0: INVALID 000006a1: JUMPDEST 000006a2: PUSH1 0x20 000006a4: MUL 000006a5: PUSH1 0x20 000006a7: ADD 000006a8: ADD 000006a9: DUP2 000006aa: SWAP1 000006ab: MSTORE 000006ac: POP 000006ad: PUSH2 0x06d6 000006b0: DUP4 000006b1: DUP3 000006b2: DUP2 000006b3: MLOAD 000006b4: DUP2 000006b5: LT 000006b6: PUSH2 0x06bb 000006b9: JUMPI 000006ba: INVALID 000006bb: JUMPDEST 000006bc: PUSH1 0x20 000006be: MUL 000006bf: PUSH1 0x20 000006c1: ADD 000006c2: ADD 000006c3: MLOAD 000006c4: PUSH1 0xc0 000006c6: ADD 000006c7: MLOAD 000006c8: DUP4 000006c9: PUSH2 0x1e4a 000006cc: SWAP1 000006cd: SWAP2 000006ce: SWAP1 000006cf: PUSH4 0xffffffff 000006d4: AND 000006d5: JUMP 000006d6: JUMPDEST 000006d7: SWAP2 000006d8: POP 000006d9: PUSH1 0x01 000006db: ADD 000006dc: PUSH2 0x066e 000006df: JUMP 000006e0: JUMPDEST 000006e1: POP 000006e2: PUSH1 0x60 000006e4: DUP3 000006e5: MLOAD 000006e6: PUSH1 0x40 000006e8: MLOAD 000006e9: SWAP1 000006ea: DUP1 000006eb: DUP3 000006ec: MSTORE 000006ed: DUP1 000006ee: PUSH1 0x20 000006f0: MUL 000006f1: PUSH1 0x20 000006f3: ADD 000006f4: DUP3 000006f5: ADD 000006f6: PUSH1 0x40 000006f8: MSTORE 000006f9: DUP1 000006fa: ISZERO 000006fb: PUSH2 0x070e 000006fe: JUMPI 000006ff: DUP2 00000700: PUSH1 0x20 00000702: ADD 00000703: PUSH1 0x20 00000705: DUP3 00000706: MUL 00000707: DUP1 00000708: CODESIZE 00000709: DUP4 0000070a: CODECOPY 0000070b: ADD 0000070c: SWAP1 0000070d: POP 0000070e: JUMPDEST 0000070f: POP 00000710: SWAP1 00000711: POP 00000712: PUSH1 0x00 00000714: DUP1 00000715: JUMPDEST 00000716: DUP5 00000717: MLOAD 00000718: DUP2 00000719: LT 0000071a: ISZERO 0000071b: PUSH2 0x07a0 0000071e: JUMPI 0000071f: PUSH2 0x0758 00000722: DUP5 00000723: PUSH2 0x074c 00000726: DUP8 00000727: DUP5 00000728: DUP2 00000729: MLOAD 0000072a: DUP2 0000072b: LT 0000072c: PUSH2 0x0731 0000072f: JUMPI 00000730: INVALID 00000731: JUMPDEST 00000732: PUSH1 0x20 00000734: MUL 00000735: PUSH1 0x20 00000737: ADD 00000738: ADD 00000739: MLOAD 0000073a: PUSH1 0xc0 0000073c: ADD 0000073d: MLOAD 0000073e: DUP14 0000073f: PUSH2 0x2348 00000742: SWAP1 00000743: SWAP2 00000744: SWAP1 00000745: PUSH4 0xffffffff 0000074a: AND 0000074b: JUMP 0000074c: JUMPDEST 0000074d: SWAP1 0000074e: PUSH4 0xffffffff 00000753: PUSH2 0x2382 00000756: AND 00000757: JUMP 00000758: JUMPDEST 00000759: DUP4 0000075a: DUP3 0000075b: DUP2 0000075c: MLOAD 0000075d: DUP2 0000075e: LT 0000075f: PUSH2 0x0764 00000762: JUMPI 00000763: INVALID 00000764: JUMPDEST 00000765: PUSH1 0x20 00000767: MUL 00000768: PUSH1 0x20 0000076a: ADD 0000076b: ADD 0000076c: DUP2 0000076d: DUP2 0000076e: MSTORE 0000076f: POP 00000770: POP 00000771: PUSH2 0x0796 00000774: DUP4 00000775: DUP3 00000776: DUP2 00000777: MLOAD 00000778: DUP2 00000779: LT 0000077a: PUSH2 0x077f 0000077d: JUMPI 0000077e: INVALID 0000077f: JUMPDEST 00000780: PUSH1 0x20 00000782: MUL 00000783: PUSH1 0x20 00000785: ADD 00000786: ADD 00000787: MLOAD 00000788: DUP4 00000789: PUSH2 0x1e4a 0000078c: SWAP1 0000078d: SWAP2 0000078e: SWAP1 0000078f: PUSH4 0xffffffff 00000794: AND 00000795: JUMP 00000796: JUMPDEST 00000797: SWAP2 00000798: POP 00000799: PUSH1 0x01 0000079b: ADD 0000079c: PUSH2 0x0715 0000079f: JUMP 000007a0: JUMPDEST 000007a1: POP 000007a2: DUP9 000007a3: DUP2 000007a4: LT 000007a5: ISZERO 000007a6: PUSH2 0x07fd 000007a9: JUMPI 000007aa: PUSH2 0x07df 000007ad: PUSH2 0x07bc 000007b0: DUP11 000007b1: DUP4 000007b2: PUSH4 0xffffffff 000007b7: PUSH2 0x23c4 000007ba: AND 000007bb: JUMP 000007bc: JUMPDEST 000007bd: DUP4 000007be: PUSH1 0x00 000007c0: DUP2 000007c1: MLOAD 000007c2: DUP2 000007c3: LT 000007c4: PUSH2 0x07c9 000007c7: JUMPI 000007c8: INVALID 000007c9: JUMPDEST 000007ca: PUSH1 0x20 000007cc: MUL 000007cd: PUSH1 0x20 000007cf: ADD 000007d0: ADD 000007d1: MLOAD 000007d2: PUSH2 0x1e4a 000007d5: SWAP1 000007d6: SWAP2 000007d7: SWAP1 000007d8: PUSH4 0xffffffff 000007dd: AND 000007de: JUMP 000007df: JUMPDEST 000007e0: DUP3 000007e1: PUSH1 0x00 000007e3: DUP2 000007e4: MLOAD 000007e5: DUP2 000007e6: LT 000007e7: PUSH2 0x07ec 000007ea: JUMPI 000007eb: INVALID 000007ec: JUMPDEST 000007ed: PUSH1 0x20 000007ef: MUL 000007f0: PUSH1 0x20 000007f2: ADD 000007f3: ADD 000007f4: DUP2 000007f5: DUP2 000007f6: MSTORE 000007f7: POP 000007f8: POP 000007f9: PUSH2 0x084d 000007fc: JUMP 000007fd: JUMPDEST 000007fe: PUSH2 0x0833 00000801: PUSH2 0x0810 00000804: DUP3 00000805: DUP12 00000806: PUSH4 0xffffffff 0000080b: PUSH2 0x23c4 0000080e: AND 0000080f: JUMP 00000810: JUMPDEST 00000811: DUP4 00000812: PUSH1 0x00 00000814: DUP2 00000815: MLOAD 00000816: DUP2 00000817: LT 00000818: PUSH2 0x081d 0000081b: JUMPI 0000081c: INVALID 0000081d: JUMPDEST 0000081e: PUSH1 0x20 00000820: MUL 00000821: PUSH1 0x20 00000823: ADD 00000824: ADD 00000825: MLOAD 00000826: PUSH2 0x23c4 00000829: SWAP1 0000082a: SWAP2 0000082b: SWAP1 0000082c: PUSH4 0xffffffff 00000831: AND 00000832: JUMP 00000833: JUMPDEST 00000834: DUP3 00000835: PUSH1 0x00 00000837: DUP2 00000838: MLOAD 00000839: DUP2 0000083a: LT 0000083b: PUSH2 0x0840 0000083e: JUMPI 0000083f: INVALID 00000840: JUMPDEST 00000841: PUSH1 0x20 00000843: MUL 00000844: PUSH1 0x20 00000846: ADD 00000847: ADD 00000848: DUP2 00000849: DUP2 0000084a: MSTORE 0000084b: POP 0000084c: POP 0000084d: JUMPDEST 0000084e: DUP4 0000084f: MLOAD 00000850: PUSH1 0x40 00000852: MLOAD 00000853: SWAP1 00000854: DUP1 00000855: DUP3 00000856: MSTORE 00000857: DUP1 00000858: PUSH1 0x20 0000085a: MUL 0000085b: PUSH1 0x20 0000085d: ADD 0000085e: DUP3 0000085f: ADD 00000860: PUSH1 0x40 00000862: MSTORE 00000863: DUP1 00000864: ISZERO 00000865: PUSH2 0x0888 00000868: JUMPI 00000869: DUP2 0000086a: PUSH1 0x20 0000086c: ADD 0000086d: JUMPDEST 0000086e: PUSH2 0x0875 00000871: PUSH2 0x27e4 00000874: JUMP 00000875: JUMPDEST 00000876: DUP2 00000877: MSTORE 00000878: PUSH1 0x20 0000087a: ADD 0000087b: SWAP1 0000087c: PUSH1 0x01 0000087e: SWAP1 0000087f: SUB 00000880: SWAP1 00000881: DUP2 00000882: PUSH2 0x086d 00000885: JUMPI 00000886: SWAP1 00000887: POP 00000888: JUMPDEST 00000889: POP 0000088a: SWAP7 0000088b: POP 0000088c: PUSH1 0x00 0000088e: JUMPDEST 0000088f: DUP5 00000890: MLOAD 00000891: DUP2 00000892: LT 00000893: ISZERO 00000894: PUSH2 0x092c 00000897: JUMPI 00000898: PUSH1 0x40 0000089a: MLOAD 0000089b: DUP1 0000089c: PUSH1 0xc0 0000089e: ADD 0000089f: PUSH1 0x40 000008a1: MSTORE 000008a2: DUP1 000008a3: DUP7 000008a4: DUP4 000008a5: DUP2 000008a6: MLOAD 000008a7: DUP2 000008a8: LT 000008a9: PUSH2 0x08ae 000008ac: JUMPI 000008ad: INVALID 000008ae: JUMPDEST 000008af: PUSH1 0x20 000008b1: MUL 000008b2: PUSH1 0x20 000008b4: ADD 000008b5: ADD 000008b6: MLOAD 000008b7: PUSH1 0x00 000008b9: ADD 000008ba: MLOAD 000008bb: PUSH1 0x01 000008bd: PUSH1 0x01 000008bf: PUSH1 0xa0 000008c1: SHL 000008c2: SUB 000008c3: AND 000008c4: DUP2 000008c5: MSTORE 000008c6: PUSH1 0x20 000008c8: ADD 000008c9: DUP14 000008ca: PUSH1 0x01 000008cc: PUSH1 0x01 000008ce: PUSH1 0xa0 000008d0: SHL 000008d1: SUB 000008d2: AND 000008d3: DUP2 000008d4: MSTORE 000008d5: PUSH1 0x20 000008d7: ADD 000008d8: DUP13 000008d9: PUSH1 0x01 000008db: PUSH1 0x01 000008dd: PUSH1 0xa0 000008df: SHL 000008e0: SUB 000008e1: AND 000008e2: DUP2 000008e3: MSTORE 000008e4: PUSH1 0x20 000008e6: ADD 000008e7: DUP5 000008e8: DUP4 000008e9: DUP2 000008ea: MLOAD 000008eb: DUP2 000008ec: LT 000008ed: PUSH2 0x08f2 000008f0: JUMPI 000008f1: INVALID 000008f2: JUMPDEST 000008f3: PUSH1 0x20 000008f5: MUL 000008f6: PUSH1 0x20 000008f8: ADD 000008f9: ADD 000008fa: MLOAD 000008fb: DUP2 000008fc: MSTORE 000008fd: PUSH1 0x20 000008ff: ADD 00000900: PUSH1 0x00 00000902: NOT 00000903: DUP2 00000904: MSTORE 00000905: PUSH1 0x20 00000907: ADD 00000908: PUSH1 0x00 0000090a: NOT 0000090b: DUP2 0000090c: MSTORE 0000090d: POP 0000090e: DUP9 0000090f: DUP3 00000910: DUP2 00000911: MLOAD 00000912: DUP2 00000913: LT 00000914: PUSH2 0x0919 00000917: JUMPI 00000918: INVALID 00000919: JUMPDEST 0000091a: PUSH1 0x20 0000091c: SWAP1 0000091d: DUP2 0000091e: MUL 0000091f: SWAP2 00000920: SWAP1 00000921: SWAP2 00000922: ADD 00000923: ADD 00000924: MSTORE 00000925: PUSH1 0x01 00000927: ADD 00000928: PUSH2 0x088e 0000092b: JUMP 0000092c: JUMPDEST 0000092d: POP 0000092e: PUSH2 0x0937 00000931: DUP3 00000932: DUP6 00000933: PUSH2 0x2406 00000936: JUMP 00000937: JUMPDEST 00000938: SWAP6 00000939: POP 0000093a: POP 0000093b: POP 0000093c: POP 0000093d: POP 0000093e: POP 0000093f: SWAP5 00000940: POP 00000941: SWAP5 00000942: SWAP3 00000943: POP 00000944: POP 00000945: POP 00000946: JUMP 00000947: JUMPDEST 00000948: PUSH1 0x02 0000094a: SLOAD 0000094b: PUSH1 0x40 0000094d: MLOAD 0000094e: PUSH4 0xbfdbfc43 00000953: PUSH1 0xe0 00000955: SHL 00000956: DUP2 00000957: MSTORE 00000958: PUSH1 0x60 0000095a: SWAP2 0000095b: PUSH1 0x00 0000095d: SWAP2 0000095e: DUP4 0000095f: SWAP2 00000960: PUSH1 0x01 00000962: PUSH1 0x01 00000964: PUSH1 0xa0 00000966: SHL 00000967: SUB 00000968: AND 00000969: SWAP1 0000096a: PUSH4 0xbfdbfc43 0000096f: SWAP1 00000970: PUSH2 0x0981 00000973: SWAP1 00000974: DUP11 00000975: SWAP1 00000976: DUP11 00000977: SWAP1 00000978: DUP10 00000979: SWAP1 0000097a: PUSH1 0x04 0000097c: ADD 0000097d: PUSH2 0x3166 00000980: JUMP 00000981: JUMPDEST 00000982: PUSH1 0x00 00000984: PUSH1 0x40 00000986: MLOAD 00000987: DUP1 00000988: DUP4 00000989: SUB 0000098a: DUP2 0000098b: DUP7 0000098c: DUP1 0000098d: EXTCODESIZE 0000098e: ISZERO 0000098f: DUP1 00000990: ISZERO 00000991: PUSH2 0x0999 00000994: JUMPI 00000995: PUSH1 0x00 00000997: DUP1 00000998: REVERT 00000999: JUMPDEST 0000099a: POP 0000099b: GAS 0000099c: STATICCALL 0000099d: ISZERO 0000099e: DUP1 0000099f: ISZERO 000009a0: PUSH2 0x09ad 000009a3: JUMPI 000009a4: RETURNDATASIZE 000009a5: PUSH1 0x00 000009a7: DUP1 000009a8: RETURNDATACOPY 000009a9: RETURNDATASIZE 000009aa: PUSH1 0x00 000009ac: REVERT 000009ad: JUMPDEST 000009ae: POP 000009af: POP 000009b0: POP 000009b1: POP 000009b2: PUSH1 0x40 000009b4: MLOAD 000009b5: RETURNDATASIZE 000009b6: PUSH1 0x00 000009b8: DUP3 000009b9: RETURNDATACOPY 000009ba: PUSH1 0x1f 000009bc: RETURNDATASIZE 000009bd: SWAP1 000009be: DUP2 000009bf: ADD 000009c0: PUSH1 0x1f 000009c2: NOT 000009c3: AND 000009c4: DUP3 000009c5: ADD 000009c6: PUSH1 0x40 000009c8: MSTORE 000009c9: PUSH2 0x09d5 000009cc: SWAP2 000009cd: SWAP1 000009ce: DUP2 000009cf: ADD 000009d0: SWAP1 000009d1: PUSH2 0x2b93 000009d4: JUMP 000009d5: JUMPDEST 000009d6: SWAP1 000009d7: POP 000009d8: PUSH1 0x60 000009da: DUP2 000009db: MLOAD 000009dc: PUSH1 0x40 000009de: MLOAD 000009df: SWAP1 000009e0: DUP1 000009e1: DUP3 000009e2: MSTORE 000009e3: DUP1 000009e4: PUSH1 0x20 000009e6: MUL 000009e7: PUSH1 0x20 000009e9: ADD 000009ea: DUP3 000009eb: ADD 000009ec: PUSH1 0x40 000009ee: MSTORE 000009ef: DUP1 000009f0: ISZERO 000009f1: PUSH2 0x0a14 000009f4: JUMPI 000009f5: DUP2 000009f6: PUSH1 0x20 000009f8: ADD 000009f9: JUMPDEST 000009fa: PUSH2 0x0a01 000009fd: PUSH2 0x2835 00000a00: JUMP 00000a01: JUMPDEST 00000a02: DUP2 00000a03: MSTORE 00000a04: PUSH1 0x20 00000a06: ADD 00000a07: SWAP1 00000a08: PUSH1 0x01 00000a0a: SWAP1 00000a0b: SUB 00000a0c: SWAP1 00000a0d: DUP2 00000a0e: PUSH2 0x09f9 00000a11: JUMPI 00000a12: SWAP1 00000a13: POP 00000a14: JUMPDEST 00000a15: POP 00000a16: SWAP1 00000a17: POP 00000a18: PUSH1 0x00 00000a1a: DUP1 00000a1b: JUMPDEST 00000a1c: DUP4 00000a1d: MLOAD 00000a1e: DUP2 00000a1f: LT 00000a20: ISZERO 00000a21: PUSH2 0x0a65 00000a24: JUMPI 00000a25: PUSH2 0x0a35 00000a28: DUP11 00000a29: DUP11 00000a2a: DUP7 00000a2b: DUP5 00000a2c: DUP2 00000a2d: MLOAD 00000a2e: DUP2 00000a2f: LT 00000a30: PUSH2 0x0688 00000a33: JUMPI 00000a34: INVALID 00000a35: JUMPDEST 00000a36: DUP4 00000a37: DUP3 00000a38: DUP2 00000a39: MLOAD 00000a3a: DUP2 00000a3b: LT 00000a3c: PUSH2 0x0a41 00000a3f: JUMPI 00000a40: INVALID 00000a41: JUMPDEST 00000a42: PUSH1 0x20 00000a44: MUL 00000a45: PUSH1 0x20 00000a47: ADD 00000a48: ADD 00000a49: DUP2 00000a4a: SWAP1 00000a4b: MSTORE 00000a4c: POP 00000a4d: PUSH2 0x0a5b 00000a50: DUP4 00000a51: DUP3 00000a52: DUP2 00000a53: MLOAD 00000a54: DUP2 00000a55: LT 00000a56: PUSH2 0x06bb 00000a59: JUMPI 00000a5a: INVALID 00000a5b: JUMPDEST 00000a5c: SWAP2 00000a5d: POP 00000a5e: PUSH1 0x01 00000a60: ADD 00000a61: PUSH2 0x0a1b 00000a64: JUMP 00000a65: JUMPDEST 00000a66: POP 00000a67: PUSH1 0x60 00000a69: DUP3 00000a6a: MLOAD 00000a6b: PUSH1 0x40 00000a6d: MLOAD 00000a6e: SWAP1 00000a6f: DUP1 00000a70: DUP3 00000a71: MSTORE 00000a72: DUP1 00000a73: PUSH1 0x20 00000a75: MUL 00000a76: PUSH1 0x20 00000a78: ADD 00000a79: DUP3 00000a7a: ADD 00000a7b: PUSH1 0x40 00000a7d: MSTORE 00000a7e: DUP1 00000a7f: ISZERO 00000a80: PUSH2 0x0a93 00000a83: JUMPI 00000a84: DUP2 00000a85: PUSH1 0x20 00000a87: ADD 00000a88: PUSH1 0x20 00000a8a: DUP3 00000a8b: MUL 00000a8c: DUP1 00000a8d: CODESIZE 00000a8e: DUP4 00000a8f: CODECOPY 00000a90: ADD 00000a91: SWAP1 00000a92: POP 00000a93: JUMPDEST 00000a94: POP 00000a95: SWAP1 00000a96: POP 00000a97: PUSH1 0x00 00000a99: DUP1 00000a9a: JUMPDEST 00000a9b: DUP5 00000a9c: MLOAD 00000a9d: DUP2 00000a9e: LT 00000a9f: ISZERO 00000aa0: PUSH2 0x0ae7 00000aa3: JUMPI 00000aa4: PUSH2 0x0ab6 00000aa7: DUP5 00000aa8: PUSH2 0x074c 00000aab: DUP8 00000aac: DUP5 00000aad: DUP2 00000aae: MLOAD 00000aaf: DUP2 00000ab0: LT 00000ab1: PUSH2 0x0731 00000ab4: JUMPI 00000ab5: INVALID 00000ab6: JUMPDEST 00000ab7: DUP4 00000ab8: DUP3 00000ab9: DUP2 00000aba: MLOAD 00000abb: DUP2 00000abc: LT 00000abd: PUSH2 0x0ac2 00000ac0: JUMPI 00000ac1: INVALID 00000ac2: JUMPDEST 00000ac3: PUSH1 0x20 00000ac5: MUL 00000ac6: PUSH1 0x20 00000ac8: ADD 00000ac9: ADD 00000aca: DUP2 00000acb: DUP2 00000acc: MSTORE 00000acd: POP 00000ace: POP 00000acf: PUSH2 0x0add 00000ad2: DUP4 00000ad3: DUP3 00000ad4: DUP2 00000ad5: MLOAD 00000ad6: DUP2 00000ad7: LT 00000ad8: PUSH2 0x077f 00000adb: JUMPI 00000adc: INVALID 00000add: JUMPDEST 00000ade: SWAP2 00000adf: POP 00000ae0: PUSH1 0x01 00000ae2: ADD 00000ae3: PUSH2 0x0a9a 00000ae6: JUMP 00000ae7: JUMPDEST 00000ae8: POP 00000ae9: DUP9 00000aea: DUP2 00000aeb: LT 00000aec: ISZERO 00000aed: PUSH2 0x0b21 00000af0: JUMPI 00000af1: PUSH2 0x0b03 00000af4: PUSH2 0x07bc 00000af7: DUP11 00000af8: DUP4 00000af9: PUSH4 0xffffffff 00000afe: PUSH2 0x23c4 00000b01: AND 00000b02: JUMP 00000b03: JUMPDEST 00000b04: DUP3 00000b05: PUSH1 0x00 00000b07: DUP2 00000b08: MLOAD 00000b09: DUP2 00000b0a: LT 00000b0b: PUSH2 0x0b10 00000b0e: JUMPI 00000b0f: INVALID 00000b10: JUMPDEST 00000b11: PUSH1 0x20 00000b13: MUL 00000b14: PUSH1 0x20 00000b16: ADD 00000b17: ADD 00000b18: DUP2 00000b19: DUP2 00000b1a: MSTORE 00000b1b: POP 00000b1c: POP 00000b1d: PUSH2 0x0b4e 00000b20: JUMP 00000b21: JUMPDEST 00000b22: PUSH2 0x0b34 00000b25: PUSH2 0x0810 00000b28: DUP3 00000b29: DUP12 00000b2a: PUSH4 0xffffffff 00000b2f: PUSH2 0x23c4 00000b32: AND 00000b33: JUMP 00000b34: JUMPDEST 00000b35: DUP3 00000b36: PUSH1 0x00 00000b38: DUP2 00000b39: MLOAD 00000b3a: DUP2 00000b3b: LT 00000b3c: PUSH2 0x0b41 00000b3f: JUMPI 00000b40: INVALID 00000b41: JUMPDEST 00000b42: PUSH1 0x20 00000b44: MUL 00000b45: PUSH1 0x20 00000b47: ADD 00000b48: ADD 00000b49: DUP2 00000b4a: DUP2 00000b4b: MSTORE 00000b4c: POP 00000b4d: POP 00000b4e: JUMPDEST 00000b4f: DUP4 00000b50: MLOAD 00000b51: PUSH1 0x40 00000b53: MLOAD 00000b54: SWAP1 00000b55: DUP1 00000b56: DUP3 00000b57: MSTORE 00000b58: DUP1 00000b59: PUSH1 0x20 00000b5b: MUL 00000b5c: PUSH1 0x20 00000b5e: ADD 00000b5f: DUP3 00000b60: ADD 00000b61: PUSH1 0x40 00000b63: MSTORE 00000b64: DUP1 00000b65: ISZERO 00000b66: PUSH2 0x0b89 00000b69: JUMPI 00000b6a: DUP2 00000b6b: PUSH1 0x20 00000b6d: ADD 00000b6e: JUMPDEST 00000b6f: PUSH2 0x0b76 00000b72: PUSH2 0x27e4 00000b75: JUMP 00000b76: JUMPDEST 00000b77: DUP2 00000b78: MSTORE 00000b79: PUSH1 0x20 00000b7b: ADD 00000b7c: SWAP1 00000b7d: PUSH1 0x01 00000b7f: SWAP1 00000b80: SUB 00000b81: SWAP1 00000b82: DUP2 00000b83: PUSH2 0x0b6e 00000b86: JUMPI 00000b87: SWAP1 00000b88: POP 00000b89: JUMPDEST 00000b8a: POP 00000b8b: SWAP7 00000b8c: POP 00000b8d: PUSH1 0x00 00000b8f: JUMPDEST 00000b90: DUP5 00000b91: MLOAD 00000b92: DUP2 00000b93: LT 00000b94: ISZERO 00000b95: PUSH2 0x0c2c 00000b98: JUMPI 00000b99: PUSH1 0x40 00000b9b: MLOAD 00000b9c: DUP1 00000b9d: PUSH1 0xc0 00000b9f: ADD 00000ba0: PUSH1 0x40 00000ba2: MSTORE 00000ba3: DUP1 00000ba4: DUP7 00000ba5: DUP4 00000ba6: DUP2 00000ba7: MLOAD 00000ba8: DUP2 00000ba9: LT 00000baa: PUSH2 0x0baf 00000bad: JUMPI 00000bae: INVALID 00000baf: JUMPDEST 00000bb0: PUSH1 0x20 00000bb2: MUL 00000bb3: PUSH1 0x20 00000bb5: ADD 00000bb6: ADD 00000bb7: MLOAD 00000bb8: PUSH1 0x00 00000bba: ADD 00000bbb: MLOAD 00000bbc: PUSH1 0x01 00000bbe: PUSH1 0x01 00000bc0: PUSH1 0xa0 00000bc2: SHL 00000bc3: SUB 00000bc4: AND 00000bc5: DUP2 00000bc6: MSTORE 00000bc7: PUSH1 0x20 00000bc9: ADD 00000bca: DUP14 00000bcb: PUSH1 0x01 00000bcd: PUSH1 0x01 00000bcf: PUSH1 0xa0 00000bd1: SHL 00000bd2: SUB 00000bd3: AND 00000bd4: DUP2 00000bd5: MSTORE 00000bd6: PUSH1 0x20 00000bd8: ADD 00000bd9: DUP13 00000bda: PUSH1 0x01 00000bdc: PUSH1 0x01 00000bde: PUSH1 0xa0 00000be0: SHL 00000be1: SUB 00000be2: AND 00000be3: DUP2 00000be4: MSTORE 00000be5: PUSH1 0x20 00000be7: ADD 00000be8: DUP5 00000be9: DUP4 00000bea: DUP2 00000beb: MLOAD 00000bec: DUP2 00000bed: LT 00000bee: PUSH2 0x0bf3 00000bf1: JUMPI 00000bf2: INVALID 00000bf3: JUMPDEST 00000bf4: PUSH1 0x20 00000bf6: MUL 00000bf7: PUSH1 0x20 00000bf9: ADD 00000bfa: ADD 00000bfb: MLOAD 00000bfc: DUP2 00000bfd: MSTORE 00000bfe: PUSH1 0x20 00000c00: ADD 00000c01: PUSH1 0x00 00000c03: DUP2 00000c04: MSTORE 00000c05: PUSH1 0x20 00000c07: ADD 00000c08: PUSH1 0x00 00000c0a: NOT 00000c0b: DUP2 00000c0c: MSTORE 00000c0d: POP 00000c0e: DUP9 00000c0f: DUP3 00000c10: DUP2 00000c11: MLOAD 00000c12: DUP2 00000c13: LT 00000c14: PUSH2 0x0c19 00000c17: JUMPI 00000c18: INVALID 00000c19: JUMPDEST 00000c1a: PUSH1 0x20 00000c1c: SWAP1 00000c1d: DUP2 00000c1e: MUL 00000c1f: SWAP2 00000c20: SWAP1 00000c21: SWAP2 00000c22: ADD 00000c23: ADD 00000c24: MSTORE 00000c25: PUSH1 0x01 00000c27: ADD 00000c28: PUSH2 0x0b8f 00000c2b: JUMP 00000c2c: JUMPDEST 00000c2d: POP 00000c2e: PUSH2 0x0937 00000c31: DUP3 00000c32: DUP6 00000c33: PUSH2 0x255c 00000c36: JUMP 00000c37: JUMPDEST 00000c38: PUSH2 0x0c3f 00000c3b: PUSH2 0x1917 00000c3e: JUMP 00000c3f: JUMPDEST 00000c40: PUSH2 0x0c5b 00000c43: JUMPI 00000c44: PUSH1 0x40 00000c46: MLOAD 00000c47: PUSH3 0x461bcd 00000c4b: PUSH1 0xe5 00000c4d: SHL 00000c4e: DUP2 00000c4f: MSTORE 00000c50: PUSH1 0x04 00000c52: ADD 00000c53: PUSH2 0x0568 00000c56: SWAP1 00000c57: PUSH2 0x3285 00000c5a: JUMP 00000c5b: JUMPDEST 00000c5c: PUSH1 0x00 00000c5e: DUP1 00000c5f: SLOAD 00000c60: PUSH1 0x40 00000c62: MLOAD 00000c63: PUSH1 0x01 00000c65: PUSH1 0x01 00000c67: PUSH1 0xa0 00000c69: SHL 00000c6a: SUB 00000c6b: SWAP1 00000c6c: SWAP2 00000c6d: AND 00000c6e: SWAP1 00000c6f: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00000c90: SWAP1 00000c91: DUP4 00000c92: SWAP1 00000c93: LOG3 00000c94: PUSH1 0x00 00000c96: DUP1 00000c97: SLOAD 00000c98: PUSH1 0x01 00000c9a: PUSH1 0x01 00000c9c: PUSH1 0xa0 00000c9e: SHL 00000c9f: SUB 00000ca0: NOT 00000ca1: AND 00000ca2: SWAP1 00000ca3: SSTORE 00000ca4: JUMP 00000ca5: JUMPDEST 00000ca6: PUSH1 0x00 00000ca8: PUSH2 0x0cb1 00000cab: DUP5 00000cac: DUP4 00000cad: PUSH2 0x1d28 00000cb0: JUMP 00000cb1: JUMPDEST 00000cb2: POP 00000cb3: PUSH1 0x00 00000cb5: JUMPDEST 00000cb6: DUP6 00000cb7: MLOAD 00000cb8: DUP2 00000cb9: LT 00000cba: ISZERO 00000cbb: PUSH2 0x0547 00000cbe: JUMPI 00000cbf: PUSH1 0x00 00000cc1: DUP7 00000cc2: DUP3 00000cc3: DUP2 00000cc4: MLOAD 00000cc5: DUP2 00000cc6: LT 00000cc7: PUSH2 0x0ccc 00000cca: JUMPI 00000ccb: INVALID 00000ccc: JUMPDEST 00000ccd: PUSH1 0x20 00000ccf: MUL 00000cd0: PUSH1 0x20 00000cd2: ADD 00000cd3: ADD 00000cd4: MLOAD 00000cd5: MLOAD 00000cd6: PUSH1 0x01 00000cd8: EQ 00000cd9: ISZERO 00000cda: PUSH2 0x0f50 00000cdd: JUMPI 00000cde: PUSH2 0x0ce5 00000ce1: PUSH2 0x27e4 00000ce4: JUMP 00000ce5: JUMPDEST 00000ce6: DUP8 00000ce7: DUP4 00000ce8: DUP2 00000ce9: MLOAD 00000cea: DUP2 00000ceb: LT 00000cec: PUSH2 0x0cf1 00000cef: JUMPI 00000cf0: INVALID 00000cf1: JUMPDEST 00000cf2: PUSH1 0x20 00000cf4: MUL 00000cf5: PUSH1 0x20 00000cf7: ADD 00000cf8: ADD 00000cf9: MLOAD 00000cfa: PUSH1 0x00 00000cfc: DUP2 00000cfd: MLOAD 00000cfe: DUP2 00000cff: LT 00000d00: PUSH2 0x0d05 00000d03: JUMPI 00000d04: INVALID 00000d05: JUMPDEST 00000d06: PUSH1 0x20 00000d08: SWAP1 00000d09: DUP2 00000d0a: MUL 00000d0b: SWAP2 00000d0c: SWAP1 00000d0d: SWAP2 00000d0e: ADD 00000d0f: DUP2 00000d10: ADD 00000d11: MLOAD 00000d12: SWAP1 00000d13: DUP2 00000d14: ADD 00000d15: MLOAD 00000d16: DUP2 00000d17: MLOAD 00000d18: PUSH1 0x40 00000d1a: MLOAD 00000d1b: PUSH4 0x6eb1769f 00000d20: PUSH1 0xe1 00000d22: SHL 00000d23: DUP2 00000d24: MSTORE 00000d25: SWAP3 00000d26: SWAP4 00000d27: POP 00000d28: SWAP1 00000d29: SWAP2 00000d2a: PUSH1 0x00 00000d2c: SWAP1 00000d2d: PUSH1 0x01 00000d2f: PUSH1 0x01 00000d31: PUSH1 0xa0 00000d33: SHL 00000d34: SUB 00000d35: DUP5 00000d36: AND 00000d37: SWAP1 00000d38: PUSH4 0xdd62ed3e 00000d3d: SWAP1 00000d3e: PUSH2 0x0d4d 00000d41: SWAP1 00000d42: ADDRESS 00000d43: SWAP1 00000d44: DUP7 00000d45: SWAP1 00000d46: PUSH1 0x04 00000d48: ADD 00000d49: PUSH2 0x3108 00000d4c: JUMP 00000d4d: JUMPDEST 00000d4e: PUSH1 0x20 00000d50: PUSH1 0x40 00000d52: MLOAD 00000d53: DUP1 00000d54: DUP4 00000d55: SUB 00000d56: DUP2 00000d57: DUP7 00000d58: DUP1 00000d59: EXTCODESIZE 00000d5a: ISZERO 00000d5b: DUP1 00000d5c: ISZERO 00000d5d: PUSH2 0x0d65 00000d60: JUMPI 00000d61: PUSH1 0x00 00000d63: DUP1 00000d64: REVERT 00000d65: JUMPDEST 00000d66: POP 00000d67: GAS 00000d68: STATICCALL 00000d69: ISZERO 00000d6a: DUP1 00000d6b: ISZERO 00000d6c: PUSH2 0x0d79 00000d6f: JUMPI 00000d70: RETURNDATASIZE 00000d71: PUSH1 0x00 00000d73: DUP1 00000d74: RETURNDATACOPY 00000d75: RETURNDATASIZE 00000d76: PUSH1 0x00 00000d78: REVERT 00000d79: JUMPDEST 00000d7a: POP 00000d7b: POP 00000d7c: POP 00000d7d: POP 00000d7e: PUSH1 0x40 00000d80: MLOAD 00000d81: RETURNDATASIZE 00000d82: PUSH1 0x1f 00000d84: NOT 00000d85: PUSH1 0x1f 00000d87: DUP3 00000d88: ADD 00000d89: AND 00000d8a: DUP3 00000d8b: ADD 00000d8c: DUP1 00000d8d: PUSH1 0x40 00000d8f: MSTORE 00000d90: POP 00000d91: PUSH2 0x0d9d 00000d94: SWAP2 00000d95: SWAP1 00000d96: DUP2 00000d97: ADD 00000d98: SWAP1 00000d99: PUSH2 0x2d87 00000d9c: JUMP 00000d9d: JUMPDEST 00000d9e: GT 00000d9f: ISZERO 00000da0: PUSH2 0x0e27 00000da3: JUMPI 00000da4: DUP3 00000da5: MLOAD 00000da6: PUSH1 0x40 00000da8: MLOAD 00000da9: PUSH4 0x095ea7b3 00000dae: PUSH1 0xe0 00000db0: SHL 00000db1: DUP2 00000db2: MSTORE 00000db3: PUSH1 0x01 00000db5: PUSH1 0x01 00000db7: PUSH1 0xa0 00000db9: SHL 00000dba: SUB 00000dbb: DUP5 00000dbc: AND 00000dbd: SWAP2 00000dbe: PUSH4 0x095ea7b3 00000dc3: SWAP2 00000dc4: PUSH2 0x0dd3 00000dc7: SWAP2 00000dc8: SWAP1 00000dc9: PUSH1 0x00 00000dcb: SWAP1 00000dcc: PUSH1 0x04 00000dce: ADD 00000dcf: PUSH2 0x3181 00000dd2: JUMP 00000dd3: JUMPDEST 00000dd4: PUSH1 0x20 00000dd6: PUSH1 0x40 00000dd8: MLOAD 00000dd9: DUP1 00000dda: DUP4 00000ddb: SUB 00000ddc: DUP2 00000ddd: PUSH1 0x00 00000ddf: DUP8 00000de0: DUP1 00000de1: EXTCODESIZE 00000de2: ISZERO 00000de3: DUP1 00000de4: ISZERO 00000de5: PUSH2 0x0ded 00000de8: JUMPI 00000de9: PUSH1 0x00 00000deb: DUP1 00000dec: REVERT 00000ded: JUMPDEST 00000dee: POP 00000def: GAS 00000df0: CALL 00000df1: ISZERO 00000df2: DUP1 00000df3: ISZERO 00000df4: PUSH2 0x0e01 00000df7: JUMPI 00000df8: RETURNDATASIZE 00000df9: PUSH1 0x00 00000dfb: DUP1 00000dfc: RETURNDATACOPY 00000dfd: RETURNDATASIZE 00000dfe: PUSH1 0x00 00000e00: REVERT 00000e01: JUMPDEST 00000e02: POP 00000e03: POP 00000e04: POP 00000e05: POP 00000e06: PUSH1 0x40 00000e08: MLOAD 00000e09: RETURNDATASIZE 00000e0a: PUSH1 0x1f 00000e0c: NOT 00000e0d: PUSH1 0x1f 00000e0f: DUP3 00000e10: ADD 00000e11: AND 00000e12: DUP3 00000e13: ADD 00000e14: DUP1 00000e15: PUSH1 0x40 00000e17: MSTORE 00000e18: POP 00000e19: PUSH2 0x0e25 00000e1c: SWAP2 00000e1d: SWAP1 00000e1e: DUP2 00000e1f: ADD 00000e20: SWAP1 00000e21: PUSH2 0x2d23 00000e24: JUMP 00000e25: JUMPDEST 00000e26: POP 00000e27: JUMPDEST 00000e28: DUP3 00000e29: MLOAD 00000e2a: PUSH1 0x80 00000e2c: DUP5 00000e2d: ADD 00000e2e: MLOAD 00000e2f: PUSH1 0x40 00000e31: MLOAD 00000e32: PUSH4 0x095ea7b3 00000e37: PUSH1 0xe0 00000e39: SHL 00000e3a: DUP2 00000e3b: MSTORE 00000e3c: PUSH1 0x01 00000e3e: PUSH1 0x01 00000e40: PUSH1 0xa0 00000e42: SHL 00000e43: SUB 00000e44: DUP6 00000e45: AND 00000e46: SWAP3 00000e47: PUSH4 0x095ea7b3 00000e4c: SWAP3 00000e4d: PUSH2 0x0e58 00000e50: SWAP3 00000e51: PUSH1 0x04 00000e53: ADD 00000e54: PUSH2 0x319c 00000e57: JUMP 00000e58: JUMPDEST 00000e59: PUSH1 0x20 00000e5b: PUSH1 0x40 00000e5d: MLOAD 00000e5e: DUP1 00000e5f: DUP4 00000e60: SUB 00000e61: DUP2 00000e62: PUSH1 0x00 00000e64: DUP8 00000e65: DUP1 00000e66: EXTCODESIZE 00000e67: ISZERO 00000e68: DUP1 00000e69: ISZERO 00000e6a: PUSH2 0x0e72 00000e6d: JUMPI 00000e6e: PUSH1 0x00 00000e70: DUP1 00000e71: REVERT 00000e72: JUMPDEST 00000e73: POP 00000e74: GAS 00000e75: CALL 00000e76: ISZERO 00000e77: DUP1 00000e78: ISZERO 00000e79: PUSH2 0x0e86 00000e7c: JUMPI 00000e7d: RETURNDATASIZE 00000e7e: PUSH1 0x00 00000e80: DUP1 00000e81: RETURNDATACOPY 00000e82: RETURNDATASIZE 00000e83: PUSH1 0x00 00000e85: REVERT 00000e86: JUMPDEST 00000e87: POP 00000e88: POP 00000e89: POP 00000e8a: POP 00000e8b: PUSH1 0x40 00000e8d: MLOAD 00000e8e: RETURNDATASIZE 00000e8f: PUSH1 0x1f 00000e91: NOT 00000e92: PUSH1 0x1f 00000e94: DUP3 00000e95: ADD 00000e96: AND 00000e97: DUP3 00000e98: ADD 00000e99: DUP1 00000e9a: PUSH1 0x40 00000e9c: MSTORE 00000e9d: POP 00000e9e: PUSH2 0x0eaa 00000ea1: SWAP2 00000ea2: SWAP1 00000ea3: DUP2 00000ea4: ADD 00000ea5: SWAP1 00000ea6: PUSH2 0x2d23 00000ea9: JUMP 00000eaa: JUMPDEST 00000eab: POP 00000eac: DUP1 00000ead: PUSH1 0x01 00000eaf: PUSH1 0x01 00000eb1: PUSH1 0xa0 00000eb3: SHL 00000eb4: SUB 00000eb5: AND 00000eb6: PUSH4 0x7c5e9ea4 00000ebb: DUP5 00000ebc: PUSH1 0x20 00000ebe: ADD 00000ebf: MLOAD 00000ec0: DUP6 00000ec1: PUSH1 0x80 00000ec3: ADD 00000ec4: MLOAD 00000ec5: DUP7 00000ec6: PUSH1 0x40 00000ec8: ADD 00000ec9: MLOAD 00000eca: DUP8 00000ecb: PUSH1 0x60 00000ecd: ADD 00000ece: MLOAD 00000ecf: DUP9 00000ed0: PUSH1 0xa0 00000ed2: ADD 00000ed3: MLOAD 00000ed4: PUSH1 0x40 00000ed6: MLOAD 00000ed7: DUP7 00000ed8: PUSH4 0xffffffff 00000edd: AND 00000ede: PUSH1 0xe0 00000ee0: SHL 00000ee1: DUP2 00000ee2: MSTORE 00000ee3: PUSH1 0x04 00000ee5: ADD 00000ee6: PUSH2 0x0ef3 00000ee9: SWAP6 00000eea: SWAP5 00000eeb: SWAP4 00000eec: SWAP3 00000eed: SWAP2 00000eee: SWAP1 00000eef: PUSH2 0x31aa 00000ef2: JUMP 00000ef3: JUMPDEST 00000ef4: PUSH1 0x40 00000ef6: DUP1 00000ef7: MLOAD 00000ef8: DUP1 00000ef9: DUP4 00000efa: SUB 00000efb: DUP2 00000efc: PUSH1 0x00 00000efe: DUP8 00000eff: DUP1 00000f00: EXTCODESIZE 00000f01: ISZERO 00000f02: DUP1 00000f03: ISZERO 00000f04: PUSH2 0x0f0c 00000f07: JUMPI 00000f08: PUSH1 0x00 00000f0a: DUP1 00000f0b: REVERT 00000f0c: JUMPDEST 00000f0d: POP 00000f0e: GAS 00000f0f: CALL 00000f10: ISZERO 00000f11: DUP1 00000f12: ISZERO 00000f13: PUSH2 0x0f20 00000f16: JUMPI 00000f17: RETURNDATASIZE 00000f18: PUSH1 0x00 00000f1a: DUP1 00000f1b: RETURNDATACOPY 00000f1c: RETURNDATASIZE 00000f1d: PUSH1 0x00 00000f1f: REVERT 00000f20: JUMPDEST 00000f21: POP 00000f22: POP 00000f23: POP 00000f24: POP 00000f25: PUSH1 0x40 00000f27: MLOAD 00000f28: RETURNDATASIZE 00000f29: PUSH1 0x1f 00000f2b: NOT 00000f2c: PUSH1 0x1f 00000f2e: DUP3 00000f2f: ADD 00000f30: AND 00000f31: DUP3 00000f32: ADD 00000f33: DUP1 00000f34: PUSH1 0x40 00000f36: MSTORE 00000f37: POP 00000f38: PUSH2 0x0f44 00000f3b: SWAP2 00000f3c: SWAP1 00000f3d: DUP2 00000f3e: ADD 00000f3f: SWAP1 00000f40: PUSH2 0x2da5 00000f43: JUMP 00000f44: JUMPDEST 00000f45: POP 00000f46: SWAP4 00000f47: POP 00000f48: PUSH2 0x1617 00000f4b: SWAP3 00000f4c: POP 00000f4d: POP 00000f4e: POP 00000f4f: JUMP 00000f50: JUMPDEST 00000f51: PUSH1 0x00 00000f53: PUSH2 0x0f5a 00000f56: PUSH2 0x27e4 00000f59: JUMP 00000f5a: JUMPDEST 00000f5b: DUP9 00000f5c: DUP5 00000f5d: DUP2 00000f5e: MLOAD 00000f5f: DUP2 00000f60: LT 00000f61: PUSH2 0x0f66 00000f64: JUMPI 00000f65: INVALID 00000f66: JUMPDEST 00000f67: PUSH1 0x20 00000f69: MUL 00000f6a: PUSH1 0x20 00000f6c: ADD 00000f6d: ADD 00000f6e: MLOAD 00000f6f: PUSH1 0x01 00000f71: DUP2 00000f72: MLOAD 00000f73: DUP2 00000f74: LT 00000f75: PUSH2 0x0f7a 00000f78: JUMPI 00000f79: INVALID 00000f7a: JUMPDEST 00000f7b: PUSH1 0x20 00000f7d: SWAP1 00000f7e: DUP2 00000f7f: MUL 00000f80: SWAP2 00000f81: SWAP1 00000f82: SWAP2 00000f83: ADD 00000f84: DUP2 00000f85: ADD 00000f86: MLOAD 00000f87: DUP1 00000f88: MLOAD 00000f89: SWAP2 00000f8a: DUP2 00000f8b: ADD 00000f8c: MLOAD 00000f8d: PUSH1 0x40 00000f8f: MLOAD 00000f90: PUSH4 0xf8b2cb4f 00000f95: PUSH1 0xe0 00000f97: SHL 00000f98: DUP2 00000f99: MSTORE 00000f9a: SWAP2 00000f9b: SWAP4 00000f9c: POP 00000f9d: PUSH1 0x01 00000f9f: PUSH1 0x01 00000fa1: PUSH1 0xa0 00000fa3: SHL 00000fa4: SUB 00000fa5: DUP4 00000fa6: AND 00000fa7: SWAP2 00000fa8: PUSH4 0xf8d6aed4 00000fad: SWAP2 00000fae: DUP4 00000faf: SWAP2 00000fb0: PUSH4 0xf8b2cb4f 00000fb5: SWAP2 00000fb6: PUSH2 0x0fc1 00000fb9: SWAP2 00000fba: PUSH1 0x04 00000fbc: ADD 00000fbd: PUSH2 0x30ec 00000fc0: JUMP 00000fc1: JUMPDEST 00000fc2: PUSH1 0x20 00000fc4: PUSH1 0x40 00000fc6: MLOAD 00000fc7: DUP1 00000fc8: DUP4 00000fc9: SUB 00000fca: DUP2 00000fcb: DUP7 00000fcc: DUP1 00000fcd: EXTCODESIZE 00000fce: ISZERO 00000fcf: DUP1 00000fd0: ISZERO 00000fd1: PUSH2 0x0fd9 00000fd4: JUMPI 00000fd5: PUSH1 0x00 00000fd7: DUP1 00000fd8: REVERT 00000fd9: JUMPDEST 00000fda: POP 00000fdb: GAS 00000fdc: STATICCALL 00000fdd: ISZERO 00000fde: DUP1 00000fdf: ISZERO 00000fe0: PUSH2 0x0fed 00000fe3: JUMPI 00000fe4: RETURNDATASIZE 00000fe5: PUSH1 0x00 00000fe7: DUP1 00000fe8: RETURNDATACOPY 00000fe9: RETURNDATASIZE 00000fea: PUSH1 0x00 00000fec: REVERT 00000fed: JUMPDEST 00000fee: POP 00000fef: POP 00000ff0: POP 00000ff1: POP 00000ff2: PUSH1 0x40 00000ff4: MLOAD 00000ff5: RETURNDATASIZE 00000ff6: PUSH1 0x1f 00000ff8: NOT 00000ff9: PUSH1 0x1f 00000ffb: DUP3 00000ffc: ADD 00000ffd: AND 00000ffe: DUP3 00000fff: ADD 00001000: DUP1 00001001: PUSH1 0x40 00001003: MSTORE 00001004: POP 00001005: PUSH2 0x1011 00001008: SWAP2 00001009: SWAP1 0000100a: DUP2 0000100b: ADD 0000100c: SWAP1 0000100d: PUSH2 0x2d87 00001010: JUMP 00001011: JUMPDEST 00001012: PUSH1 0x20 00001014: DUP6 00001015: ADD 00001016: MLOAD 00001017: PUSH1 0x40 00001019: MLOAD 0000101a: PUSH4 0x4a46c673 0000101f: PUSH1 0xe1 00001021: SHL 00001022: DUP2 00001023: MSTORE 00001024: PUSH1 0x01 00001026: PUSH1 0x01 00001028: PUSH1 0xa0 0000102a: SHL 0000102b: SUB 0000102c: DUP7 0000102d: AND 0000102e: SWAP2 0000102f: PUSH4 0x948d8ce6 00001034: SWAP2 00001035: PUSH2 0x1041 00001038: SWAP2 00001039: SWAP1 0000103a: PUSH1 0x04 0000103c: ADD 0000103d: PUSH2 0x30ec 00001040: JUMP 00001041: JUMPDEST 00001042: PUSH1 0x20 00001044: PUSH1 0x40 00001046: MLOAD 00001047: DUP1 00001048: DUP4 00001049: SUB 0000104a: DUP2 0000104b: DUP7 0000104c: DUP1 0000104d: EXTCODESIZE 0000104e: ISZERO 0000104f: DUP1 00001050: ISZERO 00001051: PUSH2 0x1059 00001054: JUMPI 00001055: PUSH1 0x00 00001057: DUP1 00001058: REVERT 00001059: JUMPDEST 0000105a: POP 0000105b: GAS 0000105c: STATICCALL 0000105d: ISZERO 0000105e: DUP1 0000105f: ISZERO 00001060: PUSH2 0x106d 00001063: JUMPI 00001064: RETURNDATASIZE 00001065: PUSH1 0x00 00001067: DUP1 00001068: RETURNDATACOPY 00001069: RETURNDATASIZE 0000106a: PUSH1 0x00 0000106c: REVERT 0000106d: JUMPDEST 0000106e: POP 0000106f: POP 00001070: POP 00001071: POP 00001072: PUSH1 0x40 00001074: MLOAD 00001075: RETURNDATASIZE 00001076: PUSH1 0x1f 00001078: NOT 00001079: PUSH1 0x1f 0000107b: DUP3 0000107c: ADD 0000107d: AND 0000107e: DUP3 0000107f: ADD 00001080: DUP1 00001081: PUSH1 0x40 00001083: MSTORE 00001084: POP 00001085: PUSH2 0x1091 00001088: SWAP2 00001089: SWAP1 0000108a: DUP2 0000108b: ADD 0000108c: SWAP1 0000108d: PUSH2 0x2d87 00001090: JUMP 00001091: JUMPDEST 00001092: PUSH1 0x40 00001094: DUP1 00001095: DUP8 00001096: ADD 00001097: MLOAD 00001098: SWAP1 00001099: MLOAD 0000109a: PUSH4 0xf8b2cb4f 0000109f: PUSH1 0xe0 000010a1: SHL 000010a2: DUP2 000010a3: MSTORE 000010a4: PUSH1 0x01 000010a6: PUSH1 0x01 000010a8: PUSH1 0xa0 000010aa: SHL 000010ab: SUB 000010ac: DUP8 000010ad: AND 000010ae: SWAP2 000010af: PUSH4 0xf8b2cb4f 000010b4: SWAP2 000010b5: PUSH2 0x10c1 000010b8: SWAP2 000010b9: SWAP1 000010ba: PUSH1 0x04 000010bc: ADD 000010bd: PUSH2 0x30ec 000010c0: JUMP 000010c1: JUMPDEST 000010c2: PUSH1 0x20 000010c4: PUSH1 0x40 000010c6: MLOAD 000010c7: DUP1 000010c8: DUP4 000010c9: SUB 000010ca: DUP2 000010cb: DUP7 000010cc: DUP1 000010cd: EXTCODESIZE 000010ce: ISZERO 000010cf: DUP1 000010d0: ISZERO 000010d1: PUSH2 0x10d9 000010d4: JUMPI 000010d5: PUSH1 0x00 000010d7: DUP1 000010d8: REVERT 000010d9: JUMPDEST 000010da: POP 000010db: GAS 000010dc: STATICCALL 000010dd: ISZERO 000010de: DUP1 000010df: ISZERO 000010e0: PUSH2 0x10ed 000010e3: JUMPI 000010e4: RETURNDATASIZE 000010e5: PUSH1 0x00 000010e7: DUP1 000010e8: RETURNDATACOPY 000010e9: RETURNDATASIZE 000010ea: PUSH1 0x00 000010ec: REVERT 000010ed: JUMPDEST 000010ee: POP 000010ef: POP 000010f0: POP 000010f1: POP 000010f2: PUSH1 0x40 000010f4: MLOAD 000010f5: RETURNDATASIZE 000010f6: PUSH1 0x1f 000010f8: NOT 000010f9: PUSH1 0x1f 000010fb: DUP3 000010fc: ADD 000010fd: AND 000010fe: DUP3 000010ff: ADD 00001100: DUP1 00001101: PUSH1 0x40 00001103: MSTORE 00001104: POP 00001105: PUSH2 0x1111 00001108: SWAP2 00001109: SWAP1 0000110a: DUP2 0000110b: ADD 0000110c: SWAP1 0000110d: PUSH2 0x2d87 00001110: JUMP 00001111: JUMPDEST 00001112: PUSH1 0x40 00001114: DUP1 00001115: DUP9 00001116: ADD 00001117: MLOAD 00001118: SWAP1 00001119: MLOAD 0000111a: PUSH4 0x4a46c673 0000111f: PUSH1 0xe1 00001121: SHL 00001122: DUP2 00001123: MSTORE 00001124: PUSH1 0x01 00001126: PUSH1 0x01 00001128: PUSH1 0xa0 0000112a: SHL 0000112b: SUB 0000112c: DUP9 0000112d: AND 0000112e: SWAP2 0000112f: PUSH4 0x948d8ce6 00001134: SWAP2 00001135: PUSH2 0x1141 00001138: SWAP2 00001139: SWAP1 0000113a: PUSH1 0x04 0000113c: ADD 0000113d: PUSH2 0x30ec 00001140: JUMP 00001141: JUMPDEST 00001142: PUSH1 0x20 00001144: PUSH1 0x40 00001146: MLOAD 00001147: DUP1 00001148: DUP4 00001149: SUB 0000114a: DUP2 0000114b: DUP7 0000114c: DUP1 0000114d: EXTCODESIZE 0000114e: ISZERO 0000114f: DUP1 00001150: ISZERO 00001151: PUSH2 0x1159 00001154: JUMPI 00001155: PUSH1 0x00 00001157: DUP1 00001158: REVERT 00001159: JUMPDEST 0000115a: POP 0000115b: GAS 0000115c: STATICCALL 0000115d: ISZERO 0000115e: DUP1 0000115f: ISZERO 00001160: PUSH2 0x116d 00001163: JUMPI 00001164: RETURNDATASIZE 00001165: PUSH1 0x00 00001167: DUP1 00001168: RETURNDATACOPY 00001169: RETURNDATASIZE 0000116a: PUSH1 0x00 0000116c: REVERT 0000116d: JUMPDEST 0000116e: POP 0000116f: POP 00001170: POP 00001171: POP 00001172: PUSH1 0x40 00001174: MLOAD 00001175: RETURNDATASIZE 00001176: PUSH1 0x1f 00001178: NOT 00001179: PUSH1 0x1f 0000117b: DUP3 0000117c: ADD 0000117d: AND 0000117e: DUP3 0000117f: ADD 00001180: DUP1 00001181: PUSH1 0x40 00001183: MSTORE 00001184: POP 00001185: PUSH2 0x1191 00001188: SWAP2 00001189: SWAP1 0000118a: DUP2 0000118b: ADD 0000118c: SWAP1 0000118d: PUSH2 0x2d87 00001190: JUMP 00001191: JUMPDEST 00001192: DUP8 00001193: PUSH1 0x60 00001195: ADD 00001196: MLOAD 00001197: DUP8 00001198: PUSH1 0x01 0000119a: PUSH1 0x01 0000119c: PUSH1 0xa0 0000119e: SHL 0000119f: SUB 000011a0: AND 000011a1: PUSH4 0xd4cadf68 000011a6: PUSH1 0x40 000011a8: MLOAD 000011a9: DUP2 000011aa: PUSH4 0xffffffff 000011af: AND 000011b0: PUSH1 0xe0 000011b2: SHL 000011b3: DUP2 000011b4: MSTORE 000011b5: PUSH1 0x04 000011b7: ADD 000011b8: PUSH1 0x20 000011ba: PUSH1 0x40 000011bc: MLOAD 000011bd: DUP1 000011be: DUP4 000011bf: SUB 000011c0: DUP2 000011c1: DUP7 000011c2: DUP1 000011c3: EXTCODESIZE 000011c4: ISZERO 000011c5: DUP1 000011c6: ISZERO 000011c7: PUSH2 0x11cf 000011ca: JUMPI 000011cb: PUSH1 0x00 000011cd: DUP1 000011ce: REVERT 000011cf: JUMPDEST 000011d0: POP 000011d1: GAS 000011d2: STATICCALL 000011d3: ISZERO 000011d4: DUP1 000011d5: ISZERO 000011d6: PUSH2 0x11e3 000011d9: JUMPI 000011da: RETURNDATASIZE 000011db: PUSH1 0x00 000011dd: DUP1 000011de: RETURNDATACOPY 000011df: RETURNDATASIZE 000011e0: PUSH1 0x00 000011e2: REVERT 000011e3: JUMPDEST 000011e4: POP 000011e5: POP 000011e6: POP 000011e7: POP 000011e8: PUSH1 0x40 000011ea: MLOAD 000011eb: RETURNDATASIZE 000011ec: PUSH1 0x1f 000011ee: NOT 000011ef: PUSH1 0x1f 000011f1: DUP3 000011f2: ADD 000011f3: AND 000011f4: DUP3 000011f5: ADD 000011f6: DUP1 000011f7: PUSH1 0x40 000011f9: MSTORE 000011fa: POP 000011fb: PUSH2 0x1207 000011fe: SWAP2 000011ff: SWAP1 00001200: DUP2 00001201: ADD 00001202: SWAP1 00001203: PUSH2 0x2d87 00001206: JUMP 00001207: JUMPDEST 00001208: PUSH1 0x40 0000120a: MLOAD 0000120b: DUP8 0000120c: PUSH4 0xffffffff 00001211: AND 00001212: PUSH1 0xe0 00001214: SHL 00001215: DUP2 00001216: MSTORE 00001217: PUSH1 0x04 00001219: ADD 0000121a: PUSH2 0x1228 0000121d: SWAP7 0000121e: SWAP6 0000121f: SWAP5 00001220: SWAP4 00001221: SWAP3 00001222: SWAP2 00001223: SWAP1 00001224: PUSH2 0x32c3 00001227: JUMP 00001228: JUMPDEST 00001229: PUSH1 0x20 0000122b: PUSH1 0x40 0000122d: MLOAD 0000122e: DUP1 0000122f: DUP4 00001230: SUB 00001231: DUP2 00001232: DUP7 00001233: DUP1 00001234: EXTCODESIZE 00001235: ISZERO 00001236: DUP1 00001237: ISZERO 00001238: PUSH2 0x1240 0000123b: JUMPI 0000123c: PUSH1 0x00 0000123e: DUP1 0000123f: REVERT 00001240: JUMPDEST 00001241: POP 00001242: GAS 00001243: STATICCALL 00001244: ISZERO 00001245: DUP1 00001246: ISZERO 00001247: PUSH2 0x1254 0000124a: JUMPI 0000124b: RETURNDATASIZE 0000124c: PUSH1 0x00 0000124e: DUP1 0000124f: RETURNDATACOPY 00001250: RETURNDATASIZE 00001251: PUSH1 0x00 00001253: REVERT 00001254: JUMPDEST 00001255: POP 00001256: POP 00001257: POP 00001258: POP 00001259: PUSH1 0x40 0000125b: MLOAD 0000125c: RETURNDATASIZE 0000125d: PUSH1 0x1f 0000125f: NOT 00001260: PUSH1 0x1f 00001262: DUP3 00001263: ADD 00001264: AND 00001265: DUP3 00001266: ADD 00001267: DUP1 00001268: PUSH1 0x40 0000126a: MSTORE 0000126b: POP 0000126c: PUSH2 0x1278 0000126f: SWAP2 00001270: SWAP1 00001271: DUP2 00001272: ADD 00001273: SWAP1 00001274: PUSH2 0x2d87 00001277: JUMP 00001278: JUMPDEST 00001279: SWAP3 0000127a: POP 0000127b: PUSH2 0x1282 0000127e: PUSH2 0x27e4 00001281: JUMP 00001282: JUMPDEST 00001283: DUP11 00001284: DUP7 00001285: DUP2 00001286: MLOAD 00001287: DUP2 00001288: LT 00001289: PUSH2 0x128e 0000128c: JUMPI 0000128d: INVALID 0000128e: JUMPDEST 0000128f: PUSH1 0x20 00001291: MUL 00001292: PUSH1 0x20 00001294: ADD 00001295: ADD 00001296: MLOAD 00001297: PUSH1 0x00 00001299: DUP2 0000129a: MLOAD 0000129b: DUP2 0000129c: LT 0000129d: PUSH2 0x12a2 000012a0: JUMPI 000012a1: INVALID 000012a2: JUMPDEST 000012a3: PUSH1 0x20 000012a5: SWAP1 000012a6: DUP2 000012a7: MUL 000012a8: SWAP2 000012a9: SWAP1 000012aa: SWAP2 000012ab: ADD 000012ac: DUP2 000012ad: ADD 000012ae: MLOAD 000012af: SWAP1 000012b0: DUP2 000012b1: ADD 000012b2: MLOAD 000012b3: DUP2 000012b4: MLOAD 000012b5: PUSH1 0x40 000012b7: MLOAD 000012b8: PUSH4 0x6eb1769f 000012bd: PUSH1 0xe1 000012bf: SHL 000012c0: DUP2 000012c1: MSTORE 000012c2: SWAP3 000012c3: SWAP4 000012c4: POP 000012c5: SWAP1 000012c6: SWAP2 000012c7: PUSH1 0x00 000012c9: NOT 000012ca: SWAP1 000012cb: PUSH1 0x01 000012cd: PUSH1 0x01 000012cf: PUSH1 0xa0 000012d1: SHL 000012d2: SUB 000012d3: DUP5 000012d4: AND 000012d5: SWAP1 000012d6: PUSH4 0xdd62ed3e 000012db: SWAP1 000012dc: PUSH2 0x12eb 000012df: SWAP1 000012e0: ADDRESS 000012e1: SWAP1 000012e2: DUP7 000012e3: SWAP1 000012e4: PUSH1 0x04 000012e6: ADD 000012e7: PUSH2 0x3108 000012ea: JUMP 000012eb: JUMPDEST 000012ec: PUSH1 0x20 000012ee: PUSH1 0x40 000012f0: MLOAD 000012f1: DUP1 000012f2: DUP4 000012f3: SUB 000012f4: DUP2 000012f5: DUP7 000012f6: DUP1 000012f7: EXTCODESIZE 000012f8: ISZERO 000012f9: DUP1 000012fa: ISZERO 000012fb: PUSH2 0x1303 000012fe: JUMPI 000012ff: PUSH1 0x00 00001301: DUP1 00001302: REVERT 00001303: JUMPDEST 00001304: POP 00001305: GAS 00001306: STATICCALL 00001307: ISZERO 00001308: DUP1 00001309: ISZERO 0000130a: PUSH2 0x1317 0000130d: JUMPI 0000130e: RETURNDATASIZE 0000130f: PUSH1 0x00 00001311: DUP1 00001312: RETURNDATACOPY 00001313: RETURNDATASIZE 00001314: PUSH1 0x00 00001316: REVERT 00001317: JUMPDEST 00001318: POP 00001319: POP 0000131a: POP 0000131b: POP 0000131c: PUSH1 0x40 0000131e: MLOAD 0000131f: RETURNDATASIZE 00001320: PUSH1 0x1f 00001322: NOT 00001323: PUSH1 0x1f 00001325: DUP3 00001326: ADD 00001327: AND 00001328: DUP3 00001329: ADD 0000132a: DUP1 0000132b: PUSH1 0x40 0000132d: MSTORE 0000132e: POP 0000132f: PUSH2 0x133b 00001332: SWAP2 00001333: SWAP1 00001334: DUP2 00001335: ADD 00001336: SWAP1 00001337: PUSH2 0x2d87 0000133a: JUMP 0000133b: JUMPDEST 0000133c: LT 0000133d: ISZERO 0000133e: PUSH2 0x13c6 00001341: JUMPI 00001342: DUP3 00001343: MLOAD 00001344: PUSH1 0x40 00001346: MLOAD 00001347: PUSH4 0x095ea7b3 0000134c: PUSH1 0xe0 0000134e: SHL 0000134f: DUP2 00001350: MSTORE 00001351: PUSH1 0x01 00001353: PUSH1 0x01 00001355: PUSH1 0xa0 00001357: SHL 00001358: SUB 00001359: DUP5 0000135a: AND 0000135b: SWAP2 0000135c: PUSH4 0x095ea7b3 00001361: SWAP2 00001362: PUSH2 0x1372 00001365: SWAP2 00001366: SWAP1 00001367: PUSH1 0x00 00001369: NOT 0000136a: SWAP1 0000136b: PUSH1 0x04 0000136d: ADD 0000136e: PUSH2 0x319c 00001371: JUMP 00001372: JUMPDEST 00001373: PUSH1 0x20 00001375: PUSH1 0x40 00001377: MLOAD 00001378: DUP1 00001379: DUP4 0000137a: SUB 0000137b: DUP2 0000137c: PUSH1 0x00 0000137e: DUP8 0000137f: DUP1 00001380: EXTCODESIZE 00001381: ISZERO 00001382: DUP1 00001383: ISZERO 00001384: PUSH2 0x138c 00001387: JUMPI 00001388: PUSH1 0x00 0000138a: DUP1 0000138b: REVERT 0000138c: JUMPDEST 0000138d: POP 0000138e: GAS 0000138f: CALL 00001390: ISZERO 00001391: DUP1 00001392: ISZERO 00001393: PUSH2 0x13a0 00001396: JUMPI 00001397: RETURNDATASIZE 00001398: PUSH1 0x00 0000139a: DUP1 0000139b: RETURNDATACOPY 0000139c: RETURNDATASIZE 0000139d: PUSH1 0x00 0000139f: REVERT 000013a0: JUMPDEST 000013a1: POP 000013a2: POP 000013a3: POP 000013a4: POP 000013a5: PUSH1 0x40 000013a7: MLOAD 000013a8: RETURNDATASIZE 000013a9: PUSH1 0x1f 000013ab: NOT 000013ac: PUSH1 0x1f 000013ae: DUP3 000013af: ADD 000013b0: AND 000013b1: DUP3 000013b2: ADD 000013b3: DUP1 000013b4: PUSH1 0x40 000013b6: MSTORE 000013b7: POP 000013b8: PUSH2 0x13c4 000013bb: SWAP2 000013bc: SWAP1 000013bd: DUP2 000013be: ADD 000013bf: SWAP1 000013c0: PUSH2 0x2d23 000013c3: JUMP 000013c4: JUMPDEST 000013c5: POP 000013c6: JUMPDEST 000013c7: DUP1 000013c8: PUSH1 0x01 000013ca: PUSH1 0x01 000013cc: PUSH1 0xa0 000013ce: SHL 000013cf: SUB 000013d0: AND 000013d1: PUSH4 0x7c5e9ea4 000013d6: DUP5 000013d7: PUSH1 0x20 000013d9: ADD 000013da: MLOAD 000013db: DUP6 000013dc: PUSH1 0x80 000013de: ADD 000013df: MLOAD 000013e0: DUP7 000013e1: PUSH1 0x40 000013e3: ADD 000013e4: MLOAD 000013e5: DUP11 000013e6: DUP9 000013e7: PUSH1 0xa0 000013e9: ADD 000013ea: MLOAD 000013eb: PUSH1 0x40 000013ed: MLOAD 000013ee: DUP7 000013ef: PUSH4 0xffffffff 000013f4: AND 000013f5: PUSH1 0xe0 000013f7: SHL 000013f8: DUP2 000013f9: MSTORE 000013fa: PUSH1 0x04 000013fc: ADD 000013fd: PUSH2 0x140a 00001400: SWAP6 00001401: SWAP5 00001402: SWAP4 00001403: SWAP3 00001404: SWAP2 00001405: SWAP1 00001406: PUSH2 0x31aa 00001409: JUMP 0000140a: JUMPDEST 0000140b: PUSH1 0x40 0000140d: DUP1 0000140e: MLOAD 0000140f: DUP1 00001410: DUP4 00001411: SUB 00001412: DUP2 00001413: PUSH1 0x00 00001415: DUP8 00001416: DUP1 00001417: EXTCODESIZE 00001418: ISZERO 00001419: DUP1 0000141a: ISZERO 0000141b: PUSH2 0x1423 0000141e: JUMPI 0000141f: PUSH1 0x00 00001421: DUP1 00001422: REVERT 00001423: JUMPDEST 00001424: POP 00001425: GAS 00001426: CALL 00001427: ISZERO 00001428: DUP1 00001429: ISZERO 0000142a: PUSH2 0x1437 0000142d: JUMPI 0000142e: RETURNDATASIZE 0000142f: PUSH1 0x00 00001431: DUP1 00001432: RETURNDATACOPY 00001433: RETURNDATASIZE 00001434: PUSH1 0x00 00001436: REVERT 00001437: JUMPDEST 00001438: POP 00001439: POP 0000143a: POP 0000143b: POP 0000143c: PUSH1 0x40 0000143e: MLOAD 0000143f: RETURNDATASIZE 00001440: PUSH1 0x1f 00001442: NOT 00001443: PUSH1 0x1f 00001445: DUP3 00001446: ADD 00001447: AND 00001448: DUP3 00001449: ADD 0000144a: DUP1 0000144b: PUSH1 0x40 0000144d: MSTORE 0000144e: POP 0000144f: PUSH2 0x145b 00001452: SWAP2 00001453: SWAP1 00001454: DUP2 00001455: ADD 00001456: SWAP1 00001457: PUSH2 0x2da5 0000145a: JUMP 0000145b: JUMPDEST 0000145c: POP 0000145d: PUSH1 0x20 0000145f: DUP7 00001460: ADD 00001461: MLOAD 00001462: DUP7 00001463: MLOAD 00001464: PUSH1 0x40 00001466: MLOAD 00001467: PUSH4 0x6eb1769f 0000146c: PUSH1 0xe1 0000146e: SHL 0000146f: DUP2 00001470: MSTORE 00001471: SWAP3 00001472: SWAP10 00001473: POP 00001474: SWAP1 00001475: SWAP2 00001476: PUSH1 0x00 00001478: NOT 00001479: SWAP2 0000147a: PUSH1 0x01 0000147c: PUSH1 0x01 0000147e: PUSH1 0xa0 00001480: SHL 00001481: SUB 00001482: DUP5 00001483: AND 00001484: SWAP2 00001485: PUSH4 0xdd62ed3e 0000148a: SWAP2 0000148b: PUSH2 0x1499 0000148e: SWAP2 0000148f: ADDRESS 00001490: SWAP2 00001491: SWAP1 00001492: PUSH1 0x04 00001494: ADD 00001495: PUSH2 0x3108 00001498: JUMP 00001499: JUMPDEST 0000149a: PUSH1 0x20 0000149c: PUSH1 0x40 0000149e: MLOAD 0000149f: DUP1 000014a0: DUP4 000014a1: SUB 000014a2: DUP2 000014a3: DUP7 000014a4: DUP1 000014a5: EXTCODESIZE 000014a6: ISZERO 000014a7: DUP1 000014a8: ISZERO 000014a9: PUSH2 0x14b1 000014ac: JUMPI 000014ad: PUSH1 0x00 000014af: DUP1 000014b0: REVERT 000014b1: JUMPDEST 000014b2: POP 000014b3: GAS 000014b4: STATICCALL 000014b5: ISZERO 000014b6: DUP1 000014b7: ISZERO 000014b8: PUSH2 0x14c5 000014bb: JUMPI 000014bc: RETURNDATASIZE 000014bd: PUSH1 0x00 000014bf: DUP1 000014c0: RETURNDATACOPY 000014c1: RETURNDATASIZE 000014c2: PUSH1 0x00 000014c4: REVERT 000014c5: JUMPDEST 000014c6: POP 000014c7: POP 000014c8: POP 000014c9: POP 000014ca: PUSH1 0x40 000014cc: MLOAD 000014cd: RETURNDATASIZE 000014ce: PUSH1 0x1f 000014d0: NOT 000014d1: PUSH1 0x1f 000014d3: DUP3 000014d4: ADD 000014d5: AND 000014d6: DUP3 000014d7: ADD 000014d8: DUP1 000014d9: PUSH1 0x40 000014db: MSTORE 000014dc: POP 000014dd: PUSH2 0x14e9 000014e0: SWAP2 000014e1: SWAP1 000014e2: DUP2 000014e3: ADD 000014e4: SWAP1 000014e5: PUSH2 0x2d87 000014e8: JUMP 000014e9: JUMPDEST 000014ea: LT 000014eb: ISZERO 000014ec: PUSH2 0x1574 000014ef: JUMPI 000014f0: DUP6 000014f1: MLOAD 000014f2: PUSH1 0x40 000014f4: MLOAD 000014f5: PUSH4 0x095ea7b3 000014fa: PUSH1 0xe0 000014fc: SHL 000014fd: DUP2 000014fe: MSTORE 000014ff: PUSH1 0x01 00001501: PUSH1 0x01 00001503: PUSH1 0xa0 00001505: SHL 00001506: SUB 00001507: DUP4 00001508: AND 00001509: SWAP2 0000150a: PUSH4 0x095ea7b3 0000150f: SWAP2 00001510: PUSH2 0x1520 00001513: SWAP2 00001514: SWAP1 00001515: PUSH1 0x00 00001517: NOT 00001518: SWAP1 00001519: PUSH1 0x04 0000151b: ADD 0000151c: PUSH2 0x319c 0000151f: JUMP 00001520: JUMPDEST 00001521: PUSH1 0x20 00001523: PUSH1 0x40 00001525: MLOAD 00001526: DUP1 00001527: DUP4 00001528: SUB 00001529: DUP2 0000152a: PUSH1 0x00 0000152c: DUP8 0000152d: DUP1 0000152e: EXTCODESIZE 0000152f: ISZERO 00001530: DUP1 00001531: ISZERO 00001532: PUSH2 0x153a 00001535: JUMPI 00001536: PUSH1 0x00 00001538: DUP1 00001539: REVERT 0000153a: JUMPDEST 0000153b: POP 0000153c: GAS 0000153d: CALL 0000153e: ISZERO 0000153f: DUP1 00001540: ISZERO 00001541: PUSH2 0x154e 00001544: JUMPI 00001545: RETURNDATASIZE 00001546: PUSH1 0x00 00001548: DUP1 00001549: RETURNDATACOPY 0000154a: RETURNDATASIZE 0000154b: PUSH1 0x00 0000154d: REVERT 0000154e: JUMPDEST 0000154f: POP 00001550: POP 00001551: POP 00001552: POP 00001553: PUSH1 0x40 00001555: MLOAD 00001556: RETURNDATASIZE 00001557: PUSH1 0x1f 00001559: NOT 0000155a: PUSH1 0x1f 0000155c: DUP3 0000155d: ADD 0000155e: AND 0000155f: DUP3 00001560: ADD 00001561: DUP1 00001562: PUSH1 0x40 00001564: MSTORE 00001565: POP 00001566: PUSH2 0x1572 00001569: SWAP2 0000156a: SWAP1 0000156b: DUP2 0000156c: ADD 0000156d: SWAP1 0000156e: PUSH2 0x2d23 00001571: JUMP 00001572: JUMPDEST 00001573: POP 00001574: JUMPDEST 00001575: DUP5 00001576: PUSH1 0x01 00001578: PUSH1 0x01 0000157a: PUSH1 0xa0 0000157c: SHL 0000157d: SUB 0000157e: AND 0000157f: PUSH4 0x7c5e9ea4 00001584: DUP8 00001585: PUSH1 0x20 00001587: ADD 00001588: MLOAD 00001589: DUP9 0000158a: PUSH1 0x80 0000158c: ADD 0000158d: MLOAD 0000158e: DUP10 0000158f: PUSH1 0x40 00001591: ADD 00001592: MLOAD 00001593: DUP11 00001594: PUSH1 0x60 00001596: ADD 00001597: MLOAD 00001598: DUP12 00001599: PUSH1 0xa0 0000159b: ADD 0000159c: MLOAD 0000159d: PUSH1 0x40 0000159f: MLOAD 000015a0: DUP7 000015a1: PUSH4 0xffffffff 000015a6: AND 000015a7: PUSH1 0xe0 000015a9: SHL 000015aa: DUP2 000015ab: MSTORE 000015ac: PUSH1 0x04 000015ae: ADD 000015af: PUSH2 0x15bc 000015b2: SWAP6 000015b3: SWAP5 000015b4: SWAP4 000015b5: SWAP3 000015b6: SWAP2 000015b7: SWAP1 000015b8: PUSH2 0x31aa 000015bb: JUMP 000015bc: JUMPDEST 000015bd: PUSH1 0x40 000015bf: DUP1 000015c0: MLOAD 000015c1: DUP1 000015c2: DUP4 000015c3: SUB 000015c4: DUP2 000015c5: PUSH1 0x00 000015c7: DUP8 000015c8: DUP1 000015c9: EXTCODESIZE 000015ca: ISZERO 000015cb: DUP1 000015cc: ISZERO 000015cd: PUSH2 0x15d5 000015d0: JUMPI 000015d1: PUSH1 0x00 000015d3: DUP1 000015d4: REVERT 000015d5: JUMPDEST 000015d6: POP 000015d7: GAS 000015d8: CALL 000015d9: ISZERO 000015da: DUP1 000015db: ISZERO 000015dc: PUSH2 0x15e9 000015df: JUMPI 000015e0: RETURNDATASIZE 000015e1: PUSH1 0x00 000015e3: DUP1 000015e4: RETURNDATACOPY 000015e5: RETURNDATASIZE 000015e6: PUSH1 0x00 000015e8: REVERT 000015e9: JUMPDEST 000015ea: POP 000015eb: POP 000015ec: POP 000015ed: POP 000015ee: PUSH1 0x40 000015f0: MLOAD 000015f1: RETURNDATASIZE 000015f2: PUSH1 0x1f 000015f4: NOT 000015f5: PUSH1 0x1f 000015f7: DUP3 000015f8: ADD 000015f9: AND 000015fa: DUP3 000015fb: ADD 000015fc: DUP1 000015fd: PUSH1 0x40 000015ff: MSTORE 00001600: POP 00001601: PUSH2 0x160d 00001604: SWAP2 00001605: SWAP1 00001606: DUP2 00001607: ADD 00001608: SWAP1 00001609: PUSH2 0x2da5 0000160c: JUMP 0000160d: JUMPDEST 0000160e: POP 0000160f: POP 00001610: POP 00001611: POP 00001612: POP 00001613: POP 00001614: POP 00001615: POP 00001616: POP 00001617: JUMPDEST 00001618: PUSH2 0x1627 0000161b: DUP2 0000161c: DUP5 0000161d: PUSH4 0xffffffff 00001622: PUSH2 0x1e4a 00001625: AND 00001626: JUMP 00001627: JUMPDEST 00001628: SWAP3 00001629: POP 0000162a: POP 0000162b: PUSH1 0x01 0000162d: ADD 0000162e: PUSH2 0x0cb5 00001631: JUMP 00001632: JUMPDEST 00001633: PUSH1 0x00 00001635: PUSH2 0x163e 00001638: DUP6 00001639: DUP5 0000163a: PUSH2 0x1d28 0000163d: JUMP 0000163e: JUMPDEST 0000163f: POP 00001640: PUSH1 0x00 00001642: JUMPDEST 00001643: DUP7 00001644: MLOAD 00001645: DUP2 00001646: LT 00001647: ISZERO 00001648: PUSH2 0x18c5 0000164b: JUMPI 0000164c: PUSH2 0x1653 0000164f: PUSH2 0x27e4 00001652: JUMP 00001653: JUMPDEST 00001654: DUP8 00001655: DUP3 00001656: DUP2 00001657: MLOAD 00001658: DUP2 00001659: LT 0000165a: PUSH2 0x165f 0000165d: JUMPI 0000165e: INVALID 0000165f: JUMPDEST 00001660: PUSH1 0x20 00001662: SWAP1 00001663: DUP2 00001664: MUL 00001665: SWAP2 00001666: SWAP1 00001667: SWAP2 00001668: ADD 00001669: DUP2 0000166a: ADD 0000166b: MLOAD 0000166c: SWAP1 0000166d: DUP2 0000166e: ADD 0000166f: MLOAD 00001670: DUP2 00001671: MLOAD 00001672: PUSH1 0x40 00001674: MLOAD 00001675: PUSH4 0x6eb1769f 0000167a: PUSH1 0xe1 0000167c: SHL 0000167d: DUP2 0000167e: MSTORE 0000167f: SWAP3 00001680: SWAP4 00001681: POP 00001682: SWAP1 00001683: SWAP2 00001684: PUSH1 0x00 00001686: SWAP1 00001687: PUSH1 0x01 00001689: PUSH1 0x01 0000168b: PUSH1 0xa0 0000168d: SHL 0000168e: SUB 0000168f: DUP5 00001690: AND 00001691: SWAP1 00001692: PUSH4 0xdd62ed3e 00001697: SWAP1 00001698: PUSH2 0x16a7 0000169b: SWAP1 0000169c: ADDRESS 0000169d: SWAP1 0000169e: DUP7 0000169f: SWAP1 000016a0: PUSH1 0x04 000016a2: ADD 000016a3: PUSH2 0x3108 000016a6: JUMP 000016a7: JUMPDEST 000016a8: PUSH1 0x20 000016aa: PUSH1 0x40 000016ac: MLOAD 000016ad: DUP1 000016ae: DUP4 000016af: SUB 000016b0: DUP2 000016b1: DUP7 000016b2: DUP1 000016b3: EXTCODESIZE 000016b4: ISZERO 000016b5: DUP1 000016b6: ISZERO 000016b7: PUSH2 0x16bf 000016ba: JUMPI 000016bb: PUSH1 0x00 000016bd: DUP1 000016be: REVERT 000016bf: JUMPDEST 000016c0: POP 000016c1: GAS 000016c2: STATICCALL 000016c3: ISZERO 000016c4: DUP1 000016c5: ISZERO 000016c6: PUSH2 0x16d3 000016c9: JUMPI 000016ca: RETURNDATASIZE 000016cb: PUSH1 0x00 000016cd: DUP1 000016ce: RETURNDATACOPY 000016cf: RETURNDATASIZE 000016d0: PUSH1 0x00 000016d2: REVERT 000016d3: JUMPDEST 000016d4: POP 000016d5: POP 000016d6: POP 000016d7: POP 000016d8: PUSH1 0x40 000016da: MLOAD 000016db: RETURNDATASIZE 000016dc: PUSH1 0x1f 000016de: NOT 000016df: PUSH1 0x1f 000016e1: DUP3 000016e2: ADD 000016e3: AND 000016e4: DUP3 000016e5: ADD 000016e6: DUP1 000016e7: PUSH1 0x40 000016e9: MSTORE 000016ea: POP 000016eb: PUSH2 0x16f7 000016ee: SWAP2 000016ef: SWAP1 000016f0: DUP2 000016f1: ADD 000016f2: SWAP1 000016f3: PUSH2 0x2d87 000016f6: JUMP 000016f7: JUMPDEST 000016f8: GT 000016f9: ISZERO 000016fa: PUSH2 0x1781 000016fd: JUMPI 000016fe: DUP3 000016ff: MLOAD 00001700: PUSH1 0x40 00001702: MLOAD 00001703: PUSH4 0x095ea7b3 00001708: PUSH1 0xe0 0000170a: SHL 0000170b: DUP2 0000170c: MSTORE 0000170d: PUSH1 0x01 0000170f: PUSH1 0x01 00001711: PUSH1 0xa0 00001713: SHL 00001714: SUB 00001715: DUP5 00001716: AND 00001717: SWAP2 00001718: PUSH4 0x095ea7b3 0000171d: SWAP2 0000171e: PUSH2 0x172d 00001721: SWAP2 00001722: SWAP1 00001723: PUSH1 0x00 00001725: SWAP1 00001726: PUSH1 0x04 00001728: ADD 00001729: PUSH2 0x3181 0000172c: JUMP 0000172d: JUMPDEST 0000172e: PUSH1 0x20 00001730: PUSH1 0x40 00001732: MLOAD 00001733: DUP1 00001734: DUP4 00001735: SUB 00001736: DUP2 00001737: PUSH1 0x00 00001739: DUP8 0000173a: DUP1 0000173b: EXTCODESIZE 0000173c: ISZERO 0000173d: DUP1 0000173e: ISZERO 0000173f: PUSH2 0x1747 00001742: JUMPI 00001743: PUSH1 0x00 00001745: DUP1 00001746: REVERT 00001747: JUMPDEST 00001748: POP 00001749: GAS 0000174a: CALL 0000174b: ISZERO 0000174c: DUP1 0000174d: ISZERO 0000174e: PUSH2 0x175b 00001751: JUMPI 00001752: RETURNDATASIZE 00001753: PUSH1 0x00 00001755: DUP1 00001756: RETURNDATACOPY 00001757: RETURNDATASIZE 00001758: PUSH1 0x00 0000175a: REVERT 0000175b: JUMPDEST 0000175c: POP 0000175d: POP 0000175e: POP 0000175f: POP 00001760: PUSH1 0x40 00001762: MLOAD 00001763: RETURNDATASIZE 00001764: PUSH1 0x1f 00001766: NOT 00001767: PUSH1 0x1f 00001769: DUP3 0000176a: ADD 0000176b: AND 0000176c: DUP3 0000176d: ADD 0000176e: DUP1 0000176f: PUSH1 0x40 00001771: MSTORE 00001772: POP 00001773: PUSH2 0x177f 00001776: SWAP2 00001777: SWAP1 00001778: DUP2 00001779: ADD 0000177a: SWAP1 0000177b: PUSH2 0x2d23 0000177e: JUMP 0000177f: JUMPDEST 00001780: POP 00001781: JUMPDEST 00001782: DUP3 00001783: MLOAD 00001784: PUSH1 0x60 00001786: DUP5 00001787: ADD 00001788: MLOAD 00001789: PUSH1 0x40 0000178b: MLOAD 0000178c: PUSH4 0x095ea7b3 00001791: PUSH1 0xe0 00001793: SHL 00001794: DUP2 00001795: MSTORE 00001796: PUSH1 0x01 00001798: PUSH1 0x01 0000179a: PUSH1 0xa0 0000179c: SHL 0000179d: SUB 0000179e: DUP6 0000179f: AND 000017a0: SWAP3 000017a1: PUSH4 0x095ea7b3 000017a6: SWAP3 000017a7: PUSH2 0x17b2 000017aa: SWAP3 000017ab: PUSH1 0x04 000017ad: ADD 000017ae: PUSH2 0x319c 000017b1: JUMP 000017b2: JUMPDEST 000017b3: PUSH1 0x20 000017b5: PUSH1 0x40 000017b7: MLOAD 000017b8: DUP1 000017b9: DUP4 000017ba: SUB 000017bb: DUP2 000017bc: PUSH1 0x00 000017be: DUP8 000017bf: DUP1 000017c0: EXTCODESIZE 000017c1: ISZERO 000017c2: DUP1 000017c3: ISZERO 000017c4: PUSH2 0x17cc 000017c7: JUMPI 000017c8: PUSH1 0x00 000017ca: DUP1 000017cb: REVERT 000017cc: JUMPDEST 000017cd: POP 000017ce: GAS 000017cf: CALL 000017d0: ISZERO 000017d1: DUP1 000017d2: ISZERO 000017d3: PUSH2 0x17e0 000017d6: JUMPI 000017d7: RETURNDATASIZE 000017d8: PUSH1 0x00 000017da: DUP1 000017db: RETURNDATACOPY 000017dc: RETURNDATASIZE 000017dd: PUSH1 0x00 000017df: REVERT 000017e0: JUMPDEST 000017e1: POP 000017e2: POP 000017e3: POP 000017e4: POP 000017e5: PUSH1 0x40 000017e7: MLOAD 000017e8: RETURNDATASIZE 000017e9: PUSH1 0x1f 000017eb: NOT 000017ec: PUSH1 0x1f 000017ee: DUP3 000017ef: ADD 000017f0: AND 000017f1: DUP3 000017f2: ADD 000017f3: DUP1 000017f4: PUSH1 0x40 000017f6: MSTORE 000017f7: POP 000017f8: PUSH2 0x1804 000017fb: SWAP2 000017fc: SWAP1 000017fd: DUP2 000017fe: ADD 000017ff: SWAP1 00001800: PUSH2 0x2d23 00001803: JUMP 00001804: JUMPDEST 00001805: POP 00001806: PUSH1 0x20 00001808: DUP4 00001809: ADD 0000180a: MLOAD 0000180b: PUSH1 0x60 0000180d: DUP5 0000180e: ADD 0000180f: MLOAD 00001810: PUSH1 0x40 00001812: DUP1 00001813: DUP7 00001814: ADD 00001815: MLOAD 00001816: PUSH1 0x80 00001818: DUP8 00001819: ADD 0000181a: MLOAD 0000181b: PUSH1 0xa0 0000181d: DUP9 0000181e: ADD 0000181f: MLOAD 00001820: SWAP3 00001821: MLOAD 00001822: PUSH4 0x8201aa3f 00001827: PUSH1 0xe0 00001829: SHL 0000182a: DUP2 0000182b: MSTORE 0000182c: PUSH1 0x00 0000182e: SWAP6 0000182f: PUSH1 0x01 00001831: PUSH1 0x01 00001833: PUSH1 0xa0 00001835: SHL 00001836: SUB 00001837: DUP9 00001838: AND 00001839: SWAP6 0000183a: PUSH4 0x8201aa3f 0000183f: SWAP6 00001840: PUSH2 0x184f 00001843: SWAP6 00001844: SWAP3 00001845: SWAP5 00001846: SWAP2 00001847: SWAP4 00001848: PUSH1 0x04 0000184a: ADD 0000184b: PUSH2 0x31aa 0000184e: JUMP 0000184f: JUMPDEST 00001850: PUSH1 0x40 00001852: DUP1 00001853: MLOAD 00001854: DUP1 00001855: DUP4 00001856: SUB 00001857: DUP2 00001858: PUSH1 0x00 0000185a: DUP8 0000185b: DUP1 0000185c: EXTCODESIZE 0000185d: ISZERO 0000185e: DUP1 0000185f: ISZERO 00001860: PUSH2 0x1868 00001863: JUMPI 00001864: PUSH1 0x00 00001866: DUP1 00001867: REVERT 00001868: JUMPDEST 00001869: POP 0000186a: GAS 0000186b: CALL 0000186c: ISZERO 0000186d: DUP1 0000186e: ISZERO 0000186f: PUSH2 0x187c 00001872: JUMPI 00001873: RETURNDATASIZE 00001874: PUSH1 0x00 00001876: DUP1 00001877: RETURNDATACOPY 00001878: RETURNDATASIZE 00001879: PUSH1 0x00 0000187b: REVERT 0000187c: JUMPDEST 0000187d: POP 0000187e: POP 0000187f: POP 00001880: POP 00001881: PUSH1 0x40 00001883: MLOAD 00001884: RETURNDATASIZE 00001885: PUSH1 0x1f 00001887: NOT 00001888: PUSH1 0x1f 0000188a: DUP3 0000188b: ADD 0000188c: AND 0000188d: DUP3 0000188e: ADD 0000188f: DUP1 00001890: PUSH1 0x40 00001892: MSTORE 00001893: POP 00001894: PUSH2 0x18a0 00001897: SWAP2 00001898: SWAP1 00001899: DUP2 0000189a: ADD 0000189b: SWAP1 0000189c: PUSH2 0x2da5 0000189f: JUMP 000018a0: JUMPDEST 000018a1: POP 000018a2: SWAP1 000018a3: POP 000018a4: PUSH2 0x18b3 000018a7: DUP2 000018a8: DUP8 000018a9: PUSH4 0xffffffff 000018ae: PUSH2 0x1e4a 000018b1: AND 000018b2: JUMP 000018b3: JUMPDEST 000018b4: SWAP6 000018b5: POP 000018b6: POP 000018b7: PUSH1 0x01 000018b9: SWAP1 000018ba: SWAP4 000018bb: ADD 000018bc: SWAP3 000018bd: POP 000018be: PUSH2 0x1642 000018c1: SWAP2 000018c2: POP 000018c3: POP 000018c4: JUMP 000018c5: JUMPDEST 000018c6: POP 000018c7: DUP2 000018c8: DUP2 000018c9: LT 000018ca: ISZERO 000018cb: PUSH2 0x18e6 000018ce: JUMPI 000018cf: PUSH1 0x40 000018d1: MLOAD 000018d2: PUSH3 0x461bcd 000018d6: PUSH1 0xe5 000018d8: SHL 000018d9: DUP2 000018da: MSTORE 000018db: PUSH1 0x04 000018dd: ADD 000018de: PUSH2 0x0568 000018e1: SWAP1 000018e2: PUSH2 0x3255 000018e5: JUMP 000018e6: JUMPDEST 000018e7: PUSH2 0x18f0 000018ea: DUP5 000018eb: DUP3 000018ec: PUSH2 0x1f39 000018ef: JUMP 000018f0: JUMPDEST 000018f1: POP 000018f2: PUSH2 0x18fe 000018f5: DUP6 000018f6: PUSH2 0x057e 000018f9: DUP8 000018fa: PUSH2 0x1e76 000018fd: JUMP 000018fe: JUMPDEST 000018ff: POP 00001900: SWAP6 00001901: SWAP5 00001902: POP 00001903: POP 00001904: POP 00001905: POP 00001906: POP 00001907: JUMP 00001908: JUMPDEST 00001909: PUSH1 0x00 0000190b: SLOAD 0000190c: PUSH1 0x01 0000190e: PUSH1 0x01 00001910: PUSH1 0xa0 00001912: SHL 00001913: SUB 00001914: AND 00001915: SWAP1 00001916: JUMP 00001917: JUMPDEST 00001918: PUSH1 0x00 0000191a: DUP1 0000191b: SLOAD 0000191c: PUSH1 0x01 0000191e: PUSH1 0x01 00001920: PUSH1 0xa0 00001922: SHL 00001923: SUB 00001924: AND 00001925: PUSH2 0x192c 00001928: PUSH2 0x26ab 0000192b: JUMP 0000192c: JUMPDEST 0000192d: PUSH1 0x01 0000192f: PUSH1 0x01 00001931: PUSH1 0xa0 00001933: SHL 00001934: SUB 00001935: AND 00001936: EQ 00001937: SWAP1 00001938: POP 00001939: SWAP1 0000193a: JUMP 0000193b: JUMPDEST 0000193c: PUSH2 0x1943 0000193f: PUSH2 0x1917 00001942: JUMP 00001943: JUMPDEST 00001944: PUSH2 0x195f 00001947: JUMPI 00001948: PUSH1 0x40 0000194a: MLOAD 0000194b: PUSH3 0x461bcd 0000194f: PUSH1 0xe5 00001951: SHL 00001952: DUP2 00001953: MSTORE 00001954: PUSH1 0x04 00001956: ADD 00001957: PUSH2 0x0568 0000195a: SWAP1 0000195b: PUSH2 0x3285 0000195e: JUMP 0000195f: JUMPDEST 00001960: PUSH1 0x02 00001962: DUP1 00001963: SLOAD 00001964: PUSH1 0x01 00001966: PUSH1 0x01 00001968: PUSH1 0xa0 0000196a: SHL 0000196b: SUB 0000196c: NOT 0000196d: AND 0000196e: PUSH1 0x01 00001970: PUSH1 0x01 00001972: PUSH1 0xa0 00001974: SHL 00001975: SUB 00001976: SWAP3 00001977: SWAP1 00001978: SWAP3 00001979: AND 0000197a: SWAP2 0000197b: SWAP1 0000197c: SWAP2 0000197d: OR 0000197e: SWAP1 0000197f: SSTORE 00001980: JUMP 00001981: JUMPDEST 00001982: PUSH1 0x00 00001984: PUSH1 0x60 00001986: PUSH2 0x198e 00001989: DUP8 0000198a: PUSH2 0x1d02 0000198d: JUMP 0000198e: JUMPDEST 0000198f: ISZERO 00001990: PUSH2 0x19b3 00001993: JUMPI 00001994: PUSH1 0x01 00001996: SLOAD 00001997: PUSH2 0x19ab 0000199a: SWAP1 0000199b: PUSH1 0x01 0000199d: PUSH1 0x01 0000199f: PUSH1 0xa0 000019a1: SHL 000019a2: SUB 000019a3: AND 000019a4: DUP8 000019a5: DUP8 000019a6: DUP7 000019a7: PUSH2 0x059a 000019aa: JUMP 000019ab: JUMPDEST 000019ac: POP 000019ad: SWAP1 000019ae: POP 000019af: PUSH2 0x19ea 000019b2: JUMP 000019b3: JUMPDEST 000019b4: PUSH2 0x19bc 000019b7: DUP7 000019b8: PUSH2 0x1d02 000019bb: JUMP 000019bc: JUMPDEST 000019bd: ISZERO 000019be: PUSH2 0x19da 000019c1: JUMPI 000019c2: PUSH1 0x01 000019c4: SLOAD 000019c5: PUSH2 0x19ab 000019c8: SWAP1 000019c9: DUP9 000019ca: SWAP1 000019cb: PUSH1 0x01 000019cd: PUSH1 0x01 000019cf: PUSH1 0xa0 000019d1: SHL 000019d2: SUB 000019d3: AND 000019d4: DUP8 000019d5: DUP7 000019d6: PUSH2 0x059a 000019d9: JUMP 000019da: JUMPDEST 000019db: PUSH2 0x19e6 000019de: DUP8 000019df: DUP8 000019e0: DUP8 000019e1: DUP7 000019e2: PUSH2 0x059a 000019e5: JUMP 000019e6: JUMPDEST 000019e7: POP 000019e8: SWAP1 000019e9: POP 000019ea: JUMPDEST 000019eb: PUSH2 0x02a9 000019ee: DUP2 000019ef: DUP9 000019f0: DUP9 000019f1: DUP8 000019f2: PUSH2 0x02b4 000019f5: JUMP 000019f6: JUMPDEST 000019f7: PUSH1 0x00 000019f9: PUSH2 0x1a02 000019fc: DUP6 000019fd: DUP5 000019fe: PUSH2 0x1d28 00001a01: JUMP 00001a02: JUMPDEST 00001a03: POP 00001a04: PUSH1 0x00 00001a06: JUMPDEST 00001a07: DUP7 00001a08: MLOAD 00001a09: DUP2 00001a0a: LT 00001a0b: ISZERO 00001a0c: PUSH2 0x18c5 00001a0f: JUMPI 00001a10: PUSH1 0x00 00001a12: DUP1 00001a13: JUMPDEST 00001a14: DUP9 00001a15: DUP4 00001a16: DUP2 00001a17: MLOAD 00001a18: DUP2 00001a19: LT 00001a1a: PUSH2 0x1a1f 00001a1d: JUMPI 00001a1e: INVALID 00001a1f: JUMPDEST 00001a20: PUSH1 0x20 00001a22: MUL 00001a23: PUSH1 0x20 00001a25: ADD 00001a26: ADD 00001a27: MLOAD 00001a28: MLOAD 00001a29: DUP2 00001a2a: LT 00001a2b: ISZERO 00001a2c: PUSH2 0x1cb6 00001a2f: JUMPI 00001a30: PUSH2 0x1a37 00001a33: PUSH2 0x27e4 00001a36: JUMP 00001a37: JUMPDEST 00001a38: DUP10 00001a39: DUP5 00001a3a: DUP2 00001a3b: MLOAD 00001a3c: DUP2 00001a3d: LT 00001a3e: PUSH2 0x1a43 00001a41: JUMPI 00001a42: INVALID 00001a43: JUMPDEST 00001a44: PUSH1 0x20 00001a46: MUL 00001a47: PUSH1 0x20 00001a49: ADD 00001a4a: ADD 00001a4b: MLOAD 00001a4c: DUP3 00001a4d: DUP2 00001a4e: MLOAD 00001a4f: DUP2 00001a50: LT 00001a51: PUSH2 0x1a56 00001a54: JUMPI 00001a55: INVALID 00001a56: JUMPDEST 00001a57: PUSH1 0x20 00001a59: MUL 00001a5a: PUSH1 0x20 00001a5c: ADD 00001a5d: ADD 00001a5e: MLOAD 00001a5f: SWAP1 00001a60: POP 00001a61: PUSH1 0x00 00001a63: DUP2 00001a64: PUSH1 0x20 00001a66: ADD 00001a67: MLOAD 00001a68: SWAP1 00001a69: POP 00001a6a: DUP3 00001a6b: PUSH1 0x01 00001a6d: EQ 00001a6e: ISZERO 00001a6f: PUSH2 0x1a7a 00001a72: JUMPI 00001a73: PUSH1 0x60 00001a75: DUP3 00001a76: ADD 00001a77: DUP5 00001a78: SWAP1 00001a79: MSTORE 00001a7a: JUMPDEST 00001a7b: DUP2 00001a7c: MLOAD 00001a7d: PUSH1 0x40 00001a7f: MLOAD 00001a80: PUSH4 0x6eb1769f 00001a85: PUSH1 0xe1 00001a87: SHL 00001a88: DUP2 00001a89: MSTORE 00001a8a: PUSH1 0x00 00001a8c: SWAP1 00001a8d: PUSH1 0x01 00001a8f: PUSH1 0x01 00001a91: PUSH1 0xa0 00001a93: SHL 00001a94: SUB 00001a95: DUP5 00001a96: AND 00001a97: SWAP1 00001a98: PUSH4 0xdd62ed3e 00001a9d: SWAP1 00001a9e: PUSH2 0x1aad 00001aa1: SWAP1 00001aa2: ADDRESS 00001aa3: SWAP1 00001aa4: DUP7 00001aa5: SWAP1 00001aa6: PUSH1 0x04 00001aa8: ADD 00001aa9: PUSH2 0x3108 00001aac: JUMP 00001aad: JUMPDEST 00001aae: PUSH1 0x20 00001ab0: PUSH1 0x40 00001ab2: MLOAD 00001ab3: DUP1 00001ab4: DUP4 00001ab5: SUB 00001ab6: DUP2 00001ab7: DUP7 00001ab8: DUP1 00001ab9: EXTCODESIZE 00001aba: ISZERO 00001abb: DUP1 00001abc: ISZERO 00001abd: PUSH2 0x1ac5 00001ac0: JUMPI 00001ac1: PUSH1 0x00 00001ac3: DUP1 00001ac4: REVERT 00001ac5: JUMPDEST 00001ac6: POP 00001ac7: GAS 00001ac8: STATICCALL 00001ac9: ISZERO 00001aca: DUP1 00001acb: ISZERO 00001acc: PUSH2 0x1ad9 00001acf: JUMPI 00001ad0: RETURNDATASIZE 00001ad1: PUSH1 0x00 00001ad3: DUP1 00001ad4: RETURNDATACOPY 00001ad5: RETURNDATASIZE 00001ad6: PUSH1 0x00 00001ad8: REVERT 00001ad9: JUMPDEST 00001ada: POP 00001adb: POP 00001adc: POP 00001add: POP 00001ade: PUSH1 0x40 00001ae0: MLOAD 00001ae1: RETURNDATASIZE 00001ae2: PUSH1 0x1f 00001ae4: NOT 00001ae5: PUSH1 0x1f 00001ae7: DUP3 00001ae8: ADD 00001ae9: AND 00001aea: DUP3 00001aeb: ADD 00001aec: DUP1 00001aed: PUSH1 0x40 00001aef: MSTORE 00001af0: POP 00001af1: PUSH2 0x1afd 00001af4: SWAP2 00001af5: SWAP1 00001af6: DUP2 00001af7: ADD 00001af8: SWAP1 00001af9: PUSH2 0x2d87 00001afc: JUMP 00001afd: JUMPDEST 00001afe: GT 00001aff: ISZERO 00001b00: PUSH2 0x1b87 00001b03: JUMPI 00001b04: DUP3 00001b05: MLOAD 00001b06: PUSH1 0x40 00001b08: MLOAD 00001b09: PUSH4 0x095ea7b3 00001b0e: PUSH1 0xe0 00001b10: SHL 00001b11: DUP2 00001b12: MSTORE 00001b13: PUSH1 0x01 00001b15: PUSH1 0x01 00001b17: PUSH1 0xa0 00001b19: SHL 00001b1a: SUB 00001b1b: DUP5 00001b1c: AND 00001b1d: SWAP2 00001b1e: PUSH4 0x095ea7b3 00001b23: SWAP2 00001b24: PUSH2 0x1b33 00001b27: SWAP2 00001b28: SWAP1 00001b29: PUSH1 0x00 00001b2b: SWAP1 00001b2c: PUSH1 0x04 00001b2e: ADD 00001b2f: PUSH2 0x3181 00001b32: JUMP 00001b33: JUMPDEST 00001b34: PUSH1 0x20 00001b36: PUSH1 0x40 00001b38: MLOAD 00001b39: DUP1 00001b3a: DUP4 00001b3b: SUB 00001b3c: DUP2 00001b3d: PUSH1 0x00 00001b3f: DUP8 00001b40: DUP1 00001b41: EXTCODESIZE 00001b42: ISZERO 00001b43: DUP1 00001b44: ISZERO 00001b45: PUSH2 0x1b4d 00001b48: JUMPI 00001b49: PUSH1 0x00 00001b4b: DUP1 00001b4c: REVERT 00001b4d: JUMPDEST 00001b4e: POP 00001b4f: GAS 00001b50: CALL 00001b51: ISZERO 00001b52: DUP1 00001b53: ISZERO 00001b54: PUSH2 0x1b61 00001b57: JUMPI 00001b58: RETURNDATASIZE 00001b59: PUSH1 0x00 00001b5b: DUP1 00001b5c: RETURNDATACOPY 00001b5d: RETURNDATASIZE 00001b5e: PUSH1 0x00 00001b60: REVERT 00001b61: JUMPDEST 00001b62: POP 00001b63: POP 00001b64: POP 00001b65: POP 00001b66: PUSH1 0x40 00001b68: MLOAD 00001b69: RETURNDATASIZE 00001b6a: PUSH1 0x1f 00001b6c: NOT 00001b6d: PUSH1 0x1f 00001b6f: DUP3 00001b70: ADD 00001b71: AND 00001b72: DUP3 00001b73: ADD 00001b74: DUP1 00001b75: PUSH1 0x40 00001b77: MSTORE 00001b78: POP 00001b79: PUSH2 0x1b85 00001b7c: SWAP2 00001b7d: SWAP1 00001b7e: DUP2 00001b7f: ADD 00001b80: SWAP1 00001b81: PUSH2 0x2d23 00001b84: JUMP 00001b85: JUMPDEST 00001b86: POP 00001b87: JUMPDEST 00001b88: DUP3 00001b89: MLOAD 00001b8a: PUSH1 0x60 00001b8c: DUP5 00001b8d: ADD 00001b8e: MLOAD 00001b8f: PUSH1 0x40 00001b91: MLOAD 00001b92: PUSH4 0x095ea7b3 00001b97: PUSH1 0xe0 00001b99: SHL 00001b9a: DUP2 00001b9b: MSTORE 00001b9c: PUSH1 0x01 00001b9e: PUSH1 0x01 00001ba0: PUSH1 0xa0 00001ba2: SHL 00001ba3: SUB 00001ba4: DUP6 00001ba5: AND 00001ba6: SWAP3 00001ba7: PUSH4 0x095ea7b3 00001bac: SWAP3 00001bad: PUSH2 0x1bb8 00001bb0: SWAP3 00001bb1: PUSH1 0x04 00001bb3: ADD 00001bb4: PUSH2 0x319c 00001bb7: JUMP 00001bb8: JUMPDEST 00001bb9: PUSH1 0x20 00001bbb: PUSH1 0x40 00001bbd: MLOAD 00001bbe: DUP1 00001bbf: DUP4 00001bc0: SUB 00001bc1: DUP2 00001bc2: PUSH1 0x00 00001bc4: DUP8 00001bc5: DUP1 00001bc6: EXTCODESIZE 00001bc7: ISZERO 00001bc8: DUP1 00001bc9: ISZERO 00001bca: PUSH2 0x1bd2 00001bcd: JUMPI 00001bce: PUSH1 0x00 00001bd0: DUP1 00001bd1: REVERT 00001bd2: JUMPDEST 00001bd3: POP 00001bd4: GAS 00001bd5: CALL 00001bd6: ISZERO 00001bd7: DUP1 00001bd8: ISZERO 00001bd9: PUSH2 0x1be6 00001bdc: JUMPI 00001bdd: RETURNDATASIZE 00001bde: PUSH1 0x00 00001be0: DUP1 00001be1: RETURNDATACOPY 00001be2: RETURNDATASIZE 00001be3: PUSH1 0x00 00001be5: REVERT 00001be6: JUMPDEST 00001be7: POP 00001be8: POP 00001be9: POP 00001bea: POP 00001beb: PUSH1 0x40 00001bed: MLOAD 00001bee: RETURNDATASIZE 00001bef: PUSH1 0x1f 00001bf1: NOT 00001bf2: PUSH1 0x1f 00001bf4: DUP3 00001bf5: ADD 00001bf6: AND 00001bf7: DUP3 00001bf8: ADD 00001bf9: DUP1 00001bfa: PUSH1 0x40 00001bfc: MSTORE 00001bfd: POP 00001bfe: PUSH2 0x1c0a 00001c01: SWAP2 00001c02: SWAP1 00001c03: DUP2 00001c04: ADD 00001c05: SWAP1 00001c06: PUSH2 0x2d23 00001c09: JUMP 00001c0a: JUMPDEST 00001c0b: POP 00001c0c: DUP1 00001c0d: PUSH1 0x01 00001c0f: PUSH1 0x01 00001c11: PUSH1 0xa0 00001c13: SHL 00001c14: SUB 00001c15: AND 00001c16: PUSH4 0x8201aa3f 00001c1b: DUP5 00001c1c: PUSH1 0x20 00001c1e: ADD 00001c1f: MLOAD 00001c20: DUP6 00001c21: PUSH1 0x60 00001c23: ADD 00001c24: MLOAD 00001c25: DUP7 00001c26: PUSH1 0x40 00001c28: ADD 00001c29: MLOAD 00001c2a: DUP8 00001c2b: PUSH1 0x80 00001c2d: ADD 00001c2e: MLOAD 00001c2f: DUP9 00001c30: PUSH1 0xa0 00001c32: ADD 00001c33: MLOAD 00001c34: PUSH1 0x40 00001c36: MLOAD 00001c37: DUP7 00001c38: PUSH4 0xffffffff 00001c3d: AND 00001c3e: PUSH1 0xe0 00001c40: SHL 00001c41: DUP2 00001c42: MSTORE 00001c43: PUSH1 0x04 00001c45: ADD 00001c46: PUSH2 0x1c53 00001c49: SWAP6 00001c4a: SWAP5 00001c4b: SWAP4 00001c4c: SWAP3 00001c4d: SWAP2 00001c4e: SWAP1 00001c4f: PUSH2 0x31aa 00001c52: JUMP 00001c53: JUMPDEST 00001c54: PUSH1 0x40 00001c56: DUP1 00001c57: MLOAD 00001c58: DUP1 00001c59: DUP4 00001c5a: SUB 00001c5b: DUP2 00001c5c: PUSH1 0x00 00001c5e: DUP8 00001c5f: DUP1 00001c60: EXTCODESIZE 00001c61: ISZERO 00001c62: DUP1 00001c63: ISZERO 00001c64: PUSH2 0x1c6c 00001c67: JUMPI 00001c68: PUSH1 0x00 00001c6a: DUP1 00001c6b: REVERT 00001c6c: JUMPDEST 00001c6d: POP 00001c6e: GAS 00001c6f: CALL 00001c70: ISZERO 00001c71: DUP1 00001c72: ISZERO 00001c73: PUSH2 0x1c80 00001c76: JUMPI 00001c77: RETURNDATASIZE 00001c78: PUSH1 0x00 00001c7a: DUP1 00001c7b: RETURNDATACOPY 00001c7c: RETURNDATASIZE 00001c7d: PUSH1 0x00 00001c7f: REVERT 00001c80: JUMPDEST 00001c81: POP 00001c82: POP 00001c83: POP 00001c84: POP 00001c85: PUSH1 0x40 00001c87: MLOAD 00001c88: RETURNDATASIZE 00001c89: PUSH1 0x1f 00001c8b: NOT 00001c8c: PUSH1 0x1f 00001c8e: DUP3 00001c8f: ADD 00001c90: AND 00001c91: DUP3 00001c92: ADD 00001c93: DUP1 00001c94: PUSH1 0x40 00001c96: MSTORE 00001c97: POP 00001c98: PUSH2 0x1ca4 00001c9b: SWAP2 00001c9c: SWAP1 00001c9d: DUP2 00001c9e: ADD 00001c9f: SWAP1 00001ca0: PUSH2 0x2da5 00001ca3: JUMP 00001ca4: JUMPDEST 00001ca5: POP 00001ca6: SWAP5 00001ca7: POP 00001ca8: POP 00001ca9: PUSH1 0x01 00001cab: SWAP1 00001cac: SWAP3 00001cad: ADD 00001cae: SWAP2 00001caf: POP 00001cb0: PUSH2 0x1a13 00001cb3: SWAP1 00001cb4: POP 00001cb5: JUMP 00001cb6: JUMPDEST 00001cb7: POP 00001cb8: PUSH2 0x1cc7 00001cbb: DUP2 00001cbc: DUP5 00001cbd: PUSH4 0xffffffff 00001cc2: PUSH2 0x1e4a 00001cc5: AND 00001cc6: JUMP 00001cc7: JUMPDEST 00001cc8: SWAP3 00001cc9: POP 00001cca: POP 00001ccb: PUSH1 0x01 00001ccd: ADD 00001cce: PUSH2 0x1a06 00001cd1: JUMP 00001cd2: JUMPDEST 00001cd3: PUSH2 0x1cda 00001cd6: PUSH2 0x1917 00001cd9: JUMP 00001cda: JUMPDEST 00001cdb: PUSH2 0x1cf6 00001cde: JUMPI 00001cdf: PUSH1 0x40 00001ce1: MLOAD 00001ce2: PUSH3 0x461bcd 00001ce6: PUSH1 0xe5 00001ce8: SHL 00001ce9: DUP2 00001cea: MSTORE 00001ceb: PUSH1 0x04 00001ced: ADD 00001cee: PUSH2 0x0568 00001cf1: SWAP1 00001cf2: PUSH2 0x3285 00001cf5: JUMP 00001cf6: JUMPDEST 00001cf7: PUSH2 0x1cff 00001cfa: DUP2 00001cfb: PUSH2 0x26af 00001cfe: JUMP 00001cff: JUMPDEST 00001d00: POP 00001d01: JUMP 00001d02: JUMPDEST 00001d03: PUSH1 0x01 00001d05: PUSH1 0x01 00001d07: PUSH1 0xa0 00001d09: SHL 00001d0a: SUB 00001d0b: DUP2 00001d0c: AND 00001d0d: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 00001d22: EQ 00001d23: JUMPDEST 00001d24: SWAP2 00001d25: SWAP1 00001d26: POP 00001d27: JUMP 00001d28: JUMPDEST 00001d29: PUSH1 0x00 00001d2b: PUSH2 0x1d33 00001d2e: DUP4 00001d2f: PUSH2 0x1d02 00001d32: JUMP 00001d33: JUMPDEST 00001d34: ISZERO 00001d35: PUSH2 0x1da6 00001d38: JUMPI 00001d39: PUSH1 0x01 00001d3b: PUSH1 0x00 00001d3d: SWAP1 00001d3e: SLOAD 00001d3f: SWAP1 00001d40: PUSH2 0x0100 00001d43: EXP 00001d44: SWAP1 00001d45: DIV 00001d46: PUSH1 0x01 00001d48: PUSH1 0x01 00001d4a: PUSH1 0xa0 00001d4c: SHL 00001d4d: SUB 00001d4e: AND 00001d4f: PUSH1 0x01 00001d51: PUSH1 0x01 00001d53: PUSH1 0xa0 00001d55: SHL 00001d56: SUB 00001d57: AND 00001d58: PUSH4 0xd0e30db0 00001d5d: CALLVALUE 00001d5e: PUSH1 0x40 00001d60: MLOAD 00001d61: DUP3 00001d62: PUSH4 0xffffffff 00001d67: AND 00001d68: PUSH1 0xe0 00001d6a: SHL 00001d6b: DUP2 00001d6c: MSTORE 00001d6d: PUSH1 0x04 00001d6f: ADD 00001d70: PUSH1 0x00 00001d72: PUSH1 0x40 00001d74: MLOAD 00001d75: DUP1 00001d76: DUP4 00001d77: SUB 00001d78: DUP2 00001d79: DUP6 00001d7a: DUP9 00001d7b: DUP1 00001d7c: EXTCODESIZE 00001d7d: ISZERO 00001d7e: DUP1 00001d7f: ISZERO 00001d80: PUSH2 0x1d88 00001d83: JUMPI 00001d84: PUSH1 0x00 00001d86: DUP1 00001d87: REVERT 00001d88: JUMPDEST 00001d89: POP 00001d8a: GAS 00001d8b: CALL 00001d8c: ISZERO 00001d8d: DUP1 00001d8e: ISZERO 00001d8f: PUSH2 0x1d9c 00001d92: JUMPI 00001d93: RETURNDATASIZE 00001d94: PUSH1 0x00 00001d96: DUP1 00001d97: RETURNDATACOPY 00001d98: RETURNDATASIZE 00001d99: PUSH1 0x00 00001d9b: REVERT 00001d9c: JUMPDEST 00001d9d: POP 00001d9e: POP 00001d9f: POP 00001da0: POP 00001da1: POP 00001da2: PUSH2 0x1e44 00001da5: JUMP 00001da6: JUMPDEST 00001da7: PUSH1 0x40 00001da9: MLOAD 00001daa: PUSH4 0x23b872dd 00001daf: PUSH1 0xe0 00001db1: SHL 00001db2: DUP2 00001db3: MSTORE 00001db4: PUSH1 0x01 00001db6: PUSH1 0x01 00001db8: PUSH1 0xa0 00001dba: SHL 00001dbb: SUB 00001dbc: DUP5 00001dbd: AND 00001dbe: SWAP1 00001dbf: PUSH4 0x23b872dd 00001dc4: SWAP1 00001dc5: PUSH2 0x1dd6 00001dc8: SWAP1 00001dc9: CALLER 00001dca: SWAP1 00001dcb: ADDRESS 00001dcc: SWAP1 00001dcd: DUP8 00001dce: SWAP1 00001dcf: PUSH1 0x04 00001dd1: ADD 00001dd2: PUSH2 0x3123 00001dd5: JUMP 00001dd6: JUMPDEST 00001dd7: PUSH1 0x20 00001dd9: PUSH1 0x40 00001ddb: MLOAD 00001ddc: DUP1 00001ddd: DUP4 00001dde: SUB 00001ddf: DUP2 00001de0: PUSH1 0x00 00001de2: DUP8 00001de3: DUP1 00001de4: EXTCODESIZE 00001de5: ISZERO 00001de6: DUP1 00001de7: ISZERO 00001de8: PUSH2 0x1df0 00001deb: JUMPI 00001dec: PUSH1 0x00 00001dee: DUP1 00001def: REVERT 00001df0: JUMPDEST 00001df1: POP 00001df2: GAS 00001df3: CALL 00001df4: ISZERO 00001df5: DUP1 00001df6: ISZERO 00001df7: PUSH2 0x1e04 00001dfa: JUMPI 00001dfb: RETURNDATASIZE 00001dfc: PUSH1 0x00 00001dfe: DUP1 00001dff: RETURNDATACOPY 00001e00: RETURNDATASIZE 00001e01: PUSH1 0x00 00001e03: REVERT 00001e04: JUMPDEST 00001e05: POP 00001e06: POP 00001e07: POP 00001e08: POP 00001e09: PUSH1 0x40 00001e0b: MLOAD 00001e0c: RETURNDATASIZE 00001e0d: PUSH1 0x1f 00001e0f: NOT 00001e10: PUSH1 0x1f 00001e12: DUP3 00001e13: ADD 00001e14: AND 00001e15: DUP3 00001e16: ADD 00001e17: DUP1 00001e18: PUSH1 0x40 00001e1a: MSTORE 00001e1b: POP 00001e1c: PUSH2 0x1e28 00001e1f: SWAP2 00001e20: SWAP1 00001e21: DUP2 00001e22: ADD 00001e23: SWAP1 00001e24: PUSH2 0x2d23 00001e27: JUMP 00001e28: JUMPDEST 00001e29: PUSH2 0x1e44 00001e2c: JUMPI 00001e2d: PUSH1 0x40 00001e2f: MLOAD 00001e30: PUSH3 0x461bcd 00001e34: PUSH1 0xe5 00001e36: SHL 00001e37: DUP2 00001e38: MSTORE 00001e39: PUSH1 0x04 00001e3b: ADD 00001e3c: PUSH2 0x0568 00001e3f: SWAP1 00001e40: PUSH2 0x32a5 00001e43: JUMP 00001e44: JUMPDEST 00001e45: SWAP3 00001e46: SWAP2 00001e47: POP 00001e48: POP 00001e49: JUMP 00001e4a: JUMPDEST 00001e4b: PUSH1 0x00 00001e4d: DUP3 00001e4e: DUP3 00001e4f: ADD 00001e50: DUP4 00001e51: DUP2 00001e52: LT 00001e53: ISZERO 00001e54: PUSH2 0x1e6f 00001e57: JUMPI 00001e58: PUSH1 0x40 00001e5a: MLOAD 00001e5b: PUSH3 0x461bcd 00001e5f: PUSH1 0xe5 00001e61: SHL 00001e62: DUP2 00001e63: MSTORE 00001e64: PUSH1 0x04 00001e66: ADD 00001e67: PUSH2 0x0568 00001e6a: SWAP1 00001e6b: PUSH2 0x3245 00001e6e: JUMP 00001e6f: JUMPDEST 00001e70: SWAP4 00001e71: SWAP3 00001e72: POP 00001e73: POP 00001e74: POP 00001e75: JUMP 00001e76: JUMPDEST 00001e77: PUSH1 0x00 00001e79: PUSH2 0x1e81 00001e7c: DUP3 00001e7d: PUSH2 0x1d02 00001e80: JUMP 00001e81: JUMPDEST 00001e82: ISZERO 00001e83: PUSH2 0x1f0d 00001e86: JUMPI 00001e87: PUSH1 0x01 00001e89: SLOAD 00001e8a: PUSH1 0x40 00001e8c: MLOAD 00001e8d: PUSH4 0x70a08231 00001e92: PUSH1 0xe0 00001e94: SHL 00001e95: DUP2 00001e96: MSTORE 00001e97: PUSH1 0x01 00001e99: PUSH1 0x01 00001e9b: PUSH1 0xa0 00001e9d: SHL 00001e9e: SUB 00001e9f: SWAP1 00001ea0: SWAP2 00001ea1: AND 00001ea2: SWAP1 00001ea3: PUSH4 0x70a08231 00001ea8: SWAP1 00001ea9: PUSH2 0x1eb6 00001eac: SWAP1 00001ead: ADDRESS 00001eae: SWAP1 00001eaf: PUSH1 0x04 00001eb1: ADD 00001eb2: PUSH2 0x30fa 00001eb5: JUMP 00001eb6: JUMPDEST 00001eb7: PUSH1 0x20 00001eb9: PUSH1 0x40 00001ebb: MLOAD 00001ebc: DUP1 00001ebd: DUP4 00001ebe: SUB 00001ebf: DUP2 00001ec0: DUP7 00001ec1: DUP1 00001ec2: EXTCODESIZE 00001ec3: ISZERO 00001ec4: DUP1 00001ec5: ISZERO 00001ec6: PUSH2 0x1ece 00001ec9: JUMPI 00001eca: PUSH1 0x00 00001ecc: DUP1 00001ecd: REVERT 00001ece: JUMPDEST 00001ecf: POP 00001ed0: GAS 00001ed1: STATICCALL 00001ed2: ISZERO 00001ed3: DUP1 00001ed4: ISZERO 00001ed5: PUSH2 0x1ee2 00001ed8: JUMPI 00001ed9: RETURNDATASIZE 00001eda: PUSH1 0x00 00001edc: DUP1 00001edd: RETURNDATACOPY 00001ede: RETURNDATASIZE 00001edf: PUSH1 0x00 00001ee1: REVERT 00001ee2: JUMPDEST 00001ee3: POP 00001ee4: POP 00001ee5: POP 00001ee6: POP 00001ee7: PUSH1 0x40 00001ee9: MLOAD 00001eea: RETURNDATASIZE 00001eeb: PUSH1 0x1f 00001eed: NOT 00001eee: PUSH1 0x1f 00001ef0: DUP3 00001ef1: ADD 00001ef2: AND 00001ef3: DUP3 00001ef4: ADD 00001ef5: DUP1 00001ef6: PUSH1 0x40 00001ef8: MSTORE 00001ef9: POP 00001efa: PUSH2 0x1f06 00001efd: SWAP2 00001efe: SWAP1 00001eff: DUP2 00001f00: ADD 00001f01: SWAP1 00001f02: PUSH2 0x2d87 00001f05: JUMP 00001f06: JUMPDEST 00001f07: SWAP1 00001f08: POP 00001f09: PUSH2 0x1d23 00001f0c: JUMP 00001f0d: JUMPDEST 00001f0e: PUSH1 0x40 00001f10: MLOAD 00001f11: PUSH4 0x70a08231 00001f16: PUSH1 0xe0 00001f18: SHL 00001f19: DUP2 00001f1a: MSTORE 00001f1b: PUSH1 0x01 00001f1d: PUSH1 0x01 00001f1f: PUSH1 0xa0 00001f21: SHL 00001f22: SUB 00001f23: DUP4 00001f24: AND 00001f25: SWAP1 00001f26: PUSH4 0x70a08231 00001f2b: SWAP1 00001f2c: PUSH2 0x1eb6 00001f2f: SWAP1 00001f30: ADDRESS 00001f31: SWAP1 00001f32: PUSH1 0x04 00001f34: ADD 00001f35: PUSH2 0x30fa 00001f38: JUMP 00001f39: JUMPDEST 00001f3a: PUSH1 0x00 00001f3c: DUP2 00001f3d: PUSH2 0x1f48 00001f40: JUMPI 00001f41: POP 00001f42: PUSH1 0x01 00001f44: PUSH2 0x1e44 00001f47: JUMP 00001f48: JUMPDEST 00001f49: PUSH2 0x1f51 00001f4c: DUP4 00001f4d: PUSH2 0x1d02 00001f50: JUMP 00001f51: JUMPDEST 00001f52: ISZERO 00001f53: PUSH2 0x203a 00001f56: JUMPI 00001f57: PUSH1 0x01 00001f59: SLOAD 00001f5a: PUSH1 0x40 00001f5c: MLOAD 00001f5d: PUSH4 0x2e1a7d4d 00001f62: PUSH1 0xe0 00001f64: SHL 00001f65: DUP2 00001f66: MSTORE 00001f67: PUSH1 0x01 00001f69: PUSH1 0x01 00001f6b: PUSH1 0xa0 00001f6d: SHL 00001f6e: SUB 00001f6f: SWAP1 00001f70: SWAP2 00001f71: AND 00001f72: SWAP1 00001f73: PUSH4 0x2e1a7d4d 00001f78: SWAP1 00001f79: PUSH2 0x1f86 00001f7c: SWAP1 00001f7d: DUP6 00001f7e: SWAP1 00001f7f: PUSH1 0x04 00001f81: ADD 00001f82: PUSH2 0x32b5 00001f85: JUMP 00001f86: JUMPDEST 00001f87: PUSH1 0x00 00001f89: PUSH1 0x40 00001f8b: MLOAD 00001f8c: DUP1 00001f8d: DUP4 00001f8e: SUB 00001f8f: DUP2 00001f90: PUSH1 0x00 00001f92: DUP8 00001f93: DUP1 00001f94: EXTCODESIZE 00001f95: ISZERO 00001f96: DUP1 00001f97: ISZERO 00001f98: PUSH2 0x1fa0 00001f9b: JUMPI 00001f9c: PUSH1 0x00 00001f9e: DUP1 00001f9f: REVERT 00001fa0: JUMPDEST 00001fa1: POP 00001fa2: GAS 00001fa3: CALL 00001fa4: ISZERO 00001fa5: DUP1 00001fa6: ISZERO 00001fa7: PUSH2 0x1fb4 00001faa: JUMPI 00001fab: RETURNDATASIZE 00001fac: PUSH1 0x00 00001fae: DUP1 00001faf: RETURNDATACOPY 00001fb0: RETURNDATASIZE 00001fb1: PUSH1 0x00 00001fb3: REVERT 00001fb4: JUMPDEST 00001fb5: POP 00001fb6: POP 00001fb7: POP 00001fb8: POP 00001fb9: PUSH1 0x00 00001fbb: CALLER 00001fbc: PUSH1 0x01 00001fbe: PUSH1 0x01 00001fc0: PUSH1 0xa0 00001fc2: SHL 00001fc3: SUB 00001fc4: AND 00001fc5: DUP4 00001fc6: PUSH1 0x40 00001fc8: MLOAD 00001fc9: PUSH2 0x1fd1 00001fcc: SWAP1 00001fcd: PUSH2 0x30e1 00001fd0: JUMP 00001fd1: JUMPDEST 00001fd2: PUSH1 0x00 00001fd4: PUSH1 0x40 00001fd6: MLOAD 00001fd7: DUP1 00001fd8: DUP4 00001fd9: SUB 00001fda: DUP2 00001fdb: DUP6 00001fdc: DUP8 00001fdd: GAS 00001fde: CALL 00001fdf: SWAP3 00001fe0: POP 00001fe1: POP 00001fe2: POP 00001fe3: RETURNDATASIZE 00001fe4: DUP1 00001fe5: PUSH1 0x00 00001fe7: DUP2 00001fe8: EQ 00001fe9: PUSH2 0x200e 00001fec: JUMPI 00001fed: PUSH1 0x40 00001fef: MLOAD 00001ff0: SWAP2 00001ff1: POP 00001ff2: PUSH1 0x1f 00001ff4: NOT 00001ff5: PUSH1 0x3f 00001ff7: RETURNDATASIZE 00001ff8: ADD 00001ff9: AND 00001ffa: DUP3 00001ffb: ADD 00001ffc: PUSH1 0x40 00001ffe: MSTORE 00001fff: RETURNDATASIZE 00002000: DUP3 00002001: MSTORE 00002002: RETURNDATASIZE 00002003: PUSH1 0x00 00002005: PUSH1 0x20 00002007: DUP5 00002008: ADD 00002009: RETURNDATACOPY 0000200a: PUSH2 0x2013 0000200d: JUMP 0000200e: JUMPDEST 0000200f: PUSH1 0x60 00002011: SWAP2 00002012: POP 00002013: JUMPDEST 00002014: POP 00002015: POP 00002016: SWAP1 00002017: POP 00002018: DUP1 00002019: PUSH2 0x2034 0000201c: JUMPI 0000201d: PUSH1 0x40 0000201f: MLOAD 00002020: PUSH3 0x461bcd 00002024: PUSH1 0xe5 00002026: SHL 00002027: DUP2 00002028: MSTORE 00002029: PUSH1 0x04 0000202b: ADD 0000202c: PUSH2 0x0568 0000202f: SWAP1 00002030: PUSH2 0x3295 00002033: JUMP 00002034: JUMPDEST 00002035: POP 00002036: PUSH2 0x1e44 00002039: JUMP 0000203a: JUMPDEST 0000203b: PUSH1 0x40 0000203d: MLOAD 0000203e: PUSH4 0xa9059cbb 00002043: PUSH1 0xe0 00002045: SHL 00002046: DUP2 00002047: MSTORE 00002048: PUSH1 0x01 0000204a: PUSH1 0x01 0000204c: PUSH1 0xa0 0000204e: SHL 0000204f: SUB 00002050: DUP5 00002051: AND 00002052: SWAP1 00002053: PUSH4 0xa9059cbb 00002058: SWAP1 00002059: PUSH2 0x1dd6 0000205c: SWAP1 0000205d: CALLER 0000205e: SWAP1 0000205f: DUP7 00002060: SWAP1 00002061: PUSH1 0x04 00002063: ADD 00002064: PUSH2 0x314b 00002067: JUMP 00002068: JUMPDEST 00002069: PUSH2 0x2070 0000206c: PUSH2 0x2835 0000206f: JUMP 00002070: JUMPDEST 00002071: PUSH1 0x40 00002073: MLOAD 00002074: PUSH4 0xf8b2cb4f 00002079: PUSH1 0xe0 0000207b: SHL 0000207c: DUP2 0000207d: MSTORE 0000207e: DUP3 0000207f: SWAP1 00002080: PUSH1 0x00 00002082: SWAP1 00002083: PUSH1 0x01 00002085: PUSH1 0x01 00002087: PUSH1 0xa0 00002089: SHL 0000208a: SUB 0000208b: DUP4 0000208c: AND 0000208d: SWAP1 0000208e: PUSH4 0xf8b2cb4f 00002093: SWAP1 00002094: PUSH2 0x20a1 00002097: SWAP1 00002098: DUP10 00002099: SWAP1 0000209a: PUSH1 0x04 0000209c: ADD 0000209d: PUSH2 0x30ec 000020a0: JUMP 000020a1: JUMPDEST 000020a2: PUSH1 0x20 000020a4: PUSH1 0x40 000020a6: MLOAD 000020a7: DUP1 000020a8: DUP4 000020a9: SUB 000020aa: DUP2 000020ab: DUP7 000020ac: DUP1 000020ad: EXTCODESIZE 000020ae: ISZERO 000020af: DUP1 000020b0: ISZERO 000020b1: PUSH2 0x20b9 000020b4: JUMPI 000020b5: PUSH1 0x00 000020b7: DUP1 000020b8: REVERT 000020b9: JUMPDEST 000020ba: POP 000020bb: GAS 000020bc: STATICCALL 000020bd: ISZERO 000020be: DUP1 000020bf: ISZERO 000020c0: PUSH2 0x20cd 000020c3: JUMPI 000020c4: RETURNDATASIZE 000020c5: PUSH1 0x00 000020c7: DUP1 000020c8: RETURNDATACOPY 000020c9: RETURNDATASIZE 000020ca: PUSH1 0x00 000020cc: REVERT 000020cd: JUMPDEST 000020ce: POP 000020cf: POP 000020d0: POP 000020d1: POP 000020d2: PUSH1 0x40 000020d4: MLOAD 000020d5: RETURNDATASIZE 000020d6: PUSH1 0x1f 000020d8: NOT 000020d9: PUSH1 0x1f 000020db: DUP3 000020dc: ADD 000020dd: AND 000020de: DUP3 000020df: ADD 000020e0: DUP1 000020e1: PUSH1 0x40 000020e3: MSTORE 000020e4: POP 000020e5: PUSH2 0x20f1 000020e8: SWAP2 000020e9: SWAP1 000020ea: DUP2 000020eb: ADD 000020ec: SWAP1 000020ed: PUSH2 0x2d87 000020f0: JUMP 000020f1: JUMPDEST 000020f2: SWAP1 000020f3: POP 000020f4: PUSH1 0x00 000020f6: DUP3 000020f7: PUSH1 0x01 000020f9: PUSH1 0x01 000020fb: PUSH1 0xa0 000020fd: SHL 000020fe: SUB 000020ff: AND 00002100: PUSH4 0xf8b2cb4f 00002105: DUP8 00002106: PUSH1 0x40 00002108: MLOAD 00002109: DUP3 0000210a: PUSH4 0xffffffff 0000210f: AND 00002110: PUSH1 0xe0 00002112: SHL 00002113: DUP2 00002114: MSTORE 00002115: PUSH1 0x04 00002117: ADD 00002118: PUSH2 0x2121 0000211b: SWAP2 0000211c: SWAP1 0000211d: PUSH2 0x30ec 00002120: JUMP 00002121: JUMPDEST 00002122: PUSH1 0x20 00002124: PUSH1 0x40 00002126: MLOAD 00002127: DUP1 00002128: DUP4 00002129: SUB 0000212a: DUP2 0000212b: DUP7 0000212c: DUP1 0000212d: EXTCODESIZE 0000212e: ISZERO 0000212f: DUP1 00002130: ISZERO 00002131: PUSH2 0x2139 00002134: JUMPI 00002135: PUSH1 0x00 00002137: DUP1 00002138: REVERT 00002139: JUMPDEST 0000213a: POP 0000213b: GAS 0000213c: STATICCALL 0000213d: ISZERO 0000213e: DUP1 0000213f: ISZERO 00002140: PUSH2 0x214d 00002143: JUMPI 00002144: RETURNDATASIZE 00002145: PUSH1 0x00 00002147: DUP1 00002148: RETURNDATACOPY 00002149: RETURNDATASIZE 0000214a: PUSH1 0x00 0000214c: REVERT 0000214d: JUMPDEST 0000214e: POP 0000214f: POP 00002150: POP 00002151: POP 00002152: PUSH1 0x40 00002154: MLOAD 00002155: RETURNDATASIZE 00002156: PUSH1 0x1f 00002158: NOT 00002159: PUSH1 0x1f 0000215b: DUP3 0000215c: ADD 0000215d: AND 0000215e: DUP3 0000215f: ADD 00002160: DUP1 00002161: PUSH1 0x40 00002163: MSTORE 00002164: POP 00002165: PUSH2 0x2171 00002168: SWAP2 00002169: SWAP1 0000216a: DUP2 0000216b: ADD 0000216c: SWAP1 0000216d: PUSH2 0x2d87 00002170: JUMP 00002171: JUMPDEST 00002172: SWAP1 00002173: POP 00002174: PUSH1 0x00 00002176: DUP4 00002177: PUSH1 0x01 00002179: PUSH1 0x01 0000217b: PUSH1 0xa0 0000217d: SHL 0000217e: SUB 0000217f: AND 00002180: PUSH4 0x948d8ce6 00002185: DUP10 00002186: PUSH1 0x40 00002188: MLOAD 00002189: DUP3 0000218a: PUSH4 0xffffffff 0000218f: AND 00002190: PUSH1 0xe0 00002192: SHL 00002193: DUP2 00002194: MSTORE 00002195: PUSH1 0x04 00002197: ADD 00002198: PUSH2 0x21a1 0000219b: SWAP2 0000219c: SWAP1 0000219d: PUSH2 0x30ec 000021a0: JUMP 000021a1: JUMPDEST 000021a2: PUSH1 0x20 000021a4: PUSH1 0x40 000021a6: MLOAD 000021a7: DUP1 000021a8: DUP4 000021a9: SUB 000021aa: DUP2 000021ab: DUP7 000021ac: DUP1 000021ad: EXTCODESIZE 000021ae: ISZERO 000021af: DUP1 000021b0: ISZERO 000021b1: PUSH2 0x21b9 000021b4: JUMPI 000021b5: PUSH1 0x00 000021b7: DUP1 000021b8: REVERT 000021b9: JUMPDEST 000021ba: POP 000021bb: GAS 000021bc: STATICCALL 000021bd: ISZERO 000021be: DUP1 000021bf: ISZERO 000021c0: PUSH2 0x21cd 000021c3: JUMPI 000021c4: RETURNDATASIZE 000021c5: PUSH1 0x00 000021c7: DUP1 000021c8: RETURNDATACOPY 000021c9: RETURNDATASIZE 000021ca: PUSH1 0x00 000021cc: REVERT 000021cd: JUMPDEST 000021ce: POP 000021cf: POP 000021d0: POP 000021d1: POP 000021d2: PUSH1 0x40 000021d4: MLOAD 000021d5: RETURNDATASIZE 000021d6: PUSH1 0x1f 000021d8: NOT 000021d9: PUSH1 0x1f 000021db: DUP3 000021dc: ADD 000021dd: AND 000021de: DUP3 000021df: ADD 000021e0: DUP1 000021e1: PUSH1 0x40 000021e3: MSTORE 000021e4: POP 000021e5: PUSH2 0x21f1 000021e8: SWAP2 000021e9: SWAP1 000021ea: DUP2 000021eb: ADD 000021ec: SWAP1 000021ed: PUSH2 0x2d87 000021f0: JUMP 000021f1: JUMPDEST 000021f2: SWAP1 000021f3: POP 000021f4: PUSH1 0x00 000021f6: DUP5 000021f7: PUSH1 0x01 000021f9: PUSH1 0x01 000021fb: PUSH1 0xa0 000021fd: SHL 000021fe: SUB 000021ff: AND 00002200: PUSH4 0x948d8ce6 00002205: DUP10 00002206: PUSH1 0x40 00002208: MLOAD 00002209: DUP3 0000220a: PUSH4 0xffffffff 0000220f: AND 00002210: PUSH1 0xe0 00002212: SHL 00002213: DUP2 00002214: MSTORE 00002215: PUSH1 0x04 00002217: ADD 00002218: PUSH2 0x2221 0000221b: SWAP2 0000221c: SWAP1 0000221d: PUSH2 0x30ec 00002220: JUMP 00002221: JUMPDEST 00002222: PUSH1 0x20 00002224: PUSH1 0x40 00002226: MLOAD 00002227: DUP1 00002228: DUP4 00002229: SUB 0000222a: DUP2 0000222b: DUP7 0000222c: DUP1 0000222d: EXTCODESIZE 0000222e: ISZERO 0000222f: DUP1 00002230: ISZERO 00002231: PUSH2 0x2239 00002234: JUMPI 00002235: PUSH1 0x00 00002237: DUP1 00002238: REVERT 00002239: JUMPDEST 0000223a: POP 0000223b: GAS 0000223c: STATICCALL 0000223d: ISZERO 0000223e: DUP1 0000223f: ISZERO 00002240: PUSH2 0x224d 00002243: JUMPI 00002244: RETURNDATASIZE 00002245: PUSH1 0x00 00002247: DUP1 00002248: RETURNDATACOPY 00002249: RETURNDATASIZE 0000224a: PUSH1 0x00 0000224c: REVERT 0000224d: JUMPDEST 0000224e: POP 0000224f: POP 00002250: POP 00002251: POP 00002252: PUSH1 0x40 00002254: MLOAD 00002255: RETURNDATASIZE 00002256: PUSH1 0x1f 00002258: NOT 00002259: PUSH1 0x1f 0000225b: DUP3 0000225c: ADD 0000225d: AND 0000225e: DUP3 0000225f: ADD 00002260: DUP1 00002261: PUSH1 0x40 00002263: MSTORE 00002264: POP 00002265: PUSH2 0x2271 00002268: SWAP2 00002269: SWAP1 0000226a: DUP2 0000226b: ADD 0000226c: SWAP1 0000226d: PUSH2 0x2d87 00002270: JUMP 00002271: JUMPDEST 00002272: SWAP1 00002273: POP 00002274: PUSH1 0x00 00002276: DUP6 00002277: PUSH1 0x01 00002279: PUSH1 0x01 0000227b: PUSH1 0xa0 0000227d: SHL 0000227e: SUB 0000227f: AND 00002280: PUSH4 0xd4cadf68 00002285: PUSH1 0x40 00002287: MLOAD 00002288: DUP2 00002289: PUSH4 0xffffffff 0000228e: AND 0000228f: PUSH1 0xe0 00002291: SHL 00002292: DUP2 00002293: MSTORE 00002294: PUSH1 0x04 00002296: ADD 00002297: PUSH1 0x20 00002299: PUSH1 0x40 0000229b: MLOAD 0000229c: DUP1 0000229d: DUP4 0000229e: SUB 0000229f: DUP2 000022a0: DUP7 000022a1: DUP1 000022a2: EXTCODESIZE 000022a3: ISZERO 000022a4: DUP1 000022a5: ISZERO 000022a6: PUSH2 0x22ae 000022a9: JUMPI 000022aa: PUSH1 0x00 000022ac: DUP1 000022ad: REVERT 000022ae: JUMPDEST 000022af: POP 000022b0: GAS 000022b1: STATICCALL 000022b2: ISZERO 000022b3: DUP1 000022b4: ISZERO 000022b5: PUSH2 0x22c2 000022b8: JUMPI 000022b9: RETURNDATASIZE 000022ba: PUSH1 0x00 000022bc: DUP1 000022bd: RETURNDATACOPY 000022be: RETURNDATASIZE 000022bf: PUSH1 0x00 000022c1: REVERT 000022c2: JUMPDEST 000022c3: POP 000022c4: POP 000022c5: POP 000022c6: POP 000022c7: PUSH1 0x40 000022c9: MLOAD 000022ca: RETURNDATASIZE 000022cb: PUSH1 0x1f 000022cd: NOT 000022ce: PUSH1 0x1f 000022d0: DUP3 000022d1: ADD 000022d2: AND 000022d3: DUP3 000022d4: ADD 000022d5: DUP1 000022d6: PUSH1 0x40 000022d8: MSTORE 000022d9: POP 000022da: PUSH2 0x22e6 000022dd: SWAP2 000022de: SWAP1 000022df: DUP2 000022e0: ADD 000022e1: SWAP1 000022e2: PUSH2 0x2d87 000022e5: JUMP 000022e6: JUMPDEST 000022e7: SWAP1 000022e8: POP 000022e9: PUSH1 0x00 000022eb: PUSH2 0x22f5 000022ee: DUP5 000022ef: DUP7 000022f0: DUP6 000022f1: PUSH2 0x2730 000022f4: JUMP 000022f5: JUMPDEST 000022f6: SWAP1 000022f7: POP 000022f8: PUSH2 0x22ff 000022fb: PUSH2 0x2835 000022fe: JUMP 000022ff: JUMPDEST 00002300: POP 00002301: PUSH1 0x40 00002303: DUP1 00002304: MLOAD 00002305: PUSH1 0xe0 00002307: DUP2 00002308: ADD 00002309: DUP3 0000230a: MSTORE 0000230b: PUSH1 0x01 0000230d: PUSH1 0x01 0000230f: PUSH1 0xa0 00002311: SHL 00002312: SUB 00002313: DUP12 00002314: AND 00002315: DUP2 00002316: MSTORE 00002317: PUSH1 0x20 00002319: DUP2 0000231a: ADD 0000231b: SWAP8 0000231c: SWAP1 0000231d: SWAP8 0000231e: MSTORE 0000231f: DUP7 00002320: ADD 00002321: SWAP4 00002322: SWAP1 00002323: SWAP4 00002324: MSTORE 00002325: PUSH1 0x60 00002327: DUP6 00002328: ADD 00002329: SWAP4 0000232a: SWAP1 0000232b: SWAP4 0000232c: MSTORE 0000232d: PUSH1 0x80 0000232f: DUP5 00002330: ADD 00002331: MSTORE 00002332: PUSH1 0xa0 00002334: DUP4 00002335: ADD 00002336: SWAP2 00002337: SWAP1 00002338: SWAP2 00002339: MSTORE 0000233a: PUSH1 0xc0 0000233c: DUP3 0000233d: ADD 0000233e: MSTORE 0000233f: SWAP2 00002340: POP 00002341: POP 00002342: SWAP4 00002343: SWAP3 00002344: POP 00002345: POP 00002346: POP 00002347: JUMP 00002348: JUMPDEST 00002349: PUSH1 0x00 0000234b: DUP3 0000234c: PUSH2 0x2357 0000234f: JUMPI 00002350: POP 00002351: PUSH1 0x00 00002353: PUSH2 0x1e44 00002356: JUMP 00002357: JUMPDEST 00002358: DUP3 00002359: DUP3 0000235a: MUL 0000235b: DUP3 0000235c: DUP5 0000235d: DUP3 0000235e: DUP2 0000235f: PUSH2 0x2364 00002362: JUMPI 00002363: INVALID 00002364: JUMPDEST 00002365: DIV 00002366: EQ 00002367: PUSH2 0x1e6f 0000236a: JUMPI 0000236b: PUSH1 0x40 0000236d: MLOAD 0000236e: PUSH3 0x461bcd 00002372: PUSH1 0xe5 00002374: SHL 00002375: DUP2 00002376: MSTORE 00002377: PUSH1 0x04 00002379: ADD 0000237a: PUSH2 0x0568 0000237d: SWAP1 0000237e: PUSH2 0x3275 00002381: JUMP 00002382: JUMPDEST 00002383: PUSH1 0x00 00002385: PUSH2 0x1e6f 00002388: DUP4 00002389: DUP4 0000238a: PUSH1 0x40 0000238c: MLOAD 0000238d: DUP1 0000238e: PUSH1 0x40 00002390: ADD 00002391: PUSH1 0x40 00002393: MSTORE 00002394: DUP1 00002395: PUSH1 0x1a 00002397: DUP2 00002398: MSTORE 00002399: PUSH1 0x20 0000239b: ADD 0000239c: PUSH32 0x536166654d6174683a206469766973696f6e206279207a65726f000000000000 000023bd: DUP2 000023be: MSTORE 000023bf: POP 000023c0: PUSH2 0x2781 000023c3: JUMP 000023c4: JUMPDEST 000023c5: PUSH1 0x00 000023c7: PUSH2 0x1e6f 000023ca: DUP4 000023cb: DUP4 000023cc: PUSH1 0x40 000023ce: MLOAD 000023cf: DUP1 000023d0: PUSH1 0x40 000023d2: ADD 000023d3: PUSH1 0x40 000023d5: MSTORE 000023d6: DUP1 000023d7: PUSH1 0x1e 000023d9: DUP2 000023da: MSTORE 000023db: PUSH1 0x20 000023dd: ADD 000023de: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000 000023ff: DUP2 00002400: MSTORE 00002401: POP 00002402: PUSH2 0x27b8 00002405: JUMP 00002406: JUMPDEST 00002407: PUSH1 0x00 00002409: DUP1 0000240a: JUMPDEST 0000240b: DUP4 0000240c: MLOAD 0000240d: DUP2 0000240e: LT 0000240f: ISZERO 00002410: PUSH2 0x2555 00002413: JUMPI 00002414: PUSH1 0x00 00002416: DUP4 00002417: DUP3 00002418: DUP2 00002419: MLOAD 0000241a: DUP2 0000241b: LT 0000241c: PUSH2 0x2421 0000241f: JUMPI 00002420: INVALID 00002421: JUMPDEST 00002422: PUSH1 0x20 00002424: MUL 00002425: PUSH1 0x20 00002427: ADD 00002428: ADD 00002429: MLOAD 0000242a: PUSH1 0x00 0000242c: ADD 0000242d: MLOAD 0000242e: PUSH1 0x01 00002430: PUSH1 0x01 00002432: PUSH1 0xa0 00002434: SHL 00002435: SUB 00002436: AND 00002437: PUSH4 0xf8d6aed4 0000243c: DUP6 0000243d: DUP5 0000243e: DUP2 0000243f: MLOAD 00002440: DUP2 00002441: LT 00002442: PUSH2 0x2447 00002445: JUMPI 00002446: INVALID 00002447: JUMPDEST 00002448: PUSH1 0x20 0000244a: MUL 0000244b: PUSH1 0x20 0000244d: ADD 0000244e: ADD 0000244f: MLOAD 00002450: PUSH1 0x20 00002452: ADD 00002453: MLOAD 00002454: DUP7 00002455: DUP6 00002456: DUP2 00002457: MLOAD 00002458: DUP2 00002459: LT 0000245a: PUSH2 0x245f 0000245d: JUMPI 0000245e: INVALID 0000245f: JUMPDEST 00002460: PUSH1 0x20 00002462: MUL 00002463: PUSH1 0x20 00002465: ADD 00002466: ADD 00002467: MLOAD 00002468: PUSH1 0x40 0000246a: ADD 0000246b: MLOAD 0000246c: DUP8 0000246d: DUP7 0000246e: DUP2 0000246f: MLOAD 00002470: DUP2 00002471: LT 00002472: PUSH2 0x2477 00002475: JUMPI 00002476: INVALID 00002477: JUMPDEST 00002478: PUSH1 0x20 0000247a: MUL 0000247b: PUSH1 0x20 0000247d: ADD 0000247e: ADD 0000247f: MLOAD 00002480: PUSH1 0x60 00002482: ADD 00002483: MLOAD 00002484: DUP9 00002485: DUP8 00002486: DUP2 00002487: MLOAD 00002488: DUP2 00002489: LT 0000248a: PUSH2 0x248f 0000248d: JUMPI 0000248e: INVALID 0000248f: JUMPDEST 00002490: PUSH1 0x20 00002492: MUL 00002493: PUSH1 0x20 00002495: ADD 00002496: ADD 00002497: MLOAD 00002498: PUSH1 0x80 0000249a: ADD 0000249b: MLOAD 0000249c: DUP11 0000249d: DUP9 0000249e: DUP2 0000249f: MLOAD 000024a0: DUP2 000024a1: LT 000024a2: PUSH2 0x24a7 000024a5: JUMPI 000024a6: INVALID 000024a7: JUMPDEST 000024a8: PUSH1 0x20 000024aa: MUL 000024ab: PUSH1 0x20 000024ad: ADD 000024ae: ADD 000024af: MLOAD 000024b0: DUP11 000024b1: DUP10 000024b2: DUP2 000024b3: MLOAD 000024b4: DUP2 000024b5: LT 000024b6: PUSH2 0x24bb 000024b9: JUMPI 000024ba: INVALID 000024bb: JUMPDEST 000024bc: PUSH1 0x20 000024be: MUL 000024bf: PUSH1 0x20 000024c1: ADD 000024c2: ADD 000024c3: MLOAD 000024c4: PUSH1 0xa0 000024c6: ADD 000024c7: MLOAD 000024c8: PUSH1 0x40 000024ca: MLOAD 000024cb: DUP8 000024cc: PUSH4 0xffffffff 000024d1: AND 000024d2: PUSH1 0xe0 000024d4: SHL 000024d5: DUP2 000024d6: MSTORE 000024d7: PUSH1 0x04 000024d9: ADD 000024da: PUSH2 0x24e8 000024dd: SWAP7 000024de: SWAP6 000024df: SWAP5 000024e0: SWAP4 000024e1: SWAP3 000024e2: SWAP2 000024e3: SWAP1 000024e4: PUSH2 0x32c3 000024e7: JUMP 000024e8: JUMPDEST 000024e9: PUSH1 0x20 000024eb: PUSH1 0x40 000024ed: MLOAD 000024ee: DUP1 000024ef: DUP4 000024f0: SUB 000024f1: DUP2 000024f2: DUP7 000024f3: DUP1 000024f4: EXTCODESIZE 000024f5: ISZERO 000024f6: DUP1 000024f7: ISZERO 000024f8: PUSH2 0x2500 000024fb: JUMPI 000024fc: PUSH1 0x00 000024fe: DUP1 000024ff: REVERT 00002500: JUMPDEST 00002501: POP 00002502: GAS 00002503: STATICCALL 00002504: ISZERO 00002505: DUP1 00002506: ISZERO 00002507: PUSH2 0x2514 0000250a: JUMPI 0000250b: RETURNDATASIZE 0000250c: PUSH1 0x00 0000250e: DUP1 0000250f: RETURNDATACOPY 00002510: RETURNDATASIZE 00002511: PUSH1 0x00 00002513: REVERT 00002514: JUMPDEST 00002515: POP 00002516: POP 00002517: POP 00002518: POP 00002519: PUSH1 0x40 0000251b: MLOAD 0000251c: RETURNDATASIZE 0000251d: PUSH1 0x1f 0000251f: NOT 00002520: PUSH1 0x1f 00002522: DUP3 00002523: ADD 00002524: AND 00002525: DUP3 00002526: ADD 00002527: DUP1 00002528: PUSH1 0x40 0000252a: MSTORE 0000252b: POP 0000252c: PUSH2 0x2538 0000252f: SWAP2 00002530: SWAP1 00002531: DUP2 00002532: ADD 00002533: SWAP1 00002534: PUSH2 0x2d87 00002537: JUMP 00002538: JUMPDEST 00002539: SWAP1 0000253a: POP 0000253b: PUSH2 0x254a 0000253e: DUP4 0000253f: DUP3 00002540: PUSH4 0xffffffff 00002545: PUSH2 0x1e4a 00002548: AND 00002549: JUMP 0000254a: JUMPDEST 0000254b: SWAP3 0000254c: POP 0000254d: POP 0000254e: PUSH1 0x01 00002550: ADD 00002551: PUSH2 0x240a 00002554: JUMP 00002555: JUMPDEST 00002556: POP 00002557: SWAP3 00002558: SWAP2 00002559: POP 0000255a: POP 0000255b: JUMP 0000255c: JUMPDEST 0000255d: PUSH1 0x00 0000255f: DUP1 00002560: JUMPDEST 00002561: DUP4 00002562: MLOAD 00002563: DUP2 00002564: LT 00002565: ISZERO 00002566: PUSH2 0x2555 00002569: JUMPI 0000256a: PUSH1 0x00 0000256c: DUP4 0000256d: DUP3 0000256e: DUP2 0000256f: MLOAD 00002570: DUP2 00002571: LT 00002572: PUSH2 0x2577 00002575: JUMPI 00002576: INVALID 00002577: JUMPDEST 00002578: PUSH1 0x20 0000257a: MUL 0000257b: PUSH1 0x20 0000257d: ADD 0000257e: ADD 0000257f: MLOAD 00002580: PUSH1 0x00 00002582: ADD 00002583: MLOAD 00002584: PUSH1 0x01 00002586: PUSH1 0x01 00002588: PUSH1 0xa0 0000258a: SHL 0000258b: SUB 0000258c: AND 0000258d: PUSH4 0xba9530a6 00002592: DUP6 00002593: DUP5 00002594: DUP2 00002595: MLOAD 00002596: DUP2 00002597: LT 00002598: PUSH2 0x259d 0000259b: JUMPI 0000259c: INVALID 0000259d: JUMPDEST 0000259e: PUSH1 0x20 000025a0: MUL 000025a1: PUSH1 0x20 000025a3: ADD 000025a4: ADD 000025a5: MLOAD 000025a6: PUSH1 0x20 000025a8: ADD 000025a9: MLOAD 000025aa: DUP7 000025ab: DUP6 000025ac: DUP2 000025ad: MLOAD 000025ae: DUP2 000025af: LT 000025b0: PUSH2 0x25b5 000025b3: JUMPI 000025b4: INVALID 000025b5: JUMPDEST 000025b6: PUSH1 0x20 000025b8: MUL 000025b9: PUSH1 0x20 000025bb: ADD 000025bc: ADD 000025bd: MLOAD 000025be: PUSH1 0x40 000025c0: ADD 000025c1: MLOAD 000025c2: DUP8 000025c3: DUP7 000025c4: DUP2 000025c5: MLOAD 000025c6: DUP2 000025c7: LT 000025c8: PUSH2 0x25cd 000025cb: JUMPI 000025cc: INVALID 000025cd: JUMPDEST 000025ce: PUSH1 0x20 000025d0: MUL 000025d1: PUSH1 0x20 000025d3: ADD 000025d4: ADD 000025d5: MLOAD 000025d6: PUSH1 0x60 000025d8: ADD 000025d9: MLOAD 000025da: DUP9 000025db: DUP8 000025dc: DUP2 000025dd: MLOAD 000025de: DUP2 000025df: LT 000025e0: PUSH2 0x25e5 000025e3: JUMPI 000025e4: INVALID 000025e5: JUMPDEST 000025e6: PUSH1 0x20 000025e8: MUL 000025e9: PUSH1 0x20 000025eb: ADD 000025ec: ADD 000025ed: MLOAD 000025ee: PUSH1 0x80 000025f0: ADD 000025f1: MLOAD 000025f2: DUP11 000025f3: DUP9 000025f4: DUP2 000025f5: MLOAD 000025f6: DUP2 000025f7: LT 000025f8: PUSH2 0x25fd 000025fb: JUMPI 000025fc: INVALID 000025fd: JUMPDEST 000025fe: PUSH1 0x20 00002600: MUL 00002601: PUSH1 0x20 00002603: ADD 00002604: ADD 00002605: MLOAD 00002606: DUP11 00002607: DUP10 00002608: DUP2 00002609: MLOAD 0000260a: DUP2 0000260b: LT 0000260c: PUSH2 0x2611 0000260f: JUMPI 00002610: INVALID 00002611: JUMPDEST 00002612: PUSH1 0x20 00002614: MUL 00002615: PUSH1 0x20 00002617: ADD 00002618: ADD 00002619: MLOAD 0000261a: PUSH1 0xa0 0000261c: ADD 0000261d: MLOAD 0000261e: PUSH1 0x40 00002620: MLOAD 00002621: DUP8 00002622: PUSH4 0xffffffff 00002627: AND 00002628: PUSH1 0xe0 0000262a: SHL 0000262b: DUP2 0000262c: MSTORE 0000262d: PUSH1 0x04 0000262f: ADD 00002630: PUSH2 0x263e 00002633: SWAP7 00002634: SWAP6 00002635: SWAP5 00002636: SWAP4 00002637: SWAP3 00002638: SWAP2 00002639: SWAP1 0000263a: PUSH2 0x32c3 0000263d: JUMP 0000263e: JUMPDEST 0000263f: PUSH1 0x20 00002641: PUSH1 0x40 00002643: MLOAD 00002644: DUP1 00002645: DUP4 00002646: SUB 00002647: DUP2 00002648: DUP7 00002649: DUP1 0000264a: EXTCODESIZE 0000264b: ISZERO 0000264c: DUP1 0000264d: ISZERO 0000264e: PUSH2 0x2656 00002651: JUMPI 00002652: PUSH1 0x00 00002654: DUP1 00002655: REVERT 00002656: JUMPDEST 00002657: POP 00002658: GAS 00002659: STATICCALL 0000265a: ISZERO 0000265b: DUP1 0000265c: ISZERO 0000265d: PUSH2 0x266a 00002660: JUMPI 00002661: RETURNDATASIZE 00002662: PUSH1 0x00 00002664: DUP1 00002665: RETURNDATACOPY 00002666: RETURNDATASIZE 00002667: PUSH1 0x00 00002669: REVERT 0000266a: JUMPDEST 0000266b: POP 0000266c: POP 0000266d: POP 0000266e: POP 0000266f: PUSH1 0x40 00002671: MLOAD 00002672: RETURNDATASIZE 00002673: PUSH1 0x1f 00002675: NOT 00002676: PUSH1 0x1f 00002678: DUP3 00002679: ADD 0000267a: AND 0000267b: DUP3 0000267c: ADD 0000267d: DUP1 0000267e: PUSH1 0x40 00002680: MSTORE 00002681: POP 00002682: PUSH2 0x268e 00002685: SWAP2 00002686: SWAP1 00002687: DUP2 00002688: ADD 00002689: SWAP1 0000268a: PUSH2 0x2d87 0000268d: JUMP 0000268e: JUMPDEST 0000268f: SWAP1 00002690: POP 00002691: PUSH2 0x26a0 00002694: DUP4 00002695: DUP3 00002696: PUSH4 0xffffffff 0000269b: PUSH2 0x1e4a 0000269e: AND 0000269f: JUMP 000026a0: JUMPDEST 000026a1: SWAP3 000026a2: POP 000026a3: POP 000026a4: PUSH1 0x01 000026a6: ADD 000026a7: PUSH2 0x2560 000026aa: JUMP 000026ab: JUMPDEST 000026ac: CALLER 000026ad: SWAP1 000026ae: JUMP 000026af: JUMPDEST 000026b0: PUSH1 0x01 000026b2: PUSH1 0x01 000026b4: PUSH1 0xa0 000026b6: SHL 000026b7: SUB 000026b8: DUP2 000026b9: AND 000026ba: PUSH2 0x26d5 000026bd: JUMPI 000026be: PUSH1 0x40 000026c0: MLOAD 000026c1: PUSH3 0x461bcd 000026c5: PUSH1 0xe5 000026c7: SHL 000026c8: DUP2 000026c9: MSTORE 000026ca: PUSH1 0x04 000026cc: ADD 000026cd: PUSH2 0x0568 000026d0: SWAP1 000026d1: PUSH2 0x3235 000026d4: JUMP 000026d5: JUMPDEST 000026d6: PUSH1 0x00 000026d8: DUP1 000026d9: SLOAD 000026da: PUSH1 0x40 000026dc: MLOAD 000026dd: PUSH1 0x01 000026df: PUSH1 0x01 000026e1: PUSH1 0xa0 000026e3: SHL 000026e4: SUB 000026e5: DUP1 000026e6: DUP6 000026e7: AND 000026e8: SWAP4 000026e9: SWAP3 000026ea: AND 000026eb: SWAP2 000026ec: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 0000270d: SWAP2 0000270e: LOG3 0000270f: PUSH1 0x00 00002711: DUP1 00002712: SLOAD 00002713: PUSH1 0x01 00002715: PUSH1 0x01 00002717: PUSH1 0xa0 00002719: SHL 0000271a: SUB 0000271b: NOT 0000271c: AND 0000271d: PUSH1 0x01 0000271f: PUSH1 0x01 00002721: PUSH1 0xa0 00002723: SHL 00002724: SUB 00002725: SWAP3 00002726: SWAP1 00002727: SWAP3 00002728: AND 00002729: SWAP2 0000272a: SWAP1 0000272b: SWAP2 0000272c: OR 0000272d: SWAP1 0000272e: SSTORE 0000272f: JUMP 00002730: JUMPDEST 00002731: PUSH1 0x00 00002733: PUSH2 0x2779 00002736: PUSH8 0x0de0b6b3a7640000 0000273f: PUSH2 0x074c 00002742: DUP6 00002743: PUSH2 0x276d 00002746: PUSH2 0x2755 00002749: DUP8 0000274a: DUP11 0000274b: PUSH4 0xffffffff 00002750: PUSH2 0x1e4a 00002753: AND 00002754: JUMP 00002755: JUMPDEST 00002756: PUSH2 0x074c 00002759: DUP11 0000275a: PUSH8 0x0de0b6b3a7640000 00002763: PUSH4 0xffffffff 00002768: PUSH2 0x2348 0000276b: AND 0000276c: JUMP 0000276d: JUMPDEST 0000276e: SWAP1 0000276f: PUSH4 0xffffffff 00002774: PUSH2 0x2348 00002777: AND 00002778: JUMP 00002779: JUMPDEST 0000277a: SWAP5 0000277b: SWAP4 0000277c: POP 0000277d: POP 0000277e: POP 0000277f: POP 00002780: JUMP 00002781: JUMPDEST 00002782: PUSH1 0x00 00002784: DUP2 00002785: DUP4 00002786: PUSH2 0x27a2 00002789: JUMPI 0000278a: PUSH1 0x40 0000278c: MLOAD 0000278d: PUSH3 0x461bcd 00002791: PUSH1 0xe5 00002793: SHL 00002794: DUP2 00002795: MSTORE 00002796: PUSH1 0x04 00002798: ADD 00002799: PUSH2 0x0568 0000279c: SWAP2 0000279d: SWAP1 0000279e: PUSH2 0x3224 000027a1: JUMP 000027a2: JUMPDEST 000027a3: POP 000027a4: PUSH1 0x00 000027a6: DUP4 000027a7: DUP6 000027a8: DUP2 000027a9: PUSH2 0x27ae 000027ac: JUMPI 000027ad: INVALID 000027ae: JUMPDEST 000027af: DIV 000027b0: SWAP6 000027b1: SWAP5 000027b2: POP 000027b3: POP 000027b4: POP 000027b5: POP 000027b6: POP 000027b7: JUMP 000027b8: JUMPDEST 000027b9: PUSH1 0x00 000027bb: DUP2 000027bc: DUP5 000027bd: DUP5 000027be: GT 000027bf: ISZERO 000027c0: PUSH2 0x27dc 000027c3: JUMPI 000027c4: PUSH1 0x40 000027c6: MLOAD 000027c7: PUSH3 0x461bcd 000027cb: PUSH1 0xe5 000027cd: SHL 000027ce: DUP2 000027cf: MSTORE 000027d0: PUSH1 0x04 000027d2: ADD 000027d3: PUSH2 0x0568 000027d6: SWAP2 000027d7: SWAP1 000027d8: PUSH2 0x3224 000027db: JUMP 000027dc: JUMPDEST 000027dd: POP 000027de: POP 000027df: POP 000027e0: SWAP1 000027e1: SUB 000027e2: SWAP1 000027e3: JUMP 000027e4: JUMPDEST 000027e5: PUSH1 0x40 000027e7: MLOAD 000027e8: DUP1 000027e9: PUSH1 0xc0 000027eb: ADD 000027ec: PUSH1 0x40 000027ee: MSTORE 000027ef: DUP1 000027f0: PUSH1 0x00 000027f2: PUSH1 0x01 000027f4: PUSH1 0x01 000027f6: PUSH1 0xa0 000027f8: SHL 000027f9: SUB 000027fa: AND 000027fb: DUP2 000027fc: MSTORE 000027fd: PUSH1 0x20 000027ff: ADD 00002800: PUSH1 0x00 00002802: PUSH1 0x01 00002804: PUSH1 0x01 00002806: PUSH1 0xa0 00002808: SHL 00002809: SUB 0000280a: AND 0000280b: DUP2 0000280c: MSTORE 0000280d: PUSH1 0x20 0000280f: ADD 00002810: PUSH1 0x00 00002812: PUSH1 0x01 00002814: PUSH1 0x01 00002816: PUSH1 0xa0 00002818: SHL 00002819: SUB 0000281a: AND 0000281b: DUP2 0000281c: MSTORE 0000281d: PUSH1 0x20 0000281f: ADD 00002820: PUSH1 0x00 00002822: DUP2 00002823: MSTORE 00002824: PUSH1 0x20 00002826: ADD 00002827: PUSH1 0x00 00002829: DUP2 0000282a: MSTORE 0000282b: PUSH1 0x20 0000282d: ADD 0000282e: PUSH1 0x00 00002830: DUP2 00002831: MSTORE 00002832: POP 00002833: SWAP1 00002834: JUMP 00002835: JUMPDEST 00002836: PUSH1 0x40 00002838: MLOAD 00002839: DUP1 0000283a: PUSH1 0xe0 0000283c: ADD 0000283d: PUSH1 0x40 0000283f: MSTORE 00002840: DUP1 00002841: PUSH1 0x00 00002843: PUSH1 0x01 00002845: PUSH1 0x01 00002847: PUSH1 0xa0 00002849: SHL 0000284a: SUB 0000284b: AND 0000284c: DUP2 0000284d: MSTORE 0000284e: PUSH1 0x20 00002850: ADD 00002851: PUSH1 0x00 00002853: DUP2 00002854: MSTORE 00002855: PUSH1 0x20 00002857: ADD 00002858: PUSH1 0x00 0000285a: DUP2 0000285b: MSTORE 0000285c: PUSH1 0x20 0000285e: ADD 0000285f: PUSH1 0x00 00002861: DUP2 00002862: MSTORE 00002863: PUSH1 0x20 00002865: ADD 00002866: PUSH1 0x00 00002868: DUP2 00002869: MSTORE 0000286a: PUSH1 0x20 0000286c: ADD 0000286d: PUSH1 0x00 0000286f: DUP2 00002870: MSTORE 00002871: PUSH1 0x20 00002873: ADD 00002874: PUSH1 0x00 00002876: DUP2 00002877: MSTORE 00002878: POP 00002879: SWAP1 0000287a: JUMP 0000287b: JUMPDEST 0000287c: DUP1 0000287d: CALLDATALOAD 0000287e: PUSH2 0x1e44 00002881: DUP2 00002882: PUSH2 0x33e3 00002885: JUMP 00002886: JUMPDEST 00002887: DUP1 00002888: MLOAD 00002889: PUSH2 0x1e44 0000288c: DUP2 0000288d: PUSH2 0x33e3 00002890: JUMP 00002891: JUMPDEST 00002892: PUSH1 0x00 00002894: DUP3 00002895: PUSH1 0x1f 00002897: DUP4 00002898: ADD 00002899: SLT 0000289a: PUSH2 0x28a2 0000289d: JUMPI 0000289e: PUSH1 0x00 000028a0: DUP1 000028a1: REVERT 000028a2: JUMPDEST 000028a3: DUP2 000028a4: MLOAD 000028a5: PUSH2 0x28b5 000028a8: PUSH2 0x28b0 000028ab: DUP3 000028ac: PUSH2 0x3339 000028af: JUMP 000028b0: JUMPDEST 000028b1: PUSH2 0x3312 000028b4: JUMP 000028b5: JUMPDEST 000028b6: SWAP2 000028b7: POP 000028b8: DUP2 000028b9: DUP2 000028ba: DUP4 000028bb: MSTORE 000028bc: PUSH1 0x20 000028be: DUP5 000028bf: ADD 000028c0: SWAP4 000028c1: POP 000028c2: PUSH1 0x20 000028c4: DUP2 000028c5: ADD 000028c6: SWAP1 000028c7: POP 000028c8: DUP4 000028c9: DUP6 000028ca: PUSH1 0x20 000028cc: DUP5 000028cd: MUL 000028ce: DUP3 000028cf: ADD 000028d0: GT 000028d1: ISZERO 000028d2: PUSH2 0x28da 000028d5: JUMPI 000028d6: PUSH1 0x00 000028d8: DUP1 000028d9: REVERT 000028da: JUMPDEST 000028db: PUSH1 0x00 000028dd: JUMPDEST 000028de: DUP4 000028df: DUP2 000028e0: LT 000028e1: ISZERO 000028e2: PUSH2 0x2906 000028e5: JUMPI 000028e6: DUP2 000028e7: PUSH2 0x28f0 000028ea: DUP9 000028eb: DUP3 000028ec: PUSH2 0x2886 000028ef: JUMP 000028f0: JUMPDEST 000028f1: DUP5 000028f2: MSTORE 000028f3: POP 000028f4: PUSH1 0x20 000028f6: SWAP3 000028f7: DUP4 000028f8: ADD 000028f9: SWAP3 000028fa: SWAP2 000028fb: SWAP1 000028fc: SWAP2 000028fd: ADD 000028fe: SWAP1 000028ff: PUSH1 0x01 00002901: ADD 00002902: PUSH2 0x28dd 00002905: JUMP 00002906: JUMPDEST 00002907: POP 00002908: POP 00002909: POP 0000290a: POP 0000290b: SWAP3 0000290c: SWAP2 0000290d: POP 0000290e: POP 0000290f: JUMP 00002910: JUMPDEST 00002911: PUSH1 0x00 00002913: DUP3 00002914: PUSH1 0x1f 00002916: DUP4 00002917: ADD 00002918: SLT 00002919: PUSH2 0x2921 0000291c: JUMPI 0000291d: PUSH1 0x00 0000291f: DUP1 00002920: REVERT 00002921: JUMPDEST 00002922: DUP2 00002923: CALLDATALOAD 00002924: PUSH2 0x292f 00002927: PUSH2 0x28b0 0000292a: DUP3 0000292b: PUSH2 0x3339 0000292e: JUMP 0000292f: JUMPDEST 00002930: DUP2 00002931: DUP2 00002932: MSTORE 00002933: PUSH1 0x20 00002935: SWAP4 00002936: DUP5 00002937: ADD 00002938: SWAP4 00002939: SWAP1 0000293a: SWAP3 0000293b: POP 0000293c: DUP3 0000293d: ADD 0000293e: DUP4 0000293f: PUSH1 0x00 00002941: JUMPDEST 00002942: DUP4 00002943: DUP2 00002944: LT 00002945: ISZERO 00002946: PUSH2 0x2906 00002949: JUMPI 0000294a: DUP2 0000294b: CALLDATALOAD 0000294c: DUP7 0000294d: ADD 0000294e: PUSH2 0x2957 00002951: DUP9 00002952: DUP3 00002953: PUSH2 0x296d 00002956: JUMP 00002957: JUMPDEST 00002958: DUP5 00002959: MSTORE 0000295a: POP 0000295b: PUSH1 0x20 0000295d: SWAP3 0000295e: DUP4 0000295f: ADD 00002960: SWAP3 00002961: SWAP2 00002962: SWAP1 00002963: SWAP2 00002964: ADD 00002965: SWAP1 00002966: PUSH1 0x01 00002968: ADD 00002969: PUSH2 0x2941 0000296c: JUMP 0000296d: JUMPDEST 0000296e: PUSH1 0x00 00002970: DUP3 00002971: PUSH1 0x1f 00002973: DUP4 00002974: ADD 00002975: SLT 00002976: PUSH2 0x297e 00002979: JUMPI 0000297a: PUSH1 0x00 0000297c: DUP1 0000297d: REVERT 0000297e: JUMPDEST 0000297f: DUP2 00002980: CALLDATALOAD 00002981: PUSH2 0x298c 00002984: PUSH2 0x28b0 00002987: DUP3 00002988: PUSH2 0x3339 0000298b: JUMP 0000298c: JUMPDEST 0000298d: SWAP2 0000298e: POP 0000298f: DUP2 00002990: DUP2 00002991: DUP4 00002992: MSTORE 00002993: PUSH1 0x20 00002995: DUP5 00002996: ADD 00002997: SWAP4 00002998: POP 00002999: PUSH1 0x20 0000299b: DUP2 0000299c: ADD 0000299d: SWAP1 0000299e: POP 0000299f: DUP4 000029a0: DUP6 000029a1: PUSH1 0xc0 000029a3: DUP5 000029a4: MUL 000029a5: DUP3 000029a6: ADD 000029a7: GT 000029a8: ISZERO 000029a9: PUSH2 0x29b1 000029ac: JUMPI 000029ad: PUSH1 0x00 000029af: DUP1 000029b0: REVERT 000029b1: JUMPDEST 000029b2: PUSH1 0x00 000029b4: JUMPDEST 000029b5: DUP4 000029b6: DUP2 000029b7: LT 000029b8: ISZERO 000029b9: PUSH2 0x2906 000029bc: JUMPI 000029bd: DUP2 000029be: PUSH2 0x29c7 000029c1: DUP9 000029c2: DUP3 000029c3: PUSH2 0x2a67 000029c6: JUMP 000029c7: JUMPDEST 000029c8: DUP5 000029c9: MSTORE 000029ca: POP 000029cb: PUSH1 0x20 000029cd: SWAP1 000029ce: SWAP3 000029cf: ADD 000029d0: SWAP2 000029d1: PUSH1 0xc0 000029d3: SWAP2 000029d4: SWAP1 000029d5: SWAP2 000029d6: ADD 000029d7: SWAP1 000029d8: PUSH1 0x01 000029da: ADD 000029db: PUSH2 0x29b4 000029de: JUMP 000029df: JUMPDEST 000029e0: PUSH1 0x00 000029e2: DUP3 000029e3: PUSH1 0x1f 000029e5: DUP4 000029e6: ADD 000029e7: SLT 000029e8: PUSH2 0x29f0 000029eb: JUMPI 000029ec: PUSH1 0x00 000029ee: DUP1 000029ef: REVERT 000029f0: JUMPDEST 000029f1: DUP2 000029f2: CALLDATALOAD 000029f3: PUSH2 0x29fe 000029f6: PUSH2 0x28b0 000029f9: DUP3 000029fa: PUSH2 0x3339 000029fd: JUMP 000029fe: JUMPDEST 000029ff: SWAP2 00002a00: POP 00002a01: DUP2 00002a02: DUP2 00002a03: DUP4 00002a04: MSTORE 00002a05: PUSH1 0x20 00002a07: DUP5 00002a08: ADD 00002a09: SWAP4 00002a0a: POP 00002a0b: PUSH1 0x20 00002a0d: DUP2 00002a0e: ADD 00002a0f: SWAP1 00002a10: POP 00002a11: DUP4 00002a12: DUP6 00002a13: PUSH1 0xc0 00002a15: DUP5 00002a16: MUL 00002a17: DUP3 00002a18: ADD 00002a19: GT 00002a1a: ISZERO 00002a1b: PUSH2 0x2a23 00002a1e: JUMPI 00002a1f: PUSH1 0x00 00002a21: DUP1 00002a22: REVERT 00002a23: JUMPDEST 00002a24: PUSH1 0x00 00002a26: JUMPDEST 00002a27: DUP4 00002a28: DUP2 00002a29: LT 00002a2a: ISZERO 00002a2b: PUSH2 0x2906 00002a2e: JUMPI 00002a2f: DUP2 00002a30: PUSH2 0x2a39 00002a33: DUP9 00002a34: DUP3 00002a35: PUSH2 0x2a67 00002a38: JUMP 00002a39: JUMPDEST 00002a3a: DUP5 00002a3b: MSTORE 00002a3c: POP 00002a3d: PUSH1 0x20 00002a3f: SWAP1 00002a40: SWAP3 00002a41: ADD 00002a42: SWAP2 00002a43: PUSH1 0xc0 00002a45: SWAP2 00002a46: SWAP1 00002a47: SWAP2 00002a48: ADD 00002a49: SWAP1 00002a4a: PUSH1 0x01 00002a4c: ADD 00002a4d: PUSH2 0x2a26 00002a50: JUMP 00002a51: JUMPDEST 00002a52: DUP1 00002a53: MLOAD 00002a54: PUSH2 0x1e44 00002a57: DUP2 00002a58: PUSH2 0x33f7 00002a5b: JUMP 00002a5c: JUMPDEST 00002a5d: DUP1 00002a5e: CALLDATALOAD 00002a5f: PUSH2 0x1e44 00002a62: DUP2 00002a63: PUSH2 0x3400 00002a66: JUMP 00002a67: JUMPDEST 00002a68: PUSH1 0x00 00002a6a: PUSH1 0xc0 00002a6c: DUP3 00002a6d: DUP5 00002a6e: SUB 00002a6f: SLT 00002a70: ISZERO 00002a71: PUSH2 0x2a79 00002a74: JUMPI 00002a75: PUSH1 0x00 00002a77: DUP1 00002a78: REVERT 00002a79: JUMPDEST 00002a7a: PUSH2 0x2a83 00002a7d: PUSH1 0xc0 00002a7f: PUSH2 0x3312 00002a82: JUMP 00002a83: JUMPDEST 00002a84: SWAP1 00002a85: POP 00002a86: PUSH1 0x00 00002a88: PUSH2 0x2a91 00002a8b: DUP5 00002a8c: DUP5 00002a8d: PUSH2 0x287b 00002a90: JUMP 00002a91: JUMPDEST 00002a92: DUP3 00002a93: MSTORE 00002a94: POP 00002a95: PUSH1 0x20 00002a97: PUSH2 0x2aa2 00002a9a: DUP5 00002a9b: DUP5 00002a9c: DUP4 00002a9d: ADD 00002a9e: PUSH2 0x287b 00002aa1: JUMP 00002aa2: JUMPDEST 00002aa3: PUSH1 0x20 00002aa5: DUP4 00002aa6: ADD 00002aa7: MSTORE 00002aa8: POP 00002aa9: PUSH1 0x40 00002aab: PUSH2 0x2ab6 00002aae: DUP5 00002aaf: DUP3 00002ab0: DUP6 00002ab1: ADD 00002ab2: PUSH2 0x287b 00002ab5: JUMP 00002ab6: JUMPDEST 00002ab7: PUSH1 0x40 00002ab9: DUP4 00002aba: ADD 00002abb: MSTORE 00002abc: POP 00002abd: PUSH1 0x60 00002abf: PUSH2 0x2aca 00002ac2: DUP5 00002ac3: DUP3 00002ac4: DUP6 00002ac5: ADD 00002ac6: PUSH2 0x2afe 00002ac9: JUMP 00002aca: JUMPDEST 00002acb: PUSH1 0x60 00002acd: DUP4 00002ace: ADD 00002acf: MSTORE 00002ad0: POP 00002ad1: PUSH1 0x80 00002ad3: PUSH2 0x2ade 00002ad6: DUP5 00002ad7: DUP3 00002ad8: DUP6 00002ad9: ADD 00002ada: PUSH2 0x2afe 00002add: JUMP 00002ade: JUMPDEST 00002adf: PUSH1 0x80 00002ae1: DUP4 00002ae2: ADD 00002ae3: MSTORE 00002ae4: POP 00002ae5: PUSH1 0xa0 00002ae7: PUSH2 0x2af2 00002aea: DUP5 00002aeb: DUP3 00002aec: DUP6 00002aed: ADD 00002aee: PUSH2 0x2afe 00002af1: JUMP 00002af2: JUMPDEST 00002af3: PUSH1 0xa0 00002af5: DUP4 00002af6: ADD 00002af7: MSTORE 00002af8: POP 00002af9: SWAP3 00002afa: SWAP2 00002afb: POP 00002afc: POP 00002afd: JUMP 00002afe: JUMPDEST 00002aff: DUP1 00002b00: CALLDATALOAD 00002b01: PUSH2 0x1e44 00002b04: DUP2 00002b05: PUSH2 0x3409 00002b08: JUMP 00002b09: JUMPDEST 00002b0a: DUP1 00002b0b: MLOAD 00002b0c: PUSH2 0x1e44 00002b0f: DUP2 00002b10: PUSH2 0x3409 00002b13: JUMP 00002b14: JUMPDEST 00002b15: PUSH1 0x00 00002b17: PUSH1 0x20 00002b19: DUP3 00002b1a: DUP5 00002b1b: SUB 00002b1c: SLT 00002b1d: ISZERO 00002b1e: PUSH2 0x2b26 00002b21: JUMPI 00002b22: PUSH1 0x00 00002b24: DUP1 00002b25: REVERT 00002b26: JUMPDEST 00002b27: PUSH1 0x00 00002b29: PUSH2 0x2779 00002b2c: DUP5 00002b2d: DUP5 00002b2e: PUSH2 0x287b 00002b31: JUMP 00002b32: JUMPDEST 00002b33: PUSH1 0x00 00002b35: DUP1 00002b36: PUSH1 0x00 00002b38: DUP1 00002b39: PUSH1 0x80 00002b3b: DUP6 00002b3c: DUP8 00002b3d: SUB 00002b3e: SLT 00002b3f: ISZERO 00002b40: PUSH2 0x2b48 00002b43: JUMPI 00002b44: PUSH1 0x00 00002b46: DUP1 00002b47: REVERT 00002b48: JUMPDEST 00002b49: PUSH1 0x00 00002b4b: PUSH2 0x2b54 00002b4e: DUP8 00002b4f: DUP8 00002b50: PUSH2 0x287b 00002b53: JUMP 00002b54: JUMPDEST 00002b55: SWAP5 00002b56: POP 00002b57: POP 00002b58: PUSH1 0x20 00002b5a: PUSH2 0x2b65 00002b5d: DUP8 00002b5e: DUP3 00002b5f: DUP9 00002b60: ADD 00002b61: PUSH2 0x287b 00002b64: JUMP 00002b65: JUMPDEST 00002b66: SWAP4 00002b67: POP 00002b68: POP 00002b69: PUSH1 0x40 00002b6b: PUSH2 0x2b76 00002b6e: DUP8 00002b6f: DUP3 00002b70: DUP9 00002b71: ADD 00002b72: PUSH2 0x2afe 00002b75: JUMP 00002b76: JUMPDEST 00002b77: SWAP3 00002b78: POP 00002b79: POP 00002b7a: PUSH1 0x60 00002b7c: PUSH2 0x2b87 00002b7f: DUP8 00002b80: DUP3 00002b81: DUP9 00002b82: ADD 00002b83: PUSH2 0x2afe 00002b86: JUMP 00002b87: JUMPDEST 00002b88: SWAP2 00002b89: POP 00002b8a: POP 00002b8b: SWAP3 00002b8c: SWAP6 00002b8d: SWAP2 00002b8e: SWAP5 00002b8f: POP 00002b90: SWAP3 00002b91: POP 00002b92: JUMP 00002b93: JUMPDEST 00002b94: PUSH1 0x00 00002b96: PUSH1 0x20 00002b98: DUP3 00002b99: DUP5 00002b9a: SUB 00002b9b: SLT 00002b9c: ISZERO 00002b9d: PUSH2 0x2ba5 00002ba0: JUMPI 00002ba1: PUSH1 0x00 00002ba3: DUP1 00002ba4: REVERT 00002ba5: JUMPDEST 00002ba6: DUP2 00002ba7: MLOAD 00002ba8: PUSH8 0xffffffffffffffff 00002bb1: DUP2 00002bb2: GT 00002bb3: ISZERO 00002bb4: PUSH2 0x2bbc 00002bb7: JUMPI 00002bb8: PUSH1 0x00 00002bba: DUP1 00002bbb: REVERT 00002bbc: JUMPDEST 00002bbd: PUSH2 0x2779 00002bc0: DUP5 00002bc1: DUP3 00002bc2: DUP6 00002bc3: ADD 00002bc4: PUSH2 0x2891 00002bc7: JUMP 00002bc8: JUMPDEST 00002bc9: PUSH1 0x00 00002bcb: DUP1 00002bcc: PUSH1 0x00 00002bce: DUP1 00002bcf: PUSH1 0x80 00002bd1: DUP6 00002bd2: DUP8 00002bd3: SUB 00002bd4: SLT 00002bd5: ISZERO 00002bd6: PUSH2 0x2bde 00002bd9: JUMPI 00002bda: PUSH1 0x00 00002bdc: DUP1 00002bdd: REVERT 00002bde: JUMPDEST 00002bdf: DUP5 00002be0: CALLDATALOAD 00002be1: PUSH8 0xffffffffffffffff 00002bea: DUP2 00002beb: GT 00002bec: ISZERO 00002bed: PUSH2 0x2bf5 00002bf0: JUMPI 00002bf1: PUSH1 0x00 00002bf3: DUP1 00002bf4: REVERT 00002bf5: JUMPDEST 00002bf6: PUSH2 0x2c01 00002bf9: DUP8 00002bfa: DUP3 00002bfb: DUP9 00002bfc: ADD 00002bfd: PUSH2 0x2910 00002c00: JUMP 00002c01: JUMPDEST 00002c02: SWAP5 00002c03: POP 00002c04: POP 00002c05: PUSH1 0x20 00002c07: PUSH2 0x2c12 00002c0a: DUP8 00002c0b: DUP3 00002c0c: DUP9 00002c0d: ADD 00002c0e: PUSH2 0x2a5c 00002c11: JUMP 00002c12: JUMPDEST 00002c13: SWAP4 00002c14: POP 00002c15: POP 00002c16: PUSH1 0x40 00002c18: PUSH2 0x2b76 00002c1b: DUP8 00002c1c: DUP3 00002c1d: DUP9 00002c1e: ADD 00002c1f: PUSH2 0x2a5c 00002c22: JUMP 00002c23: JUMPDEST 00002c24: PUSH1 0x00 00002c26: DUP1 00002c27: PUSH1 0x00 00002c29: DUP1 00002c2a: PUSH1 0x00 00002c2c: PUSH1 0xa0 00002c2e: DUP7 00002c2f: DUP9 00002c30: SUB 00002c31: SLT 00002c32: ISZERO 00002c33: PUSH2 0x2c3b 00002c36: JUMPI 00002c37: PUSH1 0x00 00002c39: DUP1 00002c3a: REVERT 00002c3b: JUMPDEST 00002c3c: DUP6 00002c3d: CALLDATALOAD 00002c3e: PUSH8 0xffffffffffffffff 00002c47: DUP2 00002c48: GT 00002c49: ISZERO 00002c4a: PUSH2 0x2c52 00002c4d: JUMPI 00002c4e: PUSH1 0x00 00002c50: DUP1 00002c51: REVERT 00002c52: JUMPDEST 00002c53: PUSH2 0x2c5e 00002c56: DUP9 00002c57: DUP3 00002c58: DUP10 00002c59: ADD 00002c5a: PUSH2 0x2910 00002c5d: JUMP 00002c5e: JUMPDEST 00002c5f: SWAP6 00002c60: POP 00002c61: POP 00002c62: PUSH1 0x20 00002c64: PUSH2 0x2c6f 00002c67: DUP9 00002c68: DUP3 00002c69: DUP10 00002c6a: ADD 00002c6b: PUSH2 0x2a5c 00002c6e: JUMP 00002c6f: JUMPDEST 00002c70: SWAP5 00002c71: POP 00002c72: POP 00002c73: PUSH1 0x40 00002c75: PUSH2 0x2c80 00002c78: DUP9 00002c79: DUP3 00002c7a: DUP10 00002c7b: ADD 00002c7c: PUSH2 0x2a5c 00002c7f: JUMP 00002c80: JUMPDEST 00002c81: SWAP4 00002c82: POP 00002c83: POP 00002c84: PUSH1 0x60 00002c86: PUSH2 0x2c91 00002c89: DUP9 00002c8a: DUP3 00002c8b: DUP10 00002c8c: ADD 00002c8d: PUSH2 0x2afe 00002c90: JUMP 00002c91: JUMPDEST 00002c92: SWAP3 00002c93: POP 00002c94: POP 00002c95: PUSH1 0x80 00002c97: PUSH2 0x2ca2 00002c9a: DUP9 00002c9b: DUP3 00002c9c: DUP10 00002c9d: ADD 00002c9e: PUSH2 0x2afe 00002ca1: JUMP 00002ca2: JUMPDEST 00002ca3: SWAP2 00002ca4: POP 00002ca5: POP 00002ca6: SWAP3 00002ca7: SWAP6 00002ca8: POP 00002ca9: SWAP3 00002caa: SWAP6 00002cab: SWAP1 00002cac: SWAP4 00002cad: POP 00002cae: JUMP 00002caf: JUMPDEST 00002cb0: PUSH1 0x00 00002cb2: DUP1 00002cb3: PUSH1 0x00 00002cb5: DUP1 00002cb6: PUSH1 0x80 00002cb8: DUP6 00002cb9: DUP8 00002cba: SUB 00002cbb: SLT 00002cbc: ISZERO 00002cbd: PUSH2 0x2cc5 00002cc0: JUMPI 00002cc1: PUSH1 0x00 00002cc3: DUP1 00002cc4: REVERT 00002cc5: JUMPDEST 00002cc6: DUP5 00002cc7: CALLDATALOAD 00002cc8: PUSH8 0xffffffffffffffff 00002cd1: DUP2 00002cd2: GT 00002cd3: ISZERO 00002cd4: PUSH2 0x2cdc 00002cd7: JUMPI 00002cd8: PUSH1 0x00 00002cda: DUP1 00002cdb: REVERT 00002cdc: JUMPDEST 00002cdd: PUSH2 0x2c01 00002ce0: DUP8 00002ce1: DUP3 00002ce2: DUP9 00002ce3: ADD 00002ce4: PUSH2 0x29df 00002ce7: JUMP 00002ce8: JUMPDEST 00002ce9: PUSH1 0x00 00002ceb: DUP1 00002cec: PUSH1 0x00 00002cee: DUP1 00002cef: PUSH1 0x00 00002cf1: PUSH1 0xa0 00002cf3: DUP7 00002cf4: DUP9 00002cf5: SUB 00002cf6: SLT 00002cf7: ISZERO 00002cf8: PUSH2 0x2d00 00002cfb: JUMPI 00002cfc: PUSH1 0x00 00002cfe: DUP1 00002cff: REVERT 00002d00: JUMPDEST 00002d01: DUP6 00002d02: CALLDATALOAD 00002d03: PUSH8 0xffffffffffffffff 00002d0c: DUP2 00002d0d: GT 00002d0e: ISZERO 00002d0f: PUSH2 0x2d17 00002d12: JUMPI 00002d13: PUSH1 0x00 00002d15: DUP1 00002d16: REVERT 00002d17: JUMPDEST 00002d18: PUSH2 0x2c5e 00002d1b: DUP9 00002d1c: DUP3 00002d1d: DUP10 00002d1e: ADD 00002d1f: PUSH2 0x29df 00002d22: JUMP 00002d23: JUMPDEST 00002d24: PUSH1 0x00 00002d26: PUSH1 0x20 00002d28: DUP3 00002d29: DUP5 00002d2a: SUB 00002d2b: SLT 00002d2c: ISZERO 00002d2d: PUSH2 0x2d35 00002d30: JUMPI 00002d31: PUSH1 0x00 00002d33: DUP1 00002d34: REVERT 00002d35: JUMPDEST 00002d36: PUSH1 0x00 00002d38: PUSH2 0x2779 00002d3b: DUP5 00002d3c: DUP5 00002d3d: PUSH2 0x2a51 00002d40: JUMP 00002d41: JUMPDEST 00002d42: PUSH1 0x00 00002d44: DUP1 00002d45: PUSH1 0x00 00002d47: DUP1 00002d48: PUSH1 0x00 00002d4a: PUSH1 0xa0 00002d4c: DUP7 00002d4d: DUP9 00002d4e: SUB 00002d4f: SLT 00002d50: ISZERO 00002d51: PUSH2 0x2d59 00002d54: JUMPI 00002d55: PUSH1 0x00 00002d57: DUP1 00002d58: REVERT 00002d59: JUMPDEST 00002d5a: PUSH1 0x00 00002d5c: PUSH2 0x2d65 00002d5f: DUP9 00002d60: DUP9 00002d61: PUSH2 0x2a5c 00002d64: JUMP 00002d65: JUMPDEST 00002d66: SWAP6 00002d67: POP 00002d68: POP 00002d69: PUSH1 0x20 00002d6b: PUSH2 0x2d76 00002d6e: DUP9 00002d6f: DUP3 00002d70: DUP10 00002d71: ADD 00002d72: PUSH2 0x2a5c 00002d75: JUMP 00002d76: JUMPDEST 00002d77: SWAP5 00002d78: POP 00002d79: POP 00002d7a: PUSH1 0x40 00002d7c: PUSH2 0x2c80 00002d7f: DUP9 00002d80: DUP3 00002d81: DUP10 00002d82: ADD 00002d83: PUSH2 0x2afe 00002d86: JUMP 00002d87: JUMPDEST 00002d88: PUSH1 0x00 00002d8a: PUSH1 0x20 00002d8c: DUP3 00002d8d: DUP5 00002d8e: SUB 00002d8f: SLT 00002d90: ISZERO 00002d91: PUSH2 0x2d99 00002d94: JUMPI 00002d95: PUSH1 0x00 00002d97: DUP1 00002d98: REVERT 00002d99: JUMPDEST 00002d9a: PUSH1 0x00 00002d9c: PUSH2 0x2779 00002d9f: DUP5 00002da0: DUP5 00002da1: PUSH2 0x2b09 00002da4: JUMP 00002da5: JUMPDEST 00002da6: PUSH1 0x00 00002da8: DUP1 00002da9: PUSH1 0x40 00002dab: DUP4 00002dac: DUP6 00002dad: SUB 00002dae: SLT 00002daf: ISZERO 00002db0: PUSH2 0x2db8 00002db3: JUMPI 00002db4: PUSH1 0x00 00002db6: DUP1 00002db7: REVERT 00002db8: JUMPDEST 00002db9: PUSH1 0x00 00002dbb: PUSH2 0x2dc4 00002dbe: DUP6 00002dbf: DUP6 00002dc0: PUSH2 0x2b09 00002dc3: JUMP 00002dc4: JUMPDEST 00002dc5: SWAP3 00002dc6: POP 00002dc7: POP 00002dc8: PUSH1 0x20 00002dca: PUSH2 0x2dd5 00002dcd: DUP6 00002dce: DUP3 00002dcf: DUP7 00002dd0: ADD 00002dd1: PUSH2 0x2b09 00002dd4: JUMP 00002dd5: JUMPDEST 00002dd6: SWAP2 00002dd7: POP 00002dd8: POP 00002dd9: SWAP3 00002dda: POP 00002ddb: SWAP3 00002ddc: SWAP1 00002ddd: POP 00002dde: JUMP 00002ddf: JUMPDEST 00002de0: PUSH1 0x00 00002de2: PUSH2 0x2deb 00002de5: DUP4 00002de6: DUP4 00002de7: PUSH2 0x3062 00002dea: JUMP 00002deb: JUMPDEST 00002dec: POP 00002ded: POP 00002dee: PUSH1 0xc0 00002df0: ADD 00002df1: SWAP1 00002df2: JUMP 00002df3: JUMPDEST 00002df4: PUSH2 0x2dfc 00002df7: DUP2 00002df8: PUSH2 0x3397 00002dfb: JUMP 00002dfc: JUMPDEST 00002dfd: DUP3 00002dfe: MSTORE 00002dff: POP 00002e00: POP 00002e01: JUMP 00002e02: JUMPDEST 00002e03: PUSH2 0x2dfc 00002e06: DUP2 00002e07: PUSH2 0x336d 00002e0a: JUMP 00002e0b: JUMPDEST 00002e0c: PUSH1 0x00 00002e0e: PUSH2 0x2e16 00002e11: DUP3 00002e12: PUSH2 0x3360 00002e15: JUMP 00002e16: JUMPDEST 00002e17: PUSH2 0x2e20 00002e1a: DUP2 00002e1b: DUP6 00002e1c: PUSH2 0x3364 00002e1f: JUMP 00002e20: JUMPDEST 00002e21: SWAP4 00002e22: POP 00002e23: PUSH2 0x2e2b 00002e26: DUP4 00002e27: PUSH2 0x335a 00002e2a: JUMP 00002e2b: JUMPDEST 00002e2c: DUP1 00002e2d: PUSH1 0x00 00002e2f: JUMPDEST 00002e30: DUP4 00002e31: DUP2 00002e32: LT 00002e33: ISZERO 00002e34: PUSH2 0x2e59 00002e37: JUMPI 00002e38: DUP2 00002e39: MLOAD 00002e3a: PUSH2 0x2e43 00002e3d: DUP9 00002e3e: DUP3 00002e3f: PUSH2 0x2ddf 00002e42: JUMP 00002e43: JUMPDEST 00002e44: SWAP8 00002e45: POP 00002e46: PUSH2 0x2e4e 00002e49: DUP4 00002e4a: PUSH2 0x335a 00002e4d: JUMP 00002e4e: JUMPDEST 00002e4f: SWAP3 00002e50: POP 00002e51: POP 00002e52: PUSH1 0x01 00002e54: ADD 00002e55: PUSH2 0x2e2f 00002e58: JUMP 00002e59: JUMPDEST 00002e5a: POP 00002e5b: SWAP5 00002e5c: SWAP6 00002e5d: SWAP5 00002e5e: POP 00002e5f: POP 00002e60: POP 00002e61: POP 00002e62: POP 00002e63: JUMP 00002e64: JUMPDEST 00002e65: PUSH2 0x2dfc 00002e68: DUP2 00002e69: PUSH2 0x3378 00002e6c: JUMP 00002e6d: JUMPDEST 00002e6e: PUSH2 0x2dfc 00002e71: DUP2 00002e72: PUSH2 0x33a2 00002e75: JUMP 00002e76: JUMPDEST 00002e77: PUSH1 0x00 00002e79: PUSH2 0x2e81 00002e7c: DUP3 00002e7d: PUSH2 0x3360 00002e80: JUMP 00002e81: JUMPDEST 00002e82: PUSH2 0x2e8b 00002e85: DUP2 00002e86: DUP6 00002e87: PUSH2 0x3364 00002e8a: JUMP 00002e8b: JUMPDEST 00002e8c: SWAP4 00002e8d: POP 00002e8e: PUSH2 0x2e9b 00002e91: DUP2 00002e92: DUP6 00002e93: PUSH1 0x20 00002e95: DUP7 00002e96: ADD 00002e97: PUSH2 0x33ad 00002e9a: JUMP 00002e9b: JUMPDEST 00002e9c: PUSH2 0x2ea4 00002e9f: DUP2 00002ea0: PUSH2 0x33d9 00002ea3: JUMP 00002ea4: JUMPDEST 00002ea5: SWAP1 00002ea6: SWAP4 00002ea7: ADD 00002ea8: SWAP4 00002ea9: SWAP3 00002eaa: POP 00002eab: POP 00002eac: POP 00002ead: JUMP 00002eae: JUMPDEST 00002eaf: PUSH1 0x00 00002eb1: PUSH2 0x2ebb 00002eb4: PUSH1 0x26 00002eb6: DUP4 00002eb7: PUSH2 0x3364 00002eba: JUMP 00002ebb: JUMPDEST 00002ebc: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061 00002edd: DUP2 00002ede: MSTORE 00002edf: PUSH6 0x646472657373 00002ee6: PUSH1 0xd0 00002ee8: SHL 00002ee9: PUSH1 0x20 00002eeb: DUP3 00002eec: ADD 00002eed: MSTORE 00002eee: PUSH1 0x40 00002ef0: ADD 00002ef1: SWAP3 00002ef2: SWAP2 00002ef3: POP 00002ef4: POP 00002ef5: JUMP 00002ef6: JUMPDEST 00002ef7: PUSH1 0x00 00002ef9: PUSH2 0x2f03 00002efc: PUSH1 0x1b 00002efe: DUP4 00002eff: PUSH2 0x3364 00002f02: JUMP 00002f03: JUMPDEST 00002f04: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000 00002f25: DUP2 00002f26: MSTORE 00002f27: PUSH1 0x20 00002f29: ADD 00002f2a: SWAP3 00002f2b: SWAP2 00002f2c: POP 00002f2d: POP 00002f2e: JUMP 00002f2f: JUMPDEST 00002f30: PUSH1 0x00 00002f32: PUSH2 0x2f3c 00002f35: PUSH1 0x0d 00002f37: DUP4 00002f38: PUSH2 0x3364 00002f3b: JUMP 00002f3c: JUMPDEST 00002f3d: PUSH13 0x11549497d31253525517d3d555 00002f4b: PUSH1 0x9a 00002f4d: SHL 00002f4e: DUP2 00002f4f: MSTORE 00002f50: PUSH1 0x20 00002f52: ADD 00002f53: SWAP3 00002f54: SWAP2 00002f55: POP 00002f56: POP 00002f57: JUMP 00002f58: JUMPDEST 00002f59: PUSH1 0x00 00002f5b: PUSH2 0x2f65 00002f5e: PUSH1 0x0c 00002f60: DUP4 00002f61: PUSH2 0x3364 00002f64: JUMP 00002f65: JUMPDEST 00002f66: PUSH12 0x22a9292fa624a6a4aa2fa4a7 00002f73: PUSH1 0xa1 00002f75: SHL 00002f76: DUP2 00002f77: MSTORE 00002f78: PUSH1 0x20 00002f7a: ADD 00002f7b: SWAP3 00002f7c: SWAP2 00002f7d: POP 00002f7e: POP 00002f7f: JUMP 00002f80: JUMPDEST 00002f81: PUSH1 0x00 00002f83: PUSH2 0x2f8d 00002f86: PUSH1 0x21 00002f88: DUP4 00002f89: PUSH2 0x3364 00002f8c: JUMP 00002f8d: JUMPDEST 00002f8e: PUSH32 0x536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f 00002faf: DUP2 00002fb0: MSTORE 00002fb1: PUSH1 0x77 00002fb3: PUSH1 0xf8 00002fb5: SHL 00002fb6: PUSH1 0x20 00002fb8: DUP3 00002fb9: ADD 00002fba: MSTORE 00002fbb: PUSH1 0x40 00002fbd: ADD 00002fbe: SWAP3 00002fbf: SWAP2 00002fc0: POP 00002fc1: POP 00002fc2: JUMP 00002fc3: JUMPDEST 00002fc4: PUSH1 0x00 00002fc6: PUSH2 0x2fd0 00002fc9: PUSH1 0x20 00002fcb: DUP4 00002fcc: PUSH2 0x3364 00002fcf: JUMP 00002fd0: JUMPDEST 00002fd1: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00002ff2: DUP2 00002ff3: MSTORE 00002ff4: PUSH1 0x20 00002ff6: ADD 00002ff7: SWAP3 00002ff8: SWAP2 00002ff9: POP 00002ffa: POP 00002ffb: JUMP 00002ffc: JUMPDEST 00002ffd: PUSH1 0x00 00002fff: PUSH2 0x3009 00003002: PUSH1 0x0e 00003004: DUP4 00003005: PUSH2 0x3364 00003008: JUMP 00003009: JUMPDEST 0000300a: PUSH14 0x11549497d1551217d19052531151 00003019: PUSH1 0x92 0000301b: SHL 0000301c: DUP2 0000301d: MSTORE 0000301e: PUSH1 0x20 00003020: ADD 00003021: SWAP3 00003022: SWAP2 00003023: POP 00003024: POP 00003025: JUMP 00003026: JUMPDEST 00003027: PUSH1 0x00 00003029: PUSH2 0x1e44 0000302c: PUSH1 0x00 0000302e: DUP4 0000302f: PUSH2 0x1d23 00003032: JUMP 00003033: JUMPDEST 00003034: PUSH1 0x00 00003036: PUSH2 0x3040 00003039: PUSH1 0x13 0000303b: DUP4 0000303c: PUSH2 0x3364 0000303f: JUMP 00003040: JUMPDEST 00003041: PUSH19 0x11549497d514905394d1915497d19052531151 00003055: PUSH1 0x6a 00003057: SHL 00003058: DUP2 00003059: MSTORE 0000305a: PUSH1 0x20 0000305c: ADD 0000305d: SWAP3 0000305e: SWAP2 0000305f: POP 00003060: POP 00003061: JUMP 00003062: JUMPDEST 00003063: DUP1 00003064: MLOAD 00003065: PUSH1 0xc0 00003067: DUP4 00003068: ADD 00003069: SWAP1 0000306a: PUSH2 0x3073 0000306d: DUP5 0000306e: DUP3 0000306f: PUSH2 0x2e02 00003072: JUMP 00003073: JUMPDEST 00003074: POP 00003075: PUSH1 0x20 00003077: DUP3 00003078: ADD 00003079: MLOAD 0000307a: PUSH2 0x3086 0000307d: PUSH1 0x20 0000307f: DUP6 00003080: ADD 00003081: DUP3 00003082: PUSH2 0x2e02 00003085: JUMP 00003086: JUMPDEST 00003087: POP 00003088: PUSH1 0x40 0000308a: DUP3 0000308b: ADD 0000308c: MLOAD 0000308d: PUSH2 0x3099 00003090: PUSH1 0x40 00003092: DUP6 00003093: ADD 00003094: DUP3 00003095: PUSH2 0x2e02 00003098: JUMP 00003099: JUMPDEST 0000309a: POP 0000309b: PUSH1 0x60 0000309d: DUP3 0000309e: ADD 0000309f: MLOAD 000030a0: PUSH2 0x30ac 000030a3: PUSH1 0x60 000030a5: DUP6 000030a6: ADD 000030a7: DUP3 000030a8: PUSH2 0x30d8 000030ab: JUMP 000030ac: JUMPDEST 000030ad: POP 000030ae: PUSH1 0x80 000030b0: DUP3 000030b1: ADD 000030b2: MLOAD 000030b3: PUSH2 0x30bf 000030b6: PUSH1 0x80 000030b8: DUP6 000030b9: ADD 000030ba: DUP3 000030bb: PUSH2 0x30d8 000030be: JUMP 000030bf: JUMPDEST 000030c0: POP 000030c1: PUSH1 0xa0 000030c3: DUP3 000030c4: ADD 000030c5: MLOAD 000030c6: PUSH2 0x30d2 000030c9: PUSH1 0xa0 000030cb: DUP6 000030cc: ADD 000030cd: DUP3 000030ce: PUSH2 0x30d8 000030d1: JUMP 000030d2: JUMPDEST 000030d3: POP 000030d4: POP 000030d5: POP 000030d6: POP 000030d7: JUMP 000030d8: JUMPDEST 000030d9: PUSH2 0x2dfc 000030dc: DUP2 000030dd: PUSH2 0x3394 000030e0: JUMP 000030e1: JUMPDEST 000030e2: PUSH1 0x00 000030e4: PUSH2 0x1e44 000030e7: DUP3 000030e8: PUSH2 0x3026 000030eb: JUMP 000030ec: JUMPDEST 000030ed: PUSH1 0x20 000030ef: DUP2 000030f0: ADD 000030f1: PUSH2 0x1e44 000030f4: DUP3 000030f5: DUP5 000030f6: PUSH2 0x2e02 000030f9: JUMP 000030fa: JUMPDEST 000030fb: PUSH1 0x20 000030fd: DUP2 000030fe: ADD 000030ff: PUSH2 0x1e44 00003102: DUP3 00003103: DUP5 00003104: PUSH2 0x2df3 00003107: JUMP 00003108: JUMPDEST 00003109: PUSH1 0x40 0000310b: DUP2 0000310c: ADD 0000310d: PUSH2 0x3116 00003110: DUP3 00003111: DUP6 00003112: PUSH2 0x2df3 00003115: JUMP 00003116: JUMPDEST 00003117: PUSH2 0x1e6f 0000311a: PUSH1 0x20 0000311c: DUP4 0000311d: ADD 0000311e: DUP5 0000311f: PUSH2 0x2e02 00003122: JUMP 00003123: JUMPDEST 00003124: PUSH1 0x60 00003126: DUP2 00003127: ADD 00003128: PUSH2 0x3131 0000312b: DUP3 0000312c: DUP7 0000312d: PUSH2 0x2df3 00003130: JUMP 00003131: JUMPDEST 00003132: PUSH2 0x313e 00003135: PUSH1 0x20 00003137: DUP4 00003138: ADD 00003139: DUP6 0000313a: PUSH2 0x2df3 0000313d: JUMP 0000313e: JUMPDEST 0000313f: PUSH2 0x2779 00003142: PUSH1 0x40 00003144: DUP4 00003145: ADD 00003146: DUP5 00003147: PUSH2 0x30d8 0000314a: JUMP 0000314b: JUMPDEST 0000314c: PUSH1 0x40 0000314e: DUP2 0000314f: ADD 00003150: PUSH2 0x3159 00003153: DUP3 00003154: DUP6 00003155: PUSH2 0x2df3 00003158: JUMP 00003159: JUMPDEST 0000315a: PUSH2 0x1e6f 0000315d: PUSH1 0x20 0000315f: DUP4 00003160: ADD 00003161: DUP5 00003162: PUSH2 0x30d8 00003165: JUMP 00003166: JUMPDEST 00003167: PUSH1 0x60 00003169: DUP2 0000316a: ADD 0000316b: PUSH2 0x3174 0000316e: DUP3 0000316f: DUP7 00003170: PUSH2 0x2e02 00003173: JUMP 00003174: JUMPDEST 00003175: PUSH2 0x313e 00003178: PUSH1 0x20 0000317a: DUP4 0000317b: ADD 0000317c: DUP6 0000317d: PUSH2 0x2e02 00003180: JUMP 00003181: JUMPDEST 00003182: PUSH1 0x40 00003184: DUP2 00003185: ADD 00003186: PUSH2 0x318f 00003189: DUP3 0000318a: DUP6 0000318b: PUSH2 0x2e02 0000318e: JUMP 0000318f: JUMPDEST 00003190: PUSH2 0x1e6f 00003193: PUSH1 0x20 00003195: DUP4 00003196: ADD 00003197: DUP5 00003198: PUSH2 0x2e6d 0000319b: JUMP 0000319c: JUMPDEST 0000319d: PUSH1 0x40 0000319f: DUP2 000031a0: ADD 000031a1: PUSH2 0x3159 000031a4: DUP3 000031a5: DUP6 000031a6: PUSH2 0x2e02 000031a9: JUMP 000031aa: JUMPDEST 000031ab: PUSH1 0xa0 000031ad: DUP2 000031ae: ADD 000031af: PUSH2 0x31b8 000031b2: DUP3 000031b3: DUP9 000031b4: PUSH2 0x2e02 000031b7: JUMP 000031b8: JUMPDEST 000031b9: PUSH2 0x31c5 000031bc: PUSH1 0x20 000031be: DUP4 000031bf: ADD 000031c0: DUP8 000031c1: PUSH2 0x30d8 000031c4: JUMP 000031c5: JUMPDEST 000031c6: PUSH2 0x31d2 000031c9: PUSH1 0x40 000031cb: DUP4 000031cc: ADD 000031cd: DUP7 000031ce: PUSH2 0x2e02 000031d1: JUMP 000031d2: JUMPDEST 000031d3: PUSH2 0x31df 000031d6: PUSH1 0x60 000031d8: DUP4 000031d9: ADD 000031da: DUP6 000031db: PUSH2 0x30d8 000031de: JUMP 000031df: JUMPDEST 000031e0: PUSH2 0x31ec 000031e3: PUSH1 0x80 000031e5: DUP4 000031e6: ADD 000031e7: DUP5 000031e8: PUSH2 0x30d8 000031eb: JUMP 000031ec: JUMPDEST 000031ed: SWAP7 000031ee: SWAP6 000031ef: POP 000031f0: POP 000031f1: POP 000031f2: POP 000031f3: POP 000031f4: POP 000031f5: JUMP 000031f6: JUMPDEST 000031f7: PUSH1 0x40 000031f9: DUP1 000031fa: DUP3 000031fb: MSTORE 000031fc: DUP2 000031fd: ADD 000031fe: PUSH2 0x3207 00003201: DUP2 00003202: DUP6 00003203: PUSH2 0x2e0b 00003206: JUMP 00003207: JUMPDEST 00003208: SWAP1 00003209: POP 0000320a: PUSH2 0x1e6f 0000320d: PUSH1 0x20 0000320f: DUP4 00003210: ADD 00003211: DUP5 00003212: PUSH2 0x30d8 00003215: JUMP 00003216: JUMPDEST 00003217: PUSH1 0x20 00003219: DUP2 0000321a: ADD 0000321b: PUSH2 0x1e44 0000321e: DUP3 0000321f: DUP5 00003220: PUSH2 0x2e64 00003223: JUMP 00003224: JUMPDEST 00003225: PUSH1 0x20 00003227: DUP1 00003228: DUP3 00003229: MSTORE 0000322a: DUP2 0000322b: ADD 0000322c: PUSH2 0x1e6f 0000322f: DUP2 00003230: DUP5 00003231: PUSH2 0x2e76 00003234: JUMP 00003235: JUMPDEST 00003236: PUSH1 0x20 00003238: DUP1 00003239: DUP3 0000323a: MSTORE 0000323b: DUP2 0000323c: ADD 0000323d: PUSH2 0x1e44 00003240: DUP2 00003241: PUSH2 0x2eae 00003244: JUMP 00003245: JUMPDEST 00003246: PUSH1 0x20 00003248: DUP1 00003249: DUP3 0000324a: MSTORE 0000324b: DUP2 0000324c: ADD 0000324d: PUSH2 0x1e44 00003250: DUP2 00003251: PUSH2 0x2ef6 00003254: JUMP 00003255: JUMPDEST 00003256: PUSH1 0x20 00003258: DUP1 00003259: DUP3 0000325a: MSTORE 0000325b: DUP2 0000325c: ADD 0000325d: PUSH2 0x1e44 00003260: DUP2 00003261: PUSH2 0x2f2f 00003264: JUMP 00003265: JUMPDEST 00003266: PUSH1 0x20 00003268: DUP1 00003269: DUP3 0000326a: MSTORE 0000326b: DUP2 0000326c: ADD 0000326d: PUSH2 0x1e44 00003270: DUP2 00003271: PUSH2 0x2f58 00003274: JUMP 00003275: JUMPDEST 00003276: PUSH1 0x20 00003278: DUP1 00003279: DUP3 0000327a: MSTORE 0000327b: DUP2 0000327c: ADD 0000327d: PUSH2 0x1e44 00003280: DUP2 00003281: PUSH2 0x2f80 00003284: JUMP 00003285: JUMPDEST 00003286: PUSH1 0x20 00003288: DUP1 00003289: DUP3 0000328a: MSTORE 0000328b: DUP2 0000328c: ADD 0000328d: PUSH2 0x1e44 00003290: DUP2 00003291: PUSH2 0x2fc3 00003294: JUMP 00003295: JUMPDEST 00003296: PUSH1 0x20 00003298: DUP1 00003299: DUP3 0000329a: MSTORE 0000329b: DUP2 0000329c: ADD 0000329d: PUSH2 0x1e44 000032a0: DUP2 000032a1: PUSH2 0x2ffc 000032a4: JUMP 000032a5: JUMPDEST 000032a6: PUSH1 0x20 000032a8: DUP1 000032a9: DUP3 000032aa: MSTORE 000032ab: DUP2 000032ac: ADD 000032ad: PUSH2 0x1e44 000032b0: DUP2 000032b1: PUSH2 0x3033 000032b4: JUMP 000032b5: JUMPDEST 000032b6: PUSH1 0x20 000032b8: DUP2 000032b9: ADD 000032ba: PUSH2 0x1e44 000032bd: DUP3 000032be: DUP5 000032bf: PUSH2 0x30d8 000032c2: JUMP 000032c3: JUMPDEST 000032c4: PUSH1 0xc0 000032c6: DUP2 000032c7: ADD 000032c8: PUSH2 0x32d1 000032cb: DUP3 000032cc: DUP10 000032cd: PUSH2 0x30d8 000032d0: JUMP 000032d1: JUMPDEST 000032d2: PUSH2 0x32de 000032d5: PUSH1 0x20 000032d7: DUP4 000032d8: ADD 000032d9: DUP9 000032da: PUSH2 0x30d8 000032dd: JUMP 000032de: JUMPDEST 000032df: PUSH2 0x32eb 000032e2: PUSH1 0x40 000032e4: DUP4 000032e5: ADD 000032e6: DUP8 000032e7: PUSH2 0x30d8 000032ea: JUMP 000032eb: JUMPDEST 000032ec: PUSH2 0x32f8 000032ef: PUSH1 0x60 000032f1: DUP4 000032f2: ADD 000032f3: DUP7 000032f4: PUSH2 0x30d8 000032f7: JUMP 000032f8: JUMPDEST 000032f9: PUSH2 0x3305 000032fc: PUSH1 0x80 000032fe: DUP4 000032ff: ADD 00003300: DUP6 00003301: PUSH2 0x30d8 00003304: JUMP 00003305: JUMPDEST 00003306: PUSH2 0x02a9 00003309: PUSH1 0xa0 0000330b: DUP4 0000330c: ADD 0000330d: DUP5 0000330e: PUSH2 0x30d8 00003311: JUMP 00003312: JUMPDEST 00003313: PUSH1 0x40 00003315: MLOAD 00003316: DUP2 00003317: DUP2 00003318: ADD 00003319: PUSH8 0xffffffffffffffff 00003322: DUP2 00003323: GT 00003324: DUP3 00003325: DUP3 00003326: LT 00003327: OR 00003328: ISZERO 00003329: PUSH2 0x3331 0000332c: JUMPI 0000332d: PUSH1 0x00 0000332f: DUP1 00003330: REVERT 00003331: JUMPDEST 00003332: PUSH1 0x40 00003334: MSTORE 00003335: SWAP2 00003336: SWAP1 00003337: POP 00003338: JUMP 00003339: JUMPDEST 0000333a: PUSH1 0x00 0000333c: PUSH8 0xffffffffffffffff 00003345: DUP3 00003346: GT 00003347: ISZERO 00003348: PUSH2 0x3350 0000334b: JUMPI 0000334c: PUSH1 0x00 0000334e: DUP1 0000334f: REVERT 00003350: JUMPDEST 00003351: POP 00003352: PUSH1 0x20 00003354: SWAP1 00003355: DUP2 00003356: MUL 00003357: ADD 00003358: SWAP1 00003359: JUMP 0000335a: JUMPDEST 0000335b: PUSH1 0x20 0000335d: ADD 0000335e: SWAP1 0000335f: JUMP 00003360: JUMPDEST 00003361: MLOAD 00003362: SWAP1 00003363: JUMP 00003364: JUMPDEST 00003365: SWAP1 00003366: DUP2 00003367: MSTORE 00003368: PUSH1 0x20 0000336a: ADD 0000336b: SWAP1 0000336c: JUMP 0000336d: JUMPDEST 0000336e: PUSH1 0x00 00003370: PUSH2 0x1e44 00003373: DUP3 00003374: PUSH2 0x3388 00003377: JUMP 00003378: JUMPDEST 00003379: ISZERO 0000337a: ISZERO 0000337b: SWAP1 0000337c: JUMP 0000337d: JUMPDEST 0000337e: PUSH1 0x00 00003380: PUSH2 0x1e44 00003383: DUP3 00003384: PUSH2 0x336d 00003387: JUMP 00003388: JUMPDEST 00003389: PUSH1 0x01 0000338b: PUSH1 0x01 0000338d: PUSH1 0xa0 0000338f: SHL 00003390: SUB 00003391: AND 00003392: SWAP1 00003393: JUMP 00003394: JUMPDEST 00003395: SWAP1 00003396: JUMP 00003397: JUMPDEST 00003398: PUSH1 0x00 0000339a: PUSH2 0x1e44 0000339d: DUP3 0000339e: PUSH2 0x337d 000033a1: JUMP 000033a2: JUMPDEST 000033a3: PUSH1 0x00 000033a5: PUSH2 0x1e44 000033a8: DUP3 000033a9: PUSH2 0x3394 000033ac: JUMP 000033ad: JUMPDEST 000033ae: PUSH1 0x00 000033b0: JUMPDEST 000033b1: DUP4 000033b2: DUP2 000033b3: LT 000033b4: ISZERO 000033b5: PUSH2 0x33c8 000033b8: JUMPI 000033b9: DUP2 000033ba: DUP2 000033bb: ADD 000033bc: MLOAD 000033bd: DUP4 000033be: DUP3 000033bf: ADD 000033c0: MSTORE 000033c1: PUSH1 0x20 000033c3: ADD 000033c4: PUSH2 0x33b0 000033c7: JUMP 000033c8: JUMPDEST 000033c9: DUP4 000033ca: DUP2 000033cb: GT 000033cc: ISZERO 000033cd: PUSH2 0x30d2 000033d0: JUMPI 000033d1: POP 000033d2: POP 000033d3: PUSH1 0x00 000033d5: SWAP2 000033d6: ADD 000033d7: MSTORE 000033d8: JUMP 000033d9: JUMPDEST 000033da: PUSH1 0x1f 000033dc: ADD 000033dd: PUSH1 0x1f 000033df: NOT 000033e0: AND 000033e1: SWAP1 000033e2: JUMP 000033e3: JUMPDEST 000033e4: PUSH2 0x33ec 000033e7: DUP2 000033e8: PUSH2 0x336d 000033eb: JUMP 000033ec: JUMPDEST 000033ed: DUP2 000033ee: EQ 000033ef: PUSH2 0x1cff 000033f2: JUMPI 000033f3: PUSH1 0x00 000033f5: DUP1 000033f6: REVERT 000033f7: JUMPDEST 000033f8: PUSH2 0x33ec 000033fb: DUP2 000033fc: PUSH2 0x3378 000033ff: JUMP 00003400: JUMPDEST 00003401: PUSH2 0x33ec 00003404: DUP2 00003405: PUSH2 0x337d 00003408: JUMP 00003409: JUMPDEST 0000340a: PUSH2 0x33ec 0000340d: DUP2 0000340e: PUSH2 0x3394 00003411: JUMP 00003412: INVALID 00003413: LOG3 00003414: PUSH6 0x627a7a723158 0000341b: KECCAK256 0000341c: PUSH11 0x7e6caac398936eb953c1ac 00003428: SWAP7 00003429: UNKNOWN(0x2E) 0000342a: UNKNOWN(0xFB) 0000342b: UNKNOWN(0xE4) 0000342c: UNKNOWN(0x26) 0000342d: UNKNOWN(0x2C) 0000342e: PUSH24 0xbbec294e69ca633488f2701cb36c6578706572696d656e74 00003447: PUSH2 0x6cf5 0000344a: PUSH5 0x736f6c6343 00003450: STOP 00003451: SDIV 00003452: UNKNOWN(0x0C) 00003453: STOP 00003454: BLOCKHASH
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | upgradeability | slither | ExchangeProxy.transferAll(TokenInterface,uint256) (contracts/Contract.sol#775-788) sends eth to arbitrary user | 85 | no | — |
viewevidence_json{
"impact": "High",
"detector": "arbitrary-send-eth",
"elements": [
{
"name": "transferAll",
"type": "function",
"source_mapping": {
"lines": [
775,
776,
777,
778,
779,
780,
781,
782,
783,
784,
785,
786,
787,
788
],
"start": 29576,
"length": 426,
"ending_column": 17,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 61,
"filename_absolute": "/tmp/slither-ltu3tt7n/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "ExchangeProxy",
"type": "contract",
"source_mapping": {
"lines": [
290,
291,
292,
293,
294,
295,
296,
297,
298,
299,
300,
301,
302,
303,
304,
305,
306,
307,
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377,
378,
379,
380,
381,
382,
383,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395,
396,
397,
398,
399,
400,
401,
402,
403,
404,
405,
406,
407,
408,
409,
410,
411,
412,
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640,
641,
642,
643,
644,
645,
646,
647,
648,
649,
650,
651,
652,
653,
654,
655,
656,
657,
658,
659,
660,
661,
662,
663,
664,
665,
666,
667,
668,
669,
670,
671,
672,
673,
674,
675,
676,
677,
678,
679,
680,
681,
682,
683,
684,
685,
686,
687,
688,
689,
690,
691,
692,
693,
694,
695,
696,
697,
698,
699,
700,
701,
702,
703,
704,
705,
706,
707,
708,
709,
710,
711,
712,
713,
714,
715,
716,
717,
718,
719,
720,
721,
722,
723,
724,
725,
726,
727,
728,
729,
730,
731,
732,
733,
734,
735,
736,
737,
738,
739,
740,
741,
742,
743,
744,
745,
746,
747,
748,
749,
750,
751,
752,
753,
754,
755,
756,
757,
758,
759,
760,
761,
762,
763,
764,
765,
766,
767,
768,
769,
770,
771,
772,
773,
774,
775,
776,
777,
778,
779,
780,
781,
782,
783,
784,
785,
786,
787,
788,
789,
790,
791,
792,
793
],
"start": 10626,
"length": 19540,
"ending_column": 43,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 3,
"filename_absolute": "/tmp/slither-ltu3tt7n/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "transferAll(TokenInterface,uint256)"
}
},
{
"name": "(xfer,None) = msg.sender.call.value(amount)()",
"type": "node",
"source_mapping": {
"lines": [
782,
783,
784,
785
],
"start": 29795,
"length": 48,
"ending_column": 23,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 13,
"filename_absolute": "/tmp/slither-ltu3tt7n/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "transferAll",
"type": "function",
"source_mapping": {
"lines": [
775,
776,
777,
778,
779,
780,
781,
782,
783,
784,
785,
786,
787,
788
],
"start": 29576,
"length": 426,
"ending_column": 17,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 61,
"filename_absolute": "/tmp/slither-ltu3tt7n/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "ExchangeProxy",
"type": "contract",
"source_mapping": {
"lines": [
290,
291,
292,
293,
294,
295,
296,
297,
298,
299,
300,
301,
302,
303,
304,
305,
306,
307,
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377,
378,
379,
380,
381,
382,
383,
384,
385,
386,
387,
388,
389,
390,
391,
392,
393,
394,
395,
396,
397,
398,
399,
400,
401,
402,
403,
404,
405,
406,
407,
408,
409,
410,
411,
412,
413,
414,
415,
416,
417,
418,
419,
420,
421,
422,
423,
424,
425,
426,
427,
428,
429,
430,
431,
432,
433,
434,
435,
436,
437,
438,
439,
440,
441,
442,
443,
444,
445,
446,
447,
448,
449,
450,
451,
452,
453,
454,
455,
456,
457,
458,
459,
460,
461,
462,
463,
464,
465,
466,
467,
468,
469,
470,
471,
472,
473,
474,
475,
476,
477,
478,
479,
480,
481,
482,
483,
484,
485,
486,
487,
488,
489,
490,
491,
492,
493,
494,
495,
496,
497,
498,
499,
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511,
512,
513,
514,
515,
516,
517,
518,
519,
520,
521,
522,
523,
524,
525,
526,
527,
528,
529,
530,
531,
532,
533,
534,
535,
536,
537,
538,
539,
540,
541,
542,
543,
544,
545,
546,
547,
548,
549,
550,
551,
552,
553,
554,
555,
556,
557,
558,
559,
560,
561,
562,
563,
564,
565,
566,
567,
568,
569,
570,
571,
572,
573,
574,
575,
576,
577,
578,
579,
580,
581,
582,
583,
584,
585,
586,
587,
588,
589,
590,
591,
592,
593,
594,
595,
596,
597,
598,
599,
600,
601,
602,
603,
604,
605,
606,
607,
608,
609,
610,
611,
612,
613,
614,
615,
616,
617,
618,
619,
620,
621,
622,
623,
624,
625,
626,
627,
628,
629,
630,
631,
632,
633,
634,
635,
636,
637,
638,
639,
640,
641,
642,
643,
644,
645,
646,
647,
648,
649,
650,
651,
652,
653,
654,
655,
656,
657,
658,
659,
660,
661,
662,
663,
664,
665,
666,
667,
668,
669,
670,
671,
672,
673,
674,
675,
676,
677,
678,
679,
680,
681,
682,
683,
684,
685,
686,
687,
688,
689,
690,
691,
692,
693,
694,
695,
696,
697,
698,
699,
700,
701,
702,
703,
704,
705,
706,
707,
708,
709,
710,
711,
712,
713,
714,
715,
716,
717,
718,
719,
720,
721,
722,
723,
724,
725,
726,
727,
728,
729,
730,
731,
732,
733,
734,
735,
736,
737,
738,
739,
740,
741,
742,
743,
744,
745,
746,
747,
748,
749,
750,
751,
752,
753,
754,
755,
756,
757,
758,
759,
760,
761,
762,
763,
764,
765,
766,
767,
768,
769,
770,
771,
772,
773,
774,
775,
776,
777,
778,
779,
780,
781,
782,
783,
784,
785,
786,
787,
788,
789,
790,
791,
792,
793
],
"start": 10626,
"length": 19540,
"ending_column": 43,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 3,
"filename_absolute": "/tmp/slither-ltu3tt7n/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "transferAll(TokenInterface,uint256)"
}
}
}
}
],
"locations": [
{
"file": "contracts/Contract.sol",
"name": "transferAll",
"type": "function",
"lines": [
775,
776,
777,
778,
779,
780,
781,
782,
783,
784,
785,
786,
787,
788
]
},
{
"file": "contracts/Contract.sol",
"name": "(xfer,None) = msg.sender.call.value(amount)()",
"type": "node",
"lines": [
782,
783,
784,
785
]
}
],
"description": "ExchangeProxy.transferAll(TokenInterface,uint256) (contracts/Contract.sol#775-788) sends eth to arbitrary user\n\tDangerous calls:\n\t- (xfer,None) = msg.sender.call.value(amount)() (contracts/Contract.sol#782-785)"
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0xc5c66efd14f413db10aa3b8209e4d116a30acdc296cfd89630400269bc9d8dcb
call_targets:
0x3e66b66fd1d0b02fda6c811da9e0547970db2f21
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xc5c66efd14f413db10aa3b8209e4d116a30acdc296cfd89630400269bc9d8dcb",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x3e66b66fd1d0b02fda6c811da9e0547970db2f21"
],
"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": "0xa91ee0dc",
"selector": "0xa91ee0dc",
"calldata_variants": [
"0xa91ee0dc",
"0xa91ee0dc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb40f39ee",
"selector": "0xb40f39ee",
"calldata_variants": [
"0xb40f39ee",
"0xb40f39ee0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe2b39746",
"selector": "0xe2b39746",
"calldata_variants": [
"0xe2b39746",
"0xe2b397460000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8743ad58",
"selector": "0x8743ad58",
"calldata_variants": [
"0x8743ad58",
"0x8743ad580000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8f32d59b",
"selector": "0x8f32d59b",
"calldata_variants": [
"0x8f32d59b",
"0x8f32d59b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x21b0eb85",
"selector": "0x21b0eb85",
"calldata_variants": [
"0x21b0eb85",
"0x21b0eb850000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 972,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1105,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1261,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 20,
"guards_detected": [],
"untrusted_call_count": 20
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0xc5c66efd14f413db10aa3b8209e4d116a30acdc296cfd89630400269bc9d8dcb
call_targets:
0x3e66b66fd1d0b02fda6c811da9e0547970db2f21
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xc5c66efd14f413db10aa3b8209e4d116a30acdc296cfd89630400269bc9d8dcb",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x3e66b66fd1d0b02fda6c811da9e0547970db2f21"
],
"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": "0xa91ee0dc",
"selector": "0xa91ee0dc",
"calldata_variants": [
"0xa91ee0dc",
"0xa91ee0dc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb40f39ee",
"selector": "0xb40f39ee",
"calldata_variants": [
"0xb40f39ee",
"0xb40f39ee0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe2b39746",
"selector": "0xe2b39746",
"calldata_variants": [
"0xe2b39746",
"0xe2b397460000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8743ad58",
"selector": "0x8743ad58",
"calldata_variants": [
"0x8743ad58",
"0x8743ad580000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8f32d59b",
"selector": "0x8f32d59b",
"calldata_variants": [
"0x8f32d59b",
"0x8f32d59b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x21b0eb85",
"selector": "0x21b0eb85",
"calldata_variants": [
"0x21b0eb85",
"0x21b0eb850000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 972,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1105,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1261,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 20,
"guards_detected": []
}
|
| medium | access_control | codex | Unlimited approvals to user-supplied pools allow token drain | 75 | no | — |
viewevidence_json{
"evidence": "multihopBatchSwapExactOut grants uint(-1) approvals to pool addresses supplied in swapSequences without validation or revocation.",
"locations": [
"contracts/Contract.sol:510",
"contracts/Contract.sol:524"
],
"recommendation": "Avoid unlimited approvals to arbitrary pools. Approve only the exact amount needed for each swap and reset to zero afterward, or enforce that pools are from a trusted registry/whitelist before granting allowances.",
"exploit_scenario": "A caller supplies a malicious pool address in multihopBatchSwapExactOut. The proxy approves uint(-1) for tokenIn/secondSwap.tokenIn, then calls the pool. The malicious pool uses transferFrom to pull all of those tokens from the proxy (not just the intended swap amount) and returns a small tokenAmountIn so the maxTotalAmountIn check passes, stealing the caller\u2019s funds. The unlimited approval also persists for later drains if the proxy ever holds those tokens again."
}
|
| low | access_control | codex | Public swap functions can sweep any ERC20 balance held by the proxy | 65 | no | — |
viewevidence_json{
"evidence": "Exact-in/out functions transfer the full token balance via getBalance regardless of swaps length.",
"locations": [
"contracts/Contract.sol:369",
"contracts/Contract.sol:405",
"contracts/Contract.sol:453",
"contracts/Contract.sol:541"
],
"recommendation": "Require non-empty swap arrays and only transfer the exact expected amounts (not full balances). Consider adding an owner-only token rescue function instead of letting arbitrary callers sweep balances.",
"exploit_scenario": "If any ERC20 tokens are accidentally sent to the proxy (or left from partial/multi-hop flows), any caller can pass empty swap arrays and set tokenIn/tokenOut to that token. The functions still call transferAll with getBalance, transferring the entire token balance to the caller, enabling theft of stranded funds."
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 41
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 42
}
|