ERC-20
Overview
Max Total Supply
180,000,000 YAO11
Holders
79
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
481,758.768862113480338085 YAO11Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
YAO11
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-09 */ /** "Yao Ming's 43": 43 NFTs Inspired by Yao Ming's Career Telegram: https://t.me/mingdynastyvip Twitter: https://twitter.com/MingDynastyVip Happy Birthday to Yao Ming in Advance! */ // SPDX-License-Identifier: MIT pragma solidity >=0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } 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); } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; 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 transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } 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 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 _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 _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 _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 _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } library SafeMath { 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; } } 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; } contract YAO11 is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; address public constant deadAddress = address(0xdead); bool private swapping; address public mkt; address public halloffame; address public lpWallet; uint256 public maxTransactionAmount; uint256 public swapTokensAtAmount; uint256 public maxWallet; bool public limitsInEffect = true; bool public tradingActive = false; bool public swapEnabled = true; uint256 public buyTotalFees; uint256 public buyMarketingFee; uint256 public buyLiquidityFee; uint256 public buyDevFee; uint256 public sellTotalFees; uint256 public sellMarketingFee; uint256 public sellLiquidityFee; uint256 public sellDevFee; uint256 public tokensForMarketing; uint256 public tokensForLiquidity; uint256 public tokensForDev; /******************/ // exlcude from fees and max transaction amount mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedMaxTransactionAmount; // store addresses that a automatic market maker pairs. Any transfer *to* these addresses // could be subject to a maximum transfer amount mapping(address => bool) public automatedMarketMakerPairs; event UpdateUniswapV2Router( address indexed newAddress, address indexed oldAddress ); event LimitsRemoved(); event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event mktUpdated( address indexed newWallet, address indexed oldWallet ); event halloffameUpdated( address indexed newWallet, address indexed oldWallet ); event lpWalletUpdated( address indexed newWallet, address indexed oldWallet ); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); constructor() ERC20("Ming Dynasty", "YAO11") { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uint256 _buyMarketingFee = 0; uint256 _buyLiquidityFee = 0; uint256 _buyDevFee = 0; uint256 _sellMarketingFee = 0; uint256 _sellLiquidityFee = 0; uint256 _sellDevFee = 0; uint256 totalSupply = 180_000_000 * 1e18; maxTransactionAmount = (totalSupply * 2) / 100; maxWallet = (totalSupply * 2) / 100; swapTokensAtAmount = (totalSupply * 5) / 10000; // 0.05% swap wallet buyMarketingFee = _buyMarketingFee; buyLiquidityFee = _buyLiquidityFee; buyDevFee = _buyDevFee; buyTotalFees = buyMarketingFee + buyLiquidityFee + buyDevFee; sellMarketingFee = _sellMarketingFee; sellLiquidityFee = _sellLiquidityFee; sellDevFee = _sellDevFee; sellTotalFees = sellMarketingFee + sellLiquidityFee + sellDevFee; mkt = address(0x37200f0E5C32b283C100F5D3eA566A88C75ca96c); halloffame = address(0x40454ae42D6BfcD5a417092c2Da9Ef860AC5Ab23); // locked wallet lpWallet = msg.sender; // exclude from paying fees or having max transaction amount excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromFees(mkt, true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); excludeFromMaxTransaction(mkt, true); /* _mint is an internal function in ERC20.sol that is only called here, and CANNOT be called ever again */ _mint(msg.sender, totalSupply); } receive() external payable {} // once enabled, can never be turned off function enableTrading() external onlyOwner { tradingActive = true; swapEnabled = true; } // remove limits after token is stable function removeLimits() external onlyOwner returns (bool) { limitsInEffect = false; emit LimitsRemoved(); return true; } // change the minimum amount of tokens to sell from fees 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 updateMaxTxnAmount(uint256 newNum) external onlyOwner { require( newNum >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set maxTransactionAmount lower than 0.1%" ); maxTransactionAmount = newNum * (10**18); } function updateMaxWalletAmount(uint256 newNum) external onlyOwner { require( newNum >= ((totalSupply() * 5) / 1000) / 1e18, "Cannot set maxWallet lower than 0.5%" ); maxWallet = newNum * (10**18); } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } // only use to disable contract sales if absolutely necessary (emergency use only) function updateSwapEnabled(bool enabled) external onlyOwner { swapEnabled = enabled; } function updateBuyFees( uint256 _marketingFee, uint256 _liquidityFee, uint256 _devFee ) external onlyOwner { buyMarketingFee = _marketingFee; buyLiquidityFee = _liquidityFee; buyDevFee = _devFee; buyTotalFees = buyMarketingFee + buyLiquidityFee + buyDevFee; } function updateSellFees( uint256 _marketingFee, uint256 _liquidityFee, uint256 _devFee ) external onlyOwner { sellMarketingFee = _marketingFee; sellLiquidityFee = _liquidityFee; sellDevFee = _devFee; sellTotalFees = sellMarketingFee + sellLiquidityFee + sellDevFee; } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require( pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs" ); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function updatemkt(address newmkt) external onlyOwner { emit mktUpdated(newmkt, mkt); mkt = newmkt; } function updateLPWallet(address newLPWallet) external onlyOwner { emit lpWalletUpdated(newLPWallet, lpWallet); lpWallet = newLPWallet; } function updatehalloffame(address newWallet) external onlyOwner { emit halloffameUpdated(newWallet, halloffame); halloffame = newWallet; } function isExcludedFromFees(address account) public view returns (bool) { return _isExcludedFromFees[account]; } event BoughtEarly(address indexed sniper); 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"); 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 ( automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to] ) { require( amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount." ); require( amount + balanceOf(to) <= maxWallet, "Max wallet exceeded" ); } //when sell else if ( automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from] ) { require( amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount." ); } else if (!_isExcludedMaxTransactionAmount[to]) { require( amount + balanceOf(to) <= maxWallet, "Max wallet exceeded" ); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if ( canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; // if any account belongs to _isExcludedFromFee account then remove the fee if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; // only take fees on buys/sells, do not take on wallet transfers if (takeFee) { // on sell if (automatedMarketMakerPairs[to] && sellTotalFees > 0) { fees = amount.mul(sellTotalFees).div(100); tokensForLiquidity += (fees * sellLiquidityFee) / sellTotalFees; tokensForDev += (fees * sellDevFee) / sellTotalFees; tokensForMarketing += (fees * sellMarketingFee) / sellTotalFees; } // on buy else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount.mul(buyTotalFees).div(100); tokensForLiquidity += (fees * buyLiquidityFee) / buyTotalFees; tokensForDev += (fees * buyDevFee) / buyTotalFees; tokensForMarketing += (fees * buyMarketingFee) / buyTotalFees; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } 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] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable lpWallet, block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing + tokensForDev; bool success; if (contractBalance == 0 || totalTokensToSwap == 0) { return; } // Halve the amount of liquidity tokens uint256 liquidityTokens = (contractBalance * tokensForLiquidity) / totalTokensToSwap / 2; uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens); uint256 initialETHBalance = address(this).balance; swapTokensForEth(amountToSwapForETH); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForMarketing = ethBalance.mul(tokensForMarketing).div( totalTokensToSwap ); uint256 ethForDev = ethBalance.mul(tokensForDev).div(totalTokensToSwap); uint256 ethForLiquidity = ethBalance - ethForMarketing - ethForDev; tokensForLiquidity = 0; tokensForMarketing = 0; tokensForDev = 0; (success, ) = address(halloffame).call{value: ethForDev}(""); if (liquidityTokens > 0 && ethForLiquidity > 0) { addLiquidity(liquidityTokens, ethForLiquidity); emit SwapAndLiquify( amountToSwapForETH, ethForLiquidity, tokensForLiquidity ); } (success, ) = address(mkt).call{ value: address(this).balance }(""); } // to remove unknown tokens from contract function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner { IERC20(tokenAdd).transfer(owner(), amount); } }
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":"sniper","type":"address"}],"name":"BoughtEarly","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[],"name":"LimitsRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"halloffameUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"lpWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"mktUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","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":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"halloffame","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mkt","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","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":"setAutomatedMarketMakerPair","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":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLPWallet","type":"address"}],"name":"updateLPWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","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":"address","name":"newWallet","type":"address"}],"name":"updatehalloffame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newmkt","type":"address"}],"name":"updatemkt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600c805462ffffff19166201000117905534801562000021575f80fd5b506040518060400160405280600c81526020016b4d696e672044796e6173747960a01b8152506040518060400160405280600581526020016459414f313160d81b815250816003908162000076919062000766565b50600462000085828262000766565b505050620000a26200009c6200041860201b60201c565b6200041c565b737a250d5630b4cf539739df2c5dacb4c659f2488d620000c48160016200046d565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200010d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200013391906200082e565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a591906200082e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620001f0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200021691906200082e565b6001600160a01b031660a0819052620002319060016200046d565b60a05162000241906001620004e5565b5f80808080806a94e47b8d6817153400000060646200026282600262000871565b6200026e919062000891565b60095560646200028082600262000871565b6200028c919062000891565b600b556127106200029f82600562000871565b620002ab919062000891565b600a55600e879055600f869055601085905584620002ca8789620008b1565b620002d69190620008b1565b600d5560128490556013839055601482905581620002f58486620008b1565b620003019190620008b1565b601155600680546001600160a01b03199081167337200f0e5c32b283c100f5d3ea566a88c75ca96c179091556007805482167340454ae42d6bfcd5a417092c2da9ef860ac5ab231790556008805490911633179055620003756200036d6005546001600160a01b031690565b600162000538565b6200038230600162000538565b6200039161dead600162000538565b600654620003aa906001600160a01b0316600162000538565b620003c9620003c16005546001600160a01b031690565b60016200046d565b620003d63060016200046d565b620003e561dead60016200046d565b600654620003fe906001600160a01b031660016200046d565b6200040a3382620005e0565b5050505050505050620008c7565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6005546001600160a01b03163314620004bb5760405162461bcd60e51b815260206004820181905260248201525f80516020620031b383398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152601960205260409020805460ff1916911515919091179055565b6001600160a01b0382165f818152601a6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b03163314620005825760405162461bcd60e51b815260206004820181905260248201525f80516020620031b38339815191526044820152606401620004b2565b6001600160a01b0382165f81815260186020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620006385760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620004b2565b8060025f8282546200064b9190620008b1565b90915550506001600160a01b0382165f908152602081905260408120805483929062000679908490620008b1565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620006f057607f821691505b6020821081036200070f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620006c2575f81815260208120601f850160051c810160208610156200073d5750805b601f850160051c820191505b818110156200075e5782815560010162000749565b505050505050565b81516001600160401b03811115620007825762000782620006c7565b6200079a81620007938454620006db565b8462000715565b602080601f831160018114620007d0575f8415620007b85750858301515b5f19600386901b1c1916600185901b1785556200075e565b5f85815260208120601f198616915b828110156200080057888601518255948401946001909101908401620007df565b50858210156200081e57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156200083f575f80fd5b81516001600160a01b038116811462000856575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176200088b576200088b6200085d565b92915050565b5f82620008ac57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156200088b576200088b6200085d565b60805160a0516128a0620009135f395f81816105470152610fa901525f81816103e701528181612230015281816122e7015281816123230152818161239701526123fe01526128a05ff3fe608060405260043610610344575f3560e01c80638a8c523c116101bd578063c0246668116100f2578063dd62ed3e11610092578063f2fde38b1161006d578063f2fde38b1461098d578063f6374342146109ac578063f8b45b05146109c1578063fbc10c55146109d6575f80fd5b8063dd62ed3e1461091f578063e2f4560514610963578063f11a24d314610978575f80fd5b8063c1928223116100cd578063c1928223146108b7578063c8c8ebe4146108d6578063d257b34f146108eb578063d85ba0631461090a575f80fd5b8063c02466681461085a578063c17b5b8c14610879578063c18bc19514610898575f80fd5b80639c3b4fdc1161015d578063a457c2d711610138578063a457c2d7146107d0578063a9059cbb146107ef578063b62496f51461080e578063bbc0c7421461083c575f80fd5b80639c3b4fdc146107915780639fccce32146107a6578063a0d82dc5146107bb575f80fd5b80639213691311610198578063921369131461072a578063924de9b71461073f57806395d89b411461075e5780639a7a23d614610772575f80fd5b80638a8c523c146106da5780638cd4426d146106ee5780638da5cb5b1461070d575f80fd5b8063395093511161029357806370a08231116102335780637571336a1161020e5780637571336a146106685780637bce5a04146106875780637cc5b1e61461069c5780638095d564146106bb575f80fd5b806370a082311461060c578063715018a614610640578063751039fc14610654575f80fd5b80634fbee1931161026e5780634fbee193146105825780636303516c146105b95780636a486a8e146105d85780636ddd1713146105ed575f80fd5b8063395093511461051757806349bd5a5e146105365780634a62bb6514610569575f80fd5b80631f3fed8f116102fe57806323b872dd116102d957806323b872dd146104a957806327c8f835146104c8578063313ce567146104dd578063354ab0d4146104f8575f80fd5b80631f3fed8f14610454578063203e727e146104695780632359709b1461048a575f80fd5b806306fdde031461034f578063095ea7b31461037957806310d5de53146103a85780631694505e146103d657806318160ddd146104215780631a8145bb1461043f575f80fd5b3661034b57005b5f80fd5b34801561035a575f80fd5b506103636109f5565b6040516103709190612474565b60405180910390f35b348015610384575f80fd5b506103986103933660046124d3565b610a85565b6040519015158152602001610370565b3480156103b3575f80fd5b506103986103c23660046124fd565b60196020525f908152604090205460ff1681565b3480156103e1575f80fd5b506104097f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610370565b34801561042c575f80fd5b506002545b604051908152602001610370565b34801561044a575f80fd5b5061043160165481565b34801561045f575f80fd5b5061043160155481565b348015610474575f80fd5b50610488610483366004612518565b610a9b565b005b348015610495575f80fd5b506104886104a43660046124fd565b610b81565b3480156104b4575f80fd5b506103986104c336600461252f565b610c07565b3480156104d3575f80fd5b5061040961dead81565b3480156104e8575f80fd5b5060405160128152602001610370565b348015610503575f80fd5b50600754610409906001600160a01b031681565b348015610522575f80fd5b506103986105313660046124d3565b610caf565b348015610541575f80fd5b506104097f000000000000000000000000000000000000000000000000000000000000000081565b348015610574575f80fd5b50600c546103989060ff1681565b34801561058d575f80fd5b5061039861059c3660046124fd565b6001600160a01b03165f9081526018602052604090205460ff1690565b3480156105c4575f80fd5b50600854610409906001600160a01b031681565b3480156105e3575f80fd5b5061043160115481565b3480156105f8575f80fd5b50600c546103989062010000900460ff1681565b348015610617575f80fd5b506104316106263660046124fd565b6001600160a01b03165f9081526020819052604090205490565b34801561064b575f80fd5b50610488610cea565b34801561065f575f80fd5b50610398610d1f565b348015610673575f80fd5b5061048861068236600461257a565b610d83565b348015610692575f80fd5b50610431600e5481565b3480156106a7575f80fd5b50600654610409906001600160a01b031681565b3480156106c6575f80fd5b506104886106d53660046125b1565b610dd7565b3480156106e5575f80fd5b50610488610e2d565b3480156106f9575f80fd5b506104886107083660046124d3565b610e6a565b348015610718575f80fd5b506005546001600160a01b0316610409565b348015610735575f80fd5b5061043160125481565b34801561074a575f80fd5b506104886107593660046125da565b610f28565b348015610769575f80fd5b50610363610f6e565b34801561077d575f80fd5b5061048861078c36600461257a565b610f7d565b34801561079c575f80fd5b5061043160105481565b3480156107b1575f80fd5b5061043160175481565b3480156107c6575f80fd5b5061043160145481565b3480156107db575f80fd5b506103986107ea3660046124d3565b61105c565b3480156107fa575f80fd5b506103986108093660046124d3565b6110f4565b348015610819575f80fd5b506103986108283660046124fd565b601a6020525f908152604090205460ff1681565b348015610847575f80fd5b50600c5461039890610100900460ff1681565b348015610865575f80fd5b5061048861087436600461257a565b611100565b348015610884575f80fd5b506104886108933660046125b1565b611188565b3480156108a3575f80fd5b506104886108b2366004612518565b6111de565b3480156108c2575f80fd5b506104886108d13660046124fd565b6112af565b3480156108e1575f80fd5b5061043160095481565b3480156108f6575f80fd5b50610398610905366004612518565b611335565b348015610915575f80fd5b50610431600d5481565b34801561092a575f80fd5b506104316109393660046125f5565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561096e575f80fd5b50610431600a5481565b348015610983575f80fd5b50610431600f5481565b348015610998575f80fd5b506104886109a73660046124fd565b611486565b3480156109b7575f80fd5b5061043160135481565b3480156109cc575f80fd5b50610431600b5481565b3480156109e1575f80fd5b506104886109f03660046124fd565b611521565b606060038054610a0490612621565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3090612621565b8015610a7b5780601f10610a5257610100808354040283529160200191610a7b565b820191905f5260205f20905b815481529060010190602001808311610a5e57829003601f168201915b5050505050905090565b5f610a913384846115a7565b5060015b92915050565b6005546001600160a01b03163314610ace5760405162461bcd60e51b8152600401610ac590612659565b60405180910390fd5b670de0b6b3a76400006103e8610ae360025490565b610aee9060016126a2565b610af891906126b9565b610b0291906126b9565b811015610b695760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b6064820152608401610ac5565b610b7b81670de0b6b3a76400006126a2565b60095550565b6005546001600160a01b03163314610bab5760405162461bcd60e51b8152600401610ac590612659565b6007546040516001600160a01b03918216918316907f22349f226abd9507d2e34ea02baa1bcaa6a61bbf6a45701c43a10d13a586996d905f90a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b5f610c138484846116ca565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610c975760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610ac5565b610ca485338584036115a7565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610a91918590610ce59086906126d8565b6115a7565b6005546001600160a01b03163314610d145760405162461bcd60e51b8152600401610ac590612659565b610d1d5f611db8565b565b6005545f906001600160a01b03163314610d4b5760405162461bcd60e51b8152600401610ac590612659565b600c805460ff191690556040517f7bfa7bacf025baa75e5308bf15bcf2948f406c7ebe3eb1a8bb611862b9d647ef905f90a150600190565b6005546001600160a01b03163314610dad5760405162461bcd60e51b8152600401610ac590612659565b6001600160a01b03919091165f908152601960205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610e015760405162461bcd60e51b8152600401610ac590612659565b600e839055600f829055601081905580610e1b83856126d8565b610e2591906126d8565b600d55505050565b6005546001600160a01b03163314610e575760405162461bcd60e51b8152600401610ac590612659565b600c805462ffff00191662010100179055565b6005546001600160a01b03163314610e945760405162461bcd60e51b8152600401610ac590612659565b816001600160a01b031663a9059cbb610eb56005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610eff573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2391906126eb565b505050565b6005546001600160a01b03163314610f525760405162461bcd60e51b8152600401610ac590612659565b600c8054911515620100000262ff000019909216919091179055565b606060048054610a0490612621565b6005546001600160a01b03163314610fa75760405162461bcd60e51b8152600401610ac590612659565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361104e5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610ac5565b6110588282611e09565b5050565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156110dd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610ac5565b6110ea33858584036115a7565b5060019392505050565b5f610a913384846116ca565b6005546001600160a01b0316331461112a5760405162461bcd60e51b8152600401610ac590612659565b6001600160a01b0382165f81815260186020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146111b25760405162461bcd60e51b8152600401610ac590612659565b601283905560138290556014819055806111cc83856126d8565b6111d691906126d8565b601155505050565b6005546001600160a01b031633146112085760405162461bcd60e51b8152600401610ac590612659565b670de0b6b3a76400006103e861121d60025490565b6112289060056126a2565b61123291906126b9565b61123c91906126b9565b8110156112975760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b6064820152608401610ac5565b6112a981670de0b6b3a76400006126a2565b600b5550565b6005546001600160a01b031633146112d95760405162461bcd60e51b8152600401610ac590612659565b6006546040516001600160a01b03918216918316907f1f49ce16a2f0fb9f3620cc602685eacf0041a97b34102281ca79092782597ffa905f90a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005545f906001600160a01b031633146113615760405162461bcd60e51b8152600401610ac590612659565b620186a061136e60025490565b6113799060016126a2565b61138391906126b9565b8210156113f05760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610ac5565b6103e86113fc60025490565b6114079060056126a2565b61141191906126b9565b82111561147d5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610ac5565b50600a55600190565b6005546001600160a01b031633146114b05760405162461bcd60e51b8152600401610ac590612659565b6001600160a01b0381166115155760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ac5565b61151e81611db8565b50565b6005546001600160a01b0316331461154b5760405162461bcd60e51b8152600401610ac590612659565b6008546040516001600160a01b03918216918316907f8e4fb3162b55d3fcdb7507ecfed5ab4ea5d2bd7494d0bb621d698a52ea3f74b4905f90a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166116095760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ac5565b6001600160a01b03821661166a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ac5565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116f05760405162461bcd60e51b8152600401610ac590612706565b6001600160a01b0382166117165760405162461bcd60e51b8152600401610ac59061274b565b805f0361172857610f2383835f611e5c565b600c5460ff1615611a95576005546001600160a01b0384811691161480159061175f57506005546001600160a01b03838116911614155b801561177357506001600160a01b03821615155b801561178a57506001600160a01b03821661dead14155b80156117a05750600554600160a01b900460ff16155b15611a9557600c54610100900460ff16611836576001600160a01b0383165f9081526018602052604090205460ff16806117f157506001600160a01b0382165f9081526018602052604090205460ff165b6118365760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610ac5565b6001600160a01b0383165f908152601a602052604090205460ff16801561187557506001600160a01b0382165f9081526019602052604090205460ff16155b15611958576009548111156118ea5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610ac5565b600b546001600160a01b0383165f9081526020819052604090205461190f90836126d8565b11156119535760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610ac5565b611a95565b6001600160a01b0382165f908152601a602052604090205460ff16801561199757506001600160a01b0383165f9081526019602052604090205460ff16155b15611a0d576009548111156119535760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610ac5565b6001600160a01b0382165f9081526019602052604090205460ff16611a9557600b546001600160a01b0383165f90815260208190526040902054611a5190836126d8565b1115611a955760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610ac5565b305f90815260208190526040902054600a5481108015908190611ac05750600c5462010000900460ff165b8015611ad65750600554600160a01b900460ff16155b8015611afa57506001600160a01b0385165f908152601a602052604090205460ff16155b8015611b1e57506001600160a01b0385165f9081526018602052604090205460ff16155b8015611b4257506001600160a01b0384165f9081526018602052604090205460ff16155b15611b70576005805460ff60a01b1916600160a01b179055611b62611faf565b6005805460ff60a01b191690555b6005546001600160a01b0386165f9081526018602052604090205460ff600160a01b909204821615911680611bbc57506001600160a01b0385165f9081526018602052604090205460ff165b15611bc457505f5b5f8115611da4576001600160a01b0386165f908152601a602052604090205460ff168015611bf357505f601154115b15611cae57611c186064611c12601154886121b390919063ffffffff16565b906121c5565b905060115460135482611c2b91906126a2565b611c3591906126b9565b60165f828254611c4591906126d8565b9091555050601154601454611c5a90836126a2565b611c6491906126b9565b60175f828254611c7491906126d8565b9091555050601154601254611c8990836126a2565b611c9391906126b9565b60155f828254611ca391906126d8565b90915550611d869050565b6001600160a01b0387165f908152601a602052604090205460ff168015611cd657505f600d54115b15611d8657611cf56064611c12600d54886121b390919063ffffffff16565b9050600d54600f5482611d0891906126a2565b611d1291906126b9565b60165f828254611d2291906126d8565b9091555050600d54601054611d3790836126a2565b611d4191906126b9565b60175f828254611d5191906126d8565b9091555050600d54600e54611d6690836126a2565b611d7091906126b9565b60155f828254611d8091906126d8565b90915550505b8015611d9757611d97873083611e5c565b611da1818661278e565b94505b611daf878787611e5c565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f818152601a6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611e825760405162461bcd60e51b8152600401610ac590612706565b6001600160a01b038216611ea85760405162461bcd60e51b8152600401610ac59061274b565b6001600160a01b0383165f9081526020819052604090205481811015611f1f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610ac5565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290611f559084906126d8565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fa191815260200190565b60405180910390a350505050565b305f9081526020819052604081205490505f601754601554601654611fd491906126d8565b611fde91906126d8565b90505f821580611fec575081155b15611ff657505050565b5f6002836016548661200891906126a2565b61201291906126b9565b61201c91906126b9565b90505f61202985836121d0565b905047612035826121db565b5f61204047836121d0565b90505f61205c87611c12601554856121b390919063ffffffff16565b90505f61207888611c12601754866121b390919063ffffffff16565b90505f81612086848661278e565b612090919061278e565b5f6016819055601581905560178190556007546040519293506001600160a01b031691849181818185875af1925050503d805f81146120ea576040519150601f19603f3d011682016040523d82523d5f602084013e6120ef565b606091505b5090985050861580159061210257505f81115b15612155576121118782612391565b601654604080518881526020810184905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b6006546040516001600160a01b039091169047905f81818185875af1925050503d805f811461219f576040519150601f19603f3d011682016040523d82523d5f602084013e6121a4565b606091505b50505050505050505050505050565b5f6121be82846126a2565b9392505050565b5f6121be82846126b9565b5f6121be828461278e565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061220e5761220e6127a1565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561228a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122ae91906127b5565b816001815181106122c1576122c16127a1565b60200260200101906001600160a01b031690816001600160a01b03168152505061230c307f0000000000000000000000000000000000000000000000000000000000000000846115a7565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906123609085905f908690309042906004016127d0565b5f604051808303815f87803b158015612377575f80fd5b505af1158015612389573d5f803e3d5ffd5b505050505050565b6123bc307f0000000000000000000000000000000000000000000000000000000000000000846115a7565b60085460405163f305d71960e01b8152306004820152602481018490525f6044820181905260648201526001600160a01b0391821660848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000009091169063f305d71990839060c40160606040518083038185885af1158015612448573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061246d919061283f565b5050505050565b5f6020808352835180828501525f5b8181101561249f57858101830151858201604001528201612483565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461151e575f80fd5b5f80604083850312156124e4575f80fd5b82356124ef816124bf565b946020939093013593505050565b5f6020828403121561250d575f80fd5b81356121be816124bf565b5f60208284031215612528575f80fd5b5035919050565b5f805f60608486031215612541575f80fd5b833561254c816124bf565b9250602084013561255c816124bf565b929592945050506040919091013590565b801515811461151e575f80fd5b5f806040838503121561258b575f80fd5b8235612596816124bf565b915060208301356125a68161256d565b809150509250929050565b5f805f606084860312156125c3575f80fd5b505081359360208301359350604090920135919050565b5f602082840312156125ea575f80fd5b81356121be8161256d565b5f8060408385031215612606575f80fd5b8235612611816124bf565b915060208301356125a6816124bf565b600181811c9082168061263557607f821691505b60208210810361265357634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610a9557610a9561268e565b5f826126d357634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610a9557610a9561268e565b5f602082840312156126fb575f80fd5b81516121be8161256d565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610a9557610a9561268e565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156127c5575f80fd5b81516121be816124bf565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561281e5784516001600160a01b0316835293830193918301916001016127f9565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612851575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220c6c39003ee019e62192f4812af694ccf39108cdbc72aa9435262bd5cffcb676364736f6c634300081400334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
Deployed Bytecode
0x608060405260043610610344575f3560e01c80638a8c523c116101bd578063c0246668116100f2578063dd62ed3e11610092578063f2fde38b1161006d578063f2fde38b1461098d578063f6374342146109ac578063f8b45b05146109c1578063fbc10c55146109d6575f80fd5b8063dd62ed3e1461091f578063e2f4560514610963578063f11a24d314610978575f80fd5b8063c1928223116100cd578063c1928223146108b7578063c8c8ebe4146108d6578063d257b34f146108eb578063d85ba0631461090a575f80fd5b8063c02466681461085a578063c17b5b8c14610879578063c18bc19514610898575f80fd5b80639c3b4fdc1161015d578063a457c2d711610138578063a457c2d7146107d0578063a9059cbb146107ef578063b62496f51461080e578063bbc0c7421461083c575f80fd5b80639c3b4fdc146107915780639fccce32146107a6578063a0d82dc5146107bb575f80fd5b80639213691311610198578063921369131461072a578063924de9b71461073f57806395d89b411461075e5780639a7a23d614610772575f80fd5b80638a8c523c146106da5780638cd4426d146106ee5780638da5cb5b1461070d575f80fd5b8063395093511161029357806370a08231116102335780637571336a1161020e5780637571336a146106685780637bce5a04146106875780637cc5b1e61461069c5780638095d564146106bb575f80fd5b806370a082311461060c578063715018a614610640578063751039fc14610654575f80fd5b80634fbee1931161026e5780634fbee193146105825780636303516c146105b95780636a486a8e146105d85780636ddd1713146105ed575f80fd5b8063395093511461051757806349bd5a5e146105365780634a62bb6514610569575f80fd5b80631f3fed8f116102fe57806323b872dd116102d957806323b872dd146104a957806327c8f835146104c8578063313ce567146104dd578063354ab0d4146104f8575f80fd5b80631f3fed8f14610454578063203e727e146104695780632359709b1461048a575f80fd5b806306fdde031461034f578063095ea7b31461037957806310d5de53146103a85780631694505e146103d657806318160ddd146104215780631a8145bb1461043f575f80fd5b3661034b57005b5f80fd5b34801561035a575f80fd5b506103636109f5565b6040516103709190612474565b60405180910390f35b348015610384575f80fd5b506103986103933660046124d3565b610a85565b6040519015158152602001610370565b3480156103b3575f80fd5b506103986103c23660046124fd565b60196020525f908152604090205460ff1681565b3480156103e1575f80fd5b506104097f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610370565b34801561042c575f80fd5b506002545b604051908152602001610370565b34801561044a575f80fd5b5061043160165481565b34801561045f575f80fd5b5061043160155481565b348015610474575f80fd5b50610488610483366004612518565b610a9b565b005b348015610495575f80fd5b506104886104a43660046124fd565b610b81565b3480156104b4575f80fd5b506103986104c336600461252f565b610c07565b3480156104d3575f80fd5b5061040961dead81565b3480156104e8575f80fd5b5060405160128152602001610370565b348015610503575f80fd5b50600754610409906001600160a01b031681565b348015610522575f80fd5b506103986105313660046124d3565b610caf565b348015610541575f80fd5b506104097f0000000000000000000000001edfee75ce32042b34bf0f2382ee119ced66772e81565b348015610574575f80fd5b50600c546103989060ff1681565b34801561058d575f80fd5b5061039861059c3660046124fd565b6001600160a01b03165f9081526018602052604090205460ff1690565b3480156105c4575f80fd5b50600854610409906001600160a01b031681565b3480156105e3575f80fd5b5061043160115481565b3480156105f8575f80fd5b50600c546103989062010000900460ff1681565b348015610617575f80fd5b506104316106263660046124fd565b6001600160a01b03165f9081526020819052604090205490565b34801561064b575f80fd5b50610488610cea565b34801561065f575f80fd5b50610398610d1f565b348015610673575f80fd5b5061048861068236600461257a565b610d83565b348015610692575f80fd5b50610431600e5481565b3480156106a7575f80fd5b50600654610409906001600160a01b031681565b3480156106c6575f80fd5b506104886106d53660046125b1565b610dd7565b3480156106e5575f80fd5b50610488610e2d565b3480156106f9575f80fd5b506104886107083660046124d3565b610e6a565b348015610718575f80fd5b506005546001600160a01b0316610409565b348015610735575f80fd5b5061043160125481565b34801561074a575f80fd5b506104886107593660046125da565b610f28565b348015610769575f80fd5b50610363610f6e565b34801561077d575f80fd5b5061048861078c36600461257a565b610f7d565b34801561079c575f80fd5b5061043160105481565b3480156107b1575f80fd5b5061043160175481565b3480156107c6575f80fd5b5061043160145481565b3480156107db575f80fd5b506103986107ea3660046124d3565b61105c565b3480156107fa575f80fd5b506103986108093660046124d3565b6110f4565b348015610819575f80fd5b506103986108283660046124fd565b601a6020525f908152604090205460ff1681565b348015610847575f80fd5b50600c5461039890610100900460ff1681565b348015610865575f80fd5b5061048861087436600461257a565b611100565b348015610884575f80fd5b506104886108933660046125b1565b611188565b3480156108a3575f80fd5b506104886108b2366004612518565b6111de565b3480156108c2575f80fd5b506104886108d13660046124fd565b6112af565b3480156108e1575f80fd5b5061043160095481565b3480156108f6575f80fd5b50610398610905366004612518565b611335565b348015610915575f80fd5b50610431600d5481565b34801561092a575f80fd5b506104316109393660046125f5565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561096e575f80fd5b50610431600a5481565b348015610983575f80fd5b50610431600f5481565b348015610998575f80fd5b506104886109a73660046124fd565b611486565b3480156109b7575f80fd5b5061043160135481565b3480156109cc575f80fd5b50610431600b5481565b3480156109e1575f80fd5b506104886109f03660046124fd565b611521565b606060038054610a0490612621565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3090612621565b8015610a7b5780601f10610a5257610100808354040283529160200191610a7b565b820191905f5260205f20905b815481529060010190602001808311610a5e57829003601f168201915b5050505050905090565b5f610a913384846115a7565b5060015b92915050565b6005546001600160a01b03163314610ace5760405162461bcd60e51b8152600401610ac590612659565b60405180910390fd5b670de0b6b3a76400006103e8610ae360025490565b610aee9060016126a2565b610af891906126b9565b610b0291906126b9565b811015610b695760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b6064820152608401610ac5565b610b7b81670de0b6b3a76400006126a2565b60095550565b6005546001600160a01b03163314610bab5760405162461bcd60e51b8152600401610ac590612659565b6007546040516001600160a01b03918216918316907f22349f226abd9507d2e34ea02baa1bcaa6a61bbf6a45701c43a10d13a586996d905f90a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b5f610c138484846116ca565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610c975760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610ac5565b610ca485338584036115a7565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610a91918590610ce59086906126d8565b6115a7565b6005546001600160a01b03163314610d145760405162461bcd60e51b8152600401610ac590612659565b610d1d5f611db8565b565b6005545f906001600160a01b03163314610d4b5760405162461bcd60e51b8152600401610ac590612659565b600c805460ff191690556040517f7bfa7bacf025baa75e5308bf15bcf2948f406c7ebe3eb1a8bb611862b9d647ef905f90a150600190565b6005546001600160a01b03163314610dad5760405162461bcd60e51b8152600401610ac590612659565b6001600160a01b03919091165f908152601960205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610e015760405162461bcd60e51b8152600401610ac590612659565b600e839055600f829055601081905580610e1b83856126d8565b610e2591906126d8565b600d55505050565b6005546001600160a01b03163314610e575760405162461bcd60e51b8152600401610ac590612659565b600c805462ffff00191662010100179055565b6005546001600160a01b03163314610e945760405162461bcd60e51b8152600401610ac590612659565b816001600160a01b031663a9059cbb610eb56005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610eff573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f2391906126eb565b505050565b6005546001600160a01b03163314610f525760405162461bcd60e51b8152600401610ac590612659565b600c8054911515620100000262ff000019909216919091179055565b606060048054610a0490612621565b6005546001600160a01b03163314610fa75760405162461bcd60e51b8152600401610ac590612659565b7f0000000000000000000000001edfee75ce32042b34bf0f2382ee119ced66772e6001600160a01b0316826001600160a01b03160361104e5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610ac5565b6110588282611e09565b5050565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156110dd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610ac5565b6110ea33858584036115a7565b5060019392505050565b5f610a913384846116ca565b6005546001600160a01b0316331461112a5760405162461bcd60e51b8152600401610ac590612659565b6001600160a01b0382165f81815260186020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146111b25760405162461bcd60e51b8152600401610ac590612659565b601283905560138290556014819055806111cc83856126d8565b6111d691906126d8565b601155505050565b6005546001600160a01b031633146112085760405162461bcd60e51b8152600401610ac590612659565b670de0b6b3a76400006103e861121d60025490565b6112289060056126a2565b61123291906126b9565b61123c91906126b9565b8110156112975760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b6064820152608401610ac5565b6112a981670de0b6b3a76400006126a2565b600b5550565b6005546001600160a01b031633146112d95760405162461bcd60e51b8152600401610ac590612659565b6006546040516001600160a01b03918216918316907f1f49ce16a2f0fb9f3620cc602685eacf0041a97b34102281ca79092782597ffa905f90a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005545f906001600160a01b031633146113615760405162461bcd60e51b8152600401610ac590612659565b620186a061136e60025490565b6113799060016126a2565b61138391906126b9565b8210156113f05760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610ac5565b6103e86113fc60025490565b6114079060056126a2565b61141191906126b9565b82111561147d5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610ac5565b50600a55600190565b6005546001600160a01b031633146114b05760405162461bcd60e51b8152600401610ac590612659565b6001600160a01b0381166115155760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ac5565b61151e81611db8565b50565b6005546001600160a01b0316331461154b5760405162461bcd60e51b8152600401610ac590612659565b6008546040516001600160a01b03918216918316907f8e4fb3162b55d3fcdb7507ecfed5ab4ea5d2bd7494d0bb621d698a52ea3f74b4905f90a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166116095760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ac5565b6001600160a01b03821661166a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ac5565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116f05760405162461bcd60e51b8152600401610ac590612706565b6001600160a01b0382166117165760405162461bcd60e51b8152600401610ac59061274b565b805f0361172857610f2383835f611e5c565b600c5460ff1615611a95576005546001600160a01b0384811691161480159061175f57506005546001600160a01b03838116911614155b801561177357506001600160a01b03821615155b801561178a57506001600160a01b03821661dead14155b80156117a05750600554600160a01b900460ff16155b15611a9557600c54610100900460ff16611836576001600160a01b0383165f9081526018602052604090205460ff16806117f157506001600160a01b0382165f9081526018602052604090205460ff165b6118365760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610ac5565b6001600160a01b0383165f908152601a602052604090205460ff16801561187557506001600160a01b0382165f9081526019602052604090205460ff16155b15611958576009548111156118ea5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610ac5565b600b546001600160a01b0383165f9081526020819052604090205461190f90836126d8565b11156119535760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610ac5565b611a95565b6001600160a01b0382165f908152601a602052604090205460ff16801561199757506001600160a01b0383165f9081526019602052604090205460ff16155b15611a0d576009548111156119535760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610ac5565b6001600160a01b0382165f9081526019602052604090205460ff16611a9557600b546001600160a01b0383165f90815260208190526040902054611a5190836126d8565b1115611a955760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610ac5565b305f90815260208190526040902054600a5481108015908190611ac05750600c5462010000900460ff165b8015611ad65750600554600160a01b900460ff16155b8015611afa57506001600160a01b0385165f908152601a602052604090205460ff16155b8015611b1e57506001600160a01b0385165f9081526018602052604090205460ff16155b8015611b4257506001600160a01b0384165f9081526018602052604090205460ff16155b15611b70576005805460ff60a01b1916600160a01b179055611b62611faf565b6005805460ff60a01b191690555b6005546001600160a01b0386165f9081526018602052604090205460ff600160a01b909204821615911680611bbc57506001600160a01b0385165f9081526018602052604090205460ff165b15611bc457505f5b5f8115611da4576001600160a01b0386165f908152601a602052604090205460ff168015611bf357505f601154115b15611cae57611c186064611c12601154886121b390919063ffffffff16565b906121c5565b905060115460135482611c2b91906126a2565b611c3591906126b9565b60165f828254611c4591906126d8565b9091555050601154601454611c5a90836126a2565b611c6491906126b9565b60175f828254611c7491906126d8565b9091555050601154601254611c8990836126a2565b611c9391906126b9565b60155f828254611ca391906126d8565b90915550611d869050565b6001600160a01b0387165f908152601a602052604090205460ff168015611cd657505f600d54115b15611d8657611cf56064611c12600d54886121b390919063ffffffff16565b9050600d54600f5482611d0891906126a2565b611d1291906126b9565b60165f828254611d2291906126d8565b9091555050600d54601054611d3790836126a2565b611d4191906126b9565b60175f828254611d5191906126d8565b9091555050600d54600e54611d6690836126a2565b611d7091906126b9565b60155f828254611d8091906126d8565b90915550505b8015611d9757611d97873083611e5c565b611da1818661278e565b94505b611daf878787611e5c565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f818152601a6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611e825760405162461bcd60e51b8152600401610ac590612706565b6001600160a01b038216611ea85760405162461bcd60e51b8152600401610ac59061274b565b6001600160a01b0383165f9081526020819052604090205481811015611f1f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610ac5565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290611f559084906126d8565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fa191815260200190565b60405180910390a350505050565b305f9081526020819052604081205490505f601754601554601654611fd491906126d8565b611fde91906126d8565b90505f821580611fec575081155b15611ff657505050565b5f6002836016548661200891906126a2565b61201291906126b9565b61201c91906126b9565b90505f61202985836121d0565b905047612035826121db565b5f61204047836121d0565b90505f61205c87611c12601554856121b390919063ffffffff16565b90505f61207888611c12601754866121b390919063ffffffff16565b90505f81612086848661278e565b612090919061278e565b5f6016819055601581905560178190556007546040519293506001600160a01b031691849181818185875af1925050503d805f81146120ea576040519150601f19603f3d011682016040523d82523d5f602084013e6120ef565b606091505b5090985050861580159061210257505f81115b15612155576121118782612391565b601654604080518881526020810184905280820192909252517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15b6006546040516001600160a01b039091169047905f81818185875af1925050503d805f811461219f576040519150601f19603f3d011682016040523d82523d5f602084013e6121a4565b606091505b50505050505050505050505050565b5f6121be82846126a2565b9392505050565b5f6121be82846126b9565b5f6121be828461278e565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061220e5761220e6127a1565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561228a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122ae91906127b5565b816001815181106122c1576122c16127a1565b60200260200101906001600160a01b031690816001600160a01b03168152505061230c307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846115a7565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906123609085905f908690309042906004016127d0565b5f604051808303815f87803b158015612377575f80fd5b505af1158015612389573d5f803e3d5ffd5b505050505050565b6123bc307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846115a7565b60085460405163f305d71960e01b8152306004820152602481018490525f6044820181905260648201526001600160a01b0391821660848201524260a48201527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169063f305d71990839060c40160606040518083038185885af1158015612448573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061246d919061283f565b5050505050565b5f6020808352835180828501525f5b8181101561249f57858101830151858201604001528201612483565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461151e575f80fd5b5f80604083850312156124e4575f80fd5b82356124ef816124bf565b946020939093013593505050565b5f6020828403121561250d575f80fd5b81356121be816124bf565b5f60208284031215612528575f80fd5b5035919050565b5f805f60608486031215612541575f80fd5b833561254c816124bf565b9250602084013561255c816124bf565b929592945050506040919091013590565b801515811461151e575f80fd5b5f806040838503121561258b575f80fd5b8235612596816124bf565b915060208301356125a68161256d565b809150509250929050565b5f805f606084860312156125c3575f80fd5b505081359360208301359350604090920135919050565b5f602082840312156125ea575f80fd5b81356121be8161256d565b5f8060408385031215612606575f80fd5b8235612611816124bf565b915060208301356125a6816124bf565b600181811c9082168061263557607f821691505b60208210810361265357634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610a9557610a9561268e565b5f826126d357634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610a9557610a9561268e565b5f602082840312156126fb575f80fd5b81516121be8161256d565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610a9557610a9561268e565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156127c5575f80fd5b81516121be816124bf565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561281e5784516001600160a01b0316835293830193918301916001016127f9565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612851575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220c6c39003ee019e62192f4812af694ccf39108cdbc72aa9435262bd5cffcb676364736f6c63430008140033
Deployed Bytecode Sourcemap
12376:15327:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2741:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3655:169;;;;;;;;;;-1:-1:-1;3655:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;3655:169:0;1023:187:1;13511:63:0;;;;;;;;;;-1:-1:-1;13511:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12451:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1658:32:1;;;1640:51;;1628:2;1613:18;12451:51:0;1467:230:1;3062:108:0;;;;;;;;;;-1:-1:-1;3150:12:0;;3062:108;;;1848:25:1;;;1836:2;1821:18;3062:108:0;1702:177:1;13295:33:0;;;;;;;;;;;;;;;;13255;;;;;;;;;;;;;;;;17840:275;;;;;;;;;;-1:-1:-1;17840:275:0;;;;;:::i;:::-;;:::i;:::-;;20489:161;;;;;;;;;;-1:-1:-1;20489:161:0;;;;;:::i;:::-;;:::i;3832:492::-;;;;;;;;;;-1:-1:-1;3832:492:0;;;;;:::i;:::-;;:::i;12554:53::-;;;;;;;;;;;;12600:6;12554:53;;2961:93;;;;;;;;;;-1:-1:-1;2961:93:0;;3044:2;2880:36:1;;2868:2;2853:18;2961:93:0;2738:184:1;12671:25:0;;;;;;;;;;-1:-1:-1;12671:25:0;;;;-1:-1:-1;;;;;12671:25:0;;;4332:215;;;;;;;;;;-1:-1:-1;4332:215:0;;;;;:::i;:::-;;:::i;12509:38::-;;;;;;;;;;;;;;;12850:33;;;;;;;;;;-1:-1:-1;12850:33:0;;;;;;;;20658:126;;;;;;;;;;-1:-1:-1;20658:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;20748:28:0;20724:4;20748:28;;;:19;:28;;;;;;;;;20658:126;12703:23;;;;;;;;;;-1:-1:-1;12703:23:0;;;;-1:-1:-1;;;;;12703:23:0;;;13110:28;;;;;;;;;;;;;;;;12930:30;;;;;;;;;;-1:-1:-1;12930:30:0;;;;;;;;;;;3178:127;;;;;;;;;;-1:-1:-1;3178:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3279:18:0;3252:7;3279:18;;;;;;;;;;;;3178:127;863:103;;;;;;;;;;;;;:::i;17113:152::-;;;;;;;;;;;;;:::i;18387:167::-;;;;;;;;;;-1:-1:-1;18387:167:0;;;;;:::i;:::-;;:::i;13003:30::-;;;;;;;;;;;;;;;;12646:18;;;;;;;;;;-1:-1:-1;12646:18:0;;;;-1:-1:-1;;;;;12646:18:0;;;18758:332;;;;;;;;;;-1:-1:-1;18758:332:0;;;;;:::i;:::-;;:::i;16949:112::-;;;;;;;;;;;;;:::i;27565:135::-;;;;;;;;;;-1:-1:-1;27565:135:0;;;;;:::i;:::-;;:::i;640:87::-;;;;;;;;;;-1:-1:-1;713:6:0;;-1:-1:-1;;;;;713:6:0;640:87;;13145:31;;;;;;;;;;;;;;;;18650:100;;;;;;;;;;-1:-1:-1;18650:100:0;;;;;:::i;:::-;;:::i;2849:104::-;;;;;;;;;;;;;:::i;19636:304::-;;;;;;;;;;-1:-1:-1;19636:304:0;;;;;:::i;:::-;;:::i;13077:24::-;;;;;;;;;;;;;;;;13335:27;;;;;;;;;;;;;;;;13221:25;;;;;;;;;;;;;;;;4555:413;;;;;;;;;;-1:-1:-1;4555:413:0;;;;;:::i;:::-;;:::i;3313:175::-;;;;;;;;;;-1:-1:-1;3313:175:0;;;;;:::i;:::-;;:::i;13732:57::-;;;;;;;;;;-1:-1:-1;13732:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12890:33;;;;;;;;;;-1:-1:-1;12890:33:0;;;;;;;;;;;19446:182;;;;;;;;;;-1:-1:-1;19446:182:0;;;;;:::i;:::-;;:::i;19098:340::-;;;;;;;;;;-1:-1:-1;19098:340:0;;;;;:::i;:::-;;:::i;18123:256::-;;;;;;;;;;-1:-1:-1;18123:256:0;;;;;:::i;:::-;;:::i;20144:147::-;;;;;;;;;;-1:-1:-1;20144:147:0;;;;;:::i;:::-;;:::i;12735:35::-;;;;;;;;;;;;;;;;17335:497;;;;;;;;;;-1:-1:-1;17335:497:0;;;;;:::i;:::-;;:::i;12969:27::-;;;;;;;;;;;;;;;;3496:151;;;;;;;;;;-1:-1:-1;3496:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3612:18:0;;;3585:7;3612:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3496:151;12777:33;;;;;;;;;;;;;;;;13040:30;;;;;;;;;;;;;;;;974:201;;;;;;;;;;-1:-1:-1;974:201:0;;;;;:::i;:::-;;:::i;13183:31::-;;;;;;;;;;;;;;;;12817:24;;;;;;;;;;;;;;;;20299:182;;;;;;;;;;-1:-1:-1;20299:182:0;;;;;:::i;:::-;;:::i;2741:100::-;2795:13;2828:5;2821:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2741:100;:::o;3655:169::-;3738:4;3755:39;373:10;3778:7;3787:6;3755:8;:39::i;:::-;-1:-1:-1;3812:4:0;3655:169;;;;;:::o;17840:275::-;713:6;;-1:-1:-1;;;;;713:6:0;373:10;775:23;767:68;;;;-1:-1:-1;;;767:68:0;;;;;;;:::i;:::-;;;;;;;;;17977:4:::1;17969;17948:13;3150:12:::0;;;3062:108;17948:13:::1;:17;::::0;17964:1:::1;17948:17;:::i;:::-;17947:26;;;;:::i;:::-;17946:35;;;;:::i;:::-;17936:6;:45;;17914:142;;;::::0;-1:-1:-1;;;17914:142:0;;5872:2:1;17914:142:0::1;::::0;::::1;5854:21:1::0;5911:2;5891:18;;;5884:30;5950:34;5930:18;;;5923:62;-1:-1:-1;;;6001:18:1;;;5994:45;6056:19;;17914:142:0::1;5670:411:1::0;17914:142:0::1;18090:17;:6:::0;18100::::1;18090:17;:::i;:::-;18067:20;:40:::0;-1:-1:-1;17840:275:0:o;20489:161::-;713:6;;-1:-1:-1;;;;;713:6:0;373:10;775:23;767:68;;;;-1:-1:-1;;;767:68:0;;;;;;;:::i;:::-;20598:10:::1;::::0;20569:40:::1;::::0;-1:-1:-1;;;;;20598:10:0;;::::1;::::0;20569:40;::::1;::::0;::::1;::::0;20598:10:::1;::::0;20569:40:::1;20620:10;:22:::0;;-1:-1:-1;;;;;;20620:22:0::1;-1:-1:-1::0;;;;;20620:22:0;;;::::1;::::0;;;::::1;::::0;;20489:161::o;3832:492::-;3972:4;3989:36;3999:6;4007:9;4018:6;3989:9;:36::i;:::-;-1:-1:-1;;;;;4065:19:0;;4038:24;4065:19;;;:11;:19;;;;;;;;373:10;4065:33;;;;;;;;4117:26;;;;4109:79;;;;-1:-1:-1;;;4109:79:0;;6288:2:1;4109:79:0;;;6270:21:1;6327:2;6307:18;;;6300:30;6366:34;6346:18;;;6339:62;-1:-1:-1;;;6417:18:1;;;6410:38;6465:19;;4109:79:0;6086:404:1;4109:79:0;4224:57;4233:6;373:10;4274:6;4255:16;:25;4224:8;:57::i;:::-;-1:-1:-1;4312:4:0;;3832:492;-1:-1:-1;;;;3832:492:0:o;4332:215::-;373:10;4420:4;4469:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4469:34:0;;;;;;;;;;4420:4;;4437:80;;4460:7;;4469:47;;4506:10;;4469:47;:::i;:::-;4437:8;:80::i;863:103::-;713:6;;-1:-1:-1;;;;;713:6:0;373:10;775:23;767:68;;;;-1:-1:-1;;;767:68:0;;;;;;;:::i;:::-;928:30:::1;955:1;928:18;:30::i;:::-;863:103::o:0;17113:152::-;713:6;;17165:4;;-1:-1:-1;;;;;713:6:0;373:10;775:23;767:68;;;;-1:-1:-1;;;767:68:0;;;;;;;:::i;:::-;17182:14:::1;:22:::0;;-1:-1:-1;;17182:22:0::1;::::0;;17220:15:::1;::::0;::::1;::::0;17199:5:::1;::::0;17220:15:::1;-1:-1:-1::0;17253:4:0::1;17113:152:::0;:::o;18387:167::-;713:6;;-1:-1:-1;;;;;713:6:0;373:10;775:23;767:68;;;;-1:-1:-1;;;767:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18500:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;18500:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18387:167::o;18758:332::-;713:6;;-1:-1:-1;;;;;713:6:0;373:10;775:23;767:68;;;;-1:-1:-1;;;767:68:0;;;;;;;:::i;:::-;18908:15:::1;:31:::0;;;18950:15:::1;:31:::0;;;18992:9:::1;:19:::0;;;19004:7;19037:33:::1;18968:13:::0;18926;19037:33:::1;:::i;:::-;:45;;;;:::i;:::-;19022:12;:60:::0;-1:-1:-1;;;18758:332:0:o;16949:112::-;713:6;;-1:-1:-1;;;;;713:6:0;373:10;775:23;767:68;;;;-1:-1:-1;;;767:68:0;;;;;;;:::i;:::-;17004:13:::1;:20:::0;;-1:-1:-1;;17035:18:0;;;;;16949:112::o;27565:135::-;713:6;;-1:-1:-1;;;;;713:6:0;373:10;775:23;767:68;;;;-1:-1:-1;;;767:68:0;;;;;;;:::i;:::-;27657:8:::1;-1:-1:-1::0;;;;;27650:25:0::1;;27676:7;713:6:::0;;-1:-1:-1;;;;;713:6:0;;640:87;27676:7:::1;27650:42;::::0;-1:-1:-1;;;;;;27650:42:0::1;::::0;;;;;;-1:-1:-1;;;;;6817:32:1;;;27650:42:0::1;::::0;::::1;6799:51:1::0;6866:18;;;6859:34;;;6772:18;;27650:42:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;27565:135:::0;;:::o;18650:100::-;713:6;;-1:-1:-1;;;;;713:6:0;373:10;775:23;767:68;;;;-1:-1:-1;;;767:68:0;;;;;;;:::i;:::-;18721:11:::1;:21:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;18721:21:0;;::::1;::::0;;;::::1;::::0;;18650:100::o;2849:104::-;2905:13;2938:7;2931:14;;;;;:::i;19636:304::-;713:6;;-1:-1:-1;;;;;713:6:0;373:10;775:23;767:68;;;;-1:-1:-1;;;767:68:0;;;;;;;:::i;:::-;19780:13:::1;-1:-1:-1::0;;;;;19772:21:0::1;:4;-1:-1:-1::0;;;;;19772:21:0::1;::::0;19750:128:::1;;;::::0;-1:-1:-1;;;19750:128:0;;7356:2:1;19750:128:0::1;::::0;::::1;7338:21:1::0;7395:2;7375:18;;;7368:30;7434:34;7414:18;;;7407:62;7505:27;7485:18;;;7478:55;7550:19;;19750:128:0::1;7154:421:1::0;19750:128:0::1;19891:41;19920:4;19926:5;19891:28;:41::i;:::-;19636:304:::0;;:::o;4555:413::-;373:10;4648:4;4692:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4692:34:0;;;;;;;;;;4745:35;;;;4737:85;;;;-1:-1:-1;;;4737:85:0;;7782:2:1;4737:85:0;;;7764:21:1;7821:2;7801:18;;;7794:30;7860:34;7840:18;;;7833:62;-1:-1:-1;;;7911:18:1;;;7904:35;7956:19;;4737:85:0;7580:401:1;4737:85:0;4858:67;373:10;4881:7;4909:15;4890:16;:34;4858:8;:67::i;:::-;-1:-1:-1;4956:4:0;;4555:413;-1:-1:-1;;;4555:413:0:o;3313:175::-;3399:4;3416:42;373:10;3440:9;3451:6;3416:9;:42::i;19446:182::-;713:6;;-1:-1:-1;;;;;713:6:0;373:10;775:23;767:68;;;;-1:-1:-1;;;767:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19531:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;19531:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;19586:34;;1163:41:1;;;19586:34:0::1;::::0;1136:18:1;19586:34:0::1;;;;;;;19446:182:::0;;:::o;19098:340::-;713:6;;-1:-1:-1;;;;;713:6:0;373:10;775:23;767:68;;;;-1:-1:-1;;;767:68:0;;;;;;;:::i;:::-;19249:16:::1;:32:::0;;;19292:16:::1;:32:::0;;;19335:10:::1;:20:::0;;;19348:7;19382:35:::1;19311:13:::0;19268;19382:35:::1;:::i;:::-;:48;;;;:::i;:::-;19366:13;:64:::0;-1:-1:-1;;;19098:340:0:o;18123:256::-;713:6;;-1:-1:-1;;;;;713:6:0;373:10;775:23;767:68;;;;-1:-1:-1;;;767:68:0;;;;;;;:::i;:::-;18263:4:::1;18255;18234:13;3150:12:::0;;;3062:108;18234:13:::1;:17;::::0;18250:1:::1;18234:17;:::i;:::-;18233:26;;;;:::i;:::-;18232:35;;;;:::i;:::-;18222:6;:45;;18200:131;;;::::0;-1:-1:-1;;;18200:131:0;;8188:2:1;18200:131:0::1;::::0;::::1;8170:21:1::0;8227:2;8207:18;;;8200:30;8266:34;8246:18;;;8239:62;-1:-1:-1;;;8317:18:1;;;8310:34;8361:19;;18200:131:0::1;7986:400:1::0;18200:131:0::1;18354:17;:6:::0;18364::::1;18354:17;:::i;:::-;18342:9;:29:::0;-1:-1:-1;18123:256:0:o;20144:147::-;713:6;;-1:-1:-1;;;;;713:6:0;373:10;775:23;767:68;;;;-1:-1:-1;;;767:68:0;;;;;;;:::i;:::-;20256:3:::1;::::0;20237:23:::1;::::0;-1:-1:-1;;;;;20256:3:0;;::::1;::::0;20237:23;::::1;::::0;::::1;::::0;20256:3:::1;::::0;20237:23:::1;20271:3;:12:::0;;-1:-1:-1;;;;;;20271:12:0::1;-1:-1:-1::0;;;;;20271:12:0;;;::::1;::::0;;;::::1;::::0;;20144:147::o;17335:497::-;713:6;;17443:4;;-1:-1:-1;;;;;713:6:0;373:10;775:23;767:68;;;;-1:-1:-1;;;767:68:0;;;;;;;:::i;:::-;17522:6:::1;17501:13;3150:12:::0;;;3062:108;17501:13:::1;:17;::::0;17517:1:::1;17501:17;:::i;:::-;17500:28;;;;:::i;:::-;17487:9;:41;;17465:144;;;::::0;-1:-1:-1;;;17465:144:0;;8593:2:1;17465:144:0::1;::::0;::::1;8575:21:1::0;8632:2;8612:18;;;8605:30;8671:34;8651:18;;;8644:62;-1:-1:-1;;;8722:18:1;;;8715:51;8783:19;;17465:144:0::1;8391:417:1::0;17465:144:0::1;17677:4;17656:13;3150:12:::0;;;3062:108;17656:13:::1;:17;::::0;17672:1:::1;17656:17;:::i;:::-;17655:26;;;;:::i;:::-;17642:9;:39;;17620:141;;;::::0;-1:-1:-1;;;17620:141:0;;9015:2:1;17620:141:0::1;::::0;::::1;8997:21:1::0;9054:2;9034:18;;;9027:30;9093:34;9073:18;;;9066:62;-1:-1:-1;;;9144:18:1;;;9137:50;9204:19;;17620:141:0::1;8813:416:1::0;17620:141:0::1;-1:-1:-1::0;17772:18:0::1;:30:::0;17820:4:::1;::::0;17335:497::o;974:201::-;713:6;;-1:-1:-1;;;;;713:6:0;373:10;775:23;767:68;;;;-1:-1:-1;;;767:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1063:22:0;::::1;1055:73;;;::::0;-1:-1:-1;;;1055:73:0;;9436:2:1;1055:73:0::1;::::0;::::1;9418:21:1::0;9475:2;9455:18;;;9448:30;9514:34;9494:18;;;9487:62;-1:-1:-1;;;9565:18:1;;;9558:36;9611:19;;1055:73:0::1;9234:402:1::0;1055:73:0::1;1139:28;1158:8;1139:18;:28::i;:::-;974:201:::0;:::o;20299:182::-;713:6;;-1:-1:-1;;;;;713:6:0;373:10;775:23;767:68;;;;-1:-1:-1;;;767:68:0;;;;;;;:::i;:::-;20431:8:::1;::::0;20402:38:::1;::::0;-1:-1:-1;;;;;20431:8:0;;::::1;::::0;20402:38;::::1;::::0;::::1;::::0;20431:8:::1;::::0;20402:38:::1;20451:8;:22:::0;;-1:-1:-1;;;;;;20451:22:0::1;-1:-1:-1::0;;;;;20451:22:0;;;::::1;::::0;;;::::1;::::0;;20299:182::o;6124:380::-;-1:-1:-1;;;;;6260:19:0;;6252:68;;;;-1:-1:-1;;;6252:68:0;;9843:2:1;6252:68:0;;;9825:21:1;9882:2;9862:18;;;9855:30;9921:34;9901:18;;;9894:62;-1:-1:-1;;;9972:18:1;;;9965:34;10016:19;;6252:68:0;9641:400:1;6252:68:0;-1:-1:-1;;;;;6339:21:0;;6331:68;;;;-1:-1:-1;;;6331:68:0;;10248:2:1;6331:68:0;;;10230:21:1;10287:2;10267:18;;;10260:30;10326:34;10306:18;;;10299:62;-1:-1:-1;;;10377:18:1;;;10370:32;10419:19;;6331:68:0;10046:398:1;6331:68:0;-1:-1:-1;;;;;6412:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6464:32;;1848:25:1;;;6464:32:0;;1821:18:1;6464:32:0;;;;;;;6124:380;;;:::o;20842:3924::-;-1:-1:-1;;;;;20974:18:0;;20966:68;;;;-1:-1:-1;;;20966:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21053:16:0;;21045:64;;;;-1:-1:-1;;;21045:64:0;;;;;;;:::i;:::-;21126:6;21136:1;21126:11;21122:93;;21154:28;21170:4;21176:2;21180:1;21154:15;:28::i;21122:93::-;21231:14;;;;21227:1694;;;713:6;;-1:-1:-1;;;;;21284:15:0;;;713:6;;21284:15;;;;:49;;-1:-1:-1;713:6:0;;-1:-1:-1;;;;;21320:13:0;;;713:6;;21320:13;;21284:49;:86;;;;-1:-1:-1;;;;;;21354:16:0;;;;21284:86;:128;;;;-1:-1:-1;;;;;;21391:21:0;;21405:6;21391:21;;21284:128;:158;;;;-1:-1:-1;21434:8:0;;-1:-1:-1;;;21434:8:0;;;;21433:9;21284:158;21262:1648;;;21482:13;;;;;;;21477:223;;-1:-1:-1;;;;;21554:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;21583:23:0;;;;;;:19;:23;;;;;;;;21554:52;21520:160;;;;-1:-1:-1;;;21520:160:0;;11461:2:1;21520:160:0;;;11443:21:1;11500:2;11480:18;;;11473:30;-1:-1:-1;;;11519:18:1;;;11512:52;11581:18;;21520:160:0;11259:346:1;21520:160:0;-1:-1:-1;;;;;21774:31:0;;;;;;:25;:31;;;;;;;;:92;;;;-1:-1:-1;;;;;;21831:35:0;;;;;;:31;:35;;;;;;;;21830:36;21774:92;21748:1147;;;21953:20;;21943:6;:30;;21909:169;;;;-1:-1:-1;;;21909:169:0;;11812:2:1;21909:169:0;;;11794:21:1;11851:2;11831:18;;;11824:30;11890:34;11870:18;;;11863:62;-1:-1:-1;;;11941:18:1;;;11934:51;12002:19;;21909:169:0;11610:417:1;21909:169:0;22161:9;;-1:-1:-1;;;;;3279:18:0;;3252:7;3279:18;;;;;;;;;;;22135:22;;:6;:22;:::i;:::-;:35;;22101:140;;;;-1:-1:-1;;;22101:140:0;;12234:2:1;22101:140:0;;;12216:21:1;12273:2;12253:18;;;12246:30;-1:-1:-1;;;12292:18:1;;;12285:49;12351:18;;22101:140:0;12032:343:1;22101:140:0;21748:1147;;;-1:-1:-1;;;;;22339:29:0;;;;;;:25;:29;;;;;;;;:92;;;;-1:-1:-1;;;;;;22394:37:0;;;;;;:31;:37;;;;;;;;22393:38;22339:92;22313:582;;;22518:20;;22508:6;:30;;22474:170;;;;-1:-1:-1;;;22474:170:0;;12582:2:1;22474:170:0;;;12564:21:1;12621:2;12601:18;;;12594:30;12660:34;12640:18;;;12633:62;-1:-1:-1;;;12711:18:1;;;12704:52;12773:19;;22474:170:0;12380:418:1;22313:582:0;-1:-1:-1;;;;;22675:35:0;;;;;;:31;:35;;;;;;;;22670:225;;22795:9;;-1:-1:-1;;;;;3279:18:0;;3252:7;3279:18;;;;;;;;;;;22769:22;;:6;:22;:::i;:::-;:35;;22735:140;;;;-1:-1:-1;;;22735:140:0;;12234:2:1;22735:140:0;;;12216:21:1;12273:2;12253:18;;;12246:30;-1:-1:-1;;;12292:18:1;;;12285:49;12351:18;;22735:140:0;12032:343:1;22735:140:0;22982:4;22933:28;3279:18;;;;;;;;;;;23040;;23016:42;;;;;;;23089:35;;-1:-1:-1;23113:11:0;;;;;;;23089:35;:61;;;;-1:-1:-1;23142:8:0;;-1:-1:-1;;;23142:8:0;;;;23141:9;23089:61;:110;;;;-1:-1:-1;;;;;;23168:31:0;;;;;;:25;:31;;;;;;;;23167:32;23089:110;:153;;;;-1:-1:-1;;;;;;23217:25:0;;;;;;:19;:25;;;;;;;;23216:26;23089:153;:194;;;;-1:-1:-1;;;;;;23260:23:0;;;;;;:19;:23;;;;;;;;23259:24;23089:194;23071:326;;;23310:8;:15;;-1:-1:-1;;;;23310:15:0;-1:-1:-1;;;23310:15:0;;;23342:10;:8;:10::i;:::-;23369:8;:16;;-1:-1:-1;;;;23369:16:0;;;23071:326;23425:8;;-1:-1:-1;;;;;23535:25:0;;23409:12;23535:25;;;:19;:25;;;;;;23425:8;-1:-1:-1;;;23425:8:0;;;;;23424:9;;23535:25;;:52;;-1:-1:-1;;;;;;23564:23:0;;;;;;:19;:23;;;;;;;;23535:52;23531:100;;;-1:-1:-1;23614:5:0;23531:100;23643:12;23748:7;23744:969;;;-1:-1:-1;;;;;23800:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;23849:1;23833:13;;:17;23800:50;23796:768;;;23878:34;23908:3;23878:25;23889:13;;23878:6;:10;;:25;;;;:::i;:::-;:29;;:34::i;:::-;23871:41;;23981:13;;23961:16;;23954:4;:23;;;;:::i;:::-;23953:41;;;;:::i;:::-;23931:18;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;;24051:13:0;;24037:10;;24030:17;;:4;:17;:::i;:::-;24029:35;;;;:::i;:::-;24013:12;;:51;;;;;;;:::i;:::-;;;;-1:-1:-1;;24133:13:0;;24113:16;;24106:23;;:4;:23;:::i;:::-;24105:41;;;;:::i;:::-;24083:18;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;23796:768:0;;-1:-1:-1;23796:768:0;;-1:-1:-1;;;;;24208:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;24258:1;24243:12;;:16;24208:51;24204:360;;;24287:33;24316:3;24287:24;24298:12;;24287:6;:10;;:24;;;;:::i;:33::-;24280:40;;24388:12;;24369:15;;24362:4;:22;;;;:::i;:::-;24361:39;;;;:::i;:::-;24339:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;24456:12:0;;24443:9;;24436:16;;:4;:16;:::i;:::-;24435:33;;;;:::i;:::-;24419:12;;:49;;;;;;;:::i;:::-;;;;-1:-1:-1;;24536:12:0;;24517:15;;24510:22;;:4;:22;:::i;:::-;24509:39;;;;:::i;:::-;24487:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;24204:360:0;24584:8;;24580:91;;24613:42;24629:4;24643;24650;24613:15;:42::i;:::-;24687:14;24697:4;24687:14;;:::i;:::-;;;23744:969;24725:33;24741:4;24747:2;24751:6;24725:15;:33::i;:::-;20955:3811;;;;20842:3924;;;:::o;1183:191::-;1276:6;;;-1:-1:-1;;;;;1293:17:0;;;-1:-1:-1;;;;;;1293:17:0;;;;;;;1326:40;;1276:6;;;1293:17;1276:6;;1326:40;;1257:16;;1326:40;1246:128;1183:191;:::o;19948:188::-;-1:-1:-1;;;;;20031:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;20031:39:0;;;;;;;;;;20088:40;;20031:39;;:31;20088:40;;;19948:188;;:::o;4976:733::-;-1:-1:-1;;;;;5116:20:0;;5108:70;;;;-1:-1:-1;;;5108:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5197:23:0;;5189:71;;;;-1:-1:-1;;;5189:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5357:17:0;;5333:21;5357:17;;;;;;;;;;;5393:23;;;;5385:74;;;;-1:-1:-1;;;5385:74:0;;13138:2:1;5385:74:0;;;13120:21:1;13177:2;13157:18;;;13150:30;13216:34;13196:18;;;13189:62;-1:-1:-1;;;13267:18:1;;;13260:36;13313:19;;5385:74:0;12936:402:1;5385:74:0;-1:-1:-1;;;;;5495:17:0;;;:9;:17;;;;;;;;;;;5515:22;;;5495:42;;5559:20;;;;;;;;:30;;5531:6;;5495:9;5559:30;;5531:6;;5559:30;:::i;:::-;;;;;;;;5624:9;-1:-1:-1;;;;;5607:35:0;5616:6;-1:-1:-1;;;;;5607:35:0;;5635:6;5607:35;;;;1848:25:1;;1836:2;1821:18;;1702:177;5607:35:0;;;;;;;;5097:612;4976:733;;;:::o;25893:1618::-;25976:4;25932:23;3279:18;;;;;;;;;;;25932:50;;25993:25;26089:12;;26055:18;;26021;;:52;;;;:::i;:::-;:80;;;;:::i;:::-;25993:108;-1:-1:-1;26112:12:0;26141:20;;;:46;;-1:-1:-1;26165:22:0;;26141:46;26137:85;;;26204:7;;;25893:1618::o;26137:85::-;26283:23;26396:1;26363:17;26328:18;;26310:15;:36;;;;:::i;:::-;26309:71;;;;:::i;:::-;:88;;;;:::i;:::-;26283:114;-1:-1:-1;26408:26:0;26437:36;:15;26283:114;26437:19;:36::i;:::-;26408:65;-1:-1:-1;26514:21:0;26548:36;26408:65;26548:16;:36::i;:::-;26597:18;26618:44;:21;26644:17;26618:25;:44::i;:::-;26597:65;;26675:23;26701:81;26754:17;26701:34;26716:18;;26701:10;:14;;:34;;;;:::i;:81::-;26675:107;;26793:17;26813:51;26846:17;26813:28;26828:12;;26813:10;:14;;:28;;;;:::i;:51::-;26793:71;-1:-1:-1;26877:23:0;26793:71;26903:28;26916:15;26903:10;:28;:::i;:::-;:40;;;;:::i;:::-;26977:1;26956:18;:22;;;26989:18;:22;;;27022:12;:16;;;27073:10;;27065:46;;26877:66;;-1:-1:-1;;;;;;27073:10:0;;27097:9;;27065:46;26977:1;27065:46;27097:9;27073:10;27065:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27051:60:0;;-1:-1:-1;;27128:19:0;;;;;:42;;;27169:1;27151:15;:19;27128:42;27124:278;;;27187:46;27200:15;27217;27187:12;:46::i;:::-;27357:18;;27253:137;;;13755:25:1;;;13811:2;13796:18;;13789:34;;;13839:18;;;13832:34;;;;27253:137:0;;;;;;13743:2:1;27253:137:0;;;27124:278;27436:3;;27428:75;;-1:-1:-1;;;;;27436:3:0;;;;27467:21;;27428:75;;;;27467:21;27436:3;27428:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;25893:1618:0:o;6908:98::-;6966:7;6993:5;6997:1;6993;:5;:::i;:::-;6986:12;6908:98;-1:-1:-1;;;6908:98:0:o;7014:::-;7072:7;7099:5;7103:1;7099;:5;:::i;6802:98::-;6860:7;6887:5;6891:1;6887;:5;:::i;24774:589::-;24924:16;;;24938:1;24924:16;;;;;;;;24900:21;;24924:16;;;;;;;;;;-1:-1:-1;24924:16:0;24900:40;;24969:4;24951;24956:1;24951:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;24951:23:0;;;-1:-1:-1;;;;;24951:23:0;;;;;24995:15;-1:-1:-1;;;;;24995:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24985:4;24990:1;24985:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;24985:32:0;;;-1:-1:-1;;;;;24985:32:0;;;;;25030:62;25047:4;25062:15;25080:11;25030:8;:62::i;:::-;25131:224;;-1:-1:-1;;;25131:224:0;;-1:-1:-1;;;;;25131:15:0;:66;;;;:224;;25212:11;;25238:1;;25282:4;;25309;;25329:15;;25131:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24829:534;24774:589;:::o;25371:514::-;25519:62;25536:4;25551:15;25569:11;25519:8;:62::i;:::-;25828:8;;25624:253;;-1:-1:-1;;;25624:253:0;;25696:4;25624:253;;;15723:34:1;15773:18;;;15766:34;;;25742:1:0;15816:18:1;;;15809:34;;;15859:18;;;15852:34;-1:-1:-1;;;;;25828:8:0;;;15902:19:1;;;15895:44;25851:15:0;15955:19:1;;;15948:35;25624:15:0;:31;;;;;;25663:9;;15657:19:1;;25624:253:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;25371:514;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:247::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;1382:9;1369:23;1401:31;1426:5;1401:31;:::i;1884:180::-;1943:6;1996:2;1984:9;1975:7;1971:23;1967:32;1964:52;;;2012:1;2009;2002:12;1964:52;-1:-1:-1;2035:23:1;;1884:180;-1:-1:-1;1884:180:1:o;2069:456::-;2146:6;2154;2162;2215:2;2203:9;2194:7;2190:23;2186:32;2183:52;;;2231:1;2228;2221:12;2183:52;2270:9;2257:23;2289:31;2314:5;2289:31;:::i;:::-;2339:5;-1:-1:-1;2396:2:1;2381:18;;2368:32;2409:33;2368:32;2409:33;:::i;:::-;2069:456;;2461:7;;-1:-1:-1;;;2515:2:1;2500:18;;;;2487:32;;2069:456::o;2927:118::-;3013:5;3006:13;2999:21;2992:5;2989:32;2979:60;;3035:1;3032;3025:12;3050:382;3115:6;3123;3176:2;3164:9;3155:7;3151:23;3147:32;3144:52;;;3192:1;3189;3182:12;3144:52;3231:9;3218:23;3250:31;3275:5;3250:31;:::i;:::-;3300:5;-1:-1:-1;3357:2:1;3342:18;;3329:32;3370:30;3329:32;3370:30;:::i;:::-;3419:7;3409:17;;;3050:382;;;;;:::o;3437:316::-;3514:6;3522;3530;3583:2;3571:9;3562:7;3558:23;3554:32;3551:52;;;3599:1;3596;3589:12;3551:52;-1:-1:-1;;3622:23:1;;;3692:2;3677:18;;3664:32;;-1:-1:-1;3743:2:1;3728:18;;;3715:32;;3437:316;-1:-1:-1;3437:316:1:o;3758:241::-;3814:6;3867:2;3855:9;3846:7;3842:23;3838:32;3835:52;;;3883:1;3880;3873:12;3835:52;3922:9;3909:23;3941:28;3963:5;3941:28;:::i;4004:388::-;4072:6;4080;4133:2;4121:9;4112:7;4108:23;4104:32;4101:52;;;4149:1;4146;4139:12;4101:52;4188:9;4175:23;4207:31;4232:5;4207:31;:::i;:::-;4257:5;-1:-1:-1;4314:2:1;4299:18;;4286:32;4327:33;4286:32;4327:33;:::i;4397:380::-;4476:1;4472:12;;;;4519;;;4540:61;;4594:4;4586:6;4582:17;4572:27;;4540:61;4647:2;4639:6;4636:14;4616:18;4613:38;4610:161;;4693:10;4688:3;4684:20;4681:1;4674:31;4728:4;4725:1;4718:15;4756:4;4753:1;4746:15;4610:161;;4397:380;;;:::o;4782:356::-;4984:2;4966:21;;;5003:18;;;4996:30;5062:34;5057:2;5042:18;;5035:62;5129:2;5114:18;;4782:356::o;5143:127::-;5204:10;5199:3;5195:20;5192:1;5185:31;5235:4;5232:1;5225:15;5259:4;5256:1;5249:15;5275:168;5348:9;;;5379;;5396:15;;;5390:22;;5376:37;5366:71;;5417:18;;:::i;5448:217::-;5488:1;5514;5504:132;;5558:10;5553:3;5549:20;5546:1;5539:31;5593:4;5590:1;5583:15;5621:4;5618:1;5611:15;5504:132;-1:-1:-1;5650:9:1;;5448:217::o;6495:125::-;6560:9;;;6581:10;;;6578:36;;;6594:18;;:::i;6904:245::-;6971:6;7024:2;7012:9;7003:7;6999:23;6995:32;6992:52;;;7040:1;7037;7030:12;6992:52;7072:9;7066:16;7091:28;7113:5;7091:28;:::i;10449:401::-;10651:2;10633:21;;;10690:2;10670:18;;;10663:30;10729:34;10724:2;10709:18;;10702:62;-1:-1:-1;;;10795:2:1;10780:18;;10773:35;10840:3;10825:19;;10449:401::o;10855:399::-;11057:2;11039:21;;;11096:2;11076:18;;;11069:30;11135:34;11130:2;11115:18;;11108:62;-1:-1:-1;;;11201:2:1;11186:18;;11179:33;11244:3;11229:19;;10855:399::o;12803:128::-;12870:9;;;12891:11;;;12888:37;;;12905:18;;:::i;14009:127::-;14070:10;14065:3;14061:20;14058:1;14051:31;14101:4;14098:1;14091:15;14125:4;14122:1;14115:15;14141:251;14211:6;14264:2;14252:9;14243:7;14239:23;14235:32;14232:52;;;14280:1;14277;14270:12;14232:52;14312:9;14306:16;14331:31;14356:5;14331:31;:::i;14397:980::-;14659:4;14707:3;14696:9;14692:19;14738:6;14727:9;14720:25;14764:2;14802:6;14797:2;14786:9;14782:18;14775:34;14845:3;14840:2;14829:9;14825:18;14818:31;14869:6;14904;14898:13;14935:6;14927;14920:22;14973:3;14962:9;14958:19;14951:26;;15012:2;15004:6;15000:15;14986:29;;15033:1;15043:195;15057:6;15054:1;15051:13;15043:195;;;15122:13;;-1:-1:-1;;;;;15118:39:1;15106:52;;15213:15;;;;15178:12;;;;15154:1;15072:9;15043:195;;;-1:-1:-1;;;;;;;15294:32:1;;;;15289:2;15274:18;;15267:60;-1:-1:-1;;;15358:3:1;15343:19;15336:35;15255:3;14397:980;-1:-1:-1;;;14397:980:1:o;15994:306::-;16082:6;16090;16098;16151:2;16139:9;16130:7;16126:23;16122:32;16119:52;;;16167:1;16164;16157:12;16119:52;16196:9;16190:16;16180:26;;16246:2;16235:9;16231:18;16225:25;16215:35;;16290:2;16279:9;16275:18;16269:25;16259:35;;15994:306;;;;;:::o
Swarm Source
ipfs://c6c39003ee019e62192f4812af694ccf39108cdbc72aa9435262bd5cffcb6763
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.