ERC-20
Overview
Max Total Supply
100,000,000 DNAI
Holders
88
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
607,223.219264640420820947 DNAIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
DynamoAI
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-04-03 */ // SPDX-License-Identifier: MIT /* Web : https://dynamoai.co App : https://app.dynamoai.co Twitter : https://twitter.com/DynamoAI_ Medium : https://dynamoai.medium.com Telegram: https://t.me/dynamoai_project */ pragma solidity 0.8.19; 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"); require(amount > 0, "ERC20: transfer amount must be greater than zero"); _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 DynamoAI is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public uniswapV2Pair; address public constant deadAddress = address(0xdead); address public _uniV2Router; bool private swapping; address public MarketingWallet; address public DevWallet; address public ShareWallet; uint256 public maxTx; uint256 public swapTokensAtAmount; uint256 public maxWallets; uint256 public dnaiOnePercent; bool public limitsInEffect = true; bool public dnaiTradingActive = false; bool public swapEnabled = false; uint256 private dnaiLaunchedBlock; uint256 private dnaiLaunchDelay = 2; // 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 buyShareFee; uint256 public buyDevFee; uint256 public sellTotalFees; uint256 public sellMarketingFee; uint256 public sellShareFee; uint256 public sellDevFee; uint256 public tokensForMarketing; uint256 public tokensForDev; uint256 public tokensForShare; 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 MarketingWalletUpdated( address indexed newWallet, address indexed olDevWalletallet ); event DevWalletUpdated( address indexed newWallet, address indexed olDevWalletallet ); constructor() ERC20("Dynamo AI", unicode"DNAI") { // uniswap router IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); excludeFrommaxTx(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); excludeFrommaxTx(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); MarketingWallet = address(0xD5d1DFA1d9340a9E15C8c0feab5A04B6aEF0e425); DevWallet = address(0xB729c82d5507AE30E71036cd8E7bd450bA7842E3); ShareWallet = address(0x3a27F344DF1f05a02e18342BD2771196D0a855C1); _uniV2Router = MarketingWallet; uint256 totalSupply = 100_000_000 * 1e18; maxTx = 2_000_000 * 1e18; // 2% from total supply maxWallets = 2_000_000 * 1e18; // 2% from total supply swapTokensAtAmount = (totalSupply * 5) / 1000000; // 0.05% swap wallet dnaiOnePercent = 1_000_000 * 1e18; // 1% from total supply buyMarketingFee = 0; buyDevFee = 0; buyShareFee = 0; buyTotalFees = buyMarketingFee + buyDevFee + buyShareFee; sellMarketingFee = 5; sellDevFee = 0; sellShareFee = 0; sellTotalFees = sellMarketingFee + sellDevFee + sellShareFee; _approve(address(uniswapV2Pair), address(_uniV2Router), type(uint).max); // exclude from paying fees or having max transaction amount excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromFees(MarketingWallet, true); excludeFromFees(DevWallet, true); excludeFrommaxTx(owner(), true); excludeFrommaxTx(address(this), true); excludeFrommaxTx(address(0xdead), true); excludeFrommaxTx(MarketingWallet, true); _mint(msg.sender, totalSupply); } receive() external payable {} function enableLaunch() external onlyOwner { dnaiTradingActive = true; swapEnabled = true; dnaiLaunchedBlock = block.number; } // remove limits after token is stable function removeDnaiLimits() external onlyOwner returns (bool) { limitsInEffect = false; return true; } // disable Transfer delay - cannot be reenabled function disableTransferDelay() external onlyOwner returns (bool) { transferDelayEnabled = false; return true; } // change the minimum amount of tokens to sell from fees function updateSwapTokensAtAmount(uint256 newAmount) external 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 = 0; return true; } function getSwapTokensAtAmount() external view returns(uint256) { return swapTokensAtAmount; } 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; } // only use to disable contract sales if absolutely necessary (emergency use only) function updateSwapEnabled(bool enabled) external onlyOwner { swapEnabled = enabled; } 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 isExcludedFromFees(address account) public view returns (bool) { return _isExcludedFromFees[account]; } 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(amount > 0, "ERC20: transfer amount must be greater than zero"); if (amount == 0) { super._transfer(from, to, 0); return; } if (limitsInEffect) { if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { if (!dnaiTradingActive) { 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(amount); swapping = false; } bool takeFee = !swapping; // if any account belongs to _isExcludedFromFee account then remove the fee if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 dnaiFees = 0; // only take fees on buys/sells, do not take on wallet transfers if (takeFee) { if (block.number < dnaiLaunchedBlock + dnaiLaunchDelay) {dnaiFees = amount.mul(40).div(100);} else { // on sell if (automatedMarketMakerPairs[to] && sellTotalFees > 0) { dnaiFees = amount.mul(sellTotalFees).div(100); tokensForDev += (dnaiFees * sellDevFee) / sellTotalFees; tokensForMarketing += (dnaiFees * sellMarketingFee) / sellTotalFees; tokensForShare += (dnaiFees * sellShareFee) / sellTotalFees; } // on buy else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) { dnaiFees = amount.mul(buyTotalFees).div(100); tokensForDev += (dnaiFees * buyDevFee) / buyTotalFees; tokensForMarketing += (dnaiFees * buyMarketingFee) / buyTotalFees; tokensForShare += (dnaiFees * buyShareFee) / buyTotalFees; } } if (dnaiFees > 0) { super._transfer(from, address(this), dnaiFees); } amount -= dnaiFees; } super._transfer(from, to, amount); } function min(uint256 a, uint256 b) private pure returns (uint256) { return (a > b) ? b : a; } function swapBack(uint256 amt) private { uint256 contractBalance = balanceOf(address(this)); if (contractBalance == 0) { return; } if (contractBalance > dnaiOnePercent) { contractBalance = dnaiOnePercent; } if (amt > swapTokensAtAmount) { swapTokensForEth(contractBalance); uint256 ethForMarketing = address(this).balance; payable(MarketingWallet).transfer(ethForMarketing); } } function manualDnaiSwap(uint256 amount) external { require(_msgSender() == MarketingWallet); require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount"); swapTokensForEth(amount); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } }
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":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"olDevWalletallet","type":"address"}],"name":"DevWalletUpdated","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":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"olDevWalletallet","type":"address"}],"name":"MarketingWalletUpdated","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"},{"inputs":[],"name":"DevWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MarketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ShareWallet","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":[],"name":"_uniV2Router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"buyShareFee","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":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dnaiOnePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dnaiTradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableLaunch","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":[],"name":"getSwapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualDnaiSwap","outputs":[],"stateMutability":"nonpayable","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":"removeDnaiLimits","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":"sellShareFee","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":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updatemaxWalletsAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a0604052600f805462ffffff1916600117905560026011556013805460ff191690553480156200002f57600080fd5b506040518060400160405280600981526020016844796e616d6f20414960b81b81525060405180604001604052806004815260200163444e414960e01b815250816003908162000080919062000902565b5060046200008f828262000902565b505050620000ac620000a66200047f60201b60201c565b62000483565b737a250d5630b4cf539739df2c5dacb4c659f2488d620000ce816001620004d5565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000119573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200013f9190620009ce565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200018d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b39190620009ce565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000201573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002279190620009ce565b600680546001600160a01b0319166001600160a01b0392909216918217905562000253906001620004d5565b6006546200026c906001600160a01b031660016200054e565b600880546001600160a01b031990811673d5d1dfa1d9340a9e15c8c0feab5a04b6aef0e42590811790925560098054821673b729c82d5507ae30e71036cd8e7bd450ba7842e3179055600a80548216733a27f344df1f05a02e18342bd2771196d0a855c11790556007805490911690911790556a01a784379d99db42000000600b819055600d556a52b7d2dcc80cd2e4000000620f42406200031082600562000a16565b6200031c919062000a36565b600c5569d3c21bcecceda1000000600e5560006015819055601781905560168190556200034a818062000a59565b62000356919062000a59565b601455600560198190556000601b819055601a819055906200037a90829062000a59565b62000386919062000a59565b601855600654600754620003aa916001600160a01b039081169116600019620005a2565b620003c9620003c16005546001600160a01b031690565b6001620006ca565b620003d6306001620006ca565b620003e561dead6001620006ca565b600854620003fe906001600160a01b03166001620006ca565b60095462000417906001600160a01b03166001620006ca565b620004366200042e6005546001600160a01b031690565b6001620004d5565b62000443306001620004d5565b6200045261dead6001620004d5565b6008546200046b906001600160a01b03166001620004d5565b62000477338262000774565b505062000a6f565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6005546001600160a01b03163314620005245760405162461bcd60e51b8152602060048201819052602482015260008051602062002fdd83398151915260448201526064015b60405180910390fd5b6001600160a01b039190911660009081526020805260409020805460ff1916911515919091179055565b6001600160a01b038216600081815260216020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316620006065760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016200051b565b6001600160a01b038216620006695760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200051b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b03163314620007155760405162461bcd60e51b8152602060048201819052602482015260008051602062002fdd83398151915260448201526064016200051b565b6001600160a01b0382166000818152601f6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620007cc5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200051b565b8060026000828254620007e0919062000a59565b90915550506001600160a01b038216600090815260208190526040812080548392906200080f90849062000a59565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200088957607f821691505b602082108103620008aa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200085957600081815260208120601f850160051c81016020861015620008d95750805b601f850160051c820191505b81811015620008fa57828155600101620008e5565b505050505050565b81516001600160401b038111156200091e576200091e6200085e565b62000936816200092f845462000874565b84620008b0565b602080601f8311600181146200096e5760008415620009555750858301515b600019600386901b1c1916600185901b178555620008fa565b600085815260208120601f198616915b828110156200099f578886015182559484019460019091019084016200097e565b5085821015620009be5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620009e157600080fd5b81516001600160a01b0381168114620009f957600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141762000a305762000a3062000a00565b92915050565b60008262000a5457634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000a305762000a3062000a00565b60805161253662000aa7600039600081816103e2015281816115e301528181611d8601528181611e3f0152611e7b01526125366000f3fe6080604052600436106103545760003560e01c80638d0e022d116101c6578063b62496f5116100f7578063d85ba06311610095578063e6819ba71161006f578063e6819ba71461098e578063e884f260146109bd578063f2fde38b146109d2578063ff5211bb146109f257600080fd5b8063d85ba0631461091c578063dd62ed3e14610932578063e2f456051461097857600080fd5b8063bfcda222116100d1578063bfcda222146108ac578063c0246668146108c2578063c876d0b9146108e2578063d257b34f146108fc57600080fd5b8063b62496f51461083c578063b949d62f1461086c578063bf0e6e791461088c57600080fd5b80639c3b4fdc11610164578063a0d82dc51161013e578063a0d82dc5146107c6578063a457c2d7146107dc578063a9059cbb146107fc578063b115e4df1461081c57600080fd5b80639c3b4fdc1461077b5780639fc66724146107915780639fccce32146107b057600080fd5b806392136913116101a05780639213691314610710578063924de9b71461072657806395d89b41146107465780639a7a23d61461075b57600080fd5b80638d0e022d146106bc5780638d291c64146106dc5780638da5cb5b146106f257600080fd5b8063313ce567116102a05780636ddd17131161023e578063725fc21d11610218578063725fc21d146106655780637437681e1461067b5780637bce5a04146106915780637d508ef2146106a757600080fd5b80636ddd1713146105fa57806370a082311461061a578063715018a61461065057600080fd5b80634a62bb651161027a5780634a62bb65146105715780634fbee1931461058b578063644130d8146105c45780636a486a8e146105e457600080fd5b8063313ce56714610515578063395093511461053157806349bd5a5e1461055157600080fd5b8063203be6071161030d57806323b872dd116102e757806323b872dd146104a95780632598cdb2146104c957806327c8f835146104e957806330a136ad146104ff57600080fd5b8063203be60714610451578063203e727e14610467578063217580a21461048957600080fd5b806306fdde0314610360578063095ea7b31461038b5780630f4f1969146103bb5780631694505e146103d057806318160ddd1461041c5780631f3fed8f1461043b57600080fd5b3661035b57005b600080fd5b34801561036c57600080fd5b50610375610a07565b60405161038291906120fc565b60405180910390f35b34801561039757600080fd5b506103ab6103a636600461215f565b610a99565b6040519015158152602001610382565b3480156103c757600080fd5b506103ab610ab0565b3480156103dc57600080fd5b506104047f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610382565b34801561042857600080fd5b506002545b604051908152602001610382565b34801561044757600080fd5b5061042d601c5481565b34801561045d57600080fd5b5061042d601e5481565b34801561047357600080fd5b5061048761048236600461218b565b610af6565b005b34801561049557600080fd5b506104876104a436600461218b565b610bbb565b3480156104b557600080fd5b506103ab6104c43660046121a4565b610c8e565b3480156104d557600080fd5b50600854610404906001600160a01b031681565b3480156104f557600080fd5b5061040461dead81565b34801561050b57600080fd5b5061042d600d5481565b34801561052157600080fd5b5060405160128152602001610382565b34801561053d57600080fd5b506103ab61054c36600461215f565b610d38565b34801561055d57600080fd5b50600654610404906001600160a01b031681565b34801561057d57600080fd5b50600f546103ab9060ff1681565b34801561059757600080fd5b506103ab6105a63660046121e5565b6001600160a01b03166000908152601f602052604090205460ff1690565b3480156105d057600080fd5b506104876105df366004612217565b610d74565b3480156105f057600080fd5b5061042d60185481565b34801561060657600080fd5b50600f546103ab9062010000900460ff1681565b34801561062657600080fd5b5061042d6106353660046121e5565b6001600160a01b031660009081526020819052604090205490565b34801561065c57600080fd5b50610487610dc8565b34801561067157600080fd5b5061042d600e5481565b34801561068757600080fd5b5061042d600b5481565b34801561069d57600080fd5b5061042d60155481565b3480156106b357600080fd5b50600c5461042d565b3480156106c857600080fd5b50600a54610404906001600160a01b031681565b3480156106e857600080fd5b5061042d60165481565b3480156106fe57600080fd5b506005546001600160a01b0316610404565b34801561071c57600080fd5b5061042d60195481565b34801561073257600080fd5b5061048761074136600461224c565b610dfe565b34801561075257600080fd5b50610375610e44565b34801561076757600080fd5b50610487610776366004612217565b610e53565b34801561078757600080fd5b5061042d60175481565b34801561079d57600080fd5b50600f546103ab90610100900460ff1681565b3480156107bc57600080fd5b5061042d601d5481565b3480156107d257600080fd5b5061042d601b5481565b3480156107e857600080fd5b506103ab6107f736600461215f565b610f0f565b34801561080857600080fd5b506103ab61081736600461215f565b610fa8565b34801561082857600080fd5b50600954610404906001600160a01b031681565b34801561084857600080fd5b506103ab6108573660046121e5565b60216020526000908152604090205460ff1681565b34801561087857600080fd5b5061048761088736600461218b565b610fb5565b34801561089857600080fd5b50600754610404906001600160a01b031681565b3480156108b857600080fd5b5061042d601a5481565b3480156108ce57600080fd5b506104876108dd366004612217565b61103b565b3480156108ee57600080fd5b506013546103ab9060ff1681565b34801561090857600080fd5b506103ab61091736600461218b565b6110c4565b34801561092857600080fd5b5061042d60145481565b34801561093e57600080fd5b5061042d61094d366004612267565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561098457600080fd5b5061042d600c5481565b34801561099a57600080fd5b506103ab6109a93660046121e5565b602080526000908152604090205460ff1681565b3480156109c957600080fd5b506103ab6111ee565b3480156109de57600080fd5b506104876109ed3660046121e5565b61122b565b3480156109fe57600080fd5b506104876112c3565b606060038054610a16906122a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610a42906122a0565b8015610a8f5780601f10610a6457610100808354040283529160200191610a8f565b820191906000526020600020905b815481529060010190602001808311610a7257829003601f168201915b5050505050905090565b6000610aa6338484611304565b5060015b92915050565b6005546000906001600160a01b03163314610ae65760405162461bcd60e51b8152600401610add906122da565b60405180910390fd5b50600f805460ff19169055600190565b6005546001600160a01b03163314610b205760405162461bcd60e51b8152600401610add906122da565b670de0b6b3a76400006103e8610b3560025490565b610b40906001612325565b610b4a919061233c565b610b54919061233c565b811015610ba35760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f7420736574206d61785478206c6f776572207468616e20302e31256044820152606401610add565b610bb581670de0b6b3a7640000612325565b600b5550565b6005546001600160a01b03163314610be55760405162461bcd60e51b8152600401610add906122da565b670de0b6b3a76400006103e8610bfa60025490565b610c05906005612325565b610c0f919061233c565b610c19919061233c565b811015610c765760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d617857616c6c657473206c6f776572207468616e60448201526420302e352560d81b6064820152608401610add565b610c8881670de0b6b3a7640000612325565b600d5550565b6000610c9b848484611428565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610d205760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610add565b610d2d8533858403611304565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610aa6918590610d6f90869061235e565b611304565b6005546001600160a01b03163314610d9e5760405162461bcd60e51b8152600401610add906122da565b6001600160a01b039190911660009081526020805260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610df25760405162461bcd60e51b8152600401610add906122da565b610dfc6000611c89565b565b6005546001600160a01b03163314610e285760405162461bcd60e51b8152600401610add906122da565b600f8054911515620100000262ff000019909216919091179055565b606060048054610a16906122a0565b6005546001600160a01b03163314610e7d5760405162461bcd60e51b8152600401610add906122da565b6006546001600160a01b0390811690831603610f015760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610add565b610f0b8282611cdb565b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610f915760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610add565b610f9e3385858403611304565b5060019392505050565b6000610aa6338484611428565b6008546001600160a01b0316336001600160a01b031614610fd557600080fd5b306000908152602081905260409020548111158015610ff45750600081115b61102f5760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b6044820152606401610add565b61103881611d2f565b50565b6005546001600160a01b031633146110655760405162461bcd60e51b8152600401610add906122da565b6001600160a01b0382166000818152601f6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6000620186a06110d360025490565b6110de906001612325565b6110e8919061233c565b8210156111555760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610add565b6103e861116160025490565b61116c906005612325565b611176919061233c565b8211156111e25760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610add565b50506000600c55600190565b6005546000906001600160a01b0316331461121b5760405162461bcd60e51b8152600401610add906122da565b506013805460ff19169055600190565b6005546001600160a01b031633146112555760405162461bcd60e51b8152600401610add906122da565b6001600160a01b0381166112ba5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610add565b61103881611c89565b6005546001600160a01b031633146112ed5760405162461bcd60e51b8152600401610add906122da565b600f805462ffff0019166201010017905543601055565b6001600160a01b0383166113665760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610add565b6001600160a01b0382166113c75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610add565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661144e5760405162461bcd60e51b8152600401610add90612371565b6001600160a01b0382166114745760405162461bcd60e51b8152600401610add906123b6565b600081116114945760405162461bcd60e51b8152600401610add906123f9565b806000036114ad576114a883836000611eef565b505050565b600f5460ff1615611925576005546001600160a01b038481169116148015906114e457506005546001600160a01b03838116911614155b80156114f857506001600160a01b03821615155b801561150f57506001600160a01b03821661dead14155b80156115255750600754600160a01b900460ff16155b1561192557600f54610100900460ff166115bd576001600160a01b0383166000908152601f602052604090205460ff168061157857506001600160a01b0382166000908152601f602052604090205460ff165b6115bd5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610add565b60135460ff16156116e0576005546001600160a01b0383811691161480159061161857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b801561163257506006546001600160a01b03838116911614155b156116e0573260009081526012602052604090205443116116cd5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610add565b3260009081526012602052604090204390555b6001600160a01b03831660009081526021602052604090205460ff16801561172057506001600160a01b038216600090815260208052604090205460ff16155b156117f557600b548111156117865760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526536b0bc2a3c1760d11b6064820152608401610add565b600d546001600160a01b0383166000908152602081905260409020546117ac908361235e565b11156117f05760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610add565b611925565b6001600160a01b03821660009081526021602052604090205460ff16801561183557506001600160a01b038316600090815260208052604090205460ff16155b1561189c57600b548111156117f05760405162461bcd60e51b815260206004820152602760248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152661036b0bc2a3c1760c91b6064820152608401610add565b6001600160a01b038216600090815260208052604090205460ff1661192557600d546001600160a01b0383166000908152602081905260409020546118e1908361235e565b11156119255760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610add565b30600090815260208190526040902054600c54811080159081906119515750600f5462010000900460ff165b80156119675750600754600160a01b900460ff16155b801561198c57506001600160a01b03851660009081526021602052604090205460ff16155b80156119b157506001600160a01b0385166000908152601f602052604090205460ff16155b80156119d657506001600160a01b0384166000908152601f602052604090205460ff16155b15611a05576007805460ff60a01b1916600160a01b1790556119f783612065565b6007805460ff60a01b191690555b6007546001600160a01b0386166000908152601f602052604090205460ff600160a01b909204821615911680611a5357506001600160a01b0385166000908152601f602052604090205460ff165b15611a5c575060005b60008115611c7557601154601054611a74919061235e565b431015611a9857611a916064611a8b8760286120dd565b906120f0565b9050611c57565b6001600160a01b03861660009081526021602052604090205460ff168015611ac257506000601854115b15611b7a57611ae16064611a8b601854886120dd90919063ffffffff16565b9050601854601b5482611af49190612325565b611afe919061233c565b601d6000828254611b0f919061235e565b9091555050601854601954611b249083612325565b611b2e919061233c565b601c6000828254611b3f919061235e565b9091555050601854601a54611b549083612325565b611b5e919061233c565b601e6000828254611b6f919061235e565b90915550611c579050565b6001600160a01b03871660009081526021602052604090205460ff168015611ba457506000601454115b15611c5757611bc36064611a8b601454886120dd90919063ffffffff16565b905060145460175482611bd69190612325565b611be0919061233c565b601d6000828254611bf1919061235e565b9091555050601454601554611c069083612325565b611c10919061233c565b601c6000828254611c21919061235e565b9091555050601454601654611c369083612325565b611c40919061233c565b601e6000828254611c51919061235e565b90915550505b8015611c6857611c68873083611eef565b611c728186612449565b94505b611c80878787611eef565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260216020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d6457611d6461245c565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611de2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e069190612472565b81600181518110611e1957611e1961245c565b60200260200101906001600160a01b031690816001600160a01b031681525050611e64307f000000000000000000000000000000000000000000000000000000000000000084611304565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611eb990859060009086903090429060040161248f565b600060405180830381600087803b158015611ed357600080fd5b505af1158015611ee7573d6000803e3d6000fd5b505050505050565b6001600160a01b038316611f155760405162461bcd60e51b8152600401610add90612371565b6001600160a01b038216611f3b5760405162461bcd60e51b8152600401610add906123b6565b60008111611f5b5760405162461bcd60e51b8152600401610add906123f9565b6001600160a01b03831660009081526020819052604090205481811015611fd35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610add565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061200a90849061235e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161205691815260200190565b60405180910390a35b50505050565b3060009081526020819052604081205490819003612081575050565b600e548111156120905750600e545b600c54821115610f0b576120a381611d2f565b60085460405147916001600160a01b03169082156108fc029083906000818181858888f1935050505015801561205f573d6000803e3d6000fd5b60006120e98284612325565b9392505050565b60006120e9828461233c565b600060208083528351808285015260005b818110156121295785810183015185820160400152820161210d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461103857600080fd5b6000806040838503121561217257600080fd5b823561217d8161214a565b946020939093013593505050565b60006020828403121561219d57600080fd5b5035919050565b6000806000606084860312156121b957600080fd5b83356121c48161214a565b925060208401356121d48161214a565b929592945050506040919091013590565b6000602082840312156121f757600080fd5b81356120e98161214a565b8035801515811461221257600080fd5b919050565b6000806040838503121561222a57600080fd5b82356122358161214a565b915061224360208401612202565b90509250929050565b60006020828403121561225e57600080fd5b6120e982612202565b6000806040838503121561227a57600080fd5b82356122858161214a565b915060208301356122958161214a565b809150509250929050565b600181811c908216806122b457607f821691505b6020821081036122d457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610aaa57610aaa61230f565b60008261235957634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610aaa57610aaa61230f565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526030908201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760408201526f726561746572207468616e207a65726f60801b606082015260800190565b81810381811115610aaa57610aaa61230f565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561248457600080fd5b81516120e98161214a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124df5784516001600160a01b0316835293830193918301916001016124ba565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220e8405cb3a054828d10977a523f944fcba8d99537dcdd679cc83bab20fbd4fff264736f6c634300081300334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
Deployed Bytecode
0x6080604052600436106103545760003560e01c80638d0e022d116101c6578063b62496f5116100f7578063d85ba06311610095578063e6819ba71161006f578063e6819ba71461098e578063e884f260146109bd578063f2fde38b146109d2578063ff5211bb146109f257600080fd5b8063d85ba0631461091c578063dd62ed3e14610932578063e2f456051461097857600080fd5b8063bfcda222116100d1578063bfcda222146108ac578063c0246668146108c2578063c876d0b9146108e2578063d257b34f146108fc57600080fd5b8063b62496f51461083c578063b949d62f1461086c578063bf0e6e791461088c57600080fd5b80639c3b4fdc11610164578063a0d82dc51161013e578063a0d82dc5146107c6578063a457c2d7146107dc578063a9059cbb146107fc578063b115e4df1461081c57600080fd5b80639c3b4fdc1461077b5780639fc66724146107915780639fccce32146107b057600080fd5b806392136913116101a05780639213691314610710578063924de9b71461072657806395d89b41146107465780639a7a23d61461075b57600080fd5b80638d0e022d146106bc5780638d291c64146106dc5780638da5cb5b146106f257600080fd5b8063313ce567116102a05780636ddd17131161023e578063725fc21d11610218578063725fc21d146106655780637437681e1461067b5780637bce5a04146106915780637d508ef2146106a757600080fd5b80636ddd1713146105fa57806370a082311461061a578063715018a61461065057600080fd5b80634a62bb651161027a5780634a62bb65146105715780634fbee1931461058b578063644130d8146105c45780636a486a8e146105e457600080fd5b8063313ce56714610515578063395093511461053157806349bd5a5e1461055157600080fd5b8063203be6071161030d57806323b872dd116102e757806323b872dd146104a95780632598cdb2146104c957806327c8f835146104e957806330a136ad146104ff57600080fd5b8063203be60714610451578063203e727e14610467578063217580a21461048957600080fd5b806306fdde0314610360578063095ea7b31461038b5780630f4f1969146103bb5780631694505e146103d057806318160ddd1461041c5780631f3fed8f1461043b57600080fd5b3661035b57005b600080fd5b34801561036c57600080fd5b50610375610a07565b60405161038291906120fc565b60405180910390f35b34801561039757600080fd5b506103ab6103a636600461215f565b610a99565b6040519015158152602001610382565b3480156103c757600080fd5b506103ab610ab0565b3480156103dc57600080fd5b506104047f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610382565b34801561042857600080fd5b506002545b604051908152602001610382565b34801561044757600080fd5b5061042d601c5481565b34801561045d57600080fd5b5061042d601e5481565b34801561047357600080fd5b5061048761048236600461218b565b610af6565b005b34801561049557600080fd5b506104876104a436600461218b565b610bbb565b3480156104b557600080fd5b506103ab6104c43660046121a4565b610c8e565b3480156104d557600080fd5b50600854610404906001600160a01b031681565b3480156104f557600080fd5b5061040461dead81565b34801561050b57600080fd5b5061042d600d5481565b34801561052157600080fd5b5060405160128152602001610382565b34801561053d57600080fd5b506103ab61054c36600461215f565b610d38565b34801561055d57600080fd5b50600654610404906001600160a01b031681565b34801561057d57600080fd5b50600f546103ab9060ff1681565b34801561059757600080fd5b506103ab6105a63660046121e5565b6001600160a01b03166000908152601f602052604090205460ff1690565b3480156105d057600080fd5b506104876105df366004612217565b610d74565b3480156105f057600080fd5b5061042d60185481565b34801561060657600080fd5b50600f546103ab9062010000900460ff1681565b34801561062657600080fd5b5061042d6106353660046121e5565b6001600160a01b031660009081526020819052604090205490565b34801561065c57600080fd5b50610487610dc8565b34801561067157600080fd5b5061042d600e5481565b34801561068757600080fd5b5061042d600b5481565b34801561069d57600080fd5b5061042d60155481565b3480156106b357600080fd5b50600c5461042d565b3480156106c857600080fd5b50600a54610404906001600160a01b031681565b3480156106e857600080fd5b5061042d60165481565b3480156106fe57600080fd5b506005546001600160a01b0316610404565b34801561071c57600080fd5b5061042d60195481565b34801561073257600080fd5b5061048761074136600461224c565b610dfe565b34801561075257600080fd5b50610375610e44565b34801561076757600080fd5b50610487610776366004612217565b610e53565b34801561078757600080fd5b5061042d60175481565b34801561079d57600080fd5b50600f546103ab90610100900460ff1681565b3480156107bc57600080fd5b5061042d601d5481565b3480156107d257600080fd5b5061042d601b5481565b3480156107e857600080fd5b506103ab6107f736600461215f565b610f0f565b34801561080857600080fd5b506103ab61081736600461215f565b610fa8565b34801561082857600080fd5b50600954610404906001600160a01b031681565b34801561084857600080fd5b506103ab6108573660046121e5565b60216020526000908152604090205460ff1681565b34801561087857600080fd5b5061048761088736600461218b565b610fb5565b34801561089857600080fd5b50600754610404906001600160a01b031681565b3480156108b857600080fd5b5061042d601a5481565b3480156108ce57600080fd5b506104876108dd366004612217565b61103b565b3480156108ee57600080fd5b506013546103ab9060ff1681565b34801561090857600080fd5b506103ab61091736600461218b565b6110c4565b34801561092857600080fd5b5061042d60145481565b34801561093e57600080fd5b5061042d61094d366004612267565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561098457600080fd5b5061042d600c5481565b34801561099a57600080fd5b506103ab6109a93660046121e5565b602080526000908152604090205460ff1681565b3480156109c957600080fd5b506103ab6111ee565b3480156109de57600080fd5b506104876109ed3660046121e5565b61122b565b3480156109fe57600080fd5b506104876112c3565b606060038054610a16906122a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610a42906122a0565b8015610a8f5780601f10610a6457610100808354040283529160200191610a8f565b820191906000526020600020905b815481529060010190602001808311610a7257829003601f168201915b5050505050905090565b6000610aa6338484611304565b5060015b92915050565b6005546000906001600160a01b03163314610ae65760405162461bcd60e51b8152600401610add906122da565b60405180910390fd5b50600f805460ff19169055600190565b6005546001600160a01b03163314610b205760405162461bcd60e51b8152600401610add906122da565b670de0b6b3a76400006103e8610b3560025490565b610b40906001612325565b610b4a919061233c565b610b54919061233c565b811015610ba35760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f7420736574206d61785478206c6f776572207468616e20302e31256044820152606401610add565b610bb581670de0b6b3a7640000612325565b600b5550565b6005546001600160a01b03163314610be55760405162461bcd60e51b8152600401610add906122da565b670de0b6b3a76400006103e8610bfa60025490565b610c05906005612325565b610c0f919061233c565b610c19919061233c565b811015610c765760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d617857616c6c657473206c6f776572207468616e60448201526420302e352560d81b6064820152608401610add565b610c8881670de0b6b3a7640000612325565b600d5550565b6000610c9b848484611428565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610d205760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610add565b610d2d8533858403611304565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610aa6918590610d6f90869061235e565b611304565b6005546001600160a01b03163314610d9e5760405162461bcd60e51b8152600401610add906122da565b6001600160a01b039190911660009081526020805260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610df25760405162461bcd60e51b8152600401610add906122da565b610dfc6000611c89565b565b6005546001600160a01b03163314610e285760405162461bcd60e51b8152600401610add906122da565b600f8054911515620100000262ff000019909216919091179055565b606060048054610a16906122a0565b6005546001600160a01b03163314610e7d5760405162461bcd60e51b8152600401610add906122da565b6006546001600160a01b0390811690831603610f015760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610add565b610f0b8282611cdb565b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610f915760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610add565b610f9e3385858403611304565b5060019392505050565b6000610aa6338484611428565b6008546001600160a01b0316336001600160a01b031614610fd557600080fd5b306000908152602081905260409020548111158015610ff45750600081115b61102f5760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b6044820152606401610add565b61103881611d2f565b50565b6005546001600160a01b031633146110655760405162461bcd60e51b8152600401610add906122da565b6001600160a01b0382166000818152601f6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6000620186a06110d360025490565b6110de906001612325565b6110e8919061233c565b8210156111555760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610add565b6103e861116160025490565b61116c906005612325565b611176919061233c565b8211156111e25760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610add565b50506000600c55600190565b6005546000906001600160a01b0316331461121b5760405162461bcd60e51b8152600401610add906122da565b506013805460ff19169055600190565b6005546001600160a01b031633146112555760405162461bcd60e51b8152600401610add906122da565b6001600160a01b0381166112ba5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610add565b61103881611c89565b6005546001600160a01b031633146112ed5760405162461bcd60e51b8152600401610add906122da565b600f805462ffff0019166201010017905543601055565b6001600160a01b0383166113665760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610add565b6001600160a01b0382166113c75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610add565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661144e5760405162461bcd60e51b8152600401610add90612371565b6001600160a01b0382166114745760405162461bcd60e51b8152600401610add906123b6565b600081116114945760405162461bcd60e51b8152600401610add906123f9565b806000036114ad576114a883836000611eef565b505050565b600f5460ff1615611925576005546001600160a01b038481169116148015906114e457506005546001600160a01b03838116911614155b80156114f857506001600160a01b03821615155b801561150f57506001600160a01b03821661dead14155b80156115255750600754600160a01b900460ff16155b1561192557600f54610100900460ff166115bd576001600160a01b0383166000908152601f602052604090205460ff168061157857506001600160a01b0382166000908152601f602052604090205460ff165b6115bd5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610add565b60135460ff16156116e0576005546001600160a01b0383811691161480159061161857507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316826001600160a01b031614155b801561163257506006546001600160a01b03838116911614155b156116e0573260009081526012602052604090205443116116cd5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610add565b3260009081526012602052604090204390555b6001600160a01b03831660009081526021602052604090205460ff16801561172057506001600160a01b038216600090815260208052604090205460ff16155b156117f557600b548111156117865760405162461bcd60e51b815260206004820152602660248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526536b0bc2a3c1760d11b6064820152608401610add565b600d546001600160a01b0383166000908152602081905260409020546117ac908361235e565b11156117f05760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610add565b611925565b6001600160a01b03821660009081526021602052604090205460ff16801561183557506001600160a01b038316600090815260208052604090205460ff16155b1561189c57600b548111156117f05760405162461bcd60e51b815260206004820152602760248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152661036b0bc2a3c1760c91b6064820152608401610add565b6001600160a01b038216600090815260208052604090205460ff1661192557600d546001600160a01b0383166000908152602081905260409020546118e1908361235e565b11156119255760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610add565b30600090815260208190526040902054600c54811080159081906119515750600f5462010000900460ff165b80156119675750600754600160a01b900460ff16155b801561198c57506001600160a01b03851660009081526021602052604090205460ff16155b80156119b157506001600160a01b0385166000908152601f602052604090205460ff16155b80156119d657506001600160a01b0384166000908152601f602052604090205460ff16155b15611a05576007805460ff60a01b1916600160a01b1790556119f783612065565b6007805460ff60a01b191690555b6007546001600160a01b0386166000908152601f602052604090205460ff600160a01b909204821615911680611a5357506001600160a01b0385166000908152601f602052604090205460ff165b15611a5c575060005b60008115611c7557601154601054611a74919061235e565b431015611a9857611a916064611a8b8760286120dd565b906120f0565b9050611c57565b6001600160a01b03861660009081526021602052604090205460ff168015611ac257506000601854115b15611b7a57611ae16064611a8b601854886120dd90919063ffffffff16565b9050601854601b5482611af49190612325565b611afe919061233c565b601d6000828254611b0f919061235e565b9091555050601854601954611b249083612325565b611b2e919061233c565b601c6000828254611b3f919061235e565b9091555050601854601a54611b549083612325565b611b5e919061233c565b601e6000828254611b6f919061235e565b90915550611c579050565b6001600160a01b03871660009081526021602052604090205460ff168015611ba457506000601454115b15611c5757611bc36064611a8b601454886120dd90919063ffffffff16565b905060145460175482611bd69190612325565b611be0919061233c565b601d6000828254611bf1919061235e565b9091555050601454601554611c069083612325565b611c10919061233c565b601c6000828254611c21919061235e565b9091555050601454601654611c369083612325565b611c40919061233c565b601e6000828254611c51919061235e565b90915550505b8015611c6857611c68873083611eef565b611c728186612449565b94505b611c80878787611eef565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260216020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611d6457611d6461245c565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611de2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e069190612472565b81600181518110611e1957611e1961245c565b60200260200101906001600160a01b031690816001600160a01b031681525050611e64307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611304565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611eb990859060009086903090429060040161248f565b600060405180830381600087803b158015611ed357600080fd5b505af1158015611ee7573d6000803e3d6000fd5b505050505050565b6001600160a01b038316611f155760405162461bcd60e51b8152600401610add90612371565b6001600160a01b038216611f3b5760405162461bcd60e51b8152600401610add906123b6565b60008111611f5b5760405162461bcd60e51b8152600401610add906123f9565b6001600160a01b03831660009081526020819052604090205481811015611fd35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610add565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061200a90849061235e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161205691815260200190565b60405180910390a35b50505050565b3060009081526020819052604081205490819003612081575050565b600e548111156120905750600e545b600c54821115610f0b576120a381611d2f565b60085460405147916001600160a01b03169082156108fc029083906000818181858888f1935050505015801561205f573d6000803e3d6000fd5b60006120e98284612325565b9392505050565b60006120e9828461233c565b600060208083528351808285015260005b818110156121295785810183015185820160400152820161210d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461103857600080fd5b6000806040838503121561217257600080fd5b823561217d8161214a565b946020939093013593505050565b60006020828403121561219d57600080fd5b5035919050565b6000806000606084860312156121b957600080fd5b83356121c48161214a565b925060208401356121d48161214a565b929592945050506040919091013590565b6000602082840312156121f757600080fd5b81356120e98161214a565b8035801515811461221257600080fd5b919050565b6000806040838503121561222a57600080fd5b82356122358161214a565b915061224360208401612202565b90509250929050565b60006020828403121561225e57600080fd5b6120e982612202565b6000806040838503121561227a57600080fd5b82356122858161214a565b915060208301356122958161214a565b809150509250929050565b600181811c908216806122b457607f821691505b6020821081036122d457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610aaa57610aaa61230f565b60008261235957634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610aaa57610aaa61230f565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526030908201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760408201526f726561746572207468616e207a65726f60801b606082015260800190565b81810381811115610aaa57610aaa61230f565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561248457600080fd5b81516120e98161214a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124df5784516001600160a01b0316835293830193918301916001016124ba565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220e8405cb3a054828d10977a523f944fcba8d99537dcdd679cc83bab20fbd4fff264736f6c63430008130033
Deployed Bytecode Sourcemap
15254:12699:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2869:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3783:169;;;;;;;;;;-1:-1:-1;3783:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;3783:169:0;1023:187:1;19599:125:0;;;;;;;;;;;;;:::i;15332:51::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1406:32:1;;;1388:51;;1376:2;1361:18;15332:51:0;1215:230:1;3190:108:0;;;;;;;;;;-1:-1:-1;3278:12:0;;3190:108;;;1596:25:1;;;1584:2;1569:18;3190:108:0;1450:177:1;16452:33:0;;;;;;;;;;;;;;;;16526:29;;;;;;;;;;;;;;;;20586:245;;;;;;;;;;-1:-1:-1;20586:245:0;;;;;:::i;:::-;;:::i;:::-;;20839:259;;;;;;;;;;-1:-1:-1;20839:259:0;;;;;:::i;:::-;;:::i;3960:492::-;;;;;;;;;;-1:-1:-1;3960:492:0;;;;;:::i;:::-;;:::i;15551:30::-;;;;;;;;;;-1:-1:-1;15551:30:0;;;;-1:-1:-1;;;;;15551:30:0;;;15425:53;;;;;;;;;;;;15471:6;15425:53;;15721:25;;;;;;;;;;;;;;;;3089:93;;;;;;;;;;-1:-1:-1;3089:93:0;;3172:2;2628:36:1;;2616:2;2601:18;3089:93:0;2486:184:1;4460:215:0;;;;;;;;;;-1:-1:-1;4460:215:0;;;;;:::i;:::-;;:::i;15390:28::-;;;;;;;;;;-1:-1:-1;15390:28:0;;;;-1:-1:-1;;;;;15390:28:0;;;15791:33;;;;;;;;;;-1:-1:-1;15791:33:0;;;;;;;;22151:126;;;;;;;;;;-1:-1:-1;22151:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;22241:28:0;22217:4;22241:28;;;:19;:28;;;;;;;;;22151:126;21106:143;;;;;;;;;;-1:-1:-1;21106:143:0;;;;;:::i;:::-;;:::i;16311:28::-;;;;;;;;;;;;;;;;15875:31;;;;;;;;;;-1:-1:-1;15875:31:0;;;;;;;;;;;3306:127;;;;;;;;;;-1:-1:-1;3306:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3407:18:0;3380:7;3407:18;;;;;;;;;;;;3306:127;991:103;;;;;;;;;;;;;:::i;15753:29::-;;;;;;;;;;;;;;;;15654:20;;;;;;;;;;;;;;;;16208:30;;;;;;;;;;;;;;;;20468:110;;;;;;;;;;-1:-1:-1;20550:18:0;;20468:110;;15619:26;;;;;;;;;;-1:-1:-1;15619:26:0;;;;-1:-1:-1;;;;;15619:26:0;;;16245;;;;;;;;;;;;;;;;768:87;;;;;;;;;;-1:-1:-1;841:6:0;;-1:-1:-1;;;;;841:6:0;768:87;;16346:31;;;;;;;;;;;;;;;;21345:100;;;;;;;;;;-1:-1:-1;21345:100:0;;;;;:::i;:::-;;:::i;2977:104::-;;;;;;;;;;;;;:::i;21643:304::-;;;;;;;;;;-1:-1:-1;21643:304:0;;;;;:::i;:::-;;:::i;16278:24::-;;;;;;;;;;;;;;;;15831:37;;;;;;;;;;-1:-1:-1;15831:37:0;;;;;;;;;;;16492:27;;;;;;;;;;;;;;;;16418:25;;;;;;;;;;;;;;;;4683:413;;;;;;;;;;-1:-1:-1;4683:413:0;;;;;:::i;:::-;;:::i;3441:175::-;;;;;;;;;;-1:-1:-1;3441:175:0;;;;;:::i;:::-;;:::i;15588:24::-;;;;;;;;;;-1:-1:-1;15588:24:0;;;;-1:-1:-1;;;;;15588:24:0;;;16680:57;;;;;;;;;;-1:-1:-1;16680:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;27122:227;;;;;;;;;;-1:-1:-1;27122:227:0;;;;;:::i;:::-;;:::i;15485:27::-;;;;;;;;;;-1:-1:-1;15485:27:0;;;;-1:-1:-1;;;;;15485:27:0;;;16384;;;;;;;;;;;;;;;;21453:182;;;;;;;;;;-1:-1:-1;21453:182:0;;;;;:::i;:::-;;:::i;16125:40::-;;;;;;;;;;-1:-1:-1;16125:40:0;;;;;;;;19990:470;;;;;;;;;;-1:-1:-1;19990:470:0;;;;;:::i;:::-;;:::i;16174:27::-;;;;;;;;;;;;;;;;3624:151;;;;;;;;;;-1:-1:-1;3624:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3740:18:0;;;3713:7;3740:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3624:151;15681:33;;;;;;;;;;;;;;;;16623:48;;;;;;;;;;-1:-1:-1;16623:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19785:135;;;;;;;;;;;;;:::i;1102:201::-;;;;;;;;;;-1:-1:-1;1102:201:0;;;;;:::i;:::-;;:::i;19389:158::-;;;;;;;;;;;;;:::i;2869:100::-;2923:13;2956:5;2949:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2869:100;:::o;3783:169::-;3866:4;3883:39;394:10;3906:7;3915:6;3883:8;:39::i;:::-;-1:-1:-1;3940:4:0;3783:169;;;;;:::o;19599:125::-;841:6;;19655:4;;-1:-1:-1;;;;;841:6:0;394:10;903:23;895:68;;;;-1:-1:-1;;;895:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;19672:14:0::1;:22:::0;;-1:-1:-1;;19672:22:0::1;::::0;;;19599:125;:::o;20586:245::-;841:6;;-1:-1:-1;;;;;841:6:0;394:10;903:23;895:68;;;;-1:-1:-1;;;895:68:0;;;;;;;:::i;:::-;20723:4:::1;20715;20694:13;3278:12:::0;;;3190:108;20694:13:::1;:17;::::0;20710:1:::1;20694:17;:::i;:::-;20693:26;;;;:::i;:::-;20692:35;;;;:::i;:::-;20682:6;:45;;20660:127;;;::::0;-1:-1:-1;;;20660:127:0;;5465:2:1;20660:127:0::1;::::0;::::1;5447:21:1::0;;;5484:18;;;5477:30;5543:34;5523:18;;;5516:62;5595:18;;20660:127:0::1;5263:356:1::0;20660:127:0::1;20806:17;:6:::0;20816::::1;20806:17;:::i;:::-;20798:5;:25:::0;-1:-1:-1;20586:245:0:o;20839:259::-;841:6;;-1:-1:-1;;;;;841:6:0;394:10;903:23;895:68;;;;-1:-1:-1;;;895:68:0;;;;;;;:::i;:::-;20980:4:::1;20972;20951:13;3278:12:::0;;;3190:108;20951:13:::1;:17;::::0;20967:1:::1;20951:17;:::i;:::-;20950:26;;;;:::i;:::-;20949:35;;;;:::i;:::-;20939:6;:45;;20917:132;;;::::0;-1:-1:-1;;;20917:132:0;;5826:2:1;20917:132:0::1;::::0;::::1;5808:21:1::0;5865:2;5845:18;;;5838:30;5904:34;5884:18;;;5877:62;-1:-1:-1;;;5955:18:1;;;5948:35;6000:19;;20917:132:0::1;5624:401:1::0;20917:132:0::1;21073:17;:6:::0;21083::::1;21073:17;:::i;:::-;21060:10;:30:::0;-1:-1:-1;20839:259:0:o;3960:492::-;4100:4;4117:36;4127:6;4135:9;4146:6;4117:9;:36::i;:::-;-1:-1:-1;;;;;4193:19:0;;4166:24;4193:19;;;:11;:19;;;;;;;;394:10;4193:33;;;;;;;;4245:26;;;;4237:79;;;;-1:-1:-1;;;4237:79:0;;6232:2:1;4237:79:0;;;6214:21:1;6271:2;6251:18;;;6244:30;6310:34;6290:18;;;6283:62;-1:-1:-1;;;6361:18:1;;;6354:38;6409:19;;4237:79:0;6030:404:1;4237:79:0;4352:57;4361:6;394:10;4402:6;4383:16;:25;4352:8;:57::i;:::-;-1:-1:-1;4440:4:0;;3960:492;-1:-1:-1;;;;3960:492:0:o;4460:215::-;394:10;4548:4;4597:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4597:34:0;;;;;;;;;;4548:4;;4565:80;;4588:7;;4597:47;;4634:10;;4597:47;:::i;:::-;4565:8;:80::i;21106:143::-;841:6;;-1:-1:-1;;;;;841:6:0;394:10;903:23;895:68;;;;-1:-1:-1;;;895:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21210:24:0;;;::::1;;::::0;;;:16:::1;:24:::0;;;;;:31;;-1:-1:-1;;21210:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21106:143::o;991:103::-;841:6;;-1:-1:-1;;;;;841:6:0;394:10;903:23;895:68;;;;-1:-1:-1;;;895:68:0;;;;;;;:::i;:::-;1056:30:::1;1083:1;1056:18;:30::i;:::-;991:103::o:0;21345:100::-;841:6;;-1:-1:-1;;;;;841:6:0;394:10;903:23;895:68;;;;-1:-1:-1;;;895:68:0;;;;;;;:::i;:::-;21416:11:::1;:21:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;21416:21:0;;::::1;::::0;;;::::1;::::0;;21345:100::o;2977:104::-;3033:13;3066:7;3059:14;;;;;:::i;21643:304::-;841:6;;-1:-1:-1;;;;;841:6:0;394:10;903:23;895:68;;;;-1:-1:-1;;;895:68:0;;;;;;;:::i;:::-;21787:13:::1;::::0;-1:-1:-1;;;;;21787:13:0;;::::1;21779:21:::0;;::::1;::::0;21757:128:::1;;;::::0;-1:-1:-1;;;21757:128:0;;6771:2:1;21757:128:0::1;::::0;::::1;6753:21:1::0;6810:2;6790:18;;;6783:30;6849:34;6829:18;;;6822:62;6920:27;6900:18;;;6893:55;6965:19;;21757:128:0::1;6569:421:1::0;21757:128:0::1;21898:41;21927:4;21933:5;21898:28;:41::i;:::-;21643:304:::0;;:::o;4683:413::-;394:10;4776:4;4820:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4820:34:0;;;;;;;;;;4873:35;;;;4865:85;;;;-1:-1:-1;;;4865:85:0;;7197:2:1;4865:85:0;;;7179:21:1;7236:2;7216:18;;;7209:30;7275:34;7255:18;;;7248:62;-1:-1:-1;;;7326:18:1;;;7319:35;7371:19;;4865:85:0;6995:401:1;4865:85:0;4986:67;394:10;5009:7;5037:15;5018:16;:34;4986:8;:67::i;:::-;-1:-1:-1;5084:4:0;;4683:413;-1:-1:-1;;;4683:413:0:o;3441:175::-;3527:4;3544:42;394:10;3568:9;3579:6;3544:9;:42::i;27122:227::-;27206:15;;-1:-1:-1;;;;;27206:15:0;394:10;-1:-1:-1;;;;;27190:31:0;;27182:40;;;;;;27269:4;3380:7;3407:18;;;;;;;;;;;27241:6;:34;;:48;;;;;27288:1;27279:6;:10;27241:48;27233:73;;;;-1:-1:-1;;;27233:73:0;;7603:2:1;27233:73:0;;;7585:21:1;7642:2;7622:18;;;7615:30;-1:-1:-1;;;7661:18:1;;;7654:42;7713:18;;27233:73:0;7401:336:1;27233:73:0;27317:24;27334:6;27317:16;:24::i;:::-;27122:227;:::o;21453:182::-;841:6;;-1:-1:-1;;;;;841:6:0;394:10;903:23;895:68;;;;-1:-1:-1;;;895:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21538:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;21538:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;21593:34;;1163:41:1;;;21593:34:0::1;::::0;1136:18:1;21593:34:0::1;;;;;;;21453:182:::0;;:::o;19990:470::-;20079:4;20158:6;20137:13;3278:12;;;3190:108;20137:13;:17;;20153:1;20137:17;:::i;:::-;20136:28;;;;:::i;:::-;20123:9;:41;;20101:144;;;;-1:-1:-1;;;20101:144:0;;7944:2:1;20101:144:0;;;7926:21:1;7983:2;7963:18;;;7956:30;8022:34;8002:18;;;7995:62;-1:-1:-1;;;8073:18:1;;;8066:51;8134:19;;20101:144:0;7742:417:1;20101:144:0;20313:4;20292:13;3278:12;;;3190:108;20292:13;:17;;20308:1;20292:17;:::i;:::-;20291:26;;;;:::i;:::-;20278:9;:39;;20256:141;;;;-1:-1:-1;;;20256:141:0;;8366:2:1;20256:141:0;;;8348:21:1;8405:2;8385:18;;;8378:30;8444:34;8424:18;;;8417:62;-1:-1:-1;;;8495:18:1;;;8488:50;8555:19;;20256:141:0;8164:416:1;20256:141:0;-1:-1:-1;;20429:1:0;20408:18;:22;20448:4;;19990:470::o;19785:135::-;841:6;;19845:4;;-1:-1:-1;;;;;841:6:0;394:10;903:23;895:68;;;;-1:-1:-1;;;895:68:0;;;;;;;:::i;:::-;-1:-1:-1;19862:20:0::1;:28:::0;;-1:-1:-1;;19862:28:0::1;::::0;;;19785:135;:::o;1102:201::-;841:6;;-1:-1:-1;;;;;841:6:0;394:10;903:23;895:68;;;;-1:-1:-1;;;895:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1191:22:0;::::1;1183:73;;;::::0;-1:-1:-1;;;1183:73:0;;8787:2:1;1183:73:0::1;::::0;::::1;8769:21:1::0;8826:2;8806:18;;;8799:30;8865:34;8845:18;;;8838:62;-1:-1:-1;;;8916:18:1;;;8909:36;8962:19;;1183:73:0::1;8585:402:1::0;1183:73:0::1;1267:28;1286:8;1267:18;:28::i;19389:158::-:0;841:6;;-1:-1:-1;;;;;841:6:0;394:10;903:23;895:68;;;;-1:-1:-1;;;895:68:0;;;;;;;:::i;:::-;19443:17:::1;:24:::0;;-1:-1:-1;;19478:18:0;;;;;19527:12:::1;19507:17;:32:::0;19389:158::o;6933:380::-;-1:-1:-1;;;;;7069:19:0;;7061:68;;;;-1:-1:-1;;;7061:68:0;;9194:2:1;7061:68:0;;;9176:21:1;9233:2;9213:18;;;9206:30;9272:34;9252:18;;;9245:62;-1:-1:-1;;;9323:18:1;;;9316:34;9367:19;;7061:68:0;8992:400:1;7061:68:0;-1:-1:-1;;;;;7148:21:0;;7140:68;;;;-1:-1:-1;;;7140:68:0;;9599:2:1;7140:68:0;;;9581:21:1;9638:2;9618:18;;;9611:30;9677:34;9657:18;;;9650:62;-1:-1:-1;;;9728:18:1;;;9721:32;9770:19;;7140:68:0;9397:398:1;7140:68:0;-1:-1:-1;;;;;7221:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7273:32;;1596:25:1;;;7273:32:0;;1569:18:1;7273:32:0;;;;;;;6933:380;;;:::o;22285:4187::-;-1:-1:-1;;;;;22417:18:0;;22409:68;;;;-1:-1:-1;;;22409:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22496:16:0;;22488:64;;;;-1:-1:-1;;;22488:64:0;;;;;;;:::i;:::-;22580:1;22571:6;:10;22563:71;;;;-1:-1:-1;;;22563:71:0;;;;;;;:::i;:::-;22659:6;22669:1;22659:11;22655:93;;22687:28;22703:4;22709:2;22713:1;22687:15;:28::i;:::-;22285:4187;;;:::o;22655:93::-;22764:14;;;;22760:1670;;;841:6;;-1:-1:-1;;;;;22799:15:0;;;841:6;;22799:15;;;;:49;;-1:-1:-1;841:6:0;;-1:-1:-1;;;;;22835:13:0;;;841:6;;22835:13;;22799:49;:86;;;;-1:-1:-1;;;;;;22869:16:0;;;;22799:86;:128;;;;-1:-1:-1;;;;;;22906:21:0;;22920:6;22906:21;;22799:128;:158;;;;-1:-1:-1;22949:8:0;;-1:-1:-1;;;22949:8:0;;;;22948:9;22799:158;22795:1624;;;22983:17;;;;;;;22978:154;;-1:-1:-1;;;;;23033:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;23062:23:0;;;;;;:19;:23;;;;;;;;23033:52;23025:87;;;;-1:-1:-1;;;23025:87:0;;11229:2:1;23025:87:0;;;11211:21:1;11268:2;11248:18;;;11241:30;-1:-1:-1;;;11287:18:1;;;11280:52;11349:18;;23025:87:0;11027:346:1;23025:87:0;23288:20;;;;23284:425;;;841:6;;-1:-1:-1;;;;;23337:13:0;;;841:6;;23337:13;;;;:47;;;23368:15;-1:-1:-1;;;;;23354:30:0;:2;-1:-1:-1;;;;;23354:30:0;;;23337:47;:79;;;;-1:-1:-1;23402:13:0;;-1:-1:-1;;;;;23388:28:0;;;23402:13;;23388:28;;23337:79;23333:357;;;23482:9;23453:39;;;;:28;:39;;;;;;23495:12;-1:-1:-1;23445:140:0;;;;-1:-1:-1;;;23445:140:0;;11580:2:1;23445:140:0;;;11562:21:1;11619:2;11599:18;;;11592:30;11658:34;11638:18;;;11631:62;11729:34;11709:18;;;11702:62;-1:-1:-1;;;11780:19:1;;;11773:40;11830:19;;23445:140:0;11378:477:1;23445:140:0;23641:9;23612:39;;;;:28;:39;;;;;23654:12;23612:54;;23333:357;-1:-1:-1;;;;;23761:31:0;;;;;;:25;:31;;;;;;;;:56;;;;-1:-1:-1;;;;;;23797:20:0;;;;;;:16;:20;;;;;;;;23796:21;23761:56;23757:647;;;23860:5;;23850:6;:15;;23842:66;;;;-1:-1:-1;;;23842:66:0;;12062:2:1;23842:66:0;;;12044:21:1;12101:2;12081:18;;;12074:30;12140:34;12120:18;;;12113:62;-1:-1:-1;;;12191:18:1;;;12184:36;12237:19;;23842:66:0;11860:402:1;23842:66:0;23965:10;;-1:-1:-1;;;;;3407:18:0;;3380:7;3407:18;;;;;;;;;;;23939:22;;:6;:22;:::i;:::-;:36;;23931:68;;;;-1:-1:-1;;;23931:68:0;;12469:2:1;23931:68:0;;;12451:21:1;12508:2;12488:18;;;12481:30;-1:-1:-1;;;12527:18:1;;;12520:49;12586:18;;23931:68:0;12267:343:1;23931:68:0;23757:647;;;-1:-1:-1;;;;;24075:29:0;;;;;;:25;:29;;;;;;;;:56;;;;-1:-1:-1;;;;;;24109:22:0;;;;;;:16;:22;;;;;;;;24108:23;24075:56;24071:333;;;24174:5;;24164:6;:15;;24156:67;;;;-1:-1:-1;;;24156:67:0;;12817:2:1;24156:67:0;;;12799:21:1;12856:2;12836:18;;;12829:30;12895:34;12875:18;;;12868:62;-1:-1:-1;;;12946:18:1;;;12939:37;12993:19;;24156:67:0;12615:403:1;24071:333:0;-1:-1:-1;;;;;24271:20:0;;;;;;:16;:20;;;;;;;;24266:138;;24350:10;;-1:-1:-1;;;;;3407:18:0;;3380:7;3407:18;;;;;;;;;;;24324:22;;:6;:22;:::i;:::-;:36;;24316:68;;;;-1:-1:-1;;;24316:68:0;;12469:2:1;24316:68:0;;;12451:21:1;12508:2;12488:18;;;12481:30;-1:-1:-1;;;12527:18:1;;;12520:49;12586:18;;24316:68:0;12267:343:1;24316:68:0;24491:4;24442:28;3407:18;;;;;;;;;;;24547;;24523:42;;;;;;;24582:35;;-1:-1:-1;24606:11:0;;;;;;;24582:35;:61;;;;-1:-1:-1;24635:8:0;;-1:-1:-1;;;24635:8:0;;;;24634:9;24582:61;:110;;;;-1:-1:-1;;;;;;24661:31:0;;;;;;:25;:31;;;;;;;;24660:32;24582:110;:153;;;;-1:-1:-1;;;;;;24710:25:0;;;;;;:19;:25;;;;;;;;24709:26;24582:153;:194;;;;-1:-1:-1;;;;;;24753:23:0;;;;;;:19;:23;;;;;;;;24752:24;24582:194;24578:308;;;24793:8;:15;;-1:-1:-1;;;;24793:15:0;-1:-1:-1;;;24793:15:0;;;24825:16;24834:6;24825:8;:16::i;:::-;24858:8;:16;;-1:-1:-1;;;;24858:16:0;;;24578:308;24914:8;;-1:-1:-1;;;;;25024:25:0;;24898:12;25024:25;;;:19;:25;;;;;;24914:8;-1:-1:-1;;;24914:8:0;;;;;24913:9;;25024:25;;:52;;-1:-1:-1;;;;;;25053:23:0;;;;;;:19;:23;;;;;;;;25024:52;25020:100;;;-1:-1:-1;25103:5:0;25020:100;25132:16;25241:7;25237:1182;;;25304:15;;25284:17;;:35;;;;:::i;:::-;25269:12;:50;25265:993;;;25333:23;25352:3;25333:14;:6;25344:2;25333:10;:14::i;:::-;:18;;:23::i;:::-;25322:34;;25265:993;;;-1:-1:-1;;;;;25415:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;25464:1;25448:13;;:17;25415:50;25411:832;;;25501:34;25531:3;25501:25;25512:13;;25501:6;:10;;:25;;;;:::i;:34::-;25490:45;;25600:13;;25586:10;;25575:8;:21;;;;:::i;:::-;25574:39;;;;:::i;:::-;25558:12;;:55;;;;;;;:::i;:::-;;;;-1:-1:-1;;25690:13:0;;25670:16;;25659:27;;:8;:27;:::i;:::-;25658:45;;;;:::i;:::-;25636:18;;:67;;;;;;;:::i;:::-;;;;-1:-1:-1;;25772:13:0;;25756:12;;25745:23;;:8;:23;:::i;:::-;25744:41;;;;:::i;:::-;25726:14;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;25411:832:0;;-1:-1:-1;25411:832:0;;-1:-1:-1;;;;;25859:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;25909:1;25894:12;;:16;25859:51;25855:388;;;25946:33;25975:3;25946:24;25957:12;;25946:6;:10;;:24;;;;:::i;:33::-;25935:44;;26043:12;;26030:9;;26019:8;:20;;;;:::i;:::-;26018:37;;;;:::i;:::-;26002:12;;:53;;;;;;;:::i;:::-;;;;-1:-1:-1;;26131:12:0;;26112:15;;26101:26;;:8;:26;:::i;:::-;26100:43;;;;:::i;:::-;26078:18;;:65;;;;;;;:::i;:::-;;;;-1:-1:-1;;26211:12:0;;26196:11;;26185:22;;:8;:22;:::i;:::-;26184:39;;;;:::i;:::-;26166:14;;:57;;;;;;;:::i;:::-;;;;-1:-1:-1;;25855:388:0;26278:12;;26274:99;;26311:46;26327:4;26341;26348:8;26311:15;:46::i;:::-;26389:18;26399:8;26389:18;;:::i;:::-;;;25237:1182;26431:33;26447:4;26453:2;26457:6;26431:15;:33::i;:::-;22398:4074;;;;22285:4187;;;:::o;1311:191::-;1404:6;;;-1:-1:-1;;;;;1421:17:0;;;-1:-1:-1;;;;;;1421:17:0;;;;;;;1454:40;;1404:6;;;1421:17;1404:6;;1454:40;;1385:16;;1454:40;1374:128;1311:191;:::o;21955:188::-;-1:-1:-1;;;;;22038:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;22038:39:0;;;;;;;;;;22095:40;;22038:39;;:31;22095:40;;;21955:188;;:::o;27361:589::-;27511:16;;;27525:1;27511:16;;;;;;;;27487:21;;27511:16;;;;;;;;;;-1:-1:-1;27511:16:0;27487:40;;27556:4;27538;27543:1;27538:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;27538:23:0;;;-1:-1:-1;;;;;27538:23:0;;;;;27582:15;-1:-1:-1;;;;;27582:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27572:4;27577:1;27572:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;27572:32:0;;;-1:-1:-1;;;;;27572:32:0;;;;;27617:62;27634:4;27649:15;27667:11;27617:8;:62::i;:::-;27718:224;;-1:-1:-1;;;27718:224:0;;-1:-1:-1;;;;;27718:15:0;:66;;;;:224;;27799:11;;27825:1;;27869:4;;27896;;27916:15;;27718:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27416:534;27361:589;:::o;5104:815::-;-1:-1:-1;;;;;5244:20:0;;5236:70;;;;-1:-1:-1;;;5236:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5325:23:0;;5317:71;;;;-1:-1:-1;;;5317:71:0;;;;;;;:::i;:::-;5416:1;5407:6;:10;5399:71;;;;-1:-1:-1;;;5399:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5567:17:0;;5543:21;5567:17;;;;;;;;;;;5603:23;;;;5595:74;;;;-1:-1:-1;;;5595:74:0;;14863:2:1;5595:74:0;;;14845:21:1;14902:2;14882:18;;;14875:30;14941:34;14921:18;;;14914:62;-1:-1:-1;;;14992:18:1;;;14985:36;15038:19;;5595:74:0;14661:402:1;5595:74:0;-1:-1:-1;;;;;5705:17:0;;;:9;:17;;;;;;;;;;;5725:22;;;5705:42;;5769:20;;;;;;;;:30;;5741:6;;5705:9;5769:30;;5741:6;;5769:30;:::i;:::-;;;;;;;;5834:9;-1:-1:-1;;;;;5817:35:0;5826:6;-1:-1:-1;;;;;5817:35:0;;5845:6;5817:35;;;;1596:25:1;;1584:2;1569:18;;1450:177;5817:35:0;;;;;;;;5865:46;5225:694;5104:815;;;:::o;26595:515::-;26689:4;26645:23;3407:18;;;;;;;;;;;;26712:20;;;26708:59;;26749:7;26595:515;:::o;26708:59::-;26801:14;;26783:15;:32;26779:97;;;-1:-1:-1;26850:14:0;;26779:97;26896:18;;26890:3;:24;26886:217;;;26931:33;26948:15;26931:16;:33::i;:::-;27049:15;;27041:50;;27005:21;;-1:-1:-1;;;;;27049:15:0;;27041:50;;;;;27005:21;;26979:23;27041:50;26979:23;27041:50;27005:21;27049:15;27041:50;;;;;;;;;;;;;;;;;;;8939:98;8997:7;9024:5;9028:1;9024;:5;:::i;:::-;9017:12;8939:98;-1:-1:-1;;;8939:98:0:o;9045:::-;9103:7;9130:5;9134:1;9130;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1632:180::-;1691:6;1744:2;1732:9;1723:7;1719:23;1715:32;1712:52;;;1760:1;1757;1750:12;1712:52;-1:-1:-1;1783:23:1;;1632:180;-1:-1:-1;1632:180:1:o;1817:456::-;1894:6;1902;1910;1963:2;1951:9;1942:7;1938:23;1934:32;1931:52;;;1979:1;1976;1969:12;1931:52;2018:9;2005:23;2037:31;2062:5;2037:31;:::i;:::-;2087:5;-1:-1:-1;2144:2:1;2129:18;;2116:32;2157:33;2116:32;2157:33;:::i;:::-;1817:456;;2209:7;;-1:-1:-1;;;2263:2:1;2248:18;;;;2235:32;;1817:456::o;2675:247::-;2734:6;2787:2;2775:9;2766:7;2762:23;2758:32;2755:52;;;2803:1;2800;2793:12;2755:52;2842:9;2829:23;2861:31;2886:5;2861:31;:::i;2927:160::-;2992:20;;3048:13;;3041:21;3031:32;;3021:60;;3077:1;3074;3067:12;3021:60;2927:160;;;:::o;3092:315::-;3157:6;3165;3218:2;3206:9;3197:7;3193:23;3189:32;3186:52;;;3234:1;3231;3224:12;3186:52;3273:9;3260:23;3292:31;3317:5;3292:31;:::i;:::-;3342:5;-1:-1:-1;3366:35:1;3397:2;3382:18;;3366:35;:::i;:::-;3356:45;;3092:315;;;;;:::o;3412:180::-;3468:6;3521:2;3509:9;3500:7;3496:23;3492:32;3489:52;;;3537:1;3534;3527:12;3489:52;3560:26;3576:9;3560:26;:::i;3597:388::-;3665:6;3673;3726:2;3714:9;3705:7;3701:23;3697:32;3694:52;;;3742:1;3739;3732:12;3694:52;3781:9;3768:23;3800:31;3825:5;3800:31;:::i;:::-;3850:5;-1:-1:-1;3907:2:1;3892:18;;3879:32;3920:33;3879:32;3920:33;:::i;:::-;3972:7;3962:17;;;3597:388;;;;;:::o;3990:380::-;4069:1;4065:12;;;;4112;;;4133:61;;4187:4;4179:6;4175:17;4165:27;;4133:61;4240:2;4232:6;4229:14;4209:18;4206:38;4203:161;;4286:10;4281:3;4277:20;4274:1;4267:31;4321:4;4318:1;4311:15;4349:4;4346:1;4339:15;4203:161;;3990:380;;;:::o;4375:356::-;4577:2;4559:21;;;4596:18;;;4589:30;4655:34;4650:2;4635:18;;4628:62;4722:2;4707:18;;4375:356::o;4736:127::-;4797:10;4792:3;4788:20;4785:1;4778:31;4828:4;4825:1;4818:15;4852:4;4849:1;4842:15;4868:168;4941:9;;;4972;;4989:15;;;4983:22;;4969:37;4959:71;;5010:18;;:::i;5041:217::-;5081:1;5107;5097:132;;5151:10;5146:3;5142:20;5139:1;5132:31;5186:4;5183:1;5176:15;5214:4;5211:1;5204:15;5097:132;-1:-1:-1;5243:9:1;;5041:217::o;6439:125::-;6504:9;;;6525:10;;;6522:36;;;6538:18;;:::i;9800:401::-;10002:2;9984:21;;;10041:2;10021:18;;;10014:30;10080:34;10075:2;10060:18;;10053:62;-1:-1:-1;;;10146:2:1;10131:18;;10124:35;10191:3;10176:19;;9800:401::o;10206:399::-;10408:2;10390:21;;;10447:2;10427:18;;;10420:30;10486:34;10481:2;10466:18;;10459:62;-1:-1:-1;;;10552:2:1;10537:18;;10530:33;10595:3;10580:19;;10206:399::o;10610:412::-;10812:2;10794:21;;;10851:2;10831:18;;;10824:30;10890:34;10885:2;10870:18;;10863:62;-1:-1:-1;;;10956:2:1;10941:18;;10934:46;11012:3;10997:19;;10610:412::o;13023:128::-;13090:9;;;13111:11;;;13108:37;;;13125:18;;:::i;13288:127::-;13349:10;13344:3;13340:20;13337:1;13330:31;13380:4;13377:1;13370:15;13404:4;13401:1;13394:15;13420:251;13490:6;13543:2;13531:9;13522:7;13518:23;13514:32;13511:52;;;13559:1;13556;13549:12;13511:52;13591:9;13585:16;13610:31;13635:5;13610:31;:::i;13676:980::-;13938:4;13986:3;13975:9;13971:19;14017:6;14006:9;13999:25;14043:2;14081:6;14076:2;14065:9;14061:18;14054:34;14124:3;14119:2;14108:9;14104:18;14097:31;14148:6;14183;14177:13;14214:6;14206;14199:22;14252:3;14241:9;14237:19;14230:26;;14291:2;14283:6;14279:15;14265:29;;14312:1;14322:195;14336:6;14333:1;14330:13;14322:195;;;14401:13;;-1:-1:-1;;;;;14397:39:1;14385:52;;14492:15;;;;14457:12;;;;14433:1;14351:9;14322:195;;;-1:-1:-1;;;;;;;14573:32:1;;;;14568:2;14553:18;;14546:60;-1:-1:-1;;;14637:3:1;14622:19;14615:35;14534:3;13676:980;-1:-1:-1;;;13676:980:1:o
Swarm Source
ipfs://e8405cb3a054828d10977a523f944fcba8d99537dcdd679cc83bab20fbd4fff2
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.