Token StarkMeta Token

 

Overview [ERC-20]

Max Total Supply:
2,000,000,000 SMETA

Holders:
304

Transfers:
-

 
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SMETA

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-27
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;



/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

/**
 * @dev Interface of the ERC20 standard as defined in the EIP. Does not include
 * the optional functions; to access them see {ERC20Detailed}.
 */
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);
}

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
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);
}

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin guidelines: functions revert instead
 * of returning `false` on failure. This behavior is nonetheless conventional
 * and does not conflict with the expectations of ERC20 applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    bool public tokenLocked = false;
    mapping (address => bool) public RestrictedAddress;
   

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
        
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     * 
     */
     
     
     
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
          require(tokenLocked == false, 'token locked' );
          require( RestrictedAddress[msg.sender] != true,  'msg.sender restricted from transfers');
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
          require(tokenLocked == false, 'token locked');
             require( RestrictedAddress[sender] != true,  'sender restricted from transfers');
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

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

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}

contract SMETA is ERC20 {
    address owner;
    string Name = "StarkMeta Token";
    string Symbol = "SMETA";

    constructor() ERC20(Name, Symbol) {
        owner = msg.sender;
        uint256 initialSupply = 2000000000 * 10**18;
        _mint(owner, initialSupply);
    }

    modifier onlyOwner() {
        require(owner == msg.sender, "caller is not admin");
        _;
    }

    function BeginTokenLock() external onlyOwner {
        tokenLocked = true;
    }

    function EndTokenLock() external onlyOwner {
        tokenLocked = false;
    }

    function RestrictAddress(address _addressToBeRestricted) public onlyOwner {
        RestrictedAddress[_addressToBeRestricted] = true;
    }

    function UnrestrictAddress(address _addressToBeUnrestricted)
        public
        onlyOwner
    {
        RestrictedAddress[_addressToBeUnrestricted] = false;
    }

    function setNewOwner(address _owner) external onlyOwner {
        owner = _owner;
    }

    function mint(address recipient, uint256 amount) external onlyOwner {
        require(tokenLocked == false, "token locked");
        _mint(recipient, amount);
    }

    function burn(address recipient, uint256 amount) external onlyOwner {
        require(tokenLocked == false, "token locked");
        _burn(recipient, amount);
    }
}

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":"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":"BeginTokenLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"EndTokenLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addressToBeRestricted","type":"address"}],"name":"RestrictAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"RestrictedAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addressToBeUnrestricted","type":"address"}],"name":"UnrestrictAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","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":"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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"setNewOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"}]

60806040526000600560006101000a81548160ff0219169083151502179055506040518060400160405280600f81526020017f537461726b4d65746120546f6b656e0000000000000000000000000000000000815250600890805190602001906200006c9291906200041a565b506040518060400160405280600581526020017f534d45544100000000000000000000000000000000000000000000000000000081525060099080519060200190620000ba9291906200041a565b50348015620000c857600080fd5b5060088054620000d890620005b9565b80601f01602080910402602001604051908101604052809291908181526020018280546200010690620005b9565b8015620001575780601f106200012b5761010080835404028352916020019162000157565b820191906000526020600020905b8154815290600101906020018083116200013957829003601f168201915b5050505050600980546200016b90620005b9565b80601f01602080910402602001604051908101604052809291908181526020018280546200019990620005b9565b8015620001ea5780601f10620001be57610100808354040283529160200191620001ea565b820191906000526020600020905b815481529060010190602001808311620001cc57829003601f168201915b50505050508160039080519060200190620002079291906200041a565b508060049080519060200190620002209291906200041a565b50505033600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006b06765c793fa10079d00000009050620002a9600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682620002b060201b60201c565b5062000676565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000323576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200031a9062000502565b60405180910390fd5b62000337600083836200041560201b60201c565b80600260008282546200034b919062000552565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620003a2919062000552565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000409919062000524565b60405180910390a35050565b505050565b8280546200042890620005b9565b90600052602060002090601f0160209004810192826200044c576000855562000498565b82601f106200046757805160ff191683800117855562000498565b8280016001018555821562000498579182015b82811115620004975782518255916020019190600101906200047a565b5b509050620004a79190620004ab565b5090565b5b80821115620004c6576000816000905550600101620004ac565b5090565b6000620004d9601f8362000541565b9150620004e6826200064d565b602082019050919050565b620004fc81620005af565b82525050565b600060208201905081810360008301526200051d81620004ca565b9050919050565b60006020820190506200053b6000830184620004f1565b92915050565b600082825260208201905092915050565b60006200055f82620005af565b91506200056c83620005af565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620005a457620005a3620005ef565b5b828201905092915050565b6000819050919050565b60006002820490506001821680620005d257607f821691505b60208210811415620005e957620005e86200061e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6123d980620006866000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063726ba784116100ad578063a8cad0dc11610071578063a8cad0dc14610333578063a9059cbb1461034f578063dd62ed3e1461037f578063f5a1f5b4146103af578063fe1f29ea146103cb5761012c565b8063726ba7841461028f57806395d89b41146102bf5780639b706715146102dd5780639dc29fac146102e7578063a457c2d7146103035761012c565b806339509351116100f457806339509351146101eb57806340c10f191461021b57806349e38acd146102375780636a6305591461024157806370a082311461025f5761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d578063313ce567146101cd575b600080fd5b6101396103e7565b6040516101469190611bcf565b60405180910390f35b61016960048036038101906101649190611924565b610479565b6040516101769190611bb4565b60405180910390f35b610187610497565b6040516101949190611db1565b60405180910390f35b6101b760048036038101906101b291906118d1565b6104a1565b6040516101c49190611bb4565b60405180910390f35b6101d561068b565b6040516101e29190611dcc565b60405180910390f35b61020560048036038101906102009190611924565b610694565b6040516102129190611bb4565b60405180910390f35b61023560048036038101906102309190611924565b610740565b005b61023f610834565b005b6102496108e1565b6040516102569190611bb4565b60405180910390f35b61027960048036038101906102749190611864565b6108f4565b6040516102869190611db1565b60405180910390f35b6102a960048036038101906102a49190611864565b61093c565b6040516102b69190611bb4565b60405180910390f35b6102c761095c565b6040516102d49190611bcf565b60405180910390f35b6102e56109ee565b005b61030160048036038101906102fc9190611924565b610a9b565b005b61031d60048036038101906103189190611924565b610b8f565b60405161032a9190611bb4565b60405180910390f35b61034d60048036038101906103489190611864565b610c83565b005b61036960048036038101906103649190611924565b610d6e565b6040516103769190611bb4565b60405180910390f35b61039960048036038101906103949190611891565b610e75565b6040516103a69190611db1565b60405180910390f35b6103c960048036038101906103c49190611864565b610efc565b005b6103e560048036038101906103e09190611864565b610fd0565b005b6060600380546103f690611f15565b80601f016020809104026020016040519081016040528092919081815260200182805461042290611f15565b801561046f5780601f106104445761010080835404028352916020019161046f565b820191906000526020600020905b81548152906001019060200180831161045257829003601f168201915b5050505050905090565b600061048d6104866110bb565b84846110c3565b6001905092915050565b6000600254905090565b6000801515600560009054906101000a900460ff161515146104f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ef90611c51565b60405180910390fd5b60011515600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561058c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058390611cd1565b60405180910390fd5b61059784848461128e565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105e26110bb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610662576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065990611cf1565b60405180910390fd5b61067f8561066e6110bb565b858461067a9190611e59565b6110c3565b60019150509392505050565b60006012905090565b60006107366106a16110bb565b8484600160006106af6110bb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107319190611e03565b6110c3565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c790611bf1565b60405180910390fd5b60001515600560009054906101000a900460ff16151514610826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081d90611c51565b60405180910390fd5b610830828261150d565b5050565b3373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bb90611bf1565b60405180910390fd5b6001600560006101000a81548160ff021916908315150217905550565b600560009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60066020528060005260406000206000915054906101000a900460ff1681565b60606004805461096b90611f15565b80601f016020809104026020016040519081016040528092919081815260200182805461099790611f15565b80156109e45780601f106109b9576101008083540402835291602001916109e4565b820191906000526020600020905b8154815290600101906020018083116109c757829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7590611bf1565b60405180910390fd5b6000600560006101000a81548160ff021916908315150217905550565b3373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2290611bf1565b60405180910390fd5b60001515600560009054906101000a900460ff16151514610b81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7890611c51565b60405180910390fd5b610b8b8282611661565b5050565b60008060016000610b9e6110bb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5290611d71565b60405180910390fd5b610c78610c666110bb565b858584610c739190611e59565b6110c3565b600191505092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0a90611bf1565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000801515600560009054906101000a900460ff16151514610dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbc90611c51565b60405180910390fd5b60011515600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5090611c91565b60405180910390fd5b610e6b610e646110bb565b848461128e565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8390611bf1565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611060576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105790611bf1565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112a90611d51565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119a90611c71565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112819190611db1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f590611d31565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561136e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136590611c11565b60405180910390fd5b611379838383611835565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156113ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f690611cb1565b60405180910390fd5b818161140b9190611e59565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461149b9190611e03565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114ff9190611db1565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561157d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157490611d91565b60405180910390fd5b61158960008383611835565b806002600082825461159b9190611e03565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115f09190611e03565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116559190611db1565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c890611d11565b60405180910390fd5b6116dd82600083611835565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175a90611c31565b60405180910390fd5b818161176f9190611e59565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546117c39190611e59565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118289190611db1565b60405180910390a3505050565b505050565b60008135905061184981612375565b92915050565b60008135905061185e8161238c565b92915050565b60006020828403121561187a57611879611fa5565b5b60006118888482850161183a565b91505092915050565b600080604083850312156118a8576118a7611fa5565b5b60006118b68582860161183a565b92505060206118c78582860161183a565b9150509250929050565b6000806000606084860312156118ea576118e9611fa5565b5b60006118f88682870161183a565b93505060206119098682870161183a565b925050604061191a8682870161184f565b9150509250925092565b6000806040838503121561193b5761193a611fa5565b5b60006119498582860161183a565b925050602061195a8582860161184f565b9150509250929050565b61196d81611e9f565b82525050565b600061197e82611de7565b6119888185611df2565b9350611998818560208601611ee2565b6119a181611faa565b840191505092915050565b60006119b9601383611df2565b91506119c482611fbb565b602082019050919050565b60006119dc602383611df2565b91506119e782611fe4565b604082019050919050565b60006119ff602283611df2565b9150611a0a82612033565b604082019050919050565b6000611a22600c83611df2565b9150611a2d82612082565b602082019050919050565b6000611a45602283611df2565b9150611a50826120ab565b604082019050919050565b6000611a68602483611df2565b9150611a73826120fa565b604082019050919050565b6000611a8b602683611df2565b9150611a9682612149565b604082019050919050565b6000611aae602083611df2565b9150611ab982612198565b602082019050919050565b6000611ad1602883611df2565b9150611adc826121c1565b604082019050919050565b6000611af4602183611df2565b9150611aff82612210565b604082019050919050565b6000611b17602583611df2565b9150611b228261225f565b604082019050919050565b6000611b3a602483611df2565b9150611b45826122ae565b604082019050919050565b6000611b5d602583611df2565b9150611b68826122fd565b604082019050919050565b6000611b80601f83611df2565b9150611b8b8261234c565b602082019050919050565b611b9f81611ecb565b82525050565b611bae81611ed5565b82525050565b6000602082019050611bc96000830184611964565b92915050565b60006020820190508181036000830152611be98184611973565b905092915050565b60006020820190508181036000830152611c0a816119ac565b9050919050565b60006020820190508181036000830152611c2a816119cf565b9050919050565b60006020820190508181036000830152611c4a816119f2565b9050919050565b60006020820190508181036000830152611c6a81611a15565b9050919050565b60006020820190508181036000830152611c8a81611a38565b9050919050565b60006020820190508181036000830152611caa81611a5b565b9050919050565b60006020820190508181036000830152611cca81611a7e565b9050919050565b60006020820190508181036000830152611cea81611aa1565b9050919050565b60006020820190508181036000830152611d0a81611ac4565b9050919050565b60006020820190508181036000830152611d2a81611ae7565b9050919050565b60006020820190508181036000830152611d4a81611b0a565b9050919050565b60006020820190508181036000830152611d6a81611b2d565b9050919050565b60006020820190508181036000830152611d8a81611b50565b9050919050565b60006020820190508181036000830152611daa81611b73565b9050919050565b6000602082019050611dc66000830184611b96565b92915050565b6000602082019050611de16000830184611ba5565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611e0e82611ecb565b9150611e1983611ecb565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611e4e57611e4d611f47565b5b828201905092915050565b6000611e6482611ecb565b9150611e6f83611ecb565b925082821015611e8257611e81611f47565b5b828203905092915050565b6000611e9882611eab565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611f00578082015181840152602081019050611ee5565b83811115611f0f576000848401525b50505050565b60006002820490506001821680611f2d57607f821691505b60208210811415611f4157611f40611f76565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f63616c6c6572206973206e6f742061646d696e00000000000000000000000000600082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f746f6b656e206c6f636b65640000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f6d73672e73656e64657220726573747269637465642066726f6d207472616e7360008201527f6665727300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f73656e64657220726573747269637465642066726f6d207472616e7366657273600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b61237e81611e8d565b811461238957600080fd5b50565b61239581611ecb565b81146123a057600080fd5b5056fea2646970667358221220b19dbc734d9d50ac8c218a1d497d09aab58a2eeeeffef33ac4d573e19cc0d76664736f6c63430008070033

Deployed ByteCode Sourcemap

15502:1352:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6382:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8739:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7502:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9390:576;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7344:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10375:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16509:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15905:82;;;:::i;:::-;;5771:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7673:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5809:50;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6601:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15995:81;;;:::i;:::-;;16684:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11093:377;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16233:171;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8043:335;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8441:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16412:89;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16084:141;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6382:100;6436:13;6469:5;6462:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6382:100;:::o;8739:169::-;8822:4;8839:39;8848:12;:10;:12::i;:::-;8862:7;8871:6;8839:8;:39::i;:::-;8896:4;8889:11;;8739:169;;;;:::o;7502:108::-;7563:7;7590:12;;7583:19;;7502:108;:::o;9390:576::-;9496:4;9538:5;9523:20;;:11;;;;;;;;;;;:20;;;9515:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;9614:4;9585:33;;:17;:25;9603:6;9585:25;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;9576:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;9667:36;9677:6;9685:9;9696:6;9667:9;:36::i;:::-;9716:24;9743:11;:19;9755:6;9743:19;;;;;;;;;;;;;;;:33;9763:12;:10;:12::i;:::-;9743:33;;;;;;;;;;;;;;;;9716:60;;9815:6;9795:16;:26;;9787:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9877:57;9886:6;9894:12;:10;:12::i;:::-;9927:6;9908:16;:25;;;;:::i;:::-;9877:8;:57::i;:::-;9954:4;9947:11;;;9390:576;;;;;:::o;7344:93::-;7402:5;7427:2;7420:9;;7344:93;:::o;10375:215::-;10463:4;10480:80;10489:12;:10;:12::i;:::-;10503:7;10549:10;10512:11;:25;10524:12;:10;:12::i;:::-;10512:25;;;;;;;;;;;;;;;:34;10538:7;10512:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;10480:8;:80::i;:::-;10578:4;10571:11;;10375:215;;;;:::o;16509:167::-;15843:10;15834:19;;:5;;;;;;;;;;;:19;;;15826:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;16611:5:::1;16596:20;;:11;;;;;;;;;;;:20;;;16588:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;16644:24;16650:9;16661:6;16644:5;:24::i;:::-;16509:167:::0;;:::o;15905:82::-;15843:10;15834:19;;:5;;;;;;;;;;;:19;;;15826:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;15975:4:::1;15961:11;;:18;;;;;;;;;;;;;;;;;;15905:82::o:0;5771:31::-;;;;;;;;;;;;;:::o;7673:127::-;7747:7;7774:9;:18;7784:7;7774:18;;;;;;;;;;;;;;;;7767:25;;7673:127;;;:::o;5809:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;6601:104::-;6657:13;6690:7;6683:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6601:104;:::o;15995:81::-;15843:10;15834:19;;:5;;;;;;;;;;;:19;;;15826:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;16063:5:::1;16049:11;;:19;;;;;;;;;;;;;;;;;;15995:81::o:0;16684:167::-;15843:10;15834:19;;:5;;;;;;;;;;;:19;;;15826:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;16786:5:::1;16771:20;;:11;;;;;;;;;;;:20;;;16763:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;16819:24;16825:9;16836:6;16819:5;:24::i;:::-;16684:167:::0;;:::o;11093:377::-;11186:4;11203:24;11230:11;:25;11242:12;:10;:12::i;:::-;11230:25;;;;;;;;;;;;;;;:34;11256:7;11230:34;;;;;;;;;;;;;;;;11203:61;;11303:15;11283:16;:35;;11275:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11371:67;11380:12;:10;:12::i;:::-;11394:7;11422:15;11403:16;:34;;;;:::i;:::-;11371:8;:67::i;:::-;11458:4;11451:11;;;11093:377;;;;:::o;16233:171::-;15843:10;15834:19;;:5;;;;;;;;;;;:19;;;15826:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;16391:5:::1;16345:17;:43;16363:24;16345:43;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;16233:171:::0;:::o;8043:335::-;8129:4;8171:5;8156:20;;:11;;;;;;;;;;;:20;;;8148:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;8249:4;8216:37;;:17;:29;8234:10;8216:29;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;;8207:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;8306:42;8316:12;:10;:12::i;:::-;8330:9;8341:6;8306:9;:42::i;:::-;8366:4;8359:11;;8043:335;;;;:::o;8441:151::-;8530:7;8557:11;:18;8569:5;8557:18;;;;;;;;;;;;;;;:27;8576:7;8557:27;;;;;;;;;;;;;;;;8550:34;;8441:151;;;;:::o;16412:89::-;15843:10;15834:19;;:5;;;;;;;;;;;:19;;;15826:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;16487:6:::1;16479:5;;:14;;;;;;;;;;;;;;;;;;16412:89:::0;:::o;16084:141::-;15843:10;15834:19;;:5;;;;;;;;;;;:19;;;15826:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;16213:4:::1;16169:17;:41;16187:22;16169:41;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;16084:141:::0;:::o;607:98::-;660:7;687:10;680:17;;607:98;:::o;14454:346::-;14573:1;14556:19;;:5;:19;;;;14548:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14654:1;14635:21;;:7;:21;;;;14627:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14738:6;14708:11;:18;14720:5;14708:18;;;;;;;;;;;;;;;:27;14727:7;14708:27;;;;;;;;;;;;;;;:36;;;;14776:7;14760:32;;14769:5;14760:32;;;14785:6;14760:32;;;;;;:::i;:::-;;;;;;;;14454:346;;;:::o;11960:604::-;12084:1;12066:20;;:6;:20;;;;12058:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12168:1;12147:23;;:9;:23;;;;12139:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12223:47;12244:6;12252:9;12263:6;12223:20;:47::i;:::-;12283:21;12307:9;:17;12317:6;12307:17;;;;;;;;;;;;;;;;12283:41;;12360:6;12343:13;:23;;12335:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12456:6;12440:13;:22;;;;:::i;:::-;12420:9;:17;12430:6;12420:17;;;;;;;;;;;;;;;:42;;;;12497:6;12473:9;:20;12483:9;12473:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;12538:9;12521:35;;12530:6;12521:35;;;12549:6;12521:35;;;;;;:::i;:::-;;;;;;;;12047:517;11960:604;;;:::o;12851:338::-;12954:1;12935:21;;:7;:21;;;;12927:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13005:49;13034:1;13038:7;13047:6;13005:20;:49::i;:::-;13083:6;13067:12;;:22;;;;;;;:::i;:::-;;;;;;;;13122:6;13100:9;:18;13110:7;13100:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;13165:7;13144:37;;13161:1;13144:37;;;13174:6;13144:37;;;;;;:::i;:::-;;;;;;;;12851:338;;:::o;13522:494::-;13625:1;13606:21;;:7;:21;;;;13598:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13678:49;13699:7;13716:1;13720:6;13678:20;:49::i;:::-;13740:22;13765:9;:18;13775:7;13765:18;;;;;;;;;;;;;;;;13740:43;;13820:6;13802:14;:24;;13794:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13914:6;13897:14;:23;;;;:::i;:::-;13876:9;:18;13886:7;13876:18;;;;;;;;;;;;;;;:44;;;;13947:6;13931:12;;:22;;;;;;;:::i;:::-;;;;;;;;13997:1;13971:37;;13980:7;13971:37;;;14001:6;13971:37;;;;;;:::i;:::-;;;;;;;;13587:429;13522:494;;:::o;15403:92::-;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:::-;198:5;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;152:139;;;;:::o;297:329::-;356:6;405:2;393:9;384:7;380:23;376:32;373:119;;;411:79;;:::i;:::-;373:119;531:1;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;502:117;297:329;;;;:::o;632:474::-;700:6;708;757:2;745:9;736:7;732:23;728:32;725:119;;;763:79;;:::i;:::-;725:119;883:1;908:53;953:7;944:6;933:9;929:22;908:53;:::i;:::-;898:63;;854:117;1010:2;1036:53;1081:7;1072:6;1061:9;1057:22;1036:53;:::i;:::-;1026:63;;981:118;632:474;;;;;:::o;1112:619::-;1189:6;1197;1205;1254:2;1242:9;1233:7;1229:23;1225:32;1222:119;;;1260:79;;:::i;:::-;1222:119;1380:1;1405:53;1450:7;1441:6;1430:9;1426:22;1405:53;:::i;:::-;1395:63;;1351:117;1507:2;1533:53;1578:7;1569:6;1558:9;1554:22;1533:53;:::i;:::-;1523:63;;1478:118;1635:2;1661:53;1706:7;1697:6;1686:9;1682:22;1661:53;:::i;:::-;1651:63;;1606:118;1112:619;;;;;:::o;1737:474::-;1805:6;1813;1862:2;1850:9;1841:7;1837:23;1833:32;1830:119;;;1868:79;;:::i;:::-;1830:119;1988:1;2013:53;2058:7;2049:6;2038:9;2034:22;2013:53;:::i;:::-;2003:63;;1959:117;2115:2;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2086:118;1737:474;;;;;:::o;2217:109::-;2298:21;2313:5;2298:21;:::i;:::-;2293:3;2286:34;2217:109;;:::o;2332:364::-;2420:3;2448:39;2481:5;2448:39;:::i;:::-;2503:71;2567:6;2562:3;2503:71;:::i;:::-;2496:78;;2583:52;2628:6;2623:3;2616:4;2609:5;2605:16;2583:52;:::i;:::-;2660:29;2682:6;2660:29;:::i;:::-;2655:3;2651:39;2644:46;;2424:272;2332:364;;;;:::o;2702:366::-;2844:3;2865:67;2929:2;2924:3;2865:67;:::i;:::-;2858:74;;2941:93;3030:3;2941:93;:::i;:::-;3059:2;3054:3;3050:12;3043:19;;2702:366;;;:::o;3074:::-;3216:3;3237:67;3301:2;3296:3;3237:67;:::i;:::-;3230:74;;3313:93;3402:3;3313:93;:::i;:::-;3431:2;3426:3;3422:12;3415:19;;3074:366;;;:::o;3446:::-;3588:3;3609:67;3673:2;3668:3;3609:67;:::i;:::-;3602:74;;3685:93;3774:3;3685:93;:::i;:::-;3803:2;3798:3;3794:12;3787:19;;3446:366;;;:::o;3818:::-;3960:3;3981:67;4045:2;4040:3;3981:67;:::i;:::-;3974:74;;4057:93;4146:3;4057:93;:::i;:::-;4175:2;4170:3;4166:12;4159:19;;3818:366;;;:::o;4190:::-;4332:3;4353:67;4417:2;4412:3;4353:67;:::i;:::-;4346:74;;4429:93;4518:3;4429:93;:::i;:::-;4547:2;4542:3;4538:12;4531:19;;4190:366;;;:::o;4562:::-;4704:3;4725:67;4789:2;4784:3;4725:67;:::i;:::-;4718:74;;4801:93;4890:3;4801:93;:::i;:::-;4919:2;4914:3;4910:12;4903:19;;4562:366;;;:::o;4934:::-;5076:3;5097:67;5161:2;5156:3;5097:67;:::i;:::-;5090:74;;5173:93;5262:3;5173:93;:::i;:::-;5291:2;5286:3;5282:12;5275:19;;4934:366;;;:::o;5306:::-;5448:3;5469:67;5533:2;5528:3;5469:67;:::i;:::-;5462:74;;5545:93;5634:3;5545:93;:::i;:::-;5663:2;5658:3;5654:12;5647:19;;5306:366;;;:::o;5678:::-;5820:3;5841:67;5905:2;5900:3;5841:67;:::i;:::-;5834:74;;5917:93;6006:3;5917:93;:::i;:::-;6035:2;6030:3;6026:12;6019:19;;5678:366;;;:::o;6050:::-;6192:3;6213:67;6277:2;6272:3;6213:67;:::i;:::-;6206:74;;6289:93;6378:3;6289:93;:::i;:::-;6407:2;6402:3;6398:12;6391:19;;6050:366;;;:::o;6422:::-;6564:3;6585:67;6649:2;6644:3;6585:67;:::i;:::-;6578:74;;6661:93;6750:3;6661:93;:::i;:::-;6779:2;6774:3;6770:12;6763:19;;6422:366;;;:::o;6794:::-;6936:3;6957:67;7021:2;7016:3;6957:67;:::i;:::-;6950:74;;7033:93;7122:3;7033:93;:::i;:::-;7151:2;7146:3;7142:12;7135:19;;6794:366;;;:::o;7166:::-;7308:3;7329:67;7393:2;7388:3;7329:67;:::i;:::-;7322:74;;7405:93;7494:3;7405:93;:::i;:::-;7523:2;7518:3;7514:12;7507:19;;7166:366;;;:::o;7538:::-;7680:3;7701:67;7765:2;7760:3;7701:67;:::i;:::-;7694:74;;7777:93;7866:3;7777:93;:::i;:::-;7895:2;7890:3;7886:12;7879:19;;7538:366;;;:::o;7910:118::-;7997:24;8015:5;7997:24;:::i;:::-;7992:3;7985:37;7910:118;;:::o;8034:112::-;8117:22;8133:5;8117:22;:::i;:::-;8112:3;8105:35;8034:112;;:::o;8152:210::-;8239:4;8277:2;8266:9;8262:18;8254:26;;8290:65;8352:1;8341:9;8337:17;8328:6;8290:65;:::i;:::-;8152:210;;;;:::o;8368:313::-;8481:4;8519:2;8508:9;8504:18;8496:26;;8568:9;8562:4;8558:20;8554:1;8543:9;8539:17;8532:47;8596:78;8669:4;8660:6;8596:78;:::i;:::-;8588:86;;8368:313;;;;:::o;8687:419::-;8853:4;8891:2;8880:9;8876:18;8868:26;;8940:9;8934:4;8930:20;8926:1;8915:9;8911:17;8904:47;8968:131;9094:4;8968:131;:::i;:::-;8960:139;;8687:419;;;:::o;9112:::-;9278:4;9316:2;9305:9;9301:18;9293:26;;9365:9;9359:4;9355:20;9351:1;9340:9;9336:17;9329:47;9393:131;9519:4;9393:131;:::i;:::-;9385:139;;9112:419;;;:::o;9537:::-;9703:4;9741:2;9730:9;9726:18;9718:26;;9790:9;9784:4;9780:20;9776:1;9765:9;9761:17;9754:47;9818:131;9944:4;9818:131;:::i;:::-;9810:139;;9537:419;;;:::o;9962:::-;10128:4;10166:2;10155:9;10151:18;10143:26;;10215:9;10209:4;10205:20;10201:1;10190:9;10186:17;10179:47;10243:131;10369:4;10243:131;:::i;:::-;10235:139;;9962:419;;;:::o;10387:::-;10553:4;10591:2;10580:9;10576:18;10568:26;;10640:9;10634:4;10630:20;10626:1;10615:9;10611:17;10604:47;10668:131;10794:4;10668:131;:::i;:::-;10660:139;;10387:419;;;:::o;10812:::-;10978:4;11016:2;11005:9;11001:18;10993:26;;11065:9;11059:4;11055:20;11051:1;11040:9;11036:17;11029:47;11093:131;11219:4;11093:131;:::i;:::-;11085:139;;10812:419;;;:::o;11237:::-;11403:4;11441:2;11430:9;11426:18;11418:26;;11490:9;11484:4;11480:20;11476:1;11465:9;11461:17;11454:47;11518:131;11644:4;11518:131;:::i;:::-;11510:139;;11237:419;;;:::o;11662:::-;11828:4;11866:2;11855:9;11851:18;11843:26;;11915:9;11909:4;11905:20;11901:1;11890:9;11886:17;11879:47;11943:131;12069:4;11943:131;:::i;:::-;11935:139;;11662:419;;;:::o;12087:::-;12253:4;12291:2;12280:9;12276:18;12268:26;;12340:9;12334:4;12330:20;12326:1;12315:9;12311:17;12304:47;12368:131;12494:4;12368:131;:::i;:::-;12360:139;;12087:419;;;:::o;12512:::-;12678:4;12716:2;12705:9;12701:18;12693:26;;12765:9;12759:4;12755:20;12751:1;12740:9;12736:17;12729:47;12793:131;12919:4;12793:131;:::i;:::-;12785:139;;12512:419;;;:::o;12937:::-;13103:4;13141:2;13130:9;13126:18;13118:26;;13190:9;13184:4;13180:20;13176:1;13165:9;13161:17;13154:47;13218:131;13344:4;13218:131;:::i;:::-;13210:139;;12937:419;;;:::o;13362:::-;13528:4;13566:2;13555:9;13551:18;13543:26;;13615:9;13609:4;13605:20;13601:1;13590:9;13586:17;13579:47;13643:131;13769:4;13643:131;:::i;:::-;13635:139;;13362:419;;;:::o;13787:::-;13953:4;13991:2;13980:9;13976:18;13968:26;;14040:9;14034:4;14030:20;14026:1;14015:9;14011:17;14004:47;14068:131;14194:4;14068:131;:::i;:::-;14060:139;;13787:419;;;:::o;14212:::-;14378:4;14416:2;14405:9;14401:18;14393:26;;14465:9;14459:4;14455:20;14451:1;14440:9;14436:17;14429:47;14493:131;14619:4;14493:131;:::i;:::-;14485:139;;14212:419;;;:::o;14637:222::-;14730:4;14768:2;14757:9;14753:18;14745:26;;14781:71;14849:1;14838:9;14834:17;14825:6;14781:71;:::i;:::-;14637:222;;;;:::o;14865:214::-;14954:4;14992:2;14981:9;14977:18;14969:26;;15005:67;15069:1;15058:9;15054:17;15045:6;15005:67;:::i;:::-;14865:214;;;;:::o;15166:99::-;15218:6;15252:5;15246:12;15236:22;;15166:99;;;:::o;15271:169::-;15355:11;15389:6;15384:3;15377:19;15429:4;15424:3;15420:14;15405:29;;15271:169;;;;:::o;15446:305::-;15486:3;15505:20;15523:1;15505:20;:::i;:::-;15500:25;;15539:20;15557:1;15539:20;:::i;:::-;15534:25;;15693:1;15625:66;15621:74;15618:1;15615:81;15612:107;;;15699:18;;:::i;:::-;15612:107;15743:1;15740;15736:9;15729:16;;15446:305;;;;:::o;15757:191::-;15797:4;15817:20;15835:1;15817:20;:::i;:::-;15812:25;;15851:20;15869:1;15851:20;:::i;:::-;15846:25;;15890:1;15887;15884:8;15881:34;;;15895:18;;:::i;:::-;15881:34;15940:1;15937;15933:9;15925:17;;15757:191;;;;:::o;15954:96::-;15991:7;16020:24;16038:5;16020:24;:::i;:::-;16009:35;;15954:96;;;:::o;16056:90::-;16090:7;16133:5;16126:13;16119:21;16108:32;;16056:90;;;:::o;16152:126::-;16189:7;16229:42;16222:5;16218:54;16207:65;;16152:126;;;:::o;16284:77::-;16321:7;16350:5;16339:16;;16284:77;;;:::o;16367:86::-;16402:7;16442:4;16435:5;16431:16;16420:27;;16367:86;;;:::o;16459:307::-;16527:1;16537:113;16551:6;16548:1;16545:13;16537:113;;;16636:1;16631:3;16627:11;16621:18;16617:1;16612:3;16608:11;16601:39;16573:2;16570:1;16566:10;16561:15;;16537:113;;;16668:6;16665:1;16662:13;16659:101;;;16748:1;16739:6;16734:3;16730:16;16723:27;16659:101;16508:258;16459:307;;;:::o;16772:320::-;16816:6;16853:1;16847:4;16843:12;16833:22;;16900:1;16894:4;16890:12;16921:18;16911:81;;16977:4;16969:6;16965:17;16955:27;;16911:81;17039:2;17031:6;17028:14;17008:18;17005:38;17002:84;;;17058:18;;:::i;:::-;17002:84;16823:269;16772:320;;;:::o;17098:180::-;17146:77;17143:1;17136:88;17243:4;17240:1;17233:15;17267:4;17264:1;17257:15;17284:180;17332:77;17329:1;17322:88;17429:4;17426:1;17419:15;17453:4;17450:1;17443:15;17593:117;17702:1;17699;17692:12;17716:102;17757:6;17808:2;17804:7;17799:2;17792:5;17788:14;17784:28;17774:38;;17716:102;;;:::o;17824:169::-;17964:21;17960:1;17952:6;17948:14;17941:45;17824:169;:::o;17999:222::-;18139:34;18135:1;18127:6;18123:14;18116:58;18208:5;18203:2;18195:6;18191:15;18184:30;17999:222;:::o;18227:221::-;18367:34;18363:1;18355:6;18351:14;18344:58;18436:4;18431:2;18423:6;18419:15;18412:29;18227:221;:::o;18454:162::-;18594:14;18590:1;18582:6;18578:14;18571:38;18454:162;:::o;18622:221::-;18762:34;18758:1;18750:6;18746:14;18739:58;18831:4;18826:2;18818:6;18814:15;18807:29;18622:221;:::o;18849:223::-;18989:34;18985:1;18977:6;18973:14;18966:58;19058:6;19053:2;19045:6;19041:15;19034:31;18849:223;:::o;19078:225::-;19218:34;19214:1;19206:6;19202:14;19195:58;19287:8;19282:2;19274:6;19270:15;19263:33;19078:225;:::o;19309:182::-;19449:34;19445:1;19437:6;19433:14;19426:58;19309:182;:::o;19497:227::-;19637:34;19633:1;19625:6;19621:14;19614:58;19706:10;19701:2;19693:6;19689:15;19682:35;19497:227;:::o;19730:220::-;19870:34;19866:1;19858:6;19854:14;19847:58;19939:3;19934:2;19926:6;19922:15;19915:28;19730:220;:::o;19956:224::-;20096:34;20092:1;20084:6;20080:14;20073:58;20165:7;20160:2;20152:6;20148:15;20141:32;19956:224;:::o;20186:223::-;20326:34;20322:1;20314:6;20310:14;20303:58;20395:6;20390:2;20382:6;20378:15;20371:31;20186:223;:::o;20415:224::-;20555:34;20551:1;20543:6;20539:14;20532:58;20624:7;20619:2;20611:6;20607:15;20600:32;20415:224;:::o;20645:181::-;20785:33;20781:1;20773:6;20769:14;20762:57;20645:181;:::o;20832:122::-;20905:24;20923:5;20905:24;:::i;:::-;20898:5;20895:35;20885:63;;20944:1;20941;20934:12;20885:63;20832:122;:::o;20960:::-;21033:24;21051:5;21033:24;:::i;:::-;21026:5;21023:35;21013:63;;21072:1;21069;21062:12;21013:63;20960:122;:::o

Swarm Source

ipfs://b19dbc734d9d50ac8c218a1d497d09aab58a2eeeeffef33ac4d573e19cc0d766

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.