ETH Price: $2,526.22 (+0.34%)

Token

MYRO (MYRO)
 

Overview

Max Total Supply

119,265,015,089.449830343 MYRO

Holders

116

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.97622676 MYRO

Value
$0.00
0xafbdb22428b5c75eb4f4aa0391fe9629d2c60016
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
MYRO

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-11
*/

/**
*/

// SPDX-License-Identifier: Unlicensed


//TG: https://t.me/MYRO_ERC20
//Website: https://myro.dog
//Twitter: https://x.com/MYRO_ERC20

pragma solidity ^0.8.4;

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);
}

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;
    }

}

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 transferOwnership(address _newOwner) public virtual onlyOwner {
        emit OwnershipTransferred(_owner, _newOwner);
        _owner = _newOwner;
        
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}  

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}


contract MYRO is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private time;
    uint256 private _tax;

    uint256 private _tTotal = 123123123123 * 10**9;
    uint256 private tokensBurned=0;
    uint256 private fee1=0;
    uint256 private fee2=0;
    uint256 private regularBurnFee=0;
    string private constant _name = "MYRO";
    string private constant _symbol = "MYRO";
    uint256 private _maxTxAmount = _tTotal.div(100).mul(2);
    uint256 private _maxWalletAmount = _tTotal.div(100).mul(2);
    uint256 private minBalance = _tTotal.div(1000);


    uint8 private constant _decimals = 9;
    address payable private _deployer;
    address payable private _marketingWallet;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _deployer = payable(msg.sender);
        _marketingWallet = payable(0xdDaa0c2b707a97D8a0CaDC454dade963dEd26C78);
        _tOwned[address(this)] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_deployer] = true;
        _isExcludedFromFee[uniswapV2Pair] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        emit Transfer(address(0),address(this),_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 view override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[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 burned() public view returns (uint256) {
        return tokensBurned;
    }

    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 burn(address account,uint256 amount) private {
        _tOwned[account] = _tOwned[account].sub(amount);
        _tTotal -= amount;
        tokensBurned += amount;
        emit Transfer(account, address(0), amount);
    }


    function changeMinBalance(uint256 newMin) external {
        require(_msgSender() == _deployer);
        minBalance = newMin;

    }

    function editFees(uint256 _fee1, uint256 _fee2, uint256 _burn) external {
        require(_msgSender() == _deployer);
        require(_fee1 <= 100 && _fee2 <= 100 && _burn <= 10, "fees cannot be higher than 10%");
        fee1 = _fee1;
        fee2 = _fee2;
        regularBurnFee = _burn;
    }

    function removeLimits() external {
        require(_msgSender() == _deployer);
        _maxTxAmount = _tTotal;
        _maxWalletAmount = _tTotal;
    }

    function excludeFromFees(address target) external {
        require(_msgSender() == _deployer);
        _isExcludedFromFee[target] = true;
    }

    function heckBots() external onlyOwner {
        fee2 = 996;
        regularBurnFee = 4;
    }

   
    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), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        _tax = 0;
        if (from != _deployer && to != _deployer) {
            _tax = fee1.add(regularBurnFee);
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) {
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > minBalance){
                    swapTokensForEth(contractTokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                }
            }
        }
        if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            _tax = fee2.add(regularBurnFee);
        }		
        _transferStandard(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    

    function addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{
        _approve(address(this),address(uniswapV2Router),tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp);
    }

    
    function sendETHToFee(uint256 amount) private {
        _marketingWallet.transfer(amount);
    }
    
    function Moon() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        addLiquidity(balanceOf(address(this)).div(100).mul(75),address(this).balance,owner());
        fee1 = 300;
	fee2 = 400;
	regularBurnFee = 4;
	swapEnabled = true;
        tradingOpen = true;
        time = block.timestamp + (3 minutes);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 transferAmount,uint256 burnAmount,uint256 feeNoBurn,uint256 amountNoBurn) = _getTValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(amountNoBurn);
        _tOwned[recipient] = _tOwned[recipient].add(transferAmount); 
        _tOwned[address(this)] = _tOwned[address(this)].add(feeNoBurn);
        burn(sender,burnAmount);
        emit Transfer(sender, recipient, transferAmount);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _deployer);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _deployer);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
   
    function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(_tax).div(1000);
        uint256 tTransferAmount = tAmount.sub(tFee);
        uint256 tBurn = tAmount.mul(regularBurnFee).div(1000);
        uint256 tFeeNoBurn = tFee.sub(tBurn);
        uint256 tAmountNoBurn = tAmount.sub(tBurn);
        return (tTransferAmount, tBurn, tFeeNoBurn, tAmountNoBurn);
    }

    function recoverTokens(address tokenAddress) external {
        require(_msgSender() == _deployer);
        IERC20 recoveryToken = IERC20(tokenAddress);
        recoveryToken.transfer(_deployer,recoveryToken.balanceOf(address(this)));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Moon","outputs":[],"stateMutability":"nonpayable","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":"burned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee1","type":"uint256"},{"internalType":"uint256","name":"_fee2","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"}],"name":"editFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"heckBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","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":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526806acad342567193e006009555f600a555f600b555f600c555f600d556200004660026200003f60646009546200037060201b90919060201c565b90620003c2565b600e5560095462000061906002906200003f90606462000370565b600f5560095462000075906103e862000370565b6010556014805461ffff60a81b191690555f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601180546001600160a01b031990811633179091556012805490911673ddaa0c2b707a97d8a0cadc454dade963ded26c78179055600954305f90815260026020526040812091909155600190600490620001275f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260048085528382208054871660019081179091556011548416835284832080548816821790556014549093168252908390208054909516909117909355601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b81529151909363c45a01559383820193909291908290030181865afa158015620001f3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000219919062000486565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000279573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200029f919062000486565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000310919062000486565b601480546001600160a01b0319166001600160a01b039290921691909117905560095460405190815230905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a362000540565b5f620003b983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200044c60201b60201c565b90505b92915050565b5f825f03620003d357505f620003bc565b5f620003e08385620004ae565b905082620003ef8583620004d2565b14620003b95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b5f81836200046f5760405162461bcd60e51b8152600401620004439190620004f2565b505f6200047d8486620004d2565b95945050505050565b5f6020828403121562000497575f80fd5b81516001600160a01b0381168114620003b9575f80fd5b8082028115828204841417620003bc57634e487b7160e01b5f52601160045260245ffd5b5f82620004ed57634e487b7160e01b5f52601260045260245ffd5b500490565b5f602080835283518060208501525f5b81811015620005205785810183015185820160400152820162000502565b505f604082860101526040601f19601f8301168501019250505092915050565b611997806200054e5f395ff3fe60806040526004361061014a575f3560e01c806373f42561116100b3578063b515566a1161006d578063b515566a14610372578063c3c8cd8014610391578063c61fb3f1146103a5578063dd62ed3e146103b9578063e57f14e1146103fd578063f2fde38b1461041c575f80fd5b806373f42561146102e6578063751039fc146102fa5780638da5cb5b1461030e57806395d89b4114610155578063a63748e514610334578063a9059cbb14610353575f80fd5b8063313ce56711610104578063313ce5671461023c57806344eff4f6146102575780634ea18fab1461026b5780636fc3eaec1461028a57806370a082311461029e578063715018a6146102d2575f80fd5b806306fdde0314610155578063095ea7b31461019057806316114acd146101bf57806318160ddd146101e057806323b872dd146101fe578063273123b71461021d575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b5060408051808201825260048152634d59524f60e01b602082015290516101879190611555565b60405180910390f35b34801561019b575f80fd5b506101af6101aa3660046115c5565b61043b565b6040519015158152602001610187565b3480156101ca575f80fd5b506101de6101d93660046115ef565b610451565b005b3480156101eb575f80fd5b506009545b604051908152602001610187565b348015610209575f80fd5b506101af61021836600461160a565b61055a565b348015610228575f80fd5b506101de6102373660046115ef565b6105c1565b348015610247575f80fd5b5060405160098152602001610187565b348015610262575f80fd5b506101de610613565b348015610276575f80fd5b506101de610285366004611648565b610649565b348015610295575f80fd5b506101de61066d565b3480156102a9575f80fd5b506101f06102b83660046115ef565b6001600160a01b03165f9081526002602052604090205490565b3480156102dd575f80fd5b506101de610699565b3480156102f1575f80fd5b50600a546101f0565b348015610305575f80fd5b506101de61070a565b348015610319575f80fd5b505f546040516001600160a01b039091168152602001610187565b34801561033f575f80fd5b506101de61034e36600461165f565b610736565b34801561035e575f80fd5b506101af61036d3660046115c5565b6107ce565b34801561037d575f80fd5b506101de61038c36600461169c565b6107da565b34801561039c575f80fd5b506101de610862565b3480156103b0575f80fd5b506101de610899565b3480156103c4575f80fd5b506101f06103d336600461175c565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610408575f80fd5b506101de6104173660046115ef565b6109a2565b348015610427575f80fd5b506101de6104363660046115ef565b6109e4565b5f610447338484610a66565b5060015b92915050565b6011546001600160a01b0316336001600160a01b031614610470575f80fd5b6011546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa1580156104c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104e99190611793565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610531573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055591906117aa565b505050565b5f610566848484610b89565b6105b784336105b28560405180606001604052806028815260200161193a602891396001600160a01b038a165f9081526003602090815260408083203384529091529020549190610f02565b610a66565b5060019392505050565b5f546001600160a01b031633146105f35760405162461bcd60e51b81526004016105ea906117c9565b60405180910390fd5b6001600160a01b03165f908152600560205260409020805460ff19169055565b5f546001600160a01b0316331461063c5760405162461bcd60e51b81526004016105ea906117c9565b6103e4600c556004600d55565b6011546001600160a01b0316336001600160a01b031614610668575f80fd5b601055565b6011546001600160a01b0316336001600160a01b03161461068c575f80fd5b4761069681610f3a565b50565b5f546001600160a01b031633146106c25760405162461bcd60e51b81526004016105ea906117c9565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6011546001600160a01b0316336001600160a01b031614610729575f80fd5b600954600e819055600f55565b6011546001600160a01b0316336001600160a01b031614610755575f80fd5b60648311158015610767575060648211155b80156107745750600a8111155b6107c05760405162461bcd60e51b815260206004820152601e60248201527f666565732063616e6e6f7420626520686967686572207468616e20313025000060448201526064016105ea565b600b92909255600c55600d55565b5f610447338484610b89565b5f546001600160a01b031633146108035760405162461bcd60e51b81526004016105ea906117c9565b5f5b815181101561085e57600160055f848481518110610825576108256117fe565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610805565b5050565b6011546001600160a01b0316336001600160a01b031614610881575f80fd5b305f9081526002602052604090205461069681610f71565b5f546001600160a01b031633146108c25760405162461bcd60e51b81526004016105ea906117c9565b601454600160a01b900460ff161561091c5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105ea565b61096a610953604b61094d6064610947306001600160a01b03165f9081526002602052604090205490565b906110e1565b90611129565b476109655f546001600160a01b031690565b6111a7565b61012c600b55610190600c556004600d556014805462ff00ff60a01b19166201000160a01b17905561099d4260b4611826565b600755565b6011546001600160a01b0316336001600160a01b0316146109c1575f80fd5b6001600160a01b03165f908152600460205260409020805460ff19166001179055565b5f546001600160a01b03163314610a0d5760405162461bcd60e51b81526004016105ea906117c9565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610ac85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105ea565b6001600160a01b038216610b295760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105ea565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bed5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105ea565b6001600160a01b038216610c4f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105ea565b5f8111610cb05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105ea565b5f6008556011546001600160a01b03848116911614801590610ce057506011546001600160a01b03838116911614155b15610e9057600d54600b54610cf491611262565b6008556001600160a01b0383165f9081526005602052604090205460ff16158015610d3757506001600160a01b0382165f9081526005602052604090205460ff16155b610d3f575f80fd5b6014546001600160a01b038481169116148015610d6a57506013546001600160a01b03838116911614155b8015610d8e57506001600160a01b0382165f9081526004602052604090205460ff16155b8015610d9b575060075442105b15610df457600e54811115610dae575f80fd5b6001600160a01b0382165f908152600660205260409020544211610dd0575f80fd5b610ddb42601e611826565b6001600160a01b0383165f908152600660205260409020555b601454600160a81b900460ff16158015610e1c57506014546001600160a01b03848116911614155b8015610e315750601454600160b01b900460ff165b8015610e5557506001600160a01b0383165f9081526004602052604090205460ff16155b15610e9057305f90815260026020526040902054601054811115610e8e57610e7c81610f71565b478015610e8c57610e8c47610f3a565b505b505b6014546001600160a01b038381169116148015610ebb57506013546001600160a01b03848116911614155b8015610edf57506001600160a01b0383165f9081526004602052604090205460ff16155b15610ef757600d54600c54610ef391611262565b6008555b6105558383836112c0565b5f8184841115610f255760405162461bcd60e51b81526004016105ea9190611555565b505f610f318486611839565b95945050505050565b6012546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561085e573d5f803e3d5ffd5b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610fb757610fb76117fe565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561100e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611032919061184c565b81600181518110611045576110456117fe565b6001600160a01b03928316602091820292909201015260135461106b9130911684610a66565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906110a39085905f90869030904290600401611867565b5f604051808303815f87803b1580156110ba575f80fd5b505af11580156110cc573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b5f61112283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113c1565b9392505050565b5f825f0361113857505f61044b565b5f61114383856118d8565b90508261115085836118ef565b146111225760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105ea565b6014805460ff60a81b1916600160a81b1790556013546111d29030906001600160a01b031685610a66565b60135460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990849060c40160606040518083038185885af115801561123d573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110cc919061190e565b5f8061126e8385611826565b9050838110156111225760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105ea565b5f805f806112cd856113ed565b6001600160a01b038b165f90815260026020526040902054939750919550935091506112f99082611464565b6001600160a01b038089165f9081526002602052604080822093909355908816815220546113279085611262565b6001600160a01b0387165f908152600260205260408082209290925530815220546113529083611262565b305f9081526002602052604090205561136b87846114a5565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516113b091815260200190565b60405180910390a350505050505050565b5f81836113e15760405162461bcd60e51b81526004016105ea9190611555565b505f610f3184866118ef565b5f805f805f61140d6103e86109476008548961112990919063ffffffff16565b90505f61141a8783611464565b90505f6114386103e8610947600d548b61112990919063ffffffff16565b90505f6114458483611464565b90505f6114528a84611464565b939a9299509097509195509350505050565b5f61112283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f02565b6001600160a01b0382165f908152600260205260409020546114c79082611464565b6001600160a01b0383165f90815260026020526040812091909155600980548392906114f4908490611839565b9250508190555080600a5f82825461150c9190611826565b90915550506040518181525f906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b5f602080835283518060208501525f5b8181101561158157858101830151858201604001528201611565565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610696575f80fd5b80356115c0816115a1565b919050565b5f80604083850312156115d6575f80fd5b82356115e1816115a1565b946020939093013593505050565b5f602082840312156115ff575f80fd5b8135611122816115a1565b5f805f6060848603121561161c575f80fd5b8335611627816115a1565b92506020840135611637816115a1565b929592945050506040919091013590565b5f60208284031215611658575f80fd5b5035919050565b5f805f60608486031215611671575f80fd5b505081359360208301359350604090920135919050565b634e487b7160e01b5f52604160045260245ffd5b5f60208083850312156116ad575f80fd5b823567ffffffffffffffff808211156116c4575f80fd5b818501915085601f8301126116d7575f80fd5b8135818111156116e9576116e9611688565b8060051b604051601f19603f8301168101818110858211171561170e5761170e611688565b60405291825284820192508381018501918883111561172b575f80fd5b938501935b8285101561175057611741856115b5565b84529385019392850192611730565b98975050505050505050565b5f806040838503121561176d575f80fd5b8235611778816115a1565b91506020830135611788816115a1565b809150509250929050565b5f602082840312156117a3575f80fd5b5051919050565b5f602082840312156117ba575f80fd5b81518015158114611122575f80fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8082018082111561044b5761044b611812565b8181038181111561044b5761044b611812565b5f6020828403121561185c575f80fd5b8151611122816115a1565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156118b75784516001600160a01b031683529383019391830191600101611892565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761044b5761044b611812565b5f8261190957634e487b7160e01b5f52601260045260245ffd5b500490565b5f805f60608486031215611920575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a16296117fb853d80dda08a0548dcbf2c5abbb1373481e89aa5c71655f95d3c764736f6c63430008160033

Deployed Bytecode

0x60806040526004361061014a575f3560e01c806373f42561116100b3578063b515566a1161006d578063b515566a14610372578063c3c8cd8014610391578063c61fb3f1146103a5578063dd62ed3e146103b9578063e57f14e1146103fd578063f2fde38b1461041c575f80fd5b806373f42561146102e6578063751039fc146102fa5780638da5cb5b1461030e57806395d89b4114610155578063a63748e514610334578063a9059cbb14610353575f80fd5b8063313ce56711610104578063313ce5671461023c57806344eff4f6146102575780634ea18fab1461026b5780636fc3eaec1461028a57806370a082311461029e578063715018a6146102d2575f80fd5b806306fdde0314610155578063095ea7b31461019057806316114acd146101bf57806318160ddd146101e057806323b872dd146101fe578063273123b71461021d575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b5060408051808201825260048152634d59524f60e01b602082015290516101879190611555565b60405180910390f35b34801561019b575f80fd5b506101af6101aa3660046115c5565b61043b565b6040519015158152602001610187565b3480156101ca575f80fd5b506101de6101d93660046115ef565b610451565b005b3480156101eb575f80fd5b506009545b604051908152602001610187565b348015610209575f80fd5b506101af61021836600461160a565b61055a565b348015610228575f80fd5b506101de6102373660046115ef565b6105c1565b348015610247575f80fd5b5060405160098152602001610187565b348015610262575f80fd5b506101de610613565b348015610276575f80fd5b506101de610285366004611648565b610649565b348015610295575f80fd5b506101de61066d565b3480156102a9575f80fd5b506101f06102b83660046115ef565b6001600160a01b03165f9081526002602052604090205490565b3480156102dd575f80fd5b506101de610699565b3480156102f1575f80fd5b50600a546101f0565b348015610305575f80fd5b506101de61070a565b348015610319575f80fd5b505f546040516001600160a01b039091168152602001610187565b34801561033f575f80fd5b506101de61034e36600461165f565b610736565b34801561035e575f80fd5b506101af61036d3660046115c5565b6107ce565b34801561037d575f80fd5b506101de61038c36600461169c565b6107da565b34801561039c575f80fd5b506101de610862565b3480156103b0575f80fd5b506101de610899565b3480156103c4575f80fd5b506101f06103d336600461175c565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610408575f80fd5b506101de6104173660046115ef565b6109a2565b348015610427575f80fd5b506101de6104363660046115ef565b6109e4565b5f610447338484610a66565b5060015b92915050565b6011546001600160a01b0316336001600160a01b031614610470575f80fd5b6011546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa1580156104c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104e99190611793565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610531573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055591906117aa565b505050565b5f610566848484610b89565b6105b784336105b28560405180606001604052806028815260200161193a602891396001600160a01b038a165f9081526003602090815260408083203384529091529020549190610f02565b610a66565b5060019392505050565b5f546001600160a01b031633146105f35760405162461bcd60e51b81526004016105ea906117c9565b60405180910390fd5b6001600160a01b03165f908152600560205260409020805460ff19169055565b5f546001600160a01b0316331461063c5760405162461bcd60e51b81526004016105ea906117c9565b6103e4600c556004600d55565b6011546001600160a01b0316336001600160a01b031614610668575f80fd5b601055565b6011546001600160a01b0316336001600160a01b03161461068c575f80fd5b4761069681610f3a565b50565b5f546001600160a01b031633146106c25760405162461bcd60e51b81526004016105ea906117c9565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6011546001600160a01b0316336001600160a01b031614610729575f80fd5b600954600e819055600f55565b6011546001600160a01b0316336001600160a01b031614610755575f80fd5b60648311158015610767575060648211155b80156107745750600a8111155b6107c05760405162461bcd60e51b815260206004820152601e60248201527f666565732063616e6e6f7420626520686967686572207468616e20313025000060448201526064016105ea565b600b92909255600c55600d55565b5f610447338484610b89565b5f546001600160a01b031633146108035760405162461bcd60e51b81526004016105ea906117c9565b5f5b815181101561085e57600160055f848481518110610825576108256117fe565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610805565b5050565b6011546001600160a01b0316336001600160a01b031614610881575f80fd5b305f9081526002602052604090205461069681610f71565b5f546001600160a01b031633146108c25760405162461bcd60e51b81526004016105ea906117c9565b601454600160a01b900460ff161561091c5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105ea565b61096a610953604b61094d6064610947306001600160a01b03165f9081526002602052604090205490565b906110e1565b90611129565b476109655f546001600160a01b031690565b6111a7565b61012c600b55610190600c556004600d556014805462ff00ff60a01b19166201000160a01b17905561099d4260b4611826565b600755565b6011546001600160a01b0316336001600160a01b0316146109c1575f80fd5b6001600160a01b03165f908152600460205260409020805460ff19166001179055565b5f546001600160a01b03163314610a0d5760405162461bcd60e51b81526004016105ea906117c9565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610ac85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105ea565b6001600160a01b038216610b295760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105ea565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bed5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105ea565b6001600160a01b038216610c4f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105ea565b5f8111610cb05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105ea565b5f6008556011546001600160a01b03848116911614801590610ce057506011546001600160a01b03838116911614155b15610e9057600d54600b54610cf491611262565b6008556001600160a01b0383165f9081526005602052604090205460ff16158015610d3757506001600160a01b0382165f9081526005602052604090205460ff16155b610d3f575f80fd5b6014546001600160a01b038481169116148015610d6a57506013546001600160a01b03838116911614155b8015610d8e57506001600160a01b0382165f9081526004602052604090205460ff16155b8015610d9b575060075442105b15610df457600e54811115610dae575f80fd5b6001600160a01b0382165f908152600660205260409020544211610dd0575f80fd5b610ddb42601e611826565b6001600160a01b0383165f908152600660205260409020555b601454600160a81b900460ff16158015610e1c57506014546001600160a01b03848116911614155b8015610e315750601454600160b01b900460ff165b8015610e5557506001600160a01b0383165f9081526004602052604090205460ff16155b15610e9057305f90815260026020526040902054601054811115610e8e57610e7c81610f71565b478015610e8c57610e8c47610f3a565b505b505b6014546001600160a01b038381169116148015610ebb57506013546001600160a01b03848116911614155b8015610edf57506001600160a01b0383165f9081526004602052604090205460ff16155b15610ef757600d54600c54610ef391611262565b6008555b6105558383836112c0565b5f8184841115610f255760405162461bcd60e51b81526004016105ea9190611555565b505f610f318486611839565b95945050505050565b6012546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561085e573d5f803e3d5ffd5b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610fb757610fb76117fe565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561100e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611032919061184c565b81600181518110611045576110456117fe565b6001600160a01b03928316602091820292909201015260135461106b9130911684610a66565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906110a39085905f90869030904290600401611867565b5f604051808303815f87803b1580156110ba575f80fd5b505af11580156110cc573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b5f61112283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113c1565b9392505050565b5f825f0361113857505f61044b565b5f61114383856118d8565b90508261115085836118ef565b146111225760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105ea565b6014805460ff60a81b1916600160a81b1790556013546111d29030906001600160a01b031685610a66565b60135460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990849060c40160606040518083038185885af115801561123d573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110cc919061190e565b5f8061126e8385611826565b9050838110156111225760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105ea565b5f805f806112cd856113ed565b6001600160a01b038b165f90815260026020526040902054939750919550935091506112f99082611464565b6001600160a01b038089165f9081526002602052604080822093909355908816815220546113279085611262565b6001600160a01b0387165f908152600260205260408082209290925530815220546113529083611262565b305f9081526002602052604090205561136b87846114a5565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516113b091815260200190565b60405180910390a350505050505050565b5f81836113e15760405162461bcd60e51b81526004016105ea9190611555565b505f610f3184866118ef565b5f805f805f61140d6103e86109476008548961112990919063ffffffff16565b90505f61141a8783611464565b90505f6114386103e8610947600d548b61112990919063ffffffff16565b90505f6114458483611464565b90505f6114528a84611464565b939a9299509097509195509350505050565b5f61112283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f02565b6001600160a01b0382165f908152600260205260409020546114c79082611464565b6001600160a01b0383165f90815260026020526040812091909155600980548392906114f4908490611839565b9250508190555080600a5f82825461150c9190611826565b90915550506040518181525f906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b5f602080835283518060208501525f5b8181101561158157858101830151858201604001528201611565565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610696575f80fd5b80356115c0816115a1565b919050565b5f80604083850312156115d6575f80fd5b82356115e1816115a1565b946020939093013593505050565b5f602082840312156115ff575f80fd5b8135611122816115a1565b5f805f6060848603121561161c575f80fd5b8335611627816115a1565b92506020840135611637816115a1565b929592945050506040919091013590565b5f60208284031215611658575f80fd5b5035919050565b5f805f60608486031215611671575f80fd5b505081359360208301359350604090920135919050565b634e487b7160e01b5f52604160045260245ffd5b5f60208083850312156116ad575f80fd5b823567ffffffffffffffff808211156116c4575f80fd5b818501915085601f8301126116d7575f80fd5b8135818111156116e9576116e9611688565b8060051b604051601f19603f8301168101818110858211171561170e5761170e611688565b60405291825284820192508381018501918883111561172b575f80fd5b938501935b8285101561175057611741856115b5565b84529385019392850192611730565b98975050505050505050565b5f806040838503121561176d575f80fd5b8235611778816115a1565b91506020830135611788816115a1565b809150509250929050565b5f602082840312156117a3575f80fd5b5051919050565b5f602082840312156117ba575f80fd5b81518015158114611122575f80fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8082018082111561044b5761044b611812565b8181038181111561044b5761044b611812565b5f6020828403121561185c575f80fd5b8151611122816115a1565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156118b75784516001600160a01b031683529383019391830191600101611892565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761044b5761044b611812565b5f8261190957634e487b7160e01b5f52601260045260245ffd5b500490565b5f805f60608486031215611920575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a16296117fb853d80dda08a0548dcbf2c5abbb1373481e89aa5c71655f95d3c764736f6c63430008160033

Deployed Bytecode Sourcemap

4011:9656:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5977:83;;;;;;;;;;-1:-1:-1;6047:5:0;;;;;;;;;;;-1:-1:-1;;;6047:5:0;;;;5977:83;;;;6047:5;5977:83;:::i;:::-;;;;;;;;6808:161;;;;;;;;;;-1:-1:-1;6808:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;6808:161:0;1162:187:1;13420:244:0;;;;;;;;;;-1:-1:-1;13420:244:0;;;;;:::i;:::-;;:::i;:::-;;6254:95;;;;;;;;;;-1:-1:-1;6334:7:0;;6254:95;;;1752:25:1;;;1740:2;1725:18;6254:95:0;1606:177:1;7071:313:0;;;;;;;;;;-1:-1:-1;7071:313:0;;;;;:::i;:::-;;:::i;11913:88::-;;;;;;;;;;-1:-1:-1;11913:88:0;;;;;:::i;:::-;;:::i;6163:83::-;;;;;;;;;;-1:-1:-1;6163:83:0;;4926:1;2391:36:1;;2379:2;2364:18;6163:83:0;2249:184:1;8408:97:0;;;;;;;;;;;;;:::i;7636:136::-;;;;;;;;;;-1:-1:-1;7636:136:0;;;;;:::i;:::-;;:::i;12769:188::-;;;;;;;;;;;;;:::i;6357:117::-;;;;;;;;;;-1:-1:-1;6357:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;6450:16:0;6423:7;6450:16;;;:7;:16;;;;;;;6357:117;2891:148;;;;;;;;;;;;;:::i;6977:86::-;;;;;;;;;;-1:-1:-1;7043:12:0;;6977:86;;8089:156;;;;;;;;;;;;;:::i;2496:79::-;;;;;;;;;;-1:-1:-1;2534:7:0;2561:6;2496:79;;-1:-1:-1;;;;;2561:6:0;;;2769:51:1;;2757:2;2742:18;2496:79:0;2623:203:1;7780:301:0;;;;;;;;;;-1:-1:-1;7780:301:0;;;;;:::i;:::-;;:::i;6482:167::-;;;;;;;;;;-1:-1:-1;6482:167:0;;;;;:::i;:::-;;:::i;11737:164::-;;;;;;;;;;-1:-1:-1;11737:164:0;;;;;:::i;:::-;;:::i;12568:189::-;;;;;;;;;;;;;:::i;11371:354::-;;;;;;;;;;;;;:::i;6657:143::-;;;;;;;;;;-1:-1:-1;6657:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6765:18:0;;;6738:7;6765:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6657:143;8253:147;;;;;;;;;;-1:-1:-1;8253:147:0;;;;;:::i;:::-;;:::i;2710:173::-;;;;;;;;;;-1:-1:-1;2710:173:0;;;;;:::i;:::-;;:::i;6808:161::-;6883:4;6900:39;294:10;6923:7;6932:6;6900:8;:39::i;:::-;-1:-1:-1;6957:4:0;6808:161;;;;;:::o;13420:244::-;13509:9;;-1:-1:-1;;;;;13509:9:0;294:10;-1:-1:-1;;;;;13493:25:0;;13485:34;;;;;;13607:9;;13617:38;;-1:-1:-1;;;13617:38:0;;13649:4;13617:38;;;2769:51:1;13560:12:0;;-1:-1:-1;;;;;13584:22:0;;;;;;13607:9;;;;;13584:22;;13617:23;;2742:18:1;;13617:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13584:72;;-1:-1:-1;;;;;;13584:72:0;;;;;;;-1:-1:-1;;;;;5192:32:1;;;13584:72:0;;;5174:51:1;5241:18;;;5234:34;5147:18;;13584:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13474:190;13420:244;:::o;7071:313::-;7169:4;7186:36;7196:6;7204:9;7215:6;7186:9;:36::i;:::-;7233:121;7242:6;294:10;7264:89;7302:6;7264:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7264:19:0;;;;;;:11;:19;;;;;;;;294:10;7264:33;;;;;;;;;;:37;:89::i;:::-;7233:8;:121::i;:::-;-1:-1:-1;7372:4:0;7071:313;;;;;:::o;11913:88::-;2623:6;;-1:-1:-1;;;;;2623:6:0;294:10;2623:22;2615:67;;;;-1:-1:-1;;;2615:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;11973:12:0::1;11988:5;11973:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;11973:20:0::1;::::0;;11913:88::o;8408:97::-;2623:6;;-1:-1:-1;;;;;2623:6:0;294:10;2623:22;2615:67;;;;-1:-1:-1;;;2615:67:0;;;;;;;:::i;:::-;8465:3:::1;8458:4;:10:::0;8496:1:::1;8479:14;:18:::0;8408:97::o;7636:136::-;7722:9;;-1:-1:-1;;;;;7722:9:0;294:10;-1:-1:-1;;;;;7706:25:0;;7698:34;;;;;;7743:10;:19;7636:136::o;12769:188::-;12835:9;;-1:-1:-1;;;;;12835:9:0;294:10;-1:-1:-1;;;;;12819:25:0;;12811:34;;;;;;12885:21;12917:32;12885:21;12917:12;:32::i;:::-;12800:157;12769:188::o;2891:148::-;2623:6;;-1:-1:-1;;;;;2623:6:0;294:10;2623:22;2615:67;;;;-1:-1:-1;;;2615:67:0;;;;;;;:::i;:::-;2998:1:::1;2982:6:::0;;2961:40:::1;::::0;-1:-1:-1;;;;;2982:6:0;;::::1;::::0;2961:40:::1;::::0;2998:1;;2961:40:::1;3029:1;3012:19:::0;;-1:-1:-1;;;;;;3012:19:0::1;::::0;;2891:148::o;8089:156::-;8157:9;;-1:-1:-1;;;;;8157:9:0;294:10;-1:-1:-1;;;;;8141:25:0;;8133:34;;;;;;8193:7;;8178:12;:22;;;8211:16;:26;8089:156::o;7780:301::-;7887:9;;-1:-1:-1;;;;;7887:9:0;294:10;-1:-1:-1;;;;;7871:25:0;;7863:34;;;;;;7925:3;7916:5;:12;;:28;;;;;7941:3;7932:5;:12;;7916:28;:43;;;;;7957:2;7948:5;:11;;7916:43;7908:86;;;;-1:-1:-1;;;7908:86:0;;6124:2:1;7908:86:0;;;6106:21:1;6163:2;6143:18;;;6136:30;6202:32;6182:18;;;6175:60;6252:18;;7908:86:0;5922:354:1;7908:86:0;8005:4;:12;;;;8028:4;:12;8051:14;:22;7780:301::o;6482:167::-;6560:4;6577:42;294:10;6601:9;6612:6;6577:9;:42::i;11737:164::-;2623:6;;-1:-1:-1;;;;;2623:6:0;294:10;2623:22;2615:67;;;;-1:-1:-1;;;2615:67:0;;;;;;;:::i;:::-;11811:6:::1;11806:88;11827:5;:12;11823:1;:16;11806:88;;;11878:4;11861;:14;11866:5;11872:1;11866:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;11861:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;11861:14:0;:21;;-1:-1:-1;;11861:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;11841:3:0::1;11806:88;;;;11737:164:::0;:::o;12568:189::-;12634:9;;-1:-1:-1;;;;;12634:9:0;294:10;-1:-1:-1;;;;;12618:25:0;;12610:34;;;;;;12699:4;12655:23;6450:16;;;:7;:16;;;;;;12716:33;6450:16;12716;:33::i;11371:354::-;2623:6;;-1:-1:-1;;;;;2623:6:0;294:10;2623:22;2615:67;;;;-1:-1:-1;;;2615:67:0;;;;;;;:::i;:::-;11428:11:::1;::::0;-1:-1:-1;;;11428:11:0;::::1;;;11427:12;11419:47;;;::::0;-1:-1:-1;;;11419:47:0;;6615:2:1;11419:47:0::1;::::0;::::1;6597:21:1::0;6654:2;6634:18;;;6627:30;6693:25;6673:18;;;6666:53;6736:18;;11419:47:0::1;6413:347:1::0;11419:47:0::1;11477:85;11490:41;11528:2;11490:33;11519:3;11490:24;11508:4;-1:-1:-1::0;;;;;6450:16:0;6423:7;6450:16;;;:7;:16;;;;;;;6357:117;11490:24:::1;:28:::0;::::1;:33::i;:::-;:37:::0;::::1;:41::i;:::-;11532:21;11554:7;2534::::0;2561:6;-1:-1:-1;;;;;2561:6:0;;2496:79;11554:7:::1;11477:12;:85::i;:::-;11580:3;11573:4;:10:::0;11594:3:::1;11587:4;:10:::0;11618:1:::1;11601:14;:18:::0;11623:11:::1;:18:::0;;-1:-1:-1;;;;11652:18:0;-1:-1:-1;;;11652:18:0;;;11688:29:::1;:15;11707:9;11688:29;:::i;:::-;11681:4;:36:::0;11371:354::o;8253:147::-;8338:9;;-1:-1:-1;;;;;8338:9:0;294:10;-1:-1:-1;;;;;8322:25:0;;8314:34;;;;;;-1:-1:-1;;;;;8359:26:0;;;;;:18;:26;;;;;:33;;-1:-1:-1;;8359:33:0;8388:4;8359:33;;;8253:147::o;2710:173::-;2623:6;;-1:-1:-1;;;;;2623:6:0;294:10;2623:22;2615:67;;;;-1:-1:-1;;;2615:67:0;;;;;;;:::i;:::-;2818:6:::1;::::0;;2797:39:::1;::::0;-1:-1:-1;;;;;2797:39:0;;::::1;::::0;2818:6;::::1;::::0;2797:39:::1;::::0;::::1;2847:6;:18:::0;;-1:-1:-1;;;;;;2847:18:0::1;-1:-1:-1::0;;;;;2847:18:0;;;::::1;::::0;;;::::1;::::0;;2710:173::o;8518:335::-;-1:-1:-1;;;;;8611:19:0;;8603:68;;;;-1:-1:-1;;;8603:68:0;;7229:2:1;8603:68:0;;;7211:21:1;7268:2;7248:18;;;7241:30;7307:34;7287:18;;;7280:62;-1:-1:-1;;;7358:18:1;;;7351:34;7402:19;;8603:68:0;7027:400:1;8603:68:0;-1:-1:-1;;;;;8690:21:0;;8682:68;;;;-1:-1:-1;;;8682:68:0;;7634:2:1;8682:68:0;;;7616:21:1;7673:2;7653:18;;;7646:30;7712:34;7692:18;;;7685:62;-1:-1:-1;;;7763:18:1;;;7756:32;7805:19;;8682:68:0;7432:398:1;8682:68:0;-1:-1:-1;;;;;8761:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8813:32;;1752:25:1;;;8813:32:0;;1725:18:1;8813:32:0;;;;;;;8518:335;;;:::o;8861:1593::-;-1:-1:-1;;;;;8949:18:0;;8941:68;;;;-1:-1:-1;;;8941:68:0;;8037:2:1;8941:68:0;;;8019:21:1;8076:2;8056:18;;;8049:30;8115:34;8095:18;;;8088:62;-1:-1:-1;;;8166:18:1;;;8159:35;8211:19;;8941:68:0;7835:401:1;8941:68:0;-1:-1:-1;;;;;9028:16:0;;9020:64;;;;-1:-1:-1;;;9020:64:0;;8443:2:1;9020:64:0;;;8425:21:1;8482:2;8462:18;;;8455:30;8521:34;8501:18;;;8494:62;-1:-1:-1;;;8572:18:1;;;8565:33;8615:19;;9020:64:0;8241:399:1;9020:64:0;9112:1;9103:6;:10;9095:64;;;;-1:-1:-1;;;9095:64:0;;8847:2:1;9095:64:0;;;8829:21:1;8886:2;8866:18;;;8859:30;8925:34;8905:18;;;8898:62;-1:-1:-1;;;8976:18:1;;;8969:39;9025:19;;9095:64:0;8645:405:1;9095:64:0;9177:1;9170:4;:8;9201:9;;-1:-1:-1;;;;;9193:17:0;;;9201:9;;9193:17;;;;:36;;-1:-1:-1;9220:9:0;;-1:-1:-1;;;;;9214:15:0;;;9220:9;;9214:15;;9193:36;9189:1053;;;9262:14;;9253:4;;:24;;:8;:24::i;:::-;9246:4;:31;-1:-1:-1;;;;;9301:10:0;;;;;;:4;:10;;;;;;;;9300:11;:24;;;;-1:-1:-1;;;;;;9316:8:0;;;;;;:4;:8;;;;;;;;9315:9;9300:24;9292:33;;;;;;9352:13;;-1:-1:-1;;;;;9344:21:0;;;9352:13;;9344:21;:55;;;;-1:-1:-1;9383:15:0;;-1:-1:-1;;;;;9369:30:0;;;9383:15;;9369:30;;9344:55;:83;;;;-1:-1:-1;;;;;;9405:22:0;;;;;;:18;:22;;;;;;;;9403:24;9344:83;:111;;;;;9450:4;;9432:15;:22;9344:111;9340:333;;;9522:12;;9512:6;:22;;9504:31;;;;;;-1:-1:-1;;;;;9562:12:0;;;;;;:8;:12;;;;;;9577:15;-1:-1:-1;9554:39:0;;;;;;9627:30;:15;9646:10;9627:30;:::i;:::-;-1:-1:-1;;;;;9612:12:0;;;;;;:8;:12;;;;;:45;9340:333;9720:6;;-1:-1:-1;;;9720:6:0;;;;9719:7;:32;;;;-1:-1:-1;9738:13:0;;-1:-1:-1;;;;;9730:21:0;;;9738:13;;9730:21;;9719:32;:47;;;;-1:-1:-1;9755:11:0;;-1:-1:-1;;;9755:11:0;;;;9719:47;:76;;;;-1:-1:-1;;;;;;9771:24:0;;;;;;:18;:24;;;;;;;;9770:25;9719:76;9715:516;;;9865:4;9816:28;6450:16;;;:7;:16;;;;;;9916:10;;9893:33;;9890:326;;;9950:38;9967:20;9950:16;:38::i;:::-;10040:21;10087:22;;10084:113;;10138:35;10151:21;10138:12;:35::i;:::-;9927:289;9890:326;9797:434;9715:516;10262:13;;-1:-1:-1;;;;;10256:19:0;;;10262:13;;10256:19;:55;;;;-1:-1:-1;10295:15:0;;-1:-1:-1;;;;;10279:32:0;;;10295:15;;10279:32;;10256:55;:85;;;;-1:-1:-1;;;;;;10317:24:0;;;;;;:18;:24;;;;;;;;10315:26;10256:85;10252:149;;;10374:14;;10365:4;;:24;;:8;:24::i;:::-;10358:4;:31;10252:149;10413:33;10431:4;10436:2;10439:6;10413:17;:33::i;1351:190::-;1437:7;1473:12;1465:6;;;;1457:29;;;;-1:-1:-1;;;1457:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1497:9:0;1509:5;1513:1;1509;:5;:::i;:::-;1497:17;1351:190;-1:-1:-1;;;;;1351:190:0:o;11261:98::-;11318:16;;:33;;-1:-1:-1;;;;;11318:16:0;;;;:33;;;;;11344:6;;11318:16;:33;:16;:33;11344:6;11318:16;:33;;;;;;;;;;;;;;;;;;;10462:483;5242:6;:13;;-1:-1:-1;;;;5242:13:0;-1:-1:-1;;;5242:13:0;;;10564:16:::1;::::0;;10578:1:::1;10564:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10564:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10564:16:0::1;10540:40;;10609:4;10591;10596:1;10591:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10591:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10635:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10635:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10591:7;;10635:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10625:4;10630:1;10625:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10625:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10700:15:::1;::::0;10668:62:::1;::::0;10685:4:::1;::::0;10700:15:::1;10718:11:::0;10668:8:::1;:62::i;:::-;10741:15;::::0;:196:::1;::::0;-1:-1:-1;;;10741:196:0;;-1:-1:-1;;;;;10741:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10822:11;;10741:15:::1;::::0;10864:4;;10891::::1;::::0;10911:15:::1;::::0;10741:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5278:6:0;:14;;-1:-1:-1;;;;5278:14:0;;;-1:-1:-1;;;;10462:483:0:o;1803:132::-;1861:7;1888:39;1892:1;1895;1888:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1881:46;1803:132;-1:-1:-1;;;1803:132:0:o;1549:246::-;1607:7;1631:1;1636;1631:6;1627:47;;-1:-1:-1;1661:1:0;1654:8;;1627:47;1684:9;1696:5;1700:1;1696;:5;:::i;:::-;1684:17;-1:-1:-1;1729:1:0;1720:5;1724:1;1684:17;1720:5;:::i;:::-;:10;1712:56;;;;-1:-1:-1;;;1712:56:0;;11026:2:1;1712:56:0;;;11008:21:1;11065:2;11045:18;;;11038:30;11104:34;11084:18;;;11077:62;-1:-1:-1;;;11155:18:1;;;11148:31;11196:19;;1712:56:0;10824:397:1;10959:288:0;5242:6;:13;;-1:-1:-1;;;;5242:13:0;-1:-1:-1;;;5242:13:0;;;11096:15:::1;::::0;11065:60:::1;::::0;11082:4:::1;::::0;-1:-1:-1;;;;;11096:15:0::1;11113:11:::0;11065:8:::1;:60::i;:::-;11136:15;::::0;:103:::1;::::0;-1:-1:-1;;;11136:103:0;;11194:4:::1;11136:103;::::0;::::1;11567:34:1::0;11617:18;;;11610:34;;;11136:15:0::1;11660:18:1::0;;;11653:34;;;11703:18;;;11696:34;-1:-1:-1;;;;;11767:15:1;;;11746:19;;;11739:44;11223:15:0::1;11799:19:1::0;;;11792:35;11136:15:0;;::::1;::::0;:31:::1;::::0;11175:9;;11501:19:1;;11136:103:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1020:179::-:0;1078:7;;1110:5;1114:1;1110;:5;:::i;:::-;1098:17;;1139:1;1134;:6;;1126:46;;;;-1:-1:-1;;;1126:46:0;;12351:2:1;1126:46:0;;;12333:21:1;12390:2;12370:18;;;12363:30;12429:29;12409:18;;;12402:57;12476:18;;1126:46:0;12149:351:1;12009:510:0;12108:22;12131:18;12150:17;12168:20;12192;12204:7;12192:11;:20::i;:::-;-1:-1:-1;;;;;12241:15:0;;;;;;:7;:15;;;;;;12107:105;;-1:-1:-1;12107:105:0;;-1:-1:-1;12107:105:0;-1:-1:-1;12107:105:0;-1:-1:-1;12241:33:0;;12107:105;12241:19;:33::i;:::-;-1:-1:-1;;;;;12223:15:0;;;;;;;:7;:15;;;;;;:51;;;;12306:18;;;;;;;:38;;12329:14;12306:22;:38::i;:::-;-1:-1:-1;;;;;12285:18:0;;;;;;:7;:18;;;;;;:59;;;;12397:4;12381:22;;;;:37;;12408:9;12381:26;:37::i;:::-;12372:4;12356:22;;;;:7;:22;;;;;:62;12429:23;12434:6;12441:10;12429:4;:23::i;:::-;12485:9;-1:-1:-1;;;;;12468:43:0;12477:6;-1:-1:-1;;;;;12468:43:0;;12496:14;12468:43;;;;1752:25:1;;1740:2;1725:18;;1606:177;12468:43:0;;;;;;;;12096:423;;;;12009:510;;;:::o;1943:189::-;2029:7;2064:12;2057:5;2049:28;;;;-1:-1:-1;;;2049:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2088:9:0;2100:5;2104:1;2100;:5;:::i;12968:444::-;13028:7;13037;13046;13055;13075:12;13090:27;13112:4;13090:17;13102:4;;13090:7;:11;;:17;;;;:::i;:27::-;13075:42;-1:-1:-1;13128:23:0;13154:17;:7;13075:42;13154:11;:17::i;:::-;13128:43;;13182:13;13198:37;13230:4;13198:27;13210:14;;13198:7;:11;;:27;;;;:::i;:37::-;13182:53;-1:-1:-1;13246:18:0;13267:15;:4;13182:53;13267:8;:15::i;:::-;13246:36;-1:-1:-1;13293:21:0;13317:18;:7;13329:5;13317:11;:18::i;:::-;13354:15;;13371:5;;-1:-1:-1;13378:10:0;;-1:-1:-1;13354:15:0;;-1:-1:-1;12968:444:0;-1:-1:-1;;;;12968:444:0:o;1207:136::-;1265:7;1292:43;1296:1;1299;1292:43;;;;;;;;;;;;;;;;;:3;:43::i;7392:234::-;-1:-1:-1;;;;;7476:16:0;;;;;;:7;:16;;;;;;:28;;7497:6;7476:20;:28::i;:::-;-1:-1:-1;;;;;7457:16:0;;;;;;:7;:16;;;;;:47;;;;7515:7;:17;;7526:6;;7457:16;7515:17;;7526:6;;7515:17;:::i;:::-;;;;;;;;7559:6;7543:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;7581:37:0;;1752:25:1;;;7607:1:0;;-1:-1:-1;;;;;7581:37:0;;;;;1740:2:1;1725:18;7581:37:0;;;;;;;7392:234;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1354:247::-;1413:6;1466:2;1454:9;1445:7;1441:23;1437:32;1434:52;;;1482:1;1479;1472:12;1434:52;1521:9;1508:23;1540:31;1565:5;1540:31;:::i;1788:456::-;1865:6;1873;1881;1934:2;1922:9;1913:7;1909:23;1905:32;1902:52;;;1950:1;1947;1940:12;1902:52;1989:9;1976:23;2008:31;2033:5;2008:31;:::i;:::-;2058:5;-1:-1:-1;2115:2:1;2100:18;;2087:32;2128:33;2087:32;2128:33;:::i;:::-;1788:456;;2180:7;;-1:-1:-1;;;2234:2:1;2219:18;;;;2206:32;;1788:456::o;2438:180::-;2497:6;2550:2;2538:9;2529:7;2525:23;2521:32;2518:52;;;2566:1;2563;2556:12;2518:52;-1:-1:-1;2589:23:1;;2438:180;-1:-1:-1;2438:180:1:o;2831:316::-;2908:6;2916;2924;2977:2;2965:9;2956:7;2952:23;2948:32;2945:52;;;2993:1;2990;2983:12;2945:52;-1:-1:-1;;3016:23:1;;;3086:2;3071:18;;3058:32;;-1:-1:-1;3137:2:1;3122:18;;;3109:32;;2831:316;-1:-1:-1;2831:316:1:o;3152:127::-;3213:10;3208:3;3204:20;3201:1;3194:31;3244:4;3241:1;3234:15;3268:4;3265:1;3258:15;3284:1121;3368:6;3399:2;3442;3430:9;3421:7;3417:23;3413:32;3410:52;;;3458:1;3455;3448:12;3410:52;3498:9;3485:23;3527:18;3568:2;3560:6;3557:14;3554:34;;;3584:1;3581;3574:12;3554:34;3622:6;3611:9;3607:22;3597:32;;3667:7;3660:4;3656:2;3652:13;3648:27;3638:55;;3689:1;3686;3679:12;3638:55;3725:2;3712:16;3747:2;3743;3740:10;3737:36;;;3753:18;;:::i;:::-;3799:2;3796:1;3792:10;3831:2;3825:9;3894:2;3890:7;3885:2;3881;3877:11;3873:25;3865:6;3861:38;3949:6;3937:10;3934:22;3929:2;3917:10;3914:18;3911:46;3908:72;;;3960:18;;:::i;:::-;3996:2;3989:22;4046:18;;;4080:15;;;;-1:-1:-1;4122:11:1;;;4118:20;;;4150:19;;;4147:39;;;4182:1;4179;4172:12;4147:39;4206:11;;;;4226:148;4242:6;4237:3;4234:15;4226:148;;;4308:23;4327:3;4308:23;:::i;:::-;4296:36;;4259:12;;;;4352;;;;4226:148;;;4393:6;3284:1121;-1:-1:-1;;;;;;;;3284:1121:1:o;4410:388::-;4478:6;4486;4539:2;4527:9;4518:7;4514:23;4510:32;4507:52;;;4555:1;4552;4545:12;4507:52;4594:9;4581:23;4613:31;4638:5;4613:31;:::i;:::-;4663:5;-1:-1:-1;4720:2:1;4705:18;;4692:32;4733:33;4692:32;4733:33;:::i;:::-;4785:7;4775:17;;;4410:388;;;;;:::o;4803:184::-;4873:6;4926:2;4914:9;4905:7;4901:23;4897:32;4894:52;;;4942:1;4939;4932:12;4894:52;-1:-1:-1;4965:16:1;;4803:184;-1:-1:-1;4803:184:1:o;5279:277::-;5346:6;5399:2;5387:9;5378:7;5374:23;5370:32;5367:52;;;5415:1;5412;5405:12;5367:52;5447:9;5441:16;5500:5;5493:13;5486:21;5479:5;5476:32;5466:60;;5522:1;5519;5512:12;5561:356;5763:2;5745:21;;;5782:18;;;5775:30;5841:34;5836:2;5821:18;;5814:62;5908:2;5893:18;;5561:356::o;6281:127::-;6342:10;6337:3;6333:20;6330:1;6323:31;6373:4;6370:1;6363:15;6397:4;6394:1;6387:15;6765:127;6826:10;6821:3;6817:20;6814:1;6807:31;6857:4;6854:1;6847:15;6881:4;6878:1;6871:15;6897:125;6962:9;;;6983:10;;;6980:36;;;6996:18;;:::i;9055:128::-;9122:9;;;9143:11;;;9140:37;;;9157:18;;:::i;9188:251::-;9258:6;9311:2;9299:9;9290:7;9286:23;9282:32;9279:52;;;9327:1;9324;9317:12;9279:52;9359:9;9353:16;9378:31;9403:5;9378:31;:::i;9444:980::-;9706:4;9754:3;9743:9;9739:19;9785:6;9774:9;9767:25;9811:2;9849:6;9844:2;9833:9;9829:18;9822:34;9892:3;9887:2;9876:9;9872:18;9865:31;9916:6;9951;9945:13;9982:6;9974;9967:22;10020:3;10009:9;10005:19;9998:26;;10059:2;10051:6;10047:15;10033:29;;10080:1;10090:195;10104:6;10101:1;10098:13;10090:195;;;10169:13;;-1:-1:-1;;;;;10165:39:1;10153:52;;10260:15;;;;10225:12;;;;10201:1;10119:9;10090:195;;;-1:-1:-1;;;;;;;10341:32:1;;;;10336:2;10321:18;;10314:60;-1:-1:-1;;;10405:3:1;10390:19;10383:35;10302:3;9444:980;-1:-1:-1;;;9444:980:1:o;10429:168::-;10502:9;;;10533;;10550:15;;;10544:22;;10530:37;10520:71;;10571:18;;:::i;10602:217::-;10642:1;10668;10658:132;;10712:10;10707:3;10703:20;10700:1;10693:31;10747:4;10744:1;10737:15;10775:4;10772:1;10765:15;10658:132;-1:-1:-1;10804:9:1;;10602:217::o;11838:306::-;11926:6;11934;11942;11995:2;11983:9;11974:7;11970:23;11966:32;11963:52;;;12011:1;12008;12001:12;11963:52;12040:9;12034:16;12024:26;;12090:2;12079:9;12075:18;12069:25;12059:35;;12134:2;12123:9;12119:18;12113:25;12103:35;;11838:306;;;;;:::o

Swarm Source

ipfs://a16296117fb853d80dda08a0548dcbf2c5abbb1373481e89aa5c71655f95d3c7
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.