ERC-20
Overview
Max Total Supply
420,690,000,000,000 PETKA
Holders
47
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,228,563,814,386.73365772991123794 PETKAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
PETKA
Compiler Version
v0.8.27+commit.40a35a09
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-10-07 */ // SPDX-License-Identifier: MIT /* Website: https://www.bookofpetka.xyz Twitter: https://x.com/Petka_eth Portal: https://t.me/Petka_eth */ pragma solidity ^0.8.23; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } 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 _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns ( uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast ); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function burn(address to) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract PETKA is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public uniswapV2Pair; address public constant deadAddress = address(0xdead); bool private swapping; address public marketerWallet; address public DevsWallet; uint256 public maxTx; uint256 public swapTokensAtAmount; uint256 public maxWallets; bool public limitsInEffect = true; bool public tradingActive = false; bool public swapEnabled = false; // Anti-bot and anti-whale mappings and variables mapping(address => uint256) private _holderLastTransferTimestamp; bool public transferDelayEnabled = false; uint256 public buyTotalFees; uint256 public buyMarketingFee; uint256 public buyDevFee; uint256 public sellTotalFees; uint256 public sellMarketingFee; uint256 public sellDevFee; uint256 public tokensForMarkets; uint256 public tokensForDev; mapping(address => bool) private _isBlackList; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedmaxTx; mapping(address => bool) public automatedMarketMakerPairs; event UpdateUniswapV2Router( address indexed newAddress, address indexed oldAddress ); event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event marketerWalletUpdated( address indexed newWallet, address indexed olDevsWalletallet ); event DevsWalletUpdated( address indexed newWallet, address indexed olDevsWalletallet ); constructor() ERC20("Petka Microbe", unicode"PETKA") { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uint256 totalSupply = 420690000000000 * 1e18; marketerWallet = address(0x7b39d9ec5b3796b30E1025C21480fB1c49a89Fef); DevsWallet = address(0x7b39d9ec5b3796b30E1025C21480fB1c49a89Fef); maxTx = (totalSupply * 10) / 1000; maxWallets = (totalSupply * 10) / 1000; swapTokensAtAmount = (totalSupply * 10) / 1000; excludeFrommaxTx(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); excludeFrommaxTx(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uint256 _buyMarketingFee = 20; uint256 _buyDevFee = 0; uint256 _sellMarketingFee = 25; uint256 _sellDevFee = 0; buyMarketingFee = _buyMarketingFee; buyDevFee = _buyDevFee; buyTotalFees = buyMarketingFee + buyDevFee; sellMarketingFee = _sellMarketingFee; sellDevFee = _sellDevFee; sellTotalFees = sellMarketingFee + sellDevFee; excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFrommaxTx(owner(), true); excludeFrommaxTx(address(this), true); excludeFrommaxTx(address(0xdead), true); _mint(msg.sender, totalSupply); } receive() external payable {} function enableTrading() external onlyOwner { tradingActive = true; swapEnabled = true; } function removeLimits() external onlyOwner returns (bool) { limitsInEffect = false; return true; } function disableDelay() external onlyOwner returns (bool) { transferDelayEnabled = false; return true; } 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 maxTx lower than 0.1%" ); maxTx = newNum * (10**18); } function updatemaxWalletsAmount(uint256 newNum) external onlyOwner { require( newNum >= ((totalSupply() * 5) / 1000) / 1e18, "Cannot set maxWallets lower than 0.5%" ); maxWallets = newNum * (10**18); } function excludeFrommaxTx(address updAds, bool isEx) public onlyOwner { _isExcludedmaxTx[updAds] = isEx; } function updateSwapEnabled(bool enabled) external onlyOwner { swapEnabled = enabled; } function updateFees( uint256 _buyMarketingFee, uint256 _buyDevFee, uint256 _sellMarketingFee, uint256 _sellDevFee) external onlyOwner { buyMarketingFee = _buyMarketingFee; buyDevFee = _buyDevFee; buyTotalFees = buyMarketingFee + buyDevFee; sellMarketingFee = _sellMarketingFee; sellDevFee = _sellDevFee; sellTotalFees = sellMarketingFee + sellDevFee; require(buyTotalFees <= 45, "Must keep fees at 45% or less"); require(sellTotalFees <= 45, "Must keep fees at 45% or less"); } function updateBuyFees( uint256 _marketingFee, uint256 _devFee ) external onlyOwner { buyMarketingFee = _marketingFee; buyDevFee = _devFee; buyTotalFees = buyMarketingFee + buyDevFee; require(buyTotalFees <= 45, "Must keep fees at 45% or less"); } function updateSellFees( uint256 _marketingFee, uint256 _devFee ) external onlyOwner { sellMarketingFee = _marketingFee; sellDevFee = _devFee; sellTotalFees = sellMarketingFee + sellDevFee; require(sellTotalFees <= 45, "Must keep fees at 45% or less"); } 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 updatemarketerWallet(address newmarketerWallet) external onlyOwner { emit marketerWalletUpdated(newmarketerWallet, marketerWallet); marketerWallet = newmarketerWallet; } function updateDevsWallet(address newWallet) external onlyOwner { emit DevsWalletUpdated(newWallet, DevsWallet); DevsWallet = 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"); require(!_isBlackList[from], "[from] black list"); require(!_isBlackList[to], "[to] black list"); if (amount == 0) { super._transfer(from, to, 0); return; } if (limitsInEffect) { if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { if (!tradingActive) { require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch. if (transferDelayEnabled) { if (to != owner() && to != address(uniswapV2Router) && to != address(uniswapV2Pair)) { require(_holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled. Only one purchase per block allowed."); _holderLastTransferTimestamp[tx.origin] = block.number; } } //when buy if (automatedMarketMakerPairs[from] && !_isExcludedmaxTx[to]) { require(amount <= maxTx, "Buy transfer amount exceeds the maxTx."); require(amount + balanceOf(to) <= maxWallets, "Max wallet exceeded"); } //when sell else if (automatedMarketMakerPairs[to] && !_isExcludedmaxTx[from]) { require(amount <= maxTx, "Sell transfer amount exceeds the maxTx."); } else if (!_isExcludedmaxTx[to]) { require(amount + balanceOf(to) <= maxWallets, "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); tokensForDev += (fees * sellDevFee) / sellTotalFees; tokensForMarkets += (fees * sellMarketingFee) / sellTotalFees; } // on buy else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount.mul(buyTotalFees).div(100); tokensForDev += (fees * buyDevFee) / buyTotalFees; tokensForMarkets += (fees * buyMarketingFee) / buyTotalFees; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function min(uint256 a, uint256 b) private pure returns (uint256) { return (a > b) ? b : a; } function manualSend(uint256 amount) external { require(_msgSender() == marketerWallet); require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount"); swapTokensForEth(amount); } function swapTokensForEth(uint256 tokenAmount) private { 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 swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForMarkets + tokensForDev; bool success; if (contractBalance == 0) { return; } if (contractBalance > swapTokensAtAmount * 20) { contractBalance = swapTokensAtAmount * 20; } uint256 initialETHBalance = address(this).balance; swapTokensForEth(contractBalance); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForDev = ethBalance.mul(tokensForDev).div(totalTokensToSwap); tokensForMarkets = 0; tokensForDev = 0; (success, ) = address(DevsWallet).call{value: ethForDev}(""); (success, ) = address(marketerWallet).call{ value: address(this).balance }(""); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"olDevsWalletallet","type":"address"}],"name":"DevsWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"olDevsWalletallet","type":"address"}],"name":"marketerWalletUpdated","type":"event"},{"inputs":[],"name":"DevsWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedmaxTx","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":"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":"disableDelay","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":"excludeFrommaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketerWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"tokensForMarkets","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"_devFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevsWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyMarketingFee","type":"uint256"},{"internalType":"uint256","name":"_buyDevFee","type":"uint256"},{"internalType":"uint256","name":"_sellMarketingFee","type":"uint256"},{"internalType":"uint256","name":"_sellDevFee","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","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":"newmarketerWallet","type":"address"}],"name":"updatemarketerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updatemaxWalletsAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a0604052600c805462ffffff19166001179055600e805460ff19169055348015610028575f5ffd5b506040518060400160405280600d81526020016c5065746b61204d6963726f626560981b815250604051806040016040528060058152602001645045544b4160d81b815250816003908161007c91906106ce565b50600461008982826106ce565b5050506100a261009d61039360201b60201c565b610397565b60078054737b39d9ec5b3796b30e1025c21480fb1c49a89fef6001600160a01b03199182168117909255600880549091169091179055737a250d5630b4cf539739df2c5dacb4c659f2488d6d14bddab3e51a57cff87a500000006103e861010a82600a61079c565b61011491906107b9565b6009556103e861012582600a61079c565b61012f91906107b9565b600b556103e861014082600a61079c565b61014a91906107b9565b600a556101588260016103e8565b6001600160a01b03821660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156101a0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101c491906107d8565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561020f573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023391906107d8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561027d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a191906107d8565b600680546001600160a01b0319166001600160a01b039290921691821790556102cb9060016103e8565b6006546102e2906001600160a01b0316600161045e565b601460108190555f60118190556019816102fc8185610805565b600f55601382905560148190556103138183610805565b60125561033261032b6005546001600160a01b031690565b60016104b1565b61033d3060016104b1565b61034a61dead60016104b1565b61036661035f6005546001600160a01b031690565b60016103e8565b6103713060016103e8565b61037e61dead60016103e8565b6103883386610556565b505050505050610818565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6005546001600160a01b031633146104345760405162461bcd60e51b815260206004820181905260248201525f51602061300d5f395f51905f5260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152601960205260409020805460ff1916911515919091179055565b6001600160a01b0382165f818152601a6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b031633146104f85760405162461bcd60e51b815260206004820181905260248201525f51602061300d5f395f51905f52604482015260640161042b565b6001600160a01b0382165f81815260186020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b0382166105ac5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161042b565b8060025f8282546105bd9190610805565b90915550506001600160a01b0382165f90815260208190526040812080548392906105e9908490610805565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061065f57607f821691505b60208210810361067d57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561063257805f5260205f20601f840160051c810160208510156106a85750805b601f840160051c820191505b818110156106c7575f81556001016106b4565b5050505050565b81516001600160401b038111156106e7576106e7610637565b6106fb816106f5845461064b565b84610683565b6020601f82116001811461072d575f83156107165750848201515b5f19600385901b1c1916600184901b1784556106c7565b5f84815260208120601f198516915b8281101561075c578785015182556020948501946001909201910161073c565b508482101561077957868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176107b3576107b3610788565b92915050565b5f826107d357634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156107e8575f5ffd5b81516001600160a01b03811681146107fe575f5ffd5b9392505050565b808201808211156107b3576107b3610788565b6080516127c161084c5f395f81816103ba0152818161187801528181611f7201528181612029015261206501526127c15ff3fe608060405260043610610310575f3560e01c80637bce5a04116101a3578063b62496f5116100f2578063d257b34f11610092578063e2f456051161006d578063e2f45605146108fb578063e6819ba714610910578063f1b9ad6b1461093e578063f2fde38b1461095d575f5ffd5b8063d257b34f14610883578063d85ba063146108a2578063dd62ed3e146108b7575f5ffd5b8063bbc0c742116100cd578063bbc0c7421461080e578063c02466681461082c578063c6616ba11461084b578063c876d0b91461086a575f5ffd5b8063b62496f5146107a2578063b819a1a9146107d0578063b962031a146107ef575f5ffd5b80639a7a23d61161015d578063a0d82dc511610138578063a0d82dc514610730578063a457c2d714610745578063a72f458614610764578063a9059cbb14610783575f5ffd5b80639a7a23d6146106e75780639c3b4fdc146107065780639fccce321461071b575f5ffd5b80637bce5a04146106595780638a8c523c1461066e5780638da5cb5b14610682578063921369131461069f578063924de9b7146106b457806395d89b41146106d3575f5ffd5b8063395093511161025f57806366ca9b831161021957806370a08231116101f457806370a08231146105e8578063715018a61461061c5780637437681e14610630578063751039fc14610645575f5ffd5b806366ca9b83146105955780636a486a8e146105b45780636ddd1713146105c9575f5ffd5b806339509351146104d357806349bd5a5e146104f25780634a62bb65146105115780634fbee1931461052a57806361528e2714610561578063644130d814610576575f5ffd5b8063203e727e116102ca57806327c8f835116102a557806327c8f8351461046f57806330a136ad146104845780633103b39e14610499578063313ce567146104b8575f5ffd5b8063203e727e14610412578063217580a21461043157806323b872dd14610450575f5ffd5b806302dbd8f81461031b57806306fdde031461033c578063095ea7b3146103665780630d621563146103955780631694505e146103a957806318160ddd146103f4575f5ffd5b3661031757005b5f5ffd5b348015610326575f5ffd5b5061033a61033536600461238c565b61097c565b005b348015610347575f5ffd5b506103506109ec565b60405161035d91906123ac565b60405180910390f35b348015610371575f5ffd5b506103856103803660046123f5565b610a7c565b604051901515815260200161035d565b3480156103a0575f5ffd5b50610385610a92565b3480156103b4575f5ffd5b506103dc7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161035d565b3480156103ff575f5ffd5b506002545b60405190815260200161035d565b34801561041d575f5ffd5b5061033a61042c36600461241f565b610ace565b34801561043c575f5ffd5b5061033a61044b36600461241f565b610b93565b34801561045b575f5ffd5b5061038561046a366004612436565b610c66565b34801561047a575f5ffd5b506103dc61dead81565b34801561048f575f5ffd5b50610404600b5481565b3480156104a4575f5ffd5b506008546103dc906001600160a01b031681565b3480156104c3575f5ffd5b506040516012815260200161035d565b3480156104de575f5ffd5b506103856104ed3660046123f5565b610d0e565b3480156104fd575f5ffd5b506006546103dc906001600160a01b031681565b34801561051c575f5ffd5b50600c546103859060ff1681565b348015610535575f5ffd5b50610385610544366004612474565b6001600160a01b03165f9081526018602052604090205460ff1690565b34801561056c575f5ffd5b5061040460155481565b348015610581575f5ffd5b5061033a61059036600461249e565b610d49565b3480156105a0575f5ffd5b5061033a6105af36600461238c565b610d9d565b3480156105bf575f5ffd5b5061040460125481565b3480156105d4575f5ffd5b50600c546103859062010000900460ff1681565b3480156105f3575f5ffd5b50610404610602366004612474565b6001600160a01b03165f9081526020819052604090205490565b348015610627575f5ffd5b5061033a610e00565b34801561063b575f5ffd5b5061040460095481565b348015610650575f5ffd5b50610385610e35565b348015610664575f5ffd5b5061040460105481565b348015610679575f5ffd5b5061033a610e71565b34801561068d575f5ffd5b506005546001600160a01b03166103dc565b3480156106aa575f5ffd5b5061040460135481565b3480156106bf575f5ffd5b5061033a6106ce3660046124d1565b610eae565b3480156106de575f5ffd5b50610350610ef4565b3480156106f2575f5ffd5b5061033a61070136600461249e565b610f03565b348015610711575f5ffd5b5061040460115481565b348015610726575f5ffd5b5061040460165481565b34801561073b575f5ffd5b5061040460145481565b348015610750575f5ffd5b5061038561075f3660046123f5565b610fbb565b34801561076f575f5ffd5b506007546103dc906001600160a01b031681565b34801561078e575f5ffd5b5061038561079d3660046123f5565b611053565b3480156107ad575f5ffd5b506103856107bc366004612474565b601a6020525f908152604090205460ff1681565b3480156107db575f5ffd5b5061033a6107ea366004612474565b61105f565b3480156107fa575f5ffd5b5061033a61080936600461241f565b6110e5565b348015610819575f5ffd5b50600c5461038590610100900460ff1681565b348015610837575f5ffd5b5061033a61084636600461249e565b611168565b348015610856575f5ffd5b5061033a6108653660046124ea565b6111f0565b348015610875575f5ffd5b50600e546103859060ff1681565b34801561088e575f5ffd5b5061038561089d36600461241f565b611294565b3480156108ad575f5ffd5b50610404600f5481565b3480156108c2575f5ffd5b506104046108d1366004612519565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610906575f5ffd5b50610404600a5481565b34801561091b575f5ffd5b5061038561092a366004612474565b60196020525f908152604090205460ff1681565b348015610949575f5ffd5b5061033a610958366004612474565b6113ea565b348015610968575f5ffd5b5061033a610977366004612474565b611470565b6005546001600160a01b031633146109af5760405162461bcd60e51b81526004016109a690612550565b60405180910390fd5b601382905560148190556109c38183612599565b6012819055602d10156109e85760405162461bcd60e51b81526004016109a6906125ac565b5050565b6060600380546109fb906125e3565b80601f0160208091040260200160405190810160405280929190818152602001828054610a27906125e3565b8015610a725780601f10610a4957610100808354040283529160200191610a72565b820191905f5260205f20905b815481529060010190602001808311610a5557829003601f168201915b5050505050905090565b5f610a88338484611508565b5060015b92915050565b6005545f906001600160a01b03163314610abe5760405162461bcd60e51b81526004016109a690612550565b50600e805460ff19169055600190565b6005546001600160a01b03163314610af85760405162461bcd60e51b81526004016109a690612550565b670de0b6b3a76400006103e8610b0d60025490565b610b1890600161261b565b610b229190612632565b610b2c9190612632565b811015610b7b5760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f7420736574206d61785478206c6f776572207468616e20302e312560448201526064016109a6565b610b8d81670de0b6b3a764000061261b565b60095550565b6005546001600160a01b03163314610bbd5760405162461bcd60e51b81526004016109a690612550565b670de0b6b3a76400006103e8610bd260025490565b610bdd90600561261b565b610be79190612632565b610bf19190612632565b811015610c4e5760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d617857616c6c657473206c6f776572207468616e60448201526420302e352560d81b60648201526084016109a6565b610c6081670de0b6b3a764000061261b565b600b5550565b5f610c7284848461162b565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610cf65760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109a6565b610d038533858403611508565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610a88918590610d44908690612599565b611508565b6005546001600160a01b03163314610d735760405162461bcd60e51b81526004016109a690612550565b6001600160a01b03919091165f908152601960205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610dc75760405162461bcd60e51b81526004016109a690612550565b60108290556011819055610ddb8183612599565b600f819055602d10156109e85760405162461bcd60e51b81526004016109a6906125ac565b6005546001600160a01b03163314610e2a5760405162461bcd60e51b81526004016109a690612550565b610e335f611e79565b565b6005545f906001600160a01b03163314610e615760405162461bcd60e51b81526004016109a690612550565b50600c805460ff19169055600190565b6005546001600160a01b03163314610e9b5760405162461bcd60e51b81526004016109a690612550565b600c805462ffff00191662010100179055565b6005546001600160a01b03163314610ed85760405162461bcd60e51b81526004016109a690612550565b600c8054911515620100000262ff000019909216919091179055565b6060600480546109fb906125e3565b6005546001600160a01b03163314610f2d5760405162461bcd60e51b81526004016109a690612550565b6006546001600160a01b0390811690831603610fb15760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016109a6565b6109e88282611eca565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101561103c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109a6565b6110493385858403611508565b5060019392505050565b5f610a8833848461162b565b6005546001600160a01b031633146110895760405162461bcd60e51b81526004016109a690612550565b6008546040516001600160a01b03918216918316907f9e3da7e72199adc414f24e73d3985f288cce5edbc5c370e29af583afdd78c2c2905f90a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b6007546001600160a01b0316336001600160a01b031614611104575f5ffd5b305f90815260208190526040902054811115801561112157505f81115b61115c5760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b60448201526064016109a6565b61116581611f1d565b50565b6005546001600160a01b031633146111925760405162461bcd60e51b81526004016109a690612550565b6001600160a01b0382165f81815260186020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b0316331461121a5760405162461bcd60e51b81526004016109a690612550565b6010849055601183905561122e8385612599565b600f55601382905560148190556112458183612599565b601255600f54602d101561126b5760405162461bcd60e51b81526004016109a6906125ac565b602d601254111561128e5760405162461bcd60e51b81526004016109a6906125ac565b50505050565b6005545f906001600160a01b031633146112c05760405162461bcd60e51b81526004016109a690612550565b620186a06112cd60025490565b6112d890600161261b565b6112e29190612632565b82101561134f5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b60648201526084016109a6565b6103e861135b60025490565b61136690600561261b565b6113709190612632565b8211156113dc5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b60648201526084016109a6565b50600a81905560015b919050565b6005546001600160a01b031633146114145760405162461bcd60e51b81526004016109a690612550565b6007546040516001600160a01b03918216918316907f455cf943964d06e77e44126ecca5a66b2c9721f4576a31f8693127282c55700f905f90a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461149a5760405162461bcd60e51b81526004016109a690612550565b6001600160a01b0381166114ff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109a6565b61116581611e79565b6001600160a01b03831661156a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109a6565b6001600160a01b0382166115cb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109a6565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116515760405162461bcd60e51b81526004016109a690612651565b6001600160a01b0382166116775760405162461bcd60e51b81526004016109a690612696565b6001600160a01b0383165f9081526017602052604090205460ff16156116d35760405162461bcd60e51b815260206004820152601160248201527016d99c9bdb5748189b1858dac81b1a5cdd607a1b60448201526064016109a6565b6001600160a01b0382165f9081526017602052604090205460ff161561172d5760405162461bcd60e51b815260206004820152600f60248201526e16dd1bd748189b1858dac81b1a5cdd608a1b60448201526064016109a6565b805f036117445761173f83835f6120d3565b505050565b600c5460ff1615611bb4576005546001600160a01b0384811691161480159061177b57506005546001600160a01b03838116911614155b801561178f57506001600160a01b03821615155b80156117a657506001600160a01b03821661dead14155b80156117bc5750600654600160a01b900460ff16155b15611bb457600c54610100900460ff16611852576001600160a01b0383165f9081526018602052604090205460ff168061180d57506001600160a01b0382165f9081526018602052604090205460ff165b6118525760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016109a6565b600e5460ff1615611973576005546001600160a01b038381169116148015906118ad57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b80156118c757506006546001600160a01b03838116911614155b1561197357325f908152600d602052604090205443116119615760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016109a6565b325f908152600d602052604090204390555b6001600160a01b0383165f908152601a602052604090205460ff1680156119b257506001600160a01b0382165f9081526019602052604090205460ff16155b15611a8657600954811115611a185760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526536b0bc2a3c1760d11b60648201526084016109a6565b600b546001600160a01b0383165f90815260208190526040902054611a3d9083612599565b1115611a815760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109a6565b611bb4565b6001600160a01b0382165f908152601a602052604090205460ff168015611ac557506001600160a01b0383165f9081526019602052604090205460ff16155b15611b2c57600954811115611a815760405162461bcd60e51b815260206004820152602760248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152661036b0bc2a3c1760c91b60648201526084016109a6565b6001600160a01b0382165f9081526019602052604090205460ff16611bb457600b546001600160a01b0383165f90815260208190526040902054611b709083612599565b1115611bb45760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109a6565b305f90815260208190526040902054600a5481108015908190611bdf5750600c5462010000900460ff165b8015611bf55750600654600160a01b900460ff16155b8015611c1957506001600160a01b0385165f908152601a602052604090205460ff16155b8015611c3d57506001600160a01b0385165f9081526018602052604090205460ff16155b8015611c6157506001600160a01b0384165f9081526018602052604090205460ff16155b15611c8f576006805460ff60a01b1916600160a01b179055611c81612225565b6006805460ff60a01b191690555b6006546001600160a01b0386165f9081526018602052604090205460ff600160a01b909204821615911680611cdb57506001600160a01b0385165f9081526018602052604090205460ff165b15611ce357505f5b5f8115611e65576001600160a01b0386165f908152601a602052604090205460ff168015611d1257505f601254115b15611d9e57611d376064611d316012548861236490919063ffffffff16565b90612376565b905060125460145482611d4a919061261b565b611d549190612632565b60165f828254611d649190612599565b9091555050601254601354611d79908361261b565b611d839190612632565b60155f828254611d939190612599565b90915550611e479050565b6001600160a01b0387165f908152601a602052604090205460ff168015611dc657505f600f54115b15611e4757611de56064611d31600f548861236490919063ffffffff16565b9050600f5460115482611df8919061261b565b611e029190612632565b60165f828254611e129190612599565b9091555050600f54601054611e27908361261b565b611e319190612632565b60155f828254611e419190612599565b90915550505b8015611e5857611e588730836120d3565b611e6281866126d9565b94505b611e708787876120d3565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f818152601a6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611f5057611f506126ec565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fcc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ff09190612700565b81600181518110612003576120036126ec565b60200260200101906001600160a01b031690816001600160a01b03168152505061204e307f000000000000000000000000000000000000000000000000000000000000000084611508565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906120a29085905f9086903090429060040161271b565b5f604051808303815f87803b1580156120b9575f5ffd5b505af11580156120cb573d5f5f3e3d5ffd5b505050505050565b6001600160a01b0383166120f95760405162461bcd60e51b81526004016109a690612651565b6001600160a01b03821661211f5760405162461bcd60e51b81526004016109a690612696565b6001600160a01b0383165f90815260208190526040902054818110156121965760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109a6565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906121cc908490612599565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161221891815260200190565b60405180910390a361128e565b305f9081526020819052604081205490505f6016546015546122479190612599565b90505f825f0361225657505050565b600a5461226490601461261b565b83111561227c57600a5461227990601461261b565b92505b4761228684611f1d565b5f6122914783612381565b90505f6122ad85611d316016548561236490919063ffffffff16565b5f601581905560168190556008546040519293506001600160a01b031691839181818185875af1925050503d805f8114612302576040519150601f19603f3d011682016040523d82523d5f602084013e612307565b606091505b50506007546040519195506001600160a01b03169047905f81818185875af1925050503d805f8114612354576040519150601f19603f3d011682016040523d82523d5f602084013e612359565b606091505b505050505050505050565b5f61236f828461261b565b9392505050565b5f61236f8284612632565b5f61236f82846126d9565b5f5f6040838503121561239d575f5ffd5b50508035926020909101359150565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611165575f5ffd5b5f5f60408385031215612406575f5ffd5b8235612411816123e1565b946020939093013593505050565b5f6020828403121561242f575f5ffd5b5035919050565b5f5f5f60608486031215612448575f5ffd5b8335612453816123e1565b92506020840135612463816123e1565b929592945050506040919091013590565b5f60208284031215612484575f5ffd5b813561236f816123e1565b803580151581146113e5575f5ffd5b5f5f604083850312156124af575f5ffd5b82356124ba816123e1565b91506124c86020840161248f565b90509250929050565b5f602082840312156124e1575f5ffd5b61236f8261248f565b5f5f5f5f608085870312156124fd575f5ffd5b5050823594602084013594506040840135936060013592509050565b5f5f6040838503121561252a575f5ffd5b8235612535816123e1565b91506020830135612545816123e1565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610a8c57610a8c612585565b6020808252601d908201527f4d757374206b656570206665657320617420343525206f72206c657373000000604082015260600190565b600181811c908216806125f757607f821691505b60208210810361261557634e487b7160e01b5f52602260045260245ffd5b50919050565b8082028115828204841417610a8c57610a8c612585565b5f8261264c57634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610a8c57610a8c612585565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612710575f5ffd5b815161236f816123e1565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561276b5783516001600160a01b0316835260209384019390920191600101612744565b50506001600160a01b03959095166060840152505060800152939250505056fea2646970667358221220e48d44e7a2b00cdeb9c0c18326aa37c016f7dab2b79d19a63ba64631d405ae0064736f6c634300081b00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
Deployed Bytecode
0x608060405260043610610310575f3560e01c80637bce5a04116101a3578063b62496f5116100f2578063d257b34f11610092578063e2f456051161006d578063e2f45605146108fb578063e6819ba714610910578063f1b9ad6b1461093e578063f2fde38b1461095d575f5ffd5b8063d257b34f14610883578063d85ba063146108a2578063dd62ed3e146108b7575f5ffd5b8063bbc0c742116100cd578063bbc0c7421461080e578063c02466681461082c578063c6616ba11461084b578063c876d0b91461086a575f5ffd5b8063b62496f5146107a2578063b819a1a9146107d0578063b962031a146107ef575f5ffd5b80639a7a23d61161015d578063a0d82dc511610138578063a0d82dc514610730578063a457c2d714610745578063a72f458614610764578063a9059cbb14610783575f5ffd5b80639a7a23d6146106e75780639c3b4fdc146107065780639fccce321461071b575f5ffd5b80637bce5a04146106595780638a8c523c1461066e5780638da5cb5b14610682578063921369131461069f578063924de9b7146106b457806395d89b41146106d3575f5ffd5b8063395093511161025f57806366ca9b831161021957806370a08231116101f457806370a08231146105e8578063715018a61461061c5780637437681e14610630578063751039fc14610645575f5ffd5b806366ca9b83146105955780636a486a8e146105b45780636ddd1713146105c9575f5ffd5b806339509351146104d357806349bd5a5e146104f25780634a62bb65146105115780634fbee1931461052a57806361528e2714610561578063644130d814610576575f5ffd5b8063203e727e116102ca57806327c8f835116102a557806327c8f8351461046f57806330a136ad146104845780633103b39e14610499578063313ce567146104b8575f5ffd5b8063203e727e14610412578063217580a21461043157806323b872dd14610450575f5ffd5b806302dbd8f81461031b57806306fdde031461033c578063095ea7b3146103665780630d621563146103955780631694505e146103a957806318160ddd146103f4575f5ffd5b3661031757005b5f5ffd5b348015610326575f5ffd5b5061033a61033536600461238c565b61097c565b005b348015610347575f5ffd5b506103506109ec565b60405161035d91906123ac565b60405180910390f35b348015610371575f5ffd5b506103856103803660046123f5565b610a7c565b604051901515815260200161035d565b3480156103a0575f5ffd5b50610385610a92565b3480156103b4575f5ffd5b506103dc7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161035d565b3480156103ff575f5ffd5b506002545b60405190815260200161035d565b34801561041d575f5ffd5b5061033a61042c36600461241f565b610ace565b34801561043c575f5ffd5b5061033a61044b36600461241f565b610b93565b34801561045b575f5ffd5b5061038561046a366004612436565b610c66565b34801561047a575f5ffd5b506103dc61dead81565b34801561048f575f5ffd5b50610404600b5481565b3480156104a4575f5ffd5b506008546103dc906001600160a01b031681565b3480156104c3575f5ffd5b506040516012815260200161035d565b3480156104de575f5ffd5b506103856104ed3660046123f5565b610d0e565b3480156104fd575f5ffd5b506006546103dc906001600160a01b031681565b34801561051c575f5ffd5b50600c546103859060ff1681565b348015610535575f5ffd5b50610385610544366004612474565b6001600160a01b03165f9081526018602052604090205460ff1690565b34801561056c575f5ffd5b5061040460155481565b348015610581575f5ffd5b5061033a61059036600461249e565b610d49565b3480156105a0575f5ffd5b5061033a6105af36600461238c565b610d9d565b3480156105bf575f5ffd5b5061040460125481565b3480156105d4575f5ffd5b50600c546103859062010000900460ff1681565b3480156105f3575f5ffd5b50610404610602366004612474565b6001600160a01b03165f9081526020819052604090205490565b348015610627575f5ffd5b5061033a610e00565b34801561063b575f5ffd5b5061040460095481565b348015610650575f5ffd5b50610385610e35565b348015610664575f5ffd5b5061040460105481565b348015610679575f5ffd5b5061033a610e71565b34801561068d575f5ffd5b506005546001600160a01b03166103dc565b3480156106aa575f5ffd5b5061040460135481565b3480156106bf575f5ffd5b5061033a6106ce3660046124d1565b610eae565b3480156106de575f5ffd5b50610350610ef4565b3480156106f2575f5ffd5b5061033a61070136600461249e565b610f03565b348015610711575f5ffd5b5061040460115481565b348015610726575f5ffd5b5061040460165481565b34801561073b575f5ffd5b5061040460145481565b348015610750575f5ffd5b5061038561075f3660046123f5565b610fbb565b34801561076f575f5ffd5b506007546103dc906001600160a01b031681565b34801561078e575f5ffd5b5061038561079d3660046123f5565b611053565b3480156107ad575f5ffd5b506103856107bc366004612474565b601a6020525f908152604090205460ff1681565b3480156107db575f5ffd5b5061033a6107ea366004612474565b61105f565b3480156107fa575f5ffd5b5061033a61080936600461241f565b6110e5565b348015610819575f5ffd5b50600c5461038590610100900460ff1681565b348015610837575f5ffd5b5061033a61084636600461249e565b611168565b348015610856575f5ffd5b5061033a6108653660046124ea565b6111f0565b348015610875575f5ffd5b50600e546103859060ff1681565b34801561088e575f5ffd5b5061038561089d36600461241f565b611294565b3480156108ad575f5ffd5b50610404600f5481565b3480156108c2575f5ffd5b506104046108d1366004612519565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610906575f5ffd5b50610404600a5481565b34801561091b575f5ffd5b5061038561092a366004612474565b60196020525f908152604090205460ff1681565b348015610949575f5ffd5b5061033a610958366004612474565b6113ea565b348015610968575f5ffd5b5061033a610977366004612474565b611470565b6005546001600160a01b031633146109af5760405162461bcd60e51b81526004016109a690612550565b60405180910390fd5b601382905560148190556109c38183612599565b6012819055602d10156109e85760405162461bcd60e51b81526004016109a6906125ac565b5050565b6060600380546109fb906125e3565b80601f0160208091040260200160405190810160405280929190818152602001828054610a27906125e3565b8015610a725780601f10610a4957610100808354040283529160200191610a72565b820191905f5260205f20905b815481529060010190602001808311610a5557829003601f168201915b5050505050905090565b5f610a88338484611508565b5060015b92915050565b6005545f906001600160a01b03163314610abe5760405162461bcd60e51b81526004016109a690612550565b50600e805460ff19169055600190565b6005546001600160a01b03163314610af85760405162461bcd60e51b81526004016109a690612550565b670de0b6b3a76400006103e8610b0d60025490565b610b1890600161261b565b610b229190612632565b610b2c9190612632565b811015610b7b5760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f7420736574206d61785478206c6f776572207468616e20302e312560448201526064016109a6565b610b8d81670de0b6b3a764000061261b565b60095550565b6005546001600160a01b03163314610bbd5760405162461bcd60e51b81526004016109a690612550565b670de0b6b3a76400006103e8610bd260025490565b610bdd90600561261b565b610be79190612632565b610bf19190612632565b811015610c4e5760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d617857616c6c657473206c6f776572207468616e60448201526420302e352560d81b60648201526084016109a6565b610c6081670de0b6b3a764000061261b565b600b5550565b5f610c7284848461162b565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610cf65760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109a6565b610d038533858403611508565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610a88918590610d44908690612599565b611508565b6005546001600160a01b03163314610d735760405162461bcd60e51b81526004016109a690612550565b6001600160a01b03919091165f908152601960205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610dc75760405162461bcd60e51b81526004016109a690612550565b60108290556011819055610ddb8183612599565b600f819055602d10156109e85760405162461bcd60e51b81526004016109a6906125ac565b6005546001600160a01b03163314610e2a5760405162461bcd60e51b81526004016109a690612550565b610e335f611e79565b565b6005545f906001600160a01b03163314610e615760405162461bcd60e51b81526004016109a690612550565b50600c805460ff19169055600190565b6005546001600160a01b03163314610e9b5760405162461bcd60e51b81526004016109a690612550565b600c805462ffff00191662010100179055565b6005546001600160a01b03163314610ed85760405162461bcd60e51b81526004016109a690612550565b600c8054911515620100000262ff000019909216919091179055565b6060600480546109fb906125e3565b6005546001600160a01b03163314610f2d5760405162461bcd60e51b81526004016109a690612550565b6006546001600160a01b0390811690831603610fb15760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016109a6565b6109e88282611eca565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101561103c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109a6565b6110493385858403611508565b5060019392505050565b5f610a8833848461162b565b6005546001600160a01b031633146110895760405162461bcd60e51b81526004016109a690612550565b6008546040516001600160a01b03918216918316907f9e3da7e72199adc414f24e73d3985f288cce5edbc5c370e29af583afdd78c2c2905f90a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b6007546001600160a01b0316336001600160a01b031614611104575f5ffd5b305f90815260208190526040902054811115801561112157505f81115b61115c5760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b60448201526064016109a6565b61116581611f1d565b50565b6005546001600160a01b031633146111925760405162461bcd60e51b81526004016109a690612550565b6001600160a01b0382165f81815260186020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b0316331461121a5760405162461bcd60e51b81526004016109a690612550565b6010849055601183905561122e8385612599565b600f55601382905560148190556112458183612599565b601255600f54602d101561126b5760405162461bcd60e51b81526004016109a6906125ac565b602d601254111561128e5760405162461bcd60e51b81526004016109a6906125ac565b50505050565b6005545f906001600160a01b031633146112c05760405162461bcd60e51b81526004016109a690612550565b620186a06112cd60025490565b6112d890600161261b565b6112e29190612632565b82101561134f5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b60648201526084016109a6565b6103e861135b60025490565b61136690600561261b565b6113709190612632565b8211156113dc5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b60648201526084016109a6565b50600a81905560015b919050565b6005546001600160a01b031633146114145760405162461bcd60e51b81526004016109a690612550565b6007546040516001600160a01b03918216918316907f455cf943964d06e77e44126ecca5a66b2c9721f4576a31f8693127282c55700f905f90a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461149a5760405162461bcd60e51b81526004016109a690612550565b6001600160a01b0381166114ff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109a6565b61116581611e79565b6001600160a01b03831661156a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109a6565b6001600160a01b0382166115cb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109a6565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116515760405162461bcd60e51b81526004016109a690612651565b6001600160a01b0382166116775760405162461bcd60e51b81526004016109a690612696565b6001600160a01b0383165f9081526017602052604090205460ff16156116d35760405162461bcd60e51b815260206004820152601160248201527016d99c9bdb5748189b1858dac81b1a5cdd607a1b60448201526064016109a6565b6001600160a01b0382165f9081526017602052604090205460ff161561172d5760405162461bcd60e51b815260206004820152600f60248201526e16dd1bd748189b1858dac81b1a5cdd608a1b60448201526064016109a6565b805f036117445761173f83835f6120d3565b505050565b600c5460ff1615611bb4576005546001600160a01b0384811691161480159061177b57506005546001600160a01b03838116911614155b801561178f57506001600160a01b03821615155b80156117a657506001600160a01b03821661dead14155b80156117bc5750600654600160a01b900460ff16155b15611bb457600c54610100900460ff16611852576001600160a01b0383165f9081526018602052604090205460ff168061180d57506001600160a01b0382165f9081526018602052604090205460ff165b6118525760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016109a6565b600e5460ff1615611973576005546001600160a01b038381169116148015906118ad57507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316826001600160a01b031614155b80156118c757506006546001600160a01b03838116911614155b1561197357325f908152600d602052604090205443116119615760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016109a6565b325f908152600d602052604090204390555b6001600160a01b0383165f908152601a602052604090205460ff1680156119b257506001600160a01b0382165f9081526019602052604090205460ff16155b15611a8657600954811115611a185760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526536b0bc2a3c1760d11b60648201526084016109a6565b600b546001600160a01b0383165f90815260208190526040902054611a3d9083612599565b1115611a815760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109a6565b611bb4565b6001600160a01b0382165f908152601a602052604090205460ff168015611ac557506001600160a01b0383165f9081526019602052604090205460ff16155b15611b2c57600954811115611a815760405162461bcd60e51b815260206004820152602760248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152661036b0bc2a3c1760c91b60648201526084016109a6565b6001600160a01b0382165f9081526019602052604090205460ff16611bb457600b546001600160a01b0383165f90815260208190526040902054611b709083612599565b1115611bb45760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016109a6565b305f90815260208190526040902054600a5481108015908190611bdf5750600c5462010000900460ff165b8015611bf55750600654600160a01b900460ff16155b8015611c1957506001600160a01b0385165f908152601a602052604090205460ff16155b8015611c3d57506001600160a01b0385165f9081526018602052604090205460ff16155b8015611c6157506001600160a01b0384165f9081526018602052604090205460ff16155b15611c8f576006805460ff60a01b1916600160a01b179055611c81612225565b6006805460ff60a01b191690555b6006546001600160a01b0386165f9081526018602052604090205460ff600160a01b909204821615911680611cdb57506001600160a01b0385165f9081526018602052604090205460ff165b15611ce357505f5b5f8115611e65576001600160a01b0386165f908152601a602052604090205460ff168015611d1257505f601254115b15611d9e57611d376064611d316012548861236490919063ffffffff16565b90612376565b905060125460145482611d4a919061261b565b611d549190612632565b60165f828254611d649190612599565b9091555050601254601354611d79908361261b565b611d839190612632565b60155f828254611d939190612599565b90915550611e479050565b6001600160a01b0387165f908152601a602052604090205460ff168015611dc657505f600f54115b15611e4757611de56064611d31600f548861236490919063ffffffff16565b9050600f5460115482611df8919061261b565b611e029190612632565b60165f828254611e129190612599565b9091555050600f54601054611e27908361261b565b611e319190612632565b60155f828254611e419190612599565b90915550505b8015611e5857611e588730836120d3565b611e6281866126d9565b94505b611e708787876120d3565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382165f818152601a6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611f5057611f506126ec565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fcc573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ff09190612700565b81600181518110612003576120036126ec565b60200260200101906001600160a01b031690816001600160a01b03168152505061204e307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611508565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906120a29085905f9086903090429060040161271b565b5f604051808303815f87803b1580156120b9575f5ffd5b505af11580156120cb573d5f5f3e3d5ffd5b505050505050565b6001600160a01b0383166120f95760405162461bcd60e51b81526004016109a690612651565b6001600160a01b03821661211f5760405162461bcd60e51b81526004016109a690612696565b6001600160a01b0383165f90815260208190526040902054818110156121965760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109a6565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906121cc908490612599565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161221891815260200190565b60405180910390a361128e565b305f9081526020819052604081205490505f6016546015546122479190612599565b90505f825f0361225657505050565b600a5461226490601461261b565b83111561227c57600a5461227990601461261b565b92505b4761228684611f1d565b5f6122914783612381565b90505f6122ad85611d316016548561236490919063ffffffff16565b5f601581905560168190556008546040519293506001600160a01b031691839181818185875af1925050503d805f8114612302576040519150601f19603f3d011682016040523d82523d5f602084013e612307565b606091505b50506007546040519195506001600160a01b03169047905f81818185875af1925050503d805f8114612354576040519150601f19603f3d011682016040523d82523d5f602084013e612359565b606091505b505050505050505050565b5f61236f828461261b565b9392505050565b5f61236f8284612632565b5f61236f82846126d9565b5f5f6040838503121561239d575f5ffd5b50508035926020909101359150565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611165575f5ffd5b5f5f60408385031215612406575f5ffd5b8235612411816123e1565b946020939093013593505050565b5f6020828403121561242f575f5ffd5b5035919050565b5f5f5f60608486031215612448575f5ffd5b8335612453816123e1565b92506020840135612463816123e1565b929592945050506040919091013590565b5f60208284031215612484575f5ffd5b813561236f816123e1565b803580151581146113e5575f5ffd5b5f5f604083850312156124af575f5ffd5b82356124ba816123e1565b91506124c86020840161248f565b90509250929050565b5f602082840312156124e1575f5ffd5b61236f8261248f565b5f5f5f5f608085870312156124fd575f5ffd5b5050823594602084013594506040840135936060013592509050565b5f5f6040838503121561252a575f5ffd5b8235612535816123e1565b91506020830135612545816123e1565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610a8c57610a8c612585565b6020808252601d908201527f4d757374206b656570206665657320617420343525206f72206c657373000000604082015260600190565b600181811c908216806125f757607f821691505b60208210810361261557634e487b7160e01b5f52602260045260245ffd5b50919050565b8082028115828204841417610a8c57610a8c612585565b5f8261264c57634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610a8c57610a8c612585565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612710575f5ffd5b815161236f816123e1565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b8181101561276b5783516001600160a01b0316835260209384019390920191600101612744565b50506001600160a01b03959095166060840152505060800152939250505056fea2646970667358221220e48d44e7a2b00cdeb9c0c18326aa37c016f7dab2b79d19a63ba64631d405ae0064736f6c634300081b0033
Deployed Bytecode Sourcemap
15076:13210:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21110:318;;;;;;;;;;-1:-1:-1;21110:318:0;;;;;:::i;:::-;;:::i;:::-;;2773:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3687:169;;;;;;;;;;-1:-1:-1;3687:169:0;;;;;:::i;:::-;;:::i;:::-;;;1461:14:1;;1454:22;1436:41;;1424:2;1409:18;3687:169:0;1296:187:1;18774:127:0;;;;;;;;;;;;;:::i;15151:51::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1679:32:1;;;1661:51;;1649:2;1634:18;15151:51:0;1488:230:1;3094:108:0;;;;;;;;;;-1:-1:-1;3182:12:0;;3094:108;;;1869:25:1;;;1857:2;1842:18;3094:108:0;1723:177:1;19414:245:0;;;;;;;;;;-1:-1:-1;19414:245:0;;;;;:::i;:::-;;:::i;19667:259::-;;;;;;;;;;-1:-1:-1;19667:259:0;;;;;:::i;:::-;;:::i;3864:492::-;;;;;;;;;;-1:-1:-1;3864:492:0;;;;;:::i;:::-;;:::i;15244:53::-;;;;;;;;;;;;15290:6;15244:53;;15473:25;;;;;;;;;;;;;;;;15372;;;;;;;;;;-1:-1:-1;15372:25:0;;;;-1:-1:-1;;;;;15372:25:0;;;2993:93;;;;;;;;;;-1:-1:-1;2993:93:0;;3076:2;2999:36:1;;2987:2;2972:18;2993:93:0;2857:184:1;4364:215:0;;;;;;;;;;-1:-1:-1;4364:215:0;;;;;:::i;:::-;;:::i;15209:28::-;;;;;;;;;;-1:-1:-1;15209:28:0;;;;-1:-1:-1;;;;;15209:28:0;;;15507:33;;;;;;;;;;-1:-1:-1;15507:33:0;;;;;;;;22512:126;;;;;;;;;;-1:-1:-1;22512:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;22602:28:0;22578:4;22602:28;;;:19;:28;;;;;;;;;22512:126;16013:31;;;;;;;;;;;;;;;;19934:143;;;;;;;;;;-1:-1:-1;19934:143:0;;;;;:::i;:::-;;:::i;20791:311::-;;;;;;;;;;-1:-1:-1;20791:311:0;;;;;:::i;:::-;;:::i;15906:28::-;;;;;;;;;;;;;;;;15587:31;;;;;;;;;;-1:-1:-1;15587:31:0;;;;;;;;;;;3210:127;;;;;;;;;;-1:-1:-1;3210:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3311:18:0;3284:7;3311:18;;;;;;;;;;;;3210:127;895:103;;;;;;;;;;;;;:::i;15406:20::-;;;;;;;;;;;;;;;;18645:121;;;;;;;;;;;;;:::i;15836:30::-;;;;;;;;;;;;;;;;18525:112;;;;;;;;;;;;;:::i;672:87::-;;;;;;;;;;-1:-1:-1;745:6:0;;-1:-1:-1;;;;;745:6:0;672:87;;15941:31;;;;;;;;;;;;;;;;20085:100;;;;;;;;;;-1:-1:-1;20085:100:0;;;;;:::i;:::-;;:::i;2881:104::-;;;;;;;;;;;;;:::i;21626:304::-;;;;;;;;;;-1:-1:-1;21626:304:0;;;;;:::i;:::-;;:::i;15873:24::-;;;;;;;;;;;;;;;;16051:27;;;;;;;;;;;;;;;;15979:25;;;;;;;;;;;;;;;;4587:413;;;;;;;;;;-1:-1:-1;4587:413:0;;;;;:::i;:::-;;:::i;15336:29::-;;;;;;;;;;-1:-1:-1;15336:29:0;;;;-1:-1:-1;;;;;15336:29:0;;;3345:175;;;;;;;;;;-1:-1:-1;3345:175:0;;;;;:::i;:::-;;:::i;16255:57::-;;;;;;;;;;-1:-1:-1;16255:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22343:161;;;;;;;;;;-1:-1:-1;22343:161:0;;;;;:::i;:::-;;:::i;26639:222::-;;;;;;;;;;-1:-1:-1;26639:222:0;;;;;:::i;:::-;;:::i;15547:33::-;;;;;;;;;;-1:-1:-1;15547:33:0;;;;;;;;;;;21436:182;;;;;;;;;;-1:-1:-1;21436:182:0;;;;;:::i;:::-;;:::i;20193:590::-;;;;;;;;;;-1:-1:-1;20193:590:0;;;;;:::i;:::-;;:::i;15753:40::-;;;;;;;;;;-1:-1:-1;15753:40:0;;;;;;;;18909:497;;;;;;;;;;-1:-1:-1;18909:497:0;;;;;:::i;:::-;;:::i;15802:27::-;;;;;;;;;;;;;;;;3528:151;;;;;;;;;;-1:-1:-1;3528:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3644:18:0;;;3617:7;3644:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3528:151;15433:33;;;;;;;;;;;;;;;;16198:48;;;;;;;;;;-1:-1:-1;16198:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22134:201;;;;;;;;;;-1:-1:-1;22134:201:0;;;;;:::i;:::-;;:::i;1006:::-;;;;;;;;;;-1:-1:-1;1006:201:0;;;;;:::i;:::-;;:::i;21110:318::-;745:6;;-1:-1:-1;;;;;745:6:0;298:10;807:23;799:68;;;;-1:-1:-1;;;799:68:0;;;;;;;:::i;:::-;;;;;;;;;21229:16:::1;:32:::0;;;21272:10:::1;:20:::0;;;21319:29:::1;21285:7:::0;21248:13;21319:29:::1;:::i;:::-;21303:13;:45:::0;;;21384:2:::1;-1:-1:-1::0;21367:19:0::1;21359:61;;;;-1:-1:-1::0;;;21359:61:0::1;;;;;;;:::i;:::-;21110:318:::0;;:::o;2773:100::-;2827:13;2860:5;2853:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2773:100;:::o;3687:169::-;3770:4;3787:39;298:10;3810:7;3819:6;3787:8;:39::i;:::-;-1:-1:-1;3844:4:0;3687:169;;;;;:::o;18774:127::-;745:6;;18826:4;;-1:-1:-1;;;;;745:6:0;298:10;807:23;799:68;;;;-1:-1:-1;;;799:68:0;;;;;;;:::i;:::-;-1:-1:-1;18843:20:0::1;:28:::0;;-1:-1:-1;;18843:28:0::1;::::0;;;18774:127;:::o;19414:245::-;745:6;;-1:-1:-1;;;;;745:6:0;298:10;807:23;799:68;;;;-1:-1:-1;;;799:68:0;;;;;;;:::i;:::-;19551:4:::1;19543;19522:13;3182:12:::0;;;3094:108;19522:13:::1;:17;::::0;19538:1:::1;19522:17;:::i;:::-;19521:26;;;;:::i;:::-;19520:35;;;;:::i;:::-;19510:6;:45;;19488:127;;;::::0;-1:-1:-1;;;19488:127:0;;6916:2:1;19488:127:0::1;::::0;::::1;6898:21:1::0;;;6935:18;;;6928:30;6994:34;6974:18;;;6967:62;7046:18;;19488:127:0::1;6714:356:1::0;19488:127:0::1;19634:17;:6:::0;19644::::1;19634:17;:::i;:::-;19626:5;:25:::0;-1:-1:-1;19414:245:0:o;19667:259::-;745:6;;-1:-1:-1;;;;;745:6:0;298:10;807:23;799:68;;;;-1:-1:-1;;;799:68:0;;;;;;;:::i;:::-;19808:4:::1;19800;19779:13;3182:12:::0;;;3094:108;19779:13:::1;:17;::::0;19795:1:::1;19779:17;:::i;:::-;19778:26;;;;:::i;:::-;19777:35;;;;:::i;:::-;19767:6;:45;;19745:132;;;::::0;-1:-1:-1;;;19745:132:0;;7277:2:1;19745:132:0::1;::::0;::::1;7259:21:1::0;7316:2;7296:18;;;7289:30;7355:34;7335:18;;;7328:62;-1:-1:-1;;;7406:18:1;;;7399:35;7451:19;;19745:132:0::1;7075:401:1::0;19745:132:0::1;19901:17;:6:::0;19911::::1;19901:17;:::i;:::-;19888:10;:30:::0;-1:-1:-1;19667:259:0:o;3864:492::-;4004:4;4021:36;4031:6;4039:9;4050:6;4021:9;:36::i;:::-;-1:-1:-1;;;;;4097:19:0;;4070:24;4097:19;;;:11;:19;;;;;;;;298:10;4097:33;;;;;;;;4149:26;;;;4141:79;;;;-1:-1:-1;;;4141:79:0;;7683:2:1;4141:79:0;;;7665:21:1;7722:2;7702:18;;;7695:30;7761:34;7741:18;;;7734:62;-1:-1:-1;;;7812:18:1;;;7805:38;7860:19;;4141:79:0;7481:404:1;4141:79:0;4256:57;4265:6;298:10;4306:6;4287:16;:25;4256:8;:57::i;:::-;-1:-1:-1;4344:4:0;;3864:492;-1:-1:-1;;;;3864:492:0:o;4364:215::-;298:10;4452:4;4501:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4501:34:0;;;;;;;;;;4452:4;;4469:80;;4492:7;;4501:47;;4538:10;;4501:47;:::i;:::-;4469:8;:80::i;19934:143::-;745:6;;-1:-1:-1;;;;;745:6:0;298:10;807:23;799:68;;;;-1:-1:-1;;;799:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20038:24:0;;;::::1;;::::0;;;:16:::1;:24;::::0;;;;:31;;-1:-1:-1;;20038:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19934:143::o;20791:311::-;745:6;;-1:-1:-1;;;;;745:6:0;298:10;807:23;799:68;;;;-1:-1:-1;;;799:68:0;;;;;;;:::i;:::-;20909:15:::1;:31:::0;;;20951:9:::1;:19:::0;;;20996:27:::1;20963:7:::0;20927:13;20996:27:::1;:::i;:::-;20981:12;:42:::0;;;21058:2:::1;-1:-1:-1::0;21042:18:0::1;21034:60;;;;-1:-1:-1::0;;;21034:60:0::1;;;;;;;:::i;895:103::-:0;745:6;;-1:-1:-1;;;;;745:6:0;298:10;807:23;799:68;;;;-1:-1:-1;;;799:68:0;;;;;;;:::i;:::-;960:30:::1;987:1;960:18;:30::i;:::-;895:103::o:0;18645:121::-;745:6;;18697:4;;-1:-1:-1;;;;;745:6:0;298:10;807:23;799:68;;;;-1:-1:-1;;;799:68:0;;;;;;;:::i;:::-;-1:-1:-1;18714:14:0::1;:22:::0;;-1:-1:-1;;18714:22:0::1;::::0;;;18645:121;:::o;18525:112::-;745:6;;-1:-1:-1;;;;;745:6:0;298:10;807:23;799:68;;;;-1:-1:-1;;;799:68:0;;;;;;;:::i;:::-;18580:13:::1;:20:::0;;-1:-1:-1;;18611:18:0;;;;;18525:112::o;20085:100::-;745:6;;-1:-1:-1;;;;;745:6:0;298:10;807:23;799:68;;;;-1:-1:-1;;;799:68:0;;;;;;;:::i;:::-;20156:11:::1;:21:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;20156:21:0;;::::1;::::0;;;::::1;::::0;;20085:100::o;2881:104::-;2937:13;2970:7;2963:14;;;;;:::i;21626:304::-;745:6;;-1:-1:-1;;;;;745:6:0;298:10;807:23;799:68;;;;-1:-1:-1;;;799:68:0;;;;;;;:::i;:::-;21770:13:::1;::::0;-1:-1:-1;;;;;21770:13:0;;::::1;21762:21:::0;;::::1;::::0;21740:128:::1;;;::::0;-1:-1:-1;;;21740:128:0;;8092:2:1;21740:128:0::1;::::0;::::1;8074:21:1::0;8131:2;8111:18;;;8104:30;8170:34;8150:18;;;8143:62;8241:27;8221:18;;;8214:55;8286:19;;21740:128:0::1;7890:421:1::0;21740:128:0::1;21881:41;21910:4;21916:5;21881:28;:41::i;4587:413::-:0;298:10;4680:4;4724:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4724:34:0;;;;;;;;;;4777:35;;;;4769:85;;;;-1:-1:-1;;;4769:85:0;;8518:2:1;4769:85:0;;;8500:21:1;8557:2;8537:18;;;8530:30;8596:34;8576:18;;;8569:62;-1:-1:-1;;;8647:18:1;;;8640:35;8692:19;;4769:85:0;8316:401:1;4769:85:0;4890:67;298:10;4913:7;4941:15;4922:16;:34;4890:8;:67::i;:::-;-1:-1:-1;4988:4:0;;4587:413;-1:-1:-1;;;4587:413:0:o;3345:175::-;3431:4;3448:42;298:10;3472:9;3483:6;3448:9;:42::i;22343:161::-;745:6;;-1:-1:-1;;;;;745:6:0;298:10;807:23;799:68;;;;-1:-1:-1;;;799:68:0;;;;;;;:::i;:::-;22452:10:::1;::::0;22423:40:::1;::::0;-1:-1:-1;;;;;22452:10:0;;::::1;::::0;22423:40;::::1;::::0;::::1;::::0;22452:10:::1;::::0;22423:40:::1;22474:10;:22:::0;;-1:-1:-1;;;;;;22474:22:0::1;-1:-1:-1::0;;;;;22474:22:0;;;::::1;::::0;;;::::1;::::0;;22343:161::o;26639:222::-;26719:14;;-1:-1:-1;;;;;26719:14:0;298:10;-1:-1:-1;;;;;26703:30:0;;26695:39;;;;;;26781:4;3284:7;3311:18;;;;;;;;;;;26753:6;:34;;:48;;;;;26800:1;26791:6;:10;26753:48;26745:73;;;;-1:-1:-1;;;26745:73:0;;8924:2:1;26745:73:0;;;8906:21:1;8963:2;8943:18;;;8936:30;-1:-1:-1;;;8982:18:1;;;8975:42;9034:18;;26745:73:0;8722:336:1;26745:73:0;26829:24;26846:6;26829:16;:24::i;:::-;26639:222;:::o;21436:182::-;745:6;;-1:-1:-1;;;;;745:6:0;298:10;807:23;799:68;;;;-1:-1:-1;;;799:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21521:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;21521:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;21576:34;;1436:41:1;;;21576:34:0::1;::::0;1409:18:1;21576:34:0::1;;;;;;;21436:182:::0;;:::o;20193:590::-;745:6;;-1:-1:-1;;;;;745:6:0;298:10;807:23;799:68;;;;-1:-1:-1;;;799:68:0;;;;;;;:::i;:::-;20374:15:::1;:34:::0;;;20419:9:::1;:22:::0;;;20467:27:::1;20431:10:::0;20392:16;20467:27:::1;:::i;:::-;20452:12;:42:::0;20505:16:::1;:36:::0;;;20552:10:::1;:24:::0;;;20603:29:::1;20565:11:::0;20524:17;20603:29:::1;:::i;:::-;20587:13;:45:::0;20651:12:::1;::::0;20667:2:::1;-1:-1:-1::0;20651:18:0::1;20643:60;;;;-1:-1:-1::0;;;20643:60:0::1;;;;;;;:::i;:::-;20739:2;20722:13;;:19;;20714:61;;;;-1:-1:-1::0;;;20714:61:0::1;;;;;;;:::i;:::-;20193:590:::0;;;;:::o;18909:497::-;745:6;;19017:4;;-1:-1:-1;;;;;745:6:0;298:10;807:23;799:68;;;;-1:-1:-1;;;799:68:0;;;;;;;:::i;:::-;19096:6:::1;19075:13;3182:12:::0;;;3094:108;19075:13:::1;:17;::::0;19091:1:::1;19075:17;:::i;:::-;19074:28;;;;:::i;:::-;19061:9;:41;;19039:144;;;::::0;-1:-1:-1;;;19039:144:0;;9265:2:1;19039:144:0::1;::::0;::::1;9247:21:1::0;9304:2;9284:18;;;9277:30;9343:34;9323:18;;;9316:62;-1:-1:-1;;;9394:18:1;;;9387:51;9455:19;;19039:144:0::1;9063:417:1::0;19039:144:0::1;19251:4;19230:13;3182:12:::0;;;3094:108;19230:13:::1;:17;::::0;19246:1:::1;19230:17;:::i;:::-;19229:26;;;;:::i;:::-;19216:9;:39;;19194:141;;;::::0;-1:-1:-1;;;19194:141:0;;9687:2:1;19194:141:0::1;::::0;::::1;9669:21:1::0;9726:2;9706:18;;;9699:30;9765:34;9745:18;;;9738:62;-1:-1:-1;;;9816:18:1;;;9809:50;9876:19;;19194:141:0::1;9485:416:1::0;19194:141:0::1;-1:-1:-1::0;19346:18:0::1;:30:::0;;;19394:4:::1;878:1;18909:497:::0;;;:::o;22134:201::-;745:6;;-1:-1:-1;;;;;745:6:0;298:10;807:23;799:68;;;;-1:-1:-1;;;799:68:0;;;;;;;:::i;:::-;22267:14:::1;::::0;22226:56:::1;::::0;-1:-1:-1;;;;;22267:14:0;;::::1;::::0;22226:56;::::1;::::0;::::1;::::0;22267:14:::1;::::0;22226:56:::1;22293:14;:34:::0;;-1:-1:-1;;;;;;22293:34:0::1;-1:-1:-1::0;;;;;22293:34:0;;;::::1;::::0;;;::::1;::::0;;22134:201::o;1006:::-;745:6;;-1:-1:-1;;;;;745:6:0;298:10;807:23;799:68;;;;-1:-1:-1;;;799:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1095:22:0;::::1;1087:73;;;::::0;-1:-1:-1;;;1087:73:0;;10108:2:1;1087:73:0::1;::::0;::::1;10090:21:1::0;10147:2;10127:18;;;10120:30;10186:34;10166:18;;;10159:62;-1:-1:-1;;;10237:18:1;;;10230:36;10283:19;;1087:73:0::1;9906:402:1::0;1087:73:0::1;1171:28;1190:8;1171:18;:28::i;6755:380::-:0;-1:-1:-1;;;;;6891:19:0;;6883:68;;;;-1:-1:-1;;;6883:68:0;;10515:2:1;6883:68:0;;;10497:21:1;10554:2;10534:18;;;10527:30;10593:34;10573:18;;;10566:62;-1:-1:-1;;;10644:18:1;;;10637:34;10688:19;;6883:68:0;10313:400:1;6883:68:0;-1:-1:-1;;;;;6970:21:0;;6962:68;;;;-1:-1:-1;;;6962:68:0;;10920:2:1;6962:68:0;;;10902:21:1;10959:2;10939:18;;;10932:30;10998:34;10978:18;;;10971:62;-1:-1:-1;;;11049:18:1;;;11042:32;11091:19;;6962:68:0;10718:398:1;6962:68:0;-1:-1:-1;;;;;7043:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7095:32;;1869:25:1;;;7095:32:0;;1842:18:1;7095:32:0;;;;;;;6755:380;;;:::o;22696:3820::-;-1:-1:-1;;;;;22828:18:0;;22820:68;;;;-1:-1:-1;;;22820:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22907:16:0;;22899:64;;;;-1:-1:-1;;;22899:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22983:18:0;;;;;;:12;:18;;;;;;;;22982:19;22974:49;;;;-1:-1:-1;;;22974:49:0;;12133:2:1;22974:49:0;;;12115:21:1;12172:2;12152:18;;;12145:30;-1:-1:-1;;;12191:18:1;;;12184:47;12248:18;;22974:49:0;11931:341:1;22974:49:0;-1:-1:-1;;;;;23043:16:0;;;;;;:12;:16;;;;;;;;23042:17;23034:45;;;;-1:-1:-1;;;23034:45:0;;12479:2:1;23034:45:0;;;12461:21:1;12518:2;12498:18;;;12491:30;-1:-1:-1;;;12537:18:1;;;12530:45;12592:18;;23034:45:0;12277:339:1;23034:45:0;23096:6;23106:1;23096:11;23092:93;;23124:28;23140:4;23146:2;23150:1;23124:15;:28::i;:::-;22696:3820;;;:::o;23092:93::-;23201:14;;;;23197:1666;;;745:6;;-1:-1:-1;;;;;23236:15:0;;;745:6;;23236:15;;;;:49;;-1:-1:-1;745:6:0;;-1:-1:-1;;;;;23272:13:0;;;745:6;;23272:13;;23236:49;:86;;;;-1:-1:-1;;;;;;23306:16:0;;;;23236:86;:128;;;;-1:-1:-1;;;;;;23343:21:0;;23357:6;23343:21;;23236:128;:158;;;;-1:-1:-1;23386:8:0;;-1:-1:-1;;;23386:8:0;;;;23385:9;23236:158;23232:1620;;;23420:13;;;;;;;23415:150;;-1:-1:-1;;;;;23466:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;23495:23:0;;;;;;:19;:23;;;;;;;;23466:52;23458:87;;;;-1:-1:-1;;;23458:87:0;;12823:2:1;23458:87:0;;;12805:21:1;12862:2;12842:18;;;12835:30;-1:-1:-1;;;12881:18:1;;;12874:52;12943:18;;23458:87:0;12621:346:1;23458:87:0;23721:20;;;;23717:425;;;745:6;;-1:-1:-1;;;;;23770:13:0;;;745:6;;23770:13;;;;:47;;;23801:15;-1:-1:-1;;;;;23787:30:0;:2;-1:-1:-1;;;;;23787:30:0;;;23770:47;:79;;;;-1:-1:-1;23835:13:0;;-1:-1:-1;;;;;23821:28:0;;;23835:13;;23821:28;;23770:79;23766:357;;;23915:9;23886:39;;;;:28;:39;;;;;;23928:12;-1:-1:-1;23878:140:0;;;;-1:-1:-1;;;23878:140:0;;13174:2:1;23878:140:0;;;13156:21:1;13213:2;13193:18;;;13186:30;13252:34;13232:18;;;13225:62;13323:34;13303:18;;;13296:62;-1:-1:-1;;;13374:19:1;;;13367:40;13424:19;;23878:140:0;12972:477:1;23878:140:0;24074:9;24045:39;;;;:28;:39;;;;;24087:12;24045:54;;23766:357;-1:-1:-1;;;;;24194:31:0;;;;;;:25;:31;;;;;;;;:56;;;;-1:-1:-1;;;;;;24230:20:0;;;;;;:16;:20;;;;;;;;24229:21;24194:56;24190:647;;;24293:5;;24283:6;:15;;24275:66;;;;-1:-1:-1;;;24275:66:0;;13656:2:1;24275:66:0;;;13638:21:1;13695:2;13675:18;;;13668:30;13734:34;13714:18;;;13707:62;-1:-1:-1;;;13785:18:1;;;13778:36;13831:19;;24275:66:0;13454:402:1;24275:66:0;24398:10;;-1:-1:-1;;;;;3311:18:0;;3284:7;3311:18;;;;;;;;;;;24372:22;;:6;:22;:::i;:::-;:36;;24364:68;;;;-1:-1:-1;;;24364:68:0;;14063:2:1;24364:68:0;;;14045:21:1;14102:2;14082:18;;;14075:30;-1:-1:-1;;;14121:18:1;;;14114:49;14180:18;;24364:68:0;13861:343:1;24364:68:0;24190:647;;;-1:-1:-1;;;;;24508:29:0;;;;;;:25;:29;;;;;;;;:56;;;;-1:-1:-1;;;;;;24542:22:0;;;;;;:16;:22;;;;;;;;24541:23;24508:56;24504:333;;;24607:5;;24597:6;:15;;24589:67;;;;-1:-1:-1;;;24589:67:0;;14411:2:1;24589:67:0;;;14393:21:1;14450:2;14430:18;;;14423:30;14489:34;14469:18;;;14462:62;-1:-1:-1;;;14540:18:1;;;14533:37;14587:19;;24589:67:0;14209:403:1;24504:333:0;-1:-1:-1;;;;;24704:20:0;;;;;;:16;:20;;;;;;;;24699:138;;24783:10;;-1:-1:-1;;;;;3311:18:0;;3284:7;3311:18;;;;;;;;;;;24757:22;;:6;:22;:::i;:::-;:36;;24749:68;;;;-1:-1:-1;;;24749:68:0;;14063:2:1;24749:68:0;;;14045:21:1;14102:2;14082:18;;;14075:30;-1:-1:-1;;;14121:18:1;;;14114:49;14180:18;;24749:68:0;13861:343:1;24749:68:0;24924:4;24875:28;3311:18;;;;;;;;;;;24980;;24956:42;;;;;;;25015:35;;-1:-1:-1;25039:11:0;;;;;;;25015:35;:61;;;;-1:-1:-1;25068:8:0;;-1:-1:-1;;;25068:8:0;;;;25067:9;25015:61;:110;;;;-1:-1:-1;;;;;;25094:31:0;;;;;;:25;:31;;;;;;;;25093:32;25015:110;:153;;;;-1:-1:-1;;;;;;25143:25:0;;;;;;:19;:25;;;;;;;;25142:26;25015:153;:194;;;;-1:-1:-1;;;;;;25186:23:0;;;;;;:19;:23;;;;;;;;25185:24;25015:194;25011:302;;;25226:8;:15;;-1:-1:-1;;;;25226:15:0;-1:-1:-1;;;25226:15:0;;;25258:10;:8;:10::i;:::-;25285:8;:16;;-1:-1:-1;;;;25285:16:0;;;25011:302;25341:8;;-1:-1:-1;;;;;25451:25:0;;25325:12;25451:25;;;:19;:25;;;;;;25341:8;-1:-1:-1;;;25341:8:0;;;;;25340:9;;25451:25;;:52;;-1:-1:-1;;;;;;25480:23:0;;;;;;:19;:23;;;;;;;;25451:52;25447:100;;;-1:-1:-1;25530:5:0;25447:100;25559:12;25660:803;;;;-1:-1:-1;;;;;25716:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;25765:1;25749:13;;:17;25716:50;25712:602;;;25794:34;25824:3;25794:25;25805:13;;25794:6;:10;;:25;;;;:::i;:::-;:29;;:34::i;:::-;25787:41;;25885:13;;25871:10;;25864:4;:17;;;;:::i;:::-;25863:35;;;;:::i;:::-;25847:12;;:51;;;;;;;:::i;:::-;;;;-1:-1:-1;;25965:13:0;;25945:16;;25938:23;;:4;:23;:::i;:::-;25937:41;;;;:::i;:::-;25917:16;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;25712:602:0;;-1:-1:-1;25712:602:0;;-1:-1:-1;;;;;26040:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;26090:1;26075:12;;:16;26040:51;26036:278;;;26119:33;26148:3;26119:24;26130:12;;26119:6;:10;;:24;;;;:::i;:33::-;26112:40;;26208:12;;26195:9;;26188:4;:16;;;;:::i;:::-;26187:33;;;;:::i;:::-;26171:12;;:49;;;;;;;:::i;:::-;;;;-1:-1:-1;;26286:12:0;;26267:15;;26260:22;;:4;:22;:::i;:::-;26259:39;;;;:::i;:::-;26239:16;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;26036:278:0;26334:8;;26330:91;;26363:42;26379:4;26393;26400;26363:15;:42::i;:::-;26437:14;26447:4;26437:14;;:::i;:::-;;;25660:803;26475:33;26491:4;26497:2;26501:6;26475:15;:33::i;:::-;22809:3707;;;;22696:3820;;;:::o;1215:191::-;1308:6;;;-1:-1:-1;;;;;1325:17:0;;;-1:-1:-1;;;;;;1325:17:0;;;;;;;1358:40;;1308:6;;;1325:17;1308:6;;1358:40;;1289:16;;1358:40;1278:128;1215:191;:::o;21938:188::-;-1:-1:-1;;;;;22021:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;22021:39:0;;;;;;;;;;22078:40;;22021:39;;:31;22078:40;;;21938:188;;:::o;26870:529::-;26960:16;;;26974:1;26960:16;;;;;;;;26936:21;;26960:16;;;;;;;;;;-1:-1:-1;26960:16:0;26936:40;;27005:4;26987;26992:1;26987:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;26987:23:0;;;-1:-1:-1;;;;;26987:23:0;;;;;27031:15;-1:-1:-1;;;;;27031:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27021:4;27026:1;27021:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;27021:32:0;;;-1:-1:-1;;;;;27021:32:0;;;;;27066:62;27083:4;27098:15;27116:11;27066:8;:62::i;:::-;27167:224;;-1:-1:-1;;;27167:224:0;;-1:-1:-1;;;;;27167:15:0;:66;;;;:224;;27248:11;;27274:1;;27318:4;;27345;;27365:15;;27167:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26925:474;26870:529;:::o;5008:733::-;-1:-1:-1;;;;;5148:20:0;;5140:70;;;;-1:-1:-1;;;5140:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5229:23:0;;5221:71;;;;-1:-1:-1;;;5221:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5389:17:0;;5365:21;5389:17;;;;;;;;;;;5425:23;;;;5417:74;;;;-1:-1:-1;;;5417:74:0;;16436:2:1;5417:74:0;;;16418:21:1;16475:2;16455:18;;;16448:30;16514:34;16494:18;;;16487:62;-1:-1:-1;;;16565:18:1;;;16558:36;16611:19;;5417:74:0;16234:402:1;5417:74:0;-1:-1:-1;;;;;5527:17:0;;;:9;:17;;;;;;;;;;;5547:22;;;5527:42;;5591:20;;;;;;;;:30;;5563:6;;5527:9;5591:30;;5563:6;;5591:30;:::i;:::-;;;;;;;;5656:9;-1:-1:-1;;;;;5639:35:0;5648:6;-1:-1:-1;;;;;5639:35:0;;5667:6;5639:35;;;;1869:25:1;;1857:2;1842:18;;1723:177;5639:35:0;;;;;;;;5687:46;22696:3820;27407:876;27490:4;27446:23;3311:18;;;;;;;;;;;27446:50;;27507:25;27554:12;;27535:16;;:31;;;;:::i;:::-;27507:59;;27577:12;27606:15;27625:1;27606:20;27602:59;;27643:7;;;27407:876::o;27602:59::-;27695:18;;:23;;27716:2;27695:23;:::i;:::-;27677:15;:41;27673:115;;;27753:18;;:23;;27774:2;27753:23;:::i;:::-;27735:41;;27673:115;27828:21;27860:33;27877:15;27860:16;:33::i;:::-;27906:18;27927:44;:21;27953:17;27927:25;:44::i;:::-;27906:65;;27982:17;28002:51;28035:17;28002:28;28017:12;;28002:10;:14;;:28;;;;:::i;:51::-;28085:1;28066:16;:20;;;28097:12;:16;;;28148:10;;28140:46;;27982:71;;-1:-1:-1;;;;;;28148:10:0;;27982:71;;28140:46;28085:1;28140:46;27982:71;28148:10;28140:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;28219:14:0;;28211:64;;28126:60;;-1:-1:-1;;;;;;28219:14:0;;28248:21;;28211:64;;;;28248:21;28219:14;28211:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;27407:876:0:o;8761:98::-;8819:7;8846:5;8850:1;8846;:5;:::i;:::-;8839:12;8761:98;-1:-1:-1;;;8761:98:0:o;8867:::-;8925:7;8952:5;8956:1;8952;:5;:::i;8655:98::-;8713:7;8740:5;8744:1;8740;:5;:::i;14:346:1:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;204:23:1;;;324:2;309:18;;;296:32;;-1:-1:-1;14:346:1:o;365:418::-;514:2;503:9;496:21;477:4;546:6;540:13;589:6;584:2;573:9;569:18;562:34;648:6;643:2;635:6;631:15;626:2;615:9;611:18;605:50;704:1;699:2;690:6;679:9;675:22;671:31;664:42;774:2;767;763:7;758:2;750:6;746:15;742:29;731:9;727:45;723:54;715:62;;;365:418;;;;:::o;788:131::-;-1:-1:-1;;;;;863:31:1;;853:42;;843:70;;909:1;906;899:12;924:367;992:6;1000;1053:2;1041:9;1032:7;1028:23;1024:32;1021:52;;;1069:1;1066;1059:12;1021:52;1108:9;1095:23;1127:31;1152:5;1127:31;:::i;:::-;1177:5;1255:2;1240:18;;;;1227:32;;-1:-1:-1;;;924:367:1:o;1905:226::-;1964:6;2017:2;2005:9;1996:7;1992:23;1988:32;1985:52;;;2033:1;2030;2023:12;1985:52;-1:-1:-1;2078:23:1;;1905:226;-1:-1:-1;1905:226:1:o;2136:508::-;2213:6;2221;2229;2282:2;2270:9;2261:7;2257:23;2253:32;2250:52;;;2298:1;2295;2288:12;2250:52;2337:9;2324:23;2356:31;2381:5;2356:31;:::i;:::-;2406:5;-1:-1:-1;2463:2:1;2448:18;;2435:32;2476:33;2435:32;2476:33;:::i;:::-;2136:508;;2528:7;;-1:-1:-1;;;2608:2:1;2593:18;;;;2580:32;;2136:508::o;3046:247::-;3105:6;3158:2;3146:9;3137:7;3133:23;3129:32;3126:52;;;3174:1;3171;3164:12;3126:52;3213:9;3200:23;3232:31;3257:5;3232:31;:::i;3298:160::-;3363:20;;3419:13;;3412:21;3402:32;;3392:60;;3448:1;3445;3438:12;3463:315;3528:6;3536;3589:2;3577:9;3568:7;3564:23;3560:32;3557:52;;;3605:1;3602;3595:12;3557:52;3644:9;3631:23;3663:31;3688:5;3663:31;:::i;:::-;3713:5;-1:-1:-1;3737:35:1;3768:2;3753:18;;3737:35;:::i;:::-;3727:45;;3463:315;;;;;:::o;3783:180::-;3839:6;3892:2;3880:9;3871:7;3867:23;3863:32;3860:52;;;3908:1;3905;3898:12;3860:52;3931:26;3947:9;3931:26;:::i;3968:587::-;4054:6;4062;4070;4078;4131:3;4119:9;4110:7;4106:23;4102:33;4099:53;;;4148:1;4145;4138:12;4099:53;-1:-1:-1;;4193:23:1;;;4313:2;4298:18;;4285:32;;-1:-1:-1;4416:2:1;4401:18;;4388:32;;4519:2;4504:18;4491:32;;-1:-1:-1;3968:587:1;-1:-1:-1;3968:587:1:o;4560:388::-;4628:6;4636;4689:2;4677:9;4668:7;4664:23;4660:32;4657:52;;;4705:1;4702;4695:12;4657:52;4744:9;4731:23;4763:31;4788:5;4763:31;:::i;:::-;4813:5;-1:-1:-1;4870:2:1;4855:18;;4842:32;4883:33;4842:32;4883:33;:::i;:::-;4935:7;4925:17;;;4560:388;;;;;:::o;4953:356::-;5155:2;5137:21;;;5174:18;;;5167:30;5233:34;5228:2;5213:18;;5206:62;5300:2;5285:18;;4953:356::o;5314:127::-;5375:10;5370:3;5366:20;5363:1;5356:31;5406:4;5403:1;5396:15;5430:4;5427:1;5420:15;5446:125;5511:9;;;5532:10;;;5529:36;;;5545:18;;:::i;5576:353::-;5778:2;5760:21;;;5817:2;5797:18;;;5790:30;5856:31;5851:2;5836:18;;5829:59;5920:2;5905:18;;5576:353::o;5934:380::-;6013:1;6009:12;;;;6056;;;6077:61;;6131:4;6123:6;6119:17;6109:27;;6077:61;6184:2;6176:6;6173:14;6153:18;6150:38;6147:161;;6230:10;6225:3;6221:20;6218:1;6211:31;6265:4;6262:1;6255:15;6293:4;6290:1;6283:15;6147:161;;5934:380;;;:::o;6319:168::-;6392:9;;;6423;;6440:15;;;6434:22;;6420:37;6410:71;;6461:18;;:::i;6492:217::-;6532:1;6558;6548:132;;6602:10;6597:3;6593:20;6590:1;6583:31;6637:4;6634:1;6627:15;6665:4;6662:1;6655:15;6548:132;-1:-1:-1;6694:9:1;;6492:217::o;11121:401::-;11323:2;11305:21;;;11362:2;11342:18;;;11335:30;11401:34;11396:2;11381:18;;11374:62;-1:-1:-1;;;11467:2:1;11452:18;;11445:35;11512:3;11497:19;;11121:401::o;11527:399::-;11729:2;11711:21;;;11768:2;11748:18;;;11741:30;11807:34;11802:2;11787:18;;11780:62;-1:-1:-1;;;11873:2:1;11858:18;;11851:33;11916:3;11901:19;;11527:399::o;14617:128::-;14684:9;;;14705:11;;;14702:37;;;14719:18;;:::i;14882:127::-;14943:10;14938:3;14934:20;14931:1;14924:31;14974:4;14971:1;14964:15;14998:4;14995:1;14988:15;15014:251;15084:6;15137:2;15125:9;15116:7;15112:23;15108:32;15105:52;;;15153:1;15150;15143:12;15105:52;15185:9;15179:16;15204:31;15229:5;15204:31;:::i;15270:959::-;15532:4;15580:3;15569:9;15565:19;15611:6;15600:9;15593:25;15654:6;15649:2;15638:9;15634:18;15627:34;15697:3;15692:2;15681:9;15677:18;15670:31;15721:6;15756;15750:13;15787:6;15779;15772:22;15825:3;15814:9;15810:19;15803:26;;15864:2;15856:6;15852:15;15838:29;;15885:1;15895:195;15909:6;15906:1;15903:13;15895:195;;;15974:13;;-1:-1:-1;;;;;15970:39:1;15958:52;;16039:2;16065:15;;;;16030:12;;;;16006:1;15924:9;15895:195;;;-1:-1:-1;;;;;;;16146:32:1;;;;16141:2;16126:18;;16119:60;-1:-1:-1;;16210:3:1;16195:19;16188:35;16107:3;15270:959;-1:-1:-1;;;15270:959:1:o
Swarm Source
ipfs://e48d44e7a2b00cdeb9c0c18326aa37c016f7dab2b79d19a63ba64631d405ae00
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.