ETH Price: $3,699.08 (+1.76%)
 

Overview

Max Total Supply

10,000,000 ADX

Holders

275

Market

Price

$0.02 @ 0.000005 ETH (+0.28%)

Onchain Market Cap

$201,607.60

Circulating Supply Market Cap

$201,608.00

Other Info

Token Contract (WITH 9 Decimals)

Balance
0 ADX

Value
$0.00
0x32ee3ba1ba74c4d0f91aafdd04174c0ce005890d
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

AnyDex is a decentralized exchange (DEX) for gasless, taxless trading of DeFi assets, real-world assets (RWAs), and traditional financial assets like stocks and options. Using a synthetic trades model backed by USDT, it avoids high fees and depegging risks, unlocking a multi-trillion-dollar market.

Market

Volume (24H):$63.55
Market Capitalization:$201,608.00
Circulating Supply:10,000,000.00 ADX
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume
1
Uniswap V2 (Ethereum)
0X83389CB4E4F0BFF39915EFA839CB827460E70D26-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$0.0202
0.0000055 Eth
$63.68
3,152.331 0X83389CB4E4F0BFF39915EFA839CB827460E70D26
100.0000%

Contract Source Code Verified (Exact Match)

Contract Name:
AnyDex

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-09
*/

/**
https://www.anydex.org
https://t.me/anydexofficial
https://x.com/anydexofficial
**/

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.20;

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

contract Ownable is Context {
    address public _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() external virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

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

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

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

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

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

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

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

interface InterfaceLP {
    function sync() external;
}

contract AnyDex is Ownable, ERC20 {

    address immutable WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "AnyDex";
    string constant _symbol = "ADX";
    uint8 constant _decimals = 9; 
  

    uint256 constant _totalSupply = 10000000 * 10**_decimals;

    uint256 public _maxTxAmount = _totalSupply / 100;
    uint256 public _maxWalletAmount = _totalSupply / 100;

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

    
    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    uint256 private buyMarketingFee    = 15;
    uint256 private buyTeamFee         = 10;
    uint256 public  buyTotalFee        = buyTeamFee + buyMarketingFee;

    uint256 private sellMarketingFee   = 18;
    uint256 private sellTeamFee        = 12;
    uint256 public  sellTotalFee       = sellTeamFee + sellMarketingFee;

    uint256 constant transferFee        = 0;
    
    uint256 private lastSwap;
    address private marketingFeeReceiver;
    address private teamFeeReceiver;

    IDEXRouter public router;
    InterfaceLP private pairContract;
    address immutable public pair;
    
    bool public TradingOpen = false;    

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 100; 
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    event maxWalletUpdated(uint256 indexed maxWalletAmount);
    event maxTxUpdated(uint256 indexed maxTxAmount);
    event maxLimitsRemoved(uint256 indexed maxWalletToken, uint256 indexed maxTxAmount);
    event exemptFees(address indexed holder, bool indexed exempt);
    event exemptTxLimit(address indexed holder, bool indexed exempt);
    event buyFeesUpdated(uint256 indexed buyTeamFee, uint256 indexed buyMarketingFee);
    event sellFeesUpdated(uint256 indexed sellTeamFee, uint256 indexed sellMarketingFee);
    event feesWalletsUpdated(address indexed marketingFeeReceiver, address indexed teamFeeReceiver);
    event swapbackSettingsUpdated(bool indexed enabled, uint256 indexed amount);
    event tradingEnabled(bool indexed enabled, uint256 indexed startTime);
    
    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
       
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        marketingFeeReceiver = 0x257250d7d9184Bf88c18d89E4e7CB85659Ca4b0a;
        teamFeeReceiver = 0xfd3AF764071FdF523D0BaE350B45a3CFe5Cc3458;

        isFeeExempt[msg.sender] = true; 
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);

    }

    receive() external payable { }

    function totalSupply() external pure override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) {return owner();}
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        require(spender != address(0), "Spender is the zero address");
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveAll(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        require(recipient != address(0), "Recipient is the zero address");
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(sender != address(0), "Sender is the zero address");
        require(recipient != address(0), "Recipient is the zero address");
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if(currentAllowance != type(uint256).max){
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _allowances[sender][_msgSender()] = currentAllowance - amount;
            }
        }

        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWallet(uint256 maxWalletPercent) external onlyOwner {
        require(maxWalletPercent >= 5);
        _maxWalletAmount = (_totalSupply * maxWalletPercent ) / 1000;
        emit maxWalletUpdated(_maxWalletAmount);       
    }

    function setMaxTx(uint256 maxTxPercent) external onlyOwner {
        require(maxTxPercent >= 5); 
        _maxTxAmount = (_totalSupply * maxTxPercent ) / 1000;
        emit maxTxUpdated(_maxTxAmount);
    }

   
  
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(sender != owner()){
            require(TradingOpen,"Trading not open yet");
        
        }
        
        checkTxLimit(sender, amount);
        
        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");

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

        if (sender != owner() && (recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != marketingFeeReceiver && !isTxLimitExempt[recipient])){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amountReceived) <= _maxWalletAmount,"Total Holding is currently limited, you can not buy that much.");}

        if(
            lastSwap != block.number &&
            _balances[address(this)] >= swapThreshold &&
            swapEnabled &&
            !inSwap &&
            recipient == pair
        ){ 
            swapBack();
            lastSwap = block.number;
        }

        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amountReceived;

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "Tx Limit Exceeded");
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        uint256 feeAmount = 0;

        if(recipient == pair) {
            feeAmount = (amount * sellTotalFee) / 100;
        } else if(sender == pair) {
            feeAmount = (amount * buyTotalFee) / 100;
        }else{
            feeAmount = (amount * transferFee) / 100;
        }

        _balances[address(this)] += feeAmount;
        emit Transfer(sender, address(this), feeAmount);
        uint256 notFeeAmount = amount - feeAmount;

        return notFeeAmount;
    }

    function removeMaxLimits() external onlyOwner { 
        _maxWalletAmount = _totalSupply;
        _maxTxAmount = _totalSupply;
        emit maxLimitsRemoved(_maxWalletAmount, _maxTxAmount);
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) external returns (bool) {
        require(msg.sender == marketingFeeReceiver || msg.sender == teamFeeReceiver);
        require(address(tokenAddress) != address(this));
        if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }


    function StartAnyDex() external onlyOwner {
        require(!TradingOpen,"Trading already Enabled.");
        TradingOpen = true;
        lastSwap = block.number;
        emit tradingEnabled(TradingOpen, lastSwap);
    }

    function swapBack() internal swapping {
        uint256 totalFee = buyTotalFee + sellTotalFee;
        uint256 teamFee = buyTeamFee + sellTeamFee;
        uint256 amountETHteam = 0;
        uint256 amountETHMarketing = 0;

        uint256 amountToSwap = swapThreshold;

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

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

        uint256 totalETHFee = address(this).balance;

        if(totalFee == 0) {
            amountETHteam = 0;
        } else {
            amountETHteam = (totalETHFee * teamFee) / totalFee;
        }

        amountETHMarketing = totalETHFee - amountETHteam;

        (bool tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHteam}("");
        require(tmpSuccess, "Failed to send ether to Team Fee Receiver.");
        
        (bool tmpSuccess1,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        require(tmpSuccess1, "Failed to send ether to Marketing Fee Receiver.");

    }

    function exemptAll(address holder, bool exempt) external onlyOwner {
        require(holder != address(0), "Holder is the zero address");
        isFeeExempt[holder] = exempt;
        isTxLimitExempt[holder] = exempt;
        emit exemptFees(holder, exempt);
    }

    function setTxLimitExempt(address holder, bool exempt) external onlyOwner {
        require(holder != address(0), "Holder is the zero address");
        isTxLimitExempt[holder] = exempt;
        emit exemptTxLimit(holder, exempt);
    }


    function updateBuyFees(uint256 _teamFee, uint256 _marketingFee) external onlyOwner {
        require( _teamFee + _marketingFee <= 5, "Fees can not be more than 5%"); 
        buyTeamFee = _teamFee;
        buyMarketingFee = _marketingFee;
        buyTotalFee =_teamFee+ _marketingFee;
        emit buyFeesUpdated(buyTeamFee, buyMarketingFee);
    }

    function updateSellFees(uint256 _teamFee, uint256 _marketingFee) external onlyOwner {
        require(_teamFee + _marketingFee <= 5, "Fees can not be more than 5%"); 
        sellTeamFee = _teamFee;
        sellMarketingFee = _marketingFee;
        sellTotalFee =_teamFee+ _marketingFee;
        emit sellFeesUpdated(sellTeamFee, sellMarketingFee);
    }

    function updateReceiverWallets( address _marketingFeeReceiver, address _teamFeeReceiver) external onlyOwner {
        require(_marketingFeeReceiver != address(0) && _teamFeeReceiver != address(0) , "Fee receiver cannot be zero address");
        marketingFeeReceiver = _marketingFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
        emit feesWalletsUpdated(marketingFeeReceiver, teamFeeReceiver);
    }

    function editSwapbackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount * 10**_decimals;
        emit swapbackSettingsUpdated(_enabled, _amount);
    }

    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply - balanceOf(DEAD);
    }

}

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":"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":"uint256","name":"buyTeamFee","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"buyMarketingFee","type":"uint256"}],"name":"buyFeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":true,"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":true,"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptTxLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"indexed":true,"internalType":"address","name":"teamFeeReceiver","type":"address"}],"name":"feesWalletsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxWalletToken","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"maxLimitsRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"maxTxUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"maxWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"sellTeamFee","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"sellMarketingFee","type":"uint256"}],"name":"sellFeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"swapbackSettingsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":true,"internalType":"uint256","name":"startTime","type":"uint256"}],"name":"tradingEnabled","type":"event"},{"inputs":[],"name":"StartAnyDex","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveAll","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":"buyTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"editSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeMaxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTxLimitExempt","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":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"updateReceiverWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526064620000146009600a6200050e565b62000023906298968062000525565b6200002f91906200053f565b6001556064620000426009600a6200050e565b62000051906298968062000525565b6200005d91906200053f565b600255600f600755600a6008556007546008546200007c91906200055f565b6009556012600a55600c600b55600a54600b546200009b91906200055f565b600c556011805461ffff60a01b1916600160a81b1790556064620000c26009600a6200050e565b620000d1906298968062000525565b620000dd91906200053f565b601255348015620000ec575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000190573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b6919062000575565b6001600160a01b039081166080526010546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000205573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200022b919062000575565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af11580156200027a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002a0919062000575565b6001600160a01b0390811660a0819052601180546001600160a01b03199081168317909155305f8181526004602090815260408083206010548816845282528083205f199055600e8054861673257250d7d9184bf88c18d89e4e7cb85659ca4b0a178155600f805490961673fd3af764071fdf523d0bae350b45a3cfe5cc34581790955533835260058252808320805460ff199081166001908117909255600690935281842080548416821790559583528083208054831687179055935490951681528281208054861685179055908152208054909216179055620003886009600a6200050e565b62000397906298968062000525565b335f81815260036020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003d96009600a6200050e565b620003e8906298968062000525565b60405190815260200160405180910390a36200059d565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200045357815f1904821115620004375762000437620003ff565b808516156200044557918102915b93841c939080029062000418565b509250929050565b5f826200046b5750600162000508565b816200047957505f62000508565b81600181146200049257600281146200049d57620004bd565b600191505062000508565b60ff841115620004b157620004b1620003ff565b50506001821b62000508565b5060208310610133831016604e8410600b8410161715620004e2575081810a62000508565b620004ee838362000413565b805f1904821115620005045762000504620003ff565b0290505b92915050565b5f6200051e60ff8416836200045b565b9392505050565b8082028115828204841417620005085762000508620003ff565b5f826200055a57634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115620005085762000508620003ff565b5f6020828403121562000586575f80fd5b81516001600160a01b03811681146200051e575f80fd5b60805160a051612123620005db5f395f81816105760152818161151f01528181611681015281816118a201526118ee01525f611a5901526121235ff3fe608060405260043610610209575f3560e01c806370a0823111610113578063a8aa1b311161009d578063ccf8c0361161006d578063ccf8c036146105f4578063dd62ed3e14610613578063f2fde38b14610657578063f6a78e1714610676578063f887ea401461068a575f80fd5b8063a8aa1b3114610565578063a9059cbb14610598578063b2bdfa7b146105b7578063bc337182146105d5575f80fd5b8063893d20e8116100e3578063893d20e8146104bb5780638a554c53146104eb5780638d7a8ba7146104ff5780638da5cb5b1461051e57806395d89b411461053a575f80fd5b806370a082311461043f578063715018a61461047357806377b54bad146104875780637d1db4a5146104a6575f80fd5b806318160ddd116101945780633705b392116101645780633705b392146103b75780635d0044ca146103cc57806366ca9b83146103eb5780636c0a24eb1461040a5780636ddd17131461041f575f80fd5b806318160ddd1461035557806323b872dd146103695780632b112e4914610388578063313ce5671461039c575f80fd5b80630621472c116101da5780630621472c1461029157806306fdde03146102c057806308fd3d05146102f7578063095ea7b314610317578063121555a614610336575f80fd5b8062afb3251461021457806302dbd8f81461023c57806304368f651461025d5780630445b6671461027c575f80fd5b3661021057005b5f80fd5b34801561021f575f80fd5b50610229600c5481565b6040519081526020015b60405180910390f35b348015610247575f80fd5b5061025b610256366004611cb6565b6106a9565b005b348015610268575f80fd5b5061025b610277366004611ce6565b61077e565b348015610287575f80fd5b5061022960125481565b34801561029c575f80fd5b506102b06102ab366004611d2b565b610809565b6040519015158152602001610233565b3480156102cb575f80fd5b50604080518082019091526006815265082dcf288caf60d31b60208201525b6040516102339190611d44565b348015610302575f80fd5b506011546102b090600160a01b900460ff1681565b348015610322575f80fd5b506102b0610331366004611d8f565b61081b565b348015610341575f80fd5b5061025b610350366004611da9565b6108d5565b348015610360575f80fd5b506102296109d3565b348015610374575f80fd5b506102b0610383366004611dda565b6109f2565b348015610393575f80fd5b50610229610b69565b3480156103a7575f80fd5b5060405160098152602001610233565b3480156103c2575f80fd5b5061022960095481565b3480156103d7575f80fd5b5061025b6103e6366004611e13565b610bba565b3480156103f6575f80fd5b5061025b610405366004611cb6565b610c51565b348015610415575f80fd5b5061022960025481565b34801561042a575f80fd5b506011546102b090600160a81b900460ff1681565b34801561044a575f80fd5b50610229610459366004611d2b565b6001600160a01b03165f9081526003602052604090205490565b34801561047e575f80fd5b5061025b610d1d565b348015610492575f80fd5b506102b06104a1366004611d8f565b610d8e565b3480156104b1575f80fd5b5061022960015481565b3480156104c6575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610233565b3480156104f6575f80fd5b5061025b610ead565b34801561050a575f80fd5b5061025b610519366004611e2a565b610f83565b348015610529575f80fd5b505f546001600160a01b03166104d3565b348015610545575f80fd5b5060408051808201909152600381526208288b60eb1b60208201526102ea565b348015610570575f80fd5b506104d37f000000000000000000000000000000000000000000000000000000000000000081565b3480156105a3575f80fd5b506102b06105b2366004611d8f565b611055565b3480156105c2575f80fd5b505f546104d3906001600160a01b031681565b3480156105e0575f80fd5b5061025b6105ef366004611e13565b6110b7565b3480156105ff575f80fd5b5061025b61060e366004611e2a565b61114e565b34801561061e575f80fd5b5061022961062d366004611da9565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b348015610662575f80fd5b5061025b610671366004611d2b565b611234565b348015610681575f80fd5b5061025b61131b565b348015610695575f80fd5b506010546104d3906001600160a01b031681565b5f546001600160a01b031633146106db5760405162461bcd60e51b81526004016106d290611e5f565b60405180910390fd5b60056106e78284611ea8565b11156107355760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e206e6f74206265206d6f7265207468616e2035250000000060448201526064016106d2565b600b829055600a8190556107498183611ea8565b600c55600a54600b546040517f1568ae12a48f94971e72d93f8f5846cfda77ba2ba927d867f64e498835788138905f90a35050565b5f546001600160a01b031633146107a75760405162461bcd60e51b81526004016106d290611e5f565b6011805460ff60a81b1916600160a81b841515021790556107ca6009600a611f9b565b6107d49082611fa9565b6012556040518190831515907fd896c9007bf8dc883f6b125322395dddc87bf825aed2e302315071c66e0d5dd9905f90a35050565b5f610815825f1961081b565b92915050565b5f6001600160a01b0383166108725760405162461bcd60e51b815260206004820152601b60248201527f5370656e64657220697320746865207a65726f2061646472657373000000000060448201526064016106d2565b335f8181526004602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350600192915050565b5f546001600160a01b031633146108fe5760405162461bcd60e51b81526004016106d290611e5f565b6001600160a01b0382161580159061091e57506001600160a01b03811615155b6109765760405162461bcd60e51b815260206004820152602360248201527f4665652072656365697665722063616e6e6f74206265207a65726f206164647260448201526265737360e81b60648201526084016106d2565b600e80546001600160a01b03199081166001600160a01b03858116918217909355600f80549092169284169283179091556040517f5b1b7727e42d2f1e9652d0af0d3b4f580a270e5d7ff9a47120c8602d4ec2def5905f90a35050565b5f6109e06009600a611f9b565b6109ed9062989680611fa9565b905090565b5f6001600160a01b038416610a495760405162461bcd60e51b815260206004820152601a60248201527f53656e64657220697320746865207a65726f206164647265737300000000000060448201526064016106d2565b6001600160a01b038316610a9f5760405162461bcd60e51b815260206004820152601d60248201527f526563697069656e7420697320746865207a65726f206164647265737300000060448201526064016106d2565b6001600160a01b0384165f9081526004602090815260408083203384529091529020545f198114610b535782811015610b2b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106d2565b6001600160a01b0385165f908152600460209081526040808320338452909152902083820390555b610b5e8585856113ab565b9150505b9392505050565b61dead5f90815260036020527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c54610ba36009600a611f9b565b610bb09062989680611fa9565b6109ed9190611fc0565b5f546001600160a01b03163314610be35760405162461bcd60e51b81526004016106d290611e5f565b6005811015610bf0575f80fd5b6103e881610c006009600a611f9b565b610c0d9062989680611fa9565b610c179190611fa9565b610c219190611fd3565b60028190556040517ff8c5ab682312267665fe2e7afb06ce5e015dae6e8e8b89ebf47de5312c153c35905f90a250565b5f546001600160a01b03163314610c7a5760405162461bcd60e51b81526004016106d290611e5f565b6005610c868284611ea8565b1115610cd45760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e206e6f74206265206d6f7265207468616e2035250000000060448201526064016106d2565b60088290556007819055610ce88183611ea8565b6009556007546008546040517f2816b76723f76e2768850694f4460c7c44a6592719ca811a201bd3087a872557905f90a35050565b5f546001600160a01b03163314610d465760405162461bcd60e51b81526004016106d290611e5f565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b600e545f906001600160a01b0316331480610db35750600f546001600160a01b031633145b610dbb575f80fd5b306001600160a01b03841603610dcf575f80fd5b815f03610e3f576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610e18573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e3c9190611ff2565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610e89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b629190612009565b5f546001600160a01b03163314610ed65760405162461bcd60e51b81526004016106d290611e5f565b601154600160a01b900460ff1615610f305760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920456e61626c65642e000000000000000060448201526064016106d2565b6011805460ff60a01b1916600160a01b9081179182905543600d81905560405190929190910460ff161515907f07c24843b569ea20bd3c266fb17047bdd751e44ea3afa2150f231b90bc669f4d905f90a3565b5f546001600160a01b03163314610fac5760405162461bcd60e51b81526004016106d290611e5f565b6001600160a01b0382166110025760405162461bcd60e51b815260206004820152601a60248201527f486f6c64657220697320746865207a65726f206164647265737300000000000060448201526064016106d2565b6001600160a01b0382165f81815260066020526040808220805460ff191685151590811790915590519092917f5422e85d9bcca047954218b93afb25e9bc2afe9bdc19e7297968b2c919c8377591a35050565b5f6001600160a01b0383166110ac5760405162461bcd60e51b815260206004820152601d60248201527f526563697069656e7420697320746865207a65726f206164647265737300000060448201526064016106d2565b610b623384846113ab565b5f546001600160a01b031633146110e05760405162461bcd60e51b81526004016106d290611e5f565b60058110156110ed575f80fd5b6103e8816110fd6009600a611f9b565b61110a9062989680611fa9565b6111149190611fa9565b61111e9190611fd3565b60018190556040517f3e20d7489efd636786bf4e1e0eb2addeb10f5435dc95fff56528021af35c5041905f90a250565b5f546001600160a01b031633146111775760405162461bcd60e51b81526004016106d290611e5f565b6001600160a01b0382166111cd5760405162461bcd60e51b815260206004820152601a60248201527f486f6c64657220697320746865207a65726f206164647265737300000000000060448201526064016106d2565b6001600160a01b0382165f818152600560209081526040808320805486151560ff199182168117909255600690935281842080549093168117909255519092917f4aaa6e45cd52263caf7af003089cdf83d1751392e7edf53c1b5542d94f39734691a35050565b5f546001600160a01b0316331461125d5760405162461bcd60e51b81526004016106d290611e5f565b6001600160a01b0381166112c25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106d2565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146113445760405162461bcd60e51b81526004016106d290611e5f565b6113506009600a611f9b565b61135d9062989680611fa9565b60025561136c6009600a611f9b565b6113799062989680611fa9565b60018190556002546040517fe5ca8724fdb01105b3129a1959a63ecdb2638b93266579bbcca33b66c737faa9905f90a3565b6013545f9060ff16156113ca576113c384848461175d565b9050610b62565b5f546001600160a01b0385811691161461142e57601154600160a01b900460ff1661142e5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016106d2565b611438848361182a565b6001600160a01b0384165f90815260036020526040902054828110156114705760405162461bcd60e51b81526004016106d290612024565b6001600160a01b0385165f9081526005602052604081205460ff16806114ad57506001600160a01b0385165f9081526005602052604090205460ff165b6114c1576114bc868587611896565b6114c3565b835b90506114d65f546001600160a01b031690565b6001600160a01b0316866001600160a01b03161415801561159257506001600160a01b038516301480159061151657506001600160a01b03851661dead14155b801561155457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b801561156e5750600e546001600160a01b03868116911614155b801561159257506001600160a01b0385165f9081526006602052604090205460ff16155b15611632576001600160a01b0385165f908152600360205260409020546002546115bc8383611ea8565b11156116305760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016106d2565b505b43600d54141580156116545750601254305f9081526003602052604090205410155b80156116695750601154600160a81b900460ff165b8015611678575060135460ff16155b80156116b557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316145b156116c7576116c26119c6565b43600d555b6001600160a01b038087165f908152600360205260408082208786039055918716815290812080548392906116fd908490611ea8565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161174991815260200190565b60405180910390a350600195945050505050565b6001600160a01b0383165f90815260036020526040812054828110156117955760405162461bcd60e51b81526004016106d290612024565b6001600160a01b038086165f908152600360205260408082208685039055918616815290812080548592906117cb908490611ea8565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161181791815260200190565b60405180910390a3506001949350505050565b6001548111158061185257506001600160a01b0382165f9081526006602052604090205460ff165b6118925760405162461bcd60e51b8152602060048201526011602482015270151e08131a5b5a5d08115e18d959591959607a1b60448201526064016106d2565b5050565b5f806001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116908416036118ec576064600c54856118db9190611fa9565b6118e59190611fd3565b905061194e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031603611935576064600954856118db9190611fa9565b60646119415f86611fa9565b61194b9190611fd3565b90505b305f908152600360205260408120805483929061196c908490611ea8565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35f6119bc8286611fc0565b9695505050505050565b6013805460ff19166001179055600c546009545f916119e491611ea8565b90505f600b546008546119f79190611ea8565b6012546040805160028082526060820183529394505f938493928492919060208301908036833701905050905030815f81518110611a3757611a3761206a565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611a8b57611a8b61206a565b6001600160a01b03928316602091820292909201015260105460405163791ac94760e01b815291169063791ac94790611ad09085905f9086903090429060040161207e565b5f604051808303815f87803b158015611ae7575f80fd5b505af1158015611af9573d5f803e3d5ffd5b5047925050505f879003611b0f575f9450611b27565b86611b1a8783611fa9565b611b249190611fd3565b94505b611b318582611fc0565b600f546040519195505f916001600160a01b039091169087908381818185875af1925050503d805f8114611b80576040519150601f19603f3d011682016040523d82523d5f602084013e611b85565b606091505b5050905080611be95760405162461bcd60e51b815260206004820152602a60248201527f4661696c656420746f2073656e6420657468657220746f205465616d20466565604482015269102932b1b2b4bb32b91760b11b60648201526084016106d2565b600e546040515f916001600160a01b03169087908381818185875af1925050503d805f8114611c33576040519150601f19603f3d011682016040523d82523d5f602084013e611c38565b606091505b5050905080611ca15760405162461bcd60e51b815260206004820152602f60248201527f4661696c656420746f2073656e6420657468657220746f204d61726b6574696e60448201526e33902332b2902932b1b2b4bb32b91760891b60648201526084016106d2565b50506013805460ff1916905550505050505050565b5f8060408385031215611cc7575f80fd5b50508035926020909101359150565b8015158114611ce3575f80fd5b50565b5f8060408385031215611cf7575f80fd5b8235611d0281611cd6565b946020939093013593505050565b80356001600160a01b0381168114611d26575f80fd5b919050565b5f60208284031215611d3b575f80fd5b610b6282611d10565b5f6020808352835180828501525f5b81811015611d6f57858101830151858201604001528201611d53565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611da0575f80fd5b611d0283611d10565b5f8060408385031215611dba575f80fd5b611dc383611d10565b9150611dd160208401611d10565b90509250929050565b5f805f60608486031215611dec575f80fd5b611df584611d10565b9250611e0360208501611d10565b9150604084013590509250925092565b5f60208284031215611e23575f80fd5b5035919050565b5f8060408385031215611e3b575f80fd5b611e4483611d10565b91506020830135611e5481611cd6565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561081557610815611e94565b600181815b80851115611ef557815f1904821115611edb57611edb611e94565b80851615611ee857918102915b93841c9390800290611ec0565b509250929050565b5f82611f0b57506001610815565b81611f1757505f610815565b8160018114611f2d5760028114611f3757611f53565b6001915050610815565b60ff841115611f4857611f48611e94565b50506001821b610815565b5060208310610133831016604e8410600b8410161715611f76575081810a610815565b611f808383611ebb565b805f1904821115611f9357611f93611e94565b029392505050565b5f610b6260ff841683611efd565b808202811582820484141761081557610815611e94565b8181038181111561081557610815611e94565b5f82611fed57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215612002575f80fd5b5051919050565b5f60208284031215612019575f80fd5b8151610b6281611cd6565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156120cc5784516001600160a01b0316835293830193918301916001016120a7565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122099912106c58a8404c544f0820fd73563d5426fa3f33e108a1522eaf2f945f89964736f6c63430008140033

Deployed Bytecode

0x608060405260043610610209575f3560e01c806370a0823111610113578063a8aa1b311161009d578063ccf8c0361161006d578063ccf8c036146105f4578063dd62ed3e14610613578063f2fde38b14610657578063f6a78e1714610676578063f887ea401461068a575f80fd5b8063a8aa1b3114610565578063a9059cbb14610598578063b2bdfa7b146105b7578063bc337182146105d5575f80fd5b8063893d20e8116100e3578063893d20e8146104bb5780638a554c53146104eb5780638d7a8ba7146104ff5780638da5cb5b1461051e57806395d89b411461053a575f80fd5b806370a082311461043f578063715018a61461047357806377b54bad146104875780637d1db4a5146104a6575f80fd5b806318160ddd116101945780633705b392116101645780633705b392146103b75780635d0044ca146103cc57806366ca9b83146103eb5780636c0a24eb1461040a5780636ddd17131461041f575f80fd5b806318160ddd1461035557806323b872dd146103695780632b112e4914610388578063313ce5671461039c575f80fd5b80630621472c116101da5780630621472c1461029157806306fdde03146102c057806308fd3d05146102f7578063095ea7b314610317578063121555a614610336575f80fd5b8062afb3251461021457806302dbd8f81461023c57806304368f651461025d5780630445b6671461027c575f80fd5b3661021057005b5f80fd5b34801561021f575f80fd5b50610229600c5481565b6040519081526020015b60405180910390f35b348015610247575f80fd5b5061025b610256366004611cb6565b6106a9565b005b348015610268575f80fd5b5061025b610277366004611ce6565b61077e565b348015610287575f80fd5b5061022960125481565b34801561029c575f80fd5b506102b06102ab366004611d2b565b610809565b6040519015158152602001610233565b3480156102cb575f80fd5b50604080518082019091526006815265082dcf288caf60d31b60208201525b6040516102339190611d44565b348015610302575f80fd5b506011546102b090600160a01b900460ff1681565b348015610322575f80fd5b506102b0610331366004611d8f565b61081b565b348015610341575f80fd5b5061025b610350366004611da9565b6108d5565b348015610360575f80fd5b506102296109d3565b348015610374575f80fd5b506102b0610383366004611dda565b6109f2565b348015610393575f80fd5b50610229610b69565b3480156103a7575f80fd5b5060405160098152602001610233565b3480156103c2575f80fd5b5061022960095481565b3480156103d7575f80fd5b5061025b6103e6366004611e13565b610bba565b3480156103f6575f80fd5b5061025b610405366004611cb6565b610c51565b348015610415575f80fd5b5061022960025481565b34801561042a575f80fd5b506011546102b090600160a81b900460ff1681565b34801561044a575f80fd5b50610229610459366004611d2b565b6001600160a01b03165f9081526003602052604090205490565b34801561047e575f80fd5b5061025b610d1d565b348015610492575f80fd5b506102b06104a1366004611d8f565b610d8e565b3480156104b1575f80fd5b5061022960015481565b3480156104c6575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610233565b3480156104f6575f80fd5b5061025b610ead565b34801561050a575f80fd5b5061025b610519366004611e2a565b610f83565b348015610529575f80fd5b505f546001600160a01b03166104d3565b348015610545575f80fd5b5060408051808201909152600381526208288b60eb1b60208201526102ea565b348015610570575f80fd5b506104d37f00000000000000000000000033fceb2eb0aba0e58146f099c5b2ab7ca4cbaa2d81565b3480156105a3575f80fd5b506102b06105b2366004611d8f565b611055565b3480156105c2575f80fd5b505f546104d3906001600160a01b031681565b3480156105e0575f80fd5b5061025b6105ef366004611e13565b6110b7565b3480156105ff575f80fd5b5061025b61060e366004611e2a565b61114e565b34801561061e575f80fd5b5061022961062d366004611da9565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b348015610662575f80fd5b5061025b610671366004611d2b565b611234565b348015610681575f80fd5b5061025b61131b565b348015610695575f80fd5b506010546104d3906001600160a01b031681565b5f546001600160a01b031633146106db5760405162461bcd60e51b81526004016106d290611e5f565b60405180910390fd5b60056106e78284611ea8565b11156107355760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e206e6f74206265206d6f7265207468616e2035250000000060448201526064016106d2565b600b829055600a8190556107498183611ea8565b600c55600a54600b546040517f1568ae12a48f94971e72d93f8f5846cfda77ba2ba927d867f64e498835788138905f90a35050565b5f546001600160a01b031633146107a75760405162461bcd60e51b81526004016106d290611e5f565b6011805460ff60a81b1916600160a81b841515021790556107ca6009600a611f9b565b6107d49082611fa9565b6012556040518190831515907fd896c9007bf8dc883f6b125322395dddc87bf825aed2e302315071c66e0d5dd9905f90a35050565b5f610815825f1961081b565b92915050565b5f6001600160a01b0383166108725760405162461bcd60e51b815260206004820152601b60248201527f5370656e64657220697320746865207a65726f2061646472657373000000000060448201526064016106d2565b335f8181526004602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350600192915050565b5f546001600160a01b031633146108fe5760405162461bcd60e51b81526004016106d290611e5f565b6001600160a01b0382161580159061091e57506001600160a01b03811615155b6109765760405162461bcd60e51b815260206004820152602360248201527f4665652072656365697665722063616e6e6f74206265207a65726f206164647260448201526265737360e81b60648201526084016106d2565b600e80546001600160a01b03199081166001600160a01b03858116918217909355600f80549092169284169283179091556040517f5b1b7727e42d2f1e9652d0af0d3b4f580a270e5d7ff9a47120c8602d4ec2def5905f90a35050565b5f6109e06009600a611f9b565b6109ed9062989680611fa9565b905090565b5f6001600160a01b038416610a495760405162461bcd60e51b815260206004820152601a60248201527f53656e64657220697320746865207a65726f206164647265737300000000000060448201526064016106d2565b6001600160a01b038316610a9f5760405162461bcd60e51b815260206004820152601d60248201527f526563697069656e7420697320746865207a65726f206164647265737300000060448201526064016106d2565b6001600160a01b0384165f9081526004602090815260408083203384529091529020545f198114610b535782811015610b2b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106d2565b6001600160a01b0385165f908152600460209081526040808320338452909152902083820390555b610b5e8585856113ab565b9150505b9392505050565b61dead5f90815260036020527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c54610ba36009600a611f9b565b610bb09062989680611fa9565b6109ed9190611fc0565b5f546001600160a01b03163314610be35760405162461bcd60e51b81526004016106d290611e5f565b6005811015610bf0575f80fd5b6103e881610c006009600a611f9b565b610c0d9062989680611fa9565b610c179190611fa9565b610c219190611fd3565b60028190556040517ff8c5ab682312267665fe2e7afb06ce5e015dae6e8e8b89ebf47de5312c153c35905f90a250565b5f546001600160a01b03163314610c7a5760405162461bcd60e51b81526004016106d290611e5f565b6005610c868284611ea8565b1115610cd45760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e206e6f74206265206d6f7265207468616e2035250000000060448201526064016106d2565b60088290556007819055610ce88183611ea8565b6009556007546008546040517f2816b76723f76e2768850694f4460c7c44a6592719ca811a201bd3087a872557905f90a35050565b5f546001600160a01b03163314610d465760405162461bcd60e51b81526004016106d290611e5f565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b600e545f906001600160a01b0316331480610db35750600f546001600160a01b031633145b610dbb575f80fd5b306001600160a01b03841603610dcf575f80fd5b815f03610e3f576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610e18573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e3c9190611ff2565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610e89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b629190612009565b5f546001600160a01b03163314610ed65760405162461bcd60e51b81526004016106d290611e5f565b601154600160a01b900460ff1615610f305760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920456e61626c65642e000000000000000060448201526064016106d2565b6011805460ff60a01b1916600160a01b9081179182905543600d81905560405190929190910460ff161515907f07c24843b569ea20bd3c266fb17047bdd751e44ea3afa2150f231b90bc669f4d905f90a3565b5f546001600160a01b03163314610fac5760405162461bcd60e51b81526004016106d290611e5f565b6001600160a01b0382166110025760405162461bcd60e51b815260206004820152601a60248201527f486f6c64657220697320746865207a65726f206164647265737300000000000060448201526064016106d2565b6001600160a01b0382165f81815260066020526040808220805460ff191685151590811790915590519092917f5422e85d9bcca047954218b93afb25e9bc2afe9bdc19e7297968b2c919c8377591a35050565b5f6001600160a01b0383166110ac5760405162461bcd60e51b815260206004820152601d60248201527f526563697069656e7420697320746865207a65726f206164647265737300000060448201526064016106d2565b610b623384846113ab565b5f546001600160a01b031633146110e05760405162461bcd60e51b81526004016106d290611e5f565b60058110156110ed575f80fd5b6103e8816110fd6009600a611f9b565b61110a9062989680611fa9565b6111149190611fa9565b61111e9190611fd3565b60018190556040517f3e20d7489efd636786bf4e1e0eb2addeb10f5435dc95fff56528021af35c5041905f90a250565b5f546001600160a01b031633146111775760405162461bcd60e51b81526004016106d290611e5f565b6001600160a01b0382166111cd5760405162461bcd60e51b815260206004820152601a60248201527f486f6c64657220697320746865207a65726f206164647265737300000000000060448201526064016106d2565b6001600160a01b0382165f818152600560209081526040808320805486151560ff199182168117909255600690935281842080549093168117909255519092917f4aaa6e45cd52263caf7af003089cdf83d1751392e7edf53c1b5542d94f39734691a35050565b5f546001600160a01b0316331461125d5760405162461bcd60e51b81526004016106d290611e5f565b6001600160a01b0381166112c25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106d2565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146113445760405162461bcd60e51b81526004016106d290611e5f565b6113506009600a611f9b565b61135d9062989680611fa9565b60025561136c6009600a611f9b565b6113799062989680611fa9565b60018190556002546040517fe5ca8724fdb01105b3129a1959a63ecdb2638b93266579bbcca33b66c737faa9905f90a3565b6013545f9060ff16156113ca576113c384848461175d565b9050610b62565b5f546001600160a01b0385811691161461142e57601154600160a01b900460ff1661142e5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016106d2565b611438848361182a565b6001600160a01b0384165f90815260036020526040902054828110156114705760405162461bcd60e51b81526004016106d290612024565b6001600160a01b0385165f9081526005602052604081205460ff16806114ad57506001600160a01b0385165f9081526005602052604090205460ff165b6114c1576114bc868587611896565b6114c3565b835b90506114d65f546001600160a01b031690565b6001600160a01b0316866001600160a01b03161415801561159257506001600160a01b038516301480159061151657506001600160a01b03851661dead14155b801561155457507f00000000000000000000000033fceb2eb0aba0e58146f099c5b2ab7ca4cbaa2d6001600160a01b0316856001600160a01b031614155b801561156e5750600e546001600160a01b03868116911614155b801561159257506001600160a01b0385165f9081526006602052604090205460ff16155b15611632576001600160a01b0385165f908152600360205260409020546002546115bc8383611ea8565b11156116305760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016106d2565b505b43600d54141580156116545750601254305f9081526003602052604090205410155b80156116695750601154600160a81b900460ff165b8015611678575060135460ff16155b80156116b557507f00000000000000000000000033fceb2eb0aba0e58146f099c5b2ab7ca4cbaa2d6001600160a01b0316856001600160a01b0316145b156116c7576116c26119c6565b43600d555b6001600160a01b038087165f908152600360205260408082208786039055918716815290812080548392906116fd908490611ea8565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161174991815260200190565b60405180910390a350600195945050505050565b6001600160a01b0383165f90815260036020526040812054828110156117955760405162461bcd60e51b81526004016106d290612024565b6001600160a01b038086165f908152600360205260408082208685039055918616815290812080548592906117cb908490611ea8565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161181791815260200190565b60405180910390a3506001949350505050565b6001548111158061185257506001600160a01b0382165f9081526006602052604090205460ff165b6118925760405162461bcd60e51b8152602060048201526011602482015270151e08131a5b5a5d08115e18d959591959607a1b60448201526064016106d2565b5050565b5f806001600160a01b037f00000000000000000000000033fceb2eb0aba0e58146f099c5b2ab7ca4cbaa2d8116908416036118ec576064600c54856118db9190611fa9565b6118e59190611fd3565b905061194e565b7f00000000000000000000000033fceb2eb0aba0e58146f099c5b2ab7ca4cbaa2d6001600160a01b0316856001600160a01b031603611935576064600954856118db9190611fa9565b60646119415f86611fa9565b61194b9190611fd3565b90505b305f908152600360205260408120805483929061196c908490611ea8565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35f6119bc8286611fc0565b9695505050505050565b6013805460ff19166001179055600c546009545f916119e491611ea8565b90505f600b546008546119f79190611ea8565b6012546040805160028082526060820183529394505f938493928492919060208301908036833701905050905030815f81518110611a3757611a3761206a565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611a8b57611a8b61206a565b6001600160a01b03928316602091820292909201015260105460405163791ac94760e01b815291169063791ac94790611ad09085905f9086903090429060040161207e565b5f604051808303815f87803b158015611ae7575f80fd5b505af1158015611af9573d5f803e3d5ffd5b5047925050505f879003611b0f575f9450611b27565b86611b1a8783611fa9565b611b249190611fd3565b94505b611b318582611fc0565b600f546040519195505f916001600160a01b039091169087908381818185875af1925050503d805f8114611b80576040519150601f19603f3d011682016040523d82523d5f602084013e611b85565b606091505b5050905080611be95760405162461bcd60e51b815260206004820152602a60248201527f4661696c656420746f2073656e6420657468657220746f205465616d20466565604482015269102932b1b2b4bb32b91760b11b60648201526084016106d2565b600e546040515f916001600160a01b03169087908381818185875af1925050503d805f8114611c33576040519150601f19603f3d011682016040523d82523d5f602084013e611c38565b606091505b5050905080611ca15760405162461bcd60e51b815260206004820152602f60248201527f4661696c656420746f2073656e6420657468657220746f204d61726b6574696e60448201526e33902332b2902932b1b2b4bb32b91760891b60648201526084016106d2565b50506013805460ff1916905550505050505050565b5f8060408385031215611cc7575f80fd5b50508035926020909101359150565b8015158114611ce3575f80fd5b50565b5f8060408385031215611cf7575f80fd5b8235611d0281611cd6565b946020939093013593505050565b80356001600160a01b0381168114611d26575f80fd5b919050565b5f60208284031215611d3b575f80fd5b610b6282611d10565b5f6020808352835180828501525f5b81811015611d6f57858101830151858201604001528201611d53565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611da0575f80fd5b611d0283611d10565b5f8060408385031215611dba575f80fd5b611dc383611d10565b9150611dd160208401611d10565b90509250929050565b5f805f60608486031215611dec575f80fd5b611df584611d10565b9250611e0360208501611d10565b9150604084013590509250925092565b5f60208284031215611e23575f80fd5b5035919050565b5f8060408385031215611e3b575f80fd5b611e4483611d10565b91506020830135611e5481611cd6565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561081557610815611e94565b600181815b80851115611ef557815f1904821115611edb57611edb611e94565b80851615611ee857918102915b93841c9390800290611ec0565b509250929050565b5f82611f0b57506001610815565b81611f1757505f610815565b8160018114611f2d5760028114611f3757611f53565b6001915050610815565b60ff841115611f4857611f48611e94565b50506001821b610815565b5060208310610133831016604e8410600b8410161715611f76575081810a610815565b611f808383611ebb565b805f1904821115611f9357611f93611e94565b029392505050565b5f610b6260ff841683611efd565b808202811582820484141761081557610815611e94565b8181038181111561081557610815611e94565b5f82611fed57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215612002575f80fd5b5051919050565b5f60208284031215612019575f80fd5b8151610b6281611cd6565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156120cc5784516001600160a01b0316835293830193918301916001016120a7565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122099912106c58a8404c544f0820fd73563d5426fa3f33e108a1522eaf2f945f89964736f6c63430008140033

Deployed Bytecode Sourcemap

3716:12707:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4636:67;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4636:67:0;;;;;;;;15262:360;;;;;;;;;;-1:-1:-1;15262:360:0;;;;;:::i;:::-;;:::i;:::-;;16056:230;;;;;;;;;;-1:-1:-1;16056:230:0;;;;;:::i;:::-;;:::i;5071:49::-;;;;;;;;;;;;;;;;7881:122;;;;;;;;;;-1:-1:-1;7881:122:0;;;;;:::i;:::-;;:::i;:::-;;;1420:14:1;;1413:22;1395:41;;1383:2;1368:18;7881:122:0;1255:187:1;7163:80:0;;;;;;;;;;-1:-1:-1;7235:5:0;;;;;;;;;;;;-1:-1:-1;;;7235:5:0;;;;7163:80;;;;;;;:::i;4990:31::-;;;;;;;;;;-1:-1:-1;4990:31:0;;;;-1:-1:-1;;;4990:31:0;;;;;;7585:288;;;;;;;;;;-1:-1:-1;7585:288:0;;;;;:::i;:::-;;:::i;15630:418::-;;;;;;;;;;-1:-1:-1;15630:418:0;;;;;:::i;:::-;;:::i;6893:88::-;;;;;;;;;;;;;:::i;8251:668::-;;;;;;;;;;-1:-1:-1;8251:668:0;;;;;:::i;:::-;;:::i;16300:118::-;;;;;;;;;;;;;:::i;6987:80::-;;;;;;;;;;-1:-1:-1;6987:80:0;;3967:1;2999:36:1;;2987:2;2972:18;6987:80:0;2857:184:1;4470:65:0;;;;;;;;;;;;;;;;8927:244;;;;;;;;;;-1:-1:-1;8927:244:0;;;;;:::i;:::-;;:::i;14900:354::-;;;;;;;;;;-1:-1:-1;14900:354:0;;;;;:::i;:::-;;:::i;4102:52::-;;;;;;;;;;;;;;;;5034:30;;;;;;;;;;-1:-1:-1;5034:30:0;;;;-1:-1:-1;;;5034:30:0;;;;;;7333:105;;;;;;;;;;-1:-1:-1;7333:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;7417:18:0;7399:7;7417:18;;;:9;:18;;;;;;;7333:105;1771:150;;;;;;;;;;;;;:::i;12486:411::-;;;;;;;;;;-1:-1:-1;12486:411:0;;;;;:::i;:::-;;:::i;4047:48::-;;;;;;;;;;;;;;;;7249:78;;;;;;;;;;-1:-1:-1;7301:7:0;1622:6;-1:-1:-1;;;;;1622:6:0;7249:78;;;-1:-1:-1;;;;;3395:32:1;;;3377:51;;3365:2;3350:18;7249:78:0;3231:203:1;12907:225:0;;;;;;;;;;;;;:::i;14650:240::-;;;;;;;;;;-1:-1:-1;14650:240:0;;;;;:::i;:::-;;:::i;1557:79::-;;;;;;;;;;-1:-1:-1;1595:7:0;1622:6;-1:-1:-1;;;;;1622:6:0;1557:79;;7073:84;;;;;;;;;;-1:-1:-1;7147:7:0;;;;;;;;;;;;-1:-1:-1;;;7147:7:0;;;;7073:84;;4948:29;;;;;;;;;;;;;;;8011:232;;;;;;;;;;-1:-1:-1;8011:232:0;;;;;:::i;:::-;;:::i;1273:21::-;;;;;;;;;;-1:-1:-1;1273:21:0;;;;-1:-1:-1;;;;;1273:21:0;;;9179:210;;;;;;;;;;-1:-1:-1;9179:210:0;;;;;:::i;:::-;;:::i;14373:269::-;;;;;;;;;;-1:-1:-1;14373:269:0;;;;;:::i;:::-;;:::i;7444:133::-;;;;;;;;;;-1:-1:-1;7444:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;7546:19:0;;;7528:7;7546:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7444:133;1929:244;;;;;;;;;;-1:-1:-1;1929:244:0;;;;;:::i;:::-;;:::i;12279:199::-;;;;;;;;;;;;;:::i;4878:24::-;;;;;;;;;;-1:-1:-1;4878:24:0;;;;-1:-1:-1;;;;;4878:24:0;;;15262:360;1684:6;;-1:-1:-1;;;;;1684:6:0;1212:10;1684:22;1676:67;;;;-1:-1:-1;;;1676:67:0;;;;;;;:::i;:::-;;;;;;;;;15393:1:::1;15365:24;15376:13:::0;15365:8;:24:::1;:::i;:::-;:29;;15357:70;;;::::0;-1:-1:-1;;;15357:70:0;;4810:2:1;15357:70:0::1;::::0;::::1;4792:21:1::0;4849:2;4829:18;;;4822:30;4888;4868:18;;;4861:58;4936:18;;15357:70:0::1;4608:352:1::0;15357:70:0::1;15439:11;:22:::0;;;15472:16:::1;:32:::0;;;15529:23:::1;15491:13:::0;15453:8;15529:23:::1;:::i;:::-;15515:12;:37:::0;15597:16:::1;::::0;15584:11:::1;::::0;15568:46:::1;::::0;::::1;::::0;;;::::1;15262:360:::0;;:::o;16056:230::-;1684:6;;-1:-1:-1;;;;;1684:6:0;1212:10;1684:22;1676:67;;;;-1:-1:-1;;;1676:67:0;;;;;;;:::i;:::-;16148:11:::1;:22:::0;;-1:-1:-1;;;;16148:22:0::1;-1:-1:-1::0;;;16148:22:0;::::1;;;;::::0;;16207:13:::1;3967:1;16207:2;:13;:::i;:::-;16197:23;::::0;:7;:23:::1;:::i;:::-;16181:13;:39:::0;16236:42:::1;::::0;16270:7;;16236:42;::::1;;::::0;::::1;::::0;;;::::1;16056:230:::0;;:::o;7881:122::-;7936:4;7960:35;7968:7;-1:-1:-1;;7960:7:0;:35::i;:::-;7953:42;7881:122;-1:-1:-1;;7881:122:0:o;7585:288::-;7660:4;-1:-1:-1;;;;;7685:21:0;;7677:61;;;;-1:-1:-1;;;7677:61:0;;6723:2:1;7677:61:0;;;6705:21:1;6762:2;6742:18;;;6735:30;6801:29;6781:18;;;6774:57;6848:18;;7677:61:0;6521:351:1;7677:61:0;7761:10;7749:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7749:32:0;;;;;;;;;;;;:41;;;7806:37;160:25:1;;;7749:32:0;;7761:10;7806:37;;133:18:1;7806:37:0;;;;;;;-1:-1:-1;7861:4:0;7585:288;;;;:::o;15630:418::-;1684:6;;-1:-1:-1;;;;;1684:6:0;1212:10;1684:22;1676:67;;;;-1:-1:-1;;;1676:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15757:35:0;::::1;::::0;;::::1;::::0;:69:::1;;-1:-1:-1::0;;;;;;15796:30:0;::::1;::::0;::::1;15757:69;15749:118;;;::::0;-1:-1:-1;;;15749:118:0;;7079:2:1;15749:118:0::1;::::0;::::1;7061:21:1::0;7118:2;7098:18;;;7091:30;7157:34;7137:18;;;7130:62;-1:-1:-1;;;7208:18:1;;;7201:33;7251:19;;15749:118:0::1;6877:399:1::0;15749:118:0::1;15878:20;:44:::0;;-1:-1:-1;;;;;;15878:44:0;;::::1;-1:-1:-1::0;;;;;15878:44:0;;::::1;::::0;;::::1;::::0;;;15933:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;15983:57:::1;::::0;::::1;::::0;-1:-1:-1;;15983:57:0::1;15630:418:::0;;:::o;6893:88::-;6948:7;4025:13;3967:1;4025:2;:13;:::i;:::-;4014:24;;:8;:24;:::i;:::-;6959:19;;6893:88;:::o;8251:668::-;8351:4;-1:-1:-1;;;;;8376:20:0;;8368:59;;;;-1:-1:-1;;;8368:59:0;;7483:2:1;8368:59:0;;;7465:21:1;7522:2;7502:18;;;7495:30;7561:28;7541:18;;;7534:56;7607:18;;8368:59:0;7281:350:1;8368:59:0;-1:-1:-1;;;;;8446:23:0;;8438:65;;;;-1:-1:-1;;;8438:65:0;;7838:2:1;8438:65:0;;;7820:21:1;7877:2;7857:18;;;7850:30;7916:31;7896:18;;;7889:59;7965:18;;8438:65:0;7636:353:1;8438:65:0;-1:-1:-1;;;;;8541:19:0;;8514:24;8541:19;;;:11;:19;;;;;;;;1212:10;8541:33;;;;;;;;-1:-1:-1;;8588:37:0;;8585:267;;8669:6;8649:16;:26;;8641:79;;;;-1:-1:-1;;;8641:79:0;;8196:2:1;8641:79:0;;;8178:21:1;8235:2;8215:18;;;8208:30;8274:34;8254:18;;;8247:62;-1:-1:-1;;;8325:18:1;;;8318:38;8373:19;;8641:79:0;7994:404:1;8641:79:0;-1:-1:-1;;;;;8764:19:0;;;;;;:11;:19;;;;;;;;1212:10;8764:33;;;;;;;8800:25;;;8764:61;;8585:267;8871:40;8885:6;8893:9;8904:6;8871:13;:40::i;:::-;8864:47;;;8251:668;;;;;;:::o;16300:118::-;3812:42;16353:7;7417:18;;;:9;:18;;;;4025:13;3967:1;4025:2;:13;:::i;:::-;4014:24;;:8;:24;:::i;:::-;16380:30;;;;:::i;8927:244::-;1684:6;;-1:-1:-1;;;;;1684:6:0;1212:10;1684:22;1676:67;;;;-1:-1:-1;;;1676:67:0;;;;;;;:::i;:::-;9033:1:::1;9013:16;:21;;9005:30;;;::::0;::::1;;9102:4;9081:16:::0;4025:13:::1;3967:1;4025:2;:13;:::i;:::-;4014:24;::::0;:8:::1;:24;:::i;:::-;9066:31;;;;:::i;:::-;9065:41;;;;:::i;:::-;9046:16;:60:::0;;;9122:34:::1;::::0;::::1;::::0;;;::::1;8927:244:::0;:::o;14900:354::-;1684:6;;-1:-1:-1;;;;;1684:6:0;1212:10;1684:22;1676:67;;;;-1:-1:-1;;;1676:67:0;;;;;;;:::i;:::-;15031:1:::1;15003:24;15014:13:::0;15003:8;:24:::1;:::i;:::-;:29;;14994:71;;;::::0;-1:-1:-1;;;14994:71:0;;4810:2:1;14994:71:0::1;::::0;::::1;4792:21:1::0;4849:2;4829:18;;;4822:30;4888;4868:18;;;4861:58;4936:18;;14994:71:0::1;4608:352:1::0;14994:71:0::1;15077:10;:21:::0;;;15109:15:::1;:31:::0;;;15164:23:::1;15127:13:::0;15090:8;15164:23:::1;:::i;:::-;15151:11;:36:::0;15230:15:::1;::::0;15218:10:::1;::::0;15203:43:::1;::::0;::::1;::::0;;;::::1;14900:354:::0;;:::o;1771:150::-;1684:6;;-1:-1:-1;;;;;1684:6:0;1212:10;1684:22;1676:67;;;;-1:-1:-1;;;1676:67:0;;;;;;;:::i;:::-;1880:1:::1;1864:6:::0;;1843:40:::1;::::0;-1:-1:-1;;;;;1864:6:0;;::::1;::::0;1843:40:::1;::::0;1880:1;;1843:40:::1;1911:1;1894:19:::0;;-1:-1:-1;;;;;;1894:19:0::1;::::0;;1771:150::o;12486:411::-;12606:20;;12567:4;;-1:-1:-1;;;;;12606:20:0;12592:10;:34;;:67;;-1:-1:-1;12644:15:0;;-1:-1:-1;;;;;12644:15:0;12630:10;:29;12592:67;12584:76;;;;;;12712:4;-1:-1:-1;;;;;12679:38:0;;;12671:47;;;;;;12732:6;12742:1;12732:11;12729:95;;12768:44;;-1:-1:-1;;;12768:44:0;;12806:4;12768:44;;;3377:51:1;-1:-1:-1;;;;;12768:29:0;;;;;3350:18:1;;12768:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12759:53;;12729:95;12841:48;;-1:-1:-1;;;12841:48:0;;12870:10;12841:48;;;9121:51:1;9188:18;;;9181:34;;;-1:-1:-1;;;;;12841:28:0;;;;;9094:18:1;;12841:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12907:225::-;1684:6;;-1:-1:-1;;;;;1684:6:0;1212:10;1684:22;1676:67;;;;-1:-1:-1;;;1676:67:0;;;;;;;:::i;:::-;12969:11:::1;::::0;-1:-1:-1;;;12969:11:0;::::1;;;12968:12;12960:48;;;::::0;-1:-1:-1;;;12960:48:0;;9678:2:1;12960:48:0::1;::::0;::::1;9660:21:1::0;9717:2;9697:18;;;9690:30;9756:26;9736:18;;;9729:54;9800:18;;12960:48:0::1;9476:348:1::0;12960:48:0::1;13019:11;:18:::0;;-1:-1:-1;;;;13019:18:0::1;-1:-1:-1::0;;;13019:18:0;;::::1;::::0;;;;13059:12:::1;13048:8;:23:::0;;;13087:37:::1;::::0;13059:12;;13102:11;;;::::1;13019:18;13102:11;13087:37;;::::0;::::1;::::0;13019:18;;13087:37:::1;12907:225::o:0;14650:240::-;1684:6;;-1:-1:-1;;;;;1684:6:0;1212:10;1684:22;1676:67;;;;-1:-1:-1;;;1676:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14743:20:0;::::1;14735:59;;;::::0;-1:-1:-1;;;14735:59:0;;10031:2:1;14735:59:0::1;::::0;::::1;10013:21:1::0;10070:2;10050:18;;;10043:30;10109:28;10089:18;;;10082:56;10155:18;;14735:59:0::1;9829:350:1::0;14735:59:0::1;-1:-1:-1::0;;;;;14805:23:0;::::1;;::::0;;;:15:::1;:23;::::0;;;;;:32;;-1:-1:-1;;14805:32:0::1;::::0;::::1;;::::0;;::::1;::::0;;;14853:29;;14805:32;;:23;14853:29:::1;::::0;::::1;14650:240:::0;;:::o;8011:232::-;8091:4;-1:-1:-1;;;;;8116:23:0;;8108:65;;;;-1:-1:-1;;;8108:65:0;;7838:2:1;8108:65:0;;;7820:21:1;7877:2;7857:18;;;7850:30;7916:31;7896:18;;;7889:59;7965:18;;8108:65:0;7636:353:1;8108:65:0;8191:44;8205:10;8217:9;8228:6;8191:13;:44::i;9179:210::-;1684:6;;-1:-1:-1;;;;;1684:6:0;1212:10;1684:22;1676:67;;;;-1:-1:-1;;;1676:67:0;;;;;;;:::i;:::-;9273:1:::1;9257:12;:17;;9249:26;;;::::0;::::1;;9335:4;9318:12:::0;4025:13:::1;3967:1;4025:2;:13;:::i;:::-;4014:24;::::0;:8:::1;:24;:::i;:::-;9303:27;;;;:::i;:::-;9302:37;;;;:::i;:::-;9287:12;:52:::0;;;9355:26:::1;::::0;::::1;::::0;;;::::1;9179:210:::0;:::o;14373:269::-;1684:6;;-1:-1:-1;;;;;1684:6:0;1212:10;1684:22;1676:67;;;;-1:-1:-1;;;1676:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14459:20:0;::::1;14451:59;;;::::0;-1:-1:-1;;;14451:59:0;;10031:2:1;14451:59:0::1;::::0;::::1;10013:21:1::0;10070:2;10050:18;;;10043:30;10109:28;10089:18;;;10082:56;10155:18;;14451:59:0::1;9829:350:1::0;14451:59:0::1;-1:-1:-1::0;;;;;14521:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;14521:28:0;;::::1;::::0;::::1;::::0;;;14560:15:::1;:23:::0;;;;;;:32;;;;::::1;::::0;::::1;::::0;;;14608:26;14521:28;;:19;14608:26:::1;::::0;::::1;14373:269:::0;;:::o;1929:244::-;1684:6;;-1:-1:-1;;;;;1684:6:0;1212:10;1684:22;1676:67;;;;-1:-1:-1;;;1676:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2018:22:0;::::1;2010:73;;;::::0;-1:-1:-1;;;2010:73:0;;10386:2:1;2010:73:0::1;::::0;::::1;10368:21:1::0;10425:2;10405:18;;;10398:30;10464:34;10444:18;;;10437:62;-1:-1:-1;;;10515:18:1;;;10508:36;10561:19;;2010:73:0::1;10184:402:1::0;2010:73:0::1;2120:6;::::0;;2099:38:::1;::::0;-1:-1:-1;;;;;2099:38:0;;::::1;::::0;2120:6;::::1;::::0;2099:38:::1;::::0;::::1;2148:6;:17:::0;;-1:-1:-1;;;;;;2148:17:0::1;-1:-1:-1::0;;;;;2148:17:0;;;::::1;::::0;;;::::1;::::0;;1929:244::o;12279:199::-;1684:6;;-1:-1:-1;;;;;1684:6:0;1212:10;1684:22;1676:67;;;;-1:-1:-1;;;1676:67:0;;;;;;;:::i;:::-;4025:13:::1;3967:1;4025:2;:13;:::i;:::-;4014:24;::::0;:8:::1;:24;:::i;:::-;12337:16;:31:::0;4025:13:::1;3967:1;4025:2;:13;:::i;:::-;4014:24;::::0;:8:::1;:24;:::i;:::-;12379:12;:27:::0;;;12439:16:::1;::::0;12422:48:::1;::::0;::::1;::::0;;;::::1;12279:199::o:0;9406:1510::-;9520:6;;9498:4;;9520:6;;9517:63;;;9536:41;9551:6;9559:9;9570:6;9536:14;:41::i;:::-;9529:48;;;;9517:63;1595:7;1622:6;-1:-1:-1;;;;;9595:17:0;;;1622:6;;9595:17;9592:101;;9636:11;;-1:-1:-1;;;9636:11:0;;;;9628:43;;;;-1:-1:-1;;;9628:43:0;;10793:2:1;9628:43:0;;;10775:21:1;10832:2;10812:18;;;10805:30;-1:-1:-1;;;10851:18:1;;;10844:50;10911:18;;9628:43:0;10591:344:1;9628:43:0;9713:28;9726:6;9734;9713:12;:28::i;:::-;-1:-1:-1;;;;;9786:17:0;;9762:21;9786:17;;;:9;:17;;;;;;9822:23;;;;9814:74;;;;-1:-1:-1;;;9814:74:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9927:19:0;;9901:22;9927:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;9950:22:0;;;;;;:11;:22;;;;;;;;9927:45;9926:93;;9985:34;9993:6;10001;10009:9;9985:7;:34::i;:::-;9926:93;;;9976:6;9926:93;9901:118;;10046:7;1595;1622:6;-1:-1:-1;;;;;1622:6:0;;1557:79;10046:7;-1:-1:-1;;;;;10036:17:0;:6;-1:-1:-1;;;;;10036:17:0;;;:169;;;;-1:-1:-1;;;;;;10058:26:0;;10079:4;10058:26;;;;:57;;-1:-1:-1;;;;;;10089:26:0;;3812:42;10089:26;;10058:57;:78;;;;;10132:4;-1:-1:-1;;;;;10119:17:0;:9;-1:-1:-1;;;;;10119:17:0;;;10058:78;:115;;;;-1:-1:-1;10153:20:0;;-1:-1:-1;;;;;10140:33:0;;;10153:20;;10140:33;;10058:115;:146;;;;-1:-1:-1;;;;;;10178:26:0;;;;;;:15;:26;;;;;;;;10177:27;10058:146;10032:370;;;-1:-1:-1;;;;;7417:18:0;;10221;7417;;;:9;:18;;;;;;10318:16;;10286:27;10299:14;7417:18;10286:27;:::i;:::-;10285:49;;10277:123;;;;-1:-1:-1;;;10277:123:0;;11549:2:1;10277:123:0;;;11531:21:1;11588:2;11568:18;;;11561:30;11627:34;11607:18;;;11600:62;11698:32;11678:18;;;11671:60;11748:19;;10277:123:0;11347:426:1;10277:123:0;10206:196;10032:370;10443:12;10431:8;;:24;;:82;;;;-1:-1:-1;10500:13:0;;10490:4;10472:24;;;;:9;:24;;;;;;:41;;10431:82;:110;;;;-1:-1:-1;10530:11:0;;-1:-1:-1;;;10530:11:0;;;;10431:110;:134;;;;-1:-1:-1;10559:6:0;;;;10558:7;10431:134;:168;;;;;10595:4;-1:-1:-1;;;;;10582:17:0;:9;-1:-1:-1;;;;;10582:17:0;;10431:168;10414:272;;;10626:10;:8;:10::i;:::-;10662:12;10651:8;:23;10414:272;-1:-1:-1;;;;;10723:17:0;;;;;;;:9;:17;;;;;;10743:22;;;10723:42;;10787:20;;;;;;;;:38;;10811:14;;10723:17;10787:38;;10811:14;;10787:38;:::i;:::-;;;;;;;;10860:9;-1:-1:-1;;;;;10843:43:0;10852:6;-1:-1:-1;;;;;10843:43:0;;10871:14;10843:43;;;;160:25:1;;148:2;133:18;;14:177;10843:43:0;;;;;;;;-1:-1:-1;10904:4:0;;9406:1510;-1:-1:-1;;;;;9406:1510:0:o;10928:447::-;-1:-1:-1;;;;;11062:17:0;;11021:4;11062:17;;;:9;:17;;;;;;11098:23;;;;11090:74;;;;-1:-1:-1;;;11090:74:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11200:17:0;;;;;;;:9;:17;;;;;;11220:22;;;11200:42;;11264:20;;;;;;;;:30;;11236:6;;11200:17;11264:30;;11236:6;;11264:30;:::i;:::-;;;;;;;;11327:9;-1:-1:-1;;;;;11310:35:0;11319:6;-1:-1:-1;;;;;11310:35:0;;11338:6;11310:35;;;;160:25:1;;148:2;133:18;;14:177;11310:35:0;;;;;;;;-1:-1:-1;11363:4:0;;10928:447;-1:-1:-1;;;;10928:447:0:o;11383:166::-;11480:12;;11470:6;:22;;:49;;;-1:-1:-1;;;;;;11496:23:0;;;;;;:15;:23;;;;;;;;11470:49;11462:79;;;;-1:-1:-1;;;11462:79:0;;11980:2:1;11462:79:0;;;11962:21:1;12019:2;11999:18;;;11992:30;-1:-1:-1;;;12038:18:1;;;12031:47;12095:18;;11462:79:0;11778:341:1;11462:79:0;11383:166;;:::o;11679:592::-;11765:7;;-1:-1:-1;;;;;11835:4:0;11822:17;;;;;;11819:253;;11894:3;11878:12;;11869:6;:21;;;;:::i;:::-;11868:29;;;;:::i;:::-;11856:41;;11819:253;;;11928:4;-1:-1:-1;;;;;11918:14:0;:6;-1:-1:-1;;;;;11918:14:0;;11915:157;;11986:3;11971:11;;11962:6;:20;;;;:::i;11915:157::-;12057:3;12033:20;4750:1;12033:6;:20;:::i;:::-;12032:28;;;;:::i;:::-;12020:40;;11915:157;12102:4;12084:24;;;;:9;:24;;;;;:37;;12112:9;;12084:24;:37;;12112:9;;12084:37;:::i;:::-;;;;-1:-1:-1;;12137:42:0;;160:25:1;;;12162:4:0;;-1:-1:-1;;;;;12137:42:0;;;;;148:2:1;133:18;12137:42:0;;;;;;;12190:20;12213:18;12222:9;12213:6;:18;:::i;:::-;12190:41;11679:592;-1:-1:-1;;;;;;11679:592:0:o;13140:1225::-;5168:6;:13;;-1:-1:-1;;5168:13:0;5177:4;5168:13;;;13222:12:::1;::::0;13208:11:::1;::::0;5168:6;;13208:26:::1;::::0;::::1;:::i;:::-;13189:45;;13245:15;13276:11;;13263:10;;:24;;;;:::i;:::-;13400:13;::::0;13450:16:::1;::::0;;13464:1:::1;13450:16:::0;;;;;::::1;::::0;;13245:42;;-1:-1:-1;13298:21:0::1;::::0;;;13400:13;13298:21;;13450:16;13464:1;13450:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13450:16:0::1;13426:40;;13495:4;13477;13482:1;13477:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;13477:23:0::1;;;-1:-1:-1::0;;;;;13477:23:0::1;;;::::0;::::1;13521:4;13511;13516:1;13511:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13511:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;13538:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;13538:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;13610:12;;13538:6:::1;::::0;13653:4;;13680::::1;::::0;13700:15:::1;::::0;13538:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;13761:21:0::1;::::0;-1:-1:-1;;;13739:19:0::1;13798:13:::0;;;13795:145:::1;;13844:1;13828:17;;13795:145;;;13920:8:::0;13895:21:::1;13909:7:::0;13895:11;:21:::1;:::i;:::-;13894:34;;;;:::i;:::-;13878:50;;13795:145;13973:27;13987:13:::0;13973:11;:27:::1;:::i;:::-;14042:15;::::0;14034:55:::1;::::0;13952:48;;-1:-1:-1;14014:15:0::1;::::0;-1:-1:-1;;;;;14042:15:0;;::::1;::::0;14071:13;;14014:15;14034:55;14014:15;14034:55;14071:13;14042:15;14034:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14013:76;;;14108:10;14100:65;;;::::0;-1:-1:-1;;;14100:65:0;;13785:2:1;14100:65:0::1;::::0;::::1;13767:21:1::0;13824:2;13804:18;;;13797:30;13863:34;13843:18;;;13836:62;-1:-1:-1;;;13914:18:1;;;13907:40;13964:19;;14100:65:0::1;13583:406:1::0;14100:65:0::1;14216:20;::::0;14208:65:::1;::::0;14187:16:::1;::::0;-1:-1:-1;;;;;14216:20:0::1;::::0;14250:18;;14187:16;14208:65;14187:16;14208:65;14250:18;14216:20;14208:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14186:87;;;14292:11;14284:71;;;::::0;-1:-1:-1;;;14284:71:0;;14196:2:1;14284:71:0::1;::::0;::::1;14178:21:1::0;14235:2;14215:18;;;14208:30;14274:34;14254:18;;;14247:62;-1:-1:-1;;;14325:18:1;;;14318:45;14380:19;;14284:71:0::1;13994:411:1::0;14284:71:0::1;-1:-1:-1::0;;5186:6:0;:14;;-1:-1:-1;;5186:14:0;;;-1:-1:-1;;;;;;;13140:1225:0:o;196:248:1:-;264:6;272;325:2;313:9;304:7;300:23;296:32;293:52;;;341:1;338;331:12;293:52;-1:-1:-1;;364:23:1;;;434:2;419:18;;;406:32;;-1:-1:-1;196:248:1:o;449:118::-;535:5;528:13;521:21;514:5;511:32;501:60;;557:1;554;547:12;501:60;449:118;:::o;572:309::-;637:6;645;698:2;686:9;677:7;673:23;669:32;666:52;;;714:1;711;704:12;666:52;753:9;740:23;772:28;794:5;772:28;:::i;:::-;819:5;871:2;856:18;;;;843:32;;-1:-1:-1;;;572:309:1:o;886:173::-;954:20;;-1:-1:-1;;;;;1003:31:1;;993:42;;983:70;;1049:1;1046;1039:12;983:70;886:173;;;:::o;1064:186::-;1123:6;1176:2;1164:9;1155:7;1151:23;1147:32;1144:52;;;1192:1;1189;1182:12;1144:52;1215:29;1234:9;1215:29;:::i;1447:548::-;1559:4;1588:2;1617;1606:9;1599:21;1649:6;1643:13;1692:6;1687:2;1676:9;1672:18;1665:34;1717:1;1727:140;1741:6;1738:1;1735:13;1727:140;;;1836:14;;;1832:23;;1826:30;1802:17;;;1821:2;1798:26;1791:66;1756:10;;1727:140;;;1731:3;1916:1;1911:2;1902:6;1891:9;1887:22;1883:31;1876:42;1986:2;1979;1975:7;1970:2;1962:6;1958:15;1954:29;1943:9;1939:45;1935:54;1927:62;;;;1447:548;;;;:::o;2000:254::-;2068:6;2076;2129:2;2117:9;2108:7;2104:23;2100:32;2097:52;;;2145:1;2142;2135:12;2097:52;2168:29;2187:9;2168:29;:::i;2259:260::-;2327:6;2335;2388:2;2376:9;2367:7;2363:23;2359:32;2356:52;;;2404:1;2401;2394:12;2356:52;2427:29;2446:9;2427:29;:::i;:::-;2417:39;;2475:38;2509:2;2498:9;2494:18;2475:38;:::i;:::-;2465:48;;2259:260;;;;;:::o;2524:328::-;2601:6;2609;2617;2670:2;2658:9;2649:7;2645:23;2641:32;2638:52;;;2686:1;2683;2676:12;2638:52;2709:29;2728:9;2709:29;:::i;:::-;2699:39;;2757:38;2791:2;2780:9;2776:18;2757:38;:::i;:::-;2747:48;;2842:2;2831:9;2827:18;2814:32;2804:42;;2524:328;;;;;:::o;3046:180::-;3105:6;3158:2;3146:9;3137:7;3133:23;3129:32;3126:52;;;3174:1;3171;3164:12;3126:52;-1:-1:-1;3197:23:1;;3046:180;-1:-1:-1;3046:180:1:o;3439:315::-;3504:6;3512;3565:2;3553:9;3544:7;3540:23;3536:32;3533:52;;;3581:1;3578;3571:12;3533:52;3604:29;3623:9;3604:29;:::i;:::-;3594:39;;3683:2;3672:9;3668:18;3655:32;3696:28;3718:5;3696:28;:::i;:::-;3743:5;3733:15;;;3439:315;;;;;:::o;3985:356::-;4187:2;4169:21;;;4206:18;;;4199:30;4265:34;4260:2;4245:18;;4238:62;4332:2;4317:18;;3985:356::o;4346:127::-;4407:10;4402:3;4398:20;4395:1;4388:31;4438:4;4435:1;4428:15;4462:4;4459:1;4452:15;4478:125;4543:9;;;4564:10;;;4561:36;;;4577:18;;:::i;4965:422::-;5054:1;5097:5;5054:1;5111:270;5132:7;5122:8;5119:21;5111:270;;;5191:4;5187:1;5183:6;5179:17;5173:4;5170:27;5167:53;;;5200:18;;:::i;:::-;5250:7;5240:8;5236:22;5233:55;;;5270:16;;;;5233:55;5349:22;;;;5309:15;;;;5111:270;;;5115:3;4965:422;;;;;:::o;5392:806::-;5441:5;5471:8;5461:80;;-1:-1:-1;5512:1:1;5526:5;;5461:80;5560:4;5550:76;;-1:-1:-1;5597:1:1;5611:5;;5550:76;5642:4;5660:1;5655:59;;;;5728:1;5723:130;;;;5635:218;;5655:59;5685:1;5676:10;;5699:5;;;5723:130;5760:3;5750:8;5747:17;5744:43;;;5767:18;;:::i;:::-;-1:-1:-1;;5823:1:1;5809:16;;5838:5;;5635:218;;5937:2;5927:8;5924:16;5918:3;5912:4;5909:13;5905:36;5899:2;5889:8;5886:16;5881:2;5875:4;5872:12;5868:35;5865:77;5862:159;;;-1:-1:-1;5974:19:1;;;6006:5;;5862:159;6053:34;6078:8;6072:4;6053:34;:::i;:::-;6123:6;6119:1;6115:6;6111:19;6102:7;6099:32;6096:58;;;6134:18;;:::i;:::-;6172:20;;5392:806;-1:-1:-1;;;5392:806:1:o;6203:140::-;6261:5;6290:47;6331:4;6321:8;6317:19;6311:4;6290:47;:::i;6348:168::-;6421:9;;;6452;;6469:15;;;6463:22;;6449:37;6439:71;;6490:18;;:::i;8403:128::-;8470:9;;;8491:11;;;8488:37;;;8505:18;;:::i;8536:217::-;8576:1;8602;8592:132;;8646:10;8641:3;8637:20;8634:1;8627:31;8681:4;8678:1;8671:15;8709:4;8706:1;8699:15;8592:132;-1:-1:-1;8738:9:1;;8536:217::o;8758:184::-;8828:6;8881:2;8869:9;8860:7;8856:23;8852:32;8849:52;;;8897:1;8894;8887:12;8849:52;-1:-1:-1;8920:16:1;;8758:184;-1:-1:-1;8758:184:1:o;9226:245::-;9293:6;9346:2;9334:9;9325:7;9321:23;9317:32;9314:52;;;9362:1;9359;9352:12;9314:52;9394:9;9388:16;9413:28;9435:5;9413:28;:::i;10940:402::-;11142:2;11124:21;;;11181:2;11161:18;;;11154:30;11220:34;11215:2;11200:18;;11193:62;-1:-1:-1;;;11286:2:1;11271:18;;11264:36;11332:3;11317:19;;10940:402::o;12256:127::-;12317:10;12312:3;12308:20;12305:1;12298:31;12348:4;12345:1;12338:15;12372:4;12369:1;12362:15;12388:980;12650:4;12698:3;12687:9;12683:19;12729:6;12718:9;12711:25;12755:2;12793:6;12788:2;12777:9;12773:18;12766:34;12836:3;12831:2;12820:9;12816:18;12809:31;12860:6;12895;12889:13;12926:6;12918;12911:22;12964:3;12953:9;12949:19;12942:26;;13003:2;12995:6;12991:15;12977:29;;13024:1;13034:195;13048:6;13045:1;13042:13;13034:195;;;13113:13;;-1:-1:-1;;;;;13109:39:1;13097:52;;13204:15;;;;13169:12;;;;13145:1;13063:9;13034:195;;;-1:-1:-1;;;;;;;13285:32:1;;;;13280:2;13265:18;;13258:60;-1:-1:-1;;;13349:3:1;13334:19;13327:35;13246:3;12388:980;-1:-1:-1;;;12388:980:1:o

Swarm Source

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