ETH Price: $3,106.44 (-4.22%)
 

Overview

Max Total Supply

1,124,000,000 RCOF

Holders

1,246

Transfers

-
47 ( -54.37%)

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
RCOFinance

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2025-01-07
*/

/**
 *Submitted for verification at Etherscan.io on 2025-01-04
*/

/**
 *Submitted for verification at Etherscan.io on 2024-04-30
*/

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

/**
 *Submitted for verification at polygonscan.com on 2023-06-07
*/

/**
 *Submitted for verification at polygonscan.com on 2023-05-25
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.25;

interface IERC20 {

    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

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



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

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


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

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

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

    /**
     * @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() == msg.sender, "Ownable: caller is not the owner");
    }

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

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

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

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

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

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

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

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

/**
 * @dev Contract module that helps prevent reentrant calls to a function.
 *
 * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
 * available, which can be applied to functions to make sure there are no nested
 * (reentrant) calls to them.
 *
 * Note that because there is a single `nonReentrant` guard, functions marked as
 * `nonReentrant` may not call one another. This can be worked around by making
 * those functions `private`, and then adding `external` `nonReentrant` entry
 * points to them.
 *
 * TIP: If you would like to learn more about reentrancy and alternative ways
 * to protect against it, check out our blog post
 * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
 */
abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and making it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        _nonReentrantBefore();
        _;
        _nonReentrantAfter();
    }

    function _nonReentrantBefore() private {
        // On the first call to nonReentrant, _status will be _NOT_ENTERED
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;
    }

    function _nonReentrantAfter() private {
        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a
     * `nonReentrant` function in the call stack.
     */
    function _reentrancyGuardEntered() internal view returns (bool) {
        return _status == _ENTERED;
    }
}

contract RCOFinance is Context, IERC20, Ownable, ReentrancyGuard {

    mapping(address => uint256) private _balances;

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

    mapping (address => bool) private _isExcluded;
    
    mapping (address => bool) private _isAutomatedMarketMaker;
 
    uint256 public constant MaxSupply = 1124000000 ether;

    uint256 private _totalSupply;

    uint256 public _buyFee;
    uint256 public _sellFee;

    address public _teamWallet;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    IUniswapV2Router02 public uniswapV2Router;
    address public immutable uniswapV2Pair;

    bool public collectTax;
    
    event BuyFeeUpdated(uint256 newBuyFee);
    event SellFeeUpdated(uint256 newSellFee);
    event TeamWalletUpdated(address account);
    event AutomatedMarketMakerSet(address amm, bool status);
    event CollectTaxUpdated(bool status);
    event WalletExcludedFromFee(address account, bool status);

    constructor (address routerAddress)  {
        _name = "RCO Finance";
        _symbol = "RCOF";
        _decimals = 18;
        _buyFee = 1;
        _sellFee = 4;

       IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(routerAddress);

            // Create a uniswap pair for this new token
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        // set the rest of the contract variables
        uniswapV2Router = _uniswapV2Router; 

        _isAutomatedMarketMaker[uniswapV2Pair] = true;

        
        _teamWallet = 0xE90a1C26dc55F9954413C5fC46C0a2d99E37b530;
    }

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

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

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

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

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

    function isExcluded(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function mint(address to, uint256 amount) public onlyOwner {
        require(totalSupply() + amount <= MaxSupply, "RCOF: cap exceeded");
        _mint(to, amount);
    }

    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }

    function burnFrom(address account, uint256 amount) public virtual {
        _spendAllowance(account, _msgSender(), amount);
        _burn(account, amount);
    }

    function excludeWallet(address account, bool status) public onlyOwner {
        require(_isExcluded[account] != status, "RCOF: Account already have same status");
        _isExcluded[account] = status;
        emit WalletExcludedFromFee(account, status);
    }

    function setAutomatedMarketMaker(address AMM, bool status) public onlyOwner {
        require(_isAutomatedMarketMaker[AMM] != status, "RCOF: AMM already have given status");
        require(AMM != uniswapV2Pair, "RCOF: Cannot Remove uniswap V2 pair from Automated Market Maker");
        _isAutomatedMarketMaker[AMM] = status;
        emit AutomatedMarketMakerSet(AMM, status);
    }

    function toggleCollectTax() public onlyOwner {
        collectTax = !collectTax;
        emit CollectTaxUpdated(collectTax);
    }

    function setTeamWallet(address newTeamWallet) public onlyOwner {
        _teamWallet = newTeamWallet;
        emit TeamWalletUpdated(newTeamWallet);
    }

    function setBuyFee(uint256 newBuyFee) public onlyOwner {
        require(newBuyFee<25);
        _buyFee = newBuyFee;
        emit BuyFeeUpdated(newBuyFee);
    }

    function setSellFee(uint256 newSellFee) public onlyOwner {
        require(newSellFee<25);
        _sellFee = newSellFee;
        emit SellFeeUpdated(newSellFee);
    }

    function transfer(address to, uint256 amount) public nonReentrant override returns (bool) {
        _taxedTransfer(_msgSender(), to, amount);
        return true;
    }

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public nonReentrant override returns (bool) {
        _spendAllowance(sender, _msgSender(), amount);
        _taxedTransfer(sender, recipient, amount);
        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "RCOF: approve from the zero address");
        require(spender != address(0), "RCOF: approve to the zero address");

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

    function _taxedTransfer(address from, address to, uint256 amount) internal {
        require(amount > 0, "RCOF: Transfer amount must be greater than zero");

        bool takeFee = true;
        if(_isExcluded[from] || _isExcluded[to]) {
            takeFee = false;
        }

        // will not collect tax if excluded Or CollectTax has been set false Or _teamWallet has not been set   
        if(!takeFee || !collectTax || _teamWallet == address(0)) {
            _transfer(from, to, amount);
            return;
        }

        uint256 taxRate;

        if (_isAutomatedMarketMaker[from]) {
            taxRate = _buyFee;
        } else {
            taxRate = _sellFee;
        }

        uint256 totalTaxToCollect = (amount * taxRate) / 100;

        uint256 amountToTransfer = amount - totalTaxToCollect; 

        _transfer(from, to, amountToTransfer);
        
        if(totalTaxToCollect > 0){
            _transfer(from, _teamWallet, totalTaxToCollect);
        } 
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "RCOF: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
        }
        _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), "RCOF: mint to the zero address");

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

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

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

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

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

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

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

        _afterTokenTransfer(account, address(0), 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, "RCOF: 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 {}


}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"amm","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"AutomatedMarketMakerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newBuyFee","type":"uint256"}],"name":"BuyFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"CollectTaxUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"SellFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"TeamWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"WalletExcludedFromFee","type":"event"},{"inputs":[],"name":"MaxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"collectTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"excludeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"AMM","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setAutomatedMarketMaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTeamWallet","type":"address"}],"name":"setTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleCollectTax","outputs":[],"stateMutability":"nonpayable","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":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60a060405234801561000f575f80fd5b506040516132d03803806132d083398181016040528101906100319190610498565b6100403361037960201b60201c565b600180819055506040518060400160405280600b81526020017f52434f2046696e616e6365000000000000000000000000000000000000000000815250600a908161008b91906106fd565b506040518060400160405280600481526020017f52434f4600000000000000000000000000000000000000000000000000000000815250600b90816100d091906106fd565b506012600c5f6101000a81548160ff021916908360ff160217905550600160078190555060046008819055505f8190508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610149573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061016d9190610498565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101f69190610498565b6040518363ffffffff1660e01b81526004016102139291906107db565b6020604051808303815f875af115801561022f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102539190610498565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505080600c60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555073e90a1c26dc55f9954413c5fc46c0a2d99e37b53060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050610802565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6104678261043e565b9050919050565b6104778161045d565b8114610481575f80fd5b50565b5f815190506104928161046e565b92915050565b5f602082840312156104ad576104ac61043a565b5b5f6104ba84828501610484565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061053e57607f821691505b602082108103610551576105506104fa565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026105b37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610578565b6105bd8683610578565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6106016105fc6105f7846105d5565b6105de565b6105d5565b9050919050565b5f819050919050565b61061a836105e7565b61062e61062682610608565b848454610584565b825550505050565b5f90565b610642610636565b61064d818484610611565b505050565b5b81811015610670576106655f8261063a565b600181019050610653565b5050565b601f8211156106b55761068681610557565b61068f84610569565b8101602085101561069e578190505b6106b26106aa85610569565b830182610652565b50505b505050565b5f82821c905092915050565b5f6106d55f19846008026106ba565b1980831691505092915050565b5f6106ed83836106c6565b9150826002028217905092915050565b610706826104c3565b67ffffffffffffffff81111561071f5761071e6104cd565b5b6107298254610527565b610734828285610674565b5f60209050601f831160018114610765575f8415610753578287015190505b61075d85826106e2565b8655506107c4565b601f19841661077386610557565b5f5b8281101561079a57848901518255600182019150602085019450602081019050610775565b868310156107b757848901516107b3601f8916826106c6565b8355505b6001600288020188555050505b505050505050565b6107d58161045d565b82525050565b5f6040820190506107ee5f8301856107cc565b6107fb60208301846107cc565b9392505050565b608051612aaf6108215f395f81816109cc0152610b820152612aaf5ff3fe608060405234801561000f575f80fd5b50600436106101e3575f3560e01c806349bd5a5e1161010d57806395d89b41116100a0578063cba0e9961161006f578063cba0e99614610547578063dd62ed3e14610577578063f2fde38b146105a7578063f828edbe146105c3576101e3565b806395d89b41146104ab578063a457c2d7146104c9578063a9059cbb146104f9578063b36c128414610529576101e3565b806379cc6790116100dc57806379cc6790146104395780638b4cee08146104555780638da5cb5b1461047157806390f413c31461048f576101e3565b806349bd5a5e146103c3578063590f897e146103e157806370a08231146103ff578063715018a61461042f576101e3565b80632ff4e1f2116101855780633d8705ab116101545780633d8705ab1461034f57806340b9a54b1461036d57806340c10f191461038b57806342966c68146103a7576101e3565b80632ff4e1f2146102d9578063313ce567146102e357806337e294d514610301578063395093511461031f576101e3565b80631525ff7d116101c15780631525ff7d146102515780631694505e1461026d57806318160ddd1461028b57806323b872dd146102a9576101e3565b806306fdde03146101e7578063095ea7b3146102055780630cc835a314610235575b5f80fd5b6101ef6105df565b6040516101fc9190611cd4565b60405180910390f35b61021f600480360381019061021a9190611d85565b61066f565b60405161022c9190611ddd565b60405180910390f35b61024f600480360381019061024a9190611df6565b61068c565b005b61026b60048036038101906102669190611e21565b6106e1565b005b610275610763565b6040516102829190611ea7565b60405180910390f35b610293610789565b6040516102a09190611ecf565b60405180910390f35b6102c360048036038101906102be9190611ee8565b610792565b6040516102d09190611ddd565b60405180910390f35b6102e16107cb565b005b6102eb610845565b6040516102f89190611f53565b60405180910390f35b61030961085a565b6040516103169190611f7b565b60405180910390f35b61033960048036038101906103349190611d85565b61087f565b6040516103469190611ddd565b60405180910390f35b610357610926565b6040516103649190611ddd565b60405180910390f35b610375610939565b6040516103829190611ecf565b60405180910390f35b6103a560048036038101906103a09190611d85565b61093f565b005b6103c160048036038101906103bc9190611df6565b6109b6565b005b6103cb6109ca565b6040516103d89190611f7b565b60405180910390f35b6103e96109ee565b6040516103f69190611ecf565b60405180910390f35b61041960048036038101906104149190611e21565b6109f4565b6040516104269190611ecf565b60405180910390f35b610437610a3a565b005b610453600480360381019061044e9190611d85565b610a4d565b005b61046f600480360381019061046a9190611df6565b610a6d565b005b610479610ac2565b6040516104869190611f7b565b60405180910390f35b6104a960048036038101906104a49190611fbe565b610ae9565b005b6104b3610c9f565b6040516104c09190611cd4565b60405180910390f35b6104e360048036038101906104de9190611d85565b610d2f565b6040516104f09190611ddd565b60405180910390f35b610513600480360381019061050e9190611d85565b610dd6565b6040516105209190611ddd565b60405180910390f35b610531610e03565b60405161053e9190611ecf565b60405180910390f35b610561600480360381019061055c9190611e21565b610e13565b60405161056e9190611ddd565b60405180910390f35b610591600480360381019061058c9190611ffc565b610e65565b60405161059e9190611ecf565b60405180910390f35b6105c160048036038101906105bc9190611e21565b610ee7565b005b6105dd60048036038101906105d89190611fbe565b610f69565b005b6060600a80546105ee90612067565b80601f016020809104026020016040519081016040528092919081815260200182805461061a90612067565b80156106655780601f1061063c57610100808354040283529160200191610665565b820191905f5260205f20905b81548152906001019060200180831161064857829003601f168201915b5050505050905090565b5f61068261067b611091565b8484611098565b6001905092915050565b61069461125b565b601981106106a0575f80fd5b806007819055507f7c1445c98b278c9970d007fca6048704bcb25af7cc4a04eb56565d9a9f149ca3816040516106d69190611ecf565b60405180910390a150565b6106e961125b565b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff6215f245bfd24e51265c56ef650fdd856aa4ece6221ee1ef395bbe0a5558010816040516107589190611f7b565b60405180910390a150565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600654905090565b5f61079b6112d2565b6107ad846107a7611091565b84611321565b6107b88484846113ac565b600190506107c46115f2565b9392505050565b6107d361125b565b600c60159054906101000a900460ff1615600c60156101000a81548160ff0219169083151502179055507f71115432aa0afb8f2843f8fdb16f84054b49d8ead79248bdcdfa1733d1fb9bba600c60159054906101000a900460ff1660405161083b9190611ddd565b60405180910390a1565b5f600c5f9054906101000a900460ff16905090565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61091c61088b611091565b848460035f610898611091565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461091791906120c4565b611098565b6001905092915050565b600c60159054906101000a900460ff1681565b60075481565b61094761125b565b6b03a1c04217fbc356e40000008161095d610789565b61096791906120c4565b11156109a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099f90612141565b60405180910390fd5b6109b282826115fb565b5050565b6109c76109c1611091565b82611753565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b60085481565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a4261125b565b610a4b5f611921565b565b610a5f82610a59611091565b83611321565b610a698282611753565b5050565b610a7561125b565b60198110610a81575f80fd5b806008819055507f495ee53ee22006979ebc689a00ed737d7c13b6419142f82dcaea4ed95ac1e78081604051610ab79190611ecf565b60405180910390a150565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610af161125b565b80151560055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503610b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b77906121cf565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c059061225d565b60405180910390fd5b8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fa72ce6779cc634745d8407a0f02a7b659ca8e7f3f65916b483b82d90e5f4d0858282604051610c9392919061227b565b60405180910390a15050565b6060600b8054610cae90612067565b80601f0160208091040260200160405190810160405280929190818152602001828054610cda90612067565b8015610d255780601f10610cfc57610100808354040283529160200191610d25565b820191905f5260205f20905b815481529060010190602001808311610d0857829003601f168201915b5050505050905090565b5f610dcc610d3b611091565b848460035f610d48611091565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610dc791906122a2565b611098565b6001905092915050565b5f610ddf6112d2565b610df1610dea611091565b84846113ac565b60019050610dfd6115f2565b92915050565b6b03a1c04217fbc356e400000081565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610eef61125b565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5490612345565b60405180910390fd5b610f6681611921565b50565b610f7161125b565b80151560045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff7906123d3565b60405180910390fd5b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507facf2461516a56a66aebf3d131695ae101e561cb1884e61142ae6e27b014b3d09828260405161108592919061227b565b60405180910390a15050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611106576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fd90612461565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116b906124ef565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161124e9190611ecf565b60405180910390a3505050565b3373ffffffffffffffffffffffffffffffffffffffff1661127a610ac2565b73ffffffffffffffffffffffffffffffffffffffff16146112d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c790612557565b60405180910390fd5b565b600260015403611317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130e906125bf565b60405180910390fd5b6002600181905550565b5f61132c8484610e65565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146113a65781811015611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138f90612627565b60405180910390fd5b6113a58484848403611098565b5b50505050565b5f81116113ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e5906126b5565b60405180910390fd5b5f6001905060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061148e575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611497575f90505b8015806114b15750600c60159054906101000a900460ff16155b8061150857505f73ffffffffffffffffffffffffffffffffffffffff1660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561151e576115188484846119e2565b506115ed565b5f60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561157857600754905061157e565b60085490505b5f6064828561158d91906126d3565b6115979190612741565b90505f81856115a691906122a2565b90506115b38787836119e2565b5f8211156115e8576115e78760095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846119e2565b5b505050505b505050565b60018081905550565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611669576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611660906127bb565b60405180910390fd5b6116745f8383611c5a565b8060065f82825461168591906120c4565b925050819055508060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546116d891906120c4565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161173c9190611ecf565b60405180910390a361174f5f8383611c5f565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b890612823565b60405180910390fd5b6117cc825f83611c5a565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611850576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611847906128b1565b60405180910390fd5b81810360025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160065f8282546118a591906122a2565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119099190611ecf565b60405180910390a361191c835f84611c5f565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a479061293f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab5906129cd565b60405180910390fd5b611ac9838383611c5a565b5f60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4490612a5b565b60405180910390fd5b81810360025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611bdd91906120c4565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c419190611ecf565b60405180910390a3611c54848484611c5f565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611ca682611c64565b611cb08185611c6e565b9350611cc0818560208601611c7e565b611cc981611c8c565b840191505092915050565b5f6020820190508181035f830152611cec8184611c9c565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611d2182611cf8565b9050919050565b611d3181611d17565b8114611d3b575f80fd5b50565b5f81359050611d4c81611d28565b92915050565b5f819050919050565b611d6481611d52565b8114611d6e575f80fd5b50565b5f81359050611d7f81611d5b565b92915050565b5f8060408385031215611d9b57611d9a611cf4565b5b5f611da885828601611d3e565b9250506020611db985828601611d71565b9150509250929050565b5f8115159050919050565b611dd781611dc3565b82525050565b5f602082019050611df05f830184611dce565b92915050565b5f60208284031215611e0b57611e0a611cf4565b5b5f611e1884828501611d71565b91505092915050565b5f60208284031215611e3657611e35611cf4565b5b5f611e4384828501611d3e565b91505092915050565b5f819050919050565b5f611e6f611e6a611e6584611cf8565b611e4c565b611cf8565b9050919050565b5f611e8082611e55565b9050919050565b5f611e9182611e76565b9050919050565b611ea181611e87565b82525050565b5f602082019050611eba5f830184611e98565b92915050565b611ec981611d52565b82525050565b5f602082019050611ee25f830184611ec0565b92915050565b5f805f60608486031215611eff57611efe611cf4565b5b5f611f0c86828701611d3e565b9350506020611f1d86828701611d3e565b9250506040611f2e86828701611d71565b9150509250925092565b5f60ff82169050919050565b611f4d81611f38565b82525050565b5f602082019050611f665f830184611f44565b92915050565b611f7581611d17565b82525050565b5f602082019050611f8e5f830184611f6c565b92915050565b611f9d81611dc3565b8114611fa7575f80fd5b50565b5f81359050611fb881611f94565b92915050565b5f8060408385031215611fd457611fd3611cf4565b5b5f611fe185828601611d3e565b9250506020611ff285828601611faa565b9150509250929050565b5f806040838503121561201257612011611cf4565b5b5f61201f85828601611d3e565b925050602061203085828601611d3e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061207e57607f821691505b6020821081036120915761209061203a565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6120ce82611d52565b91506120d983611d52565b92508282019050808211156120f1576120f0612097565b5b92915050565b7f52434f463a2063617020657863656564656400000000000000000000000000005f82015250565b5f61212b601283611c6e565b9150612136826120f7565b602082019050919050565b5f6020820190508181035f8301526121588161211f565b9050919050565b7f52434f463a20414d4d20616c7265616479206861766520676976656e207374615f8201527f7475730000000000000000000000000000000000000000000000000000000000602082015250565b5f6121b9602383611c6e565b91506121c48261215f565b604082019050919050565b5f6020820190508181035f8301526121e6816121ad565b9050919050565b7f52434f463a2043616e6e6f742052656d6f766520756e697377617020563220705f8201527f6169722066726f6d204175746f6d61746564204d61726b6574204d616b657200602082015250565b5f612247603f83611c6e565b9150612252826121ed565b604082019050919050565b5f6020820190508181035f8301526122748161223b565b9050919050565b5f60408201905061228e5f830185611f6c565b61229b6020830184611dce565b9392505050565b5f6122ac82611d52565b91506122b783611d52565b92508282039050818111156122cf576122ce612097565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61232f602683611c6e565b915061233a826122d5565b604082019050919050565b5f6020820190508181035f83015261235c81612323565b9050919050565b7f52434f463a204163636f756e7420616c726561647920686176652073616d65205f8201527f7374617475730000000000000000000000000000000000000000000000000000602082015250565b5f6123bd602683611c6e565b91506123c882612363565b604082019050919050565b5f6020820190508181035f8301526123ea816123b1565b9050919050565b7f52434f463a20617070726f76652066726f6d20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61244b602383611c6e565b9150612456826123f1565b604082019050919050565b5f6020820190508181035f8301526124788161243f565b9050919050565b7f52434f463a20617070726f766520746f20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f6124d9602183611c6e565b91506124e48261247f565b604082019050919050565b5f6020820190508181035f830152612506816124cd565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612541602083611c6e565b915061254c8261250d565b602082019050919050565b5f6020820190508181035f83015261256e81612535565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f6125a9601f83611c6e565b91506125b482612575565b602082019050919050565b5f6020820190508181035f8301526125d68161259d565b9050919050565b7f52434f463a20696e73756666696369656e7420616c6c6f77616e6365000000005f82015250565b5f612611601c83611c6e565b915061261c826125dd565b602082019050919050565b5f6020820190508181035f83015261263e81612605565b9050919050565b7f52434f463a205472616e7366657220616d6f756e74206d7573742062652067725f8201527f6561746572207468616e207a65726f0000000000000000000000000000000000602082015250565b5f61269f602f83611c6e565b91506126aa82612645565b604082019050919050565b5f6020820190508181035f8301526126cc81612693565b9050919050565b5f6126dd82611d52565b91506126e883611d52565b92508282026126f681611d52565b9150828204841483151761270d5761270c612097565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61274b82611d52565b915061275683611d52565b92508261276657612765612714565b5b828204905092915050565b7f52434f463a206d696e7420746f20746865207a65726f206164647265737300005f82015250565b5f6127a5601e83611c6e565b91506127b082612771565b602082019050919050565b5f6020820190508181035f8301526127d281612799565b9050919050565b7f52434f463a206275726e2066726f6d20746865207a65726f20616464726573735f82015250565b5f61280d602083611c6e565b9150612818826127d9565b602082019050919050565b5f6020820190508181035f83015261283a81612801565b9050919050565b7f52434f463a206275726e20616d6f756e7420657863656564732062616c616e635f8201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b5f61289b602183611c6e565b91506128a682612841565b604082019050919050565b5f6020820190508181035f8301526128c88161288f565b9050919050565b7f52434f463a207472616e736665722066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612929602483611c6e565b9150612934826128cf565b604082019050919050565b5f6020820190508181035f8301526129568161291d565b9050919050565b7f52434f463a207472616e7366657220746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129b7602283611c6e565b91506129c28261295d565b604082019050919050565b5f6020820190508181035f8301526129e4816129ab565b9050919050565b7f52434f463a207472616e7366657220616d6f756e7420657863656564732062615f8201527f6c616e6365000000000000000000000000000000000000000000000000000000602082015250565b5f612a45602583611c6e565b9150612a50826129eb565b604082019050919050565b5f6020820190508181035f830152612a7281612a39565b905091905056fea2646970667358221220b500bd4f08476896c41d1677a313bf6cd0076992fd6989935b0f975767471cb564736f6c634300081900330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x608060405234801561000f575f80fd5b50600436106101e3575f3560e01c806349bd5a5e1161010d57806395d89b41116100a0578063cba0e9961161006f578063cba0e99614610547578063dd62ed3e14610577578063f2fde38b146105a7578063f828edbe146105c3576101e3565b806395d89b41146104ab578063a457c2d7146104c9578063a9059cbb146104f9578063b36c128414610529576101e3565b806379cc6790116100dc57806379cc6790146104395780638b4cee08146104555780638da5cb5b1461047157806390f413c31461048f576101e3565b806349bd5a5e146103c3578063590f897e146103e157806370a08231146103ff578063715018a61461042f576101e3565b80632ff4e1f2116101855780633d8705ab116101545780633d8705ab1461034f57806340b9a54b1461036d57806340c10f191461038b57806342966c68146103a7576101e3565b80632ff4e1f2146102d9578063313ce567146102e357806337e294d514610301578063395093511461031f576101e3565b80631525ff7d116101c15780631525ff7d146102515780631694505e1461026d57806318160ddd1461028b57806323b872dd146102a9576101e3565b806306fdde03146101e7578063095ea7b3146102055780630cc835a314610235575b5f80fd5b6101ef6105df565b6040516101fc9190611cd4565b60405180910390f35b61021f600480360381019061021a9190611d85565b61066f565b60405161022c9190611ddd565b60405180910390f35b61024f600480360381019061024a9190611df6565b61068c565b005b61026b60048036038101906102669190611e21565b6106e1565b005b610275610763565b6040516102829190611ea7565b60405180910390f35b610293610789565b6040516102a09190611ecf565b60405180910390f35b6102c360048036038101906102be9190611ee8565b610792565b6040516102d09190611ddd565b60405180910390f35b6102e16107cb565b005b6102eb610845565b6040516102f89190611f53565b60405180910390f35b61030961085a565b6040516103169190611f7b565b60405180910390f35b61033960048036038101906103349190611d85565b61087f565b6040516103469190611ddd565b60405180910390f35b610357610926565b6040516103649190611ddd565b60405180910390f35b610375610939565b6040516103829190611ecf565b60405180910390f35b6103a560048036038101906103a09190611d85565b61093f565b005b6103c160048036038101906103bc9190611df6565b6109b6565b005b6103cb6109ca565b6040516103d89190611f7b565b60405180910390f35b6103e96109ee565b6040516103f69190611ecf565b60405180910390f35b61041960048036038101906104149190611e21565b6109f4565b6040516104269190611ecf565b60405180910390f35b610437610a3a565b005b610453600480360381019061044e9190611d85565b610a4d565b005b61046f600480360381019061046a9190611df6565b610a6d565b005b610479610ac2565b6040516104869190611f7b565b60405180910390f35b6104a960048036038101906104a49190611fbe565b610ae9565b005b6104b3610c9f565b6040516104c09190611cd4565b60405180910390f35b6104e360048036038101906104de9190611d85565b610d2f565b6040516104f09190611ddd565b60405180910390f35b610513600480360381019061050e9190611d85565b610dd6565b6040516105209190611ddd565b60405180910390f35b610531610e03565b60405161053e9190611ecf565b60405180910390f35b610561600480360381019061055c9190611e21565b610e13565b60405161056e9190611ddd565b60405180910390f35b610591600480360381019061058c9190611ffc565b610e65565b60405161059e9190611ecf565b60405180910390f35b6105c160048036038101906105bc9190611e21565b610ee7565b005b6105dd60048036038101906105d89190611fbe565b610f69565b005b6060600a80546105ee90612067565b80601f016020809104026020016040519081016040528092919081815260200182805461061a90612067565b80156106655780601f1061063c57610100808354040283529160200191610665565b820191905f5260205f20905b81548152906001019060200180831161064857829003601f168201915b5050505050905090565b5f61068261067b611091565b8484611098565b6001905092915050565b61069461125b565b601981106106a0575f80fd5b806007819055507f7c1445c98b278c9970d007fca6048704bcb25af7cc4a04eb56565d9a9f149ca3816040516106d69190611ecf565b60405180910390a150565b6106e961125b565b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff6215f245bfd24e51265c56ef650fdd856aa4ece6221ee1ef395bbe0a5558010816040516107589190611f7b565b60405180910390a150565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600654905090565b5f61079b6112d2565b6107ad846107a7611091565b84611321565b6107b88484846113ac565b600190506107c46115f2565b9392505050565b6107d361125b565b600c60159054906101000a900460ff1615600c60156101000a81548160ff0219169083151502179055507f71115432aa0afb8f2843f8fdb16f84054b49d8ead79248bdcdfa1733d1fb9bba600c60159054906101000a900460ff1660405161083b9190611ddd565b60405180910390a1565b5f600c5f9054906101000a900460ff16905090565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61091c61088b611091565b848460035f610898611091565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461091791906120c4565b611098565b6001905092915050565b600c60159054906101000a900460ff1681565b60075481565b61094761125b565b6b03a1c04217fbc356e40000008161095d610789565b61096791906120c4565b11156109a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099f90612141565b60405180910390fd5b6109b282826115fb565b5050565b6109c76109c1611091565b82611753565b50565b7f000000000000000000000000ccfd9d3767215ed8aca1a5e40f7f356d7a87e65581565b60085481565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a4261125b565b610a4b5f611921565b565b610a5f82610a59611091565b83611321565b610a698282611753565b5050565b610a7561125b565b60198110610a81575f80fd5b806008819055507f495ee53ee22006979ebc689a00ed737d7c13b6419142f82dcaea4ed95ac1e78081604051610ab79190611ecf565b60405180910390a150565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610af161125b565b80151560055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503610b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b77906121cf565b60405180910390fd5b7f000000000000000000000000ccfd9d3767215ed8aca1a5e40f7f356d7a87e65573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c059061225d565b60405180910390fd5b8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fa72ce6779cc634745d8407a0f02a7b659ca8e7f3f65916b483b82d90e5f4d0858282604051610c9392919061227b565b60405180910390a15050565b6060600b8054610cae90612067565b80601f0160208091040260200160405190810160405280929190818152602001828054610cda90612067565b8015610d255780601f10610cfc57610100808354040283529160200191610d25565b820191905f5260205f20905b815481529060010190602001808311610d0857829003601f168201915b5050505050905090565b5f610dcc610d3b611091565b848460035f610d48611091565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610dc791906122a2565b611098565b6001905092915050565b5f610ddf6112d2565b610df1610dea611091565b84846113ac565b60019050610dfd6115f2565b92915050565b6b03a1c04217fbc356e400000081565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610eef61125b565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5490612345565b60405180910390fd5b610f6681611921565b50565b610f7161125b565b80151560045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff7906123d3565b60405180910390fd5b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507facf2461516a56a66aebf3d131695ae101e561cb1884e61142ae6e27b014b3d09828260405161108592919061227b565b60405180910390a15050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611106576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fd90612461565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116b906124ef565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161124e9190611ecf565b60405180910390a3505050565b3373ffffffffffffffffffffffffffffffffffffffff1661127a610ac2565b73ffffffffffffffffffffffffffffffffffffffff16146112d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c790612557565b60405180910390fd5b565b600260015403611317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130e906125bf565b60405180910390fd5b6002600181905550565b5f61132c8484610e65565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146113a65781811015611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138f90612627565b60405180910390fd5b6113a58484848403611098565b5b50505050565b5f81116113ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e5906126b5565b60405180910390fd5b5f6001905060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061148e575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611497575f90505b8015806114b15750600c60159054906101000a900460ff16155b8061150857505f73ffffffffffffffffffffffffffffffffffffffff1660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561151e576115188484846119e2565b506115ed565b5f60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561157857600754905061157e565b60085490505b5f6064828561158d91906126d3565b6115979190612741565b90505f81856115a691906122a2565b90506115b38787836119e2565b5f8211156115e8576115e78760095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846119e2565b5b505050505b505050565b60018081905550565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611669576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611660906127bb565b60405180910390fd5b6116745f8383611c5a565b8060065f82825461168591906120c4565b925050819055508060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546116d891906120c4565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161173c9190611ecf565b60405180910390a361174f5f8383611c5f565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b890612823565b60405180910390fd5b6117cc825f83611c5a565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611850576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611847906128b1565b60405180910390fd5b81810360025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160065f8282546118a591906122a2565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119099190611ecf565b60405180910390a361191c835f84611c5f565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a479061293f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab5906129cd565b60405180910390fd5b611ac9838383611c5a565b5f60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4490612a5b565b60405180910390fd5b81810360025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611bdd91906120c4565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c419190611ecf565b60405180910390a3611c54848484611c5f565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611ca682611c64565b611cb08185611c6e565b9350611cc0818560208601611c7e565b611cc981611c8c565b840191505092915050565b5f6020820190508181035f830152611cec8184611c9c565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611d2182611cf8565b9050919050565b611d3181611d17565b8114611d3b575f80fd5b50565b5f81359050611d4c81611d28565b92915050565b5f819050919050565b611d6481611d52565b8114611d6e575f80fd5b50565b5f81359050611d7f81611d5b565b92915050565b5f8060408385031215611d9b57611d9a611cf4565b5b5f611da885828601611d3e565b9250506020611db985828601611d71565b9150509250929050565b5f8115159050919050565b611dd781611dc3565b82525050565b5f602082019050611df05f830184611dce565b92915050565b5f60208284031215611e0b57611e0a611cf4565b5b5f611e1884828501611d71565b91505092915050565b5f60208284031215611e3657611e35611cf4565b5b5f611e4384828501611d3e565b91505092915050565b5f819050919050565b5f611e6f611e6a611e6584611cf8565b611e4c565b611cf8565b9050919050565b5f611e8082611e55565b9050919050565b5f611e9182611e76565b9050919050565b611ea181611e87565b82525050565b5f602082019050611eba5f830184611e98565b92915050565b611ec981611d52565b82525050565b5f602082019050611ee25f830184611ec0565b92915050565b5f805f60608486031215611eff57611efe611cf4565b5b5f611f0c86828701611d3e565b9350506020611f1d86828701611d3e565b9250506040611f2e86828701611d71565b9150509250925092565b5f60ff82169050919050565b611f4d81611f38565b82525050565b5f602082019050611f665f830184611f44565b92915050565b611f7581611d17565b82525050565b5f602082019050611f8e5f830184611f6c565b92915050565b611f9d81611dc3565b8114611fa7575f80fd5b50565b5f81359050611fb881611f94565b92915050565b5f8060408385031215611fd457611fd3611cf4565b5b5f611fe185828601611d3e565b9250506020611ff285828601611faa565b9150509250929050565b5f806040838503121561201257612011611cf4565b5b5f61201f85828601611d3e565b925050602061203085828601611d3e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061207e57607f821691505b6020821081036120915761209061203a565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6120ce82611d52565b91506120d983611d52565b92508282019050808211156120f1576120f0612097565b5b92915050565b7f52434f463a2063617020657863656564656400000000000000000000000000005f82015250565b5f61212b601283611c6e565b9150612136826120f7565b602082019050919050565b5f6020820190508181035f8301526121588161211f565b9050919050565b7f52434f463a20414d4d20616c7265616479206861766520676976656e207374615f8201527f7475730000000000000000000000000000000000000000000000000000000000602082015250565b5f6121b9602383611c6e565b91506121c48261215f565b604082019050919050565b5f6020820190508181035f8301526121e6816121ad565b9050919050565b7f52434f463a2043616e6e6f742052656d6f766520756e697377617020563220705f8201527f6169722066726f6d204175746f6d61746564204d61726b6574204d616b657200602082015250565b5f612247603f83611c6e565b9150612252826121ed565b604082019050919050565b5f6020820190508181035f8301526122748161223b565b9050919050565b5f60408201905061228e5f830185611f6c565b61229b6020830184611dce565b9392505050565b5f6122ac82611d52565b91506122b783611d52565b92508282039050818111156122cf576122ce612097565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61232f602683611c6e565b915061233a826122d5565b604082019050919050565b5f6020820190508181035f83015261235c81612323565b9050919050565b7f52434f463a204163636f756e7420616c726561647920686176652073616d65205f8201527f7374617475730000000000000000000000000000000000000000000000000000602082015250565b5f6123bd602683611c6e565b91506123c882612363565b604082019050919050565b5f6020820190508181035f8301526123ea816123b1565b9050919050565b7f52434f463a20617070726f76652066726f6d20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61244b602383611c6e565b9150612456826123f1565b604082019050919050565b5f6020820190508181035f8301526124788161243f565b9050919050565b7f52434f463a20617070726f766520746f20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f6124d9602183611c6e565b91506124e48261247f565b604082019050919050565b5f6020820190508181035f830152612506816124cd565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612541602083611c6e565b915061254c8261250d565b602082019050919050565b5f6020820190508181035f83015261256e81612535565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f6125a9601f83611c6e565b91506125b482612575565b602082019050919050565b5f6020820190508181035f8301526125d68161259d565b9050919050565b7f52434f463a20696e73756666696369656e7420616c6c6f77616e6365000000005f82015250565b5f612611601c83611c6e565b915061261c826125dd565b602082019050919050565b5f6020820190508181035f83015261263e81612605565b9050919050565b7f52434f463a205472616e7366657220616d6f756e74206d7573742062652067725f8201527f6561746572207468616e207a65726f0000000000000000000000000000000000602082015250565b5f61269f602f83611c6e565b91506126aa82612645565b604082019050919050565b5f6020820190508181035f8301526126cc81612693565b9050919050565b5f6126dd82611d52565b91506126e883611d52565b92508282026126f681611d52565b9150828204841483151761270d5761270c612097565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61274b82611d52565b915061275683611d52565b92508261276657612765612714565b5b828204905092915050565b7f52434f463a206d696e7420746f20746865207a65726f206164647265737300005f82015250565b5f6127a5601e83611c6e565b91506127b082612771565b602082019050919050565b5f6020820190508181035f8301526127d281612799565b9050919050565b7f52434f463a206275726e2066726f6d20746865207a65726f20616464726573735f82015250565b5f61280d602083611c6e565b9150612818826127d9565b602082019050919050565b5f6020820190508181035f83015261283a81612801565b9050919050565b7f52434f463a206275726e20616d6f756e7420657863656564732062616c616e635f8201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b5f61289b602183611c6e565b91506128a682612841565b604082019050919050565b5f6020820190508181035f8301526128c88161288f565b9050919050565b7f52434f463a207472616e736665722066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612929602483611c6e565b9150612934826128cf565b604082019050919050565b5f6020820190508181035f8301526129568161291d565b9050919050565b7f52434f463a207472616e7366657220746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129b7602283611c6e565b91506129c28261295d565b604082019050919050565b5f6020820190508181035f8301526129e4816129ab565b9050919050565b7f52434f463a207472616e7366657220616d6f756e7420657863656564732062615f8201527f6c616e6365000000000000000000000000000000000000000000000000000000602082015250565b5f612a45602583611c6e565b9150612a50826129eb565b604082019050919050565b5f6020820190508181035f830152612a7281612a39565b905091905056fea2646970667358221220b500bd4f08476896c41d1677a313bf6cd0076992fd6989935b0f975767471cb564736f6c63430008190033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : routerAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

14865:11237:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16615:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19361:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18678:165;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18513:157;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15478:41;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16892:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19530:255;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18372:133;;;:::i;:::-;;16801:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15355:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19793:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15573:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15294;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17253:172;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17433:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15526:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15323:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17000:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5471:103;;;:::i;:::-;;17532:164;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18851:172;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4825:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17976:388;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16706:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20016:225;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19031:171;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15196:52;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17135:110;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19210:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5729:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17704:264;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16615:83;16652:13;16685:5;16678:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16615:83;:::o;19361:161::-;19436:4;19453:39;19462:12;:10;:12::i;:::-;19476:7;19485:6;19453:8;:39::i;:::-;19510:4;19503:11;;19361:161;;;;:::o;18678:165::-;4711:13;:11;:13::i;:::-;18762:2:::1;18752:9;:12;18744:21;;;::::0;::::1;;18786:9;18776:7;:19;;;;18811:24;18825:9;18811:24;;;;;;:::i;:::-;;;;;;;;18678:165:::0;:::o;18513:157::-;4711:13;:11;:13::i;:::-;18601::::1;18587:11;;:27;;;;;;;;;;;;;;;;;;18630:32;18648:13;18630:32;;;;;;:::i;:::-;;;;;;;;18513:157:::0;:::o;15478:41::-;;;;;;;;;;;;;:::o;16892:100::-;16945:7;16972:12;;16965:19;;16892:100;:::o;19530:255::-;19641:4;13970:21;:19;:21::i;:::-;19658:45:::1;19674:6;19682:12;:10;:12::i;:::-;19696:6;19658:15;:45::i;:::-;19714:41;19729:6;19737:9;19748:6;19714:14;:41::i;:::-;19773:4;19766:11;;14014:20:::0;:18;:20::i;:::-;19530:255;;;;;:::o;18372:133::-;4711:13;:11;:13::i;:::-;18442:10:::1;;;;;;;;;;;18441:11;18428:10;;:24;;;;;;;;;;;;;;;;;;18468:29;18486:10;;;;;;;;;;;18468:29;;;;;;:::i;:::-;;;;;;;;18372:133::o:0;16801:83::-;16842:5;16867:9;;;;;;;;;;;16860:16;;16801:83;:::o;15355:26::-;;;;;;;;;;;;;:::o;19793:215::-;19881:4;19898:80;19907:12;:10;:12::i;:::-;19921:7;19967:10;19930:11;:25;19942:12;:10;:12::i;:::-;19930:25;;;;;;;;;;;;;;;:34;19956:7;19930:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;19898:8;:80::i;:::-;19996:4;19989:11;;19793:215;;;;:::o;15573:22::-;;;;;;;;;;;;;:::o;15294:::-;;;;:::o;17253:172::-;4711:13;:11;:13::i;:::-;15232:16:::1;17347:6;17331:13;:11;:13::i;:::-;:22;;;;:::i;:::-;:35;;17323:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;17400:17;17406:2;17410:6;17400:5;:17::i;:::-;17253:172:::0;;:::o;17433:91::-;17489:27;17495:12;:10;:12::i;:::-;17509:6;17489:5;:27::i;:::-;17433:91;:::o;15526:38::-;;;:::o;15323:23::-;;;;:::o;17000:127::-;17074:7;17101:9;:18;17111:7;17101:18;;;;;;;;;;;;;;;;17094:25;;17000:127;;;:::o;5471:103::-;4711:13;:11;:13::i;:::-;5536:30:::1;5563:1;5536:18;:30::i;:::-;5471:103::o:0;17532:164::-;17609:46;17625:7;17634:12;:10;:12::i;:::-;17648:6;17609:15;:46::i;:::-;17666:22;17672:7;17681:6;17666:5;:22::i;:::-;17532:164;;:::o;18851:172::-;4711:13;:11;:13::i;:::-;18938:2:::1;18927:10;:13;18919:22;;;::::0;::::1;;18963:10;18952:8;:21;;;;18989:26;19004:10;18989:26;;;;;;:::i;:::-;;;;;;;;18851:172:::0;:::o;4825:87::-;4871:7;4898:6;;;;;;;;;;;4891:13;;4825:87;:::o;17976:388::-;4711:13;:11;:13::i;:::-;18103:6:::1;18071:38;;:23;:28;18095:3;18071:28;;;;;;;;;;;;;;;;;;;;;;;;;:38;;::::0;18063:86:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18175:13;18168:20;;:3;:20;;::::0;18160:96:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18298:6;18267:23;:28;18291:3;18267:28;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;18320:36;18344:3;18349:6;18320:36;;;;;;;:::i;:::-;;;;;;;;17976:388:::0;;:::o;16706:87::-;16745:13;16778:7;16771:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16706:87;:::o;20016:225::-;20109:4;20126:85;20135:12;:10;:12::i;:::-;20149:7;20195:15;20158:11;:25;20170:12;:10;:12::i;:::-;20158:25;;;;;;;;;;;;;;;:34;20184:7;20158:34;;;;;;;;;;;;;;;;:52;;;;:::i;:::-;20126:8;:85::i;:::-;20229:4;20222:11;;20016:225;;;;:::o;19031:171::-;19115:4;13970:21;:19;:21::i;:::-;19132:40:::1;19147:12;:10;:12::i;:::-;19161:2;19165:6;19132:14;:40::i;:::-;19190:4;19183:11;;14014:20:::0;:18;:20::i;:::-;19031:171;;;;:::o;15196:52::-;15232:16;15196:52;:::o;17135:110::-;17193:4;17217:11;:20;17229:7;17217:20;;;;;;;;;;;;;;;;;;;;;;;;;17210:27;;17135:110;;;:::o;19210:143::-;19291:7;19318:11;:18;19330:5;19318:18;;;;;;;;;;;;;;;:27;19337:7;19318:27;;;;;;;;;;;;;;;;19311:34;;19210:143;;;;:::o;5729:201::-;4711:13;:11;:13::i;:::-;5838:1:::1;5818:22;;:8;:22;;::::0;5810:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5894:28;5913:8;5894:18;:28::i;:::-;5729:201:::0;:::o;17704:264::-;4711:13;:11;:13::i;:::-;17817:6:::1;17793:30;;:11;:20;17805:7;17793:20;;;;;;;;;;;;;;;;;;;;;;;;;:30;;::::0;17785:81:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;17900:6;17877:11;:20;17889:7;17877:20;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;17922:38;17944:7;17953:6;17922:38;;;;;;;:::i;:::-;;;;;;;;17704:264:::0;;:::o;3534:98::-;3587:7;3614:10;3607:17;;3534:98;:::o;20249:335::-;20359:1;20342:19;;:5;:19;;;20334:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20439:1;20420:21;;:7;:21;;;20412:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20522:6;20492:11;:18;20504:5;20492:18;;;;;;;;;;;;;;;:27;20511:7;20492:27;;;;;;;;;;;;;;;:36;;;;20560:7;20544:32;;20553:5;20544:32;;;20569:6;20544:32;;;;;;:::i;:::-;;;;;;;;20249:335;;;:::o;4990:130::-;5065:10;5054:21;;:7;:5;:7::i;:::-;:21;;;5046:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;4990:130::o;14050:293::-;13452:1;14184:7;;:19;14176:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;13452:1;14317:7;:18;;;;14050:293::o;24186:452::-;24321:24;24348:25;24358:5;24365:7;24348:9;:25::i;:::-;24321:52;;24408:17;24388:16;:37;24384:247;;24470:6;24450:16;:26;;24442:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24553:51;24562:5;24569:7;24597:6;24578:16;:25;24553:8;:51::i;:::-;24384:247;24310:328;24186:452;;;:::o;20592:1018::-;20695:1;20686:6;:10;20678:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;20761:12;20776:4;20761:19;;20794:11;:17;20806:4;20794:17;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;;20815:11;:15;20827:2;20815:15;;;;;;;;;;;;;;;;;;;;;;;;;20794:36;20791:83;;;20857:5;20847:15;;20791:83;21003:7;21002:8;:23;;;;21015:10;;;;;;;;;;;21014:11;21002:23;:52;;;;21052:1;21029:25;;:11;;;;;;;;;;;:25;;;21002:52;20999:132;;;21071:27;21081:4;21087:2;21091:6;21071:9;:27::i;:::-;21113:7;;;20999:132;21143:15;21175:23;:29;21199:4;21175:29;;;;;;;;;;;;;;;;;;;;;;;;;21171:130;;;21231:7;;21221:17;;21171:130;;;21281:8;;21271:18;;21171:130;21313:25;21362:3;21351:7;21342:6;:16;;;;:::i;:::-;21341:24;;;;:::i;:::-;21313:52;;21378:24;21414:17;21405:6;:26;;;;:::i;:::-;21378:53;;21445:37;21455:4;21461:2;21465:16;21445:9;:37::i;:::-;21526:1;21506:17;:21;21503:99;;;21543:47;21553:4;21559:11;;;;;;;;;;;21572:17;21543:9;:47::i;:::-;21503:99;20667:943;;;;20592:1018;;;;:::o;14351:213::-;13408:1;14534:7;:22;;;;14351:213::o;22573:398::-;22676:1;22657:21;;:7;:21;;;22649:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;22726:49;22755:1;22759:7;22768:6;22726:20;:49::i;:::-;22804:6;22788:12;;:22;;;;;;;:::i;:::-;;;;;;;;22843:6;22821:9;:18;22831:7;22821:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;22886:7;22865:37;;22882:1;22865:37;;;22895:6;22865:37;;;;;;:::i;:::-;;;;;;;;22915:48;22943:1;22947:7;22956:6;22915:19;:48::i;:::-;22573:398;;:::o;23304:589::-;23407:1;23388:21;;:7;:21;;;23380:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;23459:49;23480:7;23497:1;23501:6;23459:20;:49::i;:::-;23521:22;23546:9;:18;23556:7;23546:18;;;;;;;;;;;;;;;;23521:43;;23601:6;23583:14;:24;;23575:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;23719:6;23702:14;:23;23681:9;:18;23691:7;23681:18;;;;;;;;;;;;;;;:44;;;;23763:6;23747:12;;:22;;;;;;;:::i;:::-;;;;;;;;23813:1;23787:37;;23796:7;23787:37;;;23817:6;23787:37;;;;;;:::i;:::-;;;;;;;;23837:48;23857:7;23874:1;23878:6;23837:19;:48::i;:::-;23369:524;23304:589;;:::o;6090:191::-;6164:16;6183:6;;;;;;;;;;;6164:25;;6209:8;6200:6;;:17;;;;;;;;;;;;;;;;;;6264:8;6233:40;;6254:8;6233:40;;;;;;;;;;;;6153:128;6090:191;:::o;21618:668::-;21765:1;21749:18;;:4;:18;;;21741:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21841:1;21827:16;;:2;:16;;;21819:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;21895:38;21916:4;21922:2;21926:6;21895:20;:38::i;:::-;21946:19;21968:9;:15;21978:4;21968:15;;;;;;;;;;;;;;;;21946:37;;22017:6;22002:11;:21;;21994:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;22133:6;22119:11;:20;22101:9;:15;22111:4;22101:15;;;;;;;;;;;;;;;:38;;;;22178:6;22161:9;:13;22171:2;22161:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;22217:2;22202:26;;22211:4;22202:26;;;22221:6;22202:26;;;;;;:::i;:::-;;;;;;;;22241:37;22261:4;22267:2;22271:6;22241:19;:37::i;:::-;21730:556;21618:668;;;:::o;25240:125::-;;;;:::o;25971:124::-;;;;:::o;7:99:1:-;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;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:329::-;3398:6;3447:2;3435:9;3426:7;3422:23;3418:32;3415:119;;;3453:79;;:::i;:::-;3415:119;3573:1;3598:53;3643:7;3634:6;3623:9;3619:22;3598:53;:::i;:::-;3588:63;;3544:117;3339:329;;;;:::o;3674:::-;3733:6;3782:2;3770:9;3761:7;3757:23;3753:32;3750:119;;;3788:79;;:::i;:::-;3750:119;3908:1;3933:53;3978:7;3969:6;3958:9;3954:22;3933:53;:::i;:::-;3923:63;;3879:117;3674:329;;;;:::o;4009:60::-;4037:3;4058:5;4051:12;;4009:60;;;:::o;4075:142::-;4125:9;4158:53;4176:34;4185:24;4203:5;4185:24;:::i;:::-;4176:34;:::i;:::-;4158:53;:::i;:::-;4145:66;;4075:142;;;:::o;4223:126::-;4273:9;4306:37;4337:5;4306:37;:::i;:::-;4293:50;;4223:126;;;:::o;4355:152::-;4431:9;4464:37;4495:5;4464:37;:::i;:::-;4451:50;;4355:152;;;:::o;4513:183::-;4626:63;4683:5;4626:63;:::i;:::-;4621:3;4614:76;4513:183;;:::o;4702:274::-;4821:4;4859:2;4848:9;4844:18;4836:26;;4872:97;4966:1;4955:9;4951:17;4942:6;4872:97;:::i;:::-;4702:274;;;;:::o;4982:118::-;5069:24;5087:5;5069:24;:::i;:::-;5064:3;5057:37;4982:118;;:::o;5106:222::-;5199:4;5237:2;5226:9;5222:18;5214:26;;5250:71;5318:1;5307:9;5303:17;5294:6;5250:71;:::i;:::-;5106:222;;;;:::o;5334:619::-;5411:6;5419;5427;5476:2;5464:9;5455:7;5451:23;5447:32;5444:119;;;5482:79;;:::i;:::-;5444:119;5602:1;5627:53;5672:7;5663:6;5652:9;5648:22;5627:53;:::i;:::-;5617:63;;5573:117;5729:2;5755:53;5800:7;5791:6;5780:9;5776:22;5755:53;:::i;:::-;5745:63;;5700:118;5857:2;5883:53;5928:7;5919:6;5908:9;5904:22;5883:53;:::i;:::-;5873:63;;5828:118;5334:619;;;;;:::o;5959:86::-;5994:7;6034:4;6027:5;6023:16;6012:27;;5959:86;;;:::o;6051:112::-;6134:22;6150:5;6134:22;:::i;:::-;6129:3;6122:35;6051:112;;:::o;6169:214::-;6258:4;6296:2;6285:9;6281:18;6273:26;;6309:67;6373:1;6362:9;6358:17;6349:6;6309:67;:::i;:::-;6169:214;;;;:::o;6389:118::-;6476:24;6494:5;6476:24;:::i;:::-;6471:3;6464:37;6389:118;;:::o;6513:222::-;6606:4;6644:2;6633:9;6629:18;6621:26;;6657:71;6725:1;6714:9;6710:17;6701:6;6657:71;:::i;:::-;6513:222;;;;:::o;6741:116::-;6811:21;6826:5;6811:21;:::i;:::-;6804:5;6801:32;6791:60;;6847:1;6844;6837:12;6791:60;6741:116;:::o;6863:133::-;6906:5;6944:6;6931:20;6922:29;;6960:30;6984:5;6960:30;:::i;:::-;6863:133;;;;:::o;7002:468::-;7067:6;7075;7124:2;7112:9;7103:7;7099:23;7095:32;7092:119;;;7130:79;;:::i;:::-;7092:119;7250:1;7275:53;7320:7;7311:6;7300:9;7296:22;7275:53;:::i;:::-;7265:63;;7221:117;7377:2;7403:50;7445:7;7436:6;7425:9;7421:22;7403:50;:::i;:::-;7393:60;;7348:115;7002:468;;;;;:::o;7476:474::-;7544:6;7552;7601:2;7589:9;7580:7;7576:23;7572:32;7569:119;;;7607:79;;:::i;:::-;7569:119;7727:1;7752:53;7797:7;7788:6;7777:9;7773:22;7752:53;:::i;:::-;7742:63;;7698:117;7854:2;7880:53;7925:7;7916:6;7905:9;7901:22;7880:53;:::i;:::-;7870:63;;7825:118;7476:474;;;;;:::o;7956:180::-;8004:77;8001:1;7994:88;8101:4;8098:1;8091:15;8125:4;8122:1;8115:15;8142:320;8186:6;8223:1;8217:4;8213:12;8203:22;;8270:1;8264:4;8260:12;8291:18;8281:81;;8347:4;8339:6;8335:17;8325:27;;8281:81;8409:2;8401:6;8398:14;8378:18;8375:38;8372:84;;8428:18;;:::i;:::-;8372:84;8193:269;8142:320;;;:::o;8468:180::-;8516:77;8513:1;8506:88;8613:4;8610:1;8603:15;8637:4;8634:1;8627:15;8654:191;8694:3;8713:20;8731:1;8713:20;:::i;:::-;8708:25;;8747:20;8765:1;8747:20;:::i;:::-;8742:25;;8790:1;8787;8783:9;8776:16;;8811:3;8808:1;8805:10;8802:36;;;8818:18;;:::i;:::-;8802:36;8654:191;;;;:::o;8851:168::-;8991:20;8987:1;8979:6;8975:14;8968:44;8851:168;:::o;9025:366::-;9167:3;9188:67;9252:2;9247:3;9188:67;:::i;:::-;9181:74;;9264:93;9353:3;9264:93;:::i;:::-;9382:2;9377:3;9373:12;9366:19;;9025:366;;;:::o;9397:419::-;9563:4;9601:2;9590:9;9586:18;9578:26;;9650:9;9644:4;9640:20;9636:1;9625:9;9621:17;9614:47;9678:131;9804:4;9678:131;:::i;:::-;9670:139;;9397:419;;;:::o;9822:222::-;9962:34;9958:1;9950:6;9946:14;9939:58;10031:5;10026:2;10018:6;10014:15;10007:30;9822:222;:::o;10050:366::-;10192:3;10213:67;10277:2;10272:3;10213:67;:::i;:::-;10206:74;;10289:93;10378:3;10289:93;:::i;:::-;10407:2;10402:3;10398:12;10391:19;;10050:366;;;:::o;10422:419::-;10588:4;10626:2;10615:9;10611:18;10603:26;;10675:9;10669:4;10665:20;10661:1;10650:9;10646:17;10639:47;10703:131;10829:4;10703:131;:::i;:::-;10695:139;;10422:419;;;:::o;10847:250::-;10987:34;10983:1;10975:6;10971:14;10964:58;11056:33;11051:2;11043:6;11039:15;11032:58;10847:250;:::o;11103:366::-;11245:3;11266:67;11330:2;11325:3;11266:67;:::i;:::-;11259:74;;11342:93;11431:3;11342:93;:::i;:::-;11460:2;11455:3;11451:12;11444:19;;11103:366;;;:::o;11475:419::-;11641:4;11679:2;11668:9;11664:18;11656:26;;11728:9;11722:4;11718:20;11714:1;11703:9;11699:17;11692:47;11756:131;11882:4;11756:131;:::i;:::-;11748:139;;11475:419;;;:::o;11900:320::-;12015:4;12053:2;12042:9;12038:18;12030:26;;12066:71;12134:1;12123:9;12119:17;12110:6;12066:71;:::i;:::-;12147:66;12209:2;12198:9;12194:18;12185:6;12147:66;:::i;:::-;11900:320;;;;;:::o;12226:194::-;12266:4;12286:20;12304:1;12286:20;:::i;:::-;12281:25;;12320:20;12338:1;12320:20;:::i;:::-;12315:25;;12364:1;12361;12357:9;12349:17;;12388:1;12382:4;12379:11;12376:37;;;12393:18;;:::i;:::-;12376:37;12226:194;;;;:::o;12426:225::-;12566:34;12562:1;12554:6;12550:14;12543:58;12635:8;12630:2;12622:6;12618:15;12611:33;12426:225;:::o;12657:366::-;12799:3;12820:67;12884:2;12879:3;12820:67;:::i;:::-;12813:74;;12896:93;12985:3;12896:93;:::i;:::-;13014:2;13009:3;13005:12;12998:19;;12657:366;;;:::o;13029:419::-;13195:4;13233:2;13222:9;13218:18;13210:26;;13282:9;13276:4;13272:20;13268:1;13257:9;13253:17;13246:47;13310:131;13436:4;13310:131;:::i;:::-;13302:139;;13029:419;;;:::o;13454:225::-;13594:34;13590:1;13582:6;13578:14;13571:58;13663:8;13658:2;13650:6;13646:15;13639:33;13454:225;:::o;13685:366::-;13827:3;13848:67;13912:2;13907:3;13848:67;:::i;:::-;13841:74;;13924:93;14013:3;13924:93;:::i;:::-;14042:2;14037:3;14033:12;14026:19;;13685:366;;;:::o;14057:419::-;14223:4;14261:2;14250:9;14246:18;14238:26;;14310:9;14304:4;14300:20;14296:1;14285:9;14281:17;14274:47;14338:131;14464:4;14338:131;:::i;:::-;14330:139;;14057:419;;;:::o;14482:222::-;14622:34;14618:1;14610:6;14606:14;14599:58;14691:5;14686:2;14678:6;14674:15;14667:30;14482:222;:::o;14710:366::-;14852:3;14873:67;14937:2;14932:3;14873:67;:::i;:::-;14866:74;;14949:93;15038:3;14949:93;:::i;:::-;15067:2;15062:3;15058:12;15051:19;;14710:366;;;:::o;15082:419::-;15248:4;15286:2;15275:9;15271:18;15263:26;;15335:9;15329:4;15325:20;15321:1;15310:9;15306:17;15299:47;15363:131;15489:4;15363:131;:::i;:::-;15355:139;;15082:419;;;:::o;15507:220::-;15647:34;15643:1;15635:6;15631:14;15624:58;15716:3;15711:2;15703:6;15699:15;15692:28;15507:220;:::o;15733:366::-;15875:3;15896:67;15960:2;15955:3;15896:67;:::i;:::-;15889:74;;15972:93;16061:3;15972:93;:::i;:::-;16090:2;16085:3;16081:12;16074:19;;15733:366;;;:::o;16105:419::-;16271:4;16309:2;16298:9;16294:18;16286:26;;16358:9;16352:4;16348:20;16344:1;16333:9;16329:17;16322:47;16386:131;16512:4;16386:131;:::i;:::-;16378:139;;16105:419;;;:::o;16530:182::-;16670:34;16666:1;16658:6;16654:14;16647:58;16530:182;:::o;16718:366::-;16860:3;16881:67;16945:2;16940:3;16881:67;:::i;:::-;16874:74;;16957:93;17046:3;16957:93;:::i;:::-;17075:2;17070:3;17066:12;17059:19;;16718:366;;;:::o;17090:419::-;17256:4;17294:2;17283:9;17279:18;17271:26;;17343:9;17337:4;17333:20;17329:1;17318:9;17314:17;17307:47;17371:131;17497:4;17371:131;:::i;:::-;17363:139;;17090:419;;;:::o;17515:181::-;17655:33;17651:1;17643:6;17639:14;17632:57;17515:181;:::o;17702:366::-;17844:3;17865:67;17929:2;17924:3;17865:67;:::i;:::-;17858:74;;17941:93;18030:3;17941:93;:::i;:::-;18059:2;18054:3;18050:12;18043:19;;17702:366;;;:::o;18074:419::-;18240:4;18278:2;18267:9;18263:18;18255:26;;18327:9;18321:4;18317:20;18313:1;18302:9;18298:17;18291:47;18355:131;18481:4;18355:131;:::i;:::-;18347:139;;18074:419;;;:::o;18499:178::-;18639:30;18635:1;18627:6;18623:14;18616:54;18499:178;:::o;18683:366::-;18825:3;18846:67;18910:2;18905:3;18846:67;:::i;:::-;18839:74;;18922:93;19011:3;18922:93;:::i;:::-;19040:2;19035:3;19031:12;19024:19;;18683:366;;;:::o;19055:419::-;19221:4;19259:2;19248:9;19244:18;19236:26;;19308:9;19302:4;19298:20;19294:1;19283:9;19279:17;19272:47;19336:131;19462:4;19336:131;:::i;:::-;19328:139;;19055:419;;;:::o;19480:234::-;19620:34;19616:1;19608:6;19604:14;19597:58;19689:17;19684:2;19676:6;19672:15;19665:42;19480:234;:::o;19720:366::-;19862:3;19883:67;19947:2;19942:3;19883:67;:::i;:::-;19876:74;;19959:93;20048:3;19959:93;:::i;:::-;20077:2;20072:3;20068:12;20061:19;;19720:366;;;:::o;20092:419::-;20258:4;20296:2;20285:9;20281:18;20273:26;;20345:9;20339:4;20335:20;20331:1;20320:9;20316:17;20309:47;20373:131;20499:4;20373:131;:::i;:::-;20365:139;;20092:419;;;:::o;20517:410::-;20557:7;20580:20;20598:1;20580:20;:::i;:::-;20575:25;;20614:20;20632:1;20614:20;:::i;:::-;20609:25;;20669:1;20666;20662:9;20691:30;20709:11;20691:30;:::i;:::-;20680:41;;20870:1;20861:7;20857:15;20854:1;20851:22;20831:1;20824:9;20804:83;20781:139;;20900:18;;:::i;:::-;20781:139;20565:362;20517:410;;;;:::o;20933:180::-;20981:77;20978:1;20971:88;21078:4;21075:1;21068:15;21102:4;21099:1;21092:15;21119:185;21159:1;21176:20;21194:1;21176:20;:::i;:::-;21171:25;;21210:20;21228:1;21210:20;:::i;:::-;21205:25;;21249:1;21239:35;;21254:18;;:::i;:::-;21239:35;21296:1;21293;21289:9;21284:14;;21119:185;;;;:::o;21310:180::-;21450:32;21446:1;21438:6;21434:14;21427:56;21310:180;:::o;21496:366::-;21638:3;21659:67;21723:2;21718:3;21659:67;:::i;:::-;21652:74;;21735:93;21824:3;21735:93;:::i;:::-;21853:2;21848:3;21844:12;21837:19;;21496:366;;;:::o;21868:419::-;22034:4;22072:2;22061:9;22057:18;22049:26;;22121:9;22115:4;22111:20;22107:1;22096:9;22092:17;22085:47;22149:131;22275:4;22149:131;:::i;:::-;22141:139;;21868:419;;;:::o;22293:182::-;22433:34;22429:1;22421:6;22417:14;22410:58;22293:182;:::o;22481:366::-;22623:3;22644:67;22708:2;22703:3;22644:67;:::i;:::-;22637:74;;22720:93;22809:3;22720:93;:::i;:::-;22838:2;22833:3;22829:12;22822:19;;22481:366;;;:::o;22853:419::-;23019:4;23057:2;23046:9;23042:18;23034:26;;23106:9;23100:4;23096:20;23092:1;23081:9;23077:17;23070:47;23134:131;23260:4;23134:131;:::i;:::-;23126:139;;22853:419;;;:::o;23278:220::-;23418:34;23414:1;23406:6;23402:14;23395:58;23487:3;23482:2;23474:6;23470:15;23463:28;23278:220;:::o;23504:366::-;23646:3;23667:67;23731:2;23726:3;23667:67;:::i;:::-;23660:74;;23743:93;23832:3;23743:93;:::i;:::-;23861:2;23856:3;23852:12;23845:19;;23504:366;;;:::o;23876:419::-;24042:4;24080:2;24069:9;24065:18;24057:26;;24129:9;24123:4;24119:20;24115:1;24104:9;24100:17;24093:47;24157:131;24283:4;24157:131;:::i;:::-;24149:139;;23876:419;;;:::o;24301:223::-;24441:34;24437:1;24429:6;24425:14;24418:58;24510:6;24505:2;24497:6;24493:15;24486:31;24301:223;:::o;24530:366::-;24672:3;24693:67;24757:2;24752:3;24693:67;:::i;:::-;24686:74;;24769:93;24858:3;24769:93;:::i;:::-;24887:2;24882:3;24878:12;24871:19;;24530:366;;;:::o;24902:419::-;25068:4;25106:2;25095:9;25091:18;25083:26;;25155:9;25149:4;25145:20;25141:1;25130:9;25126:17;25119:47;25183:131;25309:4;25183:131;:::i;:::-;25175:139;;24902:419;;;:::o;25327:221::-;25467:34;25463:1;25455:6;25451:14;25444:58;25536:4;25531:2;25523:6;25519:15;25512:29;25327:221;:::o;25554:366::-;25696:3;25717:67;25781:2;25776:3;25717:67;:::i;:::-;25710:74;;25793:93;25882:3;25793:93;:::i;:::-;25911:2;25906:3;25902:12;25895:19;;25554:366;;;:::o;25926:419::-;26092:4;26130:2;26119:9;26115:18;26107:26;;26179:9;26173:4;26169:20;26165:1;26154:9;26150:17;26143:47;26207:131;26333:4;26207:131;:::i;:::-;26199:139;;25926:419;;;:::o;26351:224::-;26491:34;26487:1;26479:6;26475:14;26468:58;26560:7;26555:2;26547:6;26543:15;26536:32;26351:224;:::o;26581:366::-;26723:3;26744:67;26808:2;26803:3;26744:67;:::i;:::-;26737:74;;26820:93;26909:3;26820:93;:::i;:::-;26938:2;26933:3;26929:12;26922:19;;26581:366;;;:::o;26953:419::-;27119:4;27157:2;27146:9;27142:18;27134:26;;27206:9;27200:4;27196:20;27192:1;27181:9;27177:17;27170:47;27234:131;27360:4;27234:131;:::i;:::-;27226:139;;26953:419;;;:::o

Swarm Source

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