ETH Price: $3,394.88 (+1.40%)

Token

WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMo... (WIFEGONEINU)
 

Overview

Max Total Supply

8,888,888,888 WIFEGONEINU

Holders

79

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
bitchescomeandgobrahbutyouknowistaybitchescomeandgobrahbutyouknowistaygotmyballslickedbyazooeydeschanellookalikecocaineaddictrazorbladetoyourheadconflictimacontradictedshitpeeingonoldpeopleshousesisaninflict.eth
Balance
12,570,025.871075416374423367 WIFEGONEINU

Value
$0.00
0xb5b0f3dd0ac67d97ad7bb14de9b3c411d7091857
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:
WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun_STEALTH

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
// File: WifeGoneInu/Libraries.sol



pragma solidity ^0.8.4;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

interface IUniswapFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapRouter {
   
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

}

abstract contract Ownable {
    address private _owner;

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

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

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        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 onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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





// File: WifeGoneInu/WifeGoneInu.sol



//WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun
//WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun
//WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun
//WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun
//WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun
//WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun
//WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun
//WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun
//WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun
//WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun
//WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun //WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun

pragma solidity ^0.8.4;

contract WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun_STEALTH is IERC20Metadata, Ownable
{
     //Token Info
    string private constant _name = 'WifeGoneMarketDumpingNoMoreGucciSteaksVacationNoMoreMoneyToBuyDipsWeApesWillFaceHardshipsButUnitedAlwaysWillWinInNextBullRun';
    string private constant _symbol = 'WIFEGONEINU';
    uint8 private constant _decimals = 18;
    uint public constant InitialSupply= 8888888888*10**_decimals;

    mapping (address => uint) private _balances;
    mapping (address => mapping (address => uint)) private _allowances;
    mapping(address => bool) public excludedFromFeesss;
    mapping(address => bool) public excludedFromLimit;
    mapping(address=>bool) public isAMM;
 

    uint private constant DefaultLiquidityLockTime=7 days;
    //0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3 testnet router
    //0x10ED43C718714eb63d5aA57B78B54704E256024E mainnet router

    address public  UniswapRouter=0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    event OnSetRouter(address UniswapRouter2);
    function SetRouter(address UniswapRouter2) public onlyTeam{
        UniswapRouter=UniswapRouter2;
       
        emit OnSetRouter(UniswapRouter2);
    }


    //variables that track balanceLimit and sellLimit,
    //can be updated based on circulating supply and Sell- and BalanceLimitDividers
    uint private _circulatingSupply =InitialSupply;
    
    //Tracks the current Taxes, different Taxes can be applied for buy/sell/transfer
    uint public buyTax = 0;
    uint public sellTax = 100;
    uint public transferTax = 0;
    uint public burnTax=0;
    uint public liquidityTax=0;
    uint public marketingTax=1000;
    uint constant TAX_DENOMINATOR=1000;
    uint constant MAXTAXDENOMINATOR=10;
    uint public LimitWallet = 1;
    uint public LimitWalletSell = 1;
    

    address private _uniswapPairAddress; 
    IUniswapRouter private  _uniswapRouter;
    
    
    //TODO: marketingWallet
    address public marketingWallet;
    //Only marketingWallet can change marketingWallet
    function ChangeMarketingWallet(address newWallet) public{
        require(msg.sender==marketingWallet);
        marketingWallet=newWallet;
    }
    //modifier for functions only the team can call
    modifier onlyTeam() {
        require(_isTeam(msg.sender), "Caller not Team or Owner");
        _;
    }
    //Checks if address is in Team, is needed to give Team access even if contract is renounced
    //Team doesn't have access to critical Functions that could turn this into a Rugpull(Exept liquidity unlocks)
    function _isTeam(address addr) private view returns (bool){
        return addr==owner()||addr==marketingWallet;
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    //Constructor///////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    constructor () {
        uint deployerBalance=_circulatingSupply;
        _balances[msg.sender] = deployerBalance;
        emit Transfer(address(0), msg.sender, deployerBalance);

        // Uniswap Router
        _uniswapRouter = IUniswapRouter(UniswapRouter);
        //Creates a Uniswap Pair
        _uniswapPairAddress = IUniswapFactory(_uniswapRouter.factory()).createPair(address(this), _uniswapRouter.WETH());
        isAMM[_uniswapPairAddress]=true;
        
        //contract creator is by default marketing wallet
        marketingWallet=msg.sender;
        //owner uniswap router and contract is excluded from Taxes
        excludedFromFeesss[msg.sender]=true;
        excludedFromFeesss[UniswapRouter]=true;
        excludedFromFeesss[address(this)]=true;
    }
    




    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    //Transfer functionality////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////

    //transfer function, every transfer runs through this function
    function _transfer(address sender, address recipient, uint amount) private{
        require(sender != address(0), "Transfer from zero");
        require(recipient != address(0), "Transfer to zero");


        //Pick transfer
        if(excludedFromFeesss[sender] || excludedFromFeesss[recipient])
            _feelessTransfer(sender, recipient, amount);
        else if(excludedFromLimit[recipient]){ 
            //once trading is enabled, it can't be turned off again
            require(LaunchTimestamp>0,"trading not yet enabled");
            _LimitlessFonctionTransfer(sender,recipient,amount);                  
        }
        else { 
            //once trading is enabled, it can't be turned off again
            require(LaunchTimestamp>0,"trading not yet enabled");
            _taxedTransfer(sender,recipient,amount);                  
        }
    }
    
    //applies taxes, checks for limits, locks generates autoLP and stakingETH, and autostakes
    function _taxedTransfer(address sender, address recipient, uint amount) private{
        uint senderBalance = _balances[sender];
        uint recipientBalance = _balances[recipient];
        require(senderBalance >= amount, "Transfer exceeds balance");
        require(senderBalance/LimitWalletSell >= amount, "Transfer exceeds authorise sell");
        require((recipientBalance + amount ) <= InitialSupply/LimitWallet, "Wallet contain more than certain % Total Supply");

        bool isBuy=isAMM[sender];
        bool isSell=isAMM[recipient];

        uint tax;
        if(isSell){  
            uint SellTaxDuration=300 seconds;          
            if(block.timestamp<LaunchTimestamp+SellTaxDuration){
                tax=_getStartTax(SellTaxDuration,300);
                }else tax=sellTax;
            }
        else if(isBuy){
            uint BuyTaxDuration=300 seconds;
            if(block.timestamp<LaunchTimestamp+BuyTaxDuration){
                tax=_getStartTax(BuyTaxDuration,300);
            }else tax=buyTax;
        } else tax=transferTax;

        if((sender!=_uniswapPairAddress)&&(!manualSwap)&&(!_isSwappingContractModifier))
            _swapContractToken(false);

        //Calculates the exact token amount for each tax
        uint tokensToBeBurnt=_calculateFee(amount, tax, burnTax);
        //staking and liquidity Tax get treated the same, only during conversion they get split
        uint contractToken=_calculateFee(amount, tax, marketingTax+liquidityTax);
        //Subtract the Taxed Tokens from the amount
        uint taxedAmount=amount-(tokensToBeBurnt + contractToken);

        _balances[sender]-=amount;
        //Adds the taxed tokens to the contract wallet
        _balances[address(this)] += contractToken;
        //Burns tokens
        _circulatingSupply-=tokensToBeBurnt;
        _balances[recipient]+=taxedAmount;
        
        emit Transfer(sender,recipient,taxedAmount);
    }
    //Start tax drops depending on the time since launch, enables bot protection and Dump protection
    function _getStartTax(uint duration, uint maxTax) private view returns (uint){
        uint timeSinceLaunch=block.timestamp-LaunchTimestamp;
        return maxTax-((maxTax-50)*timeSinceLaunch/duration);
    }
    //Calculates the token that should be taxed
    function _calculateFee(uint amount, uint tax, uint taxPercent) private pure returns (uint) {
        return (amount*tax*taxPercent) / (TAX_DENOMINATOR*TAX_DENOMINATOR);
    }


    //Feeless transfer only transfers and autostakes
    function _feelessTransfer(address sender, address recipient, uint amount) private{
        uint senderBalance = _balances[sender];
        require(senderBalance >= amount, "Transfer exceeds balance");
        _balances[sender]-=amount;
        _balances[recipient]+=amount;      
        emit Transfer(sender,recipient,amount);
    }
///////////////////////////////MiouxSiouTiouKiou//////////addd
    function _LimitlessFonctionTransfer (address sender, address recipient, uint amount) private{
        uint senderBalance = _balances[sender];
        require(senderBalance >= amount, "Transfer exceeds balance");

        bool isBuy=isAMM[sender];
        bool isSell=isAMM[recipient];

        uint tax;
        if(isSell){  
            uint SellTaxDuration=300 seconds;          
            if(block.timestamp<LaunchTimestamp+SellTaxDuration){
                tax=_getStartTax(SellTaxDuration,300);
                }else tax=sellTax;
            }
        else if(isBuy){
            uint BuyTaxDuration=300 seconds;
            if(block.timestamp<LaunchTimestamp+BuyTaxDuration){
                tax=_getStartTax(BuyTaxDuration,300);
            }else tax=buyTax;
        } else tax=transferTax;

        if((sender!=_uniswapPairAddress)&&(!manualSwap)&&(!_isSwappingContractModifier))
            _swapContractToken(false);

        //Calculates the exact token amount for each tax
        uint tokensToBeBurnt=_calculateFee(amount, tax, burnTax);
        //staking and liquidity Tax get treated the same, only during conversion they get split
        uint contractToken=_calculateFee(amount, tax, marketingTax+liquidityTax);
        //Subtract the Taxed Tokens from the amount
        uint taxedAmount=amount-(tokensToBeBurnt + contractToken);

        _balances[sender]-=amount;
        //Adds the taxed tokens to the contract wallet
        _balances[address(this)] += contractToken;
        //Burns tokens
        _circulatingSupply-=tokensToBeBurnt;
        _balances[recipient]+=taxedAmount;
        
        emit Transfer(sender,recipient,taxedAmount);
    }
    

    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    //Swap Contract Tokens yeaaaaah Broo//////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    
    //Locks the swap if already swapping
    bool private _isSwappingContractModifier;
    modifier lockTheSwap {
        _isSwappingContractModifier = true;
        _;
        _isSwappingContractModifier = false;
    }

    //Sets the permille of uniswap pair to trigger liquifying taxed token
    uint public swapTreshold=2;
    function setSwapTreshold(uint newSwapTresholdPermille) public onlyTeam{
        require(newSwapTresholdPermille<=15);//MaxTreshold= 1.5%
        swapTreshold=newSwapTresholdPermille;
    }
    //Sets the max Liquidity where swaps for Liquidity still happen
    uint public overLiquifyTreshold=150;
    function SetOverLiquifiedTreshold(uint newOverLiquifyTresholdPermille) public onlyTeam{
        require(newOverLiquifyTresholdPermille<=1000);
        overLiquifyTreshold=newOverLiquifyTresholdPermille;
    }
    //Sets the taxes Burn+marketing+liquidity tax needs to equal the TAX_DENOMINATOR (1000)
    //buy, sell and transfer tax are limited by the MAXTAXDENOMINATOR
    event OnSetTaxes(uint buy, uint sell, uint transfer_, uint burn, uint marketing,uint liquidity);
    function SetTaxes(uint buy, uint sell, uint transfer_, uint burn, uint marketing,uint liquidity) public onlyTeam{
        uint maxTax=(TAX_DENOMINATOR/MAXTAXDENOMINATOR)/2;
        require(buy<=maxTax&&sell<=maxTax&&transfer_<=maxTax,"Tax exceeds maxTax");
        require(burn+marketing+liquidity==TAX_DENOMINATOR,"Taxes don't add up to denominator");
        
        buyTax=buy;
        sellTax=sell;
        transferTax=transfer_;
        marketingTax=marketing;
        liquidityTax=liquidity;
        burnTax=burn;
        emit OnSetTaxes(buy, sell, transfer_, burn, marketing,liquidity);
    }
    
    event OnSetLimit(uint LimitWallet2);
    function SetLimit(uint LimitWallet2) public onlyTeam{
        require(LimitWallet2<=50,"Max wallet  can't be under 2% of the total supply");
        LimitWallet=LimitWallet2;
       
        emit OnSetLimit(LimitWallet2);
    }

    event OnSetSell(uint LimitWalletSell2);
    function SetSell(uint LimitWalletSell2) public onlyTeam{
        require(LimitWalletSell2<=2,"Dump measure can't be under 50% of the wallet");
        LimitWalletSell=LimitWalletSell2;
       
        emit OnSetSell(LimitWalletSell2);
    }



    //If liquidity is over the treshold, convert 100% of Token to Marketing ETH to avoid overliquifying
    function isOverLiquified() public view returns(bool){
        return _balances[_uniswapPairAddress]>_circulatingSupply*overLiquifyTreshold/1000;
    }


    //swaps the token on the contract for Marketing ETH and LP Token.
    //always swaps a percentage of the LP pair balance to avoid price impact
    function _swapContractToken(bool ignoreLimits) private lockTheSwap{
        uint contractBalance=_balances[address(this)];
        uint totalTax=liquidityTax+marketingTax;
        //swaps each time it reaches swapTreshold of uniswap pair to avoid large prize impact
        uint tokenToSwap=_balances[_uniswapPairAddress]*swapTreshold/1000;

        //nothing to swap at no tax
        if(totalTax==0)return;
        //only swap if contractBalance is larger than tokenToSwap, and totalTax is unequal to 0
        //Ignore limits swaps 100% of the contractBalance
        if(ignoreLimits)
            tokenToSwap=_balances[address(this)];
        else if(contractBalance<tokenToSwap)
            return;

        //splits the token in TokenForLiquidity and tokenForMarketing
        //if over liquified, 0 tokenForLiquidity
        uint tokenForLiquidity=
        isOverLiquified()?0
        :(tokenToSwap*liquidityTax)/totalTax;

        uint tokenForMarketing= tokenToSwap-tokenForLiquidity;

        uint LiqHalf=tokenForLiquidity/2;
        //swaps marktetingToken and the liquidity token half for ETH
        uint swapToken=LiqHalf+tokenForMarketing;
        //Gets the initial ETH balance, so swap won't touch any contract ETH
        uint initialETHBalance = address(this).balance;
        _swapTokenForETH(swapToken);
        uint newETH=(address(this).balance - initialETHBalance);

        //calculates the amount of ETH belonging to the LP-Pair and converts them to LP
        if(tokenForLiquidity>0){
            uint liqETH = (newETH*LiqHalf)/swapToken;
            _addLiquidity(LiqHalf, liqETH);
        }
        //Sends all the marketing ETH to the marketingWallet
        (bool sent,)=marketingWallet.call{value:address(this).balance}("");
        sent=true;
    }
    //swaps tokens on the contract for ETH
    function _swapTokenForETH(uint amount) private {
        _approve(address(this), address(_uniswapRouter), amount);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapRouter.WETH();

        try _uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0,
            path,
            address(this),
            block.timestamp
        ){}
        catch{}
    }
    //Adds Liquidity directly to the contract where LP are locked
    function _addLiquidity(uint tokenamount, uint ethamount) private {
        _approve(address(this), address(_uniswapRouter), tokenamount);
        _uniswapRouter.addLiquidityETH{value: ethamount}(
            address(this),
            tokenamount,
            0,
            0,
            address(this),
            block.timestamp
        );
    }

    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    //public functions /////////////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////////////////////////////// 
    function getLiquidityReleaseTimeInSeconds() public view returns (uint){
        if(block.timestamp<_liquidityUnlockTime)
            return _liquidityUnlockTime-block.timestamp;
        return 0;
    }
    function getBurnedTokens() public view returns(uint){
        return (InitialSupply-_circulatingSupply)+_balances[address(0xdead)];
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    //Settings//////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    //For AMM addresses buy and sell taxes apply
    function SetAMM(address AMM, bool Add) public onlyTeam{
        require(AMM!=_uniswapPairAddress,"can't change uniswap");
        isAMM[AMM]=Add;
    }
    
    bool public manualSwap;
    //switches autoLiquidity and marketing ETH generation during transfers
    function SwitchManualSwap(bool manual) public onlyTeam{
        manualSwap=manual;
    }
    //manually converts contract token to LP and staking ETH
    function SwapContractToken() public onlyTeam{
    _swapContractToken(true);
    }
    event ExcludeAccount(address account, bool exclude);
    //Exclude/Include account from fees (eg. CEX)
    function ExcludeAccountFromFees(address account, bool exclude) public onlyTeam{
        require(account!=address(this),"can't Include the contract");
        excludedFromFeesss[account]=exclude;
        emit ExcludeAccount(account,exclude);
    }

    /////////////moussss///////////
     event ExcludeAccountLimit(address account, bool exclude);
    //Exclude/Include account from fees (eg. CEX)
    function ExcludedFromLimit(address account, bool exclude) public onlyTeam{
        require(account!=address(this),"can't Include the contract");
        excludedFromLimit[account]=exclude;
        emit ExcludeAccountLimit(account,exclude);
    }



    //Enables trading. Sets the launch timestamp to the given Value
    event OnEnableTrading();
    uint public LaunchTimestamp;
    function SetupEnableTrading() public onlyTeam{
        require(LaunchTimestamp==0,"AlreadyLaunched");
        LaunchTimestamp=block.timestamp;
        emit OnEnableTrading();
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    //Liquidity Lock////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    //the timestamp when Liquidity unlocks
    uint _liquidityUnlockTime;
    bool public LPReleaseLimitedTo20Percent;
    //Sets Liquidity Release to 20% at a time and prolongs liquidity Lock for a Week after Release. 
    //That way autoLiquidity can be slowly released 
    function limitLiquidityReleaseTo20Percent() public onlyTeam{
        LPReleaseLimitedTo20Percent=true;
    }
    //Locks Liquidity for seconds. can only be prolonged
    function LockLiquidityForSeconds(uint secondsUntilUnlock) public onlyTeam{
        _prolongLiquidityLock(secondsUntilUnlock+block.timestamp);
    }
    event OnProlongLPLock(uint UnlockTimestamp);
    function _prolongLiquidityLock(uint newUnlockTime) private{
        // require new unlock time to be longer than old one
        require(newUnlockTime>_liquidityUnlockTime);
        _liquidityUnlockTime=newUnlockTime;
        emit OnProlongLPLock(_liquidityUnlockTime);
    }
    event OnReleaseLP();
    //Release Liquidity Tokens once unlock time is over
    function LiquidityRelease() public onlyTeam {
        //Only callable if liquidity Unlock time is over
        require(block.timestamp >= _liquidityUnlockTime, "Not yet unlocked");

        IERC20 liquidityToken = IERC20(_uniswapPairAddress);
        uint amount = liquidityToken.balanceOf(address(this));
        if(LPReleaseLimitedTo20Percent)
        {
            _liquidityUnlockTime=block.timestamp+DefaultLiquidityLockTime;
            //regular liquidity release, only releases 50% at a time and locks liquidity for another week
            amount=amount*2/10;
        }
        liquidityToken.transfer(msg.sender, amount);
        emit OnReleaseLP();
    }

    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    //external//////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////

    receive() external payable {}

    function name() external pure override returns (string memory) {
        return _name;
    }

    function symbol() external pure override returns (string memory) {
        return _symbol;
    }

    function decimals() external pure override returns (uint8) {
        return _decimals;
    }

    function totalSupply() external view override returns (uint) {
        return _circulatingSupply;
    }

    function balanceOf(address account) external view override returns (uint) {
        return _balances[account];
    }

    function transfer(address recipient, uint amount) external override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function allowance(address _owner, address spender) external view override returns (uint) {
        return _allowances[_owner][spender];
    }

    function approve(address spender, uint amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }
    function _approve(address owner, address spender, uint amount) private {
        require(owner != address(0), "Approve from zero");
        require(spender != address(0), "Approve to zero");

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

    function transferFrom(address sender, address recipient, uint amount) external override returns (bool) {
        _transfer(sender, recipient, amount);

        uint currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "Transfer > allowance");

        _approve(sender, msg.sender, currentAllowance - amount);
        return true;
    }

    // IERC20 - Helpers

    function increaseAllowance(address spender, uint addedValue) external returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint subtractedValue) external returns (bool) {
        uint currentAllowance = _allowances[msg.sender][spender];
        require(currentAllowance >= subtractedValue, "<0 allowance");

        _approve(msg.sender, spender, currentAllowance - subtractedValue);
        return true;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeAccount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeAccountLimit","type":"event"},{"anonymous":false,"inputs":[],"name":"OnEnableTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"UnlockTimestamp","type":"uint256"}],"name":"OnProlongLPLock","type":"event"},{"anonymous":false,"inputs":[],"name":"OnReleaseLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"LimitWallet2","type":"uint256"}],"name":"OnSetLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"UniswapRouter2","type":"address"}],"name":"OnSetRouter","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"LimitWalletSell2","type":"uint256"}],"name":"OnSetSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sell","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"transfer_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"burn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"marketing","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"OnSetTaxes","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"ChangeMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeAccountFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludedFromLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"InitialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LPReleaseLimitedTo20Percent","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LaunchTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LimitWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LimitWalletSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LiquidityRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"secondsUntilUnlock","type":"uint256"}],"name":"LockLiquidityForSeconds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"AMM","type":"address"},{"internalType":"bool","name":"Add","type":"bool"}],"name":"SetAMM","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"LimitWallet2","type":"uint256"}],"name":"SetLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newOverLiquifyTresholdPermille","type":"uint256"}],"name":"SetOverLiquifiedTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"UniswapRouter2","type":"address"}],"name":"SetRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"LimitWalletSell2","type":"uint256"}],"name":"SetSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"transfer_","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"SetTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SetupEnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SwapContractToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"manual","type":"bool"}],"name":"SwitchManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"UniswapRouter","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":[],"name":"burnTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"","type":"address"}],"name":"excludedFromFeesss","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBurnedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLiquidityReleaseTimeInSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isAMM","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitLiquidityReleaseTo20Percent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidityTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"overLiquifyTreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapTresholdPermille","type":"uint256"}],"name":"setSwapTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000386012600a620003cb565b6200004990640211d1ae386200048c565b600755600060085560646009556000600a556000600b556000600c556103e8600d556001600e556001600f55600260135560966014553480156200008c57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600754336000818152600160209081526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600654601180546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200016d57600080fd5b505afa15801562000182573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a8919062000350565b6001600160a01b031663c9c6539630601160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200020657600080fd5b505afa1580156200021b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000241919062000350565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200028a57600080fd5b505af11580156200029f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c5919062000350565b601080546001600160a01b03199081166001600160a01b039384169081179092556000918252600560209081526040808420805460ff19908116600190811790925560128054339616861790559385526003909252808420805484168317905560065490941683528383208054831682179055308352929091208054909116909117905550620004c4565b6000602082840312156200036357600080fd5b81516001600160a01b03811681146200037b57600080fd5b9392505050565b600181815b80851115620003c3578160001904821115620003a757620003a7620004ae565b80851615620003b557918102915b93841c939080029062000387565b509250929050565b60006200037b60ff841683600082620003e75750600162000486565b81620003f65750600062000486565b81600181146200040f57600281146200041a576200043a565b600191505062000486565b60ff8411156200042e576200042e620004ae565b50506001821b62000486565b5060208310610133831016604e8410600b84101617156200045f575081810a62000486565b6200046b838362000382565b8060001904821115620004825762000482620004ae565b0290505b92915050565b6000816000190483118215151615620004a957620004a9620004ae565b500290565b634e487b7160e01b600052601160045260246000fd5b612b1680620004d46000396000f3fe6080604052600436106103035760003560e01c80638124f7ac11610190578063c3a3c032116100dc578063d8bd2dd111610095578063e52fb9ec1161006f578063e52fb9ec146108e8578063eabd5848146108fe578063ec058ca01461092e578063f2fde38b1461094457600080fd5b8063d8bd2dd114610852578063dd62ed3e14610882578063e0d2f9eb146108c857600080fd5b8063c3a3c032146107a2578063c3f4f54f146107b7578063c7639d80146107cc578063cc1776d3146107ec578063cfd1940e14610802578063d46b6a301461082257600080fd5b8063a457c2d711610149578063ab64cfdc11610123578063ab64cfdc14610736578063b40d09e214610756578063bc43d8491461076c578063be617fa01461078c57600080fd5b8063a457c2d7146106e1578063a68bdac714610701578063a9059cbb1461071657600080fd5b80638124f7ac1461061f578063817d4bff14610635578063868b0141146106555780638da5cb5b1461067557806395d89b41146106935780639b39b65f146106c757600080fd5b806333ae83251161024f5780635149f9841161020857806370a08231116101e257806370a0823114610587578063715018a6146105bd57806375f0a874146105d25780637b9e987a1461060a57600080fd5b80635149f9841461052d57806351bc3c851461054d5780636de4326a1461056757600080fd5b806333ae83251461048d57806339509351146104ad57806341aec357146104cd57806346e35f03146104e2578063479881bf146104f75780634f7041a51461051757600080fd5b80631d4eaead116102bc57806323b872dd1161029657806323b872dd146104115780632d48f84f14610431578063313ce567146104515780633227925f1461046d57600080fd5b80631d4eaead146103d05780631d9f98cd146103e65780631eb25d13146103fc57600080fd5b80630612f39d1461030f57806306fdde0314610326578063095ea7b3146103515780630eff4c641461038157806318160ddd146103a55780631d2cb02d146103ba57600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b50610324610964565b005b34801561033257600080fd5b5061033b610b3d565b6040516103489190612783565b60405180910390f35b34801561035d57600080fd5b5061037161036c36600461267a565b610b5d565b6040519015158152602001610348565b34801561038d57600080fd5b5061039760145481565b604051908152602001610348565b3480156103b157600080fd5b50600754610397565b3480156103c657600080fd5b50610397600d5481565b3480156103dc57600080fd5b50610397600b5481565b3480156103f257600080fd5b50610397600e5481565b34801561040857600080fd5b50610397610b74565b34801561041d57600080fd5b5061037161042c36600461260b565b610b92565b34801561043d57600080fd5b5061032461044c366004612740565b610c29565b34801561045d57600080fd5b5060405160128152602001610348565b34801561047957600080fd5b506103246104883660046126e0565b610db4565b34801561049957600080fd5b506103246104a83660046126e0565b610dee565b3480156104b957600080fd5b506103716104c836600461267a565b610eb6565b3480156104d957600080fd5b50610324610eed565b3480156104ee57600080fd5b50610371610f1e565b34801561050357600080fd5b506103246105123660046126e0565b610f5e565b34801561052357600080fd5b5061039760085481565b34801561053957600080fd5b5061032461054836600461264c565b611023565b34801561055957600080fd5b506015546103719060ff1681565b34801561057357600080fd5b50610324610582366004612591565b6110c8565b34801561059357600080fd5b506103976105a2366004612591565b6001600160a01b031660009081526001602052604090205490565b3480156105c957600080fd5b5061032461113b565b3480156105de57600080fd5b506012546105f2906001600160a01b031681565b6040516001600160a01b039091168152602001610348565b34801561061657600080fd5b506103246111ee565b34801561062b57600080fd5b50610397600a5481565b34801561064157600080fd5b50610324610650366004612591565b611284565b34801561066157600080fd5b506103246106703660046126a6565b6112bd565b34801561068157600080fd5b506000546001600160a01b03166105f2565b34801561069f57600080fd5b5060408051808201909152600b81526a57494645474f4e45494e5560a81b602082015261033b565b3480156106d357600080fd5b506018546103719060ff1681565b3480156106ed57600080fd5b506103716106fc36600461267a565b6112f5565b34801561070d57600080fd5b50610324611371565b34801561072257600080fd5b5061037161073136600461267a565b6113a5565b34801561074257600080fd5b5061032461075136600461264c565b6113b2565b34801561076257600080fd5b5061039760165481565b34801561077857600080fd5b506103246107873660046126e0565b611494565b34801561079857600080fd5b50610397600c5481565b3480156107ae57600080fd5b506103976114cd565b3480156107c357600080fd5b506103976114f2565b3480156107d857600080fd5b506006546105f2906001600160a01b031681565b3480156107f857600080fd5b5061039760095481565b34801561080e57600080fd5b5061032461081d3660046126e0565b611553565b34801561082e57600080fd5b5061037161083d366004612591565b60056020526000908152604090205460ff1681565b34801561085e57600080fd5b5061037161086d366004612591565b60046020526000908152604090205460ff1681565b34801561088e57600080fd5b5061039761089d3660046125d2565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156108d457600080fd5b506103246108e336600461264c565b61158b565b3480156108f457600080fd5b5061039760135481565b34801561090a57600080fd5b50610371610919366004612591565b60036020526000908152604090205460ff1681565b34801561093a57600080fd5b50610397600f5481565b34801561095057600080fd5b5061032461095f366004612591565b611665565b61096d3361178e565b6109925760405162461bcd60e51b81526004016109899061280f565b60405180910390fd5b6017544210156109d75760405162461bcd60e51b815260206004820152601060248201526f139bdd081e595d081d5b9b1bd8dad95960821b6044820152606401610989565b6010546040516370a0823160e01b81523060048201526001600160a01b039091169060009082906370a082319060240160206040518083038186803b158015610a1f57600080fd5b505afa158015610a33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5791906126f9565b60185490915060ff1615610a8f57610a7262093a80426128b7565b601755600a610a828260026129df565b610a8c91906128cf565b90505b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401602060405180830381600087803b158015610ad757600080fd5b505af1158015610aeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0f91906126c3565b506040517f28bacca46f5c57fe13623e9d5093cb2fab892814aca9b39384ab86550d9aa67590600090a15050565b60606040518060a00160405280607c8152602001612a65607c9139905090565b6000610b6a3384846117bb565b5060015b92915050565b610b806012600a612934565b610b8f90640211d1ae386129df565b81565b6000610b9f8484846118ae565b6001600160a01b038416600090815260026020908152604080832033845290915290205482811015610c0a5760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b6044820152606401610989565b610c1e8533610c1986856129fe565b6117bb565b506001949350505050565b610c323361178e565b610c4e5760405162461bcd60e51b81526004016109899061280f565b60006002610c5f600a6103e86128cf565b610c6991906128cf565b9050808711158015610c7b5750808611155b8015610c875750808511155b610cc85760405162461bcd60e51b81526020600482015260126024820152710a8c2f040caf0c6cacac8e640dac2f0a8c2f60731b6044820152606401610989565b6103e882610cd685876128b7565b610ce091906128b7565b14610d375760405162461bcd60e51b815260206004820152602160248201527f546178657320646f6e27742061646420757020746f2064656e6f6d696e61746f6044820152603960f91b6064820152608401610989565b60088790556009869055600a859055600d839055600c829055600b8490556040805188815260208101889052908101869052606081018590526080810184905260a081018390527f95617e149b678679d65360792e6610c8fc9add72efd72fc3c8d94792801ca5c99060c00160405180910390a150505050505050565b610dbd3361178e565b610dd95760405162461bcd60e51b81526004016109899061280f565b610deb610de642836128b7565b611a65565b50565b610df73361178e565b610e135760405162461bcd60e51b81526004016109899061280f565b6002811115610e7a5760405162461bcd60e51b815260206004820152602d60248201527f44756d70206d6561737572652063616e277420626520756e646572203530252060448201526c1bd9881d1a19481dd85b1b195d609a1b6064820152608401610989565b600f8190556040518181527fdfcf82c64ef2a938975f4ad1599e559af165a244802754595fcbffcf5ffdd0d9906020015b60405180910390a150565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610b6a918590610c199086906128b7565b610ef63361178e565b610f125760405162461bcd60e51b81526004016109899061280f565b610f1c6001611aa8565b565b60006103e8601454600754610f3391906129df565b610f3d91906128cf565b6010546001600160a01b031660009081526001602052604090205411919050565b610f673361178e565b610f835760405162461bcd60e51b81526004016109899061280f565b6032811115610fee5760405162461bcd60e51b815260206004820152603160248201527f4d61782077616c6c6574202063616e277420626520756e646572203225206f666044820152702074686520746f74616c20737570706c7960781b6064820152608401610989565b600e8190556040518181527fd1db3c8f76ced548252ac593ebef6129c122ab13cce5b9367eb4421cebe3885590602001610eab565b61102c3361178e565b6110485760405162461bcd60e51b81526004016109899061280f565b6010546001600160a01b038381169116141561109d5760405162461bcd60e51b8152602060048201526014602482015273063616e2774206368616e676520756e69737761760641b6044820152606401610989565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6110d13361178e565b6110ed5760405162461bcd60e51b81526004016109899061280f565b600680546001600160a01b0319166001600160a01b0383169081179091556040519081527fa261ce2a0d1773bb49aa36d2e9085ad2c89e3b0f852e70430b5d4218db6cc6a690602001610eab565b3361114e6000546001600160a01b031690565b6001600160a01b0316146111a45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6111f73361178e565b6112135760405162461bcd60e51b81526004016109899061280f565b601654156112555760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e53185d5b98da1959608a1b6044820152606401610989565b426016556040517f2cb945e0498987ef06dbd68025b0bc276116c63345296379c28a8e8f09b47dc190600090a1565b6012546001600160a01b0316331461129b57600080fd5b601280546001600160a01b0319166001600160a01b0392909216919091179055565b6112c63361178e565b6112e25760405162461bcd60e51b81526004016109899061280f565b6015805460ff1916911515919091179055565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156113585760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610989565b6113673385610c1986856129fe565b5060019392505050565b61137a3361178e565b6113965760405162461bcd60e51b81526004016109899061280f565b6018805460ff19166001179055565b6000610b6a3384846118ae565b6113bb3361178e565b6113d75760405162461bcd60e51b81526004016109899061280f565b6001600160a01b0382163014156114305760405162461bcd60e51b815260206004820152601a60248201527f63616e277420496e636c7564652074686520636f6e74726163740000000000006044820152606401610989565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527f9a547f2adf55e10d7297ec9f54496d4044ad440b7cd8f5b5d5700778377d71d391015b60405180910390a15050565b61149d3361178e565b6114b95760405162461bcd60e51b81526004016109899061280f565b6103e88111156114c857600080fd5b601455565b60006017544210156114ec57426017546114e791906129fe565b905090565b50600090565b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d546007546115306012600a612934565b61153f90640211d1ae386129df565b61154991906129fe565b6114e791906128b7565b61155c3361178e565b6115785760405162461bcd60e51b81526004016109899061280f565b600f81111561158657600080fd5b601355565b6115943361178e565b6115b05760405162461bcd60e51b81526004016109899061280f565b6001600160a01b0382163014156116095760405162461bcd60e51b815260206004820152601a60248201527f63616e277420496e636c7564652074686520636f6e74726163740000000000006044820152606401610989565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527fa22b25479919d4ac678f064a05daa1ee9c0adc3b8198942ea45255e364e04ed49101611488565b336116786000546001600160a01b031690565b6001600160a01b0316146116ce5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b6001600160a01b0381166117335760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610989565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b0383811691161480610b6e5750506012546001600160a01b0390811691161490565b6001600160a01b0383166118055760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610989565b6001600160a01b03821661184d5760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610989565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118f95760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b6044820152606401610989565b6001600160a01b0382166119425760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b6044820152606401610989565b6001600160a01b03831660009081526003602052604090205460ff168061198157506001600160a01b03821660009081526003602052604090205460ff165b1561199657611991838383611c61565b505050565b6001600160a01b03821660009081526004602052604090205460ff1615611a0e57600060165411611a035760405162461bcd60e51b81526020600482015260176024820152761d1c98591a5b99c81b9bdd081e595d08195b98589b1959604a1b6044820152606401610989565b611991838383611d49565b600060165411611a5a5760405162461bcd60e51b81526020600482015260176024820152761d1c98591a5b99c81b9bdd081e595d08195b98589b1959604a1b6044820152606401610989565b611991838383611fa7565b6017548111611a7357600080fd5b60178190556040518181527f8ff9dc93846a022986f54e8f219a1fa780225726858e39e850da826852b4042e90602001610eab565b6012805460ff60a01b1916600160a01b17905530600090815260016020526040812054600d54600c54919291611ade91906128b7565b6013546010546001600160a01b0316600090815260016020526040812054929350916103e891611b0d916129df565b611b1791906128cf565b905081611b2657505050611c51565b8315611b42575030600090815260016020526040902054611b52565b80831015611b5257505050611c51565b6000611b5c610f1e565b611b7e5782600c5483611b6f91906129df565b611b7991906128cf565b611b81565b60005b90506000611b8f82846129fe565b90506000611b9e6002846128cf565b90506000611bac83836128b7565b905047611bb882612300565b6000611bc482476129fe565b90508515611bf157600083611bd986846129df565b611be391906128cf565b9050611bef858261245e565b505b6012546040516000916001600160a01b03169047908381818185875af1925050503d8060008114611c3e576040519150601f19603f3d011682016040523d82523d6000602084013e611c43565b606091505b505050505050505050505050505b506012805460ff60a01b19169055565b6001600160a01b03831660009081526001602052604090205481811015611c9a5760405162461bcd60e51b8152600401610989906127d8565b6001600160a01b03841660009081526001602052604081208054849290611cc29084906129fe565b90915550506001600160a01b03831660009081526001602052604081208054849290611cef9084906128b7565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d3b91815260200190565b60405180910390a350505050565b6001600160a01b03831660009081526001602052604090205481811015611d825760405162461bcd60e51b8152600401610989906127d8565b6001600160a01b0380851660009081526005602052604080822054928616825281205460ff9283169216908115611deb5760165461012c90611dc59082906128b7565b421015611ddf57611dd88161012c61251e565b9150611de5565b60095491505b50611e25565b8215611e205760165461012c90611e039082906128b7565b421015611e1657611dd88161012c61251e565b5050600854611e25565b50600a545b6010546001600160a01b03888116911614801590611e46575060155460ff16155b8015611e5c5750601254600160a01b900460ff16155b15611e6b57611e6b6000611aa8565b6000611e7a8683600b54612564565b90506000611e988784600c54600d54611e9391906128b7565b612564565b90506000611ea682846128b7565b611eb090896129fe565b6001600160a01b038b16600090815260016020526040812080549293508a92909190611edd9084906129fe565b90915550503060009081526001602052604081208054849290611f019084906128b7565b925050819055508260076000828254611f1a91906129fe565b90915550506001600160a01b03891660009081526001602052604081208054839290611f479084906128b7565b92505081905550886001600160a01b03168a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f9391815260200190565b60405180910390a350505050505050505050565b6001600160a01b0380841660009081526001602052604080822054928516825290205482821015611fea5760405162461bcd60e51b8152600401610989906127d8565b82600f5483611ff991906128cf565b10156120475760405162461bcd60e51b815260206004820152601f60248201527f5472616e73666572206578636565647320617574686f726973652073656c6c006044820152606401610989565b600e546120566012600a612934565b61206590640211d1ae386129df565b61206f91906128cf565b61207984836128b7565b11156120df5760405162461bcd60e51b815260206004820152602f60248201527f57616c6c657420636f6e7461696e206d6f7265207468616e206365727461696e60448201526e202520546f74616c20537570706c7960881b6064820152608401610989565b6001600160a01b0380861660009081526005602052604080822054928716825281205460ff92831692169081156121485760165461012c906121229082906128b7565b42101561213c576121358161012c61251e565b9150612142565b60095491505b50612182565b821561217d5760165461012c906121609082906128b7565b421015612173576121358161012c61251e565b5050600854612182565b50600a545b6010546001600160a01b038981169116148015906121a3575060155460ff16155b80156121b95750601254600160a01b900460ff16155b156121c8576121c86000611aa8565b60006121d78783600b54612564565b905060006121f08884600c54600d54611e9391906128b7565b905060006121fe82846128b7565b612208908a6129fe565b6001600160a01b038c16600090815260016020526040812080549293508b929091906122359084906129fe565b909155505030600090815260016020526040812080548492906122599084906128b7565b92505081905550826007600082825461227291906129fe565b90915550506001600160a01b038a166000908152600160205260408120805483929061229f9084906128b7565b92505081905550896001600160a01b03168b6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122eb91815260200190565b60405180910390a35050505050505050505050565b6011546123189030906001600160a01b0316836117bb565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061234d5761234d612a2b565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156123a157600080fd5b505afa1580156123b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123d991906125b5565b816001815181106123ec576123ec612a2b565b6001600160a01b03928316602091820292909201015260115460405163791ac94760e01b815291169063791ac94790612432908590600090869030904290600401612846565b600060405180830381600087803b15801561244c57600080fd5b505af192505050801561199157505050565b6011546124769030906001600160a01b0316846117bb565b60115460405163f305d71960e01b8152306004820181905260248201859052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990839060c4016060604051808303818588803b1580156124de57600080fd5b505af11580156124f2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906125179190612712565b5050505050565b6000806016544261252f91906129fe565b9050838161253e6032866129fe565b61254891906129df565b61255291906128cf565b61255c90846129fe565b949350505050565b60006125726103e8806129df565b8261257d85876129df565b61258791906129df565b61255c91906128cf565b6000602082840312156125a357600080fd5b81356125ae81612a41565b9392505050565b6000602082840312156125c757600080fd5b81516125ae81612a41565b600080604083850312156125e557600080fd5b82356125f081612a41565b9150602083013561260081612a41565b809150509250929050565b60008060006060848603121561262057600080fd5b833561262b81612a41565b9250602084013561263b81612a41565b929592945050506040919091013590565b6000806040838503121561265f57600080fd5b823561266a81612a41565b9150602083013561260081612a56565b6000806040838503121561268d57600080fd5b823561269881612a41565b946020939093013593505050565b6000602082840312156126b857600080fd5b81356125ae81612a56565b6000602082840312156126d557600080fd5b81516125ae81612a56565b6000602082840312156126f257600080fd5b5035919050565b60006020828403121561270b57600080fd5b5051919050565b60008060006060848603121561272757600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c0878903121561275957600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b818110156127b057858101830151858201604001528201612794565b818111156127c2576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526018908201527f5472616e7366657220657863656564732062616c616e63650000000000000000604082015260600190565b60208082526018908201527f43616c6c6572206e6f74205465616d206f72204f776e65720000000000000000604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128965784516001600160a01b031683529383019391830191600101612871565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156128ca576128ca612a15565b500190565b6000826128ec57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561292c57816000190482111561291257612912612a15565b8085161561291f57918102915b93841c93908002906128f6565b509250929050565b60006125ae60ff84168360008261294d57506001610b6e565b8161295a57506000610b6e565b8160018114612970576002811461297a57612996565b6001915050610b6e565b60ff84111561298b5761298b612a15565b50506001821b610b6e565b5060208310610133831016604e8410600b84101617156129b9575081810a610b6e565b6129c383836128f1565b80600019048211156129d7576129d7612a15565b029392505050565b60008160001904831182151516156129f9576129f9612a15565b500290565b600082821015612a1057612a10612a15565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114610deb57600080fd5b8015158114610deb57600080fdfe57696665476f6e654d61726b657444756d70696e674e6f4d6f72654775636369537465616b735661636174696f6e4e6f4d6f72654d6f6e6579546f4275794469707357654170657357696c6c46616365486172647368697073427574556e69746564416c7761797357696c6c57696e496e4e65787442756c6c52756ea2646970667358221220266bbd18875ab688fdafefbef15a953e55597bc20e5486a620006b6610ae5a4964736f6c63430008070033

Deployed Bytecode

0x6080604052600436106103035760003560e01c80638124f7ac11610190578063c3a3c032116100dc578063d8bd2dd111610095578063e52fb9ec1161006f578063e52fb9ec146108e8578063eabd5848146108fe578063ec058ca01461092e578063f2fde38b1461094457600080fd5b8063d8bd2dd114610852578063dd62ed3e14610882578063e0d2f9eb146108c857600080fd5b8063c3a3c032146107a2578063c3f4f54f146107b7578063c7639d80146107cc578063cc1776d3146107ec578063cfd1940e14610802578063d46b6a301461082257600080fd5b8063a457c2d711610149578063ab64cfdc11610123578063ab64cfdc14610736578063b40d09e214610756578063bc43d8491461076c578063be617fa01461078c57600080fd5b8063a457c2d7146106e1578063a68bdac714610701578063a9059cbb1461071657600080fd5b80638124f7ac1461061f578063817d4bff14610635578063868b0141146106555780638da5cb5b1461067557806395d89b41146106935780639b39b65f146106c757600080fd5b806333ae83251161024f5780635149f9841161020857806370a08231116101e257806370a0823114610587578063715018a6146105bd57806375f0a874146105d25780637b9e987a1461060a57600080fd5b80635149f9841461052d57806351bc3c851461054d5780636de4326a1461056757600080fd5b806333ae83251461048d57806339509351146104ad57806341aec357146104cd57806346e35f03146104e2578063479881bf146104f75780634f7041a51461051757600080fd5b80631d4eaead116102bc57806323b872dd1161029657806323b872dd146104115780632d48f84f14610431578063313ce567146104515780633227925f1461046d57600080fd5b80631d4eaead146103d05780631d9f98cd146103e65780631eb25d13146103fc57600080fd5b80630612f39d1461030f57806306fdde0314610326578063095ea7b3146103515780630eff4c641461038157806318160ddd146103a55780631d2cb02d146103ba57600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b50610324610964565b005b34801561033257600080fd5b5061033b610b3d565b6040516103489190612783565b60405180910390f35b34801561035d57600080fd5b5061037161036c36600461267a565b610b5d565b6040519015158152602001610348565b34801561038d57600080fd5b5061039760145481565b604051908152602001610348565b3480156103b157600080fd5b50600754610397565b3480156103c657600080fd5b50610397600d5481565b3480156103dc57600080fd5b50610397600b5481565b3480156103f257600080fd5b50610397600e5481565b34801561040857600080fd5b50610397610b74565b34801561041d57600080fd5b5061037161042c36600461260b565b610b92565b34801561043d57600080fd5b5061032461044c366004612740565b610c29565b34801561045d57600080fd5b5060405160128152602001610348565b34801561047957600080fd5b506103246104883660046126e0565b610db4565b34801561049957600080fd5b506103246104a83660046126e0565b610dee565b3480156104b957600080fd5b506103716104c836600461267a565b610eb6565b3480156104d957600080fd5b50610324610eed565b3480156104ee57600080fd5b50610371610f1e565b34801561050357600080fd5b506103246105123660046126e0565b610f5e565b34801561052357600080fd5b5061039760085481565b34801561053957600080fd5b5061032461054836600461264c565b611023565b34801561055957600080fd5b506015546103719060ff1681565b34801561057357600080fd5b50610324610582366004612591565b6110c8565b34801561059357600080fd5b506103976105a2366004612591565b6001600160a01b031660009081526001602052604090205490565b3480156105c957600080fd5b5061032461113b565b3480156105de57600080fd5b506012546105f2906001600160a01b031681565b6040516001600160a01b039091168152602001610348565b34801561061657600080fd5b506103246111ee565b34801561062b57600080fd5b50610397600a5481565b34801561064157600080fd5b50610324610650366004612591565b611284565b34801561066157600080fd5b506103246106703660046126a6565b6112bd565b34801561068157600080fd5b506000546001600160a01b03166105f2565b34801561069f57600080fd5b5060408051808201909152600b81526a57494645474f4e45494e5560a81b602082015261033b565b3480156106d357600080fd5b506018546103719060ff1681565b3480156106ed57600080fd5b506103716106fc36600461267a565b6112f5565b34801561070d57600080fd5b50610324611371565b34801561072257600080fd5b5061037161073136600461267a565b6113a5565b34801561074257600080fd5b5061032461075136600461264c565b6113b2565b34801561076257600080fd5b5061039760165481565b34801561077857600080fd5b506103246107873660046126e0565b611494565b34801561079857600080fd5b50610397600c5481565b3480156107ae57600080fd5b506103976114cd565b3480156107c357600080fd5b506103976114f2565b3480156107d857600080fd5b506006546105f2906001600160a01b031681565b3480156107f857600080fd5b5061039760095481565b34801561080e57600080fd5b5061032461081d3660046126e0565b611553565b34801561082e57600080fd5b5061037161083d366004612591565b60056020526000908152604090205460ff1681565b34801561085e57600080fd5b5061037161086d366004612591565b60046020526000908152604090205460ff1681565b34801561088e57600080fd5b5061039761089d3660046125d2565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156108d457600080fd5b506103246108e336600461264c565b61158b565b3480156108f457600080fd5b5061039760135481565b34801561090a57600080fd5b50610371610919366004612591565b60036020526000908152604090205460ff1681565b34801561093a57600080fd5b50610397600f5481565b34801561095057600080fd5b5061032461095f366004612591565b611665565b61096d3361178e565b6109925760405162461bcd60e51b81526004016109899061280f565b60405180910390fd5b6017544210156109d75760405162461bcd60e51b815260206004820152601060248201526f139bdd081e595d081d5b9b1bd8dad95960821b6044820152606401610989565b6010546040516370a0823160e01b81523060048201526001600160a01b039091169060009082906370a082319060240160206040518083038186803b158015610a1f57600080fd5b505afa158015610a33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5791906126f9565b60185490915060ff1615610a8f57610a7262093a80426128b7565b601755600a610a828260026129df565b610a8c91906128cf565b90505b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401602060405180830381600087803b158015610ad757600080fd5b505af1158015610aeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0f91906126c3565b506040517f28bacca46f5c57fe13623e9d5093cb2fab892814aca9b39384ab86550d9aa67590600090a15050565b60606040518060a00160405280607c8152602001612a65607c9139905090565b6000610b6a3384846117bb565b5060015b92915050565b610b806012600a612934565b610b8f90640211d1ae386129df565b81565b6000610b9f8484846118ae565b6001600160a01b038416600090815260026020908152604080832033845290915290205482811015610c0a5760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b6044820152606401610989565b610c1e8533610c1986856129fe565b6117bb565b506001949350505050565b610c323361178e565b610c4e5760405162461bcd60e51b81526004016109899061280f565b60006002610c5f600a6103e86128cf565b610c6991906128cf565b9050808711158015610c7b5750808611155b8015610c875750808511155b610cc85760405162461bcd60e51b81526020600482015260126024820152710a8c2f040caf0c6cacac8e640dac2f0a8c2f60731b6044820152606401610989565b6103e882610cd685876128b7565b610ce091906128b7565b14610d375760405162461bcd60e51b815260206004820152602160248201527f546178657320646f6e27742061646420757020746f2064656e6f6d696e61746f6044820152603960f91b6064820152608401610989565b60088790556009869055600a859055600d839055600c829055600b8490556040805188815260208101889052908101869052606081018590526080810184905260a081018390527f95617e149b678679d65360792e6610c8fc9add72efd72fc3c8d94792801ca5c99060c00160405180910390a150505050505050565b610dbd3361178e565b610dd95760405162461bcd60e51b81526004016109899061280f565b610deb610de642836128b7565b611a65565b50565b610df73361178e565b610e135760405162461bcd60e51b81526004016109899061280f565b6002811115610e7a5760405162461bcd60e51b815260206004820152602d60248201527f44756d70206d6561737572652063616e277420626520756e646572203530252060448201526c1bd9881d1a19481dd85b1b195d609a1b6064820152608401610989565b600f8190556040518181527fdfcf82c64ef2a938975f4ad1599e559af165a244802754595fcbffcf5ffdd0d9906020015b60405180910390a150565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610b6a918590610c199086906128b7565b610ef63361178e565b610f125760405162461bcd60e51b81526004016109899061280f565b610f1c6001611aa8565b565b60006103e8601454600754610f3391906129df565b610f3d91906128cf565b6010546001600160a01b031660009081526001602052604090205411919050565b610f673361178e565b610f835760405162461bcd60e51b81526004016109899061280f565b6032811115610fee5760405162461bcd60e51b815260206004820152603160248201527f4d61782077616c6c6574202063616e277420626520756e646572203225206f666044820152702074686520746f74616c20737570706c7960781b6064820152608401610989565b600e8190556040518181527fd1db3c8f76ced548252ac593ebef6129c122ab13cce5b9367eb4421cebe3885590602001610eab565b61102c3361178e565b6110485760405162461bcd60e51b81526004016109899061280f565b6010546001600160a01b038381169116141561109d5760405162461bcd60e51b8152602060048201526014602482015273063616e2774206368616e676520756e69737761760641b6044820152606401610989565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6110d13361178e565b6110ed5760405162461bcd60e51b81526004016109899061280f565b600680546001600160a01b0319166001600160a01b0383169081179091556040519081527fa261ce2a0d1773bb49aa36d2e9085ad2c89e3b0f852e70430b5d4218db6cc6a690602001610eab565b3361114e6000546001600160a01b031690565b6001600160a01b0316146111a45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6111f73361178e565b6112135760405162461bcd60e51b81526004016109899061280f565b601654156112555760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e53185d5b98da1959608a1b6044820152606401610989565b426016556040517f2cb945e0498987ef06dbd68025b0bc276116c63345296379c28a8e8f09b47dc190600090a1565b6012546001600160a01b0316331461129b57600080fd5b601280546001600160a01b0319166001600160a01b0392909216919091179055565b6112c63361178e565b6112e25760405162461bcd60e51b81526004016109899061280f565b6015805460ff1916911515919091179055565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156113585760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610989565b6113673385610c1986856129fe565b5060019392505050565b61137a3361178e565b6113965760405162461bcd60e51b81526004016109899061280f565b6018805460ff19166001179055565b6000610b6a3384846118ae565b6113bb3361178e565b6113d75760405162461bcd60e51b81526004016109899061280f565b6001600160a01b0382163014156114305760405162461bcd60e51b815260206004820152601a60248201527f63616e277420496e636c7564652074686520636f6e74726163740000000000006044820152606401610989565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527f9a547f2adf55e10d7297ec9f54496d4044ad440b7cd8f5b5d5700778377d71d391015b60405180910390a15050565b61149d3361178e565b6114b95760405162461bcd60e51b81526004016109899061280f565b6103e88111156114c857600080fd5b601455565b60006017544210156114ec57426017546114e791906129fe565b905090565b50600090565b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d546007546115306012600a612934565b61153f90640211d1ae386129df565b61154991906129fe565b6114e791906128b7565b61155c3361178e565b6115785760405162461bcd60e51b81526004016109899061280f565b600f81111561158657600080fd5b601355565b6115943361178e565b6115b05760405162461bcd60e51b81526004016109899061280f565b6001600160a01b0382163014156116095760405162461bcd60e51b815260206004820152601a60248201527f63616e277420496e636c7564652074686520636f6e74726163740000000000006044820152606401610989565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527fa22b25479919d4ac678f064a05daa1ee9c0adc3b8198942ea45255e364e04ed49101611488565b336116786000546001600160a01b031690565b6001600160a01b0316146116ce5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610989565b6001600160a01b0381166117335760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610989565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b0383811691161480610b6e5750506012546001600160a01b0390811691161490565b6001600160a01b0383166118055760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610989565b6001600160a01b03821661184d5760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610989565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118f95760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b6044820152606401610989565b6001600160a01b0382166119425760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b6044820152606401610989565b6001600160a01b03831660009081526003602052604090205460ff168061198157506001600160a01b03821660009081526003602052604090205460ff165b1561199657611991838383611c61565b505050565b6001600160a01b03821660009081526004602052604090205460ff1615611a0e57600060165411611a035760405162461bcd60e51b81526020600482015260176024820152761d1c98591a5b99c81b9bdd081e595d08195b98589b1959604a1b6044820152606401610989565b611991838383611d49565b600060165411611a5a5760405162461bcd60e51b81526020600482015260176024820152761d1c98591a5b99c81b9bdd081e595d08195b98589b1959604a1b6044820152606401610989565b611991838383611fa7565b6017548111611a7357600080fd5b60178190556040518181527f8ff9dc93846a022986f54e8f219a1fa780225726858e39e850da826852b4042e90602001610eab565b6012805460ff60a01b1916600160a01b17905530600090815260016020526040812054600d54600c54919291611ade91906128b7565b6013546010546001600160a01b0316600090815260016020526040812054929350916103e891611b0d916129df565b611b1791906128cf565b905081611b2657505050611c51565b8315611b42575030600090815260016020526040902054611b52565b80831015611b5257505050611c51565b6000611b5c610f1e565b611b7e5782600c5483611b6f91906129df565b611b7991906128cf565b611b81565b60005b90506000611b8f82846129fe565b90506000611b9e6002846128cf565b90506000611bac83836128b7565b905047611bb882612300565b6000611bc482476129fe565b90508515611bf157600083611bd986846129df565b611be391906128cf565b9050611bef858261245e565b505b6012546040516000916001600160a01b03169047908381818185875af1925050503d8060008114611c3e576040519150601f19603f3d011682016040523d82523d6000602084013e611c43565b606091505b505050505050505050505050505b506012805460ff60a01b19169055565b6001600160a01b03831660009081526001602052604090205481811015611c9a5760405162461bcd60e51b8152600401610989906127d8565b6001600160a01b03841660009081526001602052604081208054849290611cc29084906129fe565b90915550506001600160a01b03831660009081526001602052604081208054849290611cef9084906128b7565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d3b91815260200190565b60405180910390a350505050565b6001600160a01b03831660009081526001602052604090205481811015611d825760405162461bcd60e51b8152600401610989906127d8565b6001600160a01b0380851660009081526005602052604080822054928616825281205460ff9283169216908115611deb5760165461012c90611dc59082906128b7565b421015611ddf57611dd88161012c61251e565b9150611de5565b60095491505b50611e25565b8215611e205760165461012c90611e039082906128b7565b421015611e1657611dd88161012c61251e565b5050600854611e25565b50600a545b6010546001600160a01b03888116911614801590611e46575060155460ff16155b8015611e5c5750601254600160a01b900460ff16155b15611e6b57611e6b6000611aa8565b6000611e7a8683600b54612564565b90506000611e988784600c54600d54611e9391906128b7565b612564565b90506000611ea682846128b7565b611eb090896129fe565b6001600160a01b038b16600090815260016020526040812080549293508a92909190611edd9084906129fe565b90915550503060009081526001602052604081208054849290611f019084906128b7565b925050819055508260076000828254611f1a91906129fe565b90915550506001600160a01b03891660009081526001602052604081208054839290611f479084906128b7565b92505081905550886001600160a01b03168a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f9391815260200190565b60405180910390a350505050505050505050565b6001600160a01b0380841660009081526001602052604080822054928516825290205482821015611fea5760405162461bcd60e51b8152600401610989906127d8565b82600f5483611ff991906128cf565b10156120475760405162461bcd60e51b815260206004820152601f60248201527f5472616e73666572206578636565647320617574686f726973652073656c6c006044820152606401610989565b600e546120566012600a612934565b61206590640211d1ae386129df565b61206f91906128cf565b61207984836128b7565b11156120df5760405162461bcd60e51b815260206004820152602f60248201527f57616c6c657420636f6e7461696e206d6f7265207468616e206365727461696e60448201526e202520546f74616c20537570706c7960881b6064820152608401610989565b6001600160a01b0380861660009081526005602052604080822054928716825281205460ff92831692169081156121485760165461012c906121229082906128b7565b42101561213c576121358161012c61251e565b9150612142565b60095491505b50612182565b821561217d5760165461012c906121609082906128b7565b421015612173576121358161012c61251e565b5050600854612182565b50600a545b6010546001600160a01b038981169116148015906121a3575060155460ff16155b80156121b95750601254600160a01b900460ff16155b156121c8576121c86000611aa8565b60006121d78783600b54612564565b905060006121f08884600c54600d54611e9391906128b7565b905060006121fe82846128b7565b612208908a6129fe565b6001600160a01b038c16600090815260016020526040812080549293508b929091906122359084906129fe565b909155505030600090815260016020526040812080548492906122599084906128b7565b92505081905550826007600082825461227291906129fe565b90915550506001600160a01b038a166000908152600160205260408120805483929061229f9084906128b7565b92505081905550896001600160a01b03168b6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122eb91815260200190565b60405180910390a35050505050505050505050565b6011546123189030906001600160a01b0316836117bb565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061234d5761234d612a2b565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156123a157600080fd5b505afa1580156123b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123d991906125b5565b816001815181106123ec576123ec612a2b565b6001600160a01b03928316602091820292909201015260115460405163791ac94760e01b815291169063791ac94790612432908590600090869030904290600401612846565b600060405180830381600087803b15801561244c57600080fd5b505af192505050801561199157505050565b6011546124769030906001600160a01b0316846117bb565b60115460405163f305d71960e01b8152306004820181905260248201859052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990839060c4016060604051808303818588803b1580156124de57600080fd5b505af11580156124f2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906125179190612712565b5050505050565b6000806016544261252f91906129fe565b9050838161253e6032866129fe565b61254891906129df565b61255291906128cf565b61255c90846129fe565b949350505050565b60006125726103e8806129df565b8261257d85876129df565b61258791906129df565b61255c91906128cf565b6000602082840312156125a357600080fd5b81356125ae81612a41565b9392505050565b6000602082840312156125c757600080fd5b81516125ae81612a41565b600080604083850312156125e557600080fd5b82356125f081612a41565b9150602083013561260081612a41565b809150509250929050565b60008060006060848603121561262057600080fd5b833561262b81612a41565b9250602084013561263b81612a41565b929592945050506040919091013590565b6000806040838503121561265f57600080fd5b823561266a81612a41565b9150602083013561260081612a56565b6000806040838503121561268d57600080fd5b823561269881612a41565b946020939093013593505050565b6000602082840312156126b857600080fd5b81356125ae81612a56565b6000602082840312156126d557600080fd5b81516125ae81612a56565b6000602082840312156126f257600080fd5b5035919050565b60006020828403121561270b57600080fd5b5051919050565b60008060006060848603121561272757600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c0878903121561275957600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b818110156127b057858101830151858201604001528201612794565b818111156127c2576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526018908201527f5472616e7366657220657863656564732062616c616e63650000000000000000604082015260600190565b60208082526018908201527f43616c6c6572206e6f74205465616d206f72204f776e65720000000000000000604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128965784516001600160a01b031683529383019391830191600101612871565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156128ca576128ca612a15565b500190565b6000826128ec57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b8085111561292c57816000190482111561291257612912612a15565b8085161561291f57918102915b93841c93908002906128f6565b509250929050565b60006125ae60ff84168360008261294d57506001610b6e565b8161295a57506000610b6e565b8160018114612970576002811461297a57612996565b6001915050610b6e565b60ff84111561298b5761298b612a15565b50506001821b610b6e565b5060208310610133831016604e8410600b84101617156129b9575081810a610b6e565b6129c383836128f1565b80600019048211156129d7576129d7612a15565b029392505050565b60008160001904831182151516156129f9576129f9612a15565b500290565b600082821015612a1057612a10612a15565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114610deb57600080fd5b8015158114610deb57600080fdfe57696665476f6e654d61726b657444756d70696e674e6f4d6f72654775636369537465616b735661636174696f6e4e6f4d6f72654d6f6e6579546f4275794469707357654170657357696c6c46616365486172647368697073427574556e69746564416c7761797357696c6c57696e496e4e65787442756c6c52756ea2646970667358221220266bbd18875ab688fdafefbef15a953e55597bc20e5486a620006b6610ae5a4964736f6c63430008070033

Deployed Bytecode Sourcemap

17530:23366:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37527:679;;;;;;;;;;;;;:::i;:::-;;38583:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;39456:158;;;;;;;;;;-1:-1:-1;39456:158:0;;;;;:::i;:::-;;:::i;:::-;;;5555:14:1;;5548:22;5530:41;;5518:2;5503:18;39456:158:0;5390:187:1;28550:35:0;;;;;;;;;;;;;;;;;;;13978:25:1;;;13966:2;13951:18;28550:35:0;13832:177:1;38893:105:0;;;;;;;;;;-1:-1:-1;38972:18:0;;38893:105;;19271:29;;;;;;;;;;;;;;;;19210:21;;;;;;;;;;;;;;;;19389:27;;;;;;;;;;;;;;;;17989:60;;;;;;;;;;;;;:::i;39924:386::-;;;;;;;;;;-1:-1:-1;39924:386:0;;;;;:::i;:::-;;:::i;29075:612::-;;;;;;;;;;-1:-1:-1;29075:612:0;;;;;:::i;:::-;;:::i;38791:94::-;;;;;;;;;;-1:-1:-1;38791:94:0;;17980:2;15681:36:1;;15669:2;15654:18;38791:94:0;15539:184:1;36953:149:0;;;;;;;;;;-1:-1:-1;36953:149:0;;;;;:::i;:::-;;:::i;30026:245::-;;;;;;;;;;-1:-1:-1;30026:245:0;;;;;:::i;:::-;;:::i;40345:202::-;;;;;;;;;;-1:-1:-1;40345:202:0;;;;;:::i;:::-;;:::i;34979:83::-;;;;;;;;;;;;;:::i;30388:152::-;;;;;;;;;;;;;:::i;29741:232::-;;;;;;;;;;-1:-1:-1;29741:232:0;;;;;:::i;:::-;;:::i;19115:22::-;;;;;;;;;;;;;;;;34550:154;;;;;;;;;;-1:-1:-1;34550:154:0;;;;;:::i;:::-;;:::i;34716:22::-;;;;;;;;;;-1:-1:-1;34716:22:0;;;;;;;;18662:157;;;;;;;;;;-1:-1:-1;18662:157:0;;;;;:::i;:::-;;:::i;39006:118::-;;;;;;;;;;-1:-1:-1;39006:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;39098:18:0;39074:4;39098:18;;;:9;:18;;;;;;;39006:118;2930:140;;;;;;;;;;;;;:::i;19598:30::-;;;;;;;;;;-1:-1:-1;19598:30:0;;;;-1:-1:-1;;;;;19598:30:0;;;;;;-1:-1:-1;;;;;4166:32:1;;;4148:51;;4136:2;4121:18;19598:30:0;4002:203:1;35981:184:0;;;;;;;;;;;;;:::i;19176:27::-;;;;;;;;;;;;;;;;19690:147;;;;;;;;;;-1:-1:-1;19690:147:0;;;;;:::i;:::-;;:::i;34821:90::-;;;;;;;;;;-1:-1:-1;34821:90:0;;;;;:::i;:::-;;:::i;2289:79::-;;;;;;;;;;-1:-1:-1;2327:7:0;2354:6;-1:-1:-1;;;;;2354:6:0;2289:79;;38685:98;;;;;;;;;;-1:-1:-1;38768:7:0;;;;;;;;;;;;-1:-1:-1;;;38768:7:0;;;;38685:98;;36577:39;;;;;;;;;;-1:-1:-1;36577:39:0;;;;;;;;40555:336;;;;;;;;;;-1:-1:-1;40555:336:0;;;;;:::i;:::-;;:::i;36779:110::-;;;;;;;;;;;;;:::i;39132:164::-;;;;;;;;;;-1:-1:-1;39132:164:0;;;;;:::i;:::-;;:::i;35587:249::-;;;;;;;;;;-1:-1:-1;35587:249:0;;;;;:::i;:::-;;:::i;35947:27::-;;;;;;;;;;;;;;;;28592:211;;;;;;;;;;-1:-1:-1;28592:211:0;;;;;:::i;:::-;;:::i;19238:26::-;;;;;;;;;;;;;;;;33814:205;;;;;;;;;;;;;:::i;34025:139::-;;;;;;;;;;;;;:::i;18533:72::-;;;;;;;;;;-1:-1:-1;18533:72:0;;;;-1:-1:-1;;;;;18533:72:0;;;19144:25;;;;;;;;;;;;;;;;28284:191;;;;;;;;;;-1:-1:-1;28284:191:0;;;;;:::i;:::-;;:::i;18294:35::-;;;;;;;;;;-1:-1:-1;18294:35:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18238:49;;;;;;;;;;-1:-1:-1;18238:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;39304:144;;;;;;;;;;-1:-1:-1;39304:144:0;;;;;:::i;:::-;-1:-1:-1;;;;;39412:19:0;;;39388:4;39412:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;39304:144;35177:250;;;;;;;;;;-1:-1:-1;35177:250:0;;;;;:::i;:::-;;:::i;28251:26::-;;;;;;;;;;;;;;;;18181:50;;;;;;;;;;-1:-1:-1;18181:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19423:31;;;;;;;;;;;;;;;;3225:236;;;;;;;;;;-1:-1:-1;3225:236:0;;;;;:::i;:::-;;:::i;37527:679::-;19935:19;19943:10;19935:7;:19::i;:::-;19927:56;;;;-1:-1:-1;;;19927:56:0;;;;;;;:::i;:::-;;;;;;;;;37667:20:::1;;37648:15;:39;;37640:68;;;::::0;-1:-1:-1;;;37640:68:0;;6733:2:1;37640:68:0::1;::::0;::::1;6715:21:1::0;6772:2;6752:18;;;6745:30;-1:-1:-1;;;6791:18:1;;;6784:46;6847:18;;37640:68:0::1;6531:340:1::0;37640:68:0::1;37752:19;::::0;37797:39:::1;::::0;-1:-1:-1;;;37797:39:0;;37830:4:::1;37797:39;::::0;::::1;4148:51:1::0;-1:-1:-1;;;;;37752:19:0;;::::1;::::0;37721:21:::1;::::0;37752:19;;37797:24:::1;::::0;4121:18:1;;37797:39:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;37850:27;::::0;37783:53;;-1:-1:-1;37850:27:0::1;;37847:269;;;37924:40;18388:6;37924:15;:40;:::i;:::-;37903:20;:61:::0;38102:2:::1;38093:8;:6:::0;38100:1:::1;38093:8;:::i;:::-;:11;;;;:::i;:::-;38086:18;;37847:269;38126:43;::::0;-1:-1:-1;;;38126:43:0;;38150:10:::1;38126:43;::::0;::::1;4673:51:1::0;4740:18;;;4733:34;;;-1:-1:-1;;;;;38126:23:0;::::1;::::0;::::1;::::0;4646:18:1;;38126:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;38185:13:0::1;::::0;::::1;::::0;;;::::1;37571:635;;37527:679::o:0;38583:94::-;38631:13;38664:5;;;;;;;;;;;;;;;;;38657:12;;38583:94;:::o;39456:158::-;39530:4;39547:37;39556:10;39568:7;39577:6;39547:8;:37::i;:::-;-1:-1:-1;39602:4:0;39456:158;;;;;:::o;17989:60::-;18036:13;17980:2;18036;:13;:::i;:::-;18025:24;;:10;:24;:::i;:::-;17989:60;:::o;39924:386::-;40021:4;40038:36;40048:6;40056:9;40067:6;40038:9;:36::i;:::-;-1:-1:-1;;;;;40111:19:0;;40087:21;40111:19;;;:11;:19;;;;;;;;40131:10;40111:31;;;;;;;;40161:26;;;;40153:59;;;;-1:-1:-1;;;40153:59:0;;8947:2:1;40153:59:0;;;8929:21:1;8986:2;8966:18;;;8959:30;-1:-1:-1;;;9005:18:1;;;8998:50;9065:18;;40153:59:0;8745:344:1;40153:59:0;40225:55;40234:6;40242:10;40254:25;40273:6;40254:16;:25;:::i;:::-;40225:8;:55::i;:::-;-1:-1:-1;40298:4:0;;39924:386;-1:-1:-1;;;;39924:386:0:o;29075:612::-;19935:19;19943:10;19935:7;:19::i;:::-;19927:56;;;;-1:-1:-1;;;19927:56:0;;;;;;;:::i;:::-;29198:11:::1;29246:1;29211:33;19380:2;19337:4;29211:33;:::i;:::-;29210:37;;;;:::i;:::-;29198:49;;29271:6;29266:3;:11;;:25;;;;;29285:6;29279:4;:12;;29266:25;:44;;;;;29304:6;29293:9;:17;;29266:44;29258:74;;;::::0;-1:-1:-1;;;29258:74:0;;9649:2:1;29258:74:0::1;::::0;::::1;9631:21:1::0;9688:2;9668:18;;;9661:30;-1:-1:-1;;;9707:18:1;;;9700:48;9765:18;;29258:74:0::1;9447:342:1::0;29258:74:0::1;19337:4;29366:9:::0;29351:14:::1;29356:9:::0;29351:4;:14:::1;:::i;:::-;:24;;;;:::i;:::-;:41;29343:86;;;::::0;-1:-1:-1;;;29343:86:0;;13632:2:1;29343:86:0::1;::::0;::::1;13614:21:1::0;13671:2;13651:18;;;13644:30;13710:34;13690:18;;;13683:62;-1:-1:-1;;;13761:18:1;;;13754:31;13802:19;;29343:86:0::1;13430:397:1::0;29343:86:0::1;29450:6;:10:::0;;;29471:7:::1;:12:::0;;;29494:11:::1;:21:::0;;;29526:12:::1;:22:::0;;;29559:12:::1;:22:::0;;;29592:7:::1;:12:::0;;;29620:59:::1;::::0;;15286:25:1;;;15342:2;15327:18;;15320:34;;;15370:18;;;15363:34;;;15428:2;15413:18;;15406:34;;;15471:3;15456:19;;15449:35;;;15515:3;15500:19;;15493:35;;;29620:59:0::1;::::0;15273:3:1;15258:19;29620:59:0::1;;;;;;;29187:500;29075:612:::0;;;;;;:::o;36953:149::-;19935:19;19943:10;19935:7;:19::i;:::-;19927:56;;;;-1:-1:-1;;;19927:56:0;;;;;;;:::i;:::-;37037:57:::1;37059:34;37078:15;37059:18:::0;:34:::1;:::i;:::-;37037:21;:57::i;:::-;36953:149:::0;:::o;30026:245::-;19935:19;19943:10;19935:7;:19::i;:::-;19927:56;;;;-1:-1:-1;;;19927:56:0;;;;;;;:::i;:::-;30118:1:::1;30100:16;:19;;30092:76;;;::::0;-1:-1:-1;;;30092:76:0;;12173:2:1;30092:76:0::1;::::0;::::1;12155:21:1::0;12212:2;12192:18;;;12185:30;12251:34;12231:18;;;12224:62;-1:-1:-1;;;12302:18:1;;;12295:43;12355:19;;30092:76:0::1;11971:409:1::0;30092:76:0::1;30179:15;:32:::0;;;30236:27:::1;::::0;13978:25:1;;;30236:27:0::1;::::0;13966:2:1;13951:18;30236:27:0::1;;;;;;;;30026:245:::0;:::o;40345:202::-;40450:10;40424:4;40471:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;40471:32:0;;;;;;;;;;40424:4;;40441:76;;40462:7;;40471:45;;40506:10;;40471:45;:::i;34979:83::-;19935:19;19943:10;19935:7;:19::i;:::-;19927:56;;;;-1:-1:-1;;;19927:56:0;;;;;;;:::i;:::-;35030:24:::1;35049:4;35030:18;:24::i;:::-;34979:83::o:0;30388:152::-;30435:4;30528;30508:19;;30489:18;;:38;;;;:::i;:::-;:43;;;;:::i;:::-;30468:19;;-1:-1:-1;;;;;30468:19:0;30458:30;;;;:9;:30;;;;;;:74;;30388:152;-1:-1:-1;30388:152:0:o;29741:232::-;19935:19;19943:10;19935:7;:19::i;:::-;19927:56;;;;-1:-1:-1;;;19927:56:0;;;;;;;:::i;:::-;29826:2:::1;29812:12;:16;;29804:77;;;::::0;-1:-1:-1;;;29804:77:0;;7838:2:1;29804:77:0::1;::::0;::::1;7820:21:1::0;7877:2;7857:18;;;7850:30;7916:34;7896:18;;;7889:62;-1:-1:-1;;;7967:18:1;;;7960:47;8024:19;;29804:77:0::1;7636:413:1::0;29804:77:0::1;29892:11;:24:::0;;;29941::::1;::::0;13978:25:1;;;29941:24:0::1;::::0;13966:2:1;13951:18;29941:24:0::1;13832:177:1::0;34550:154:0;19935:19;19943:10;19935:7;:19::i;:::-;19927:56;;;;-1:-1:-1;;;19927:56:0;;;;;;;:::i;:::-;34628:19:::1;::::0;-1:-1:-1;;;;;34623:24:0;;::::1;34628:19:::0;::::1;34623:24;;34615:56;;;::::0;-1:-1:-1;;;34615:56:0;;12587:2:1;34615:56:0::1;::::0;::::1;12569:21:1::0;12626:2;12606:18;;;12599:30;-1:-1:-1;;;12645:18:1;;;12638:50;12705:18;;34615:56:0::1;12385:344:1::0;34615:56:0::1;-1:-1:-1::0;;;;;34682:10:0;;;::::1;;::::0;;;:5:::1;:10;::::0;;;;:14;;-1:-1:-1;;34682:14:0::1;::::0;::::1;;::::0;;;::::1;::::0;;34550:154::o;18662:157::-;19935:19;19943:10;19935:7;:19::i;:::-;19927:56;;;;-1:-1:-1;;;19927:56:0;;;;;;;:::i;:::-;18731:13:::1;:28:::0;;-1:-1:-1;;;;;;18731:28:0::1;-1:-1:-1::0;;;;;18731:28:0;::::1;::::0;;::::1;::::0;;;18784:27:::1;::::0;4148:51:1;;;18784:27:0::1;::::0;4136:2:1;4121:18;18784:27:0::1;4002:203:1::0;2930:140:0;2512:10;2501:7;2327;2354:6;-1:-1:-1;;;;;2354:6:0;;2289:79;2501:7;-1:-1:-1;;;;;2501:21:0;;2493:66;;;;-1:-1:-1;;;2493:66:0;;11116:2:1;2493:66:0;;;11098:21:1;;;11135:18;;;11128:30;11194:34;11174:18;;;11167:62;11246:18;;2493:66:0;10914:356:1;2493:66:0;3029:1:::1;3013:6:::0;;2992:40:::1;::::0;-1:-1:-1;;;;;3013:6:0;;::::1;::::0;2992:40:::1;::::0;3029:1;;2992:40:::1;3060:1;3043:19:::0;;-1:-1:-1;;;;;;3043:19:0::1;::::0;;2930:140::o;35981:184::-;19935:19;19943:10;19935:7;:19::i;:::-;19927:56;;;;-1:-1:-1;;;19927:56:0;;;;;;;:::i;:::-;36045:15:::1;::::0;:18;36037:45:::1;;;::::0;-1:-1:-1;;;36037:45:0;;11829:2:1;36037:45:0::1;::::0;::::1;11811:21:1::0;11868:2;11848:18;;;11841:30;-1:-1:-1;;;11887:18:1;;;11880:45;11942:18;;36037:45:0::1;11627:339:1::0;36037:45:0::1;36109:15;36093;:31:::0;36140:17:::1;::::0;::::1;::::0;;;::::1;35981:184::o:0;19690:147::-;19777:15;;-1:-1:-1;;;;;19777:15:0;19765:10;:27;19757:36;;;;;;19804:15;:25;;-1:-1:-1;;;;;;19804:25:0;-1:-1:-1;;;;;19804:25:0;;;;;;;;;;19690:147::o;34821:90::-;19935:19;19943:10;19935:7;:19::i;:::-;19927:56;;;;-1:-1:-1;;;19927:56:0;;;;;;;:::i;:::-;34886:10:::1;:17:::0;;-1:-1:-1;;34886:17:0::1;::::0;::::1;;::::0;;;::::1;::::0;;34821:90::o;40555:336::-;40692:10;40639:4;40680:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;40680:32:0;;;;;;;;;;40731:35;;;;40723:60;;;;-1:-1:-1;;;40723:60:0;;13291:2:1;40723:60:0;;;13273:21:1;13330:2;13310:18;;;13303:30;-1:-1:-1;;;13349:18:1;;;13342:42;13401:18;;40723:60:0;13089:336:1;40723:60:0;40796:65;40805:10;40817:7;40826:34;40845:15;40826:16;:34;:::i;40796:65::-;-1:-1:-1;40879:4:0;;40555:336;-1:-1:-1;;;40555:336:0:o;36779:110::-;19935:19;19943:10;19935:7;:19::i;:::-;19927:56;;;;-1:-1:-1;;;19927:56:0;;;;;;;:::i;:::-;36849:27:::1;:32:::0;;-1:-1:-1;;36849:32:0::1;36877:4;36849:32;::::0;;36779:110::o;39132:164::-;39209:4;39226:40;39236:10;39248:9;39259:6;39226:9;:40::i;35587:249::-;19935:19;19943:10;19935:7;:19::i;:::-;19927:56;;;;-1:-1:-1;;;19927:56:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;35679:22:0;::::1;35696:4;35679:22;;35671:60;;;::::0;-1:-1:-1;;;35671:60:0;;12936:2:1;35671:60:0::1;::::0;::::1;12918:21:1::0;12975:2;12955:18;;;12948:30;13014:28;12994:18;;;12987:56;13060:18;;35671:60:0::1;12734:350:1::0;35671:60:0::1;-1:-1:-1::0;;;;;35742:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;;;;;:34;;-1:-1:-1;;35742:34:0::1;::::0;::::1;;::::0;;::::1;::::0;;;35792:36;;4378:51:1;;;4445:18;;;4438:50;35792:36:0::1;::::0;4351:18:1;35792:36:0::1;;;;;;;;35587:249:::0;;:::o;28592:211::-;19935:19;19943:10;19935:7;:19::i;:::-;19927:56;;;;-1:-1:-1;;;19927:56:0;;;;;;;:::i;:::-;28729:4:::1;28697:30;:36;;28689:45;;;::::0;::::1;;28745:19;:50:::0;28592:211::o;33814:205::-;33879:4;33914:20;;33898:15;:36;33895:97;;;33977:15;33956:20;;:36;;;;:::i;:::-;33949:43;;33814:205;:::o;33895:97::-;-1:-1:-1;34010:1:0;;33814:205::o;34025:139::-;34148:6;34072:4;34130:26;;;:9;:26;;;;34110:18;;18036:13;17980:2;18036;:13;:::i;:::-;18025:24;;:10;:24;:::i;:::-;34096:32;;;;:::i;:::-;34095:61;;;;:::i;28284:191::-;19935:19;19943:10;19935:7;:19::i;:::-;19927:56;;;;-1:-1:-1;;;19927:56:0;;;;;;;:::i;:::-;28398:2:::1;28373:23;:27;;28365:36;;;::::0;::::1;;28431:12;:36:::0;28284:191::o;35177:250::-;19935:19;19943:10;19935:7;:19::i;:::-;19927:56;;;;-1:-1:-1;;;19927:56:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;35274:22:0;::::1;35291:4;35274:22;;35266:60;;;::::0;-1:-1:-1;;;35266:60:0;;12936:2:1;35266:60:0::1;::::0;::::1;12918:21:1::0;12975:2;12955:18;;;12948:30;13014:28;12994:18;;;12987:56;13060:18;;35266:60:0::1;12734:350:1::0;35266:60:0::1;-1:-1:-1::0;;;;;35337:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;;;;:35;;-1:-1:-1;;35337:35:0::1;::::0;::::1;;::::0;;::::1;::::0;;;35388:31;;4378:51:1;;;4445:18;;;4438:50;35388:31:0::1;::::0;4351:18:1;35388:31:0::1;4210:284:1::0;3225:236:0;2512:10;2501:7;2327;2354:6;-1:-1:-1;;;;;2354:6:0;;2289:79;2501:7;-1:-1:-1;;;;;2501:21:0;;2493:66;;;;-1:-1:-1;;;2493:66:0;;11116:2:1;2493:66:0;;;11098:21:1;;;11135:18;;;11128:30;11194:34;11174:18;;;11167:62;11246:18;;2493:66:0;10914:356:1;2493:66:0;-1:-1:-1;;;;;3306:22:0;::::1;3298:73;;;::::0;-1:-1:-1;;;3298:73:0;;7431:2:1;3298:73:0::1;::::0;::::1;7413:21:1::0;7470:2;7450:18;;;7443:30;7509:34;7489:18;;;7482:62;-1:-1:-1;;;7560:18:1;;;7553:36;7606:19;;3298:73:0::1;7229:402:1::0;3298:73:0::1;3408:6;::::0;;3387:38:::1;::::0;-1:-1:-1;;;;;3387:38:0;;::::1;::::0;3408:6;::::1;::::0;3387:38:::1;::::0;::::1;3436:6;:17:::0;;-1:-1:-1;;;;;;3436:17:0::1;-1:-1:-1::0;;;;;3436:17:0;;;::::1;::::0;;;::::1;::::0;;3225:236::o;20221:120::-;20274:4;2354:6;;-1:-1:-1;;;;;20297:13:0;;;2354:6;;20297:13;;:36;;-1:-1:-1;;20318:15:0;;-1:-1:-1;;;;;20318:15:0;;;20312:21;;;;20221:120::o;39620:296::-;-1:-1:-1;;;;;39710:19:0;;39702:49;;;;-1:-1:-1;;;39702:49:0;;8256:2:1;39702:49:0;;;8238:21:1;8295:2;8275:18;;;8268:30;-1:-1:-1;;;8314:18:1;;;8307:47;8371:18;;39702:49:0;8054:341:1;39702:49:0;-1:-1:-1;;;;;39770:21:0;;39762:49;;;;-1:-1:-1;;;39762:49:0;;10412:2:1;39762:49:0;;;10394:21:1;10451:2;10431:18;;;10424:30;-1:-1:-1;;;10470:18:1;;;10463:45;10525:18;;39762:49:0;10210:339:1;39762:49:0;-1:-1:-1;;;;;39824:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;39876:32;;13978:25:1;;;39876:32:0;;13951:18:1;39876:32:0;;;;;;;39620:296;;;:::o;21888:883::-;-1:-1:-1;;;;;21981:20:0;;21973:51;;;;-1:-1:-1;;;21973:51:0;;6386:2:1;21973:51:0;;;6368:21:1;6425:2;6405:18;;;6398:30;-1:-1:-1;;;6444:18:1;;;6437:48;6502:18;;21973:51:0;6184:342:1;21973:51:0;-1:-1:-1;;;;;22043:23:0;;22035:52;;;;-1:-1:-1;;;22035:52:0;;8602:2:1;22035:52:0;;;8584:21:1;8641:2;8621:18;;;8614:30;-1:-1:-1;;;8660:18:1;;;8653:46;8716:18;;22035:52:0;8400:340:1;22035:52:0;-1:-1:-1;;;;;22130:26:0;;;;;;:18;:26;;;;;;;;;:59;;-1:-1:-1;;;;;;22160:29:0;;;;;;:18;:29;;;;;;;;22130:59;22127:637;;;22204:43;22221:6;22229:9;22240:6;22204:16;:43::i;:::-;21888:883;;;:::o;22127:637::-;-1:-1:-1;;;;;22266:28:0;;;;;;:17;:28;;;;;;;;22263:501;;;22404:1;22388:15;;:17;22380:52;;;;-1:-1:-1;;;22380:52:0;;11477:2:1;22380:52:0;;;11459:21:1;11516:2;11496:18;;;11489:30;-1:-1:-1;;;11535:18:1;;;11528:53;11598:18;;22380:52:0;11275:347:1;22380:52:0;22447:51;22474:6;22481:9;22491:6;22447:26;:51::i;22263:501::-;22652:1;22636:15;;:17;22628:52;;;;-1:-1:-1;;;22628:52:0;;11477:2:1;22628:52:0;;;11459:21:1;11516:2;11496:18;;;11489:30;-1:-1:-1;;;11535:18:1;;;11528:53;11598:18;;22628:52:0;11275:347:1;22628:52:0;22695:39;22710:6;22717:9;22727:6;22695:14;:39::i;37158:280::-;37311:20;;37297:13;:34;37289:43;;;;;;37343:20;:34;;;37393:37;;13978:25:1;;;37393:37:0;;13966:2:1;13951:18;37393:37:0;13832:177:1;30699:1820:0;28068:27;:34;;-1:-1:-1;;;;28068:34:0;-1:-1:-1;;;28068:34:0;;;30815:4:::1;28068:34:::0;30797:24;;;28098:4;30797:24:::1;::::0;;;;;30859:12:::1;::::0;30846::::1;::::0;30797:24;;28068:34;30846:25:::1;::::0;30859:12;30846:25:::1;:::i;:::-;31025:12;::::0;31004:19:::1;::::0;-1:-1:-1;;;;;31004:19:0::1;30977:16;30994:30:::0;;;:9:::1;:30;::::0;;;;;30832:39;;-1:-1:-1;30977:16:0;31038:4:::1;::::0;30994:43:::1;::::0;::::1;:::i;:::-;:48;;;;:::i;:::-;30977:65:::0;-1:-1:-1;31095:11:0;31092:22:::1;;31107:7;;;;;31092:22;31283:12;31280:134;;;-1:-1:-1::0;31340:4:0::1;31322:24;::::0;;;:9:::1;:24;::::0;;;;;31280:134:::1;;;31381:11;31365:15;:27;31362:52;;;31407:7;;;;;31362:52;31547:22;31580:17;:15;:17::i;:::-;:65;;31637:8;31623:12;;31611:11;:24;;;;:::i;:::-;31610:35;;;;:::i;:::-;31580:65;;;31598:1;31580:65;31547:98:::0;-1:-1:-1;31658:22:0::1;31682:29;31547:98:::0;31682:11;:29:::1;:::i;:::-;31658:53:::0;-1:-1:-1;31724:12:0::1;31737:19;31755:1;31737:17:::0;:19:::1;:::i;:::-;31724:32:::0;-1:-1:-1;31837:14:0::1;31852:25;31860:17:::0;31724:32;31852:25:::1;:::i;:::-;31837:40:::0;-1:-1:-1;31991:21:0::1;32023:27;31837:40:::0;32023:16:::1;:27::i;:::-;32061:11;32074:41;32098:17:::0;32074:21:::1;:41;:::i;:::-;32061:55:::0;-1:-1:-1;32221:19:0;;32218:135:::1;;32256:11;32287:9:::0;32271:14:::1;32278:7:::0;32271:6;:14:::1;:::i;:::-;32270:26;;;;:::i;:::-;32256:40;;32311:30;32325:7;32334:6;32311:13;:30::i;:::-;32241:112;32218:135;32438:15;::::0;:53:::1;::::0;32426:9:::1;::::0;-1:-1:-1;;;;;32438:15:0::1;::::0;32465:21:::1;::::0;32426:9;32438:53;32426:9;32438:53;32465:21;32438:15;:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;;;;;;28113:1:0::1;-1:-1:-1::0;28125:27:0;:35;;-1:-1:-1;;;;28125:35:0;;;30699:1820::o;25465:339::-;-1:-1:-1;;;;;25578:17:0;;25557:18;25578:17;;;:9;:17;;;;;;25614:23;;;;25606:60;;;;-1:-1:-1;;;25606:60:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25677:17:0;;;;;;:9;:17;;;;;:25;;25696:6;;25677:17;:25;;25696:6;;25677:25;:::i;:::-;;;;-1:-1:-1;;;;;;;25713:20:0;;;;;;:9;:20;;;;;:28;;25735:6;;25713:20;:28;;25735:6;;25713:28;:::i;:::-;;;;;;;;25779:9;-1:-1:-1;;;;;25763:33:0;25772:6;-1:-1:-1;;;;;25763:33:0;;25789:6;25763:33;;;;13978:25:1;;13966:2;13951:18;;13832:177;25763:33:0;;;;;;;;25546:258;25465:339;;;:::o;25874:1709::-;-1:-1:-1;;;;;25998:17:0;;25977:18;25998:17;;;:9;:17;;;;;;26034:23;;;;26026:60;;;;-1:-1:-1;;;26026:60:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26110:13:0;;;26099:10;26110:13;;;:5;:13;;;;;;;26146:16;;;;;;;;26110:13;;;;;26146:16;;26194:497;;;;26297:15;;26242:11;;26297:31;;26242:11;;26297:31;:::i;:::-;26281:15;:47;26278:143;;;26352:33;26365:15;26381:3;26352:12;:33::i;:::-;26348:37;;26278:143;;;26414:7;;26410:11;;26278:143;26204:233;26194:497;;;26455:5;26452:239;;;26541:15;;26496:11;;26541:30;;26496:11;;26541:30;:::i;:::-;26525:15;:46;26522:136;;;26595:32;26608:14;26623:3;26595:12;:32::i;26522:136::-;-1:-1:-1;;26652:6:0;;26452:239;;;-1:-1:-1;26680:11:0;;26452:239;26716:19;;-1:-1:-1;;;;;26708:27:0;;;26716:19;;26708:27;;;;26707:44;;-1:-1:-1;26740:10:0;;;;26739:11;26707:44;:76;;;;-1:-1:-1;26755:27:0;;-1:-1:-1;;;26755:27:0;;;;26754:28;26707:76;26704:119;;;26798:25;26817:5;26798:18;:25::i;:::-;26894:20;26915:35;26929:6;26937:3;26942:7;;26915:13;:35::i;:::-;26894:56;;27058:18;27077:53;27091:6;27099:3;27117:12;;27104;;:25;;;;:::i;:::-;27077:13;:53::i;:::-;27058:72;-1:-1:-1;27194:16:0;27219:31;27058:72;27219:15;:31;:::i;:::-;27211:40;;:6;:40;:::i;:::-;-1:-1:-1;;;;;27264:17:0;;;;;;:9;:17;;;;;:25;;27194:57;;-1:-1:-1;27283:6:0;;27264:17;;;:25;;27283:6;;27264:25;:::i;:::-;;;;-1:-1:-1;;27374:4:0;27356:24;;;;:9;:24;;;;;:41;;27384:13;;27356:24;:41;;27384:13;;27356:41;:::i;:::-;;;;;;;;27452:15;27432:18;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;27478:20:0;;;;;;:9;:20;;;;;:33;;27500:11;;27478:20;:33;;27500:11;;27478:33;:::i;:::-;;;;;;;;27553:9;-1:-1:-1;;;;;27537:38:0;27546:6;-1:-1:-1;;;;;27537:38:0;;27563:11;27537:38;;;;13978:25:1;;13966:2;13951:18;;13832:177;27537:38:0;;;;;;;;25966:1617;;;;;;;25874:1709;;;:::o;22878:1973::-;-1:-1:-1;;;;;22989:17:0;;;22968:18;22989:17;;;:9;:17;;;;;;;23041:20;;;;;;;;23080:23;;;;23072:60;;;;-1:-1:-1;;;23072:60:0;;;;;;;:::i;:::-;23184:6;23165:15;;23151:13;:29;;;;:::i;:::-;:39;;23143:83;;;;-1:-1:-1;;;23143:83:0;;10756:2:1;23143:83:0;;;10738:21:1;10795:2;10775:18;;;10768:30;10834:33;10814:18;;;10807:61;10885:18;;23143:83:0;10554:355:1;23143:83:0;23291:11;;18036:13;17980:2;18036;:13;:::i;:::-;18025:24;;:10;:24;:::i;:::-;23277:25;;;;:::i;:::-;23246;23265:6;23246:16;:25;:::i;:::-;23245:57;;23237:117;;;;-1:-1:-1;;;23237:117:0;;9996:2:1;23237:117:0;;;9978:21:1;10035:2;10015:18;;;10008:30;10074:34;10054:18;;;10047:62;-1:-1:-1;;;10125:18:1;;;10118:45;10180:19;;23237:117:0;9794:411:1;23237:117:0;-1:-1:-1;;;;;23378:13:0;;;23367:10;23378:13;;;:5;:13;;;;;;;23414:16;;;;;;;;23378:13;;;;;23414:16;;23462:497;;;;23565:15;;23510:11;;23565:31;;23510:11;;23565:31;:::i;:::-;23549:15;:47;23546:143;;;23620:33;23633:15;23649:3;23620:12;:33::i;:::-;23616:37;;23546:143;;;23682:7;;23678:11;;23546:143;23472:233;23462:497;;;23723:5;23720:239;;;23809:15;;23764:11;;23809:30;;23764:11;;23809:30;:::i;:::-;23793:15;:46;23790:136;;;23863:32;23876:14;23891:3;23863:12;:32::i;23790:136::-;-1:-1:-1;;23920:6:0;;23720:239;;;-1:-1:-1;23948:11:0;;23720:239;23984:19;;-1:-1:-1;;;;;23976:27:0;;;23984:19;;23976:27;;;;23975:44;;-1:-1:-1;24008:10:0;;;;24007:11;23975:44;:76;;;;-1:-1:-1;24023:27:0;;-1:-1:-1;;;24023:27:0;;;;24022:28;23975:76;23972:119;;;24066:25;24085:5;24066:18;:25::i;:::-;24162:20;24183:35;24197:6;24205:3;24210:7;;24183:13;:35::i;:::-;24162:56;;24326:18;24345:53;24359:6;24367:3;24385:12;;24372;;:25;;;;:::i;24345:53::-;24326:72;-1:-1:-1;24462:16:0;24487:31;24326:72;24487:15;:31;:::i;:::-;24479:40;;:6;:40;:::i;:::-;-1:-1:-1;;;;;24532:17:0;;;;;;:9;:17;;;;;:25;;24462:57;;-1:-1:-1;24551:6:0;;24532:17;;;:25;;24551:6;;24532:25;:::i;:::-;;;;-1:-1:-1;;24642:4:0;24624:24;;;;:9;:24;;;;;:41;;24652:13;;24624:24;:41;;24652:13;;24624:41;:::i;:::-;;;;;;;;24720:15;24700:18;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;24746:20:0;;;;;;:9;:20;;;;;:33;;24768:11;;24746:20;:33;;24768:11;;24746:33;:::i;:::-;;;;;;;;24821:9;-1:-1:-1;;;;;24805:38:0;24814:6;-1:-1:-1;;;;;24805:38:0;;24831:11;24805:38;;;;13978:25:1;;13966:2;13951:18;;13832:177;24805:38:0;;;;;;;;22957:1894;;;;;;;;22878:1973;;;:::o;32569:474::-;32659:14;;32627:56;;32644:4;;-1:-1:-1;;;;;32659:14:0;32676:6;32627:8;:56::i;:::-;32718:16;;;32732:1;32718:16;;;;;;;;32694:21;;32718:16;;;;;;;;;;-1:-1:-1;32718:16:0;32694:40;;32763:4;32745;32750:1;32745:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;32745:23:0;;;:7;;;;;;;;;;:23;;;;32789:14;;:21;;;-1:-1:-1;;;32789:21:0;;;;:14;;;;;:19;;:21;;;;;32745:7;;32789:21;;;;;:14;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;32779:4;32784:1;32779:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;32779:31:0;;;:7;;;;;;;;;:31;32827:14;;:190;;-1:-1:-1;;;32827:190:0;;:14;;;:65;;:190;;32907:6;;32827:14;;32944:4;;32971;;32991:15;;32827:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32616:427;32569:474;:::o;33116:359::-;33224:14;;33192:61;;33209:4;;-1:-1:-1;;;;;33224:14:0;33241:11;33192:8;:61::i;:::-;33264:14;;:203;;-1:-1:-1;;;33264:203:0;;33335:4;33264:203;;;5119:34:1;;;5169:18;;;5162:34;;;33264:14:0;5212:18:1;;;5205:34;;;5255:18;;;5248:34;5298:19;;;5291:44;33441:15:0;5351:19:1;;;5344:35;-1:-1:-1;;;;;33264:14:0;;;;:30;;33302:9;;5053:19:1;;33264:203:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;33116:359;;:::o;24959:211::-;25031:4;25047:20;25084:15;;25068;:31;;;;:::i;:::-;25047:52;-1:-1:-1;25153:8:0;25047:52;25126:9;25133:2;25126:6;:9;:::i;:::-;25125:27;;;;:::i;:::-;:36;;;;:::i;:::-;25117:45;;:6;:45;:::i;:::-;25110:52;24959:211;-1:-1:-1;;;;24959:211:0:o;25225:176::-;25310:4;25361:31;19337:4;;25361:31;:::i;:::-;25346:10;25335;25342:3;25335:6;:10;:::i;:::-;:21;;;;:::i;:::-;25334:59;;;;:::i;14:247:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;200:31;225:5;200:31;:::i;:::-;250:5;14:247;-1:-1:-1;;;14:247:1:o;266:251::-;336:6;389:2;377:9;368:7;364:23;360:32;357:52;;;405:1;402;395:12;357:52;437:9;431:16;456:31;481:5;456:31;:::i;522:388::-;590:6;598;651:2;639:9;630:7;626:23;622:32;619:52;;;667:1;664;657:12;619:52;706:9;693:23;725:31;750:5;725:31;:::i;:::-;775:5;-1:-1:-1;832:2:1;817:18;;804:32;845:33;804:32;845:33;:::i;:::-;897:7;887:17;;;522:388;;;;;:::o;915:456::-;992:6;1000;1008;1061:2;1049:9;1040:7;1036:23;1032:32;1029:52;;;1077:1;1074;1067:12;1029:52;1116:9;1103:23;1135:31;1160:5;1135:31;:::i;:::-;1185:5;-1:-1:-1;1242:2:1;1227:18;;1214:32;1255:33;1214:32;1255:33;:::i;:::-;915:456;;1307:7;;-1:-1:-1;;;1361:2:1;1346:18;;;;1333:32;;915:456::o;1376:382::-;1441:6;1449;1502:2;1490:9;1481:7;1477:23;1473:32;1470:52;;;1518:1;1515;1508:12;1470:52;1557:9;1544:23;1576:31;1601:5;1576:31;:::i;:::-;1626:5;-1:-1:-1;1683:2:1;1668:18;;1655:32;1696:30;1655:32;1696:30;:::i;1763:315::-;1831:6;1839;1892:2;1880:9;1871:7;1867:23;1863:32;1860:52;;;1908:1;1905;1898:12;1860:52;1947:9;1934:23;1966:31;1991:5;1966:31;:::i;:::-;2016:5;2068:2;2053:18;;;;2040:32;;-1:-1:-1;;;1763:315:1:o;2083:241::-;2139:6;2192:2;2180:9;2171:7;2167:23;2163:32;2160:52;;;2208:1;2205;2198:12;2160:52;2247:9;2234:23;2266:28;2288:5;2266:28;:::i;2329:245::-;2396:6;2449:2;2437:9;2428:7;2424:23;2420:32;2417:52;;;2465:1;2462;2455:12;2417:52;2497:9;2491:16;2516:28;2538:5;2516:28;:::i;2579:180::-;2638:6;2691:2;2679:9;2670:7;2666:23;2662:32;2659:52;;;2707:1;2704;2697:12;2659:52;-1:-1:-1;2730:23:1;;2579:180;-1:-1:-1;2579:180:1:o;2764:184::-;2834:6;2887:2;2875:9;2866:7;2862:23;2858:32;2855:52;;;2903:1;2900;2893:12;2855:52;-1:-1:-1;2926:16:1;;2764:184;-1:-1:-1;2764:184:1:o;2953:306::-;3041:6;3049;3057;3110:2;3098:9;3089:7;3085:23;3081:32;3078:52;;;3126:1;3123;3116:12;3078:52;3155:9;3149:16;3139:26;;3205:2;3194:9;3190:18;3184:25;3174:35;;3249:2;3238:9;3234:18;3228:25;3218:35;;2953:306;;;;;:::o;3264:523::-;3368:6;3376;3384;3392;3400;3408;3461:3;3449:9;3440:7;3436:23;3432:33;3429:53;;;3478:1;3475;3468:12;3429:53;-1:-1:-1;;3501:23:1;;;3571:2;3556:18;;3543:32;;-1:-1:-1;3622:2:1;3607:18;;3594:32;;3673:2;3658:18;;3645:32;;-1:-1:-1;3724:3:1;3709:19;;3696:33;;-1:-1:-1;3776:3:1;3761:19;3748:33;;-1:-1:-1;3264:523:1;-1:-1:-1;3264:523:1:o;5582:597::-;5694:4;5723:2;5752;5741:9;5734:21;5784:6;5778:13;5827:6;5822:2;5811:9;5807:18;5800:34;5852:1;5862:140;5876:6;5873:1;5870:13;5862:140;;;5971:14;;;5967:23;;5961:30;5937:17;;;5956:2;5933:26;5926:66;5891:10;;5862:140;;;6020:6;6017:1;6014:13;6011:91;;;6090:1;6085:2;6076:6;6065:9;6061:22;6057:31;6050:42;6011:91;-1:-1:-1;6163:2:1;6142:15;-1:-1:-1;;6138:29:1;6123:45;;;;6170:2;6119:54;;5582:597;-1:-1:-1;;;5582:597:1:o;6876:348::-;7078:2;7060:21;;;7117:2;7097:18;;;7090:30;7156:26;7151:2;7136:18;;7129:54;7215:2;7200:18;;6876:348::o;9094:::-;9296:2;9278:21;;;9335:2;9315:18;;;9308:30;9374:26;9369:2;9354:18;;9347:54;9433:2;9418:18;;9094:348::o;14014:980::-;14276:4;14324:3;14313:9;14309:19;14355:6;14344:9;14337:25;14381:2;14419:6;14414:2;14403:9;14399:18;14392:34;14462:3;14457:2;14446:9;14442:18;14435:31;14486:6;14521;14515:13;14552:6;14544;14537:22;14590:3;14579:9;14575:19;14568:26;;14629:2;14621:6;14617:15;14603:29;;14650:1;14660:195;14674:6;14671:1;14668:13;14660:195;;;14739:13;;-1:-1:-1;;;;;14735:39:1;14723:52;;14830:15;;;;14795:12;;;;14771:1;14689:9;14660:195;;;-1:-1:-1;;;;;;;14911:32:1;;;;14906:2;14891:18;;14884:60;-1:-1:-1;;;14975:3:1;14960:19;14953:35;14872:3;14014:980;-1:-1:-1;;;14014:980:1:o;15728:128::-;15768:3;15799:1;15795:6;15792:1;15789:13;15786:39;;;15805:18;;:::i;:::-;-1:-1:-1;15841:9:1;;15728:128::o;15861:217::-;15901:1;15927;15917:132;;15971:10;15966:3;15962:20;15959:1;15952:31;16006:4;16003:1;15996:15;16034:4;16031:1;16024:15;15917:132;-1:-1:-1;16063:9:1;;15861:217::o;16083:422::-;16172:1;16215:5;16172:1;16229:270;16250:7;16240:8;16237:21;16229:270;;;16309:4;16305:1;16301:6;16297:17;16291:4;16288:27;16285:53;;;16318:18;;:::i;:::-;16368:7;16358:8;16354:22;16351:55;;;16388:16;;;;16351:55;16467:22;;;;16427:15;;;;16229:270;;;16233:3;16083:422;;;;;:::o;16510:140::-;16568:5;16597:47;16638:4;16628:8;16624:19;16618:4;16704:5;16734:8;16724:80;;-1:-1:-1;16775:1:1;16789:5;;16724:80;16823:4;16813:76;;-1:-1:-1;16860:1:1;16874:5;;16813:76;16905:4;16923:1;16918:59;;;;16991:1;16986:130;;;;16898:218;;16918:59;16948:1;16939:10;;16962:5;;;16986:130;17023:3;17013:8;17010:17;17007:43;;;17030:18;;:::i;:::-;-1:-1:-1;;17086:1:1;17072:16;;17101:5;;16898:218;;17200:2;17190:8;17187:16;17181:3;17175:4;17172:13;17168:36;17162:2;17152:8;17149:16;17144:2;17138:4;17135:12;17131:35;17128:77;17125:159;;;-1:-1:-1;17237:19:1;;;17269:5;;17125:159;17316:34;17341:8;17335:4;17316:34;:::i;:::-;17386:6;17382:1;17378:6;17374:19;17365:7;17362:32;17359:58;;;17397:18;;:::i;:::-;17435:20;;16655:806;-1:-1:-1;;;16655:806:1:o;17466:168::-;17506:7;17572:1;17568;17564:6;17560:14;17557:1;17554:21;17549:1;17542:9;17535:17;17531:45;17528:71;;;17579:18;;:::i;:::-;-1:-1:-1;17619:9:1;;17466:168::o;17639:125::-;17679:4;17707:1;17704;17701:8;17698:34;;;17712:18;;:::i;:::-;-1:-1:-1;17749:9:1;;17639:125::o;17769:127::-;17830:10;17825:3;17821:20;17818:1;17811:31;17861:4;17858:1;17851:15;17885:4;17882:1;17875:15;17901:127;17962:10;17957:3;17953:20;17950:1;17943:31;17993:4;17990:1;17983:15;18017:4;18014:1;18007:15;18165:131;-1:-1:-1;;;;;18240:31:1;;18230:42;;18220:70;;18286:1;18283;18276:12;18301:118;18387:5;18380:13;18373:21;18366:5;18363:32;18353:60;;18409:1;18406;18399:12

Swarm Source

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