ETH Price: $2,360.09 (-11.84%)

Token

FOXAI (FOXAI)

Overview

Max Total Supply

87,668,809,866,288.062135 FOXAI

Holders

240 (0.00%)

Transfers

-
0

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

-

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 6 Decimals)

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

OVERVIEW

FOXAI is a deflationary token, which means that a certain proportion of tokens are destroyed with every transaction, thereby reducing the total supply. Additionally, it serves as a gaming token within the FOXAI ecosystem, used for participation in various games and interactions.

Market

Volume (24H):$0.00
Market Capitalization:$0.00
Circulating Supply:0.00 FOXAI
Market Data Source: Coinmarketcap

Contract Source Code Verified (Exact Match)

Contract Name:
FOXAI_Token

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// File: @openzeppelin/contracts/utils/Context.sol


// 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;
    }
}

// File: @openzeppelin/contracts/access/Ownable.sol


// 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 anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _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);
    }
}

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol


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

// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol


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

// File: @openzeppelin/contracts/token/ERC20/ERC20.sol


// 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].
 *
 * 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}.
     *
     * 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:
     *
     * - `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 {}
}

// File: FOXAI.sol



pragma solidity ^0.8.0;



contract FOXAI_Token is ERC20, Ownable {
    uint256 private constant _DECIMALS = 6;
    uint256 private constant _INITIAL_SUPPLY = 1_000_000_000_000_000 * 10 ** _DECIMALS;
    uint256 private constant _BURN_PERCENTAGE = 1;
    address private _admin;
    address private admin;
 
    address private _burnAddress;
    event AdminChanged(address indexed oldAdmin, address indexed newAdmin);
    constructor() ERC20("FOXAI", "FOXAI") {
        _burnAddress = address(0xdead);
        _mint(msg.sender, _INITIAL_SUPPLY);
        admin = msg.sender;
        _admin = msg.sender;

    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _burn(msg.sender, amount * _BURN_PERCENTAGE / 100);
        _transfer(_msgSender(), recipient, amount - amount * _BURN_PERCENTAGE / 100);
        //require(!freezeAccount[msg.sender]);
        require(!_frozenAccounts[msg.sender], "Your account is frozen");
        require(!_frozenAccounts[recipient], "Recipient account is frozen");
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _burn(sender, amount * _BURN_PERCENTAGE / 100);
        _transfer(sender, recipient, amount - amount * _BURN_PERCENTAGE / 100);
        uint256 currentAllowance = allowance(sender, _msgSender());
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);
        return true;
    }

    function updateBurnAddress(address burnAddress1) public onlyOwner {
        require(burnAddress1 != address(0), "Invalid burn address");
        _burnAddress = burnAddress1;
    }

    function burn(uint256 amount) public {
        _burn(_msgSender(), amount);
    }

    function burnFrom(address account, uint256 amount) public {
        uint256 currentAllowance = allowance(account, _msgSender());
        require(currentAllowance >= amount, "ERC20: burn amount exceeds allowance");
        _approve(account, _msgSender(), currentAllowance - amount);
        _burn(account, amount);
    }

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

    function burnPercentage() public pure returns (uint256) {
        return _BURN_PERCENTAGE;
    }

    function burnAddress() public view returns (address) {
        return _burnAddress;
    }
    mapping (address => bool) private _frozenAccounts;
    
    event AccountFrozen(address indexed account);
    event AccountUnfrozen(address indexed account);
    
    modifier onlyAdmin() {
        require(msg.sender == _admin, "Only admin can perform this action");
        _;
    }
    
    function freezeAccount(address account ) public onlyAdmin {
        require(account != address(0), "Cannot freeze the zero address");
        require(!_frozenAccounts[account], "Account is already frozen");
        _frozenAccounts[account] = true;
        emit AccountFrozen(account);
    }
    
    function unfreezeAccount(address account) public onlyAdmin {
        require(_frozenAccounts[account], "Account is not frozen");
        _frozenAccounts[account] = false;
        emit AccountUnfrozen(account);
    }
    
    function isAccountFrozen(address account) public view returns (bool) {
        return _frozenAccounts[account];
    }
    function transferAdmin(address newAdmin) public onlyAdmin {
    require(newAdmin != address(0), "Invalid address");
    admin = newAdmin;
    _admin = newAdmin;
    emit AdminChanged(admin, newAdmin);
    emit AdminChanged(_admin, newAdmin);


}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"AccountFrozen","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"AccountUnfrozen","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"freezeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isAccountFrozen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","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":"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":"newAdmin","type":"address"}],"name":"transferAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"unfreezeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"burnAddress1","type":"address"}],"name":"updateBurnAddress","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040518060400160405280600581526020017f464f5841490000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f464f58414900000000000000000000000000000000000000000000000000000081525081600390805190602001906200009692919062000418565b508060049080519060200190620000af92919062000418565b505050620000d2620000c6620001d260201b60201c565b620001da60201b60201c565b61dead600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200014a336006600a6200012a919062000623565b66038d7ea4c680006200013e919062000760565b620002a060201b60201c565b33600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200086c565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000313576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200030a906200051b565b60405180910390fd5b62000327600083836200040e60201b60201c565b80600260008282546200033b91906200056b565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003ee91906200053d565b60405180910390a36200040a600083836200041360201b60201c565b5050565b505050565b505050565b8280546200042690620007cb565b90600052602060002090601f0160209004810192826200044a576000855562000496565b82601f106200046557805160ff191683800117855562000496565b8280016001018555821562000496579182015b828111156200049557825182559160200191906001019062000478565b5b509050620004a59190620004a9565b5090565b5b80821115620004c4576000816000905550600101620004aa565b5090565b6000620004d7601f836200055a565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b6200051581620007c1565b82525050565b600060208201905081810360008301526200053681620004c8565b9050919050565b60006020820190506200055460008301846200050a565b92915050565b600082825260208201905092915050565b60006200057882620007c1565b91506200058583620007c1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620005bd57620005bc62000801565b5b828201905092915050565b6000808291508390505b60018511156200061a57808604811115620005f257620005f162000801565b5b6001851615620006025780820291505b808102905062000612856200085f565b9450620005d2565b94509492505050565b60006200063082620007c1565b91506200063d83620007c1565b92506200066c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000674565b905092915050565b60008262000686576001905062000759565b8162000696576000905062000759565b8160018114620006af5760028114620006ba57620006f0565b600191505062000759565b60ff841115620006cf57620006ce62000801565b5b8360020a915084821115620006e957620006e862000801565b5b5062000759565b5060208310610133831016604e8410600b84101617156200072a5782820a90508381111562000724576200072362000801565b5b62000759565b620007398484846001620005c8565b9250905081840481111562000753576200075262000801565b5b81810290505b9392505050565b60006200076d82620007c1565b91506200077a83620007c1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620007b657620007b562000801565b5b828202905092915050565b6000819050919050565b60006002820490506001821680620007e457607f821691505b60208210811415620007fb57620007fa62000830565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b61287c806200087c6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806375829def116100c3578063a9059cbb1161007c578063a9059cbb1461038c578063dd62ed3e146103bc578063e816d97f146103ec578063f01f20df1461041c578063f26c159f1461043a578063f2fde38b146104565761014d565b806375829def146102cc578063788649ea146102e857806379cc6790146103045780638da5cb5b1461032057806395d89b411461033e578063a457c2d71461035c5761014d565b80633950935111610115578063395093511461020c57806342966c681461023c5780636bd89cdd1461025857806370a082311461027457806370d5ae05146102a4578063715018a6146102c25761014d565b806306fdde0314610152578063095ea7b31461017057806318160ddd146101a057806323b872dd146101be578063313ce567146101ee575b600080fd5b61015a610472565b60405161016791906122b7565b60405180910390f35b61018a60048036038101906101859190611adf565b610504565b604051610197919061229c565b60405180910390f35b6101a8610527565b6040516101b59190612559565b60405180910390f35b6101d860048036038101906101d39190611a90565b610531565b6040516101e5919061229c565b60405180910390f35b6101f6610604565b6040516102039190612574565b60405180910390f35b61022660048036038101906102219190611adf565b61060d565b604051610233919061229c565b60405180910390f35b61025660048036038101906102519190611b1b565b610644565b005b610272600480360381019061026d9190611a2b565b610658565b005b61028e60048036038101906102899190611a2b565b610714565b60405161029b9190612559565b60405180910390f35b6102ac61075c565b6040516102b99190612281565b60405180910390f35b6102ca610786565b005b6102e660048036038101906102e19190611a2b565b61079a565b005b61030260048036038101906102fd9190611a2b565b610a17565b005b61031e60048036038101906103199190611adf565b610bd1565b005b610328610c55565b6040516103359190612281565b60405180910390f35b610346610c7f565b60405161035391906122b7565b60405180910390f35b61037660048036038101906103719190611adf565b610d11565b604051610383919061229c565b60405180910390f35b6103a660048036038101906103a19190611adf565b610d88565b6040516103b3919061229c565b60405180910390f35b6103d660048036038101906103d19190611a54565b610f05565b6040516103e39190612559565b60405180910390f35b61040660048036038101906104019190611a2b565b610f8c565b604051610413919061229c565b60405180910390f35b610424610fe2565b6040516104319190612559565b60405180910390f35b610454600480360381019061044f9190611a2b565b610feb565b005b610470600480360381019061046b9190611a2b565b611216565b005b60606003805461048190612748565b80601f01602080910402602001604051908101604052809291908181526020018280546104ad90612748565b80156104fa5780601f106104cf576101008083540402835291602001916104fa565b820191906000526020600020905b8154815290600101906020018083116104dd57829003601f168201915b5050505050905090565b60008061050f61129a565b905061051c8185856112a2565b600191505092915050565b6000600254905090565b60006105558460646001856105469190612632565b6105509190612601565b61146d565b610583848460646001866105699190612632565b6105739190612601565b8561057e919061268c565b61163b565b60006105968561059161129a565b610f05565b9050828110156105db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d2906123f9565b60405180910390fd5b6105f8856105e761129a565b85846105f3919061268c565b6112a2565b60019150509392505050565b60006006905090565b60008061061861129a565b905061063981858561062a8589610f05565b61063491906125ab565b6112a2565b600191505092915050565b61065561064f61129a565b8261146d565b50565b6106606118b3565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156106d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c7906124d9565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61078e6118b3565b6107986000611931565b565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461082a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082190612499565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561089a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089190612319565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a38073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a350565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9e90612499565b60405180910390fd5b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2a906123d9565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167ff915cd9fe234de6e8d3afe7bf2388d35b2b6d48e8c629a24602019bde79c213a60405160405180910390a250565b6000610be483610bdf61129a565b610f05565b905081811015610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2090612439565b60405180910390fd5b610c4683610c3561129a565b8484610c41919061268c565b6112a2565b610c50838361146d565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610c8e90612748565b80601f0160208091040260200160405190810160405280929190818152602001828054610cba90612748565b8015610d075780601f10610cdc57610100808354040283529160200191610d07565b820191906000526020600020905b815481529060010190602001808311610cea57829003601f168201915b5050505050905090565b600080610d1c61129a565b90506000610d2a8286610f05565b905083811015610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6690612539565b60405180910390fd5b610d7c82868684036112a2565b60019250505092915050565b6000610dac336064600185610d9d9190612632565b610da79190612601565b61146d565b610de1610db761129a565b846064600186610dc79190612632565b610dd19190612601565b85610ddc919061268c565b61163b565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e65906122d9565b60405180910390fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef290612399565b60405180910390fd5b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006001905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290612499565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e290612519565b60405180910390fd5b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116f906124f9565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f4f2a367e694e71282f29ab5eaa04c4c0be45ac5bf2ca74fb67068b98bdc2887d60405160405180910390a250565b61121e6118b3565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561128e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128590612359565b60405180910390fd5b61129781611931565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611312576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611309906124b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137990612379565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114609190612559565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d490612459565b60405180910390fd5b6114e9826000836119f7565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561156f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156690612339565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116229190612559565b60405180910390a3611636836000846119fc565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a290612479565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561171b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611712906122f9565b60405180910390fd5b6117268383836119f7565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156117ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a3906123b9565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161189a9190612559565b60405180910390a36118ad8484846119fc565b50505050565b6118bb61129a565b73ffffffffffffffffffffffffffffffffffffffff166118d9610c55565b73ffffffffffffffffffffffffffffffffffffffff161461192f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192690612419565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600081359050611a1081612818565b92915050565b600081359050611a258161282f565b92915050565b600060208284031215611a3d57600080fd5b6000611a4b84828501611a01565b91505092915050565b60008060408385031215611a6757600080fd5b6000611a7585828601611a01565b9250506020611a8685828601611a01565b9150509250929050565b600080600060608486031215611aa557600080fd5b6000611ab386828701611a01565b9350506020611ac486828701611a01565b9250506040611ad586828701611a16565b9150509250925092565b60008060408385031215611af257600080fd5b6000611b0085828601611a01565b9250506020611b1185828601611a16565b9150509250929050565b600060208284031215611b2d57600080fd5b6000611b3b84828501611a16565b91505092915050565b611b4d816126c0565b82525050565b611b5c816126d2565b82525050565b6000611b6d8261258f565b611b77818561259a565b9350611b87818560208601612715565b611b9081612807565b840191505092915050565b6000611ba860168361259a565b91507f596f7572206163636f756e742069732066726f7a656e000000000000000000006000830152602082019050919050565b6000611be860238361259a565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611c4e600f8361259a565b91507f496e76616c6964206164647265737300000000000000000000000000000000006000830152602082019050919050565b6000611c8e60228361259a565b91507f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611cf460268361259a565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611d5a60228361259a565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611dc0601b8361259a565b91507f526563697069656e74206163636f756e742069732066726f7a656e00000000006000830152602082019050919050565b6000611e0060268361259a565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611e6660158361259a565b91507f4163636f756e74206973206e6f742066726f7a656e00000000000000000000006000830152602082019050919050565b6000611ea660288361259a565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611f0c60208361259a565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000611f4c60248361259a565b91507f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008301527f616e6365000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611fb260218361259a565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061201860258361259a565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061207e60228361259a565b91507f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960008301527f6f6e0000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006120e460248361259a565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061214a60148361259a565b91507f496e76616c6964206275726e20616464726573730000000000000000000000006000830152602082019050919050565b600061218a60198361259a565b91507f4163636f756e7420697320616c72656164792066726f7a656e000000000000006000830152602082019050919050565b60006121ca601e8361259a565b91507f43616e6e6f7420667265657a6520746865207a65726f206164647265737300006000830152602082019050919050565b600061220a60258361259a565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b61226c816126fe565b82525050565b61227b81612708565b82525050565b60006020820190506122966000830184611b44565b92915050565b60006020820190506122b16000830184611b53565b92915050565b600060208201905081810360008301526122d18184611b62565b905092915050565b600060208201905081810360008301526122f281611b9b565b9050919050565b6000602082019050818103600083015261231281611bdb565b9050919050565b6000602082019050818103600083015261233281611c41565b9050919050565b6000602082019050818103600083015261235281611c81565b9050919050565b6000602082019050818103600083015261237281611ce7565b9050919050565b6000602082019050818103600083015261239281611d4d565b9050919050565b600060208201905081810360008301526123b281611db3565b9050919050565b600060208201905081810360008301526123d281611df3565b9050919050565b600060208201905081810360008301526123f281611e59565b9050919050565b6000602082019050818103600083015261241281611e99565b9050919050565b6000602082019050818103600083015261243281611eff565b9050919050565b6000602082019050818103600083015261245281611f3f565b9050919050565b6000602082019050818103600083015261247281611fa5565b9050919050565b600060208201905081810360008301526124928161200b565b9050919050565b600060208201905081810360008301526124b281612071565b9050919050565b600060208201905081810360008301526124d2816120d7565b9050919050565b600060208201905081810360008301526124f28161213d565b9050919050565b600060208201905081810360008301526125128161217d565b9050919050565b60006020820190508181036000830152612532816121bd565b9050919050565b60006020820190508181036000830152612552816121fd565b9050919050565b600060208201905061256e6000830184612263565b92915050565b60006020820190506125896000830184612272565b92915050565b600081519050919050565b600082825260208201905092915050565b60006125b6826126fe565b91506125c1836126fe565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156125f6576125f561277a565b5b828201905092915050565b600061260c826126fe565b9150612617836126fe565b925082612627576126266127a9565b5b828204905092915050565b600061263d826126fe565b9150612648836126fe565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156126815761268061277a565b5b828202905092915050565b6000612697826126fe565b91506126a2836126fe565b9250828210156126b5576126b461277a565b5b828203905092915050565b60006126cb826126de565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612733578082015181840152602081019050612718565b83811115612742576000848401525b50505050565b6000600282049050600182168061276057607f821691505b60208210811415612774576127736127d8565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b612821816126c0565b811461282c57600080fd5b50565b612838816126fe565b811461284357600080fd5b5056fea2646970667358221220089cc306619851ab1b17652da10d9eef7d9020a4f8b29337441d73f308c4183f64736f6c63430008000033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806375829def116100c3578063a9059cbb1161007c578063a9059cbb1461038c578063dd62ed3e146103bc578063e816d97f146103ec578063f01f20df1461041c578063f26c159f1461043a578063f2fde38b146104565761014d565b806375829def146102cc578063788649ea146102e857806379cc6790146103045780638da5cb5b1461032057806395d89b411461033e578063a457c2d71461035c5761014d565b80633950935111610115578063395093511461020c57806342966c681461023c5780636bd89cdd1461025857806370a082311461027457806370d5ae05146102a4578063715018a6146102c25761014d565b806306fdde0314610152578063095ea7b31461017057806318160ddd146101a057806323b872dd146101be578063313ce567146101ee575b600080fd5b61015a610472565b60405161016791906122b7565b60405180910390f35b61018a60048036038101906101859190611adf565b610504565b604051610197919061229c565b60405180910390f35b6101a8610527565b6040516101b59190612559565b60405180910390f35b6101d860048036038101906101d39190611a90565b610531565b6040516101e5919061229c565b60405180910390f35b6101f6610604565b6040516102039190612574565b60405180910390f35b61022660048036038101906102219190611adf565b61060d565b604051610233919061229c565b60405180910390f35b61025660048036038101906102519190611b1b565b610644565b005b610272600480360381019061026d9190611a2b565b610658565b005b61028e60048036038101906102899190611a2b565b610714565b60405161029b9190612559565b60405180910390f35b6102ac61075c565b6040516102b99190612281565b60405180910390f35b6102ca610786565b005b6102e660048036038101906102e19190611a2b565b61079a565b005b61030260048036038101906102fd9190611a2b565b610a17565b005b61031e60048036038101906103199190611adf565b610bd1565b005b610328610c55565b6040516103359190612281565b60405180910390f35b610346610c7f565b60405161035391906122b7565b60405180910390f35b61037660048036038101906103719190611adf565b610d11565b604051610383919061229c565b60405180910390f35b6103a660048036038101906103a19190611adf565b610d88565b6040516103b3919061229c565b60405180910390f35b6103d660048036038101906103d19190611a54565b610f05565b6040516103e39190612559565b60405180910390f35b61040660048036038101906104019190611a2b565b610f8c565b604051610413919061229c565b60405180910390f35b610424610fe2565b6040516104319190612559565b60405180910390f35b610454600480360381019061044f9190611a2b565b610feb565b005b610470600480360381019061046b9190611a2b565b611216565b005b60606003805461048190612748565b80601f01602080910402602001604051908101604052809291908181526020018280546104ad90612748565b80156104fa5780601f106104cf576101008083540402835291602001916104fa565b820191906000526020600020905b8154815290600101906020018083116104dd57829003601f168201915b5050505050905090565b60008061050f61129a565b905061051c8185856112a2565b600191505092915050565b6000600254905090565b60006105558460646001856105469190612632565b6105509190612601565b61146d565b610583848460646001866105699190612632565b6105739190612601565b8561057e919061268c565b61163b565b60006105968561059161129a565b610f05565b9050828110156105db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d2906123f9565b60405180910390fd5b6105f8856105e761129a565b85846105f3919061268c565b6112a2565b60019150509392505050565b60006006905090565b60008061061861129a565b905061063981858561062a8589610f05565b61063491906125ab565b6112a2565b600191505092915050565b61065561064f61129a565b8261146d565b50565b6106606118b3565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156106d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c7906124d9565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61078e6118b3565b6107986000611931565b565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461082a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082190612499565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561089a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089190612319565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a38073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a350565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9e90612499565b60405180910390fd5b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2a906123d9565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167ff915cd9fe234de6e8d3afe7bf2388d35b2b6d48e8c629a24602019bde79c213a60405160405180910390a250565b6000610be483610bdf61129a565b610f05565b905081811015610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2090612439565b60405180910390fd5b610c4683610c3561129a565b8484610c41919061268c565b6112a2565b610c50838361146d565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610c8e90612748565b80601f0160208091040260200160405190810160405280929190818152602001828054610cba90612748565b8015610d075780601f10610cdc57610100808354040283529160200191610d07565b820191906000526020600020905b815481529060010190602001808311610cea57829003601f168201915b5050505050905090565b600080610d1c61129a565b90506000610d2a8286610f05565b905083811015610d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6690612539565b60405180910390fd5b610d7c82868684036112a2565b60019250505092915050565b6000610dac336064600185610d9d9190612632565b610da79190612601565b61146d565b610de1610db761129a565b846064600186610dc79190612632565b610dd19190612601565b85610ddc919061268c565b61163b565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e65906122d9565b60405180910390fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef290612399565b60405180910390fd5b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006001905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290612499565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e290612519565b60405180910390fd5b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116f906124f9565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f4f2a367e694e71282f29ab5eaa04c4c0be45ac5bf2ca74fb67068b98bdc2887d60405160405180910390a250565b61121e6118b3565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561128e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128590612359565b60405180910390fd5b61129781611931565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611312576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611309906124b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137990612379565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114609190612559565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d490612459565b60405180910390fd5b6114e9826000836119f7565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561156f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156690612339565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116229190612559565b60405180910390a3611636836000846119fc565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a290612479565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561171b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611712906122f9565b60405180910390fd5b6117268383836119f7565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156117ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a3906123b9565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161189a9190612559565b60405180910390a36118ad8484846119fc565b50505050565b6118bb61129a565b73ffffffffffffffffffffffffffffffffffffffff166118d9610c55565b73ffffffffffffffffffffffffffffffffffffffff161461192f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192690612419565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600081359050611a1081612818565b92915050565b600081359050611a258161282f565b92915050565b600060208284031215611a3d57600080fd5b6000611a4b84828501611a01565b91505092915050565b60008060408385031215611a6757600080fd5b6000611a7585828601611a01565b9250506020611a8685828601611a01565b9150509250929050565b600080600060608486031215611aa557600080fd5b6000611ab386828701611a01565b9350506020611ac486828701611a01565b9250506040611ad586828701611a16565b9150509250925092565b60008060408385031215611af257600080fd5b6000611b0085828601611a01565b9250506020611b1185828601611a16565b9150509250929050565b600060208284031215611b2d57600080fd5b6000611b3b84828501611a16565b91505092915050565b611b4d816126c0565b82525050565b611b5c816126d2565b82525050565b6000611b6d8261258f565b611b77818561259a565b9350611b87818560208601612715565b611b9081612807565b840191505092915050565b6000611ba860168361259a565b91507f596f7572206163636f756e742069732066726f7a656e000000000000000000006000830152602082019050919050565b6000611be860238361259a565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611c4e600f8361259a565b91507f496e76616c6964206164647265737300000000000000000000000000000000006000830152602082019050919050565b6000611c8e60228361259a565b91507f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611cf460268361259a565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611d5a60228361259a565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611dc0601b8361259a565b91507f526563697069656e74206163636f756e742069732066726f7a656e00000000006000830152602082019050919050565b6000611e0060268361259a565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611e6660158361259a565b91507f4163636f756e74206973206e6f742066726f7a656e00000000000000000000006000830152602082019050919050565b6000611ea660288361259a565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611f0c60208361259a565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000611f4c60248361259a565b91507f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008301527f616e6365000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611fb260218361259a565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061201860258361259a565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061207e60228361259a565b91507f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960008301527f6f6e0000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006120e460248361259a565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061214a60148361259a565b91507f496e76616c6964206275726e20616464726573730000000000000000000000006000830152602082019050919050565b600061218a60198361259a565b91507f4163636f756e7420697320616c72656164792066726f7a656e000000000000006000830152602082019050919050565b60006121ca601e8361259a565b91507f43616e6e6f7420667265657a6520746865207a65726f206164647265737300006000830152602082019050919050565b600061220a60258361259a565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b61226c816126fe565b82525050565b61227b81612708565b82525050565b60006020820190506122966000830184611b44565b92915050565b60006020820190506122b16000830184611b53565b92915050565b600060208201905081810360008301526122d18184611b62565b905092915050565b600060208201905081810360008301526122f281611b9b565b9050919050565b6000602082019050818103600083015261231281611bdb565b9050919050565b6000602082019050818103600083015261233281611c41565b9050919050565b6000602082019050818103600083015261235281611c81565b9050919050565b6000602082019050818103600083015261237281611ce7565b9050919050565b6000602082019050818103600083015261239281611d4d565b9050919050565b600060208201905081810360008301526123b281611db3565b9050919050565b600060208201905081810360008301526123d281611df3565b9050919050565b600060208201905081810360008301526123f281611e59565b9050919050565b6000602082019050818103600083015261241281611e99565b9050919050565b6000602082019050818103600083015261243281611eff565b9050919050565b6000602082019050818103600083015261245281611f3f565b9050919050565b6000602082019050818103600083015261247281611fa5565b9050919050565b600060208201905081810360008301526124928161200b565b9050919050565b600060208201905081810360008301526124b281612071565b9050919050565b600060208201905081810360008301526124d2816120d7565b9050919050565b600060208201905081810360008301526124f28161213d565b9050919050565b600060208201905081810360008301526125128161217d565b9050919050565b60006020820190508181036000830152612532816121bd565b9050919050565b60006020820190508181036000830152612552816121fd565b9050919050565b600060208201905061256e6000830184612263565b92915050565b60006020820190506125896000830184612272565b92915050565b600081519050919050565b600082825260208201905092915050565b60006125b6826126fe565b91506125c1836126fe565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156125f6576125f561277a565b5b828201905092915050565b600061260c826126fe565b9150612617836126fe565b925082612627576126266127a9565b5b828204905092915050565b600061263d826126fe565b9150612648836126fe565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156126815761268061277a565b5b828202905092915050565b6000612697826126fe565b91506126a2836126fe565b9250828210156126b5576126b461277a565b5b828203905092915050565b60006126cb826126de565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612733578082015181840152602081019050612718565b83811115612742576000848401525b50505050565b6000600282049050600182168061276057607f821691505b60208210811415612774576127736127d8565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b612821816126c0565b811461282c57600080fd5b50565b612838816126fe565b811461284357600080fd5b5056fea2646970667358221220089cc306619851ab1b17652da10d9eef7d9020a4f8b29337441d73f308c4183f64736f6c63430008000033

Deployed Bytecode Sourcemap

20596:3751:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9351:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11702:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10471:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21679:507;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22807:107;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13187:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22384:83;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22194:182;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10642:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23028:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2776:103;;;:::i;:::-;;24091:253;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23735:219;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22475:324;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2128:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9570:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13928:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21201:470;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11231:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23966:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22922:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23428:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3034:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9351:100;9405:13;9438:5;9431:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9351:100;:::o;11702:201::-;11785:4;11802:13;11818:12;:10;:12::i;:::-;11802:28;;11841:32;11850:5;11857:7;11866:6;11841:8;:32::i;:::-;11891:4;11884:11;;;11702:201;;;;:::o;10471:108::-;10532:7;10559:12;;10552:19;;10471:108;:::o;21679:507::-;21785:4;21802:46;21808:6;21844:3;20820:1;21816:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;21802:5;:46::i;:::-;21859:70;21869:6;21877:9;21925:3;20820:1;21897:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;21888:6;:40;;;;:::i;:::-;21859:9;:70::i;:::-;21940:24;21967:31;21977:6;21985:12;:10;:12::i;:::-;21967:9;:31::i;:::-;21940:58;;22037:6;22017:16;:26;;22009:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;22099:57;22108:6;22116:12;:10;:12::i;:::-;22149:6;22130:16;:25;;;;:::i;:::-;22099:8;:57::i;:::-;22174:4;22167:11;;;21679:507;;;;;:::o;22807:107::-;22865:5;20679:1;22883:23;;22807:107;:::o;13187:238::-;13275:4;13292:13;13308:12;:10;:12::i;:::-;13292:28;;13331:64;13340:5;13347:7;13384:10;13356:25;13366:5;13373:7;13356:9;:25::i;:::-;:38;;;;:::i;:::-;13331:8;:64::i;:::-;13413:4;13406:11;;;13187:238;;;;:::o;22384:83::-;22432:27;22438:12;:10;:12::i;:::-;22452:6;22432:5;:27::i;:::-;22384:83;:::o;22194:182::-;2014:13;:11;:13::i;:::-;22303:1:::1;22279:26;;:12;:26;;;;22271:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;22356:12;22341;;:27;;;;;;;;;;;;;;;;;;22194:182:::0;:::o;10642:127::-;10716:7;10743:9;:18;10753:7;10743:18;;;;;;;;;;;;;;;;10736:25;;10642:127;;;:::o;23028:91::-;23072:7;23099:12;;;;;;;;;;;23092:19;;23028:91;:::o;2776:103::-;2014:13;:11;:13::i;:::-;2841:30:::1;2868:1;2841:18;:30::i;:::-;2776:103::o:0;24091:253::-;23351:6;;;;;;;;;;;23337:20;;:10;:20;;;23329:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24184:1:::1;24164:22;;:8;:22;;;;24156:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;24221:8;24213:5;;:16;;;;;;;;;;;;;;;;;;24245:8;24236:6;;:17;;;;;;;;;;;;;;;;;;24285:8;24265:29;;24278:5;;;;;;;;;;;24265:29;;;;;;;;;;;;24327:8;24306:30;;24319:6;;;;;;;;;;;24306:30;;;;;;;;;;;;24091:253:::0;:::o;23735:219::-;23351:6;;;;;;;;;;;23337:20;;:10;:20;;;23329:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23813:15:::1;:24;23829:7;23813:24;;;;;;;;;;;;;;;;;;;;;;;;;23805:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;23901:5;23874:15;:24;23890:7;23874:24;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;23938:7;23922:24;;;;;;;;;;;;23735:219:::0;:::o;22475:324::-;22544:24;22571:32;22581:7;22590:12;:10;:12::i;:::-;22571:9;:32::i;:::-;22544:59;;22642:6;22622:16;:26;;22614:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;22700:58;22709:7;22718:12;:10;:12::i;:::-;22751:6;22732:16;:25;;;;:::i;:::-;22700:8;:58::i;:::-;22769:22;22775:7;22784:6;22769:5;:22::i;:::-;22475:324;;;:::o;2128:87::-;2174:7;2201:6;;;;;;;;;;;2194:13;;2128:87;:::o;9570:104::-;9626:13;9659:7;9652:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9570:104;:::o;13928:436::-;14021:4;14038:13;14054:12;:10;:12::i;:::-;14038:28;;14077:24;14104:25;14114:5;14121:7;14104:9;:25::i;:::-;14077:52;;14168:15;14148:16;:35;;14140:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14261:60;14270:5;14277:7;14305:15;14286:16;:34;14261:8;:60::i;:::-;14352:4;14345:11;;;;13928:436;;;;:::o;21201:470::-;21287:4;21304:50;21310:10;21350:3;20820:1;21322:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;21304:5;:50::i;:::-;21365:76;21375:12;:10;:12::i;:::-;21389:9;21437:3;20820:1;21409:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;21400:6;:40;;;;:::i;:::-;21365:9;:76::i;:::-;21509:15;:27;21525:10;21509:27;;;;;;;;;;;;;;;;;;;;;;;;;21508:28;21500:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;21583:15;:26;21599:9;21583:26;;;;;;;;;;;;;;;;;;;;;;;;;21582:27;21574:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21659:4;21652:11;;21201:470;;;;:::o;11231:151::-;11320:7;11347:11;:18;11359:5;11347:18;;;;;;;;;;;;;;;:27;11366:7;11347:27;;;;;;;;;;;;;;;;11340:34;;11231:151;;;;:::o;23966:119::-;24029:4;24053:15;:24;24069:7;24053:24;;;;;;;;;;;;;;;;;;;;;;;;;24046:31;;23966:119;;;:::o;22922:98::-;22969:7;20820:1;22989:23;;22922:98;:::o;23428:295::-;23351:6;;;;;;;;;;;23337:20;;:10;:20;;;23329:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23524:1:::1;23505:21;;:7;:21;;;;23497:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23581:15;:24;23597:7;23581:24;;;;;;;;;;;;;;;;;;;;;;;;;23580:25;23572:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;23673:4;23646:15;:24;23662:7;23646:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;23707:7;23693:22;;;;;;;;;;;;23428:295:::0;:::o;3034:201::-;2014:13;:11;:13::i;:::-;3143:1:::1;3123:22;;:8;:22;;;;3115:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3199:28;3218:8;3199:18;:28::i;:::-;3034:201:::0;:::o;679:98::-;732:7;759:10;752:17;;679:98;:::o;17955:380::-;18108:1;18091:19;;:5;:19;;;;18083:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18189:1;18170:21;;:7;:21;;;;18162:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18273:6;18243:11;:18;18255:5;18243:18;;;;;;;;;;;;;;;:27;18262:7;18243:27;;;;;;;;;;;;;;;:36;;;;18311:7;18295:32;;18304:5;18295:32;;;18320:6;18295:32;;;;;;:::i;:::-;;;;;;;;17955:380;;;:::o;16842:675::-;16945:1;16926:21;;:7;:21;;;;16918:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16998:49;17019:7;17036:1;17040:6;16998:20;:49::i;:::-;17060:22;17085:9;:18;17095:7;17085:18;;;;;;;;;;;;;;;;17060:43;;17140:6;17122:14;:24;;17114:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17259:6;17242:14;:23;17221:9;:18;17231:7;17221:18;;;;;;;;;;;;;;;:44;;;;17376:6;17360:12;;:22;;;;;;;;;;;17437:1;17411:37;;17420:7;17411:37;;;17441:6;17411:37;;;;;;:::i;:::-;;;;;;;;17461:48;17481:7;17498:1;17502:6;17461:19;:48::i;:::-;16842:675;;;:::o;14834:840::-;14981:1;14965:18;;:4;:18;;;;14957:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15058:1;15044:16;;:2;:16;;;;15036:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15113:38;15134:4;15140:2;15144:6;15113:20;:38::i;:::-;15164:19;15186:9;:15;15196:4;15186:15;;;;;;;;;;;;;;;;15164:37;;15235:6;15220:11;:21;;15212:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;15352:6;15338:11;:20;15320:9;:15;15330:4;15320:15;;;;;;;;;;;;;;;:38;;;;15555:6;15538:9;:13;15548:2;15538:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;15605:2;15590:26;;15599:4;15590:26;;;15609:6;15590:26;;;;;;:::i;:::-;;;;;;;;15629:37;15649:4;15655:2;15659:6;15629:19;:37::i;:::-;14834:840;;;;:::o;2293:132::-;2368:12;:10;:12::i;:::-;2357:23;;:7;:5;:7::i;:::-;:23;;;2349:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2293:132::o;3395:191::-;3469:16;3488:6;;;;;;;;;;;3469:25;;3514:8;3505:6;;:17;;;;;;;;;;;;;;;;;;3569:8;3538:40;;3559:8;3538:40;;;;;;;;;;;;3395:191;;:::o;19679:125::-;;;;:::o;20408:124::-;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;;;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;;;;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;;;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:262::-;;2057:2;2045:9;2036:7;2032:23;2028:32;2025:2;;;2073:1;2070;2063:12;2025:2;2116:1;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2087:117;2015:196;;;;:::o;2217:118::-;2304:24;2322:5;2304:24;:::i;:::-;2299:3;2292:37;2282:53;;:::o;2341:109::-;2422:21;2437:5;2422:21;:::i;:::-;2417:3;2410:34;2400:50;;:::o;2456:364::-;;2572:39;2605:5;2572:39;:::i;:::-;2627:71;2691:6;2686:3;2627:71;:::i;:::-;2620:78;;2707:52;2752:6;2747:3;2740:4;2733:5;2729:16;2707:52;:::i;:::-;2784:29;2806:6;2784:29;:::i;:::-;2779:3;2775:39;2768:46;;2548:272;;;;;:::o;2826:320::-;;2989:67;3053:2;3048:3;2989:67;:::i;:::-;2982:74;;3086:24;3082:1;3077:3;3073:11;3066:45;3137:2;3132:3;3128:12;3121:19;;2972:174;;;:::o;3152:367::-;;3315:67;3379:2;3374:3;3315:67;:::i;:::-;3308:74;;3412:34;3408:1;3403:3;3399:11;3392:55;3478:5;3473:2;3468:3;3464:12;3457:27;3510:2;3505:3;3501:12;3494:19;;3298:221;;;:::o;3525:313::-;;3688:67;3752:2;3747:3;3688:67;:::i;:::-;3681:74;;3785:17;3781:1;3776:3;3772:11;3765:38;3829:2;3824:3;3820:12;3813:19;;3671:167;;;:::o;3844:366::-;;4007:67;4071:2;4066:3;4007:67;:::i;:::-;4000:74;;4104:34;4100:1;4095:3;4091:11;4084:55;4170:4;4165:2;4160:3;4156:12;4149:26;4201:2;4196:3;4192:12;4185:19;;3990:220;;;:::o;4216:370::-;;4379:67;4443:2;4438:3;4379:67;:::i;:::-;4372:74;;4476:34;4472:1;4467:3;4463:11;4456:55;4542:8;4537:2;4532:3;4528:12;4521:30;4577:2;4572:3;4568:12;4561:19;;4362:224;;;:::o;4592:366::-;;4755:67;4819:2;4814:3;4755:67;:::i;:::-;4748:74;;4852:34;4848:1;4843:3;4839:11;4832:55;4918:4;4913:2;4908:3;4904:12;4897:26;4949:2;4944:3;4940:12;4933:19;;4738:220;;;:::o;4964:325::-;;5127:67;5191:2;5186:3;5127:67;:::i;:::-;5120:74;;5224:29;5220:1;5215:3;5211:11;5204:50;5280:2;5275:3;5271:12;5264:19;;5110:179;;;:::o;5295:370::-;;5458:67;5522:2;5517:3;5458:67;:::i;:::-;5451:74;;5555:34;5551:1;5546:3;5542:11;5535:55;5621:8;5616:2;5611:3;5607:12;5600:30;5656:2;5651:3;5647:12;5640:19;;5441:224;;;:::o;5671:319::-;;5834:67;5898:2;5893:3;5834:67;:::i;:::-;5827:74;;5931:23;5927:1;5922:3;5918:11;5911:44;5981:2;5976:3;5972:12;5965:19;;5817:173;;;:::o;5996:372::-;;6159:67;6223:2;6218:3;6159:67;:::i;:::-;6152:74;;6256:34;6252:1;6247:3;6243:11;6236:55;6322:10;6317:2;6312:3;6308:12;6301:32;6359:2;6354:3;6350:12;6343:19;;6142:226;;;:::o;6374:330::-;;6537:67;6601:2;6596:3;6537:67;:::i;:::-;6530:74;;6634:34;6630:1;6625:3;6621:11;6614:55;6695:2;6690:3;6686:12;6679:19;;6520:184;;;:::o;6710:368::-;;6873:67;6937:2;6932:3;6873:67;:::i;:::-;6866:74;;6970:34;6966:1;6961:3;6957:11;6950:55;7036:6;7031:2;7026:3;7022:12;7015:28;7069:2;7064:3;7060:12;7053:19;;6856:222;;;:::o;7084:365::-;;7247:67;7311:2;7306:3;7247:67;:::i;:::-;7240:74;;7344:34;7340:1;7335:3;7331:11;7324:55;7410:3;7405:2;7400:3;7396:12;7389:25;7440:2;7435:3;7431:12;7424:19;;7230:219;;;:::o;7455:369::-;;7618:67;7682:2;7677:3;7618:67;:::i;:::-;7611:74;;7715:34;7711:1;7706:3;7702:11;7695:55;7781:7;7776:2;7771:3;7767:12;7760:29;7815:2;7810:3;7806:12;7799:19;;7601:223;;;:::o;7830:366::-;;7993:67;8057:2;8052:3;7993:67;:::i;:::-;7986:74;;8090:34;8086:1;8081:3;8077:11;8070:55;8156:4;8151:2;8146:3;8142:12;8135:26;8187:2;8182:3;8178:12;8171:19;;7976:220;;;:::o;8202:368::-;;8365:67;8429:2;8424:3;8365:67;:::i;:::-;8358:74;;8462:34;8458:1;8453:3;8449:11;8442:55;8528:6;8523:2;8518:3;8514:12;8507:28;8561:2;8556:3;8552:12;8545:19;;8348:222;;;:::o;8576:318::-;;8739:67;8803:2;8798:3;8739:67;:::i;:::-;8732:74;;8836:22;8832:1;8827:3;8823:11;8816:43;8885:2;8880:3;8876:12;8869:19;;8722:172;;;:::o;8900:323::-;;9063:67;9127:2;9122:3;9063:67;:::i;:::-;9056:74;;9160:27;9156:1;9151:3;9147:11;9140:48;9214:2;9209:3;9205:12;9198:19;;9046:177;;;:::o;9229:328::-;;9392:67;9456:2;9451:3;9392:67;:::i;:::-;9385:74;;9489:32;9485:1;9480:3;9476:11;9469:53;9548:2;9543:3;9539:12;9532:19;;9375:182;;;:::o;9563:369::-;;9726:67;9790:2;9785:3;9726:67;:::i;:::-;9719:74;;9823:34;9819:1;9814:3;9810:11;9803:55;9889:7;9884:2;9879:3;9875:12;9868:29;9923:2;9918:3;9914:12;9907:19;;9709:223;;;:::o;9938:118::-;10025:24;10043:5;10025:24;:::i;:::-;10020:3;10013:37;10003:53;;:::o;10062:112::-;10145:22;10161:5;10145:22;:::i;:::-;10140:3;10133:35;10123:51;;:::o;10180:222::-;;10311:2;10300:9;10296:18;10288:26;;10324:71;10392:1;10381:9;10377:17;10368:6;10324:71;:::i;:::-;10278:124;;;;:::o;10408:210::-;;10533:2;10522:9;10518:18;10510:26;;10546:65;10608:1;10597:9;10593:17;10584:6;10546:65;:::i;:::-;10500:118;;;;:::o;10624:313::-;;10775:2;10764:9;10760:18;10752:26;;10824:9;10818:4;10814:20;10810:1;10799:9;10795:17;10788:47;10852:78;10925:4;10916:6;10852:78;:::i;:::-;10844:86;;10742:195;;;;:::o;10943:419::-;;11147:2;11136:9;11132:18;11124:26;;11196:9;11190:4;11186:20;11182:1;11171:9;11167:17;11160:47;11224:131;11350:4;11224:131;:::i;:::-;11216:139;;11114:248;;;:::o;11368:419::-;;11572:2;11561:9;11557:18;11549:26;;11621:9;11615:4;11611:20;11607:1;11596:9;11592:17;11585:47;11649:131;11775:4;11649:131;:::i;:::-;11641:139;;11539:248;;;:::o;11793:419::-;;11997:2;11986:9;11982:18;11974:26;;12046:9;12040:4;12036:20;12032:1;12021:9;12017:17;12010:47;12074:131;12200:4;12074:131;:::i;:::-;12066:139;;11964:248;;;:::o;12218:419::-;;12422:2;12411:9;12407:18;12399:26;;12471:9;12465:4;12461:20;12457:1;12446:9;12442:17;12435:47;12499:131;12625:4;12499:131;:::i;:::-;12491:139;;12389:248;;;:::o;12643:419::-;;12847:2;12836:9;12832:18;12824:26;;12896:9;12890:4;12886:20;12882:1;12871:9;12867:17;12860:47;12924:131;13050:4;12924:131;:::i;:::-;12916:139;;12814:248;;;:::o;13068:419::-;;13272:2;13261:9;13257:18;13249:26;;13321:9;13315:4;13311:20;13307:1;13296:9;13292:17;13285:47;13349:131;13475:4;13349:131;:::i;:::-;13341:139;;13239:248;;;:::o;13493:419::-;;13697:2;13686:9;13682:18;13674:26;;13746:9;13740:4;13736:20;13732:1;13721:9;13717:17;13710:47;13774:131;13900:4;13774:131;:::i;:::-;13766:139;;13664:248;;;:::o;13918:419::-;;14122:2;14111:9;14107:18;14099:26;;14171:9;14165:4;14161:20;14157:1;14146:9;14142:17;14135:47;14199:131;14325:4;14199:131;:::i;:::-;14191:139;;14089:248;;;:::o;14343:419::-;;14547:2;14536:9;14532:18;14524:26;;14596:9;14590:4;14586:20;14582:1;14571:9;14567:17;14560:47;14624:131;14750:4;14624:131;:::i;:::-;14616:139;;14514:248;;;:::o;14768:419::-;;14972:2;14961:9;14957:18;14949:26;;15021:9;15015:4;15011:20;15007:1;14996:9;14992:17;14985:47;15049:131;15175:4;15049:131;:::i;:::-;15041:139;;14939:248;;;:::o;15193:419::-;;15397:2;15386:9;15382:18;15374:26;;15446:9;15440:4;15436:20;15432:1;15421:9;15417:17;15410:47;15474:131;15600:4;15474:131;:::i;:::-;15466:139;;15364:248;;;:::o;15618:419::-;;15822:2;15811:9;15807:18;15799:26;;15871:9;15865:4;15861:20;15857:1;15846:9;15842:17;15835:47;15899:131;16025:4;15899:131;:::i;:::-;15891:139;;15789:248;;;:::o;16043:419::-;;16247:2;16236:9;16232:18;16224:26;;16296:9;16290:4;16286:20;16282:1;16271:9;16267:17;16260:47;16324:131;16450:4;16324:131;:::i;:::-;16316:139;;16214:248;;;:::o;16468:419::-;;16672:2;16661:9;16657:18;16649:26;;16721:9;16715:4;16711:20;16707:1;16696:9;16692:17;16685:47;16749:131;16875:4;16749:131;:::i;:::-;16741:139;;16639:248;;;:::o;16893:419::-;;17097:2;17086:9;17082:18;17074:26;;17146:9;17140:4;17136:20;17132:1;17121:9;17117:17;17110:47;17174:131;17300:4;17174:131;:::i;:::-;17166:139;;17064:248;;;:::o;17318:419::-;;17522:2;17511:9;17507:18;17499:26;;17571:9;17565:4;17561:20;17557:1;17546:9;17542:17;17535:47;17599:131;17725:4;17599:131;:::i;:::-;17591:139;;17489:248;;;:::o;17743:419::-;;17947:2;17936:9;17932:18;17924:26;;17996:9;17990:4;17986:20;17982:1;17971:9;17967:17;17960:47;18024:131;18150:4;18024:131;:::i;:::-;18016:139;;17914:248;;;:::o;18168:419::-;;18372:2;18361:9;18357:18;18349:26;;18421:9;18415:4;18411:20;18407:1;18396:9;18392:17;18385:47;18449:131;18575:4;18449:131;:::i;:::-;18441:139;;18339:248;;;:::o;18593:419::-;;18797:2;18786:9;18782:18;18774:26;;18846:9;18840:4;18836:20;18832:1;18821:9;18817:17;18810:47;18874:131;19000:4;18874:131;:::i;:::-;18866:139;;18764:248;;;:::o;19018:419::-;;19222:2;19211:9;19207:18;19199:26;;19271:9;19265:4;19261:20;19257:1;19246:9;19242:17;19235:47;19299:131;19425:4;19299:131;:::i;:::-;19291:139;;19189:248;;;:::o;19443:222::-;;19574:2;19563:9;19559:18;19551:26;;19587:71;19655:1;19644:9;19640:17;19631:6;19587:71;:::i;:::-;19541:124;;;;:::o;19671:214::-;;19798:2;19787:9;19783:18;19775:26;;19811:67;19875:1;19864:9;19860:17;19851:6;19811:67;:::i;:::-;19765:120;;;;:::o;19891:99::-;;19977:5;19971:12;19961:22;;19950:40;;;:::o;19996:169::-;;20114:6;20109:3;20102:19;20154:4;20149:3;20145:14;20130:29;;20092:73;;;;:::o;20171:305::-;;20230:20;20248:1;20230:20;:::i;:::-;20225:25;;20264:20;20282:1;20264:20;:::i;:::-;20259:25;;20418:1;20350:66;20346:74;20343:1;20340:81;20337:2;;;20424:18;;:::i;:::-;20337:2;20468:1;20465;20461:9;20454:16;;20215:261;;;;:::o;20482:185::-;;20539:20;20557:1;20539:20;:::i;:::-;20534:25;;20573:20;20591:1;20573:20;:::i;:::-;20568:25;;20612:1;20602:2;;20617:18;;:::i;:::-;20602:2;20659:1;20656;20652:9;20647:14;;20524:143;;;;:::o;20673:348::-;;20736:20;20754:1;20736:20;:::i;:::-;20731:25;;20770:20;20788:1;20770:20;:::i;:::-;20765:25;;20958:1;20890:66;20886:74;20883:1;20880:81;20875:1;20868:9;20861:17;20857:105;20854:2;;;20965:18;;:::i;:::-;20854:2;21013:1;21010;21006:9;20995:20;;20721:300;;;;:::o;21027:191::-;;21087:20;21105:1;21087:20;:::i;:::-;21082:25;;21121:20;21139:1;21121:20;:::i;:::-;21116:25;;21160:1;21157;21154:8;21151:2;;;21165:18;;:::i;:::-;21151:2;21210:1;21207;21203:9;21195:17;;21072:146;;;;:::o;21224:96::-;;21290:24;21308:5;21290:24;:::i;:::-;21279:35;;21269:51;;;:::o;21326:90::-;;21403:5;21396:13;21389:21;21378:32;;21368:48;;;:::o;21422:126::-;;21499:42;21492:5;21488:54;21477:65;;21467:81;;;:::o;21554:77::-;;21620:5;21609:16;;21599:32;;;:::o;21637:86::-;;21712:4;21705:5;21701:16;21690:27;;21680:43;;;:::o;21729:307::-;21797:1;21807:113;21821:6;21818:1;21815:13;21807:113;;;21906:1;21901:3;21897:11;21891:18;21887:1;21882:3;21878:11;21871:39;21843:2;21840:1;21836:10;21831:15;;21807:113;;;21938:6;21935:1;21932:13;21929:2;;;22018:1;22009:6;22004:3;22000:16;21993:27;21929:2;21778:258;;;;:::o;22042:320::-;;22123:1;22117:4;22113:12;22103:22;;22170:1;22164:4;22160:12;22191:18;22181:2;;22247:4;22239:6;22235:17;22225:27;;22181:2;22309;22301:6;22298:14;22278:18;22275:38;22272:2;;;22328:18;;:::i;:::-;22272:2;22093:269;;;;:::o;22368:180::-;22416:77;22413:1;22406:88;22513:4;22510:1;22503:15;22537:4;22534:1;22527:15;22554:180;22602:77;22599:1;22592:88;22699:4;22696:1;22689:15;22723:4;22720:1;22713:15;22740:180;22788:77;22785:1;22778:88;22885:4;22882:1;22875:15;22909:4;22906:1;22899:15;22926:102;;23018:2;23014:7;23009:2;23002:5;22998:14;22994:28;22984:38;;22974:54;;;:::o;23034:122::-;23107:24;23125:5;23107:24;:::i;:::-;23100:5;23097:35;23087:2;;23146:1;23143;23136:12;23087:2;23077:79;:::o;23162:122::-;23235:24;23253:5;23235:24;:::i;:::-;23228:5;23225:35;23215:2;;23274:1;23271;23264:12;23215:2;23205:79;:::o

Swarm Source

ipfs://089cc306619851ab1b17652da10d9eef7d9020a4f8b29337441d73f308c4183f
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.