Smart Contract Repository
ClipperVerifiedCaravelExchange

ClipperVerifiedCaravelExchange

Deploy on Alchemy

Contract Information

Explore the source code, ABI, and bytecode for the ClipperVerifiedCaravelExchange smart contract.
More Info

ClipperVerifiedCaravelExchange Source Code

ClipperVerifiedCaravelExchange ABI

[{"inputs":[{"internalType":"address","name":"theSigner","type":"address"},{"internalType":"address","name":"theWrapper","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"int256","name":"x","type":"int256"}],"name":"PRBMathSD59x18__Exp2InputTooBig","type":"error"},{"inputs":[{"internalType":"int256","name":"x","type":"int256"}],"name":"PRBMathSD59x18__LogInputTooSmall","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"withdrawer","type":"address"},{"indexed":false,"internalType":"uint256","name":"poolTokens","type":"uint256"},{"indexed":true,"internalType":"address","name":"assetAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"assetAmount","type":"uint256"}],"name":"AssetWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"depositor","type":"address"},{"indexed":false,"internalType":"uint256","name":"poolTokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"nDays","type":"uint256"}],"name":"Deposited","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"inAsset","type":"address"},{"indexed":true,"internalType":"address","name":"outAsset","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"inAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"outAmount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"auxiliaryData","type":"bytes"}],"name":"Swapped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"withdrawer","type":"address"},{"indexed":false,"internalType":"uint256","name":"poolTokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fractionOfPool","type":"uint256"}],"name":"Withdrawn","type":"event"},{"inputs":[],"name":"DESIGNATED_SIGNER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WRAPPER_CONTRACT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"addAsset","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"allTokensBalance","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnToWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"theAddress","type":"address"}],"name":"canUnlockDeposit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256[]","name":"depositAmounts","type":"uint256[]"},{"internalType":"uint256","name":"nDays","type":"uint256"},{"internalType":"uint256","name":"poolTokens","type":"uint256"},{"internalType":"uint256","name":"goodUntil","type":"uint256"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct ClipperCommonExchange.Signature","name":"theSignature","type":"tuple"}],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"inputToken","type":"address"},{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"uint256","name":"nDays","type":"uint256"},{"internalType":"uint256","name":"poolTokens","type":"uint256"},{"internalType":"uint256","name":"goodUntil","type":"uint256"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct ClipperCommonExchange.Signature","name":"theSignature","type":"tuple"}],"name":"depositSingleAsset","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getLastBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"isToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"outputToken","type":"address"},{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"uint256","name":"outputAmount","type":"uint256"},{"internalType":"uint256","name":"goodUntil","type":"uint256"},{"internalType":"address","name":"destinationAddress","type":"address"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct ClipperCommonExchange.Signature","name":"theSignature","type":"tuple"},{"internalType":"bytes","name":"auxiliaryData","type":"bytes"}],"name":"sellEthForToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"inputToken","type":"address"},{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"uint256","name":"outputAmount","type":"uint256"},{"internalType":"uint256","name":"goodUntil","type":"uint256"},{"internalType":"address","name":"destinationAddress","type":"address"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct ClipperCommonExchange.Signature","name":"theSignature","type":"tuple"},{"internalType":"bytes","name":"auxiliaryData","type":"bytes"}],"name":"sellTokenForEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"inputToken","type":"address"},{"internalType":"address","name":"outputToken","type":"address"},{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"uint256","name":"outputAmount","type":"uint256"},{"internalType":"uint256","name":"goodUntil","type":"uint256"},{"internalType":"address","name":"destinationAddress","type":"address"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct ClipperCommonExchange.Signature","name":"theSignature","type":"tuple"},{"internalType":"bytes","name":"auxiliaryData","type":"bytes"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"i","type":"uint256"}],"name":"tokenAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"depositAmounts","type":"uint256[]"},{"internalType":"uint256","name":"nDays","type":"uint256"},{"internalType":"uint256","name":"poolTokens","type":"uint256"},{"internalType":"uint256","name":"goodUntil","type":"uint256"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct ClipperCommonExchange.Signature","name":"theSignature","type":"tuple"}],"name":"transmitAndDeposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"inputToken","type":"address"},{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"uint256","name":"nDays","type":"uint256"},{"internalType":"uint256","name":"poolTokens","type":"uint256"},{"internalType":"uint256","name":"goodUntil","type":"uint256"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct ClipperCommonExchange.Signature","name":"theSignature","type":"tuple"}],"name":"transmitAndDepositSingleAsset","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"inputToken","type":"address"},{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"uint256","name":"outputAmount","type":"uint256"},{"internalType":"uint256","name":"goodUntil","type":"uint256"},{"internalType":"address","name":"destinationAddress","type":"address"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct ClipperCommonExchange.Signature","name":"theSignature","type":"tuple"},{"internalType":"bytes","name":"auxiliaryData","type":"bytes"}],"name":"transmitAndSellTokenForEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"inputToken","type":"address"},{"internalType":"address","name":"outputToken","type":"address"},{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"uint256","name":"outputAmount","type":"uint256"},{"internalType":"uint256","name":"goodUntil","type":"uint256"},{"internalType":"address","name":"destinationAddress","type":"address"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct ClipperCommonExchange.Signature","name":"theSignature","type":"tuple"},{"internalType":"bytes","name":"auxiliaryData","type":"bytes"}],"name":"transmitAndSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlockDeposit","outputs":[{"internalType":"uint256","name":"poolTokens","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"packedGoodUntil","type":"uint256"}],"name":"unpackGoodUntil","outputs":[{"internalType":"uint256","name":"pX","type":"uint256"},{"internalType":"uint256","name":"pY","type":"uint256"},{"internalType":"uint256","name":"wX","type":"uint256"},{"internalType":"uint256","name":"wY","type":"uint256"},{"internalType":"uint256","name":"k","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"vestingDeposits","outputs":[{"internalType":"uint256","name":"lockedUntil","type":"uint256"},{"internalType":"uint256","name":"poolTokenAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenHolder","type":"address"},{"internalType":"uint256","name":"poolTokenAmountToBurn","type":"uint256"},{"internalType":"address","name":"assetAddress","type":"address"},{"internalType":"uint256","name":"assetAmount","type":"uint256"},{"internalType":"uint256","name":"goodUntil","type":"uint256"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct ClipperCommonExchange.Signature","name":"theSignature","type":"tuple"}],"name":"withdrawSingleAsset","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
[{"inputs":[{"internalType":"address","name":"theSigner","type":"address"},{"internalType":"address","name":"theWrapper","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"int256","name":"x","type":"int256"}],"name":"PRBMathSD59x18__Exp2InputTooBig","type":"error"},{"inputs":[{"internalType":"int256","name":"x","type":"int256"}],"name":"PRBMathSD59x18__LogInputTooSmall","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"withdrawer","type":"address"},{"indexed":false,"internalType":"uint256","name":"poolTokens","type":"uint256"},{"indexed":true,"internalType":"address","name":"assetAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"assetAmount","type":"uint256"}],"name":"AssetWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"depositor","type":"address"},{"indexed":false,"internalType":"uint256","name":"poolTokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"nDays","type":"uint256"}],"name":"Deposited","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"inAsset","type":"address"},{"indexed":true,"internalType":"address","name":"outAsset","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"inAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"outAmount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"auxiliaryData","type":"bytes"}],"name":"Swapped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"withdrawer","type":"address"},{"indexed":false,"internalType":"uint256","name":"poolTokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fractionOfPool","type":"uint256"}],"name":"Withdrawn","type":"event"},{"inputs":[],"name":"DESIGNATED_SIGNER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WRAPPER_CONTRACT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"addAsset","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"allTokensBalance","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnToWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"theAddress","type":"address"}],"name":"canUnlockDeposit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256[]","name":"depositAmounts","type":"uint256[]"},{"internalType":"uint256","name":"nDays","type":"uint256"},{"internalType":"uint256","name":"poolTokens","type":"uint256"},{"internalType":"uint256","name":"goodUntil","type":"uint256"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct ClipperCommonExchange.Signature","name":"theSignature","type":"tuple"}],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"inputToken","type":"address"},{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"uint256","name":"nDays","type":"uint256"},{"internalType":"uint256","name":"poolTokens","type":"uint256"},{"internalType":"uint256","name":"goodUntil","type":"uint256"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct ClipperCommonExchange.Signature","name":"theSignature","type":"tuple"}],"name":"depositSingleAsset","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getLastBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"isToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"outputToken","type":"address"},{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"uint256","name":"outputAmount","type":"uint256"},{"internalType":"uint256","name":"goodUntil","type":"uint256"},{"internalType":"address","name":"destinationAddress","type":"address"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct ClipperCommonExchange.Signature","name":"theSignature","type":"tuple"},{"internalType":"bytes","name":"auxiliaryData","type":"bytes"}],"name":"sellEthForToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"inputToken","type":"address"},{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"uint256","name":"outputAmount","type":"uint256"},{"internalType":"uint256","name":"goodUntil","type":"uint256"},{"internalType":"address","name":"destinationAddress","type":"address"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct ClipperCommonExchange.Signature","name":"theSignature","type":"tuple"},{"internalType":"bytes","name":"auxiliaryData","type":"bytes"}],"name":"sellTokenForEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"inputToken","type":"address"},{"internalType":"address","name":"outputToken","type":"address"},{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"uint256","name":"outputAmount","type":"uint256"},{"internalType":"uint256","name":"goodUntil","type":"uint256"},{"internalType":"address","name":"destinationAddress","type":"address"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct ClipperCommonExchange.Signature","name":"theSignature","type":"tuple"},{"internalType":"bytes","name":"auxiliaryData","type":"bytes"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"i","type":"uint256"}],"name":"tokenAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"depositAmounts","type":"uint256[]"},{"internalType":"uint256","name":"nDays","type":"uint256"},{"internalType":"uint256","name":"poolTokens","type":"uint256"},{"internalType":"uint256","name":"goodUntil","type":"uint256"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct ClipperCommonExchange.Signature","name":"theSignature","type":"tuple"}],"name":"transmitAndDeposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"inputToken","type":"address"},{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"uint256","name":"nDays","type":"uint256"},{"internalType":"uint256","name":"poolTokens","type":"uint256"},{"internalType":"uint256","name":"goodUntil","type":"uint256"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct ClipperCommonExchange.Signature","name":"theSignature","type":"tuple"}],"name":"transmitAndDepositSingleAsset","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"inputToken","type":"address"},{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"uint256","name":"outputAmount","type":"uint256"},{"internalType":"uint256","name":"goodUntil","type":"uint256"},{"internalType":"address","name":"destinationAddress","type":"address"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct ClipperCommonExchange.Signature","name":"theSignature","type":"tuple"},{"internalType":"bytes","name":"auxiliaryData","type":"bytes"}],"name":"transmitAndSellTokenForEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"inputToken","type":"address"},{"internalType":"address","name":"outputToken","type":"address"},{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"uint256","name":"outputAmount","type":"uint256"},{"internalType":"uint256","name":"goodUntil","type":"uint256"},{"internalType":"address","name":"destinationAddress","type":"address"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct ClipperCommonExchange.Signature","name":"theSignature","type":"tuple"},{"internalType":"bytes","name":"auxiliaryData","type":"bytes"}],"name":"transmitAndSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlockDeposit","outputs":[{"internalType":"uint256","name":"poolTokens","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"packedGoodUntil","type":"uint256"}],"name":"unpackGoodUntil","outputs":[{"internalType":"uint256","name":"pX","type":"uint256"},{"internalType":"uint256","name":"pY","type":"uint256"},{"internalType":"uint256","name":"wX","type":"uint256"},{"internalType":"uint256","name":"wY","type":"uint256"},{"internalType":"uint256","name":"k","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"vestingDeposits","outputs":[{"internalType":"uint256","name":"lockedUntil","type":"uint256"},{"internalType":"uint256","name":"poolTokenAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenHolder","type":"address"},{"internalType":"uint256","name":"poolTokenAmountToBurn","type":"uint256"},{"internalType":"address","name":"assetAddress","type":"address"},{"internalType":"uint256","name":"assetAmount","type":"uint256"},{"internalType":"uint256","name":"goodUntil","type":"uint256"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct ClipperCommonExchange.Signature","name":"theSignature","type":"tuple"}],"name":"withdrawSingleAsset","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

ClipperVerifiedCaravelExchange Bytecode

60e06040523480156200001157600080fd5b506040516200559f3803806200559f83398101604081905262000034916200072f565b8282828282826040518060400160405280601881526020017f436c697070657244697265637420506f6f6c20546f6b656e00000000000000008152506040518060400160405280600881526020016710d314149114941360c21b8152508160039080519060200190620000a992919062000676565b508051620000bf90600490602084019062000676565b50506001600555506001600160601b0319606084901b1660805280516000905b8082101562000141576200012b8383815181106200010d57634e487b7160e01b600052603260045260246000fd5b602002602001015160076200022760201b62001d271790919060201c565b5081620001388162000917565b925050620000df565b620001966040518060400160405280600d81526020016c10db1a5c1c195c911a5c9958dd609a1b815250604051806040016040528060058152602001640312e302e360dc1b815250306200024760201b60201c565b60c05250505060601b6001600160601b03191660a05250620001bf620001b93390565b62000374565b50505060005b81518110156200021d5762000208828281518110620001f457634e487b7160e01b600052603260045260246000fd5b6020026020010151620003c660201b60201c565b80620002148162000917565b915050620001c5565b5050505062000961565b60006200023e836001600160a01b0384166200046e565b90505b92915050565b6000604051602001620002be907f454950373132446f6d61696e28737472696e67206e616d652c737472696e672081527f76657273696f6e2c75696e7432353620636861696e49642c6164647265737320602082015271766572696679696e67436f6e74726163742960701b604082015260520190565b6040516020818303038152906040528051906020012084604051602001620002e791906200086e565b60405160208183030381529060405280519060200120846040516020016200031091906200086e565b60408051601f1981840301815282825280516020918201209083019490945281019190915260608101919091524660808201526001600160a01b03831660a082015260c0016040516020818303038152906040528051906020012090509392505050565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62000452816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156200040457600080fd5b505afa15801562000419573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200043f919062000844565b60006200044c84620004c0565b62000598565b6001600160a01b03909116600090815260066020526040902055565b6000818152600183016020526040812054620004b75750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000241565b50600062000241565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b1790529051600091829182916001600160a01b038616916200051991906200086e565b600060405180830381855afa9150503d806000811462000556576040519150601f19603f3d011682016040523d82523d6000602084013e6200055b565b606091505b50915091508180156200057057506020815110155b6200057a57600080fd5b808060200190518101906200059091906200082b565b949350505050565b6000620005b0826200060460201b62001d3c1760201c565b6001600160d81b0316620005f863ffffffff60d81b60d886901b167fff0000000000000000000000000000000000000000000000000000000000000060f888901b166200088c565b6200059091906200088c565b60006001600160d81b03821115620006725760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663136206269747360c81b606482015260840160405180910390fd5b5090565b8280546200068490620008da565b90600052602060002090601f016020900481019282620006a85760008555620006f3565b82601f10620006c357805160ff1916838001178555620006f3565b82800160010185558215620006f3579182015b82811115620006f3578251825591602001919060010190620006d6565b50620006729291505b80821115620006725760008155600101620006fc565b80516001600160a01b03811681146200072a57600080fd5b919050565b60008060006060848603121562000744578283fd5b6200074f8462000712565b925060206200076081860162000712565b60408601519093506001600160401b03808211156200077d578384fd5b818701915087601f83011262000791578384fd5b815181811115620007a657620007a66200094b565b8060051b604051601f19603f83011681018181108582111715620007ce57620007ce6200094b565b604052828152858101935084860182860187018c1015620007ed578788fd5b8795505b838610156200081a57620008058162000712565b855260019590950194938601938601620007f1565b508096505050505050509250925092565b6000602082840312156200083d578081fd5b5051919050565b60006020828403121562000856578081fd5b815160ff8116811462000867578182fd5b9392505050565b6000825162000882818460208701620008a7565b9190910192915050565b60008219821115620008a257620008a262000935565b500190565b60005b83811015620008c4578181015183820152602001620008aa565b83811115620008d4576000848401525b50505050565b600181811c90821680620008ef57607f821691505b602082108114156200091157634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156200092e576200092e62000935565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60805160601c60a05160601c60c051614b7562000a2a600039600081816121fa01526129e301526000818161050d01528181610a5301528181610a7f01528181610acd01528181610b1801528181610b710152818161111c0152818161119e015281816111f10152818161122c015281816112a601528181611327015281816115a2015281816116110152818161173901528181611aaa01528181611af901528181611b4c01528181611b870152611c010152600081816105f5015261229f0152614b756000f3fe6080604052600436106102295760003560e01c80635250d7301161012357806395d89b41116100ab578063c72da66a1161006f578063c72da66a146106f5578063dd62ed3e14610715578063eb1c645314610735578063ecc7633d14610755578063f2fde38b1461078257600080fd5b806395d89b4114610637578063a457c2d71461064c578063a9059cbb1461066c578063c0d5ebfd1461068c578063c325a549146106ac57600080fd5b8063715018a6116100f2578063715018a61461059d57806387e08c25146105b25780638da5cb5b146105c55780638dda8f3f146105e357806392a91a3a1461061757600080fd5b80635250d730146104e85780635aecdda5146104fb57806362fb4e011461054757806370a082311461056757600080fd5b806329d0c8fc116101b15780633721f29c116101755780633721f29c146103f9578063377a368c1461047357806339509351146104885780633b26e4eb146104a85780634cb6864c146104c857600080fd5b806329d0c8fc1461035d5780632b651a6c1461037d578063313ce5671461039d57806334cb3d7f146103b9578063368dfc18146103d957600080fd5b80631b6a8759116101f85780631b6a8759146102cf5780631dc6f5a5146102e457806323b872dd1461030857806327a9b42414610328578063298410e51461033d57600080fd5b806306fdde0314610235578063095ea7b31461026057806318160ddd1461029057806319f37361146102af57600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024a6107a2565b604051610257919061488b565b60405180910390f35b34801561026c57600080fd5b5061028061027b366004614566565b610834565b6040519015158152602001610257565b34801561029c57600080fd5b506002545b604051908152602001610257565b3480156102bb57600080fd5b506102806102ca36600461435b565b61084e565b3480156102db57600080fd5b506102a161085b565b3480156102f057600080fd5b506102f961086c565b604051610257939291906147ff565b34801561031457600080fd5b506102806103233660046143a7565b6109d9565b61033b6103363660046145ef565b6109ff565b005b34801561034957600080fd5b5061033b61035836600461435b565b610bd0565b34801561036957600080fd5b5061033b6103783660046146cf565b610bf0565b34801561038957600080fd5b5061033b6103983660046143e2565b610c7c565b3480156103a957600080fd5b5060405160128152602001610257565b3480156103c557600080fd5b506102a16103d436600461435b565b610e0b565b3480156103e557600080fd5b5061033b6103f4366004614751565b610e2f565b34801561040557600080fd5b5061044b610414366004614751565b60c081901c9167ffffffffffffffff608083901c81169261ffff603082901c811693602083901c9091169260409290921c90911690565b604080519586526020860194909452928401919091526060830152608082015260a001610257565b34801561047f57600080fd5b506102a1610ea7565b34801561049457600080fd5b506102806104a3366004614566565b610f3e565b3480156104b457600080fd5b5061033b6104c33660046143e2565b610f60565b3480156104d457600080fd5b5061033b6104e33660046145ef565b6110ce565b61033b6104f63660046144f3565b6112fb565b34801561050757600080fd5b5061052f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610257565b34801561055357600080fd5b5061033b61056236600461458f565b611508565b34801561057357600080fd5b506102a161058236600461435b565b6001600160a01b031660009081526020819052604090205490565b3480156105a957600080fd5b5061033b6116f9565b61033b6105c0366004614488565b61170d565b3480156105d157600080fd5b50600a546001600160a01b031661052f565b3480156105ef57600080fd5b5061052f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561062357600080fd5b5061052f610632366004614751565b6118a6565b34801561064357600080fd5b5061024a6118b3565b34801561065857600080fd5b50610280610667366004614566565b6118c2565b34801561067857600080fd5b50610280610687366004614566565b611948565b34801561069857600080fd5b5061033b6106a7366004614682565b611956565b3480156106b857600080fd5b506106e06106c736600461435b565b6009602052600090815260409020805460019091015482565b60408051928352602083019190915201610257565b34801561070157600080fd5b5061033b6107103660046145ef565b611a47565b34801561072157600080fd5b506102a1610730366004614375565b611c56565b34801561074157600080fd5b5061028061075036600461435b565b611c81565b34801561076157600080fd5b506102a161077036600461435b565b60066020526000908152604090205481565b34801561078e57600080fd5b5061033b61079d36600461435b565b611cb1565b6060600380546107b190614a94565b80601f01602080910402602001604051908101604052809291908181526020018280546107dd90614a94565b801561082a5780601f106107ff5761010080835404028352916020019161082a565b820191906000526020600020905b81548152906001019060200180831161080d57829003601f168201915b5050505050905090565b600033610842818585611da9565b60019150505b92915050565b6000610848600783611ecd565b60006108676007611eef565b905090565b60608060008061087a61085b565b905060008167ffffffffffffffff8111156108a557634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156108ce578160200160208202803683370190505b50905060008267ffffffffffffffff8111156108fa57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610923578160200160208202803683370190505b50905060005b838110156109bf57600061093c826118a6565b905061094781610e0b565b84838151811061096757634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508083838151811061099457634e487b7160e01b600052603260045260246000fd5b6001600160a01b039092166020928302919091019091015250806109b781614ac9565b915050610929565b5081816109cb60025490565b955095509550505050909192565b6000336109e7858285611ef9565b6109f2858585611f73565b60019150505b9392505050565b8480421115610a295760405162461bcd60e51b8152600401610a20906148be565b60405180910390fd5b610a328961084e565b610a4e5760405162461bcd60e51b8152600401610a20906148e8565b610a787f000000000000000000000000000000000000000000000000000000000000000089612141565b6000610aa87f00000000000000000000000000000000000000000000000000000000000000008b8b8b8b8b6121e2565b9050610ab4818661222b565b610ac2876407915f3c801090565b15610b135742610af57f00000000000000000000000000000000000000000000000000000000000000008b8d8c8c61232a565b1015610b135760405162461bcd60e51b8152600401610a20906148be565b610b3d7f00000000000000000000000000000000000000000000000000000000000000008a612454565b610b478a896124a0565b610b5b6001600160a01b038b16878a6124c4565b856001600160a01b03168a6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316600080516020614b208339815191528c8c8989604051610bbc9493929190614918565b60405180910390a450505050505050505050565b610bd8612527565b610be3600782611d27565b50610bed81612581565b50565b6000855b80821015610c63576000888884818110610c1e57634e487b7160e01b600052603260045260246000fd5b9050602002013590506000811115610c5057610c50333083610c3f876118a6565b6001600160a01b031692919061261c565b82610c5a81614ac9565b93505050610bf4565b610c72338989898989896112fb565b5050505050505050565b8480421115610c9d5760405162461bcd60e51b8152600401610a20906148be565b610ca68a61084e565b8015610cb65750610cb68961084e565b610cfc5760405162461bcd60e51b8152602060048201526017602482015276436c69707065723a20496e76616c696420746f6b656e7360481b6044820152606401610a20565b6000610d0c8b8b8b8b8b8b6121e2565b9050610d18818661222b565b506000610d248b612654565b90506000610d318c610e0b565b610d3b9083614a51565b90506000610d4a8b838c612724565b9050610d5a896407915f3c801090565b15610d8b5742610d6d8e848f858e61232a565b1015610d8b5760405162461bcd60e51b8152600401610a20906148be565b610d958d846127ad565b610d9f8c826124a0565b610db36001600160a01b038d1689836124c4565b876001600160a01b03168c6001600160a01b03168e6001600160a01b0316600080516020614b2083398151915285858b8b604051610df49493929190614918565b60405180910390a450505050505050505050505050565b6001600160a01b03166000908152600660205260409020546001600160d81b031690565b6000610e3a60025490565b610e49836402540be400614a32565b610e53919061499b565b9050610e5f33836127eb565b610e6881612939565b604080518381526020810183905233917f92ccf450a286a957af52509bc1c9939d1a6a481783e142e41e2499f0bb66ebc6910160405180910390a25050565b6000610eb233611c81565b610f105760405162461bcd60e51b815260206004820152602960248201527f436c69707065724469726563743a204465706f7369742063616e6e6f74206265604482015268081d5b9b1bd8dad95960ba1b6064820152608401610a20565b50336000818152600960205260408120600181018054918390559190915590610f3b90309083611f73565b90565b600033610842818585610f518383611c56565b610f5b9190614955565b611da9565b8480421115610f815760405162461bcd60e51b8152600401610a20906148be565b610f8a8a61084e565b8015610f9a5750610f9a8961084e565b610fe05760405162461bcd60e51b8152602060048201526017602482015276436c69707065723a20496e76616c696420746f6b656e7360481b6044820152606401610a20565b610ff56001600160a01b038b1633308b61261c565b60006110058b8b8b8b8b8b6121e2565b9050611011818661222b565b61101f876407915f3c801090565b1561105057426110328c8b8d8c8c61232a565b10156110505760405162461bcd60e51b8152600401610a20906148be565b61105a8b8a612454565b6110648a896124a0565b6110786001600160a01b038b16878a6124c4565b856001600160a01b03168a6001600160a01b03168c6001600160a01b0316600080516020614b208339815191528c8c89896040516110b99493929190614918565b60405180910390a45050505050505050505050565b84804211156110ef5760405162461bcd60e51b8152600401610a20906148be565b6110f88961084e565b6111145760405162461bcd60e51b8152600401610a20906148e8565b60006111448a7f00000000000000000000000000000000000000000000000000000000000000008b8b8b8b6121e2565b9050611150818661222b565b600061115b8b612654565b905060006111688c610e0b565b6111729083614a51565b905060006111818c838d612724565b90506111918a6407915f3c801090565b156111e257426111c48e847f0000000000000000000000000000000000000000000000000000000000000000858f61232a565b10156111e25760405162461bcd60e51b8152600401610a20906148be565b6111ec8d846127ad565b6112167f0000000000000000000000000000000000000000000000000000000000000000826124a0565b604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561127857600080fd5b505af115801561128c573d6000803e3d6000fd5b5050505061129a8982612141565b886001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168e6001600160a01b0316600080516020614b2083398151915285858c8c604051610df49493929190614918565b818042111561131c5760405162461bcd60e51b8152600401610a20906148be565b341561134c5761134c7f000000000000000000000000000000000000000000000000000000000000000034612141565b336001600160a01b038916146113b45760405162461bcd60e51b815260206004820152602760248201527f4c69737465642073656e64657220646f6573206e6f74206d61746368206d73676044820152661739b2b73232b960c91b6064820152608401610a20565b60006113c48989898989896129a1565b90506113d0818461222b565b6000875b808210156114ac5760008a8a848181106113fe57634e487b7160e01b600052603260045260246000fd5b905060200201359050600081111561149957600061141b846118a6565b9050600061142882612654565b90508261143483610e0b565b61143e9083614a51565b101561148c5760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e7420746f6b656e206465706f7369740000000000006044820152606401610a20565b61149682826127ad565b50505b826114a381614ac9565b935050506113d4565b6114b78b89896129b2565b60408051888152602081018a90526001600160a01b038d16917f73a19dd210f1a7f902193214c0ee91dd35ee5b4d920cba8d519eca65a7b488ca910160405180910390a25050505050505050505050565b81804211156115295760405162461bcd60e51b8152600401610a20906148be565b336001600160a01b0388161461158f5760405162461bcd60e51b815260206004820152602560248201527f746f6b656e486f6c64657220646f6573206e6f74206d61746368206d73672e7360448201526432b73232b960d91b6064820152608401610a20565b60006001600160a01b0386166115c657507f0000000000000000000000000000000000000000000000000000000000000000945060015b60006115d589898989896129cc565b90506115e1818561222b565b6115eb33896127eb565b6115f587876124a0565b811561168457604051632e1a7d4d60e01b8152600481018790527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561165d57600080fd5b505af1158015611671573d6000803e3d6000fd5b5050505061167f3387612141565b611698565b6116986001600160a01b03881633886124c4565b866001600160a01b0316896001600160a01b03167f41e79959bad1d45680578f8a544fb5af76d72b04090e65a51b4d0eaab959a9ab8a896040516116e6929190918252602082015260400190565b60405180910390a3505050505050505050565b611701612527565b61170b6000612a13565b565b818042111561172e5760405162461bcd60e51b8152600401610a20906148be565b341561175e5761175e7f000000000000000000000000000000000000000000000000000000000000000034612141565b336001600160a01b03891614801561177a575061177a8761084e565b6117b65760405162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a59081a5b9c1d5d609a1b6044820152606401610a20565b60006117c6898989898989612a65565b90506117d2818461222b565b60006117dd89612654565b9050876117e98a610e0b565b6117f39083614a51565b10156118415760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e7420746f6b656e206465706f7369740000000000006044820152606401610a20565b61184b89826127ad565b6118568a88886129b2565b60408051878152602081018990526001600160a01b038c16917f73a19dd210f1a7f902193214c0ee91dd35ee5b4d920cba8d519eca65a7b488ca910160405180910390a250505050505050505050565b6000610848600783612a76565b6060600480546107b190614a94565b600033816118d08286611c56565b9050838110156119305760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a20565b61193d8286868403611da9565b506001949350505050565b600033610842818585611f73565b81804211156119775760405162461bcd60e51b8152600401610a20906148be565b6119808761084e565b6119bc5760405162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a59081a5b9c1d5d609a1b6044820152606401610a20565b6119d16001600160a01b03881633308961261c565b60006119e1338989898989612a65565b90506119ed818461222b565b6119f78888612454565b611a023387876129b2565b604080518681526020810188905233917f73a19dd210f1a7f902193214c0ee91dd35ee5b4d920cba8d519eca65a7b488ca910160405180910390a25050505050505050565b8480421115611a685760405162461bcd60e51b8152600401610a20906148be565b611a718961084e565b611a8d5760405162461bcd60e51b8152600401610a20906148e8565b611aa26001600160a01b038a1633308b61261c565b6000611ad28a7f00000000000000000000000000000000000000000000000000000000000000008b8b8b8b6121e2565b9050611ade818661222b565b611aec876407915f3c801090565b15611b3d5742611b1f8b8b7f00000000000000000000000000000000000000000000000000000000000000008c8c61232a565b1015611b3d5760405162461bcd60e51b8152600401610a20906148be565b611b478a8a612454565b611b717f0000000000000000000000000000000000000000000000000000000000000000896124a0565b604051632e1a7d4d60e01b8152600481018990527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b158015611bd357600080fd5b505af1158015611be7573d6000803e3d6000fd5b50505050611bf58689612141565b856001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168b6001600160a01b0316600080516020614b208339815191528c8c8989604051610bbc9493929190614918565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03811660009081526009602052604081206001810154158015906109f857505442101592915050565b611cb9612527565b6001600160a01b038116611d1e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a20565b610bed81612a13565b60006109f8836001600160a01b038416612a82565b60006001600160d81b03821115611da55760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663136206269747360c81b6064820152608401610a20565b5090565b6001600160a01b038316611e0b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a20565b6001600160a01b038216611e6c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a20565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038116600090815260018301602052604081205415156109f8565b6000610848825490565b6000611f058484611c56565b90506000198114611f6d5781811015611f605760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a20565b611f6d8484848403611da9565b50505050565b6001600160a01b038316611fd75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a20565b6001600160a01b0382166120395760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a20565b6001600160a01b038316600090815260208190526040902054818110156120b15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a20565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906120e8908490614955565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161213491815260200190565b60405180910390a3611f6d565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461218e576040519150601f19603f3d011682016040523d82523d6000602084013e612193565b606091505b50509050806121dd5760405162461bcd60e51b815260206004820152601660248201527510d85b1b081dda5d1a081d985b1d594819985a5b195960521b6044820152606401610a20565b505050565b6000806121f3888888888888612ad1565b905061221f7f000000000000000000000000000000000000000000000000000000000000000082612c09565b98975050505050505050565b600060018361223d6020850185614781565b604080516000815260208181018084529490945260ff9092168282015291850135606082015290840135608082015260a0016020604051602081039080840390855afa158015612291573d6000803e3d6000fd5b5050506020604051035190507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316146121dd5760405162461bcd60e51b815260206004820152602360248201527f4d657373616765207369676e656420627920696e636f7272656374206164647260448201526265737360e81b6064820152608401610a20565b60006123576040518060800160405280600081526020016000815260200160008152602001600081525090565b60c083901c67ffffffffffffffff608085901c81169061ffff603087901c811691602088901c90911690604088901c166123908c612c49565b604088015286526123a08a612c49565b6060880152602087015260408601516123fc906123bd908d614a32565b6040880151885188916123cf91614a32565b868a606001518e6123e09190614a32565b898c606001518d602001516123f59190614a32565b8989612cde565b61243d5760405162461bcd60e51b815260206004820152601260248201527110db1a5c1c195c8e88125b9d985c9a585b9d60721b6044820152606401610a20565b505063ffffffff9095169998505050505050505050565b600080600061246285612e93565b9194509250905061247d83836124788785614955565b612f34565b6001600160a01b0390951660009081526006602052604090209490945550505050565b60008060006124ae85612e93565b9194509250905061247d83836124788785614a51565b6040516001600160a01b0383166024820152604481018290526121dd90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612f77565b600a546001600160a01b0316331461170b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a20565b612600816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156125bd57600080fd5b505afa1580156125d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125f5919061479d565b600061247884612654565b6001600160a01b03909116600090815260066020526040902055565b6040516001600160a01b0380851660248301528316604482015260648101829052611f6d9085906323b872dd60e01b906084016124f0565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b1790529051600091829182916001600160a01b038616916126ab91906147e3565b600060405180830381855afa9150503d80600081146126e6576040519150601f19603f3d011682016040523d82523d6000602084013e6126eb565b606091505b50915091508180156126ff57506020815110155b61270857600080fd5b8080602001905181019061271c9190614769565b949350505050565b6000838314156127355750806109f8565b600084612747856402540be400614a32565b612751919061499b565b90506127666402540be4006302faf080614955565b811061279d576402540be40083612781826302faf080614955565b61278b9190614a32565b612795919061499b565b9150506109f8565b6402540be40061278b8483614a32565b6000806127b984612e93565b50915091506127c9828285612f34565b6001600160a01b03909416600090815260066020526040902093909355505050565b6001600160a01b03821661284b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a20565b6001600160a01b038216600090815260208190526040902054818110156128bf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610a20565b6001600160a01b03831660009081526020819052604081208383039055600280548492906128ee908490614a51565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b600080600061294661085b565b90505b80821015611f6d57600061295c836118a6565b90506402540be40061296d82610e0b565b6129779087614a32565b612981919061499b565b935061298e813386613049565b8261299881614ac9565b93505050612949565b6000806121f38888888888886130c8565b816129c1576121dd83826131fc565b6121dd8383836132db565b6000806129dc878787878761344f565b9050612a087f000000000000000000000000000000000000000000000000000000000000000082612c09565b979650505050505050565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000806121f388888888888861356c565b60006109f8838361366d565b6000818152600183016020526040812054612ac957508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610848565b506000610848565b6000604051602001612b90907f4f66666572537472756374286164647265737320696e7075745f746f6b656e2c81527f61646472657373206f75747075745f746f6b656e2c75696e7432353620696e7060208201527f75745f616d6f756e742c75696e74323536206f75747075745f616d6f756e742c60408201527f75696e7432353620676f6f645f756e74696c2c6164647265737320646573746960608201526e6e6174696f6e5f616464726573732960881b6080820152608f0190565b60408051601f198184030181528282528051602091820120908301526001600160a01b03808a169183019190915280881660608301526080820187905260a0820186905260c08201859052831660e0820152610100015b6040516020818303038152906040528051906020012090509695505050505050565b60405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6001600160a01b0381166000908152600660205260408120546001600160d81b038116919060f881901c6012811415612c855760019250612cd7565b6012811015612c9c5780601203600a0a9250612cd7565b60405162461bcd60e51b815260206004820152601060248201526f496e76616c696420646563696d616c7360801b6044820152606401610a20565b5050915091565b60008080806305f5e100612cf28c8e614a32565b612cfc919061499b565b90506000612d13612d0d8c84614a32565b876136a5565b90508015612d455780612d2e83670de0b6b3a7640000614a32565b612d38919061499b565b612d429085614955565b93505b60006305f5e100612d568a8c614a32565b612d60919061499b565b90506000612d77612d718a84614a32565b896136a5565b90508015612da95780612d9283670de0b6b3a7640000614a32565b612d9c919061499b565b612da69087614955565b95505b5050505060006305f5e1008d8c612dc09190614955565b612dca908e614a32565b612dd4919061499b565b90506000612de5612d0d8c84614a32565b90508015612e175780612e0083670de0b6b3a7640000614a32565b612e0a919061499b565b612e149084614955565b92505b60006305f5e100612e288c8b614a51565b612e32908c614a32565b612e3c919061499b565b90506000612e4d612d718a84614a32565b90508015612e7f5780612e6883670de0b6b3a7640000614a32565b612e72919061499b565b612e7c9086614955565b94505b50505091109b9a5050505050505050505050565b6001600160a01b03811660009081526006602052604081205460f881901c91906001600160d81b0381169060d881901c612ecd3243614955565b93508063ffffffff168463ffffffff161415612f2b5760405162461bcd60e51b815260206004820152601d60248201527f436c69707065723a204661696c656420747820756e697175656e6573730000006044820152606401610a20565b50509193909250565b6000612f3f82611d3c565b6001600160d81b0316612f6d63ffffffff60d81b60d886901b166001600160f81b031960f888901b16614955565b61271c9190614955565b6000612fcc826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166136f19092919063ffffffff16565b8051909150156121dd5780806020019051810190612fea9190614731565b6121dd5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610a20565b6002600554141561309c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a20565b60026005556130b56001600160a01b03841683836124c4565b6130be83612581565b5050600160055550565b60008086866040516020016130de9291906147b9565b604051602081830303815290604052805190602001209050604051602001613190907f4465706f73697453747275637428616464726573732073656e6465722c75696e81527f743235365b5d206465706f7369745f616d6f756e74732c75696e74323536206460208201527f6179735f6c6f636b65642c75696e7432353620706f6f6c5f746f6b656e732c75604082015271696e7432353620676f6f645f756e74696c2960701b606082015260720190565b60408051601f198184030181528282528051602091820120908301526001600160a01b038a1690820152606081018290526080810186905260a0810185905260c0810184905260e001604051602081830303815290604052805190602001209150509695505050505050565b6001600160a01b0382166132525760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610a20565b80600260008282546132649190614955565b90915550506001600160a01b03821660009081526020819052604081208054839290613291908490614955565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600082116133665760405162461bcd60e51b815260206004820152604c60248201527f436c69707065724469726563743a2043616e6e6f74206372656174652076657360448201527f74696e67206465706f73697420776974686f757420706f73697469766520766560648201526b1cdd1a5b99c81c195c9a5bd960a21b608482015260a401610a20565b6001600160a01b038316600090815260096020526040902060010154156133ee5760405162461bcd60e51b815260206004820152603660248201527f436c69707065724469726563743a204465706f7369746f7220616c7265616479604482015275081a185cc8185b881858dd1a5d994819195c1bdcda5d60521b6064820152608401610a20565b60006040518060400160405280846201518061340a9190614a32565b6134149042614955565b815260209081018490526001600160a01b0386166000908152600982526040902082518155908201516001909101559050611f6d30836131fc565b6000604051602001613505907f5769746864726177616c537472756374286164647265737320746f6b656e5f6881527f6f6c6465722c75696e7432353620706f6f6c5f746f6b656e5f616d6f756e745f60208201527f746f5f6275726e2c616464726573732061737365745f616464726573732c756960408201527f6e743235362061737365745f616d6f756e742c75696e7432353620676f6f645f606082015265756e74696c2960d01b608082015260860190565b60408051808303601f190181528282528051602091820120818401526001600160a01b039889168383015260608301979097529490961660808701525060a085019190915260c0808501919091528151808503909101815260e09093019052815191012090565b6000604051602001613613907f53696e676c654465706f73697453747275637428616464726573732073656e6481527f65722c6164647265737320746f6b656e2c75696e7432353620616d6f756e742c60208201527f75696e7432353620646179735f6c6f636b65642c75696e7432353620706f6f6c60408201527f5f746f6b656e732c75696e7432353620676f6f645f756e74696c2900000000006060820152607b0190565b60408051601f198184030181528282528051602091820120908301526001600160a01b03808a1691830191909152871660608201526080810186905260a0810185905260c0810184905260e0810183905261010001612be7565b600082600001828154811061369257634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b6000826136b457506000610848565b6136ea670de0b6b3a76400006136d16136cc86613700565b61376a565b6136db90856149af565b6136e5919061496d565b613775565b9050610848565b606061271c8484600085613788565b60006001600160ff1b03821115611da55760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401610a20565b6000610848826138ae565b60006108486137838361398d565b613a38565b6060824710156137e95760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610a20565b6001600160a01b0385163b6138405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a20565b600080866001600160a01b0316858760405161385c91906147e3565b60006040518083038185875af1925050503d8060008114613899576040519150601f19603f3d011682016040523d82523d6000602084013e61389e565b606091505b5091509150612a08828286613a8a565b60008082136138d35760405163309fa7dd60e11b815260048101839052602401610a20565b6000670de0b6b3a764000083126138ec57506001613906565b6000199050826ec097ce7bc90715b34b9f10000000000492505b600061391b670de0b6b3a76400008505613ac3565b670de0b6b3a7640000808202945090915084821d9081141561393f57505002919050565b6706f05b59d3b200005b600081131561398457670de0b6b3a7640000828002059150671bc16d674ec80000821261397c579384019360019190911d905b60011d613949565b50505002919050565b6000808212156139ef5768033dd1780914b97114198212156139b157506000919050565b6139bd8260000361398d565b6ec097ce7bc90715b34b9f1000000000816139e857634e487b7160e01b600052601260045260246000fd5b0592915050565b680a688906bd8b0000008212613a1b5760405163e69458f960e01b815260048101839052602401610a20565b670de0b6b3a7640000604083901b046109f881613ba7565b919050565b600080821215611da55760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f7369746976656044820152606401610a20565b60608315613a995750816109f8565b825115613aa95782518084602001fd5b8160405162461bcd60e51b8152600401610a20919061488b565b6000600160801b8210613ae357608091821c91613ae09082614955565b90505b680100000000000000008210613b0657604091821c91613b039082614955565b90505b6401000000008210613b2557602091821c91613b229082614955565b90505b620100008210613b4257601091821c91613b3f9082614955565b90505b6101008210613b5e57600891821c91613b5b9082614955565b90505b60108210613b7957600491821c91613b769082614955565b90505b60048210613b9457600291821c91613b919082614955565b90505b60028210613a3357610848600182614955565b600160bf1b678000000000000000821615613bcb5768016a09e667f3bcc9090260401c5b674000000000000000821615613bea576801306fe0a31b7152df0260401c5b672000000000000000821615613c09576801172b83c7d517adce0260401c5b671000000000000000821615613c285768010b5586cf9890f62a0260401c5b670800000000000000821615613c47576801059b0d31585743ae0260401c5b670400000000000000821615613c6657680102c9a3e778060ee70260401c5b670200000000000000821615613c855768010163da9fb33356d80260401c5b670100000000000000821615613ca457680100b1afa5abcbed610260401c5b6680000000000000821615613cc25768010058c86da1c09ea20260401c5b6640000000000000821615613ce0576801002c605e2e8cec500260401c5b6620000000000000821615613cfe57680100162f3904051fa10260401c5b6610000000000000821615613d1c576801000b175effdc76ba0260401c5b6608000000000000821615613d3a57680100058ba01fb9f96d0260401c5b6604000000000000821615613d585768010002c5cc37da94920260401c5b6602000000000000821615613d76576801000162e525ee05470260401c5b6601000000000000821615613d945768010000b17255775c040260401c5b65800000000000821615613db1576801000058b91b5bc9ae0260401c5b65400000000000821615613dce57680100002c5c89d5ec6d0260401c5b65200000000000821615613deb5768010000162e43f4f8310260401c5b65100000000000821615613e0857680100000b1721bcfc9a0260401c5b65080000000000821615613e255768010000058b90cf1e6e0260401c5b65040000000000821615613e42576801000002c5c863b73f0260401c5b65020000000000821615613e5f57680100000162e430e5a20260401c5b65010000000000821615613e7c576801000000b1721835510260401c5b648000000000821615613e9857680100000058b90c0b490260401c5b644000000000821615613eb45768010000002c5c8601cc0260401c5b642000000000821615613ed0576801000000162e42fff00260401c5b641000000000821615613eec5768010000000b17217fbb0260401c5b640800000000821615613f08576801000000058b90bfce0260401c5b640400000000821615613f2457680100000002c5c85fe30260401c5b640200000000821615613f405768010000000162e42ff10260401c5b640100000000821615613f5c57680100000000b17217f80260401c5b6380000000821615613f775768010000000058b90bfc0260401c5b6340000000821615613f92576801000000002c5c85fe0260401c5b6320000000821615613fad57680100000000162e42ff0260401c5b6310000000821615613fc8576801000000000b17217f0260401c5b6308000000821615613fe357680100000000058b90c00260401c5b6304000000821615613ffe5768010000000002c5c8600260401c5b6302000000821615614019576801000000000162e4300260401c5b63010000008216156140345768010000000000b172180260401c5b6280000082161561404e576801000000000058b90c0260401c5b6240000082161561406857680100000000002c5c860260401c5b622000008216156140825768010000000000162e430260401c5b6210000082161561409c57680100000000000b17210260401c5b620800008216156140b65768010000000000058b910260401c5b620400008216156140d0576801000000000002c5c80260401c5b620200008216156140ea57680100000000000162e40260401c5b62010000821615614104576801000000000000b1720260401c5b61800082161561411d57680100000000000058b90260401c5b6140008216156141365768010000000000002c5d0260401c5b61200082161561414f576801000000000000162e0260401c5b6110008216156141685768010000000000000b170260401c5b610800821615614181576801000000000000058c0260401c5b61040082161561419a57680100000000000002c60260401c5b6102008216156141b357680100000000000001630260401c5b6101008216156141cc57680100000000000000b10260401c5b60808216156141e457680100000000000000590260401c5b60408216156141fc576801000000000000002c0260401c5b602082161561421457680100000000000000160260401c5b601082161561422c576801000000000000000b0260401c5b600882161561424457680100000000000000060260401c5b600482161561425c57680100000000000000030260401c5b600282161561427457680100000000000000010260401c5b600182161561428c57680100000000000000010260401c5b670de0b6b3a76400000260409190911c60bf031c90565b80356001600160a01b0381168114613a3357600080fd5b60008083601f8401126142cb578182fd5b50813567ffffffffffffffff8111156142e2578182fd5b6020830191508360208260051b85010111156142fd57600080fd5b9250929050565b60008083601f840112614315578182fd5b50813567ffffffffffffffff81111561432c578182fd5b6020830191508360208285010111156142fd57600080fd5b600060608284031215614355578081fd5b50919050565b60006020828403121561436c578081fd5b6109f8826142a3565b60008060408385031215614387578081fd5b614390836142a3565b915061439e602084016142a3565b90509250929050565b6000806000606084860312156143bb578081fd5b6143c4846142a3565b92506143d2602085016142a3565b9150604084013590509250925092565b60008060008060008060008060006101408a8c031215614400578485fd5b6144098a6142a3565b985061441760208b016142a3565b975060408a0135965060608a0135955060808a0135945061443a60a08b016142a3565b93506144498b60c08c01614344565b92506101208a013567ffffffffffffffff811115614465578283fd5b6144718c828d01614304565b915080935050809150509295985092959850929598565b6000806000806000806000610120888a0312156144a3578283fd5b6144ac886142a3565b96506144ba602089016142a3565b955060408801359450606088013593506080880135925060a088013591506144e58960c08a01614344565b905092959891949750929550565b6000806000806000806000610100888a03121561450e578283fd5b614517886142a3565b9650602088013567ffffffffffffffff811115614532578384fd5b61453e8a828b016142ba565b9097509550506040880135935060608801359250608088013591506144e58960a08a01614344565b60008060408385031215614578578182fd5b614581836142a3565b946020939093013593505050565b60008060008060008061010087890312156145a8578182fd5b6145b1876142a3565b9550602087013594506145c6604088016142a3565b935060608701359250608087013591506145e38860a08901614344565b90509295509295509295565b600080600080600080600080610120898b03121561460b578182fd5b614614896142a3565b975060208901359650604089013595506060890135945061463760808a016142a3565b93506146468a60a08b01614344565b925061010089013567ffffffffffffffff811115614662578283fd5b61466e8b828c01614304565b999c989b5096995094979396929594505050565b600080600080600080610100878903121561469b578384fd5b6146a4876142a3565b9550602087013594506040870135935060608701359250608087013591506145e38860a08901614344565b60008060008060008060e087890312156146e7578384fd5b863567ffffffffffffffff8111156146fd578485fd5b61470989828a016142ba565b9097509550506020870135935060408701359250606087013591506145e38860808901614344565b600060208284031215614742578081fd5b815180151581146109f8578182fd5b600060208284031215614762578081fd5b5035919050565b60006020828403121561477a578081fd5b5051919050565b600060208284031215614792578081fd5b81356109f881614b10565b6000602082840312156147ae578081fd5b81516109f881614b10565b60006001600160fb1b038311156147ce578081fd5b8260051b808584379190910190815292915050565b600082516147f5818460208701614a68565b9190910192915050565b606080825284519082018190526000906020906080840190828801845b828110156148385781518452928401929084019060010161481c565b50505083810382850152855180825286830191830190845b818110156148755783516001600160a01b031683529284019291840191600101614850565b5050809350505050826040830152949350505050565b60208152600082518060208401526148aa816040850160208701614a68565b601f01601f19169190910160400192915050565b60208082526010908201526f10db1a5c1c195c8e88115e1c1a5c995960821b604082015260600190565b60208082526016908201527521b634b83832b91d1024b73b30b634b2103a37b5b2b760511b604082015260600190565b84815283602082015260606040820152816060820152818360808301376000818301608090810191909152601f909201601f191601019392505050565b6000821982111561496857614968614ae4565b500190565b60008261497c5761497c614afa565b600160ff1b82146000198414161561499657614996614ae4565b500590565b6000826149aa576149aa614afa565b500490565b60006001600160ff1b03818413828413808216868404861116156149d5576149d5614ae4565b600160ff1b848712828116878305891216156149f3576149f3614ae4565b858712925087820587128484161615614a0e57614a0e614ae4565b87850587128184161615614a2457614a24614ae4565b505050929093029392505050565b6000816000190483118215151615614a4c57614a4c614ae4565b500290565b600082821015614a6357614a63614ae4565b500390565b60005b83811015614a83578181015183820152602001614a6b565b83811115611f6d5750506000910152565b600181811c90821680614aa857607f821691505b6020821081141561435557634e487b7160e01b600052602260045260246000fd5b6000600019821415614add57614add614ae4565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b60ff81168114610bed57600080fdfe4be05c8d54f5e056ab2cfa033e9f582057001268c3e28561bb999d35d2c8f2c8a264697066735822122054eacf1c3231a2523257c519d79262964b4be9e403a0eb5ad3c52aa89ebbc4e264736f6c6343000804003300000000000000000000000008938a61ba9523298dbcacee0cda5b371fb7f1f8000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000050000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
60e06040523480156200001157600080fd5b506040516200559f3803806200559f83398101604081905262000034916200072f565b8282828282826040518060400160405280601881526020017f436c697070657244697265637420506f6f6c20546f6b656e00000000000000008152506040518060400160405280600881526020016710d314149114941360c21b8152508160039080519060200190620000a992919062000676565b508051620000bf90600490602084019062000676565b50506001600555506001600160601b0319606084901b1660805280516000905b8082101562000141576200012b8383815181106200010d57634e487b7160e01b600052603260045260246000fd5b602002602001015160076200022760201b62001d271790919060201c565b5081620001388162000917565b925050620000df565b620001966040518060400160405280600d81526020016c10db1a5c1c195c911a5c9958dd609a1b815250604051806040016040528060058152602001640312e302e360dc1b815250306200024760201b60201c565b60c05250505060601b6001600160601b03191660a05250620001bf620001b93390565b62000374565b50505060005b81518110156200021d5762000208828281518110620001f457634e487b7160e01b600052603260045260246000fd5b6020026020010151620003c660201b60201c565b80620002148162000917565b915050620001c5565b5050505062000961565b60006200023e836001600160a01b0384166200046e565b90505b92915050565b6000604051602001620002be907f454950373132446f6d61696e28737472696e67206e616d652c737472696e672081527f76657273696f6e2c75696e7432353620636861696e49642c6164647265737320602082015271766572696679696e67436f6e74726163742960701b604082015260520190565b6040516020818303038152906040528051906020012084604051602001620002e791906200086e565b60405160208183030381529060405280519060200120846040516020016200031091906200086e565b60408051601f1981840301815282825280516020918201209083019490945281019190915260608101919091524660808201526001600160a01b03831660a082015260c0016040516020818303038152906040528051906020012090509392505050565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62000452816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156200040457600080fd5b505afa15801562000419573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200043f919062000844565b60006200044c84620004c0565b62000598565b6001600160a01b03909116600090815260066020526040902055565b6000818152600183016020526040812054620004b75750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000241565b50600062000241565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b1790529051600091829182916001600160a01b038616916200051991906200086e565b600060405180830381855afa9150503d806000811462000556576040519150601f19603f3d011682016040523d82523d6000602084013e6200055b565b606091505b50915091508180156200057057506020815110155b6200057a57600080fd5b808060200190518101906200059091906200082b565b949350505050565b6000620005b0826200060460201b62001d3c1760201c565b6001600160d81b0316620005f863ffffffff60d81b60d886901b167fff0000000000000000000000000000000000000000000000000000000000000060f888901b166200088c565b6200059091906200088c565b60006001600160d81b03821115620006725760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663136206269747360c81b606482015260840160405180910390fd5b5090565b8280546200068490620008da565b90600052602060002090601f016020900481019282620006a85760008555620006f3565b82601f10620006c357805160ff1916838001178555620006f3565b82800160010185558215620006f3579182015b82811115620006f3578251825591602001919060010190620006d6565b50620006729291505b80821115620006725760008155600101620006fc565b80516001600160a01b03811681146200072a57600080fd5b919050565b60008060006060848603121562000744578283fd5b6200074f8462000712565b925060206200076081860162000712565b60408601519093506001600160401b03808211156200077d578384fd5b818701915087601f83011262000791578384fd5b815181811115620007a657620007a66200094b565b8060051b604051601f19603f83011681018181108582111715620007ce57620007ce6200094b565b604052828152858101935084860182860187018c1015620007ed578788fd5b8795505b838610156200081a57620008058162000712565b855260019590950194938601938601620007f1565b508096505050505050509250925092565b6000602082840312156200083d578081fd5b5051919050565b60006020828403121562000856578081fd5b815160ff8116811462000867578182fd5b9392505050565b6000825162000882818460208701620008a7565b9190910192915050565b60008219821115620008a257620008a262000935565b500190565b60005b83811015620008c4578181015183820152602001620008aa565b83811115620008d4576000848401525b50505050565b600181811c90821680620008ef57607f821691505b602082108114156200091157634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156200092e576200092e62000935565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60805160601c60a05160601c60c051614b7562000a2a600039600081816121fa01526129e301526000818161050d01528181610a5301528181610a7f01528181610acd01528181610b1801528181610b710152818161111c0152818161119e015281816111f10152818161122c015281816112a601528181611327015281816115a2015281816116110152818161173901528181611aaa01528181611af901528181611b4c01528181611b870152611c010152600081816105f5015261229f0152614b756000f3fe6080604052600436106102295760003560e01c80635250d7301161012357806395d89b41116100ab578063c72da66a1161006f578063c72da66a146106f5578063dd62ed3e14610715578063eb1c645314610735578063ecc7633d14610755578063f2fde38b1461078257600080fd5b806395d89b4114610637578063a457c2d71461064c578063a9059cbb1461066c578063c0d5ebfd1461068c578063c325a549146106ac57600080fd5b8063715018a6116100f2578063715018a61461059d57806387e08c25146105b25780638da5cb5b146105c55780638dda8f3f146105e357806392a91a3a1461061757600080fd5b80635250d730146104e85780635aecdda5146104fb57806362fb4e011461054757806370a082311461056757600080fd5b806329d0c8fc116101b15780633721f29c116101755780633721f29c146103f9578063377a368c1461047357806339509351146104885780633b26e4eb146104a85780634cb6864c146104c857600080fd5b806329d0c8fc1461035d5780632b651a6c1461037d578063313ce5671461039d57806334cb3d7f146103b9578063368dfc18146103d957600080fd5b80631b6a8759116101f85780631b6a8759146102cf5780631dc6f5a5146102e457806323b872dd1461030857806327a9b42414610328578063298410e51461033d57600080fd5b806306fdde0314610235578063095ea7b31461026057806318160ddd1461029057806319f37361146102af57600080fd5b3661023057005b600080fd5b34801561024157600080fd5b5061024a6107a2565b604051610257919061488b565b60405180910390f35b34801561026c57600080fd5b5061028061027b366004614566565b610834565b6040519015158152602001610257565b34801561029c57600080fd5b506002545b604051908152602001610257565b3480156102bb57600080fd5b506102806102ca36600461435b565b61084e565b3480156102db57600080fd5b506102a161085b565b3480156102f057600080fd5b506102f961086c565b604051610257939291906147ff565b34801561031457600080fd5b506102806103233660046143a7565b6109d9565b61033b6103363660046145ef565b6109ff565b005b34801561034957600080fd5b5061033b61035836600461435b565b610bd0565b34801561036957600080fd5b5061033b6103783660046146cf565b610bf0565b34801561038957600080fd5b5061033b6103983660046143e2565b610c7c565b3480156103a957600080fd5b5060405160128152602001610257565b3480156103c557600080fd5b506102a16103d436600461435b565b610e0b565b3480156103e557600080fd5b5061033b6103f4366004614751565b610e2f565b34801561040557600080fd5b5061044b610414366004614751565b60c081901c9167ffffffffffffffff608083901c81169261ffff603082901c811693602083901c9091169260409290921c90911690565b604080519586526020860194909452928401919091526060830152608082015260a001610257565b34801561047f57600080fd5b506102a1610ea7565b34801561049457600080fd5b506102806104a3366004614566565b610f3e565b3480156104b457600080fd5b5061033b6104c33660046143e2565b610f60565b3480156104d457600080fd5b5061033b6104e33660046145ef565b6110ce565b61033b6104f63660046144f3565b6112fb565b34801561050757600080fd5b5061052f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610257565b34801561055357600080fd5b5061033b61056236600461458f565b611508565b34801561057357600080fd5b506102a161058236600461435b565b6001600160a01b031660009081526020819052604090205490565b3480156105a957600080fd5b5061033b6116f9565b61033b6105c0366004614488565b61170d565b3480156105d157600080fd5b50600a546001600160a01b031661052f565b3480156105ef57600080fd5b5061052f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561062357600080fd5b5061052f610632366004614751565b6118a6565b34801561064357600080fd5b5061024a6118b3565b34801561065857600080fd5b50610280610667366004614566565b6118c2565b34801561067857600080fd5b50610280610687366004614566565b611948565b34801561069857600080fd5b5061033b6106a7366004614682565b611956565b3480156106b857600080fd5b506106e06106c736600461435b565b6009602052600090815260409020805460019091015482565b60408051928352602083019190915201610257565b34801561070157600080fd5b5061033b6107103660046145ef565b611a47565b34801561072157600080fd5b506102a1610730366004614375565b611c56565b34801561074157600080fd5b5061028061075036600461435b565b611c81565b34801561076157600080fd5b506102a161077036600461435b565b60066020526000908152604090205481565b34801561078e57600080fd5b5061033b61079d36600461435b565b611cb1565b6060600380546107b190614a94565b80601f01602080910402602001604051908101604052809291908181526020018280546107dd90614a94565b801561082a5780601f106107ff5761010080835404028352916020019161082a565b820191906000526020600020905b81548152906001019060200180831161080d57829003601f168201915b5050505050905090565b600033610842818585611da9565b60019150505b92915050565b6000610848600783611ecd565b60006108676007611eef565b905090565b60608060008061087a61085b565b905060008167ffffffffffffffff8111156108a557634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156108ce578160200160208202803683370190505b50905060008267ffffffffffffffff8111156108fa57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610923578160200160208202803683370190505b50905060005b838110156109bf57600061093c826118a6565b905061094781610e0b565b84838151811061096757634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508083838151811061099457634e487b7160e01b600052603260045260246000fd5b6001600160a01b039092166020928302919091019091015250806109b781614ac9565b915050610929565b5081816109cb60025490565b955095509550505050909192565b6000336109e7858285611ef9565b6109f2858585611f73565b60019150505b9392505050565b8480421115610a295760405162461bcd60e51b8152600401610a20906148be565b60405180910390fd5b610a328961084e565b610a4e5760405162461bcd60e51b8152600401610a20906148e8565b610a787f000000000000000000000000000000000000000000000000000000000000000089612141565b6000610aa87f00000000000000000000000000000000000000000000000000000000000000008b8b8b8b8b6121e2565b9050610ab4818661222b565b610ac2876407915f3c801090565b15610b135742610af57f00000000000000000000000000000000000000000000000000000000000000008b8d8c8c61232a565b1015610b135760405162461bcd60e51b8152600401610a20906148be565b610b3d7f00000000000000000000000000000000000000000000000000000000000000008a612454565b610b478a896124a0565b610b5b6001600160a01b038b16878a6124c4565b856001600160a01b03168a6001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316600080516020614b208339815191528c8c8989604051610bbc9493929190614918565b60405180910390a450505050505050505050565b610bd8612527565b610be3600782611d27565b50610bed81612581565b50565b6000855b80821015610c63576000888884818110610c1e57634e487b7160e01b600052603260045260246000fd5b9050602002013590506000811115610c5057610c50333083610c3f876118a6565b6001600160a01b031692919061261c565b82610c5a81614ac9565b93505050610bf4565b610c72338989898989896112fb565b5050505050505050565b8480421115610c9d5760405162461bcd60e51b8152600401610a20906148be565b610ca68a61084e565b8015610cb65750610cb68961084e565b610cfc5760405162461bcd60e51b8152602060048201526017602482015276436c69707065723a20496e76616c696420746f6b656e7360481b6044820152606401610a20565b6000610d0c8b8b8b8b8b8b6121e2565b9050610d18818661222b565b506000610d248b612654565b90506000610d318c610e0b565b610d3b9083614a51565b90506000610d4a8b838c612724565b9050610d5a896407915f3c801090565b15610d8b5742610d6d8e848f858e61232a565b1015610d8b5760405162461bcd60e51b8152600401610a20906148be565b610d958d846127ad565b610d9f8c826124a0565b610db36001600160a01b038d1689836124c4565b876001600160a01b03168c6001600160a01b03168e6001600160a01b0316600080516020614b2083398151915285858b8b604051610df49493929190614918565b60405180910390a450505050505050505050505050565b6001600160a01b03166000908152600660205260409020546001600160d81b031690565b6000610e3a60025490565b610e49836402540be400614a32565b610e53919061499b565b9050610e5f33836127eb565b610e6881612939565b604080518381526020810183905233917f92ccf450a286a957af52509bc1c9939d1a6a481783e142e41e2499f0bb66ebc6910160405180910390a25050565b6000610eb233611c81565b610f105760405162461bcd60e51b815260206004820152602960248201527f436c69707065724469726563743a204465706f7369742063616e6e6f74206265604482015268081d5b9b1bd8dad95960ba1b6064820152608401610a20565b50336000818152600960205260408120600181018054918390559190915590610f3b90309083611f73565b90565b600033610842818585610f518383611c56565b610f5b9190614955565b611da9565b8480421115610f815760405162461bcd60e51b8152600401610a20906148be565b610f8a8a61084e565b8015610f9a5750610f9a8961084e565b610fe05760405162461bcd60e51b8152602060048201526017602482015276436c69707065723a20496e76616c696420746f6b656e7360481b6044820152606401610a20565b610ff56001600160a01b038b1633308b61261c565b60006110058b8b8b8b8b8b6121e2565b9050611011818661222b565b61101f876407915f3c801090565b1561105057426110328c8b8d8c8c61232a565b10156110505760405162461bcd60e51b8152600401610a20906148be565b61105a8b8a612454565b6110648a896124a0565b6110786001600160a01b038b16878a6124c4565b856001600160a01b03168a6001600160a01b03168c6001600160a01b0316600080516020614b208339815191528c8c89896040516110b99493929190614918565b60405180910390a45050505050505050505050565b84804211156110ef5760405162461bcd60e51b8152600401610a20906148be565b6110f88961084e565b6111145760405162461bcd60e51b8152600401610a20906148e8565b60006111448a7f00000000000000000000000000000000000000000000000000000000000000008b8b8b8b6121e2565b9050611150818661222b565b600061115b8b612654565b905060006111688c610e0b565b6111729083614a51565b905060006111818c838d612724565b90506111918a6407915f3c801090565b156111e257426111c48e847f0000000000000000000000000000000000000000000000000000000000000000858f61232a565b10156111e25760405162461bcd60e51b8152600401610a20906148be565b6111ec8d846127ad565b6112167f0000000000000000000000000000000000000000000000000000000000000000826124a0565b604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561127857600080fd5b505af115801561128c573d6000803e3d6000fd5b5050505061129a8982612141565b886001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168e6001600160a01b0316600080516020614b2083398151915285858c8c604051610df49493929190614918565b818042111561131c5760405162461bcd60e51b8152600401610a20906148be565b341561134c5761134c7f000000000000000000000000000000000000000000000000000000000000000034612141565b336001600160a01b038916146113b45760405162461bcd60e51b815260206004820152602760248201527f4c69737465642073656e64657220646f6573206e6f74206d61746368206d73676044820152661739b2b73232b960c91b6064820152608401610a20565b60006113c48989898989896129a1565b90506113d0818461222b565b6000875b808210156114ac5760008a8a848181106113fe57634e487b7160e01b600052603260045260246000fd5b905060200201359050600081111561149957600061141b846118a6565b9050600061142882612654565b90508261143483610e0b565b61143e9083614a51565b101561148c5760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e7420746f6b656e206465706f7369740000000000006044820152606401610a20565b61149682826127ad565b50505b826114a381614ac9565b935050506113d4565b6114b78b89896129b2565b60408051888152602081018a90526001600160a01b038d16917f73a19dd210f1a7f902193214c0ee91dd35ee5b4d920cba8d519eca65a7b488ca910160405180910390a25050505050505050505050565b81804211156115295760405162461bcd60e51b8152600401610a20906148be565b336001600160a01b0388161461158f5760405162461bcd60e51b815260206004820152602560248201527f746f6b656e486f6c64657220646f6573206e6f74206d61746368206d73672e7360448201526432b73232b960d91b6064820152608401610a20565b60006001600160a01b0386166115c657507f0000000000000000000000000000000000000000000000000000000000000000945060015b60006115d589898989896129cc565b90506115e1818561222b565b6115eb33896127eb565b6115f587876124a0565b811561168457604051632e1a7d4d60e01b8152600481018790527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561165d57600080fd5b505af1158015611671573d6000803e3d6000fd5b5050505061167f3387612141565b611698565b6116986001600160a01b03881633886124c4565b866001600160a01b0316896001600160a01b03167f41e79959bad1d45680578f8a544fb5af76d72b04090e65a51b4d0eaab959a9ab8a896040516116e6929190918252602082015260400190565b60405180910390a3505050505050505050565b611701612527565b61170b6000612a13565b565b818042111561172e5760405162461bcd60e51b8152600401610a20906148be565b341561175e5761175e7f000000000000000000000000000000000000000000000000000000000000000034612141565b336001600160a01b03891614801561177a575061177a8761084e565b6117b65760405162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a59081a5b9c1d5d609a1b6044820152606401610a20565b60006117c6898989898989612a65565b90506117d2818461222b565b60006117dd89612654565b9050876117e98a610e0b565b6117f39083614a51565b10156118415760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e7420746f6b656e206465706f7369740000000000006044820152606401610a20565b61184b89826127ad565b6118568a88886129b2565b60408051878152602081018990526001600160a01b038c16917f73a19dd210f1a7f902193214c0ee91dd35ee5b4d920cba8d519eca65a7b488ca910160405180910390a250505050505050505050565b6000610848600783612a76565b6060600480546107b190614a94565b600033816118d08286611c56565b9050838110156119305760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a20565b61193d8286868403611da9565b506001949350505050565b600033610842818585611f73565b81804211156119775760405162461bcd60e51b8152600401610a20906148be565b6119808761084e565b6119bc5760405162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a59081a5b9c1d5d609a1b6044820152606401610a20565b6119d16001600160a01b03881633308961261c565b60006119e1338989898989612a65565b90506119ed818461222b565b6119f78888612454565b611a023387876129b2565b604080518681526020810188905233917f73a19dd210f1a7f902193214c0ee91dd35ee5b4d920cba8d519eca65a7b488ca910160405180910390a25050505050505050565b8480421115611a685760405162461bcd60e51b8152600401610a20906148be565b611a718961084e565b611a8d5760405162461bcd60e51b8152600401610a20906148e8565b611aa26001600160a01b038a1633308b61261c565b6000611ad28a7f00000000000000000000000000000000000000000000000000000000000000008b8b8b8b6121e2565b9050611ade818661222b565b611aec876407915f3c801090565b15611b3d5742611b1f8b8b7f00000000000000000000000000000000000000000000000000000000000000008c8c61232a565b1015611b3d5760405162461bcd60e51b8152600401610a20906148be565b611b478a8a612454565b611b717f0000000000000000000000000000000000000000000000000000000000000000896124a0565b604051632e1a7d4d60e01b8152600481018990527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b158015611bd357600080fd5b505af1158015611be7573d6000803e3d6000fd5b50505050611bf58689612141565b856001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168b6001600160a01b0316600080516020614b208339815191528c8c8989604051610bbc9493929190614918565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03811660009081526009602052604081206001810154158015906109f857505442101592915050565b611cb9612527565b6001600160a01b038116611d1e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a20565b610bed81612a13565b60006109f8836001600160a01b038416612a82565b60006001600160d81b03821115611da55760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663136206269747360c81b6064820152608401610a20565b5090565b6001600160a01b038316611e0b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a20565b6001600160a01b038216611e6c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a20565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038116600090815260018301602052604081205415156109f8565b6000610848825490565b6000611f058484611c56565b90506000198114611f6d5781811015611f605760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a20565b611f6d8484848403611da9565b50505050565b6001600160a01b038316611fd75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a20565b6001600160a01b0382166120395760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a20565b6001600160a01b038316600090815260208190526040902054818110156120b15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a20565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906120e8908490614955565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161213491815260200190565b60405180910390a3611f6d565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461218e576040519150601f19603f3d011682016040523d82523d6000602084013e612193565b606091505b50509050806121dd5760405162461bcd60e51b815260206004820152601660248201527510d85b1b081dda5d1a081d985b1d594819985a5b195960521b6044820152606401610a20565b505050565b6000806121f3888888888888612ad1565b905061221f7f000000000000000000000000000000000000000000000000000000000000000082612c09565b98975050505050505050565b600060018361223d6020850185614781565b604080516000815260208181018084529490945260ff9092168282015291850135606082015290840135608082015260a0016020604051602081039080840390855afa158015612291573d6000803e3d6000fd5b5050506020604051035190507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316146121dd5760405162461bcd60e51b815260206004820152602360248201527f4d657373616765207369676e656420627920696e636f7272656374206164647260448201526265737360e81b6064820152608401610a20565b60006123576040518060800160405280600081526020016000815260200160008152602001600081525090565b60c083901c67ffffffffffffffff608085901c81169061ffff603087901c811691602088901c90911690604088901c166123908c612c49565b604088015286526123a08a612c49565b6060880152602087015260408601516123fc906123bd908d614a32565b6040880151885188916123cf91614a32565b868a606001518e6123e09190614a32565b898c606001518d602001516123f59190614a32565b8989612cde565b61243d5760405162461bcd60e51b815260206004820152601260248201527110db1a5c1c195c8e88125b9d985c9a585b9d60721b6044820152606401610a20565b505063ffffffff9095169998505050505050505050565b600080600061246285612e93565b9194509250905061247d83836124788785614955565b612f34565b6001600160a01b0390951660009081526006602052604090209490945550505050565b60008060006124ae85612e93565b9194509250905061247d83836124788785614a51565b6040516001600160a01b0383166024820152604481018290526121dd90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612f77565b600a546001600160a01b0316331461170b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a20565b612600816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156125bd57600080fd5b505afa1580156125d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125f5919061479d565b600061247884612654565b6001600160a01b03909116600090815260066020526040902055565b6040516001600160a01b0380851660248301528316604482015260648101829052611f6d9085906323b872dd60e01b906084016124f0565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b1790529051600091829182916001600160a01b038616916126ab91906147e3565b600060405180830381855afa9150503d80600081146126e6576040519150601f19603f3d011682016040523d82523d6000602084013e6126eb565b606091505b50915091508180156126ff57506020815110155b61270857600080fd5b8080602001905181019061271c9190614769565b949350505050565b6000838314156127355750806109f8565b600084612747856402540be400614a32565b612751919061499b565b90506127666402540be4006302faf080614955565b811061279d576402540be40083612781826302faf080614955565b61278b9190614a32565b612795919061499b565b9150506109f8565b6402540be40061278b8483614a32565b6000806127b984612e93565b50915091506127c9828285612f34565b6001600160a01b03909416600090815260066020526040902093909355505050565b6001600160a01b03821661284b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a20565b6001600160a01b038216600090815260208190526040902054818110156128bf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610a20565b6001600160a01b03831660009081526020819052604081208383039055600280548492906128ee908490614a51565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b600080600061294661085b565b90505b80821015611f6d57600061295c836118a6565b90506402540be40061296d82610e0b565b6129779087614a32565b612981919061499b565b935061298e813386613049565b8261299881614ac9565b93505050612949565b6000806121f38888888888886130c8565b816129c1576121dd83826131fc565b6121dd8383836132db565b6000806129dc878787878761344f565b9050612a087f000000000000000000000000000000000000000000000000000000000000000082612c09565b979650505050505050565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000806121f388888888888861356c565b60006109f8838361366d565b6000818152600183016020526040812054612ac957508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610848565b506000610848565b6000604051602001612b90907f4f66666572537472756374286164647265737320696e7075745f746f6b656e2c81527f61646472657373206f75747075745f746f6b656e2c75696e7432353620696e7060208201527f75745f616d6f756e742c75696e74323536206f75747075745f616d6f756e742c60408201527f75696e7432353620676f6f645f756e74696c2c6164647265737320646573746960608201526e6e6174696f6e5f616464726573732960881b6080820152608f0190565b60408051601f198184030181528282528051602091820120908301526001600160a01b03808a169183019190915280881660608301526080820187905260a0820186905260c08201859052831660e0820152610100015b6040516020818303038152906040528051906020012090509695505050505050565b60405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6001600160a01b0381166000908152600660205260408120546001600160d81b038116919060f881901c6012811415612c855760019250612cd7565b6012811015612c9c5780601203600a0a9250612cd7565b60405162461bcd60e51b815260206004820152601060248201526f496e76616c696420646563696d616c7360801b6044820152606401610a20565b5050915091565b60008080806305f5e100612cf28c8e614a32565b612cfc919061499b565b90506000612d13612d0d8c84614a32565b876136a5565b90508015612d455780612d2e83670de0b6b3a7640000614a32565b612d38919061499b565b612d429085614955565b93505b60006305f5e100612d568a8c614a32565b612d60919061499b565b90506000612d77612d718a84614a32565b896136a5565b90508015612da95780612d9283670de0b6b3a7640000614a32565b612d9c919061499b565b612da69087614955565b95505b5050505060006305f5e1008d8c612dc09190614955565b612dca908e614a32565b612dd4919061499b565b90506000612de5612d0d8c84614a32565b90508015612e175780612e0083670de0b6b3a7640000614a32565b612e0a919061499b565b612e149084614955565b92505b60006305f5e100612e288c8b614a51565b612e32908c614a32565b612e3c919061499b565b90506000612e4d612d718a84614a32565b90508015612e7f5780612e6883670de0b6b3a7640000614a32565b612e72919061499b565b612e7c9086614955565b94505b50505091109b9a5050505050505050505050565b6001600160a01b03811660009081526006602052604081205460f881901c91906001600160d81b0381169060d881901c612ecd3243614955565b93508063ffffffff168463ffffffff161415612f2b5760405162461bcd60e51b815260206004820152601d60248201527f436c69707065723a204661696c656420747820756e697175656e6573730000006044820152606401610a20565b50509193909250565b6000612f3f82611d3c565b6001600160d81b0316612f6d63ffffffff60d81b60d886901b166001600160f81b031960f888901b16614955565b61271c9190614955565b6000612fcc826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166136f19092919063ffffffff16565b8051909150156121dd5780806020019051810190612fea9190614731565b6121dd5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610a20565b6002600554141561309c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a20565b60026005556130b56001600160a01b03841683836124c4565b6130be83612581565b5050600160055550565b60008086866040516020016130de9291906147b9565b604051602081830303815290604052805190602001209050604051602001613190907f4465706f73697453747275637428616464726573732073656e6465722c75696e81527f743235365b5d206465706f7369745f616d6f756e74732c75696e74323536206460208201527f6179735f6c6f636b65642c75696e7432353620706f6f6c5f746f6b656e732c75604082015271696e7432353620676f6f645f756e74696c2960701b606082015260720190565b60408051601f198184030181528282528051602091820120908301526001600160a01b038a1690820152606081018290526080810186905260a0810185905260c0810184905260e001604051602081830303815290604052805190602001209150509695505050505050565b6001600160a01b0382166132525760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610a20565b80600260008282546132649190614955565b90915550506001600160a01b03821660009081526020819052604081208054839290613291908490614955565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600082116133665760405162461bcd60e51b815260206004820152604c60248201527f436c69707065724469726563743a2043616e6e6f74206372656174652076657360448201527f74696e67206465706f73697420776974686f757420706f73697469766520766560648201526b1cdd1a5b99c81c195c9a5bd960a21b608482015260a401610a20565b6001600160a01b038316600090815260096020526040902060010154156133ee5760405162461bcd60e51b815260206004820152603660248201527f436c69707065724469726563743a204465706f7369746f7220616c7265616479604482015275081a185cc8185b881858dd1a5d994819195c1bdcda5d60521b6064820152608401610a20565b60006040518060400160405280846201518061340a9190614a32565b6134149042614955565b815260209081018490526001600160a01b0386166000908152600982526040902082518155908201516001909101559050611f6d30836131fc565b6000604051602001613505907f5769746864726177616c537472756374286164647265737320746f6b656e5f6881527f6f6c6465722c75696e7432353620706f6f6c5f746f6b656e5f616d6f756e745f60208201527f746f5f6275726e2c616464726573732061737365745f616464726573732c756960408201527f6e743235362061737365745f616d6f756e742c75696e7432353620676f6f645f606082015265756e74696c2960d01b608082015260860190565b60408051808303601f190181528282528051602091820120818401526001600160a01b039889168383015260608301979097529490961660808701525060a085019190915260c0808501919091528151808503909101815260e09093019052815191012090565b6000604051602001613613907f53696e676c654465706f73697453747275637428616464726573732073656e6481527f65722c6164647265737320746f6b656e2c75696e7432353620616d6f756e742c60208201527f75696e7432353620646179735f6c6f636b65642c75696e7432353620706f6f6c60408201527f5f746f6b656e732c75696e7432353620676f6f645f756e74696c2900000000006060820152607b0190565b60408051601f198184030181528282528051602091820120908301526001600160a01b03808a1691830191909152871660608201526080810186905260a0810185905260c0810184905260e0810183905261010001612be7565b600082600001828154811061369257634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b6000826136b457506000610848565b6136ea670de0b6b3a76400006136d16136cc86613700565b61376a565b6136db90856149af565b6136e5919061496d565b613775565b9050610848565b606061271c8484600085613788565b60006001600160ff1b03821115611da55760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401610a20565b6000610848826138ae565b60006108486137838361398d565b613a38565b6060824710156137e95760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610a20565b6001600160a01b0385163b6138405760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a20565b600080866001600160a01b0316858760405161385c91906147e3565b60006040518083038185875af1925050503d8060008114613899576040519150601f19603f3d011682016040523d82523d6000602084013e61389e565b606091505b5091509150612a08828286613a8a565b60008082136138d35760405163309fa7dd60e11b815260048101839052602401610a20565b6000670de0b6b3a764000083126138ec57506001613906565b6000199050826ec097ce7bc90715b34b9f10000000000492505b600061391b670de0b6b3a76400008505613ac3565b670de0b6b3a7640000808202945090915084821d9081141561393f57505002919050565b6706f05b59d3b200005b600081131561398457670de0b6b3a7640000828002059150671bc16d674ec80000821261397c579384019360019190911d905b60011d613949565b50505002919050565b6000808212156139ef5768033dd1780914b97114198212156139b157506000919050565b6139bd8260000361398d565b6ec097ce7bc90715b34b9f1000000000816139e857634e487b7160e01b600052601260045260246000fd5b0592915050565b680a688906bd8b0000008212613a1b5760405163e69458f960e01b815260048101839052602401610a20565b670de0b6b3a7640000604083901b046109f881613ba7565b919050565b600080821215611da55760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f7369746976656044820152606401610a20565b60608315613a995750816109f8565b825115613aa95782518084602001fd5b8160405162461bcd60e51b8152600401610a20919061488b565b6000600160801b8210613ae357608091821c91613ae09082614955565b90505b680100000000000000008210613b0657604091821c91613b039082614955565b90505b6401000000008210613b2557602091821c91613b229082614955565b90505b620100008210613b4257601091821c91613b3f9082614955565b90505b6101008210613b5e57600891821c91613b5b9082614955565b90505b60108210613b7957600491821c91613b769082614955565b90505b60048210613b9457600291821c91613b919082614955565b90505b60028210613a3357610848600182614955565b600160bf1b678000000000000000821615613bcb5768016a09e667f3bcc9090260401c5b674000000000000000821615613bea576801306fe0a31b7152df0260401c5b672000000000000000821615613c09576801172b83c7d517adce0260401c5b671000000000000000821615613c285768010b5586cf9890f62a0260401c5b670800000000000000821615613c47576801059b0d31585743ae0260401c5b670400000000000000821615613c6657680102c9a3e778060ee70260401c5b670200000000000000821615613c855768010163da9fb33356d80260401c5b670100000000000000821615613ca457680100b1afa5abcbed610260401c5b6680000000000000821615613cc25768010058c86da1c09ea20260401c5b6640000000000000821615613ce0576801002c605e2e8cec500260401c5b6620000000000000821615613cfe57680100162f3904051fa10260401c5b6610000000000000821615613d1c576801000b175effdc76ba0260401c5b6608000000000000821615613d3a57680100058ba01fb9f96d0260401c5b6604000000000000821615613d585768010002c5cc37da94920260401c5b6602000000000000821615613d76576801000162e525ee05470260401c5b6601000000000000821615613d945768010000b17255775c040260401c5b65800000000000821615613db1576801000058b91b5bc9ae0260401c5b65400000000000821615613dce57680100002c5c89d5ec6d0260401c5b65200000000000821615613deb5768010000162e43f4f8310260401c5b65100000000000821615613e0857680100000b1721bcfc9a0260401c5b65080000000000821615613e255768010000058b90cf1e6e0260401c5b65040000000000821615613e42576801000002c5c863b73f0260401c5b65020000000000821615613e5f57680100000162e430e5a20260401c5b65010000000000821615613e7c576801000000b1721835510260401c5b648000000000821615613e9857680100000058b90c0b490260401c5b644000000000821615613eb45768010000002c5c8601cc0260401c5b642000000000821615613ed0576801000000162e42fff00260401c5b641000000000821615613eec5768010000000b17217fbb0260401c5b640800000000821615613f08576801000000058b90bfce0260401c5b640400000000821615613f2457680100000002c5c85fe30260401c5b640200000000821615613f405768010000000162e42ff10260401c5b640100000000821615613f5c57680100000000b17217f80260401c5b6380000000821615613f775768010000000058b90bfc0260401c5b6340000000821615613f92576801000000002c5c85fe0260401c5b6320000000821615613fad57680100000000162e42ff0260401c5b6310000000821615613fc8576801000000000b17217f0260401c5b6308000000821615613fe357680100000000058b90c00260401c5b6304000000821615613ffe5768010000000002c5c8600260401c5b6302000000821615614019576801000000000162e4300260401c5b63010000008216156140345768010000000000b172180260401c5b6280000082161561404e576801000000000058b90c0260401c5b6240000082161561406857680100000000002c5c860260401c5b622000008216156140825768010000000000162e430260401c5b6210000082161561409c57680100000000000b17210260401c5b620800008216156140b65768010000000000058b910260401c5b620400008216156140d0576801000000000002c5c80260401c5b620200008216156140ea57680100000000000162e40260401c5b62010000821615614104576801000000000000b1720260401c5b61800082161561411d57680100000000000058b90260401c5b6140008216156141365768010000000000002c5d0260401c5b61200082161561414f576801000000000000162e0260401c5b6110008216156141685768010000000000000b170260401c5b610800821615614181576801000000000000058c0260401c5b61040082161561419a57680100000000000002c60260401c5b6102008216156141b357680100000000000001630260401c5b6101008216156141cc57680100000000000000b10260401c5b60808216156141e457680100000000000000590260401c5b60408216156141fc576801000000000000002c0260401c5b602082161561421457680100000000000000160260401c5b601082161561422c576801000000000000000b0260401c5b600882161561424457680100000000000000060260401c5b600482161561425c57680100000000000000030260401c5b600282161561427457680100000000000000010260401c5b600182161561428c57680100000000000000010260401c5b670de0b6b3a76400000260409190911c60bf031c90565b80356001600160a01b0381168114613a3357600080fd5b60008083601f8401126142cb578182fd5b50813567ffffffffffffffff8111156142e2578182fd5b6020830191508360208260051b85010111156142fd57600080fd5b9250929050565b60008083601f840112614315578182fd5b50813567ffffffffffffffff81111561432c578182fd5b6020830191508360208285010111156142fd57600080fd5b600060608284031215614355578081fd5b50919050565b60006020828403121561436c578081fd5b6109f8826142a3565b60008060408385031215614387578081fd5b614390836142a3565b915061439e602084016142a3565b90509250929050565b6000806000606084860312156143bb578081fd5b6143c4846142a3565b92506143d2602085016142a3565b9150604084013590509250925092565b60008060008060008060008060006101408a8c031215614400578485fd5b6144098a6142a3565b985061441760208b016142a3565b975060408a0135965060608a0135955060808a0135945061443a60a08b016142a3565b93506144498b60c08c01614344565b92506101208a013567ffffffffffffffff811115614465578283fd5b6144718c828d01614304565b915080935050809150509295985092959850929598565b6000806000806000806000610120888a0312156144a3578283fd5b6144ac886142a3565b96506144ba602089016142a3565b955060408801359450606088013593506080880135925060a088013591506144e58960c08a01614344565b905092959891949750929550565b6000806000806000806000610100888a03121561450e578283fd5b614517886142a3565b9650602088013567ffffffffffffffff811115614532578384fd5b61453e8a828b016142ba565b9097509550506040880135935060608801359250608088013591506144e58960a08a01614344565b60008060408385031215614578578182fd5b614581836142a3565b946020939093013593505050565b60008060008060008061010087890312156145a8578182fd5b6145b1876142a3565b9550602087013594506145c6604088016142a3565b935060608701359250608087013591506145e38860a08901614344565b90509295509295509295565b600080600080600080600080610120898b03121561460b578182fd5b614614896142a3565b975060208901359650604089013595506060890135945061463760808a016142a3565b93506146468a60a08b01614344565b925061010089013567ffffffffffffffff811115614662578283fd5b61466e8b828c01614304565b999c989b5096995094979396929594505050565b600080600080600080610100878903121561469b578384fd5b6146a4876142a3565b9550602087013594506040870135935060608701359250608087013591506145e38860a08901614344565b60008060008060008060e087890312156146e7578384fd5b863567ffffffffffffffff8111156146fd578485fd5b61470989828a016142ba565b9097509550506020870135935060408701359250606087013591506145e38860808901614344565b600060208284031215614742578081fd5b815180151581146109f8578182fd5b600060208284031215614762578081fd5b5035919050565b60006020828403121561477a578081fd5b5051919050565b600060208284031215614792578081fd5b81356109f881614b10565b6000602082840312156147ae578081fd5b81516109f881614b10565b60006001600160fb1b038311156147ce578081fd5b8260051b808584379190910190815292915050565b600082516147f5818460208701614a68565b9190910192915050565b606080825284519082018190526000906020906080840190828801845b828110156148385781518452928401929084019060010161481c565b50505083810382850152855180825286830191830190845b818110156148755783516001600160a01b031683529284019291840191600101614850565b5050809350505050826040830152949350505050565b60208152600082518060208401526148aa816040850160208701614a68565b601f01601f19169190910160400192915050565b60208082526010908201526f10db1a5c1c195c8e88115e1c1a5c995960821b604082015260600190565b60208082526016908201527521b634b83832b91d1024b73b30b634b2103a37b5b2b760511b604082015260600190565b84815283602082015260606040820152816060820152818360808301376000818301608090810191909152601f909201601f191601019392505050565b6000821982111561496857614968614ae4565b500190565b60008261497c5761497c614afa565b600160ff1b82146000198414161561499657614996614ae4565b500590565b6000826149aa576149aa614afa565b500490565b60006001600160ff1b03818413828413808216868404861116156149d5576149d5614ae4565b600160ff1b848712828116878305891216156149f3576149f3614ae4565b858712925087820587128484161615614a0e57614a0e614ae4565b87850587128184161615614a2457614a24614ae4565b505050929093029392505050565b6000816000190483118215151615614a4c57614a4c614ae4565b500290565b600082821015614a6357614a63614ae4565b500390565b60005b83811015614a83578181015183820152602001614a6b565b83811115611f6d5750506000910152565b600181811c90821680614aa857607f821691505b6020821081141561435557634e487b7160e01b600052602260045260246000fd5b6000600019821415614add57614add614ae4565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b60ff81168114610bed57600080fdfe4be05c8d54f5e056ab2cfa033e9f582057001268c3e28561bb999d35d2c8f2c8a264697066735822122054eacf1c3231a2523257c519d79262964b4be9e403a0eb5ad3c52aa89ebbc4e264736f6c6343000804003300000000000000000000000008938a61ba9523298dbcacee0cda5b371fb7f1f8000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000050000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2

Check out more smart contracts

Build blockchain magic with Alchemy

Alchemy combines the most powerful web3 developer products and tools with resources, community and legendary support.