ETH Price: $3,485.49 (+0.69%)
Gas: 5 Gwei

Token

ETHERNOMICS ($ETHERNOMICS)
 

Overview

Max Total Supply

400,000,000 $ETHERNOMICS

Holders

35

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

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// Telegram: : https://t.me/EthernomicsPortal

// Twitter : https://twitter.com/Ethernomics_

// SPDX-License-Identifier: MIT

/*

Ethernomics will be having a brand new nft token launch partnership. If u think zillamatrix had an awesome launch and 
profit to be made, wait till u see our next partner, personally kycd to the team and launching 2nd Jan.

*/

pragma solidity ^0.8.15;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        EtherDeve[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }

    mapping (address => bool) internal EtherDeve;

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    modifier ETHERNOICSDEPLOYER() {
        require(isETHERNOICSDEPLOYER(msg.sender), "!ETHERNOICSDEPLOYER"); _;
    }

    function isETHERNOICSDEPLOYER(address adr) public view returns (bool) {
        return EtherDeve[adr];
    }

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

contract ETHERNOMICS is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "ETHERNOMICS";
    string private constant _symbol = "$ETHERNOMICS";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 400000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _taxFeeOnBuy = 1;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 1;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping (address => uint256) public _buyMap;
    address payable private _developmentAddress = payable(0x7e836dd72da8769c30d5C92f95a8dA0422313FDb);
    address payable private _marketingAddress = payable(0x7e836dd72da8769c30d5C92f95a8dA0422313FDb);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = true;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = _tTotal;
    uint256 public _maxWalletSize = _tTotal * 49/1000;
    uint256 public _swapTokensAtAmount = 400000000 * 2/1000 * 10**9;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        _isExcludedFromFee[0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "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");

        if (from != owner() && to != owner()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

        _tokenTransfer(from, to, amount, takeFee);
    }

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

    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function EtherNomicsToll(uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public ETHERNOICSDEPLOYER {
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }
}

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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"EtherNomicsToll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isETHERNOICSDEPLOYER","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001a67058d15e176280000600019620003ce565b6200002890600019620003fb565b600755600160098190556000600a819055600b829055600c819055600d829055600e55600f5560118054737e836dd72da8769c30d5c92f95a8da0422313fdb6001600160a01b031991821681179092556012805490911690911790556014805462ffffff60a01b19166201000160a01b17905567058d15e17628000060158190556103e890620000ba90603162000417565b620000c6919062000439565b6016556602d79883d20000601755348015620000e157600080fd5b50600080546001600160a01b03191633908117825580825260026020526040808320805460ff1916600117905551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360009081526003602090815260409182902092909255601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001db919062000450565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000229573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024f919062000450565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200029d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c3919062000450565b601480546001600160a01b0319166001600160a01b039283161790556000805482168152600660209081526040808320805460ff199081166001908117909255308552828520805482168317905560115486168552828520805482168317905560125490951684528184208054861682179055737a250d5630b4cf539739df2c5dacb4c659f2488d84527f8cb3563b79eac8102a826f0dcb81e7e954d7df2b15d07edcb2dd2b236c2078b4805490951617909355915167058d15e176280000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000482565b634e487b7160e01b600052601260045260246000fd5b600082620003e057620003e0620003b8565b500690565b634e487b7160e01b600052601160045260246000fd5b81810381811115620004115762000411620003e5565b92915050565b6000816000190483118215151615620004345762000434620003e5565b500290565b6000826200044b576200044b620003b8565b500490565b6000602082840312156200046357600080fd5b81516001600160a01b03811681146200047b57600080fd5b9392505050565b6117a380620004926000396000f3fe6080604052600436106101395760003560e01c806370a08231116100ab5780638f9a55c01161006f5780638f9a55c01461039057806395d89b41146103a6578063a9059cbb146103db578063c3c8cd80146103fb578063dd62ed3e14610410578063f2fde38b1461045657600080fd5b806370a08231146102fa578063715018a61461031a5780637d1db4a51461032f5780637f2feddc146103455780638da5cb5b1461037257600080fd5b806323b872dd116100fd57806323b872dd1461023a5780632fd689e31461025a578063313ce5671461027057806349bd5a5e1461028c5780635678cd60146102ac5780636fc3eaec146102e557600080fd5b806306fdde0314610145578063095ea7b31461018b5780630be2206a146101bb5780631694505e146101dd57806318160ddd1461021557600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600b81526a45544845524e4f4d49435360a81b60208201525b60405161018291906114dc565b60405180910390f35b34801561019757600080fd5b506101ab6101a636600461153f565b610476565b6040519015158152602001610182565b3480156101c757600080fd5b506101db6101d636600461156b565b61048d565b005b3480156101e957600080fd5b506013546101fd906001600160a01b031681565b6040516001600160a01b039091168152602001610182565b34801561022157600080fd5b5067058d15e1762800005b604051908152602001610182565b34801561024657600080fd5b506101ab61025536600461158d565b6104f2565b34801561026657600080fd5b5061022c60175481565b34801561027c57600080fd5b5060405160098152602001610182565b34801561029857600080fd5b506014546101fd906001600160a01b031681565b3480156102b857600080fd5b506101ab6102c73660046115ce565b6001600160a01b031660009081526002602052604090205460ff1690565b3480156102f157600080fd5b506101db61055b565b34801561030657600080fd5b5061022c6103153660046115ce565b6105a6565b34801561032657600080fd5b506101db6105c8565b34801561033b57600080fd5b5061022c60155481565b34801561035157600080fd5b5061022c6103603660046115ce565b60106020526000908152604090205481565b34801561037e57600080fd5b506000546001600160a01b03166101fd565b34801561039c57600080fd5b5061022c60165481565b3480156103b257600080fd5b5060408051808201909152600c81526b2445544845524e4f4d49435360a01b6020820152610175565b3480156103e757600080fd5b506101ab6103f636600461153f565b61066c565b34801561040757600080fd5b506101db610679565b34801561041c57600080fd5b5061022c61042b3660046115eb565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561046257600080fd5b506101db6104713660046115ce565b6106cd565b60006104833384846107e7565b5060015b92915050565b3360009081526002602052604090205460ff166104e75760405162461bcd60e51b815260206004820152601360248201527210a2aa2422a92727a4a1a9a222a82627aca2a960691b60448201526064015b60405180910390fd5b600991909155600b55565b60006104ff84848461090b565b610551843361054c85604051806060016040528060288152602001611746602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190610dad565b6107e7565b5060019392505050565b6011546001600160a01b0316336001600160a01b0316148061059057506012546001600160a01b0316336001600160a01b0316145b61059957600080fd5b476105a381610de7565b50565b6001600160a01b03811660009081526003602052604081205461048790610e25565b6000546001600160a01b031633146106225760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104de565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061048333848461090b565b6011546001600160a01b0316336001600160a01b031614806106ae57506012546001600160a01b0316336001600160a01b0316145b6106b757600080fd5b60006106c2306105a6565b90506105a381610ea9565b6000546001600160a01b031633146107275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104de565b6001600160a01b03811661078c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104de565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166108495760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104de565b6001600160a01b0382166108aa5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104de565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661096f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104de565b6001600160a01b0382166109d15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104de565b60008111610a335760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104de565b6000546001600160a01b03848116911614801590610a5f57506000546001600160a01b03838116911614155b15610ca657601454600160a01b900460ff16610af8576000546001600160a01b03848116911614610af85760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016104de565b601554811115610b4a5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016104de565b6014546001600160a01b03838116911614610bcf5760165481610b6c846105a6565b610b76919061163a565b10610bcf5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016104de565b6000610bda306105a6565b601754601554919250821015908210610bf35760155491505b808015610c0a5750601454600160a81b900460ff16155b8015610c2457506014546001600160a01b03868116911614155b8015610c395750601454600160b01b900460ff165b8015610c5e57506001600160a01b03851660009081526006602052604090205460ff16155b8015610c8357506001600160a01b03841660009081526006602052604090205460ff16155b15610ca357610c9182610ea9565b478015610ca157610ca147610de7565b505b50505b6001600160a01b03831660009081526006602052604090205460019060ff1680610ce857506001600160a01b03831660009081526006602052604090205460ff165b80610d1a57506014546001600160a01b03858116911614801590610d1a57506014546001600160a01b03848116911614155b15610d2757506000610d9b565b6014546001600160a01b038581169116148015610d5257506013546001600160a01b03848116911614155b15610d5e57600954600d555b6014546001600160a01b038481169116148015610d8957506013546001600160a01b03858116911614155b15610d9b57600a54600c55600b54600d555b610da784848484611023565b50505050565b60008184841115610dd15760405162461bcd60e51b81526004016104de91906114dc565b506000610dde848661164d565b95945050505050565b6012546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610e21573d6000803e3d6000fd5b5050565b6000600754821115610e8c5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104de565b6000610e96611051565b9050610ea28382611074565b9392505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610ef157610ef1611660565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6e9190611676565b81600181518110610f8157610f81611660565b6001600160a01b039283166020918202929092010152601354610fa791309116846107e7565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790610fe0908590600090869030904290600401611693565b600060405180830381600087803b158015610ffa57600080fd5b505af115801561100e573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b80611030576110306110b6565b61103b8484846110e4565b80610da757610da7600e54600c55600f54600d55565b600080600061105e6111db565b909250905061106d8282611074565b9250505090565b6000610ea283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061121b565b600c541580156110c65750600d54155b156110cd57565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806110f687611249565b6001600160a01b038f16600090815260036020526040902054959b5093995091975095509350915061112890876112a6565b6001600160a01b03808b1660009081526003602052604080822093909355908a168152205461115790866112e8565b6001600160a01b03891660009081526003602052604090205561117981611347565b6111838483611391565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516111c891815260200190565b60405180910390a3505050505050505050565b600754600090819067058d15e1762800006111f68282611074565b8210156112125750506007549267058d15e17628000092509050565b90939092509050565b6000818361123c5760405162461bcd60e51b81526004016104de91906114dc565b506000610dde8486611704565b60008060008060008060008060006112668a600c54600d546113b5565b9250925092506000611276611051565b905060008060006112898e87878761140a565b919e509c509a509598509396509194505050505091939550919395565b6000610ea283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dad565b6000806112f5838561163a565b905083811015610ea25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104de565b6000611351611051565b9050600061135f838361145a565b3060009081526003602052604090205490915061137c90826112e8565b30600090815260036020526040902055505050565b60075461139e90836112a6565b6007556008546113ae90826112e8565b6008555050565b60008080806113cf60646113c9898961145a565b90611074565b905060006113e260646113c98a8961145a565b905060006113fa826113f48b866112a6565b906112a6565b9992985090965090945050505050565b6000808080611419888661145a565b90506000611427888761145a565b90506000611435888861145a565b90506000611447826113f486866112a6565b939b939a50919850919650505050505050565b60008260000361146c57506000610487565b60006114788385611726565b9050826114858583611704565b14610ea25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104de565b600060208083528351808285015260005b81811015611509578581018301518582016040015282016114ed565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146105a357600080fd5b6000806040838503121561155257600080fd5b823561155d8161152a565b946020939093013593505050565b6000806040838503121561157e57600080fd5b50508035926020909101359150565b6000806000606084860312156115a257600080fd5b83356115ad8161152a565b925060208401356115bd8161152a565b929592945050506040919091013590565b6000602082840312156115e057600080fd5b8135610ea28161152a565b600080604083850312156115fe57600080fd5b82356116098161152a565b915060208301356116198161152a565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561048757610487611624565b8181038181111561048757610487611624565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561168857600080fd5b8151610ea28161152a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116e35784516001600160a01b0316835293830193918301916001016116be565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261172157634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561174057611740611624565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cfa5e28c9674f8c15dc577234146f09995f43fdd6e6ca82bb00ef8330752468d64736f6c63430008100033

Deployed Bytecode

0x6080604052600436106101395760003560e01c806370a08231116100ab5780638f9a55c01161006f5780638f9a55c01461039057806395d89b41146103a6578063a9059cbb146103db578063c3c8cd80146103fb578063dd62ed3e14610410578063f2fde38b1461045657600080fd5b806370a08231146102fa578063715018a61461031a5780637d1db4a51461032f5780637f2feddc146103455780638da5cb5b1461037257600080fd5b806323b872dd116100fd57806323b872dd1461023a5780632fd689e31461025a578063313ce5671461027057806349bd5a5e1461028c5780635678cd60146102ac5780636fc3eaec146102e557600080fd5b806306fdde0314610145578063095ea7b31461018b5780630be2206a146101bb5780631694505e146101dd57806318160ddd1461021557600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600b81526a45544845524e4f4d49435360a81b60208201525b60405161018291906114dc565b60405180910390f35b34801561019757600080fd5b506101ab6101a636600461153f565b610476565b6040519015158152602001610182565b3480156101c757600080fd5b506101db6101d636600461156b565b61048d565b005b3480156101e957600080fd5b506013546101fd906001600160a01b031681565b6040516001600160a01b039091168152602001610182565b34801561022157600080fd5b5067058d15e1762800005b604051908152602001610182565b34801561024657600080fd5b506101ab61025536600461158d565b6104f2565b34801561026657600080fd5b5061022c60175481565b34801561027c57600080fd5b5060405160098152602001610182565b34801561029857600080fd5b506014546101fd906001600160a01b031681565b3480156102b857600080fd5b506101ab6102c73660046115ce565b6001600160a01b031660009081526002602052604090205460ff1690565b3480156102f157600080fd5b506101db61055b565b34801561030657600080fd5b5061022c6103153660046115ce565b6105a6565b34801561032657600080fd5b506101db6105c8565b34801561033b57600080fd5b5061022c60155481565b34801561035157600080fd5b5061022c6103603660046115ce565b60106020526000908152604090205481565b34801561037e57600080fd5b506000546001600160a01b03166101fd565b34801561039c57600080fd5b5061022c60165481565b3480156103b257600080fd5b5060408051808201909152600c81526b2445544845524e4f4d49435360a01b6020820152610175565b3480156103e757600080fd5b506101ab6103f636600461153f565b61066c565b34801561040757600080fd5b506101db610679565b34801561041c57600080fd5b5061022c61042b3660046115eb565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561046257600080fd5b506101db6104713660046115ce565b6106cd565b60006104833384846107e7565b5060015b92915050565b3360009081526002602052604090205460ff166104e75760405162461bcd60e51b815260206004820152601360248201527210a2aa2422a92727a4a1a9a222a82627aca2a960691b60448201526064015b60405180910390fd5b600991909155600b55565b60006104ff84848461090b565b610551843361054c85604051806060016040528060288152602001611746602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190610dad565b6107e7565b5060019392505050565b6011546001600160a01b0316336001600160a01b0316148061059057506012546001600160a01b0316336001600160a01b0316145b61059957600080fd5b476105a381610de7565b50565b6001600160a01b03811660009081526003602052604081205461048790610e25565b6000546001600160a01b031633146106225760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104de565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061048333848461090b565b6011546001600160a01b0316336001600160a01b031614806106ae57506012546001600160a01b0316336001600160a01b0316145b6106b757600080fd5b60006106c2306105a6565b90506105a381610ea9565b6000546001600160a01b031633146107275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104de565b6001600160a01b03811661078c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104de565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166108495760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104de565b6001600160a01b0382166108aa5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104de565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661096f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104de565b6001600160a01b0382166109d15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104de565b60008111610a335760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104de565b6000546001600160a01b03848116911614801590610a5f57506000546001600160a01b03838116911614155b15610ca657601454600160a01b900460ff16610af8576000546001600160a01b03848116911614610af85760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016104de565b601554811115610b4a5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016104de565b6014546001600160a01b03838116911614610bcf5760165481610b6c846105a6565b610b76919061163a565b10610bcf5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016104de565b6000610bda306105a6565b601754601554919250821015908210610bf35760155491505b808015610c0a5750601454600160a81b900460ff16155b8015610c2457506014546001600160a01b03868116911614155b8015610c395750601454600160b01b900460ff165b8015610c5e57506001600160a01b03851660009081526006602052604090205460ff16155b8015610c8357506001600160a01b03841660009081526006602052604090205460ff16155b15610ca357610c9182610ea9565b478015610ca157610ca147610de7565b505b50505b6001600160a01b03831660009081526006602052604090205460019060ff1680610ce857506001600160a01b03831660009081526006602052604090205460ff165b80610d1a57506014546001600160a01b03858116911614801590610d1a57506014546001600160a01b03848116911614155b15610d2757506000610d9b565b6014546001600160a01b038581169116148015610d5257506013546001600160a01b03848116911614155b15610d5e57600954600d555b6014546001600160a01b038481169116148015610d8957506013546001600160a01b03858116911614155b15610d9b57600a54600c55600b54600d555b610da784848484611023565b50505050565b60008184841115610dd15760405162461bcd60e51b81526004016104de91906114dc565b506000610dde848661164d565b95945050505050565b6012546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610e21573d6000803e3d6000fd5b5050565b6000600754821115610e8c5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104de565b6000610e96611051565b9050610ea28382611074565b9392505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610ef157610ef1611660565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6e9190611676565b81600181518110610f8157610f81611660565b6001600160a01b039283166020918202929092010152601354610fa791309116846107e7565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790610fe0908590600090869030904290600401611693565b600060405180830381600087803b158015610ffa57600080fd5b505af115801561100e573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b80611030576110306110b6565b61103b8484846110e4565b80610da757610da7600e54600c55600f54600d55565b600080600061105e6111db565b909250905061106d8282611074565b9250505090565b6000610ea283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061121b565b600c541580156110c65750600d54155b156110cd57565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806110f687611249565b6001600160a01b038f16600090815260036020526040902054959b5093995091975095509350915061112890876112a6565b6001600160a01b03808b1660009081526003602052604080822093909355908a168152205461115790866112e8565b6001600160a01b03891660009081526003602052604090205561117981611347565b6111838483611391565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516111c891815260200190565b60405180910390a3505050505050505050565b600754600090819067058d15e1762800006111f68282611074565b8210156112125750506007549267058d15e17628000092509050565b90939092509050565b6000818361123c5760405162461bcd60e51b81526004016104de91906114dc565b506000610dde8486611704565b60008060008060008060008060006112668a600c54600d546113b5565b9250925092506000611276611051565b905060008060006112898e87878761140a565b919e509c509a509598509396509194505050505091939550919395565b6000610ea283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dad565b6000806112f5838561163a565b905083811015610ea25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104de565b6000611351611051565b9050600061135f838361145a565b3060009081526003602052604090205490915061137c90826112e8565b30600090815260036020526040902055505050565b60075461139e90836112a6565b6007556008546113ae90826112e8565b6008555050565b60008080806113cf60646113c9898961145a565b90611074565b905060006113e260646113c98a8961145a565b905060006113fa826113f48b866112a6565b906112a6565b9992985090965090945050505050565b6000808080611419888661145a565b90506000611427888761145a565b90506000611435888861145a565b90506000611447826113f486866112a6565b939b939a50919850919650505050505050565b60008260000361146c57506000610487565b60006114788385611726565b9050826114858583611704565b14610ea25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104de565b600060208083528351808285015260005b81811015611509578581018301518582016040015282016114ed565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146105a357600080fd5b6000806040838503121561155257600080fd5b823561155d8161152a565b946020939093013593505050565b6000806040838503121561157e57600080fd5b50508035926020909101359150565b6000806000606084860312156115a257600080fd5b83356115ad8161152a565b925060208401356115bd8161152a565b929592945050506040919091013590565b6000602082840312156115e057600080fd5b8135610ea28161152a565b600080604083850312156115fe57600080fd5b82356116098161152a565b915060208301356116198161152a565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561048757610487611624565b8181038181111561048757610487611624565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561168857600080fd5b8151610ea28161152a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116e35784516001600160a01b0316835293830193918301916001016116be565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261172157634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561174057611740611624565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cfa5e28c9674f8c15dc577234146f09995f43fdd6e6ca82bb00ef8330752468d64736f6c63430008100033

Deployed Bytecode Sourcemap

4729:12025:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7244:83;;;;;;;;;;-1:-1:-1;7314:5:0;;;;;;;;;;;;-1:-1:-1;;;7314:5:0;;;;7244:83;;;;;;;:::i;:::-;;;;;;;;8169:193;;;;;;;;;;-1:-1:-1;8169:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8169:193:0;1023:187:1;16573:178:0;;;;;;;;;;-1:-1:-1;16573:178:0;;;;;:::i;:::-;;:::i;:::-;;6004:41;;;;;;;;;;-1:-1:-1;6004:41:0;;;;-1:-1:-1;;;;;6004:41:0;;;;;;-1:-1:-1;;;;;1658:32:1;;;1640:51;;1628:2;1613:18;6004:41:0;1468:229:1;7521:95:0;;;;;;;;;;-1:-1:-1;5290:17:0;7521:95;;;1848:25:1;;;1836:2;1821:18;7521:95:0;1702:177:1;8370:446:0;;;;;;;;;;-1:-1:-1;8370:446:0;;;;;:::i;:::-;;:::i;6301:63::-;;;;;;;;;;;;;;;;7430:83;;;;;;;;;;-1:-1:-1;7430:83:0;;4964:1;2487:36:1;;2475:2;2460:18;7430:83:0;2345:184:1;6052:28:0;;;;;;;;;;-1:-1:-1;6052:28:0;;;;-1:-1:-1;;;;;6052:28:0;;;2100:110;;;;;;;;;;-1:-1:-1;2100:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;2188:14:0;2164:4;2188:14;;;:9;:14;;;;;;;;;2100:110;12932:235;;;;;;;;;;;;;:::i;7624:138::-;;;;;;;;;;-1:-1:-1;7624:138:0;;;;;:::i;:::-;;:::i;2218:148::-;;;;;;;;;;;;;:::i;6201:37::-;;;;;;;;;;;;;;;;5746:43;;;;;;;;;;-1:-1:-1;5746:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;1762:79;;;;;;;;;;-1:-1:-1;1800:7:0;1827:6;-1:-1:-1;;;;;1827:6:0;1762:79;;6245:49;;;;;;;;;;;;;;;;7335:87;;;;;;;;;;-1:-1:-1;7407:7:0;;;;;;;;;;;;-1:-1:-1;;;7407:7:0;;;;7335:87;;7770:199;;;;;;;;;;-1:-1:-1;7770:199:0;;;;;:::i;:::-;;:::i;12688:236::-;;;;;;;;;;;;;:::i;7977:184::-;;;;;;;;;;-1:-1:-1;7977:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;8126:18:0;;;8094:7;8126:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7977:184;2374:244;;;;;;;;;;-1:-1:-1;2374:244:0;;;;;:::i;:::-;;:::i;8169:193::-;8271:4;8293:39;513:10;8316:7;8325:6;8293:8;:39::i;:::-;-1:-1:-1;8350:4:0;8169:193;;;;;:::o;16573:178::-;2046:10;2164:4;2188:14;;;:9;:14;;;;;;;;2017:64;;;;-1:-1:-1;;;2017:64:0;;3589:2:1;2017:64:0;;;3571:21:1;3628:2;3608:18;;;3601:30;-1:-1:-1;;;3647:18:1;;;3640:49;3706:18;;2017:64:0;;;;;;;;;16678:12:::1;:26:::0;;;;16715:13:::1;:28:::0;16573:178::o;8370:446::-;8502:4;8519:36;8529:6;8537:9;8548:6;8519:9;:36::i;:::-;8566:220;8589:6;513:10;8637:138;8693:6;8637:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8637:19:0;;;;;;:11;:19;;;;;;;;513:10;8637:33;;;;;;;;;;:37;:138::i;:::-;8566:8;:220::i;:::-;-1:-1:-1;8804:4:0;8370:446;;;;;:::o;12932:235::-;12998:19;;-1:-1:-1;;;;;12998:19:0;513:10;-1:-1:-1;;;;;12982:35:0;;:72;;;-1:-1:-1;13037:17:0;;-1:-1:-1;;;;;13037:17:0;513:10;-1:-1:-1;;;;;13021:33:0;;12982:72;12974:81;;;;;;13095:21;13127:32;13095:21;13127:12;:32::i;:::-;12963:204;12932:235::o;7624:138::-;-1:-1:-1;;;;;7737:16:0;;7690:7;7737:16;;;:7;:16;;;;;;7717:37;;:19;:37::i;2218:148::-;1889:6;;-1:-1:-1;;;;;1889:6:0;513:10;1889:22;1881:67;;;;-1:-1:-1;;;1881:67:0;;3937:2:1;1881:67:0;;;3919:21:1;;;3956:18;;;3949:30;4015:34;3995:18;;;3988:62;4067:18;;1881:67:0;3735:356:1;1881:67:0;2325:1:::1;2309:6:::0;;2288:40:::1;::::0;-1:-1:-1;;;;;2309:6:0;;::::1;::::0;2288:40:::1;::::0;2325:1;;2288:40:::1;2356:1;2339:19:::0;;-1:-1:-1;;;;;;2339:19:0::1;::::0;;2218:148::o;7770:199::-;7875:4;7897:42;513:10;7921:9;7932:6;7897:9;:42::i;12688:236::-;12754:19;;-1:-1:-1;;;;;12754:19:0;513:10;-1:-1:-1;;;;;12738:35:0;;:72;;;-1:-1:-1;12793:17:0;;-1:-1:-1;;;;;12793:17:0;513:10;-1:-1:-1;;;;;12777:33:0;;12738:72;12730:81;;;;;;12822:23;12848:24;12866:4;12848:9;:24::i;:::-;12822:50;;12883:33;12900:15;12883:16;:33::i;2374:244::-;1889:6;;-1:-1:-1;;;;;1889:6:0;513:10;1889:22;1881:67;;;;-1:-1:-1;;;1881:67:0;;3937:2:1;1881:67:0;;;3919:21:1;;;3956:18;;;3949:30;4015:34;3995:18;;;3988:62;4067:18;;1881:67:0;3735:356:1;1881:67:0;-1:-1:-1;;;;;2463:22:0;::::1;2455:73;;;::::0;-1:-1:-1;;;2455:73:0;;4298:2:1;2455:73:0::1;::::0;::::1;4280:21:1::0;4337:2;4317:18;;;4310:30;4376:34;4356:18;;;4349:62;-1:-1:-1;;;4427:18:1;;;4420:36;4473:19;;2455:73:0::1;4096:402:1::0;2455:73:0::1;2565:6;::::0;;2544:38:::1;::::0;-1:-1:-1;;;;;2544:38:0;;::::1;::::0;2565:6;::::1;::::0;2544:38:::1;::::0;::::1;2593:6;:17:::0;;-1:-1:-1;;;;;;2593:17:0::1;-1:-1:-1::0;;;;;2593:17:0;;;::::1;::::0;;;::::1;::::0;;2374:244::o;9507:369::-;-1:-1:-1;;;;;9634:19:0;;9626:68;;;;-1:-1:-1;;;9626:68:0;;4705:2:1;9626:68:0;;;4687:21:1;4744:2;4724:18;;;4717:30;4783:34;4763:18;;;4756:62;-1:-1:-1;;;4834:18:1;;;4827:34;4878:19;;9626:68:0;4503:400:1;9626:68:0;-1:-1:-1;;;;;9713:21:0;;9705:68;;;;-1:-1:-1;;;9705:68:0;;5110:2:1;9705:68:0;;;5092:21:1;5149:2;5129:18;;;5122:30;5188:34;5168:18;;;5161:62;-1:-1:-1;;;5239:18:1;;;5232:32;5281:19;;9705:68:0;4908:398:1;9705:68:0;-1:-1:-1;;;;;9784:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9836:32;;1848:25:1;;;9836:32:0;;1821:18:1;9836:32:0;;;;;;;9507:369;;;:::o;9884:2198::-;-1:-1:-1;;;;;10006:18:0;;9998:68;;;;-1:-1:-1;;;9998:68:0;;5513:2:1;9998:68:0;;;5495:21:1;5552:2;5532:18;;;5525:30;5591:34;5571:18;;;5564:62;-1:-1:-1;;;5642:18:1;;;5635:35;5687:19;;9998:68:0;5311:401:1;9998:68:0;-1:-1:-1;;;;;10085:16:0;;10077:64;;;;-1:-1:-1;;;10077:64:0;;5919:2:1;10077:64:0;;;5901:21:1;5958:2;5938:18;;;5931:30;5997:34;5977:18;;;5970:62;-1:-1:-1;;;6048:18:1;;;6041:33;6091:19;;10077:64:0;5717:399:1;10077:64:0;10169:1;10160:6;:10;10152:64;;;;-1:-1:-1;;;10152:64:0;;6323:2:1;10152:64:0;;;6305:21:1;6362:2;6342:18;;;6335:30;6401:34;6381:18;;;6374:62;-1:-1:-1;;;6452:18:1;;;6445:39;6501:19;;10152:64:0;6121:405:1;10152:64:0;1800:7;1827:6;-1:-1:-1;;;;;10233:15:0;;;1827:6;;10233:15;;;;:32;;-1:-1:-1;1800:7:0;1827:6;-1:-1:-1;;;;;10252:13:0;;;1827:6;;10252:13;;10233:32;10229:1172;;;10322:11;;-1:-1:-1;;;10322:11:0;;;;10317:144;;1800:7;1827:6;-1:-1:-1;;;;;10362:15:0;;;1827:6;;10362:15;10354:91;;;;-1:-1:-1;;;10354:91:0;;6733:2:1;10354:91:0;;;6715:21:1;6772:2;6752:18;;;6745:30;6811:34;6791:18;;;6784:62;6882:33;6862:18;;;6855:61;6933:19;;10354:91:0;6531:427:1;10354:91:0;10495:12;;10485:6;:22;;10477:63;;;;-1:-1:-1;;;10477:63:0;;7165:2:1;10477:63:0;;;7147:21:1;7204:2;7184:18;;;7177:30;7243;7223:18;;;7216:58;7291:18;;10477:63:0;6963:352:1;10477:63:0;10566:13;;-1:-1:-1;;;;;10560:19:0;;;10566:13;;10560:19;10557:146;;10633:14;;10624:6;10608:13;10618:2;10608:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10600:87;;;;-1:-1:-1;;;10600:87:0;;7784:2:1;10600:87:0;;;7766:21:1;7823:2;7803:18;;;7796:30;7862:34;7842:18;;;7835:62;-1:-1:-1;;;7913:18:1;;;7906:33;7956:19;;10600:87:0;7582:399:1;10600:87:0;10719:28;10750:24;10768:4;10750:9;:24::i;:::-;10828:19;;10891:12;;10719:55;;-1:-1:-1;10804:43:0;;;;10867:36;;10864:124;;10960:12;;10937:35;;10864:124;11008:7;:18;;;;-1:-1:-1;11020:6:0;;-1:-1:-1;;;11020:6:0;;;;11019:7;11008:18;:43;;;;-1:-1:-1;11038:13:0;;-1:-1:-1;;;;;11030:21:0;;;11038:13;;11030:21;;11008:43;:58;;;;-1:-1:-1;11055:11:0;;-1:-1:-1;;;11055:11:0;;;;11008:58;:87;;;;-1:-1:-1;;;;;;11071:24:0;;;;;;:18;:24;;;;;;;;11070:25;11008:87;:114;;;;-1:-1:-1;;;;;;11100:22:0;;;;;;:18;:22;;;;;;;;11099:23;11008:114;11004:386;;;11143:38;11160:20;11143:16;:38::i;:::-;11229:21;11273:22;;11269:106;;11320:35;11333:21;11320:12;:35::i;:::-;11124:266;11004:386;10267:1134;;10229:1172;-1:-1:-1;;;;;11477:24:0;;11413:12;11477:24;;;:18;:24;;;;;;11428:4;;11477:24;;;:50;;-1:-1:-1;;;;;;11505:22:0;;;;;;:18;:22;;;;;;;;11477:50;11476:102;;;-1:-1:-1;11541:13:0;;-1:-1:-1;;;;;11533:21:0;;;11541:13;;11533:21;;;;:44;;-1:-1:-1;11564:13:0;;-1:-1:-1;;;;;11558:19:0;;;11564:13;;11558:19;;11533:44;11472:549;;;-1:-1:-1;11605:5:0;11472:549;;;11688:13;;-1:-1:-1;;;;;11680:21:0;;;11688:13;;11680:21;:55;;;;-1:-1:-1;11719:15:0;;-1:-1:-1;;;;;11705:30:0;;;11719:15;;11705:30;;11680:55;11677:117;;;11766:12;;11756:7;:22;11677:117;11853:13;;-1:-1:-1;;;;;11847:19:0;;;11853:13;;11847:19;:55;;;;-1:-1:-1;11886:15:0;;-1:-1:-1;;;;;11870:32:0;;;11886:15;;11870:32;;11847:55;11843:165;;;11935:15;;11923:9;:27;11979:13;;11969:7;:23;11843:165;12033:41;12048:4;12054:2;12058:6;12066:7;12033:14;:41::i;:::-;9987:2095;9884:2198;;;:::o;2980:224::-;3100:7;3136:12;3128:6;;;;3120:29;;;;-1:-1:-1;;;3120:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3160:9:0;3172:5;3176:1;3172;:5;:::i;:::-;3160:17;2980:224;-1:-1:-1;;;;;2980:224:0:o;12581:99::-;12638:17;;:34;;-1:-1:-1;;;;;12638:17:0;;;;:34;;;;;12665:6;;12638:17;:34;:17;:34;12665:6;12638:17;:34;;;;;;;;;;;;;;;;;;;;;12581:99;:::o;8824:323::-;8919:7;8977;;8966;:18;;8944:110;;;;-1:-1:-1;;;8944:110:0;;8321:2:1;8944:110:0;;;8303:21:1;8360:2;8340:18;;;8333:30;8399:34;8379:18;;;8372:62;-1:-1:-1;;;8450:18:1;;;8443:40;8500:19;;8944:110:0;8119:406:1;8944:110:0;9065:19;9087:10;:8;:10::i;:::-;9065:32;-1:-1:-1;9115:24:0;:7;9065:32;9115:11;:24::i;:::-;9108:31;8824:323;-1:-1:-1;;;8824:323:0:o;12090:483::-;6458:6;:13;;-1:-1:-1;;;;6458:13:0;-1:-1:-1;;;6458:13:0;;;12192:16:::1;::::0;;12206:1:::1;12192:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12192:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12192:16:0::1;12168:40;;12237:4;12219;12224:1;12219:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12219:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12263:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12263:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12219:7;;12263:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12253:4;12258:1;12253:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12253:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12328:15:::1;::::0;12296:62:::1;::::0;12313:4:::1;::::0;12328:15:::1;12346:11:::0;12296:8:::1;:62::i;:::-;12369:15;::::0;:196:::1;::::0;-1:-1:-1;;;12369:196:0;;-1:-1:-1;;;;;12369:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12450:11;;12369:15:::1;::::0;12492:4;;12519::::1;::::0;12539:15:::1;::::0;12369:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6494:6:0;:14;;-1:-1:-1;;;;6494:14:0;;;-1:-1:-1;;;;12090:483:0:o;13175:282::-;13331:7;13326:28;;13340:14;:12;:14::i;:::-;13365:44;13383:6;13391:9;13402:6;13365:17;:44::i;:::-;13425:7;13420:29;;13434:15;9438:17;;9426:9;:29;9476:15;;9466:7;:25;9382:117;16136:164;16178:7;16199:15;16216;16235:19;:17;:19::i;:::-;16198:56;;-1:-1:-1;16198:56:0;-1:-1:-1;16272:20:0;16198:56;;16272:11;:20::i;:::-;16265:27;;;;16136:164;:::o;3466:132::-;3524:7;3551:39;3555:1;3558;3551:39;;;;;;;;;;;;;;;;;:3;:39::i;9155:219::-;9202:9;;:14;:30;;;;-1:-1:-1;9220:7:0;;:12;9202:30;9198:43;;;9155:219::o;9198:43::-;9273:9;;;9253:17;:29;9311:7;;;9293:15;:25;-1:-1:-1;9331:13:0;;;;9355:11;9155:219::o;13465:610::-;13612:15;13642:23;13680:12;13707:23;13745:12;13772:13;13799:19;13810:7;13799:10;:19::i;:::-;-1:-1:-1;;;;;13847:15:0;;;;;;:7;:15;;;;;;13597:221;;-1:-1:-1;13597:221:0;;-1:-1:-1;13597:221:0;;-1:-1:-1;13597:221:0;-1:-1:-1;13597:221:0;-1:-1:-1;13597:221:0;-1:-1:-1;13847:28:0;;13597:221;13847:19;:28::i;:::-;-1:-1:-1;;;;;13829:15:0;;;;;;;:7;:15;;;;;;:46;;;;13907:18;;;;;;;:39;;13930:15;13907:22;:39::i;:::-;-1:-1:-1;;;;;13886:18:0;;;;;;:7;:18;;;;;:60;13957:16;13967:5;13957:9;:16::i;:::-;13984:23;13996:4;14002;13984:11;:23::i;:::-;14040:9;-1:-1:-1;;;;;14023:44:0;14032:6;-1:-1:-1;;;;;14023:44:0;;14051:15;14023:44;;;;1848:25:1;;1836:2;1821:18;;1702:177;14023:44:0;;;;;;;;13586:489;;;;;;13465:610;;;:::o;16308:257::-;16406:7;;16359;;;;5290:17;16474:20;16406:7;5290:17;16474:11;:20::i;:::-;16464:7;:30;16460:61;;;-1:-1:-1;;16504:7:0;;;5290:17;;-1:-1:-1;16308:257:0;-1:-1:-1;16308:257:0:o;16460:61::-;16540:7;;16549;;-1:-1:-1;16308:257:0;-1:-1:-1;16308:257:0:o;3606:223::-;3726:7;3761:12;3754:5;3746:28;;;;-1:-1:-1;;;3746:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3785:9:0;3797:5;3801:1;3797;:5;:::i;14494:615::-;14594:7;14616;14638;14660;14682;14704;14740:23;14765:12;14779:13;14809:40;14821:7;14830:9;;14841:7;;14809:11;:40::i;:::-;14739:110;;;;;;14860:19;14882:10;:8;:10::i;:::-;14860:32;;14904:15;14921:23;14946:12;14975:46;14987:7;14996:4;15002:5;15009:11;14975;:46::i;:::-;14903:118;;-1:-1:-1;14903:118:0;-1:-1:-1;14903:118:0;-1:-1:-1;15072:15:0;;-1:-1:-1;15089:4:0;;-1:-1:-1;15095:5:0;;-1:-1:-1;;;;;14494:615:0;;;;;;;:::o;2836:136::-;2894:7;2921:43;2925:1;2928;2921:43;;;;;;;;;;;;;;;;;:3;:43::i;2649:179::-;2707:7;;2739:5;2743:1;2739;:5;:::i;:::-;2727:17;;2768:1;2763;:6;;2755:46;;;;-1:-1:-1;;;2755:46:0;;10459:2:1;2755:46:0;;;10441:21:1;10498:2;10478:18;;;10471:30;10537:29;10517:18;;;10510:57;10584:18;;2755:46:0;10257:351:1;14083:211:0;14136:19;14158:10;:8;:10::i;:::-;14136:32;-1:-1:-1;14179:13:0;14195:22;:5;14136:32;14195:9;:22::i;:::-;14269:4;14253:22;;;;:7;:22;;;;;;14179:38;;-1:-1:-1;14253:33:0;;14179:38;14253:26;:33::i;:::-;14244:4;14228:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14083:211:0:o;14302:147::-;14380:7;;:17;;14392:4;14380:11;:17::i;:::-;14370:7;:27;14421:10;;:20;;14436:4;14421:14;:20::i;:::-;14408:10;:33;-1:-1:-1;;14302:147:0:o;15117:469::-;15286:7;;;;15380:30;15406:3;15380:21;:7;15392:8;15380:11;:21::i;:::-;:25;;:30::i;:::-;15365:45;-1:-1:-1;15421:13:0;15437:28;15461:3;15437:19;:7;15449:6;15437:11;:19::i;:28::-;15421:44;-1:-1:-1;15476:23:0;15502:28;15421:44;15502:17;:7;15514:4;15502:11;:17::i;:::-;:21;;:28::i;:::-;15476:54;15566:4;;-1:-1:-1;15572:5:0;;-1:-1:-1;15117:469:0;;-1:-1:-1;;;;;15117:469:0:o;15594:534::-;15788:7;;;;15885:24;:7;15897:11;15885;:24::i;:::-;15867:42;-1:-1:-1;15920:12:0;15935:21;:4;15944:11;15935:8;:21::i;:::-;15920:36;-1:-1:-1;15967:13:0;15983:22;:5;15993:11;15983:9;:22::i;:::-;15967:38;-1:-1:-1;16016:23:0;16042:28;15967:38;16042:17;:7;16054:4;16042:11;:17::i;:28::-;16089:7;;;;-1:-1:-1;16115:4:0;;-1:-1:-1;15594:534:0;;-1:-1:-1;;;;;;;15594:534:0:o;3212:246::-;3270:7;3294:1;3299;3294:6;3290:47;;-1:-1:-1;3324:1:0;3317:8;;3290:47;3347:9;3359:5;3363:1;3359;:5;:::i;:::-;3347:17;-1:-1:-1;3392:1:0;3383:5;3387:1;3347:17;3383:5;:::i;:::-;:10;3375:56;;;;-1:-1:-1;;;3375:56:0;;10988:2:1;3375:56:0;;;10970:21:1;11027:2;11007:18;;;11000:30;11066:34;11046:18;;;11039:62;-1:-1:-1;;;11117:18:1;;;11110:31;11158:19;;3375:56:0;10786:397:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;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;1215:248::-;1283:6;1291;1344:2;1332:9;1323:7;1319:23;1315:32;1312:52;;;1360:1;1357;1350:12;1312:52;-1:-1:-1;;1383:23:1;;;1453:2;1438:18;;;1425:32;;-1:-1:-1;1215:248:1:o;1884:456::-;1961:6;1969;1977;2030:2;2018:9;2009:7;2005:23;2001:32;1998:52;;;2046:1;2043;2036:12;1998:52;2085:9;2072:23;2104:31;2129:5;2104:31;:::i;:::-;2154:5;-1:-1:-1;2211:2:1;2196:18;;2183:32;2224:33;2183:32;2224:33;:::i;:::-;1884:456;;2276:7;;-1:-1:-1;;;2330:2:1;2315:18;;;;2302:32;;1884:456::o;2742:247::-;2801:6;2854:2;2842:9;2833:7;2829:23;2825:32;2822:52;;;2870:1;2867;2860:12;2822:52;2909:9;2896:23;2928:31;2953:5;2928:31;:::i;2994:388::-;3062:6;3070;3123:2;3111:9;3102:7;3098:23;3094:32;3091:52;;;3139:1;3136;3129:12;3091:52;3178:9;3165:23;3197:31;3222:5;3197:31;:::i;:::-;3247:5;-1:-1:-1;3304:2:1;3289:18;;3276:32;3317:33;3276:32;3317:33;:::i;:::-;3369:7;3359:17;;;2994:388;;;;;:::o;7320:127::-;7381:10;7376:3;7372:20;7369:1;7362:31;7412:4;7409:1;7402:15;7436:4;7433:1;7426:15;7452:125;7517:9;;;7538:10;;;7535:36;;;7551:18;;:::i;7986:128::-;8053:9;;;8074:11;;;8071:37;;;8088:18;;:::i;8662:127::-;8723:10;8718:3;8714:20;8711:1;8704:31;8754:4;8751:1;8744:15;8778:4;8775:1;8768:15;8794:251;8864:6;8917:2;8905:9;8896:7;8892:23;8888:32;8885:52;;;8933:1;8930;8923:12;8885:52;8965:9;8959:16;8984:31;9009:5;8984:31;:::i;9050:980::-;9312:4;9360:3;9349:9;9345:19;9391:6;9380:9;9373:25;9417:2;9455:6;9450:2;9439:9;9435:18;9428:34;9498:3;9493:2;9482:9;9478:18;9471:31;9522:6;9557;9551:13;9588:6;9580;9573:22;9626:3;9615:9;9611:19;9604:26;;9665:2;9657:6;9653:15;9639:29;;9686:1;9696:195;9710:6;9707:1;9704:13;9696:195;;;9775:13;;-1:-1:-1;;;;;9771:39:1;9759:52;;9866:15;;;;9831:12;;;;9807:1;9725:9;9696:195;;;-1:-1:-1;;;;;;;9947:32:1;;;;9942:2;9927:18;;9920:60;-1:-1:-1;;;10011:3:1;9996:19;9989:35;9908:3;9050:980;-1:-1:-1;;;9050:980:1:o;10035:217::-;10075:1;10101;10091:132;;10145:10;10140:3;10136:20;10133:1;10126:31;10180:4;10177:1;10170:15;10208:4;10205:1;10198:15;10091:132;-1:-1:-1;10237:9:1;;10035:217::o;10613:168::-;10653:7;10719:1;10715;10711:6;10707:14;10704:1;10701:21;10696:1;10689:9;10682:17;10678:45;10675:71;;;10726:18;;:::i;:::-;-1:-1:-1;10766:9:1;;10613:168::o

Swarm Source

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