ETH Price: $2,972.53 (-1.58%)
Gas: 2 Gwei

Token

Catnilla (Catnilla)
 

Overview

Max Total Supply

100,000,000,000 Catnilla

Holders

122

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
340,000,000 Catnilla

Value
$0.00
0x522111f71627a3188c2a9d9961160be1839ec3d1
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:
Token

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-30
*/

/**
 *sunshine Catnilla AI 
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;


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

interface IUniswapRouter {

    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    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;

}

interface IUniswapFactory {
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

abstract contract Ownable {
    address internal _owner;

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

    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == msg.sender, "you are not owner");
        _;
    }

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

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

contract Token is IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    address payable private MarketingWallet;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    mapping(address => bool) public _isExcludeFromFee;
    
    uint256 private _totalSupply;

    IUniswapRouter public _uniswapRouter;

    mapping (address => bool) private bots;

    mapping(address => bool) public isMarketPair;
    bool private inSwap;

    uint256 private constant MAX = ~uint256(0);

    address public _uniswapPair;

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor (){

        _name = "Catnilla";
        _symbol = "Catnilla";
        _decimals = 9;
        uint256 Supply = 100_000_000_000;

        _totalSupply = Supply * 10 ** _decimals;

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

        MarketingWallet = payable(msg.sender);
        _walletMAX = _totalSupply * 100 / 100;

        _isExcludeFromFee[address(this)] = true;
        _isExcludeFromFee[receiveAddr] = true;
        _isExcludeFromFee[MarketingWallet] = true;

        IUniswapRouter swapRouter = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _uniswapRouter = swapRouter;
        _allowances[address(this)][address(swapRouter)] = MAX;

        IUniswapFactory swapFactory = IUniswapFactory(swapRouter.factory());
        _uniswapPair = swapFactory.createPair(address(this), swapRouter.WETH());

        isMarketPair[_uniswapPair] = true;
        IERC20(_uniswapRouter.WETH()).approve(
            address(address(_uniswapRouter)),
            ~uint256(0)
        );
        _isExcludeFromFee[address(swapRouter)] = true;

    }

    function setFundAddr(
        address payable newAddr
    ) public onlyOwner{
        MarketingWallet = newAddr;
    }

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

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

    function decimals() external view override returns (uint8) {
        return _decimals;
    }

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        if (_allowances[sender][msg.sender] != MAX) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    uint256 public _buyCount=0;
    uint256 private _initialBuyTax=0;
    uint256 private _initialSellTax=0;
    uint256 private _finalBuyTax=30;
    uint256 private _finalSellTax=30;
    uint256 private _reduceBuyTaxAt=0;
    uint256 private _reduceSellTaxAt=0;
    uint256 private _preventSwapBefore=0;

    function recuseTax(
        uint256 newBuy,
        uint256 newSell,
        uint256 newReduceBuy,
        uint256 newReduceSell,
        uint256 newPreventSwapBefore
    ) public onlyOwner {
        _finalBuyTax = newBuy;
        _finalSellTax = newSell;
        _reduceBuyTaxAt = newReduceBuy;
        _reduceSellTaxAt = newReduceSell;
        _preventSwapBefore = newPreventSwapBefore;
    }

    bool public remainHolder = true;
    function changeRemain() public onlyOwner{
        remainHolder = !remainHolder;
    }

    uint256 public _walletMAX;

    function setWalletMax(uint8 percentage) public onlyOwner{
        _walletMAX = totalSupply() * percentage / 100;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        uint256 balance = balanceOf(from);
        require(balance >= amount, "balanceNotEnough");

        if (inSwap){
            _basicTransfer(from, to, amount);
            return;
        }

        bool takeFee;

        if (isMarketPair[to] && !inSwap && !_isExcludeFromFee[from] && !_isExcludeFromFee[to] && _buyCount > _preventSwapBefore) {
            uint256 _numSellToken = amount;
            if (_numSellToken > balanceOf(address(this))){
                _numSellToken = _balances[address(this)];
            }
            if (_numSellToken > 0){
                swapTokenForETH(_numSellToken);
            }
        }

        if (!_isExcludeFromFee[from] && !_isExcludeFromFee[to] && !inSwap) {
            require(startTradeBlock > 0);
            require(!bots[from]);
            takeFee = true;
            
            if (isMarketPair[from] && to != address(_uniswapRouter) && !_isExcludeFromFee[to]) {
                _buyCount++;
                require(balanceOf(to) + amount <= _walletMAX,"walletlimit");
            }

            if (remainHolder && amount == balance) {
                amount = amount - (amount / 10000);
            }

        }

        _transferToken(from, to, amount, takeFee);
    }

    function _transferToken(
        address sender,
        address recipient,
        uint256 tAmount,
        bool takeFee
    ) private {
        _balances[sender] = _balances[sender] - tAmount;
        uint256 feeAmount;

        if (takeFee) {
            uint256 taxFee;
            if (isMarketPair[recipient]) {
                taxFee = _buyCount > _reduceSellTaxAt ? _finalSellTax : _initialSellTax;
            } else if (isMarketPair[sender]) {
                taxFee = _buyCount > _reduceBuyTaxAt ? _finalBuyTax : _initialBuyTax;
            }
            uint256 swapAmount = tAmount * taxFee / 100;
            if (swapAmount > 0) {
                feeAmount += swapAmount;
                _balances[address(this)] = _balances[address(this)] + swapAmount;
                emit Transfer(sender, address(this), swapAmount);
            }
        }

        _balances[recipient] = _balances[recipient] + (tAmount - feeAmount);
        emit Transfer(sender, recipient, tAmount - feeAmount);

    }

    uint256 public startTradeBlock;
    function startTrade() public onlyOwner {
        startTradeBlock = block.number;
    }

    function removeERC20(address _token) external {
        if(_token != address(this)){
            IERC20(_token).transfer(MarketingWallet, IERC20(_token).balanceOf(address(this)));
            MarketingWallet.transfer(address(this).balance);
        }
    }

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function swapTokenForETH(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapRouter.WETH();
        _uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 _bal = address(this).balance;
        if (_bal > 0.01 ether){
            MarketingWallet.transfer(_bal);
        }
    }

    function setFeeExclude(address account, bool value) public onlyOwner{
        _isExcludeFromFee[account] = value;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludeFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapRouter","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"changeRemain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"uint256","name":"newBuy","type":"uint256"},{"internalType":"uint256","name":"newSell","type":"uint256"},{"internalType":"uint256","name":"newReduceBuy","type":"uint256"},{"internalType":"uint256","name":"newReduceSell","type":"uint256"},{"internalType":"uint256","name":"newPreventSwapBefore","type":"uint256"}],"name":"recuseTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"remainHolder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"removeERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setFeeExclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newAddr","type":"address"}],"name":"setFundAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"percentage","type":"uint8"}],"name":"setWalletMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTradeBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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"},{"stateMutability":"payable","type":"receive"}]

60806040526000600d819055600e819055600f819055601e6010819055601155601281905560138190556014556015805460ff191660011790553480156200004657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350604080518082019091526008808252674361746e696c6c6160c01b6020909201918252620000b99160049162000512565b50604080518082019091526008808252674361746e696c6c6160c01b6020909201918252620000eb9160059162000512565b506006805460ff1916600990811790915564174876e800906200011090600a6200067a565b6200011c90826200073b565b600881905533600081815260016020908152604080832085905551938452919283927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600380546001600160a01b031916331790556008546064906200018d90826200073b565b6200019991906200060e565b601655306000818152600760209081526040808320805460ff1990811660019081179092556001600160a01b038781168652838620805483168417905560035416855282852080549091169091179055600980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091559383526002825280832084845282528083206000199055805163c45a015560e01b81529051849263c45a01559260048082019391829003018186803b1580156200025b57600080fd5b505afa15801562000270573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002969190620005b8565b9050806001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002e257600080fd5b505afa158015620002f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031d9190620005b8565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200036657600080fd5b505af11580156200037b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a19190620005b8565b600c8054610100600160a81b0319166101006001600160a01b0393841681029190911791829055900481166000908152600b6020908152604091829020805460ff1916600117905560095482516315ab88c960e31b8152925193169263ad5c4648926004808201939291829003018186803b1580156200042057600080fd5b505afa15801562000435573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045b9190620005b8565b60095460405163095ea7b360e01b81526001600160a01b039182166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b158015620004aa57600080fd5b505af1158015620004bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004e59190620005ea565b50506001600160a01b03166000908152600760205260409020805460ff1916600117905550620007b09050565b82805462000520906200075d565b90600052602060002090601f0160209004810192826200054457600085556200058f565b82601f106200055f57805160ff19168380011785556200058f565b828001600101855582156200058f579182015b828111156200058f57825182559160200191906001019062000572565b506200059d929150620005a1565b5090565b5b808211156200059d5760008155600101620005a2565b600060208284031215620005cb57600080fd5b81516001600160a01b0381168114620005e357600080fd5b9392505050565b600060208284031215620005fd57600080fd5b81518015158114620005e357600080fd5b6000826200062c57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620006725781600019048211156200065657620006566200079a565b808516156200066457918102915b93841c939080029062000636565b509250929050565b6000620005e360ff841683600082620006965750600162000735565b81620006a55750600062000735565b8160018114620006be5760028114620006c957620006e9565b600191505062000735565b60ff841115620006dd57620006dd6200079a565b50506001821b62000735565b5060208310610133831016604e8410600b84101617156200070e575081810a62000735565b6200071a838362000631565b80600019048211156200073157620007316200079a565b0290505b92915050565b60008160001904831182151516156200075857620007586200079a565b500290565b600181811c908216806200077257607f821691505b602082108114156200079457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6118ed80620007c06000396000f3fe6080604052600436106101c65760003560e01c806365b61b77116100f757806395d89b4111610095578063cefab2af11610064578063cefab2af14610517578063d34628cc14610531578063dd62ed3e14610551578063f2fde38b1461059757600080fd5b806395d89b41146104ad578063a67755c2146104c2578063a9059cbb146104e2578063bc76c0521461050257600080fd5b806370a08231116100d157806370a0823114610424578063715018a61461045a5780638da5cb5b1461046f578063936c044b1461048d57600080fd5b806365b61b77146103cf5780636c580801146103ef5780636f39cfcd1461040457600080fd5b8063319c2f64116101645780633ecad2711161013e5780633ecad2711461032c5780633f80b6d71461035c5780634bf28fd01461037c578063553193ca146103b957600080fd5b8063319c2f64146102ba57806331c2d847146102dc57806336b2e027146102fc57600080fd5b80631b583749116101a05780631b5837491461024c57806323b872dd1461026257806327b1a8e914610282578063313ce5671461029857600080fd5b806306fdde03146101d2578063095ea7b3146101fd57806318160ddd1461022d57600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76105b7565b6040516101f4919061169b565b60405180910390f35b34801561020957600080fd5b5061021d61021836600461150f565b610649565b60405190151581526020016101f4565b34801561023957600080fd5b506008545b6040519081526020016101f4565b34801561025857600080fd5b5061023e60165481565b34801561026e57600080fd5b5061021d61027d3660046114a0565b61065f565b34801561028e57600080fd5b5061023e600d5481565b3480156102a457600080fd5b5060065460405160ff90911681526020016101f4565b3480156102c657600080fd5b506102da6102d5366004611678565b6106f6565b005b3480156102e857600080fd5b506102da6102f736600461153b565b610752565b34801561030857600080fd5b5061021d610317366004611426565b60076020526000908152604090205460ff1681565b34801561033857600080fd5b5061021d610347366004611426565b600b6020526000908152604090205460ff1681565b34801561036857600080fd5b506102da61037736600461163d565b6107e8565b34801561038857600080fd5b50600c546103a19061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016101f4565b3480156103c557600080fd5b5061023e60175481565b3480156103db57600080fd5b506009546103a1906001600160a01b031681565b3480156103fb57600080fd5b506102da610829565b34801561041057600080fd5b506102da61041f366004611426565b610859565b34801561043057600080fd5b5061023e61043f366004611426565b6001600160a01b031660009081526001602052604090205490565b34801561046657600080fd5b506102da6108a5565b34801561047b57600080fd5b506000546001600160a01b03166103a1565b34801561049957600080fd5b506102da6104a83660046114e1565b610919565b3480156104b957600080fd5b506101e761096e565b3480156104ce57600080fd5b506102da6104dd366004611426565b61097d565b3480156104ee57600080fd5b5061021d6104fd36600461150f565b610ace565b34801561050e57600080fd5b506102da610adb565b34801561052357600080fd5b5060155461021d9060ff1681565b34801561053d57600080fd5b506102da61054c36600461153b565b610b19565b34801561055d57600080fd5b5061023e61056c366004611467565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156105a357600080fd5b506102da6105b2366004611426565b610bab565b6060600480546105c6906117fc565b80601f01602080910402602001604051908101604052809291908181526020018280546105f2906117fc565b801561063f5780601f106106145761010080835404028352916020019161063f565b820191906000526020600020905b81548152906001019060200180831161062257829003601f168201915b5050505050905090565b6000610656338484610c71565b50600192915050565b600061066c848484610cd2565b6001600160a01b0384166000908152600260209081526040808320338452909152902054600019146106ec576001600160a01b03841660009081526002602090815260408083203384529091529020546106c79083906117e5565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b5060019392505050565b6000546001600160a01b031633146107295760405162461bcd60e51b8152600401610720906116f0565b60405180910390fd5b60648160ff1661073860085490565b61074291906117c6565b61074c91906117a4565b60165550565b6000546001600160a01b0316331461077c5760405162461bcd60e51b8152600401610720906116f0565b60005b81518110156107e4576000600a60008484815181106107a0576107a0611868565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107dc81611837565b91505061077f565b5050565b6000546001600160a01b031633146108125760405162461bcd60e51b8152600401610720906116f0565b601094909455601192909255601255601355601455565b6000546001600160a01b031633146108535760405162461bcd60e51b8152600401610720906116f0565b43601755565b6000546001600160a01b031633146108835760405162461bcd60e51b8152600401610720906116f0565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146108cf5760405162461bcd60e51b8152600401610720906116f0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109435760405162461bcd60e51b8152600401610720906116f0565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6060600580546105c6906117fc565b6001600160a01b0381163014610acb576003546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a082319060240160206040518083038186803b1580156109db57600080fd5b505afa1580156109ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a139190611624565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610a5957600080fd5b505af1158015610a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a919190611607565b506003546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156107e4573d6000803e3d6000fd5b50565b6000610656338484610cd2565b6000546001600160a01b03163314610b055760405162461bcd60e51b8152600401610720906116f0565b6015805460ff19811660ff90911615179055565b6000546001600160a01b03163314610b435760405162461bcd60e51b8152600401610720906116f0565b60005b81518110156107e4576001600a6000848481518110610b6757610b67611868565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610ba381611837565b915050610b46565b6000546001600160a01b03163314610bd55760405162461bcd60e51b8152600401610720906116f0565b6001600160a01b038116610c165760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b6044820152606401610720565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526001602052604090205481811015610d2e5760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b6044820152606401610720565b600c5460ff1615610d4b57610d44848484610fb8565b5050505050565b6001600160a01b0383166000908152600b602052604081205460ff168015610d765750600c5460ff16155b8015610d9b57506001600160a01b03851660009081526007602052604090205460ff16155b8015610dc057506001600160a01b03841660009081526007602052604090205460ff16155b8015610dcf5750601454600d54115b15610e1057306000908152600160205260409020548390811115610dff5750306000908152600160205260409020545b8015610e0e57610e0e8161106d565b505b6001600160a01b03851660009081526007602052604090205460ff16158015610e5257506001600160a01b03841660009081526007602052604090205460ff16155b8015610e615750600c5460ff16155b15610fac57600060175411610e7557600080fd5b6001600160a01b0385166000908152600a602052604090205460ff1615610e9b57600080fd5b506001600160a01b0384166000908152600b602052604090205460019060ff168015610ed557506009546001600160a01b03858116911614155b8015610efa57506001600160a01b03841660009081526007602052604090205460ff16155b15610f7d57600d8054906000610f0f83611837565b919050555060165483610f37866001600160a01b031660009081526001602052604090205490565b610f41919061178c565b1115610f7d5760405162461bcd60e51b815260206004820152600b60248201526a1dd85b1b195d1b1a5b5a5d60aa1b6044820152606401610720565b60155460ff168015610f8e57508183145b15610fac57610f9f612710846117a4565b610fa990846117e5565b92505b610d4485858584611222565b6001600160a01b038316600090815260016020526040812080548391908390610fe29084906117e5565b90915550506001600160a01b0383166000908152600160205260408120805484929061100f90849061178c565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161105b91815260200190565b60405180910390a35060019392505050565b600c805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110af576110af611868565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561110357600080fd5b505afa158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b919061144a565b8160018151811061114e5761114e611868565b6001600160a01b03928316602091820292909201015260095460405163791ac94760e01b815291169063791ac9479061119490859060009086903090429060040161171b565b600060405180830381600087803b1580156111ae57600080fd5b505af11580156111c2573d6000803e3d6000fd5b504792505050662386f26fc10000811115611213576003546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611211573d6000803e3d6000fd5b505b5050600c805460ff1916905550565b6001600160a01b0384166000908152600160205260409020546112469083906117e5565b6001600160a01b0385166000908152600160205260408120919091558115611387576001600160a01b0384166000908152600b602052604081205460ff16156112a757601354600d541161129c57600f546112a0565b6011545b90506112e2565b6001600160a01b0386166000908152600b602052604090205460ff16156112e257601254600d54116112db57600e546112df565b6010545b90505b600060646112f083876117c6565b6112fa91906117a4565b905080156113845761130c818461178c565b3060009081526001602052604090205490935061132a90829061178c565b30600081815260016020526040908190209290925590516001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061137b9085815260200190565b60405180910390a35b50505b61139181846117e5565b6001600160a01b0385166000908152600160205260409020546113b4919061178c565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6113fe84876117e5565b60405190815260200160405180910390a35050505050565b803561142181611894565b919050565b60006020828403121561143857600080fd5b813561144381611894565b9392505050565b60006020828403121561145c57600080fd5b815161144381611894565b6000806040838503121561147a57600080fd5b823561148581611894565b9150602083013561149581611894565b809150509250929050565b6000806000606084860312156114b557600080fd5b83356114c081611894565b925060208401356114d081611894565b929592945050506040919091013590565b600080604083850312156114f457600080fd5b82356114ff81611894565b91506020830135611495816118a9565b6000806040838503121561152257600080fd5b823561152d81611894565b946020939093013593505050565b6000602080838503121561154e57600080fd5b823567ffffffffffffffff8082111561156657600080fd5b818501915085601f83011261157a57600080fd5b81358181111561158c5761158c61187e565b8060051b604051601f19603f830116810181811085821117156115b1576115b161187e565b604052828152858101935084860182860187018a10156115d057600080fd5b600095505b838610156115fa576115e681611416565b8552600195909501949386019386016115d5565b5098975050505050505050565b60006020828403121561161957600080fd5b8151611443816118a9565b60006020828403121561163657600080fd5b5051919050565b600080600080600060a0868803121561165557600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60006020828403121561168a57600080fd5b813560ff8116811461144357600080fd5b600060208083528351808285015260005b818110156116c8578581018301518582016040015282016116ac565b818111156116da576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252601190820152703cb7ba9030b932903737ba1037bbb732b960791b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561176b5784516001600160a01b031683529383019391830191600101611746565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561179f5761179f611852565b500190565b6000826117c157634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156117e0576117e0611852565b500290565b6000828210156117f7576117f7611852565b500390565b600181811c9082168061181057607f821691505b6020821081141561183157634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561184b5761184b611852565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610acb57600080fd5b8015158114610acb57600080fdfea26469706673582212203e2219c1ca2ac6430c16921fd8eda0c41c9a400599f00a99c404bf6ba40223fa64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c806365b61b77116100f757806395d89b4111610095578063cefab2af11610064578063cefab2af14610517578063d34628cc14610531578063dd62ed3e14610551578063f2fde38b1461059757600080fd5b806395d89b41146104ad578063a67755c2146104c2578063a9059cbb146104e2578063bc76c0521461050257600080fd5b806370a08231116100d157806370a0823114610424578063715018a61461045a5780638da5cb5b1461046f578063936c044b1461048d57600080fd5b806365b61b77146103cf5780636c580801146103ef5780636f39cfcd1461040457600080fd5b8063319c2f64116101645780633ecad2711161013e5780633ecad2711461032c5780633f80b6d71461035c5780634bf28fd01461037c578063553193ca146103b957600080fd5b8063319c2f64146102ba57806331c2d847146102dc57806336b2e027146102fc57600080fd5b80631b583749116101a05780631b5837491461024c57806323b872dd1461026257806327b1a8e914610282578063313ce5671461029857600080fd5b806306fdde03146101d2578063095ea7b3146101fd57806318160ddd1461022d57600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76105b7565b6040516101f4919061169b565b60405180910390f35b34801561020957600080fd5b5061021d61021836600461150f565b610649565b60405190151581526020016101f4565b34801561023957600080fd5b506008545b6040519081526020016101f4565b34801561025857600080fd5b5061023e60165481565b34801561026e57600080fd5b5061021d61027d3660046114a0565b61065f565b34801561028e57600080fd5b5061023e600d5481565b3480156102a457600080fd5b5060065460405160ff90911681526020016101f4565b3480156102c657600080fd5b506102da6102d5366004611678565b6106f6565b005b3480156102e857600080fd5b506102da6102f736600461153b565b610752565b34801561030857600080fd5b5061021d610317366004611426565b60076020526000908152604090205460ff1681565b34801561033857600080fd5b5061021d610347366004611426565b600b6020526000908152604090205460ff1681565b34801561036857600080fd5b506102da61037736600461163d565b6107e8565b34801561038857600080fd5b50600c546103a19061010090046001600160a01b031681565b6040516001600160a01b0390911681526020016101f4565b3480156103c557600080fd5b5061023e60175481565b3480156103db57600080fd5b506009546103a1906001600160a01b031681565b3480156103fb57600080fd5b506102da610829565b34801561041057600080fd5b506102da61041f366004611426565b610859565b34801561043057600080fd5b5061023e61043f366004611426565b6001600160a01b031660009081526001602052604090205490565b34801561046657600080fd5b506102da6108a5565b34801561047b57600080fd5b506000546001600160a01b03166103a1565b34801561049957600080fd5b506102da6104a83660046114e1565b610919565b3480156104b957600080fd5b506101e761096e565b3480156104ce57600080fd5b506102da6104dd366004611426565b61097d565b3480156104ee57600080fd5b5061021d6104fd36600461150f565b610ace565b34801561050e57600080fd5b506102da610adb565b34801561052357600080fd5b5060155461021d9060ff1681565b34801561053d57600080fd5b506102da61054c36600461153b565b610b19565b34801561055d57600080fd5b5061023e61056c366004611467565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156105a357600080fd5b506102da6105b2366004611426565b610bab565b6060600480546105c6906117fc565b80601f01602080910402602001604051908101604052809291908181526020018280546105f2906117fc565b801561063f5780601f106106145761010080835404028352916020019161063f565b820191906000526020600020905b81548152906001019060200180831161062257829003601f168201915b5050505050905090565b6000610656338484610c71565b50600192915050565b600061066c848484610cd2565b6001600160a01b0384166000908152600260209081526040808320338452909152902054600019146106ec576001600160a01b03841660009081526002602090815260408083203384529091529020546106c79083906117e5565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b5060019392505050565b6000546001600160a01b031633146107295760405162461bcd60e51b8152600401610720906116f0565b60405180910390fd5b60648160ff1661073860085490565b61074291906117c6565b61074c91906117a4565b60165550565b6000546001600160a01b0316331461077c5760405162461bcd60e51b8152600401610720906116f0565b60005b81518110156107e4576000600a60008484815181106107a0576107a0611868565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107dc81611837565b91505061077f565b5050565b6000546001600160a01b031633146108125760405162461bcd60e51b8152600401610720906116f0565b601094909455601192909255601255601355601455565b6000546001600160a01b031633146108535760405162461bcd60e51b8152600401610720906116f0565b43601755565b6000546001600160a01b031633146108835760405162461bcd60e51b8152600401610720906116f0565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146108cf5760405162461bcd60e51b8152600401610720906116f0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109435760405162461bcd60e51b8152600401610720906116f0565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6060600580546105c6906117fc565b6001600160a01b0381163014610acb576003546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a082319060240160206040518083038186803b1580156109db57600080fd5b505afa1580156109ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a139190611624565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610a5957600080fd5b505af1158015610a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a919190611607565b506003546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156107e4573d6000803e3d6000fd5b50565b6000610656338484610cd2565b6000546001600160a01b03163314610b055760405162461bcd60e51b8152600401610720906116f0565b6015805460ff19811660ff90911615179055565b6000546001600160a01b03163314610b435760405162461bcd60e51b8152600401610720906116f0565b60005b81518110156107e4576001600a6000848481518110610b6757610b67611868565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610ba381611837565b915050610b46565b6000546001600160a01b03163314610bd55760405162461bcd60e51b8152600401610720906116f0565b6001600160a01b038116610c165760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b6044820152606401610720565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526001602052604090205481811015610d2e5760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b6044820152606401610720565b600c5460ff1615610d4b57610d44848484610fb8565b5050505050565b6001600160a01b0383166000908152600b602052604081205460ff168015610d765750600c5460ff16155b8015610d9b57506001600160a01b03851660009081526007602052604090205460ff16155b8015610dc057506001600160a01b03841660009081526007602052604090205460ff16155b8015610dcf5750601454600d54115b15610e1057306000908152600160205260409020548390811115610dff5750306000908152600160205260409020545b8015610e0e57610e0e8161106d565b505b6001600160a01b03851660009081526007602052604090205460ff16158015610e5257506001600160a01b03841660009081526007602052604090205460ff16155b8015610e615750600c5460ff16155b15610fac57600060175411610e7557600080fd5b6001600160a01b0385166000908152600a602052604090205460ff1615610e9b57600080fd5b506001600160a01b0384166000908152600b602052604090205460019060ff168015610ed557506009546001600160a01b03858116911614155b8015610efa57506001600160a01b03841660009081526007602052604090205460ff16155b15610f7d57600d8054906000610f0f83611837565b919050555060165483610f37866001600160a01b031660009081526001602052604090205490565b610f41919061178c565b1115610f7d5760405162461bcd60e51b815260206004820152600b60248201526a1dd85b1b195d1b1a5b5a5d60aa1b6044820152606401610720565b60155460ff168015610f8e57508183145b15610fac57610f9f612710846117a4565b610fa990846117e5565b92505b610d4485858584611222565b6001600160a01b038316600090815260016020526040812080548391908390610fe29084906117e5565b90915550506001600160a01b0383166000908152600160205260408120805484929061100f90849061178c565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161105b91815260200190565b60405180910390a35060019392505050565b600c805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110af576110af611868565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561110357600080fd5b505afa158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b919061144a565b8160018151811061114e5761114e611868565b6001600160a01b03928316602091820292909201015260095460405163791ac94760e01b815291169063791ac9479061119490859060009086903090429060040161171b565b600060405180830381600087803b1580156111ae57600080fd5b505af11580156111c2573d6000803e3d6000fd5b504792505050662386f26fc10000811115611213576003546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611211573d6000803e3d6000fd5b505b5050600c805460ff1916905550565b6001600160a01b0384166000908152600160205260409020546112469083906117e5565b6001600160a01b0385166000908152600160205260408120919091558115611387576001600160a01b0384166000908152600b602052604081205460ff16156112a757601354600d541161129c57600f546112a0565b6011545b90506112e2565b6001600160a01b0386166000908152600b602052604090205460ff16156112e257601254600d54116112db57600e546112df565b6010545b90505b600060646112f083876117c6565b6112fa91906117a4565b905080156113845761130c818461178c565b3060009081526001602052604090205490935061132a90829061178c565b30600081815260016020526040908190209290925590516001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061137b9085815260200190565b60405180910390a35b50505b61139181846117e5565b6001600160a01b0385166000908152600160205260409020546113b4919061178c565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6113fe84876117e5565b60405190815260200160405180910390a35050505050565b803561142181611894565b919050565b60006020828403121561143857600080fd5b813561144381611894565b9392505050565b60006020828403121561145c57600080fd5b815161144381611894565b6000806040838503121561147a57600080fd5b823561148581611894565b9150602083013561149581611894565b809150509250929050565b6000806000606084860312156114b557600080fd5b83356114c081611894565b925060208401356114d081611894565b929592945050506040919091013590565b600080604083850312156114f457600080fd5b82356114ff81611894565b91506020830135611495816118a9565b6000806040838503121561152257600080fd5b823561152d81611894565b946020939093013593505050565b6000602080838503121561154e57600080fd5b823567ffffffffffffffff8082111561156657600080fd5b818501915085601f83011261157a57600080fd5b81358181111561158c5761158c61187e565b8060051b604051601f19603f830116810181811085821117156115b1576115b161187e565b604052828152858101935084860182860187018a10156115d057600080fd5b600095505b838610156115fa576115e681611416565b8552600195909501949386019386016115d5565b5098975050505050505050565b60006020828403121561161957600080fd5b8151611443816118a9565b60006020828403121561163657600080fd5b5051919050565b600080600080600060a0868803121561165557600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60006020828403121561168a57600080fd5b813560ff8116811461144357600080fd5b600060208083528351808285015260005b818110156116c8578581018301518582016040015282016116ac565b818111156116da576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252601190820152703cb7ba9030b932903737ba1037bbb732b960791b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561176b5784516001600160a01b031683529383019391830191600101611746565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561179f5761179f611852565b500190565b6000826117c157634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156117e0576117e0611852565b500290565b6000828210156117f7576117f7611852565b500390565b600181811c9082168061181057607f821691505b6020821081141561183157634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561184b5761184b611852565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610acb57600080fd5b8015158114610acb57600080fdfea26469706673582212203e2219c1ca2ac6430c16921fd8eda0c41c9a400599f00a99c404bf6ba40223fa64736f6c63430008070033

Deployed Bytecode Sourcemap

2542:8845:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4754:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5517:159;;;;;;;;;;-1:-1:-1;5517:159:0;;;;;:::i;:::-;;:::i;:::-;;;5451:14:1;;5444:22;5426:41;;5414:2;5399:18;5517:159:0;5286:187:1;4958:100:0;;;;;;;;;;-1:-1:-1;5038:12:0;;4958:100;;;7823:25:1;;;7811:2;7796:18;4958:100:0;7677:177:1;7342:25:0;;;;;;;;;;;;;;;;5684:336;;;;;;;;;;-1:-1:-1;5684:336:0;;;;;:::i;:::-;;:::i;6480:26::-;;;;;;;;;;;;;;;;4856:94;;;;;;;;;;-1:-1:-1;4933:9:0;;4856:94;;4933:9;;;;8986:36:1;;8974:2;8959:18;4856:94:0;8844:184:1;7376:120:0;;;;;;;;;;-1:-1:-1;7376:120:0;;;;;:::i;:::-;;:::i;:::-;;10503:162;;;;;;;;;;-1:-1:-1;10503:162:0;;;;;:::i;:::-;;:::i;2847:49::-;;;;;;;;;;-1:-1:-1;2847:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3038:44;;;;;;;;;;-1:-1:-1;3038:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6795:406;;;;;;;;;;-1:-1:-1;6795:406:0;;;;;:::i;:::-;;:::i;3168:27::-;;;;;;;;;;-1:-1:-1;3168:27:0;;;;;;;-1:-1:-1;;;;;3168:27:0;;;;;;-1:-1:-1;;;;;4955:32:1;;;4937:51;;4925:2;4910:18;3168:27:0;4791:203:1;9929:30:0;;;;;;;;;;;;;;;;2946:36;;;;;;;;;;-1:-1:-1;2946:36:0;;;;-1:-1:-1;;;;;2946:36:0;;;9966:88;;;;;;;;;;;;;:::i;4518:122::-;;;;;;;;;;-1:-1:-1;4518:122:0;;;;;:::i;:::-;;:::i;5066:119::-;;;;;;;;;;-1:-1:-1;5066:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5159:18:0;5132:7;5159:18;;;:9;:18;;;;;;;5066:119;2165:148;;;;;;;;;;;;;:::i;1968:79::-;;;;;;;;;;-1:-1:-1;2006:7:0;2033:6;-1:-1:-1;;;;;2033:6:0;1968:79;;11226:121;;;;;;;;;;-1:-1:-1;11226:121:0;;;;;:::i;:::-;;:::i;4648:98::-;;;;;;;;;;;;;:::i;10062:261::-;;;;;;;;;;-1:-1:-1;10062:261:0;;;;;:::i;:::-;;:::i;5193:165::-;;;;;;;;;;-1:-1:-1;5193:165:0;;;;;:::i;:::-;;:::i;7247:87::-;;;;;;;;;;;;;:::i;7209:31::-;;;;;;;;;;-1:-1:-1;7209:31:0;;;;;;;;10331:164;;;;;;;;;;-1:-1:-1;10331:164:0;;;;;:::i;:::-;;:::i;5366:143::-;;;;;;;;;;-1:-1:-1;5366:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5474:18:0;;;5447:7;5474:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5366:143;2321:214;;;;;;;;;;-1:-1:-1;2321:214:0;;;;;:::i;:::-;;:::i;4754:94::-;4802:13;4835:5;4828:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4754:94;:::o;5517:159::-;5592:4;5609:37;5618:10;5630:7;5639:6;5609:8;:37::i;:::-;-1:-1:-1;5664:4:0;5517:159;;;;:::o;5684:336::-;5782:4;5799:36;5809:6;5817:9;5828:6;5799:9;:36::i;:::-;-1:-1:-1;;;;;5850:19:0;;3157:1;5850:19;;;:11;:19;;;;;;;;5870:10;5850:31;;;;;;;;-1:-1:-1;;5850:38:0;5846:145;;-1:-1:-1;;;;;5939:19:0;;;;;;:11;:19;;;;;;;;5959:10;5939:31;;;;;;;;:40;;5973:6;;5939:40;:::i;:::-;-1:-1:-1;;;;;5905:19:0;;;;;;:11;:19;;;;;;;;5925:10;5905:31;;;;;;;:74;5846:145;-1:-1:-1;6008:4:0;5684:336;;;;;:::o;7376:120::-;2095:6;;-1:-1:-1;;;;;2095:6:0;2105:10;2095:20;2087:50;;;;-1:-1:-1;;;2087:50:0;;;;;;;:::i;:::-;;;;;;;;;7485:3:::1;7472:10;7456:26;;:13;5038:12:::0;;;4958:100;7456:13:::1;:26;;;;:::i;:::-;:32;;;;:::i;:::-;7443:10;:45:::0;-1:-1:-1;7376:120:0:o;10503:162::-;2095:6;;-1:-1:-1;;;;;2095:6:0;2105:10;2095:20;2087:50;;;;-1:-1:-1;;;2087:50:0;;;;;;;:::i;:::-;10576:6:::1;10571:87;10592:6;:13;10588:1;:17;10571:87;;;10643:5;10625:4;:15;10630:6;10637:1;10630:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10625:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10625:15:0;:23;;-1:-1:-1;;10625:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10607:3;::::1;::::0;::::1;:::i;:::-;;;;10571:87;;;;10503:162:::0;:::o;6795:406::-;2095:6;;-1:-1:-1;;;;;2095:6:0;2105:10;2095:20;2087:50;;;;-1:-1:-1;;;2087:50:0;;;;;;;:::i;:::-;7002:12:::1;:21:::0;;;;7034:13:::1;:23:::0;;;;7068:15:::1;:30:::0;7109:16:::1;:32:::0;7152:18:::1;:41:::0;6795:406::o;9966:88::-;2095:6;;-1:-1:-1;;;;;2095:6:0;2105:10;2095:20;2087:50;;;;-1:-1:-1;;;2087:50:0;;;;;;;:::i;:::-;10034:12:::1;10016:15;:30:::0;9966:88::o;4518:122::-;2095:6;;-1:-1:-1;;;;;2095:6:0;2105:10;2095:20;2087:50;;;;-1:-1:-1;;;2087:50:0;;;;;;;:::i;:::-;4607:15:::1;:25:::0;;-1:-1:-1;;;;;;4607:25:0::1;-1:-1:-1::0;;;;;4607:25:0;;;::::1;::::0;;;::::1;::::0;;4518:122::o;2165:148::-;2095:6;;-1:-1:-1;;;;;2095:6:0;2105:10;2095:20;2087:50;;;;-1:-1:-1;;;2087:50:0;;;;;;;:::i;:::-;2272:1:::1;2256:6:::0;;2235:40:::1;::::0;-1:-1:-1;;;;;2256:6:0;;::::1;::::0;2235:40:::1;::::0;2272:1;;2235:40:::1;2303:1;2286:19:::0;;-1:-1:-1;;;;;;2286:19:0::1;::::0;;2165:148::o;11226:121::-;2095:6;;-1:-1:-1;;;;;2095:6:0;2105:10;2095:20;2087:50;;;;-1:-1:-1;;;2087:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11305:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:34;;-1:-1:-1;;11305:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11226:121::o;4648:98::-;4698:13;4731:7;4724:14;;;;;:::i;10062:261::-;-1:-1:-1;;;;;10122:23:0;;10140:4;10122:23;10119:197;;10185:15;;10202:39;;-1:-1:-1;;;10202:39:0;;10235:4;10202:39;;;4937:51:1;-1:-1:-1;;;;;10161:23:0;;;;;;10185:15;;;10161:23;;10202:24;;4910:18:1;;10202:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10161:81;;-1:-1:-1;;;;;;10161:81:0;;;;;;;-1:-1:-1;;;;;5199:32:1;;;10161:81:0;;;5181:51:1;5248:18;;;5241:34;5154:18;;10161:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;10257:15:0;;:47;;-1:-1:-1;;;;;10257:15:0;;;;10282:21;10257:47;;;;;:15;:47;:15;:47;10282:21;10257:15;:47;;;;;;;;;;;;;;;;;;;10119:197;10062:261;:::o;5193:165::-;5271:4;5288:40;5298:10;5310:9;5321:6;5288:9;:40::i;7247:87::-;2095:6;;-1:-1:-1;;;;;2095:6:0;2105:10;2095:20;2087:50;;;;-1:-1:-1;;;2087:50:0;;;;;;;:::i;:::-;7314:12:::1;::::0;;-1:-1:-1;;7298:28:0;::::1;7314:12;::::0;;::::1;7313:13;7298:28;::::0;;7247:87::o;10331:164::-;2095:6;;-1:-1:-1;;;;;2095:6:0;2105:10;2095:20;2087:50;;;;-1:-1:-1;;;2087:50:0;;;;;;;:::i;:::-;10405:6:::1;10400:88;10421:5;:12;10417:1;:16;10400:88;;;10472:4;10455;:14;10460:5;10466:1;10460:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10455:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10455:14:0;:21;;-1:-1:-1;;10455:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10435:3;::::1;::::0;::::1;:::i;:::-;;;;10400:88;;2321:214:::0;2095:6;;-1:-1:-1;;;;;2095:6:0;2105:10;2095:20;2087:50;;;;-1:-1:-1;;;2087:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2410:22:0;::::1;2402:43;;;::::0;-1:-1:-1;;;2402:43:0;;6857:2:1;2402:43:0::1;::::0;::::1;6839:21:1::0;6896:1;6876:18;;;6869:29;-1:-1:-1;;;6914:18:1;;;6907:38;6962:18;;2402:43:0::1;6655:331:1::0;2402:43:0::1;2482:6;::::0;;2461:38:::1;::::0;-1:-1:-1;;;;;2461:38:0;;::::1;::::0;2482:6;::::1;::::0;2461:38:::1;::::0;::::1;2510:6;:17:::0;;-1:-1:-1;;;;;;2510:17:0::1;-1:-1:-1::0;;;;;2510:17:0;;;::::1;::::0;;;::::1;::::0;;2321:214::o;6028:177::-;-1:-1:-1;;;;;6113:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6165:32;;7823:25:1;;;6165:32:0;;7796:18:1;6165:32:0;;;;;;;6028:177;;;:::o;7504:1378::-;-1:-1:-1;;;;;5159:18:0;;7618:15;5159:18;;;:9;:18;;;;;;7670:17;;;;7662:46;;;;-1:-1:-1;;;7662:46:0;;6512:2:1;7662:46:0;;;6494:21:1;6551:2;6531:18;;;6524:30;-1:-1:-1;;;6570:18:1;;;6563:46;6626:18;;7662:46:0;6310:340:1;7662:46:0;7725:6;;;;7721:91;;;7747:32;7762:4;7768:2;7772:6;7747:14;:32::i;:::-;;7794:7;7504:1378;;;:::o;7721:91::-;-1:-1:-1;;;;;7853:16:0;;7824:12;7853:16;;;:12;:16;;;;;;;;:27;;;;-1:-1:-1;7874:6:0;;;;7873:7;7853:27;:55;;;;-1:-1:-1;;;;;;7885:23:0;;;;;;:17;:23;;;;;;;;7884:24;7853:55;:81;;;;-1:-1:-1;;;;;;7913:21:0;;;;;;:17;:21;;;;;;;;7912:22;7853:81;:115;;;;;7950:18;;7938:9;;:30;7853:115;7849:413;;;8068:4;5132:7;5159:18;;;:9;:18;;;;;;8009:6;;8034:13;:40;8030:120;;;-1:-1:-1;8128:4:0;8110:24;;;;:9;:24;;;;;;8030:120;8168:17;;8164:87;;8205:30;8221:13;8205:15;:30::i;:::-;7970:292;7849:413;-1:-1:-1;;;;;8279:23:0;;;;;;:17;:23;;;;;;;;8278:24;:50;;;;-1:-1:-1;;;;;;8307:21:0;;;;;;:17;:21;;;;;;;;8306:22;8278:50;:61;;;;-1:-1:-1;8333:6:0;;;;8332:7;8278:61;8274:547;;;8382:1;8364:15;;:19;8356:28;;;;;;-1:-1:-1;;;;;8408:10:0;;;;;;:4;:10;;;;;;;;8407:11;8399:20;;;;;;-1:-1:-1;;;;;;8481:18:0;;;;;;:12;:18;;;;;;8444:4;;8481:18;;:51;;;;-1:-1:-1;8517:14:0;;-1:-1:-1;;;;;8503:29:0;;;8517:14;;8503:29;;8481:51;:77;;;;-1:-1:-1;;;;;;8537:21:0;;;;;;:17;:21;;;;;;;;8536:22;8481:77;8477:207;;;8579:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8643:10;;8633:6;8617:13;8627:2;-1:-1:-1;;;;;5159:18:0;5132:7;5159:18;;;:9;:18;;;;;;;5066:119;8617:13;:22;;;;:::i;:::-;:36;;8609:59;;;;-1:-1:-1;;;8609:59:0;;7193:2:1;8609:59:0;;;7175:21:1;7232:2;7212:18;;;7205:30;-1:-1:-1;;;7251:18:1;;;7244:41;7302:18;;8609:59:0;6991:335:1;8609:59:0;8704:12;;;;:33;;;;;8730:7;8720:6;:17;8704:33;8700:108;;;8777:14;8786:5;8777:6;:14;:::i;:::-;8767:25;;:6;:25;:::i;:::-;8758:34;;8700:108;8833:41;8848:4;8854:2;8858:6;8866:7;8833:14;:41::i;6213:259::-;-1:-1:-1;;;;;6323:17:0;;6306:4;6323:17;;;:9;:17;;;;;:27;;6344:6;;6323:17;6306:4;;6323:27;;6344:6;;6323:27;:::i;:::-;;;;-1:-1:-1;;;;;;;6361:20:0;;;;;;:9;:20;;;;;:30;;6385:6;;6361:20;:30;;6385:6;;6361:30;:::i;:::-;;;;;;;;6424:9;-1:-1:-1;;;;;6407:35:0;6416:6;-1:-1:-1;;;;;6407:35:0;;6435:6;6407:35;;;;7823:25:1;;7811:2;7796:18;;7677:177;6407:35:0;;;;;;;;-1:-1:-1;6460:4:0;6213:259;;;;;:::o;10673:545::-;3236:6;:13;;-1:-1:-1;;3236:13:0;3245:4;3236:13;;;10774:16:::1;::::0;;10788:1:::1;10774:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10774:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10774:16:0::1;10750:40;;10819:4;10801;10806:1;10801:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10801:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10845:14:::1;::::0;:21:::1;::::0;;-1:-1:-1;;;10845:21:0;;;;:14;;;::::1;::::0;:19:::1;::::0;:21:::1;::::0;;::::1;::::0;10801:7;;10845:21;;;;;:14;:21;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10835:4;10840:1;10835:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10835:31:0;;::::1;:7;::::0;;::::1;::::0;;;;;:31;10877:14:::1;::::0;:195:::1;::::0;-1:-1:-1;;;10877:195:0;;:14;::::1;::::0;:65:::1;::::0;:195:::1;::::0;10957:11;;10877:14:::1;::::0;10999:4;;11026::::1;::::0;11046:15:::1;::::0;10877:195:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;11100:21:0::1;::::0;-1:-1:-1;;;11143:10:0::1;11136:17:::0;::::1;11132:79;;;11169:15;::::0;:30:::1;::::0;-1:-1:-1;;;;;11169:15:0;;::::1;::::0;:30;::::1;;;::::0;11194:4;;11169:15:::1;:30:::0;:15;:30;11194:4;11169:15;:30;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11132:79;-1:-1:-1::0;;3272:6:0;:14;;-1:-1:-1;;3272:14:0;;;-1:-1:-1;10673:545:0:o;8890:1031::-;-1:-1:-1;;;;;9062:17:0;;;;;;:9;:17;;;;;;:27;;9082:7;;9062:27;:::i;:::-;-1:-1:-1;;;;;9042:17:0;;;;;;:9;:17;;;;;:47;;;;9130:638;;;;-1:-1:-1;;;;;9191:23:0;;9158:14;9191:23;;;:12;:23;;;;;;;;9187:270;;;9256:16;;9244:9;;:28;:62;;9291:15;;9244:62;;;9275:13;;9244:62;9235:71;;9187:270;;;-1:-1:-1;;;;;9332:20:0;;;;;;:12;:20;;;;;;;;9328:129;;;9394:15;;9382:9;;:27;:59;;9427:14;;9382:59;;;9412:12;;9382:59;9373:68;;9328:129;9471:18;9511:3;9492:16;9502:6;9492:7;:16;:::i;:::-;:22;;;;:::i;:::-;9471:43;-1:-1:-1;9533:14:0;;9529:228;;9568:23;9581:10;9568:23;;:::i;:::-;9655:4;9637:24;;;;:9;:24;;;;;;9568:23;;-1:-1:-1;9637:37:0;;9664:10;;9637:37;:::i;:::-;9628:4;9610:24;;;;:9;:24;;;;;;;:64;;;;9698:43;;-1:-1:-1;;;;;9698:43:0;;;;;;;9730:10;7823:25:1;;7811:2;7796:18;;7677:177;9698:43:0;;;;;;;;9529:228;9143:625;;9130:638;9827:19;9837:9;9827:7;:19;:::i;:::-;-1:-1:-1;;;;;9803:20:0;;;;;;:9;:20;;;;;;:44;;;;:::i;:::-;-1:-1:-1;;;;;9780:20:0;;;;;;;:9;:20;;;;;:67;;;;9863:48;;;9891:19;9901:9;9891:7;:19;:::i;:::-;9863:48;;7823:25:1;;;7811:2;7796:18;9863:48:0;;;;;;;9031:890;8890:1031;;;;:::o;14:134:1:-;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:247::-;212:6;265:2;253:9;244:7;240:23;236:32;233:52;;;281:1;278;271:12;233:52;320:9;307:23;339:31;364:5;339:31;:::i;:::-;389:5;153:247;-1:-1:-1;;;153:247:1:o;405:251::-;475:6;528:2;516:9;507:7;503:23;499:32;496:52;;;544:1;541;534:12;496:52;576:9;570:16;595:31;620:5;595:31;:::i;921:388::-;989:6;997;1050:2;1038:9;1029:7;1025:23;1021:32;1018:52;;;1066:1;1063;1056:12;1018:52;1105:9;1092:23;1124:31;1149:5;1124:31;:::i;:::-;1174:5;-1:-1:-1;1231:2:1;1216:18;;1203:32;1244:33;1203:32;1244:33;:::i;:::-;1296:7;1286:17;;;921:388;;;;;:::o;1314:456::-;1391:6;1399;1407;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;1515:9;1502:23;1534:31;1559:5;1534:31;:::i;:::-;1584:5;-1:-1:-1;1641:2:1;1626:18;;1613:32;1654:33;1613:32;1654:33;:::i;:::-;1314:456;;1706:7;;-1:-1:-1;;;1760:2:1;1745:18;;;;1732:32;;1314:456::o;1775:382::-;1840:6;1848;1901:2;1889:9;1880:7;1876:23;1872:32;1869:52;;;1917:1;1914;1907:12;1869:52;1956:9;1943:23;1975:31;2000:5;1975:31;:::i;:::-;2025:5;-1:-1:-1;2082:2:1;2067:18;;2054:32;2095:30;2054:32;2095:30;:::i;2162:315::-;2230:6;2238;2291:2;2279:9;2270:7;2266:23;2262:32;2259:52;;;2307:1;2304;2297:12;2259:52;2346:9;2333:23;2365:31;2390:5;2365:31;:::i;:::-;2415:5;2467:2;2452:18;;;;2439:32;;-1:-1:-1;;;2162:315:1:o;2482:1132::-;2566:6;2597:2;2640;2628:9;2619:7;2615:23;2611:32;2608:52;;;2656:1;2653;2646:12;2608:52;2696:9;2683:23;2725:18;2766:2;2758:6;2755:14;2752:34;;;2782:1;2779;2772:12;2752:34;2820:6;2809:9;2805:22;2795:32;;2865:7;2858:4;2854:2;2850:13;2846:27;2836:55;;2887:1;2884;2877:12;2836:55;2923:2;2910:16;2945:2;2941;2938:10;2935:36;;;2951:18;;:::i;:::-;2997:2;2994:1;2990:10;3029:2;3023:9;3092:2;3088:7;3083:2;3079;3075:11;3071:25;3063:6;3059:38;3147:6;3135:10;3132:22;3127:2;3115:10;3112:18;3109:46;3106:72;;;3158:18;;:::i;:::-;3194:2;3187:22;3244:18;;;3278:15;;;;-1:-1:-1;3313:11:1;;;3343;;;3339:20;;3336:33;-1:-1:-1;3333:53:1;;;3382:1;3379;3372:12;3333:53;3404:1;3395:10;;3414:169;3428:2;3425:1;3422:9;3414:169;;;3485:23;3504:3;3485:23;:::i;:::-;3473:36;;3446:1;3439:9;;;;;3529:12;;;;3561;;3414:169;;;-1:-1:-1;3602:6:1;2482:1132;-1:-1:-1;;;;;;;;2482:1132:1:o;3619:245::-;3686:6;3739:2;3727:9;3718:7;3714:23;3710:32;3707:52;;;3755:1;3752;3745:12;3707:52;3787:9;3781:16;3806:28;3828:5;3806:28;:::i;3869:184::-;3939:6;3992:2;3980:9;3971:7;3967:23;3963:32;3960:52;;;4008:1;4005;3998:12;3960:52;-1:-1:-1;4031:16:1;;3869:184;-1:-1:-1;3869:184:1:o;4058:454::-;4153:6;4161;4169;4177;4185;4238:3;4226:9;4217:7;4213:23;4209:33;4206:53;;;4255:1;4252;4245:12;4206:53;-1:-1:-1;;4278:23:1;;;4348:2;4333:18;;4320:32;;-1:-1:-1;4399:2:1;4384:18;;4371:32;;4450:2;4435:18;;4422:32;;-1:-1:-1;4501:3:1;4486:19;4473:33;;-1:-1:-1;4058:454:1;-1:-1:-1;4058:454:1:o;4517:269::-;4574:6;4627:2;4615:9;4606:7;4602:23;4598:32;4595:52;;;4643:1;4640;4633:12;4595:52;4682:9;4669:23;4732:4;4725:5;4721:16;4714:5;4711:27;4701:55;;4752:1;4749;4742:12;5708:597;5820:4;5849:2;5878;5867:9;5860:21;5910:6;5904:13;5953:6;5948:2;5937:9;5933:18;5926:34;5978:1;5988:140;6002:6;5999:1;5996:13;5988:140;;;6097:14;;;6093:23;;6087:30;6063:17;;;6082:2;6059:26;6052:66;6017:10;;5988:140;;;6146:6;6143:1;6140:13;6137:91;;;6216:1;6211:2;6202:6;6191:9;6187:22;6183:31;6176:42;6137:91;-1:-1:-1;6289:2:1;6268:15;-1:-1:-1;;6264:29:1;6249:45;;;;6296:2;6245:54;;5708:597;-1:-1:-1;;;5708:597:1:o;7331:341::-;7533:2;7515:21;;;7572:2;7552:18;;;7545:30;-1:-1:-1;;;7606:2:1;7591:18;;7584:47;7663:2;7648:18;;7331:341::o;7859:980::-;8121:4;8169:3;8158:9;8154:19;8200:6;8189:9;8182:25;8226:2;8264:6;8259:2;8248:9;8244:18;8237:34;8307:3;8302:2;8291:9;8287:18;8280:31;8331:6;8366;8360:13;8397:6;8389;8382:22;8435:3;8424:9;8420:19;8413:26;;8474:2;8466:6;8462:15;8448:29;;8495:1;8505:195;8519:6;8516:1;8513:13;8505:195;;;8584:13;;-1:-1:-1;;;;;8580:39:1;8568:52;;8675:15;;;;8640:12;;;;8616:1;8534:9;8505:195;;;-1:-1:-1;;;;;;;8756:32:1;;;;8751:2;8736:18;;8729:60;-1:-1:-1;;;8820:3:1;8805:19;8798:35;8717:3;7859:980;-1:-1:-1;;;7859:980:1:o;9033:128::-;9073:3;9104:1;9100:6;9097:1;9094:13;9091:39;;;9110:18;;:::i;:::-;-1:-1:-1;9146:9:1;;9033:128::o;9166:217::-;9206:1;9232;9222:132;;9276:10;9271:3;9267:20;9264:1;9257:31;9311:4;9308:1;9301:15;9339:4;9336:1;9329:15;9222:132;-1:-1:-1;9368:9:1;;9166:217::o;9388:168::-;9428:7;9494:1;9490;9486:6;9482:14;9479:1;9476:21;9471:1;9464:9;9457:17;9453:45;9450:71;;;9501:18;;:::i;:::-;-1:-1:-1;9541:9:1;;9388:168::o;9561:125::-;9601:4;9629:1;9626;9623:8;9620:34;;;9634:18;;:::i;:::-;-1:-1:-1;9671:9:1;;9561:125::o;9691:380::-;9770:1;9766:12;;;;9813;;;9834:61;;9888:4;9880:6;9876:17;9866:27;;9834:61;9941:2;9933:6;9930:14;9910:18;9907:38;9904:161;;;9987:10;9982:3;9978:20;9975:1;9968:31;10022:4;10019:1;10012:15;10050:4;10047:1;10040:15;9904:161;;9691:380;;;:::o;10076:135::-;10115:3;-1:-1:-1;;10136:17:1;;10133:43;;;10156:18;;:::i;:::-;-1:-1:-1;10203:1:1;10192:13;;10076:135::o;10216:127::-;10277:10;10272:3;10268:20;10265:1;10258:31;10308:4;10305:1;10298:15;10332:4;10329:1;10322:15;10348:127;10409:10;10404:3;10400:20;10397:1;10390:31;10440:4;10437:1;10430:15;10464:4;10461:1;10454:15;10480:127;10541:10;10536:3;10532:20;10529:1;10522:31;10572:4;10569:1;10562:15;10596:4;10593:1;10586:15;10612:131;-1:-1:-1;;;;;10687:31:1;;10677:42;;10667:70;;10733:1;10730;10723:12;10748:118;10834:5;10827:13;10820:21;10813:5;10810:32;10800:60;;10856:1;10853;10846:12

Swarm Source

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