[ { "inputs": [], "stateMutability": "nonpayable", "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": false, "internalType": "uint256", "name": "_maxTxAmount", "type": "uint256" } ], "name": "MaxTxAmountUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_maxWalletSize", "type": "uint256" } ], "name": "MaxWalletSizeUpdated", "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": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amountETH", "type": "uint256" } ], "name": "SendETHRewards", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "SendTokenRewards", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokensSwappedForEth", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "ethAddedForLp", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "tokensAddedForLp", "type": "uint256" } ], "name": "SwapAndLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "whereTo", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "indexed": false, "internalType": "address[]", "name": "path", "type": "address[]" } ], "name": "SwapETHForTokens", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "indexed": false, "internalType": "address[]", "name": "path", "type": "address[]" } ], "name": "SwapTokensForETH", "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" }, { "inputs": [], "name": "MaxTXAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MaxWalletSize", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxTxAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxWalletSize", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maximumBuyAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_pair", "type": "address" } ], "name": "addUniswapPair", "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": "account", "type": "address" } ], "name": "amnestySniper", "outputs": [], "stateMutability": "nonpayable", "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": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "boostRewardsContract", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "boostRewardsPercent", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buybackFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buybackReceiver", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buybackTokenAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "wallet", "type": "address" } ], "name": "calculateETHRewards", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "wallet", "type": "address" }, { "internalType": "address", "name": "tokenAddress", "type": "address" } ], "name": "calculateTokenRewards", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "canClaimRewards", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claimETHRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "claimTokenRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "deadAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tAmount", "type": "uint256" } ], "name": "deliver", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "wallet", "type": "address" } ], "name": "eligibleForRewardBooster", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "emergencyWithdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "ethRewardsBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ethRewardsFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "excludeFromFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "excludeFromReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "feeExclusionContract", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "feeRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "feeSellMultiplier", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "wallet", "type": "address" } ], "name": "getLastETHRewardsClaim", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "seller", "type": "address" } ], "name": "getSellSlippage", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "includeInFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "includeInReward", "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": [], "name": "initContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromFee", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromReward", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isRemovedSniper", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_pair", "type": "address" } ], "name": "isUniswapPair", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launchTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "manualswap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "openTrade", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "reflectionFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tAmount", "type": "uint256" }, { "internalType": "bool", "name": "deductTransferFee", "type": "bool" } ], "name": "reflectionFromToken", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "removeSniper", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_pair", "type": "address" } ], "name": "removeUniswapPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rewardsClaimTimeSeconds", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_contract", "type": "address" } ], "name": "setBoostRewardsContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "perc", "type": "uint256" } ], "name": "setBoostRewardsPercent", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_receiver", "type": "address" } ], "name": "setBuybackReceiver", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_tokenAddress", "type": "address" } ], "name": "setBuybackTokenAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_contract", "type": "address" } ], "name": "setFeeExclusionContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_rate", "type": "uint256" } ], "name": "setFeeRate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "multiplier", "type": "uint256" } ], "name": "setFeeSellMultiplier", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "setIsMaxBuyActivated", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "maxTxAmountPercetange", "type": "uint256" } ], "name": "setMaxTxnAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "maxWalletSizePercentage", "type": "uint256" } ], "name": "setMaxWalletSize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_reflectionNewFee", "type": "uint256" }, { "internalType": "uint256", "name": "_treasuryNewFee", "type": "uint256" }, { "internalType": "uint256", "name": "_ethRewardsNewFee", "type": "uint256" }, { "internalType": "uint256", "name": "_buybackRewardsNewFee", "type": "uint256" } ], "name": "setNewFeesPercentages", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_seconds", "type": "uint256" } ], "name": "setRewardsClaimTimeSeconds", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_treasuryWallet", "type": "address" } ], "name": "setTreasuryAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "rAmount", "type": "uint256" } ], "name": "tokenFromReflection", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "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": "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": "treasuryFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "treasuryWallet", "outputs": [ { "internalType": "address payable", "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": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
6080604052600180546001600160a01b031916733489723afea05252bd5bf239c4e901a02510283417905561546060075561003c6009600a610331565b61004b9064e8d4a5100061033f565b610056905f1961036a565b610061905f1961037d565b600c555f600e819055600f55600660108190556011556001601281905560138190556015819055601655601780546001600160a01b03199081167323464fb65ff1a8e7a9a1318dfa56185a4950cf8b1790915560188054909116301790556002601955600a601a8190556032601c556022805463ffff000019166301000000179055610119906103e890610113906005906100fe90600990610331565b61010d9064e8d4a5100061033f565b906101cc565b906101e0565b602355610132606461011360026100fe6009600a610331565b60245561014c6103e861011360036100fe6009600a610331565b60255534801561015a575f80fd5b50610164336101eb565b600c54335f81815260026020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101a76009600a610331565b6101b69064e8d4a5100061033f565b60405190815260200160405180910390a36103a3565b5f6101d7828461033f565b90505b92915050565b5f6101d78284610390565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156102895780850481111561026d5761026d61023a565b600184161561027b57908102905b60019390931c928002610252565b935093915050565b5f8261029f575060016101da565b816102ab57505f6101da565b81600181146102c157600281146102cb576102e7565b60019150506101da565b60ff8411156102dc576102dc61023a565b50506001821b6101da565b5060208310610133831016604e8410600b841016171561030a575081810a6101da565b6103165f19848461024e565b805f19048211156103295761032961023a565b029392505050565b5f6101d760ff841683610291565b80820281158282048414176101da576101da61023a565b634e487b7160e01b5f52601260045260245ffd5b5f8261037857610378610356565b500690565b818103818111156101da576101da61023a565b5f8261039e5761039e610356565b500490565b61463d806103b05f395ff3fe608060405260043610610450575f3560e01c806370a0823111610236578063a6931ed711610134578063d94fc430116100b3578063ea2f0b3711610078578063ea2f0b3714610cef578063f2fde38b14610d0e578063f4234ad714610d2d578063f709300d14610d42578063fb201b1d14610d61575f80fd5b8063d94fc43014610c3a578063db2e21bc14610c59578063dc6571eb14610c6d578063dd62ed3e14610c8c578063ea1644d514610cd0575f80fd5b8063b74411e1116100f9578063b74411e114610ba9578063bd008d0414610bc8578063c5b3442214610be7578063cc32d17614610c06578063d0c4834214610c1b575f80fd5b8063a6931ed714610b19578063a7f404e214610b38578063a9059cbb14610b57578063a9b47a6614610b76578063b4b72c1d14610b95575f80fd5b80638da5cb5b116101c0578063978bbdb911610185578063978bbdb914610a925780639a1313db14610aa75780639cece12e14610abc5780639f13157114610adb578063a457c2d714610afa575f80fd5b80638da5cb5b14610a235780638ef588fc14610a3f5780638f9a55c014610a5e57806392d9029d14610a7357806395d89b411461047c575f80fd5b80637d1db4a5116102065780637d1db4a51461098f5780638203f5fe146109a457806383ad7994146109b8578063881dce60146109cd57806388f82020146109ec575f80fd5b806370a0823114610928578063715018a61461094757806374010ece1461095b578063790ca4131461097a575f80fd5b806335e0edb01161034e5780634549b039116102cd57806352390c021161029257806352390c02146108755780635342acb4146108945780636028c2a6146108b3578063610d5b19146108d25780636605bfda14610909575f80fd5b80634549b039146107e457806345596e2e146108035780634626402b1461082257806349bd5a5e146108415780634fa33dd714610860575f80fd5b80633bd5d173116103135780633bd5d1731461074957806340276a881461076857806340ea75131461077c57806343558a9114610791578063437823ec146107c5575f80fd5b806335e0edb0146106b85780633685d419146106d757806339509351146106f65780633a17fd67146107155780633b2d081c14610734575f80fd5b80631f0cff72116103da57806329b8cff31161039f57806329b8cff3146106365780632d8381191461064a5780632eac5b6f14610669578063313ce5671461067e57806333251a0b14610699575f80fd5b80631f0cff72146105af5780632014e5d6146105ce5780632355c9f8146105e357806323b872dd1461060257806327c8f83514610621575f80fd5b80630e1c80b9116104205780630e1c80b91461050857806313114a9d146105275780631694505e1461054557806318160ddd1461057c5780631df59e2f14610590575f80fd5b806306aa52f91461045b57806306fdde031461047c578063095ea7b3146104ba5780630b2a808c146104e9575f80fd5b3661045757005b5f80fd5b348015610466575f80fd5b5061047a61047536600461407c565b610d75565b005b348015610487575f80fd5b506040805180820182526007815266149151931150d560ca1b602082015290516104b19190614097565b60405180910390f35b3480156104c5575f80fd5b506104d96104d43660046140cc565b610fbd565b60405190151581526020016104b1565b3480156104f4575f80fd5b5061047a61050336600461407c565b610fd3565b348015610513575f80fd5b5061047a61052236600461407c565b61116e565b348015610532575f80fd5b50600d545b6040519081526020016104b1565b348015610550575f80fd5b50601f54610564906001600160a01b031681565b6040516001600160a01b0390911681526020016104b1565b348015610587575f80fd5b506105376112c1565b34801561059b575f80fd5b50601854610564906001600160a01b031681565b3480156105ba575f80fd5b506104d96105c936600461407c565b6112e2565b3480156105d9575f80fd5b5061053760125481565b3480156105ee575f80fd5b5061047a6105fd36600461407c565b611366565b34801561060d575f80fd5b506104d961061c3660046140f6565b6114b9565b34801561062c575f80fd5b5061056461dead81565b348015610641575f80fd5b50602454610537565b348015610655575f80fd5b50610537610664366004614134565b611520565b348015610674575f80fd5b5061053760255481565b348015610689575f80fd5b50604051600981526020016104b1565b3480156106a4575f80fd5b5061047a6106b336600461407c565b6115a2565b3480156106c3575f80fd5b5061047a6106d2366004614134565b611705565b3480156106e2575f80fd5b5061047a6106f136600461407c565b611784565b348015610701575f80fd5b506104d96107103660046140cc565b611900565b348015610720575f80fd5b5061053761072f36600461414b565b611935565b34801561073f575f80fd5b5061053760155481565b348015610754575f80fd5b5061047a610763366004614134565b611a45565b348015610773575f80fd5b50602354610537565b348015610787575f80fd5b5061053760075481565b34801561079c575f80fd5b506105376107ab36600461407c565b6001600160a01b03165f9081526008602052604090205490565b3480156107d0575f80fd5b5061047a6107df36600461407c565b611b2c565b3480156107ef575f80fd5b506105376107fe36600461418f565b611b78565b34801561080e575f80fd5b5061047a61081d366004614134565b611c1c565b34801561082d575f80fd5b50600154610564906001600160a01b031681565b34801561084c575f80fd5b50602054610564906001600160a01b031681565b34801561086b575f80fd5b5061053760195481565b348015610880575f80fd5b5061047a61088f36600461407c565b611c4a565b34801561089f575f80fd5b506104d96108ae36600461407c565b611d97565b3480156108be575f80fd5b5061047a6108cd3660046141b2565b611dff565b3480156108dd575f80fd5b506104d96108ec36600461407c565b6001600160a01b03165f9081526005602052604090205460ff1690565b348015610914575f80fd5b5061047a61092336600461407c565b611eac565b348015610933575f80fd5b5061053761094236600461407c565b611f0f565b348015610952575f80fd5b5061047a611f6b565b348015610966575f80fd5b5061047a610975366004614134565b611f9f565b348015610985575f80fd5b50610537601b5481565b34801561099a575f80fd5b5061053760235481565b3480156109af575f80fd5b5061047a612115565b3480156109c3575f80fd5b50610537600e5481565b3480156109d8575f80fd5b5061047a6109e7366004614134565b612306565b3480156109f7575f80fd5b506104d9610a0636600461407c565b6001600160a01b03165f908152600a602052604090205460ff1690565b348015610a2e575f80fd5b505f546001600160a01b0316610564565b348015610a4a575f80fd5b5061047a610a5936600461407c565b61238d565b348015610a69575f80fd5b5061053760245481565b348015610a7e575f80fd5b5061047a610a8d366004614134565b6123d8565b348015610a9d575f80fd5b50610537601a5481565b348015610ab2575f80fd5b5061053760145481565b348015610ac7575f80fd5b506104d9610ad636600461407c565b6124a5565b348015610ae6575f80fd5b5061047a610af53660046141e1565b6124e3565b348015610b05575f80fd5b506104d9610b143660046140cc565b61252a565b348015610b24575f80fd5b5061047a610b3336600461407c565b612577565b348015610b43575f80fd5b5061047a610b5236600461407c565b6125c0565b348015610b62575f80fd5b506104d9610b713660046140cc565b61260c565b348015610b81575f80fd5b506104d9610b9036600461407c565b612618565b348015610ba0575f80fd5b5061047a612671565b348015610bb4575f80fd5b5061047a610bc336600461407c565b6127c0565b348015610bd3575f80fd5b5061047a610be2366004614134565b61280b565b348015610bf2575f80fd5b50601d54610564906001600160a01b031681565b348015610c11575f80fd5b5061053760105481565b348015610c26575f80fd5b50610537610c3536600461407c565b612839565b348015610c45575f80fd5b50601754610564906001600160a01b031681565b348015610c64575f80fd5b5061047a6128af565b348015610c78575f80fd5b50610537610c8736600461407c565b612902565b348015610c97575f80fd5b50610537610ca636600461414b565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b348015610cdb575f80fd5b5061047a610cea366004614134565b612965565b348015610cfa575f80fd5b5061047a610d0936600461407c565b612aa1565b348015610d19575f80fd5b5061047a610d2836600461407c565b612aea565b348015610d38575f80fd5b50610537601c5481565b348015610d4d575f80fd5b50601e54610564906001600160a01b031681565b348015610d6c575f80fd5b5061047a612b81565b5f610d7f33611f0f565b11610de25760405162461bcd60e51b815260206004820152602860248201527f596f75206d757374206861766520612062616c616e636520746f20636c61696d604482015267207265776172647360c01b60648201526084015b60405180910390fd5b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610e26573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e4a91906141fc565b11610ead5760405162461bcd60e51b815260206004820152602d60248201527f5765206d7573742068617665206120746f6b656e2062616c616e636520746f2060448201526c636c61696d207265776172647360981b6064820152608401610dd9565b610eb633612618565b610ed25760405162461bcd60e51b8152600401610dd990614213565b335f81815260086020526040812042905590610eee9083611935565b90506001600160a01b03821663a9059cbb336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610f4a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f6e9190614261565b50604080513381526001600160a01b03841660208201529081018290527f461310925e682d8354b34f2245c1ea43ea9a27ceea708a1be23757f31eb88b4f906060015b60405180910390a15050565b5f610fc9338484612bd9565b5060015b92915050565b5f546001600160a01b03163314610ffc5760405162461bcd60e51b8152600401610dd99061427c565b6001600160a01b0381165f9081526005602052604090205460ff166110635760405162461bcd60e51b815260206004820152601a60248201527f4163636f756e74206973206e6f7420626c61636b6c69737465640000000000006044820152606401610dd9565b5f5b60065481101561116a57816001600160a01b03166006828154811061108c5761108c6142b1565b5f918252602090912001546001600160a01b03160361116257600680546110b5906001906142d9565b815481106110c5576110c56142b1565b5f91825260209091200154600680546001600160a01b0390921691839081106110f0576110f06142b1565b5f91825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600590915260409020805460ff19169055600680548061113e5761113e6142ec565b5f8281526020902081015f1990810180546001600160a01b03191690550190555050565b600101611065565b5050565b5f546001600160a01b031633146111975760405162461bcd60e51b8152600401610dd99061427c565b6001600160a01b0381161561129f57604051632b35867560e11b81525f600482015281906001600160a01b0382169063566b0cea90602401602060405180830381865afa1580156111ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061120e9190614261565b1515600114806112815750604051632b35867560e11b81525f60048201526001600160a01b0382169063566b0cea90602401602060405180830381865afa15801561125b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061127f9190614261565b155b61129d5760405162461bcd60e51b8152600401610dd990614300565b505b601e80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6112ce6009600a614428565b6112dd9064e8d4a51000614436565b905090565b601d545f906001600160a01b031615801590610fcd5750601d54604051632b35867560e11b81526001600160a01b0384811660048301529091169063566b0cea906024015b602060405180830381865afa158015611342573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fcd9190614261565b5f546001600160a01b0316331461138f5760405162461bcd60e51b8152600401610dd99061427c565b6001600160a01b0381161561149757604051632b35867560e11b81525f600482015281906001600160a01b0382169063566b0cea90602401602060405180830381865afa1580156113e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114069190614261565b1515600114806114795750604051632b35867560e11b81525f60048201526001600160a01b0382169063566b0cea90602401602060405180830381865afa158015611453573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114779190614261565b155b6114955760405162461bcd60e51b8152600401610dd990614300565b505b601d80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6114c5848484612cfc565b6115168433611511856040518060600160405280602881526020016145bb602891396001600160a01b038a165f90815260046020908152604080832033845290915290205491906133be565b612bd9565b5060019392505050565b5f600c548211156115865760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610dd9565b5f61158f6133e9565b905061159b838261340a565b9392505050565b5f546001600160a01b031633146115cb5760405162461bcd60e51b8152600401610dd99061427c565b737a250d5630b4cf539739df2c5dacb4c659f2488c196001600160a01b038216016116385760405162461bcd60e51b815260206004820152601c60248201527f57652063616e206e6f7420626c61636b6c69737420556e6973776170000000006044820152606401610dd9565b6001600160a01b0381165f9081526005602052604090205460ff16156116a05760405162461bcd60e51b815260206004820152601e60248201527f4163636f756e7420697320616c726561647920626c61636b6c697374656400006044820152606401610dd9565b6001600160a01b03165f818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b5f546001600160a01b0316331461172e5760405162461bcd60e51b8152600401610dd99061427c565b600281111561177f5760405162461bcd60e51b815260206004820152601f60248201527f6d757374206265206c657373207468616e206f7220657175616c20746f2032006044820152606401610dd9565b601955565b5f546001600160a01b031633146117ad5760405162461bcd60e51b8152600401610dd99061427c565b6001600160a01b0381165f908152600a602052604090205460ff166118145760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610dd9565b5f5b600b5481101561116a57816001600160a01b0316600b828154811061183d5761183d6142b1565b5f918252602090912001546001600160a01b0316036118f857600b8054611866906001906142d9565b81548110611876576118766142b1565b5f91825260209091200154600b80546001600160a01b0390921691839081106118a1576118a16142b1565b5f91825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600382526040808220829055600a90925220805460ff19169055600b80548061113e5761113e6142ec565b600101611816565b335f8181526004602090815260408083206001600160a01b03871684529091528120549091610fc99185906115119086613415565b6040516370a0823160e01b81523060048201525f90829082906001600160a01b038316906370a0823190602401602060405180830381865afa15801561197d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119a191906141fc565b90505f6119ef6119d66119b561dead611f0f565b6119c16009600a614428565b6119d09064e8d4a51000614436565b90613420565b6119e96119e289611f0f565b859061342b565b9061340a565b90505f6119fb876112e2565b611a055781611a29565b611a29611a2260646119e9601c548661342b90919063ffffffff16565b8390613415565b9050828111611a385780611a3a565b815b979650505050505050565b335f818152600a602052604090205460ff1615611ab95760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b6064820152608401610dd9565b5f611ac48284613436565b505050506001600160a01b0384165f90815260026020526040902054919250611aef91905082613420565b6001600160a01b0383165f90815260026020526040902055600c54611b149082613420565b600c55600d54611b249084613415565b600d55505050565b5f546001600160a01b03163314611b555760405162461bcd60e51b8152600401610dd99061427c565b6001600160a01b03165f908152600960205260409020805460ff19166001179055565b5f611b856009600a614428565b611b949064e8d4a51000614436565b831115611be35760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610dd9565b81611c02575f611bf35f85613436565b50939550610fcd945050505050565b5f611c0d5f85613436565b50929550610fcd945050505050565b5f546001600160a01b03163314611c455760405162461bcd60e51b8152600401610dd99061427c565b601a55565b5f546001600160a01b03163314611c735760405162461bcd60e51b8152600401610dd99061427c565b6001600160a01b0381165f908152600a602052604090205460ff1615611cdb5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610dd9565b6001600160a01b0381165f9081526002602052604090205415611d32576001600160a01b0381165f90815260026020526040902054611d1990611520565b6001600160a01b0382165f908152600360205260409020555b6001600160a01b03165f818152600a60205260408120805460ff19166001908117909155600b805491820181559091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319169091179055565b6001600160a01b0381165f9081526009602052604081205460ff1680610fcd5750601e546001600160a01b031615801590610fcd5750601e54604051632b35867560e11b81526001600160a01b0384811660048301529091169063566b0cea90602401611327565b5f546001600160a01b03163314611e285760405162461bcd60e51b8152600401610dd99061427c565b600a8183611e36868861444d565b611e40919061444d565b611e4a919061444d565b1115611e985760405162461bcd60e51b815260206004820152601d60248201527f5461782063616e6e6f7420626520686967686572207468616e203130250000006044820152606401610dd9565b600e93909355601091909155601255601555565b5f546001600160a01b03163314611ed55760405162461bcd60e51b8152600401610dd99061427c565b600180546001600160a01b039092166001600160a01b0319909216821781555f91825260096020526040909120805460ff19169091179055565b6001600160a01b0381165f908152600a602052604081205460ff1615611f4a57506001600160a01b03165f9081526003602052604090205490565b6001600160a01b0382165f90815260026020526040902054610fcd90611520565b5f546001600160a01b03163314611f945760405162461bcd60e51b8152600401610dd99061427c565b611f9d5f613482565b565b5f546001600160a01b03163314611fc85760405162461bcd60e51b8152600401610dd99061427c565b6103e881106120385760405162461bcd60e51b815260206004820152603660248201527f4d6178696d756d20616d6f756e7420706572207472616e73616374696f6e206d604482015275757374206265206c6f776572207468616e203130302560501b6064820152608401610dd9565b600181116120ae5760405162461bcd60e51b815260206004820152603760248201527f4d6178696d756d20616d6f756e7420706572207472616e73616374696f6e206d60448201527f75737420626520686967686572207468616e20302e31250000000000000000006064820152608401610dd9565b6120d96103e86119e9836120c46009600a614428565b6120d39064e8d4a51000614436565b9061342b565b60238190556040519081527f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf906020015b60405180910390a150565b5f546001600160a01b0316331461213e5760405162461bcd60e51b8152600401610dd99061427c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612192573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121b69190614460565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612201573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122259190614460565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561226f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122939190614460565b602080546001600160a01b03199081166001600160a01b03938416178255601f8054909116938316939093179092555f80548216815260099092526040808320805460ff199081166001908117909255308552828520805482168317905581549093168452922080549091169091179055565b5f546001600160a01b0316331461232f5760405162461bcd60e51b8152600401610dd99061427c565b61233830611f0f565b811115801561234657505f81115b6123815760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b6044820152606401610dd9565b61238a816134d1565b50565b5f546001600160a01b031633146123b65760405162461bcd60e51b8152600401610dd99061427c565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146124015760405162461bcd60e51b8152600401610dd99061427c565b62093a808111156124a05760405162461bcd60e51b815260206004820152605760248201527f636c61696d2074696d652064656c6179206d757374206265206772656174657260448201527f206f7220657175616c20746f2030207365636f6e647320616e64206c6573732060648201527f7468616e206f7220657175616c20746f20372064617973000000000000000000608482015260a401610dd9565b600755565b6020545f906001600160a01b03908116908316036124c557506001919050565b506001600160a01b03165f9081526021602052604090205460ff1690565b5f546001600160a01b0316331461250c5760405162461bcd60e51b8152600401610dd99061427c565b6022805491151563010000000263ff00000019909216919091179055565b5f610fc93384611511856040518060600160405280602581526020016145e360259139335f9081526004602090815260408083206001600160a01b038d16845290915290205491906133be565b5f546001600160a01b031633146125a05760405162461bcd60e51b8152600401610dd99061427c565b6001600160a01b03165f908152602160205260409020805460ff19169055565b5f546001600160a01b031633146125e95760405162461bcd60e51b8152600401610dd99061427c565b6001600160a01b03165f908152602160205260409020805460ff19166001179055565b5f610fc9338484612cfc565b6001600160a01b0381165f90815260086020526040812054810361264d57600754601b5461264591613415565b421192915050565b6007546001600160a01b0383165f9081526008602052604090205461264591613415565b5f61267b33611f0f565b116126dd5760405162461bcd60e51b815260206004820152602c60248201527f596f75206d757374206861766520612062616c616e636520746f20636c61696d60448201526b20455448207265776172647360a01b6064820152608401610dd9565b6126e633612618565b6127025760405162461bcd60e51b8152600401610dd990614213565b335f8181526008602052604081204290559061271d90612839565b90508060145f82825461273091906142d9565b9091555050604051339082905f81818185875af1925050503d805f8114612772576040519150601f19603f3d011682016040523d82523d5f602084013e612777565b606091505b5050507f7d8a5d8268a1c264e8bb2e0a542db0263a9f1ab2759a8594a1302e73c8096ce76127a23390565b604080516001600160a01b039092168252602082018490520161210a565b5f546001600160a01b031633146127e95760405162461bcd60e51b8152600401610dd99061427c565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146128345760405162461bcd60e51b8152600401610dd99061427c565b601c55565b5f8061286161284c6119b561dead611f0f565b6119e961285886611f0f565b6014549061342b565b90505f61286d846112e2565b6128775781612894565b612894611a2260646119e9601c548661342b90919063ffffffff16565b905060145481116128a557806128a7565b815b949350505050565b5f546001600160a01b031633146128d85760405162461bcd60e51b8152600401610dd99061427c565b5f80546040516001600160a01b03909116914780156108fc02929091818181858888f15050505050565b5f8061292760155461292160125460105461341590919063ffffffff16565b90613415565b905061293283611d97565b61295d5761293f83612618565b1561294a578061159b565b60195461295890829061342b565b61159b565b5f9392505050565b5f546001600160a01b0316331461298e5760405162461bcd60e51b8152600401610dd99061427c565b6103e881106129f35760405162461bcd60e51b815260206004820152602b60248201527f4d6178696d756d2077616c6c65742073697a65206d757374206265206c6f776560448201526a72207468616e203130302560a81b6064820152608401610dd9565b60148111612a565760405162461bcd60e51b815260206004820152602a60248201527f4d6178696d756d2077616c6c65742073697a65206d75737420626520686967686044820152696572207468616e20322560b01b6064820152608401610dd9565b612a6c6103e86119e9836120c46009600a614428565b60248190556040519081527ffb1fe1002b7550e87616e67793dbb7d3f437a79c2688c372c66dc170dbcb0efd9060200161210a565b5f546001600160a01b03163314612aca5760405162461bcd60e51b8152600401610dd99061427c565b6001600160a01b03165f908152600960205260409020805460ff19169055565b5f546001600160a01b03163314612b135760405162461bcd60e51b8152600401610dd99061427c565b6001600160a01b038116612b785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610dd9565b61238a81613482565b5f546001600160a01b03163314612baa5760405162461bcd60e51b8152600401610dd99061427c565b601154601055601354601255600f54600e556016546015556022805462ff000019166201000017905542601b55565b6001600160a01b038316612c3b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610dd9565b6001600160a01b038216612c9c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610dd9565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316612d605760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610dd9565b6001600160a01b038216612dc25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610dd9565b5f8111612e235760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610dd9565b6001600160a01b0382165f9081526005602052604090205460ff1615612e5b5760405162461bcd60e51b8152600401610dd99061447b565b6001600160a01b0383165f9081526005602052604090205460ff1615612e935760405162461bcd60e51b8152600401610dd99061447b565b335f9081526005602052604090205460ff1615612ec25760405162461bcd60e51b8152600401610dd99061447b565b6020546001600160a01b0383811691161480612ef557506001600160a01b0382165f9081526021602052604090205460ff165b8015612f0f5750601f546001600160a01b03848116911614155b8015612f215750612f1f82611d97565b155b8015612f335750612f3183611d97565b155b15612f8a57602354811115612f8a5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610dd9565b6020546001600160a01b03838116911614801590612fc057506001600160a01b0382165f9081526021602052604090205460ff16155b8015612fd25750612fd082611d97565b155b8015612fe45750612fe283611d97565b155b156130c45760245481612ff684611f0f565b613000919061444d565b106130595760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610dd9565b6022546301000000900460ff16156130c457601b5461307a9061070861444d565b42116130c4576025548111156130c45760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40daeac6d608b1b6044820152606401610dd9565b6001600160a01b038083165f90815260086020908152604082204290555490918581169116148061310c57506001600160a01b0384165f9081526021602052604090205460ff165b80156131265750601f546001600160a01b03848116911614155b156132215761313483611d97565b61321d5760225462010000900460ff166131905760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e00000000000000006044820152606401610dd9565b601b5442036131fe576001600160a01b0383165f818152600560205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b03191690911790555b6001600160a01b0384165f908152600860205260409020429055613221565b5060015b60225460ff1615801561323c575060225462010000900460ff165b801561327657506020546001600160a01b038481169116148061327657506001600160a01b0383165f9081526021602052604090205460ff165b1561331e575f61328530611f0f565b905080156132e857601a546020546132b1916064916119e991906120d3906001600160a01b0316611f0f565b8111156132df57601a546020546132dc916064916119e991906120d3906001600160a01b0316611f0f565b90505b6132e8816134d1565b6001600160a01b0385165f9081526008602052604090204290556022805461ff00191661010017905561331a85611d97565b9150505b6020545f906001600160a01b038681169116148061334957506020546001600160a01b038581169116145b8061336b57506001600160a01b0384165f9081526021602052604090205460ff165b8061338d57506001600160a01b0385165f9081526021602052604090205460ff165b8015613397575081155b156133a0575060015b6133ac8585858461359b565b50506022805461ff0019169055505050565b5f81848411156133e15760405162461bcd60e51b8152600401610dd99190614097565b505050900390565b5f805f6133f46136cc565b9092509050613403828261340a565b9250505090565b5f61159b82846144a2565b5f61159b828461444d565b5f61159b82846142d9565b5f61159b8284614436565b5f805f805f805f805f6134498b8b61389e565b9250925092505f805f6134658d86866134606133e9565b6138d8565b919d509b5099509497509295509093505050509295509295509295565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6022805460ff19166001179055476134e882613924565b475f6134f48284613420565b90505f6135005f613aa1565b905061351b816119e96012548561342b90919063ffffffff16565b60145f82825461352b919061444d565b925050819055505f61354c826119e96010548661342b90919063ffffffff16565b9050801561355d5761355d81613af4565b5f613577836119e96015548761342b90919063ffffffff16565b905080156135885761358881613b3e565b50506022805460ff191690555050505050565b806135a8576135a8613cc6565b6001600160a01b0384165f908152600a602052604090205460ff1680156135e757506001600160a01b0383165f908152600a602052604090205460ff16155b156135fc576135f7848484613d20565b6136a4565b6001600160a01b0384165f908152600a602052604090205460ff1615801561363b57506001600160a01b0383165f908152600a602052604090205460ff165b1561364b576135f7848484613e40565b6001600160a01b0384165f908152600a602052604090205460ff16801561368957506001600160a01b0383165f908152600a602052604090205460ff165b15613699576135f7848484613ee4565b6136a4848484613f53565b806136c6576136c6600f54600e55601154601055601354601255601654601555565b50505050565b600c545f908190816136e06009600a614428565b6136ef9064e8d4a51000614436565b90505f5b600b5481101561383e578260025f600b8481548110613714576137146142b1565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054118061377c57508160035f600b8481548110613756576137566142b1565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b156137aa57600c546137906009600a614428565b61379f9064e8d4a51000614436565b945094505050509091565b6137ee60025f600b84815481106137c3576137c36142b1565b5f9182526020808320909101546001600160a01b031683528201929092526040019020548490613420565b925061383460035f600b8481548110613809576138096142b1565b5f9182526020808320909101546001600160a01b031683528201929092526040019020548390613420565b91506001016136f3565b5061386661384e6009600a614428565b61385d9064e8d4a51000614436565b600c549061340a565b82101561389557600c5461387c6009600a614428565b61388b9064e8d4a51000614436565b9350935050509091565b90939092509050565b5f805f806138ab85613f94565b90505f6138b88787613faf565b90505f6138c9826119d08986613420565b95509193509150509250925092565b5f8080806138e6888661342b565b90505f6138f3888761342b565b90505f613900888861342b565b90505f613911826119d08686613420565b939b939a50919850919650505050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110613957576139576142b1565b6001600160a01b03928316602091820292909201810191909152601f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156139ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139d29190614460565b816001815181106139e5576139e56142b1565b6001600160a01b039283166020918202929092010152601f54613a0b9130911684612bd9565b601f5460405163791ac94760e01b81526001600160a01b039091169063791ac94790613a439085905f90869030904290600401614504565b5f604051808303815f87803b158015613a5a575f80fd5b505af1158015613a6c573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051610fb192919061453f565b6022545f908190610100900460ff168015613ac25750613ac083612618565b155b613acd576001613ad1565b6019545b905061159b816120d360155461292160125460105461341590919063ffffffff16565b6001546040516001600160a01b039091169082905f81818185875af1925050503d805f81146136c6576040519150601f19603f3d011682016040523d82523d5f602084013e6136c6565b6040805160028082526060820183525f926020830190803683375050601f54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015613ba5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613bc99190614460565b815f81518110613bdb57613bdb6142b1565b6001600160a01b039283166020918202929092010152601754825191169082906001908110613c0c57613c0c6142b1565b6001600160a01b039283166020918202929092010152601f5460185460405163b6f9de9560e01b81529183169263b6f9de95928692613c57925f928892909116904290600401614557565b5f604051808303818588803b158015613c6e575f80fd5b505af1158015613c80573d5f803e3d5ffd5b50506018546040517fe9d8c77238db27a9c74786624137d346727f868e8e54d82636abf1a2a83448199450610fb193506001600160a01b0390911691508590859061458b565b600e54158015613cd65750601054155b8015613ce25750601254155b8015613cee5750601554155b15613cf557565b600e8054600f556010805460115560128054601355601580546016555f938490559183905582905555565b5f805f805f80613d308988613436565b6001600160a01b038f165f90815260036020526040902054959b50939950919750955093509150613d619088613420565b6001600160a01b038a165f90815260036020908152604080832093909355600290522054613d8f9087613420565b6001600160a01b03808b165f9081526002602052604080822093909355908a1681522054613dbd9086613415565b6001600160a01b0389165f90815260026020526040902055613dde81613fc1565b613de88483614044565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051613e2d91815260200190565b60405180910390a3505050505050505050565b5f805f805f80613e508988613436565b6001600160a01b038f165f90815260026020526040902054959b50939950919750955093509150613e819087613420565b6001600160a01b03808b165f90815260026020908152604080832094909455918b16815260039091522054613eb69084613415565b6001600160a01b0389165f90815260036020908152604080832093909355600290522054613dbd9086613415565b5f805f805f80613ef48988613436565b6001600160a01b038f165f90815260036020526040902054959b50939950919750955093509150613f259088613420565b6001600160a01b038a165f90815260036020908152604080832093909355600290522054613e819087613420565b5f805f805f80613f638988613436565b6001600160a01b038f165f90815260026020526040902054959b50939950919750955093509150613d8f9087613420565b5f610fcd60646119e9600e548561342b90919063ffffffff16565b5f61159b60646119e96119e286613aa1565b5f613fca6133e9565b90505f613fd7838361342b565b305f90815260026020526040902054909150613ff39082613415565b305f90815260026020908152604080832093909355600a9052205460ff161561403f57305f9081526003602052604090205461402f9084613415565b305f908152600360205260409020555b505050565b600c546140519083613420565b600c55600d546140619082613415565b600d555050565b6001600160a01b038116811461238a575f80fd5b5f6020828403121561408c575f80fd5b813561159b81614068565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f80604083850312156140dd575f80fd5b82356140e881614068565b946020939093013593505050565b5f805f60608486031215614108575f80fd5b833561411381614068565b9250602084013561412381614068565b929592945050506040919091013590565b5f60208284031215614144575f80fd5b5035919050565b5f806040838503121561415c575f80fd5b823561416781614068565b9150602083013561417781614068565b809150509250929050565b801515811461238a575f80fd5b5f80604083850312156141a0575f80fd5b82359150602083013561417781614182565b5f805f80608085870312156141c5575f80fd5b5050823594602084013594506040840135936060013592509050565b5f602082840312156141f1575f80fd5b813561159b81614182565b5f6020828403121561420c575f80fd5b5051919050565b6020808252602e908201527f4d757374207761697420636c61696d20706572696f64206265666f726520636c60408201526d61696d696e67207265776172647360901b606082015260800190565b5f60208284031215614271575f80fd5b815161159b81614182565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b81810381811115610fcd57610fcd6142c5565b634e487b7160e01b5f52603160045260245ffd5b60208082526025908201527f636f6e747261637420646f6573206e6f7420696d706c656d656e7420696e7465604082015264726661636560d81b606082015260800190565b6001815b600184111561438057808504811115614364576143646142c5565b600184161561437257908102905b60019390931c928002614349565b935093915050565b5f8261439657506001610fcd565b816143a257505f610fcd565b81600181146143b857600281146143c2576143de565b6001915050610fcd565b60ff8411156143d3576143d36142c5565b50506001821b610fcd565b5060208310610133831016604e8410600b8410161715614401575081810a610fcd565b61440d5f198484614345565b805f1904821115614420576144206142c5565b029392505050565b5f61159b60ff841683614388565b8082028115828204841417610fcd57610fcd6142c5565b80820180821115610fcd57610fcd6142c5565b5f60208284031215614470575f80fd5b815161159b81614068565b6020808252600d908201526c53746f7020736e6970696e672160981b604082015260600190565b5f826144bc57634e487b7160e01b5f52601260045260245ffd5b500490565b5f8151808452602084019350602083015f5b828110156144fa5781516001600160a01b03168652602095860195909101906001016144d3565b5093949350505050565b85815284602082015260a060408201525f61452260a08301866144c1565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f6128a760408301846144c1565b848152608060208201525f61456f60808301866144c1565b6001600160a01b03949094166040830152506060015292915050565b60018060a01b0384168152826020820152606060408201525f6145b160608301846144c1565b9594505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220405d3a312992fe6b1096add2bb34ac88f74b209cb45b31c0dac40b82b959d71864736f6c634300081a0033