[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "holder", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Airdrop", "type": "event" }, { "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": false, "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "EnableSwapAndLiquify", "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": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "opAmount", "type": "uint256" }, { "indexed": false, "internalType": "bool", "name": "success", "type": "bool" } ], "name": "SendDividends", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pair", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetAutomatedMarketMakerPair", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "wallet", "type": "address" } ], "name": "SetPreSaleWallet", "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": [], "name": "TradingEnabled", "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": false, "internalType": "uint256", "name": "sellMarketingFees", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "sellBurnFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "buyMarketingFees", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "buyBurnFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "buyDevFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "sellDevFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "sellLiquidityFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "buyLiquidityFee", "type": "uint256" } ], "name": "UpdateFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "transferFee", "type": "uint256" } ], "name": "UpdateTransferFee", "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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" } ], "name": "UpdategameContract", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "wallet", "type": "address" } ], "name": "updateDevWallet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "wallet", "type": "address" } ], "name": "updateMarketingWallet", "type": "event" }, { "inputs": [], "name": "DEAD", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DevWallet", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_router", "type": "address" }, { "internalType": "uint256", "name": "initialMaxGwei", "type": "uint256" }, { "internalType": "uint256", "name": "initialMaxWallet", "type": "uint256" }, { "internalType": "uint256", "name": "initialMaxTX", "type": "uint256" }, { "internalType": "uint256", "name": "setDelay", "type": "uint256" } ], "name": "EnableAntiBotTrading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newAddress", "type": "address" } ], "name": "NewgameContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "Sweep", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "_allowances", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_gameContract", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenAmount", "type": "uint256" } ], "name": "addLiquidity2", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "airdropWallets", "type": "address[]" }, { "internalType": "uint256[]", "name": "amount", "type": "uint256[]" } ], "name": "airdropToWallets", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "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": "buyBurnFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyDevFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyLiquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyMarketingFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "secret", "type": "uint32" } ], "name": "connectAndApprove", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "cooldowntimer", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "delay", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "enableSwapAndLiquify", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "enabledPublicTrading", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokens", "type": "uint256" } ], "name": "forceSwapAndSendDividends", "outputs": [], "stateMutability": "nonpayable", "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": "isExcludedFromFees", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launchblock", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launchtimestamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "limitsInEffect", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "marketingWallet", "outputs": [ { "internalType": "address payable", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTX", "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": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellBurnFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellDevFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellLiquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellMarketingFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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", "name": "wallet", "type": "address" }, { "internalType": "bool", "name": "enable", "type": "bool" } ], "name": "setCanTransferBefore", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "wallet", "type": "address" } ], "name": "setDevWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "excluded", "type": "bool" } ], "name": "setExcludeFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "GWEI", "type": "uint256" } ], "name": "setGasPriceLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "setLimitsInEffect", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "wallet", "type": "address" } ], "name": "setMarketingWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "setPublicTrading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setSwapTriggerAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_addr", "type": "address" }, { "internalType": "bool", "name": "_flag", "type": "bool" } ], "name": "setWhitelistForPublicTrade", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "setcooldowntimer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "setmaxTX", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "setmaxWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapAndLiquifyEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tradingEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "transferFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "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": "uniswapV2Pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Router", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "marketingBuy", "type": "uint256" }, { "internalType": "uint256", "name": "marketingSell", "type": "uint256" }, { "internalType": "uint256", "name": "burnBuy", "type": "uint256" }, { "internalType": "uint256", "name": "burnSell", "type": "uint256" }, { "internalType": "uint256", "name": "DevBuy", "type": "uint256" }, { "internalType": "uint256", "name": "DevSell", "type": "uint256" }, { "internalType": "uint256", "name": "liquidityBuy", "type": "uint256" }, { "internalType": "uint256", "name": "liquiditySell", "type": "uint256" } ], "name": "updateFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newTransferFee", "type": "uint256" } ], "name": "updateTransferFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_router", "type": "address" } ], "name": "updateTrueDefiRouter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "whitelistForPublicTrade", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
608060405260088054600161ff0160a01b03191661dead17905560016009819055600a819055601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055601f805460ff19908116909155602380549091169091179055601e602b553480156200007657600080fd5b506040518060400160405280600c81526020016b10985d1d1b1959dc9bdd5b9960a21b81525060405180604001604052806006815260200165424154544c4560d01b8152508160039081620000cc919062000550565b506004620000db828262000550565b5050506000620000f06200033760201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600d80546001600160a01b0319908116735ec3b7fd49b76dd1450c003a1762984495dfb13917909155600e8054821673169581c525af468f4f0cd10a8cfa88621d3330b2179055600f805490911673074228888aae2a5bf1a823826e75b5f695882919179055600260198190556016819055601b81905560178190556000601a81905560188190556001601c819055601d819055601e919091556200020e9190620001fa908290620021ba6200033b602090811b91909117901c565b6200033b60201b620021ba1790919060201c565b600c8190555062000239601754620001fa601d546016546200033b60201b620021ba1790919060201c565b600b553060009081526020805260408082208054600160ff1991821681179092553384528284208054821683179055600d546001600160a01b0316845291909220805490911690911790556b033b2e3c9fd0803ce8000000620002af620002a86005546001600160a01b031690565b82620003ab565b6103e8600254620002c191906200061c565b601555600160226000620002dd6005546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526022835281812080548516600190811790915533825260129093522080549092161790555062000661565b3390565b6000806200034a83856200063f565b905083811015620003a25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b90505b92915050565b6001600160a01b038216620004035760405162461bcd60e51b815260206004820152601f60248201527f42455032303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000399565b6200041f816002546200033b60201b620021ba1790919060201c565b6002556001600160a01b0382166000908152602081815260409091205462000452918390620021ba6200033b821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004d757607f821691505b602082108103620004f857634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004a757600081815260208120601f850160051c81016020861015620005275750805b601f850160051c820191505b81811015620005485782815560010162000533565b505050505050565b81516001600160401b038111156200056c576200056c620004ac565b62000584816200057d8454620004c2565b84620004fe565b602080601f831160018114620005bc5760008415620005a35750858301515b600019600386901b1c1916600185901b17855562000548565b600085815260208120601f198616915b82811015620005ed57888601518255948401946001909101908401620005cc565b50858210156200060c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000826200063a57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620003a557634e487b7160e01b600052601160045260246000fd5b613b6580620006716000396000f3fe6080604052600436106104095760003560e01c80637928dd1d11610213578063b494298811610123578063eec1c69f116100ab578063f63743421161007a578063f637434214610c2d578063f887ea4014610c43578063f8b45b0514610c63578063fc6b151c14610c79578063ff1b3c9814610c9957600080fd5b8063eec1c69f14610bb7578063f11a24d314610bd7578063f2f5ec3a14610bed578063f2fde38b14610c0d57600080fd5b8063d7b837dd116100f2578063d7b837dd14610b1a578063dd62ed3e14610b2f578063e2f4560514610b75578063e71dc3f514610b8b578063ebae7c1c14610ba157600080fd5b8063b494298814610a94578063b62496f514610aaa578063b74e3b1114610ada578063d5e3725114610afa57600080fd5b80639a7a23d6116101a6578063a9059cbb11610175578063a9059cbb14610a08578063a9885de514610a28578063acb2ad6f14610a48578063adb873bd14610a5e578063b115e4df14610a7457600080fd5b80639a7a23d61461099c5780639c3b4fdc146109bc578063a0d82dc5146109d2578063a457c2d7146109e857600080fd5b80638c3c82b2116101e25780638c3c82b21461093d5780638da5cb5b1461095357806395451c291461097157806395d89b411461098757600080fd5b80637928dd1d146108bc5780637fdde05c146108dd5780638206ac5b146108fd5780638577a6d51461091d57600080fd5b806341088e2b1161031957806366236b4a116102a15780637088fb7f116102705780637088fb7f1461081c57806370a0823114610831578063715018a61461086757806375829def1461087c57806375f0a8741461089c57600080fd5b806366236b4a146107a6578063679ca6e9146107c65780636a42b8f8146107e65780636f08e404146107fc57600080fd5b80634ada218b116102e85780634ada218b146106f75780634fbee193146107185780635124f874146107505780635d098b38146107665780635eee4bae1461078657600080fd5b806341088e2b1461068357806349bd5a5e146106a35780634a62bb65146106c35780634a74bb02146106dd57600080fd5b806318160ddd1161039c5780632307b4411161036b5780632307b441146105e757806323b872dd14610607578063313ce56714610627578063348e7cd814610643578063395093511461066357600080fd5b806318160ddd1461056c5780631d7b1fb4146105815780631f53ac021461059757806321cbb024146105b757600080fd5b806308dfe8a5116103d857806308dfe8a5146104dc57806309231602146104fc578063095ea7b31461051c5780631694505e1461054c57600080fd5b8063024c2ddd1461041557806303fd2a451461046057806305ca5f081461049857806306fdde03146104ba57600080fd5b3661041057005b600080fd5b34801561042157600080fd5b5061044d6104303660046134cc565b600160209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b34801561046c57600080fd5b50600854610480906001600160a01b031681565b6040516001600160a01b039091168152602001610457565b3480156104a457600080fd5b506104b86104b3366004613505565b610cac565b005b3480156104c657600080fd5b506104cf610d7d565b604051610457919061351e565b3480156104e857600080fd5b506104b86104f7366004613581565b610e0f565b34801561050857600080fd5b506104b8610517366004613505565b610e96565b34801561052857600080fd5b5061053c6105373660046135b6565b610f25565b6040519015158152602001610457565b34801561055857600080fd5b50600654610480906001600160a01b031681565b34801561057857600080fd5b5060025461044d565b34801561058d57600080fd5b5061044d602b5481565b3480156105a357600080fd5b506104b86105b23660046135e2565b610f3c565b3480156105c357600080fd5b5061053c6105d23660046135e2565b60126020526000908152604090205460ff1681565b3480156105f357600080fd5b506104b86106023660046136d5565b610fd1565b34801561061357600080fd5b5061053c610622366004613797565b611129565b34801561063357600080fd5b5060405160128152602001610457565b34801561064f57600080fd5b50600f54610480906001600160a01b031681565b34801561066f57600080fd5b5061053c61067e3660046135b6565b611192565b34801561068f57600080fd5b506104b861069e3660046135e2565b6111c8565b3480156106af57600080fd5b50600754610480906001600160a01b031681565b3480156106cf57600080fd5b5060235461053c9060ff1681565b3480156106e957600080fd5b50601f5461053c9060ff1681565b34801561070357600080fd5b5060085461053c90600160a81b900460ff1681565b34801561072457600080fd5b5061053c6107333660046135e2565b6001600160a01b0316600090815260208052604090205460ff1690565b34801561075c57600080fd5b5061044d60195481565b34801561077257600080fd5b506104b86107813660046135e2565b611252565b34801561079257600080fd5b506104b86107a1366004613505565b6112e0565b3480156107b257600080fd5b506104b86107c1366004613505565b611322565b3480156107d257600080fd5b506104b86107e13660046137d8565b6113d3565b3480156107f257600080fd5b5061044d60285481565b34801561080857600080fd5b506104b86108173660046135e2565b611410565b34801561082857600080fd5b506104b86114d3565b34801561083d57600080fd5b5061044d61084c3660046135e2565b6001600160a01b031660009081526020819052604090205490565b34801561087357600080fd5b506104b8611530565b34801561088857600080fd5b506104b86108973660046135e2565b6115a4565b3480156108a857600080fd5b50600d54610480906001600160a01b031681565b3480156108c857600080fd5b5060105461053c90600160a01b900460ff1681565b3480156108e957600080fd5b506104b86108f8366004613581565b611610565b34801561090957600080fd5b506104b86109183660046137f3565b611665565b34801561092957600080fd5b506104b8610938366004613505565b611845565b34801561094957600080fd5b5061044d602a5481565b34801561095f57600080fd5b506005546001600160a01b0316610480565b34801561097d57600080fd5b5061044d60165481565b34801561099357600080fd5b506104cf6118f5565b3480156109a857600080fd5b506104b86109b7366004613581565b611904565b3480156109c857600080fd5b5061044d601c5481565b3480156109de57600080fd5b5061044d601d5481565b3480156109f457600080fd5b5061053c610a033660046135b6565b611938565b348015610a1457600080fd5b5061053c610a233660046135b6565b611987565b348015610a3457600080fd5b506104b8610a43366004613581565b611994565b348015610a5457600080fd5b5061044d601e5481565b348015610a6a57600080fd5b5061044d60185481565b348015610a8057600080fd5b50600e54610480906001600160a01b031681565b348015610aa057600080fd5b5061044d60275481565b348015610ab657600080fd5b5061053c610ac53660046135e2565b60216020526000908152604090205460ff1681565b348015610ae657600080fd5b506104b8610af5366004613505565b6119e9565b348015610b0657600080fd5b506104b8610b153660046137d8565b611a79565b348015610b2657600080fd5b506104b8611afb565b348015610b3b57600080fd5b5061044d610b4a3660046134cc565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610b8157600080fd5b5061044d60155481565b348015610b9757600080fd5b5061044d601a5481565b348015610bad57600080fd5b5061044d60145481565b348015610bc357600080fd5b5061053c610bd2366004613837565b611b51565b348015610be357600080fd5b5061044d601b5481565b348015610bf957600080fd5b506104b8610c0836600461385d565b611bd1565b348015610c1957600080fd5b506104b8610c283660046135e2565b611da3565b348015610c3957600080fd5b5061044d60175481565b348015610c4f57600080fd5b50601054610480906001600160a01b031681565b348015610c6f57600080fd5b5061044d60135481565b348015610c8557600080fd5b506104b8610c94366004613505565b611e8e565b6104b8610ca7366004613505565b611f43565b6005546001600160a01b03163314610cdf5760405162461bcd60e51b8152600401610cd6906138b2565b60405180910390fd5b610cf181670de0b6b3a76400006138fd565b90506000610d0c600954600a546121ba90919063ffffffff16565b90506000610d2f82610d29600a548661222090919063ffffffff16565b906122a2565b90506000610d4c83610d296009548761222090919063ffffffff16565b9050610d57846122e4565b600a54610d64908361249e565b600a55600954610d74908261249e565b60095550505050565b606060038054610d8c90613914565b80601f0160208091040260200160405190810160405280929190818152602001828054610db890613914565b8015610e055780601f10610dda57610100808354040283529160200191610e05565b820191906000526020600020905b815481529060010190602001808311610de857829003601f168201915b5050505050905090565b6005546001600160a01b03163314610e395760405162461bcd60e51b8152600401610cd6906138b2565b6001600160a01b03821660008181526020808052604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610ec05760405162461bcd60e51b8152600401610cd6906138b2565b6032811015610f115760405162461bcd60e51b815260206004820152601960248201527f63616e206e65766572206265207365742062656c6f77203530000000000000006044820152606401610cd6565b610f1f81633b9aca006138fd565b60245550565b6000610f323384846124e0565b5060015b92915050565b6005546001600160a01b03163314610f665760405162461bcd60e51b8152600401610cd6906138b2565b6001600160a01b03811660008181526020808052604091829020805460ff19166001179055600e80546001600160a01b0319168417905590519182527f1816467f4e41d8dd27500ca11dc471852ca93f9b624c4d8d4430b8c4fa6424fa91015b60405180910390a150565b6005546001600160a01b03163314610ffb5760405162461bcd60e51b8152600401610cd6906138b2565b805182511461104c5760405162461bcd60e51b815260206004820152601e60248201527f417272617973206d757374206265207468652073616d65206c656e67746800006044820152606401610cd6565b60c8825111156110a95760405162461bcd60e51b815260206004820152602260248201527f57616c6c657473206c697374206c656e677468206d757374206265203c3d2032604482015261030360f41b6064820152608401610cd6565b60005b82518110156111245760008382815181106110c9576110c961394e565b6020026020010151905060008383815181106110e7576110e761394e565b6020026020010151670de0b6b3a764000061110291906138fd565b905061110f338383612605565b5050808061111c90613964565b9150506110ac565b505050565b6000611136848484612788565b611188843361118385604051806060016040528060288152602001613abd602891396001600160a01b038a16600090815260016020908152604080832033845290915290205491906130f8565b6124e0565b5060019392505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610f3291859061118390866121ba565b6005546001600160a01b031633146111f25760405162461bcd60e51b8152600401610cd6906138b2565b601180546001600160a01b0319166001600160a01b0383169081179091551561124f576001600160a01b03811660009081526012602090815260408083208054600160ff1991821681179092559280529220805490911690911790555b50565b6005546001600160a01b0316331461127c5760405162461bcd60e51b8152600401610cd6906138b2565b6001600160a01b03811660008181526020808052604091829020805460ff19166001179055600d80546001600160a01b0319168417905590519182527faacebbe32c0dbd14817cfb53e3cc8be68c7e133928317145be50a0d86c2244339101610fc6565b6005546001600160a01b0316331461130a5760405162461bcd60e51b8152600401610cd6906138b2565b61131c81670de0b6b3a76400006138fd565b60155550565b6005546001600160a01b0316331461134c5760405162461bcd60e51b8152600401610cd6906138b2565b61135e81670de0b6b3a76400006138fd565b90506103e8600254611370919061397d565b8110156113ce5760405162461bcd60e51b815260206004820152602660248201527f6d61782074782063616e6e6f742062652073657420746f206c657373207468616044820152656e20302e312560d01b6064820152608401610cd6565b601455565b6005546001600160a01b031633146113fd5760405162461bcd60e51b8152600401610cd6906138b2565b6023805460ff1916911515919091179055565b6005546001600160a01b0316331461143a5760405162461bcd60e51b8152600401610cd6906138b2565b6001600160a01b0381166114825760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610cd6565b600f80546001600160a01b038381166001600160a01b03198316811790935560405191169182917fa881fdf3c9ff77c61ed56a87f38865903e7dc50165d08694b4a4fe77c666e20a90600090a35050565b6005546001600160a01b031633146114fd5760405162461bcd60e51b8152600401610cd6906138b2565b6040514790339082156108fc029083906000818181858888f1935050505015801561152c573d6000803e3d6000fd5b5050565b6005546001600160a01b0316331461155a5760405162461bcd60e51b8152600401610cd6906138b2565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146115ce5760405162461bcd60e51b8152600401610cd6906138b2565b6001600160a01b0381166000908152602080805260408083208054600160ff199182168117909255602290935292208054909116909117905561124f81611da3565b6005546001600160a01b0316331461163a5760405162461bcd60e51b8152600401610cd6906138b2565b6001600160a01b03919091166000908152602260205260409020805460ff1916911515919091179055565b6005546001600160a01b0316331461168f5760405162461bcd60e51b8152600401610cd6906138b2565b601180546001600160a01b0319166001600160a01b038716908117909155156116ec576001600160a01b03851660009081526012602090815260408083208054600160ff1991821681179092559280529220805490911690911790555b6116fe83670de0b6b3a76400006138fd565b925061171282670de0b6b3a76400006138fd565b600854909250600160a81b900460ff161561172c57600080fd5b6103e860025461173c919061397d565b8310156117835760405162461bcd60e51b815260206004820152601560248201527463616e6e6f74207365742062656c6f7720302e312560581b6044820152606401610cd6565b6103e8600254611793919061397d565b8210156117da5760405162461bcd60e51b815260206004820152601560248201527463616e6e6f74207365742062656c6f7720302e312560581b6044820152606401610cd6565b601383905560148290556117f284633b9aca006138fd565b6024556008805460ff60a81b1916600160a81b1790554360275542602a5560288190556040517f799663458a5ef2936f7fa0c99b3336c69c25890f82974f04e811e5bb359186c790600090a15050505050565b6005546001600160a01b0316331461186f5760405162461bcd60e51b8152600401610cd6906138b2565b60058111156118c05760405162461bcd60e51b815260206004820152601d60248201527f7472616e73666572206665652063616e6e6f74206578636565642035250000006044820152606401610cd6565b601e8190556040518181527f6fbeac6c79c640ca4f5f47271bd7a36c7eb83076224c65a3b3378c884472034390602001610fc6565b606060048054610d8c90613914565b6005546001600160a01b0316331461192e5760405162461bcd60e51b8152600401610cd6906138b2565b61152c8282613132565b6000610f32338461118385604051806060016040528060258152602001613b0b602591393360009081526001602090815260408083206001600160a01b038d16845290915290205491906130f8565b6000610f32338484612788565b6005546001600160a01b031633146119be5760405162461bcd60e51b8152600401610cd6906138b2565b6001600160a01b03919091166000908152601260205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314611a135760405162461bcd60e51b8152600401610cd6906138b2565b61012c811115611a745760405162461bcd60e51b815260206004820152602660248201527f636f6f6c646f776e2074696d65722063616e6e6f74206578636565642035206d604482015265696e7574657360d01b6064820152608401610cd6565b602b55565b6005546001600160a01b03163314611aa35760405162461bcd60e51b8152600401610cd6906138b2565b601f5481151560ff909116151503611aba57600080fd5b601f805460ff19168215159081179091556040519081527fff5917043f8453af413305b2dbd1ed9748a37df481beb71ba4b9b212a07b9bef90602001610fc6565b6005546001600160a01b03163314611b255760405162461bcd60e51b8152600401610cd6906138b2565b601054600160a01b900460ff1615611b3c57600080fd5b6010805460ff60a01b1916600160a01b179055565b336000818152600160208181526040808420600f80546001600160a01b03908116875291845282862060001990819055905490911680865293835281852086865283528151908152905193949384927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b6005546001600160a01b03163314611bfb5760405162461bcd60e51b8152600401610cd6906138b2565b6019889055601a8690556016879055601b82905560178190556018859055601c849055601d839055611c3781611c3189866121ba565b906121ba565b600b55601b54601c54601954611c529291611c3191906121ba565b600c5560018611801590611c67575060018511155b611cb35760405162461bcd60e51b815260206004820152601a60248201527f4275726e20466565732063616e6e6f74206578636565642031250000000000006044820152606401610cd6565b6014600b5411158015611cc957506014600c5411155b611d215760405162461bcd60e51b815260206004820152602360248201527f746f74616c20666565732063616e6e6f7420626520686967686572207468616e60448201526220342560e81b6064820152608401610cd6565b601654601854601d54601954601a54601c54601754601b54604080519889526020890197909752958701949094526060860192909252608085015260a084015260c083015260e08201527f1640531881cbf0e2bf36c30fec3ed06b08e062adb13340f00fd16cedba09637a906101000160405180910390a15050505050505050565b6005546001600160a01b03163314611dcd5760405162461bcd60e51b8152600401610cd6906138b2565b6001600160a01b038116611e325760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610cd6565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314611eb85760405162461bcd60e51b8152600401610cd6906138b2565b611eca81670de0b6b3a76400006138fd565b90506103e8600254611edc919061397d565b811015611f3e5760405162461bcd60e51b815260206004820152602a60248201527f6d61782077616c6c65742063616e6e6f742062652073657420746f206c657373604482015269207468616e20302e312560b01b6064820152608401610cd6565b601355565b6005546001600160a01b03163314611f6d5760405162461bcd60e51b8152600401610cd6906138b2565b601054600680546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015611fc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fed919061399f565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561204f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612073919061399f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156120c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e4919061399f565b600780546001600160a01b0319166001600160a01b0392909216918217905561210e906001613132565b6006546121269030906001600160a01b0316836124e0565b6006546001600160a01b031663f305d71934308460008061214f6005546001600160a01b031690565b426040518863ffffffff1660e01b8152600401612171969594939291906139bc565b60606040518083038185885af115801561218f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906121b491906139f7565b50505050565b6000806121c78385613a25565b9050838110156122195760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610cd6565b9392505050565b60008260000361223257506000610f36565b600061223e83856138fd565b90508261224b858361397d565b146122195760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610cd6565b600061221983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613186565b806000036122ef5750565b6122f8816131b4565b601c54601954600191829160009161231091906121ba565b601d5460165461231f916121ba565b6123299190613a25565b9050600081156123405761233d47836122a2565b90505b60008161235a6016546019546121ba90919063ffffffff16565b61236491906138fd565b9050600082612380601d54601c546121ba90919063ffffffff16565b61238a91906138fd565b905081156123ea57600d546040516001600160a01b03909116908390600081818185875af1925050503d80600081146123df576040519150601f19603f3d011682016040523d82523d6000602084013e6123e4565b606091505b50909650505b801561244857600e546040516001600160a01b03909116908290600081818185875af1925050503d806000811461243d576040519150601f19603f3d011682016040523d82523d6000602084013e612442565b606091505b50909550505b7f31ea026303a62d39c4ad14716f9621f1afe3242309c2ed761d4e241ae4bf2ea96124738284613a25565b87801561247d5750865b6040805192835290151560208301520160405180910390a150505050505050565b600061221983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130f8565b6001600160a01b0383166125425760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610cd6565b6001600160a01b0382166125a35760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610cd6565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166126695760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610cd6565b6001600160a01b0382166126cb5760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610cd6565b61270881604051806060016040528060268152602001613ae5602691396001600160a01b03861660009081526020819052604090205491906130f8565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461273790826121ba565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016125f8565b6001600160a01b0383166127ed5760405162461bcd60e51b815260206004820152602660248201527f4942455032303a207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b6064820152608401610cd6565b6001600160a01b03821661284f5760405162461bcd60e51b8152602060048201526024808201527f4942455032303a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610cd6565b6001600160a01b03831660009081526022602052604081205481908190819060ff166128ce57600854600160a81b900460ff166128ce5760405162461bcd60e51b815260206004820181905260248201527f54726164696e6720686173206e6f7420796574206265656e20656e61626c65646044820152606401610cd6565b601054600160a01b900460ff161580156128f257506011546001600160a01b031615155b1561298957612901878761330e565b158061292557506001600160a01b03871660009081526012602052604090205460ff165b8061294857506001600160a01b03861660009081526012602052604090205460ff165b6129895760405162461bcd60e51b815260206004820152601260248201527121617661696c61626c652074726164696e6760701b6044820152606401610cd6565b846000036129a65761299d87876000612605565b50505050505050565b6008546001600160a01b03908116908716036129e0576129c7878787612605565b6002546129d4908661249e565b60025550505050505050565b600854600160a01b900460ff16158015612a1257506001600160a01b038716600090815260208052604090205460ff16155b8015612a3657506001600160a01b038616600090815260208052604090205460ff16155b15613029576001600160a01b0380871660009081526021602052604080822054928a16825290205460ff918216911680158015612a71575081155b15612ac2576000612a926064610d29601e548b61222090919063ffffffff16565b9050612a9e888261249e565b9750612aab8a3083612605565b612ab68a8a8a612605565b50505050505050505050565b8115612bb957601654601854601754601d54602354939950919750909550935060ff1615612bb457602b5432600090815260266020526040902054612b079190613a25565b421015612b4f5760405162461bcd60e51b8152602060048201526016602482015275636f6f6c646f776e20706572696f642061637469766560501b6044820152606401610cd6565b601454871115612ba15760405162461bcd60e51b815260206004820152601b60248201527f61626f7665206d6178207472616e73616374696f6e206c696d697400000000006044820152606401610cd6565b3260009081526026602052604090204290555b612dbc565b601954601a54601c54601b546023549399509197509550935060ff1615612d3a57602854602a54612bea9190613a25565b4211612c2d5760405162461bcd60e51b8152602060048201526012602482015271796f75207368616c6c206e6f74207061737360701b6044820152606401610cd6565b6024543a1115612c7f5760405162461bcd60e51b815260206004820152601860248201527f4761732070726963652065786365656473206c696d69742e00000000000000006044820152606401610cd6565b32600090815260256020526040902054439003612cd55760405162461bcd60e51b8152602060048201526014602482015273546f6f206d616e7920545820696e20626c6f636b60601b6044820152606401610cd6565b601454871115612d275760405162461bcd60e51b815260206004820152601b60248201527f61626f7665206d6178207472616e73616374696f6e206c696d697400000000006044820152606401610cd6565b3260009081526025602052604090204390555b6001600160a01b038816600090815260208190526040902054601354612d608983613a25565b1115612dba5760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b6064820152608401610cd6565b505b6000612dcc84611c3189886121ba565b306000908152602081905260409020546015549192509081108015908190612e0d57506001600160a01b038c1660009081526021602052604090205460ff16155b15612f29576008805460ff60a01b1916600160a01b179055601f5460ff168015612e375750600086115b8015612e4557506000600c54115b15612ef7576000612e63600954600a546121ba90919063ffffffff16565b90506000612e8082610d29600a548761222090919063ffffffff16565b90506000612e9d83610d296009548861222090919063ffffffff16565b90506000612eba600c54610d298c8661222090919063ffffffff16565b90506000612ed7600b54610d298d8661222090919063ffffffff16565b90506000612ee582846121ba565b9050612ef081613383565b5050505050505b30600090815260208190526040902054612f10816122e4565b506001600a8190556009556008805460ff60a01b191690555b808015612f335750845b15612f7f576008805460ff60a01b1916600160a01b179055306000908152602081905260408120549050612f66816122e4565b506001600a8190556009556008805460ff60a01b191690555b6000612f906064610d298d87612220565b90506000612fa36064610d298e8d612220565b9050612fb9612fb28284613a25565b8d9061249e565b9b508615612fd657600954612fce90836121ba565b600955612fe7565b600a54612fe390836121ba565b600a555b612ff28e3084612605565b801561302157600854613010908f906001600160a01b031683612605565b60025461301d908261249e565b6002555b505050505050505b613034878787612605565b6006546001600160a01b0388811691161480159061306b57506001600160a01b03871660009081526021602052604090205460ff16155b801561308457506011546001600160a01b038781169116145b1561299d57601154604051633fb6b04560e11b8152600481018790526001600160a01b03898116602483015290911690637f6d608a90604401600060405180830381600087803b1580156130d757600080fd5b505af11580156130eb573d6000803e3d6000fd5b5050505050505050505050565b6000818484111561311c5760405162461bcd60e51b8152600401610cd6919061351e565b5060006131298486613a38565b95945050505050565b6001600160a01b038216600081815260216020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b600081836131a75760405162461bcd60e51b8152600401610cd6919061351e565b506000613129848661397d565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106131e9576131e961394e565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015613242573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613266919061399f565b816001815181106132795761327961394e565b6001600160a01b03928316602091820292909201015260065461329f91309116846124e0565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906132d8908590600090869030904290600401613a4b565b600060405180830381600087803b1580156132f257600080fd5b505af1158015613306573d6000803e3d6000fd5b505050505050565b6001600160a01b03821660009081526021602052604081205460ff16801561334457506006546001600160a01b03838116911614155b1561335157506001610f36565b6001600160a01b03821660009081526021602052604090205460ff161561337a57506002610f36565b50600092915050565b60006133908260026122a2565b9050600061339e838361249e565b9050476133aa836131b4565b60006133b6478361249e565b90506133c2838261340a565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15050505050565b6006546134229030906001600160a01b0316846124e0565b6006546001600160a01b031663f305d71982308560008061344b6005546001600160a01b031690565b426040518863ffffffff1660e01b815260040161346d969594939291906139bc565b60606040518083038185885af115801561348b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906134b091906139f7565b5050505050565b6001600160a01b038116811461124f57600080fd5b600080604083850312156134df57600080fd5b82356134ea816134b7565b915060208301356134fa816134b7565b809150509250929050565b60006020828403121561351757600080fd5b5035919050565b600060208083528351808285015260005b8181101561354b5785810183015185820160400152820161352f565b506000604082860101526040601f19601f8301168501019250505092915050565b8035801515811461357c57600080fd5b919050565b6000806040838503121561359457600080fd5b823561359f816134b7565b91506135ad6020840161356c565b90509250929050565b600080604083850312156135c957600080fd5b82356135d4816134b7565b946020939093013593505050565b6000602082840312156135f457600080fd5b8135612219816134b7565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561363e5761363e6135ff565b604052919050565b600067ffffffffffffffff821115613660576136606135ff565b5060051b60200190565b600082601f83011261367b57600080fd5b8135602061369061368b83613646565b613615565b82815260059290921b840181019181810190868411156136af57600080fd5b8286015b848110156136ca57803583529183019183016136b3565b509695505050505050565b600080604083850312156136e857600080fd5b823567ffffffffffffffff8082111561370057600080fd5b818501915085601f83011261371457600080fd5b8135602061372461368b83613646565b82815260059290921b8401810191818101908984111561374357600080fd5b948201945b8386101561376a57853561375b816134b7565b82529482019490820190613748565b9650508601359250508082111561378057600080fd5b5061378d8582860161366a565b9150509250929050565b6000806000606084860312156137ac57600080fd5b83356137b7816134b7565b925060208401356137c7816134b7565b929592945050506040919091013590565b6000602082840312156137ea57600080fd5b6122198261356c565b600080600080600060a0868803121561380b57600080fd5b8535613816816134b7565b97602087013597506040870135966060810135965060800135945092505050565b60006020828403121561384957600080fd5b813563ffffffff8116811461221957600080fd5b600080600080600080600080610100898b03121561387a57600080fd5b505086359860208801359850604088013597606081013597506080810135965060a0810135955060c0810135945060e0013592509050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610f3657610f366138e7565b600181811c9082168061392857607f821691505b60208210810361394857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b600060018201613976576139766138e7565b5060010190565b60008261399a57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156139b157600080fd5b8151612219816134b7565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215613a0c57600080fd5b8351925060208401519150604084015190509250925092565b80820180821115610f3657610f366138e7565b81810381811115610f3657610f366138e7565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015613a9b5784516001600160a01b031683529383019391830191600101613a76565b50506001600160a01b0396909616606085015250505060800152939250505056fe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c8964b4e6361485dd65a3c17538f29b99dcbd683fbbbb2f68dd1c67f9987894464736f6c63430008110033