[ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "uint8", "name": "decimals_", "type": "uint8" }, { "internalType": "uint256", "name": "totalSupply_", "type": "uint256" }, { "internalType": "uint256", "name": "_maxWallet", "type": "uint256" }, { "internalType": "uint256", "name": "_maxTransactionAmount", "type": "uint256" }, { "internalType": "address[6]", "name": "addrs", "type": "address[6]" }, { "internalType": "uint16[6]", "name": "feeSettings", "type": "uint16[6]" }, { "internalType": "uint256", "name": "minimumTokenBalanceForDividends_", "type": "uint256" }, { "internalType": "uint8", "name": "_tokenForMarketingFee", "type": "uint8" } ], "stateMutability": "payable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludeFromFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludedFromMaxTransactionAmount", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "newValue", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "oldValue", "type": "uint256" } ], "name": "GasForProcessingUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newLiquidityWallet", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldLiquidityWallet", "type": "address" } ], "name": "LiquidityWalletUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newMarketingWallet", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldMarketingWallet", "type": "address" } ], "name": "MarketingWalletUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "iterations", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "claims", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "lastProcessedIndex", "type": "uint256" }, { "indexed": true, "internalType": "bool", "name": "automatic", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "gas", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "processor", "type": "address" } ], "name": "ProcessedDividendTracker", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "SendDividends", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pair", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetAutomatedMarketMakerPair", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "ethReceived", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "tokensIntoLiqudity", "type": "uint256" } ], "name": "SwapAndLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newTokenForMarketingFee", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldTokenForMarketingFee", "type": "address" } ], "name": "TokenForMarketingFeeUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" } ], "name": "UpdateDividendTracker", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "newSellLiquidityFee", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "newBuyLiquidityFee", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "oldSellLiquidityFee", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "oldBuyLiquidityFee", "type": "uint16" } ], "name": "UpdateLiquidityFee", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "newSellMarketingFee", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "newBuyMarketingFee", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "oldSellMarketingFee", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "oldBuyMarketingFee", "type": "uint16" } ], "name": "UpdateMarketingFee", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newMaxTransactionAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "oldMaxTransactionAmount", "type": "uint256" } ], "name": "UpdateMaxTransactionAmount", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newMaxWallet", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "oldMaxWallet", "type": "uint256" } ], "name": "UpdateMaxWallet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "newSellRewardFee", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "newBuyRewardFee", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "oldSellRewardFee", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "oldBuyRewardFee", "type": "uint16" } ], "name": "UpdateRewardFee", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newSwapTokensAtAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "oldSwapTokensAtAmount", "type": "uint256" } ], "name": "UpdateSwapTokensAtAmount", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" } ], "name": "UpdateUniswapV2Router", "type": "event" }, { "inputs": [], "name": "_marketingWalletAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "antiBotEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "automatedMarketMakerPairs", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseTokenForPair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyLiquidityFee", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyMarketingFee", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyRewardFee", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claim", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "dividendTokenBalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "dividendTracker", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "excludeFromDividends", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "excluded", "type": "bool" } ], "name": "excludeFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "isEx", "type": "bool" } ], "name": "excludeFromMaxTransactionAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "feeContract", "outputs": [ { "internalType": "contract IFee", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "gasForProcessing", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "gemAntiBot", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getAccountDividendsInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "int256", "name": "", "type": "int256" }, { "internalType": "int256", "name": "", "type": "int256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getAccountDividendsInfoAtIndex", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "int256", "name": "", "type": "int256" }, { "internalType": "int256", "name": "", "type": "int256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getClaimWait", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getLastProcessedIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getMinimumTokenBalanceForDividends", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getNumberOfDividendTokenHolders", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTotalDividendsDistributed", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromDividends", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromFees", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isExcludedFromMaxTransactionAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTransactionAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "gas", "type": "uint256" } ], "name": "processDividendTracker", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rewardToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellLiquidityFee", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellMarketingFee", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellRewardFee", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pair", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "setAutomatedMarketMakerPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "wallet", "type": "address" } ], "name": "setMarketingWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setSwapTokensAtAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "enabled_", "type": "bool" } ], "name": "setUsingAntiBot", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapTokensAtAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenForMarketingFee", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "uniswapV2Caller", "outputs": [ { "internalType": "contract IUniswapV2Caller", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Router", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "claimWait", "type": "uint256" } ], "name": "updateClaimWait", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newAddress", "type": "address" } ], "name": "updateDividendTracker", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "updateGasForProcessing", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_sellLiquidityFee", "type": "uint16" }, { "internalType": "uint16", "name": "_buyLiquidityFee", "type": "uint16" } ], "name": "updateLiquidityFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_sellMarketingFee", "type": "uint16" }, { "internalType": "uint16", "name": "_buyMarketingFee", "type": "uint16" } ], "name": "updateMarketingFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxTransactionAmount", "type": "uint256" } ], "name": "updateMaxTransactionAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxWallet", "type": "uint256" } ], "name": "updateMaxWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "updateMinimumTokenBalanceForDividends", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_sellRewardFee", "type": "uint16" }, { "internalType": "uint16", "name": "_buyRewardFee", "type": "uint16" } ], "name": "updateRewardFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_tokenForMarketingFee", "type": "address" } ], "name": "updateTokenForMarketingFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_baseTokenForPair", "type": "address" } ], "name": "updateUniswapV2Pair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newAddress", "type": "address" } ], "name": "updateUniswapV2Router", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawETH", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "withdrawToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "withdrawableDividendOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
608060405260405162006ac938038062006ac9833981016040819052620000269162001644565b89896003620000368382620017b2565b506004620000458282620017b2565b505050620000626200005c62000e2160201b60201c565b62000e25565b604051636944d6f160e11b81526003600482015273fd6439aeff9d2389856b7486b9e74a6dacadcdce9063d289ade29034906024016000604051808303818588803b158015620000b157600080fd5b505af1158015620000c6573d6000803e3d6000fd5b50506007805460ff60a81b1916600160a81b60ff8e160217905550508451600c80546001600160a01b0319166001600160a01b03928316179055604080870151600e80546001600160601b03166c01000000000000000000000000928516830217908190559151600094509104909116907f8616c7a330e3cf61290821331585511f1e2778171e2b005fb5ec60cfe874dc67908390a360a0840151600780546001600160a01b039092166001600160a01b0319909216821790556040516318e02bd960e01b81523360048201526318e02bd990602401600060405180830381600087803b158015620001b757600080fd5b505af1158015620001cc573d6000803e3d6000fd5b50506007805460ff60a01b1916600160a01b1790555050608084810151600880546001600160a01b0319166001600160a01b039092169190911790558351600e805460208088015163ffffffff60201b1990921661ffff94851664010000000090810261ffff60301b191691909117660100000000000093861684021793849055604080519185048616825292909304909316928201929092526000818301819052606082015290517f95c5c99557725e816faf752c6675d63483841c28a7a009ed792470a9cb4dea23929181900390910190a1604083810151600e805460608088015163ffffffff60401b1990921661ffff9485166801000000000000000090810261ffff60501b1916919091176a01000000000000000000009386168402179384905585519084048516815291909204909216602083015260008284018190529082015290517f1d6b62961d401d548eb1549c97109c0b905ccd7af9c3777d3076cc8438fdfe659181900360800190a1608083810151600e805460a087015161ffff93841663ffffffff19909216821762010000918516820290811793849055604080519186169093178152920490921660208201526000818301819052606082015290517f0a21d45dab14d5d2f53ae98d95d951cd627fcf1b5bc485174326568b5e0a4572929181900390910190a1600e5460c89061ffff80821691620003ee9168010000000000000000820481169164010000000090041662001894565b620003fa919062001894565b61ffff161115620004445760405162461bcd60e51b815260206004820152600f60248201526e73656c6c20666565203c3d2032302560881b60448201526064015b60405180910390fd5b600e5460c89061ffff6201000082048116916200047d916a01000000000000000000008204811691660100000000000090041662001894565b62000489919062001894565b61ffff161115620004ce5760405162461bcd60e51b815260206004820152600e60248201526d62757920666565203c3d2032302560901b60448201526064016200043b565b8060ff16600003620004f257600680546001600160a01b0319163017905562000549565b8060ff166001036200052657600854600680546001600160a01b0319166001600160a01b0390921691909117905562000549565b600c54600680546001600160a01b0319166001600160a01b039092169190911790555b6006546040516000916001600160a01b0316907fe2b5774aa87aa100c6ec40513e7bc1d6f3c22e7abfdcd1e87401c3c791bde9ae908390a36200058f61271088620018b9565b600d81905560408051918252600060208301527f1d3afd1a2942d06995fdb024306050a7b24ad00572be70ce8b1bea325780d28b910160405180910390a1620493e0600f819055604051600091907f40d7e40e79af4e8e5a9b3c57030d8ea93f13d669c06d448c4d631d4ae7d23db7908390a36200061f846003602002015162000e7760201b62002e061760201c565b600b80546001600160a01b0319166001600160a01b03929092169182179055604051600091907f90c7d74461c613da5efa97d90740869367d74ab3aa5837aa4ae9a975f954b7a8908390a3600b54600c5460405163cd6dc68760e01b81526001600160a01b0391821660048201526024810185905291169063cd6dc68790604401600060405180830381600087803b158015620006bb57600080fd5b505af1158015620006d0573d6000803e3d6000fd5b5050505061271087620006e49190620018b9565b8510156200074a5760405162461bcd60e51b815260206004820152602c60248201527f6d61785472616e73616374696f6e416d6f756e74203e3d20746f74616c20737560448201526b070706c79202f2031303030360a41b60648201526084016200043b565b6200075861271088620018b9565b861015620007b35760405162461bcd60e51b815260206004820152602160248201527f6d617857616c6c6574203e3d20746f74616c20737570706c79202f20313030306044820152600360fc1b60648201526084016200043b565b601086905560408051878152600060208201527fff64d41f60feb77d52f64ae64a9fc3929d57a89d0cc55728762468bae5e0fe52910160405180910390a1601185905560408051868152600060208201527f35eec0711af6fbe3039535323be51b57996b6945b0d55862607c7a02e52e4507910160405180910390a1602084810151600980546001600160a01b0319166001600160a01b039092169182179055604080516315ab88c960e31b81529051919263ad5c4648926004808401938290030181865afa1580156200088b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008b19190620018dc565b6008546001600160a01b03908116911614620009465760085460095460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af11580156200091e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000944919062001901565b505b6200096930731ccfe8c40ef259566433716002e379dfffbf5a3e60001962000f26565b600954620009859030906001600160a01b031660001962000f26565b6009546040516000916001600160a01b0316907f8fc842bbd331dfa973645f4ed48b11683d501ebf1352708d77a5da2ab49a576e908390a3600960009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000a11573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a379190620018dc565b6008546040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303816000875af115801562000a89573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000aaf9190620018dc565b600a80546001600160a01b0319166001600160a01b0392909216918217905562000adb9060016200104e565b600b5460405163031e79db60e41b81526001600160a01b0390911660048201819052906331e79db090602401600060405180830381600087803b15801562000b2257600080fd5b505af115801562000b37573d6000803e3d6000fd5b5050600b5460405163031e79db60e41b81523060048201526001600160a01b0390911692506331e79db09150602401600060405180830381600087803b15801562000b8157600080fd5b505af115801562000b96573d6000803e3d6000fd5b5050600b546001600160a01b031691506331e79db0905062000bc06005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b15801562000c0257600080fd5b505af115801562000c17573d6000803e3d6000fd5b5050600b5460405163031e79db60e41b815261dead60048201526001600160a01b0390911692506331e79db09150602401600060405180830381600087803b15801562000c6357600080fd5b505af115801562000c78573d6000803e3d6000fd5b5050600b5460095460405163031e79db60e41b81526001600160a01b039182166004820152911692506331e79db09150602401600060405180830381600087803b15801562000cc657600080fd5b505af115801562000cdb573d6000803e3d6000fd5b5050505062000cfb62000cf36200125360201b60201c565b600162001262565b600e5462000d24906c0100000000000000000000000090046001600160a01b0316600162001262565b62000d3130600162001262565b62000d4061dead600162001262565b601360208190527f2264e2d7bacabe6058f5009f42467b9be28015e7760f87409562384c94ac271c805460ff19908116600190811790925530600090815260408082208054841685179055600e546c0100000000000000000000000090046001600160a01b0316825281208054909216831790915590919062000dcb6005546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905562000e1162000e0a6005546001600160a01b031690565b8862001373565b5050505050505050505062001941565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60006040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b03811662000f215760405162461bcd60e51b815260206004820152601660248201527f455243313136373a20637265617465206661696c65640000000000000000000060448201526064016200043b565b919050565b6001600160a01b03831662000f8a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016200043b565b6001600160a01b03821662000fed5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200043b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03821660009081526016602052604090205481151560ff909116151503620010e65760405162461bcd60e51b815260206004820152603860248201527f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160448201527f6c72656164792073657420746f20746861742076616c7565000000000000000060648201526084016200043b565b6001600160a01b038216600090815260166020908152604080832080548515801560ff19928316811790935560139094529190932080549091169092179091558190620011a15750600b5460405163c705c56960e01b81526001600160a01b0384811660048301529091169063c705c56990602401602060405180830381865afa15801562001179573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200119f919062001901565b155b156200120957600b5460405163031e79db60e41b81526001600160a01b038481166004830152909116906331e79db090602401600060405180830381600087803b158015620011ef57600080fd5b505af115801562001204573d6000803e3d6000fd5b505050505b816001600160a01b03167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab8260405162001247911515815260200190565b60405180910390a25050565b6005546001600160a01b031690565b6005546001600160a01b03163314620012be5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200043b565b6001600160a01b03821660009081526012602052604090205481151560ff9091161515036200131a5760405162461bcd60e51b8152602060048201526007602482015266616c726561647960c81b60448201526064016200043b565b6001600160a01b038216600081815260126020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910162001247565b6001600160a01b038216620013cb5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200043b565b8060026000828254620013df919062001925565b90915550506001600160a01b038216600090815260208190526040812080548392906200140e90849062001925565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b03811182821017156200149857620014986200145d565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620014c957620014c96200145d565b604052919050565b600082601f830112620014e357600080fd5b81516001600160401b03811115620014ff57620014ff6200145d565b602062001515601f8301601f191682016200149e565b82815285828487010111156200152a57600080fd5b60005b838110156200154a5785810183015182820184015282016200152d565b506000928101909101919091529392505050565b805160ff8116811462000f2157600080fd5b80516001600160a01b038116811462000f2157600080fd5b600082601f8301126200159a57600080fd5b620015a462001473565b8060c0840185811115620015b757600080fd5b845b81811015620015dc57620015cd8162001570565b845260209384019301620015b9565b509095945050505050565b600082601f830112620015f957600080fd5b6200160362001473565b8060c08401858111156200161657600080fd5b845b81811015620015dc57805161ffff81168114620016355760008081fd5b84526020938401930162001618565b6000806000806000806000806000806102808b8d0312156200166557600080fd5b8a516001600160401b03808211156200167d57600080fd5b6200168b8e838f01620014d1565b9b5060208d0151915080821115620016a257600080fd5b50620016b18d828e01620014d1565b995050620016c260408c016200155e565b975060608b0151965060808b0151955060a08b01519450620016e88c60c08d0162001588565b9350620016fa8c6101808d01620015e7565b92506102408b01519150620017136102608c016200155e565b90509295989b9194979a5092959850565b600181811c908216806200173957607f821691505b6020821081036200175a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200145857600081815260208120601f850160051c81016020861015620017895750805b601f850160051c820191505b81811015620017aa5782815560010162001795565b505050505050565b81516001600160401b03811115620017ce57620017ce6200145d565b620017e681620017df845462001724565b8462001760565b602080601f8311600181146200181e5760008415620018055750858301515b600019600386901b1c1916600185901b178555620017aa565b600085815260208120601f198616915b828110156200184f578886015182559484019460019091019084016200182e565b50858210156200186e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b61ffff818116838216019080821115620018b257620018b26200187e565b5092915050565b600082620018d757634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620018ef57600080fd5b620018fa8262001570565b9392505050565b6000602082840312156200191457600080fd5b81518015158114620018fa57600080fd5b808201808211156200193b576200193b6200187e565b92915050565b61517880620019516000396000f3fe6080604052600436106104145760003560e01c80638da5cb5b1161021e578063c8c8ebe411610123578063e9481eee116100ab578063f27fd2541161007a578063f27fd25414610d00578063f2fde38b14610d20578063f637434214610d40578063f7c618c114610d63578063f8b45b0514610d8357600080fd5b8063e9481eee14610c6e578063e98030c714610c9e578063f0a568c014610cbe578063f11a24d314610cde57600080fd5b8063dd62ed3e116100f2578063dd62ed3e14610bcd578063de0aad5314610c13578063e086e5ec14610c2e578063e2f4560514610c43578063e7841ec014610c5957600080fd5b8063c8c8ebe414610b56578063cf089e1314610b6c578063d68f8cde14610b8c578063d8c6404b14610bac57600080fd5b8063a8b9d240116101a6578063afa4f3b211610175578063afa4f3b214610ab1578063b62496f514610ad1578063bdd4f29f14610b01578063c024666814610b16578063c705c56914610b3657600080fd5b8063a8b9d240146109ec578063a9059cbb14610a0c578063aa49802314610a2c578063ad56c13c14610a4c57600080fd5b806395d89b41116101ed57806395d89b411461096c5780639a7a23d6146109815780639c1b8af5146109a1578063a26579ad146109b7578063a457c2d7146109cc57600080fd5b80638da5cb5b146108ec57806391c1004a1461090a578063921369131461092a578063948384dc1461094c57600080fd5b80634144d9e41161032457806370a08231116102ac5780637c75ad3a1161027b5780637c75ad3a146108445780637cf84bd71461086c578063871c128d1461088c57806388bdd9be146108ac57806389476069146108cc57600080fd5b806370a08231146107b7578063715018a6146107ed57806377ec7449146108025780637bce5a041461082257600080fd5b80635d098b38116102f35780635d098b381461072257806364b0f6531461074257806365b8dbc0146107575780636843cd8414610777578063700bb1911461079757600080fd5b80634144d9e41461068d57806349bd5a5e146106b45780634e71d92d146106d45780634fbee193146106e957600080fd5b806323b872dd116103a757806330bb4cff1161037657806330bb4cff146105ec578063313ce5671461060157806331e79db01461062d578063395093511461064d5780633ad3e6ff1461066d57600080fd5b806323b872dd1461056c5780632ae2f1211461058c5780632c1f5216146105ac5780632d5fd55a146105cc57600080fd5b80630dcb2e89116103e35780630dcb2e89146104eb5780631694505e1461050d57806318160ddd1461052d5780631c499ab01461054c57600080fd5b806306e297121461042057806306fdde0314610465578063095ea7b3146104875780630cfe2f3f146104b757600080fd5b3661041b57005b600080fd5b34801561042c57600080fd5b5061044873fd6439aeff9d2389856b7486b9e74a6dacadcdce81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561047157600080fd5b5061047a610d99565b60405161045c9190614ba4565b34801561049357600080fd5b506104a76104a2366004614bec565b610e2b565b604051901515815260200161045c565b3480156104c357600080fd5b50600e546104d89062010000900461ffff1681565b60405161ffff909116815260200161045c565b3480156104f757600080fd5b5061050b610506366004614c18565b610e45565b005b34801561051957600080fd5b50600954610448906001600160a01b031681565b34801561053957600080fd5b506002545b60405190815260200161045c565b34801561055857600080fd5b5061050b610567366004614c18565b610eda565b34801561057857600080fd5b506104a7610587366004614c31565b610fb5565b34801561059857600080fd5b5061050b6105a7366004614c80565b610fdb565b3480156105b857600080fd5b50600b54610448906001600160a01b031681565b3480156105d857600080fd5b5061050b6105e7366004614cb9565b6110a5565b3480156105f857600080fd5b5061053e6110ed565b34801561060d57600080fd5b50600754600160a81b900460ff1660405160ff909116815260200161045c565b34801561063957600080fd5b5061050b610648366004614cd6565b611160565b34801561065957600080fd5b506104a7610668366004614bec565b6111bc565b34801561067957600080fd5b50600654610448906001600160a01b031681565b34801561069957600080fd5b50600e5461044890600160601b90046001600160a01b031681565b3480156106c057600080fd5b50600a54610448906001600160a01b031681565b3480156106e057600080fd5b5061050b6111fb565b3480156106f557600080fd5b506104a7610704366004614cd6565b6001600160a01b031660009081526012602052604090205460ff1690565b34801561072e57600080fd5b5061050b61073d366004614cd6565b611273565b34801561074e57600080fd5b5061053e61133f565b34801561076357600080fd5b5061050b610772366004614cd6565b611389565b34801561078357600080fd5b5061053e610792366004614cd6565b611754565b3480156107a357600080fd5b5061050b6107b2366004614c18565b6117c4565b3480156107c357600080fd5b5061053e6107d2366004614cd6565b6001600160a01b031660009081526020819052604090205490565b3480156107f957600080fd5b5061050b611896565b34801561080e57600080fd5b50600754610448906001600160a01b031681565b34801561082e57600080fd5b50600e546104d890600160501b900461ffff1681565b34801561085057600080fd5b50610448731ccfe8c40ef259566433716002e379dfffbf5a3e81565b34801561087857600080fd5b50600854610448906001600160a01b031681565b34801561089857600080fd5b5061050b6108a7366004614c18565b6118cc565b3480156108b857600080fd5b5061050b6108c7366004614cd6565b611a0e565b3480156108d857600080fd5b5061050b6108e7366004614cd6565b611df7565b3480156108f857600080fd5b506005546001600160a01b0316610448565b34801561091657600080fd5b5061050b610925366004614cd6565b611ef5565b34801561093657600080fd5b50600e546104d890600160401b900461ffff1681565b34801561095857600080fd5b5061050b610967366004614d05565b612143565b34801561097857600080fd5b5061047a612292565b34801561098d57600080fd5b5061050b61099c366004614c80565b6122a1565b3480156109ad57600080fd5b5061053e600f5481565b3480156109c357600080fd5b5061053e61235d565b3480156109d857600080fd5b506104a76109e7366004614bec565b6123a7565b3480156109f857600080fd5b5061053e610a07366004614cd6565b612444565b348015610a1857600080fd5b506104a7610a27366004614bec565b612477565b348015610a3857600080fd5b5061050b610a47366004614c18565b612485565b348015610a5857600080fd5b50610a6c610a67366004614cd6565b61256b565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c083015260e08201526101000161045c565b348015610abd57600080fd5b5061050b610acc366004614c18565b612606565b348015610add57600080fd5b506104a7610aec366004614cd6565b60166020526000908152604090205460ff1681565b348015610b0d57600080fd5b5061053e6126bb565b348015610b2257600080fd5b5061050b610b31366004614c80565b612705565b348015610b4257600080fd5b506104a7610b51366004614cd6565b6127c7565b348015610b6257600080fd5b5061053e60115481565b348015610b7857600080fd5b5061050b610b87366004614d05565b612836565b348015610b9857600080fd5b5061050b610ba7366004614d05565b61299a565b348015610bb857600080fd5b506007546104a790600160a01b900460ff1681565b348015610bd957600080fd5b5061053e610be8366004614d38565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610c1f57600080fd5b50600e546104d89061ffff1681565b348015610c3a57600080fd5b5061050b612afe565b348015610c4f57600080fd5b5061053e600d5481565b348015610c6557600080fd5b5061053e612bd3565b348015610c7a57600080fd5b506104a7610c89366004614cd6565b60136020526000908152604090205460ff1681565b348015610caa57600080fd5b5061050b610cb9366004614c18565b612c1d565b348015610cca57600080fd5b5061050b610cd9366004614cd6565b612c78565b348015610cea57600080fd5b50600e546104d890600160301b900461ffff1681565b348015610d0c57600080fd5b50610a6c610d1b366004614c18565b612d2c565b348015610d2c57600080fd5b5061050b610d3b366004614cd6565b612d6e565b348015610d4c57600080fd5b50600e546104d890640100000000900461ffff1681565b348015610d6f57600080fd5b50600c54610448906001600160a01b031681565b348015610d8f57600080fd5b5061053e60105481565b606060038054610da890614d66565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd490614d66565b8015610e215780601f10610df657610100808354040283529160200191610e21565b820191906000526020600020905b815481529060010190602001808311610e0457829003601f168201915b5050505050905090565b600033610e39818585612ea3565b60019150505b92915050565b6005546001600160a01b03163314610e785760405162461bcd60e51b8152600401610e6f90614da0565b60405180910390fd5b600b54604051630dcb2e8960e01b8152600481018390526001600160a01b0390911690630dcb2e89906024015b600060405180830381600087803b158015610ebf57600080fd5b505af1158015610ed3573d6000803e3d6000fd5b5050505050565b6005546001600160a01b03163314610f045760405162461bcd60e51b8152600401610e6f90614da0565b612710610f1060025490565b610f1a9190614deb565b811015610f735760405162461bcd60e51b815260206004820152602160248201527f6d617857616c6c6574203e3d20746f74616c20737570706c79202f20313030306044820152600360fc1b6064820152608401610e6f565b6010546040805183815260208101929092527fff64d41f60feb77d52f64ae64a9fc3929d57a89d0cc55728762468bae5e0fe52910160405180910390a1601055565b600033610fc3858285612fc7565b610fce858585613059565b60019150505b9392505050565b6005546001600160a01b031633146110055760405162461bcd60e51b8152600401610e6f90614da0565b6001600160a01b03821660009081526013602052604090205481151560ff9091161515036110455760405162461bcd60e51b8152600401610e6f90614e0d565b6001600160a01b038216600081815260136020908152604091829020805460ff191685151590811790915591519182527f82170bbd72c16b30c410014b7382121a699ed119a182e48a0b6cadcc89104ac991015b60405180910390a25050565b6005546001600160a01b031633146110cf5760405162461bcd60e51b8152600401610e6f90614da0565b60078054911515600160a01b0260ff60a01b19909216919091179055565b600b54604080516342d359d760e11b815290516000926001600160a01b0316916385a6b3ae9160048083019260209291908290030181865afa158015611137573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115b9190614e2e565b905090565b6005546001600160a01b0316331461118a5760405162461bcd60e51b8152600401610e6f90614da0565b600b5460405163031e79db60e41b81526001600160a01b038381166004830152909116906331e79db090602401610ea5565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190610e3990829086906111f6908790614e47565b612ea3565b600b5460405163bc4c4b3760e01b8152336004820152600060248201526001600160a01b039091169063bc4c4b37906044016020604051808303816000875af115801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190614e5a565b50565b6005546001600160a01b0316331461129d5760405162461bcd60e51b8152600401610e6f90614da0565b600e546001600160a01b03808316600160601b90920416036112d15760405162461bcd60e51b8152600401610e6f90614e0d565b600e546040516001600160a01b0380841692600160601b900416907f8616c7a330e3cf61290821331585511f1e2778171e2b005fb5ec60cfe874dc6790600090a3600e80546001600160a01b03909216600160601b026bffffffffffffffffffffffff909216919091179055565b600b54604080516304ddf6ef60e11b815290516000926001600160a01b0316916309bbedde9160048083019260209291908290030181865afa158015611137573d6000803e3d6000fd5b6005546001600160a01b031633146113b35760405162461bcd60e51b8152600401610e6f90614da0565b6009546001600160a01b039081169082160361141d5760405162461bcd60e51b815260206004820152602360248201527f54686520726f7574657220616c7265616479206861732074686174206164647260448201526265737360e81b6064820152608401610e6f565b6009546040516001600160a01b03918216918316907f8fc842bbd331dfa973645f4ed48b11683d501ebf1352708d77a5da2ab49a576e90600090a3806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ba9190614e77565b6008546040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303816000875af115801561150b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152f9190614e77565b600a80546001600160a01b039283166001600160a01b031991821617909155600980549284169290911682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015611598573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115bc9190614e77565b6008546001600160a01b0390811691161461164d5760085460095460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af1158015611627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164b9190614e5a565b505b6009546116679030906001600160a01b0316600019612ea3565b600b5460095460405163c705c56960e01b81526001600160a01b03918216600482015291169063c705c56990602401602060405180830381865afa1580156116b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d79190614e5a565b61173d57600b5460095460405163031e79db60e41b81526001600160a01b0391821660048201529116906331e79db090602401600060405180830381600087803b15801561172457600080fd5b505af1158015611738573d6000803e3d6000fd5b505050505b600a54611270906001600160a01b031660016137bc565b600b546040516370a0823160e01b81526001600160a01b03838116600483015260009216906370a08231906024015b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3f9190614e2e565b600b546040516001624d3b8760e01b0319815260048101839052600091829182916001600160a01b03169063ffb2c479906024016060604051808303816000875af1158015611817573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183b9190614e94565b604080518481526020810184905290810182905260608101889052929550909350915033906000907fc864333d6121033635ab41b29ae52f10a22cf4438c3e4f1c4c68518feb2f8a989060800160405180910390a350505050565b6005546001600160a01b031633146118c05760405162461bcd60e51b8152600401610e6f90614da0565b6118ca60006139ab565b565b6005546001600160a01b031633146118f65760405162461bcd60e51b8152600401610e6f90614da0565b62030d40811015801561190c57506207a1208111155b6119755760405162461bcd60e51b815260206004820152603460248201527f676173466f7250726f63657373696e67206d757374206265206265747765656e6044820152730203230302c30303020616e64203530302c3030360641b6064820152608401610e6f565b600f5481036119db5760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f742075706461746520676173466f7250726f63657373696e67207460448201526b6f2073616d652076616c756560a01b6064820152608401610e6f565b600f5460405182907f40d7e40e79af4e8e5a9b3c57030d8ea93f13d669c06d448c4d631d4ae7d23db790600090a3600f55565b6005546001600160a01b03163314611a385760405162461bcd60e51b8152600401610e6f90614da0565b600b546001600160a01b0390811690821603611aac5760405162461bcd60e51b815260206004820152602d60248201527f546865206469766964656e6420747261636b657220616c72656164792068617360448201526c2074686174206164647265737360981b6064820152608401610e6f565b6000819050306001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611af9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1d9190614e77565b6001600160a01b031614611bad5760405162461bcd60e51b815260206004820152604b60248201527f546865206e6577206469766964656e6420747261636b6572206d75737420626560448201527f206f776e656420627920746865204449564944454e4544544f4b454e20746f6b60648201526a195b8818dbdb9d1c9858dd60aa1b608482015260a401610e6f565b60405163031e79db60e41b81526001600160a01b03821660048201819052906331e79db090602401600060405180830381600087803b158015611bef57600080fd5b505af1158015611c03573d6000803e3d6000fd5b505060405163031e79db60e41b81523060048201526001600160a01b03841692506331e79db09150602401600060405180830381600087803b158015611c4857600080fd5b505af1158015611c5c573d6000803e3d6000fd5b50505050806001600160a01b03166331e79db0611c816005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b158015611cc257600080fd5b505af1158015611cd6573d6000803e3d6000fd5b505060095460405163031e79db60e41b81526001600160a01b03918216600482015290841692506331e79db09150602401600060405180830381600087803b158015611d2157600080fd5b505af1158015611d35573d6000803e3d6000fd5b5050600a5460405163031e79db60e41b81526001600160a01b03918216600482015290841692506331e79db09150602401600060405180830381600087803b158015611d8057600080fd5b505af1158015611d94573d6000803e3d6000fd5b5050600b546040516001600160a01b03918216935090851691507f90c7d74461c613da5efa97d90740869367d74ab3aa5837aa4ae9a975f954b7a890600090a3600b80546001600160a01b0319166001600160a01b039290921691909117905550565b6005546001600160a01b03163314611e215760405162461bcd60e51b8152600401610e6f90614da0565b6001600160a01b0381163003611e675760405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b6044820152606401610e6f565b611270611e7c6005546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611ec0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee49190614e2e565b6001600160a01b03841691906139fd565b6005546001600160a01b03163314611f1f5760405162461bcd60e51b8152600401610e6f90614da0565b600880546001600160a01b0319166001600160a01b03838116919091179091556009546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015611f81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa59190614e77565b6008546040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303816000875af1158015611ff6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061201a9190614e77565b600a80546001600160a01b0319166001600160a01b03928316179055600954604080516315ab88c960e31b81529051919092169163ad5c46489160048083019260209291908290030181865afa158015612078573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209c9190614e77565b6008546001600160a01b0390811691161461173d5760085460095460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af1158015612107573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212b9190614e5a565b50600a54611270906001600160a01b031660016137bc565b6005546001600160a01b0316331461216d5760405162461bcd60e51b8152600401610e6f90614da0565b600e5460c89061ffff600160401b8204811691612194916401000000009091041685614ec2565b61219e9190614ec2565b61ffff1611156121c05760405162461bcd60e51b8152600401610e6f90614ee4565b600e5460c89061ffff600160501b82048116916121e691600160301b9091041684614ec2565b6121f09190614ec2565b61ffff1611156122125760405162461bcd60e51b8152600401610e6f90614f0d565b600e546040805161ffff8581168252848116602083015280841682840152620100009093049092166060830152517f0a21d45dab14d5d2f53ae98d95d951cd627fcf1b5bc485174326568b5e0a45729181900360800190a1600e805461ffff928316620100000263ffffffff199091169290931691909117919091179055565b606060048054610da890614d66565b6005546001600160a01b031633146122cb5760405162461bcd60e51b8152600401610e6f90614da0565b600a546001600160a01b039081169083160361234f5760405162461bcd60e51b815260206004820152603e60248201527f546865206d61696e20706169722063616e6e6f742062652072656d6f7665642060448201527f66726f6d206175746f6d617465644d61726b65744d616b6572506169727300006064820152608401610e6f565b61235982826137bc565b5050565b600b5460408051631bc9e27b60e21b815290516000926001600160a01b031691636f2789ec9160048083019260209291908290030181865afa158015611137573d6000803e3d6000fd5b3360008181526001602090815260408083206001600160a01b03871684529091528120549091908381101561242c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610e6f565b6124398286868403612ea3565b506001949350505050565b600b546040516302a2e74960e61b81526001600160a01b038381166004830152600092169063a8b9d24090602401611783565b600033610e39818585613059565b6005546001600160a01b031633146124af5760405162461bcd60e51b8152600401610e6f90614da0565b6127106124bb60025490565b6124c59190614deb565b8110156125295760405162461bcd60e51b815260206004820152602c60248201527f6d61785472616e73616374696f6e416d6f756e74203e3d20746f74616c20737560448201526b070706c79202f2031303030360a41b6064820152608401610e6f565b6011546040805183815260208101929092527f35eec0711af6fbe3039535323be51b57996b6945b0d55862607c7a02e52e4507910160405180910390a1601155565b600b5460405163fbcbc0f160e01b81526001600160a01b038381166004830152600092839283928392839283928392839291169063fbcbc0f1906024015b61010060405180830381865afa1580156125c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125eb9190614f35565b97509750975097509750975097509750919395975091939597565b6005546001600160a01b031633146126305760405162461bcd60e51b8152600401610e6f90614da0565b600081116126795760405162461bcd60e51b8152602060048201526016602482015275073776170546f6b656e734174416d6f756e74203e20360541b6044820152606401610e6f565b600d546040805183815260208101929092527f1d3afd1a2942d06995fdb024306050a7b24ad00572be70ce8b1bea325780d28b910160405180910390a1600d55565b600b5460408051632f842d8560e21b815290516000926001600160a01b03169163be10b6149160048083019260209291908290030181865afa158015611137573d6000803e3d6000fd5b6005546001600160a01b0316331461272f5760405162461bcd60e51b8152600401610e6f90614da0565b6001600160a01b03821660009081526012602052604090205481151560ff90911615150361276f5760405162461bcd60e51b8152600401610e6f90614e0d565b6001600160a01b038216600081815260126020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79101611099565b600b5460405163c705c56960e01b81526001600160a01b038381166004830152600092169063c705c56990602401602060405180830381865afa158015612812573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3f9190614e5a565b6005546001600160a01b031633146128605760405162461bcd60e51b8152600401610e6f90614da0565b600e5460c89061ffff80821691612881916401000000009091041685614ec2565b61288b9190614ec2565b61ffff1611156128ad5760405162461bcd60e51b8152600401610e6f90614ee4565b600e5460c89061ffff6201000082048116916128d291600160301b9091041684614ec2565b6128dc9190614ec2565b61ffff1611156128fe5760405162461bcd60e51b8152600401610e6f90614f0d565b600e546040805161ffff85811682528481166020830152600160401b8404811682840152600160501b9093049092166060830152517f1d6b62961d401d548eb1549c97109c0b905ccd7af9c3777d3076cc8438fdfe659181900360800190a1600e80546bffffffff00000000000000001916600160401b61ffff9485160261ffff60501b191617600160501b9290931691909102919091179055565b6005546001600160a01b031633146129c45760405162461bcd60e51b8152600401610e6f90614da0565b600e5460c89061ffff808216916129e491600160401b9091041685614ec2565b6129ee9190614ec2565b61ffff161115612a105760405162461bcd60e51b8152600401610e6f90614ee4565b600e5460c89061ffff620100008204811691612a3591600160501b9091041684614ec2565b612a3f9190614ec2565b61ffff161115612a615760405162461bcd60e51b8152600401610e6f90614f0d565b600e546040805161ffff858116825284811660208301526401000000008404811682840152600160301b9093049092166060830152517f95c5c99557725e816faf752c6675d63483841c28a7a009ed792470a9cb4dea239181900360800190a1600e805467ffffffff00000000191664010000000061ffff9485160267ffff000000000000191617600160301b9290931691909102919091179055565b6005546001600160a01b03163314612b285760405162461bcd60e51b8152600401610e6f90614da0565b6000612b3c6005546001600160a01b031690565b6001600160a01b03164760405160006040518083038185875af1925050503d8060008114612b86576040519150601f19603f3d011682016040523d82523d6000602084013e612b8b565b606091505b50509050806112705760405162461bcd60e51b815260206004820152601460248201527311985a5b1959081a5b881dda5d1a191c985dd85b60621b6044820152606401610e6f565b600b546040805163039e107b60e61b815290516000926001600160a01b03169163e7841ec09160048083019260209291908290030181865afa158015611137573d6000803e3d6000fd5b6005546001600160a01b03163314612c475760405162461bcd60e51b8152600401610e6f90614da0565b600b5460405163e98030c760e01b8152600481018390526001600160a01b039091169063e98030c790602401610ea5565b6005546001600160a01b03163314612ca25760405162461bcd60e51b8152600401610e6f90614da0565b6006546001600160a01b03808316911603612ccf5760405162461bcd60e51b8152600401610e6f90614e0d565b6006546040516001600160a01b03918216918316907fe2b5774aa87aa100c6ec40513e7bc1d6f3c22e7abfdcd1e87401c3c791bde9ae90600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b600b54604051635183d6fd60e01b81526004810183905260009182918291829182918291829182916001600160a01b0390911690635183d6fd906024016125a9565b6005546001600160a01b03163314612d985760405162461bcd60e51b8152600401610e6f90614da0565b6001600160a01b038116612dfd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610e6f565b611270816139ab565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116612e9e5760405162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b6044820152606401610e6f565b919050565b6001600160a01b038316612f055760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610e6f565b6001600160a01b038216612f665760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610e6f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461305357818110156130465760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610e6f565b6130538484848403612ea3565b50505050565b6001600160a01b03831661307f5760405162461bcd60e51b8152600401610e6f90614f9f565b6001600160a01b0382166130a55760405162461bcd60e51b8152600401610e6f90614fe4565b600081116130f55760405162461bcd60e51b815260206004820152601b60248201527f45524332303a207472616e73666572207a65726f20616d6f756e7400000000006044820152606401610e6f565b600a54600160a01b900460ff161580156131185750600754600160a01b900460ff165b801561313d57506001600160a01b03831660009081526012602052604090205460ff16155b801561316257506001600160a01b03821660009081526012602052604090205460ff16155b156131d65760075460405163090ec10b60e31b81526001600160a01b03858116600483015284811660248301526044820184905290911690634876085890606401600060405180830381600087803b1580156131bd57600080fd5b505af11580156131d1573d6000803e3d6000fd5b505050505b30600090815260208190526040902054600d54811080159081906132045750600a54600160a01b900460ff16155b801561322957506001600160a01b03851660009081526016602052604090205460ff16155b801561324357506005546001600160a01b03868116911614155b801561325d57506005546001600160a01b03858116911614155b156132d357600a805460ff60a01b1916600160a01b1790556015541561328857613288601554613a54565b6014541561329b5761329b601454613edb565b3060009081526020819052604090205480156132ba576132ba81614160565b5060006015819055601455600a805460ff60a01b191690555b600a546001600160a01b03861660009081526012602052604090205460ff600160a01b90920482161591168061332157506001600160a01b03851660009081526012602052604090205460ff165b1561332a575060005b600080600083156134c4576001600160a01b03891660009081526016602052604090205460ff16156133d457600e546103e8906133719062010000900461ffff1689615027565b61337b9190614deb565b600e549091506103e89061339a90600160301b900461ffff1689615027565b6133a49190614deb565b600e549093506103e8906133c390600160501b900461ffff1689615027565b6133cd9190614deb565b915061346a565b6001600160a01b03881660009081526016602052604090205460ff161561346a57600e546103e89061340a9061ffff1689615027565b6134149190614deb565b600e549091506103e89061343490640100000000900461ffff1689615027565b61343e9190614deb565b600e549093506103e89061345d90600160401b900461ffff1689615027565b6134679190614deb565b91505b826014546134789190614e47565b601455601554613489908390614e47565b6015556000826134998584614e47565b6134a39190614e47565b90506134af818961503e565b975080156134c2576134c28a3083614292565b505b6134cf898989614292565b600b546001600160a01b031663e30443bc8a613500816001600160a01b031660009081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561354657600080fd5b505af1925050508015613557575060015b50600b546001600160a01b031663e30443bc89613589816001600160a01b031660009081526020819052604090205490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156135cf57600080fd5b505af19250505080156135e0575060015b50600a54600160a01b900460ff166137b1576001600160a01b03891660009081526013602052604090205460ff166136635760115487106136635760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2065786365656473207472616e73666572206c696d69740000006044820152606401610e6f565b6001600160a01b03881660009081526013602052604090205460ff166136ec576010546001600160a01b038916600090815260208190526040902054106136ec5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a2065786365656473206d61782077616c6c6574206c696d6974006044820152606401610e6f565b600f54600b546040516001624d3b8760e01b03198152600481018390526001600160a01b039091169063ffb2c479906024016060604051808303816000875af1925050508015613759575060408051601f3d908101601f1916820190925261375691810190614e94565b60015b156137af5760408051848152602081018490529081018290526060810185905233906001907fc864333d6121033635ab41b29ae52f10a22cf4438c3e4f1c4c68518feb2f8a989060800160405180910390a35050505b505b505050505050505050565b6001600160a01b03821660009081526016602052604090205481151560ff9091161515036138525760405162461bcd60e51b815260206004820152603860248201527f4175746f6d61746564206d61726b6574206d616b65722070616972206973206160448201527f6c72656164792073657420746f20746861742076616c756500000000000000006064820152608401610e6f565b6001600160a01b038216600090815260166020908152604080832080548515801560ff199283168117909355601390945291909320805490911690921790915581906139095750600b5460405163c705c56960e01b81526001600160a01b0384811660048301529091169063c705c56990602401602060405180830381865afa1580156138e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139079190614e5a565b155b1561396e57600b5460405163031e79db60e41b81526001600160a01b038481166004830152909116906331e79db090602401600060405180830381600087803b15801561395557600080fd5b505af1158015613969573d6000803e3d6000fd5b505050505b816001600160a01b03167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab82604051611099911515815260200190565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052613a4f9084906143e6565b505050565b600c546006546001600160a01b03918216911603613b8657600c546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015613ab5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ad99190614e2e565b9050613ae4826144b8565b600c546040516370a0823160e01b815230600482015260009183916001600160a01b03909116906370a0823190602401602060405180830381865afa158015613b31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b559190614e2e565b613b5f919061503e565b600e54600c54919250613a4f916001600160a01b0390811691600160601b900416836139fd565b6008546006546001600160a01b03918216911603613ebc57600954604080516315ab88c960e31b815290516000926001600160a01b03169163ad5c46489160048083019260209291908290030181865afa158015613be8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c0c9190614e77565b6008546001600160a01b03908116911614613c92576008546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015613c69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c8d9190614e2e565b613c94565b475b9050613c9f826146a5565b600954604080516315ab88c960e31b815290516000926001600160a01b03169163ad5c46489160048083019260209291908290030181865afa158015613ce9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d0d9190614e77565b6008546001600160a01b03908116911614613d9d576008546040516370a0823160e01b815230600482015283916001600160a01b0316906370a0823190602401602060405180830381865afa158015613d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d8e9190614e2e565b613d98919061503e565b613da7565b613da7824761503e565b9050600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613dfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e209190614e77565b6008546001600160a01b03918216911603613e9757600e54604051600091600160601b90046001600160a01b03169083908381818185875af1925050503d8060008114613e89576040519150601f19603f3d011682016040523d82523d6000602084013e613e8e565b606091505b50505050505050565b600e54600854613a4f916001600160a01b0391821691600160601b90910416836139fd565b600e54611270903090600160601b90046001600160a01b031683613059565b6000613ee8600283614deb565b90506000613ef6828461503e565b90506000600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613f4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f719190614e77565b6008546001600160a01b03908116911614613ff7576008546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015613fce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ff29190614e2e565b613ff9565b475b9050614004836146a5565b600954604080516315ab88c960e31b815290516000926001600160a01b03169163ad5c46489160048083019260209291908290030181865afa15801561404e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140729190614e77565b6008546001600160a01b03908116911614614102576008546040516370a0823160e01b815230600482015283916001600160a01b0316906370a0823190602401602060405180830381865afa1580156140cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140f39190614e2e565b6140fd919061503e565b61410c565b61410c824761503e565b9050614118838261483e565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15050505050565b614169816144b8565b600c546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156141b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d69190614e2e565b600b54600c549192506141f6916001600160a01b039081169116836139fd565b600b5460405163ba72a95560e01b8152600481018390526001600160a01b039091169063ba72a95590602401600060405180830381600087803b15801561423c57600080fd5b505af1158015614250573d6000803e3d6000fd5b505060408051858152602081018590527f80195cc573b02cc48460cbca6e6e4cc85ddb91959d946e1c3025ea3d87942dc3935001905060405180910390a15050565b6001600160a01b0383166142b85760405162461bcd60e51b8152600401610e6f90614f9f565b6001600160a01b0382166142de5760405162461bcd60e51b8152600401610e6f90614fe4565b6001600160a01b038316600090815260208190526040902054818110156143565760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610e6f565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061438d908490614e47565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516143d991815260200190565b60405180910390a3613053565b600061443b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166149ff9092919063ffffffff16565b805190915015613a4f57808060200190518101906144599190614e5a565b613a4f5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610e6f565b600c546008546001600160a01b039081169116146145e5576040805160038082526080820190925260009160208201606080368337019050509050308160008151811061450757614507615051565b6001600160a01b03928316602091820292909201015260085482519116908290600190811061453857614538615051565b6001600160a01b039283166020918202929092010152600c5482519116908290600290811061456957614569615051565b6001600160a01b039283166020918202929092010152600954604051635c11d79560e01b8152911690635c11d795906145af9085906000908690309042906004016150ab565b600060405180830381600087803b1580156145c957600080fd5b505af11580156145dd573d6000803e3d6000fd5b505050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061461a5761461a615051565b6001600160a01b039283166020918202929092010152600c5482519116908290600190811061464b5761464b615051565b6001600160a01b039283166020918202929092010152600954604051637274ca1b60e11b8152731ccfe8c40ef259566433716002e379dfffbf5a3e9263e4e99436926145af929116908690600090879042906004016150e7565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106146da576146da615051565b6001600160a01b03928316602091820292909201015260085482519116908290600190811061470b5761470b615051565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015614764573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147889190614e77565b6001600160a01b0316816001815181106147a4576147a4615051565b60200260200101516001600160a01b0316036147f35760095460405163791ac94760e01b81526001600160a01b039091169063791ac947906145af9085906000908690309042906004016150ab565b600954604051637274ca1b60e11b8152731ccfe8c40ef259566433716002e379dfffbf5a3e9163e4e99436916145af916001600160a01b0316908690600090879042906004016150e7565b600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015614891573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148b59190614e77565b6008546001600160a01b0391821691160361495d5760095460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015614938573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ed39190614e94565b60095460085460405162e8e33760e81b81523060048201526001600160a01b039182166024820152604481018590526064810184905260006084820181905260a482015261dead60c48201524260e482015291169063e8e3370090610104016060604051808303816000875af11580156149db573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed39190614e94565b6060614a0e8484600085614a16565b949350505050565b606082471015614a775760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610e6f565b6001600160a01b0385163b614ace5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610e6f565b600080866001600160a01b03168587604051614aea9190615126565b60006040518083038185875af1925050503d8060008114614b27576040519150601f19603f3d011682016040523d82523d6000602084013e614b2c565b606091505b5091509150614b3c828286614b47565b979650505050505050565b60608315614b56575081610fd4565b825115614b665782518084602001fd5b8160405162461bcd60e51b8152600401610e6f9190614ba4565b60005b83811015614b9b578181015183820152602001614b83565b50506000910152565b6020815260008251806020840152614bc3816040850160208701614b80565b601f01601f19169190910160400192915050565b6001600160a01b038116811461127057600080fd5b60008060408385031215614bff57600080fd5b8235614c0a81614bd7565b946020939093013593505050565b600060208284031215614c2a57600080fd5b5035919050565b600080600060608486031215614c4657600080fd5b8335614c5181614bd7565b92506020840135614c6181614bd7565b929592945050506040919091013590565b801515811461127057600080fd5b60008060408385031215614c9357600080fd5b8235614c9e81614bd7565b91506020830135614cae81614c72565b809150509250929050565b600060208284031215614ccb57600080fd5b8135610fd481614c72565b600060208284031215614ce857600080fd5b8135610fd481614bd7565b803561ffff81168114612e9e57600080fd5b60008060408385031215614d1857600080fd5b614d2183614cf3565b9150614d2f60208401614cf3565b90509250929050565b60008060408385031215614d4b57600080fd5b8235614d5681614bd7565b91506020830135614cae81614bd7565b600181811c90821680614d7a57607f821691505b602082108103614d9a57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082614e0857634e487b7160e01b600052601260045260246000fd5b500490565b602080825260079082015266616c726561647960c81b604082015260600190565b600060208284031215614e4057600080fd5b5051919050565b80820180821115610e3f57610e3f614dd5565b600060208284031215614e6c57600080fd5b8151610fd481614c72565b600060208284031215614e8957600080fd5b8151610fd481614bd7565b600080600060608486031215614ea957600080fd5b8351925060208401519150604084015190509250925092565b61ffff818116838216019080821115614edd57614edd614dd5565b5092915050565b6020808252600f908201526e73656c6c20666565203c3d2032302560881b604082015260600190565b6020808252600e908201526d62757920666565203c3d2032302560901b604082015260600190565b600080600080600080600080610100898b031215614f5257600080fd5b8851614f5d81614bd7565b809850506020890151965060408901519550606089015194506080890151935060a0890151925060c0890151915060e089015190509295985092959890939650565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8082028115828204841417610e3f57610e3f614dd5565b81810381811115610e3f57610e3f614dd5565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156150a05781516001600160a01b03168752958201959082019060010161507b565b509495945050505050565b85815284602082015260a0604082015260006150ca60a0830186615067565b6001600160a01b0394909416606083015250608001529392505050565b60018060a01b038616815284602082015283604082015260a06060820152600061511460a0830185615067565b90508260808301529695505050505050565b60008251615138818460208701614b80565b919091019291505056fea2646970667358221220aed8129ac5bee9795d0fb8c1d42daa497eee6c6ba191204e72d32ea6853c144364736f6c63430008120033000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000033b2e3c9fd0803ce80000000000000000000000000000000000000000000000033b2e3c9fd0803ce80000000000000000000000000000000000000000000000033b2e3c9fd0803ce8000000000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000003d52b82da2c4621a3b34fb8b822f8c1ae915881d0000000000000000000000009cc421962fc72f11c5c2ddf79fe6b5fe5e7cd94e000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000005d73f4b0d6e65323af1955c5f7ceb9a8fa2f3d8e00000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000010f0cf064dd59200000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000045061647a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045041445a00000000000000000000000000000000000000000000000000000000