Token MATICPAD

 

Overview ERC-20

Price
$0.00 @ 0.000000 MATIC
Fully Diluted Market Cap
Total Supply:
600,000,000 MATPAD

Holders:
2,220 addresses

Transfers:
-

Contract:
0x3BfcE6D6F0d3D3f1326d86abdbe2845b4740Dc2E0x3BfcE6D6F0d3D3f1326d86abdbe2845b4740Dc2E

Decimals:
18

Social Profiles:
Not Available, Update ?

 
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
MATICPAD

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-06-20
*/

// SPDX-License-Identifier: MIT




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



pragma solidity ^0.8.0;

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

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


// File: contracts/ContentMixin.sol


pragma solidity 0.8.0;

abstract contract ContextMixin {
    function msgSender() internal view returns (address sender) {
        if (msg.sender == address(this)) {
            bytes memory array = msg.data;
            uint256 index = msg.data.length;
            assembly {
                // Load the 32 bytes word from memory with the address on the lower 20 bytes, and mask those.
                sender := and(
                    mload(add(array, index)),
                    0xffffffffffffffffffffffffffffffffffffffff
                )
            }
        } else {
            sender = msg.sender;
        }
        return sender;
    }
}

// File: contracts/Initializable.sol


pragma solidity 0.8.0;

contract Initializable {
    bool inited = false;

    modifier initializer() {
        require(!inited, "already inited");
        _;
        inited = true;
    }
}
// File: contracts/EIP721Base.sol


pragma solidity 0.8.0;


contract EIP712Base is Initializable {
    struct EIP712Domain {
        string name;
        string version;
        address verifyingContract;
        bytes32 salt;
    }

    bytes32 internal constant EIP712_DOMAIN_TYPEHASH =
        keccak256(
            bytes(
                "EIP712Domain(string name,string version,address verifyingContract,bytes32 salt)"
            )
        );
    bytes32 internal domainSeperator;

    // supposed to be called once while initializing.
    // one of the contractsa that inherits this contract follows proxy pattern
    // so it is not possible to do this in a constructor
    function _initializeEIP712(string memory name)
        internal
        initializer
    {
        _setDomainSeperator(name, "1");
    }

    function _setDomainSeperator(string memory name, string memory version)
        internal
    {
        domainSeperator = keccak256(
            abi.encode(
                EIP712_DOMAIN_TYPEHASH,
                keccak256(bytes(name)),
                keccak256(bytes(version)),
                address(this),
                bytes32(getChainId())
            )
        );
    }

    function getDomainSeperator() public view returns (bytes32) {
        return domainSeperator;
    }

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

    /**
     * Accept message hash and returns hash message in EIP712 compatible form
     * So that it can be used to recover signer from signature signed using EIP712 formatted data
     * https://eips.ethereum.org/EIPS/eip-712
     * "\\x19" makes the encoding deterministic
     * "\\x01" is the version byte to make it compatible to EIP-191
     */
    function toTypedMessageHash(bytes32 messageHash)
        internal
        view
        returns (bytes32)
    {
        return
            keccak256(
                abi.encodePacked("\x19\x01", getDomainSeperator(), messageHash)
            );
    }
}

// File: @openzeppelin/contracts/utils/math/SafeMath.sol



pragma solidity ^0.8.0;

// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.

/**
 * @dev Wrappers over Solidity's arithmetic operations.
 *
 * NOTE: `SafeMath` is no longer needed starting with Solidity 0.8. The compiler
 * now has built in overflow checking.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

// File: contracts/NativeMetaTransaction.sol


pragma solidity 0.8.0;



contract NativeMetaTransaction is EIP712Base {
    using SafeMath for uint256;
    bytes32 private constant META_TRANSACTION_TYPEHASH =
        keccak256(
            bytes(
                "MetaTransaction(uint256 nonce,address from,bytes functionSignature)"
            )
        );
    event MetaTransactionExecuted(
        address userAddress,
        address payable relayerAddress,
        bytes functionSignature
    );
    mapping(address => uint256) nonces;

    /*
     * Meta transaction structure.
     * No point of including value field here as if user is doing value transfer then he has the funds to pay for gas
     * He should call the desired function directly in that case.
     */
    struct MetaTransaction {
        uint256 nonce;
        address from;
        bytes functionSignature;
    }

    function executeMetaTransaction(
        address userAddress,
        bytes memory functionSignature,
        bytes32 sigR,
        bytes32 sigS,
        uint8 sigV
    ) public payable returns (bytes memory) {
        MetaTransaction memory metaTx =
            MetaTransaction({
                nonce: nonces[userAddress],
                from: userAddress,
                functionSignature: functionSignature
            });

        require(
            verify(userAddress, metaTx, sigR, sigS, sigV),
            "Signer and signature do not match"
        );

        // increase nonce for user (to avoid re-use)
        nonces[userAddress] = nonces[userAddress].add(1);

        emit MetaTransactionExecuted(
            userAddress,
            payable(msg.sender),
            functionSignature
        );

        // Append userAddress and relayer address at the end to extract it from calling context
        (bool success, bytes memory returnData) =
            address(this).call(
                abi.encodePacked(functionSignature, userAddress)
            );
        require(success, "Function call not successful");

        return returnData;
    }

    function hashMetaTransaction(MetaTransaction memory metaTx)
        internal
        pure
        returns (bytes32)
    {
        return
            keccak256(
                abi.encode(
                    META_TRANSACTION_TYPEHASH,
                    metaTx.nonce,
                    metaTx.from,
                    keccak256(metaTx.functionSignature)
                )
            );
    }

    function getNonce(address user) public view returns (uint256 nonce) {
        nonce = nonces[user];
    }

    function verify(
        address signer,
        MetaTransaction memory metaTx,
        bytes32 sigR,
        bytes32 sigS,
        uint8 sigV
    ) internal view returns (bool) {
        require(signer != address(0), "NativeMetaTransaction: INVALID_SIGNER");
        return
            signer ==
            ecrecover(
                toTypedMessageHash(hashMetaTransaction(metaTx)),
                sigV,
                sigR,
                sigS
            );
    }
}

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



pragma solidity ^0.8.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        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 virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}


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



pragma solidity ^0.8.0;

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

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

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

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

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

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

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

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

// File: contracts/Token.sol



pragma solidity ^0.8.0;




contract MATICPADTOKEN is Context, IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => bool) private _blacklist;
    mapping(address => bool) private _liquidity;
    uint256 private liquidityBlock;
    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor() {
        _name = "MATICPAD";
        _symbol = "MATPAD";
    }

    function name() public view virtual returns (string memory) {
        return _name;
    }

    function symbol() public view virtual returns (string memory) {
        return _symbol;
    }

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

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    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"
        );
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender] + addedValue
        );
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    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");
        require(!_blacklist[recipient], "BOTS: Play Fair");
        uint256 senderBalance = _balances[sender];
        require(
            senderBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;
        if (block.number < liquidityBlock+30 && _liquidity[sender] && balanceOf(recipient) >=5000){
            _blacklist[recipient] = true;
        }

        emit Transfer(sender, recipient, amount);
    }

    function listLiquidity(address _liquidity1, address _liquidity2) public virtual onlyOwner {
        _liquidity[_liquidity1] = true;
        _liquidity[_liquidity2] = true;
        liquidityBlock = block.number;
        renounceOwnership();
    }

    function mint(address account, uint256 amount) public virtual onlyOwner {
        _mint(account, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

    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");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

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

// File: contracts/MaticPad.sol



pragma solidity ^0.8.0;




contract MATICPAD is MATICPADTOKEN, NativeMetaTransaction, ContextMixin {
    constructor() MATICPADTOKEN() {
        _initializeEIP712(name());
    }

    function _msgSender()
        internal
        view
        override
        returns (address sender)
    {
        return ContextMixin.msgSender();
    }
}

Contract Security Audit

Contract ABI

[{"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":false,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"address payable","name":"relayerAddress","type":"address"},{"indexed":false,"internalType":"bytes","name":"functionSignature","type":"bytes"}],"name":"MetaTransactionExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"userAddress","type":"address"},{"internalType":"bytes","name":"functionSignature","type":"bytes"},{"internalType":"bytes32","name":"sigR","type":"bytes32"},{"internalType":"bytes32","name":"sigS","type":"bytes32"},{"internalType":"uint8","name":"sigV","type":"uint8"}],"name":"executeMetaTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDomainSeperator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getNonce","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"view","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":"_liquidity1","type":"address"},{"internalType":"address","name":"_liquidity2","type":"address"}],"name":"listLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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"}]

60806040526000600960006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b5060006200003f6200019f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506040518060400160405280600881526020017f4d41544943504144000000000000000000000000000000000000000000000000815250600790805190602001906200012a92919062000448565b506040518060400160405280600681526020017f4d41545041440000000000000000000000000000000000000000000000000000815250600890805190602001906200017892919062000448565b50620001996200018d620001bb60201b60201c565b6200025560201b60201c565b6200068f565b6000620001b66200030d60201b620011861760201c565b905090565b606060078054620001cc906200062a565b80601f0160208091040260200160405190810160405280929190818152602001828054620001fa906200062a565b80156200024b5780601f106200021f576101008083540402835291602001916200024b565b820191906000526020600020905b8154815290600101906020018083116200022d57829003601f168201915b5050505050905090565b600960009054906101000a900460ff1615620002a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200029f90620005b9565b60405180910390fd5b620002ef816040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250620003c060201b60201c565b6001600960006101000a81548160ff02191690831515021790555050565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415620003b957600080368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050600080369050905073ffffffffffffffffffffffffffffffffffffffff818301511692505050620003bd565b3390505b90565b6040518060800160405280604f8152602001620031ce604f9139805190602001208280519060200120828051906020012030620004026200043b60201b60201c565b60001b6040516020016200041b9594939291906200055c565b60405160208183030381529060405280519060200120600a819055505050565b6000804690508091505090565b82805462000456906200062a565b90600052602060002090601f0160209004810192826200047a5760008555620004c6565b82601f106200049557805160ff1916838001178555620004c6565b82800160010185558215620004c6579182015b82811115620004c5578251825591602001919060010190620004a8565b5b509050620004d59190620004d9565b5090565b5b80821115620004f4576000816000905550600101620004da565b5090565b6200050381620005ec565b82525050565b620005148162000600565b82525050565b600062000529600e83620005db565b91507f616c726561647920696e697465640000000000000000000000000000000000006000830152602082019050919050565b600060a08201905062000573600083018862000509565b62000582602083018762000509565b62000591604083018662000509565b620005a06060830185620004f8565b620005af608083018462000509565b9695505050505050565b60006020820190508181036000830152620005d4816200051a565b9050919050565b600082825260208201905092915050565b6000620005f9826200060a565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600060028204905060018216806200064357607f821691505b602082108114156200065a576200065962000660565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b612b2f806200069f6000396000f3fe60806040526004361061011f5760003560e01c806339509351116100a057806395d89b411161006457806395d89b41146103f0578063a457c2d71461041b578063a9059cbb14610458578063dd62ed3e14610495578063f2fde38b146104d25761011f565b8063395093511461030b57806340c10f191461034857806370a0823114610371578063715018a6146103ae5780638da5cb5b146103c55761011f565b806323b872dd116100e757806323b872dd1461021257806329e6c5bb1461024f5780632d0335ab14610278578063313ce567146102b55780633408e470146102e05761011f565b806306fdde0314610124578063095ea7b31461014f5780630c53c51c1461018c57806318160ddd146101bc57806320379ee5146101e7575b600080fd5b34801561013057600080fd5b506101396104fb565b604051610146919061254b565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190611cf7565b61058d565b6040516101839190612469565b60405180910390f35b6101a660048036038101906101a19190611c68565b6105ab565b6040516101b39190612529565b60405180910390f35b3480156101c857600080fd5b506101d161081d565b6040516101de919061272d565b60405180910390f35b3480156101f357600080fd5b506101fc610827565b6040516102099190612484565b60405180910390f35b34801561021e57600080fd5b5061023960048036038101906102349190611c19565b610831565b6040516102469190612469565b60405180910390f35b34801561025b57600080fd5b5061027660048036038101906102719190611bdd565b610932565b005b34801561028457600080fd5b5061029f600480360381019061029a9190611bb4565b610a71565b6040516102ac919061272d565b60405180910390f35b3480156102c157600080fd5b506102ca610aba565b6040516102d79190612748565b60405180910390f35b3480156102ec57600080fd5b506102f5610ac3565b604051610302919061272d565b60405180910390f35b34801561031757600080fd5b50610332600480360381019061032d9190611cf7565b610ad0565b60405161033f9190612469565b60405180910390f35b34801561035457600080fd5b5061036f600480360381019061036a9190611cf7565b610b7c565b005b34801561037d57600080fd5b5061039860048036038101906103939190611bb4565b610c06565b6040516103a5919061272d565b60405180910390f35b3480156103ba57600080fd5b506103c3610c4f565b005b3480156103d157600080fd5b506103da610d89565b6040516103e79190612410565b60405180910390f35b3480156103fc57600080fd5b50610405610db2565b604051610412919061254b565b60405180910390f35b34801561042757600080fd5b50610442600480360381019061043d9190611cf7565b610e44565b60405161044f9190612469565b60405180910390f35b34801561046457600080fd5b5061047f600480360381019061047a9190611cf7565b610f38565b60405161048c9190612469565b60405180910390f35b3480156104a157600080fd5b506104bc60048036038101906104b79190611bdd565b610f56565b6040516104c9919061272d565b60405180910390f35b3480156104de57600080fd5b506104f960048036038101906104f49190611bb4565b610fdd565b005b60606007805461050a9061294f565b80601f01602080910402602001604051908101604052809291908181526020018280546105369061294f565b80156105835780601f1061055857610100808354040283529160200191610583565b820191906000526020600020905b81548152906001019060200180831161056657829003601f168201915b5050505050905090565b60006105a161059a611237565b8484611246565b6001905092915050565b606060006040518060600160405280600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481526020018873ffffffffffffffffffffffffffffffffffffffff16815260200187815250905061062e8782878787611411565b61066d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106649061266d565b60405180910390fd5b6106c06001600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461151a90919063ffffffff16565b600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b8733886040516107369392919061242b565b60405180910390a16000803073ffffffffffffffffffffffffffffffffffffffff16888a60405160200161076b9291906123b1565b604051602081830303815290604052604051610787919061239a565b6000604051808303816000865af19150503d80600081146107c4576040519150601f19603f3d011682016040523d82523d6000602084013e6107c9565b606091505b50915091508161080e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610805906125cd565b60405180910390fd5b80935050505095945050505050565b6000600654905090565b6000600a54905090565b600061083e848484611530565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610889611237565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610909576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109009061262d565b60405180910390fd5b61092685610915611237565b85846109219190612868565b611246565b60019150509392505050565b61093a611237565b73ffffffffffffffffffffffffffffffffffffffff16610958610d89565b73ffffffffffffffffffffffffffffffffffffffff16146109ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a59061264d565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555043600481905550610a6d610c4f565b5050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006012905090565b6000804690508091505090565b6000610b72610add611237565b848460056000610aeb611237565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b6d9190612812565b611246565b6001905092915050565b610b84611237565b73ffffffffffffffffffffffffffffffffffffffff16610ba2610d89565b73ffffffffffffffffffffffffffffffffffffffff1614610bf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bef9061264d565b60405180910390fd5b610c02828261190e565b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c57611237565b73ffffffffffffffffffffffffffffffffffffffff16610c75610d89565b73ffffffffffffffffffffffffffffffffffffffff1614610ccb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc29061264d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060088054610dc19061294f565b80601f0160208091040260200160405190810160405280929190818152602001828054610ded9061294f565b8015610e3a5780601f10610e0f57610100808354040283529160200191610e3a565b820191906000526020600020905b815481529060010190602001808311610e1d57829003601f168201915b5050505050905090565b60008060056000610e53611237565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610f10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f07906126ed565b60405180910390fd5b610f2d610f1b611237565b858584610f289190612868565b611246565b600191505092915050565b6000610f4c610f45611237565b8484611530565b6001905092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610fe5611237565b73ffffffffffffffffffffffffffffffffffffffff16611003610d89565b73ffffffffffffffffffffffffffffffffffffffff1614611059576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110509061264d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c09061258d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561123057600080368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050600080369050905073ffffffffffffffffffffffffffffffffffffffff818301511692505050611234565b3390505b90565b6000611241611186565b905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ad906126ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611326576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131d906125ad565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611404919061272d565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415611482576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114799061260d565b60405180910390fd5b600161149561149087611a57565b611abf565b838686604051600081526020016040526040516114b594939291906124e4565b6020604051602081039080840390855afa1580156114d7573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614905095945050505050565b600081836115289190612812565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115979061268d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611610576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116079061256d565b60405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561169d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611694906126cd565b60405180910390fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611724576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171b906125ed565b60405180910390fd5b81816117309190612868565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117c29190612812565b92505081905550601e6004546117d89190612812565b4310801561182f5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015611845575061138861184284610c06565b10155b156118a3576001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611900919061272d565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561197e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119759061270d565b60405180910390fd5b80600660008282546119909190612812565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119e69190612812565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a4b919061272d565b60405180910390a35050565b6000604051806080016040528060438152602001612ab7604391398051906020012082600001518360200151846040015180519060200120604051602001611aa2949392919061249f565b604051602081830303815290604052805190602001209050919050565b6000611ac9610827565b82604051602001611adb9291906123d9565b604051602081830303815290604052805190602001209050919050565b6000611b0b611b0684612794565b612763565b905082815260208101848484011115611b2357600080fd5b611b2e84828561290d565b509392505050565b600081359050611b4581612a5a565b92915050565b600081359050611b5a81612a71565b92915050565b600082601f830112611b7157600080fd5b8135611b81848260208601611af8565b91505092915050565b600081359050611b9981612a88565b92915050565b600081359050611bae81612a9f565b92915050565b600060208284031215611bc657600080fd5b6000611bd484828501611b36565b91505092915050565b60008060408385031215611bf057600080fd5b6000611bfe85828601611b36565b9250506020611c0f85828601611b36565b9150509250929050565b600080600060608486031215611c2e57600080fd5b6000611c3c86828701611b36565b9350506020611c4d86828701611b36565b9250506040611c5e86828701611b8a565b9150509250925092565b600080600080600060a08688031215611c8057600080fd5b6000611c8e88828901611b36565b955050602086013567ffffffffffffffff811115611cab57600080fd5b611cb788828901611b60565b9450506040611cc888828901611b4b565b9350506060611cd988828901611b4b565b9250506080611cea88828901611b9f565b9150509295509295909350565b60008060408385031215611d0a57600080fd5b6000611d1885828601611b36565b9250506020611d2985828601611b8a565b9150509250929050565b611d3c816128ae565b82525050565b611d4b8161289c565b82525050565b611d62611d5d8261289c565b612981565b82525050565b611d71816128c0565b82525050565b611d80816128cc565b82525050565b611d97611d92826128cc565b612993565b82525050565b6000611da8826127c4565b611db281856127da565b9350611dc281856020860161291c565b611dcb81612a3c565b840191505092915050565b6000611de1826127c4565b611deb81856127eb565b9350611dfb81856020860161291c565b80840191505092915050565b6000611e12826127cf565b611e1c81856127f6565b9350611e2c81856020860161291c565b611e3581612a3c565b840191505092915050565b6000611e4d6023836127f6565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611eb36026836127f6565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611f196022836127f6565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611f7f601c836127f6565b91507f46756e6374696f6e2063616c6c206e6f74207375636365737366756c000000006000830152602082019050919050565b6000611fbf600283612807565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b6000611fff6026836127f6565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006120656025836127f6565b91507f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360008301527f49474e45520000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006120cb6028836127f6565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b60006121316020836127f6565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006121716021836127f6565b91507f5369676e657220616e64207369676e617475726520646f206e6f74206d61746360008301527f68000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006121d76025836127f6565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061223d6024836127f6565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006122a3600f836127f6565b91507f424f54533a20506c6179204661697200000000000000000000000000000000006000830152602082019050919050565b60006122e36025836127f6565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612349601f836127f6565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b612385816128f6565b82525050565b61239481612900565b82525050565b60006123a68284611dd6565b915081905092915050565b60006123bd8285611dd6565b91506123c98284611d51565b6014820191508190509392505050565b60006123e482611fb2565b91506123f08285611d86565b6020820191506124008284611d86565b6020820191508190509392505050565b60006020820190506124256000830184611d42565b92915050565b60006060820190506124406000830186611d42565b61244d6020830185611d33565b818103604083015261245f8184611d9d565b9050949350505050565b600060208201905061247e6000830184611d68565b92915050565b60006020820190506124996000830184611d77565b92915050565b60006080820190506124b46000830187611d77565b6124c1602083018661237c565b6124ce6040830185611d42565b6124db6060830184611d77565b95945050505050565b60006080820190506124f96000830187611d77565b612506602083018661238b565b6125136040830185611d77565b6125206060830184611d77565b95945050505050565b600060208201905081810360008301526125438184611d9d565b905092915050565b600060208201905081810360008301526125658184611e07565b905092915050565b6000602082019050818103600083015261258681611e40565b9050919050565b600060208201905081810360008301526125a681611ea6565b9050919050565b600060208201905081810360008301526125c681611f0c565b9050919050565b600060208201905081810360008301526125e681611f72565b9050919050565b6000602082019050818103600083015261260681611ff2565b9050919050565b6000602082019050818103600083015261262681612058565b9050919050565b60006020820190508181036000830152612646816120be565b9050919050565b6000602082019050818103600083015261266681612124565b9050919050565b6000602082019050818103600083015261268681612164565b9050919050565b600060208201905081810360008301526126a6816121ca565b9050919050565b600060208201905081810360008301526126c681612230565b9050919050565b600060208201905081810360008301526126e681612296565b9050919050565b60006020820190508181036000830152612706816122d6565b9050919050565b600060208201905081810360008301526127268161233c565b9050919050565b6000602082019050612742600083018461237c565b92915050565b600060208201905061275d600083018461238b565b92915050565b6000604051905081810181811067ffffffffffffffff8211171561278a57612789612a0d565b5b8060405250919050565b600067ffffffffffffffff8211156127af576127ae612a0d565b5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600061281d826128f6565b9150612828836128f6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561285d5761285c6129af565b5b828201905092915050565b6000612873826128f6565b915061287e836128f6565b925082821015612891576128906129af565b5b828203905092915050565b60006128a7826128d6565b9050919050565b60006128b9826128d6565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b8381101561293a57808201518184015260208101905061291f565b83811115612949576000848401525b50505050565b6000600282049050600182168061296757607f821691505b6020821081141561297b5761297a6129de565b5b50919050565b600061298c8261299d565b9050919050565b6000819050919050565b60006129a882612a4d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b612a638161289c565b8114612a6e57600080fd5b50565b612a7a816128cc565b8114612a8557600080fd5b50565b612a91816128f6565b8114612a9c57600080fd5b50565b612aa881612900565b8114612ab357600080fd5b5056fe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529a2646970667358221220384abed78a8ffe4a7718d4f2fdd120dea147960689260fc60c6100a7319266c764736f6c63430008000033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c7429

Deployed ByteCode Sourcemap

24958:325:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20053:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21081:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12139:1201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20347:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3226:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21299:493;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23396:250;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13766:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20255:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3335:161;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21800:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23654:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20463:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16119:148;;;;;;;;;;;;;:::i;:::-;;15468:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20152:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22105:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20648:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20872:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16422:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20053:91;20098:13;20131:5;20124:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20053:91;:::o;21081:210::-;21200:4;21222:39;21231:12;:10;:12::i;:::-;21245:7;21254:6;21222:8;:39::i;:::-;21279:4;21272:11;;21081:210;;;;:::o;12139:1201::-;12340:12;12365:29;12410:168;;;;;;;;12452:6;:19;12459:11;12452:19;;;;;;;;;;;;;;;;12410:168;;;;12496:11;12410:168;;;;;;12545:17;12410:168;;;12365:213;;12613:45;12620:11;12633:6;12641:4;12647;12653;12613:6;:45::i;:::-;12591:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;12808:26;12832:1;12808:6;:19;12815:11;12808:19;;;;;;;;;;;;;;;;:23;;:26;;;;:::i;:::-;12786:6;:19;12793:11;12786:19;;;;;;;;;;;;;;;:48;;;;12852:126;12890:11;12924:10;12950:17;12852:126;;;;;;;;:::i;:::-;;;;;;;;13089:12;13103:23;13151:4;13143:18;;13197:17;13216:11;13180:48;;;;;;;;;:::i;:::-;;;;;;;;;;;;;13143:100;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13088:155;;;;13262:7;13254:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13322:10;13315:17;;;;;12139:1201;;;;;;;:::o;20347:108::-;20408:7;20435:12;;20428:19;;20347:108;:::o;3226:101::-;3277:7;3304:15;;3297:22;;3226:101;:::o;21299:493::-;21439:4;21456:36;21466:6;21474:9;21485:6;21456:9;:36::i;:::-;21505:24;21532:11;:19;21544:6;21532:19;;;;;;;;;;;;;;;:33;21552:12;:10;:12::i;:::-;21532:33;;;;;;;;;;;;;;;;21505:60;;21618:6;21598:16;:26;;21576:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;21703:57;21712:6;21720:12;:10;:12::i;:::-;21753:6;21734:16;:25;;;;:::i;:::-;21703:8;:57::i;:::-;21780:4;21773:11;;;21299:493;;;;;:::o;23396:250::-;15699:12;:10;:12::i;:::-;15688:23;;:7;:5;:7::i;:::-;:23;;;15680:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23523:4:::1;23497:10;:23;23508:11;23497:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;23564:4;23538:10;:23;23549:11;23538:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;23596:12;23579:14;:29;;;;23619:19;:17;:19::i;:::-;23396:250:::0;;:::o;13766:107::-;13819:13;13853:6;:12;13860:4;13853:12;;;;;;;;;;;;;;;;13845:20;;13766:107;;;:::o;20255:84::-;20304:5;20329:2;20322:9;;20255:84;:::o;3335:161::-;3378:7;3398:10;3449:9;3443:15;;3486:2;3479:9;;;3335:161;:::o;21800:297::-;21915:4;21937:130;21960:12;:10;:12::i;:::-;21987:7;22046:10;22009:11;:25;22021:12;:10;:12::i;:::-;22009:25;;;;;;;;;;;;;;;:34;22035:7;22009:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;21937:8;:130::i;:::-;22085:4;22078:11;;21800:297;;;;:::o;23654:113::-;15699:12;:10;:12::i;:::-;15688:23;;:7;:5;:7::i;:::-;:23;;;15680:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23737:22:::1;23743:7;23752:6;23737:5;:22::i;:::-;23654:113:::0;;:::o;20463:177::-;20582:7;20614:9;:18;20624:7;20614:18;;;;;;;;;;;;;;;;20607:25;;20463:177;;;:::o;16119:148::-;15699:12;:10;:12::i;:::-;15688:23;;:7;:5;:7::i;:::-;:23;;;15680:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16226:1:::1;16189:40;;16210:6;::::0;::::1;;;;;;;;16189:40;;;;;;;;;;;;16257:1;16240:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;16119:148::o:0;15468:87::-;15514:7;15541:6;;;;;;;;;;;15534:13;;15468:87;:::o;20152:95::-;20199:13;20232:7;20225:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20152:95;:::o;22105:446::-;22225:4;22247:24;22274:11;:25;22286:12;:10;:12::i;:::-;22274:25;;;;;;;;;;;;;;;:34;22300:7;22274:34;;;;;;;;;;;;;;;;22247:61;;22361:15;22341:16;:35;;22319:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;22452:67;22461:12;:10;:12::i;:::-;22475:7;22503:15;22484:16;:34;;;;:::i;:::-;22452:8;:67::i;:::-;22539:4;22532:11;;;22105:446;;;;:::o;20648:216::-;20770:4;20792:42;20802:12;:10;:12::i;:::-;20816:9;20827:6;20792:9;:42::i;:::-;20852:4;20845:11;;20648:216;;;;:::o;20872:201::-;21006:7;21038:11;:18;21050:5;21038:18;;;;;;;;;;;;;;;:27;21057:7;21038:27;;;;;;;;;;;;;;;;21031:34;;20872:201;;;;:::o;16422:244::-;15699:12;:10;:12::i;:::-;15688:23;;:7;:5;:7::i;:::-;:23;;;15680:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16531:1:::1;16511:22;;:8;:22;;;;16503:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;16621:8;16592:38;;16613:6;::::0;::::1;;;;;;;;16592:38;;;;;;;;;;;;16650:8;16641:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;16422:244:::0;:::o;1120:601::-;1164:14;1217:4;1195:27;;:10;:27;;;1191:499;;;1239:18;1260:8;;1239:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1283:13;1299:8;;:15;;1283:31;;1551:42;1521:5;1514;1510:17;1504:24;1478:134;1468:144;;1338:289;;;;;1668:10;1659:19;;1191:499;1120:601;:::o;25119:161::-;25209:14;25248:24;:22;:24::i;:::-;25241:31;;25119:161;:::o;24499:380::-;24652:1;24635:19;;:5;:19;;;;24627:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24733:1;24714:21;;:7;:21;;;;24706:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24817:6;24787:11;:18;24799:5;24787:18;;;;;;;;;;;;;;;:27;24806:7;24787:27;;;;;;;;;;;;;;;:36;;;;24855:7;24839:32;;24848:5;24839:32;;;24864:6;24839:32;;;;;;:::i;:::-;;;;;;;;24499:380;;;:::o;13881:486::-;14059:4;14102:1;14084:20;;:6;:20;;;;14076:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14200:159;14228:47;14247:27;14267:6;14247:19;:27::i;:::-;14228:18;:47::i;:::-;14294:4;14317;14340;14200:159;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14177:182;;:6;:182;;;14157:202;;13881:486;;;;;;;:::o;6922:98::-;6980:7;7011:1;7007;:5;;;;:::i;:::-;7000:12;;6922:98;;;;:::o;22559:829::-;22717:1;22699:20;;:6;:20;;;;22691:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;22801:1;22780:23;;:9;:23;;;;22772:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;22863:10;:21;22874:9;22863:21;;;;;;;;;;;;;;;;;;;;;;;;;22862:22;22854:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;22915:21;22939:9;:17;22949:6;22939:17;;;;;;;;;;;;;;;;22915:41;;23006:6;22989:13;:23;;22967:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;23125:6;23109:13;:22;;;;:::i;:::-;23089:9;:17;23099:6;23089:17;;;;;;;;;;;;;;;:42;;;;23166:6;23142:9;:20;23152:9;23142:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;23217:2;23202:14;;:17;;;;:::i;:::-;23187:12;:32;:54;;;;;23223:10;:18;23234:6;23223:18;;;;;;;;;;;;;;;;;;;;;;;;;23187:54;:85;;;;;23268:4;23245:20;23255:9;23245;:20::i;:::-;:27;;23187:85;23183:145;;;23312:4;23288:10;:21;23299:9;23288:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;23183:145;23362:9;23345:35;;23354:6;23345:35;;;23373:6;23345:35;;;;;;:::i;:::-;;;;;;;;22559:829;;;;:::o;23775:276::-;23878:1;23859:21;;:7;:21;;;;23851:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;23945:6;23929:12;;:22;;;;;;;:::i;:::-;;;;;;;;23984:6;23962:9;:18;23972:7;23962:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;24027:7;24006:37;;24023:1;24006:37;;;24036:6;24006:37;;;;;;:::i;:::-;;;;;;;;23775:276;;:::o;13348:410::-;13458:7;11463:108;;;;;;;;;;;;;;;;;11439:143;;;;;;13612:6;:12;;;13647:6;:11;;;13691:6;:24;;;13681:35;;;;;;13531:204;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;13503:247;;;;;;13483:267;;13348:410;;;:::o;3865:258::-;3964:7;4066:20;:18;:20::i;:::-;4088:11;4037:63;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4009:106;;;;;;3989:126;;3865:258;;;:::o;7:342:1:-;;109:64;124:48;165:6;124:48;:::i;:::-;109:64;:::i;:::-;100:73;;196:6;189:5;182:21;234:4;227:5;223:16;272:3;263:6;258:3;254:16;251:25;248:2;;;289:1;286;279:12;248:2;302:41;336:6;331:3;326;302:41;:::i;:::-;90:259;;;;;;:::o;355:139::-;;439:6;426:20;417:29;;455:33;482:5;455:33;:::i;:::-;407:87;;;;:::o;500:139::-;;584:6;571:20;562:29;;600:33;627:5;600:33;:::i;:::-;552:87;;;;:::o;658:271::-;;762:3;755:4;747:6;743:17;739:27;729:2;;780:1;777;770:12;729:2;820:6;807:20;845:78;919:3;911:6;904:4;896:6;892:17;845:78;:::i;:::-;836:87;;719:210;;;;;:::o;935:139::-;;1019:6;1006:20;997:29;;1035:33;1062:5;1035:33;:::i;:::-;987:87;;;;:::o;1080:135::-;;1162:6;1149:20;1140:29;;1178:31;1203:5;1178:31;:::i;:::-;1130:85;;;;:::o;1221:262::-;;1329:2;1317:9;1308:7;1304:23;1300:32;1297:2;;;1345:1;1342;1335:12;1297:2;1388:1;1413:53;1458:7;1449:6;1438:9;1434:22;1413:53;:::i;:::-;1403:63;;1359:117;1287:196;;;;:::o;1489:407::-;;;1614:2;1602:9;1593:7;1589:23;1585:32;1582:2;;;1630:1;1627;1620:12;1582:2;1673:1;1698:53;1743:7;1734:6;1723:9;1719:22;1698:53;:::i;:::-;1688:63;;1644:117;1800:2;1826:53;1871:7;1862:6;1851:9;1847:22;1826:53;:::i;:::-;1816:63;;1771:118;1572:324;;;;;:::o;1902:552::-;;;;2044:2;2032:9;2023:7;2019:23;2015:32;2012:2;;;2060:1;2057;2050:12;2012:2;2103:1;2128:53;2173:7;2164:6;2153:9;2149:22;2128:53;:::i;:::-;2118:63;;2074:117;2230:2;2256:53;2301:7;2292:6;2281:9;2277:22;2256:53;:::i;:::-;2246:63;;2201:118;2358:2;2384:53;2429:7;2420:6;2409:9;2405:22;2384:53;:::i;:::-;2374:63;;2329:118;2002:452;;;;;:::o;2460:951::-;;;;;;2643:3;2631:9;2622:7;2618:23;2614:33;2611:2;;;2660:1;2657;2650:12;2611:2;2703:1;2728:53;2773:7;2764:6;2753:9;2749:22;2728:53;:::i;:::-;2718:63;;2674:117;2858:2;2847:9;2843:18;2830:32;2889:18;2881:6;2878:30;2875:2;;;2921:1;2918;2911:12;2875:2;2949:62;3003:7;2994:6;2983:9;2979:22;2949:62;:::i;:::-;2939:72;;2801:220;3060:2;3086:53;3131:7;3122:6;3111:9;3107:22;3086:53;:::i;:::-;3076:63;;3031:118;3188:2;3214:53;3259:7;3250:6;3239:9;3235:22;3214:53;:::i;:::-;3204:63;;3159:118;3316:3;3343:51;3386:7;3377:6;3366:9;3362:22;3343:51;:::i;:::-;3333:61;;3287:117;2601:810;;;;;;;;:::o;3417:407::-;;;3542:2;3530:9;3521:7;3517:23;3513:32;3510:2;;;3558:1;3555;3548:12;3510:2;3601:1;3626:53;3671:7;3662:6;3651:9;3647:22;3626:53;:::i;:::-;3616:63;;3572:117;3728:2;3754:53;3799:7;3790:6;3779:9;3775:22;3754:53;:::i;:::-;3744:63;;3699:118;3500:324;;;;;:::o;3830:142::-;3933:32;3959:5;3933:32;:::i;:::-;3928:3;3921:45;3911:61;;:::o;3978:118::-;4065:24;4083:5;4065:24;:::i;:::-;4060:3;4053:37;4043:53;;:::o;4102:157::-;4207:45;4227:24;4245:5;4227:24;:::i;:::-;4207:45;:::i;:::-;4202:3;4195:58;4185:74;;:::o;4265:109::-;4346:21;4361:5;4346:21;:::i;:::-;4341:3;4334:34;4324:50;;:::o;4380:118::-;4467:24;4485:5;4467:24;:::i;:::-;4462:3;4455:37;4445:53;;:::o;4504:157::-;4609:45;4629:24;4647:5;4629:24;:::i;:::-;4609:45;:::i;:::-;4604:3;4597:58;4587:74;;:::o;4667:360::-;;4781:38;4813:5;4781:38;:::i;:::-;4835:70;4898:6;4893:3;4835:70;:::i;:::-;4828:77;;4914:52;4959:6;4954:3;4947:4;4940:5;4936:16;4914:52;:::i;:::-;4991:29;5013:6;4991:29;:::i;:::-;4986:3;4982:39;4975:46;;4757:270;;;;;:::o;5033:373::-;;5165:38;5197:5;5165:38;:::i;:::-;5219:88;5300:6;5295:3;5219:88;:::i;:::-;5212:95;;5316:52;5361:6;5356:3;5349:4;5342:5;5338:16;5316:52;:::i;:::-;5393:6;5388:3;5384:16;5377:23;;5141:265;;;;;:::o;5412:364::-;;5528:39;5561:5;5528:39;:::i;:::-;5583:71;5647:6;5642:3;5583:71;:::i;:::-;5576:78;;5663:52;5708:6;5703:3;5696:4;5689:5;5685:16;5663:52;:::i;:::-;5740:29;5762:6;5740:29;:::i;:::-;5735:3;5731:39;5724:46;;5504:272;;;;;:::o;5782:367::-;;5945:67;6009:2;6004:3;5945:67;:::i;:::-;5938:74;;6042:34;6038:1;6033:3;6029:11;6022:55;6108:5;6103:2;6098:3;6094:12;6087:27;6140:2;6135:3;6131:12;6124:19;;5928:221;;;:::o;6155:370::-;;6318:67;6382:2;6377:3;6318:67;:::i;:::-;6311:74;;6415:34;6411:1;6406:3;6402:11;6395:55;6481:8;6476:2;6471:3;6467:12;6460:30;6516:2;6511:3;6507:12;6500:19;;6301:224;;;:::o;6531:366::-;;6694:67;6758:2;6753:3;6694:67;:::i;:::-;6687:74;;6791:34;6787:1;6782:3;6778:11;6771:55;6857:4;6852:2;6847:3;6843:12;6836:26;6888:2;6883:3;6879:12;6872:19;;6677:220;;;:::o;6903:326::-;;7066:67;7130:2;7125:3;7066:67;:::i;:::-;7059:74;;7163:30;7159:1;7154:3;7150:11;7143:51;7220:2;7215:3;7211:12;7204:19;;7049:180;;;:::o;7235:396::-;;7416:84;7498:1;7493:3;7416:84;:::i;:::-;7409:91;;7530:66;7526:1;7521:3;7517:11;7510:87;7623:1;7618:3;7614:11;7607:18;;7399:232;;;:::o;7637:370::-;;7800:67;7864:2;7859:3;7800:67;:::i;:::-;7793:74;;7897:34;7893:1;7888:3;7884:11;7877:55;7963:8;7958:2;7953:3;7949:12;7942:30;7998:2;7993:3;7989:12;7982:19;;7783:224;;;:::o;8013:369::-;;8176:67;8240:2;8235:3;8176:67;:::i;:::-;8169:74;;8273:34;8269:1;8264:3;8260:11;8253:55;8339:7;8334:2;8329:3;8325:12;8318:29;8373:2;8368:3;8364:12;8357:19;;8159:223;;;:::o;8388:372::-;;8551:67;8615:2;8610:3;8551:67;:::i;:::-;8544:74;;8648:34;8644:1;8639:3;8635:11;8628:55;8714:10;8709:2;8704:3;8700:12;8693:32;8751:2;8746:3;8742:12;8735:19;;8534:226;;;:::o;8766:330::-;;8929:67;8993:2;8988:3;8929:67;:::i;:::-;8922:74;;9026:34;9022:1;9017:3;9013:11;9006:55;9087:2;9082:3;9078:12;9071:19;;8912:184;;;:::o;9102:365::-;;9265:67;9329:2;9324:3;9265:67;:::i;:::-;9258:74;;9362:34;9358:1;9353:3;9349:11;9342:55;9428:3;9423:2;9418:3;9414:12;9407:25;9458:2;9453:3;9449:12;9442:19;;9248:219;;;:::o;9473:369::-;;9636:67;9700:2;9695:3;9636:67;:::i;:::-;9629:74;;9733:34;9729:1;9724:3;9720:11;9713:55;9799:7;9794:2;9789:3;9785:12;9778:29;9833:2;9828:3;9824:12;9817:19;;9619:223;;;:::o;9848:368::-;;10011:67;10075:2;10070:3;10011:67;:::i;:::-;10004:74;;10108:34;10104:1;10099:3;10095:11;10088:55;10174:6;10169:2;10164:3;10160:12;10153:28;10207:2;10202:3;10198:12;10191:19;;9994:222;;;:::o;10222:313::-;;10385:67;10449:2;10444:3;10385:67;:::i;:::-;10378:74;;10482:17;10478:1;10473:3;10469:11;10462:38;10526:2;10521:3;10517:12;10510:19;;10368:167;;;:::o;10541:369::-;;10704:67;10768:2;10763:3;10704:67;:::i;:::-;10697:74;;10801:34;10797:1;10792:3;10788:11;10781:55;10867:7;10862:2;10857:3;10853:12;10846:29;10901:2;10896:3;10892:12;10885:19;;10687:223;;;:::o;10916:329::-;;11079:67;11143:2;11138:3;11079:67;:::i;:::-;11072:74;;11176:33;11172:1;11167:3;11163:11;11156:54;11236:2;11231:3;11227:12;11220:19;;11062:183;;;:::o;11251:118::-;11338:24;11356:5;11338:24;:::i;:::-;11333:3;11326:37;11316:53;;:::o;11375:112::-;11458:22;11474:5;11458:22;:::i;:::-;11453:3;11446:35;11436:51;;:::o;11493:271::-;;11645:93;11734:3;11725:6;11645:93;:::i;:::-;11638:100;;11755:3;11748:10;;11627:137;;;;:::o;11770:412::-;;11950:93;12039:3;12030:6;11950:93;:::i;:::-;11943:100;;12053:75;12124:3;12115:6;12053:75;:::i;:::-;12153:2;12148:3;12144:12;12137:19;;12173:3;12166:10;;11932:250;;;;;:::o;12188:663::-;;12451:148;12595:3;12451:148;:::i;:::-;12444:155;;12609:75;12680:3;12671:6;12609:75;:::i;:::-;12709:2;12704:3;12700:12;12693:19;;12722:75;12793:3;12784:6;12722:75;:::i;:::-;12822:2;12817:3;12813:12;12806:19;;12842:3;12835:10;;12433:418;;;;;:::o;12857:222::-;;12988:2;12977:9;12973:18;12965:26;;13001:71;13069:1;13058:9;13054:17;13045:6;13001:71;:::i;:::-;12955:124;;;;:::o;13085:561::-;;13306:2;13295:9;13291:18;13283:26;;13319:71;13387:1;13376:9;13372:17;13363:6;13319:71;:::i;:::-;13400:88;13484:2;13473:9;13469:18;13460:6;13400:88;:::i;:::-;13535:9;13529:4;13525:20;13520:2;13509:9;13505:18;13498:48;13563:76;13634:4;13625:6;13563:76;:::i;:::-;13555:84;;13273:373;;;;;;:::o;13652:210::-;;13777:2;13766:9;13762:18;13754:26;;13790:65;13852:1;13841:9;13837:17;13828:6;13790:65;:::i;:::-;13744:118;;;;:::o;13868:222::-;;13999:2;13988:9;13984:18;13976:26;;14012:71;14080:1;14069:9;14065:17;14056:6;14012:71;:::i;:::-;13966:124;;;;:::o;14096:553::-;;14311:3;14300:9;14296:19;14288:27;;14325:71;14393:1;14382:9;14378:17;14369:6;14325:71;:::i;:::-;14406:72;14474:2;14463:9;14459:18;14450:6;14406:72;:::i;:::-;14488;14556:2;14545:9;14541:18;14532:6;14488:72;:::i;:::-;14570;14638:2;14627:9;14623:18;14614:6;14570:72;:::i;:::-;14278:371;;;;;;;:::o;14655:545::-;;14866:3;14855:9;14851:19;14843:27;;14880:71;14948:1;14937:9;14933:17;14924:6;14880:71;:::i;:::-;14961:68;15025:2;15014:9;15010:18;15001:6;14961:68;:::i;:::-;15039:72;15107:2;15096:9;15092:18;15083:6;15039:72;:::i;:::-;15121;15189:2;15178:9;15174:18;15165:6;15121:72;:::i;:::-;14833:367;;;;;;;:::o;15206:309::-;;15355:2;15344:9;15340:18;15332:26;;15404:9;15398:4;15394:20;15390:1;15379:9;15375:17;15368:47;15432:76;15503:4;15494:6;15432:76;:::i;:::-;15424:84;;15322:193;;;;:::o;15521:313::-;;15672:2;15661:9;15657:18;15649:26;;15721:9;15715:4;15711:20;15707:1;15696:9;15692:17;15685:47;15749:78;15822:4;15813:6;15749:78;:::i;:::-;15741:86;;15639:195;;;;:::o;15840:419::-;;16044:2;16033:9;16029:18;16021:26;;16093:9;16087:4;16083:20;16079:1;16068:9;16064:17;16057:47;16121:131;16247:4;16121:131;:::i;:::-;16113:139;;16011:248;;;:::o;16265:419::-;;16469:2;16458:9;16454:18;16446:26;;16518:9;16512:4;16508:20;16504:1;16493:9;16489:17;16482:47;16546:131;16672:4;16546:131;:::i;:::-;16538:139;;16436:248;;;:::o;16690:419::-;;16894:2;16883:9;16879:18;16871:26;;16943:9;16937:4;16933:20;16929:1;16918:9;16914:17;16907:47;16971:131;17097:4;16971:131;:::i;:::-;16963:139;;16861:248;;;:::o;17115:419::-;;17319:2;17308:9;17304:18;17296:26;;17368:9;17362:4;17358:20;17354:1;17343:9;17339:17;17332:47;17396:131;17522:4;17396:131;:::i;:::-;17388:139;;17286:248;;;:::o;17540:419::-;;17744:2;17733:9;17729:18;17721:26;;17793:9;17787:4;17783:20;17779:1;17768:9;17764:17;17757:47;17821:131;17947:4;17821:131;:::i;:::-;17813:139;;17711:248;;;:::o;17965:419::-;;18169:2;18158:9;18154:18;18146:26;;18218:9;18212:4;18208:20;18204:1;18193:9;18189:17;18182:47;18246:131;18372:4;18246:131;:::i;:::-;18238:139;;18136:248;;;:::o;18390:419::-;;18594:2;18583:9;18579:18;18571:26;;18643:9;18637:4;18633:20;18629:1;18618:9;18614:17;18607:47;18671:131;18797:4;18671:131;:::i;:::-;18663:139;;18561:248;;;:::o;18815:419::-;;19019:2;19008:9;19004:18;18996:26;;19068:9;19062:4;19058:20;19054:1;19043:9;19039:17;19032:47;19096:131;19222:4;19096:131;:::i;:::-;19088:139;;18986:248;;;:::o;19240:419::-;;19444:2;19433:9;19429:18;19421:26;;19493:9;19487:4;19483:20;19479:1;19468:9;19464:17;19457:47;19521:131;19647:4;19521:131;:::i;:::-;19513:139;;19411:248;;;:::o;19665:419::-;;19869:2;19858:9;19854:18;19846:26;;19918:9;19912:4;19908:20;19904:1;19893:9;19889:17;19882:47;19946:131;20072:4;19946:131;:::i;:::-;19938:139;;19836:248;;;:::o;20090:419::-;;20294:2;20283:9;20279:18;20271:26;;20343:9;20337:4;20333:20;20329:1;20318:9;20314:17;20307:47;20371:131;20497:4;20371:131;:::i;:::-;20363:139;;20261:248;;;:::o;20515:419::-;;20719:2;20708:9;20704:18;20696:26;;20768:9;20762:4;20758:20;20754:1;20743:9;20739:17;20732:47;20796:131;20922:4;20796:131;:::i;:::-;20788:139;;20686:248;;;:::o;20940:419::-;;21144:2;21133:9;21129:18;21121:26;;21193:9;21187:4;21183:20;21179:1;21168:9;21164:17;21157:47;21221:131;21347:4;21221:131;:::i;:::-;21213:139;;21111:248;;;:::o;21365:419::-;;21569:2;21558:9;21554:18;21546:26;;21618:9;21612:4;21608:20;21604:1;21593:9;21589:17;21582:47;21646:131;21772:4;21646:131;:::i;:::-;21638:139;;21536:248;;;:::o;21790:222::-;;21921:2;21910:9;21906:18;21898:26;;21934:71;22002:1;21991:9;21987:17;21978:6;21934:71;:::i;:::-;21888:124;;;;:::o;22018:214::-;;22145:2;22134:9;22130:18;22122:26;;22158:67;22222:1;22211:9;22207:17;22198:6;22158:67;:::i;:::-;22112:120;;;;:::o;22238:283::-;;22304:2;22298:9;22288:19;;22346:4;22338:6;22334:17;22453:6;22441:10;22438:22;22417:18;22405:10;22402:34;22399:62;22396:2;;;22464:18;;:::i;:::-;22396:2;22504:10;22500:2;22493:22;22278:243;;;;:::o;22527:331::-;;22678:18;22670:6;22667:30;22664:2;;;22700:18;;:::i;:::-;22664:2;22785:4;22781:9;22774:4;22766:6;22762:17;22758:33;22750:41;;22846:4;22840;22836:15;22828:23;;22593:265;;;:::o;22864:98::-;;22949:5;22943:12;22933:22;;22922:40;;;:::o;22968:99::-;;23054:5;23048:12;23038:22;;23027:40;;;:::o;23073:168::-;;23190:6;23185:3;23178:19;23230:4;23225:3;23221:14;23206:29;;23168:73;;;;:::o;23247:147::-;;23385:3;23370:18;;23360:34;;;;:::o;23400:169::-;;23518:6;23513:3;23506:19;23558:4;23553:3;23549:14;23534:29;;23496:73;;;;:::o;23575:148::-;;23714:3;23699:18;;23689:34;;;;:::o;23729:305::-;;23788:20;23806:1;23788:20;:::i;:::-;23783:25;;23822:20;23840:1;23822:20;:::i;:::-;23817:25;;23976:1;23908:66;23904:74;23901:1;23898:81;23895:2;;;23982:18;;:::i;:::-;23895:2;24026:1;24023;24019:9;24012:16;;23773:261;;;;:::o;24040:191::-;;24100:20;24118:1;24100:20;:::i;:::-;24095:25;;24134:20;24152:1;24134:20;:::i;:::-;24129:25;;24173:1;24170;24167:8;24164:2;;;24178:18;;:::i;:::-;24164:2;24223:1;24220;24216:9;24208:17;;24085:146;;;;:::o;24237:96::-;;24303:24;24321:5;24303:24;:::i;:::-;24292:35;;24282:51;;;:::o;24339:104::-;;24413:24;24431:5;24413:24;:::i;:::-;24402:35;;24392:51;;;:::o;24449:90::-;;24526:5;24519:13;24512:21;24501:32;;24491:48;;;:::o;24545:77::-;;24611:5;24600:16;;24590:32;;;:::o;24628:126::-;;24705:42;24698:5;24694:54;24683:65;;24673:81;;;:::o;24760:77::-;;24826:5;24815:16;;24805:32;;;:::o;24843:86::-;;24918:4;24911:5;24907:16;24896:27;;24886:43;;;:::o;24935:154::-;25019:6;25014:3;25009;24996:30;25081:1;25072:6;25067:3;25063:16;25056:27;24986:103;;;:::o;25095:307::-;25163:1;25173:113;25187:6;25184:1;25181:13;25173:113;;;25272:1;25267:3;25263:11;25257:18;25253:1;25248:3;25244:11;25237:39;25209:2;25206:1;25202:10;25197:15;;25173:113;;;25304:6;25301:1;25298:13;25295:2;;;25384:1;25375:6;25370:3;25366:16;25359:27;25295:2;25144:258;;;;:::o;25408:320::-;;25489:1;25483:4;25479:12;25469:22;;25536:1;25530:4;25526:12;25557:18;25547:2;;25613:4;25605:6;25601:17;25591:27;;25547:2;25675;25667:6;25664:14;25644:18;25641:38;25638:2;;;25694:18;;:::i;:::-;25638:2;25459:269;;;;:::o;25734:100::-;;25802:26;25822:5;25802:26;:::i;:::-;25791:37;;25781:53;;;:::o;25840:79::-;;25908:5;25897:16;;25887:32;;;:::o;25925:94::-;;25993:20;26007:5;25993:20;:::i;:::-;25982:31;;25972:47;;;:::o;26025:180::-;26073:77;26070:1;26063:88;26170:4;26167:1;26160:15;26194:4;26191:1;26184:15;26211:180;26259:77;26256:1;26249:88;26356:4;26353:1;26346:15;26380:4;26377:1;26370:15;26397:180;26445:77;26442:1;26435:88;26542:4;26539:1;26532:15;26566:4;26563:1;26556:15;26583:102;;26675:2;26671:7;26666:2;26659:5;26655:14;26651:28;26641:38;;26631:54;;;:::o;26691:94::-;;26772:5;26768:2;26764:14;26743:35;;26733:52;;;:::o;26791:122::-;26864:24;26882:5;26864:24;:::i;:::-;26857:5;26854:35;26844:2;;26903:1;26900;26893:12;26844:2;26834:79;:::o;26919:122::-;26992:24;27010:5;26992:24;:::i;:::-;26985:5;26982:35;26972:2;;27031:1;27028;27021:12;26972:2;26962:79;:::o;27047:122::-;27120:24;27138:5;27120:24;:::i;:::-;27113:5;27110:35;27100:2;;27159:1;27156;27149:12;27100:2;27090:79;:::o;27175:118::-;27246:22;27262:5;27246:22;:::i;:::-;27239:5;27236:33;27226:2;;27283:1;27280;27273:12;27226:2;27216:77;:::o

Swarm Source

ipfs://384abed78a8ffe4a7718d4f2fdd120dea147960689260fc60c6100a7319266c7
Loading