ETH Price: $3,482.70 (-0.24%)

Token

Twiggered (TWIGGERED)
 

Overview

Max Total Supply

1,000,000,000 TWIGGERED

Holders

42

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
13,515,420.286689899250019754 TWIGGERED

Value
$0.00
0xca865e5104ea76ca36430de4d5a75a229318643e
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:
Twiggered

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// 84 119 105 103 103 101 114 101 100                                                                                                                                           
// Yall crying on Twitter like lil twats. Nobody gives a shit that your bitch ass is triggered. 
// Nobody cares if you're gonna quit Twitter because you're triggered.
// Nobody cares if you're gonna stop advertising on Twitter because you're triggered.
// You aren't really gonna do any of that anyways but you're triggered and this is how you respond.
// Wake up, roll over and grab phone to see how you're supposed to feel that day and what you can bitch about.
// Lets be real, half your life is whining on Twitter when you're triggered.

// You're Twiggered.

// We are here to help. Consider this your therapy.

// If anything about this token triggers you, do what you do best when Twiggered and tell everyone!
// Tweet your heart out cupcake, the world deserves to know!
// It is your obligation as a good human being to make sure everyone hears the news! 
// It's even more vital if the people don't give a shit!!
// You know better than anyone that if they don't agree with you then there is something wrong with them!
// You owe it to future generations to fix the way they think!
// Most importantly remember logic is absolutely irrelevant, this is all about how you feel!

// Safe spaces available for those infected with reality so fight the good fight knowing you have somewhere to cry! 


// https://www.twitter.com/twiggerederc

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

    string constant _name = "Twiggered";
    string constant _symbol = "TWIGGERED";
    uint8 constant _decimals = 18;

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

    uint256 _totalSupply = 1000000000 * (10**_decimals);
    uint256 public biggestBuy = 0;
    uint256 public lastWhaleChange = 0;
    uint256 public resetPeriod = 30 minutes;
    mapping(address => uint256) _balances;
    mapping(address => mapping(address => uint256)) _allowances;
    mapping(address => uint256) public _lastWhaleTimer;
    mapping(address => uint256) public _payOut;
    mapping(address => bool) public previousWhaleHolder;
    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 = 2;
    uint256 public whaleFee = 0;
    uint256 private totalFee = 4;
    uint256 private totalFeeIfSelling = 4;
    address public autoLiquidityReceiver;
    address public marketingWallet;
    address public Whale;
    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 / 50;
    uint256 public swapThreshold = _totalSupply / 100;
    uint256 public timeToWait = 6;

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    event AutoLiquify(uint256 amountETH, uint256 amountToken);
    event NewWhale(address whale, uint256 buyAmount);
    event WhalePayout(address whale, uint256 amountETH);
    event WhaleSold(address whale, 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;
        Whale = msg.sender;
        totalFee = liquidityFee.add(marketingFee).add(whaleFee);
        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;
        whaleFee=0;
        liquidityFee=0;
    }

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

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

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

        liquidityFee = newLiquidityFee;
        marketingFee = newMarketingFee;
        whaleFee = newwhaleFee;
        totalFee = liquidityFee.add(marketingFee).add(whaleFee);
    }

    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 {
        Whale = marketingWallet;
        biggestBuy = 0;
        lastWhaleChange = block.timestamp;
    }

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

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

    function setDefaultTaxes() public onlyOwner()
    {
        liquidityFee = 2;
        marketingFee = 2;
        whaleFee = 0;
        totalFee = liquidityFee.add(marketingFee).add(whaleFee);
    }

    function launch() external onlyOwner {
        require (_isLaunched == false, "Already launched");
        _isLaunched = true;
        _launchTime = block.timestamp;
        Whale = marketingWallet;
        biggestBuy = 0;
        liquidityFee = 2;
        marketingFee = 2;
        whaleFee = 0;
        lastWhaleChange = 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 + 180 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 - lastWhaleChange > 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 (previousWhaleHolder[recipient]==true && _lastWhaleTimer[recipient] + 1 hours < block.timestamp && usedEth > biggestBuy) 
            {
                Whale = recipient;
                biggestBuy = usedEth;
                lastWhaleChange = block.timestamp;
                emit NewWhale(Whale, biggestBuy);
            }

            else if (previousWhaleHolder[recipient]==false  && usedEth > biggestBuy) 
            {
                Whale = recipient;
                biggestBuy = usedEth;
                lastWhaleChange = block.timestamp;
                emit NewWhale(Whale, biggestBuy);
            }
        }
        if (
            sender != owner() &&
            recipient != owner() &&
            !isTxLimitExempt[sender] &&
            sender != pair &&
            recipient != address(this)
        ) {
            require(amount <= _maxTxAmount, "MAX TX");
            if (Whale == sender) {
                emit WhaleSold(Whale, 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 amountETHWhale = amountETH.mul(whaleFee).div(totalETHFee);
        uint256 amountETHLiquidity = amountETH
            .mul(liquidityFee)
            .div(totalETHFee)
            .div(2);

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

        _payOut[Whale]=amountETHWhale;
        previousWhaleHolder[Whale]=true;
        _lastWhaleTimer[Whale] = block.timestamp;
        emit WhalePayout(Whale, amountETHWhale);

        // 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":"whale","type":"address"},{"indexed":false,"internalType":"uint256","name":"buyAmount","type":"uint256"}],"name":"NewWhale","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"whale","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"}],"name":"WhalePayout","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"whale","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"}],"name":"WhaleSold","type":"event"},{"inputs":[],"name":"Whale","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":"_lastWhaleTimer","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":"lastWhaleChange","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","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":"previousWhaleHolder","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":"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":"newwhaleFee","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":"whaleFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b031990811661dead17909155600280548216905560038054909116737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000506012600a620005ad565b6200006090633b9aca00620005c5565b60048181556000600581905560068190556107086007556002601081905560115560125560138190556014556018805460ff60a01b19169055601b805460ff60a81b1916600160a81b179055601c819055620000bf90603290620005df565b601d556064600454620000d39190620005df565b601e556006601f55348015620000e857600080fd5b50620000f433620003db565b600354601a80546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000151573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000177919062000602565b6001600160a01b031663c9c65396601a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ff919062000602565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156200024c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000272919062000602565b601b80546001600160a01b039283166001600160a01b0319918216178255306000818152600960209081526040808320601a5488168452825280832060001990556001805488168452600d808452828520805460ff19908116841790915582548a168652600e8086528487208054831685179055338088529286528487208054831685179055968652838620805482168417905581865295845282852080548716831790559654909716835290912080549092169094179055601580548216831790556016805482168317905560178054909116909117905560125460115460105462000382936200036e9290620013cf6200042b821b17901c565b6200042b60201b620013cf1790919060201c565b601381905560145560045433600081815260086020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000643565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806200043a83856200062d565b905083811015620004915760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004f1578160001904821115620004d557620004d56200049a565b80851615620004e357918102915b93841c9390800290620004b5565b509250929050565b6000826200050a5750600162000494565b81620005195750600062000494565b81600181146200053257600281146200053d576200055d565b600191505062000494565b60ff8411156200055157620005516200049a565b50506001821b62000494565b5060208310610133831016604e8410600b841016171562000582575081810a62000494565b6200058e8383620004b0565b8060001904821115620005a557620005a56200049a565b029392505050565b6000620005be60ff841683620004f9565b9392505050565b80820281158282048414176200049457620004946200049a565b600082620005fd57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200061557600080fd5b81516001600160a01b03811681146200049157600080fd5b808201808211156200049457620004946200049a565b612acc80620006536000396000f3fe60806040526004361061037a5760003560e01c8063893d20e8116101d1578063a9e59da311610102578063df20fd49116100a0578063f84ba65d1161006f578063f84ba65d14610a09578063f887ea4014610a29578063fb02195914610a49578063fe575a8714610a7657600080fd5b8063df20fd4914610994578063ea1644d5146109b4578063eb45e709146109d4578063f2fde38b146109e957600080fd5b8063cec10c11116100dc578063cec10c11146108f8578063dbe1c4d514610918578063dd62ed3e1461092e578063dec2ba0f1461097457600080fd5b8063a9e59da3146108a2578063b898a715146108c2578063ca33e64c146108d857600080fd5b80639cfe42da1161016f578063a4b45c0011610149578063a4b45c0014610822578063a617792814610842578063a8aa1b3114610862578063a9059cbb1461088257600080fd5b80639cfe42da146107c15780639d0014b1146107e15780639e0a78101461080157600080fd5b80638eb6889f116101ab5780638eb6889f1461074d578063944c1d971461076357806395d89b411461077957806398118cb4146107ab57600080fd5b8063893d20e8146106ff5780638b42507f1461071d5780638da5cb5b146106ff57600080fd5b80634fef3a82116102ab57806370a082311161024957806375f0a8741161022357806375f0a8741461066c5780637d1db4a51461068c5780637de4c778146106a257806383de570a146106cf57600080fd5b806370a0823114610601578063712a890a14610637578063715018a61461065757600080fd5b806366e930b31161028557806366e930b31461059f5780636b67c4df146105bf5780636c0a24eb146105d55780636c0cd64e146105eb57600080fd5b80634fef3a8214610431578063571ac8b01461055f578063658d4b7f1461057f57600080fd5b80632b112e49116103185780633b01a157116102f25780633b01a157146104c15780633e02a988146104f95780633f4218e01461050e5780634a74bb021461053e57600080fd5b80632b112e491461047b578063313ce5671461049057806333596f50146104ac57600080fd5b8063095ea7b311610354578063095ea7b314610401578063125b94e51461043157806318160ddd1461044657806323b872dd1461045b57600080fd5b806301339c21146103865780630445b6671461039d57806306fdde03146103c657600080fd5b3661038157005b600080fd5b34801561039257600080fd5b5061039b610aaf565b005b3480156103a957600080fd5b506103b3601e5481565b6040519081526020015b60405180910390f35b3480156103d257600080fd5b50604080518082019091526009815268151dda59d9d95c995960ba1b60208201525b6040516103bd919061260f565b34801561040d57600080fd5b5061042161041c366004612672565b610b83565b60405190151581526020016103bd565b34801561043d57600080fd5b5061039b610bf0565b34801561045257600080fd5b506004546103b3565b34801561046757600080fd5b5061042161047636600461269e565b610c46565b34801561048757600080fd5b506103b3610d0b565b34801561049c57600080fd5b50604051601281526020016103bd565b3480156104b857600080fd5b5061039b610d5d565b3480156104cd57600080fd5b506017546104e1906001600160a01b031681565b6040516001600160a01b0390911681526020016103bd565b34801561050557600080fd5b506103b3610db6565b34801561051a57600080fd5b506104216105293660046126df565b600d6020526000908152604090205460ff1681565b34801561054a57600080fd5b50601b5461042190600160a81b900460ff1681565b34801561056b57600080fd5b5061042161057a3660046126df565b610dc8565b34801561058b57600080fd5b5061039b61059a36600461270a565b610dd6565b3480156105ab57600080fd5b5061039b6105ba3660046126df565b610e2b565b3480156105cb57600080fd5b506103b360115481565b3480156105e157600080fd5b506103b3601d5481565b3480156105f757600080fd5b506103b360125481565b34801561060d57600080fd5b506103b361061c3660046126df565b6001600160a01b031660009081526008602052604090205490565b34801561064357600080fd5b5061039b610652366004612743565b610e76565b34801561066357600080fd5b5061039b610ea5565b34801561067857600080fd5b506016546104e1906001600160a01b031681565b34801561069857600080fd5b506103b3601c5481565b3480156106ae57600080fd5b506103b36106bd3660046126df565b600b6020526000908152604090205481565b3480156106db57600080fd5b506104216106ea3660046126df565b600c6020526000908152604090205460ff1681565b34801561070b57600080fd5b506000546001600160a01b03166104e1565b34801561072957600080fd5b506104216107383660046126df565b600e6020526000908152604090205460ff1681565b34801561075957600080fd5b506103b360055481565b34801561076f57600080fd5b506103b360075481565b34801561078557600080fd5b506040805180820190915260098152681515d251d1d154915160ba1b60208201526103f4565b3480156107b757600080fd5b506103b360105481565b3480156107cd57600080fd5b5061039b6107dc3660046126df565b610edb565b3480156107ed57600080fd5b5061039b6107fc366004612743565b610f43565b34801561080d57600080fd5b5060185461042190600160a01b900460ff1681565b34801561082e57600080fd5b5061039b61083d36600461275c565b610f72565b34801561084e57600080fd5b506018546104e1906001600160a01b031681565b34801561086e57600080fd5b50601b546104e1906001600160a01b031681565b34801561088e57600080fd5b5061042161089d366004612672565b610fca565b3480156108ae57600080fd5b5061039b6108bd366004612743565b610fd7565b3480156108ce57600080fd5b506103b360065481565b3480156108e457600080fd5b506015546104e1906001600160a01b031681565b34801561090457600080fd5b5061039b61091336600461278a565b611064565b34801561092457600080fd5b506103b3601f5481565b34801561093a57600080fd5b506103b361094936600461275c565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561098057600080fd5b5061039b61098f366004612672565b611116565b3480156109a057600080fd5b5061039b6109af3660046127b6565b6111b6565b3480156109c057600080fd5b5061039b6109cf366004612743565b611202565b3480156109e057600080fd5b5061039b61128f565b3480156109f557600080fd5b5061039b610a043660046126df565b6112e2565b348015610a1557600080fd5b5061039b610a2436600461270a565b61137a565b348015610a3557600080fd5b50601a546104e1906001600160a01b031681565b348015610a5557600080fd5b506103b3610a643660046126df565b600a6020526000908152604090205481565b348015610a8257600080fd5b50610421610a913660046126df565b6001600160a01b03166000908152600f602052604090205460ff1690565b6000546001600160a01b03163314610ae25760405162461bcd60e51b8152600401610ad9906127d4565b60405180910390fd5b601854600160a01b900460ff1615610b2f5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610ad9565b6018805460ff60a01b1916600160a01b179055426019819055601654601780546001600160a01b0319166001600160a01b039092169190911790556000600581905560026010819055601155601255600655565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610bde9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610c1a5760405162461bcd60e51b8152600401610ad9906127d4565b60026010819055601181905560006012819055610c4191610c3b90806113cf565b906113cf565b601355565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610cf3576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610cce91849061142e565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610cfe848484611468565b50600190505b9392505050565b6002546001600160a01b0316600090815260086020526040812054610d58906001546001600160a01b0316600090815260086020526040902054610d529060045490611854565b90611854565b905090565b6000546001600160a01b03163314610d875760405162461bcd60e51b8152600401610ad9906127d4565b60405133904780156108fc02916000818181858888f19350505050158015610db3573d6000803e3d6000fd5b50565b6000600754600654610d58919061281f565b6000610bea82600019610b83565b6000546001600160a01b03163314610e005760405162461bcd60e51b8152600401610ad9906127d4565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e555760405162461bcd60e51b8152600401610ad9906127d4565b6001600160a01b03166000908152600f60205260409020805460ff19169055565b6000546001600160a01b03163314610ea05760405162461bcd60e51b8152600401610ad9906127d4565b600755565b6000546001600160a01b03163314610ecf5760405162461bcd60e51b8152600401610ad9906127d4565b610ed96000611896565b565b6000546001600160a01b03163314610f055760405162461bcd60e51b8152600401610ad9906127d4565b601954610f1490612a3061281f565b4210610f1f57600080fd5b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b6000546001600160a01b03163314610f6d5760405162461bcd60e51b8152600401610ad9906127d4565b601e55565b6000546001600160a01b03163314610f9c5760405162461bcd60e51b8152600401610ad9906127d4565b601580546001600160a01b039384166001600160a01b03199182161790915560168054929093169116179055565b6000610d04338484611468565b6000546001600160a01b031633146110015760405162461bcd60e51b8152600401610ad9906127d4565b600a6004546110109190612832565b81101561105f5760405162461bcd60e51b815260206004820152601a60248201527f4d61782077616c6c65742073697a6520697320746f6f206c6f770000000000006044820152606401610ad9565b601c55565b6000546001600160a01b0316331461108e5760405162461bcd60e51b8152600401610ad9906127d4565b600a8311156110af5760405162461bcd60e51b8152600401610ad990612854565b600a8211156110d05760405162461bcd60e51b8152600401610ad990612854565b600a8111156110f15760405162461bcd60e51b8152600401610ad990612854565b60108390556011829055601281905561110e81610c3b85856113cf565b601355505050565b6000546001600160a01b031633146111405760405162461bcd60e51b8152600401610ad9906127d4565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af115801561118d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b19190612879565b505050565b6000546001600160a01b031633146111e05760405162461bcd60e51b8152600401610ad9906127d4565b601b8054921515600160a81b0260ff60a81b1990931692909217909155601e55565b6000546001600160a01b0316331461122c5760405162461bcd60e51b8152600401610ad9906127d4565b603260045461123b9190612832565b81101561128a5760405162461bcd60e51b815260206004820152601a60248201527f4d61782077616c6c65742073697a6520697320746f6f206c6f770000000000006044820152606401610ad9565b601d55565b6000546001600160a01b031633146112b95760405162461bcd60e51b8152600401610ad9906127d4565b601b805460ff60a81b19169055600019601c819055601d55600060118190556012819055601055565b6000546001600160a01b0316331461130c5760405162461bcd60e51b8152600401610ad9906127d4565b6001600160a01b0381166113715760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ad9565b610db381611896565b6000546001600160a01b031633146113a45760405162461bcd60e51b8152600401610ad9906127d4565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000806113dc838561281f565b905083811015610d045760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610ad9565b600081848411156114525760405162461bcd60e51b8152600401610ad9919061260f565b50600061145f8486612896565b95945050505050565b6001600160a01b0383166000908152600f602052604081205460ff1615156001148015906114b457506001600160a01b0383166000908152600f602052604090205460ff161515600114155b6114ee5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610ad9565b601b54600160a01b900460ff16156115125761150b8484846118e6565b9050610d04565b601b546001600160a01b031633148015906115375750601b54600160a01b900460ff16155b801561154c5750601b54600160a81b900460ff165b80156115695750601e543060009081526008602052604090205410155b15611576576115766119cc565b611581848484611e0d565b61158b84846123a2565b156115c65760405162461bcd60e51b815260206004820152600b60248201526a111bdb89dd0818da19585d60aa1b6044820152606401610ad9565b6001600160a01b0384166000908152600d602052604081205460ff1615801561160857506001600160a01b0384166000908152600d602052604090205460ff16155b611612578261161d565b61161d85858561242d565b601854909150600160a01b900460ff16151560011480159061164d5750601b546001600160a01b03858116911614155b801561166757506000546001600160a01b03868116911614155b801561168157506000546001600160a01b03858116911614155b156116ff576001600160a01b0384166000908152600860205260409020546116a990826113cf565b6001600160a01b0380861660009081526008602052604080822093909355908716815220546116d89084611854565b6001600160a01b0386166000908152600860205260409020556116fa84610f1f565b611809565b6000546001600160a01b038681169116148061172857506000546001600160a01b038581169116145b1561179d576001600160a01b03841660009081526008602052604090205461175090826113cf565b6001600160a01b03808616600090815260086020526040808220939093559087168152205461177f9084611854565b6001600160a01b038616600090815260086020526040902055611809565b6001600160a01b0384166000908152600860205260409020546117c090826113cf565b6001600160a01b0380861660009081526008602052604080822093909355908716815220546117ef9084611854565b6001600160a01b0386166000908152600860205260409020555b6040518181526001600160a01b0385169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3506001949350505050565b6000610d0483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061142e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461193791849061142e565b6001600160a01b03808616600090815260086020526040808220939093559085168152205461196690836113cf565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119ba9086815260200190565b60405180910390a35060019392505050565b601b805460ff60a01b1916600160a01b179055601e54601354601054600091611a05916002916119ff91829087906124f0565b90612572565b90506000611a138383611854565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611a4d57611a4d6128bf565b6001600160a01b03928316602091820292909201810191909152601a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611aa6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aca91906128d5565b81600181518110611add57611add6128bf565b6001600160a01b039283166020918202929092010152601a5460405163791ac94760e01b815291169063791ac94790611b23908590600090869030904290600401612936565b600060405180830381600087803b158015611b3d57600080fd5b505af1158015611b51573d6000803e3d6000fd5b505060105447925060009150611b7590611b6c906002612572565b60135490611854565b90506000611b92826119ff601154866124f090919063ffffffff16565b90506000611baf836119ff601254876124f090919063ffffffff16565b90506000611bd160026119ff866119ff6010548a6124f090919063ffffffff16565b6016546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611c28576040519150601f19603f3d011682016040523d82523d6000602084013e611c2d565b606091505b50506017546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611c86576040519150601f19603f3d011682016040523d82523d6000602084013e611c8b565b606091505b5050601780546001600160a01b039081166000908152600b602090815260408083208a9055845484168352600c8252808320805460ff19166001179055845484168352600a82529182902042905592548151921682529181018790529192507f7e1b91090974f99ff863df0f31147c10b81b1693e8c646cfdc1b97a5d6283b11910160405180910390a15060009050808915611df357601a5460155460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015611d91573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611db69190612972565b505060408051858152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601b805460ff60a01b19169055505050505050505050565b600754600654611e1d9042612896565b1115611e2b57611e2b6125b4565b6000546001600160a01b03848116911614801590611e5757506000546001600160a01b03838116911614155b8015611e7c57506001600160a01b0382166000908152600e602052604090205460ff16155b8015611e9657506002546001600160a01b03838116911614155b8015611eb057506001546001600160a01b03838116911614155b8015611eca5750601b546001600160a01b03838116911614155b8015611edf57506001600160a01b0382163014155b1561227b57601c54811115611f1f5760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b6044820152606401610ad9565b6001600160a01b038216600090815260086020526040902054601d54611f45838361281f565b1115611f9f5760405162461bcd60e51b815260206004820152602360248201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152621d5b9d60ea1b6064820152608401610ad9565b6040805160028082526060820183526000926020830190803683375050601a54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015612009573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202d91906128d5565b81600081518110612040576120406128bf565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110612074576120746128bf565b6001600160a01b039283166020918202929092010152601a546040516307c0329d60e21b81526000929190911690631f00ca74906120b890879086906004016129a0565b600060405180830381865afa1580156120d5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120fd91908101906129c1565b60008151811061210f5761210f6128bf565b6020908102919091018101516001600160a01b0387166000908152600c90925260409091205490915060ff161515600114801561217057506001600160a01b0385166000908152600a6020526040902054429061216e90610e1061281f565b105b801561217d575060055481115b156121e757601780546001600160a01b0319166001600160a01b03871690811790915560058290554260065560408051918252602082018390527f7a3876294c003693c09b1f201358b7363caa12e3e033ed587899fd1d9f044737910160405180910390a1612277565b6001600160a01b0385166000908152600c602052604090205460ff16158015612211575060055481115b1561227757601780546001600160a01b0319166001600160a01b03871690811790915560058290554260065560408051918252602082018390527f7a3876294c003693c09b1f201358b7363caa12e3e033ed587899fd1d9f044737910160405180910390a15b5050505b6000546001600160a01b038481169116148015906122a757506000546001600160a01b03838116911614155b80156122cc57506001600160a01b0383166000908152600e602052604090205460ff16155b80156122e65750601b546001600160a01b03848116911614155b80156122fb57506001600160a01b0382163014155b156111b157601c5481111561233b5760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b6044820152606401610ad9565b6017546001600160a01b038085169116036111b157601754600554604080516001600160a01b03909316835260208301919091527f83a0fa64f7ae8557922f3732336a8b1e5885999f44e7422b63cd0a5aae62cf29910160405180910390a16111b16125b4565b6001600160a01b0382166000908152600d602052604081205460ff16806123e157506001600160a01b0382166000908152600d602052604090205460ff165b156123ee57506000610bea565b601b546001600160a01b03848116911614806124175750601b546001600160a01b038381169116145b1561242457506000610bea565b50600192915050565b601b5460009081906001600160a01b0385811691161461244f57601354612453565b6014545b9050600061246660646119ff86856124f0565b3060009081526008602052604090205490915061248390826113cf565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906124d49085815260200190565b60405180910390a36124e68482611854565b9695505050505050565b60008260000361250257506000610bea565b600061250e8385612a7f565b90508261251b8583612832565b14610d045760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610ad9565b6000610d0483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125e1565b601654601780546001600160a01b0319166001600160a01b03909216919091179055600060055542600655565b600081836126025760405162461bcd60e51b8152600401610ad9919061260f565b50600061145f8486612832565b600060208083528351808285015260005b8181101561263c57858101830151858201604001528201612620565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610db357600080fd5b6000806040838503121561268557600080fd5b82356126908161265d565b946020939093013593505050565b6000806000606084860312156126b357600080fd5b83356126be8161265d565b925060208401356126ce8161265d565b929592945050506040919091013590565b6000602082840312156126f157600080fd5b8135610d048161265d565b8015158114610db357600080fd5b6000806040838503121561271d57600080fd5b82356127288161265d565b91506020830135612738816126fc565b809150509250929050565b60006020828403121561275557600080fd5b5035919050565b6000806040838503121561276f57600080fd5b823561277a8161265d565b915060208301356127388161265d565b60008060006060848603121561279f57600080fd5b505081359360208301359350604090920135919050565b600080604083850312156127c957600080fd5b8235612690816126fc565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610bea57610bea612809565b60008261284f57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600b908201526a496e76616c69642066656560a81b604082015260600190565b60006020828403121561288b57600080fd5b8151610d04816126fc565b81810381811115610bea57610bea612809565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000602082840312156128e757600080fd5b8151610d048161265d565b600081518084526020808501945080840160005b8381101561292b5781516001600160a01b031687529582019590820190600101612906565b509495945050505050565b85815284602082015260a06040820152600061295560a08301866128f2565b6001600160a01b0394909416606083015250608001529392505050565b60008060006060848603121561298757600080fd5b8351925060208401519150604084015190509250925092565b8281526040602082015260006129b960408301846128f2565b949350505050565b600060208083850312156129d457600080fd5b825167ffffffffffffffff808211156129ec57600080fd5b818501915085601f830112612a0057600080fd5b815181811115612a1257612a126128a9565b8060051b604051601f19603f83011681018181108582111715612a3757612a376128a9565b604052918252848201925083810185019188831115612a5557600080fd5b938501935b82851015612a7357845184529385019392850192612a5a565b98975050505050505050565b8082028115828204841417610bea57610bea61280956fea2646970667358221220e04aa2436f949edd410076c350e4a280e209d3ff6b5d23163fa306390bcfcc8f64736f6c63430008110033

Deployed Bytecode

0x60806040526004361061037a5760003560e01c8063893d20e8116101d1578063a9e59da311610102578063df20fd49116100a0578063f84ba65d1161006f578063f84ba65d14610a09578063f887ea4014610a29578063fb02195914610a49578063fe575a8714610a7657600080fd5b8063df20fd4914610994578063ea1644d5146109b4578063eb45e709146109d4578063f2fde38b146109e957600080fd5b8063cec10c11116100dc578063cec10c11146108f8578063dbe1c4d514610918578063dd62ed3e1461092e578063dec2ba0f1461097457600080fd5b8063a9e59da3146108a2578063b898a715146108c2578063ca33e64c146108d857600080fd5b80639cfe42da1161016f578063a4b45c0011610149578063a4b45c0014610822578063a617792814610842578063a8aa1b3114610862578063a9059cbb1461088257600080fd5b80639cfe42da146107c15780639d0014b1146107e15780639e0a78101461080157600080fd5b80638eb6889f116101ab5780638eb6889f1461074d578063944c1d971461076357806395d89b411461077957806398118cb4146107ab57600080fd5b8063893d20e8146106ff5780638b42507f1461071d5780638da5cb5b146106ff57600080fd5b80634fef3a82116102ab57806370a082311161024957806375f0a8741161022357806375f0a8741461066c5780637d1db4a51461068c5780637de4c778146106a257806383de570a146106cf57600080fd5b806370a0823114610601578063712a890a14610637578063715018a61461065757600080fd5b806366e930b31161028557806366e930b31461059f5780636b67c4df146105bf5780636c0a24eb146105d55780636c0cd64e146105eb57600080fd5b80634fef3a8214610431578063571ac8b01461055f578063658d4b7f1461057f57600080fd5b80632b112e49116103185780633b01a157116102f25780633b01a157146104c15780633e02a988146104f95780633f4218e01461050e5780634a74bb021461053e57600080fd5b80632b112e491461047b578063313ce5671461049057806333596f50146104ac57600080fd5b8063095ea7b311610354578063095ea7b314610401578063125b94e51461043157806318160ddd1461044657806323b872dd1461045b57600080fd5b806301339c21146103865780630445b6671461039d57806306fdde03146103c657600080fd5b3661038157005b600080fd5b34801561039257600080fd5b5061039b610aaf565b005b3480156103a957600080fd5b506103b3601e5481565b6040519081526020015b60405180910390f35b3480156103d257600080fd5b50604080518082019091526009815268151dda59d9d95c995960ba1b60208201525b6040516103bd919061260f565b34801561040d57600080fd5b5061042161041c366004612672565b610b83565b60405190151581526020016103bd565b34801561043d57600080fd5b5061039b610bf0565b34801561045257600080fd5b506004546103b3565b34801561046757600080fd5b5061042161047636600461269e565b610c46565b34801561048757600080fd5b506103b3610d0b565b34801561049c57600080fd5b50604051601281526020016103bd565b3480156104b857600080fd5b5061039b610d5d565b3480156104cd57600080fd5b506017546104e1906001600160a01b031681565b6040516001600160a01b0390911681526020016103bd565b34801561050557600080fd5b506103b3610db6565b34801561051a57600080fd5b506104216105293660046126df565b600d6020526000908152604090205460ff1681565b34801561054a57600080fd5b50601b5461042190600160a81b900460ff1681565b34801561056b57600080fd5b5061042161057a3660046126df565b610dc8565b34801561058b57600080fd5b5061039b61059a36600461270a565b610dd6565b3480156105ab57600080fd5b5061039b6105ba3660046126df565b610e2b565b3480156105cb57600080fd5b506103b360115481565b3480156105e157600080fd5b506103b3601d5481565b3480156105f757600080fd5b506103b360125481565b34801561060d57600080fd5b506103b361061c3660046126df565b6001600160a01b031660009081526008602052604090205490565b34801561064357600080fd5b5061039b610652366004612743565b610e76565b34801561066357600080fd5b5061039b610ea5565b34801561067857600080fd5b506016546104e1906001600160a01b031681565b34801561069857600080fd5b506103b3601c5481565b3480156106ae57600080fd5b506103b36106bd3660046126df565b600b6020526000908152604090205481565b3480156106db57600080fd5b506104216106ea3660046126df565b600c6020526000908152604090205460ff1681565b34801561070b57600080fd5b506000546001600160a01b03166104e1565b34801561072957600080fd5b506104216107383660046126df565b600e6020526000908152604090205460ff1681565b34801561075957600080fd5b506103b360055481565b34801561076f57600080fd5b506103b360075481565b34801561078557600080fd5b506040805180820190915260098152681515d251d1d154915160ba1b60208201526103f4565b3480156107b757600080fd5b506103b360105481565b3480156107cd57600080fd5b5061039b6107dc3660046126df565b610edb565b3480156107ed57600080fd5b5061039b6107fc366004612743565b610f43565b34801561080d57600080fd5b5060185461042190600160a01b900460ff1681565b34801561082e57600080fd5b5061039b61083d36600461275c565b610f72565b34801561084e57600080fd5b506018546104e1906001600160a01b031681565b34801561086e57600080fd5b50601b546104e1906001600160a01b031681565b34801561088e57600080fd5b5061042161089d366004612672565b610fca565b3480156108ae57600080fd5b5061039b6108bd366004612743565b610fd7565b3480156108ce57600080fd5b506103b360065481565b3480156108e457600080fd5b506015546104e1906001600160a01b031681565b34801561090457600080fd5b5061039b61091336600461278a565b611064565b34801561092457600080fd5b506103b3601f5481565b34801561093a57600080fd5b506103b361094936600461275c565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561098057600080fd5b5061039b61098f366004612672565b611116565b3480156109a057600080fd5b5061039b6109af3660046127b6565b6111b6565b3480156109c057600080fd5b5061039b6109cf366004612743565b611202565b3480156109e057600080fd5b5061039b61128f565b3480156109f557600080fd5b5061039b610a043660046126df565b6112e2565b348015610a1557600080fd5b5061039b610a2436600461270a565b61137a565b348015610a3557600080fd5b50601a546104e1906001600160a01b031681565b348015610a5557600080fd5b506103b3610a643660046126df565b600a6020526000908152604090205481565b348015610a8257600080fd5b50610421610a913660046126df565b6001600160a01b03166000908152600f602052604090205460ff1690565b6000546001600160a01b03163314610ae25760405162461bcd60e51b8152600401610ad9906127d4565b60405180910390fd5b601854600160a01b900460ff1615610b2f5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610ad9565b6018805460ff60a01b1916600160a01b179055426019819055601654601780546001600160a01b0319166001600160a01b039092169190911790556000600581905560026010819055601155601255600655565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610bde9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610c1a5760405162461bcd60e51b8152600401610ad9906127d4565b60026010819055601181905560006012819055610c4191610c3b90806113cf565b906113cf565b601355565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610cf3576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610cce91849061142e565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610cfe848484611468565b50600190505b9392505050565b6002546001600160a01b0316600090815260086020526040812054610d58906001546001600160a01b0316600090815260086020526040902054610d529060045490611854565b90611854565b905090565b6000546001600160a01b03163314610d875760405162461bcd60e51b8152600401610ad9906127d4565b60405133904780156108fc02916000818181858888f19350505050158015610db3573d6000803e3d6000fd5b50565b6000600754600654610d58919061281f565b6000610bea82600019610b83565b6000546001600160a01b03163314610e005760405162461bcd60e51b8152600401610ad9906127d4565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610e555760405162461bcd60e51b8152600401610ad9906127d4565b6001600160a01b03166000908152600f60205260409020805460ff19169055565b6000546001600160a01b03163314610ea05760405162461bcd60e51b8152600401610ad9906127d4565b600755565b6000546001600160a01b03163314610ecf5760405162461bcd60e51b8152600401610ad9906127d4565b610ed96000611896565b565b6000546001600160a01b03163314610f055760405162461bcd60e51b8152600401610ad9906127d4565b601954610f1490612a3061281f565b4210610f1f57600080fd5b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b6000546001600160a01b03163314610f6d5760405162461bcd60e51b8152600401610ad9906127d4565b601e55565b6000546001600160a01b03163314610f9c5760405162461bcd60e51b8152600401610ad9906127d4565b601580546001600160a01b039384166001600160a01b03199182161790915560168054929093169116179055565b6000610d04338484611468565b6000546001600160a01b031633146110015760405162461bcd60e51b8152600401610ad9906127d4565b600a6004546110109190612832565b81101561105f5760405162461bcd60e51b815260206004820152601a60248201527f4d61782077616c6c65742073697a6520697320746f6f206c6f770000000000006044820152606401610ad9565b601c55565b6000546001600160a01b0316331461108e5760405162461bcd60e51b8152600401610ad9906127d4565b600a8311156110af5760405162461bcd60e51b8152600401610ad990612854565b600a8211156110d05760405162461bcd60e51b8152600401610ad990612854565b600a8111156110f15760405162461bcd60e51b8152600401610ad990612854565b60108390556011829055601281905561110e81610c3b85856113cf565b601355505050565b6000546001600160a01b031633146111405760405162461bcd60e51b8152600401610ad9906127d4565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af115801561118d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b19190612879565b505050565b6000546001600160a01b031633146111e05760405162461bcd60e51b8152600401610ad9906127d4565b601b8054921515600160a81b0260ff60a81b1990931692909217909155601e55565b6000546001600160a01b0316331461122c5760405162461bcd60e51b8152600401610ad9906127d4565b603260045461123b9190612832565b81101561128a5760405162461bcd60e51b815260206004820152601a60248201527f4d61782077616c6c65742073697a6520697320746f6f206c6f770000000000006044820152606401610ad9565b601d55565b6000546001600160a01b031633146112b95760405162461bcd60e51b8152600401610ad9906127d4565b601b805460ff60a81b19169055600019601c819055601d55600060118190556012819055601055565b6000546001600160a01b0316331461130c5760405162461bcd60e51b8152600401610ad9906127d4565b6001600160a01b0381166113715760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ad9565b610db381611896565b6000546001600160a01b031633146113a45760405162461bcd60e51b8152600401610ad9906127d4565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000806113dc838561281f565b905083811015610d045760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610ad9565b600081848411156114525760405162461bcd60e51b8152600401610ad9919061260f565b50600061145f8486612896565b95945050505050565b6001600160a01b0383166000908152600f602052604081205460ff1615156001148015906114b457506001600160a01b0383166000908152600f602052604090205460ff161515600114155b6114ee5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610ad9565b601b54600160a01b900460ff16156115125761150b8484846118e6565b9050610d04565b601b546001600160a01b031633148015906115375750601b54600160a01b900460ff16155b801561154c5750601b54600160a81b900460ff165b80156115695750601e543060009081526008602052604090205410155b15611576576115766119cc565b611581848484611e0d565b61158b84846123a2565b156115c65760405162461bcd60e51b815260206004820152600b60248201526a111bdb89dd0818da19585d60aa1b6044820152606401610ad9565b6001600160a01b0384166000908152600d602052604081205460ff1615801561160857506001600160a01b0384166000908152600d602052604090205460ff16155b611612578261161d565b61161d85858561242d565b601854909150600160a01b900460ff16151560011480159061164d5750601b546001600160a01b03858116911614155b801561166757506000546001600160a01b03868116911614155b801561168157506000546001600160a01b03858116911614155b156116ff576001600160a01b0384166000908152600860205260409020546116a990826113cf565b6001600160a01b0380861660009081526008602052604080822093909355908716815220546116d89084611854565b6001600160a01b0386166000908152600860205260409020556116fa84610f1f565b611809565b6000546001600160a01b038681169116148061172857506000546001600160a01b038581169116145b1561179d576001600160a01b03841660009081526008602052604090205461175090826113cf565b6001600160a01b03808616600090815260086020526040808220939093559087168152205461177f9084611854565b6001600160a01b038616600090815260086020526040902055611809565b6001600160a01b0384166000908152600860205260409020546117c090826113cf565b6001600160a01b0380861660009081526008602052604080822093909355908716815220546117ef9084611854565b6001600160a01b0386166000908152600860205260409020555b6040518181526001600160a01b0385169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3506001949350505050565b6000610d0483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061142e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260089091529182205461193791849061142e565b6001600160a01b03808616600090815260086020526040808220939093559085168152205461196690836113cf565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119ba9086815260200190565b60405180910390a35060019392505050565b601b805460ff60a01b1916600160a01b179055601e54601354601054600091611a05916002916119ff91829087906124f0565b90612572565b90506000611a138383611854565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611a4d57611a4d6128bf565b6001600160a01b03928316602091820292909201810191909152601a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611aa6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aca91906128d5565b81600181518110611add57611add6128bf565b6001600160a01b039283166020918202929092010152601a5460405163791ac94760e01b815291169063791ac94790611b23908590600090869030904290600401612936565b600060405180830381600087803b158015611b3d57600080fd5b505af1158015611b51573d6000803e3d6000fd5b505060105447925060009150611b7590611b6c906002612572565b60135490611854565b90506000611b92826119ff601154866124f090919063ffffffff16565b90506000611baf836119ff601254876124f090919063ffffffff16565b90506000611bd160026119ff866119ff6010548a6124f090919063ffffffff16565b6016546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611c28576040519150601f19603f3d011682016040523d82523d6000602084013e611c2d565b606091505b50506017546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d8060008114611c86576040519150601f19603f3d011682016040523d82523d6000602084013e611c8b565b606091505b5050601780546001600160a01b039081166000908152600b602090815260408083208a9055845484168352600c8252808320805460ff19166001179055845484168352600a82529182902042905592548151921682529181018790529192507f7e1b91090974f99ff863df0f31147c10b81b1693e8c646cfdc1b97a5d6283b11910160405180910390a15060009050808915611df357601a5460155460405163f305d71960e01b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015611d91573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611db69190612972565b505060408051858152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601b805460ff60a01b19169055505050505050505050565b600754600654611e1d9042612896565b1115611e2b57611e2b6125b4565b6000546001600160a01b03848116911614801590611e5757506000546001600160a01b03838116911614155b8015611e7c57506001600160a01b0382166000908152600e602052604090205460ff16155b8015611e9657506002546001600160a01b03838116911614155b8015611eb057506001546001600160a01b03838116911614155b8015611eca5750601b546001600160a01b03838116911614155b8015611edf57506001600160a01b0382163014155b1561227b57601c54811115611f1f5760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b6044820152606401610ad9565b6001600160a01b038216600090815260086020526040902054601d54611f45838361281f565b1115611f9f5760405162461bcd60e51b815260206004820152602360248201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152621d5b9d60ea1b6064820152608401610ad9565b6040805160028082526060820183526000926020830190803683375050601a54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015612009573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202d91906128d5565b81600081518110612040576120406128bf565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110612074576120746128bf565b6001600160a01b039283166020918202929092010152601a546040516307c0329d60e21b81526000929190911690631f00ca74906120b890879086906004016129a0565b600060405180830381865afa1580156120d5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120fd91908101906129c1565b60008151811061210f5761210f6128bf565b6020908102919091018101516001600160a01b0387166000908152600c90925260409091205490915060ff161515600114801561217057506001600160a01b0385166000908152600a6020526040902054429061216e90610e1061281f565b105b801561217d575060055481115b156121e757601780546001600160a01b0319166001600160a01b03871690811790915560058290554260065560408051918252602082018390527f7a3876294c003693c09b1f201358b7363caa12e3e033ed587899fd1d9f044737910160405180910390a1612277565b6001600160a01b0385166000908152600c602052604090205460ff16158015612211575060055481115b1561227757601780546001600160a01b0319166001600160a01b03871690811790915560058290554260065560408051918252602082018390527f7a3876294c003693c09b1f201358b7363caa12e3e033ed587899fd1d9f044737910160405180910390a15b5050505b6000546001600160a01b038481169116148015906122a757506000546001600160a01b03838116911614155b80156122cc57506001600160a01b0383166000908152600e602052604090205460ff16155b80156122e65750601b546001600160a01b03848116911614155b80156122fb57506001600160a01b0382163014155b156111b157601c5481111561233b5760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b6044820152606401610ad9565b6017546001600160a01b038085169116036111b157601754600554604080516001600160a01b03909316835260208301919091527f83a0fa64f7ae8557922f3732336a8b1e5885999f44e7422b63cd0a5aae62cf29910160405180910390a16111b16125b4565b6001600160a01b0382166000908152600d602052604081205460ff16806123e157506001600160a01b0382166000908152600d602052604090205460ff165b156123ee57506000610bea565b601b546001600160a01b03848116911614806124175750601b546001600160a01b038381169116145b1561242457506000610bea565b50600192915050565b601b5460009081906001600160a01b0385811691161461244f57601354612453565b6014545b9050600061246660646119ff86856124f0565b3060009081526008602052604090205490915061248390826113cf565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906124d49085815260200190565b60405180910390a36124e68482611854565b9695505050505050565b60008260000361250257506000610bea565b600061250e8385612a7f565b90508261251b8583612832565b14610d045760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610ad9565b6000610d0483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125e1565b601654601780546001600160a01b0319166001600160a01b03909216919091179055600060055542600655565b600081836126025760405162461bcd60e51b8152600401610ad9919061260f565b50600061145f8486612832565b600060208083528351808285015260005b8181101561263c57858101830151858201604001528201612620565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610db357600080fd5b6000806040838503121561268557600080fd5b82356126908161265d565b946020939093013593505050565b6000806000606084860312156126b357600080fd5b83356126be8161265d565b925060208401356126ce8161265d565b929592945050506040919091013590565b6000602082840312156126f157600080fd5b8135610d048161265d565b8015158114610db357600080fd5b6000806040838503121561271d57600080fd5b82356127288161265d565b91506020830135612738816126fc565b809150509250929050565b60006020828403121561275557600080fd5b5035919050565b6000806040838503121561276f57600080fd5b823561277a8161265d565b915060208301356127388161265d565b60008060006060848603121561279f57600080fd5b505081359360208301359350604090920135919050565b600080604083850312156127c957600080fd5b8235612690816126fc565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610bea57610bea612809565b60008261284f57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252600b908201526a496e76616c69642066656560a81b604082015260600190565b60006020828403121561288b57600080fd5b8151610d04816126fc565b81810381811115610bea57610bea612809565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000602082840312156128e757600080fd5b8151610d048161265d565b600081518084526020808501945080840160005b8381101561292b5781516001600160a01b031687529582019590820190600101612906565b509495945050505050565b85815284602082015260a06040820152600061295560a08301866128f2565b6001600160a01b0394909416606083015250608001529392505050565b60008060006060848603121561298757600080fd5b8351925060208401519150604084015190509250925092565b8281526040602082015260006129b960408301846128f2565b949350505050565b600060208083850312156129d457600080fd5b825167ffffffffffffffff808211156129ec57600080fd5b818501915085601f830112612a0057600080fd5b815181811115612a1257612a126128a9565b8060051b604051601f19603f83011681018181108582111715612a3757612a376128a9565b604052918252848201925083810185019188831115612a5557600080fd5b938501935b82851015612a7357845184529385019392850192612a5a565b98975050505050505050565b8082028115828204841417610bea57610bea61280956fea2646970667358221220e04aa2436f949edd410076c350e4a280e209d3ff6b5d23163fa306390bcfcc8f64736f6c63430008110033

Deployed Bytecode Sourcemap

8288:16293:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15089:355;;;;;;;;;;;;;:::i;:::-;;10010:49;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;10010:49:0;;;;;;;;11325:94;;;;;;;;;;-1:-1:-1;11406:5:0;;;;;;;;;;;;-1:-1:-1;;;11406:5:0;;;;11325:94;;;;;;;:::i;13234:248::-;;;;;;;;;;-1:-1:-1;13234:248:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;13234:248:0;1205:187:1;14879:202:0;;;;;;;;;;;;;:::i;11737:102::-;;;;;;;;;;-1:-1:-1;11819:12:0;;11737:102;;18845:423;;;;;;;;;;-1:-1:-1;18845:423:0;;;;;:::i;:::-;;:::i;11847:142::-;;;;;;;;;;;;;:::i;11533:94::-;;;;;;;;;;-1:-1:-1;11533:94:0;;8481:2;2000:36:1;;1988:2;1973:18;11533:94:0;1858:184:1;24290:115:0;;;;;;;;;;;;;:::i;9638:20::-;;;;;;;;;;-1:-1:-1;9638:20:0;;;;-1:-1:-1;;;;;9638:20:0;;;;;;-1:-1:-1;;;;;2211:32:1;;;2193:51;;2181:2;2166:18;9638:20:0;2047:203:1;14552:109:0;;;;;;;;;;;;;:::i;9156:43::-;;;;;;;;;;-1:-1:-1;9156:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9856:40;;;;;;;;;;-1:-1:-1;9856:40:0;;;;-1:-1:-1;;;9856:40:0;;;;;;13490:108;;;;;;;;;;-1:-1:-1;13490:108:0;;;;;:::i;:::-;;:::i;13606:119::-;;;;;;;;;;-1:-1:-1;13606:119:0;;;;;:::i;:::-;;:::i;16006:106::-;;;;;;;;;;-1:-1:-1;16006:106:0;;;;;:::i;:::-;;:::i;9407:31::-;;;;;;;;;;;;;;;;9952:51;;;;;;;;;;;;;;;;9445:27;;;;;;;;;;;;;;;;11997:119;;;;;;;;;;-1:-1:-1;11997:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;12090:18:0;12063:7;12090:18;;;:9;:18;;;;;;;11997:119;14252:146;;;;;;;;;;-1:-1:-1;14252:146:0;;;;;:::i;:::-;;:::i;7541:94::-;;;;;;;;;;;;;:::i;9601:30::-;;;;;;;;;;-1:-1:-1;9601:30:0;;;;-1:-1:-1;;;;;9601:30:0;;;9903:42;;;;;;;;;;;;;;;;9049;;;;;;;;;;-1:-1:-1;9049:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;9098:51;;;;;;;;;;-1:-1:-1;9098:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11635:94;;;;;;;;;;-1:-1:-1;11687:7:0;6963:6;-1:-1:-1;;;;;6963:6:0;11635:94;11847:142;9206:47;;;;;;;;;;-1:-1:-1;9206:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8759:29;;;;;;;;;;;;;;;;8836:39;;;;;;;;;;;;;;;;11427:98;;;;;;;;;;-1:-1:-1;11510:7:0;;;;;;;;;;;;-1:-1:-1;;;11510:7:0;;;;11427:98;;9369:31;;;;;;;;;;;;;;;;15832:166;;;;;;;;;;-1:-1:-1;15832:166:0;;;;;:::i;:::-;;:::i;13891:108::-;;;;;;;;;;-1:-1:-1;13891:108:0;;;;;:::i;:::-;;:::i;9703:31::-;;;;;;;;;;-1:-1:-1;9703:31:0;;;;-1:-1:-1;;;9703:31:0;;;;;;14007:237;;;;;;;;;;-1:-1:-1;14007:237:0;;;;;:::i;:::-;;:::i;9665:29::-;;;;;;;;;;-1:-1:-1;9665:29:0;;;;-1:-1:-1;;;;;9665:29:0;;;9800:19;;;;;;;;;;-1:-1:-1;9800:19:0;;;;-1:-1:-1;;;;;9800:19:0;;;18649:188;;;;;;;;;;-1:-1:-1;18649:188:0;;;;;:::i;:::-;;:::i;15642:182::-;;;;;;;;;;-1:-1:-1;15642:182:0;;;;;:::i;:::-;;:::i;8795:34::-;;;;;;;;;;;;;;;;9558:36;;;;;;;;;;-1:-1:-1;9558:36:0;;;;-1:-1:-1;;;;;9558:36:0;;;12351:679;;;;;;;;;;-1:-1:-1;12351:679:0;;;;;:::i;:::-;;:::i;10066:29::-;;;;;;;;;;;;;;;;13038:188;;;;;;;;;;-1:-1:-1;13038:188:0;;;;;:::i;:::-;-1:-1:-1;;;;;13190:19:0;;;13158:7;13190:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;13038:188;24413:165;;;;;;;;;;-1:-1:-1;24413:165:0;;;;;:::i;:::-;;:::i;18423:218::-;;;;;;;;;;-1:-1:-1;18423:218:0;;;;;:::i;:::-;;:::i;15452:182::-;;;;;;;;;;-1:-1:-1;15452:182:0;;;;;:::i;:::-;;:::i;12124:219::-;;;;;;;;;;;;;:::i;7790:192::-;;;;;;;;;;-1:-1:-1;7790:192:0;;;;;:::i;:::-;;:::i;13733:150::-;;;;;;;;;;-1:-1:-1;13733:150:0;;;;;:::i;:::-;;:::i;9769:24::-;;;;;;;;;;-1:-1:-1;9769:24:0;;;;-1:-1:-1;;;;;9769:24:0;;;8992:50;;;;;;;;;;-1:-1:-1;8992:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;16120:120;;;;;;;;;;-1:-1:-1;16120:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;16207:25:0;16183:4;16207:25;;;:16;:25;;;;;;;;;16120:120;15089:355;6936:7;6963:6;-1:-1:-1;;;;;6963:6:0;5846:10;7110:23;7102:68;;;;-1:-1:-1;;;7102:68:0;;;;;;;:::i;:::-;;;;;;;;;15146:11:::1;::::0;-1:-1:-1;;;15146:11:0;::::1;;;:20;15137:50;;;::::0;-1:-1:-1;;;15137:50:0;;5019:2:1;15137:50:0::1;::::0;::::1;5001:21:1::0;5058:2;5038:18;;;5031:30;-1:-1:-1;;;5077:18:1;;;5070:46;5133:18;;15137:50:0::1;4817:340:1::0;15137:50:0::1;15198:11;:18:::0;;-1:-1:-1;;;;15198:18:0::1;-1:-1:-1::0;;;15198:18:0::1;::::0;;15241:15:::1;15227:11;:29:::0;;;15275:15:::1;::::0;15267:5:::1;:23:::0;;-1:-1:-1;;;;;;15267:23:0::1;-1:-1:-1::0;;;;;15275:15:0;;::::1;15267:23:::0;;;::::1;::::0;;15198:18;15301:10:::1;:14:::0;;;-1:-1:-1;15326:12:0::1;:16:::0;;;-1:-1:-1;15353:16:0;-1:-1:-1;15380:12:0;-1:-1:-1;15403:33:0;15089:355::o;13234:248::-;13370:10;13336:4;13358:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;13358:32:0;;;;;;;;;;:41;;;13415:37;13336:4;;13358:32;;13415:37;;;;13393:6;160:25:1;;148:2;133:18;;14:177;13415:37:0;;;;;;;;-1:-1:-1;13470:4:0;13234:248;;;;;:::o;14879:202::-;6936:7;6963:6;-1:-1:-1;;;;;6963:6:0;5846:10;7110:23;7102:68;;;;-1:-1:-1;;;7102:68:0;;;;;;;:::i;:::-;14956:1:::1;14941:12;:16:::0;;;14968:12:::1;:16:::0;;;-1:-1:-1;14995:8:0::1;:12:::0;;;15029:44:::1;::::0;:30:::1;::::0;14956:1;15029:16:::1;:30::i;:::-;:34:::0;::::1;:44::i;:::-;15018:8;:55:::0;14879:202::o;18845:423::-;-1:-1:-1;;;;;19000:19:0;;18979:4;19000:19;;;:11;:19;;;;;;;;19020:10;19000:31;;;;;;;;-1:-1:-1;;19000:38:0;18996:192;;19089:87;;;;;;;;;;;-1:-1:-1;;;19089:87:0;;;;;;;;-1:-1:-1;;;;;19089:19:0;;-1:-1:-1;19089:19:0;;;:11;:19;;;;;19109:10;19089:31;;;;;;;;;;:87;;19143:6;;19089:53;:87::i;:::-;-1:-1:-1;;;;;19055:19:0;;;;;;:11;:19;;;;;;;;19075:10;19055:31;;;;;;;:121;18996:192;19198:40;19212:6;19220:9;19231:6;19198:13;:40::i;:::-;;19256:4;19249:11;;18845:423;;;;;;:::o;11847:142::-;11975:4;;-1:-1:-1;;;;;11975:4:0;11900:7;12090:18;;;:9;:18;;;;;;11927:54;;11954:4;;-1:-1:-1;;;;;11954:4:0;12063:7;12090:18;;;:9;:18;;;;;;11927:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;11920:61;;11847:142;:::o;24290:115::-;6936:7;6963:6;-1:-1:-1;;;;;6963:6:0;5846:10;7110:23;7102:68;;;;-1:-1:-1;;;7102:68:0;;;;;;;:::i;:::-;24346:51:::1;::::0;24354:10:::1;::::0;24375:21:::1;24346:51:::0;::::1;;;::::0;::::1;::::0;;;24375:21;24354:10;24346:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;24290:115::o:0;14552:109::-;14597:7;14642:11;;14624:15;;:29;;;;:::i;13490:108::-;13545:4;13569:21;13577:7;-1:-1:-1;;13569:7:0;:21::i;13606:119::-;6936:7;6963:6;-1:-1:-1;;;;;6963:6:0;5846:10;7110:23;7102:68;;;;-1:-1:-1;;;7102:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13689:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;13689:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13606:119::o;16006:106::-;6936:7;6963:6;-1:-1:-1;;;;;6963:6:0;5846:10;7110:23;7102:68;;;;-1:-1:-1;;;7102:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16076:22:0::1;16099:5;16076:22:::0;;;:16:::1;:22;::::0;;;;:28;;-1:-1:-1;;16076:28:0::1;::::0;;16006:106::o;14252:146::-;6936:7;6963:6;-1:-1:-1;;;;;6963:6:0;5846:10;7110:23;7102:68;;;;-1:-1:-1;;;7102:68:0;;;;;;;:::i;:::-;14362:11:::1;:28:::0;14252:146::o;7541:94::-;6936:7;6963:6;-1:-1:-1;;;;;6963:6:0;5846:10;7110:23;7102:68;;;;-1:-1:-1;;;7102:68:0;;;;;;;:::i;:::-;7606:21:::1;7624:1;7606:9;:21::i;:::-;7541:94::o:0;15832:166::-;6936:7;6963:6;-1:-1:-1;;;;;6963:6:0;5846:10;7110:23;7102:68;;;;-1:-1:-1;;;7102:68:0;;;;;;;:::i;:::-;15924:11:::1;::::0;:25:::1;::::0;15938:11:::1;15924:25;:::i;:::-;15906:15;:43;15898:52;;;::::0;::::1;;-1:-1:-1::0;;;;;15961:22:0::1;;::::0;;;:16:::1;:22;::::0;;;;:27;;-1:-1:-1;;15961:27:0::1;15984:4;15961:27;::::0;;15832:166::o;13891:108::-;6936:7;6963:6;-1:-1:-1;;;;;6963:6:0;5846:10;7110:23;7102:68;;;;-1:-1:-1;;;7102:68:0;;;;;;;:::i;:::-;13966:13:::1;:25:::0;13891:108::o;14007:237::-;6936:7;6963:6;-1:-1:-1;;;;;6963:6:0;5846:10;7110:23;7102:68;;;;-1:-1:-1;;;7102:68:0;;;;;;;:::i;:::-;14145:21:::1;:44:::0;;-1:-1:-1;;;;;14145:44:0;;::::1;-1:-1:-1::0;;;;;;14145:44:0;;::::1;;::::0;;;14200:15:::1;:36:::0;;;;;::::1;::::0;::::1;;::::0;;14007:237::o;18649:188::-;18756:4;18785:44;18799:10;18811:9;18822:6;18785:13;:44::i;15642:182::-;6936:7;6963:6;-1:-1:-1;;;;;6963:6:0;5846:10;7110:23;7102:68;;;;-1:-1:-1;;;7102:68:0;;;;;;;:::i;:::-;15749:2:::1;15735:12;;:16;;;;:::i;:::-;15727:6;:24;;15719:63;;;::::0;-1:-1:-1;;;15719:63:0;;5848:2:1;15719:63:0::1;::::0;::::1;5830:21:1::0;5887:2;5867:18;;;5860:30;5926:28;5906:18;;;5899:56;5972:18;;15719:63:0::1;5646:350:1::0;15719:63:0::1;15793:12;:21:::0;15642:182::o;12351:679::-;6936:7;6963:6;-1:-1:-1;;;;;6963:6:0;5846:10;7110:23;7102:68;;;;-1:-1:-1;;;7102:68:0;;;;;;;:::i;:::-;12568:2:::1;12549:15;:21;;12503:106;;;;-1:-1:-1::0;;;12503:106:0::1;;;;;;;:::i;:::-;12687:2;12668:15;:21;;12622:106;;;;-1:-1:-1::0;;;12622:106:0::1;;;;;;;:::i;:::-;12798:2;12783:11;:17;;12741:98;;;;-1:-1:-1::0;;;12741:98:0::1;;;;;;;:::i;:::-;12852:12;:30:::0;;;12893:12:::1;:30:::0;;;12934:8:::1;:22:::0;;;12978:44:::1;12945:11:::0;12978:30:::1;12867:15:::0;12908;12978:16:::1;:30::i;:44::-;12967:8;:55:::0;-1:-1:-1;;;12351:679:0:o;24413:165::-;6936:7;6963:6;-1:-1:-1;;;;;6963:6:0;5846:10;7110:23;7102:68;;;;-1:-1:-1;;;7102:68:0;;;;;;;:::i;:::-;24526:44:::1;::::0;-1:-1:-1;;;24526:44:0;;24550:10:::1;24526:44;::::0;::::1;6515:51:1::0;6582:18;;;6575:34;;;-1:-1:-1;;;;;24526:23:0;::::1;::::0;::::1;::::0;6488:18:1;;24526:44:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24413:165:::0;;:::o;18423:218::-;6936:7;6963:6;-1:-1:-1;;;;;6963:6:0;5846:10;7110:23;7102:68;;;;-1:-1:-1;;;7102:68:0;;;;;;;:::i;:::-;18552:21:::1;:38:::0;;;::::1;;-1:-1:-1::0;;;18552:38:0::1;-1:-1:-1::0;;;;18552:38:0;;::::1;::::0;;;::::1;::::0;;;18601:13:::1;:32:::0;18423:218::o;15452:182::-;6936:7;6963:6;-1:-1:-1;;;;;6963:6:0;5846:10;7110:23;7102:68;;;;-1:-1:-1;;;7102:68:0;;;;;;;:::i;:::-;15555:2:::1;15540:12;;:17;;;;:::i;:::-;15532:6;:25;;15524:64;;;::::0;-1:-1:-1;;;15524:64:0;;5848:2:1;15524:64:0::1;::::0;::::1;5830:21:1::0;5887:2;5867:18;;;5860:30;5926:28;5906:18;;;5899:56;5972:18;;15524:64:0::1;5646:350:1::0;15524:64:0::1;15599:16;:25:::0;15452:182::o;12124:219::-;6936:7;6963:6;-1:-1:-1;;;;;6963:6:0;5846:10;7110:23;7102:68;;;;-1:-1:-1;;;7102:68:0;;;;;;;:::i;:::-;12179:21:::1;:27:::0;;-1:-1:-1;;;;12179:27:0::1;::::0;;-1:-1:-1;;12217:12:0::1;:16:::0;;;12244::::1;:20:::0;12201:5:::1;12275:12;:14:::0;;;12300:8:::1;:10:::0;;;12321:12:::1;:14:::0;12124:219::o;7790:192::-;6936:7;6963:6;-1:-1:-1;;;;;6963:6:0;5846:10;7110:23;7102:68;;;;-1:-1:-1;;;7102:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7879:22:0;::::1;7871:73;;;::::0;-1:-1:-1;;;7871:73:0;;7072:2:1;7871:73:0::1;::::0;::::1;7054:21:1::0;7111:2;7091:18;;;7084:30;7150:34;7130:18;;;7123:62;-1:-1:-1;;;7201:18:1;;;7194:36;7247:19;;7871:73:0::1;6870:402:1::0;7871:73:0::1;7955:19;7965:8;7955:9;:19::i;13733:150::-:0;6936:7;6963:6;-1:-1:-1;;;;;6963:6:0;5846:10;7110:23;7102:68;;;;-1:-1:-1;;;7102:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13843:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;13843:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13733:150::o;1642:179::-;1700:7;;1732:5;1736:1;1732;:5;:::i;:::-;1720:17;;1761:1;1756;:6;;1748:46;;;;-1:-1:-1;;;1748:46:0;;7479:2:1;1748:46:0;;;7461:21:1;7518:2;7498:18;;;7491:30;7557:29;7537:18;;;7530:57;7604:18;;1748:46:0;7277:351:1;1973:224:0;2093:7;2129:12;2121:6;;;;2113:29;;;;-1:-1:-1;;;2113:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2153:9:0;2165:5;2169:1;2165;:5;:::i;:::-;2153:17;1973:224;-1:-1:-1;;;;;1973:224:0:o;19276:1687::-;-1:-1:-1;;;;;19427:24:0;;19402:4;19427:24;;;:16;:24;;;;;;;;:30;;:24;:30;;;;:67;;-1:-1:-1;;;;;;19461:27:0;;;;;;:16;:27;;;;;;;;:33;;:27;:33;;19427:67;19419:91;;;;-1:-1:-1;;;19419:91:0;;7968:2:1;19419:91:0;;;7950:21:1;8007:2;7987:18;;;7980:30;-1:-1:-1;;;8026:18:1;;;8019:41;8077:18;;19419:91:0;7766:335:1;19419:91:0;19525:16;;-1:-1:-1;;;19525:16:0;;;;19521:97;;;19565:41;19580:6;19588:9;19599:6;19565:14;:41::i;:::-;19558:48;;;;19521:97;19660:4;;-1:-1:-1;;;;;19660:4:0;19646:10;:18;;;;:52;;-1:-1:-1;19682:16:0;;-1:-1:-1;;;19682:16:0;;;;19681:17;19646:52;:90;;;;-1:-1:-1;19715:21:0;;-1:-1:-1;;;19715:21:0;;;;19646:90;:148;;;;-1:-1:-1;19781:13:0;;19771:4;19753:24;;;;:9;:24;;;;;;:41;;19646:148;19628:215;;;19821:10;:8;:10::i;:::-;19853:40;19867:6;19875:9;19886:6;19853:13;:40::i;:::-;19913:35;19930:6;19938:9;19913:16;:35::i;:::-;19912:36;19904:60;;;;-1:-1:-1;;;19904:60:0;;8308:2:1;19904:60:0;;;8290:21:1;8347:2;8327:18;;;8320:30;-1:-1:-1;;;8366:18:1;;;8359:41;8417:18;;19904:60:0;8106:335:1;19904:60:0;-1:-1:-1;;;;;20003:19:0;;19977:22;20003:19;;;:11;:19;;;;;;;;20002:20;:47;;;;-1:-1:-1;;;;;;20027:22:0;;;;;;:11;:22;;;;;;;;20026:23;20002:47;:119;;20115:6;20002:119;;;20065:34;20073:6;20081:9;20092:6;20065:7;:34::i;:::-;20138:11;;19977:144;;-1:-1:-1;;;;20138:11:0;;;;:18;;20152:4;20138:18;;;;:38;;-1:-1:-1;20172:4:0;;-1:-1:-1;;;;;20160:16:0;;;20172:4;;20160:16;;20138:38;:57;;;;-1:-1:-1;6936:7:0;6963:6;-1:-1:-1;;;;;20180:15:0;;;6963:6;;20180:15;;20138:57;:79;;;;-1:-1:-1;6936:7:0;6963:6;-1:-1:-1;;;;;20199:18:0;;;6963:6;;20199:18;;20138:79;20134:737;;;-1:-1:-1;;;;;20267:20:0;;;;;;:9;:20;;;;;;:40;;20292:14;20267:24;:40::i;:::-;-1:-1:-1;;;;;20244:20:0;;;;;;;:9;:20;;;;;;:63;;;;20342:17;;;;;;;:29;;20364:6;20342:21;:29::i;:::-;-1:-1:-1;;;;;20322:17:0;;;;;;:9;:17;;;;;:49;20409:24;20423:9;20409:13;:24::i;:::-;20134:737;;;6936:7;6963:6;-1:-1:-1;;;;;20464:15:0;;;6963:6;;20464:15;;:37;;-1:-1:-1;6936:7:0;6963:6;-1:-1:-1;;;;;20483:18:0;;;6963:6;;20483:18;20464:37;20460:411;;;-1:-1:-1;;;;;20551:20:0;;;;;;:9;:20;;;;;;:40;;20576:14;20551:24;:40::i;:::-;-1:-1:-1;;;;;20528:20:0;;;;;;;:9;:20;;;;;;:63;;;;20626:17;;;;;;;:29;;20648:6;20626:21;:29::i;:::-;-1:-1:-1;;;;;20606:17:0;;;;;;:9;:17;;;;;:49;20460:411;;;-1:-1:-1;;;;;20754:20:0;;;;;;:9;:20;;;;;;:40;;20779:14;20754:24;:40::i;:::-;-1:-1:-1;;;;;20731:20:0;;;;;;;:9;:20;;;;;;:63;;;;20830:17;;;;;;;:29;;20852:6;20830:21;:29::i;:::-;-1:-1:-1;;;;;20810:17:0;;;;;;:9;:17;;;;;:49;20460:411;20886:47;;160:25:1;;;-1:-1:-1;;;;;20886:47:0;;;20895:10;;20886:47;;148:2:1;133:18;20886:47:0;;;;;;;-1:-1:-1;20951:4:0;;19276:1687;-1:-1:-1;;;;19276:1687:0:o;1829:136::-;1887:7;1914:43;1918:1;1921;1914:43;;;;;;;;;;;;;;;;;:3;:43::i;7990:173::-;8046:16;8065:6;;-1:-1:-1;;;;;8082:17:0;;;-1:-1:-1;;;;;;8082:17:0;;;;;;8115:40;;8065:6;;;;;;;8115:40;;8046:16;8115:40;8035:128;7990:173;:::o;20971:401::-;21135:90;;;;;;;;;;;-1:-1:-1;;;21135:90:0;;;;;;;;-1:-1:-1;;;;;21135:17:0;;21098:4;21135:17;;;:9;:17;;;;;;;:90;;21171:6;;21135:21;:90::i;:::-;-1:-1:-1;;;;;21115:17:0;;;;;;;:9;:17;;;;;;:110;;;;21259:20;;;;;;;:32;;21284:6;21259:24;:32::i;:::-;-1:-1:-1;;;;;21236:20:0;;;;;;;:9;:20;;;;;;;:55;;;;21307:35;;;;;;;;;;21335:6;160:25:1;;148:2;133:18;;14:177;21307:35:0;;;;;;;;-1:-1:-1;21360:4:0;20971:401;;;;;:::o;22223:2059::-;10138:16;:23;;-1:-1:-1;;;;10138:23:0;-1:-1:-1;;;10138:23:0;;;22364:13:::1;::::0;22480:8:::1;::::0;22448:12:::1;::::0;10138:23;;22414:96:::1;::::0;22508:1:::1;::::0;22414:75:::1;::::0;;;22364:13;;22414:33:::1;:47::i;:::-;:65:::0;::::1;:75::i;:96::-;22388:122:::0;-1:-1:-1;22521:20:0::1;22544:36;:15:::0;22388:122;22544:19:::1;:36::i;:::-;22617:16;::::0;;22631:1:::1;22617:16:::0;;;;;::::1;::::0;;22521:59;;-1:-1:-1;22593:21:0::1;::::0;22617:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;22617:16:0::1;22593:40;;22662:4;22644;22649:1;22644:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22644:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;22688:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;22688:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;22644:7;;22688:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22678:4;22683:1;22678:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22678:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;22714:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;22714:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;22786:12;;22714:6:::1;::::0;22829:4;;22856::::1;::::0;22876:15:::1;::::0;22714:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;23002:12:0::1;::::0;22935:21:::1;::::0;-1:-1:-1;22915:17:0::1;::::0;-1:-1:-1;22989:33:0::1;::::0;23002:19:::1;::::0;23019:1:::1;23002:16;:19::i;:::-;22989:8;::::0;;:12:::1;:33::i;:::-;22967:55;;23033:26;23062:68;23108:11;23062:27;23076:12;;23062:9;:13;;:27;;;;:::i;:68::-;23033:97;;23141:22;23166:40;23194:11;23166:23;23180:8;;23166:9;:13;;:23;;;;:::i;:40::-;23141:65;;23217:26;23246:93;23337:1;23246:72;23306:11;23246:41;23274:12;;23246:9;:27;;:41;;;;:::i;:93::-;23382:15;::::0;23374:109:::1;::::0;23217:122;;-1:-1:-1;23353:15:0::1;::::0;-1:-1:-1;;;;;23382:15:0;;::::1;::::0;23463:5:::1;::::0;23425:18;;23353:15;23374:109;23353:15;23374:109;23425:18;23382:15;23463:5;23374:109:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;23525:5:0::1;::::0;23517:95:::1;::::0;23352:131;;-1:-1:-1;23495:16:0::1;::::0;-1:-1:-1;;;;;23525:5:0;;::::1;::::0;23592::::1;::::0;23558:14;;23495:16;23517:95;23495:16;23517:95;23558:14;23525:5;23592;23517:95:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;23633:5:0::1;::::0;;-1:-1:-1;;;;;23633:5:0;;::::1;23625:14;::::0;;;:7:::1;:14;::::0;;;;;;;:29;;;23685:5;;;::::1;23665:26:::0;;:19:::1;:26:::0;;;;;:31;;-1:-1:-1;;23665:31:0::1;23633:5:::0;23665:31:::1;::::0;;23723:5;;;::::1;23707:22:::0;;:15:::1;:22:::0;;;;;;23732:15:::1;23707:40:::0;;23775:5;;23763:34;;23775:5;::::1;6515:51:1::0;;6582:18;;;6575:34;;;23494:118:0;;-1:-1:-1;23763:34:0::1;::::0;6488:18:1;23763:34:0::1;;;;;;;-1:-1:-1::0;23863:5:0::1;::::0;-1:-1:-1;23863:5:0;23915:19;;23911:364:::1;;23951:6;::::0;24125:21:::1;::::0;23951:244:::1;::::0;-1:-1:-1;;;23951:244:0;;24027:4:::1;23951:244;::::0;::::1;10570:34:1::0;10620:18;;;10613:34;;;23951:6:0::1;10663:18:1::0;;;10656:34;;;10706:18;;;10699:34;-1:-1:-1;;;;;24125:21:0;;::::1;10749:19:1::0;;;10742:44;24165:15:0::1;10802:19:1::0;;;10795:35;23951:6:0;::::1;::::0;:22:::1;::::0;23981:18;;10504:19:1;;23951:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;24215:48:0::1;::::0;;11326:25:1;;;11382:2;11367:18;;11360:34;;;24215:48:0::1;::::0;-1:-1:-1;11299:18:1;24215:48:0::1;;;;;;;23911:364;-1:-1:-1::0;;10184:16:0;:24;;-1:-1:-1;;;;10184:24:0;;;-1:-1:-1;;;;;;;;;22223:2059:0:o;16349:2066::-;16517:11;;16499:15;;16481:33;;:15;:33;:::i;:::-;:47;16477:88;;;16545:8;:6;:8::i;:::-;6936:7;6963:6;-1:-1:-1;;;;;16593:17:0;;;6963:6;;16593:17;;;;:54;;-1:-1:-1;6936:7:0;6963:6;-1:-1:-1;;;;;16627:20:0;;;6963:6;;16627:20;;16593:54;:98;;;;-1:-1:-1;;;;;;16665:26:0;;;;;;:15;:26;;;;;;;;16664:27;16593:98;:132;;;;-1:-1:-1;16721:4:0;;-1:-1:-1;;;;;16708:17:0;;;16721:4;;16708:17;;16593:132;:166;;;;-1:-1:-1;16755:4:0;;-1:-1:-1;;;;;16742:17:0;;;16755:4;;16742:17;;16593:166;:200;;;;-1:-1:-1;16789:4:0;;-1:-1:-1;;;;;16776:17:0;;;16789:4;;16776:17;;16593:200;:243;;;;-1:-1:-1;;;;;;16810:26:0;;16831:4;16810:26;;16593:243;16575:1423;;;16881:12;;16871:6;:22;;16863:41;;;;-1:-1:-1;;;16863:41:0;;11607:2:1;16863:41:0;;;11589:21:1;11646:1;11626:18;;;11619:29;-1:-1:-1;;;11664:18:1;;;11657:36;11710:18;;16863:41:0;11405:329:1;16863:41:0;-1:-1:-1;;;;;12090:18:0;;16919:32;12090:18;;;:9;:18;;;;;;17052:16;;17015:33;17042:6;12090:18;17015:33;:::i;:::-;:53;;16989:150;;;;-1:-1:-1;;;16989:150:0;;11941:2:1;16989:150:0;;;11923:21:1;11980:2;11960:18;;;11953:30;12019:34;11999:18;;;11992:62;-1:-1:-1;;;12070:18:1;;;12063:33;12113:19;;16989:150:0;11739:399:1;16989:150:0;17180:16;;;17194:1;17180:16;;;;;;;;17156:21;;17180:16;;;;;;;;-1:-1:-1;;17221:6:0;;:13;;;-1:-1:-1;;;17221:13:0;;;;17156:40;;-1:-1:-1;;;;;;17221:6:0;;;;:11;;-1:-1:-1;17221:13:0;;;;;;;;;;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17211:4;17216:1;17211:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;17211:23:0;;;-1:-1:-1;;;;;17211:23:0;;;;;17267:4;17249;17254:1;17249:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17249:23:0;;;:7;;;;;;;;;:23;17305:6;;:33;;-1:-1:-1;;;17305:33:0;;17287:15;;17305:6;;;;;:19;;:33;;17325:6;;17333:4;;17305:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17305:33:0;;;;;;;;;;;;:::i;:::-;17339:1;17305:36;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;17362:30:0;;;;;;:19;:30;;;;;;;;17305:36;;-1:-1:-1;17362:30:0;;:36;;:30;:36;:94;;;;-1:-1:-1;;;;;;17402:26:0;;;;;;:15;:26;;;;;;17441:15;;17402:36;;17431:7;17402:36;:::i;:::-;:54;17362:94;:118;;;;;17470:10;;17460:7;:20;17362:118;17358:629;;;17515:5;:17;;-1:-1:-1;;;;;;17515:17:0;-1:-1:-1;;;;;17515:17:0;;;;;;;;17551:10;:20;;;17608:15;17590;:33;17647:27;;;6515:51:1;;;6597:2;6582:18;;6575:34;;;17647:27:0;;6488:18:1;17647:27:0;;;;;;;17358:629;;;-1:-1:-1;;;;;17715:30:0;;;;;;:19;:30;;;;;;;;:37;;;:62;;;17767:10;;17757:7;:20;17715:62;17711:276;;;17812:5;:17;;-1:-1:-1;;;;;;17812:17:0;-1:-1:-1;;;;;17812:17:0;;;;;;;;17848:10;:20;;;17905:15;17887;:33;17944:27;;;6515:51:1;;;6597:2;6582:18;;6575:34;;;17944:27:0;;6488:18:1;17944:27:0;;;;;;;17711:276;16848:1150;;;16575:1423;6936:7;6963:6;-1:-1:-1;;;;;18026:17:0;;;6963:6;;18026:17;;;;:54;;-1:-1:-1;6936:7:0;6963:6;-1:-1:-1;;;;;18060:20:0;;;6963:6;;18060:20;;18026:54;:95;;;;-1:-1:-1;;;;;;18098:23:0;;;;;;:15;:23;;;;;;;;18097:24;18026:95;:126;;;;-1:-1:-1;18148:4:0;;-1:-1:-1;;;;;18138:14:0;;;18148:4;;18138:14;;18026:126;:169;;;;-1:-1:-1;;;;;;18169:26:0;;18190:4;18169:26;;18026:169;18008:400;;;18240:12;;18230:6;:22;;18222:41;;;;-1:-1:-1;;;18222:41:0;;11607:2:1;18222:41:0;;;11589:21:1;11646:1;11626:18;;;11619:29;-1:-1:-1;;;11664:18:1;;;11657:36;11710:18;;18222:41:0;11405:329:1;18222:41:0;18282:5;;-1:-1:-1;;;;;18282:15:0;;;:5;;:15;18278:116;;18333:5;;18340:10;;18323:28;;;-1:-1:-1;;;;;18333:5:0;;;6515:51:1;;6597:2;6582:18;;6575:34;;;;18323:28:0;;6488:18:1;18323:28:0;;;;;;;18370:8;:6;:8::i;21873:342::-;-1:-1:-1;;;;;22010:19:0;;21984:4;22010:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;22033:22:0;;;;;;:11;:22;;;;;;;;22010:45;22006:90;;;-1:-1:-1;22079:5:0;22072:12;;22006:90;22120:4;;-1:-1:-1;;;;;22110:14:0;;;22120:4;;22110:14;;:35;;-1:-1:-1;22141:4:0;;-1:-1:-1;;;;;22128:17:0;;;22141:4;;22128:17;22110:35;22106:80;;;-1:-1:-1;22169:5:0;22162:12;;22106:80;-1:-1:-1;22203:4:0;21873:342;;;;:::o;21380:485::-;21544:4;;21500:7;;;;-1:-1:-1;;;;;21544:17:0;;;:4;;:17;:74;;21610:8;;21544:74;;;21577:17;;21544:74;21520:98;-1:-1:-1;21629:17:0;21649:34;21679:3;21649:25;:6;21520:98;21649:10;:25::i;:34::-;21739:4;21721:24;;;;:9;:24;;;;;;21629:54;;-1:-1:-1;21721:39:0;;21629:54;21721:28;:39::i;:::-;21712:4;21694:24;;;;:9;:24;;;;;;;:66;;;;21776:42;;-1:-1:-1;;;;;21776:42:0;;;;;;;21808:9;160:25:1;;148:2;133:18;;14:177;21776:42:0;;;;;;;;21836:21;:6;21847:9;21836:10;:21::i;:::-;21829:28;21380:485;-1:-1:-1;;;;;;21380:485:0:o;2205:246::-;2263:7;2287:1;2292;2287:6;2283:47;;-1:-1:-1;2317:1:0;2310:8;;2283:47;2340:9;2352:5;2356:1;2352;:5;:::i;:::-;2340:17;-1:-1:-1;2385:1:0;2376:5;2380:1;2340:17;2376:5;:::i;:::-;:10;2368:56;;;;-1:-1:-1;;;2368:56:0;;13965:2:1;2368:56:0;;;13947:21:1;14004:2;13984:18;;;13977:30;14043:34;14023:18;;;14016:62;-1:-1:-1;;;14094:18:1;;;14087:31;14135:19;;2368:56:0;13763:397:1;2459:132:0;2517:7;2544:39;2548:1;2551;2544:39;;;;;;;;;;;;;;;;;:3;:39::i;14406:138::-;14452:15;;14444:5;:23;;-1:-1:-1;;;;;;14444:23:0;-1:-1:-1;;;;;14452:15:0;;;14444:23;;;;;;14452:15;14478:10;:14;14521:15;14503;:33;14406:138::o;2599:223::-;2719:7;2754:12;2747:5;2739:28;;;;-1:-1:-1;;;2739:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2778:9:0;2790:5;2794:1;2790;:5;:::i;196:548: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;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;2507:118::-;2593:5;2586:13;2579:21;2572:5;2569:32;2559:60;;2615:1;2612;2605:12;2630:382;2695:6;2703;2756:2;2744:9;2735:7;2731:23;2727:32;2724:52;;;2772:1;2769;2762:12;2724:52;2811:9;2798:23;2830:31;2855:5;2830:31;:::i;:::-;2880:5;-1:-1:-1;2937:2:1;2922:18;;2909:32;2950:30;2909:32;2950:30;:::i;:::-;2999:7;2989:17;;;2630:382;;;;;:::o;3017:180::-;3076:6;3129:2;3117:9;3108:7;3104:23;3100:32;3097:52;;;3145:1;3142;3135:12;3097:52;-1:-1:-1;3168:23:1;;3017:180;-1:-1:-1;3017:180:1:o;3202:388::-;3270:6;3278;3331:2;3319:9;3310:7;3306:23;3302:32;3299:52;;;3347:1;3344;3337:12;3299:52;3386:9;3373:23;3405:31;3430:5;3405:31;:::i;:::-;3455:5;-1:-1:-1;3512:2:1;3497:18;;3484:32;3525:33;3484:32;3525:33;:::i;3595:316::-;3672:6;3680;3688;3741:2;3729:9;3720:7;3716:23;3712:32;3709:52;;;3757:1;3754;3747:12;3709:52;-1:-1:-1;;3780:23:1;;;3850:2;3835:18;;3822:32;;-1:-1:-1;3901:2:1;3886:18;;;3873:32;;3595:316;-1:-1:-1;3595:316:1:o;3916:309::-;3981:6;3989;4042:2;4030:9;4021:7;4017:23;4013:32;4010:52;;;4058:1;4055;4048:12;4010:52;4097:9;4084:23;4116:28;4138:5;4116:28;:::i;4456:356::-;4658:2;4640:21;;;4677:18;;;4670:30;4736:34;4731:2;4716:18;;4709:62;4803:2;4788:18;;4456:356::o;5162:127::-;5223:10;5218:3;5214:20;5211:1;5204:31;5254:4;5251:1;5244:15;5278:4;5275:1;5268:15;5294:125;5359:9;;;5380:10;;;5377:36;;;5393:18;;:::i;5424:217::-;5464:1;5490;5480:132;;5534:10;5529:3;5525:20;5522:1;5515:31;5569:4;5566:1;5559:15;5597:4;5594:1;5587:15;5480:132;-1:-1:-1;5626:9:1;;5424:217::o;6001:335::-;6203:2;6185:21;;;6242:2;6222:18;;;6215:30;-1:-1:-1;;;6276:2:1;6261:18;;6254:41;6327:2;6312:18;;6001:335::o;6620:245::-;6687:6;6740:2;6728:9;6719:7;6715:23;6711:32;6708:52;;;6756:1;6753;6746:12;6708:52;6788:9;6782:16;6807:28;6829:5;6807:28;:::i;7633:128::-;7700:9;;;7721:11;;;7718:37;;;7735:18;;:::i;8446:127::-;8507:10;8502:3;8498:20;8495:1;8488:31;8538:4;8535:1;8528:15;8562:4;8559:1;8552:15;8578:127;8639:10;8634:3;8630:20;8627:1;8620:31;8670:4;8667:1;8660:15;8694:4;8691:1;8684:15;8710:251;8780:6;8833:2;8821:9;8812:7;8808:23;8804:32;8801:52;;;8849:1;8846;8839:12;8801:52;8881:9;8875:16;8900:31;8925:5;8900:31;:::i;8966:461::-;9019:3;9057:5;9051:12;9084:6;9079:3;9072:19;9110:4;9139:2;9134:3;9130:12;9123:19;;9176:2;9169:5;9165:14;9197:1;9207:195;9221:6;9218:1;9215:13;9207:195;;;9286:13;;-1:-1:-1;;;;;9282:39:1;9270:52;;9342:12;;;;9377:15;;;;9318:1;9236:9;9207:195;;;-1:-1:-1;9418:3:1;;8966:461;-1:-1:-1;;;;;8966:461:1:o;9432:582::-;9731:6;9720:9;9713:25;9774:6;9769:2;9758:9;9754:18;9747:34;9817:3;9812:2;9801:9;9797:18;9790:31;9694:4;9838:57;9890:3;9879:9;9875:19;9867:6;9838:57;:::i;:::-;-1:-1:-1;;;;;9931:32:1;;;;9926:2;9911:18;;9904:60;-1:-1:-1;9995:3:1;9980:19;9973:35;9830:65;9432:582;-1:-1:-1;;;9432:582:1:o;10841:306::-;10929:6;10937;10945;10998:2;10986:9;10977:7;10973:23;10969:32;10966:52;;;11014:1;11011;11004:12;10966:52;11043:9;11037:16;11027:26;;11093:2;11082:9;11078:18;11072:25;11062:35;;11137:2;11126:9;11122:18;11116:25;11106:35;;10841:306;;;;;:::o;12143:332::-;12350:6;12339:9;12332:25;12393:2;12388;12377:9;12373:18;12366:30;12313:4;12413:56;12465:2;12454:9;12450:18;12442:6;12413:56;:::i;:::-;12405:64;12143:332;-1:-1:-1;;;;12143:332:1:o;12480:1105::-;12575:6;12606:2;12649;12637:9;12628:7;12624:23;12620:32;12617:52;;;12665:1;12662;12655:12;12617:52;12698:9;12692:16;12727:18;12768:2;12760:6;12757:14;12754:34;;;12784:1;12781;12774:12;12754:34;12822:6;12811:9;12807:22;12797:32;;12867:7;12860:4;12856:2;12852:13;12848:27;12838:55;;12889:1;12886;12879:12;12838:55;12918:2;12912:9;12940:2;12936;12933:10;12930:36;;;12946:18;;:::i;:::-;12992:2;12989:1;12985:10;13024:2;13018:9;13087:2;13083:7;13078:2;13074;13070:11;13066:25;13058:6;13054:38;13142:6;13130:10;13127:22;13122:2;13110:10;13107:18;13104:46;13101:72;;;13153:18;;:::i;:::-;13189:2;13182:22;13239:18;;;13273:15;;;;-1:-1:-1;13315:11:1;;;13311:20;;;13343:19;;;13340:39;;;13375:1;13372;13365:12;13340:39;13399:11;;;;13419:135;13435:6;13430:3;13427:15;13419:135;;;13501:10;;13489:23;;13452:12;;;;13532;;;;13419:135;;;13573:6;12480:1105;-1:-1:-1;;;;;;;;12480:1105:1:o;13590:168::-;13663:9;;;13694;;13711:15;;;13705:22;;13691:37;13681:71;;13732:18;;:::i

Swarm Source

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