Files
cuna/artifacts/contracts/CunaFinanceBsc.sol/CunaFinanceBsc.json
2025-10-01 02:11:28 +02:00

2189 lines
146 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "CunaFinanceBsc",
"sourceName": "contracts/CunaFinanceBsc.sol",
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "InvalidInitialization",
"type": "error"
},
{
"inputs": [],
"name": "NotInitializing",
"type": "error"
},
{
"inputs": [],
"name": "ReentrancyGuardReentrantCall",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "SafeERC20FailedOperation",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "bonus",
"type": "uint256"
}
],
"name": "BonusClaimed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "seller",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "fee",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "stakeId",
"type": "uint256"
}
],
"name": "CancellationFeePaid",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "epochId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "treasuryTvl",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "unlockPercentage",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "paybackPercent",
"type": "uint256"
}
],
"name": "EpochEnded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "FundsClaimed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "FundsWithdrawn",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint64",
"name": "version",
"type": "uint64"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "StakeCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "seller",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "stakeId",
"type": "uint256"
}
],
"name": "StakeSaleCancelled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "seller",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "buyer",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "saleAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "stakeId",
"type": "uint256"
}
],
"name": "StakeSold",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "seller",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "saleAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "stakeId",
"type": "uint256"
}
],
"name": "StakeUpForSale",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "stakeId",
"type": "uint256"
}
],
"name": "StakeWithdrawn",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "UnlockScheduleSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "bonus",
"type": "uint256"
}
],
"name": "VestingClaimed",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "bot",
"type": "address"
}
],
"name": "addBot",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_newOwner",
"type": "address"
}
],
"name": "addOwner",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "authorizedBots",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "users",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"name": "batchCreateUserStakes",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "seller",
"type": "address"
},
{
"internalType": "uint256",
"name": "stakeId",
"type": "uint256"
}
],
"name": "buySellStake",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "calculateUnclaimedFunds",
"outputs": [
{
"internalType": "uint256",
"name": "totalUnclaimed",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "stakeId",
"type": "uint256"
}
],
"name": "cancelSellStake",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "cancellationFee",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_token",
"type": "address"
}
],
"name": "claimAllVestingByToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "_vestingIndices",
"type": "uint256[]"
}
],
"name": "claimBonus",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "claimUnlockedFunds",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_vestingIndex",
"type": "uint256"
}
],
"name": "claimVesting",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "bonus",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "lockedUntil",
"type": "uint256"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "usdAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "lastClaimed",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "createdAt",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "claimedAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "claimedBonus",
"type": "uint256"
}
],
"name": "createVesting",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "unlockTime",
"type": "uint256"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "bool",
"name": "isVesting",
"type": "bool"
}
],
"name": "createWithdrawStakeForUser",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "currentEpochId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "dollarsVested",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "estDaysRemaining",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "currentTreasuryTvl",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_paybackPercent",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_currentLiability",
"type": "uint256"
}
],
"name": "endEpoch",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "epochs",
"outputs": [
{
"internalType": "uint256",
"name": "estDaysRemaining",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "currentTreasuryTvl",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "totalLiability",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "paybackPercent",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "unlockPercentage",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getAllSellStakes",
"outputs": [
{
"internalType": "address[]",
"name": "sellers",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "stakeIds",
"type": "uint256[]"
},
{
"components": [
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "salePrice",
"type": "uint256"
},
{
"internalType": "address",
"name": "seller",
"type": "address"
},
{
"internalType": "uint256",
"name": "listTime",
"type": "uint256"
}
],
"internalType": "struct CunaFinanceBsc.SellStake[]",
"name": "sellStakeData",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "getAllWithdrawStakes",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "stakeId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "unlockTime",
"type": "uint256"
},
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"internalType": "struct CunaFinanceBsc.WithdrawStake[]",
"name": "",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "epochId",
"type": "uint256"
}
],
"name": "getEpoch",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "estDaysRemaining",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "currentTreasuryTvl",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "totalLiability",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "paybackPercent",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "unlockPercentage",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
}
],
"internalType": "struct CunaFinanceBsc.Epoch",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "startId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "endId",
"type": "uint256"
}
],
"name": "getEpochs",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "estDaysRemaining",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "currentTreasuryTvl",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "totalLiability",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "paybackPercent",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "unlockPercentage",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
}
],
"internalType": "struct CunaFinanceBsc.Epoch[]",
"name": "",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "startIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "length",
"type": "uint256"
}
],
"name": "getMarketplaceHistory",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "listTime",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "saleTime",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "origValue",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "saleValue",
"type": "uint256"
},
{
"internalType": "address",
"name": "seller",
"type": "address"
},
{
"internalType": "address",
"name": "buyer",
"type": "address"
}
],
"internalType": "struct CunaFinanceBsc.MarketplaceHistory[]",
"name": "",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getMarketplaceHistoryCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "getNetStake",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "seller",
"type": "address"
},
{
"internalType": "uint256",
"name": "stakeId",
"type": "uint256"
}
],
"name": "getSellStake",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "salePrice",
"type": "uint256"
},
{
"internalType": "address",
"name": "seller",
"type": "address"
},
{
"internalType": "uint256",
"name": "listTime",
"type": "uint256"
}
],
"internalType": "struct CunaFinanceBsc.SellStake",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "getUnclaimedFundsBreakdown",
"outputs": [
{
"internalType": "uint256[]",
"name": "epochIds",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "uint256",
"name": "totalUnclaimed",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
},
{
"internalType": "uint256",
"name": "_vestingIndex",
"type": "uint256"
}
],
"name": "getUnlockedVesting",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
},
{
"internalType": "uint256",
"name": "_vestingIndex",
"type": "uint256"
}
],
"name": "getUnlockedVestingBonus",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "getUserMarketplaceSales",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "getUserStakeInfo",
"outputs": [
{
"internalType": "uint256",
"name": "bigStake",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "unclaimedFunds",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "netStake",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "originalStake",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "getUserTotalClaimed",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "getUserTotalUnclaimedUsdValue",
"outputs": [
{
"internalType": "uint256",
"name": "totalUsd",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "_tokens",
"type": "address[]"
}
],
"name": "getVestedTotals",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "usdValues",
"type": "uint256[]"
},
{
"internalType": "uint256",
"name": "totalUsd",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
},
{
"internalType": "uint256",
"name": "_vestingIndex",
"type": "uint256"
}
],
"name": "getVestingSchedule",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "getVestings",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "bonus",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "lockedUntil",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "claimedAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "claimedBonus",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "lastClaimed",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "createdAt",
"type": "uint256"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "bool",
"name": "complete",
"type": "bool"
},
{
"internalType": "uint256",
"name": "usdAmount",
"type": "uint256"
}
],
"internalType": "struct CunaFinanceBsc.Vesting[]",
"name": "",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "stakeId",
"type": "uint256"
}
],
"name": "getWithdrawStake",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "stakeId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "unlockTime",
"type": "uint256"
},
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"internalType": "struct CunaFinanceBsc.WithdrawStake",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "highestRatio",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "instantBuyout",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "instantBuyoutPercent",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "marketplaceHistory",
"outputs": [
{
"internalType": "uint256",
"name": "listTime",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "saleTime",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "origValue",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "saleValue",
"type": "uint256"
},
{
"internalType": "address",
"name": "seller",
"type": "address"
},
{
"internalType": "address",
"name": "buyer",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "marketplaceMin",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "marketplace_sales",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "maxUnlockPercentage",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "owners",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "pendingSellStakes",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "priceOracles",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
}
],
"name": "removeOwner",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "salePrice",
"type": "uint256"
}
],
"name": "sellStake",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "sellStakeKeys",
"outputs": [
{
"internalType": "address",
"name": "seller",
"type": "address"
},
{
"internalType": "uint256",
"name": "stakeId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "sellStakes",
"outputs": [
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "salePrice",
"type": "uint256"
},
{
"internalType": "address",
"name": "seller",
"type": "address"
},
{
"internalType": "uint256",
"name": "listTime",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "address",
"name": "_oracle",
"type": "address"
}
],
"name": "setPriceOracle",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "uint256",
"name": "_lockTime",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_percentagePerStep",
"type": "uint256"
}
],
"name": "setUnlockScheduleByPercentage",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "testUpgradeFunction",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "totalBigStakes",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "totalClaimed",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "unlockDelay",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "unlockSchedules",
"outputs": [
{
"internalType": "uint256",
"name": "timeOffset",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "percentage",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_newFee",
"type": "uint256"
}
],
"name": "updateCancellationFee",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_highestRatio",
"type": "uint256"
}
],
"name": "updateHighestRatio",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_newPercent",
"type": "uint256"
}
],
"name": "updateInstantBuyoutPercent",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_newMin",
"type": "uint256"
}
],
"name": "updateMarketplaceMin",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_maxPercentage",
"type": "uint256"
}
],
"name": "updateMaxUnlockPercentage",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "stakeId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "newSalePrice",
"type": "uint256"
}
],
"name": "updateSellStake",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_delay",
"type": "uint256"
}
],
"name": "updateUnlockDelay",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "uint256",
"name": "vestingIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "bonus",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "lockedUntil",
"type": "uint256"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "usdAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "lastClaimed",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "createdAt",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "claimedAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "claimedBonus",
"type": "uint256"
}
],
"name": "updateVesting",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "userBigStake",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "userLastClaimedEpoch",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "userOriginalStake",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "vestedTotal",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "vestings",
"outputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "bonus",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "lockedUntil",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "claimedAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "claimedBonus",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "lastClaimed",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "createdAt",
"type": "uint256"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "bool",
"name": "complete",
"type": "bool"
},
{
"internalType": "uint256",
"name": "usdAmount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "withdrawFromStakingPool",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "withdrawFromVestingPool",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "withdrawLiabilities",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "stakeIds",
"type": "uint256[]"
}
],
"name": "withdrawStake",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "withdrawStakes",
"outputs": [
{
"internalType": "uint256",
"name": "stakeId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "unlockTime",
"type": "uint256"
},
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000d6565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000735760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d35780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6162d480620000e66000396000f3fe608060405234801561001057600080fd5b506004361061045e5760003560e01c80637e6d99261161024c578063bd84477d11610146578063d532bdfe116100c3578063ef5d9ae811610087578063ef5d9ae814610c9c578063f2bb563014610cbc578063fe2f50d014610ccf578063fee6018c14610cd8578063ffecf51614610ceb57600080fd5b8063d532bdfe14610c3a578063da1b436414610c4d578063e88f8e6614610c6d578063eacdc5ff14610c80578063eb44e0a314610c8957600080fd5b8063c6b61e4c1161010a578063c6b61e4c14610b3b578063c7b530b014610bab578063cc573a9114610bcb578063ce13d09014610c07578063cfcf331914610c1a57600080fd5b8063bd84477d14610a64578063bed9757e14610acc578063c0c07d1714610aed578063c267660314610b00578063c32d3ae214610b0857600080fd5b8063953d16bf116101d4578063aaf4b04d11610198578063aaf4b04d146109eb578063ac97b417146109fe578063b6c3dc4c14610a11578063b92a349f14610a31578063bc0bc6ba14610a4457600080fd5b8063953d16bf1461093957806396fd111a1461094c5780639cb6f5561461096c5780639f3a676c1461097f578063a0d46758146109cb57600080fd5b806382b756811161021b57806382b75681146108ca57806384e8520a146108dd578063853e0df2146108fd5780638939d787146109105780638f82818f1461091957600080fd5b80637e6d99261461087357806380259e691461089c57806380ca0ecf146108af5780638129fc1c146108c257600080fd5b806341e23c2a1161035d578063592d1dd1116102e55780636ef569a5116102a95780636ef569a5146108045780637065cb481461080d57806375060a0b146108205780637a0c6dc0146108405780637bc221ac1461086057600080fd5b8063592d1dd11461079f57806361d1080b146107bf57806362cd6a09146107c757806363624c83146107de57806367a74ddc146107f157600080fd5b80634a61f1e51161032c5780634a61f1e51461071e57806351e624721461073e57806351f6cf2f14610751578063549e61d314610779578063581162271461078c57600080fd5b806341e23c2a1461064b57806343a32f891461065e57806343c7c011146106d9578063441a4175146106ec57600080fd5b8063173825d9116103eb5780632e46fed8116103af5780632e46fed8146105c15780633ba8396e146105ea5780633c92f98d1461060d5780633e4bc6bc1461062f5780633f35e7221461063857600080fd5b8063173825d91461056c5780631764303d1461057f5780631aefa2d1146105925780631eb9e53e146105a55780632ded58aa146105b857600080fd5b8063092c761011610432578063092c7610146105065780630a84096a146105265780630a910a6d146105395780630c7d63861461054257806313baee5b1461054c57600080fd5b8062159da6146104635780630137451814610489578063022914a7146104ca5780630519da32146104fd575b600080fd5b610476610471366004615930565b610cfe565b6040519081526020015b60405180910390f35b6104b2610497366004615930565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610480565b6104ed6104d8366004615930565b60006020819052908152604090205460ff1681565b6040519015158152602001610480565b61047660075481565b610476610514366004615930565b60066020526000908152604090205481565b610476610534366004615952565b610d98565b61047660125481565b61054a610ed0565b005b61047661055a366004615930565b600c6020526000908152604090205481565b61054a61057a366004615930565b6110cf565b61054a61058d3660046159c0565b6111c0565b61054a6105a0366004615a01565b61142b565b6104766105b3366004615930565b61145f565b61047660115481565b6104766105cf366004615930565b6001600160a01b03166000908152601c602052604090205490565b6104ed6105f8366004615930565b60016020526000908152604090205460ff1681565b61062061061b3660046159c0565b6114a3565b60405161048093929190615a55565b610476601d5481565b61054a610646366004615952565b611691565b61054a610659366004615a8b565b611718565b6106aa61066c366004615952565b60146020908152600092835260408084209091529082529020805460018201546002830154600390930154919290916001600160a01b039091169084565b604051610480949392919093845260208401929092526001600160a01b03166040830152606082015260800190565b61054a6106e7366004615930565b611a22565b6106ff6106fa366004615a01565b611dab565b604080516001600160a01b039093168352602083019190915201610480565b61047661072c366004615930565b60186020526000908152604090205481565b61054a61074c366004615a01565b611de3565b61076461075f366004615952565b611e17565b60408051928352602083019190915201610480565b61054a610787366004615b17565b611e53565b61054a61079a366004615b82565b6121be565b6104766107ad366004615930565b60056020526000908152604090205481565b601b54610476565b6107cf612495565b60405161048093929190615ba4565b61054a6107ec366004615c6d565b6126e8565b61054a6107ff366004615ceb565b6128d6565b61047660165481565b61054a61081b366004615930565b612933565b61047661082e366004615930565b600a6020526000908152604090205481565b61085361084e366004615930565b612a05565b6040516104809190615d1e565b61047661086e366004615930565b612aec565b610476610881366004615930565b6001600160a01b031660009081526017602052604090205490565b61054a6108aa366004615a01565b612ccf565b6104766108bd366004615952565b612d03565b61054a612e0f565b61054a6108d8366004615a01565b612ff2565b6104766108eb366004615930565b600d6020526000908152604090205481565b61054a61090b366004615a01565b613084565b61047660135481565b610476610927366004615930565b60176020526000908152604090205481565b61054a610947366004615a01565b613120565b61095f61095a366004615b82565b613427565b6040516104809190615dcc565b61054a61097a366004615a01565b6135f7565b61099261098d366004615a01565b6138e8565b6040805196875260208701959095529385019290925260608401526001600160a01b0390811660808401521660a082015260c001610480565b6109de6109d9366004615952565b61393b565b6040516104809190615e4f565b61054a6109f9366004615a01565b6139cb565b61054a610a0c366004615a01565b613a51565b610a24610a1f366004615952565b613e5f565b6040516104809190615e83565b61054a610a3f366004615eb7565b613f93565b610a57610a52366004615a01565b61415c565b6040516104809190615eea565b610a77610a72366004615952565b614231565b604080519a8b5260208b0199909952978901969096526060880194909452608087019290925260a086015260c08501526001600160a01b031660e0840152151561010083015261012082015261014001610480565b610adf610ada366004615952565b6142af565b604051610480929190615f2d565b61054a610afb366004615f52565b614455565b6103e7610476565b610b1b610b16366004615930565b6145df565b604080519485526020850193909352918301526060820152608001610480565b610b7e610b49366004615a01565b600b60205260009081526040902080546001820154600283015460038401546004850154600590950154939492939192909186565b604080519687526020870195909552938501929092526060840152608083015260a082015260c001610480565b610bbe610bb9366004615930565b614633565b6040516104809190615f84565b610bde610bd9366004615952565b6146c8565b604080519485526020850193909352918301526001600160a01b03166060820152608001610480565b61054a610c15366004615a01565b614717565b610c2d610c28366004615b82565b61474b565b6040516104809190615fed565b61054a610c483660046159c0565b614918565b610476610c5b366004615930565b600e6020526000908152604090205481565b610620610c7b366004615930565b614b8c565b61047660105481565b61054a610c97366004615952565b614d64565b610476610caa366004615930565b601c6020526000908152604090205481565b61054a610cca366004615b82565b615320565b61047660155481565b61054a610ce6366004616067565b615431565b61054a610cf9366004615930565b615636565b600080610d0a8361145f565b6001600160a01b0384166000908152600e6020526040902054909150805b601054811015610d90578215610d7e576000818152600b602052604081206004015461271090610d5890866160dd565b610d6291906160f4565b9050610d6e8186616116565b9450610d7a8185616129565b9350505b80610d888161613c565b915050610d28565b505050919050565b6001600160a01b0382166000908152600260205260408120805482919084908110610dc557610dc5616155565b906000526020600020906009020190506000816006015442610de79190616129565b60078301549091506001600160a01b03166000805b6001600160a01b038316600090815260036020526040902054811015610ec3576001600160a01b0383166000908152600360205260408120805483908110610e4657610e46616155565b6000918252602082206002909102018054600182015460088a015492945090929091606490610e7790600a906160dd565b610e8191906160f4565b9050828810610eae57612710610e9783836160dd565b610ea191906160f4565b610eab9087616116565b95505b5050505080610ebc9061613c565b9050610dfc565b5093505050505b92915050565b610ed86156b2565b6000610ee333610cfe565b905060008111610f0e5760405162461bcd60e51b8152600401610f059061616b565b60405180910390fd5b336000908152600c602052604081208054839290610f2d908490616129565b925050819055508060116000828254610f469190616129565b9091555050601054336000908152600e6020908152604080832093909355601c90529081208054839290610f7b908490616116565b909155505060088054906000610f908361613c565b9091555050336000908152600f6020908152604091829020825160808101845260085481529182018490526007549092820190610fcd9042616116565b81527355d398326f99059ff775485246999027b3197955602091820181905283546001808201865560009586528386208551600490930201918255848401519082015560408401516002820155606090930151600390930180546001600160a01b0319166001600160a01b0390941693909317909255908252600a90527fb0775d57c3eeb070f58d410e36e9ff396813a5d76997d9a91bdf10f0798296f0805483929061107b908490616116565b909155505060405181815233907fa65a8b4f7f65a1063243d7f7e9e4da00ff767599acf21549ef2548a45d1695ae9060200160405180910390a2506110cd600160008051602061627f83398151915255565b565b3360009081526020819052604090205460ff166110fe5760405162461bcd60e51b8152600401610f0590616195565b6001600160a01b03811660009081526020819052604090205460ff166111525760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b6044820152606401610f05565b336001600160a01b0382160361119f5760405162461bcd60e51b815260206004820152601260248201527121b0b73737ba103932b6b7bb329039b2b63360711b6044820152606401610f05565b6001600160a01b03166000908152602081905260409020805460ff19169055565b6111c86156b2565b6000805b8281101561137d5760008484838181106111e8576111e8616155565b33600090815260026020908152604090912054910292909201359250508110611211575061136b565b33600090815260026020526040812080548390811061123257611232616155565b90600052602060002090600902019050600061124e3384610d98565b905081600401548110156112645750505061136b565b60008260040154826112769190616129565b905080600003611289575050505061136b565b8083600401600082825461129d9190616116565b909155506112ad90508187616116565b336000908152600f602052604090819020815160808101909252919750806112d887620f4240616116565b8152602001838152602001600754426112f19190616116565b81527355d398326f99059ff775485246999027b3197955602091820152825460018082018555600094855293829020835160049092020190815590820151928101929092556040810151600283015560600151600390910180546001600160a01b0319166001600160a01b03909216919091179055505050505b806113758161613c565b9150506111cc565b50801561140f577355d398326f99059ff775485246999027b31979556000908152600a6020527fb0775d57c3eeb070f58d410e36e9ff396813a5d76997d9a91bdf10f0798296f080548392906113d4908490616116565b909155505060405181815233907f4e69fdc49495bcab2b4375781457ba16653a90eb4ffb6588351bdc39071433e29060200160405180910390a25b50611427600160008051602061627f83398151915255565b5050565b3360009081526020819052604090205460ff1661145a5760405162461bcd60e51b8152600401610f0590616195565b601655565b6001600160a01b0381166000908152600c6020908152604080832054601890925282205480821161149157600061149b565b61149b8183616129565b949350505050565b606080600083806001600160401b038111156114c1576114c16161bd565b6040519080825280602002602001820160405280156114ea578160200160208202803683370190505b509350806001600160401b03811115611505576115056161bd565b60405190808252806020026020018201604052801561152e578160200160208202803683370190505b50925060005b8181101561168857600087878381811061155057611550616155565b90506020020160208101906115659190615930565b6001600160a01b038116600090815260066020526040902054875191925090819088908590811061159857611598616155565b6020908102919091018101919091526001600160a01b03838116600081815260049384905260408082205490516302c68be360e31b815294850192909252929116906316345f1890602401602060405180830381865afa158015611600573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162491906161d3565b90506000670de0b6b3a764000061163b84846160dd565b61164591906160f4565b90508088868151811061165a5761165a616155565b602090810291909101015261166f8188616116565b96505050505080806116809061613c565b915050611534565b50509250925092565b3360009081526020819052604090205460ff166116c05760405162461bcd60e51b8152600401610f0590616195565b6116d46001600160a01b03831633836156fe565b6040518181526001600160a01b0383169033907fa92ff919b850e4909ab2261d907ef955f11bc1716733a6cbece38d163a69af8a9060200160405180910390a35050565b3360009081526001602052604090205460ff166117475760405162461bcd60e51b8152600401610f0590616195565b6001600160a01b038b166000908152600260205260409020548a106117ae5760405162461bcd60e51b815260206004820152601c60248201527f56657374696e6720696e64657820646f6573206e6f74206578697374000000006044820152606401610f05565b6001600160a01b038b16600090815260026020526040812080548c9081106117d8576117d8616155565b906000526020600020906009020190508060080154600560008e6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546118219190616129565b9091555050600381015481546118379190616129565b60078201546001600160a01b031660009081526006602052604081208054909190611863908490616129565b925050819055506040518061014001604052808b81526020018a8152602001898152602001848152602001838152602001868152602001858152602001886001600160a01b0316815260200160001515815260200187815250600260008e6001600160a01b03166001600160a01b031681526020019081526020016000208c815481106118f2576118f2616155565b9060005260206000209060090201600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506101008201518160070160146101000a81548160ff021916908315150217905550610120820151816008015590505085600560008e6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546119d79190616116565b909155506119e79050838b616129565b6001600160a01b03881660009081526006602052604081208054909190611a0f908490616116565b9091555050505050505050505050505050565b611a2a6156b2565b6000805b33600090815260026020526040902054811015611b3557336000908152600260205260408120805483908110611a6657611a66616155565b6000918252602090912060099091020160078101549091506001600160a01b038581169116148015611aa457506007810154600160a01b900460ff16155b15611b22576000611ab53384612d03565b90508160030154811115611b20576000826003015482611ad59190616129565b9050611ae18186616116565b945080836003016000828254611af79190616116565b90915550508254600384015410611b1e5760078301805460ff60a01b1916600160a01b1790555b505b505b5080611b2d8161613c565b915050611a2e565b5060008111611b565760405162461bcd60e51b8152600401610f059061616b565b3360009081526005602052604090205415611c5f576001600160a01b0382811660008181526004602081905260408083205490516302c68be360e31b8152918201939093529092670de0b6b3a76400009285929116906316345f1890602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf691906161d3565b611c0091906160dd565b611c0a91906160f4565b336000908152600560205260409020549091508110611c385733600090815260056020526040812055611c5d565b3360009081526005602052604081208054839290611c57908490616129565b90915550505b505b6001600160a01b03821660009081526006602052604081208054839290611c87908490616129565b9091555050336000908152600f602052604080822081516080810190925260098054919383929190611cb88361613c565b91905055815260200183815260200160075442611cd59190616116565b81526001600160a01b0385811660209283018190528454600180820187556000968752848720865160049093020191825585850151908201556040808601516002830155606090950151600390910180546001600160a01b03191691909316179091558352600a905281208054839290611d50908490616116565b9091555050604080518281526000602082015233917f4a94c2c356e29a6583071e731bdacf2ca56565ba5efebcff6936eb7923b51721910160405180910390a250611da8600160008051602061627f83398151915255565b50565b60198181548110611dbb57600080fd5b6000918252602090912060029091020180546001909101546001600160a01b03909116915082565b3360009081526020819052604090205460ff16611e125760405162461bcd60e51b8152600401610f0590616195565b601555565b60036020528160005260406000208181548110611e3357600080fd5b600091825260209091206002909102018054600190910154909250905082565b3360009081526001602052604090205460ff16611e825760405162461bcd60e51b8152600401610f0590616195565b828114611ec95760405162461bcd60e51b8152602060048201526015602482015274082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b6044820152606401610f05565b82611f055760405162461bcd60e51b815260206004820152600c60248201526b456d7074792061727261797360a01b6044820152606401610f05565b60005b838110156121b7576000858583818110611f2457611f24616155565b9050602002016020810190611f399190615930565b6001600160a01b031603611f5f5760405162461bcd60e51b8152600401610f05906161ec565b6000838383818110611f7357611f73616155565b9050602002013511611f975760405162461bcd60e51b8152600401610f0590616215565b828282818110611fa957611fa9616155565b90506020020135600c6000878785818110611fc657611fc6616155565b9050602002016020810190611fdb9190615930565b6001600160a01b03166001600160a01b03168152602001908152602001600020546011546120099190616129565b6120139190616116565b60115582828281811061202857612028616155565b90506020020135600d600087878581811061204557612045616155565b905060200201602081019061205a9190615930565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550601054600e600087878581811061209757612097616155565b90506020020160208101906120ac9190615930565b6001600160a01b031681526020810191909152604001600020558282828181106120d8576120d8616155565b90506020020135600c60008787858181106120f5576120f5616155565b905060200201602081019061210a9190615930565b6001600160a01b0316815260208101919091526040016000205584848281811061213657612136616155565b905060200201602081019061214b9190615930565b6001600160a01b03167fec7e3594982826a1f90c8fc76513357b83a691b7f4e38b8be04f3d40f9b1583984848481811061218757612187616155565b9050602002013560405161219d91815260200190565b60405180910390a2806121af8161613c565b915050611f08565b5050505050565b6121c66156b2565b600082116122065760405162461bcd60e51b815260206004820152600d60248201526c496e76616c69642076616c756560981b6044820152606401610f05565b6000811161224b5760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642073616c6520707269636560701b6044820152606401610f05565b6015548210156122935760405162461bcd60e51b815260206004820152601360248201527256616c75652062656c6f77206d696e696d756d60681b6044820152606401610f05565b600061229e3361145f565b9050808311156122e95760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e74206e6574207374616b6560501b6044820152606401610f05565b600880549060006122f98361613c565b90915550506008543360009081526018602052604081208054869290612320908490616116565b909155505060408051608081018252858152602080820186815233838501818152426060860190815260008381526014865287812089825286528781209651875593516001808801919091559151600280880180546001600160a01b039384166001600160a01b03199182161790915592516003909801979097558751808901909852928752938601878152601980548084018255948190529651939095027f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c969581018054949093169390941692909217905591517f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c96969091015590546124259190616129565b336000818152601a6020908152604080832086845282529182902093909355805186815292830184905290917f8e79b7ba8dab5ebfa59b9c6af1743c3ef14863680b3cc5ac837f8d636f76031c910160405180910390a25050611427600160008051602061627f83398151915255565b60195460609081908190806001600160401b038111156124b7576124b76161bd565b6040519080825280602002602001820160405280156124e0578160200160208202803683370190505b509350806001600160401b038111156124fb576124fb6161bd565b604051908082528060200260200182016040528015612524578160200160208202803683370190505b509250806001600160401b0381111561253f5761253f6161bd565b6040519080825280602002602001820160405280156125a457816020015b6125916040518060800160405280600081526020016000815260200160006001600160a01b03168152602001600081525090565b81526020019060019003908161255d5790505b50915060005b818110156126e1576000601982815481106125c7576125c7616155565b60009182526020918290206040805180820190915260029092020180546001600160a01b031680835260019091015492820192909252875190925087908490811061261457612614616155565b60200260200101906001600160a01b031690816001600160a01b031681525050806020015185838151811061264b5761264b616155565b60209081029190910181019190915281516001600160a01b03908116600090815260148352604080822085850151835284529081902081516080810183528154815260018201549481019490945260028101549092169083015260030154606082015284518590849081106126c2576126c2616155565b60200260200101819052505080806126d99061613c565b9150506125aa565b5050909192565b3360009081526001602052604090205460ff166127175760405162461bcd60e51b8152600401610f0590616195565b600260008b6001600160a01b03166001600160a01b031681526020019081526020016000206040518061014001604052808b81526020018a8152602001898152602001848152602001838152602001868152602001858152602001886001600160a01b03168152602001600015158152602001878152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506101008201518160070160146101000a81548160ff0219169083151502179055506101208201518160080155505084600560008c6001600160a01b03166001600160a01b03168152602001908152602001600020600082825461288d9190616116565b9091555061289d9050828a616129565b6001600160a01b038716600090815260066020526040812080549091906128c5908490616116565b909155505050505050505050505050565b3360009081526020819052604090205460ff166129055760405162461bcd60e51b8152600401610f0590616195565b6001600160a01b03918216600090815260046020526040902080546001600160a01b03191691909216179055565b3360009081526020819052604090205460ff166129625760405162461bcd60e51b8152600401610f0590616195565b6001600160a01b0381166129885760405162461bcd60e51b8152600401610f05906161ec565b6001600160a01b03811660009081526020819052604090205460ff16156129e15760405162461bcd60e51b815260206004820152600d60248201526c20b63932b0b23c9037bbb732b960991b6044820152606401610f05565b6001600160a01b03166000908152602081905260409020805460ff19166001179055565b6001600160a01b0381166000908152600260209081526040808320805482518185028101850190935280835260609492939192909184015b82821015612ae157600084815260209081902060408051610140810182526009860290920180548352600180820154848601526002820154928401929092526003810154606084015260048101546080840152600581015460a0840152600681015460c084015260078101546001600160a01b03811660e0850152600160a01b900460ff161515610100840152600801546101208301529083529092019101612a3d565b505050509050919050565b6001600160a01b038116600090815260026020526040812054815b81811015612cc8576001600160a01b0384166000908152600260205260408120805483908110612b3957612b39616155565b600091825260209182902060408051610140810182526009909302909101805483526001810154938301939093526002830154908201526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260078201546001600160a01b03811660e083015260ff600160a01b90910416151561010082018190526008909201546101208201529150612cb55760e0810180516001600160a01b03908116600090815260046020819052604080832054945190516302c68be360e31b81529294909316926316345f1892612c2992016001600160a01b0391909116815260200190565b602060405180830381865afa158015612c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c6a91906161d3565b9050600082606001518360000151612c829190616129565b90506000670de0b6b3a7640000612c9983856160dd565b612ca391906160f4565b9050612caf8188616116565b96505050505b5080612cc08161613c565b915050612b07565b5050919050565b3360009081526020819052604090205460ff16612cfe5760405162461bcd60e51b8152600401610f0590616195565b601d55565b6001600160a01b0382166000908152600260205260408120805482919084908110612d3057612d30616155565b906000526020600020906009020190506000816006015442612d529190616129565b60078301549091506001600160a01b03166000805b6001600160a01b038316600090815260036020526040902054811015610ec3576001600160a01b0383166000908152600360205260408120805483908110612db157612db1616155565b600091825260209091206002909102018054600182015491925090818710612dfb57875461271090612de49083906160dd565b612dee91906160f4565b612df89086616116565b94505b50505080612e089061613c565b9050612d67565b6000612e19615762565b805490915060ff600160401b82041615906001600160401b0316600081158015612e405750825b90506000826001600160401b03166001148015612e5c5750303b155b905081158015612e6a575080155b15612e885760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315612eb257845460ff60401b1916600160401b1785555b612eba61578b565b3360009081526020818152604082208054600160ff1991821681179092557f4cfa3c6903140891ecff713e237b1f1746362568dfb5e8e9bc37719e4f37e0c58054821683179055918190527f3e1f9e6abae6b647fdc3c5896ef1871ceb3c98e9e72852da3f17d161a860f76c80548316821790557f3517cbb3edfcef55b3b32be7021bc73ef070f4a8bad0d4b389b96924cf17b7418054831682179055738a9281ecece9b599c2f42d829c3d0d8e74b7083e9092527f968a1791ad31618c63b086103baa804af57c3ca0efa33a191010fbb7741579fc805490911690911790556203f480600755606460135583156121b757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050565b3360009081526020819052604090205460ff166130215760405162461bcd60e51b8152600401610f0590616195565b6000811161307f5760405162461bcd60e51b815260206004820152602560248201527f4d61782070657263656e74616765206d75737420626520677265617465722074604482015264068616e20360dc1b6064820152608401610f05565b601355565b3360009081526020819052604090205460ff166130b35760405162461bcd60e51b8152600401610f0590616195565b6130d27355d398326f99059ff775485246999027b319795533836156fe565b6040518181527355d398326f99059ff775485246999027b31979559033907fa92ff919b850e4909ab2261d907ef955f11bc1716733a6cbece38d163a69af8a9060200160405180910390a350565b336000908152601460209081526040808320848452909152902080546131585760405162461bcd60e51b8152600401610f059061623d565b60028101546001600160a01b031633146131a55760405162461bcd60e51b815260206004820152600e60248201526d2737ba103a34329039b2b63632b960911b6044820152606401610f05565b8054601654600090612710906131bb90846160dd565b6131c591906160f4565b336000908152601860205260408120805492935084929091906131e9908490616129565b9091555050801561323257336000908152600c602052604081208054839290613213908490616129565b92505081905550806011600082825461322c9190616129565b90915550505b801561327457604080518281526020810186905233917f4725a4d4de9bff212d0885095e27515072f73f427df55e52f37f241321ef88f9910160405180910390a25b336000818152601460209081526040808320888452825280832083815560018082018590556002820180546001600160a01b03191690556003909101849055938352601a825280832088845290915281205460195490926132d491616129565b9050808214613395576000601982815481106132f2576132f2616155565b60009182526020918290206040805180820190915260029092020180546001600160a01b0316825260010154918101919091526019805491925082918590811061333e5761333e616155565b6000918252602080832084516002939093020180546001600160a01b0319166001600160a01b03938416178155938101516001909401939093558351168152601a8252604080822093830151825292909152208290555b60198054806133a6576133a6616268565b600082815260208082206002600019949094019384020180546001600160a01b03191681556001018290559190925533808352601a825260408084208a855283528084209390935591518881527f73d12dec3eb3b445b6c9feb2fd559ba7c852c525bc1e59d8f7ff760c55df041d91015b60405180910390a2505050505050565b6060818311156134695760405162461bcd60e51b815260206004820152600d60248201526c496e76616c69642072616e676560981b6044820152606401610f05565b60105482106134b05760405162461bcd60e51b8152602060048201526013602482015272115b9908195c1bd8da081b9bdd08199bdd5b99606a1b6044820152606401610f05565b60006134bc8484616129565b6134c7906001616116565b90506000816001600160401b038111156134e3576134e36161bd565b60405190808252806020026020018201604052801561354d57816020015b61353a6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8152602001906001900390816135015790505b50905060005b828110156135ee57600b60006135698389616116565b81526020019081526020016000206040518060c001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815250508282815181106135d0576135d0616155565b602002602001018190525080806135e69061613c565b915050613553565b50949350505050565b6135ff6156b2565b6000811161361f5760405162461bcd60e51b8152600401610f0590616215565b6000601254116136685760405162461bcd60e51b81526020600482015260146024820152734275796f7574206e6f7420617661696c61626c6560601b6044820152606401610f05565b60006136733361145f565b9050808211156136be5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e74206e6574207374616b6560501b6044820152606401610f05565b6127106136cd826109c46160dd565b6136d791906160f4565b8210156137175760405162461bcd60e51b815260206004820152600e60248201526d416d6f756e7420746f6f206c6f7760901b6044820152606401610f05565b60006127106012548461372a91906160dd565b61373491906160f4565b336000908152600c6020526040812080549293508592909190613758908490616129565b9250508190555082601160008282546137719190616129565b9091555050336000908152601c602052604081208054839290613795908490616116565b9091555050600880549060006137aa8361613c565b9091555050336000908152600f60209081526040918290208251608081018452600854815291820184905260075490928201906137e79042616116565b81527355d398326f99059ff775485246999027b3197955602091820181905283546001808201865560009586528386208551600490930201918255848401519082015560408401516002820155606090930151600390930180546001600160a01b0319166001600160a01b0390941693909317909255908252600a90527fb0775d57c3eeb070f58d410e36e9ff396813a5d76997d9a91bdf10f0798296f08054839290613895908490616116565b909155505060405181815233907fa65a8b4f7f65a1063243d7f7e9e4da00ff767599acf21549ef2548a45d1695ae9060200160405180910390a25050611da8600160008051602061627f83398151915255565b601b81815481106138f857600080fd5b6000918252602090912060069091020180546001820154600283015460038401546004850154600590950154939550919390926001600160a01b03918216911686565b61396f6040518060800160405280600081526020016000815260200160006001600160a01b03168152602001600081525090565b506001600160a01b03918216600090815260146020908152604080832093835292815290829020825160808101845281548152600182015492810192909252600281015490931691810191909152600390910154606082015290565b3360009081526020819052604090205460ff166139fa5760405162461bcd60e51b8152600401610f0590616195565b612710811115613a4c5760405162461bcd60e51b815260206004820152601d60248201527f50657263656e746167652063616e6e6f742065786365656420313030250000006044820152606401610f05565b601255565b613a596156b2565b336000908152600260205260409020548110613aaf5760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840eccae6e8d2dcce40d2dcc8caf605b1b6044820152606401610f05565b336000908152600260205260408120805483908110613ad057613ad0616155565b906000526020600020906009020190508060070160149054906101000a900460ff1615613b325760405162461bcd60e51b815260206004820152601060248201526f56657374696e6720636f6d706c65746560801b6044820152606401610f05565b6000613b3e3384612d03565b90508160030154811015613b8b5760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a590818db185a5b48185b5bdd5b9d60621b6044820152606401610f05565b6000826003015482613b9d9190616129565b905060008111613bbf5760405162461bcd60e51b8152600401610f059061616b565b80836003016000828254613bd39190616116565b90915550508254600384015410613bfa5760078301805460ff60a01b1916600160a01b1790555b3360009081526005602052604090205415613d085760078301546001600160a01b0390811660008181526004602081905260408083205490516302c68be360e31b8152918201939093529092670de0b6b3a76400009285929116906316345f1890602401602060405180830381865afa158015613c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c9f91906161d3565b613ca991906160dd565b613cb391906160f4565b336000908152600560205260409020549091508110613ce15733600090815260056020526040812055613d06565b3360009081526005602052604081208054839290613d00908490616129565b90915550505b505b60078301546001600160a01b031660009081526006602052604081208054839290613d34908490616129565b9091555050336000908152600f602052604080822081516080810190925260098054919383929190613d658361613c565b91905055815260200183815260200160075442613d829190616116565b81526007860180546001600160a01b039081166020938401528454600180820187556000968752848720865160049093020191825585850151908201556040808601516002830155606090950151600390910180546001600160a01b0319169183169190911790559054168352600a905281208054839290613e05908490616116565b9091555050604080518281526000602082015233917f4a94c2c356e29a6583071e731bdacf2ca56565ba5efebcff6936eb7923b51721910160405180910390a2505050611da8600160008051602061627f83398151915255565b613e93604051806080016040528060008152602001600081526020016000815260200160006001600160a01b031681525090565b6001600160a01b0383166000908152600f60205260408120905b8154811015613f585783828281548110613ec957613ec9616155565b90600052602060002090600402016000015403613f4657818181548110613ef257613ef2616155565b6000918252602091829020604080516080810182526004909302909101805483526001810154938301939093526002830154908201526003909101546001600160a01b031660608201529250610eca915050565b80613f508161613c565b915050613ead565b5060405162461bcd60e51b815260206004820152600f60248201526e14dd185ad9481b9bdd08199bdd5b99608a1b6044820152606401610f05565b3360009081526020819052604090205460ff16613fc25760405162461bcd60e51b8152600401610f0590616195565b6001600160a01b0383166140105760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610f05565b60008111801561402257506127108111155b6140635760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642070657263656e7461676560701b6044820152606401610f05565b6001600160a01b0383166000908152600360205260408120614084916158d9565b6000825b61271082101561412157826127106140a08285616116565b11156140b5576140b283612710616129565b90505b6001600160a01b038616600090815260036020908152604080832081518083019092528582528183018581528154600181810184559286529390942091516002909302909101918255915191015561410d8184616116565b92506141198583616116565b915050614088565b6040516001600160a01b038616907fde4b6ccc38b84f88129403b65a309f9b1c41d4c316bc2118d7614e449b9d4c4590600090a25050505050565b6141956040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60105482106141d85760405162461bcd60e51b815260206004820152600f60248201526e115c1bd8da081b9bdd08199bdd5b99608a1b6044820152606401610f05565b506000908152600b6020908152604091829020825160c08101845281548152600182015492810192909252600281015492820192909252600382015460608201526004820154608082015260059091015460a082015290565b6002602052816000526040600020818154811061424d57600080fd5b6000918252602090912060099091020180546001820154600283015460038401546004850154600586015460068701546007880154600890980154969950949750929591949093916001600160a01b03811691600160a01b90910460ff16908a565b6001600160a01b0382166000908152600260205260408120805460609283929091859081106142e0576142e0616155565b600091825260208083206007600990930201918201546001600160a01b03168084526003909152604083205491935091816001600160401b03811115614328576143286161bd565b604051908082528060200260200182016040528015614351578160200160208202803683370190505b5090506000826001600160401b0381111561436e5761436e6161bd565b604051908082528060200260200182016040528015614397578160200160208202803683370190505b50905060005b83811015614444576001600160a01b03851660009081526003602052604081208054839081106143cf576143cf616155565b90600052602060002090600202019050806000015487600601546143f39190616116565b84838151811061440557614405616155565b602002602001018181525050806001015483838151811061442857614428616155565b60209081029190910101525061443d8161613c565b905061439d565b5090955093505050505b9250929050565b3360009081526020819052604090205460ff166144845760405162461bcd60e51b8152600401610f0590616195565b600081156144cf5760008261449b866127106160dd565b6144a591906160f4565b601054909150156144bd576144ba818561579b565b91505b601d548111156144cd57601d8190555b505b60135481111561451a5760405162461bcd60e51b81526020600482015260166024820152750aadcd8dec6d640e0cae4c6cadce8c2ceca40d0d2ced60531b6044820152606401610f05565b6040805160c08101825286815260208082018781528284018681526060808501898152608086018881524260a08801908152601080546000908152600b89528a90209851895595516001890155935160028801559051600387015551600486015590516005909401939093555483518881529182018590529281018690527feadbedb993dfca23e4c79bf4fa5fe531c2e0e926258fabb8445e8bc5c472780f910160405180910390a2601080549060006145d38361613c565b91905055505050505050565b60008060008060006145f086610cfe565b905060006145fd8761145f565b6001600160a01b03979097166000908152600c6020908152604080832054600d9092529091205490989297965094509092505050565b6001600160a01b0381166000908152600f60209081526040808320805482518185028101850190935280835260609492939192909184015b82821015612ae157600084815260209081902060408051608081018252600486029092018054835260018082015484860152600282015492840192909252600301546001600160a01b03166060830152908352909201910161466b565b600f60205281600052604060002081815481106146e457600080fd5b6000918252602090912060049091020180546001820154600283015460039093015491945092506001600160a01b031684565b3360009081526020819052604090205460ff166147465760405162461bcd60e51b8152600401610f0590616195565b600755565b601b54606090831061479f5760405162461bcd60e51b815260206004820152601960248201527f537461727420696e646578206f7574206f6620626f756e6473000000000000006044820152606401610f05565b60006147ab8385616116565b601b549091508111156147bd5750601b545b60006147c98583616129565b6001600160401b038111156147e0576147e06161bd565b60405190808252806020026020018201604052801561485c57816020015b6148496040518060c001604052806000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b031681525090565b8152602001906001900390816147fe5790505b509050845b828110156135ee57601b818154811061487c5761487c616155565b60009182526020918290206040805160c0810182526006909302909101805483526001810154938301939093526002830154908201526003820154606082015260048201546001600160a01b03908116608083015260059092015490911660a0820152826148ea8884616129565b815181106148fa576148fa616155565b602002602001018190525080806149109061613c565b915050614861565b6149206156b2565b336000908152600f6020526040902080546149735760405162461bcd60e51b81526020600482015260136024820152724e6f207374616b657320617661696c61626c6560681b6044820152606401610f05565b816149b85760405162461bcd60e51b8152602060048201526015602482015274139bc81cdd185ad94812511cc81c1c9bdd9a591959605a1b6044820152606401610f05565b60005b82811015614b735760008484838181106149d7576149d7616155565b9050602002013590506000805b8454811015614b1e576000858281548110614a0157614a01616155565b90600052602060002090600402019050838160000154148015614a28575060008160010154115b15614b0b578060020154421015614a705760405162461bcd60e51b815260206004820152600c60248201526b14dd185ad9481b1bd8dad95960a21b6044820152606401610f05565b60018101805460038301546000928390556001600160a01b0316808352600a60205260408320805492939192849290614aaa908490616129565b90915550614ac490506001600160a01b03821633846156fe565b604080518381526020810188905233917f933735aa8de6d7547d0126171b2f31b9c34dd00f3ecd4be85a0ba047db4fafef910160405180910390a260019450505050614b1e565b5080614b168161613c565b9150506149e4565b5080614b5e5760405162461bcd60e51b815260206004820152600f60248201526e14dd185ad9481b9bdd08199bdd5b99608a1b6044820152606401610f05565b50508080614b6b9061613c565b9150506149bb565b5050611427600160008051602061627f83398151915255565b606080600080614b9b8561145f565b6001600160a01b0386166000908152600e602052604081205460105492935091614bc6908390616129565b905080600003614bf7575050604080516000808252602082018181528284019093529095509093509150614d5d9050565b806001600160401b03811115614c0f57614c0f6161bd565b604051908082528060200260200182016040528015614c38578160200160208202803683370190505b509550806001600160401b03811115614c5357614c536161bd565b604051908082528060200260200182016040528015614c7c578160200160208202803683370190505b50945060005b81811015614d58576000614c968285616116565b905080888381518110614cab57614cab616155565b60209081029190910101528415614d24576000818152600b602052604081206004015461271090614cdc90886160dd565b614ce691906160f4565b905080888481518110614cfb57614cfb616155565b6020908102919091010152614d108188616116565b9650614d1c8187616129565b955050614d45565b6000878381518110614d3857614d38616155565b6020026020010181815250505b5080614d508161613c565b915050614c82565b505050505b9193909250565b614d6c6156b2565b6001600160a01b038216600090815260146020908152604080832084845290915290208054614dad5760405162461bcd60e51b8152600401610f059061623d565b336001600160a01b03841603614dfe5760405162461bcd60e51b815260206004820152601660248201527543616e6e6f7420627579206f776e206c697374696e6760501b6044820152606401610f05565b8054600182015460038301546000828411614e1a576000614e24565b614e248385616129565b9050600084614e35836127106160dd565b614e3f91906160f4565b90506000612710614e5083806160dd565b614e5a91906160f4565b90506000612710614e6b83896160dd565b614e7591906160f4565b90506000614e838289616129565b9050614ea57355d398326f99059ff775485246999027b3197955338d8a6157e2565b336000908152600c60205260408120549003614ecf57601054336000908152600e60205260409020555b6001600160a01b038b166000908152600c6020526040812080548a9290614ef7908490616129565b9091555050336000908152600c602052604081208054839290614f1b908490616116565b90915550506001600160a01b038b16600090815260186020526040812080548a9290614f48908490616129565b9091555050336000908152600d602052604081208054839290614f6c908490616116565b925050819055508160116000828254614f859190616129565b90915550506001600160a01b038b1660009081526017602052604081208054899290614fb2908490616116565b92505081905550601b6040518060c001604052808881526020014281526020018a81526020018981526020018d6001600160a01b03168152602001336001600160a01b031681525090806001815401808255809150506001900390600052602060002090600602016000909190919091506000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060a08201518160050160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505050601460008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008b815260200190815260200160002060008082016000905560018201600090556002820160006101000a8154906001600160a01b030219169055600382016000905550506000601a60008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008c8152602001908152602001600020549050600060016019805490506151619190616129565b90508082146152225760006019828154811061517f5761517f616155565b60009182526020918290206040805180820190915260029092020180546001600160a01b031682526001015491810191909152601980549192508291859081106151cb576151cb616155565b6000918252602080832084516002939093020180546001600160a01b0319166001600160a01b03938416178155938101516001909401939093558351168152601a8252604080822093830151825292909152208290555b601980548061523357615233616268565b6001900381819060005260206000209060020201600080820160006101000a8154906001600160a01b030219169055600182016000905550509055601a60008e6001600160a01b03166001600160a01b0316815260200190815260200160002060008d815260200190815260200160002060009055336001600160a01b03168d6001600160a01b03167f7bb39d095b04a9986ed34adf14d74c33294d0a9e807f02bf634d532507422eba8b8f6040516152f6929190918252602082015260400190565b60405180910390a35050505050505050505050611427600160008051602061627f83398151915255565b336000908152601460209081526040808320858452909152902080546153585760405162461bcd60e51b8152600401610f059061623d565b60028101546001600160a01b031633146153a55760405162461bcd60e51b815260206004820152600e60248201526d2737ba103a34329039b2b63632b960911b6044820152606401610f05565b600082116153ea5760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642073616c6520707269636560701b6044820152606401610f05565b60018101829055604080518381526020810185905233917f8e79b7ba8dab5ebfa59b9c6af1743c3ef14863680b3cc5ac837f8d636f76031c910160405180910390a2505050565b3360009081526001602052604090205460ff166154605760405162461bcd60e51b8152600401610f0590616195565b6001600160a01b0385166154ad5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642075736572206164647265737360601b6044820152606401610f05565b600084116154cd5760405162461bcd60e51b8152600401610f0590616215565b6001600160a01b03821661551b5760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610f05565b6008805490600061552b8361613c565b919050555060008161553f5760085461554f565b60085461554f90620f4240616116565b6001600160a01b038781166000908152600f6020908152604080832081516080810183528681528084018c81528184018c81528b881660608401818152855460018082018855968a52888a209551600490910290950194855592519484019490945551600283015551600390910180546001600160a01b0319169190961617909455928252600a9052908120805492935087929091906155f0908490616116565b909155505060408051868152602081018390526001600160a01b038816917f933735aa8de6d7547d0126171b2f31b9c34dd00f3ecd4be85a0ba047db4fafef9101613417565b3360009081526020819052604090205460ff166156655760405162461bcd60e51b8152600401610f0590616195565b6001600160a01b03811661568b5760405162461bcd60e51b8152600401610f05906161ec565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b60008051602061627f8339815191528054600119016156e457604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b600160008051602061627f83398151915255565b6040516001600160a01b0383811660248301526044820183905261575d91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050615821565b505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610eca565b615793615892565b6110cd6158b7565b6000601d5483116157ae57506000610eca565b6000601d54846157be9190616129565b905060006127106157cf85846160dd565b6157d991906160f4565b95945050505050565b6040516001600160a01b03848116602483015283811660448301526064820183905261581b9186918216906323b872dd9060840161572b565b50505050565b600080602060008451602086016000885af180615844576040513d6000823e3d81fd5b50506000513d9150811561585c578060011415615869565b6001600160a01b0384163b155b1561581b57604051635274afe760e01b81526001600160a01b0385166004820152602401610f05565b61589a6158bf565b6110cd57604051631afcd79f60e31b815260040160405180910390fd5b6156ea615892565b60006158c9615762565b54600160401b900460ff16919050565b5080546000825560020290600052602060002090810190611da891905b8082111561591057600080825560018201556002016158f6565b5090565b80356001600160a01b038116811461592b57600080fd5b919050565b60006020828403121561594257600080fd5b61594b82615914565b9392505050565b6000806040838503121561596557600080fd5b61596e83615914565b946020939093013593505050565b60008083601f84011261598e57600080fd5b5081356001600160401b038111156159a557600080fd5b6020830191508360208260051b850101111561444e57600080fd5b600080602083850312156159d357600080fd5b82356001600160401b038111156159e957600080fd5b6159f58582860161597c565b90969095509350505050565b600060208284031215615a1357600080fd5b5035919050565b600081518084526020808501945080840160005b83811015615a4a57815187529582019590820190600101615a2e565b509495945050505050565b606081526000615a686060830186615a1a565b8281036020840152615a7a8186615a1a565b915050826040830152949350505050565b60008060008060008060008060008060006101608c8e031215615aad57600080fd5b615ab68c615914565b9a5060208c0135995060408c0135985060608c0135975060808c01359650615ae060a08d01615914565b9a9d999c50979a9699959895975050505060c08401359360e081013593610100820135935061012082013592506101409091013590565b60008060008060408587031215615b2d57600080fd5b84356001600160401b0380821115615b4457600080fd5b615b508883890161597c565b90965094506020870135915080821115615b6957600080fd5b50615b768782880161597c565b95989497509550505050565b60008060408385031215615b9557600080fd5b50508035926020909101359150565b60608082528451908201819052600090608090818401906020808901855b83811015615be75781516001600160a01b031685529382019390820190600101615bc2565b505085830381870152615bfa8389615a1a565b868103604088015287518082528289019450908201925060005b81811015615c5e57615c4e84865180518252602080820151908301526040808201516001600160a01b031690830152606090810151910152565b9382019392850192600101615c14565b50919998505050505050505050565b6000806000806000806000806000806101408b8d031215615c8d57600080fd5b615c968b615914565b995060208b0135985060408b0135975060608b01359650615cb960808c01615914565b999c989b50969995989760a0870135975060c08701359660e08101359650610100810135955061012001359350915050565b60008060408385031215615cfe57600080fd5b615d0783615914565b9150615d1560208401615914565b90509250929050565b602080825282518282018190526000919060409081850190868401855b82811015615dbf5781518051855286810151878601528581015186860152606080820151908601526080808201519086015260a0808201519086015260c0808201519086015260e0808201516001600160a01b0316908601526101008082015115159086015261012090810151908501526101409093019290850190600101615d3b565b5091979650505050505050565b6020808252825182820181905260009190848201906040850190845b81811015615e4357615e30838551805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a08301525050565b9284019260c09290920191600101615de8565b50909695505050505050565b81518152602080830151908201526040808301516001600160a01b0316908201526060808301519082015260808101610eca565b8151815260208083015190820152604080830151908201526060808301516001600160a01b03169082015260808101610eca565b600080600060608486031215615ecc57600080fd5b615ed584615914565b95602085013595506040909401359392505050565b60c08101610eca8284805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a08301525050565b604081526000615f406040830185615a1a565b82810360208401526157d98185615a1a565b60008060008060808587031215615f6857600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252825182820181905260009190848201906040850190845b81811015615e4357615fda8385518051825260208082015190830152604080820151908301526060908101516001600160a01b0316910152565b9284019260809290920191600101615fa0565b602080825282518282018190526000919060409081850190868401855b82811015615dbf5781518051855286810151878601528581015186860152606080820151908601526080808201516001600160a01b039081169187019190915260a091820151169085015260c0909301929085019060010161600a565b600080600080600060a0868803121561607f57600080fd5b61608886615914565b945060208601359350604086013592506160a460608701615914565b9150608086013580151581146160b957600080fd5b809150509295509295909350565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610eca57610eca6160c7565b60008261611157634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610eca57610eca6160c7565b81810381811115610eca57610eca6160c7565b60006001820161614e5761614e6160c7565b5060010190565b634e487b7160e01b600052603260045260246000fd5b60208082526010908201526f4e6f7468696e6720746f20636c61696d60801b604082015260600190565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156161e557600080fd5b5051919050565b6020808252600f908201526e496e76616c6964206164647265737360881b604082015260600190565b6020808252600e908201526d125b9d985b1a5908185b5bdd5b9d60921b604082015260600190565b602080825260119082015270131a5cdd1a5b99c81b9bdd08199bdd5b99607a1b604082015260600190565b634e487b7160e01b600052603160045260246000fdfe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220752563a147e7fb2c015014ef7ff927f99464e7a121107233dab5dff98121b5f064736f6c63430008140033",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061045e5760003560e01c80637e6d99261161024c578063bd84477d11610146578063d532bdfe116100c3578063ef5d9ae811610087578063ef5d9ae814610c9c578063f2bb563014610cbc578063fe2f50d014610ccf578063fee6018c14610cd8578063ffecf51614610ceb57600080fd5b8063d532bdfe14610c3a578063da1b436414610c4d578063e88f8e6614610c6d578063eacdc5ff14610c80578063eb44e0a314610c8957600080fd5b8063c6b61e4c1161010a578063c6b61e4c14610b3b578063c7b530b014610bab578063cc573a9114610bcb578063ce13d09014610c07578063cfcf331914610c1a57600080fd5b8063bd84477d14610a64578063bed9757e14610acc578063c0c07d1714610aed578063c267660314610b00578063c32d3ae214610b0857600080fd5b8063953d16bf116101d4578063aaf4b04d11610198578063aaf4b04d146109eb578063ac97b417146109fe578063b6c3dc4c14610a11578063b92a349f14610a31578063bc0bc6ba14610a4457600080fd5b8063953d16bf1461093957806396fd111a1461094c5780639cb6f5561461096c5780639f3a676c1461097f578063a0d46758146109cb57600080fd5b806382b756811161021b57806382b75681146108ca57806384e8520a146108dd578063853e0df2146108fd5780638939d787146109105780638f82818f1461091957600080fd5b80637e6d99261461087357806380259e691461089c57806380ca0ecf146108af5780638129fc1c146108c257600080fd5b806341e23c2a1161035d578063592d1dd1116102e55780636ef569a5116102a95780636ef569a5146108045780637065cb481461080d57806375060a0b146108205780637a0c6dc0146108405780637bc221ac1461086057600080fd5b8063592d1dd11461079f57806361d1080b146107bf57806362cd6a09146107c757806363624c83146107de57806367a74ddc146107f157600080fd5b80634a61f1e51161032c5780634a61f1e51461071e57806351e624721461073e57806351f6cf2f14610751578063549e61d314610779578063581162271461078c57600080fd5b806341e23c2a1461064b57806343a32f891461065e57806343c7c011146106d9578063441a4175146106ec57600080fd5b8063173825d9116103eb5780632e46fed8116103af5780632e46fed8146105c15780633ba8396e146105ea5780633c92f98d1461060d5780633e4bc6bc1461062f5780633f35e7221461063857600080fd5b8063173825d91461056c5780631764303d1461057f5780631aefa2d1146105925780631eb9e53e146105a55780632ded58aa146105b857600080fd5b8063092c761011610432578063092c7610146105065780630a84096a146105265780630a910a6d146105395780630c7d63861461054257806313baee5b1461054c57600080fd5b8062159da6146104635780630137451814610489578063022914a7146104ca5780630519da32146104fd575b600080fd5b610476610471366004615930565b610cfe565b6040519081526020015b60405180910390f35b6104b2610497366004615930565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610480565b6104ed6104d8366004615930565b60006020819052908152604090205460ff1681565b6040519015158152602001610480565b61047660075481565b610476610514366004615930565b60066020526000908152604090205481565b610476610534366004615952565b610d98565b61047660125481565b61054a610ed0565b005b61047661055a366004615930565b600c6020526000908152604090205481565b61054a61057a366004615930565b6110cf565b61054a61058d3660046159c0565b6111c0565b61054a6105a0366004615a01565b61142b565b6104766105b3366004615930565b61145f565b61047660115481565b6104766105cf366004615930565b6001600160a01b03166000908152601c602052604090205490565b6104ed6105f8366004615930565b60016020526000908152604090205460ff1681565b61062061061b3660046159c0565b6114a3565b60405161048093929190615a55565b610476601d5481565b61054a610646366004615952565b611691565b61054a610659366004615a8b565b611718565b6106aa61066c366004615952565b60146020908152600092835260408084209091529082529020805460018201546002830154600390930154919290916001600160a01b039091169084565b604051610480949392919093845260208401929092526001600160a01b03166040830152606082015260800190565b61054a6106e7366004615930565b611a22565b6106ff6106fa366004615a01565b611dab565b604080516001600160a01b039093168352602083019190915201610480565b61047661072c366004615930565b60186020526000908152604090205481565b61054a61074c366004615a01565b611de3565b61076461075f366004615952565b611e17565b60408051928352602083019190915201610480565b61054a610787366004615b17565b611e53565b61054a61079a366004615b82565b6121be565b6104766107ad366004615930565b60056020526000908152604090205481565b601b54610476565b6107cf612495565b60405161048093929190615ba4565b61054a6107ec366004615c6d565b6126e8565b61054a6107ff366004615ceb565b6128d6565b61047660165481565b61054a61081b366004615930565b612933565b61047661082e366004615930565b600a6020526000908152604090205481565b61085361084e366004615930565b612a05565b6040516104809190615d1e565b61047661086e366004615930565b612aec565b610476610881366004615930565b6001600160a01b031660009081526017602052604090205490565b61054a6108aa366004615a01565b612ccf565b6104766108bd366004615952565b612d03565b61054a612e0f565b61054a6108d8366004615a01565b612ff2565b6104766108eb366004615930565b600d6020526000908152604090205481565b61054a61090b366004615a01565b613084565b61047660135481565b610476610927366004615930565b60176020526000908152604090205481565b61054a610947366004615a01565b613120565b61095f61095a366004615b82565b613427565b6040516104809190615dcc565b61054a61097a366004615a01565b6135f7565b61099261098d366004615a01565b6138e8565b6040805196875260208701959095529385019290925260608401526001600160a01b0390811660808401521660a082015260c001610480565b6109de6109d9366004615952565b61393b565b6040516104809190615e4f565b61054a6109f9366004615a01565b6139cb565b61054a610a0c366004615a01565b613a51565b610a24610a1f366004615952565b613e5f565b6040516104809190615e83565b61054a610a3f366004615eb7565b613f93565b610a57610a52366004615a01565b61415c565b6040516104809190615eea565b610a77610a72366004615952565b614231565b604080519a8b5260208b0199909952978901969096526060880194909452608087019290925260a086015260c08501526001600160a01b031660e0840152151561010083015261012082015261014001610480565b610adf610ada366004615952565b6142af565b604051610480929190615f2d565b61054a610afb366004615f52565b614455565b6103e7610476565b610b1b610b16366004615930565b6145df565b604080519485526020850193909352918301526060820152608001610480565b610b7e610b49366004615a01565b600b60205260009081526040902080546001820154600283015460038401546004850154600590950154939492939192909186565b604080519687526020870195909552938501929092526060840152608083015260a082015260c001610480565b610bbe610bb9366004615930565b614633565b6040516104809190615f84565b610bde610bd9366004615952565b6146c8565b604080519485526020850193909352918301526001600160a01b03166060820152608001610480565b61054a610c15366004615a01565b614717565b610c2d610c28366004615b82565b61474b565b6040516104809190615fed565b61054a610c483660046159c0565b614918565b610476610c5b366004615930565b600e6020526000908152604090205481565b610620610c7b366004615930565b614b8c565b61047660105481565b61054a610c97366004615952565b614d64565b610476610caa366004615930565b601c6020526000908152604090205481565b61054a610cca366004615b82565b615320565b61047660155481565b61054a610ce6366004616067565b615431565b61054a610cf9366004615930565b615636565b600080610d0a8361145f565b6001600160a01b0384166000908152600e6020526040902054909150805b601054811015610d90578215610d7e576000818152600b602052604081206004015461271090610d5890866160dd565b610d6291906160f4565b9050610d6e8186616116565b9450610d7a8185616129565b9350505b80610d888161613c565b915050610d28565b505050919050565b6001600160a01b0382166000908152600260205260408120805482919084908110610dc557610dc5616155565b906000526020600020906009020190506000816006015442610de79190616129565b60078301549091506001600160a01b03166000805b6001600160a01b038316600090815260036020526040902054811015610ec3576001600160a01b0383166000908152600360205260408120805483908110610e4657610e46616155565b6000918252602082206002909102018054600182015460088a015492945090929091606490610e7790600a906160dd565b610e8191906160f4565b9050828810610eae57612710610e9783836160dd565b610ea191906160f4565b610eab9087616116565b95505b5050505080610ebc9061613c565b9050610dfc565b5093505050505b92915050565b610ed86156b2565b6000610ee333610cfe565b905060008111610f0e5760405162461bcd60e51b8152600401610f059061616b565b60405180910390fd5b336000908152600c602052604081208054839290610f2d908490616129565b925050819055508060116000828254610f469190616129565b9091555050601054336000908152600e6020908152604080832093909355601c90529081208054839290610f7b908490616116565b909155505060088054906000610f908361613c565b9091555050336000908152600f6020908152604091829020825160808101845260085481529182018490526007549092820190610fcd9042616116565b81527355d398326f99059ff775485246999027b3197955602091820181905283546001808201865560009586528386208551600490930201918255848401519082015560408401516002820155606090930151600390930180546001600160a01b0319166001600160a01b0390941693909317909255908252600a90527fb0775d57c3eeb070f58d410e36e9ff396813a5d76997d9a91bdf10f0798296f0805483929061107b908490616116565b909155505060405181815233907fa65a8b4f7f65a1063243d7f7e9e4da00ff767599acf21549ef2548a45d1695ae9060200160405180910390a2506110cd600160008051602061627f83398151915255565b565b3360009081526020819052604090205460ff166110fe5760405162461bcd60e51b8152600401610f0590616195565b6001600160a01b03811660009081526020819052604090205460ff166111525760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b6044820152606401610f05565b336001600160a01b0382160361119f5760405162461bcd60e51b815260206004820152601260248201527121b0b73737ba103932b6b7bb329039b2b63360711b6044820152606401610f05565b6001600160a01b03166000908152602081905260409020805460ff19169055565b6111c86156b2565b6000805b8281101561137d5760008484838181106111e8576111e8616155565b33600090815260026020908152604090912054910292909201359250508110611211575061136b565b33600090815260026020526040812080548390811061123257611232616155565b90600052602060002090600902019050600061124e3384610d98565b905081600401548110156112645750505061136b565b60008260040154826112769190616129565b905080600003611289575050505061136b565b8083600401600082825461129d9190616116565b909155506112ad90508187616116565b336000908152600f602052604090819020815160808101909252919750806112d887620f4240616116565b8152602001838152602001600754426112f19190616116565b81527355d398326f99059ff775485246999027b3197955602091820152825460018082018555600094855293829020835160049092020190815590820151928101929092556040810151600283015560600151600390910180546001600160a01b0319166001600160a01b03909216919091179055505050505b806113758161613c565b9150506111cc565b50801561140f577355d398326f99059ff775485246999027b31979556000908152600a6020527fb0775d57c3eeb070f58d410e36e9ff396813a5d76997d9a91bdf10f0798296f080548392906113d4908490616116565b909155505060405181815233907f4e69fdc49495bcab2b4375781457ba16653a90eb4ffb6588351bdc39071433e29060200160405180910390a25b50611427600160008051602061627f83398151915255565b5050565b3360009081526020819052604090205460ff1661145a5760405162461bcd60e51b8152600401610f0590616195565b601655565b6001600160a01b0381166000908152600c6020908152604080832054601890925282205480821161149157600061149b565b61149b8183616129565b949350505050565b606080600083806001600160401b038111156114c1576114c16161bd565b6040519080825280602002602001820160405280156114ea578160200160208202803683370190505b509350806001600160401b03811115611505576115056161bd565b60405190808252806020026020018201604052801561152e578160200160208202803683370190505b50925060005b8181101561168857600087878381811061155057611550616155565b90506020020160208101906115659190615930565b6001600160a01b038116600090815260066020526040902054875191925090819088908590811061159857611598616155565b6020908102919091018101919091526001600160a01b03838116600081815260049384905260408082205490516302c68be360e31b815294850192909252929116906316345f1890602401602060405180830381865afa158015611600573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162491906161d3565b90506000670de0b6b3a764000061163b84846160dd565b61164591906160f4565b90508088868151811061165a5761165a616155565b602090810291909101015261166f8188616116565b96505050505080806116809061613c565b915050611534565b50509250925092565b3360009081526020819052604090205460ff166116c05760405162461bcd60e51b8152600401610f0590616195565b6116d46001600160a01b03831633836156fe565b6040518181526001600160a01b0383169033907fa92ff919b850e4909ab2261d907ef955f11bc1716733a6cbece38d163a69af8a9060200160405180910390a35050565b3360009081526001602052604090205460ff166117475760405162461bcd60e51b8152600401610f0590616195565b6001600160a01b038b166000908152600260205260409020548a106117ae5760405162461bcd60e51b815260206004820152601c60248201527f56657374696e6720696e64657820646f6573206e6f74206578697374000000006044820152606401610f05565b6001600160a01b038b16600090815260026020526040812080548c9081106117d8576117d8616155565b906000526020600020906009020190508060080154600560008e6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546118219190616129565b9091555050600381015481546118379190616129565b60078201546001600160a01b031660009081526006602052604081208054909190611863908490616129565b925050819055506040518061014001604052808b81526020018a8152602001898152602001848152602001838152602001868152602001858152602001886001600160a01b0316815260200160001515815260200187815250600260008e6001600160a01b03166001600160a01b031681526020019081526020016000208c815481106118f2576118f2616155565b9060005260206000209060090201600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506101008201518160070160146101000a81548160ff021916908315150217905550610120820151816008015590505085600560008e6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546119d79190616116565b909155506119e79050838b616129565b6001600160a01b03881660009081526006602052604081208054909190611a0f908490616116565b9091555050505050505050505050505050565b611a2a6156b2565b6000805b33600090815260026020526040902054811015611b3557336000908152600260205260408120805483908110611a6657611a66616155565b6000918252602090912060099091020160078101549091506001600160a01b038581169116148015611aa457506007810154600160a01b900460ff16155b15611b22576000611ab53384612d03565b90508160030154811115611b20576000826003015482611ad59190616129565b9050611ae18186616116565b945080836003016000828254611af79190616116565b90915550508254600384015410611b1e5760078301805460ff60a01b1916600160a01b1790555b505b505b5080611b2d8161613c565b915050611a2e565b5060008111611b565760405162461bcd60e51b8152600401610f059061616b565b3360009081526005602052604090205415611c5f576001600160a01b0382811660008181526004602081905260408083205490516302c68be360e31b8152918201939093529092670de0b6b3a76400009285929116906316345f1890602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf691906161d3565b611c0091906160dd565b611c0a91906160f4565b336000908152600560205260409020549091508110611c385733600090815260056020526040812055611c5d565b3360009081526005602052604081208054839290611c57908490616129565b90915550505b505b6001600160a01b03821660009081526006602052604081208054839290611c87908490616129565b9091555050336000908152600f602052604080822081516080810190925260098054919383929190611cb88361613c565b91905055815260200183815260200160075442611cd59190616116565b81526001600160a01b0385811660209283018190528454600180820187556000968752848720865160049093020191825585850151908201556040808601516002830155606090950151600390910180546001600160a01b03191691909316179091558352600a905281208054839290611d50908490616116565b9091555050604080518281526000602082015233917f4a94c2c356e29a6583071e731bdacf2ca56565ba5efebcff6936eb7923b51721910160405180910390a250611da8600160008051602061627f83398151915255565b50565b60198181548110611dbb57600080fd5b6000918252602090912060029091020180546001909101546001600160a01b03909116915082565b3360009081526020819052604090205460ff16611e125760405162461bcd60e51b8152600401610f0590616195565b601555565b60036020528160005260406000208181548110611e3357600080fd5b600091825260209091206002909102018054600190910154909250905082565b3360009081526001602052604090205460ff16611e825760405162461bcd60e51b8152600401610f0590616195565b828114611ec95760405162461bcd60e51b8152602060048201526015602482015274082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b6044820152606401610f05565b82611f055760405162461bcd60e51b815260206004820152600c60248201526b456d7074792061727261797360a01b6044820152606401610f05565b60005b838110156121b7576000858583818110611f2457611f24616155565b9050602002016020810190611f399190615930565b6001600160a01b031603611f5f5760405162461bcd60e51b8152600401610f05906161ec565b6000838383818110611f7357611f73616155565b9050602002013511611f975760405162461bcd60e51b8152600401610f0590616215565b828282818110611fa957611fa9616155565b90506020020135600c6000878785818110611fc657611fc6616155565b9050602002016020810190611fdb9190615930565b6001600160a01b03166001600160a01b03168152602001908152602001600020546011546120099190616129565b6120139190616116565b60115582828281811061202857612028616155565b90506020020135600d600087878581811061204557612045616155565b905060200201602081019061205a9190615930565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550601054600e600087878581811061209757612097616155565b90506020020160208101906120ac9190615930565b6001600160a01b031681526020810191909152604001600020558282828181106120d8576120d8616155565b90506020020135600c60008787858181106120f5576120f5616155565b905060200201602081019061210a9190615930565b6001600160a01b0316815260208101919091526040016000205584848281811061213657612136616155565b905060200201602081019061214b9190615930565b6001600160a01b03167fec7e3594982826a1f90c8fc76513357b83a691b7f4e38b8be04f3d40f9b1583984848481811061218757612187616155565b9050602002013560405161219d91815260200190565b60405180910390a2806121af8161613c565b915050611f08565b5050505050565b6121c66156b2565b600082116122065760405162461bcd60e51b815260206004820152600d60248201526c496e76616c69642076616c756560981b6044820152606401610f05565b6000811161224b5760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642073616c6520707269636560701b6044820152606401610f05565b6015548210156122935760405162461bcd60e51b815260206004820152601360248201527256616c75652062656c6f77206d696e696d756d60681b6044820152606401610f05565b600061229e3361145f565b9050808311156122e95760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e74206e6574207374616b6560501b6044820152606401610f05565b600880549060006122f98361613c565b90915550506008543360009081526018602052604081208054869290612320908490616116565b909155505060408051608081018252858152602080820186815233838501818152426060860190815260008381526014865287812089825286528781209651875593516001808801919091559151600280880180546001600160a01b039384166001600160a01b03199182161790915592516003909801979097558751808901909852928752938601878152601980548084018255948190529651939095027f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c969581018054949093169390941692909217905591517f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c96969091015590546124259190616129565b336000818152601a6020908152604080832086845282529182902093909355805186815292830184905290917f8e79b7ba8dab5ebfa59b9c6af1743c3ef14863680b3cc5ac837f8d636f76031c910160405180910390a25050611427600160008051602061627f83398151915255565b60195460609081908190806001600160401b038111156124b7576124b76161bd565b6040519080825280602002602001820160405280156124e0578160200160208202803683370190505b509350806001600160401b038111156124fb576124fb6161bd565b604051908082528060200260200182016040528015612524578160200160208202803683370190505b509250806001600160401b0381111561253f5761253f6161bd565b6040519080825280602002602001820160405280156125a457816020015b6125916040518060800160405280600081526020016000815260200160006001600160a01b03168152602001600081525090565b81526020019060019003908161255d5790505b50915060005b818110156126e1576000601982815481106125c7576125c7616155565b60009182526020918290206040805180820190915260029092020180546001600160a01b031680835260019091015492820192909252875190925087908490811061261457612614616155565b60200260200101906001600160a01b031690816001600160a01b031681525050806020015185838151811061264b5761264b616155565b60209081029190910181019190915281516001600160a01b03908116600090815260148352604080822085850151835284529081902081516080810183528154815260018201549481019490945260028101549092169083015260030154606082015284518590849081106126c2576126c2616155565b60200260200101819052505080806126d99061613c565b9150506125aa565b5050909192565b3360009081526001602052604090205460ff166127175760405162461bcd60e51b8152600401610f0590616195565b600260008b6001600160a01b03166001600160a01b031681526020019081526020016000206040518061014001604052808b81526020018a8152602001898152602001848152602001838152602001868152602001858152602001886001600160a01b03168152602001600015158152602001878152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506101008201518160070160146101000a81548160ff0219169083151502179055506101208201518160080155505084600560008c6001600160a01b03166001600160a01b03168152602001908152602001600020600082825461288d9190616116565b9091555061289d9050828a616129565b6001600160a01b038716600090815260066020526040812080549091906128c5908490616116565b909155505050505050505050505050565b3360009081526020819052604090205460ff166129055760405162461bcd60e51b8152600401610f0590616195565b6001600160a01b03918216600090815260046020526040902080546001600160a01b03191691909216179055565b3360009081526020819052604090205460ff166129625760405162461bcd60e51b8152600401610f0590616195565b6001600160a01b0381166129885760405162461bcd60e51b8152600401610f05906161ec565b6001600160a01b03811660009081526020819052604090205460ff16156129e15760405162461bcd60e51b815260206004820152600d60248201526c20b63932b0b23c9037bbb732b960991b6044820152606401610f05565b6001600160a01b03166000908152602081905260409020805460ff19166001179055565b6001600160a01b0381166000908152600260209081526040808320805482518185028101850190935280835260609492939192909184015b82821015612ae157600084815260209081902060408051610140810182526009860290920180548352600180820154848601526002820154928401929092526003810154606084015260048101546080840152600581015460a0840152600681015460c084015260078101546001600160a01b03811660e0850152600160a01b900460ff161515610100840152600801546101208301529083529092019101612a3d565b505050509050919050565b6001600160a01b038116600090815260026020526040812054815b81811015612cc8576001600160a01b0384166000908152600260205260408120805483908110612b3957612b39616155565b600091825260209182902060408051610140810182526009909302909101805483526001810154938301939093526002830154908201526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260078201546001600160a01b03811660e083015260ff600160a01b90910416151561010082018190526008909201546101208201529150612cb55760e0810180516001600160a01b03908116600090815260046020819052604080832054945190516302c68be360e31b81529294909316926316345f1892612c2992016001600160a01b0391909116815260200190565b602060405180830381865afa158015612c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c6a91906161d3565b9050600082606001518360000151612c829190616129565b90506000670de0b6b3a7640000612c9983856160dd565b612ca391906160f4565b9050612caf8188616116565b96505050505b5080612cc08161613c565b915050612b07565b5050919050565b3360009081526020819052604090205460ff16612cfe5760405162461bcd60e51b8152600401610f0590616195565b601d55565b6001600160a01b0382166000908152600260205260408120805482919084908110612d3057612d30616155565b906000526020600020906009020190506000816006015442612d529190616129565b60078301549091506001600160a01b03166000805b6001600160a01b038316600090815260036020526040902054811015610ec3576001600160a01b0383166000908152600360205260408120805483908110612db157612db1616155565b600091825260209091206002909102018054600182015491925090818710612dfb57875461271090612de49083906160dd565b612dee91906160f4565b612df89086616116565b94505b50505080612e089061613c565b9050612d67565b6000612e19615762565b805490915060ff600160401b82041615906001600160401b0316600081158015612e405750825b90506000826001600160401b03166001148015612e5c5750303b155b905081158015612e6a575080155b15612e885760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315612eb257845460ff60401b1916600160401b1785555b612eba61578b565b3360009081526020818152604082208054600160ff1991821681179092557f4cfa3c6903140891ecff713e237b1f1746362568dfb5e8e9bc37719e4f37e0c58054821683179055918190527f3e1f9e6abae6b647fdc3c5896ef1871ceb3c98e9e72852da3f17d161a860f76c80548316821790557f3517cbb3edfcef55b3b32be7021bc73ef070f4a8bad0d4b389b96924cf17b7418054831682179055738a9281ecece9b599c2f42d829c3d0d8e74b7083e9092527f968a1791ad31618c63b086103baa804af57c3ca0efa33a191010fbb7741579fc805490911690911790556203f480600755606460135583156121b757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050565b3360009081526020819052604090205460ff166130215760405162461bcd60e51b8152600401610f0590616195565b6000811161307f5760405162461bcd60e51b815260206004820152602560248201527f4d61782070657263656e74616765206d75737420626520677265617465722074604482015264068616e20360dc1b6064820152608401610f05565b601355565b3360009081526020819052604090205460ff166130b35760405162461bcd60e51b8152600401610f0590616195565b6130d27355d398326f99059ff775485246999027b319795533836156fe565b6040518181527355d398326f99059ff775485246999027b31979559033907fa92ff919b850e4909ab2261d907ef955f11bc1716733a6cbece38d163a69af8a9060200160405180910390a350565b336000908152601460209081526040808320848452909152902080546131585760405162461bcd60e51b8152600401610f059061623d565b60028101546001600160a01b031633146131a55760405162461bcd60e51b815260206004820152600e60248201526d2737ba103a34329039b2b63632b960911b6044820152606401610f05565b8054601654600090612710906131bb90846160dd565b6131c591906160f4565b336000908152601860205260408120805492935084929091906131e9908490616129565b9091555050801561323257336000908152600c602052604081208054839290613213908490616129565b92505081905550806011600082825461322c9190616129565b90915550505b801561327457604080518281526020810186905233917f4725a4d4de9bff212d0885095e27515072f73f427df55e52f37f241321ef88f9910160405180910390a25b336000818152601460209081526040808320888452825280832083815560018082018590556002820180546001600160a01b03191690556003909101849055938352601a825280832088845290915281205460195490926132d491616129565b9050808214613395576000601982815481106132f2576132f2616155565b60009182526020918290206040805180820190915260029092020180546001600160a01b0316825260010154918101919091526019805491925082918590811061333e5761333e616155565b6000918252602080832084516002939093020180546001600160a01b0319166001600160a01b03938416178155938101516001909401939093558351168152601a8252604080822093830151825292909152208290555b60198054806133a6576133a6616268565b600082815260208082206002600019949094019384020180546001600160a01b03191681556001018290559190925533808352601a825260408084208a855283528084209390935591518881527f73d12dec3eb3b445b6c9feb2fd559ba7c852c525bc1e59d8f7ff760c55df041d91015b60405180910390a2505050505050565b6060818311156134695760405162461bcd60e51b815260206004820152600d60248201526c496e76616c69642072616e676560981b6044820152606401610f05565b60105482106134b05760405162461bcd60e51b8152602060048201526013602482015272115b9908195c1bd8da081b9bdd08199bdd5b99606a1b6044820152606401610f05565b60006134bc8484616129565b6134c7906001616116565b90506000816001600160401b038111156134e3576134e36161bd565b60405190808252806020026020018201604052801561354d57816020015b61353a6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8152602001906001900390816135015790505b50905060005b828110156135ee57600b60006135698389616116565b81526020019081526020016000206040518060c001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815250508282815181106135d0576135d0616155565b602002602001018190525080806135e69061613c565b915050613553565b50949350505050565b6135ff6156b2565b6000811161361f5760405162461bcd60e51b8152600401610f0590616215565b6000601254116136685760405162461bcd60e51b81526020600482015260146024820152734275796f7574206e6f7420617661696c61626c6560601b6044820152606401610f05565b60006136733361145f565b9050808211156136be5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e74206e6574207374616b6560501b6044820152606401610f05565b6127106136cd826109c46160dd565b6136d791906160f4565b8210156137175760405162461bcd60e51b815260206004820152600e60248201526d416d6f756e7420746f6f206c6f7760901b6044820152606401610f05565b60006127106012548461372a91906160dd565b61373491906160f4565b336000908152600c6020526040812080549293508592909190613758908490616129565b9250508190555082601160008282546137719190616129565b9091555050336000908152601c602052604081208054839290613795908490616116565b9091555050600880549060006137aa8361613c565b9091555050336000908152600f60209081526040918290208251608081018452600854815291820184905260075490928201906137e79042616116565b81527355d398326f99059ff775485246999027b3197955602091820181905283546001808201865560009586528386208551600490930201918255848401519082015560408401516002820155606090930151600390930180546001600160a01b0319166001600160a01b0390941693909317909255908252600a90527fb0775d57c3eeb070f58d410e36e9ff396813a5d76997d9a91bdf10f0798296f08054839290613895908490616116565b909155505060405181815233907fa65a8b4f7f65a1063243d7f7e9e4da00ff767599acf21549ef2548a45d1695ae9060200160405180910390a25050611da8600160008051602061627f83398151915255565b601b81815481106138f857600080fd5b6000918252602090912060069091020180546001820154600283015460038401546004850154600590950154939550919390926001600160a01b03918216911686565b61396f6040518060800160405280600081526020016000815260200160006001600160a01b03168152602001600081525090565b506001600160a01b03918216600090815260146020908152604080832093835292815290829020825160808101845281548152600182015492810192909252600281015490931691810191909152600390910154606082015290565b3360009081526020819052604090205460ff166139fa5760405162461bcd60e51b8152600401610f0590616195565b612710811115613a4c5760405162461bcd60e51b815260206004820152601d60248201527f50657263656e746167652063616e6e6f742065786365656420313030250000006044820152606401610f05565b601255565b613a596156b2565b336000908152600260205260409020548110613aaf5760405162461bcd60e51b8152602060048201526015602482015274092dcecc2d8d2c840eccae6e8d2dcce40d2dcc8caf605b1b6044820152606401610f05565b336000908152600260205260408120805483908110613ad057613ad0616155565b906000526020600020906009020190508060070160149054906101000a900460ff1615613b325760405162461bcd60e51b815260206004820152601060248201526f56657374696e6720636f6d706c65746560801b6044820152606401610f05565b6000613b3e3384612d03565b90508160030154811015613b8b5760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a590818db185a5b48185b5bdd5b9d60621b6044820152606401610f05565b6000826003015482613b9d9190616129565b905060008111613bbf5760405162461bcd60e51b8152600401610f059061616b565b80836003016000828254613bd39190616116565b90915550508254600384015410613bfa5760078301805460ff60a01b1916600160a01b1790555b3360009081526005602052604090205415613d085760078301546001600160a01b0390811660008181526004602081905260408083205490516302c68be360e31b8152918201939093529092670de0b6b3a76400009285929116906316345f1890602401602060405180830381865afa158015613c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c9f91906161d3565b613ca991906160dd565b613cb391906160f4565b336000908152600560205260409020549091508110613ce15733600090815260056020526040812055613d06565b3360009081526005602052604081208054839290613d00908490616129565b90915550505b505b60078301546001600160a01b031660009081526006602052604081208054839290613d34908490616129565b9091555050336000908152600f602052604080822081516080810190925260098054919383929190613d658361613c565b91905055815260200183815260200160075442613d829190616116565b81526007860180546001600160a01b039081166020938401528454600180820187556000968752848720865160049093020191825585850151908201556040808601516002830155606090950151600390910180546001600160a01b0319169183169190911790559054168352600a905281208054839290613e05908490616116565b9091555050604080518281526000602082015233917f4a94c2c356e29a6583071e731bdacf2ca56565ba5efebcff6936eb7923b51721910160405180910390a2505050611da8600160008051602061627f83398151915255565b613e93604051806080016040528060008152602001600081526020016000815260200160006001600160a01b031681525090565b6001600160a01b0383166000908152600f60205260408120905b8154811015613f585783828281548110613ec957613ec9616155565b90600052602060002090600402016000015403613f4657818181548110613ef257613ef2616155565b6000918252602091829020604080516080810182526004909302909101805483526001810154938301939093526002830154908201526003909101546001600160a01b031660608201529250610eca915050565b80613f508161613c565b915050613ead565b5060405162461bcd60e51b815260206004820152600f60248201526e14dd185ad9481b9bdd08199bdd5b99608a1b6044820152606401610f05565b3360009081526020819052604090205460ff16613fc25760405162461bcd60e51b8152600401610f0590616195565b6001600160a01b0383166140105760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610f05565b60008111801561402257506127108111155b6140635760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642070657263656e7461676560701b6044820152606401610f05565b6001600160a01b0383166000908152600360205260408120614084916158d9565b6000825b61271082101561412157826127106140a08285616116565b11156140b5576140b283612710616129565b90505b6001600160a01b038616600090815260036020908152604080832081518083019092528582528183018581528154600181810184559286529390942091516002909302909101918255915191015561410d8184616116565b92506141198583616116565b915050614088565b6040516001600160a01b038616907fde4b6ccc38b84f88129403b65a309f9b1c41d4c316bc2118d7614e449b9d4c4590600090a25050505050565b6141956040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60105482106141d85760405162461bcd60e51b815260206004820152600f60248201526e115c1bd8da081b9bdd08199bdd5b99608a1b6044820152606401610f05565b506000908152600b6020908152604091829020825160c08101845281548152600182015492810192909252600281015492820192909252600382015460608201526004820154608082015260059091015460a082015290565b6002602052816000526040600020818154811061424d57600080fd5b6000918252602090912060099091020180546001820154600283015460038401546004850154600586015460068701546007880154600890980154969950949750929591949093916001600160a01b03811691600160a01b90910460ff16908a565b6001600160a01b0382166000908152600260205260408120805460609283929091859081106142e0576142e0616155565b600091825260208083206007600990930201918201546001600160a01b03168084526003909152604083205491935091816001600160401b03811115614328576143286161bd565b604051908082528060200260200182016040528015614351578160200160208202803683370190505b5090506000826001600160401b0381111561436e5761436e6161bd565b604051908082528060200260200182016040528015614397578160200160208202803683370190505b50905060005b83811015614444576001600160a01b03851660009081526003602052604081208054839081106143cf576143cf616155565b90600052602060002090600202019050806000015487600601546143f39190616116565b84838151811061440557614405616155565b602002602001018181525050806001015483838151811061442857614428616155565b60209081029190910101525061443d8161613c565b905061439d565b5090955093505050505b9250929050565b3360009081526020819052604090205460ff166144845760405162461bcd60e51b8152600401610f0590616195565b600081156144cf5760008261449b866127106160dd565b6144a591906160f4565b601054909150156144bd576144ba818561579b565b91505b601d548111156144cd57601d8190555b505b60135481111561451a5760405162461bcd60e51b81526020600482015260166024820152750aadcd8dec6d640e0cae4c6cadce8c2ceca40d0d2ced60531b6044820152606401610f05565b6040805160c08101825286815260208082018781528284018681526060808501898152608086018881524260a08801908152601080546000908152600b89528a90209851895595516001890155935160028801559051600387015551600486015590516005909401939093555483518881529182018590529281018690527feadbedb993dfca23e4c79bf4fa5fe531c2e0e926258fabb8445e8bc5c472780f910160405180910390a2601080549060006145d38361613c565b91905055505050505050565b60008060008060006145f086610cfe565b905060006145fd8761145f565b6001600160a01b03979097166000908152600c6020908152604080832054600d9092529091205490989297965094509092505050565b6001600160a01b0381166000908152600f60209081526040808320805482518185028101850190935280835260609492939192909184015b82821015612ae157600084815260209081902060408051608081018252600486029092018054835260018082015484860152600282015492840192909252600301546001600160a01b03166060830152908352909201910161466b565b600f60205281600052604060002081815481106146e457600080fd5b6000918252602090912060049091020180546001820154600283015460039093015491945092506001600160a01b031684565b3360009081526020819052604090205460ff166147465760405162461bcd60e51b8152600401610f0590616195565b600755565b601b54606090831061479f5760405162461bcd60e51b815260206004820152601960248201527f537461727420696e646578206f7574206f6620626f756e6473000000000000006044820152606401610f05565b60006147ab8385616116565b601b549091508111156147bd5750601b545b60006147c98583616129565b6001600160401b038111156147e0576147e06161bd565b60405190808252806020026020018201604052801561485c57816020015b6148496040518060c001604052806000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b031681525090565b8152602001906001900390816147fe5790505b509050845b828110156135ee57601b818154811061487c5761487c616155565b60009182526020918290206040805160c0810182526006909302909101805483526001810154938301939093526002830154908201526003820154606082015260048201546001600160a01b03908116608083015260059092015490911660a0820152826148ea8884616129565b815181106148fa576148fa616155565b602002602001018190525080806149109061613c565b915050614861565b6149206156b2565b336000908152600f6020526040902080546149735760405162461bcd60e51b81526020600482015260136024820152724e6f207374616b657320617661696c61626c6560681b6044820152606401610f05565b816149b85760405162461bcd60e51b8152602060048201526015602482015274139bc81cdd185ad94812511cc81c1c9bdd9a591959605a1b6044820152606401610f05565b60005b82811015614b735760008484838181106149d7576149d7616155565b9050602002013590506000805b8454811015614b1e576000858281548110614a0157614a01616155565b90600052602060002090600402019050838160000154148015614a28575060008160010154115b15614b0b578060020154421015614a705760405162461bcd60e51b815260206004820152600c60248201526b14dd185ad9481b1bd8dad95960a21b6044820152606401610f05565b60018101805460038301546000928390556001600160a01b0316808352600a60205260408320805492939192849290614aaa908490616129565b90915550614ac490506001600160a01b03821633846156fe565b604080518381526020810188905233917f933735aa8de6d7547d0126171b2f31b9c34dd00f3ecd4be85a0ba047db4fafef910160405180910390a260019450505050614b1e565b5080614b168161613c565b9150506149e4565b5080614b5e5760405162461bcd60e51b815260206004820152600f60248201526e14dd185ad9481b9bdd08199bdd5b99608a1b6044820152606401610f05565b50508080614b6b9061613c565b9150506149bb565b5050611427600160008051602061627f83398151915255565b606080600080614b9b8561145f565b6001600160a01b0386166000908152600e602052604081205460105492935091614bc6908390616129565b905080600003614bf7575050604080516000808252602082018181528284019093529095509093509150614d5d9050565b806001600160401b03811115614c0f57614c0f6161bd565b604051908082528060200260200182016040528015614c38578160200160208202803683370190505b509550806001600160401b03811115614c5357614c536161bd565b604051908082528060200260200182016040528015614c7c578160200160208202803683370190505b50945060005b81811015614d58576000614c968285616116565b905080888381518110614cab57614cab616155565b60209081029190910101528415614d24576000818152600b602052604081206004015461271090614cdc90886160dd565b614ce691906160f4565b905080888481518110614cfb57614cfb616155565b6020908102919091010152614d108188616116565b9650614d1c8187616129565b955050614d45565b6000878381518110614d3857614d38616155565b6020026020010181815250505b5080614d508161613c565b915050614c82565b505050505b9193909250565b614d6c6156b2565b6001600160a01b038216600090815260146020908152604080832084845290915290208054614dad5760405162461bcd60e51b8152600401610f059061623d565b336001600160a01b03841603614dfe5760405162461bcd60e51b815260206004820152601660248201527543616e6e6f7420627579206f776e206c697374696e6760501b6044820152606401610f05565b8054600182015460038301546000828411614e1a576000614e24565b614e248385616129565b9050600084614e35836127106160dd565b614e3f91906160f4565b90506000612710614e5083806160dd565b614e5a91906160f4565b90506000612710614e6b83896160dd565b614e7591906160f4565b90506000614e838289616129565b9050614ea57355d398326f99059ff775485246999027b3197955338d8a6157e2565b336000908152600c60205260408120549003614ecf57601054336000908152600e60205260409020555b6001600160a01b038b166000908152600c6020526040812080548a9290614ef7908490616129565b9091555050336000908152600c602052604081208054839290614f1b908490616116565b90915550506001600160a01b038b16600090815260186020526040812080548a9290614f48908490616129565b9091555050336000908152600d602052604081208054839290614f6c908490616116565b925050819055508160116000828254614f859190616129565b90915550506001600160a01b038b1660009081526017602052604081208054899290614fb2908490616116565b92505081905550601b6040518060c001604052808881526020014281526020018a81526020018981526020018d6001600160a01b03168152602001336001600160a01b031681525090806001815401808255809150506001900390600052602060002090600602016000909190919091506000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060a08201518160050160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505050601460008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008b815260200190815260200160002060008082016000905560018201600090556002820160006101000a8154906001600160a01b030219169055600382016000905550506000601a60008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008c8152602001908152602001600020549050600060016019805490506151619190616129565b90508082146152225760006019828154811061517f5761517f616155565b60009182526020918290206040805180820190915260029092020180546001600160a01b031682526001015491810191909152601980549192508291859081106151cb576151cb616155565b6000918252602080832084516002939093020180546001600160a01b0319166001600160a01b03938416178155938101516001909401939093558351168152601a8252604080822093830151825292909152208290555b601980548061523357615233616268565b6001900381819060005260206000209060020201600080820160006101000a8154906001600160a01b030219169055600182016000905550509055601a60008e6001600160a01b03166001600160a01b0316815260200190815260200160002060008d815260200190815260200160002060009055336001600160a01b03168d6001600160a01b03167f7bb39d095b04a9986ed34adf14d74c33294d0a9e807f02bf634d532507422eba8b8f6040516152f6929190918252602082015260400190565b60405180910390a35050505050505050505050611427600160008051602061627f83398151915255565b336000908152601460209081526040808320858452909152902080546153585760405162461bcd60e51b8152600401610f059061623d565b60028101546001600160a01b031633146153a55760405162461bcd60e51b815260206004820152600e60248201526d2737ba103a34329039b2b63632b960911b6044820152606401610f05565b600082116153ea5760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642073616c6520707269636560701b6044820152606401610f05565b60018101829055604080518381526020810185905233917f8e79b7ba8dab5ebfa59b9c6af1743c3ef14863680b3cc5ac837f8d636f76031c910160405180910390a2505050565b3360009081526001602052604090205460ff166154605760405162461bcd60e51b8152600401610f0590616195565b6001600160a01b0385166154ad5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642075736572206164647265737360601b6044820152606401610f05565b600084116154cd5760405162461bcd60e51b8152600401610f0590616215565b6001600160a01b03821661551b5760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610f05565b6008805490600061552b8361613c565b919050555060008161553f5760085461554f565b60085461554f90620f4240616116565b6001600160a01b038781166000908152600f6020908152604080832081516080810183528681528084018c81528184018c81528b881660608401818152855460018082018855968a52888a209551600490910290950194855592519484019490945551600283015551600390910180546001600160a01b0319169190961617909455928252600a9052908120805492935087929091906155f0908490616116565b909155505060408051868152602081018390526001600160a01b038816917f933735aa8de6d7547d0126171b2f31b9c34dd00f3ecd4be85a0ba047db4fafef9101613417565b3360009081526020819052604090205460ff166156655760405162461bcd60e51b8152600401610f0590616195565b6001600160a01b03811661568b5760405162461bcd60e51b8152600401610f05906161ec565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b60008051602061627f8339815191528054600119016156e457604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b600160008051602061627f83398151915255565b6040516001600160a01b0383811660248301526044820183905261575d91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050615821565b505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610eca565b615793615892565b6110cd6158b7565b6000601d5483116157ae57506000610eca565b6000601d54846157be9190616129565b905060006127106157cf85846160dd565b6157d991906160f4565b95945050505050565b6040516001600160a01b03848116602483015283811660448301526064820183905261581b9186918216906323b872dd9060840161572b565b50505050565b600080602060008451602086016000885af180615844576040513d6000823e3d81fd5b50506000513d9150811561585c578060011415615869565b6001600160a01b0384163b155b1561581b57604051635274afe760e01b81526001600160a01b0385166004820152602401610f05565b61589a6158bf565b6110cd57604051631afcd79f60e31b815260040160405180910390fd5b6156ea615892565b60006158c9615762565b54600160401b900460ff16919050565b5080546000825560020290600052602060002090810190611da891905b8082111561591057600080825560018201556002016158f6565b5090565b80356001600160a01b038116811461592b57600080fd5b919050565b60006020828403121561594257600080fd5b61594b82615914565b9392505050565b6000806040838503121561596557600080fd5b61596e83615914565b946020939093013593505050565b60008083601f84011261598e57600080fd5b5081356001600160401b038111156159a557600080fd5b6020830191508360208260051b850101111561444e57600080fd5b600080602083850312156159d357600080fd5b82356001600160401b038111156159e957600080fd5b6159f58582860161597c565b90969095509350505050565b600060208284031215615a1357600080fd5b5035919050565b600081518084526020808501945080840160005b83811015615a4a57815187529582019590820190600101615a2e565b509495945050505050565b606081526000615a686060830186615a1a565b8281036020840152615a7a8186615a1a565b915050826040830152949350505050565b60008060008060008060008060008060006101608c8e031215615aad57600080fd5b615ab68c615914565b9a5060208c0135995060408c0135985060608c0135975060808c01359650615ae060a08d01615914565b9a9d999c50979a9699959895975050505060c08401359360e081013593610100820135935061012082013592506101409091013590565b60008060008060408587031215615b2d57600080fd5b84356001600160401b0380821115615b4457600080fd5b615b508883890161597c565b90965094506020870135915080821115615b6957600080fd5b50615b768782880161597c565b95989497509550505050565b60008060408385031215615b9557600080fd5b50508035926020909101359150565b60608082528451908201819052600090608090818401906020808901855b83811015615be75781516001600160a01b031685529382019390820190600101615bc2565b505085830381870152615bfa8389615a1a565b868103604088015287518082528289019450908201925060005b81811015615c5e57615c4e84865180518252602080820151908301526040808201516001600160a01b031690830152606090810151910152565b9382019392850192600101615c14565b50919998505050505050505050565b6000806000806000806000806000806101408b8d031215615c8d57600080fd5b615c968b615914565b995060208b0135985060408b0135975060608b01359650615cb960808c01615914565b999c989b50969995989760a0870135975060c08701359660e08101359650610100810135955061012001359350915050565b60008060408385031215615cfe57600080fd5b615d0783615914565b9150615d1560208401615914565b90509250929050565b602080825282518282018190526000919060409081850190868401855b82811015615dbf5781518051855286810151878601528581015186860152606080820151908601526080808201519086015260a0808201519086015260c0808201519086015260e0808201516001600160a01b0316908601526101008082015115159086015261012090810151908501526101409093019290850190600101615d3b565b5091979650505050505050565b6020808252825182820181905260009190848201906040850190845b81811015615e4357615e30838551805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a08301525050565b9284019260c09290920191600101615de8565b50909695505050505050565b81518152602080830151908201526040808301516001600160a01b0316908201526060808301519082015260808101610eca565b8151815260208083015190820152604080830151908201526060808301516001600160a01b03169082015260808101610eca565b600080600060608486031215615ecc57600080fd5b615ed584615914565b95602085013595506040909401359392505050565b60c08101610eca8284805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a08301525050565b604081526000615f406040830185615a1a565b82810360208401526157d98185615a1a565b60008060008060808587031215615f6857600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252825182820181905260009190848201906040850190845b81811015615e4357615fda8385518051825260208082015190830152604080820151908301526060908101516001600160a01b0316910152565b9284019260809290920191600101615fa0565b602080825282518282018190526000919060409081850190868401855b82811015615dbf5781518051855286810151878601528581015186860152606080820151908601526080808201516001600160a01b039081169187019190915260a091820151169085015260c0909301929085019060010161600a565b600080600080600060a0868803121561607f57600080fd5b61608886615914565b945060208601359350604086013592506160a460608701615914565b9150608086013580151581146160b957600080fd5b809150509295509295909350565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610eca57610eca6160c7565b60008261611157634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610eca57610eca6160c7565b81810381811115610eca57610eca6160c7565b60006001820161614e5761614e6160c7565b5060010190565b634e487b7160e01b600052603260045260246000fd5b60208082526010908201526f4e6f7468696e6720746f20636c61696d60801b604082015260600190565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156161e557600080fd5b5051919050565b6020808252600f908201526e496e76616c6964206164647265737360881b604082015260600190565b6020808252600e908201526d125b9d985b1a5908185b5bdd5b9d60921b604082015260600190565b602080825260119082015270131a5cdd1a5b99c81b9bdd08199bdd5b99607a1b604082015260600190565b634e487b7160e01b600052603160045260246000fdfe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220752563a147e7fb2c015014ef7ff927f99464e7a121107233dab5dff98121b5f064736f6c63430008140033",
"linkReferences": {},
"deployedLinkReferences": {}
}