ERC-20
Artificial Intelligence
Overview
Max Total Supply
100,000,000 QUEAI
Holders
230 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
49,108.100459727950538278 QUEAIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
QUESTAI
Compiler Version
v0.8.24+commit.e11b9ed9
Optimization Enabled:
No with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// // ___ _ _ _____ ____ _____ _ ___ // / _ \| | | | ____/ ___|_ _| / \ |_ _| // | | | | | | | _| \___ \ | | / _ \ | | // | |_| | |_| | |___ ___) || | / ___ \ | | // \__\_\\___/|_____|____/ |_| /_/ \_\___| // // // Telegram: https://t.me/questai_app // // Website: https://queai.app/ // X: https://x.com/QuestAI_app // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer( address recipient, uint256 amount ) external returns (bool); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } interface IFactory { function createPair( address tokenA, address tokenB ) external returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable; } abstract contract Context { function _msgSender() internal view returns (address payable) { return payable(msg.sender); } function _msgData() internal view returns (bytes memory) { this; return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract QUESTAI is IERC20, Ownable { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) public blacklisted; mapping(address => bool) private isFeeExempt; mapping(address => bool) private liquidityCreator; mapping(address => bool) private isMaxBuyExempt; mapping(address => bool) private liquidityPools; address immutable public pair; IRouter public router; string private constant _name = "QUEST AI"; string private constant _symbol = "QUEAI"; uint8 private constant _decimals = 18; uint256 private constant _totalSupply = 100_000_000 * (10 ** _decimals); uint256 private totalFee = 5000; uint256 private feeDenominator = 10000; // 1% of total supply uint256 private maxBuyNumerator = 100; uint256 private maxBuyDenominator = 10000; uint256 public launchedAt; bool private isTradingAllowed; bool private swapBackEnabled; bool private inSwap; address private constant routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address public devWallet; address public marketingWallet; uint8 public devWalletSupplyPercentage = 5; uint8 public marketingWalletSupplyPercentage = 15; uint256 private _devWalletSupply = _totalSupply * devWalletSupplyPercentage / 100; uint256 private _marketingWalletSupply = _totalSupply * marketingWalletSupplyPercentage / 100; uint256 private _ownerWalletSupply = _totalSupply - _devWalletSupply - _marketingWalletSupply; address private constant zeroAddress = 0x0000000000000000000000000000000000000000; address private constant deadAddress = 0x000000000000000000000000000000000000dEaD; modifier onlyDev() { require(_msgSender() == devWallet, "QUEST AI: caller is not a team member"); _; } modifier swapping() { inSwap = true; _; inSwap = false; } event DistributedFees(uint256 fee); constructor(address _devWallet, address _marketingWallet) { router = IRouter(routerAddress); pair = IFactory(router.factory()).createPair( router.WETH(), address(this) ); liquidityPools[pair] = true; _allowances[owner()][routerAddress] = type(uint256).max; _allowances[address(this)][routerAddress] = type(uint256).max; devWallet = _devWallet; marketingWallet = _marketingWallet; isFeeExempt[owner()] = true; isFeeExempt[address(this)] = true; isFeeExempt[devWallet] = true; isFeeExempt[marketingWallet] = true; liquidityCreator[owner()] = true; _balances[owner()] = _ownerWalletSupply; _balances[devWallet] = _devWalletSupply; _balances[marketingWallet] = _marketingWalletSupply; isMaxBuyExempt[owner()] = true; isMaxBuyExempt[address(this)] = true; isMaxBuyExempt[pair] = true; isMaxBuyExempt[routerAddress] = true; isTradingAllowed = false; swapBackEnabled = true; emit Transfer(address(0), owner(), _ownerWalletSupply); emit Transfer(address(0), devWallet, _devWalletSupply); emit Transfer(address(0), marketingWallet, _marketingWalletSupply); } receive() external payable {} function totalSupply() external pure override returns (uint256) { return _totalSupply; } function decimals() external pure returns (uint8) { return _decimals; } function symbol() external pure returns (string memory) { return _symbol; } function name() external pure returns (string memory) { return _name; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance( address holder, address spender ) external view override returns (uint256) { return _allowances[holder][spender]; } function approve( address spender, uint256 amount ) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMaximum(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function decreaseFee(uint256 _newFee) external onlyDev { require(_newFee <= totalFee, "QUEST AI: Can't increase fee."); totalFee = _newFee; } function updateDevWallet(address newWallet) external onlyOwner { require(devWallet != newWallet ,'Wallet already set'); devWallet = newWallet; isFeeExempt[devWallet] = true; } function updateMarketingWallet(address newWallet) external onlyOwner { require(marketingWallet != newWallet ,'Wallet already set'); marketingWallet = newWallet; isFeeExempt[marketingWallet] = true; } function feeWithdrawal(uint256 amount) external onlyDev { uint256 amountETH = address(this).balance; payable(devWallet).transfer((amountETH * amount) / 100); } function startTrading() external onlyOwner { require(!isTradingAllowed); isTradingAllowed = true; launchedAt = block.number; } function transfer( address recipient, uint256 amount ) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount; } return _transferFrom(sender, recipient, amount); } function _transferFrom( address sender, address recipient, uint256 amount ) internal returns (bool) { require(sender != address(0), "QUEST AI: Transfer from the zero address."); require(recipient != address(0), "QUEST AI: Transfer to the zero address."); require(amount > 0, "QUEST AI: Transfer amount must be greater than zero."); require(_balances[sender] >= amount, "QUEST AI: You are trying to transfer more than your balance."); require(!blacklisted[sender] && !blacklisted[recipient], "QUEST AI: Address is blacklisted."); if (!launched() && liquidityPools[recipient]) { require( liquidityCreator[sender], "QUEST AI: Liquidity not added yet." ); launch(); } if (!isTradingAllowed) { require( liquidityCreator[sender] || liquidityCreator[recipient], "QUEST AI: Trading is currently disabled." ); } if (inSwap) { return _basicTransfer(sender, recipient, amount); } if (liquidityPools[sender] && !isMaxBuyExempt[recipient]) { // we are buying tokens uint256 maxAmount = (_totalSupply * maxBuyNumerator) / maxBuyDenominator; require( amount <= maxAmount, "QUEST AI: Max buy amount exceeded. Try a lower amount." ); } _balances[sender] = _balances[sender] - amount; uint256 amountReceived = feeExcluded(sender) ? receiveFee(recipient, amount) : amount; if (shouldSwapBack(recipient)) { if (amount > 0) swapBack(); } _balances[recipient] = _balances[recipient] + amountReceived; emit Transfer(sender, recipient, amountReceived); return true; } function launched() internal view returns (bool) { return launchedAt != 0; } function launch() internal { launchedAt = block.number; } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + amount; emit Transfer(sender, recipient, amount); return true; } function feeExcluded(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function receiveFee( address recipient, uint256 amount ) internal returns (uint256) { bool sellingOrBuying = liquidityPools[recipient] || liquidityPools[msg.sender]; if (!sellingOrBuying) { return amount; } uint256 feeAmount = (amount * totalFee) / feeDenominator; _balances[address(this)] += feeAmount; return amount - feeAmount; } function shouldSwapBack(address recipient) internal view returns (bool) { return !liquidityPools[msg.sender] && !inSwap && liquidityPools[recipient] && swapBackEnabled; } function setProvideLiquidity(address lp, bool isPool) external onlyDev { require(lp != pair, "QUEST AI: Can't alter current liquidity pair."); liquidityPools[lp] = isPool; } function setSwapBackEnabled(bool _enabled) external onlyDev { swapBackEnabled = _enabled; } function setMaxBuyExempt(address _address, bool _isExempt) external onlyDev { isMaxBuyExempt[_address] = _isExempt; } function setBlacklist(address _address, bool _isBlacklisted) external onlyOwner { blacklisted[_address] = _isBlacklisted; } function swapBack() internal swapping { uint256 myBalance = _balances[address(this)]; if (myBalance == 0) return; address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( myBalance, 0, path, address(this), block.timestamp ); emit DistributedFees(myBalance); } function addLiquidityCreator(address _liquidityCreator) external onlyOwner { liquidityCreator[_liquidityCreator] = true; } function getCurrentSupply() public view returns (uint256) { return _totalSupply - balanceOf(deadAddress) - balanceOf(zeroAddress); } }
{ "evmVersion": "paris", "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_devWallet","type":"address"},{"internalType":"address","name":"_marketingWallet","type":"address"}],"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":"fee","type":"uint256"}],"name":"DistributedFees","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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_liquidityCreator","type":"address"}],"name":"addLiquidityCreator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMaximum","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":[{"internalType":"address","name":"","type":"address"}],"name":"blacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"decreaseFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devWalletSupplyPercentage","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"feeWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCurrentSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWalletSupplyPercentage","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisted","type":"bool"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isExempt","type":"bool"}],"name":"setMaxBuyExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"lp","type":"address"},{"internalType":"bool","name":"isPool","type":"bool"}],"name":"setProvideLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapBackEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a0604052611388600955612710600a556064600b55612710600c556005600f60146101000a81548160ff021916908360ff160217905550600f8060156101000a81548160ff021916908360ff1602179055506064600f60149054906101000a900460ff1660ff166012600a62000077919062000efd565b6305f5e10062000088919062000f4e565b62000094919062000f4e565b620000a0919062000fc8565b6010556064600f60159054906101000a900460ff1660ff166012600a620000c8919062000efd565b6305f5e100620000d9919062000f4e565b620000e5919062000f4e565b620000f1919062000fc8565b6011556011546010546012600a6200010a919062000efd565b6305f5e1006200011b919062000f4e565b62000127919062001000565b62000133919062001000565b6012553480156200014357600080fd5b5060405162004d0638038062004d068339818101604052810190620001699190620010a5565b60006200017b62000d3260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003029190620010ec565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200038b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b19190620010ec565b306040518363ffffffff1660e01b8152600401620003d19291906200112f565b6020604051808303816000875af1158015620003f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004179190620010ec565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060016007600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60026000620004d962000d3a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600e60036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000620006b562000d3a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560006200086862000d3a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060125460016000620008d062000d3a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060105460016000600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060115460016000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160066000620009f462000d3a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016006600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600e60006101000a81548160ff0219169083151502179055506001600e60016101000a81548160ff02191690831515021790555062000ba962000d3a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60125460405162000c0a91906200116d565b60405180910390a3600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60105460405162000c9691906200116d565b60405180910390a3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60115460405162000d2291906200116d565b60405180910390a350506200118a565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000df15780860481111562000dc95762000dc862000d63565b5b600185161562000dd95780820291505b808102905062000de98562000d92565b945062000da9565b94509492505050565b60008262000e0c576001905062000edf565b8162000e1c576000905062000edf565b816001811462000e35576002811462000e405762000e76565b600191505062000edf565b60ff84111562000e555762000e5462000d63565b5b8360020a91508482111562000e6f5762000e6e62000d63565b5b5062000edf565b5060208310610133831016604e8410600b841016171562000eb05782820a90508381111562000eaa5762000ea962000d63565b5b62000edf565b62000ebf848484600162000d9f565b9250905081840481111562000ed95762000ed862000d63565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000f0a8262000ee6565b915062000f178362000ef0565b925062000f467fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000dfa565b905092915050565b600062000f5b8262000ee6565b915062000f688362000ee6565b925082820262000f788162000ee6565b9150828204841483151762000f925762000f9162000d63565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000fd58262000ee6565b915062000fe28362000ee6565b92508262000ff55762000ff462000f99565b5b828204905092915050565b60006200100d8262000ee6565b91506200101a8362000ee6565b925082820390508181111562001035576200103462000d63565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200106d8262001040565b9050919050565b6200107f8162001060565b81146200108b57600080fd5b50565b6000815190506200109f8162001074565b92915050565b60008060408385031215620010bf57620010be6200103b565b5b6000620010cf858286016200108e565b9250506020620010e2858286016200108e565b9150509250929050565b6000602082840312156200110557620011046200103b565b5b600062001115848285016200108e565b91505092915050565b620011298162001060565b82525050565b60006040820190506200114660008301856200111e565b6200115560208301846200111e565b9392505050565b620011678162000ee6565b82525050565b60006020820190506200118460008301846200115c565b92915050565b608051613b59620011ad600039600081816114000152611b320152613b596000f3fe6080604052600436106101e75760003560e01c80638da5cb5b11610102578063bf56b37111610095578063e3acfb9111610064578063e3acfb91146106ef578063f2fde38b14610718578063f887ea4014610741578063fdad93021461076c576101ee565b8063bf56b37114610621578063c5730d9d1461064c578063dbac26e914610675578063dd62ed3e146106b2576101ee565b8063a8aa1b31116100d1578063a8aa1b3114610565578063a9059cbb14610590578063aacebbe3146105cd578063aea2d205146105f6576101ee565b80638da5cb5b146104b95780638ea5220f146104e457806391546ab41461050f57806395d89b411461053a576101ee565b8063293230b81161017a57806370a082311161014957806370a08231146103fd578063715018a61461043a57806375f0a874146104515780637c6e0a5e1461047c576101ee565b8063293230b814610367578063313ce5671461037e5780633c8f81d0146103a95780634f3e1efc146103d2576101ee565b806318160ddd116101b657806318160ddd146102ad5780631816467f146102d85780631e53dbe91461030157806323b872dd1461032a576101ee565b806306fdde03146101f3578063095ea7b31461021e5780630961fbf71461025b578063153b0d1e14610284576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610795565b6040516102159190612b33565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190612bee565b6107d2565b6040516102529190612c49565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190612c64565b6108c4565b005b34801561029057600080fd5b506102ab60048036038101906102a69190612cbd565b6109e4565b005b3480156102b957600080fd5b506102c2610ad4565b6040516102cf9190612d0c565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa9190612d27565b610af8565b005b34801561030d57600080fd5b5061032860048036038101906103239190612d54565b610cdb565b005b34801561033657600080fd5b50610351600480360381019061034c9190612d81565b610d8f565b60405161035e9190612c49565b60405180910390f35b34801561037357600080fd5b5061037c610f51565b005b34801561038a57600080fd5b50610393611024565b6040516103a09190612df0565b60405180910390f35b3480156103b557600080fd5b506103d060048036038101906103cb9190612d27565b61102d565b005b3480156103de57600080fd5b506103e761111d565b6040516103f49190612d0c565b60405180910390f35b34801561040957600080fd5b50610424600480360381019061041f9190612d27565b61116a565b6040516104319190612d0c565b60405180910390f35b34801561044657600080fd5b5061044f6111b3565b005b34801561045d57600080fd5b50610466611306565b6040516104739190612e1a565b60405180910390f35b34801561048857600080fd5b506104a3600480360381019061049e9190612d27565b61132c565b6040516104b09190612c49565b60405180910390f35b3480156104c557600080fd5b506104ce61135f565b6040516104db9190612e1a565b60405180910390f35b3480156104f057600080fd5b506104f9611388565b6040516105069190612e1a565b60405180910390f35b34801561051b57600080fd5b506105246113ae565b6040516105319190612df0565b60405180910390f35b34801561054657600080fd5b5061054f6113c1565b60405161055c9190612b33565b60405180910390f35b34801561057157600080fd5b5061057a6113fe565b6040516105879190612e1a565b60405180910390f35b34801561059c57600080fd5b506105b760048036038101906105b29190612bee565b611422565b6040516105c49190612c49565b60405180910390f35b3480156105d957600080fd5b506105f460048036038101906105ef9190612d27565b611437565b005b34801561060257600080fd5b5061060b61161a565b6040516106189190612df0565b60405180910390f35b34801561062d57600080fd5b5061063661162d565b6040516106439190612d0c565b60405180910390f35b34801561065857600080fd5b50610673600480360381019061066e9190612c64565b611633565b005b34801561068157600080fd5b5061069c60048036038101906106979190612d27565b611719565b6040516106a99190612c49565b60405180910390f35b3480156106be57600080fd5b506106d960048036038101906106d49190612e35565b611739565b6040516106e69190612d0c565b60405180910390f35b3480156106fb57600080fd5b5061071660048036038101906107119190612cbd565b6117c0565b005b34801561072457600080fd5b5061073f600480360381019061073a9190612d27565b6118b2565b005b34801561074d57600080fd5b50610756611a73565b6040516107639190612ed4565b60405180910390f35b34801561077857600080fd5b50610793600480360381019061078e9190612cbd565b611a99565b005b60606040518060400160405280600881526020017f5155455354204149000000000000000000000000000000000000000000000000815250905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108b29190612d0c565b60405180910390a36001905092915050565b600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610905611c19565b73ffffffffffffffffffffffffffffffffffffffff161461095b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095290612f61565b60405180910390fd5b6000479050600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc606484846109aa9190612fb0565b6109b49190613021565b9081150290604051600060405180830381858888f193505050501580156109df573d6000803e3d6000fd5b505050565b6109ec611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a709061309e565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006012600a610ae491906131f1565b6305f5e100610af39190612fb0565b905090565b610b00611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b849061309e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1490613288565b60405180910390fd5b80600e60036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d1c611c19565b73ffffffffffffffffffffffffffffffffffffffff1614610d72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6990612f61565b60405180910390fd5b80600e60016101000a81548160ff02191690831515021790555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f3d5781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ebc91906132a8565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f48848484611c21565b90509392505050565b610f59611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdd9061309e565b60405180910390fd5b600e60009054906101000a900460ff161561100057600080fd5b6001600e60006101000a81548160ff02191690831515021790555043600d81905550565b60006012905090565b611035611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b99061309e565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611129600061116a565b61113461dead61116a565b6012600a61114291906131f1565b6305f5e1006111519190612fb0565b61115b91906132a8565b61116591906132a8565b905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111bb611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123f9061309e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611358827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6107d2565b9050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60159054906101000a900460ff1681565b60606040518060400160405280600581526020017f5155454149000000000000000000000000000000000000000000000000000000815250905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061142f338484611c21565b905092915050565b61143f611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c39061309e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361155c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155390613288565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600f60149054906101000a900460ff1681565b600d5481565b600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611674611c19565b73ffffffffffffffffffffffffffffffffffffffff16146116ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c190612f61565b60405180910390fd5b60095481111561170f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170690613328565b60405180910390fd5b8060098190555050565b60036020528060005260406000206000915054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611801611c19565b73ffffffffffffffffffffffffffffffffffffffff1614611857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184e90612f61565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6118ba611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193e9061309e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ad906133ba565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611ada611c19565b73ffffffffffffffffffffffffffffffffffffffff1614611b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2790612f61565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb59061344c565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611c91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c88906134de565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf790613570565b60405180910390fd5b60008211611d43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3a90613602565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbc90613694565b60405180910390fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e695750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9f90613726565b60405180910390fd5b611eb06123b5565b158015611f065750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611fa057600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8e906137b8565b60405180910390fd5b611f9f6123c2565b5b600e60009054906101000a900460ff1661209557600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120555750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208b9061384a565b60405180910390fd5b5b600e60029054906101000a900460ff16156120bc576120b58484846123cb565b90506123ae565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561215f5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121e4576000600c54600b546012600a61217a91906131f1565b6305f5e1006121899190612fb0565b6121939190612fb0565b61219d9190613021565b9050808311156121e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d9906138dc565b60405180910390fd5b505b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222f91906132a8565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061227d85612559565b6122875782612292565b61229184846125b0565b5b905061229d846126f0565b156122b55760008311156122b4576122b36127cd565b5b5b80600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230091906138fc565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123a09190612d0c565b60405180910390a360019150505b9392505050565b600080600d541415905090565b43600d81905550565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241891906132a8565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a691906138fc565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125469190612d0c565b60405180910390a3600190509392505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126545750600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b90508061266457829150506126ea565b6000600a54600954856126779190612fb0565b6126819190613021565b905080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126d291906138fc565b9250508190555080846126e591906132a8565b925050505b92915050565b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127595750600e60029054906101000a900460ff16155b80156127ae5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156127c65750600e60019054906101000a900460ff165b9050919050565b6001600e60026101000a81548160ff0219169083151502179055506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000810361283a5750612a86565b6000600267ffffffffffffffff81111561285757612856613930565b5b6040519080825280602002602001820160405280156128855781602001602082028036833780820191505090505b509050308160008151811061289d5761289c61395f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612944573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061296891906139a3565b8160018151811061297c5761297b61395f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612a1a959493929190613ac9565b600060405180830381600087803b158015612a3457600080fd5b505af1158015612a48573d6000803e3d6000fd5b505050507f6730af06a7a0b552d900fed41c1d468b459eaa290e6eefe61a94a339eabbec1c82604051612a7b9190612d0c565b60405180910390a150505b6000600e60026101000a81548160ff021916908315150217905550565b600081519050919050565b600082825260208201905092915050565b60005b83811015612add578082015181840152602081019050612ac2565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b0582612aa3565b612b0f8185612aae565b9350612b1f818560208601612abf565b612b2881612ae9565b840191505092915050565b60006020820190508181036000830152612b4d8184612afa565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b8582612b5a565b9050919050565b612b9581612b7a565b8114612ba057600080fd5b50565b600081359050612bb281612b8c565b92915050565b6000819050919050565b612bcb81612bb8565b8114612bd657600080fd5b50565b600081359050612be881612bc2565b92915050565b60008060408385031215612c0557612c04612b55565b5b6000612c1385828601612ba3565b9250506020612c2485828601612bd9565b9150509250929050565b60008115159050919050565b612c4381612c2e565b82525050565b6000602082019050612c5e6000830184612c3a565b92915050565b600060208284031215612c7a57612c79612b55565b5b6000612c8884828501612bd9565b91505092915050565b612c9a81612c2e565b8114612ca557600080fd5b50565b600081359050612cb781612c91565b92915050565b60008060408385031215612cd457612cd3612b55565b5b6000612ce285828601612ba3565b9250506020612cf385828601612ca8565b9150509250929050565b612d0681612bb8565b82525050565b6000602082019050612d216000830184612cfd565b92915050565b600060208284031215612d3d57612d3c612b55565b5b6000612d4b84828501612ba3565b91505092915050565b600060208284031215612d6a57612d69612b55565b5b6000612d7884828501612ca8565b91505092915050565b600080600060608486031215612d9a57612d99612b55565b5b6000612da886828701612ba3565b9350506020612db986828701612ba3565b9250506040612dca86828701612bd9565b9150509250925092565b600060ff82169050919050565b612dea81612dd4565b82525050565b6000602082019050612e056000830184612de1565b92915050565b612e1481612b7a565b82525050565b6000602082019050612e2f6000830184612e0b565b92915050565b60008060408385031215612e4c57612e4b612b55565b5b6000612e5a85828601612ba3565b9250506020612e6b85828601612ba3565b9150509250929050565b6000819050919050565b6000612e9a612e95612e9084612b5a565b612e75565b612b5a565b9050919050565b6000612eac82612e7f565b9050919050565b6000612ebe82612ea1565b9050919050565b612ece81612eb3565b82525050565b6000602082019050612ee96000830184612ec5565b92915050565b7f51554553542041493a2063616c6c6572206973206e6f742061207465616d206d60008201527f656d626572000000000000000000000000000000000000000000000000000000602082015250565b6000612f4b602583612aae565b9150612f5682612eef565b604082019050919050565b60006020820190508181036000830152612f7a81612f3e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612fbb82612bb8565b9150612fc683612bb8565b9250828202612fd481612bb8565b91508282048414831517612feb57612fea612f81565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061302c82612bb8565b915061303783612bb8565b92508261304757613046612ff2565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613088602083612aae565b915061309382613052565b602082019050919050565b600060208201905081810360008301526130b78161307b565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115613115578086048111156130f1576130f0612f81565b5b60018516156131005780820291505b808102905061310e856130be565b94506130d5565b94509492505050565b60008261312e57600190506131ea565b8161313c57600090506131ea565b8160018114613152576002811461315c5761318b565b60019150506131ea565b60ff84111561316e5761316d612f81565b5b8360020a91508482111561318557613184612f81565b5b506131ea565b5060208310610133831016604e8410600b84101617156131c05782820a9050838111156131bb576131ba612f81565b5b6131ea565b6131cd84848460016130cb565b925090508184048111156131e4576131e3612f81565b5b81810290505b9392505050565b60006131fc82612bb8565b915061320783612dd4565b92506132347fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461311e565b905092915050565b7f57616c6c657420616c7265616479207365740000000000000000000000000000600082015250565b6000613272601283612aae565b915061327d8261323c565b602082019050919050565b600060208201905081810360008301526132a181613265565b9050919050565b60006132b382612bb8565b91506132be83612bb8565b92508282039050818111156132d6576132d5612f81565b5b92915050565b7f51554553542041493a2043616e277420696e637265617365206665652e000000600082015250565b6000613312601d83612aae565b915061331d826132dc565b602082019050919050565b6000602082019050818103600083015261334181613305565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006133a4602683612aae565b91506133af82613348565b604082019050919050565b600060208201905081810360008301526133d381613397565b9050919050565b7f51554553542041493a2043616e277420616c7465722063757272656e74206c6960008201527f7175696469747920706169722e00000000000000000000000000000000000000602082015250565b6000613436602d83612aae565b9150613441826133da565b604082019050919050565b6000602082019050818103600083015261346581613429565b9050919050565b7f51554553542041493a205472616e736665722066726f6d20746865207a65726f60008201527f20616464726573732e0000000000000000000000000000000000000000000000602082015250565b60006134c8602983612aae565b91506134d38261346c565b604082019050919050565b600060208201905081810360008301526134f7816134bb565b9050919050565b7f51554553542041493a205472616e7366657220746f20746865207a65726f206160008201527f6464726573732e00000000000000000000000000000000000000000000000000602082015250565b600061355a602783612aae565b9150613565826134fe565b604082019050919050565b600060208201905081810360008301526135898161354d565b9050919050565b7f51554553542041493a205472616e7366657220616d6f756e74206d757374206260008201527f652067726561746572207468616e207a65726f2e000000000000000000000000602082015250565b60006135ec603483612aae565b91506135f782613590565b604082019050919050565b6000602082019050818103600083015261361b816135df565b9050919050565b7f51554553542041493a20596f752061726520747279696e6720746f207472616e60008201527f73666572206d6f7265207468616e20796f75722062616c616e63652e00000000602082015250565b600061367e603c83612aae565b915061368982613622565b604082019050919050565b600060208201905081810360008301526136ad81613671565b9050919050565b7f51554553542041493a204164647265737320697320626c61636b6c697374656460008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000613710602183612aae565b915061371b826136b4565b604082019050919050565b6000602082019050818103600083015261373f81613703565b9050919050565b7f51554553542041493a204c6971756964697479206e6f7420616464656420796560008201527f742e000000000000000000000000000000000000000000000000000000000000602082015250565b60006137a2602283612aae565b91506137ad82613746565b604082019050919050565b600060208201905081810360008301526137d181613795565b9050919050565b7f51554553542041493a2054726164696e672069732063757272656e746c79206460008201527f697361626c65642e000000000000000000000000000000000000000000000000602082015250565b6000613834602883612aae565b915061383f826137d8565b604082019050919050565b6000602082019050818103600083015261386381613827565b9050919050565b7f51554553542041493a204d61782062757920616d6f756e74206578636565646560008201527f642e205472792061206c6f77657220616d6f756e742e00000000000000000000602082015250565b60006138c6603683612aae565b91506138d18261386a565b604082019050919050565b600060208201905081810360008301526138f5816138b9565b9050919050565b600061390782612bb8565b915061391283612bb8565b925082820190508082111561392a57613929612f81565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061399d81612b8c565b92915050565b6000602082840312156139b9576139b8612b55565b5b60006139c78482850161398e565b91505092915050565b6000819050919050565b60006139f56139f06139eb846139d0565b612e75565b612bb8565b9050919050565b613a05816139da565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a4081612b7a565b82525050565b6000613a528383613a37565b60208301905092915050565b6000602082019050919050565b6000613a7682613a0b565b613a808185613a16565b9350613a8b83613a27565b8060005b83811015613abc578151613aa38882613a46565b9750613aae83613a5e565b925050600181019050613a8f565b5085935050505092915050565b600060a082019050613ade6000830188612cfd565b613aeb60208301876139fc565b8181036040830152613afd8186613a6b565b9050613b0c6060830185612e0b565b613b196080830184612cfd565b969550505050505056fea2646970667358221220e0652fd087003b4073bce9f0f17279cc997c0fdfb9395442b3f14f89decdcf0e64736f6c634300081800330000000000000000000000009039ac98bab897072a5f75f9abaf53805472238a00000000000000000000000003ba718c593a1e14f3c6c16b37119a09a23a3c6a
Deployed Bytecode
0x6080604052600436106101e75760003560e01c80638da5cb5b11610102578063bf56b37111610095578063e3acfb9111610064578063e3acfb91146106ef578063f2fde38b14610718578063f887ea4014610741578063fdad93021461076c576101ee565b8063bf56b37114610621578063c5730d9d1461064c578063dbac26e914610675578063dd62ed3e146106b2576101ee565b8063a8aa1b31116100d1578063a8aa1b3114610565578063a9059cbb14610590578063aacebbe3146105cd578063aea2d205146105f6576101ee565b80638da5cb5b146104b95780638ea5220f146104e457806391546ab41461050f57806395d89b411461053a576101ee565b8063293230b81161017a57806370a082311161014957806370a08231146103fd578063715018a61461043a57806375f0a874146104515780637c6e0a5e1461047c576101ee565b8063293230b814610367578063313ce5671461037e5780633c8f81d0146103a95780634f3e1efc146103d2576101ee565b806318160ddd116101b657806318160ddd146102ad5780631816467f146102d85780631e53dbe91461030157806323b872dd1461032a576101ee565b806306fdde03146101f3578063095ea7b31461021e5780630961fbf71461025b578063153b0d1e14610284576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610795565b6040516102159190612b33565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190612bee565b6107d2565b6040516102529190612c49565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190612c64565b6108c4565b005b34801561029057600080fd5b506102ab60048036038101906102a69190612cbd565b6109e4565b005b3480156102b957600080fd5b506102c2610ad4565b6040516102cf9190612d0c565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa9190612d27565b610af8565b005b34801561030d57600080fd5b5061032860048036038101906103239190612d54565b610cdb565b005b34801561033657600080fd5b50610351600480360381019061034c9190612d81565b610d8f565b60405161035e9190612c49565b60405180910390f35b34801561037357600080fd5b5061037c610f51565b005b34801561038a57600080fd5b50610393611024565b6040516103a09190612df0565b60405180910390f35b3480156103b557600080fd5b506103d060048036038101906103cb9190612d27565b61102d565b005b3480156103de57600080fd5b506103e761111d565b6040516103f49190612d0c565b60405180910390f35b34801561040957600080fd5b50610424600480360381019061041f9190612d27565b61116a565b6040516104319190612d0c565b60405180910390f35b34801561044657600080fd5b5061044f6111b3565b005b34801561045d57600080fd5b50610466611306565b6040516104739190612e1a565b60405180910390f35b34801561048857600080fd5b506104a3600480360381019061049e9190612d27565b61132c565b6040516104b09190612c49565b60405180910390f35b3480156104c557600080fd5b506104ce61135f565b6040516104db9190612e1a565b60405180910390f35b3480156104f057600080fd5b506104f9611388565b6040516105069190612e1a565b60405180910390f35b34801561051b57600080fd5b506105246113ae565b6040516105319190612df0565b60405180910390f35b34801561054657600080fd5b5061054f6113c1565b60405161055c9190612b33565b60405180910390f35b34801561057157600080fd5b5061057a6113fe565b6040516105879190612e1a565b60405180910390f35b34801561059c57600080fd5b506105b760048036038101906105b29190612bee565b611422565b6040516105c49190612c49565b60405180910390f35b3480156105d957600080fd5b506105f460048036038101906105ef9190612d27565b611437565b005b34801561060257600080fd5b5061060b61161a565b6040516106189190612df0565b60405180910390f35b34801561062d57600080fd5b5061063661162d565b6040516106439190612d0c565b60405180910390f35b34801561065857600080fd5b50610673600480360381019061066e9190612c64565b611633565b005b34801561068157600080fd5b5061069c60048036038101906106979190612d27565b611719565b6040516106a99190612c49565b60405180910390f35b3480156106be57600080fd5b506106d960048036038101906106d49190612e35565b611739565b6040516106e69190612d0c565b60405180910390f35b3480156106fb57600080fd5b5061071660048036038101906107119190612cbd565b6117c0565b005b34801561072457600080fd5b5061073f600480360381019061073a9190612d27565b6118b2565b005b34801561074d57600080fd5b50610756611a73565b6040516107639190612ed4565b60405180910390f35b34801561077857600080fd5b50610793600480360381019061078e9190612cbd565b611a99565b005b60606040518060400160405280600881526020017f5155455354204149000000000000000000000000000000000000000000000000815250905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108b29190612d0c565b60405180910390a36001905092915050565b600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610905611c19565b73ffffffffffffffffffffffffffffffffffffffff161461095b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095290612f61565b60405180910390fd5b6000479050600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc606484846109aa9190612fb0565b6109b49190613021565b9081150290604051600060405180830381858888f193505050501580156109df573d6000803e3d6000fd5b505050565b6109ec611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a709061309e565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006012600a610ae491906131f1565b6305f5e100610af39190612fb0565b905090565b610b00611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b849061309e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1490613288565b60405180910390fd5b80600e60036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d1c611c19565b73ffffffffffffffffffffffffffffffffffffffff1614610d72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6990612f61565b60405180910390fd5b80600e60016101000a81548160ff02191690831515021790555050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f3d5781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ebc91906132a8565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f48848484611c21565b90509392505050565b610f59611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdd9061309e565b60405180910390fd5b600e60009054906101000a900460ff161561100057600080fd5b6001600e60006101000a81548160ff02191690831515021790555043600d81905550565b60006012905090565b611035611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b99061309e565b60405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611129600061116a565b61113461dead61116a565b6012600a61114291906131f1565b6305f5e1006111519190612fb0565b61115b91906132a8565b61116591906132a8565b905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111bb611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123f9061309e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611358827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6107d2565b9050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60159054906101000a900460ff1681565b60606040518060400160405280600581526020017f5155454149000000000000000000000000000000000000000000000000000000815250905090565b7f000000000000000000000000b91d0f34f79d6573c8b49fadbcdaff1dc8c9872d81565b600061142f338484611c21565b905092915050565b61143f611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c39061309e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361155c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155390613288565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600f60149054906101000a900460ff1681565b600d5481565b600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611674611c19565b73ffffffffffffffffffffffffffffffffffffffff16146116ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c190612f61565b60405180910390fd5b60095481111561170f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170690613328565b60405180910390fd5b8060098190555050565b60036020528060005260406000206000915054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611801611c19565b73ffffffffffffffffffffffffffffffffffffffff1614611857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184e90612f61565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6118ba611c19565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193e9061309e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ad906133ba565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611ada611c19565b73ffffffffffffffffffffffffffffffffffffffff1614611b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2790612f61565b60405180910390fd5b7f000000000000000000000000b91d0f34f79d6573c8b49fadbcdaff1dc8c9872d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb59061344c565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611c91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c88906134de565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf790613570565b60405180910390fd5b60008211611d43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3a90613602565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbc90613694565b60405180910390fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e695750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9f90613726565b60405180910390fd5b611eb06123b5565b158015611f065750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611fa057600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8e906137b8565b60405180910390fd5b611f9f6123c2565b5b600e60009054906101000a900460ff1661209557600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120555750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208b9061384a565b60405180910390fd5b5b600e60029054906101000a900460ff16156120bc576120b58484846123cb565b90506123ae565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561215f5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121e4576000600c54600b546012600a61217a91906131f1565b6305f5e1006121899190612fb0565b6121939190612fb0565b61219d9190613021565b9050808311156121e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d9906138dc565b60405180910390fd5b505b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222f91906132a8565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061227d85612559565b6122875782612292565b61229184846125b0565b5b905061229d846126f0565b156122b55760008311156122b4576122b36127cd565b5b5b80600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230091906138fc565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123a09190612d0c565b60405180910390a360019150505b9392505050565b600080600d541415905090565b43600d81905550565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241891906132a8565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124a691906138fc565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125469190612d0c565b60405180910390a3600190509392505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126545750600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b90508061266457829150506126ea565b6000600a54600954856126779190612fb0565b6126819190613021565b905080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126d291906138fc565b9250508190555080846126e591906132a8565b925050505b92915050565b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127595750600e60029054906101000a900460ff16155b80156127ae5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156127c65750600e60019054906101000a900460ff165b9050919050565b6001600e60026101000a81548160ff0219169083151502179055506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000810361283a5750612a86565b6000600267ffffffffffffffff81111561285757612856613930565b5b6040519080825280602002602001820160405280156128855781602001602082028036833780820191505090505b509050308160008151811061289d5761289c61395f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612944573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061296891906139a3565b8160018151811061297c5761297b61395f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612a1a959493929190613ac9565b600060405180830381600087803b158015612a3457600080fd5b505af1158015612a48573d6000803e3d6000fd5b505050507f6730af06a7a0b552d900fed41c1d468b459eaa290e6eefe61a94a339eabbec1c82604051612a7b9190612d0c565b60405180910390a150505b6000600e60026101000a81548160ff021916908315150217905550565b600081519050919050565b600082825260208201905092915050565b60005b83811015612add578082015181840152602081019050612ac2565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b0582612aa3565b612b0f8185612aae565b9350612b1f818560208601612abf565b612b2881612ae9565b840191505092915050565b60006020820190508181036000830152612b4d8184612afa565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b8582612b5a565b9050919050565b612b9581612b7a565b8114612ba057600080fd5b50565b600081359050612bb281612b8c565b92915050565b6000819050919050565b612bcb81612bb8565b8114612bd657600080fd5b50565b600081359050612be881612bc2565b92915050565b60008060408385031215612c0557612c04612b55565b5b6000612c1385828601612ba3565b9250506020612c2485828601612bd9565b9150509250929050565b60008115159050919050565b612c4381612c2e565b82525050565b6000602082019050612c5e6000830184612c3a565b92915050565b600060208284031215612c7a57612c79612b55565b5b6000612c8884828501612bd9565b91505092915050565b612c9a81612c2e565b8114612ca557600080fd5b50565b600081359050612cb781612c91565b92915050565b60008060408385031215612cd457612cd3612b55565b5b6000612ce285828601612ba3565b9250506020612cf385828601612ca8565b9150509250929050565b612d0681612bb8565b82525050565b6000602082019050612d216000830184612cfd565b92915050565b600060208284031215612d3d57612d3c612b55565b5b6000612d4b84828501612ba3565b91505092915050565b600060208284031215612d6a57612d69612b55565b5b6000612d7884828501612ca8565b91505092915050565b600080600060608486031215612d9a57612d99612b55565b5b6000612da886828701612ba3565b9350506020612db986828701612ba3565b9250506040612dca86828701612bd9565b9150509250925092565b600060ff82169050919050565b612dea81612dd4565b82525050565b6000602082019050612e056000830184612de1565b92915050565b612e1481612b7a565b82525050565b6000602082019050612e2f6000830184612e0b565b92915050565b60008060408385031215612e4c57612e4b612b55565b5b6000612e5a85828601612ba3565b9250506020612e6b85828601612ba3565b9150509250929050565b6000819050919050565b6000612e9a612e95612e9084612b5a565b612e75565b612b5a565b9050919050565b6000612eac82612e7f565b9050919050565b6000612ebe82612ea1565b9050919050565b612ece81612eb3565b82525050565b6000602082019050612ee96000830184612ec5565b92915050565b7f51554553542041493a2063616c6c6572206973206e6f742061207465616d206d60008201527f656d626572000000000000000000000000000000000000000000000000000000602082015250565b6000612f4b602583612aae565b9150612f5682612eef565b604082019050919050565b60006020820190508181036000830152612f7a81612f3e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612fbb82612bb8565b9150612fc683612bb8565b9250828202612fd481612bb8565b91508282048414831517612feb57612fea612f81565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061302c82612bb8565b915061303783612bb8565b92508261304757613046612ff2565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613088602083612aae565b915061309382613052565b602082019050919050565b600060208201905081810360008301526130b78161307b565b9050919050565b60008160011c9050919050565b6000808291508390505b6001851115613115578086048111156130f1576130f0612f81565b5b60018516156131005780820291505b808102905061310e856130be565b94506130d5565b94509492505050565b60008261312e57600190506131ea565b8161313c57600090506131ea565b8160018114613152576002811461315c5761318b565b60019150506131ea565b60ff84111561316e5761316d612f81565b5b8360020a91508482111561318557613184612f81565b5b506131ea565b5060208310610133831016604e8410600b84101617156131c05782820a9050838111156131bb576131ba612f81565b5b6131ea565b6131cd84848460016130cb565b925090508184048111156131e4576131e3612f81565b5b81810290505b9392505050565b60006131fc82612bb8565b915061320783612dd4565b92506132347fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461311e565b905092915050565b7f57616c6c657420616c7265616479207365740000000000000000000000000000600082015250565b6000613272601283612aae565b915061327d8261323c565b602082019050919050565b600060208201905081810360008301526132a181613265565b9050919050565b60006132b382612bb8565b91506132be83612bb8565b92508282039050818111156132d6576132d5612f81565b5b92915050565b7f51554553542041493a2043616e277420696e637265617365206665652e000000600082015250565b6000613312601d83612aae565b915061331d826132dc565b602082019050919050565b6000602082019050818103600083015261334181613305565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006133a4602683612aae565b91506133af82613348565b604082019050919050565b600060208201905081810360008301526133d381613397565b9050919050565b7f51554553542041493a2043616e277420616c7465722063757272656e74206c6960008201527f7175696469747920706169722e00000000000000000000000000000000000000602082015250565b6000613436602d83612aae565b9150613441826133da565b604082019050919050565b6000602082019050818103600083015261346581613429565b9050919050565b7f51554553542041493a205472616e736665722066726f6d20746865207a65726f60008201527f20616464726573732e0000000000000000000000000000000000000000000000602082015250565b60006134c8602983612aae565b91506134d38261346c565b604082019050919050565b600060208201905081810360008301526134f7816134bb565b9050919050565b7f51554553542041493a205472616e7366657220746f20746865207a65726f206160008201527f6464726573732e00000000000000000000000000000000000000000000000000602082015250565b600061355a602783612aae565b9150613565826134fe565b604082019050919050565b600060208201905081810360008301526135898161354d565b9050919050565b7f51554553542041493a205472616e7366657220616d6f756e74206d757374206260008201527f652067726561746572207468616e207a65726f2e000000000000000000000000602082015250565b60006135ec603483612aae565b91506135f782613590565b604082019050919050565b6000602082019050818103600083015261361b816135df565b9050919050565b7f51554553542041493a20596f752061726520747279696e6720746f207472616e60008201527f73666572206d6f7265207468616e20796f75722062616c616e63652e00000000602082015250565b600061367e603c83612aae565b915061368982613622565b604082019050919050565b600060208201905081810360008301526136ad81613671565b9050919050565b7f51554553542041493a204164647265737320697320626c61636b6c697374656460008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000613710602183612aae565b915061371b826136b4565b604082019050919050565b6000602082019050818103600083015261373f81613703565b9050919050565b7f51554553542041493a204c6971756964697479206e6f7420616464656420796560008201527f742e000000000000000000000000000000000000000000000000000000000000602082015250565b60006137a2602283612aae565b91506137ad82613746565b604082019050919050565b600060208201905081810360008301526137d181613795565b9050919050565b7f51554553542041493a2054726164696e672069732063757272656e746c79206460008201527f697361626c65642e000000000000000000000000000000000000000000000000602082015250565b6000613834602883612aae565b915061383f826137d8565b604082019050919050565b6000602082019050818103600083015261386381613827565b9050919050565b7f51554553542041493a204d61782062757920616d6f756e74206578636565646560008201527f642e205472792061206c6f77657220616d6f756e742e00000000000000000000602082015250565b60006138c6603683612aae565b91506138d18261386a565b604082019050919050565b600060208201905081810360008301526138f5816138b9565b9050919050565b600061390782612bb8565b915061391283612bb8565b925082820190508082111561392a57613929612f81565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061399d81612b8c565b92915050565b6000602082840312156139b9576139b8612b55565b5b60006139c78482850161398e565b91505092915050565b6000819050919050565b60006139f56139f06139eb846139d0565b612e75565b612bb8565b9050919050565b613a05816139da565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613a4081612b7a565b82525050565b6000613a528383613a37565b60208301905092915050565b6000602082019050919050565b6000613a7682613a0b565b613a808185613a16565b9350613a8b83613a27565b8060005b83811015613abc578151613aa38882613a46565b9750613aae83613a5e565b925050600181019050613a8f565b5085935050505092915050565b600060a082019050613ade6000830188612cfd565b613aeb60208301876139fc565b8181036040830152613afd8186613a6b565b9050613b0c6060830185612e0b565b613b196080830184612cfd565b969550505050505056fea2646970667358221220e0652fd087003b4073bce9f0f17279cc997c0fdfb9395442b3f14f89decdcf0e64736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000009039ac98bab897072a5f75f9abaf53805472238a00000000000000000000000003ba718c593a1e14f3c6c16b37119a09a23a3c6a
-----Decoded View---------------
Arg [0] : _devWallet (address): 0x9039Ac98BAB897072a5f75F9abAf53805472238a
Arg [1] : _marketingWallet (address): 0x03bA718C593a1e14F3c6C16B37119A09A23a3c6a
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000009039ac98bab897072a5f75f9abaf53805472238a
Arg [1] : 00000000000000000000000003ba718c593a1e14f3c6c16b37119a09a23a3c6a
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.