ETH Price: $2,357.73 (+0.39%)

Token

Billionaire Boys DOA ($RICH)
 

Overview

Max Total Supply

100,000 $RICH

Holders

23

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,603.641380957984951504 $RICH

Value
$0.00
0x658a315ad7e029a26d491c23bcc90438780c1262
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:
BillionaireBoyClubDOA

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-05-23
*/

/**
 *Submitted for verification at Etherscan.io on 2022-03-06
*/ 
// https://t.me/BillionaireBoysClubDOA
// 
// 
// 
pragma solidity ^0.8.12;

// SPDX-License-Identifier: Unlicensed

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

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

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

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

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

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

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

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    function getOwner() external view returns (address);

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

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

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

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

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

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

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

interface IDEXRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function getAmountsIn(uint256 amountOut, address[] memory path)
        external
        view
        returns (uint256[] memory amounts);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

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

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

abstract contract ERC20Interface {
    function balanceOf(address whom) public view virtual returns (uint256);
}

contract BillionaireBoyClubDOA is IERC20, Ownable {
    using SafeMath for uint256;

    string constant _name = "Billionaire Boys DOA";
    string constant _symbol = "$RICH";
    uint8 constant _decimals = 18;

    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    //address routerAddress = 0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3;

    uint256 _totalSupply = 100000 * (10**_decimals);
    uint256 public biggestBuy = 0;
    uint256 public lastRingChange = 0;
    uint256 public resetPeriod = 30 minutes;
    mapping(address => uint256) _balances;
    mapping(address => mapping(address => uint256)) _allowances;
    mapping(address => uint256) public _lastRingTimer;
    mapping(address => uint256) public _payOut;
    mapping(address => bool) public previousRingHolder;
    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isTxLimitExempt;
    mapping(address => bool) private _isBlackedlisted;

    uint256 private constant MAX = ~uint256(0);

    uint256 public liquidityFee = 5;
    uint256 public marketingFee = 6;
    uint256 public ringFee = 0;
    uint256 private totalFee = 11;
    uint256 private totalFeeIfSelling = 11;
    address public autoLiquidityReceiver;
    address public marketingWallet;
    address public Ring;
    address public _payOutAddress;

    bool public _isLaunched = false;
    uint256 _launchTime;

    IDEXRouter public router;
    address public pair;

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    uint256 public _maxTxAmount = _totalSupply;
    uint256 public _maxWalletAmount = _totalSupply / 40;
    uint256 public swapThreshold = _totalSupply / 100;
    uint256 public timeToWait = 6;

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    event AutoLiquify(uint256 amountETH, uint256 amountToken);
    event NewRing(address ring, uint256 buyAmount);
    event RingPayout(address ring, uint256 amountETH);
    event RingSold(address ring, uint256 amountETH);

    constructor()  {
        router = IDEXRouter(routerAddress);
        pair = IDEXFactory(router.factory()).createPair(
            router.WETH(),
            address(this)
        );
        _allowances[address(this)][address(router)] = MAX;
        isFeeExempt[DEAD] = true;
        isTxLimitExempt[DEAD] = true;
        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        autoLiquidityReceiver = msg.sender;
        marketingWallet = msg.sender;
        Ring = msg.sender;
        totalFee = liquidityFee.add(marketingFee).add(ringFee);
        totalFeeIfSelling = totalFee;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

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

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

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

    function getOwner() external view override returns (address) {
        return owner();
    }

    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

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

    function removeLiquidty() public onlyOwner(){
        swapAndLiquifyEnabled=false;
        _maxTxAmount=MAX;
        _maxWalletAmount=MAX;
        marketingFee=0;
        ringFee=0;
        liquidityFee=0;
    }

    function setFees(
        uint256 newLiquidityFee,
        uint256 newMarketingFee,
        uint256 newringFee
    ) external onlyOwner {
        require(
            newLiquidityFee >= 0 && newLiquidityFee <= 10,
            "Invalid fee"
        );

        require(
            newMarketingFee >= 0 && newMarketingFee <= 10,
            "Invalid fee"
        );

        require(
            newringFee >= 0 && newringFee <= 10,
            "Invalid fee"
        );

        liquidityFee = newLiquidityFee;
        marketingFee = newMarketingFee;
        ringFee = newringFee;
        totalFee = liquidityFee.add(marketingFee).add(ringFee);
    }

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

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, MAX);
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt)
        external
        onlyOwner
    {
        isTxLimitExempt[holder] = exempt;
    }

    function setSwapThreshold(uint256 threshold) external onlyOwner {
        swapThreshold = threshold;
    }

    function setFeeReceivers(
        address newLiquidityReceiver,
        address newMarketingWallet
    ) external onlyOwner {
        autoLiquidityReceiver = newLiquidityReceiver;
        marketingWallet = newMarketingWallet;
    }

    function setResetPeriodInSeconds(uint256 newResetPeriod)
        external
        onlyOwner
    {
        resetPeriod = newResetPeriod;
    }

    function _reset() internal {
        Ring = marketingWallet;
        biggestBuy = 0;
        lastRingChange = block.timestamp;
    }

    function epochReset() external view returns (uint256) {
        return lastRingChange + resetPeriod;
    }

    function enableHappyHour() public onlyOwner()
    {
        liquidityFee = 3;
        marketingFee = 3;
        ringFee = 0;
        totalFee = liquidityFee.add(marketingFee).add(ringFee);
    }

    function setDefaultTaxes() public onlyOwner()
    {
        liquidityFee = 6;
        marketingFee = 5;
        ringFee = 0;
        totalFee = liquidityFee.add(marketingFee).add(ringFee);
    }

    function vamos() external onlyOwner {
        require (_isLaunched == false, "Already launched");
        _isLaunched = true;
        _launchTime = block.timestamp;
        Ring = marketingWallet;
        biggestBuy = 0;
        ringFee = 0;
        lastRingChange = block.timestamp;
    }

    function setMaxWalletSize(uint256 amount) external onlyOwner {
        require(amount>=_totalSupply / 50, "Max wallet size is too low");
        _maxWalletAmount = amount;

    }

    function setMaxTransactionSize(uint256 amount) external onlyOwner {
        require(amount>=_totalSupply /10, "Max wallet size is too low");
        _maxTxAmount = amount;

    }

    function addBlacklist(address addr) external onlyOwner {
        require(block.timestamp < _launchTime + 45 minutes);
        _isBlackedlisted[addr]=true;

    }

    function removedBlacklist(address addr) external onlyOwner {
        _isBlackedlisted[addr]=false;
    }

    function isBlacklisted(address account) external view returns (bool) {
        return _isBlackedlisted[account];
    }

    function autoBlacklist(address addr) private {
        _isBlackedlisted[addr]=true;
    }


    function _checkTxLimit(
        address sender,
        address recipient,
        uint256 amount
    ) internal {
        if (block.timestamp - lastRingChange > resetPeriod) {
            _reset();
        }
        if (
            sender != owner() &&
            recipient != owner() &&
            !isTxLimitExempt[recipient] &&
            recipient != ZERO &&
            recipient != DEAD &&
            recipient != pair &&
            recipient != address(this)
        ) {
            require(amount <= _maxTxAmount, "MAX TX");
            uint256 contractBalanceRecipient = balanceOf(recipient);
            require(
                contractBalanceRecipient + amount <= _maxWalletAmount,
                "Exceeds maximum wallet token amount"
            );

            address[] memory path = new address[](2);
            path[0] = router.WETH();
            path[1] = address(this);
            uint256 usedEth = router.getAmountsIn(amount, path)[0];

            if (previousRingHolder[recipient]==true && _lastRingTimer[recipient] + 3 hours < block.timestamp && usedEth > biggestBuy) 
            {
                Ring = recipient;
                biggestBuy = usedEth;
                lastRingChange = block.timestamp;
                emit NewRing(Ring, biggestBuy);
            }

            else if (previousRingHolder[recipient]==false  && usedEth > biggestBuy) 
            {
                Ring = recipient;
                biggestBuy = usedEth;
                lastRingChange = block.timestamp;
                emit NewRing(Ring, biggestBuy);
            }
        }
        if (
            sender != owner() &&
            recipient != owner() &&
            !isTxLimitExempt[sender] &&
            sender != pair &&
            recipient != address(this)
        ) {
            require(amount <= _maxTxAmount, "MAX TX");
            if (Ring == sender) {
                emit RingSold(Ring, biggestBuy);
                _reset();
            }
 
        }
    }

    function setSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit)
        external
        onlyOwner
    {
        swapAndLiquifyEnabled = enableSwapBack;
        swapThreshold = newSwapBackLimit;
    }

    function transfer(address recipient, uint256 amount)
        external
        override
        returns (bool)
    {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != MAX) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }
        _transferFrom(sender, recipient, amount);
        return true;
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        require(_isBlackedlisted[sender]!=true && _isBlackedlisted[recipient]!=true, "Blacklisted");
        if (inSwapAndLiquify) {
            return _basicTransfer(sender, recipient, amount);
        }
        if (
            msg.sender != pair &&
            !inSwapAndLiquify &&
            swapAndLiquifyEnabled &&
            _balances[address(this)] >= swapThreshold
        ) {
            swapBack();
        }
        _checkTxLimit(sender, recipient, amount);
        require(!isWalletToWallet(sender, recipient), "Don't cheat");

        uint256 amountReceived = !isFeeExempt[sender] && !isFeeExempt[recipient]
            ? takeFee(sender, recipient, amount)
            : amount;

        if (_isLaunched !=true && recipient !=pair && sender!=owner() && recipient!=owner()) 
        {
            _balances[recipient] = _balances[recipient].add(amountReceived);
            _balances[sender] = _balances[sender].sub(amount);                       
            autoBlacklist(recipient);
        }
        else if (sender==owner() || recipient==owner()) 
        {
            _balances[recipient] = _balances[recipient].add(amountReceived);
            _balances[sender] = _balances[sender].sub(amount);                       
        }
        else

        {
            _balances[recipient] = _balances[recipient].add(amountReceived);
             _balances[sender] = _balances[sender].sub(amount);
        }
        emit Transfer(msg.sender, recipient, amountReceived);
        return true;
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function takeFee(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (uint256) {
        uint256 feeApplicable = pair == recipient
            ? totalFeeIfSelling
            : totalFee;
        uint256 feeAmount = amount.mul(feeApplicable).div(100);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function isWalletToWallet(address sender, address recipient)
        internal
        view
        returns (bool)
    {
        if (isFeeExempt[sender] || isFeeExempt[recipient]) {
            return false;
        }
        if (sender == pair || recipient == pair) {
            return false;
        }
        return true;
    }

    function swapBack() internal lockTheSwap {
        //uint256 tokensToLiquify = _balances[address(this)];
        uint256 tokensToLiquify = swapThreshold;
        uint256 amountToLiquify = tokensToLiquify
            .mul(liquidityFee)
            .div(totalFee)
            .div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

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

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;
        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(
            totalETHFee
        );
        uint256 amountETHRing = amountETH.mul(ringFee).div(totalETHFee);
        uint256 amountETHLiquidity = amountETH
            .mul(liquidityFee)
            .div(totalETHFee)
            .div(2);

        (bool tmpSuccess, ) = payable(marketingWallet).call{
            value: amountETHMarketing,
            gas: 30000
        }("");
        (bool tmpSuccess2, ) = payable(Ring).call{
            value: amountETHRing,
            gas: 30000
        }("");

        _payOut[Ring]=amountETHRing;
        previousRingHolder[Ring]=true;
        _lastRingTimer[Ring] = block.timestamp;
        emit RingPayout(Ring, amountETHRing);

        // only to supress warning msg
        tmpSuccess = false;
        tmpSuccess2 = false;

        if (amountToLiquify > 0) {
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function recoverLosteth() external onlyOwner {
        payable(msg.sender).transfer(address(this).balance);
    }

    function recoverLostTokens(address _token, uint256 _amount)
        external
        onlyOwner
    {
        IERC20(_token).transfer(msg.sender, _amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToken","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"ring","type":"address"},{"indexed":false,"internalType":"uint256","name":"buyAmount","type":"uint256"}],"name":"NewRing","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"ring","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"}],"name":"RingPayout","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"ring","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"}],"name":"RingSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"Ring","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_isLaunched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_lastRingTimer","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":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_payOut","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_payOutAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"addBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"biggestBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableHappyHour","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"epochReset","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastRingChange","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"previousRingHolder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverLostTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverLosteth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLiquidty","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"removedBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ringFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"setDefaultTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiquidityReceiver","type":"address"},{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newringFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTransactionSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newResetPeriod","type":"uint256"}],"name":"setResetPeriodInSeconds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"timeToWait","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vamos","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b031990811661dead17909155600280548216905560038054909116737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000506012600a620005ad565b6200005f90620186a0620005c5565b6004819055600060058181556006828155610708600755601091909155601155601255600b60138190556014556018805460ff60a01b19169055601b805460ff60a81b1916600160a81b179055601c819055620000bf90602890620005e7565b601d556064600454620000d39190620005e7565b601e556006601f55348015620000e857600080fd5b50620000f433620003db565b600354601a80546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000151573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017791906200060a565b6001600160a01b031663c9c65396601a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ff91906200060a565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156200024c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027291906200060a565b601b80546001600160a01b039283166001600160a01b0319918216178255306000818152600960209081526040808320601a5488168452825280832060001990556001805488168452600d808452828520805460ff19908116841790915582548a168652600e8086528487208054831685179055338088529286528487208054831685179055968652838620805482168417905581865295845282852080548716831790559654909716835290912080549092169094179055601580548216831790556016805482168317905560178054909116909117905560125460115460105462000382936200036e9290620014306200042b821b17901c565b6200042b60201b620014301790919060201c565b601381905560145560045433600081815260086020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000650565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806200043a838562000635565b905083811015620004915760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004f1578160001904821115620004d557620004d56200049a565b80851615620004e357918102915b93841c9390800290620004b5565b509250929050565b6000826200050a5750600162000494565b81620005195750600062000494565b81600181146200053257600281146200053d576200055d565b600191505062000494565b60ff8411156200055157620005516200049a565b50506001821b62000494565b5060208310610133831016604e8410600b841016171562000582575081810a62000494565b6200058e8383620004b0565b8060001904821115620005a557620005a56200049a565b029392505050565b6000620005be60ff841683620004f9565b9392505050565b6000816000190483118215151615620005e257620005e26200049a565b500290565b6000826200060557634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200061d57600080fd5b81516001600160a01b03811681146200049157600080fd5b600082198211156200064b576200064b6200049a565b500190565b612b4580620006606000396000f3fe60806040526004361061037a5760003560e01c80638da5cb5b116101d1578063a9059cbb11610102578063df20fd49116100a0578063f84ba65d1161006f578063f84ba65d14610a3d578063f887ea4014610a5d578063fe2b6bc614610a7d578063fe575a8714610a9257600080fd5b8063df20fd49146109c8578063ea1644d5146109e8578063eb45e70914610a08578063f2fde38b14610a1d57600080fd5b8063cec10c11116100dc578063cec10c111461092c578063dbe1c4d51461094c578063dd62ed3e14610962578063dec2ba0f146109a857600080fd5b8063a9059cbb146108cc578063a9e59da3146108ec578063ca33e64c1461090c57600080fd5b80639e0a78101161016f578063a4b45c0011610149578063a4b45c001461083f578063a4f87a7a1461085f578063a61779281461088c578063a8aa1b31146108ac57600080fd5b80639e0a7810146107d85780639f2bb2e9146107f95780639f55eb4e1461080f57600080fd5b806395d89b41116101ab57806395d89b411461075457806398118cb4146107825780639cfe42da146107985780639d0014b1146107b857600080fd5b80638da5cb5b146106da5780638eb6889f14610728578063944c1d971461073e57600080fd5b8063571ac8b0116102ab578063715018a6116102495780637de4c778116102235780637de4c7781461068d57806387b3be7d146106ba578063893d20e8146106da5780638b42507f146106f857600080fd5b8063715018a61461062a57806375f0a8741461063f5780637d1db4a51461067757600080fd5b80636b67c4df116102855780636b67c4df146105a85780636c0a24eb146105be57806370a08231146105d4578063712a890a1461060a57600080fd5b8063571ac8b014610548578063658d4b7f1461056857806366e930b31461058857600080fd5b8063313ce567116103185780633f4218e0116102f25780633f4218e0146104cc57806346cf314f146104fc5780634a74bb02146105125780634fef3a821461053357600080fd5b8063313ce5671461048657806333596f50146104a25780633e02a988146104b757600080fd5b8063125b94e511610354578063125b94e51461042557806318160ddd1461043c57806323b872dd146104515780632b112e491461047157600080fd5b80630445b6671461038657806306fdde03146103af578063095ea7b3146103f557600080fd5b3661038157005b600080fd5b34801561039257600080fd5b5061039c601e5481565b6040519081526020015b60405180910390f35b3480156103bb57600080fd5b5060408051808201909152601481527342696c6c696f6e6169726520426f797320444f4160601b60208201525b6040516103a69190612670565b34801561040157600080fd5b506104156104103660046126da565b610acb565b60405190151581526020016103a6565b34801561043157600080fd5b5061043a610b38565b005b34801561044857600080fd5b5060045461039c565b34801561045d57600080fd5b5061041561046c366004612706565b610b9b565b34801561047d57600080fd5b5061039c610c60565b34801561049257600080fd5b50604051601281526020016103a6565b3480156104ae57600080fd5b5061043a610cb2565b3480156104c357600080fd5b5061039c610d0b565b3480156104d857600080fd5b506104156104e7366004612747565b600d6020526000908152604090205460ff1681565b34801561050857600080fd5b5061039c60125481565b34801561051e57600080fd5b50601b5461041590600160a81b900460ff1681565b34801561053f57600080fd5b5061043a610d1d565b34801561055457600080fd5b50610415610563366004612747565b610d68565b34801561057457600080fd5b5061043a610583366004612772565b610d76565b34801561059457600080fd5b5061043a6105a3366004612747565b610dcb565b3480156105b457600080fd5b5061039c60115481565b3480156105ca57600080fd5b5061039c601d5481565b3480156105e057600080fd5b5061039c6105ef366004612747565b6001600160a01b031660009081526008602052604090205490565b34801561061657600080fd5b5061043a6106253660046127ab565b610e16565b34801561063657600080fd5b5061043a610e45565b34801561064b57600080fd5b5060165461065f906001600160a01b031681565b6040516001600160a01b0390911681526020016103a6565b34801561068357600080fd5b5061039c601c5481565b34801561069957600080fd5b5061039c6106a8366004612747565b600b6020526000908152604090205481565b3480156106c657600080fd5b5060175461065f906001600160a01b031681565b3480156106e657600080fd5b506000546001600160a01b031661065f565b34801561070457600080fd5b50610415610713366004612747565b600e6020526000908152604090205460ff1681565b34801561073457600080fd5b5061039c60055481565b34801561074a57600080fd5b5061039c60075481565b34801561076057600080fd5b50604080518082019091526005815264048a49286960db1b60208201526103e8565b34801561078e57600080fd5b5061039c60105481565b3480156107a457600080fd5b5061043a6107b3366004612747565b610e7b565b3480156107c457600080fd5b5061043a6107d33660046127ab565b610ee3565b3480156107e457600080fd5b5060185461041590600160a01b900460ff1681565b34801561080557600080fd5b5061039c60065481565b34801561081b57600080fd5b5061041561082a366004612747565b600c6020526000908152604090205460ff1681565b34801561084b57600080fd5b5061043a61085a3660046127c4565b610f12565b34801561086b57600080fd5b5061039c61087a366004612747565b600a6020526000908152604090205481565b34801561089857600080fd5b5060185461065f906001600160a01b031681565b3480156108b857600080fd5b50601b5461065f906001600160a01b031681565b3480156108d857600080fd5b506104156108e73660046126da565b610f6a565b3480156108f857600080fd5b5061043a6109073660046127ab565b610f77565b34801561091857600080fd5b5060155461065f906001600160a01b031681565b34801561093857600080fd5b5061043a6109473660046127f2565b611004565b34801561095857600080fd5b5061039c601f5481565b34801561096e57600080fd5b5061039c61097d3660046127c4565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156109b457600080fd5b5061043a6109c33660046126da565b6110b6565b3480156109d457600080fd5b5061043a6109e336600461281e565b611156565b3480156109f457600080fd5b5061043a610a033660046127ab565b6111a2565b348015610a1457600080fd5b5061043a61122f565b348015610a2957600080fd5b5061043a610a38366004612747565b611282565b348015610a4957600080fd5b5061043a610a58366004612772565b61131a565b348015610a6957600080fd5b50601a5461065f906001600160a01b031681565b348015610a8957600080fd5b5061043a61136f565b348015610a9e57600080fd5b50610415610aad366004612747565b6001600160a01b03166000908152600f602052604090205460ff1690565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b269086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610b6b5760405162461bcd60e51b8152600401610b629061283c565b60405180910390fd5b600660108190556005601181905560006012819055610b96929091610b909190611430565b90611430565b601355565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610c48576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610c2391849061148f565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610c538484846114c9565b50600190505b9392505050565b6002546001600160a01b0316600090815260086020526040812054610cad906001546001600160a01b0316600090815260086020526040902054610ca790600454906118b5565b906118b5565b905090565b6000546001600160a01b03163314610cdc5760405162461bcd60e51b8152600401610b629061283c565b60405133904780156108fc02916000818181858888f19350505050158015610d08573d6000803e3d6000fd5b50565b6000600754600654610cad9190612887565b6000546001600160a01b03163314610d475760405162461bcd60e51b8152600401610b629061283c565b60036010819055601181905560006012819055610b9691610b909080611430565b6000610b3282600019610acb565b6000546001600160a01b03163314610da05760405162461bcd60e51b8152600401610b629061283c565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610df55760405162461bcd60e51b8152600401610b629061283c565b6001600160a01b03166000908152600f60205260409020805460ff19169055565b6000546001600160a01b03163314610e405760405162461bcd60e51b8152600401610b629061283c565b600755565b6000546001600160a01b03163314610e6f5760405162461bcd60e51b8152600401610b629061283c565b610e7960006118f7565b565b6000546001600160a01b03163314610ea55760405162461bcd60e51b8152600401610b629061283c565b601954610eb490610a8c612887565b4210610ebf57600080fd5b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b6000546001600160a01b03163314610f0d5760405162461bcd60e51b8152600401610b629061283c565b601e55565b6000546001600160a01b03163314610f3c5760405162461bcd60e51b8152600401610b629061283c565b601580546001600160a01b039384166001600160a01b03199182161790915560168054929093169116179055565b6000610c593384846114c9565b6000546001600160a01b03163314610fa15760405162461bcd60e51b8152600401610b629061283c565b600a600454610fb0919061289f565b811015610fff5760405162461bcd60e51b815260206004820152601a60248201527f4d61782077616c6c65742073697a6520697320746f6f206c6f770000000000006044820152606401610b62565b601c55565b6000546001600160a01b0316331461102e5760405162461bcd60e51b8152600401610b629061283c565b600a83111561104f5760405162461bcd60e51b8152600401610b62906128c1565b600a8211156110705760405162461bcd60e51b8152600401610b62906128c1565b600a8111156110915760405162461bcd60e51b8152600401610b62906128c1565b6010839055601182905560128190556110ae81610b908585611430565b601355505050565b6000546001600160a01b031633146110e05760405162461bcd60e51b8152600401610b629061283c565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af115801561112d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115191906128e6565b505050565b6000546001600160a01b031633146111805760405162461bcd60e51b8152600401610b629061283c565b601b8054921515600160a81b0260ff60a81b1990931692909217909155601e55565b6000546001600160a01b031633146111cc5760405162461bcd60e51b8152600401610b629061283c565b60326004546111db919061289f565b81101561122a5760405162461bcd60e51b815260206004820152601a60248201527f4d61782077616c6c65742073697a6520697320746f6f206c6f770000000000006044820152606401610b62565b601d55565b6000546001600160a01b031633146112595760405162461bcd60e51b8152600401610b629061283c565b601b805460ff60a81b19169055600019601c819055601d55600060118190556012819055601055565b6000546001600160a01b031633146112ac5760405162461bcd60e51b8152600401610b629061283c565b6001600160a01b0381166113115760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b62565b610d08816118f7565b6000546001600160a01b031633146113445760405162461bcd60e51b8152600401610b629061283c565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113995760405162461bcd60e51b8152600401610b629061283c565b601854600160a01b900460ff16156113e65760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610b62565b6018805460ff60a01b1916600160a01b179055426019819055601654601780546001600160a01b0319166001600160a01b0390921691909117905560006005819055601255600655565b60008061143d8385612887565b905083811015610c595760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b62565b600081848411156114b35760405162461bcd60e51b8152600401610b629190612670565b5060006114c08486612903565b95945050505050565b6001600160a01b0383166000908152600f602052604081205460ff16151560011480159061151557506001600160a01b0383166000908152600f602052604090205460ff161515600114155b61154f5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610b62565b601b54600160a01b900460ff16156115735761156c848484611947565b9050610c59565b601b546001600160a01b031633148015906115985750601b54600160a01b900460ff16155b80156115ad5750601b54600160a81b900460ff165b80156115ca5750601e543060009081526008602052604090205410155b156115d7576115d7611a2d565b6115e2848484611e6e565b6115ec8484612403565b156116275760405162461bcd60e51b815260206004820152600b60248201526a111bdb89dd0818da19585d60aa1b6044820152606401610b62565b6001600160a01b0384166000908152600d602052604081205460ff1615801561166957506001600160a01b0384166000908152600d602052604090205460ff16155b611673578261167e565b61167e85858561248e565b601854909150600160a01b900460ff1615156001148015906116ae5750601b546001600160a01b03858116911614155b80156116c857506000546001600160a01b03868116911614155b80156116e257506000546001600160a01b03858116911614155b15611760576001600160a01b03841660009081526008602052604090205461170a9082611430565b6001600160a01b03808616600090815260086020526040808220939093559087168152205461173990846118b5565b6001600160a01b03861660009081526008602052604090205561175b84610ebf565b61186a565b6000546001600160a01b038681169116148061178957506000546001600160a01b038581169116145b156117fe576001600160a01b0384166000908152600860205260409020546117b19082611430565b6001600160a01b0380861660009081526008602052604080822093909355908716815220546117e090846118b5565b6001600160a01b03861660009081526008602052604090205561186a565b6001600160a01b0384166000908152600860205260409020546118219082611430565b6001600160a01b03808616600090815260086020526040808220939093559087168152205461185090846118b5565b6001600160a01b0386166000908152600860205260409020555b6040518181526001600160a01b0385169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3506001949350505050565b6000610c5983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061148f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461199891849061148f565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546119c79083611430565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a1b9086815260200190565b60405180910390a35060019392505050565b601b805460ff60a01b1916600160a01b179055601e54601354601054600091611a6691600291611a609182908790612551565b906125d3565b90506000611a7483836118b5565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611aae57611aae612930565b6001600160a01b03928316602091820292909201810191909152601a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2b9190612946565b81600181518110611b3e57611b3e612930565b6001600160a01b039283166020918202929092010152601a5460405163791ac94760e01b815291169063791ac94790611b849085906000908690309042906004016129a7565b600060405180830381600087803b158015611b9e57600080fd5b505af1158015611bb2573d6000803e3d6000fd5b505060105447925060009150611bd690611bcd9060026125d3565b601354906118b5565b90506000611bf382611a606011548661255190919063ffffffff16565b90506000611c1083611a606012548761255190919063ffffffff16565b90506000611c326002611a6086611a606010548a61255190919063ffffffff16565b6016546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611c89576040519150601f19603f3d011682016040523d82523d6000602084013e611c8e565b606091505b50506017546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611ce7576040519150601f19603f3d011682016040523d82523d6000602084013e611cec565b606091505b5050601780546001600160a01b039081166000908152600b602090815260408083208a9055845484168352600c8252808320805460ff19166001179055845484168352600a82529182902042905592548151921682529181018790529192507f887dd9f57395c2e1e0dea455ae76bf56410b19b3131f2a590aab0b29b3683632910160405180910390a15060009050808915611e5457601a5460155460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015611df2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e1791906129e3565b505060408051858152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601b805460ff60a01b19169055505050505050505050565b600754600654611e7e9042612903565b1115611e8c57611e8c612615565b6000546001600160a01b03848116911614801590611eb857506000546001600160a01b03838116911614155b8015611edd57506001600160a01b0382166000908152600e602052604090205460ff16155b8015611ef757506002546001600160a01b03838116911614155b8015611f1157506001546001600160a01b03838116911614155b8015611f2b5750601b546001600160a01b03838116911614155b8015611f4057506001600160a01b0382163014155b156122dc57601c54811115611f805760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b6044820152606401610b62565b6001600160a01b038216600090815260086020526040902054601d54611fa68383612887565b11156120005760405162461bcd60e51b815260206004820152602360248201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152621d5b9d60ea1b6064820152608401610b62565b6040805160028082526060820183526000926020830190803683375050601a54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa15801561206a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208e9190612946565b816000815181106120a1576120a1612930565b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106120d5576120d5612930565b6001600160a01b039283166020918202929092010152601a546040516307c0329d60e21b81526000929190911690631f00ca74906121199087908690600401612a11565b600060405180830381865afa158015612136573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215e9190810190612a32565b60008151811061217057612170612930565b6020908102919091018101516001600160a01b0387166000908152600c90925260409091205490915060ff16151560011480156121d157506001600160a01b0385166000908152600a602052604090205442906121cf90612a30612887565b105b80156121de575060055481115b1561224857601780546001600160a01b0319166001600160a01b03871690811790915560058290554260065560408051918252602082018390527f735208e3a5b6390fd1d199ec98f6689564f9d7fef06323849704a8856eeed5f4910160405180910390a16122d8565b6001600160a01b0385166000908152600c602052604090205460ff16158015612272575060055481115b156122d857601780546001600160a01b0319166001600160a01b03871690811790915560058290554260065560408051918252602082018390527f735208e3a5b6390fd1d199ec98f6689564f9d7fef06323849704a8856eeed5f4910160405180910390a15b5050505b6000546001600160a01b0384811691161480159061230857506000546001600160a01b03838116911614155b801561232d57506001600160a01b0383166000908152600e602052604090205460ff16155b80156123475750601b546001600160a01b03848116911614155b801561235c57506001600160a01b0382163014155b1561115157601c5481111561239c5760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b6044820152606401610b62565b6017546001600160a01b0380851691160361115157601754600554604080516001600160a01b03909316835260208301919091527fec798f0f5328ec01f1d48922c12f488ecde2dae7402c814510a37d505cbdbb2a910160405180910390a1611151612615565b6001600160a01b0382166000908152600d602052604081205460ff168061244257506001600160a01b0382166000908152600d602052604090205460ff165b1561244f57506000610b32565b601b546001600160a01b03848116911614806124785750601b546001600160a01b038381169116145b1561248557506000610b32565b50600192915050565b601b5460009081906001600160a01b038581169116146124b0576013546124b4565b6014545b905060006124c76064611a608685612551565b306000908152600860205260409020549091506124e49082611430565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906125359085815260200190565b60405180910390a361254784826118b5565b9695505050505050565b60008260000361256357506000610b32565b600061256f8385612af0565b90508261257c858361289f565b14610c595760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b62565b6000610c5983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612642565b601654601780546001600160a01b0319166001600160a01b03909216919091179055600060055542600655565b600081836126635760405162461bcd60e51b8152600401610b629190612670565b5060006114c0848661289f565b600060208083528351808285015260005b8181101561269d57858101830151858201604001528201612681565b818111156126af576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610d0857600080fd5b600080604083850312156126ed57600080fd5b82356126f8816126c5565b946020939093013593505050565b60008060006060848603121561271b57600080fd5b8335612726816126c5565b92506020840135612736816126c5565b929592945050506040919091013590565b60006020828403121561275957600080fd5b8135610c59816126c5565b8015158114610d0857600080fd5b6000806040838503121561278557600080fd5b8235612790816126c5565b915060208301356127a081612764565b809150509250929050565b6000602082840312156127bd57600080fd5b5035919050565b600080604083850312156127d757600080fd5b82356127e2816126c5565b915060208301356127a0816126c5565b60008060006060848603121561280757600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561283157600080fd5b82356126f881612764565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561289a5761289a612871565b500190565b6000826128bc57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600b908201526a496e76616c69642066656560a81b604082015260600190565b6000602082840312156128f857600080fd5b8151610c5981612764565b60008282101561291557612915612871565b500390565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561295857600080fd5b8151610c59816126c5565b600081518084526020808501945080840160005b8381101561299c5781516001600160a01b031687529582019590820190600101612977565b509495945050505050565b85815284602082015260a0604082015260006129c660a0830186612963565b6001600160a01b0394909416606083015250608001529392505050565b6000806000606084860312156129f857600080fd5b8351925060208401519150604084015190509250925092565b828152604060208201526000612a2a6040830184612963565b949350505050565b60006020808385031215612a4557600080fd5b825167ffffffffffffffff80821115612a5d57600080fd5b818501915085601f830112612a7157600080fd5b815181811115612a8357612a8361291a565b8060051b604051601f19603f83011681018181108582111715612aa857612aa861291a565b604052918252848201925083810185019188831115612ac657600080fd5b938501935b82851015612ae457845184529385019392850192612acb565b98975050505050505050565b6000816000190483118215151615612b0a57612b0a612871565b50029056fea26469706673582212200bb686f866cb239edee0ab118d6e1cda35d13bf3994bc385521cce2f6af2de6b64736f6c634300080e0033

Deployed Bytecode

0x60806040526004361061037a5760003560e01c80638da5cb5b116101d1578063a9059cbb11610102578063df20fd49116100a0578063f84ba65d1161006f578063f84ba65d14610a3d578063f887ea4014610a5d578063fe2b6bc614610a7d578063fe575a8714610a9257600080fd5b8063df20fd49146109c8578063ea1644d5146109e8578063eb45e70914610a08578063f2fde38b14610a1d57600080fd5b8063cec10c11116100dc578063cec10c111461092c578063dbe1c4d51461094c578063dd62ed3e14610962578063dec2ba0f146109a857600080fd5b8063a9059cbb146108cc578063a9e59da3146108ec578063ca33e64c1461090c57600080fd5b80639e0a78101161016f578063a4b45c0011610149578063a4b45c001461083f578063a4f87a7a1461085f578063a61779281461088c578063a8aa1b31146108ac57600080fd5b80639e0a7810146107d85780639f2bb2e9146107f95780639f55eb4e1461080f57600080fd5b806395d89b41116101ab57806395d89b411461075457806398118cb4146107825780639cfe42da146107985780639d0014b1146107b857600080fd5b80638da5cb5b146106da5780638eb6889f14610728578063944c1d971461073e57600080fd5b8063571ac8b0116102ab578063715018a6116102495780637de4c778116102235780637de4c7781461068d57806387b3be7d146106ba578063893d20e8146106da5780638b42507f146106f857600080fd5b8063715018a61461062a57806375f0a8741461063f5780637d1db4a51461067757600080fd5b80636b67c4df116102855780636b67c4df146105a85780636c0a24eb146105be57806370a08231146105d4578063712a890a1461060a57600080fd5b8063571ac8b014610548578063658d4b7f1461056857806366e930b31461058857600080fd5b8063313ce567116103185780633f4218e0116102f25780633f4218e0146104cc57806346cf314f146104fc5780634a74bb02146105125780634fef3a821461053357600080fd5b8063313ce5671461048657806333596f50146104a25780633e02a988146104b757600080fd5b8063125b94e511610354578063125b94e51461042557806318160ddd1461043c57806323b872dd146104515780632b112e491461047157600080fd5b80630445b6671461038657806306fdde03146103af578063095ea7b3146103f557600080fd5b3661038157005b600080fd5b34801561039257600080fd5b5061039c601e5481565b6040519081526020015b60405180910390f35b3480156103bb57600080fd5b5060408051808201909152601481527342696c6c696f6e6169726520426f797320444f4160601b60208201525b6040516103a69190612670565b34801561040157600080fd5b506104156104103660046126da565b610acb565b60405190151581526020016103a6565b34801561043157600080fd5b5061043a610b38565b005b34801561044857600080fd5b5060045461039c565b34801561045d57600080fd5b5061041561046c366004612706565b610b9b565b34801561047d57600080fd5b5061039c610c60565b34801561049257600080fd5b50604051601281526020016103a6565b3480156104ae57600080fd5b5061043a610cb2565b3480156104c357600080fd5b5061039c610d0b565b3480156104d857600080fd5b506104156104e7366004612747565b600d6020526000908152604090205460ff1681565b34801561050857600080fd5b5061039c60125481565b34801561051e57600080fd5b50601b5461041590600160a81b900460ff1681565b34801561053f57600080fd5b5061043a610d1d565b34801561055457600080fd5b50610415610563366004612747565b610d68565b34801561057457600080fd5b5061043a610583366004612772565b610d76565b34801561059457600080fd5b5061043a6105a3366004612747565b610dcb565b3480156105b457600080fd5b5061039c60115481565b3480156105ca57600080fd5b5061039c601d5481565b3480156105e057600080fd5b5061039c6105ef366004612747565b6001600160a01b031660009081526008602052604090205490565b34801561061657600080fd5b5061043a6106253660046127ab565b610e16565b34801561063657600080fd5b5061043a610e45565b34801561064b57600080fd5b5060165461065f906001600160a01b031681565b6040516001600160a01b0390911681526020016103a6565b34801561068357600080fd5b5061039c601c5481565b34801561069957600080fd5b5061039c6106a8366004612747565b600b6020526000908152604090205481565b3480156106c657600080fd5b5060175461065f906001600160a01b031681565b3480156106e657600080fd5b506000546001600160a01b031661065f565b34801561070457600080fd5b50610415610713366004612747565b600e6020526000908152604090205460ff1681565b34801561073457600080fd5b5061039c60055481565b34801561074a57600080fd5b5061039c60075481565b34801561076057600080fd5b50604080518082019091526005815264048a49286960db1b60208201526103e8565b34801561078e57600080fd5b5061039c60105481565b3480156107a457600080fd5b5061043a6107b3366004612747565b610e7b565b3480156107c457600080fd5b5061043a6107d33660046127ab565b610ee3565b3480156107e457600080fd5b5060185461041590600160a01b900460ff1681565b34801561080557600080fd5b5061039c60065481565b34801561081b57600080fd5b5061041561082a366004612747565b600c6020526000908152604090205460ff1681565b34801561084b57600080fd5b5061043a61085a3660046127c4565b610f12565b34801561086b57600080fd5b5061039c61087a366004612747565b600a6020526000908152604090205481565b34801561089857600080fd5b5060185461065f906001600160a01b031681565b3480156108b857600080fd5b50601b5461065f906001600160a01b031681565b3480156108d857600080fd5b506104156108e73660046126da565b610f6a565b3480156108f857600080fd5b5061043a6109073660046127ab565b610f77565b34801561091857600080fd5b5060155461065f906001600160a01b031681565b34801561093857600080fd5b5061043a6109473660046127f2565b611004565b34801561095857600080fd5b5061039c601f5481565b34801561096e57600080fd5b5061039c61097d3660046127c4565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156109b457600080fd5b5061043a6109c33660046126da565b6110b6565b3480156109d457600080fd5b5061043a6109e336600461281e565b611156565b3480156109f457600080fd5b5061043a610a033660046127ab565b6111a2565b348015610a1457600080fd5b5061043a61122f565b348015610a2957600080fd5b5061043a610a38366004612747565b611282565b348015610a4957600080fd5b5061043a610a58366004612772565b61131a565b348015610a6957600080fd5b50601a5461065f906001600160a01b031681565b348015610a8957600080fd5b5061043a61136f565b348015610a9e57600080fd5b50610415610aad366004612747565b6001600160a01b03166000908152600f602052604090205460ff1690565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b269086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610b6b5760405162461bcd60e51b8152600401610b629061283c565b60405180910390fd5b600660108190556005601181905560006012819055610b96929091610b909190611430565b90611430565b601355565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610c48576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610c2391849061148f565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610c538484846114c9565b50600190505b9392505050565b6002546001600160a01b0316600090815260086020526040812054610cad906001546001600160a01b0316600090815260086020526040902054610ca790600454906118b5565b906118b5565b905090565b6000546001600160a01b03163314610cdc5760405162461bcd60e51b8152600401610b629061283c565b60405133904780156108fc02916000818181858888f19350505050158015610d08573d6000803e3d6000fd5b50565b6000600754600654610cad9190612887565b6000546001600160a01b03163314610d475760405162461bcd60e51b8152600401610b629061283c565b60036010819055601181905560006012819055610b9691610b909080611430565b6000610b3282600019610acb565b6000546001600160a01b03163314610da05760405162461bcd60e51b8152600401610b629061283c565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610df55760405162461bcd60e51b8152600401610b629061283c565b6001600160a01b03166000908152600f60205260409020805460ff19169055565b6000546001600160a01b03163314610e405760405162461bcd60e51b8152600401610b629061283c565b600755565b6000546001600160a01b03163314610e6f5760405162461bcd60e51b8152600401610b629061283c565b610e7960006118f7565b565b6000546001600160a01b03163314610ea55760405162461bcd60e51b8152600401610b629061283c565b601954610eb490610a8c612887565b4210610ebf57600080fd5b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b6000546001600160a01b03163314610f0d5760405162461bcd60e51b8152600401610b629061283c565b601e55565b6000546001600160a01b03163314610f3c5760405162461bcd60e51b8152600401610b629061283c565b601580546001600160a01b039384166001600160a01b03199182161790915560168054929093169116179055565b6000610c593384846114c9565b6000546001600160a01b03163314610fa15760405162461bcd60e51b8152600401610b629061283c565b600a600454610fb0919061289f565b811015610fff5760405162461bcd60e51b815260206004820152601a60248201527f4d61782077616c6c65742073697a6520697320746f6f206c6f770000000000006044820152606401610b62565b601c55565b6000546001600160a01b0316331461102e5760405162461bcd60e51b8152600401610b629061283c565b600a83111561104f5760405162461bcd60e51b8152600401610b62906128c1565b600a8211156110705760405162461bcd60e51b8152600401610b62906128c1565b600a8111156110915760405162461bcd60e51b8152600401610b62906128c1565b6010839055601182905560128190556110ae81610b908585611430565b601355505050565b6000546001600160a01b031633146110e05760405162461bcd60e51b8152600401610b629061283c565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af115801561112d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115191906128e6565b505050565b6000546001600160a01b031633146111805760405162461bcd60e51b8152600401610b629061283c565b601b8054921515600160a81b0260ff60a81b1990931692909217909155601e55565b6000546001600160a01b031633146111cc5760405162461bcd60e51b8152600401610b629061283c565b60326004546111db919061289f565b81101561122a5760405162461bcd60e51b815260206004820152601a60248201527f4d61782077616c6c65742073697a6520697320746f6f206c6f770000000000006044820152606401610b62565b601d55565b6000546001600160a01b031633146112595760405162461bcd60e51b8152600401610b629061283c565b601b805460ff60a81b19169055600019601c819055601d55600060118190556012819055601055565b6000546001600160a01b031633146112ac5760405162461bcd60e51b8152600401610b629061283c565b6001600160a01b0381166113115760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b62565b610d08816118f7565b6000546001600160a01b031633146113445760405162461bcd60e51b8152600401610b629061283c565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113995760405162461bcd60e51b8152600401610b629061283c565b601854600160a01b900460ff16156113e65760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610b62565b6018805460ff60a01b1916600160a01b179055426019819055601654601780546001600160a01b0319166001600160a01b0390921691909117905560006005819055601255600655565b60008061143d8385612887565b905083811015610c595760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b62565b600081848411156114b35760405162461bcd60e51b8152600401610b629190612670565b5060006114c08486612903565b95945050505050565b6001600160a01b0383166000908152600f602052604081205460ff16151560011480159061151557506001600160a01b0383166000908152600f602052604090205460ff161515600114155b61154f5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610b62565b601b54600160a01b900460ff16156115735761156c848484611947565b9050610c59565b601b546001600160a01b031633148015906115985750601b54600160a01b900460ff16155b80156115ad5750601b54600160a81b900460ff165b80156115ca5750601e543060009081526008602052604090205410155b156115d7576115d7611a2d565b6115e2848484611e6e565b6115ec8484612403565b156116275760405162461bcd60e51b815260206004820152600b60248201526a111bdb89dd0818da19585d60aa1b6044820152606401610b62565b6001600160a01b0384166000908152600d602052604081205460ff1615801561166957506001600160a01b0384166000908152600d602052604090205460ff16155b611673578261167e565b61167e85858561248e565b601854909150600160a01b900460ff1615156001148015906116ae5750601b546001600160a01b03858116911614155b80156116c857506000546001600160a01b03868116911614155b80156116e257506000546001600160a01b03858116911614155b15611760576001600160a01b03841660009081526008602052604090205461170a9082611430565b6001600160a01b03808616600090815260086020526040808220939093559087168152205461173990846118b5565b6001600160a01b03861660009081526008602052604090205561175b84610ebf565b61186a565b6000546001600160a01b038681169116148061178957506000546001600160a01b038581169116145b156117fe576001600160a01b0384166000908152600860205260409020546117b19082611430565b6001600160a01b0380861660009081526008602052604080822093909355908716815220546117e090846118b5565b6001600160a01b03861660009081526008602052604090205561186a565b6001600160a01b0384166000908152600860205260409020546118219082611430565b6001600160a01b03808616600090815260086020526040808220939093559087168152205461185090846118b5565b6001600160a01b0386166000908152600860205260409020555b6040518181526001600160a01b0385169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3506001949350505050565b6000610c5983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061148f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461199891849061148f565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546119c79083611430565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a1b9086815260200190565b60405180910390a35060019392505050565b601b805460ff60a01b1916600160a01b179055601e54601354601054600091611a6691600291611a609182908790612551565b906125d3565b90506000611a7483836118b5565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611aae57611aae612930565b6001600160a01b03928316602091820292909201810191909152601a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2b9190612946565b81600181518110611b3e57611b3e612930565b6001600160a01b039283166020918202929092010152601a5460405163791ac94760e01b815291169063791ac94790611b849085906000908690309042906004016129a7565b600060405180830381600087803b158015611b9e57600080fd5b505af1158015611bb2573d6000803e3d6000fd5b505060105447925060009150611bd690611bcd9060026125d3565b601354906118b5565b90506000611bf382611a606011548661255190919063ffffffff16565b90506000611c1083611a606012548761255190919063ffffffff16565b90506000611c326002611a6086611a606010548a61255190919063ffffffff16565b6016546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611c89576040519150601f19603f3d011682016040523d82523d6000602084013e611c8e565b606091505b50506017546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611ce7576040519150601f19603f3d011682016040523d82523d6000602084013e611cec565b606091505b5050601780546001600160a01b039081166000908152600b602090815260408083208a9055845484168352600c8252808320805460ff19166001179055845484168352600a82529182902042905592548151921682529181018790529192507f887dd9f57395c2e1e0dea455ae76bf56410b19b3131f2a590aab0b29b3683632910160405180910390a15060009050808915611e5457601a5460155460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015611df2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e1791906129e3565b505060408051858152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601b805460ff60a01b19169055505050505050505050565b600754600654611e7e9042612903565b1115611e8c57611e8c612615565b6000546001600160a01b03848116911614801590611eb857506000546001600160a01b03838116911614155b8015611edd57506001600160a01b0382166000908152600e602052604090205460ff16155b8015611ef757506002546001600160a01b03838116911614155b8015611f1157506001546001600160a01b03838116911614155b8015611f2b5750601b546001600160a01b03838116911614155b8015611f4057506001600160a01b0382163014155b156122dc57601c54811115611f805760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b6044820152606401610b62565b6001600160a01b038216600090815260086020526040902054601d54611fa68383612887565b11156120005760405162461bcd60e51b815260206004820152602360248201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152621d5b9d60ea1b6064820152608401610b62565b6040805160028082526060820183526000926020830190803683375050601a54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa15801561206a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208e9190612946565b816000815181106120a1576120a1612930565b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106120d5576120d5612930565b6001600160a01b039283166020918202929092010152601a546040516307c0329d60e21b81526000929190911690631f00ca74906121199087908690600401612a11565b600060405180830381865afa158015612136573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215e9190810190612a32565b60008151811061217057612170612930565b6020908102919091018101516001600160a01b0387166000908152600c90925260409091205490915060ff16151560011480156121d157506001600160a01b0385166000908152600a602052604090205442906121cf90612a30612887565b105b80156121de575060055481115b1561224857601780546001600160a01b0319166001600160a01b03871690811790915560058290554260065560408051918252602082018390527f735208e3a5b6390fd1d199ec98f6689564f9d7fef06323849704a8856eeed5f4910160405180910390a16122d8565b6001600160a01b0385166000908152600c602052604090205460ff16158015612272575060055481115b156122d857601780546001600160a01b0319166001600160a01b03871690811790915560058290554260065560408051918252602082018390527f735208e3a5b6390fd1d199ec98f6689564f9d7fef06323849704a8856eeed5f4910160405180910390a15b5050505b6000546001600160a01b0384811691161480159061230857506000546001600160a01b03838116911614155b801561232d57506001600160a01b0383166000908152600e602052604090205460ff16155b80156123475750601b546001600160a01b03848116911614155b801561235c57506001600160a01b0382163014155b1561115157601c5481111561239c5760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b6044820152606401610b62565b6017546001600160a01b0380851691160361115157601754600554604080516001600160a01b03909316835260208301919091527fec798f0f5328ec01f1d48922c12f488ecde2dae7402c814510a37d505cbdbb2a910160405180910390a1611151612615565b6001600160a01b0382166000908152600d602052604081205460ff168061244257506001600160a01b0382166000908152600d602052604090205460ff165b1561244f57506000610b32565b601b546001600160a01b03848116911614806124785750601b546001600160a01b038381169116145b1561248557506000610b32565b50600192915050565b601b5460009081906001600160a01b038581169116146124b0576013546124b4565b6014545b905060006124c76064611a608685612551565b306000908152600860205260409020549091506124e49082611430565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906125359085815260200190565b60405180910390a361254784826118b5565b9695505050505050565b60008260000361256357506000610b32565b600061256f8385612af0565b90508261257c858361289f565b14610c595760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b62565b6000610c5983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612642565b601654601780546001600160a01b0319166001600160a01b03909216919091179055600060055542600655565b600081836126635760405162461bcd60e51b8152600401610b629190612670565b5060006114c0848661289f565b600060208083528351808285015260005b8181101561269d57858101830151858201604001528201612681565b818111156126af576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610d0857600080fd5b600080604083850312156126ed57600080fd5b82356126f8816126c5565b946020939093013593505050565b60008060006060848603121561271b57600080fd5b8335612726816126c5565b92506020840135612736816126c5565b929592945050506040919091013590565b60006020828403121561275957600080fd5b8135610c59816126c5565b8015158114610d0857600080fd5b6000806040838503121561278557600080fd5b8235612790816126c5565b915060208301356127a081612764565b809150509250929050565b6000602082840312156127bd57600080fd5b5035919050565b600080604083850312156127d757600080fd5b82356127e2816126c5565b915060208301356127a0816126c5565b60008060006060848603121561280757600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561283157600080fd5b82356126f881612764565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561289a5761289a612871565b500190565b6000826128bc57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600b908201526a496e76616c69642066656560a81b604082015260600190565b6000602082840312156128f857600080fd5b8151610c5981612764565b60008282101561291557612915612871565b500390565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561295857600080fd5b8151610c59816126c5565b600081518084526020808501945080840160005b8381101561299c5781516001600160a01b031687529582019590820190600101612977565b509495945050505050565b85815284602082015260a0604082015260006129c660a0830186612963565b6001600160a01b0394909416606083015250608001529392505050565b6000806000606084860312156129f857600080fd5b8351925060208401519150604084015190509250925092565b828152604060208201526000612a2a6040830184612963565b949350505050565b60006020808385031215612a4557600080fd5b825167ffffffffffffffff80821115612a5d57600080fd5b818501915085601f830112612a7157600080fd5b815181811115612a8357612a8361291a565b8060051b604051601f19603f83011681018181108582111715612aa857612aa861291a565b604052918252848201925083810185019188831115612ac657600080fd5b938501935b82851015612ae457845184529385019392850192612acb565b98975050505050505050565b6000816000190483118215151615612b0a57612b0a612871565b50029056fea26469706673582212200bb686f866cb239edee0ab118d6e1cda35d13bf3994bc385521cce2f6af2de6b64736f6c634300080e0033

Deployed Bytecode Sourcemap

6865:16265:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8668:49;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8668:49:0;;;;;;;;9975:94;;;;;;;;;;-1:-1:-1;10056:5:0;;;;;;;;;;;;-1:-1:-1;;;10056:5:0;;;;9975:94;;;;;;;:::i;11877:248::-;;;;;;;;;;-1:-1:-1;11877:248:0;;;;;:::i;:::-;;:::i;:::-;;;1419:14:1;;1412:22;1394:41;;1382:2;1367:18;11877:248:0;1254:187:1;13517:200:0;;;;;;;;;;;;;:::i;:::-;;10387:102;;;;;;;;;;-1:-1:-1;10469:12:0;;10387:102;;17407:423;;;;;;;;;;-1:-1:-1;17407:423:0;;;;;:::i;:::-;;:::i;10497:142::-;;;;;;;;;;;;;:::i;10183:94::-;;;;;;;;;;-1:-1:-1;10183:94:0;;7077:2;2049:36:1;;2037:2;2022:18;10183:94:0;1907:184:1;22839:115:0;;;;;;;;;;;;;:::i;13193:108::-;;;;;;;;;;;;;:::i;7814:43::-;;;;;;;;;;-1:-1:-1;7814:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8103:26;;;;;;;;;;;;;;;;8514:40;;;;;;;;;;-1:-1:-1;8514:40:0;;;;-1:-1:-1;;;8514:40:0;;;;;;13309:200;;;;;;;;;;;;;:::i;12133:108::-;;;;;;;;;;-1:-1:-1;12133:108:0;;;;;:::i;:::-;;:::i;12249:119::-;;;;;;;;;;-1:-1:-1;12249:119:0;;;;;:::i;:::-;;:::i;14583:106::-;;;;;;;;;;-1:-1:-1;14583:106:0;;;;;:::i;:::-;;:::i;8065:31::-;;;;;;;;;;;;;;;;8610:51;;;;;;;;;;;;;;;;10647:119;;;;;;;;;;-1:-1:-1;10647:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;10740:18:0;10713:7;10740:18;;;:9;:18;;;;;;;10647:119;12895:146;;;;;;;;;;-1:-1:-1;12895:146:0;;;;;:::i;:::-;;:::i;6118:94::-;;;;;;;;;;;;;:::i;8260:30::-;;;;;;;;;;-1:-1:-1;8260:30:0;;;;-1:-1:-1;;;;;8260:30:0;;;;;;-1:-1:-1;;;;;3207:32:1;;;3189:51;;3177:2;3162:18;8260:30:0;3043:203:1;8561:42:0;;;;;;;;;;;;;;;;7708;;;;;;;;;;-1:-1:-1;7708:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;8297:19;;;;;;;;;;-1:-1:-1;8297:19:0;;;;-1:-1:-1;;;;;8297:19:0;;;10285:94;;;;;;;;;;-1:-1:-1;10337:7:0;5540:6;-1:-1:-1;;;;;5540:6:0;10285:94;10497:142;7864:47;;;;;;;;;;-1:-1:-1;7864:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7420:29;;;;;;;;;;;;;;;;7496:39;;;;;;;;;;;;;;;;10077:98;;;;;;;;;;-1:-1:-1;10160:7:0;;;;;;;;;;;;-1:-1:-1;;;10160:7:0;;;;10077:98;;8027:31;;;;;;;;;;;;;;;;14410:165;;;;;;;;;;-1:-1:-1;14410:165:0;;;;;:::i;:::-;;:::i;12534:108::-;;;;;;;;;;-1:-1:-1;12534:108:0;;;;;:::i;:::-;;:::i;8361:31::-;;;;;;;;;;-1:-1:-1;8361:31:0;;;;-1:-1:-1;;;8361:31:0;;;;;;7456:33;;;;;;;;;;;;;;;;7757:50;;;;;;;;;;-1:-1:-1;7757:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12650:237;;;;;;;;;;-1:-1:-1;12650:237:0;;;;;:::i;:::-;;:::i;7652:49::-;;;;;;;;;;-1:-1:-1;7652:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;8323:29;;;;;;;;;;-1:-1:-1;8323:29:0;;;;-1:-1:-1;;;;;8323:29:0;;;8458:19;;;;;;;;;;-1:-1:-1;8458:19:0;;;;-1:-1:-1;;;;;8458:19:0;;;17211:188;;;;;;;;;;-1:-1:-1;17211:188:0;;;;;:::i;:::-;;:::i;14220:182::-;;;;;;;;;;-1:-1:-1;14220:182:0;;;;;:::i;:::-;;:::i;8217:36::-;;;;;;;;;;-1:-1:-1;8217:36:0;;;;-1:-1:-1;;;;;8217:36:0;;;11000:673;;;;;;;;;;-1:-1:-1;11000:673:0;;;;;:::i;:::-;;:::i;8724:29::-;;;;;;;;;;;;;;;;11681:188;;;;;;;;;;-1:-1:-1;11681:188:0;;;;;:::i;:::-;-1:-1:-1;;;;;11833:19:0;;;11801:7;11833:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;11681:188;22962:165;;;;;;;;;;-1:-1:-1;22962:165:0;;;;;:::i;:::-;;:::i;16985:218::-;;;;;;;;;;-1:-1:-1;16985:218:0;;;;;:::i;:::-;;:::i;14030:182::-;;;;;;;;;;-1:-1:-1;14030:182:0;;;;;:::i;:::-;;:::i;10774:218::-;;;;;;;;;;;;;:::i;6367:192::-;;;;;;;;;;-1:-1:-1;6367:192:0;;;;;:::i;:::-;;:::i;12376:150::-;;;;;;;;;;-1:-1:-1;12376:150:0;;;;;:::i;:::-;;:::i;8427:24::-;;;;;;;;;;-1:-1:-1;8427:24:0;;;;-1:-1:-1;;;;;8427:24:0;;;13725:297;;;;;;;;;;;;;:::i;14697:120::-;;;;;;;;;;-1:-1:-1;14697:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;14784:25:0;14760:4;14784:25;;;:16;:25;;;;;;;;;14697:120;11877:248;12013:10;11979:4;12001:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;12001:32:0;;;;;;;;;;:41;;;12058:37;11979:4;;12001:32;;12058:37;;;;12036:6;160:25:1;;148:2;133:18;;14:177;12058:37:0;;;;;;;;-1:-1:-1;12113:4:0;11877:248;;;;;:::o;13517:200::-;5513:7;5540:6;-1:-1:-1;;;;;5540:6:0;4423:10;5687:23;5679:68;;;;-1:-1:-1;;;5679:68:0;;;;;;;:::i;:::-;;;;;;;;;13594:1:::1;13579:12;:16:::0;;;13621:1:::1;13606:12;:16:::0;;;-1:-1:-1;13633:7:0::1;:11:::0;;;13666:43:::1;::::0;-1:-1:-1;;13666:30:0::1;::::0;13594:1;13666:16:::1;:30::i;:::-;:34:::0;::::1;:43::i;:::-;13655:8;:54:::0;13517:200::o;17407:423::-;-1:-1:-1;;;;;17562:19:0;;17541:4;17562:19;;;:11;:19;;;;;;;;17582:10;17562:31;;;;;;;;-1:-1:-1;;17562:38:0;17558:192;;17651:87;;;;;;;;;;;-1:-1:-1;;;17651:87:0;;;;;;;;-1:-1:-1;;;;;17651:19:0;;-1:-1:-1;17651:19:0;;;:11;:19;;;;;17671:10;17651:31;;;;;;;;;;:87;;17705:6;;17651:53;:87::i;:::-;-1:-1:-1;;;;;17617:19:0;;;;;;:11;:19;;;;;;;;17637:10;17617:31;;;;;;;:121;17558:192;17760:40;17774:6;17782:9;17793:6;17760:13;:40::i;:::-;;17818:4;17811:11;;17407:423;;;;;;:::o;10497:142::-;10625:4;;-1:-1:-1;;;;;10625:4:0;10550:7;10740:18;;;:9;:18;;;;;;10577:54;;10604:4;;-1:-1:-1;;;;;10604:4:0;10713:7;10740:18;;;:9;:18;;;;;;10577:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;10570:61;;10497:142;:::o;22839:115::-;5513:7;5540:6;-1:-1:-1;;;;;5540:6:0;4423:10;5687:23;5679:68;;;;-1:-1:-1;;;5679:68:0;;;;;;;:::i;:::-;22895:51:::1;::::0;22903:10:::1;::::0;22924:21:::1;22895:51:::0;::::1;;;::::0;::::1;::::0;;;22924:21;22903:10;22895:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22839:115::o:0;13193:108::-;13238:7;13282:11;;13265:14;;:28;;;;:::i;13309:200::-;5513:7;5540:6;-1:-1:-1;;;;;5540:6:0;4423:10;5687:23;5679:68;;;;-1:-1:-1;;;5679:68:0;;;;;;;:::i;:::-;13386:1:::1;13371:12;:16:::0;;;13398:12:::1;:16:::0;;;-1:-1:-1;13425:7:0::1;:11:::0;;;13458:43:::1;::::0;:30:::1;::::0;13386:1;13458:16:::1;:30::i;12133:108::-:0;12188:4;12212:21;12220:7;-1:-1:-1;;12212:7:0;:21::i;12249:119::-;5513:7;5540:6;-1:-1:-1;;;;;5540:6:0;4423:10;5687:23;5679:68;;;;-1:-1:-1;;;5679:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12332:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;12332:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12249:119::o;14583:106::-;5513:7;5540:6;-1:-1:-1;;;;;5540:6:0;4423:10;5687:23;5679:68;;;;-1:-1:-1;;;5679:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14653:22:0::1;14676:5;14653:22:::0;;;:16:::1;:22;::::0;;;;:28;;-1:-1:-1;;14653:28:0::1;::::0;;14583:106::o;12895:146::-;5513:7;5540:6;-1:-1:-1;;;;;5540:6:0;4423:10;5687:23;5679:68;;;;-1:-1:-1;;;5679:68:0;;;;;;;:::i;:::-;13005:11:::1;:28:::0;12895:146::o;6118:94::-;5513:7;5540:6;-1:-1:-1;;;;;5540:6:0;4423:10;5687:23;5679:68;;;;-1:-1:-1;;;5679:68:0;;;;;;;:::i;:::-;6183:21:::1;6201:1;6183:9;:21::i;:::-;6118:94::o:0;14410:165::-;5513:7;5540:6;-1:-1:-1;;;;;5540:6:0;4423:10;5687:23;5679:68;;;;-1:-1:-1;;;5679:68:0;;;;;;;:::i;:::-;14502:11:::1;::::0;:24:::1;::::0;14516:10:::1;14502:24;:::i;:::-;14484:15;:42;14476:51;;;::::0;::::1;;-1:-1:-1::0;;;;;14538:22:0::1;;::::0;;;:16:::1;:22;::::0;;;;:27;;-1:-1:-1;;14538:27:0::1;14561:4;14538:27;::::0;;14410:165::o;12534:108::-;5513:7;5540:6;-1:-1:-1;;;;;5540:6:0;4423:10;5687:23;5679:68;;;;-1:-1:-1;;;5679:68:0;;;;;;;:::i;:::-;12609:13:::1;:25:::0;12534:108::o;12650:237::-;5513:7;5540:6;-1:-1:-1;;;;;5540:6:0;4423:10;5687:23;5679:68;;;;-1:-1:-1;;;5679:68:0;;;;;;;:::i;:::-;12788:21:::1;:44:::0;;-1:-1:-1;;;;;12788:44:0;;::::1;-1:-1:-1::0;;;;;;12788:44:0;;::::1;;::::0;;;12843:15:::1;:36:::0;;;;;::::1;::::0;::::1;;::::0;;12650:237::o;17211:188::-;17318:4;17347:44;17361:10;17373:9;17384:6;17347:13;:44::i;14220:182::-;5513:7;5540:6;-1:-1:-1;;;;;5540:6:0;4423:10;5687:23;5679:68;;;;-1:-1:-1;;;5679:68:0;;;;;;;:::i;:::-;14327:2:::1;14313:12;;:16;;;;:::i;:::-;14305:6;:24;;14297:63;;;::::0;-1:-1:-1;;;14297:63:0;;5555:2:1;14297:63:0::1;::::0;::::1;5537:21:1::0;5594:2;5574:18;;;5567:30;5633:28;5613:18;;;5606:56;5679:18;;14297:63:0::1;5353:350:1::0;14297:63:0::1;14371:12;:21:::0;14220:182::o;11000:673::-;5513:7;5540:6;-1:-1:-1;;;;;5540:6:0;4423:10;5687:23;5679:68;;;;-1:-1:-1;;;5679:68:0;;;;;;;:::i;:::-;11216:2:::1;11197:15;:21;;11151:106;;;;-1:-1:-1::0;;;11151:106:0::1;;;;;;;:::i;:::-;11335:2;11316:15;:21;;11270:106;;;;-1:-1:-1::0;;;11270:106:0::1;;;;;;;:::i;:::-;11444:2;11430:10;:16;;11389:96;;;;-1:-1:-1::0;;;11389:96:0::1;;;;;;;:::i;:::-;11498:12;:30:::0;;;11539:12:::1;:30:::0;;;11580:7:::1;:20:::0;;;11622:43:::1;11590:10:::0;11622:30:::1;11513:15:::0;11554;11622:16:::1;:30::i;:43::-;11611:8;:54:::0;-1:-1:-1;;;11000:673:0:o;22962:165::-;5513:7;5540:6;-1:-1:-1;;;;;5540:6:0;4423:10;5687:23;5679:68;;;;-1:-1:-1;;;5679:68:0;;;;;;;:::i;:::-;23075:44:::1;::::0;-1:-1:-1;;;23075:44:0;;23099:10:::1;23075:44;::::0;::::1;6222:51:1::0;6289:18;;;6282:34;;;-1:-1:-1;;;;;23075:23:0;::::1;::::0;::::1;::::0;6195:18:1;;23075:44:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22962:165:::0;;:::o;16985:218::-;5513:7;5540:6;-1:-1:-1;;;;;5540:6:0;4423:10;5687:23;5679:68;;;;-1:-1:-1;;;5679:68:0;;;;;;;:::i;:::-;17114:21:::1;:38:::0;;;::::1;;-1:-1:-1::0;;;17114:38:0::1;-1:-1:-1::0;;;;17114:38:0;;::::1;::::0;;;::::1;::::0;;;17163:13:::1;:32:::0;16985:218::o;14030:182::-;5513:7;5540:6;-1:-1:-1;;;;;5540:6:0;4423:10;5687:23;5679:68;;;;-1:-1:-1;;;5679:68:0;;;;;;;:::i;:::-;14133:2:::1;14118:12;;:17;;;;:::i;:::-;14110:6;:25;;14102:64;;;::::0;-1:-1:-1;;;14102:64:0;;5555:2:1;14102:64:0::1;::::0;::::1;5537:21:1::0;5594:2;5574:18;;;5567:30;5633:28;5613:18;;;5606:56;5679:18;;14102:64:0::1;5353:350:1::0;14102:64:0::1;14177:16;:25:::0;14030:182::o;10774:218::-;5513:7;5540:6;-1:-1:-1;;;;;5540:6:0;4423:10;5687:23;5679:68;;;;-1:-1:-1;;;5679:68:0;;;;;;;:::i;:::-;10829:21:::1;:27:::0;;-1:-1:-1;;;;10829:27:0::1;::::0;;-1:-1:-1;;10867:12:0::1;:16:::0;;;10894::::1;:20:::0;10851:5:::1;10925:12;:14:::0;;;10950:7:::1;:9:::0;;;10970:12:::1;:14:::0;10774:218::o;6367:192::-;5513:7;5540:6;-1:-1:-1;;;;;5540:6:0;4423:10;5687:23;5679:68;;;;-1:-1:-1;;;5679:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6456:22:0;::::1;6448:73;;;::::0;-1:-1:-1;;;6448:73:0;;6779:2:1;6448:73:0::1;::::0;::::1;6761:21:1::0;6818:2;6798:18;;;6791:30;6857:34;6837:18;;;6830:62;-1:-1:-1;;;6908:18:1;;;6901:36;6954:19;;6448:73:0::1;6577:402:1::0;6448:73:0::1;6532:19;6542:8;6532:9;:19::i;12376:150::-:0;5513:7;5540:6;-1:-1:-1;;;;;5540:6:0;4423:10;5687:23;5679:68;;;;-1:-1:-1;;;5679:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12486:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;12486:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12376:150::o;13725:297::-;5513:7;5540:6;-1:-1:-1;;;;;5540:6:0;4423:10;5687:23;5679:68;;;;-1:-1:-1;;;5679:68:0;;;;;;;:::i;:::-;13781:11:::1;::::0;-1:-1:-1;;;13781:11:0;::::1;;;:20;13772:50;;;::::0;-1:-1:-1;;;13772:50:0;;7186:2:1;13772:50:0::1;::::0;::::1;7168:21:1::0;7225:2;7205:18;;;7198:30;-1:-1:-1;;;7244:18:1;;;7237:46;7300:18;;13772:50:0::1;6984:340:1::0;13772:50:0::1;13833:11;:18:::0;;-1:-1:-1;;;;13833:18:0::1;-1:-1:-1::0;;;13833:18:0::1;::::0;;13876:15:::1;13862:11;:29:::0;;;13909:15:::1;::::0;13902:4:::1;:22:::0;;-1:-1:-1;;;;;;13902:22:0::1;-1:-1:-1::0;;;;;13909:15:0;;::::1;13902:22:::0;;;::::1;::::0;;13833:18;13935:10:::1;:14:::0;;;-1:-1:-1;13960:11:0;-1:-1:-1;13982:32:0;13725:297::o;219:179::-;277:7;;309:5;313:1;309;:5;:::i;:::-;297:17;;338:1;333;:6;;325:46;;;;-1:-1:-1;;;325:46:0;;7531:2:1;325:46:0;;;7513:21:1;7570:2;7550:18;;;7543:30;7609:29;7589:18;;;7582:57;7656:18;;325:46:0;7329:351:1;550:224:0;670:7;706:12;698:6;;;;690:29;;;;-1:-1:-1;;;690:29:0;;;;;;;;:::i;:::-;-1:-1:-1;730:9:0;742:5;746:1;742;:5;:::i;:::-;730:17;550:224;-1:-1:-1;;;;;550:224:0:o;17838:1687::-;-1:-1:-1;;;;;17989:24:0;;17964:4;17989:24;;;:16;:24;;;;;;;;:30;;:24;:30;;;;:67;;-1:-1:-1;;;;;;18023:27:0;;;;;;:16;:27;;;;;;;;:33;;:27;:33;;17989:67;17981:91;;;;-1:-1:-1;;;17981:91:0;;8017:2:1;17981:91:0;;;7999:21:1;8056:2;8036:18;;;8029:30;-1:-1:-1;;;8075:18:1;;;8068:41;8126:18;;17981:91:0;7815:335:1;17981:91:0;18087:16;;-1:-1:-1;;;18087:16:0;;;;18083:97;;;18127:41;18142:6;18150:9;18161:6;18127:14;:41::i;:::-;18120:48;;;;18083:97;18222:4;;-1:-1:-1;;;;;18222:4:0;18208:10;:18;;;;:52;;-1:-1:-1;18244:16:0;;-1:-1:-1;;;18244:16:0;;;;18243:17;18208:52;:90;;;;-1:-1:-1;18277:21:0;;-1:-1:-1;;;18277:21:0;;;;18208:90;:148;;;;-1:-1:-1;18343:13:0;;18333:4;18315:24;;;;:9;:24;;;;;;:41;;18208:148;18190:215;;;18383:10;:8;:10::i;:::-;18415:40;18429:6;18437:9;18448:6;18415:13;:40::i;:::-;18475:35;18492:6;18500:9;18475:16;:35::i;:::-;18474:36;18466:60;;;;-1:-1:-1;;;18466:60:0;;8357:2:1;18466:60:0;;;8339:21:1;8396:2;8376:18;;;8369:30;-1:-1:-1;;;8415:18:1;;;8408:41;8466:18;;18466:60:0;8155:335:1;18466:60:0;-1:-1:-1;;;;;18565:19:0;;18539:22;18565:19;;;:11;:19;;;;;;;;18564:20;:47;;;;-1:-1:-1;;;;;;18589:22:0;;;;;;:11;:22;;;;;;;;18588:23;18564:47;:119;;18677:6;18564:119;;;18627:34;18635:6;18643:9;18654:6;18627:7;:34::i;:::-;18700:11;;18539:144;;-1:-1:-1;;;;18700:11:0;;;;:18;;18714:4;18700:18;;;;:38;;-1:-1:-1;18734:4:0;;-1:-1:-1;;;;;18722:16:0;;;18734:4;;18722:16;;18700:38;:57;;;;-1:-1:-1;5513:7:0;5540:6;-1:-1:-1;;;;;18742:15:0;;;5540:6;;18742:15;;18700:57;:79;;;;-1:-1:-1;5513:7:0;5540:6;-1:-1:-1;;;;;18761:18:0;;;5540:6;;18761:18;;18700:79;18696:737;;;-1:-1:-1;;;;;18829:20:0;;;;;;:9;:20;;;;;;:40;;18854:14;18829:24;:40::i;:::-;-1:-1:-1;;;;;18806:20:0;;;;;;;:9;:20;;;;;;:63;;;;18904:17;;;;;;;:29;;18926:6;18904:21;:29::i;:::-;-1:-1:-1;;;;;18884:17:0;;;;;;:9;:17;;;;;:49;18971:24;18985:9;18971:13;:24::i;:::-;18696:737;;;5513:7;5540:6;-1:-1:-1;;;;;19026:15:0;;;5540:6;;19026:15;;:37;;-1:-1:-1;5513:7:0;5540:6;-1:-1:-1;;;;;19045:18:0;;;5540:6;;19045:18;19026:37;19022:411;;;-1:-1:-1;;;;;19113:20:0;;;;;;:9;:20;;;;;;:40;;19138:14;19113:24;:40::i;:::-;-1:-1:-1;;;;;19090:20:0;;;;;;;:9;:20;;;;;;:63;;;;19188:17;;;;;;;:29;;19210:6;19188:21;:29::i;:::-;-1:-1:-1;;;;;19168:17:0;;;;;;:9;:17;;;;;:49;19022:411;;;-1:-1:-1;;;;;19316:20:0;;;;;;:9;:20;;;;;;:40;;19341:14;19316:24;:40::i;:::-;-1:-1:-1;;;;;19293:20:0;;;;;;;:9;:20;;;;;;:63;;;;19392:17;;;;;;;:29;;19414:6;19392:21;:29::i;:::-;-1:-1:-1;;;;;19372:17:0;;;;;;:9;:17;;;;;:49;19022:411;19448:47;;160:25:1;;;-1:-1:-1;;;;;19448:47:0;;;19457:10;;19448:47;;148:2:1;133:18;19448:47:0;;;;;;;-1:-1:-1;19513:4:0;;17838:1687;-1:-1:-1;;;;17838:1687:0:o;406:136::-;464:7;491:43;495:1;498;491:43;;;;;;;;;;;;;;;;;:3;:43::i;6567:173::-;6623:16;6642:6;;-1:-1:-1;;;;;6659:17:0;;;-1:-1:-1;;;;;;6659:17:0;;;;;;6692:40;;6642:6;;;;;;;6692:40;;6623:16;6692:40;6612:128;6567:173;:::o;19533:401::-;19697:90;;;;;;;;;;;-1:-1:-1;;;19697:90:0;;;;;;;;-1:-1:-1;;;;;19697:17:0;;19660:4;19697:17;;;:9;:17;;;;;;;:90;;19733:6;;19697:21;:90::i;:::-;-1:-1:-1;;;;;19677:17:0;;;;;;;:9;:17;;;;;;:110;;;;19821:20;;;;;;;:32;;19846:6;19821:24;:32::i;:::-;-1:-1:-1;;;;;19798:20:0;;;;;;;:9;:20;;;;;;;:55;;;;19869:35;;;;;;;;;;19897:6;160:25:1;;148:2;133:18;;14:177;19869:35:0;;;;;;;;-1:-1:-1;19922:4:0;19533:401;;;;;:::o;20785:2046::-;8796:16;:23;;-1:-1:-1;;;;8796:23:0;-1:-1:-1;;;8796:23:0;;;20926:13:::1;::::0;21042:8:::1;::::0;21010:12:::1;::::0;8796:23;;20976:96:::1;::::0;21070:1:::1;::::0;20976:75:::1;::::0;;;20926:13;;20976:33:::1;:47::i;:::-;:65:::0;::::1;:75::i;:96::-;20950:122:::0;-1:-1:-1;21083:20:0::1;21106:36;:15:::0;20950:122;21106:19:::1;:36::i;:::-;21179:16;::::0;;21193:1:::1;21179:16:::0;;;;;::::1;::::0;;21083:59;;-1:-1:-1;21155:21:0::1;::::0;21179:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;21179:16:0::1;21155:40;;21224:4;21206;21211:1;21206:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21206:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;21250:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;21250:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;21206:7;;21250:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21240:4;21245:1;21240:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21240:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;21276:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;21276:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;21348:12;;21276:6:::1;::::0;21391:4;;21418::::1;::::0;21438:15:::1;::::0;21276:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;21564:12:0::1;::::0;21497:21:::1;::::0;-1:-1:-1;21477:17:0::1;::::0;-1:-1:-1;21551:33:0::1;::::0;21564:19:::1;::::0;21581:1:::1;21564:16;:19::i;:::-;21551:8;::::0;;:12:::1;:33::i;:::-;21529:55;;21595:26;21624:68;21670:11;21624:27;21638:12;;21624:9;:13;;:27;;;;:::i;:68::-;21595:97;;21703:21;21727:39;21754:11;21727:22;21741:7;;21727:9;:13;;:22;;;;:::i;:39::-;21703:63;;21777:26;21806:93;21897:1;21806:72;21866:11;21806:41;21834:12;;21806:9;:27;;:41;;;;:::i;:93::-;21942:15;::::0;21934:109:::1;::::0;21777:122;;-1:-1:-1;21913:15:0::1;::::0;-1:-1:-1;;;;;21942:15:0;;::::1;::::0;22023:5:::1;::::0;21985:18;;21913:15;21934:109;21913:15;21934:109;21985:18;21942:15;22023:5;21934:109:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;22085:4:0::1;::::0;22077:93:::1;::::0;21912:131;;-1:-1:-1;22055:16:0::1;::::0;-1:-1:-1;;;;;22085:4:0;;::::1;::::0;22150:5:::1;::::0;22117:13;;22055:16;22077:93;22055:16;22077:93;22117:13;22085:4;22150:5;22077:93:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;22191:4:0::1;::::0;;-1:-1:-1;;;;;22191:4:0;;::::1;22183:13;::::0;;;:7:::1;:13;::::0;;;;;;;:27;;;22240:4;;;::::1;22221:24:::0;;:18:::1;:24:::0;;;;;:29;;-1:-1:-1;;22221:29:0::1;22191:4:::0;22221:29:::1;::::0;;22276:4;;;::::1;22261:20:::0;;:14:::1;:20:::0;;;;;;22284:15:::1;22261:38:::0;;22326:4;;22315:31;;22326:4;::::1;6222:51:1::0;;6289:18;;;6282:34;;;22054:116:0;;-1:-1:-1;22315:31:0::1;::::0;6195:18:1;22315:31:0::1;;;;;;;-1:-1:-1::0;22412:5:0::1;::::0;-1:-1:-1;22412:5:0;22464:19;;22460:364:::1;;22500:6;::::0;22674:21:::1;::::0;22500:244:::1;::::0;-1:-1:-1;;;22500:244:0;;22576:4:::1;22500:244;::::0;::::1;10619:34:1::0;10669:18;;;10662:34;;;22500:6:0::1;10712:18:1::0;;;10705:34;;;10755:18;;;10748:34;-1:-1:-1;;;;;22674:21:0;;::::1;10798:19:1::0;;;10791:44;22714:15:0::1;10851:19:1::0;;;10844:35;22500:6:0;::::1;::::0;:22:::1;::::0;22530:18;;10553:19:1;;22500:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;22764:48:0::1;::::0;;11375:25:1;;;11431:2;11416:18;;11409:34;;;22764:48:0::1;::::0;-1:-1:-1;11348:18:1;22764:48:0::1;;;;;;;22460:364;-1:-1:-1::0;;8842:16:0;:24;;-1:-1:-1;;;;8842:24:0;;;-1:-1:-1;;;;;;;;;20785:2046:0:o;14926:2051::-;15093:11;;15076:14;;15058:32;;:15;:32;:::i;:::-;:46;15054:87;;;15121:8;:6;:8::i;:::-;5513:7;5540:6;-1:-1:-1;;;;;15169:17:0;;;5540:6;;15169:17;;;;:54;;-1:-1:-1;5513:7:0;5540:6;-1:-1:-1;;;;;15203:20:0;;;5540:6;;15203:20;;15169:54;:98;;;;-1:-1:-1;;;;;;15241:26:0;;;;;;:15;:26;;;;;;;;15240:27;15169:98;:132;;;;-1:-1:-1;15297:4:0;;-1:-1:-1;;;;;15284:17:0;;;15297:4;;15284:17;;15169:132;:166;;;;-1:-1:-1;15331:4:0;;-1:-1:-1;;;;;15318:17:0;;;15331:4;;15318:17;;15169:166;:200;;;;-1:-1:-1;15365:4:0;;-1:-1:-1;;;;;15352:17:0;;;15365:4;;15352:17;;15169:200;:243;;;;-1:-1:-1;;;;;;15386:26:0;;15407:4;15386:26;;15169:243;15151:1412;;;15457:12;;15447:6;:22;;15439:41;;;;-1:-1:-1;;;15439:41:0;;11656:2:1;15439:41:0;;;11638:21:1;11695:1;11675:18;;;11668:29;-1:-1:-1;;;11713:18:1;;;11706:36;11759:18;;15439:41:0;11454:329:1;15439:41:0;-1:-1:-1;;;;;10740:18:0;;15495:32;10740:18;;;:9;:18;;;;;;15628:16;;15591:33;15618:6;10740:18;15591:33;:::i;:::-;:53;;15565:150;;;;-1:-1:-1;;;15565:150:0;;11990:2:1;15565:150:0;;;11972:21:1;12029:2;12009:18;;;12002:30;12068:34;12048:18;;;12041:62;-1:-1:-1;;;12119:18:1;;;12112:33;12162:19;;15565:150:0;11788:399:1;15565:150:0;15756:16;;;15770:1;15756:16;;;;;;;;15732:21;;15756:16;;;;;;;;-1:-1:-1;;15797:6:0;;:13;;;-1:-1:-1;;;15797:13:0;;;;15732:40;;-1:-1:-1;;;;;;15797:6:0;;;;:11;;-1:-1:-1;15797:13:0;;;;;;;;;;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15787:4;15792:1;15787:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;15787:23:0;;;-1:-1:-1;;;;;15787:23:0;;;;;15843:4;15825;15830:1;15825:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15825:23:0;;;:7;;;;;;;;;:23;15881:6;;:33;;-1:-1:-1;;;15881:33:0;;15863:15;;15881:6;;;;;:19;;:33;;15901:6;;15909:4;;15881:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15881:33:0;;;;;;;;;;;;:::i;:::-;15915:1;15881:36;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;15938:29:0;;;;;;:18;:29;;;;;;;;15881:36;;-1:-1:-1;15938:29:0;;:35;;:29;:35;:92;;;;-1:-1:-1;;;;;;15977:25:0;;;;;;:14;:25;;;;;;16015:15;;15977:35;;16005:7;15977:35;:::i;:::-;:53;15938:92;:116;;;;;16044:10;;16034:7;:20;15938:116;15934:618;;;16089:4;:16;;-1:-1:-1;;;;;;16089:16:0;-1:-1:-1;;;;;16089:16:0;;;;;;;;16124:10;:20;;;16180:15;16163:14;:32;16219:25;;;6222:51:1;;;6304:2;6289:18;;6282:34;;;16219:25:0;;6195:18:1;16219:25:0;;;;;;;15934:618;;;-1:-1:-1;;;;;16285:29:0;;;;;;:18;:29;;;;;;;;:36;;;:61;;;16336:10;;16326:7;:20;16285:61;16281:271;;;16381:4;:16;;-1:-1:-1;;;;;;16381:16:0;-1:-1:-1;;;;;16381:16:0;;;;;;;;16416:10;:20;;;16472:15;16455:14;:32;16511:25;;;6222:51:1;;;6304:2;6289:18;;6282:34;;;16511:25:0;;6195:18:1;16511:25:0;;;;;;;16281:271;15424:1139;;;15151:1412;5513:7;5540:6;-1:-1:-1;;;;;16591:17:0;;;5540:6;;16591:17;;;;:54;;-1:-1:-1;5513:7:0;5540:6;-1:-1:-1;;;;;16625:20:0;;;5540:6;;16625:20;;16591:54;:95;;;;-1:-1:-1;;;;;;16663:23:0;;;;;;:15;:23;;;;;;;;16662:24;16591:95;:126;;;;-1:-1:-1;16713:4:0;;-1:-1:-1;;;;;16703:14:0;;;16713:4;;16703:14;;16591:126;:169;;;;-1:-1:-1;;;;;;16734:26:0;;16755:4;16734:26;;16591:169;16573:397;;;16805:12;;16795:6;:22;;16787:41;;;;-1:-1:-1;;;16787:41:0;;11656:2:1;16787:41:0;;;11638:21:1;11695:1;11675:18;;;11668:29;-1:-1:-1;;;11713:18:1;;;11706:36;11759:18;;16787:41:0;11454:329:1;16787:41:0;16847:4;;-1:-1:-1;;;;;16847:14:0;;;:4;;:14;16843:113;;16896:4;;16902:10;;16887:26;;;-1:-1:-1;;;;;16896:4:0;;;6222:51:1;;6304:2;6289:18;;6282:34;;;;16887:26:0;;6195:18:1;16887:26:0;;;;;;;16932:8;:6;:8::i;20435:342::-;-1:-1:-1;;;;;20572:19:0;;20546:4;20572:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;20595:22:0;;;;;;:11;:22;;;;;;;;20572:45;20568:90;;;-1:-1:-1;20641:5:0;20634:12;;20568:90;20682:4;;-1:-1:-1;;;;;20672:14:0;;;20682:4;;20672:14;;:35;;-1:-1:-1;20703:4:0;;-1:-1:-1;;;;;20690:17:0;;;20703:4;;20690:17;20672:35;20668:80;;;-1:-1:-1;20731:5:0;20724:12;;20668:80;-1:-1:-1;20765:4:0;20435:342;;;;:::o;19942:485::-;20106:4;;20062:7;;;;-1:-1:-1;;;;;20106:17:0;;;:4;;:17;:74;;20172:8;;20106:74;;;20139:17;;20106:74;20082:98;-1:-1:-1;20191:17:0;20211:34;20241:3;20211:25;:6;20082:98;20211:10;:25::i;:34::-;20301:4;20283:24;;;;:9;:24;;;;;;20191:54;;-1:-1:-1;20283:39:0;;20191:54;20283:28;:39::i;:::-;20274:4;20256:24;;;;:9;:24;;;;;;;:66;;;;20338:42;;-1:-1:-1;;;;;20338:42:0;;;;;;;20370:9;160:25:1;;148:2;133:18;;14:177;20338:42:0;;;;;;;;20398:21;:6;20409:9;20398:10;:21::i;:::-;20391:28;19942:485;-1:-1:-1;;;;;;19942:485:0:o;782:246::-;840:7;864:1;869;864:6;860:47;;-1:-1:-1;894:1:0;887:8;;860:47;917:9;929:5;933:1;929;:5;:::i;:::-;917:17;-1:-1:-1;962:1:0;953:5;957:1;917:17;953:5;:::i;:::-;:10;945:56;;;;-1:-1:-1;;;945:56:0;;14014:2:1;945:56:0;;;13996:21:1;14053:2;14033:18;;;14026:30;14092:34;14072:18;;;14065:62;-1:-1:-1;;;14143:18:1;;;14136:31;14184:19;;945:56:0;13812:397:1;1036:132:0;1094:7;1121:39;1125:1;1128;1121:39;;;;;;;;;;;;;;;;;:3;:39::i;13049:136::-;13094:15;;13087:4;:22;;-1:-1:-1;;;;;;13087:22:0;-1:-1:-1;;;;;13094:15:0;;;13087:22;;;;;;13094:15;13120:10;:14;13162:15;13145:14;:32;13049:136::o;1176:223::-;1296:7;1331:12;1324:5;1316:28;;;;-1:-1:-1;;;1316:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1355:9:0;1367:5;1371:1;1367;:5;:::i;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;934:315;1002:6;1010;1063:2;1051:9;1042:7;1038:23;1034:32;1031:52;;;1079:1;1076;1069:12;1031:52;1118:9;1105:23;1137:31;1162:5;1137:31;:::i;:::-;1187:5;1239:2;1224:18;;;;1211:32;;-1:-1:-1;;;934:315:1:o;1446:456::-;1523:6;1531;1539;1592:2;1580:9;1571:7;1567:23;1563:32;1560:52;;;1608:1;1605;1598:12;1560:52;1647:9;1634:23;1666:31;1691:5;1666:31;:::i;:::-;1716:5;-1:-1:-1;1773:2:1;1758:18;;1745:32;1786:33;1745:32;1786:33;:::i;:::-;1446:456;;1838:7;;-1:-1:-1;;;1892:2:1;1877:18;;;;1864:32;;1446:456::o;2096:247::-;2155:6;2208:2;2196:9;2187:7;2183:23;2179:32;2176:52;;;2224:1;2221;2214:12;2176:52;2263:9;2250:23;2282:31;2307:5;2282:31;:::i;2348:118::-;2434:5;2427:13;2420:21;2413:5;2410:32;2400:60;;2456:1;2453;2446:12;2471:382;2536:6;2544;2597:2;2585:9;2576:7;2572:23;2568:32;2565:52;;;2613:1;2610;2603:12;2565:52;2652:9;2639:23;2671:31;2696:5;2671:31;:::i;:::-;2721:5;-1:-1:-1;2778:2:1;2763:18;;2750:32;2791:30;2750:32;2791:30;:::i;:::-;2840:7;2830:17;;;2471:382;;;;;:::o;2858:180::-;2917:6;2970:2;2958:9;2949:7;2945:23;2941:32;2938:52;;;2986:1;2983;2976:12;2938:52;-1:-1:-1;3009:23:1;;2858:180;-1:-1:-1;2858:180:1:o;3251:388::-;3319:6;3327;3380:2;3368:9;3359:7;3355:23;3351:32;3348:52;;;3396:1;3393;3386:12;3348:52;3435:9;3422:23;3454:31;3479:5;3454:31;:::i;:::-;3504:5;-1:-1:-1;3561:2:1;3546:18;;3533:32;3574:33;3533:32;3574:33;:::i;3644:316::-;3721:6;3729;3737;3790:2;3778:9;3769:7;3765:23;3761:32;3758:52;;;3806:1;3803;3796:12;3758:52;-1:-1:-1;;3829:23:1;;;3899:2;3884:18;;3871:32;;-1:-1:-1;3950:2:1;3935:18;;;3922:32;;3644:316;-1:-1:-1;3644:316:1:o;3965:309::-;4030:6;4038;4091:2;4079:9;4070:7;4066:23;4062:32;4059:52;;;4107:1;4104;4097:12;4059:52;4146:9;4133:23;4165:28;4187:5;4165:28;:::i;4505:356::-;4707:2;4689:21;;;4726:18;;;4719:30;4785:34;4780:2;4765:18;;4758:62;4852:2;4837:18;;4505:356::o;4866:127::-;4927:10;4922:3;4918:20;4915:1;4908:31;4958:4;4955:1;4948:15;4982:4;4979:1;4972:15;4998:128;5038:3;5069:1;5065:6;5062:1;5059:13;5056:39;;;5075:18;;:::i;:::-;-1:-1:-1;5111:9:1;;4998:128::o;5131:217::-;5171:1;5197;5187:132;;5241:10;5236:3;5232:20;5229:1;5222:31;5276:4;5273:1;5266:15;5304:4;5301:1;5294:15;5187:132;-1:-1:-1;5333:9:1;;5131:217::o;5708:335::-;5910:2;5892:21;;;5949:2;5929:18;;;5922:30;-1:-1:-1;;;5983:2:1;5968:18;;5961:41;6034:2;6019:18;;5708:335::o;6327:245::-;6394:6;6447:2;6435:9;6426:7;6422:23;6418:32;6415:52;;;6463:1;6460;6453:12;6415:52;6495:9;6489:16;6514:28;6536:5;6514:28;:::i;7685:125::-;7725:4;7753:1;7750;7747:8;7744:34;;;7758:18;;:::i;:::-;-1:-1:-1;7795:9:1;;7685:125::o;8495:127::-;8556:10;8551:3;8547:20;8544:1;8537:31;8587:4;8584:1;8577:15;8611:4;8608:1;8601:15;8627:127;8688:10;8683:3;8679:20;8676:1;8669:31;8719:4;8716:1;8709:15;8743:4;8740:1;8733:15;8759:251;8829:6;8882:2;8870:9;8861:7;8857:23;8853:32;8850:52;;;8898:1;8895;8888:12;8850:52;8930:9;8924:16;8949:31;8974:5;8949:31;:::i;9015:461::-;9068:3;9106:5;9100:12;9133:6;9128:3;9121:19;9159:4;9188:2;9183:3;9179:12;9172:19;;9225:2;9218:5;9214:14;9246:1;9256:195;9270:6;9267:1;9264:13;9256:195;;;9335:13;;-1:-1:-1;;;;;9331:39:1;9319:52;;9391:12;;;;9426:15;;;;9367:1;9285:9;9256:195;;;-1:-1:-1;9467:3:1;;9015:461;-1:-1:-1;;;;;9015:461:1:o;9481:582::-;9780:6;9769:9;9762:25;9823:6;9818:2;9807:9;9803:18;9796:34;9866:3;9861:2;9850:9;9846:18;9839:31;9743:4;9887:57;9939:3;9928:9;9924:19;9916:6;9887:57;:::i;:::-;-1:-1:-1;;;;;9980:32:1;;;;9975:2;9960:18;;9953:60;-1:-1:-1;10044:3:1;10029:19;10022:35;9879:65;9481:582;-1:-1:-1;;;9481:582:1:o;10890:306::-;10978:6;10986;10994;11047:2;11035:9;11026:7;11022:23;11018:32;11015:52;;;11063:1;11060;11053:12;11015:52;11092:9;11086:16;11076:26;;11142:2;11131:9;11127:18;11121:25;11111:35;;11186:2;11175:9;11171:18;11165:25;11155:35;;10890:306;;;;;:::o;12192:332::-;12399:6;12388:9;12381:25;12442:2;12437;12426:9;12422:18;12415:30;12362:4;12462:56;12514:2;12503:9;12499:18;12491:6;12462:56;:::i;:::-;12454:64;12192:332;-1:-1:-1;;;;12192:332:1:o;12529:1105::-;12624:6;12655:2;12698;12686:9;12677:7;12673:23;12669:32;12666:52;;;12714:1;12711;12704:12;12666:52;12747:9;12741:16;12776:18;12817:2;12809:6;12806:14;12803:34;;;12833:1;12830;12823:12;12803:34;12871:6;12860:9;12856:22;12846:32;;12916:7;12909:4;12905:2;12901:13;12897:27;12887:55;;12938:1;12935;12928:12;12887:55;12967:2;12961:9;12989:2;12985;12982:10;12979:36;;;12995:18;;:::i;:::-;13041:2;13038:1;13034:10;13073:2;13067:9;13136:2;13132:7;13127:2;13123;13119:11;13115:25;13107:6;13103:38;13191:6;13179:10;13176:22;13171:2;13159:10;13156:18;13153:46;13150:72;;;13202:18;;:::i;:::-;13238:2;13231:22;13288:18;;;13322:15;;;;-1:-1:-1;13364:11:1;;;13360:20;;;13392:19;;;13389:39;;;13424:1;13421;13414:12;13389:39;13448:11;;;;13468:135;13484:6;13479:3;13476:15;13468:135;;;13550:10;;13538:23;;13501:12;;;;13581;;;;13468:135;;;13622:6;12529:1105;-1:-1:-1;;;;;;;;12529:1105:1:o;13639:168::-;13679:7;13745:1;13741;13737:6;13733:14;13730:1;13727:21;13722:1;13715:9;13708:17;13704:45;13701:71;;;13752:18;;:::i;:::-;-1:-1:-1;13792:9:1;;13639:168::o

Swarm Source

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