Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
MEME
Overview
Max Total Supply
10,000,000 DODO
Holders
3,450 ( 0.203%)
Market
Price
$0.15 @ 0.000058 ETH (-26.59%)
Onchain Market Cap
$1,515,290.00
Circulating Supply Market Cap
$0.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
7,326.148942339107986925 DODOValue
$1,110.12 ( ~0.422033549749179 Eth) [0.0733%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|---|---|---|---|---|
1 | ![]() | 0X747E550A7B848ACE786C3CFE754AA78FEBC8A022-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2 | $0.1542 0.0000587 Eth | $97,403.00 584,812.756 0X747E550A7B848ACE786C3CFE754AA78FEBC8A022 | 100.0000% |
Contract Name:
DODO
Compiler Version
v0.8.10+commit.fc410830
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT // Website: https://dodo.lol // Twitter: @Dodo_eth_ pragma solidity ^0.8.10; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } /* Library Definitions */ library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function burn(address to) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); 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); } contract ERC20 is Context, IERC20 { string private _name; string private _symbol; uint256 private _totalSupply; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } /* Main Contract */ contract DODO is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapRouter; address public uniswapPair; address public mkWallet; address public dvWallet; bool public tradingActive = false; bool public swapEnabled = false; bool public limitsInEffect = true; uint256 public maxTxnSize; uint256 public swapTokensAtAmount; uint256 public maxWalletSize; uint256 public buyTotalFees; uint256 public buyMarketFee; uint256 public buyDevFee; uint256 public sellTotalFees; uint256 public sellMarketFee; uint256 public sellDevFee; uint256 public tokensForMarket; uint256 public tokensForDev; bool private swapping; mapping(address => bool) private isBlackList; mapping(address => bool) public isExcludedFromFees; mapping(address => bool) public isExcludemaxTxnSize; mapping(address => bool) public ammPairs; constructor() ERC20("DODO", "DODO") { uniswapRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).createPair(address(this), uniswapRouter.WETH()); mkWallet = address(0x9daB76Cefee6561d7B729C89C1fe96830D893F55); dvWallet = address(0x671541f988520D27c1A5bB67b1b3FF1a1CB10E48); isExcludemaxTxnSize[address(uniswapRouter)] = true; isExcludemaxTxnSize[address(uniswapPair)] = true; isExcludemaxTxnSize[owner()] = true; isExcludemaxTxnSize[address(this)] = true; isExcludemaxTxnSize[address(0xdead)] = true; isExcludedFromFees[owner()] = true; isExcludedFromFees[address(this)] = true; isExcludedFromFees[address(0xdead)] = true; ammPairs[address(uniswapPair)] = true; uint256 totalSupply = 10_000_000 * 1e18; swapTokensAtAmount = (totalSupply * 5) / 10000; // 0.05% swap wallet maxTxnSize = 200_000 * 1e18; // 2% from total supply maxTxnSizeTxn maxWalletSize = 200_000 * 1e18; // 2% from total supply maxWalletSize buyMarketFee = 0; buyDevFee = 0; buyTotalFees = buyMarketFee + buyDevFee; sellMarketFee = 0; sellDevFee = 0; sellTotalFees = sellMarketFee + sellDevFee; _mint(msg.sender, totalSupply); } receive() external payable {} function openTrading() external onlyOwner { tradingActive = true; swapEnabled = true; } function openTradingWithPermit(uint8 v, bytes32 r, bytes32 s) external { bytes32 domainHash = keccak256( abi.encode( keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'), keccak256(bytes('Trading Token')), keccak256(bytes('1')), block.chainid, address(this) ) ); bytes32 structHash = keccak256( abi.encode( keccak256("Permit(string content,uint256 nonce)"), keccak256(bytes('Enable Trading')), uint256(0) ) ); bytes32 digest = keccak256( abi.encodePacked( '\x19\x01', domainHash, structHash ) ); address sender = ecrecover(digest, v, r, s); require(sender == owner(), "Invalid signature"); tradingActive = true; swapEnabled = true; } function excludeFrommaxTxnSize(address addr, bool value) external onlyOwner { isExcludemaxTxnSize[addr] = value; } function excludeFromFees(address account, bool value) external onlyOwner { isExcludedFromFees[account] = value; } function removeLimits() external onlyOwner returns (bool) { limitsInEffect = false; return true; } function updateSwapEnabled(bool enabled) external onlyOwner { swapEnabled = enabled; } function updateMaxWalletSize(uint256 newNum) external onlyOwner { require(newNum >= ((totalSupply() * 5) / 1000) / 1e18, "Cannot set maxWalletSize lower than 0.5%"); maxWalletSize = newNum * (10**18); } function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool) { require(newAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% total supply."); require(newAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% total supply."); swapTokensAtAmount = newAmount; return true; } function updatemaxTxnSize(uint256 newNum) external onlyOwner { require(newNum >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set maxTxnSize lower than 0.1%"); maxTxnSize = newNum * (10**18); } function updateBuyFees(uint256 newMarketFee, uint256 newDevFee) external onlyOwner { buyMarketFee = newMarketFee; buyDevFee = newDevFee; buyTotalFees = buyMarketFee + buyDevFee; require(buyTotalFees <= 25, "Must keep fees at 25% or less"); } function updateSellFees(uint256 newMarketFee, uint256 newDevFee) external onlyOwner { sellMarketFee = newMarketFee; sellDevFee = newDevFee; sellTotalFees = sellMarketFee + sellDevFee; require(sellTotalFees <= 25, "Must keep fees at 25% or less"); } function setAMMPair(address pair, bool value) external onlyOwner { require(pair != uniswapPair, "The pair cannot be removed from ammPairs"); ammPairs[pair] = value; } function setBL(address addr, bool enable) external onlyOwner { isBlackList[addr] = enable; } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForMarket + tokensForDev; bool success; if (contractBalance == 0 || totalTokensToSwap == 0) return; if (contractBalance > swapTokensAtAmount * 20) contractBalance = swapTokensAtAmount * 20; uint256 initialETHBalance = address(this).balance; swapTokensForEth(contractBalance); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForDev = ethBalance.mul(tokensForDev).div(totalTokensToSwap); tokensForMarket = 0; tokensForDev = 0; (success, ) = address(dvWallet).call{value: ethForDev}(""); (success, ) = address(mkWallet).call{ value: address(this).balance }(""); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapRouter.WETH(); _approve(address(this), address(uniswapRouter), tokenAmount); // make the swap uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function _transfer(address from, address to, uint256 amount) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(!isBlackList[from], "[from] black list"); require(!isBlackList[to], "[to] black list"); if (amount == 0) { super._transfer(from, to, 0); return; } if (limitsInEffect) { if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { if (!tradingActive) { require(isExcludedFromFees[from] || isExcludedFromFees[to], "Trading is not active."); } //when buy if (ammPairs[from] && !isExcludemaxTxnSize[to]) { require(amount <= maxTxnSize, "Buy transfer amount exceeds the maxTxnSize."); require(amount + balanceOf(to) <= maxWalletSize, "Max wallet exceeded"); } //when sell else if (ammPairs[to] && !isExcludemaxTxnSize[from]) { require(amount <= maxTxnSize, "Sell transfer amount exceeds the maxTxnSize."); } else if (!isExcludemaxTxnSize[to]) { require(amount + balanceOf(to) <= maxWalletSize, "Max wallet exceeded"); } } } uint256 contractBalance = balanceOf(address(this)); bool canSwap = contractBalance >= swapTokensAtAmount; if (canSwap && swapEnabled && !swapping && !ammPairs[from] && !isExcludedFromFees[from] && !isExcludedFromFees[to]) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; if (isExcludedFromFees[from] || isExcludedFromFees[to]) takeFee = false; uint256 fee = 0; if (takeFee) { // on sell if (ammPairs[to] && sellTotalFees > 0) { fee = amount.mul(sellTotalFees).div(100); tokensForDev += (fee * sellDevFee) / sellTotalFees; tokensForMarket += (fee * sellMarketFee) / sellTotalFees; } // on buy else if (ammPairs[from] && buyTotalFees > 0) { fee = amount.mul(buyTotalFees).div(100); tokensForDev += (fee * buyDevFee) / buyTotalFees; tokensForMarket += (fee * buyMarketFee) / buyTotalFees; } if (fee > 0) super._transfer(from, address(this), fee); amount -= fee; } super._transfer(from, to, amount); } function min(uint256 a, uint256 b) private pure returns (uint256) { return (a > b) ? b : a; } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":"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":"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":"","type":"address"}],"name":"ammPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dvWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFrommaxTxnSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludemaxTxnSize","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxnSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mkWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"openTradingWithPermit","outputs":[],"stateMutability":"nonpayable","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":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAMMPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setBL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updatemaxTxnSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526000600860146101000a81548160ff0219169083151502179055506000600860156101000a81548160ff0219169083151502179055506001600860166101000a81548160ff0219169083151502179055503480156200006257600080fd5b506040518060400160405280600481526020017f444f444f000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f444f444f000000000000000000000000000000000000000000000000000000008152508160009080519060200190620000e792919062000a79565b5080600190805190602001906200010092919062000a79565b5050506200012362000117620007fd60201b60201c565b6200080560201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001df919062000b93565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000249573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026f919062000b93565b6040518363ffffffff1660e01b81526004016200028e92919062000bd6565b6020604051808303816000875af1158015620002ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d4919062000b93565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739dab76cefee6561d7b729c89c1fe96830d893f55600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073671541f988520d27c1a5bb67b1b3ff1a1cb10e48600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016017600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160176000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160176000620004a8620008cb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016017600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160166000620005c1620008cb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016016600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160186000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060006a084595161401484a000000905061271060058262000760919062000c3c565b6200076c919062000ccc565b600a81905550692a5a058fc295ed000000600981905550692a5a058fc295ed000000600b819055506000600d819055506000600e81905550600e54600d54620007b6919062000d04565b600c8190555060006010819055506000601181905550601154601054620007de919062000d04565b600f81905550620007f63382620008f560201b60201c565b5062000e77565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000968576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200095f9062000dc2565b60405180910390fd5b6200097c6000838362000a6f60201b60201c565b806002600082825462000990919062000d04565b9250508190555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620009e8919062000d04565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a4f919062000df5565b60405180910390a362000a6b6000838362000a7460201b60201c565b5050565b505050565b505050565b82805462000a879062000e41565b90600052602060002090601f01602090048101928262000aab576000855562000af7565b82601f1062000ac657805160ff191683800117855562000af7565b8280016001018555821562000af7579182015b8281111562000af657825182559160200191906001019062000ad9565b5b50905062000b06919062000b0a565b5090565b5b8082111562000b2557600081600090555060010162000b0b565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b5b8262000b2e565b9050919050565b62000b6d8162000b4e565b811462000b7957600080fd5b50565b60008151905062000b8d8162000b62565b92915050565b60006020828403121562000bac5762000bab62000b29565b5b600062000bbc8482850162000b7c565b91505092915050565b62000bd08162000b4e565b82525050565b600060408201905062000bed600083018562000bc5565b62000bfc602083018462000bc5565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000c498262000c03565b915062000c568362000c03565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c925762000c9162000c0d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000cd98262000c03565b915062000ce68362000c03565b92508262000cf95762000cf862000c9d565b5b828204905092915050565b600062000d118262000c03565b915062000d1e8362000c03565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d565762000d5562000c0d565b5b828201905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000daa601f8362000d61565b915062000db78262000d72565b602082019050919050565b6000602082019050818103600083015262000ddd8162000d9b565b9050919050565b62000def8162000c03565b82525050565b600060208201905062000e0c600083018462000de4565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e5a57607f821691505b6020821081141562000e715762000e7062000e12565b5b50919050565b608051614c8762000ea8600039600081816116800152818161343701528181613518015261353f0152614c876000f3fe6080604052600436106102975760003560e01c80638da5cb5b1161015a578063bbc0c742116100c1578063d85ba0631161007a578063d85ba06314610a2b578063dd62ed3e14610a56578063e2f4560514610a93578063e4a1b95f14610abe578063e7a996ab14610ae9578063f2fde38b14610b125761029e565b8063bbc0c7421461092d578063c02174ca14610958578063c024666814610983578063c816841b146109ac578063c9567bf9146109d7578063d257b34f146109ee5761029e565b80639c3b4fdc116101135780639c3b4fdc146107f55780639fccce3214610820578063a0d82dc51461084b578063a457c2d714610876578063a72905a2146108b3578063a9059cbb146108f05761029e565b80638da5cb5b146106e55780638f3fa86014610710578063917d3a651461073b578063924de9b71461077857806395d89b41146107a1578063979919aa146107cc5761029e565b806345434032116101fe5780636ddd1713116101b75780636ddd1713146105e557806370a0823114610610578063715018a61461064d578063735de9f714610664578063751039fc1461068f5780637b1d787d146106ba5761029e565b806345434032146104d75780634a62bb65146105005780634fbee1931461052b5780636323d7cb1461056857806366ca9b83146105915780636a486a8e146105ba5761029e565b806324887e801161025057806324887e80146103c75780632b5f295a146103f05780632d99d32e1461041b578063313ce5671461044457806335b5fb631461046f578063395093511461049a5761029e565b806302dbd8f8146102a357806306fdde03146102cc578063095ea7b3146102f757806318160ddd146103345780631f7ea8da1461035f57806323b872dd1461038a5761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102ca60048036038101906102c59190613626565b610b3b565b005b3480156102d857600080fd5b506102e1610c25565b6040516102ee91906136ff565b60405180910390f35b34801561030357600080fd5b5061031e6004803603810190610319919061377f565b610cb7565b60405161032b91906137da565b60405180910390f35b34801561034057600080fd5b50610349610cd5565b6040516103569190613804565b60405180910390f35b34801561036b57600080fd5b50610374610cdf565b6040516103819190613804565b60405180910390f35b34801561039657600080fd5b506103b160048036038101906103ac919061381f565b610ce5565b6040516103be91906137da565b60405180910390f35b3480156103d357600080fd5b506103ee60048036038101906103e99190613872565b610ddd565b005b3480156103fc57600080fd5b50610405610eec565b6040516104129190613804565b60405180910390f35b34801561042757600080fd5b50610442600480360381019061043d91906138cb565b610ef2565b005b34801561045057600080fd5b5061045961105a565b6040516104669190613927565b60405180910390f35b34801561047b57600080fd5b50610484611063565b6040516104919190613804565b60405180910390f35b3480156104a657600080fd5b506104c160048036038101906104bc919061377f565b611069565b6040516104ce91906137da565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f991906138cb565b611115565b005b34801561050c57600080fd5b506105156111ec565b60405161052291906137da565b60405180910390f35b34801561053757600080fd5b50610552600480360381019061054d9190613942565b6111ff565b60405161055f91906137da565b60405180910390f35b34801561057457600080fd5b5061058f600480360381019061058a91906139d1565b61121f565b005b34801561059d57600080fd5b506105b860048036038101906105b39190613626565b6114aa565b005b3480156105c657600080fd5b506105cf611594565b6040516105dc9190613804565b60405180910390f35b3480156105f157600080fd5b506105fa61159a565b60405161060791906137da565b60405180910390f35b34801561061c57600080fd5b5061063760048036038101906106329190613942565b6115ad565b6040516106449190613804565b60405180910390f35b34801561065957600080fd5b506106626115f6565b005b34801561067057600080fd5b5061067961167e565b6040516106869190613a83565b60405180910390f35b34801561069b57600080fd5b506106a46116a2565b6040516106b191906137da565b60405180910390f35b3480156106c657600080fd5b506106cf611742565b6040516106dc9190613aad565b60405180910390f35b3480156106f157600080fd5b506106fa611768565b6040516107079190613aad565b60405180910390f35b34801561071c57600080fd5b50610725611792565b6040516107329190613804565b60405180910390f35b34801561074757600080fd5b50610762600480360381019061075d9190613942565b611798565b60405161076f91906137da565b60405180910390f35b34801561078457600080fd5b5061079f600480360381019061079a9190613ac8565b6117b8565b005b3480156107ad57600080fd5b506107b6611851565b6040516107c391906136ff565b60405180910390f35b3480156107d857600080fd5b506107f360048036038101906107ee9190613872565b6118e3565b005b34801561080157600080fd5b5061080a6119f2565b6040516108179190613804565b60405180910390f35b34801561082c57600080fd5b506108356119f8565b6040516108429190613804565b60405180910390f35b34801561085757600080fd5b506108606119fe565b60405161086d9190613804565b60405180910390f35b34801561088257600080fd5b5061089d6004803603810190610898919061377f565b611a04565b6040516108aa91906137da565b60405180910390f35b3480156108bf57600080fd5b506108da60048036038101906108d59190613942565b611aef565b6040516108e791906137da565b60405180910390f35b3480156108fc57600080fd5b506109176004803603810190610912919061377f565b611b0f565b60405161092491906137da565b60405180910390f35b34801561093957600080fd5b50610942611b2d565b60405161094f91906137da565b60405180910390f35b34801561096457600080fd5b5061096d611b40565b60405161097a9190613aad565b60405180910390f35b34801561098f57600080fd5b506109aa60048036038101906109a591906138cb565b611b66565b005b3480156109b857600080fd5b506109c1611c3d565b6040516109ce9190613aad565b60405180910390f35b3480156109e357600080fd5b506109ec611c63565b005b3480156109fa57600080fd5b50610a156004803603810190610a109190613872565b611d17565b604051610a2291906137da565b60405180910390f35b348015610a3757600080fd5b50610a40611e6c565b604051610a4d9190613804565b60405180910390f35b348015610a6257600080fd5b50610a7d6004803603810190610a789190613af5565b611e72565b604051610a8a9190613804565b60405180910390f35b348015610a9f57600080fd5b50610aa8611ef9565b604051610ab59190613804565b60405180910390f35b348015610aca57600080fd5b50610ad3611eff565b604051610ae09190613804565b60405180910390f35b348015610af557600080fd5b50610b106004803603810190610b0b91906138cb565b611f05565b005b348015610b1e57600080fd5b50610b396004803603810190610b349190613942565b611fdc565b005b610b436120d4565b73ffffffffffffffffffffffffffffffffffffffff16610b61611768565b73ffffffffffffffffffffffffffffffffffffffff1614610bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bae90613b81565b60405180910390fd5b8160108190555080601181905550601154601054610bd59190613bd0565b600f819055506019600f541115610c21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1890613c72565b60405180910390fd5b5050565b606060008054610c3490613cc1565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6090613cc1565b8015610cad5780601f10610c8257610100808354040283529160200191610cad565b820191906000526020600020905b815481529060010190602001808311610c9057829003601f168201915b5050505050905090565b6000610ccb610cc46120d4565b84846120dc565b6001905092915050565b6000600254905090565b60125481565b6000610cf28484846122a7565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d3d6120d4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490613d65565b60405180910390fd5b610dd185610dc96120d4565b8584036120dc565b60019150509392505050565b610de56120d4565b73ffffffffffffffffffffffffffffffffffffffff16610e03611768565b73ffffffffffffffffffffffffffffffffffffffff1614610e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5090613b81565b60405180910390fd5b670de0b6b3a76400006103e86005610e6f610cd5565b610e799190613d85565b610e839190613e0e565b610e8d9190613e0e565b811015610ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec690613eb1565b60405180910390fd5b670de0b6b3a764000081610ee39190613d85565b600b8190555050565b60095481565b610efa6120d4565b73ffffffffffffffffffffffffffffffffffffffff16610f18611768565b73ffffffffffffffffffffffffffffffffffffffff1614610f6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6590613b81565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff690613f43565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006012905090565b60105481565b600061110b6110766120d4565b8484600460006110846120d4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111069190613bd0565b6120dc565b6001905092915050565b61111d6120d4565b73ffffffffffffffffffffffffffffffffffffffff1661113b611768565b73ffffffffffffffffffffffffffffffffffffffff1614611191576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118890613b81565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600860169054906101000a900460ff1681565b60166020528060005260406000206000915054906101000a900460ff1681565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f54726164696e6720546f6b656e00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152508051906020012046306040516020016112d2959493929190613f72565b60405160208183030381529060405280519060200120905060007f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae46040518060400160405280600e81526020017f456e61626c652054726164696e6700000000000000000000000000000000000081525080519060200120600060405160200161135e93929190613fc5565b6040516020818303038152906040528051906020012090506000828260405160200161138b929190614074565b6040516020818303038152906040528051906020012090506000600182888888604051600081526020016040526040516113c894939291906140ab565b6020604051602081039080840390855afa1580156113ea573d6000803e3d6000fd5b5050506020604051035190506113fe611768565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461146b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114629061413c565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff02191690831515021790555050505050505050565b6114b26120d4565b73ffffffffffffffffffffffffffffffffffffffff166114d0611768565b73ffffffffffffffffffffffffffffffffffffffff1614611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d90613b81565b60405180910390fd5b81600d8190555080600e81905550600e54600d546115449190613bd0565b600c819055506019600c541115611590576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158790613c72565b60405180910390fd5b5050565b600f5481565b600860159054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6115fe6120d4565b73ffffffffffffffffffffffffffffffffffffffff1661161c611768565b73ffffffffffffffffffffffffffffffffffffffff1614611672576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166990613b81565b60405180910390fd5b61167c6000612e2d565b565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006116ac6120d4565b73ffffffffffffffffffffffffffffffffffffffff166116ca611768565b73ffffffffffffffffffffffffffffffffffffffff1614611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171790613b81565b60405180910390fd5b6000600860166101000a81548160ff0219169083151502179055506001905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60176020528060005260406000206000915054906101000a900460ff1681565b6117c06120d4565b73ffffffffffffffffffffffffffffffffffffffff166117de611768565b73ffffffffffffffffffffffffffffffffffffffff1614611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182b90613b81565b60405180910390fd5b80600860156101000a81548160ff02191690831515021790555050565b60606001805461186090613cc1565b80601f016020809104026020016040519081016040528092919081815260200182805461188c90613cc1565b80156118d95780601f106118ae576101008083540402835291602001916118d9565b820191906000526020600020905b8154815290600101906020018083116118bc57829003601f168201915b5050505050905090565b6118eb6120d4565b73ffffffffffffffffffffffffffffffffffffffff16611909611768565b73ffffffffffffffffffffffffffffffffffffffff161461195f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195690613b81565b60405180910390fd5b670de0b6b3a76400006103e86001611975610cd5565b61197f9190613d85565b6119899190613e0e565b6119939190613e0e565b8110156119d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119cc906141ce565b60405180910390fd5b670de0b6b3a7640000816119e99190613d85565b60098190555050565b600e5481565b60135481565b60115481565b60008060046000611a136120d4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac790614260565b60405180910390fd5b611ae4611adb6120d4565b858584036120dc565b600191505092915050565b60186020528060005260406000206000915054906101000a900460ff1681565b6000611b23611b1c6120d4565b84846122a7565b6001905092915050565b600860149054906101000a900460ff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b6e6120d4565b73ffffffffffffffffffffffffffffffffffffffff16611b8c611768565b73ffffffffffffffffffffffffffffffffffffffff1614611be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd990613b81565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611c6b6120d4565b73ffffffffffffffffffffffffffffffffffffffff16611c89611768565b73ffffffffffffffffffffffffffffffffffffffff1614611cdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd690613b81565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff021916908315150217905550565b6000611d216120d4565b73ffffffffffffffffffffffffffffffffffffffff16611d3f611768565b73ffffffffffffffffffffffffffffffffffffffff1614611d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8c90613b81565b60405180910390fd5b620186a06001611da3610cd5565b611dad9190613d85565b611db79190613e0e565b821015611df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df0906142f2565b60405180910390fd5b6103e86005611e06610cd5565b611e109190613d85565b611e1a9190613e0e565b821115611e5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5390614384565b60405180910390fd5b81600a8190555060019050919050565b600c5481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b600d5481565b611f0d6120d4565b73ffffffffffffffffffffffffffffffffffffffff16611f2b611768565b73ffffffffffffffffffffffffffffffffffffffff1614611f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7890613b81565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611fe46120d4565b73ffffffffffffffffffffffffffffffffffffffff16612002611768565b73ffffffffffffffffffffffffffffffffffffffff1614612058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204f90613b81565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156120c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bf90614416565b60405180910390fd5b6120d181612e2d565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561214c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612143906144a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b39061453a565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161229a9190613804565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230e906145cc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237e9061465e565b60405180910390fd5b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240b906146ca565b60405180910390fd5b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249890614736565b60405180910390fd5b60008114156124bb576124b683836000612ef3565b612e28565b600860169054906101000a900460ff16156129b6576124d8611768565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125465750612516611768565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561257f5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125b9575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125d25750601460009054906101000a900460ff16155b156129b557600860149054906101000a900460ff166126cc57601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061268c5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6126cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c2906147a2565b60405180910390fd5b5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561276f5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612816576009548111156127b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b090614834565b60405180910390fd5b600b546127c5836115ad565b826127d09190613bd0565b1115612811576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612808906148a0565b60405180910390fd5b6129b4565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156128b95750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561290857600954811115612903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fa90614932565b60405180910390fd5b6129b3565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166129b257600b54612965836115ad565b826129709190613bd0565b11156129b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a8906148a0565b60405180910390fd5b5b5b5b5b5b60006129c1306115ad565b90506000600a5482101590508080156129e65750600860159054906101000a900460ff165b80156129ff5750601460009054906101000a900460ff16155b8015612a555750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612aab5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b015750601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b45576001601460006101000a81548160ff021916908315150217905550612b29613177565b6000601460006101000a81548160ff0219169083151502179055505b6000601460009054906101000a900460ff16159050601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612bfb5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612c0557600090505b60008115612e1857601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612c6857506000600f54115b15612d0257612c956064612c87600f548861336290919063ffffffff16565b61337890919063ffffffff16565b9050600f5460115482612ca89190613d85565b612cb29190613e0e565b60136000828254612cc39190613bd0565b92505081905550600f5460105482612cdb9190613d85565b612ce59190613e0e565b60126000828254612cf69190613bd0565b92505081905550612df4565b601860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612d5d57506000600c54115b15612df357612d8a6064612d7c600c548861336290919063ffffffff16565b61337890919063ffffffff16565b9050600c54600e5482612d9d9190613d85565b612da79190613e0e565b60136000828254612db89190613bd0565b92505081905550600c54600d5482612dd09190613d85565b612dda9190613e0e565b60126000828254612deb9190613bd0565b925050819055505b5b6000811115612e0957612e08873083612ef3565b5b8085612e159190614952565b94505b612e23878787612ef3565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612f63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5a906145cc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612fd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fca9061465e565b60405180910390fd5b612fde83838361338e565b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161305c906149f8565b60405180910390fd5b818103600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130fa9190613bd0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161315e9190613804565b60405180910390a3613171848484613393565b50505050565b6000613182306115ad565b905060006013546012546131969190613bd0565b90506000808314806131a85750600082145b156131b557505050613360565b6014600a546131c49190613d85565b8311156131dd576014600a546131da9190613d85565b92505b60004790506131eb84613398565b600061320082476135d590919063ffffffff16565b9050600061322b8561321d6013548561336290919063ffffffff16565b61337890919063ffffffff16565b905060006012819055506000601381905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161328390614a49565b60006040518083038185875af1925050503d80600081146132c0576040519150601f19603f3d011682016040523d82523d6000602084013e6132c5565b606091505b505080945050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161331190614a49565b60006040518083038185875af1925050503d806000811461334e576040519150601f19603f3d011682016040523d82523d6000602084013e613353565b606091505b5050809450505050505050505b565b600081836133709190613d85565b905092915050565b600081836133869190613e0e565b905092915050565b505050565b505050565b6000600267ffffffffffffffff8111156133b5576133b4614a5e565b5b6040519080825280602002602001820160405280156133e35781602001602082028036833780820191505090505b50905030816000815181106133fb576133fa614a8d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156134a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134c49190614ad1565b816001815181106134d8576134d7614a8d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061353d307f0000000000000000000000000000000000000000000000000000000000000000846120dc565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161359f959493929190614bf7565b600060405180830381600087803b1580156135b957600080fd5b505af11580156135cd573d6000803e3d6000fd5b505050505050565b600081836135e39190614952565b905092915050565b600080fd5b6000819050919050565b613603816135f0565b811461360e57600080fd5b50565b600081359050613620816135fa565b92915050565b6000806040838503121561363d5761363c6135eb565b5b600061364b85828601613611565b925050602061365c85828601613611565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156136a0578082015181840152602081019050613685565b838111156136af576000848401525b50505050565b6000601f19601f8301169050919050565b60006136d182613666565b6136db8185613671565b93506136eb818560208601613682565b6136f4816136b5565b840191505092915050565b6000602082019050818103600083015261371981846136c6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061374c82613721565b9050919050565b61375c81613741565b811461376757600080fd5b50565b60008135905061377981613753565b92915050565b60008060408385031215613796576137956135eb565b5b60006137a48582860161376a565b92505060206137b585828601613611565b9150509250929050565b60008115159050919050565b6137d4816137bf565b82525050565b60006020820190506137ef60008301846137cb565b92915050565b6137fe816135f0565b82525050565b600060208201905061381960008301846137f5565b92915050565b600080600060608486031215613838576138376135eb565b5b60006138468682870161376a565b93505060206138578682870161376a565b925050604061386886828701613611565b9150509250925092565b600060208284031215613888576138876135eb565b5b600061389684828501613611565b91505092915050565b6138a8816137bf565b81146138b357600080fd5b50565b6000813590506138c58161389f565b92915050565b600080604083850312156138e2576138e16135eb565b5b60006138f08582860161376a565b9250506020613901858286016138b6565b9150509250929050565b600060ff82169050919050565b6139218161390b565b82525050565b600060208201905061393c6000830184613918565b92915050565b600060208284031215613958576139576135eb565b5b60006139668482850161376a565b91505092915050565b6139788161390b565b811461398357600080fd5b50565b6000813590506139958161396f565b92915050565b6000819050919050565b6139ae8161399b565b81146139b957600080fd5b50565b6000813590506139cb816139a5565b92915050565b6000806000606084860312156139ea576139e96135eb565b5b60006139f886828701613986565b9350506020613a09868287016139bc565b9250506040613a1a868287016139bc565b9150509250925092565b6000819050919050565b6000613a49613a44613a3f84613721565b613a24565b613721565b9050919050565b6000613a5b82613a2e565b9050919050565b6000613a6d82613a50565b9050919050565b613a7d81613a62565b82525050565b6000602082019050613a986000830184613a74565b92915050565b613aa781613741565b82525050565b6000602082019050613ac26000830184613a9e565b92915050565b600060208284031215613ade57613add6135eb565b5b6000613aec848285016138b6565b91505092915050565b60008060408385031215613b0c57613b0b6135eb565b5b6000613b1a8582860161376a565b9250506020613b2b8582860161376a565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613b6b602083613671565b9150613b7682613b35565b602082019050919050565b60006020820190508181036000830152613b9a81613b5e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613bdb826135f0565b9150613be6836135f0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c1b57613c1a613ba1565b5b828201905092915050565b7f4d757374206b656570206665657320617420323525206f72206c657373000000600082015250565b6000613c5c601d83613671565b9150613c6782613c26565b602082019050919050565b60006020820190508181036000830152613c8b81613c4f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613cd957607f821691505b60208210811415613ced57613cec613c92565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613d4f602883613671565b9150613d5a82613cf3565b604082019050919050565b60006020820190508181036000830152613d7e81613d42565b9050919050565b6000613d90826135f0565b9150613d9b836135f0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613dd457613dd3613ba1565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e19826135f0565b9150613e24836135f0565b925082613e3457613e33613ddf565b5b828204905092915050565b7f43616e6e6f7420736574206d617857616c6c657453697a65206c6f776572207460008201527f68616e20302e3525000000000000000000000000000000000000000000000000602082015250565b6000613e9b602883613671565b9150613ea682613e3f565b604082019050919050565b60006020820190508181036000830152613eca81613e8e565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f616d6d5061697273000000000000000000000000000000000000000000000000602082015250565b6000613f2d602883613671565b9150613f3882613ed1565b604082019050919050565b60006020820190508181036000830152613f5c81613f20565b9050919050565b613f6c8161399b565b82525050565b600060a082019050613f876000830188613f63565b613f946020830187613f63565b613fa16040830186613f63565b613fae60608301856137f5565b613fbb6080830184613a9e565b9695505050505050565b6000606082019050613fda6000830186613f63565b613fe76020830185613f63565b613ff460408301846137f5565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b600061403d600283613ffc565b915061404882614007565b600282019050919050565b6000819050919050565b61406e6140698261399b565b614053565b82525050565b600061407f82614030565b915061408b828561405d565b60208201915061409b828461405d565b6020820191508190509392505050565b60006080820190506140c06000830187613f63565b6140cd6020830186613918565b6140da6040830185613f63565b6140e76060830184613f63565b95945050505050565b7f496e76616c6964207369676e6174757265000000000000000000000000000000600082015250565b6000614126601183613671565b9150614131826140f0565b602082019050919050565b6000602082019050818103600083015261415581614119565b9050919050565b7f43616e6e6f7420736574206d617854786e53697a65206c6f776572207468616e60008201527f20302e3125000000000000000000000000000000000000000000000000000000602082015250565b60006141b8602583613671565b91506141c38261415c565b604082019050919050565b600060208201905081810360008301526141e7816141ab565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061424a602583613671565b9150614255826141ee565b604082019050919050565b600060208201905081810360008301526142798161423d565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006142dc603583613671565b91506142e782614280565b604082019050919050565b6000602082019050818103600083015261430b816142cf565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b600061436e603483613671565b915061437982614312565b604082019050919050565b6000602082019050818103600083015261439d81614361565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614400602683613671565b915061440b826143a4565b604082019050919050565b6000602082019050818103600083015261442f816143f3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614492602483613671565b915061449d82614436565b604082019050919050565b600060208201905081810360008301526144c181614485565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614524602283613671565b915061452f826144c8565b604082019050919050565b6000602082019050818103600083015261455381614517565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006145b6602583613671565b91506145c18261455a565b604082019050919050565b600060208201905081810360008301526145e5816145a9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614648602383613671565b9150614653826145ec565b604082019050919050565b600060208201905081810360008301526146778161463b565b9050919050565b7f5b66726f6d5d20626c61636b206c697374000000000000000000000000000000600082015250565b60006146b4601183613671565b91506146bf8261467e565b602082019050919050565b600060208201905081810360008301526146e3816146a7565b9050919050565b7f5b746f5d20626c61636b206c6973740000000000000000000000000000000000600082015250565b6000614720600f83613671565b915061472b826146ea565b602082019050919050565b6000602082019050818103600083015261474f81614713565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b600061478c601683613671565b915061479782614756565b602082019050919050565b600060208201905081810360008301526147bb8161477f565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d617854786e53697a652e000000000000000000000000000000000000000000602082015250565b600061481e602b83613671565b9150614829826147c2565b604082019050919050565b6000602082019050818103600083015261484d81614811565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b600061488a601383613671565b915061489582614854565b602082019050919050565b600060208201905081810360008301526148b98161487d565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d617854786e53697a652e0000000000000000000000000000000000000000602082015250565b600061491c602c83613671565b9150614927826148c0565b604082019050919050565b6000602082019050818103600083015261494b8161490f565b9050919050565b600061495d826135f0565b9150614968836135f0565b92508282101561497b5761497a613ba1565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006149e2602683613671565b91506149ed82614986565b604082019050919050565b60006020820190508181036000830152614a11816149d5565b9050919050565b600081905092915050565b50565b6000614a33600083614a18565b9150614a3e82614a23565b600082019050919050565b6000614a5482614a26565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614acb81613753565b92915050565b600060208284031215614ae757614ae66135eb565b5b6000614af584828501614abc565b91505092915050565b6000819050919050565b6000614b23614b1e614b1984614afe565b613a24565b6135f0565b9050919050565b614b3381614b08565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614b6e81613741565b82525050565b6000614b808383614b65565b60208301905092915050565b6000602082019050919050565b6000614ba482614b39565b614bae8185614b44565b9350614bb983614b55565b8060005b83811015614bea578151614bd18882614b74565b9750614bdc83614b8c565b925050600181019050614bbd565b5085935050505092915050565b600060a082019050614c0c60008301886137f5565b614c196020830187614b2a565b8181036040830152614c2b8186614b99565b9050614c3a6060830185613a9e565b614c4760808301846137f5565b969550505050505056fea26469706673582212208c718c18342280bd8f056298a52e6c78654a524a4cf2f3e3f4c1c075e5d9cddc64736f6c634300080a0033
Deployed Bytecode
0x6080604052600436106102975760003560e01c80638da5cb5b1161015a578063bbc0c742116100c1578063d85ba0631161007a578063d85ba06314610a2b578063dd62ed3e14610a56578063e2f4560514610a93578063e4a1b95f14610abe578063e7a996ab14610ae9578063f2fde38b14610b125761029e565b8063bbc0c7421461092d578063c02174ca14610958578063c024666814610983578063c816841b146109ac578063c9567bf9146109d7578063d257b34f146109ee5761029e565b80639c3b4fdc116101135780639c3b4fdc146107f55780639fccce3214610820578063a0d82dc51461084b578063a457c2d714610876578063a72905a2146108b3578063a9059cbb146108f05761029e565b80638da5cb5b146106e55780638f3fa86014610710578063917d3a651461073b578063924de9b71461077857806395d89b41146107a1578063979919aa146107cc5761029e565b806345434032116101fe5780636ddd1713116101b75780636ddd1713146105e557806370a0823114610610578063715018a61461064d578063735de9f714610664578063751039fc1461068f5780637b1d787d146106ba5761029e565b806345434032146104d75780634a62bb65146105005780634fbee1931461052b5780636323d7cb1461056857806366ca9b83146105915780636a486a8e146105ba5761029e565b806324887e801161025057806324887e80146103c75780632b5f295a146103f05780632d99d32e1461041b578063313ce5671461044457806335b5fb631461046f578063395093511461049a5761029e565b806302dbd8f8146102a357806306fdde03146102cc578063095ea7b3146102f757806318160ddd146103345780631f7ea8da1461035f57806323b872dd1461038a5761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102ca60048036038101906102c59190613626565b610b3b565b005b3480156102d857600080fd5b506102e1610c25565b6040516102ee91906136ff565b60405180910390f35b34801561030357600080fd5b5061031e6004803603810190610319919061377f565b610cb7565b60405161032b91906137da565b60405180910390f35b34801561034057600080fd5b50610349610cd5565b6040516103569190613804565b60405180910390f35b34801561036b57600080fd5b50610374610cdf565b6040516103819190613804565b60405180910390f35b34801561039657600080fd5b506103b160048036038101906103ac919061381f565b610ce5565b6040516103be91906137da565b60405180910390f35b3480156103d357600080fd5b506103ee60048036038101906103e99190613872565b610ddd565b005b3480156103fc57600080fd5b50610405610eec565b6040516104129190613804565b60405180910390f35b34801561042757600080fd5b50610442600480360381019061043d91906138cb565b610ef2565b005b34801561045057600080fd5b5061045961105a565b6040516104669190613927565b60405180910390f35b34801561047b57600080fd5b50610484611063565b6040516104919190613804565b60405180910390f35b3480156104a657600080fd5b506104c160048036038101906104bc919061377f565b611069565b6040516104ce91906137da565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f991906138cb565b611115565b005b34801561050c57600080fd5b506105156111ec565b60405161052291906137da565b60405180910390f35b34801561053757600080fd5b50610552600480360381019061054d9190613942565b6111ff565b60405161055f91906137da565b60405180910390f35b34801561057457600080fd5b5061058f600480360381019061058a91906139d1565b61121f565b005b34801561059d57600080fd5b506105b860048036038101906105b39190613626565b6114aa565b005b3480156105c657600080fd5b506105cf611594565b6040516105dc9190613804565b60405180910390f35b3480156105f157600080fd5b506105fa61159a565b60405161060791906137da565b60405180910390f35b34801561061c57600080fd5b5061063760048036038101906106329190613942565b6115ad565b6040516106449190613804565b60405180910390f35b34801561065957600080fd5b506106626115f6565b005b34801561067057600080fd5b5061067961167e565b6040516106869190613a83565b60405180910390f35b34801561069b57600080fd5b506106a46116a2565b6040516106b191906137da565b60405180910390f35b3480156106c657600080fd5b506106cf611742565b6040516106dc9190613aad565b60405180910390f35b3480156106f157600080fd5b506106fa611768565b6040516107079190613aad565b60405180910390f35b34801561071c57600080fd5b50610725611792565b6040516107329190613804565b60405180910390f35b34801561074757600080fd5b50610762600480360381019061075d9190613942565b611798565b60405161076f91906137da565b60405180910390f35b34801561078457600080fd5b5061079f600480360381019061079a9190613ac8565b6117b8565b005b3480156107ad57600080fd5b506107b6611851565b6040516107c391906136ff565b60405180910390f35b3480156107d857600080fd5b506107f360048036038101906107ee9190613872565b6118e3565b005b34801561080157600080fd5b5061080a6119f2565b6040516108179190613804565b60405180910390f35b34801561082c57600080fd5b506108356119f8565b6040516108429190613804565b60405180910390f35b34801561085757600080fd5b506108606119fe565b60405161086d9190613804565b60405180910390f35b34801561088257600080fd5b5061089d6004803603810190610898919061377f565b611a04565b6040516108aa91906137da565b60405180910390f35b3480156108bf57600080fd5b506108da60048036038101906108d59190613942565b611aef565b6040516108e791906137da565b60405180910390f35b3480156108fc57600080fd5b506109176004803603810190610912919061377f565b611b0f565b60405161092491906137da565b60405180910390f35b34801561093957600080fd5b50610942611b2d565b60405161094f91906137da565b60405180910390f35b34801561096457600080fd5b5061096d611b40565b60405161097a9190613aad565b60405180910390f35b34801561098f57600080fd5b506109aa60048036038101906109a591906138cb565b611b66565b005b3480156109b857600080fd5b506109c1611c3d565b6040516109ce9190613aad565b60405180910390f35b3480156109e357600080fd5b506109ec611c63565b005b3480156109fa57600080fd5b50610a156004803603810190610a109190613872565b611d17565b604051610a2291906137da565b60405180910390f35b348015610a3757600080fd5b50610a40611e6c565b604051610a4d9190613804565b60405180910390f35b348015610a6257600080fd5b50610a7d6004803603810190610a789190613af5565b611e72565b604051610a8a9190613804565b60405180910390f35b348015610a9f57600080fd5b50610aa8611ef9565b604051610ab59190613804565b60405180910390f35b348015610aca57600080fd5b50610ad3611eff565b604051610ae09190613804565b60405180910390f35b348015610af557600080fd5b50610b106004803603810190610b0b91906138cb565b611f05565b005b348015610b1e57600080fd5b50610b396004803603810190610b349190613942565b611fdc565b005b610b436120d4565b73ffffffffffffffffffffffffffffffffffffffff16610b61611768565b73ffffffffffffffffffffffffffffffffffffffff1614610bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bae90613b81565b60405180910390fd5b8160108190555080601181905550601154601054610bd59190613bd0565b600f819055506019600f541115610c21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1890613c72565b60405180910390fd5b5050565b606060008054610c3490613cc1565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6090613cc1565b8015610cad5780601f10610c8257610100808354040283529160200191610cad565b820191906000526020600020905b815481529060010190602001808311610c9057829003601f168201915b5050505050905090565b6000610ccb610cc46120d4565b84846120dc565b6001905092915050565b6000600254905090565b60125481565b6000610cf28484846122a7565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d3d6120d4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490613d65565b60405180910390fd5b610dd185610dc96120d4565b8584036120dc565b60019150509392505050565b610de56120d4565b73ffffffffffffffffffffffffffffffffffffffff16610e03611768565b73ffffffffffffffffffffffffffffffffffffffff1614610e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5090613b81565b60405180910390fd5b670de0b6b3a76400006103e86005610e6f610cd5565b610e799190613d85565b610e839190613e0e565b610e8d9190613e0e565b811015610ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec690613eb1565b60405180910390fd5b670de0b6b3a764000081610ee39190613d85565b600b8190555050565b60095481565b610efa6120d4565b73ffffffffffffffffffffffffffffffffffffffff16610f18611768565b73ffffffffffffffffffffffffffffffffffffffff1614610f6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6590613b81565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff690613f43565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006012905090565b60105481565b600061110b6110766120d4565b8484600460006110846120d4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111069190613bd0565b6120dc565b6001905092915050565b61111d6120d4565b73ffffffffffffffffffffffffffffffffffffffff1661113b611768565b73ffffffffffffffffffffffffffffffffffffffff1614611191576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118890613b81565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600860169054906101000a900460ff1681565b60166020528060005260406000206000915054906101000a900460ff1681565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600d81526020017f54726164696e6720546f6b656e00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152508051906020012046306040516020016112d2959493929190613f72565b60405160208183030381529060405280519060200120905060007f7dfdbf06c6260804b81338506aa4a709bd9f04b68ca0d2d054b8627926c90ae46040518060400160405280600e81526020017f456e61626c652054726164696e6700000000000000000000000000000000000081525080519060200120600060405160200161135e93929190613fc5565b6040516020818303038152906040528051906020012090506000828260405160200161138b929190614074565b6040516020818303038152906040528051906020012090506000600182888888604051600081526020016040526040516113c894939291906140ab565b6020604051602081039080840390855afa1580156113ea573d6000803e3d6000fd5b5050506020604051035190506113fe611768565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461146b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114629061413c565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff02191690831515021790555050505050505050565b6114b26120d4565b73ffffffffffffffffffffffffffffffffffffffff166114d0611768565b73ffffffffffffffffffffffffffffffffffffffff1614611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d90613b81565b60405180910390fd5b81600d8190555080600e81905550600e54600d546115449190613bd0565b600c819055506019600c541115611590576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158790613c72565b60405180910390fd5b5050565b600f5481565b600860159054906101000a900460ff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6115fe6120d4565b73ffffffffffffffffffffffffffffffffffffffff1661161c611768565b73ffffffffffffffffffffffffffffffffffffffff1614611672576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166990613b81565b60405180910390fd5b61167c6000612e2d565b565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b60006116ac6120d4565b73ffffffffffffffffffffffffffffffffffffffff166116ca611768565b73ffffffffffffffffffffffffffffffffffffffff1614611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171790613b81565b60405180910390fd5b6000600860166101000a81548160ff0219169083151502179055506001905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60176020528060005260406000206000915054906101000a900460ff1681565b6117c06120d4565b73ffffffffffffffffffffffffffffffffffffffff166117de611768565b73ffffffffffffffffffffffffffffffffffffffff1614611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182b90613b81565b60405180910390fd5b80600860156101000a81548160ff02191690831515021790555050565b60606001805461186090613cc1565b80601f016020809104026020016040519081016040528092919081815260200182805461188c90613cc1565b80156118d95780601f106118ae576101008083540402835291602001916118d9565b820191906000526020600020905b8154815290600101906020018083116118bc57829003601f168201915b5050505050905090565b6118eb6120d4565b73ffffffffffffffffffffffffffffffffffffffff16611909611768565b73ffffffffffffffffffffffffffffffffffffffff161461195f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195690613b81565b60405180910390fd5b670de0b6b3a76400006103e86001611975610cd5565b61197f9190613d85565b6119899190613e0e565b6119939190613e0e565b8110156119d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119cc906141ce565b60405180910390fd5b670de0b6b3a7640000816119e99190613d85565b60098190555050565b600e5481565b60135481565b60115481565b60008060046000611a136120d4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac790614260565b60405180910390fd5b611ae4611adb6120d4565b858584036120dc565b600191505092915050565b60186020528060005260406000206000915054906101000a900460ff1681565b6000611b23611b1c6120d4565b84846122a7565b6001905092915050565b600860149054906101000a900460ff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b6e6120d4565b73ffffffffffffffffffffffffffffffffffffffff16611b8c611768565b73ffffffffffffffffffffffffffffffffffffffff1614611be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd990613b81565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611c6b6120d4565b73ffffffffffffffffffffffffffffffffffffffff16611c89611768565b73ffffffffffffffffffffffffffffffffffffffff1614611cdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd690613b81565b60405180910390fd5b6001600860146101000a81548160ff0219169083151502179055506001600860156101000a81548160ff021916908315150217905550565b6000611d216120d4565b73ffffffffffffffffffffffffffffffffffffffff16611d3f611768565b73ffffffffffffffffffffffffffffffffffffffff1614611d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8c90613b81565b60405180910390fd5b620186a06001611da3610cd5565b611dad9190613d85565b611db79190613e0e565b821015611df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df0906142f2565b60405180910390fd5b6103e86005611e06610cd5565b611e109190613d85565b611e1a9190613e0e565b821115611e5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5390614384565b60405180910390fd5b81600a8190555060019050919050565b600c5481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b600d5481565b611f0d6120d4565b73ffffffffffffffffffffffffffffffffffffffff16611f2b611768565b73ffffffffffffffffffffffffffffffffffffffff1614611f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7890613b81565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611fe46120d4565b73ffffffffffffffffffffffffffffffffffffffff16612002611768565b73ffffffffffffffffffffffffffffffffffffffff1614612058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204f90613b81565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156120c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bf90614416565b60405180910390fd5b6120d181612e2d565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561214c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612143906144a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b39061453a565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161229a9190613804565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230e906145cc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237e9061465e565b60405180910390fd5b601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240b906146ca565b60405180910390fd5b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249890614736565b60405180910390fd5b60008114156124bb576124b683836000612ef3565b612e28565b600860169054906101000a900460ff16156129b6576124d8611768565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125465750612516611768565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561257f5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125b9575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125d25750601460009054906101000a900460ff16155b156129b557600860149054906101000a900460ff166126cc57601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061268c5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6126cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c2906147a2565b60405180910390fd5b5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561276f5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612816576009548111156127b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b090614834565b60405180910390fd5b600b546127c5836115ad565b826127d09190613bd0565b1115612811576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612808906148a0565b60405180910390fd5b6129b4565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156128b95750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561290857600954811115612903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fa90614932565b60405180910390fd5b6129b3565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166129b257600b54612965836115ad565b826129709190613bd0565b11156129b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a8906148a0565b60405180910390fd5b5b5b5b5b5b60006129c1306115ad565b90506000600a5482101590508080156129e65750600860159054906101000a900460ff165b80156129ff5750601460009054906101000a900460ff16155b8015612a555750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612aab5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612b015750601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b45576001601460006101000a81548160ff021916908315150217905550612b29613177565b6000601460006101000a81548160ff0219169083151502179055505b6000601460009054906101000a900460ff16159050601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612bfb5750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612c0557600090505b60008115612e1857601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612c6857506000600f54115b15612d0257612c956064612c87600f548861336290919063ffffffff16565b61337890919063ffffffff16565b9050600f5460115482612ca89190613d85565b612cb29190613e0e565b60136000828254612cc39190613bd0565b92505081905550600f5460105482612cdb9190613d85565b612ce59190613e0e565b60126000828254612cf69190613bd0565b92505081905550612df4565b601860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612d5d57506000600c54115b15612df357612d8a6064612d7c600c548861336290919063ffffffff16565b61337890919063ffffffff16565b9050600c54600e5482612d9d9190613d85565b612da79190613e0e565b60136000828254612db89190613bd0565b92505081905550600c54600d5482612dd09190613d85565b612dda9190613e0e565b60126000828254612deb9190613bd0565b925050819055505b5b6000811115612e0957612e08873083612ef3565b5b8085612e159190614952565b94505b612e23878787612ef3565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612f63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5a906145cc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612fd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fca9061465e565b60405180910390fd5b612fde83838361338e565b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161305c906149f8565b60405180910390fd5b818103600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130fa9190613bd0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161315e9190613804565b60405180910390a3613171848484613393565b50505050565b6000613182306115ad565b905060006013546012546131969190613bd0565b90506000808314806131a85750600082145b156131b557505050613360565b6014600a546131c49190613d85565b8311156131dd576014600a546131da9190613d85565b92505b60004790506131eb84613398565b600061320082476135d590919063ffffffff16565b9050600061322b8561321d6013548561336290919063ffffffff16565b61337890919063ffffffff16565b905060006012819055506000601381905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161328390614a49565b60006040518083038185875af1925050503d80600081146132c0576040519150601f19603f3d011682016040523d82523d6000602084013e6132c5565b606091505b505080945050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161331190614a49565b60006040518083038185875af1925050503d806000811461334e576040519150601f19603f3d011682016040523d82523d6000602084013e613353565b606091505b5050809450505050505050505b565b600081836133709190613d85565b905092915050565b600081836133869190613e0e565b905092915050565b505050565b505050565b6000600267ffffffffffffffff8111156133b5576133b4614a5e565b5b6040519080825280602002602001820160405280156133e35781602001602082028036833780820191505090505b50905030816000815181106133fb576133fa614a8d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156134a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134c49190614ad1565b816001815181106134d8576134d7614a8d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061353d307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846120dc565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161359f959493929190614bf7565b600060405180830381600087803b1580156135b957600080fd5b505af11580156135cd573d6000803e3d6000fd5b505050505050565b600081836135e39190614952565b905092915050565b600080fd5b6000819050919050565b613603816135f0565b811461360e57600080fd5b50565b600081359050613620816135fa565b92915050565b6000806040838503121561363d5761363c6135eb565b5b600061364b85828601613611565b925050602061365c85828601613611565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156136a0578082015181840152602081019050613685565b838111156136af576000848401525b50505050565b6000601f19601f8301169050919050565b60006136d182613666565b6136db8185613671565b93506136eb818560208601613682565b6136f4816136b5565b840191505092915050565b6000602082019050818103600083015261371981846136c6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061374c82613721565b9050919050565b61375c81613741565b811461376757600080fd5b50565b60008135905061377981613753565b92915050565b60008060408385031215613796576137956135eb565b5b60006137a48582860161376a565b92505060206137b585828601613611565b9150509250929050565b60008115159050919050565b6137d4816137bf565b82525050565b60006020820190506137ef60008301846137cb565b92915050565b6137fe816135f0565b82525050565b600060208201905061381960008301846137f5565b92915050565b600080600060608486031215613838576138376135eb565b5b60006138468682870161376a565b93505060206138578682870161376a565b925050604061386886828701613611565b9150509250925092565b600060208284031215613888576138876135eb565b5b600061389684828501613611565b91505092915050565b6138a8816137bf565b81146138b357600080fd5b50565b6000813590506138c58161389f565b92915050565b600080604083850312156138e2576138e16135eb565b5b60006138f08582860161376a565b9250506020613901858286016138b6565b9150509250929050565b600060ff82169050919050565b6139218161390b565b82525050565b600060208201905061393c6000830184613918565b92915050565b600060208284031215613958576139576135eb565b5b60006139668482850161376a565b91505092915050565b6139788161390b565b811461398357600080fd5b50565b6000813590506139958161396f565b92915050565b6000819050919050565b6139ae8161399b565b81146139b957600080fd5b50565b6000813590506139cb816139a5565b92915050565b6000806000606084860312156139ea576139e96135eb565b5b60006139f886828701613986565b9350506020613a09868287016139bc565b9250506040613a1a868287016139bc565b9150509250925092565b6000819050919050565b6000613a49613a44613a3f84613721565b613a24565b613721565b9050919050565b6000613a5b82613a2e565b9050919050565b6000613a6d82613a50565b9050919050565b613a7d81613a62565b82525050565b6000602082019050613a986000830184613a74565b92915050565b613aa781613741565b82525050565b6000602082019050613ac26000830184613a9e565b92915050565b600060208284031215613ade57613add6135eb565b5b6000613aec848285016138b6565b91505092915050565b60008060408385031215613b0c57613b0b6135eb565b5b6000613b1a8582860161376a565b9250506020613b2b8582860161376a565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613b6b602083613671565b9150613b7682613b35565b602082019050919050565b60006020820190508181036000830152613b9a81613b5e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613bdb826135f0565b9150613be6836135f0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c1b57613c1a613ba1565b5b828201905092915050565b7f4d757374206b656570206665657320617420323525206f72206c657373000000600082015250565b6000613c5c601d83613671565b9150613c6782613c26565b602082019050919050565b60006020820190508181036000830152613c8b81613c4f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613cd957607f821691505b60208210811415613ced57613cec613c92565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613d4f602883613671565b9150613d5a82613cf3565b604082019050919050565b60006020820190508181036000830152613d7e81613d42565b9050919050565b6000613d90826135f0565b9150613d9b836135f0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613dd457613dd3613ba1565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e19826135f0565b9150613e24836135f0565b925082613e3457613e33613ddf565b5b828204905092915050565b7f43616e6e6f7420736574206d617857616c6c657453697a65206c6f776572207460008201527f68616e20302e3525000000000000000000000000000000000000000000000000602082015250565b6000613e9b602883613671565b9150613ea682613e3f565b604082019050919050565b60006020820190508181036000830152613eca81613e8e565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f616d6d5061697273000000000000000000000000000000000000000000000000602082015250565b6000613f2d602883613671565b9150613f3882613ed1565b604082019050919050565b60006020820190508181036000830152613f5c81613f20565b9050919050565b613f6c8161399b565b82525050565b600060a082019050613f876000830188613f63565b613f946020830187613f63565b613fa16040830186613f63565b613fae60608301856137f5565b613fbb6080830184613a9e565b9695505050505050565b6000606082019050613fda6000830186613f63565b613fe76020830185613f63565b613ff460408301846137f5565b949350505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b600061403d600283613ffc565b915061404882614007565b600282019050919050565b6000819050919050565b61406e6140698261399b565b614053565b82525050565b600061407f82614030565b915061408b828561405d565b60208201915061409b828461405d565b6020820191508190509392505050565b60006080820190506140c06000830187613f63565b6140cd6020830186613918565b6140da6040830185613f63565b6140e76060830184613f63565b95945050505050565b7f496e76616c6964207369676e6174757265000000000000000000000000000000600082015250565b6000614126601183613671565b9150614131826140f0565b602082019050919050565b6000602082019050818103600083015261415581614119565b9050919050565b7f43616e6e6f7420736574206d617854786e53697a65206c6f776572207468616e60008201527f20302e3125000000000000000000000000000000000000000000000000000000602082015250565b60006141b8602583613671565b91506141c38261415c565b604082019050919050565b600060208201905081810360008301526141e7816141ab565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061424a602583613671565b9150614255826141ee565b604082019050919050565b600060208201905081810360008301526142798161423d565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006142dc603583613671565b91506142e782614280565b604082019050919050565b6000602082019050818103600083015261430b816142cf565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b600061436e603483613671565b915061437982614312565b604082019050919050565b6000602082019050818103600083015261439d81614361565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614400602683613671565b915061440b826143a4565b604082019050919050565b6000602082019050818103600083015261442f816143f3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614492602483613671565b915061449d82614436565b604082019050919050565b600060208201905081810360008301526144c181614485565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614524602283613671565b915061452f826144c8565b604082019050919050565b6000602082019050818103600083015261455381614517565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006145b6602583613671565b91506145c18261455a565b604082019050919050565b600060208201905081810360008301526145e5816145a9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614648602383613671565b9150614653826145ec565b604082019050919050565b600060208201905081810360008301526146778161463b565b9050919050565b7f5b66726f6d5d20626c61636b206c697374000000000000000000000000000000600082015250565b60006146b4601183613671565b91506146bf8261467e565b602082019050919050565b600060208201905081810360008301526146e3816146a7565b9050919050565b7f5b746f5d20626c61636b206c6973740000000000000000000000000000000000600082015250565b6000614720600f83613671565b915061472b826146ea565b602082019050919050565b6000602082019050818103600083015261474f81614713565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b600061478c601683613671565b915061479782614756565b602082019050919050565b600060208201905081810360008301526147bb8161477f565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d617854786e53697a652e000000000000000000000000000000000000000000602082015250565b600061481e602b83613671565b9150614829826147c2565b604082019050919050565b6000602082019050818103600083015261484d81614811565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b600061488a601383613671565b915061489582614854565b602082019050919050565b600060208201905081810360008301526148b98161487d565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d617854786e53697a652e0000000000000000000000000000000000000000602082015250565b600061491c602c83613671565b9150614927826148c0565b604082019050919050565b6000602082019050818103600083015261494b8161490f565b9050919050565b600061495d826135f0565b9150614968836135f0565b92508282101561497b5761497a613ba1565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006149e2602683613671565b91506149ed82614986565b604082019050919050565b60006020820190508181036000830152614a11816149d5565b9050919050565b600081905092915050565b50565b6000614a33600083614a18565b9150614a3e82614a23565b600082019050919050565b6000614a5482614a26565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614acb81613753565b92915050565b600060208284031215614ae757614ae66135eb565b5b6000614af584828501614abc565b91505092915050565b6000819050919050565b6000614b23614b1e614b1984614afe565b613a24565b6135f0565b9050919050565b614b3381614b08565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614b6e81613741565b82525050565b6000614b808383614b65565b60208301905092915050565b6000602082019050919050565b6000614ba482614b39565b614bae8185614b44565b9350614bb983614b55565b8060005b83811015614bea578151614bd18882614b74565b9750614bdc83614b8c565b925050600181019050614bbd565b5085935050505092915050565b600060a082019050614c0c60008301886137f5565b614c196020830187614b2a565b8181036040830152614c2b8186614b99565b9050614c3a6060830185613a9e565b614c4760808301846137f5565b969550505050505056fea26469706673582212208c718c18342280bd8f056298a52e6c78654a524a4cf2f3e3f4c1c075e5d9cddc64736f6c634300080a0033
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.