ETH Price: $2,372.08 (-0.72%)

Token

No Meta (NOM)
 

Overview

Max Total Supply

1,000,000,000 NOM

Holders

95

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.253614328 NOM

Value
$0.00
0x27ac7fd3273ea8decfd4f363ca799a57c990251b
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:
NoMeta

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 1000000 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*

t.me/NoMetaToken

https://www.youtube.com/watch?v=5x1haWVUTxU

*/


// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        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 NoMeta is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances; 
    mapping(address => uint256) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;

    string private constant _name = "No Meta";
    string private constant _symbol = "NOM";
    uint8 private constant _decimals = 9;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    bool private applyRestrictions = false;
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    // exclude from fees and max transaction amount
    mapping(address => bool) private _isExcludedFromFees; 
    mapping(address => bool) public automatedMarketMakerPairs;

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); 
    
    uint256 transactionsCount = 0;
    uint256 TRANSACTION_COUNT = 20;
    function getTransactionsCount() public view returns (uint256){
        return transactionsCount;
    }  

    address constant wallet1 = 0xc7529964CbF64b3097E8806d648F6f7CB363F51e;
    address constant wallet2 = 0x9617E3e2575D9A389143Aca2fD9c6AC1A3c5D43a;

    constructor() payable {
        _feeAddrWallet1 = payable(wallet1);
        _feeAddrWallet2 = payable(wallet2);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[_feeAddrWallet1] = true;
        _isExcludedFromFees[_feeAddrWallet2] = true;

        emit Transfer(
            address(0x9617E3e2575D9A389143Aca2fD9c6AC1A3c5D43a),
            _msgSender(),
            _tTotal
        );   
    }

    function setRestrictions(bool _restriction) public onlyOwner {
       applyRestrictions = _restriction;
    }

    function setAutomatedMarketMakerPair(address pair, bool value)
        public
        onlyOwner
    {
        require(
            pair != uniswapV2Pair,
            "The pair cannot be removed from automatedMarketMakerPairs"
        );

        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function 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 setCooldownEnabled(bool onoff) external onlyOwner {
        cooldownEnabled = onoff;
    }

    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 _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 (applyRestrictions) { 
                _feeAddr1 = 0;
                _feeAddr2 = 0;
            if (from != owner() && to != owner()) {
                _feeAddr1 = 0;
                _feeAddr2 = 5;
                if (
                    to == uniswapV2Pair &&
                    from != address(uniswapV2Router) &&
                    !_isExcludedFromFees[from]
                ) {
                    _feeAddr1 = 0;
                    _feeAddr2 = 5;
                }

                transactionsCount++;
                if(transactionsCount >= TRANSACTION_COUNT){
                    uint256 contractTokenBalance = balanceOf(address(this));
                    if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                        if(contractTokenBalance > 0){
                            swapTokensForEth(contractTokenBalance);
                            uint256 contractETHBalance = address(this).balance;
                            if (contractETHBalance > 0) {
                                sendETHToFee(address(this).balance);
                                transactionsCount = 0;
                            }
                        }
                    }    
                } 
            }
        }

        _tokenTransfer(from, to, amount);
    }

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

    function sendETH899ToFee(uint256 amount) private {}

    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount.div(2));
        _feeAddrWallet2.transfer(amount.div(2));
    }

    function openTrading() external onlyOwner {
        require(!tradingOpen, "Trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        swapEnabled = true;
        cooldownEnabled = true;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(
            address(uniswapV2Router),
            type(uint256).max
        );
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        applyRestrictions = true;  
    }   
    
    /**
        Transfer logic
    **/

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) private {
        _transferStandard(sender, recipient, amount);
    }

    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 manualswap() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

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

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(
            tAmount,
            _feeAddr1,
            _feeAddr2
        );
        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 taxFee,
        uint256 TeamFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).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);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getTransactionsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"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":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_restriction","type":"bool"}],"name":"setRestrictions","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001a670de0b6b3a764000060001962000206565b620000289060001962000229565b600655600d805463ffffffff60a81b1916905560006010819055601460115580546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600a80546001600160a01b031990811673c7529964cbf64b3097e8806d648f6f7cb363f51e17909155600b8054909116739617e3e2575d9a389143aca2fd9c6ac1a3c5d43a17905560065460026000620000dd3390565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506001600e600062000117620001f760201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600e909352818320805485166001908117909155600a54821684528284208054861682179055600b54909116835291208054909216179055620001883390565b6001600160a01b0316739617e3e2575d9a389143aca2fd9c6ac1a3c5d43a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620001e991815260200190565b60405180910390a362000251565b6000546001600160a01b031690565b6000826200022457634e487b7160e01b600052601260045260246000fd5b500690565b818103818111156200024b57634e487b7160e01b600052601160045260246000fd5b92915050565b61224f80620002616000396000f3fe6080604052600436106101635760003560e01c8063715018a6116100c0578063b62496f511610074578063c9567bf911610059578063c9567bf914610421578063dd62ed3e14610436578063e4e59f111461048957600080fd5b8063b62496f5146103dc578063c3c8cd801461040c57600080fd5b806395d89b41116100a557806395d89b41146103565780639a7a23d61461039c578063a9059cbb146103bc57600080fd5b8063715018a6146103165780638da5cb5b1461032b57600080fd5b806349bd5a5e116101175780635932ead1116100fc5780635932ead1146102bf5780636fc3eaec146102e157806370a08231146102f657600080fd5b806349bd5a5e14610258578063578cb8f9146102aa57600080fd5b806318160ddd1161014857806318160ddd146101f757806323b872dd1461021c578063313ce5671461023c57600080fd5b806306fdde031461016f578063095ea7b3146101c757600080fd5b3661016a57005b600080fd5b34801561017b57600080fd5b5060408051808201909152600781527f4e6f204d6574610000000000000000000000000000000000000000000000000060208201525b6040516101be9190611e46565b60405180910390f35b3480156101d357600080fd5b506101e76101e2366004611ed4565b6104a9565b60405190151581526020016101be565b34801561020357600080fd5b50670de0b6b3a76400005b6040519081526020016101be565b34801561022857600080fd5b506101e7610237366004611f00565b6104c0565b34801561024857600080fd5b50604051600981526020016101be565b34801561026457600080fd5b50600d546102859073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101be565b3480156102b657600080fd5b5060105461020e565b3480156102cb57600080fd5b506102df6102da366004611f4f565b610536565b005b3480156102ed57600080fd5b506102df610609565b34801561030257600080fd5b5061020e610311366004611f6c565b610650565b34801561032257600080fd5b506102df61067f565b34801561033757600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610285565b34801561036257600080fd5b5060408051808201909152600381527f4e4f4d000000000000000000000000000000000000000000000000000000000060208201526101b1565b3480156103a857600080fd5b506102df6103b7366004611f89565b61076f565b3480156103c857600080fd5b506101e76103d7366004611ed4565b6108a9565b3480156103e857600080fd5b506101e76103f7366004611f6c565b600f6020526000908152604090205460ff1681565b34801561041857600080fd5b506102df6108b6565b34801561042d57600080fd5b506102df610906565b34801561044257600080fd5b5061020e610451366004611fc2565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260046020908152604080832093909416825291909152205490565b34801561049557600080fd5b506102df6104a4366004611f4f565b610e86565b60006104b6338484610f55565b5060015b92915050565b60006104cd848484611108565b61052c8433610527856040518060600160405280602881526020016121f26028913973ffffffffffffffffffffffffffffffffffffffff8a16600090815260046020908152604080832033845290915290205491906114f5565b610f55565b5060019392505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146105bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600d805491151577010000000000000000000000000000000000000000000000027fffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b600a5473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461064357600080fd5b4761064d81611549565b50565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600260205260408120546104ba906115e8565b60005473ffffffffffffffffffffffffffffffffffffffff163314610700576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b3565b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff1633146107f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b3565b600d5473ffffffffffffffffffffffffffffffffffffffff9081169083160361089b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016105b3565b6108a58282611699565b5050565b60006104b6338484611108565b600a5473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108f057600080fd5b60006108fb30610650565b905061064d81611718565b60005473ffffffffffffffffffffffffffffffffffffffff163314610987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b3565b600d5474010000000000000000000000000000000000000000900460ff1615610a0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105b3565b600c80547fffffffffffffffffffffffff000000000000000000000000000000000000000016737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610a603082670de0b6b3a7640000610f55565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610acf9190611ff0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5a9190611ff0565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff9283166004820152911660248201526044016020604051808303816000875af1158015610bcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf09190611ff0565b600d80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff928316179055600c541663f305d7194730610c4581610650565b600080610c6760005473ffffffffffffffffffffffffffffffffffffffff1690565b60405160e088901b7fffffffff0000000000000000000000000000000000000000000000000000000016815273ffffffffffffffffffffffffffffffffffffffff958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610cf4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d19919061200d565b5050600d80547fffffffffffffffff0000ff00ffffffffffffffffffffffffffffffffffffffff81167701010001000000000000000000000000000000000000000017909155600c546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201529116915063095ea7b3906044016020604051808303816000875af1158015610df7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1b919061203b565b50600d54610e409073ffffffffffffffffffffffffffffffffffffffff166001611699565b50600d80547fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff167801000000000000000000000000000000000000000000000000179055565b60005473ffffffffffffffffffffffffffffffffffffffff163314610f07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b3565b600d80549115157801000000000000000000000000000000000000000000000000027fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff8316610ff7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105b3565b73ffffffffffffffffffffffffffffffffffffffff821661109a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105b3565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166111ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105b3565b73ffffffffffffffffffffffffffffffffffffffff821661124e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105b3565b600081116112de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f000000000000000000000000000000000000000000000060648201526084016105b3565b600d547801000000000000000000000000000000000000000000000000900460ff16156114e5576000600881905560095561132e60005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611384575060005473ffffffffffffffffffffffffffffffffffffffff838116911614155b156114e55760006008556005600955600d5473ffffffffffffffffffffffffffffffffffffffff83811691161480156113d85750600c5473ffffffffffffffffffffffffffffffffffffffff848116911614155b801561140a575073ffffffffffffffffffffffffffffffffffffffff83166000908152600e602052604090205460ff16155b1561141a57600060085560056009555b6010805490600061142a83612087565b9190505550601154601054106114e557600061144530610650565b600d549091507501000000000000000000000000000000000000000000900460ff1615801561148f5750600d5473ffffffffffffffffffffffffffffffffffffffff858116911614155b80156114b75750600d54760100000000000000000000000000000000000000000000900460ff165b156114e35780156114e3576114cb81611718565b4780156114e1576114db47611549565b60006010555b505b505b6114f0838383611933565b505050565b60008184841115611533576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b39190611e46565b50600061154084866120bf565b95945050505050565b600a5473ffffffffffffffffffffffffffffffffffffffff166108fc61157083600261193e565b6040518115909202916000818181858888f19350505050158015611598573d6000803e3d6000fd5b50600b5473ffffffffffffffffffffffffffffffffffffffff166108fc6115c083600261193e565b6040518115909202916000818181858888f193505050501580156108a5573d6000803e3d6000fd5b600060065482111561167c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e730000000000000000000000000000000000000000000060648201526084016105b3565b6000611686611980565b9050611692838261193e565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000818152600f602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b600d80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061178d5761178d6120d2565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201810191909152600c54604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa15801561180c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118309190611ff0565b81600181518110611843576118436120d2565b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092010152600c546118769130911684610f55565b600c546040517f791ac94700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063791ac947906118d5908590600090869030904290600401612101565b600060405180830381600087803b1580156118ef57600080fd5b505af1158015611903573d6000803e3d6000fd5b5050600d80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16905550505050565b6114f08383836119a3565b600061169283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611adb565b600080600061198d611b23565b909250905061199c828261193e565b9250505090565b6000806000806000806119b587611b63565b73ffffffffffffffffffffffffffffffffffffffff8f16600090815260026020526040902054959b509399509197509550935091506119f49087611bc0565b73ffffffffffffffffffffffffffffffffffffffff808b1660009081526002602052604080822093909355908a1681522054611a309086611c02565b73ffffffffffffffffffffffffffffffffffffffff8916600090815260026020526040902055611a5f81611c7b565b611a698483611cc5565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611ac891815260200190565b60405180910390a3505050505050505050565b60008183611b16576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b39190611e46565b506000611540848661218c565b6006546000908190670de0b6b3a7640000611b3e828261193e565b821015611b5a57505060065492670de0b6b3a764000092509050565b90939092509050565b6000806000806000806000806000611b808a600854600954611ce9565b9250925092506000611b90611980565b90506000806000611ba38e878787611d3e565b919e509c509a509598509396509194505050505091939550919395565b600061169283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114f5565b600080611c0f83856121c7565b905083811015611692576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105b3565b6000611c85611980565b90506000611c938383611d8e565b30600090815260026020526040902054909150611cb09082611c02565b30600090815260026020526040902055505050565b600654611cd29083611bc0565b600655600754611ce29082611c02565b6007555050565b6000808080611d036064611cfd8989611d8e565b9061193e565b90506000611d166064611cfd8a89611d8e565b90506000611d2e82611d288b86611bc0565b90611bc0565b9992985090965090945050505050565b6000808080611d4d8886611d8e565b90506000611d5b8887611d8e565b90506000611d698888611d8e565b90506000611d7b82611d288686611bc0565b939b939a50919850919650505050505050565b600082600003611da0575060006104ba565b6000611dac83856121da565b905082611db9858361218c565b14611692576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f770000000000000000000000000000000000000000000000000000000000000060648201526084016105b3565b600060208083528351808285015260005b81811015611e7357858101830151858201604001528201611e57565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b73ffffffffffffffffffffffffffffffffffffffff8116811461064d57600080fd5b60008060408385031215611ee757600080fd5b8235611ef281611eb2565b946020939093013593505050565b600080600060608486031215611f1557600080fd5b8335611f2081611eb2565b92506020840135611f3081611eb2565b929592945050506040919091013590565b801515811461064d57600080fd5b600060208284031215611f6157600080fd5b813561169281611f41565b600060208284031215611f7e57600080fd5b813561169281611eb2565b60008060408385031215611f9c57600080fd5b8235611fa781611eb2565b91506020830135611fb781611f41565b809150509250929050565b60008060408385031215611fd557600080fd5b8235611fe081611eb2565b91506020830135611fb781611eb2565b60006020828403121561200257600080fd5b815161169281611eb2565b60008060006060848603121561202257600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561204d57600080fd5b815161169281611f41565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036120b8576120b8612058565b5060010190565b818103818111156104ba576104ba612058565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561215e57845173ffffffffffffffffffffffffffffffffffffffff168352938301939183019160010161212c565b505073ffffffffffffffffffffffffffffffffffffffff969096166060850152505050608001529392505050565b6000826121c2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b808201808211156104ba576104ba612058565b80820281158282048414176104ba576104ba61205856fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122082f6ef3df075e328780183a9932e9f3434fa1088e0e169c778cb997bf965c42264736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101635760003560e01c8063715018a6116100c0578063b62496f511610074578063c9567bf911610059578063c9567bf914610421578063dd62ed3e14610436578063e4e59f111461048957600080fd5b8063b62496f5146103dc578063c3c8cd801461040c57600080fd5b806395d89b41116100a557806395d89b41146103565780639a7a23d61461039c578063a9059cbb146103bc57600080fd5b8063715018a6146103165780638da5cb5b1461032b57600080fd5b806349bd5a5e116101175780635932ead1116100fc5780635932ead1146102bf5780636fc3eaec146102e157806370a08231146102f657600080fd5b806349bd5a5e14610258578063578cb8f9146102aa57600080fd5b806318160ddd1161014857806318160ddd146101f757806323b872dd1461021c578063313ce5671461023c57600080fd5b806306fdde031461016f578063095ea7b3146101c757600080fd5b3661016a57005b600080fd5b34801561017b57600080fd5b5060408051808201909152600781527f4e6f204d6574610000000000000000000000000000000000000000000000000060208201525b6040516101be9190611e46565b60405180910390f35b3480156101d357600080fd5b506101e76101e2366004611ed4565b6104a9565b60405190151581526020016101be565b34801561020357600080fd5b50670de0b6b3a76400005b6040519081526020016101be565b34801561022857600080fd5b506101e7610237366004611f00565b6104c0565b34801561024857600080fd5b50604051600981526020016101be565b34801561026457600080fd5b50600d546102859073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101be565b3480156102b657600080fd5b5060105461020e565b3480156102cb57600080fd5b506102df6102da366004611f4f565b610536565b005b3480156102ed57600080fd5b506102df610609565b34801561030257600080fd5b5061020e610311366004611f6c565b610650565b34801561032257600080fd5b506102df61067f565b34801561033757600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610285565b34801561036257600080fd5b5060408051808201909152600381527f4e4f4d000000000000000000000000000000000000000000000000000000000060208201526101b1565b3480156103a857600080fd5b506102df6103b7366004611f89565b61076f565b3480156103c857600080fd5b506101e76103d7366004611ed4565b6108a9565b3480156103e857600080fd5b506101e76103f7366004611f6c565b600f6020526000908152604090205460ff1681565b34801561041857600080fd5b506102df6108b6565b34801561042d57600080fd5b506102df610906565b34801561044257600080fd5b5061020e610451366004611fc2565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260046020908152604080832093909416825291909152205490565b34801561049557600080fd5b506102df6104a4366004611f4f565b610e86565b60006104b6338484610f55565b5060015b92915050565b60006104cd848484611108565b61052c8433610527856040518060600160405280602881526020016121f26028913973ffffffffffffffffffffffffffffffffffffffff8a16600090815260046020908152604080832033845290915290205491906114f5565b610f55565b5060019392505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146105bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600d805491151577010000000000000000000000000000000000000000000000027fffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b600a5473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461064357600080fd5b4761064d81611549565b50565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600260205260408120546104ba906115e8565b60005473ffffffffffffffffffffffffffffffffffffffff163314610700576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b3565b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff1633146107f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b3565b600d5473ffffffffffffffffffffffffffffffffffffffff9081169083160361089b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084016105b3565b6108a58282611699565b5050565b60006104b6338484611108565b600a5473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108f057600080fd5b60006108fb30610650565b905061064d81611718565b60005473ffffffffffffffffffffffffffffffffffffffff163314610987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b3565b600d5474010000000000000000000000000000000000000000900460ff1615610a0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105b3565b600c80547fffffffffffffffffffffffff000000000000000000000000000000000000000016737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610a603082670de0b6b3a7640000610f55565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610acf9190611ff0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5a9190611ff0565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff9283166004820152911660248201526044016020604051808303816000875af1158015610bcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf09190611ff0565b600d80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff928316179055600c541663f305d7194730610c4581610650565b600080610c6760005473ffffffffffffffffffffffffffffffffffffffff1690565b60405160e088901b7fffffffff0000000000000000000000000000000000000000000000000000000016815273ffffffffffffffffffffffffffffffffffffffff958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610cf4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d19919061200d565b5050600d80547fffffffffffffffff0000ff00ffffffffffffffffffffffffffffffffffffffff81167701010001000000000000000000000000000000000000000017909155600c546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201529116915063095ea7b3906044016020604051808303816000875af1158015610df7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1b919061203b565b50600d54610e409073ffffffffffffffffffffffffffffffffffffffff166001611699565b50600d80547fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff167801000000000000000000000000000000000000000000000000179055565b60005473ffffffffffffffffffffffffffffffffffffffff163314610f07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b3565b600d80549115157801000000000000000000000000000000000000000000000000027fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff8316610ff7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105b3565b73ffffffffffffffffffffffffffffffffffffffff821661109a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105b3565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166111ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105b3565b73ffffffffffffffffffffffffffffffffffffffff821661124e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016105b3565b600081116112de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f000000000000000000000000000000000000000000000060648201526084016105b3565b600d547801000000000000000000000000000000000000000000000000900460ff16156114e5576000600881905560095561132e60005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611384575060005473ffffffffffffffffffffffffffffffffffffffff838116911614155b156114e55760006008556005600955600d5473ffffffffffffffffffffffffffffffffffffffff83811691161480156113d85750600c5473ffffffffffffffffffffffffffffffffffffffff848116911614155b801561140a575073ffffffffffffffffffffffffffffffffffffffff83166000908152600e602052604090205460ff16155b1561141a57600060085560056009555b6010805490600061142a83612087565b9190505550601154601054106114e557600061144530610650565b600d549091507501000000000000000000000000000000000000000000900460ff1615801561148f5750600d5473ffffffffffffffffffffffffffffffffffffffff858116911614155b80156114b75750600d54760100000000000000000000000000000000000000000000900460ff165b156114e35780156114e3576114cb81611718565b4780156114e1576114db47611549565b60006010555b505b505b6114f0838383611933565b505050565b60008184841115611533576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b39190611e46565b50600061154084866120bf565b95945050505050565b600a5473ffffffffffffffffffffffffffffffffffffffff166108fc61157083600261193e565b6040518115909202916000818181858888f19350505050158015611598573d6000803e3d6000fd5b50600b5473ffffffffffffffffffffffffffffffffffffffff166108fc6115c083600261193e565b6040518115909202916000818181858888f193505050501580156108a5573d6000803e3d6000fd5b600060065482111561167c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e730000000000000000000000000000000000000000000060648201526084016105b3565b6000611686611980565b9050611692838261193e565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000818152600f602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b600d80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061178d5761178d6120d2565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201810191909152600c54604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa15801561180c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118309190611ff0565b81600181518110611843576118436120d2565b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092010152600c546118769130911684610f55565b600c546040517f791ac94700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063791ac947906118d5908590600090869030904290600401612101565b600060405180830381600087803b1580156118ef57600080fd5b505af1158015611903573d6000803e3d6000fd5b5050600d80547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16905550505050565b6114f08383836119a3565b600061169283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611adb565b600080600061198d611b23565b909250905061199c828261193e565b9250505090565b6000806000806000806119b587611b63565b73ffffffffffffffffffffffffffffffffffffffff8f16600090815260026020526040902054959b509399509197509550935091506119f49087611bc0565b73ffffffffffffffffffffffffffffffffffffffff808b1660009081526002602052604080822093909355908a1681522054611a309086611c02565b73ffffffffffffffffffffffffffffffffffffffff8916600090815260026020526040902055611a5f81611c7b565b611a698483611cc5565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611ac891815260200190565b60405180910390a3505050505050505050565b60008183611b16576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b39190611e46565b506000611540848661218c565b6006546000908190670de0b6b3a7640000611b3e828261193e565b821015611b5a57505060065492670de0b6b3a764000092509050565b90939092509050565b6000806000806000806000806000611b808a600854600954611ce9565b9250925092506000611b90611980565b90506000806000611ba38e878787611d3e565b919e509c509a509598509396509194505050505091939550919395565b600061169283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114f5565b600080611c0f83856121c7565b905083811015611692576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105b3565b6000611c85611980565b90506000611c938383611d8e565b30600090815260026020526040902054909150611cb09082611c02565b30600090815260026020526040902055505050565b600654611cd29083611bc0565b600655600754611ce29082611c02565b6007555050565b6000808080611d036064611cfd8989611d8e565b9061193e565b90506000611d166064611cfd8a89611d8e565b90506000611d2e82611d288b86611bc0565b90611bc0565b9992985090965090945050505050565b6000808080611d4d8886611d8e565b90506000611d5b8887611d8e565b90506000611d698888611d8e565b90506000611d7b82611d288686611bc0565b939b939a50919850919650505050505050565b600082600003611da0575060006104ba565b6000611dac83856121da565b905082611db9858361218c565b14611692576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f770000000000000000000000000000000000000000000000000000000000000060648201526084016105b3565b600060208083528351808285015260005b81811015611e7357858101830151858201604001528201611e57565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b73ffffffffffffffffffffffffffffffffffffffff8116811461064d57600080fd5b60008060408385031215611ee757600080fd5b8235611ef281611eb2565b946020939093013593505050565b600080600060608486031215611f1557600080fd5b8335611f2081611eb2565b92506020840135611f3081611eb2565b929592945050506040919091013590565b801515811461064d57600080fd5b600060208284031215611f6157600080fd5b813561169281611f41565b600060208284031215611f7e57600080fd5b813561169281611eb2565b60008060408385031215611f9c57600080fd5b8235611fa781611eb2565b91506020830135611fb781611f41565b809150509250929050565b60008060408385031215611fd557600080fd5b8235611fe081611eb2565b91506020830135611fb781611eb2565b60006020828403121561200257600080fd5b815161169281611eb2565b60008060006060848603121561202257600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561204d57600080fd5b815161169281611f41565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036120b8576120b8612058565b5060010190565b818103818111156104ba576104ba612058565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561215e57845173ffffffffffffffffffffffffffffffffffffffff168352938301939183019160010161212c565b505073ffffffffffffffffffffffffffffffffffffffff969096166060850152505050608001529392505050565b6000826121c2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b808201808211156104ba576104ba612058565b80820281158282048414176104ba576104ba61205856fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122082f6ef3df075e328780183a9932e9f3434fa1088e0e169c778cb997bf965c42264736f6c63430008120033

Deployed Bytecode Sourcemap

3942:12623:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6892:83;;;;;;;;;;-1:-1:-1;6962:5:0;;;;;;;;;;;;;;;;;6892:83;;;;;;;:::i;:::-;;;;;;;;7817:193;;;;;;;;;;-1:-1:-1;7817:193:0;;;;;:::i;:::-;;:::i;:::-;;;1270:14:1;;1263:22;1245:41;;1233:2;1218:18;7817:193:0;1105:187:1;7169:95:0;;;;;;;;;;-1:-1:-1;4336:18:0;7169:95;;;1443:25:1;;;1431:2;1416:18;7169:95:0;1297:177:1;8018:446:0;;;;;;;;;;-1:-1:-1;8018:446:0;;;;;:::i;:::-;;:::i;7078:83::-;;;;;;;;;;-1:-1:-1;7078:83:0;;4739:1;2082:36:1;;2070:2;2055:18;7078:83:0;1940:184:1;4798:28:0;;;;;;;;;;-1:-1:-1;4798:28:0;;;;;;;;;;;2305:42:1;2293:55;;;2275:74;;2263:2;2248:18;4798:28:0;2129:226:1;5466:104:0;;;;;;;;;;-1:-1:-1;5545:17:0;;5466:104;;8472:101;;;;;;;;;;-1:-1:-1;8472:101:0;;;;;:::i;:::-;;:::i;:::-;;14202:194;;;;;;;;;;;;;:::i;7272:138::-;;;;;;;;;;-1:-1:-1;7272:138:0;;;;;:::i;:::-;;:::i;2894:148::-;;;;;;;;;;;;;:::i;2680:79::-;;;;;;;;;;-1:-1:-1;2718:7:0;2745:6;;;2680:79;;6983:87;;;;;;;;;;-1:-1:-1;7055:7:0;;;;;;;;;;;;;;;;;6983:87;;6384:304;;;;;;;;;;-1:-1:-1;6384:304:0;;;;;:::i;:::-;;:::i;7418:199::-;;;;;;;;;;-1:-1:-1;7418:199:0;;;;;:::i;:::-;;:::i;5238:57::-;;;;;;;;;;-1:-1:-1;5238:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13999:195;;;;;;;;;;;;;:::i;11675:1048::-;;;;;;;;;;;;;:::i;7625:184::-;;;;;;;;;;-1:-1:-1;7625:184:0;;;;;:::i;:::-;7774:18;;;;7742:7;7774:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7625:184;6265:111;;;;;;;;;;-1:-1:-1;6265:111:0;;;;;:::i;:::-;;:::i;7817:193::-;7919:4;7941:39;263:10;7964:7;7973:6;7941:8;:39::i;:::-;-1:-1:-1;7998:4:0;7817:193;;;;;:::o;8018:446::-;8150:4;8167:36;8177:6;8185:9;8196:6;8167:9;:36::i;:::-;8214:220;8237:6;263:10;8285:138;8341:6;8285:138;;;;;;;;;;;;;;;;;:19;;;;;;;:11;:19;;;;;;;;263:10;8285:33;;;;;;;;;;:37;:138::i;:::-;8214:8;:220::i;:::-;-1:-1:-1;8452:4:0;8018:446;;;;;:::o;8472:101::-;2807:6;;:22;:6;263:10;2807:22;2799:67;;;;;;;3963:2:1;2799:67:0;;;3945:21:1;;;3982:18;;;3975:30;4041:34;4021:18;;;4014:62;4093:18;;2799:67:0;;;;;;;;;8542:15:::1;:23:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;8472:101::o;14202:194::-;14268:15;;;;263:10;14252:31;;;14244:40;;;;;;14324:21;14356:32;14324:21;14356:12;:32::i;:::-;14233:163;14202:194::o;7272:138::-;7385:16;;;7338:7;7385:16;;;:7;:16;;;;;;7365:37;;:19;:37::i;2894:148::-;2807:6;;:22;:6;263:10;2807:22;2799:67;;;;;;;3963:2:1;2799:67:0;;;3945:21:1;;;3982:18;;;3975:30;4041:34;4021:18;;;4014:62;4093:18;;2799:67:0;3761:356:1;2799:67:0;3001:1:::1;2985:6:::0;;2964:40:::1;::::0;::::1;2985:6:::0;;::::1;::::0;2964:40:::1;::::0;3001:1;;2964:40:::1;3032:1;3015:19:::0;;;::::1;::::0;;2894:148::o;6384:304::-;2807:6;;:22;:6;263:10;2807:22;2799:67;;;;;;;3963:2:1;2799:67:0;;;3945:21:1;;;3982:18;;;3975:30;4041:34;4021:18;;;4014:62;4093:18;;2799:67:0;3761:356:1;2799:67:0;6528:13:::1;::::0;::::1;::::0;;::::1;6520:21:::0;;::::1;::::0;6498:128:::1;;;::::0;::::1;::::0;;4324:2:1;6498:128:0::1;::::0;::::1;4306:21:1::0;4363:2;4343:18;;;4336:30;4402:34;4382:18;;;4375:62;4473:27;4453:18;;;4446:55;4518:19;;6498:128:0::1;4122:421:1::0;6498:128:0::1;6639:41;6668:4;6674:5;6639:28;:41::i;:::-;6384:304:::0;;:::o;7418:199::-;7523:4;7545:42;263:10;7569:9;7580:6;7545:9;:42::i;13999:195::-;14065:15;;;;263:10;14049:31;;;14041:40;;;;;;14092:23;14118:24;14136:4;14118:9;:24::i;:::-;14092:50;;14153:33;14170:15;14153:16;:33::i;11675:1048::-;2807:6;;:22;:6;263:10;2807:22;2799:67;;;;;;;3963:2:1;2799:67:0;;;3945:21:1;;;3982:18;;;3975:30;4041:34;4021:18;;;4014:62;4093:18;;2799:67:0;3761:356:1;2799:67:0;11737:11:::1;::::0;;;::::1;;;11736:12;11728:48;;;::::0;::::1;::::0;;4750:2:1;11728:48:0::1;::::0;::::1;4732:21:1::0;4789:2;4769:18;;;4762:30;4828:25;4808:18;;;4801:53;4871:18;;11728:48:0::1;4548:347:1::0;11728:48:0::1;11922:15;:34:::0;;;::::1;11858:42;11922:34:::0;;::::1;::::0;;;11967:58:::1;11984:4;11858:42:::0;4336:18:::1;11967:8;:58::i;:::-;12070:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12052:70;;;12131:4;12138:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12052:110;::::0;;::::1;::::0;;;;;;5340:42:1;5409:15;;;12052:110:0::1;::::0;::::1;5391:34:1::0;5461:15;;5441:18;;;5434:43;5303:18;;12052:110:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12036:13;:126:::0;;;::::1;;::::0;;::::1;;::::0;;12173:15:::1;::::0;::::1;:31;12212:21;12257:4;12277:24;12257:4:::0;12277:9:::1;:24::i;:::-;12316:1;12332::::0;12348:7:::1;2718::::0;2745:6;;;;2680:79;12348:7:::1;12173:223;::::0;::::1;::::0;;;;;;;5801:42:1;5870:15;;;12173:223:0::1;::::0;::::1;5852:34:1::0;5902:18;;;5895:34;;;;5945:18;;;5938:34;;;;5988:18;;;5981:34;6052:15;;;6031:19;;;6024:44;12370:15:0::1;6084:19:1::0;;;6077:35;5763:19;;12173:223:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12407:11:0::1;:18:::0;;12469;;;;;;;;12550:15:::1;::::0;12498:111:::1;::::0;;;;12505:13:::1;12550:15:::0;;::::1;12498:111;::::0;::::1;6608:74:1::0;12581:17:0::1;6698:18:1::0;;;6691:34;12505:13:0;;;-1:-1:-1;12498:29:0::1;::::0;6581:18:1;;12498:111:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12657:13:0::1;::::0;12620:58:::1;::::0;12657:13:::1;;::::0;12620:28:::1;:58::i;:::-;-1:-1:-1::0;12689:17:0::1;:24:::0;;;::::1;::::0;::::1;::::0;;11675:1048::o;6265:111::-;2807:6;;:22;:6;263:10;2807:22;2799:67;;;;;;;3963:2:1;2799:67:0;;;3945:21:1;;;3982:18;;;3975:30;4041:34;4021:18;;;4014:62;4093:18;;2799:67:0;3761:356:1;2799:67:0;6336:17:::1;:32:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;6265:111::o;8912:369::-;9039:19;;;9031:68;;;;;;;7188:2:1;9031:68:0;;;7170:21:1;7227:2;7207:18;;;7200:30;7266:34;7246:18;;;7239:62;7337:6;7317:18;;;7310:34;7361:19;;9031:68:0;6986:400:1;9031:68:0;9118:21;;;9110:68;;;;;;;7593:2:1;9110:68:0;;;7575:21:1;7632:2;7612:18;;;7605:30;7671:34;7651:18;;;7644:62;7742:4;7722:18;;;7715:32;7764:19;;9110:68:0;7391:398:1;9110:68:0;9189:18;;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9241:32;;1443:25:1;;;9241:32:0;;1416:18:1;9241:32:0;;;;;;;8912:369;;;:::o;9295:1660::-;9417:18;;;9409:68;;;;;;;7996:2:1;9409:68:0;;;7978:21:1;8035:2;8015:18;;;8008:30;8074:34;8054:18;;;8047:62;8145:7;8125:18;;;8118:35;8170:19;;9409:68:0;7794:401:1;9409:68:0;9496:16;;;9488:64;;;;;;;8402:2:1;9488:64:0;;;8384:21:1;8441:2;8421:18;;;8414:30;8480:34;8460:18;;;8453:62;8551:5;8531:18;;;8524:33;8574:19;;9488:64:0;8200:399:1;9488:64:0;9580:1;9571:6;:10;9563:64;;;;;;;8806:2:1;9563:64:0;;;8788:21:1;8845:2;8825:18;;;8818:30;8884:34;8864:18;;;8857:62;8955:11;8935:18;;;8928:39;8984:19;;9563:64:0;8604:405:1;9563:64:0;9642:17;;;;;;;9638:1265;;;9693:1;9681:9;:13;;;9713:9;:13;9753:7;2718;2745:6;;;;2680:79;9753:7;9745:15;;:4;:15;;;;:32;;;;-1:-1:-1;2718:7:0;2745:6;;9764:13;;;2745:6;;9764:13;;9745:32;9741:1151;;;9810:1;9798:9;:13;9842:1;9830:9;:13;9894;;;9888:19;;;9894:13;;9888:19;:76;;;;-1:-1:-1;9948:15:0;;;9932:32;;;9948:15;;9932:32;;9888:76;:127;;;;-1:-1:-1;9990:25:0;;;;;;;:19;:25;;;;;;;;9989:26;9888:127;9862:265;;;10070:1;10058:9;:13;10106:1;10094:9;:13;9862:265;10147:17;:19;;;:17;:19;;;:::i;:::-;;;;;;10209:17;;10188;;:38;10185:691;;10250:28;10281:24;10299:4;10281:9;:24::i;:::-;10333:6;;10250:55;;-1:-1:-1;10333:6:0;;;;;10332:7;:32;;;;-1:-1:-1;10351:13:0;;;10343:21;;;10351:13;;10343:21;;10332:32;:47;;;;-1:-1:-1;10368:11:0;;;;;;;10332:47;10328:525;;;10411:24;;10408:422;;10467:38;10484:20;10467:16;:38::i;:::-;10565:21;10621:22;;10617:186;;10680:35;10693:21;10680:12;:35::i;:::-;10770:1;10750:17;:21;10617:186;10436:394;10408:422;10227:649;10185:691;10915:32;10930:4;10936:2;10940:6;10915:14;:32::i;:::-;9295:1660;;;:::o;1445:224::-;1565:7;1601:12;1593:6;;;;1585:29;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1625:9:0;1637:5;1641:1;1637;:5;:::i;:::-;1625:17;1445:224;-1:-1:-1;;;;;1445:224:0:o;11513:154::-;11570:15;;;;:39;11595:13;:6;11606:1;11595:10;:13::i;:::-;11570:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11620:15:0;;;;:39;11645:13;:6;11656:1;11645:10;:13::i;:::-;11620:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8581:323;8676:7;8734;;8723;:18;;8701:110;;;;;;;9738:2:1;8701:110:0;;;9720:21:1;9777:2;9757:18;;;9750:30;9816:34;9796:18;;;9789:62;9887:12;9867:18;;;9860:40;9917:19;;8701:110:0;9536:406:1;8701:110:0;8822:19;8844:10;:8;:10::i;:::-;8822:32;-1:-1:-1;8872:24:0;:7;8822:32;8872:11;:24::i;:::-;8865:31;8581:323;-1:-1:-1;;;8581:323:0:o;6696:188::-;6779:31;;;;;;;:25;:31;;;;;;:39;;;;;;;;;;;;;6836:40;;6779:39;;:31;6836:40;;;6696:188;;:::o;10963:483::-;5059:6;:13;;;;;;;;11065:16:::1;::::0;;11079:1:::1;11065:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11065:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11065:16:0::1;11041:40;;11110:4;11092;11097:1;11092:7;;;;;;;;:::i;:::-;:23;::::0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11136:15:::1;::::0;:22:::1;::::0;;;;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11092:7;;11136:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11126:4;11131:1;11126:7;;;;;;;;:::i;:::-;:32;::::0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11201:15:::1;::::0;11169:62:::1;::::0;11186:4:::1;::::0;11201:15:::1;11219:11:::0;11169:8:::1;:62::i;:::-;11242:15;::::0;:196:::1;::::0;;;;:15:::1;::::0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11323:11;;11242:15:::1;::::0;11365:4;;11392::::1;::::0;11412:15:::1;::::0;11242:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5095:6:0;:14;;;;;;-1:-1:-1;;;;10963:483:0:o;12782:180::-;12910:44;12928:6;12936:9;12947:6;12910:17;:44::i;1931:132::-;1989:7;2016:39;2020:1;2023;2016:39;;;;;;;;;;;;;;;;;:3;:39::i;16133:164::-;16175:7;16196:15;16213;16232:19;:17;:19::i;:::-;16195:56;;-1:-1:-1;16195:56:0;-1:-1:-1;16269:20:0;16195:56;;16269:11;:20::i;:::-;16262:27;;;;16133:164;:::o;12970:610::-;13117:15;13147:23;13185:12;13212:23;13250:12;13277:13;13304:19;13315:7;13304:10;:19::i;:::-;13352:15;;;;;;;:7;:15;;;;;;13102:221;;-1:-1:-1;13102:221:0;;-1:-1:-1;13102:221:0;;-1:-1:-1;13102:221:0;-1:-1:-1;13102:221:0;-1:-1:-1;13102:221:0;-1:-1:-1;13352:28:0;;13102:221;13352:19;:28::i;:::-;13334:15;;;;;;;;:7;:15;;;;;;:46;;;;13412:18;;;;;;;:39;;13435:15;13412:22;:39::i;:::-;13391:18;;;;;;;:7;:18;;;;;:60;13462:16;13472:5;13462:9;:16::i;:::-;13489:23;13501:4;13507;13489:11;:23::i;:::-;13545:9;13528:44;;13537:6;13528:44;;;13556:15;13528:44;;;;1443:25:1;;1431:2;1416:18;;1297:177;13528:44:0;;;;;;;;13091:489;;;;;;12970:610;;;:::o;2071:223::-;2191:7;2226:12;2219:5;2211:28;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2250:9:0;2262:5;2266:1;2262;:5;:::i;16305:257::-;16403:7;;16356;;;;4336:18;16471:20;16403:7;4336:18;16471:11;:20::i;:::-;16461:7;:30;16457:61;;;-1:-1:-1;;16501:7:0;;;4336:18;;-1:-1:-1;16305:257:0;-1:-1:-1;16305:257:0:o;16457:61::-;16537:7;;16546;;-1:-1:-1;16305:257:0;-1:-1:-1;16305:257:0:o;14404:704::-;14504:7;14526;14548;14570;14592;14614;14650:23;14675:12;14689:13;14706:92;14732:7;14754:9;;14778;;14706:11;:92::i;:::-;14649:149;;;;;;14809:19;14831:10;:8;:10::i;:::-;14809:32;;14853:15;14870:23;14895:12;14911:109;14937:7;14959:4;14978:5;14998:11;14911;:109::i;:::-;14852:168;;-1:-1:-1;14852:168:0;-1:-1:-1;14852:168:0;-1:-1:-1;15071:15:0;;-1:-1:-1;15088:4:0;;-1:-1:-1;15094:5:0;;-1:-1:-1;;;;;14404:704:0;;;;;;;:::o;1301:136::-;1359:7;1386:43;1390:1;1393;1386:43;;;;;;;;;;;;;;;;;:3;:43::i;1114:179::-;1172:7;;1204:5;1208:1;1204;:5;:::i;:::-;1192:17;;1233:1;1228;:6;;1220:46;;;;;;;11967:2:1;1220:46:0;;;11949:21:1;12006:2;11986:18;;;11979:30;12045:29;12025:18;;;12018:57;12092:18;;1220:46:0;11765:351:1;13588:211:0;13641:19;13663:10;:8;:10::i;:::-;13641:32;-1:-1:-1;13684:13:0;13700:22;:5;13641:32;13700:9;:22::i;:::-;13774:4;13758:22;;;;:7;:22;;;;;;13684:38;;-1:-1:-1;13758:33:0;;13684:38;13758:26;:33::i;:::-;13749:4;13733:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13588:211:0:o;13807:147::-;13885:7;;:17;;13897:4;13885:11;:17::i;:::-;13875:7;:27;13926:10;;:20;;13941:4;13926:14;:20::i;:::-;13913:10;:33;-1:-1:-1;;13807:147:0:o;15116:467::-;15284:7;;;;15378:28;15402:3;15378:19;:7;15390:6;15378:11;:19::i;:::-;:23;;:28::i;:::-;15363:43;-1:-1:-1;15417:13:0;15433:29;15458:3;15433:20;:7;15445;15433:11;:20::i;:29::-;15417:45;-1:-1:-1;15473:23:0;15499:28;15417:45;15499:17;:7;15511:4;15499:11;:17::i;:::-;:21;;:28::i;:::-;15473:54;15563:4;;-1:-1:-1;15569:5:0;;-1:-1:-1;15116:467:0;;-1:-1:-1;;;;;15116:467:0:o;15591:534::-;15785:7;;;;15882:24;:7;15894:11;15882;:24::i;:::-;15864:42;-1:-1:-1;15917:12:0;15932:21;:4;15941:11;15932:8;:21::i;:::-;15917:36;-1:-1:-1;15964:13:0;15980:22;:5;15990:11;15980:9;:22::i;:::-;15964:38;-1:-1:-1;16013:23:0;16039:28;15964:38;16039:17;:7;16051:4;16039:11;:17::i;:28::-;16086:7;;;;-1:-1:-1;16112:4:0;;-1:-1:-1;15591:534:0;;-1:-1:-1;;;;;;;15591:534:0:o;1677:246::-;1735:7;1759:1;1764;1759:6;1755:47;;-1:-1:-1;1789:1:0;1782:8;;1755:47;1812:9;1824:5;1828:1;1824;:5;:::i;:::-;1812:17;-1:-1:-1;1857:1:0;1848:5;1852:1;1812:17;1848:5;:::i;:::-;:10;1840:56;;;;;;;12496:2:1;1840:56:0;;;12478:21:1;12535:2;12515:18;;;12508:30;12574:34;12554:18;;;12547:62;12645:3;12625:18;;;12618:31;12666:19;;1840:56:0;12294:397:1;14:607;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;612:2;542:66;537:2;529:6;525:15;521:88;510:9;506:104;502:113;494:121;;;;14:607;;;;:::o;626:154::-;712:42;705:5;701:54;694:5;691:65;681:93;;770:1;767;760:12;785:315;853:6;861;914:2;902:9;893:7;889:23;885:32;882:52;;;930:1;927;920:12;882:52;969:9;956:23;988:31;1013:5;988:31;:::i;:::-;1038:5;1090:2;1075:18;;;;1062:32;;-1:-1:-1;;;785:315:1:o;1479:456::-;1556:6;1564;1572;1625:2;1613:9;1604:7;1600:23;1596:32;1593:52;;;1641:1;1638;1631:12;1593:52;1680:9;1667:23;1699:31;1724:5;1699:31;:::i;:::-;1749:5;-1:-1:-1;1806:2:1;1791:18;;1778:32;1819:33;1778:32;1819:33;:::i;:::-;1479:456;;1871:7;;-1:-1:-1;;;1925:2:1;1910:18;;;;1897:32;;1479:456::o;2360:118::-;2446:5;2439:13;2432:21;2425:5;2422:32;2412:60;;2468:1;2465;2458:12;2483:241;2539:6;2592:2;2580:9;2571:7;2567:23;2563:32;2560:52;;;2608:1;2605;2598:12;2560:52;2647:9;2634:23;2666:28;2688:5;2666:28;:::i;2729:247::-;2788:6;2841:2;2829:9;2820:7;2816:23;2812:32;2809:52;;;2857:1;2854;2847:12;2809:52;2896:9;2883:23;2915:31;2940:5;2915:31;:::i;2981:382::-;3046:6;3054;3107:2;3095:9;3086:7;3082:23;3078:32;3075:52;;;3123:1;3120;3113:12;3075:52;3162:9;3149:23;3181:31;3206:5;3181:31;:::i;:::-;3231:5;-1:-1:-1;3288:2:1;3273:18;;3260:32;3301:30;3260:32;3301:30;:::i;:::-;3350:7;3340:17;;;2981:382;;;;;:::o;3368:388::-;3436:6;3444;3497:2;3485:9;3476:7;3472:23;3468:32;3465:52;;;3513:1;3510;3503:12;3465:52;3552:9;3539:23;3571:31;3596:5;3571:31;:::i;:::-;3621:5;-1:-1:-1;3678:2:1;3663:18;;3650:32;3691:33;3650:32;3691:33;:::i;4900:251::-;4970:6;5023:2;5011:9;5002:7;4998:23;4994:32;4991:52;;;5039:1;5036;5029:12;4991:52;5071:9;5065:16;5090:31;5115:5;5090:31;:::i;6123:306::-;6211:6;6219;6227;6280:2;6268:9;6259:7;6255:23;6251:32;6248:52;;;6296:1;6293;6286:12;6248:52;6325:9;6319:16;6309:26;;6375:2;6364:9;6360:18;6354:25;6344:35;;6419:2;6408:9;6404:18;6398:25;6388:35;;6123:306;;;;;:::o;6736:245::-;6803:6;6856:2;6844:9;6835:7;6831:23;6827:32;6824:52;;;6872:1;6869;6862:12;6824:52;6904:9;6898:16;6923:28;6945:5;6923:28;:::i;9014:184::-;9066:77;9063:1;9056:88;9163:4;9160:1;9153:15;9187:4;9184:1;9177:15;9203:195;9242:3;9273:66;9266:5;9263:77;9260:103;;9343:18;;:::i;:::-;-1:-1:-1;9390:1:1;9379:13;;9203:195::o;9403:128::-;9470:9;;;9491:11;;;9488:37;;;9505:18;;:::i;10136:184::-;10188:77;10185:1;10178:88;10285:4;10282:1;10275:15;10309:4;10306:1;10299:15;10325:1026;10587:4;10635:3;10624:9;10620:19;10666:6;10655:9;10648:25;10692:2;10730:6;10725:2;10714:9;10710:18;10703:34;10773:3;10768:2;10757:9;10753:18;10746:31;10797:6;10832;10826:13;10863:6;10855;10848:22;10901:3;10890:9;10886:19;10879:26;;10940:2;10932:6;10928:15;10914:29;;10961:1;10971:218;10985:6;10982:1;10979:13;10971:218;;;11050:13;;11065:42;11046:62;11034:75;;11164:15;;;;11129:12;;;;11007:1;11000:9;10971:218;;;-1:-1:-1;;11257:42:1;11245:55;;;;11240:2;11225:18;;11218:83;-1:-1:-1;;;11332:3:1;11317:19;11310:35;11206:3;10325:1026;-1:-1:-1;;;10325:1026:1:o;11356:274::-;11396:1;11422;11412:189;;11457:77;11454:1;11447:88;11558:4;11555:1;11548:15;11586:4;11583:1;11576:15;11412:189;-1:-1:-1;11615:9:1;;11356:274::o;11635:125::-;11700:9;;;11721:10;;;11718:36;;;11734:18;;:::i;12121:168::-;12194:9;;;12225;;12242:15;;;12236:22;;12222:37;12212:71;;12263:18;;:::i

Swarm Source

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