ETH Price: $2,514.25 (+0.56%)

Token

Platinum Finance (Pt)
 

Overview

Max Total Supply

1,000,000,000,000 Pt

Holders

30

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
15,368,271,500.597322804 Pt

Value
$0.00
0x654dd31b0da8d02ce77863dde7f77ad3f7bdaaee
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:
Pt

Compiler Version
v0.8.8+commit.dddeac2f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-28
*/

//SPDX-License-Identifier: Unlicensed                                                            
//https://t.me/platinumfinanceeth


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

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

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract Pt is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private constant _name = "Platinum Finance";
    string private constant _symbol = "Pt";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping (address => uint256) private _buyMap;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    mapping(address => bool) private _isSniper;
    uint256 public launchTime;

    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 9;
    
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 9;
    
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
    uint256 private _burnFee = 0;
    
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
    uint256 private _previousburnFee = _burnFee;
    
    address payable private _marketingAddress = payable(0xD6906288Deb3D7E1515a82E4ee14B43671c8D801);
    address public constant deadAddress = 0x000000000000000000000000000000000000dEaD;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    
    uint256 public _maxTxAmount = 2e10 * 10**9; 
    uint256 public _maxWalletSize = 2e10 * 10**9;
    uint256 public _swapTokensAtAmount = 1000 * 10**9;

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

    constructor() {
        
        _rOwned[_msgSender()] = _rTotal;
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
        .createPair(address(this), _uniswapV2Router.WETH());
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        _isExcludedFromFee[deadAddress] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0 && _burnFee == 0) return;
    
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
        _previousburnFee = _burnFee;
        
        _redisFee = 0;
        _taxFee = 0;
        _burnFee = 0;
    }

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

    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");
        require(!_isSniper[to], 'Stop sniping!');
        require(!_isSniper[from], 'Stop sniping!');
        require(!_isSniper[_msgSender()], 'Stop sniping!');

        if (from != owner() && to != owner()) {
            
            if (!tradingOpen) {
                revert("Trading not yet enabled!");
            }
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                if (to != address(this) && from != address(this) && to != _marketingAddress && from != _marketingAddress) {
                    require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
                }
            }

            if (to != uniswapV2Pair && to != _marketingAddress && to != address(this) && to != deadAddress) {
                require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
                
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance > _swapTokensAtAmount;
            
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                uint256 burntAmount = 0;
                if (_burnFee > 0) {
                    burntAmount = contractTokenBalance.mul(_burnFee).div(10**2);
                    burnTokens(burntAmount);
                }
                swapTokensForEth(contractTokenBalance - burntAmount);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        
        bool takeFee = true;

        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                    _buyMap[to] = block.timestamp;
                    _redisFee = _redisFeeOnBuy;
                    _taxFee = _taxFeeOnBuy;
                    if (block.timestamp == launchTime) {
                        _isSniper[to] = true;
                    }
            }
    
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                
                    _redisFee = _redisFeeOnSell;
                    _taxFee = _taxFeeOnSell;
            }
        }

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

    function burnTokens(uint256 burntAmount) private {
        _transfer(address(this), deadAddress, burntAmount);
    }

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

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

    function setTrading() public onlyOwner {
        require(!tradingOpen);
        tradingOpen = true;
        launchTime = block.timestamp;
    }


    function setMarketingWallet(address marketingAddress) external {
        require(_msgSender() == _marketingAddress);
        _marketingAddress = payable(marketingAddress);
        _isExcludedFromFee[_marketingAddress] = true;
    }

    
    function manualswap(uint256 amount) external {
        require(_msgSender() == _marketingAddress);
        require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount");
        swapTokensForEth(amount);
    }

    function addSniper(address[] memory snipers) external onlyOwner {
        for(uint256 i= 0; i< snipers.length; i++){
            if (snipers[i] != uniswapV2Pair && snipers[i] != address(uniswapV2Router)) {
            _isSniper[snipers[i]] = true;
            }
        }
    }

    function removeSniper(address sniper) external onlyOwner {
        if (_isSniper[sniper]) {
            _isSniper[sniper] = false;
        }
    }

    function isSniper(address sniper) external view returns (bool){
        return _isSniper[sniper];
    }

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

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

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

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

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

    receive() external payable {}

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

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

        return (tTransferAmount, tFee, tTeam);
    }

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

        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();

        return rSupply.div(tSupply);
    }

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

    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
    
    function setMaxTxnAmount(uint256 maxTxAmount) external onlyOwner {
        require(maxTxAmount >= _maxTxAmount);
        _maxTxAmount = maxTxAmount;
    }
    
    function setMaxWalletSize(uint256 maxWalletSize) external onlyOwner {
        require(maxWalletSize >= _maxWalletSize);
        _maxWalletSize = maxWalletSize;
    }

    function setTaxFee(uint256 amountBuy, uint256 amountSell) external onlyOwner {
        require(amountBuy >= 0 && amountBuy <= 13);
        require(amountSell >= 0 && amountSell <= 13);
        _taxFeeOnBuy = amountBuy;
        _taxFeeOnSell = amountSell;
    }

    function setRefFee(uint256 amountRefBuy, uint256 amountRefSell) external onlyOwner {
        _redisFeeOnBuy = amountRefBuy;
        _redisFeeOnSell = amountRefSell;
    }

    function setBurnFee(uint256 amount) external onlyOwner {
        _burnFee = amount;
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"snipers","type":"address[]"}],"name":"addSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"sniper","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sniper","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketingAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountRefBuy","type":"uint256"},{"internalType":"uint256","name":"amountRefSell","type":"uint256"}],"name":"setRefFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountBuy","type":"uint256"},{"internalType":"uint256","name":"amountSell","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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"}]

60806040526200001b683635c9adc5dea000006000196200038e565b6200002990600019620003b1565b6007556000600b8190556009600c819055600d829055600e819055600f829055601081905560118290556012829055601355601455601580546001600160a01b03191673d6906288deb3d7e1515a82e4ee14b43671c8d8011790556017805461ffff60a81b1916600160b01b1790556801158e460913d00000601881905560195564e8d4a51000601a55348015620000c057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360009081526002602090815260409182902092909255601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a01559260048083019392829003018186803b1580156200017957600080fd5b505afa1580156200018e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b49190620003d7565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001fd57600080fd5b505afa15801562000212573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002389190620003d7565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200028157600080fd5b505af115801562000296573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002bc9190620003d7565b601780546001600160a01b0319166001600160a01b039283161790556000805482168152600660209081526040808320805460ff19908116600190811790925530855282852080548216831790556015549095168452818420805486168217905561dead84527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e228054909516179093559151683635c9adc5dea00000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000409565b600082620003ac57634e487b7160e01b600052601260045260246000fd5b500690565b600082821015620003d257634e487b7160e01b600052601160045260246000fd5b500390565b600060208284031215620003ea57600080fd5b81516001600160a01b03811681146200040257600080fd5b9392505050565b61205580620004196000396000f3fe6080604052600436106101e75760003560e01c80636fc3eaec116101025780638da5cb5b11610095578063c552849011610064578063c552849014610599578063dd62ed3e146105b9578063ea1644d5146105ff578063f2fde38b1461061f57600080fd5b80638da5cb5b1461051a5780638f9a55c01461053857806395d89b411461054e578063a9059cbb1461057957600080fd5b8063790ca413116100d1578063790ca413146104b95780637c519ffb146104cf5780637d1db4a5146104e4578063881dce60146104fa57600080fd5b80636fc3eaec1461044f57806370a0823114610464578063715018a61461048457806374010ece1461049957600080fd5b80632fd689e31161017a57806349bd5a5e1161014957806349bd5a5e146103cf5780634bf2c7c9146103ef5780635d098b381461040f5780636d8aa8f81461042f57600080fd5b80632fd689e31461035d578063313ce5671461037357806333251a0b1461038f57806338eea22d146103af57600080fd5b806318160ddd116101b657806318160ddd146102df57806323b872dd1461030557806327c8f8351461032557806328bb665a1461033b57600080fd5b806306fdde03146101f3578063095ea7b31461023e5780630f3a325f1461026e5780631694505e146102a757600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5060408051808201909152601081526f506c6174696e756d2046696e616e636560801b60208201525b6040516102359190611be1565b60405180910390f35b34801561024a57600080fd5b5061025e610259366004611c5b565b61063f565b6040519015158152602001610235565b34801561027a57600080fd5b5061025e610289366004611c87565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156102b357600080fd5b506016546102c7906001600160a01b031681565b6040516001600160a01b039091168152602001610235565b3480156102eb57600080fd5b50683635c9adc5dea000005b604051908152602001610235565b34801561031157600080fd5b5061025e610320366004611ca4565b610656565b34801561033157600080fd5b506102c761dead81565b34801561034757600080fd5b5061035b610356366004611cfb565b6106bf565b005b34801561036957600080fd5b506102f7601a5481565b34801561037f57600080fd5b5060405160098152602001610235565b34801561039b57600080fd5b5061035b6103aa366004611c87565b6107e5565b3480156103bb57600080fd5b5061035b6103ca366004611dc0565b610854565b3480156103db57600080fd5b506017546102c7906001600160a01b031681565b3480156103fb57600080fd5b5061035b61040a366004611de2565b610889565b34801561041b57600080fd5b5061035b61042a366004611c87565b6108b8565b34801561043b57600080fd5b5061035b61044a366004611dfb565b610912565b34801561045b57600080fd5b5061035b61095a565b34801561047057600080fd5b506102f761047f366004611c87565b610984565b34801561049057600080fd5b5061035b6109a6565b3480156104a557600080fd5b5061035b6104b4366004611de2565b610a1a565b3480156104c557600080fd5b506102f7600a5481565b3480156104db57600080fd5b5061035b610a58565b3480156104f057600080fd5b506102f760185481565b34801561050657600080fd5b5061035b610515366004611de2565b610ab2565b34801561052657600080fd5b506000546001600160a01b03166102c7565b34801561054457600080fd5b506102f760195481565b34801561055a57600080fd5b50604080518082019091526002815261141d60f21b6020820152610228565b34801561058557600080fd5b5061025e610594366004611c5b565b610b2e565b3480156105a557600080fd5b5061035b6105b4366004611dc0565b610b3b565b3480156105c557600080fd5b506102f76105d4366004611e1d565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561060b57600080fd5b5061035b61061a366004611de2565b610b8c565b34801561062b57600080fd5b5061035b61063a366004611c87565b610bca565b600061064c338484610cb4565b5060015b92915050565b6000610663848484610dd8565b6106b584336106b085604051806060016040528060288152602001611ff8602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611484565b610cb4565b5060019392505050565b6000546001600160a01b031633146106f25760405162461bcd60e51b81526004016106e990611e56565b60405180910390fd5b60005b81518110156107e15760175482516001600160a01b039091169083908390811061072157610721611e8b565b60200260200101516001600160a01b031614158015610772575060165482516001600160a01b039091169083908390811061075e5761075e611e8b565b60200260200101516001600160a01b031614155b156107cf5760016009600084848151811061078f5761078f611e8b565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b806107d981611eb7565b9150506106f5565b5050565b6000546001600160a01b0316331461080f5760405162461bcd60e51b81526004016106e990611e56565b6001600160a01b03811660009081526009602052604090205460ff1615610851576001600160a01b0381166000908152600960205260409020805460ff191690555b50565b6000546001600160a01b0316331461087e5760405162461bcd60e51b81526004016106e990611e56565b600b91909155600d55565b6000546001600160a01b031633146108b35760405162461bcd60e51b81526004016106e990611e56565b601155565b6015546001600160a01b0316336001600160a01b0316146108d857600080fd5b601580546001600160a01b039092166001600160a01b0319909216821790556000908152600660205260409020805460ff19166001179055565b6000546001600160a01b0316331461093c5760405162461bcd60e51b81526004016106e990611e56565b60178054911515600160b01b0260ff60b01b19909216919091179055565b6015546001600160a01b0316336001600160a01b03161461097a57600080fd5b47610851816114be565b6001600160a01b038116600090815260026020526040812054610650906114f8565b6000546001600160a01b031633146109d05760405162461bcd60e51b81526004016106e990611e56565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a445760405162461bcd60e51b81526004016106e990611e56565b601854811015610a5357600080fd5b601855565b6000546001600160a01b03163314610a825760405162461bcd60e51b81526004016106e990611e56565b601754600160a01b900460ff1615610a9957600080fd5b6017805460ff60a01b1916600160a01b17905542600a55565b6015546001600160a01b0316336001600160a01b031614610ad257600080fd5b610adb30610984565b8111158015610aea5750600081115b610b255760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b60448201526064016106e9565b6108518161157c565b600061064c338484610dd8565b6000546001600160a01b03163314610b655760405162461bcd60e51b81526004016106e990611e56565b600d821115610b7357600080fd5b600d811115610b8157600080fd5b600c91909155600e55565b6000546001600160a01b03163314610bb65760405162461bcd60e51b81526004016106e990611e56565b601954811015610bc557600080fd5b601955565b6000546001600160a01b03163314610bf45760405162461bcd60e51b81526004016106e990611e56565b6001600160a01b038116610c595760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e9565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d165760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e9565b6001600160a01b038216610d775760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e9565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e3c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e9565b6001600160a01b038216610e9e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106e9565b60008111610f005760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106e9565b6001600160a01b03821660009081526009602052604090205460ff1615610f395760405162461bcd60e51b81526004016106e990611ed2565b6001600160a01b03831660009081526009602052604090205460ff1615610f725760405162461bcd60e51b81526004016106e990611ed2565b3360009081526009602052604090205460ff1615610fa25760405162461bcd60e51b81526004016106e990611ed2565b6000546001600160a01b03848116911614801590610fce57506000546001600160a01b03838116911614155b1561132e57601754600160a01b900460ff1661102c5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016106e9565b6017546001600160a01b03838116911614801561105757506016546001600160a01b03848116911614155b15611109576001600160a01b038216301480159061107e57506001600160a01b0383163014155b801561109857506015546001600160a01b03838116911614155b80156110b257506015546001600160a01b03848116911614155b15611109576018548111156111095760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106e9565b6017546001600160a01b0383811691161480159061113557506015546001600160a01b03838116911614155b801561114a57506001600160a01b0382163014155b801561116157506001600160a01b03821661dead14155b15611228576018548111156111b85760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106e9565b601954816111c584610984565b6111cf9190611ef9565b106112285760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106e9565b600061123330610984565b601a5490915081118080156112525750601754600160a81b900460ff16155b801561126c57506017546001600160a01b03868116911614155b80156112815750601754600160b01b900460ff165b80156112a657506001600160a01b03851660009081526006602052604090205460ff16155b80156112cb57506001600160a01b03841660009081526006602052604090205460ff16155b1561132b5760115460009015611306576112fb60646112f56011548661170590919063ffffffff16565b90611784565b9050611306816117c6565b6113186113138285611f11565b61157c565b47801561132857611328476114be565b50505b50505b6001600160a01b03831660009081526006602052604090205460019060ff168061137057506001600160a01b03831660009081526006602052604090205460ff165b806113a257506017546001600160a01b038581169116148015906113a257506017546001600160a01b03848116911614155b156113af57506000611472565b6017546001600160a01b0385811691161480156113da57506016546001600160a01b03848116911614155b15611435576001600160a01b03831660009081526004602052604090204290819055600b54600f55600c54601055600a541415611435576001600160a01b0383166000908152600960205260409020805460ff191660011790555b6017546001600160a01b03848116911614801561146057506016546001600160a01b03858116911614155b1561147257600d54600f55600e546010555b61147e848484846117d3565b50505050565b600081848411156114a85760405162461bcd60e51b81526004016106e99190611be1565b5060006114b58486611f11565b95945050505050565b6015546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156107e1573d6000803e3d6000fd5b600060075482111561155f5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106e9565b6000611569611807565b90506115758382611784565b9392505050565b6017805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106115c4576115c4611e8b565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561161857600080fd5b505afa15801561162c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116509190611f28565b8160018151811061166357611663611e8b565b6001600160a01b0392831660209182029290920101526016546116899130911684610cb4565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac947906116c2908590600090869030904290600401611f45565b600060405180830381600087803b1580156116dc57600080fd5b505af11580156116f0573d6000803e3d6000fd5b50506017805460ff60a81b1916905550505050565b60008261171457506000610650565b60006117208385611fb6565b90508261172d8583611fd5565b146115755760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106e9565b600061157583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061182a565b6108513061dead83610dd8565b806117e0576117e0611858565b6117eb84848461189d565b8061147e5761147e601254600f55601354601055601454601155565b6000806000611814611994565b90925090506118238282611784565b9250505090565b6000818361184b5760405162461bcd60e51b81526004016106e99190611be1565b5060006114b58486611fd5565b600f541580156118685750601054155b80156118745750601154155b1561187b57565b600f805460125560108054601355601180546014556000928390559082905555565b6000806000806000806118af876119d6565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506118e19087611a33565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546119109086611a75565b6001600160a01b03891660009081526002602052604090205561193281611ad4565b61193c8483611b1e565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161198191815260200190565b60405180910390a3505050505050505050565b6007546000908190683635c9adc5dea000006119b08282611784565b8210156119cd57505060075492683635c9adc5dea0000092509050565b90939092509050565b60008060008060008060008060006119f38a600f54601054611b42565b9250925092506000611a03611807565b90506000806000611a168e878787611b91565b919e509c509a509598509396509194505050505091939550919395565b600061157583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611484565b600080611a828385611ef9565b9050838110156115755760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106e9565b6000611ade611807565b90506000611aec8383611705565b30600090815260026020526040902054909150611b099082611a75565b30600090815260026020526040902055505050565b600754611b2b9083611a33565b600755600854611b3b9082611a75565b6008555050565b6000808080611b5660646112f58989611705565b90506000611b6960646112f58a89611705565b90506000611b8182611b7b8b86611a33565b90611a33565b9992985090965090945050505050565b6000808080611ba08886611705565b90506000611bae8887611705565b90506000611bbc8888611705565b90506000611bce82611b7b8686611a33565b939b939a50919850919650505050505050565b600060208083528351808285015260005b81811015611c0e57858101830151858201604001528201611bf2565b81811115611c20576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461085157600080fd5b8035611c5681611c36565b919050565b60008060408385031215611c6e57600080fd5b8235611c7981611c36565b946020939093013593505050565b600060208284031215611c9957600080fd5b813561157581611c36565b600080600060608486031215611cb957600080fd5b8335611cc481611c36565b92506020840135611cd481611c36565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611d0e57600080fd5b823567ffffffffffffffff80821115611d2657600080fd5b818501915085601f830112611d3a57600080fd5b813581811115611d4c57611d4c611ce5565b8060051b604051601f19603f83011681018181108582111715611d7157611d71611ce5565b604052918252848201925083810185019188831115611d8f57600080fd5b938501935b82851015611db457611da585611c4b565b84529385019392850192611d94565b98975050505050505050565b60008060408385031215611dd357600080fd5b50508035926020909101359150565b600060208284031215611df457600080fd5b5035919050565b600060208284031215611e0d57600080fd5b8135801515811461157557600080fd5b60008060408385031215611e3057600080fd5b8235611e3b81611c36565b91506020830135611e4b81611c36565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611ecb57611ecb611ea1565b5060010190565b6020808252600d908201526c53746f7020736e6970696e672160981b604082015260600190565b60008219821115611f0c57611f0c611ea1565b500190565b600082821015611f2357611f23611ea1565b500390565b600060208284031215611f3a57600080fd5b815161157581611c36565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f955784516001600160a01b031683529383019391830191600101611f70565b50506001600160a01b03969096166060850152505050608001529392505050565b6000816000190483118215151615611fd057611fd0611ea1565b500290565b600082611ff257634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c7a8c07bc8b3951dc18fa15494af0c1d6d27d0617b610e20b6ca185fc18425ff64736f6c63430008080033

Deployed Bytecode

0x6080604052600436106101e75760003560e01c80636fc3eaec116101025780638da5cb5b11610095578063c552849011610064578063c552849014610599578063dd62ed3e146105b9578063ea1644d5146105ff578063f2fde38b1461061f57600080fd5b80638da5cb5b1461051a5780638f9a55c01461053857806395d89b411461054e578063a9059cbb1461057957600080fd5b8063790ca413116100d1578063790ca413146104b95780637c519ffb146104cf5780637d1db4a5146104e4578063881dce60146104fa57600080fd5b80636fc3eaec1461044f57806370a0823114610464578063715018a61461048457806374010ece1461049957600080fd5b80632fd689e31161017a57806349bd5a5e1161014957806349bd5a5e146103cf5780634bf2c7c9146103ef5780635d098b381461040f5780636d8aa8f81461042f57600080fd5b80632fd689e31461035d578063313ce5671461037357806333251a0b1461038f57806338eea22d146103af57600080fd5b806318160ddd116101b657806318160ddd146102df57806323b872dd1461030557806327c8f8351461032557806328bb665a1461033b57600080fd5b806306fdde03146101f3578063095ea7b31461023e5780630f3a325f1461026e5780631694505e146102a757600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5060408051808201909152601081526f506c6174696e756d2046696e616e636560801b60208201525b6040516102359190611be1565b60405180910390f35b34801561024a57600080fd5b5061025e610259366004611c5b565b61063f565b6040519015158152602001610235565b34801561027a57600080fd5b5061025e610289366004611c87565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156102b357600080fd5b506016546102c7906001600160a01b031681565b6040516001600160a01b039091168152602001610235565b3480156102eb57600080fd5b50683635c9adc5dea000005b604051908152602001610235565b34801561031157600080fd5b5061025e610320366004611ca4565b610656565b34801561033157600080fd5b506102c761dead81565b34801561034757600080fd5b5061035b610356366004611cfb565b6106bf565b005b34801561036957600080fd5b506102f7601a5481565b34801561037f57600080fd5b5060405160098152602001610235565b34801561039b57600080fd5b5061035b6103aa366004611c87565b6107e5565b3480156103bb57600080fd5b5061035b6103ca366004611dc0565b610854565b3480156103db57600080fd5b506017546102c7906001600160a01b031681565b3480156103fb57600080fd5b5061035b61040a366004611de2565b610889565b34801561041b57600080fd5b5061035b61042a366004611c87565b6108b8565b34801561043b57600080fd5b5061035b61044a366004611dfb565b610912565b34801561045b57600080fd5b5061035b61095a565b34801561047057600080fd5b506102f761047f366004611c87565b610984565b34801561049057600080fd5b5061035b6109a6565b3480156104a557600080fd5b5061035b6104b4366004611de2565b610a1a565b3480156104c557600080fd5b506102f7600a5481565b3480156104db57600080fd5b5061035b610a58565b3480156104f057600080fd5b506102f760185481565b34801561050657600080fd5b5061035b610515366004611de2565b610ab2565b34801561052657600080fd5b506000546001600160a01b03166102c7565b34801561054457600080fd5b506102f760195481565b34801561055a57600080fd5b50604080518082019091526002815261141d60f21b6020820152610228565b34801561058557600080fd5b5061025e610594366004611c5b565b610b2e565b3480156105a557600080fd5b5061035b6105b4366004611dc0565b610b3b565b3480156105c557600080fd5b506102f76105d4366004611e1d565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561060b57600080fd5b5061035b61061a366004611de2565b610b8c565b34801561062b57600080fd5b5061035b61063a366004611c87565b610bca565b600061064c338484610cb4565b5060015b92915050565b6000610663848484610dd8565b6106b584336106b085604051806060016040528060288152602001611ff8602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611484565b610cb4565b5060019392505050565b6000546001600160a01b031633146106f25760405162461bcd60e51b81526004016106e990611e56565b60405180910390fd5b60005b81518110156107e15760175482516001600160a01b039091169083908390811061072157610721611e8b565b60200260200101516001600160a01b031614158015610772575060165482516001600160a01b039091169083908390811061075e5761075e611e8b565b60200260200101516001600160a01b031614155b156107cf5760016009600084848151811061078f5761078f611e8b565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055505b806107d981611eb7565b9150506106f5565b5050565b6000546001600160a01b0316331461080f5760405162461bcd60e51b81526004016106e990611e56565b6001600160a01b03811660009081526009602052604090205460ff1615610851576001600160a01b0381166000908152600960205260409020805460ff191690555b50565b6000546001600160a01b0316331461087e5760405162461bcd60e51b81526004016106e990611e56565b600b91909155600d55565b6000546001600160a01b031633146108b35760405162461bcd60e51b81526004016106e990611e56565b601155565b6015546001600160a01b0316336001600160a01b0316146108d857600080fd5b601580546001600160a01b039092166001600160a01b0319909216821790556000908152600660205260409020805460ff19166001179055565b6000546001600160a01b0316331461093c5760405162461bcd60e51b81526004016106e990611e56565b60178054911515600160b01b0260ff60b01b19909216919091179055565b6015546001600160a01b0316336001600160a01b03161461097a57600080fd5b47610851816114be565b6001600160a01b038116600090815260026020526040812054610650906114f8565b6000546001600160a01b031633146109d05760405162461bcd60e51b81526004016106e990611e56565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a445760405162461bcd60e51b81526004016106e990611e56565b601854811015610a5357600080fd5b601855565b6000546001600160a01b03163314610a825760405162461bcd60e51b81526004016106e990611e56565b601754600160a01b900460ff1615610a9957600080fd5b6017805460ff60a01b1916600160a01b17905542600a55565b6015546001600160a01b0316336001600160a01b031614610ad257600080fd5b610adb30610984565b8111158015610aea5750600081115b610b255760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b60448201526064016106e9565b6108518161157c565b600061064c338484610dd8565b6000546001600160a01b03163314610b655760405162461bcd60e51b81526004016106e990611e56565b600d821115610b7357600080fd5b600d811115610b8157600080fd5b600c91909155600e55565b6000546001600160a01b03163314610bb65760405162461bcd60e51b81526004016106e990611e56565b601954811015610bc557600080fd5b601955565b6000546001600160a01b03163314610bf45760405162461bcd60e51b81526004016106e990611e56565b6001600160a01b038116610c595760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e9565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d165760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e9565b6001600160a01b038216610d775760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e9565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e3c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e9565b6001600160a01b038216610e9e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106e9565b60008111610f005760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106e9565b6001600160a01b03821660009081526009602052604090205460ff1615610f395760405162461bcd60e51b81526004016106e990611ed2565b6001600160a01b03831660009081526009602052604090205460ff1615610f725760405162461bcd60e51b81526004016106e990611ed2565b3360009081526009602052604090205460ff1615610fa25760405162461bcd60e51b81526004016106e990611ed2565b6000546001600160a01b03848116911614801590610fce57506000546001600160a01b03838116911614155b1561132e57601754600160a01b900460ff1661102c5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016106e9565b6017546001600160a01b03838116911614801561105757506016546001600160a01b03848116911614155b15611109576001600160a01b038216301480159061107e57506001600160a01b0383163014155b801561109857506015546001600160a01b03838116911614155b80156110b257506015546001600160a01b03848116911614155b15611109576018548111156111095760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106e9565b6017546001600160a01b0383811691161480159061113557506015546001600160a01b03838116911614155b801561114a57506001600160a01b0382163014155b801561116157506001600160a01b03821661dead14155b15611228576018548111156111b85760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106e9565b601954816111c584610984565b6111cf9190611ef9565b106112285760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106e9565b600061123330610984565b601a5490915081118080156112525750601754600160a81b900460ff16155b801561126c57506017546001600160a01b03868116911614155b80156112815750601754600160b01b900460ff165b80156112a657506001600160a01b03851660009081526006602052604090205460ff16155b80156112cb57506001600160a01b03841660009081526006602052604090205460ff16155b1561132b5760115460009015611306576112fb60646112f56011548661170590919063ffffffff16565b90611784565b9050611306816117c6565b6113186113138285611f11565b61157c565b47801561132857611328476114be565b50505b50505b6001600160a01b03831660009081526006602052604090205460019060ff168061137057506001600160a01b03831660009081526006602052604090205460ff165b806113a257506017546001600160a01b038581169116148015906113a257506017546001600160a01b03848116911614155b156113af57506000611472565b6017546001600160a01b0385811691161480156113da57506016546001600160a01b03848116911614155b15611435576001600160a01b03831660009081526004602052604090204290819055600b54600f55600c54601055600a541415611435576001600160a01b0383166000908152600960205260409020805460ff191660011790555b6017546001600160a01b03848116911614801561146057506016546001600160a01b03858116911614155b1561147257600d54600f55600e546010555b61147e848484846117d3565b50505050565b600081848411156114a85760405162461bcd60e51b81526004016106e99190611be1565b5060006114b58486611f11565b95945050505050565b6015546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156107e1573d6000803e3d6000fd5b600060075482111561155f5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106e9565b6000611569611807565b90506115758382611784565b9392505050565b6017805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106115c4576115c4611e8b565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561161857600080fd5b505afa15801561162c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116509190611f28565b8160018151811061166357611663611e8b565b6001600160a01b0392831660209182029290920101526016546116899130911684610cb4565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac947906116c2908590600090869030904290600401611f45565b600060405180830381600087803b1580156116dc57600080fd5b505af11580156116f0573d6000803e3d6000fd5b50506017805460ff60a81b1916905550505050565b60008261171457506000610650565b60006117208385611fb6565b90508261172d8583611fd5565b146115755760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106e9565b600061157583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061182a565b6108513061dead83610dd8565b806117e0576117e0611858565b6117eb84848461189d565b8061147e5761147e601254600f55601354601055601454601155565b6000806000611814611994565b90925090506118238282611784565b9250505090565b6000818361184b5760405162461bcd60e51b81526004016106e99190611be1565b5060006114b58486611fd5565b600f541580156118685750601054155b80156118745750601154155b1561187b57565b600f805460125560108054601355601180546014556000928390559082905555565b6000806000806000806118af876119d6565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506118e19087611a33565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546119109086611a75565b6001600160a01b03891660009081526002602052604090205561193281611ad4565b61193c8483611b1e565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161198191815260200190565b60405180910390a3505050505050505050565b6007546000908190683635c9adc5dea000006119b08282611784565b8210156119cd57505060075492683635c9adc5dea0000092509050565b90939092509050565b60008060008060008060008060006119f38a600f54601054611b42565b9250925092506000611a03611807565b90506000806000611a168e878787611b91565b919e509c509a509598509396509194505050505091939550919395565b600061157583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611484565b600080611a828385611ef9565b9050838110156115755760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106e9565b6000611ade611807565b90506000611aec8383611705565b30600090815260026020526040902054909150611b099082611a75565b30600090815260026020526040902055505050565b600754611b2b9083611a33565b600755600854611b3b9082611a75565b6008555050565b6000808080611b5660646112f58989611705565b90506000611b6960646112f58a89611705565b90506000611b8182611b7b8b86611a33565b90611a33565b9992985090965090945050505050565b6000808080611ba08886611705565b90506000611bae8887611705565b90506000611bbc8888611705565b90506000611bce82611b7b8686611a33565b939b939a50919850919650505050505050565b600060208083528351808285015260005b81811015611c0e57858101830151858201604001528201611bf2565b81811115611c20576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461085157600080fd5b8035611c5681611c36565b919050565b60008060408385031215611c6e57600080fd5b8235611c7981611c36565b946020939093013593505050565b600060208284031215611c9957600080fd5b813561157581611c36565b600080600060608486031215611cb957600080fd5b8335611cc481611c36565b92506020840135611cd481611c36565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611d0e57600080fd5b823567ffffffffffffffff80821115611d2657600080fd5b818501915085601f830112611d3a57600080fd5b813581811115611d4c57611d4c611ce5565b8060051b604051601f19603f83011681018181108582111715611d7157611d71611ce5565b604052918252848201925083810185019188831115611d8f57600080fd5b938501935b82851015611db457611da585611c4b565b84529385019392850192611d94565b98975050505050505050565b60008060408385031215611dd357600080fd5b50508035926020909101359150565b600060208284031215611df457600080fd5b5035919050565b600060208284031215611e0d57600080fd5b8135801515811461157557600080fd5b60008060408385031215611e3057600080fd5b8235611e3b81611c36565b91506020830135611e4b81611c36565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611ecb57611ecb611ea1565b5060010190565b6020808252600d908201526c53746f7020736e6970696e672160981b604082015260600190565b60008219821115611f0c57611f0c611ea1565b500190565b600082821015611f2357611f23611ea1565b500390565b600060208284031215611f3a57600080fd5b815161157581611c36565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f955784516001600160a01b031683529383019391830191600101611f70565b50506001600160a01b03969096166060850152505050608001529392505050565b6000816000190483118215151615611fd057611fd0611ea1565b500290565b600082611ff257634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c7a8c07bc8b3951dc18fa15494af0c1d6d27d0617b610e20b6ca185fc18425ff64736f6c63430008080033

Deployed Bytecode Sourcemap

4174:14944:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6773:83;;;;;;;;;;-1:-1:-1;6843:5:0;;;;;;;;;;;;-1:-1:-1;;;6843:5:0;;;;6773:83;;;;;;;:::i;:::-;;;;;;;;7698:193;;;;;;;;;;-1:-1:-1;7698:193:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;7698:193:0;1211:187:1;14371:105:0;;;;;;;;;;-1:-1:-1;14371:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;14451:17:0;14428:4;14451:17;;;:9;:17;;;;;;;;;14371:105;5625:41;;;;;;;;;;-1:-1:-1;5625:41:0;;;;-1:-1:-1;;;;;5625:41:0;;;;;;-1:-1:-1;;;;;1845:32:1;;;1827:51;;1815:2;1800:18;5625:41:0;1655:229:1;7050:95:0;;;;;;;;;;-1:-1:-1;4776:12:0;7050:95;;;2035:25:1;;;2023:2;2008:18;7050:95:0;1889:177:1;7899:446:0;;;;;;;;;;-1:-1:-1;7899:446:0;;;;;:::i;:::-;;:::i;5536:80::-;;;;;;;;;;;;5574:42;5536:80;;13922:283;;;;;;;;;;-1:-1:-1;13922:283:0;;;;;:::i;:::-;;:::i;:::-;;5924:49;;;;;;;;;;;;;;;;6959:83;;;;;;;;;;-1:-1:-1;6959:83:0;;4399:1;4140:36:1;;4128:2;4113:18;6959:83:0;3998:184:1;14213:150:0;;;;;;;;;;-1:-1:-1;14213:150:0;;;;;:::i;:::-;;:::i;18839:173::-;;;;;;;;;;-1:-1:-1;18839:173:0;;;;;:::i;:::-;;:::i;5673:28::-;;;;;;;;;;-1:-1:-1;5673:28:0;;;;-1:-1:-1;;;;;5673:28:0;;;19020:91;;;;;;;;;;-1:-1:-1;19020:91:0;;;;;:::i;:::-;;:::i;13440:235::-;;;;;;;;;;-1:-1:-1;13440:235:0;;;;;:::i;:::-;;:::i;18108:101::-;;;;;;;;;;-1:-1:-1;18108:101:0;;;;;:::i;:::-;;:::i;14484:196::-;;;;;;;;;;;;;:::i;7153:138::-;;;;;;;;;;-1:-1:-1;7153:138:0;;;;;:::i;:::-;;:::i;1653:148::-;;;;;;;;;;;;;:::i;18221:157::-;;;;;;;;;;-1:-1:-1;18221:157:0;;;;;:::i;:::-;;:::i;4933:25::-;;;;;;;;;;;;;;;;13283:147;;;;;;;;;;;;;:::i;5823:42::-;;;;;;;;;;;;;;;;13689:225;;;;;;;;;;-1:-1:-1;13689:225:0;;;;;:::i;:::-;;:::i;1439:79::-;;;;;;;;;;-1:-1:-1;1477:7:0;1504:6;-1:-1:-1;;;;;1504:6:0;1439:79;;5873:44;;;;;;;;;;;;;;;;6864:87;;;;;;;;;;-1:-1:-1;6936:7:0;;;;;;;;;;;;-1:-1:-1;;;6936:7:0;;;;6864:87;;7299:199;;;;;;;;;;-1:-1:-1;7299:199:0;;;;;:::i;:::-;;:::i;18566:265::-;;;;;;;;;;-1:-1:-1;18566:265:0;;;;;:::i;:::-;;:::i;7506:184::-;;;;;;;;;;-1:-1:-1;7506:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7655:18:0;;;7623:7;7655:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7506:184;18390:168;;;;;;;;;;-1:-1:-1;18390:168:0;;;;;:::i;:::-;;:::i;1813:244::-;;;;;;;;;;-1:-1:-1;1813:244:0;;;;;:::i;:::-;;:::i;7698:193::-;7800:4;7822:39;278:10;7845:7;7854:6;7822:8;:39::i;:::-;-1:-1:-1;7879:4:0;7698:193;;;;;:::o;7899:446::-;8031:4;8048:36;8058:6;8066:9;8077:6;8048:9;:36::i;:::-;8095:220;8118:6;278:10;8166:138;8222:6;8166:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8166:19:0;;;;;;:11;:19;;;;;;;;278:10;8166:33;;;;;;;;;;:37;:138::i;:::-;8095:8;:220::i;:::-;-1:-1:-1;8333:4:0;7899:446;;;;;:::o;13922:283::-;1566:6;;-1:-1:-1;;;;;1566:6:0;278:10;1566:22;1558:67;;;;-1:-1:-1;;;1558:67:0;;;;;;;:::i;:::-;;;;;;;;;14001:9:::1;13997:201;14018:7;:14;14015:1;:17;13997:201;;;14071:13;::::0;14057:10;;-1:-1:-1;;;;;14071:13:0;;::::1;::::0;14057:7;;14065:1;;14057:10;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;14057:27:0::1;;;:69;;;;-1:-1:-1::0;14110:15:0::1;::::0;14088:10;;-1:-1:-1;;;;;14110:15:0;;::::1;::::0;14088:7;;14096:1;;14088:10;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;14088:38:0::1;;;14057:69;14053:134;;;14167:4;14143:9;:21;14153:7;14161:1;14153:10;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;14143:21:0::1;-1:-1:-1::0;;;;;14143:21:0::1;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;14053:134;14034:3:::0;::::1;::::0;::::1;:::i;:::-;;;;13997:201;;;;13922:283:::0;:::o;14213:150::-;1566:6;;-1:-1:-1;;;;;1566:6:0;278:10;1566:22;1558:67;;;;-1:-1:-1;;;1558:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14285:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;;::::1;;14281:75;;;-1:-1:-1::0;;;;;14319:17:0;::::1;14339:5;14319:17:::0;;;:9:::1;:17;::::0;;;;:25;;-1:-1:-1;;14319:25:0::1;::::0;;14281:75:::1;14213:150:::0;:::o;18839:173::-;1566:6;;-1:-1:-1;;;;;1566:6:0;278:10;1566:22;1558:67;;;;-1:-1:-1;;;1558:67:0;;;;;;;:::i;:::-;18933:14:::1;:29:::0;;;;18973:15:::1;:31:::0;18839:173::o;19020:91::-;1566:6;;-1:-1:-1;;;;;1566:6:0;278:10;1566:22;1558:67;;;;-1:-1:-1;;;1558:67:0;;;;;;;:::i;:::-;19086:8:::1;:17:::0;19020:91::o;13440:235::-;13538:17;;-1:-1:-1;;;;;13538:17:0;278:10;-1:-1:-1;;;;;13522:33:0;;13514:42;;;;;;13567:17;:45;;-1:-1:-1;;;;;13567:45:0;;;-1:-1:-1;;;;;;13567:45:0;;;;;;;:17;13623:37;;;:18;:37;;;;;:44;;-1:-1:-1;;13623:44:0;13567:45;13623:44;;;13440:235::o;18108:101::-;1566:6;;-1:-1:-1;;;;;1566:6:0;278:10;1566:22;1558:67;;;;-1:-1:-1;;;1558:67:0;;;;;;;:::i;:::-;18175:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;18175:26:0::1;-1:-1:-1::0;;;;18175:26:0;;::::1;::::0;;;::::1;::::0;;18108:101::o;14484:196::-;14550:17;;-1:-1:-1;;;;;14550:17:0;278:10;-1:-1:-1;;;;;14534:33:0;;14526:42;;;;;;14608:21;14640:32;14608:21;14640:12;:32::i;7153:138::-;-1:-1:-1;;;;;7266:16:0;;7219:7;7266:16;;;:7;:16;;;;;;7246:37;;:19;:37::i;1653:148::-;1566:6;;-1:-1:-1;;;;;1566:6:0;278:10;1566:22;1558:67;;;;-1:-1:-1;;;1558:67:0;;;;;;;:::i;:::-;1760:1:::1;1744:6:::0;;1723:40:::1;::::0;-1:-1:-1;;;;;1744:6:0;;::::1;::::0;1723:40:::1;::::0;1760:1;;1723:40:::1;1791:1;1774:19:::0;;-1:-1:-1;;;;;;1774:19:0::1;::::0;;1653:148::o;18221:157::-;1566:6;;-1:-1:-1;;;;;1566:6:0;278:10;1566:22;1558:67;;;;-1:-1:-1;;;1558:67:0;;;;;;;:::i;:::-;18320:12:::1;;18305:11;:27;;18297:36;;;::::0;::::1;;18344:12;:26:::0;18221:157::o;13283:147::-;1566:6;;-1:-1:-1;;;;;1566:6:0;278:10;1566:22;1558:67;;;;-1:-1:-1;;;1558:67:0;;;;;;;:::i;:::-;13342:11:::1;::::0;-1:-1:-1;;;13342:11:0;::::1;;;13341:12;13333:21;;;::::0;::::1;;13365:11;:18:::0;;-1:-1:-1;;;;13365:18:0::1;-1:-1:-1::0;;;13365:18:0::1;::::0;;13407:15:::1;13394:10;:28:::0;13283:147::o;13689:225::-;13769:17;;-1:-1:-1;;;;;13769:17:0;278:10;-1:-1:-1;;;;;13753:33:0;;13745:42;;;;;;13816:24;13834:4;13816:9;:24::i;:::-;13806:6;:34;;:48;;;;;13853:1;13844:6;:10;13806:48;13798:73;;;;-1:-1:-1;;;13798:73:0;;6263:2:1;13798:73:0;;;6245:21:1;6302:2;6282:18;;;6275:30;-1:-1:-1;;;6321:18:1;;;6314:42;6373:18;;13798:73:0;6061:336:1;13798:73:0;13882:24;13899:6;13882:16;:24::i;7299:199::-;7404:4;7426:42;278:10;7450:9;7461:6;7426:9;:42::i;18566:265::-;1566:6;;-1:-1:-1;;;;;1566:6:0;278:10;1566:22;1558:67;;;;-1:-1:-1;;;1558:67:0;;;;;;;:::i;:::-;18693:2:::1;18680:9;:15;;18654:42;;;::::0;::::1;;18748:2;18734:10;:16;;18707:44;;;::::0;::::1;;18762:12;:24:::0;;;;18797:13:::1;:26:::0;18566:265::o;18390:168::-;1566:6;;-1:-1:-1;;;;;1566:6:0;278:10;1566:22;1558:67;;;;-1:-1:-1;;;1558:67:0;;;;;;;:::i;:::-;18494:14:::1;;18477:13;:31;;18469:40;;;::::0;::::1;;18520:14;:30:::0;18390:168::o;1813:244::-;1566:6;;-1:-1:-1;;;;;1566:6:0;278:10;1566:22;1558:67;;;;-1:-1:-1;;;1558:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1902:22:0;::::1;1894:73;;;::::0;-1:-1:-1;;;1894:73:0;;6604:2:1;1894:73:0::1;::::0;::::1;6586:21:1::0;6643:2;6623:18;;;6616:30;6682:34;6662:18;;;6655:62;-1:-1:-1;;;6733:18:1;;;6726:36;6779:19;;1894:73:0::1;6402:402:1::0;1894:73:0::1;2004:6;::::0;;1983:38:::1;::::0;-1:-1:-1;;;;;1983:38:0;;::::1;::::0;2004:6;::::1;::::0;1983:38:::1;::::0;::::1;2032:6;:17:::0;;-1:-1:-1;;;;;;2032:17:0::1;-1:-1:-1::0;;;;;2032:17:0;;;::::1;::::0;;;::::1;::::0;;1813:244::o;9164:369::-;-1:-1:-1;;;;;9291:19:0;;9283:68;;;;-1:-1:-1;;;9283:68:0;;7011:2:1;9283:68:0;;;6993:21:1;7050:2;7030:18;;;7023:30;7089:34;7069:18;;;7062:62;-1:-1:-1;;;7140:18:1;;;7133:34;7184:19;;9283:68:0;6809:400:1;9283:68:0;-1:-1:-1;;;;;9370:21:0;;9362:68;;;;-1:-1:-1;;;9362:68:0;;7416:2:1;9362:68:0;;;7398:21:1;7455:2;7435:18;;;7428:30;7494:34;7474:18;;;7467:62;-1:-1:-1;;;7545:18:1;;;7538:32;7587:19;;9362:68:0;7214:398:1;9362:68:0;-1:-1:-1;;;;;9441:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9493:32;;2035:25:1;;;9493:32:0;;2008:18:1;9493:32:0;;;;;;;9164:369;;;:::o;9541:3010::-;-1:-1:-1;;;;;9663:18:0;;9655:68;;;;-1:-1:-1;;;9655:68:0;;7819:2:1;9655:68:0;;;7801:21:1;7858:2;7838:18;;;7831:30;7897:34;7877:18;;;7870:62;-1:-1:-1;;;7948:18:1;;;7941:35;7993:19;;9655:68:0;7617:401:1;9655:68:0;-1:-1:-1;;;;;9742:16:0;;9734:64;;;;-1:-1:-1;;;9734:64:0;;8225:2:1;9734:64:0;;;8207:21:1;8264:2;8244:18;;;8237:30;8303:34;8283:18;;;8276:62;-1:-1:-1;;;8354:18:1;;;8347:33;8397:19;;9734:64:0;8023:399:1;9734:64:0;9826:1;9817:6;:10;9809:64;;;;-1:-1:-1;;;9809:64:0;;8629:2:1;9809:64:0;;;8611:21:1;8668:2;8648:18;;;8641:30;8707:34;8687:18;;;8680:62;-1:-1:-1;;;8758:18:1;;;8751:39;8807:19;;9809:64:0;8427:405:1;9809:64:0;-1:-1:-1;;;;;9893:13:0;;;;;;:9;:13;;;;;;;;9892:14;9884:40;;;;-1:-1:-1;;;9884:40:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9944:15:0;;;;;;:9;:15;;;;;;;;9943:16;9935:42;;;;-1:-1:-1;;;9935:42:0;;;;;;;:::i;:::-;278:10;9997:23;;;;:9;:23;;;;;;;;9996:24;9988:50;;;;-1:-1:-1;;;9988:50:0;;;;;;;:::i;:::-;1477:7;1504:6;-1:-1:-1;;;;;10055:15:0;;;1504:6;;10055:15;;;;:32;;-1:-1:-1;1477:7:0;1504:6;-1:-1:-1;;;;;10074:13:0;;;1504:6;;10074:13;;10055:32;10051:1644;;;10123:11;;-1:-1:-1;;;10123:11:0;;;;10118:87;;10155:34;;-1:-1:-1;;;10155:34:0;;9381:2:1;10155:34:0;;;9363:21:1;9420:2;9400:18;;;9393:30;9459:26;9439:18;;;9432:54;9503:18;;10155:34:0;9179:348:1;10118:87:0;10243:13;;-1:-1:-1;;;;;10237:19:0;;;10243:13;;10237:19;:55;;;;-1:-1:-1;10276:15:0;;-1:-1:-1;;;;;10260:32:0;;;10276:15;;10260:32;;10237:55;10233:307;;;-1:-1:-1;;;;;10317:19:0;;10331:4;10317:19;;;;:44;;-1:-1:-1;;;;;;10340:21:0;;10356:4;10340:21;;10317:44;:71;;;;-1:-1:-1;10371:17:0;;-1:-1:-1;;;;;10365:23:0;;;10371:17;;10365:23;;10317:71;:100;;;;-1:-1:-1;10400:17:0;;-1:-1:-1;;;;;10392:25:0;;;10400:17;;10392:25;;10317:100;10313:212;;;10460:12;;10450:6;:22;;10442:63;;;;-1:-1:-1;;;10442:63:0;;9734:2:1;10442:63:0;;;9716:21:1;9773:2;9753:18;;;9746:30;9812;9792:18;;;9785:58;9860:18;;10442:63:0;9532:352:1;10442:63:0;10566:13;;-1:-1:-1;;;;;10560:19:0;;;10566:13;;10560:19;;;;:46;;-1:-1:-1;10589:17:0;;-1:-1:-1;;;;;10583:23:0;;;10589:17;;10583:23;;10560:46;:69;;;;-1:-1:-1;;;;;;10610:19:0;;10624:4;10610:19;;10560:69;:90;;;;-1:-1:-1;;;;;;10633:17:0;;5574:42;10633:17;;10560:90;10556:318;;;10689:12;;10679:6;:22;;10671:63;;;;-1:-1:-1;;;10671:63:0;;9734:2:1;10671:63:0;;;9716:21:1;9773:2;9753:18;;;9746:30;9812;9792:18;;;9785:58;9860:18;;10671:63:0;9532:352:1;10671:63:0;10786:14;;10777:6;10761:13;10771:2;10761:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10753:87;;;;-1:-1:-1;;;10753:87:0;;10224:2:1;10753:87:0;;;10206:21:1;10263:2;10243:18;;;10236:30;10302:34;10282:18;;;10275:62;-1:-1:-1;;;10353:18:1;;;10346:33;10396:19;;10753:87:0;10022:399:1;10753:87:0;10902:28;10933:24;10951:4;10933:9;:24::i;:::-;11010:19;;10902:55;;-1:-1:-1;10987:42:0;;;11062:18;;;;-1:-1:-1;11074:6:0;;-1:-1:-1;;;11074:6:0;;;;11073:7;11062:18;:43;;;;-1:-1:-1;11092:13:0;;-1:-1:-1;;;;;11084:21:0;;;11092:13;;11084:21;;11062:43;:58;;;;-1:-1:-1;11109:11:0;;-1:-1:-1;;;11109:11:0;;;;11062:58;:87;;;;-1:-1:-1;;;;;;11125:24:0;;;;;;:18;:24;;;;;;;;11124:25;11062:87;:114;;;;-1:-1:-1;;;;;;11154:22:0;;;;;;:18;:22;;;;;;;;11153:23;11062:114;11058:626;;;11243:8;;11197:19;;11243:12;11239:166;;11294:45;11333:5;11294:34;11319:8;;11294:20;:24;;:34;;;;:::i;:::-;:38;;:45::i;:::-;11280:59;;11362:23;11373:11;11362:10;:23::i;:::-;11423:52;11440:34;11463:11;11440:20;:34;:::i;:::-;11423:16;:52::i;:::-;11523:21;11567:22;;11563:106;;11614:35;11627:21;11614:12;:35::i;:::-;11178:506;;11058:626;10089:1606;;10051:1644;-1:-1:-1;;;;;11752:24:0;;11715:12;11752:24;;;:18;:24;;;;;;11730:4;;11752:24;;;:50;;-1:-1:-1;;;;;;11780:22:0;;;;;;:18;:22;;;;;;;;11752:50;11751:102;;;-1:-1:-1;11816:13:0;;-1:-1:-1;;;;;11808:21:0;;;11816:13;;11808:21;;;;:44;;-1:-1:-1;11839:13:0;;-1:-1:-1;;;;;11833:19:0;;;11839:13;;11833:19;;11808:44;11747:743;;;-1:-1:-1;11880:5:0;11747:743;;;11929:13;;-1:-1:-1;;;;;11921:21:0;;;11929:13;;11921:21;:55;;;;-1:-1:-1;11960:15:0;;-1:-1:-1;;;;;11946:30:0;;;11960:15;;11946:30;;11921:55;11918:350;;;-1:-1:-1;;;;;12001:11:0;;;;;;:7;:11;;;;;12015:15;12001:29;;;;12065:14;;12053:9;:26;12112:12;;12102:7;:22;12170:10;;12151:29;12147:106;;;-1:-1:-1;;;;;12209:13:0;;;;;;:9;:13;;;;;:20;;-1:-1:-1;;12209:20:0;12225:4;12209:20;;;12147:106;12298:13;;-1:-1:-1;;;;;12292:19:0;;;12298:13;;12292:19;:55;;;;-1:-1:-1;12331:15:0;;-1:-1:-1;;;;;12315:32:0;;;12331:15;;12315:32;;12292:55;12288:191;;;12402:15;;12390:9;:27;12450:13;;12440:7;:23;12288:191;12502:41;12517:4;12523:2;12527:6;12535:7;12502:14;:41::i;:::-;9644:2907;9541:3010;;;:::o;2425:224::-;2545:7;2581:12;2573:6;;;;2565:29;;;;-1:-1:-1;;;2565:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2605:9:0;2617:5;2621:1;2617;:5;:::i;:::-;2605:17;2425:224;-1:-1:-1;;;;;2425:224:0:o;13176:99::-;13233:17;;:34;;-1:-1:-1;;;;;13233:17:0;;;;:34;;;;;13260:6;;13233:17;:34;:17;:34;13260:6;13233:17;:34;;;;;;;;;;;;;;;;;;;8353:323;8448:7;8506;;8495;:18;;8473:110;;;;-1:-1:-1;;;8473:110:0;;10758:2:1;8473:110:0;;;10740:21:1;10797:2;10777:18;;;10770:30;10836:34;10816:18;;;10809:62;-1:-1:-1;;;10887:18:1;;;10880:40;10937:19;;8473:110:0;10556:406:1;8473:110:0;8594:19;8616:10;:8;:10::i;:::-;8594:32;-1:-1:-1;8644:24:0;:7;8594:32;8644:11;:24::i;:::-;8637:31;8353:323;-1:-1:-1;;;8353:323:0:o;12685:483::-;6067:6;:13;;-1:-1:-1;;;;6067:13:0;-1:-1:-1;;;6067:13:0;;;12787:16:::1;::::0;;12801:1:::1;12787:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12787:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12787:16:0::1;12763:40;;12832:4;12814;12819:1;12814:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12814:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12858:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12858:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12814:7;;12858:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12848:4;12853:1;12848:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12848:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12923:15:::1;::::0;12891:62:::1;::::0;12908:4:::1;::::0;12923:15:::1;12941:11:::0;12891:8:::1;:62::i;:::-;12964:15;::::0;:196:::1;::::0;-1:-1:-1;;;12964:196:0;;-1:-1:-1;;;;;12964:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13045:11;;12964:15:::1;::::0;13087:4;;13114::::1;::::0;13134:15:::1;::::0;12964:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6103:6:0;:14;;-1:-1:-1;;;;6103:14:0;;;-1:-1:-1;;;;12685:483:0:o;2657:246::-;2715:7;2739:6;2735:47;;-1:-1:-1;2769:1:0;2762:8;;2735:47;2792:9;2804:5;2808:1;2804;:5;:::i;:::-;2792:17;-1:-1:-1;2837:1:0;2828:5;2832:1;2792:17;2828:5;:::i;:::-;:10;2820:56;;;;-1:-1:-1;;;2820:56:0;;12805:2:1;2820:56:0;;;12787:21:1;12844:2;12824:18;;;12817:30;12883:34;12863:18;;;12856:62;-1:-1:-1;;;12934:18:1;;;12927:31;12975:19;;2820:56:0;12603:397:1;2911:132:0;2969:7;2996:39;3000:1;3003;2996:39;;;;;;;;;;;;;;;;;:3;:39::i;12559:118::-;12619:50;12637:4;5574:42;12657:11;12619:9;:50::i;14688:282::-;14844:7;14839:28;;14853:14;:12;:14::i;:::-;14878:44;14896:6;14904:9;14915:6;14878:17;:44::i;:::-;14938:7;14933:29;;14947:15;9057:17;;9045:9;:29;9095:15;;9085:7;:25;9132:16;;9121:8;:27;9001:155;17663:166;17705:7;17726:15;17743;17762:19;:17;:19::i;:::-;17725:56;;-1:-1:-1;17725:56:0;-1:-1:-1;17801:20:0;17725:56;;17801:11;:20::i;:::-;17794:27;;;;17663:166;:::o;3051:223::-;3171:7;3206:12;3199:5;3191:28;;;;-1:-1:-1;;;3191:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3230:9:0;3242:5;3246:1;3242;:5;:::i;8684:309::-;8731:9;;:14;:30;;;;-1:-1:-1;8749:7:0;;:12;8731:30;:47;;;;-1:-1:-1;8765:8:0;;:13;8731:47;8727:60;;;8684:309::o;8727:60::-;8823:9;;;8803:17;:29;8861:7;;;8843:15;:25;8898:8;;;8879:16;:27;-1:-1:-1;8927:13:0;;;;8951:11;;;;8973:12;8684:309::o;14978:610::-;15125:15;15155:23;15193:12;15220:23;15258:12;15285:13;15312:19;15323:7;15312:10;:19::i;:::-;-1:-1:-1;;;;;15360:15:0;;;;;;:7;:15;;;;;;15110:221;;-1:-1:-1;15110:221:0;;-1:-1:-1;15110:221:0;;-1:-1:-1;15110:221:0;-1:-1:-1;15110:221:0;-1:-1:-1;15110:221:0;-1:-1:-1;15360:28:0;;15110:221;15360:19;:28::i;:::-;-1:-1:-1;;;;;15342:15:0;;;;;;;:7;:15;;;;;;:46;;;;15420:18;;;;;;;:39;;15443:15;15420:22;:39::i;:::-;-1:-1:-1;;;;;15399:18:0;;;;;;:7;:18;;;;;:60;15470:16;15480:5;15470:9;:16::i;:::-;15497:23;15509:4;15515;15497:11;:23::i;:::-;15553:9;-1:-1:-1;;;;;15536:44:0;15545:6;-1:-1:-1;;;;;15536:44:0;;15564:15;15536:44;;;;2035:25:1;;2023:2;2008:18;;1889:177;15536:44:0;;;;;;;;15099:489;;;;;;14978:610;;;:::o;17837:263::-;17935:7;;17888;;;;4776:12;18003:20;17935:7;4776:12;18003:11;:20::i;:::-;17993:7;:30;17989:61;;;-1:-1:-1;;18033:7:0;;;4776:12;;-1:-1:-1;17837:263:0;-1:-1:-1;17837:263:0:o;17989:61::-;18075:7;;18084;;-1:-1:-1;17837:263:0;-1:-1:-1;17837:263:0:o;16007:625::-;16107:7;16129;16151;16173;16195;16217;16253:23;16278:12;16292:13;16322:40;16334:7;16343:9;;16354:7;;16322:11;:40::i;:::-;16252:110;;;;;;16373:19;16395:10;:8;:10::i;:::-;16373:32;;16417:15;16434:23;16459:12;16488:46;16500:7;16509:4;16515:5;16522:11;16488;:46::i;:::-;16416:118;;-1:-1:-1;16416:118:0;-1:-1:-1;16416:118:0;-1:-1:-1;16595:15:0;;-1:-1:-1;16612:4:0;;-1:-1:-1;16618:5:0;;-1:-1:-1;;;;;16007:625:0;;;;;;;:::o;2281:136::-;2339:7;2366:43;2370:1;2373;2366:43;;;;;;;;;;;;;;;;;:3;:43::i;2094:179::-;2152:7;;2184:5;2188:1;2184;:5;:::i;:::-;2172:17;;2213:1;2208;:6;;2200:46;;;;-1:-1:-1;;;2200:46:0;;13207:2:1;2200:46:0;;;13189:21:1;13246:2;13226:18;;;13219:30;13285:29;13265:18;;;13258:57;13332:18;;2200:46:0;13005:351:1;15596:211:0;15649:19;15671:10;:8;:10::i;:::-;15649:32;-1:-1:-1;15692:13:0;15708:22;:5;15649:32;15708:9;:22::i;:::-;15782:4;15766:22;;;;:7;:22;;;;;;15692:38;;-1:-1:-1;15766:33:0;;15692:38;15766:26;:33::i;:::-;15757:4;15741:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;15596:211:0:o;15815:147::-;15893:7;;:17;;15905:4;15893:11;:17::i;:::-;15883:7;:27;15934:10;;:20;;15949:4;15934:14;:20::i;:::-;15921:10;:33;-1:-1:-1;;15815:147:0:o;16640:471::-;16809:7;;;;16903:30;16929:3;16903:21;:7;16915:8;16903:11;:21::i;:30::-;16888:45;-1:-1:-1;16944:13:0;16960:28;16984:3;16960:19;:7;16972:6;16960:11;:19::i;:28::-;16944:44;-1:-1:-1;16999:23:0;17025:28;16944:44;17025:17;:7;17037:4;17025:11;:17::i;:::-;:21;;:28::i;:::-;16999:54;17091:4;;-1:-1:-1;17097:5:0;;-1:-1:-1;16640:471:0;;-1:-1:-1;;;;;16640:471:0:o;17119:536::-;17313:7;;;;17410:24;:7;17422:11;17410;:24::i;:::-;17392:42;-1:-1:-1;17445:12:0;17460:21;:4;17469:11;17460:8;:21::i;:::-;17445:36;-1:-1:-1;17492:13:0;17508:22;:5;17518:11;17508:9;:22::i;:::-;17492:38;-1:-1:-1;17541:23:0;17567:28;17492:38;17567:17;:7;17579:4;17567:11;:17::i;:28::-;17616:7;;;;-1:-1:-1;17642:4:0;;-1:-1:-1;17119:536:0;;-1:-1:-1;;;;;;;17119:536:0:o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:134;820:20;;849:31;820:20;849:31;:::i;:::-;752:134;;;:::o;891:315::-;959:6;967;1020:2;1008:9;999:7;995:23;991:32;988:52;;;1036:1;1033;1026:12;988:52;1075:9;1062:23;1094:31;1119:5;1094:31;:::i;:::-;1144:5;1196:2;1181:18;;;;1168:32;;-1:-1:-1;;;891:315:1:o;1403:247::-;1462:6;1515:2;1503:9;1494:7;1490:23;1486:32;1483:52;;;1531:1;1528;1521:12;1483:52;1570:9;1557:23;1589:31;1614:5;1589:31;:::i;2071:456::-;2148:6;2156;2164;2217:2;2205:9;2196:7;2192:23;2188:32;2185:52;;;2233:1;2230;2223:12;2185:52;2272:9;2259:23;2291:31;2316:5;2291:31;:::i;:::-;2341:5;-1:-1:-1;2398:2:1;2383:18;;2370:32;2411:33;2370:32;2411:33;:::i;:::-;2071:456;;2463:7;;-1:-1:-1;;;2517:2:1;2502:18;;;;2489:32;;2071:456::o;2740:127::-;2801:10;2796:3;2792:20;2789:1;2782:31;2832:4;2829:1;2822:15;2856:4;2853:1;2846:15;2872:1121;2956:6;2987:2;3030;3018:9;3009:7;3005:23;3001:32;2998:52;;;3046:1;3043;3036:12;2998:52;3086:9;3073:23;3115:18;3156:2;3148:6;3145:14;3142:34;;;3172:1;3169;3162:12;3142:34;3210:6;3199:9;3195:22;3185:32;;3255:7;3248:4;3244:2;3240:13;3236:27;3226:55;;3277:1;3274;3267:12;3226:55;3313:2;3300:16;3335:2;3331;3328:10;3325:36;;;3341:18;;:::i;:::-;3387:2;3384:1;3380:10;3419:2;3413:9;3482:2;3478:7;3473:2;3469;3465:11;3461:25;3453:6;3449:38;3537:6;3525:10;3522:22;3517:2;3505:10;3502:18;3499:46;3496:72;;;3548:18;;:::i;:::-;3584:2;3577:22;3634:18;;;3668:15;;;;-1:-1:-1;3710:11:1;;;3706:20;;;3738:19;;;3735:39;;;3770:1;3767;3760:12;3735:39;3794:11;;;;3814:148;3830:6;3825:3;3822:15;3814:148;;;3896:23;3915:3;3896:23;:::i;:::-;3884:36;;3847:12;;;;3940;;;;3814:148;;;3981:6;2872:1121;-1:-1:-1;;;;;;;;2872:1121:1:o;4187:248::-;4255:6;4263;4316:2;4304:9;4295:7;4291:23;4287:32;4284:52;;;4332:1;4329;4322:12;4284:52;-1:-1:-1;;4355:23:1;;;4425:2;4410:18;;;4397:32;;-1:-1:-1;4187:248:1:o;4440:180::-;4499:6;4552:2;4540:9;4531:7;4527:23;4523:32;4520:52;;;4568:1;4565;4558:12;4520:52;-1:-1:-1;4591:23:1;;4440:180;-1:-1:-1;4440:180:1:o;4625:273::-;4681:6;4734:2;4722:9;4713:7;4709:23;4705:32;4702:52;;;4750:1;4747;4740:12;4702:52;4789:9;4776:23;4842:5;4835:13;4828:21;4821:5;4818:32;4808:60;;4864:1;4861;4854:12;4903:388;4971:6;4979;5032:2;5020:9;5011:7;5007:23;5003:32;5000:52;;;5048:1;5045;5038:12;5000:52;5087:9;5074:23;5106:31;5131:5;5106:31;:::i;:::-;5156:5;-1:-1:-1;5213:2:1;5198:18;;5185:32;5226:33;5185:32;5226:33;:::i;:::-;5278:7;5268:17;;;4903:388;;;;;:::o;5296:356::-;5498:2;5480:21;;;5517:18;;;5510:30;5576:34;5571:2;5556:18;;5549:62;5643:2;5628:18;;5296:356::o;5657:127::-;5718:10;5713:3;5709:20;5706:1;5699:31;5749:4;5746:1;5739:15;5773:4;5770:1;5763:15;5789:127;5850:10;5845:3;5841:20;5838:1;5831:31;5881:4;5878:1;5871:15;5905:4;5902:1;5895:15;5921:135;5960:3;-1:-1:-1;;5981:17:1;;5978:43;;;6001:18;;:::i;:::-;-1:-1:-1;6048:1:1;6037:13;;5921:135::o;8837:337::-;9039:2;9021:21;;;9078:2;9058:18;;;9051:30;-1:-1:-1;;;9112:2:1;9097:18;;9090:43;9165:2;9150:18;;8837:337::o;9889:128::-;9929:3;9960:1;9956:6;9953:1;9950:13;9947:39;;;9966:18;;:::i;:::-;-1:-1:-1;10002:9:1;;9889:128::o;10426:125::-;10466:4;10494:1;10491;10488:8;10485:34;;;10499:18;;:::i;:::-;-1:-1:-1;10536:9:1;;10426:125::o;10967:251::-;11037:6;11090:2;11078:9;11069:7;11065:23;11061:32;11058:52;;;11106:1;11103;11096:12;11058:52;11138:9;11132:16;11157:31;11182:5;11157:31;:::i;11223:980::-;11485:4;11533:3;11522:9;11518:19;11564:6;11553:9;11546:25;11590:2;11628:6;11623:2;11612:9;11608:18;11601:34;11671:3;11666:2;11655:9;11651:18;11644:31;11695:6;11730;11724:13;11761:6;11753;11746:22;11799:3;11788:9;11784:19;11777:26;;11838:2;11830:6;11826:15;11812:29;;11859:1;11869:195;11883:6;11880:1;11877:13;11869:195;;;11948:13;;-1:-1:-1;;;;;11944:39:1;11932:52;;12039:15;;;;12004:12;;;;11980:1;11898:9;11869:195;;;-1:-1:-1;;;;;;;12120:32:1;;;;12115:2;12100:18;;12093:60;-1:-1:-1;;;12184:3:1;12169:19;12162:35;12081:3;11223:980;-1:-1:-1;;;11223:980:1:o;12208:168::-;12248:7;12314:1;12310;12306:6;12302:14;12299:1;12296:21;12291:1;12284:9;12277:17;12273:45;12270:71;;;12321:18;;:::i;:::-;-1:-1:-1;12361:9:1;;12208:168::o;12381:217::-;12421:1;12447;12437:132;;12491:10;12486:3;12482:20;12479:1;12472:31;12526:4;12523:1;12516:15;12554:4;12551:1;12544:15;12437:132;-1:-1:-1;12583:9:1;;12381:217::o

Swarm Source

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