ETH Price: $2,532.69 (+0.05%)

Token

Komodo (KOMODO)
 

Overview

Max Total Supply

8,888,888,888,888 KOMODO

Holders

137

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
39,603,535,958.588019224591991976 KOMODO

Value
$0.00
0xdba16198155eb3cdfd236ad6a7c88b5d892be67e
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
KOMODO

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-28
*/

/**
 *Submitted for verification at Etherscan.io on 2023-04-14
*/

// Sources flattened with hardhat v2.7.0 https://hardhat.org

// File @openzeppelin/contracts/utils/[email protected]

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.0 (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/[email protected]


// OpenZeppelin Contracts v4.4.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 Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

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

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


// OpenZeppelin Contracts v4.4.0 (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

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

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

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

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

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

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

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

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


// File @openzeppelin/contracts/token/ERC20/extensions/[email protected]


// OpenZeppelin Contracts v4.4.0 (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/[email protected]


// OpenZeppelin Contracts v4.4.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.zeppelin.solutions/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:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

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

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

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

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

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

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

        _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;
        }
        _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 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 contracts/KOMODO.sol



pragma solidity ^0.8.0;


contract KOMODO is Ownable, ERC20 {
    bool public limited;
    uint256 public maxHoldingAmount;
    uint256 public minHoldingAmount;
    address public uniswapV2Pair;
    mapping(address => bool) public blacklists;

    constructor(uint256 _totalSupply) ERC20("Komodo", "KOMODO") {
        _mint(msg.sender, _totalSupply);
    }

    function blacklist(address[] calldata _address, bool _isBlacklisting) external onlyOwner {
 
        for (uint256 i; i< _address.length; i++)
        {
            blacklists[_address[i]] = _isBlacklisting;
        }
    }
 

    function setRule(bool _limited, address _uniswapV2Pair, uint256 _maxHoldingAmount, uint256 _minHoldingAmount) external onlyOwner {
        limited = _limited;
        uniswapV2Pair = _uniswapV2Pair;
        maxHoldingAmount = _maxHoldingAmount;
        minHoldingAmount = _minHoldingAmount;
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) override internal virtual {
        require(!blacklists[to] && !blacklists[from], "Blacklisted");
        
        if (uniswapV2Pair == address(0)) {
            require(from == owner() || to == owner(), "trading is not started");
            return;
        }

        if (limited && from == uniswapV2Pair) {
            require(super.balanceOf(to) + amount <= maxHoldingAmount && super.balanceOf(to) + amount >= minHoldingAmount, "Forbid");
        }
    }

    function burn(uint256 value) external {
        _burn(msg.sender, value);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"_totalSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"bool","name":"_limited","type":"bool"},{"internalType":"address","name":"_uniswapV2Pair","type":"address"},{"internalType":"uint256","name":"_maxHoldingAmount","type":"uint256"},{"internalType":"uint256","name":"_minHoldingAmount","type":"uint256"}],"name":"setRule","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":"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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

608060405234801562000010575f80fd5b5060405162003064380380620030648339818101604052810190620000369190620006f0565b6040518060400160405280600681526020017f4b6f6d6f646f00000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f4b4f4d4f444f0000000000000000000000000000000000000000000000000000815250620000c2620000b66200010160201b60201c565b6200010860201b60201c565b8160049081620000d391906200097b565b508060059081620000e591906200097b565b505050620000fa3382620001c960201b60201c565b5062000cba565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200023a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002319062000abd565b60405180910390fd5b6200024d5f83836200033a60201b60201c565b8060035f82825462000260919062000b0a565b925050819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620002b5919062000b0a565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200031b919062000b55565b60405180910390a3620003365f83836200064260201b60201c565b5050565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015620003d95750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6200041b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004129062000bbe565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036200053c57620004806200064760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480620004f45750620004c56200064760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b62000536576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200052d9062000c2c565b60405180910390fd5b6200063d565b60065f9054906101000a900460ff168015620005a4575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156200063c5760075481620005bf846200066e60201b60201c565b620005cb919062000b0a565b11158015620005f9575060085481620005ea846200066e60201b60201c565b620005f6919062000b0a565b10155b6200063b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006329062000c9a565b60405180910390fd5b5b5b505050565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f80fd5b5f819050919050565b620006cc81620006b8565b8114620006d7575f80fd5b50565b5f81519050620006ea81620006c1565b92915050565b5f60208284031215620007085762000707620006b4565b5b5f6200071784828501620006da565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200079c57607f821691505b602082108103620007b257620007b162000757565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620008167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620007d9565b620008228683620007d9565b95508019841693508086168417925050509392505050565b5f819050919050565b5f620008636200085d6200085784620006b8565b6200083a565b620006b8565b9050919050565b5f819050919050565b6200087e8362000843565b620008966200088d826200086a565b848454620007e5565b825550505050565b5f90565b620008ac6200089e565b620008b981848462000873565b505050565b5b81811015620008e057620008d45f82620008a2565b600181019050620008bf565b5050565b601f8211156200092f57620008f981620007b8565b6200090484620007ca565b8101602085101562000914578190505b6200092c6200092385620007ca565b830182620008be565b50505b505050565b5f82821c905092915050565b5f620009515f198460080262000934565b1980831691505092915050565b5f6200096b838362000940565b9150826002028217905092915050565b620009868262000720565b67ffffffffffffffff811115620009a257620009a16200072a565b5b620009ae825462000784565b620009bb828285620008e4565b5f60209050601f831160018114620009f1575f8415620009dc578287015190505b620009e885826200095e565b86555062000a57565b601f19841662000a0186620007b8565b5f5b8281101562000a2a5784890151825560018201915060208501945060208101905062000a03565b8683101562000a4a578489015162000a46601f89168262000940565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000aa5601f8362000a5f565b915062000ab28262000a6f565b602082019050919050565b5f6020820190508181035f83015262000ad68162000a97565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000b1682620006b8565b915062000b2383620006b8565b925082820190508082111562000b3e5762000b3d62000add565b5b92915050565b62000b4f81620006b8565b82525050565b5f60208201905062000b6a5f83018462000b44565b92915050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f62000ba6600b8362000a5f565b915062000bb38262000b70565b602082019050919050565b5f6020820190508181035f83015262000bd78162000b98565b9050919050565b7f74726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f62000c1460168362000a5f565b915062000c218262000bde565b602082019050919050565b5f6020820190508181035f83015262000c458162000c06565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f62000c8260068362000a5f565b915062000c8f8262000c4c565b602082019050919050565b5f6020820190508181035f83015262000cb38162000c74565b9050919050565b61239c8062000cc85f395ff3fe608060405234801561000f575f80fd5b5060043610610140575f3560e01c806370a08231116100b657806395d89b411161007a57806395d89b4114610366578063a457c2d714610384578063a9059cbb146103b4578063c997eb8d146103e4578063dd62ed3e14610400578063f2fde38b1461043057610140565b806370a08231146102d2578063715018a614610302578063860a32ec1461030c57806389f9a1d31461032a5780638da5cb5b1461034857610140565b806323b872dd1161010857806323b872dd146101fe578063313ce5671461022e578063395093511461024c5780633aa633aa1461027c57806342966c681461029857806349bd5a5e146102b457610140565b806306fdde0314610144578063095ea7b31461016257806316c021291461019257806318160ddd146101c25780631ab99e12146101e0575b5f80fd5b61014c61044c565b6040516101599190611743565b60405180910390f35b61017c600480360381019061017791906117f8565b6104dc565b6040516101899190611850565b60405180910390f35b6101ac60048036038101906101a79190611869565b6104f9565b6040516101b99190611850565b60405180910390f35b6101ca610516565b6040516101d791906118a3565b60405180910390f35b6101e861051f565b6040516101f591906118a3565b60405180910390f35b610218600480360381019061021391906118bc565b610525565b6040516102259190611850565b60405180910390f35b610236610617565b6040516102439190611927565b60405180910390f35b610266600480360381019061026191906117f8565b61061f565b6040516102739190611850565b60405180910390f35b6102966004803603810190610291919061196a565b6106c6565b005b6102b260048036038101906102ad91906119ce565b6107af565b005b6102bc6107bc565b6040516102c99190611a08565b60405180910390f35b6102ec60048036038101906102e79190611869565b6107e1565b6040516102f991906118a3565b60405180910390f35b61030a610827565b005b6103146108ae565b6040516103219190611850565b60405180910390f35b6103326108c0565b60405161033f91906118a3565b60405180910390f35b6103506108c6565b60405161035d9190611a08565b60405180910390f35b61036e6108ed565b60405161037b9190611743565b60405180910390f35b61039e600480360381019061039991906117f8565b61097d565b6040516103ab9190611850565b60405180910390f35b6103ce60048036038101906103c991906117f8565b610a63565b6040516103db9190611850565b60405180910390f35b6103fe60048036038101906103f99190611a82565b610a80565b005b61041a60048036038101906104159190611adf565b610b97565b60405161042791906118a3565b60405180910390f35b61044a60048036038101906104459190611869565b610c19565b005b60606004805461045b90611b4a565b80601f016020809104026020016040519081016040528092919081815260200182805461048790611b4a565b80156104d25780601f106104a9576101008083540402835291602001916104d2565b820191905f5260205f20905b8154815290600101906020018083116104b557829003601f168201915b5050505050905090565b5f6104ef6104e8610d0f565b8484610d16565b6001905092915050565b600a602052805f5260405f205f915054906101000a900460ff1681565b5f600354905090565b60085481565b5f610531848484610ed9565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610578610d0f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156105f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ee90611bea565b60405180910390fd5b61060b85610603610d0f565b858403610d16565b60019150509392505050565b5f6012905090565b5f6106bc61062b610d0f565b848460025f610638610d0f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546106b79190611c35565b610d16565b6001905092915050565b6106ce610d0f565b73ffffffffffffffffffffffffffffffffffffffff166106ec6108c6565b73ffffffffffffffffffffffffffffffffffffffff1614610742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073990611cb2565b60405180910390fd5b8360065f6101000a81548160ff0219169083151502179055508260095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816007819055508060088190555050505050565b6107b93382611151565b50565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61082f610d0f565b73ffffffffffffffffffffffffffffffffffffffff1661084d6108c6565b73ffffffffffffffffffffffffffffffffffffffff16146108a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089a90611cb2565b60405180910390fd5b6108ac5f61131f565b565b60065f9054906101000a900460ff1681565b60075481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546108fc90611b4a565b80601f016020809104026020016040519081016040528092919081815260200182805461092890611b4a565b80156109735780601f1061094a57610100808354040283529160200191610973565b820191905f5260205f20905b81548152906001019060200180831161095657829003601f168201915b5050505050905090565b5f8060025f61098a610d0f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610a44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3b90611d40565b60405180910390fd5b610a58610a4f610d0f565b85858403610d16565b600191505092915050565b5f610a76610a6f610d0f565b8484610ed9565b6001905092915050565b610a88610d0f565b73ffffffffffffffffffffffffffffffffffffffff16610aa66108c6565b73ffffffffffffffffffffffffffffffffffffffff1614610afc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af390611cb2565b60405180910390fd5b5f5b83839050811015610b915781600a5f868685818110610b2057610b1f611d5e565b5b9050602002016020810190610b359190611869565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610afe565b50505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610c21610d0f565b73ffffffffffffffffffffffffffffffffffffffff16610c3f6108c6565b73ffffffffffffffffffffffffffffffffffffffff1614610c95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8c90611cb2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfa90611dfb565b60405180910390fd5b610d0c8161131f565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7b90611e89565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de990611f17565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ecc91906118a3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3e90611fa5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac90612033565b60405180910390fd5b610fc08383836113e0565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103b906120c1565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110d49190611c35565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161113891906118a3565b60405180910390a361114b8484846116b4565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b69061214f565b60405180910390fd5b6111ca825f836113e0565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561124e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611245906121dd565b60405180910390fd5b81810360015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f8282546112a391906121fb565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161130791906118a3565b60405180910390a361131a835f846116b4565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561147e5750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6114bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b490612278565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036115c8576115196108c6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061158457506115556108c6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6115c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ba906122e0565b60405180910390fd5b6116af565b60065f9054906101000a900460ff16801561162f575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156116ae5760075481611641846107e1565b61164b9190611c35565b1115801561166e575060085481611661846107e1565b61166b9190611c35565b10155b6116ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a490612348565b60405180910390fd5b5b5b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156116f05780820151818401526020810190506116d5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611715826116b9565b61171f81856116c3565b935061172f8185602086016116d3565b611738816116fb565b840191505092915050565b5f6020820190508181035f83015261175b818461170b565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117948261176b565b9050919050565b6117a48161178a565b81146117ae575f80fd5b50565b5f813590506117bf8161179b565b92915050565b5f819050919050565b6117d7816117c5565b81146117e1575f80fd5b50565b5f813590506117f2816117ce565b92915050565b5f806040838503121561180e5761180d611763565b5b5f61181b858286016117b1565b925050602061182c858286016117e4565b9150509250929050565b5f8115159050919050565b61184a81611836565b82525050565b5f6020820190506118635f830184611841565b92915050565b5f6020828403121561187e5761187d611763565b5b5f61188b848285016117b1565b91505092915050565b61189d816117c5565b82525050565b5f6020820190506118b65f830184611894565b92915050565b5f805f606084860312156118d3576118d2611763565b5b5f6118e0868287016117b1565b93505060206118f1868287016117b1565b9250506040611902868287016117e4565b9150509250925092565b5f60ff82169050919050565b6119218161190c565b82525050565b5f60208201905061193a5f830184611918565b92915050565b61194981611836565b8114611953575f80fd5b50565b5f8135905061196481611940565b92915050565b5f805f806080858703121561198257611981611763565b5b5f61198f87828801611956565b94505060206119a0878288016117b1565b93505060406119b1878288016117e4565b92505060606119c2878288016117e4565b91505092959194509250565b5f602082840312156119e3576119e2611763565b5b5f6119f0848285016117e4565b91505092915050565b611a028161178a565b82525050565b5f602082019050611a1b5f8301846119f9565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611a4257611a41611a21565b5b8235905067ffffffffffffffff811115611a5f57611a5e611a25565b5b602083019150836020820283011115611a7b57611a7a611a29565b5b9250929050565b5f805f60408486031215611a9957611a98611763565b5b5f84013567ffffffffffffffff811115611ab657611ab5611767565b5b611ac286828701611a2d565b93509350506020611ad586828701611956565b9150509250925092565b5f8060408385031215611af557611af4611763565b5b5f611b02858286016117b1565b9250506020611b13858286016117b1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611b6157607f821691505b602082108103611b7457611b73611b1d565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f611bd46028836116c3565b9150611bdf82611b7a565b604082019050919050565b5f6020820190508181035f830152611c0181611bc8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611c3f826117c5565b9150611c4a836117c5565b9250828201905080821115611c6257611c61611c08565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611c9c6020836116c3565b9150611ca782611c68565b602082019050919050565b5f6020820190508181035f830152611cc981611c90565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611d2a6025836116c3565b9150611d3582611cd0565b604082019050919050565b5f6020820190508181035f830152611d5781611d1e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611de56026836116c3565b9150611df082611d8b565b604082019050919050565b5f6020820190508181035f830152611e1281611dd9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611e736024836116c3565b9150611e7e82611e19565b604082019050919050565b5f6020820190508181035f830152611ea081611e67565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611f016022836116c3565b9150611f0c82611ea7565b604082019050919050565b5f6020820190508181035f830152611f2e81611ef5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611f8f6025836116c3565b9150611f9a82611f35565b604082019050919050565b5f6020820190508181035f830152611fbc81611f83565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61201d6023836116c3565b915061202882611fc3565b604082019050919050565b5f6020820190508181035f83015261204a81612011565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6120ab6026836116c3565b91506120b682612051565b604082019050919050565b5f6020820190508181035f8301526120d88161209f565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f6121396021836116c3565b9150612144826120df565b604082019050919050565b5f6020820190508181035f8301526121668161212d565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f6121c76022836116c3565b91506121d28261216d565b604082019050919050565b5f6020820190508181035f8301526121f4816121bb565b9050919050565b5f612205826117c5565b9150612210836117c5565b925082820390508181111561222857612227611c08565b5b92915050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f612262600b836116c3565b915061226d8261222e565b602082019050919050565b5f6020820190508181035f83015261228f81612256565b9050919050565b7f74726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f6122ca6016836116c3565b91506122d582612296565b602082019050919050565b5f6020820190508181035f8301526122f7816122be565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f6123326006836116c3565b915061233d826122fe565b602082019050919050565b5f6020820190508181035f83015261235f81612326565b905091905056fea264697066735822122007708eef37225ca2c403ff2b987362c6a8ef20de5cecabadf2995fc6740a16fa64736f6c634300081800330000000000000000000000000000000000000070318c8e57bb47a06615e00000

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610140575f3560e01c806370a08231116100b657806395d89b411161007a57806395d89b4114610366578063a457c2d714610384578063a9059cbb146103b4578063c997eb8d146103e4578063dd62ed3e14610400578063f2fde38b1461043057610140565b806370a08231146102d2578063715018a614610302578063860a32ec1461030c57806389f9a1d31461032a5780638da5cb5b1461034857610140565b806323b872dd1161010857806323b872dd146101fe578063313ce5671461022e578063395093511461024c5780633aa633aa1461027c57806342966c681461029857806349bd5a5e146102b457610140565b806306fdde0314610144578063095ea7b31461016257806316c021291461019257806318160ddd146101c25780631ab99e12146101e0575b5f80fd5b61014c61044c565b6040516101599190611743565b60405180910390f35b61017c600480360381019061017791906117f8565b6104dc565b6040516101899190611850565b60405180910390f35b6101ac60048036038101906101a79190611869565b6104f9565b6040516101b99190611850565b60405180910390f35b6101ca610516565b6040516101d791906118a3565b60405180910390f35b6101e861051f565b6040516101f591906118a3565b60405180910390f35b610218600480360381019061021391906118bc565b610525565b6040516102259190611850565b60405180910390f35b610236610617565b6040516102439190611927565b60405180910390f35b610266600480360381019061026191906117f8565b61061f565b6040516102739190611850565b60405180910390f35b6102966004803603810190610291919061196a565b6106c6565b005b6102b260048036038101906102ad91906119ce565b6107af565b005b6102bc6107bc565b6040516102c99190611a08565b60405180910390f35b6102ec60048036038101906102e79190611869565b6107e1565b6040516102f991906118a3565b60405180910390f35b61030a610827565b005b6103146108ae565b6040516103219190611850565b60405180910390f35b6103326108c0565b60405161033f91906118a3565b60405180910390f35b6103506108c6565b60405161035d9190611a08565b60405180910390f35b61036e6108ed565b60405161037b9190611743565b60405180910390f35b61039e600480360381019061039991906117f8565b61097d565b6040516103ab9190611850565b60405180910390f35b6103ce60048036038101906103c991906117f8565b610a63565b6040516103db9190611850565b60405180910390f35b6103fe60048036038101906103f99190611a82565b610a80565b005b61041a60048036038101906104159190611adf565b610b97565b60405161042791906118a3565b60405180910390f35b61044a60048036038101906104459190611869565b610c19565b005b60606004805461045b90611b4a565b80601f016020809104026020016040519081016040528092919081815260200182805461048790611b4a565b80156104d25780601f106104a9576101008083540402835291602001916104d2565b820191905f5260205f20905b8154815290600101906020018083116104b557829003601f168201915b5050505050905090565b5f6104ef6104e8610d0f565b8484610d16565b6001905092915050565b600a602052805f5260405f205f915054906101000a900460ff1681565b5f600354905090565b60085481565b5f610531848484610ed9565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610578610d0f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156105f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ee90611bea565b60405180910390fd5b61060b85610603610d0f565b858403610d16565b60019150509392505050565b5f6012905090565b5f6106bc61062b610d0f565b848460025f610638610d0f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546106b79190611c35565b610d16565b6001905092915050565b6106ce610d0f565b73ffffffffffffffffffffffffffffffffffffffff166106ec6108c6565b73ffffffffffffffffffffffffffffffffffffffff1614610742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073990611cb2565b60405180910390fd5b8360065f6101000a81548160ff0219169083151502179055508260095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816007819055508060088190555050505050565b6107b93382611151565b50565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61082f610d0f565b73ffffffffffffffffffffffffffffffffffffffff1661084d6108c6565b73ffffffffffffffffffffffffffffffffffffffff16146108a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089a90611cb2565b60405180910390fd5b6108ac5f61131f565b565b60065f9054906101000a900460ff1681565b60075481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546108fc90611b4a565b80601f016020809104026020016040519081016040528092919081815260200182805461092890611b4a565b80156109735780601f1061094a57610100808354040283529160200191610973565b820191905f5260205f20905b81548152906001019060200180831161095657829003601f168201915b5050505050905090565b5f8060025f61098a610d0f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610a44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3b90611d40565b60405180910390fd5b610a58610a4f610d0f565b85858403610d16565b600191505092915050565b5f610a76610a6f610d0f565b8484610ed9565b6001905092915050565b610a88610d0f565b73ffffffffffffffffffffffffffffffffffffffff16610aa66108c6565b73ffffffffffffffffffffffffffffffffffffffff1614610afc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af390611cb2565b60405180910390fd5b5f5b83839050811015610b915781600a5f868685818110610b2057610b1f611d5e565b5b9050602002016020810190610b359190611869565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610afe565b50505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610c21610d0f565b73ffffffffffffffffffffffffffffffffffffffff16610c3f6108c6565b73ffffffffffffffffffffffffffffffffffffffff1614610c95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8c90611cb2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfa90611dfb565b60405180910390fd5b610d0c8161131f565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7b90611e89565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de990611f17565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ecc91906118a3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3e90611fa5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac90612033565b60405180910390fd5b610fc08383836113e0565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103b906120c1565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110d49190611c35565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161113891906118a3565b60405180910390a361114b8484846116b4565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b69061214f565b60405180910390fd5b6111ca825f836113e0565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561124e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611245906121dd565b60405180910390fd5b81810360015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f8282546112a391906121fb565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161130791906118a3565b60405180910390a361131a835f846116b4565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561147e5750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6114bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b490612278565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036115c8576115196108c6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061158457506115556108c6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6115c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ba906122e0565b60405180910390fd5b6116af565b60065f9054906101000a900460ff16801561162f575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156116ae5760075481611641846107e1565b61164b9190611c35565b1115801561166e575060085481611661846107e1565b61166b9190611c35565b10155b6116ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a490612348565b60405180910390fd5b5b5b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156116f05780820151818401526020810190506116d5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611715826116b9565b61171f81856116c3565b935061172f8185602086016116d3565b611738816116fb565b840191505092915050565b5f6020820190508181035f83015261175b818461170b565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6117948261176b565b9050919050565b6117a48161178a565b81146117ae575f80fd5b50565b5f813590506117bf8161179b565b92915050565b5f819050919050565b6117d7816117c5565b81146117e1575f80fd5b50565b5f813590506117f2816117ce565b92915050565b5f806040838503121561180e5761180d611763565b5b5f61181b858286016117b1565b925050602061182c858286016117e4565b9150509250929050565b5f8115159050919050565b61184a81611836565b82525050565b5f6020820190506118635f830184611841565b92915050565b5f6020828403121561187e5761187d611763565b5b5f61188b848285016117b1565b91505092915050565b61189d816117c5565b82525050565b5f6020820190506118b65f830184611894565b92915050565b5f805f606084860312156118d3576118d2611763565b5b5f6118e0868287016117b1565b93505060206118f1868287016117b1565b9250506040611902868287016117e4565b9150509250925092565b5f60ff82169050919050565b6119218161190c565b82525050565b5f60208201905061193a5f830184611918565b92915050565b61194981611836565b8114611953575f80fd5b50565b5f8135905061196481611940565b92915050565b5f805f806080858703121561198257611981611763565b5b5f61198f87828801611956565b94505060206119a0878288016117b1565b93505060406119b1878288016117e4565b92505060606119c2878288016117e4565b91505092959194509250565b5f602082840312156119e3576119e2611763565b5b5f6119f0848285016117e4565b91505092915050565b611a028161178a565b82525050565b5f602082019050611a1b5f8301846119f9565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611a4257611a41611a21565b5b8235905067ffffffffffffffff811115611a5f57611a5e611a25565b5b602083019150836020820283011115611a7b57611a7a611a29565b5b9250929050565b5f805f60408486031215611a9957611a98611763565b5b5f84013567ffffffffffffffff811115611ab657611ab5611767565b5b611ac286828701611a2d565b93509350506020611ad586828701611956565b9150509250925092565b5f8060408385031215611af557611af4611763565b5b5f611b02858286016117b1565b9250506020611b13858286016117b1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611b6157607f821691505b602082108103611b7457611b73611b1d565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f611bd46028836116c3565b9150611bdf82611b7a565b604082019050919050565b5f6020820190508181035f830152611c0181611bc8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611c3f826117c5565b9150611c4a836117c5565b9250828201905080821115611c6257611c61611c08565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611c9c6020836116c3565b9150611ca782611c68565b602082019050919050565b5f6020820190508181035f830152611cc981611c90565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611d2a6025836116c3565b9150611d3582611cd0565b604082019050919050565b5f6020820190508181035f830152611d5781611d1e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611de56026836116c3565b9150611df082611d8b565b604082019050919050565b5f6020820190508181035f830152611e1281611dd9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611e736024836116c3565b9150611e7e82611e19565b604082019050919050565b5f6020820190508181035f830152611ea081611e67565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611f016022836116c3565b9150611f0c82611ea7565b604082019050919050565b5f6020820190508181035f830152611f2e81611ef5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611f8f6025836116c3565b9150611f9a82611f35565b604082019050919050565b5f6020820190508181035f830152611fbc81611f83565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61201d6023836116c3565b915061202882611fc3565b604082019050919050565b5f6020820190508181035f83015261204a81612011565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6120ab6026836116c3565b91506120b682612051565b604082019050919050565b5f6020820190508181035f8301526120d88161209f565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f6121396021836116c3565b9150612144826120df565b604082019050919050565b5f6020820190508181035f8301526121668161212d565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f6121c76022836116c3565b91506121d28261216d565b604082019050919050565b5f6020820190508181035f8301526121f4816121bb565b9050919050565b5f612205826117c5565b9150612210836117c5565b925082820390508181111561222857612227611c08565b5b92915050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f612262600b836116c3565b915061226d8261222e565b602082019050919050565b5f6020820190508181035f83015261228f81612256565b9050919050565b7f74726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f6122ca6016836116c3565b91506122d582612296565b602082019050919050565b5f6020820190508181035f8301526122f7816122be565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f6123326006836116c3565b915061233d826122fe565b602082019050919050565b5f6020820190508181035f83015261235f81612326565b905091905056fea264697066735822122007708eef37225ca2c403ff2b987362c6a8ef20de5cecabadf2995fc6740a16fa64736f6c63430008180033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000000000000000000070318c8e57bb47a06615e00000

-----Decoded View---------------
Arg [0] : _totalSupply (uint256): 8888888888888000000000000000000

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000070318c8e57bb47a06615e00000


Deployed Bytecode Sourcemap

19411:1562:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9383:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11550:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19589:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10503:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19516:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12201:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10345:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13102:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19997:301;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20889:81;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19554:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10674:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2784:103;;;:::i;:::-;;19452:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19478:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2133:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9602:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13820:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11014:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19758:228;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11252:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3042:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9383:100;9437:13;9470:5;9463:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9383:100;:::o;11550:169::-;11633:4;11650:39;11659:12;:10;:12::i;:::-;11673:7;11682:6;11650:8;:39::i;:::-;11707:4;11700:11;;11550:169;;;;:::o;19589:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;10503:108::-;10564:7;10591:12;;10584:19;;10503:108;:::o;19516:31::-;;;;:::o;12201:492::-;12341:4;12358:36;12368:6;12376:9;12387:6;12358:9;:36::i;:::-;12407:24;12434:11;:19;12446:6;12434:19;;;;;;;;;;;;;;;:33;12454:12;:10;:12::i;:::-;12434:33;;;;;;;;;;;;;;;;12407:60;;12506:6;12486:16;:26;;12478:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12593:57;12602:6;12610:12;:10;:12::i;:::-;12643:6;12624:16;:25;12593:8;:57::i;:::-;12681:4;12674:11;;;12201:492;;;;;:::o;10345:93::-;10403:5;10428:2;10421:9;;10345:93;:::o;13102:215::-;13190:4;13207:80;13216:12;:10;:12::i;:::-;13230:7;13276:10;13239:11;:25;13251:12;:10;:12::i;:::-;13239:25;;;;;;;;;;;;;;;:34;13265:7;13239:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;13207:8;:80::i;:::-;13305:4;13298:11;;13102:215;;;;:::o;19997:301::-;2364:12;:10;:12::i;:::-;2353:23;;:7;:5;:7::i;:::-;:23;;;2345:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20147:8:::1;20137:7;;:18;;;;;;;;;;;;;;;;;;20182:14;20166:13;;:30;;;;;;;;;;;;;;;;;;20226:17;20207:16;:36;;;;20273:17;20254:16;:36;;;;19997:301:::0;;;;:::o;20889:81::-;20938:24;20944:10;20956:5;20938;:24::i;:::-;20889:81;:::o;19554:28::-;;;;;;;;;;;;;:::o;10674:127::-;10748:7;10775:9;:18;10785:7;10775:18;;;;;;;;;;;;;;;;10768:25;;10674:127;;;:::o;2784:103::-;2364:12;:10;:12::i;:::-;2353:23;;:7;:5;:7::i;:::-;:23;;;2345:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2849:30:::1;2876:1;2849:18;:30::i;:::-;2784:103::o:0;19452:19::-;;;;;;;;;;;;;:::o;19478:31::-;;;;:::o;2133:87::-;2179:7;2206:6;;;;;;;;;;;2199:13;;2133:87;:::o;9602:104::-;9658:13;9691:7;9684:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9602:104;:::o;13820:413::-;13913:4;13930:24;13957:11;:25;13969:12;:10;:12::i;:::-;13957:25;;;;;;;;;;;;;;;:34;13983:7;13957:34;;;;;;;;;;;;;;;;13930:61;;14030:15;14010:16;:35;;14002:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14123:67;14132:12;:10;:12::i;:::-;14146:7;14174:15;14155:16;:34;14123:8;:67::i;:::-;14221:4;14214:11;;;13820:413;;;;:::o;11014:175::-;11100:4;11117:42;11127:12;:10;:12::i;:::-;11141:9;11152:6;11117:9;:42::i;:::-;11177:4;11170:11;;11014:175;;;;:::o;19758:228::-;2364:12;:10;:12::i;:::-;2353:23;;:7;:5;:7::i;:::-;:23;;;2345:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19866:9:::1;19861:118;19880:8;;:15;;19877:1;:18;19861:118;;;19952:15;19926:10;:23;19937:8;;19946:1;19937:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19926:23;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;19897:3;;;;;;;19861:118;;;;19758:228:::0;;;:::o;11252:151::-;11341:7;11368:11;:18;11380:5;11368:18;;;;;;;;;;;;;;;:27;11387:7;11368:27;;;;;;;;;;;;;;;;11361:34;;11252:151;;;;:::o;3042:201::-;2364:12;:10;:12::i;:::-;2353:23;;:7;:5;:7::i;:::-;:23;;;2345:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3151:1:::1;3131:22;;:8;:22;;::::0;3123:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3207:28;3226:8;3207:18;:28::i;:::-;3042:201:::0;:::o;851:98::-;904:7;931:10;924:17;;851:98;:::o;17504:380::-;17657:1;17640:19;;:5;:19;;;17632:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17738:1;17719:21;;:7;:21;;;17711:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17822:6;17792:11;:18;17804:5;17792:18;;;;;;;;;;;;;;;:27;17811:7;17792:27;;;;;;;;;;;;;;;:36;;;;17860:7;17844:32;;17853:5;17844:32;;;17869:6;17844:32;;;;;;:::i;:::-;;;;;;;;17504:380;;;:::o;14723:733::-;14881:1;14863:20;;:6;:20;;;14855:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14965:1;14944:23;;:9;:23;;;14936:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15020:47;15041:6;15049:9;15060:6;15020:20;:47::i;:::-;15080:21;15104:9;:17;15114:6;15104:17;;;;;;;;;;;;;;;;15080:41;;15157:6;15140:13;:23;;15132:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15278:6;15262:13;:22;15242:9;:17;15252:6;15242:17;;;;;;;;;;;;;;;:42;;;;15330:6;15306:9;:20;15316:9;15306:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;15371:9;15354:35;;15363:6;15354:35;;;15382:6;15354:35;;;;;;:::i;:::-;;;;;;;;15402:46;15422:6;15430:9;15441:6;15402:19;:46::i;:::-;14844:612;14723:733;;;:::o;16475:591::-;16578:1;16559:21;;:7;:21;;;16551:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16631:49;16652:7;16669:1;16673:6;16631:20;:49::i;:::-;16693:22;16718:9;:18;16728:7;16718:18;;;;;;;;;;;;;;;;16693:43;;16773:6;16755:14;:24;;16747:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16892:6;16875:14;:23;16854:9;:18;16864:7;16854:18;;;;;;;;;;;;;;;:44;;;;16936:6;16920:12;;:22;;;;;;;:::i;:::-;;;;;;;;16986:1;16960:37;;16969:7;16960:37;;;16990:6;16960:37;;;;;;:::i;:::-;;;;;;;;17010:48;17030:7;17047:1;17051:6;17010:19;:48::i;:::-;16540:526;16475:591;;:::o;3403:191::-;3477:16;3496:6;;;;;;;;;;;3477:25;;3522:8;3513:6;;:17;;;;;;;;;;;;;;;;;;3577:8;3546:40;;3567:8;3546:40;;;;;;;;;;;;3466:128;3403:191;:::o;20306:575::-;20458:10;:14;20469:2;20458:14;;;;;;;;;;;;;;;;;;;;;;;;;20457:15;:36;;;;;20477:10;:16;20488:4;20477:16;;;;;;;;;;;;;;;;;;;;;;;;;20476:17;20457:36;20449:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;20559:1;20534:27;;:13;;;;;;;;;;;:27;;;20530:148;;20594:7;:5;:7::i;:::-;20586:15;;:4;:15;;;:32;;;;20611:7;:5;:7::i;:::-;20605:13;;:2;:13;;;20586:32;20578:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20660:7;;20530:148;20694:7;;;;;;;;;;;:32;;;;;20713:13;;;;;;;;;;;20705:21;;:4;:21;;;20694:32;20690:184;;;20783:16;;20773:6;20751:19;20767:2;20751:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;:100;;;;;20835:16;;20825:6;20803:19;20819:2;20803:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;20751:100;20743:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;20690:184;20306:575;;;;:::o;19213:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:116::-;5258:21;5273:5;5258:21;:::i;:::-;5251:5;5248:32;5238:60;;5294:1;5291;5284:12;5238:60;5188:116;:::o;5310:133::-;5353:5;5391:6;5378:20;5369:29;;5407:30;5431:5;5407:30;:::i;:::-;5310:133;;;;:::o;5449:759::-;5532:6;5540;5548;5556;5605:3;5593:9;5584:7;5580:23;5576:33;5573:120;;;5612:79;;:::i;:::-;5573:120;5732:1;5757:50;5799:7;5790:6;5779:9;5775:22;5757:50;:::i;:::-;5747:60;;5703:114;5856:2;5882:53;5927:7;5918:6;5907:9;5903:22;5882:53;:::i;:::-;5872:63;;5827:118;5984:2;6010:53;6055:7;6046:6;6035:9;6031:22;6010:53;:::i;:::-;6000:63;;5955:118;6112:2;6138:53;6183:7;6174:6;6163:9;6159:22;6138:53;:::i;:::-;6128:63;;6083:118;5449:759;;;;;;;:::o;6214:329::-;6273:6;6322:2;6310:9;6301:7;6297:23;6293:32;6290:119;;;6328:79;;:::i;:::-;6290:119;6448:1;6473:53;6518:7;6509:6;6498:9;6494:22;6473:53;:::i;:::-;6463:63;;6419:117;6214:329;;;;:::o;6549:118::-;6636:24;6654:5;6636:24;:::i;:::-;6631:3;6624:37;6549:118;;:::o;6673:222::-;6766:4;6804:2;6793:9;6789:18;6781:26;;6817:71;6885:1;6874:9;6870:17;6861:6;6817:71;:::i;:::-;6673:222;;;;:::o;6901:117::-;7010:1;7007;7000:12;7024:117;7133:1;7130;7123:12;7147:117;7256:1;7253;7246:12;7287:568;7360:8;7370:6;7420:3;7413:4;7405:6;7401:17;7397:27;7387:122;;7428:79;;:::i;:::-;7387:122;7541:6;7528:20;7518:30;;7571:18;7563:6;7560:30;7557:117;;;7593:79;;:::i;:::-;7557:117;7707:4;7699:6;7695:17;7683:29;;7761:3;7753:4;7745:6;7741:17;7731:8;7727:32;7724:41;7721:128;;;7768:79;;:::i;:::-;7721:128;7287:568;;;;;:::o;7861:698::-;7953:6;7961;7969;8018:2;8006:9;7997:7;7993:23;7989:32;7986:119;;;8024:79;;:::i;:::-;7986:119;8172:1;8161:9;8157:17;8144:31;8202:18;8194:6;8191:30;8188:117;;;8224:79;;:::i;:::-;8188:117;8337:80;8409:7;8400:6;8389:9;8385:22;8337:80;:::i;:::-;8319:98;;;;8115:312;8466:2;8492:50;8534:7;8525:6;8514:9;8510:22;8492:50;:::i;:::-;8482:60;;8437:115;7861:698;;;;;:::o;8565:474::-;8633:6;8641;8690:2;8678:9;8669:7;8665:23;8661:32;8658:119;;;8696:79;;:::i;:::-;8658:119;8816:1;8841:53;8886:7;8877:6;8866:9;8862:22;8841:53;:::i;:::-;8831:63;;8787:117;8943:2;8969:53;9014:7;9005:6;8994:9;8990:22;8969:53;:::i;:::-;8959:63;;8914:118;8565:474;;;;;:::o;9045:180::-;9093:77;9090:1;9083:88;9190:4;9187:1;9180:15;9214:4;9211:1;9204:15;9231:320;9275:6;9312:1;9306:4;9302:12;9292:22;;9359:1;9353:4;9349:12;9380:18;9370:81;;9436:4;9428:6;9424:17;9414:27;;9370:81;9498:2;9490:6;9487:14;9467:18;9464:38;9461:84;;9517:18;;:::i;:::-;9461:84;9282:269;9231:320;;;:::o;9557:227::-;9697:34;9693:1;9685:6;9681:14;9674:58;9766:10;9761:2;9753:6;9749:15;9742:35;9557:227;:::o;9790:366::-;9932:3;9953:67;10017:2;10012:3;9953:67;:::i;:::-;9946:74;;10029:93;10118:3;10029:93;:::i;:::-;10147:2;10142:3;10138:12;10131:19;;9790:366;;;:::o;10162:419::-;10328:4;10366:2;10355:9;10351:18;10343:26;;10415:9;10409:4;10405:20;10401:1;10390:9;10386:17;10379:47;10443:131;10569:4;10443:131;:::i;:::-;10435:139;;10162:419;;;:::o;10587:180::-;10635:77;10632:1;10625:88;10732:4;10729:1;10722:15;10756:4;10753:1;10746:15;10773:191;10813:3;10832:20;10850:1;10832:20;:::i;:::-;10827:25;;10866:20;10884:1;10866:20;:::i;:::-;10861:25;;10909:1;10906;10902:9;10895:16;;10930:3;10927:1;10924:10;10921:36;;;10937:18;;:::i;:::-;10921:36;10773:191;;;;:::o;10970:182::-;11110:34;11106:1;11098:6;11094:14;11087:58;10970:182;:::o;11158:366::-;11300:3;11321:67;11385:2;11380:3;11321:67;:::i;:::-;11314:74;;11397:93;11486:3;11397:93;:::i;:::-;11515:2;11510:3;11506:12;11499:19;;11158:366;;;:::o;11530:419::-;11696:4;11734:2;11723:9;11719:18;11711:26;;11783:9;11777:4;11773:20;11769:1;11758:9;11754:17;11747:47;11811:131;11937:4;11811:131;:::i;:::-;11803:139;;11530:419;;;:::o;11955:224::-;12095:34;12091:1;12083:6;12079:14;12072:58;12164:7;12159:2;12151:6;12147:15;12140:32;11955:224;:::o;12185:366::-;12327:3;12348:67;12412:2;12407:3;12348:67;:::i;:::-;12341:74;;12424:93;12513:3;12424:93;:::i;:::-;12542:2;12537:3;12533:12;12526:19;;12185:366;;;:::o;12557:419::-;12723:4;12761:2;12750:9;12746:18;12738:26;;12810:9;12804:4;12800:20;12796:1;12785:9;12781:17;12774:47;12838:131;12964:4;12838:131;:::i;:::-;12830:139;;12557:419;;;:::o;12982:180::-;13030:77;13027:1;13020:88;13127:4;13124:1;13117:15;13151:4;13148:1;13141:15;13168:225;13308:34;13304:1;13296:6;13292:14;13285:58;13377:8;13372:2;13364:6;13360:15;13353:33;13168:225;:::o;13399:366::-;13541:3;13562:67;13626:2;13621:3;13562:67;:::i;:::-;13555:74;;13638:93;13727:3;13638:93;:::i;:::-;13756:2;13751:3;13747:12;13740:19;;13399:366;;;:::o;13771:419::-;13937:4;13975:2;13964:9;13960:18;13952:26;;14024:9;14018:4;14014:20;14010:1;13999:9;13995:17;13988:47;14052:131;14178:4;14052:131;:::i;:::-;14044:139;;13771:419;;;:::o;14196:223::-;14336:34;14332:1;14324:6;14320:14;14313:58;14405:6;14400:2;14392:6;14388:15;14381:31;14196:223;:::o;14425:366::-;14567:3;14588:67;14652:2;14647:3;14588:67;:::i;:::-;14581:74;;14664:93;14753:3;14664:93;:::i;:::-;14782:2;14777:3;14773:12;14766:19;;14425:366;;;:::o;14797:419::-;14963:4;15001:2;14990:9;14986:18;14978:26;;15050:9;15044:4;15040:20;15036:1;15025:9;15021:17;15014:47;15078:131;15204:4;15078:131;:::i;:::-;15070:139;;14797:419;;;:::o;15222:221::-;15362:34;15358:1;15350:6;15346:14;15339:58;15431:4;15426:2;15418:6;15414:15;15407:29;15222:221;:::o;15449:366::-;15591:3;15612:67;15676:2;15671:3;15612:67;:::i;:::-;15605:74;;15688:93;15777:3;15688:93;:::i;:::-;15806:2;15801:3;15797:12;15790:19;;15449:366;;;:::o;15821:419::-;15987:4;16025:2;16014:9;16010:18;16002:26;;16074:9;16068:4;16064:20;16060:1;16049:9;16045:17;16038:47;16102:131;16228:4;16102:131;:::i;:::-;16094:139;;15821:419;;;:::o;16246:224::-;16386:34;16382:1;16374:6;16370:14;16363:58;16455:7;16450:2;16442:6;16438:15;16431:32;16246:224;:::o;16476:366::-;16618:3;16639:67;16703:2;16698:3;16639:67;:::i;:::-;16632:74;;16715:93;16804:3;16715:93;:::i;:::-;16833:2;16828:3;16824:12;16817:19;;16476:366;;;:::o;16848:419::-;17014:4;17052:2;17041:9;17037:18;17029:26;;17101:9;17095:4;17091:20;17087:1;17076:9;17072:17;17065:47;17129:131;17255:4;17129:131;:::i;:::-;17121:139;;16848:419;;;:::o;17273:222::-;17413:34;17409:1;17401:6;17397:14;17390:58;17482:5;17477:2;17469:6;17465:15;17458:30;17273:222;:::o;17501:366::-;17643:3;17664:67;17728:2;17723:3;17664:67;:::i;:::-;17657:74;;17740:93;17829:3;17740:93;:::i;:::-;17858:2;17853:3;17849:12;17842:19;;17501:366;;;:::o;17873:419::-;18039:4;18077:2;18066:9;18062:18;18054:26;;18126:9;18120:4;18116:20;18112:1;18101:9;18097:17;18090:47;18154:131;18280:4;18154:131;:::i;:::-;18146:139;;17873:419;;;:::o;18298:225::-;18438:34;18434:1;18426:6;18422:14;18415:58;18507:8;18502:2;18494:6;18490:15;18483:33;18298:225;:::o;18529:366::-;18671:3;18692:67;18756:2;18751:3;18692:67;:::i;:::-;18685:74;;18768:93;18857:3;18768:93;:::i;:::-;18886:2;18881:3;18877:12;18870:19;;18529:366;;;:::o;18901:419::-;19067:4;19105:2;19094:9;19090:18;19082:26;;19154:9;19148:4;19144:20;19140:1;19129:9;19125:17;19118:47;19182:131;19308:4;19182:131;:::i;:::-;19174:139;;18901:419;;;:::o;19326:220::-;19466:34;19462:1;19454:6;19450:14;19443:58;19535:3;19530:2;19522:6;19518:15;19511:28;19326:220;:::o;19552:366::-;19694:3;19715:67;19779:2;19774:3;19715:67;:::i;:::-;19708:74;;19791:93;19880:3;19791:93;:::i;:::-;19909:2;19904:3;19900:12;19893:19;;19552:366;;;:::o;19924:419::-;20090:4;20128:2;20117:9;20113:18;20105:26;;20177:9;20171:4;20167:20;20163:1;20152:9;20148:17;20141:47;20205:131;20331:4;20205:131;:::i;:::-;20197:139;;19924:419;;;:::o;20349:221::-;20489:34;20485:1;20477:6;20473:14;20466:58;20558:4;20553:2;20545:6;20541:15;20534:29;20349:221;:::o;20576:366::-;20718:3;20739:67;20803:2;20798:3;20739:67;:::i;:::-;20732:74;;20815:93;20904:3;20815:93;:::i;:::-;20933:2;20928:3;20924:12;20917:19;;20576:366;;;:::o;20948:419::-;21114:4;21152:2;21141:9;21137:18;21129:26;;21201:9;21195:4;21191:20;21187:1;21176:9;21172:17;21165:47;21229:131;21355:4;21229:131;:::i;:::-;21221:139;;20948:419;;;:::o;21373:194::-;21413:4;21433:20;21451:1;21433:20;:::i;:::-;21428:25;;21467:20;21485:1;21467:20;:::i;:::-;21462:25;;21511:1;21508;21504:9;21496:17;;21535:1;21529:4;21526:11;21523:37;;;21540:18;;:::i;:::-;21523:37;21373:194;;;;:::o;21573:161::-;21713:13;21709:1;21701:6;21697:14;21690:37;21573:161;:::o;21740:366::-;21882:3;21903:67;21967:2;21962:3;21903:67;:::i;:::-;21896:74;;21979:93;22068:3;21979:93;:::i;:::-;22097:2;22092:3;22088:12;22081:19;;21740:366;;;:::o;22112:419::-;22278:4;22316:2;22305:9;22301:18;22293:26;;22365:9;22359:4;22355:20;22351:1;22340:9;22336:17;22329:47;22393:131;22519:4;22393:131;:::i;:::-;22385:139;;22112:419;;;:::o;22537:172::-;22677:24;22673:1;22665:6;22661:14;22654:48;22537:172;:::o;22715:366::-;22857:3;22878:67;22942:2;22937:3;22878:67;:::i;:::-;22871:74;;22954:93;23043:3;22954:93;:::i;:::-;23072:2;23067:3;23063:12;23056:19;;22715:366;;;:::o;23087:419::-;23253:4;23291:2;23280:9;23276:18;23268:26;;23340:9;23334:4;23330:20;23326:1;23315:9;23311:17;23304:47;23368:131;23494:4;23368:131;:::i;:::-;23360:139;;23087:419;;;:::o;23512:156::-;23652:8;23648:1;23640:6;23636:14;23629:32;23512:156;:::o;23674:365::-;23816:3;23837:66;23901:1;23896:3;23837:66;:::i;:::-;23830:73;;23912:93;24001:3;23912:93;:::i;:::-;24030:2;24025:3;24021:12;24014:19;;23674:365;;;:::o;24045:419::-;24211:4;24249:2;24238:9;24234:18;24226:26;;24298:9;24292:4;24288:20;24284:1;24273:9;24269:17;24262:47;24326:131;24452:4;24326:131;:::i;:::-;24318:139;;24045:419;;;:::o

Swarm Source

ipfs://07708eef37225ca2c403ff2b987362c6a8ef20de5cecabadf2995fc6740a16fa
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.