ETH Price: $3,679.75 (+2.19%)

Token

ERC-20: Attenborough Inu (FAUNA)
 

Overview

Max Total Supply

1,000,000,000 FAUNA

Holders

48

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
ishowerwithbarc.eth
Balance
927,115.404547236808374801 FAUNA

Value
$0.00
0x62d207f1048f844716818b22a966e1f49074510c
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:
FAUNA

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-05
*/

// SPDX-License-Identifier: MIT
pragma solidity =0.8.10;

/**
 * @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 Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

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

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

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

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

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

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);
    event Burn(
        address indexed sender,
        uint256 amount0,
        uint256 amount1,
        address indexed to
    );
    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(address to)
        external
        returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract FAUNA is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    address public constant deadAddress = address(0xdead);

    bool private swapping;

    address public marketingWallet;
    address public liquidityWallet;
    address public team1Wallet;
    address public team2Wallet;
    address public donationsWallet;

    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;

    uint256 public percentForLPBurn = 25; // 25 = .25%
    bool public lpBurnEnabled = true;
    uint256 public lpBurnFrequency = 60 minutes;
    uint256 public lastLpBurnTime;

    uint256 public manualBurnFrequency = 30 minutes;
    uint256 public lastManualLpBurnTime;

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;

    // Anti-bot and anti-whale mappings and variables
    mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch
    bool public transferDelayEnabled = true;

    uint256 public buyTotalFees;
    uint256 public buyMarketingFee;
    uint256 public buyLiquidityFee;
    uint256 public buyTeam1Fee;
    uint256 public buyTeam2Fee;
    uint256 public buyDonationsFee;

    uint256 public sellTotalFees;
    uint256 public sellMarketingFee;
    uint256 public sellLiquidityFee;
    uint256 public sellTeam1Fee;
    uint256 public sellTeam2Fee;
    uint256 public sellDonationsFee;

    uint256 public tokensForMarketing;
    uint256 public tokensForLiquidity;
    uint256 public tokensForTeam1;
    uint256 public tokensForTeam2;
    uint256 public tokensForDonations;

    /******************/

    // exlcude from fees and max transaction amount
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) public _isExcludedMaxTransactionAmount;

    // store addresses that a automatic market maker pairs. Any transfer *to* these addresses
    // could be subject to a maximum transfer amount
    mapping(address => bool) public automatedMarketMakerPairs;

    event UpdateUniswapV2Router(
        address indexed newAddress,
        address indexed oldAddress
    );

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event AutoNukeLP();

    event ManualNukeLP();

    constructor(address _marketingWallet, address _liquidityWallet, address _team1Wallet, address _team2Wallet, address _donationsWallet, address _OwnerWallet) ERC20("Attenborough Inu", "FAUNA") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        updateBuyFees(20, 20, 5, 5, 50);
        updateSellFees(30, 20, 10, 10, 80);

        uint256 totalSupply = 1_000_000_000 * 1e18;

        maxTransactionAmount = 10_000_000 * 1e18; // 1% from total supply maxTransactionAmountTxn
        maxWallet = 20_000_000 * 1e18; // 2% from total supply maxWallet
        swapTokensAtAmount = (totalSupply * 5) / 10000; // 0.05% swap wallet

        updateWallets(_marketingWallet, _liquidityWallet, _team1Wallet, _team2Wallet, _donationsWallet);

        // exclude from paying fees or having max transaction amount
        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);

        /*
            _mint is an internal function in ERC20.sol that is only called here,
            and CANNOT be called ever again
        */
        _mint(owner(), totalSupply.mul(9).div(10));
        _mint(_OwnerWallet, totalSupply.div(10));
    }

    receive() external payable {}

    // once enabled, can never be turned off
    function enableTrading() external onlyOwner {
        tradingActive = true;
        swapEnabled = true;
        lastLpBurnTime = block.timestamp;
    }

    // remove limits after token is stable
    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = false;
        return true;
    }

    // disable Transfer delay - cannot be reenabled
    function disableTransferDelay() external onlyOwner returns (bool) {
        transferDelayEnabled = false;
        return true;
    }

    // change the minimum amount of tokens to sell from fees
    function updateSwapTokensAtAmount(uint256 newAmount)
        external
        onlyOwner
        returns (bool)
    {
        require(
            newAmount >= (totalSupply() * 1) / 100000,
            "Swap amount cannot be lower than 0.001% total supply."
        );
        require(
            newAmount <= (totalSupply() * 5) / 1000,
            "Swap amount cannot be higher than 0.5% total supply."
        );
        swapTokensAtAmount = newAmount;
        return true;
    }

    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 1) / 1000) / 1e18,
            "Cannot set maxTransactionAmount lower than 0.1%"
        );
        maxTransactionAmount = newNum * (10**18);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 5) / 1000) / 1e18,
            "Cannot set maxWallet lower than 0.5%"
        );
        maxWallet = newNum * (10**18);
    }

    function excludeFromMaxTransaction(address updAds, bool isEx)
        public
        onlyOwner
    {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    // only use to disable contract sales if absolutely necessary (emergency use only)
    function updateSwapEnabled(bool enabled) external onlyOwner {
        swapEnabled = enabled;
    }

    function updateBuyFees(
        uint256 _buyMarketingFee,
        uint256 _buyLiquidityFee,
        uint256 _buyTeam1Fee,
        uint256 _buyTeam2Fee,
        uint256 _buyDonationsFee
    ) public onlyOwner {
        buyMarketingFee = _buyMarketingFee;
        buyLiquidityFee = _buyLiquidityFee;
        buyTeam1Fee = _buyTeam1Fee;
        buyTeam2Fee = _buyTeam2Fee;
        buyDonationsFee = _buyDonationsFee;
        buyTotalFees = buyMarketingFee + buyLiquidityFee + buyTeam1Fee + buyTeam2Fee + buyDonationsFee;
        require(buyTotalFees <= 150, "Must keep fees at 15% or less");
    }

    function updateSellFees(
        uint256 _sellMarketingFee,
        uint256 _sellLiquidityFee,
        uint256 _sellTeam1Fee,
        uint256 _sellTeam2Fee,
        uint256 _sellDonationsFee
    ) public onlyOwner {
        sellMarketingFee = _sellMarketingFee;
        sellLiquidityFee = _sellLiquidityFee;
        sellTeam1Fee = _sellTeam1Fee;
        sellTeam2Fee = _sellTeam2Fee;
        sellDonationsFee = _sellDonationsFee;
        sellTotalFees = sellMarketingFee + sellLiquidityFee + sellTeam1Fee + sellTeam2Fee + sellDonationsFee;
        require(sellTotalFees <= 150, "Must keep fees at 15% or less");
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function setAutomatedMarketMakerPair(address pair, bool value)
        public
        onlyOwner
    {
        require(
            pair != uniswapV2Pair,
            "The pair cannot be removed from automatedMarketMakerPairs"
        );

        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function updateWallets(
        address newMarketingWallet,
        address newLiquidityWallet,
        address newTeam1Wallet,
        address newTeam2Wallet,
        address newDonationsWallet
    ) public onlyOwner {
        marketingWallet = newMarketingWallet;
        liquidityWallet = newLiquidityWallet;
        team1Wallet = newTeam1Wallet;
        team2Wallet = newTeam2Wallet;
        donationsWallet = newDonationsWallet;
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ) {
                if (!tradingActive) {
                    require(
                        _isExcludedFromFees[from] || _isExcludedFromFees[to],
                        "Trading is not active."
                    );
                }

                // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch.
                if (transferDelayEnabled) {
                    if (
                        to != owner() &&
                        to != address(uniswapV2Router) &&
                        to != address(uniswapV2Pair)
                    ) {
                        require(
                            _holderLastTransferTimestamp[tx.origin] <
                                block.number,
                            "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                        );
                        _holderLastTransferTimestamp[tx.origin] = block.number;
                    }
                }

                //when buy
                if (
                    automatedMarketMakerPairs[from] &&
                    !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Buy transfer amount exceeds the maxTransactionAmount."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
                //when sell
                else if (
                    automatedMarketMakerPairs[to] &&
                    !_isExcludedMaxTransactionAmount[from]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Sell transfer amount exceeds the maxTransactionAmount."
                    );
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (
            canSwap &&
            swapEnabled &&
            !swapping &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;

            swapBack();

            swapping = false;
        }

        if (
            !swapping &&
            automatedMarketMakerPairs[to] &&
            lpBurnEnabled &&
            block.timestamp >= lastLpBurnTime + lpBurnFrequency &&
            !_isExcludedFromFees[from]
        ) {
            autoBurnLiquidityPairTokens();
        }

        bool takeFee = !swapping;

        // if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if (takeFee) {
            // on sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = amount.mul(sellTotalFees).div(1000);
                tokensForMarketing += (fees * sellMarketingFee) / sellTotalFees;
                tokensForLiquidity += (fees * sellLiquidityFee) / sellTotalFees;
                tokensForTeam1 += (fees * sellTeam1Fee) / sellTotalFees;
                tokensForTeam2 += (fees * sellTeam2Fee) / sellTotalFees;
                tokensForDonations += (fees * sellDonationsFee) / sellTotalFees;
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount.mul(buyTotalFees).div(1000);
                tokensForMarketing += (fees * buyMarketingFee) / buyTotalFees;
                tokensForLiquidity += (fees * buyLiquidityFee) / buyTotalFees;
                tokensForTeam1 += (fees * buyTeam1Fee) / buyTotalFees;
                tokensForTeam2 += (fees * buyTeam2Fee) / buyTotalFees;
                tokensForDonations += (fees * buyDonationsFee) / buyTotalFees;
            }

            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }

            amount -= fees;
        }

        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForMarketing + tokensForLiquidity + tokensForTeam1 + tokensForTeam2 + tokensForDonations;
        bool success;

        if (contractBalance == 0 || totalTokensToSwap == 0) {
            return;
        }

        if (contractBalance > swapTokensAtAmount * 20) {
            contractBalance = swapTokensAtAmount * 20;
        }

        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(contractBalance);

        uint256 ethBalance = address(this).balance.sub(initialETHBalance);

        uint256 ethForMarketing = ethBalance.mul(tokensForMarketing).div(totalTokensToSwap);
        uint256 ethForLiquidity = ethBalance.mul(tokensForLiquidity).div(totalTokensToSwap);
        uint256 ethForTeam1 = ethBalance.mul(tokensForTeam1).div(totalTokensToSwap);
        uint256 ethForTeam2 = ethBalance.mul(tokensForTeam2).div(totalTokensToSwap);

        tokensForMarketing = 0;  
        tokensForLiquidity = 0;
        tokensForTeam1 = 0;
        tokensForTeam2 = 0;
        tokensForDonations = 0;

        (success, ) = address(marketingWallet).call{value: ethForMarketing}("");
        (success, ) = address(liquidityWallet).call{value: ethForLiquidity}("");
        (success, ) = address(team1Wallet).call{value: ethForTeam1}("");
        (success, ) = address(team2Wallet).call{value: ethForTeam2}("");
        (success, ) = address(donationsWallet).call{value: address(this).balance}("");
    }

    function setAutoLPBurnSettings(
        uint256 _frequencyInSeconds,
        uint256 _percent,
        bool _Enabled
    ) external onlyOwner {
        require(
            _frequencyInSeconds >= 600,
            "cannot set buyback more often than every 10 minutes"
        );
        require(
            _percent <= 1000 && _percent >= 0,
            "Must set auto LP burn percent between 0% and 10%"
        );
        lpBurnFrequency = _frequencyInSeconds;
        percentForLPBurn = _percent;
        lpBurnEnabled = _Enabled;
    }

    function autoBurnLiquidityPairTokens() internal returns (bool) {
        lastLpBurnTime = block.timestamp;

        // get balance of liquidity pair
        uint256 liquidityPairBalance = this.balanceOf(uniswapV2Pair);

        // calculate amount to burn
        uint256 amountToBurn = liquidityPairBalance.mul(percentForLPBurn).div(
            10000
        );

        // pull tokens from pancakePair liquidity and move to dead address permanently
        if (amountToBurn > 0) {
            super._transfer(uniswapV2Pair, address(0xdead), amountToBurn);
        }

        //sync price since this is not in a swap transaction!
        IUniswapV2Pair pair = IUniswapV2Pair(uniswapV2Pair);
        pair.sync();
        emit AutoNukeLP();
        return true;
    }

    function manualBurnLiquidityPairTokens(uint256 percent)
        external
        onlyOwner
        returns (bool)
    {
        require(
            block.timestamp > lastManualLpBurnTime + manualBurnFrequency,
            "Must wait for cooldown to finish"
        );
        require(percent <= 1000, "May not nuke more than 10% of tokens in LP");
        lastManualLpBurnTime = block.timestamp;

        // get balance of liquidity pair
        uint256 liquidityPairBalance = this.balanceOf(uniswapV2Pair);

        // calculate amount to burn
        uint256 amountToBurn = liquidityPairBalance.mul(percent).div(10000);

        // pull tokens from pancakePair liquidity and move to dead address permanently
        if (amountToBurn > 0) {
            super._transfer(uniswapV2Pair, address(0xdead), amountToBurn);
        }

        //sync price since this is not in a swap transaction!
        IUniswapV2Pair pair = IUniswapV2Pair(uniswapV2Pair);
        pair.sync();
        emit ManualNukeLP();
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_liquidityWallet","type":"address"},{"internalType":"address","name":"_team1Wallet","type":"address"},{"internalType":"address","name":"_team2Wallet","type":"address"},{"internalType":"address","name":"_donationsWallet","type":"address"},{"internalType":"address","name":"_OwnerWallet","type":"address"}],"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":[],"name":"AutoNukeLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[],"name":"ManualNukeLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDonationsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTeam1Fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTeam2Fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"donationsWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","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":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastManualLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualBurnLiquidityPairTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentForLPBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDonationsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTeam1Fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTeam2Fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_frequencyInSeconds","type":"uint256"},{"internalType":"uint256","name":"_percent","type":"uint256"},{"internalType":"bool","name":"_Enabled","type":"bool"}],"name":"setAutoLPBurnSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"team1Wallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"team2Wallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDonations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForTeam1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForTeam2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyMarketingFee","type":"uint256"},{"internalType":"uint256","name":"_buyLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buyTeam1Fee","type":"uint256"},{"internalType":"uint256","name":"_buyTeam2Fee","type":"uint256"},{"internalType":"uint256","name":"_buyDonationsFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellMarketingFee","type":"uint256"},{"internalType":"uint256","name":"_sellLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_sellTeam1Fee","type":"uint256"},{"internalType":"uint256","name":"_sellTeam2Fee","type":"uint256"},{"internalType":"uint256","name":"_sellDonationsFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"},{"internalType":"address","name":"newLiquidityWallet","type":"address"},{"internalType":"address","name":"newTeam1Wallet","type":"address"},{"internalType":"address","name":"newTeam2Wallet","type":"address"},{"internalType":"address","name":"newDonationsWallet","type":"address"}],"name":"updateWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526019600e55600f8054600160ff199182168117909255610e106010556107086012556014805462ffffff1916831790556016805490911690911790553480156200004d57600080fd5b5060405162003f2338038062003f23833981016040819052620000709162000a38565b604080518082018252601081526f417474656e626f726f75676820496e7560801b6020808301918252835180850190945260058452644641554e4160d81b908401528151919291620000c59160039162000975565b508051620000db90600490602084019062000975565b505050620000f8620000f26200041260201b60201c565b62000416565b737a250d5630b4cf539739df2c5dacb4c659f2488d6200011a81600162000468565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000165573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018b919062000ab9565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ff919062000ab9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200024d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000273919062000ab9565b6001600160a01b031660a08190526200028e90600162000468565b60a0516200029e906001620004e2565b620002b0601480600580603262000536565b620002c3601e6014600a8060506200062b565b6a084595161401484a000000600b556a108b2a2c28029094000000600d556b033b2e3c9fd0803ce8000000612710620002fe82600562000aed565b6200030a919062000b0f565b600c556200031c888888888862000719565b6200033b620003336005546001600160a01b031690565b6001620007c3565b62000348306001620007c3565b6200035761dead6001620007c3565b620003766200036e6005546001600160a01b031690565b600162000468565b6200038330600162000468565b6200039261dead600162000468565b620003e4620003a96005546001600160a01b031690565b620003de600a620003ca6009866200086d60201b62001aec1790919060201c565b6200088260201b62001aff1790919060201c565b62000890565b6200040483620003de600a846200088260201b62001aff1790919060201c565b505050505050505062000b8a565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6005546001600160a01b03163314620004b75760405162461bcd60e51b8152602060048201819052602482015260008051602062003f0383398151915260448201526064015b60405180910390fd5b6001600160a01b03919091166000908152602960205260409020805460ff1916911515919091179055565b6001600160a01b0382166000818152602a6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b03163314620005815760405162461bcd60e51b8152602060048201819052602482015260008051602062003f038339815191526044820152606401620004ae565b60188590556019849055601a839055601b829055601c819055808284620005a9878962000b32565b620005b5919062000b32565b620005c1919062000b32565b620005cd919062000b32565b601781905560961015620006245760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313525206f72206c6573730000006044820152606401620004ae565b5050505050565b6005546001600160a01b03163314620006765760405162461bcd60e51b8152602060048201819052602482015260008051602062003f038339815191526044820152606401620004ae565b601e859055601f8490556020839055602182905560228190558082846200069e878962000b32565b620006aa919062000b32565b620006b6919062000b32565b620006c2919062000b32565b601d81905560961015620006245760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313525206f72206c6573730000006044820152606401620004ae565b6005546001600160a01b03163314620007645760405162461bcd60e51b8152602060048201819052602482015260008051602062003f038339815191526044820152606401620004ae565b600680546001600160a01b03199081166001600160a01b03978816179091556007805482169587169590951790945560088054851693861693909317909255600980548416918516919091179055600a80549092169216919091179055565b6005546001600160a01b031633146200080e5760405162461bcd60e51b8152602060048201819052602482015260008051602062003f038339815191526044820152606401620004ae565b6001600160a01b038216600081815260286020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b60006200087b828462000aed565b9392505050565b60006200087b828462000b0f565b6001600160a01b038216620008e85760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620004ae565b8060026000828254620008fc919062000b32565b90915550506001600160a01b038216600090815260208190526040812080548392906200092b90849062000b32565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620009839062000b4d565b90600052602060002090601f016020900481019282620009a75760008555620009f2565b82601f10620009c257805160ff1916838001178555620009f2565b82800160010185558215620009f2579182015b82811115620009f2578251825591602001919060010190620009d5565b5062000a0092915062000a04565b5090565b5b8082111562000a00576000815560010162000a05565b80516001600160a01b038116811462000a3357600080fd5b919050565b60008060008060008060c0878903121562000a5257600080fd5b62000a5d8762000a1b565b955062000a6d6020880162000a1b565b945062000a7d6040880162000a1b565b935062000a8d6060880162000a1b565b925062000a9d6080880162000a1b565b915062000aad60a0880162000a1b565b90509295509295509295565b60006020828403121562000acc57600080fd5b6200087b8262000a1b565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161562000b0a5762000b0a62000ad7565b500290565b60008262000b2d57634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111562000b485762000b4862000ad7565b500190565b600181811c9082168062000b6257607f821691505b6020821081141562000b8457634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a0516132ff62000c046000396000818161064f01528181611179015281816118ba015281816119550152818161198101528181611e0501528181612ac601528181612b680152612b940152600081816104b201528181611dc701528181612c9201528181612d4b0152612d8701526132ff6000f3fe6080604052600436106104095760003560e01c8063924de9b711610213578063d2f570c911610123578063f170d7fd116100ab578063f8b45b051161007a578063f8b45b0514610bc6578063fd5ea1de14610bdc578063fda8375b14610bfc578063fe72b27a14610c12578063ff935af614610c3257600080fd5b8063f170d7fd14610b50578063f287eada14610b70578063f2fde38b14610b90578063f637434214610bb057600080fd5b8063e2f45605116100f2578063e2f4560514610ae3578063e3c511d914610af9578063e884f26014610b0f578063f11a24d314610b24578063f15d4e5d14610b3a57600080fd5b8063d2f570c914610a47578063d469801614610a67578063d85ba06314610a87578063dd62ed3e14610a9d57600080fd5b8063b56bb00d116101a6578063c18bc19511610175578063c18bc195146109c1578063c876d0b9146109e1578063c8c8ebe4146109fb578063ccf16d4b14610a11578063d257b34f14610a2757600080fd5b8063b56bb00d1461093c578063b62496f514610952578063bbc0c74214610982578063c0246668146109a157600080fd5b80639ec22c0e116101e25780639ec22c0e146108d0578063a457c2d7146108e6578063a4c82a0014610906578063a9059cbb1461091c57600080fd5b8063924de9b71461085b57806395d89b411461087b5780639a7a23d6146108905780639d2a740f146108b057600080fd5b806349bd5a5e11610319578063730c1888116102a15780637bce5a04116102705780637bce5a04146107e657806385a0d7b6146107fc5780638a8c523c146108125780638da5cb5b14610827578063921369131461084557600080fd5b8063730c188814610771578063751039fc146107915780637571336a146107a657806375f0a874146107c657600080fd5b806368e9b874116102e857806368e9b874146106da5780636a486a8e146106f05780636ddd17131461070657806370a0823114610726578063715018a61461075c57600080fd5b806349bd5a5e1461063d5780634a62bb65146106715780634fbee1931461068b5780635b7cf4d6146106c457600080fd5b80631f3fed8f1161039c5780632c3e486c1161036b5780632c3e486c146105bb5780632e82f1a0146105d1578063313ce567146105eb578063360e987814610607578063395093511461061d57600080fd5b80631f3fed8f1461054d578063203e727e1461056357806323b872dd1461058557806327c8f835146105a557600080fd5b806318160ddd116103d857806318160ddd146104ec578063184c16c51461050b578063199ffc72146105215780631a8145bb1461053757600080fd5b806306fdde0314610415578063095ea7b31461044057806310d5de53146104705780631694505e146104a057600080fd5b3661041057005b600080fd5b34801561042157600080fd5b5061042a610c52565b6040516104379190612e07565b60405180910390f35b34801561044c57600080fd5b5061046061045b366004612e71565b610ce4565b6040519015158152602001610437565b34801561047c57600080fd5b5061046061048b366004612e9d565b60296020526000908152604090205460ff1681565b3480156104ac57600080fd5b506104d47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610437565b3480156104f857600080fd5b506002545b604051908152602001610437565b34801561051757600080fd5b506104fd60125481565b34801561052d57600080fd5b506104fd600e5481565b34801561054357600080fd5b506104fd60245481565b34801561055957600080fd5b506104fd60235481565b34801561056f57600080fd5b5061058361057e366004612eba565b610cfa565b005b34801561059157600080fd5b506104606105a0366004612ed3565b610de0565b3480156105b157600080fd5b506104d461dead81565b3480156105c757600080fd5b506104fd60105481565b3480156105dd57600080fd5b50600f546104609060ff1681565b3480156105f757600080fd5b5060405160128152602001610437565b34801561061357600080fd5b506104fd60275481565b34801561062957600080fd5b50610460610638366004612e71565b610e8a565b34801561064957600080fd5b506104d47f000000000000000000000000000000000000000000000000000000000000000081565b34801561067d57600080fd5b506014546104609060ff1681565b34801561069757600080fd5b506104606106a6366004612e9d565b6001600160a01b031660009081526028602052604090205460ff1690565b3480156106d057600080fd5b506104fd60205481565b3480156106e657600080fd5b506104fd601c5481565b3480156106fc57600080fd5b506104fd601d5481565b34801561071257600080fd5b506014546104609062010000900460ff1681565b34801561073257600080fd5b506104fd610741366004612e9d565b6001600160a01b031660009081526020819052604090205490565b34801561076857600080fd5b50610583610ec6565b34801561077d57600080fd5b5061058361078c366004612f24565b610efc565b34801561079d57600080fd5b50610460611025565b3480156107b257600080fd5b506105836107c1366004612f59565b611062565b3480156107d257600080fd5b506006546104d4906001600160a01b031681565b3480156107f257600080fd5b506104fd60185481565b34801561080857600080fd5b506104fd601b5481565b34801561081e57600080fd5b506105836110b7565b34801561083357600080fd5b506005546001600160a01b03166104d4565b34801561085157600080fd5b506104fd601e5481565b34801561086757600080fd5b50610583610876366004612f8e565b6110f8565b34801561088757600080fd5b5061042a61113e565b34801561089c57600080fd5b506105836108ab366004612f59565b61114d565b3480156108bc57600080fd5b506009546104d4906001600160a01b031681565b3480156108dc57600080fd5b506104fd60135481565b3480156108f257600080fd5b50610460610901366004612e71565b61122d565b34801561091257600080fd5b506104fd60115481565b34801561092857600080fd5b50610460610937366004612e71565b6112c6565b34801561094857600080fd5b506104fd60255481565b34801561095e57600080fd5b5061046061096d366004612e9d565b602a6020526000908152604090205460ff1681565b34801561098e57600080fd5b5060145461046090610100900460ff1681565b3480156109ad57600080fd5b506105836109bc366004612f59565b6112d3565b3480156109cd57600080fd5b506105836109dc366004612eba565b61135c565b3480156109ed57600080fd5b506016546104609060ff1681565b348015610a0757600080fd5b506104fd600b5481565b348015610a1d57600080fd5b506104fd601a5481565b348015610a3357600080fd5b50610460610a42366004612eba565b61142d565b348015610a5357600080fd5b506008546104d4906001600160a01b031681565b348015610a7357600080fd5b506007546104d4906001600160a01b031681565b348015610a9357600080fd5b506104fd60175481565b348015610aa957600080fd5b506104fd610ab8366004612fa9565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610aef57600080fd5b506104fd600c5481565b348015610b0557600080fd5b506104fd60215481565b348015610b1b57600080fd5b50610460611584565b348015610b3057600080fd5b506104fd60195481565b348015610b4657600080fd5b506104fd60225481565b348015610b5c57600080fd5b50610583610b6b366004612fe2565b6115c1565b348015610b7c57600080fd5b50600a546104d4906001600160a01b031681565b348015610b9c57600080fd5b50610583610bab366004612e9d565b61168b565b348015610bbc57600080fd5b506104fd601f5481565b348015610bd257600080fd5b506104fd600d5481565b348015610be857600080fd5b50610583610bf736600461301d565b611726565b348015610c0857600080fd5b506104fd60265481565b348015610c1e57600080fd5b50610460610c2d366004612eba565b6117af565b348015610c3e57600080fd5b50610583610c4d366004612fe2565b611a29565b606060038054610c619061308e565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8d9061308e565b8015610cda5780601f10610caf57610100808354040283529160200191610cda565b820191906000526020600020905b815481529060010190602001808311610cbd57829003601f168201915b5050505050905090565b6000610cf1338484611b0b565b50600192915050565b6005546001600160a01b03163314610d2d5760405162461bcd60e51b8152600401610d24906130c9565b60405180910390fd5b670de0b6b3a76400006103e8610d4260025490565b610d4d906001613114565b610d579190613133565b610d619190613133565b811015610dc85760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b6064820152608401610d24565b610dda81670de0b6b3a7640000613114565b600b5550565b6000610ded848484611c2f565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610e725760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610d24565b610e7f8533858403611b0b565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610cf1918590610ec1908690613155565b611b0b565b6005546001600160a01b03163314610ef05760405162461bcd60e51b8152600401610d24906130c9565b610efa60006125ce565b565b6005546001600160a01b03163314610f265760405162461bcd60e51b8152600401610d24906130c9565b610258831015610f945760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e207468604482015272616e206576657279203130206d696e7574657360681b6064820152608401610d24565b6103e88211158015610fa4575060015b6110095760405162461bcd60e51b815260206004820152603060248201527f4d75737420736574206175746f204c50206275726e2070657263656e7420626560448201526f747765656e20302520616e642031302560801b6064820152608401610d24565b601092909255600e55600f805460ff1916911515919091179055565b6005546000906001600160a01b031633146110525760405162461bcd60e51b8152600401610d24906130c9565b506014805460ff19169055600190565b6005546001600160a01b0316331461108c5760405162461bcd60e51b8152600401610d24906130c9565b6001600160a01b03919091166000908152602960205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146110e15760405162461bcd60e51b8152600401610d24906130c9565b6014805462ffff0019166201010017905542601155565b6005546001600160a01b031633146111225760405162461bcd60e51b8152600401610d24906130c9565b60148054911515620100000262ff000019909216919091179055565b606060048054610c619061308e565b6005546001600160a01b031633146111775760405162461bcd60e51b8152600401610d24906130c9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316141561121f5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610d24565b6112298282612620565b5050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156112af5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610d24565b6112bc3385858403611b0b565b5060019392505050565b6000610cf1338484611c2f565b6005546001600160a01b031633146112fd5760405162461bcd60e51b8152600401610d24906130c9565b6001600160a01b038216600081815260286020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146113865760405162461bcd60e51b8152600401610d24906130c9565b670de0b6b3a76400006103e861139b60025490565b6113a6906005613114565b6113b09190613133565b6113ba9190613133565b8110156114155760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b6064820152608401610d24565b61142781670de0b6b3a7640000613114565b600d5550565b6005546000906001600160a01b0316331461145a5760405162461bcd60e51b8152600401610d24906130c9565b620186a061146760025490565b611472906001613114565b61147c9190613133565b8210156114e95760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610d24565b6103e86114f560025490565b611500906005613114565b61150a9190613133565b8211156115765760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610d24565b50600c81905560015b919050565b6005546000906001600160a01b031633146115b15760405162461bcd60e51b8152600401610d24906130c9565b506016805460ff19169055600190565b6005546001600160a01b031633146115eb5760405162461bcd60e51b8152600401610d24906130c9565b60188590556019849055601a839055601b829055601c8190558082846116118789613155565b61161b9190613155565b6116259190613155565b61162f9190613155565b6017819055609610156116845760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313525206f72206c6573730000006044820152606401610d24565b5050505050565b6005546001600160a01b031633146116b55760405162461bcd60e51b8152600401610d24906130c9565b6001600160a01b03811661171a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610d24565b611723816125ce565b50565b6005546001600160a01b031633146117505760405162461bcd60e51b8152600401610d24906130c9565b600680546001600160a01b03199081166001600160a01b03978816179091556007805482169587169590951790945560088054851693861693909317909255600980548416918516919091179055600a80549092169216919091179055565b6005546000906001600160a01b031633146117dc5760405162461bcd60e51b8152600401610d24906130c9565b6012546013546117ec9190613155565b421161183a5760405162461bcd60e51b815260206004820181905260248201527f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e6973686044820152606401610d24565b6103e882111561189f5760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610d24565b426013556040516370a0823160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600482015260009030906370a0823190602401602060405180830381865afa15801561190a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192e919061316d565b905060006119486127106119428487611aec565b90611aff565b9050801561197d5761197d7f000000000000000000000000000000000000000000000000000000000000000061dead83612674565b60007f00000000000000000000000000000000000000000000000000000000000000009050806001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156119dd57600080fd5b505af11580156119f1573d6000803e3d6000fd5b50506040517f8462566617872a3fbab94534675218431ff9e204063ee3f4f43d965626a39abb925060009150a1506001949350505050565b6005546001600160a01b03163314611a535760405162461bcd60e51b8152600401610d24906130c9565b601e859055601f849055602083905560218290556022819055808284611a798789613155565b611a839190613155565b611a8d9190613155565b611a979190613155565b601d819055609610156116845760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313525206f72206c6573730000006044820152606401610d24565b6000611af88284613114565b9392505050565b6000611af88284613133565b6001600160a01b038316611b6d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610d24565b6001600160a01b038216611bce5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610d24565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611c555760405162461bcd60e51b8152600401610d2490613186565b6001600160a01b038216611c7b5760405162461bcd60e51b8152600401610d24906131cb565b80611c9157611c8c83836000612674565b505050565b60145460ff161561214e576005546001600160a01b03848116911614801590611cc857506005546001600160a01b03838116911614155b8015611cdc57506001600160a01b03821615155b8015611cf357506001600160a01b03821661dead14155b8015611d095750600554600160a01b900460ff16155b1561214e57601454610100900460ff16611da1576001600160a01b03831660009081526028602052604090205460ff1680611d5c57506001600160a01b03821660009081526028602052604090205460ff165b611da15760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610d24565b60165460ff1615611ee8576005546001600160a01b03838116911614801590611dfc57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b8015611e3a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b15611ee857326000908152601560205260409020544311611ed55760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610d24565b3260009081526015602052604090204390555b6001600160a01b0383166000908152602a602052604090205460ff168015611f2957506001600160a01b03821660009081526029602052604090205460ff16155b1561200d57600b54811115611f9e5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610d24565b600d546001600160a01b038316600090815260208190526040902054611fc49083613155565b11156120085760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610d24565b61214e565b6001600160a01b0382166000908152602a602052604090205460ff16801561204e57506001600160a01b03831660009081526029602052604090205460ff16155b156120c457600b548111156120085760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610d24565b6001600160a01b03821660009081526029602052604090205460ff1661214e57600d546001600160a01b03831660009081526020819052604090205461210a9083613155565b111561214e5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610d24565b30600090815260208190526040902054600c548110801590819061217a575060145462010000900460ff165b80156121905750600554600160a01b900460ff16155b80156121b557506001600160a01b0385166000908152602a602052604090205460ff16155b80156121da57506001600160a01b03851660009081526028602052604090205460ff16155b80156121ff57506001600160a01b03841660009081526028602052604090205460ff16155b1561222d576005805460ff60a01b1916600160a01b17905561221f6127c9565b6005805460ff60a01b191690555b600554600160a01b900460ff1615801561225f57506001600160a01b0384166000908152602a602052604090205460ff165b801561226d5750600f5460ff165b801561228857506010546011546122849190613155565b4210155b80156122ad57506001600160a01b03851660009081526028602052604090205460ff16155b156122bc576122ba612aab565b505b6005546001600160a01b03861660009081526028602052604090205460ff600160a01b90920482161591168061230a57506001600160a01b03851660009081526028602052604090205460ff165b15612313575060005b600081156125ba576001600160a01b0386166000908152602a602052604090205460ff16801561234557506000601d54115b1561245e576123656103e8611942601d5488611aec90919063ffffffff16565b9050601d54601e54826123789190613114565b6123829190613133565b602360008282546123939190613155565b9091555050601d54601f546123a89083613114565b6123b29190613133565b602460008282546123c39190613155565b9091555050601d546020546123d89083613114565b6123e29190613133565b602560008282546123f39190613155565b9091555050601d546021546124089083613114565b6124129190613133565b602660008282546124239190613155565b9091555050601d546022546124389083613114565b6124429190613133565b602760008282546124539190613155565b9091555061259c9050565b6001600160a01b0387166000908152602a602052604090205460ff16801561248857506000601754115b1561259c576124a86103e861194260175488611aec90919063ffffffff16565b9050601754601854826124bb9190613114565b6124c59190613133565b602360008282546124d69190613155565b90915550506017546019546124eb9083613114565b6124f59190613133565b602460008282546125069190613155565b9091555050601754601a5461251b9083613114565b6125259190613133565b602560008282546125369190613155565b9091555050601754601b5461254b9083613114565b6125559190613133565b602660008282546125669190613155565b9091555050601754601c5461257b9083613114565b6125859190613133565b602760008282546125969190613155565b90915550505b80156125ad576125ad873083612674565b6125b7818661320e565b94505b6125c5878787612674565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166000818152602a6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b03831661269a5760405162461bcd60e51b8152600401610d2490613186565b6001600160a01b0382166126c05760405162461bcd60e51b8152600401610d24906131cb565b6001600160a01b038316600090815260208190526040902054818110156127385760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610d24565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061276f908490613155565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127bb91815260200190565b60405180910390a350505050565b30600090815260208190526040812054905060006027546026546025546024546023546127f69190613155565b6128009190613155565b61280a9190613155565b6128149190613155565b90506000821580612823575081155b1561282d57505050565b600c5461283b906014613114565b83111561285357600c54612850906014613114565b92505b4761285d84612c3b565b60006128694783612dfb565b905060006128868561194260235485611aec90919063ffffffff16565b905060006128a38661194260245486611aec90919063ffffffff16565b905060006128c08761194260255487611aec90919063ffffffff16565b905060006128dd8861194260265488611aec90919063ffffffff16565b6000602381905560248190556025819055602681905560278190556006546040519293506001600160a01b031691869181818185875af1925050503d8060008114612944576040519150601f19603f3d011682016040523d82523d6000602084013e612949565b606091505b50506007546040519198506001600160a01b0316908490600081818185875af1925050503d8060008114612999576040519150601f19603f3d011682016040523d82523d6000602084013e61299e565b606091505b50506008546040519198506001600160a01b0316908390600081818185875af1925050503d80600081146129ee576040519150601f19603f3d011682016040523d82523d6000602084013e6129f3565b606091505b50506009546040519198506001600160a01b0316908290600081818185875af1925050503d8060008114612a43576040519150601f19603f3d011682016040523d82523d6000602084013e612a48565b606091505b5050600a546040519198506001600160a01b0316904790600081818185875af1925050503d8060008114612a98576040519150601f19603f3d011682016040523d82523d6000602084013e612a9d565b606091505b505050505050505050505050565b426011556040516370a0823160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166004820152600090819030906370a0823190602401602060405180830381865afa158015612b18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3c919061316d565b90506000612b5b612710611942600e5485611aec90919063ffffffff16565b90508015612b9057612b907f000000000000000000000000000000000000000000000000000000000000000061dead83612674565b60007f00000000000000000000000000000000000000000000000000000000000000009050806001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612bf057600080fd5b505af1158015612c04573d6000803e3d6000fd5b50506040517f454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d925060009150a16001935050505090565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612c7057612c70613225565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d12919061323b565b81600181518110612d2557612d25613225565b60200260200101906001600160a01b031690816001600160a01b031681525050612d70307f000000000000000000000000000000000000000000000000000000000000000084611b0b565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790612dc5908590600090869030904290600401613258565b600060405180830381600087803b158015612ddf57600080fd5b505af1158015612df3573d6000803e3d6000fd5b505050505050565b6000611af8828461320e565b600060208083528351808285015260005b81811015612e3457858101830151858201604001528201612e18565b81811115612e46576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461172357600080fd5b60008060408385031215612e8457600080fd5b8235612e8f81612e5c565b946020939093013593505050565b600060208284031215612eaf57600080fd5b8135611af881612e5c565b600060208284031215612ecc57600080fd5b5035919050565b600080600060608486031215612ee857600080fd5b8335612ef381612e5c565b92506020840135612f0381612e5c565b929592945050506040919091013590565b8035801515811461157f57600080fd5b600080600060608486031215612f3957600080fd5b8335925060208401359150612f5060408501612f14565b90509250925092565b60008060408385031215612f6c57600080fd5b8235612f7781612e5c565b9150612f8560208401612f14565b90509250929050565b600060208284031215612fa057600080fd5b611af882612f14565b60008060408385031215612fbc57600080fd5b8235612fc781612e5c565b91506020830135612fd781612e5c565b809150509250929050565b600080600080600060a08688031215612ffa57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600080600080600060a0868803121561303557600080fd5b853561304081612e5c565b9450602086013561305081612e5c565b9350604086013561306081612e5c565b9250606086013561307081612e5c565b9150608086013561308081612e5c565b809150509295509295909350565b600181811c908216806130a257607f821691505b602082108114156130c357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561312e5761312e6130fe565b500290565b60008261315057634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115613168576131686130fe565b500190565b60006020828403121561317f57600080fd5b5051919050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600082821015613220576132206130fe565b500390565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561324d57600080fd5b8151611af881612e5c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156132a85784516001600160a01b031683529383019391830191600101613283565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a54bf541bf5b6ef7c09f276862854d4b81d3d60f89bfc8da8a0a2a1306e4edc964736f6c634300080a00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65720000000000000000000000005e5bb2bd80b066b86f55276ff7d38f246896e835000000000000000000000000502ab8b126d9a4f2cb311630b61e28e6254840ce00000000000000000000000063a77422184ae4c6485e874edfff9f01506abea20000000000000000000000004dc09dc1a0f1182fecbc1b211036797366fea8f3000000000000000000000000c10d94731b72b7cf939b975854ba26347d007e770000000000000000000000004dc09dc1a0f1182fecbc1b211036797366fea8f3

Deployed Bytecode

0x6080604052600436106104095760003560e01c8063924de9b711610213578063d2f570c911610123578063f170d7fd116100ab578063f8b45b051161007a578063f8b45b0514610bc6578063fd5ea1de14610bdc578063fda8375b14610bfc578063fe72b27a14610c12578063ff935af614610c3257600080fd5b8063f170d7fd14610b50578063f287eada14610b70578063f2fde38b14610b90578063f637434214610bb057600080fd5b8063e2f45605116100f2578063e2f4560514610ae3578063e3c511d914610af9578063e884f26014610b0f578063f11a24d314610b24578063f15d4e5d14610b3a57600080fd5b8063d2f570c914610a47578063d469801614610a67578063d85ba06314610a87578063dd62ed3e14610a9d57600080fd5b8063b56bb00d116101a6578063c18bc19511610175578063c18bc195146109c1578063c876d0b9146109e1578063c8c8ebe4146109fb578063ccf16d4b14610a11578063d257b34f14610a2757600080fd5b8063b56bb00d1461093c578063b62496f514610952578063bbc0c74214610982578063c0246668146109a157600080fd5b80639ec22c0e116101e25780639ec22c0e146108d0578063a457c2d7146108e6578063a4c82a0014610906578063a9059cbb1461091c57600080fd5b8063924de9b71461085b57806395d89b411461087b5780639a7a23d6146108905780639d2a740f146108b057600080fd5b806349bd5a5e11610319578063730c1888116102a15780637bce5a04116102705780637bce5a04146107e657806385a0d7b6146107fc5780638a8c523c146108125780638da5cb5b14610827578063921369131461084557600080fd5b8063730c188814610771578063751039fc146107915780637571336a146107a657806375f0a874146107c657600080fd5b806368e9b874116102e857806368e9b874146106da5780636a486a8e146106f05780636ddd17131461070657806370a0823114610726578063715018a61461075c57600080fd5b806349bd5a5e1461063d5780634a62bb65146106715780634fbee1931461068b5780635b7cf4d6146106c457600080fd5b80631f3fed8f1161039c5780632c3e486c1161036b5780632c3e486c146105bb5780632e82f1a0146105d1578063313ce567146105eb578063360e987814610607578063395093511461061d57600080fd5b80631f3fed8f1461054d578063203e727e1461056357806323b872dd1461058557806327c8f835146105a557600080fd5b806318160ddd116103d857806318160ddd146104ec578063184c16c51461050b578063199ffc72146105215780631a8145bb1461053757600080fd5b806306fdde0314610415578063095ea7b31461044057806310d5de53146104705780631694505e146104a057600080fd5b3661041057005b600080fd5b34801561042157600080fd5b5061042a610c52565b6040516104379190612e07565b60405180910390f35b34801561044c57600080fd5b5061046061045b366004612e71565b610ce4565b6040519015158152602001610437565b34801561047c57600080fd5b5061046061048b366004612e9d565b60296020526000908152604090205460ff1681565b3480156104ac57600080fd5b506104d47f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610437565b3480156104f857600080fd5b506002545b604051908152602001610437565b34801561051757600080fd5b506104fd60125481565b34801561052d57600080fd5b506104fd600e5481565b34801561054357600080fd5b506104fd60245481565b34801561055957600080fd5b506104fd60235481565b34801561056f57600080fd5b5061058361057e366004612eba565b610cfa565b005b34801561059157600080fd5b506104606105a0366004612ed3565b610de0565b3480156105b157600080fd5b506104d461dead81565b3480156105c757600080fd5b506104fd60105481565b3480156105dd57600080fd5b50600f546104609060ff1681565b3480156105f757600080fd5b5060405160128152602001610437565b34801561061357600080fd5b506104fd60275481565b34801561062957600080fd5b50610460610638366004612e71565b610e8a565b34801561064957600080fd5b506104d47f0000000000000000000000005bba8badd051e0ca8187cda7d5d1a12d866effe581565b34801561067d57600080fd5b506014546104609060ff1681565b34801561069757600080fd5b506104606106a6366004612e9d565b6001600160a01b031660009081526028602052604090205460ff1690565b3480156106d057600080fd5b506104fd60205481565b3480156106e657600080fd5b506104fd601c5481565b3480156106fc57600080fd5b506104fd601d5481565b34801561071257600080fd5b506014546104609062010000900460ff1681565b34801561073257600080fd5b506104fd610741366004612e9d565b6001600160a01b031660009081526020819052604090205490565b34801561076857600080fd5b50610583610ec6565b34801561077d57600080fd5b5061058361078c366004612f24565b610efc565b34801561079d57600080fd5b50610460611025565b3480156107b257600080fd5b506105836107c1366004612f59565b611062565b3480156107d257600080fd5b506006546104d4906001600160a01b031681565b3480156107f257600080fd5b506104fd60185481565b34801561080857600080fd5b506104fd601b5481565b34801561081e57600080fd5b506105836110b7565b34801561083357600080fd5b506005546001600160a01b03166104d4565b34801561085157600080fd5b506104fd601e5481565b34801561086757600080fd5b50610583610876366004612f8e565b6110f8565b34801561088757600080fd5b5061042a61113e565b34801561089c57600080fd5b506105836108ab366004612f59565b61114d565b3480156108bc57600080fd5b506009546104d4906001600160a01b031681565b3480156108dc57600080fd5b506104fd60135481565b3480156108f257600080fd5b50610460610901366004612e71565b61122d565b34801561091257600080fd5b506104fd60115481565b34801561092857600080fd5b50610460610937366004612e71565b6112c6565b34801561094857600080fd5b506104fd60255481565b34801561095e57600080fd5b5061046061096d366004612e9d565b602a6020526000908152604090205460ff1681565b34801561098e57600080fd5b5060145461046090610100900460ff1681565b3480156109ad57600080fd5b506105836109bc366004612f59565b6112d3565b3480156109cd57600080fd5b506105836109dc366004612eba565b61135c565b3480156109ed57600080fd5b506016546104609060ff1681565b348015610a0757600080fd5b506104fd600b5481565b348015610a1d57600080fd5b506104fd601a5481565b348015610a3357600080fd5b50610460610a42366004612eba565b61142d565b348015610a5357600080fd5b506008546104d4906001600160a01b031681565b348015610a7357600080fd5b506007546104d4906001600160a01b031681565b348015610a9357600080fd5b506104fd60175481565b348015610aa957600080fd5b506104fd610ab8366004612fa9565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610aef57600080fd5b506104fd600c5481565b348015610b0557600080fd5b506104fd60215481565b348015610b1b57600080fd5b50610460611584565b348015610b3057600080fd5b506104fd60195481565b348015610b4657600080fd5b506104fd60225481565b348015610b5c57600080fd5b50610583610b6b366004612fe2565b6115c1565b348015610b7c57600080fd5b50600a546104d4906001600160a01b031681565b348015610b9c57600080fd5b50610583610bab366004612e9d565b61168b565b348015610bbc57600080fd5b506104fd601f5481565b348015610bd257600080fd5b506104fd600d5481565b348015610be857600080fd5b50610583610bf736600461301d565b611726565b348015610c0857600080fd5b506104fd60265481565b348015610c1e57600080fd5b50610460610c2d366004612eba565b6117af565b348015610c3e57600080fd5b50610583610c4d366004612fe2565b611a29565b606060038054610c619061308e565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8d9061308e565b8015610cda5780601f10610caf57610100808354040283529160200191610cda565b820191906000526020600020905b815481529060010190602001808311610cbd57829003601f168201915b5050505050905090565b6000610cf1338484611b0b565b50600192915050565b6005546001600160a01b03163314610d2d5760405162461bcd60e51b8152600401610d24906130c9565b60405180910390fd5b670de0b6b3a76400006103e8610d4260025490565b610d4d906001613114565b610d579190613133565b610d619190613133565b811015610dc85760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b6064820152608401610d24565b610dda81670de0b6b3a7640000613114565b600b5550565b6000610ded848484611c2f565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610e725760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610d24565b610e7f8533858403611b0b565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610cf1918590610ec1908690613155565b611b0b565b6005546001600160a01b03163314610ef05760405162461bcd60e51b8152600401610d24906130c9565b610efa60006125ce565b565b6005546001600160a01b03163314610f265760405162461bcd60e51b8152600401610d24906130c9565b610258831015610f945760405162461bcd60e51b815260206004820152603360248201527f63616e6e6f7420736574206275796261636b206d6f7265206f6674656e207468604482015272616e206576657279203130206d696e7574657360681b6064820152608401610d24565b6103e88211158015610fa4575060015b6110095760405162461bcd60e51b815260206004820152603060248201527f4d75737420736574206175746f204c50206275726e2070657263656e7420626560448201526f747765656e20302520616e642031302560801b6064820152608401610d24565b601092909255600e55600f805460ff1916911515919091179055565b6005546000906001600160a01b031633146110525760405162461bcd60e51b8152600401610d24906130c9565b506014805460ff19169055600190565b6005546001600160a01b0316331461108c5760405162461bcd60e51b8152600401610d24906130c9565b6001600160a01b03919091166000908152602960205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146110e15760405162461bcd60e51b8152600401610d24906130c9565b6014805462ffff0019166201010017905542601155565b6005546001600160a01b031633146111225760405162461bcd60e51b8152600401610d24906130c9565b60148054911515620100000262ff000019909216919091179055565b606060048054610c619061308e565b6005546001600160a01b031633146111775760405162461bcd60e51b8152600401610d24906130c9565b7f0000000000000000000000005bba8badd051e0ca8187cda7d5d1a12d866effe56001600160a01b0316826001600160a01b0316141561121f5760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610d24565b6112298282612620565b5050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156112af5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610d24565b6112bc3385858403611b0b565b5060019392505050565b6000610cf1338484611c2f565b6005546001600160a01b031633146112fd5760405162461bcd60e51b8152600401610d24906130c9565b6001600160a01b038216600081815260286020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146113865760405162461bcd60e51b8152600401610d24906130c9565b670de0b6b3a76400006103e861139b60025490565b6113a6906005613114565b6113b09190613133565b6113ba9190613133565b8110156114155760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b6064820152608401610d24565b61142781670de0b6b3a7640000613114565b600d5550565b6005546000906001600160a01b0316331461145a5760405162461bcd60e51b8152600401610d24906130c9565b620186a061146760025490565b611472906001613114565b61147c9190613133565b8210156114e95760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610d24565b6103e86114f560025490565b611500906005613114565b61150a9190613133565b8211156115765760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610d24565b50600c81905560015b919050565b6005546000906001600160a01b031633146115b15760405162461bcd60e51b8152600401610d24906130c9565b506016805460ff19169055600190565b6005546001600160a01b031633146115eb5760405162461bcd60e51b8152600401610d24906130c9565b60188590556019849055601a839055601b829055601c8190558082846116118789613155565b61161b9190613155565b6116259190613155565b61162f9190613155565b6017819055609610156116845760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313525206f72206c6573730000006044820152606401610d24565b5050505050565b6005546001600160a01b031633146116b55760405162461bcd60e51b8152600401610d24906130c9565b6001600160a01b03811661171a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610d24565b611723816125ce565b50565b6005546001600160a01b031633146117505760405162461bcd60e51b8152600401610d24906130c9565b600680546001600160a01b03199081166001600160a01b03978816179091556007805482169587169590951790945560088054851693861693909317909255600980548416918516919091179055600a80549092169216919091179055565b6005546000906001600160a01b031633146117dc5760405162461bcd60e51b8152600401610d24906130c9565b6012546013546117ec9190613155565b421161183a5760405162461bcd60e51b815260206004820181905260248201527f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e6973686044820152606401610d24565b6103e882111561189f5760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610d24565b426013556040516370a0823160e01b81526001600160a01b037f0000000000000000000000005bba8badd051e0ca8187cda7d5d1a12d866effe516600482015260009030906370a0823190602401602060405180830381865afa15801561190a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192e919061316d565b905060006119486127106119428487611aec565b90611aff565b9050801561197d5761197d7f0000000000000000000000005bba8badd051e0ca8187cda7d5d1a12d866effe561dead83612674565b60007f0000000000000000000000005bba8badd051e0ca8187cda7d5d1a12d866effe59050806001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156119dd57600080fd5b505af11580156119f1573d6000803e3d6000fd5b50506040517f8462566617872a3fbab94534675218431ff9e204063ee3f4f43d965626a39abb925060009150a1506001949350505050565b6005546001600160a01b03163314611a535760405162461bcd60e51b8152600401610d24906130c9565b601e859055601f849055602083905560218290556022819055808284611a798789613155565b611a839190613155565b611a8d9190613155565b611a979190613155565b601d819055609610156116845760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313525206f72206c6573730000006044820152606401610d24565b6000611af88284613114565b9392505050565b6000611af88284613133565b6001600160a01b038316611b6d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610d24565b6001600160a01b038216611bce5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610d24565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611c555760405162461bcd60e51b8152600401610d2490613186565b6001600160a01b038216611c7b5760405162461bcd60e51b8152600401610d24906131cb565b80611c9157611c8c83836000612674565b505050565b60145460ff161561214e576005546001600160a01b03848116911614801590611cc857506005546001600160a01b03838116911614155b8015611cdc57506001600160a01b03821615155b8015611cf357506001600160a01b03821661dead14155b8015611d095750600554600160a01b900460ff16155b1561214e57601454610100900460ff16611da1576001600160a01b03831660009081526028602052604090205460ff1680611d5c57506001600160a01b03821660009081526028602052604090205460ff165b611da15760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610d24565b60165460ff1615611ee8576005546001600160a01b03838116911614801590611dfc57507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316826001600160a01b031614155b8015611e3a57507f0000000000000000000000005bba8badd051e0ca8187cda7d5d1a12d866effe56001600160a01b0316826001600160a01b031614155b15611ee857326000908152601560205260409020544311611ed55760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610d24565b3260009081526015602052604090204390555b6001600160a01b0383166000908152602a602052604090205460ff168015611f2957506001600160a01b03821660009081526029602052604090205460ff16155b1561200d57600b54811115611f9e5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610d24565b600d546001600160a01b038316600090815260208190526040902054611fc49083613155565b11156120085760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610d24565b61214e565b6001600160a01b0382166000908152602a602052604090205460ff16801561204e57506001600160a01b03831660009081526029602052604090205460ff16155b156120c457600b548111156120085760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610d24565b6001600160a01b03821660009081526029602052604090205460ff1661214e57600d546001600160a01b03831660009081526020819052604090205461210a9083613155565b111561214e5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610d24565b30600090815260208190526040902054600c548110801590819061217a575060145462010000900460ff165b80156121905750600554600160a01b900460ff16155b80156121b557506001600160a01b0385166000908152602a602052604090205460ff16155b80156121da57506001600160a01b03851660009081526028602052604090205460ff16155b80156121ff57506001600160a01b03841660009081526028602052604090205460ff16155b1561222d576005805460ff60a01b1916600160a01b17905561221f6127c9565b6005805460ff60a01b191690555b600554600160a01b900460ff1615801561225f57506001600160a01b0384166000908152602a602052604090205460ff165b801561226d5750600f5460ff165b801561228857506010546011546122849190613155565b4210155b80156122ad57506001600160a01b03851660009081526028602052604090205460ff16155b156122bc576122ba612aab565b505b6005546001600160a01b03861660009081526028602052604090205460ff600160a01b90920482161591168061230a57506001600160a01b03851660009081526028602052604090205460ff165b15612313575060005b600081156125ba576001600160a01b0386166000908152602a602052604090205460ff16801561234557506000601d54115b1561245e576123656103e8611942601d5488611aec90919063ffffffff16565b9050601d54601e54826123789190613114565b6123829190613133565b602360008282546123939190613155565b9091555050601d54601f546123a89083613114565b6123b29190613133565b602460008282546123c39190613155565b9091555050601d546020546123d89083613114565b6123e29190613133565b602560008282546123f39190613155565b9091555050601d546021546124089083613114565b6124129190613133565b602660008282546124239190613155565b9091555050601d546022546124389083613114565b6124429190613133565b602760008282546124539190613155565b9091555061259c9050565b6001600160a01b0387166000908152602a602052604090205460ff16801561248857506000601754115b1561259c576124a86103e861194260175488611aec90919063ffffffff16565b9050601754601854826124bb9190613114565b6124c59190613133565b602360008282546124d69190613155565b90915550506017546019546124eb9083613114565b6124f59190613133565b602460008282546125069190613155565b9091555050601754601a5461251b9083613114565b6125259190613133565b602560008282546125369190613155565b9091555050601754601b5461254b9083613114565b6125559190613133565b602660008282546125669190613155565b9091555050601754601c5461257b9083613114565b6125859190613133565b602760008282546125969190613155565b90915550505b80156125ad576125ad873083612674565b6125b7818661320e565b94505b6125c5878787612674565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166000818152602a6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b03831661269a5760405162461bcd60e51b8152600401610d2490613186565b6001600160a01b0382166126c05760405162461bcd60e51b8152600401610d24906131cb565b6001600160a01b038316600090815260208190526040902054818110156127385760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610d24565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061276f908490613155565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127bb91815260200190565b60405180910390a350505050565b30600090815260208190526040812054905060006027546026546025546024546023546127f69190613155565b6128009190613155565b61280a9190613155565b6128149190613155565b90506000821580612823575081155b1561282d57505050565b600c5461283b906014613114565b83111561285357600c54612850906014613114565b92505b4761285d84612c3b565b60006128694783612dfb565b905060006128868561194260235485611aec90919063ffffffff16565b905060006128a38661194260245486611aec90919063ffffffff16565b905060006128c08761194260255487611aec90919063ffffffff16565b905060006128dd8861194260265488611aec90919063ffffffff16565b6000602381905560248190556025819055602681905560278190556006546040519293506001600160a01b031691869181818185875af1925050503d8060008114612944576040519150601f19603f3d011682016040523d82523d6000602084013e612949565b606091505b50506007546040519198506001600160a01b0316908490600081818185875af1925050503d8060008114612999576040519150601f19603f3d011682016040523d82523d6000602084013e61299e565b606091505b50506008546040519198506001600160a01b0316908390600081818185875af1925050503d80600081146129ee576040519150601f19603f3d011682016040523d82523d6000602084013e6129f3565b606091505b50506009546040519198506001600160a01b0316908290600081818185875af1925050503d8060008114612a43576040519150601f19603f3d011682016040523d82523d6000602084013e612a48565b606091505b5050600a546040519198506001600160a01b0316904790600081818185875af1925050503d8060008114612a98576040519150601f19603f3d011682016040523d82523d6000602084013e612a9d565b606091505b505050505050505050505050565b426011556040516370a0823160e01b81526001600160a01b037f0000000000000000000000005bba8badd051e0ca8187cda7d5d1a12d866effe5166004820152600090819030906370a0823190602401602060405180830381865afa158015612b18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3c919061316d565b90506000612b5b612710611942600e5485611aec90919063ffffffff16565b90508015612b9057612b907f0000000000000000000000005bba8badd051e0ca8187cda7d5d1a12d866effe561dead83612674565b60007f0000000000000000000000005bba8badd051e0ca8187cda7d5d1a12d866effe59050806001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612bf057600080fd5b505af1158015612c04573d6000803e3d6000fd5b50506040517f454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d925060009150a16001935050505090565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612c7057612c70613225565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d12919061323b565b81600181518110612d2557612d25613225565b60200260200101906001600160a01b031690816001600160a01b031681525050612d70307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611b0b565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790612dc5908590600090869030904290600401613258565b600060405180830381600087803b158015612ddf57600080fd5b505af1158015612df3573d6000803e3d6000fd5b505050505050565b6000611af8828461320e565b600060208083528351808285015260005b81811015612e3457858101830151858201604001528201612e18565b81811115612e46576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461172357600080fd5b60008060408385031215612e8457600080fd5b8235612e8f81612e5c565b946020939093013593505050565b600060208284031215612eaf57600080fd5b8135611af881612e5c565b600060208284031215612ecc57600080fd5b5035919050565b600080600060608486031215612ee857600080fd5b8335612ef381612e5c565b92506020840135612f0381612e5c565b929592945050506040919091013590565b8035801515811461157f57600080fd5b600080600060608486031215612f3957600080fd5b8335925060208401359150612f5060408501612f14565b90509250925092565b60008060408385031215612f6c57600080fd5b8235612f7781612e5c565b9150612f8560208401612f14565b90509250929050565b600060208284031215612fa057600080fd5b611af882612f14565b60008060408385031215612fbc57600080fd5b8235612fc781612e5c565b91506020830135612fd781612e5c565b809150509250929050565b600080600080600060a08688031215612ffa57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600080600080600060a0868803121561303557600080fd5b853561304081612e5c565b9450602086013561305081612e5c565b9350604086013561306081612e5c565b9250606086013561307081612e5c565b9150608086013561308081612e5c565b809150509295509295909350565b600181811c908216806130a257607f821691505b602082108114156130c357634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561312e5761312e6130fe565b500290565b60008261315057634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115613168576131686130fe565b500190565b60006020828403121561317f57600080fd5b5051919050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b600082821015613220576132206130fe565b500390565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561324d57600080fd5b8151611af881612e5c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156132a85784516001600160a01b031683529383019391830191600101613283565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a54bf541bf5b6ef7c09f276862854d4b81d3d60f89bfc8da8a0a2a1306e4edc964736f6c634300080a0033

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

0000000000000000000000005e5bb2bd80b066b86f55276ff7d38f246896e835000000000000000000000000502ab8b126d9a4f2cb311630b61e28e6254840ce00000000000000000000000063a77422184ae4c6485e874edfff9f01506abea20000000000000000000000004dc09dc1a0f1182fecbc1b211036797366fea8f3000000000000000000000000c10d94731b72b7cf939b975854ba26347d007e770000000000000000000000004dc09dc1a0f1182fecbc1b211036797366fea8f3

-----Decoded View---------------
Arg [0] : _marketingWallet (address): 0x5e5Bb2BD80b066b86f55276Ff7D38f246896E835
Arg [1] : _liquidityWallet (address): 0x502AB8B126D9a4f2cB311630b61e28E6254840CE
Arg [2] : _team1Wallet (address): 0x63a77422184Ae4c6485e874EDfFF9f01506ABEA2
Arg [3] : _team2Wallet (address): 0x4Dc09Dc1A0F1182fecbc1b211036797366fEA8f3
Arg [4] : _donationsWallet (address): 0xc10D94731B72B7CF939B975854bA26347d007E77
Arg [5] : _OwnerWallet (address): 0x4Dc09Dc1A0F1182fecbc1b211036797366fEA8f3

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000005e5bb2bd80b066b86f55276ff7d38f246896e835
Arg [1] : 000000000000000000000000502ab8b126d9a4f2cb311630b61e28e6254840ce
Arg [2] : 00000000000000000000000063a77422184ae4c6485e874edfff9f01506abea2
Arg [3] : 0000000000000000000000004dc09dc1a0f1182fecbc1b211036797366fea8f3
Arg [4] : 000000000000000000000000c10d94731b72b7cf939b975854ba26347d007e77
Arg [5] : 0000000000000000000000004dc09dc1a0f1182fecbc1b211036797366fea8f3


Deployed Bytecode Sourcemap

30566:19015:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8473:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10640:169;;;;;;;;;;-1:-1:-1;10640:169:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;10640:169:0;1072:187:1;32523:63:0;;;;;;;;;;-1:-1:-1;32523:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;30641:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1707:32:1;;;1689:51;;1677:2;1662:18;30641:51:0;1516:230:1;9593:108:0;;;;;;;;;;-1:-1:-1;9681:12:0;;9593:108;;;1897:25:1;;;1885:2;1870:18;9593:108:0;1751:177:1;31313:47:0;;;;;;;;;;;;;;;;31130:36;;;;;;;;;;;;;;;;32229:33;;;;;;;;;;;;;;;;32189;;;;;;;;;;;;;;;;36169:275;;;;;;;;;;-1:-1:-1;36169:275:0;;;;;:::i;:::-;;:::i;:::-;;11291:492;;;;;;;;;;-1:-1:-1;11291:492:0;;;;;:::i;:::-;;:::i;30744:53::-;;;;;;;;;;;;30790:6;30744:53;;31225:43;;;;;;;;;;;;;;;;31186:32;;;;;;;;;;-1:-1:-1;31186:32:0;;;;;;;;9435:93;;;;;;;;;;-1:-1:-1;9435:93:0;;9518:2;2929:36:1;;2917:2;2902:18;9435:93:0;2787:184:1;32341:33:0;;;;;;;;;;;;;;;;12192:215;;;;;;;;;;-1:-1:-1;12192:215:0;;;;;:::i;:::-;;:::i;30699:38::-;;;;;;;;;;;;;;;31411:33;;;;;;;;;;-1:-1:-1;31411:33:0;;;;;;;;39499:126;;;;;;;;;;-1:-1:-1;39499:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;39589:28:0;39565:4;39589:28;;;:19;:28;;;;;;;;;39499:126;32081:27;;;;;;;;;;;;;;;;31931:30;;;;;;;;;;;;;;;;31970:28;;;;;;;;;;;;;;;;31491:31;;;;;;;;;;-1:-1:-1;31491:31:0;;;;;;;;;;;9764:127;;;;;;;;;;-1:-1:-1;9764:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;9865:18:0;9838:7;9865:18;;;;;;;;;;;;9764:127;2385:103;;;;;;;;;;;;;:::i;47163:555::-;;;;;;;;;;-1:-1:-1;47163:555:0;;;;;:::i;:::-;;:::i;35277:121::-;;;;;;;;;;;;;:::i;36716:167::-;;;;;;;;;;-1:-1:-1;36716:167:0;;;;;:::i;:::-;;:::i;30836:30::-;;;;;;;;;;-1:-1:-1;30836:30:0;;;;-1:-1:-1;;;;;30836:30:0;;;31791;;;;;;;;;;;;;;;;31898:26;;;;;;;;;;;;;;;;35070:155;;;;;;;;;;;;;:::i;1734:87::-;;;;;;;;;;-1:-1:-1;1807:6:0;;-1:-1:-1;;;;;1807:6:0;1734:87;;32005:31;;;;;;;;;;;;;;;;36979:100;;;;;;;;;;-1:-1:-1;36979:100:0;;;;;:::i;:::-;;:::i;8692:104::-;;;;;;;;;;;;;:::i;38532:304::-;;;;;;;;;;-1:-1:-1;38532:304:0;;;;;:::i;:::-;;:::i;30943:26::-;;;;;;;;;;-1:-1:-1;30943:26:0;;;;-1:-1:-1;;;;;30943:26:0;;;31367:35;;;;;;;;;;;;;;;;12910:413;;;;;;;;;;-1:-1:-1;12910:413:0;;;;;:::i;:::-;;:::i;31275:29::-;;;;;;;;;;;;;;;;10104:175;;;;;;;;;;-1:-1:-1;10104:175:0;;;;;:::i;:::-;;:::i;32269:29::-;;;;;;;;;;;;;;;;32744:57;;;;;;;;;;-1:-1:-1;32744:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;31451:33;;;;;;;;;;-1:-1:-1;31451:33:0;;;;;;;;;;;38342:182;;;;;;;;;;-1:-1:-1;38342:182:0;;;;;:::i;:::-;;:::i;36452:256::-;;;;;;;;;;-1:-1:-1;36452:256:0;;;;;:::i;:::-;;:::i;31709:39::-;;;;;;;;;;-1:-1:-1;31709:39:0;;;;;;;;31015:35;;;;;;;;;;;;;;;;31865:26;;;;;;;;;;;;;;;;35664:497;;;;;;;;;;-1:-1:-1;35664:497:0;;;;;:::i;:::-;;:::i;30910:26::-;;;;;;;;;;-1:-1:-1;30910:26:0;;;;-1:-1:-1;;;;;30910:26:0;;;30873:30;;;;;;;;;;-1:-1:-1;30873:30:0;;;;-1:-1:-1;;;;;30873:30:0;;;31757:27;;;;;;;;;;;;;;;;10342:151;;;;;;;;;;-1:-1:-1;10342:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;10458:18:0;;;10431:7;10458:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10342:151;31057:33;;;;;;;;;;;;;;;;32115:27;;;;;;;;;;;;;;;;35459:135;;;;;;;;;;;;;:::i;31828:30::-;;;;;;;;;;;;;;;;32149:31;;;;;;;;;;;;;;;;37087:608;;;;;;;;;;-1:-1:-1;37087:608:0;;;;;:::i;:::-;;:::i;30976:30::-;;;;;;;;;;-1:-1:-1;30976:30:0;;;;-1:-1:-1;;;;;30976:30:0;;;2643:201;;;;;;;;;;-1:-1:-1;2643:201:0;;;;;:::i;:::-;;:::i;32043:31::-;;;;;;;;;;;;;;;;31097:24;;;;;;;;;;;;;;;;39040:451;;;;;;;;;;-1:-1:-1;39040:451:0;;;;;:::i;:::-;;:::i;32305:29::-;;;;;;;;;;;;;;;;48522:1056;;;;;;;;;;-1:-1:-1;48522:1056:0;;;;;:::i;:::-;;:::i;37703:631::-;;;;;;;;;;-1:-1:-1;37703:631:0;;;;;:::i;:::-;;:::i;8473:100::-;8527:13;8560:5;8553:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8473:100;:::o;10640:169::-;10723:4;10740:39;681:10;10763:7;10772:6;10740:8;:39::i;:::-;-1:-1:-1;10797:4:0;10640:169;;;;:::o;36169:275::-;1807:6;;-1:-1:-1;;;;;1807:6:0;681:10;1954:23;1946:68;;;;-1:-1:-1;;;1946:68:0;;;;;;;:::i;:::-;;;;;;;;;36306:4:::1;36298;36277:13;9681:12:::0;;;9593:108;36277:13:::1;:17;::::0;36293:1:::1;36277:17;:::i;:::-;36276:26;;;;:::i;:::-;36275:35;;;;:::i;:::-;36265:6;:45;;36243:142;;;::::0;-1:-1:-1;;;36243:142:0;;7112:2:1;36243:142:0::1;::::0;::::1;7094:21:1::0;7151:2;7131:18;;;7124:30;7190:34;7170:18;;;7163:62;-1:-1:-1;;;7241:18:1;;;7234:45;7296:19;;36243:142:0::1;6910:411:1::0;36243:142:0::1;36419:17;:6:::0;36429::::1;36419:17;:::i;:::-;36396:20;:40:::0;-1:-1:-1;36169:275:0:o;11291:492::-;11431:4;11448:36;11458:6;11466:9;11477:6;11448:9;:36::i;:::-;-1:-1:-1;;;;;11524:19:0;;11497:24;11524:19;;;:11;:19;;;;;;;;681:10;11524:33;;;;;;;;11576:26;;;;11568:79;;;;-1:-1:-1;;;11568:79:0;;7528:2:1;11568:79:0;;;7510:21:1;7567:2;7547:18;;;7540:30;7606:34;7586:18;;;7579:62;-1:-1:-1;;;7657:18:1;;;7650:38;7705:19;;11568:79:0;7326:404:1;11568:79:0;11683:57;11692:6;681:10;11733:6;11714:16;:25;11683:8;:57::i;:::-;-1:-1:-1;11771:4:0;;11291:492;-1:-1:-1;;;;11291:492:0:o;12192:215::-;681:10;12280:4;12329:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12329:34:0;;;;;;;;;;12280:4;;12297:80;;12320:7;;12329:47;;12366:10;;12329:47;:::i;:::-;12297:8;:80::i;2385:103::-;1807:6;;-1:-1:-1;;;;;1807:6:0;681:10;1954:23;1946:68;;;;-1:-1:-1;;;1946:68:0;;;;;;;:::i;:::-;2450:30:::1;2477:1;2450:18;:30::i;:::-;2385:103::o:0;47163:555::-;1807:6;;-1:-1:-1;;;;;1807:6:0;681:10;1954:23;1946:68;;;;-1:-1:-1;;;1946:68:0;;;;;;;:::i;:::-;47365:3:::1;47342:19;:26;;47320:127;;;::::0;-1:-1:-1;;;47320:127:0;;8070:2:1;47320:127:0::1;::::0;::::1;8052:21:1::0;8109:2;8089:18;;;8082:30;8148:34;8128:18;;;8121:62;-1:-1:-1;;;8199:18:1;;;8192:49;8258:19;;47320:127:0::1;7868:415:1::0;47320:127:0::1;47492:4;47480:8;:16;;:33;;;;-1:-1:-1::0;47500:13:0;47480:33:::1;47458:131;;;::::0;-1:-1:-1;;;47458:131:0;;8490:2:1;47458:131:0::1;::::0;::::1;8472:21:1::0;8529:2;8509:18;;;8502:30;8568:34;8548:18;;;8541:62;-1:-1:-1;;;8619:18:1;;;8612:46;8675:19;;47458:131:0::1;8288:412:1::0;47458:131:0::1;47600:15;:37:::0;;;;47648:16:::1;:27:::0;47686:13:::1;:24:::0;;-1:-1:-1;;47686:24:0::1;::::0;::::1;;::::0;;;::::1;::::0;;47163:555::o;35277:121::-;1807:6;;35329:4;;-1:-1:-1;;;;;1807:6:0;681:10;1954:23;1946:68;;;;-1:-1:-1;;;1946:68:0;;;;;;;:::i;:::-;-1:-1:-1;35346:14:0::1;:22:::0;;-1:-1:-1;;35346:22:0::1;::::0;;;35277:121;:::o;36716:167::-;1807:6;;-1:-1:-1;;;;;1807:6:0;681:10;1954:23;1946:68;;;;-1:-1:-1;;;1946:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;36829:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;36829:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;36716:167::o;35070:155::-;1807:6;;-1:-1:-1;;;;;1807:6:0;681:10;1954:23;1946:68;;;;-1:-1:-1;;;1946:68:0;;;;;;;:::i;:::-;35125:13:::1;:20:::0;;-1:-1:-1;;35156:18:0;;;;;35202:15:::1;35185:14;:32:::0;35070:155::o;36979:100::-;1807:6;;-1:-1:-1;;;;;1807:6:0;681:10;1954:23;1946:68;;;;-1:-1:-1;;;1946:68:0;;;;;;;:::i;:::-;37050:11:::1;:21:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;37050:21:0;;::::1;::::0;;;::::1;::::0;;36979:100::o;8692:104::-;8748:13;8781:7;8774:14;;;;;:::i;38532:304::-;1807:6;;-1:-1:-1;;;;;1807:6:0;681:10;1954:23;1946:68;;;;-1:-1:-1;;;1946:68:0;;;;;;;:::i;:::-;38676:13:::1;-1:-1:-1::0;;;;;38668:21:0::1;:4;-1:-1:-1::0;;;;;38668:21:0::1;;;38646:128;;;::::0;-1:-1:-1;;;38646:128:0;;8907:2:1;38646:128:0::1;::::0;::::1;8889:21:1::0;8946:2;8926:18;;;8919:30;8985:34;8965:18;;;8958:62;9056:27;9036:18;;;9029:55;9101:19;;38646:128:0::1;8705:421:1::0;38646:128:0::1;38787:41;38816:4;38822:5;38787:28;:41::i;:::-;38532:304:::0;;:::o;12910:413::-;681:10;13003:4;13047:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;13047:34:0;;;;;;;;;;13100:35;;;;13092:85;;;;-1:-1:-1;;;13092:85:0;;9333:2:1;13092:85:0;;;9315:21:1;9372:2;9352:18;;;9345:30;9411:34;9391:18;;;9384:62;-1:-1:-1;;;9462:18:1;;;9455:35;9507:19;;13092:85:0;9131:401:1;13092:85:0;13213:67;681:10;13236:7;13264:15;13245:16;:34;13213:8;:67::i;:::-;-1:-1:-1;13311:4:0;;12910:413;-1:-1:-1;;;12910:413:0:o;10104:175::-;10190:4;10207:42;681:10;10231:9;10242:6;10207:9;:42::i;38342:182::-;1807:6;;-1:-1:-1;;;;;1807:6:0;681:10;1954:23;1946:68;;;;-1:-1:-1;;;1946:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;38427:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;38427:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;38482:34;;1212:41:1;;;38482:34:0::1;::::0;1185:18:1;38482:34:0::1;;;;;;;38342:182:::0;;:::o;36452:256::-;1807:6;;-1:-1:-1;;;;;1807:6:0;681:10;1954:23;1946:68;;;;-1:-1:-1;;;1946:68:0;;;;;;;:::i;:::-;36592:4:::1;36584;36563:13;9681:12:::0;;;9593:108;36563:13:::1;:17;::::0;36579:1:::1;36563:17;:::i;:::-;36562:26;;;;:::i;:::-;36561:35;;;;:::i;:::-;36551:6;:45;;36529:131;;;::::0;-1:-1:-1;;;36529:131:0;;9739:2:1;36529:131:0::1;::::0;::::1;9721:21:1::0;9778:2;9758:18;;;9751:30;9817:34;9797:18;;;9790:62;-1:-1:-1;;;9868:18:1;;;9861:34;9912:19;;36529:131:0::1;9537:400:1::0;36529:131:0::1;36683:17;:6:::0;36693::::1;36683:17;:::i;:::-;36671:9;:29:::0;-1:-1:-1;36452:256:0:o;35664:497::-;1807:6;;35772:4;;-1:-1:-1;;;;;1807:6:0;681:10;1954:23;1946:68;;;;-1:-1:-1;;;1946:68:0;;;;;;;:::i;:::-;35851:6:::1;35830:13;9681:12:::0;;;9593:108;35830:13:::1;:17;::::0;35846:1:::1;35830:17;:::i;:::-;35829:28;;;;:::i;:::-;35816:9;:41;;35794:144;;;::::0;-1:-1:-1;;;35794:144:0;;10144:2:1;35794:144:0::1;::::0;::::1;10126:21:1::0;10183:2;10163:18;;;10156:30;10222:34;10202:18;;;10195:62;-1:-1:-1;;;10273:18:1;;;10266:51;10334:19;;35794:144:0::1;9942:417:1::0;35794:144:0::1;36006:4;35985:13;9681:12:::0;;;9593:108;35985:13:::1;:17;::::0;36001:1:::1;35985:17;:::i;:::-;35984:26;;;;:::i;:::-;35971:9;:39;;35949:141;;;::::0;-1:-1:-1;;;35949:141:0;;10566:2:1;35949:141:0::1;::::0;::::1;10548:21:1::0;10605:2;10585:18;;;10578:30;10644:34;10624:18;;;10617:62;-1:-1:-1;;;10695:18:1;;;10688:50;10755:19;;35949:141:0::1;10364:416:1::0;35949:141:0::1;-1:-1:-1::0;36101:18:0::1;:30:::0;;;36149:4:::1;2025:1;35664:497:::0;;;:::o;35459:135::-;1807:6;;35519:4;;-1:-1:-1;;;;;1807:6:0;681:10;1954:23;1946:68;;;;-1:-1:-1;;;1946:68:0;;;;;;;:::i;:::-;-1:-1:-1;35536:20:0::1;:28:::0;;-1:-1:-1;;35536:28:0::1;::::0;;;35459:135;:::o;37087:608::-;1807:6;;-1:-1:-1;;;;;1807:6:0;681:10;1954:23;1946:68;;;;-1:-1:-1;;;1946:68:0;;;;;;;:::i;:::-;37312:15:::1;:34:::0;;;37357:15:::1;:34:::0;;;37402:11:::1;:26:::0;;;37439:11:::1;:26:::0;;;37476:15:::1;:34:::0;;;37494:16;37453:12;37416;37536:33:::1;37375:16:::0;37330;37536:33:::1;:::i;:::-;:47;;;;:::i;:::-;:61;;;;:::i;:::-;:79;;;;:::i;:::-;37521:12;:94:::0;;;37650:3:::1;-1:-1:-1::0;37634:19:0::1;37626:61;;;::::0;-1:-1:-1;;;37626:61:0;;10987:2:1;37626:61:0::1;::::0;::::1;10969:21:1::0;11026:2;11006:18;;;10999:30;11065:31;11045:18;;;11038:59;11114:18;;37626:61:0::1;10785:353:1::0;37626:61:0::1;37087:608:::0;;;;;:::o;2643:201::-;1807:6;;-1:-1:-1;;;;;1807:6:0;681:10;1954:23;1946:68;;;;-1:-1:-1;;;1946:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2732:22:0;::::1;2724:73;;;::::0;-1:-1:-1;;;2724:73:0;;11345:2:1;2724:73:0::1;::::0;::::1;11327:21:1::0;11384:2;11364:18;;;11357:30;11423:34;11403:18;;;11396:62;-1:-1:-1;;;11474:18:1;;;11467:36;11520:19;;2724:73:0::1;11143:402:1::0;2724:73:0::1;2808:28;2827:8;2808:18;:28::i;:::-;2643:201:::0;:::o;39040:451::-;1807:6;;-1:-1:-1;;;;;1807:6:0;681:10;1954:23;1946:68;;;;-1:-1:-1;;;1946:68:0;;;;;;;:::i;:::-;39275:15:::1;:36:::0;;-1:-1:-1;;;;;;39275:36:0;;::::1;-1:-1:-1::0;;;;;39275:36:0;;::::1;;::::0;;;39322:15:::1;:36:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;39369:11:::1;:28:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;39408:11:::1;:28:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;39447:15:::1;:36:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;39040:451::o;48522:1056::-;1807:6;;48633:4;;-1:-1:-1;;;;;1807:6:0;681:10;1954:23;1946:68;;;;-1:-1:-1;;;1946:68:0;;;;;;;:::i;:::-;48718:19:::1;;48695:20;;:42;;;;:::i;:::-;48677:15;:60;48655:142;;;::::0;-1:-1:-1;;;48655:142:0;;11752:2:1;48655:142:0::1;::::0;::::1;11734:21:1::0;;;11771:18;;;11764:30;11830:34;11810:18;;;11803:62;11882:18;;48655:142:0::1;11550:356:1::0;48655:142:0::1;48827:4;48816:7;:15;;48808:70;;;::::0;-1:-1:-1;;;48808:70:0;;12113:2:1;48808:70:0::1;::::0;::::1;12095:21:1::0;12152:2;12132:18;;;12125:30;12191:34;12171:18;;;12164:62;-1:-1:-1;;;12242:18:1;;;12235:40;12292:19;;48808:70:0::1;11911:406:1::0;48808:70:0::1;48912:15;48889:20;:38:::0;49013:29:::1;::::0;-1:-1:-1;;;49013:29:0;;-1:-1:-1;;;;;49028:13:0::1;1707:32:1::0;49013:29:0::1;::::0;::::1;1689:51:1::0;48982:28:0::1;::::0;49013:4:::1;::::0;:14:::1;::::0;1662:18:1;;49013:29:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;48982:60:::0;-1:-1:-1;49092:20:0::1;49115:44;49153:5;49115:33;48982:60:::0;49140:7;49115:24:::1;:33::i;:::-;:37:::0;::::1;:44::i;:::-;49092:67:::0;-1:-1:-1;49264:16:0;;49260:110:::1;;49297:61;49313:13;49336:6;49345:12;49297:15;:61::i;:::-;49445:19;49482:13;49445:51;;49507:4;-1:-1:-1::0;;;;;49507:9:0::1;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;49534:14:0::1;::::0;::::1;::::0;-1:-1:-1;49534:14:0;;-1:-1:-1;49534:14:0::1;-1:-1:-1::0;49566:4:0::1;::::0;48522:1056;-1:-1:-1;;;;48522:1056:0:o;37703:631::-;1807:6;;-1:-1:-1;;;;;1807:6:0;681:10;1954:23;1946:68;;;;-1:-1:-1;;;1946:68:0;;;;;;;:::i;:::-;37934:16:::1;:36:::0;;;37981:16:::1;:36:::0;;;38028:12:::1;:28:::0;;;38067:12:::1;:28:::0;;;38106:16:::1;:36:::0;;;38125:17;38082:13;38043;38169:35:::1;38000:17:::0;37953;38169:35:::1;:::i;:::-;:50;;;;:::i;:::-;:65;;;;:::i;:::-;:84;;;;:::i;:::-;38153:13;:100:::0;;;38289:3:::1;-1:-1:-1::0;38272:20:0::1;38264:62;;;::::0;-1:-1:-1;;;38264:62:0;;10987:2:1;38264:62:0::1;::::0;::::1;10969:21:1::0;11026:2;11006:18;;;10999:30;11065:31;11045:18;;;11038:59;11114:18;;38264:62:0::1;10785:353:1::0;21883:98:0;21941:7;21968:5;21972:1;21968;:5;:::i;:::-;21961:12;21883:98;-1:-1:-1;;;21883:98:0:o;22282:::-;22340:7;22367:5;22371:1;22367;:5;:::i;16594:380::-;-1:-1:-1;;;;;16730:19:0;;16722:68;;;;-1:-1:-1;;;16722:68:0;;12713:2:1;16722:68:0;;;12695:21:1;12752:2;12732:18;;;12725:30;12791:34;12771:18;;;12764:62;-1:-1:-1;;;12842:18:1;;;12835:34;12886:19;;16722:68:0;12511:400:1;16722:68:0;-1:-1:-1;;;;;16809:21:0;;16801:68;;;;-1:-1:-1;;;16801:68:0;;13118:2:1;16801:68:0;;;13100:21:1;13157:2;13137:18;;;13130:30;13196:34;13176:18;;;13169:62;-1:-1:-1;;;13247:18:1;;;13240:32;13289:19;;16801:68:0;12916:398:1;16801:68:0;-1:-1:-1;;;;;16882:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;16934:32;;1897:25:1;;;16934:32:0;;1870:18:1;16934:32:0;;;;;;;16594:380;;;:::o;39633:5329::-;-1:-1:-1;;;;;39765:18:0;;39757:68;;;;-1:-1:-1;;;39757:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;39844:16:0;;39836:64;;;;-1:-1:-1;;;39836:64:0;;;;;;;:::i;:::-;39917:11;39913:93;;39945:28;39961:4;39967:2;39971:1;39945:15;:28::i;:::-;39633:5329;;;:::o;39913:93::-;40022:14;;;;40018:2487;;;1807:6;;-1:-1:-1;;;;;40075:15:0;;;1807:6;;40075:15;;;;:49;;-1:-1:-1;1807:6:0;;-1:-1:-1;;;;;40111:13:0;;;1807:6;;40111:13;;40075:49;:86;;;;-1:-1:-1;;;;;;40145:16:0;;;;40075:86;:128;;;;-1:-1:-1;;;;;;40182:21:0;;40196:6;40182:21;;40075:128;:158;;;;-1:-1:-1;40225:8:0;;-1:-1:-1;;;40225:8:0;;;;40224:9;40075:158;40053:2441;;;40273:13;;;;;;;40268:223;;-1:-1:-1;;;;;40345:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;40374:23:0;;;;;;:19;:23;;;;;;;;40345:52;40311:160;;;;-1:-1:-1;;;40311:160:0;;14331:2:1;40311:160:0;;;14313:21:1;14370:2;14350:18;;;14343:30;-1:-1:-1;;;14389:18:1;;;14382:52;14451:18;;40311:160:0;14129:346:1;40311:160:0;40647:20;;;;40643:641;;;1807:6;;-1:-1:-1;;;;;40722:13:0;;;1807:6;;40722:13;;;;:72;;;40778:15;-1:-1:-1;;;;;40764:30:0;:2;-1:-1:-1;;;;;40764:30:0;;;40722:72;:129;;;;;40837:13;-1:-1:-1;;;;;40823:28:0;:2;-1:-1:-1;;;;;40823:28:0;;;40722:129;40692:573;;;40969:9;40940:39;;;;:28;:39;;;;;;41015:12;-1:-1:-1;40902:258:0;;;;-1:-1:-1;;;40902:258:0;;14682:2:1;40902:258:0;;;14664:21:1;14721:2;14701:18;;;14694:30;14760:34;14740:18;;;14733:62;14831:34;14811:18;;;14804:62;-1:-1:-1;;;14882:19:1;;;14875:40;14932:19;;40902:258:0;14480:477:1;40902:258:0;41216:9;41187:39;;;;:28;:39;;;;;41229:12;41187:54;;40692:573;-1:-1:-1;;;;;41358:31:0;;;;;;:25;:31;;;;;;;;:92;;;;-1:-1:-1;;;;;;41415:35:0;;;;;;:31;:35;;;;;;;;41414:36;41358:92;41332:1147;;;41537:20;;41527:6;:30;;41493:169;;;;-1:-1:-1;;;41493:169:0;;15164:2:1;41493:169:0;;;15146:21:1;15203:2;15183:18;;;15176:30;15242:34;15222:18;;;15215:62;-1:-1:-1;;;15293:18:1;;;15286:51;15354:19;;41493:169:0;14962:417:1;41493:169:0;41745:9;;-1:-1:-1;;;;;9865:18:0;;9838:7;9865:18;;;;;;;;;;;41719:22;;:6;:22;:::i;:::-;:35;;41685:140;;;;-1:-1:-1;;;41685:140:0;;15586:2:1;41685:140:0;;;15568:21:1;15625:2;15605:18;;;15598:30;-1:-1:-1;;;15644:18:1;;;15637:49;15703:18;;41685:140:0;15384:343:1;41685:140:0;41332:1147;;;-1:-1:-1;;;;;41923:29:0;;;;;;:25;:29;;;;;;;;:92;;;;-1:-1:-1;;;;;;41978:37:0;;;;;;:31;:37;;;;;;;;41977:38;41923:92;41897:582;;;42102:20;;42092:6;:30;;42058:170;;;;-1:-1:-1;;;42058:170:0;;15934:2:1;42058:170:0;;;15916:21:1;15973:2;15953:18;;;15946:30;16012:34;15992:18;;;15985:62;-1:-1:-1;;;16063:18:1;;;16056:52;16125:19;;42058:170:0;15732:418:1;41897:582:0;-1:-1:-1;;;;;42259:35:0;;;;;;:31;:35;;;;;;;;42254:225;;42379:9;;-1:-1:-1;;;;;9865:18:0;;9838:7;9865:18;;;;;;;;;;;42353:22;;:6;:22;:::i;:::-;:35;;42319:140;;;;-1:-1:-1;;;42319:140:0;;15586:2:1;42319:140:0;;;15568:21:1;15625:2;15605:18;;;15598:30;-1:-1:-1;;;15644:18:1;;;15637:49;15703:18;;42319:140:0;15384:343:1;42319:140:0;42566:4;42517:28;9865:18;;;;;;;;;;;42624;;42600:42;;;;;;;42673:35;;-1:-1:-1;42697:11:0;;;;;;;42673:35;:61;;;;-1:-1:-1;42726:8:0;;-1:-1:-1;;;42726:8:0;;;;42725:9;42673:61;:110;;;;-1:-1:-1;;;;;;42752:31:0;;;;;;:25;:31;;;;;;;;42751:32;42673:110;:153;;;;-1:-1:-1;;;;;;42801:25:0;;;;;;:19;:25;;;;;;;;42800:26;42673:153;:194;;;;-1:-1:-1;;;;;;42844:23:0;;;;;;:19;:23;;;;;;;;42843:24;42673:194;42655:326;;;42894:8;:15;;-1:-1:-1;;;;42894:15:0;-1:-1:-1;;;42894:15:0;;;42926:10;:8;:10::i;:::-;42953:8;:16;;-1:-1:-1;;;;42953:16:0;;;42655:326;43012:8;;-1:-1:-1;;;43012:8:0;;;;43011:9;:55;;;;-1:-1:-1;;;;;;43037:29:0;;;;;;:25;:29;;;;;;;;43011:55;:85;;;;-1:-1:-1;43083:13:0;;;;43011:85;:153;;;;;43149:15;;43132:14;;:32;;;;:::i;:::-;43113:15;:51;;43011:153;:196;;;;-1:-1:-1;;;;;;43182:25:0;;;;;;:19;:25;;;;;;;;43181:26;43011:196;42993:282;;;43234:29;:27;:29::i;:::-;;42993:282;43303:8;;-1:-1:-1;;;;;43413:25:0;;43287:12;43413:25;;;:19;:25;;;;;;43303:8;-1:-1:-1;;;43303:8:0;;;;;43302:9;;43413:25;;:52;;-1:-1:-1;;;;;;43442:23:0;;;;;;:19;:23;;;;;;;;43413:52;43409:100;;;-1:-1:-1;43492:5:0;43409:100;43521:12;43626:7;43622:1287;;;-1:-1:-1;;;;;43678:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;43727:1;43711:13;;:17;43678:50;43674:1086;;;43756:35;43786:4;43756:25;43767:13;;43756:6;:10;;:25;;;;:::i;:35::-;43749:42;;43860:13;;43840:16;;43833:4;:23;;;;:::i;:::-;43832:41;;;;:::i;:::-;43810:18;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;;43942:13:0;;43922:16;;43915:23;;:4;:23;:::i;:::-;43914:41;;;;:::i;:::-;43892:18;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;;44016:13:0;;44000:12;;43993:19;;:4;:19;:::i;:::-;43992:37;;;;:::i;:::-;43974:14;;:55;;;;;;;:::i;:::-;;;;-1:-1:-1;;44090:13:0;;44074:12;;44067:19;;:4;:19;:::i;:::-;44066:37;;;;:::i;:::-;44048:14;;:55;;;;;;;:::i;:::-;;;;-1:-1:-1;;44172:13:0;;44152:16;;44145:23;;:4;:23;:::i;:::-;44144:41;;;;:::i;:::-;44122:18;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;43674:1086:0;;-1:-1:-1;43674:1086:0;;-1:-1:-1;;;;;44247:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;44297:1;44282:12;;:16;44247:51;44243:517;;;44326:34;44355:4;44326:24;44337:12;;44326:6;:10;;:24;;;;:::i;:34::-;44319:41;;44428:12;;44409:15;;44402:4;:22;;;;:::i;:::-;44401:39;;;;:::i;:::-;44379:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;44508:12:0;;44489:15;;44482:22;;:4;:22;:::i;:::-;44481:39;;;;:::i;:::-;44459:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;44580:12:0;;44565:11;;44558:18;;:4;:18;:::i;:::-;44557:35;;;;:::i;:::-;44539:14;;:53;;;;;;;:::i;:::-;;;;-1:-1:-1;;44652:12:0;;44637:11;;44630:18;;:4;:18;:::i;:::-;44629:35;;;;:::i;:::-;44611:14;;:53;;;;;;;:::i;:::-;;;;-1:-1:-1;;44732:12:0;;44713:15;;44706:22;;:4;:22;:::i;:::-;44705:39;;;;:::i;:::-;44683:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;44243:517:0;44780:8;;44776:91;;44809:42;44825:4;44839;44846;44809:15;:42::i;:::-;44883:14;44893:4;44883:14;;:::i;:::-;;;43622:1287;44921:33;44937:4;44943:2;44947:6;44921:15;:33::i;:::-;39746:5216;;;;39633:5329;;;:::o;3004:191::-;3097:6;;;-1:-1:-1;;;;;3114:17:0;;;-1:-1:-1;;;;;;3114:17:0;;;;;;;3147:40;;3097:6;;;3114:17;3097:6;;3147:40;;3078:16;;3147:40;3067:128;3004:191;:::o;38844:188::-;-1:-1:-1;;;;;38927:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;38927:39:0;;;;;;;;;;38984:40;;38927:39;;:31;38984:40;;;38844:188;;:::o;13813:733::-;-1:-1:-1;;;;;13953:20:0;;13945:70;;;;-1:-1:-1;;;13945:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14034:23:0;;14026:71;;;;-1:-1:-1;;;14026:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14194:17:0;;14170:21;14194:17;;;;;;;;;;;14230:23;;;;14222:74;;;;-1:-1:-1;;;14222:74:0;;16487:2:1;14222:74:0;;;16469:21:1;16526:2;16506:18;;;16499:30;16565:34;16545:18;;;16538:62;-1:-1:-1;;;16616:18:1;;;16609:36;16662:19;;14222:74:0;16285:402:1;14222:74:0;-1:-1:-1;;;;;14332:17:0;;;:9;:17;;;;;;;;;;;14352:22;;;14332:42;;14396:20;;;;;;;;:30;;14368:6;;14332:9;14396:30;;14368:6;;14396:30;:::i;:::-;;;;;;;;14461:9;-1:-1:-1;;;;;14444:35:0;14453:6;-1:-1:-1;;;;;14444:35:0;;14472:6;14444:35;;;;1897:25:1;;1885:2;1870:18;;1751:177;14444:35:0;;;;;;;;13934:612;13813:733;;;:::o;45567:1588::-;45650:4;45606:23;9865:18;;;;;;;;;;;45606:50;;45667:25;45771:18;;45754:14;;45737;;45716:18;;45695;;:39;;;;:::i;:::-;:56;;;;:::i;:::-;:73;;;;:::i;:::-;:94;;;;:::i;:::-;45667:122;-1:-1:-1;45800:12:0;45829:20;;;:46;;-1:-1:-1;45853:22:0;;45829:46;45825:85;;;45892:7;;;45567:1588::o;45825:85::-;45944:18;;:23;;45965:2;45944:23;:::i;:::-;45926:15;:41;45922:115;;;46002:18;;:23;;46023:2;46002:23;:::i;:::-;45984:41;;45922:115;46077:21;46111:33;46128:15;46111:16;:33::i;:::-;46157:18;46178:44;:21;46204:17;46178:25;:44::i;:::-;46157:65;;46235:23;46261:57;46300:17;46261:34;46276:18;;46261:10;:14;;:34;;;;:::i;:57::-;46235:83;;46329:23;46355:57;46394:17;46355:34;46370:18;;46355:10;:14;;:34;;;;:::i;:57::-;46329:83;;46423:19;46445:53;46480:17;46445:30;46460:14;;46445:10;:14;;:30;;;;:::i;:53::-;46423:75;;46509:19;46531:53;46566:17;46531:30;46546:14;;46531:10;:14;;:30;;;;:::i;:53::-;46618:1;46597:18;:22;;;46632:18;:22;;;46665:14;:18;;;46694:14;:18;;;46723;:22;;;46780:15;;46772:57;;46509:75;;-1:-1:-1;;;;;;46780:15:0;;46809;;46772:57;46618:1;46772:57;46809:15;46780;46772:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;46862:15:0;;46854:57;;46758:71;;-1:-1:-1;;;;;;46862:15:0;;46891;;46854:57;;;;46891:15;46862;46854:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;46944:11:0;;46936:49;;46840:71;;-1:-1:-1;;;;;;46944:11:0;;46969;;46936:49;;;;46969:11;46944;46936:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;47018:11:0;;47010:49;;46922:63;;-1:-1:-1;;;;;;47018:11:0;;47043;;47010:49;;;;47043:11;47018;47010:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;47092:15:0;;47084:63;;46996;;-1:-1:-1;;;;;;47092:15:0;;47121:21;;47084:63;;;;47121:21;47092:15;47084:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;45567:1588:0:o;47726:788::-;47817:15;47800:14;:32;47918:29;;-1:-1:-1;;;47918:29:0;;-1:-1:-1;;;;;47933:13:0;1707:32:1;47918:29:0;;;1689:51:1;47783:4:0;;;;47918;;:14;;1662:18:1;;47918:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;47887:60;;47997:20;48020:77;48081:5;48020:42;48045:16;;48020:20;:24;;:42;;;;:::i;:77::-;47997:100;-1:-1:-1;48202:16:0;;48198:110;;48235:61;48251:13;48274:6;48283:12;48235:15;:61::i;:::-;48383:19;48420:13;48383:51;;48445:4;-1:-1:-1;;;;;48445:9:0;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;48472:12:0;;;;-1:-1:-1;48472:12:0;;-1:-1:-1;48472:12:0;48502:4;48495:11;;;;;47726:788;:::o;44970:589::-;45120:16;;;45134:1;45120:16;;;;;;;;45096:21;;45120:16;;;;;;;;;;-1:-1:-1;45120:16:0;45096:40;;45165:4;45147;45152:1;45147:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;45147:23:0;;;-1:-1:-1;;;;;45147:23:0;;;;;45191:15;-1:-1:-1;;;;;45191:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;45181:4;45186:1;45181:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;45181:32:0;;;-1:-1:-1;;;;;45181:32:0;;;;;45226:62;45243:4;45258:15;45276:11;45226:8;:62::i;:::-;45327:224;;-1:-1:-1;;;45327:224:0;;-1:-1:-1;;;;;45327:15:0;:66;;;;:224;;45408:11;;45434:1;;45478:4;;45505;;45525:15;;45327:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;45025:534;44970:589;:::o;21526:98::-;21584:7;21611:5;21615:1;21611;:5;:::i;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1264:247::-;1323:6;1376:2;1364:9;1355:7;1351:23;1347:32;1344:52;;;1392:1;1389;1382:12;1344:52;1431:9;1418:23;1450:31;1475:5;1450:31;:::i;1933:180::-;1992:6;2045:2;2033:9;2024:7;2020:23;2016:32;2013:52;;;2061:1;2058;2051:12;2013:52;-1:-1:-1;2084:23:1;;1933:180;-1:-1:-1;1933:180:1:o;2118:456::-;2195:6;2203;2211;2264:2;2252:9;2243:7;2239:23;2235:32;2232:52;;;2280:1;2277;2270:12;2232:52;2319:9;2306:23;2338:31;2363:5;2338:31;:::i;:::-;2388:5;-1:-1:-1;2445:2:1;2430:18;;2417:32;2458:33;2417:32;2458:33;:::i;:::-;2118:456;;2510:7;;-1:-1:-1;;;2564:2:1;2549:18;;;;2536:32;;2118:456::o;2976:160::-;3041:20;;3097:13;;3090:21;3080:32;;3070:60;;3126:1;3123;3116:12;3141:316;3215:6;3223;3231;3284:2;3272:9;3263:7;3259:23;3255:32;3252:52;;;3300:1;3297;3290:12;3252:52;3336:9;3323:23;3313:33;;3393:2;3382:9;3378:18;3365:32;3355:42;;3416:35;3447:2;3436:9;3432:18;3416:35;:::i;:::-;3406:45;;3141:316;;;;;:::o;3462:315::-;3527:6;3535;3588:2;3576:9;3567:7;3563:23;3559:32;3556:52;;;3604:1;3601;3594:12;3556:52;3643:9;3630:23;3662:31;3687:5;3662:31;:::i;:::-;3712:5;-1:-1:-1;3736:35:1;3767:2;3752:18;;3736:35;:::i;:::-;3726:45;;3462:315;;;;;:::o;3782:180::-;3838:6;3891:2;3879:9;3870:7;3866:23;3862:32;3859:52;;;3907:1;3904;3897:12;3859:52;3930:26;3946:9;3930:26;:::i;3967:388::-;4035:6;4043;4096:2;4084:9;4075:7;4071:23;4067:32;4064:52;;;4112:1;4109;4102:12;4064:52;4151:9;4138:23;4170:31;4195:5;4170:31;:::i;:::-;4220:5;-1:-1:-1;4277:2:1;4262:18;;4249:32;4290:33;4249:32;4290:33;:::i;:::-;4342:7;4332:17;;;3967:388;;;;;:::o;4360:454::-;4455:6;4463;4471;4479;4487;4540:3;4528:9;4519:7;4515:23;4511:33;4508:53;;;4557:1;4554;4547:12;4508:53;-1:-1:-1;;4580:23:1;;;4650:2;4635:18;;4622:32;;-1:-1:-1;4701:2:1;4686:18;;4673:32;;4752:2;4737:18;;4724:32;;-1:-1:-1;4803:3:1;4788:19;4775:33;;-1:-1:-1;4360:454:1;-1:-1:-1;4360:454:1:o;4819:813::-;4914:6;4922;4930;4938;4946;4999:3;4987:9;4978:7;4974:23;4970:33;4967:53;;;5016:1;5013;5006:12;4967:53;5055:9;5042:23;5074:31;5099:5;5074:31;:::i;:::-;5124:5;-1:-1:-1;5181:2:1;5166:18;;5153:32;5194:33;5153:32;5194:33;:::i;:::-;5246:7;-1:-1:-1;5305:2:1;5290:18;;5277:32;5318:33;5277:32;5318:33;:::i;:::-;5370:7;-1:-1:-1;5429:2:1;5414:18;;5401:32;5442:33;5401:32;5442:33;:::i;:::-;5494:7;-1:-1:-1;5553:3:1;5538:19;;5525:33;5567;5525;5567;:::i;:::-;5619:7;5609:17;;;4819:813;;;;;;;;:::o;5637:380::-;5716:1;5712:12;;;;5759;;;5780:61;;5834:4;5826:6;5822:17;5812:27;;5780:61;5887:2;5879:6;5876:14;5856:18;5853:38;5850:161;;;5933:10;5928:3;5924:20;5921:1;5914:31;5968:4;5965:1;5958:15;5996:4;5993:1;5986:15;5850:161;;5637:380;;;:::o;6022:356::-;6224:2;6206:21;;;6243:18;;;6236:30;6302:34;6297:2;6282:18;;6275:62;6369:2;6354:18;;6022:356::o;6383:127::-;6444:10;6439:3;6435:20;6432:1;6425:31;6475:4;6472:1;6465:15;6499:4;6496:1;6489:15;6515:168;6555:7;6621:1;6617;6613:6;6609:14;6606:1;6603:21;6598:1;6591:9;6584:17;6580:45;6577:71;;;6628:18;;:::i;:::-;-1:-1:-1;6668:9:1;;6515:168::o;6688:217::-;6728:1;6754;6744:132;;6798:10;6793:3;6789:20;6786:1;6779:31;6833:4;6830:1;6823:15;6861:4;6858:1;6851:15;6744:132;-1:-1:-1;6890:9:1;;6688:217::o;7735:128::-;7775:3;7806:1;7802:6;7799:1;7796:13;7793:39;;;7812:18;;:::i;:::-;-1:-1:-1;7848:9:1;;7735:128::o;12322:184::-;12392:6;12445:2;12433:9;12424:7;12420:23;12416:32;12413:52;;;12461:1;12458;12451:12;12413:52;-1:-1:-1;12484:16:1;;12322:184;-1:-1:-1;12322:184:1:o;13319:401::-;13521:2;13503:21;;;13560:2;13540:18;;;13533:30;13599:34;13594:2;13579:18;;13572:62;-1:-1:-1;;;13665:2:1;13650:18;;13643:35;13710:3;13695:19;;13319:401::o;13725:399::-;13927:2;13909:21;;;13966:2;13946:18;;;13939:30;14005:34;14000:2;13985:18;;13978:62;-1:-1:-1;;;14071:2:1;14056:18;;14049:33;14114:3;14099:19;;13725:399::o;16155:125::-;16195:4;16223:1;16220;16217:8;16214:34;;;16228:18;;:::i;:::-;-1:-1:-1;16265:9:1;;16155:125::o;17034:127::-;17095:10;17090:3;17086:20;17083:1;17076:31;17126:4;17123:1;17116:15;17150:4;17147:1;17140:15;17166:251;17236:6;17289:2;17277:9;17268:7;17264:23;17260:32;17257:52;;;17305:1;17302;17295:12;17257:52;17337:9;17331:16;17356:31;17381:5;17356:31;:::i;17422:980::-;17684:4;17732:3;17721:9;17717:19;17763:6;17752:9;17745:25;17789:2;17827:6;17822:2;17811:9;17807:18;17800:34;17870:3;17865:2;17854:9;17850:18;17843:31;17894:6;17929;17923:13;17960:6;17952;17945:22;17998:3;17987:9;17983:19;17976:26;;18037:2;18029:6;18025:15;18011:29;;18058:1;18068:195;18082:6;18079:1;18076:13;18068:195;;;18147:13;;-1:-1:-1;;;;;18143:39:1;18131:52;;18238:15;;;;18203:12;;;;18179:1;18097:9;18068:195;;;-1:-1:-1;;;;;;;18319:32:1;;;;18314:2;18299:18;;18292:60;-1:-1:-1;;;18383:3:1;18368:19;18361:35;18280:3;17422:980;-1:-1:-1;;;17422:980:1:o

Swarm Source

ipfs://a54bf541bf5b6ef7c09f276862854d4b81d3d60f89bfc8da8a0a2a1306e4edc9
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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