ETH Price: $2,513.45 (-0.37%)
Gas: 9.61 Gwei

Token

PVP (PVP)
 

Overview

Max Total Supply

100,000,000 PVP

Holders

266

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
31,249.064260410471724772 PVP

Value
$0.00
0x000000fee13a103a10d593b9ae06b3e05f2e7e1c
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:
PVP

Compiler Version
v0.8.27+commit.40a35a09

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 6 of 6: PVP.sol
/*
X: https://x.com/pvponeth
TG: t.me/pvponeth
Web: pvponeth.com

$PVP is a Web3 P2E Western Mini App game on 
Telegram that combines DeFi mechanics and quick, 
intensive action gameplay into one wild package.
*/

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

import "./ERC20.sol";
import "./Ownable.sol"; 

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 amountIn,uint256 amountOutMin,address[] calldata path,address to,uint256 deadline) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

contract PVP is ERC20, Ownable {

    uint256 private buyTax = 20;
    uint256 private sellTax = 25;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    mapping(address => bool) public isExempt;
    
    address private immutable marketingAddress;
    address private immutable taxAddress;

    uint256 public maxTransactionAmount;
    uint256 public maxTxLaunch;
    bool private launch = false;
    bool private slowLaunch = true;
    uint256 private blockLaunch;
    uint256 private lastSellBlock;
    uint256 private sellCount;
    uint256 private minSwap;
    uint256 private maxSwap;
    uint256 private _buyCount= 0;
    bool private inSwap;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor(
        address _taxAddress,
        address _marketingAddress,
        address _reserve,
        address _pubs,
        address _ps
    ) ERC20("PVP", "PVP") Ownable() payable {
        uint256 totalSupply = 100000000 * 10**18;
        
        marketingAddress = _marketingAddress;
        taxAddress = _taxAddress;

        isExempt[msg.sender] = true; 
        isExempt[address(this)] = true; 
        isExempt[_reserve] = true;
        isExempt[marketingAddress] = true; 
        isExempt[taxAddress] = true; 
        isExempt[_pubs] = true;
        isExempt[_ps] = true;

        _mint(_ps, totalSupply * 10 / 100); 
        _mint(_pubs, totalSupply * 5 / 100); 
        _mint(_reserve, totalSupply * 4 / 100); 
        _mint(_marketingAddress, totalSupply * 3 / 100); 
        _mint(address(this), totalSupply * 70 / 100); 
        _mint(msg.sender, totalSupply * 8 / 100); 

        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = address(
            IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH())
        );
        
        maxTransactionAmount = totalSupply * 2 / 100;
        maxTxLaunch = totalSupply * 5 / 1000; 
        maxSwap = 250000 * 10**18;
        minSwap = 25000 * 10**18;
    }

    function addLiquidityV2() external onlyOwner {
        _approve(address(this), address(uniswapV2Router), balanceOf(address(this)));
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
    }

     function getMinCASwap() public view returns (uint256){
        return minSwap / 10**decimals();
    }

    function setMaxCASwap(uint256 _maxSwap) external onlyOwner{
        maxSwap = _maxSwap * 10**decimals();
    }

    function setMinSwap(uint256 _minSwap) external onlyOwner{
        minSwap = _minSwap * 10**decimals();
    }

    function switchCaCanSell() external onlyOwner {
        if (inSwap){
            inSwap = false;
        } else {
            inSwap = true;
        }
    }

    function offSlowLaunch() external onlyOwner {
        slowLaunch = false;
    }

    function getMaxCASwap() public view returns (uint256){
        return maxSwap / 10**decimals();
    }

    function swapTokensEth(uint256 tokenAmount) internal lockTheSwap {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            taxAddress,
            block.timestamp
        );
    }

    function _transfer(address from, address to, uint256 value) internal virtual override {
        if (!isExempt[from] && !isExempt[to]) {
            require(launch, "Not launched");
            uint256 tax = 0;
            
            if (slowLaunch && blockLaunch!=block.number){
                require(value <= maxTxLaunch, "MAX TX LIMIT");
            } else {
                require(value <= maxTransactionAmount, "MAX TX LIMIT");
            }

            if (to == uniswapV2Pair) {
                tax = sellTax;
                uint256 tokensSwap = balanceOf(address(this));
                if (tokensSwap > minSwap && !inSwap) {
                    if (block.number > lastSellBlock) {
                        sellCount = 0;
                    }
                    if (sellCount < 3){
                        sellCount++;
                        lastSellBlock = block.number;
                        swapTokensEth(min(maxSwap, min(value, tokensSwap)));
                    }
                }
            } else if (from == uniswapV2Pair){
                tax = buyTax;
                if(block.number == blockLaunch){
                    _buyCount++;
                     tax = 0;
                    require(_buyCount <= 22,"Exceeds buys on the first block.");
                }
            }

            uint256 taxAmount = value * tax / 100;
            uint256 amountAfterTax = value - taxAmount;

            if (taxAmount > 0){
                super._transfer(from, address(this), taxAmount);
            }
            super._transfer(from, to, amountAfterTax);
            return;
        }
        super._transfer(from, to, value);
    }

    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function setMaxTx(uint256 newMaxTx) external onlyOwner {
        require(newMaxTx* 10**decimals() >= totalSupply()/100); //Protect: MaxTx more then 1%
        maxTransactionAmount = newMaxTx * 10**decimals();
    }

    function setExcludedWallet(address wAddress, bool isExcle) external onlyOwner {
        isExempt[wAddress] = isExcle;
    }
    
    function openTrading() external onlyOwner {
        launch = true;
        blockLaunch = block.number;
    }
    
    function setTax(uint256 newBuyTax , uint256 newSellTax) external onlyOwner {
        require(newBuyTax < 20 && newSellTax < 20); //Protect: Tax less then 20%
        sellTax = newSellTax;
        buyTax = newBuyTax;
    }

    function removeAllLimits() external onlyOwner {
        maxTransactionAmount = totalSupply();
    }

    function exportETH() external {
        payable(marketingAddress).transfer(address(this).balance);
    }

    receive() external payable {}
}

File 1 of 6: Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

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

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

File 2 of 6: ERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./IERC20Metadata.sol";
import "./Context.sol";

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * The default value of {decimals} is 18. To change this, you should override
 * this function so it returns a different value.
 *
 * 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}.
     *
     * 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 default value returned by this function, unless
     * it's overridden.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

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

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

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

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

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

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

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

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

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

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

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

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

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

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

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

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

    /**
     * @dev Hook that is called 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 {}
}

File 3 of 6: IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

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

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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

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

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

File 4 of 6: IERC20Metadata.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

import "./IERC20.sol";

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

File 5 of 6: Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

import "./Context.sol";

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

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

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

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

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

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

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

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

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_taxAddress","type":"address"},{"internalType":"address","name":"_marketingAddress","type":"address"},{"internalType":"address","name":"_reserve","type":"address"},{"internalType":"address","name":"_pubs","type":"address"},{"internalType":"address","name":"_ps","type":"address"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addLiquidityV2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"exportETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getMaxCASwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMinCASwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxLaunch","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":"offSlowLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeAllLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wAddress","type":"address"},{"internalType":"bool","name":"isExcle","type":"bool"}],"name":"setExcludedWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxSwap","type":"uint256"}],"name":"setMaxCASwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxTx","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minSwap","type":"uint256"}],"name":"setMinSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"switchCaCanSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"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"},{"stateMutability":"payable","type":"receive"}]

60c0604052601460065560196007555f600d5f6101000a81548160ff0219169083151502179055506001600d60016101000a81548160ff0219169083151502179055505f601355604051613a8b380380613a8b833981810160405281019061006791906109ef565b6040518060400160405280600381526020017f50565000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f505650000000000000000000000000000000000000000000000000000000000081525081600390816100e29190610ca3565b5080600490816100f29190610ca3565b50505061011161010661076360201b60201c565b61076a60201b60201c565b5f6a52b7d2dcc80cd2e400000090508473ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508573ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506001600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f60a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610407826064600a846103f29190610d9f565b6103fc9190610e0d565b61082d60201b60201c565b61042f83606460058461041a9190610d9f565b6104249190610e0d565b61082d60201b60201c565b6104578460646004846104429190610d9f565b61044c9190610e0d565b61082d60201b60201c565b61047f85606460038461046a9190610d9f565b6104749190610e0d565b61082d60201b60201c565b6104a73060646046846104929190610d9f565b61049c9190610e0d565b61082d60201b60201c565b6104cf3360646008846104ba9190610d9f565b6104c49190610e0d565b61082d60201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d60085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561058d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b19190610e3d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610637573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061065b9190610e3d565b6040518363ffffffff1660e01b8152600401610678929190610e77565b6020604051808303815f875af1158015610694573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b89190610e3d565b60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060646002826107069190610d9f565b6107109190610e0d565b600b819055506103e86005826107269190610d9f565b6107309190610e0d565b600c819055506934f086f3b33b6840000060128190555069054b40b1f852bda00000601181905550505050505050610f71565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361089b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089290610ef8565b60405180910390fd5b6108ac5f838361098760201b60201c565b8060025f8282546108bd9190610f16565b92505081905550805f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161096a9190610f58565b60405180910390a36109835f838361098c60201b60201c565b5050565b505050565b505050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6109be82610995565b9050919050565b6109ce816109b4565b81146109d8575f5ffd5b50565b5f815190506109e9816109c5565b92915050565b5f5f5f5f5f60a08688031215610a0857610a07610991565b5b5f610a15888289016109db565b9550506020610a26888289016109db565b9450506040610a37888289016109db565b9350506060610a48888289016109db565b9250506080610a59888289016109db565b9150509295509295909350565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610ae157607f821691505b602082108103610af457610af3610a9d565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610b567fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610b1b565b610b608683610b1b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610ba4610b9f610b9a84610b78565b610b81565b610b78565b9050919050565b5f819050919050565b610bbd83610b8a565b610bd1610bc982610bab565b848454610b27565b825550505050565b5f5f905090565b610be8610bd9565b610bf3818484610bb4565b505050565b5b81811015610c1657610c0b5f82610be0565b600181019050610bf9565b5050565b601f821115610c5b57610c2c81610afa565b610c3584610b0c565b81016020851015610c44578190505b610c58610c5085610b0c565b830182610bf8565b50505b505050565b5f82821c905092915050565b5f610c7b5f1984600802610c60565b1980831691505092915050565b5f610c938383610c6c565b9150826002028217905092915050565b610cac82610a66565b67ffffffffffffffff811115610cc557610cc4610a70565b5b610ccf8254610aca565b610cda828285610c1a565b5f60209050601f831160018114610d0b575f8415610cf9578287015190505b610d038582610c88565b865550610d6a565b601f198416610d1986610afa565b5f5b82811015610d4057848901518255600182019150602085019450602081019050610d1b565b86831015610d5d5784890151610d59601f891682610c6c565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610da982610b78565b9150610db483610b78565b9250828202610dc281610b78565b91508282048414831517610dd957610dd8610d72565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610e1782610b78565b9150610e2283610b78565b925082610e3257610e31610de0565b5b828204905092915050565b5f60208284031215610e5257610e51610991565b5b5f610e5f848285016109db565b91505092915050565b610e71816109b4565b82525050565b5f604082019050610e8a5f830185610e68565b610e976020830184610e68565b9392505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610ee2601f83610e9e565b9150610eed82610eae565b602082019050919050565b5f6020820190508181035f830152610f0f81610ed6565b9050919050565b5f610f2082610b78565b9150610f2b83610b78565b9250828201905080821115610f4357610f42610d72565b5b92915050565b610f5281610b78565b82525050565b5f602082019050610f6b5f830184610f49565b92915050565b60805160a051612af9610f925f395f61183e01525f610c350152612af95ff3fe6080604052600436106101db575f3560e01c806395d89b4111610101578063c8c8ebe411610094578063db05e5cb11610063578063db05e5cb14610664578063dd62ed3e1461067a578063f2fde38b146106b6578063ffe270da146106de576101e2565b8063c8c8ebe4146105e6578063c9567bf914610610578063d579d4ed14610626578063d7acde1f1461063c576101e2565b8063a9e282b8116100d0578063a9e282b814610532578063aca2cd6e1461055a578063ad5dff7314610582578063bc337182146105be576101e2565b806395d89b4114610466578063a457c2d714610490578063a508de62146104cc578063a9059cbb146104f6576101e2565b80633950935111610179578063667f652611610148578063667f6526146103c257806370a08231146103ea578063715018a6146104265780638da5cb5b1461043c576101e2565b8063395093511461031c57806349bd5a5e1461035857806349deb75c146103825780634b203e1b14610398576101e2565b8063095ea7b3116101b5578063095ea7b31461025057806318160ddd1461028c57806323b872dd146102b6578063313ce567146102f2576101e2565b806306fdde03146101e6578063084cf615146102105780630949e8c81461023a576101e2565b366101e257005b5f5ffd5b3480156101f1575f5ffd5b506101fa6106f4565b6040516102079190611bae565b60405180910390f35b34801561021b575f5ffd5b50610224610784565b6040516102319190611be6565b60405180910390f35b348015610245575f5ffd5b5061024e61078a565b005b34801561025b575f5ffd5b5061027660048036038101906102719190611c87565b6107ae565b6040516102839190611cdf565b60405180910390f35b348015610297575f5ffd5b506102a06107d0565b6040516102ad9190611be6565b60405180910390f35b3480156102c1575f5ffd5b506102dc60048036038101906102d79190611cf8565b6107d9565b6040516102e99190611cdf565b60405180910390f35b3480156102fd575f5ffd5b50610306610807565b6040516103139190611d63565b60405180910390f35b348015610327575f5ffd5b50610342600480360381019061033d9190611c87565b61080f565b60405161034f9190611cdf565b60405180910390f35b348015610363575f5ffd5b5061036c610845565b6040516103799190611d8b565b60405180910390f35b34801561038d575f5ffd5b5061039661086a565b005b3480156103a3575f5ffd5b506103ac6108c1565b6040516103b99190611be6565b60405180910390f35b3480156103cd575f5ffd5b506103e860048036038101906103e39190611da4565b6108e8565b005b3480156103f5575f5ffd5b50610410600480360381019061040b9190611de2565b61091a565b60405161041d9190611be6565b60405180910390f35b348015610431575f5ffd5b5061043a61095f565b005b348015610447575f5ffd5b50610450610972565b60405161045d9190611d8b565b60405180910390f35b348015610471575f5ffd5b5061047a61099a565b6040516104879190611bae565b60405180910390f35b34801561049b575f5ffd5b506104b660048036038101906104b19190611c87565b610a2a565b6040516104c39190611cdf565b60405180910390f35b3480156104d7575f5ffd5b506104e0610a9f565b6040516104ed9190611be6565b60405180910390f35b348015610501575f5ffd5b5061051c60048036038101906105179190611c87565b610ac6565b6040516105299190611cdf565b60405180910390f35b34801561053d575f5ffd5b5061055860048036038101906105539190611e0d565b610ae8565b005b348015610565575f5ffd5b50610580600480360381019061057b9190611e62565b610b18565b005b34801561058d575f5ffd5b506105a860048036038101906105a39190611de2565b610b78565b6040516105b59190611cdf565b60405180910390f35b3480156105c9575f5ffd5b506105e460048036038101906105df9190611e0d565b610b95565b005b3480156105f1575f5ffd5b506105fa610c02565b6040516106079190611be6565b60405180910390f35b34801561061b575f5ffd5b50610624610c08565b005b348015610631575f5ffd5b5061063a610c33565b005b348015610647575f5ffd5b50610662600480360381019061065d9190611e0d565b610c99565b005b34801561066f575f5ffd5b50610678610cc9565b005b348015610685575f5ffd5b506106a0600480360381019061069b9190611ea0565b610ce1565b6040516106ad9190611be6565b60405180910390f35b3480156106c1575f5ffd5b506106dc60048036038101906106d79190611de2565b610d63565b005b3480156106e9575f5ffd5b506106f2610de5565b005b60606003805461070390611f0b565b80601f016020809104026020016040519081016040528092919081815260200182805461072f90611f0b565b801561077a5780601f106107515761010080835404028352916020019161077a565b820191905f5260205f20905b81548152906001019060200180831161075d57829003601f168201915b5050505050905090565b600c5481565b610792610edb565b5f600d60016101000a81548160ff021916908315150217905550565b5f5f6107b8610f59565b90506107c5818585610f60565b600191505092915050565b5f600254905090565b5f5f6107e3610f59565b90506107f0858285611123565b6107fb8585856111ae565b60019150509392505050565b5f6012905090565b5f5f610819610f59565b905061083a81858561082b8589610ce1565b6108359190611f68565b610f60565b600191505092915050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610872610edb565b60145f9054906101000a900460ff16156108a4575f60145f6101000a81548160ff0219169083151502179055506108bf565b600160145f6101000a81548160ff0219169083151502179055505b565b5f6108ca610807565b600a6108d691906120ca565b6011546108e39190612141565b905090565b6108f0610edb565b6014821080156109005750601481105b610908575f5ffd5b80600781905550816006819055505050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610967610edb565b6109705f611564565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546109a990611f0b565b80601f01602080910402602001604051908101604052809291908181526020018280546109d590611f0b565b8015610a205780601f106109f757610100808354040283529160200191610a20565b820191905f5260205f20905b815481529060010190602001808311610a0357829003601f168201915b5050505050905090565b5f5f610a34610f59565b90505f610a418286610ce1565b905083811015610a86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7d906121e1565b60405180910390fd5b610a938286868403610f60565b60019250505092915050565b5f610aa8610807565b600a610ab491906120ca565b601254610ac19190612141565b905090565b5f5f610ad0610f59565b9050610add8185856111ae565b600191505092915050565b610af0610edb565b610af8610807565b600a610b0491906120ca565b81610b0f91906121ff565b60118190555050565b610b20610edb565b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600a602052805f5260405f205f915054906101000a900460ff1681565b610b9d610edb565b6064610ba76107d0565b610bb19190612141565b610bb9610807565b600a610bc591906120ca565b82610bd091906121ff565b1015610bda575f5ffd5b610be2610807565b600a610bee91906120ca565b81610bf991906121ff565b600b8190555050565b600b5481565b610c10610edb565b6001600d5f6101000a81548160ff02191690831515021790555043600e81905550565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610c96573d5f5f3e3d5ffd5b50565b610ca1610edb565b610ca9610807565b600a610cb591906120ca565b81610cc091906121ff565b60128190555050565b610cd1610edb565b610cd96107d0565b600b81905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610d6b610edb565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610dd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd0906122b0565b60405180910390fd5b610de281611564565b50565b610ded610edb565b610e213060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e1c3061091a565b610f60565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e693061091a565b5f5f610e73610972565b426040518863ffffffff1660e01b8152600401610e9596959493929190612310565b60606040518083038185885af1158015610eb1573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ed69190612383565b505050565b610ee3610f59565b73ffffffffffffffffffffffffffffffffffffffff16610f01610972565b73ffffffffffffffffffffffffffffffffffffffff1614610f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4e9061241d565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc5906124ab565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361103c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103390612539565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111169190611be6565b60405180910390a3505050565b5f61112e8484610ce1565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146111a8578181101561119a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611191906125a1565b60405180910390fd5b6111a78484848403610f60565b5b50505050565b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561124c5750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561155357600d5f9054906101000a900460ff1661129f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129690612609565b60405180910390fd5b5f5f9050600d60019054906101000a900460ff1680156112c1575043600e5414155b1561131057600c5482111561130b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130290612671565b60405180910390fd5b611356565b600b54821115611355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134c90612671565b60405180910390fd5b5b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361143d5760075490505f6113b93061091a565b9050601154811180156113d8575060145f9054906101000a900460ff16155b1561143757600f544311156113ef575f6010819055505b600360105410156114365760105f81548092919061140c9061268f565b919050555043600f8190555061143561143060125461142b8685611627565b611627565b61163f565b5b5b50611502565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611501576006549050600e5443036115005760135f8154809291906114b19061268f565b91905055505f9050601660135411156114ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f690612720565b60405180910390fd5b5b5b5b5f6064828461151191906121ff565b61151b9190612141565b90505f818461152a919061273e565b90505f8211156115405761153f8630846118c8565b5b61154b8686836118c8565b50505061155f565b61155e8383836118c8565b5b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8183116116355782611637565b815b905092915050565b600160145f6101000a81548160ff0219169083151502179055506116853060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610f60565b5f600267ffffffffffffffff8111156116a1576116a0612771565b5b6040519080825280602002602001820160405280156116cf5781602001602082028036833780820191505090505b50905030815f815181106116e6576116e561279e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561178a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117ae91906127df565b816001815181106117c2576117c161279e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f847f0000000000000000000000000000000000000000000000000000000000000000426040518663ffffffff1660e01b815260040161187e9594939291906128c1565b5f604051808303815f87803b158015611895575f5ffd5b505af11580156118a7573d5f5f3e3d5ffd5b50505050505f60145f6101000a81548160ff02191690831515021790555050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611936576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192d90612989565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199b90612a17565b60405180910390fd5b6119af838383611b34565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2990612aa5565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b1b9190611be6565b60405180910390a3611b2e848484611b39565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611b8082611b3e565b611b8a8185611b48565b9350611b9a818560208601611b58565b611ba381611b66565b840191505092915050565b5f6020820190508181035f830152611bc68184611b76565b905092915050565b5f819050919050565b611be081611bce565b82525050565b5f602082019050611bf95f830184611bd7565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611c2c82611c03565b9050919050565b611c3c81611c22565b8114611c46575f5ffd5b50565b5f81359050611c5781611c33565b92915050565b611c6681611bce565b8114611c70575f5ffd5b50565b5f81359050611c8181611c5d565b92915050565b5f5f60408385031215611c9d57611c9c611bff565b5b5f611caa85828601611c49565b9250506020611cbb85828601611c73565b9150509250929050565b5f8115159050919050565b611cd981611cc5565b82525050565b5f602082019050611cf25f830184611cd0565b92915050565b5f5f5f60608486031215611d0f57611d0e611bff565b5b5f611d1c86828701611c49565b9350506020611d2d86828701611c49565b9250506040611d3e86828701611c73565b9150509250925092565b5f60ff82169050919050565b611d5d81611d48565b82525050565b5f602082019050611d765f830184611d54565b92915050565b611d8581611c22565b82525050565b5f602082019050611d9e5f830184611d7c565b92915050565b5f5f60408385031215611dba57611db9611bff565b5b5f611dc785828601611c73565b9250506020611dd885828601611c73565b9150509250929050565b5f60208284031215611df757611df6611bff565b5b5f611e0484828501611c49565b91505092915050565b5f60208284031215611e2257611e21611bff565b5b5f611e2f84828501611c73565b91505092915050565b611e4181611cc5565b8114611e4b575f5ffd5b50565b5f81359050611e5c81611e38565b92915050565b5f5f60408385031215611e7857611e77611bff565b5b5f611e8585828601611c49565b9250506020611e9685828601611e4e565b9150509250929050565b5f5f60408385031215611eb657611eb5611bff565b5b5f611ec385828601611c49565b9250506020611ed485828601611c49565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611f2257607f821691505b602082108103611f3557611f34611ede565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611f7282611bce565b9150611f7d83611bce565b9250828201905080821115611f9557611f94611f3b565b5b92915050565b5f8160011c9050919050565b5f5f8291508390505b6001851115611ff057808604811115611fcc57611fcb611f3b565b5b6001851615611fdb5780820291505b8081029050611fe985611f9b565b9450611fb0565b94509492505050565b5f8261200857600190506120c3565b81612015575f90506120c3565b816001811461202b576002811461203557612064565b60019150506120c3565b60ff84111561204757612046611f3b565b5b8360020a91508482111561205e5761205d611f3b565b5b506120c3565b5060208310610133831016604e8410600b84101617156120995782820a90508381111561209457612093611f3b565b5b6120c3565b6120a68484846001611fa7565b925090508184048111156120bd576120bc611f3b565b5b81810290505b9392505050565b5f6120d482611bce565b91506120df83611d48565b925061210c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611ff9565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61214b82611bce565b915061215683611bce565b92508261216657612165612114565b5b828204905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6121cb602583611b48565b91506121d682612171565b604082019050919050565b5f6020820190508181035f8301526121f8816121bf565b9050919050565b5f61220982611bce565b915061221483611bce565b925082820261222281611bce565b9150828204841483151761223957612238611f3b565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61229a602683611b48565b91506122a582612240565b604082019050919050565b5f6020820190508181035f8301526122c78161228e565b9050919050565b5f819050919050565b5f819050919050565b5f6122fa6122f56122f0846122ce565b6122d7565b611bce565b9050919050565b61230a816122e0565b82525050565b5f60c0820190506123235f830189611d7c565b6123306020830188611bd7565b61233d6040830187612301565b61234a6060830186612301565b6123576080830185611d7c565b61236460a0830184611bd7565b979650505050505050565b5f8151905061237d81611c5d565b92915050565b5f5f5f6060848603121561239a57612399611bff565b5b5f6123a78682870161236f565b93505060206123b88682870161236f565b92505060406123c98682870161236f565b9150509250925092565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612407602083611b48565b9150612412826123d3565b602082019050919050565b5f6020820190508181035f830152612434816123fb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612495602483611b48565b91506124a08261243b565b604082019050919050565b5f6020820190508181035f8301526124c281612489565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612523602283611b48565b915061252e826124c9565b604082019050919050565b5f6020820190508181035f83015261255081612517565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f61258b601d83611b48565b915061259682612557565b602082019050919050565b5f6020820190508181035f8301526125b88161257f565b9050919050565b7f4e6f74206c61756e6368656400000000000000000000000000000000000000005f82015250565b5f6125f3600c83611b48565b91506125fe826125bf565b602082019050919050565b5f6020820190508181035f830152612620816125e7565b9050919050565b7f4d4158205458204c494d495400000000000000000000000000000000000000005f82015250565b5f61265b600c83611b48565b915061266682612627565b602082019050919050565b5f6020820190508181035f8301526126888161264f565b9050919050565b5f61269982611bce565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036126cb576126ca611f3b565b5b600182019050919050565b7f457863656564732062757973206f6e2074686520666972737420626c6f636b2e5f82015250565b5f61270a602083611b48565b9150612715826126d6565b602082019050919050565b5f6020820190508181035f830152612737816126fe565b9050919050565b5f61274882611bce565b915061275383611bce565b925082820390508181111561276b5761276a611f3b565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506127d981611c33565b92915050565b5f602082840312156127f4576127f3611bff565b5b5f612801848285016127cb565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61283c81611c22565b82525050565b5f61284d8383612833565b60208301905092915050565b5f602082019050919050565b5f61286f8261280a565b6128798185612814565b935061288483612824565b805f5b838110156128b457815161289b8882612842565b97506128a683612859565b925050600181019050612887565b5085935050505092915050565b5f60a0820190506128d45f830188611bd7565b6128e16020830187612301565b81810360408301526128f38186612865565b90506129026060830185611d7c565b61290f6080830184611bd7565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612973602583611b48565b915061297e82612919565b604082019050919050565b5f6020820190508181035f8301526129a081612967565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612a01602383611b48565b9150612a0c826129a7565b604082019050919050565b5f6020820190508181035f830152612a2e816129f5565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612a8f602683611b48565b9150612a9a82612a35565b604082019050919050565b5f6020820190508181035f830152612abc81612a83565b905091905056fea26469706673582212200b7130d87841c9a17f4bd8a2ab4c3aecf894428d6d546884769c6e086a89d95e64736f6c634300081b0033000000000000000000000000ea3eef97d246094ebcc116bae036e2245b4fd471000000000000000000000000e45f02e4756d5aa58e8e2860adc42012b9313f19000000000000000000000000792d9847abcfb4bac35e431c313f6ef555e0da59000000000000000000000000341f59fd241525600532f80c63709e26ea2b26cc000000000000000000000000d994f0777024c7ccbd698639ae4d35f38db7c432

Deployed Bytecode

0x6080604052600436106101db575f3560e01c806395d89b4111610101578063c8c8ebe411610094578063db05e5cb11610063578063db05e5cb14610664578063dd62ed3e1461067a578063f2fde38b146106b6578063ffe270da146106de576101e2565b8063c8c8ebe4146105e6578063c9567bf914610610578063d579d4ed14610626578063d7acde1f1461063c576101e2565b8063a9e282b8116100d0578063a9e282b814610532578063aca2cd6e1461055a578063ad5dff7314610582578063bc337182146105be576101e2565b806395d89b4114610466578063a457c2d714610490578063a508de62146104cc578063a9059cbb146104f6576101e2565b80633950935111610179578063667f652611610148578063667f6526146103c257806370a08231146103ea578063715018a6146104265780638da5cb5b1461043c576101e2565b8063395093511461031c57806349bd5a5e1461035857806349deb75c146103825780634b203e1b14610398576101e2565b8063095ea7b3116101b5578063095ea7b31461025057806318160ddd1461028c57806323b872dd146102b6578063313ce567146102f2576101e2565b806306fdde03146101e6578063084cf615146102105780630949e8c81461023a576101e2565b366101e257005b5f5ffd5b3480156101f1575f5ffd5b506101fa6106f4565b6040516102079190611bae565b60405180910390f35b34801561021b575f5ffd5b50610224610784565b6040516102319190611be6565b60405180910390f35b348015610245575f5ffd5b5061024e61078a565b005b34801561025b575f5ffd5b5061027660048036038101906102719190611c87565b6107ae565b6040516102839190611cdf565b60405180910390f35b348015610297575f5ffd5b506102a06107d0565b6040516102ad9190611be6565b60405180910390f35b3480156102c1575f5ffd5b506102dc60048036038101906102d79190611cf8565b6107d9565b6040516102e99190611cdf565b60405180910390f35b3480156102fd575f5ffd5b50610306610807565b6040516103139190611d63565b60405180910390f35b348015610327575f5ffd5b50610342600480360381019061033d9190611c87565b61080f565b60405161034f9190611cdf565b60405180910390f35b348015610363575f5ffd5b5061036c610845565b6040516103799190611d8b565b60405180910390f35b34801561038d575f5ffd5b5061039661086a565b005b3480156103a3575f5ffd5b506103ac6108c1565b6040516103b99190611be6565b60405180910390f35b3480156103cd575f5ffd5b506103e860048036038101906103e39190611da4565b6108e8565b005b3480156103f5575f5ffd5b50610410600480360381019061040b9190611de2565b61091a565b60405161041d9190611be6565b60405180910390f35b348015610431575f5ffd5b5061043a61095f565b005b348015610447575f5ffd5b50610450610972565b60405161045d9190611d8b565b60405180910390f35b348015610471575f5ffd5b5061047a61099a565b6040516104879190611bae565b60405180910390f35b34801561049b575f5ffd5b506104b660048036038101906104b19190611c87565b610a2a565b6040516104c39190611cdf565b60405180910390f35b3480156104d7575f5ffd5b506104e0610a9f565b6040516104ed9190611be6565b60405180910390f35b348015610501575f5ffd5b5061051c60048036038101906105179190611c87565b610ac6565b6040516105299190611cdf565b60405180910390f35b34801561053d575f5ffd5b5061055860048036038101906105539190611e0d565b610ae8565b005b348015610565575f5ffd5b50610580600480360381019061057b9190611e62565b610b18565b005b34801561058d575f5ffd5b506105a860048036038101906105a39190611de2565b610b78565b6040516105b59190611cdf565b60405180910390f35b3480156105c9575f5ffd5b506105e460048036038101906105df9190611e0d565b610b95565b005b3480156105f1575f5ffd5b506105fa610c02565b6040516106079190611be6565b60405180910390f35b34801561061b575f5ffd5b50610624610c08565b005b348015610631575f5ffd5b5061063a610c33565b005b348015610647575f5ffd5b50610662600480360381019061065d9190611e0d565b610c99565b005b34801561066f575f5ffd5b50610678610cc9565b005b348015610685575f5ffd5b506106a0600480360381019061069b9190611ea0565b610ce1565b6040516106ad9190611be6565b60405180910390f35b3480156106c1575f5ffd5b506106dc60048036038101906106d79190611de2565b610d63565b005b3480156106e9575f5ffd5b506106f2610de5565b005b60606003805461070390611f0b565b80601f016020809104026020016040519081016040528092919081815260200182805461072f90611f0b565b801561077a5780601f106107515761010080835404028352916020019161077a565b820191905f5260205f20905b81548152906001019060200180831161075d57829003601f168201915b5050505050905090565b600c5481565b610792610edb565b5f600d60016101000a81548160ff021916908315150217905550565b5f5f6107b8610f59565b90506107c5818585610f60565b600191505092915050565b5f600254905090565b5f5f6107e3610f59565b90506107f0858285611123565b6107fb8585856111ae565b60019150509392505050565b5f6012905090565b5f5f610819610f59565b905061083a81858561082b8589610ce1565b6108359190611f68565b610f60565b600191505092915050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610872610edb565b60145f9054906101000a900460ff16156108a4575f60145f6101000a81548160ff0219169083151502179055506108bf565b600160145f6101000a81548160ff0219169083151502179055505b565b5f6108ca610807565b600a6108d691906120ca565b6011546108e39190612141565b905090565b6108f0610edb565b6014821080156109005750601481105b610908575f5ffd5b80600781905550816006819055505050565b5f5f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610967610edb565b6109705f611564565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546109a990611f0b565b80601f01602080910402602001604051908101604052809291908181526020018280546109d590611f0b565b8015610a205780601f106109f757610100808354040283529160200191610a20565b820191905f5260205f20905b815481529060010190602001808311610a0357829003601f168201915b5050505050905090565b5f5f610a34610f59565b90505f610a418286610ce1565b905083811015610a86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7d906121e1565b60405180910390fd5b610a938286868403610f60565b60019250505092915050565b5f610aa8610807565b600a610ab491906120ca565b601254610ac19190612141565b905090565b5f5f610ad0610f59565b9050610add8185856111ae565b600191505092915050565b610af0610edb565b610af8610807565b600a610b0491906120ca565b81610b0f91906121ff565b60118190555050565b610b20610edb565b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600a602052805f5260405f205f915054906101000a900460ff1681565b610b9d610edb565b6064610ba76107d0565b610bb19190612141565b610bb9610807565b600a610bc591906120ca565b82610bd091906121ff565b1015610bda575f5ffd5b610be2610807565b600a610bee91906120ca565b81610bf991906121ff565b600b8190555050565b600b5481565b610c10610edb565b6001600d5f6101000a81548160ff02191690831515021790555043600e81905550565b7f000000000000000000000000e45f02e4756d5aa58e8e2860adc42012b9313f1973ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610c96573d5f5f3e3d5ffd5b50565b610ca1610edb565b610ca9610807565b600a610cb591906120ca565b81610cc091906121ff565b60128190555050565b610cd1610edb565b610cd96107d0565b600b81905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610d6b610edb565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610dd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd0906122b0565b60405180910390fd5b610de281611564565b50565b610ded610edb565b610e213060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e1c3061091a565b610f60565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e693061091a565b5f5f610e73610972565b426040518863ffffffff1660e01b8152600401610e9596959493929190612310565b60606040518083038185885af1158015610eb1573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ed69190612383565b505050565b610ee3610f59565b73ffffffffffffffffffffffffffffffffffffffff16610f01610972565b73ffffffffffffffffffffffffffffffffffffffff1614610f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4e9061241d565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc5906124ab565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361103c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103390612539565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111169190611be6565b60405180910390a3505050565b5f61112e8484610ce1565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146111a8578181101561119a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611191906125a1565b60405180910390fd5b6111a78484848403610f60565b5b50505050565b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561124c5750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561155357600d5f9054906101000a900460ff1661129f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129690612609565b60405180910390fd5b5f5f9050600d60019054906101000a900460ff1680156112c1575043600e5414155b1561131057600c5482111561130b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130290612671565b60405180910390fd5b611356565b600b54821115611355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134c90612671565b60405180910390fd5b5b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361143d5760075490505f6113b93061091a565b9050601154811180156113d8575060145f9054906101000a900460ff16155b1561143757600f544311156113ef575f6010819055505b600360105410156114365760105f81548092919061140c9061268f565b919050555043600f8190555061143561143060125461142b8685611627565b611627565b61163f565b5b5b50611502565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611501576006549050600e5443036115005760135f8154809291906114b19061268f565b91905055505f9050601660135411156114ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f690612720565b60405180910390fd5b5b5b5b5f6064828461151191906121ff565b61151b9190612141565b90505f818461152a919061273e565b90505f8211156115405761153f8630846118c8565b5b61154b8686836118c8565b50505061155f565b61155e8383836118c8565b5b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8183116116355782611637565b815b905092915050565b600160145f6101000a81548160ff0219169083151502179055506116853060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610f60565b5f600267ffffffffffffffff8111156116a1576116a0612771565b5b6040519080825280602002602001820160405280156116cf5781602001602082028036833780820191505090505b50905030815f815181106116e6576116e561279e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561178a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117ae91906127df565b816001815181106117c2576117c161279e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f847f000000000000000000000000ea3eef97d246094ebcc116bae036e2245b4fd471426040518663ffffffff1660e01b815260040161187e9594939291906128c1565b5f604051808303815f87803b158015611895575f5ffd5b505af11580156118a7573d5f5f3e3d5ffd5b50505050505f60145f6101000a81548160ff02191690831515021790555050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611936576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192d90612989565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199b90612a17565b60405180910390fd5b6119af838383611b34565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2990612aa5565b60405180910390fd5b8181035f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b1b9190611be6565b60405180910390a3611b2e848484611b39565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611b8082611b3e565b611b8a8185611b48565b9350611b9a818560208601611b58565b611ba381611b66565b840191505092915050565b5f6020820190508181035f830152611bc68184611b76565b905092915050565b5f819050919050565b611be081611bce565b82525050565b5f602082019050611bf95f830184611bd7565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611c2c82611c03565b9050919050565b611c3c81611c22565b8114611c46575f5ffd5b50565b5f81359050611c5781611c33565b92915050565b611c6681611bce565b8114611c70575f5ffd5b50565b5f81359050611c8181611c5d565b92915050565b5f5f60408385031215611c9d57611c9c611bff565b5b5f611caa85828601611c49565b9250506020611cbb85828601611c73565b9150509250929050565b5f8115159050919050565b611cd981611cc5565b82525050565b5f602082019050611cf25f830184611cd0565b92915050565b5f5f5f60608486031215611d0f57611d0e611bff565b5b5f611d1c86828701611c49565b9350506020611d2d86828701611c49565b9250506040611d3e86828701611c73565b9150509250925092565b5f60ff82169050919050565b611d5d81611d48565b82525050565b5f602082019050611d765f830184611d54565b92915050565b611d8581611c22565b82525050565b5f602082019050611d9e5f830184611d7c565b92915050565b5f5f60408385031215611dba57611db9611bff565b5b5f611dc785828601611c73565b9250506020611dd885828601611c73565b9150509250929050565b5f60208284031215611df757611df6611bff565b5b5f611e0484828501611c49565b91505092915050565b5f60208284031215611e2257611e21611bff565b5b5f611e2f84828501611c73565b91505092915050565b611e4181611cc5565b8114611e4b575f5ffd5b50565b5f81359050611e5c81611e38565b92915050565b5f5f60408385031215611e7857611e77611bff565b5b5f611e8585828601611c49565b9250506020611e9685828601611e4e565b9150509250929050565b5f5f60408385031215611eb657611eb5611bff565b5b5f611ec385828601611c49565b9250506020611ed485828601611c49565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611f2257607f821691505b602082108103611f3557611f34611ede565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611f7282611bce565b9150611f7d83611bce565b9250828201905080821115611f9557611f94611f3b565b5b92915050565b5f8160011c9050919050565b5f5f8291508390505b6001851115611ff057808604811115611fcc57611fcb611f3b565b5b6001851615611fdb5780820291505b8081029050611fe985611f9b565b9450611fb0565b94509492505050565b5f8261200857600190506120c3565b81612015575f90506120c3565b816001811461202b576002811461203557612064565b60019150506120c3565b60ff84111561204757612046611f3b565b5b8360020a91508482111561205e5761205d611f3b565b5b506120c3565b5060208310610133831016604e8410600b84101617156120995782820a90508381111561209457612093611f3b565b5b6120c3565b6120a68484846001611fa7565b925090508184048111156120bd576120bc611f3b565b5b81810290505b9392505050565b5f6120d482611bce565b91506120df83611d48565b925061210c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611ff9565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61214b82611bce565b915061215683611bce565b92508261216657612165612114565b5b828204905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6121cb602583611b48565b91506121d682612171565b604082019050919050565b5f6020820190508181035f8301526121f8816121bf565b9050919050565b5f61220982611bce565b915061221483611bce565b925082820261222281611bce565b9150828204841483151761223957612238611f3b565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61229a602683611b48565b91506122a582612240565b604082019050919050565b5f6020820190508181035f8301526122c78161228e565b9050919050565b5f819050919050565b5f819050919050565b5f6122fa6122f56122f0846122ce565b6122d7565b611bce565b9050919050565b61230a816122e0565b82525050565b5f60c0820190506123235f830189611d7c565b6123306020830188611bd7565b61233d6040830187612301565b61234a6060830186612301565b6123576080830185611d7c565b61236460a0830184611bd7565b979650505050505050565b5f8151905061237d81611c5d565b92915050565b5f5f5f6060848603121561239a57612399611bff565b5b5f6123a78682870161236f565b93505060206123b88682870161236f565b92505060406123c98682870161236f565b9150509250925092565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612407602083611b48565b9150612412826123d3565b602082019050919050565b5f6020820190508181035f830152612434816123fb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612495602483611b48565b91506124a08261243b565b604082019050919050565b5f6020820190508181035f8301526124c281612489565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612523602283611b48565b915061252e826124c9565b604082019050919050565b5f6020820190508181035f83015261255081612517565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f61258b601d83611b48565b915061259682612557565b602082019050919050565b5f6020820190508181035f8301526125b88161257f565b9050919050565b7f4e6f74206c61756e6368656400000000000000000000000000000000000000005f82015250565b5f6125f3600c83611b48565b91506125fe826125bf565b602082019050919050565b5f6020820190508181035f830152612620816125e7565b9050919050565b7f4d4158205458204c494d495400000000000000000000000000000000000000005f82015250565b5f61265b600c83611b48565b915061266682612627565b602082019050919050565b5f6020820190508181035f8301526126888161264f565b9050919050565b5f61269982611bce565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036126cb576126ca611f3b565b5b600182019050919050565b7f457863656564732062757973206f6e2074686520666972737420626c6f636b2e5f82015250565b5f61270a602083611b48565b9150612715826126d6565b602082019050919050565b5f6020820190508181035f830152612737816126fe565b9050919050565b5f61274882611bce565b915061275383611bce565b925082820390508181111561276b5761276a611f3b565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506127d981611c33565b92915050565b5f602082840312156127f4576127f3611bff565b5b5f612801848285016127cb565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61283c81611c22565b82525050565b5f61284d8383612833565b60208301905092915050565b5f602082019050919050565b5f61286f8261280a565b6128798185612814565b935061288483612824565b805f5b838110156128b457815161289b8882612842565b97506128a683612859565b925050600181019050612887565b5085935050505092915050565b5f60a0820190506128d45f830188611bd7565b6128e16020830187612301565b81810360408301526128f38186612865565b90506129026060830185611d7c565b61290f6080830184611bd7565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612973602583611b48565b915061297e82612919565b604082019050919050565b5f6020820190508181035f8301526129a081612967565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612a01602383611b48565b9150612a0c826129a7565b604082019050919050565b5f6020820190508181035f830152612a2e816129f5565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612a8f602683611b48565b9150612a9a82612a35565b604082019050919050565b5f6020820190508181035f830152612abc81612a83565b905091905056fea26469706673582212200b7130d87841c9a17f4bd8a2ab4c3aecf894428d6d546884769c6e086a89d95e64736f6c634300081b0033

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

000000000000000000000000ea3eef97d246094ebcc116bae036e2245b4fd471000000000000000000000000e45f02e4756d5aa58e8e2860adc42012b9313f19000000000000000000000000792d9847abcfb4bac35e431c313f6ef555e0da59000000000000000000000000341f59fd241525600532f80c63709e26ea2b26cc000000000000000000000000d994f0777024c7ccbd698639ae4d35f38db7c432

-----Decoded View---------------
Arg [0] : _taxAddress (address): 0xEa3Eef97d246094EBCc116BAE036E2245b4FD471
Arg [1] : _marketingAddress (address): 0xE45F02e4756D5AA58e8E2860AdC42012B9313f19
Arg [2] : _reserve (address): 0x792d9847aBcfb4baC35e431C313F6EF555E0Da59
Arg [3] : _pubs (address): 0x341F59fd241525600532f80c63709e26EA2b26cc
Arg [4] : _ps (address): 0xD994F0777024c7CCbd698639AE4D35F38DB7C432

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000ea3eef97d246094ebcc116bae036e2245b4fd471
Arg [1] : 000000000000000000000000e45f02e4756d5aa58e8e2860adc42012b9313f19
Arg [2] : 000000000000000000000000792d9847abcfb4bac35e431c313f6ef555e0da59
Arg [3] : 000000000000000000000000341f59fd241525600532f80c63709e26ea2b26cc
Arg [4] : 000000000000000000000000d994f0777024c7ccbd698639ae4d35f38db7c432


Deployed Bytecode Sourcemap

963:6360:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2137:98:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1334:26:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3939:79;;;;;;;;;;;;;:::i;:::-;;4423:197:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3234:106;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5182:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3083:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5833:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1117:28:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3777:156;;;;;;;;;;;;;:::i;:::-;;3440:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6850:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3398:125:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1817:101:4;;;;;;;;;;;;;:::i;:::-;;1194:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2348:102:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6554:427;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4024:101:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3719:189:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3663:108:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6599:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1151:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6379:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1293:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6732:108;;;;;;;;;;;;;:::i;:::-;;7182:104;;;;;;;;;;;;;:::i;:::-;;3547:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7077:99;;;;;;;;;;;;;:::i;:::-;;3966:149:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2067:198:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3070:363:5;;;;;;;;;;;;;:::i;:::-;;2137:98:1;2191:13;2223:5;2216:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2137:98;:::o;1334:26:5:-;;;;:::o;3939:79::-;1087:13:4;:11;:13::i;:::-;4006:5:5::1;3993:10;;:18;;;;;;;;;;;;;;;;;;3939:79::o:0;4423:197:1:-;4506:4;4522:13;4538:12;:10;:12::i;:::-;4522:28;;4560:32;4569:5;4576:7;4585:6;4560:8;:32::i;:::-;4609:4;4602:11;;;4423:197;;;;:::o;3234:106::-;3295:7;3321:12;;3314:19;;3234:106;:::o;5182:256::-;5279:4;5295:15;5313:12;:10;:12::i;:::-;5295:30;;5335:38;5351:4;5357:7;5366:6;5335:15;:38::i;:::-;5383:27;5393:4;5399:2;5403:6;5383:9;:27::i;:::-;5427:4;5420:11;;;5182:256;;;;;:::o;3083:91::-;3141:5;3165:2;3158:9;;3083:91;:::o;5833:234::-;5921:4;5937:13;5953:12;:10;:12::i;:::-;5937:28;;5975:64;5984:5;5991:7;6028:10;6000:25;6010:5;6017:7;6000:9;:25::i;:::-;:38;;;;:::i;:::-;5975:8;:64::i;:::-;6056:4;6049:11;;;5833:234;;;;:::o;1117:28:5:-;;;;;;;;;;;;;:::o;3777:156::-;1087:13:4;:11;:13::i;:::-;3837:6:5::1;;;;;;;;;;;3833:94;;;3867:5;3858:6;;:14;;;;;;;;;;;;;;;;;;3833:94;;;3912:4;3903:6;;:13;;;;;;;;;;;;;;;;;;3833:94;3777:156::o:0;3440:101::-;3485:7;3524:10;:8;:10::i;:::-;3520:2;:14;;;;:::i;:::-;3510:7;;:24;;;;:::i;:::-;3503:31;;3440:101;:::o;6850:221::-;1087:13:4;:11;:13::i;:::-;6955:2:5::1;6943:9;:14;:33;;;;;6974:2;6961:10;:15;6943:33;6935:42;;;;;;7026:10;7016:7;:20;;;;7055:9;7046:6;:18;;;;6850:221:::0;;:::o;3398:125:1:-;3472:7;3498:9;:18;3508:7;3498:18;;;;;;;;;;;;;;;;3491:25;;3398:125;;;:::o;1817:101:4:-;1087:13;:11;:13::i;:::-;1881:30:::1;1908:1;1881:18;:30::i;:::-;1817:101::o:0;1194:85::-;1240:7;1266:6;;;;;;;;;;;1259:13;;1194:85;:::o;2348:102:1:-;2404:13;2436:7;2429:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2348:102;:::o;6554:427::-;6647:4;6663:13;6679:12;:10;:12::i;:::-;6663:28;;6701:24;6728:25;6738:5;6745:7;6728:9;:25::i;:::-;6701:52;;6791:15;6771:16;:35;;6763:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6882:60;6891:5;6898:7;6926:15;6907:16;:34;6882:8;:60::i;:::-;6970:4;6963:11;;;;6554:427;;;;:::o;4024:101:5:-;4069:7;4108:10;:8;:10::i;:::-;4104:2;:14;;;;:::i;:::-;4094:7;;:24;;;;:::i;:::-;4087:31;;4024:101;:::o;3719:189:1:-;3798:4;3814:13;3830:12;:10;:12::i;:::-;3814:28;;3852;3862:5;3869:2;3873:6;3852:9;:28::i;:::-;3897:4;3890:11;;;3719:189;;;;:::o;3663:108:5:-;1087:13:4;:11;:13::i;:::-;3754:10:5::1;:8;:10::i;:::-;3750:2;:14;;;;:::i;:::-;3739:8;:25;;;;:::i;:::-;3729:7;:35;;;;3663:108:::0;:::o;6599:123::-;1087:13:4;:11;:13::i;:::-;6708:7:5::1;6687:8;:18;6696:8;6687:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;6599:123:::0;;:::o;1151:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;6379:214::-;1087:13:4;:11;:13::i;:::-;6494:3:5::1;6480:13;:11;:13::i;:::-;:17;;;;:::i;:::-;6466:10;:8;:10::i;:::-;6462:2;:14;;;;:::i;:::-;6452:8;:24;;;;:::i;:::-;:45;;6444:54;;;;;;6576:10;:8;:10::i;:::-;6572:2;:14;;;;:::i;:::-;6561:8;:25;;;;:::i;:::-;6538:20;:48;;;;6379:214:::0;:::o;1293:35::-;;;;:::o;6732:108::-;1087:13:4;:11;:13::i;:::-;6793:4:5::1;6784:6;;:13;;;;;;;;;;;;;;;;;;6821:12;6807:11;:26;;;;6732:108::o:0;7182:104::-;7230:16;7222:34;;:57;7257:21;7222:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7182:104::o;3547:110::-;1087:13:4;:11;:13::i;:::-;3640:10:5::1;:8;:10::i;:::-;3636:2;:14;;;;:::i;:::-;3625:8;:25;;;;:::i;:::-;3615:7;:35;;;;3547:110:::0;:::o;7077:99::-;1087:13:4;:11;:13::i;:::-;7156::5::1;:11;:13::i;:::-;7133:20;:36;;;;7077:99::o:0;3966:149:1:-;4055:7;4081:11;:18;4093:5;4081:18;;;;;;;;;;;;;;;:27;4100:7;4081:27;;;;;;;;;;;;;;;;4074:34;;3966:149;;;;:::o;2067:198:4:-;1087:13;:11;:13::i;:::-;2175:1:::1;2155:22;;:8;:22;;::::0;2147:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2230:28;2249:8;2230:18;:28::i;:::-;2067:198:::0;:::o;3070:363:5:-;1087:13:4;:11;:13::i;:::-;3125:75:5::1;3142:4;3157:15;;;;;;;;;;;3175:24;3193:4;3175:9;:24::i;:::-;3125:8;:75::i;:::-;3210:15;;;;;;;;;;;:31;;;3249:21;3293:4;3312:24;3330:4;3312:9;:24::i;:::-;3350:1;3365;3380:7;:5;:7::i;:::-;3401:15;3210:216;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;3070:363::o:0;1352:130:4:-;1426:12;:10;:12::i;:::-;1415:23;;:7;:5;:7::i;:::-;:23;;;1407:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1352:130::o;640:96:0:-;693:7;719:10;712:17;;640:96;:::o;10436:340:1:-;10554:1;10537:19;;:5;:19;;;10529:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10634:1;10615:21;;:7;:21;;;10607:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10716:6;10686:11;:18;10698:5;10686:18;;;;;;;;;;;;;;;:27;10705:7;10686:27;;;;;;;;;;;;;;;:36;;;;10753:7;10737:32;;10746:5;10737:32;;;10762:6;10737:32;;;;;;:::i;:::-;;;;;;;;10436:340;;;:::o;11057:411::-;11157:24;11184:25;11194:5;11201:7;11184:9;:25::i;:::-;11157:52;;11243:17;11223:16;:37;11219:243;;11304:6;11284:16;:26;;11276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11386:51;11395:5;11402:7;11430:6;11411:16;:25;11386:8;:51::i;:::-;11219:243;11147:321;11057:411;;;:::o;4612:1659:5:-;4713:8;:14;4722:4;4713:14;;;;;;;;;;;;;;;;;;;;;;;;;4712:15;:32;;;;;4732:8;:12;4741:2;4732:12;;;;;;;;;;;;;;;;;;;;;;;;;4731:13;4712:32;4708:1515;;;4768:6;;;;;;;;;;;4760:31;;;;;;;;;;;;:::i;:::-;;;;;;;;;4805:11;4819:1;4805:15;;4851:10;;;;;;;;;;;:39;;;;;4878:12;4865:11;;:25;;4851:39;4847:215;;;4926:11;;4917:5;:20;;4909:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;4847:215;;;5010:20;;5001:5;:29;;4993:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;4847:215;5086:13;;;;;;;;;;;5080:19;;:2;:19;;;5076:842;;5125:7;;5119:13;;5150:18;5171:24;5189:4;5171:9;:24::i;:::-;5150:45;;5230:7;;5217:10;:20;:31;;;;;5242:6;;;;;;;;;;;5241:7;5217:31;5213:403;;;5291:13;;5276:12;:28;5272:96;;;5344:1;5332:9;:13;;;;5272:96;5405:1;5393:9;;:13;5389:209;;;5433:9;;:11;;;;;;;;;:::i;:::-;;;;;;5486:12;5470:13;:28;;;;5524:51;5538:36;5542:7;;5551:22;5555:5;5562:10;5551:3;:22::i;:::-;5538:3;:36::i;:::-;5524:13;:51::i;:::-;5389:209;5213:403;5101:529;5076:842;;;5648:13;;;;;;;;;;;5640:21;;:4;:21;;;5636:282;;5686:6;;5680:12;;5729:11;;5713:12;:27;5710:194;;5763:9;;:11;;;;;;;;;:::i;:::-;;;;;;5803:1;5797:7;;5847:2;5834:9;;:15;;5826:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;5710:194;5636:282;5076:842;5932:17;5966:3;5960;5952:5;:11;;;;:::i;:::-;:17;;;;:::i;:::-;5932:37;;5983:22;6016:9;6008:5;:17;;;;:::i;:::-;5983:42;;6056:1;6044:9;:13;6040:98;;;6076:47;6092:4;6106;6113:9;6076:15;:47::i;:::-;6040:98;6151:41;6167:4;6173:2;6177:14;6151:15;:41::i;:::-;6206:7;;;;;4708:1515;6232:32;6248:4;6254:2;6258:5;6232:15;:32::i;:::-;4612:1659;;;;:::o;2419:187:4:-;2492:16;2511:6;;;;;;;;;;;2492:25;;2536:8;2527:6;;:17;;;;;;;;;;;;;;;;;;2590:8;2559:40;;2580:8;2559:40;;;;;;;;;;;;2482:124;2419:187;:::o;6277:96:5:-;6334:7;6360:1;6358;:3;6357:9;;6365:1;6357:9;;;6363:1;6357:9;6350:16;;6277:96;;;;:::o;4131:475::-;1691:4;1682:6;;:13;;;;;;;;;;;;;;;;;;4206:62:::1;4223:4;4238:15;;;;;;;;;;;4256:11;4206:8;:62::i;:::-;4287:21;4325:1;4311:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4287:40;;4355:4;4337;4342:1;4337:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;4380:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4370:4;4375:1;4370:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;4412:15;;;;;;;;;;;:66;;;4492:11;4517:1;4532:4;4550:10;4574:15;4412:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4196:410;1725:5:::0;1716:6;;:14;;;;;;;;;;;;;;;;;;4131:475;:::o;7435:788:1:-;7547:1;7531:18;;:4;:18;;;7523:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7623:1;7609:16;;:2;:16;;;7601:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7676:38;7697:4;7703:2;7707:6;7676:20;:38::i;:::-;7725:19;7747:9;:15;7757:4;7747:15;;;;;;;;;;;;;;;;7725:37;;7795:6;7780:11;:21;;7772:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7910:6;7896:11;:20;7878:9;:15;7888:4;7878:15;;;;;;;;;;;;;;;:38;;;;8110:6;8093:9;:13;8103:2;8093:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;8157:2;8142:26;;8151:4;8142:26;;;8161:6;8142:26;;;;;;:::i;:::-;;;;;;;;8179:37;8199:4;8205:2;8209:6;8179:19;:37::i;:::-;7513:710;7435:788;;;:::o;12052:91::-;;;;:::o;12731:90::-;;;;:::o;7:99:6:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:77::-;1279:7;1308:5;1297:16;;1242:77;;;:::o;1325:118::-;1412:24;1430:5;1412:24;:::i;:::-;1407:3;1400:37;1325:118;;:::o;1449:222::-;1542:4;1580:2;1569:9;1565:18;1557:26;;1593:71;1661:1;1650:9;1646:17;1637:6;1593:71;:::i;:::-;1449:222;;;;:::o;1758:117::-;1867:1;1864;1857:12;2004:126;2041:7;2081:42;2074:5;2070:54;2059:65;;2004:126;;;:::o;2136:96::-;2173:7;2202:24;2220:5;2202:24;:::i;:::-;2191:35;;2136:96;;;:::o;2238:122::-;2311:24;2329:5;2311:24;:::i;:::-;2304:5;2301:35;2291:63;;2350:1;2347;2340:12;2291:63;2238:122;:::o;2366:139::-;2412:5;2450:6;2437:20;2428:29;;2466:33;2493:5;2466:33;:::i;:::-;2366:139;;;;:::o;2511:122::-;2584:24;2602:5;2584:24;:::i;:::-;2577:5;2574:35;2564:63;;2623:1;2620;2613:12;2564:63;2511:122;:::o;2639:139::-;2685:5;2723:6;2710:20;2701:29;;2739:33;2766:5;2739:33;:::i;:::-;2639:139;;;;:::o;2784:474::-;2852:6;2860;2909:2;2897:9;2888:7;2884:23;2880:32;2877:119;;;2915:79;;:::i;:::-;2877:119;3035:1;3060:53;3105:7;3096:6;3085:9;3081:22;3060:53;:::i;:::-;3050:63;;3006:117;3162:2;3188:53;3233:7;3224:6;3213:9;3209:22;3188:53;:::i;:::-;3178:63;;3133:118;2784:474;;;;;:::o;3264:90::-;3298:7;3341:5;3334:13;3327:21;3316:32;;3264:90;;;:::o;3360:109::-;3441:21;3456:5;3441:21;:::i;:::-;3436:3;3429:34;3360:109;;:::o;3475:210::-;3562:4;3600:2;3589:9;3585:18;3577:26;;3613:65;3675:1;3664:9;3660:17;3651:6;3613:65;:::i;:::-;3475:210;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:118::-;4833:24;4851:5;4833:24;:::i;:::-;4828:3;4821:37;4746:118;;:::o;4870:222::-;4963:4;5001:2;4990:9;4986:18;4978:26;;5014:71;5082:1;5071:9;5067:17;5058:6;5014:71;:::i;:::-;4870:222;;;;:::o;5098:474::-;5166:6;5174;5223:2;5211:9;5202:7;5198:23;5194:32;5191:119;;;5229:79;;:::i;:::-;5191:119;5349:1;5374:53;5419:7;5410:6;5399:9;5395:22;5374:53;:::i;:::-;5364:63;;5320:117;5476:2;5502:53;5547:7;5538:6;5527:9;5523:22;5502:53;:::i;:::-;5492:63;;5447:118;5098:474;;;;;:::o;5578:329::-;5637:6;5686:2;5674:9;5665:7;5661:23;5657:32;5654:119;;;5692:79;;:::i;:::-;5654:119;5812:1;5837:53;5882:7;5873:6;5862:9;5858:22;5837:53;:::i;:::-;5827:63;;5783:117;5578:329;;;;:::o;5913:::-;5972:6;6021:2;6009:9;6000:7;5996:23;5992:32;5989:119;;;6027:79;;:::i;:::-;5989:119;6147:1;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;:::-;6162:63;;6118:117;5913:329;;;;:::o;6248:116::-;6318:21;6333:5;6318:21;:::i;:::-;6311:5;6308:32;6298:60;;6354:1;6351;6344:12;6298:60;6248:116;:::o;6370:133::-;6413:5;6451:6;6438:20;6429:29;;6467:30;6491:5;6467:30;:::i;:::-;6370:133;;;;:::o;6509:468::-;6574:6;6582;6631:2;6619:9;6610:7;6606:23;6602:32;6599:119;;;6637:79;;:::i;:::-;6599:119;6757:1;6782:53;6827:7;6818:6;6807:9;6803:22;6782:53;:::i;:::-;6772:63;;6728:117;6884:2;6910:50;6952:7;6943:6;6932:9;6928:22;6910:50;:::i;:::-;6900:60;;6855:115;6509:468;;;;;:::o;6983:474::-;7051:6;7059;7108:2;7096:9;7087:7;7083:23;7079:32;7076:119;;;7114:79;;:::i;:::-;7076:119;7234:1;7259:53;7304:7;7295:6;7284:9;7280:22;7259:53;:::i;:::-;7249:63;;7205:117;7361:2;7387:53;7432:7;7423:6;7412:9;7408:22;7387:53;:::i;:::-;7377:63;;7332:118;6983:474;;;;;:::o;7463:180::-;7511:77;7508:1;7501:88;7608:4;7605:1;7598:15;7632:4;7629:1;7622:15;7649:320;7693:6;7730:1;7724:4;7720:12;7710:22;;7777:1;7771:4;7767:12;7798:18;7788:81;;7854:4;7846:6;7842:17;7832:27;;7788:81;7916:2;7908:6;7905:14;7885:18;7882:38;7879:84;;7935:18;;:::i;:::-;7879:84;7700:269;7649:320;;;:::o;7975:180::-;8023:77;8020:1;8013:88;8120:4;8117:1;8110:15;8144:4;8141:1;8134:15;8161:191;8201:3;8220:20;8238:1;8220:20;:::i;:::-;8215:25;;8254:20;8272:1;8254:20;:::i;:::-;8249:25;;8297:1;8294;8290:9;8283:16;;8318:3;8315:1;8312:10;8309:36;;;8325:18;;:::i;:::-;8309:36;8161:191;;;;:::o;8358:102::-;8400:8;8447:5;8444:1;8440:13;8419:34;;8358:102;;;:::o;8466:848::-;8527:5;8534:4;8558:6;8549:15;;8582:5;8573:14;;8596:712;8617:1;8607:8;8604:15;8596:712;;;8712:4;8707:3;8703:14;8697:4;8694:24;8691:50;;;8721:18;;:::i;:::-;8691:50;8771:1;8761:8;8757:16;8754:451;;;9186:4;9179:5;9175:16;9166:25;;8754:451;9236:4;9230;9226:15;9218:23;;9266:32;9289:8;9266:32;:::i;:::-;9254:44;;8596:712;;;8466:848;;;;;;;:::o;9320:1073::-;9374:5;9565:8;9555:40;;9586:1;9577:10;;9588:5;;9555:40;9614:4;9604:36;;9631:1;9622:10;;9633:5;;9604:36;9700:4;9748:1;9743:27;;;;9784:1;9779:191;;;;9693:277;;9743:27;9761:1;9752:10;;9763:5;;;9779:191;9824:3;9814:8;9811:17;9808:43;;;9831:18;;:::i;:::-;9808:43;9880:8;9877:1;9873:16;9864:25;;9915:3;9908:5;9905:14;9902:40;;;9922:18;;:::i;:::-;9902:40;9955:5;;;9693:277;;10079:2;10069:8;10066:16;10060:3;10054:4;10051:13;10047:36;10029:2;10019:8;10016:16;10011:2;10005:4;10002:12;9998:35;9982:111;9979:246;;;10135:8;10129:4;10125:19;10116:28;;10170:3;10163:5;10160:14;10157:40;;;10177:18;;:::i;:::-;10157:40;10210:5;;9979:246;10250:42;10288:3;10278:8;10272:4;10269:1;10250:42;:::i;:::-;10235:57;;;;10324:4;10319:3;10315:14;10308:5;10305:25;10302:51;;;10333:18;;:::i;:::-;10302:51;10382:4;10375:5;10371:16;10362:25;;9320:1073;;;;;;:::o;10399:281::-;10457:5;10481:23;10499:4;10481:23;:::i;:::-;10473:31;;10525:25;10541:8;10525:25;:::i;:::-;10513:37;;10569:104;10606:66;10596:8;10590:4;10569:104;:::i;:::-;10560:113;;10399:281;;;;:::o;10686:180::-;10734:77;10731:1;10724:88;10831:4;10828:1;10821:15;10855:4;10852:1;10845:15;10872:185;10912:1;10929:20;10947:1;10929:20;:::i;:::-;10924:25;;10963:20;10981:1;10963:20;:::i;:::-;10958:25;;11002:1;10992:35;;11007:18;;:::i;:::-;10992:35;11049:1;11046;11042:9;11037:14;;10872:185;;;;:::o;11063:224::-;11203:34;11199:1;11191:6;11187:14;11180:58;11272:7;11267:2;11259:6;11255:15;11248:32;11063:224;:::o;11293:366::-;11435:3;11456:67;11520:2;11515:3;11456:67;:::i;:::-;11449:74;;11532:93;11621:3;11532:93;:::i;:::-;11650:2;11645:3;11641:12;11634:19;;11293:366;;;:::o;11665:419::-;11831:4;11869:2;11858:9;11854:18;11846:26;;11918:9;11912:4;11908:20;11904:1;11893:9;11889:17;11882:47;11946:131;12072:4;11946:131;:::i;:::-;11938:139;;11665:419;;;:::o;12090:410::-;12130:7;12153:20;12171:1;12153:20;:::i;:::-;12148:25;;12187:20;12205:1;12187:20;:::i;:::-;12182:25;;12242:1;12239;12235:9;12264:30;12282:11;12264:30;:::i;:::-;12253:41;;12443:1;12434:7;12430:15;12427:1;12424:22;12404:1;12397:9;12377:83;12354:139;;12473:18;;:::i;:::-;12354:139;12138:362;12090:410;;;;:::o;12506:225::-;12646:34;12642:1;12634:6;12630:14;12623:58;12715:8;12710:2;12702:6;12698:15;12691:33;12506:225;:::o;12737:366::-;12879:3;12900:67;12964:2;12959:3;12900:67;:::i;:::-;12893:74;;12976:93;13065:3;12976:93;:::i;:::-;13094:2;13089:3;13085:12;13078:19;;12737:366;;;:::o;13109:419::-;13275:4;13313:2;13302:9;13298:18;13290:26;;13362:9;13356:4;13352:20;13348:1;13337:9;13333:17;13326:47;13390:131;13516:4;13390:131;:::i;:::-;13382:139;;13109:419;;;:::o;13534:85::-;13579:7;13608:5;13597:16;;13534:85;;;:::o;13625:60::-;13653:3;13674:5;13667:12;;13625:60;;;:::o;13691:158::-;13749:9;13782:61;13800:42;13809:32;13835:5;13809:32;:::i;:::-;13800:42;:::i;:::-;13782:61;:::i;:::-;13769:74;;13691:158;;;:::o;13855:147::-;13950:45;13989:5;13950:45;:::i;:::-;13945:3;13938:58;13855:147;;:::o;14008:807::-;14257:4;14295:3;14284:9;14280:19;14272:27;;14309:71;14377:1;14366:9;14362:17;14353:6;14309:71;:::i;:::-;14390:72;14458:2;14447:9;14443:18;14434:6;14390:72;:::i;:::-;14472:80;14548:2;14537:9;14533:18;14524:6;14472:80;:::i;:::-;14562;14638:2;14627:9;14623:18;14614:6;14562:80;:::i;:::-;14652:73;14720:3;14709:9;14705:19;14696:6;14652:73;:::i;:::-;14735;14803:3;14792:9;14788:19;14779:6;14735:73;:::i;:::-;14008:807;;;;;;;;;:::o;14821:143::-;14878:5;14909:6;14903:13;14894:22;;14925:33;14952:5;14925:33;:::i;:::-;14821:143;;;;:::o;14970:663::-;15058:6;15066;15074;15123:2;15111:9;15102:7;15098:23;15094:32;15091:119;;;15129:79;;:::i;:::-;15091:119;15249:1;15274:64;15330:7;15321:6;15310:9;15306:22;15274:64;:::i;:::-;15264:74;;15220:128;15387:2;15413:64;15469:7;15460:6;15449:9;15445:22;15413:64;:::i;:::-;15403:74;;15358:129;15526:2;15552:64;15608:7;15599:6;15588:9;15584:22;15552:64;:::i;:::-;15542:74;;15497:129;14970:663;;;;;:::o;15639:182::-;15779:34;15775:1;15767:6;15763:14;15756:58;15639:182;:::o;15827:366::-;15969:3;15990:67;16054:2;16049:3;15990:67;:::i;:::-;15983:74;;16066:93;16155:3;16066:93;:::i;:::-;16184:2;16179:3;16175:12;16168:19;;15827:366;;;:::o;16199:419::-;16365:4;16403:2;16392:9;16388:18;16380:26;;16452:9;16446:4;16442:20;16438:1;16427:9;16423:17;16416:47;16480:131;16606:4;16480:131;:::i;:::-;16472:139;;16199:419;;;:::o;16624:223::-;16764:34;16760:1;16752:6;16748:14;16741:58;16833:6;16828:2;16820:6;16816:15;16809:31;16624:223;:::o;16853:366::-;16995:3;17016:67;17080:2;17075:3;17016:67;:::i;:::-;17009:74;;17092:93;17181:3;17092:93;:::i;:::-;17210:2;17205:3;17201:12;17194:19;;16853:366;;;:::o;17225:419::-;17391:4;17429:2;17418:9;17414:18;17406:26;;17478:9;17472:4;17468:20;17464:1;17453:9;17449:17;17442:47;17506:131;17632:4;17506:131;:::i;:::-;17498:139;;17225:419;;;:::o;17650:221::-;17790:34;17786:1;17778:6;17774:14;17767:58;17859:4;17854:2;17846:6;17842:15;17835:29;17650:221;:::o;17877:366::-;18019:3;18040:67;18104:2;18099:3;18040:67;:::i;:::-;18033:74;;18116:93;18205:3;18116:93;:::i;:::-;18234:2;18229:3;18225:12;18218:19;;17877:366;;;:::o;18249:419::-;18415:4;18453:2;18442:9;18438:18;18430:26;;18502:9;18496:4;18492:20;18488:1;18477:9;18473:17;18466:47;18530:131;18656:4;18530:131;:::i;:::-;18522:139;;18249:419;;;:::o;18674:179::-;18814:31;18810:1;18802:6;18798:14;18791:55;18674:179;:::o;18859:366::-;19001:3;19022:67;19086:2;19081:3;19022:67;:::i;:::-;19015:74;;19098:93;19187:3;19098:93;:::i;:::-;19216:2;19211:3;19207:12;19200:19;;18859:366;;;:::o;19231:419::-;19397:4;19435:2;19424:9;19420:18;19412:26;;19484:9;19478:4;19474:20;19470:1;19459:9;19455:17;19448:47;19512:131;19638:4;19512:131;:::i;:::-;19504:139;;19231:419;;;:::o;19656:162::-;19796:14;19792:1;19784:6;19780:14;19773:38;19656:162;:::o;19824:366::-;19966:3;19987:67;20051:2;20046:3;19987:67;:::i;:::-;19980:74;;20063:93;20152:3;20063:93;:::i;:::-;20181:2;20176:3;20172:12;20165:19;;19824:366;;;:::o;20196:419::-;20362:4;20400:2;20389:9;20385:18;20377:26;;20449:9;20443:4;20439:20;20435:1;20424:9;20420:17;20413:47;20477:131;20603:4;20477:131;:::i;:::-;20469:139;;20196:419;;;:::o;20621:162::-;20761:14;20757:1;20749:6;20745:14;20738:38;20621:162;:::o;20789:366::-;20931:3;20952:67;21016:2;21011:3;20952:67;:::i;:::-;20945:74;;21028:93;21117:3;21028:93;:::i;:::-;21146:2;21141:3;21137:12;21130:19;;20789:366;;;:::o;21161:419::-;21327:4;21365:2;21354:9;21350:18;21342:26;;21414:9;21408:4;21404:20;21400:1;21389:9;21385:17;21378:47;21442:131;21568:4;21442:131;:::i;:::-;21434:139;;21161:419;;;:::o;21586:233::-;21625:3;21648:24;21666:5;21648:24;:::i;:::-;21639:33;;21694:66;21687:5;21684:77;21681:103;;21764:18;;:::i;:::-;21681:103;21811:1;21804:5;21800:13;21793:20;;21586:233;;;:::o;21825:182::-;21965:34;21961:1;21953:6;21949:14;21942:58;21825:182;:::o;22013:366::-;22155:3;22176:67;22240:2;22235:3;22176:67;:::i;:::-;22169:74;;22252:93;22341:3;22252:93;:::i;:::-;22370:2;22365:3;22361:12;22354:19;;22013:366;;;:::o;22385:419::-;22551:4;22589:2;22578:9;22574:18;22566:26;;22638:9;22632:4;22628:20;22624:1;22613:9;22609:17;22602:47;22666:131;22792:4;22666:131;:::i;:::-;22658:139;;22385:419;;;:::o;22810:194::-;22850:4;22870:20;22888:1;22870:20;:::i;:::-;22865:25;;22904:20;22922:1;22904:20;:::i;:::-;22899:25;;22948:1;22945;22941:9;22933:17;;22972:1;22966:4;22963:11;22960:37;;;22977:18;;:::i;:::-;22960:37;22810:194;;;;:::o;23010:180::-;23058:77;23055:1;23048:88;23155:4;23152:1;23145:15;23179:4;23176:1;23169:15;23196:180;23244:77;23241:1;23234:88;23341:4;23338:1;23331:15;23365:4;23362:1;23355:15;23382:143;23439:5;23470:6;23464:13;23455:22;;23486:33;23513:5;23486:33;:::i;:::-;23382:143;;;;:::o;23531:351::-;23601:6;23650:2;23638:9;23629:7;23625:23;23621:32;23618:119;;;23656:79;;:::i;:::-;23618:119;23776:1;23801:64;23857:7;23848:6;23837:9;23833:22;23801:64;:::i;:::-;23791:74;;23747:128;23531:351;;;;:::o;23888:114::-;23955:6;23989:5;23983:12;23973:22;;23888:114;;;:::o;24008:184::-;24107:11;24141:6;24136:3;24129:19;24181:4;24176:3;24172:14;24157:29;;24008:184;;;;:::o;24198:132::-;24265:4;24288:3;24280:11;;24318:4;24313:3;24309:14;24301:22;;24198:132;;;:::o;24336:108::-;24413:24;24431:5;24413:24;:::i;:::-;24408:3;24401:37;24336:108;;:::o;24450:179::-;24519:10;24540:46;24582:3;24574:6;24540:46;:::i;:::-;24618:4;24613:3;24609:14;24595:28;;24450:179;;;;:::o;24635:113::-;24705:4;24737;24732:3;24728:14;24720:22;;24635:113;;;:::o;24784:732::-;24903:3;24932:54;24980:5;24932:54;:::i;:::-;25002:86;25081:6;25076:3;25002:86;:::i;:::-;24995:93;;25112:56;25162:5;25112:56;:::i;:::-;25191:7;25222:1;25207:284;25232:6;25229:1;25226:13;25207:284;;;25308:6;25302:13;25335:63;25394:3;25379:13;25335:63;:::i;:::-;25328:70;;25421:60;25474:6;25421:60;:::i;:::-;25411:70;;25267:224;25254:1;25251;25247:9;25242:14;;25207:284;;;25211:14;25507:3;25500:10;;24908:608;;;24784:732;;;;:::o;25522:831::-;25785:4;25823:3;25812:9;25808:19;25800:27;;25837:71;25905:1;25894:9;25890:17;25881:6;25837:71;:::i;:::-;25918:80;25994:2;25983:9;25979:18;25970:6;25918:80;:::i;:::-;26045:9;26039:4;26035:20;26030:2;26019:9;26015:18;26008:48;26073:108;26176:4;26167:6;26073:108;:::i;:::-;26065:116;;26191:72;26259:2;26248:9;26244:18;26235:6;26191:72;:::i;:::-;26273:73;26341:3;26330:9;26326:19;26317:6;26273:73;:::i;:::-;25522:831;;;;;;;;:::o;26359:224::-;26499:34;26495:1;26487:6;26483:14;26476:58;26568:7;26563:2;26555:6;26551:15;26544:32;26359:224;:::o;26589:366::-;26731:3;26752:67;26816:2;26811:3;26752:67;:::i;:::-;26745:74;;26828:93;26917:3;26828:93;:::i;:::-;26946:2;26941:3;26937:12;26930:19;;26589:366;;;:::o;26961:419::-;27127:4;27165:2;27154:9;27150:18;27142:26;;27214:9;27208:4;27204:20;27200:1;27189:9;27185:17;27178:47;27242:131;27368:4;27242:131;:::i;:::-;27234:139;;26961:419;;;:::o;27386:222::-;27526:34;27522:1;27514:6;27510:14;27503:58;27595:5;27590:2;27582:6;27578:15;27571:30;27386:222;:::o;27614:366::-;27756:3;27777:67;27841:2;27836:3;27777:67;:::i;:::-;27770:74;;27853:93;27942:3;27853:93;:::i;:::-;27971:2;27966:3;27962:12;27955:19;;27614:366;;;:::o;27986:419::-;28152:4;28190:2;28179:9;28175:18;28167:26;;28239:9;28233:4;28229:20;28225:1;28214:9;28210:17;28203:47;28267:131;28393:4;28267:131;:::i;:::-;28259:139;;27986:419;;;:::o;28411:225::-;28551:34;28547:1;28539:6;28535:14;28528:58;28620:8;28615:2;28607:6;28603:15;28596:33;28411:225;:::o;28642:366::-;28784:3;28805:67;28869:2;28864:3;28805:67;:::i;:::-;28798:74;;28881:93;28970:3;28881:93;:::i;:::-;28999:2;28994:3;28990:12;28983:19;;28642:366;;;:::o;29014:419::-;29180:4;29218:2;29207:9;29203:18;29195:26;;29267:9;29261:4;29257:20;29253:1;29242:9;29238:17;29231:47;29295:131;29421:4;29295:131;:::i;:::-;29287:139;;29014:419;;;:::o

Swarm Source

ipfs://0b7130d87841c9a17f4bd8a2ab4c3aecf894428d6d546884769c6e086a89d95e
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.