ETH Price: $2,280.04 (-5.80%)

Token

Togo Inu (TOGO)
 

Overview

Max Total Supply

100,000,000,000,000,000 TOGO

Holders

39

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
135,621,252,143,394.917548456 TOGO

Value
$0.00
0xa8a44a7446b5352a8e79214aa6f4acc0199519fb
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:
Togoinu

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-05-18
*/

/**
 *Submitted for verification at Etherscan.io on 2021-05-18
*/
/**
 *Submitted for verification at Etherscan.io on 2021-05-17
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.0;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract Togoinu is Context, IERC20, IERC20Metadata, Ownable {

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

    mapping (address => bool) private _isExcluded;
    address[] private _excluded;
   
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000000 * 10**6 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    string private _name = 'Togo Inu';
    string private _symbol = 'TOGO';
    uint8 private _decimals = 9;
    
    constructor () {
        _rOwned[_msgSender()] = _rTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        if (_isExcluded[account]) return _tOwned[account];
        return tokenFromReflection(_rOwned[account]);
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), 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(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        require(amount <= _allowances[sender][_msgSender()], "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()]- amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        require(subtractedValue <= _allowances[_msgSender()][spender], "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
        return true;
    }

    function isExcluded(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }
    

    function reflect(uint256 tAmount) public {
        address sender = _msgSender();
        require(!_isExcluded[sender], "Excluded addresses cannot call this function");
        (uint256 rAmount,,,,) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender] - rAmount;
        _rTotal = _rTotal - rAmount;
        _tFeeTotal = _tFeeTotal + tAmount;
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferFee) {
            (uint256 rAmount,,,,) = _getValues(tAmount);
            return rAmount;
        } else {
            (,uint256 rTransferAmount,,,) = _getValues(tAmount);
            return rTransferAmount;
        }
    }

    function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return (rAmount / currentRate);
    }

    function excludeAccount(address account) external onlyOwner() {
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeAccount(address account) external onlyOwner() {
        require(_isExcluded[account], "Account is already excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
            
        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferStandard(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender] - rAmount;
        _rOwned[recipient] = _rOwned[recipient] + rTransferAmount;       
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender] - rAmount;
        _tOwned[recipient] = _tOwned[recipient] + tTransferAmount;
        _rOwned[recipient] = _rOwned[recipient] + rTransferAmount;           
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender] - tAmount;
        _rOwned[sender] = _rOwned[sender] - rAmount;
        _rOwned[recipient] = _rOwned[recipient] + rTransferAmount;   
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender] - tAmount;
        _rOwned[sender] = _rOwned[sender] - rAmount;
        _tOwned[recipient] = _tOwned[recipient] + tTransferAmount;
        _rOwned[recipient] = _rOwned[recipient] + rTransferAmount;        
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal - rFee;
        _tFeeTotal = _tFeeTotal + tFee;
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee) = _getTValues(tAmount);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee);
    }

    function _getTValues(uint256 tAmount) private pure returns (uint256, uint256) {
        uint256 tFee = ((tAmount / 100) * 2);
        uint256 tTransferAmount = tAmount - tFee;
        return (tTransferAmount, tFee);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount * currentRate;
        uint256 rFee = tFee * currentRate;
        uint256 rTransferAmount = rAmount - rFee;
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return (rSupply / tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply - _rOwned[_excluded[i]];
            tSupply = tSupply - _tOwned[_excluded[i]];
        }
        if (rSupply < (_rTotal / _tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

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":[{"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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","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":"tAmount","type":"uint256"}],"name":"reflect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"}]

60806040526200001d6a52b7d2dcc80cd2e4000000600019620002a4565b6200002b9060001962000243565b60065560408051808201909152600880825267546f676f20496e7560c01b60209092019182526200005d918162000194565b5060408051808201909152600480825263544f474f60e01b60209092019182526200008b9160099162000194565b50600a805460ff19166009179055348015620000a657600080fd5b506000620000b362000190565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654600160006200010e62000190565b6001600160a01b031681526020810191909152604001600020556200013262000190565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a52b7d2dcc80cd2e40000006040516200018291906200023a565b60405180910390a3620002c5565b3390565b828054620001a29062000267565b90600052602060002090601f016020900481019282620001c6576000855562000211565b82601f10620001e157805160ff191683800117855562000211565b8280016001018555821562000211579182015b8281111562000211578251825591602001919060010190620001f4565b506200021f92915062000223565b5090565b5b808211156200021f576000815560010162000224565b90815260200190565b6000828210156200026257634e487b7160e01b81526011600452602481fd5b500390565b6002810460018216806200027c57607f821691505b602082108114156200029e57634e487b7160e01b600052602260045260246000fd5b50919050565b600082620002c057634e487b7160e01b81526012600452602481fd5b500690565b6119ef80620002d56000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063a9059cbb1161007c578063a9059cbb14610258578063cba0e9961461026b578063dd62ed3e1461027e578063f2cc0c1814610291578063f2fde38b146102a4578063f84354f1146102b757610137565b806370a082311461020d578063715018a6146102205780638da5cb5b1461022857806395d89b411461023d578063a457c2d71461024557610137565b806323b872dd116100ff57806323b872dd146101ac5780632d838119146101bf578063313ce567146101d257806339509351146101e75780634549b039146101fa57610137565b8063053ab1821461013c57806306fdde0314610151578063095ea7b31461016f57806313114a9d1461018f57806318160ddd146101a4575b600080fd5b61014f61014a3660046114a8565b6102ca565b005b61015961038f565b6040516101669190611512565b60405180910390f35b61018261017d36600461147f565b610421565b6040516101669190611507565b61019761043f565b60405161016691906118c8565b610197610445565b6101826101ba366004611444565b610454565b6101976101cd3660046114a8565b61052a565b6101da61056d565b60405161016691906118d1565b6101826101f536600461147f565b610576565b6101976102083660046114c0565b6105c5565b61019761021b3660046113f1565b610629565b61014f61068b565b610230610714565b60405161016691906114f3565b610159610723565b61018261025336600461147f565b610732565b61018261026636600461147f565b6107d6565b6101826102793660046113f1565b6107ea565b61019761028c366004611412565b610808565b61014f61029f3660046113f1565b610833565b61014f6102b23660046113f1565b61096b565b61014f6102c53660046113f1565b610a2b565b60006102d4610c00565b6001600160a01b03811660009081526004602052604090205490915060ff16156103195760405162461bcd60e51b815260040161031090611837565b60405180910390fd5b600061032483610c04565b5050506001600160a01b03841660009081526001602052604090205491925061034f91839150611936565b6001600160a01b038316600090815260016020526040902055600654610376908290611936565b6006556007546103879084906118df565b600755505050565b60606008805461039e9061194d565b80601f01602080910402602001604051908101604052809291908181526020018280546103ca9061194d565b80156104175780601f106103ec57610100808354040283529160200191610417565b820191906000526020600020905b8154815290600101906020018083116103fa57829003601f168201915b5050505050905090565b600061043561042e610c00565b8484610c50565b5060015b92915050565b60075490565b6a52b7d2dcc80cd2e400000090565b6000610461848484610d04565b6001600160a01b038416600090815260036020526040812090610482610c00565b6001600160a01b03166001600160a01b03168152602001908152602001600020548211156104c25760405162461bcd60e51b8152600401610310906116e8565b610520846104ce610c00565b6001600160a01b038716600090815260036020526040812086916104f0610c00565b6001600160a01b03166001600160a01b031681526020019081526020016000205461051b9190611936565b610c50565b5060019392505050565b600060065482111561054e5760405162461bcd60e51b8152600401610310906115a8565b6000610558610ec9565b905061056481846118f7565b9150505b919050565b600a5460ff1690565b6000610435610583610c00565b848460036000610591610c00565b6001600160a01b03908116825260208083019390935260409182016000908120918b168152925290205461051b91906118df565b60006a52b7d2dcc80cd2e40000008311156105f25760405162461bcd60e51b8152600401610310906116b1565b8161061057600061060284610c04565b509294506104399350505050565b600061061b84610c04565b509194506104399350505050565b6001600160a01b03811660009081526004602052604081205460ff161561066957506001600160a01b038116600090815260026020526040902054610568565b6001600160a01b0382166000908152600160205260409020546104399061052a565b610693610c00565b6001600160a01b03166106a4610714565b6001600160a01b0316146106ca5760405162461bcd60e51b815260040161031090611730565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b60606009805461039e9061194d565b600060036000610740610c00565b6001600160a01b03908116825260208083019390935260409182016000908120918716815292529020548211156107895760405162461bcd60e51b815260040161031090611883565b610435610794610c00565b8484600360006107a2610c00565b6001600160a01b03908116825260208083019390935260409182016000908120918b168152925290205461051b9190611936565b60006104356107e3610c00565b8484610d04565b6001600160a01b031660009081526004602052604090205460ff1690565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61083b610c00565b6001600160a01b031661084c610714565b6001600160a01b0316146108725760405162461bcd60e51b815260040161031090611730565b6001600160a01b03811660009081526004602052604090205460ff16156108ab5760405162461bcd60e51b81526004016103109061167a565b6001600160a01b03811660009081526001602052604090205415610905576001600160a01b0381166000908152600160205260409020546108eb9061052a565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600460205260408120805460ff191660019081179091556005805491820181559091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319169091179055565b610973610c00565b6001600160a01b0316610984610714565b6001600160a01b0316146109aa5760405162461bcd60e51b815260040161031090611730565b6001600160a01b0381166109d05760405162461bcd60e51b8152600401610310906115f2565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b610a33610c00565b6001600160a01b0316610a44610714565b6001600160a01b031614610a6a5760405162461bcd60e51b815260040161031090611730565b6001600160a01b03811660009081526004602052604090205460ff16610aa25760405162461bcd60e51b81526004016103109061167a565b60005b600554811015610bfc57816001600160a01b031660058281548110610ada57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415610bea5760058054610b0590600190611936565b81548110610b2357634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600580546001600160a01b039092169183908110610b5d57634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600490925220805460ff191690556005805480610bc357634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b0319169055019055610bfc565b80610bf481611988565b915050610aa5565b5050565b3390565b6000806000806000806000610c1888610eec565b915091506000610c26610ec9565b90506000806000610c388c8686610f1f565b919e909d50909b509599509397509395505050505050565b6001600160a01b038316610c765760405162461bcd60e51b8152600401610310906117f3565b6001600160a01b038216610c9c5760405162461bcd60e51b815260040161031090611638565b6001600160a01b0380841660008181526003602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610cf79085906118c8565b60405180910390a3505050565b6001600160a01b038316610d2a5760405162461bcd60e51b8152600401610310906117ae565b6001600160a01b038216610d505760405162461bcd60e51b815260040161031090611565565b60008111610d705760405162461bcd60e51b815260040161031090611765565b6001600160a01b03831660009081526004602052604090205460ff168015610db157506001600160a01b03821660009081526004602052604090205460ff16155b15610dc657610dc1838383610f5b565b610ec4565b6001600160a01b03831660009081526004602052604090205460ff16158015610e0757506001600160a01b03821660009081526004602052604090205460ff165b15610e1757610dc1838383611075565b6001600160a01b03831660009081526004602052604090205460ff16158015610e5957506001600160a01b03821660009081526004602052604090205460ff16155b15610e6957610dc183838361111e565b6001600160a01b03831660009081526004602052604090205460ff168015610ea957506001600160a01b03821660009081526004602052604090205460ff165b15610eb957610dc1838383611160565b610ec483838361111e565b505050565b6000806000610ed66111d2565b9092509050610ee581836118f7565b9250505090565b60008080610efb6064856118f7565b610f06906002611917565b90506000610f148286611936565b935090915050915091565b6000808080610f2e8588611917565b90506000610f3c8688611917565b90506000610f4a8284611936565b929992985090965090945050505050565b6000806000806000610f6c86610c04565b6001600160a01b038d1660009081526002602052604090205494995092975090955093509150610f9d908790611936565b6001600160a01b038916600090815260026020908152604080832093909355600190522054610fcd908690611936565b6001600160a01b03808a166000908152600160205260408082209390935590891681522054610ffd9085906118df565b6001600160a01b03881660009081526001602052604090205561102083826113b4565b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161106391906118c8565b60405180910390a35050505050505050565b600080600080600061108686610c04565b6001600160a01b038d16600090815260016020526040902054949950929750909550935091506110b7908690611936565b6001600160a01b03808a16600090815260016020908152604080832094909455918a168152600290915220546110ee9083906118df565b6001600160a01b038816600090815260026020908152604080832093909355600190522054610ffd9085906118df565b600080600080600061112f86610c04565b6001600160a01b038d1660009081526001602052604090205494995092975090955093509150610fcd908690611936565b600080600080600061117186610c04565b6001600160a01b038d16600090815260026020526040902054949950929750909550935091506111a2908790611936565b6001600160a01b0389166000908152600260209081526040808320939093556001905220546110b7908690611936565b60065460009081906a52b7d2dcc80cd2e4000000825b60055481101561136f5782600160006005848154811061121857634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611291575081600260006005848154811061126a57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156112b1576006546a52b7d2dcc80cd2e4000000945094505050506113b0565b60016000600583815481106112d657634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020546113059084611936565b9250600260006005838154811061132c57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282019290925260400190205461135b9083611936565b91508061136781611988565b9150506111e8565b506a52b7d2dcc80cd2e400000060065461138991906118f7565b8210156113aa576006546a52b7d2dcc80cd2e40000009350935050506113b0565b90925090505b9091565b816006546113c29190611936565b6006556007546113d39082906118df565b6007555050565b80356001600160a01b038116811461056857600080fd5b600060208284031215611402578081fd5b61140b826113da565b9392505050565b60008060408385031215611424578081fd5b61142d836113da565b915061143b602084016113da565b90509250929050565b600080600060608486031215611458578081fd5b611461846113da565b925061146f602085016113da565b9150604084013590509250925092565b60008060408385031215611491578182fd5b61149a836113da565b946020939093013593505050565b6000602082840312156114b9578081fd5b5035919050565b600080604083850312156114d2578182fd5b82359150602083013580151581146114e8578182fd5b809150509250929050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b8181101561153e57858101830151858201604001528201611522565b8181111561154f5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252602a908201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260408201526965666c656374696f6e7360b01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604082015260600190565b6020808252601f908201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604082015260600190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252602c908201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460408201526b3434b990333ab731ba34b7b760a11b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b90815260200190565b60ff91909116815260200190565b600082198211156118f2576118f26119a3565b500190565b60008261191257634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611931576119316119a3565b500290565b600082821015611948576119486119a3565b500390565b60028104600182168061196157607f821691505b6020821081141561198257634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561199c5761199c6119a3565b5060010190565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220945dbb6d61a4b5f22381accd7a5112e52acc715d0b4efb10c8a10d89b0354a5864736f6c63430008000033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063a9059cbb1161007c578063a9059cbb14610258578063cba0e9961461026b578063dd62ed3e1461027e578063f2cc0c1814610291578063f2fde38b146102a4578063f84354f1146102b757610137565b806370a082311461020d578063715018a6146102205780638da5cb5b1461022857806395d89b411461023d578063a457c2d71461024557610137565b806323b872dd116100ff57806323b872dd146101ac5780632d838119146101bf578063313ce567146101d257806339509351146101e75780634549b039146101fa57610137565b8063053ab1821461013c57806306fdde0314610151578063095ea7b31461016f57806313114a9d1461018f57806318160ddd146101a4575b600080fd5b61014f61014a3660046114a8565b6102ca565b005b61015961038f565b6040516101669190611512565b60405180910390f35b61018261017d36600461147f565b610421565b6040516101669190611507565b61019761043f565b60405161016691906118c8565b610197610445565b6101826101ba366004611444565b610454565b6101976101cd3660046114a8565b61052a565b6101da61056d565b60405161016691906118d1565b6101826101f536600461147f565b610576565b6101976102083660046114c0565b6105c5565b61019761021b3660046113f1565b610629565b61014f61068b565b610230610714565b60405161016691906114f3565b610159610723565b61018261025336600461147f565b610732565b61018261026636600461147f565b6107d6565b6101826102793660046113f1565b6107ea565b61019761028c366004611412565b610808565b61014f61029f3660046113f1565b610833565b61014f6102b23660046113f1565b61096b565b61014f6102c53660046113f1565b610a2b565b60006102d4610c00565b6001600160a01b03811660009081526004602052604090205490915060ff16156103195760405162461bcd60e51b815260040161031090611837565b60405180910390fd5b600061032483610c04565b5050506001600160a01b03841660009081526001602052604090205491925061034f91839150611936565b6001600160a01b038316600090815260016020526040902055600654610376908290611936565b6006556007546103879084906118df565b600755505050565b60606008805461039e9061194d565b80601f01602080910402602001604051908101604052809291908181526020018280546103ca9061194d565b80156104175780601f106103ec57610100808354040283529160200191610417565b820191906000526020600020905b8154815290600101906020018083116103fa57829003601f168201915b5050505050905090565b600061043561042e610c00565b8484610c50565b5060015b92915050565b60075490565b6a52b7d2dcc80cd2e400000090565b6000610461848484610d04565b6001600160a01b038416600090815260036020526040812090610482610c00565b6001600160a01b03166001600160a01b03168152602001908152602001600020548211156104c25760405162461bcd60e51b8152600401610310906116e8565b610520846104ce610c00565b6001600160a01b038716600090815260036020526040812086916104f0610c00565b6001600160a01b03166001600160a01b031681526020019081526020016000205461051b9190611936565b610c50565b5060019392505050565b600060065482111561054e5760405162461bcd60e51b8152600401610310906115a8565b6000610558610ec9565b905061056481846118f7565b9150505b919050565b600a5460ff1690565b6000610435610583610c00565b848460036000610591610c00565b6001600160a01b03908116825260208083019390935260409182016000908120918b168152925290205461051b91906118df565b60006a52b7d2dcc80cd2e40000008311156105f25760405162461bcd60e51b8152600401610310906116b1565b8161061057600061060284610c04565b509294506104399350505050565b600061061b84610c04565b509194506104399350505050565b6001600160a01b03811660009081526004602052604081205460ff161561066957506001600160a01b038116600090815260026020526040902054610568565b6001600160a01b0382166000908152600160205260409020546104399061052a565b610693610c00565b6001600160a01b03166106a4610714565b6001600160a01b0316146106ca5760405162461bcd60e51b815260040161031090611730565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b60606009805461039e9061194d565b600060036000610740610c00565b6001600160a01b03908116825260208083019390935260409182016000908120918716815292529020548211156107895760405162461bcd60e51b815260040161031090611883565b610435610794610c00565b8484600360006107a2610c00565b6001600160a01b03908116825260208083019390935260409182016000908120918b168152925290205461051b9190611936565b60006104356107e3610c00565b8484610d04565b6001600160a01b031660009081526004602052604090205460ff1690565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61083b610c00565b6001600160a01b031661084c610714565b6001600160a01b0316146108725760405162461bcd60e51b815260040161031090611730565b6001600160a01b03811660009081526004602052604090205460ff16156108ab5760405162461bcd60e51b81526004016103109061167a565b6001600160a01b03811660009081526001602052604090205415610905576001600160a01b0381166000908152600160205260409020546108eb9061052a565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600460205260408120805460ff191660019081179091556005805491820181559091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319169091179055565b610973610c00565b6001600160a01b0316610984610714565b6001600160a01b0316146109aa5760405162461bcd60e51b815260040161031090611730565b6001600160a01b0381166109d05760405162461bcd60e51b8152600401610310906115f2565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b610a33610c00565b6001600160a01b0316610a44610714565b6001600160a01b031614610a6a5760405162461bcd60e51b815260040161031090611730565b6001600160a01b03811660009081526004602052604090205460ff16610aa25760405162461bcd60e51b81526004016103109061167a565b60005b600554811015610bfc57816001600160a01b031660058281548110610ada57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415610bea5760058054610b0590600190611936565b81548110610b2357634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600580546001600160a01b039092169183908110610b5d57634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600490925220805460ff191690556005805480610bc357634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b0319169055019055610bfc565b80610bf481611988565b915050610aa5565b5050565b3390565b6000806000806000806000610c1888610eec565b915091506000610c26610ec9565b90506000806000610c388c8686610f1f565b919e909d50909b509599509397509395505050505050565b6001600160a01b038316610c765760405162461bcd60e51b8152600401610310906117f3565b6001600160a01b038216610c9c5760405162461bcd60e51b815260040161031090611638565b6001600160a01b0380841660008181526003602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610cf79085906118c8565b60405180910390a3505050565b6001600160a01b038316610d2a5760405162461bcd60e51b8152600401610310906117ae565b6001600160a01b038216610d505760405162461bcd60e51b815260040161031090611565565b60008111610d705760405162461bcd60e51b815260040161031090611765565b6001600160a01b03831660009081526004602052604090205460ff168015610db157506001600160a01b03821660009081526004602052604090205460ff16155b15610dc657610dc1838383610f5b565b610ec4565b6001600160a01b03831660009081526004602052604090205460ff16158015610e0757506001600160a01b03821660009081526004602052604090205460ff165b15610e1757610dc1838383611075565b6001600160a01b03831660009081526004602052604090205460ff16158015610e5957506001600160a01b03821660009081526004602052604090205460ff16155b15610e6957610dc183838361111e565b6001600160a01b03831660009081526004602052604090205460ff168015610ea957506001600160a01b03821660009081526004602052604090205460ff165b15610eb957610dc1838383611160565b610ec483838361111e565b505050565b6000806000610ed66111d2565b9092509050610ee581836118f7565b9250505090565b60008080610efb6064856118f7565b610f06906002611917565b90506000610f148286611936565b935090915050915091565b6000808080610f2e8588611917565b90506000610f3c8688611917565b90506000610f4a8284611936565b929992985090965090945050505050565b6000806000806000610f6c86610c04565b6001600160a01b038d1660009081526002602052604090205494995092975090955093509150610f9d908790611936565b6001600160a01b038916600090815260026020908152604080832093909355600190522054610fcd908690611936565b6001600160a01b03808a166000908152600160205260408082209390935590891681522054610ffd9085906118df565b6001600160a01b03881660009081526001602052604090205561102083826113b4565b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161106391906118c8565b60405180910390a35050505050505050565b600080600080600061108686610c04565b6001600160a01b038d16600090815260016020526040902054949950929750909550935091506110b7908690611936565b6001600160a01b03808a16600090815260016020908152604080832094909455918a168152600290915220546110ee9083906118df565b6001600160a01b038816600090815260026020908152604080832093909355600190522054610ffd9085906118df565b600080600080600061112f86610c04565b6001600160a01b038d1660009081526001602052604090205494995092975090955093509150610fcd908690611936565b600080600080600061117186610c04565b6001600160a01b038d16600090815260026020526040902054949950929750909550935091506111a2908790611936565b6001600160a01b0389166000908152600260209081526040808320939093556001905220546110b7908690611936565b60065460009081906a52b7d2dcc80cd2e4000000825b60055481101561136f5782600160006005848154811061121857634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611291575081600260006005848154811061126a57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156112b1576006546a52b7d2dcc80cd2e4000000945094505050506113b0565b60016000600583815481106112d657634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020546113059084611936565b9250600260006005838154811061132c57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282019290925260400190205461135b9083611936565b91508061136781611988565b9150506111e8565b506a52b7d2dcc80cd2e400000060065461138991906118f7565b8210156113aa576006546a52b7d2dcc80cd2e40000009350935050506113b0565b90925090505b9091565b816006546113c29190611936565b6006556007546113d39082906118df565b6007555050565b80356001600160a01b038116811461056857600080fd5b600060208284031215611402578081fd5b61140b826113da565b9392505050565b60008060408385031215611424578081fd5b61142d836113da565b915061143b602084016113da565b90509250929050565b600080600060608486031215611458578081fd5b611461846113da565b925061146f602085016113da565b9150604084013590509250925092565b60008060408385031215611491578182fd5b61149a836113da565b946020939093013593505050565b6000602082840312156114b9578081fd5b5035919050565b600080604083850312156114d2578182fd5b82359150602083013580151581146114e8578182fd5b809150509250929050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b8181101561153e57858101830151858201604001528201611522565b8181111561154f5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252602a908201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260408201526965666c656374696f6e7360b01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604082015260600190565b6020808252601f908201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604082015260600190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252602c908201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460408201526b3434b990333ab731ba34b7b760a11b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b90815260200190565b60ff91909116815260200190565b600082198211156118f2576118f26119a3565b500190565b60008261191257634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611931576119316119a3565b500290565b600082821015611948576119486119a3565b500390565b60028104600182168061196157607f821691505b6020821081141561198257634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561199c5761199c6119a3565b5060010190565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220945dbb6d61a4b5f22381accd7a5112e52acc715d0b4efb10c8a10d89b0354a5864736f6c63430008000033

Deployed Bytecode Sourcemap

5359:10211:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8437:367;;;;;;:::i;:::-;;:::i;:::-;;6160:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7099:161;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8336:87::-;;;:::i;:::-;;;;;;;:::i;6464:95::-;;;:::i;7268:372::-;;;;;;:::i;:::-;;:::i;9254:252::-;;;;;;:::i;:::-;;:::i;6364:92::-;;;:::i;:::-;;;;;;;:::i;7648:215::-;;;;;;:::i;:::-;;:::i;8812:434::-;;;;;;:::i;:::-;;:::i;6567:198::-;;;;;;:::i;:::-;;:::i;4805:148::-;;;:::i;4154:87::-;;;:::i;:::-;;;;;;;:::i;6260:96::-;;;:::i;7871:339::-;;;;;;:::i;:::-;;:::i;6773:167::-;;;;;;:::i;:::-;;:::i;8218:110::-;;;;;;:::i;:::-;;:::i;6948:143::-;;;;;;:::i;:::-;;:::i;9514:332::-;;;;;;:::i;:::-;;:::i;5108:244::-;;;;;;:::i;:::-;;:::i;9854:478::-;;;;;;:::i;:::-;;:::i;8437:367::-;8489:14;8506:12;:10;:12::i;:::-;-1:-1:-1;;;;;8538:19:0;;;;;;:11;:19;;;;;;8489:29;;-1:-1:-1;8538:19:0;;8537:20;8529:77;;;;-1:-1:-1;;;8529:77:0;;;;;;;:::i;:::-;;;;;;;;;8618:15;8641:19;8652:7;8641:10;:19::i;:::-;-1:-1:-1;;;;;;;;8689:15:0;;;;;;:7;:15;;;;;;8617:43;;-1:-1:-1;8689:25:0;;8617:43;;-1:-1:-1;8689:25:0;:::i;:::-;-1:-1:-1;;;;;8671:15:0;;;;;;:7;:15;;;;;:43;8735:7;;:17;;8745:7;;8735:17;:::i;:::-;8725:7;:27;8776:10;;:20;;8789:7;;8776:20;:::i;:::-;8763:10;:33;-1:-1:-1;;;8437:367:0:o;6160:92::-;6206:13;6239:5;6232:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6160:92;:::o;7099:161::-;7174:4;7191:39;7200:12;:10;:12::i;:::-;7214:7;7223:6;7191:8;:39::i;:::-;-1:-1:-1;7248:4:0;7099:161;;;;;:::o;8336:87::-;8405:10;;8336:87;:::o;6464:95::-;5784:28;6464:95;:::o;7268:372::-;7366:4;7383:36;7393:6;7401:9;7412:6;7383:9;:36::i;:::-;-1:-1:-1;;;;;7448:19:0;;;;;;:11;:19;;;;;;7468:12;:10;:12::i;:::-;-1:-1:-1;;;;;7448:33:0;-1:-1:-1;;;;;7448:33:0;;;;;;;;;;;;;7438:6;:43;;7430:96;;;;-1:-1:-1;;;7430:96:0;;;;;;;:::i;:::-;7537:73;7546:6;7554:12;:10;:12::i;:::-;-1:-1:-1;;;;;7568:19:0;;;;;;:11;:19;;;;;7603:6;;7588:12;:10;:12::i;:::-;-1:-1:-1;;;;;7568:33:0;-1:-1:-1;;;;;7568:33:0;;;;;;;;;;;;;:41;;;;:::i;:::-;7537:8;:73::i;:::-;-1:-1:-1;7628:4:0;7268:372;;;;;:::o;9254:252::-;9320:7;9359;;9348;:18;;9340:73;;;;-1:-1:-1;;;9340:73:0;;;;;;;:::i;:::-;9424:19;9447:10;:8;:10::i;:::-;9424:33;-1:-1:-1;9476:21:0;9424:33;9476:7;:21;:::i;:::-;9468:30;;;9254:252;;;;:::o;6364:92::-;6439:9;;;;6364:92;:::o;7648:215::-;7736:4;7753:80;7762:12;:10;:12::i;:::-;7776:7;7822:10;7785:11;:25;7797:12;:10;:12::i;:::-;-1:-1:-1;;;;;7785:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;7785:25:0;;;:34;;;;;;;;;;:47;;;;:::i;8812:434::-;8902:7;5784:28;8930:7;:18;;8922:62;;;;-1:-1:-1;;;8922:62:0;;;;;;;:::i;:::-;9000:17;8995:244;;9035:15;9058:19;9069:7;9058:10;:19::i;:::-;-1:-1:-1;9034:43:0;;-1:-1:-1;9092:14:0;;-1:-1:-1;;;;9092:14:0;8995:244;9141:23;9171:19;9182:7;9171:10;:19::i;:::-;-1:-1:-1;9139:51:0;;-1:-1:-1;9205:22:0;;-1:-1:-1;;;;9205:22:0;6567:198;-1:-1:-1;;;;;6657:20:0;;6633:7;6657:20;;;:11;:20;;;;;;;;6653:49;;;-1:-1:-1;;;;;;6686:16:0;;;;;;:7;:16;;;;;;6679:23;;6653:49;-1:-1:-1;;;;;6740:16:0;;;;;;:7;:16;;;;;;6720:37;;:19;:37::i;4805:148::-;4385:12;:10;:12::i;:::-;-1:-1:-1;;;;;4374:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4374:23:0;;4366:68;;;;-1:-1:-1;;;4366:68:0;;;;;;;:::i;:::-;4912:1:::1;4896:6:::0;;4875:40:::1;::::0;-1:-1:-1;;;;;4896:6:0;;::::1;::::0;4875:40:::1;::::0;4912:1;;4875:40:::1;4943:1;4926:19:::0;;-1:-1:-1;;;;;;4926:19:0::1;::::0;;4805:148::o;4154:87::-;4200:7;4227:6;-1:-1:-1;;;;;4227:6:0;4154:87;:::o;6260:96::-;6308:13;6341:7;6334:14;;;;;:::i;7871:339::-;7964:4;8008:11;:25;8020:12;:10;:12::i;:::-;-1:-1:-1;;;;;8008:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;8008:25:0;;;:34;;;;;;;;;;7989:53;;;7981:103;;;;-1:-1:-1;;;7981:103:0;;;;;;;:::i;:::-;8095:85;8104:12;:10;:12::i;:::-;8118:7;8164:15;8127:11;:25;8139:12;:10;:12::i;:::-;-1:-1:-1;;;;;8127:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;8127:25:0;;;:34;;;;;;;;;;:52;;;;:::i;6773:167::-;6851:4;6868:42;6878:12;:10;:12::i;:::-;6892:9;6903:6;6868:9;:42::i;8218:110::-;-1:-1:-1;;;;;8300:20:0;8276:4;8300:20;;;:11;:20;;;;;;;;;8218:110::o;6948:143::-;-1:-1:-1;;;;;7056:18:0;;;7029:7;7056:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6948:143::o;9514:332::-;4385:12;:10;:12::i;:::-;-1:-1:-1;;;;;4374:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4374:23:0;;4366:68;;;;-1:-1:-1;;;4366:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9596:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;9595:21;9587:61;;;;-1:-1:-1::0;;;9587:61:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9662:16:0;::::1;9681:1;9662:16:::0;;;:7:::1;:16;::::0;;;;;:20;9659:108:::1;;-1:-1:-1::0;;;;;9738:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;9718:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;9699:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;9659:108:::1;-1:-1:-1::0;;;;;9777:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;9777:27:0::1;9800:4;9777:27:::0;;::::1;::::0;;;9815:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;9815:23:0::1;::::0;;::::1;::::0;;9514:332::o;5108:244::-;4385:12;:10;:12::i;:::-;-1:-1:-1;;;;;4374:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4374:23:0;;4366:68;;;;-1:-1:-1;;;4366:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5197:22:0;::::1;5189:73;;;;-1:-1:-1::0;;;5189:73:0::1;;;;;;;:::i;:::-;5299:6;::::0;;5278:38:::1;::::0;-1:-1:-1;;;;;5278:38:0;;::::1;::::0;5299:6;::::1;::::0;5278:38:::1;::::0;::::1;5327:6;:17:::0;;-1:-1:-1;;;;;;5327:17:0::1;-1:-1:-1::0;;;;;5327:17:0;;;::::1;::::0;;;::::1;::::0;;5108:244::o;9854:478::-;4385:12;:10;:12::i;:::-;-1:-1:-1;;;;;4374:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4374:23:0;;4366:68;;;;-1:-1:-1;;;4366:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9935:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;9927:60;;;;-1:-1:-1::0;;;9927:60:0::1;;;;;;;:::i;:::-;10003:9;9998:327;10022:9;:16:::0;10018:20;::::1;9998:327;;;10080:7;-1:-1:-1::0;;;;;10064:23:0::1;:9;10074:1;10064:12;;;;;;-1:-1:-1::0;;;10064:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;10064:12:0::1;:23;10060:254;;;10123:9;10133:16:::0;;:20:::1;::::0;10152:1:::1;::::0;10133:20:::1;:::i;:::-;10123:31;;;;;;-1:-1:-1::0;;;10123:31:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;10108:9:::1;:12:::0;;-1:-1:-1;;;;;10123:31:0;;::::1;::::0;10118:1;;10108:12;::::1;;;-1:-1:-1::0;;;10108:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;10108:46:0::1;-1:-1:-1::0;;;;;10108:46:0;;::::1;;::::0;;10173:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;10212:11:::1;:20:::0;;;;:28;;-1:-1:-1;;10212:28:0::1;::::0;;10259:9:::1;:15:::0;;;::::1;;-1:-1:-1::0;;;10259:15:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;10259:15:0;;;;;-1:-1:-1;;;;;;10259:15:0::1;::::0;;;;;10293:5:::1;;10060:254;10040:3:::0;::::1;::::0;::::1;:::i;:::-;;;;9998:327;;;;9854:478:::0;:::o;242:98::-;322:10;242:98;:::o;13858:411::-;13917:7;13926;13935;13944;13953;13974:23;13999:12;14015:20;14027:7;14015:11;:20::i;:::-;13973:62;;;;14046:19;14069:10;:8;:10::i;:::-;14046:33;;14091:15;14108:23;14133:12;14149:39;14161:7;14170:4;14176:11;14149;:39::i;:::-;14090:98;;;;-1:-1:-1;14090:98:0;;-1:-1:-1;14239:15:0;;-1:-1:-1;14256:4:0;;-1:-1:-1;13858:411:0;;-1:-1:-1;;;;;;13858:411:0:o;10340:337::-;-1:-1:-1;;;;;10433:19:0;;10425:68;;;;-1:-1:-1;;;10425:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10512:21:0;;10504:68;;;;-1:-1:-1;;;10504:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10585:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;10637:32;;;;;10615:6;;10637:32;:::i;:::-;;;;;;;;10340:337;;;:::o;10685:945::-;-1:-1:-1;;;;;10782:20:0;;10774:70;;;;-1:-1:-1;;;10774:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10863:23:0;;10855:71;;;;-1:-1:-1;;;10855:71:0;;;;;;;:::i;:::-;10954:1;10945:6;:10;10937:64;;;;-1:-1:-1;;;10937:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11030:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;11054:22:0;;;;;;:11;:22;;;;;;;;11053:23;11030:46;11026:597;;;11093:48;11115:6;11123:9;11134:6;11093:21;:48::i;:::-;11026:597;;;-1:-1:-1;;;;;11164:19:0;;;;;;:11;:19;;;;;;;;11163:20;:46;;;;-1:-1:-1;;;;;;11187:22:0;;;;;;:11;:22;;;;;;;;11163:46;11159:464;;;11226:46;11246:6;11254:9;11265:6;11226:19;:46::i;11159:464::-;-1:-1:-1;;;;;11295:19:0;;;;;;:11;:19;;;;;;;;11294:20;:47;;;;-1:-1:-1;;;;;;11319:22:0;;;;;;:11;:22;;;;;;;;11318:23;11294:47;11290:333;;;11358:44;11376:6;11384:9;11395:6;11358:17;:44::i;11290:333::-;-1:-1:-1;;;;;11424:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;11447:22:0;;;;;;:11;:22;;;;;;;;11424:45;11420:203;;;11486:48;11508:6;11516:9;11527:6;11486:21;:48::i;11420:203::-;11567:44;11585:6;11593:9;11604:6;11567:17;:44::i;:::-;10685:945;;;:::o;14843:162::-;14884:7;14905:15;14922;14941:19;:17;:19::i;:::-;14904:56;;-1:-1:-1;14904:56:0;-1:-1:-1;14979:17:0;14904:56;;14979:17;:::i;:::-;14971:26;;;;14843:162;:::o;14277:225::-;14337:7;;;14383:13;14393:3;14383:7;:13;:::i;:::-;14382:19;;14400:1;14382:19;:::i;:::-;14366:36;-1:-1:-1;14413:23:0;14439:14;14366:36;14439:7;:14;:::i;:::-;14413:40;-1:-1:-1;14489:4:0;;-1:-1:-1;;14277:225:0;;;:::o;14510:325::-;14605:7;;;;14661:21;14671:11;14661:7;:21;:::i;:::-;14643:39;-1:-1:-1;14693:12:0;14708:18;14715:11;14708:4;:18;:::i;:::-;14693:33;-1:-1:-1;14737:23:0;14763:14;14693:33;14763:7;:14;:::i;:::-;14796:7;;;;-1:-1:-1;14822:4:0;;-1:-1:-1;14510:325:0;;-1:-1:-1;;;;;14510:325:0:o;12620:500::-;12723:15;12740:23;12765:12;12779:23;12804:12;12820:19;12831:7;12820:10;:19::i;:::-;-1:-1:-1;;;;;12868:15:0;;;;;;:7;:15;;;;;;12722:117;;-1:-1:-1;12722:117:0;;-1:-1:-1;12722:117:0;;-1:-1:-1;12722:117:0;-1:-1:-1;12722:117:0;-1:-1:-1;12868:25:0;;12886:7;;12868:25;:::i;:::-;-1:-1:-1;;;;;12850:15:0;;;;;;:7;:15;;;;;;;;:43;;;;12922:7;:15;;;;:25;;12940:7;;12922:25;:::i;:::-;-1:-1:-1;;;;;12904:15:0;;;;;;;:7;:15;;;;;;:43;;;;12979:18;;;;;;;:36;;13000:15;;12979:36;:::i;:::-;-1:-1:-1;;;;;12958:18:0;;;;;;:7;:18;;;;;:57;13029:23;13041:4;13047;13029:11;:23::i;:::-;13085:9;-1:-1:-1;;;;;13068:44:0;13077:6;-1:-1:-1;;;;;13068:44:0;;13096:15;13068:44;;;;;;:::i;:::-;;;;;;;;12620:500;;;;;;;;:::o;12092:520::-;12193:15;12210:23;12235:12;12249:23;12274:12;12290:19;12301:7;12290:10;:19::i;:::-;-1:-1:-1;;;;;12338:15:0;;;;;;:7;:15;;;;;;12192:117;;-1:-1:-1;12192:117:0;;-1:-1:-1;12192:117:0;;-1:-1:-1;12192:117:0;-1:-1:-1;12192:117:0;-1:-1:-1;12338:25:0;;12192:117;;12338:25;:::i;:::-;-1:-1:-1;;;;;12320:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;12395:18;;;;;:7;:18;;;;;:36;;12416:15;;12395:36;:::i;:::-;-1:-1:-1;;;;;12374:18:0;;;;;;:7;:18;;;;;;;;:57;;;;12463:7;:18;;;;:36;;12484:15;;12463:36;:::i;11638:446::-;11737:15;11754:23;11779:12;11793:23;11818:12;11834:19;11845:7;11834:10;:19::i;:::-;-1:-1:-1;;;;;11882:15:0;;;;;;:7;:15;;;;;;11736:117;;-1:-1:-1;11736:117:0;;-1:-1:-1;11736:117:0;;-1:-1:-1;11736:117:0;-1:-1:-1;11736:117:0;-1:-1:-1;11882:25:0;;11736:117;;11882:25;:::i;13128:573::-;13231:15;13248:23;13273:12;13287:23;13312:12;13328:19;13339:7;13328:10;:19::i;:::-;-1:-1:-1;;;;;13376:15:0;;;;;;:7;:15;;;;;;13230:117;;-1:-1:-1;13230:117:0;;-1:-1:-1;13230:117:0;;-1:-1:-1;13230:117:0;-1:-1:-1;13230:117:0;-1:-1:-1;13376:25:0;;13394:7;;13376:25;:::i;:::-;-1:-1:-1;;;;;13358:15:0;;;;;;:7;:15;;;;;;;;:43;;;;13430:7;:15;;;;:25;;13448:7;;13430:25;:::i;15013:554::-;15110:7;;15063;;;;5784:28;15063:7;15170:283;15194:9;:16;15190:20;;15170:283;;;15260:7;15236;:21;15244:9;15254:1;15244:12;;;;;;-1:-1:-1;;;15244:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15244:12:0;15236:21;;;;;;;;;;;;;:31;;:66;;;15295:7;15271;:21;15279:9;15289:1;15279:12;;;;;;-1:-1:-1;;;15279:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15279:12:0;15271:21;;;;;;;;;;;;;:31;15236:66;15232:97;;;15312:7;;5784:28;15304:25;;;;;;;;;15232:97;15364:7;:21;15372:9;15382:1;15372:12;;;;;;-1:-1:-1;;;15372:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15372:12:0;15364:21;;;;;;;;;;;;;15354:31;;:7;:31;:::i;:::-;15344:41;;15420:7;:21;15428:9;15438:1;15428:12;;;;;;-1:-1:-1;;;15428:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15428:12:0;15420:21;;;;;;;;;;;;;15410:31;;:7;:31;:::i;:::-;15400:41;-1:-1:-1;15212:3:0;;;;:::i;:::-;;;;15170:283;;;;5784:28;15478:7;;:17;;;;:::i;:::-;15467:7;:29;15463:60;;;15506:7;;5784:28;15498:25;;;;;;;;15463:60;15542:7;;-1:-1:-1;15551:7:0;-1:-1:-1;15013:554:0;;;:::o;13709:141::-;13797:4;13787:7;;:14;;;;:::i;:::-;13777:7;:24;13825:10;;:17;;13838:4;;13825:17;:::i;:::-;13812:10;:30;-1:-1:-1;;13709:141:0:o;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;194:198;;306:2;294:9;285:7;281:23;277:32;274:2;;;327:6;319;312:22;274:2;355:31;376:9;355:31;:::i;:::-;345:41;264:128;-1:-1:-1;;;264:128:1:o;397:274::-;;;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;575:31;596:9;575:31;:::i;:::-;565:41;;625:40;661:2;650:9;646:18;625:40;:::i;:::-;615:50;;484:187;;;;;:::o;676:342::-;;;;822:2;810:9;801:7;797:23;793:32;790:2;;;843:6;835;828:22;790:2;871:31;892:9;871:31;:::i;:::-;861:41;;921:40;957:2;946:9;942:18;921:40;:::i;:::-;911:50;;1008:2;997:9;993:18;980:32;970:42;;780:238;;;;;:::o;1023:266::-;;;1152:2;1140:9;1131:7;1127:23;1123:32;1120:2;;;1173:6;1165;1158:22;1120:2;1201:31;1222:9;1201:31;:::i;:::-;1191:41;1279:2;1264:18;;;;1251:32;;-1:-1:-1;;;1110:179:1:o;1294:190::-;;1406:2;1394:9;1385:7;1381:23;1377:32;1374:2;;;1427:6;1419;1412:22;1374:2;-1:-1:-1;1455:23:1;;1364:120;-1:-1:-1;1364:120:1:o;1489:361::-;;;1615:2;1603:9;1594:7;1590:23;1586:32;1583:2;;;1636:6;1628;1621:22;1583:2;1677:9;1664:23;1654:33;;1737:2;1726:9;1722:18;1709:32;1784:5;1777:13;1770:21;1763:5;1760:32;1750:2;;1811:6;1803;1796:22;1750:2;1839:5;1829:15;;;1573:277;;;;;:::o;1855:203::-;-1:-1:-1;;;;;2019:32:1;;;;2001:51;;1989:2;1974:18;;1956:102::o;2063:187::-;2228:14;;2221:22;2203:41;;2191:2;2176:18;;2158:92::o;2255:603::-;;2396:2;2425;2414:9;2407:21;2457:6;2451:13;2500:6;2495:2;2484:9;2480:18;2473:34;2525:4;2538:140;2552:6;2549:1;2546:13;2538:140;;;2647:14;;;2643:23;;2637:30;2613:17;;;2632:2;2609:26;2602:66;2567:10;;2538:140;;;2696:6;2693:1;2690:13;2687:2;;;2766:4;2761:2;2752:6;2741:9;2737:22;2733:31;2726:45;2687:2;-1:-1:-1;2842:2:1;2821:15;-1:-1:-1;;2817:29:1;2802:45;;;;2849:2;2798:54;;2376:482;-1:-1:-1;;;2376:482:1:o;2863:399::-;3065:2;3047:21;;;3104:2;3084:18;;;3077:30;3143:34;3138:2;3123:18;;3116:62;-1:-1:-1;;;3209:2:1;3194:18;;3187:33;3252:3;3237:19;;3037:225::o;3267:406::-;3469:2;3451:21;;;3508:2;3488:18;;;3481:30;3547:34;3542:2;3527:18;;3520:62;-1:-1:-1;;;3613:2:1;3598:18;;3591:40;3663:3;3648:19;;3441:232::o;3678:402::-;3880:2;3862:21;;;3919:2;3899:18;;;3892:30;3958:34;3953:2;3938:18;;3931:62;-1:-1:-1;;;4024:2:1;4009:18;;4002:36;4070:3;4055:19;;3852:228::o;4085:398::-;4287:2;4269:21;;;4326:2;4306:18;;;4299:30;4365:34;4360:2;4345:18;;4338:62;-1:-1:-1;;;4431:2:1;4416:18;;4409:32;4473:3;4458:19;;4259:224::o;4488:351::-;4690:2;4672:21;;;4729:2;4709:18;;;4702:30;4768:29;4763:2;4748:18;;4741:57;4830:2;4815:18;;4662:177::o;4844:355::-;5046:2;5028:21;;;5085:2;5065:18;;;5058:30;5124:33;5119:2;5104:18;;5097:61;5190:2;5175:18;;5018:181::o;5204:404::-;5406:2;5388:21;;;5445:2;5425:18;;;5418:30;5484:34;5479:2;5464:18;;5457:62;-1:-1:-1;;;5550:2:1;5535:18;;5528:38;5598:3;5583:19;;5378:230::o;5613:356::-;5815:2;5797:21;;;5834:18;;;5827:30;5893:34;5888:2;5873:18;;5866:62;5960:2;5945:18;;5787:182::o;5974:405::-;6176:2;6158:21;;;6215:2;6195:18;;;6188:30;6254:34;6249:2;6234:18;;6227:62;-1:-1:-1;;;6320:2:1;6305:18;;6298:39;6369:3;6354:19;;6148:231::o;6384:401::-;6586:2;6568:21;;;6625:2;6605:18;;;6598:30;6664:34;6659:2;6644:18;;6637:62;-1:-1:-1;;;6730:2:1;6715:18;;6708:35;6775:3;6760:19;;6558:227::o;6790:400::-;6992:2;6974:21;;;7031:2;7011:18;;;7004:30;7070:34;7065:2;7050:18;;7043:62;-1:-1:-1;;;7136:2:1;7121:18;;7114:34;7180:3;7165:19;;6964:226::o;7195:408::-;7397:2;7379:21;;;7436:2;7416:18;;;7409:30;7475:34;7470:2;7455:18;;7448:62;-1:-1:-1;;;7541:2:1;7526:18;;7519:42;7593:3;7578:19;;7369:234::o;7608:401::-;7810:2;7792:21;;;7849:2;7829:18;;;7822:30;7888:34;7883:2;7868:18;;7861:62;-1:-1:-1;;;7954:2:1;7939:18;;7932:35;7999:3;7984:19;;7782:227::o;8014:177::-;8160:25;;;8148:2;8133:18;;8115:76::o;8196:184::-;8368:4;8356:17;;;;8338:36;;8326:2;8311:18;;8293:87::o;8385:128::-;;8456:1;8452:6;8449:1;8446:13;8443:2;;;8462:18;;:::i;:::-;-1:-1:-1;8498:9:1;;8433:80::o;8518:217::-;;8584:1;8574:2;;-1:-1:-1;;;8609:31:1;;8663:4;8660:1;8653:15;8691:4;8616:1;8681:15;8574:2;-1:-1:-1;8720:9:1;;8564:171::o;8740:168::-;;8846:1;8842;8838:6;8834:14;8831:1;8828:21;8823:1;8816:9;8809:17;8805:45;8802:2;;;8853:18;;:::i;:::-;-1:-1:-1;8893:9:1;;8792:116::o;8913:125::-;;8981:1;8978;8975:8;8972:2;;;8986:18;;:::i;:::-;-1:-1:-1;9023:9:1;;8962:76::o;9043:380::-;9128:1;9118:12;;9175:1;9165:12;;;9186:2;;9240:4;9232:6;9228:17;9218:27;;9186:2;9293;9285:6;9282:14;9262:18;9259:38;9256:2;;;9339:10;9334:3;9330:20;9327:1;9320:31;9374:4;9371:1;9364:15;9402:4;9399:1;9392:15;9256:2;;9098:325;;;:::o;9428:135::-;;-1:-1:-1;;9488:17:1;;9485:2;;;9508:18;;:::i;:::-;-1:-1:-1;9555:1:1;9544:13;;9475:88::o;9568:127::-;9629:10;9624:3;9620:20;9617:1;9610:31;9660:4;9657:1;9650:15;9684:4;9681:1;9674:15

Swarm Source

ipfs://945dbb6d61a4b5f22381accd7a5112e52acc715d0b4efb10c8a10d89b0354a58
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.