ETH Price: $2,925.02 (+4.70%)
 

Overview

Max Total Supply

10,000,000 STX

Holders

113

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
43,198.616955047 STX

Value
$0.00
0x1a46bc044f9fecfda450e50db248aa588c677146
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:
STOCX

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-01
*/

/**
  _________ __                ____  ___
 /   _____//  |_  ____   ____ \   \/  /
 \_____  \\   __\/  _ \_/ ___\ \     / 
 /        \|  | (  <_> )  \___ /     \ 
/_______  /|__|  \____/ \___  >___/\  \
        \/                  \/      \_/

https://stocx.app
https://t.me/StocXPortal
http://twitter.com/StocX_ETH

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.18;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    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;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

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

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

    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;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    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;
    }

    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;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    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 {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

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

    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;
            _totalSupply -= amount;
        }

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

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

    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);
    }

    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);
            }
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

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

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}


library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

contract STOCX is ERC20, Ownable{
    using Address for address payable;
        
    mapping (address user => bool status) public isExcludedFromFees;
    mapping (address buyer => bool status) public whitelistedBuyer;
    mapping (address buyer => bool status) public earlyBuyer;
    mapping (address buyer => uint256 amount) public earlyBuyerDailySell;
    mapping (address user => bool status) public isBlacklisted;
    mapping (address user => uint256 timestamp) public lastTrade;
    
    IRouter public router;
    address public pair;
    address public marketingWallet = 0x61f5Ccc887D6e8C5d94E59Ee1Cf0Af40C0a0dd2b;
    address public marketingWallet2 = 0xddE73C53B1472BC5d438500E3361543dddcF0960; // Replace with the second marketing wallet address

    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;
    bool public finalTaxSet;
    
    uint256 public swapThreshold;
    uint256 public maxWallet = 200000 * 10**9;
    uint256 public maxTx = 200000 * 10**9;
    uint256 public earlyBuyerDailyMaxSell;
    uint256 public delay = 0;
    uint256 public deadBlocks = 3;
    uint256 public whitelistPeriod = 0 minutes;
    uint256 public launchBlock;
    uint256 public launchTimestamp;
    uint256 public finalTaxTimestamp = 20 minutes;
    
    
    struct Taxes {
        uint256 buy;
        uint256 sell;
        uint256 transfer;
    }

    Taxes public taxes = Taxes(25,35,35);

    modifier mutexLock() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
  
    constructor(address _router) ERC20("StocX", "STX") {
        _mint(msg.sender, 10000000 * 10 ** 9);

        router = IRouter(_router);
        pair = IFactory(router.factory()).createPair(address(this), router.WETH());

        isExcludedFromFees[address(this)] = true;
        isExcludedFromFees[msg.sender] = true;
        isExcludedFromFees[marketingWallet] = true;

        swapThreshold = maxWallet;
        earlyBuyerDailyMaxSell = totalSupply() * 5 / 1000;

        _approve(address(this), address(router), type(uint256).max);
    }

    function decimals() public view virtual override returns (uint8) {
        return 9;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");

        if (swapping || isExcludedFromFees[sender] || isExcludedFromFees[recipient]) {
            super._transfer(sender, recipient, amount);
            return;
        }

        else{
            require(tradingEnabled, "Trading not enabled");
            require(!isBlacklisted[sender] && !isBlacklisted[recipient], "Blacklisted address");
            if(!finalTaxSet && finalTaxTimestamp + launchTimestamp < block.timestamp){
                finalTaxSet = true;
                taxes = Taxes(5, 5, 0); // set final tax after 1 hour
            }
            
            if(launchTimestamp + whitelistPeriod > block.timestamp){
                if(sender == pair && !whitelistedBuyer[recipient]) require(amount <= maxTx, "MaxTx limit exceeded");
            }
            else require(amount <= maxTx, "MaxTx limit exceeded");

            if(sender != pair) {
                if(earlyBuyer[sender]){
                    if(block.timestamp - lastTrade[sender] >= 1 days){
                        earlyBuyerDailyMaxSell = 0;
                    }
                    require(earlyBuyerDailySell[sender] + amount <= earlyBuyerDailyMaxSell, "Early buyer sell limit exceeded");
                    earlyBuyerDailySell[sender] += amount;
                }
                require(lastTrade[sender] + delay <= block.timestamp, "WAIT PLEASE");
                lastTrade[sender] = block.timestamp;
            }
            if(recipient != pair){
                if(launchTimestamp + whitelistPeriod > block.timestamp && !whitelistedBuyer[recipient]){
                    isBlacklisted[recipient] = true;
                }
                require(balanceOf(recipient) + amount <= maxWallet, "Wallet limit exceeded");
                require(lastTrade[recipient] + delay <= block.timestamp, "WAIT PLEASE");
                lastTrade[recipient] = block.timestamp;
            }
        }

        if(whitelistedBuyer[recipient] && sender == pair && launchTimestamp + whitelistPeriod > block.timestamp){
            earlyBuyer[recipient] = true;
        }
        
        uint256 fees;

        if(recipient == pair) fees = amount * taxes.sell / 100;
        else if(sender == pair && !whitelistedBuyer[recipient]) fees = amount * taxes.buy / 100;
        else if(sender != pair && recipient != pair) fees = amount * taxes.transfer / 100; 

        if (swapEnabled && recipient == pair && !swapping) swapFees();

        super._transfer(sender, recipient, amount - fees);
        if(fees > 0){
            super._transfer(sender, address(this), fees);
        }
    }

    function swapFees() private mutexLock {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {
            uint256 amountToSwap = swapThreshold;

            if(swapThreshold == maxWallet) swapThreshold = totalSupply() * 200 / 10000;

            uint256 initialBalance = address(this).balance;
            swapTokensForEth(amountToSwap);
            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 deltaBalance1 = deltaBalance * 40 / 100; // 30% of the balance goes to the first marketing wallet
            uint256 deltaBalance2 = deltaBalance * 60 / 100; // 70% of the balance goes to the second marketing wallet
            payable(marketingWallet).sendValue(deltaBalance1);
            payable(marketingWallet2).sendValue(deltaBalance2);
        }
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

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

    function setSwapEnabled(bool status) external onlyOwner {
        swapEnabled = status;
    }

    function setSwapTreshhold(uint256 amount) external onlyOwner {
        swapThreshold = amount * 10**9;
    }
    
    function setTaxes(uint256 _buyTax, uint256 _sellTax, uint256 _transferTax) external onlyOwner {
        taxes = Taxes(_buyTax, _sellTax, _transferTax);
    }
    
    function setRouterAndPair(address newRouter, address newPair) external onlyOwner{
        router = IRouter(newRouter);
        pair = newPair;
        _approve(address(this), address(newRouter), type(uint256).max);
    }
    
    function enableTrading() external onlyOwner{
        require(!tradingEnabled, "Already enabled");
        tradingEnabled = true;
        swapEnabled = true;
        taxes.transfer = 50;
        launchBlock = block.number;
        launchTimestamp = block.timestamp;
    }
 
    function removeLimits() external onlyOwner{
        maxTx = totalSupply();
        maxWallet = totalSupply();
        taxes.transfer = 0;
    }

    function setLimits(uint256 _maxTx, uint256 _maxWallet) external onlyOwner{
        maxTx = _maxTx * 10**9;
        maxWallet = _maxWallet * 10**9;
    }
    
    function setIsExcludedFromFees(address _address, bool state) external onlyOwner {
        isExcludedFromFees[_address] = state;
    }
    
    function rescueETH(uint256 weiAmount) external {
        uint256 amount1 = weiAmount * 40 / 100;
        uint256 amount2 = weiAmount * 60 / 100;
        payable(marketingWallet).sendValue(amount1);
        payable(marketingWallet2).sendValue(amount2);
    }

    function rescueERC20(address tokenAdd, uint256 amount) external {
        uint256 amount1 = amount * 40 / 100;
        uint256 amount2 = amount * 60 / 100;
        IERC20(tokenAdd).transfer(marketingWallet, amount1);
        IERC20(tokenAdd).transfer(marketingWallet2, amount2);
    }

    receive() external payable {}

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"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":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"earlyBuyer","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"earlyBuyerDailyMaxSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"earlyBuyerDailySell","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalTaxSet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalTaxTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"user","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"lastTrade","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTimestamp","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":"marketingWallet2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTx","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":"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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setIsExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTx","type":"uint256"},{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"setRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTax","type":"uint256"},{"internalType":"uint256","name":"_sellTax","type":"uint256"},{"internalType":"uint256","name":"_transferTax","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","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":"taxes","outputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"transfer","type":"uint256"}],"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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whitelistPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"whitelistedBuyer","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

600e80546001600160a01b03199081167361f5ccc887d6e8c5d94e59ee1cf0af40c0a0dd2b17909155600f805490911673dde73c53b1472bc5d438500e3361543dddcf096017905565b5e620f4800060118190556012556000601481905560036015556016556104b0601990815560e06040526080819052602360a081905260c0819052601a91909155601b819055601c553480156200009e57600080fd5b50604051620028ad380380620028ad833981016040819052620000c191620005c0565b604051806040016040528060058152602001640a6e8dec6b60db1b815250604051806040016040528060038152602001620a6a8b60eb1b81525081600390816200010c919062000696565b5060046200011b828262000696565b50505062000138620001326200037660201b60201c565b6200037a565b6200014b33662386f26fc10000620003cc565b600c80546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001cb9190620005c0565b6001600160a01b031663c9c6539630600c60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200022e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002549190620005c0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c89190620005c0565b600d80546001600160a01b0319166001600160a01b0392831617905530600090815260066020526040808220805460ff1990811660019081179092553384528284208054821683179055600e549094168352912080549092161790556011546010556103e86200033760025490565b6200034490600562000778565b62000350919062000798565b601355600c546200036f9030906001600160a01b031660001962000493565b50620007d1565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620004285760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b80600260008282546200043c9190620007bb565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038316620004f75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016200041f565b6001600160a01b0382166200055a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200041f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b505050565b600060208284031215620005d357600080fd5b81516001600160a01b0381168114620005eb57600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200061d57607f821691505b6020821081036200063e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005bb57600081815260208120601f850160051c810160208610156200066d5750805b601f850160051c820191505b818110156200068e5782815560010162000679565b505050505050565b81516001600160401b03811115620006b257620006b2620005f2565b620006ca81620006c3845462000608565b8462000644565b602080601f831160018114620007025760008415620006e95750858301515b600019600386901b1c1916600185901b1785556200068e565b600085815260208120601f198616915b82811015620007335788860151825594840194600190910190840162000712565b5085821015620007525787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141762000792576200079262000762565b92915050565b600082620007b657634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000792576200079262000762565b6120cc80620007e16000396000f3fe6080604052600436106102975760003560e01c80638cd4426d1161015a578063c26d7be0116100c1578063e9dae5ed1161007a578063e9dae5ed14610812578063f2fde38b14610832578063f887ea4014610852578063f8b45b0514610872578063fabb0b4f14610888578063fe575a871461089e57600080fd5b8063c26d7be014610759578063c4590d3f14610786578063d00efb2f146107a6578063dd62ed3e146107bc578063e01af92c146107dc578063e25c3923146107fc57600080fd5b8063a457c2d711610113578063a457c2d7146106a3578063a8aa1b31146106c3578063a9059cbb146106e3578063adf1869314610703578063b48e665e14610723578063b5d7ab9a1461073957600080fd5b80638cd4426d146105f95780638da5cb5b14610619578063950e40501461063757806395d89b411461064d5780639ccde992146106625780639e252f001461068357600080fd5b80634d2ff7c1116101fe578063715018a6116101b7578063715018a61461054a578063728f8eea1461055f5780637437681e14610599578063751039fc146105af57806375f0a874146105c45780638a8c523c146105e457600080fd5b80634d2ff7c1146104675780634fbee1931461049757806365cf7c9b146104c75780636a42b8f8146104dd5780636ddd1713146104f357806370a082311461051457600080fd5b8063255f40b611610250578063255f40b61461038b578063313ce567146103ad57806339509351146103c957806339937cde146103e9578063445418ce146104195780634ada218b1461044657600080fd5b80630445b667146102a357806306fdde03146102cc578063095ea7b3146102ee5780630d0020f21461031e57806318160ddd1461035657806323b872dd1461036b57600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102b960105481565b6040519081526020015b60405180910390f35b3480156102d857600080fd5b506102e16108ce565b6040516102c39190611d39565b3480156102fa57600080fd5b5061030e610309366004611d9c565b610960565b60405190151581526020016102c3565b34801561032a57600080fd5b50600f5461033e906001600160a01b031681565b6040516001600160a01b0390911681526020016102c3565b34801561036257600080fd5b506002546102b9565b34801561037757600080fd5b5061030e610386366004611dc8565b61097a565b34801561039757600080fd5b506103ab6103a6366004611e09565b61099e565b005b3480156103b957600080fd5b50604051600981526020016102c3565b3480156103d557600080fd5b5061030e6103e4366004611d9c565b6109e7565b3480156103f557600080fd5b5061030e610404366004611e42565b60086020526000908152604090205460ff1681565b34801561042557600080fd5b506102b9610434366004611e42565b60096020526000908152604090205481565b34801561045257600080fd5b50600f5461030e90600160b01b900460ff1681565b34801561047357600080fd5b5061030e610482366004611e42565b60076020526000908152604090205460ff1681565b3480156104a357600080fd5b5061030e6104b2366004611e42565b60066020526000908152604090205460ff1681565b3480156104d357600080fd5b506102b960185481565b3480156104e957600080fd5b506102b960145481565b3480156104ff57600080fd5b50600f5461030e90600160a81b900460ff1681565b34801561052057600080fd5b506102b961052f366004611e42565b6001600160a01b031660009081526020819052604090205490565b34801561055657600080fd5b506103ab610a09565b34801561056b57600080fd5b50601a54601b54601c5461057e92919083565b604080519384526020840192909252908201526060016102c3565b3480156105a557600080fd5b506102b960125481565b3480156105bb57600080fd5b506103ab610a1d565b3480156105d057600080fd5b50600e5461033e906001600160a01b031681565b3480156105f057600080fd5b506103ab610a38565b34801561060557600080fd5b506103ab610614366004611d9c565b610ab5565b34801561062557600080fd5b506005546001600160a01b031661033e565b34801561064357600080fd5b506102b960195481565b34801561065957600080fd5b506102e1610be1565b34801561066e57600080fd5b50600f5461030e90600160b81b900460ff1681565b34801561068f57600080fd5b506103ab61069e366004611e66565b610bf0565b3480156106af57600080fd5b5061030e6106be366004611d9c565b610c58565b3480156106cf57600080fd5b50600d5461033e906001600160a01b031681565b3480156106ef57600080fd5b5061030e6106fe366004611d9c565b610cd3565b34801561070f57600080fd5b506103ab61071e366004611e8d565b610ce1565b34801561072f57600080fd5b506102b960165481565b34801561074557600080fd5b506103ab610754366004611e66565b610d14565b34801561076557600080fd5b506102b9610774366004611e42565b600b6020526000908152604090205481565b34801561079257600080fd5b506103ab6107a1366004611ebb565b610d30565b3480156107b257600080fd5b506102b960175481565b3480156107c857600080fd5b506102b96107d7366004611e09565b610d5e565b3480156107e857600080fd5b506103ab6107f7366004611edd565b610d89565b34801561080857600080fd5b506102b960135481565b34801561081e57600080fd5b506103ab61082d366004611efa565b610daf565b34801561083e57600080fd5b506103ab61084d366004611e42565b610ddd565b34801561085e57600080fd5b50600c5461033e906001600160a01b031681565b34801561087e57600080fd5b506102b960115481565b34801561089457600080fd5b506102b960155481565b3480156108aa57600080fd5b5061030e6108b9366004611e42565b600a6020526000908152604090205460ff1681565b6060600380546108dd90611f26565b80601f016020809104026020016040519081016040528092919081815260200182805461090990611f26565b80156109565780601f1061092b57610100808354040283529160200191610956565b820191906000526020600020905b81548152906001019060200180831161093957829003601f168201915b5050505050905090565b60003361096e818585610e56565b60019150505b92915050565b600033610988858285610f7a565b610993858585610ff4565b506001949350505050565b6109a661178e565b600c80546001600160a01b038085166001600160a01b031992831617909255600d8054928416929091169190911790556109e33083600019610e56565b5050565b60003361096e8185856109fa8383610d5e565b610a049190611f76565b610e56565b610a1161178e565b610a1b60006117e8565b565b610a2561178e565b6002546012556002546011556000601c55565b610a4061178e565b600f54600160b01b900460ff1615610a915760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e48195b98589b1959608a1b60448201526064015b60405180910390fd5b600f805461ffff60a81b191661010160a81b1790556032601c554360175542601855565b60006064610ac4836028611f89565b610ace9190611fa0565b905060006064610adf84603c611f89565b610ae99190611fa0565b600e5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810185905291925085169063a9059cbb906044016020604051808303816000875af1158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b629190611fc2565b50600f5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529085169063a9059cbb906044016020604051808303816000875af1158015610bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bda9190611fc2565b5050505050565b6060600480546108dd90611f26565b60006064610bff836028611f89565b610c099190611fa0565b905060006064610c1a84603c611f89565b610c249190611fa0565b600e54909150610c3d906001600160a01b03168361183a565b600f54610c53906001600160a01b03168261183a565b505050565b60003381610c668286610d5e565b905083811015610cc65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a88565b6109938286868403610e56565b60003361096e818585610ff4565b610ce961178e565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b610d1c61178e565b610d2a81633b9aca00611f89565b60105550565b610d3861178e565b610d4682633b9aca00611f89565b601255610d5781633b9aca00611f89565b6011555050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610d9161178e565b600f8054911515600160a81b0260ff60a81b19909216919091179055565b610db761178e565b604080516060810182528481526020810184905201819052601a92909255601b55601c55565b610de561178e565b6001600160a01b038116610e4a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a88565b610e53816117e8565b50565b6001600160a01b038316610eb85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a88565b6001600160a01b038216610f195760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a88565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610f868484610d5e565b90506000198114610fee5781811015610fe15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a88565b610fee8484848403610e56565b50505050565b600081116110565760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a88565b600f54600160a01b900460ff168061108657506001600160a01b03831660009081526006602052604090205460ff165b806110a957506001600160a01b03821660009081526006602052604090205460ff165b156110b957610c53838383611953565b600f54600160b01b900460ff166111085760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610a88565b6001600160a01b0383166000908152600a602052604090205460ff1615801561114a57506001600160a01b0382166000908152600a602052604090205460ff16155b61118c5760405162461bcd60e51b8152602060048201526013602482015272426c61636b6c6973746564206164647265737360681b6044820152606401610a88565b600f54600160b81b900460ff161580156111b45750426018546019546111b29190611f76565b105b156111fa57600f805460ff60b81b1916600160b81b17905560408051606081018252600580825260208201819052600091909201819052601a829055601b91909155601c555b4260165460185461120b9190611f76565b111561129a57600d546001600160a01b03848116911614801561124757506001600160a01b03821660009081526007602052604090205460ff16155b15611295576012548111156112955760405162461bcd60e51b815260206004820152601460248201527313585e151e081b1a5b5a5d08195e18d95959195960621b6044820152606401610a88565b6112e3565b6012548111156112e35760405162461bcd60e51b815260206004820152601460248201527313585e151e081b1a5b5a5d08195e18d95959195960621b6044820152606401610a88565b600d546001600160a01b0384811691161461146e576001600160a01b03831660009081526008602052604090205460ff16156113ef576001600160a01b0383166000908152600b602052604090205462015180906113419042611fdf565b1061134c5760006013555b6013546001600160a01b038416600090815260096020526040902054611373908390611f76565b11156113c15760405162461bcd60e51b815260206004820152601f60248201527f4561726c792062757965722073656c6c206c696d6974206578636565646564006044820152606401610a88565b6001600160a01b038316600090815260096020526040812080548392906113e9908490611f76565b90915550505b6014546001600160a01b0384166000908152600b6020526040902054429161141691611f76565b11156114525760405162461bcd60e51b815260206004820152600b60248201526a5741495420504c4541534560a81b6044820152606401610a88565b6001600160a01b0383166000908152600b602052604090204290555b600d546001600160a01b038381169116146115d557426016546018546114949190611f76565b1180156114ba57506001600160a01b03821660009081526007602052604090205460ff16155b156114e3576001600160a01b0382166000908152600a60205260409020805460ff191660011790555b60115481611506846001600160a01b031660009081526020819052604090205490565b6115109190611f76565b11156115565760405162461bcd60e51b815260206004820152601560248201527415d85b1b195d081b1a5b5a5d08195e18d959591959605a1b6044820152606401610a88565b6014546001600160a01b0383166000908152600b6020526040902054429161157d91611f76565b11156115b95760405162461bcd60e51b815260206004820152600b60248201526a5741495420504c4541534560a81b6044820152606401610a88565b6001600160a01b0382166000908152600b602052604090204290555b6001600160a01b03821660009081526007602052604090205460ff16801561160a5750600d546001600160a01b038481169116145b80156116245750426016546018546116229190611f76565b115b1561164d576001600160a01b0382166000908152600860205260409020805460ff191660011790555b600d546000906001600160a01b039081169084160361168757601b546064906116769084611f89565b6116809190611fa0565b9050611720565b600d546001600160a01b0385811691161480156116bd57506001600160a01b03831660009081526007602052604090205460ff16155b156116d257601a546064906116769084611f89565b600d546001600160a01b038581169116148015906116fe5750600d546001600160a01b03848116911614155b1561172057601c546064906117139084611f89565b61171d9190611fa0565b90505b600f54600160a81b900460ff1680156117465750600d546001600160a01b038481169116145b801561175c5750600f54600160a01b900460ff16155b1561176957611769611af7565b61177d84846117788486611fdf565b611953565b8015610fee57610fee843083611953565b6005546001600160a01b03163314610a1b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a88565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8047101561188a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610a88565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118d7576040519150601f19603f3d011682016040523d82523d6000602084013e6118dc565b606091505b5050905080610c535760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610a88565b6001600160a01b0383166119b75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a88565b6001600160a01b038216611a195760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a88565b6001600160a01b03831660009081526020819052604090205481811015611a915760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a88565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610fee565b600f54600160a01b900460ff16610a1b57600f805460ff60a01b1916600160a01b1790553060009081526020819052604081205490506010548110611be8576010546011548103611b6757612710611b4e60025490565b611b599060c8611f89565b611b639190611fa0565b6010555b47611b7182611bf8565b6000611b7d8247611fdf565b905060006064611b8e836028611f89565b611b989190611fa0565b905060006064611ba984603c611f89565b611bb39190611fa0565b600e54909150611bcc906001600160a01b03168361183a565b600f54611be2906001600160a01b03168261183a565b50505050505b50600f805460ff60a01b19169055565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c2d57611c2d611ff2565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611c86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611caa9190612008565b81600181518110611cbd57611cbd611ff2565b6001600160a01b039283166020918202929092010152600c5460405163791ac94760e01b815291169063791ac94790611d03908590600090869030904290600401612025565b600060405180830381600087803b158015611d1d57600080fd5b505af1158015611d31573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b81811015611d6657858101830151858201604001528201611d4a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610e5357600080fd5b60008060408385031215611daf57600080fd5b8235611dba81611d87565b946020939093013593505050565b600080600060608486031215611ddd57600080fd5b8335611de881611d87565b92506020840135611df881611d87565b929592945050506040919091013590565b60008060408385031215611e1c57600080fd5b8235611e2781611d87565b91506020830135611e3781611d87565b809150509250929050565b600060208284031215611e5457600080fd5b8135611e5f81611d87565b9392505050565b600060208284031215611e7857600080fd5b5035919050565b8015158114610e5357600080fd5b60008060408385031215611ea057600080fd5b8235611eab81611d87565b91506020830135611e3781611e7f565b60008060408385031215611ece57600080fd5b50508035926020909101359150565b600060208284031215611eef57600080fd5b8135611e5f81611e7f565b600080600060608486031215611f0f57600080fd5b505081359360208301359350604090920135919050565b600181811c90821680611f3a57607f821691505b602082108103611f5a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561097457610974611f60565b808202811582820484141761097457610974611f60565b600082611fbd57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611fd457600080fd5b8151611e5f81611e7f565b8181038181111561097457610974611f60565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561201a57600080fd5b8151611e5f81611d87565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120755784516001600160a01b031683529383019391830191600101612050565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220487bf95a32a0c07887e09169ad93d87ab3ed0c3b5d4c0646061a730c1e617d2264736f6c634300081200330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106102975760003560e01c80638cd4426d1161015a578063c26d7be0116100c1578063e9dae5ed1161007a578063e9dae5ed14610812578063f2fde38b14610832578063f887ea4014610852578063f8b45b0514610872578063fabb0b4f14610888578063fe575a871461089e57600080fd5b8063c26d7be014610759578063c4590d3f14610786578063d00efb2f146107a6578063dd62ed3e146107bc578063e01af92c146107dc578063e25c3923146107fc57600080fd5b8063a457c2d711610113578063a457c2d7146106a3578063a8aa1b31146106c3578063a9059cbb146106e3578063adf1869314610703578063b48e665e14610723578063b5d7ab9a1461073957600080fd5b80638cd4426d146105f95780638da5cb5b14610619578063950e40501461063757806395d89b411461064d5780639ccde992146106625780639e252f001461068357600080fd5b80634d2ff7c1116101fe578063715018a6116101b7578063715018a61461054a578063728f8eea1461055f5780637437681e14610599578063751039fc146105af57806375f0a874146105c45780638a8c523c146105e457600080fd5b80634d2ff7c1146104675780634fbee1931461049757806365cf7c9b146104c75780636a42b8f8146104dd5780636ddd1713146104f357806370a082311461051457600080fd5b8063255f40b611610250578063255f40b61461038b578063313ce567146103ad57806339509351146103c957806339937cde146103e9578063445418ce146104195780634ada218b1461044657600080fd5b80630445b667146102a357806306fdde03146102cc578063095ea7b3146102ee5780630d0020f21461031e57806318160ddd1461035657806323b872dd1461036b57600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102b960105481565b6040519081526020015b60405180910390f35b3480156102d857600080fd5b506102e16108ce565b6040516102c39190611d39565b3480156102fa57600080fd5b5061030e610309366004611d9c565b610960565b60405190151581526020016102c3565b34801561032a57600080fd5b50600f5461033e906001600160a01b031681565b6040516001600160a01b0390911681526020016102c3565b34801561036257600080fd5b506002546102b9565b34801561037757600080fd5b5061030e610386366004611dc8565b61097a565b34801561039757600080fd5b506103ab6103a6366004611e09565b61099e565b005b3480156103b957600080fd5b50604051600981526020016102c3565b3480156103d557600080fd5b5061030e6103e4366004611d9c565b6109e7565b3480156103f557600080fd5b5061030e610404366004611e42565b60086020526000908152604090205460ff1681565b34801561042557600080fd5b506102b9610434366004611e42565b60096020526000908152604090205481565b34801561045257600080fd5b50600f5461030e90600160b01b900460ff1681565b34801561047357600080fd5b5061030e610482366004611e42565b60076020526000908152604090205460ff1681565b3480156104a357600080fd5b5061030e6104b2366004611e42565b60066020526000908152604090205460ff1681565b3480156104d357600080fd5b506102b960185481565b3480156104e957600080fd5b506102b960145481565b3480156104ff57600080fd5b50600f5461030e90600160a81b900460ff1681565b34801561052057600080fd5b506102b961052f366004611e42565b6001600160a01b031660009081526020819052604090205490565b34801561055657600080fd5b506103ab610a09565b34801561056b57600080fd5b50601a54601b54601c5461057e92919083565b604080519384526020840192909252908201526060016102c3565b3480156105a557600080fd5b506102b960125481565b3480156105bb57600080fd5b506103ab610a1d565b3480156105d057600080fd5b50600e5461033e906001600160a01b031681565b3480156105f057600080fd5b506103ab610a38565b34801561060557600080fd5b506103ab610614366004611d9c565b610ab5565b34801561062557600080fd5b506005546001600160a01b031661033e565b34801561064357600080fd5b506102b960195481565b34801561065957600080fd5b506102e1610be1565b34801561066e57600080fd5b50600f5461030e90600160b81b900460ff1681565b34801561068f57600080fd5b506103ab61069e366004611e66565b610bf0565b3480156106af57600080fd5b5061030e6106be366004611d9c565b610c58565b3480156106cf57600080fd5b50600d5461033e906001600160a01b031681565b3480156106ef57600080fd5b5061030e6106fe366004611d9c565b610cd3565b34801561070f57600080fd5b506103ab61071e366004611e8d565b610ce1565b34801561072f57600080fd5b506102b960165481565b34801561074557600080fd5b506103ab610754366004611e66565b610d14565b34801561076557600080fd5b506102b9610774366004611e42565b600b6020526000908152604090205481565b34801561079257600080fd5b506103ab6107a1366004611ebb565b610d30565b3480156107b257600080fd5b506102b960175481565b3480156107c857600080fd5b506102b96107d7366004611e09565b610d5e565b3480156107e857600080fd5b506103ab6107f7366004611edd565b610d89565b34801561080857600080fd5b506102b960135481565b34801561081e57600080fd5b506103ab61082d366004611efa565b610daf565b34801561083e57600080fd5b506103ab61084d366004611e42565b610ddd565b34801561085e57600080fd5b50600c5461033e906001600160a01b031681565b34801561087e57600080fd5b506102b960115481565b34801561089457600080fd5b506102b960155481565b3480156108aa57600080fd5b5061030e6108b9366004611e42565b600a6020526000908152604090205460ff1681565b6060600380546108dd90611f26565b80601f016020809104026020016040519081016040528092919081815260200182805461090990611f26565b80156109565780601f1061092b57610100808354040283529160200191610956565b820191906000526020600020905b81548152906001019060200180831161093957829003601f168201915b5050505050905090565b60003361096e818585610e56565b60019150505b92915050565b600033610988858285610f7a565b610993858585610ff4565b506001949350505050565b6109a661178e565b600c80546001600160a01b038085166001600160a01b031992831617909255600d8054928416929091169190911790556109e33083600019610e56565b5050565b60003361096e8185856109fa8383610d5e565b610a049190611f76565b610e56565b610a1161178e565b610a1b60006117e8565b565b610a2561178e565b6002546012556002546011556000601c55565b610a4061178e565b600f54600160b01b900460ff1615610a915760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e48195b98589b1959608a1b60448201526064015b60405180910390fd5b600f805461ffff60a81b191661010160a81b1790556032601c554360175542601855565b60006064610ac4836028611f89565b610ace9190611fa0565b905060006064610adf84603c611f89565b610ae99190611fa0565b600e5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810185905291925085169063a9059cbb906044016020604051808303816000875af1158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b629190611fc2565b50600f5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529085169063a9059cbb906044016020604051808303816000875af1158015610bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bda9190611fc2565b5050505050565b6060600480546108dd90611f26565b60006064610bff836028611f89565b610c099190611fa0565b905060006064610c1a84603c611f89565b610c249190611fa0565b600e54909150610c3d906001600160a01b03168361183a565b600f54610c53906001600160a01b03168261183a565b505050565b60003381610c668286610d5e565b905083811015610cc65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a88565b6109938286868403610e56565b60003361096e818585610ff4565b610ce961178e565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b610d1c61178e565b610d2a81633b9aca00611f89565b60105550565b610d3861178e565b610d4682633b9aca00611f89565b601255610d5781633b9aca00611f89565b6011555050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610d9161178e565b600f8054911515600160a81b0260ff60a81b19909216919091179055565b610db761178e565b604080516060810182528481526020810184905201819052601a92909255601b55601c55565b610de561178e565b6001600160a01b038116610e4a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a88565b610e53816117e8565b50565b6001600160a01b038316610eb85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a88565b6001600160a01b038216610f195760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a88565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610f868484610d5e565b90506000198114610fee5781811015610fe15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a88565b610fee8484848403610e56565b50505050565b600081116110565760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a88565b600f54600160a01b900460ff168061108657506001600160a01b03831660009081526006602052604090205460ff165b806110a957506001600160a01b03821660009081526006602052604090205460ff165b156110b957610c53838383611953565b600f54600160b01b900460ff166111085760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610a88565b6001600160a01b0383166000908152600a602052604090205460ff1615801561114a57506001600160a01b0382166000908152600a602052604090205460ff16155b61118c5760405162461bcd60e51b8152602060048201526013602482015272426c61636b6c6973746564206164647265737360681b6044820152606401610a88565b600f54600160b81b900460ff161580156111b45750426018546019546111b29190611f76565b105b156111fa57600f805460ff60b81b1916600160b81b17905560408051606081018252600580825260208201819052600091909201819052601a829055601b91909155601c555b4260165460185461120b9190611f76565b111561129a57600d546001600160a01b03848116911614801561124757506001600160a01b03821660009081526007602052604090205460ff16155b15611295576012548111156112955760405162461bcd60e51b815260206004820152601460248201527313585e151e081b1a5b5a5d08195e18d95959195960621b6044820152606401610a88565b6112e3565b6012548111156112e35760405162461bcd60e51b815260206004820152601460248201527313585e151e081b1a5b5a5d08195e18d95959195960621b6044820152606401610a88565b600d546001600160a01b0384811691161461146e576001600160a01b03831660009081526008602052604090205460ff16156113ef576001600160a01b0383166000908152600b602052604090205462015180906113419042611fdf565b1061134c5760006013555b6013546001600160a01b038416600090815260096020526040902054611373908390611f76565b11156113c15760405162461bcd60e51b815260206004820152601f60248201527f4561726c792062757965722073656c6c206c696d6974206578636565646564006044820152606401610a88565b6001600160a01b038316600090815260096020526040812080548392906113e9908490611f76565b90915550505b6014546001600160a01b0384166000908152600b6020526040902054429161141691611f76565b11156114525760405162461bcd60e51b815260206004820152600b60248201526a5741495420504c4541534560a81b6044820152606401610a88565b6001600160a01b0383166000908152600b602052604090204290555b600d546001600160a01b038381169116146115d557426016546018546114949190611f76565b1180156114ba57506001600160a01b03821660009081526007602052604090205460ff16155b156114e3576001600160a01b0382166000908152600a60205260409020805460ff191660011790555b60115481611506846001600160a01b031660009081526020819052604090205490565b6115109190611f76565b11156115565760405162461bcd60e51b815260206004820152601560248201527415d85b1b195d081b1a5b5a5d08195e18d959591959605a1b6044820152606401610a88565b6014546001600160a01b0383166000908152600b6020526040902054429161157d91611f76565b11156115b95760405162461bcd60e51b815260206004820152600b60248201526a5741495420504c4541534560a81b6044820152606401610a88565b6001600160a01b0382166000908152600b602052604090204290555b6001600160a01b03821660009081526007602052604090205460ff16801561160a5750600d546001600160a01b038481169116145b80156116245750426016546018546116229190611f76565b115b1561164d576001600160a01b0382166000908152600860205260409020805460ff191660011790555b600d546000906001600160a01b039081169084160361168757601b546064906116769084611f89565b6116809190611fa0565b9050611720565b600d546001600160a01b0385811691161480156116bd57506001600160a01b03831660009081526007602052604090205460ff16155b156116d257601a546064906116769084611f89565b600d546001600160a01b038581169116148015906116fe5750600d546001600160a01b03848116911614155b1561172057601c546064906117139084611f89565b61171d9190611fa0565b90505b600f54600160a81b900460ff1680156117465750600d546001600160a01b038481169116145b801561175c5750600f54600160a01b900460ff16155b1561176957611769611af7565b61177d84846117788486611fdf565b611953565b8015610fee57610fee843083611953565b6005546001600160a01b03163314610a1b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a88565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8047101561188a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610a88565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118d7576040519150601f19603f3d011682016040523d82523d6000602084013e6118dc565b606091505b5050905080610c535760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610a88565b6001600160a01b0383166119b75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a88565b6001600160a01b038216611a195760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a88565b6001600160a01b03831660009081526020819052604090205481811015611a915760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a88565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610fee565b600f54600160a01b900460ff16610a1b57600f805460ff60a01b1916600160a01b1790553060009081526020819052604081205490506010548110611be8576010546011548103611b6757612710611b4e60025490565b611b599060c8611f89565b611b639190611fa0565b6010555b47611b7182611bf8565b6000611b7d8247611fdf565b905060006064611b8e836028611f89565b611b989190611fa0565b905060006064611ba984603c611f89565b611bb39190611fa0565b600e54909150611bcc906001600160a01b03168361183a565b600f54611be2906001600160a01b03168261183a565b50505050505b50600f805460ff60a01b19169055565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c2d57611c2d611ff2565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611c86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611caa9190612008565b81600181518110611cbd57611cbd611ff2565b6001600160a01b039283166020918202929092010152600c5460405163791ac94760e01b815291169063791ac94790611d03908590600090869030904290600401612025565b600060405180830381600087803b158015611d1d57600080fd5b505af1158015611d31573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b81811015611d6657858101830151858201604001528201611d4a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610e5357600080fd5b60008060408385031215611daf57600080fd5b8235611dba81611d87565b946020939093013593505050565b600080600060608486031215611ddd57600080fd5b8335611de881611d87565b92506020840135611df881611d87565b929592945050506040919091013590565b60008060408385031215611e1c57600080fd5b8235611e2781611d87565b91506020830135611e3781611d87565b809150509250929050565b600060208284031215611e5457600080fd5b8135611e5f81611d87565b9392505050565b600060208284031215611e7857600080fd5b5035919050565b8015158114610e5357600080fd5b60008060408385031215611ea057600080fd5b8235611eab81611d87565b91506020830135611e3781611e7f565b60008060408385031215611ece57600080fd5b50508035926020909101359150565b600060208284031215611eef57600080fd5b8135611e5f81611e7f565b600080600060608486031215611f0f57600080fd5b505081359360208301359350604090920135919050565b600181811c90821680611f3a57607f821691505b602082108103611f5a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561097457610974611f60565b808202811582820484141761097457610974611f60565b600082611fbd57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611fd457600080fd5b8151611e5f81611e7f565b8181038181111561097457610974611f60565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561201a57600080fd5b8151611e5f81611d87565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120755784516001600160a01b031683529383019391830191600101612050565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220487bf95a32a0c07887e09169ad93d87ab3ed0c3b5d4c0646061a730c1e617d2264736f6c63430008120033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

8823:8250:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9727:28;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;9727:28:0;;;;;;;;3037:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3969:201::-;;;;;;;;;;-1:-1:-1;3969:201:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;3969:201:0;1205:187:1;9463:76:0;;;;;;;;;;-1:-1:-1;9463:76:0;;;;-1:-1:-1;;;;;9463:76:0;;;;;;-1:-1:-1;;;;;1561:32:1;;;1543:51;;1531:2;1516:18;9463:76:0;1397:203:1;3358:108:0;;;;;;;;;;-1:-1:-1;3446:12:0;;3358:108;;4178:295;;;;;;;;;;-1:-1:-1;4178:295:0;;;;;:::i;:::-;;:::i;15481:224::-;;;;;;;;;;-1:-1:-1;15481:224:0;;;;;:::i;:::-;;:::i;:::-;;11009:92;;;;;;;;;;-1:-1:-1;11009:92:0;;11092:1;2601:36:1;;2589:2;2574:18;11009:92:0;2459:184:1;4481:238:0;;;;;;;;;;-1:-1:-1;4481:238:0;;;;;:::i;:::-;;:::i;9051:56::-;;;;;;;;;;-1:-1:-1;9051:56:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9114:68;;;;;;;;;;-1:-1:-1;9114:68:0;;;;;:::i;:::-;;;;;;;;;;;;;;9658:26;;;;;;;;;;-1:-1:-1;9658:26:0;;;;-1:-1:-1;;;9658:26:0;;;;;;8982:62;;;;;;;;;;-1:-1:-1;8982:62:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8912:63;;;;;;;;;;-1:-1:-1;8912:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10047:30;;;;;;;;;;;;;;;;9898:24;;;;;;;;;;;;;;;;9628:23;;;;;;;;;;-1:-1:-1;9628:23:0;;;;-1:-1:-1;;;9628:23:0;;;;;;3474:127;;;;;;;;;;-1:-1:-1;3474:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3575:18:0;3548:7;3575:18;;;;;;;;;;;;3474:127;1193:103;;;;;;;;;;;;;:::i;10249:36::-;;;;;;;;;;-1:-1:-1;10249:36:0;;;;;;;;;;;;;;;;3102:25:1;;;3158:2;3143:18;;3136:34;;;;3186:18;;;3179:34;3090:2;3075:18;10249:36:0;2900:319:1;9810:37:0;;;;;;;;;;;;;;;;16003:147;;;;;;;;;;;;;:::i;9381:75::-;;;;;;;;;;-1:-1:-1;9381:75:0;;;;-1:-1:-1;;;;;9381:75:0;;;15717:277;;;;;;;;;;;;;:::i;16742:289::-;;;;;;;;;;-1:-1:-1;16742:289:0;;;;;:::i;:::-;;:::i;958:87::-;;;;;;;;;;-1:-1:-1;1031:6:0;;-1:-1:-1;;;;;1031:6:0;958:87;;10084:45;;;;;;;;;;;;;;;;3145:104;;;;;;;;;;;;;:::i;9691:23::-;;;;;;;;;;-1:-1:-1;9691:23:0;;;;-1:-1:-1;;;9691:23:0;;;;;;16472:262;;;;;;;;;;-1:-1:-1;16472:262:0;;;;;:::i;:::-;;:::i;4727:436::-;;;;;;;;;;-1:-1:-1;4727:436:0;;;;;:::i;:::-;;:::i;9355:19::-;;;;;;;;;;-1:-1:-1;9355:19:0;;;;-1:-1:-1;;;;;9355:19:0;;;3609:193;;;;;;;;;;-1:-1:-1;3609:193:0;;;;;:::i;:::-;;:::i;16325:135::-;;;;;;;;;;-1:-1:-1;16325:135:0;;;;;:::i;:::-;;:::i;9965:42::-;;;;;;;;;;;;;;;;15188:110;;;;;;;;;;-1:-1:-1;15188:110:0;;;;;:::i;:::-;;:::i;9254:60::-;;;;;;;;;;-1:-1:-1;9254:60:0;;;;;:::i;:::-;;;;;;;;;;;;;;16158:155;;;;;;;;;;-1:-1:-1;16158:155:0;;;;;:::i;:::-;;:::i;10014:26::-;;;;;;;;;;;;;;;;3810:151;;;;;;;;;;-1:-1:-1;3810:151:0;;;;;:::i;:::-;;:::i;15085:95::-;;;;;;;;;;-1:-1:-1;15085:95:0;;;;;:::i;:::-;;:::i;9854:37::-;;;;;;;;;;;;;;;;15310:159;;;;;;;;;;-1:-1:-1;15310:159:0;;;;;:::i;:::-;;:::i;1304:201::-;;;;;;;;;;-1:-1:-1;1304:201:0;;;;;:::i;:::-;;:::i;9327:21::-;;;;;;;;;;-1:-1:-1;9327:21:0;;;;-1:-1:-1;;;;;9327:21:0;;;9762:41;;;;;;;;;;;;;;;;9929:29;;;;;;;;;;;;;;;;9189:58;;;;;;;;;;-1:-1:-1;9189:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3037:100;3091:13;3124:5;3117:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3037:100;:::o;3969:201::-;4052:4;511:10;4108:32;511:10;4124:7;4133:6;4108:8;:32::i;:::-;4158:4;4151:11;;;3969:201;;;;;:::o;4178:295::-;4309:4;511:10;4367:38;4383:4;511:10;4398:6;4367:15;:38::i;:::-;4416:27;4426:4;4432:2;4436:6;4416:9;:27::i;:::-;-1:-1:-1;4461:4:0;;4178:295;-1:-1:-1;;;;4178:295:0:o;15481:224::-;917:13;:11;:13::i;:::-;15572:6:::1;:27:::0;;-1:-1:-1;;;;;15572:27:0;;::::1;-1:-1:-1::0;;;;;;15572:27:0;;::::1;;::::0;;;15610:4:::1;:14:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;15635:62:::1;15652:4;15589:9:::0;-1:-1:-1;;15635:8:0::1;:62::i;:::-;15481:224:::0;;:::o;4481:238::-;4569:4;511:10;4625:64;511:10;4641:7;4678:10;4650:25;511:10;4641:7;4650:9;:25::i;:::-;:38;;;;:::i;:::-;4625:8;:64::i;1193:103::-;917:13;:11;:13::i;:::-;1258:30:::1;1285:1;1258:18;:30::i;:::-;1193:103::o:0;16003:147::-;917:13;:11;:13::i;:::-;3446:12;;16056:5:::1;:21:::0;3446:12;;16088:9:::1;:25:::0;16141:1:::1;16124:14:::0;:18;16003:147::o;15717:277::-;917:13;:11;:13::i;:::-;15780:14:::1;::::0;-1:-1:-1;;;15780:14:0;::::1;;;15779:15;15771:43;;;::::0;-1:-1:-1;;;15771:43:0;;5811:2:1;15771:43:0::1;::::0;::::1;5793:21:1::0;5850:2;5830:18;;;5823:30;-1:-1:-1;;;5869:18:1;;;5862:45;5924:18;;15771:43:0::1;;;;;;;;;15825:14;:21:::0;;-1:-1:-1;;;;15857:18:0;-1:-1:-1;;;15857:18:0;;;15903:2:::1;15886:14:::0;:19;15930:12:::1;15916:11;:26:::0;15971:15:::1;15953;:33:::0;15717:277::o;16742:289::-;16817:15;16849:3;16835:11;:6;16844:2;16835:11;:::i;:::-;:17;;;;:::i;:::-;16817:35;-1:-1:-1;16863:15:0;16895:3;16881:11;:6;16890:2;16881:11;:::i;:::-;:17;;;;:::i;:::-;16935:15;;16909:51;;-1:-1:-1;;;16909:51:0;;-1:-1:-1;;;;;16935:15:0;;;16909:51;;;6522::1;6589:18;;;6582:34;;;16863:35:0;;-1:-1:-1;16909:25:0;;;;;6495:18:1;;16909:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;16997:16:0;;16971:52;;-1:-1:-1;;;16971:52:0;;-1:-1:-1;;;;;16997:16:0;;;16971:52;;;6522:51:1;6589:18;;;6582:34;;;16971:25:0;;;;;;6495:18:1;;16971:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16806:225;;16742:289;;:::o;3145:104::-;3201:13;3234:7;3227:14;;;;;:::i;16472:262::-;16530:15;16565:3;16548:14;:9;16560:2;16548:14;:::i;:::-;:20;;;;:::i;:::-;16530:38;-1:-1:-1;16579:15:0;16614:3;16597:14;:9;16609:2;16597:14;:::i;:::-;:20;;;;:::i;:::-;16636:15;;16579:38;;-1:-1:-1;16628:43:0;;-1:-1:-1;;;;;16636:15:0;16663:7;16628:34;:43::i;:::-;16690:16;;16682:44;;-1:-1:-1;;;;;16690:16:0;16718:7;16682:35;:44::i;:::-;16519:215;;16472:262;:::o;4727:436::-;4820:4;511:10;4820:4;4903:25;511:10;4920:7;4903:9;:25::i;:::-;4876:52;;4967:15;4947:16;:35;;4939:85;;;;-1:-1:-1;;;4939:85:0;;7079:2:1;4939:85:0;;;7061:21:1;7118:2;7098:18;;;7091:30;7157:34;7137:18;;;7130:62;-1:-1:-1;;;7208:18:1;;;7201:35;7253:19;;4939:85:0;6877:401:1;4939:85:0;5060:60;5069:5;5076:7;5104:15;5085:16;:34;5060:8;:60::i;3609:193::-;3688:4;511:10;3744:28;511:10;3761:2;3765:6;3744:9;:28::i;16325:135::-;917:13;:11;:13::i;:::-;-1:-1:-1;;;;;16416:28:0;;;::::1;;::::0;;;:18:::1;:28;::::0;;;;:36;;-1:-1:-1;;16416:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16325:135::o;15188:110::-;917:13;:11;:13::i;:::-;15276:14:::1;:6:::0;15285:5:::1;15276:14;:::i;:::-;15260:13;:30:::0;-1:-1:-1;15188:110:0:o;16158:155::-;917:13;:11;:13::i;:::-;16250:14:::1;:6:::0;16259:5:::1;16250:14;:::i;:::-;16242:5;:22:::0;16287:18:::1;:10:::0;16300:5:::1;16287:18;:::i;:::-;16275:9;:30:::0;-1:-1:-1;;16158:155:0:o;3810:151::-;-1:-1:-1;;;;;3926:18:0;;;3899:7;3926:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3810:151::o;15085:95::-;917:13;:11;:13::i;:::-;15152:11:::1;:20:::0;;;::::1;;-1:-1:-1::0;;;15152:20:0::1;-1:-1:-1::0;;;;15152:20:0;;::::1;::::0;;;::::1;::::0;;15085:95::o;15310:159::-;917:13;:11;:13::i;:::-;15423:38:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;15415:5:::1;:46:::0;;;;;;;;15310:159::o;1304:201::-;917:13;:11;:13::i;:::-;-1:-1:-1;;;;;1393:22:0;::::1;1385:73;;;::::0;-1:-1:-1;;;1385:73:0;;7485:2:1;1385:73:0::1;::::0;::::1;7467:21:1::0;7524:2;7504:18;;;7497:30;7563:34;7543:18;;;7536:62;-1:-1:-1;;;7614:18:1;;;7607:36;7660:19;;1385:73:0::1;7283:402:1::0;1385:73:0::1;1469:28;1488:8;1469:18;:28::i;:::-;1304:201:::0;:::o;6900:380::-;-1:-1:-1;;;;;7036:19:0;;7028:68;;;;-1:-1:-1;;;7028:68:0;;7892:2:1;7028:68:0;;;7874:21:1;7931:2;7911:18;;;7904:30;7970:34;7950:18;;;7943:62;-1:-1:-1;;;8021:18:1;;;8014:34;8065:19;;7028:68:0;7690:400:1;7028:68:0;-1:-1:-1;;;;;7115:21:0;;7107:68;;;;-1:-1:-1;;;7107:68:0;;8297:2:1;7107:68:0;;;8279:21:1;8336:2;8316:18;;;8309:30;8375:34;8355:18;;;8348:62;-1:-1:-1;;;8426:18:1;;;8419:32;8468:19;;7107:68:0;8095:398:1;7107:68:0;-1:-1:-1;;;;;7188:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7240:32;;160:25:1;;;7240:32:0;;133:18:1;7240:32:0;;;;;;;6900:380;;;:::o;7288:453::-;7423:24;7450:25;7460:5;7467:7;7450:9;:25::i;:::-;7423:52;;-1:-1:-1;;7490:16:0;:37;7486:248;;7572:6;7552:16;:26;;7544:68;;;;-1:-1:-1;;;7544:68:0;;8700:2:1;7544:68:0;;;8682:21:1;8739:2;8719:18;;;8712:30;8778:31;8758:18;;;8751:59;8827:18;;7544:68:0;8498:353:1;7544:68:0;7656:51;7665:5;7672:7;7700:6;7681:16;:25;7656:8;:51::i;:::-;7412:329;7288:453;;;:::o;11109:2785::-;11225:1;11216:6;:10;11208:64;;;;-1:-1:-1;;;11208:64:0;;9058:2:1;11208:64:0;;;9040:21:1;9097:2;9077:18;;;9070:30;9136:34;9116:18;;;9109:62;-1:-1:-1;;;9187:18:1;;;9180:39;9236:19;;11208:64:0;8856:405:1;11208:64:0;11289:8;;-1:-1:-1;;;11289:8:0;;;;;:38;;-1:-1:-1;;;;;;11301:26:0;;;;;;:18;:26;;;;;;;;11289:38;:71;;;-1:-1:-1;;;;;;11331:29:0;;;;;;:18;:29;;;;;;;;11289:71;11285:1911;;;11377:42;11393:6;11401:9;11412:6;11377:15;:42::i;11285:1911::-;11491:14;;-1:-1:-1;;;11491:14:0;;;;11483:46;;;;-1:-1:-1;;;11483:46:0;;9468:2:1;11483:46:0;;;9450:21:1;9507:2;9487:18;;;9480:30;-1:-1:-1;;;9526:18:1;;;9519:49;9585:18;;11483:46:0;9266:343:1;11483:46:0;-1:-1:-1;;;;;11553:21:0;;;;;;:13;:21;;;;;;;;11552:22;:51;;;;-1:-1:-1;;;;;;11579:24:0;;;;;;:13;:24;;;;;;;;11578:25;11552:51;11544:83;;;;-1:-1:-1;;;11544:83:0;;9816:2:1;11544:83:0;;;9798:21:1;9855:2;9835:18;;;9828:30;-1:-1:-1;;;9874:18:1;;;9867:49;9933:18;;11544:83:0;9614:343:1;11544:83:0;11646:11;;-1:-1:-1;;;11646:11:0;;;;11645:12;:69;;;;;11699:15;11681;;11661:17;;:35;;;;:::i;:::-;:53;11645:69;11642:197;;;11734:11;:18;;-1:-1:-1;;;;11734:18:0;-1:-1:-1;;;11734:18:0;;;11779:14;;;;;;;;11785:1;11779:14;;;;;;;;;11734:18;11779:14;;;;;;;11771:5;:22;;;;;;;;;;11642:197;11906:15;11888;;11870;;:33;;;;:::i;:::-;:51;11867:256;;;11954:4;;-1:-1:-1;;;;;11944:14:0;;;11954:4;;11944:14;:46;;;;-1:-1:-1;;;;;;11963:27:0;;;;;;:16;:27;;;;;;;;11962:28;11944:46;11941:99;;;12010:5;;12000:6;:15;;11992:48;;;;-1:-1:-1;;;11992:48:0;;10164:2:1;11992:48:0;;;10146:21:1;10203:2;10183:18;;;10176:30;-1:-1:-1;;;10222:18:1;;;10215:50;10282:18;;11992:48:0;9962:344:1;11992:48:0;11867:256;;;12093:5;;12083:6;:15;;12075:48;;;;-1:-1:-1;;;12075:48:0;;10164:2:1;12075:48:0;;;10146:21:1;10203:2;10183:18;;;10176:30;-1:-1:-1;;;10222:18:1;;;10215:50;10282:18;;12075:48:0;9962:344:1;12075:48:0;12153:4;;-1:-1:-1;;;;;12143:14:0;;;12153:4;;12143:14;12140:573;;-1:-1:-1;;;;;12181:18:0;;;;;;:10;:18;;;;;;;;12178:379;;;-1:-1:-1;;;;;12244:17:0;;;;;;:9;:17;;;;;;12265:6;;12226:35;;:15;:35;:::i;:::-;:45;12223:126;;12324:1;12299:22;:26;12223:126;12419:22;;-1:-1:-1;;;;;12379:27:0;;;;;;:19;:27;;;;;;:36;;12409:6;;12379:36;:::i;:::-;:62;;12371:106;;;;-1:-1:-1;;;12371:106:0;;10646:2:1;12371:106:0;;;10628:21:1;10685:2;10665:18;;;10658:30;10724:33;10704:18;;;10697:61;10775:18;;12371:106:0;10444:355:1;12371:106:0;-1:-1:-1;;;;;12500:27:0;;;;;;:19;:27;;;;;:37;;12531:6;;12500:27;:37;;12531:6;;12500:37;:::i;:::-;;;;-1:-1:-1;;12178:379:0;12603:5;;-1:-1:-1;;;;;12583:17:0;;;;;;:9;:17;;;;;;12612:15;;12583:25;;;:::i;:::-;:44;;12575:68;;;;-1:-1:-1;;;12575:68:0;;11006:2:1;12575:68:0;;;10988:21:1;11045:2;11025:18;;;11018:30;-1:-1:-1;;;11064:18:1;;;11057:41;11115:18;;12575:68:0;10804:335:1;12575:68:0;-1:-1:-1;;;;;12662:17:0;;;;;;:9;:17;;;;;12682:15;12662:35;;12140:573;12743:4;;-1:-1:-1;;;;;12730:17:0;;;12743:4;;12730:17;12727:458;;12806:15;12788;;12770;;:33;;;;:::i;:::-;:51;:83;;;;-1:-1:-1;;;;;;12826:27:0;;;;;;:16;:27;;;;;;;;12825:28;12770:83;12767:161;;;-1:-1:-1;;;;;12877:24:0;;;;;;:13;:24;;;;;:31;;-1:-1:-1;;12877:31:0;12904:4;12877:31;;;12767:161;12987:9;;12977:6;12954:20;12964:9;-1:-1:-1;;;;;3575:18:0;3548:7;3575:18;;;;;;;;;;;;3474:127;12954:20;:29;;;;:::i;:::-;:42;;12946:76;;;;-1:-1:-1;;;12946:76:0;;11346:2:1;12946:76:0;;;11328:21:1;11385:2;11365:18;;;11358:30;-1:-1:-1;;;11404:18:1;;;11397:51;11465:18;;12946:76:0;11144:345:1;12946:76:0;13072:5;;-1:-1:-1;;;;;13049:20:0;;;;;;:9;:20;;;;;;13081:15;;13049:28;;;:::i;:::-;:47;;13041:71;;;;-1:-1:-1;;;13041:71:0;;11006:2:1;13041:71:0;;;10988:21:1;11045:2;11025:18;;;11018:30;-1:-1:-1;;;11064:18:1;;;11057:41;11115:18;;13041:71:0;10804:335:1;13041:71:0;-1:-1:-1;;;;;13131:20:0;;;;;;:9;:20;;;;;13154:15;13131:38;;12727:458;-1:-1:-1;;;;;13211:27:0;;;;;;:16;:27;;;;;;;;:45;;;;-1:-1:-1;13252:4:0;;-1:-1:-1;;;;;13242:14:0;;;13252:4;;13242:14;13211:45;:100;;;;;13296:15;13278;;13260;;:33;;;;:::i;:::-;:51;13211:100;13208:159;;;-1:-1:-1;;;;;13327:21:0;;;;;;:10;:21;;;;;:28;;-1:-1:-1;;13327:28:0;13351:4;13327:28;;;13208:159;13428:4;;13387:12;;-1:-1:-1;;;;;13428:4:0;;;13415:17;;;;13412:244;;13450:10;;13463:3;;13441:19;;:6;:19;:::i;:::-;:25;;;;:::i;:::-;13434:32;;13412:244;;;13495:4;;-1:-1:-1;;;;;13485:14:0;;;13495:4;;13485:14;:46;;;;-1:-1:-1;;;;;;13504:27:0;;;;;;:16;:27;;;;;;;;13503:28;13485:46;13482:174;;;13549:5;:9;13561:3;;13540:18;;:6;:18;:::i;13482:174::-;13593:4;;-1:-1:-1;;;;;13583:14:0;;;13593:4;;13583:14;;;;:35;;-1:-1:-1;13614:4:0;;-1:-1:-1;;;;;13601:17:0;;;13614:4;;13601:17;;13583:35;13580:76;;;13636:14;;13653:3;;13627:23;;:6;:23;:::i;:::-;:29;;;;:::i;:::-;13620:36;;13580:76;13674:11;;-1:-1:-1;;;13674:11:0;;;;:32;;;;-1:-1:-1;13702:4:0;;-1:-1:-1;;;;;13689:17:0;;;13702:4;;13689:17;13674:32;:45;;;;-1:-1:-1;13711:8:0;;-1:-1:-1;;;13711:8:0;;;;13710:9;13674:45;13670:61;;;13721:10;:8;:10::i;:::-;13744:49;13760:6;13768:9;13779:13;13788:4;13779:6;:13;:::i;:::-;13744:15;:49::i;:::-;13807:8;;13804:83;;13831:44;13847:6;13863:4;13870;13831:15;:44::i;1053:132::-;1031:6;;-1:-1:-1;;;;;1031:6:0;511:10;1117:23;1109:68;;;;-1:-1:-1;;;1109:68:0;;11696:2:1;1109:68:0;;;11678:21:1;;;11715:18;;;11708:30;11774:34;11754:18;;;11747:62;11826:18;;1109:68:0;11494:356:1;1513:191:0;1606:6;;;-1:-1:-1;;;;;1623:17:0;;;-1:-1:-1;;;;;;1623:17:0;;;;;;;1656:40;;1606:6;;;1623:17;1606:6;;1656:40;;1587:16;;1656:40;1576:128;1513:191;:::o;8499:317::-;8614:6;8589:21;:31;;8581:73;;;;-1:-1:-1;;;8581:73:0;;12057:2:1;8581:73:0;;;12039:21:1;12096:2;12076:18;;;12069:30;12135:31;12115:18;;;12108:59;12184:18;;8581:73:0;11855:353:1;8581:73:0;8668:12;8686:9;-1:-1:-1;;;;;8686:14:0;8708:6;8686:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8667:52;;;8738:7;8730:78;;;;-1:-1:-1;;;8730:78:0;;12625:2:1;8730:78:0;;;12607:21:1;12664:2;12644:18;;;12637:30;12703:34;12683:18;;;12676:62;12774:28;12754:18;;;12747:56;12820:19;;8730:78:0;12423:422:1;5171:675:0;-1:-1:-1;;;;;5302:18:0;;5294:68;;;;-1:-1:-1;;;5294:68:0;;13052:2:1;5294:68:0;;;13034:21:1;13091:2;13071:18;;;13064:30;13130:34;13110:18;;;13103:62;-1:-1:-1;;;13181:18:1;;;13174:35;13226:19;;5294:68:0;12850:401:1;5294:68:0;-1:-1:-1;;;;;5381:16:0;;5373:64;;;;-1:-1:-1;;;5373:64:0;;13458:2:1;5373:64:0;;;13440:21:1;13497:2;13477:18;;;13470:30;13536:34;13516:18;;;13509:62;-1:-1:-1;;;13587:18:1;;;13580:33;13630:19;;5373:64:0;13256:399:1;5373:64:0;-1:-1:-1;;;;;5523:15:0;;5501:19;5523:15;;;;;;;;;;;5557:21;;;;5549:72;;;;-1:-1:-1;;;5549:72:0;;13862:2:1;5549:72:0;;;13844:21:1;13901:2;13881:18;;;13874:30;13940:34;13920:18;;;13913:62;-1:-1:-1;;;13991:18:1;;;13984:36;14037:19;;5549:72:0;13660:402:1;5549:72:0;-1:-1:-1;;;;;5657:15:0;;;:9;:15;;;;;;;;;;;5675:20;;;5657:38;;5710:13;;;;;;;;;;:23;;;;;;5762:26;;160:25:1;;;5710:13:0;;5762:26;;133:18:1;5762:26:0;;;;;;;5801:37;16472:262;13902:861;10331:8;;-1:-1:-1;;;10331:8:0;;;;10326:104;;10356:8;:15;;-1:-1:-1;;;;10356:15:0;-1:-1:-1;;;10356:15:0;;;13995:4:::1;-1:-1:-1::0;3575:18:0;;;;;;;;;;;13951:50:::1;;14035:13;;14016:15;:32;14012:744;;14088:13;::::0;14138:9:::1;::::0;14121:26;;14118:74:::1;;14187:5;14165:13;3446:12:::0;;;3358:108;14165:13:::1;:19;::::0;14181:3:::1;14165:19;:::i;:::-;:27;;;;:::i;:::-;14149:13;:43:::0;14118:74:::1;14234:21;14270:30;14287:12:::0;14270:16:::1;:30::i;:::-;14315:20;14338:38;14362:14:::0;14338:21:::1;:38;:::i;:::-;14315:61:::0;-1:-1:-1;14391:21:0::1;14435:3;14415:17;14315:61:::0;14430:2:::1;14415:17;:::i;:::-;:23;;;;:::i;:::-;14391:47:::0;-1:-1:-1;14510:21:0::1;14554:3;14534:17;:12:::0;14549:2:::1;14534:17;:::i;:::-;:23;;;;:::i;:::-;14638:15;::::0;14510:47;;-1:-1:-1;14630:49:0::1;::::0;-1:-1:-1;;;;;14638:15:0::1;14665:13:::0;14630:34:::1;:49::i;:::-;14702:16;::::0;14694:50:::1;::::0;-1:-1:-1;;;;;14702:16:0::1;14730:13:::0;14694:35:::1;:50::i;:::-;14050:706;;;;;14012:744;-1:-1:-1::0;10402:8:0;:16;;-1:-1:-1;;;;10402:16:0;;;13902:861::o;14771:306::-;14861:16;;;14875:1;14861:16;;;;;;;;14837:21;;14861:16;;;;;;;;;;-1:-1:-1;14861:16:0;14837:40;;14906:4;14888;14893:1;14888:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14888:23:0;;;:7;;;;;;;;;;:23;;;;14932:6;;:13;;;-1:-1:-1;;;14932:13:0;;;;:6;;;;;:11;;:13;;;;;14888:7;;14932:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14922:4;14927:1;14922:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14922:23:0;;;:7;;;;;;;;;:23;14958:6;;:111;;-1:-1:-1;;;14958:111:0;;:6;;;:57;;:111;;15016:11;;14958:6;;15032:4;;15046;;15053:15;;14958:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14826:251;14771:306;:::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:456::-;1682:6;1690;1698;1751:2;1739:9;1730:7;1726:23;1722:32;1719:52;;;1767:1;1764;1757:12;1719:52;1806:9;1793:23;1825:31;1850:5;1825:31;:::i;:::-;1875:5;-1:-1:-1;1932:2:1;1917:18;;1904:32;1945:33;1904:32;1945:33;:::i;:::-;1605:456;;1997:7;;-1:-1:-1;;;2051:2:1;2036:18;;;;2023:32;;1605:456::o;2066:388::-;2134:6;2142;2195:2;2183:9;2174:7;2170:23;2166:32;2163:52;;;2211:1;2208;2201:12;2163:52;2250:9;2237:23;2269:31;2294:5;2269:31;:::i;:::-;2319:5;-1:-1:-1;2376:2:1;2361:18;;2348:32;2389:33;2348:32;2389:33;:::i;:::-;2441:7;2431:17;;;2066:388;;;;;:::o;2648:247::-;2707:6;2760:2;2748:9;2739:7;2735:23;2731:32;2728:52;;;2776:1;2773;2766:12;2728:52;2815:9;2802:23;2834:31;2859:5;2834:31;:::i;:::-;2884:5;2648:247;-1:-1:-1;;;2648:247:1:o;3224:180::-;3283:6;3336:2;3324:9;3315:7;3311:23;3307:32;3304:52;;;3352:1;3349;3342:12;3304:52;-1:-1:-1;3375:23:1;;3224:180;-1:-1:-1;3224:180:1:o;3409:118::-;3495:5;3488:13;3481:21;3474:5;3471:32;3461:60;;3517:1;3514;3507:12;3532:382;3597:6;3605;3658:2;3646:9;3637:7;3633:23;3629:32;3626:52;;;3674:1;3671;3664:12;3626:52;3713:9;3700:23;3732:31;3757:5;3732:31;:::i;:::-;3782:5;-1:-1:-1;3839:2:1;3824:18;;3811:32;3852:30;3811:32;3852:30;:::i;3919:248::-;3987:6;3995;4048:2;4036:9;4027:7;4023:23;4019:32;4016:52;;;4064:1;4061;4054:12;4016:52;-1:-1:-1;;4087:23:1;;;4157:2;4142:18;;;4129:32;;-1:-1:-1;3919:248:1:o;4172:241::-;4228:6;4281:2;4269:9;4260:7;4256:23;4252:32;4249:52;;;4297:1;4294;4287:12;4249:52;4336:9;4323:23;4355:28;4377:5;4355:28;:::i;4418:316::-;4495:6;4503;4511;4564:2;4552:9;4543:7;4539:23;4535:32;4532:52;;;4580:1;4577;4570:12;4532:52;-1:-1:-1;;4603:23:1;;;4673:2;4658:18;;4645:32;;-1:-1:-1;4724:2:1;4709:18;;;4696:32;;4418:316;-1:-1:-1;4418:316:1:o;4962:380::-;5041:1;5037:12;;;;5084;;;5105:61;;5159:4;5151:6;5147:17;5137:27;;5105:61;5212:2;5204:6;5201:14;5181:18;5178:38;5175:161;;5258:10;5253:3;5249:20;5246:1;5239:31;5293:4;5290:1;5283:15;5321:4;5318:1;5311:15;5175:161;;4962:380;;;:::o;5347:127::-;5408:10;5403:3;5399:20;5396:1;5389:31;5439:4;5436:1;5429:15;5463:4;5460:1;5453:15;5479:125;5544:9;;;5565:10;;;5562:36;;;5578:18;;:::i;5953:168::-;6026:9;;;6057;;6074:15;;;6068:22;;6054:37;6044:71;;6095:18;;:::i;6126:217::-;6166:1;6192;6182:132;;6236:10;6231:3;6227:20;6224:1;6217:31;6271:4;6268:1;6261:15;6299:4;6296:1;6289:15;6182:132;-1:-1:-1;6328:9:1;;6126:217::o;6627:245::-;6694:6;6747:2;6735:9;6726:7;6722:23;6718:32;6715:52;;;6763:1;6760;6753:12;6715:52;6795:9;6789:16;6814:28;6836:5;6814:28;:::i;10311:128::-;10378:9;;;10399:11;;;10396:37;;;10413:18;;:::i;14199:127::-;14260:10;14255:3;14251:20;14248:1;14241:31;14291:4;14288:1;14281:15;14315:4;14312:1;14305:15;14331:251;14401:6;14454:2;14442:9;14433:7;14429:23;14425:32;14422:52;;;14470:1;14467;14460:12;14422:52;14502:9;14496:16;14521:31;14546:5;14521:31;:::i;14587:980::-;14849:4;14897:3;14886:9;14882:19;14928:6;14917:9;14910:25;14954:2;14992:6;14987:2;14976:9;14972:18;14965:34;15035:3;15030:2;15019:9;15015:18;15008:31;15059:6;15094;15088:13;15125:6;15117;15110:22;15163:3;15152:9;15148:19;15141:26;;15202:2;15194:6;15190:15;15176:29;;15223:1;15233:195;15247:6;15244:1;15241:13;15233:195;;;15312:13;;-1:-1:-1;;;;;15308:39:1;15296:52;;15403:15;;;;15368:12;;;;15344:1;15262:9;15233:195;;;-1:-1:-1;;;;;;;15484:32:1;;;;15479:2;15464:18;;15457:60;-1:-1:-1;;;15548:3:1;15533:19;15526:35;15445:3;14587:980;-1:-1:-1;;;14587:980:1:o

Swarm Source

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