ETH Price: $2,358.57 (+1.38%)
Gas: 3.32 Gwei

Token

100$ (100)
 

Overview

Max Total Supply

100 100

Holders

20

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1.997070305378663093 100

Value
$0.00
0xd87969304b827d6290ceC63356ba95A1557014D8
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:
ONEHUNDREDDOLLAR

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-13
*/

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

/*

100$ and a dream





*/

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/PepeToken.sol



pragma solidity ^0.8.0;


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

    constructor(uint256 _totalSupply) ERC20("100$", unicode"100") {
        _mint(msg.sender, _totalSupply);
    }

    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":"","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"}]

6080604052600160065f6101000a81548160ff021916908315150217905550348015610029575f80fd5b50604051612d91380380612d91833981810160405281019061004b91906106cc565b6040518060400160405280600481526020017f31303024000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f31303000000000000000000000000000000000000000000000000000000000008152506100d36100c861010b60201b60201c565b61011260201b60201c565b81600490816100e29190610928565b5080600590816100f29190610928565b50505061010533826101d360201b60201c565b50610c2f565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610241576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023890610a51565b60405180910390fd5b6102525f838361033760201b60201c565b8060035f8282546102639190610a9c565b925050819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546102b69190610a9c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161031a9190610ade565b60405180910390a36103335f838361062360201b60201c565b5050565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156103d55750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b610414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040b90610b41565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361052b5761047661062860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806104e757506104b861062860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b610526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051d90610ba9565b60405180910390fd5b61061e565b60065f9054906101000a900460ff168015610592575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561061d57600754816105aa8461064f60201b60201c565b6105b49190610a9c565b111580156105dd5750600854816105d08461064f60201b60201c565b6105da9190610a9c565b10155b61061c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061390610c11565b60405180910390fd5b5b5b505050565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f80fd5b5f819050919050565b6106ab81610699565b81146106b5575f80fd5b50565b5f815190506106c6816106a2565b92915050565b5f602082840312156106e1576106e0610695565b5b5f6106ee848285016106b8565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061077257607f821691505b6020821081036107855761078461072e565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026107e77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826107ac565b6107f186836107ac565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61082c61082761082284610699565b610809565b610699565b9050919050565b5f819050919050565b61084583610812565b61085961085182610833565b8484546107b8565b825550505050565b5f90565b61086d610861565b61087881848461083c565b505050565b5b8181101561089b576108905f82610865565b60018101905061087e565b5050565b601f8211156108e0576108b18161078b565b6108ba8461079d565b810160208510156108c9578190505b6108dd6108d58561079d565b83018261087d565b50505b505050565b5f82821c905092915050565b5f6109005f19846008026108e5565b1980831691505092915050565b5f61091883836108f1565b9150826002028217905092915050565b610931826106f7565b67ffffffffffffffff81111561094a57610949610701565b5b610954825461075b565b61095f82828561089f565b5f60209050601f831160018114610990575f841561097e578287015190505b610988858261090d565b8655506109ef565b601f19841661099e8661078b565b5f5b828110156109c5578489015182556001820191506020850194506020810190506109a0565b868310156109e257848901516109de601f8916826108f1565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610a3b601f836109f7565b9150610a4682610a07565b602082019050919050565b5f6020820190508181035f830152610a6881610a2f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610aa682610699565b9150610ab183610699565b9250828201905080821115610ac957610ac8610a6f565b5b92915050565b610ad881610699565b82525050565b5f602082019050610af15f830184610acf565b92915050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f610b2b600b836109f7565b9150610b3682610af7565b602082019050919050565b5f6020820190508181035f830152610b5881610b1f565b9050919050565b7f74726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f610b936016836109f7565b9150610b9e82610b5f565b602082019050919050565b5f6020820190508181035f830152610bc081610b87565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f610bfb6006836109f7565b9150610c0682610bc7565b602082019050919050565b5f6020820190508181035f830152610c2881610bef565b9050919050565b61215580610c3c5f395ff3fe608060405234801561000f575f80fd5b5060043610610135575f3560e01c806349bd5a5e116100b65780638da5cb5b1161007a5780638da5cb5b1461033d57806395d89b411461035b578063a457c2d714610379578063a9059cbb146103a9578063dd62ed3e146103d9578063f2fde38b1461040957610135565b806349bd5a5e146102a957806370a08231146102c7578063715018a6146102f7578063860a32ec1461030157806389f9a1d31461031f57610135565b806323b872dd116100fd57806323b872dd146101f3578063313ce5671461022357806339509351146102415780633aa633aa1461027157806342966c681461028d57610135565b806306fdde0314610139578063095ea7b31461015757806316c021291461018757806318160ddd146101b75780631ab99e12146101d5575b5f80fd5b610141610425565b60405161014e91906115eb565b60405180910390f35b610171600480360381019061016c919061169c565b6104b5565b60405161017e91906116f4565b60405180910390f35b6101a1600480360381019061019c919061170d565b6104d2565b6040516101ae91906116f4565b60405180910390f35b6101bf6104ef565b6040516101cc9190611747565b60405180910390f35b6101dd6104f8565b6040516101ea9190611747565b60405180910390f35b61020d60048036038101906102089190611760565b6104fe565b60405161021a91906116f4565b60405180910390f35b61022b6105f0565b60405161023891906117cb565b60405180910390f35b61025b6004803603810190610256919061169c565b6105f8565b60405161026891906116f4565b60405180910390f35b61028b6004803603810190610286919061180e565b61069f565b005b6102a760048036038101906102a29190611872565b610788565b005b6102b1610795565b6040516102be91906118ac565b60405180910390f35b6102e160048036038101906102dc919061170d565b6107ba565b6040516102ee9190611747565b60405180910390f35b6102ff610800565b005b610309610887565b60405161031691906116f4565b60405180910390f35b610327610899565b6040516103349190611747565b60405180910390f35b61034561089f565b60405161035291906118ac565b60405180910390f35b6103636108c6565b60405161037091906115eb565b60405180910390f35b610393600480360381019061038e919061169c565b610956565b6040516103a091906116f4565b60405180910390f35b6103c360048036038101906103be919061169c565b610a3c565b6040516103d091906116f4565b60405180910390f35b6103f360048036038101906103ee91906118c5565b610a59565b6040516104009190611747565b60405180910390f35b610423600480360381019061041e919061170d565b610adb565b005b60606004805461043490611930565b80601f016020809104026020016040519081016040528092919081815260200182805461046090611930565b80156104ab5780601f10610482576101008083540402835291602001916104ab565b820191905f5260205f20905b81548152906001019060200180831161048e57829003601f168201915b5050505050905090565b5f6104c86104c1610bd1565b8484610bd8565b6001905092915050565b600a602052805f5260405f205f915054906101000a900460ff1681565b5f600354905090565b60085481565b5f61050a848484610d9b565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610551610bd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156105d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c7906119d0565b60405180910390fd5b6105e4856105dc610bd1565b858403610bd8565b60019150509392505050565b5f6012905090565b5f610695610604610bd1565b848460025f610611610bd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546106909190611a1b565b610bd8565b6001905092915050565b6106a7610bd1565b73ffffffffffffffffffffffffffffffffffffffff166106c561089f565b73ffffffffffffffffffffffffffffffffffffffff161461071b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071290611a98565b60405180910390fd5b8360065f6101000a81548160ff0219169083151502179055508260095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816007819055508060088190555050505050565b6107923382611013565b50565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610808610bd1565b73ffffffffffffffffffffffffffffffffffffffff1661082661089f565b73ffffffffffffffffffffffffffffffffffffffff161461087c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087390611a98565b60405180910390fd5b6108855f6111e1565b565b60065f9054906101000a900460ff1681565b60075481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546108d590611930565b80601f016020809104026020016040519081016040528092919081815260200182805461090190611930565b801561094c5780601f106109235761010080835404028352916020019161094c565b820191905f5260205f20905b81548152906001019060200180831161092f57829003601f168201915b5050505050905090565b5f8060025f610963610bd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1490611b26565b60405180910390fd5b610a31610a28610bd1565b85858403610bd8565b600191505092915050565b5f610a4f610a48610bd1565b8484610d9b565b6001905092915050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610ae3610bd1565b73ffffffffffffffffffffffffffffffffffffffff16610b0161089f565b73ffffffffffffffffffffffffffffffffffffffff1614610b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4e90611a98565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbc90611bb4565b60405180910390fd5b610bce816111e1565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3d90611c42565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cab90611cd0565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d8e9190611747565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0090611d5e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6e90611dec565b60405180910390fd5b610e828383836112a2565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610f06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efd90611e7a565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610f969190611a1b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ffa9190611747565b60405180910390a361100d848484611576565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611081576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107890611f08565b60405180910390fd5b61108c825f836112a2565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110790611f96565b60405180910390fd5b81810360015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f8282546111659190611fb4565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111c99190611747565b60405180910390a36111dc835f84611576565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156113405750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61137f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137690612031565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361148a576113db61089f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611446575061141761089f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b611485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147c90612099565b60405180910390fd5b611571565b60065f9054906101000a900460ff1680156114f1575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156115705760075481611503846107ba565b61150d9190611a1b565b11158015611530575060085481611523846107ba565b61152d9190611a1b565b10155b61156f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156690612101565b60405180910390fd5b5b5b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6115bd8261157b565b6115c78185611585565b93506115d7818560208601611595565b6115e0816115a3565b840191505092915050565b5f6020820190508181035f83015261160381846115b3565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6116388261160f565b9050919050565b6116488161162e565b8114611652575f80fd5b50565b5f813590506116638161163f565b92915050565b5f819050919050565b61167b81611669565b8114611685575f80fd5b50565b5f8135905061169681611672565b92915050565b5f80604083850312156116b2576116b161160b565b5b5f6116bf85828601611655565b92505060206116d085828601611688565b9150509250929050565b5f8115159050919050565b6116ee816116da565b82525050565b5f6020820190506117075f8301846116e5565b92915050565b5f602082840312156117225761172161160b565b5b5f61172f84828501611655565b91505092915050565b61174181611669565b82525050565b5f60208201905061175a5f830184611738565b92915050565b5f805f606084860312156117775761177661160b565b5b5f61178486828701611655565b935050602061179586828701611655565b92505060406117a686828701611688565b9150509250925092565b5f60ff82169050919050565b6117c5816117b0565b82525050565b5f6020820190506117de5f8301846117bc565b92915050565b6117ed816116da565b81146117f7575f80fd5b50565b5f81359050611808816117e4565b92915050565b5f805f80608085870312156118265761182561160b565b5b5f611833878288016117fa565b945050602061184487828801611655565b935050604061185587828801611688565b925050606061186687828801611688565b91505092959194509250565b5f602082840312156118875761188661160b565b5b5f61189484828501611688565b91505092915050565b6118a68161162e565b82525050565b5f6020820190506118bf5f83018461189d565b92915050565b5f80604083850312156118db576118da61160b565b5b5f6118e885828601611655565b92505060206118f985828601611655565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061194757607f821691505b60208210810361195a57611959611903565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6119ba602883611585565b91506119c582611960565b604082019050919050565b5f6020820190508181035f8301526119e7816119ae565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a2582611669565b9150611a3083611669565b9250828201905080821115611a4857611a476119ee565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611a82602083611585565b9150611a8d82611a4e565b602082019050919050565b5f6020820190508181035f830152611aaf81611a76565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611b10602583611585565b9150611b1b82611ab6565b604082019050919050565b5f6020820190508181035f830152611b3d81611b04565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611b9e602683611585565b9150611ba982611b44565b604082019050919050565b5f6020820190508181035f830152611bcb81611b92565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611c2c602483611585565b9150611c3782611bd2565b604082019050919050565b5f6020820190508181035f830152611c5981611c20565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611cba602283611585565b9150611cc582611c60565b604082019050919050565b5f6020820190508181035f830152611ce781611cae565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611d48602583611585565b9150611d5382611cee565b604082019050919050565b5f6020820190508181035f830152611d7581611d3c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611dd6602383611585565b9150611de182611d7c565b604082019050919050565b5f6020820190508181035f830152611e0381611dca565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611e64602683611585565b9150611e6f82611e0a565b604082019050919050565b5f6020820190508181035f830152611e9181611e58565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f611ef2602183611585565b9150611efd82611e98565b604082019050919050565b5f6020820190508181035f830152611f1f81611ee6565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f611f80602283611585565b9150611f8b82611f26565b604082019050919050565b5f6020820190508181035f830152611fad81611f74565b9050919050565b5f611fbe82611669565b9150611fc983611669565b9250828203905081811115611fe157611fe06119ee565b5b92915050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f61201b600b83611585565b915061202682611fe7565b602082019050919050565b5f6020820190508181035f8301526120488161200f565b9050919050565b7f74726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f612083601683611585565b915061208e8261204f565b602082019050919050565b5f6020820190508181035f8301526120b081612077565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f6120eb600683611585565b91506120f6826120b7565b602082019050919050565b5f6020820190508181035f830152612118816120df565b905091905056fea2646970667358221220130b49c5757d37a8eee9e81038b895a33a93e271ce82540a970afc53655726cd64736f6c634300081a00330000000000000000000000000000000000000000000000056bc75e2d63100000

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610135575f3560e01c806349bd5a5e116100b65780638da5cb5b1161007a5780638da5cb5b1461033d57806395d89b411461035b578063a457c2d714610379578063a9059cbb146103a9578063dd62ed3e146103d9578063f2fde38b1461040957610135565b806349bd5a5e146102a957806370a08231146102c7578063715018a6146102f7578063860a32ec1461030157806389f9a1d31461031f57610135565b806323b872dd116100fd57806323b872dd146101f3578063313ce5671461022357806339509351146102415780633aa633aa1461027157806342966c681461028d57610135565b806306fdde0314610139578063095ea7b31461015757806316c021291461018757806318160ddd146101b75780631ab99e12146101d5575b5f80fd5b610141610425565b60405161014e91906115eb565b60405180910390f35b610171600480360381019061016c919061169c565b6104b5565b60405161017e91906116f4565b60405180910390f35b6101a1600480360381019061019c919061170d565b6104d2565b6040516101ae91906116f4565b60405180910390f35b6101bf6104ef565b6040516101cc9190611747565b60405180910390f35b6101dd6104f8565b6040516101ea9190611747565b60405180910390f35b61020d60048036038101906102089190611760565b6104fe565b60405161021a91906116f4565b60405180910390f35b61022b6105f0565b60405161023891906117cb565b60405180910390f35b61025b6004803603810190610256919061169c565b6105f8565b60405161026891906116f4565b60405180910390f35b61028b6004803603810190610286919061180e565b61069f565b005b6102a760048036038101906102a29190611872565b610788565b005b6102b1610795565b6040516102be91906118ac565b60405180910390f35b6102e160048036038101906102dc919061170d565b6107ba565b6040516102ee9190611747565b60405180910390f35b6102ff610800565b005b610309610887565b60405161031691906116f4565b60405180910390f35b610327610899565b6040516103349190611747565b60405180910390f35b61034561089f565b60405161035291906118ac565b60405180910390f35b6103636108c6565b60405161037091906115eb565b60405180910390f35b610393600480360381019061038e919061169c565b610956565b6040516103a091906116f4565b60405180910390f35b6103c360048036038101906103be919061169c565b610a3c565b6040516103d091906116f4565b60405180910390f35b6103f360048036038101906103ee91906118c5565b610a59565b6040516104009190611747565b60405180910390f35b610423600480360381019061041e919061170d565b610adb565b005b60606004805461043490611930565b80601f016020809104026020016040519081016040528092919081815260200182805461046090611930565b80156104ab5780601f10610482576101008083540402835291602001916104ab565b820191905f5260205f20905b81548152906001019060200180831161048e57829003601f168201915b5050505050905090565b5f6104c86104c1610bd1565b8484610bd8565b6001905092915050565b600a602052805f5260405f205f915054906101000a900460ff1681565b5f600354905090565b60085481565b5f61050a848484610d9b565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610551610bd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156105d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c7906119d0565b60405180910390fd5b6105e4856105dc610bd1565b858403610bd8565b60019150509392505050565b5f6012905090565b5f610695610604610bd1565b848460025f610611610bd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546106909190611a1b565b610bd8565b6001905092915050565b6106a7610bd1565b73ffffffffffffffffffffffffffffffffffffffff166106c561089f565b73ffffffffffffffffffffffffffffffffffffffff161461071b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071290611a98565b60405180910390fd5b8360065f6101000a81548160ff0219169083151502179055508260095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816007819055508060088190555050505050565b6107923382611013565b50565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610808610bd1565b73ffffffffffffffffffffffffffffffffffffffff1661082661089f565b73ffffffffffffffffffffffffffffffffffffffff161461087c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087390611a98565b60405180910390fd5b6108855f6111e1565b565b60065f9054906101000a900460ff1681565b60075481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546108d590611930565b80601f016020809104026020016040519081016040528092919081815260200182805461090190611930565b801561094c5780601f106109235761010080835404028352916020019161094c565b820191905f5260205f20905b81548152906001019060200180831161092f57829003601f168201915b5050505050905090565b5f8060025f610963610bd1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1490611b26565b60405180910390fd5b610a31610a28610bd1565b85858403610bd8565b600191505092915050565b5f610a4f610a48610bd1565b8484610d9b565b6001905092915050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610ae3610bd1565b73ffffffffffffffffffffffffffffffffffffffff16610b0161089f565b73ffffffffffffffffffffffffffffffffffffffff1614610b57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4e90611a98565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbc90611bb4565b60405180910390fd5b610bce816111e1565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3d90611c42565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cab90611cd0565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d8e9190611747565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0090611d5e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6e90611dec565b60405180910390fd5b610e828383836112a2565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610f06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efd90611e7a565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610f969190611a1b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ffa9190611747565b60405180910390a361100d848484611576565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611081576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107890611f08565b60405180910390fd5b61108c825f836112a2565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110790611f96565b60405180910390fd5b81810360015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f8282546111659190611fb4565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111c99190611747565b60405180910390a36111dc835f84611576565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156113405750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61137f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137690612031565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361148a576113db61089f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611446575061141761089f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b611485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147c90612099565b60405180910390fd5b611571565b60065f9054906101000a900460ff1680156114f1575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156115705760075481611503846107ba565b61150d9190611a1b565b11158015611530575060085481611523846107ba565b61152d9190611a1b565b10155b61156f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156690612101565b60405180910390fd5b5b5b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6115bd8261157b565b6115c78185611585565b93506115d7818560208601611595565b6115e0816115a3565b840191505092915050565b5f6020820190508181035f83015261160381846115b3565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6116388261160f565b9050919050565b6116488161162e565b8114611652575f80fd5b50565b5f813590506116638161163f565b92915050565b5f819050919050565b61167b81611669565b8114611685575f80fd5b50565b5f8135905061169681611672565b92915050565b5f80604083850312156116b2576116b161160b565b5b5f6116bf85828601611655565b92505060206116d085828601611688565b9150509250929050565b5f8115159050919050565b6116ee816116da565b82525050565b5f6020820190506117075f8301846116e5565b92915050565b5f602082840312156117225761172161160b565b5b5f61172f84828501611655565b91505092915050565b61174181611669565b82525050565b5f60208201905061175a5f830184611738565b92915050565b5f805f606084860312156117775761177661160b565b5b5f61178486828701611655565b935050602061179586828701611655565b92505060406117a686828701611688565b9150509250925092565b5f60ff82169050919050565b6117c5816117b0565b82525050565b5f6020820190506117de5f8301846117bc565b92915050565b6117ed816116da565b81146117f7575f80fd5b50565b5f81359050611808816117e4565b92915050565b5f805f80608085870312156118265761182561160b565b5b5f611833878288016117fa565b945050602061184487828801611655565b935050604061185587828801611688565b925050606061186687828801611688565b91505092959194509250565b5f602082840312156118875761188661160b565b5b5f61189484828501611688565b91505092915050565b6118a68161162e565b82525050565b5f6020820190506118bf5f83018461189d565b92915050565b5f80604083850312156118db576118da61160b565b5b5f6118e885828601611655565b92505060206118f985828601611655565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061194757607f821691505b60208210810361195a57611959611903565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6119ba602883611585565b91506119c582611960565b604082019050919050565b5f6020820190508181035f8301526119e7816119ae565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611a2582611669565b9150611a3083611669565b9250828201905080821115611a4857611a476119ee565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611a82602083611585565b9150611a8d82611a4e565b602082019050919050565b5f6020820190508181035f830152611aaf81611a76565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611b10602583611585565b9150611b1b82611ab6565b604082019050919050565b5f6020820190508181035f830152611b3d81611b04565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611b9e602683611585565b9150611ba982611b44565b604082019050919050565b5f6020820190508181035f830152611bcb81611b92565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611c2c602483611585565b9150611c3782611bd2565b604082019050919050565b5f6020820190508181035f830152611c5981611c20565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611cba602283611585565b9150611cc582611c60565b604082019050919050565b5f6020820190508181035f830152611ce781611cae565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611d48602583611585565b9150611d5382611cee565b604082019050919050565b5f6020820190508181035f830152611d7581611d3c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611dd6602383611585565b9150611de182611d7c565b604082019050919050565b5f6020820190508181035f830152611e0381611dca565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611e64602683611585565b9150611e6f82611e0a565b604082019050919050565b5f6020820190508181035f830152611e9181611e58565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f611ef2602183611585565b9150611efd82611e98565b604082019050919050565b5f6020820190508181035f830152611f1f81611ee6565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f611f80602283611585565b9150611f8b82611f26565b604082019050919050565b5f6020820190508181035f830152611fad81611f74565b9050919050565b5f611fbe82611669565b9150611fc983611669565b9250828203905081811115611fe157611fe06119ee565b5b92915050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f61201b600b83611585565b915061202682611fe7565b602082019050919050565b5f6020820190508181035f8301526120488161200f565b9050919050565b7f74726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f612083601683611585565b915061208e8261204f565b602082019050919050565b5f6020820190508181035f8301526120b081612077565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f6120eb600683611585565b91506120f6826120b7565b602082019050919050565b5f6020820190508181035f830152612118816120df565b905091905056fea2646970667358221220130b49c5757d37a8eee9e81038b895a33a93e271ce82540a970afc53655726cd64736f6c634300081a0033

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

0000000000000000000000000000000000000000000000056bc75e2d63100000

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000056bc75e2d63100000


Deployed Bytecode Sourcemap

19383:1334:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9352:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11519:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19578:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10472:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19505:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12170:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10314:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13071:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19749:301;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20633:81;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19543:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10643:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2753:103;;;:::i;:::-;;19434:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19467:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2102:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9571:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13789:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10983:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11221:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3011:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9352:100;9406:13;9439:5;9432:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9352:100;:::o;11519:169::-;11602:4;11619:39;11628:12;:10;:12::i;:::-;11642:7;11651:6;11619:8;:39::i;:::-;11676:4;11669:11;;11519:169;;;;:::o;19578:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;10472:108::-;10533:7;10560:12;;10553:19;;10472:108;:::o;19505:31::-;;;;:::o;12170:492::-;12310:4;12327:36;12337:6;12345:9;12356:6;12327:9;:36::i;:::-;12376:24;12403:11;:19;12415:6;12403:19;;;;;;;;;;;;;;;:33;12423:12;:10;:12::i;:::-;12403:33;;;;;;;;;;;;;;;;12376:60;;12475:6;12455:16;:26;;12447:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12562:57;12571:6;12579:12;:10;:12::i;:::-;12612:6;12593:16;:25;12562:8;:57::i;:::-;12650:4;12643:11;;;12170:492;;;;;:::o;10314:93::-;10372:5;10397:2;10390:9;;10314:93;:::o;13071:215::-;13159:4;13176:80;13185:12;:10;:12::i;:::-;13199:7;13245:10;13208:11;:25;13220:12;:10;:12::i;:::-;13208:25;;;;;;;;;;;;;;;:34;13234:7;13208:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;13176:8;:80::i;:::-;13274:4;13267:11;;13071:215;;;;:::o;19749:301::-;2333:12;:10;:12::i;:::-;2322:23;;:7;:5;:7::i;:::-;:23;;;2314:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19899:8:::1;19889:7;;:18;;;;;;;;;;;;;;;;;;19934:14;19918:13;;:30;;;;;;;;;;;;;;;;;;19978:17;19959:16;:36;;;;20025:17;20006:16;:36;;;;19749:301:::0;;;;:::o;20633:81::-;20682:24;20688:10;20700:5;20682;:24::i;:::-;20633:81;:::o;19543:28::-;;;;;;;;;;;;;:::o;10643:127::-;10717:7;10744:9;:18;10754:7;10744:18;;;;;;;;;;;;;;;;10737:25;;10643:127;;;:::o;2753:103::-;2333:12;:10;:12::i;:::-;2322:23;;:7;:5;:7::i;:::-;:23;;;2314:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2818:30:::1;2845:1;2818:18;:30::i;:::-;2753:103::o:0;19434:26::-;;;;;;;;;;;;;:::o;19467:31::-;;;;:::o;2102:87::-;2148:7;2175:6;;;;;;;;;;;2168:13;;2102:87;:::o;9571:104::-;9627:13;9660:7;9653:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9571:104;:::o;13789:413::-;13882:4;13899:24;13926:11;:25;13938:12;:10;:12::i;:::-;13926:25;;;;;;;;;;;;;;;:34;13952:7;13926:34;;;;;;;;;;;;;;;;13899:61;;13999:15;13979:16;:35;;13971:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14092:67;14101:12;:10;:12::i;:::-;14115:7;14143:15;14124:16;:34;14092:8;:67::i;:::-;14190:4;14183:11;;;13789:413;;;;:::o;10983:175::-;11069:4;11086:42;11096:12;:10;:12::i;:::-;11110:9;11121:6;11086:9;:42::i;:::-;11146:4;11139:11;;10983:175;;;;:::o;11221:151::-;11310:7;11337:11;:18;11349:5;11337:18;;;;;;;;;;;;;;;:27;11356:7;11337:27;;;;;;;;;;;;;;;;11330:34;;11221:151;;;;:::o;3011:201::-;2333:12;:10;:12::i;:::-;2322:23;;:7;:5;:7::i;:::-;:23;;;2314:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3120:1:::1;3100:22;;:8;:22;;::::0;3092:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3176:28;3195:8;3176:18;:28::i;:::-;3011:201:::0;:::o;820:98::-;873:7;900:10;893:17;;820:98;:::o;17473:380::-;17626:1;17609:19;;:5;:19;;;17601:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17707:1;17688:21;;:7;:21;;;17680:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17791:6;17761:11;:18;17773:5;17761:18;;;;;;;;;;;;;;;:27;17780:7;17761:27;;;;;;;;;;;;;;;:36;;;;17829:7;17813:32;;17822:5;17813:32;;;17838:6;17813:32;;;;;;:::i;:::-;;;;;;;;17473:380;;;:::o;14692:733::-;14850:1;14832:20;;:6;:20;;;14824:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14934:1;14913:23;;:9;:23;;;14905:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14989:47;15010:6;15018:9;15029:6;14989:20;:47::i;:::-;15049:21;15073:9;:17;15083:6;15073:17;;;;;;;;;;;;;;;;15049:41;;15126:6;15109:13;:23;;15101:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15247:6;15231:13;:22;15211:9;:17;15221:6;15211:17;;;;;;;;;;;;;;;:42;;;;15299:6;15275:9;:20;15285:9;15275:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;15340:9;15323:35;;15332:6;15323:35;;;15351:6;15323:35;;;;;;:::i;:::-;;;;;;;;15371:46;15391:6;15399:9;15410:6;15371:19;:46::i;:::-;14813:612;14692:733;;;:::o;16444:591::-;16547:1;16528:21;;:7;:21;;;16520:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16600:49;16621:7;16638:1;16642:6;16600:20;:49::i;:::-;16662:22;16687:9;:18;16697:7;16687:18;;;;;;;;;;;;;;;;16662:43;;16742:6;16724:14;:24;;16716:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16861:6;16844:14;:23;16823:9;:18;16833:7;16823:18;;;;;;;;;;;;;;;:44;;;;16905:6;16889:12;;:22;;;;;;;:::i;:::-;;;;;;;;16955:1;16929:37;;16938:7;16929:37;;;16959:6;16929:37;;;;;;:::i;:::-;;;;;;;;16979:48;16999:7;17016:1;17020:6;16979:19;:48::i;:::-;16509:526;16444:591;;:::o;3372:191::-;3446:16;3465:6;;;;;;;;;;;3446:25;;3491:8;3482:6;;:17;;;;;;;;;;;;;;;;;;3546:8;3515:40;;3536:8;3515:40;;;;;;;;;;;;3435:128;3372:191;:::o;20058:567::-;20210:10;:14;20221:2;20210:14;;;;;;;;;;;;;;;;;;;;;;;;;20209:15;:36;;;;;20229:10;:16;20240:4;20229:16;;;;;;;;;;;;;;;;;;;;;;;;;20228:17;20209:36;20201:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;20303:1;20278:27;;:13;;;;;;;;;;;:27;;;20274:148;;20338:7;:5;:7::i;:::-;20330:15;;:4;:15;;;:32;;;;20355:7;:5;:7::i;:::-;20349:13;;:2;:13;;;20330:32;20322:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20404:7;;20274:148;20438:7;;;;;;;;;;;:32;;;;;20457:13;;;;;;;;;;;20449:21;;:4;:21;;;20438:32;20434:184;;;20527:16;;20517:6;20495:19;20511:2;20495:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;:100;;;;;20579:16;;20569:6;20547:19;20563:2;20547:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;20495:100;20487:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;20434:184;20058:567;;;;:::o;19182: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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:329::-;3398:6;3447:2;3435:9;3426:7;3422:23;3418:32;3415:119;;;3453:79;;:::i;:::-;3415:119;3573:1;3598:53;3643:7;3634:6;3623:9;3619:22;3598:53;:::i;:::-;3588:63;;3544:117;3339:329;;;;:::o;3674:118::-;3761:24;3779:5;3761:24;:::i;:::-;3756:3;3749:37;3674:118;;:::o;3798:222::-;3891:4;3929:2;3918:9;3914:18;3906:26;;3942:71;4010:1;3999:9;3995:17;3986:6;3942:71;:::i;:::-;3798:222;;;;:::o;4026:619::-;4103:6;4111;4119;4168:2;4156:9;4147:7;4143:23;4139:32;4136:119;;;4174:79;;:::i;:::-;4136:119;4294:1;4319:53;4364:7;4355:6;4344:9;4340:22;4319:53;:::i;:::-;4309:63;;4265:117;4421:2;4447:53;4492:7;4483:6;4472:9;4468:22;4447:53;:::i;:::-;4437:63;;4392:118;4549:2;4575:53;4620:7;4611:6;4600:9;4596:22;4575:53;:::i;:::-;4565:63;;4520:118;4026:619;;;;;:::o;4651:86::-;4686:7;4726:4;4719:5;4715:16;4704:27;;4651:86;;;:::o;4743:112::-;4826:22;4842:5;4826:22;:::i;:::-;4821:3;4814:35;4743:112;;:::o;4861:214::-;4950:4;4988:2;4977:9;4973:18;4965:26;;5001:67;5065:1;5054:9;5050:17;5041:6;5001:67;:::i;:::-;4861:214;;;;:::o;5081:116::-;5151:21;5166:5;5151:21;:::i;:::-;5144:5;5141:32;5131:60;;5187:1;5184;5177:12;5131:60;5081:116;:::o;5203:133::-;5246:5;5284:6;5271:20;5262:29;;5300:30;5324:5;5300:30;:::i;:::-;5203:133;;;;:::o;5342:759::-;5425:6;5433;5441;5449;5498:3;5486:9;5477:7;5473:23;5469:33;5466:120;;;5505:79;;:::i;:::-;5466:120;5625:1;5650:50;5692:7;5683:6;5672:9;5668:22;5650:50;:::i;:::-;5640:60;;5596:114;5749:2;5775:53;5820:7;5811:6;5800:9;5796:22;5775:53;:::i;:::-;5765:63;;5720:118;5877:2;5903:53;5948:7;5939:6;5928:9;5924:22;5903:53;:::i;:::-;5893:63;;5848:118;6005:2;6031:53;6076:7;6067:6;6056:9;6052:22;6031:53;:::i;:::-;6021:63;;5976:118;5342:759;;;;;;;:::o;6107:329::-;6166:6;6215:2;6203:9;6194:7;6190:23;6186:32;6183:119;;;6221:79;;:::i;:::-;6183:119;6341:1;6366:53;6411:7;6402:6;6391:9;6387:22;6366:53;:::i;:::-;6356:63;;6312:117;6107:329;;;;:::o;6442:118::-;6529:24;6547:5;6529:24;:::i;:::-;6524:3;6517:37;6442:118;;:::o;6566:222::-;6659:4;6697:2;6686:9;6682:18;6674:26;;6710:71;6778:1;6767:9;6763:17;6754:6;6710:71;:::i;:::-;6566:222;;;;:::o;6794:474::-;6862:6;6870;6919:2;6907:9;6898:7;6894:23;6890:32;6887:119;;;6925:79;;:::i;:::-;6887:119;7045:1;7070:53;7115:7;7106:6;7095:9;7091:22;7070:53;:::i;:::-;7060:63;;7016:117;7172:2;7198:53;7243:7;7234:6;7223:9;7219:22;7198:53;:::i;:::-;7188:63;;7143:118;6794:474;;;;;:::o;7274:180::-;7322:77;7319:1;7312:88;7419:4;7416:1;7409:15;7443:4;7440:1;7433:15;7460:320;7504:6;7541:1;7535:4;7531:12;7521:22;;7588:1;7582:4;7578:12;7609:18;7599:81;;7665:4;7657:6;7653:17;7643:27;;7599:81;7727:2;7719:6;7716:14;7696:18;7693:38;7690:84;;7746:18;;:::i;:::-;7690:84;7511:269;7460:320;;;:::o;7786:227::-;7926:34;7922:1;7914:6;7910:14;7903:58;7995:10;7990:2;7982:6;7978:15;7971:35;7786:227;:::o;8019:366::-;8161:3;8182:67;8246:2;8241:3;8182:67;:::i;:::-;8175:74;;8258:93;8347:3;8258:93;:::i;:::-;8376:2;8371:3;8367:12;8360:19;;8019:366;;;:::o;8391:419::-;8557:4;8595:2;8584:9;8580:18;8572:26;;8644:9;8638:4;8634:20;8630:1;8619:9;8615:17;8608:47;8672:131;8798:4;8672:131;:::i;:::-;8664:139;;8391:419;;;:::o;8816:180::-;8864:77;8861:1;8854:88;8961:4;8958:1;8951:15;8985:4;8982:1;8975:15;9002:191;9042:3;9061:20;9079:1;9061:20;:::i;:::-;9056:25;;9095:20;9113:1;9095:20;:::i;:::-;9090:25;;9138:1;9135;9131:9;9124:16;;9159:3;9156:1;9153:10;9150:36;;;9166:18;;:::i;:::-;9150:36;9002:191;;;;:::o;9199:182::-;9339:34;9335:1;9327:6;9323:14;9316:58;9199:182;:::o;9387:366::-;9529:3;9550:67;9614:2;9609:3;9550:67;:::i;:::-;9543:74;;9626:93;9715:3;9626:93;:::i;:::-;9744:2;9739:3;9735:12;9728:19;;9387:366;;;:::o;9759:419::-;9925:4;9963:2;9952:9;9948:18;9940:26;;10012:9;10006:4;10002:20;9998:1;9987:9;9983:17;9976:47;10040:131;10166:4;10040:131;:::i;:::-;10032:139;;9759:419;;;:::o;10184:224::-;10324:34;10320:1;10312:6;10308:14;10301:58;10393:7;10388:2;10380:6;10376:15;10369:32;10184:224;:::o;10414:366::-;10556:3;10577:67;10641:2;10636:3;10577:67;:::i;:::-;10570:74;;10653:93;10742:3;10653:93;:::i;:::-;10771:2;10766:3;10762:12;10755:19;;10414:366;;;:::o;10786:419::-;10952:4;10990:2;10979:9;10975:18;10967:26;;11039:9;11033:4;11029:20;11025:1;11014:9;11010:17;11003:47;11067:131;11193:4;11067:131;:::i;:::-;11059:139;;10786:419;;;:::o;11211:225::-;11351:34;11347:1;11339:6;11335:14;11328:58;11420:8;11415:2;11407:6;11403:15;11396:33;11211:225;:::o;11442:366::-;11584:3;11605:67;11669:2;11664:3;11605:67;:::i;:::-;11598:74;;11681:93;11770:3;11681:93;:::i;:::-;11799:2;11794:3;11790:12;11783:19;;11442:366;;;:::o;11814:419::-;11980:4;12018:2;12007:9;12003:18;11995:26;;12067:9;12061:4;12057:20;12053:1;12042:9;12038:17;12031:47;12095:131;12221:4;12095:131;:::i;:::-;12087:139;;11814:419;;;:::o;12239:223::-;12379:34;12375:1;12367:6;12363:14;12356:58;12448:6;12443:2;12435:6;12431:15;12424:31;12239:223;:::o;12468:366::-;12610:3;12631:67;12695:2;12690:3;12631:67;:::i;:::-;12624:74;;12707:93;12796:3;12707:93;:::i;:::-;12825:2;12820:3;12816:12;12809:19;;12468:366;;;:::o;12840:419::-;13006:4;13044:2;13033:9;13029:18;13021:26;;13093:9;13087:4;13083:20;13079:1;13068:9;13064:17;13057:47;13121:131;13247:4;13121:131;:::i;:::-;13113:139;;12840:419;;;:::o;13265:221::-;13405:34;13401:1;13393:6;13389:14;13382:58;13474:4;13469:2;13461:6;13457:15;13450:29;13265:221;:::o;13492:366::-;13634:3;13655:67;13719:2;13714:3;13655:67;:::i;:::-;13648:74;;13731:93;13820:3;13731:93;:::i;:::-;13849:2;13844:3;13840:12;13833:19;;13492:366;;;:::o;13864:419::-;14030:4;14068:2;14057:9;14053:18;14045:26;;14117:9;14111:4;14107:20;14103:1;14092:9;14088:17;14081:47;14145:131;14271:4;14145:131;:::i;:::-;14137:139;;13864:419;;;:::o;14289:224::-;14429:34;14425:1;14417:6;14413:14;14406:58;14498:7;14493:2;14485:6;14481:15;14474:32;14289:224;:::o;14519:366::-;14661:3;14682:67;14746:2;14741:3;14682:67;:::i;:::-;14675:74;;14758:93;14847:3;14758:93;:::i;:::-;14876:2;14871:3;14867:12;14860:19;;14519:366;;;:::o;14891:419::-;15057:4;15095:2;15084:9;15080:18;15072:26;;15144:9;15138:4;15134:20;15130:1;15119:9;15115:17;15108:47;15172:131;15298:4;15172:131;:::i;:::-;15164:139;;14891:419;;;:::o;15316:222::-;15456:34;15452:1;15444:6;15440:14;15433:58;15525:5;15520:2;15512:6;15508:15;15501:30;15316:222;:::o;15544:366::-;15686:3;15707:67;15771:2;15766:3;15707:67;:::i;:::-;15700:74;;15783:93;15872:3;15783:93;:::i;:::-;15901:2;15896:3;15892:12;15885:19;;15544:366;;;:::o;15916:419::-;16082:4;16120:2;16109:9;16105:18;16097:26;;16169:9;16163:4;16159:20;16155:1;16144:9;16140:17;16133:47;16197:131;16323:4;16197:131;:::i;:::-;16189:139;;15916:419;;;:::o;16341:225::-;16481:34;16477:1;16469:6;16465:14;16458:58;16550:8;16545:2;16537:6;16533:15;16526:33;16341:225;:::o;16572:366::-;16714:3;16735:67;16799:2;16794:3;16735:67;:::i;:::-;16728:74;;16811:93;16900:3;16811:93;:::i;:::-;16929:2;16924:3;16920:12;16913:19;;16572:366;;;:::o;16944:419::-;17110:4;17148:2;17137:9;17133:18;17125:26;;17197:9;17191:4;17187:20;17183:1;17172:9;17168:17;17161:47;17225:131;17351:4;17225:131;:::i;:::-;17217:139;;16944:419;;;:::o;17369:220::-;17509:34;17505:1;17497:6;17493:14;17486:58;17578:3;17573:2;17565:6;17561:15;17554:28;17369:220;:::o;17595:366::-;17737:3;17758:67;17822:2;17817:3;17758:67;:::i;:::-;17751:74;;17834:93;17923:3;17834:93;:::i;:::-;17952:2;17947:3;17943:12;17936:19;;17595:366;;;:::o;17967:419::-;18133:4;18171:2;18160:9;18156:18;18148:26;;18220:9;18214:4;18210:20;18206:1;18195:9;18191:17;18184:47;18248:131;18374:4;18248:131;:::i;:::-;18240:139;;17967:419;;;:::o;18392:221::-;18532:34;18528:1;18520:6;18516:14;18509:58;18601:4;18596:2;18588:6;18584:15;18577:29;18392:221;:::o;18619:366::-;18761:3;18782:67;18846:2;18841:3;18782:67;:::i;:::-;18775:74;;18858:93;18947:3;18858:93;:::i;:::-;18976:2;18971:3;18967:12;18960:19;;18619:366;;;:::o;18991:419::-;19157:4;19195:2;19184:9;19180:18;19172:26;;19244:9;19238:4;19234:20;19230:1;19219:9;19215:17;19208:47;19272:131;19398:4;19272:131;:::i;:::-;19264:139;;18991:419;;;:::o;19416:194::-;19456:4;19476:20;19494:1;19476:20;:::i;:::-;19471:25;;19510:20;19528:1;19510:20;:::i;:::-;19505:25;;19554:1;19551;19547:9;19539:17;;19578:1;19572:4;19569:11;19566:37;;;19583:18;;:::i;:::-;19566:37;19416:194;;;;:::o;19616:161::-;19756:13;19752:1;19744:6;19740:14;19733:37;19616:161;:::o;19783:366::-;19925:3;19946:67;20010:2;20005:3;19946:67;:::i;:::-;19939:74;;20022:93;20111:3;20022:93;:::i;:::-;20140:2;20135:3;20131:12;20124:19;;19783:366;;;:::o;20155:419::-;20321:4;20359:2;20348:9;20344:18;20336:26;;20408:9;20402:4;20398:20;20394:1;20383:9;20379:17;20372:47;20436:131;20562:4;20436:131;:::i;:::-;20428:139;;20155:419;;;:::o;20580:172::-;20720:24;20716:1;20708:6;20704:14;20697:48;20580:172;:::o;20758:366::-;20900:3;20921:67;20985:2;20980:3;20921:67;:::i;:::-;20914:74;;20997:93;21086:3;20997:93;:::i;:::-;21115:2;21110:3;21106:12;21099:19;;20758:366;;;:::o;21130:419::-;21296:4;21334:2;21323:9;21319:18;21311:26;;21383:9;21377:4;21373:20;21369:1;21358:9;21354:17;21347:47;21411:131;21537:4;21411:131;:::i;:::-;21403:139;;21130:419;;;:::o;21555:156::-;21695:8;21691:1;21683:6;21679:14;21672:32;21555:156;:::o;21717:365::-;21859:3;21880:66;21944:1;21939:3;21880:66;:::i;:::-;21873:73;;21955:93;22044:3;21955:93;:::i;:::-;22073:2;22068:3;22064:12;22057:19;;21717:365;;;:::o;22088:419::-;22254:4;22292:2;22281:9;22277:18;22269:26;;22341:9;22335:4;22331:20;22327:1;22316:9;22312:17;22305:47;22369:131;22495:4;22369:131;:::i;:::-;22361:139;;22088:419;;;:::o

Swarm Source

ipfs://130b49c5757d37a8eee9e81038b895a33a93e271ce82540a970afc53655726cd
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.