MATIC Price: $0.730763 (-2.07%)
Gas: 30 GWei
 

Overview

Max Total Supply

10,000,000 pHBD

Holders

150

Total Transfers

-

Market

Price

$0.00 @ 0.000000 MATIC

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 3 Decimals)

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

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
BridgeToken

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2022-04-08
*/

/**
 *Submitted for verification at polygonscan.com on 2022-01-12
*/

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

contract Context {
    function _msgSender() internal view returns (address payable) {
        return payable(msg.sender);
    }

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

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

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 () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    /**
     * @dev Returns true if the caller is the current owner.
     */
    function isOwner() public view returns (bool) {
        return _msgSender() == _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 onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = 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 onlyOwner {
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     */
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    /**
     * @dev Give an account access to this role.
     */
    function add(Role storage role, address account) internal {
        require(!has(role, account), "Roles: account already has role");
        role.bearer[account] = true;
    }

    /**
     * @dev Remove an account's access to this role.
     */
    function remove(Role storage role, address account) internal {
        require(has(role, account), "Roles: account does not have role");
        role.bearer[account] = false;
    }

    /**
     * @dev Check if an account has this role.
     * @return bool
     */
    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0), "Roles: account is the zero address");
        return role.bearer[account];
    }
}

contract MinterRole is Context {
    using Roles for Roles.Role;

    event MinterAdded(address indexed account);
    event MinterRemoved(address indexed account);

    Roles.Role private _minters;

    constructor () {
        _addMinter(_msgSender());
    }

    modifier onlyMinter() {
        require(isMinter(_msgSender()), "MinterRole: caller does not have the Minter role");
        _;
    }

    function isMinter(address account) public view returns (bool) {
        return _minters.has(account);
    }

    function addMinter(address account) public onlyMinter {
        _addMinter(account);
    }

    function renounceMinter() public {
        _removeMinter(_msgSender());
    }

    function _addMinter(address account) internal {
        _minters.add(account);
        emit MinterAdded(account);
    }

    function _removeMinter(address account) internal {
        _minters.remove(account);
        emit MinterRemoved(account);
    }
}

contract BridgeToken is Context, IERC20, Ownable, MinterRole {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;
    uint256 private _cap;
    uint256 private _decimals;

    string private _name;
    string private _symbol;

    /**
    * CROSS-CHAIN BRIDGE FUNCTIONS
    */

    event convertToken(uint256 amount, string username);

    address public coldWallet = 0x78E343Ce8Ba855795685C862245642daEFfA048D;

    function updateColdWallet(address _new) external {
      require(msg.sender == coldWallet, 'Not cold wallet');
      coldWallet = _new;
    }

    function convertTokenWithTransfer(uint256 amount, string memory username) public {
        address convertAddress = coldWallet;
       _transfer(_msgSender(), convertAddress, amount);
       emit convertToken(amount, username);
     }

    function convertTokenFromWithTransfer(
        address sender,
        uint256 amount,
        string memory username
    ) public {
        address convertAddress = coldWallet;
        _transfer(sender, convertAddress, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount);
        emit convertToken(amount, username);
    }

    /**
    * TRANSFERS WITH PERMIT FUNCTIONS
    */

    mapping (address => mapping (uint256 => bool)) public nonces;

    function transferWithPermit(address from, address to, uint256 amount, bytes calldata signature, uint256 nonce) public returns (bool) {
      require(nonces[from][nonce] == false, 'Nonce already used');

      uint256 chainId = getChainID();
      bytes32 messageHash = getEthereumMessageHash(keccak256(abi.encodePacked(from, to, amount, nonce, address(this), chainId)));
      address signer = recoverSigner(messageHash, signature);
      require(signer == from, 'Invalid signature!');

      nonces[signer][nonce] = true;

      _transfer(from, to, amount);
      return true;
    }

    function recoverSigner(bytes32 hash, bytes memory signature) internal pure returns (address) {
      bytes32 r;
      bytes32 s;
      uint8 v;

      if (signature.length != 65) {
          return (address(0));
      }

      assembly {
          r := mload(add(signature, 0x20))
          s := mload(add(signature, 0x40))
          v := byte(0, mload(add(signature, 0x60)))
      }

      if (v < 27) {
          v += 27;
      }

      if (v != 27 && v != 28) {
          return (address(0));
      } else {
          return ecrecover(hash, v, r, s);
      }
    }

    function getEthereumMessageHash(bytes32 hash) public pure returns(bytes32) {
      return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash));
    }

    function getChainID() public view returns (uint256) {
      uint256 id;
      assembly {
          id := chainid()
      }
      return id;
    }

    /**
    * TOKEN FUNCTIONS
    */

    /**
     * @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_, uint256 newCap, uint256 newDecimals) {
        require(newCap > 0, "ERC20Capped: cap is 0");
        _name = name_;
        _symbol = symbol_;
        _cap = newCap;
        _decimals = newDecimals;
    }

    /**
     * @dev Returns the cap on the token's total supply.
     */
    function cap() public view returns (uint256) {
        return _cap;
    }

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

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual 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 returns (uint256) {
        return _decimals;
    }

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

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual 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 returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual 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}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * 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 returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, 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);
    }

    function mint(address account, uint256 value) external onlyMinter {
        require(totalSupply() + value <= _cap, "ERC20Capped: cap exceeded");
        _mint(account, value);
    }

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

    function removeMinter(address account) public onlyOwner {
        _removeMinter(account);
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"newCap","type":"uint256"},{"internalType":"uint256","name":"newDecimals","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":"account","type":"address"}],"name":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"MinterRemoved","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"string","name":"username","type":"string"}],"name":"convertToken","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coldWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"username","type":"string"}],"name":"convertTokenFromWithTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"username","type":"string"}],"name":"convertTokenWithTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"getChainID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"name":"getEthereumMessageHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"nonces","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"transferWithPermit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_new","type":"address"}],"name":"updateColdWallet","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040527378e343ce8ba855795685c862245642daeffa048d600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006657600080fd5b5060405162003a3638038062003a3683398181016040528101906200008c91906200065b565b60006200009e620001ec60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200015c62000150620001ec60201b60201c565b620001f460201b60201c565b60008211620001a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000199906200076c565b60405180910390fd5b8360079080519060200190620001ba929190620003d3565b508260089080519060200190620001d3929190620003d3565b50816005819055508060068190555050505050620008fd565b600033905090565b6200020f8160016200025560201b6200135f1790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b6200026782826200030860201b60201c565b15620002aa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002a190620007de565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200037c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003739062000876565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b828054620003e190620008c7565b90600052602060002090601f01602090048101928262000405576000855562000451565b82601f106200042057805160ff191683800117855562000451565b8280016001018555821562000451579182015b828111156200045057825182559160200191906001019062000433565b5b50905062000460919062000464565b5090565b5b808211156200047f57600081600090555060010162000465565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620004ec82620004a1565b810181811067ffffffffffffffff821117156200050e576200050d620004b2565b5b80604052505050565b60006200052362000483565b9050620005318282620004e1565b919050565b600067ffffffffffffffff821115620005545762000553620004b2565b5b6200055f82620004a1565b9050602081019050919050565b60005b838110156200058c5780820151818401526020810190506200056f565b838111156200059c576000848401525b50505050565b6000620005b9620005b38462000536565b62000517565b905082815260208101848484011115620005d857620005d76200049c565b5b620005e58482856200056c565b509392505050565b600082601f83011262000605576200060462000497565b5b815162000617848260208601620005a2565b91505092915050565b6000819050919050565b620006358162000620565b81146200064157600080fd5b50565b60008151905062000655816200062a565b92915050565b600080600080608085870312156200067857620006776200048d565b5b600085015167ffffffffffffffff81111562000699576200069862000492565b5b620006a787828801620005ed565b945050602085015167ffffffffffffffff811115620006cb57620006ca62000492565b5b620006d987828801620005ed565b9350506040620006ec8782880162000644565b9250506060620006ff8782880162000644565b91505092959194509250565b600082825260208201905092915050565b7f45524332304361707065643a2063617020697320300000000000000000000000600082015250565b6000620007546015836200070b565b915062000761826200071c565b602082019050919050565b60006020820190508181036000830152620007878162000745565b9050919050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b6000620007c6601f836200070b565b9150620007d3826200078e565b602082019050919050565b60006020820190508181036000830152620007f981620007b7565b9050919050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006200085e6022836200070b565b91506200086b8262000800565b604082019050919050565b6000602082019050818103600083015262000891816200084f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008e057607f821691505b60208210811415620008f757620008f662000898565b5b50919050565b613129806200090d6000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063715018a611610104578063983b2d56116100a2578063aa271e1a11610071578063aa271e1a14610532578063dd62ed3e14610562578063f2fde38b14610592578063f634f276146105ae576101cf565b8063983b2d56146104ac57806398650275146104c8578063a457c2d7146104d2578063a9059cbb14610502576101cf565b80638da5cb5b116100de5780638da5cb5b146104365780638f32d59b1461045457806395d89b41146104725780639783387614610490576101cf565b8063715018a6146103e057806384822f2f146103ea5780638af637721461041a576101cf565b8063355274ea11610171578063502e1a161161014b578063502e1a1614610344578063564b81ef146103745780636be13c921461039257806370a08231146103b0576101cf565b8063355274ea146102da57806339509351146102f857806340c10f1914610328576101cf565b80631d082036116101ad5780631d0820361461024057806323b872dd146102705780633092afd5146102a0578063313ce567146102bc576101cf565b806306fdde03146101d4578063095ea7b3146101f257806318160ddd14610222575b600080fd5b6101dc6105ca565b6040516101e99190611e85565b60405180910390f35b61020c60048036038101906102079190611f4f565b61065c565b6040516102199190611faa565b60405180910390f35b61022a61067a565b6040516102379190611fd4565b60405180910390f35b61025a60048036038101906102559190612025565b610684565b6040516102679190612061565b60405180910390f35b61028a6004803603810190610285919061207c565b6106b4565b6040516102979190611faa565b60405180910390f35b6102ba60048036038101906102b591906120cf565b6107d3565b005b6102c4610826565b6040516102d19190611fd4565b60405180910390f35b6102e2610830565b6040516102ef9190611fd4565b60405180910390f35b610312600480360381019061030d9190611f4f565b61083a565b60405161031f9190611faa565b60405180910390f35b610342600480360381019061033d9190611f4f565b6108e6565b005b61035e60048036038101906103599190611f4f565b61099a565b60405161036b9190611faa565b60405180910390f35b61037c6109c9565b6040516103899190611fd4565b60405180910390f35b61039a6109d6565b6040516103a7919061210b565b60405180910390f35b6103ca60048036038101906103c591906120cf565b6109fc565b6040516103d79190611fd4565b60405180910390f35b6103e8610a45565b005b61040460048036038101906103ff919061218b565b610b4a565b6040516104119190611faa565b60405180910390f35b610434600480360381019061042f9190612355565b610d7d565b005b61043e610df4565b60405161044b919061210b565b60405180910390f35b61045c610e1d565b6040516104699190611faa565b60405180910390f35b61047a610e7b565b6040516104879190611e85565b60405180910390f35b6104aa60048036038101906104a591906120cf565b610f0d565b005b6104c660048036038101906104c191906120cf565b610fe1565b005b6104d061103c565b005b6104ec60048036038101906104e79190611f4f565b61104e565b6040516104f99190611faa565b60405180910390f35b61051c60048036038101906105179190611f4f565b611139565b6040516105299190611faa565b60405180910390f35b61054c600480360381019061054791906120cf565b611157565b6040516105599190611faa565b60405180910390f35b61057c600480360381019061057791906123b1565b611174565b6040516105899190611fd4565b60405180910390f35b6105ac60048036038101906105a791906120cf565b6111fb565b005b6105c860048036038101906105c391906123f1565b61124e565b005b6060600780546105d99061248f565b80601f01602080910402602001604051908101604052809291908181526020018280546106059061248f565b80156106525780601f1061062757610100808354040283529160200191610652565b820191906000526020600020905b81548152906001019060200180831161063557829003601f168201915b5050505050905090565b6000610670610669611407565b848461140f565b6001905092915050565b6000600454905090565b6000816040516020016106979190612539565b604051602081830303815290604052805190602001209050919050565b600080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610700611407565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107bc57828110156107a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079e906125d1565b60405180910390fd5b6107bb856107b3611407565b85840361140f565b5b6107c78585856115da565b60019150509392505050565b6107db610e1d565b61081a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108119061263d565b60405180910390fd5b6108238161185e565b50565b6000600654905090565b6000600554905090565b60006108dc610847611407565b848460036000610855611407565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108d7919061268c565b61140f565b6001905092915050565b6108f66108f1611407565b611157565b610935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092c90612754565b60405180910390fd5b6005548161094161067a565b61094b919061268c565b111561098c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610983906127c0565b60405180910390fd5b61099682826118b8565b5050565b600a6020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b6000804690508091505090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a4d610e1d565b610a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a839061263d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000801515600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060009054906101000a900460ff16151514610bef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be69061282c565b60405180910390fd5b6000610bf96109c9565b90506000610c36898989873087604051602001610c1b969594939291906128b5565b60405160208183030381529060405280519060200120610684565b90506000610c888288888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611a19565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cef90612971565b60405180910390fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087815260200190815260200160002060006101000a81548160ff021916908315150217905550610d6c8a8a8a6115da565b600193505050509695505050505050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610db6610daf611407565b82856115da565b7fa4bd19713b8d263343f8b935ef24740f219b875404d1c161dd54018673e463c98383604051610de7929190612991565b60405180910390a1505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e5f611407565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b606060088054610e8a9061248f565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb69061248f565b8015610f035780601f10610ed857610100808354040283529160200191610f03565b820191906000526020600020905b815481529060010190602001808311610ee657829003601f168201915b5050505050905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9490612a0d565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610ff1610fec611407565b611157565b611030576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102790612754565b60405180910390fd5b61103981611aec565b50565b61104c611047611407565b61185e565b565b6000806003600061105d611407565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561111a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111190612a9f565b60405180910390fd5b61112e611125611407565b8585840361140f565b600191505092915050565b600061114d611146611407565b84846115da565b6001905092915050565b600061116d826001611b4690919063ffffffff16565b9050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611203610e1d565b611242576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112399061263d565b60405180910390fd5b61124b81611c0e565b50565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506112808482856115da565b6113208461128c611407565b85600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006112d6611407565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461131b9190612abf565b61140f565b7fa4bd19713b8d263343f8b935ef24740f219b875404d1c161dd54018673e463c98383604051611351929190612991565b60405180910390a150505050565b6113698282611b46565b156113a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a090612b3f565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561147f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147690612bd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e690612c63565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115cd9190611fd4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561164a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164190612cf5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b190612d87565b60405180910390fd5b6116c5838383611d3b565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561174c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174390612e19565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117e1919061268c565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118459190611fd4565b60405180910390a3611858848484611d40565b50505050565b611872816001611d4590919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191f90612e85565b60405180910390fd5b61193460008383611d3b565b8060046000828254611946919061268c565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461199c919061268c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a019190611fd4565b60405180910390a3611a1560008383611d40565b5050565b6000806000806041855114611a345760009350505050611ae6565b6020850151925060408501519150606085015160001a9050601b8160ff161015611a6857601b81611a659190612eb2565b90505b601b8160ff1614158015611a805750601c8160ff1614155b15611a915760009350505050611ae6565b60018682858560405160008152602001604052604051611ab49493929190612ef8565b6020604051602081039080840390855afa158015611ad6573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b611b0081600161135f90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bae90612faf565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7590613041565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b505050565b505050565b611d4f8282611b46565b611d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d85906130d3565b60405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e26578082015181840152602081019050611e0b565b83811115611e35576000848401525b50505050565b6000601f19601f8301169050919050565b6000611e5782611dec565b611e618185611df7565b9350611e71818560208601611e08565b611e7a81611e3b565b840191505092915050565b60006020820190508181036000830152611e9f8184611e4c565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ee682611ebb565b9050919050565b611ef681611edb565b8114611f0157600080fd5b50565b600081359050611f1381611eed565b92915050565b6000819050919050565b611f2c81611f19565b8114611f3757600080fd5b50565b600081359050611f4981611f23565b92915050565b60008060408385031215611f6657611f65611eb1565b5b6000611f7485828601611f04565b9250506020611f8585828601611f3a565b9150509250929050565b60008115159050919050565b611fa481611f8f565b82525050565b6000602082019050611fbf6000830184611f9b565b92915050565b611fce81611f19565b82525050565b6000602082019050611fe96000830184611fc5565b92915050565b6000819050919050565b61200281611fef565b811461200d57600080fd5b50565b60008135905061201f81611ff9565b92915050565b60006020828403121561203b5761203a611eb1565b5b600061204984828501612010565b91505092915050565b61205b81611fef565b82525050565b60006020820190506120766000830184612052565b92915050565b60008060006060848603121561209557612094611eb1565b5b60006120a386828701611f04565b93505060206120b486828701611f04565b92505060406120c586828701611f3a565b9150509250925092565b6000602082840312156120e5576120e4611eb1565b5b60006120f384828501611f04565b91505092915050565b61210581611edb565b82525050565b600060208201905061212060008301846120fc565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261214b5761214a612126565b5b8235905067ffffffffffffffff8111156121685761216761212b565b5b60208301915083600182028301111561218457612183612130565b5b9250929050565b60008060008060008060a087890312156121a8576121a7611eb1565b5b60006121b689828a01611f04565b96505060206121c789828a01611f04565b95505060406121d889828a01611f3a565b945050606087013567ffffffffffffffff8111156121f9576121f8611eb6565b5b61220589828a01612135565b9350935050608061221889828a01611f3a565b9150509295509295509295565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61226282611e3b565b810181811067ffffffffffffffff821117156122815761228061222a565b5b80604052505050565b6000612294611ea7565b90506122a08282612259565b919050565b600067ffffffffffffffff8211156122c0576122bf61222a565b5b6122c982611e3b565b9050602081019050919050565b82818337600083830152505050565b60006122f86122f3846122a5565b61228a565b90508281526020810184848401111561231457612313612225565b5b61231f8482856122d6565b509392505050565b600082601f83011261233c5761233b612126565b5b813561234c8482602086016122e5565b91505092915050565b6000806040838503121561236c5761236b611eb1565b5b600061237a85828601611f3a565b925050602083013567ffffffffffffffff81111561239b5761239a611eb6565b5b6123a785828601612327565b9150509250929050565b600080604083850312156123c8576123c7611eb1565b5b60006123d685828601611f04565b92505060206123e785828601611f04565b9150509250929050565b60008060006060848603121561240a57612409611eb1565b5b600061241886828701611f04565b935050602061242986828701611f3a565b925050604084013567ffffffffffffffff81111561244a57612449611eb6565b5b61245686828701612327565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806124a757607f821691505b602082108114156124bb576124ba612460565b5b50919050565b600081905092915050565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b6000612502601c836124c1565b915061250d826124cc565b601c82019050919050565b6000819050919050565b61253361252e82611fef565b612518565b82525050565b6000612544826124f5565b91506125508284612522565b60208201915081905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006125bb602883611df7565b91506125c68261255f565b604082019050919050565b600060208201905081810360008301526125ea816125ae565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612627602083611df7565b9150612632826125f1565b602082019050919050565b600060208201905081810360008301526126568161261a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061269782611f19565b91506126a283611f19565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156126d7576126d661265d565b5b828201905092915050565b7f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766560008201527f20746865204d696e74657220726f6c6500000000000000000000000000000000602082015250565b600061273e603083611df7565b9150612749826126e2565b604082019050919050565b6000602082019050818103600083015261276d81612731565b9050919050565b7f45524332304361707065643a2063617020657863656564656400000000000000600082015250565b60006127aa601983611df7565b91506127b582612774565b602082019050919050565b600060208201905081810360008301526127d98161279d565b9050919050565b7f4e6f6e636520616c726561647920757365640000000000000000000000000000600082015250565b6000612816601283611df7565b9150612821826127e0565b602082019050919050565b6000602082019050818103600083015261284581612809565b9050919050565b60008160601b9050919050565b60006128648261284c565b9050919050565b600061287682612859565b9050919050565b61288e61288982611edb565b61286b565b82525050565b6000819050919050565b6128af6128aa82611f19565b612894565b82525050565b60006128c1828961287d565b6014820191506128d1828861287d565b6014820191506128e1828761289e565b6020820191506128f1828661289e565b602082019150612901828561287d565b601482019150612911828461289e565b602082019150819050979650505050505050565b7f496e76616c6964207369676e6174757265210000000000000000000000000000600082015250565b600061295b601283611df7565b915061296682612925565b602082019050919050565b6000602082019050818103600083015261298a8161294e565b9050919050565b60006040820190506129a66000830185611fc5565b81810360208301526129b88184611e4c565b90509392505050565b7f4e6f7420636f6c642077616c6c65740000000000000000000000000000000000600082015250565b60006129f7600f83611df7565b9150612a02826129c1565b602082019050919050565b60006020820190508181036000830152612a26816129ea565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612a89602583611df7565b9150612a9482612a2d565b604082019050919050565b60006020820190508181036000830152612ab881612a7c565b9050919050565b6000612aca82611f19565b9150612ad583611f19565b925082821015612ae857612ae761265d565b5b828203905092915050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b6000612b29601f83611df7565b9150612b3482612af3565b602082019050919050565b60006020820190508181036000830152612b5881612b1c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612bbb602483611df7565b9150612bc682612b5f565b604082019050919050565b60006020820190508181036000830152612bea81612bae565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c4d602283611df7565b9150612c5882612bf1565b604082019050919050565b60006020820190508181036000830152612c7c81612c40565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612cdf602583611df7565b9150612cea82612c83565b604082019050919050565b60006020820190508181036000830152612d0e81612cd2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d71602383611df7565b9150612d7c82612d15565b604082019050919050565b60006020820190508181036000830152612da081612d64565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612e03602683611df7565b9150612e0e82612da7565b604082019050919050565b60006020820190508181036000830152612e3281612df6565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000612e6f601f83611df7565b9150612e7a82612e39565b602082019050919050565b60006020820190508181036000830152612e9e81612e62565b9050919050565b600060ff82169050919050565b6000612ebd82612ea5565b9150612ec883612ea5565b92508260ff03821115612ede57612edd61265d565b5b828201905092915050565b612ef281612ea5565b82525050565b6000608082019050612f0d6000830187612052565b612f1a6020830186612ee9565b612f276040830185612052565b612f346060830184612052565b95945050505050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f99602283611df7565b9150612fa482612f3d565b604082019050919050565b60006020820190508181036000830152612fc881612f8c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061302b602683611df7565b915061303682612fcf565b604082019050919050565b6000602082019050818103600083015261305a8161301e565b9050919050565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b60006130bd602183611df7565b91506130c882613061565b604082019050919050565b600060208201905081810360008301526130ec816130b0565b905091905056fea26469706673582212203c9b16e72009ca35830d74c197e0f93a45e66ca1501f17b2492743e6b8b0e51c64736f6c634300080b0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000002540be4000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000b506f6c79676f6e2048424400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047048424400000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063715018a611610104578063983b2d56116100a2578063aa271e1a11610071578063aa271e1a14610532578063dd62ed3e14610562578063f2fde38b14610592578063f634f276146105ae576101cf565b8063983b2d56146104ac57806398650275146104c8578063a457c2d7146104d2578063a9059cbb14610502576101cf565b80638da5cb5b116100de5780638da5cb5b146104365780638f32d59b1461045457806395d89b41146104725780639783387614610490576101cf565b8063715018a6146103e057806384822f2f146103ea5780638af637721461041a576101cf565b8063355274ea11610171578063502e1a161161014b578063502e1a1614610344578063564b81ef146103745780636be13c921461039257806370a08231146103b0576101cf565b8063355274ea146102da57806339509351146102f857806340c10f1914610328576101cf565b80631d082036116101ad5780631d0820361461024057806323b872dd146102705780633092afd5146102a0578063313ce567146102bc576101cf565b806306fdde03146101d4578063095ea7b3146101f257806318160ddd14610222575b600080fd5b6101dc6105ca565b6040516101e99190611e85565b60405180910390f35b61020c60048036038101906102079190611f4f565b61065c565b6040516102199190611faa565b60405180910390f35b61022a61067a565b6040516102379190611fd4565b60405180910390f35b61025a60048036038101906102559190612025565b610684565b6040516102679190612061565b60405180910390f35b61028a6004803603810190610285919061207c565b6106b4565b6040516102979190611faa565b60405180910390f35b6102ba60048036038101906102b591906120cf565b6107d3565b005b6102c4610826565b6040516102d19190611fd4565b60405180910390f35b6102e2610830565b6040516102ef9190611fd4565b60405180910390f35b610312600480360381019061030d9190611f4f565b61083a565b60405161031f9190611faa565b60405180910390f35b610342600480360381019061033d9190611f4f565b6108e6565b005b61035e60048036038101906103599190611f4f565b61099a565b60405161036b9190611faa565b60405180910390f35b61037c6109c9565b6040516103899190611fd4565b60405180910390f35b61039a6109d6565b6040516103a7919061210b565b60405180910390f35b6103ca60048036038101906103c591906120cf565b6109fc565b6040516103d79190611fd4565b60405180910390f35b6103e8610a45565b005b61040460048036038101906103ff919061218b565b610b4a565b6040516104119190611faa565b60405180910390f35b610434600480360381019061042f9190612355565b610d7d565b005b61043e610df4565b60405161044b919061210b565b60405180910390f35b61045c610e1d565b6040516104699190611faa565b60405180910390f35b61047a610e7b565b6040516104879190611e85565b60405180910390f35b6104aa60048036038101906104a591906120cf565b610f0d565b005b6104c660048036038101906104c191906120cf565b610fe1565b005b6104d061103c565b005b6104ec60048036038101906104e79190611f4f565b61104e565b6040516104f99190611faa565b60405180910390f35b61051c60048036038101906105179190611f4f565b611139565b6040516105299190611faa565b60405180910390f35b61054c600480360381019061054791906120cf565b611157565b6040516105599190611faa565b60405180910390f35b61057c600480360381019061057791906123b1565b611174565b6040516105899190611fd4565b60405180910390f35b6105ac60048036038101906105a791906120cf565b6111fb565b005b6105c860048036038101906105c391906123f1565b61124e565b005b6060600780546105d99061248f565b80601f01602080910402602001604051908101604052809291908181526020018280546106059061248f565b80156106525780601f1061062757610100808354040283529160200191610652565b820191906000526020600020905b81548152906001019060200180831161063557829003601f168201915b5050505050905090565b6000610670610669611407565b848461140f565b6001905092915050565b6000600454905090565b6000816040516020016106979190612539565b604051602081830303815290604052805190602001209050919050565b600080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610700611407565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146107bc57828110156107a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079e906125d1565b60405180910390fd5b6107bb856107b3611407565b85840361140f565b5b6107c78585856115da565b60019150509392505050565b6107db610e1d565b61081a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108119061263d565b60405180910390fd5b6108238161185e565b50565b6000600654905090565b6000600554905090565b60006108dc610847611407565b848460036000610855611407565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108d7919061268c565b61140f565b6001905092915050565b6108f66108f1611407565b611157565b610935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092c90612754565b60405180910390fd5b6005548161094161067a565b61094b919061268c565b111561098c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610983906127c0565b60405180910390fd5b61099682826118b8565b5050565b600a6020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b6000804690508091505090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a4d610e1d565b610a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a839061263d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000801515600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060009054906101000a900460ff16151514610bef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be69061282c565b60405180910390fd5b6000610bf96109c9565b90506000610c36898989873087604051602001610c1b969594939291906128b5565b60405160208183030381529060405280519060200120610684565b90506000610c888288888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611a19565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cef90612971565b60405180910390fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087815260200190815260200160002060006101000a81548160ff021916908315150217905550610d6c8a8a8a6115da565b600193505050509695505050505050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610db6610daf611407565b82856115da565b7fa4bd19713b8d263343f8b935ef24740f219b875404d1c161dd54018673e463c98383604051610de7929190612991565b60405180910390a1505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e5f611407565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b606060088054610e8a9061248f565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb69061248f565b8015610f035780601f10610ed857610100808354040283529160200191610f03565b820191906000526020600020905b815481529060010190602001808311610ee657829003601f168201915b5050505050905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9490612a0d565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610ff1610fec611407565b611157565b611030576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102790612754565b60405180910390fd5b61103981611aec565b50565b61104c611047611407565b61185e565b565b6000806003600061105d611407565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561111a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111190612a9f565b60405180910390fd5b61112e611125611407565b8585840361140f565b600191505092915050565b600061114d611146611407565b84846115da565b6001905092915050565b600061116d826001611b4690919063ffffffff16565b9050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611203610e1d565b611242576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112399061263d565b60405180910390fd5b61124b81611c0e565b50565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506112808482856115da565b6113208461128c611407565b85600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006112d6611407565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461131b9190612abf565b61140f565b7fa4bd19713b8d263343f8b935ef24740f219b875404d1c161dd54018673e463c98383604051611351929190612991565b60405180910390a150505050565b6113698282611b46565b156113a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a090612b3f565b60405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561147f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147690612bd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e690612c63565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115cd9190611fd4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561164a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164190612cf5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b190612d87565b60405180910390fd5b6116c5838383611d3b565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561174c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174390612e19565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117e1919061268c565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118459190611fd4565b60405180910390a3611858848484611d40565b50505050565b611872816001611d4590919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191f90612e85565b60405180910390fd5b61193460008383611d3b565b8060046000828254611946919061268c565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461199c919061268c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a019190611fd4565b60405180910390a3611a1560008383611d40565b5050565b6000806000806041855114611a345760009350505050611ae6565b6020850151925060408501519150606085015160001a9050601b8160ff161015611a6857601b81611a659190612eb2565b90505b601b8160ff1614158015611a805750601c8160ff1614155b15611a915760009350505050611ae6565b60018682858560405160008152602001604052604051611ab49493929190612ef8565b6020604051602081039080840390855afa158015611ad6573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b611b0081600161135f90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bae90612faf565b60405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7590613041565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b505050565b505050565b611d4f8282611b46565b611d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d85906130d3565b60405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e26578082015181840152602081019050611e0b565b83811115611e35576000848401525b50505050565b6000601f19601f8301169050919050565b6000611e5782611dec565b611e618185611df7565b9350611e71818560208601611e08565b611e7a81611e3b565b840191505092915050565b60006020820190508181036000830152611e9f8184611e4c565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ee682611ebb565b9050919050565b611ef681611edb565b8114611f0157600080fd5b50565b600081359050611f1381611eed565b92915050565b6000819050919050565b611f2c81611f19565b8114611f3757600080fd5b50565b600081359050611f4981611f23565b92915050565b60008060408385031215611f6657611f65611eb1565b5b6000611f7485828601611f04565b9250506020611f8585828601611f3a565b9150509250929050565b60008115159050919050565b611fa481611f8f565b82525050565b6000602082019050611fbf6000830184611f9b565b92915050565b611fce81611f19565b82525050565b6000602082019050611fe96000830184611fc5565b92915050565b6000819050919050565b61200281611fef565b811461200d57600080fd5b50565b60008135905061201f81611ff9565b92915050565b60006020828403121561203b5761203a611eb1565b5b600061204984828501612010565b91505092915050565b61205b81611fef565b82525050565b60006020820190506120766000830184612052565b92915050565b60008060006060848603121561209557612094611eb1565b5b60006120a386828701611f04565b93505060206120b486828701611f04565b92505060406120c586828701611f3a565b9150509250925092565b6000602082840312156120e5576120e4611eb1565b5b60006120f384828501611f04565b91505092915050565b61210581611edb565b82525050565b600060208201905061212060008301846120fc565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261214b5761214a612126565b5b8235905067ffffffffffffffff8111156121685761216761212b565b5b60208301915083600182028301111561218457612183612130565b5b9250929050565b60008060008060008060a087890312156121a8576121a7611eb1565b5b60006121b689828a01611f04565b96505060206121c789828a01611f04565b95505060406121d889828a01611f3a565b945050606087013567ffffffffffffffff8111156121f9576121f8611eb6565b5b61220589828a01612135565b9350935050608061221889828a01611f3a565b9150509295509295509295565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61226282611e3b565b810181811067ffffffffffffffff821117156122815761228061222a565b5b80604052505050565b6000612294611ea7565b90506122a08282612259565b919050565b600067ffffffffffffffff8211156122c0576122bf61222a565b5b6122c982611e3b565b9050602081019050919050565b82818337600083830152505050565b60006122f86122f3846122a5565b61228a565b90508281526020810184848401111561231457612313612225565b5b61231f8482856122d6565b509392505050565b600082601f83011261233c5761233b612126565b5b813561234c8482602086016122e5565b91505092915050565b6000806040838503121561236c5761236b611eb1565b5b600061237a85828601611f3a565b925050602083013567ffffffffffffffff81111561239b5761239a611eb6565b5b6123a785828601612327565b9150509250929050565b600080604083850312156123c8576123c7611eb1565b5b60006123d685828601611f04565b92505060206123e785828601611f04565b9150509250929050565b60008060006060848603121561240a57612409611eb1565b5b600061241886828701611f04565b935050602061242986828701611f3a565b925050604084013567ffffffffffffffff81111561244a57612449611eb6565b5b61245686828701612327565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806124a757607f821691505b602082108114156124bb576124ba612460565b5b50919050565b600081905092915050565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b6000612502601c836124c1565b915061250d826124cc565b601c82019050919050565b6000819050919050565b61253361252e82611fef565b612518565b82525050565b6000612544826124f5565b91506125508284612522565b60208201915081905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006125bb602883611df7565b91506125c68261255f565b604082019050919050565b600060208201905081810360008301526125ea816125ae565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612627602083611df7565b9150612632826125f1565b602082019050919050565b600060208201905081810360008301526126568161261a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061269782611f19565b91506126a283611f19565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156126d7576126d661265d565b5b828201905092915050565b7f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766560008201527f20746865204d696e74657220726f6c6500000000000000000000000000000000602082015250565b600061273e603083611df7565b9150612749826126e2565b604082019050919050565b6000602082019050818103600083015261276d81612731565b9050919050565b7f45524332304361707065643a2063617020657863656564656400000000000000600082015250565b60006127aa601983611df7565b91506127b582612774565b602082019050919050565b600060208201905081810360008301526127d98161279d565b9050919050565b7f4e6f6e636520616c726561647920757365640000000000000000000000000000600082015250565b6000612816601283611df7565b9150612821826127e0565b602082019050919050565b6000602082019050818103600083015261284581612809565b9050919050565b60008160601b9050919050565b60006128648261284c565b9050919050565b600061287682612859565b9050919050565b61288e61288982611edb565b61286b565b82525050565b6000819050919050565b6128af6128aa82611f19565b612894565b82525050565b60006128c1828961287d565b6014820191506128d1828861287d565b6014820191506128e1828761289e565b6020820191506128f1828661289e565b602082019150612901828561287d565b601482019150612911828461289e565b602082019150819050979650505050505050565b7f496e76616c6964207369676e6174757265210000000000000000000000000000600082015250565b600061295b601283611df7565b915061296682612925565b602082019050919050565b6000602082019050818103600083015261298a8161294e565b9050919050565b60006040820190506129a66000830185611fc5565b81810360208301526129b88184611e4c565b90509392505050565b7f4e6f7420636f6c642077616c6c65740000000000000000000000000000000000600082015250565b60006129f7600f83611df7565b9150612a02826129c1565b602082019050919050565b60006020820190508181036000830152612a26816129ea565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612a89602583611df7565b9150612a9482612a2d565b604082019050919050565b60006020820190508181036000830152612ab881612a7c565b9050919050565b6000612aca82611f19565b9150612ad583611f19565b925082821015612ae857612ae761265d565b5b828203905092915050565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500600082015250565b6000612b29601f83611df7565b9150612b3482612af3565b602082019050919050565b60006020820190508181036000830152612b5881612b1c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612bbb602483611df7565b9150612bc682612b5f565b604082019050919050565b60006020820190508181036000830152612bea81612bae565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c4d602283611df7565b9150612c5882612bf1565b604082019050919050565b60006020820190508181036000830152612c7c81612c40565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612cdf602583611df7565b9150612cea82612c83565b604082019050919050565b60006020820190508181036000830152612d0e81612cd2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d71602383611df7565b9150612d7c82612d15565b604082019050919050565b60006020820190508181036000830152612da081612d64565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612e03602683611df7565b9150612e0e82612da7565b604082019050919050565b60006020820190508181036000830152612e3281612df6565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000612e6f601f83611df7565b9150612e7a82612e39565b602082019050919050565b60006020820190508181036000830152612e9e81612e62565b9050919050565b600060ff82169050919050565b6000612ebd82612ea5565b9150612ec883612ea5565b92508260ff03821115612ede57612edd61265d565b5b828201905092915050565b612ef281612ea5565b82525050565b6000608082019050612f0d6000830187612052565b612f1a6020830186612ee9565b612f276040830185612052565b612f346060830184612052565b95945050505050565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f99602283611df7565b9150612fa482612f3d565b604082019050919050565b60006020820190508181036000830152612fc881612f8c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061302b602683611df7565b915061303682612fcf565b604082019050919050565b6000602082019050818103600083015261305a8161301e565b9050919050565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c60008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b60006130bd602183611df7565b91506130c882613061565b604082019050919050565b600060208201905081810360008301526130ec816130b0565b905091905056fea26469706673582212203c9b16e72009ca35830d74c197e0f93a45e66ca1501f17b2492743e6b8b0e51c64736f6c634300080b0033

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000002540be4000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000b506f6c79676f6e2048424400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047048424400000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): Polygon HBD
Arg [1] : symbol_ (string): pHBD
Arg [2] : newCap (uint256): 10000000000
Arg [3] : newDecimals (uint256): 3

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 00000000000000000000000000000000000000000000000000000002540be400
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [5] : 506f6c79676f6e20484244000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 7048424400000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

7092:14384:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10929:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13215:160;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12031:99;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9745:168;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13968:564;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18181:97;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11873:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10784:75;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14941:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17303:184;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8474:60;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9921:151;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7559:70;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12193:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4448:140;;;:::i;:::-;;8543:595;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7790:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3637:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4003:94;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11139:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7638:144;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6638:92;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6738:79;;;:::i;:::-;;15659:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12524:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6521:109;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12753:142;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4743:109;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8036:372;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10929:91;10974:13;11007:5;11000:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10929:91;:::o;13215:160::-;13289:4;13306:39;13315:12;:10;:12::i;:::-;13329:7;13338:6;13306:8;:39::i;:::-;13363:4;13356:11;;13215:160;;;;:::o;12031:99::-;12083:7;12110:12;;12103:19;;12031:99;:::o;9745:168::-;9811:7;9899:4;9846:58;;;;;;;;:::i;:::-;;;;;;;;;;;;;9836:69;;;;;;9829:76;;9745:168;;;:::o;13968:564::-;14099:4;14116:24;14143:11;:19;14155:6;14143:19;;;;;;;;;;;;;;;:33;14163:12;:10;:12::i;:::-;14143:33;;;;;;;;;;;;;;;;14116:60;;14211:17;14191:16;:37;14187:265;;14273:6;14253:16;:26;;14245:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;14368:57;14377:6;14385:12;:10;:12::i;:::-;14418:6;14399:16;:25;14368:8;:57::i;:::-;14187:265;14464:36;14474:6;14482:9;14493:6;14464:9;:36::i;:::-;14520:4;14513:11;;;13968:564;;;;;:::o;18181:97::-;3849:9;:7;:9::i;:::-;3841:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;18248:22:::1;18262:7;18248:13;:22::i;:::-;18181:97:::0;:::o;11873:93::-;11922:7;11949:9;;11942:16;;11873:93;:::o;10784:75::-;10820:7;10847:4;;10840:11;;10784:75;:::o;14941:215::-;15029:4;15046:80;15055:12;:10;:12::i;:::-;15069:7;15115:10;15078:11;:25;15090:12;:10;:12::i;:::-;15078:25;;;;;;;;;;;;;;;:34;15104:7;15078:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;15046:8;:80::i;:::-;15144:4;15137:11;;14941:215;;;;:::o;17303:184::-;6418:22;6427:12;:10;:12::i;:::-;6418:8;:22::i;:::-;6410:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;17413:4:::1;;17404:5;17388:13;:11;:13::i;:::-;:21;;;;:::i;:::-;:29;;17380:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17458:21;17464:7;17473:5;17458;:21::i;:::-;17303:184:::0;;:::o;8474:60::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9921:151::-;9964:7;9982:10;10029:9;10023:15;;10062:2;10055:9;;;9921:151;:::o;7559:70::-;;;;;;;;;;;;;:::o;12193:118::-;12258:7;12285:9;:18;12295:7;12285:18;;;;;;;;;;;;;;;;12278:25;;12193:118;;;:::o;4448:140::-;3849:9;:7;:9::i;:::-;3841:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;4547:1:::1;4510:40;;4531:6;::::0;::::1;;;;;;;;4510:40;;;;;;;;;;;;4578:1;4561:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4448:140::o:0;8543:595::-;8670:4;8716:5;8693:28;;:6;:12;8700:4;8693:12;;;;;;;;;;;;;;;:19;8706:5;8693:19;;;;;;;;;;;;;;;;;;;;;:28;;;8685:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;8755:15;8773:12;:10;:12::i;:::-;8755:30;;8794:19;8816:100;8866:4;8872:2;8876:6;8884:5;8899:4;8906:7;8849:65;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8839:76;;;;;;8816:22;:100::i;:::-;8794:122;;8925:14;8942:37;8956:11;8969:9;;8942:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:37::i;:::-;8925:54;;9006:4;8996:14;;:6;:14;;;8988:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;9068:4;9044:6;:14;9051:6;9044:14;;;;;;;;;;;;;;;:21;9059:5;9044:21;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;9083:27;9093:4;9099:2;9103:6;9083:9;:27::i;:::-;9126:4;9119:11;;;;;8543:595;;;;;;;;:::o;7790:238::-;7882:22;7907:10;;;;;;;;;;;7882:35;;7927:47;7937:12;:10;:12::i;:::-;7951:14;7967:6;7927:9;:47::i;:::-;7989:30;8002:6;8010:8;7989:30;;;;;;;:::i;:::-;;;;;;;;7871:157;7790:238;;:::o;3637:79::-;3675:7;3702:6;;;;;;;;;;;3695:13;;3637:79;:::o;4003:94::-;4043:4;4083:6;;;;;;;;;;;4067:22;;:12;:10;:12::i;:::-;:22;;;4060:29;;4003:94;:::o;11139:95::-;11186:13;11219:7;11212:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11139:95;:::o;7638:144::-;7718:10;;;;;;;;;;;7704:24;;:10;:24;;;7696:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;7770:4;7757:10;;:17;;;;;;;;;;;;;;;;;;7638:144;:::o;6638:92::-;6418:22;6427:12;:10;:12::i;:::-;6418:8;:22::i;:::-;6410:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;6703:19:::1;6714:7;6703:10;:19::i;:::-;6638:92:::0;:::o;6738:79::-;6782:27;6796:12;:10;:12::i;:::-;6782:13;:27::i;:::-;6738:79::o;15659:413::-;15752:4;15769:24;15796:11;:25;15808:12;:10;:12::i;:::-;15796:25;;;;;;;;;;;;;;;:34;15822:7;15796:34;;;;;;;;;;;;;;;;15769:61;;15869:15;15849:16;:35;;15841:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;15962:67;15971:12;:10;:12::i;:::-;15985:7;16013:15;15994:16;:34;15962:8;:67::i;:::-;16060:4;16053:11;;;15659:413;;;;:::o;12524:166::-;12601:4;12618:42;12628:12;:10;:12::i;:::-;12642:9;12653:6;12618:9;:42::i;:::-;12678:4;12671:11;;12524:166;;;;:::o;6521:109::-;6577:4;6601:21;6614:7;6601:8;:12;;:21;;;;:::i;:::-;6594:28;;6521:109;;;:::o;12753:142::-;12833:7;12860:11;:18;12872:5;12860:18;;;;;;;;;;;;;;;:27;12879:7;12860:27;;;;;;;;;;;;;;;;12853:34;;12753:142;;;;:::o;4743:109::-;3849:9;:7;:9::i;:::-;3841:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;4816:28:::1;4835:8;4816:18;:28::i;:::-;4743:109:::0;:::o;8036:372::-;8182:22;8207:10;;;;;;;;;;;8182:35;;8228:41;8238:6;8246:14;8262:6;8228:9;:41::i;:::-;8280:74;8289:6;8297:12;:10;:12::i;:::-;8347:6;8311:11;:19;8323:6;8311:19;;;;;;;;;;;;;;;:33;8331:12;:10;:12::i;:::-;8311:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;8280:8;:74::i;:::-;8370:30;8383:6;8391:8;8370:30;;;;;;;:::i;:::-;;;;;;;;8171:237;8036:372;;;:::o;5354:178::-;5432:18;5436:4;5442:7;5432:3;:18::i;:::-;5431:19;5423:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;5520:4;5497;:11;;:20;5509:7;5497:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;5354:178;;:::o;159:107::-;204:15;247:10;232:26;;159:107;:::o;19640:380::-;19793:1;19776:19;;:5;:19;;;;19768:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19874:1;19855:21;;:7;:21;;;;19847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19958:6;19928:11;:18;19940:5;19928:18;;;;;;;;;;;;;;;:27;19947:7;19928:27;;;;;;;;;;;;;;;:36;;;;19996:7;19980:32;;19989:5;19980:32;;;20005:6;19980:32;;;;;;:::i;:::-;;;;;;;;19640:380;;;:::o;16562:733::-;16720:1;16702:20;;:6;:20;;;;16694:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;16804:1;16783:23;;:9;:23;;;;16775:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16859:47;16880:6;16888:9;16899:6;16859:20;:47::i;:::-;16919:21;16943:9;:17;16953:6;16943:17;;;;;;;;;;;;;;;;16919:41;;16996:6;16979:13;:23;;16971:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;17117:6;17101:13;:22;17081:9;:17;17091:6;17081:17;;;;;;;;;;;;;;;:42;;;;17169:6;17145:9;:20;17155:9;17145:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;17210:9;17193:35;;17202:6;17193:35;;;17221:6;17193:35;;;;;;:::i;:::-;;;;;;;;17241:46;17261:6;17269:9;17280:6;17241:19;:46::i;:::-;16683:612;16562:733;;;:::o;6955:130::-;7015:24;7031:7;7015:8;:15;;:24;;;;:::i;:::-;7069:7;7055:22;;;;;;;;;;;;6955:130;:::o;17774:399::-;17877:1;17858:21;;:7;:21;;;;17850:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;17928:49;17957:1;17961:7;17970:6;17928:20;:49::i;:::-;18006:6;17990:12;;:22;;;;;;;:::i;:::-;;;;;;;;18045:6;18023:9;:18;18033:7;18023:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;18088:7;18067:37;;18084:1;18067:37;;;18097:6;18067:37;;;;;;:::i;:::-;;;;;;;;18117:48;18145:1;18149:7;18158:6;18117:19;:48::i;:::-;17774:399;;:::o;9146:591::-;9230:7;9248:9;9266;9284:7;9326:2;9306:9;:16;:22;9302:70;;9359:1;9343:19;;;;;;;9302:70;9430:4;9419:9;9415:20;9409:27;9404:32;;9474:4;9463:9;9459:20;9453:27;9448:32;;9526:4;9515:9;9511:20;9505:27;9502:1;9497:36;9492:41;;9560:2;9556:1;:6;;;9552:42;;;9582:2;9577:7;;;;;:::i;:::-;;;9552:42;9613:2;9608:1;:7;;;;:18;;;;;9624:2;9619:1;:7;;;;9608:18;9604:126;;;9657:1;9641:19;;;;;;;9604:126;9696:24;9706:4;9712:1;9715;9718;9696:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9689:31;;;;;9146:591;;;;;:::o;6825:122::-;6882:21;6895:7;6882:8;:12;;:21;;;;:::i;:::-;6931:7;6919:20;;;;;;;;;;;;6825:122;:::o;5890:203::-;5962:4;6006:1;5987:21;;:7;:21;;;;5979:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6065:4;:11;;:20;6077:7;6065:20;;;;;;;;;;;;;;;;;;;;;;;;;6058:27;;5890:203;;;;:::o;4958:229::-;5052:1;5032:22;;:8;:22;;;;5024:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5142:8;5113:38;;5134:6;;;;;;;;;;5113:38;;;;;;;;;;;;5171:8;5162:6;;:17;;;;;;;;;;;;;;;;;;4958:229;:::o;20620:125::-;;;;:::o;21349:124::-;;;;:::o;5612:183::-;5692:18;5696:4;5702:7;5692:3;:18::i;:::-;5684:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5782:5;5759:4;:11;;:20;5771:7;5759:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;5612:183;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:77::-;3883:7;3912:5;3901:16;;3846:77;;;:::o;3929:122::-;4002:24;4020:5;4002:24;:::i;:::-;3995:5;3992:35;3982:63;;4041:1;4038;4031:12;3982:63;3929:122;:::o;4057:139::-;4103:5;4141:6;4128:20;4119:29;;4157:33;4184:5;4157:33;:::i;:::-;4057:139;;;;:::o;4202:329::-;4261:6;4310:2;4298:9;4289:7;4285:23;4281:32;4278:119;;;4316:79;;:::i;:::-;4278:119;4436:1;4461:53;4506:7;4497:6;4486:9;4482:22;4461:53;:::i;:::-;4451:63;;4407:117;4202:329;;;;:::o;4537:118::-;4624:24;4642:5;4624:24;:::i;:::-;4619:3;4612:37;4537:118;;:::o;4661:222::-;4754:4;4792:2;4781:9;4777:18;4769:26;;4805:71;4873:1;4862:9;4858:17;4849:6;4805:71;:::i;:::-;4661:222;;;;:::o;4889:619::-;4966:6;4974;4982;5031:2;5019:9;5010:7;5006:23;5002:32;4999:119;;;5037:79;;:::i;:::-;4999:119;5157:1;5182:53;5227:7;5218:6;5207:9;5203:22;5182:53;:::i;:::-;5172:63;;5128:117;5284:2;5310:53;5355:7;5346:6;5335:9;5331:22;5310:53;:::i;:::-;5300:63;;5255:118;5412:2;5438:53;5483:7;5474:6;5463:9;5459:22;5438:53;:::i;:::-;5428:63;;5383:118;4889:619;;;;;:::o;5514:329::-;5573:6;5622:2;5610:9;5601:7;5597:23;5593:32;5590:119;;;5628:79;;:::i;:::-;5590:119;5748:1;5773:53;5818:7;5809:6;5798:9;5794:22;5773:53;:::i;:::-;5763:63;;5719:117;5514:329;;;;:::o;5849:118::-;5936:24;5954:5;5936:24;:::i;:::-;5931:3;5924:37;5849:118;;:::o;5973:222::-;6066:4;6104:2;6093:9;6089:18;6081:26;;6117:71;6185:1;6174:9;6170:17;6161:6;6117:71;:::i;:::-;5973:222;;;;:::o;6201:117::-;6310:1;6307;6300:12;6324:117;6433:1;6430;6423:12;6447:117;6556:1;6553;6546:12;6583:552;6640:8;6650:6;6700:3;6693:4;6685:6;6681:17;6677:27;6667:122;;6708:79;;:::i;:::-;6667:122;6821:6;6808:20;6798:30;;6851:18;6843:6;6840:30;6837:117;;;6873:79;;:::i;:::-;6837:117;6987:4;6979:6;6975:17;6963:29;;7041:3;7033:4;7025:6;7021:17;7011:8;7007:32;7004:41;7001:128;;;7048:79;;:::i;:::-;7001:128;6583:552;;;;;:::o;7141:1109::-;7247:6;7255;7263;7271;7279;7287;7336:3;7324:9;7315:7;7311:23;7307:33;7304:120;;;7343:79;;:::i;:::-;7304:120;7463:1;7488:53;7533:7;7524:6;7513:9;7509:22;7488:53;:::i;:::-;7478:63;;7434:117;7590:2;7616:53;7661:7;7652:6;7641:9;7637:22;7616:53;:::i;:::-;7606:63;;7561:118;7718:2;7744:53;7789:7;7780:6;7769:9;7765:22;7744:53;:::i;:::-;7734:63;;7689:118;7874:2;7863:9;7859:18;7846:32;7905:18;7897:6;7894:30;7891:117;;;7927:79;;:::i;:::-;7891:117;8040:64;8096:7;8087:6;8076:9;8072:22;8040:64;:::i;:::-;8022:82;;;;7817:297;8153:3;8180:53;8225:7;8216:6;8205:9;8201:22;8180:53;:::i;:::-;8170:63;;8124:119;7141:1109;;;;;;;;:::o;8256:117::-;8365:1;8362;8355:12;8379:180;8427:77;8424:1;8417:88;8524:4;8521:1;8514:15;8548:4;8545:1;8538:15;8565:281;8648:27;8670:4;8648:27;:::i;:::-;8640:6;8636:40;8778:6;8766:10;8763:22;8742:18;8730:10;8727:34;8724:62;8721:88;;;8789:18;;:::i;:::-;8721:88;8829:10;8825:2;8818:22;8608:238;8565:281;;:::o;8852:129::-;8886:6;8913:20;;:::i;:::-;8903:30;;8942:33;8970:4;8962:6;8942:33;:::i;:::-;8852:129;;;:::o;8987:308::-;9049:4;9139:18;9131:6;9128:30;9125:56;;;9161:18;;:::i;:::-;9125:56;9199:29;9221:6;9199:29;:::i;:::-;9191:37;;9283:4;9277;9273:15;9265:23;;8987:308;;;:::o;9301:154::-;9385:6;9380:3;9375;9362:30;9447:1;9438:6;9433:3;9429:16;9422:27;9301:154;;;:::o;9461:412::-;9539:5;9564:66;9580:49;9622:6;9580:49;:::i;:::-;9564:66;:::i;:::-;9555:75;;9653:6;9646:5;9639:21;9691:4;9684:5;9680:16;9729:3;9720:6;9715:3;9711:16;9708:25;9705:112;;;9736:79;;:::i;:::-;9705:112;9826:41;9860:6;9855:3;9850;9826:41;:::i;:::-;9545:328;9461:412;;;;;:::o;9893:340::-;9949:5;9998:3;9991:4;9983:6;9979:17;9975:27;9965:122;;10006:79;;:::i;:::-;9965:122;10123:6;10110:20;10148:79;10223:3;10215:6;10208:4;10200:6;10196:17;10148:79;:::i;:::-;10139:88;;9955:278;9893:340;;;;:::o;10239:654::-;10317:6;10325;10374:2;10362:9;10353:7;10349:23;10345:32;10342:119;;;10380:79;;:::i;:::-;10342:119;10500:1;10525:53;10570:7;10561:6;10550:9;10546:22;10525:53;:::i;:::-;10515:63;;10471:117;10655:2;10644:9;10640:18;10627:32;10686:18;10678:6;10675:30;10672:117;;;10708:79;;:::i;:::-;10672:117;10813:63;10868:7;10859:6;10848:9;10844:22;10813:63;:::i;:::-;10803:73;;10598:288;10239:654;;;;;:::o;10899:474::-;10967:6;10975;11024:2;11012:9;11003:7;10999:23;10995:32;10992:119;;;11030:79;;:::i;:::-;10992:119;11150:1;11175:53;11220:7;11211:6;11200:9;11196:22;11175:53;:::i;:::-;11165:63;;11121:117;11277:2;11303:53;11348:7;11339:6;11328:9;11324:22;11303:53;:::i;:::-;11293:63;;11248:118;10899:474;;;;;:::o;11379:799::-;11466:6;11474;11482;11531:2;11519:9;11510:7;11506:23;11502:32;11499:119;;;11537:79;;:::i;:::-;11499:119;11657:1;11682:53;11727:7;11718:6;11707:9;11703:22;11682:53;:::i;:::-;11672:63;;11628:117;11784:2;11810:53;11855:7;11846:6;11835:9;11831:22;11810:53;:::i;:::-;11800:63;;11755:118;11940:2;11929:9;11925:18;11912:32;11971:18;11963:6;11960:30;11957:117;;;11993:79;;:::i;:::-;11957:117;12098:63;12153:7;12144:6;12133:9;12129:22;12098:63;:::i;:::-;12088:73;;11883:288;11379:799;;;;;:::o;12184:180::-;12232:77;12229:1;12222:88;12329:4;12326:1;12319:15;12353:4;12350:1;12343:15;12370:320;12414:6;12451:1;12445:4;12441:12;12431:22;;12498:1;12492:4;12488:12;12519:18;12509:81;;12575:4;12567:6;12563:17;12553:27;;12509:81;12637:2;12629:6;12626:14;12606:18;12603:38;12600:84;;;12656:18;;:::i;:::-;12600:84;12421:269;12370:320;;;:::o;12696:148::-;12798:11;12835:3;12820:18;;12696:148;;;;:::o;12850:214::-;12990:66;12986:1;12978:6;12974:14;12967:90;12850:214;:::o;13070:402::-;13230:3;13251:85;13333:2;13328:3;13251:85;:::i;:::-;13244:92;;13345:93;13434:3;13345:93;:::i;:::-;13463:2;13458:3;13454:12;13447:19;;13070:402;;;:::o;13478:79::-;13517:7;13546:5;13535:16;;13478:79;;;:::o;13563:157::-;13668:45;13688:24;13706:5;13688:24;:::i;:::-;13668:45;:::i;:::-;13663:3;13656:58;13563:157;;:::o;13726:522::-;13939:3;13961:148;14105:3;13961:148;:::i;:::-;13954:155;;14119:75;14190:3;14181:6;14119:75;:::i;:::-;14219:2;14214:3;14210:12;14203:19;;14239:3;14232:10;;13726:522;;;;:::o;14254:227::-;14394:34;14390:1;14382:6;14378:14;14371:58;14463:10;14458:2;14450:6;14446:15;14439:35;14254:227;:::o;14487:366::-;14629:3;14650:67;14714:2;14709:3;14650:67;:::i;:::-;14643:74;;14726:93;14815:3;14726:93;:::i;:::-;14844:2;14839:3;14835:12;14828:19;;14487:366;;;:::o;14859:419::-;15025:4;15063:2;15052:9;15048:18;15040:26;;15112:9;15106:4;15102:20;15098:1;15087:9;15083:17;15076:47;15140:131;15266:4;15140:131;:::i;:::-;15132:139;;14859:419;;;:::o;15284:182::-;15424:34;15420:1;15412:6;15408:14;15401:58;15284:182;:::o;15472:366::-;15614:3;15635:67;15699:2;15694:3;15635:67;:::i;:::-;15628:74;;15711:93;15800:3;15711:93;:::i;:::-;15829:2;15824:3;15820:12;15813:19;;15472:366;;;:::o;15844:419::-;16010:4;16048:2;16037:9;16033:18;16025:26;;16097:9;16091:4;16087:20;16083:1;16072:9;16068:17;16061:47;16125:131;16251:4;16125:131;:::i;:::-;16117:139;;15844:419;;;:::o;16269:180::-;16317:77;16314:1;16307:88;16414:4;16411:1;16404:15;16438:4;16435:1;16428:15;16455:305;16495:3;16514:20;16532:1;16514:20;:::i;:::-;16509:25;;16548:20;16566:1;16548:20;:::i;:::-;16543:25;;16702:1;16634:66;16630:74;16627:1;16624:81;16621:107;;;16708:18;;:::i;:::-;16621:107;16752:1;16749;16745:9;16738:16;;16455:305;;;;:::o;16766:235::-;16906:34;16902:1;16894:6;16890:14;16883:58;16975:18;16970:2;16962:6;16958:15;16951:43;16766:235;:::o;17007:366::-;17149:3;17170:67;17234:2;17229:3;17170:67;:::i;:::-;17163:74;;17246:93;17335:3;17246:93;:::i;:::-;17364:2;17359:3;17355:12;17348:19;;17007:366;;;:::o;17379:419::-;17545:4;17583:2;17572:9;17568:18;17560:26;;17632:9;17626:4;17622:20;17618:1;17607:9;17603:17;17596:47;17660:131;17786:4;17660:131;:::i;:::-;17652:139;;17379:419;;;:::o;17804:175::-;17944:27;17940:1;17932:6;17928:14;17921:51;17804:175;:::o;17985:366::-;18127:3;18148:67;18212:2;18207:3;18148:67;:::i;:::-;18141:74;;18224:93;18313:3;18224:93;:::i;:::-;18342:2;18337:3;18333:12;18326:19;;17985:366;;;:::o;18357:419::-;18523:4;18561:2;18550:9;18546:18;18538:26;;18610:9;18604:4;18600:20;18596:1;18585:9;18581:17;18574:47;18638:131;18764:4;18638:131;:::i;:::-;18630:139;;18357:419;;;:::o;18782:168::-;18922:20;18918:1;18910:6;18906:14;18899:44;18782:168;:::o;18956:366::-;19098:3;19119:67;19183:2;19178:3;19119:67;:::i;:::-;19112:74;;19195:93;19284:3;19195:93;:::i;:::-;19313:2;19308:3;19304:12;19297:19;;18956:366;;;:::o;19328:419::-;19494:4;19532:2;19521:9;19517:18;19509:26;;19581:9;19575:4;19571:20;19567:1;19556:9;19552:17;19545:47;19609:131;19735:4;19609:131;:::i;:::-;19601:139;;19328:419;;;:::o;19753:94::-;19786:8;19834:5;19830:2;19826:14;19805:35;;19753:94;;;:::o;19853:::-;19892:7;19921:20;19935:5;19921:20;:::i;:::-;19910:31;;19853:94;;;:::o;19953:100::-;19992:7;20021:26;20041:5;20021:26;:::i;:::-;20010:37;;19953:100;;;:::o;20059:157::-;20164:45;20184:24;20202:5;20184:24;:::i;:::-;20164:45;:::i;:::-;20159:3;20152:58;20059:157;;:::o;20222:79::-;20261:7;20290:5;20279:16;;20222:79;;;:::o;20307:157::-;20412:45;20432:24;20450:5;20432:24;:::i;:::-;20412:45;:::i;:::-;20407:3;20400:58;20307:157;;:::o;20470:961::-;20722:3;20737:75;20808:3;20799:6;20737:75;:::i;:::-;20837:2;20832:3;20828:12;20821:19;;20850:75;20921:3;20912:6;20850:75;:::i;:::-;20950:2;20945:3;20941:12;20934:19;;20963:75;21034:3;21025:6;20963:75;:::i;:::-;21063:2;21058:3;21054:12;21047:19;;21076:75;21147:3;21138:6;21076:75;:::i;:::-;21176:2;21171:3;21167:12;21160:19;;21189:75;21260:3;21251:6;21189:75;:::i;:::-;21289:2;21284:3;21280:12;21273:19;;21302:75;21373:3;21364:6;21302:75;:::i;:::-;21402:2;21397:3;21393:12;21386:19;;21422:3;21415:10;;20470:961;;;;;;;;;:::o;21437:168::-;21577:20;21573:1;21565:6;21561:14;21554:44;21437:168;:::o;21611:366::-;21753:3;21774:67;21838:2;21833:3;21774:67;:::i;:::-;21767:74;;21850:93;21939:3;21850:93;:::i;:::-;21968:2;21963:3;21959:12;21952:19;;21611:366;;;:::o;21983:419::-;22149:4;22187:2;22176:9;22172:18;22164:26;;22236:9;22230:4;22226:20;22222:1;22211:9;22207:17;22200:47;22264:131;22390:4;22264:131;:::i;:::-;22256:139;;21983:419;;;:::o;22408:423::-;22549:4;22587:2;22576:9;22572:18;22564:26;;22600:71;22668:1;22657:9;22653:17;22644:6;22600:71;:::i;:::-;22718:9;22712:4;22708:20;22703:2;22692:9;22688:18;22681:48;22746:78;22819:4;22810:6;22746:78;:::i;:::-;22738:86;;22408:423;;;;;:::o;22837:165::-;22977:17;22973:1;22965:6;22961:14;22954:41;22837:165;:::o;23008:366::-;23150:3;23171:67;23235:2;23230:3;23171:67;:::i;:::-;23164:74;;23247:93;23336:3;23247:93;:::i;:::-;23365:2;23360:3;23356:12;23349:19;;23008:366;;;:::o;23380:419::-;23546:4;23584:2;23573:9;23569:18;23561:26;;23633:9;23627:4;23623:20;23619:1;23608:9;23604:17;23597:47;23661:131;23787:4;23661:131;:::i;:::-;23653:139;;23380:419;;;:::o;23805:224::-;23945:34;23941:1;23933:6;23929:14;23922:58;24014:7;24009:2;24001:6;23997:15;23990:32;23805:224;:::o;24035:366::-;24177:3;24198:67;24262:2;24257:3;24198:67;:::i;:::-;24191:74;;24274:93;24363:3;24274:93;:::i;:::-;24392:2;24387:3;24383:12;24376:19;;24035:366;;;:::o;24407:419::-;24573:4;24611:2;24600:9;24596:18;24588:26;;24660:9;24654:4;24650:20;24646:1;24635:9;24631:17;24624:47;24688:131;24814:4;24688:131;:::i;:::-;24680:139;;24407:419;;;:::o;24832:191::-;24872:4;24892:20;24910:1;24892:20;:::i;:::-;24887:25;;24926:20;24944:1;24926:20;:::i;:::-;24921:25;;24965:1;24962;24959:8;24956:34;;;24970:18;;:::i;:::-;24956:34;25015:1;25012;25008:9;25000:17;;24832:191;;;;:::o;25029:181::-;25169:33;25165:1;25157:6;25153:14;25146:57;25029:181;:::o;25216:366::-;25358:3;25379:67;25443:2;25438:3;25379:67;:::i;:::-;25372:74;;25455:93;25544:3;25455:93;:::i;:::-;25573:2;25568:3;25564:12;25557:19;;25216:366;;;:::o;25588:419::-;25754:4;25792:2;25781:9;25777:18;25769:26;;25841:9;25835:4;25831:20;25827:1;25816:9;25812:17;25805:47;25869:131;25995:4;25869:131;:::i;:::-;25861:139;;25588:419;;;:::o;26013:223::-;26153:34;26149:1;26141:6;26137:14;26130:58;26222:6;26217:2;26209:6;26205:15;26198:31;26013:223;:::o;26242:366::-;26384:3;26405:67;26469:2;26464:3;26405:67;:::i;:::-;26398:74;;26481:93;26570:3;26481:93;:::i;:::-;26599:2;26594:3;26590:12;26583:19;;26242:366;;;:::o;26614:419::-;26780:4;26818:2;26807:9;26803:18;26795:26;;26867:9;26861:4;26857:20;26853:1;26842:9;26838:17;26831:47;26895:131;27021:4;26895:131;:::i;:::-;26887:139;;26614:419;;;:::o;27039:221::-;27179:34;27175:1;27167:6;27163:14;27156:58;27248:4;27243:2;27235:6;27231:15;27224:29;27039:221;:::o;27266:366::-;27408:3;27429:67;27493:2;27488:3;27429:67;:::i;:::-;27422:74;;27505:93;27594:3;27505:93;:::i;:::-;27623:2;27618:3;27614:12;27607:19;;27266:366;;;:::o;27638:419::-;27804:4;27842:2;27831:9;27827:18;27819:26;;27891:9;27885:4;27881:20;27877:1;27866:9;27862:17;27855:47;27919:131;28045:4;27919:131;:::i;:::-;27911:139;;27638:419;;;:::o;28063:224::-;28203:34;28199:1;28191:6;28187:14;28180:58;28272:7;28267:2;28259:6;28255:15;28248:32;28063:224;:::o;28293:366::-;28435:3;28456:67;28520:2;28515:3;28456:67;:::i;:::-;28449:74;;28532:93;28621:3;28532:93;:::i;:::-;28650:2;28645:3;28641:12;28634:19;;28293:366;;;:::o;28665:419::-;28831:4;28869:2;28858:9;28854:18;28846:26;;28918:9;28912:4;28908:20;28904:1;28893:9;28889:17;28882:47;28946:131;29072:4;28946:131;:::i;:::-;28938:139;;28665:419;;;:::o;29090:222::-;29230:34;29226:1;29218:6;29214:14;29207:58;29299:5;29294:2;29286:6;29282:15;29275:30;29090:222;:::o;29318:366::-;29460:3;29481:67;29545:2;29540:3;29481:67;:::i;:::-;29474:74;;29557:93;29646:3;29557:93;:::i;:::-;29675:2;29670:3;29666:12;29659:19;;29318:366;;;:::o;29690:419::-;29856:4;29894:2;29883:9;29879:18;29871:26;;29943:9;29937:4;29933:20;29929:1;29918:9;29914:17;29907:47;29971:131;30097:4;29971:131;:::i;:::-;29963:139;;29690:419;;;:::o;30115:225::-;30255:34;30251:1;30243:6;30239:14;30232:58;30324:8;30319:2;30311:6;30307:15;30300:33;30115:225;:::o;30346:366::-;30488:3;30509:67;30573:2;30568:3;30509:67;:::i;:::-;30502:74;;30585:93;30674:3;30585:93;:::i;:::-;30703:2;30698:3;30694:12;30687:19;;30346:366;;;:::o;30718:419::-;30884:4;30922:2;30911:9;30907:18;30899:26;;30971:9;30965:4;30961:20;30957:1;30946:9;30942:17;30935:47;30999:131;31125:4;30999:131;:::i;:::-;30991:139;;30718:419;;;:::o;31143:181::-;31283:33;31279:1;31271:6;31267:14;31260:57;31143:181;:::o;31330:366::-;31472:3;31493:67;31557:2;31552:3;31493:67;:::i;:::-;31486:74;;31569:93;31658:3;31569:93;:::i;:::-;31687:2;31682:3;31678:12;31671:19;;31330:366;;;:::o;31702:419::-;31868:4;31906:2;31895:9;31891:18;31883:26;;31955:9;31949:4;31945:20;31941:1;31930:9;31926:17;31919:47;31983:131;32109:4;31983:131;:::i;:::-;31975:139;;31702:419;;;:::o;32127:86::-;32162:7;32202:4;32195:5;32191:16;32180:27;;32127:86;;;:::o;32219:237::-;32257:3;32276:18;32292:1;32276:18;:::i;:::-;32271:23;;32308:18;32324:1;32308:18;:::i;:::-;32303:23;;32398:1;32392:4;32388:12;32385:1;32382:19;32379:45;;;32404:18;;:::i;:::-;32379:45;32448:1;32445;32441:9;32434:16;;32219:237;;;;:::o;32462:112::-;32545:22;32561:5;32545:22;:::i;:::-;32540:3;32533:35;32462:112;;:::o;32580:545::-;32753:4;32791:3;32780:9;32776:19;32768:27;;32805:71;32873:1;32862:9;32858:17;32849:6;32805:71;:::i;:::-;32886:68;32950:2;32939:9;32935:18;32926:6;32886:68;:::i;:::-;32964:72;33032:2;33021:9;33017:18;33008:6;32964:72;:::i;:::-;33046;33114:2;33103:9;33099:18;33090:6;33046:72;:::i;:::-;32580:545;;;;;;;:::o;33131:221::-;33271:34;33267:1;33259:6;33255:14;33248:58;33340:4;33335:2;33327:6;33323:15;33316:29;33131:221;:::o;33358:366::-;33500:3;33521:67;33585:2;33580:3;33521:67;:::i;:::-;33514:74;;33597:93;33686:3;33597:93;:::i;:::-;33715:2;33710:3;33706:12;33699:19;;33358:366;;;:::o;33730:419::-;33896:4;33934:2;33923:9;33919:18;33911:26;;33983:9;33977:4;33973:20;33969:1;33958:9;33954:17;33947:47;34011:131;34137:4;34011:131;:::i;:::-;34003:139;;33730:419;;;:::o;34155:225::-;34295:34;34291:1;34283:6;34279:14;34272:58;34364:8;34359:2;34351:6;34347:15;34340:33;34155:225;:::o;34386:366::-;34528:3;34549:67;34613:2;34608:3;34549:67;:::i;:::-;34542:74;;34625:93;34714:3;34625:93;:::i;:::-;34743:2;34738:3;34734:12;34727:19;;34386:366;;;:::o;34758:419::-;34924:4;34962:2;34951:9;34947:18;34939:26;;35011:9;35005:4;35001:20;34997:1;34986:9;34982:17;34975:47;35039:131;35165:4;35039:131;:::i;:::-;35031:139;;34758:419;;;:::o;35183:220::-;35323:34;35319:1;35311:6;35307:14;35300:58;35392:3;35387:2;35379:6;35375:15;35368:28;35183:220;:::o;35409:366::-;35551:3;35572:67;35636:2;35631:3;35572:67;:::i;:::-;35565:74;;35648:93;35737:3;35648:93;:::i;:::-;35766:2;35761:3;35757:12;35750:19;;35409:366;;;:::o;35781:419::-;35947:4;35985:2;35974:9;35970:18;35962:26;;36034:9;36028:4;36024:20;36020:1;36009:9;36005:17;35998:47;36062:131;36188:4;36062:131;:::i;:::-;36054:139;;35781:419;;;:::o

Swarm Source

ipfs://3c9b16e72009ca35830d74c197e0f93a45e66ca1501f17b2492743e6b8b0e51c
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.