[ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "contract IERC20", "name": "_stakingToken", "type": "address" }, { "internalType": "contract IERC20[]", "name": "rewardTokens", "type": "address[]" }, { "internalType": "contract IMaverickV2VotingEscrow[]", "name": "veTokens", "type": "address[]" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "AddressInsufficientBalance", "type": "error" }, { "inputs": [], "name": "ERC721EnumerableForbiddenBatchMint", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721IncorrectOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721InsufficientApproval", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC721InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC721InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721InvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC721InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC721InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721NonexistentToken", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "ERC721OutOfBoundsIndex", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "currentBalance", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "InsufficientBalance", "type": "error" }, { "inputs": [], "name": "MathOverflowedMulDiv", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "duration", "type": "uint256" }, { "internalType": "uint256", "name": "minDuration", "type": "uint256" }, { "internalType": "uint256", "name": "maxDuration", "type": "uint256" } ], "name": "RewardDurationOutOfBounds", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "approved", "type": "address" }, { "internalType": "address", "name": "getter", "type": "address" } ], "name": "RewardNotApprovedGetter", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "index", "type": "uint8" } ], "name": "RewardNotValidIndex", "type": "error" }, { "inputs": [ { "internalType": "contract IERC20", "name": "rewardTokenAddress", "type": "address" } ], "name": "RewardNotValidRewardToken", "type": "error" }, { "inputs": [ { "internalType": "contract IERC20", "name": "stakingToken", "type": "address" } ], "name": "RewardTokenCannotBeStakingToken", "type": "error" }, { "inputs": [], "name": "RewardTransferNotSupported", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "internalType": "uint256", "name": "minTimestamp", "type": "uint256" } ], "name": "RewardUnboostedTimePeriodNotMet", "type": "error" }, { "inputs": [], "name": "RewardZeroAmount", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "bits", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "SafeCastOverflowedUintDowncast", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "contract IERC20", "name": "rewardTokenAddress", "type": "address" }, { "indexed": false, "internalType": "uint8", "name": "rewardTokenIndex", "type": "uint8" } ], "name": "AddRewardToken", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "getter", "type": "address" } ], "name": "ApproveRewardGetter", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint8", "name": "rewardTokenIndex", "type": "uint8" }, { "indexed": false, "internalType": "uint256", "name": "stakeDuration", "type": "uint256" }, { "indexed": false, "internalType": "contract IERC20", "name": "rewardTokenAddress", "type": "address" }, { "components": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bool", "name": "asVe", "type": "bool" }, { "internalType": "contract IMaverickV2VotingEscrow", "name": "veContract", "type": "address" } ], "indexed": false, "internalType": "struct IMaverickV2Reward.RewardOutput", "name": "rewardOutput", "type": "tuple" }, { "indexed": false, "internalType": "uint256", "name": "lockupId", "type": "uint256" } ], "name": "GetReward", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "contract IERC20", "name": "rewardTokenAddress", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "duration", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "rewardRate", "type": "uint256" } ], "name": "NotifyRewardAmount", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "contract IERC20", "name": "rewardTokenAddress", "type": "address" }, { "indexed": false, "internalType": "uint8", "name": "rewardTokenIndex", "type": "uint8" } ], "name": "RemoveRewardToken", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "address", "name": "supplier", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "userBalance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "totalSupply", "type": "uint256" } ], "name": "Stake", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "userBalance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "totalSupply", "type": "uint256" } ], "name": "UnStake", "type": "event" }, { "inputs": [], "name": "MAX_DURATION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MIN_DURATION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "UNBOOSTED_MIN_TIME_GAP", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "contract IMaverickV2VotingEscrow", "name": "veToken", "type": "address" }, { "internalType": "uint256", "name": "rawAmount", "type": "uint256" }, { "internalType": "uint256", "name": "stakeDuration", "type": "uint256" } ], "name": "boostedAmount", "outputs": [ { "internalType": "uint256", "name": "earnedAmount", "type": "uint256" }, { "internalType": "bool", "name": "asVe", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "checkAuthorized", "outputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "contractInfo", "outputs": [ { "components": [ { "internalType": "uint256", "name": "finishAt", "type": "uint256" }, { "internalType": "uint256", "name": "updatedAt", "type": "uint256" }, { "internalType": "uint256", "name": "rewardRate", "type": "uint256" }, { "internalType": "uint256", "name": "escrowedReward", "type": "uint256" }, { "internalType": "uint256", "name": "rewardPerTokenStored", "type": "uint256" }, { "internalType": "contract IERC20", "name": "rewardToken", "type": "address" }, { "internalType": "contract IMaverickV2VotingEscrow", "name": "veRewardToken", "type": "address" }, { "internalType": "uint128", "name": "unboostedAmount", "type": "uint128" }, { "internalType": "uint256", "name": "lastUnboostedPushTimestamp", "type": "uint256" } ], "internalType": "struct IMaverickV2Reward.RewardInfo[]", "name": "info", "type": "tuple[]" }, { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "uint256", "name": "totalSupply", "type": "uint256" }, { "internalType": "contract IERC20", "name": "stakingToken", "type": "address" } ], "internalType": "struct IMaverickV2Reward.ContractInfo", "name": "_contractInfo", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "earned", "outputs": [ { "components": [ { "internalType": "uint256", "name": "earned", "type": "uint256" }, { "internalType": "contract IERC20", "name": "rewardToken", "type": "address" } ], "internalType": "struct IMaverickV2Reward.EarnedInfo[]", "name": "earnedInfo", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "contract IERC20", "name": "rewardTokenAddress", "type": "address" } ], "name": "earned", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint8", "name": "rewardTokenIndex", "type": "uint8" }, { "internalType": "uint256", "name": "stakeDuration", "type": "uint256" } ], "name": "getReward", "outputs": [ { "components": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bool", "name": "asVe", "type": "bool" }, { "internalType": "contract IMaverickV2VotingEscrow", "name": "veContract", "type": "address" } ], "internalType": "struct IMaverickV2Reward.RewardOutput", "name": "", "type": "tuple" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint8", "name": "rewardTokenIndex", "type": "uint8" }, { "internalType": "uint256", "name": "stakeDuration", "type": "uint256" } ], "name": "getRewardToOwner", "outputs": [ { "components": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bool", "name": "asVe", "type": "bool" }, { "internalType": "contract IMaverickV2VotingEscrow", "name": "veContract", "type": "address" } ], "internalType": "struct IMaverickV2Reward.RewardOutput", "name": "", "type": "tuple" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint8", "name": "rewardTokenIndex", "type": "uint8" }, { "internalType": "uint256", "name": "stakeDuration", "type": "uint256" }, { "internalType": "uint256", "name": "lockupId", "type": "uint256" } ], "name": "getRewardToOwnerForExistingVeLockup", "outputs": [ { "components": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bool", "name": "asVe", "type": "bool" }, { "internalType": "contract IMaverickV2VotingEscrow", "name": "veContract", "type": "address" } ], "internalType": "struct IMaverickV2Reward.RewardOutput", "name": "", "type": "tuple" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "mintToSender", "outputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes[]", "name": "data", "type": "bytes[]" } ], "name": "multicall", "outputs": [ { "internalType": "bytes[]", "name": "results", "type": "bytes[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nextTokenId", "outputs": [ { "internalType": "uint256", "name": "nextTokenId_", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "rewardToken", "type": "address" }, { "internalType": "uint256", "name": "duration", "type": "uint256" } ], "name": "notifyRewardAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "rewardTokenIndex", "type": "uint8" } ], "name": "pushUnboostedToVe", "outputs": [ { "internalType": "uint128", "name": "amount", "type": "uint128" }, { "internalType": "uint48", "name": "timepoint", "type": "uint48" }, { "internalType": "uint256", "name": "batchIndex", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "rewardData", "outputs": [ { "internalType": "uint64", "name": "finishAt", "type": "uint64" }, { "internalType": "uint64", "name": "updatedAt", "type": "uint64" }, { "internalType": "uint128", "name": "rewardRate", "type": "uint128" }, { "internalType": "uint128", "name": "escrowedReward", "type": "uint128" }, { "internalType": "uint128", "name": "unboostedAmount", "type": "uint128" }, { "internalType": "uint256", "name": "lastUnboostedPushTimestamp", "type": "uint256" }, { "internalType": "uint256", "name": "rewardPerTokenStored", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardInfo", "outputs": [ { "components": [ { "internalType": "uint256", "name": "finishAt", "type": "uint256" }, { "internalType": "uint256", "name": "updatedAt", "type": "uint256" }, { "internalType": "uint256", "name": "rewardRate", "type": "uint256" }, { "internalType": "uint256", "name": "escrowedReward", "type": "uint256" }, { "internalType": "uint256", "name": "rewardPerTokenStored", "type": "uint256" }, { "internalType": "contract IERC20", "name": "rewardToken", "type": "address" }, { "internalType": "contract IMaverickV2VotingEscrow", "name": "veRewardToken", "type": "address" }, { "internalType": "uint128", "name": "unboostedAmount", "type": "uint128" }, { "internalType": "uint256", "name": "lastUnboostedPushTimestamp", "type": "uint256" } ], "internalType": "struct IMaverickV2Reward.RewardInfo[]", "name": "info", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "index", "type": "uint8" } ], "name": "rewardTokenByIndex", "outputs": [ { "internalType": "contract IERC20", "name": "output", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rewardTokenCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "stake", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "stakedTokenId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "stakeBalanceOf", "outputs": [ { "internalType": "uint256", "name": "balance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "stakeTotalSupply", "outputs": [ { "internalType": "uint256", "name": "supply", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "stakingToken", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "tokenIdsOfOwner", "outputs": [ { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "rewardToken", "type": "address" } ], "name": "tokenIndex", "outputs": [ { "internalType": "uint8", "name": "rewardTokenIndex", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "includeStakingToken", "type": "bool" } ], "name": "tokenList", "outputs": [ { "internalType": "contract IERC20[]", "name": "tokens", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "ownerToCheck", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndexExists", "outputs": [ { "internalType": "bool", "name": "exists", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "rewardToken", "type": "address" }, { "internalType": "uint256", "name": "duration", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferAndNotifyRewardAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "transferAndStake", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "stakedTokenId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "unstake", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "unstakeToOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "vault", "outputs": [ { "internalType": "contract IMaverickV2RewardVault", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "index", "type": "uint8" } ], "name": "veTokenByIndex", "outputs": [ { "internalType": "contract IMaverickV2VotingEscrow", "name": "output", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
6102206040523461065d576155f48038038061001a8161067a565b928339810160a08282031261065d5781516001600160401b03919082811161065d578161004891850161069f565b926020918282015184811161065d578161006391840161069f565b936100706040840161070a565b93606084015182811161065d57840193601f84818701121561065d578551916100a061009b8461071e565b61067a565b9684888581520185600595861b8301019188831161065d5786809101915b838310610662575050505060808101519085821161065d57019480828701121561065d5785516100f061009b8261071e565b968580898481520192861b82010192831161065d578501905b82821061063e575050508851978489116106285760009889549a60019b8c81811c9116801561061e575b8782101461060a579081858493116105be575b508690858311600114610556578c9261054b575b5050600019600383901b1c1916908b1b1789555b805192858411610537578a54908b82811c9216801561052d575b868310146105195790839291859482116104c8575b50508491831160011461046957899261045e575b5050600019600383901b1c191690881b1787555b86600a5586600d5584608052604051916104d4808401918483109083111761044a5790839161512083396001600160a01b03968716815203019085f093841561043e575082610200941684528151946101e09580875261041a575b8551116103f6575b60028551116103d2575b60038551116103ad575b6004855111610387575b5050506040519061498792836107998439608051838181610bd801528181610e16015281816114ca01528181611f470152612edd015260a0518381816116100152818161282b0152612a24015260c0518381816115d60152818161285401526129ff015260e0518381816115980152818161287d01526129da01526101005183818161155a015281816128a601526129b5015261012051838181611506015281816128ce015261299101526101405183612de801526101605183612dc301526101805183612d9e01526101a05183612d7901526101c05183612d55015251828181610973015281816113c70152818161142201528181611661015281816118970152818161294c01528181612d100152818161350001526146f401525181818161027401528181610bb501528181610c78015281816117050152612eb60152f35b8261039461039f93610788565b511661012052610788565b51166101c052388080610246565b826103b783610778565b511661010052826103c782610778565b51166101a05261023c565b826103dc83610768565b511660e052826103eb82610768565b511661018052610232565b8261040083610758565b511660c0528261040f82610758565b511661016052610228565b8361042484610735565b511660a0528361043383610735565b511661014052610220565b604051903d90823e3d90fd5b634e487b7160e01b88526041600452602488fd5b0151905038806101b1565b8a8a52848a208b94509190601f1984168b5b878282106104b25750508411610499575b505050811b0187556101c5565b015160001960f88460031b161c1916905538808061048c565b8385015186558e9790950194938401930161047b565b90919293508b8b52858b209084808701821c830193888810610510575b9187968f93969594929601901c01915b828110610502575061019d565b8c81558695508d91016104f5565b935082936104e5565b634e487b7160e01b8b52602260045260248bfd5b91607f1691610188565b634e487b7160e01b8a52604160045260248afd5b01519050388061015a565b8c8052878d208e94509190601f1984168e5b8a82821061059f5750508411610586575b505050811b01895561016e565b015160001960f88460031b161c19169055388080610579565b91929395968291958786015181550195019301908f9594939291610568565b9091508b8052868c2085808501881c820192898610610601575b918f918695949301891c01915b8281106105f3575050610146565b8e81558594508f91016105e5565b925081926105d8565b634e487b7160e01b8c52602260045260248cfd5b90607f1690610133565b634e487b7160e01b600052604160045260246000fd5b81516001600160a01b038116810361065d578152908501908501610109565b600080fd5b819061066d8461070a565b81520191019086906100be565b6040519190601f01601f191682016001600160401b0381118382101761062857604052565b919080601f8401121561065d5782516001600160401b038111610628576020906106d1601f8201601f1916830161067a565b9281845282828701011161065d5760005b8181106106f757508260009394955001015290565b85810183015184820184015282016106e2565b51906001600160a01b038216820361065d57565b6001600160401b0381116106285760051b60200190565b8051156107425760200190565b634e487b7160e01b600052603260045260246000fd5b8051600110156107425760400190565b8051600210156107425760600190565b8051600310156107425760800190565b8051600410156107425760a0019056fe608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a71461212a5750816306fdde031461210c578163081812fc146120d2578163095ea7b314611fc657816315c43aaf14611eca57816318160ddd14611eab57816323b872dd14611e935781632f745c5914611e6a5781633a3619de14611e175781633e3cc23914611d8d578163427f91a614611d6a57816342842e0e14611d415781634709b70914611d23578163482af13b14611cf557816348fd65fe14611cca5781634b986ec214611c825781634c465899146119e25781634d6ed8c41461187d5781634f6ccce71461180f57816351a7c716146116865781635d62fd5f1461139e5781636352211e146113765781636565ac99146113405781636a6278421461131a5781636deda0fc14610e6057816370a0823114610e3a57816372f702f314610df6578163751df17a14610db357816375794a3c14610d945781637aaa90e114610c0157816388a2955214610b9157816395d89b4114610b605781639e59e59814610a98578163a22cb465146109c1578163a694fc3a14610996578163abb06b951461095b578163ac9650d81461079e578163b1724b4614610780578163b66503cf14610760578163b6a6d17714610742578163b88d4fde146106da578163c58181c4146106bb578163c87b56dd14610498578163c9f6707214610463578163d6d8266f146103cf578163e39c08fc14610375578163e48e622714610357578163e985e9c514610306578163f01a11fc146102da57508063f476eaf21461029c5763fbfa77cf1461025657600080fd5b34610298578160031936011261029857602090516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b5080fd5b5034610298576060600319360112610298576020906102d36102bc612274565b6102ca604435303384613f54565b60243590613023565b9051908152f35b905034610302576020600319360112610302576020928291358152600b845220549051908152f35b8280fd5b505034610298578060031936011261029857602091610323612274565b8261032c61228a565b926001600160a01b03809316815260058652209116600052825260ff81600020541690519015158152f35b5050346102985781600319360112610298576020906102d333613bf1565b8284346103cc57816003193601126103cc5760ff61039961039461228a565b61281c565b169060058210156103b9575060209260066102d39202600e019035613b79565b80603285634e487b7160e01b6024945252fd5b80fd5b905082346103cc5760806003193601126103cc575035906103ee61228a565b6044359060ff8216820361045e5760609361045c926104349261040f6127fd565b50610423833361041e82613681565b613e59565b6064359261042f6127fd565b6136d5565b915180926001600160a01b036040809280518552602081015115156020860152015116910152565bf35b600080fd5b505034610298578160031936011261029857610494906104816134fe565b90519182916020835260208301906122a0565b0390f35b90503461030257602090816003193601126106b75781929381356104bb81613681565b508551926104c884612435565b828452821561069a5781829184937a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000908181101561068d575b5050866d04ee2d6d415b85acef81000000008085101561067f575b5050662386f26fc1000080841015610670575b506305f5e10080841015610661575b5061271080841015610653575b50506064821015610643575b600a80921015610639575b60219088936001928161058b600186940161058361057a82612474565b9951998a612451565b808952612474565b97601f198b89019901368a3750860101905b6105f6575b50505050926105d9926105e59261049495885195836105ca889551809288808901910161222c565b8401915180938684019061222c565b01038084520182612451565b925b5192828493845283019061224f565b600019849101917f30313233343536373839616263646566000000000000000000000000000000008282061a8353049182156106345791908261059d565b6105a2565b916001019161055d565b9190606460029104910191610552565b930192909104903880610546565b60089194930492019238610539565b6010919493049201923861052a565b940193909204918638610517565b8a955004925038806104fc565b505050505061049482516106ad81612435565b60008152926105e7565b8380fd5b505034610298578160031936011261029857602090600c549051908152f35b839034610298576080600319360112610298576106f5612274565b6106fd61228a565b9060643567ffffffffffffffff811161073e573660238201121561073e5761073b9381602461073193369301359101612490565b916044359161335f565b80f35b8480fd5b505034610298578160031936011261029857602090516203f4808152f35b5050346102985780600319360112610298576020906102d36102ca612274565b505034610298578160031936011261029857602090516234bc008152f35b8391503461029857602091826003193601126103cc5781359167ffffffffffffffff90818411610302573660238501121561030257830135908082116103025760246005923660248260051b8801011161073e57926107fc84612c81565b9561080989519788612451565b848752601f1961081886612c81565b0188875b82811061094b5750505085917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbd82360301925b8681106108d1578a8a8a8a83519280840190808552835180925280868601968360051b870101940192955b8287106108875785850386f35b9091929382806108c1837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08a60019603018652885161224f565b960192019601959291909261087a565b8481831b84010135848112156109475783018581013590878211610943576044019080360382136109435789808d61091160019695610927953691612490565b80519101305af4610920613fc5565b9030614762565b610931828c612caa565b5261093c818b612caa565b500161084f565b8980fd5b8880fd5b60608a82018301528a910161081c565b505034610298578160031936011261029857602090517f00000000000000000000000000000000000000000000000000000000000000008152f35b905082346103cc5760206003193601126103cc57506109b59035612e5b565b82519182526020820152f35b919050346103025780600319360112610302576109dc612274565b906024359182151580930361045e576001600160a01b0316928315610a6a5750338452600560205280842083600052602052806000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8416179055519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a380f35b8360249251917f5b08ba18000000000000000000000000000000000000000000000000000000008352820152fd5b8284346103cc57602090816003193601126103cc578290610ab7612274565b90610ac182612e0a565b610aca81612c81565b90610ad785519283612451565b808252610ae381612c81565b93601f198784019501368637835b828110610b365750505083519485948186019282875251809352850193925b828110610b1f57505050500390f35b835185528695509381019392810192600101610b10565b80610b49600192849a979698999a612783565b610b538289612caa565b5201969594929396610af1565b50503461029857816003193601126102985761049490610b7e614156565b905191829160208352602083019061224f565b8284346103cc57506109b5610bfc610ba8366123a0565b6001600160a01b039291927f000000000000000000000000000000000000000000000000000000000000000016337f0000000000000000000000000000000000000000000000000000000000000000613f54565b612e5b565b83833461029857610c11366123a0565b919093610c22853361041e82613681565b610c2b85613681565b92610c34613ff5565b8015610d6c57610c43866146f2565b858552600b60205282852054808211610d2a578190869782600c5403600c558752600b60205203838620556001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b15610d2657610cef948680948651978895869485937ff3fef3a30000000000000000000000000000000000000000000000000000000085528401602090939291936001600160a01b0360408201951681520152565b03925af1908115610d1d5750610d09575b506001600d5580f35b610d12906123e8565b6103cc578082610d00565b513d84823e3d90fd5b8580fd5b92517ffcca3733000000000000000000000000000000000000000000000000000000008152918201868152602081019390935260408301529081906060010390fd5b5090517f14f29f88000000000000000000000000000000000000000000000000000000008152fd5b505034610298578160031936011261029857602090600a549051908152f35b5050346102985780600319360112610298576020906001600160a01b03610dd8612274565b91610def602435610de881613681565b9485613e59565b5191168152f35b505034610298578160031936011261029857602090516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b505034610298576020600319360112610298576020906102d3610e5b612274565b612e0a565b8284346103cc5760806003193601126103cc5750813591610e7f612380565b9260443590606435610e8f6127fd565b50610e9e823361041e82613681565b610ea782613681565b610eaf6127fd565b610eb7613ff5565b966005811015611305576006810294610ed386600e018661420d565b8460005260138601602052876000208054976fffffffffffffffffffffffffffffffff97888a169283610f34575b60608d61045c8e6001600d555180926001600160a01b036040809280518552602081015115156020860152015116910152565b600f92939495969798999a9c506fffffffffffffffffffffffffffffffff19809d16905501908154838a8216039b8a8d116112f0578a8a9b9c9d9a999a169116178255610f8085612947565b610f8986612d0b565b90610f9e868684610f986127fd565b9c612a9a565b15801560208c0152818b526112475750908b8d6060938b8b8e610fcf6001600160a01b0380981694858551916139f1565b8385840152600019811460001461118b5750509060649394610ff360009351613b24565b935197889687957f1ef3467b00000000000000000000000000000000000000000000000000000000875216908501528a60248501528c1660448401525af18015611180579460609b98946110e5947fe47c57318950d2a193de7632844e22ae34cd95299259fc16515741c22b5d91ad9994610140999461045c9d99611151575b505b859d8651908184116110fc575b5050505060ff61109183612947565b928b5198338a5260208a01526001600160a01b038095168c8a0152168d88015260808701521660a085015260c08401906001600160a01b036040809280518552602081015115156020860152015116910152565b610120820152a19192848080808080808080610f01565b61110c61111792611148956139c0565b16825460801c6139cd565b6fffffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff1983549260801b169116179055565b8d808080611082565b8f90611172913d606011611179575b61116a8183612451565b8101906142e3565b508f611073565b503d611160565b8b513d6000823e3d90fd5b93608495919461119e6000959451613b24565b9151998a9889977fea4914ef000000000000000000000000000000000000000000000000000000008952169087015260248601528b60448601521660648401525af18015611180579460609b98946110e5947fe47c57318950d2a193de7632844e22ae34cd95299259fc16515741c22b5d91ad9994610140999461045c9d99611228575b50611075565b8f90611240913d6060116111795761116a8183612451565b508f611222565b61014098935061045c9b979250947fe47c57318950d2a193de7632844e22ae34cd95299259fc16515741c22b5d91ad99946112eb60609f9c98936112d8906112e68f9a6110e59b519384917fa9059cbb0000000000000000000000000000000000000000000000000000000060208401528b60248401602090939291936001600160a01b0360408201951681520152565b03601f198101845283612451565b6145cf565b611075565b601183634e487b7160e01b6000525260246000fd5b603286634e487b7160e01b6000525260246000fd5b505034610298576020600319360112610298576020906102d361133b612274565b613bf1565b505034610298576020600319360112610298576020906001600160a01b0361136e611369612390565b612d0b565b915191168152f35b8284346103cc5760206003193601126103cc57506001600160a01b0361136e60209335613681565b8284346103cc57602090816003193601126103cc57833591821515830361045e57821561165f577f00000000000000000000000000000000000000000000000000000000000000006001810180911161164c57915b6114146113ff84612c81565b9361140c87519586612451565b808552612c81565b93601f1983850195013686377f000000000000000000000000000000000000000000000000000000000000000090816115ff575b600197600183116115c2575b60028311611584575b60038311611546575b8083116114f2575b506114b6575b5091908495939551948186019282875251809352850195925b82811061149a5785870386f35b83516001600160a01b031687529581019592810192840161148d565b6114c09084612caa565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016905286611474565b855181101561153157506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660a08601528861146e565b603290634e487b7160e01b6000525260246000fd5b855160031015611531576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166080870152611466565b855160021015611531576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016606087015261145d565b855160011015611531576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001688870152611454565b845115611637576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168652611448565b603288634e487b7160e01b6000525260246000fd5b602483601188634e487b7160e01b835252fd5b7f0000000000000000000000000000000000000000000000000000000000000000916113f3565b919050346103025760606003193601126103025781356116a461228a565b604435916116b6813361041e82613681565b6116be613ff5565b82156117e6576116cd816146f2565b808652600b60205283862054908184116117a35792809291879482600c5403600c558552600b60205203848420556001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b156106b7578361177b968651978895869485937ff3fef3a30000000000000000000000000000000000000000000000000000000085528401602090939291936001600160a01b0360408201951681520152565b03925af1908115610d1d575061179457506001600d5580f35b61179d906123e8565b38610d00565b84517ffcca373300000000000000000000000000000000000000000000000000000000815280870191825260208201839052604082018590529081906060010390fd5b505050517f14f29f88000000000000000000000000000000000000000000000000000000008152fd5b905034610302576020600319360112610302578035926008548410156118495760208361183b86612cd4565b91905490519160031b1c8152f35b604493919251927fa57d13dc0000000000000000000000000000000000000000000000000000000084528301526024820152fd5b8383346102985760209081600319360112610302578335907f0000000000000000000000000000000000000000000000000000000000000000926118c084612c81565b926118cd83519485612451565b848452601f196118dc86612c81565b0182875b8281106119c157505050855b60ff81168681101561196c576005821015611959579061194e6119549261191960068402600e0186613b79565b6001600160a01b0361192a85612947565b895192611936846123b6565b83521687820152611947828a612caa565b5287612caa565b50612c99565b6118ec565b60248860328b634e487b7160e01b835252fd5b8451848152865181860181905281908188019089880190888d8b5b8382106119945786860387f35b8451805187528301516001600160a01b031686840152879650948501949382019360019190910190611987565b85516119cc816123b6565b89815289838201528282890101520183906118e0565b90503461030257602091826003193601126106b7576119ff612390565b92611a0984612d0b565b90611a1385612947565b946005811015611c6f5760060294600f8601948554958660801c978815611c47576010019081546277f8808101809111611c345780421115611bfe57506fffffffffffffffffffffffffffffffff80981690554290556001600160a01b03809416611a7f8882856139f1565b65ffffffffffff804211611bc8579089914216958751947faa902b4d0000000000000000000000000000000000000000000000000000000086528686868187875af1958615611bbe57918795939185938d9698611b84575b50611ae56084969798613b24565b9b8b519c8d9889977f3082f0e90000000000000000000000000000000000000000000000000000000089528801528b60248801521660448601521660648401525af1938415611b7a578694611b47575b50606095508251948552840152820152f35b9080945081813d8311611b73575b611b5f8183612451565b81010312610d265760609550519238611b35565b503d611b55565b83513d88823e3d90fd5b95509590965084813d8311611bb7575b611b9e8183612451565b810103126102985792519486948b949190611ae5611ad7565b503d611b94565b89513d86823e3d90fd5b60448360308951917f6dfcc650000000000000000000000000000000000000000000000000000000008352820152426024820152fd5b836044918951917fb5b2827a00000000000000000000000000000000000000000000000000000000835242908301526024820152fd5b60248b601186634e487b7160e01b835252fd5b8287517f14f29f88000000000000000000000000000000000000000000000000000000008152fd5b602487603287634e487b7160e01b835252fd5b90503461030257608060031936011261030257602435906001600160a01b03821682036106b75790611cbc91606435916044359135612a9a565b825191825215156020820152f35b505034610298578060031936011261029857602090611cea610e5b612274565b602435109051908152f35b505034610298576020600319360112610298576020906001600160a01b0361136e611d1e612390565b612947565b505034610298578160031936011261029857602090516277f8808152f35b5050346102985761073b90611d553661234b565b91925192611d6284612435565b85845261335f565b5050346102985760206003193601126102985760209060ff61136e610394612274565b90503461030257602060031936011261030257359160058310156103cc5750600660e0920280600e01549067ffffffffffffffff92600f820154906011601084015493015493815195808216875281831c16602087015260801c908501526fffffffffffffffffffffffffffffffff8116606085015260801c608084015260a083015260c0820152f35b8284346103cc5760606003193601126103cc575061045c61043460609335611e3d612380565b611e456127fd565b50611e54823361041e82613681565b60443591611e6181613681565b9061042f6127fd565b5050346102985780600319360112610298576020906102d3611e8a612274565b60243590612783565b83346103cc5761073b611ea53661234b565b916124c7565b5050346102985781600319360112610298576020906008549051908152f35b8284346103cc57806003193601126103cc5781516080810181811067ffffffffffffffff821117611fb357611f7d945083526060815260606020820181815284830193808552828401908152611f1e6134fe565b95611f27614050565b8552611f31614156565b8352600c548652611fa46001600160a01b0393847f0000000000000000000000000000000000000000000000000000000000000000168452611f9583519a8b9a858c52858c01906122a0565b978a890360208c01525160808952608089019061224f565b9051878203602089015261224f565b95519085015251169101520390f35b602483604187634e487b7160e01b835252fd5b91905034610302578060031936011261030257611fe1612274565b91602435611fee81613681565b331515806120bf575b80612097575b6120685781906001600160a01b03809616958691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258880a484526020528220907fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905580f35b83517fa9fbf51f0000000000000000000000000000000000000000000000000000000081523381850152602490fd5b506001600160a01b0381168652600560205283862033875260205260ff848720541615611ffd565b50336001600160a01b0382161415611ff7565b9050346103025760206003193601126103025781602093826001600160a01b0393356120fd81613681565b50825285522054169051908152f35b50503461029857816003193601126102985761049490610b7e614050565b84913461030257602060031936011261030257357fffffffff00000000000000000000000000000000000000000000000000000000811680910361030257602092507f780e9d6300000000000000000000000000000000000000000000000000000000811490811561219e575b5015158152f35b7f80ac58cd00000000000000000000000000000000000000000000000000000000811491508115612202575b81156121d8575b5083612197565b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014836121d1565b7f5b5e139f00000000000000000000000000000000000000000000000000000000811491506121ca565b60005b83811061223f5750506000910152565b818101518382015260200161222f565b90601f19601f60209361226d8151809281875287808801910161222c565b0116010190565b600435906001600160a01b038216820361045e57565b602435906001600160a01b038216820361045e57565b90815180825260208080930193019160005b8281106122c0575050505090565b835180518652808301518684015260408082015190870152606080820151908701526080808201519087015260a0808201516001600160a01b039081169188019190915260c0808301519091169087015260e0808201516fffffffffffffffffffffffffffffffff1690870152610100908101519086015261012090940193928101926001016122b2565b600319606091011261045e576001600160a01b0390600435828116810361045e5791602435908116810361045e579060443590565b6024359060ff8216820361045e57565b6004359060ff8216820361045e57565b600319604091011261045e576004359060243590565b6040810190811067ffffffffffffffff8211176123d257604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff81116123d257604052565b6060810190811067ffffffffffffffff8211176123d257604052565b610120810190811067ffffffffffffffff8211176123d257604052565b6020810190811067ffffffffffffffff8211176123d257604052565b90601f601f19910116810190811067ffffffffffffffff8211176123d257604052565b67ffffffffffffffff81116123d257601f01601f191660200190565b92919261249c82612474565b916124aa6040519384612451565b82948184528183011161045e578281602093846000960137010152565b916001600160a01b0380831693841561275257600094838652602095600287526040968488832054169633612742575b871580156126f2575b848452600383528984206001815401905587845260028352898420857fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905587858a7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8780a4156126765760085487845260098352808a8520556801000000000000000081101561266257876125a38260016125bb9401600855612cd4565b90919060001983549160031b92831b921b1916179055565b838803612610575b5050505016928383036125d65750505050565b6064945051927f64283d7b000000000000000000000000000000000000000000000000000000008452600484015260248301526044820152fd5b61261990612e0a565b92600019840193841161264e5782916007918a94526006815283832085845281528784842055878352522055388080806125c3565b602483634e487b7160e01b81526011600452fd5b602484634e487b7160e01b81526041600452fd5b8784146125bb5761268688612e0a565b87845260078352898420548181036126bb575b50878452838a81205588845260068352898420908452825282898120556125bb565b898552600684528a852082865284528a8520548a8652600685528b86208287528552808c8720558552600784528a85205538612699565b61272b88600052600460205260406000207fffffffffffffffffffffffff00000000000000000000000000000000000000008154169055565b888452600383528984206000198154019055612500565b61274d87338a613e59565b6124f7565b60246040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260006004820152fd5b61278c81612e0a565b8210156127b9576001600160a01b0316600052600660205260406000209060005260205260406000205490565b6040517fa57d13dc0000000000000000000000000000000000000000000000000000000081526001600160a01b039190911660048201526024810191909152604490fd5b6040519061280a826123fc565b60006040838281528260208201520152565b6001600160a01b0380911690807f000000000000000000000000000000000000000000000000000000000000000016821461294057807f000000000000000000000000000000000000000000000000000000000000000016821461293957807f000000000000000000000000000000000000000000000000000000000000000016821461293257807f000000000000000000000000000000000000000000000000000000000000000016821461292b577f000000000000000000000000000000000000000000000000000000000000000016811461292557602490604051907f3dc09a5c0000000000000000000000000000000000000000000000000000000082526004820152fd5b50600490565b5050600390565b5050600290565b5050600190565b5050600090565b60ff167f0000000000000000000000000000000000000000000000000000000000000000811015612a46578015612a2157600181146129fc57600281146129d7576003146129b3577f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b507f000000000000000000000000000000000000000000000000000000000000000090565b507f000000000000000000000000000000000000000000000000000000000000000090565b507f000000000000000000000000000000000000000000000000000000000000000090565b602490604051907f205467d70000000000000000000000000000000000000000000000000000000082526004820152fd5b91908201809211612a8457565b634e487b7160e01b600052601160045260246000fd5b929392600092916001600160a01b0390811690848215612c765750612abe83613681565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152911660048201526020918282602481845afa918215612c3c578692612c47575b50908260049392604051948580927f18160ddd0000000000000000000000000000000000000000000000000000000082525afa928315612c3c578693612c0c575b50612b90939291612b64600b9260019485811190861802851890614322565b93875252612b826040862054600c5483811190841802831890614322565b8181119082180218906143d7565b670a688906bd8b000090810180911161264e57670de0b6b3a764000090612bb686614456565b936702c68af0bb140000948501809511612bf85750918183612bed93612bf2969510908218028118938181109082180218906144cc565b6144cc565b91151590565b80634e487b7160e01b602492526011600452fd5b9092508181813d8311612c35575b612c248183612451565b81010312610d26575191600b612b45565b503d612c1a565b6040513d88823e3d90fd5b9091508281813d8311612c6f575b612c5f8183612451565b81010312610d2657519082612b04565b503d612c55565b959650505050905091565b67ffffffffffffffff81116123d25760051b60200190565b60ff1660ff8114612a845760010190565b8051821015612cbe5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600854811015612cbe5760086000527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30190600090565b60ff167f0000000000000000000000000000000000000000000000000000000000000000811015612a46578015612de55760018114612dc05760028114612d9b57600314612d77577f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b507f000000000000000000000000000000000000000000000000000000000000000090565b507f000000000000000000000000000000000000000000000000000000000000000090565b507f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b03168015612e2a57600052600360205260406000205490565b60246040517f89c62b6400000000000000000000000000000000000000000000000000000000815260006004820152fd5b8015612fa1575b612e6a613ff5565b612e7381613681565b50612e7d816146f2565b602460206001600160a01b03604051928380927f70a08231000000000000000000000000000000000000000000000000000000008252807f00000000000000000000000000000000000000000000000000000000000000001660048301527f0000000000000000000000000000000000000000000000000000000000000000165afa908115612f9557600091612f63575b50600c548091818110600014612f5c5750506000905b8180612f35575b50506001600d5591565b612f3e91612a77565b600c5581600052600b60205260406000208181540190553881612f2b565b0390612f24565b90506020813d602011612f8d575b81612f7e60209383612451565b8101031261045e575138612f0e565b3d9150612f71565b6040513d6000823e3d90fd5b50612fab33612e0a565b1561301557612fb933612e0a565b15612fde57336000526006602052604060002060008052602052604060002054612e62565b60446040517fa57d13dc00000000000000000000000000000000000000000000000000000000815233600482015260006024820152fd5b61301e33613bf1565b612e62565b9061302c613ff5565b6203f48080821061331f576234bc00908183116132e35750509061304f8161281c565b6005811015612cbe5780602460066130829302602081600e0193613072856147f5565b6001600160a01b03958691612947565b16604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa918215612f95576000926132ae575b50600f01546fffffffffffffffffffffffffffffffff1690818110156132a75750506000905b805467ffffffffffffffff908181164281101561329e57506000905b60801c9081810290808204831490151715612a84578060011b9080820460021490151715612a845784118015613296575b1561325957509160a0939161322e7ffcb9ca03b70a876a8d62dc2ef18aa125118fd02dae56cfffc36a627e7b1c481196946131af61317d6131788b87614030565b613b24565b84546fffffffffffffffffffffffffffffffff1660809190911b6fffffffffffffffffffffffffffffffff1916178455565b806131c26131bd8b42612a77565b614904565b167fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000845416178355421682907fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff6fffffffffffffffff000000000000000083549260401b169116179055565b5460801c916040519333855216602084015260408301528460608301526080820152a1906001600d55565b839196509161322e61329060a096947ffcb9ca03b70a876a8d62dc2ef18aa125118fd02dae56cfffc36a627e7b1c48119896614030565b976131af565b508015613137565b42900390613106565b03906130ea565b9091506020813d6020116132db575b816132ca60209383612451565b8101031261045e575190600f6130c4565b3d91506132bd565b60649350604051927fd3350e51000000000000000000000000000000000000000000000000000000008452600484015260248301526044820152fd5b60649250604051917fd3350e51000000000000000000000000000000000000000000000000000000008352600483015260248201526234bc006044820152fd5b919061336c8282856124c7565b803b613379575b50505050565b6133d56001600160a01b03809216946040519384937f150b7a020000000000000000000000000000000000000000000000000000000096878652336004870152166024850152604484015260806064840152608483019061224f565b03906020816000938185885af19082908261349d575b505061343b57826133fa613fc5565b805191908261343457602482604051907f64a0ae920000000000000000000000000000000000000000000000000000000082526004820152fd5b9050602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000160361346c575038808080613373565b602490604051907f64a0ae920000000000000000000000000000000000000000000000000000000082526004820152fd5b909192506020813d6020116134f6575b816134ba60209383612451565b810103126102985751907fffffffff00000000000000000000000000000000000000000000000000000000821682036103cc57509038806133eb565b3d91506134ad565b7f00000000000000000000000000000000000000000000000000000000000000009061352982612c81565b9160409061353982519485612451565b808452601f1961354882612c81565b0160005b81811061362c5750508360005b60ff81169083821015613624576005811015612cbe5761194e61361f926006830280600e015467ffffffffffffffff916080601182015461359988612947565b906135a389612d0b565b908d6010600f870154960154968151986135bc8a612418565b8082168a5281831c1660208a0152851c908801526fffffffffffffffffffffffffffffffff85166060880152838701526001600160a01b0380921660a08701521660c08501521c60e0830152610100820152613618828b612caa565b5288612caa565b613559565b505093505050565b602090845161363a81612418565b60008152826000818301526000878301526000606083015260006080830152600060a0830152600060c0830152600060e0830152600061010083015282890101520161354c565b8060005260026020526001600160a01b03604060002054169081156136a4575090565b602490604051907f7e2732890000000000000000000000000000000000000000000000000000000082526004820152fd5b93929091936136e2613ff5565b936005821015612cbe5760068202936136fe85600e018561420d565b836000526013850160205260409081600020938454946fffffffffffffffffffffffffffffffff978887169182613742575b50505050505050505050906001600d55565b600f92939495969798999a506fffffffffffffffffffffffffffffffff198099169055018054828a821603978a8911612a84578a8a9916911617815561378783612947565b8961379185612d0b565b916137a68786856137a06127fd565b9d612a9a565b15801560208d0152818c5261393057509060648a6137d46060946001600160a01b03809716809351916139f1565b808a8d015260006137e58d51613b24565b918b5196879586947f1ef3467b0000000000000000000000000000000000000000000000000000000086521660048501528b60248501528d1660448401525af1801561392557936138d4969361014099969360ff937fe47c57318950d2a193de7632844e22ae34cd95299259fc16515741c22b5d91ad9c9a97613906575b505b879c8851908184116138ed575b5050505061387f81612947565b93805198338a5260208a01526001600160a01b038096169089015216606087015260808601521660a084015260c08301906001600160a01b036040809280518552602081015115156020860152015116910152565b600019610120820152a138808080808080808080613730565b61110c611117926138fd956139c0565b38808080613872565b61391e9060603d6060116111795761116a8183612451565b5038613863565b86513d6000823e3d90fd5b60ff93507fe47c57318950d2a193de7632844e22ae34cd95299259fc16515741c22b5d91ad9b99969250936139bb6112d88a97936112e66101409e9b986138d49d519384917fa9059cbb0000000000000000000000000000000000000000000000000000000060208401528d60248401602090939291936001600160a01b0360408201951681520152565b613865565b91908203918211612a8457565b9190916fffffffffffffffffffffffffffffffff80809416911601918211612a8457565b6040517f095ea7b300000000000000000000000000000000000000000000000000000000602082018181526001600160a01b038516602484015260448084019690965294825294939092613a46606485612451565b6001600160a01b0390818416600080809588519082855af190613a67613fc5565b82613af2575b5081613ae7575b5015613a84575b50505050509050565b60405196602088015216602486015280604486015260448552608085019085821067ffffffffffffffff831117613ad35750613ac893946112e691604052826145cf565b803880808080613a7b565b80634e487b7160e01b602492526041600452fd5b90503b151538613a74565b80519192508115918215613b0a575b50509038613a6d565b613b1d92506020809183010191016145b7565b3880613b01565b6fffffffffffffffffffffffffffffffff90818111613b41571690565b604490604051907f6dfcc650000000000000000000000000000000000000000000000000000000008252608060048301526024820152fd5b613bc2613be5926000838152600582016020526fffffffffffffffffffffffffffffffff60408220541693600b6020526004604083205493613bc86003820154613bc28361465b565b90612a77565b9284520160205260408220549081811015613be8575050906144cc565b90565b039190506144cc565b600a54906001600160a01b0390818116801561275257600093808552602090600282526040948587205416938415948486159687613e09575b818a5260038652888a2060018154019055848a5260028652888a20827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790558482847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8d80a415613d8c57506008548389526009855280888a205568010000000000000000811015613d785790613cd0846125a38460018a9601600855612cd4565b03613d27575b50505050613cf75750600a54906000198214612bf8575060018101600a5590565b6024925051907f73c6ac6e0000000000000000000000000000000000000000000000000000000082526004820152fd5b613d3090612e0a565b926000198401938411613d645786526006825284862083875282528486208190558552600790528284205538808080613cd6565b602487634e487b7160e01b81526011600452fd5b602489634e487b7160e01b81526041600452fd5b90808214613cd057613d9d81612e0a565b848a5260078652888a2054818103613dd2575b50848a528989812055818a5260068652888a20908a5285528888812055613cd0565b828b5260068752898b20828c528752898b2054838c52600688528a8c20828d528852808b8d20558b5260078752898b205538613db0565b613e4285600052600460205260406000207fffffffffffffffffffffffff00000000000000000000000000000000000000008154169055565b828a5260038652888a206000198154019055613c2a565b6001600160a01b03908183168015159081613ef5575b5015613e7b5750505050565b16613eb157602482604051907f7e2732890000000000000000000000000000000000000000000000000000000082526004820152fd5b6040517f177e802f0000000000000000000000000000000000000000000000000000000081526001600160a01b039190911660048201526024810191909152604490fd5b82841680821492508215613f2d575b508115613f13575b5038613e6f565b905084600052600460205282604060002054161438613f0c565b909150600052600560205260406000208160005260205260ff604060002054169038613f04565b9290604051927f23b872dd0000000000000000000000000000000000000000000000000000000060208501526001600160a01b03809216602485015216604483015260648201526064815260a081019181831067ffffffffffffffff8411176123d257613fc3926040526145cf565b565b3d15613ff0573d90613fd682612474565b91613fe46040519384612451565b82523d6000602084013e565b606090565b6002600d5414614006576002600d55565b60046040517f3ee5aeb5000000000000000000000000000000000000000000000000000000008152fd5b811561403a570490565b634e487b7160e01b600052601260045260246000fd5b60405190600080549060018260011c906001841693841561414c575b602094858410811461413857838852879493929181156140f9575060011461409d575b5050613fc392500383612451565b60008080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56395935091905b8183106140e1575050613fc39350820101388061408f565b855488840185015294850194879450918301916140c9565b9050613fc39593507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b820101388061408f565b602485634e487b7160e01b81526022600452fd5b91607f169161406c565b604051906000600190600154918260011c9060018416938415614203575b602094858410811461413857838852879493929181156140f957506001146141a4575050613fc392500383612451565b9093915060016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6936000915b8183106141eb575050613fc39350820101388061408f565b855488840185015294850194879450918301916141d3565b91607f1691614174565b9060409061421a816147f5565b600090838252600b6020528282205490600381019061425682549360048301948560205287872054908181106000146142bf57505085906144cc565b80614269575b5050549382526020522055565b614274600591613b24565b9187865201602052848420906fffffffffffffffffffffffffffffffff198254916142b26fffffffffffffffffffffffffffffffff918285166139cd565b169116179055388061425c565b03906144cc565b51906fffffffffffffffffffffffffffffffff8216820361045e57565b9081606091031261045e5760408051916142fc836123fc565b614305816142c6565b8352614313602082016142c6565b60208401520151604082015290565b670de0b6b3a76400009182820291600019848209938380861095039480860395146143ca57848311156143a05782910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b60046040517f227bc153000000000000000000000000000000000000000000000000000000008152fd5b505090613be59250614030565b906703782dace9d900009082820291600019848209938380861095039480860395146143ca57848311156143a05782910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b670b1a2bc2ec5000009080820290600019818409908280831092039180830392146144bf57630784ce0090828211156143a0577f98f5be4dd1e14769fbd6666224dc1eb80dd2e0a3d2c8b328f57e76b7ae103957940990828211900360f71b910360091c170290565b5050630784ce0091500490565b90808202906000198184099082808310920391808303921461453057670de0b6b3a764000090828211156143a0577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac10669940990828211900360ee1b910360121c170290565b5050670de0b6b3a764000091500490565b909182820291600019848209938380861095039480860395146143ca57848311156143a05782910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b9081602091031261045e5751801515810361045e5790565b6000806001600160a01b036145f993169360208151910182865af16145f2613fc5565b9083614762565b8051908115159182614640575b505061460f5750565b602490604051907f5274afe70000000000000000000000000000000000000000000000000000000082526004820152fd5b61465392506020809183010191016145b7565b153880614606565b5467ffffffffffffffff8082168042104282180218908260401c16908181106000146146eb5750506000905b81158080156146e1575b80156146d6575b6146ce57670de0b6b3a7640000808402938404141715612a8457613be591600c546001811190600118026001189160801c614541565b505050600090565b508160801c15614698565b50600c5415614691565b0390614687565b7f00000000000000000000000000000000000000000000000000000000000000006000805b8260ff8216106147275750505050565b600581101561474e578061474460066147499302600e018661420d565b612c99565b614717565b602482634e487b7160e01b81526032600452fd5b906147a1575080511561477757805190602001fd5b60046040517f1425ea42000000000000000000000000000000000000000000000000000000008152fd5b815115806147ec575b6147b2575090565b6024906001600160a01b03604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b156147aa565b6147fe8161465b565b9081614866575b613fc3915061482667ffffffffffffffff8254168042104282180218614904565b7fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff6fffffffffffffffff000000000000000083549260401b169116179055565b60038101614875838254612a77565b9055670de0b6b3a7640000600c5461488d81856144cc565b93096148e2575b6148a0613fc392613b24565b60018201906fffffffffffffffffffffffffffffffff198254916148d76fffffffffffffffffffffffffffffffff918285166139cd565b169116179055614805565b600182018092111561489457634e487b7160e01b600052601160045260246000fd5b67ffffffffffffffff90818111614919571690565b604490604051907f6dfcc650000000000000000000000000000000000000000000000000000000008252604060048301526024820152fdfea2646970667358221220091b44d176fcb8b7cab87afbcc693fe5d47c5f762928f531c8fd019793af52ba64736f6c6343000819003360c034608057601f6104d438819003918201601f19168301916001600160401b03831184841017608557808492602094604052833981010312608057516001600160a01b03811681036080573360805260a052604051610438908161009c8239608051818181607d01526102ee015260a051818181610105015261033e0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060409080825260048036101561001657600080fd5b600091823560e01c90816372f702f314610312575080638da5cb5b146102c15763f3fef3a31461004557600080fd5b346102bd57826003193601126102bd57803573ffffffffffffffffffffffffffffffffffffffff938482168092036102b957602494807f000000000000000000000000000000000000000000000000000000000000000016338103610284575081519260208401907fa9059cbb000000000000000000000000000000000000000000000000000000008252878501528635604485015260448452608084019167ffffffffffffffff928581108482111761025957918798979291839286527f00000000000000000000000000000000000000000000000000000000000000001695519082875af13d1561024c573d82811161022157835192601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168401908111848210176101f6578452825261018d91903d88602084013e5b84610362565b80519081151591826101ce575b50506101a4578480f35b51917f5274afe7000000000000000000000000000000000000000000000000000000008352820152fd5b81925090602091810103126101f257602001518015908115036101f257388061019a565b8580fd5b87896041897f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b86886041887f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b61018d9150606090610187565b88886041897f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b84604491888551927f551266a80000000000000000000000000000000000000000000000000000000084523390840152820152fd5b8380fd5b5080fd5b8284346102bd57816003193601126102bd576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8390346102bd57816003193601126102bd5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b906103a1575080511561037757805190602001fd5b60046040517f1425ea42000000000000000000000000000000000000000000000000000000008152fd5b815115806103f9575b6103b2575090565b60249073ffffffffffffffffffffffffffffffffffffffff604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b156103aa56fea26469706673582212207e8848ff620434987cb0cb661d55fe38df9d13c4a87115178798770df12e7bd164736f6c6343000819003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000f0a2e8497cd572819c747d3877759bd71d197f0200000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000001c4d6176657269636b2042502d555344432d55534462432d31322d52310000000000000000000000000000000000000000000000000000000000000000000000144d42502d555344432d55534462432d31322d5231000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000064b88c73a5dfa78d1713fe1b4c69a22d7e0faaa7000000000000000000000000000000000000000000000000000000000000000100000000000000000000000005b1b801191b41a21b9c0bfd4c4ef8952eb28cd9