[ { "inputs": [ { "internalType": "contract BlastTokenRegistry", "name": "registry_", "type": "address" }, { "internalType": "address", "name": "feeTo_", "type": "address" }, { "internalType": "address", "name": "owner_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AllowanceOverflow", "type": "error" }, { "inputs": [], "name": "AllowanceUnderflow", "type": "error" }, { "inputs": [], "name": "ErrBaseQuoteSame", "type": "error" }, { "inputs": [], "name": "ErrExpired", "type": "error" }, { "inputs": [], "name": "ErrFlashLoanFailed", "type": "error" }, { "inputs": [], "name": "ErrInitialized", "type": "error" }, { "inputs": [], "name": "ErrInvalidI", "type": "error" }, { "inputs": [], "name": "ErrInvalidK", "type": "error" }, { "inputs": [], "name": "ErrInvalidLPFeeRate", "type": "error" }, { "inputs": [], "name": "ErrInvalidSignature", "type": "error" }, { "inputs": [], "name": "ErrInvalidTargets", "type": "error" }, { "inputs": [], "name": "ErrIsZero", "type": "error" }, { "inputs": [], "name": "ErrMintAmountNotEnough", "type": "error" }, { "inputs": [], "name": "ErrNoBaseInput", "type": "error" }, { "inputs": [], "name": "ErrNotAllowed", "type": "error" }, { "inputs": [], "name": "ErrNotAllowedImplementationOperator", "type": "error" }, { "inputs": [], "name": "ErrNotClone", "type": "error" }, { "inputs": [], "name": "ErrNotEnough", "type": "error" }, { "inputs": [], "name": "ErrNotImplementation", "type": "error" }, { "inputs": [], "name": "ErrNotImplementationOwner", "type": "error" }, { "inputs": [], "name": "ErrNotPaused", "type": "error" }, { "inputs": [], "name": "ErrOverflow", "type": "error" }, { "inputs": [], "name": "ErrReserveAmountNotEnough", "type": "error" }, { "inputs": [], "name": "ErrSellBackNotAllowed", "type": "error" }, { "inputs": [], "name": "ErrWithdrawNotEnough", "type": "error" }, { "inputs": [], "name": "ErrZeroAddress", "type": "error" }, { "inputs": [], "name": "ErrZeroQuoteAmount", "type": "error" }, { "inputs": [], "name": "ErrZeroQuoteTarget", "type": "error" }, { "inputs": [], "name": "InsufficientAllowance", "type": "error" }, { "inputs": [], "name": "InsufficientBalance", "type": "error" }, { "inputs": [], "name": "InvalidPermit", "type": "error" }, { "inputs": [], "name": "PermitExpired", "type": "error" }, { "inputs": [], "name": "Reentrancy", "type": "error" }, { "inputs": [], "name": "TotalSupplyOverflow", "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": "amount", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "increaseShares", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "totalShares", "type": "uint256" } ], "name": "BuyShares", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "borrower", "type": "address" }, { "indexed": false, "internalType": "address", "name": "assetTo", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "baseAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "quoteAmount", "type": "uint256" } ], "name": "FlashLoan", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "LogBlastGasClaimed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "contractAddress", "type": "address" } ], "name": "LogBlastNativeClaimableEnabled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "contractAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "token", "type": "address" } ], "name": "LogBlastTokenClaimableEnabled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": true, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "LogBlastTokenClaimed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "feeTo", "type": "address" } ], "name": "LogFeeToChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "status", "type": "bool" } ], "name": "OperatorChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newLpFeeRate", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newI", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newK", "type": "uint256" } ], "name": "ParametersChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "paused", "type": "bool" } ], "name": "PausedChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "enum PMMPricing.RState", "name": "newRState", "type": "uint8" } ], "name": "RChange", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "payer", "type": "address" }, { "indexed": false, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "decreaseShares", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "totalShares", "type": "uint256" } ], "name": "SellShares", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "fromToken", "type": "address" }, { "indexed": false, "internalType": "address", "name": "toToken", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "fromAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "toAmount", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "trader", "type": "address" }, { "indexed": false, "internalType": "address", "name": "receiver", "type": "address" } ], "name": "Swap", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint112", "name": "newBaseTarget", "type": "uint112" }, { "indexed": false, "internalType": "uint112", "name": "newQuoteTarget", "type": "uint112" } ], "name": "TargetChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "TokenRescue", "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": "amount", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "result", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_I", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_K", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_LP_FEE_RATE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MIN_LP_FEE_RATE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_BASE_RESERVE_", "outputs": [ { "internalType": "uint112", "name": "", "type": "uint112" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_BASE_TARGET_", "outputs": [ { "internalType": "uint112", "name": "", "type": "uint112" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_BASE_TOKEN_", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_I_", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_K_", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_LP_FEE_RATE_", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_MT_FEE_RATE_MODEL_", "outputs": [ { "internalType": "contract IFeeRateModel", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_PAUSED_", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_PROTOCOL_OWNED_POOL_", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_QUOTE_RESERVE_", "outputs": [ { "internalType": "uint112", "name": "", "type": "uint112" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_QUOTE_TARGET_", "outputs": [ { "internalType": "uint112", "name": "", "type": "uint112" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_QUOTE_TOKEN_", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_RState_", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "result", "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": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "buyShares", "outputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" }, { "internalType": "uint256", "name": "baseInput", "type": "uint256" }, { "internalType": "uint256", "name": "quoteInput", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "callBlastPrecompile", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claimGasYields", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claimTokenYields", "outputs": [ { "internalType": "uint256", "name": "token0Amount", "type": "uint256" }, { "internalType": "uint256", "name": "token1Amount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "correctRState", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "feeTo", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "baseAmount", "type": "uint256" }, { "internalType": "uint256", "name": "quoteAmount", "type": "uint256" }, { "internalType": "address", "name": "assetTo", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "flashLoan", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getBaseInput", "outputs": [ { "internalType": "uint256", "name": "input", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getPMMState", "outputs": [ { "components": [ { "internalType": "uint256", "name": "i", "type": "uint256" }, { "internalType": "uint256", "name": "K", "type": "uint256" }, { "internalType": "uint256", "name": "B", "type": "uint256" }, { "internalType": "uint256", "name": "Q", "type": "uint256" }, { "internalType": "uint256", "name": "B0", "type": "uint256" }, { "internalType": "uint256", "name": "Q0", "type": "uint256" }, { "internalType": "enum PMMPricing.RState", "name": "R", "type": "uint8" } ], "internalType": "struct PMMPricing.PMMState", "name": "state", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getPMMStateForCall", "outputs": [ { "internalType": "uint256", "name": "i", "type": "uint256" }, { "internalType": "uint256", "name": "K", "type": "uint256" }, { "internalType": "uint256", "name": "B", "type": "uint256" }, { "internalType": "uint256", "name": "Q", "type": "uint256" }, { "internalType": "uint256", "name": "B0", "type": "uint256" }, { "internalType": "uint256", "name": "Q0", "type": "uint256" }, { "internalType": "uint256", "name": "R", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getQuoteInput", "outputs": [ { "internalType": "uint256", "name": "input", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getReserves", "outputs": [ { "internalType": "uint256", "name": "baseReserve", "type": "uint256" }, { "internalType": "uint256", "name": "quoteReserve", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "getUserFeeRate", "outputs": [ { "internalType": "uint256", "name": "lpFeeRate", "type": "uint256" }, { "internalType": "uint256", "name": "mtFeeRate", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "implementation", "outputs": [ { "internalType": "contract MagicLP", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "baseTokenAddress", "type": "address" }, { "internalType": "address", "name": "quoteTokenAddress", "type": "address" }, { "internalType": "uint256", "name": "lpFeeRate", "type": "uint256" }, { "internalType": "address", "name": "mtFeeRateModel", "type": "address" }, { "internalType": "uint256", "name": "i", "type": "uint256" }, { "internalType": "uint256", "name": "k", "type": "uint256" }, { "internalType": "bool", "name": "protocolOwnedPool", "type": "bool" } ], "name": "init", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_operator", "type": "address" } ], "name": "isImplementationOperator", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "operators", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "trader", "type": "address" }, { "internalType": "uint256", "name": "payBaseAmount", "type": "uint256" } ], "name": "querySellBase", "outputs": [ { "internalType": "uint256", "name": "receiveQuoteAmount", "type": "uint256" }, { "internalType": "uint256", "name": "mtFee", "type": "uint256" }, { "internalType": "enum PMMPricing.RState", "name": "newRState", "type": "uint8" }, { "internalType": "uint256", "name": "newBaseTarget", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "trader", "type": "address" }, { "internalType": "uint256", "name": "payQuoteAmount", "type": "uint256" } ], "name": "querySellQuote", "outputs": [ { "internalType": "uint256", "name": "receiveBaseAmount", "type": "uint256" }, { "internalType": "uint256", "name": "mtFee", "type": "uint256" }, { "internalType": "enum PMMPricing.RState", "name": "newRState", "type": "uint8" }, { "internalType": "uint256", "name": "newQuoteTarget", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ratioSync", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "registry", "outputs": [ { "internalType": "contract BlastTokenRegistry", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "rescue", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "resetTargetAndReserve", "outputs": [ { "internalType": "uint256", "name": "baseBalance", "type": "uint256" }, { "internalType": "uint256", "name": "quoteBalance", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "sellBase", "outputs": [ { "internalType": "uint256", "name": "receiveQuoteAmount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "sellQuote", "outputs": [ { "internalType": "uint256", "name": "receiveBaseAmount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shareAmount", "type": "uint256" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "baseMinAmount", "type": "uint256" }, { "internalType": "uint256", "name": "quoteMinAmount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" } ], "name": "sellShares", "outputs": [ { "internalType": "uint256", "name": "baseAmount", "type": "uint256" }, { "internalType": "uint256", "name": "quoteAmount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "feeTo_", "type": "address" } ], "name": "setFeeTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_operator", "type": "address" }, { "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "setOperator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "assetTo", "type": "address" }, { "internalType": "uint256", "name": "newLpFeeRate", "type": "uint256" }, { "internalType": "uint256", "name": "newI", "type": "uint256" }, { "internalType": "uint256", "name": "newK", "type": "uint256" }, { "internalType": "uint256", "name": "baseOutAmount", "type": "uint256" }, { "internalType": "uint256", "name": "quoteOutAmount", "type": "uint256" }, { "internalType": "uint256", "name": "minBaseReserve", "type": "uint256" }, { "internalType": "uint256", "name": "minQuoteReserve", "type": "uint256" } ], "name": "setParameters", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "paused", "type": "bool" } ], "name": "setPaused", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "enum PMMPricing.RState", "name": "newState", "type": "uint8" } ], "name": "setRState", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint112", "name": "baseTarget", "type": "uint112" }, { "internalType": "uint112", "name": "quoteTarget", "type": "uint112" } ], "name": "setTargets", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "sync", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "result", "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": [], "name": "updateTokenClaimables", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "version", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" } ]
60c06040523480156200001157600080fd5b5060405162005fa338038062005fa383398101604081905262000034916200012a565b600080546001600160a01b0319166001600160a01b038316908117825560405183928392917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35050306080526000805460ff60a01b1916600160a01b1790556001600160a01b038216620000bf57604051630ecc6fdf60e41b815260040160405180910390fd5b6001600160a01b038316620000e757604051630ecc6fdf60e41b815260040160405180910390fd5b506001600160a01b0391821660a052600a80546001600160a01b031916919092161790556200017e565b6001600160a01b03811681146200012757600080fd5b50565b6000806000606084860312156200014057600080fd5b83516200014d8162000111565b6020850151909350620001608162000111565b6040850151909250620001738162000111565b809150509250925092565b60805160a051615d266200027d6000396000818161071a015281816119af01528181611a5a015281816144f4015261459d01526000818161061e01528181610b4801528181610c3901528181610e590152818161111f015281816112e80152818161135101528181611499015281816118a10152818161190a01528181611af501528181611b3501528181611dce01528181611fd7015281816122ce01528181612482015281816125f4015281816129d501528181612cad01528181612cee01528181612dda015281816130670152818161385f01528181613b1701528181613b8c01528181613cca01528181613d0a0152613ebb0152615d266000f3fe608060405234801561001057600080fd5b50600436106103e65760003560e01c80637b1039991161020a578063c26e28e911610125578063e539ef49116100b8578063f46901ed11610087578063f46901ed14610964578063f6b06e7014610977578063f811d6921461098a578063fd1ed7e914610993578063fff6cae9146109d057600080fd5b8063e539ef4914610921578063e710500f14610934578063ec2fd46d14610948578063f2fde38b1461095157600080fd5b8063d505accf116100f4578063d505accf146108bf578063dd62ed3e146108d2578063dd93f59a146108fb578063e07759df1461090e57600080fd5b8063c26e28e91461087e578063c57a5d0314610891578063d0a494e414610899578063d4b97046146108ac57600080fd5b8063a382d1b91161019d578063b56ceaa61161016c578063b56ceaa614610812578063bbf5ce7814610825578063bd6015b41461083f578063bf357dae1461085257600080fd5b8063a382d1b9146107ce578063a9059cbb146107e3578063ab44a7a3146107f6578063b14d9036146107ff57600080fd5b806391685a31116101d957806391685a31146107885780639452879f1461079057806394cb00b8146107a357806395d89b41146107ab57600080fd5b80637b103999146107155780637d7215041461073c5780637ecebe001461074f5780638da5cb5b1461077557600080fd5b8063440966091161030557806366410a21116102985780637277c54f116102675780637277c54f146106ad57806373d74cf8146106ba57806373f6753d146106c257806377f58657146106d057806379a048761461070257600080fd5b806366410a211461064857806370a082311461066b57806371f9100c146106915780637246772c1461069957600080fd5b806354fd4d50116102d457806354fd4d50146105cd578063558a7297146106065780635c60da1b1461061957806365f6fcbb1461064057600080fd5b806344096609146105715780634a248d2a146105845780634c85b425146105975780634f3ab736146105c557600080fd5b806320ff430b1161037d57806333111c301161034c57806333111c301461053f5780633644e51514610552578063372885681461055a5780633e4c6ab01461056257600080fd5b806320ff430b146104ec57806323b872dd146104ff57806327bb555b14610512578063313ce5671461052557600080fd5b806313e7c9d8116103b957806313e7c9d814610480578063147a7311146104a357806316c38b3c146104c757806318160ddd146104dc57600080fd5b8063017e7e58146103eb57806306fdde031461041b5780630902f1ac14610430578063095ea7b31461045d575b600080fd5b600a546103fe906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6104236109d8565b604051610412919061547a565b6003546001600160701b0380821691600160701b9004165b60408051928352602083019190915201610412565b61047061046b3660046154c2565b610aea565b6040519015158152602001610412565b61047061048e3660046154ee565b60096020526000908152604090205460ff1681565b6104b96ec097ce7bc90715b34b9f100000000081565b604051908152602001610412565b6104da6104d5366004615519565b610b3e565b005b6805345cdf77eb68f44c546104b9565b6104da6104fa366004615536565b610c2f565b61047061050d366004615536565b610d6e565b6104da610520366004615577565b610e2c565b61052d61107f565b60405160ff9091168152602001610412565b6104da61054d3660046155ec565b6110f2565b6104b961125f565b6104b96112dc565b6104b9670de0b6b3a764000081565b61044861057f3660046154ee565b6113e3565b6001546103fe906001600160a01b031681565b6105aa6105a53660046154ee565b611467565b60408051938452602084019290925290820152606001610412565b610448611894565b60408051808201909152601281527f426c6173744d616769634c5020312e302e3000000000000000000000000000006020820152610423565b6104da61061436600461561f565b611aea565b6103fe7f000000000000000000000000000000000000000000000000000000000000000081565b6104b9611c45565b61065b6106563660046154c2565b611c95565b604051610412949392919061567e565b6104b96106793660046154ee565b6387a211a2600c908152600091909152602090205490565b6104b9611d78565b60005461047090600160a81b900460ff1681565b6104b9655af3107a400081565b6104da611dc4565b6104b9662386f26fc1000081565b6004546106ea90600160701b90046001600160701b031681565b6040516001600160701b039091168152602001610412565b61065b6107103660046154c2565b611ec4565b6103fe7f000000000000000000000000000000000000000000000000000000000000000081565b6003546106ea906001600160701b031681565b6104b961075d3660046154ee565b6338377508600c908152600091909152602090205490565b6000546103fe906001600160a01b031681565b610448611fa7565b6104da61079e3660046156a7565b612102565b6104da6122c4565b60408051808201909152600781526604d616769634c560cc1b6020820152610423565b6107d661233b565b6040516104129190615722565b6104706107f13660046154c2565b6123da565b6104b960065481565b6104da61080d366004615788565b612455565b6104486108203660046157e7565b6125c4565b6003546106ea90600160701b90046001600160701b031681565b6104b961084d3660046154ee565b6129a6565b60045461086990600160e01b900463ffffffff1681565b60405163ffffffff9091168152602001610412565b6104da61088c366004615863565b612ca3565b6104da612dad565b6104da6108a73660046158a5565b61303a565b6002546103fe906001600160a01b031681565b6104da6108cd36600461591e565b6136a7565b6104b96108e036600461598f565b602052637f5e9f20600c908152600091909152603490205490565b6104b96109093660046154ee565b613830565b61047061091c3660046154ee565b613af5565b6004546106ea906001600160701b031681565b60005461047090600160b01b900460ff1681565b6104b960075481565b6104da61095f3660046154ee565b613c26565b6104da6109723660046154ee565b613cbf565b6005546103fe906001600160a01b031681565b6104b960085481565b61099b613e2c565b604080519788526020880196909652948601939093526060850191909152608084015260a083015260c082015260e001610412565b6104da613e8e565b600154604080516395d89b4160e01b815290516060926001600160a01b0316916395d89b419160048083019260009291908290030181865afa158015610a22573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a4a91908101906159d3565b600260009054906101000a90046001600160a01b03166001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ac591908101906159d3565b604051602001610ad6929190615a75565b604051602081830303815290604052905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a35060015b92915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b8757604051637e933e4b60e11b815260040160405180910390fd5b600054600160b01b900460ff16610bb157604051630dfa0b4d60e21b815260040160405180910390fd5b610bba33613af5565b610bd7576040516308fc08f960e01b815260040160405180910390fd5b60008054821515600160a81b0260ff60a81b199091161790556040517fd83d5281277e107f080e362699d46082adb74e7dc6a9bccbc87d8ae9533add4490610c2490831515815260200190565b60405180910390a150565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c7857604051637e933e4b60e11b815260040160405180910390fd5b600054600160b01b900460ff16610ca257604051630dfa0b4d60e21b815260040160405180910390fd5b610cab33613af5565b610cc8576040516308fc08f960e01b815260040160405180910390fd5b6001546001600160a01b0384811691161480610cf157506002546001600160a01b038481169116145b15610d0f57604051630dfa0b4d60e21b815260040160405180910390fd5b610d236001600160a01b0384168383613f21565b604080516001600160a01b038481168252602082018490528516917ffb41bf2d731a9899a9f0358e96ddc7789c1295a4e37de1b12c9c86c90bafdd28910160405180910390a2505050565b60008360601b33602052637f5e9f208117600c526034600c2080546001810115610dae5780851115610da8576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c20805480851115610dd75763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b3068929eee149b4bd212685403610e4b5763ab143c066000526004601cfd5b3068929eee149b4bd21268557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b031603610ea957604051637e933e4b60e11b815260040160405180910390fd5b600054600160a81b900460ff16610ed357604051630da1988160e01b815260040160405180910390fd5b600054600160b01b900460ff16610efd57604051630dfa0b4d60e21b815260040160405180910390fd5b610f0633613af5565b610f23576040516308fc08f960e01b815260040160405180910390fd5b6003546001600160701b0316821180610f4d5750600354600160701b90046001600160701b031681115b15610f6b57604051630ee6e23560e41b815260040160405180910390fd5b851580610f8657506ec097ce7bc90715b34b9f100000000086115b15610fa457604051635366a7e560e01b815260040160405180910390fd5b670de0b6b3a7640000851115610fcd5760405163a43e8dbf60e01b815260040160405180910390fd5b655af3107a4000871080610fe75750662386f26fc1000087115b1561100557604051636c4f88dd60e01b815260040160405180910390fd5b60068790556007859055600886905561101e8885613f75565b6110288884613f92565b60408051888152602081018890529081018690527f44a7a992c6a00f6c43b49bcaabbc5da3b4bff76360f286759d2cfe2108c969529060600160405180910390a13868929eee149b4bd21268555050505050505050565b6001546040805163313ce56760e01b815290516000926001600160a01b03169163313ce5679160048083019260209291908290030181865afa1580156110c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ed9190615ac5565b905090565b3068929eee149b4bd2126854036111115763ab143c066000526004601cfd5b3068929eee149b4bd21268557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b03160361116f57604051637e933e4b60e11b815260040160405180910390fd5b600054600160a81b900460ff1661119957604051630da1988160e01b815260040160405180910390fd5b600054600160b01b900460ff166111c357604051630dfa0b4d60e21b815260040160405180910390fd5b6111cc33613af5565b6111e9576040516308fc08f960e01b815260040160405180910390fd5b600480546001600160701b038481166001600160e01b03199092168217600160701b918516918202179092556040805191825260208201929092527fd41e0f908d7947a11837919f514d2bbcf741f3cecb24b686cc1e37b5a417f0cf910160405180910390a13868929eee149b4bd21268555050565b60008061126a6109d8565b8051906020012090506040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81528160208201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a081209250505090565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361132757604051637e933e4b60e11b815260040160405180910390fd5b61133033613af5565b61134d576040516308fc08f960e01b815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d19190615ae2565b90506113dc81613faf565b9150505b90565b60055460065460405163773ab8c560e11b81526001600160a01b03848116600483015260248201929092526000928392169063ee75718a906044016040805180830381865afa15801561143a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145e9190615aff565b91509150915091565b60008060003068929eee149b4bd21268540361148b5763ab143c066000526004601cfd5b3068929eee149b4bd21268557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b0316036114e957604051637e933e4b60e11b815260040160405180910390fd5b600054600160b01b900460ff16801561150b5750600054600160a81b900460ff165b801561151d575061151b33613af5565b155b1561153b576040516308fc08f960e01b815260040160405180910390fd5b600154600090611554906001600160a01b031630613fbb565b600254909150600090611570906001600160a01b031630613fbb565b6003549091506001600160701b0380821691600160701b9004166115948285615b39565b95506115a08184615b39565b9450856000036115c357604051632997fff360e11b815260040160405180910390fd5b6805345cdf77eb68f44c546000036116f657826000036115f657604051635a52ce4b60e01b815260040160405180910390fd5b61160284600854613ff0565b831061160e578361161a565b61161a83600854614016565b96506116258761402b565b600460006101000a8154816001600160701b0302191690836001600160701b0316021790555061165f61165a88600854613ff0565b61402b565b600480546dffffffffffffffffffffffffffff60701b1916600160701b6001600160701b03938416810291909117918290559004166000036116b45760405163a1d6144160e01b815260040160405180910390fd5b6107d187116116d657604051632a11662560e21b815260040160405180910390fd5b6116e360006103e9614044565b6116ef6103e988615b39565b9650611802565b6000821180156117065750600081115b156118025760006117178784614016565b905060006117258784614016565b905060008282106117365782611738565b815b905061175461174e6805345cdf77eb68f44c5490565b82613ff0565b600454909a5061178790611771906001600160701b031683613ff0565b60045461165a91906001600160701b0316615b4c565b600480546001600160701b0319166001600160701b0392831617908190556117d8916117bb91600160701b90041683613ff0565b60045461165a9190600160701b90046001600160701b0316615b4c565b6004600e6101000a8154816001600160701b0302191690836001600160701b031602179055505050505b61180c8888614044565b6118168484614070565b7f1c172440bdebb59cd92a7f08f4227903a3305ab6f880cb25f93eddb66843a10288886118558b6387a211a2600c908152600091909152602090205490565b604080516001600160a01b03909416845260208401929092529082015260600160405180910390a1505050503868929eee149b4bd21268559193909250565b6000806001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036118e057604051637e933e4b60e11b815260040160405180910390fd5b6118e933613af5565b611906576040516308fc08f960e01b815260040160405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa158015611966573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198a9190615ae2565b600154604051633efc3c9f60e11b81526001600160a01b0391821660048201529192507f00000000000000000000000000000000000000000000000000000000000000001690637df8793e90602401602060405180830381865afa1580156119f6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1a9190615b5f565b15611a3857600154611a35906001600160a01b0316826140cc565b92505b600254604051633efc3c9f60e11b81526001600160a01b0391821660048201527f000000000000000000000000000000000000000000000000000000000000000090911690637df8793e90602401602060405180830381865afa158015611aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac79190615b5f565b15611ae557600254611ae2906001600160a01b0316826140cc565b91505b509091565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611b3357604051631d8ce6b160e31b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb59190615ae2565b6001600160a01b0316336001600160a01b031614611be65760405163bcb787b360e01b815260040160405180910390fd5b6001600160a01b038216600081815260096020908152604091829020805460ff191685151590811790915591519182527f193de8d500b5cb7b720089b258a39e9c1d0b840019a73ae7c51c3f9101732b02910160405180910390a25050565b60003068929eee149b4bd212685403611c665763ab143c066000526004601cfd5b6003546001546001600160701b0390911690611c8b906001600160a01b031630613fbb565b6110ed9190615b39565b6000806000806000611ca561233b565b9050611cb18187614205565b60055460065460405163773ab8c560e11b81526001600160a01b038c81166004830152602482019290925293985091955060009283929091169063ee75718a906044016040805180830381865afa158015611d10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d349190615aff565b91509150611d428782613ff0565b955085611d4f8884613ff0565b611d599089615b39565b611d639190615b39565b96508260a00151935050505092959194509250565b60003068929eee149b4bd212685403611d995763ab143c066000526004601cfd5b600354600254600160701b9091046001600160701b031690611c8b906001600160a01b031630613fbb565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611e0d57604051637e933e4b60e11b815260040160405180910390fd5b60045463ffffffff600160e01b909104166002148015611e3d57506004546003546001600160701b039182169116105b15611e6257600354600160701b8082046001600160701b039081169091029116176004555b60045463ffffffff600160e01b909104166001148015611e9d57506004546003546001600160701b03600160701b9283900481169290910416105b15611ec257600354600160701b8082046001600160701b039081169091029116176004555b565b6000806000806000611ed461233b565b9050611ee081876142fa565b60055460065460405163773ab8c560e11b81526001600160a01b038c81166004830152602482019290925293985091955060009283929091169063ee75718a906044016040805180830381865afa158015611f3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f639190615aff565b91509150611f718782613ff0565b955085611f7e8884613ff0565b611f889089615b39565b611f929190615b39565b96508260800151935050505092959194509250565b6000803068929eee149b4bd212685403611fc95763ab143c066000526004601cfd5b3068929eee149b4bd21268557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b03160361202757604051637e933e4b60e11b815260040160405180910390fd5b600054600160a81b900460ff1661205157604051630da1988160e01b815260040160405180910390fd5b600054600160b01b900460ff1661207b57604051630dfa0b4d60e21b815260040160405180910390fd5b61208433613af5565b6120a1576040516308fc08f960e01b815260040160405180910390fd5b6120a96143f7565b604080516001600160701b038085168252831660208201529294509092507fd41e0f908d7947a11837919f514d2bbcf741f3cecb24b686cc1e37b5a417f0cf910160405180910390a13868929eee149b4bd21268559091565b600054600160a01b900460ff161561212d57604051630c0e62f160e21b815260040160405180910390fd5b6001600160a01b038416158061214a57506001600160a01b038716155b8061215c57506001600160a01b038616155b1561217a57604051630ecc6fdf60e41b815260040160405180910390fd5b856001600160a01b0316876001600160a01b0316036121ac5760405163315746d160e21b815260040160405180910390fd5b8215806121c757506ec097ce7bc90715b34b9f100000000083115b156121e557604051635366a7e560e01b815260040160405180910390fd5b670de0b6b3a764000082111561220e5760405163a43e8dbf60e01b815260040160405180910390fd5b655af3107a40008510806122285750662386f26fc1000085115b1561224657604051636c4f88dd60e01b815260040160405180910390fd5b60008054600180546001600160a01b03808c166001600160a01b031992831617909255600280548b84169083161790556008879055600786905560068990556005805492891692909116919091179055821515600160b01b0262ff00ff60a01b1990911617600160a01b1790556122bb6144c1565b50505050505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361230d57604051637e933e4b60e11b815260040160405180910390fd5b61231633613af5565b612333576040516308fc08f960e01b815260040160405180910390fd5b611ec26144d2565b612343615409565b600854815260075460208201526003546001600160701b038082166040840152600160701b918290048116606084015260045480821660808501529182041660a0830152600160e01b900463ffffffff1660028111156123a5576123a5615658565b8160c0019060028111156123bb576123bb615658565b908160028111156123ce576123ce615658565b9052506113e081614624565b60006387a211a2600c52336000526020600c208054808411156124055763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b3068929eee149b4bd2126854036124745763ab143c066000526004601cfd5b3068929eee149b4bd21268557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b0316036124d257604051637e933e4b60e11b815260040160405180910390fd5b600054600160a81b900460ff166124fc57604051630da1988160e01b815260040160405180910390fd5b600054600160b01b900460ff1661252657604051630dfa0b4d60e21b815260040160405180910390fd5b61252f33613af5565b61254c576040516308fc08f960e01b815260040160405180910390fd5b80600281111561255e5761255e615658565b6004601c6101000a81548163ffffffff021916908363ffffffff1602179055507fdf176ad18be4f9f32efaa32f06e9d1175476504739a745f1399a6d3fa4b75917816040516125ad9190615b7c565b60405180910390a13868929eee149b4bd212685550565b6000803068929eee149b4bd2126854036125e65763ab143c066000526004601cfd5b3068929eee149b4bd21268557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b03160361264457604051637e933e4b60e11b815260040160405180910390fd5b600054600160b01b900460ff1680156126665750600054600160a81b900460ff165b8015612678575061267633613af5565b155b15612696576040516308fc08f960e01b815260040160405180910390fd5b428310156126b757604051630992d5df60e41b815260040160405180910390fd5b6387a211a2600c9081523360005260209020548911156126e9576040516243fcb960e31b815260040160405180910390fd5b306001600160a01b0389160361271257604051634b542fc760e01b815260040160405180910390fd5b60015460009061272b906001600160a01b031630613fbb565b600254909150600090612747906001600160a01b031630613fbb565b9050600061275c6805345cdf77eb68f44c5490565b9050806127698d85615b8f565b6127739190615ba6565b9450806127808d84615b8f565b61278a9190615ba6565b6004549094506127b09082906127aa908f906001600160701b0316615b8f565b906146c8565b6004546127c691906001600160701b0316615b39565b600460006101000a8154816001600160701b0302191690836001600160701b0316021790555061281a818d6004600e9054906101000a90046001600160701b03166001600160701b03166127aa9190615b8f565b6004546128379190600160701b90046001600160701b0316615b39565b6004600e6101000a8154816001600160701b0302191690836001600160701b031602179055508985108061286a57508884105b156128885760405163158b196360e11b815260040160405180910390fd5b612892338d614711565b61289c8b86613f75565b6128a68b85613f92565b6128ae614788565b861561291d578a6001600160a01b031663051fa387338e88888d8d6040518763ffffffff1660e01b81526004016128ea96959493929190615bf1565b600060405180830381600087803b15801561290457600080fd5b505af1158015612918573d6000803e3d6000fd5b505050505b7f55caccde83781f39bfc1296eff45655b6496729443a7d48958b18b3b685600a5338c8e61295d336387a211a2600c908152600091909152602090205490565b604080516001600160a01b03958616815294909316602085015291830152606082015260800160405180910390a15050503868929eee149b4bd212685597509795505050505050565b60003068929eee149b4bd2126854036129c75763ab143c066000526004601cfd5b3068929eee149b4bd21268557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b031603612a2557604051637e933e4b60e11b815260040160405180910390fd5b600054600160b01b900460ff168015612a475750600054600160a81b900460ff165b8015612a595750612a5733613af5565b155b15612a77576040516308fc08f960e01b815260040160405180910390fd5b600154600090612a90906001600160a01b031630613fbb565b600354909150600090612aac906001600160701b031683615b39565b90506000806000612abd3285611ec4565b9298509094509092509050612ad28787613f92565b60055460408051639850d32b60e01b81529051612b47926001600160a01b031691639850d32b9160048083019260209291908290030181865afa158015612b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b419190615ae2565b84613f92565b806002811115612b5957612b59615658565b600454600160e01b900463ffffffff908116911614612c0557612b7b8261402b565b600480546001600160701b0319166001600160701b0392909216919091179055806002811115612bad57612bad615658565b6004601c6101000a81548163ffffffff021916908363ffffffff1602179055507fdf176ad18be4f9f32efaa32f06e9d1175476504739a745f1399a6d3fa4b7591781604051612bfc9190615b7c565b60405180910390a15b600254612c26908690612c21906001600160a01b031630613fbb565b614070565b600154600254604080516001600160a01b039384168152918316602083015281018690526060810188905233608082015290881660a08201527f73adcdbf2d8fee0c1221daefef436a92c3c640e97ff2941e744bf5eef1ab346f9060c0015b60405180910390a150505050503868929eee149b4bd2126855919050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003612cec57604051637e933e4b60e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d6e9190615ae2565b6001600160a01b0316336001600160a01b031614612d9f5760405163bcb787b360e01b815260040160405180910390fd5b612da9828261481e565b5050565b3068929eee149b4bd212685403612dcc5763ab143c066000526004601cfd5b3068929eee149b4bd21268557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b031603612e2a57604051637e933e4b60e11b815260040160405180910390fd5b600054600160b01b900460ff16612e5457604051630dfa0b4d60e21b815260040160405180910390fd5b612e5d33613af5565b612e7a576040516308fc08f960e01b815260040160405180910390fd5b600154600090612e93906001600160a01b031630613fbb565b600254909150600090612eaf906001600160a01b031630613fbb565b90506001600160701b03821180612ecc57506001600160701b0381115b15612eea57604051633b13fa2560e11b815260040160405180910390fd5b6003546001600160701b03168214612f54576003546004546001600160701b0391821691612f1a91859116615b8f565b612f249190615ba6565b600480546001600160701b03199081166001600160701b0393841617909155600380549091169184169190911790555b600354600160701b90046001600160701b03168114612fe4576003546004546001600160701b03600160701b92839004811692612f9692859291900416615b8f565b612fa09190615ba6565b600480546001600160701b03928316600160701b9081026dffffffffffffffffffffffffffff60701b19928316179092556003805493851690920292169190911790555b6004546001600160701b0316158061300c5750600454600160701b90046001600160701b0316155b1561302a5760405163590ce9f760e01b815260040160405180910390fd5b50503868929eee149b4bd2126855565b3068929eee149b4bd2126854036130595763ab143c066000526004601cfd5b3068929eee149b4bd21268557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b0316036130b757604051637e933e4b60e11b815260040160405180910390fd5b600054600160b01b900460ff1680156130d95750600054600160a81b900460ff165b80156130eb57506130e933613af5565b155b15613109576040516308fc08f960e01b815260040160405180910390fd5b6131138386613f75565b61311d8385613f92565b801561318a5760405163241e125f60e01b81526001600160a01b0384169063241e125f906131579033908990899088908890600401615c32565b600060405180830381600087803b15801561317157600080fd5b505af1158015613185573d6000803e3d6000fd5b505050505b6001546000906131a3906001600160a01b031630613fbb565b6002549091506000906131bf906001600160a01b031630613fbb565b6003549091506001600160701b0316821080156131ed5750600354600160701b90046001600160701b031681105b1561320b5760405163fb0df69f60e01b815260040160405180910390fd5b6003546001600160701b03168210156134375760035460009061323e90600160701b90046001600160701b031683615b39565b90506000806000806132503286611c95565b6003549397509195509350915084906132739089906001600160701b0316615b39565b11156132925760405163fb0df69f60e01b815260040160405180910390fd5b60055460408051639850d32b60e01b81529051613307926001600160a01b031691639850d32b9160048083019260209291908290030181865afa1580156132dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133019190615ae2565b84613f75565b81600281111561331957613319615658565b600454600160e01b900463ffffffff9081169116146133cb5761333b8161402b565b6004600e6101000a8154816001600160701b0302191690836001600160701b0316021790555081600281111561337357613373615658565b6004601c6101000a81548163ffffffff021916908363ffffffff1602179055507fdf176ad18be4f9f32efaa32f06e9d1175476504739a745f1399a6d3fa4b75917826040516133c29190615b7c565b60405180910390a15b600254600154604080516001600160a01b0393841681529183166020830152810187905260608101869052336080820152908b1660a08201527f73adcdbf2d8fee0c1221daefef436a92c3c640e97ff2941e744bf5eef1ab346f9060c00160405180910390a150505050505b600354600160701b90046001600160701b031681101561363a5760035460009061346a906001600160701b031684615b39565b905060008060008061347c3286611ec4565b6003549397509195509350915084906134a6908890600160701b90046001600160701b0316615b39565b11156134c55760405163fb0df69f60e01b815260040160405180910390fd5b60055460408051639850d32b60e01b81529051613510926001600160a01b031691639850d32b9160048083019260209291908290030181865afa158015612b1d573d6000803e3d6000fd5b81600281111561352257613522615658565b600454600160e01b900463ffffffff9081169116146135ce576135448161402b565b600480546001600160701b0319166001600160701b039290921691909117905581600281111561357657613576615658565b6004601c6101000a81548163ffffffff021916908363ffffffff1602179055507fdf176ad18be4f9f32efaa32f06e9d1175476504739a745f1399a6d3fa4b75917826040516135c59190615b7c565b60405180910390a15b600154600254604080516001600160a01b0393841681529183166020830152810187905260608101869052336080820152908b1660a08201527f73adcdbf2d8fee0c1221daefef436a92c3c640e97ff2941e744bf5eef1ab346f9060c00160405180910390a150505050505b613642614788565b604080513381526001600160a01b0387166020820152908101889052606081018790527f0d7d75e01ab95780d3cd1c8ec0dd6c2ce19e3a20427eec8bf53283b6fb8e95f09060800160405180910390a150503868929eee149b4bd21268555050505050565b60006136b16109d8565b805190602001209050844211156136d057631a15a3cc6000526004601cfd5b6040518860601b60601c98508760601b60601c975065383775081901600e52886000526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83528360208401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a60208401528960408401528860608401528060808401528760a084015260c08320604e526042602c206000528660ff1660205285604052846060526020806080600060015afa8b3d51146137dc5763ddafbaef6000526004601cfd5b0190556303faf4f960a51b88176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b60003068929eee149b4bd2126854036138515763ab143c066000526004601cfd5b3068929eee149b4bd21268557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b0316036138af57604051637e933e4b60e11b815260040160405180910390fd5b600054600160b01b900460ff1680156138d15750600054600160a81b900460ff165b80156138e357506138e133613af5565b155b15613901576040516308fc08f960e01b815260040160405180910390fd5b60025460009061391a906001600160a01b031630613fbb565b60035490915060009061393d90600160701b90046001600160701b031683615b39565b9050600080600061394e3285611c95565b92985090945090925090506139638787613f75565b60055460408051639850d32b60e01b815290516139ae926001600160a01b031691639850d32b9160048083019260209291908290030181865afa1580156132dd573d6000803e3d6000fd5b8060028111156139c0576139c0615658565b600454600160e01b900463ffffffff908116911614613a72576139e28261402b565b6004600e6101000a8154816001600160701b0302191690836001600160701b03160217905550806002811115613a1a57613a1a615658565b6004601c6101000a81548163ffffffff021916908363ffffffff1602179055507fdf176ad18be4f9f32efaa32f06e9d1175476504739a745f1399a6d3fa4b7591781604051613a699190615b7c565b60405180910390a15b600154613a9290613a8c906001600160a01b031630613fbb565b86614070565b600254600154604080516001600160a01b039384168152918316602083015281018690526060810188905233608082015290881660a08201527f73adcdbf2d8fee0c1221daefef436a92c3c640e97ff2941e744bf5eef1ab346f9060c001612c85565b60405163027cf93b60e31b81526001600160a01b0382811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906313e7c9d890602401602060405180830381865afa158015613b60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b849190615b5f565b80610b3857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613be8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c0c9190615ae2565b6001600160a01b0316826001600160a01b03161492915050565b6000546001600160a01b03163314613c745760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b60448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614613d0857604051631d8ce6b160e31b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d8a9190615ae2565b6001600160a01b0316336001600160a01b031614613dbb5760405163bcb787b360e01b815260040160405180910390fd5b6001600160a01b038116613de257604051630ecc6fdf60e41b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0383169081179091556040517fa2be6f0ca37e208bf54ad96e6130d0618947335e2421e3b1a54f1e152dc19e6990600090a250565b600080600080600080600080613e4061233b565b905080600001519750806020015196508060400151955080606001519450806080015193508060a0015192508060c001516002811115613e8257613e82615658565b91505090919293949596565b3068929eee149b4bd212685403613ead5763ab143c066000526004601cfd5b3068929eee149b4bd21268557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b031603613f0b57604051637e933e4b60e11b815260040160405180910390fd5b613f13614788565b3868929eee149b4bd2126855565b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d156001600051141716613f66576390b8ec186000526004601cfd5b6000603452505050565b505050565b8015612da957600154612da9906001600160a01b03168383613f21565b8015612da957600254612da9906001600160a01b03168383613f21565b6000610b383083614865565b6000816014526f70a0823100000000000000000000000060005260208060246010865afa601f3d111660205102905092915050565b6000670de0b6b3a76400006140058385615b8f565b61400f9190615ba6565b9392505050565b600081614005670de0b6b3a764000085615b8f565b6000600160701b82106140405761404061492c565b5090565b6103e8811161406657604051632a11662560e21b815260040160405180910390fd5b612da9828261493a565b6140798261402b565b600380546001600160701b0319166001600160701b03929092169190911790556140a28161402b565b6003600e6101000a8154816001600160701b0302191690836001600160701b031602179055505050565b60405163e12f3a6160e01b81523060048201526000906001600160a01b0384169063aad3ec96908490839063e12f3a6190602401602060405180830381865afa15801561411d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141419190615c61565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561418c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141b09190615c61565b9050826001600160a01b0316826001600160a01b03167fa30c0ce17bf3c8bac49530dc31dd563bff05d9423e5cad437cf318dcdca065ba836040516141f791815260200190565b60405180910390a392915050565b600080808460c00151600281111561421f5761421f615658565b036142395761422e84846149b9565b9150600190506142f3565b60018460c00151600281111561425157614251615658565b036142605761422e84846149e0565b600084606001518560a001516142769190615b39565b905060008560800151866040015161428e9190615b39565b9050818510156142b9576142a286866149fd565b935060029250808411156142b4578093505b6142f0565b8185036142cc57809350600092506142f0565b6142df866142da8488615b39565b6149b9565b6142e99082615b4c565b9350600192505b50505b9250929050565b600080808460c00151600281111561431457614314615658565b0361432e576143238484614a31565b9150600290506142f3565b60018460c00151600281111561434657614346615658565b036143e2576000846040015185608001516143619190615b39565b905060008560a0015186606001516143799190615b39565b9050818510156143a45761438d8686614a50565b9350600192508084111561439f578093505b6143db565b8185036143b757809350600092506143db565b6143ca866143c58488615b39565b614a31565b6143d49082615b4c565b9350600292505b50506142f3565b6143ec8484614a7b565b946002945092505050565b6001546000908190614412906001600160a01b031630613fbb565b60025490925061442b906001600160a01b031630613fbb565b90506001600160701b0382118061444857506001600160701b0381115b1561446657604051633b13fa2560e11b815260040160405180910390fd5b600380546001600160701b03838116600160701b026001600160e01b0319928316918616918217811790935560048054909216179091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1690559091565b6144ca30614a9a565b612333614b2a565b600154604051633efc3c9f60e11b81526001600160a01b0391821660048201527f000000000000000000000000000000000000000000000000000000000000000090911690637df8793e90602401602060405180830381865afa15801561453d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145619190615b5f565b1561457b5760015461457b906001600160a01b0316614ba4565b600254604051633efc3c9f60e11b81526001600160a01b0391821660048201527f000000000000000000000000000000000000000000000000000000000000000090911690637df8793e90602401602060405180830381865afa1580156145e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061460a9190615b5f565b15611ec257600254611ec2906001600160a01b0316614ba4565b60028160c00151600281111561463c5761463c615658565b036146715761466981606001518260800151836040015161465d9190615b39565b83516020850151614cd1565b60a082015250565b60018160c00151600281111561468957614689615658565b036146c5576146bf81604001518260a0015183606001516146aa9190615b39565b83516146b590614e09565b8460200151614cd1565b60808201525b50565b6000806146d58385615ba6565b905060006146e38483615b8f565b6146ed9086615b39565b9050801561470957614700826001615b4c565b92505050610b38565b509050610b38565b6387a211a2600c52816000526020600c2080548083111561473a5763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c8054829003905560008181526001600160a01b0383167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b6001546000906147a1906001600160a01b031630613fbb565b6002549091506000906147bd906001600160a01b031630613fbb565b6003549091506001600160701b031682146147fc576147db8261402b565b600380546001600160701b0319166001600160701b03929092169190911790555b600354600160701b90046001600160701b03168114612da9576140a28161402b565b613f706002604360981b0183838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250614e2492505050565b60405163662aa11d60e01b81526001600160a01b038084166004830152821660248201526000906002604360981b019063662aa11d906044016020604051808303816000875af11580156148bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148e19190615c61565b9050816001600160a01b03167fb51863df39ec03c6f73d2b7cca8d628e639aa7a983ac8b7d80cbae57a7a67dfc8260405161491e91815260200190565b60405180910390a292915050565b6335278d126000526004601cfd5b6805345cdf77eb68f44c548181018181101561495e5763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b600061400f83608001518460800151846149d68760000151614e09565b8760200151614e68565b600061400f83608001518460400151846149d68760000151614e09565b600061400f8360a00151838560600151614a179190615b4c565b60608601518651614a2790614e09565b876020015161512c565b600061400f8360a001518460a001518486600001518760200151614e68565b600061400f8360800151838560400151614a6a9190615b4c565b60408601518651602088015161512c565b600061400f8360a0015184606001518486600001518760200151614e68565b60405163c8992e6160e01b81526002604360981b019063c8992e6190614aca906002906001908690600401615c7a565b600060405180830381600087803b158015614ae457600080fd5b505af1158015614af8573d6000803e3d6000fd5b50506040513092507fd519de07dfc6a474caab5e77d5829a6ca71ad6a4aafc5cc253bafe0f0c772bf59150600090a250565b6040516336b91f2b60e01b815273d1025f1359422ca16d9084908d629e0dba60ff286004820152732536fe9ab3f511540f2f9e2ec2a805005c3dd800906336b91f2b90602401600060405180830381600087803b158015614b8a57600080fd5b505af1158015614b9e573d6000803e3d6000fd5b50505050565b600260405163c44b11f760e01b81523060048201526001600160a01b0383169063c44b11f790602401602060405180830381865afa158015614bea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614c0e9190615cb7565b6002811115614c1f57614c1f615658565b03614c275750565b604051631a33757d60e01b81526001600160a01b03821690631a33757d90614c5490600290600401615b7c565b6020604051808303816000875af1158015614c73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614c979190615c61565b506040516001600160a01b0382169030907fc0478d04a635cbbb1c0f0aa6f7be639858f8500e9fcbd92185634151b12f324590600090a350565b600081600003614cf657614ce58385613ff0565b614cef9086615b4c565b9050614e01565b84600003614d0657506000614e01565b60008084614d15856004615b8f565b614d1f9190615b8f565b905080600003614d3957670de0b6b3a76400009150614dbd565b8581614d458282615b8f565b614d4f9190615ba6565b03614d9257614d8b6ec097ce7bc90715b34b9f100000000088614d728985615b8f565b614d7c9190615ba6565b614d869190615b4c565b615208565b9150614dbd565b614dba6ec097ce7bc90715b34b9f100000000087614db08a85615ba6565b614d7c9190615b8f565b91505b6000670de0b6b3a7640000614de5614dd58286615b39565b614de0886002615b8f565b614016565b614def9190615b4c565b9050614dfb8882613ff0565b93505050505b949350505050565b6000610b38826ec097ce7bc90715b34b9f1000000000615ba6565b606061400f838360006040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c65640000815250615278565b600085600003614e8b5760405163a03b73b760e01b815260040160405180910390fd5b83600003614e9b57506000615123565b81600003614ecb5784614eae8486613ff0565b11614ec257614ebd8385613ff0565b614ec4565b845b9050615123565b670de0b6b3a76400008203614f9757600080614ee78686615b8f565b905080600003614efa5760009150614f68565b8681614f068282615b8f565b614f109190615ba6565b03614f3a57614f1f8880615b8f565b614f298883615b8f565b614f339190615ba6565b9150614f68565b878581614f478a8a615b8f565b614f519190615ba6565b614f5b9190615b8f565b614f659190615ba6565b91505b614f7a670de0b6b3a764000083615b4c565b614f848389615b8f565b614f8e9190615ba6565b92505050615123565b6000614fa38585615b8f565b8787614faf8287615b8f565b614fb99190615ba6565b614fc39190615b8f565b614fcd9190615b4c565b9050600086614fe485670de0b6b3a7640000615b39565b614fee9190615b8f565b9050600082821061500e576150038383615b39565b91506000905061501f565b6150188284615b39565b9150600190505b615031670de0b6b3a764000083615ba6565b9150600061506f61504a87670de0b6b3a7640000615b39565b615055906004615b8f565b8b615060898e613ff0565b61506a9190615b8f565b613ff0565b905061507f81614d7c8580615b8f565b9050600061509587670de0b6b3a7640000615b39565b6150a0906002615b8f565b9050600083156150dc576150b48584615b39565b9050806000036150d75760405163a03b73b760e01b815260040160405180910390fd5b6150e9565b6150e68386615b4c565b90505b60006150f58284615353565b90508b81111561510f576000975050505050505050615123565b615119818d615b39565b9750505050505050505b95945050505050565b60008560000361514f5760405163a03b73b760e01b815260040160405180910390fd5b600061515b8587615b39565b6151659085615b8f565b90508260000361518957615181670de0b6b3a764000082615ba6565b915050615123565b60006151a9876151998a80615b8f565b6151a39190615ba6565b87614016565b905060006151b78583613ff0565b90506ec097ce7bc90715b34b9f100000000083826151dd88670de0b6b3a7640000615b39565b6151e79190615b4c565b6151f19190615b8f565b6151fb9190615ba6565b9998505050505050505050565b600060038211156152695750806000615222600283615ba6565b61522d906001615b4c565b90505b81811015615263579050806002816152488186615ba6565b6152529190615b4c565b61525c9190615ba6565b9050615230565b50919050565b8115615273575060015b919050565b6060824710156152d95760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401613c6b565b600080866001600160a01b031685876040516152f59190615cd4565b60006040518083038185875af1925050503d8060008114615332576040519150601f19603f3d011682016040523d82523d6000602084013e615337565b606091505b50915091506153488783838761536b565b979650505050505050565b600061400f826127aa670de0b6b3a764000086615b8f565b606083156153da5782516000036153d3576001600160a01b0385163b6153d35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401613c6b565b5081614e01565b614e0183838151156153ef5781518083602001fd5b8060405162461bcd60e51b8152600401613c6b919061547a565b6040518060e001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000600281111561545157615451615658565b905290565b60005b83811015615471578181015183820152602001615459565b50506000910152565b6020815260008251806020840152615499816040850160208701615456565b601f01601f19169190910160400192915050565b6001600160a01b03811681146146c557600080fd5b600080604083850312156154d557600080fd5b82356154e0816154ad565b946020939093013593505050565b60006020828403121561550057600080fd5b813561400f816154ad565b80151581146146c557600080fd5b60006020828403121561552b57600080fd5b813561400f8161550b565b60008060006060848603121561554b57600080fd5b8335615556816154ad565b92506020840135615566816154ad565b929592945050506040919091013590565b600080600080600080600080610100898b03121561559457600080fd5b883561559f816154ad565b9a60208a01359a5060408a013599606081013599506080810135985060a0810135975060c0810135965060e00135945092505050565b80356001600160701b038116811461527357600080fd5b600080604083850312156155ff57600080fd5b615608836155d5565b9150615616602084016155d5565b90509250929050565b6000806040838503121561563257600080fd5b823561563d816154ad565b9150602083013561564d8161550b565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b600381106146c5576146c5615658565b84815260208101849052608081016156958461566e565b60408201939093526060015292915050565b600080600080600080600060e0888a0312156156c257600080fd5b87356156cd816154ad565b965060208801356156dd816154ad565b95506040880135945060608801356156f4816154ad565b93506080880135925060a0880135915060c08801356157128161550b565b8091505092959891949750929550565b600060e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015161576e8161566e565b8060c08401525092915050565b600381106146c557600080fd5b60006020828403121561579a57600080fd5b813561400f8161577b565b60008083601f8401126157b757600080fd5b50813567ffffffffffffffff8111156157cf57600080fd5b6020830191508360208285010111156142f357600080fd5b600080600080600080600060c0888a03121561580257600080fd5b873596506020880135615814816154ad565b95506040880135945060608801359350608088013567ffffffffffffffff81111561583e57600080fd5b61584a8a828b016157a5565b989b979a5095989497959660a090950135949350505050565b6000806020838503121561587657600080fd5b823567ffffffffffffffff81111561588d57600080fd5b615899858286016157a5565b90969095509350505050565b6000806000806000608086880312156158bd57600080fd5b853594506020860135935060408601356158d6816154ad565b9250606086013567ffffffffffffffff8111156158f257600080fd5b6158fe888289016157a5565b969995985093965092949392505050565b60ff811681146146c557600080fd5b600080600080600080600060e0888a03121561593957600080fd5b8735615944816154ad565b96506020880135615954816154ad565b9550604088013594506060880135935060808801356159728161590f565b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156159a257600080fd5b82356159ad816154ad565b9150602083013561564d816154ad565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156159e557600080fd5b815167ffffffffffffffff808211156159fd57600080fd5b818401915084601f830112615a1157600080fd5b815181811115615a2357615a236159bd565b604051601f8201601f19908116603f01168101908382118183101715615a4b57615a4b6159bd565b81604052828152876020848701011115615a6457600080fd5b615348836020830160208801615456565b67026b0b3b4b1a628160c51b815260008351615a98816008850160208801615456565b602f60f81b6008918401918201528351615ab9816009840160208801615456565b01600901949350505050565b600060208284031215615ad757600080fd5b815161400f8161590f565b600060208284031215615af457600080fd5b815161400f816154ad565b60008060408385031215615b1257600080fd5b505080516020909101519092909150565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3857610b38615b23565b80820180821115610b3857610b38615b23565b600060208284031215615b7157600080fd5b815161400f8161550b565b60208101615b898361566e565b91905290565b8082028115828204841417610b3857610b38615b23565b600082615bc357634e487b7160e01b600052601260045260246000fd5b500490565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038716815285602082015284604082015283606082015260a060808201526000615c2660a083018486615bc8565b98975050505050505050565b6001600160a01b0386168152846020820152836040820152608060608201526000615348608083018486615bc8565b600060208284031215615c7357600080fd5b5051919050565b60608101615c878561566e565b84825260028410615c9a57615c9a615658565b8360208301526001600160a01b0383166040830152949350505050565b600060208284031215615cc957600080fd5b815161400f8161577b565b60008251615ce6818460208701615456565b919091019291505056fea2646970667358221220d6025beaa9070b8b017df2085f7ded1946e974f23b07c3142edd4f9c9516812e64736f6c634300081400330000000000000000000000004c44b16422c4cd58a37aad4fc3b8b376393a91dc0000000000000000000000004f31a6bb0091d87569c282531f5d0b52c36a2bc6000000000000000000000000fb3485c2e209a5cfbdc1447674256578f1a80ee3
0xa2646970667358221220d6025beaa9070b8b017df2085f7ded1946e974f23b07c3142edd4f9c9516812e64736f6c634300081400330000000000000000000000004c44b16422c4cd58a37aad4fc3b8b376393a91dc0000000000000000000000004f31a6bb0091d87569c282531f5d0b52c36a2bc6000000000000000000000000fb3485c2e209a5cfbdc1447674256578f1a80ee3
----Decoded View------------Arg [0] : registry_ (address): 0x5BeAa9070b8b017df2085F7deD1946e974F23b07Arg [1] : feeTo_ (address): 0x6F6c634300081400330000000000000000000000Arg [2] : owner_ (address): 0x4fc3b8b376393A91dc0000000000000000000000
----Encoded View------------Arg [0] : 0x0000000000000000000000005beaa9070b8b017df2085f7ded1946e974f23b07Arg [1] : 0x0000000000000000000000006f6c634300081400330000000000000000000000Arg [2] : 0x0000000000000000000000004fc3b8b376393a91dc0000000000000000000000