ETH Price: $3,746.47 (-0.42%)
Gas: 7 Gwei

Token

UBi (UBN)
 

Overview

Max Total Supply

699,997,631.71602822 UBN

Holders

29 (0.00%)

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

A Web3 social networking platform is bringing more opportunities to the world. UBi gives users more functionality than traditional social media platforms.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
UBiOnline

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-12
*/

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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 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 `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, 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 `from` to `to` 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 from, address to, uint256 amount) external returns (bool);
}
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

/**
 * @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);
}

// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

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 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 calldata) {
        return msg.data;
    }
}
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
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() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(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");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}
// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;

/**
 * @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.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * The default value of {decimals} is 18. To change this, you should override
 * this function so it returns a different value.
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead 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;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * 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 default value returned by this function, unless
     * it's 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:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, 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}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, 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}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, 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) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, 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) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * This 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:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, 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;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(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");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

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

        _afterTokenTransfer(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 Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - 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 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 {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been 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 _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}


contract BlackList is Ownable{
    mapping(address=>bool) _blacklisted;

    function addBlackList(address _add) public onlyOwner {
        require(!_blacklisted[_add], "Already Blacklisted");
        _blacklisted[_add] = true;
    }
    
    function removeBlackList(address _add) public onlyOwner {
        require(_blacklisted[_add], "Already Whitelisted");
        _blacklisted[_add] = false;
    }
    
}

contract UBiOnline is ERC20, Ownable, BlackList {

    uint256 public constant one_year = 31536000;   // in seconds
    uint256 public burnFee = 50;    // 0.50%
    uint256 private burnRate = 10;  // 0.10%
    uint256 private feeUpdatetime = 1699660800;     // 11/11/2023 in seconds
    mapping(address => bool) private _isExcludedFromBurnFee;

    constructor() BlackList() ERC20("UBi","UBN") {
        _isExcludedFromBurnFee[msg.sender] = true;
        _mint(msg.sender,   700 * 10**6 * 10**18);
    }

    function updateBurnFee() public onlyOwner {
        require(block.timestamp > feeUpdatetime && burnFee > 0, "Can not Update");
        feeUpdatetime = block.timestamp + one_year;
        burnFee -= (burnFee*burnRate)/100;
    }

    function setExcludedAddress(address _address, bool _status) public onlyOwner {
        _isExcludedFromBurnFee[_address] = _status;
    }

    function setBurnRate(uint256 _rate) public onlyOwner {
        burnRate = _rate;
    }

    function transfer(address to, uint256 amount) public virtual override(ERC20) returns (bool) {
        address owner = _msgSender();
        (uint256 amt, uint256 burnAmt) = calcBurn(owner, to, amount);
        if(burnAmt > 0)
            _burn(owner, burnAmt);
        return super.transfer(to, amt);
    }

    function transferFrom(address from, address to, uint256 amount) public virtual override(ERC20) returns (bool) {
        (uint256 amt, uint256 burnAmt) = calcBurn(from, to, amount);
        if(burnAmt > 0)
            _burn(from, burnAmt);
        return super.transferFrom(from, to, amt);
    }


    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual override (ERC20){
        require(!_blacklisted[from], "From address BlackListed");
        require(!_blacklisted[to], "To address BlackListed");
        super._beforeTokenTransfer(from, to, amount);
    }

    function calcBurn(address from, address to, uint256 amount) public view returns(uint256, uint256) {
        if (_isExcludedFromBurnFee[from] || _isExcludedFromBurnFee[to]) {
            return (amount, 0);
        }
        uint256 burnAmount = (amount * burnFee) / 10000;
        burnAmount = burnAmount >= 100 ether ? 100 ether : burnAmount;
        amount = amount - burnAmount;
        return (amount, burnAmount);
    }
}

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":"_add","type":"address"}],"name":"addBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"calcBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"one_year","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_add","type":"address"}],"name":"removeBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"setBurnRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setExcludedAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updateBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526032600755600a60085563654ec4006009553480156200002357600080fd5b506040518060400160405280600381526020017f55426900000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f55424e00000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000a8929190620004e3565b508060049080519060200190620000c1929190620004e3565b505050620000e4620000d86200016060201b60201c565b6200016860201b60201c565b6001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200015a336b024306c4097859c43c0000006200022e60201b60201c565b62000823565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620002a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200029890620005f4565b60405180910390fd5b620002b5600083836200039c60201b60201c565b8060026000828254620002c991906200064f565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200037c9190620006bd565b60405180910390a36200039860008383620004d960201b60201c565b5050565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156200042c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000423906200072a565b60405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615620004bc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004b3906200079c565b60405180910390fd5b620004d4838383620004de60201b62000c771760201c565b505050565b505050565b505050565b828054620004f190620007ed565b90600052602060002090601f01602090048101928262000515576000855562000561565b82601f106200053057805160ff191683800117855562000561565b8280016001018555821562000561579182015b828111156200056057825182559160200191906001019062000543565b5b50905062000570919062000574565b5090565b5b808211156200058f57600081600090555060010162000575565b5090565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620005dc601f8362000593565b9150620005e982620005a4565b602082019050919050565b600060208201905081810360008301526200060f81620005cd565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200065c8262000616565b9150620006698362000616565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620006a157620006a062000620565b5b828201905092915050565b620006b78162000616565b82525050565b6000602082019050620006d46000830184620006ac565b92915050565b7f46726f6d206164647265737320426c61636b4c69737465640000000000000000600082015250565b60006200071260188362000593565b91506200071f82620006da565b602082019050919050565b60006020820190508181036000830152620007458162000703565b9050919050565b7f546f206164647265737320426c61636b4c697374656400000000000000000000600082015250565b60006200078460168362000593565b915062000791826200074c565b602082019050919050565b60006020820190508181036000830152620007b78162000775565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200080657607f821691505b602082108114156200081d576200081c620007be565b5b50919050565b6123dd80620008336000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80637dafe2ba116100b8578063dd62ed3e1161007c578063dd62ed3e1461037a578063e4997dc5146103aa578063f196782c146103c6578063f2fde38b146103e2578063fb9ac8f7146103fe578063fce589d81461041c57610142565b80637dafe2ba146102ad5780638da5cb5b146102de57806395d89b41146102fc578063a457c2d71461031a578063a9059cbb1461034a57610142565b8063189d165e1161010a578063189d165e146101d957806323b872dd146101f5578063313ce56714610225578063395093511461024357806370a0823114610273578063715018a6146102a357610142565b8063051c89911461014757806306fdde0314610151578063095ea7b31461016f5780630ecb93c01461019f57806318160ddd146101bb575b600080fd5b61014f61043a565b005b6101596104e0565b604051610166919061167f565b60405180910390f35b6101896004803603810190610184919061173a565b610572565b6040516101969190611795565b60405180910390f35b6101b960048036038101906101b491906117b0565b610595565b005b6101c3610685565b6040516101d091906117ec565b60405180910390f35b6101f360048036038101906101ee9190611807565b61068f565b005b61020f600480360381019061020a9190611834565b6106a1565b60405161021c9190611795565b60405180910390f35b61022d6106df565b60405161023a91906118a3565b60405180910390f35b61025d6004803603810190610258919061173a565b6106e8565b60405161026a9190611795565b60405180910390f35b61028d600480360381019061028891906117b0565b61071f565b60405161029a91906117ec565b60405180910390f35b6102ab610767565b005b6102c760048036038101906102c29190611834565b61077b565b6040516102d59291906118be565b60405180910390f35b6102e6610891565b6040516102f391906118f6565b60405180910390f35b6103046108bb565b604051610311919061167f565b60405180910390f35b610334600480360381019061032f919061173a565b61094d565b6040516103419190611795565b60405180910390f35b610364600480360381019061035f919061173a565b6109c4565b6040516103719190611795565b60405180910390f35b610394600480360381019061038f9190611911565b610a0c565b6040516103a191906117ec565b60405180910390f35b6103c460048036038101906103bf91906117b0565b610a93565b005b6103e060048036038101906103db919061197d565b610b82565b005b6103fc60048036038101906103f791906117b0565b610be5565b005b610406610c69565b60405161041391906117ec565b60405180910390f35b610424610c71565b60405161043191906117ec565b60405180910390f35b610442610c7c565b6009544211801561045557506000600754115b610494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048b90611a09565b60405180910390fd5b6301e13380426104a49190611a58565b60098190555060646008546007546104bc9190611aae565b6104c69190611b37565b600760008282546104d79190611b68565b92505081905550565b6060600380546104ef90611bcb565b80601f016020809104026020016040519081016040528092919081815260200182805461051b90611bcb565b80156105685780601f1061053d57610100808354040283529160200191610568565b820191906000526020600020905b81548152906001019060200180831161054b57829003601f168201915b5050505050905090565b60008061057d610cfa565b905061058a818585610d02565b600191505092915050565b61059d610c7c565b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561062a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062190611c49565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600254905090565b610697610c7c565b8060088190555050565b60008060006106b186868661077b565b9150915060008111156106c9576106c88682610ecd565b5b6106d486868461109b565b925050509392505050565b60006012905090565b6000806106f3610cfa565b90506107148185856107058589610a0c565b61070f9190611a58565b610d02565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61076f610c7c565b61077960006110ca565b565b600080600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061081f5750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156108305782600091509150610889565b6000612710600754856108439190611aae565b61084d9190611b37565b905068056bc75e2d631000008110156108665780610871565b68056bc75e2d631000005b9050808461087f9190611b68565b9350838192509250505b935093915050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546108ca90611bcb565b80601f01602080910402602001604051908101604052809291908181526020018280546108f690611bcb565b80156109435780601f1061091857610100808354040283529160200191610943565b820191906000526020600020905b81548152906001019060200180831161092657829003601f168201915b5050505050905090565b600080610958610cfa565b905060006109668286610a0c565b9050838110156109ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a290611cdb565b60405180910390fd5b6109b88286868403610d02565b60019250505092915050565b6000806109cf610cfa565b90506000806109df83878761077b565b9150915060008111156109f7576109f68382610ecd565b5b610a018683611190565b935050505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610a9b610c7c565b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1e90611d47565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b8a610c7c565b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610bed610c7c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5490611dd9565b60405180910390fd5b610c66816110ca565b50565b6301e1338081565b60075481565b505050565b610c84610cfa565b73ffffffffffffffffffffffffffffffffffffffff16610ca2610891565b73ffffffffffffffffffffffffffffffffffffffff1614610cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cef90611e45565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6990611ed7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610de2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd990611f69565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ec091906117ec565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3490611ffb565b60405180910390fd5b610f49826000836111b3565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc69061208d565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161108291906117ec565b60405180910390a3611096836000846112dd565b505050565b6000806110a6610cfa565b90506110b38582856112e2565b6110be85858561136e565b60019150509392505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008061119b610cfa565b90506111a881858561136e565b600191505092915050565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611240576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611237906120f9565b60405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c490612165565b60405180910390fd5b6112d8838383610c77565b505050565b505050565b60006112ee8484610a0c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611368578181101561135a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611351906121d1565b60405180910390fd5b6113678484848403610d02565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d590612263565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561144e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611445906122f5565b60405180910390fd5b6114598383836111b3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156114df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d690612387565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115cd91906117ec565b60405180910390a36115e08484846112dd565b50505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611620578082015181840152602081019050611605565b8381111561162f576000848401525b50505050565b6000601f19601f8301169050919050565b6000611651826115e6565b61165b81856115f1565b935061166b818560208601611602565b61167481611635565b840191505092915050565b600060208201905081810360008301526116998184611646565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116d1826116a6565b9050919050565b6116e1816116c6565b81146116ec57600080fd5b50565b6000813590506116fe816116d8565b92915050565b6000819050919050565b61171781611704565b811461172257600080fd5b50565b6000813590506117348161170e565b92915050565b60008060408385031215611751576117506116a1565b5b600061175f858286016116ef565b925050602061177085828601611725565b9150509250929050565b60008115159050919050565b61178f8161177a565b82525050565b60006020820190506117aa6000830184611786565b92915050565b6000602082840312156117c6576117c56116a1565b5b60006117d4848285016116ef565b91505092915050565b6117e681611704565b82525050565b600060208201905061180160008301846117dd565b92915050565b60006020828403121561181d5761181c6116a1565b5b600061182b84828501611725565b91505092915050565b60008060006060848603121561184d5761184c6116a1565b5b600061185b868287016116ef565b935050602061186c868287016116ef565b925050604061187d86828701611725565b9150509250925092565b600060ff82169050919050565b61189d81611887565b82525050565b60006020820190506118b86000830184611894565b92915050565b60006040820190506118d360008301856117dd565b6118e060208301846117dd565b9392505050565b6118f0816116c6565b82525050565b600060208201905061190b60008301846118e7565b92915050565b60008060408385031215611928576119276116a1565b5b6000611936858286016116ef565b9250506020611947858286016116ef565b9150509250929050565b61195a8161177a565b811461196557600080fd5b50565b60008135905061197781611951565b92915050565b60008060408385031215611994576119936116a1565b5b60006119a2858286016116ef565b92505060206119b385828601611968565b9150509250929050565b7f43616e206e6f7420557064617465000000000000000000000000000000000000600082015250565b60006119f3600e836115f1565b91506119fe826119bd565b602082019050919050565b60006020820190508181036000830152611a22816119e6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611a6382611704565b9150611a6e83611704565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611aa357611aa2611a29565b5b828201905092915050565b6000611ab982611704565b9150611ac483611704565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611afd57611afc611a29565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611b4282611704565b9150611b4d83611704565b925082611b5d57611b5c611b08565b5b828204905092915050565b6000611b7382611704565b9150611b7e83611704565b925082821015611b9157611b90611a29565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611be357607f821691505b60208210811415611bf757611bf6611b9c565b5b50919050565b7f416c726561647920426c61636b6c697374656400000000000000000000000000600082015250565b6000611c336013836115f1565b9150611c3e82611bfd565b602082019050919050565b60006020820190508181036000830152611c6281611c26565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611cc56025836115f1565b9150611cd082611c69565b604082019050919050565b60006020820190508181036000830152611cf481611cb8565b9050919050565b7f416c72656164792057686974656c697374656400000000000000000000000000600082015250565b6000611d316013836115f1565b9150611d3c82611cfb565b602082019050919050565b60006020820190508181036000830152611d6081611d24565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611dc36026836115f1565b9150611dce82611d67565b604082019050919050565b60006020820190508181036000830152611df281611db6565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611e2f6020836115f1565b9150611e3a82611df9565b602082019050919050565b60006020820190508181036000830152611e5e81611e22565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611ec16024836115f1565b9150611ecc82611e65565b604082019050919050565b60006020820190508181036000830152611ef081611eb4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611f536022836115f1565b9150611f5e82611ef7565b604082019050919050565b60006020820190508181036000830152611f8281611f46565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611fe56021836115f1565b9150611ff082611f89565b604082019050919050565b6000602082019050818103600083015261201481611fd8565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006120776022836115f1565b91506120828261201b565b604082019050919050565b600060208201905081810360008301526120a68161206a565b9050919050565b7f46726f6d206164647265737320426c61636b4c69737465640000000000000000600082015250565b60006120e36018836115f1565b91506120ee826120ad565b602082019050919050565b60006020820190508181036000830152612112816120d6565b9050919050565b7f546f206164647265737320426c61636b4c697374656400000000000000000000600082015250565b600061214f6016836115f1565b915061215a82612119565b602082019050919050565b6000602082019050818103600083015261217e81612142565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006121bb601d836115f1565b91506121c682612185565b602082019050919050565b600060208201905081810360008301526121ea816121ae565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061224d6025836115f1565b9150612258826121f1565b604082019050919050565b6000602082019050818103600083015261227c81612240565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006122df6023836115f1565b91506122ea82612283565b604082019050919050565b6000602082019050818103600083015261230e816122d2565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006123716026836115f1565b915061237c82612315565b604082019050919050565b600060208201905081810360008301526123a081612364565b905091905056fea26469706673582212201de92289e41025a622fa0b8baeacb7707798ea5acea69fe08113e705af84f6ca64736f6c63430008090033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101425760003560e01c80637dafe2ba116100b8578063dd62ed3e1161007c578063dd62ed3e1461037a578063e4997dc5146103aa578063f196782c146103c6578063f2fde38b146103e2578063fb9ac8f7146103fe578063fce589d81461041c57610142565b80637dafe2ba146102ad5780638da5cb5b146102de57806395d89b41146102fc578063a457c2d71461031a578063a9059cbb1461034a57610142565b8063189d165e1161010a578063189d165e146101d957806323b872dd146101f5578063313ce56714610225578063395093511461024357806370a0823114610273578063715018a6146102a357610142565b8063051c89911461014757806306fdde0314610151578063095ea7b31461016f5780630ecb93c01461019f57806318160ddd146101bb575b600080fd5b61014f61043a565b005b6101596104e0565b604051610166919061167f565b60405180910390f35b6101896004803603810190610184919061173a565b610572565b6040516101969190611795565b60405180910390f35b6101b960048036038101906101b491906117b0565b610595565b005b6101c3610685565b6040516101d091906117ec565b60405180910390f35b6101f360048036038101906101ee9190611807565b61068f565b005b61020f600480360381019061020a9190611834565b6106a1565b60405161021c9190611795565b60405180910390f35b61022d6106df565b60405161023a91906118a3565b60405180910390f35b61025d6004803603810190610258919061173a565b6106e8565b60405161026a9190611795565b60405180910390f35b61028d600480360381019061028891906117b0565b61071f565b60405161029a91906117ec565b60405180910390f35b6102ab610767565b005b6102c760048036038101906102c29190611834565b61077b565b6040516102d59291906118be565b60405180910390f35b6102e6610891565b6040516102f391906118f6565b60405180910390f35b6103046108bb565b604051610311919061167f565b60405180910390f35b610334600480360381019061032f919061173a565b61094d565b6040516103419190611795565b60405180910390f35b610364600480360381019061035f919061173a565b6109c4565b6040516103719190611795565b60405180910390f35b610394600480360381019061038f9190611911565b610a0c565b6040516103a191906117ec565b60405180910390f35b6103c460048036038101906103bf91906117b0565b610a93565b005b6103e060048036038101906103db919061197d565b610b82565b005b6103fc60048036038101906103f791906117b0565b610be5565b005b610406610c69565b60405161041391906117ec565b60405180910390f35b610424610c71565b60405161043191906117ec565b60405180910390f35b610442610c7c565b6009544211801561045557506000600754115b610494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048b90611a09565b60405180910390fd5b6301e13380426104a49190611a58565b60098190555060646008546007546104bc9190611aae565b6104c69190611b37565b600760008282546104d79190611b68565b92505081905550565b6060600380546104ef90611bcb565b80601f016020809104026020016040519081016040528092919081815260200182805461051b90611bcb565b80156105685780601f1061053d57610100808354040283529160200191610568565b820191906000526020600020905b81548152906001019060200180831161054b57829003601f168201915b5050505050905090565b60008061057d610cfa565b905061058a818585610d02565b600191505092915050565b61059d610c7c565b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561062a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062190611c49565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600254905090565b610697610c7c565b8060088190555050565b60008060006106b186868661077b565b9150915060008111156106c9576106c88682610ecd565b5b6106d486868461109b565b925050509392505050565b60006012905090565b6000806106f3610cfa565b90506107148185856107058589610a0c565b61070f9190611a58565b610d02565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61076f610c7c565b61077960006110ca565b565b600080600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061081f5750600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156108305782600091509150610889565b6000612710600754856108439190611aae565b61084d9190611b37565b905068056bc75e2d631000008110156108665780610871565b68056bc75e2d631000005b9050808461087f9190611b68565b9350838192509250505b935093915050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546108ca90611bcb565b80601f01602080910402602001604051908101604052809291908181526020018280546108f690611bcb565b80156109435780601f1061091857610100808354040283529160200191610943565b820191906000526020600020905b81548152906001019060200180831161092657829003601f168201915b5050505050905090565b600080610958610cfa565b905060006109668286610a0c565b9050838110156109ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a290611cdb565b60405180910390fd5b6109b88286868403610d02565b60019250505092915050565b6000806109cf610cfa565b90506000806109df83878761077b565b9150915060008111156109f7576109f68382610ecd565b5b610a018683611190565b935050505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610a9b610c7c565b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1e90611d47565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b8a610c7c565b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610bed610c7c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5490611dd9565b60405180910390fd5b610c66816110ca565b50565b6301e1338081565b60075481565b505050565b610c84610cfa565b73ffffffffffffffffffffffffffffffffffffffff16610ca2610891565b73ffffffffffffffffffffffffffffffffffffffff1614610cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cef90611e45565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6990611ed7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610de2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd990611f69565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ec091906117ec565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3490611ffb565b60405180910390fd5b610f49826000836111b3565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc69061208d565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161108291906117ec565b60405180910390a3611096836000846112dd565b505050565b6000806110a6610cfa565b90506110b38582856112e2565b6110be85858561136e565b60019150509392505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008061119b610cfa565b90506111a881858561136e565b600191505092915050565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611240576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611237906120f9565b60405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c490612165565b60405180910390fd5b6112d8838383610c77565b505050565b505050565b60006112ee8484610a0c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611368578181101561135a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611351906121d1565b60405180910390fd5b6113678484848403610d02565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d590612263565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561144e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611445906122f5565b60405180910390fd5b6114598383836111b3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156114df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d690612387565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115cd91906117ec565b60405180910390a36115e08484846112dd565b50505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611620578082015181840152602081019050611605565b8381111561162f576000848401525b50505050565b6000601f19601f8301169050919050565b6000611651826115e6565b61165b81856115f1565b935061166b818560208601611602565b61167481611635565b840191505092915050565b600060208201905081810360008301526116998184611646565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116d1826116a6565b9050919050565b6116e1816116c6565b81146116ec57600080fd5b50565b6000813590506116fe816116d8565b92915050565b6000819050919050565b61171781611704565b811461172257600080fd5b50565b6000813590506117348161170e565b92915050565b60008060408385031215611751576117506116a1565b5b600061175f858286016116ef565b925050602061177085828601611725565b9150509250929050565b60008115159050919050565b61178f8161177a565b82525050565b60006020820190506117aa6000830184611786565b92915050565b6000602082840312156117c6576117c56116a1565b5b60006117d4848285016116ef565b91505092915050565b6117e681611704565b82525050565b600060208201905061180160008301846117dd565b92915050565b60006020828403121561181d5761181c6116a1565b5b600061182b84828501611725565b91505092915050565b60008060006060848603121561184d5761184c6116a1565b5b600061185b868287016116ef565b935050602061186c868287016116ef565b925050604061187d86828701611725565b9150509250925092565b600060ff82169050919050565b61189d81611887565b82525050565b60006020820190506118b86000830184611894565b92915050565b60006040820190506118d360008301856117dd565b6118e060208301846117dd565b9392505050565b6118f0816116c6565b82525050565b600060208201905061190b60008301846118e7565b92915050565b60008060408385031215611928576119276116a1565b5b6000611936858286016116ef565b9250506020611947858286016116ef565b9150509250929050565b61195a8161177a565b811461196557600080fd5b50565b60008135905061197781611951565b92915050565b60008060408385031215611994576119936116a1565b5b60006119a2858286016116ef565b92505060206119b385828601611968565b9150509250929050565b7f43616e206e6f7420557064617465000000000000000000000000000000000000600082015250565b60006119f3600e836115f1565b91506119fe826119bd565b602082019050919050565b60006020820190508181036000830152611a22816119e6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611a6382611704565b9150611a6e83611704565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611aa357611aa2611a29565b5b828201905092915050565b6000611ab982611704565b9150611ac483611704565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611afd57611afc611a29565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611b4282611704565b9150611b4d83611704565b925082611b5d57611b5c611b08565b5b828204905092915050565b6000611b7382611704565b9150611b7e83611704565b925082821015611b9157611b90611a29565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611be357607f821691505b60208210811415611bf757611bf6611b9c565b5b50919050565b7f416c726561647920426c61636b6c697374656400000000000000000000000000600082015250565b6000611c336013836115f1565b9150611c3e82611bfd565b602082019050919050565b60006020820190508181036000830152611c6281611c26565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611cc56025836115f1565b9150611cd082611c69565b604082019050919050565b60006020820190508181036000830152611cf481611cb8565b9050919050565b7f416c72656164792057686974656c697374656400000000000000000000000000600082015250565b6000611d316013836115f1565b9150611d3c82611cfb565b602082019050919050565b60006020820190508181036000830152611d6081611d24565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611dc36026836115f1565b9150611dce82611d67565b604082019050919050565b60006020820190508181036000830152611df281611db6565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611e2f6020836115f1565b9150611e3a82611df9565b602082019050919050565b60006020820190508181036000830152611e5e81611e22565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611ec16024836115f1565b9150611ecc82611e65565b604082019050919050565b60006020820190508181036000830152611ef081611eb4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611f536022836115f1565b9150611f5e82611ef7565b604082019050919050565b60006020820190508181036000830152611f8281611f46565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611fe56021836115f1565b9150611ff082611f89565b604082019050919050565b6000602082019050818103600083015261201481611fd8565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006120776022836115f1565b91506120828261201b565b604082019050919050565b600060208201905081810360008301526120a68161206a565b9050919050565b7f46726f6d206164647265737320426c61636b4c69737465640000000000000000600082015250565b60006120e36018836115f1565b91506120ee826120ad565b602082019050919050565b60006020820190508181036000830152612112816120d6565b9050919050565b7f546f206164647265737320426c61636b4c697374656400000000000000000000600082015250565b600061214f6016836115f1565b915061215a82612119565b602082019050919050565b6000602082019050818103600083015261217e81612142565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006121bb601d836115f1565b91506121c682612185565b602082019050919050565b600060208201905081810360008301526121ea816121ae565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061224d6025836115f1565b9150612258826121f1565b604082019050919050565b6000602082019050818103600083015261227c81612240565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006122df6023836115f1565b91506122ea82612283565b604082019050919050565b6000602082019050818103600083015261230e816122d2565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006123716026836115f1565b915061237c82612315565b604082019050919050565b600060208201905081810360008301526123a081612364565b905091905056fea26469706673582212201de92289e41025a622fa0b8baeacb7707798ea5acea69fe08113e705af84f6ca64736f6c63430008090033

Deployed Bytecode Sourcemap

20436:2373:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20958:231;;;:::i;:::-;;9015:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11375:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20090:159;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10144:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21343:88;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21759:299;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9986:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12826:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10315:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6120:103;;;:::i;:::-;;22374:432;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;5479:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9234:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13567:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21439:312;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10904:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20261:162;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21197:138;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6378:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20493:43;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20559:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20958:231;5365:13;:11;:13::i;:::-;21037::::1;;21019:15;:31;:46;;;;;21064:1;21054:7;;:11;21019:46;21011:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;20528:8;21111:15;:26;;;;:::i;:::-;21095:13;:42;;;;21178:3;21168:8;;21160:7;;:16;;;;:::i;:::-;21159:22;;;;:::i;:::-;21148:7;;:33;;;;;;;:::i;:::-;;;;;;;;20958:231::o:0;9015:100::-;9069:13;9102:5;9095:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9015:100;:::o;11375:201::-;11458:4;11475:13;11491:12;:10;:12::i;:::-;11475:28;;11514:32;11523:5;11530:7;11539:6;11514:8;:32::i;:::-;11564:4;11557:11;;;11375:201;;;;:::o;20090:159::-;5365:13;:11;:13::i;:::-;20163:12:::1;:18;20176:4;20163:18;;;;;;;;;;;;;;;;;;;;;;;;;20162:19;20154:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;20237:4;20216:12;:18;20229:4;20216:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;20090:159:::0;:::o;10144:108::-;10205:7;10232:12;;10225:19;;10144:108;:::o;21343:88::-;5365:13;:11;:13::i;:::-;21418:5:::1;21407:8;:16;;;;21343:88:::0;:::o;21759:299::-;21863:4;21881:11;21894:15;21913:26;21922:4;21928:2;21932:6;21913:8;:26::i;:::-;21880:59;;;;21963:1;21953:7;:11;21950:49;;;21979:20;21985:4;21991:7;21979:5;:20::i;:::-;21950:49;22017:33;22036:4;22042:2;22046:3;22017:18;:33::i;:::-;22010:40;;;;21759:299;;;;;:::o;9986:93::-;10044:5;10069:2;10062:9;;9986:93;:::o;12826:238::-;12914:4;12931:13;12947:12;:10;:12::i;:::-;12931:28;;12970:64;12979:5;12986:7;13023:10;12995:25;13005:5;13012:7;12995:9;:25::i;:::-;:38;;;;:::i;:::-;12970:8;:64::i;:::-;13052:4;13045:11;;;12826:238;;;;:::o;10315:127::-;10389:7;10416:9;:18;10426:7;10416:18;;;;;;;;;;;;;;;;10409:25;;10315:127;;;:::o;6120:103::-;5365:13;:11;:13::i;:::-;6185:30:::1;6212:1;6185:18;:30::i;:::-;6120:103::o:0;22374:432::-;22454:7;22463;22487:22;:28;22510:4;22487:28;;;;;;;;;;;;;;;;;;;;;;;;;:58;;;;22519:22;:26;22542:2;22519:26;;;;;;;;;;;;;;;;;;;;;;;;;22487:58;22483:109;;;22570:6;22578:1;22562:18;;;;;;22483:109;22602:18;22644:5;22633:7;;22624:6;:16;;;;:::i;:::-;22623:26;;;;:::i;:::-;22602:47;;22687:9;22673:10;:23;;:48;;22711:10;22673:48;;;22699:9;22673:48;22660:61;;22750:10;22741:6;:19;;;;:::i;:::-;22732:28;;22779:6;22787:10;22771:27;;;;;22374:432;;;;;;;:::o;5479:87::-;5525:7;5552:6;;;;;;;;;;;5545:13;;5479:87;:::o;9234:104::-;9290:13;9323:7;9316:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9234:104;:::o;13567:436::-;13660:4;13677:13;13693:12;:10;:12::i;:::-;13677:28;;13716:24;13743:25;13753:5;13760:7;13743:9;:25::i;:::-;13716:52;;13807:15;13787:16;:35;;13779:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;13900:60;13909:5;13916:7;13944:15;13925:16;:34;13900:8;:60::i;:::-;13991:4;13984:11;;;;13567:436;;;;:::o;21439:312::-;21525:4;21542:13;21558:12;:10;:12::i;:::-;21542:28;;21582:11;21595:15;21614:27;21623:5;21630:2;21634:6;21614:8;:27::i;:::-;21581:60;;;;21665:1;21655:7;:11;21652:50;;;21681:21;21687:5;21694:7;21681:5;:21::i;:::-;21652:50;21720:23;21735:2;21739:3;21720:14;:23::i;:::-;21713:30;;;;;21439:312;;;;:::o;10904:151::-;10993:7;11020:11;:18;11032:5;11020:18;;;;;;;;;;;;;;;:27;11039:7;11020:27;;;;;;;;;;;;;;;;11013:34;;10904:151;;;;:::o;20261:162::-;5365:13;:11;:13::i;:::-;20336:12:::1;:18;20349:4;20336:18;;;;;;;;;;;;;;;;;;;;;;;;;20328:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;20410:5;20389:12;:18;20402:4;20389:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;20261:162:::0;:::o;21197:138::-;5365:13;:11;:13::i;:::-;21320:7:::1;21285:22;:32;21308:8;21285:32;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;21197:138:::0;;:::o;6378:201::-;5365:13;:11;:13::i;:::-;6487:1:::1;6467:22;;:8;:22;;;;6459:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6543:28;6562:8;6543:18;:28::i;:::-;6378:201:::0;:::o;20493:43::-;20528:8;20493:43;:::o;20559:27::-;;;;:::o;19216:91::-;;;;:::o;5644:132::-;5719:12;:10;:12::i;:::-;5708:23;;:7;:5;:7::i;:::-;:23;;;5700:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5644:132::o;4091:98::-;4144:7;4171:10;4164:17;;4091:98;:::o;17560:346::-;17679:1;17662:19;;:5;:19;;;;17654:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17760:1;17741:21;;:7;:21;;;;17733:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17844:6;17814:11;:18;17826:5;17814:18;;;;;;;;;;;;;;;:27;17833:7;17814:27;;;;;;;;;;;;;;;:36;;;;17882:7;17866:32;;17875:5;17866:32;;;17891:6;17866:32;;;;;;:::i;:::-;;;;;;;;17560:346;;;:::o;16447:675::-;16550:1;16531:21;;:7;:21;;;;16523:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16603:49;16624:7;16641:1;16645:6;16603:20;:49::i;:::-;16665:22;16690:9;:18;16700:7;16690:18;;;;;;;;;;;;;;;;16665:43;;16745:6;16727:14;:24;;16719:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16864:6;16847:14;:23;16826:9;:18;16836:7;16826:18;;;;;;;;;;;;;;;:44;;;;16981:6;16965:12;;:22;;;;;;;;;;;17042:1;17016:37;;17025:7;17016:37;;;17046:6;17016:37;;;;;;:::i;:::-;;;;;;;;17066:48;17086:7;17103:1;17107:6;17066:19;:48::i;:::-;16512:610;16447:675;;:::o;12156:261::-;12253:4;12270:15;12288:12;:10;:12::i;:::-;12270:30;;12311:38;12327:4;12333:7;12342:6;12311:15;:38::i;:::-;12360:27;12370:4;12376:2;12380:6;12360:9;:27::i;:::-;12405:4;12398:11;;;12156:261;;;;;:::o;6739:191::-;6813:16;6832:6;;;;;;;;;;;6813:25;;6858:8;6849:6;;:17;;;;;;;;;;;;;;;;;;6913:8;6882:40;;6903:8;6882:40;;;;;;;;;;;;6802:128;6739:191;:::o;10648:193::-;10727:4;10744:13;10760:12;:10;:12::i;:::-;10744:28;;10783;10793:5;10800:2;10804:6;10783:9;:28::i;:::-;10829:4;10822:11;;;10648:193;;;;:::o;22068:298::-;22193:12;:18;22206:4;22193:18;;;;;;;;;;;;;;;;;;;;;;;;;22192:19;22184:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;22260:12;:16;22273:2;22260:16;;;;;;;;;;;;;;;;;;;;;;;;;22259:17;22251:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;22314:44;22341:4;22347:2;22351:6;22314:26;:44::i;:::-;22068:298;;;:::o;19911:90::-;;;;:::o;18197:419::-;18298:24;18325:25;18335:5;18342:7;18325:9;:25::i;:::-;18298:52;;18385:17;18365:16;:37;18361:248;;18447:6;18427:16;:26;;18419:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18531:51;18540:5;18547:7;18575:6;18556:16;:25;18531:8;:51::i;:::-;18361:248;18287:329;18197:419;;;:::o;14473:806::-;14586:1;14570:18;;:4;:18;;;;14562:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14663:1;14649:16;;:2;:16;;;;14641:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14718:38;14739:4;14745:2;14749:6;14718:20;:38::i;:::-;14769:19;14791:9;:15;14801:4;14791:15;;;;;;;;;;;;;;;;14769:37;;14840:6;14825:11;:21;;14817:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;14957:6;14943:11;:20;14925:9;:15;14935:4;14925:15;;;;;;;;;;;;;;;:38;;;;15160:6;15143:9;:13;15153:2;15143:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;15210:2;15195:26;;15204:4;15195:26;;;15214:6;15195:26;;;;;;:::i;:::-;;;;;;;;15234:37;15254:4;15260:2;15264:6;15234:19;:37::i;:::-;14551:728;14473:806;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:118::-;3916:24;3934:5;3916:24;:::i;:::-;3911:3;3904:37;3829:118;;:::o;3953:222::-;4046:4;4084:2;4073:9;4069:18;4061:26;;4097:71;4165:1;4154:9;4150:17;4141:6;4097:71;:::i;:::-;3953:222;;;;:::o;4181:329::-;4240:6;4289:2;4277:9;4268:7;4264:23;4260:32;4257:119;;;4295:79;;:::i;:::-;4257:119;4415:1;4440:53;4485:7;4476:6;4465:9;4461:22;4440:53;:::i;:::-;4430:63;;4386:117;4181:329;;;;:::o;4516:619::-;4593:6;4601;4609;4658:2;4646:9;4637:7;4633:23;4629:32;4626:119;;;4664:79;;:::i;:::-;4626:119;4784:1;4809:53;4854:7;4845:6;4834:9;4830:22;4809:53;:::i;:::-;4799:63;;4755:117;4911:2;4937:53;4982:7;4973:6;4962:9;4958:22;4937:53;:::i;:::-;4927:63;;4882:118;5039:2;5065:53;5110:7;5101:6;5090:9;5086:22;5065:53;:::i;:::-;5055:63;;5010:118;4516:619;;;;;:::o;5141:86::-;5176:7;5216:4;5209:5;5205:16;5194:27;;5141:86;;;:::o;5233:112::-;5316:22;5332:5;5316:22;:::i;:::-;5311:3;5304:35;5233:112;;:::o;5351:214::-;5440:4;5478:2;5467:9;5463:18;5455:26;;5491:67;5555:1;5544:9;5540:17;5531:6;5491:67;:::i;:::-;5351:214;;;;:::o;5571:332::-;5692:4;5730:2;5719:9;5715:18;5707:26;;5743:71;5811:1;5800:9;5796:17;5787:6;5743:71;:::i;:::-;5824:72;5892:2;5881:9;5877:18;5868:6;5824:72;:::i;:::-;5571:332;;;;;:::o;5909:118::-;5996:24;6014:5;5996:24;:::i;:::-;5991:3;5984:37;5909:118;;:::o;6033:222::-;6126:4;6164:2;6153:9;6149:18;6141:26;;6177:71;6245:1;6234:9;6230:17;6221:6;6177:71;:::i;:::-;6033:222;;;;:::o;6261:474::-;6329:6;6337;6386:2;6374:9;6365:7;6361:23;6357:32;6354:119;;;6392:79;;:::i;:::-;6354:119;6512:1;6537:53;6582:7;6573:6;6562:9;6558:22;6537:53;:::i;:::-;6527:63;;6483:117;6639:2;6665:53;6710:7;6701:6;6690:9;6686:22;6665:53;:::i;:::-;6655:63;;6610:118;6261:474;;;;;:::o;6741:116::-;6811:21;6826:5;6811:21;:::i;:::-;6804:5;6801:32;6791:60;;6847:1;6844;6837:12;6791:60;6741:116;:::o;6863:133::-;6906:5;6944:6;6931:20;6922:29;;6960:30;6984:5;6960:30;:::i;:::-;6863:133;;;;:::o;7002:468::-;7067:6;7075;7124:2;7112:9;7103:7;7099:23;7095:32;7092:119;;;7130:79;;:::i;:::-;7092:119;7250:1;7275:53;7320:7;7311:6;7300:9;7296:22;7275:53;:::i;:::-;7265:63;;7221:117;7377:2;7403:50;7445:7;7436:6;7425:9;7421:22;7403:50;:::i;:::-;7393:60;;7348:115;7002:468;;;;;:::o;7476:164::-;7616:16;7612:1;7604:6;7600:14;7593:40;7476:164;:::o;7646:366::-;7788:3;7809:67;7873:2;7868:3;7809:67;:::i;:::-;7802:74;;7885:93;7974:3;7885:93;:::i;:::-;8003:2;7998:3;7994:12;7987:19;;7646:366;;;:::o;8018:419::-;8184:4;8222:2;8211:9;8207:18;8199:26;;8271:9;8265:4;8261:20;8257:1;8246:9;8242:17;8235:47;8299:131;8425:4;8299:131;:::i;:::-;8291:139;;8018:419;;;:::o;8443:180::-;8491:77;8488:1;8481:88;8588:4;8585:1;8578:15;8612:4;8609:1;8602:15;8629:305;8669:3;8688:20;8706:1;8688:20;:::i;:::-;8683:25;;8722:20;8740:1;8722:20;:::i;:::-;8717:25;;8876:1;8808:66;8804:74;8801:1;8798:81;8795:107;;;8882:18;;:::i;:::-;8795:107;8926:1;8923;8919:9;8912:16;;8629:305;;;;:::o;8940:348::-;8980:7;9003:20;9021:1;9003:20;:::i;:::-;8998:25;;9037:20;9055:1;9037:20;:::i;:::-;9032:25;;9225:1;9157:66;9153:74;9150:1;9147:81;9142:1;9135:9;9128:17;9124:105;9121:131;;;9232:18;;:::i;:::-;9121:131;9280:1;9277;9273:9;9262:20;;8940:348;;;;:::o;9294:180::-;9342:77;9339:1;9332:88;9439:4;9436:1;9429:15;9463:4;9460:1;9453:15;9480:185;9520:1;9537:20;9555:1;9537:20;:::i;:::-;9532:25;;9571:20;9589:1;9571:20;:::i;:::-;9566:25;;9610:1;9600:35;;9615:18;;:::i;:::-;9600:35;9657:1;9654;9650:9;9645:14;;9480:185;;;;:::o;9671:191::-;9711:4;9731:20;9749:1;9731:20;:::i;:::-;9726:25;;9765:20;9783:1;9765:20;:::i;:::-;9760:25;;9804:1;9801;9798:8;9795:34;;;9809:18;;:::i;:::-;9795:34;9854:1;9851;9847:9;9839:17;;9671:191;;;;:::o;9868:180::-;9916:77;9913:1;9906:88;10013:4;10010:1;10003:15;10037:4;10034:1;10027:15;10054:320;10098:6;10135:1;10129:4;10125:12;10115:22;;10182:1;10176:4;10172:12;10203:18;10193:81;;10259:4;10251:6;10247:17;10237:27;;10193:81;10321:2;10313:6;10310:14;10290:18;10287:38;10284:84;;;10340:18;;:::i;:::-;10284:84;10105:269;10054:320;;;:::o;10380:169::-;10520:21;10516:1;10508:6;10504:14;10497:45;10380:169;:::o;10555:366::-;10697:3;10718:67;10782:2;10777:3;10718:67;:::i;:::-;10711:74;;10794:93;10883:3;10794:93;:::i;:::-;10912:2;10907:3;10903:12;10896:19;;10555:366;;;:::o;10927:419::-;11093:4;11131:2;11120:9;11116:18;11108:26;;11180:9;11174:4;11170:20;11166:1;11155:9;11151:17;11144:47;11208:131;11334:4;11208:131;:::i;:::-;11200:139;;10927:419;;;:::o;11352:224::-;11492:34;11488:1;11480:6;11476:14;11469:58;11561:7;11556:2;11548:6;11544:15;11537:32;11352:224;:::o;11582:366::-;11724:3;11745:67;11809:2;11804:3;11745:67;:::i;:::-;11738:74;;11821:93;11910:3;11821:93;:::i;:::-;11939:2;11934:3;11930:12;11923:19;;11582:366;;;:::o;11954:419::-;12120:4;12158:2;12147:9;12143:18;12135:26;;12207:9;12201:4;12197:20;12193:1;12182:9;12178:17;12171:47;12235:131;12361:4;12235:131;:::i;:::-;12227:139;;11954:419;;;:::o;12379:169::-;12519:21;12515:1;12507:6;12503:14;12496:45;12379:169;:::o;12554:366::-;12696:3;12717:67;12781:2;12776:3;12717:67;:::i;:::-;12710:74;;12793:93;12882:3;12793:93;:::i;:::-;12911:2;12906:3;12902:12;12895:19;;12554:366;;;:::o;12926:419::-;13092:4;13130:2;13119:9;13115:18;13107:26;;13179:9;13173:4;13169:20;13165:1;13154:9;13150:17;13143:47;13207:131;13333:4;13207:131;:::i;:::-;13199:139;;12926:419;;;:::o;13351:225::-;13491:34;13487:1;13479:6;13475:14;13468:58;13560:8;13555:2;13547:6;13543:15;13536:33;13351:225;:::o;13582:366::-;13724:3;13745:67;13809:2;13804:3;13745:67;:::i;:::-;13738:74;;13821:93;13910:3;13821:93;:::i;:::-;13939:2;13934:3;13930:12;13923:19;;13582:366;;;:::o;13954:419::-;14120:4;14158:2;14147:9;14143:18;14135:26;;14207:9;14201:4;14197:20;14193:1;14182:9;14178:17;14171:47;14235:131;14361:4;14235:131;:::i;:::-;14227:139;;13954:419;;;:::o;14379:182::-;14519:34;14515:1;14507:6;14503:14;14496:58;14379:182;:::o;14567:366::-;14709:3;14730:67;14794:2;14789:3;14730:67;:::i;:::-;14723:74;;14806:93;14895:3;14806:93;:::i;:::-;14924:2;14919:3;14915:12;14908:19;;14567:366;;;:::o;14939:419::-;15105:4;15143:2;15132:9;15128:18;15120:26;;15192:9;15186:4;15182:20;15178:1;15167:9;15163:17;15156:47;15220:131;15346:4;15220:131;:::i;:::-;15212:139;;14939:419;;;:::o;15364:223::-;15504:34;15500:1;15492:6;15488:14;15481:58;15573:6;15568:2;15560:6;15556:15;15549:31;15364:223;:::o;15593:366::-;15735:3;15756:67;15820:2;15815:3;15756:67;:::i;:::-;15749:74;;15832:93;15921:3;15832:93;:::i;:::-;15950:2;15945:3;15941:12;15934:19;;15593:366;;;:::o;15965:419::-;16131:4;16169:2;16158:9;16154:18;16146:26;;16218:9;16212:4;16208:20;16204:1;16193:9;16189:17;16182:47;16246:131;16372:4;16246:131;:::i;:::-;16238:139;;15965:419;;;:::o;16390:221::-;16530:34;16526:1;16518:6;16514:14;16507:58;16599:4;16594:2;16586:6;16582:15;16575:29;16390:221;:::o;16617:366::-;16759:3;16780:67;16844:2;16839:3;16780:67;:::i;:::-;16773:74;;16856:93;16945:3;16856:93;:::i;:::-;16974:2;16969:3;16965:12;16958:19;;16617:366;;;:::o;16989:419::-;17155:4;17193:2;17182:9;17178:18;17170:26;;17242:9;17236:4;17232:20;17228:1;17217:9;17213:17;17206:47;17270:131;17396:4;17270:131;:::i;:::-;17262:139;;16989:419;;;:::o;17414:220::-;17554:34;17550:1;17542:6;17538:14;17531:58;17623:3;17618:2;17610:6;17606:15;17599:28;17414:220;:::o;17640:366::-;17782:3;17803:67;17867:2;17862:3;17803:67;:::i;:::-;17796:74;;17879:93;17968:3;17879:93;:::i;:::-;17997:2;17992:3;17988:12;17981:19;;17640:366;;;:::o;18012:419::-;18178:4;18216:2;18205:9;18201:18;18193:26;;18265:9;18259:4;18255:20;18251:1;18240:9;18236:17;18229:47;18293:131;18419:4;18293:131;:::i;:::-;18285:139;;18012:419;;;:::o;18437:221::-;18577:34;18573:1;18565:6;18561:14;18554:58;18646:4;18641:2;18633:6;18629:15;18622:29;18437:221;:::o;18664:366::-;18806:3;18827:67;18891:2;18886:3;18827:67;:::i;:::-;18820:74;;18903:93;18992:3;18903:93;:::i;:::-;19021:2;19016:3;19012:12;19005:19;;18664:366;;;:::o;19036:419::-;19202:4;19240:2;19229:9;19225:18;19217:26;;19289:9;19283:4;19279:20;19275:1;19264:9;19260:17;19253:47;19317:131;19443:4;19317:131;:::i;:::-;19309:139;;19036:419;;;:::o;19461:174::-;19601:26;19597:1;19589:6;19585:14;19578:50;19461:174;:::o;19641:366::-;19783:3;19804:67;19868:2;19863:3;19804:67;:::i;:::-;19797:74;;19880:93;19969:3;19880:93;:::i;:::-;19998:2;19993:3;19989:12;19982:19;;19641:366;;;:::o;20013:419::-;20179:4;20217:2;20206:9;20202:18;20194:26;;20266:9;20260:4;20256:20;20252:1;20241:9;20237:17;20230:47;20294:131;20420:4;20294:131;:::i;:::-;20286:139;;20013:419;;;:::o;20438:172::-;20578:24;20574:1;20566:6;20562:14;20555:48;20438:172;:::o;20616:366::-;20758:3;20779:67;20843:2;20838:3;20779:67;:::i;:::-;20772:74;;20855:93;20944:3;20855:93;:::i;:::-;20973:2;20968:3;20964:12;20957:19;;20616:366;;;:::o;20988:419::-;21154:4;21192:2;21181:9;21177:18;21169:26;;21241:9;21235:4;21231:20;21227:1;21216:9;21212:17;21205:47;21269:131;21395:4;21269:131;:::i;:::-;21261:139;;20988:419;;;:::o;21413:179::-;21553:31;21549:1;21541:6;21537:14;21530:55;21413:179;:::o;21598:366::-;21740:3;21761:67;21825:2;21820:3;21761:67;:::i;:::-;21754:74;;21837:93;21926:3;21837:93;:::i;:::-;21955:2;21950:3;21946:12;21939:19;;21598:366;;;:::o;21970:419::-;22136:4;22174:2;22163:9;22159:18;22151:26;;22223:9;22217:4;22213:20;22209:1;22198:9;22194:17;22187:47;22251:131;22377:4;22251:131;:::i;:::-;22243:139;;21970:419;;;:::o;22395:224::-;22535:34;22531:1;22523:6;22519:14;22512:58;22604:7;22599:2;22591:6;22587:15;22580:32;22395:224;:::o;22625:366::-;22767:3;22788:67;22852:2;22847:3;22788:67;:::i;:::-;22781:74;;22864:93;22953:3;22864:93;:::i;:::-;22982:2;22977:3;22973:12;22966:19;;22625:366;;;:::o;22997:419::-;23163:4;23201:2;23190:9;23186:18;23178:26;;23250:9;23244:4;23240:20;23236:1;23225:9;23221:17;23214:47;23278:131;23404:4;23278:131;:::i;:::-;23270:139;;22997:419;;;:::o;23422:222::-;23562:34;23558:1;23550:6;23546:14;23539:58;23631:5;23626:2;23618:6;23614:15;23607:30;23422:222;:::o;23650:366::-;23792:3;23813:67;23877:2;23872:3;23813:67;:::i;:::-;23806:74;;23889:93;23978:3;23889:93;:::i;:::-;24007:2;24002:3;23998:12;23991:19;;23650:366;;;:::o;24022:419::-;24188:4;24226:2;24215:9;24211:18;24203:26;;24275:9;24269:4;24265:20;24261:1;24250:9;24246:17;24239:47;24303:131;24429:4;24303:131;:::i;:::-;24295:139;;24022:419;;;:::o;24447:225::-;24587:34;24583:1;24575:6;24571:14;24564:58;24656:8;24651:2;24643:6;24639:15;24632:33;24447:225;:::o;24678:366::-;24820:3;24841:67;24905:2;24900:3;24841:67;:::i;:::-;24834:74;;24917:93;25006:3;24917:93;:::i;:::-;25035:2;25030:3;25026:12;25019:19;;24678:366;;;:::o;25050:419::-;25216:4;25254:2;25243:9;25239:18;25231:26;;25303:9;25297:4;25293:20;25289:1;25278:9;25274:17;25267:47;25331:131;25457:4;25331:131;:::i;:::-;25323:139;;25050:419;;;:::o

Swarm Source

ipfs://1de92289e41025a622fa0b8baeacb7707798ea5acea69fe08113e705af84f6ca
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.