ETH Price: $3,415.70 (+0.31%)
Gas: 7 Gwei

Token

Bubble Bean (BUBB)
 

Overview

Max Total Supply

690,000,000,000 BUBB

Holders

17

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
10,874,400,000 BUBB

Value
$0.00
0x2c4d8491da647594086af2c4300b71d28b501119
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:
Bubblebean

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
Website: https://www.bubble-bean.com
Telegram: https://t.me/bubblebeanerc
Twitter: https://twitter.com/bubblebeanerc
Litepaper: https://bubble-bean.gitbook.io/bubble-bean-litepaper/
**/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.9;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

}

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract Bubblebean is Context, IERC20, Ownable {

    using SafeMath for uint256;

    //Anti-MEV
    uint256 public blockCooldown = 1;
    mapping(address => uint256) private previousTradeBlock;
    mapping (address => bool) private isContractExempt;
    bool public enableAntiMEV = false;

    string private constant _name = "Bubble Bean";
    string private constant _symbol = "BUBB";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 690_000_000_000 * 10**_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 20;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 20;

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

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

    mapping(address => bool) public bots; 
    mapping (address => uint256) public _buyMap;
    address payable private _developmentAddress = payable(msg.sender);
    address payable private _marketingAddress = payable(msg.sender);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 13_800_000_000 * 10**_decimals; // 2%
    uint256 public _maxWalletSize = 13_800_000_000 * 10**_decimals; // 2%
    uint256 public _swapTokensAtAmount = 345_000_000 * 10**_decimals; // 0.05%

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

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

        isContractExempt[address(this)] = true;

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

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

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

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

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

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

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

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

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

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

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

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

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() 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(enableAntiMEV && !isContractExempt[from] && !isContractExempt[to]){
            address human = checkIsContract(from, to);
            ensureMaxTxFrequency(human);
            previousTradeBlock[human] = block.number;
        }

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

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

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");

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

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

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

        }

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

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

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

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

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

    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

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

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

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

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

    receive() external payable {}

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

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

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

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

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

    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        require(_redisFeeOnBuy <= 15 && _redisFeeOnSell <= 15, "redIsFee is set too high");

        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
        require(_taxFeeOnBuy <= 15 && _taxFeeOnSell <= 15, "taxFee is set too high");
    }

    //Anti-MEV
    function setContractExempt(address account, bool value) external onlyOwner {
        isContractExempt[account] = value;
    }

    function updateAntiMEV(bool value) external onlyOwner {
        require(!enableAntiMEV, "AntiMEV mode cannot be switched off!");
        enableAntiMEV = value;
    }

    function setBlockCooldown(uint256 _value) external onlyOwner {
        require(_value > 0 && _value < 4, "Only trade cooldown values in range 0 to 4 is allowed");
        blockCooldown = _value;
    }

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function checkIsContract(address _to, address _from) private view returns (address) {
        require(!isContract(_to) || !isContract(_from));
        if (isContract(_to)) return _from;
        else return _to;
    }

    function ensureMaxTxFrequency(address _wallet) view private {
        bool isAllowed = previousTradeBlock[_wallet] == 0 ||
            ((previousTradeBlock[_wallet] + blockCooldown) < (block.number + 1));
        require(isAllowed, "Max tx frequency exceeded!");
    }

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

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

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

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

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

}

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":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"blockCooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableAntiMEV","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setBlockCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setContractExempt","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","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"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"updateAntiMEV","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260016002556005805460ff19169055620000216009600a620004f4565b620000329064a0a73474006200050c565b620000409060001962000526565b6200004e9060001962000549565b600a9081556000600c8190556014600d819055600e829055600f81905560108290556011819055601291909155601355601680546001600160a01b0319908116339081179092556017805490911690911790556019805462ffffff60a01b1916600160b01b179055620000c490600990620004f4565b620000d5906403368b4a006200050c565b601a55620000e66009600a620004f4565b620000f7906403368b4a006200050c565b601b55620001086009600a620004f4565b620001189063149048406200050c565b601c553480156200012857600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600a543360009081526006602090815260409182902092909255601880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020c91906200055f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028091906200055f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002ce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f491906200055f565b601980546001600160a01b0319166001600160a01b039283161790556000805482168152600960209081526040808320805460ff1990811660019081179092553080865283862080548316841790556016548716865283862080548316841790556017549096168552828520805482168317905594845260049092529091208054909216179055336001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003b66009600a620004f4565b620003c79064a0a73474006200050c565b60405190815260200160405180910390a3506200058a565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004365781600019048211156200041a576200041a620003df565b808516156200042857918102915b93841c9390800290620003fa565b509250929050565b6000826200044f57506001620004ee565b816200045e57506000620004ee565b81600181146200047757600281146200048257620004a2565b6001915050620004ee565b60ff841115620004965762000496620003df565b50506001821b620004ee565b5060208310610133831016604e8410600b8410161715620004c7575081810a620004ee565b620004d38383620003f5565b8060001904821115620004ea57620004ea620003df565b0290505b92915050565b60006200050560ff8416836200043e565b9392505050565b8082028115828204841417620004ee57620004ee620003df565b6000826200054457634e487b7160e01b600052601260045260246000fd5b500690565b81810381811115620004ee57620004ee620003df565b6000602082840312156200057257600080fd5b81516001600160a01b03811681146200050557600080fd5b6123ea806200059a6000396000f3fe6080604052600436106102075760003560e01c806374010ece1161011857806398a5c315116100a0578063c3c8cd801161006f578063c3c8cd8014610606578063c492f0461461061b578063dd62ed3e1461063b578063ea1644d514610681578063f2fde38b146106a157600080fd5b806398a5c31514610576578063a2a957bb14610596578063a9059cbb146105b6578063bfd79284146105d657600080fd5b80638da5cb5b116100e75780638da5cb5b146104d55780638f70ccf7146104f35780638f9a55c01461051357806395d89b41146105295780639686d3221461055657600080fd5b806374010ece14610452578063793fcb55146104725780637d1db4a5146104925780637f2feddc146104a857600080fd5b80632947c4191161019b5780636b9990531161016a5780636b999053146103c85780636d8aa8f8146103e85780636fc3eaec1461040857806370a082311461041d578063715018a61461043d57600080fd5b80632947c419146103605780632fd689e314610376578063313ce5671461038c57806349bd5a5e146103a857600080fd5b80631694505e116101d75780631694505e146102cb57806318160ddd146103035780631b12cf1e1461032657806323b872dd1461034057600080fd5b8062b8cf2a1461021357806306fdde0314610235578063095ea7b31461027b57806313c72aed146102ab57600080fd5b3661020e57005b600080fd5b34801561021f57600080fd5b5061023361022e366004611e2d565b6106c1565b005b34801561024157600080fd5b5060408051808201909152600b81526a213ab1313632902132b0b760a91b60208201525b6040516102729190611ef2565b60405180910390f35b34801561028757600080fd5b5061029b610296366004611f40565b610760565b6040519015158152602001610272565b3480156102b757600080fd5b506102336102c6366004611f6c565b610777565b3480156102d757600080fd5b506018546102eb906001600160a01b031681565b6040516001600160a01b039091168152602001610272565b34801561030f57600080fd5b50610318610820565b604051908152602001610272565b34801561033257600080fd5b5060055461029b9060ff1681565b34801561034c57600080fd5b5061029b61035b366004611f85565b610842565b34801561036c57600080fd5b5061031860025481565b34801561038257600080fd5b50610318601c5481565b34801561039857600080fd5b5060405160098152602001610272565b3480156103b457600080fd5b506019546102eb906001600160a01b031681565b3480156103d457600080fd5b506102336103e3366004611fc6565b6108ab565b3480156103f457600080fd5b50610233610403366004611ff3565b6108f6565b34801561041457600080fd5b5061023361093e565b34801561042957600080fd5b50610318610438366004611fc6565b610989565b34801561044957600080fd5b506102336109ab565b34801561045e57600080fd5b5061023361046d366004611f6c565b610a1f565b34801561047e57600080fd5b5061023361048d366004611ff3565b610a4e565b34801561049e57600080fd5b50610318601a5481565b3480156104b457600080fd5b506103186104c3366004611fc6565b60156020526000908152604090205481565b3480156104e157600080fd5b506000546001600160a01b03166102eb565b3480156104ff57600080fd5b5061023361050e366004611ff3565b610aea565b34801561051f57600080fd5b50610318601b5481565b34801561053557600080fd5b50604080518082019091526004815263212aa12160e11b6020820152610265565b34801561056257600080fd5b5061023361057136600461200e565b610b32565b34801561058257600080fd5b50610233610591366004611f6c565b610b87565b3480156105a257600080fd5b506102336105b1366004612043565b610bb6565b3480156105c257600080fd5b5061029b6105d1366004611f40565b610cb0565b3480156105e257600080fd5b5061029b6105f1366004611fc6565b60146020526000908152604090205460ff1681565b34801561061257600080fd5b50610233610cbd565b34801561062757600080fd5b50610233610636366004612075565b610d11565b34801561064757600080fd5b506103186106563660046120f9565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561068d57600080fd5b5061023361069c366004611f6c565b610dac565b3480156106ad57600080fd5b506102336106bc366004611fc6565b610ddb565b6000546001600160a01b031633146106f45760405162461bcd60e51b81526004016106eb90612132565b60405180910390fd5b60005b815181101561075c5760016014600084848151811061071857610718612167565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061075481612193565b9150506106f7565b5050565b600061076d338484610ec5565b5060015b92915050565b6000546001600160a01b031633146107a15760405162461bcd60e51b81526004016106eb90612132565b6000811180156107b15750600481105b61081b5760405162461bcd60e51b815260206004820152603560248201527f4f6e6c7920747261646520636f6f6c646f776e2076616c75657320696e2072616044820152741b99d9480c081d1bc80d081a5cc8185b1b1bddd959605a1b60648201526084016106eb565b600255565b600061082e6009600a612290565b61083d9064a0a734740061229f565b905090565b600061084f848484610fe9565b6108a1843361089c8560405180606001604052806028815260200161238d602891396001600160a01b038a16600090815260086020908152604080832033845290915290205491906115ac565b610ec5565b5060019392505050565b6000546001600160a01b031633146108d55760405162461bcd60e51b81526004016106eb90612132565b6001600160a01b03166000908152601460205260409020805460ff19169055565b6000546001600160a01b031633146109205760405162461bcd60e51b81526004016106eb90612132565b60198054911515600160b01b0260ff60b01b19909216919091179055565b6016546001600160a01b0316336001600160a01b0316148061097357506017546001600160a01b0316336001600160a01b0316145b61097c57600080fd5b47610986816115e6565b50565b6001600160a01b03811660009081526006602052604081205461077190611620565b6000546001600160a01b031633146109d55760405162461bcd60e51b81526004016106eb90612132565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a495760405162461bcd60e51b81526004016106eb90612132565b601a55565b6000546001600160a01b03163314610a785760405162461bcd60e51b81526004016106eb90612132565b60055460ff1615610ad75760405162461bcd60e51b8152602060048201526024808201527f416e74694d4556206d6f64652063616e6e6f74206265207377697463686564206044820152636f66662160e01b60648201526084016106eb565b6005805460ff1916911515919091179055565b6000546001600160a01b03163314610b145760405162461bcd60e51b81526004016106eb90612132565b60198054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610b5c5760405162461bcd60e51b81526004016106eb90612132565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610bb15760405162461bcd60e51b81526004016106eb90612132565b601c55565b6000546001600160a01b03163314610be05760405162461bcd60e51b81526004016106eb90612132565b600c849055600e839055600f8411801590610bfe5750600f600e5411155b610c4a5760405162461bcd60e51b815260206004820152601860248201527f72656449734665652069732073657420746f6f2068696768000000000000000060448201526064016106eb565b600d829055600f8181558211801590610c655750600f805411155b610caa5760405162461bcd60e51b81526020600482015260166024820152750e8c2f08ccaca40d2e640e6cae840e8dede40d0d2ced60531b60448201526064016106eb565b50505050565b600061076d338484610fe9565b6016546001600160a01b0316336001600160a01b03161480610cf257506017546001600160a01b0316336001600160a01b0316145b610cfb57600080fd5b6000610d0630610989565b9050610986816116a4565b6000546001600160a01b03163314610d3b5760405162461bcd60e51b81526004016106eb90612132565b60005b82811015610caa578160096000868685818110610d5d57610d5d612167565b9050602002016020810190610d729190611fc6565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610da481612193565b915050610d3e565b6000546001600160a01b03163314610dd65760405162461bcd60e51b81526004016106eb90612132565b601b55565b6000546001600160a01b03163314610e055760405162461bcd60e51b81526004016106eb90612132565b6001600160a01b038116610e6a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106eb565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610f275760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106eb565b6001600160a01b038216610f885760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106eb565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661104d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106eb565b6001600160a01b0382166110af5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106eb565b600081116111115760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106eb565b60055460ff16801561113c57506001600160a01b03831660009081526004602052604090205460ff16155b801561116157506001600160a01b03821660009081526004602052604090205460ff16155b15611198576000611172848461181e565b905061117d8161184b565b6001600160a01b031660009081526003602052604090204390555b6000546001600160a01b038481169116148015906111c457506000546001600160a01b03838116911614155b156114a557601954600160a01b900460ff1661125d576000546001600160a01b0384811691161461125d5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106eb565b601a548111156112af5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106eb565b6001600160a01b03831660009081526014602052604090205460ff161580156112f157506001600160a01b03821660009081526014602052604090205460ff16155b6113495760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016106eb565b6019546001600160a01b038381169116146113ce57601b548161136b84610989565b61137591906122b6565b106113ce5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106eb565b60006113d930610989565b601c54601a549192508210159082106113f257601a5491505b8080156114095750601954600160a81b900460ff16155b801561142357506019546001600160a01b03868116911614155b80156114385750601954600160b01b900460ff165b801561145d57506001600160a01b03851660009081526009602052604090205460ff16155b801561148257506001600160a01b03841660009081526009602052604090205460ff16155b156114a257611490826116a4565b4780156114a0576114a0476115e6565b505b50505b6001600160a01b03831660009081526009602052604090205460019060ff16806114e757506001600160a01b03831660009081526009602052604090205460ff165b8061151957506019546001600160a01b0385811691161480159061151957506019546001600160a01b03848116911614155b15611526575060006115a0565b6019546001600160a01b03858116911614801561155157506018546001600160a01b03848116911614155b1561156357600c54601055600d546011555b6019546001600160a01b03848116911614801561158e57506018546001600160a01b03858116911614155b156115a057600e54601055600f546011555b610caa848484846118ed565b600081848411156115d05760405162461bcd60e51b81526004016106eb9190611ef2565b5060006115dd84866122c9565b95945050505050565b6017546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561075c573d6000803e3d6000fd5b6000600a548211156116875760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106eb565b600061169161191b565b905061169d838261193e565b9392505050565b6019805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106116ec576116ec612167565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611745573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176991906122dc565b8160018151811061177c5761177c612167565b6001600160a01b0392831660209182029290920101526018546117a29130911684610ec5565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac947906117db9085906000908690309042906004016122f9565b600060405180830381600087803b1580156117f557600080fd5b505af1158015611809573d6000803e3d6000fd5b50506019805460ff60a81b1916905550505050565b6000823b158061182d5750813b155b61183657600080fd5b823b15611844575080610771565b5081610771565b6001600160a01b038116600090815260036020526040812054158061189e57506118764360016122b6565b6002546001600160a01b03841660009081526003602052604090205461189c91906122b6565b105b90508061075c5760405162461bcd60e51b815260206004820152601a60248201527f4d6178207478206672657175656e63792065786365656465642100000000000060448201526064016106eb565b806118fa576118fa611980565b6119058484846119ae565b80610caa57610caa601254601055601354601155565b6000806000611928611aa5565b9092509050611937828261193e565b9250505090565b600061169d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b31565b6010541580156119905750601154155b1561199757565b601080546012556011805460135560009182905555565b6000806000806000806119c087611b5f565b6001600160a01b038f16600090815260066020526040902054959b509399509197509550935091506119f29087611bbc565b6001600160a01b03808b1660009081526006602052604080822093909355908a1681522054611a219086611bfe565b6001600160a01b038916600090815260066020526040902055611a4381611c5d565b611a4d8483611ca7565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611a9291815260200190565b60405180910390a3505050505050505050565b6000806000600a54905060006009600a611abf9190612290565b611ace9064a0a734740061229f565b9050611af7611adf6009600a612290565b611aee9064a0a734740061229f565b600a549061193e565b821015611b2857600a546009600a611b0f9190612290565b611b1e9064a0a734740061229f565b9350935050509091565b90939092509050565b60008183611b525760405162461bcd60e51b81526004016106eb9190611ef2565b5060006115dd848661236a565b6000806000806000806000806000611b7c8a601054601154611ccb565b9250925092506000611b8c61191b565b90506000806000611b9f8e878787611d20565b919e509c509a509598509396509194505050505091939550919395565b600061169d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115ac565b600080611c0b83856122b6565b90508381101561169d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106eb565b6000611c6761191b565b90506000611c758383611d70565b30600090815260066020526040902054909150611c929082611bfe565b30600090815260066020526040902055505050565b600a54611cb49083611bbc565b600a55600b54611cc49082611bfe565b600b555050565b6000808080611ce56064611cdf8989611d70565b9061193e565b90506000611cf86064611cdf8a89611d70565b90506000611d1082611d0a8b86611bbc565b90611bbc565b9992985090965090945050505050565b6000808080611d2f8886611d70565b90506000611d3d8887611d70565b90506000611d4b8888611d70565b90506000611d5d82611d0a8686611bbc565b939b939a50919850919650505050505050565b600082600003611d8257506000610771565b6000611d8e838561229f565b905082611d9b858361236a565b1461169d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106eb565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461098657600080fd5b8035611e2881611e08565b919050565b60006020808385031215611e4057600080fd5b823567ffffffffffffffff80821115611e5857600080fd5b818501915085601f830112611e6c57600080fd5b813581811115611e7e57611e7e611df2565b8060051b604051601f19603f83011681018181108582111715611ea357611ea3611df2565b604052918252848201925083810185019188831115611ec157600080fd5b938501935b82851015611ee657611ed785611e1d565b84529385019392850192611ec6565b98975050505050505050565b600060208083528351808285015260005b81811015611f1f57858101830151858201604001528201611f03565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611f5357600080fd5b8235611f5e81611e08565b946020939093013593505050565b600060208284031215611f7e57600080fd5b5035919050565b600080600060608486031215611f9a57600080fd5b8335611fa581611e08565b92506020840135611fb581611e08565b929592945050506040919091013590565b600060208284031215611fd857600080fd5b813561169d81611e08565b80358015158114611e2857600080fd5b60006020828403121561200557600080fd5b61169d82611fe3565b6000806040838503121561202157600080fd5b823561202c81611e08565b915061203a60208401611fe3565b90509250929050565b6000806000806080858703121561205957600080fd5b5050823594602084013594506040840135936060013592509050565b60008060006040848603121561208a57600080fd5b833567ffffffffffffffff808211156120a257600080fd5b818601915086601f8301126120b657600080fd5b8135818111156120c557600080fd5b8760208260051b85010111156120da57600080fd5b6020928301955093506120f09186019050611fe3565b90509250925092565b6000806040838503121561210c57600080fd5b823561211781611e08565b9150602083013561212781611e08565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016121a5576121a561217d565b5060010190565b600181815b808511156121e75781600019048211156121cd576121cd61217d565b808516156121da57918102915b93841c93908002906121b1565b509250929050565b6000826121fe57506001610771565b8161220b57506000610771565b8160018114612221576002811461222b57612247565b6001915050610771565b60ff84111561223c5761223c61217d565b50506001821b610771565b5060208310610133831016604e8410600b841016171561226a575081810a610771565b61227483836121ac565b80600019048211156122885761228861217d565b029392505050565b600061169d60ff8416836121ef565b80820281158282048414176107715761077161217d565b808201808211156107715761077161217d565b818103818111156107715761077161217d565b6000602082840312156122ee57600080fd5b815161169d81611e08565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123495784516001600160a01b031683529383019391830191600101612324565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261238757634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220031ddeaa5205a9e5e789c059efe9e013746c2651ef3d579de24979d377e6586564736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102075760003560e01c806374010ece1161011857806398a5c315116100a0578063c3c8cd801161006f578063c3c8cd8014610606578063c492f0461461061b578063dd62ed3e1461063b578063ea1644d514610681578063f2fde38b146106a157600080fd5b806398a5c31514610576578063a2a957bb14610596578063a9059cbb146105b6578063bfd79284146105d657600080fd5b80638da5cb5b116100e75780638da5cb5b146104d55780638f70ccf7146104f35780638f9a55c01461051357806395d89b41146105295780639686d3221461055657600080fd5b806374010ece14610452578063793fcb55146104725780637d1db4a5146104925780637f2feddc146104a857600080fd5b80632947c4191161019b5780636b9990531161016a5780636b999053146103c85780636d8aa8f8146103e85780636fc3eaec1461040857806370a082311461041d578063715018a61461043d57600080fd5b80632947c419146103605780632fd689e314610376578063313ce5671461038c57806349bd5a5e146103a857600080fd5b80631694505e116101d75780631694505e146102cb57806318160ddd146103035780631b12cf1e1461032657806323b872dd1461034057600080fd5b8062b8cf2a1461021357806306fdde0314610235578063095ea7b31461027b57806313c72aed146102ab57600080fd5b3661020e57005b600080fd5b34801561021f57600080fd5b5061023361022e366004611e2d565b6106c1565b005b34801561024157600080fd5b5060408051808201909152600b81526a213ab1313632902132b0b760a91b60208201525b6040516102729190611ef2565b60405180910390f35b34801561028757600080fd5b5061029b610296366004611f40565b610760565b6040519015158152602001610272565b3480156102b757600080fd5b506102336102c6366004611f6c565b610777565b3480156102d757600080fd5b506018546102eb906001600160a01b031681565b6040516001600160a01b039091168152602001610272565b34801561030f57600080fd5b50610318610820565b604051908152602001610272565b34801561033257600080fd5b5060055461029b9060ff1681565b34801561034c57600080fd5b5061029b61035b366004611f85565b610842565b34801561036c57600080fd5b5061031860025481565b34801561038257600080fd5b50610318601c5481565b34801561039857600080fd5b5060405160098152602001610272565b3480156103b457600080fd5b506019546102eb906001600160a01b031681565b3480156103d457600080fd5b506102336103e3366004611fc6565b6108ab565b3480156103f457600080fd5b50610233610403366004611ff3565b6108f6565b34801561041457600080fd5b5061023361093e565b34801561042957600080fd5b50610318610438366004611fc6565b610989565b34801561044957600080fd5b506102336109ab565b34801561045e57600080fd5b5061023361046d366004611f6c565b610a1f565b34801561047e57600080fd5b5061023361048d366004611ff3565b610a4e565b34801561049e57600080fd5b50610318601a5481565b3480156104b457600080fd5b506103186104c3366004611fc6565b60156020526000908152604090205481565b3480156104e157600080fd5b506000546001600160a01b03166102eb565b3480156104ff57600080fd5b5061023361050e366004611ff3565b610aea565b34801561051f57600080fd5b50610318601b5481565b34801561053557600080fd5b50604080518082019091526004815263212aa12160e11b6020820152610265565b34801561056257600080fd5b5061023361057136600461200e565b610b32565b34801561058257600080fd5b50610233610591366004611f6c565b610b87565b3480156105a257600080fd5b506102336105b1366004612043565b610bb6565b3480156105c257600080fd5b5061029b6105d1366004611f40565b610cb0565b3480156105e257600080fd5b5061029b6105f1366004611fc6565b60146020526000908152604090205460ff1681565b34801561061257600080fd5b50610233610cbd565b34801561062757600080fd5b50610233610636366004612075565b610d11565b34801561064757600080fd5b506103186106563660046120f9565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561068d57600080fd5b5061023361069c366004611f6c565b610dac565b3480156106ad57600080fd5b506102336106bc366004611fc6565b610ddb565b6000546001600160a01b031633146106f45760405162461bcd60e51b81526004016106eb90612132565b60405180910390fd5b60005b815181101561075c5760016014600084848151811061071857610718612167565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061075481612193565b9150506106f7565b5050565b600061076d338484610ec5565b5060015b92915050565b6000546001600160a01b031633146107a15760405162461bcd60e51b81526004016106eb90612132565b6000811180156107b15750600481105b61081b5760405162461bcd60e51b815260206004820152603560248201527f4f6e6c7920747261646520636f6f6c646f776e2076616c75657320696e2072616044820152741b99d9480c081d1bc80d081a5cc8185b1b1bddd959605a1b60648201526084016106eb565b600255565b600061082e6009600a612290565b61083d9064a0a734740061229f565b905090565b600061084f848484610fe9565b6108a1843361089c8560405180606001604052806028815260200161238d602891396001600160a01b038a16600090815260086020908152604080832033845290915290205491906115ac565b610ec5565b5060019392505050565b6000546001600160a01b031633146108d55760405162461bcd60e51b81526004016106eb90612132565b6001600160a01b03166000908152601460205260409020805460ff19169055565b6000546001600160a01b031633146109205760405162461bcd60e51b81526004016106eb90612132565b60198054911515600160b01b0260ff60b01b19909216919091179055565b6016546001600160a01b0316336001600160a01b0316148061097357506017546001600160a01b0316336001600160a01b0316145b61097c57600080fd5b47610986816115e6565b50565b6001600160a01b03811660009081526006602052604081205461077190611620565b6000546001600160a01b031633146109d55760405162461bcd60e51b81526004016106eb90612132565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a495760405162461bcd60e51b81526004016106eb90612132565b601a55565b6000546001600160a01b03163314610a785760405162461bcd60e51b81526004016106eb90612132565b60055460ff1615610ad75760405162461bcd60e51b8152602060048201526024808201527f416e74694d4556206d6f64652063616e6e6f74206265207377697463686564206044820152636f66662160e01b60648201526084016106eb565b6005805460ff1916911515919091179055565b6000546001600160a01b03163314610b145760405162461bcd60e51b81526004016106eb90612132565b60198054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610b5c5760405162461bcd60e51b81526004016106eb90612132565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610bb15760405162461bcd60e51b81526004016106eb90612132565b601c55565b6000546001600160a01b03163314610be05760405162461bcd60e51b81526004016106eb90612132565b600c849055600e839055600f8411801590610bfe5750600f600e5411155b610c4a5760405162461bcd60e51b815260206004820152601860248201527f72656449734665652069732073657420746f6f2068696768000000000000000060448201526064016106eb565b600d829055600f8181558211801590610c655750600f805411155b610caa5760405162461bcd60e51b81526020600482015260166024820152750e8c2f08ccaca40d2e640e6cae840e8dede40d0d2ced60531b60448201526064016106eb565b50505050565b600061076d338484610fe9565b6016546001600160a01b0316336001600160a01b03161480610cf257506017546001600160a01b0316336001600160a01b0316145b610cfb57600080fd5b6000610d0630610989565b9050610986816116a4565b6000546001600160a01b03163314610d3b5760405162461bcd60e51b81526004016106eb90612132565b60005b82811015610caa578160096000868685818110610d5d57610d5d612167565b9050602002016020810190610d729190611fc6565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610da481612193565b915050610d3e565b6000546001600160a01b03163314610dd65760405162461bcd60e51b81526004016106eb90612132565b601b55565b6000546001600160a01b03163314610e055760405162461bcd60e51b81526004016106eb90612132565b6001600160a01b038116610e6a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106eb565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610f275760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106eb565b6001600160a01b038216610f885760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106eb565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661104d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106eb565b6001600160a01b0382166110af5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106eb565b600081116111115760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106eb565b60055460ff16801561113c57506001600160a01b03831660009081526004602052604090205460ff16155b801561116157506001600160a01b03821660009081526004602052604090205460ff16155b15611198576000611172848461181e565b905061117d8161184b565b6001600160a01b031660009081526003602052604090204390555b6000546001600160a01b038481169116148015906111c457506000546001600160a01b03838116911614155b156114a557601954600160a01b900460ff1661125d576000546001600160a01b0384811691161461125d5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106eb565b601a548111156112af5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106eb565b6001600160a01b03831660009081526014602052604090205460ff161580156112f157506001600160a01b03821660009081526014602052604090205460ff16155b6113495760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016106eb565b6019546001600160a01b038381169116146113ce57601b548161136b84610989565b61137591906122b6565b106113ce5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106eb565b60006113d930610989565b601c54601a549192508210159082106113f257601a5491505b8080156114095750601954600160a81b900460ff16155b801561142357506019546001600160a01b03868116911614155b80156114385750601954600160b01b900460ff165b801561145d57506001600160a01b03851660009081526009602052604090205460ff16155b801561148257506001600160a01b03841660009081526009602052604090205460ff16155b156114a257611490826116a4565b4780156114a0576114a0476115e6565b505b50505b6001600160a01b03831660009081526009602052604090205460019060ff16806114e757506001600160a01b03831660009081526009602052604090205460ff165b8061151957506019546001600160a01b0385811691161480159061151957506019546001600160a01b03848116911614155b15611526575060006115a0565b6019546001600160a01b03858116911614801561155157506018546001600160a01b03848116911614155b1561156357600c54601055600d546011555b6019546001600160a01b03848116911614801561158e57506018546001600160a01b03858116911614155b156115a057600e54601055600f546011555b610caa848484846118ed565b600081848411156115d05760405162461bcd60e51b81526004016106eb9190611ef2565b5060006115dd84866122c9565b95945050505050565b6017546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561075c573d6000803e3d6000fd5b6000600a548211156116875760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106eb565b600061169161191b565b905061169d838261193e565b9392505050565b6019805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106116ec576116ec612167565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611745573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176991906122dc565b8160018151811061177c5761177c612167565b6001600160a01b0392831660209182029290920101526018546117a29130911684610ec5565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac947906117db9085906000908690309042906004016122f9565b600060405180830381600087803b1580156117f557600080fd5b505af1158015611809573d6000803e3d6000fd5b50506019805460ff60a81b1916905550505050565b6000823b158061182d5750813b155b61183657600080fd5b823b15611844575080610771565b5081610771565b6001600160a01b038116600090815260036020526040812054158061189e57506118764360016122b6565b6002546001600160a01b03841660009081526003602052604090205461189c91906122b6565b105b90508061075c5760405162461bcd60e51b815260206004820152601a60248201527f4d6178207478206672657175656e63792065786365656465642100000000000060448201526064016106eb565b806118fa576118fa611980565b6119058484846119ae565b80610caa57610caa601254601055601354601155565b6000806000611928611aa5565b9092509050611937828261193e565b9250505090565b600061169d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b31565b6010541580156119905750601154155b1561199757565b601080546012556011805460135560009182905555565b6000806000806000806119c087611b5f565b6001600160a01b038f16600090815260066020526040902054959b509399509197509550935091506119f29087611bbc565b6001600160a01b03808b1660009081526006602052604080822093909355908a1681522054611a219086611bfe565b6001600160a01b038916600090815260066020526040902055611a4381611c5d565b611a4d8483611ca7565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611a9291815260200190565b60405180910390a3505050505050505050565b6000806000600a54905060006009600a611abf9190612290565b611ace9064a0a734740061229f565b9050611af7611adf6009600a612290565b611aee9064a0a734740061229f565b600a549061193e565b821015611b2857600a546009600a611b0f9190612290565b611b1e9064a0a734740061229f565b9350935050509091565b90939092509050565b60008183611b525760405162461bcd60e51b81526004016106eb9190611ef2565b5060006115dd848661236a565b6000806000806000806000806000611b7c8a601054601154611ccb565b9250925092506000611b8c61191b565b90506000806000611b9f8e878787611d20565b919e509c509a509598509396509194505050505091939550919395565b600061169d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115ac565b600080611c0b83856122b6565b90508381101561169d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106eb565b6000611c6761191b565b90506000611c758383611d70565b30600090815260066020526040902054909150611c929082611bfe565b30600090815260066020526040902055505050565b600a54611cb49083611bbc565b600a55600b54611cc49082611bfe565b600b555050565b6000808080611ce56064611cdf8989611d70565b9061193e565b90506000611cf86064611cdf8a89611d70565b90506000611d1082611d0a8b86611bbc565b90611bbc565b9992985090965090945050505050565b6000808080611d2f8886611d70565b90506000611d3d8887611d70565b90506000611d4b8888611d70565b90506000611d5d82611d0a8686611bbc565b939b939a50919850919650505050505050565b600082600003611d8257506000610771565b6000611d8e838561229f565b905082611d9b858361236a565b1461169d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106eb565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461098657600080fd5b8035611e2881611e08565b919050565b60006020808385031215611e4057600080fd5b823567ffffffffffffffff80821115611e5857600080fd5b818501915085601f830112611e6c57600080fd5b813581811115611e7e57611e7e611df2565b8060051b604051601f19603f83011681018181108582111715611ea357611ea3611df2565b604052918252848201925083810185019188831115611ec157600080fd5b938501935b82851015611ee657611ed785611e1d565b84529385019392850192611ec6565b98975050505050505050565b600060208083528351808285015260005b81811015611f1f57858101830151858201604001528201611f03565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611f5357600080fd5b8235611f5e81611e08565b946020939093013593505050565b600060208284031215611f7e57600080fd5b5035919050565b600080600060608486031215611f9a57600080fd5b8335611fa581611e08565b92506020840135611fb581611e08565b929592945050506040919091013590565b600060208284031215611fd857600080fd5b813561169d81611e08565b80358015158114611e2857600080fd5b60006020828403121561200557600080fd5b61169d82611fe3565b6000806040838503121561202157600080fd5b823561202c81611e08565b915061203a60208401611fe3565b90509250929050565b6000806000806080858703121561205957600080fd5b5050823594602084013594506040840135936060013592509050565b60008060006040848603121561208a57600080fd5b833567ffffffffffffffff808211156120a257600080fd5b818601915086601f8301126120b657600080fd5b8135818111156120c557600080fd5b8760208260051b85010111156120da57600080fd5b6020928301955093506120f09186019050611fe3565b90509250925092565b6000806040838503121561210c57600080fd5b823561211781611e08565b9150602083013561212781611e08565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016121a5576121a561217d565b5060010190565b600181815b808511156121e75781600019048211156121cd576121cd61217d565b808516156121da57918102915b93841c93908002906121b1565b509250929050565b6000826121fe57506001610771565b8161220b57506000610771565b8160018114612221576002811461222b57612247565b6001915050610771565b60ff84111561223c5761223c61217d565b50506001821b610771565b5060208310610133831016604e8410600b841016171561226a575081810a610771565b61227483836121ac565b80600019048211156122885761228861217d565b029392505050565b600061169d60ff8416836121ef565b80820281158282048414176107715761077161217d565b808201808211156107715761077161217d565b818103818111156107715761077161217d565b6000602082840312156122ee57600080fd5b815161169d81611e08565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123495784516001600160a01b031683529383019391830191600101612324565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261238757634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220031ddeaa5205a9e5e789c059efe9e013746c2651ef3d579de24979d377e6586564736f6c63430008130033

Deployed Bytecode Sourcemap

4261:15464:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13467:169;;;;;;;;;;-1:-1:-1;13467:169:0;;;;;:::i;:::-;;:::i;:::-;;7049:83;;;;;;;;;;-1:-1:-1;7119:5:0;;;;;;;;;;;;-1:-1:-1;;;7119:5:0;;;;7049:83;;;;;;;:::i;:::-;;;;;;;;7974:193;;;;;;;;;;-1:-1:-1;7974:193:0;;;;;:::i;:::-;;:::i;:::-;;;2585:14:1;;2578:22;2560:41;;2548:2;2533:18;7974:193:0;2420:187:1;17950:203:0;;;;;;;;;;-1:-1:-1;17950:203:0;;;;;:::i;:::-;;:::i;5779:41::-;;;;;;;;;;-1:-1:-1;5779:41:0;;;;-1:-1:-1;;;;;5779:41:0;;;;;;-1:-1:-1;;;;;2987:32:1;;;2969:51;;2957:2;2942:18;5779:41:0;2797:229:1;7326:95:0;;;;;;;;;;;;;:::i;:::-;;;3177:25:1;;;3165:2;3150:18;7326:95:0;3031:177:1;4526:33:0;;;;;;;;;;-1:-1:-1;4526:33:0;;;;;;;;8175:446;;;;;;;;;;-1:-1:-1;8175:446:0;;;;;:::i;:::-;;:::i;4369:32::-;;;;;;;;;;;;;;;;6125:64;;;;;;;;;;;;;;;;7235:83;;;;;;;;;;-1:-1:-1;7235:83:0;;4702:1;3816:36:1;;3804:2;3789:18;7235:83:0;3674:184:1;5827:28:0;;;;;;;;;;-1:-1:-1;5827:28:0;;;;-1:-1:-1;;;;;5827:28:0;;;13644:92;;;;;;;;;;-1:-1:-1;13644:92:0;;;;;:::i;:::-;;:::i;19107:101::-;;;;;;;;;;-1:-1:-1;19107:101:0;;;;;:::i;:::-;;:::i;13224:235::-;;;;;;;;;;;;;:::i;7429:138::-;;;;;;;;;;-1:-1:-1;7429:138:0;;;;;:::i;:::-;;:::i;1748:148::-;;;;;;;;;;;;;:::i;19247:108::-;;;;;;;;;;-1:-1:-1;19247:108:0;;;;;:::i;:::-;;:::i;17774:168::-;;;;;;;;;;-1:-1:-1;17774:168:0;;;;;:::i;:::-;;:::i;5977:60::-;;;;;;;;;;;;;;;;5585:43;;;;;;;;;;-1:-1:-1;5585:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;1534:79;;;;;;;;;;-1:-1:-1;1572:7:0;1599:6;-1:-1:-1;;;;;1599:6:0;1534:79;;12871:101;;;;;;;;;;-1:-1:-1;12871:101:0;;;;;:::i;:::-;;:::i;6050:62::-;;;;;;;;;;;;;;;;7140:87;;;;;;;;;;-1:-1:-1;7212:7:0;;;;;;;;;;;;-1:-1:-1;;;7212:7:0;;;;7140:87;;17639:127;;;;;;;;;;-1:-1:-1;17639:127:0;;;;;:::i;:::-;;:::i;18916:139::-;;;;;;;;;;-1:-1:-1;18916:139:0;;;;;:::i;:::-;;:::i;17142:473::-;;;;;;;;;;-1:-1:-1;17142:473:0;;;;;:::i;:::-;;:::i;7575:199::-;;;;;;;;;;-1:-1:-1;7575:199:0;;;;;:::i;:::-;;:::i;5541:36::-;;;;;;;;;;-1:-1:-1;5541:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12980:236;;;;;;;;;;;;;:::i;19486:234::-;;;;;;;;;;-1:-1:-1;19486:234:0;;;;;:::i;:::-;;:::i;7782:184::-;;;;;;;;;;-1:-1:-1;7782:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7931:18:0;;;7899:7;7931:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7782:184;19363:115;;;;;;;;;;-1:-1:-1;19363:115:0;;;;;:::i;:::-;;:::i;1904:244::-;;;;;;;;;;-1:-1:-1;1904:244:0;;;;;:::i;:::-;;:::i;13467:169::-;1661:6;;-1:-1:-1;;;;;1661:6:0;373:10;1661:22;1653:67;;;;-1:-1:-1;;;1653:67:0;;;;;;;:::i;:::-;;;;;;;;;13543:9:::1;13538:91;13562:5;:12;13558:1;:16;13538:91;;;13613:4;13596;:14;13601:5;13607:1;13601:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13596:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13596:14:0;:21;;-1:-1:-1;;13596:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13576:3;::::1;::::0;::::1;:::i;:::-;;;;13538:91;;;;13467:169:::0;:::o;7974:193::-;8076:4;8098:39;373:10;8121:7;8130:6;8098:8;:39::i;:::-;-1:-1:-1;8155:4:0;7974:193;;;;;:::o;17950:203::-;1661:6;;-1:-1:-1;;;;;1661:6:0;373:10;1661:22;1653:67;;;;-1:-1:-1;;;1653:67:0;;;;;;;:::i;:::-;18039:1:::1;18030:6;:10;:24;;;;;18053:1;18044:6;:10;18030:24;18022:90;;;::::0;-1:-1:-1;;;18022:90:0;;7437:2:1;18022:90:0::1;::::0;::::1;7419:21:1::0;7476:2;7456:18;;;7449:30;7515:34;7495:18;;;7488:62;-1:-1:-1;;;7566:18:1;;;7559:51;7627:19;;18022:90:0::1;7235:417:1::0;18022:90:0::1;18123:13;:22:::0;17950:203::o;7326:95::-;7379:7;5046:13;4702:1;5046:2;:13;:::i;:::-;5028:31;;:15;:31;:::i;:::-;7399:14;;7326:95;:::o;8175:446::-;8307:4;8324:36;8334:6;8342:9;8353:6;8324:9;:36::i;:::-;8371:220;8394:6;373:10;8442:138;8498:6;8442:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8442:19:0;;;;;;:11;:19;;;;;;;;373:10;8442:33;;;;;;;;;;:37;:138::i;:::-;8371:8;:220::i;:::-;-1:-1:-1;8609:4:0;8175:446;;;;;:::o;13644:92::-;1661:6;;-1:-1:-1;;;;;1661:6:0;373:10;1661:22;1653:67;;;;-1:-1:-1;;;1653:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13708:12:0::1;13723:5;13708:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13708:20:0::1;::::0;;13644:92::o;19107:101::-;1661:6;;-1:-1:-1;;;;;1661:6:0;373:10;1661:22;1653:67;;;;-1:-1:-1;;;1653:67:0;;;;;;;:::i;:::-;19174:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;19174:26:0::1;-1:-1:-1::0;;;;19174:26:0;;::::1;::::0;;;::::1;::::0;;19107:101::o;13224:235::-;13290:19;;-1:-1:-1;;;;;13290:19:0;373:10;-1:-1:-1;;;;;13274:35:0;;:72;;;-1:-1:-1;13329:17:0;;-1:-1:-1;;;;;13329:17:0;373:10;-1:-1:-1;;;;;13313:33:0;;13274:72;13266:81;;;;;;13387:21;13419:32;13387:21;13419:12;:32::i;:::-;13255:204;13224:235::o;7429:138::-;-1:-1:-1;;;;;7542:16:0;;7495:7;7542:16;;;:7;:16;;;;;;7522:37;;:19;:37::i;1748:148::-;1661:6;;-1:-1:-1;;;;;1661:6:0;373:10;1661:22;1653:67;;;;-1:-1:-1;;;1653:67:0;;;;;;;:::i;:::-;1855:1:::1;1839:6:::0;;1818:40:::1;::::0;-1:-1:-1;;;;;1839:6:0;;::::1;::::0;1818:40:::1;::::0;1855:1;;1818:40:::1;1886:1;1869:19:::0;;-1:-1:-1;;;;;;1869:19:0::1;::::0;;1748:148::o;19247:108::-;1661:6;;-1:-1:-1;;;;;1661:6:0;373:10;1661:22;1653:67;;;;-1:-1:-1;;;1653:67:0;;;;;;;:::i;:::-;19321:12:::1;:26:::0;19247:108::o;17774:168::-;1661:6;;-1:-1:-1;;;;;1661:6:0;373:10;1661:22;1653:67;;;;-1:-1:-1;;;1653:67:0;;;;;;;:::i;:::-;17848:13:::1;::::0;::::1;;17847:14;17839:63;;;::::0;-1:-1:-1;;;17839:63:0;;9415:2:1;17839:63:0::1;::::0;::::1;9397:21:1::0;9454:2;9434:18;;;9427:30;9493:34;9473:18;;;9466:62;-1:-1:-1;;;9544:18:1;;;9537:34;9588:19;;17839:63:0::1;9213:400:1::0;17839:63:0::1;17913:13;:21:::0;;-1:-1:-1;;17913:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17774:168::o;12871:101::-;1661:6;;-1:-1:-1;;;;;1661:6:0;373:10;1661:22;1653:67;;;;-1:-1:-1;;;1653:67:0;;;;;;;:::i;:::-;12938:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12938:26:0::1;-1:-1:-1::0;;;;12938:26:0;;::::1;::::0;;;::::1;::::0;;12871:101::o;17639:127::-;1661:6;;-1:-1:-1;;;;;1661:6:0;373:10;1661:22;1653:67;;;;-1:-1:-1;;;1653:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17725:25:0;;;::::1;;::::0;;;:16:::1;:25;::::0;;;;:33;;-1:-1:-1;;17725:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17639:127::o;18916:139::-;1661:6;;-1:-1:-1;;;;;1661:6:0;373:10;1661:22;1653:67;;;;-1:-1:-1;;;1653:67:0;;;;;;;:::i;:::-;19007:19:::1;:40:::0;18916:139::o;17142:473::-;1661:6;;-1:-1:-1;;;;;1661:6:0;373:10;1661:22;1653:67;;;;-1:-1:-1;;;1653:67:0;;;;;;;:::i;:::-;17276:14:::1;:30:::0;;;17317:15:::1;:32:::0;;;17386:2:::1;17368:20:::0;::::1;::::0;::::1;::::0;:45:::1;;;17411:2;17392:15;;:21;;17368:45;17360:82;;;::::0;-1:-1:-1;;;17360:82:0;;9820:2:1;17360:82:0::1;::::0;::::1;9802:21:1::0;9859:2;9839:18;;;9832:30;9898:26;9878:18;;;9871:54;9942:18;;17360:82:0::1;9618:348:1::0;17360:82:0::1;17455:12;:26:::0;;;17492:13:::1;:28:::0;;;17539:18;::::1;::::0;::::1;::::0;:41:::1;;;17578:2;17561:13:::0;::::1;:19;;17539:41;17531:76;;;::::0;-1:-1:-1;;;17531:76:0;;10173:2:1;17531:76:0::1;::::0;::::1;10155:21:1::0;10212:2;10192:18;;;10185:30;-1:-1:-1;;;10231:18:1;;;10224:52;10293:18;;17531:76:0::1;9971:346:1::0;17531:76:0::1;17142:473:::0;;;;:::o;7575:199::-;7680:4;7702:42;373:10;7726:9;7737:6;7702:9;:42::i;12980:236::-;13046:19;;-1:-1:-1;;;;;13046:19:0;373:10;-1:-1:-1;;;;;13030:35:0;;:72;;;-1:-1:-1;13085:17:0;;-1:-1:-1;;;;;13085:17:0;373:10;-1:-1:-1;;;;;13069:33:0;;13030:72;13022:81;;;;;;13114:23;13140:24;13158:4;13140:9;:24::i;:::-;13114:50;;13175:33;13192:15;13175:16;:33::i;19486:234::-;1661:6;;-1:-1:-1;;;;;1661:6:0;373:10;1661:22;1653:67;;;;-1:-1:-1;;;1653:67:0;;;;;;;:::i;:::-;19603:9:::1;19599:114;19618:19:::0;;::::1;19599:114;;;19693:8;19659:18;:31;19678:8;;19687:1;19678:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19659:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;19659:31:0;:42;;-1:-1:-1;;19659:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19639:3;::::1;::::0;::::1;:::i;:::-;;;;19599:114;;19363:115:::0;1661:6;;-1:-1:-1;;;;;1661:6:0;373:10;1661:22;1653:67;;;;-1:-1:-1;;;1653:67:0;;;;;;;:::i;:::-;19440:14:::1;:30:::0;19363:115::o;1904:244::-;1661:6;;-1:-1:-1;;;;;1661:6:0;373:10;1661:22;1653:67;;;;-1:-1:-1;;;1653:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1993:22:0;::::1;1985:73;;;::::0;-1:-1:-1;;;1985:73:0;;10524:2:1;1985:73:0::1;::::0;::::1;10506:21:1::0;10563:2;10543:18;;;10536:30;10602:34;10582:18;;;10575:62;-1:-1:-1;;;10653:18:1;;;10646:36;10699:19;;1985:73:0::1;10322:402:1::0;1985:73:0::1;2095:6;::::0;;2074:38:::1;::::0;-1:-1:-1;;;;;2074:38:0;;::::1;::::0;2095:6;::::1;::::0;2074:38:::1;::::0;::::1;2123:6;:17:::0;;-1:-1:-1;;;;;;2123:17:0::1;-1:-1:-1::0;;;;;2123:17:0;;;::::1;::::0;;;::::1;::::0;;1904:244::o;9312:369::-;-1:-1:-1;;;;;9439:19:0;;9431:68;;;;-1:-1:-1;;;9431:68:0;;10931:2:1;9431:68:0;;;10913:21:1;10970:2;10950:18;;;10943:30;11009:34;10989:18;;;10982:62;-1:-1:-1;;;11060:18:1;;;11053:34;11104:19;;9431:68:0;10729:400:1;9431:68:0;-1:-1:-1;;;;;9518:21:0;;9510:68;;;;-1:-1:-1;;;9510:68:0;;11336:2:1;9510:68:0;;;11318:21:1;11375:2;11355:18;;;11348:30;11414:34;11394:18;;;11387:62;-1:-1:-1;;;11465:18:1;;;11458:32;11507:19;;9510:68:0;11134:398:1;9510:68:0;-1:-1:-1;;;;;9589:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9641:32;;3177:25:1;;;9641:32:0;;3150:18:1;9641:32:0;;;;;;;9312:369;;;:::o;9689:2576::-;-1:-1:-1;;;;;9811:18:0;;9803:68;;;;-1:-1:-1;;;9803:68:0;;11739:2:1;9803:68:0;;;11721:21:1;11778:2;11758:18;;;11751:30;11817:34;11797:18;;;11790:62;-1:-1:-1;;;11868:18:1;;;11861:35;11913:19;;9803:68:0;11537:401:1;9803:68:0;-1:-1:-1;;;;;9890:16:0;;9882:64;;;;-1:-1:-1;;;9882:64:0;;12145:2:1;9882:64:0;;;12127:21:1;12184:2;12164:18;;;12157:30;12223:34;12203:18;;;12196:62;-1:-1:-1;;;12274:18:1;;;12267:33;12317:19;;9882:64:0;11943:399:1;9882:64:0;9974:1;9965:6;:10;9957:64;;;;-1:-1:-1;;;9957:64:0;;12549:2:1;9957:64:0;;;12531:21:1;12588:2;12568:18;;;12561:30;12627:34;12607:18;;;12600:62;-1:-1:-1;;;12678:18:1;;;12671:39;12727:19;;9957:64:0;12347:405:1;9957:64:0;10037:13;;;;:40;;;;-1:-1:-1;;;;;;10055:22:0;;;;;;:16;:22;;;;;;;;10054:23;10037:40;:65;;;;-1:-1:-1;;;;;;10082:20:0;;;;;;:16;:20;;;;;;;;10081:21;10037:65;10034:234;;;10118:13;10134:25;10150:4;10156:2;10134:15;:25::i;:::-;10118:41;;10174:27;10195:5;10174:20;:27::i;:::-;-1:-1:-1;;;;;10216:25:0;;;;;:18;:25;;;;;10244:12;10216:40;;10034:234;1572:7;1599:6;-1:-1:-1;;;;;10284:15:0;;;1599:6;;10284:15;;;;:32;;-1:-1:-1;1572:7:0;1599:6;-1:-1:-1;;;;;10303:13:0;;;1599:6;;10303:13;;10284:32;10280:1259;;;10373:11;;-1:-1:-1;;;10373:11:0;;;;10368:144;;1572:7;1599:6;-1:-1:-1;;;;;10413:15:0;;;1599:6;;10413:15;10405:91;;;;-1:-1:-1;;;10405:91:0;;12959:2:1;10405:91:0;;;12941:21:1;12998:2;12978:18;;;12971:30;13037:34;13017:18;;;13010:62;13108:33;13088:18;;;13081:61;13159:19;;10405:91:0;12757:427:1;10405:91:0;10546:12;;10536:6;:22;;10528:63;;;;-1:-1:-1;;;10528:63:0;;13391:2:1;10528:63:0;;;13373:21:1;13430:2;13410:18;;;13403:30;13469;13449:18;;;13442:58;13517:18;;10528:63:0;13189:352:1;10528:63:0;-1:-1:-1;;;;;10615:10:0;;;;;;:4;:10;;;;;;;;10614:11;:24;;;;-1:-1:-1;;;;;;10630:8:0;;;;;;:4;:8;;;;;;;;10629:9;10614:24;10606:72;;;;-1:-1:-1;;;10606:72:0;;13748:2:1;10606:72:0;;;13730:21:1;13787:2;13767:18;;;13760:30;13826:34;13806:18;;;13799:62;-1:-1:-1;;;13877:18:1;;;13870:33;13920:19;;10606:72:0;13546:399:1;10606:72:0;10704:13;;-1:-1:-1;;;;;10698:19:0;;;10704:13;;10698:19;10695:146;;10771:14;;10762:6;10746:13;10756:2;10746:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10738:87;;;;-1:-1:-1;;;10738:87:0;;14282:2:1;10738:87:0;;;14264:21:1;14321:2;14301:18;;;14294:30;14360:34;14340:18;;;14333:62;-1:-1:-1;;;14411:18:1;;;14404:33;14454:19;;10738:87:0;14080:399:1;10738:87:0;10857:28;10888:24;10906:4;10888:9;:24::i;:::-;10966:19;;11029:12;;10857:55;;-1:-1:-1;10942:43:0;;;;11005:36;;11002:124;;11098:12;;11075:35;;11002:124;11146:7;:18;;;;-1:-1:-1;11158:6:0;;-1:-1:-1;;;11158:6:0;;;;11157:7;11146:18;:43;;;;-1:-1:-1;11176:13:0;;-1:-1:-1;;;;;11168:21:0;;;11176:13;;11168:21;;11146:43;:58;;;;-1:-1:-1;11193:11:0;;-1:-1:-1;;;11193:11:0;;;;11146:58;:87;;;;-1:-1:-1;;;;;;11209:24:0;;;;;;:18;:24;;;;;;;;11208:25;11146:87;:114;;;;-1:-1:-1;;;;;;11238:22:0;;;;;;:18;:22;;;;;;;;11237:23;11146:114;11142:386;;;11281:38;11298:20;11281:16;:38::i;:::-;11367:21;11411:22;;11407:106;;11458:35;11471:21;11458:12;:35::i;:::-;11262:266;11142:386;10318:1221;;10280:1259;-1:-1:-1;;;;;11615:24:0;;11551:12;11615:24;;;:18;:24;;;;;;11566:4;;11615:24;;;:50;;-1:-1:-1;;;;;;11643:22:0;;;;;;:18;:22;;;;;;;;11615:50;11614:102;;;-1:-1:-1;11679:13:0;;-1:-1:-1;;;;;11671:21:0;;;11679:13;;11671:21;;;;:44;;-1:-1:-1;11702:13:0;;-1:-1:-1;;;;;11696:19:0;;;11702:13;;11696:19;;11671:44;11610:594;;;-1:-1:-1;11743:5:0;11610:594;;;11826:13;;-1:-1:-1;;;;;11818:21:0;;;11826:13;;11818:21;:55;;;;-1:-1:-1;11857:15:0;;-1:-1:-1;;;;;11843:30:0;;;11857:15;;11843:30;;11818:55;11815:162;;;11906:14;;11894:9;:26;11949:12;;11939:7;:22;11815:162;12036:13;;-1:-1:-1;;;;;12030:19:0;;;12036:13;;12030:19;:55;;;;-1:-1:-1;12069:15:0;;-1:-1:-1;;;;;12053:32:0;;;12069:15;;12053:32;;12030:55;12026:165;;;12118:15;;12106:9;:27;12162:13;;12152:7;:23;12026:165;12216:41;12231:4;12237:2;12241:6;12249:7;12216:14;:41::i;2512:224::-;2632:7;2668:12;2660:6;;;;2652:29;;;;-1:-1:-1;;;2652:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2692:9:0;2704:5;2708:1;2704;:5;:::i;:::-;2692:17;2512:224;-1:-1:-1;;;;;2512:224:0:o;12764:99::-;12821:17;;:34;;-1:-1:-1;;;;;12821:17:0;;;;:34;;;;;12848:6;;12821:17;:34;:17;:34;12848:6;12821:17;:34;;;;;;;;;;;;;;;;;;;8629:323;8724:7;8782;;8771;:18;;8749:110;;;;-1:-1:-1;;;8749:110:0;;14819:2:1;8749:110:0;;;14801:21:1;14858:2;14838:18;;;14831:30;14897:34;14877:18;;;14870:62;-1:-1:-1;;;14948:18:1;;;14941:40;14998:19;;8749:110:0;14617:406:1;8749:110:0;8870:19;8892:10;:8;:10::i;:::-;8870:32;-1:-1:-1;8920:24:0;:7;8870:32;8920:11;:24::i;:::-;8913:31;8629:323;-1:-1:-1;;;8629:323:0:o;12273:483::-;6292:6;:13;;-1:-1:-1;;;;6292:13:0;-1:-1:-1;;;6292:13:0;;;12375:16:::1;::::0;;12389:1:::1;12375:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12375:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12375:16:0::1;12351:40;;12420:4;12402;12407:1;12402:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12402:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12446:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12446:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12402:7;;12446:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12436:4;12441:1;12436:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12436:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12511:15:::1;::::0;12479:62:::1;::::0;12496:4:::1;::::0;12511:15:::1;12529:11:::0;12479:8:::1;:62::i;:::-;12552:15;::::0;:196:::1;::::0;-1:-1:-1;;;12552:196:0;;-1:-1:-1;;;;;12552:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12633:11;;12552:15:::1;::::0;12675:4;;12702::::1;::::0;12722:15:::1;::::0;12552:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6328:6:0;:14;;-1:-1:-1;;;;6328:14:0;;;-1:-1:-1;;;;12273:483:0:o;18364:220::-;18439:7;18292:20;;18340:8;;18467:38;;-1:-1:-1;18292:20:0;;18340:8;18467:38;18459:47;;;;;;18292:20;;18340:8;18517:59;;-1:-1:-1;18545:5:0;18538:12;;18517:59;-1:-1:-1;18573:3:0;18566:10;;18592:272;-1:-1:-1;;;;;18680:27:0;;18663:14;18680:27;;;:18;:27;;;;;;:32;;:117;;-1:-1:-1;18779:16:0;:12;18794:1;18779:16;:::i;:::-;18761:13;;-1:-1:-1;;;;;18731:27:0;;;;;;:18;:27;;;;;;:43;;18761:13;18731:43;:::i;:::-;18730:66;18680:117;18663:134;;18816:9;18808:48;;;;-1:-1:-1;;;18808:48:0;;16471:2:1;18808:48:0;;;16453:21:1;16510:2;16490:18;;;16483:30;16549:28;16529:18;;;16522:56;16595:18;;18808:48:0;16269:350:1;13744:282:0;13900:7;13895:28;;13909:14;:12;:14::i;:::-;13934:44;13952:6;13960:9;13971:6;13934:17;:44::i;:::-;13994:7;13989:29;;14003:15;9243:17;;9231:9;:29;9281:15;;9271:7;:25;9187:117;16705:164;16747:7;16768:15;16785;16804:19;:17;:19::i;:::-;16767:56;;-1:-1:-1;16767:56:0;-1:-1:-1;16841:20:0;16767:56;;16841:11;:20::i;:::-;16834:27;;;;16705:164;:::o;2998:132::-;3056:7;3083:39;3087:1;3090;3083:39;;;;;;;;;;;;;;;;;:3;:39::i;8960:219::-;9007:9;;:14;:30;;;;-1:-1:-1;9025:7:0;;:12;9007:30;9003:43;;;8960:219::o;9003:43::-;9078:9;;;9058:17;:29;9116:7;;;9098:15;:25;-1:-1:-1;9136:13:0;;;;9160:11;8960:219::o;14034:610::-;14181:15;14211:23;14249:12;14276:23;14314:12;14341:13;14368:19;14379:7;14368:10;:19::i;:::-;-1:-1:-1;;;;;14416:15:0;;;;;;:7;:15;;;;;;14166:221;;-1:-1:-1;14166:221:0;;-1:-1:-1;14166:221:0;;-1:-1:-1;14166:221:0;-1:-1:-1;14166:221:0;-1:-1:-1;14166:221:0;-1:-1:-1;14416:28:0;;14166:221;14416:19;:28::i;:::-;-1:-1:-1;;;;;14398:15:0;;;;;;;:7;:15;;;;;;:46;;;;14476:18;;;;;;;:39;;14499:15;14476:22;:39::i;:::-;-1:-1:-1;;;;;14455:18:0;;;;;;:7;:18;;;;;:60;14526:16;14536:5;14526:9;:16::i;:::-;14553:23;14565:4;14571;14553:11;:23::i;:::-;14609:9;-1:-1:-1;;;;;14592:44:0;14601:6;-1:-1:-1;;;;;14592:44:0;;14620:15;14592:44;;;;3177:25:1;;3165:2;3150:18;;3031:177;14592:44:0;;;;;;;;14155:489;;;;;;14034:610;;;:::o;16877:257::-;16928:7;16937;16957:15;16975:7;;16957:25;;16993:15;4702:1;5046:2;:13;;;;:::i;:::-;5028:31;;:15;:31;:::i;:::-;16993:25;-1:-1:-1;17043:20:0;5046:13;4702:1;5046:2;:13;:::i;:::-;5028:31;;:15;:31;:::i;:::-;17043:7;;;:11;:20::i;:::-;17033:7;:30;17029:61;;;17073:7;;4702:1;5046:2;:13;;;;:::i;:::-;5028:31;;:15;:31;:::i;:::-;17065:25;;;;;;16877:257;;:::o;17029:61::-;17109:7;;17118;;-1:-1:-1;16877:257:0;-1:-1:-1;16877:257:0:o;3138:223::-;3258:7;3293:12;3286:5;3278:28;;;;-1:-1:-1;;;3278:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3317:9:0;3329:5;3333:1;3329;:5;:::i;15063:615::-;15163:7;15185;15207;15229;15251;15273;15309:23;15334:12;15348:13;15378:40;15390:7;15399:9;;15410:7;;15378:11;:40::i;:::-;15308:110;;;;;;15429:19;15451:10;:8;:10::i;:::-;15429:32;;15473:15;15490:23;15515:12;15544:46;15556:7;15565:4;15571:5;15578:11;15544;:46::i;:::-;15472:118;;-1:-1:-1;15472:118:0;-1:-1:-1;15472:118:0;-1:-1:-1;15641:15:0;;-1:-1:-1;15658:4:0;;-1:-1:-1;15664:5:0;;-1:-1:-1;;;;;15063:615:0;;;;;;;:::o;2368:136::-;2426:7;2453:43;2457:1;2460;2453:43;;;;;;;;;;;;;;;;;:3;:43::i;2181:179::-;2239:7;;2271:5;2275:1;2271;:5;:::i;:::-;2259:17;;2300:1;2295;:6;;2287:46;;;;-1:-1:-1;;;2287:46:0;;17048:2:1;2287:46:0;;;17030:21:1;17087:2;17067:18;;;17060:30;17126:29;17106:18;;;17099:57;17173:18;;2287:46:0;16846:351:1;14652:211:0;14705:19;14727:10;:8;:10::i;:::-;14705:32;-1:-1:-1;14748:13:0;14764:22;:5;14705:32;14764:9;:22::i;:::-;14838:4;14822:22;;;;:7;:22;;;;;;14748:38;;-1:-1:-1;14822:33:0;;14748:38;14822:26;:33::i;:::-;14813:4;14797:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14652:211:0:o;14871:147::-;14949:7;;:17;;14961:4;14949:11;:17::i;:::-;14939:7;:27;14990:10;;:20;;15005:4;14990:14;:20::i;:::-;14977:10;:33;-1:-1:-1;;14871:147:0:o;15686:469::-;15855:7;;;;15949:30;15975:3;15949:21;:7;15961:8;15949:11;:21::i;:::-;:25;;:30::i;:::-;15934:45;-1:-1:-1;15990:13:0;16006:28;16030:3;16006:19;:7;16018:6;16006:11;:19::i;:28::-;15990:44;-1:-1:-1;16045:23:0;16071:28;15990:44;16071:17;:7;16083:4;16071:11;:17::i;:::-;:21;;:28::i;:::-;16045:54;16135:4;;-1:-1:-1;16141:5:0;;-1:-1:-1;15686:469:0;;-1:-1:-1;;;;;15686:469:0:o;16163:534::-;16357:7;;;;16454:24;:7;16466:11;16454;:24::i;:::-;16436:42;-1:-1:-1;16489:12:0;16504:21;:4;16513:11;16504:8;:21::i;:::-;16489:36;-1:-1:-1;16536:13:0;16552:22;:5;16562:11;16552:9;:22::i;:::-;16536:38;-1:-1:-1;16585:23:0;16611:28;16536:38;16611:17;:7;16623:4;16611:11;:17::i;:28::-;16658:7;;;;-1:-1:-1;16684:4:0;;-1:-1:-1;16163:534:0;;-1:-1:-1;;;;;;;16163:534:0:o;2744:246::-;2802:7;2826:1;2831;2826:6;2822:47;;-1:-1:-1;2856:1:0;2849:8;;2822:47;2879:9;2891:5;2895:1;2891;:5;:::i;:::-;2879:17;-1:-1:-1;2924:1:0;2915:5;2919:1;2879:17;2915:5;:::i;:::-;:10;2907:56;;;;-1:-1:-1;;;2907:56:0;;17404:2:1;2907:56:0;;;17386:21:1;17443:2;17423:18;;;17416:30;17482:34;17462:18;;;17455:62;-1:-1:-1;;;17533:18:1;;;17526:31;17574:19;;2907:56:0;17202:397:1;14:127;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:131;-1:-1:-1;;;;;221:31:1;;211:42;;201:70;;267:1;264;257:12;282:134;350:20;;379:31;350:20;379:31;:::i;:::-;282:134;;;:::o;421:1121::-;505:6;536:2;579;567:9;558:7;554:23;550:32;547:52;;;595:1;592;585:12;547:52;635:9;622:23;664:18;705:2;697:6;694:14;691:34;;;721:1;718;711:12;691:34;759:6;748:9;744:22;734:32;;804:7;797:4;793:2;789:13;785:27;775:55;;826:1;823;816:12;775:55;862:2;849:16;884:2;880;877:10;874:36;;;890:18;;:::i;:::-;936:2;933:1;929:10;968:2;962:9;1031:2;1027:7;1022:2;1018;1014:11;1010:25;1002:6;998:38;1086:6;1074:10;1071:22;1066:2;1054:10;1051:18;1048:46;1045:72;;;1097:18;;:::i;:::-;1133:2;1126:22;1183:18;;;1217:15;;;;-1:-1:-1;1259:11:1;;;1255:20;;;1287:19;;;1284:39;;;1319:1;1316;1309:12;1284:39;1343:11;;;;1363:148;1379:6;1374:3;1371:15;1363:148;;;1445:23;1464:3;1445:23;:::i;:::-;1433:36;;1396:12;;;;1489;;;;1363:148;;;1530:6;421:1121;-1:-1:-1;;;;;;;;421:1121:1:o;1547:548::-;1659:4;1688:2;1717;1706:9;1699:21;1749:6;1743:13;1792:6;1787:2;1776:9;1772:18;1765:34;1817:1;1827:140;1841:6;1838:1;1835:13;1827:140;;;1936:14;;;1932:23;;1926:30;1902:17;;;1921:2;1898:26;1891:66;1856:10;;1827:140;;;1831:3;2016:1;2011:2;2002:6;1991:9;1987:22;1983:31;1976:42;2086:2;2079;2075:7;2070:2;2062:6;2058:15;2054:29;2043:9;2039:45;2035:54;2027:62;;;;1547:548;;;;:::o;2100:315::-;2168:6;2176;2229:2;2217:9;2208:7;2204:23;2200:32;2197:52;;;2245:1;2242;2235:12;2197:52;2284:9;2271:23;2303:31;2328:5;2303:31;:::i;:::-;2353:5;2405:2;2390:18;;;;2377:32;;-1:-1:-1;;;2100:315:1:o;2612:180::-;2671:6;2724:2;2712:9;2703:7;2699:23;2695:32;2692:52;;;2740:1;2737;2730:12;2692:52;-1:-1:-1;2763:23:1;;2612:180;-1:-1:-1;2612:180:1:o;3213:456::-;3290:6;3298;3306;3359:2;3347:9;3338:7;3334:23;3330:32;3327:52;;;3375:1;3372;3365:12;3327:52;3414:9;3401:23;3433:31;3458:5;3433:31;:::i;:::-;3483:5;-1:-1:-1;3540:2:1;3525:18;;3512:32;3553:33;3512:32;3553:33;:::i;:::-;3213:456;;3605:7;;-1:-1:-1;;;3659:2:1;3644:18;;;;3631:32;;3213:456::o;4071:247::-;4130:6;4183:2;4171:9;4162:7;4158:23;4154:32;4151:52;;;4199:1;4196;4189:12;4151:52;4238:9;4225:23;4257:31;4282:5;4257:31;:::i;4323:160::-;4388:20;;4444:13;;4437:21;4427:32;;4417:60;;4473:1;4470;4463:12;4488:180;4544:6;4597:2;4585:9;4576:7;4572:23;4568:32;4565:52;;;4613:1;4610;4603:12;4565:52;4636:26;4652:9;4636:26;:::i;4673:315::-;4738:6;4746;4799:2;4787:9;4778:7;4774:23;4770:32;4767:52;;;4815:1;4812;4805:12;4767:52;4854:9;4841:23;4873:31;4898:5;4873:31;:::i;:::-;4923:5;-1:-1:-1;4947:35:1;4978:2;4963:18;;4947:35;:::i;:::-;4937:45;;4673:315;;;;;:::o;4993:385::-;5079:6;5087;5095;5103;5156:3;5144:9;5135:7;5131:23;5127:33;5124:53;;;5173:1;5170;5163:12;5124:53;-1:-1:-1;;5196:23:1;;;5266:2;5251:18;;5238:32;;-1:-1:-1;5317:2:1;5302:18;;5289:32;;5368:2;5353:18;5340:32;;-1:-1:-1;4993:385:1;-1:-1:-1;4993:385:1:o;5383:689::-;5475:6;5483;5491;5544:2;5532:9;5523:7;5519:23;5515:32;5512:52;;;5560:1;5557;5550:12;5512:52;5600:9;5587:23;5629:18;5670:2;5662:6;5659:14;5656:34;;;5686:1;5683;5676:12;5656:34;5724:6;5713:9;5709:22;5699:32;;5769:7;5762:4;5758:2;5754:13;5750:27;5740:55;;5791:1;5788;5781:12;5740:55;5831:2;5818:16;5857:2;5849:6;5846:14;5843:34;;;5873:1;5870;5863:12;5843:34;5928:7;5921:4;5911:6;5908:1;5904:14;5900:2;5896:23;5892:34;5889:47;5886:67;;;5949:1;5946;5939:12;5886:67;5980:4;5972:13;;;;-1:-1:-1;6004:6:1;-1:-1:-1;6029:37:1;;6045:20;;;-1:-1:-1;6029:37:1;:::i;:::-;6019:47;;5383:689;;;;;:::o;6077:388::-;6145:6;6153;6206:2;6194:9;6185:7;6181:23;6177:32;6174:52;;;6222:1;6219;6212:12;6174:52;6261:9;6248:23;6280:31;6305:5;6280:31;:::i;:::-;6330:5;-1:-1:-1;6387:2:1;6372:18;;6359:32;6400:33;6359:32;6400:33;:::i;:::-;6452:7;6442:17;;;6077:388;;;;;:::o;6470:356::-;6672:2;6654:21;;;6691:18;;;6684:30;6750:34;6745:2;6730:18;;6723:62;6817:2;6802:18;;6470:356::o;6831:127::-;6892:10;6887:3;6883:20;6880:1;6873:31;6923:4;6920:1;6913:15;6947:4;6944:1;6937:15;6963:127;7024:10;7019:3;7015:20;7012:1;7005:31;7055:4;7052:1;7045:15;7079:4;7076:1;7069:15;7095:135;7134:3;7155:17;;;7152:43;;7175:18;;:::i;:::-;-1:-1:-1;7222:1:1;7211:13;;7095:135::o;7657:422::-;7746:1;7789:5;7746:1;7803:270;7824:7;7814:8;7811:21;7803:270;;;7883:4;7879:1;7875:6;7871:17;7865:4;7862:27;7859:53;;;7892:18;;:::i;:::-;7942:7;7932:8;7928:22;7925:55;;;7962:16;;;;7925:55;8041:22;;;;8001:15;;;;7803:270;;;7807:3;7657:422;;;;;:::o;8084:806::-;8133:5;8163:8;8153:80;;-1:-1:-1;8204:1:1;8218:5;;8153:80;8252:4;8242:76;;-1:-1:-1;8289:1:1;8303:5;;8242:76;8334:4;8352:1;8347:59;;;;8420:1;8415:130;;;;8327:218;;8347:59;8377:1;8368:10;;8391:5;;;8415:130;8452:3;8442:8;8439:17;8436:43;;;8459:18;;:::i;:::-;-1:-1:-1;;8515:1:1;8501:16;;8530:5;;8327:218;;8629:2;8619:8;8616:16;8610:3;8604:4;8601:13;8597:36;8591:2;8581:8;8578:16;8573:2;8567:4;8564:12;8560:35;8557:77;8554:159;;;-1:-1:-1;8666:19:1;;;8698:5;;8554:159;8745:34;8770:8;8764:4;8745:34;:::i;:::-;8815:6;8811:1;8807:6;8803:19;8794:7;8791:32;8788:58;;;8826:18;;:::i;:::-;8864:20;;8084:806;-1:-1:-1;;;8084:806:1:o;8895:140::-;8953:5;8982:47;9023:4;9013:8;9009:19;9003:4;8982:47;:::i;9040:168::-;9113:9;;;9144;;9161:15;;;9155:22;;9141:37;9131:71;;9182:18;;:::i;13950:125::-;14015:9;;;14036:10;;;14033:36;;;14049:18;;:::i;14484:128::-;14551:9;;;14572:11;;;14569:37;;;14586:18;;:::i;15028:251::-;15098:6;15151:2;15139:9;15130:7;15126:23;15122:32;15119:52;;;15167:1;15164;15157:12;15119:52;15199:9;15193:16;15218:31;15243:5;15218:31;:::i;15284:980::-;15546:4;15594:3;15583:9;15579:19;15625:6;15614:9;15607:25;15651:2;15689:6;15684:2;15673:9;15669:18;15662:34;15732:3;15727:2;15716:9;15712:18;15705:31;15756:6;15791;15785:13;15822:6;15814;15807:22;15860:3;15849:9;15845:19;15838:26;;15899:2;15891:6;15887:15;15873:29;;15920:1;15930:195;15944:6;15941:1;15938:13;15930:195;;;16009:13;;-1:-1:-1;;;;;16005:39:1;15993:52;;16100:15;;;;16065:12;;;;16041:1;15959:9;15930:195;;;-1:-1:-1;;;;;;;16181:32:1;;;;16176:2;16161:18;;16154:60;-1:-1:-1;;;16245:3:1;16230:19;16223:35;16142:3;15284:980;-1:-1:-1;;;15284:980:1:o;16624:217::-;16664:1;16690;16680:132;;16734:10;16729:3;16725:20;16722:1;16715:31;16769:4;16766:1;16759:15;16797:4;16794:1;16787:15;16680:132;-1:-1:-1;16826:9:1;;16624:217::o

Swarm Source

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