ETH Price: $3,465.66 (-1.17%)
Gas: 4 Gwei

Token

Lord Of The Eth ($LORD)
 

Overview

Max Total Supply

50,000 $LORD

Holders

82

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
457.022778106057150747 $LORD

Value
$0.00
0x9463e5bc3504725a212f3ebd686cdbcca7a21ccc
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:
LOTE

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-06
*/

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 LOTE is IERC20, Ownable {
    using SafeMath for uint256;

    string constant _name = "Lord Of The Eth";
    string constant _symbol = "$LORD";
    uint8 constant _decimals = 18;

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

    uint256 _totalSupply = 50000 * (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 = 2;
    uint256 public marketingFee = 4;
    uint256 public ringFee = 10;
    uint256 private totalFee = 10;
    uint256 private totalFeeIfSelling = 0;
    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 / 33;
    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 = 1;
        marketingFee = 1;
        ringFee = 8;
        totalFee = liquidityFee.add(marketingFee).add(ringFee);
    }

    function setDefaultTaxes() public onlyOwner()
    {
        liquidityFee = 2;
        marketingFee = 4;
        ringFee = 4;
        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 = 4;
        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"}]

6080604052600180546001600160a01b031990811661dead17909155600280548216905560038054909116737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000506012600a620005ae565b6200005e9061c350620005c6565b60048181556000600581905560068190556107086007556002601055601191909155600a60128190556013556014556018805460ff60a01b19169055601b805460ff60a81b1916600160a81b179055601c819055620000c090602190620005e8565b601d556064600454620000d49190620005e8565b601e556006601f55348015620000e957600080fd5b50620000f533620003dc565b600354601a80546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000152573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017891906200060b565b6001600160a01b031663c9c65396601a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020091906200060b565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156200024d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027391906200060b565b601b80546001600160a01b039283166001600160a01b0319918216178255306000818152600960209081526040808320601a5488168452825280832060001990556001805488168452600d808452828520805460ff19908116841790915582548a168652600e8086528487208054831685179055338088529286528487208054831685179055968652838620805482168417905581865295845282852080548716831790559654909716835290912080549092169094179055601580548216831790556016805482168317905560178054909116909117905560125460115460105462000383936200036f9290620014276200042c821b17901c565b6200042c60201b620014271790919060201c565b601381905560145560045433600081815260086020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000651565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806200043b838562000636565b905083811015620004925760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004f2578160001904821115620004d657620004d66200049b565b80851615620004e457918102915b93841c9390800290620004b6565b509250929050565b6000826200050b5750600162000495565b816200051a5750600062000495565b81600181146200053357600281146200053e576200055e565b600191505062000495565b60ff8411156200055257620005526200049b565b50506001821b62000495565b5060208310610133831016604e8410600b841016171562000583575081810a62000495565b6200058f8383620004b1565b8060001904821115620005a657620005a66200049b565b029392505050565b6000620005bf60ff841683620004fa565b9392505050565b6000816000190483118215151615620005e357620005e36200049b565b500290565b6000826200060657634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200061e57600080fd5b81516001600160a01b03811681146200049257600080fd5b600082198211156200064c576200064c6200049b565b500190565b612b3a80620006616000396000f3fe60806040526004361061037a5760003560e01c80638da5cb5b116101d1578063a9059cbb11610102578063df20fd49116100a0578063f84ba65d1161006f578063f84ba65d14610a38578063f887ea4014610a58578063fe2b6bc614610a78578063fe575a8714610a8d57600080fd5b8063df20fd49146109c3578063ea1644d5146109e3578063eb45e70914610a03578063f2fde38b14610a1857600080fd5b8063cec10c11116100dc578063cec10c1114610927578063dbe1c4d514610947578063dd62ed3e1461095d578063dec2ba0f146109a357600080fd5b8063a9059cbb146108c7578063a9e59da3146108e7578063ca33e64c1461090757600080fd5b80639e0a78101161016f578063a4b45c0011610149578063a4b45c001461083a578063a4f87a7a1461085a578063a617792814610887578063a8aa1b31146108a757600080fd5b80639e0a7810146107d35780639f2bb2e9146107f45780639f55eb4e1461080a57600080fd5b806395d89b41116101ab57806395d89b411461074f57806398118cb41461077d5780639cfe42da146107935780639d0014b1146107b357600080fd5b80638da5cb5b146106d55780638eb6889f14610723578063944c1d971461073957600080fd5b8063571ac8b0116102ab578063715018a6116102495780637de4c778116102235780637de4c7781461068857806387b3be7d146106b5578063893d20e8146106d55780638b42507f146106f357600080fd5b8063715018a61461062557806375f0a8741461063a5780637d1db4a51461067257600080fd5b80636b67c4df116102855780636b67c4df146105a35780636c0a24eb146105b957806370a08231146105cf578063712a890a1461060557600080fd5b8063571ac8b014610543578063658d4b7f1461056357806366e930b31461058357600080fd5b8063313ce567116103185780633f4218e0116102f25780633f4218e0146104c757806346cf314f146104f75780634a74bb021461050d5780634fef3a821461052e57600080fd5b8063313ce5671461048157806333596f501461049d5780633e02a988146104b257600080fd5b8063125b94e511610354578063125b94e51461042057806318160ddd1461043757806323b872dd1461044c5780632b112e491461046c57600080fd5b80630445b6671461038657806306fdde03146103af578063095ea7b3146103f057600080fd5b3661038157005b600080fd5b34801561039257600080fd5b5061039c601e5481565b6040519081526020015b60405180910390f35b3480156103bb57600080fd5b5060408051808201909152600f81526e098dee4c8409ecc40a8d0ca408ae8d608b1b60208201525b6040516103a69190612665565b3480156103fc57600080fd5b5061041061040b3660046126cf565b610ac6565b60405190151581526020016103a6565b34801561042c57600080fd5b50610435610b33565b005b34801561044357600080fd5b5060045461039c565b34801561045857600080fd5b506104106104673660046126fb565b610b92565b34801561047857600080fd5b5061039c610c57565b34801561048d57600080fd5b50604051601281526020016103a6565b3480156104a957600080fd5b50610435610ca9565b3480156104be57600080fd5b5061039c610d02565b3480156104d357600080fd5b506104106104e236600461273c565b600d6020526000908152604090205460ff1681565b34801561050357600080fd5b5061039c60125481565b34801561051957600080fd5b50601b5461041090600160a81b900460ff1681565b34801561053a57600080fd5b50610435610d14565b34801561054f57600080fd5b5061041061055e36600461273c565b610d5f565b34801561056f57600080fd5b5061043561057e366004612767565b610d6d565b34801561058f57600080fd5b5061043561059e36600461273c565b610dc2565b3480156105af57600080fd5b5061039c60115481565b3480156105c557600080fd5b5061039c601d5481565b3480156105db57600080fd5b5061039c6105ea36600461273c565b6001600160a01b031660009081526008602052604090205490565b34801561061157600080fd5b506104356106203660046127a0565b610e0d565b34801561063157600080fd5b50610435610e3c565b34801561064657600080fd5b5060165461065a906001600160a01b031681565b6040516001600160a01b0390911681526020016103a6565b34801561067e57600080fd5b5061039c601c5481565b34801561069457600080fd5b5061039c6106a336600461273c565b600b6020526000908152604090205481565b3480156106c157600080fd5b5060175461065a906001600160a01b031681565b3480156106e157600080fd5b506000546001600160a01b031661065a565b3480156106ff57600080fd5b5061041061070e36600461273c565b600e6020526000908152604090205460ff1681565b34801561072f57600080fd5b5061039c60055481565b34801561074557600080fd5b5061039c60075481565b34801561075b57600080fd5b50604080518082019091526005815264091313d49160da1b60208201526103e3565b34801561078957600080fd5b5061039c60105481565b34801561079f57600080fd5b506104356107ae36600461273c565b610e72565b3480156107bf57600080fd5b506104356107ce3660046127a0565b610eda565b3480156107df57600080fd5b5060185461041090600160a01b900460ff1681565b34801561080057600080fd5b5061039c60065481565b34801561081657600080fd5b5061041061082536600461273c565b600c6020526000908152604090205460ff1681565b34801561084657600080fd5b506104356108553660046127b9565b610f09565b34801561086657600080fd5b5061039c61087536600461273c565b600a6020526000908152604090205481565b34801561089357600080fd5b5060185461065a906001600160a01b031681565b3480156108b357600080fd5b50601b5461065a906001600160a01b031681565b3480156108d357600080fd5b506104106108e23660046126cf565b610f61565b3480156108f357600080fd5b506104356109023660046127a0565b610f6e565b34801561091357600080fd5b5060155461065a906001600160a01b031681565b34801561093357600080fd5b506104356109423660046127e7565b610ffb565b34801561095357600080fd5b5061039c601f5481565b34801561096957600080fd5b5061039c6109783660046127b9565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156109af57600080fd5b506104356109be3660046126cf565b6110ad565b3480156109cf57600080fd5b506104356109de366004612813565b61114d565b3480156109ef57600080fd5b506104356109fe3660046127a0565b611199565b348015610a0f57600080fd5b50610435611226565b348015610a2457600080fd5b50610435610a3336600461273c565b611279565b348015610a4457600080fd5b50610435610a53366004612767565b611311565b348015610a6457600080fd5b50601a5461065a906001600160a01b031681565b348015610a8457600080fd5b50610435611366565b348015610a9957600080fd5b50610410610aa836600461273c565b6001600160a01b03166000908152600f602052604090205460ff1690565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b219086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610b665760405162461bcd60e51b8152600401610b5d90612831565b60405180910390fd5b60026010819055600460118190556012819055610b8d91610b879082611427565b90611427565b601355565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610c3f576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610c1a918490611486565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610c4a8484846114c0565b50600190505b9392505050565b6002546001600160a01b0316600090815260086020526040812054610ca4906001546001600160a01b0316600090815260086020526040902054610c9e90600454906118ac565b906118ac565b905090565b6000546001600160a01b03163314610cd35760405162461bcd60e51b8152600401610b5d90612831565b60405133904780156108fc02916000818181858888f19350505050158015610cff573d6000803e3d6000fd5b50565b6000600754600654610ca4919061287c565b6000546001600160a01b03163314610d3e5760405162461bcd60e51b8152600401610b5d90612831565b60016010819055601181905560086012819055610b8d91610b879080611427565b6000610b2d82600019610ac6565b6000546001600160a01b03163314610d975760405162461bcd60e51b8152600401610b5d90612831565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610dec5760405162461bcd60e51b8152600401610b5d90612831565b6001600160a01b03166000908152600f60205260409020805460ff19169055565b6000546001600160a01b03163314610e375760405162461bcd60e51b8152600401610b5d90612831565b600755565b6000546001600160a01b03163314610e665760405162461bcd60e51b8152600401610b5d90612831565b610e7060006118ee565b565b6000546001600160a01b03163314610e9c5760405162461bcd60e51b8152600401610b5d90612831565b601954610eab90610a8c61287c565b4210610eb657600080fd5b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b6000546001600160a01b03163314610f045760405162461bcd60e51b8152600401610b5d90612831565b601e55565b6000546001600160a01b03163314610f335760405162461bcd60e51b8152600401610b5d90612831565b601580546001600160a01b039384166001600160a01b03199182161790915560168054929093169116179055565b6000610c503384846114c0565b6000546001600160a01b03163314610f985760405162461bcd60e51b8152600401610b5d90612831565b600a600454610fa79190612894565b811015610ff65760405162461bcd60e51b815260206004820152601a60248201527f4d61782077616c6c65742073697a6520697320746f6f206c6f770000000000006044820152606401610b5d565b601c55565b6000546001600160a01b031633146110255760405162461bcd60e51b8152600401610b5d90612831565b600a8311156110465760405162461bcd60e51b8152600401610b5d906128b6565b600a8211156110675760405162461bcd60e51b8152600401610b5d906128b6565b600a8111156110885760405162461bcd60e51b8152600401610b5d906128b6565b6010839055601182905560128190556110a581610b878585611427565b601355505050565b6000546001600160a01b031633146110d75760405162461bcd60e51b8152600401610b5d90612831565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015611124573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114891906128db565b505050565b6000546001600160a01b031633146111775760405162461bcd60e51b8152600401610b5d90612831565b601b8054921515600160a81b0260ff60a81b1990931692909217909155601e55565b6000546001600160a01b031633146111c35760405162461bcd60e51b8152600401610b5d90612831565b60326004546111d29190612894565b8110156112215760405162461bcd60e51b815260206004820152601a60248201527f4d61782077616c6c65742073697a6520697320746f6f206c6f770000000000006044820152606401610b5d565b601d55565b6000546001600160a01b031633146112505760405162461bcd60e51b8152600401610b5d90612831565b601b805460ff60a81b19169055600019601c819055601d55600060118190556012819055601055565b6000546001600160a01b031633146112a35760405162461bcd60e51b8152600401610b5d90612831565b6001600160a01b0381166113085760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b5d565b610cff816118ee565b6000546001600160a01b0316331461133b5760405162461bcd60e51b8152600401610b5d90612831565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113905760405162461bcd60e51b8152600401610b5d90612831565b601854600160a01b900460ff16156113dd5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610b5d565b6018805460ff60a01b1916600160a01b179055426019819055601654601780546001600160a01b0319166001600160a01b0390921691909117905560006005556004601255600655565b600080611434838561287c565b905083811015610c505760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b5d565b600081848411156114aa5760405162461bcd60e51b8152600401610b5d9190612665565b5060006114b784866128f8565b95945050505050565b6001600160a01b0383166000908152600f602052604081205460ff16151560011480159061150c57506001600160a01b0383166000908152600f602052604090205460ff161515600114155b6115465760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610b5d565b601b54600160a01b900460ff161561156a5761156384848461193e565b9050610c50565b601b546001600160a01b0316331480159061158f5750601b54600160a01b900460ff16155b80156115a45750601b54600160a81b900460ff165b80156115c15750601e543060009081526008602052604090205410155b156115ce576115ce611a24565b6115d9848484611e65565b6115e384846123fb565b1561161e5760405162461bcd60e51b815260206004820152600b60248201526a111bdb89dd0818da19585d60aa1b6044820152606401610b5d565b6001600160a01b0384166000908152600d602052604081205460ff1615801561166057506001600160a01b0384166000908152600d602052604090205460ff16155b61166a5782611675565b611675858585612486565b601854909150600160a01b900460ff1615156001148015906116a55750601b546001600160a01b03858116911614155b80156116bf57506000546001600160a01b03868116911614155b80156116d957506000546001600160a01b03858116911614155b15611757576001600160a01b0384166000908152600860205260409020546117019082611427565b6001600160a01b03808616600090815260086020526040808220939093559087168152205461173090846118ac565b6001600160a01b03861660009081526008602052604090205561175284610eb6565b611861565b6000546001600160a01b038681169116148061178057506000546001600160a01b038581169116145b156117f5576001600160a01b0384166000908152600860205260409020546117a89082611427565b6001600160a01b0380861660009081526008602052604080822093909355908716815220546117d790846118ac565b6001600160a01b038616600090815260086020526040902055611861565b6001600160a01b0384166000908152600860205260409020546118189082611427565b6001600160a01b03808616600090815260086020526040808220939093559087168152205461184790846118ac565b6001600160a01b0386166000908152600860205260409020555b6040518181526001600160a01b0385169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3506001949350505050565b6000610c5083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611486565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461198f918490611486565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546119be9083611427565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a129086815260200190565b60405180910390a35060019392505050565b601b805460ff60a01b1916600160a01b179055601e54601354601054600091611a5d91600291611a579182908790612549565b906125c8565b90506000611a6b83836118ac565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611aa557611aa5612925565b6001600160a01b03928316602091820292909201810191909152601a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611afe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b22919061293b565b81600181518110611b3557611b35612925565b6001600160a01b039283166020918202929092010152601a5460405163791ac94760e01b815291169063791ac94790611b7b90859060009086903090429060040161299c565b600060405180830381600087803b158015611b9557600080fd5b505af1158015611ba9573d6000803e3d6000fd5b505060105447925060009150611bcd90611bc49060026125c8565b601354906118ac565b90506000611bea82611a576011548661254990919063ffffffff16565b90506000611c0783611a576012548761254990919063ffffffff16565b90506000611c296002611a5786611a576010548a61254990919063ffffffff16565b6016546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611c80576040519150601f19603f3d011682016040523d82523d6000602084013e611c85565b606091505b50506017546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611cde576040519150601f19603f3d011682016040523d82523d6000602084013e611ce3565b606091505b5050601780546001600160a01b039081166000908152600b602090815260408083208a9055845484168352600c8252808320805460ff19166001179055845484168352600a82529182902042905592548151921682529181018790529192507f887dd9f57395c2e1e0dea455ae76bf56410b19b3131f2a590aab0b29b3683632910160405180910390a15060009050808915611e4b57601a5460155460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015611de9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e0e91906129d8565b505060408051858152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601b805460ff60a01b19169055505050505050505050565b600754600654611e7590426128f8565b1115611e8357611e8361260a565b6000546001600160a01b03848116911614801590611eaf57506000546001600160a01b03838116911614155b8015611ed457506001600160a01b0382166000908152600e602052604090205460ff16155b8015611eee57506002546001600160a01b03838116911614155b8015611f0857506001546001600160a01b03838116911614155b8015611f225750601b546001600160a01b03838116911614155b8015611f3757506001600160a01b0382163014155b156122d357601c54811115611f775760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b6044820152606401610b5d565b6001600160a01b038216600090815260086020526040902054601d54611f9d838361287c565b1115611ff75760405162461bcd60e51b815260206004820152602360248201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152621d5b9d60ea1b6064820152608401610b5d565b6040805160028082526060820183526000926020830190803683375050601a54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015612061573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612085919061293b565b8160008151811061209857612098612925565b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106120cc576120cc612925565b6001600160a01b039283166020918202929092010152601a546040516307c0329d60e21b81526000929190911690631f00ca74906121109087908690600401612a06565b600060405180830381865afa15801561212d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526121559190810190612a27565b60008151811061216757612167612925565b6020908102919091018101516001600160a01b0387166000908152600c90925260409091205490915060ff16151560011480156121c857506001600160a01b0385166000908152600a602052604090205442906121c690612a3061287c565b105b80156121d5575060055481115b1561223f57601780546001600160a01b0319166001600160a01b03871690811790915560058290554260065560408051918252602082018390527f735208e3a5b6390fd1d199ec98f6689564f9d7fef06323849704a8856eeed5f4910160405180910390a16122cf565b6001600160a01b0385166000908152600c602052604090205460ff16158015612269575060055481115b156122cf57601780546001600160a01b0319166001600160a01b03871690811790915560058290554260065560408051918252602082018390527f735208e3a5b6390fd1d199ec98f6689564f9d7fef06323849704a8856eeed5f4910160405180910390a15b5050505b6000546001600160a01b038481169116148015906122ff57506000546001600160a01b03838116911614155b801561232457506001600160a01b0383166000908152600e602052604090205460ff16155b801561233e5750601b546001600160a01b03848116911614155b801561235357506001600160a01b0382163014155b1561114857601c548111156123935760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b6044820152606401610b5d565b6017546001600160a01b038481169116141561114857601754600554604080516001600160a01b03909316835260208301919091527fec798f0f5328ec01f1d48922c12f488ecde2dae7402c814510a37d505cbdbb2a910160405180910390a161114861260a565b6001600160a01b0382166000908152600d602052604081205460ff168061243a57506001600160a01b0382166000908152600d602052604090205460ff165b1561244757506000610b2d565b601b546001600160a01b03848116911614806124705750601b546001600160a01b038381169116145b1561247d57506000610b2d565b50600192915050565b601b5460009081906001600160a01b038581169116146124a8576013546124ac565b6014545b905060006124bf6064611a578685612549565b306000908152600860205260409020549091506124dc9082611427565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061252d9085815260200190565b60405180910390a361253f84826118ac565b9695505050505050565b60008261255857506000610b2d565b60006125648385612ae5565b9050826125718583612894565b14610c505760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b5d565b6000610c5083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612637565b601654601780546001600160a01b0319166001600160a01b03909216919091179055600060055542600655565b600081836126585760405162461bcd60e51b8152600401610b5d9190612665565b5060006114b78486612894565b600060208083528351808285015260005b8181101561269257858101830151858201604001528201612676565b818111156126a4576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610cff57600080fd5b600080604083850312156126e257600080fd5b82356126ed816126ba565b946020939093013593505050565b60008060006060848603121561271057600080fd5b833561271b816126ba565b9250602084013561272b816126ba565b929592945050506040919091013590565b60006020828403121561274e57600080fd5b8135610c50816126ba565b8015158114610cff57600080fd5b6000806040838503121561277a57600080fd5b8235612785816126ba565b9150602083013561279581612759565b809150509250929050565b6000602082840312156127b257600080fd5b5035919050565b600080604083850312156127cc57600080fd5b82356127d7816126ba565b91506020830135612795816126ba565b6000806000606084860312156127fc57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561282657600080fd5b82356126ed81612759565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561288f5761288f612866565b500190565b6000826128b157634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600b908201526a496e76616c69642066656560a81b604082015260600190565b6000602082840312156128ed57600080fd5b8151610c5081612759565b60008282101561290a5761290a612866565b500390565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561294d57600080fd5b8151610c50816126ba565b600081518084526020808501945080840160005b838110156129915781516001600160a01b03168752958201959082019060010161296c565b509495945050505050565b85815284602082015260a0604082015260006129bb60a0830186612958565b6001600160a01b0394909416606083015250608001529392505050565b6000806000606084860312156129ed57600080fd5b8351925060208401519150604084015190509250925092565b828152604060208201526000612a1f6040830184612958565b949350505050565b60006020808385031215612a3a57600080fd5b825167ffffffffffffffff80821115612a5257600080fd5b818501915085601f830112612a6657600080fd5b815181811115612a7857612a7861290f565b8060051b604051601f19603f83011681018181108582111715612a9d57612a9d61290f565b604052918252848201925083810185019188831115612abb57600080fd5b938501935b82851015612ad957845184529385019392850192612ac0565b98975050505050505050565b6000816000190483118215151615612aff57612aff612866565b50029056fea264697066735822122037cd66f0c310af6f3af2beaa10f2c9e284956682d17f7f7144f69c51fd58296064736f6c634300080c0033

Deployed Bytecode

0x60806040526004361061037a5760003560e01c80638da5cb5b116101d1578063a9059cbb11610102578063df20fd49116100a0578063f84ba65d1161006f578063f84ba65d14610a38578063f887ea4014610a58578063fe2b6bc614610a78578063fe575a8714610a8d57600080fd5b8063df20fd49146109c3578063ea1644d5146109e3578063eb45e70914610a03578063f2fde38b14610a1857600080fd5b8063cec10c11116100dc578063cec10c1114610927578063dbe1c4d514610947578063dd62ed3e1461095d578063dec2ba0f146109a357600080fd5b8063a9059cbb146108c7578063a9e59da3146108e7578063ca33e64c1461090757600080fd5b80639e0a78101161016f578063a4b45c0011610149578063a4b45c001461083a578063a4f87a7a1461085a578063a617792814610887578063a8aa1b31146108a757600080fd5b80639e0a7810146107d35780639f2bb2e9146107f45780639f55eb4e1461080a57600080fd5b806395d89b41116101ab57806395d89b411461074f57806398118cb41461077d5780639cfe42da146107935780639d0014b1146107b357600080fd5b80638da5cb5b146106d55780638eb6889f14610723578063944c1d971461073957600080fd5b8063571ac8b0116102ab578063715018a6116102495780637de4c778116102235780637de4c7781461068857806387b3be7d146106b5578063893d20e8146106d55780638b42507f146106f357600080fd5b8063715018a61461062557806375f0a8741461063a5780637d1db4a51461067257600080fd5b80636b67c4df116102855780636b67c4df146105a35780636c0a24eb146105b957806370a08231146105cf578063712a890a1461060557600080fd5b8063571ac8b014610543578063658d4b7f1461056357806366e930b31461058357600080fd5b8063313ce567116103185780633f4218e0116102f25780633f4218e0146104c757806346cf314f146104f75780634a74bb021461050d5780634fef3a821461052e57600080fd5b8063313ce5671461048157806333596f501461049d5780633e02a988146104b257600080fd5b8063125b94e511610354578063125b94e51461042057806318160ddd1461043757806323b872dd1461044c5780632b112e491461046c57600080fd5b80630445b6671461038657806306fdde03146103af578063095ea7b3146103f057600080fd5b3661038157005b600080fd5b34801561039257600080fd5b5061039c601e5481565b6040519081526020015b60405180910390f35b3480156103bb57600080fd5b5060408051808201909152600f81526e098dee4c8409ecc40a8d0ca408ae8d608b1b60208201525b6040516103a69190612665565b3480156103fc57600080fd5b5061041061040b3660046126cf565b610ac6565b60405190151581526020016103a6565b34801561042c57600080fd5b50610435610b33565b005b34801561044357600080fd5b5060045461039c565b34801561045857600080fd5b506104106104673660046126fb565b610b92565b34801561047857600080fd5b5061039c610c57565b34801561048d57600080fd5b50604051601281526020016103a6565b3480156104a957600080fd5b50610435610ca9565b3480156104be57600080fd5b5061039c610d02565b3480156104d357600080fd5b506104106104e236600461273c565b600d6020526000908152604090205460ff1681565b34801561050357600080fd5b5061039c60125481565b34801561051957600080fd5b50601b5461041090600160a81b900460ff1681565b34801561053a57600080fd5b50610435610d14565b34801561054f57600080fd5b5061041061055e36600461273c565b610d5f565b34801561056f57600080fd5b5061043561057e366004612767565b610d6d565b34801561058f57600080fd5b5061043561059e36600461273c565b610dc2565b3480156105af57600080fd5b5061039c60115481565b3480156105c557600080fd5b5061039c601d5481565b3480156105db57600080fd5b5061039c6105ea36600461273c565b6001600160a01b031660009081526008602052604090205490565b34801561061157600080fd5b506104356106203660046127a0565b610e0d565b34801561063157600080fd5b50610435610e3c565b34801561064657600080fd5b5060165461065a906001600160a01b031681565b6040516001600160a01b0390911681526020016103a6565b34801561067e57600080fd5b5061039c601c5481565b34801561069457600080fd5b5061039c6106a336600461273c565b600b6020526000908152604090205481565b3480156106c157600080fd5b5060175461065a906001600160a01b031681565b3480156106e157600080fd5b506000546001600160a01b031661065a565b3480156106ff57600080fd5b5061041061070e36600461273c565b600e6020526000908152604090205460ff1681565b34801561072f57600080fd5b5061039c60055481565b34801561074557600080fd5b5061039c60075481565b34801561075b57600080fd5b50604080518082019091526005815264091313d49160da1b60208201526103e3565b34801561078957600080fd5b5061039c60105481565b34801561079f57600080fd5b506104356107ae36600461273c565b610e72565b3480156107bf57600080fd5b506104356107ce3660046127a0565b610eda565b3480156107df57600080fd5b5060185461041090600160a01b900460ff1681565b34801561080057600080fd5b5061039c60065481565b34801561081657600080fd5b5061041061082536600461273c565b600c6020526000908152604090205460ff1681565b34801561084657600080fd5b506104356108553660046127b9565b610f09565b34801561086657600080fd5b5061039c61087536600461273c565b600a6020526000908152604090205481565b34801561089357600080fd5b5060185461065a906001600160a01b031681565b3480156108b357600080fd5b50601b5461065a906001600160a01b031681565b3480156108d357600080fd5b506104106108e23660046126cf565b610f61565b3480156108f357600080fd5b506104356109023660046127a0565b610f6e565b34801561091357600080fd5b5060155461065a906001600160a01b031681565b34801561093357600080fd5b506104356109423660046127e7565b610ffb565b34801561095357600080fd5b5061039c601f5481565b34801561096957600080fd5b5061039c6109783660046127b9565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156109af57600080fd5b506104356109be3660046126cf565b6110ad565b3480156109cf57600080fd5b506104356109de366004612813565b61114d565b3480156109ef57600080fd5b506104356109fe3660046127a0565b611199565b348015610a0f57600080fd5b50610435611226565b348015610a2457600080fd5b50610435610a3336600461273c565b611279565b348015610a4457600080fd5b50610435610a53366004612767565b611311565b348015610a6457600080fd5b50601a5461065a906001600160a01b031681565b348015610a8457600080fd5b50610435611366565b348015610a9957600080fd5b50610410610aa836600461273c565b6001600160a01b03166000908152600f602052604090205460ff1690565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b219086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610b665760405162461bcd60e51b8152600401610b5d90612831565b60405180910390fd5b60026010819055600460118190556012819055610b8d91610b879082611427565b90611427565b601355565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610c3f576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610c1a918490611486565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610c4a8484846114c0565b50600190505b9392505050565b6002546001600160a01b0316600090815260086020526040812054610ca4906001546001600160a01b0316600090815260086020526040902054610c9e90600454906118ac565b906118ac565b905090565b6000546001600160a01b03163314610cd35760405162461bcd60e51b8152600401610b5d90612831565b60405133904780156108fc02916000818181858888f19350505050158015610cff573d6000803e3d6000fd5b50565b6000600754600654610ca4919061287c565b6000546001600160a01b03163314610d3e5760405162461bcd60e51b8152600401610b5d90612831565b60016010819055601181905560086012819055610b8d91610b879080611427565b6000610b2d82600019610ac6565b6000546001600160a01b03163314610d975760405162461bcd60e51b8152600401610b5d90612831565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610dec5760405162461bcd60e51b8152600401610b5d90612831565b6001600160a01b03166000908152600f60205260409020805460ff19169055565b6000546001600160a01b03163314610e375760405162461bcd60e51b8152600401610b5d90612831565b600755565b6000546001600160a01b03163314610e665760405162461bcd60e51b8152600401610b5d90612831565b610e7060006118ee565b565b6000546001600160a01b03163314610e9c5760405162461bcd60e51b8152600401610b5d90612831565b601954610eab90610a8c61287c565b4210610eb657600080fd5b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b6000546001600160a01b03163314610f045760405162461bcd60e51b8152600401610b5d90612831565b601e55565b6000546001600160a01b03163314610f335760405162461bcd60e51b8152600401610b5d90612831565b601580546001600160a01b039384166001600160a01b03199182161790915560168054929093169116179055565b6000610c503384846114c0565b6000546001600160a01b03163314610f985760405162461bcd60e51b8152600401610b5d90612831565b600a600454610fa79190612894565b811015610ff65760405162461bcd60e51b815260206004820152601a60248201527f4d61782077616c6c65742073697a6520697320746f6f206c6f770000000000006044820152606401610b5d565b601c55565b6000546001600160a01b031633146110255760405162461bcd60e51b8152600401610b5d90612831565b600a8311156110465760405162461bcd60e51b8152600401610b5d906128b6565b600a8211156110675760405162461bcd60e51b8152600401610b5d906128b6565b600a8111156110885760405162461bcd60e51b8152600401610b5d906128b6565b6010839055601182905560128190556110a581610b878585611427565b601355505050565b6000546001600160a01b031633146110d75760405162461bcd60e51b8152600401610b5d90612831565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015611124573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114891906128db565b505050565b6000546001600160a01b031633146111775760405162461bcd60e51b8152600401610b5d90612831565b601b8054921515600160a81b0260ff60a81b1990931692909217909155601e55565b6000546001600160a01b031633146111c35760405162461bcd60e51b8152600401610b5d90612831565b60326004546111d29190612894565b8110156112215760405162461bcd60e51b815260206004820152601a60248201527f4d61782077616c6c65742073697a6520697320746f6f206c6f770000000000006044820152606401610b5d565b601d55565b6000546001600160a01b031633146112505760405162461bcd60e51b8152600401610b5d90612831565b601b805460ff60a81b19169055600019601c819055601d55600060118190556012819055601055565b6000546001600160a01b031633146112a35760405162461bcd60e51b8152600401610b5d90612831565b6001600160a01b0381166113085760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b5d565b610cff816118ee565b6000546001600160a01b0316331461133b5760405162461bcd60e51b8152600401610b5d90612831565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113905760405162461bcd60e51b8152600401610b5d90612831565b601854600160a01b900460ff16156113dd5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610b5d565b6018805460ff60a01b1916600160a01b179055426019819055601654601780546001600160a01b0319166001600160a01b0390921691909117905560006005556004601255600655565b600080611434838561287c565b905083811015610c505760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b5d565b600081848411156114aa5760405162461bcd60e51b8152600401610b5d9190612665565b5060006114b784866128f8565b95945050505050565b6001600160a01b0383166000908152600f602052604081205460ff16151560011480159061150c57506001600160a01b0383166000908152600f602052604090205460ff161515600114155b6115465760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610b5d565b601b54600160a01b900460ff161561156a5761156384848461193e565b9050610c50565b601b546001600160a01b0316331480159061158f5750601b54600160a01b900460ff16155b80156115a45750601b54600160a81b900460ff165b80156115c15750601e543060009081526008602052604090205410155b156115ce576115ce611a24565b6115d9848484611e65565b6115e384846123fb565b1561161e5760405162461bcd60e51b815260206004820152600b60248201526a111bdb89dd0818da19585d60aa1b6044820152606401610b5d565b6001600160a01b0384166000908152600d602052604081205460ff1615801561166057506001600160a01b0384166000908152600d602052604090205460ff16155b61166a5782611675565b611675858585612486565b601854909150600160a01b900460ff1615156001148015906116a55750601b546001600160a01b03858116911614155b80156116bf57506000546001600160a01b03868116911614155b80156116d957506000546001600160a01b03858116911614155b15611757576001600160a01b0384166000908152600860205260409020546117019082611427565b6001600160a01b03808616600090815260086020526040808220939093559087168152205461173090846118ac565b6001600160a01b03861660009081526008602052604090205561175284610eb6565b611861565b6000546001600160a01b038681169116148061178057506000546001600160a01b038581169116145b156117f5576001600160a01b0384166000908152600860205260409020546117a89082611427565b6001600160a01b0380861660009081526008602052604080822093909355908716815220546117d790846118ac565b6001600160a01b038616600090815260086020526040902055611861565b6001600160a01b0384166000908152600860205260409020546118189082611427565b6001600160a01b03808616600090815260086020526040808220939093559087168152205461184790846118ac565b6001600160a01b0386166000908152600860205260409020555b6040518181526001600160a01b0385169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3506001949350505050565b6000610c5083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611486565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461198f918490611486565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546119be9083611427565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611a129086815260200190565b60405180910390a35060019392505050565b601b805460ff60a01b1916600160a01b179055601e54601354601054600091611a5d91600291611a579182908790612549565b906125c8565b90506000611a6b83836118ac565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611aa557611aa5612925565b6001600160a01b03928316602091820292909201810191909152601a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611afe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b22919061293b565b81600181518110611b3557611b35612925565b6001600160a01b039283166020918202929092010152601a5460405163791ac94760e01b815291169063791ac94790611b7b90859060009086903090429060040161299c565b600060405180830381600087803b158015611b9557600080fd5b505af1158015611ba9573d6000803e3d6000fd5b505060105447925060009150611bcd90611bc49060026125c8565b601354906118ac565b90506000611bea82611a576011548661254990919063ffffffff16565b90506000611c0783611a576012548761254990919063ffffffff16565b90506000611c296002611a5786611a576010548a61254990919063ffffffff16565b6016546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611c80576040519150601f19603f3d011682016040523d82523d6000602084013e611c85565b606091505b50506017546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611cde576040519150601f19603f3d011682016040523d82523d6000602084013e611ce3565b606091505b5050601780546001600160a01b039081166000908152600b602090815260408083208a9055845484168352600c8252808320805460ff19166001179055845484168352600a82529182902042905592548151921682529181018790529192507f887dd9f57395c2e1e0dea455ae76bf56410b19b3131f2a590aab0b29b3683632910160405180910390a15060009050808915611e4b57601a5460155460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015611de9573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e0e91906129d8565b505060408051858152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601b805460ff60a01b19169055505050505050505050565b600754600654611e7590426128f8565b1115611e8357611e8361260a565b6000546001600160a01b03848116911614801590611eaf57506000546001600160a01b03838116911614155b8015611ed457506001600160a01b0382166000908152600e602052604090205460ff16155b8015611eee57506002546001600160a01b03838116911614155b8015611f0857506001546001600160a01b03838116911614155b8015611f225750601b546001600160a01b03838116911614155b8015611f3757506001600160a01b0382163014155b156122d357601c54811115611f775760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b6044820152606401610b5d565b6001600160a01b038216600090815260086020526040902054601d54611f9d838361287c565b1115611ff75760405162461bcd60e51b815260206004820152602360248201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152621d5b9d60ea1b6064820152608401610b5d565b6040805160028082526060820183526000926020830190803683375050601a54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015612061573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612085919061293b565b8160008151811061209857612098612925565b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106120cc576120cc612925565b6001600160a01b039283166020918202929092010152601a546040516307c0329d60e21b81526000929190911690631f00ca74906121109087908690600401612a06565b600060405180830381865afa15801561212d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526121559190810190612a27565b60008151811061216757612167612925565b6020908102919091018101516001600160a01b0387166000908152600c90925260409091205490915060ff16151560011480156121c857506001600160a01b0385166000908152600a602052604090205442906121c690612a3061287c565b105b80156121d5575060055481115b1561223f57601780546001600160a01b0319166001600160a01b03871690811790915560058290554260065560408051918252602082018390527f735208e3a5b6390fd1d199ec98f6689564f9d7fef06323849704a8856eeed5f4910160405180910390a16122cf565b6001600160a01b0385166000908152600c602052604090205460ff16158015612269575060055481115b156122cf57601780546001600160a01b0319166001600160a01b03871690811790915560058290554260065560408051918252602082018390527f735208e3a5b6390fd1d199ec98f6689564f9d7fef06323849704a8856eeed5f4910160405180910390a15b5050505b6000546001600160a01b038481169116148015906122ff57506000546001600160a01b03838116911614155b801561232457506001600160a01b0383166000908152600e602052604090205460ff16155b801561233e5750601b546001600160a01b03848116911614155b801561235357506001600160a01b0382163014155b1561114857601c548111156123935760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b6044820152606401610b5d565b6017546001600160a01b038481169116141561114857601754600554604080516001600160a01b03909316835260208301919091527fec798f0f5328ec01f1d48922c12f488ecde2dae7402c814510a37d505cbdbb2a910160405180910390a161114861260a565b6001600160a01b0382166000908152600d602052604081205460ff168061243a57506001600160a01b0382166000908152600d602052604090205460ff165b1561244757506000610b2d565b601b546001600160a01b03848116911614806124705750601b546001600160a01b038381169116145b1561247d57506000610b2d565b50600192915050565b601b5460009081906001600160a01b038581169116146124a8576013546124ac565b6014545b905060006124bf6064611a578685612549565b306000908152600860205260409020549091506124dc9082611427565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061252d9085815260200190565b60405180910390a361253f84826118ac565b9695505050505050565b60008261255857506000610b2d565b60006125648385612ae5565b9050826125718583612894565b14610c505760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b5d565b6000610c5083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612637565b601654601780546001600160a01b0319166001600160a01b03909216919091179055600060055542600655565b600081836126585760405162461bcd60e51b8152600401610b5d9190612665565b5060006114b78486612894565b600060208083528351808285015260005b8181101561269257858101830151858201604001528201612676565b818111156126a4576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610cff57600080fd5b600080604083850312156126e257600080fd5b82356126ed816126ba565b946020939093013593505050565b60008060006060848603121561271057600080fd5b833561271b816126ba565b9250602084013561272b816126ba565b929592945050506040919091013590565b60006020828403121561274e57600080fd5b8135610c50816126ba565b8015158114610cff57600080fd5b6000806040838503121561277a57600080fd5b8235612785816126ba565b9150602083013561279581612759565b809150509250929050565b6000602082840312156127b257600080fd5b5035919050565b600080604083850312156127cc57600080fd5b82356127d7816126ba565b91506020830135612795816126ba565b6000806000606084860312156127fc57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561282657600080fd5b82356126ed81612759565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561288f5761288f612866565b500190565b6000826128b157634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600b908201526a496e76616c69642066656560a81b604082015260600190565b6000602082840312156128ed57600080fd5b8151610c5081612759565b60008282101561290a5761290a612866565b500390565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561294d57600080fd5b8151610c50816126ba565b600081518084526020808501945080840160005b838110156129915781516001600160a01b03168752958201959082019060010161296c565b509495945050505050565b85815284602082015260a0604082015260006129bb60a0830186612958565b6001600160a01b0394909416606083015250608001529392505050565b6000806000606084860312156129ed57600080fd5b8351925060208401519150604084015190509250925092565b828152604060208201526000612a1f6040830184612958565b949350505050565b60006020808385031215612a3a57600080fd5b825167ffffffffffffffff80821115612a5257600080fd5b818501915085601f830112612a6657600080fd5b815181811115612a7857612a7861290f565b8060051b604051601f19603f83011681018181108582111715612a9d57612a9d61290f565b604052918252848201925083810185019188831115612abb57600080fd5b938501935b82851015612ad957845184529385019392850192612ac0565b98975050505050505050565b6000816000190483118215151615612aff57612aff612866565b50029056fea264697066735822122037cd66f0c310af6f3af2beaa10f2c9e284956682d17f7f7144f69c51fd58296064736f6c634300080c0033

Deployed Bytecode Sourcemap

6740:16242:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8520:49;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8520:49:0;;;;;;;;9827:94;;;;;;;;;;-1:-1:-1;9908:5:0;;;;;;;;;;;;-1:-1:-1;;;9908:5:0;;;;9827:94;;;;;;;:::i;11729:248::-;;;;;;;;;;-1:-1:-1;11729:248:0;;;;;:::i;:::-;;:::i;:::-;;;1419:14:1;;1412:22;1394:41;;1382:2;1367:18;11729:248:0;1254:187:1;13369:200:0;;;;;;;;;;;;;:::i;:::-;;10239:102;;;;;;;;;;-1:-1:-1;10321:12:0;;10239:102;;17259:423;;;;;;;;;;-1:-1:-1;17259:423:0;;;;;:::i;:::-;;:::i;10349:142::-;;;;;;;;;;;;;:::i;10035:94::-;;;;;;;;;;-1:-1:-1;10035:94:0;;6930:2;2049:36:1;;2037:2;2022:18;10035:94:0;1907:184:1;22691:115:0;;;;;;;;;;;;;:::i;13045:108::-;;;;;;;;;;;;;:::i;7666:43::-;;;;;;;;;;-1:-1:-1;7666:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7955:27;;;;;;;;;;;;;;;;8366:40;;;;;;;;;;-1:-1:-1;8366:40:0;;;;-1:-1:-1;;;8366:40:0;;;;;;13161:200;;;;;;;;;;;;;:::i;11985:108::-;;;;;;;;;;-1:-1:-1;11985:108:0;;;;;:::i;:::-;;:::i;12101:119::-;;;;;;;;;;-1:-1:-1;12101:119:0;;;;;:::i;:::-;;:::i;14435:106::-;;;;;;;;;;-1:-1:-1;14435:106:0;;;;;:::i;:::-;;:::i;7917:31::-;;;;;;;;;;;;;;;;8462:51;;;;;;;;;;;;;;;;10499:119;;;;;;;;;;-1:-1:-1;10499:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;10592:18:0;10565:7;10592:18;;;:9;:18;;;;;;;10499:119;12747:146;;;;;;;;;;-1:-1:-1;12747:146:0;;;;;:::i;:::-;;:::i;5993:94::-;;;;;;;;;;;;;:::i;8112:30::-;;;;;;;;;;-1:-1:-1;8112:30:0;;;;-1:-1:-1;;;;;8112:30:0;;;;;;-1:-1:-1;;;;;3207:32:1;;;3189:51;;3177:2;3162:18;8112:30:0;3043:203:1;8413:42:0;;;;;;;;;;;;;;;;7560;;;;;;;;;;-1:-1:-1;7560:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;8149:19;;;;;;;;;;-1:-1:-1;8149:19:0;;;;-1:-1:-1;;;;;8149:19:0;;;10137:94;;;;;;;;;;-1:-1:-1;10189:7:0;5415:6;-1:-1:-1;;;;;5415:6:0;10137:94;10349:142;7716:47;;;;;;;;;;-1:-1:-1;7716:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7272:29;;;;;;;;;;;;;;;;7348:39;;;;;;;;;;;;;;;;9929:98;;;;;;;;;;-1:-1:-1;10012:7:0;;;;;;;;;;;;-1:-1:-1;;;10012:7:0;;;;9929:98;;7879:31;;;;;;;;;;;;;;;;14262:165;;;;;;;;;;-1:-1:-1;14262:165:0;;;;;:::i;:::-;;:::i;12386:108::-;;;;;;;;;;-1:-1:-1;12386:108:0;;;;;:::i;:::-;;:::i;8213:31::-;;;;;;;;;;-1:-1:-1;8213:31:0;;;;-1:-1:-1;;;8213:31:0;;;;;;7308:33;;;;;;;;;;;;;;;;7609:50;;;;;;;;;;-1:-1:-1;7609:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12502:237;;;;;;;;;;-1:-1:-1;12502:237:0;;;;;:::i;:::-;;:::i;7504:49::-;;;;;;;;;;-1:-1:-1;7504:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;8175:29;;;;;;;;;;-1:-1:-1;8175:29:0;;;;-1:-1:-1;;;;;8175:29:0;;;8310:19;;;;;;;;;;-1:-1:-1;8310:19:0;;;;-1:-1:-1;;;;;8310:19:0;;;17063:188;;;;;;;;;;-1:-1:-1;17063:188:0;;;;;:::i;:::-;;:::i;14072:182::-;;;;;;;;;;-1:-1:-1;14072:182:0;;;;;:::i;:::-;;:::i;8069:36::-;;;;;;;;;;-1:-1:-1;8069:36:0;;;;-1:-1:-1;;;;;8069:36:0;;;10852:673;;;;;;;;;;-1:-1:-1;10852:673:0;;;;;:::i;:::-;;:::i;8576:29::-;;;;;;;;;;;;;;;;11533:188;;;;;;;;;;-1:-1:-1;11533:188:0;;;;;:::i;:::-;-1:-1:-1;;;;;11685:19:0;;;11653:7;11685:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;11533:188;22814:165;;;;;;;;;;-1:-1:-1;22814:165:0;;;;;:::i;:::-;;:::i;16837:218::-;;;;;;;;;;-1:-1:-1;16837:218:0;;;;;:::i;:::-;;:::i;13882:182::-;;;;;;;;;;-1:-1:-1;13882:182:0;;;;;:::i;:::-;;:::i;10626:218::-;;;;;;;;;;;;;:::i;6242:192::-;;;;;;;;;;-1:-1:-1;6242:192:0;;;;;:::i;:::-;;:::i;12228:150::-;;;;;;;;;;-1:-1:-1;12228:150:0;;;;;:::i;:::-;;:::i;8279:24::-;;;;;;;;;;-1:-1:-1;8279:24:0;;;;-1:-1:-1;;;;;8279:24:0;;;13577:297;;;;;;;;;;;;;:::i;14549:120::-;;;;;;;;;;-1:-1:-1;14549:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;14636:25:0;14612:4;14636:25;;;:16;:25;;;;;;;;;14549:120;11729:248;11865:10;11831:4;11853:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;11853:32:0;;;;;;;;;;:41;;;11910:37;11831:4;;11853:32;;11910:37;;;;11888:6;160:25:1;;148:2;133:18;;14:177;11910:37:0;;;;;;;;-1:-1:-1;11965:4:0;11729:248;;;;;:::o;13369:200::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;;;;;;;;;13446:1:::1;13431:12;:16:::0;;;13473:1:::1;13458:12;:16:::0;;;13485:7:::1;:11:::0;;;13518:43:::1;::::0;:30:::1;::::0;13473:1;13518:16:::1;:30::i;:::-;:34:::0;::::1;:43::i;:::-;13507:8;:54:::0;13369:200::o;17259:423::-;-1:-1:-1;;;;;17414:19:0;;17393:4;17414:19;;;:11;:19;;;;;;;;17434:10;17414:31;;;;;;;;-1:-1:-1;;17414:38:0;17410:192;;17503:87;;;;;;;;;;;-1:-1:-1;;;17503:87:0;;;;;;;;-1:-1:-1;;;;;17503:19:0;;-1:-1:-1;17503:19:0;;;:11;:19;;;;;17523:10;17503:31;;;;;;;;;;:87;;17557:6;;17503:53;:87::i;:::-;-1:-1:-1;;;;;17469:19:0;;;;;;:11;:19;;;;;;;;17489:10;17469:31;;;;;;;:121;17410:192;17612:40;17626:6;17634:9;17645:6;17612:13;:40::i;:::-;;17670:4;17663:11;;17259:423;;;;;;:::o;10349:142::-;10477:4;;-1:-1:-1;;;;;10477:4:0;10402:7;10592:18;;;:9;:18;;;;;;10429:54;;10456:4;;-1:-1:-1;;;;;10456:4:0;10565:7;10592:18;;;:9;:18;;;;;;10429:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;10422:61;;10349:142;:::o;22691:115::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;22747:51:::1;::::0;22755:10:::1;::::0;22776:21:::1;22747:51:::0;::::1;;;::::0;::::1;::::0;;;22776:21;22755:10;22747:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22691:115::o:0;13045:108::-;13090:7;13134:11;;13117:14;;:28;;;;:::i;13161:200::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;13238:1:::1;13223:12;:16:::0;;;13250:12:::1;:16:::0;;;13287:1:::1;13277:7;:11:::0;;;13310:43:::1;::::0;:30:::1;::::0;13238:1;13310:16:::1;:30::i;11985:108::-:0;12040:4;12064:21;12072:7;-1:-1:-1;;12064:7:0;:21::i;12101:119::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12184:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;12184:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12101:119::o;14435:106::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14505:22:0::1;14528:5;14505:22:::0;;;:16:::1;:22;::::0;;;;:28;;-1:-1:-1;;14505:28:0::1;::::0;;14435:106::o;12747:146::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;12857:11:::1;:28:::0;12747:146::o;5993:94::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;6058:21:::1;6076:1;6058:9;:21::i;:::-;5993:94::o:0;14262:165::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;14354:11:::1;::::0;:24:::1;::::0;14368:10:::1;14354:24;:::i;:::-;14336:15;:42;14328:51;;;::::0;::::1;;-1:-1:-1::0;;;;;14390:22:0::1;;::::0;;;:16:::1;:22;::::0;;;;:27;;-1:-1:-1;;14390:27:0::1;14413:4;14390:27;::::0;;14262:165::o;12386:108::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;12461:13:::1;:25:::0;12386:108::o;12502:237::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;12640:21:::1;:44:::0;;-1:-1:-1;;;;;12640:44:0;;::::1;-1:-1:-1::0;;;;;;12640:44:0;;::::1;;::::0;;;12695:15:::1;:36:::0;;;;;::::1;::::0;::::1;;::::0;;12502:237::o;17063:188::-;17170:4;17199:44;17213:10;17225:9;17236:6;17199:13;:44::i;14072:182::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;14179:2:::1;14165:12;;:16;;;;:::i;:::-;14157:6;:24;;14149:63;;;::::0;-1:-1:-1;;;14149:63:0;;5555:2:1;14149:63:0::1;::::0;::::1;5537:21:1::0;5594:2;5574:18;;;5567:30;5633:28;5613:18;;;5606:56;5679:18;;14149:63:0::1;5353:350:1::0;14149:63:0::1;14223:12;:21:::0;14072:182::o;10852:673::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;11068:2:::1;11049:15;:21;;11003:106;;;;-1:-1:-1::0;;;11003:106:0::1;;;;;;;:::i;:::-;11187:2;11168:15;:21;;11122:106;;;;-1:-1:-1::0;;;11122:106:0::1;;;;;;;:::i;:::-;11296:2;11282:10;:16;;11241:96;;;;-1:-1:-1::0;;;11241:96:0::1;;;;;;;:::i;:::-;11350:12;:30:::0;;;11391:12:::1;:30:::0;;;11432:7:::1;:20:::0;;;11474:43:::1;11442:10:::0;11474:30:::1;11365:15:::0;11406;11474:16:::1;:30::i;:43::-;11463:8;:54:::0;-1:-1:-1;;;10852:673:0:o;22814:165::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;22927:44:::1;::::0;-1:-1:-1;;;22927:44:0;;22951:10:::1;22927:44;::::0;::::1;6222:51:1::0;6289:18;;;6282:34;;;-1:-1:-1;;;;;22927:23:0;::::1;::::0;::::1;::::0;6195:18:1;;22927:44:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22814:165:::0;;:::o;16837:218::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;16966:21:::1;:38:::0;;;::::1;;-1:-1:-1::0;;;16966:38:0::1;-1:-1:-1::0;;;;16966:38:0;;::::1;::::0;;;::::1;::::0;;;17015:13:::1;:32:::0;16837:218::o;13882:182::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;13985:2:::1;13970:12;;:17;;;;:::i;:::-;13962:6;:25;;13954:64;;;::::0;-1:-1:-1;;;13954:64:0;;5555:2:1;13954:64:0::1;::::0;::::1;5537:21:1::0;5594:2;5574:18;;;5567:30;5633:28;5613:18;;;5606:56;5679:18;;13954:64:0::1;5353:350:1::0;13954:64:0::1;14029:16;:25:::0;13882:182::o;10626:218::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;10681:21:::1;:27:::0;;-1:-1:-1;;;;10681:27:0::1;::::0;;-1:-1:-1;;10719:12:0::1;:16:::0;;;10746::::1;:20:::0;10703:5:::1;10777:12;:14:::0;;;10802:7:::1;:9:::0;;;10822:12:::1;:14:::0;10626:218::o;6242:192::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6331:22:0;::::1;6323:73;;;::::0;-1:-1:-1;;;6323:73:0;;6779:2:1;6323: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;;6323:73:0::1;6577:402:1::0;6323:73:0::1;6407:19;6417:8;6407:9;:19::i;12228:150::-:0;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12338:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;12338:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12228:150::o;13577:297::-;5388:7;5415:6;-1:-1:-1;;;;;5415:6:0;4298:10;5562:23;5554:68;;;;-1:-1:-1;;;5554:68:0;;;;;;;:::i;:::-;13633:11:::1;::::0;-1:-1:-1;;;13633:11:0;::::1;;;:20;13624:50;;;::::0;-1:-1:-1;;;13624:50:0;;7186:2:1;13624: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;;13624:50:0::1;6984:340:1::0;13624:50:0::1;13685:11;:18:::0;;-1:-1:-1;;;;13685:18:0::1;-1:-1:-1::0;;;13685:18:0::1;::::0;;13728:15:::1;13714:11;:29:::0;;;13761:15:::1;::::0;13754:4:::1;:22:::0;;-1:-1:-1;;;;;;13754:22:0::1;-1:-1:-1::0;;;;;13761:15:0;;::::1;13754:22:::0;;;::::1;::::0;;13685:18;13787:10:::1;:14:::0;13822:1:::1;-1:-1:-1::0;13812:11:0;-1:-1:-1;13834:32:0;13577:297::o;94:179::-;152:7;;184:5;188:1;184;:5;:::i;:::-;172:17;;213:1;208;:6;;200:46;;;;-1:-1:-1;;;200:46:0;;7531:2:1;200:46:0;;;7513:21:1;7570:2;7550:18;;;7543:30;7609:29;7589:18;;;7582:57;7656:18;;200:46:0;7329:351:1;425:224:0;545:7;581:12;573:6;;;;565:29;;;;-1:-1:-1;;;565:29:0;;;;;;;;:::i;:::-;-1:-1:-1;605:9:0;617:5;621:1;617;:5;:::i;:::-;605:17;425:224;-1:-1:-1;;;;;425:224:0:o;17690:1687::-;-1:-1:-1;;;;;17841:24:0;;17816:4;17841:24;;;:16;:24;;;;;;;;:30;;:24;:30;;;;:67;;-1:-1:-1;;;;;;17875:27:0;;;;;;:16;:27;;;;;;;;:33;;:27;:33;;17841:67;17833:91;;;;-1:-1:-1;;;17833:91:0;;8017:2:1;17833:91:0;;;7999:21:1;8056:2;8036:18;;;8029:30;-1:-1:-1;;;8075:18:1;;;8068:41;8126:18;;17833:91:0;7815:335:1;17833:91:0;17939:16;;-1:-1:-1;;;17939:16:0;;;;17935:97;;;17979:41;17994:6;18002:9;18013:6;17979:14;:41::i;:::-;17972:48;;;;17935:97;18074:4;;-1:-1:-1;;;;;18074:4:0;18060:10;:18;;;;:52;;-1:-1:-1;18096:16:0;;-1:-1:-1;;;18096:16:0;;;;18095:17;18060:52;:90;;;;-1:-1:-1;18129:21:0;;-1:-1:-1;;;18129:21:0;;;;18060:90;:148;;;;-1:-1:-1;18195:13:0;;18185:4;18167:24;;;;:9;:24;;;;;;:41;;18060:148;18042:215;;;18235:10;:8;:10::i;:::-;18267:40;18281:6;18289:9;18300:6;18267:13;:40::i;:::-;18327:35;18344:6;18352:9;18327:16;:35::i;:::-;18326:36;18318:60;;;;-1:-1:-1;;;18318:60:0;;8357:2:1;18318:60:0;;;8339:21:1;8396:2;8376:18;;;8369:30;-1:-1:-1;;;8415:18:1;;;8408:41;8466:18;;18318:60:0;8155:335:1;18318:60:0;-1:-1:-1;;;;;18417:19:0;;18391:22;18417:19;;;:11;:19;;;;;;;;18416:20;:47;;;;-1:-1:-1;;;;;;18441:22:0;;;;;;:11;:22;;;;;;;;18440:23;18416:47;:119;;18529:6;18416:119;;;18479:34;18487:6;18495:9;18506:6;18479:7;:34::i;:::-;18552:11;;18391:144;;-1:-1:-1;;;;18552:11:0;;;;:18;;18566:4;18552:18;;;;:38;;-1:-1:-1;18586:4:0;;-1:-1:-1;;;;;18574:16:0;;;18586:4;;18574:16;;18552:38;:57;;;;-1:-1:-1;5388:7:0;5415:6;-1:-1:-1;;;;;18594:15:0;;;5415:6;;18594:15;;18552:57;:79;;;;-1:-1:-1;5388:7:0;5415:6;-1:-1:-1;;;;;18613:18:0;;;5415:6;;18613:18;;18552:79;18548:737;;;-1:-1:-1;;;;;18681:20:0;;;;;;:9;:20;;;;;;:40;;18706:14;18681:24;:40::i;:::-;-1:-1:-1;;;;;18658:20:0;;;;;;;:9;:20;;;;;;:63;;;;18756:17;;;;;;;:29;;18778:6;18756:21;:29::i;:::-;-1:-1:-1;;;;;18736:17:0;;;;;;:9;:17;;;;;:49;18823:24;18837:9;18823:13;:24::i;:::-;18548:737;;;5388:7;5415:6;-1:-1:-1;;;;;18878:15:0;;;5415:6;;18878:15;;:37;;-1:-1:-1;5388:7:0;5415:6;-1:-1:-1;;;;;18897:18:0;;;5415:6;;18897:18;18878:37;18874:411;;;-1:-1:-1;;;;;18965:20:0;;;;;;:9;:20;;;;;;:40;;18990:14;18965:24;:40::i;:::-;-1:-1:-1;;;;;18942:20:0;;;;;;;:9;:20;;;;;;:63;;;;19040:17;;;;;;;:29;;19062:6;19040:21;:29::i;:::-;-1:-1:-1;;;;;19020:17:0;;;;;;:9;:17;;;;;:49;18874:411;;;-1:-1:-1;;;;;19168:20:0;;;;;;:9;:20;;;;;;:40;;19193:14;19168:24;:40::i;:::-;-1:-1:-1;;;;;19145:20:0;;;;;;;:9;:20;;;;;;:63;;;;19244:17;;;;;;;:29;;19266:6;19244:21;:29::i;:::-;-1:-1:-1;;;;;19224:17:0;;;;;;:9;:17;;;;;:49;18874:411;19300:47;;160:25:1;;;-1:-1:-1;;;;;19300:47:0;;;19309:10;;19300:47;;148:2:1;133:18;19300:47:0;;;;;;;-1:-1:-1;19365:4:0;;17690:1687;-1:-1:-1;;;;17690:1687:0:o;281:136::-;339:7;366:43;370:1;373;366:43;;;;;;;;;;;;;;;;;:3;:43::i;6442:173::-;6498:16;6517:6;;-1:-1:-1;;;;;6534:17:0;;;-1:-1:-1;;;;;;6534:17:0;;;;;;6567:40;;6517:6;;;;;;;6567:40;;6498:16;6567:40;6487:128;6442:173;:::o;19385:401::-;19549:90;;;;;;;;;;;-1:-1:-1;;;19549:90:0;;;;;;;;-1:-1:-1;;;;;19549:17:0;;19512:4;19549:17;;;:9;:17;;;;;;;:90;;19585:6;;19549:21;:90::i;:::-;-1:-1:-1;;;;;19529:17:0;;;;;;;:9;:17;;;;;;:110;;;;19673:20;;;;;;;:32;;19698:6;19673:24;:32::i;:::-;-1:-1:-1;;;;;19650:20:0;;;;;;;:9;:20;;;;;;;:55;;;;19721:35;;;;;;;;;;19749:6;160:25:1;;148:2;133:18;;14:177;19721:35:0;;;;;;;;-1:-1:-1;19774:4:0;19385:401;;;;;:::o;20637:2046::-;8648:16;:23;;-1:-1:-1;;;;8648:23:0;-1:-1:-1;;;8648:23:0;;;20778:13:::1;::::0;20894:8:::1;::::0;20862:12:::1;::::0;8648:23;;20828:96:::1;::::0;20922:1:::1;::::0;20828:75:::1;::::0;;;20778:13;;20828:33:::1;:47::i;:::-;:65:::0;::::1;:75::i;:96::-;20802:122:::0;-1:-1:-1;20935:20:0::1;20958:36;:15:::0;20802:122;20958:19:::1;:36::i;:::-;21031:16;::::0;;21045:1:::1;21031:16:::0;;;;;::::1;::::0;;20935:59;;-1:-1:-1;21007:21:0::1;::::0;21031:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;21031:16:0::1;21007:40;;21076:4;21058;21063:1;21058:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21058:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;21102:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;21102:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;21058:7;;21102:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21092:4;21097:1;21092:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21092:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;21128:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;21128:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;21200:12;;21128:6:::1;::::0;21243:4;;21270::::1;::::0;21290:15:::1;::::0;21128:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;21416:12:0::1;::::0;21349:21:::1;::::0;-1:-1:-1;21329:17:0::1;::::0;-1:-1:-1;21403:33:0::1;::::0;21416:19:::1;::::0;21433:1:::1;21416:16;:19::i;:::-;21403:8;::::0;;:12:::1;:33::i;:::-;21381:55;;21447:26;21476:68;21522:11;21476:27;21490:12;;21476:9;:13;;:27;;;;:::i;:68::-;21447:97;;21555:21;21579:39;21606:11;21579:22;21593:7;;21579:9;:13;;:22;;;;:::i;:39::-;21555:63;;21629:26;21658:93;21749:1;21658:72;21718:11;21658:41;21686:12;;21658:9;:27;;:41;;;;:::i;:93::-;21794:15;::::0;21786:109:::1;::::0;21629:122;;-1:-1:-1;21765:15:0::1;::::0;-1:-1:-1;;;;;21794:15:0;;::::1;::::0;21875:5:::1;::::0;21837:18;;21765:15;21786:109;21765:15;21786:109;21837:18;21794:15;21875:5;21786:109:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;21937:4:0::1;::::0;21929:93:::1;::::0;21764:131;;-1:-1:-1;21907:16:0::1;::::0;-1:-1:-1;;;;;21937:4:0;;::::1;::::0;22002:5:::1;::::0;21969:13;;21907:16;21929:93;21907:16;21929:93;21969:13;21937:4;22002:5;21929:93:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;22043:4:0::1;::::0;;-1:-1:-1;;;;;22043:4:0;;::::1;22035:13;::::0;;;:7:::1;:13;::::0;;;;;;;:27;;;22092:4;;;::::1;22073:24:::0;;:18:::1;:24:::0;;;;;:29;;-1:-1:-1;;22073:29:0::1;22043:4:::0;22073:29:::1;::::0;;22128:4;;;::::1;22113:20:::0;;:14:::1;:20:::0;;;;;;22136:15:::1;22113:38:::0;;22178:4;;22167:31;;22178:4;::::1;6222:51:1::0;;6289:18;;;6282:34;;;21906:116:0;;-1:-1:-1;22167:31:0::1;::::0;6195:18:1;22167:31:0::1;;;;;;;-1:-1:-1::0;22264:5:0::1;::::0;-1:-1:-1;22264:5:0;22316:19;;22312:364:::1;;22352:6;::::0;22526:21:::1;::::0;22352:244:::1;::::0;-1:-1:-1;;;22352:244:0;;22428:4:::1;22352:244;::::0;::::1;10619:34:1::0;10669:18;;;10662:34;;;22352:6:0::1;10712:18:1::0;;;10705:34;;;10755:18;;;10748:34;-1:-1:-1;;;;;22526:21:0;;::::1;10798:19:1::0;;;10791:44;22566:15:0::1;10851:19:1::0;;;10844:35;22352:6:0;::::1;::::0;:22:::1;::::0;22382:18;;10553:19:1;;22352:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;22616:48:0::1;::::0;;11375:25:1;;;11431:2;11416:18;;11409:34;;;22616:48:0::1;::::0;-1:-1:-1;11348:18:1;22616:48:0::1;;;;;;;22312:364;-1:-1:-1::0;;8694:16:0;:24;;-1:-1:-1;;;;8694:24:0;;;-1:-1:-1;;;;;;;;;20637:2046:0:o;14778:2051::-;14945:11;;14928:14;;14910:32;;:15;:32;:::i;:::-;:46;14906:87;;;14973:8;:6;:8::i;:::-;5388:7;5415:6;-1:-1:-1;;;;;15021:17:0;;;5415:6;;15021:17;;;;:54;;-1:-1:-1;5388:7:0;5415:6;-1:-1:-1;;;;;15055:20:0;;;5415:6;;15055:20;;15021:54;:98;;;;-1:-1:-1;;;;;;15093:26:0;;;;;;:15;:26;;;;;;;;15092:27;15021:98;:132;;;;-1:-1:-1;15149:4:0;;-1:-1:-1;;;;;15136:17:0;;;15149:4;;15136:17;;15021:132;:166;;;;-1:-1:-1;15183:4:0;;-1:-1:-1;;;;;15170:17:0;;;15183:4;;15170:17;;15021:166;:200;;;;-1:-1:-1;15217:4:0;;-1:-1:-1;;;;;15204:17:0;;;15217:4;;15204:17;;15021:200;:243;;;;-1:-1:-1;;;;;;15238:26:0;;15259:4;15238:26;;15021:243;15003:1412;;;15309:12;;15299:6;:22;;15291:41;;;;-1:-1:-1;;;15291:41:0;;11656:2:1;15291:41:0;;;11638:21:1;11695:1;11675:18;;;11668:29;-1:-1:-1;;;11713:18:1;;;11706:36;11759:18;;15291:41:0;11454:329:1;15291:41:0;-1:-1:-1;;;;;10592:18:0;;15347:32;10592:18;;;:9;:18;;;;;;15480:16;;15443:33;15470:6;10592:18;15443:33;:::i;:::-;:53;;15417:150;;;;-1:-1:-1;;;15417:150:0;;11990:2:1;15417: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;;15417:150:0;11788:399:1;15417:150:0;15608:16;;;15622:1;15608:16;;;;;;;;15584:21;;15608:16;;;;;;;;-1:-1:-1;;15649:6:0;;:13;;;-1:-1:-1;;;15649:13:0;;;;15584:40;;-1:-1:-1;;;;;;15649:6:0;;;;:11;;-1:-1:-1;15649:13:0;;;;;;;;;;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15639:4;15644:1;15639:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;15639:23:0;;;-1:-1:-1;;;;;15639:23:0;;;;;15695:4;15677;15682:1;15677:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15677:23:0;;;:7;;;;;;;;;:23;15733:6;;:33;;-1:-1:-1;;;15733:33:0;;15715:15;;15733:6;;;;;:19;;:33;;15753:6;;15761:4;;15733:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15733:33:0;;;;;;;;;;;;:::i;:::-;15767:1;15733:36;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;15790:29:0;;;;;;:18;:29;;;;;;;;15733:36;;-1:-1:-1;15790:29:0;;:35;;:29;:35;:92;;;;-1:-1:-1;;;;;;15829:25:0;;;;;;:14;:25;;;;;;15867:15;;15829:35;;15857:7;15829:35;:::i;:::-;:53;15790:92;:116;;;;;15896:10;;15886:7;:20;15790:116;15786:618;;;15941:4;:16;;-1:-1:-1;;;;;;15941:16:0;-1:-1:-1;;;;;15941:16:0;;;;;;;;15976:10;:20;;;16032:15;16015:14;:32;16071:25;;;6222:51:1;;;6304:2;6289:18;;6282:34;;;16071:25:0;;6195:18:1;16071:25:0;;;;;;;15786:618;;;-1:-1:-1;;;;;16137:29:0;;;;;;:18;:29;;;;;;;;:36;;;:61;;;16188:10;;16178:7;:20;16137:61;16133:271;;;16233:4;:16;;-1:-1:-1;;;;;;16233:16:0;-1:-1:-1;;;;;16233:16:0;;;;;;;;16268:10;:20;;;16324:15;16307:14;:32;16363:25;;;6222:51:1;;;6304:2;6289:18;;6282:34;;;16363:25:0;;6195:18:1;16363:25:0;;;;;;;16133:271;15276:1139;;;15003:1412;5388:7;5415:6;-1:-1:-1;;;;;16443:17:0;;;5415:6;;16443:17;;;;:54;;-1:-1:-1;5388:7:0;5415:6;-1:-1:-1;;;;;16477:20:0;;;5415:6;;16477:20;;16443:54;:95;;;;-1:-1:-1;;;;;;16515:23:0;;;;;;:15;:23;;;;;;;;16514:24;16443:95;:126;;;;-1:-1:-1;16565:4:0;;-1:-1:-1;;;;;16555:14:0;;;16565:4;;16555:14;;16443:126;:169;;;;-1:-1:-1;;;;;;16586:26:0;;16607:4;16586:26;;16443:169;16425:397;;;16657:12;;16647:6;:22;;16639:41;;;;-1:-1:-1;;;16639:41:0;;11656:2:1;16639:41:0;;;11638:21:1;11695:1;11675:18;;;11668:29;-1:-1:-1;;;11713:18:1;;;11706:36;11759:18;;16639:41:0;11454:329:1;16639:41:0;16699:4;;-1:-1:-1;;;;;16699:14:0;;;:4;;:14;16695:113;;;16748:4;;16754:10;;16739:26;;;-1:-1:-1;;;;;16748:4:0;;;6222:51:1;;6304:2;6289:18;;6282:34;;;;16739:26:0;;6195:18:1;16739:26:0;;;;;;;16784:8;:6;:8::i;20287:342::-;-1:-1:-1;;;;;20424:19:0;;20398:4;20424:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;20447:22:0;;;;;;:11;:22;;;;;;;;20424:45;20420:90;;;-1:-1:-1;20493:5:0;20486:12;;20420:90;20534:4;;-1:-1:-1;;;;;20524:14:0;;;20534:4;;20524:14;;:35;;-1:-1:-1;20555:4:0;;-1:-1:-1;;;;;20542:17:0;;;20555:4;;20542:17;20524:35;20520:80;;;-1:-1:-1;20583:5:0;20576:12;;20520:80;-1:-1:-1;20617:4:0;20287:342;;;;:::o;19794:485::-;19958:4;;19914:7;;;;-1:-1:-1;;;;;19958:17:0;;;:4;;:17;:74;;20024:8;;19958:74;;;19991:17;;19958:74;19934:98;-1:-1:-1;20043:17:0;20063:34;20093:3;20063:25;:6;19934:98;20063:10;:25::i;:34::-;20153:4;20135:24;;;;:9;:24;;;;;;20043:54;;-1:-1:-1;20135:39:0;;20043:54;20135:28;:39::i;:::-;20126:4;20108:24;;;;:9;:24;;;;;;;:66;;;;20190:42;;-1:-1:-1;;;;;20190:42:0;;;;;;;20222:9;160:25:1;;148:2;133:18;;14:177;20190:42:0;;;;;;;;20250:21;:6;20261:9;20250:10;:21::i;:::-;20243:28;19794:485;-1:-1:-1;;;;;;19794:485:0:o;657:246::-;715:7;739:6;735:47;;-1:-1:-1;769:1:0;762:8;;735:47;792:9;804:5;808:1;804;:5;:::i;:::-;792:17;-1:-1:-1;837:1:0;828:5;832:1;792:17;828:5;:::i;:::-;:10;820:56;;;;-1:-1:-1;;;820:56:0;;14014:2:1;820: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;;820:56:0;13812:397:1;911:132:0;969:7;996:39;1000:1;1003;996:39;;;;;;;;;;;;;;;;;:3;:39::i;12901:136::-;12946:15;;12939:4;:22;;-1:-1:-1;;;;;;12939:22:0;-1:-1:-1;;;;;12946:15:0;;;12939:22;;;;;;12946:15;12972:10;:14;13014:15;12997:14;:32;12901:136::o;1051:223::-;1171:7;1206:12;1199:5;1191:28;;;;-1:-1:-1;;;1191:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1230:9:0;1242:5;1246:1;1242;: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://37cd66f0c310af6f3af2beaa10f2c9e284956682d17f7f7144f69c51fd582960
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.