Loading
[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountToken", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountETH", "type": "uint256" } ], "name": "AddLiquidity", "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": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amountToken", "type": "uint256" } ], "name": "SendToMarketing", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "router", "type": "address" }, { "indexed": true, "internalType": "address", "name": "pair", "type": "address" } ], "name": "SwapRouterUpdated", "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": "BURN_ADDRESS", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DENIED_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "EXCLUDED_FROM_ANTIWHALE_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "EXCLUDED_FROM_FEE_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_FEE", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_TOKEN_PER_WALLET", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "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": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedAntiWhale", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": "pairAddress", "type": "address" } ], "name": "isLpPool", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidityOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "marketingAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "marketingFee", "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": "numTokensToSwap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "minAmountOut", "type": "uint256" } ], "name": "processFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "processFeesEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pairAddress", "type": "address" }, { "internalType": "bool", "name": "isLp", "type": "bool" } ], "name": "setIsLpPool", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_liquidityFee", "type": "uint256" } ], "name": "setLiquidityFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "setLiquidityOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newAddress", "type": "address" } ], "name": "setMarketingAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_marketingFee", "type": "uint256" } ], "name": "setMarketingFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "setNumTokensToSwap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" } ], "name": "setProcessFeesEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapPair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapRouter", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newRouter", "type": "address" } ], "name": "updateSwapRouter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
608060405260c86006556103e8600755600880546001600160a01b03191673fef90843630d43869877769de31fc9aa8d6252f8179055600b805460ff60a01b1916600160a01b17905562000055600a8062000a5d565b6200006490623d090062000a75565b600c553480156200007457600080fd5b50604080518082018252600d81526c25a7a6a822aa22902a37b5b2b760991b6020808301918252835180850190945260078452664b4f4d5045544560c81b908401528151919291620000c991600391620008a4565b508051620000df906004906020840190620008a4565b50620000eb9150503390565b600b80546001600160a01b03929092166001600160a01b031992831617905560098054909116737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000168573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018e919062000a97565b6001600160a01b031663c9c6539630600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000217919062000a97565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000265573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028b919062000a97565b600a80546001600160a01b0319166001600160a01b039290921691821790556000908152600d60205260408120805460ff19166001179055620002d690620002d03390565b620006f5565b620002f16000805160206200301883398151915233620006f5565b6200030c6000805160206200301883398151915230620006f5565b600854620003349060008051602062003018833981519152906001600160a01b0316620006f5565b620003636000805160206200301883398151915273fd7d7a2175706e5555aab0aaaf2251c6bc691ffc620006f5565b62000392600080516020620030188339815191527330ea798cb8aa2392f3016f4962e69365e50cd001620006f5565b620003c160008051602062003018833981519152735d2c31eeac483000dd6120233afaaa0535e9c6ed620006f5565b620003f060008051602062003018833981519152735623225f296be00ec9db43f3ded96804f24b062d620006f5565b6200041f600080516020620030188339815191527399b3208625e252ea0fbbe9b63e6004b06489d094620006f5565b6200044e6000805160206200301883398151915273596e5556cf23b30e6c2c4c60de216f66551c0220620006f5565b6200047d60008051602062003018833981519152739406609b3057053573f8d5418c1cbfaac5161f21620006f5565b620004ac600080516020620030188339815191527371fc956eee0c97b095b70f6b1b263147a6d6799a620006f5565b620004c76000805160206200303883398151915233620006f5565b620004e26000805160206200303883398151915230620006f5565b600a546200050a9060008051602062003038833981519152906001600160a01b0316620006f5565b600854620005329060008051602062003038833981519152906001600160a01b0316620006f5565b6200054f6000805160206200303883398151915261dead620006f5565b6200057e6000805160206200303883398151915273fd7d7a2175706e5555aab0aaaf2251c6bc691ffc620006f5565b620005ad600080516020620030388339815191527330ea798cb8aa2392f3016f4962e69365e50cd001620006f5565b620005dc60008051602062003038833981519152735d2c31eeac483000dd6120233afaaa0535e9c6ed620006f5565b6200060b60008051602062003038833981519152735623225f296be00ec9db43f3ded96804f24b062d620006f5565b6200063a600080516020620030388339815191527399b3208625e252ea0fbbe9b63e6004b06489d094620006f5565b620006696000805160206200303883398151915273596e5556cf23b30e6c2c4c60de216f66551c0220620006f5565b6200069860008051602062003038833981519152739406609b3057053573f8d5418c1cbfaac5161f21620006f5565b620006c7600080516020620030388339815191527371fc956eee0c97b095b70f6b1b263147a6d6799a620006f5565b620006ef33620006d9600a8062000a5d565b620006e990633b9aca0062000a75565b62000705565b62000b1a565b620007018282620007ed565b5050565b6001600160a01b038216620007605760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825462000774919062000ac2565b90915550506001600160a01b03821660009081526020819052604081208054839290620007a390849062000ac2565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b620007f9828262000877565b620007015760008281526005602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620008333390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526005602090815260408083206001600160a01b038516845290915290205460ff165b92915050565b828054620008b29062000add565b90600052602060002090601f016020900481019282620008d6576000855562000921565b82601f10620008f157805160ff191683800117855562000921565b8280016001018555821562000921579182015b828111156200092157825182559160200191906001019062000904565b506200092f92915062000933565b5090565b5b808211156200092f576000815560010162000934565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620009a15781600019048211156200098557620009856200094a565b808516156200099357918102915b93841c939080029062000965565b509250929050565b600082620009ba575060016200089e565b81620009c9575060006200089e565b8160018114620009e25760028114620009ed5762000a0d565b60019150506200089e565b60ff84111562000a015762000a016200094a565b50506001821b6200089e565b5060208310610133831016604e8410600b841016171562000a32575081810a6200089e565b62000a3e838362000960565b806000190482111562000a555762000a556200094a565b029392505050565b600062000a6e60ff841683620009a9565b9392505050565b600081600019048311821515161562000a925762000a926200094a565b500290565b60006020828403121562000aaa57600080fd5b81516001600160a01b038116811462000a6e57600080fd5b6000821982111562000ad85762000ad86200094a565b500190565b600181811c9082168062000af257607f821691505b6020821081141562000b1457634e487b7160e01b600052602260045260246000fd5b50919050565b6124ee8062000b2a6000396000f3fe6080604052600436106102c65760003560e01c8063625e764c1161017f578063a457c2d7116100e1578063c9e482331161008a578063dd62ed3e11610064578063dd62ed3e146108a3578063e55096b0146108e9578063fccc28131461090957600080fd5b8063c9e482331461084e578063d547741f14610863578063dca74a191461088357600080fd5b8063b98b677f116100bb578063b98b677f146107e5578063bc063e1a14610805578063c31c9c071461082e57600080fd5b8063a457c2d714610785578063a5ece941146107a5578063a9059cbb146107c557600080fd5b80638e3166bc1161014357806395d89b411161011d57806395d89b411461074557806398118cb41461075a578063a217fddf1461077057600080fd5b80638e3166bc146106ab578063906e9dd0146106df57806391d14854146106ff57600080fd5b8063625e764c146105e65780636b67c4df146106065780636f741f2a1461061c57806370a082311461065557806372bc55831461068b57600080fd5b806326991cc8116102285780633935ebf9116101ec5780633dafaa9c116101c65780633dafaa9c146105715780635342acb4146105a557806361421784146105c557600080fd5b80633935ebf9146104fd578063395093511461051d5780633b46f8691461053d57600080fd5b806326991cc8146104495780632f2ff15d14610481578063313ce567146104a1578063357bf15c146104bd57806336568abe146104dd57600080fd5b80630f569dad1161028a578063194f8f8011610264578063194f8f80146103d957806323b872dd146103f9578063248a9ca31461041957600080fd5b80630f569dad1461038f57806313114a9d146103af57806318160ddd146103c457600080fd5b806301a6c43b146102d257806301ffc9a7146102fb57806306fdde031461032b578063095ea7b31461034d5780630a4e42ef1461036d57600080fd5b366102cd57005b600080fd5b3480156102de57600080fd5b506102e8600c5481565b6040519081526020015b60405180910390f35b34801561030757600080fd5b5061031b610316366004611f5b565b61091f565b60405190151581526020016102f2565b34801561033757600080fd5b50610340610956565b6040516102f29190611fb1565b34801561035957600080fd5b5061031b610368366004611ffc565b6109e8565b34801561037957600080fd5b5061038d610388366004612028565b610a00565b005b34801561039b57600080fd5b5061038d6103aa36600461204a565b610a7f565b3480156103bb57600080fd5b506102e8610a91565b3480156103d057600080fd5b506002546102e8565b3480156103e557600080fd5b5061031b6103f4366004612063565b610aa8565b34801561040557600080fd5b5061031b610414366004612080565b610ae8565b34801561042557600080fd5b506102e861043436600461204a565b60009081526005602052604090206001015490565b34801561045557600080fd5b50600a54610469906001600160a01b031681565b6040516001600160a01b0390911681526020016102f2565b34801561048d57600080fd5b5061038d61049c3660046120c1565b610b0c565b3480156104ad57600080fd5b50604051600a81526020016102f2565b3480156104c957600080fd5b5061038d6104d836600461204a565b610b32565b3480156104e957600080fd5b5061038d6104f83660046120c1565b610ba8565b34801561050957600080fd5b50600b54610469906001600160a01b031681565b34801561052957600080fd5b5061031b610538366004611ffc565b610c34565b34801561054957600080fd5b506102e87fe26365870a4fc4941079bb663ce6252b0cf41101ec800616561f5c0f30dcf7ef81565b34801561057d57600080fd5b506102e87faa2bf0f18a184595f311714f88137302cdcad3d20639b5595c7fe0d3db0658fa81565b3480156105b157600080fd5b5061031b6105c0366004612063565b610c73565b3480156105d157600080fd5b50600b5461031b90600160a01b900460ff1681565b3480156105f257600080fd5b5061038d61060136600461204a565b610cb3565b34801561061257600080fd5b506102e860075481565b34801561062857600080fd5b5061031b610637366004612063565b6001600160a01b03166000908152600d602052604090205460ff1690565b34801561066157600080fd5b506102e8610670366004612063565b6001600160a01b031660009081526020819052604090205490565b34801561069757600080fd5b5061038d6106a6366004612063565b610d29565b3480156106b757600080fd5b506102e87f5df7ebf31955a926cc63dac31c1a31bc588cdae5c3e13e63b89ebfe0eaba875381565b3480156106eb57600080fd5b5061038d6106fa366004612063565b610d58565b34801561070b57600080fd5b5061031b61071a3660046120c1565b60009182526005602090815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561075157600080fd5b50610340610d87565b34801561076657600080fd5b506102e860065481565b34801561077c57600080fd5b506102e8600081565b34801561079157600080fd5b5061031b6107a0366004611ffc565b610d96565b3480156107b157600080fd5b50600854610469906001600160a01b031681565b3480156107d157600080fd5b5061031b6107e0366004611ffc565b610e28565b3480156107f157600080fd5b5061038d610800366004612063565b610e36565b34801561081157600080fd5b5061081b6107d081565b60405161ffff90911681526020016102f2565b34801561083a57600080fd5b50600954610469906001600160a01b031681565b34801561085a57600080fd5b506102e8611064565b34801561086f57600080fd5b5061038d61087e3660046120c1565b61107f565b34801561088f57600080fd5b5061038d61089e366004612106565b6110a5565b3480156108af57600080fd5b506102e86108be366004612121565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156108f557600080fd5b5061038d61090436600461214f565b6110d0565b34801561091557600080fd5b5061046961dead81565b60006001600160e01b03198216637965db0b60e01b148061095057506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606003805461096590612184565b80601f016020809104026020016040519081016040528092919081815260200182805461099190612184565b80156109de5780601f106109b3576101008083540402835291602001916109de565b820191906000526020600020905b8154815290600101906020018083116109c157829003601f168201915b5050505050905090565b6000336109f6818585611108565b5060019392505050565b6000610a0c813361122c565b30600090815260208190526040902054831115610a705760405162461bcd60e51b815260206004820152600f60248201527f416d6f756e7420746f6f2068696768000000000000000000000000000000000060448201526064015b60405180910390fd5b610a7a83836112ac565b505050565b6000610a8b813361122c565b50600c55565b6000600754600654610aa391906121d5565b905090565b6001600160a01b03811660009081527fd6caba9cdcf37e1c9a5d786ad119c56d8efcfe60e764f279728d5644450a1e31602052604081205460ff16610950565b600033610af68582856113a3565b610b01858585611435565b506001949350505050565b600082815260056020526040902060010154610b28813361122c565b610a7a83836117c1565b6000610b3e813361122c565b6107d061ffff1682600654610b51610a91565b610b5b91906121ed565b610b6591906121d5565b1115610ba25760405162461bcd60e51b815260206004820152600c60248201526b0a8c2f040e8dede40d0d2ced60a31b6044820152606401610a67565b50600655565b6001600160a01b0381163314610c265760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610a67565b610c308282611863565b5050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091906109f69082908690610c6e9087906121d5565b611108565b6001600160a01b03811660009081527f60cacd871d19a7ccab985c49d09249086dbbf2eb28ad48a29f42c0b838c3535d602052604081205460ff16610950565b6000610cbf813361122c565b6107d061ffff1682600754610cd2610a91565b610cdc91906121ed565b610ce691906121d5565b1115610d235760405162461bcd60e51b815260206004820152600c60248201526b0a8c2f040e8dede40d0d2ced60a31b6044820152606401610a67565b50600755565b6000610d35813361122c565b50600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610d64813361122c565b50600880546001600160a01b0319166001600160a01b0392909216919091179055565b60606004805461096590612184565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919083811015610e1b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a67565b610b018286868403611108565b6000336109f6818585611435565b6000610e42813361122c565b600980546001600160a01b0319166001600160a01b0384169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610e9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebf9190612204565b6001600160a01b031663c9c6539630600960009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f459190612204565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610f92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb69190612204565b600a80546001600160a01b0319166001600160a01b039290921691821790556110215760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964207061697220616464726573732e00000000000000000000006044820152606401610a67565b600a546009546040516001600160a01b0392831692909116907fca394f95d8dbf1e8b2e76b9a8da90cacce1da85181a65508dab13212dc1df53b90600090a35050565b61106f600a80612305565b61107c9062989680612314565b81565b60008281526005602052604090206001015461109b813361122c565b610a7a8383611863565b60006110b1813361122c565b50600b8054911515600160a01b0260ff60a01b19909216919091179055565b60006110dc813361122c565b506001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6001600160a01b03831661116a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a67565b6001600160a01b0382166111cb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a67565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008281526005602090815260408083206001600160a01b038516845290915290205460ff16610c305761126a816001600160a01b031660146118e6565b6112758360206118e6565b604051602001611286929190612333565b60408051601f198184030181529082905262461bcd60e51b8252610a6791600401611fb1565b600b805460ff60a81b1916600160a81b17905530600090815260208190526040812054905060006112db610a91565b90508382101580156112ed5750600081115b156113905760006113138261130d60065488611a9690919063ffffffff16565b90611aa2565b90506000611322826002611aa2565b905060006113308784611aae565b90506000611348826113428686611aae565b90611aba565b9050476113558289611ac6565b60006113614783611aae565b905060006113738461130d8489611a96565b905061137f8682611c20565b61138847611d0d565b505050505050505b5050600b805460ff60a81b191690555050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461142f57818110156114225760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a67565b61142f8484848403611108565b50505050565b6001600160a01b03831660009081527f2043a6a2db33ba3d58654fd7f3770cb9319aa7f0f306e78cbc287c4c1a9f20156020526040902054839060ff16156114b05760405162461bcd60e51b815260206004820152600e60248201526d1059191c995cdcc819195b9a595960921b6044820152606401610a67565b6001600160a01b03831660009081527f2043a6a2db33ba3d58654fd7f3770cb9319aa7f0f306e78cbc287c4c1a9f20156020526040902054839060ff161561152b5760405162461bcd60e51b815260206004820152600e60248201526d1059191c995cdcc819195b9a595960921b6044820152606401610a67565b6001600160a01b03841660009081527fd6caba9cdcf37e1c9a5d786ad119c56d8efcfe60e764f279728d5644450a1e31602052604090205485908590859060ff166115f95761157b600a80612305565b6115889062989680612314565b6115ab82611342856001600160a01b031660009081526020819052604090205490565b11156115f95760405162461bcd60e51b815260206004820152601260248201527f57616c6c65742065786365656473206d617800000000000000000000000000006044820152606401610a67565b600086116116395760405162461bcd60e51b815260206004820152600d60248201526c05472616e73666572203c3d203609c1b6044820152606401610a67565b600b546000908190600160a81b900460ff1661170b576001600160a01b0389166000908152600d602052604090205460ff16801561167d575061167b8a610c73565b155b801561168f575061168d89610c73565b155b156116b35761169c610a91565b600b54909250600160a01b900460ff16905061170b565b6001600160a01b038a166000908152600d602052604090205460ff1680156116e157506116df89610c73565b155b80156116fb57506009546001600160a01b038a8116911614155b1561170b57611708610a91565b91505b80156117395730600090815260208190526040902054600c54811061173757611737600c5460006112ac565b505b600b54600090600160a81b900460ff161580156117565750600083115b905080156117a957600061177061271061130d8c87611a96565b90508015611783576117838c3083611d8d565b600061178f8b83611aae565b905080156117a2576117a28d8d83611d8d565b50506117b4565b6117b48b8b8b611d8d565b5050505050505050505050565b60008281526005602090815260408083206001600160a01b038516845290915290205460ff16610c305760008281526005602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561181f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526005602090815260408083206001600160a01b038516845290915290205460ff1615610c305760008281526005602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b606060006118f5836002612314565b6119009060026121d5565b67ffffffffffffffff811115611918576119186123b4565b6040519080825280601f01601f191660200182016040528015611942576020820181803683370190505b509050600360fc1b8160008151811061195d5761195d6123ca565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061198c5761198c6123ca565b60200101906001600160f81b031916908160001a90535060006119b0846002612314565b6119bb9060016121d5565b90505b6001811115611a40577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106119fc576119fc6123ca565b1a60f81b828281518110611a1257611a126123ca565b60200101906001600160f81b031916908160001a90535060049490941c93611a39816123e0565b90506119be565b508315611a8f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610a67565b9392505050565b6000611a8f8284612314565b6000611a8f82846123f7565b6000611a8f82846121ed565b6000611a8f82846121d5565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611afb57611afb6123ca565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b789190612204565b81600181518110611b8b57611b8b6123ca565b6001600160a01b039283166020918202929092010152600954611bb19130911685611108565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac94790611be99086908690869030904290600401612419565b600060405180830381600087803b158015611c0357600080fd5b505af1158015611c17573d6000803e3d6000fd5b50505050505050565b600954611c389030906001600160a01b031684611108565b600954600b5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611ca8573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ccd919061248a565b505060408051848152602081018490527fcb1652de9aeec38545fc281847b3dbfc89aab56dfa907b1ab68466f602c36fb492500160405180910390a15050565b6008546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611d47573d6000803e3d6000fd5b506008546040518281526001600160a01b03909116907f7281e2208e56b97e2118a4c1f31dc4badd530977cce4e1985af4f68f316b4ee99060200160405180910390a250565b6001600160a01b038316611df15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a67565b6001600160a01b038216611e535760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a67565b6001600160a01b03831660009081526020819052604090205481811015611ecb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a67565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611f029084906121d5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f4e91815260200190565b60405180910390a361142f565b600060208284031215611f6d57600080fd5b81356001600160e01b031981168114611a8f57600080fd5b60005b83811015611fa0578181015183820152602001611f88565b8381111561142f5750506000910152565b6020815260008251806020840152611fd0816040850160208701611f85565b601f01601f19169190910160400192915050565b6001600160a01b0381168114611ff957600080fd5b50565b6000806040838503121561200f57600080fd5b823561201a81611fe4565b946020939093013593505050565b6000806040838503121561203b57600080fd5b50508035926020909101359150565b60006020828403121561205c57600080fd5b5035919050565b60006020828403121561207557600080fd5b8135611a8f81611fe4565b60008060006060848603121561209557600080fd5b83356120a081611fe4565b925060208401356120b081611fe4565b929592945050506040919091013590565b600080604083850312156120d457600080fd5b8235915060208301356120e681611fe4565b809150509250929050565b8035801515811461210157600080fd5b919050565b60006020828403121561211857600080fd5b611a8f826120f1565b6000806040838503121561213457600080fd5b823561213f81611fe4565b915060208301356120e681611fe4565b6000806040838503121561216257600080fd5b823561216d81611fe4565b915061217b602084016120f1565b90509250929050565b600181811c9082168061219857607f821691505b602082108114156121b957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156121e8576121e86121bf565b500190565b6000828210156121ff576121ff6121bf565b500390565b60006020828403121561221657600080fd5b8151611a8f81611fe4565b600181815b8085111561225c578160001904821115612242576122426121bf565b8085161561224f57918102915b93841c9390800290612226565b509250929050565b60008261227357506001610950565b8161228057506000610950565b816001811461229657600281146122a0576122bc565b6001915050610950565b60ff8411156122b1576122b16121bf565b50506001821b610950565b5060208310610133831016604e8410600b84101617156122df575081810a610950565b6122e98383612221565b80600019048211156122fd576122fd6121bf565b029392505050565b6000611a8f60ff841683612264565b600081600019048311821515161561232e5761232e6121bf565b500290565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161236b816017850160208801611f85565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516123a8816028840160208801611f85565b01602801949350505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000816123ef576123ef6121bf565b506000190190565b60008261241457634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124695784516001600160a01b031683529383019391830191600101612444565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561249f57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220453d2a68257fe404ef2c17fb1a4e09bef0d69c1b148839aaa384d743b04d16e564736f6c634300080b0033aa2bf0f18a184595f311714f88137302cdcad3d20639b5595c7fe0d3db0658fa5df7ebf31955a926cc63dac31c1a31bc588cdae5c3e13e63b89ebfe0eaba8753