[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "contract IERC4626", "name": "yieldVault_", "type": "address" }, { "internalType": "contract PrizePool", "name": "_prizePool", "type": "address" }, { "internalType": "address", "name": "_claimer", "type": "address" }, { "internalType": "address", "name": "_yieldFeeRecipient", "type": "address" }, { "internalType": "uint32", "name": "_yieldFeePercentage", "type": "uint32" }, { "internalType": "address", "name": "_owner", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "BurnZeroShares", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "caller", "type": "address" }, { "internalType": "address", "name": "claimer", "type": "address" } ], "name": "CallerNotClaimer", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "caller", "type": "address" }, { "internalType": "address", "name": "liquidationPair", "type": "address" } ], "name": "CallerNotLP", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "caller", "type": "address" }, { "internalType": "address", "name": "yieldFeeRecipient", "type": "address" } ], "name": "CallerNotYieldFeeRecipient", "type": "error" }, { "inputs": [], "name": "ClaimRecipientZeroAddress", "type": "error" }, { "inputs": [], "name": "ClaimerZeroAddress", "type": "error" }, { "inputs": [], "name": "DepositZeroAssets", "type": "error" }, { "inputs": [], "name": "InvalidShortString", "type": "error" }, { "inputs": [], "name": "LPZeroAddress", "type": "error" }, { "inputs": [], "name": "LiquidationAmountOutZero", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "totalToWithdraw", "type": "uint256" }, { "internalType": "uint256", "name": "availableYield", "type": "uint256" } ], "name": "LiquidationExceedsAvailable", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "tokenIn", "type": "address" }, { "internalType": "address", "name": "prizeToken", "type": "address" } ], "name": "LiquidationTokenInNotPrizeToken", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "tokenOut", "type": "address" } ], "name": "LiquidationTokenOutNotSupported", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "totalAssets", "type": "uint256" }, { "internalType": "uint256", "name": "totalSupply", "type": "uint256" } ], "name": "LossyDeposit", "type": "error" }, { "inputs": [], "name": "MintZeroShares", "type": "error" }, { "inputs": [], "name": "OwnerZeroAddress", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "caller", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "PermitCallerNotOwner", "type": "error" }, { "inputs": [], "name": "PrizePoolZeroAddress", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" }, { "internalType": "uint256", "name": "yieldFeeBalance", "type": "uint256" } ], "name": "SharesExceedsYieldFeeBalance", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "str", "type": "string" } ], "name": "StringTooLong", "type": "error" }, { "inputs": [], "name": "SweepZeroAssets", "type": "error" }, { "inputs": [], "name": "TwabControllerZeroAddress", "type": "error" }, { "inputs": [], "name": "WithdrawZeroAssets", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "yieldFeePercentage", "type": "uint256" }, { "internalType": "uint256", "name": "maxYieldFeePercentage", "type": "uint256" } ], "name": "YieldFeePercentageExceedsMax", "type": "error" }, { "inputs": [], "name": "YieldVaultZeroAddress", "type": "error" }, { "inputs": [], "name": "ZeroTotalAssets", "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": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "ClaimYieldFeeShares", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "claimer", "type": "address" } ], "name": "ClaimerSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "assets", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "Deposit", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "tokenOut", "type": "address" }, { "indexed": true, "internalType": "address", "name": "liquidationPair", "type": "address" } ], "name": "LiquidationPairSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "OwnershipOffered", "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": "account", "type": "address" }, { "components": [ { "internalType": "bool", "name": "useBeforeClaimPrize", "type": "bool" }, { "internalType": "bool", "name": "useAfterClaimPrize", "type": "bool" }, { "internalType": "contract IVaultHooks", "name": "implementation", "type": "address" } ], "indexed": false, "internalType": "struct VaultHooks", "name": "hooks", "type": "tuple" } ], "name": "SetHooks", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "assets", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "Sponsor", "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": "liquidationPair", "type": "address" }, { "indexed": true, "internalType": "address", "name": "tokenOut", "type": "address" }, { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amountOut", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "yieldFee", "type": "uint256" } ], "name": "TransferYieldOut", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "assets", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "Withdraw", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "yieldFeePercentage", "type": "uint256" } ], "name": "YieldFeePercentageSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "yieldFeeRecipient", "type": "address" } ], "name": "YieldFeeRecipientSet", "type": "event" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FEE_PRECISION", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "HOOK_GAS", "outputs": [ { "internalType": "uint24", "name": "", "type": "uint24" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_YIELD_FEE", "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": "", "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": [], "name": "asset", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "availableYieldBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claimOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_winner", "type": "address" }, { "internalType": "uint8", "name": "_tier", "type": "uint8" }, { "internalType": "uint32", "name": "_prizeIndex", "type": "uint32" }, { "internalType": "uint96", "name": "_reward", "type": "uint96" }, { "internalType": "address", "name": "_rewardRecipient", "type": "address" } ], "name": "claimPrize", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_shares", "type": "uint256" } ], "name": "claimYieldFeeShares", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claimer", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_shares", "type": "uint256" } ], "name": "convertToAssets", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_assets", "type": "uint256" } ], "name": "convertToShares", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "currentYieldBuffer", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "uint256", "name": "_assets", "type": "uint256" }, { "internalType": "address", "name": "_receiver", "type": "address" } ], "name": "deposit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_assets", "type": "uint256" }, { "internalType": "address", "name": "_owner", "type": "address" }, { "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": "depositWithPermit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getHooks", "outputs": [ { "components": [ { "internalType": "bool", "name": "useBeforeClaimPrize", "type": "bool" }, { "internalType": "bool", "name": "useAfterClaimPrize", "type": "bool" }, { "internalType": "contract IVaultHooks", "name": "implementation", "type": "address" } ], "internalType": "struct VaultHooks", "name": "", "type": "tuple" } ], "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": "_tokenOut", "type": "address" }, { "internalType": "address", "name": "_liquidationPair", "type": "address" } ], "name": "isLiquidationPair", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_tokenOut", "type": "address" } ], "name": "liquidatableBalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidationPair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "maxDeposit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "maxMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "maxRedeem", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "maxWithdraw", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_shares", "type": "uint256" }, { "internalType": "address", "name": "_receiver", "type": "address" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "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": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pendingOwner", "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": "uint256", "name": "_assets", "type": "uint256" } ], "name": "previewDeposit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_shares", "type": "uint256" } ], "name": "previewMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_shares", "type": "uint256" } ], "name": "previewRedeem", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_assets", "type": "uint256" } ], "name": "previewWithdraw", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "prizePool", "outputs": [ { "internalType": "contract PrizePool", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_shares", "type": "uint256" }, { "internalType": "address", "name": "_receiver", "type": "address" }, { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "redeem", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_claimer", "type": "address" } ], "name": "setClaimer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "bool", "name": "useBeforeClaimPrize", "type": "bool" }, { "internalType": "bool", "name": "useAfterClaimPrize", "type": "bool" }, { "internalType": "contract IVaultHooks", "name": "implementation", "type": "address" } ], "internalType": "struct VaultHooks", "name": "hooks", "type": "tuple" } ], "name": "setHooks", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_liquidationPair", "type": "address" } ], "name": "setLiquidationPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_yieldFeePercentage", "type": "uint32" } ], "name": "setYieldFeePercentage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_yieldFeeRecipient", "type": "address" } ], "name": "setYieldFeeRecipient", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_assets", "type": "uint256" } ], "name": "sponsor", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "targetOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalAssets", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalDebt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalYieldBalance", "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": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "_receiver", "type": "address" }, { "internalType": "address", "name": "_tokenOut", "type": "address" }, { "internalType": "uint256", "name": "_amountOut", "type": "uint256" } ], "name": "transferTokensOut", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "twabController", "outputs": [ { "internalType": "contract TwabController", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_tokenIn", "type": "address" }, { "internalType": "uint256", "name": "_amountIn", "type": "uint256" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "verifyTokensIn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_assets", "type": "uint256" }, { "internalType": "address", "name": "_receiver", "type": "address" }, { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "withdraw", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "yieldBuffer", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "yieldFeeBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "yieldFeePercentage", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "yieldFeeRecipient", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "yieldVault", "outputs": [ { "internalType": "contract IERC4626", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
6102406040523480156200001257600080fd5b50604051620050ac380380620050ac83398101604081905262000035916200077b565b878787878787876103e8888086868b8b8a6001600160a01b031663b0812d7b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000084573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000aa919062000860565b6040805180820190915260018152603160f81b60208201528390819081856003620000d6838262000918565b506004620000e5828262000918565b50620000f79150839050600562000362565b610120526200010881600662000362565b61014052815160208084019190912060e052815190820120610100524660a0526200019660e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c052506001600160a01b038116600003620001cb576040516319b9815760e11b815260040160405180910390fd5b6001600160a01b039081166101605284169150620001fe9050576040516305d872f360e21b815260040160405180910390fd5b6001600160a01b0382166101805262000217816200039b565b50620002259050816200040d565b506001600160a01b0387166200024e576040516307877e8560e01b815260040160405180910390fd5b6001600160a01b0381166200027657604051630962257960e11b815260040160405180910390fd5b6000876001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002dd919062000860565b9050600080620002ed836200045f565b9150915081620002ff57601262000301565b805b60ff16610200526001600160a01b038084166101e0528a166101c0526101a08590526200032e8762000544565b62000339866200058e565b5050506001600160a01b03909e16610220525062000a769e505050505050505050505050505050565b600060208351101562000382576200037a836200062b565b905062000395565b816200038f848262000918565b5060ff90505b92915050565b6001600160a01b038116620003c357604051634d9808e160e11b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0383169081179091556040517fa04eca05f1c4f5674beaad80f345070124aa2192abced410b9b227c0c04e755a90600090a250565b600b80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b17905290516000918291829182916001600160a01b03871691620004a891620009e4565b600060405180830381855afa9150503d8060008114620004e5576040519150601f19603f3d011682016040523d82523d6000602084013e620004ea565b606091505b5091509150818015620004ff57506020815110155b1562000537576000818060200190518101906200051d919062000a02565b905060ff811162000535576001969095509350505050565b505b5060009485945092505050565b600d80546001600160a01b0319166001600160a01b0383169081179091556040517f5d55a9f17ebec95846f4d400ad862a51f9564a7973f6622d3c99a34feb6a0aec90600090a250565b6335a4e90063ffffffff82161115620005d157604051637bcc613b60e01b815263ffffffff821660048201526335a4e90060248201526044015b60405180910390fd5b600c805463ffffffff60a01b1916600160a01b63ffffffff8416908102919091179091556040519081527fefb99600b8c2baadc10ee4fe77c625b379acb4c29fbb0b90a5f17652d7de03419060200160405180910390a150565b600080829050601f8151111562000659578260405163305a27a960e01b8152600401620005c8919062000a1c565b8051620006668262000a51565b179392505050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620006a157818101518382015260200162000687565b50506000910152565b600082601f830112620006bc57600080fd5b81516001600160401b0380821115620006d957620006d96200066e565b604051601f8301601f19908116603f011681019082821181831017156200070457620007046200066e565b816040528381528660208588010111156200071e57600080fd5b6200073184602083016020890162000684565b9695505050505050565b6001600160a01b03811681146200075157600080fd5b50565b805162000761816200073b565b919050565b805163ffffffff811681146200076157600080fd5b600080600080600080600080610100898b0312156200079957600080fd5b88516001600160401b0380821115620007b157600080fd5b620007bf8c838d01620006aa565b995060208b0151915080821115620007d657600080fd5b50620007e58b828c01620006aa565b9750506040890151620007f8816200073b565b60608a01519096506200080b816200073b565b60808a01519095506200081e816200073b565b60a08a015190945062000831816200073b565b92506200084160c08a0162000766565b91506200085160e08a0162000754565b90509295985092959890939650565b6000602082840312156200087357600080fd5b815162000880816200073b565b9392505050565b600181811c908216806200089c57607f821691505b602082108103620008bd57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000913576000816000526020600020601f850160051c81016020861015620008ee5750805b601f850160051c820191505b818110156200090f57828155600101620008fa565b5050505b505050565b81516001600160401b038111156200093457620009346200066e565b6200094c8162000945845462000887565b84620008c3565b602080601f8311600181146200098457600084156200096b5750858301515b600019600386901b1c1916600185901b1785556200090f565b600085815260208120601f198616915b82811015620009b55788860151825594840194600190910190840162000994565b5085821015620009d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251620009f881846020870162000684565b9190910192915050565b60006020828403121562000a1557600080fd5b5051919050565b602081526000825180602084015262000a3d81604085016020870162000684565b601f01601f19169190910160400192915050565b80516020808301519190811015620008bd5760001960209190910360031b1b16919050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051610200516102205161448462000c2860003960006128620152600061052301526000818161056a015281816109e801528181610d420152818161133001528181611534015281816115fb015281816118ae01528181611b0f01528181611b5b0152818161208c015281816122bb01528181612aab01528181612aeb01528181612ba701528181612d8901528181612f0b01526130f601526000818161073d01528181610a70015281816113be01528181612b7501528181612c3001528181612ccd01528181612d5a01528181612f9401528181613048015261322b01526000818161047c01528181610dc7015261269901526000818161065e015281816106a00152818161107101528181611ed70152611fab01526000818161077701528181610cca015281816116d301528181611c8d01528181611d3a015281816127690152818161368001526137ff015260006119ef015260006119c4015260006129a901526000612981015260006128dc015260006129060152600061293001526144846000f3fe608060405234801561001057600080fd5b50600436106103f15760003560e01c806384b0196e11610215578063c8576e6111610125578063de03f408116100b8578063e63a391f11610087578063e63a391f14610997578063edb8eb80146109a2578063ef8b30f7146107ac578063f2fde38b146109b5578063fc7b9c18146109c857600080fd5b8063de03f408146108bc578063e16777c11461095c578063e30c397814610973578063e4e243ac1461098457600080fd5b8063d4122abf116100f4578063d4122abf1461087b578063d505accf14610883578063d905777e14610896578063dd62ed3e146108a957600080fd5b8063c8576e611461082f578063cdfb583214610842578063ce96cb7714610855578063d379be231461086857600080fd5b8063b0812d7b116101a8578063b6cce5e211610177578063b6cce5e2146107d0578063ba087652146107e3578063c63d75b6146107f6578063c6e6f59214610809578063c78c72c11461081c57600080fd5b8063b0812d7b14610772578063b0fcf62614610799578063b3d7f6b9146107ac578063b460af94146107bd57600080fd5b80639a1adf9a116101e45780639a1adf9a1461071c578063a457c2d714610725578063a7f8a5e214610738578063a9059cbb1461075f57600080fd5b806384b0196e146106e85780638da5cb5b1461070357806394bf804d1461063a57806395d89b411461071457600080fd5b80633644e5151161031057806363003b16116102a357806370a082311161027257806370a0823114610680578063715018a614610693578063719ce73e1461069b5780637cc99d3f146106c25780637ecebe00146106d557600080fd5b806363003b1614610614578063649f2394146106275780636e553f651461063a578063700f04ef1461064d57600080fd5b8063402d267d116102df578063402d267d146105d35780634cdad506146105e65780634e71e0c8146105f957806350921b231461060157600080fd5b80633644e5151461056057806338d52e0f1461056857806339509351146105a25780634006522b146105b557600080fd5b80631b5719241161038857806325fa66e01161035757806325fa66e0146104f45780632895cace14610509578063313ce5671461051c578063353d5a181461054d57600080fd5b80631b571924146104a65780631caa73cb146104b9578063237fd108146104d957806323b872dd146104e157600080fd5b80630a28a477116103c45780630a28a4771461045c5780630d1e52551461046f57806313dc6c5d1461047757806318160ddd1461049e57600080fd5b806301e1d114146103f657806306fdde031461041157806307a2d13a14610426578063095ea7b314610439575b600080fd5b6103fe6109d0565b6040519081526020015b60405180910390f35b610419610b59565b6040516104089190613d49565b6103fe610434366004613d5c565b610beb565b61044c610447366004613d8a565b610c28565b6040519015158152602001610408565b6103fe61046a366004613d5c565b610c42565b6103fe610c98565b6103fe7f000000000000000000000000000000000000000000000000000000000000000081565b6103fe610cb2565b61044c6104b4366004613db6565b610d3e565b6104c46335a4e90081565b60405163ffffffff9091168152602001610408565b6103fe610da8565b61044c6104ef366004613def565b610df9565b610507610502366004613e30565b610e1d565b005b6103fe610517366004613e77565b610ed2565b60405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610408565b61050761055b366004613d5c565b6111b4565b6103fe61129a565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610408565b61044c6105b0366004613d8a565b6112a4565b6105bf620249f081565b60405162ffffff9091168152602001610408565b6103fe6105e1366004613e30565b6112c6565b6103fe6105f4366004613d5c565b611460565b61050761146b565b6103fe61060f366004613ef0565b6114ec565b610507610622366004613e30565b611665565b600f5461058a906001600160a01b031681565b6103fe610648366004613f4a565b6116aa565b61058a61065b366004613e30565b507f000000000000000000000000000000000000000000000000000000000000000090565b6103fe61068e366004613e30565b6116b9565b61050761174b565b61058a7f000000000000000000000000000000000000000000000000000000000000000081565b6104196106d0366004613f6f565b611790565b6103fe6106e3366004613e30565b611998565b6106f06119b6565b6040516104089796959493929190613fc0565b600b546001600160a01b031661058a565b610419611a3f565b6103fe600e5481565b61044c610733366004613d8a565b611a4e565b61058a7f000000000000000000000000000000000000000000000000000000000000000081565b61044c61076d366004613d8a565b611ac9565b61058a7f000000000000000000000000000000000000000000000000000000000000000081565b6103fe6107a7366004613e30565b611ad7565b6103fe6107ba366004613d5c565b90565b6103fe6107cb366004614059565b611c50565b6103fe6107de366004613d5c565b611c6b565b6103fe6107f1366004614059565b611de2565b6103fe610804366004613e30565b611dfd565b6103fe610817366004613d5c565b611e08565b61050761082a36600461409b565b611e3d565b61050761083d3660046140ad565b611e97565b610507610850366004613e30565b612028565b6103fe610863366004613e30565b61206a565b600a5461058a906001600160a01b031681565b6103fe612128565b610507610891366004614136565b612135565b6103fe6108a4366004613e30565b612299565b6103fe6108b7366004613db6565b6123a2565b61092d6108ca366004613e30565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260098352839020835191820184525460ff80821615158352610100820416151592820192909252620100009091049092169082015290565b60408051825115158152602080840151151590820152918101516001600160a01b031690820152606001610408565b600c546104c490600160a01b900463ffffffff1681565b600c546001600160a01b031661058a565b6105076109923660046141a4565b6123cd565b6104c4633b9aca0081565b600d5461058a906001600160a01b031681565b6105076109c3366004613e30565b61240f565b6103fe6124f6565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610a37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5b91906141bf565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307a2d13a9082906370a0823190602401602060405180830381865afa158015610ac7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aeb91906141bf565b6040518263ffffffff1660e01b8152600401610b0991815260200190565b602060405180830381865afa158015610b26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4a91906141bf565b610b5491906141ee565b905090565b606060038054610b6890614201565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9490614201565b8015610be15780601f10610bb657610100808354040283529160200191610be1565b820191906000526020600020905b815481529060010190602001808311610bc457829003601f168201915b5050505050905090565b600080610bf66124f6565b90506000610c026109d0565b9050818110610c1357509192915050565b610c208482846000612508565b949350505050565b600033610c36818585612563565b60019150505b92915050565b600080610c4d6109d0565b905080600003610c705760405163f0bd6f1b60e01b815260040160405180910390fd5b6000610c7a6124f6565b9050808210610c8b57509192915050565b610c208482846001612508565b6000610b54610ca56109d0565b610cad6124f6565b612688565b6040516339370aa960e21b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e4dc2aa4906024015b602060405180830381865afa158015610d1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5491906141bf565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161480610d8857506001600160a01b03831630145b8015610da15750600f546001600160a01b038381169116145b9392505050565b600080610dc3610db66109d0565b610dbe6124f6565b6126d3565b90507f0000000000000000000000000000000000000000000000000000000000000000808210610df35792915050565b50919050565b600033610e078582856126ed565b610e12858585612767565b506001949350505050565b33610e30600b546001600160a01b031690565b6001600160a01b031614610e5f5760405162461bcd60e51b8152600401610e5690614235565b60405180910390fd5b6001600160a01b038116610e8657604051630ac5b1f760e11b815260040160405180910390fd5b600f80546001600160a01b0319166001600160a01b03831690811790915560405130907fb540015bf51edcbfd9e43df5316486615bf954f7b4c6cc0304eb3757f1601f9590600090a350565b600a546000906001600160a01b03163314610f1157600a54604051637f4b239760e11b8152610e569133916001600160a01b039091169060040161426c565b6001600160a01b03861660009081526009602052604081205460ff1615610ff1576001600160a01b038781166000818152600960205260409081902054905163b4db727f60e01b8152600481019290925260ff8916602483015263ffffffff881660448301526001600160601b038716606483015285831660848301526201000090049091169063b4db727f90620249f09060a40160206040518083038160008887f1158015610fc5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fea9190614286565b9050610ff4565b50855b6001600160a01b03811661101b5760405163e1c2596f60e01b815260040160405180910390fd5b6040516311e7375f60e21b81526001600160a01b03888116600483015260ff8816602483015263ffffffff8716604483015282811660648301526001600160601b038616608483015284811660a48301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063479cdd7c9060c4016020604051808303816000875af11580156110bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e091906141bf565b6001600160a01b038916600090815260096020526040902054909150610100900460ff16156111a9576001600160a01b0388811660008181526009602052604090819020549051635100dbf960e01b8152600481019290925260ff8a16602483015263ffffffff8916604483015260648201849052848316608483015262010000900490911690635100dbf990620249f09060a401600060405180830381600088803b15801561118f57600080fd5b5087f11580156111a3573d6000803e3d6000fd5b50505050505b979650505050505050565b600d546001600160a01b031633146111f057600d54604051630e69d0db60e11b8152610e569133916001600160a01b039091169060040161426c565b806000036112115760405163b31accb760e01b815260040160405180910390fd5b600e548082111561123f576040516304ed794960e21b81526004810183905260248101829052604401610e56565b80600e600082825461125191906142a3565b9091555061126190503383612856565b60405182815233907f9b51aebdd88b3f321397bdf9848415ce15dedd1783c775b93b8036c6b0af0f569060200160405180910390a25050565b6000610b546128cf565b600033610c368185856112b783836123a2565b6112c191906141ee565b612563565b6000806112d1610cb2565b905060006112de826129fa565b9050806112e96109d0565b10156112f9575060009392505050565b600061130b836001600160601b030390565b6040516370a0823160e01b815230600482015290915060009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015611377573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139b91906141bf565b60405163402d267d60e01b81523060048201529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063402d267d90602401602060405180830381865afa158015611405573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142991906141bf565b905080821061144057506000979650505050505050565b81810392508284106114525782611454565b835b98975050505050505050565b6000610c3c82610beb565b600c546001600160a01b031633146114c55760405162461bcd60e51b815260206004820152601f60248201527f4f776e61626c652f63616c6c65722d6e6f742d70656e64696e674f776e6572006044820152606401610e56565b600c546114da906001600160a01b0316612a0a565b600c80546001600160a01b0319169055565b60006001600160a01b038616331461151b5733866040516358fe888560e01b8152600401610e5692919061426c565b604051636eb1769f60e11b815287906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063dd62ed3e9061156b908a90309060040161426c565b602060405180830381865afa158015611588573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ac91906141bf565b146116585760405163d505accf60e01b81526001600160a01b038781166004830152306024830152604482018990526064820187905260ff8616608483015260a4820185905260c482018490527f0000000000000000000000000000000000000000000000000000000000000000169063d505accf9060e401600060405180830381600087803b15801561163f57600080fd5b505af1158015611653573d6000803e3d6000fd5b505050505b866111a987808380612a5c565b33611678600b546001600160a01b031690565b6001600160a01b03161461169e5760405162461bcd60e51b8152600401610e5690614235565b6116a781612ea9565b50565b600082610da133848380612a5c565b604051633de222bb60e21b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f7888aec9061170a903090869060040161426c565b602060405180830381865afa158015611727573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c91906141bf565b3361175e600b546001600160a01b031690565b6001600160a01b0316146117845760405162461bcd60e51b8152600401610e5690614235565b61178e6000612a0a565b565b600f546060906001600160a01b031633146117cf57600f546040516317140eff60e11b8152610e569133916001600160a01b039091169060040161426c565b816000036117f057604051634750846560e11b815260040160405180910390fd5b60006117fa610c98565b600c54909150600160a01b900463ffffffff166000811561184f578461182483633b9aca006142b6565b63ffffffff16611838633b9aca00886142da565b6118429190614307565b61184c91906142a3565b90505b8261185a82876141ee565b111561188e5761186a81866141ee565b6040516374281bbb60e11b8152600481019190915260248101849052604401610e56565b80156118ac5780600e60008282546118a691906141ee565b90915550505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b0316036118f4576118ef8786612ef3565b611932565b306001600160a01b0387160361190e576118ef8786612856565b6040516304bc290f60e51b81526001600160a01b0387166004820152602401610e56565b60408051868152602081018390526001600160a01b03808a16929089169133917f64d8a6bd56c2c610cd5d2ed87ba4bde3659df2650c7ad8aabde397decf94e07d910160405180910390a450506040805160208101909152600081529695505050505050565b6001600160a01b038116600090815260076020526040812054610c3c565b6000606080828080836119ea7f00000000000000000000000000000000000000000000000000000000000000006005613168565b611a157f00000000000000000000000000000000000000000000000000000000000000006006613168565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b606060048054610b6890614201565b60003381611a5c82866123a2565b905083811015611abc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610e56565b610e128286868403612563565b600033610c36818585612767565b600080611ae2610cb2565b90506000306001600160a01b03851603611b0d57611b06826001600160601b030390565b9050611bea565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031603611be0576040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bce91906141bf565b611bd6613213565b611b0691906141ee565b5060009392505050565b600c54600090611c3590611c0f90600160a01b900463ffffffff16633b9aca006142b6565b63ffffffff16633b9aca00611c2e611c256109d0565b610cad886129fa565b91906132c4565b905081811015611c455780611c47565b815b95945050505050565b600080611c5c85610c42565b9050610c2033858584896133ae565b60003382611c7b82808380612a5c565b6040516316bef07560e31b81526001907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b5f783a890611ccc903090879060040161426c565b602060405180830381865afa158015611ce9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0d9190614286565b6001600160a01b031614611d975760405163766c4f3760e01b81526001600160a01b0383811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063766c4f3790602401600060405180830381600087803b158015611d7e57600080fd5b505af1158015611d92573d6000803e3d6000fd5b505050505b60408051858152602081018390526001600160a01b038416917f64939930c3fd0a1fe9e7fb9810272db7730a0f02b900972787bcb79fb6fd3d2d910160405180910390a29392505050565b600080611dee85611460565b9050610c2033858588856133ae565b6000610c3c826112c6565b600080611e136124f6565b90506000611e1f6109d0565b9050818110611e3057509192915050565b610c208483836000612508565b3360009081526009602052604090208190611e588282614337565b505060405133907f5eaf51436f308830fc57b00bb6843675b383bce9b2c669e1b9ce60de8bbb9e8e90611e8c9084906143b1565b60405180910390a250565b600f546001600160a01b03163314611ed357600f546040516317140eff60e11b8152610e569133916001600160a01b039091169060040161426c565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0ef024a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f579190614286565b9050806001600160a01b0316856001600160a01b031614611f8f578481604051630c0760c160e21b8152600401610e5692919061426c565b604051630eedfb4560e41b8152306004820152602481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063eedfb450906044016020604051808303816000875af1158015611ffc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202091906141bf565b505050505050565b3361203b600b546001600160a01b031690565b6001600160a01b0316146120615760405162461bcd60e51b8152600401610e5690614235565b6116a78161348f565b6040516370a0823160e01b815230600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156120d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f791906141bf565b6120ff613213565b61210991906141ee565b90506000612119610434856116b9565b9050818110610da15781610c20565b6000610b54610db66109d0565b834211156121855760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610e56565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886121b48c613500565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061220f82613526565b9050600061221f82878787613553565b9050896001600160a01b0316816001600160a01b0316146122825760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610e56565b61228d8a8a8a612563565b50505050505050505050565b6040516370a0823160e01b815230600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015612302573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232691906141bf565b61232e613213565b61233891906141ee565b90506000612345846116b9565b905081811115610da15760006123596109d0565b905060006123656124f6565b9050808210612378575091949350505050565b60006123878583856001612508565b90508381101561239757806111a9565b509195945050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b336123e0600b546001600160a01b031690565b6001600160a01b0316146124065760405162461bcd60e51b8152600401610e5690614235565b6116a78161357b565b33612422600b546001600160a01b031690565b6001600160a01b0316146124485760405162461bcd60e51b8152600401610e5690614235565b6001600160a01b0381166124ac5760405162461bcd60e51b815260206004820152602560248201527f4f776e61626c652f70656e64696e674f776e65722d6e6f742d7a65726f2d6164604482015264647265737360d81b6064820152608401610e56565b600c80546001600160a01b0319166001600160a01b0383169081179091556040517f239a2ddded15777fa246aed5f7e1a9bc69a39d4eb4a397034d1d85766cca7d4c90600090a250565b6000610b54612503610cb2565b6129fa565b6000806125168686866132c4565b9050600183600281111561252c5761252c6143ff565b148015612549575060008480612544576125446142f1565b868809115b15611c47576125596001826141ee565b9695505050505050565b6001600160a01b0383166125c55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610e56565b6001600160a01b0382166126265760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610e56565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60008061269584846126d3565b90507f00000000000000000000000000000000000000000000000000000000000000008082106126c85790039050610c3c565b600092505050610c3c565b60008282106126e457506000610c3c565b50808203610c3c565b60006126f984846123a2565b9050600019811461276157818110156127545760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610e56565b6127618484848403612563565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c661667d84846127a185613612565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526001600160601b03166044820152606401600060405180830381600087803b1580156127f957600080fd5b505af115801561280d573d6000803e3d6000fd5b50505050816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161267b91815260200190565b612860828261367e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ca0dcf166040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156128bb57600080fd5b505af1158015612020573d6000803e3d6000fd5b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561292857507f000000000000000000000000000000000000000000000000000000000000000046145b1561295257507f000000000000000000000000000000000000000000000000000000000000000090565b610b54604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b6000600e5482610c3c91906141ee565b600b80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80600003612a7d5760405163b31accb760e01b815260040160405180910390fd5b81600003612a9e5760405163f0f4d07b60e01b815260040160405180910390fd5b612ad36001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016853085613764565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015612b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5e91906141bf565b60405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390529192507f00000000000000000000000000000000000000000000000000000000000000009091169063095ea7b3906044016020604051808303816000875af1158015612bf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c169190614415565b5060405163ef8b30f760e01b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ef8b30f790602401602060405180830381865afa158015612c7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ca391906141bf565b6040516394bf804d60e01b8152600481018290523060248201529091506000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906394bf804d906044016020604051808303816000875af1158015612d16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d3a91906141bf565b9050828114612df85760405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152600060248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303816000875af1158015612dd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612df69190614415565b505b612e028685612856565b612e0a6124f6565b612e126109d0565b1015612e4a57612e206109d0565b612e286124f6565b6040516315c5982d60e11b815260048101929092526024820152604401610e56565b856001600160a01b0316876001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78787604051612e98929190918252602082015260400190565b60405180910390a350505050505050565b600d80546001600160a01b0319166001600160a01b0383169081179091556040517f5d55a9f17ebec95846f4d400ad862a51f9564a7973f6622d3c99a34feb6a0aec90600090a250565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015612f5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f7e91906141bf565b9050808211156130c05760006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016630a28a477612fc384866142a3565b6040518263ffffffff1660e01b8152600401612fe191815260200190565b602060405180830381865afa158015612ffe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061302291906141bf565b604051635d043b2960e11b815260048101829052306024820181905260448201529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ba087652906064016020604051808303816000875af1158015613099573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130bd91906141bf565b50505b6001600160a01b03831630146131635760405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af115801561313f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127619190614415565b505050565b606060ff83146131825761317b836137be565b9050610c3c565b81805461318e90614201565b80601f01602080910402602001604051908101604052809291908181526020018280546131ba90614201565b80156132075780601f106131dc57610100808354040283529160200191613207565b820191906000526020600020905b8154815290600101906020018083116131ea57829003601f168201915b50505050509050610c3c565b604051636c82bbbf60e11b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307a2d13a90829063d905777e90602401602060405180830381865afa158015613282573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132a691906141bf565b6040518263ffffffff1660e01b8152600401610cfd91815260200190565b60008080600019858709858702925082811083820303915050806000036132fe578382816132f4576132f46142f1565b0492505050610da1565b8084116133455760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401610e56565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b806000036133cf5760405163f3c41a2b60e01b815260040160405180910390fd5b816000036133f057604051632f73c6c360e11b815260040160405180910390fd5b826001600160a01b0316856001600160a01b031614613414576134148386846126ed565b61341e83836137fd565b6134288482612ef3565b826001600160a01b0316846001600160a01b0316866001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8486604051613480929190918252602082015260400190565b60405180910390a45050505050565b6001600160a01b0381166134b657604051634d9808e160e11b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0383169081179091556040517fa04eca05f1c4f5674beaad80f345070124aa2192abced410b9b227c0c04e755a90600090a250565b6001600160a01b0381166000908152600760205260409020805460018101825590610df3565b6000610c3c6135336128cf565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000613564878787876138db565b915091506135718161399f565b5095945050505050565b6335a4e90063ffffffff821611156135b857604051637bcc613b60e01b815263ffffffff821660048201526335a4e9006024820152604401610e56565b600c805463ffffffff60a01b1916600160a01b63ffffffff8416908102919091179091556040519081527fefb99600b8c2baadc10ee4fe77c625b379acb4c29fbb0b90a5f17652d7de03419060200160405180910390a150565b60006001600160601b0382111561367a5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201526536206269747360d01b6064820152608401610e56565b5090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631b025a40836136b784613612565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526001600160601b03166024820152604401600060405180830381600087803b15801561370657600080fd5b505af115801561371a573d6000803e3d6000fd5b50506040518381526001600160a01b0385169250600091507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052612761908590613ae9565b606060006137cb83613bbe565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638df2c8e68361383684613612565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526001600160601b03166024820152604401600060405180830381600087803b15801561388557600080fd5b505af1158015613899573d6000803e3d6000fd5b5050604051838152600092506001600160a01b03851691507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001613758565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156139125750600090506003613996565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613966573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661398f57600060019250925050613996565b9150600090505b94509492505050565b60008160048111156139b3576139b36143ff565b036139bb5750565b60018160048111156139cf576139cf6143ff565b03613a1c5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610e56565b6002816004811115613a3057613a306143ff565b03613a7d5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610e56565b6003816004811115613a9157613a916143ff565b036116a75760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610e56565b6000613b3e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613be69092919063ffffffff16565b9050805160001480613b5f575080806020019051810190613b5f9190614415565b6131635760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610e56565b600060ff8216601f811115610c3c57604051632cd44ac360e21b815260040160405180910390fd5b6060610c20848460008585600080866001600160a01b03168587604051613c0d9190614432565b60006040518083038185875af1925050503d8060008114613c4a576040519150601f19603f3d011682016040523d82523d6000602084013e613c4f565b606091505b50915091506111a98783838760608315613cca578251600003613cc3576001600160a01b0385163b613cc35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610e56565b5081610c20565b610c208383815115613cdf5781518083602001fd5b8060405162461bcd60e51b8152600401610e569190613d49565b60005b83811015613d14578181015183820152602001613cfc565b50506000910152565b60008151808452613d35816020860160208601613cf9565b601f01601f19169290920160200192915050565b602081526000610da16020830184613d1d565b600060208284031215613d6e57600080fd5b5035919050565b6001600160a01b03811681146116a757600080fd5b60008060408385031215613d9d57600080fd5b8235613da881613d75565b946020939093013593505050565b60008060408385031215613dc957600080fd5b8235613dd481613d75565b91506020830135613de481613d75565b809150509250929050565b600080600060608486031215613e0457600080fd5b8335613e0f81613d75565b92506020840135613e1f81613d75565b929592945050506040919091013590565b600060208284031215613e4257600080fd5b8135610da181613d75565b803560ff81168114613e5e57600080fd5b919050565b803563ffffffff81168114613e5e57600080fd5b600080600080600060a08688031215613e8f57600080fd5b8535613e9a81613d75565b9450613ea860208701613e4d565b9350613eb660408701613e63565b925060608601356001600160601b0381168114613ed257600080fd5b91506080860135613ee281613d75565b809150509295509295909350565b60008060008060008060c08789031215613f0957600080fd5b863595506020870135613f1b81613d75565b945060408701359350613f3060608801613e4d565b92506080870135915060a087013590509295509295509295565b60008060408385031215613f5d57600080fd5b823591506020830135613de481613d75565b60008060008060808587031215613f8557600080fd5b8435613f9081613d75565b93506020850135613fa081613d75565b92506040850135613fb081613d75565b9396929550929360600135925050565b60ff60f81b881681526000602060e06020840152613fe160e084018a613d1d565b8381036040850152613ff3818a613d1d565b606085018990526001600160a01b038816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b818110156140475783518352928401929184019160010161402b565b50909c9b505050505050505050505050565b60008060006060848603121561406e57600080fd5b83359250602084013561408081613d75565b9150604084013561409081613d75565b809150509250925092565b600060608284031215610df357600080fd5b600080600080606085870312156140c357600080fd5b84356140ce81613d75565b935060208501359250604085013567ffffffffffffffff808211156140f257600080fd5b818701915087601f83011261410657600080fd5b81358181111561411557600080fd5b88602082850101111561412757600080fd5b95989497505060200194505050565b600080600080600080600060e0888a03121561415157600080fd5b873561415c81613d75565b9650602088013561416c81613d75565b9550604088013594506060880135935061418860808901613e4d565b925060a0880135915060c0880135905092959891949750929550565b6000602082840312156141b657600080fd5b610da182613e63565b6000602082840312156141d157600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c3c57610c3c6141d8565b600181811c9082168061421557607f821691505b602082108103610df357634e487b7160e01b600052602260045260246000fd5b60208082526018908201527f4f776e61626c652f63616c6c65722d6e6f742d6f776e65720000000000000000604082015260600190565b6001600160a01b0392831681529116602082015260400190565b60006020828403121561429857600080fd5b8151610da181613d75565b81810381811115610c3c57610c3c6141d8565b63ffffffff8281168282160390808211156142d3576142d36141d8565b5092915050565b8082028115828204841417610c3c57610c3c6141d8565b634e487b7160e01b600052601260045260246000fd5b60008261432457634e487b7160e01b600052601260045260246000fd5b500490565b80151581146116a757600080fd5b813561434281614329565b815460ff19811691151560ff169182178355602084013561436281614329565b61ff0090151560081b1661ffff198216831781178455604085013561438681613d75565b6001600160b01b0319929092169092179190911760109190911b62010000600160b01b031617905550565b6060810182356143c081614329565b1515825260208301356143d281614329565b1515602083015260408301356143e781613d75565b6001600160a01b031660409290920191909152919050565b634e487b7160e01b600052602160045260246000fd5b60006020828403121561442757600080fd5b8151610da181614329565b60008251614444818460208701613cf9565b919091019291505056fea2646970667358221220550ea85826f7b379975c7ac4744d83ce415ff84459e3c98ca98b2fc9805d351064736f6c6343000818003300000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000cc6b662bdf918583d2a5ecf4db1787c438e699dc0000000000000000000000005e1b40e4249644a7d7589d1197ad0f1628e79fb1000000000000000000000000239d1befb50fcff353804c6df1579ed0bbb9da07000000000000000000000000c516fe1fee5122d66e9427721a63d6c27e1201ca0000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000c516fe1fee5122d66e9427721a63d6c27e1201ca000000000000000000000000000000000000000000000000000000000000000a5072697a65205745544800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000770574554482d5400000000000000000000000000000000000000000000000000