ETH Price: $3,400.35 (-1.29%)
Gas: 2 Gwei

Token

Eros (EROS)
 

Overview

Max Total Supply

10,000,000,000 EROS

Holders

35

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
eca.eth
Balance
180,000,000 EROS

Value
$0.00
0x000461A73d3985eef4923655782aA5d0De75C111
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:
Eros

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-28
*/

//SPDX-License-Identifier: UNLICENSED

//////////////////////////////////////////////
//              EROS TOKEN                  //
//  V1 Web: https://erostoken.vip           //
// (we are almost done with V2, which       //
// will have complete functionality)        //
//  Twitter: https://twitter.com/ErosToken  //
//  Telegram: https://t.me/ErosTokenPortal  //                               
//              EROS TOKEN                  //
//////////////////////////////////////////////

pragma solidity ^0.8.1;


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


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

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

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

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

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

}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval (address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the default value returned by this function, unless
     * it's overridden.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

/////////////////////////////
//    Dex interface        //
////////////////////////////

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

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

    function WETH() external pure returns (address);

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

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

/////////////////////////////
//    Eros token logic     //
////////////////////////////

contract Eros is ERC20, Ownable {
    
mapping(address => bool) public excluded;
mapping (address => Stake) public stakes;
mapping (address => bool) public penalisedWallet;

address public devWallet = 0x5bfbE6825Ea65Df21dd54466DA8bFE88F5B1c110;
address public stakeWallet = 0x4B98743F961e73a2A94f61143fbc76f643A8A5e1;

DexRouter public immutable uniswapRouter;
address public immutable pairAddress;

bool public swapAndLiquifyEnabled = true;
bool public isSwapping = false;
bool public tradingEnabled = false;

uint256 public constant _totalSupply = 10000000000 * 1e18;
uint256 public maxWallet = (_totalSupply * 2) / 100;

uint256 public minStake = (_totalSupply * 5) / 1000; //0.5% total supply
uint256 public maxStake = (_totalSupply * 2) / 100; 
uint256 public minStakeTime = 1 days;

uint256 public swapThreshold = (_totalSupply * 5) / 100;
uint256 public maxTokenSwap = (_totalSupply * 5) / 1000;

struct taxes {
    uint256 devRevTax;
}

taxes public buyTax = taxes(10);
taxes public sellTax = taxes(30);


struct Stake {
        uint256 amount;
        uint256 unlockTime;
        bool locked;
}


event TokenStaked (address indexed account, uint256 amount, uint256 unlockTime);
event UnstakeToken (address indexed staker);


    constructor() ERC20("Eros", "EROS") {


       uniswapRouter = DexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
       pairAddress = DexFactory(uniswapRouter.factory()).createPair(address(this),uniswapRouter.WETH());

        excluded[msg.sender] = true;
        excluded[address(devWallet)] = true;
        excluded[address(stakeWallet)] = true;
        excluded[address(uniswapRouter)] = true;
        excluded[address(this)] = true;       
        
        _mint(msg.sender, _totalSupply);
 
    }

    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Trading is already enabled");
        tradingEnabled = true;
    }

    function swapToETH(uint256 amount) internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapRouter.WETH();
        _approve(address(this), address(uniswapRouter), amount);
        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function tokenSwap() internal {
        isSwapping = true;
        uint256 taxAmount = balanceOf(address(this)); 
        if (taxAmount == 0) {
            return;
        }
        swapToETH(maxTokenSwap);
        payable(devWallet).transfer(balanceOf(address(this)));
        isSwapping = false;
    }

    function handleTax(
        address from,
        address to,
        uint256 amount
    ) internal returns (uint256) {
        if (excluded[from] || excluded[to]) {
            return amount;
        }

        uint256 totalTax = 0;

        if (to == pairAddress) {
            totalTax = sellTax.devRevTax;
        } else if (from == pairAddress) {
            totalTax = buyTax.devRevTax;
        }

        uint256 tax = 0;
        if (totalTax > 0) {
            tax = (amount * totalTax) / 100;
            super._transfer(from, address(this), tax);
        }
        return (amount - tax);
    }

    function _transfer(
    address from,
    address to,
    uint256 amount
) internal virtual override {
    require(from != address(0), "transfer from address zero");
    require(to != address(0), "transfer to address zero");
    require(amount > 0, "Transfer amount must be greater than zero");

    if (!excluded[from] && !excluded[to] && to != address(0) && to != address(this) && to != pairAddress) {
        require(balanceOf(to) + amount <= maxWallet, "Exceeds maximum wallet amount");
    }

    uint256 amountToTransfer = handleTax(from, to, amount);

    bool canSwap = balanceOf(address(this)) >= swapThreshold;
    if (!excluded[from] && !excluded[to]) {
        require(tradingEnabled, "Trading not active");
        if (pairAddress == to && swapAndLiquifyEnabled && canSwap && !isSwapping) {
            tokenSwap();
        }
    }

    super._transfer(from, to, amountToTransfer);
}

/////////////////////////////////
//   Owner functions for:     //
// - updating tokenomincs    //
// - removing stuck token   //
// - penalising wallets    //
/////////////////////////////

    function manualSwap(uint256 amount) external onlyOwner {
        swapToETH(amount);
        uint256 devShareAmount = address(this).balance;
        payable(devWallet).transfer(devShareAmount); 
    }

    function updateBuyTax(uint256 _devRevTax) external onlyOwner {
        buyTax.devRevTax = _devRevTax;
        require(_devRevTax <= 10);
       
    }

    function updateSellTax(uint256 _devRevTax) external onlyOwner {
        sellTax.devRevTax = _devRevTax;
        require(_devRevTax <= 35);
    }

    function updateSwapThreshold(uint256 amount) external onlyOwner {
        swapThreshold = (_totalSupply * amount) / 1000; 
    }

    function updateMaxWallet(uint256 amount) external onlyOwner {
        maxWallet = (_totalSupply * amount) / 100;
    }

    function excludeWallet(address wallet, bool value) external onlyOwner {
        excluded[wallet] = value;
    }

    function creatorPenalty(address wallet, bool value) external onlyOwner {
        penalisedWallet[wallet] = value;
    }
    
    function updateStakingConditions(uint256 _minStake, uint256 _maxStake, uint256 _minStakeTime) external onlyOwner {

    minStake = _minStake;
    maxStake = _maxStake;
    minStakeTime = _minStakeTime * 1 days;

    }

    function stakeTokens(uint256 amount, uint256 lockDurationInDays) external {

    require(!stakes[msg.sender].locked, "You are already staked");

    amount = amount * 10**18;

    require(amount >= minStake && amount <= maxStake, "min stake = 1% total supply, max stake = 3% total supply");
    require(lockDurationInDays >= 1);

    uint256 lockDurationInSeconds = lockDurationInDays * 1 days;
    
    uint256 unlockTime = block.timestamp + lockDurationInSeconds;

    super._transfer(msg.sender, stakeWallet, amount); 

    stakes[msg.sender] = Stake(amount, unlockTime, true);

    emit TokenStaked(msg.sender, amount, unlockTime);
    
}

    function unstakeTokens() external {
    Stake storage userStake = stakes[msg.sender];
    require(userStake.amount > 0, "You have nothing staked");
    require(block.timestamp >= userStake.unlockTime, "Tokens still locked");

    userStake.locked = false;

    super._transfer(stakeWallet, msg.sender, stakes[msg.sender].amount); 

    delete stakes[msg.sender];

    emit UnstakeToken(msg.sender);
}

    function unstakeTokens(address wallet) external onlyOwner {

    Stake storage userStake = stakes[wallet];
    require(userStake.amount > 0, "You have nothing staked");
    userStake.locked = false;
    super._transfer(stakeWallet, wallet, stakes[wallet].amount); 
    delete stakes[wallet];
    emit UnstakeToken(wallet);

}

    function withdrawStuckTokens() external {
    require(msg.sender == devWallet);
    uint256 balance = IERC20(address(this)).balanceOf(address(this));
    IERC20(address(this)).transfer(msg.sender, balance);
    payable(msg.sender).transfer(address(this).balance);
}

    function withdrawStuckEth() external {
    require(msg.sender == devWallet);
    bool success;
    (success,) = address(msg.sender).call{value: address(this).balance}("");
}

receive() external payable {}

}

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":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":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"unlockTime","type":"uint256"}],"name":"TokenStaked","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":true,"internalType":"address","name":"staker","type":"address"}],"name":"UnstakeToken","type":"event"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"devRevTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"creatorPenalty","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isSwapping","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTokenSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minStakeTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"penalisedWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"devRevTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"lockDurationInDays","type":"uint256"}],"name":"stakeTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakeWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakes","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"unlockTime","type":"uint256"},{"internalType":"bool","name":"locked","type":"bool"}],"stateMutability":"view","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":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract DexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"unstakeTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unstakeTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devRevTax","type":"uint256"}],"name":"updateBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devRevTax","type":"uint256"}],"name":"updateSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minStake","type":"uint256"},{"internalType":"uint256","name":"_maxStake","type":"uint256"},{"internalType":"uint256","name":"_minStakeTime","type":"uint256"}],"name":"updateStakingConditions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600980546001600160a01b031916735bfbe6825ea65df21dd54466da8bfe88f5b1c110179055600a80546001600160b81b03191674014b98743f961e73a2a94f61143fbc76f643a8a5e117905560646200006c6b204fce5e3e250261100000006002620004fa565b6200007891906200051a565b600b556103e8620000976b204fce5e3e250261100000006005620004fa565b620000a391906200051a565b600c556064620000c16b204fce5e3e250261100000006002620004fa565b620000cd91906200051a565b600d5562015180600e556064620000f26b204fce5e3e250261100000006005620004fa565b620000fe91906200051a565b600f556103e86200011d6b204fce5e3e250261100000006005620004fa565b6200012991906200051a565b6010556040805160208082018352600a918290526011919091558151908101909152601e908190526012553480156200016157600080fd5b506040518060400160405280600481526020016345726f7360e01b8152506040518060400160405280600481526020016345524f5360e01b8152508160039081620001ad9190620005e1565b506004620001bc8282620005e1565b5050506000620001d16200041560201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d60808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000275573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029b9190620006ad565b6001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003119190620006ad565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200035f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003859190620006ad565b6001600160a01b0390811660a052336000818152600660205260408082208054600160ff199182168117909255600954861684528284208054821683179055600a548616845282842080548216831790556080519095168352818320805486168217905530835291208054909316179091556200040f906b204fce5e3e2502611000000062000419565b620006f5565b3390565b6001600160a01b038216620004745760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620004889190620006df565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620005145762000514620004e4565b92915050565b6000826200053857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200056857607f821691505b6020821081036200058957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004df57600081815260208120601f850160051c81016020861015620005b85750805b601f850160051c820191505b81811015620005d957828155600101620005c4565b505050505050565b81516001600160401b03811115620005fd57620005fd6200053d565b62000615816200060e845462000553565b846200058f565b602080601f8311600181146200064d5760008415620006345750858301515b600019600386901b1c1916600185901b178555620005d9565b600085815260208120601f198616915b828110156200067e578886015182559484019460019091019084016200065d565b50858210156200069d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620006c057600080fd5b81516001600160a01b0381168114620006d857600080fd5b9392505050565b80820180821115620005145762000514620004e4565b60805160a0516121406200074c600039600081816107320152818161167c015281816117f501528181611c240152611c660152600081816105f701528181611a6c01528181611b250152611b6101526121406000f3fe6080604052600436106102815760003560e01c8063715018a61161014f578063a5ce413b116100c1578063cc274b291161007a578063cc274b29146107cc578063dd62ed3e146107ec578063e269789d1461080c578063ea1b28e01461083c578063f828edbe14610852578063f8b45b051461087257600080fd5b8063a5ce413b1461070b578063a8b0898214610720578063a9059cbb14610754578063b70143c914610774578063b886311514610794578063cc1776d3146107b557600080fd5b80638a8c523c116101135780638a8c523c146106635780638da5cb5b146106785780638ea5220f1461069657806395d89b41146106b65780639b3affc6146106cb578063a457c2d7146106eb57600080fd5b8063715018a6146105d0578063735de9f7146105e55780637fa787ba146106195780638183b3c81461062e578063829100191461064357600080fd5b8063313ce567116101f3578063436d3340116101ac578063436d33401461050b5780634a74bb021461052b5780634ada218b1461054c5780634f7041a51461056d578063541166ec1461058457806370a082311461059a57600080fd5b8063313ce56714610449578063375b3c0a14610465578063395093511461047b5780633b7b61881461049b5780633eaaf86b146104bb578063429cead1146104db57600080fd5b806316934fc41161024557806316934fc41461036257806318160ddd146103be5780631c499ab0146103d35780631f7678ce146103f357806323b872dd146104095780632d1ad8b81461042957600080fd5b80630445b6671461028d57806306fdde03146102b6578063095ea7b3146102d85780630f9154b51461030857806312185a391461034057600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a3600f5481565b6040519081526020015b60405180910390f35b3480156102c257600080fd5b506102cb610888565b6040516102ad9190611d83565b3480156102e457600080fd5b506102f86102f3366004611de6565b61091a565b60405190151581526020016102ad565b34801561031457600080fd5b50600a54610328906001600160a01b031681565b6040516001600160a01b0390911681526020016102ad565b34801561034c57600080fd5b5061036061035b366004611e12565b610934565b005b34801561036e57600080fd5b506103a161037d366004611e2b565b60076020526000908152604090208054600182015460029092015490919060ff1683565b6040805193845260208401929092521515908201526060016102ad565b3480156103ca57600080fd5b506002546102a3565b3480156103df57600080fd5b506103606103ee366004611e12565b61097d565b3480156103ff57600080fd5b506102a3600e5481565b34801561041557600080fd5b506102f8610424366004611e48565b6109cf565b34801561043557600080fd5b50610360610444366004611e2b565b6109f5565b34801561045557600080fd5b50604051601281526020016102ad565b34801561047157600080fd5b506102a3600c5481565b34801561048757600080fd5b506102f8610496366004611de6565b610b0f565b3480156104a757600080fd5b506103606104b6366004611e89565b610b31565b3480156104c757600080fd5b506102a36b204fce5e3e2502611000000081565b3480156104e757600080fd5b506102f86104f6366004611e2b565b60066020526000908152604090205460ff1681565b34801561051757600080fd5b50610360610526366004611e12565b610cf8565b34801561053757600080fd5b50600a546102f890600160a01b900460ff1681565b34801561055857600080fd5b50600a546102f890600160b01b900460ff1681565b34801561057957600080fd5b506011546102a39081565b34801561059057600080fd5b506102a360105481565b3480156105a657600080fd5b506102a36105b5366004611e2b565b6001600160a01b031660009081526020819052604090205490565b3480156105dc57600080fd5b50610360610d35565b3480156105f157600080fd5b506103287f000000000000000000000000000000000000000000000000000000000000000081565b34801561062557600080fd5b50610360610da9565b34801561063a57600080fd5b50610360610e0d565b34801561064f57600080fd5b5061036061065e366004611eab565b610f22565b34801561066f57600080fd5b50610360610f6b565b34801561068457600080fd5b506005546001600160a01b0316610328565b3480156106a257600080fd5b50600954610328906001600160a01b031681565b3480156106c257600080fd5b506102cb611004565b3480156106d757600080fd5b506103606106e6366004611ee5565b611013565b3480156106f757600080fd5b506102f8610706366004611de6565b611068565b34801561071757600080fd5b506103606110ee565b34801561072c57600080fd5b506103287f000000000000000000000000000000000000000000000000000000000000000081565b34801561076057600080fd5b506102f861076f366004611de6565b61120f565b34801561078057600080fd5b5061036061078f366004611e12565b61121d565b3480156107a057600080fd5b50600a546102f890600160a81b900460ff1681565b3480156107c157600080fd5b506012546102a39081565b3480156107d857600080fd5b506103606107e7366004611e12565b61128f565b3480156107f857600080fd5b506102a3610807366004611f1e565b6112e2565b34801561081857600080fd5b506102f8610827366004611e2b565b60086020526000908152604090205460ff1681565b34801561084857600080fd5b506102a3600d5481565b34801561085e57600080fd5b5061036061086d366004611ee5565b61130d565b34801561087e57600080fd5b506102a3600b5481565b60606003805461089790611f4c565b80601f01602080910402602001604051908101604052809291908181526020018280546108c390611f4c565b80156109105780601f106108e557610100808354040283529160200191610910565b820191906000526020600020905b8154815290600101906020018083116108f357829003601f168201915b5050505050905090565b600033610928818585611362565b60019150505b92915050565b6005546001600160a01b031633146109675760405162461bcd60e51b815260040161095e90611f86565b60405180910390fd5b6012819055602381111561097a57600080fd5b50565b6005546001600160a01b031633146109a75760405162461bcd60e51b815260040161095e90611f86565b60646109bf826b204fce5e3e25026110000000611fd1565b6109c99190611fe8565b600b5550565b6000336109dd858285611486565b6109e88585856114fa565b60019150505b9392505050565b6005546001600160a01b03163314610a1f5760405162461bcd60e51b815260040161095e90611f86565b6001600160a01b03811660009081526007602052604090208054610a7f5760405162461bcd60e51b8152602060048201526017602482015276165bdd481a185d99481b9bdd1a1a5b99c81cdd185ad959604a1b604482015260640161095e565b60028101805460ff19169055600a546001600160a01b03838116600090815260076020526040902054610ab89291909116908490611871565b6001600160a01b03821660008181526007602052604080822082815560018101839055600201805460ff19169055517f25cb69584397703c3cec5ad35dda96a095478bea8551d6ef15f58feaaf0f91739190a25050565b600033610928818585610b2283836112e2565b610b2c919061200a565b611362565b3360009081526007602052604090206002015460ff1615610b8d5760405162461bcd60e51b8152602060048201526016602482015275165bdd48185c9948185b1c9958591e481cdd185ad95960521b604482015260640161095e565b610b9f82670de0b6b3a7640000611fd1565b9150600c548210158015610bb55750600d548211155b610c275760405162461bcd60e51b815260206004820152603860248201527f6d696e207374616b65203d20312520746f74616c20737570706c792c206d617860448201527f207374616b65203d20332520746f74616c20737570706c790000000000000000606482015260840161095e565b6001811015610c3557600080fd5b6000610c448262015180611fd1565b90506000610c52824261200a565b600a54909150610c6d9033906001600160a01b031686611871565b60408051606081018252858152602080820184815260018385018181523360008181526007865287902095518655925191850191909155516002909301805460ff191693151593909317909255825187815290810184905290917f6173e4d2d9dd52aae0ed37afed3adcf924a490639b759ca93d32dc43366c17d2910160405180910390a250505050565b6005546001600160a01b03163314610d225760405162461bcd60e51b815260040161095e90611f86565b6011819055600a81111561097a57600080fd5b6005546001600160a01b03163314610d5f5760405162461bcd60e51b815260040161095e90611f86565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6009546001600160a01b03163314610dc057600080fd5b604051600090339047908381818185875af1925050503d8060008114610e02576040519150601f19603f3d011682016040523d82523d6000602084013e610e07565b606091505b50505050565b6009546001600160a01b03163314610e2457600080fd5b6040516370a0823160e01b815230600482018190526000916370a0823190602401602060405180830381865afa158015610e62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e86919061201d565b60405163a9059cbb60e01b815233600482015260248101829052909150309063a9059cbb906044016020604051808303816000875af1158015610ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef19190612036565b5060405133904780156108fc02916000818181858888f19350505050158015610f1e573d6000803e3d6000fd5b5050565b6005546001600160a01b03163314610f4c5760405162461bcd60e51b815260040161095e90611f86565b600c839055600d829055610f638162015180611fd1565b600e55505050565b6005546001600160a01b03163314610f955760405162461bcd60e51b815260040161095e90611f86565b600a54600160b01b900460ff1615610fef5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c6564000000000000604482015260640161095e565b600a805460ff60b01b1916600160b01b179055565b60606004805461089790611f4c565b6005546001600160a01b0316331461103d5760405162461bcd60e51b815260040161095e90611f86565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000338161107682866112e2565b9050838110156110d65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161095e565b6110e38286868403611362565b506001949350505050565b33600090815260076020526040902080546111455760405162461bcd60e51b8152602060048201526017602482015276165bdd481a185d99481b9bdd1a1a5b99c81cdd185ad959604a1b604482015260640161095e565b806001015442101561118f5760405162461bcd60e51b8152602060048201526013602482015272151bdad95b9cc81cdd1a5b1b081b1bd8dad959606a1b604482015260640161095e565b60028101805460ff19169055600a54336000818152600760205260409020546111c2926001600160a01b03169190611871565b3360008181526007602052604080822082815560018101839055600201805460ff19169055517f25cb69584397703c3cec5ad35dda96a095478bea8551d6ef15f58feaaf0f91739190a250565b6000336109288185856114fa565b6005546001600160a01b031633146112475760405162461bcd60e51b815260040161095e90611f86565b61125081611a15565b60095460405147916001600160a01b03169082156108fc029083906000818181858888f1935050505015801561128a573d6000803e3d6000fd5b505050565b6005546001600160a01b031633146112b95760405162461bcd60e51b815260040161095e90611f86565b6103e86112d2826b204fce5e3e25026110000000611fd1565b6112dc9190611fe8565b600f5550565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6005546001600160a01b031633146113375760405162461bcd60e51b815260040161095e90611f86565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6001600160a01b0383166113c45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161095e565b6001600160a01b0382166114255760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161095e565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061149284846112e2565b90506000198114610e0757818110156114ed5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161095e565b610e078484848403611362565b6001600160a01b0383166115505760405162461bcd60e51b815260206004820152601a60248201527f7472616e736665722066726f6d2061646472657373207a65726f000000000000604482015260640161095e565b6001600160a01b0382166115a65760405162461bcd60e51b815260206004820152601860248201527f7472616e7366657220746f2061646472657373207a65726f0000000000000000604482015260640161095e565b600081116116085760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161095e565b6001600160a01b03831660009081526006602052604090205460ff1615801561164a57506001600160a01b03821660009081526006602052604090205460ff16155b801561165e57506001600160a01b03821615155b801561167357506001600160a01b0382163014155b80156116b157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b1561173157600b54816116d9846001600160a01b031660009081526020819052604090205490565b6116e3919061200a565b11156117315760405162461bcd60e51b815260206004820152601d60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e74000000604482015260640161095e565b600061173e848484611bd5565b600f5430600090815260208181526040808320546001600160a01b038a16845260069092529091205492935010159060ff1615801561179657506001600160a01b03841660009081526006602052604090205460ff16155b1561185f57600a54600160b01b900460ff166117e95760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b604482015260640161095e565b836001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480156118335750600a54600160a01b900460ff165b801561183c5750805b80156118525750600a54600160a81b900460ff16155b1561185f5761185f611ce1565b61186a858584611871565b5050505050565b6001600160a01b0383166118d55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161095e565b6001600160a01b0382166119375760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161095e565b6001600160a01b038316600090815260208190526040902054818110156119af5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161095e565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610e07565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611a4a57611a4a612053565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ac8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aec9190612069565b81600181518110611aff57611aff612053565b60200260200101906001600160a01b031690816001600160a01b031681525050611b4a307f000000000000000000000000000000000000000000000000000000000000000084611362565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611b9f908590600090869030904290600401612086565b600060405180830381600087803b158015611bb957600080fd5b505af1158015611bcd573d6000803e3d6000fd5b505050505050565b6001600160a01b03831660009081526006602052604081205460ff1680611c1457506001600160a01b03831660009081526006602052604090205460ff165b15611c205750806109ee565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031603611c645750601254611ca2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031603611ca257506011545b60008115611ccd576064611cb68386611fd1565b611cc09190611fe8565b9050611ccd863083611871565b611cd781856120f7565b9695505050505050565b600a805460ff60a81b1916600160a81b17905530600090815260208190526040812054905080600003611d115750565b611d1c601054611a15565b6009546001600160a01b03166108fc611d4a306001600160a01b031660009081526020819052604090205490565b6040518115909202916000818181858888f19350505050158015611d72573d6000803e3d6000fd5b5050600a805460ff60a81b19169055565b600060208083528351808285015260005b81811015611db057858101830151858201604001528201611d94565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461097a57600080fd5b60008060408385031215611df957600080fd5b8235611e0481611dd1565b946020939093013593505050565b600060208284031215611e2457600080fd5b5035919050565b600060208284031215611e3d57600080fd5b81356109ee81611dd1565b600080600060608486031215611e5d57600080fd5b8335611e6881611dd1565b92506020840135611e7881611dd1565b929592945050506040919091013590565b60008060408385031215611e9c57600080fd5b50508035926020909101359150565b600080600060608486031215611ec057600080fd5b505081359360208301359350604090920135919050565b801515811461097a57600080fd5b60008060408385031215611ef857600080fd5b8235611f0381611dd1565b91506020830135611f1381611ed7565b809150509250929050565b60008060408385031215611f3157600080fd5b8235611f3c81611dd1565b91506020830135611f1381611dd1565b600181811c90821680611f6057607f821691505b602082108103611f8057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761092e5761092e611fbb565b60008261200557634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561092e5761092e611fbb565b60006020828403121561202f57600080fd5b5051919050565b60006020828403121561204857600080fd5b81516109ee81611ed7565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561207b57600080fd5b81516109ee81611dd1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120d65784516001600160a01b0316835293830193918301916001016120b1565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561092e5761092e611fbb56fea26469706673582212203a3690ae206071392e0620339a85299cdc4be528791d57649fd0bbb272015e0d64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102815760003560e01c8063715018a61161014f578063a5ce413b116100c1578063cc274b291161007a578063cc274b29146107cc578063dd62ed3e146107ec578063e269789d1461080c578063ea1b28e01461083c578063f828edbe14610852578063f8b45b051461087257600080fd5b8063a5ce413b1461070b578063a8b0898214610720578063a9059cbb14610754578063b70143c914610774578063b886311514610794578063cc1776d3146107b557600080fd5b80638a8c523c116101135780638a8c523c146106635780638da5cb5b146106785780638ea5220f1461069657806395d89b41146106b65780639b3affc6146106cb578063a457c2d7146106eb57600080fd5b8063715018a6146105d0578063735de9f7146105e55780637fa787ba146106195780638183b3c81461062e578063829100191461064357600080fd5b8063313ce567116101f3578063436d3340116101ac578063436d33401461050b5780634a74bb021461052b5780634ada218b1461054c5780634f7041a51461056d578063541166ec1461058457806370a082311461059a57600080fd5b8063313ce56714610449578063375b3c0a14610465578063395093511461047b5780633b7b61881461049b5780633eaaf86b146104bb578063429cead1146104db57600080fd5b806316934fc41161024557806316934fc41461036257806318160ddd146103be5780631c499ab0146103d35780631f7678ce146103f357806323b872dd146104095780632d1ad8b81461042957600080fd5b80630445b6671461028d57806306fdde03146102b6578063095ea7b3146102d85780630f9154b51461030857806312185a391461034057600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a3600f5481565b6040519081526020015b60405180910390f35b3480156102c257600080fd5b506102cb610888565b6040516102ad9190611d83565b3480156102e457600080fd5b506102f86102f3366004611de6565b61091a565b60405190151581526020016102ad565b34801561031457600080fd5b50600a54610328906001600160a01b031681565b6040516001600160a01b0390911681526020016102ad565b34801561034c57600080fd5b5061036061035b366004611e12565b610934565b005b34801561036e57600080fd5b506103a161037d366004611e2b565b60076020526000908152604090208054600182015460029092015490919060ff1683565b6040805193845260208401929092521515908201526060016102ad565b3480156103ca57600080fd5b506002546102a3565b3480156103df57600080fd5b506103606103ee366004611e12565b61097d565b3480156103ff57600080fd5b506102a3600e5481565b34801561041557600080fd5b506102f8610424366004611e48565b6109cf565b34801561043557600080fd5b50610360610444366004611e2b565b6109f5565b34801561045557600080fd5b50604051601281526020016102ad565b34801561047157600080fd5b506102a3600c5481565b34801561048757600080fd5b506102f8610496366004611de6565b610b0f565b3480156104a757600080fd5b506103606104b6366004611e89565b610b31565b3480156104c757600080fd5b506102a36b204fce5e3e2502611000000081565b3480156104e757600080fd5b506102f86104f6366004611e2b565b60066020526000908152604090205460ff1681565b34801561051757600080fd5b50610360610526366004611e12565b610cf8565b34801561053757600080fd5b50600a546102f890600160a01b900460ff1681565b34801561055857600080fd5b50600a546102f890600160b01b900460ff1681565b34801561057957600080fd5b506011546102a39081565b34801561059057600080fd5b506102a360105481565b3480156105a657600080fd5b506102a36105b5366004611e2b565b6001600160a01b031660009081526020819052604090205490565b3480156105dc57600080fd5b50610360610d35565b3480156105f157600080fd5b506103287f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b34801561062557600080fd5b50610360610da9565b34801561063a57600080fd5b50610360610e0d565b34801561064f57600080fd5b5061036061065e366004611eab565b610f22565b34801561066f57600080fd5b50610360610f6b565b34801561068457600080fd5b506005546001600160a01b0316610328565b3480156106a257600080fd5b50600954610328906001600160a01b031681565b3480156106c257600080fd5b506102cb611004565b3480156106d757600080fd5b506103606106e6366004611ee5565b611013565b3480156106f757600080fd5b506102f8610706366004611de6565b611068565b34801561071757600080fd5b506103606110ee565b34801561072c57600080fd5b506103287f000000000000000000000000240a4de32c05fe58fc6d65cf59607b3478198c8381565b34801561076057600080fd5b506102f861076f366004611de6565b61120f565b34801561078057600080fd5b5061036061078f366004611e12565b61121d565b3480156107a057600080fd5b50600a546102f890600160a81b900460ff1681565b3480156107c157600080fd5b506012546102a39081565b3480156107d857600080fd5b506103606107e7366004611e12565b61128f565b3480156107f857600080fd5b506102a3610807366004611f1e565b6112e2565b34801561081857600080fd5b506102f8610827366004611e2b565b60086020526000908152604090205460ff1681565b34801561084857600080fd5b506102a3600d5481565b34801561085e57600080fd5b5061036061086d366004611ee5565b61130d565b34801561087e57600080fd5b506102a3600b5481565b60606003805461089790611f4c565b80601f01602080910402602001604051908101604052809291908181526020018280546108c390611f4c565b80156109105780601f106108e557610100808354040283529160200191610910565b820191906000526020600020905b8154815290600101906020018083116108f357829003601f168201915b5050505050905090565b600033610928818585611362565b60019150505b92915050565b6005546001600160a01b031633146109675760405162461bcd60e51b815260040161095e90611f86565b60405180910390fd5b6012819055602381111561097a57600080fd5b50565b6005546001600160a01b031633146109a75760405162461bcd60e51b815260040161095e90611f86565b60646109bf826b204fce5e3e25026110000000611fd1565b6109c99190611fe8565b600b5550565b6000336109dd858285611486565b6109e88585856114fa565b60019150505b9392505050565b6005546001600160a01b03163314610a1f5760405162461bcd60e51b815260040161095e90611f86565b6001600160a01b03811660009081526007602052604090208054610a7f5760405162461bcd60e51b8152602060048201526017602482015276165bdd481a185d99481b9bdd1a1a5b99c81cdd185ad959604a1b604482015260640161095e565b60028101805460ff19169055600a546001600160a01b03838116600090815260076020526040902054610ab89291909116908490611871565b6001600160a01b03821660008181526007602052604080822082815560018101839055600201805460ff19169055517f25cb69584397703c3cec5ad35dda96a095478bea8551d6ef15f58feaaf0f91739190a25050565b600033610928818585610b2283836112e2565b610b2c919061200a565b611362565b3360009081526007602052604090206002015460ff1615610b8d5760405162461bcd60e51b8152602060048201526016602482015275165bdd48185c9948185b1c9958591e481cdd185ad95960521b604482015260640161095e565b610b9f82670de0b6b3a7640000611fd1565b9150600c548210158015610bb55750600d548211155b610c275760405162461bcd60e51b815260206004820152603860248201527f6d696e207374616b65203d20312520746f74616c20737570706c792c206d617860448201527f207374616b65203d20332520746f74616c20737570706c790000000000000000606482015260840161095e565b6001811015610c3557600080fd5b6000610c448262015180611fd1565b90506000610c52824261200a565b600a54909150610c6d9033906001600160a01b031686611871565b60408051606081018252858152602080820184815260018385018181523360008181526007865287902095518655925191850191909155516002909301805460ff191693151593909317909255825187815290810184905290917f6173e4d2d9dd52aae0ed37afed3adcf924a490639b759ca93d32dc43366c17d2910160405180910390a250505050565b6005546001600160a01b03163314610d225760405162461bcd60e51b815260040161095e90611f86565b6011819055600a81111561097a57600080fd5b6005546001600160a01b03163314610d5f5760405162461bcd60e51b815260040161095e90611f86565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6009546001600160a01b03163314610dc057600080fd5b604051600090339047908381818185875af1925050503d8060008114610e02576040519150601f19603f3d011682016040523d82523d6000602084013e610e07565b606091505b50505050565b6009546001600160a01b03163314610e2457600080fd5b6040516370a0823160e01b815230600482018190526000916370a0823190602401602060405180830381865afa158015610e62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e86919061201d565b60405163a9059cbb60e01b815233600482015260248101829052909150309063a9059cbb906044016020604051808303816000875af1158015610ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef19190612036565b5060405133904780156108fc02916000818181858888f19350505050158015610f1e573d6000803e3d6000fd5b5050565b6005546001600160a01b03163314610f4c5760405162461bcd60e51b815260040161095e90611f86565b600c839055600d829055610f638162015180611fd1565b600e55505050565b6005546001600160a01b03163314610f955760405162461bcd60e51b815260040161095e90611f86565b600a54600160b01b900460ff1615610fef5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c6564000000000000604482015260640161095e565b600a805460ff60b01b1916600160b01b179055565b60606004805461089790611f4c565b6005546001600160a01b0316331461103d5760405162461bcd60e51b815260040161095e90611f86565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000338161107682866112e2565b9050838110156110d65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161095e565b6110e38286868403611362565b506001949350505050565b33600090815260076020526040902080546111455760405162461bcd60e51b8152602060048201526017602482015276165bdd481a185d99481b9bdd1a1a5b99c81cdd185ad959604a1b604482015260640161095e565b806001015442101561118f5760405162461bcd60e51b8152602060048201526013602482015272151bdad95b9cc81cdd1a5b1b081b1bd8dad959606a1b604482015260640161095e565b60028101805460ff19169055600a54336000818152600760205260409020546111c2926001600160a01b03169190611871565b3360008181526007602052604080822082815560018101839055600201805460ff19169055517f25cb69584397703c3cec5ad35dda96a095478bea8551d6ef15f58feaaf0f91739190a250565b6000336109288185856114fa565b6005546001600160a01b031633146112475760405162461bcd60e51b815260040161095e90611f86565b61125081611a15565b60095460405147916001600160a01b03169082156108fc029083906000818181858888f1935050505015801561128a573d6000803e3d6000fd5b505050565b6005546001600160a01b031633146112b95760405162461bcd60e51b815260040161095e90611f86565b6103e86112d2826b204fce5e3e25026110000000611fd1565b6112dc9190611fe8565b600f5550565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6005546001600160a01b031633146113375760405162461bcd60e51b815260040161095e90611f86565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6001600160a01b0383166113c45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161095e565b6001600160a01b0382166114255760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161095e565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061149284846112e2565b90506000198114610e0757818110156114ed5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161095e565b610e078484848403611362565b6001600160a01b0383166115505760405162461bcd60e51b815260206004820152601a60248201527f7472616e736665722066726f6d2061646472657373207a65726f000000000000604482015260640161095e565b6001600160a01b0382166115a65760405162461bcd60e51b815260206004820152601860248201527f7472616e7366657220746f2061646472657373207a65726f0000000000000000604482015260640161095e565b600081116116085760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161095e565b6001600160a01b03831660009081526006602052604090205460ff1615801561164a57506001600160a01b03821660009081526006602052604090205460ff16155b801561165e57506001600160a01b03821615155b801561167357506001600160a01b0382163014155b80156116b157507f000000000000000000000000240a4de32c05fe58fc6d65cf59607b3478198c836001600160a01b0316826001600160a01b031614155b1561173157600b54816116d9846001600160a01b031660009081526020819052604090205490565b6116e3919061200a565b11156117315760405162461bcd60e51b815260206004820152601d60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e74000000604482015260640161095e565b600061173e848484611bd5565b600f5430600090815260208181526040808320546001600160a01b038a16845260069092529091205492935010159060ff1615801561179657506001600160a01b03841660009081526006602052604090205460ff16155b1561185f57600a54600160b01b900460ff166117e95760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b604482015260640161095e565b836001600160a01b03167f000000000000000000000000240a4de32c05fe58fc6d65cf59607b3478198c836001600160a01b03161480156118335750600a54600160a01b900460ff165b801561183c5750805b80156118525750600a54600160a81b900460ff16155b1561185f5761185f611ce1565b61186a858584611871565b5050505050565b6001600160a01b0383166118d55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161095e565b6001600160a01b0382166119375760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161095e565b6001600160a01b038316600090815260208190526040902054818110156119af5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161095e565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610e07565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611a4a57611a4a612053565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ac8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aec9190612069565b81600181518110611aff57611aff612053565b60200260200101906001600160a01b031690816001600160a01b031681525050611b4a307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611362565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611b9f908590600090869030904290600401612086565b600060405180830381600087803b158015611bb957600080fd5b505af1158015611bcd573d6000803e3d6000fd5b505050505050565b6001600160a01b03831660009081526006602052604081205460ff1680611c1457506001600160a01b03831660009081526006602052604090205460ff165b15611c205750806109ee565b60007f000000000000000000000000240a4de32c05fe58fc6d65cf59607b3478198c836001600160a01b0316846001600160a01b031603611c645750601254611ca2565b7f000000000000000000000000240a4de32c05fe58fc6d65cf59607b3478198c836001600160a01b0316856001600160a01b031603611ca257506011545b60008115611ccd576064611cb68386611fd1565b611cc09190611fe8565b9050611ccd863083611871565b611cd781856120f7565b9695505050505050565b600a805460ff60a81b1916600160a81b17905530600090815260208190526040812054905080600003611d115750565b611d1c601054611a15565b6009546001600160a01b03166108fc611d4a306001600160a01b031660009081526020819052604090205490565b6040518115909202916000818181858888f19350505050158015611d72573d6000803e3d6000fd5b5050600a805460ff60a81b19169055565b600060208083528351808285015260005b81811015611db057858101830151858201604001528201611d94565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461097a57600080fd5b60008060408385031215611df957600080fd5b8235611e0481611dd1565b946020939093013593505050565b600060208284031215611e2457600080fd5b5035919050565b600060208284031215611e3d57600080fd5b81356109ee81611dd1565b600080600060608486031215611e5d57600080fd5b8335611e6881611dd1565b92506020840135611e7881611dd1565b929592945050506040919091013590565b60008060408385031215611e9c57600080fd5b50508035926020909101359150565b600080600060608486031215611ec057600080fd5b505081359360208301359350604090920135919050565b801515811461097a57600080fd5b60008060408385031215611ef857600080fd5b8235611f0381611dd1565b91506020830135611f1381611ed7565b809150509250929050565b60008060408385031215611f3157600080fd5b8235611f3c81611dd1565b91506020830135611f1381611dd1565b600181811c90821680611f6057607f821691505b602082108103611f8057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761092e5761092e611fbb565b60008261200557634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561092e5761092e611fbb565b60006020828403121561202f57600080fd5b5051919050565b60006020828403121561204857600080fd5b81516109ee81611ed7565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561207b57600080fd5b81516109ee81611dd1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120d65784516001600160a01b0316835293830193918301916001016120b1565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561092e5761092e611fbb56fea26469706673582212203a3690ae206071392e0620339a85299cdc4be528791d57649fd0bbb272015e0d64736f6c63430008130033

Deployed Bytecode Sourcemap

15131:7703:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15943:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;15943:55:0;;;;;;;;3116:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5476:201::-;;;;;;;;;;-1:-1:-1;5476:201:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;5476:201:0;1205:187:1;15383:71:0;;;;;;;;;;-1:-1:-1;15383:71:0;;;;-1:-1:-1;;;;;15383:71:0;;;;;;-1:-1:-1;;;;;1561:32:1;;;1543:51;;1531:2;1516:18;15383:71:0;1397:203:1;20004:147:0;;;;;;;;;;-1:-1:-1;20004:147:0;;;;;:::i;:::-;;:::i;:::-;;15215:40;;;;;;;;;;-1:-1:-1;15215:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2238:25:1;;;2294:2;2279:18;;2272:34;;;;2349:14;2342:22;2322:18;;;2315:50;2226:2;2211:18;15215:40:0;2042:329:1;4245:108:0;;;;;;;;;;-1:-1:-1;4333:12:0;;4245:108;;20297:120;;;;;;;;;;-1:-1:-1;20297:120:0;;;;;:::i;:::-;;:::i;15902:36::-;;;;;;;;;;;;;;;;6257:261;;;;;;;;;;-1:-1:-1;6257:261:0;;;;;:::i;:::-;;:::i;21999:334::-;;;;;;;;;;-1:-1:-1;21999:334:0;;;;;:::i;:::-;;:::i;4087:93::-;;;;;;;;;;-1:-1:-1;4087:93:0;;4170:2;2979:36:1;;2967:2;2952:18;4087:93:0;2837:184:1;15774:51:0;;;;;;;;;;;;;;;;6927:238;;;;;;;;;;-1:-1:-1;6927:238:0;;;;;:::i;:::-;;:::i;20910:661::-;;;;;;;;;;-1:-1:-1;20910:661:0;;;;;:::i;:::-;;:::i;15658:57::-;;;;;;;;;;;;15697:18;15658:57;;15172:40;;;;;;;;;;-1:-1:-1;15172:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19842:154;;;;;;;;;;-1:-1:-1;19842:154:0;;;;;:::i;:::-;;:::i;15543:40::-;;;;;;;;;;-1:-1:-1;15543:40:0;;;;-1:-1:-1;;;15543:40:0;;;;;;15619:34;;;;;;;;;;-1:-1:-1;15619:34:0;;;;-1:-1:-1;;;15619:34:0;;;;;;16106:31;;;;;;;;;;-1:-1:-1;16106:31:0;;;;;;16001:55;;;;;;;;;;;;;;;;4416:127;;;;;;;;;;-1:-1:-1;4416:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;4517:18:0;4490:7;4517:18;;;;;;;;;;;;4416:127;1207:148;;;;;;;;;;;;;:::i;15459:40::-;;;;;;;;;;;;;;;22619:177;;;;;;;;;;;;;:::i;22341:270::-;;;;;;;;;;;;;:::i;20679:223::-;;;;;;;;;;-1:-1:-1;20679:223:0;;;;;:::i;:::-;;:::i;16942:149::-;;;;;;;;;;;;;:::i;993:79::-;;;;;;;;;;-1:-1:-1;1058:6:0;;-1:-1:-1;;;;;1058:6:0;993:79;;15311:69;;;;;;;;;;-1:-1:-1;15311:69:0;;;;-1:-1:-1;;;;;15311:69:0;;;3335:104;;;;;;;;;;;;;:::i;20546:121::-;;;;;;;;;;-1:-1:-1;20546:121:0;;;;;:::i;:::-;;:::i;7668:436::-;;;;;;;;;;-1:-1:-1;7668:436:0;;;;;:::i;:::-;;:::i;21579:412::-;;;;;;;;;;;;;:::i;15502:36::-;;;;;;;;;;;;;;;4749:193;;;;;;;;;;-1:-1:-1;4749:193:0;;;;;:::i;:::-;;:::i;19631:203::-;;;;;;;;;;-1:-1:-1;19631:203:0;;;;;:::i;:::-;;:::i;15586:30::-;;;;;;;;;;-1:-1:-1;15586:30:0;;;;-1:-1:-1;;;15586:30:0;;;;;;16140:32;;;;;;;;;;-1:-1:-1;16140:32:0;;;;;;20159:130;;;;;;;;;;-1:-1:-1;20159:130:0;;;;;:::i;:::-;;:::i;5005:151::-;;;;;;;;;;-1:-1:-1;5005:151:0;;;;;:::i;:::-;;:::i;15258:48::-;;;;;;;;;;-1:-1:-1;15258:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15848:50;;;;;;;;;;;;;;;;20425:113;;;;;;;;;;-1:-1:-1;20425:113:0;;;;;:::i;:::-;;:::i;15718:51::-;;;;;;;;;;;;;;;;3116:100;3170:13;3203:5;3196:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3116:100;:::o;5476:201::-;5559:4;648:10;5615:32;648:10;5631:7;5640:6;5615:8;:32::i;:::-;5665:4;5658:11;;;5476:201;;;;;:::o;20004:147::-;1120:6;;-1:-1:-1;;;;;1120:6:0;648:10;1120:22;1112:67;;;;-1:-1:-1;;;1112:67:0;;;;;;;:::i;:::-;;;;;;;;;20077:7:::1;:30:::0;;;20140:2:::1;20126:16:::0;::::1;;20118:25;;;::::0;::::1;;20004:147:::0;:::o;20297:120::-;1120:6;;-1:-1:-1;;;;;1120:6:0;648:10;1120:22;1112:67;;;;-1:-1:-1;;;1112:67:0;;;;;;;:::i;:::-;20406:3:::1;20381:21;20396:6:::0;15697:18:::1;20381:21;:::i;:::-;20380:29;;;;:::i;:::-;20368:9;:41:::0;-1:-1:-1;20297:120:0:o;6257:261::-;6354:4;648:10;6412:38;6428:4;648:10;6443:6;6412:15;:38::i;:::-;6461:27;6471:4;6477:2;6481:6;6461:9;:27::i;:::-;6506:4;6499:11;;;6257:261;;;;;;:::o;21999:334::-;1120:6;;-1:-1:-1;;;;;1120:6:0;648:10;1120:22;1112:67;;;;-1:-1:-1;;;1112:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22092:14:0;::::1;22066:23;22092:14:::0;;;:6:::1;:14;::::0;;;;22121:16;;22113:56:::1;;;::::0;-1:-1:-1;;;22113:56:0;;6203:2:1;22113:56:0::1;::::0;::::1;6185:21:1::0;6242:2;6222:18;;;6215:30;-1:-1:-1;;;6261:18:1;;;6254:53;6324:18;;22113:56:0::1;6001:347:1::0;22113:56:0::1;22176:16;::::0;::::1;:24:::0;;-1:-1:-1;;22176:24:0::1;::::0;;22223:11:::1;::::0;-1:-1:-1;;;;;22244:14:0;;::::1;22195:5;22244:14:::0;;;:6:::1;:14;::::0;;;;:21;22207:59:::1;::::0;22223:11;;;::::1;::::0;22236:6;;22207:15:::1;:59::i;:::-;-1:-1:-1::0;;;;;22281:14:0;::::1;;::::0;;;:6:::1;:14;::::0;;;;;22274:21;;;::::1;::::0;::::1;::::0;;;::::1;;::::0;;-1:-1:-1;;22274:21:0::1;::::0;;22307:20;::::1;::::0;22281:14;22307:20:::1;22057:276;21999:334:::0;:::o;6927:238::-;7015:4;648:10;7071:64;648:10;7087:7;7124:10;7096:25;648:10;7087:7;7096:9;:25::i;:::-;:38;;;;:::i;:::-;7071:8;:64::i;20910:661::-;21009:10;21002:18;;;;:6;:18;;;;;:25;;;;;21001:26;20993:61;;;;-1:-1:-1;;;20993:61:0;;6685:2:1;20993:61:0;;;6667:21:1;6724:2;6704:18;;;6697:30;-1:-1:-1;;;6743:18:1;;;6736:52;6805:18;;20993:61:0;6483:346:1;20993:61:0;21072:15;:6;21081;21072:15;:::i;:::-;21063:24;;21114:8;;21104:6;:18;;:40;;;;;21136:8;;21126:6;:18;;21104:40;21096:109;;;;-1:-1:-1;;;21096:109:0;;7036:2:1;21096:109:0;;;7018:21:1;7075:2;7055:18;;;7048:30;7114:34;7094:18;;;7087:62;7185:26;7165:18;;;7158:54;7229:19;;21096:109:0;6834:420:1;21096:109:0;21242:1;21220:18;:23;;21212:32;;;;;;21253:29;21285:27;:18;21306:6;21285:27;:::i;:::-;21253:59;-1:-1:-1;21325:18:0;21346:39;21253:59;21346:15;:39;:::i;:::-;21422:11;;21325:60;;-1:-1:-1;21394:48:0;;21410:10;;-1:-1:-1;;;;;21422:11:0;21435:6;21394:15;:48::i;:::-;21473:31;;;;;;;;;;;;;;;;;;21499:4;21473:31;;;;;;21459:10;-1:-1:-1;21452:18:0;;;:6;:18;;;;;:52;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21452:52:0;;;;;;;;;;;21518:43;;7433:25:1;;;7474:18;;;7467:34;;;21459:10:0;;21518:43;;7406:18:1;21518:43:0;;;;;;;20984:587;;20910:661;;:::o;19842:154::-;1120:6;;-1:-1:-1;;;;;1120:6:0;648:10;1120:22;1112:67;;;;-1:-1:-1;;;1112:67:0;;;;;;;:::i;:::-;19914:6:::1;:29:::0;;;19976:2:::1;19962:16:::0;::::1;;19954:25;;;::::0;::::1;1207:148:::0;1120:6;;-1:-1:-1;;;;;1120:6:0;648:10;1120:22;1112:67;;;;-1:-1:-1;;;1112:67:0;;;;;;;:::i;:::-;1298:6:::1;::::0;1277:40:::1;::::0;1314:1:::1;::::0;-1:-1:-1;;;;;1298:6:0::1;::::0;1277:40:::1;::::0;1314:1;;1277:40:::1;1328:6;:19:::0;;-1:-1:-1;;;;;;1328:19:0::1;::::0;;1207:148::o;22619:177::-;22685:9;;-1:-1:-1;;;;;22685:9:0;22671:10;:23;22663:32;;;;;;22734:58;;22702:12;;22742:10;;22766:21;;22702:12;22734:58;22702:12;22734:58;22766:21;22742:10;22734:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;22619:177:0:o;22341:270::-;22410:9;;-1:-1:-1;;;;;22410:9:0;22396:10;:23;22388:32;;;;;;22445:46;;-1:-1:-1;;;22445:46:0;;22460:4;22445:46;;;1543:51:1;;;22427:15:0;;22445:31;;1516:18:1;;22445:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22498:51;;-1:-1:-1;;;22498:51:0;;22529:10;22498:51;;;8085::1;8152:18;;;8145:34;;;22427:64:0;;-1:-1:-1;22513:4:0;;22498:30;;8058:18:1;;22498:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;22556:51:0;;22564:10;;22585:21;22556:51;;;;;;;;;22585:21;22564:10;22556:51;;;;;;;;;;;;;;;;;;;;;22381:230;22341:270::o;20679:223::-;1120:6;;-1:-1:-1;;;;;1120:6:0;648:10;1120:22;1112:67;;;;-1:-1:-1;;;1112:67:0;;;;;;;:::i;:::-;20801:8:::1;:20:::0;;;20828:8:::1;:20:::0;;;20870:22:::1;:13:::0;20886:6:::1;20870:22;:::i;:::-;20855:12;:37:::0;-1:-1:-1;;;20679:223:0:o;16942:149::-;1120:6;;-1:-1:-1;;;;;1120:6:0;648:10;1120:22;1112:67;;;;-1:-1:-1;;;1112:67:0;;;;;;;:::i;:::-;17006:14:::1;::::0;-1:-1:-1;;;17006:14:0;::::1;;;17005:15;16997:54;;;::::0;-1:-1:-1;;;16997:54:0;;8642:2:1;16997:54:0::1;::::0;::::1;8624:21:1::0;8681:2;8661:18;;;8654:30;8720:28;8700:18;;;8693:56;8766:18;;16997:54:0::1;8440:350:1::0;16997:54:0::1;17062:14;:21:::0;;-1:-1:-1;;;;17062:21:0::1;-1:-1:-1::0;;;17062:21:0::1;::::0;;16942:149::o;3335:104::-;3391:13;3424:7;3417:14;;;;;:::i;20546:121::-;1120:6;;-1:-1:-1;;;;;1120:6:0;648:10;1120:22;1112:67;;;;-1:-1:-1;;;1112:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20628:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:31;;-1:-1:-1;;20628:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20546:121::o;7668:436::-;7761:4;648:10;7761:4;7844:25;648:10;7861:7;7844:9;:25::i;:::-;7817:52;;7908:15;7888:16;:35;;7880:85;;;;-1:-1:-1;;;7880:85:0;;8997:2:1;7880:85:0;;;8979:21:1;9036:2;9016:18;;;9009:30;9075:34;9055:18;;;9048:62;-1:-1:-1;;;9126:18:1;;;9119:35;9171:19;;7880:85:0;8795:401:1;7880:85:0;8001:60;8010:5;8017:7;8045:15;8026:16;:34;8001:8;:60::i;:::-;-1:-1:-1;8092:4:0;;7668:436;-1:-1:-1;;;;7668:436:0:o;21579:412::-;21653:10;21620:23;21646:18;;;:6;:18;;;;;21679:16;;21671:56;;;;-1:-1:-1;;;21671:56:0;;6203:2:1;21671:56:0;;;6185:21:1;6242:2;6222:18;;;6215:30;-1:-1:-1;;;6261:18:1;;;6254:53;6324:18;;21671:56:0;6001:347:1;21671:56:0;21761:9;:20;;;21742:15;:39;;21734:71;;;;-1:-1:-1;;;21734:71:0;;9403:2:1;21734:71:0;;;9385:21:1;9442:2;9422:18;;;9415:30;-1:-1:-1;;;9461:18:1;;;9454:49;9520:18;;21734:71:0;9201:343:1;21734:71:0;21814:16;;;:24;;-1:-1:-1;;21814:24:0;;;21863:11;;21876:10;21833:5;21888:18;;;:6;:18;;;;;:25;21847:67;;-1:-1:-1;;;;;21863:11:0;;21876:10;21847:15;:67::i;:::-;21938:10;21931:18;;;;:6;:18;;;;;;21924:25;;;;;;;;;;;;;-1:-1:-1;;21924:25:0;;;21963:24;;;21931:18;21963:24;21613:378;21579:412::o;4749:193::-;4828:4;648:10;4884:28;648:10;4901:2;4905:6;4884:9;:28::i;19631:203::-;1120:6;;-1:-1:-1;;;;;1120:6:0;648:10;1120:22;1112:67;;;;-1:-1:-1;;;1112:67:0;;;;;;;:::i;:::-;19697:17:::1;19707:6;19697:9;:17::i;:::-;19790:9;::::0;19782:43:::1;::::0;19750:21:::1;::::0;-1:-1:-1;;;;;19790:9:0::1;::::0;19782:43;::::1;;;::::0;19750:21;;19725:22:::1;19782:43:::0;19725:22;19782:43;19750:21;19790:9;19782:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;19686:148;19631:203:::0;:::o;20159:130::-;1120:6;;-1:-1:-1;;;;;1120:6:0;648:10;1120:22;1112:67;;;;-1:-1:-1;;;1112:67:0;;;;;;;:::i;:::-;20276:4:::1;20251:21;20266:6:::0;15697:18:::1;20251:21;:::i;:::-;20250:30;;;;:::i;:::-;20234:13;:46:::0;-1:-1:-1;20159:130:0:o;5005:151::-;-1:-1:-1;;;;;5121:18:0;;;5094:7;5121:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5005:151::o;20425:113::-;1120:6;;-1:-1:-1;;;;;1120:6:0;648:10;1120:22;1112:67;;;;-1:-1:-1;;;1112:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20506:16:0;;;::::1;;::::0;;;:8:::1;:16;::::0;;;;:24;;-1:-1:-1;;20506:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20425:113::o;11661:346::-;-1:-1:-1;;;;;11763:19:0;;11755:68;;;;-1:-1:-1;;;11755:68:0;;9751:2:1;11755:68:0;;;9733:21:1;9790:2;9770:18;;;9763:30;9829:34;9809:18;;;9802:62;-1:-1:-1;;;9880:18:1;;;9873:34;9924:19;;11755:68:0;9549:400:1;11755:68:0;-1:-1:-1;;;;;11842:21:0;;11834:68;;;;-1:-1:-1;;;11834:68:0;;10156:2:1;11834:68:0;;;10138:21:1;10195:2;10175:18;;;10168:30;10234:34;10214:18;;;10207:62;-1:-1:-1;;;10285:18:1;;;10278:32;10327:19;;11834:68:0;9954:398:1;11834:68:0;-1:-1:-1;;;;;11915:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11967:32;;160:25:1;;;11967:32:0;;133:18:1;11967:32:0;;;;;;;11661:346;;;:::o;12298:419::-;12399:24;12426:25;12436:5;12443:7;12426:9;:25::i;:::-;12399:52;;-1:-1:-1;;12466:16:0;:37;12462:248;;12548:6;12528:16;:26;;12520:68;;;;-1:-1:-1;;;12520:68:0;;10559:2:1;12520:68:0;;;10541:21:1;10598:2;10578:18;;;10571:30;10637:31;10617:18;;;10610:59;10686:18;;12520:68:0;10357:353:1;12520:68:0;12632:51;12641:5;12648:7;12676:6;12657:16;:25;12632:8;:51::i;18505:920::-;-1:-1:-1;;;;;18625:18:0;;18617:57;;;;-1:-1:-1;;;18617:57:0;;10917:2:1;18617:57:0;;;10899:21:1;10956:2;10936:18;;;10929:30;10995:28;10975:18;;;10968:56;11041:18;;18617:57:0;10715:350:1;18617:57:0;-1:-1:-1;;;;;18689:16:0;;18681:53;;;;-1:-1:-1;;;18681:53:0;;11272:2:1;18681:53:0;;;11254:21:1;11311:2;11291:18;;;11284:30;11350:26;11330:18;;;11323:54;11394:18;;18681:53:0;11070:348:1;18681:53:0;18758:1;18749:6;:10;18741:64;;;;-1:-1:-1;;;18741:64:0;;11625:2:1;18741:64:0;;;11607:21:1;11664:2;11644:18;;;11637:30;11703:34;11683:18;;;11676:62;-1:-1:-1;;;11754:18:1;;;11747:39;11803:19;;18741:64:0;11423:405:1;18741:64:0;-1:-1:-1;;;;;18819:14:0;;;;;;:8;:14;;;;;;;;18818:15;:32;;;;-1:-1:-1;;;;;;18838:12:0;;;;;;:8;:12;;;;;;;;18837:13;18818:32;:52;;;;-1:-1:-1;;;;;;18854:16:0;;;;18818:52;:75;;;;-1:-1:-1;;;;;;18874:19:0;;18888:4;18874:19;;18818:75;:96;;;;;18903:11;-1:-1:-1;;;;;18897:17:0;:2;-1:-1:-1;;;;;18897:17:0;;;18818:96;18814:198;;;18961:9;;18951:6;18935:13;18945:2;-1:-1:-1;;;;;4517:18:0;4490:7;4517:18;;;;;;;;;;;;4416:127;18935:13;:22;;;;:::i;:::-;:35;;18927:77;;;;-1:-1:-1;;;18927:77:0;;12035:2:1;18927:77:0;;;12017:21:1;12074:2;12054:18;;;12047:30;12113:31;12093:18;;;12086:59;12162:18;;18927:77:0;11833:353:1;18927:77:0;19020:24;19047:27;19057:4;19063:2;19067:6;19047:9;:27::i;:::-;19126:13;;19116:4;19083:12;4517:18;;;;;;;;;;;;-1:-1:-1;;;;;19151:14:0;;;;:8;:14;;;;;;;19020:54;;-1:-1:-1;;19098:41:0;;19151:14;;19150:15;:32;;;;-1:-1:-1;;;;;;19170:12:0;;;;;;:8;:12;;;;;;;;19169:13;19150:32;19146:224;;;19203:14;;-1:-1:-1;;;19203:14:0;;;;19195:45;;;;-1:-1:-1;;;19195:45:0;;12393:2:1;19195:45:0;;;12375:21:1;12432:2;12412:18;;;12405:30;-1:-1:-1;;;12451:18:1;;;12444:48;12509:18;;19195:45:0;12191:342:1;19195:45:0;19270:2;-1:-1:-1;;;;;19255:17:0;:11;-1:-1:-1;;;;;19255:17:0;;:42;;;;-1:-1:-1;19276:21:0;;-1:-1:-1;;;19276:21:0;;;;19255:42;:53;;;;;19301:7;19255:53;:68;;;;-1:-1:-1;19313:10:0;;-1:-1:-1;;;19313:10:0;;;;19312:11;19255:68;19251:112;;;19340:11;:9;:11::i;:::-;19378:43;19394:4;19400:2;19404:16;19378:15;:43::i;:::-;18610:815;;18505:920;;;:::o;8574:806::-;-1:-1:-1;;;;;8671:18:0;;8663:68;;;;-1:-1:-1;;;8663:68:0;;12740:2:1;8663:68:0;;;12722:21:1;12779:2;12759:18;;;12752:30;12818:34;12798:18;;;12791:62;-1:-1:-1;;;12869:18:1;;;12862:35;12914:19;;8663:68:0;12538:401:1;8663:68:0;-1:-1:-1;;;;;8750:16:0;;8742:64;;;;-1:-1:-1;;;8742:64:0;;13146:2:1;8742:64:0;;;13128:21:1;13185:2;13165:18;;;13158:30;13224:34;13204:18;;;13197:62;-1:-1:-1;;;13275:18:1;;;13268:33;13318:19;;8742:64:0;12944:399:1;8742:64:0;-1:-1:-1;;;;;8892:15:0;;8870:19;8892:15;;;;;;;;;;;8926:21;;;;8918:72;;;;-1:-1:-1;;;8918:72:0;;13550:2:1;8918:72:0;;;13532:21:1;13589:2;13569:18;;;13562:30;13628:34;13608:18;;;13601:62;-1:-1:-1;;;13679:18:1;;;13672:36;13725:19;;8918:72:0;13348:402:1;8918:72:0;-1:-1:-1;;;;;9026:15:0;;;:9;:15;;;;;;;;;;;9044:20;;;9026:38;;9244:13;;;;;;;;;;:23;;;;;;9296:26;;160:25:1;;;9244:13:0;;9296:26;;133:18:1;9296:26:0;;;;;;;9335:37;19631:203;17099:444;17178:16;;;17192:1;17178:16;;;;;;;;17154:21;;17178:16;;;;;;;;;;-1:-1:-1;17178:16:0;17154:40;;17223:4;17205;17210:1;17205:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;17205:23:0;;;-1:-1:-1;;;;;17205:23:0;;;;;17249:13;-1:-1:-1;;;;;17249:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17239:4;17244:1;17239:7;;;;;;;;:::i;:::-;;;;;;:30;-1:-1:-1;;;;;17239:30:0;;;-1:-1:-1;;;;;17239:30:0;;;;;17280:55;17297:4;17312:13;17328:6;17280:8;:55::i;:::-;17346:189;;-1:-1:-1;;;17346:189:0;;-1:-1:-1;;;;;17346:13:0;:64;;;;:189;;17425:6;;17446:1;;17462:4;;17489;;17509:15;;17346:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17143:400;17099:444;:::o;17871:626::-;-1:-1:-1;;;;;18008:14:0;;17984:7;18008:14;;;:8;:14;;;;;;;;;:30;;-1:-1:-1;;;;;;18026:12:0;;;;;;:8;:12;;;;;;;;18008:30;18004:76;;;-1:-1:-1;18062:6:0;18055:13;;18004:76;18092:16;18135:11;-1:-1:-1;;;;;18129:17:0;:2;-1:-1:-1;;;;;18129:17:0;;18125:163;;-1:-1:-1;18174:7:0;:17;18125:163;;;18221:11;-1:-1:-1;;;;;18213:19:0;:4;-1:-1:-1;;;;;18213:19:0;;18209:79;;-1:-1:-1;18260:6:0;:16;18209:79;18300:11;18330:12;;18326:132;;18387:3;18366:17;18375:8;18366:6;:17;:::i;:::-;18365:25;;;;:::i;:::-;18359:31;;18405:41;18421:4;18435;18442:3;18405:15;:41::i;:::-;18476:12;18485:3;18476:6;:12;:::i;:::-;18468:21;17871:626;-1:-1:-1;;;;;;17871:626:0:o;17551:312::-;17592:10;:17;;-1:-1:-1;;;;17592:17:0;-1:-1:-1;;;17592:17:0;;;17658:4;-1:-1:-1;4517:18:0;;;;;;;;;;;17620:44;;17680:9;17693:1;17680:14;17676:53;;17711:7;17551:312::o;17676:53::-;17739:23;17749:12;;17739:9;:23::i;:::-;17781:9;;-1:-1:-1;;;;;17781:9:0;17773:53;17801:24;17819:4;-1:-1:-1;;;;;4517:18:0;4490:7;4517:18;;;;;;;;;;;;4416:127;17801:24;17773:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17837:10:0;:18;;-1:-1:-1;;;;17837:18:0;;;17551:312::o;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;1605:180::-;1664:6;1717:2;1705:9;1696:7;1692:23;1688:32;1685:52;;;1733:1;1730;1723:12;1685:52;-1:-1:-1;1756:23:1;;1605:180;-1:-1:-1;1605:180:1:o;1790:247::-;1849:6;1902:2;1890:9;1881:7;1877:23;1873:32;1870:52;;;1918:1;1915;1908:12;1870:52;1957:9;1944:23;1976:31;2001:5;1976:31;:::i;2376:456::-;2453:6;2461;2469;2522:2;2510:9;2501:7;2497:23;2493:32;2490:52;;;2538:1;2535;2528:12;2490:52;2577:9;2564:23;2596:31;2621:5;2596:31;:::i;:::-;2646:5;-1:-1:-1;2703:2:1;2688:18;;2675:32;2716:33;2675:32;2716:33;:::i;:::-;2376:456;;2768:7;;-1:-1:-1;;;2822:2:1;2807:18;;;;2794:32;;2376:456::o;3026:248::-;3094:6;3102;3155:2;3143:9;3134:7;3130:23;3126:32;3123:52;;;3171:1;3168;3161:12;3123:52;-1:-1:-1;;3194:23:1;;;3264:2;3249:18;;;3236:32;;-1:-1:-1;3026:248:1:o;3504:316::-;3581:6;3589;3597;3650:2;3638:9;3629:7;3625:23;3621:32;3618:52;;;3666:1;3663;3656:12;3618:52;-1:-1:-1;;3689:23:1;;;3759:2;3744:18;;3731:32;;-1:-1:-1;3810:2:1;3795:18;;;3782:32;;3504:316;-1:-1:-1;3504:316:1:o;3825:118::-;3911:5;3904:13;3897:21;3890:5;3887:32;3877:60;;3933:1;3930;3923:12;3948:382;4013:6;4021;4074:2;4062:9;4053:7;4049:23;4045:32;4042:52;;;4090:1;4087;4080:12;4042:52;4129:9;4116:23;4148:31;4173:5;4148:31;:::i;:::-;4198:5;-1:-1:-1;4255:2:1;4240:18;;4227:32;4268:30;4227:32;4268:30;:::i;:::-;4317:7;4307:17;;;3948:382;;;;;:::o;4335:388::-;4403:6;4411;4464:2;4452:9;4443:7;4439:23;4435:32;4432:52;;;4480:1;4477;4470:12;4432:52;4519:9;4506:23;4538:31;4563:5;4538:31;:::i;:::-;4588:5;-1:-1:-1;4645:2:1;4630:18;;4617:32;4658:33;4617:32;4658:33;:::i;4728:380::-;4807:1;4803:12;;;;4850;;;4871:61;;4925:4;4917:6;4913:17;4903:27;;4871:61;4978:2;4970:6;4967:14;4947:18;4944:38;4941:161;;5024:10;5019:3;5015:20;5012:1;5005:31;5059:4;5056:1;5049:15;5087:4;5084:1;5077:15;4941:161;;4728:380;;;:::o;5113:356::-;5315:2;5297:21;;;5334:18;;;5327:30;5393:34;5388:2;5373:18;;5366:62;5460:2;5445:18;;5113:356::o;5474:127::-;5535:10;5530:3;5526:20;5523:1;5516:31;5566:4;5563:1;5556:15;5590:4;5587:1;5580:15;5606:168;5679:9;;;5710;;5727:15;;;5721:22;;5707:37;5697:71;;5748:18;;:::i;5779:217::-;5819:1;5845;5835:132;;5889:10;5884:3;5880:20;5877:1;5870:31;5924:4;5921:1;5914:15;5952:4;5949:1;5942:15;5835:132;-1:-1:-1;5981:9:1;;5779:217::o;6353:125::-;6418:9;;;6439:10;;;6436:36;;;6452:18;;:::i;7722:184::-;7792:6;7845:2;7833:9;7824:7;7820:23;7816:32;7813:52;;;7861:1;7858;7851:12;7813:52;-1:-1:-1;7884:16:1;;7722:184;-1:-1:-1;7722:184:1:o;8190:245::-;8257:6;8310:2;8298:9;8289:7;8285:23;8281:32;8278:52;;;8326:1;8323;8316:12;8278:52;8358:9;8352:16;8377:28;8399:5;8377:28;:::i;13887:127::-;13948:10;13943:3;13939:20;13936:1;13929:31;13979:4;13976:1;13969:15;14003:4;14000:1;13993:15;14019:251;14089:6;14142:2;14130:9;14121:7;14117:23;14113:32;14110:52;;;14158:1;14155;14148:12;14110:52;14190:9;14184:16;14209:31;14234:5;14209:31;:::i;14275:980::-;14537:4;14585:3;14574:9;14570:19;14616:6;14605:9;14598:25;14642:2;14680:6;14675:2;14664:9;14660:18;14653:34;14723:3;14718:2;14707:9;14703:18;14696:31;14747:6;14782;14776:13;14813:6;14805;14798:22;14851:3;14840:9;14836:19;14829:26;;14890:2;14882:6;14878:15;14864:29;;14911:1;14921:195;14935:6;14932:1;14929:13;14921:195;;;15000:13;;-1:-1:-1;;;;;14996:39:1;14984:52;;15091:15;;;;15056:12;;;;15032:1;14950:9;14921:195;;;-1:-1:-1;;;;;;;15172:32:1;;;;15167:2;15152:18;;15145:60;-1:-1:-1;;;15236:3:1;15221:19;15214:35;15133:3;14275:980;-1:-1:-1;;;14275:980:1:o;15260:128::-;15327:9;;;15348:11;;;15345:37;;;15362:18;;:::i

Swarm Source

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