019c0eab-5d2a-7148-a859-77ddcfaad2fb
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 |
|---|---|---|---|---|
| 42390 | artifact.fetch | complete | 1 / 3 | 2 months ago |
| 42391 | proxy.resolve | complete | 1 / 3 | 2 months ago |
| 42392 | tool.cast_disasm | complete | 1 / 3 | 2 months ago |
| 42393 | analysis.bundle | complete | 1 / 3 | 2 months ago |
| 42394 | capability.graph | complete | 1 / 3 | 2 months ago |
| 42395 | detector.run | complete | 1 / 3 | 2 months ago |
| 42396 | validation.fork | complete | 1 / 3 | 2 months ago |
| 42498 | report.consolidate | complete | 1 / 6 | 2 months ago |
| 42499 | tool.slither | complete | 1 / 2 | 2 months ago |
{
"status": "not_proxy"
}
'forge clean' running (wd: /tmp/slither-d3pl_vhl)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-d3pl_vhl)
Impossible to generate IR for YoVault_V2.manage (src/YoVault_V2.sol#97-109):
'NoneType' object has no attribute 'parameters'
Impossible to generate IR for YoVault_V2.manage (src/YoVault_V2.sol#115-130):
'NoneType' object has no attribute 'parameters'
Impossible to generate IR for YoVault_V2.requestRedeem (src/YoVault_V2.sol#151-176):
'NoneType' object has no attribute 'parameters'
Impossible to generate IR for YoVault_V2.fulfillRedeem (src/YoVault_V2.sol#182-194):
'NoneType' object has no attribute 'parameters'
Impossible to generate IR for YoVault_V2.cancelRedeem (src/YoVault_V2.sol#200-212):
'NoneType' object has no attribute 'parameters'
Impossible to generate IR for YoVault_V2.updateWithdrawFee (src/YoVault_V2.sol#216-220):
'NoneType' object has no attribute 'parameters'
Impossible to generate IR for YoVault_V2.updateDepositFee (src/YoVault_V2.sol#224-228):
'NoneType' object has no attribute 'parameters'
Impossible to generate IR for YoVault_V2.withdraw (src/YoVault_V2.sol#269-271):
'NoneType' object has no attribute 'parameters'
Impossible to generate IR for YoVault_V2._convertToShares (src/YoVault_V2.sol#285-289):
'NoneType' object has no attribute 'parameters'
Impossible to generate IR for YoVault_V2._convertToAssets (src/YoVault_V2.sol#293-297):
'NoneType' object has no attribute 'parameters'
ERC4626Upgradeable._deposit(address,address,uint256,uint256) (node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol#262-275) uses arbitrary from in transferFrom: SafeERC20.safeTransferFrom($._asset,caller,address(this),assets) (node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol#271)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#arbitrary-from-in-transferfrom
Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#144-223) has bitwise-xor operator ^ instead of the exponentiation operator **:
- inverse = (3 * denominator) ^ 2 (node_modules/@openzeppelin/contracts/utils/math/Math.sol#205)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-exponentiation
YoVault_V2.totalPendingAssets (src/YoVault_V2.sol#61) is never initialized. It is used in:
- YoVault_V2._getAvailableBalance() (src/YoVault_V2.sol#406-409)
YoVault_V2.feeOnWithdraw (src/YoVault_V2.sol#66) is never initialized. It is used in:
- YoVault_V2.previewWithdraw(uint256) (src/YoVault_V2.sol#321-324)
- YoVault_V2.previewRedeem(uint256) (src/YoVault_V2.sol#327-330)
- YoVault_V2._withdraw(address,address,address,uint256,uint256) (src/YoVault_V2.sol#361-377)
YoVault_V2.feeOnDeposit (src/YoVault_V2.sol#68) is never initialized. It is used in:
- YoVault_V2.previewDeposit(uint256) (src/YoVault_V2.sol#309-312)
- YoVault_V2.previewMint(uint256) (src/YoVault_V2.sol#315-318)
- YoVault_V2._deposit(address,address,uint256,uint256) (src/YoVault_V2.sol#379-388)
YoVault_V2._pendingRedeem (src/YoVault_V2.sol#73) is never initialized. It is used in:
- YoVault_V2.fulfillRedeem(address,uint256,uint256) (src/YoVault_V2.sol#182-194)
- YoVault_V2.cancelRedeem(address,uint256,uint256) (src/YoVault_V2.sol#200-212)
- YoVault_V2.pendingRedeemRequest(address) (src/YoVault_V2.sol#252-254)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-state-variables
Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#144-223) performs a multiplication on the result of a division:
- denominator = denominator / twos (node_modules/@openzeppelin/contracts/utils/math/Math.sol#190)
- inverse = (3 * denominator) ^ 2 (node_modules/@openzeppelin/contracts/utils/math/Math.sol#205)
Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#144-223) performs a multiplication on the result of a division:
- denominator = denominator / twos (node_modules/@openzeppelin/contracts/utils/math/Math.sol#190)
- inverse *= 2 - denominator * inverse (node_modules/@openzeppelin/contracts/utils/math/Math.sol#209)
Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#144-223) performs a multiplication on the result of a division:
- denominator = denominator / twos (node_modules/@openzeppelin/contracts/utils/math/Math.sol#190)
- inverse *= 2 - denominator * inverse (node_modules/@openzeppelin/contracts/utils/math/Math.sol#210)
Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#144-223) performs a multiplication on the result of a division:
- denominator = denominator / twos (node_modules/@openzeppelin/contracts/utils/math/Math.sol#190)
- inverse *= 2 - denominator * inverse (node_modules/@openzeppelin/contracts/utils/math/Math.sol#211)
Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#144-223) performs a multiplication on the result of a division:
- denominator = denominator / twos (node_modules/@openzeppelin/contracts/utils/math/Math.sol#190)
- inverse *= 2 - denominator * inverse (node_modules/@openzeppelin/contracts/utils/math/Math.sol#212)
Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#144-223) performs a multiplication on the result of a division:
- denominator = denominator / twos (node_modules/@openzeppelin/contracts/utils/math/Math.sol#190)
- inverse *= 2 - denominator * inverse (node_modules/@openzeppelin/contracts/utils/math/Math.sol#213)
Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#144-223) performs a multiplication on the result of a division:
- denominator = denominator / twos (node_modules/@openzeppelin/contracts/utils/math/Math.sol#190)
- inverse *= 2 - denominator * inverse (node_modules/@openzeppelin/contracts/utils/math/Math.sol#214)
Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#144-223) performs a multiplication on the result of a division:
- prod0 = prod0 / twos (node_modules/@openzeppelin/contracts/utils/math/Math.sol#193)
- result = prod0 * inverse (node_modules/@openzeppelin/contracts/utils/math/Math.sol#220)
Math.invMod(uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#243-289) performs a multiplication on the result of a division:
- quotient = gcd / remainder (node_modules/@openzeppelin/contracts/utils/math/Math.sol#265)
- (gcd,remainder) = (remainder,gcd - remainder * quotient) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#267-274)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#divide-before-multiply
Contract locking ether found:
Contract YoVault_V2 (src/YoVault_V2.sol#31-410) has payable functions:
- Compatible.receive() (src/base/Compatible.sol#12-14)
But does not have a function to withdraw the ether
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#contracts-that-lock-ether
YoVault_V2.totalAssets() (src/YoVault_V2.sol#239-242) ignores return value by (price,None) = IYoOracle(ORACLE_ADDRESS).getLatestPrice(address(this)) (src/YoVault_V2.sol#240)
YoVault_V2.lastPricePerShare() (src/YoVault_V2.sol#245-248) ignores return value by (price,None) = IYoOracle(ORACLE_ADDRESS).getLatestPrice(address(this)) (src/YoVault_V2.sol#246)
YoVault_V2._convertToShares(uint256,Math.Rounding) (src/YoVault_V2.sol#285-289) ignores return value by (pricePerShare,None) = IYoOracle(ORACLE_ADDRESS).getLatestPrice(address(this)) (src/YoVault_V2.sol#286)
YoVault_V2._convertToAssets(uint256,Math.Rounding) (src/YoVault_V2.sol#293-297) ignores return value by (pricePerShare,None) = IYoOracle(ORACLE_ADDRESS).getLatestPrice(address(this)) (src/YoVault_V2.sol#294)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
YoVault_V2.requestRedeem(uint256,address,address).owner (src/YoVault_V2.sol#151) shadows:
- AuthUpgradeable.owner() (src/base/AuthUpgradeable.sol#50-52) (function)
YoVault_V2.redeem(uint256,address,address).owner (src/YoVault_V2.sol#273) shadows:
- AuthUpgradeable.owner() (src/base/AuthUpgradeable.sol#50-52) (function)
YoVault_V2.maxWithdraw(address).owner (src/YoVault_V2.sol#346) shadows:
- AuthUpgradeable.owner() (src/base/AuthUpgradeable.sol#50-52) (function)
YoVault_V2.maxRedeem(address).owner (src/YoVault_V2.sol#353) shadows:
- AuthUpgradeable.owner() (src/base/AuthUpgradeable.sol#50-52) (function)
YoVault_V2._withdraw(address,address,address,uint256,uint256).owner (src/YoVault_V2.sol#364) shadows:
- AuthUpgradeable.owner() (src/base/AuthUpgradeable.sol#50-52) (function)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing
Auth.transferOwnership(address).newOwner (node_modules/solmate/src/auth/Auth.sol#48) lacks a zero-check on :
- owner = newOwner (node_modules/solmate/src/auth/Auth.sol#49)
YoVault_V2.updateFeeRecipient(address).newFeeRecipient (src/YoVault_V2.sol#232) lacks a zero-check on :
- feeRecipient = newFeeRecipient (src/YoVault_V2.sol#234)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
SafeERC20._callOptionalReturn(IERC20,bytes) (node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#160-178) uses assembly
- INLINE ASM (node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#163-173)
SafeERC20._callOptionalReturnBool(IERC20,bytes) (node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#188-198) uses assembly
- INLINE ASM (node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#192-196)
Address._revert(bytes) (node_modules/@openzeppelin/contracts/utils/Address.sol#138-149) uses assembly
- INLINE ASM (node_modules/@openzeppelin/contracts/utils/Address.sol#142-145)
Panic.panic(uint256) (node_modules/@openzeppelin/contracts/utils/Panic.sol#50-56) uses assembly
- INLINE ASM (node_modules/@openzeppelin/contracts/utils/Panic.sol#51-55)
Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#144-223) uses assembly
- INLINE ASM (node_modules/@openzeppelin/contracts/utils/math/Math.sol#151-154)
- INLINE ASM (node_modules/@openzeppelin/contracts/utils/math/Math.sol#175-182)
- INLINE ASM (node_modules/@openzeppelin/contracts/utils/math/Math.sol#188-197)
Math.tryModExp(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#337-361) uses assembly
- INLINE ASM (node_modules/@openzeppelin/contracts/utils/math/Math.sol#339-360)
Math.tryModExp(bytes,bytes,bytes) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#377-399) uses assembly
- INLINE ASM (node_modules/@openzeppelin/contracts/utils/math/Math.sol#389-398)
SafeCast.toUint(bool) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#1157-1161) uses assembly
- INLINE ASM (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#1158-1160)
Initializable._getInitializableStorage() (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#223-227) uses assembly
- INLINE ASM (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#224-226)
ERC20Upgradeable._getERC20Storage() (node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#46-50) uses assembly
- INLINE ASM (node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#47-49)
ERC4626Upgradeable._getERC4626Storage() (node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol#63-67) uses assembly
- INLINE ASM (node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol#64-66)
PausableUpgradeable._getPausableStorage() (node_modules/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol#27-31) uses assembly
- INLINE ASM (node_modules/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol#28-30)
YoVault_V2.getImplementation() (src/YoVault_V2.sol#300-306) uses assembly
- INLINE ASM (src/YoVault_V2.sol#302-304)
AuthUpgradeable._getAuthStorage() (src/base/AuthUpgradeable.sol#23-28) uses assembly
- INLINE ASM (src/base/AuthUpgradeable.sol#25-27)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
3 different versions of Solidity are used:
- Version constraint ^0.8.20 is used by:
-^0.8.20 (node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol#4)
-^0.8.20 (node_modules/@openzeppelin/contracts/interfaces/IERC165.sol#4)
-^0.8.20 (node_modules/@openzeppelin/contracts/interfaces/IERC20.sol#4)
-^0.8.20 (node_modules/@openzeppelin/contracts/interfaces/IERC4626.sol#4)
-^0.8.20 (node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol#3)
-^0.8.20 (node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#4)
-^0.8.20 (node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol#4)
-^0.8.20 (node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#4)
-^0.8.20 (node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#4)
-^0.8.20 (node_modules/@openzeppelin/contracts/utils/Address.sol#4)
-^0.8.20 (node_modules/@openzeppelin/contracts/utils/Context.sol#4)
-^0.8.20 (node_modules/@openzeppelin/contracts/utils/Errors.sol#4)
-^0.8.20 (node_modules/@openzeppelin/contracts/utils/Panic.sol#4)
-^0.8.20 (node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol#4)
-^0.8.20 (node_modules/@openzeppelin/contracts/utils/math/Math.sol#4)
-^0.8.20 (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#5)
-^0.8.20 (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#4)
-^0.8.20 (node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#4)
-^0.8.20 (node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol#4)
-^0.8.20 (node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#4)
-^0.8.20 (node_modules/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol#4)
- Version constraint >=0.8.0 is used by:
->=0.8.0 (node_modules/solmate/src/auth/Auth.sol#2)
- Version constraint 0.8.28 is used by:
-0.8.28 (src/YoVault_V2.sol#2)
-0.8.28 (src/base/AuthUpgradeable.sol#2)
-0.8.28 (src/base/Compatible.sol#2)
-0.8.28 (src/interfaces/IYoOracle.sol#2)
-0.8.28 (src/interfaces/IYoVault.sol#2)
-0.8.28 (src/libraries/Errors.sol#2)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used
YoVault_V2._getAvailableBalance() (src/YoVault_V2.sol#406-409) is never used and should be removed
YoVault_V2._withdraw(address,address,address,uint256,uint256) (src/YoVault_V2.sol#361-377) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
Version constraint ^0.8.20 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- VerbatimInvalidDeduplication
- FullInlinerNonExpressionSplitArgumentEvaluationOrder
- MissingSideEffectsOnSelectorAccess.
It is used by:
- ^0.8.20 (node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol#4)
- ^0.8.20 (node_modules/@openzeppelin/contracts/interfaces/IERC165.sol#4)
- ^0.8.20 (node_modules/@openzeppelin/contracts/interfaces/IERC20.sol#4)
- ^0.8.20 (node_modules/@openzeppelin/contracts/interfaces/IERC4626.sol#4)
- ^0.8.20 (node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol#3)
- ^0.8.20 (node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#4)
- ^0.8.20 (node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol#4)
- ^0.8.20 (node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#4)
- ^0.8.20 (node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#4)
- ^0.8.20 (node_modules/@openzeppelin/contracts/utils/Address.sol#4)
- ^0.8.20 (node_modules/@openzeppelin/contracts/utils/Context.sol#4)
- ^0.8.20 (node_modules/@openzeppelin/contracts/utils/Errors.sol#4)
- ^0.8.20 (node_modules/@openzeppelin/contracts/utils/Panic.sol#4)
- ^0.8.20 (node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol#4)
- ^0.8.20 (node_modules/@openzeppelin/contracts/utils/math/Math.sol#4)
- ^0.8.20 (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#5)
- ^0.8.20 (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#4)
- ^0.8.20 (node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#4)
- ^0.8.20 (node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol#4)
- ^0.8.20 (node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#4)
- ^0.8.20 (node_modules/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol#4)
Version constraint >=0.8.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- FullInlinerNonExpressionSplitArgumentEvaluationOrder
- MissingSideEffectsOnSelectorAccess
- AbiReencodingHeadOverflowWithStaticArrayCleanup
- DirtyBytesArrayToStorage
- DataLocationChangeInInternalOverride
- NestedCalldataArrayAbiReencodingSizeValidation
- SignedImmutables
- ABIDecodeTwoDimensionalArrayMemory
- KeccakCaching.
It is used by:
- >=0.8.0 (node_modules/solmate/src/auth/Auth.sol#2)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity
Low level call in Address.sendValue(address,uint256) (node_modules/@openzeppelin/contracts/utils/Address.sol#33-42):
- (success,None) = recipient.call{value: amount}() (node_modules/@openzeppelin/contracts/utils/Address.sol#38)
Low level call in Address.functionCallWithValue(address,bytes,uint256) (node_modules/@openzeppelin/contracts/utils/Address.sol#75-81):
- (success,returndata) = target.call{value: value}(data) (node_modules/@openzeppelin/contracts/utils/Address.sol#79)
Low level call in Address.functionStaticCall(address,bytes) (node_modules/@openzeppelin/contracts/utils/Address.sol#87-90):
- (success,returndata) = target.staticcall(data) (node_modules/@openzeppelin/contracts/utils/Address.sol#88)
Low level call in Address.functionDelegateCall(address,bytes) (node_modules/@openzeppelin/contracts/utils/Address.sol#96-99):
- (success,returndata) = target.delegatecall(data) (node_modules/@openzeppelin/contracts/utils/Address.sol#97)
Low level call in ERC4626Upgradeable._tryGetAssetDecimals(IERC20) (node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol#106-117):
- (success,encodedDecimals) = address(asset_).staticcall(abi.encodeCall(IERC20Metadata.decimals,())) (node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol#107-109)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
Function ERC20Upgradeable.__ERC20_init(string,string) (node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#58-60) is not in mixedCase
Function ERC20Upgradeable.__ERC20_init_unchained(string,string) (node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#62-66) is not in mixedCase
Constant ERC20Upgradeable.ERC20StorageLocation (node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#44) is not in UPPER_CASE_WITH_UNDERSCORES
Function ERC4626Upgradeable.__ERC4626_init(IERC20) (node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol#92-94) is not in mixedCase
Function ERC4626Upgradeable.__ERC4626_init_unchained(IERC20) (node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol#96-101) is not in mixedCase
Constant ERC4626Upgradeable.ERC4626StorageLocation (node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol#61) is not in UPPER_CASE_WITH_UNDERSCORES
Function ContextUpgradeable.__Context_init() (node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#18-19) is not in mixedCase
Function ContextUpgradeable.__Context_init_unchained() (node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#21-22) is not in mixedCase
Function PausableUpgradeable.__Pausable_init() (node_modules/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol#56-58) is not in mixedCase
Function PausableUpgradeable.__Pausable_init_unchained() (node_modules/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol#60-63) is not in mixedCase
Constant PausableUpgradeable.PausableStorageLocation (node_modules/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol#25) is not in UPPER_CASE_WITH_UNDERSCORES
Contract YoVault_V2 (src/YoVault_V2.sol#31-410) is not in CapWords
Parameter YoVault_V2.initialize(IERC20,address,string,string)._asset (src/YoVault_V2.sol#83) is not in mixedCase
Parameter YoVault_V2.initialize(IERC20,address,string,string)._owner (src/YoVault_V2.sol#83) is not in mixedCase
Parameter YoVault_V2.initialize(IERC20,address,string,string)._name (src/YoVault_V2.sol#83) is not in mixedCase
Parameter YoVault_V2.initialize(IERC20,address,string,string)._symbol (src/YoVault_V2.sol#83) is not in mixedCase
Variable YoVault_V2.deprecated_aggregatedUnderlyingBalances (src/YoVault_V2.sol#55) is not in mixedCase
Variable YoVault_V2.deprecated_lastBlockUpdated (src/YoVault_V2.sol#57) is not in mixedCase
Variable YoVault_V2.deprecated_lastPricePerShare (src/YoVault_V2.sol#59) is not in mixedCase
Variable YoVault_V2.deprecated_maxPercentageChange (src/YoVault_V2.sol#64) is not in mixedCase
Function AuthUpgradeable.__Auth_init(address,Authority) (src/base/AuthUpgradeable.sol#30-36) is not in mixedCase
Parameter AuthUpgradeable.__Auth_init(address,Authority)._owner (src/base/AuthUpgradeable.sol#30) is not in mixedCase
Parameter AuthUpgradeable.__Auth_init(address,Authority)._authority (src/base/AuthUpgradeable.sol#30) is not in mixedCase
Constant AuthUpgradeable.AuthStorageLocation (src/base/AuthUpgradeable.sol#21) is not in UPPER_CASE_WITH_UNDERSCORES
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
YoVault_V2.REQUEST_ID (src/YoVault_V2.sol#46) is never used in YoVault_V2 (src/YoVault_V2.sol#31-410)
YoVault_V2.MAX_FEE (src/YoVault_V2.sol#50) is never used in YoVault_V2 (src/YoVault_V2.sol#31-410)
YoVault_V2.deprecated_aggregatedUnderlyingBalances (src/YoVault_V2.sol#55) is never used in YoVault_V2 (src/YoVault_V2.sol#31-410)
YoVault_V2.deprecated_lastBlockUpdated (src/YoVault_V2.sol#57) is never used in YoVault_V2 (src/YoVault_V2.sol#31-410)
YoVault_V2.deprecated_lastPricePerShare (src/YoVault_V2.sol#59) is never used in YoVault_V2 (src/YoVault_V2.sol#31-410)
YoVault_V2.deprecated_maxPercentageChange (src/YoVault_V2.sol#64) is never used in YoVault_V2 (src/YoVault_V2.sol#31-410)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-state-variable
YoVault_V2.deprecated_aggregatedUnderlyingBalances (src/YoVault_V2.sol#55) should be constant
YoVault_V2.deprecated_lastBlockUpdated (src/YoVault_V2.sol#57) should be constant
YoVault_V2.deprecated_lastPricePerShare (src/YoVault_V2.sol#59) should be constant
YoVault_V2.deprecated_maxPercentageChange (src/YoVault_V2.sol#64) should be constant
YoVault_V2.feeOnDeposit (src/YoVault_V2.sol#68) should be constant
YoVault_V2.feeOnWithdraw (src/YoVault_V2.sol#66) should be constant
YoVault_V2.totalPendingAssets (src/YoVault_V2.sol#61) should be constant
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-constant
. analyzed (29 contracts with 100 detectors), 88 result(s) found
{
"solc": {
"status": "ok",
"use_rc": 0,
"version": "0.8.28",
"strategy": "solc-select",
"solc_path": "/var/www/tripwire/.venv/bin/solc",
"install_rc": 0,
"use_stderr": null,
"use_stdout": "Switched global version to 0.8.28",
"install_stderr": null,
"install_stdout": "Version '0.8.28' is already installed, skipping..."
},
"solc_args": "--base-path /tmp/slither-d3pl_vhl --include-path /tmp/slither-d3pl_vhl/lib --include-path /tmp/slither-d3pl_vhl/lib/openzeppelin-contracts --include-path /tmp/slither-d3pl_vhl/node_modules --allow-paths /tmp/slither-d3pl_vhl,/tmp/slither-d3pl_vhl/lib,/tmp/slither-d3pl_vhl/lib/openzeppelin-contracts,/tmp/slither-d3pl_vhl/node_modules,/tmp/slither-d3pl_vhl/src",
"remappings": [
"@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/",
"@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/",
"@solmate/=node_modules/solmate/src/",
"forge-std/=node_modules/forge-std/src/",
"solmate/=node_modules/solmate/",
"src/=src/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/"
],
"source_files": [
"src/YoVault_V2.sol",
"src/libraries/Errors.sol",
"src/interfaces/IYoVault.sol",
"src/interfaces/IYoOracle.sol",
"src/base/Compatible.sol",
"src/base/AuthUpgradeable.sol",
"node_modules/@openzeppelin/contracts/utils/math/Math.sol",
"node_modules/@openzeppelin/contracts/utils/Address.sol",
"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol",
"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
"node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol",
"node_modules/@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol",
"node_modules/solmate/src/auth/Auth.sol",
"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol",
"node_modules/@openzeppelin/contracts/utils/Panic.sol",
"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol",
"node_modules/@openzeppelin/contracts/utils/Errors.sol",
"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol",
"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol",
"node_modules/@openzeppelin/contracts/utils/Context.sol",
"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol",
"node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol",
"node_modules/@openzeppelin/contracts/interfaces/IERC4626.sol",
"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol",
"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol",
"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol",
"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol"
],
"contract_count": 0,
"contract_names": [],
"detector_count": 88,
"workspace_hash": "bdad95105abad166e5cb0fec5232bba4226a1f69b310ca961ffec3bd22a8fdad",
"duration_seconds": 2.626188278198242,
"solc_version_requested": "0.8.28"
}
{"no_findings":false,"summary":"Found two issues: oracle-driven accounting lacks freshness/sanity checks, and redeem fulfillment allows asset/share mismatches (including zero-share payouts) that can break accounting or overpay receivers.","findings":[{"severity":"medium","category":"oracle","title":"Oracle price trusted without freshness/sanity checks for share/asset accounting","exploit_scenario":"If the oracle price is stale or manipulated, an attacker can mint shares cheaply (price low) or lock in an inflated asset amount via requestRedeem (price high) and later redeem for more assets than backing exists, draining the vault. totalAssets also reflects the oracle price directly, amplifying mispricing effects across deposits/withdrawals.","recommendation":"Validate oracle timestamps and enforce staleness/max-change bounds before using prices. Consider circuit breakers or pausing on abnormal changes, and/or governance-controlled oracle updates. Use anchor/median checks or onchain price bounds to reduce manipulation risk.","evidence":"Price from IYoOracle is used directly for totalAssets and share/asset conversions without checking timestamps or bounds.","locations":["src/YoVault_V2.sol:240","src/YoVault_V2.sol:285","src/YoVault_V2.sol:293","src/YoVault_V2.sol:151"]},{"severity":"medium","category":"other","title":"Redeem fulfillment allows asset/share mismatches and zero-share payouts","exploit_scenario":"An authorized operator can call fulfillRedeem with shares=0 and assetsWithFee>0, transferring assets without burning shares. They can later cancel to return shares, effectively overpaying the receiver, or create states where pending.shares=0 but pending.assets>0, locking totalPendingAssets and breaking availability checks. This enables insolvency or stuck funds if the operator is malicious or misconfigured.","recommendation":"Require shares>0 and assetsWithFee>0, and enforce proportionality between shares and assets based on stored pending amounts (e.g., assetsWithFee must equal pending.assets * shares / pending.shares with rounding rules). Ensure pending.assets and pending.shares reach zero together to avoid stranded balances.","evidence":"fulfillRedeem/cancelRedeem only check upper bounds and do not enforce asset/share ratio or nonzero shares; shares can be zero.","locations":["src/YoVault_V2.sol:182","src/YoVault_V2.sol:200"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-ur73mry0
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0fc5-589f-7dd0-b963-905c8ceb4a20
--------
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
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-ur73mry0 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: src/YoVault_V2.sol
================================================================================
// SPDX-License-Identifier: MIT
pragma solidity 0.8.28;
import {Errors} from "./libraries/Errors.sol";
import {IYoVault} from "./interfaces/IYoVault.sol";
import {IYoOracle} from "./interfaces/IYoOracle.sol";
import {Compatible} from "./base/Compatible.sol";
import {AuthUpgradeable, Authority} from "./base/AuthUpgradeable.sol";
import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
import {IERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
exec
/bin/bash -lc "nl -ba src/YoVault_V2.sol | sed -n '70,220p'" in /tmp/codex-ur73mry0 succeeded in 9ms:
70 address public feeRecipient;
71
72 /// @dev used to store the amount of shares that are pending redemption, it must be fulfilled by the vault operator
73 mapping(address user => PendingRedeem redeem) internal _pendingRedeem;
74
75 //============================== CONSTRUCTOR ===============================
76
77 /// @custom:oz-upgrades-unsafe-allow constructor
78 constructor() {
79 _disableInitializers();
80 }
81
82 //============================== INITIALIZER ===============================
83 function initialize(IERC20 _asset, address _owner, string memory _name, string memory _symbol) public initializer {
84 __Context_init();
85 __ERC20_init(_name, _symbol);
86 __ERC4626_init(_asset);
87 __Auth_init(_owner, Authority(address(0)));
88 __Pausable_init();
89 }
exec
/bin/bash -lc "nl -ba src/YoVault_V2.sol | sed -n '240,360p'" in /tmp/codex-ur73mry0 succeeded in 6ms:
240 (uint256 price, ) = IYoOracle(ORACLE_ADDRESS).getLatestPrice(address(this));
241 return price.mulDiv(super.totalSupply(), 10 ** decimals(), Math.Rounding.Floor);
242 }
243
244 /// @notice Get the last price per share from the oracle.
245 function lastPricePerShare() public view returns (uint256 price) {
246 (price, ) = IYoOracle(ORACLE_ADDRESS).getLatestPrice(address(this));
247 return price * (10 ** (18 - decimals()));
248 }
249
250 /// @notice Get the amount of assets and shares that are pending redemption.
251 /// @param user The address of the user.
252 function pendingRedeemRequest(address user) public view returns (uint256 assets, uint256 pendingShares) {
253 return (_pendingRedeem[user].assets, _pendingRedeem[user].shares);
254 }
255
256 //============================== OVERRIDES ===============================
257
258 /// @dev Override the default `deposit` function to add the `whenNotPaused` modifier.
259 function deposit(uint256 assets, address receiver) public override whenNotPaused returns (uint256) {
codex
{"no_findings":false,"summary":"Found two issues: oracle-driven accounting lacks freshness/sanity checks, and redeem fulfillment allows asset/share mismatches (including zero-share payouts) that can break accounting or overpay receivers.","findings":[{"severity":"medium","category":"oracle","title":"Oracle price trusted without freshness/sanity checks for share/asset accounting","exploit_scenario":"If the oracle price is stale or manipulated, an attacker can mint shares cheaply (price low) or lock in an inflated asset amount via requestRedeem (price high) and later redeem for more assets than backing exists, draining the vault. totalAssets also reflects the oracle price directly, amplifying mispricing effects across deposits/withdrawals.","recommendation":"Validate oracle timestamps and enforce staleness/max-change bounds before using prices. Consider circuit breakers or pausing on abnormal changes, and/or governance-controlled oracle updates. Use anchor/median checks or onchain price bounds to reduce manipulation risk.","evidence":"Price from IYoOracle is used directly for totalAssets and share/asset conversions without checking timestamps or bounds.","locations":["src/YoVault_V2.sol:240","src/YoVault_V2.sol:285","src/YoVault_V2.sol:293","src/YoVault_V2.sol:151"]},{"severity":"medium","category":"other","title":"Redeem fulfillment allows asset/share mismatches and zero-share payouts","exploit_scenario":"An authorized operator can call fulfillRedeem with shares=0 and assetsWithFee>0, transferring assets without burning shares. They can later cancel to return shares, effectively overpaying the receiver, or create states where pending.shares=0 but pending.assets>0, locking totalPendingAssets and breaking availability checks. This enables insolvency or stuck funds if the operator is malicious or misconfigured.","recommendation":"Require shares>0 and assetsWithFee>0, and enforce proportionality between shares and assets based on stored pending amounts (e.g., assetsWithFee must equal pending.assets * shares / pending.shares with rounding rules). Ensure pending.assets and pending.shares reach zero together to avoid stranded balances.","evidence":"fulfillRedeem/cancelRedeem only check upper bounds and do not enforce asset/share ratio or nonzero shares; shares can be zero.","locations":["src/YoVault_V2.sol:182","src/YoVault_V2.sol:200"]}]}
tokens used
23,524
{
"codex": {
"ran_at": "2026-01-30T16:42:17.800887+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 28,
"import_count": 37,
"first_party_contracts_count": 6
},
"summary": "Found two issues: oracle-driven accounting lacks freshness/sanity checks, and redeem fulfillment allows asset/share mismatches (including zero-share payouts) that can break accounting or overpay receivers.",
"raw_final": {
"summary": "Found two issues: oracle-driven accounting lacks freshness/sanity checks, and redeem fulfillment allows asset/share mismatches (including zero-share payouts) that can break accounting or overpay receivers.",
"findings": [
{
"title": "Oracle price trusted without freshness/sanity checks for share/asset accounting",
"category": "oracle",
"evidence": "Price from IYoOracle is used directly for totalAssets and share/asset conversions without checking timestamps or bounds.",
"severity": "medium",
"locations": [
"src/YoVault_V2.sol:240",
"src/YoVault_V2.sol:285",
"src/YoVault_V2.sol:293",
"src/YoVault_V2.sol:151"
],
"recommendation": "Validate oracle timestamps and enforce staleness/max-change bounds before using prices. Consider circuit breakers or pausing on abnormal changes, and/or governance-controlled oracle updates. Use anchor/median checks or onchain price bounds to reduce manipulation risk.",
"exploit_scenario": "If the oracle price is stale or manipulated, an attacker can mint shares cheaply (price low) or lock in an inflated asset amount via requestRedeem (price high) and later redeem for more assets than backing exists, draining the vault. totalAssets also reflects the oracle price directly, amplifying mispricing effects across deposits/withdrawals."
},
{
"title": "Redeem fulfillment allows asset/share mismatches and zero-share payouts",
"category": "other",
"evidence": "fulfillRedeem/cancelRedeem only check upper bounds and do not enforce asset/share ratio or nonzero shares; shares can be zero.",
"severity": "medium",
"locations": [
"src/YoVault_V2.sol:182",
"src/YoVault_V2.sol:200"
],
"recommendation": "Require shares>0 and assetsWithFee>0, and enforce proportionality between shares and assets based on stored pending amounts (e.g., assetsWithFee must equal pending.assets * shares / pending.shares with rounding rules). Ensure pending.assets and pending.shares reach zero together to avoid stranded balances.",
"exploit_scenario": "An authorized operator can call fulfillRedeem with shares=0 and assetsWithFee>0, transferring assets without burning shares. They can later cancel to return shares, effectively overpaying the receiver, or create states where pending.shares=0 but pending.assets>0, locking totalPendingAssets and breaking availability checks. This enables insolvency or stuck funds if the operator is malicious or misconfigured."
}
],
"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 0x033d 0000000c: JUMPI 0000000d: PUSH0 0000000e: CALLDATALOAD 0000000f: PUSH1 0xe0 00000011: SHR 00000012: DUP1 00000013: PUSH4 0x7d41c86e 00000018: GT 00000019: PUSH2 0x01b2 0000001c: JUMPI 0000001d: DUP1 0000001e: PUSH4 0xbf7e214f 00000023: GT 00000024: PUSH2 0x00f2 00000027: JUMPI 00000028: DUP1 00000029: PUSH4 0xdd62ed3e 0000002e: GT 0000002f: PUSH2 0x0092 00000032: JUMPI 00000033: DUP1 00000034: PUSH4 0xf23a6e61 00000039: GT 0000003a: PUSH2 0x006d 0000003d: JUMPI 0000003e: DUP1 0000003f: PUSH4 0xf23a6e61 00000044: EQ 00000045: PUSH2 0x0af9 00000048: JUMPI 00000049: DUP1 0000004a: PUSH4 0xf2fde38b 0000004f: EQ 00000050: PUSH2 0x0b3e 00000053: JUMPI 00000054: DUP1 00000055: PUSH4 0xf6e715d0 0000005a: EQ 0000005b: PUSH2 0x0b5d 0000005e: JUMPI 0000005f: DUP1 00000060: PUSH4 0xfcfc430c 00000065: EQ 00000066: PUSH2 0x0b7c 00000069: JUMPI 0000006a: PUSH0 0000006b: PUSH0 0000006c: REVERT 0000006d: JUMPDEST 0000006e: DUP1 0000006f: PUSH4 0xdd62ed3e 00000074: EQ 00000075: PUSH2 0x0a58 00000078: JUMPI 00000079: DUP1 0000007a: PUSH4 0xef8b30f7 0000007f: EQ 00000080: PUSH2 0x0abb 00000083: JUMPI 00000084: DUP1 00000085: PUSH4 0xf160d369 0000008a: EQ 0000008b: PUSH2 0x0ada 0000008e: JUMPI 0000008f: PUSH0 00000090: PUSH0 00000091: REVERT 00000092: JUMPDEST 00000093: DUP1 00000094: PUSH4 0xce96cb77 00000099: GT 0000009a: PUSH2 0x00cd 0000009d: JUMPI 0000009e: DUP1 0000009f: PUSH4 0xce96cb77 000000a4: EQ 000000a5: PUSH2 0x09dc 000000a8: JUMPI 000000a9: DUP1 000000aa: PUSH4 0xd905777e 000000af: EQ 000000b0: PUSH2 0x09fb 000000b3: JUMPI 000000b4: DUP1 000000b5: PUSH4 0xd9972b96 000000ba: EQ 000000bb: PUSH2 0x0a1a 000000be: JUMPI 000000bf: DUP1 000000c0: PUSH4 0xdaf635de 000000c5: EQ 000000c6: PUSH2 0x0a39 000000c9: JUMPI 000000ca: PUSH0 000000cb: PUSH0 000000cc: REVERT 000000cd: JUMPDEST 000000ce: DUP1 000000cf: PUSH4 0xbf7e214f 000000d4: EQ 000000d5: PUSH2 0x0981 000000d8: JUMPI 000000d9: DUP1 000000da: PUSH4 0xc63d75b6 000000df: EQ 000000e0: PUSH2 0x060e 000000e3: JUMPI 000000e4: DUP1 000000e5: PUSH4 0xc6e6f592 000000ea: EQ 000000eb: PUSH2 0x09bd 000000ee: JUMPI 000000ef: PUSH0 000000f0: PUSH0 000000f1: REVERT 000000f2: JUMPDEST 000000f3: DUP1 000000f4: PUSH4 0xaaf10f42 000000f9: GT 000000fa: PUSH2 0x015d 000000fd: JUMPI 000000fe: DUP1 000000ff: PUSH4 0xb3d7f6b9 00000104: GT 00000105: PUSH2 0x0138 00000108: JUMPI 00000109: DUP1 0000010a: PUSH4 0xb3d7f6b9 0000010f: EQ 00000110: PUSH2 0x08dd 00000113: JUMPI 00000114: DUP1 00000115: PUSH4 0xb460af94 0000011a: EQ 0000011b: PUSH2 0x08fc 0000011e: JUMPI 0000011f: DUP1 00000120: PUSH4 0xba087652 00000125: EQ 00000126: PUSH2 0x091b 00000129: JUMPI 0000012a: DUP1 0000012b: PUSH4 0xbc197c81 00000130: EQ 00000131: PUSH2 0x093a 00000134: JUMPI 00000135: PUSH0 00000136: PUSH0 00000137: REVERT 00000138: JUMPDEST 00000139: DUP1 0000013a: PUSH4 0xaaf10f42 0000013f: EQ 00000140: PUSH2 0x0878 00000143: JUMPI 00000144: DUP1 00000145: PUSH4 0xab4f0f01 0000014a: EQ 0000014b: PUSH2 0x08b4 0000014e: JUMPI 0000014f: DUP1 00000150: PUSH4 0xac9dc9e8 00000155: EQ 00000156: PUSH2 0x08c9 00000159: JUMPI 0000015a: PUSH0 0000015b: PUSH0 0000015c: REVERT 0000015d: JUMPDEST 0000015e: DUP1 0000015f: PUSH4 0x94bf804d 00000164: GT 00000165: PUSH2 0x018d 00000168: JUMPI 00000169: DUP1 0000016a: PUSH4 0x94bf804d 0000016f: EQ 00000170: PUSH2 0x0826 00000173: JUMPI 00000174: DUP1 00000175: PUSH4 0x95d89b41 0000017a: EQ 0000017b: PUSH2 0x0845 0000017e: JUMPI 0000017f: DUP1 00000180: PUSH4 0xa9059cbb 00000185: EQ 00000186: PUSH2 0x0859 00000189: JUMPI 0000018a: PUSH0 0000018b: PUSH0 0000018c: REVERT 0000018d: JUMPDEST 0000018e: DUP1 0000018f: PUSH4 0x7d41c86e 00000194: EQ 00000195: PUSH2 0x07b7 00000198: JUMPI 00000199: DUP1 0000019a: PUSH4 0x8456cb59 0000019f: EQ 000001a0: PUSH2 0x07d6 000001a3: JUMPI 000001a4: DUP1 000001a5: PUSH4 0x8da5cb5b 000001aa: EQ 000001ab: PUSH2 0x07ea 000001ae: JUMPI 000001af: PUSH0 000001b0: PUSH0 000001b1: REVERT 000001b2: JUMPDEST 000001b3: DUP1 000001b4: PUSH4 0x313ce567 000001b9: GT 000001ba: PUSH2 0x027d 000001bd: JUMPI 000001be: DUP1 000001bf: PUSH4 0x53dc1dd3 000001c4: GT 000001c5: PUSH2 0x0228 000001c8: JUMPI 000001c9: DUP1 000001ca: PUSH4 0x6442b2ba 000001cf: GT 000001d0: PUSH2 0x0203 000001d3: JUMPI 000001d4: DUP1 000001d5: PUSH4 0x6442b2ba 000001da: EQ 000001db: PUSH2 0x0707 000001de: JUMPI 000001df: DUP1 000001e0: PUSH4 0x6e553f65 000001e5: EQ 000001e6: PUSH2 0x0726 000001e9: JUMPI 000001ea: DUP1 000001eb: PUSH4 0x70a08231 000001f0: EQ 000001f1: PUSH2 0x0745 000001f4: JUMPI 000001f5: DUP1 000001f6: PUSH4 0x7a9e5e4b 000001fb: EQ 000001fc: PUSH2 0x0798 000001ff: JUMPI 00000200: PUSH0 00000201: PUSH0 00000202: REVERT 00000203: JUMPDEST 00000204: DUP1 00000205: PUSH4 0x53dc1dd3 0000020a: EQ 0000020b: PUSH2 0x066b 0000020e: JUMPI 0000020f: DUP1 00000210: PUSH4 0x543610c6 00000215: EQ 00000216: PUSH2 0x06bc 00000219: JUMPI 0000021a: DUP1 0000021b: PUSH4 0x5c975abb 00000220: EQ 00000221: PUSH2 0x06d1 00000224: JUMPI 00000225: PUSH0 00000226: PUSH0 00000227: REVERT 00000228: JUMPDEST 00000229: DUP1 0000022a: PUSH4 0x402d267d 0000022f: GT 00000230: PUSH2 0x0258 00000233: JUMPI 00000234: DUP1 00000235: PUSH4 0x402d267d 0000023a: EQ 0000023b: PUSH2 0x060e 0000023e: JUMPI 0000023f: DUP1 00000240: PUSH4 0x46904840 00000245: EQ 00000246: PUSH2 0x062d 00000249: JUMPI 0000024a: DUP1 0000024b: PUSH4 0x4cdad506 00000250: EQ 00000251: PUSH2 0x064c 00000254: JUMPI 00000255: PUSH0 00000256: PUSH0 00000257: REVERT 00000258: JUMPDEST 00000259: DUP1 0000025a: PUSH4 0x313ce567 0000025f: EQ 00000260: PUSH2 0x0584 00000263: JUMPI 00000264: DUP1 00000265: PUSH4 0x38d52e0f 0000026a: EQ 0000026b: PUSH2 0x05aa 0000026e: JUMPI 0000026f: DUP1 00000270: PUSH4 0x3f4ba83a 00000275: EQ 00000276: PUSH2 0x05fa 00000279: JUMPI 0000027a: PUSH0 0000027b: PUSH0 0000027c: REVERT 0000027d: JUMPDEST 0000027e: DUP1 0000027f: PUSH4 0x150b7a02 00000284: GT 00000285: PUSH2 0x02e8 00000288: JUMPI 00000289: DUP1 0000028a: PUSH4 0x1cd1c8c3 0000028f: GT 00000290: PUSH2 0x02c3 00000293: JUMPI 00000294: DUP1 00000295: PUSH4 0x1cd1c8c3 0000029a: EQ 0000029b: PUSH2 0x04fb 0000029e: JUMPI 0000029f: DUP1 000002a0: PUSH4 0x2016a0d2 000002a5: EQ 000002a6: PUSH2 0x051a 000002a9: JUMPI 000002aa: DUP1 000002ab: PUSH4 0x224d8703 000002b0: EQ 000002b1: PUSH2 0x0539 000002b4: JUMPI 000002b5: DUP1 000002b6: PUSH4 0x23b872dd 000002bb: EQ 000002bc: PUSH2 0x0565 000002bf: JUMPI 000002c0: PUSH0 000002c1: PUSH0 000002c2: REVERT 000002c3: JUMPDEST 000002c4: DUP1 000002c5: PUSH4 0x150b7a02 000002ca: EQ 000002cb: PUSH2 0x0456 000002ce: JUMPI 000002cf: DUP1 000002d0: PUSH4 0x18160ddd 000002d5: EQ 000002d6: PUSH2 0x04b3 000002d9: JUMPI 000002da: DUP1 000002db: PUSH4 0x1a4a6ad6 000002e0: EQ 000002e1: PUSH2 0x04e6 000002e4: JUMPI 000002e5: PUSH0 000002e6: PUSH0 000002e7: REVERT 000002e8: JUMPDEST 000002e9: DUP1 000002ea: PUSH4 0x07a2d13a 000002ef: GT 000002f0: PUSH2 0x0318 000002f3: JUMPI 000002f4: DUP1 000002f5: PUSH4 0x07a2d13a 000002fa: EQ 000002fb: PUSH2 0x03e9 000002fe: JUMPI 000002ff: DUP1 00000300: PUSH4 0x095ea7b3 00000305: EQ 00000306: PUSH2 0x0408 00000309: JUMPI 0000030a: DUP1 0000030b: PUSH4 0x0a28a477 00000310: EQ 00000311: PUSH2 0x0437 00000314: JUMPI 00000315: PUSH0 00000316: PUSH0 00000317: REVERT 00000318: JUMPDEST 00000319: DUP1 0000031a: PUSH4 0x017def57 0000031f: EQ 00000320: PUSH2 0x0380 00000323: JUMPI 00000324: DUP1 00000325: PUSH4 0x01e1d114 0000032a: EQ 0000032b: PUSH2 0x03a1 0000032e: JUMPI 0000032f: DUP1 00000330: PUSH4 0x06fdde03 00000335: EQ 00000336: PUSH2 0x03c8 00000339: JUMPI 0000033a: PUSH0 0000033b: PUSH0 0000033c: REVERT 0000033d: JUMPDEST 0000033e: CALLDATASIZE 0000033f: PUSH2 0x037c 00000342: JUMPI 00000343: PUSH1 0x40 00000345: DUP1 00000346: MLOAD 00000347: CALLER 00000348: DUP2 00000349: MSTORE 0000034a: CALLVALUE 0000034b: PUSH1 0x20 0000034d: DUP3 0000034e: ADD 0000034f: MSTORE 00000350: PUSH32 0x88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874 00000371: SWAP2 00000372: ADD 00000373: PUSH1 0x40 00000375: MLOAD 00000376: DUP1 00000377: SWAP2 00000378: SUB 00000379: SWAP1 0000037a: LOG1 0000037b: STOP 0000037c: JUMPDEST 0000037d: PUSH0 0000037e: PUSH0 0000037f: REVERT 00000380: JUMPDEST 00000381: CALLVALUE 00000382: DUP1 00000383: ISZERO 00000384: PUSH2 0x038b 00000387: JUMPI 00000388: PUSH0 00000389: PUSH0 0000038a: REVERT 0000038b: JUMPDEST 0000038c: POP 0000038d: PUSH2 0x039f 00000390: PUSH2 0x039a 00000393: CALLDATASIZE 00000394: PUSH1 0x04 00000396: PUSH2 0x3513 00000399: JUMP 0000039a: JUMPDEST 0000039b: PUSH2 0x0ba3 0000039e: JUMP 0000039f: JUMPDEST 000003a0: STOP 000003a1: JUMPDEST 000003a2: CALLVALUE 000003a3: DUP1 000003a4: ISZERO 000003a5: PUSH2 0x03ac 000003a8: JUMPI 000003a9: PUSH0 000003aa: PUSH0 000003ab: REVERT 000003ac: JUMPDEST 000003ad: POP 000003ae: PUSH2 0x03b5 000003b1: PUSH2 0x0c61 000003b4: JUMP 000003b5: JUMPDEST 000003b6: PUSH1 0x40 000003b8: MLOAD 000003b9: SWAP1 000003ba: DUP2 000003bb: MSTORE 000003bc: PUSH1 0x20 000003be: ADD 000003bf: JUMPDEST 000003c0: PUSH1 0x40 000003c2: MLOAD 000003c3: DUP1 000003c4: SWAP2 000003c5: SUB 000003c6: SWAP1 000003c7: RETURN 000003c8: JUMPDEST 000003c9: CALLVALUE 000003ca: DUP1 000003cb: ISZERO 000003cc: PUSH2 0x03d3 000003cf: JUMPI 000003d0: PUSH0 000003d1: PUSH0 000003d2: REVERT 000003d3: JUMPDEST 000003d4: POP 000003d5: PUSH2 0x03dc 000003d8: PUSH2 0x0d25 000003db: JUMP 000003dc: JUMPDEST 000003dd: PUSH1 0x40 000003df: MLOAD 000003e0: PUSH2 0x03bf 000003e3: SWAP2 000003e4: SWAP1 000003e5: PUSH2 0x3577 000003e8: JUMP 000003e9: JUMPDEST 000003ea: CALLVALUE 000003eb: DUP1 000003ec: ISZERO 000003ed: PUSH2 0x03f4 000003f0: JUMPI 000003f1: PUSH0 000003f2: PUSH0 000003f3: REVERT 000003f4: JUMPDEST 000003f5: POP 000003f6: PUSH2 0x03b5 000003f9: PUSH2 0x0403 000003fc: CALLDATASIZE 000003fd: PUSH1 0x04 000003ff: PUSH2 0x3513 00000402: JUMP 00000403: JUMPDEST 00000404: PUSH2 0x0df8 00000407: JUMP 00000408: JUMPDEST 00000409: CALLVALUE 0000040a: DUP1 0000040b: ISZERO 0000040c: PUSH2 0x0413 0000040f: JUMPI 00000410: PUSH0 00000411: PUSH0 00000412: REVERT 00000413: JUMPDEST 00000414: POP 00000415: PUSH2 0x0427 00000418: PUSH2 0x0422 0000041b: CALLDATASIZE 0000041c: PUSH1 0x04 0000041e: PUSH2 0x359d 00000421: JUMP 00000422: JUMPDEST 00000423: PUSH2 0x0e09 00000426: JUMP 00000427: JUMPDEST 00000428: PUSH1 0x40 0000042a: MLOAD 0000042b: SWAP1 0000042c: ISZERO 0000042d: ISZERO 0000042e: DUP2 0000042f: MSTORE 00000430: PUSH1 0x20 00000432: ADD 00000433: PUSH2 0x03bf 00000436: JUMP 00000437: JUMPDEST 00000438: CALLVALUE 00000439: DUP1 0000043a: ISZERO 0000043b: PUSH2 0x0442 0000043e: JUMPI 0000043f: PUSH0 00000440: PUSH0 00000441: REVERT 00000442: JUMPDEST 00000443: POP 00000444: PUSH2 0x03b5 00000447: PUSH2 0x0451 0000044a: CALLDATASIZE 0000044b: PUSH1 0x04 0000044d: PUSH2 0x3513 00000450: JUMP 00000451: JUMPDEST 00000452: PUSH2 0x0e20 00000455: JUMP 00000456: JUMPDEST 00000457: CALLVALUE 00000458: DUP1 00000459: ISZERO 0000045a: PUSH2 0x0461 0000045d: JUMPI 0000045e: PUSH0 0000045f: PUSH0 00000460: REVERT 00000461: JUMPDEST 00000462: POP 00000463: PUSH2 0x049a 00000466: PUSH2 0x0470 00000469: CALLDATASIZE 0000046a: PUSH1 0x04 0000046c: PUSH2 0x360c 0000046f: JUMP 00000470: JUMPDEST 00000471: PUSH32 0x150b7a0200000000000000000000000000000000000000000000000000000000 00000492: SWAP6 00000493: SWAP5 00000494: POP 00000495: POP 00000496: POP 00000497: POP 00000498: POP 00000499: JUMP 0000049a: JUMPDEST 0000049b: PUSH1 0x40 0000049d: MLOAD 0000049e: PUSH1 0x01 000004a0: PUSH1 0x01 000004a2: PUSH1 0xe0 000004a4: SHL 000004a5: SUB 000004a6: NOT 000004a7: SWAP1 000004a8: SWAP2 000004a9: AND 000004aa: DUP2 000004ab: MSTORE 000004ac: PUSH1 0x20 000004ae: ADD 000004af: PUSH2 0x03bf 000004b2: JUMP 000004b3: JUMPDEST 000004b4: CALLVALUE 000004b5: DUP1 000004b6: ISZERO 000004b7: PUSH2 0x04be 000004ba: JUMPI 000004bb: PUSH0 000004bc: PUSH0 000004bd: REVERT 000004be: JUMPDEST 000004bf: POP 000004c0: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02 000004e1: SLOAD 000004e2: PUSH2 0x03b5 000004e5: JUMP 000004e6: JUMPDEST 000004e7: CALLVALUE 000004e8: DUP1 000004e9: ISZERO 000004ea: PUSH2 0x04f1 000004ed: JUMPI 000004ee: PUSH0 000004ef: PUSH0 000004f0: REVERT 000004f1: JUMPDEST 000004f2: POP 000004f3: PUSH2 0x03b5 000004f6: PUSH1 0x05 000004f8: SLOAD 000004f9: DUP2 000004fa: JUMP 000004fb: JUMPDEST 000004fc: CALLVALUE 000004fd: DUP1 000004fe: ISZERO 000004ff: PUSH2 0x0506 00000502: JUMPI 00000503: PUSH0 00000504: PUSH0 00000505: REVERT 00000506: JUMPDEST 00000507: POP 00000508: PUSH2 0x039f 0000050b: PUSH2 0x0515 0000050e: CALLDATASIZE 0000050f: PUSH1 0x04 00000511: PUSH2 0x367a 00000514: JUMP 00000515: JUMPDEST 00000516: PUSH2 0x0e49 00000519: JUMP 0000051a: JUMPDEST 0000051b: CALLVALUE 0000051c: DUP1 0000051d: ISZERO 0000051e: PUSH2 0x0525 00000521: JUMPI 00000522: PUSH0 00000523: PUSH0 00000524: REVERT 00000525: JUMPDEST 00000526: POP 00000527: PUSH2 0x039f 0000052a: PUSH2 0x0534 0000052d: CALLDATASIZE 0000052e: PUSH1 0x04 00000530: PUSH2 0x374b 00000533: JUMP 00000534: JUMPDEST 00000535: PUSH2 0x0fae 00000538: JUMP 00000539: JUMPDEST 0000053a: CALLVALUE 0000053b: DUP1 0000053c: ISZERO 0000053d: PUSH2 0x0544 00000540: JUMPI 00000541: PUSH0 00000542: PUSH0 00000543: REVERT 00000544: JUMPDEST 00000545: POP 00000546: PUSH2 0x0558 00000549: PUSH2 0x0553 0000054c: CALLDATASIZE 0000054d: PUSH1 0x04 0000054f: PUSH2 0x3815 00000552: JUMP 00000553: JUMPDEST 00000554: PUSH2 0x1110 00000557: JUMP 00000558: JUMPDEST 00000559: PUSH1 0x40 0000055b: MLOAD 0000055c: PUSH2 0x03bf 0000055f: SWAP2 00000560: SWAP1 00000561: PUSH2 0x38b4 00000564: JUMP 00000565: JUMPDEST 00000566: CALLVALUE 00000567: DUP1 00000568: ISZERO 00000569: PUSH2 0x0570 0000056c: JUMPI 0000056d: PUSH0 0000056e: PUSH0 0000056f: REVERT 00000570: JUMPDEST 00000571: POP 00000572: PUSH2 0x0427 00000575: PUSH2 0x057f 00000578: CALLDATASIZE 00000579: PUSH1 0x04 0000057b: PUSH2 0x3917 0000057e: JUMP 0000057f: JUMPDEST 00000580: PUSH2 0x140e 00000583: JUMP 00000584: JUMPDEST 00000585: CALLVALUE 00000586: DUP1 00000587: ISZERO 00000588: PUSH2 0x058f 0000058b: JUMPI 0000058c: PUSH0 0000058d: PUSH0 0000058e: REVERT 0000058f: JUMPDEST 00000590: POP 00000591: PUSH2 0x0598 00000594: PUSH2 0x1431 00000597: JUMP 00000598: JUMPDEST 00000599: PUSH1 0x40 0000059b: MLOAD 0000059c: PUSH1 0xff 0000059e: SWAP1 0000059f: SWAP2 000005a0: AND 000005a1: DUP2 000005a2: MSTORE 000005a3: PUSH1 0x20 000005a5: ADD 000005a6: PUSH2 0x03bf 000005a9: JUMP 000005aa: JUMPDEST 000005ab: CALLVALUE 000005ac: DUP1 000005ad: ISZERO 000005ae: PUSH2 0x05b5 000005b1: JUMPI 000005b2: PUSH0 000005b3: PUSH0 000005b4: REVERT 000005b5: JUMPDEST 000005b6: POP 000005b7: PUSH32 0x0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00 000005d8: SLOAD 000005d9: PUSH1 0x01 000005db: PUSH1 0x01 000005dd: PUSH1 0xa0 000005df: SHL 000005e0: SUB 000005e1: AND 000005e2: JUMPDEST 000005e3: PUSH1 0x40 000005e5: MLOAD 000005e6: PUSH1 0x01 000005e8: PUSH1 0x01 000005ea: PUSH1 0xa0 000005ec: SHL 000005ed: SUB 000005ee: SWAP1 000005ef: SWAP2 000005f0: AND 000005f1: DUP2 000005f2: MSTORE 000005f3: PUSH1 0x20 000005f5: ADD 000005f6: PUSH2 0x03bf 000005f9: JUMP 000005fa: JUMPDEST 000005fb: CALLVALUE 000005fc: DUP1 000005fd: ISZERO 000005fe: PUSH2 0x0605 00000601: JUMPI 00000602: PUSH0 00000603: PUSH0 00000604: REVERT 00000605: JUMPDEST 00000606: POP 00000607: PUSH2 0x039f 0000060a: PUSH2 0x146d 0000060d: JUMP 0000060e: JUMPDEST 0000060f: CALLVALUE 00000610: DUP1 00000611: ISZERO 00000612: PUSH2 0x0619 00000615: JUMPI 00000616: PUSH0 00000617: PUSH0 00000618: REVERT 00000619: JUMPDEST 0000061a: POP 0000061b: PUSH2 0x03b5 0000061e: PUSH2 0x0628 00000621: CALLDATASIZE 00000622: PUSH1 0x04 00000624: PUSH2 0x3955 00000627: JUMP 00000628: JUMPDEST 00000629: PUSH2 0x14c7 0000062c: JUMP 0000062d: JUMPDEST 0000062e: CALLVALUE 0000062f: DUP1 00000630: ISZERO 00000631: PUSH2 0x0638 00000634: JUMPI 00000635: PUSH0 00000636: PUSH0 00000637: REVERT 00000638: JUMPDEST 00000639: POP 0000063a: PUSH1 0x07 0000063c: SLOAD 0000063d: PUSH2 0x05e2 00000640: SWAP1 00000641: PUSH1 0x01 00000643: PUSH1 0x01 00000645: PUSH1 0xa0 00000647: SHL 00000648: SUB 00000649: AND 0000064a: DUP2 0000064b: JUMP 0000064c: JUMPDEST 0000064d: CALLVALUE 0000064e: DUP1 0000064f: ISZERO 00000650: PUSH2 0x0657 00000653: JUMPI 00000654: PUSH0 00000655: PUSH0 00000656: REVERT 00000657: JUMPDEST 00000658: POP 00000659: PUSH2 0x03b5 0000065c: PUSH2 0x0666 0000065f: CALLDATASIZE 00000660: PUSH1 0x04 00000662: PUSH2 0x3513 00000665: JUMP 00000666: JUMPDEST 00000667: PUSH2 0x1506 0000066a: JUMP 0000066b: JUMPDEST 0000066c: CALLVALUE 0000066d: DUP1 0000066e: ISZERO 0000066f: PUSH2 0x0676 00000672: JUMPI 00000673: PUSH0 00000674: PUSH0 00000675: REVERT 00000676: JUMPDEST 00000677: POP 00000678: PUSH2 0x06a7 0000067b: PUSH2 0x0685 0000067e: CALLDATASIZE 0000067f: PUSH1 0x04 00000681: PUSH2 0x3955 00000684: JUMP 00000685: JUMPDEST 00000686: PUSH1 0x01 00000688: PUSH1 0x01 0000068a: PUSH1 0xa0 0000068c: SHL 0000068d: SUB 0000068e: AND 0000068f: PUSH0 00000690: SWAP1 00000691: DUP2 00000692: MSTORE 00000693: PUSH1 0x08 00000695: PUSH1 0x20 00000697: MSTORE 00000698: PUSH1 0x40 0000069a: SWAP1 0000069b: KECCAK256 0000069c: DUP1 0000069d: SLOAD 0000069e: PUSH1 0x01 000006a0: SWAP1 000006a1: SWAP2 000006a2: ADD 000006a3: SLOAD 000006a4: SWAP1 000006a5: SWAP2 000006a6: JUMP 000006a7: JUMPDEST 000006a8: PUSH1 0x40 000006aa: DUP1 000006ab: MLOAD 000006ac: SWAP3 000006ad: DUP4 000006ae: MSTORE 000006af: PUSH1 0x20 000006b1: DUP4 000006b2: ADD 000006b3: SWAP2 000006b4: SWAP1 000006b5: SWAP2 000006b6: MSTORE 000006b7: ADD 000006b8: PUSH2 0x03bf 000006bb: JUMP 000006bc: JUMPDEST 000006bd: CALLVALUE 000006be: DUP1 000006bf: ISZERO 000006c0: PUSH2 0x06c7 000006c3: JUMPI 000006c4: PUSH0 000006c5: PUSH0 000006c6: REVERT 000006c7: JUMPDEST 000006c8: POP 000006c9: PUSH2 0x03b5 000006cc: PUSH1 0x06 000006ce: SLOAD 000006cf: DUP2 000006d0: JUMP 000006d1: JUMPDEST 000006d2: CALLVALUE 000006d3: DUP1 000006d4: ISZERO 000006d5: PUSH2 0x06dc 000006d8: JUMPI 000006d9: PUSH0 000006da: PUSH0 000006db: REVERT 000006dc: JUMPDEST 000006dd: POP 000006de: PUSH32 0xcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300 000006ff: SLOAD 00000700: PUSH1 0xff 00000702: AND 00000703: PUSH2 0x0427 00000706: JUMP 00000707: JUMPDEST 00000708: CALLVALUE 00000709: DUP1 0000070a: ISZERO 0000070b: PUSH2 0x0712 0000070e: JUMPI 0000070f: PUSH0 00000710: PUSH0 00000711: REVERT 00000712: JUMPDEST 00000713: POP 00000714: PUSH2 0x039f 00000717: PUSH2 0x0721 0000071a: CALLDATASIZE 0000071b: PUSH1 0x04 0000071d: PUSH2 0x367a 00000720: JUMP 00000721: JUMPDEST 00000722: PUSH2 0x1529 00000725: JUMP 00000726: JUMPDEST 00000727: CALLVALUE 00000728: DUP1 00000729: ISZERO 0000072a: PUSH2 0x0731 0000072d: JUMPI 0000072e: PUSH0 0000072f: PUSH0 00000730: REVERT 00000731: JUMPDEST 00000732: POP 00000733: PUSH2 0x03b5 00000736: PUSH2 0x0740 00000739: CALLDATASIZE 0000073a: PUSH1 0x04 0000073c: PUSH2 0x3970 0000073f: JUMP 00000740: JUMPDEST 00000741: PUSH2 0x168a 00000744: JUMP 00000745: JUMPDEST 00000746: CALLVALUE 00000747: DUP1 00000748: ISZERO 00000749: PUSH2 0x0750 0000074c: JUMPI 0000074d: PUSH0 0000074e: PUSH0 0000074f: REVERT 00000750: JUMPDEST 00000751: POP 00000752: PUSH2 0x03b5 00000755: PUSH2 0x075f 00000758: CALLDATASIZE 00000759: PUSH1 0x04 0000075b: PUSH2 0x3955 0000075e: JUMP 0000075f: JUMPDEST 00000760: PUSH1 0x01 00000762: PUSH1 0x01 00000764: PUSH1 0xa0 00000766: SHL 00000767: SUB 00000768: AND 00000769: PUSH0 0000076a: SWAP1 0000076b: DUP2 0000076c: MSTORE 0000076d: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00 0000078e: PUSH1 0x20 00000790: MSTORE 00000791: PUSH1 0x40 00000793: SWAP1 00000794: KECCAK256 00000795: SLOAD 00000796: SWAP1 00000797: JUMP 00000798: JUMPDEST 00000799: CALLVALUE 0000079a: DUP1 0000079b: ISZERO 0000079c: PUSH2 0x07a3 0000079f: JUMPI 000007a0: PUSH0 000007a1: PUSH0 000007a2: REVERT 000007a3: JUMPDEST 000007a4: POP 000007a5: PUSH2 0x039f 000007a8: PUSH2 0x07b2 000007ab: CALLDATASIZE 000007ac: PUSH1 0x04 000007ae: PUSH2 0x3955 000007b1: JUMP 000007b2: JUMPDEST 000007b3: PUSH2 0x169d 000007b6: JUMP 000007b7: JUMPDEST 000007b8: CALLVALUE 000007b9: DUP1 000007ba: ISZERO 000007bb: PUSH2 0x07c2 000007be: JUMPI 000007bf: PUSH0 000007c0: PUSH0 000007c1: REVERT 000007c2: JUMPDEST 000007c3: POP 000007c4: PUSH2 0x03b5 000007c7: PUSH2 0x07d1 000007ca: CALLDATASIZE 000007cb: PUSH1 0x04 000007cd: PUSH2 0x399e 000007d0: JUMP 000007d1: JUMPDEST 000007d2: PUSH2 0x17aa 000007d5: JUMP 000007d6: JUMPDEST 000007d7: CALLVALUE 000007d8: DUP1 000007d9: ISZERO 000007da: PUSH2 0x07e1 000007dd: JUMPI 000007de: PUSH0 000007df: PUSH0 000007e0: REVERT 000007e1: JUMPDEST 000007e2: POP 000007e3: PUSH2 0x039f 000007e6: PUSH2 0x1a1e 000007e9: JUMP 000007ea: JUMPDEST 000007eb: CALLVALUE 000007ec: DUP1 000007ed: ISZERO 000007ee: PUSH2 0x07f5 000007f1: JUMPI 000007f2: PUSH0 000007f3: PUSH0 000007f4: REVERT 000007f5: JUMPDEST 000007f6: POP 000007f7: PUSH32 0xdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea00 00000818: SLOAD 00000819: PUSH1 0x01 0000081b: PUSH1 0x01 0000081d: PUSH1 0xa0 0000081f: SHL 00000820: SUB 00000821: AND 00000822: PUSH2 0x05e2 00000825: JUMP 00000826: JUMPDEST 00000827: CALLVALUE 00000828: DUP1 00000829: ISZERO 0000082a: PUSH2 0x0831 0000082d: JUMPI 0000082e: PUSH0 0000082f: PUSH0 00000830: REVERT 00000831: JUMPDEST 00000832: POP 00000833: PUSH2 0x03b5 00000836: PUSH2 0x0840 00000839: CALLDATASIZE 0000083a: PUSH1 0x04 0000083c: PUSH2 0x3970 0000083f: JUMP 00000840: JUMPDEST 00000841: PUSH2 0x1a76 00000844: JUMP 00000845: JUMPDEST 00000846: CALLVALUE 00000847: DUP1 00000848: ISZERO 00000849: PUSH2 0x0850 0000084c: JUMPI 0000084d: PUSH0 0000084e: PUSH0 0000084f: REVERT 00000850: JUMPDEST 00000851: POP 00000852: PUSH2 0x03dc 00000855: PUSH2 0x1a89 00000858: JUMP 00000859: JUMPDEST 0000085a: CALLVALUE 0000085b: DUP1 0000085c: ISZERO 0000085d: PUSH2 0x0864 00000860: JUMPI 00000861: PUSH0 00000862: PUSH0 00000863: REVERT 00000864: JUMPDEST 00000865: POP 00000866: PUSH2 0x0427 00000869: PUSH2 0x0873 0000086c: CALLDATASIZE 0000086d: PUSH1 0x04 0000086f: PUSH2 0x359d 00000872: JUMP 00000873: JUMPDEST 00000874: PUSH2 0x1ada 00000877: JUMP 00000878: JUMPDEST 00000879: CALLVALUE 0000087a: DUP1 0000087b: ISZERO 0000087c: PUSH2 0x0883 0000087f: JUMPI 00000880: PUSH0 00000881: PUSH0 00000882: REVERT 00000883: JUMPDEST 00000884: POP 00000885: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 000008a6: SLOAD 000008a7: PUSH1 0x01 000008a9: PUSH1 0x01 000008ab: PUSH1 0xa0 000008ad: SHL 000008ae: SUB 000008af: AND 000008b0: PUSH2 0x05e2 000008b3: JUMP 000008b4: JUMPDEST 000008b5: CALLVALUE 000008b6: DUP1 000008b7: ISZERO 000008b8: PUSH2 0x08bf 000008bb: JUMPI 000008bc: PUSH0 000008bd: PUSH0 000008be: REVERT 000008bf: JUMPDEST 000008c0: POP 000008c1: PUSH2 0x03b5 000008c4: PUSH1 0x03 000008c6: SLOAD 000008c7: DUP2 000008c8: JUMP 000008c9: JUMPDEST 000008ca: CALLVALUE 000008cb: DUP1 000008cc: ISZERO 000008cd: PUSH2 0x08d4 000008d0: JUMPI 000008d1: PUSH0 000008d2: PUSH0 000008d3: REVERT 000008d4: JUMPDEST 000008d5: POP 000008d6: PUSH2 0x03b5 000008d9: PUSH2 0x1ae7 000008dc: JUMP 000008dd: JUMPDEST 000008de: CALLVALUE 000008df: DUP1 000008e0: ISZERO 000008e1: PUSH2 0x08e8 000008e4: JUMPI 000008e5: PUSH0 000008e6: PUSH0 000008e7: REVERT 000008e8: JUMPDEST 000008e9: POP 000008ea: PUSH2 0x03b5 000008ed: PUSH2 0x08f7 000008f0: CALLDATASIZE 000008f1: PUSH1 0x04 000008f3: PUSH2 0x3513 000008f6: JUMP 000008f7: JUMPDEST 000008f8: PUSH2 0x1b89 000008fb: JUMP 000008fc: JUMPDEST 000008fd: CALLVALUE 000008fe: DUP1 000008ff: ISZERO 00000900: PUSH2 0x0907 00000903: JUMPI 00000904: PUSH0 00000905: PUSH0 00000906: REVERT 00000907: JUMPDEST 00000908: POP 00000909: PUSH2 0x03b5 0000090c: PUSH2 0x0916 0000090f: CALLDATASIZE 00000910: PUSH1 0x04 00000912: PUSH2 0x399e 00000915: JUMP 00000916: JUMPDEST 00000917: PUSH2 0x1bac 0000091a: JUMP 0000091b: JUMPDEST 0000091c: CALLVALUE 0000091d: DUP1 0000091e: ISZERO 0000091f: PUSH2 0x0926 00000922: JUMPI 00000923: PUSH0 00000924: PUSH0 00000925: REVERT 00000926: JUMPDEST 00000927: POP 00000928: PUSH2 0x03b5 0000092b: PUSH2 0x0935 0000092e: CALLDATASIZE 0000092f: PUSH1 0x04 00000931: PUSH2 0x399e 00000934: JUMP 00000935: JUMPDEST 00000936: PUSH2 0x1be7 00000939: JUMP 0000093a: JUMPDEST 0000093b: CALLVALUE 0000093c: DUP1 0000093d: ISZERO 0000093e: PUSH2 0x0945 00000941: JUMPI 00000942: PUSH0 00000943: PUSH0 00000944: REVERT 00000945: JUMPDEST 00000946: POP 00000947: PUSH2 0x049a 0000094a: PUSH2 0x0954 0000094d: CALLDATASIZE 0000094e: PUSH1 0x04 00000950: PUSH2 0x39dd 00000953: JUMP 00000954: JUMPDEST 00000955: PUSH32 0xbc197c8100000000000000000000000000000000000000000000000000000000 00000976: SWAP9 00000977: SWAP8 00000978: POP 00000979: POP 0000097a: POP 0000097b: POP 0000097c: POP 0000097d: POP 0000097e: POP 0000097f: POP 00000980: JUMP 00000981: JUMPDEST 00000982: CALLVALUE 00000983: DUP1 00000984: ISZERO 00000985: PUSH2 0x098c 00000988: JUMPI 00000989: PUSH0 0000098a: PUSH0 0000098b: REVERT 0000098c: JUMPDEST 0000098d: POP 0000098e: PUSH32 0xdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea01 000009af: SLOAD 000009b0: PUSH1 0x01 000009b2: PUSH1 0x01 000009b4: PUSH1 0xa0 000009b6: SHL 000009b7: SUB 000009b8: AND 000009b9: PUSH2 0x05e2 000009bc: JUMP 000009bd: JUMPDEST 000009be: CALLVALUE 000009bf: DUP1 000009c0: ISZERO 000009c1: PUSH2 0x09c8 000009c4: JUMPI 000009c5: PUSH0 000009c6: PUSH0 000009c7: REVERT 000009c8: JUMPDEST 000009c9: POP 000009ca: PUSH2 0x03b5 000009cd: PUSH2 0x09d7 000009d0: CALLDATASIZE 000009d1: PUSH1 0x04 000009d3: PUSH2 0x3513 000009d6: JUMP 000009d7: JUMPDEST 000009d8: PUSH2 0x1c03 000009db: JUMP 000009dc: JUMPDEST 000009dd: CALLVALUE 000009de: DUP1 000009df: ISZERO 000009e0: PUSH2 0x09e7 000009e3: JUMPI 000009e4: PUSH0 000009e5: PUSH0 000009e6: REVERT 000009e7: JUMPDEST 000009e8: POP 000009e9: PUSH2 0x03b5 000009ec: PUSH2 0x09f6 000009ef: CALLDATASIZE 000009f0: PUSH1 0x04 000009f2: PUSH2 0x3955 000009f5: JUMP 000009f6: JUMPDEST 000009f7: PUSH2 0x1c0e 000009fa: JUMP 000009fb: JUMPDEST 000009fc: CALLVALUE 000009fd: DUP1 000009fe: ISZERO 000009ff: PUSH2 0x0a06 00000a02: JUMPI 00000a03: PUSH0 00000a04: PUSH0 00000a05: REVERT 00000a06: JUMPDEST 00000a07: POP 00000a08: PUSH2 0x03b5 00000a0b: PUSH2 0x0a15 00000a0e: CALLDATASIZE 00000a0f: PUSH1 0x04 00000a11: PUSH2 0x3955 00000a14: JUMP 00000a15: JUMPDEST 00000a16: PUSH2 0x1c4f 00000a19: JUMP 00000a1a: JUMPDEST 00000a1b: CALLVALUE 00000a1c: DUP1 00000a1d: ISZERO 00000a1e: PUSH2 0x0a25 00000a21: JUMPI 00000a22: PUSH0 00000a23: PUSH0 00000a24: REVERT 00000a25: JUMPDEST 00000a26: POP 00000a27: PUSH2 0x0427 00000a2a: PUSH2 0x0a34 00000a2d: CALLDATASIZE 00000a2e: PUSH1 0x04 00000a30: PUSH2 0x3aa0 00000a33: JUMP 00000a34: JUMPDEST 00000a35: PUSH2 0x1c90 00000a38: JUMP 00000a39: JUMPDEST 00000a3a: CALLVALUE 00000a3b: DUP1 00000a3c: ISZERO 00000a3d: PUSH2 0x0a44 00000a40: JUMPI 00000a41: PUSH0 00000a42: PUSH0 00000a43: REVERT 00000a44: JUMPDEST 00000a45: POP 00000a46: PUSH2 0x039f 00000a49: PUSH2 0x0a53 00000a4c: CALLDATASIZE 00000a4d: PUSH1 0x04 00000a4f: PUSH2 0x3513 00000a52: JUMP 00000a53: JUMPDEST 00000a54: PUSH2 0x1d87 00000a57: JUMP 00000a58: JUMPDEST 00000a59: CALLVALUE 00000a5a: DUP1 00000a5b: ISZERO 00000a5c: PUSH2 0x0a63 00000a5f: JUMPI 00000a60: PUSH0 00000a61: PUSH0 00000a62: REVERT 00000a63: JUMPDEST 00000a64: POP 00000a65: PUSH2 0x03b5 00000a68: PUSH2 0x0a72 00000a6b: CALLDATASIZE 00000a6c: PUSH1 0x04 00000a6e: PUSH2 0x3ad8 00000a71: JUMP 00000a72: JUMPDEST 00000a73: PUSH1 0x01 00000a75: PUSH1 0x01 00000a77: PUSH1 0xa0 00000a79: SHL 00000a7a: SUB 00000a7b: SWAP2 00000a7c: DUP3 00000a7d: AND 00000a7e: PUSH0 00000a7f: SWAP1 00000a80: DUP2 00000a81: MSTORE 00000a82: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01 00000aa3: PUSH1 0x20 00000aa5: SWAP1 00000aa6: DUP2 00000aa7: MSTORE 00000aa8: PUSH1 0x40 00000aaa: DUP1 00000aab: DUP4 00000aac: KECCAK256 00000aad: SWAP4 00000aae: SWAP1 00000aaf: SWAP5 00000ab0: AND 00000ab1: DUP3 00000ab2: MSTORE 00000ab3: SWAP2 00000ab4: SWAP1 00000ab5: SWAP2 00000ab6: MSTORE 00000ab7: KECCAK256 00000ab8: SLOAD 00000ab9: SWAP1 00000aba: JUMP 00000abb: JUMPDEST 00000abc: CALLVALUE 00000abd: DUP1 00000abe: ISZERO 00000abf: PUSH2 0x0ac6 00000ac2: JUMPI 00000ac3: PUSH0 00000ac4: PUSH0 00000ac5: REVERT 00000ac6: JUMPDEST 00000ac7: POP 00000ac8: PUSH2 0x03b5 00000acb: PUSH2 0x0ad5 00000ace: CALLDATASIZE 00000acf: PUSH1 0x04 00000ad1: PUSH2 0x3513 00000ad4: JUMP 00000ad5: JUMPDEST 00000ad6: PUSH2 0x1e40 00000ad9: JUMP 00000ada: JUMPDEST 00000adb: CALLVALUE 00000adc: DUP1 00000add: ISZERO 00000ade: PUSH2 0x0ae5 00000ae1: JUMPI 00000ae2: PUSH0 00000ae3: PUSH0 00000ae4: REVERT 00000ae5: JUMPDEST 00000ae6: POP 00000ae7: PUSH2 0x039f 00000aea: PUSH2 0x0af4 00000aed: CALLDATASIZE 00000aee: PUSH1 0x04 00000af0: PUSH2 0x3955 00000af3: JUMP 00000af4: JUMPDEST 00000af5: PUSH2 0x1e5d 00000af8: JUMP 00000af9: JUMPDEST 00000afa: CALLVALUE 00000afb: DUP1 00000afc: ISZERO 00000afd: PUSH2 0x0b04 00000b00: JUMPI 00000b01: PUSH0 00000b02: PUSH0 00000b03: REVERT 00000b04: JUMPDEST 00000b05: POP 00000b06: PUSH2 0x049a 00000b09: PUSH2 0x0b13 00000b0c: CALLDATASIZE 00000b0d: PUSH1 0x04 00000b0f: PUSH2 0x3b04 00000b12: JUMP 00000b13: JUMPDEST 00000b14: PUSH32 0xf23a6e6100000000000000000000000000000000000000000000000000000000 00000b35: SWAP7 00000b36: SWAP6 00000b37: POP 00000b38: POP 00000b39: POP 00000b3a: POP 00000b3b: POP 00000b3c: POP 00000b3d: JUMP 00000b3e: JUMPDEST 00000b3f: CALLVALUE 00000b40: DUP1 00000b41: ISZERO 00000b42: PUSH2 0x0b49 00000b45: JUMPI 00000b46: PUSH0 00000b47: PUSH0 00000b48: REVERT 00000b49: JUMPDEST 00000b4a: POP 00000b4b: PUSH2 0x039f 00000b4e: PUSH2 0x0b58 00000b51: CALLDATASIZE 00000b52: PUSH1 0x04 00000b54: PUSH2 0x3955 00000b57: JUMP 00000b58: JUMPDEST 00000b59: PUSH2 0x1f16 00000b5c: JUMP 00000b5d: JUMPDEST 00000b5e: CALLVALUE 00000b5f: DUP1 00000b60: ISZERO 00000b61: PUSH2 0x0b68 00000b64: JUMPI 00000b65: PUSH0 00000b66: PUSH0 00000b67: REVERT 00000b68: JUMPDEST 00000b69: POP 00000b6a: PUSH2 0x03dc 00000b6d: PUSH2 0x0b77 00000b70: CALLDATASIZE 00000b71: PUSH1 0x04 00000b73: PUSH2 0x3b69 00000b76: JUMP 00000b77: JUMPDEST 00000b78: PUSH2 0x1fd0 00000b7b: JUMP 00000b7c: JUMPDEST 00000b7d: CALLVALUE 00000b7e: DUP1 00000b7f: ISZERO 00000b80: PUSH2 0x0b87 00000b83: JUMPI 00000b84: PUSH0 00000b85: PUSH0 00000b86: REVERT 00000b87: JUMPDEST 00000b88: POP 00000b89: PUSH2 0x05e2 00000b8c: PUSH20 0x6e879d0ccc85085a709ebf5539224f53d0d396b0 00000ba1: DUP2 00000ba2: JUMP 00000ba3: JUMPDEST 00000ba4: PUSH2 0x0bb8 00000ba7: CALLER 00000ba8: PUSH0 00000ba9: CALLDATALOAD 00000baa: PUSH1 0x01 00000bac: PUSH1 0x01 00000bae: PUSH1 0xe0 00000bb0: SHL 00000bb1: SUB 00000bb2: NOT 00000bb3: AND 00000bb4: PUSH2 0x1c90 00000bb7: JUMP 00000bb8: JUMPDEST 00000bb9: PUSH2 0x0bf8 00000bbc: JUMPI 00000bbd: PUSH1 0x40 00000bbf: MLOAD 00000bc0: PUSH3 0x461bcd 00000bc4: PUSH1 0xe5 00000bc6: SHL 00000bc7: DUP2 00000bc8: MSTORE 00000bc9: PUSH1 0x20 00000bcb: PUSH1 0x04 00000bcd: DUP3 00000bce: ADD 00000bcf: MSTORE 00000bd0: PUSH1 0x0c 00000bd2: PUSH1 0x24 00000bd4: DUP3 00000bd5: ADD 00000bd6: MSTORE 00000bd7: PUSH12 0x15539055551213d492569151 00000be4: PUSH1 0xa2 00000be6: SHL 00000be7: PUSH1 0x44 00000be9: DUP3 00000bea: ADD 00000beb: MSTORE 00000bec: PUSH1 0x64 00000bee: ADD 00000bef: JUMPDEST 00000bf0: PUSH1 0x40 00000bf2: MLOAD 00000bf3: DUP1 00000bf4: SWAP2 00000bf5: SUB 00000bf6: SWAP1 00000bf7: REVERT 00000bf8: JUMPDEST 00000bf9: PUSH8 0x016345785d8a0000 00000c02: DUP2 00000c03: LT 00000c04: PUSH2 0x0c20 00000c07: JUMPI 00000c08: PUSH1 0x40 00000c0a: MLOAD 00000c0b: PUSH4 0x58d620b3 00000c10: PUSH1 0xe0 00000c12: SHL 00000c13: DUP2 00000c14: MSTORE 00000c15: PUSH1 0x04 00000c17: ADD 00000c18: PUSH1 0x40 00000c1a: MLOAD 00000c1b: DUP1 00000c1c: SWAP2 00000c1d: SUB 00000c1e: SWAP1 00000c1f: REVERT 00000c20: JUMPDEST 00000c21: PUSH1 0x06 00000c23: SLOAD 00000c24: PUSH1 0x40 00000c26: DUP1 00000c27: MLOAD 00000c28: SWAP2 00000c29: DUP3 00000c2a: MSTORE 00000c2b: PUSH1 0x20 00000c2d: DUP3 00000c2e: ADD 00000c2f: DUP4 00000c30: SWAP1 00000c31: MSTORE 00000c32: PUSH32 0x828cf983933545af35b9ba46eec951db1cb4c5433c3ec403aeced2963c264790 00000c53: SWAP2 00000c54: ADD 00000c55: PUSH1 0x40 00000c57: MLOAD 00000c58: DUP1 00000c59: SWAP2 00000c5a: SUB 00000c5b: SWAP1 00000c5c: LOG1 00000c5d: PUSH1 0x06 00000c5f: SSTORE 00000c60: JUMP 00000c61: JUMPDEST 00000c62: PUSH1 0x40 00000c64: MLOAD 00000c65: PUSH4 0x02c68be3 00000c6a: PUSH1 0xe3 00000c6c: SHL 00000c6d: DUP2 00000c6e: MSTORE 00000c6f: ADDRESS 00000c70: PUSH1 0x04 00000c72: DUP3 00000c73: ADD 00000c74: MSTORE 00000c75: PUSH0 00000c76: SWAP1 00000c77: DUP2 00000c78: SWAP1 00000c79: PUSH20 0x6e879d0ccc85085a709ebf5539224f53d0d396b0 00000c8e: SWAP1 00000c8f: PUSH4 0x16345f18 00000c94: SWAP1 00000c95: PUSH1 0x24 00000c97: ADD 00000c98: PUSH1 0x40 00000c9a: DUP1 00000c9b: MLOAD 00000c9c: DUP1 00000c9d: DUP4 00000c9e: SUB 00000c9f: DUP2 00000ca0: DUP7 00000ca1: GAS 00000ca2: STATICCALL 00000ca3: ISZERO 00000ca4: DUP1 00000ca5: ISZERO 00000ca6: PUSH2 0x0cb1 00000ca9: JUMPI 00000caa: RETURNDATASIZE 00000cab: PUSH0 00000cac: PUSH0 00000cad: RETURNDATACOPY 00000cae: RETURNDATASIZE 00000caf: PUSH0 00000cb0: REVERT 00000cb1: JUMPDEST 00000cb2: POP 00000cb3: POP 00000cb4: POP 00000cb5: POP 00000cb6: PUSH1 0x40 00000cb8: MLOAD 00000cb9: RETURNDATASIZE 00000cba: PUSH1 0x1f 00000cbc: NOT 00000cbd: PUSH1 0x1f 00000cbf: DUP3 00000cc0: ADD 00000cc1: AND 00000cc2: DUP3 00000cc3: ADD 00000cc4: DUP1 00000cc5: PUSH1 0x40 00000cc7: MSTORE 00000cc8: POP 00000cc9: DUP2 00000cca: ADD 00000ccb: SWAP1 00000ccc: PUSH2 0x0cd5 00000ccf: SWAP2 00000cd0: SWAP1 00000cd1: PUSH2 0x3bc1 00000cd4: JUMP 00000cd5: JUMPDEST 00000cd6: POP 00000cd7: SWAP1 00000cd8: POP 00000cd9: PUSH2 0x0d1f 00000cdc: PUSH2 0x0d03 00000cdf: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02 00000d00: SLOAD 00000d01: SWAP1 00000d02: JUMP 00000d03: JUMPDEST 00000d04: PUSH2 0x0d0b 00000d07: PUSH2 0x1431 00000d0a: JUMP 00000d0b: JUMPDEST 00000d0c: PUSH2 0x0d16 00000d0f: SWAP1 00000d10: PUSH1 0x0a 00000d12: PUSH2 0x3ce8 00000d15: JUMP 00000d16: JUMPDEST 00000d17: DUP4 00000d18: SWAP2 00000d19: SWAP1 00000d1a: PUSH0 00000d1b: PUSH2 0x2172 00000d1e: JUMP 00000d1f: JUMPDEST 00000d20: SWAP2 00000d21: POP 00000d22: POP 00000d23: SWAP1 00000d24: JUMP 00000d25: JUMPDEST 00000d26: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03 00000d47: DUP1 00000d48: SLOAD 00000d49: PUSH1 0x60 00000d4b: SWAP2 00000d4c: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00 00000d6d: SWAP2 00000d6e: PUSH2 0x0d76 00000d71: SWAP1 00000d72: PUSH2 0x3cf6 00000d75: JUMP 00000d76: JUMPDEST 00000d77: DUP1 00000d78: PUSH1 0x1f 00000d7a: ADD 00000d7b: PUSH1 0x20 00000d7d: DUP1 00000d7e: SWAP2 00000d7f: DIV 00000d80: MUL 00000d81: PUSH1 0x20 00000d83: ADD 00000d84: PUSH1 0x40 00000d86: MLOAD 00000d87: SWAP1 00000d88: DUP2 00000d89: ADD 00000d8a: PUSH1 0x40 00000d8c: MSTORE 00000d8d: DUP1 00000d8e: SWAP3 00000d8f: SWAP2 00000d90: SWAP1 00000d91: DUP2 00000d92: DUP2 00000d93: MSTORE 00000d94: PUSH1 0x20 00000d96: ADD 00000d97: DUP3 00000d98: DUP1 00000d99: SLOAD 00000d9a: PUSH2 0x0da2 00000d9d: SWAP1 00000d9e: PUSH2 0x3cf6 00000da1: JUMP 00000da2: JUMPDEST 00000da3: DUP1 00000da4: ISZERO 00000da5: PUSH2 0x0ded 00000da8: JUMPI 00000da9: DUP1 00000daa: PUSH1 0x1f 00000dac: LT 00000dad: PUSH2 0x0dc4 00000db0: JUMPI 00000db1: PUSH2 0x0100 00000db4: DUP1 00000db5: DUP4 00000db6: SLOAD 00000db7: DIV 00000db8: MUL 00000db9: DUP4 00000dba: MSTORE 00000dbb: SWAP2 00000dbc: PUSH1 0x20 00000dbe: ADD 00000dbf: SWAP2 00000dc0: PUSH2 0x0ded 00000dc3: JUMP 00000dc4: JUMPDEST 00000dc5: DUP3 00000dc6: ADD 00000dc7: SWAP2 00000dc8: SWAP1 00000dc9: PUSH0 00000dca: MSTORE 00000dcb: PUSH1 0x20 00000dcd: PUSH0 00000dce: KECCAK256 00000dcf: SWAP1 00000dd0: JUMPDEST 00000dd1: DUP2 00000dd2: SLOAD 00000dd3: DUP2 00000dd4: MSTORE 00000dd5: SWAP1 00000dd6: PUSH1 0x01 00000dd8: ADD 00000dd9: SWAP1 00000dda: PUSH1 0x20 00000ddc: ADD 00000ddd: DUP1 00000dde: DUP4 00000ddf: GT 00000de0: PUSH2 0x0dd0 00000de3: JUMPI 00000de4: DUP3 00000de5: SWAP1 00000de6: SUB 00000de7: PUSH1 0x1f 00000de9: AND 00000dea: DUP3 00000deb: ADD 00000dec: SWAP2 00000ded: JUMPDEST 00000dee: POP 00000def: POP 00000df0: POP 00000df1: POP 00000df2: POP 00000df3: SWAP2 00000df4: POP 00000df5: POP 00000df6: SWAP1 00000df7: JUMP 00000df8: JUMPDEST 00000df9: PUSH0 00000dfa: PUSH2 0x0e03 00000dfd: DUP3 00000dfe: PUSH0 00000dff: PUSH2 0x21b4 00000e02: JUMP 00000e03: JUMPDEST 00000e04: SWAP3 00000e05: SWAP2 00000e06: POP 00000e07: POP 00000e08: JUMP 00000e09: JUMPDEST 00000e0a: PUSH0 00000e0b: CALLER 00000e0c: PUSH2 0x0e16 00000e0f: DUP2 00000e10: DUP6 00000e11: DUP6 00000e12: PUSH2 0x226a 00000e15: JUMP 00000e16: JUMPDEST 00000e17: POP 00000e18: PUSH1 0x01 00000e1a: SWAP4 00000e1b: SWAP3 00000e1c: POP 00000e1d: POP 00000e1e: POP 00000e1f: JUMP 00000e20: JUMPDEST 00000e21: PUSH0 00000e22: PUSH0 00000e23: PUSH2 0x0e2e 00000e26: DUP4 00000e27: PUSH1 0x05 00000e29: SLOAD 00000e2a: PUSH2 0x227c 00000e2d: JUMP 00000e2e: JUMPDEST 00000e2f: SWAP1 00000e30: POP 00000e31: PUSH2 0x0e42 00000e34: PUSH2 0x0e3d 00000e37: DUP3 00000e38: DUP6 00000e39: PUSH2 0x3d2e 00000e3c: JUMP 00000e3d: JUMPDEST 00000e3e: PUSH2 0x2292 00000e41: JUMP 00000e42: JUMPDEST 00000e43: SWAP4 00000e44: SWAP3 00000e45: POP 00000e46: POP 00000e47: POP 00000e48: JUMP 00000e49: JUMPDEST 00000e4a: PUSH2 0x0e5e 00000e4d: CALLER 00000e4e: PUSH0 00000e4f: CALLDATALOAD 00000e50: PUSH1 0x01 00000e52: PUSH1 0x01 00000e54: PUSH1 0xe0 00000e56: SHL 00000e57: SUB 00000e58: NOT 00000e59: AND 00000e5a: PUSH2 0x1c90 00000e5d: JUMP 00000e5e: JUMPDEST 00000e5f: PUSH2 0x0e99 00000e62: JUMPI 00000e63: PUSH1 0x40 00000e65: MLOAD 00000e66: PUSH3 0x461bcd 00000e6a: PUSH1 0xe5 00000e6c: SHL 00000e6d: DUP2 00000e6e: MSTORE 00000e6f: PUSH1 0x20 00000e71: PUSH1 0x04 00000e73: DUP3 00000e74: ADD 00000e75: MSTORE 00000e76: PUSH1 0x0c 00000e78: PUSH1 0x24 00000e7a: DUP3 00000e7b: ADD 00000e7c: MSTORE 00000e7d: PUSH12 0x15539055551213d492569151 00000e8a: PUSH1 0xa2 00000e8c: SHL 00000e8d: PUSH1 0x44 00000e8f: DUP3 00000e90: ADD 00000e91: MSTORE 00000e92: PUSH1 0x64 00000e94: ADD 00000e95: PUSH2 0x0bef 00000e98: JUMP 00000e99: JUMPDEST 00000e9a: PUSH1 0x01 00000e9c: PUSH1 0x01 00000e9e: PUSH1 0xa0 00000ea0: SHL 00000ea1: SUB 00000ea2: DUP4 00000ea3: AND 00000ea4: PUSH0 00000ea5: SWAP1 00000ea6: DUP2 00000ea7: MSTORE 00000ea8: PUSH1 0x08 00000eaa: PUSH1 0x20 00000eac: MSTORE 00000ead: PUSH1 0x40 00000eaf: SWAP1 00000eb0: KECCAK256 00000eb1: PUSH1 0x01 00000eb3: DUP2 00000eb4: ADD 00000eb5: SLOAD 00000eb6: ISZERO 00000eb7: DUP1 00000eb8: ISZERO 00000eb9: SWAP1 00000eba: PUSH2 0x0ec7 00000ebd: JUMPI 00000ebe: POP 00000ebf: DUP1 00000ec0: PUSH1 0x01 00000ec2: ADD 00000ec3: SLOAD 00000ec4: DUP4 00000ec5: GT 00000ec6: ISZERO 00000ec7: JUMPDEST 00000ec8: PUSH2 0x0ee3 00000ecb: JUMPI 00000ecc: PUSH1 0x40 00000ece: MLOAD 00000ecf: PUSH3 0xf1a347 00000ed3: PUSH1 0xe1 00000ed5: SHL 00000ed6: DUP2 00000ed7: MSTORE 00000ed8: PUSH1 0x04 00000eda: ADD 00000edb: PUSH1 0x40 00000edd: MLOAD 00000ede: DUP1 00000edf: SWAP2 00000ee0: SUB 00000ee1: SWAP1 00000ee2: REVERT 00000ee3: JUMPDEST 00000ee4: DUP1 00000ee5: SLOAD 00000ee6: ISZERO 00000ee7: DUP1 00000ee8: ISZERO 00000ee9: SWAP1 00000eea: PUSH2 0x0ef4 00000eed: JUMPI 00000eee: POP 00000eef: DUP1 00000ef0: SLOAD 00000ef1: DUP3 00000ef2: GT 00000ef3: ISZERO 00000ef4: JUMPDEST 00000ef5: PUSH2 0x0f11 00000ef8: JUMPI 00000ef9: PUSH1 0x40 00000efb: MLOAD 00000efc: PUSH4 0x3b832713 00000f01: PUSH1 0xe0 00000f03: SHL 00000f04: DUP2 00000f05: MSTORE 00000f06: PUSH1 0x04 00000f08: ADD 00000f09: PUSH1 0x40 00000f0b: MLOAD 00000f0c: DUP1 00000f0d: SWAP2 00000f0e: SUB 00000f0f: SWAP1 00000f10: REVERT 00000f11: JUMPDEST 00000f12: DUP3 00000f13: DUP2 00000f14: PUSH1 0x01 00000f16: ADD 00000f17: PUSH0 00000f18: DUP3 00000f19: DUP3 00000f1a: SLOAD 00000f1b: PUSH2 0x0f24 00000f1e: SWAP2 00000f1f: SWAP1 00000f20: PUSH2 0x3d41 00000f23: JUMP 00000f24: JUMPDEST 00000f25: SWAP1 00000f26: SWAP2 00000f27: SSTORE 00000f28: POP 00000f29: POP 00000f2a: DUP1 00000f2b: SLOAD 00000f2c: DUP3 00000f2d: SWAP1 00000f2e: DUP3 00000f2f: SWAP1 00000f30: PUSH0 00000f31: SWAP1 00000f32: PUSH2 0x0f3c 00000f35: SWAP1 00000f36: DUP5 00000f37: SWAP1 00000f38: PUSH2 0x3d41 00000f3b: JUMP 00000f3c: JUMPDEST 00000f3d: SWAP3 00000f3e: POP 00000f3f: POP 00000f40: DUP2 00000f41: SWAP1 00000f42: SSTORE 00000f43: POP 00000f44: DUP2 00000f45: PUSH1 0x03 00000f47: PUSH0 00000f48: DUP3 00000f49: DUP3 00000f4a: SLOAD 00000f4b: PUSH2 0x0f54 00000f4e: SWAP2 00000f4f: SWAP1 00000f50: PUSH2 0x3d41 00000f53: JUMP 00000f54: JUMPDEST 00000f55: SWAP1 00000f56: SWAP2 00000f57: SSTORE 00000f58: POP 00000f59: POP 00000f5a: PUSH1 0x40 00000f5c: DUP1 00000f5d: MLOAD 00000f5e: DUP5 00000f5f: DUP2 00000f60: MSTORE 00000f61: PUSH1 0x20 00000f63: DUP2 00000f64: ADD 00000f65: DUP5 00000f66: SWAP1 00000f67: MSTORE 00000f68: PUSH1 0x01 00000f6a: PUSH1 0x01 00000f6c: PUSH1 0xa0 00000f6e: SHL 00000f6f: SUB 00000f70: DUP7 00000f71: AND 00000f72: SWAP2 00000f73: PUSH32 0x55ec94ca0f01023d07c5752a75f44048cfbdb0e4cfedf5e7eacecf21fcde3587 00000f94: SWAP2 00000f95: ADD 00000f96: PUSH1 0x40 00000f98: MLOAD 00000f99: DUP1 00000f9a: SWAP2 00000f9b: SUB 00000f9c: SWAP1 00000f9d: LOG2 00000f9e: PUSH2 0x0fa8 00000fa1: ADDRESS 00000fa2: DUP6 00000fa3: DUP6 00000fa4: PUSH2 0x229e 00000fa7: JUMP 00000fa8: JUMPDEST 00000fa9: POP 00000faa: POP 00000fab: POP 00000fac: POP 00000fad: JUMP 00000fae: JUMPDEST 00000faf: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00 00000fd0: DUP1 00000fd1: SLOAD 00000fd2: PUSH9 0x010000000000000000 00000fdc: DUP2 00000fdd: DIV 00000fde: PUSH1 0xff 00000fe0: AND 00000fe1: ISZERO 00000fe2: SWAP1 00000fe3: PUSH8 0xffffffffffffffff 00000fec: AND 00000fed: PUSH0 00000fee: DUP2 00000fef: ISZERO 00000ff0: DUP1 00000ff1: ISZERO 00000ff2: PUSH2 0x0ff8 00000ff5: JUMPI 00000ff6: POP 00000ff7: DUP3 00000ff8: JUMPDEST 00000ff9: SWAP1 00000ffa: POP 00000ffb: PUSH0 00000ffc: DUP3 00000ffd: PUSH8 0xffffffffffffffff 00001006: AND 00001007: PUSH1 0x01 00001009: EQ 0000100a: DUP1 0000100b: ISZERO 0000100c: PUSH2 0x1014 0000100f: JUMPI 00001010: POP 00001011: ADDRESS 00001012: EXTCODESIZE 00001013: ISZERO 00001014: JUMPDEST 00001015: SWAP1 00001016: POP 00001017: DUP2 00001018: ISZERO 00001019: DUP1 0000101a: ISZERO 0000101b: PUSH2 0x1022 0000101e: JUMPI 0000101f: POP 00001020: DUP1 00001021: ISZERO 00001022: JUMPDEST 00001023: ISZERO 00001024: PUSH2 0x1059 00001027: JUMPI 00001028: PUSH1 0x40 0000102a: MLOAD 0000102b: PUSH32 0xf92ee8a900000000000000000000000000000000000000000000000000000000 0000104c: DUP2 0000104d: MSTORE 0000104e: PUSH1 0x04 00001050: ADD 00001051: PUSH1 0x40 00001053: MLOAD 00001054: DUP1 00001055: SWAP2 00001056: SUB 00001057: SWAP1 00001058: REVERT 00001059: JUMPDEST 0000105a: DUP5 0000105b: SLOAD 0000105c: PUSH8 0xffffffffffffffff 00001065: NOT 00001066: AND 00001067: PUSH1 0x01 00001069: OR 0000106a: DUP6 0000106b: SSTORE 0000106c: DUP4 0000106d: ISZERO 0000106e: PUSH2 0x108d 00001071: JUMPI 00001072: DUP5 00001073: SLOAD 00001074: PUSH9 0xff0000000000000000 0000107e: NOT 0000107f: AND 00001080: PUSH9 0x010000000000000000 0000108a: OR 0000108b: DUP6 0000108c: SSTORE 0000108d: JUMPDEST 0000108e: PUSH2 0x1095 00001091: PUSH2 0x22fb 00001094: JUMP 00001095: JUMPDEST 00001096: PUSH2 0x109f 00001099: DUP8 0000109a: DUP8 0000109b: PUSH2 0x2303 0000109e: JUMP 0000109f: JUMPDEST 000010a0: PUSH2 0x10a8 000010a3: DUP10 000010a4: PUSH2 0x2319 000010a7: JUMP 000010a8: JUMPDEST 000010a9: PUSH2 0x10b2 000010ac: DUP9 000010ad: PUSH0 000010ae: PUSH2 0x232d 000010b1: JUMP 000010b2: JUMPDEST 000010b3: PUSH2 0x10ba 000010b6: PUSH2 0x2405 000010b9: JUMP 000010ba: JUMPDEST 000010bb: DUP4 000010bc: ISZERO 000010bd: PUSH2 0x1105 000010c0: JUMPI 000010c1: DUP5 000010c2: SLOAD 000010c3: PUSH9 0xff0000000000000000 000010cd: NOT 000010ce: AND 000010cf: DUP6 000010d0: SSTORE 000010d1: PUSH1 0x40 000010d3: MLOAD 000010d4: PUSH1 0x01 000010d6: DUP2 000010d7: MSTORE 000010d8: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2 000010f9: SWAP1 000010fa: PUSH1 0x20 000010fc: ADD 000010fd: PUSH1 0x40 000010ff: MLOAD 00001100: DUP1 00001101: SWAP2 00001102: SUB 00001103: SWAP1 00001104: LOG1 00001105: JUMPDEST 00001106: POP 00001107: POP 00001108: POP 00001109: POP 0000110a: POP 0000110b: POP 0000110c: POP 0000110d: POP 0000110e: POP 0000110f: JUMP 00001110: JUMPDEST 00001111: PUSH1 0x60 00001113: PUSH2 0x1127 00001116: CALLER 00001117: PUSH0 00001118: CALLDATALOAD 00001119: PUSH1 0x01 0000111b: PUSH1 0x01 0000111d: PUSH1 0xe0 0000111f: SHL 00001120: SUB 00001121: NOT 00001122: AND 00001123: PUSH2 0x1c90 00001126: JUMP 00001127: JUMPDEST 00001128: PUSH2 0x1162 0000112b: JUMPI 0000112c: PUSH1 0x40 0000112e: MLOAD 0000112f: PUSH3 0x461bcd 00001133: PUSH1 0xe5 00001135: SHL 00001136: DUP2 00001137: MSTORE 00001138: PUSH1 0x20 0000113a: PUSH1 0x04 0000113c: DUP3 0000113d: ADD 0000113e: MSTORE 0000113f: PUSH1 0x0c 00001141: PUSH1 0x24 00001143: DUP3 00001144: ADD 00001145: MSTORE 00001146: PUSH12 0x15539055551213d492569151 00001153: PUSH1 0xa2 00001155: SHL 00001156: PUSH1 0x44 00001158: DUP3 00001159: ADD 0000115a: MSTORE 0000115b: PUSH1 0x64 0000115d: ADD 0000115e: PUSH2 0x0bef 00001161: JUMP 00001162: JUMPDEST 00001163: DUP6 00001164: DUP1 00001165: PUSH8 0xffffffffffffffff 0000116e: DUP2 0000116f: GT 00001170: ISZERO 00001171: PUSH2 0x117c 00001174: JUMPI 00001175: PUSH2 0x117c 00001178: PUSH2 0x36ac 0000117b: JUMP 0000117c: JUMPDEST 0000117d: PUSH1 0x40 0000117f: MLOAD 00001180: SWAP1 00001181: DUP1 00001182: DUP3 00001183: MSTORE 00001184: DUP1 00001185: PUSH1 0x20 00001187: MUL 00001188: PUSH1 0x20 0000118a: ADD 0000118b: DUP3 0000118c: ADD 0000118d: PUSH1 0x40 0000118f: MSTORE 00001190: DUP1 00001191: ISZERO 00001192: PUSH2 0x11af 00001195: JUMPI 00001196: DUP2 00001197: PUSH1 0x20 00001199: ADD 0000119a: JUMPDEST 0000119b: PUSH1 0x60 0000119d: DUP2 0000119e: MSTORE 0000119f: PUSH1 0x20 000011a1: ADD 000011a2: SWAP1 000011a3: PUSH1 0x01 000011a5: SWAP1 000011a6: SUB 000011a7: SWAP1 000011a8: DUP2 000011a9: PUSH2 0x119a 000011ac: JUMPI 000011ad: SWAP1 000011ae: POP 000011af: JUMPDEST 000011b0: POP 000011b1: SWAP2 000011b2: POP 000011b3: PUSH0 000011b4: JUMPDEST 000011b5: DUP2 000011b6: DUP2 000011b7: LT 000011b8: ISZERO 000011b9: PUSH2 0x1402 000011bc: JUMPI 000011bd: PUSH0 000011be: DUP8 000011bf: DUP8 000011c0: DUP4 000011c1: DUP2 000011c2: DUP2 000011c3: LT 000011c4: PUSH2 0x11cf 000011c7: JUMPI 000011c8: PUSH2 0x11cf 000011cb: PUSH2 0x3d54 000011ce: JUMP 000011cf: JUMPDEST 000011d0: SWAP1 000011d1: POP 000011d2: PUSH1 0x20 000011d4: MUL 000011d5: DUP2 000011d6: ADD 000011d7: SWAP1 000011d8: PUSH2 0x11e1 000011db: SWAP2 000011dc: SWAP1 000011dd: PUSH2 0x3d68 000011e0: JUMP 000011e1: JUMPDEST 000011e2: PUSH2 0x11ea 000011e5: SWAP2 000011e6: PUSH2 0x3dab 000011e9: JUMP 000011ea: JUMPDEST 000011eb: SWAP1 000011ec: POP 000011ed: PUSH2 0x121d 000011f0: PUSH32 0xdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea01 00001211: SLOAD 00001212: PUSH1 0x01 00001214: PUSH1 0x01 00001216: PUSH1 0xa0 00001218: SHL 00001219: SUB 0000121a: AND 0000121b: SWAP1 0000121c: JUMP 0000121d: JUMPDEST 0000121e: PUSH1 0x01 00001220: PUSH1 0x01 00001222: PUSH1 0xa0 00001224: SHL 00001225: SUB 00001226: AND 00001227: PUSH4 0xb7009613 0000122c: CALLER 0000122d: DUP13 0000122e: DUP13 0000122f: DUP7 00001230: DUP2 00001231: DUP2 00001232: LT 00001233: PUSH2 0x123e 00001236: JUMPI 00001237: PUSH2 0x123e 0000123a: PUSH2 0x3d54 0000123d: JUMP 0000123e: JUMPDEST 0000123f: SWAP1 00001240: POP 00001241: PUSH1 0x20 00001243: MUL 00001244: ADD 00001245: PUSH1 0x20 00001247: DUP2 00001248: ADD 00001249: SWAP1 0000124a: PUSH2 0x1253 0000124d: SWAP2 0000124e: SWAP1 0000124f: PUSH2 0x3955 00001252: JUMP 00001253: JUMPDEST 00001254: PUSH1 0x40 00001256: MLOAD 00001257: PUSH1 0x01 00001259: PUSH1 0x01 0000125b: PUSH1 0xe0 0000125d: SHL 0000125e: SUB 0000125f: NOT 00001260: PUSH1 0xe0 00001262: DUP6 00001263: SWAP1 00001264: SHL 00001265: DUP2 00001266: AND 00001267: DUP3 00001268: MSTORE 00001269: PUSH1 0x01 0000126b: PUSH1 0x01 0000126d: PUSH1 0xa0 0000126f: SHL 00001270: SUB 00001271: SWAP4 00001272: DUP5 00001273: AND 00001274: PUSH1 0x04 00001276: DUP4 00001277: ADD 00001278: MSTORE 00001279: SWAP3 0000127a: SWAP1 0000127b: SWAP2 0000127c: AND 0000127d: PUSH1 0x24 0000127f: DUP3 00001280: ADD 00001281: MSTORE 00001282: SWAP1 00001283: DUP5 00001284: AND 00001285: PUSH1 0x44 00001287: DUP3 00001288: ADD 00001289: MSTORE 0000128a: PUSH1 0x64 0000128c: ADD 0000128d: PUSH1 0x20 0000128f: PUSH1 0x40 00001291: MLOAD 00001292: DUP1 00001293: DUP4 00001294: SUB 00001295: DUP2 00001296: DUP7 00001297: GAS 00001298: STATICCALL 00001299: ISZERO 0000129a: DUP1 0000129b: ISZERO 0000129c: PUSH2 0x12a7 0000129f: JUMPI 000012a0: RETURNDATASIZE 000012a1: PUSH0 000012a2: PUSH0 000012a3: RETURNDATACOPY 000012a4: RETURNDATASIZE 000012a5: PUSH0 000012a6: REVERT 000012a7: JUMPDEST 000012a8: POP 000012a9: POP 000012aa: POP 000012ab: POP 000012ac: PUSH1 0x40 000012ae: MLOAD 000012af: RETURNDATASIZE 000012b0: PUSH1 0x1f 000012b2: NOT 000012b3: PUSH1 0x1f 000012b5: DUP3 000012b6: ADD 000012b7: AND 000012b8: DUP3 000012b9: ADD 000012ba: DUP1 000012bb: PUSH1 0x40 000012bd: MSTORE 000012be: POP 000012bf: DUP2 000012c0: ADD 000012c1: SWAP1 000012c2: PUSH2 0x12cb 000012c5: SWAP2 000012c6: SWAP1 000012c7: PUSH2 0x3de1 000012ca: JUMP 000012cb: JUMPDEST 000012cc: DUP11 000012cd: DUP11 000012ce: DUP5 000012cf: DUP2 000012d0: DUP2 000012d1: LT 000012d2: PUSH2 0x12dd 000012d5: JUMPI 000012d6: PUSH2 0x12dd 000012d9: PUSH2 0x3d54 000012dc: JUMP 000012dd: JUMPDEST 000012de: SWAP1 000012df: POP 000012e0: PUSH1 0x20 000012e2: MUL 000012e3: ADD 000012e4: PUSH1 0x20 000012e6: DUP2 000012e7: ADD 000012e8: SWAP1 000012e9: PUSH2 0x12f2 000012ec: SWAP2 000012ed: SWAP1 000012ee: PUSH2 0x3955 000012f1: JUMP 000012f2: JUMPDEST 000012f3: DUP3 000012f4: SWAP1 000012f5: SWAP2 000012f6: PUSH2 0x132d 000012f9: JUMPI 000012fa: PUSH1 0x40 000012fc: MLOAD 000012fd: PUSH4 0x7dab1813 00001302: PUSH1 0xe1 00001304: SHL 00001305: DUP2 00001306: MSTORE 00001307: PUSH1 0x01 00001309: PUSH1 0x01 0000130b: PUSH1 0xa0 0000130d: SHL 0000130e: SUB 0000130f: SWAP1 00001310: SWAP3 00001311: AND 00001312: PUSH1 0x04 00001314: DUP4 00001315: ADD 00001316: MSTORE 00001317: PUSH1 0x01 00001319: PUSH1 0x01 0000131b: PUSH1 0xe0 0000131d: SHL 0000131e: SUB 0000131f: NOT 00001320: AND 00001321: PUSH1 0x24 00001323: DUP3 00001324: ADD 00001325: MSTORE 00001326: PUSH1 0x44 00001328: ADD 00001329: PUSH2 0x0bef 0000132c: JUMP 0000132d: JUMPDEST 0000132e: POP 0000132f: POP 00001330: PUSH2 0x13dc 00001333: DUP9 00001334: DUP9 00001335: DUP5 00001336: DUP2 00001337: DUP2 00001338: LT 00001339: PUSH2 0x1344 0000133c: JUMPI 0000133d: PUSH2 0x1344 00001340: PUSH2 0x3d54 00001343: JUMP 00001344: JUMPDEST 00001345: SWAP1 00001346: POP 00001347: PUSH1 0x20 00001349: MUL 0000134a: DUP2 0000134b: ADD 0000134c: SWAP1 0000134d: PUSH2 0x1356 00001350: SWAP2 00001351: SWAP1 00001352: PUSH2 0x3d68 00001355: JUMP 00001356: JUMPDEST 00001357: DUP1 00001358: DUP1 00001359: PUSH1 0x1f 0000135b: ADD 0000135c: PUSH1 0x20 0000135e: DUP1 0000135f: SWAP2 00001360: DIV 00001361: MUL 00001362: PUSH1 0x20 00001364: ADD 00001365: PUSH1 0x40 00001367: MLOAD 00001368: SWAP1 00001369: DUP2 0000136a: ADD 0000136b: PUSH1 0x40 0000136d: MSTORE 0000136e: DUP1 0000136f: SWAP4 00001370: SWAP3 00001371: SWAP2 00001372: SWAP1 00001373: DUP2 00001374: DUP2 00001375: MSTORE 00001376: PUSH1 0x20 00001378: ADD 00001379: DUP4 0000137a: DUP4 0000137b: DUP1 0000137c: DUP3 0000137d: DUP5 0000137e: CALLDATACOPY 0000137f: PUSH0 00001380: SWAP3 00001381: ADD 00001382: SWAP2 00001383: SWAP1 00001384: SWAP2 00001385: MSTORE 00001386: POP 00001387: DUP11 00001388: SWAP3 00001389: POP 0000138a: DUP10 0000138b: SWAP2 0000138c: POP 0000138d: DUP7 0000138e: SWAP1 0000138f: POP 00001390: DUP2 00001391: DUP2 00001392: LT 00001393: PUSH2 0x139e 00001396: JUMPI 00001397: PUSH2 0x139e 0000139a: PUSH2 0x3d54 0000139d: JUMP 0000139e: JUMPDEST 0000139f: SWAP1 000013a0: POP 000013a1: PUSH1 0x20 000013a3: MUL 000013a4: ADD 000013a5: CALLDATALOAD 000013a6: DUP13 000013a7: DUP13 000013a8: DUP7 000013a9: DUP2 000013aa: DUP2 000013ab: LT 000013ac: PUSH2 0x13b7 000013af: JUMPI 000013b0: PUSH2 0x13b7 000013b3: PUSH2 0x3d54 000013b6: JUMP 000013b7: JUMPDEST 000013b8: SWAP1 000013b9: POP 000013ba: PUSH1 0x20 000013bc: MUL 000013bd: ADD 000013be: PUSH1 0x20 000013c0: DUP2 000013c1: ADD 000013c2: SWAP1 000013c3: PUSH2 0x13cc 000013c6: SWAP2 000013c7: SWAP1 000013c8: PUSH2 0x3955 000013cb: JUMP 000013cc: JUMPDEST 000013cd: PUSH1 0x01 000013cf: PUSH1 0x01 000013d1: PUSH1 0xa0 000013d3: SHL 000013d4: SUB 000013d5: AND 000013d6: SWAP2 000013d7: SWAP1 000013d8: PUSH2 0x2415 000013db: JUMP 000013dc: JUMPDEST 000013dd: DUP5 000013de: DUP4 000013df: DUP2 000013e0: MLOAD 000013e1: DUP2 000013e2: LT 000013e3: PUSH2 0x13ee 000013e6: JUMPI 000013e7: PUSH2 0x13ee 000013ea: PUSH2 0x3d54 000013ed: JUMP 000013ee: JUMPDEST 000013ef: PUSH1 0x20 000013f1: SWAP1 000013f2: DUP2 000013f3: MUL 000013f4: SWAP2 000013f5: SWAP1 000013f6: SWAP2 000013f7: ADD 000013f8: ADD 000013f9: MSTORE 000013fa: POP 000013fb: PUSH1 0x01 000013fd: ADD 000013fe: PUSH2 0x11b4 00001401: JUMP 00001402: JUMPDEST 00001403: POP 00001404: POP 00001405: SWAP7 00001406: SWAP6 00001407: POP 00001408: POP 00001409: POP 0000140a: POP 0000140b: POP 0000140c: POP 0000140d: JUMP 0000140e: JUMPDEST 0000140f: PUSH0 00001410: CALLER 00001411: PUSH2 0x141b 00001414: DUP6 00001415: DUP3 00001416: DUP6 00001417: PUSH2 0x24c4 0000141a: JUMP 0000141b: JUMPDEST 0000141c: PUSH2 0x1426 0000141f: DUP6 00001420: DUP6 00001421: DUP6 00001422: PUSH2 0x229e 00001425: JUMP 00001426: JUMPDEST 00001427: POP 00001428: PUSH1 0x01 0000142a: SWAP5 0000142b: SWAP4 0000142c: POP 0000142d: POP 0000142e: POP 0000142f: POP 00001430: JUMP 00001431: JUMPDEST 00001432: PUSH0 00001433: DUP1 00001434: PUSH32 0x0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00 00001455: SWAP1 00001456: POP 00001457: PUSH0 00001458: DUP2 00001459: SLOAD 0000145a: PUSH2 0x0d1f 0000145d: SWAP2 0000145e: SWAP1 0000145f: PUSH1 0x01 00001461: PUSH1 0xa0 00001463: SHL 00001464: SWAP1 00001465: DIV 00001466: PUSH1 0xff 00001468: AND 00001469: PUSH2 0x3e00 0000146c: JUMP 0000146d: JUMPDEST 0000146e: PUSH2 0x1482 00001471: CALLER 00001472: PUSH0 00001473: CALLDATALOAD 00001474: PUSH1 0x01 00001476: PUSH1 0x01 00001478: PUSH1 0xe0 0000147a: SHL 0000147b: SUB 0000147c: NOT 0000147d: AND 0000147e: PUSH2 0x1c90 00001481: JUMP 00001482: JUMPDEST 00001483: PUSH2 0x14bd 00001486: JUMPI 00001487: PUSH1 0x40 00001489: MLOAD 0000148a: PUSH3 0x461bcd 0000148e: PUSH1 0xe5 00001490: SHL 00001491: DUP2 00001492: MSTORE 00001493: PUSH1 0x20 00001495: PUSH1 0x04 00001497: DUP3 00001498: ADD 00001499: MSTORE 0000149a: PUSH1 0x0c 0000149c: PUSH1 0x24 0000149e: DUP3 0000149f: ADD 000014a0: MSTORE 000014a1: PUSH12 0x15539055551213d492569151 000014ae: PUSH1 0xa2 000014b0: SHL 000014b1: PUSH1 0x44 000014b3: DUP3 000014b4: ADD 000014b5: MSTORE 000014b6: PUSH1 0x64 000014b8: ADD 000014b9: PUSH2 0x0bef 000014bc: JUMP 000014bd: JUMPDEST 000014be: PUSH2 0x14c5 000014c1: PUSH2 0x2572 000014c4: JUMP 000014c5: JUMPDEST 000014c6: JUMP 000014c7: JUMPDEST 000014c8: PUSH0 000014c9: PUSH2 0x14f3 000014cc: PUSH32 0xcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300 000014ed: SLOAD 000014ee: PUSH1 0xff 000014f0: AND 000014f1: SWAP1 000014f2: JUMP 000014f3: JUMPDEST 000014f4: ISZERO 000014f5: PUSH2 0x14ff 000014f8: JUMPI 000014f9: POP 000014fa: PUSH0 000014fb: SWAP2 000014fc: SWAP1 000014fd: POP 000014fe: JUMP 000014ff: JUMPDEST 00001500: PUSH0 00001501: NOT 00001502: PUSH2 0x0e03 00001505: JUMP 00001506: JUMPDEST 00001507: PUSH0 00001508: PUSH0 00001509: PUSH2 0x1511 0000150c: DUP4 0000150d: PUSH2 0x0df8 00001510: JUMP 00001511: JUMPDEST 00001512: SWAP1 00001513: POP 00001514: PUSH2 0x151f 00001517: DUP2 00001518: PUSH1 0x05 0000151a: SLOAD 0000151b: PUSH2 0x25e4 0000151e: JUMP 0000151f: JUMPDEST 00001520: PUSH2 0x0e42 00001523: SWAP1 00001524: DUP3 00001525: PUSH2 0x3d41 00001528: JUMP 00001529: JUMPDEST 0000152a: PUSH2 0x153e 0000152d: CALLER 0000152e: PUSH0 0000152f: CALLDATALOAD 00001530: PUSH1 0x01 00001532: PUSH1 0x01 00001534: PUSH1 0xe0 00001536: SHL 00001537: SUB 00001538: NOT 00001539: AND 0000153a: PUSH2 0x1c90 0000153d: JUMP 0000153e: JUMPDEST 0000153f: PUSH2 0x1579 00001542: JUMPI 00001543: PUSH1 0x40 00001545: MLOAD 00001546: PUSH3 0x461bcd 0000154a: PUSH1 0xe5 0000154c: SHL 0000154d: DUP2 0000154e: MSTORE 0000154f: PUSH1 0x20 00001551: PUSH1 0x04 00001553: DUP3 00001554: ADD 00001555: MSTORE 00001556: PUSH1 0x0c 00001558: PUSH1 0x24 0000155a: DUP3 0000155b: ADD 0000155c: MSTORE 0000155d: PUSH12 0x15539055551213d492569151 0000156a: PUSH1 0xa2 0000156c: SHL 0000156d: PUSH1 0x44 0000156f: DUP3 00001570: ADD 00001571: MSTORE 00001572: PUSH1 0x64 00001574: ADD 00001575: PUSH2 0x0bef 00001578: JUMP 00001579: JUMPDEST 0000157a: PUSH1 0x01 0000157c: PUSH1 0x01 0000157e: PUSH1 0xa0 00001580: SHL 00001581: SUB 00001582: DUP4 00001583: AND 00001584: PUSH0 00001585: SWAP1 00001586: DUP2 00001587: MSTORE 00001588: PUSH1 0x08 0000158a: PUSH1 0x20 0000158c: MSTORE 0000158d: PUSH1 0x40 0000158f: SWAP1 00001590: KECCAK256 00001591: PUSH1 0x01 00001593: DUP2 00001594: ADD 00001595: SLOAD 00001596: ISZERO 00001597: DUP1 00001598: ISZERO 00001599: SWAP1 0000159a: PUSH2 0x15a7 0000159d: JUMPI 0000159e: POP 0000159f: DUP1 000015a0: PUSH1 0x01 000015a2: ADD 000015a3: SLOAD 000015a4: DUP4 000015a5: GT 000015a6: ISZERO 000015a7: JUMPDEST 000015a8: PUSH2 0x15c3 000015ab: JUMPI 000015ac: PUSH1 0x40 000015ae: MLOAD 000015af: PUSH3 0xf1a347 000015b3: PUSH1 0xe1 000015b5: SHL 000015b6: DUP2 000015b7: MSTORE 000015b8: PUSH1 0x04 000015ba: ADD 000015bb: PUSH1 0x40 000015bd: MLOAD 000015be: DUP1 000015bf: SWAP2 000015c0: SUB 000015c1: SWAP1 000015c2: REVERT 000015c3: JUMPDEST 000015c4: DUP1 000015c5: SLOAD 000015c6: ISZERO 000015c7: DUP1 000015c8: ISZERO 000015c9: SWAP1 000015ca: PUSH2 0x15d4 000015cd: JUMPI 000015ce: POP 000015cf: DUP1 000015d0: SLOAD 000015d1: DUP3 000015d2: GT 000015d3: ISZERO 000015d4: JUMPDEST 000015d5: PUSH2 0x15f1 000015d8: JUMPI 000015d9: PUSH1 0x40 000015db: MLOAD 000015dc: PUSH4 0x3b832713 000015e1: PUSH1 0xe0 000015e3: SHL 000015e4: DUP2 000015e5: MSTORE 000015e6: PUSH1 0x04 000015e8: ADD 000015e9: PUSH1 0x40 000015eb: MLOAD 000015ec: DUP1 000015ed: SWAP2 000015ee: SUB 000015ef: SWAP1 000015f0: REVERT 000015f1: JUMPDEST 000015f2: DUP3 000015f3: DUP2 000015f4: PUSH1 0x01 000015f6: ADD 000015f7: PUSH0 000015f8: DUP3 000015f9: DUP3 000015fa: SLOAD 000015fb: PUSH2 0x1604 000015fe: SWAP2 000015ff: SWAP1 00001600: PUSH2 0x3d41 00001603: JUMP 00001604: JUMPDEST 00001605: SWAP1 00001606: SWAP2 00001607: SSTORE 00001608: POP 00001609: POP 0000160a: DUP1 0000160b: SLOAD 0000160c: DUP3 0000160d: SWAP1 0000160e: DUP3 0000160f: SWAP1 00001610: PUSH0 00001611: SWAP1 00001612: PUSH2 0x161c 00001615: SWAP1 00001616: DUP5 00001617: SWAP1 00001618: PUSH2 0x3d41 0000161b: JUMP 0000161c: JUMPDEST 0000161d: SWAP3 0000161e: POP 0000161f: POP 00001620: DUP2 00001621: SWAP1 00001622: SSTORE 00001623: POP 00001624: DUP2 00001625: PUSH1 0x03 00001627: PUSH0 00001628: DUP3 00001629: DUP3 0000162a: SLOAD 0000162b: PUSH2 0x1634 0000162e: SWAP2 0000162f: SWAP1 00001630: PUSH2 0x3d41 00001633: JUMP 00001634: JUMPDEST 00001635: SWAP1 00001636: SWAP2 00001637: SSTORE 00001638: POP 00001639: POP 0000163a: PUSH1 0x40 0000163c: DUP1 0000163d: MLOAD 0000163e: DUP5 0000163f: DUP2 00001640: MSTORE 00001641: PUSH1 0x20 00001643: DUP2 00001644: ADD 00001645: DUP5 00001646: SWAP1 00001647: MSTORE 00001648: PUSH1 0x01 0000164a: PUSH1 0x01 0000164c: PUSH1 0xa0 0000164e: SHL 0000164f: SUB 00001650: DUP7 00001651: AND 00001652: SWAP2 00001653: PUSH32 0x1165aa98d42fbaef9bacc273d7b5cca8edc94909519f8f949ec33562963c87e4 00001674: SWAP2 00001675: ADD 00001676: PUSH1 0x40 00001678: MLOAD 00001679: DUP1 0000167a: SWAP2 0000167b: SUB 0000167c: SWAP1 0000167d: LOG2 0000167e: PUSH2 0x0fa8 00001681: ADDRESS 00001682: DUP6 00001683: ADDRESS 00001684: DUP6 00001685: DUP8 00001686: PUSH2 0x2605 00001689: JUMP 0000168a: JUMPDEST 0000168b: PUSH0 0000168c: PUSH2 0x1693 0000168f: PUSH2 0x26a7 00001692: JUMP 00001693: JUMPDEST 00001694: PUSH2 0x0e42 00001697: DUP4 00001698: DUP4 00001699: PUSH2 0x2703 0000169c: JUMP 0000169d: JUMPDEST 0000169e: PUSH32 0xdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea00 000016bf: DUP1 000016c0: SLOAD 000016c1: PUSH1 0x01 000016c3: PUSH1 0x01 000016c5: PUSH1 0xa0 000016c7: SHL 000016c8: SUB 000016c9: AND 000016ca: CALLER 000016cb: EQ 000016cc: DUP1 000016cd: PUSH2 0x1754 000016d0: JUMPI 000016d1: POP 000016d2: PUSH1 0x01 000016d4: DUP2 000016d5: ADD 000016d6: SLOAD 000016d7: PUSH1 0x40 000016d9: MLOAD 000016da: PUSH4 0xb7009613 000016df: PUSH1 0xe0 000016e1: SHL 000016e2: DUP2 000016e3: MSTORE 000016e4: CALLER 000016e5: PUSH1 0x04 000016e7: DUP3 000016e8: ADD 000016e9: MSTORE 000016ea: ADDRESS 000016eb: PUSH1 0x24 000016ed: DUP3 000016ee: ADD 000016ef: MSTORE 000016f0: PUSH0 000016f1: CALLDATALOAD 000016f2: PUSH1 0x01 000016f4: PUSH1 0x01 000016f6: PUSH1 0xe0 000016f8: SHL 000016f9: SUB 000016fa: NOT 000016fb: AND 000016fc: PUSH1 0x44 000016fe: DUP3 000016ff: ADD 00001700: MSTORE 00001701: PUSH1 0x01 00001703: PUSH1 0x01 00001705: PUSH1 0xa0 00001707: SHL 00001708: SUB 00001709: SWAP1 0000170a: SWAP2 0000170b: AND 0000170c: SWAP1 0000170d: PUSH4 0xb7009613 00001712: SWAP1 00001713: PUSH1 0x64 00001715: ADD 00001716: PUSH1 0x20 00001718: PUSH1 0x40 0000171a: MLOAD 0000171b: DUP1 0000171c: DUP4 0000171d: SUB 0000171e: DUP2 0000171f: DUP7 00001720: GAS 00001721: STATICCALL 00001722: ISZERO 00001723: DUP1 00001724: ISZERO 00001725: PUSH2 0x1730 00001728: JUMPI 00001729: RETURNDATASIZE 0000172a: PUSH0 0000172b: PUSH0 0000172c: RETURNDATACOPY 0000172d: RETURNDATASIZE 0000172e: PUSH0 0000172f: REVERT 00001730: JUMPDEST 00001731: POP 00001732: POP 00001733: POP 00001734: POP 00001735: PUSH1 0x40 00001737: MLOAD 00001738: RETURNDATASIZE 00001739: PUSH1 0x1f 0000173b: NOT 0000173c: PUSH1 0x1f 0000173e: DUP3 0000173f: ADD 00001740: AND 00001741: DUP3 00001742: ADD 00001743: DUP1 00001744: PUSH1 0x40 00001746: MSTORE 00001747: POP 00001748: DUP2 00001749: ADD 0000174a: SWAP1 0000174b: PUSH2 0x1754 0000174e: SWAP2 0000174f: SWAP1 00001750: PUSH2 0x3de1 00001753: JUMP 00001754: JUMPDEST 00001755: PUSH2 0x175c 00001758: JUMPI 00001759: PUSH0 0000175a: PUSH0 0000175b: REVERT 0000175c: JUMPDEST 0000175d: PUSH1 0x01 0000175f: DUP2 00001760: ADD 00001761: DUP1 00001762: SLOAD 00001763: PUSH1 0x01 00001765: PUSH1 0x01 00001767: PUSH1 0xa0 00001769: SHL 0000176a: SUB 0000176b: NOT 0000176c: AND 0000176d: PUSH1 0x01 0000176f: PUSH1 0x01 00001771: PUSH1 0xa0 00001773: SHL 00001774: SUB 00001775: DUP5 00001776: AND 00001777: SWAP1 00001778: DUP2 00001779: OR 0000177a: SWAP1 0000177b: SWAP2 0000177c: SSTORE 0000177d: PUSH1 0x40 0000177f: MLOAD 00001780: CALLER 00001781: SWAP1 00001782: PUSH32 0xa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b76389980198 000017a3: SWAP1 000017a4: PUSH0 000017a5: SWAP1 000017a6: LOG3 000017a7: POP 000017a8: POP 000017a9: JUMP 000017aa: JUMPDEST 000017ab: PUSH0 000017ac: PUSH2 0x17b3 000017af: PUSH2 0x26a7 000017b2: JUMP 000017b3: JUMPDEST 000017b4: PUSH1 0x01 000017b6: PUSH1 0x01 000017b8: PUSH1 0xa0 000017ba: SHL 000017bb: SUB 000017bc: DUP4 000017bd: AND 000017be: PUSH2 0x17f3 000017c1: JUMPI 000017c2: PUSH1 0x40 000017c4: MLOAD 000017c5: PUSH32 0x6ba9ecd800000000000000000000000000000000000000000000000000000000 000017e6: DUP2 000017e7: MSTORE 000017e8: PUSH1 0x04 000017ea: ADD 000017eb: PUSH1 0x40 000017ed: MLOAD 000017ee: DUP1 000017ef: SWAP2 000017f0: SUB 000017f1: SWAP1 000017f2: REVERT 000017f3: JUMPDEST 000017f4: PUSH0 000017f5: DUP5 000017f6: GT 000017f7: PUSH2 0x182c 000017fa: JUMPI 000017fb: PUSH1 0x40 000017fd: MLOAD 000017fe: PUSH32 0x840c364a00000000000000000000000000000000000000000000000000000000 0000181f: DUP2 00001820: MSTORE 00001821: PUSH1 0x04 00001823: ADD 00001824: PUSH1 0x40 00001826: MLOAD 00001827: DUP1 00001828: SWAP2 00001829: SUB 0000182a: SWAP1 0000182b: REVERT 0000182c: JUMPDEST 0000182d: PUSH1 0x01 0000182f: PUSH1 0x01 00001831: PUSH1 0xa0 00001833: SHL 00001834: SUB 00001835: DUP3 00001836: AND 00001837: CALLER 00001838: EQ 00001839: PUSH2 0x186e 0000183c: JUMPI 0000183d: PUSH1 0x40 0000183f: MLOAD 00001840: PUSH32 0xe7fe5cf400000000000000000000000000000000000000000000000000000000 00001861: DUP2 00001862: MSTORE 00001863: PUSH1 0x04 00001865: ADD 00001866: PUSH1 0x40 00001868: MLOAD 00001869: DUP1 0000186a: SWAP2 0000186b: SUB 0000186c: SWAP1 0000186d: REVERT 0000186e: JUMPDEST 0000186f: DUP4 00001870: PUSH2 0x18ac 00001873: DUP4 00001874: PUSH1 0x01 00001876: PUSH1 0x01 00001878: PUSH1 0xa0 0000187a: SHL 0000187b: SUB 0000187c: AND 0000187d: PUSH0 0000187e: SWAP1 0000187f: DUP2 00001880: MSTORE 00001881: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00 000018a2: PUSH1 0x20 000018a4: MSTORE 000018a5: PUSH1 0x40 000018a7: SWAP1 000018a8: KECCAK256 000018a9: SLOAD 000018aa: SWAP1 000018ab: JUMP 000018ac: JUMPDEST 000018ad: LT 000018ae: ISZERO 000018af: PUSH2 0x18e4 000018b2: JUMPI 000018b3: PUSH1 0x40 000018b5: MLOAD 000018b6: PUSH32 0x3999656700000000000000000000000000000000000000000000000000000000 000018d7: DUP2 000018d8: MSTORE 000018d9: PUSH1 0x04 000018db: ADD 000018dc: PUSH1 0x40 000018de: MLOAD 000018df: DUP1 000018e0: SWAP2 000018e1: SUB 000018e2: SWAP1 000018e3: REVERT 000018e4: JUMPDEST 000018e5: PUSH0 000018e6: PUSH2 0x18ee 000018e9: DUP6 000018ea: PUSH2 0x0df8 000018ed: JUMP 000018ee: JUMPDEST 000018ef: SWAP1 000018f0: POP 000018f1: DUP1 000018f2: PUSH2 0x18f9 000018f5: PUSH2 0x277b 000018f8: JUMP 000018f9: JUMPDEST 000018fa: LT 000018fb: PUSH2 0x195e 000018fe: JUMPI 000018ff: PUSH2 0x190b 00001902: DUP4 00001903: DUP6 00001904: DUP6 00001905: DUP5 00001906: DUP10 00001907: PUSH2 0x2605 0000190a: JUMP 0000190b: JUMPDEST 0000190c: PUSH1 0x40 0000190e: DUP1 0000190f: MLOAD 00001910: DUP3 00001911: DUP2 00001912: MSTORE 00001913: PUSH1 0x20 00001915: DUP2 00001916: ADD 00001917: DUP8 00001918: SWAP1 00001919: MSTORE 0000191a: PUSH1 0x01 0000191c: SWAP2 0000191d: PUSH1 0x01 0000191f: PUSH1 0x01 00001921: PUSH1 0xa0 00001923: SHL 00001924: SUB 00001925: DUP1 00001926: DUP8 00001927: AND 00001928: SWAP3 00001929: SWAP1 0000192a: DUP9 0000192b: AND 0000192c: SWAP2 0000192d: PUSH32 0x9a626d8a4952950c7f8b9f5c92a2804e44e147ce4dd0add2f5928f1faea72590 0000194e: SWAP2 0000194f: ADD 00001950: PUSH1 0x40 00001952: MLOAD 00001953: DUP1 00001954: SWAP2 00001955: SUB 00001956: SWAP1 00001957: LOG4 00001958: SWAP1 00001959: POP 0000195a: PUSH2 0x0e42 0000195d: JUMP 0000195e: JUMPDEST 0000195f: PUSH1 0x40 00001961: DUP1 00001962: MLOAD 00001963: DUP3 00001964: DUP2 00001965: MSTORE 00001966: PUSH1 0x20 00001968: DUP2 00001969: ADD 0000196a: DUP8 0000196b: SWAP1 0000196c: MSTORE 0000196d: PUSH0 0000196e: SWAP2 0000196f: PUSH1 0x01 00001971: PUSH1 0x01 00001973: PUSH1 0xa0 00001975: SHL 00001976: SUB 00001977: DUP1 00001978: DUP8 00001979: AND 0000197a: SWAP3 0000197b: SWAP1 0000197c: DUP9 0000197d: AND 0000197e: SWAP2 0000197f: PUSH32 0x9a626d8a4952950c7f8b9f5c92a2804e44e147ce4dd0add2f5928f1faea72590 000019a0: SWAP2 000019a1: ADD 000019a2: PUSH1 0x40 000019a4: MLOAD 000019a5: DUP1 000019a6: SWAP2 000019a7: SUB 000019a8: SWAP1 000019a9: LOG4 000019aa: PUSH2 0x19b4 000019ad: DUP4 000019ae: ADDRESS 000019af: DUP8 000019b0: PUSH2 0x229e 000019b3: JUMP 000019b4: JUMPDEST 000019b5: DUP1 000019b6: PUSH1 0x03 000019b8: PUSH0 000019b9: DUP3 000019ba: DUP3 000019bb: SLOAD 000019bc: PUSH2 0x19c5 000019bf: SWAP2 000019c0: SWAP1 000019c1: PUSH2 0x3d2e 000019c4: JUMP 000019c5: JUMPDEST 000019c6: SWAP1 000019c7: SWAP2 000019c8: SSTORE 000019c9: POP 000019ca: POP 000019cb: PUSH1 0x01 000019cd: PUSH1 0x01 000019cf: PUSH1 0xa0 000019d1: SHL 000019d2: SUB 000019d3: DUP5 000019d4: AND 000019d5: PUSH0 000019d6: SWAP1 000019d7: DUP2 000019d8: MSTORE 000019d9: PUSH1 0x08 000019db: PUSH1 0x20 000019dd: MSTORE 000019de: PUSH1 0x40 000019e0: DUP2 000019e1: KECCAK256 000019e2: PUSH1 0x01 000019e4: DUP2 000019e5: ADD 000019e6: DUP1 000019e7: SLOAD 000019e8: SWAP2 000019e9: SWAP3 000019ea: DUP9 000019eb: SWAP3 000019ec: PUSH2 0x19f6 000019ef: SWAP1 000019f0: DUP5 000019f1: SWAP1 000019f2: PUSH2 0x3d2e 000019f5: JUMP 000019f6: JUMPDEST 000019f7: SWAP1 000019f8: SWAP2 000019f9: SSTORE 000019fa: POP 000019fb: POP 000019fc: DUP1 000019fd: SLOAD 000019fe: DUP3 000019ff: SWAP1 00001a00: DUP3 00001a01: SWAP1 00001a02: PUSH0 00001a03: SWAP1 00001a04: PUSH2 0x1a0e 00001a07: SWAP1 00001a08: DUP5 00001a09: SWAP1 00001a0a: PUSH2 0x3d2e 00001a0d: JUMP 00001a0e: JUMPDEST 00001a0f: SWAP1 00001a10: SWAP2 00001a11: SSTORE 00001a12: POP 00001a13: PUSH0 00001a14: SWAP8 00001a15: SWAP7 00001a16: POP 00001a17: POP 00001a18: POP 00001a19: POP 00001a1a: POP 00001a1b: POP 00001a1c: POP 00001a1d: JUMP 00001a1e: JUMPDEST 00001a1f: PUSH2 0x1a33 00001a22: CALLER 00001a23: PUSH0 00001a24: CALLDATALOAD 00001a25: PUSH1 0x01 00001a27: PUSH1 0x01 00001a29: PUSH1 0xe0 00001a2b: SHL 00001a2c: SUB 00001a2d: NOT 00001a2e: AND 00001a2f: PUSH2 0x1c90 00001a32: JUMP 00001a33: JUMPDEST 00001a34: PUSH2 0x1a6e 00001a37: JUMPI 00001a38: PUSH1 0x40 00001a3a: MLOAD 00001a3b: PUSH3 0x461bcd 00001a3f: PUSH1 0xe5 00001a41: SHL 00001a42: DUP2 00001a43: MSTORE 00001a44: PUSH1 0x20 00001a46: PUSH1 0x04 00001a48: DUP3 00001a49: ADD 00001a4a: MSTORE 00001a4b: PUSH1 0x0c 00001a4d: PUSH1 0x24 00001a4f: DUP3 00001a50: ADD 00001a51: MSTORE 00001a52: PUSH12 0x15539055551213d492569151 00001a5f: PUSH1 0xa2 00001a61: SHL 00001a62: PUSH1 0x44 00001a64: DUP3 00001a65: ADD 00001a66: MSTORE 00001a67: PUSH1 0x64 00001a69: ADD 00001a6a: PUSH2 0x0bef 00001a6d: JUMP 00001a6e: JUMPDEST 00001a6f: PUSH2 0x14c5 00001a72: PUSH2 0x284d 00001a75: JUMP 00001a76: JUMPDEST 00001a77: PUSH0 00001a78: PUSH2 0x1a7f 00001a7b: PUSH2 0x26a7 00001a7e: JUMP 00001a7f: JUMPDEST 00001a80: PUSH2 0x0e42 00001a83: DUP4 00001a84: DUP4 00001a85: PUSH2 0x28a8 00001a88: JUMP 00001a89: JUMPDEST 00001a8a: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace04 00001aab: DUP1 00001aac: SLOAD 00001aad: PUSH1 0x60 00001aaf: SWAP2 00001ab0: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00 00001ad1: SWAP2 00001ad2: PUSH2 0x0d76 00001ad5: SWAP1 00001ad6: PUSH2 0x3cf6 00001ad9: JUMP 00001ada: JUMPDEST 00001adb: PUSH0 00001adc: CALLER 00001add: PUSH2 0x0e16 00001ae0: DUP2 00001ae1: DUP6 00001ae2: DUP6 00001ae3: PUSH2 0x229e 00001ae6: JUMP 00001ae7: JUMPDEST 00001ae8: PUSH1 0x40 00001aea: MLOAD 00001aeb: PUSH4 0x02c68be3 00001af0: PUSH1 0xe3 00001af2: SHL 00001af3: DUP2 00001af4: MSTORE 00001af5: ADDRESS 00001af6: PUSH1 0x04 00001af8: DUP3 00001af9: ADD 00001afa: MSTORE 00001afb: PUSH0 00001afc: SWAP1 00001afd: PUSH20 0x6e879d0ccc85085a709ebf5539224f53d0d396b0 00001b12: SWAP1 00001b13: PUSH4 0x16345f18 00001b18: SWAP1 00001b19: PUSH1 0x24 00001b1b: ADD 00001b1c: PUSH1 0x40 00001b1e: DUP1 00001b1f: MLOAD 00001b20: DUP1 00001b21: DUP4 00001b22: SUB 00001b23: DUP2 00001b24: DUP7 00001b25: GAS 00001b26: STATICCALL 00001b27: ISZERO 00001b28: DUP1 00001b29: ISZERO 00001b2a: PUSH2 0x1b35 00001b2d: JUMPI 00001b2e: RETURNDATASIZE 00001b2f: PUSH0 00001b30: PUSH0 00001b31: RETURNDATACOPY 00001b32: RETURNDATASIZE 00001b33: PUSH0 00001b34: REVERT 00001b35: JUMPDEST 00001b36: POP 00001b37: POP 00001b38: POP 00001b39: POP 00001b3a: PUSH1 0x40 00001b3c: MLOAD 00001b3d: RETURNDATASIZE 00001b3e: PUSH1 0x1f 00001b40: NOT 00001b41: PUSH1 0x1f 00001b43: DUP3 00001b44: ADD 00001b45: AND 00001b46: DUP3 00001b47: ADD 00001b48: DUP1 00001b49: PUSH1 0x40 00001b4b: MSTORE 00001b4c: POP 00001b4d: DUP2 00001b4e: ADD 00001b4f: SWAP1 00001b50: PUSH2 0x1b59 00001b53: SWAP2 00001b54: SWAP1 00001b55: PUSH2 0x3bc1 00001b58: JUMP 00001b59: JUMPDEST 00001b5a: POP 00001b5b: SWAP1 00001b5c: POP 00001b5d: PUSH2 0x1b64 00001b60: PUSH2 0x1431 00001b63: JUMP 00001b64: JUMPDEST 00001b65: PUSH2 0x1b6f 00001b68: SWAP1 00001b69: PUSH1 0x12 00001b6b: PUSH2 0x3e19 00001b6e: JUMP 00001b6f: JUMPDEST 00001b70: PUSH2 0x1b7a 00001b73: SWAP1 00001b74: PUSH1 0x0a 00001b76: PUSH2 0x3ce8 00001b79: JUMP 00001b7a: JUMPDEST 00001b7b: PUSH2 0x1b84 00001b7e: SWAP1 00001b7f: DUP3 00001b80: PUSH2 0x3e32 00001b83: JUMP 00001b84: JUMPDEST 00001b85: SWAP1 00001b86: POP 00001b87: SWAP1 00001b88: JUMP 00001b89: JUMPDEST 00001b8a: PUSH0 00001b8b: PUSH0 00001b8c: PUSH2 0x1b94 00001b8f: DUP4 00001b90: PUSH2 0x2920 00001b93: JUMP 00001b94: JUMPDEST 00001b95: SWAP1 00001b96: POP 00001b97: PUSH2 0x1ba2 00001b9a: DUP2 00001b9b: PUSH1 0x06 00001b9d: SLOAD 00001b9e: PUSH2 0x227c 00001ba1: JUMP 00001ba2: JUMPDEST 00001ba3: PUSH2 0x0e42 00001ba6: SWAP1 00001ba7: DUP3 00001ba8: PUSH2 0x3d2e 00001bab: JUMP 00001bac: JUMPDEST 00001bad: PUSH0 00001bae: PUSH2 0x1bb5 00001bb1: PUSH2 0x26a7 00001bb4: JUMP 00001bb5: JUMPDEST 00001bb6: PUSH1 0x40 00001bb8: MLOAD 00001bb9: PUSH32 0x797f246a00000000000000000000000000000000000000000000000000000000 00001bda: DUP2 00001bdb: MSTORE 00001bdc: PUSH1 0x04 00001bde: ADD 00001bdf: PUSH1 0x40 00001be1: MLOAD 00001be2: DUP1 00001be3: SWAP2 00001be4: SUB 00001be5: SWAP1 00001be6: REVERT 00001be7: JUMPDEST 00001be8: PUSH0 00001be9: PUSH2 0x1bf0 00001bec: PUSH2 0x26a7 00001bef: JUMP 00001bf0: JUMPDEST 00001bf1: PUSH2 0x1bfb 00001bf4: DUP5 00001bf5: DUP5 00001bf6: DUP5 00001bf7: PUSH2 0x17aa 00001bfa: JUMP 00001bfb: JUMPDEST 00001bfc: SWAP5 00001bfd: SWAP4 00001bfe: POP 00001bff: POP 00001c00: POP 00001c01: POP 00001c02: JUMP 00001c03: JUMPDEST 00001c04: PUSH0 00001c05: PUSH2 0x0e03 00001c08: DUP3 00001c09: PUSH0 00001c0a: PUSH2 0x292c 00001c0d: JUMP 00001c0e: JUMPDEST 00001c0f: PUSH0 00001c10: PUSH2 0x1c3a 00001c13: PUSH32 0xcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300 00001c34: SLOAD 00001c35: PUSH1 0xff 00001c37: AND 00001c38: SWAP1 00001c39: JUMP 00001c3a: JUMPDEST 00001c3b: ISZERO 00001c3c: PUSH2 0x1c46 00001c3f: JUMPI 00001c40: POP 00001c41: PUSH0 00001c42: SWAP2 00001c43: SWAP1 00001c44: POP 00001c45: JUMP 00001c46: JUMPDEST 00001c47: PUSH2 0x0e03 00001c4a: DUP3 00001c4b: PUSH2 0x29e1 00001c4e: JUMP 00001c4f: JUMPDEST 00001c50: PUSH0 00001c51: PUSH2 0x1c7b 00001c54: PUSH32 0xcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300 00001c75: SLOAD 00001c76: PUSH1 0xff 00001c78: AND 00001c79: SWAP1 00001c7a: JUMP 00001c7b: JUMPDEST 00001c7c: ISZERO 00001c7d: PUSH2 0x1c87 00001c80: JUMPI 00001c81: POP 00001c82: PUSH0 00001c83: SWAP2 00001c84: SWAP1 00001c85: POP 00001c86: JUMP 00001c87: JUMPDEST 00001c88: PUSH2 0x0e03 00001c8b: DUP3 00001c8c: PUSH2 0x2a22 00001c8f: JUMP 00001c90: JUMPDEST 00001c91: PUSH32 0xdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea01 00001cb2: SLOAD 00001cb3: PUSH0 00001cb4: SWAP1 00001cb5: PUSH32 0xdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea00 00001cd6: SWAP1 00001cd7: PUSH1 0x01 00001cd9: PUSH1 0x01 00001cdb: PUSH1 0xa0 00001cdd: SHL 00001cde: SUB 00001cdf: AND 00001ce0: DUP1 00001ce1: ISZERO 00001ce2: DUP1 00001ce3: ISZERO 00001ce4: SWAP1 00001ce5: PUSH2 0x1d67 00001ce8: JUMPI 00001ce9: POP 00001cea: PUSH1 0x40 00001cec: MLOAD 00001ced: PUSH4 0xb7009613 00001cf2: PUSH1 0xe0 00001cf4: SHL 00001cf5: DUP2 00001cf6: MSTORE 00001cf7: PUSH1 0x01 00001cf9: PUSH1 0x01 00001cfb: PUSH1 0xa0 00001cfd: SHL 00001cfe: SUB 00001cff: DUP7 00001d00: DUP2 00001d01: AND 00001d02: PUSH1 0x04 00001d04: DUP4 00001d05: ADD 00001d06: MSTORE 00001d07: ADDRESS 00001d08: PUSH1 0x24 00001d0a: DUP4 00001d0b: ADD 00001d0c: MSTORE 00001d0d: PUSH1 0x01 00001d0f: PUSH1 0x01 00001d11: PUSH1 0xe0 00001d13: SHL 00001d14: SUB 00001d15: NOT 00001d16: DUP7 00001d17: AND 00001d18: PUSH1 0x44 00001d1a: DUP4 00001d1b: ADD 00001d1c: MSTORE 00001d1d: DUP3 00001d1e: AND 00001d1f: SWAP1 00001d20: PUSH4 0xb7009613 00001d25: SWAP1 00001d26: PUSH1 0x64 00001d28: ADD 00001d29: PUSH1 0x20 00001d2b: PUSH1 0x40 00001d2d: MLOAD 00001d2e: DUP1 00001d2f: DUP4 00001d30: SUB 00001d31: DUP2 00001d32: DUP7 00001d33: GAS 00001d34: STATICCALL 00001d35: ISZERO 00001d36: DUP1 00001d37: ISZERO 00001d38: PUSH2 0x1d43 00001d3b: JUMPI 00001d3c: RETURNDATASIZE 00001d3d: PUSH0 00001d3e: PUSH0 00001d3f: RETURNDATACOPY 00001d40: RETURNDATASIZE 00001d41: PUSH0 00001d42: REVERT 00001d43: JUMPDEST 00001d44: POP 00001d45: POP 00001d46: POP 00001d47: POP 00001d48: PUSH1 0x40 00001d4a: MLOAD 00001d4b: RETURNDATASIZE 00001d4c: PUSH1 0x1f 00001d4e: NOT 00001d4f: PUSH1 0x1f 00001d51: DUP3 00001d52: ADD 00001d53: AND 00001d54: DUP3 00001d55: ADD 00001d56: DUP1 00001d57: PUSH1 0x40 00001d59: MSTORE 00001d5a: POP 00001d5b: DUP2 00001d5c: ADD 00001d5d: SWAP1 00001d5e: PUSH2 0x1d67 00001d61: SWAP2 00001d62: SWAP1 00001d63: PUSH2 0x3de1 00001d66: JUMP 00001d67: JUMPDEST 00001d68: DUP1 00001d69: PUSH2 0x1d7e 00001d6c: JUMPI 00001d6d: POP 00001d6e: DUP2 00001d6f: SLOAD 00001d70: PUSH1 0x01 00001d72: PUSH1 0x01 00001d74: PUSH1 0xa0 00001d76: SHL 00001d77: SUB 00001d78: DUP7 00001d79: DUP2 00001d7a: AND 00001d7b: SWAP2 00001d7c: AND 00001d7d: EQ 00001d7e: JUMPDEST 00001d7f: SWAP6 00001d80: SWAP5 00001d81: POP 00001d82: POP 00001d83: POP 00001d84: POP 00001d85: POP 00001d86: JUMP 00001d87: JUMPDEST 00001d88: PUSH2 0x1d9c 00001d8b: CALLER 00001d8c: PUSH0 00001d8d: CALLDATALOAD 00001d8e: PUSH1 0x01 00001d90: PUSH1 0x01 00001d92: PUSH1 0xe0 00001d94: SHL 00001d95: SUB 00001d96: NOT 00001d97: AND 00001d98: PUSH2 0x1c90 00001d9b: JUMP 00001d9c: JUMPDEST 00001d9d: PUSH2 0x1dd7 00001da0: JUMPI 00001da1: PUSH1 0x40 00001da3: MLOAD 00001da4: PUSH3 0x461bcd 00001da8: PUSH1 0xe5 00001daa: SHL 00001dab: DUP2 00001dac: MSTORE 00001dad: PUSH1 0x20 00001daf: PUSH1 0x04 00001db1: DUP3 00001db2: ADD 00001db3: MSTORE 00001db4: PUSH1 0x0c 00001db6: PUSH1 0x24 00001db8: DUP3 00001db9: ADD 00001dba: MSTORE 00001dbb: PUSH12 0x15539055551213d492569151 00001dc8: PUSH1 0xa2 00001dca: SHL 00001dcb: PUSH1 0x44 00001dcd: DUP3 00001dce: ADD 00001dcf: MSTORE 00001dd0: PUSH1 0x64 00001dd2: ADD 00001dd3: PUSH2 0x0bef 00001dd6: JUMP 00001dd7: JUMPDEST 00001dd8: PUSH8 0x016345785d8a0000 00001de1: DUP2 00001de2: LT 00001de3: PUSH2 0x1dff 00001de6: JUMPI 00001de7: PUSH1 0x40 00001de9: MLOAD 00001dea: PUSH4 0x58d620b3 00001def: PUSH1 0xe0 00001df1: SHL 00001df2: DUP2 00001df3: MSTORE 00001df4: PUSH1 0x04 00001df6: ADD 00001df7: PUSH1 0x40 00001df9: MLOAD 00001dfa: DUP1 00001dfb: SWAP2 00001dfc: SUB 00001dfd: SWAP1 00001dfe: REVERT 00001dff: JUMPDEST 00001e00: PUSH1 0x05 00001e02: SLOAD 00001e03: PUSH1 0x40 00001e05: DUP1 00001e06: MLOAD 00001e07: SWAP2 00001e08: DUP3 00001e09: MSTORE 00001e0a: PUSH1 0x20 00001e0c: DUP3 00001e0d: ADD 00001e0e: DUP4 00001e0f: SWAP1 00001e10: MSTORE 00001e11: PUSH32 0x733071ab8253b372ed26a6d1b04aec71c4bfcd209c93397df32bb77478cdd2c8 00001e32: SWAP2 00001e33: ADD 00001e34: PUSH1 0x40 00001e36: MLOAD 00001e37: DUP1 00001e38: SWAP2 00001e39: SUB 00001e3a: SWAP1 00001e3b: LOG1 00001e3c: PUSH1 0x05 00001e3e: SSTORE 00001e3f: JUMP 00001e40: JUMPDEST 00001e41: PUSH0 00001e42: PUSH0 00001e43: PUSH2 0x1e4e 00001e46: DUP4 00001e47: PUSH1 0x06 00001e49: SLOAD 00001e4a: PUSH2 0x25e4 00001e4d: JUMP 00001e4e: JUMPDEST 00001e4f: SWAP1 00001e50: POP 00001e51: PUSH2 0x0e42 00001e54: PUSH2 0x09d7 00001e57: DUP3 00001e58: DUP6 00001e59: PUSH2 0x3d41 00001e5c: JUMP 00001e5d: JUMPDEST 00001e5e: PUSH2 0x1e72 00001e61: CALLER 00001e62: PUSH0 00001e63: CALLDATALOAD 00001e64: PUSH1 0x01 00001e66: PUSH1 0x01 00001e68: PUSH1 0xe0 00001e6a: SHL 00001e6b: SUB 00001e6c: NOT 00001e6d: AND 00001e6e: PUSH2 0x1c90 00001e71: JUMP 00001e72: JUMPDEST 00001e73: PUSH2 0x1ead 00001e76: JUMPI 00001e77: PUSH1 0x40 00001e79: MLOAD 00001e7a: PUSH3 0x461bcd 00001e7e: PUSH1 0xe5 00001e80: SHL 00001e81: DUP2 00001e82: MSTORE 00001e83: PUSH1 0x20 00001e85: PUSH1 0x04 00001e87: DUP3 00001e88: ADD 00001e89: MSTORE 00001e8a: PUSH1 0x0c 00001e8c: PUSH1 0x24 00001e8e: DUP3 00001e8f: ADD 00001e90: MSTORE 00001e91: PUSH12 0x15539055551213d492569151 00001e9e: PUSH1 0xa2 00001ea0: SHL 00001ea1: PUSH1 0x44 00001ea3: DUP3 00001ea4: ADD 00001ea5: MSTORE 00001ea6: PUSH1 0x64 00001ea8: ADD 00001ea9: PUSH2 0x0bef 00001eac: JUMP 00001ead: JUMPDEST 00001eae: PUSH1 0x07 00001eb0: SLOAD 00001eb1: PUSH1 0x40 00001eb3: DUP1 00001eb4: MLOAD 00001eb5: PUSH1 0x01 00001eb7: PUSH1 0x01 00001eb9: PUSH1 0xa0 00001ebb: SHL 00001ebc: SUB 00001ebd: SWAP3 00001ebe: DUP4 00001ebf: AND 00001ec0: DUP2 00001ec1: MSTORE 00001ec2: SWAP2 00001ec3: DUP4 00001ec4: AND 00001ec5: PUSH1 0x20 00001ec7: DUP4 00001ec8: ADD 00001ec9: MSTORE 00001eca: PUSH32 0xaaebcf1bfa00580e41d966056b48521fa9f202645c86d4ddf28113e617c1b1d3 00001eeb: SWAP2 00001eec: ADD 00001eed: PUSH1 0x40 00001eef: MLOAD 00001ef0: DUP1 00001ef1: SWAP2 00001ef2: SUB 00001ef3: SWAP1 00001ef4: LOG1 00001ef5: PUSH1 0x07 00001ef7: DUP1 00001ef8: SLOAD 00001ef9: PUSH1 0x01 00001efb: PUSH1 0x01 00001efd: PUSH1 0xa0 00001eff: SHL 00001f00: SUB 00001f01: NOT 00001f02: AND 00001f03: PUSH1 0x01 00001f05: PUSH1 0x01 00001f07: PUSH1 0xa0 00001f09: SHL 00001f0a: SUB 00001f0b: SWAP3 00001f0c: SWAP1 00001f0d: SWAP3 00001f0e: AND 00001f0f: SWAP2 00001f10: SWAP1 00001f11: SWAP2 00001f12: OR 00001f13: SWAP1 00001f14: SSTORE 00001f15: JUMP 00001f16: JUMPDEST 00001f17: PUSH2 0x1f2b 00001f1a: CALLER 00001f1b: PUSH0 00001f1c: CALLDATALOAD 00001f1d: PUSH1 0x01 00001f1f: PUSH1 0x01 00001f21: PUSH1 0xe0 00001f23: SHL 00001f24: SUB 00001f25: NOT 00001f26: AND 00001f27: PUSH2 0x1c90 00001f2a: JUMP 00001f2b: JUMPDEST 00001f2c: PUSH2 0x1f66 00001f2f: JUMPI 00001f30: PUSH1 0x40 00001f32: MLOAD 00001f33: PUSH3 0x461bcd 00001f37: PUSH1 0xe5 00001f39: SHL 00001f3a: DUP2 00001f3b: MSTORE 00001f3c: PUSH1 0x20 00001f3e: PUSH1 0x04 00001f40: DUP3 00001f41: ADD 00001f42: MSTORE 00001f43: PUSH1 0x0c 00001f45: PUSH1 0x24 00001f47: DUP3 00001f48: ADD 00001f49: MSTORE 00001f4a: PUSH12 0x15539055551213d492569151 00001f57: PUSH1 0xa2 00001f59: SHL 00001f5a: PUSH1 0x44 00001f5c: DUP3 00001f5d: ADD 00001f5e: MSTORE 00001f5f: PUSH1 0x64 00001f61: ADD 00001f62: PUSH2 0x0bef 00001f65: JUMP 00001f66: JUMPDEST 00001f67: PUSH32 0xdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea00 00001f88: DUP1 00001f89: SLOAD 00001f8a: PUSH1 0x01 00001f8c: PUSH1 0x01 00001f8e: PUSH1 0xa0 00001f90: SHL 00001f91: SUB 00001f92: NOT 00001f93: AND 00001f94: PUSH1 0x01 00001f96: PUSH1 0x01 00001f98: PUSH1 0xa0 00001f9a: SHL 00001f9b: SUB 00001f9c: DUP4 00001f9d: AND 00001f9e: SWAP1 00001f9f: DUP2 00001fa0: OR 00001fa1: DUP3 00001fa2: SSTORE 00001fa3: PUSH1 0x40 00001fa5: MLOAD 00001fa6: CALLER 00001fa7: SWAP1 00001fa8: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00001fc9: SWAP1 00001fca: PUSH0 00001fcb: SWAP1 00001fcc: LOG3 00001fcd: POP 00001fce: POP 00001fcf: JUMP 00001fd0: JUMPDEST 00001fd1: PUSH1 0x60 00001fd3: PUSH2 0x1fe7 00001fd6: CALLER 00001fd7: PUSH0 00001fd8: CALLDATALOAD 00001fd9: PUSH1 0x01 00001fdb: PUSH1 0x01 00001fdd: PUSH1 0xe0 00001fdf: SHL 00001fe0: SUB 00001fe1: NOT 00001fe2: AND 00001fe3: PUSH2 0x1c90 00001fe6: JUMP 00001fe7: JUMPDEST 00001fe8: PUSH2 0x2022 00001feb: JUMPI 00001fec: PUSH1 0x40 00001fee: MLOAD 00001fef: PUSH3 0x461bcd 00001ff3: PUSH1 0xe5 00001ff5: SHL 00001ff6: DUP2 00001ff7: MSTORE 00001ff8: PUSH1 0x20 00001ffa: PUSH1 0x04 00001ffc: DUP3 00001ffd: ADD 00001ffe: MSTORE 00001fff: PUSH1 0x0c 00002001: PUSH1 0x24 00002003: DUP3 00002004: ADD 00002005: MSTORE 00002006: PUSH12 0x15539055551213d492569151 00002013: PUSH1 0xa2 00002015: SHL 00002016: PUSH1 0x44 00002018: DUP3 00002019: ADD 0000201a: MSTORE 0000201b: PUSH1 0x64 0000201d: ADD 0000201e: PUSH2 0x0bef 00002021: JUMP 00002022: JUMPDEST 00002023: PUSH0 00002024: PUSH2 0x202d 00002027: DUP5 00002028: DUP7 00002029: PUSH2 0x3dab 0000202c: JUMP 0000202d: JUMPDEST 0000202e: SWAP1 0000202f: POP 00002030: PUSH2 0x2060 00002033: PUSH32 0xdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea01 00002054: SLOAD 00002055: PUSH1 0x01 00002057: PUSH1 0x01 00002059: PUSH1 0xa0 0000205b: SHL 0000205c: SUB 0000205d: AND 0000205e: SWAP1 0000205f: JUMP 00002060: JUMPDEST 00002061: PUSH1 0x40 00002063: MLOAD 00002064: PUSH4 0xb7009613 00002069: PUSH1 0xe0 0000206b: SHL 0000206c: DUP2 0000206d: MSTORE 0000206e: CALLER 0000206f: PUSH1 0x04 00002071: DUP3 00002072: ADD 00002073: MSTORE 00002074: PUSH1 0x01 00002076: PUSH1 0x01 00002078: PUSH1 0xa0 0000207a: SHL 0000207b: SUB 0000207c: DUP9 0000207d: DUP2 0000207e: AND 0000207f: PUSH1 0x24 00002081: DUP4 00002082: ADD 00002083: MSTORE 00002084: PUSH1 0x01 00002086: PUSH1 0x01 00002088: PUSH1 0xe0 0000208a: SHL 0000208b: SUB 0000208c: NOT 0000208d: DUP5 0000208e: AND 0000208f: PUSH1 0x44 00002091: DUP4 00002092: ADD 00002093: MSTORE 00002094: SWAP2 00002095: SWAP1 00002096: SWAP2 00002097: AND 00002098: SWAP1 00002099: PUSH4 0xb7009613 0000209e: SWAP1 0000209f: PUSH1 0x64 000020a1: ADD 000020a2: PUSH1 0x20 000020a4: PUSH1 0x40 000020a6: MLOAD 000020a7: DUP1 000020a8: DUP4 000020a9: SUB 000020aa: DUP2 000020ab: DUP7 000020ac: GAS 000020ad: STATICCALL 000020ae: ISZERO 000020af: DUP1 000020b0: ISZERO 000020b1: PUSH2 0x20bc 000020b4: JUMPI 000020b5: RETURNDATASIZE 000020b6: PUSH0 000020b7: PUSH0 000020b8: RETURNDATACOPY 000020b9: RETURNDATASIZE 000020ba: PUSH0 000020bb: REVERT 000020bc: JUMPDEST 000020bd: POP 000020be: POP 000020bf: POP 000020c0: POP 000020c1: PUSH1 0x40 000020c3: MLOAD 000020c4: RETURNDATASIZE 000020c5: PUSH1 0x1f 000020c7: NOT 000020c8: PUSH1 0x1f 000020ca: DUP3 000020cb: ADD 000020cc: AND 000020cd: DUP3 000020ce: ADD 000020cf: DUP1 000020d0: PUSH1 0x40 000020d2: MSTORE 000020d3: POP 000020d4: DUP2 000020d5: ADD 000020d6: SWAP1 000020d7: PUSH2 0x20e0 000020da: SWAP2 000020db: SWAP1 000020dc: PUSH2 0x3de1 000020df: JUMP 000020e0: JUMPDEST 000020e1: DUP7 000020e2: DUP3 000020e3: SWAP1 000020e4: SWAP2 000020e5: PUSH2 0x211c 000020e8: JUMPI 000020e9: PUSH1 0x40 000020eb: MLOAD 000020ec: PUSH4 0x7dab1813 000020f1: PUSH1 0xe1 000020f3: SHL 000020f4: DUP2 000020f5: MSTORE 000020f6: PUSH1 0x01 000020f8: PUSH1 0x01 000020fa: PUSH1 0xa0 000020fc: SHL 000020fd: SUB 000020fe: SWAP1 000020ff: SWAP3 00002100: AND 00002101: PUSH1 0x04 00002103: DUP4 00002104: ADD 00002105: MSTORE 00002106: PUSH1 0x01 00002108: PUSH1 0x01 0000210a: PUSH1 0xe0 0000210c: SHL 0000210d: SUB 0000210e: NOT 0000210f: AND 00002110: PUSH1 0x24 00002112: DUP3 00002113: ADD 00002114: MSTORE 00002115: PUSH1 0x44 00002117: ADD 00002118: PUSH2 0x0bef 0000211b: JUMP 0000211c: JUMPDEST 0000211d: POP 0000211e: POP 0000211f: PUSH2 0x2168 00002122: DUP6 00002123: DUP6 00002124: DUP1 00002125: DUP1 00002126: PUSH1 0x1f 00002128: ADD 00002129: PUSH1 0x20 0000212b: DUP1 0000212c: SWAP2 0000212d: DIV 0000212e: MUL 0000212f: PUSH1 0x20 00002131: ADD 00002132: PUSH1 0x40 00002134: MLOAD 00002135: SWAP1 00002136: DUP2 00002137: ADD 00002138: PUSH1 0x40 0000213a: MSTORE 0000213b: DUP1 0000213c: SWAP4 0000213d: SWAP3 0000213e: SWAP2 0000213f: SWAP1 00002140: DUP2 00002141: DUP2 00002142: MSTORE 00002143: PUSH1 0x20 00002145: ADD 00002146: DUP4 00002147: DUP4 00002148: DUP1 00002149: DUP3 0000214a: DUP5 0000214b: CALLDATACOPY 0000214c: PUSH0 0000214d: SWAP3 0000214e: ADD 0000214f: SWAP2 00002150: SWAP1 00002151: SWAP2 00002152: MSTORE 00002153: POP 00002154: POP 00002155: POP 00002156: PUSH1 0x01 00002158: PUSH1 0x01 0000215a: PUSH1 0xa0 0000215c: SHL 0000215d: SUB 0000215e: DUP10 0000215f: AND 00002160: SWAP2 00002161: SWAP1 00002162: POP 00002163: DUP6 00002164: PUSH2 0x2415 00002167: JUMP 00002168: JUMPDEST 00002169: SWAP7 0000216a: SWAP6 0000216b: POP 0000216c: POP 0000216d: POP 0000216e: POP 0000216f: POP 00002170: POP 00002171: JUMP 00002172: JUMPDEST 00002173: PUSH0 00002174: PUSH2 0x219f 00002177: PUSH2 0x217f 0000217a: DUP4 0000217b: PUSH2 0x2a5e 0000217e: JUMP 0000217f: JUMPDEST 00002180: DUP1 00002181: ISZERO 00002182: PUSH2 0x219a 00002185: JUMPI 00002186: POP 00002187: PUSH0 00002188: DUP5 00002189: DUP1 0000218a: PUSH2 0x2195 0000218d: JUMPI 0000218e: PUSH2 0x2195 00002191: PUSH2 0x3e49 00002194: JUMP 00002195: JUMPDEST 00002196: DUP7 00002197: DUP9 00002198: MULMOD 00002199: GT 0000219a: JUMPDEST 0000219b: ISZERO 0000219c: ISZERO 0000219d: SWAP1 0000219e: JUMP 0000219f: JUMPDEST 000021a0: PUSH2 0x21aa 000021a3: DUP7 000021a4: DUP7 000021a5: DUP7 000021a6: PUSH2 0x2a8a 000021a9: JUMP 000021aa: JUMPDEST 000021ab: PUSH2 0x1d7e 000021ae: SWAP2 000021af: SWAP1 000021b0: PUSH2 0x3d2e 000021b3: JUMP 000021b4: JUMPDEST 000021b5: PUSH1 0x40 000021b7: MLOAD 000021b8: PUSH4 0x02c68be3 000021bd: PUSH1 0xe3 000021bf: SHL 000021c0: DUP2 000021c1: MSTORE 000021c2: ADDRESS 000021c3: PUSH1 0x04 000021c5: DUP3 000021c6: ADD 000021c7: MSTORE 000021c8: PUSH0 000021c9: SWAP1 000021ca: DUP2 000021cb: SWAP1 000021cc: PUSH20 0x6e879d0ccc85085a709ebf5539224f53d0d396b0 000021e1: SWAP1 000021e2: PUSH4 0x16345f18 000021e7: SWAP1 000021e8: PUSH1 0x24 000021ea: ADD 000021eb: PUSH1 0x40 000021ed: DUP1 000021ee: MLOAD 000021ef: DUP1 000021f0: DUP4 000021f1: SUB 000021f2: DUP2 000021f3: DUP7 000021f4: GAS 000021f5: STATICCALL 000021f6: ISZERO 000021f7: DUP1 000021f8: ISZERO 000021f9: PUSH2 0x2204 000021fc: JUMPI 000021fd: RETURNDATASIZE 000021fe: PUSH0 000021ff: PUSH0 00002200: RETURNDATACOPY 00002201: RETURNDATASIZE 00002202: PUSH0 00002203: REVERT 00002204: JUMPDEST 00002205: POP 00002206: POP 00002207: POP 00002208: POP 00002209: PUSH1 0x40 0000220b: MLOAD 0000220c: RETURNDATASIZE 0000220d: PUSH1 0x1f 0000220f: NOT 00002210: PUSH1 0x1f 00002212: DUP3 00002213: ADD 00002214: AND 00002215: DUP3 00002216: ADD 00002217: DUP1 00002218: PUSH1 0x40 0000221a: MSTORE 0000221b: POP 0000221c: DUP2 0000221d: ADD 0000221e: SWAP1 0000221f: PUSH2 0x2228 00002222: SWAP2 00002223: SWAP1 00002224: PUSH2 0x3bc1 00002227: JUMP 00002228: JUMPDEST 00002229: POP 0000222a: SWAP1 0000222b: POP 0000222c: PUSH0 0000222d: DUP2 0000222e: GT 0000222f: PUSH2 0x224a 00002232: JUMPI 00002233: PUSH1 0x40 00002235: MLOAD 00002236: PUSH3 0xbfc921 0000223a: PUSH1 0xe0 0000223c: SHL 0000223d: DUP2 0000223e: MSTORE 0000223f: PUSH1 0x04 00002241: ADD 00002242: PUSH1 0x40 00002244: MLOAD 00002245: DUP1 00002246: SWAP2 00002247: SUB 00002248: SWAP1 00002249: REVERT 0000224a: JUMPDEST 0000224b: PUSH2 0x1bfb 0000224e: DUP2 0000224f: PUSH2 0x2256 00002252: PUSH2 0x1431 00002255: JUMP 00002256: JUMPDEST 00002257: PUSH2 0x2261 0000225a: SWAP1 0000225b: PUSH1 0x0a 0000225d: PUSH2 0x3ce8 00002260: JUMP 00002261: JUMPDEST 00002262: DUP7 00002263: SWAP2 00002264: SWAP1 00002265: DUP7 00002266: PUSH2 0x2172 00002269: JUMP 0000226a: JUMPDEST 0000226b: PUSH2 0x2277 0000226e: DUP4 0000226f: DUP4 00002270: DUP4 00002271: PUSH1 0x01 00002273: PUSH2 0x2b40 00002276: JUMP 00002277: JUMPDEST 00002278: POP 00002279: POP 0000227a: POP 0000227b: JUMP 0000227c: JUMPDEST 0000227d: PUSH0 0000227e: PUSH2 0x0e42 00002281: DUP4 00002282: DUP4 00002283: PUSH8 0x0de0b6b3a7640000 0000228c: PUSH1 0x01 0000228e: PUSH2 0x2172 00002291: JUMP 00002292: JUMPDEST 00002293: PUSH0 00002294: PUSH2 0x0e03 00002297: DUP3 00002298: PUSH1 0x01 0000229a: PUSH2 0x292c 0000229d: JUMP 0000229e: JUMPDEST 0000229f: PUSH1 0x01 000022a1: PUSH1 0x01 000022a3: PUSH1 0xa0 000022a5: SHL 000022a6: SUB 000022a7: DUP4 000022a8: AND 000022a9: PUSH2 0x22c7 000022ac: JUMPI 000022ad: PUSH1 0x40 000022af: MLOAD 000022b0: PUSH4 0x4b637e8f 000022b5: PUSH1 0xe1 000022b7: SHL 000022b8: DUP2 000022b9: MSTORE 000022ba: PUSH0 000022bb: PUSH1 0x04 000022bd: DUP3 000022be: ADD 000022bf: MSTORE 000022c0: PUSH1 0x24 000022c2: ADD 000022c3: PUSH2 0x0bef 000022c6: JUMP 000022c7: JUMPDEST 000022c8: PUSH1 0x01 000022ca: PUSH1 0x01 000022cc: PUSH1 0xa0 000022ce: SHL 000022cf: SUB 000022d0: DUP3 000022d1: AND 000022d2: PUSH2 0x22f0 000022d5: JUMPI 000022d6: PUSH1 0x40 000022d8: MLOAD 000022d9: PUSH4 0xec442f05 000022de: PUSH1 0xe0 000022e0: SHL 000022e1: DUP2 000022e2: MSTORE 000022e3: PUSH0 000022e4: PUSH1 0x04 000022e6: DUP3 000022e7: ADD 000022e8: MSTORE 000022e9: PUSH1 0x24 000022eb: ADD 000022ec: PUSH2 0x0bef 000022ef: JUMP 000022f0: JUMPDEST 000022f1: PUSH2 0x2277 000022f4: DUP4 000022f5: DUP4 000022f6: DUP4 000022f7: PUSH2 0x2c69 000022fa: JUMP 000022fb: JUMPDEST 000022fc: PUSH2 0x14c5 000022ff: PUSH2 0x2c7c 00002302: JUMP 00002303: JUMPDEST 00002304: PUSH2 0x230b 00002307: PUSH2 0x2c7c 0000230a: JUMP 0000230b: JUMPDEST 0000230c: PUSH2 0x2315 0000230f: DUP3 00002310: DUP3 00002311: PUSH2 0x2ce3 00002314: JUMP 00002315: JUMPDEST 00002316: POP 00002317: POP 00002318: JUMP 00002319: JUMPDEST 0000231a: PUSH2 0x2321 0000231d: PUSH2 0x2c7c 00002320: JUMP 00002321: JUMPDEST 00002322: PUSH2 0x232a 00002325: DUP2 00002326: PUSH2 0x2d46 00002329: JUMP 0000232a: JUMPDEST 0000232b: POP 0000232c: JUMP 0000232d: JUMPDEST 0000232e: PUSH2 0x2335 00002331: PUSH2 0x2c7c 00002334: JUMP 00002335: JUMPDEST 00002336: PUSH32 0xdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea00 00002357: DUP1 00002358: SLOAD 00002359: PUSH1 0x01 0000235b: PUSH1 0x01 0000235d: PUSH1 0xa0 0000235f: SHL 00002360: SUB 00002361: NOT 00002362: SWAP1 00002363: DUP2 00002364: AND 00002365: PUSH1 0x01 00002367: PUSH1 0x01 00002369: PUSH1 0xa0 0000236b: SHL 0000236c: SUB 0000236d: DUP6 0000236e: DUP2 0000236f: AND 00002370: SWAP2 00002371: DUP3 00002372: OR 00002373: DUP5 00002374: SSTORE 00002375: PUSH32 0xdd3fd67aef415aded9493b31ad20a02d2991d4bb2760431cc729821271eaea01 00002396: DUP1 00002397: SLOAD 00002398: SWAP1 00002399: SWAP4 0000239a: AND 0000239b: SWAP1 0000239c: DUP6 0000239d: AND 0000239e: OR 0000239f: SWAP1 000023a0: SWAP2 000023a1: SSTORE 000023a2: PUSH1 0x40 000023a4: MLOAD 000023a5: CALLER 000023a6: SWAP1 000023a7: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 000023c8: SWAP1 000023c9: PUSH0 000023ca: SWAP1 000023cb: LOG3 000023cc: PUSH1 0x40 000023ce: MLOAD 000023cf: PUSH1 0x01 000023d1: PUSH1 0x01 000023d3: PUSH1 0xa0 000023d5: SHL 000023d6: SUB 000023d7: DUP4 000023d8: AND 000023d9: SWAP1 000023da: CALLER 000023db: SWAP1 000023dc: PUSH32 0xa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b76389980198 000023fd: SWAP1 000023fe: PUSH0 000023ff: SWAP1 00002400: LOG3 00002401: POP 00002402: POP 00002403: POP 00002404: JUMP 00002405: JUMPDEST 00002406: PUSH2 0x240d 00002409: PUSH2 0x2c7c 0000240c: JUMP 0000240d: JUMPDEST 0000240e: PUSH2 0x14c5 00002411: PUSH2 0x2de1 00002414: JUMP 00002415: JUMPDEST 00002416: PUSH1 0x60 00002418: DUP2 00002419: SELFBALANCE 0000241a: LT 0000241b: ISZERO 0000241c: PUSH2 0x245a 0000241f: JUMPI 00002420: PUSH1 0x40 00002422: MLOAD 00002423: PUSH32 0xcf47918100000000000000000000000000000000000000000000000000000000 00002444: DUP2 00002445: MSTORE 00002446: SELFBALANCE 00002447: PUSH1 0x04 00002449: DUP3 0000244a: ADD 0000244b: MSTORE 0000244c: PUSH1 0x24 0000244e: DUP2 0000244f: ADD 00002450: DUP4 00002451: SWAP1 00002452: MSTORE 00002453: PUSH1 0x44 00002455: ADD 00002456: PUSH2 0x0bef 00002459: JUMP 0000245a: JUMPDEST 0000245b: PUSH0 0000245c: PUSH0 0000245d: DUP6 0000245e: PUSH1 0x01 00002460: PUSH1 0x01 00002462: PUSH1 0xa0 00002464: SHL 00002465: SUB 00002466: AND 00002467: DUP5 00002468: DUP7 00002469: PUSH1 0x40 0000246b: MLOAD 0000246c: PUSH2 0x2475 0000246f: SWAP2 00002470: SWAP1 00002471: PUSH2 0x3e5d 00002474: JUMP 00002475: JUMPDEST 00002476: PUSH0 00002477: PUSH1 0x40 00002479: MLOAD 0000247a: DUP1 0000247b: DUP4 0000247c: SUB 0000247d: DUP2 0000247e: DUP6 0000247f: DUP8 00002480: GAS 00002481: CALL 00002482: SWAP3 00002483: POP 00002484: POP 00002485: POP 00002486: RETURNDATASIZE 00002487: DUP1 00002488: PUSH0 00002489: DUP2 0000248a: EQ 0000248b: PUSH2 0x24af 0000248e: JUMPI 0000248f: PUSH1 0x40 00002491: MLOAD 00002492: SWAP2 00002493: POP 00002494: PUSH1 0x1f 00002496: NOT 00002497: PUSH1 0x3f 00002499: RETURNDATASIZE 0000249a: ADD 0000249b: AND 0000249c: DUP3 0000249d: ADD 0000249e: PUSH1 0x40 000024a0: MSTORE 000024a1: RETURNDATASIZE 000024a2: DUP3 000024a3: MSTORE 000024a4: RETURNDATASIZE 000024a5: PUSH0 000024a6: PUSH1 0x20 000024a8: DUP5 000024a9: ADD 000024aa: RETURNDATACOPY 000024ab: PUSH2 0x24b4 000024ae: JUMP 000024af: JUMPDEST 000024b0: PUSH1 0x60 000024b2: SWAP2 000024b3: POP 000024b4: JUMPDEST 000024b5: POP 000024b6: SWAP2 000024b7: POP 000024b8: SWAP2 000024b9: POP 000024ba: PUSH2 0x2168 000024bd: DUP7 000024be: DUP4 000024bf: DUP4 000024c0: PUSH2 0x2e14 000024c3: JUMP 000024c4: JUMPDEST 000024c5: PUSH1 0x01 000024c7: PUSH1 0x01 000024c9: PUSH1 0xa0 000024cb: SHL 000024cc: SUB 000024cd: DUP4 000024ce: DUP2 000024cf: AND 000024d0: PUSH0 000024d1: SWAP1 000024d2: DUP2 000024d3: MSTORE 000024d4: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01 000024f5: PUSH1 0x20 000024f7: SWAP1 000024f8: DUP2 000024f9: MSTORE 000024fa: PUSH1 0x40 000024fc: DUP1 000024fd: DUP4 000024fe: KECCAK256 000024ff: SWAP4 00002500: DUP7 00002501: AND 00002502: DUP4 00002503: MSTORE 00002504: SWAP3 00002505: SWAP1 00002506: MSTORE 00002507: KECCAK256 00002508: SLOAD 00002509: PUSH0 0000250a: NOT 0000250b: DUP2 0000250c: LT 0000250d: ISZERO 0000250e: PUSH2 0x0fa8 00002511: JUMPI 00002512: DUP2 00002513: DUP2 00002514: LT 00002515: ISZERO 00002516: PUSH2 0x2564 00002519: JUMPI 0000251a: PUSH1 0x40 0000251c: MLOAD 0000251d: PUSH32 0xfb8f41b200000000000000000000000000000000000000000000000000000000 0000253e: DUP2 0000253f: MSTORE 00002540: PUSH1 0x01 00002542: PUSH1 0x01 00002544: PUSH1 0xa0 00002546: SHL 00002547: SUB 00002548: DUP5 00002549: AND 0000254a: PUSH1 0x04 0000254c: DUP3 0000254d: ADD 0000254e: MSTORE 0000254f: PUSH1 0x24 00002551: DUP2 00002552: ADD 00002553: DUP3 00002554: SWAP1 00002555: MSTORE 00002556: PUSH1 0x44 00002558: DUP2 00002559: ADD 0000255a: DUP4 0000255b: SWAP1 0000255c: MSTORE 0000255d: PUSH1 0x64 0000255f: ADD 00002560: PUSH2 0x0bef 00002563: JUMP 00002564: JUMPDEST 00002565: PUSH2 0x0fa8 00002568: DUP5 00002569: DUP5 0000256a: DUP5 0000256b: DUP5 0000256c: SUB 0000256d: PUSH0 0000256e: PUSH2 0x2b40 00002571: JUMP 00002572: JUMPDEST 00002573: PUSH2 0x257a 00002576: PUSH2 0x2e89 00002579: JUMP 0000257a: JUMPDEST 0000257b: PUSH32 0xcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300 0000259c: DUP1 0000259d: SLOAD 0000259e: PUSH1 0xff 000025a0: NOT 000025a1: AND 000025a2: DUP2 000025a3: SSTORE 000025a4: PUSH32 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa 000025c5: CALLER 000025c6: JUMPDEST 000025c7: PUSH1 0x40 000025c9: MLOAD 000025ca: PUSH1 0x01 000025cc: PUSH1 0x01 000025ce: PUSH1 0xa0 000025d0: SHL 000025d1: SUB 000025d2: SWAP1 000025d3: SWAP2 000025d4: AND 000025d5: DUP2 000025d6: MSTORE 000025d7: PUSH1 0x20 000025d9: ADD 000025da: PUSH1 0x40 000025dc: MLOAD 000025dd: DUP1 000025de: SWAP2 000025df: SUB 000025e0: SWAP1 000025e1: LOG1 000025e2: POP 000025e3: JUMP 000025e4: JUMPDEST 000025e5: PUSH0 000025e6: PUSH2 0x0e42 000025e9: DUP3 000025ea: PUSH2 0x25fb 000025ed: PUSH8 0x0de0b6b3a7640000 000025f6: DUP3 000025f7: PUSH2 0x3d2e 000025fa: JUMP 000025fb: JUMPDEST 000025fc: DUP6 000025fd: SWAP2 000025fe: SWAP1 000025ff: PUSH1 0x01 00002601: PUSH2 0x2172 00002604: JUMP 00002605: JUMPDEST 00002606: PUSH0 00002607: PUSH2 0x2612 0000260a: DUP4 0000260b: PUSH1 0x05 0000260d: SLOAD 0000260e: PUSH2 0x25e4 00002611: JUMP 00002612: JUMPDEST 00002613: SWAP1 00002614: POP 00002615: PUSH0 00002616: PUSH2 0x261f 00002619: DUP3 0000261a: DUP6 0000261b: PUSH2 0x3d41 0000261e: JUMP 0000261f: JUMPDEST 00002620: PUSH1 0x07 00002622: SLOAD 00002623: SWAP1 00002624: SWAP2 00002625: POP 00002626: PUSH1 0x01 00002628: PUSH1 0x01 0000262a: PUSH1 0xa0 0000262c: SHL 0000262d: SUB 0000262e: AND 0000262f: PUSH2 0x263b 00002632: DUP9 00002633: DUP9 00002634: DUP9 00002635: DUP6 00002636: DUP9 00002637: PUSH2 0x2ee4 0000263a: JUMP 0000263b: JUMPDEST 0000263c: PUSH0 0000263d: DUP4 0000263e: GT 0000263f: DUP1 00002640: ISZERO 00002641: PUSH2 0x2652 00002644: JUMPI 00002645: POP 00002646: PUSH1 0x01 00002648: PUSH1 0x01 0000264a: PUSH1 0xa0 0000264c: SHL 0000264d: SUB 0000264e: DUP2 0000264f: AND 00002650: ISZERO 00002651: ISZERO 00002652: JUMPDEST 00002653: ISZERO 00002654: PUSH2 0x269d 00002657: JUMPI 00002658: PUSH2 0x269d 0000265b: DUP2 0000265c: DUP5 0000265d: PUSH2 0x268d 00002660: PUSH32 0x0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00 00002681: SLOAD 00002682: PUSH1 0x01 00002684: PUSH1 0x01 00002686: PUSH1 0xa0 00002688: SHL 00002689: SUB 0000268a: AND 0000268b: SWAP1 0000268c: JUMP 0000268d: JUMPDEST 0000268e: PUSH1 0x01 00002690: PUSH1 0x01 00002692: PUSH1 0xa0 00002694: SHL 00002695: SUB 00002696: AND 00002697: SWAP2 00002698: SWAP1 00002699: PUSH2 0x2fab 0000269c: JUMP 0000269d: JUMPDEST 0000269e: POP 0000269f: POP 000026a0: POP 000026a1: POP 000026a2: POP 000026a3: POP 000026a4: POP 000026a5: POP 000026a6: JUMP 000026a7: JUMPDEST 000026a8: PUSH32 0xcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300 000026c9: SLOAD 000026ca: PUSH1 0xff 000026cc: AND 000026cd: ISZERO 000026ce: PUSH2 0x14c5 000026d1: JUMPI 000026d2: PUSH1 0x40 000026d4: MLOAD 000026d5: PUSH32 0xd93c066500000000000000000000000000000000000000000000000000000000 000026f6: DUP2 000026f7: MSTORE 000026f8: PUSH1 0x04 000026fa: ADD 000026fb: PUSH1 0x40 000026fd: MLOAD 000026fe: DUP1 000026ff: SWAP2 00002700: SUB 00002701: SWAP1 00002702: REVERT 00002703: JUMPDEST 00002704: PUSH0 00002705: PUSH0 00002706: PUSH2 0x270e 00002709: DUP4 0000270a: PUSH2 0x14c7 0000270d: JUMP 0000270e: JUMPDEST 0000270f: SWAP1 00002710: POP 00002711: DUP1 00002712: DUP5 00002713: GT 00002714: ISZERO 00002715: PUSH2 0x2763 00002718: JUMPI 00002719: PUSH1 0x40 0000271b: MLOAD 0000271c: PUSH32 0x79012fb200000000000000000000000000000000000000000000000000000000 0000273d: DUP2 0000273e: MSTORE 0000273f: PUSH1 0x01 00002741: PUSH1 0x01 00002743: PUSH1 0xa0 00002745: SHL 00002746: SUB 00002747: DUP5 00002748: AND 00002749: PUSH1 0x04 0000274b: DUP3 0000274c: ADD 0000274d: MSTORE 0000274e: PUSH1 0x24 00002750: DUP2 00002751: ADD 00002752: DUP6 00002753: SWAP1 00002754: MSTORE 00002755: PUSH1 0x44 00002757: DUP2 00002758: ADD 00002759: DUP3 0000275a: SWAP1 0000275b: MSTORE 0000275c: PUSH1 0x64 0000275e: ADD 0000275f: PUSH2 0x0bef 00002762: JUMP 00002763: JUMPDEST 00002764: PUSH0 00002765: PUSH2 0x276d 00002768: DUP6 00002769: PUSH2 0x1e40 0000276c: JUMP 0000276d: JUMPDEST 0000276e: SWAP1 0000276f: POP 00002770: PUSH2 0x1bfb 00002773: CALLER 00002774: DUP6 00002775: DUP8 00002776: DUP5 00002777: PUSH2 0x301f 0000277a: JUMP 0000277b: JUMPDEST 0000277c: PUSH0 0000277d: PUSH0 0000277e: PUSH2 0x27ae 00002781: PUSH32 0x0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00 000027a2: SLOAD 000027a3: PUSH1 0x01 000027a5: PUSH1 0x01 000027a7: PUSH1 0xa0 000027a9: SHL 000027aa: SUB 000027ab: AND 000027ac: SWAP1 000027ad: JUMP 000027ae: JUMPDEST 000027af: PUSH1 0x40 000027b1: MLOAD 000027b2: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 000027d3: DUP2 000027d4: MSTORE 000027d5: ADDRESS 000027d6: PUSH1 0x04 000027d8: DUP3 000027d9: ADD 000027da: MSTORE 000027db: PUSH1 0x01 000027dd: PUSH1 0x01 000027df: PUSH1 0xa0 000027e1: SHL 000027e2: SUB 000027e3: SWAP2 000027e4: SWAP1 000027e5: SWAP2 000027e6: AND 000027e7: SWAP1 000027e8: PUSH4 0x70a08231 000027ed: SWAP1 000027ee: PUSH1 0x24 000027f0: ADD 000027f1: PUSH1 0x20 000027f3: PUSH1 0x40 000027f5: MLOAD 000027f6: DUP1 000027f7: DUP4 000027f8: SUB 000027f9: DUP2 000027fa: DUP7 000027fb: GAS 000027fc: STATICCALL 000027fd: ISZERO 000027fe: DUP1 000027ff: ISZERO 00002800: PUSH2 0x280b 00002803: JUMPI 00002804: RETURNDATASIZE 00002805: PUSH0 00002806: PUSH0 00002807: RETURNDATACOPY 00002808: RETURNDATASIZE 00002809: PUSH0 0000280a: REVERT 0000280b: JUMPDEST 0000280c: POP 0000280d: POP 0000280e: POP 0000280f: POP 00002810: PUSH1 0x40 00002812: MLOAD 00002813: RETURNDATASIZE 00002814: PUSH1 0x1f 00002816: NOT 00002817: PUSH1 0x1f 00002819: DUP3 0000281a: ADD 0000281b: AND 0000281c: DUP3 0000281d: ADD 0000281e: DUP1 0000281f: PUSH1 0x40 00002821: MSTORE 00002822: POP 00002823: DUP2 00002824: ADD 00002825: SWAP1 00002826: PUSH2 0x282f 00002829: SWAP2 0000282a: SWAP1 0000282b: PUSH2 0x3e78 0000282e: JUMP 0000282f: JUMPDEST 00002830: SWAP1 00002831: POP 00002832: PUSH1 0x03 00002834: SLOAD 00002835: DUP2 00002836: GT 00002837: PUSH2 0x2840 0000283a: JUMPI 0000283b: PUSH0 0000283c: PUSH2 0x0d1f 0000283f: JUMP 00002840: JUMPDEST 00002841: PUSH1 0x03 00002843: SLOAD 00002844: PUSH2 0x0d1f 00002847: SWAP1 00002848: DUP3 00002849: PUSH2 0x3d41 0000284c: JUMP 0000284d: JUMPDEST 0000284e: PUSH2 0x2855 00002851: PUSH2 0x26a7 00002854: JUMP 00002855: JUMPDEST 00002856: PUSH32 0xcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300 00002877: DUP1 00002878: SLOAD 00002879: PUSH1 0xff 0000287b: NOT 0000287c: AND 0000287d: PUSH1 0x01 0000287f: OR 00002880: DUP2 00002881: SSTORE 00002882: PUSH32 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258 000028a3: CALLER 000028a4: PUSH2 0x25c6 000028a7: JUMP 000028a8: JUMPDEST 000028a9: PUSH0 000028aa: PUSH0 000028ab: PUSH2 0x28b3 000028ae: DUP4 000028af: PUSH2 0x14c7 000028b2: JUMP 000028b3: JUMPDEST 000028b4: SWAP1 000028b5: POP 000028b6: DUP1 000028b7: DUP5 000028b8: GT 000028b9: ISZERO 000028ba: PUSH2 0x2908 000028bd: JUMPI 000028be: PUSH1 0x40 000028c0: MLOAD 000028c1: PUSH32 0x284ff66700000000000000000000000000000000000000000000000000000000 000028e2: DUP2 000028e3: MSTORE 000028e4: PUSH1 0x01 000028e6: PUSH1 0x01 000028e8: PUSH1 0xa0 000028ea: SHL 000028eb: SUB 000028ec: DUP5 000028ed: AND 000028ee: PUSH1 0x04 000028f0: DUP3 000028f1: ADD 000028f2: MSTORE 000028f3: PUSH1 0x24 000028f5: DUP2 000028f6: ADD 000028f7: DUP6 000028f8: SWAP1 000028f9: MSTORE 000028fa: PUSH1 0x44 000028fc: DUP2 000028fd: ADD 000028fe: DUP3 000028ff: SWAP1 00002900: MSTORE 00002901: PUSH1 0x64 00002903: ADD 00002904: PUSH2 0x0bef 00002907: JUMP 00002908: JUMPDEST 00002909: PUSH0 0000290a: PUSH2 0x2912 0000290d: DUP6 0000290e: PUSH2 0x1b89 00002911: JUMP 00002912: JUMPDEST 00002913: SWAP1 00002914: POP 00002915: PUSH2 0x1bfb 00002918: CALLER 00002919: DUP6 0000291a: DUP4 0000291b: DUP9 0000291c: PUSH2 0x301f 0000291f: JUMP 00002920: JUMPDEST 00002921: PUSH0 00002922: PUSH2 0x0e03 00002925: DUP3 00002926: PUSH1 0x01 00002928: PUSH2 0x21b4 0000292b: JUMP 0000292c: JUMPDEST 0000292d: PUSH1 0x40 0000292f: MLOAD 00002930: PUSH4 0x02c68be3 00002935: PUSH1 0xe3 00002937: SHL 00002938: DUP2 00002939: MSTORE 0000293a: ADDRESS 0000293b: PUSH1 0x04 0000293d: DUP3 0000293e: ADD 0000293f: MSTORE 00002940: PUSH0 00002941: SWAP1 00002942: DUP2 00002943: SWAP1 00002944: PUSH20 0x6e879d0ccc85085a709ebf5539224f53d0d396b0 00002959: SWAP1 0000295a: PUSH4 0x16345f18 0000295f: SWAP1 00002960: PUSH1 0x24 00002962: ADD 00002963: PUSH1 0x40 00002965: DUP1 00002966: MLOAD 00002967: DUP1 00002968: DUP4 00002969: SUB 0000296a: DUP2 0000296b: DUP7 0000296c: GAS 0000296d: STATICCALL 0000296e: ISZERO 0000296f: DUP1 00002970: ISZERO 00002971: PUSH2 0x297c 00002974: JUMPI 00002975: RETURNDATASIZE 00002976: PUSH0 00002977: PUSH0 00002978: RETURNDATACOPY 00002979: RETURNDATASIZE 0000297a: PUSH0 0000297b: REVERT 0000297c: JUMPDEST 0000297d: POP 0000297e: POP 0000297f: POP 00002980: POP 00002981: PUSH1 0x40 00002983: MLOAD 00002984: RETURNDATASIZE 00002985: PUSH1 0x1f 00002987: NOT 00002988: PUSH1 0x1f 0000298a: DUP3 0000298b: ADD 0000298c: AND 0000298d: DUP3 0000298e: ADD 0000298f: DUP1 00002990: PUSH1 0x40 00002992: MSTORE 00002993: POP 00002994: DUP2 00002995: ADD 00002996: SWAP1 00002997: PUSH2 0x29a0 0000299a: SWAP2 0000299b: SWAP1 0000299c: PUSH2 0x3bc1 0000299f: JUMP 000029a0: JUMPDEST 000029a1: POP 000029a2: SWAP1 000029a3: POP 000029a4: PUSH0 000029a5: DUP2 000029a6: GT 000029a7: PUSH2 0x29c2 000029aa: JUMPI 000029ab: PUSH1 0x40 000029ad: MLOAD 000029ae: PUSH3 0xbfc921 000029b2: PUSH1 0xe0 000029b4: SHL 000029b5: DUP2 000029b6: MSTORE 000029b7: PUSH1 0x04 000029b9: ADD 000029ba: PUSH1 0x40 000029bc: MLOAD 000029bd: DUP1 000029be: SWAP2 000029bf: SUB 000029c0: SWAP1 000029c1: REVERT 000029c2: JUMPDEST 000029c3: PUSH2 0x1bfb 000029c6: PUSH2 0x29cd 000029c9: PUSH2 0x1431 000029cc: JUMP 000029cd: JUMPDEST 000029ce: PUSH2 0x29d8 000029d1: SWAP1 000029d2: PUSH1 0x0a 000029d4: PUSH2 0x3ce8 000029d7: JUMP 000029d8: JUMPDEST 000029d9: DUP6 000029da: SWAP1 000029db: DUP4 000029dc: DUP7 000029dd: PUSH2 0x2172 000029e0: JUMP 000029e1: JUMPDEST 000029e2: PUSH1 0x01 000029e4: PUSH1 0x01 000029e6: PUSH1 0xa0 000029e8: SHL 000029e9: SUB 000029ea: DUP2 000029eb: AND 000029ec: PUSH0 000029ed: SWAP1 000029ee: DUP2 000029ef: MSTORE 000029f0: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00 00002a11: PUSH1 0x20 00002a13: MSTORE 00002a14: PUSH1 0x40 00002a16: DUP2 00002a17: KECCAK256 00002a18: SLOAD 00002a19: PUSH2 0x0e03 00002a1c: SWAP1 00002a1d: PUSH0 00002a1e: PUSH2 0x21b4 00002a21: JUMP 00002a22: JUMPDEST 00002a23: PUSH1 0x01 00002a25: PUSH1 0x01 00002a27: PUSH1 0xa0 00002a29: SHL 00002a2a: SUB 00002a2b: DUP2 00002a2c: AND 00002a2d: PUSH0 00002a2e: SWAP1 00002a2f: DUP2 00002a30: MSTORE 00002a31: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00 00002a52: PUSH1 0x20 00002a54: MSTORE 00002a55: PUSH1 0x40 00002a57: DUP2 00002a58: KECCAK256 00002a59: SLOAD 00002a5a: PUSH2 0x0e03 00002a5d: JUMP 00002a5e: JUMPDEST 00002a5f: PUSH0 00002a60: PUSH1 0x02 00002a62: DUP3 00002a63: PUSH1 0x03 00002a65: DUP2 00002a66: GT 00002a67: ISZERO 00002a68: PUSH2 0x2a73 00002a6b: JUMPI 00002a6c: PUSH2 0x2a73 00002a6f: PUSH2 0x3e8f 00002a72: JUMP 00002a73: JUMPDEST 00002a74: PUSH2 0x2a7d 00002a77: SWAP2 00002a78: SWAP1 00002a79: PUSH2 0x3ea3 00002a7c: JUMP 00002a7d: JUMPDEST 00002a7e: PUSH1 0xff 00002a80: AND 00002a81: PUSH1 0x01 00002a83: EQ 00002a84: SWAP1 00002a85: POP 00002a86: SWAP2 00002a87: SWAP1 00002a88: POP 00002a89: JUMP 00002a8a: JUMPDEST 00002a8b: PUSH0 00002a8c: DUP4 00002a8d: DUP4 00002a8e: MUL 00002a8f: DUP2 00002a90: PUSH0 00002a91: NOT 00002a92: DUP6 00002a93: DUP8 00002a94: MULMOD 00002a95: DUP3 00002a96: DUP2 00002a97: LT 00002a98: DUP4 00002a99: DUP3 00002a9a: SUB 00002a9b: SUB 00002a9c: SWAP2 00002a9d: POP 00002a9e: POP 00002a9f: DUP1 00002aa0: PUSH0 00002aa1: SUB 00002aa2: PUSH2 0x2abe 00002aa5: JUMPI 00002aa6: DUP4 00002aa7: DUP3 00002aa8: DUP2 00002aa9: PUSH2 0x2ab4 00002aac: JUMPI 00002aad: PUSH2 0x2ab4 00002ab0: PUSH2 0x3e49 00002ab3: JUMP 00002ab4: JUMPDEST 00002ab5: DIV 00002ab6: SWAP3 00002ab7: POP 00002ab8: POP 00002ab9: POP 00002aba: PUSH2 0x0e42 00002abd: JUMP 00002abe: JUMPDEST 00002abf: DUP1 00002ac0: DUP5 00002ac1: GT 00002ac2: PUSH2 0x2ad5 00002ac5: JUMPI 00002ac6: PUSH2 0x2ad5 00002ac9: PUSH1 0x03 00002acb: DUP6 00002acc: ISZERO 00002acd: MUL 00002ace: PUSH1 0x11 00002ad0: XOR 00002ad1: PUSH2 0x30a1 00002ad4: JUMP 00002ad5: JUMPDEST 00002ad6: PUSH0 00002ad7: DUP5 00002ad8: DUP7 00002ad9: DUP9 00002ada: MULMOD 00002adb: PUSH0 00002adc: DUP7 00002add: DUP2 00002ade: SUB 00002adf: DUP8 00002ae0: AND 00002ae1: SWAP7 00002ae2: DUP8 00002ae3: SWAP1 00002ae4: DIV 00002ae5: SWAP7 00002ae6: PUSH1 0x02 00002ae8: PUSH1 0x03 00002aea: DUP10 00002aeb: MUL 00002aec: DUP2 00002aed: XOR 00002aee: DUP1 00002aef: DUP11 00002af0: MUL 00002af1: DUP3 00002af2: SUB 00002af3: MUL 00002af4: DUP1 00002af5: DUP11 00002af6: MUL 00002af7: DUP3 00002af8: SUB 00002af9: MUL 00002afa: DUP1 00002afb: DUP11 00002afc: MUL 00002afd: DUP3 00002afe: SUB 00002aff: MUL 00002b00: DUP1 00002b01: DUP11 00002b02: MUL 00002b03: DUP3 00002b04: SUB 00002b05: MUL 00002b06: DUP1 00002b07: DUP11 00002b08: MUL 00002b09: DUP3 00002b0a: SUB 00002b0b: MUL 00002b0c: DUP1 00002b0d: DUP11 00002b0e: MUL 00002b0f: SWAP1 00002b10: SWAP2 00002b11: SUB 00002b12: MUL 00002b13: SWAP2 00002b14: DUP2 00002b15: SWAP1 00002b16: SUB 00002b17: DUP2 00002b18: SWAP1 00002b19: DIV 00002b1a: PUSH1 0x01 00002b1c: ADD 00002b1d: DUP7 00002b1e: DUP5 00002b1f: GT 00002b20: SWAP1 00002b21: SWAP6 00002b22: SUB 00002b23: SWAP5 00002b24: SWAP1 00002b25: SWAP5 00002b26: MUL 00002b27: SWAP2 00002b28: SWAP1 00002b29: SWAP5 00002b2a: SUB 00002b2b: SWAP3 00002b2c: SWAP1 00002b2d: SWAP3 00002b2e: DIV 00002b2f: SWAP2 00002b30: SWAP1 00002b31: SWAP2 00002b32: OR 00002b33: SWAP2 00002b34: SWAP1 00002b35: SWAP2 00002b36: MUL 00002b37: SWAP2 00002b38: POP 00002b39: POP 00002b3a: SWAP4 00002b3b: SWAP3 00002b3c: POP 00002b3d: POP 00002b3e: POP 00002b3f: JUMP 00002b40: JUMPDEST 00002b41: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00 00002b62: PUSH1 0x01 00002b64: PUSH1 0x01 00002b66: PUSH1 0xa0 00002b68: SHL 00002b69: SUB 00002b6a: DUP6 00002b6b: AND 00002b6c: PUSH2 0x2ba3 00002b6f: JUMPI 00002b70: PUSH1 0x40 00002b72: MLOAD 00002b73: PUSH32 0xe602df0500000000000000000000000000000000000000000000000000000000 00002b94: DUP2 00002b95: MSTORE 00002b96: PUSH0 00002b97: PUSH1 0x04 00002b99: DUP3 00002b9a: ADD 00002b9b: MSTORE 00002b9c: PUSH1 0x24 00002b9e: ADD 00002b9f: PUSH2 0x0bef 00002ba2: JUMP 00002ba3: JUMPDEST 00002ba4: PUSH1 0x01 00002ba6: PUSH1 0x01 00002ba8: PUSH1 0xa0 00002baa: SHL 00002bab: SUB 00002bac: DUP5 00002bad: AND 00002bae: PUSH2 0x2be5 00002bb1: JUMPI 00002bb2: PUSH1 0x40 00002bb4: MLOAD 00002bb5: PUSH32 0x94280d6200000000000000000000000000000000000000000000000000000000 00002bd6: DUP2 00002bd7: MSTORE 00002bd8: PUSH0 00002bd9: PUSH1 0x04 00002bdb: DUP3 00002bdc: ADD 00002bdd: MSTORE 00002bde: PUSH1 0x24 00002be0: ADD 00002be1: PUSH2 0x0bef 00002be4: JUMP 00002be5: JUMPDEST 00002be6: PUSH1 0x01 00002be8: PUSH1 0x01 00002bea: PUSH1 0xa0 00002bec: SHL 00002bed: SUB 00002bee: DUP1 00002bef: DUP7 00002bf0: AND 00002bf1: PUSH0 00002bf2: SWAP1 00002bf3: DUP2 00002bf4: MSTORE 00002bf5: PUSH1 0x01 00002bf7: DUP4 00002bf8: ADD 00002bf9: PUSH1 0x20 00002bfb: SWAP1 00002bfc: DUP2 00002bfd: MSTORE 00002bfe: PUSH1 0x40 00002c00: DUP1 00002c01: DUP4 00002c02: KECCAK256 00002c03: SWAP4 00002c04: DUP9 00002c05: AND 00002c06: DUP4 00002c07: MSTORE 00002c08: SWAP3 00002c09: SWAP1 00002c0a: MSTORE 00002c0b: KECCAK256 00002c0c: DUP4 00002c0d: SWAP1 00002c0e: SSTORE 00002c0f: DUP2 00002c10: ISZERO 00002c11: PUSH2 0x2c62 00002c14: JUMPI 00002c15: DUP4 00002c16: PUSH1 0x01 00002c18: PUSH1 0x01 00002c1a: PUSH1 0xa0 00002c1c: SHL 00002c1d: SUB 00002c1e: AND 00002c1f: DUP6 00002c20: PUSH1 0x01 00002c22: PUSH1 0x01 00002c24: PUSH1 0xa0 00002c26: SHL 00002c27: SUB 00002c28: AND 00002c29: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 00002c4a: DUP6 00002c4b: PUSH1 0x40 00002c4d: MLOAD 00002c4e: PUSH2 0x2c59 00002c51: SWAP2 00002c52: DUP2 00002c53: MSTORE 00002c54: PUSH1 0x20 00002c56: ADD 00002c57: SWAP1 00002c58: JUMP 00002c59: JUMPDEST 00002c5a: PUSH1 0x40 00002c5c: MLOAD 00002c5d: DUP1 00002c5e: SWAP2 00002c5f: SUB 00002c60: SWAP1 00002c61: LOG3 00002c62: JUMPDEST 00002c63: POP 00002c64: POP 00002c65: POP 00002c66: POP 00002c67: POP 00002c68: JUMP 00002c69: JUMPDEST 00002c6a: PUSH2 0x2c71 00002c6d: PUSH2 0x26a7 00002c70: JUMP 00002c71: JUMPDEST 00002c72: PUSH2 0x2277 00002c75: DUP4 00002c76: DUP4 00002c77: DUP4 00002c78: PUSH2 0x30b2 00002c7b: JUMP 00002c7c: JUMPDEST 00002c7d: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00 00002c9e: SLOAD 00002c9f: PUSH9 0x010000000000000000 00002ca9: SWAP1 00002caa: DIV 00002cab: PUSH1 0xff 00002cad: AND 00002cae: PUSH2 0x14c5 00002cb1: JUMPI 00002cb2: PUSH1 0x40 00002cb4: MLOAD 00002cb5: PUSH32 0xd7e6bcf800000000000000000000000000000000000000000000000000000000 00002cd6: DUP2 00002cd7: MSTORE 00002cd8: PUSH1 0x04 00002cda: ADD 00002cdb: PUSH1 0x40 00002cdd: MLOAD 00002cde: DUP1 00002cdf: SWAP2 00002ce0: SUB 00002ce1: SWAP1 00002ce2: REVERT 00002ce3: JUMPDEST 00002ce4: PUSH2 0x2ceb 00002ce7: PUSH2 0x2c7c 00002cea: JUMP 00002ceb: JUMPDEST 00002cec: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00 00002d0d: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03 00002d2e: PUSH2 0x2d37 00002d31: DUP5 00002d32: DUP3 00002d33: PUSH2 0x3f14 00002d36: JUMP 00002d37: JUMPDEST 00002d38: POP 00002d39: PUSH1 0x04 00002d3b: DUP2 00002d3c: ADD 00002d3d: PUSH2 0x0fa8 00002d40: DUP4 00002d41: DUP3 00002d42: PUSH2 0x3f14 00002d45: JUMP 00002d46: JUMPDEST 00002d47: PUSH2 0x2d4e 00002d4a: PUSH2 0x2c7c 00002d4d: JUMP 00002d4e: JUMPDEST 00002d4f: PUSH32 0x0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00 00002d70: PUSH0 00002d71: DUP1 00002d72: PUSH2 0x2d7a 00002d75: DUP5 00002d76: PUSH2 0x3217 00002d79: JUMP 00002d7a: JUMPDEST 00002d7b: SWAP2 00002d7c: POP 00002d7d: SWAP2 00002d7e: POP 00002d7f: DUP2 00002d80: PUSH2 0x2d8a 00002d83: JUMPI 00002d84: PUSH1 0x12 00002d86: PUSH2 0x2d8c 00002d89: JUMP 00002d8a: JUMPDEST 00002d8b: DUP1 00002d8c: JUMPDEST 00002d8d: DUP4 00002d8e: SLOAD 00002d8f: PUSH32 0xffffffffffffffffffffff000000000000000000000000000000000000000000 00002db0: AND 00002db1: PUSH1 0x01 00002db3: PUSH1 0xa0 00002db5: SHL 00002db6: PUSH1 0xff 00002db8: SWAP3 00002db9: SWAP1 00002dba: SWAP3 00002dbb: AND 00002dbc: SWAP2 00002dbd: SWAP1 00002dbe: SWAP2 00002dbf: MUL 00002dc0: PUSH1 0x01 00002dc2: PUSH1 0x01 00002dc4: PUSH1 0xa0 00002dc6: SHL 00002dc7: SUB 00002dc8: NOT 00002dc9: AND 00002dca: OR 00002dcb: PUSH1 0x01 00002dcd: PUSH1 0x01 00002dcf: PUSH1 0xa0 00002dd1: SHL 00002dd2: SUB 00002dd3: SWAP5 00002dd4: SWAP1 00002dd5: SWAP5 00002dd6: AND 00002dd7: SWAP4 00002dd8: SWAP1 00002dd9: SWAP4 00002dda: OR 00002ddb: SWAP1 00002ddc: SWAP2 00002ddd: SSTORE 00002dde: POP 00002ddf: POP 00002de0: JUMP 00002de1: JUMPDEST 00002de2: PUSH2 0x2de9 00002de5: PUSH2 0x2c7c 00002de8: JUMP 00002de9: JUMPDEST 00002dea: PUSH32 0xcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300 00002e0b: DUP1 00002e0c: SLOAD 00002e0d: PUSH1 0xff 00002e0f: NOT 00002e10: AND 00002e11: SWAP1 00002e12: SSTORE 00002e13: JUMP 00002e14: JUMPDEST 00002e15: PUSH1 0x60 00002e17: DUP3 00002e18: PUSH2 0x2e29 00002e1b: JUMPI 00002e1c: PUSH2 0x2e24 00002e1f: DUP3 00002e20: PUSH2 0x331b 00002e23: JUMP 00002e24: JUMPDEST 00002e25: PUSH2 0x0e42 00002e28: JUMP 00002e29: JUMPDEST 00002e2a: DUP2 00002e2b: MLOAD 00002e2c: ISZERO 00002e2d: DUP1 00002e2e: ISZERO 00002e2f: PUSH2 0x2e40 00002e32: JUMPI 00002e33: POP 00002e34: PUSH1 0x01 00002e36: PUSH1 0x01 00002e38: PUSH1 0xa0 00002e3a: SHL 00002e3b: SUB 00002e3c: DUP5 00002e3d: AND 00002e3e: EXTCODESIZE 00002e3f: ISZERO 00002e40: JUMPDEST 00002e41: ISZERO 00002e42: PUSH2 0x2e82 00002e45: JUMPI 00002e46: PUSH1 0x40 00002e48: MLOAD 00002e49: PUSH32 0x9996b31500000000000000000000000000000000000000000000000000000000 00002e6a: DUP2 00002e6b: MSTORE 00002e6c: PUSH1 0x01 00002e6e: PUSH1 0x01 00002e70: PUSH1 0xa0 00002e72: SHL 00002e73: SUB 00002e74: DUP6 00002e75: AND 00002e76: PUSH1 0x04 00002e78: DUP3 00002e79: ADD 00002e7a: MSTORE 00002e7b: PUSH1 0x24 00002e7d: ADD 00002e7e: PUSH2 0x0bef 00002e81: JUMP 00002e82: JUMPDEST 00002e83: POP 00002e84: DUP1 00002e85: PUSH2 0x0e42 00002e88: JUMP 00002e89: JUMPDEST 00002e8a: PUSH32 0xcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300 00002eab: SLOAD 00002eac: PUSH1 0xff 00002eae: AND 00002eaf: PUSH2 0x14c5 00002eb2: JUMPI 00002eb3: PUSH1 0x40 00002eb5: MLOAD 00002eb6: PUSH32 0x8dfc202b00000000000000000000000000000000000000000000000000000000 00002ed7: DUP2 00002ed8: MSTORE 00002ed9: PUSH1 0x04 00002edb: ADD 00002edc: PUSH1 0x40 00002ede: MLOAD 00002edf: DUP1 00002ee0: SWAP2 00002ee1: SUB 00002ee2: SWAP1 00002ee3: REVERT 00002ee4: JUMPDEST 00002ee5: PUSH32 0x0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00 00002f06: PUSH1 0x01 00002f08: PUSH1 0x01 00002f0a: PUSH1 0xa0 00002f0c: SHL 00002f0d: SUB 00002f0e: DUP7 00002f0f: DUP2 00002f10: AND 00002f11: SWAP1 00002f12: DUP6 00002f13: AND 00002f14: EQ 00002f15: PUSH2 0x2f23 00002f18: JUMPI 00002f19: PUSH2 0x2f23 00002f1c: DUP5 00002f1d: DUP8 00002f1e: DUP5 00002f1f: PUSH2 0x24c4 00002f22: JUMP 00002f23: JUMPDEST 00002f24: PUSH2 0x2f2d 00002f27: DUP5 00002f28: DUP4 00002f29: PUSH2 0x335d 00002f2c: JUMP 00002f2d: JUMPDEST 00002f2e: DUP1 00002f2f: SLOAD 00002f30: PUSH2 0x2f43 00002f33: SWAP1 00002f34: PUSH1 0x01 00002f36: PUSH1 0x01 00002f38: PUSH1 0xa0 00002f3a: SHL 00002f3b: SUB 00002f3c: AND 00002f3d: DUP7 00002f3e: DUP6 00002f3f: PUSH2 0x2fab 00002f42: JUMP 00002f43: JUMPDEST 00002f44: DUP4 00002f45: PUSH1 0x01 00002f47: PUSH1 0x01 00002f49: PUSH1 0xa0 00002f4b: SHL 00002f4c: SUB 00002f4d: AND 00002f4e: DUP6 00002f4f: PUSH1 0x01 00002f51: PUSH1 0x01 00002f53: PUSH1 0xa0 00002f55: SHL 00002f56: SUB 00002f57: AND 00002f58: DUP8 00002f59: PUSH1 0x01 00002f5b: PUSH1 0x01 00002f5d: PUSH1 0xa0 00002f5f: SHL 00002f60: SUB 00002f61: AND 00002f62: PUSH32 0xfbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db 00002f83: DUP7 00002f84: DUP7 00002f85: PUSH1 0x40 00002f87: MLOAD 00002f88: PUSH2 0x2f9b 00002f8b: SWAP3 00002f8c: SWAP2 00002f8d: SWAP1 00002f8e: SWAP2 00002f8f: DUP3 00002f90: MSTORE 00002f91: PUSH1 0x20 00002f93: DUP3 00002f94: ADD 00002f95: MSTORE 00002f96: PUSH1 0x40 00002f98: ADD 00002f99: SWAP1 00002f9a: JUMP 00002f9b: JUMPDEST 00002f9c: PUSH1 0x40 00002f9e: MLOAD 00002f9f: DUP1 00002fa0: SWAP2 00002fa1: SUB 00002fa2: SWAP1 00002fa3: LOG4 00002fa4: POP 00002fa5: POP 00002fa6: POP 00002fa7: POP 00002fa8: POP 00002fa9: POP 00002faa: JUMP 00002fab: JUMPDEST 00002fac: PUSH1 0x40 00002fae: MLOAD 00002faf: PUSH1 0x01 00002fb1: PUSH1 0x01 00002fb3: PUSH1 0xa0 00002fb5: SHL 00002fb6: SUB 00002fb7: DUP4 00002fb8: DUP2 00002fb9: AND 00002fba: PUSH1 0x24 00002fbc: DUP4 00002fbd: ADD 00002fbe: MSTORE 00002fbf: PUSH1 0x44 00002fc1: DUP3 00002fc2: ADD 00002fc3: DUP4 00002fc4: SWAP1 00002fc5: MSTORE 00002fc6: PUSH2 0x2277 00002fc9: SWAP2 00002fca: DUP6 00002fcb: SWAP2 00002fcc: DUP3 00002fcd: AND 00002fce: SWAP1 00002fcf: PUSH4 0xa9059cbb 00002fd4: SWAP1 00002fd5: PUSH1 0x64 00002fd7: ADD 00002fd8: JUMPDEST 00002fd9: PUSH1 0x40 00002fdb: MLOAD 00002fdc: PUSH1 0x20 00002fde: DUP2 00002fdf: DUP4 00002fe0: SUB 00002fe1: SUB 00002fe2: DUP2 00002fe3: MSTORE 00002fe4: SWAP1 00002fe5: PUSH1 0x40 00002fe7: MSTORE 00002fe8: SWAP2 00002fe9: POP 00002fea: PUSH1 0xe0 00002fec: SHL 00002fed: PUSH1 0x20 00002fef: DUP3 00002ff0: ADD 00002ff1: DUP1 00002ff2: MLOAD 00002ff3: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003010: DUP4 00003011: DUP2 00003012: DUP4 00003013: AND 00003014: OR 00003015: DUP4 00003016: MSTORE 00003017: POP 00003018: POP 00003019: POP 0000301a: POP 0000301b: PUSH2 0x3391 0000301e: JUMP 0000301f: JUMPDEST 00003020: PUSH0 00003021: PUSH2 0x302c 00003024: DUP4 00003025: PUSH1 0x06 00003027: SLOAD 00003028: PUSH2 0x25e4 0000302b: JUMP 0000302c: JUMPDEST 0000302d: PUSH1 0x07 0000302f: SLOAD 00003030: SWAP1 00003031: SWAP2 00003032: POP 00003033: PUSH1 0x01 00003035: PUSH1 0x01 00003037: PUSH1 0xa0 00003039: SHL 0000303a: SUB 0000303b: AND 0000303c: PUSH2 0x3047 0000303f: DUP7 00003040: DUP7 00003041: DUP7 00003042: DUP7 00003043: PUSH2 0x3416 00003046: JUMP 00003047: JUMPDEST 00003048: PUSH0 00003049: DUP3 0000304a: GT 0000304b: DUP1 0000304c: ISZERO 0000304d: PUSH2 0x305e 00003050: JUMPI 00003051: POP 00003052: PUSH1 0x01 00003054: PUSH1 0x01 00003056: PUSH1 0xa0 00003058: SHL 00003059: SUB 0000305a: DUP2 0000305b: AND 0000305c: ISZERO 0000305d: ISZERO 0000305e: JUMPDEST 0000305f: ISZERO 00003060: PUSH2 0x3099 00003063: JUMPI 00003064: PUSH2 0x3099 00003067: DUP2 00003068: DUP4 00003069: PUSH2 0x268d 0000306c: PUSH32 0x0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00 0000308d: SLOAD 0000308e: PUSH1 0x01 00003090: PUSH1 0x01 00003092: PUSH1 0xa0 00003094: SHL 00003095: SUB 00003096: AND 00003097: SWAP1 00003098: JUMP 00003099: JUMPDEST 0000309a: POP 0000309b: POP 0000309c: POP 0000309d: POP 0000309e: POP 0000309f: POP 000030a0: JUMP 000030a1: JUMPDEST 000030a2: PUSH4 0x4e487b71 000030a7: PUSH0 000030a8: MSTORE 000030a9: DUP1 000030aa: PUSH1 0x20 000030ac: MSTORE 000030ad: PUSH1 0x24 000030af: PUSH1 0x1c 000030b1: REVERT 000030b2: JUMPDEST 000030b3: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00 000030d4: PUSH1 0x01 000030d6: PUSH1 0x01 000030d8: PUSH1 0xa0 000030da: SHL 000030db: SUB 000030dc: DUP5 000030dd: AND 000030de: PUSH2 0x30ff 000030e1: JUMPI 000030e2: DUP2 000030e3: DUP2 000030e4: PUSH1 0x02 000030e6: ADD 000030e7: PUSH0 000030e8: DUP3 000030e9: DUP3 000030ea: SLOAD 000030eb: PUSH2 0x30f4 000030ee: SWAP2 000030ef: SWAP1 000030f0: PUSH2 0x3d2e 000030f3: JUMP 000030f4: JUMPDEST 000030f5: SWAP1 000030f6: SWAP2 000030f7: SSTORE 000030f8: POP 000030f9: PUSH2 0x3188 000030fc: SWAP1 000030fd: POP 000030fe: JUMP 000030ff: JUMPDEST 00003100: PUSH1 0x01 00003102: PUSH1 0x01 00003104: PUSH1 0xa0 00003106: SHL 00003107: SUB 00003108: DUP5 00003109: AND 0000310a: PUSH0 0000310b: SWAP1 0000310c: DUP2 0000310d: MSTORE 0000310e: PUSH1 0x20 00003110: DUP3 00003111: SWAP1 00003112: MSTORE 00003113: PUSH1 0x40 00003115: SWAP1 00003116: KECCAK256 00003117: SLOAD 00003118: DUP3 00003119: DUP2 0000311a: LT 0000311b: ISZERO 0000311c: PUSH2 0x316a 0000311f: JUMPI 00003120: PUSH1 0x40 00003122: MLOAD 00003123: PUSH32 0xe450d38c00000000000000000000000000000000000000000000000000000000 00003144: DUP2 00003145: MSTORE 00003146: PUSH1 0x01 00003148: PUSH1 0x01 0000314a: PUSH1 0xa0 0000314c: SHL 0000314d: SUB 0000314e: DUP7 0000314f: AND 00003150: PUSH1 0x04 00003152: DUP3 00003153: ADD 00003154: MSTORE 00003155: PUSH1 0x24 00003157: DUP2 00003158: ADD 00003159: DUP3 0000315a: SWAP1 0000315b: MSTORE 0000315c: PUSH1 0x44 0000315e: DUP2 0000315f: ADD 00003160: DUP5 00003161: SWAP1 00003162: MSTORE 00003163: PUSH1 0x64 00003165: ADD 00003166: PUSH2 0x0bef 00003169: JUMP 0000316a: JUMPDEST 0000316b: PUSH1 0x01 0000316d: PUSH1 0x01 0000316f: PUSH1 0xa0 00003171: SHL 00003172: SUB 00003173: DUP6 00003174: AND 00003175: PUSH0 00003176: SWAP1 00003177: DUP2 00003178: MSTORE 00003179: PUSH1 0x20 0000317b: DUP4 0000317c: SWAP1 0000317d: MSTORE 0000317e: PUSH1 0x40 00003180: SWAP1 00003181: KECCAK256 00003182: SWAP1 00003183: DUP4 00003184: SWAP1 00003185: SUB 00003186: SWAP1 00003187: SSTORE 00003188: JUMPDEST 00003189: PUSH1 0x01 0000318b: PUSH1 0x01 0000318d: PUSH1 0xa0 0000318f: SHL 00003190: SUB 00003191: DUP4 00003192: AND 00003193: PUSH2 0x31a6 00003196: JUMPI 00003197: PUSH1 0x02 00003199: DUP2 0000319a: ADD 0000319b: DUP1 0000319c: SLOAD 0000319d: DUP4 0000319e: SWAP1 0000319f: SUB 000031a0: SWAP1 000031a1: SSTORE 000031a2: PUSH2 0x31c4 000031a5: JUMP 000031a6: JUMPDEST 000031a7: PUSH1 0x01 000031a9: PUSH1 0x01 000031ab: PUSH1 0xa0 000031ad: SHL 000031ae: SUB 000031af: DUP4 000031b0: AND 000031b1: PUSH0 000031b2: SWAP1 000031b3: DUP2 000031b4: MSTORE 000031b5: PUSH1 0x20 000031b7: DUP3 000031b8: SWAP1 000031b9: MSTORE 000031ba: PUSH1 0x40 000031bc: SWAP1 000031bd: KECCAK256 000031be: DUP1 000031bf: SLOAD 000031c0: DUP4 000031c1: ADD 000031c2: SWAP1 000031c3: SSTORE 000031c4: JUMPDEST 000031c5: DUP3 000031c6: PUSH1 0x01 000031c8: PUSH1 0x01 000031ca: PUSH1 0xa0 000031cc: SHL 000031cd: SUB 000031ce: AND 000031cf: DUP5 000031d0: PUSH1 0x01 000031d2: PUSH1 0x01 000031d4: PUSH1 0xa0 000031d6: SHL 000031d7: SUB 000031d8: AND 000031d9: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 000031fa: DUP5 000031fb: PUSH1 0x40 000031fd: MLOAD 000031fe: PUSH2 0x3209 00003201: SWAP2 00003202: DUP2 00003203: MSTORE 00003204: PUSH1 0x20 00003206: ADD 00003207: SWAP1 00003208: JUMP 00003209: JUMPDEST 0000320a: PUSH1 0x40 0000320c: MLOAD 0000320d: DUP1 0000320e: SWAP2 0000320f: SUB 00003210: SWAP1 00003211: LOG3 00003212: POP 00003213: POP 00003214: POP 00003215: POP 00003216: JUMP 00003217: JUMPDEST 00003218: PUSH1 0x40 0000321a: DUP1 0000321b: MLOAD 0000321c: PUSH1 0x04 0000321e: DUP2 0000321f: MSTORE 00003220: PUSH1 0x24 00003222: DUP2 00003223: ADD 00003224: DUP3 00003225: MSTORE 00003226: PUSH1 0x20 00003228: DUP2 00003229: ADD 0000322a: DUP1 0000322b: MLOAD 0000322c: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003249: AND 0000324a: PUSH32 0x313ce56700000000000000000000000000000000000000000000000000000000 0000326b: OR 0000326c: SWAP1 0000326d: MSTORE 0000326e: SWAP1 0000326f: MLOAD 00003270: PUSH0 00003271: SWAP2 00003272: DUP3 00003273: SWAP2 00003274: DUP3 00003275: SWAP2 00003276: DUP3 00003277: SWAP2 00003278: PUSH1 0x01 0000327a: PUSH1 0x01 0000327c: PUSH1 0xa0 0000327e: SHL 0000327f: SUB 00003280: DUP8 00003281: AND 00003282: SWAP2 00003283: PUSH2 0x328b 00003286: SWAP2 00003287: PUSH2 0x3e5d 0000328a: JUMP 0000328b: JUMPDEST 0000328c: PUSH0 0000328d: PUSH1 0x40 0000328f: MLOAD 00003290: DUP1 00003291: DUP4 00003292: SUB 00003293: DUP2 00003294: DUP6 00003295: GAS 00003296: STATICCALL 00003297: SWAP2 00003298: POP 00003299: POP 0000329a: RETURNDATASIZE 0000329b: DUP1 0000329c: PUSH0 0000329d: DUP2 0000329e: EQ 0000329f: PUSH2 0x32c3 000032a2: JUMPI 000032a3: PUSH1 0x40 000032a5: MLOAD 000032a6: SWAP2 000032a7: POP 000032a8: PUSH1 0x1f 000032aa: NOT 000032ab: PUSH1 0x3f 000032ad: RETURNDATASIZE 000032ae: ADD 000032af: AND 000032b0: DUP3 000032b1: ADD 000032b2: PUSH1 0x40 000032b4: MSTORE 000032b5: RETURNDATASIZE 000032b6: DUP3 000032b7: MSTORE 000032b8: RETURNDATASIZE 000032b9: PUSH0 000032ba: PUSH1 0x20 000032bc: DUP5 000032bd: ADD 000032be: RETURNDATACOPY 000032bf: PUSH2 0x32c8 000032c2: JUMP 000032c3: JUMPDEST 000032c4: PUSH1 0x60 000032c6: SWAP2 000032c7: POP 000032c8: JUMPDEST 000032c9: POP 000032ca: SWAP2 000032cb: POP 000032cc: SWAP2 000032cd: POP 000032ce: DUP2 000032cf: DUP1 000032d0: ISZERO 000032d1: PUSH2 0x32dc 000032d4: JUMPI 000032d5: POP 000032d6: PUSH1 0x20 000032d8: DUP2 000032d9: MLOAD 000032da: LT 000032db: ISZERO 000032dc: JUMPDEST 000032dd: ISZERO 000032de: PUSH2 0x330f 000032e1: JUMPI 000032e2: PUSH0 000032e3: DUP2 000032e4: DUP1 000032e5: PUSH1 0x20 000032e7: ADD 000032e8: SWAP1 000032e9: MLOAD 000032ea: DUP2 000032eb: ADD 000032ec: SWAP1 000032ed: PUSH2 0x32f6 000032f0: SWAP2 000032f1: SWAP1 000032f2: PUSH2 0x3e78 000032f5: JUMP 000032f6: JUMPDEST 000032f7: SWAP1 000032f8: POP 000032f9: PUSH1 0xff 000032fb: DUP2 000032fc: GT 000032fd: PUSH2 0x330d 00003300: JUMPI 00003301: PUSH1 0x01 00003303: SWAP7 00003304: SWAP1 00003305: SWAP6 00003306: POP 00003307: SWAP4 00003308: POP 00003309: POP 0000330a: POP 0000330b: POP 0000330c: JUMP 0000330d: JUMPDEST 0000330e: POP 0000330f: JUMPDEST 00003310: POP 00003311: PUSH0 00003312: SWAP5 00003313: DUP6 00003314: SWAP5 00003315: POP 00003316: SWAP3 00003317: POP 00003318: POP 00003319: POP 0000331a: JUMP 0000331b: JUMPDEST 0000331c: DUP1 0000331d: MLOAD 0000331e: ISZERO 0000331f: PUSH2 0x332b 00003322: JUMPI 00003323: DUP1 00003324: MLOAD 00003325: DUP1 00003326: DUP3 00003327: PUSH1 0x20 00003329: ADD 0000332a: REVERT 0000332b: JUMPDEST 0000332c: PUSH1 0x40 0000332e: MLOAD 0000332f: PUSH32 0xd6bda27500000000000000000000000000000000000000000000000000000000 00003350: DUP2 00003351: MSTORE 00003352: PUSH1 0x04 00003354: ADD 00003355: PUSH1 0x40 00003357: MLOAD 00003358: DUP1 00003359: SWAP2 0000335a: SUB 0000335b: SWAP1 0000335c: REVERT 0000335d: JUMPDEST 0000335e: PUSH1 0x01 00003360: PUSH1 0x01 00003362: PUSH1 0xa0 00003364: SHL 00003365: SUB 00003366: DUP3 00003367: AND 00003368: PUSH2 0x3386 0000336b: JUMPI 0000336c: PUSH1 0x40 0000336e: MLOAD 0000336f: PUSH4 0x4b637e8f 00003374: PUSH1 0xe1 00003376: SHL 00003377: DUP2 00003378: MSTORE 00003379: PUSH0 0000337a: PUSH1 0x04 0000337c: DUP3 0000337d: ADD 0000337e: MSTORE 0000337f: PUSH1 0x24 00003381: ADD 00003382: PUSH2 0x0bef 00003385: JUMP 00003386: JUMPDEST 00003387: PUSH2 0x2315 0000338a: DUP3 0000338b: PUSH0 0000338c: DUP4 0000338d: PUSH2 0x2c69 00003390: JUMP 00003391: JUMPDEST 00003392: PUSH0 00003393: PUSH0 00003394: PUSH1 0x20 00003396: PUSH0 00003397: DUP5 00003398: MLOAD 00003399: PUSH1 0x20 0000339b: DUP7 0000339c: ADD 0000339d: PUSH0 0000339e: DUP9 0000339f: GAS 000033a0: CALL 000033a1: DUP1 000033a2: PUSH2 0x33b0 000033a5: JUMPI 000033a6: PUSH1 0x40 000033a8: MLOAD 000033a9: RETURNDATASIZE 000033aa: PUSH0 000033ab: DUP3 000033ac: RETURNDATACOPY 000033ad: RETURNDATASIZE 000033ae: DUP2 000033af: REVERT 000033b0: JUMPDEST 000033b1: POP 000033b2: POP 000033b3: PUSH0 000033b4: MLOAD 000033b5: RETURNDATASIZE 000033b6: SWAP2 000033b7: POP 000033b8: DUP2 000033b9: ISZERO 000033ba: PUSH2 0x33c7 000033bd: JUMPI 000033be: DUP1 000033bf: PUSH1 0x01 000033c1: EQ 000033c2: ISZERO 000033c3: PUSH2 0x33d4 000033c6: JUMP 000033c7: JUMPDEST 000033c8: PUSH1 0x01 000033ca: PUSH1 0x01 000033cc: PUSH1 0xa0 000033ce: SHL 000033cf: SUB 000033d0: DUP5 000033d1: AND 000033d2: EXTCODESIZE 000033d3: ISZERO 000033d4: JUMPDEST 000033d5: ISZERO 000033d6: PUSH2 0x0fa8 000033d9: JUMPI 000033da: PUSH1 0x40 000033dc: MLOAD 000033dd: PUSH32 0x5274afe700000000000000000000000000000000000000000000000000000000 000033fe: DUP2 000033ff: MSTORE 00003400: PUSH1 0x01 00003402: PUSH1 0x01 00003404: PUSH1 0xa0 00003406: SHL 00003407: SUB 00003408: DUP6 00003409: AND 0000340a: PUSH1 0x04 0000340c: DUP3 0000340d: ADD 0000340e: MSTORE 0000340f: PUSH1 0x24 00003411: ADD 00003412: PUSH2 0x0bef 00003415: JUMP 00003416: JUMPDEST 00003417: PUSH32 0x0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00 00003438: DUP1 00003439: SLOAD 0000343a: PUSH2 0x344e 0000343d: SWAP1 0000343e: PUSH1 0x01 00003440: PUSH1 0x01 00003442: PUSH1 0xa0 00003444: SHL 00003445: SUB 00003446: AND 00003447: DUP7 00003448: ADDRESS 00003449: DUP7 0000344a: PUSH2 0x34a6 0000344d: JUMP 0000344e: JUMPDEST 0000344f: PUSH2 0x3458 00003452: DUP5 00003453: DUP4 00003454: PUSH2 0x34df 00003457: JUMP 00003458: JUMPDEST 00003459: DUP4 0000345a: PUSH1 0x01 0000345c: PUSH1 0x01 0000345e: PUSH1 0xa0 00003460: SHL 00003461: SUB 00003462: AND 00003463: DUP6 00003464: PUSH1 0x01 00003466: PUSH1 0x01 00003468: PUSH1 0xa0 0000346a: SHL 0000346b: SUB 0000346c: AND 0000346d: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7 0000348e: DUP6 0000348f: DUP6 00003490: PUSH1 0x40 00003492: MLOAD 00003493: PUSH2 0x2c59 00003496: SWAP3 00003497: SWAP2 00003498: SWAP1 00003499: SWAP2 0000349a: DUP3 0000349b: MSTORE 0000349c: PUSH1 0x20 0000349e: DUP3 0000349f: ADD 000034a0: MSTORE 000034a1: PUSH1 0x40 000034a3: ADD 000034a4: SWAP1 000034a5: JUMP 000034a6: JUMPDEST 000034a7: PUSH1 0x40 000034a9: MLOAD 000034aa: PUSH1 0x01 000034ac: PUSH1 0x01 000034ae: PUSH1 0xa0 000034b0: SHL 000034b1: SUB 000034b2: DUP5 000034b3: DUP2 000034b4: AND 000034b5: PUSH1 0x24 000034b7: DUP4 000034b8: ADD 000034b9: MSTORE 000034ba: DUP4 000034bb: DUP2 000034bc: AND 000034bd: PUSH1 0x44 000034bf: DUP4 000034c0: ADD 000034c1: MSTORE 000034c2: PUSH1 0x64 000034c4: DUP3 000034c5: ADD 000034c6: DUP4 000034c7: SWAP1 000034c8: MSTORE 000034c9: PUSH2 0x0fa8 000034cc: SWAP2 000034cd: DUP7 000034ce: SWAP2 000034cf: DUP3 000034d0: AND 000034d1: SWAP1 000034d2: PUSH4 0x23b872dd 000034d7: SWAP1 000034d8: PUSH1 0x84 000034da: ADD 000034db: PUSH2 0x2fd8 000034de: JUMP 000034df: JUMPDEST 000034e0: PUSH1 0x01 000034e2: PUSH1 0x01 000034e4: PUSH1 0xa0 000034e6: SHL 000034e7: SUB 000034e8: DUP3 000034e9: AND 000034ea: PUSH2 0x3508 000034ed: JUMPI 000034ee: PUSH1 0x40 000034f0: MLOAD 000034f1: PUSH4 0xec442f05 000034f6: PUSH1 0xe0 000034f8: SHL 000034f9: DUP2 000034fa: MSTORE 000034fb: PUSH0 000034fc: PUSH1 0x04 000034fe: DUP3 000034ff: ADD 00003500: MSTORE 00003501: PUSH1 0x24 00003503: ADD 00003504: PUSH2 0x0bef 00003507: JUMP 00003508: JUMPDEST 00003509: PUSH2 0x2315 0000350c: PUSH0 0000350d: DUP4 0000350e: DUP4 0000350f: PUSH2 0x2c69 00003512: JUMP 00003513: JUMPDEST 00003514: PUSH0 00003515: PUSH1 0x20 00003517: DUP3 00003518: DUP5 00003519: SUB 0000351a: SLT 0000351b: ISZERO 0000351c: PUSH2 0x3523 0000351f: JUMPI 00003520: PUSH0 00003521: PUSH0 00003522: REVERT 00003523: JUMPDEST 00003524: POP 00003525: CALLDATALOAD 00003526: SWAP2 00003527: SWAP1 00003528: POP 00003529: JUMP 0000352a: JUMPDEST 0000352b: PUSH0 0000352c: JUMPDEST 0000352d: DUP4 0000352e: DUP2 0000352f: LT 00003530: ISZERO 00003531: PUSH2 0x3544 00003534: JUMPI 00003535: DUP2 00003536: DUP2 00003537: ADD 00003538: MLOAD 00003539: DUP4 0000353a: DUP3 0000353b: ADD 0000353c: MSTORE 0000353d: PUSH1 0x20 0000353f: ADD 00003540: PUSH2 0x352c 00003543: JUMP 00003544: JUMPDEST 00003545: POP 00003546: POP 00003547: PUSH0 00003548: SWAP2 00003549: ADD 0000354a: MSTORE 0000354b: JUMP 0000354c: JUMPDEST 0000354d: PUSH0 0000354e: DUP2 0000354f: MLOAD 00003550: DUP1 00003551: DUP5 00003552: MSTORE 00003553: PUSH2 0x3563 00003556: DUP2 00003557: PUSH1 0x20 00003559: DUP7 0000355a: ADD 0000355b: PUSH1 0x20 0000355d: DUP7 0000355e: ADD 0000355f: PUSH2 0x352a 00003562: JUMP 00003563: JUMPDEST 00003564: PUSH1 0x1f 00003566: ADD 00003567: PUSH1 0x1f 00003569: NOT 0000356a: AND 0000356b: SWAP3 0000356c: SWAP1 0000356d: SWAP3 0000356e: ADD 0000356f: PUSH1 0x20 00003571: ADD 00003572: SWAP3 00003573: SWAP2 00003574: POP 00003575: POP 00003576: JUMP 00003577: JUMPDEST 00003578: PUSH1 0x20 0000357a: DUP2 0000357b: MSTORE 0000357c: PUSH0 0000357d: PUSH2 0x0e42 00003580: PUSH1 0x20 00003582: DUP4 00003583: ADD 00003584: DUP5 00003585: PUSH2 0x354c 00003588: JUMP 00003589: JUMPDEST 0000358a: PUSH1 0x01 0000358c: PUSH1 0x01 0000358e: PUSH1 0xa0 00003590: SHL 00003591: SUB 00003592: DUP2 00003593: AND 00003594: DUP2 00003595: EQ 00003596: PUSH2 0x232a 00003599: JUMPI 0000359a: PUSH0 0000359b: PUSH0 0000359c: REVERT 0000359d: JUMPDEST 0000359e: PUSH0 0000359f: PUSH0 000035a0: PUSH1 0x40 000035a2: DUP4 000035a3: DUP6 000035a4: SUB 000035a5: SLT 000035a6: ISZERO 000035a7: PUSH2 0x35ae 000035aa: JUMPI 000035ab: PUSH0 000035ac: PUSH0 000035ad: REVERT 000035ae: JUMPDEST 000035af: DUP3 000035b0: CALLDATALOAD 000035b1: PUSH2 0x35b9 000035b4: DUP2 000035b5: PUSH2 0x3589 000035b8: JUMP 000035b9: JUMPDEST 000035ba: SWAP5 000035bb: PUSH1 0x20 000035bd: SWAP4 000035be: SWAP1 000035bf: SWAP4 000035c0: ADD 000035c1: CALLDATALOAD 000035c2: SWAP4 000035c3: POP 000035c4: POP 000035c5: POP 000035c6: JUMP 000035c7: JUMPDEST 000035c8: PUSH0 000035c9: PUSH0 000035ca: DUP4 000035cb: PUSH1 0x1f 000035cd: DUP5 000035ce: ADD 000035cf: SLT 000035d0: PUSH2 0x35d7 000035d3: JUMPI 000035d4: PUSH0 000035d5: PUSH0 000035d6: REVERT 000035d7: JUMPDEST 000035d8: POP 000035d9: DUP2 000035da: CALLDATALOAD 000035db: PUSH8 0xffffffffffffffff 000035e4: DUP2 000035e5: GT 000035e6: ISZERO 000035e7: PUSH2 0x35ee 000035ea: JUMPI 000035eb: PUSH0 000035ec: PUSH0 000035ed: REVERT 000035ee: JUMPDEST 000035ef: PUSH1 0x20 000035f1: DUP4 000035f2: ADD 000035f3: SWAP2 000035f4: POP 000035f5: DUP4 000035f6: PUSH1 0x20 000035f8: DUP3 000035f9: DUP6 000035fa: ADD 000035fb: ADD 000035fc: GT 000035fd: ISZERO 000035fe: PUSH2 0x3605 00003601: JUMPI 00003602: PUSH0 00003603: PUSH0 00003604: REVERT 00003605: JUMPDEST 00003606: SWAP3 00003607: POP 00003608: SWAP3 00003609: SWAP1 0000360a: POP 0000360b: JUMP 0000360c: JUMPDEST 0000360d: PUSH0 0000360e: PUSH0 0000360f: PUSH0 00003610: PUSH0 00003611: PUSH0 00003612: PUSH1 0x80 00003614: DUP7 00003615: DUP9 00003616: SUB 00003617: SLT 00003618: ISZERO 00003619: PUSH2 0x3620 0000361c: JUMPI 0000361d: PUSH0 0000361e: PUSH0 0000361f: REVERT 00003620: JUMPDEST 00003621: DUP6 00003622: CALLDATALOAD 00003623: PUSH2 0x362b 00003626: DUP2 00003627: PUSH2 0x3589 0000362a: JUMP 0000362b: JUMPDEST 0000362c: SWAP5 0000362d: POP 0000362e: PUSH1 0x20 00003630: DUP7 00003631: ADD 00003632: CALLDATALOAD 00003633: PUSH2 0x363b 00003636: DUP2 00003637: PUSH2 0x3589 0000363a: JUMP 0000363b: JUMPDEST 0000363c: SWAP4 0000363d: POP 0000363e: PUSH1 0x40 00003640: DUP7 00003641: ADD 00003642: CALLDATALOAD 00003643: SWAP3 00003644: POP 00003645: PUSH1 0x60 00003647: DUP7 00003648: ADD 00003649: CALLDATALOAD 0000364a: PUSH8 0xffffffffffffffff 00003653: DUP2 00003654: GT 00003655: ISZERO 00003656: PUSH2 0x365d 00003659: JUMPI 0000365a: PUSH0 0000365b: PUSH0 0000365c: REVERT 0000365d: JUMPDEST 0000365e: PUSH2 0x3669 00003661: DUP9 00003662: DUP3 00003663: DUP10 00003664: ADD 00003665: PUSH2 0x35c7 00003668: JUMP 00003669: JUMPDEST 0000366a: SWAP7 0000366b: SWAP10 0000366c: SWAP6 0000366d: SWAP9 0000366e: POP 0000366f: SWAP4 00003670: SWAP7 00003671: POP 00003672: SWAP3 00003673: SWAP5 00003674: SWAP4 00003675: SWAP3 00003676: POP 00003677: POP 00003678: POP 00003679: JUMP 0000367a: JUMPDEST 0000367b: PUSH0 0000367c: PUSH0 0000367d: PUSH0 0000367e: PUSH1 0x60 00003680: DUP5 00003681: DUP7 00003682: SUB 00003683: SLT 00003684: ISZERO 00003685: PUSH2 0x368c 00003688: JUMPI 00003689: PUSH0 0000368a: PUSH0 0000368b: REVERT 0000368c: JUMPDEST 0000368d: DUP4 0000368e: CALLDATALOAD 0000368f: PUSH2 0x3697 00003692: DUP2 00003693: PUSH2 0x3589 00003696: JUMP 00003697: JUMPDEST 00003698: SWAP6 00003699: PUSH1 0x20 0000369b: DUP6 0000369c: ADD 0000369d: CALLDATALOAD 0000369e: SWAP6 0000369f: POP 000036a0: PUSH1 0x40 000036a2: SWAP1 000036a3: SWAP5 000036a4: ADD 000036a5: CALLDATALOAD 000036a6: SWAP4 000036a7: SWAP3 000036a8: POP 000036a9: POP 000036aa: POP 000036ab: JUMP 000036ac: JUMPDEST 000036ad: PUSH4 0x4e487b71 000036b2: PUSH1 0xe0 000036b4: SHL 000036b5: PUSH0 000036b6: MSTORE 000036b7: PUSH1 0x41 000036b9: PUSH1 0x04 000036bb: MSTORE 000036bc: PUSH1 0x24 000036be: PUSH0 000036bf: REVERT 000036c0: JUMPDEST 000036c1: PUSH0 000036c2: DUP3 000036c3: PUSH1 0x1f 000036c5: DUP4 000036c6: ADD 000036c7: SLT 000036c8: PUSH2 0x36cf 000036cb: JUMPI 000036cc: PUSH0 000036cd: PUSH0 000036ce: REVERT 000036cf: JUMPDEST 000036d0: DUP2 000036d1: CALLDATALOAD 000036d2: PUSH8 0xffffffffffffffff 000036db: DUP2 000036dc: GT 000036dd: ISZERO 000036de: PUSH2 0x36e9 000036e1: JUMPI 000036e2: PUSH2 0x36e9 000036e5: PUSH2 0x36ac 000036e8: JUMP 000036e9: JUMPDEST 000036ea: PUSH1 0x40 000036ec: MLOAD 000036ed: PUSH1 0x1f 000036ef: DUP3 000036f0: ADD 000036f1: PUSH1 0x1f 000036f3: NOT 000036f4: SWAP1 000036f5: DUP2 000036f6: AND 000036f7: PUSH1 0x3f 000036f9: ADD 000036fa: AND 000036fb: DUP2 000036fc: ADD 000036fd: PUSH8 0xffffffffffffffff 00003706: DUP2 00003707: GT 00003708: DUP3 00003709: DUP3 0000370a: LT 0000370b: OR 0000370c: ISZERO 0000370d: PUSH2 0x3718 00003710: JUMPI 00003711: PUSH2 0x3718 00003714: PUSH2 0x36ac 00003717: JUMP 00003718: JUMPDEST 00003719: PUSH1 0x40 0000371b: MSTORE 0000371c: DUP2 0000371d: DUP2 0000371e: MSTORE 0000371f: DUP4 00003720: DUP3 00003721: ADD 00003722: PUSH1 0x20 00003724: ADD 00003725: DUP6 00003726: LT 00003727: ISZERO 00003728: PUSH2 0x372f 0000372b: JUMPI 0000372c: PUSH0 0000372d: PUSH0 0000372e: REVERT 0000372f: JUMPDEST 00003730: DUP2 00003731: PUSH1 0x20 00003733: DUP6 00003734: ADD 00003735: PUSH1 0x20 00003737: DUP4 00003738: ADD 00003739: CALLDATACOPY 0000373a: PUSH0 0000373b: SWAP2 0000373c: DUP2 0000373d: ADD 0000373e: PUSH1 0x20 00003740: ADD 00003741: SWAP2 00003742: SWAP1 00003743: SWAP2 00003744: MSTORE 00003745: SWAP4 00003746: SWAP3 00003747: POP 00003748: POP 00003749: POP 0000374a: JUMP 0000374b: JUMPDEST 0000374c: PUSH0 0000374d: PUSH0 0000374e: PUSH0 0000374f: PUSH0 00003750: PUSH1 0x80 00003752: DUP6 00003753: DUP8 00003754: SUB 00003755: SLT 00003756: ISZERO 00003757: PUSH2 0x375e 0000375a: JUMPI 0000375b: PUSH0 0000375c: PUSH0 0000375d: REVERT 0000375e: JUMPDEST 0000375f: DUP5 00003760: CALLDATALOAD 00003761: PUSH2 0x3769 00003764: DUP2 00003765: PUSH2 0x3589 00003768: JUMP 00003769: JUMPDEST 0000376a: SWAP4 0000376b: POP 0000376c: PUSH1 0x20 0000376e: DUP6 0000376f: ADD 00003770: CALLDATALOAD 00003771: PUSH2 0x3779 00003774: DUP2 00003775: PUSH2 0x3589 00003778: JUMP 00003779: JUMPDEST 0000377a: SWAP3 0000377b: POP 0000377c: PUSH1 0x40 0000377e: DUP6 0000377f: ADD 00003780: CALLDATALOAD 00003781: PUSH8 0xffffffffffffffff 0000378a: DUP2 0000378b: GT 0000378c: ISZERO 0000378d: PUSH2 0x3794 00003790: JUMPI 00003791: PUSH0 00003792: PUSH0 00003793: REVERT 00003794: JUMPDEST 00003795: PUSH2 0x37a0 00003798: DUP8 00003799: DUP3 0000379a: DUP9 0000379b: ADD 0000379c: PUSH2 0x36c0 0000379f: JUMP 000037a0: JUMPDEST 000037a1: SWAP3 000037a2: POP 000037a3: POP 000037a4: PUSH1 0x60 000037a6: DUP6 000037a7: ADD 000037a8: CALLDATALOAD 000037a9: PUSH8 0xffffffffffffffff 000037b2: DUP2 000037b3: GT 000037b4: ISZERO 000037b5: PUSH2 0x37bc 000037b8: JUMPI 000037b9: PUSH0 000037ba: PUSH0 000037bb: REVERT 000037bc: JUMPDEST 000037bd: PUSH2 0x37c8 000037c0: DUP8 000037c1: DUP3 000037c2: DUP9 000037c3: ADD 000037c4: PUSH2 0x36c0 000037c7: JUMP 000037c8: JUMPDEST 000037c9: SWAP2 000037ca: POP 000037cb: POP 000037cc: SWAP3 000037cd: SWAP6 000037ce: SWAP2 000037cf: SWAP5 000037d0: POP 000037d1: SWAP3 000037d2: POP 000037d3: JUMP 000037d4: JUMPDEST 000037d5: PUSH0 000037d6: PUSH0 000037d7: DUP4 000037d8: PUSH1 0x1f 000037da: DUP5 000037db: ADD 000037dc: SLT 000037dd: PUSH2 0x37e4 000037e0: JUMPI 000037e1: PUSH0 000037e2: PUSH0 000037e3: REVERT 000037e4: JUMPDEST 000037e5: POP 000037e6: DUP2 000037e7: CALLDATALOAD 000037e8: PUSH8 0xffffffffffffffff 000037f1: DUP2 000037f2: GT 000037f3: ISZERO 000037f4: PUSH2 0x37fb 000037f7: JUMPI 000037f8: PUSH0 000037f9: PUSH0 000037fa: REVERT 000037fb: JUMPDEST 000037fc: PUSH1 0x20 000037fe: DUP4 000037ff: ADD 00003800: SWAP2 00003801: POP 00003802: DUP4 00003803: PUSH1 0x20 00003805: DUP3 00003806: PUSH1 0x05 00003808: SHL 00003809: DUP6 0000380a: ADD 0000380b: ADD 0000380c: GT 0000380d: ISZERO 0000380e: PUSH2 0x3605 00003811: JUMPI 00003812: PUSH0 00003813: PUSH0 00003814: REVERT 00003815: JUMPDEST 00003816: PUSH0 00003817: PUSH0 00003818: PUSH0 00003819: PUSH0 0000381a: PUSH0 0000381b: PUSH0 0000381c: PUSH1 0x60 0000381e: DUP8 0000381f: DUP10 00003820: SUB 00003821: SLT 00003822: ISZERO 00003823: PUSH2 0x382a 00003826: JUMPI 00003827: PUSH0 00003828: PUSH0 00003829: REVERT 0000382a: JUMPDEST 0000382b: DUP7 0000382c: CALLDATALOAD 0000382d: PUSH8 0xffffffffffffffff 00003836: DUP2 00003837: GT 00003838: ISZERO 00003839: PUSH2 0x3840 0000383c: JUMPI 0000383d: PUSH0 0000383e: PUSH0 0000383f: REVERT 00003840: JUMPDEST 00003841: PUSH2 0x384c 00003844: DUP10 00003845: DUP3 00003846: DUP11 00003847: ADD 00003848: PUSH2 0x37d4 0000384b: JUMP 0000384c: JUMPDEST 0000384d: SWAP1 0000384e: SWAP8 0000384f: POP 00003850: SWAP6 00003851: POP 00003852: POP 00003853: PUSH1 0x20 00003855: DUP8 00003856: ADD 00003857: CALLDATALOAD 00003858: PUSH8 0xffffffffffffffff 00003861: DUP2 00003862: GT 00003863: ISZERO 00003864: PUSH2 0x386b 00003867: JUMPI 00003868: PUSH0 00003869: PUSH0 0000386a: REVERT 0000386b: JUMPDEST 0000386c: PUSH2 0x3877 0000386f: DUP10 00003870: DUP3 00003871: DUP11 00003872: ADD 00003873: PUSH2 0x37d4 00003876: JUMP 00003877: JUMPDEST 00003878: SWAP1 00003879: SWAP6 0000387a: POP 0000387b: SWAP4 0000387c: POP 0000387d: POP 0000387e: PUSH1 0x40 00003880: DUP8 00003881: ADD 00003882: CALLDATALOAD 00003883: PUSH8 0xffffffffffffffff 0000388c: DUP2 0000388d: GT 0000388e: ISZERO 0000388f: PUSH2 0x3896 00003892: JUMPI 00003893: PUSH0 00003894: PUSH0 00003895: REVERT 00003896: JUMPDEST 00003897: PUSH2 0x38a2 0000389a: DUP10 0000389b: DUP3 0000389c: DUP11 0000389d: ADD 0000389e: PUSH2 0x37d4 000038a1: JUMP 000038a2: JUMPDEST 000038a3: SWAP8 000038a4: SWAP11 000038a5: SWAP7 000038a6: SWAP10 000038a7: POP 000038a8: SWAP5 000038a9: SWAP8 000038aa: POP 000038ab: SWAP3 000038ac: SWAP6 000038ad: SWAP4 000038ae: SWAP5 000038af: SWAP3 000038b0: POP 000038b1: POP 000038b2: POP 000038b3: JUMP 000038b4: JUMPDEST 000038b5: PUSH0 000038b6: PUSH1 0x20 000038b8: DUP3 000038b9: ADD 000038ba: PUSH1 0x20 000038bc: DUP4 000038bd: MSTORE 000038be: DUP1 000038bf: DUP5 000038c0: MLOAD 000038c1: DUP1 000038c2: DUP4 000038c3: MSTORE 000038c4: PUSH1 0x40 000038c6: DUP6 000038c7: ADD 000038c8: SWAP2 000038c9: POP 000038ca: PUSH1 0x40 000038cc: DUP2 000038cd: PUSH1 0x05 000038cf: SHL 000038d0: DUP7 000038d1: ADD 000038d2: ADD 000038d3: SWAP3 000038d4: POP 000038d5: PUSH1 0x20 000038d7: DUP7 000038d8: ADD 000038d9: PUSH0 000038da: JUMPDEST 000038db: DUP3 000038dc: DUP2 000038dd: LT 000038de: ISZERO 000038df: PUSH2 0x390b 000038e2: JUMPI 000038e3: PUSH1 0x3f 000038e5: NOT 000038e6: DUP8 000038e7: DUP7 000038e8: SUB 000038e9: ADD 000038ea: DUP5 000038eb: MSTORE 000038ec: PUSH2 0x38f6 000038ef: DUP6 000038f0: DUP4 000038f1: MLOAD 000038f2: PUSH2 0x354c 000038f5: JUMP 000038f6: JUMPDEST 000038f7: SWAP5 000038f8: POP 000038f9: PUSH1 0x20 000038fb: SWAP4 000038fc: DUP5 000038fd: ADD 000038fe: SWAP4 000038ff: SWAP2 00003900: SWAP1 00003901: SWAP2 00003902: ADD 00003903: SWAP1 00003904: PUSH1 0x01 00003906: ADD 00003907: PUSH2 0x38da 0000390a: JUMP 0000390b: JUMPDEST 0000390c: POP 0000390d: SWAP3 0000390e: SWAP7 0000390f: SWAP6 00003910: POP 00003911: POP 00003912: POP 00003913: POP 00003914: POP 00003915: POP 00003916: JUMP 00003917: JUMPDEST 00003918: PUSH0 00003919: PUSH0 0000391a: PUSH0 0000391b: PUSH1 0x60 0000391d: DUP5 0000391e: DUP7 0000391f: SUB 00003920: SLT 00003921: ISZERO 00003922: PUSH2 0x3929 00003925: JUMPI 00003926: PUSH0 00003927: PUSH0 00003928: REVERT 00003929: JUMPDEST 0000392a: DUP4 0000392b: CALLDATALOAD 0000392c: PUSH2 0x3934 0000392f: DUP2 00003930: PUSH2 0x3589 00003933: JUMP 00003934: JUMPDEST 00003935: SWAP3 00003936: POP 00003937: PUSH1 0x20 00003939: DUP5 0000393a: ADD 0000393b: CALLDATALOAD 0000393c: PUSH2 0x3944 0000393f: DUP2 00003940: PUSH2 0x3589 00003943: JUMP 00003944: JUMPDEST 00003945: SWAP3 00003946: SWAP6 00003947: SWAP3 00003948: SWAP5 00003949: POP 0000394a: POP 0000394b: POP 0000394c: PUSH1 0x40 0000394e: SWAP2 0000394f: SWAP1 00003950: SWAP2 00003951: ADD 00003952: CALLDATALOAD 00003953: SWAP1 00003954: JUMP 00003955: JUMPDEST 00003956: PUSH0 00003957: PUSH1 0x20 00003959: DUP3 0000395a: DUP5 0000395b: SUB 0000395c: SLT 0000395d: ISZERO 0000395e: PUSH2 0x3965 00003961: JUMPI 00003962: PUSH0 00003963: PUSH0 00003964: REVERT 00003965: JUMPDEST 00003966: DUP2 00003967: CALLDATALOAD 00003968: PUSH2 0x0e42 0000396b: DUP2 0000396c: PUSH2 0x3589 0000396f: JUMP 00003970: JUMPDEST 00003971: PUSH0 00003972: PUSH0 00003973: PUSH1 0x40 00003975: DUP4 00003976: DUP6 00003977: SUB 00003978: SLT 00003979: ISZERO 0000397a: PUSH2 0x3981 0000397d: JUMPI 0000397e: PUSH0 0000397f: PUSH0 00003980: REVERT 00003981: JUMPDEST 00003982: DUP3 00003983: CALLDATALOAD 00003984: SWAP2 00003985: POP 00003986: PUSH1 0x20 00003988: DUP4 00003989: ADD 0000398a: CALLDATALOAD 0000398b: PUSH2 0x3993 0000398e: DUP2 0000398f: PUSH2 0x3589 00003992: JUMP 00003993: JUMPDEST 00003994: DUP1 00003995: SWAP2 00003996: POP 00003997: POP 00003998: SWAP3 00003999: POP 0000399a: SWAP3 0000399b: SWAP1 0000399c: POP 0000399d: JUMP 0000399e: JUMPDEST 0000399f: PUSH0 000039a0: PUSH0 000039a1: PUSH0 000039a2: PUSH1 0x60 000039a4: DUP5 000039a5: DUP7 000039a6: SUB 000039a7: SLT 000039a8: ISZERO 000039a9: PUSH2 0x39b0 000039ac: JUMPI 000039ad: PUSH0 000039ae: PUSH0 000039af: REVERT 000039b0: JUMPDEST 000039b1: DUP4 000039b2: CALLDATALOAD 000039b3: SWAP3 000039b4: POP 000039b5: PUSH1 0x20 000039b7: DUP5 000039b8: ADD 000039b9: CALLDATALOAD 000039ba: PUSH2 0x39c2 000039bd: DUP2 000039be: PUSH2 0x3589 000039c1: JUMP 000039c2: JUMPDEST 000039c3: SWAP2 000039c4: POP 000039c5: PUSH1 0x40 000039c7: DUP5 000039c8: ADD 000039c9: CALLDATALOAD 000039ca: PUSH2 0x39d2 000039cd: DUP2 000039ce: PUSH2 0x3589 000039d1: JUMP 000039d2: JUMPDEST 000039d3: DUP1 000039d4: SWAP2 000039d5: POP 000039d6: POP 000039d7: SWAP3 000039d8: POP 000039d9: SWAP3 000039da: POP 000039db: SWAP3 000039dc: JUMP 000039dd: JUMPDEST 000039de: PUSH0 000039df: PUSH0 000039e0: PUSH0 000039e1: PUSH0 000039e2: PUSH0 000039e3: PUSH0 000039e4: PUSH0 000039e5: PUSH0 000039e6: PUSH1 0xa0 000039e8: DUP10 000039e9: DUP12 000039ea: SUB 000039eb: SLT 000039ec: ISZERO 000039ed: PUSH2 0x39f4 000039f0: JUMPI 000039f1: PUSH0 000039f2: PUSH0 000039f3: REVERT 000039f4: JUMPDEST 000039f5: DUP9 000039f6: CALLDATALOAD 000039f7: PUSH2 0x39ff 000039fa: DUP2 000039fb: PUSH2 0x3589 000039fe: JUMP 000039ff: JUMPDEST 00003a00: SWAP8 00003a01: POP 00003a02: PUSH1 0x20 00003a04: DUP10 00003a05: ADD 00003a06: CALLDATALOAD 00003a07: PUSH2 0x3a0f 00003a0a: DUP2 00003a0b: PUSH2 0x3589 00003a0e: JUMP 00003a0f: JUMPDEST 00003a10: SWAP7 00003a11: POP 00003a12: PUSH1 0x40 00003a14: DUP10 00003a15: ADD 00003a16: CALLDATALOAD 00003a17: PUSH8 0xffffffffffffffff 00003a20: DUP2 00003a21: GT 00003a22: ISZERO 00003a23: PUSH2 0x3a2a 00003a26: JUMPI 00003a27: PUSH0 00003a28: PUSH0 00003a29: REVERT 00003a2a: JUMPDEST 00003a2b: PUSH2 0x3a36 00003a2e: DUP12 00003a2f: DUP3 00003a30: DUP13 00003a31: ADD 00003a32: PUSH2 0x37d4 00003a35: JUMP 00003a36: JUMPDEST 00003a37: SWAP1 00003a38: SWAP8 00003a39: POP 00003a3a: SWAP6 00003a3b: POP 00003a3c: POP 00003a3d: PUSH1 0x60 00003a3f: DUP10 00003a40: ADD 00003a41: CALLDATALOAD 00003a42: PUSH8 0xffffffffffffffff 00003a4b: DUP2 00003a4c: GT 00003a4d: ISZERO 00003a4e: PUSH2 0x3a55 00003a51: JUMPI 00003a52: PUSH0 00003a53: PUSH0 00003a54: REVERT 00003a55: JUMPDEST 00003a56: PUSH2 0x3a61 00003a59: DUP12 00003a5a: DUP3 00003a5b: DUP13 00003a5c: ADD 00003a5d: PUSH2 0x37d4 00003a60: JUMP 00003a61: JUMPDEST 00003a62: SWAP1 00003a63: SWAP6 00003a64: POP 00003a65: SWAP4 00003a66: POP 00003a67: POP 00003a68: PUSH1 0x80 00003a6a: DUP10 00003a6b: ADD 00003a6c: CALLDATALOAD 00003a6d: PUSH8 0xffffffffffffffff 00003a76: DUP2 00003a77: GT 00003a78: ISZERO 00003a79: PUSH2 0x3a80 00003a7c: JUMPI 00003a7d: PUSH0 00003a7e: PUSH0 00003a7f: REVERT 00003a80: JUMPDEST 00003a81: PUSH2 0x3a8c 00003a84: DUP12 00003a85: DUP3 00003a86: DUP13 00003a87: ADD 00003a88: PUSH2 0x35c7 00003a8b: JUMP 00003a8c: JUMPDEST 00003a8d: SWAP10 00003a8e: SWAP13 00003a8f: SWAP9 00003a90: SWAP12 00003a91: POP 00003a92: SWAP7 00003a93: SWAP10 00003a94: POP 00003a95: SWAP5 00003a96: SWAP8 00003a97: SWAP4 00003a98: SWAP7 00003a99: SWAP3 00003a9a: SWAP6 00003a9b: SWAP5 00003a9c: POP 00003a9d: POP 00003a9e: POP 00003a9f: JUMP 00003aa0: JUMPDEST 00003aa1: PUSH0 00003aa2: PUSH0 00003aa3: PUSH1 0x40 00003aa5: DUP4 00003aa6: DUP6 00003aa7: SUB 00003aa8: SLT 00003aa9: ISZERO 00003aaa: PUSH2 0x3ab1 00003aad: JUMPI 00003aae: PUSH0 00003aaf: PUSH0 00003ab0: REVERT 00003ab1: JUMPDEST 00003ab2: DUP3 00003ab3: CALLDATALOAD 00003ab4: PUSH2 0x3abc 00003ab7: DUP2 00003ab8: PUSH2 0x3589 00003abb: JUMP 00003abc: JUMPDEST 00003abd: SWAP2 00003abe: POP 00003abf: PUSH1 0x20 00003ac1: DUP4 00003ac2: ADD 00003ac3: CALLDATALOAD 00003ac4: PUSH1 0x01 00003ac6: PUSH1 0x01 00003ac8: PUSH1 0xe0 00003aca: SHL 00003acb: SUB 00003acc: NOT 00003acd: DUP2 00003ace: AND 00003acf: DUP2 00003ad0: EQ 00003ad1: PUSH2 0x3993 00003ad4: JUMPI 00003ad5: PUSH0 00003ad6: PUSH0 00003ad7: REVERT 00003ad8: JUMPDEST 00003ad9: PUSH0 00003ada: PUSH0 00003adb: PUSH1 0x40 00003add: DUP4 00003ade: DUP6 00003adf: SUB 00003ae0: SLT 00003ae1: ISZERO 00003ae2: PUSH2 0x3ae9 00003ae5: JUMPI 00003ae6: PUSH0 00003ae7: PUSH0 00003ae8: REVERT 00003ae9: JUMPDEST 00003aea: DUP3 00003aeb: CALLDATALOAD 00003aec: PUSH2 0x3af4 00003aef: DUP2 00003af0: PUSH2 0x3589 00003af3: JUMP 00003af4: JUMPDEST 00003af5: SWAP2 00003af6: POP 00003af7: PUSH1 0x20 00003af9: DUP4 00003afa: ADD 00003afb: CALLDATALOAD 00003afc: PUSH2 0x3993 00003aff: DUP2 00003b00: PUSH2 0x3589 00003b03: JUMP 00003b04: JUMPDEST 00003b05: PUSH0 00003b06: PUSH0 00003b07: PUSH0 00003b08: PUSH0 00003b09: PUSH0 00003b0a: PUSH0 00003b0b: PUSH1 0xa0 00003b0d: DUP8 00003b0e: DUP10 00003b0f: SUB 00003b10: SLT 00003b11: ISZERO 00003b12: PUSH2 0x3b19 00003b15: JUMPI 00003b16: PUSH0 00003b17: PUSH0 00003b18: REVERT 00003b19: JUMPDEST 00003b1a: DUP7 00003b1b: CALLDATALOAD 00003b1c: PUSH2 0x3b24 00003b1f: DUP2 00003b20: PUSH2 0x3589 00003b23: JUMP 00003b24: JUMPDEST 00003b25: SWAP6 00003b26: POP 00003b27: PUSH1 0x20 00003b29: DUP8 00003b2a: ADD 00003b2b: CALLDATALOAD 00003b2c: PUSH2 0x3b34 00003b2f: DUP2 00003b30: PUSH2 0x3589 00003b33: JUMP 00003b34: JUMPDEST 00003b35: SWAP5 00003b36: POP 00003b37: PUSH1 0x40 00003b39: DUP8 00003b3a: ADD 00003b3b: CALLDATALOAD 00003b3c: SWAP4 00003b3d: POP 00003b3e: PUSH1 0x60 00003b40: DUP8 00003b41: ADD 00003b42: CALLDATALOAD 00003b43: SWAP3 00003b44: POP 00003b45: PUSH1 0x80 00003b47: DUP8 00003b48: ADD 00003b49: CALLDATALOAD 00003b4a: PUSH8 0xffffffffffffffff 00003b53: DUP2 00003b54: GT 00003b55: ISZERO 00003b56: PUSH2 0x3b5d 00003b59: JUMPI 00003b5a: PUSH0 00003b5b: PUSH0 00003b5c: REVERT 00003b5d: JUMPDEST 00003b5e: PUSH2 0x38a2 00003b61: DUP10 00003b62: DUP3 00003b63: DUP11 00003b64: ADD 00003b65: PUSH2 0x35c7 00003b68: JUMP 00003b69: JUMPDEST 00003b6a: PUSH0 00003b6b: PUSH0 00003b6c: PUSH0 00003b6d: PUSH0 00003b6e: PUSH1 0x60 00003b70: DUP6 00003b71: DUP8 00003b72: SUB 00003b73: SLT 00003b74: ISZERO 00003b75: PUSH2 0x3b7c 00003b78: JUMPI 00003b79: PUSH0 00003b7a: PUSH0 00003b7b: REVERT 00003b7c: JUMPDEST 00003b7d: DUP5 00003b7e: CALLDATALOAD 00003b7f: PUSH2 0x3b87 00003b82: DUP2 00003b83: PUSH2 0x3589 00003b86: JUMP 00003b87: JUMPDEST 00003b88: SWAP4 00003b89: POP 00003b8a: PUSH1 0x20 00003b8c: DUP6 00003b8d: ADD 00003b8e: CALLDATALOAD 00003b8f: PUSH8 0xffffffffffffffff 00003b98: DUP2 00003b99: GT 00003b9a: ISZERO 00003b9b: PUSH2 0x3ba2 00003b9e: JUMPI 00003b9f: PUSH0 00003ba0: PUSH0 00003ba1: REVERT 00003ba2: JUMPDEST 00003ba3: PUSH2 0x3bae 00003ba6: DUP8 00003ba7: DUP3 00003ba8: DUP9 00003ba9: ADD 00003baa: PUSH2 0x35c7 00003bad: JUMP 00003bae: JUMPDEST 00003baf: SWAP6 00003bb0: SWAP9 00003bb1: SWAP1 00003bb2: SWAP8 00003bb3: POP 00003bb4: SWAP5 00003bb5: SWAP6 00003bb6: PUSH1 0x40 00003bb8: ADD 00003bb9: CALLDATALOAD 00003bba: SWAP5 00003bbb: SWAP4 00003bbc: POP 00003bbd: POP 00003bbe: POP 00003bbf: POP 00003bc0: JUMP 00003bc1: JUMPDEST 00003bc2: PUSH0 00003bc3: PUSH0 00003bc4: PUSH1 0x40 00003bc6: DUP4 00003bc7: DUP6 00003bc8: SUB 00003bc9: SLT 00003bca: ISZERO 00003bcb: PUSH2 0x3bd2 00003bce: JUMPI 00003bcf: PUSH0 00003bd0: PUSH0 00003bd1: REVERT 00003bd2: JUMPDEST 00003bd3: DUP3 00003bd4: MLOAD 00003bd5: PUSH1 0x20 00003bd7: DUP5 00003bd8: ADD 00003bd9: MLOAD 00003bda: SWAP1 00003bdb: SWAP3 00003bdc: POP 00003bdd: PUSH8 0xffffffffffffffff 00003be6: DUP2 00003be7: AND 00003be8: DUP2 00003be9: EQ 00003bea: PUSH2 0x3993 00003bed: JUMPI 00003bee: PUSH0 00003bef: PUSH0 00003bf0: REVERT 00003bf1: JUMPDEST 00003bf2: PUSH4 0x4e487b71 00003bf7: PUSH1 0xe0 00003bf9: SHL 00003bfa: PUSH0 00003bfb: MSTORE 00003bfc: PUSH1 0x11 00003bfe: PUSH1 0x04 00003c00: MSTORE 00003c01: PUSH1 0x24 00003c03: PUSH0 00003c04: REVERT 00003c05: JUMPDEST 00003c06: PUSH1 0x01 00003c08: DUP2 00003c09: JUMPDEST 00003c0a: PUSH1 0x01 00003c0c: DUP5 00003c0d: GT 00003c0e: ISZERO 00003c0f: PUSH2 0x3c40 00003c12: JUMPI 00003c13: DUP1 00003c14: DUP6 00003c15: DIV 00003c16: DUP2 00003c17: GT 00003c18: ISZERO 00003c19: PUSH2 0x3c24 00003c1c: JUMPI 00003c1d: PUSH2 0x3c24 00003c20: PUSH2 0x3bf1 00003c23: JUMP 00003c24: JUMPDEST 00003c25: PUSH1 0x01 00003c27: DUP5 00003c28: AND 00003c29: ISZERO 00003c2a: PUSH2 0x3c32 00003c2d: JUMPI 00003c2e: SWAP1 00003c2f: DUP2 00003c30: MUL 00003c31: SWAP1 00003c32: JUMPDEST 00003c33: PUSH1 0x01 00003c35: SWAP4 00003c36: SWAP1 00003c37: SWAP4 00003c38: SHR 00003c39: SWAP3 00003c3a: DUP1 00003c3b: MUL 00003c3c: PUSH2 0x3c09 00003c3f: JUMP 00003c40: JUMPDEST 00003c41: SWAP4 00003c42: POP 00003c43: SWAP4 00003c44: SWAP2 00003c45: POP 00003c46: POP 00003c47: JUMP 00003c48: JUMPDEST 00003c49: PUSH0 00003c4a: DUP3 00003c4b: PUSH2 0x3c56 00003c4e: JUMPI 00003c4f: POP 00003c50: PUSH1 0x01 00003c52: PUSH2 0x0e03 00003c55: JUMP 00003c56: JUMPDEST 00003c57: DUP2 00003c58: PUSH2 0x3c62 00003c5b: JUMPI 00003c5c: POP 00003c5d: PUSH0 00003c5e: PUSH2 0x0e03 00003c61: JUMP 00003c62: JUMPDEST 00003c63: DUP2 00003c64: PUSH1 0x01 00003c66: DUP2 00003c67: EQ 00003c68: PUSH2 0x3c78 00003c6b: JUMPI 00003c6c: PUSH1 0x02 00003c6e: DUP2 00003c6f: EQ 00003c70: PUSH2 0x3c82 00003c73: JUMPI 00003c74: PUSH2 0x3c9e 00003c77: JUMP 00003c78: JUMPDEST 00003c79: PUSH1 0x01 00003c7b: SWAP2 00003c7c: POP 00003c7d: POP 00003c7e: PUSH2 0x0e03 00003c81: JUMP 00003c82: JUMPDEST 00003c83: PUSH1 0xff 00003c85: DUP5 00003c86: GT 00003c87: ISZERO 00003c88: PUSH2 0x3c93 00003c8b: JUMPI 00003c8c: PUSH2 0x3c93 00003c8f: PUSH2 0x3bf1 00003c92: JUMP 00003c93: JUMPDEST 00003c94: POP 00003c95: POP 00003c96: PUSH1 0x01 00003c98: DUP3 00003c99: SHL 00003c9a: PUSH2 0x0e03 00003c9d: JUMP 00003c9e: JUMPDEST 00003c9f: POP 00003ca0: PUSH1 0x20 00003ca2: DUP4 00003ca3: LT 00003ca4: PUSH2 0x0133 00003ca7: DUP4 00003ca8: LT 00003ca9: AND 00003caa: PUSH1 0x4e 00003cac: DUP5 00003cad: LT 00003cae: PUSH1 0x0b 00003cb0: DUP5 00003cb1: LT 00003cb2: AND 00003cb3: OR 00003cb4: ISZERO 00003cb5: PUSH2 0x3cc1 00003cb8: JUMPI 00003cb9: POP 00003cba: DUP2 00003cbb: DUP2 00003cbc: EXP 00003cbd: PUSH2 0x0e03 00003cc0: JUMP 00003cc1: JUMPDEST 00003cc2: PUSH2 0x3ccd 00003cc5: PUSH0 00003cc6: NOT 00003cc7: DUP5 00003cc8: DUP5 00003cc9: PUSH2 0x3c05 00003ccc: JUMP 00003ccd: JUMPDEST 00003cce: DUP1 00003ccf: PUSH0 00003cd0: NOT 00003cd1: DIV 00003cd2: DUP3 00003cd3: GT 00003cd4: ISZERO 00003cd5: PUSH2 0x3ce0 00003cd8: JUMPI 00003cd9: PUSH2 0x3ce0 00003cdc: PUSH2 0x3bf1 00003cdf: JUMP 00003ce0: JUMPDEST 00003ce1: MUL 00003ce2: SWAP4 00003ce3: SWAP3 00003ce4: POP 00003ce5: POP 00003ce6: POP 00003ce7: JUMP 00003ce8: JUMPDEST 00003ce9: PUSH0 00003cea: PUSH2 0x0e42 00003ced: PUSH1 0xff 00003cef: DUP5 00003cf0: AND 00003cf1: DUP4 00003cf2: PUSH2 0x3c48 00003cf5: JUMP 00003cf6: JUMPDEST 00003cf7: PUSH1 0x01 00003cf9: DUP2 00003cfa: DUP2 00003cfb: SHR 00003cfc: SWAP1 00003cfd: DUP3 00003cfe: AND 00003cff: DUP1 00003d00: PUSH2 0x3d0a 00003d03: JUMPI 00003d04: PUSH1 0x7f 00003d06: DUP3 00003d07: AND 00003d08: SWAP2 00003d09: POP 00003d0a: JUMPDEST 00003d0b: PUSH1 0x20 00003d0d: DUP3 00003d0e: LT 00003d0f: DUP2 00003d10: SUB 00003d11: PUSH2 0x3d28 00003d14: JUMPI 00003d15: PUSH4 0x4e487b71 00003d1a: PUSH1 0xe0 00003d1c: SHL 00003d1d: PUSH0 00003d1e: MSTORE 00003d1f: PUSH1 0x22 00003d21: PUSH1 0x04 00003d23: MSTORE 00003d24: PUSH1 0x24 00003d26: PUSH0 00003d27: REVERT 00003d28: JUMPDEST 00003d29: POP 00003d2a: SWAP2 00003d2b: SWAP1 00003d2c: POP 00003d2d: JUMP 00003d2e: JUMPDEST 00003d2f: DUP1 00003d30: DUP3 00003d31: ADD 00003d32: DUP1 00003d33: DUP3 00003d34: GT 00003d35: ISZERO 00003d36: PUSH2 0x0e03 00003d39: JUMPI 00003d3a: PUSH2 0x0e03 00003d3d: PUSH2 0x3bf1 00003d40: JUMP 00003d41: JUMPDEST 00003d42: DUP2 00003d43: DUP2 00003d44: SUB 00003d45: DUP2 00003d46: DUP2 00003d47: GT 00003d48: ISZERO 00003d49: PUSH2 0x0e03 00003d4c: JUMPI 00003d4d: PUSH2 0x0e03 00003d50: PUSH2 0x3bf1 00003d53: JUMP 00003d54: JUMPDEST 00003d55: PUSH4 0x4e487b71 00003d5a: PUSH1 0xe0 00003d5c: SHL 00003d5d: PUSH0 00003d5e: MSTORE 00003d5f: PUSH1 0x32 00003d61: PUSH1 0x04 00003d63: MSTORE 00003d64: PUSH1 0x24 00003d66: PUSH0 00003d67: REVERT 00003d68: JUMPDEST 00003d69: PUSH0 00003d6a: PUSH0 00003d6b: DUP4 00003d6c: CALLDATALOAD 00003d6d: PUSH1 0x1e 00003d6f: NOT 00003d70: DUP5 00003d71: CALLDATASIZE 00003d72: SUB 00003d73: ADD 00003d74: DUP2 00003d75: SLT 00003d76: PUSH2 0x3d7d 00003d79: JUMPI 00003d7a: PUSH0 00003d7b: PUSH0 00003d7c: REVERT 00003d7d: JUMPDEST 00003d7e: DUP4 00003d7f: ADD 00003d80: DUP1 00003d81: CALLDATALOAD 00003d82: SWAP2 00003d83: POP 00003d84: PUSH8 0xffffffffffffffff 00003d8d: DUP3 00003d8e: GT 00003d8f: ISZERO 00003d90: PUSH2 0x3d97 00003d93: JUMPI 00003d94: PUSH0 00003d95: PUSH0 00003d96: REVERT 00003d97: JUMPDEST 00003d98: PUSH1 0x20 00003d9a: ADD 00003d9b: SWAP2 00003d9c: POP 00003d9d: CALLDATASIZE 00003d9e: DUP2 00003d9f: SWAP1 00003da0: SUB 00003da1: DUP3 00003da2: SGT 00003da3: ISZERO 00003da4: PUSH2 0x3605 00003da7: JUMPI 00003da8: PUSH0 00003da9: PUSH0 00003daa: REVERT 00003dab: JUMPDEST 00003dac: DUP1 00003dad: CALLDATALOAD 00003dae: PUSH1 0x01 00003db0: PUSH1 0x01 00003db2: PUSH1 0xe0 00003db4: SHL 00003db5: SUB 00003db6: NOT 00003db7: DUP2 00003db8: AND 00003db9: SWAP1 00003dba: PUSH1 0x04 00003dbc: DUP5 00003dbd: LT 00003dbe: ISZERO 00003dbf: PUSH2 0x3dda 00003dc2: JUMPI 00003dc3: PUSH1 0x01 00003dc5: PUSH1 0x01 00003dc7: PUSH1 0xe0 00003dc9: SHL 00003dca: SUB 00003dcb: NOT 00003dcc: DUP1 00003dcd: DUP6 00003dce: PUSH1 0x04 00003dd0: SUB 00003dd1: PUSH1 0x03 00003dd3: SHL 00003dd4: SHL 00003dd5: DUP3 00003dd6: AND 00003dd7: AND 00003dd8: SWAP2 00003dd9: POP 00003dda: JUMPDEST 00003ddb: POP 00003ddc: SWAP3 00003ddd: SWAP2 00003dde: POP 00003ddf: POP 00003de0: JUMP 00003de1: JUMPDEST 00003de2: PUSH0 00003de3: PUSH1 0x20 00003de5: DUP3 00003de6: DUP5 00003de7: SUB 00003de8: SLT 00003de9: ISZERO 00003dea: PUSH2 0x3df1 00003ded: JUMPI 00003dee: PUSH0 00003def: PUSH0 00003df0: REVERT 00003df1: JUMPDEST 00003df2: DUP2 00003df3: MLOAD 00003df4: DUP1 00003df5: ISZERO 00003df6: ISZERO 00003df7: DUP2 00003df8: EQ 00003df9: PUSH2 0x0e42 00003dfc: JUMPI 00003dfd: PUSH0 00003dfe: PUSH0 00003dff: REVERT 00003e00: JUMPDEST 00003e01: PUSH1 0xff 00003e03: DUP2 00003e04: DUP2 00003e05: AND 00003e06: DUP4 00003e07: DUP3 00003e08: AND 00003e09: ADD 00003e0a: SWAP1 00003e0b: DUP2 00003e0c: GT 00003e0d: ISZERO 00003e0e: PUSH2 0x0e03 00003e11: JUMPI 00003e12: PUSH2 0x0e03 00003e15: PUSH2 0x3bf1 00003e18: JUMP 00003e19: JUMPDEST 00003e1a: PUSH1 0xff 00003e1c: DUP3 00003e1d: DUP2 00003e1e: AND 00003e1f: DUP3 00003e20: DUP3 00003e21: AND 00003e22: SUB 00003e23: SWAP1 00003e24: DUP2 00003e25: GT 00003e26: ISZERO 00003e27: PUSH2 0x0e03 00003e2a: JUMPI 00003e2b: PUSH2 0x0e03 00003e2e: PUSH2 0x3bf1 00003e31: JUMP 00003e32: JUMPDEST 00003e33: DUP1 00003e34: DUP3 00003e35: MUL 00003e36: DUP2 00003e37: ISZERO 00003e38: DUP3 00003e39: DUP3 00003e3a: DIV 00003e3b: DUP5 00003e3c: EQ 00003e3d: OR 00003e3e: PUSH2 0x0e03 00003e41: JUMPI 00003e42: PUSH2 0x0e03 00003e45: PUSH2 0x3bf1 00003e48: JUMP 00003e49: JUMPDEST 00003e4a: PUSH4 0x4e487b71 00003e4f: PUSH1 0xe0 00003e51: SHL 00003e52: PUSH0 00003e53: MSTORE 00003e54: PUSH1 0x12 00003e56: PUSH1 0x04 00003e58: MSTORE 00003e59: PUSH1 0x24 00003e5b: PUSH0 00003e5c: REVERT 00003e5d: JUMPDEST 00003e5e: PUSH0 00003e5f: DUP3 00003e60: MLOAD 00003e61: PUSH2 0x3e6e 00003e64: DUP2 00003e65: DUP5 00003e66: PUSH1 0x20 00003e68: DUP8 00003e69: ADD 00003e6a: PUSH2 0x352a 00003e6d: JUMP 00003e6e: JUMPDEST 00003e6f: SWAP2 00003e70: SWAP1 00003e71: SWAP2 00003e72: ADD 00003e73: SWAP3 00003e74: SWAP2 00003e75: POP 00003e76: POP 00003e77: JUMP 00003e78: JUMPDEST 00003e79: PUSH0 00003e7a: PUSH1 0x20 00003e7c: DUP3 00003e7d: DUP5 00003e7e: SUB 00003e7f: SLT 00003e80: ISZERO 00003e81: PUSH2 0x3e88 00003e84: JUMPI 00003e85: PUSH0 00003e86: PUSH0 00003e87: REVERT 00003e88: JUMPDEST 00003e89: POP 00003e8a: MLOAD 00003e8b: SWAP2 00003e8c: SWAP1 00003e8d: POP 00003e8e: JUMP 00003e8f: JUMPDEST 00003e90: PUSH4 0x4e487b71 00003e95: PUSH1 0xe0 00003e97: SHL 00003e98: PUSH0 00003e99: MSTORE 00003e9a: PUSH1 0x21 00003e9c: PUSH1 0x04 00003e9e: MSTORE 00003e9f: PUSH1 0x24 00003ea1: PUSH0 00003ea2: REVERT 00003ea3: JUMPDEST 00003ea4: PUSH0 00003ea5: PUSH1 0xff 00003ea7: DUP4 00003ea8: AND 00003ea9: DUP1 00003eaa: PUSH2 0x3ec1 00003ead: JUMPI 00003eae: PUSH4 0x4e487b71 00003eb3: PUSH1 0xe0 00003eb5: SHL 00003eb6: PUSH0 00003eb7: MSTORE 00003eb8: PUSH1 0x12 00003eba: PUSH1 0x04 00003ebc: MSTORE 00003ebd: PUSH1 0x24 00003ebf: PUSH0 00003ec0: REVERT 00003ec1: JUMPDEST 00003ec2: DUP1 00003ec3: PUSH1 0xff 00003ec5: DUP5 00003ec6: AND 00003ec7: MOD 00003ec8: SWAP2 00003ec9: POP 00003eca: POP 00003ecb: SWAP3 00003ecc: SWAP2 00003ecd: POP 00003ece: POP 00003ecf: JUMP 00003ed0: JUMPDEST 00003ed1: PUSH1 0x1f 00003ed3: DUP3 00003ed4: GT 00003ed5: ISZERO 00003ed6: PUSH2 0x2277 00003ed9: JUMPI 00003eda: DUP1 00003edb: PUSH0 00003edc: MSTORE 00003edd: PUSH1 0x20 00003edf: PUSH0 00003ee0: KECCAK256 00003ee1: PUSH1 0x1f 00003ee3: DUP5 00003ee4: ADD 00003ee5: PUSH1 0x05 00003ee7: SHR 00003ee8: DUP2 00003ee9: ADD 00003eea: PUSH1 0x20 00003eec: DUP6 00003eed: LT 00003eee: ISZERO 00003eef: PUSH2 0x3ef5 00003ef2: JUMPI 00003ef3: POP 00003ef4: DUP1 00003ef5: JUMPDEST 00003ef6: PUSH1 0x1f 00003ef8: DUP5 00003ef9: ADD 00003efa: PUSH1 0x05 00003efc: SHR 00003efd: DUP3 00003efe: ADD 00003eff: SWAP2 00003f00: POP 00003f01: JUMPDEST 00003f02: DUP2 00003f03: DUP2 00003f04: LT 00003f05: ISZERO 00003f06: PUSH2 0x2c62 00003f09: JUMPI 00003f0a: PUSH0 00003f0b: DUP2 00003f0c: SSTORE 00003f0d: PUSH1 0x01 00003f0f: ADD 00003f10: PUSH2 0x3f01 00003f13: JUMP 00003f14: JUMPDEST 00003f15: DUP2 00003f16: MLOAD 00003f17: PUSH8 0xffffffffffffffff 00003f20: DUP2 00003f21: GT 00003f22: ISZERO 00003f23: PUSH2 0x3f2e 00003f26: JUMPI 00003f27: PUSH2 0x3f2e 00003f2a: PUSH2 0x36ac 00003f2d: JUMP 00003f2e: JUMPDEST 00003f2f: PUSH2 0x3f42 00003f32: DUP2 00003f33: PUSH2 0x3f3c 00003f36: DUP5 00003f37: SLOAD 00003f38: PUSH2 0x3cf6 00003f3b: JUMP 00003f3c: JUMPDEST 00003f3d: DUP5 00003f3e: PUSH2 0x3ed0 00003f41: JUMP 00003f42: JUMPDEST 00003f43: PUSH1 0x20 00003f45: PUSH1 0x1f 00003f47: DUP3 00003f48: GT 00003f49: PUSH1 0x01 00003f4b: DUP2 00003f4c: EQ 00003f4d: PUSH2 0x3f74 00003f50: JUMPI 00003f51: PUSH0 00003f52: DUP4 00003f53: ISZERO 00003f54: PUSH2 0x3f5d 00003f57: JUMPI 00003f58: POP 00003f59: DUP5 00003f5a: DUP3 00003f5b: ADD 00003f5c: MLOAD 00003f5d: JUMPDEST 00003f5e: PUSH0 00003f5f: NOT 00003f60: PUSH1 0x03 00003f62: DUP6 00003f63: SWAP1 00003f64: SHL 00003f65: SHR 00003f66: NOT 00003f67: AND 00003f68: PUSH1 0x01 00003f6a: DUP5 00003f6b: SWAP1 00003f6c: SHL 00003f6d: OR 00003f6e: DUP5 00003f6f: SSTORE 00003f70: PUSH2 0x2c62 00003f73: JUMP 00003f74: JUMPDEST 00003f75: PUSH0 00003f76: DUP5 00003f77: DUP2 00003f78: MSTORE 00003f79: PUSH1 0x20 00003f7b: DUP2 00003f7c: KECCAK256 00003f7d: PUSH1 0x1f 00003f7f: NOT 00003f80: DUP6 00003f81: AND 00003f82: SWAP2 00003f83: JUMPDEST 00003f84: DUP3 00003f85: DUP2 00003f86: LT 00003f87: ISZERO 00003f88: PUSH2 0x3fa3 00003f8b: JUMPI 00003f8c: DUP8 00003f8d: DUP6 00003f8e: ADD 00003f8f: MLOAD 00003f90: DUP3 00003f91: SSTORE 00003f92: PUSH1 0x20 00003f94: SWAP5 00003f95: DUP6 00003f96: ADD 00003f97: SWAP5 00003f98: PUSH1 0x01 00003f9a: SWAP1 00003f9b: SWAP3 00003f9c: ADD 00003f9d: SWAP2 00003f9e: ADD 00003f9f: PUSH2 0x3f83 00003fa2: JUMP 00003fa3: JUMPDEST 00003fa4: POP 00003fa5: DUP5 00003fa6: DUP3 00003fa7: LT 00003fa8: ISZERO 00003fa9: PUSH2 0x3fc0 00003fac: JUMPI 00003fad: DUP7 00003fae: DUP5 00003faf: ADD 00003fb0: MLOAD 00003fb1: PUSH0 00003fb2: NOT 00003fb3: PUSH1 0x03 00003fb5: DUP8 00003fb6: SWAP1 00003fb7: SHL 00003fb8: PUSH1 0xf8 00003fba: AND 00003fbb: SHR 00003fbc: NOT 00003fbd: AND 00003fbe: DUP2 00003fbf: SSTORE 00003fc0: JUMPDEST 00003fc1: POP 00003fc2: POP 00003fc3: POP 00003fc4: POP 00003fc5: PUSH1 0x01 00003fc7: SWAP1 00003fc8: DUP2 00003fc9: SHL 00003fca: ADD 00003fcb: SWAP1 00003fcc: SSTORE 00003fcd: POP 00003fce: JUMP 00003fcf: INVALID 00003fd0: LOG1 00003fd1: PUSH5 0x736f6c6343 00003fd7: STOP 00003fd8: ADDMOD 00003fd9: SHR 00003fda: STOP 00003fdb: EXP
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | slither | YoVault_V2.feeOnWithdraw (src/YoVault_V2.sol#66) is never initialized. It is used in: | 85 | no | — |
viewevidence_json{
"impact": "High",
"detector": "uninitialized-state",
"elements": [
{
"name": "feeOnWithdraw",
"type": "variable",
"source_mapping": {
"lines": [
66
],
"start": 3719,
"length": 28,
"ending_column": 33,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
},
"type_specific_fields": {
"parent": {
"name": "YoVault_V2",
"type": "contract",
"source_mapping": {
"lines": [
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
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
],
"start": 1779,
"length": 17516,
"ending_column": 2,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
}
}
}
},
{
"name": "previewWithdraw",
"type": "function",
"source_mapping": {
"lines": [
321,
322,
323,
324
],
"start": 15799,
"length": 203,
"ending_column": 6,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
},
"type_specific_fields": {
"parent": {
"name": "YoVault_V2",
"type": "contract",
"source_mapping": {
"lines": [
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
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
],
"start": 1779,
"length": 17516,
"ending_column": 2,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
}
},
"signature": "previewWithdraw(uint256)"
}
},
{
"name": "previewRedeem",
"type": "function",
"source_mapping": {
"lines": [
327,
328,
329,
330
],
"start": 16089,
"length": 207,
"ending_column": 6,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
},
"type_specific_fields": {
"parent": {
"name": "YoVault_V2",
"type": "contract",
"source_mapping": {
"lines": [
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
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
],
"start": 1779,
"length": 17516,
"ending_column": 2,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
}
},
"signature": "previewRedeem(uint256)"
}
},
{
"name": "_withdraw",
"type": "function",
"source_mapping": {
"lines": [
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377
],
"start": 17176,
"length": 541,
"ending_column": 6,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
},
"type_specific_fields": {
"parent": {
"name": "YoVault_V2",
"type": "contract",
"source_mapping": {
"lines": [
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
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
],
"start": 1779,
"length": 17516,
"ending_column": 2,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
}
},
"signature": "_withdraw(address,address,address,uint256,uint256)"
}
}
],
"locations": [
{
"file": "src/YoVault_V2.sol",
"name": "feeOnWithdraw",
"type": "variable",
"lines": [
66
]
},
{
"file": "src/YoVault_V2.sol",
"name": "previewWithdraw",
"type": "function",
"lines": [
321,
322,
323,
324
]
},
{
"file": "src/YoVault_V2.sol",
"name": "previewRedeem",
"type": "function",
"lines": [
327,
328,
329,
330
]
},
{
"file": "src/YoVault_V2.sol",
"name": "_withdraw",
"type": "function",
"lines": [
361,
362,
363,
364,
365,
366,
367,
368,
369,
370,
371,
372,
373,
374,
375,
376,
377
]
}
],
"description": "YoVault_V2.feeOnWithdraw (src/YoVault_V2.sol#66) is never initialized. It is used in:\n\t- YoVault_V2.previewWithdraw(uint256) (src/YoVault_V2.sol#321-324)\n\t- YoVault_V2.previewRedeem(uint256) (src/YoVault_V2.sol#327-330)\n\t- YoVault_V2._withdraw(address,address,address,uint256,uint256) (src/YoVault_V2.sol#361-377)"
}
|
| high | other | slither | YoVault_V2._pendingRedeem (src/YoVault_V2.sol#73) is never initialized. It is used in: | 85 | no | — |
viewevidence_json{
"impact": "High",
"detector": "uninitialized-state",
"elements": [
{
"name": "_pendingRedeem",
"type": "variable",
"source_mapping": {
"lines": [
73
],
"start": 4137,
"length": 69,
"ending_column": 74,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
},
"type_specific_fields": {
"parent": {
"name": "YoVault_V2",
"type": "contract",
"source_mapping": {
"lines": [
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
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
],
"start": 1779,
"length": 17516,
"ending_column": 2,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
}
}
}
},
{
"name": "fulfillRedeem",
"type": "function",
"source_mapping": {
"lines": [
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194
],
"start": 8888,
"length": 724,
"ending_column": 6,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
},
"type_specific_fields": {
"parent": {
"name": "YoVault_V2",
"type": "contract",
"source_mapping": {
"lines": [
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
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
],
"start": 1779,
"length": 17516,
"ending_column": 2,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
}
},
"signature": "fulfillRedeem(address,uint256,uint256)"
}
},
{
"name": "cancelRedeem",
"type": "function",
"source_mapping": {
"lines": [
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212
],
"start": 9907,
"length": 660,
"ending_column": 6,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
},
"type_specific_fields": {
"parent": {
"name": "YoVault_V2",
"type": "contract",
"source_mapping": {
"lines": [
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
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
],
"start": 1779,
"length": 17516,
"ending_column": 2,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
}
},
"signature": "cancelRedeem(address,uint256,uint256)"
}
},
{
"name": "pendingRedeemRequest",
"type": "function",
"source_mapping": {
"lines": [
252,
253,
254
],
"start": 12379,
"length": 186,
"ending_column": 6,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
},
"type_specific_fields": {
"parent": {
"name": "YoVault_V2",
"type": "contract",
"source_mapping": {
"lines": [
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
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
],
"start": 1779,
"length": 17516,
"ending_column": 2,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
}
},
"signature": "pendingRedeemRequest(address)"
}
}
],
"locations": [
{
"file": "src/YoVault_V2.sol",
"name": "_pendingRedeem",
"type": "variable",
"lines": [
73
]
},
{
"file": "src/YoVault_V2.sol",
"name": "fulfillRedeem",
"type": "function",
"lines": [
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194
]
},
{
"file": "src/YoVault_V2.sol",
"name": "cancelRedeem",
"type": "function",
"lines": [
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212
]
},
{
"file": "src/YoVault_V2.sol",
"name": "pendingRedeemRequest",
"type": "function",
"lines": [
252,
253,
254
]
}
],
"description": "YoVault_V2._pendingRedeem (src/YoVault_V2.sol#73) is never initialized. It is used in:\n\t- YoVault_V2.fulfillRedeem(address,uint256,uint256) (src/YoVault_V2.sol#182-194)\n\t- YoVault_V2.cancelRedeem(address,uint256,uint256) (src/YoVault_V2.sol#200-212)\n\t- YoVault_V2.pendingRedeemRequest(address) (src/YoVault_V2.sol#252-254)"
}
|
| high | other | slither | YoVault_V2.totalPendingAssets (src/YoVault_V2.sol#61) is never initialized. It is used in: | 85 | no | — |
viewevidence_json{
"impact": "High",
"detector": "uninitialized-state",
"elements": [
{
"name": "totalPendingAssets",
"type": "variable",
"source_mapping": {
"lines": [
61
],
"start": 3348,
"length": 33,
"ending_column": 38,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
},
"type_specific_fields": {
"parent": {
"name": "YoVault_V2",
"type": "contract",
"source_mapping": {
"lines": [
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
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
],
"start": 1779,
"length": 17516,
"ending_column": 2,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
}
}
}
},
{
"name": "_getAvailableBalance",
"type": "function",
"source_mapping": {
"lines": [
406,
407,
408,
409
],
"start": 19074,
"length": 219,
"ending_column": 6,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
},
"type_specific_fields": {
"parent": {
"name": "YoVault_V2",
"type": "contract",
"source_mapping": {
"lines": [
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
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
],
"start": 1779,
"length": 17516,
"ending_column": 2,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
}
},
"signature": "_getAvailableBalance()"
}
}
],
"locations": [
{
"file": "src/YoVault_V2.sol",
"name": "totalPendingAssets",
"type": "variable",
"lines": [
61
]
},
{
"file": "src/YoVault_V2.sol",
"name": "_getAvailableBalance",
"type": "function",
"lines": [
406,
407,
408,
409
]
}
],
"description": "YoVault_V2.totalPendingAssets (src/YoVault_V2.sol#61) is never initialized. It is used in:\n\t- YoVault_V2._getAvailableBalance() (src/YoVault_V2.sol#406-409)"
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x6c3f5739bdc6e6b28074511d8cdc570b3c5eb4799056b191df5ed68df17915af
call_targets:
0xf59c19eb032ff3301b6695b58303470a79098771
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x6c3f5739bdc6e6b28074511d8cdc570b3c5eb4799056b191df5ed68df17915af",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xf59c19eb032ff3301b6695b58303470a79098771"
],
"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": "0xf23a6e61",
"selector": "0xf23a6e61",
"calldata_variants": [
"0xf23a6e61",
"0xf23a6e610000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf6e715d0",
"selector": "0xf6e715d0",
"calldata_variants": [
"0xf6e715d0",
"0xf6e715d00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfcfc430c",
"selector": "0xfcfc430c",
"calldata_variants": [
"0xfcfc430c",
"0xfcfc430c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xef8b30f7",
"selector": "0xef8b30f7",
"calldata_variants": [
"0xef8b30f7",
"0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf160d369",
"selector": "0xf160d369",
"calldata_variants": [
"0xf160d369",
"0xf160d3690000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xce96cb77",
"selector": "0xce96cb77",
"calldata_variants": [
"0xce96cb77",
"0xce96cb770000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 9345,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 13216,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "constant_zero",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [],
"untrusted_call_count": 2
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x6c3f5739bdc6e6b28074511d8cdc570b3c5eb4799056b191df5ed68df17915af
call_targets:
0xf59c19eb032ff3301b6695b58303470a79098771
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x6c3f5739bdc6e6b28074511d8cdc570b3c5eb4799056b191df5ed68df17915af",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xf59c19eb032ff3301b6695b58303470a79098771"
],
"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": "0xf23a6e61",
"selector": "0xf23a6e61",
"calldata_variants": [
"0xf23a6e61",
"0xf23a6e610000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf6e715d0",
"selector": "0xf6e715d0",
"calldata_variants": [
"0xf6e715d0",
"0xf6e715d00000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfcfc430c",
"selector": "0xfcfc430c",
"calldata_variants": [
"0xfcfc430c",
"0xfcfc430c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xef8b30f7",
"selector": "0xef8b30f7",
"calldata_variants": [
"0xef8b30f7",
"0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf160d369",
"selector": "0xf160d369",
"calldata_variants": [
"0xf160d369",
"0xf160d3690000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xce96cb77",
"selector": "0xce96cb77",
"calldata_variants": [
"0xce96cb77",
"0xce96cb770000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 9345,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 1,
"guards_detected": []
}
|
| high | upgradeability | slither | ERC4626Upgradeable._deposit(address,address,uint256,uint256) (node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol#262-275) uses arbitr... | 85 | no | — |
viewevidence_json{
"impact": "High",
"detector": "arbitrary-send-erc20",
"elements": [
{
"name": "_deposit",
"type": "function",
"source_mapping": {
"lines": [
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275
],
"start": 11631,
"length": 890,
"ending_column": 6,
"is_dependency": true,
"filename_short": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-d3pl_vhl/node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol",
"filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol"
},
"type_specific_fields": {
"parent": {
"name": "ERC4626Upgradeable",
"type": "contract",
"source_mapping": {
"lines": [
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
290,
291,
292,
293,
294,
295,
296,
297,
298,
299,
300,
301,
302,
303,
304,
305,
306,
307
],
"start": 3569,
"length": 10091,
"ending_column": 2,
"is_dependency": true,
"filename_short": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-d3pl_vhl/node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol",
"filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol"
}
},
"signature": "_deposit(address,address,uint256,uint256)"
}
},
{
"name": "SafeERC20.safeTransferFrom($._asset,caller,address(this),assets)",
"type": "node",
"source_mapping": {
"lines": [
271
],
"start": 12357,
"length": 67,
"ending_column": 76,
"is_dependency": true,
"filename_short": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol",
"starting_column": 9,
"filename_absolute": "/tmp/slither-d3pl_vhl/node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol",
"filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol"
},
"type_specific_fields": {
"parent": {
"name": "_deposit",
"type": "function",
"source_mapping": {
"lines": [
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275
],
"start": 11631,
"length": 890,
"ending_column": 6,
"is_dependency": true,
"filename_short": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-d3pl_vhl/node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol",
"filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol"
},
"type_specific_fields": {
"parent": {
"name": "ERC4626Upgradeable",
"type": "contract",
"source_mapping": {
"lines": [
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
290,
291,
292,
293,
294,
295,
296,
297,
298,
299,
300,
301,
302,
303,
304,
305,
306,
307
],
"start": 3569,
"length": 10091,
"ending_column": 2,
"is_dependency": true,
"filename_short": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-d3pl_vhl/node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol",
"filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol"
}
},
"signature": "_deposit(address,address,uint256,uint256)"
}
}
}
}
],
"locations": [
{
"file": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol",
"name": "_deposit",
"type": "function",
"lines": [
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275
]
},
{
"file": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol",
"name": "SafeERC20.safeTransferFrom($._asset,caller,address(this),assets)",
"type": "node",
"lines": [
271
]
}
],
"description": "ERC4626Upgradeable._deposit(address,address,uint256,uint256) (node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol#262-275) uses arbitrary from in transferFrom: SafeERC20.safeTransferFrom($._asset,caller,address(this),assets) (node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol#271)"
}
|
| high | other | slither | YoVault_V2.feeOnDeposit (src/YoVault_V2.sol#68) is never initialized. It is used in: | 85 | no | — |
viewevidence_json{
"impact": "High",
"detector": "uninitialized-state",
"elements": [
{
"name": "feeOnDeposit",
"type": "variable",
"source_mapping": {
"lines": [
68
],
"start": 3842,
"length": 27,
"ending_column": 32,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
},
"type_specific_fields": {
"parent": {
"name": "YoVault_V2",
"type": "contract",
"source_mapping": {
"lines": [
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
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
],
"start": 1779,
"length": 17516,
"ending_column": 2,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
}
}
}
},
{
"name": "previewDeposit",
"type": "function",
"source_mapping": {
"lines": [
309,
310,
311,
312
],
"start": 15222,
"length": 202,
"ending_column": 6,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
},
"type_specific_fields": {
"parent": {
"name": "YoVault_V2",
"type": "contract",
"source_mapping": {
"lines": [
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
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
],
"start": 1779,
"length": 17516,
"ending_column": 2,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
}
},
"signature": "previewDeposit(uint256)"
}
},
{
"name": "previewMint",
"type": "function",
"source_mapping": {
"lines": [
315,
316,
317,
318
],
"start": 15508,
"length": 200,
"ending_column": 6,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
},
"type_specific_fields": {
"parent": {
"name": "YoVault_V2",
"type": "contract",
"source_mapping": {
"lines": [
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
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
],
"start": 1779,
"length": 17516,
"ending_column": 2,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
}
},
"signature": "previewMint(uint256)"
}
},
{
"name": "_deposit",
"type": "function",
"source_mapping": {
"lines": [
379,
380,
381,
382,
383,
384,
385,
386,
387,
388
],
"start": 17723,
"length": 404,
"ending_column": 6,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
},
"type_specific_fields": {
"parent": {
"name": "YoVault_V2",
"type": "contract",
"source_mapping": {
"lines": [
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
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
],
"start": 1779,
"length": 17516,
"ending_column": 2,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
}
},
"signature": "_deposit(address,address,uint256,uint256)"
}
}
],
"locations": [
{
"file": "src/YoVault_V2.sol",
"name": "feeOnDeposit",
"type": "variable",
"lines": [
68
]
},
{
"file": "src/YoVault_V2.sol",
"name": "previewDeposit",
"type": "function",
"lines": [
309,
310,
311,
312
]
},
{
"file": "src/YoVault_V2.sol",
"name": "previewMint",
"type": "function",
"lines": [
315,
316,
317,
318
]
},
{
"file": "src/YoVault_V2.sol",
"name": "_deposit",
"type": "function",
"lines": [
379,
380,
381,
382,
383,
384,
385,
386,
387,
388
]
}
],
"description": "YoVault_V2.feeOnDeposit (src/YoVault_V2.sol#68) is never initialized. It is used in:\n\t- YoVault_V2.previewDeposit(uint256) (src/YoVault_V2.sol#309-312)\n\t- YoVault_V2.previewMint(uint256) (src/YoVault_V2.sol#315-318)\n\t- YoVault_V2._deposit(address,address,uint256,uint256) (src/YoVault_V2.sol#379-388)"
}
|
| medium | other | slither | Contract locking ether found: | 75 | no | — |
viewevidence_json{
"impact": "Medium",
"detector": "locked-ether",
"elements": [
{
"name": "YoVault_V2",
"type": "contract",
"source_mapping": {
"lines": [
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
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
],
"start": 1779,
"length": 17516,
"ending_column": 2,
"is_dependency": false,
"filename_short": "src/YoVault_V2.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/YoVault_V2.sol",
"filename_relative": "src/YoVault_V2.sol"
}
},
{
"name": "receive",
"type": "function",
"source_mapping": {
"lines": [
12,
13,
14
],
"start": 424,
"length": 80,
"ending_column": 6,
"is_dependency": false,
"filename_short": "src/base/Compatible.sol",
"starting_column": 5,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/base/Compatible.sol",
"filename_relative": "src/base/Compatible.sol"
},
"type_specific_fields": {
"parent": {
"name": "Compatible",
"type": "contract",
"source_mapping": {
"lines": [
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37
],
"start": 174,
"length": 940,
"ending_column": 2,
"is_dependency": false,
"filename_short": "src/base/Compatible.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-d3pl_vhl/src/base/Compatible.sol",
"filename_relative": "src/base/Compatible.sol"
}
},
"signature": "receive()"
}
}
],
"locations": [
{
"file": "src/YoVault_V2.sol",
"name": "YoVault_V2",
"type": "contract",
"lines": [
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
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
]
},
{
"file": "src/base/Compatible.sol",
"name": "receive",
"type": "function",
"lines": [
12,
13,
14
]
}
],
"description": "Contract locking ether found:\n\tContract YoVault_V2 (src/YoVault_V2.sol#31-410) has payable functions:\n\t - Compatible.receive() (src/base/Compatible.sol#12-14)\n\tBut does not have a function to withdraw the ether"
}
|
| medium | oracle | codex | Oracle price trusted without freshness/sanity checks for share/asset accounting | 75 | no | — |
viewevidence_json{
"evidence": "Price from IYoOracle is used directly for totalAssets and share/asset conversions without checking timestamps or bounds.",
"locations": [
"src/YoVault_V2.sol:240",
"src/YoVault_V2.sol:285",
"src/YoVault_V2.sol:293",
"src/YoVault_V2.sol:151"
],
"recommendation": "Validate oracle timestamps and enforce staleness/max-change bounds before using prices. Consider circuit breakers or pausing on abnormal changes, and/or governance-controlled oracle updates. Use anchor/median checks or onchain price bounds to reduce manipulation risk.",
"exploit_scenario": "If the oracle price is stale or manipulated, an attacker can mint shares cheaply (price low) or lock in an inflated asset amount via requestRedeem (price high) and later redeem for more assets than backing exists, draining the vault. totalAssets also reflects the oracle price directly, amplifying mispricing effects across deposits/withdrawals."
}
|
| medium | other | codex | Redeem fulfillment allows asset/share mismatches and zero-share payouts | 75 | no | — |
viewevidence_json{
"evidence": "fulfillRedeem/cancelRedeem only check upper bounds and do not enforce asset/share ratio or nonzero shares; shares can be zero.",
"locations": [
"src/YoVault_V2.sol:182",
"src/YoVault_V2.sol:200"
],
"recommendation": "Require shares>0 and assetsWithFee>0, and enforce proportionality between shares and assets based on stored pending amounts (e.g., assetsWithFee must equal pending.assets * shares / pending.shares with rounding rules). Ensure pending.assets and pending.shares reach zero together to avoid stranded balances.",
"exploit_scenario": "An authorized operator can call fulfillRedeem with shares=0 and assetsWithFee>0, transferring assets without burning shares. They can later cancel to return shares, effectively overpaying the receiver, or create states where pending.shares=0 but pending.assets>0, locking totalPendingAssets and breaking availability checks. This enables insolvency or stuck funds if the operator is malicious or misconfigured."
}
|
| 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": 12
}
|