[ { "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": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludeFromFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pair", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetAutomatedMarketMakerPair", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "ethReceived", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "tokensIntoLiquidity", "type": "uint256" } ], "name": "SwapAndLiquify", "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": "_chainLinkAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_getChainPriceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_limitsInEffect", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxTransactionAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_swapTokensAtAmount", "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": "_tradingActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "automatedMarketMakerPairs", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" } ], "name": "checkFeeEnabledTo", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "disableAddBuyFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "disableAddSellFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "disableTimeLimits", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "enablePriceOracle", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "enableTrading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "excluded", "type": "bool" } ], "name": "excludeFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "updAds", "type": "address" }, { "internalType": "bool", "name": "isEx", "type": "bool" } ], "name": "excludeFromMaxTransaction", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getLatestPrice", "outputs": [ { "internalType": "uint80", "name": "", "type": "uint80" }, { "internalType": "int256", "name": "", "type": "int256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint80", "name": "", "type": "uint80" } ], "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": "isExcludedFromFees", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "manualSend", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "manualSwap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "removeLimits", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pair", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "setAutomatedMarketMakerPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "val", "type": "uint256" } ], "name": "setManualETHvalue", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "address", "name": "oracleFeed", "type": "address" }, { "internalType": "uint256", "name": "fees", "type": "uint256" } ], "internalType": "struct ProofOfFine.ChainLinkOracle", "name": "_oracleFeed", "type": "tuple" } ], "name": "updateChainOracle", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "feed", "type": "address" } ], "name": "updateChainOracleFeed", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newWallet", "type": "address" } ], "name": "updateDevelopmentWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "marketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "developmentFee", "type": "uint256" }, { "internalType": "uint256", "name": "liquidityFee", "type": "uint256" } ], "name": "updateFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newWallet", "type": "address" } ], "name": "updateMarketingWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updateMaxTxnAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updateMaxWalletAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "updateSwapTokensAtAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
6080604052600e805462ffffff19166001179055601b805460ff60a01b191690556859803a48a089ec0000601c553480156200003a57600080fd5b506040518060400160405280600d81526020016c50726f6f66204f662046696e6560981b815250604051806040016040528060038152602001622827a360e91b81525081600390816200008e9190620008e2565b5060046200009d8282620008e2565b505050620000ba620000b46200056f60201b60201c565b62000573565b46600503620000ef57601b80546001600160a01b0319167348731cf7e84dc94c5f84577882c14be11a5b74561790556200014b565b466038036200012457601b80546001600160a01b031916731aae42aa46483370be23274abb29bcc40f808a4c1790556200014b565b601b80546001600160a01b031916735f4ec3df9cbd43714fe2740f5e3616155c5b84191790555b600980546001600160a01b031990811673eeeed3de2d82266018403c2c8f5d1c14e990443517909155600a8054909116730b4b722a49e48ceec01370687483abf2747629c817905546603803620001c857600680546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e179055620001ef565b600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790555b600660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000243573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002699190620009ae565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f29190620009ae565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000340573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003669190620009ae565b600780546001600160a01b0319166001600160a01b0392909216918217905562000392906001620005c5565b600654620003ab906001600160a01b0316600162000630565b601b54601a80546001600160a01b0319166001600160a01b039092169190911790556b033b2e3c9fd0803ce80000006103e8620003ea82601e620009f6565b620003f6919062000a16565b600d556103e86200040982601e620009f6565b62000415919062000a16565b600b556127106200042882600a620009f6565b62000434919062000a16565b600c5560006013819055601481905560016010819055601282905560118290556200046190829062000a39565b6200046d919062000a39565b600f556200048f620004876005546001600160a01b031690565b6001620006aa565b600954620004a8906001600160a01b03166001620006aa565b600a54620004c1906001600160a01b03166001620006aa565b620004ce306001620006aa565b620004dd61dead6001620006aa565b620004fc620004f46005546001600160a01b031690565b600162000630565b60095462000515906001600160a01b0316600162000630565b600a546200052e906001600160a01b0316600162000630565b6200053b30600162000630565b6200054a61dead600162000630565b62000568620005616005546001600160a01b031690565b8262000754565b5062000a4f565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03821660009081526020805260409020805460ff1916821515179055620005f4828262000630565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6005546001600160a01b031633146200067f5760405162461bcd60e51b81526020600482018190526024820152600080516020620038a683398151915260448201526064015b60405180910390fd5b6001600160a01b03919091166000908152601960205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314620006f55760405162461bcd60e51b81526020600482018190526024820152600080516020620038a6833981519152604482015260640162000676565b6001600160a01b038216600081815260186020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620007ac5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000676565b8060026000828254620007c0919062000a39565b90915550506001600160a01b03821660009081526020819052604081208054839290620007ef90849062000a39565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200086957607f821691505b6020821081036200088a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200083957600081815260208120601f850160051c81016020861015620008b95750805b601f850160051c820191505b81811015620008da57828155600101620008c5565b505050505050565b81516001600160401b03811115620008fe57620008fe6200083e565b62000916816200090f845462000854565b8462000890565b602080601f8311600181146200094e5760008415620009355750858301515b600019600386901b1c1916600185901b178555620008da565b600085815260208120601f198616915b828110156200097f578886015182559484019460019091019084016200095e565b50858210156200099e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620009c157600080fd5b81516001600160a01b0381168114620009d957600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141762000a105762000a10620009e0565b92915050565b60008262000a3457634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000a105762000a10620009e0565b612e478062000a5f6000396000f3fe6080604052600436106102975760003560e01c80638e15f4731161015a578063ce6abcc5116100c1578063f023f5731161007a578063f023f573146107e8578063f2fde38b14610808578063f429389014610828578063fc7003fb1461083d578063fea4fa4d1461085d578063fefa5ce31461087357600080fd5b8063ce6abcc514610739578063d257b34f1461074e578063dd62ed3e1461076e578063e73b90cd1461078e578063e8bc05f5146107a8578063e8f795cb146107c857600080fd5b8063aacebbe311610113578063aacebbe314610675578063b62496f514610695578063bd83beb7146106c4578063c0246668146106d9578063c18bc195146106f9578063c893ecb21461071957600080fd5b80638e15f4731461059457806395d89b41146105e05780639a7a23d6146105f55780639c74daf014610615578063a457c2d714610635578063a9059cbb1461065557600080fd5b806337bd32d2116101fe578063715018a6116101b7578063715018a614610501578063751039fc146105165780637571336a1461052b57806382247ec01461054b5780638a8c523c146105615780638da5cb5b1461057657600080fd5b806337bd32d21461041b578063395093511461043b5780634fbee1931461045b57806351bc3c8514610494578063583e0568146104a957806370a08231146104e157600080fd5b80632242908511610250578063224290851461037557806323b872dd1461039557806327f4d7d5146103b55780632fd689e3146103d4578063313ce567146103ea57806332d3ba6d1461040657600080fd5b806304beaeb8146102a357806306fdde03146102cc578063095ea7b3146102ee5780630c9dcfba1461031e57806318160ddd1461033e578063203e727e1461035357600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102b9600d5481565b6040519081526020015b60405180910390f35b3480156102d857600080fd5b506102e1610893565b6040516102c391906127b4565b3480156102fa57600080fd5b5061030e610309366004612817565b610925565b60405190151581526020016102c3565b34801561032a57600080fd5b50600e5461030e9062010000900460ff1681565b34801561034a57600080fd5b506002546102b9565b34801561035f57600080fd5b5061037361036e366004612843565b61093f565b005b34801561038157600080fd5b5061037361039036600461285c565b610a25565b3480156103a157600080fd5b5061030e6103b0366004612888565b610acd565b3480156103c157600080fd5b50600e5461030e90610100900460ff1681565b3480156103e057600080fd5b506102b9600c5481565b3480156103f657600080fd5b50604051601281526020016102c3565b34801561041257600080fd5b506102b9610af1565b34801561042757600080fd5b506103736104363660046128d9565b610e3b565b34801561044757600080fd5b5061030e610456366004612817565b610e83565b34801561046757600080fd5b5061030e6104763660046128f4565b6001600160a01b031660009081526018602052604090205460ff1690565b3480156104a057600080fd5b50610373610ea5565b3480156104b557600080fd5b506006546104c9906001600160a01b031681565b6040516001600160a01b0390911681526020016102c3565b3480156104ed57600080fd5b506102b96104fc3660046128f4565b610f43565b34801561050d57600080fd5b50610373610f5e565b34801561052257600080fd5b5061030e610f94565b34801561053757600080fd5b50610373610546366004612911565b610fd1565b34801561055757600080fd5b506102b9600b5481565b34801561056d57600080fd5b50610373611026565b34801561058257600080fd5b506005546001600160a01b03166104c9565b3480156105a057600080fd5b506105a9611065565b6040805169ffffffffffffffffffff968716815260208101959095528401929092526060830152909116608082015260a0016102c3565b3480156105ec57600080fd5b506102e1611101565b34801561060157600080fd5b50610373610610366004612911565b611110565b34801561062157600080fd5b506007546104c9906001600160a01b031681565b34801561064157600080fd5b5061030e610650366004612817565b611204565b34801561066157600080fd5b5061030e610670366004612817565b61127f565b34801561068157600080fd5b506103736106903660046128f4565b61128d565b3480156106a157600080fd5b5061030e6106b03660046128f4565b602080526000908152604090205460ff1681565b3480156106d057600080fd5b506103736112d9565b3480156106e557600080fd5b506103736106f4366004612911565b61130a565b34801561070557600080fd5b50610373610714366004612843565b611393565b34801561072557600080fd5b506103736107343660046128f4565b611464565b34801561074557600080fd5b506103736114ba565b34801561075a57600080fd5b5061030e610769366004612843565b6114eb565b34801561077a57600080fd5b506102b9610789366004612946565b611642565b34801561079a57600080fd5b50600e5461030e9060ff1681565b3480156107b457600080fd5b5061030e6107c3366004612946565b61166d565b3480156107d457600080fd5b50601b546104c9906001600160a01b031681565b3480156107f457600080fd5b506103736108033660046128f4565b611778565b34801561081457600080fd5b506103736108233660046128f4565b6117c4565b34801561083457600080fd5b5061037361185c565b34801561084957600080fd5b5061037361085836600461297f565b611886565b34801561086957600080fd5b506102b9600f5481565b34801561087f57600080fd5b5061037361088e366004612843565b6118e2565b6060600380546108a2906129ef565b80601f01602080910402602001604051908101604052809291908181526020018280546108ce906129ef565b801561091b5780601f106108f05761010080835404028352916020019161091b565b820191906000526020600020905b8154815290600101906020018083116108fe57829003601f168201915b5050505050905090565b600033610933818585611924565b60019150505b92915050565b6005546001600160a01b031633146109725760405162461bcd60e51b815260040161096990612a29565b60405180910390fd5b670de0b6b3a76400006103e861098760025490565b610992906001612a74565b61099c9190612a8b565b6109a69190612a8b565b811015610a0d5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b6064820152608401610969565b610a1f81670de0b6b3a7640000612a74565b600d5550565b6005546001600160a01b03163314610a4f5760405162461bcd60e51b815260040161096990612a29565b60108390556012829055601181905580610a698385612aad565b610a739190612aad565b600f819055600a1015610ac85760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c6573730000006044820152606401610969565b505050565b600033610adb858285611a48565b610ae6858585611ac2565b506001949350505050565b600080600760009054906101000a90046001600160a01b03166001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6b9190612ac0565b90506000600760009054906101000a90046001600160a01b03166001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be69190612ac0565b600e54909150429062010000900460ff1615610c0d5742600854610c0a9190612add565b90505b600080600760009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610c63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c879190612b07565b50601c54601b5492945090925090600160a01b900460ff168015610cad57506008548410155b15610d1c57306001600160a01b0316638e15f4736040518163ffffffff1660e01b815260040160a060405180830381865afa158015610cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d149190612b71565b509193505050505b6000856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d809190612bc1565b60ff16876001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de59190612bc1565b610df39060ff16600a612cc8565b610e06846001600160701b038716612a74565b610e109190612a74565b610e1a9190612a8b565b9050610e2f6001600160701b03851682612a8b565b97505050505050505090565b6005546001600160a01b03163314610e655760405162461bcd60e51b815260040161096990612a29565b601b8054911515600160a01b0260ff60a01b19909216919091179055565b600033610933818585610e968383611642565b610ea09190612aad565b611924565b6005546001600160a01b03163314610ecf5760405162461bcd60e51b815260040161096990612a29565b610ee0610edb30610f43565b611f3e565b600a546040516000916001600160a01b03169047908381818185875af1925050503d8060008114610f2d576040519150601f19603f3d011682016040523d82523d6000602084013e610f32565b606091505b5050905080610f4057600080fd5b50565b6001600160a01b031660009081526020819052604090205490565b6005546001600160a01b03163314610f885760405162461bcd60e51b815260040161096990612a29565b610f926000612098565b565b6005546000906001600160a01b03163314610fc15760405162461bcd60e51b815260040161096990612a29565b50600e805460ff19169055600190565b6005546001600160a01b03163314610ffb5760405162461bcd60e51b815260040161096990612a29565b6001600160a01b03919091166000908152601960205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146110505760405162461bcd60e51b815260040161096990612a29565b600e805461ff00191661010017905542600855565b600080600080600080600080600080601a60009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156110c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110eb9190612b71565b939e929d50909b50995090975095505050505050565b6060600480546108a2906129ef565b6005546001600160a01b0316331461113a5760405162461bcd60e51b815260040161096990612a29565b6007546001600160a01b03908116908316036111be5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610969565b6111c882826120ea565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b600033816112128286611642565b9050838110156112725760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610969565b610ae68286868403611924565b600033610933818585611ac2565b6005546001600160a01b031633146112b75760405162461bcd60e51b815260040161096990612a29565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146113035760405162461bcd60e51b815260040161096990612a29565b6000601455565b6005546001600160a01b031633146113345760405162461bcd60e51b815260040161096990612a29565b6001600160a01b038216600081815260186020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146113bd5760405162461bcd60e51b815260040161096990612a29565b670de0b6b3a76400006103e86113d260025490565b6113dd906005612a74565b6113e79190612a8b565b6113f19190612a8b565b81101561144c5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b6064820152608401610969565b61145e81670de0b6b3a7640000612a74565b600b5550565b6005546001600160a01b0316331461148e5760405162461bcd60e51b815260040161096990612a29565b601b80546001600160a01b039092166001600160a01b03199283168117909155601a8054909216179055565b6005546001600160a01b031633146114e45760405162461bcd60e51b815260040161096990612a29565b6000601355565b6005546000906001600160a01b031633146115185760405162461bcd60e51b815260040161096990612a29565b620186a061152560025490565b611530906001612a74565b61153a9190612a8b565b8210156115a75760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610969565b6103e86115b360025490565b6115be906005612a74565b6115c89190612a8b565b8211156116345760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610969565b50600c81905560015b919050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60075460009081906001600160a01b03858116911614801561169d57506006546001600160a01b03848116911614155b90508080156116c457506001600160a01b03831660009081526018602052604090205460ff165b156116db57600e805462ff00001916620100001790555b6001600160a01b03841660009081526018602052604081205460ff168061171a57506001600160a01b03841660009081526018602052604090205460ff165b6007549091506001600160a01b03858116911614600083806117395750815b600f549091501580159081906117595750600754600160a01b900460ff16155b8015611763575083155b801561176c5750815b98975050505050505050565b6005546001600160a01b031633146117a25760405162461bcd60e51b815260040161096990612a29565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146117ee5760405162461bcd60e51b815260040161096990612a29565b6001600160a01b0381166118535760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610969565b610f4081612098565b6005546001600160a01b03163314610ee05760405162461bcd60e51b815260040161096990612a29565b6005546001600160a01b031633146118b05760405162461bcd60e51b815260040161096990612a29565b8051601d556020810151601e80546001600160a01b0319166001600160a01b0390921691909117905560400151601f55565b6005546001600160a01b0316331461190c5760405162461bcd60e51b815260040161096990612a29565b61191e81670de0b6b3a7640000612117565b601c5550565b6001600160a01b0383166119865760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610969565b6001600160a01b0382166119e75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610969565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000611a548484611642565b90506000198114611abc5781811015611aaf5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610969565b611abc8484848403611924565b50505050565b6001600160a01b03831660009081526018602052604081205460ff1680611b0157506001600160a01b03831660009081526018602052604090205460ff165b90506001600160a01b038416611b295760405162461bcd60e51b815260040161096990612cd4565b6001600160a01b038316611b4f5760405162461bcd60e51b815260040161096990612d19565b81600003611b6357611abc8484600061212a565b6007546000906001600160a01b038681169116148015611b9c57506001600160a01b03841660009081526019602052604090205460ff16155b6007549091506000906001600160a01b038681169116148015611bd857506001600160a01b03861660009081526019602052604090205460ff16155b90506000611bee6005546001600160a01b031690565b6001600160a01b0316876001600160a01b03161480611c1a57506005546001600160a01b038781169116145b905060006001600160a01b0387161580611c3e57506001600160a01b03871661dead145b905060008280611c4b5750815b80611c5f5750600754600160a01b900460ff165b600e5490915060ff168015611c72575080155b15611e4557600e54610100900460ff1680611c8a5750855b611ccf5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610969565b8415611da457600d54871115611d455760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610969565b600b54611d5189610f43565b611d5b9089612aad565b1115611d9f5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610969565b611e45565b6001600160a01b03881660009081526019602052604090205460ff16158015611de657506001600160a01b03891660009081526019602052604090205460ff16155b15611e4557600b54611df789610f43565b611e019089612aad565b1115611e455760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610969565b600754600160a01b900460ff16158015611e7757506001600160a01b038916600090815260208052604090205460ff16155b8015611e9c57506001600160a01b03891660009081526018602052604090205460ff16155b8015611ec157506001600160a01b03881660009081526018602052604090205460ff16155b15611f26576000611ed130610f43565b600c54909150811015611ee261227e565b8015611eeb5750805b8015611ef5575087155b15611f23576007805460ff60a01b1916600160a01b179055611f1561229a565b6007805460ff60a01b191690555b50505b611f3389898987896124d4565b505050505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611f7357611f73612d5c565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ff09190612ac0565b8160018151811061200357612003612d5c565b6001600160a01b0392831660209182029290920101526006546120299130911684611924565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790612062908590600090869030904290600401612d72565b600060405180830381600087803b15801561207c57600080fd5b505af1158015612090573d6000803e3d6000fd5b505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03821660009081526020805260409020805460ff19168215151790556111c88282610fd1565b60006121238284612a74565b9392505050565b6001600160a01b0383166121505760405162461bcd60e51b815260040161096990612cd4565b6001600160a01b0382166121765760405162461bcd60e51b815260040161096990612d19565b6001600160a01b038316600090815260208190526040902054818110156121ee5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610969565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612225908490612aad565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161227191815260200190565b60405180910390a3611abc565b600080612289610af1565b116122945750600090565b50600190565b60006122a530610f43565b905060006016546015546017546122bc9190612aad565b6122c69190612aad565b90508115806122d3575080155b156122dc575050565b600c548211156122ec57600c5491505b6000600282601754856122ff9190612a74565b6123099190612a8b565b6123139190612a8b565b9050600061232184836126c7565b90504761232d82611f3e565b600061233947836126c7565b9050600061235c866123566015548561211790919063ffffffff16565b906126d3565b90506000612379876123566016548661211790919063ffffffff16565b90506000816123888486612add565b6123929190612add565b90506000871180156123a45750600081115b156123f7576123b387826126df565b601754604080518881526020810184905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b6000601781905560158190556016819055600a546040516001600160a01b039091169085908381818185875af1925050503d8060008114612454576040519150601f19603f3d011682016040523d82523d6000602084013e612459565b606091505b505090508061246757600080fd5b6009546040516000916001600160a01b03169085908381818185875af1925050503d80600081146124b4576040519150601f19603f3d011682016040523d82523d6000602084013e6124b9565b606091505b50509050806124c757600080fd5b5050505050505050505050565b60006124e0868661166d565b6001600160a01b0387166000908152601860205260408120549192509060ff16801561251457506001600160a01b03861630145b90508015612593576000601454601354600f546125319190612aad565b61253b9190612aad565b9050600061254e60646123568985612117565b9050801561258057601e54612580906001600160a01b0316308361257183610f43565b61257b9190612add565b61212a565b61258a8188612add565b965050506126b3565b81156126b357600f5460105485156125ca57601354600f546125b59190612aad565b91506013546010546125c79190612aad565b90505b84156125f557601454600f546125e09190612aad565b91506014546010546125f29190612aad565b90505b600061260660646123568a86612117565b905082601154826126179190612a74565b6126219190612a8b565b601760008282546126329190612aad565b909155508390506126438383612a74565b61264d9190612a8b565b6015600082825461265e9190612aad565b909155505060125483906126729083612a74565b61267c9190612a8b565b6016600082825461268d9190612aad565b909155505080156126a3576126a38a308361212a565b6126ad8189612add565b97505050505b6126be87878761212a565b50505050505050565b60006121238284612add565b60006121238284612a8b565b6006546126f79030906001600160a01b031684611924565b6006546001600160a01b031663f305d7198230856000806127206005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612788573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127ad9190612de3565b5050505050565b600060208083528351808285015260005b818110156127e1578581018301518582016040015282016127c5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f4057600080fd5b6000806040838503121561282a57600080fd5b823561283581612802565b946020939093013593505050565b60006020828403121561285557600080fd5b5035919050565b60008060006060848603121561287157600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561289d57600080fd5b83356128a881612802565b925060208401356128b881612802565b929592945050506040919091013590565b8035801515811461163d57600080fd5b6000602082840312156128eb57600080fd5b612123826128c9565b60006020828403121561290657600080fd5b813561212381612802565b6000806040838503121561292457600080fd5b823561292f81612802565b915061293d602084016128c9565b90509250929050565b6000806040838503121561295957600080fd5b823561296481612802565b9150602083013561297481612802565b809150509250929050565b60006060828403121561299157600080fd5b6040516060810181811067ffffffffffffffff821117156129c257634e487b7160e01b600052604160045260246000fd5b6040528235815260208301356129d781612802565b60208201526040928301359281019290925250919050565b600181811c90821680612a0357607f821691505b602082108103612a2357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761093957610939612a5e565b600082612aa857634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561093957610939612a5e565b600060208284031215612ad257600080fd5b815161212381612802565b8181038181111561093957610939612a5e565b80516001600160701b038116811461163d57600080fd5b600080600060608486031215612b1c57600080fd5b612b2584612af0565b9250612b3360208501612af0565b9150604084015163ffffffff81168114612b4c57600080fd5b809150509250925092565b805169ffffffffffffffffffff8116811461163d57600080fd5b600080600080600060a08688031215612b8957600080fd5b612b9286612b57565b9450602086015193506040860151925060608601519150612bb560808701612b57565b90509295509295909350565b600060208284031215612bd357600080fd5b815160ff8116811461212357600080fd5b600181815b80851115612c1f578160001904821115612c0557612c05612a5e565b80851615612c1257918102915b93841c9390800290612be9565b509250929050565b600082612c3657506001610939565b81612c4357506000610939565b8160018114612c595760028114612c6357612c7f565b6001915050610939565b60ff841115612c7457612c74612a5e565b50506001821b610939565b5060208310610133831016604e8410600b8410161715612ca2575081810a610939565b612cac8383612be4565b8060001904821115612cc057612cc0612a5e565b029392505050565b60006121238383612c27565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612dc25784516001600160a01b031683529383019391830191600101612d9d565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612df857600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220d64fbaa126be10b75a6fa2282e7da398deec23bb0df079a9370709fea73db32564736f6c634300081300334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572