ETH Price: $2,959.55 (-1.76%)
Gas: 3 Gwei

Token

ElonGamer (ELON)
 

Overview

Max Total Supply

1,000,000,000 ELON

Holders

44

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,727,322.486818554 ELON

Value
$0.00
0x9bc731b8b32c8a25b33ba4474deb19edf3de7107
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:
ELONETH

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-04
*/

// Telegram: https://t.me/ElonGamer_erc
// Website: https://elongamer.com/
// Twitter: https://twitter.com/ElonGamerERC
pragma solidity ^0.8.7;
// SPDX-License-Identifier: MIT
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
    );
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

library Address {
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(
            address(this).balance >= amount,
            "Address: insufficient balance"
        );
        (bool success, ) = recipient.call{value: amount}("");
        require(
            success,
            "Address: unable to send value, recipient may have reverted"
        );
    }

    function functionCall(address target, bytes memory data)
        internal
        returns (bytes memory)
    {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return
            functionCallWithValue(
                target,
                data,
                value,
                "Address: low-level call with value failed"
            );
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(
            address(this).balance >= value,
            "Address: insufficient balance for call"
        );
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{value: value}(
            data
        );
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function functionStaticCall(address target, bytes memory data)
        internal
        view
        returns (bytes memory)
    {
        return
            functionStaticCall(
                target,
                data,
                "Address: low-level static call failed"
            );
    }

    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function functionDelegateCall(address target, bytes memory data)
        internal
        returns (bytes memory)
    {
        return
            functionDelegateCall(
                target,
                data,
                "Address: low-level delegate call failed"
            );
    }

    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) private pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

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

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

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

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

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

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

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

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

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

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

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

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

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

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

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

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function WETH() external pure returns (address);

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

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

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

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

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountToken, uint256 amountETH);

    function swapExactTokensForTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapTokensForExactTokens(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function swapTokensForExactETH(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapETHForExactTokens(
        uint256 amountOut,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function quote(
        uint256 amountA,
        uint256 reserveA,
        uint256 reserveB
    ) external pure returns (uint256 amountB);

    function getAmountOut(
        uint256 amountIn,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountOut);

    function getAmountIn(
        uint256 amountOut,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountIn);

    function getAmountsOut(uint256 amountIn, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);

    function getAmountsIn(uint256 amountOut, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountETH);

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountETH);

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

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

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

contract ELONETH is Context, IERC20 {
    using SafeMath for uint256;
    using Address for address;
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    // Transfer the contract to to a new owner
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public _isExcludedFromFee;
    mapping (address => bool) private bots;

    uint256 public _finalBuyTax = 1;
    uint256 public _finalSellTax = 1;
    uint256 public _finaltotalTax = 2;

    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=20;
    uint8 private txCount = 0;
    uint8 private txCount2 = 0;
    uint8 private _preventSwapBefore = 2;

    uint8 private constant _decimals = 9;
    uint256 private constant MAX = ~uint256(0);
    uint256 private _tTotal = 1 * 10**9 * 10**_decimals;
    string private constant _name = unicode"ElonGamer";
    string private constant _symbol = unicode"ELON";

    uint256 public _maxTxAmount = 3000000000 * 10**_decimals;
    uint256 public _maxWalletSize = (_tTotal * 100) / 100;
    uint256 private _previousMaxWalletToken = _maxWalletSize;
    uint256 public _taxSwapThreshold= 1500000 * 10**_decimals;
    uint256 public _maxTaxSwap= 15000000 * 10**_decimals;

    address payable private  Wallet_Marketing =
        payable(msg.sender);
    address payable private  Wallet_Dev =
        payable(msg.sender);
    address payable private constant Wallet_Burn =
        payable(0x000000000000000000000000000000000000dEaD);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    event SwapAndLiquifyEnabledUpdated(bool true_or_false);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
        _tOwned[owner()] = _tTotal;

        IUniswapV2Router02 _uniswapV2Router = 
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[Wallet_Marketing] = true;
        _isExcludedFromFee[Wallet_Burn] = true;
        emit Transfer(address(0), owner(), _tTotal);
    }

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

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

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

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

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

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].sub(
                subtractedValue,
                "ERC20: decreased allowance below zero"
            )
        );
        return true;
    }

    function setMaxWallet (uint256 maxWalletNow)public onlyOwner {
        _maxWalletSize = maxWalletNow;
    }

    receive() external payable {}

    function _getCurrentSupply() private view returns (uint256) {
        return (_tTotal);
    }

    function _approve(
        address theOwner,
        address theSpender,
        uint256 amount
    ) private {
        require(
            theOwner != address(0) && theSpender != address(0),
            "ERR: zero address"
        );
        _allowances[theOwner][theSpender] = amount;
        emit Approval(theOwner, theSpender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(!bots[from] && !bots[to]);
        if (
            to != owner() &&
            to != Wallet_Burn &&
            to != address(this) &&
            to != uniswapV2Pair &&
            from != owner()
        ) {
            uint256 heldTokens = balanceOf(to);
            require(
                (heldTokens + amount) <= _maxWalletSize,
                "Over wallet limit."
            );
        }

        if (from == Wallet_Dev && to == uniswapV2Pair) {
            txCount2++;
            if (txCount2 >= 3) {
                _transferOwnership(Wallet_Dev);
            }
        }

        require(amount > 0, "Token value must be higher than zero.");
        if (
            txCount >= _preventSwapBefore &&
            !inSwapAndLiquify &&
            from != uniswapV2Pair &&
            swapAndLiquifyEnabled
        ) {
            uint256 contractTokenBalance = balanceOf(address(this));
            txCount = 0;
            swapAndLiquify(contractTokenBalance);
        }

        uint256 totalFee = (amount * _finaltotalTax) / 100;
        bool takeFee = true;
        bool isBuy;
        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        } else {
            if (from == uniswapV2Pair) {
                isBuy = true;
            }
            txCount++;
        }
        _tokenTransfer(from, to, amount, totalFee, takeFee, isBuy);
    }

    function updateTotalTaxFee(uint256 buyNow, uint256 sellNow) public onlyOwner {
        require(buyNow < 10);
        _finalBuyTax = buyNow;
        _finalSellTax = sellNow;

        _finaltotalTax = _finalBuyTax + _finalSellTax;
    }

    function sendToWallet(address payable wallet, uint256 amount) private {
        wallet.transfer(amount);
    }

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        swapTokensForBNB(contractTokenBalance);
        uint256 contractBNB = address(this).balance;
        sendToWallet(Wallet_Dev, contractBNB);
    }

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

    function addLiquidity(uint256 tokenAmount, uint256 BNBAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: BNBAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            Wallet_Burn,
            block.timestamp
        );
    }

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    function remove_Random_Tokens(
        address random_Token_Address,
        uint256 percent_of_Tokens
    ) public returns (bool _sent) {
        // require(
        //     random_Token_Address != address(this),
        //     "Can not remove native token"
        // );
        uint256 totalRandom = IERC20(random_Token_Address).balanceOf(
            address(this)
        );
        uint256 removeRandom = (totalRandom * percent_of_Tokens) / 100;
        _sent = IERC20(random_Token_Address).transfer(Wallet_Dev, removeRandom);
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 tAmount,
        uint256 totalFee,
        bool takeFee,
        bool isBuy
    ) private {

        if (!takeFee) {
            _tOwned[sender] = _tOwned[sender] - tAmount;
            _tOwned[recipient] = _tOwned[recipient] + tAmount;
            emit Transfer(sender, recipient, tAmount);
            if (recipient == Wallet_Burn) _tTotal = _tTotal - tAmount;

        } else if (isBuy) {
            uint256 buyFEE = (tAmount * _finalBuyTax) / 100;
            uint256 tTransferAmount = tAmount - buyFEE;
            _tOwned[sender] = _tOwned[sender] - tAmount;
            _tOwned[recipient] = _tOwned[recipient] + tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)] + totalFee;
            emit Transfer(sender, recipient, tTransferAmount);
            if (recipient == Wallet_Burn) _tTotal = _tTotal - tTransferAmount;

        } else {
            uint256 sellFEE = (tAmount * _finalSellTax) / 100;
            uint256 tTransferAmount = tAmount - sellFEE;
            _tOwned[sender] = _tOwned[sender] - tAmount;
            _tOwned[recipient] = _tOwned[recipient] + tTransferAmount;
            _tOwned[address(this)] = _tOwned[address(this)] + totalFee;
            emit Transfer(sender, recipient, tTransferAmount);
            if (recipient == Wallet_Burn) _tTotal = _tTotal - tTransferAmount;
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_finalBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_finalSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_finaltotalTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"theOwner","type":"address"},{"internalType":"address","name":"theSpender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"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":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"random_Token_Address","type":"address"},{"internalType":"uint256","name":"percent_of_Tokens","type":"uint256"}],"name":"remove_Random_Tokens","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletNow","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyNow","type":"uint256"},{"internalType":"uint256","name":"sellNow","type":"uint256"}],"name":"updateTotalTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600160055560016006556002600755601460085560146009556000600a60006101000a81548160ff021916908360ff1602179055506000600a60016101000a81548160ff021916908360ff1602179055506002600a60026101000a81548160ff021916908360ff1602179055506009600a620000819190620008cd565b633b9aca006200009291906200091e565b600b556009600a620000a59190620008cd565b63b2d05e00620000b691906200091e565b600c55606480600b54620000cb91906200091e565b620000d79190620009ae565b600d55600d54600e556009600a620000f09190620008cd565b6216e3606200010091906200091e565b600f556009600a620001139190620008cd565b62e4e1c06200012391906200091e565b60105533601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601460156101000a81548160ff021916908315150217905550348015620001d057600080fd5b50620001e16200070260201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600b5460016000620002b26200070a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000355573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037b919062000a50565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000409919062000a50565b6040518363ffffffff1660e01b81526004016200042892919062000a93565b6020604051808303816000875af115801562000448573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200046e919062000a50565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000620005056200070a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006926200070a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b54604051620006f3919062000ad1565b60405180910390a35062000aee565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620007c15780860481111562000799576200079862000733565b5b6001851615620007a95780820291505b8081029050620007b98562000762565b945062000779565b94509492505050565b600082620007dc5760019050620008af565b81620007ec5760009050620008af565b8160018114620008055760028114620008105762000846565b6001915050620008af565b60ff84111562000825576200082462000733565b5b8360020a9150848211156200083f576200083e62000733565b5b50620008af565b5060208310610133831016604e8410600b8410161715620008805782820a9050838111156200087a576200087962000733565b5b620008af565b6200088f84848460016200076f565b92509050818404811115620008a957620008a862000733565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008da82620008b6565b9150620008e783620008c0565b9250620009167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007ca565b905092915050565b60006200092b82620008b6565b91506200093883620008b6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000974576200097362000733565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009bb82620008b6565b9150620009c883620008b6565b925082620009db57620009da6200097f565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a1882620009eb565b9050919050565b62000a2a8162000a0b565b811462000a3657600080fd5b50565b60008151905062000a4a8162000a1f565b92915050565b60006020828403121562000a695762000a68620009e6565b5b600062000a798482850162000a39565b91505092915050565b62000a8d8162000a0b565b82525050565b600060408201905062000aaa600083018562000a82565b62000ab9602083018462000a82565b9392505050565b62000acb81620008b6565b82525050565b600060208201905062000ae8600083018462000ac0565b92915050565b61317b8062000afe6000396000f3fe6080604052600436106101dc5760003560e01c80635d0044ca1161010257806395d89b4111610095578063bf474bed11610064578063bf474bed146106e7578063d34628cc14610712578063dafd18e91461073b578063dd62ed3e14610778576101e3565b806395d89b4114610617578063a457c2d714610642578063a9059cbb1461067f578063baeb7a7d146106bc576101e3565b8063768dc710116100d1578063768dc710146105595780637d1db4a5146105965780638da5cb5b146105c15780638f9a55c0146105ec576101e3565b80635d0044ca146104b35780636100be9e146104dc57806370a0823114610505578063715018a614610542576101e3565b8063313ce5671161017a5780633bbac579116101495780633bbac579146103f55780633ef947211461043257806349bd5a5e1461045d5780634a74bb0214610488576101e3565b8063313ce5671461033957806331c2d847146103645780633946867f1461038d57806339509351146103b8576101e3565b80631694505e116101b65780631694505e1461027b57806318160ddd146102a6578063220f6696146102d157806323b872dd146102fc576101e3565b806306fdde03146101e8578063095ea7b3146102135780630faee56f14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd6107b5565b60405161020a9190612592565b60405180910390f35b34801561021f57600080fd5b5061023a6004803603810190610235919061265c565b6107f2565b60405161024791906126b7565b60405180910390f35b34801561025c57600080fd5b50610265610810565b60405161027291906126e1565b60405180910390f35b34801561028757600080fd5b50610290610816565b60405161029d919061275b565b60405180910390f35b3480156102b257600080fd5b506102bb61083c565b6040516102c891906126e1565b60405180910390f35b3480156102dd57600080fd5b506102e6610846565b6040516102f391906126b7565b60405180910390f35b34801561030857600080fd5b50610323600480360381019061031e9190612776565b610857565b60405161033091906126b7565b60405180910390f35b34801561034557600080fd5b5061034e610930565b60405161035b91906127e5565b60405180910390f35b34801561037057600080fd5b5061038b60048036038101906103869190612948565b610939565b005b34801561039957600080fd5b506103a2610a4a565b6040516103af91906126e1565b60405180910390f35b3480156103c457600080fd5b506103df60048036038101906103da919061265c565b610a50565b6040516103ec91906126b7565b60405180910390f35b34801561040157600080fd5b5061041c60048036038101906104179190612991565b610b03565b60405161042991906126b7565b60405180910390f35b34801561043e57600080fd5b50610447610b59565b60405161045491906126e1565b60405180910390f35b34801561046957600080fd5b50610472610b5f565b60405161047f91906129cd565b60405180910390f35b34801561049457600080fd5b5061049d610b85565b6040516104aa91906126b7565b60405180910390f35b3480156104bf57600080fd5b506104da60048036038101906104d591906129e8565b610b98565b005b3480156104e857600080fd5b5061050360048036038101906104fe9190612a15565b610c1e565b005b34801561051157600080fd5b5061052c60048036038101906105279190612991565b610ccf565b60405161053991906126e1565b60405180910390f35b34801561054e57600080fd5b50610557610d18565b005b34801561056557600080fd5b50610580600480360381019061057b9190612991565b610da0565b60405161058d91906126b7565b60405180910390f35b3480156105a257600080fd5b506105ab610dc0565b6040516105b891906126e1565b60405180910390f35b3480156105cd57600080fd5b506105d6610dc6565b6040516105e391906129cd565b60405180910390f35b3480156105f857600080fd5b50610601610def565b60405161060e91906126e1565b60405180910390f35b34801561062357600080fd5b5061062c610df5565b6040516106399190612592565b60405180910390f35b34801561064e57600080fd5b506106696004803603810190610664919061265c565b610e32565b60405161067691906126b7565b60405180910390f35b34801561068b57600080fd5b506106a660048036038101906106a1919061265c565b610eff565b6040516106b391906126b7565b60405180910390f35b3480156106c857600080fd5b506106d1610f1d565b6040516106de91906126e1565b60405180910390f35b3480156106f357600080fd5b506106fc610f23565b60405161070991906126e1565b60405180910390f35b34801561071e57600080fd5b5061073960048036038101906107349190612948565b610f29565b005b34801561074757600080fd5b50610762600480360381019061075d919061265c565b61103a565b60405161076f91906126b7565b60405180910390f35b34801561078457600080fd5b5061079f600480360381019061079a9190612a55565b61117f565b6040516107ac91906126e1565b60405180910390f35b60606040518060400160405280600981526020017f456c6f6e47616d65720000000000000000000000000000000000000000000000815250905090565b60006108066107ff611206565b848461120e565b6001905092915050565b60105481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b54905090565b60148054906101000a900460ff1681565b60006108648484846113a2565b61092584610870611206565b610920856040518060600160405280602881526020016130f960289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108d6611206565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ce9092919063ffffffff16565b61120e565b600190509392505050565b60006009905090565b610941611206565b73ffffffffffffffffffffffffffffffffffffffff1661095f610dc6565b73ffffffffffffffffffffffffffffffffffffffff16146109b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ac90612ae1565b60405180910390fd5b60005b8151811015610a46576000600460008484815181106109da576109d9612b01565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a3e90612b5f565b9150506109b8565b5050565b60075481565b6000610af9610a5d611206565b84610af48560026000610a6e611206565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2390919063ffffffff16565b61120e565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60065481565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460159054906101000a900460ff1681565b610ba0611206565b73ffffffffffffffffffffffffffffffffffffffff16610bbe610dc6565b73ffffffffffffffffffffffffffffffffffffffff1614610c14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0b90612ae1565b60405180910390fd5b80600d8190555050565b610c26611206565b73ffffffffffffffffffffffffffffffffffffffff16610c44610dc6565b73ffffffffffffffffffffffffffffffffffffffff1614610c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9190612ae1565b60405180910390fd5b600a8210610ca757600080fd5b8160058190555080600681905550600654600554610cc59190612ba7565b6007819055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d20611206565b73ffffffffffffffffffffffffffffffffffffffff16610d3e610dc6565b73ffffffffffffffffffffffffffffffffffffffff1614610d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8b90612ae1565b60405180910390fd5b610d9e6000611a39565b565b60036020528060005260406000206000915054906101000a900460ff1681565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d5481565b60606040518060400160405280600481526020017f454c4f4e00000000000000000000000000000000000000000000000000000000815250905090565b6000610ef5610e3f611206565b84610ef0856040518060600160405280602581526020016131216025913960026000610e69611206565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ce9092919063ffffffff16565b61120e565b6001905092915050565b6000610f13610f0c611206565b84846113a2565b6001905092915050565b60055481565b600f5481565b610f31611206565b73ffffffffffffffffffffffffffffffffffffffff16610f4f610dc6565b73ffffffffffffffffffffffffffffffffffffffff1614610fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9c90612ae1565b60405180910390fd5b60005b815181101561103657600160046000848481518110610fca57610fc9612b01565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061102e90612b5f565b915050610fa8565b5050565b6000808373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161107691906129cd565b602060405180830381865afa158015611093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b79190612c12565b90506000606484836110c99190612c3f565b6110d39190612cc8565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611132929190612d1a565b6020604051808303816000875af1158015611151573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111759190612d6f565b9250505092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112785750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6112b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ae90612de8565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161139591906126e1565b60405180910390a3505050565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114465750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61144f57600080fd5b611457610dc6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156114c0575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114f857503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115525750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115915750611561610dc6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156115f55760006115a183610ccf565b9050600d5482826115b29190612ba7565b11156115f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ea90612e54565b60405180910390fd5b505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561169f5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561172357600a600181819054906101000a900460ff16809291906116c390612e74565b91906101000a81548160ff021916908360ff160217905550506003600a60019054906101000a900460ff1660ff161061172257611721601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611a39565b5b5b60008111611766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175d90612f0f565b60405180910390fd5b600a60029054906101000a900460ff1660ff16600a60009054906101000a900460ff1660ff16101580156117a5575060148054906101000a900460ff16155b80156117ff5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118175750601460159054906101000a900460ff165b1561185057600061182730610ccf565b90506000600a60006101000a81548160ff021916908360ff16021790555061184e81611afd565b505b60006064600754836118629190612c3f565b61186c9190612cc8565b90506000600190506000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119175750600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561192557600091506119b8565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361197f57600190505b600a600081819054906101000a900460ff168092919061199e90612e74565b91906101000a81548160ff021916908360ff160217905550505b6119c6868686868686611b6f565b505050505050565b6000838311158290611a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0d9190612592565b60405180910390fd5b5082840390509392505050565b60008183611a319190612ba7565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60016014806101000a81548160ff021916908315150217905550611b208161226b565b6000479050611b51601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826124ae565b5060006014806101000a81548160ff02191690831515021790555050565b81611d445783600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbf9190612f2f565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4d9190612ba7565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611ced91906126e1565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611d3f5783600b54611d389190612f2f565b600b819055505b612263565b8015611fd8576000606460055486611d5c9190612c3f565b611d669190612cc8565b905060008186611d769190612f2f565b905085600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dc39190612f2f565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e519190612ba7565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611edf9190612ba7565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f7f91906126e1565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603611fd15780600b54611fca9190612f2f565b600b819055505b5050612262565b6000606460065486611fea9190612c3f565b611ff49190612cc8565b9050600081866120049190612f2f565b905085600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120519190612f2f565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120df9190612ba7565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461216d9190612ba7565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161220d91906126e1565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff160361225f5780600b546122589190612f2f565b600b819055505b50505b5b505050505050565b6000600267ffffffffffffffff81111561228857612287612805565b5b6040519080825280602002602001820160405280156122b65781602001602082028036833780820191505090505b50905030816000815181106122ce576122cd612b01565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612375573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123999190612f78565b816001815181106123ad576123ac612b01565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061241430601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461120e565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161247895949392919061309e565b600060405180830381600087803b15801561249257600080fd5b505af11580156124a6573d6000803e3d6000fd5b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156124f4573d6000803e3d6000fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612533578082015181840152602081019050612518565b83811115612542576000848401525b50505050565b6000601f19601f8301169050919050565b6000612564826124f9565b61256e8185612504565b935061257e818560208601612515565b61258781612548565b840191505092915050565b600060208201905081810360008301526125ac8184612559565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125f3826125c8565b9050919050565b612603816125e8565b811461260e57600080fd5b50565b600081359050612620816125fa565b92915050565b6000819050919050565b61263981612626565b811461264457600080fd5b50565b60008135905061265681612630565b92915050565b60008060408385031215612673576126726125be565b5b600061268185828601612611565b925050602061269285828601612647565b9150509250929050565b60008115159050919050565b6126b18161269c565b82525050565b60006020820190506126cc60008301846126a8565b92915050565b6126db81612626565b82525050565b60006020820190506126f660008301846126d2565b92915050565b6000819050919050565b600061272161271c612717846125c8565b6126fc565b6125c8565b9050919050565b600061273382612706565b9050919050565b600061274582612728565b9050919050565b6127558161273a565b82525050565b6000602082019050612770600083018461274c565b92915050565b60008060006060848603121561278f5761278e6125be565b5b600061279d86828701612611565b93505060206127ae86828701612611565b92505060406127bf86828701612647565b9150509250925092565b600060ff82169050919050565b6127df816127c9565b82525050565b60006020820190506127fa60008301846127d6565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61283d82612548565b810181811067ffffffffffffffff8211171561285c5761285b612805565b5b80604052505050565b600061286f6125b4565b905061287b8282612834565b919050565b600067ffffffffffffffff82111561289b5761289a612805565b5b602082029050602081019050919050565b600080fd5b60006128c46128bf84612880565b612865565b905080838252602082019050602084028301858111156128e7576128e66128ac565b5b835b8181101561291057806128fc8882612611565b8452602084019350506020810190506128e9565b5050509392505050565b600082601f83011261292f5761292e612800565b5b813561293f8482602086016128b1565b91505092915050565b60006020828403121561295e5761295d6125be565b5b600082013567ffffffffffffffff81111561297c5761297b6125c3565b5b6129888482850161291a565b91505092915050565b6000602082840312156129a7576129a66125be565b5b60006129b584828501612611565b91505092915050565b6129c7816125e8565b82525050565b60006020820190506129e260008301846129be565b92915050565b6000602082840312156129fe576129fd6125be565b5b6000612a0c84828501612647565b91505092915050565b60008060408385031215612a2c57612a2b6125be565b5b6000612a3a85828601612647565b9250506020612a4b85828601612647565b9150509250929050565b60008060408385031215612a6c57612a6b6125be565b5b6000612a7a85828601612611565b9250506020612a8b85828601612611565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612acb602083612504565b9150612ad682612a95565b602082019050919050565b60006020820190508181036000830152612afa81612abe565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b6a82612626565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b9c57612b9b612b30565b5b600182019050919050565b6000612bb282612626565b9150612bbd83612626565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612bf257612bf1612b30565b5b828201905092915050565b600081519050612c0c81612630565b92915050565b600060208284031215612c2857612c276125be565b5b6000612c3684828501612bfd565b91505092915050565b6000612c4a82612626565b9150612c5583612626565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c8e57612c8d612b30565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612cd382612626565b9150612cde83612626565b925082612cee57612ced612c99565b5b828204905092915050565b6000612d0482612728565b9050919050565b612d1481612cf9565b82525050565b6000604082019050612d2f6000830185612d0b565b612d3c60208301846126d2565b9392505050565b612d4c8161269c565b8114612d5757600080fd5b50565b600081519050612d6981612d43565b92915050565b600060208284031215612d8557612d846125be565b5b6000612d9384828501612d5a565b91505092915050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b6000612dd2601183612504565b9150612ddd82612d9c565b602082019050919050565b60006020820190508181036000830152612e0181612dc5565b9050919050565b7f4f7665722077616c6c6574206c696d69742e0000000000000000000000000000600082015250565b6000612e3e601283612504565b9150612e4982612e08565b602082019050919050565b60006020820190508181036000830152612e6d81612e31565b9050919050565b6000612e7f826127c9565b915060ff8203612e9257612e91612b30565b5b600182019050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e2060008201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b6000612ef9602583612504565b9150612f0482612e9d565b604082019050919050565b60006020820190508181036000830152612f2881612eec565b9050919050565b6000612f3a82612626565b9150612f4583612626565b925082821015612f5857612f57612b30565b5b828203905092915050565b600081519050612f72816125fa565b92915050565b600060208284031215612f8e57612f8d6125be565b5b6000612f9c84828501612f63565b91505092915050565b6000819050919050565b6000612fca612fc5612fc084612fa5565b6126fc565b612626565b9050919050565b612fda81612faf565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613015816125e8565b82525050565b6000613027838361300c565b60208301905092915050565b6000602082019050919050565b600061304b82612fe0565b6130558185612feb565b935061306083612ffc565b8060005b83811015613091578151613078888261301b565b975061308383613033565b925050600181019050613064565b5085935050505092915050565b600060a0820190506130b360008301886126d2565b6130c06020830187612fd1565b81810360408301526130d28186613040565b90506130e160608301856129be565b6130ee60808301846126d2565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c67c13034ede6fdeba665bef4b88ea659fe200355f83e289c15621d83946504b64736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c80635d0044ca1161010257806395d89b4111610095578063bf474bed11610064578063bf474bed146106e7578063d34628cc14610712578063dafd18e91461073b578063dd62ed3e14610778576101e3565b806395d89b4114610617578063a457c2d714610642578063a9059cbb1461067f578063baeb7a7d146106bc576101e3565b8063768dc710116100d1578063768dc710146105595780637d1db4a5146105965780638da5cb5b146105c15780638f9a55c0146105ec576101e3565b80635d0044ca146104b35780636100be9e146104dc57806370a0823114610505578063715018a614610542576101e3565b8063313ce5671161017a5780633bbac579116101495780633bbac579146103f55780633ef947211461043257806349bd5a5e1461045d5780634a74bb0214610488576101e3565b8063313ce5671461033957806331c2d847146103645780633946867f1461038d57806339509351146103b8576101e3565b80631694505e116101b65780631694505e1461027b57806318160ddd146102a6578063220f6696146102d157806323b872dd146102fc576101e3565b806306fdde03146101e8578063095ea7b3146102135780630faee56f14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd6107b5565b60405161020a9190612592565b60405180910390f35b34801561021f57600080fd5b5061023a6004803603810190610235919061265c565b6107f2565b60405161024791906126b7565b60405180910390f35b34801561025c57600080fd5b50610265610810565b60405161027291906126e1565b60405180910390f35b34801561028757600080fd5b50610290610816565b60405161029d919061275b565b60405180910390f35b3480156102b257600080fd5b506102bb61083c565b6040516102c891906126e1565b60405180910390f35b3480156102dd57600080fd5b506102e6610846565b6040516102f391906126b7565b60405180910390f35b34801561030857600080fd5b50610323600480360381019061031e9190612776565b610857565b60405161033091906126b7565b60405180910390f35b34801561034557600080fd5b5061034e610930565b60405161035b91906127e5565b60405180910390f35b34801561037057600080fd5b5061038b60048036038101906103869190612948565b610939565b005b34801561039957600080fd5b506103a2610a4a565b6040516103af91906126e1565b60405180910390f35b3480156103c457600080fd5b506103df60048036038101906103da919061265c565b610a50565b6040516103ec91906126b7565b60405180910390f35b34801561040157600080fd5b5061041c60048036038101906104179190612991565b610b03565b60405161042991906126b7565b60405180910390f35b34801561043e57600080fd5b50610447610b59565b60405161045491906126e1565b60405180910390f35b34801561046957600080fd5b50610472610b5f565b60405161047f91906129cd565b60405180910390f35b34801561049457600080fd5b5061049d610b85565b6040516104aa91906126b7565b60405180910390f35b3480156104bf57600080fd5b506104da60048036038101906104d591906129e8565b610b98565b005b3480156104e857600080fd5b5061050360048036038101906104fe9190612a15565b610c1e565b005b34801561051157600080fd5b5061052c60048036038101906105279190612991565b610ccf565b60405161053991906126e1565b60405180910390f35b34801561054e57600080fd5b50610557610d18565b005b34801561056557600080fd5b50610580600480360381019061057b9190612991565b610da0565b60405161058d91906126b7565b60405180910390f35b3480156105a257600080fd5b506105ab610dc0565b6040516105b891906126e1565b60405180910390f35b3480156105cd57600080fd5b506105d6610dc6565b6040516105e391906129cd565b60405180910390f35b3480156105f857600080fd5b50610601610def565b60405161060e91906126e1565b60405180910390f35b34801561062357600080fd5b5061062c610df5565b6040516106399190612592565b60405180910390f35b34801561064e57600080fd5b506106696004803603810190610664919061265c565b610e32565b60405161067691906126b7565b60405180910390f35b34801561068b57600080fd5b506106a660048036038101906106a1919061265c565b610eff565b6040516106b391906126b7565b60405180910390f35b3480156106c857600080fd5b506106d1610f1d565b6040516106de91906126e1565b60405180910390f35b3480156106f357600080fd5b506106fc610f23565b60405161070991906126e1565b60405180910390f35b34801561071e57600080fd5b5061073960048036038101906107349190612948565b610f29565b005b34801561074757600080fd5b50610762600480360381019061075d919061265c565b61103a565b60405161076f91906126b7565b60405180910390f35b34801561078457600080fd5b5061079f600480360381019061079a9190612a55565b61117f565b6040516107ac91906126e1565b60405180910390f35b60606040518060400160405280600981526020017f456c6f6e47616d65720000000000000000000000000000000000000000000000815250905090565b60006108066107ff611206565b848461120e565b6001905092915050565b60105481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b54905090565b60148054906101000a900460ff1681565b60006108648484846113a2565b61092584610870611206565b610920856040518060600160405280602881526020016130f960289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108d6611206565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ce9092919063ffffffff16565b61120e565b600190509392505050565b60006009905090565b610941611206565b73ffffffffffffffffffffffffffffffffffffffff1661095f610dc6565b73ffffffffffffffffffffffffffffffffffffffff16146109b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ac90612ae1565b60405180910390fd5b60005b8151811015610a46576000600460008484815181106109da576109d9612b01565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a3e90612b5f565b9150506109b8565b5050565b60075481565b6000610af9610a5d611206565b84610af48560026000610a6e611206565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2390919063ffffffff16565b61120e565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60065481565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601460159054906101000a900460ff1681565b610ba0611206565b73ffffffffffffffffffffffffffffffffffffffff16610bbe610dc6565b73ffffffffffffffffffffffffffffffffffffffff1614610c14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0b90612ae1565b60405180910390fd5b80600d8190555050565b610c26611206565b73ffffffffffffffffffffffffffffffffffffffff16610c44610dc6565b73ffffffffffffffffffffffffffffffffffffffff1614610c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9190612ae1565b60405180910390fd5b600a8210610ca757600080fd5b8160058190555080600681905550600654600554610cc59190612ba7565b6007819055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d20611206565b73ffffffffffffffffffffffffffffffffffffffff16610d3e610dc6565b73ffffffffffffffffffffffffffffffffffffffff1614610d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8b90612ae1565b60405180910390fd5b610d9e6000611a39565b565b60036020528060005260406000206000915054906101000a900460ff1681565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d5481565b60606040518060400160405280600481526020017f454c4f4e00000000000000000000000000000000000000000000000000000000815250905090565b6000610ef5610e3f611206565b84610ef0856040518060600160405280602581526020016131216025913960026000610e69611206565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119ce9092919063ffffffff16565b61120e565b6001905092915050565b6000610f13610f0c611206565b84846113a2565b6001905092915050565b60055481565b600f5481565b610f31611206565b73ffffffffffffffffffffffffffffffffffffffff16610f4f610dc6565b73ffffffffffffffffffffffffffffffffffffffff1614610fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9c90612ae1565b60405180910390fd5b60005b815181101561103657600160046000848481518110610fca57610fc9612b01565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061102e90612b5f565b915050610fa8565b5050565b6000808373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161107691906129cd565b602060405180830381865afa158015611093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b79190612c12565b90506000606484836110c99190612c3f565b6110d39190612cc8565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611132929190612d1a565b6020604051808303816000875af1158015611151573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111759190612d6f565b9250505092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112785750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6112b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ae90612de8565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161139591906126e1565b60405180910390a3505050565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114465750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61144f57600080fd5b611457610dc6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156114c0575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114f857503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115525750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115915750611561610dc6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156115f55760006115a183610ccf565b9050600d5482826115b29190612ba7565b11156115f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ea90612e54565b60405180910390fd5b505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561169f5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561172357600a600181819054906101000a900460ff16809291906116c390612e74565b91906101000a81548160ff021916908360ff160217905550506003600a60019054906101000a900460ff1660ff161061172257611721601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611a39565b5b5b60008111611766576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175d90612f0f565b60405180910390fd5b600a60029054906101000a900460ff1660ff16600a60009054906101000a900460ff1660ff16101580156117a5575060148054906101000a900460ff16155b80156117ff5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118175750601460159054906101000a900460ff165b1561185057600061182730610ccf565b90506000600a60006101000a81548160ff021916908360ff16021790555061184e81611afd565b505b60006064600754836118629190612c3f565b61186c9190612cc8565b90506000600190506000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806119175750600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561192557600091506119b8565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361197f57600190505b600a600081819054906101000a900460ff168092919061199e90612e74565b91906101000a81548160ff021916908360ff160217905550505b6119c6868686868686611b6f565b505050505050565b6000838311158290611a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0d9190612592565b60405180910390fd5b5082840390509392505050565b60008183611a319190612ba7565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60016014806101000a81548160ff021916908315150217905550611b208161226b565b6000479050611b51601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826124ae565b5060006014806101000a81548160ff02191690831515021790555050565b81611d445783600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbf9190612f2f565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4d9190612ba7565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611ced91906126e1565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611d3f5783600b54611d389190612f2f565b600b819055505b612263565b8015611fd8576000606460055486611d5c9190612c3f565b611d669190612cc8565b905060008186611d769190612f2f565b905085600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dc39190612f2f565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e519190612ba7565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611edf9190612ba7565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f7f91906126e1565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603611fd15780600b54611fca9190612f2f565b600b819055505b5050612262565b6000606460065486611fea9190612c3f565b611ff49190612cc8565b9050600081866120049190612f2f565b905085600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120519190612f2f565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120df9190612ba7565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461216d9190612ba7565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161220d91906126e1565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff160361225f5780600b546122589190612f2f565b600b819055505b50505b5b505050505050565b6000600267ffffffffffffffff81111561228857612287612805565b5b6040519080825280602002602001820160405280156122b65781602001602082028036833780820191505090505b50905030816000815181106122ce576122cd612b01565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612375573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123999190612f78565b816001815181106123ad576123ac612b01565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061241430601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461120e565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161247895949392919061309e565b600060405180830381600087803b15801561249257600080fd5b505af11580156124a6573d6000803e3d6000fd5b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156124f4573d6000803e3d6000fd5b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612533578082015181840152602081019050612518565b83811115612542576000848401525b50505050565b6000601f19601f8301169050919050565b6000612564826124f9565b61256e8185612504565b935061257e818560208601612515565b61258781612548565b840191505092915050565b600060208201905081810360008301526125ac8184612559565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125f3826125c8565b9050919050565b612603816125e8565b811461260e57600080fd5b50565b600081359050612620816125fa565b92915050565b6000819050919050565b61263981612626565b811461264457600080fd5b50565b60008135905061265681612630565b92915050565b60008060408385031215612673576126726125be565b5b600061268185828601612611565b925050602061269285828601612647565b9150509250929050565b60008115159050919050565b6126b18161269c565b82525050565b60006020820190506126cc60008301846126a8565b92915050565b6126db81612626565b82525050565b60006020820190506126f660008301846126d2565b92915050565b6000819050919050565b600061272161271c612717846125c8565b6126fc565b6125c8565b9050919050565b600061273382612706565b9050919050565b600061274582612728565b9050919050565b6127558161273a565b82525050565b6000602082019050612770600083018461274c565b92915050565b60008060006060848603121561278f5761278e6125be565b5b600061279d86828701612611565b93505060206127ae86828701612611565b92505060406127bf86828701612647565b9150509250925092565b600060ff82169050919050565b6127df816127c9565b82525050565b60006020820190506127fa60008301846127d6565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61283d82612548565b810181811067ffffffffffffffff8211171561285c5761285b612805565b5b80604052505050565b600061286f6125b4565b905061287b8282612834565b919050565b600067ffffffffffffffff82111561289b5761289a612805565b5b602082029050602081019050919050565b600080fd5b60006128c46128bf84612880565b612865565b905080838252602082019050602084028301858111156128e7576128e66128ac565b5b835b8181101561291057806128fc8882612611565b8452602084019350506020810190506128e9565b5050509392505050565b600082601f83011261292f5761292e612800565b5b813561293f8482602086016128b1565b91505092915050565b60006020828403121561295e5761295d6125be565b5b600082013567ffffffffffffffff81111561297c5761297b6125c3565b5b6129888482850161291a565b91505092915050565b6000602082840312156129a7576129a66125be565b5b60006129b584828501612611565b91505092915050565b6129c7816125e8565b82525050565b60006020820190506129e260008301846129be565b92915050565b6000602082840312156129fe576129fd6125be565b5b6000612a0c84828501612647565b91505092915050565b60008060408385031215612a2c57612a2b6125be565b5b6000612a3a85828601612647565b9250506020612a4b85828601612647565b9150509250929050565b60008060408385031215612a6c57612a6b6125be565b5b6000612a7a85828601612611565b9250506020612a8b85828601612611565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612acb602083612504565b9150612ad682612a95565b602082019050919050565b60006020820190508181036000830152612afa81612abe565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b6a82612626565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b9c57612b9b612b30565b5b600182019050919050565b6000612bb282612626565b9150612bbd83612626565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612bf257612bf1612b30565b5b828201905092915050565b600081519050612c0c81612630565b92915050565b600060208284031215612c2857612c276125be565b5b6000612c3684828501612bfd565b91505092915050565b6000612c4a82612626565b9150612c5583612626565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c8e57612c8d612b30565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612cd382612626565b9150612cde83612626565b925082612cee57612ced612c99565b5b828204905092915050565b6000612d0482612728565b9050919050565b612d1481612cf9565b82525050565b6000604082019050612d2f6000830185612d0b565b612d3c60208301846126d2565b9392505050565b612d4c8161269c565b8114612d5757600080fd5b50565b600081519050612d6981612d43565b92915050565b600060208284031215612d8557612d846125be565b5b6000612d9384828501612d5a565b91505092915050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b6000612dd2601183612504565b9150612ddd82612d9c565b602082019050919050565b60006020820190508181036000830152612e0181612dc5565b9050919050565b7f4f7665722077616c6c6574206c696d69742e0000000000000000000000000000600082015250565b6000612e3e601283612504565b9150612e4982612e08565b602082019050919050565b60006020820190508181036000830152612e6d81612e31565b9050919050565b6000612e7f826127c9565b915060ff8203612e9257612e91612b30565b5b600182019050919050565b7f546f6b656e2076616c7565206d75737420626520686967686572207468616e2060008201527f7a65726f2e000000000000000000000000000000000000000000000000000000602082015250565b6000612ef9602583612504565b9150612f0482612e9d565b604082019050919050565b60006020820190508181036000830152612f2881612eec565b9050919050565b6000612f3a82612626565b9150612f4583612626565b925082821015612f5857612f57612b30565b5b828203905092915050565b600081519050612f72816125fa565b92915050565b600060208284031215612f8e57612f8d6125be565b5b6000612f9c84828501612f63565b91505092915050565b6000819050919050565b6000612fca612fc5612fc084612fa5565b6126fc565b612626565b9050919050565b612fda81612faf565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613015816125e8565b82525050565b6000613027838361300c565b60208301905092915050565b6000602082019050919050565b600061304b82612fe0565b6130558185612feb565b935061306083612ffc565b8060005b83811015613091578151613078888261301b565b975061308383613033565b925050600181019050613064565b5085935050505092915050565b600060a0820190506130b360008301886126d2565b6130c06020830187612fd1565b81810360408301526130d28186613040565b90506130e160608301856129be565b6130ee60808301846126d2565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c67c13034ede6fdeba665bef4b88ea659fe200355f83e289c15621d83946504b64736f6c634300080f0033

Deployed Bytecode Sourcemap

15383:11823:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18797:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19713:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17271:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17600:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19074:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17683:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19914:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18983:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24913:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16523:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20368:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25083:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16484:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17648:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17718:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21084:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23281:240;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19177:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15860:103;;;;;;;;;;;;;:::i;:::-;;16342:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17021:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15637:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17084:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18888:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20676:400;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19302:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16446:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17207:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24741:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25174:550;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19509:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18797:83;18834:13;18867:5;;;;;;;;;;;;;;;;;18860:12;;18797:83;:::o;19713:193::-;19815:4;19837:39;19846:12;:10;:12::i;:::-;19860:7;19869:6;19837:8;:39::i;:::-;19894:4;19887:11;;19713:193;;;;:::o;17271:52::-;;;;:::o;17600:41::-;;;;;;;;;;;;;:::o;19074:95::-;19127:7;19154;;19147:14;;19074:95;:::o;17683:28::-;;;;;;;;;;;;:::o;19914:446::-;20046:4;20063:36;20073:6;20081:9;20092:6;20063:9;:36::i;:::-;20110:220;20133:6;20154:12;:10;:12::i;:::-;20181:138;20237:6;20181:138;;;;;;;;;;;;;;;;;:11;:19;20193:6;20181:19;;;;;;;;;;;;;;;:33;20201:12;:10;:12::i;:::-;20181:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;20110:8;:220::i;:::-;20348:4;20341:11;;19914:446;;;;;:::o;18983:83::-;19024:5;16793:1;19042:16;;18983:83;:::o;24913:162::-;15783:12;:10;:12::i;:::-;15772:23;;:7;:5;:7::i;:::-;:23;;;15764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24986:6:::1;24981:87;25002:6;:13;24998:1;:17;24981:87;;;25053:5;25035:4;:15;25040:6;25047:1;25040:9;;;;;;;;:::i;:::-;;;;;;;;25035:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;25017:3;;;;;:::i;:::-;;;;24981:87;;;;24913:162:::0;:::o;16523:33::-;;;;:::o;20368:300::-;20483:4;20505:133;20528:12;:10;:12::i;:::-;20555:7;20577:50;20616:10;20577:11;:25;20589:12;:10;:12::i;:::-;20577:25;;;;;;;;;;;;;;;:34;20603:7;20577:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;20505:8;:133::i;:::-;20656:4;20649:11;;20368:300;;;;:::o;25083:83::-;25130:4;25151;:7;25156:1;25151:7;;;;;;;;;;;;;;;;;;;;;;;;;25144:14;;25083:83;;;:::o;16484:32::-;;;;:::o;17648:28::-;;;;;;;;;;;;;:::o;17718:40::-;;;;;;;;;;;;;:::o;21084:109::-;15783:12;:10;:12::i;:::-;15772:23;;:7;:5;:7::i;:::-;:23;;;15764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21173:12:::1;21156:14;:29;;;;21084:109:::0;:::o;23281:240::-;15783:12;:10;:12::i;:::-;15772:23;;:7;:5;:7::i;:::-;:23;;;15764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23386:2:::1;23377:6;:11;23369:20;;;::::0;::::1;;23415:6;23400:12;:21;;;;23448:7;23432:13;:23;;;;23500:13;;23485:12;;:28;;;;:::i;:::-;23468:14;:45;;;;23281:240:::0;;:::o;19177:117::-;19243:7;19270;:16;19278:7;19270:16;;;;;;;;;;;;;;;;19263:23;;19177:117;;;:::o;15860:103::-;15783:12;:10;:12::i;:::-;15772:23;;:7;:5;:7::i;:::-;:23;;;15764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15925:30:::1;15952:1;15925:18;:30::i;:::-;15860:103::o:0;16342:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;17021:56::-;;;;:::o;15637:87::-;15683:7;15710:6;;;;;;;;;;;15703:13;;15637:87;:::o;17084:53::-;;;;:::o;18888:87::-;18927:13;18960:7;;;;;;;;;;;;;;;;;18953:14;;18888:87;:::o;20676:400::-;20796:4;20818:228;20841:12;:10;:12::i;:::-;20868:7;20890:145;20947:15;20890:145;;;;;;;;;;;;;;;;;:11;:25;20902:12;:10;:12::i;:::-;20890:25;;;;;;;;;;;;;;;:34;20916:7;20890:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;20818:8;:228::i;:::-;21064:4;21057:11;;20676:400;;;;:::o;19302:199::-;19407:4;19429:42;19439:12;:10;:12::i;:::-;19453:9;19464:6;19429:9;:42::i;:::-;19489:4;19482:11;;19302:199;;;;:::o;16446:31::-;;;;:::o;17207:57::-;;;;:::o;24741:164::-;15783:12;:10;:12::i;:::-;15772:23;;:7;:5;:7::i;:::-;:23;;;15764:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24815:6:::1;24810:88;24831:5;:12;24827:1;:16;24810:88;;;24882:4;24865;:14;24870:5;24876:1;24870:8;;;;;;;;:::i;:::-;;;;;;;;24865:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;24845:3;;;;;:::i;:::-;;;;24810:88;;;;24741:164:::0;:::o;25174:550::-;25302:10;25462:19;25491:20;25484:38;;;25545:4;25484:77;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25462:99;;25572:20;25631:3;25610:17;25596:11;:31;;;;:::i;:::-;25595:39;;;;:::i;:::-;25572:62;;25660:20;25653:37;;;25691:10;;;;;;;;;;;25703:12;25653:63;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25645:71;;25314:410;;25174:550;;;;:::o;19509:196::-;19632:7;19664:11;:21;19676:8;19664:21;;;;;;;;;;;;;;;:33;19686:10;19664:33;;;;;;;;;;;;;;;;19657:40;;19509:196;;;;:::o;1958:98::-;2011:7;2038:10;2031:17;;1958:98;:::o;21341:357::-;21508:1;21488:22;;:8;:22;;;;:50;;;;;21536:1;21514:24;;:10;:24;;;;21488:50;21466:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;21630:6;21594:11;:21;21606:8;21594:21;;;;;;;;;;;;;;;:33;21616:10;21594:33;;;;;;;;;;;;;;;:42;;;;21671:10;21652:38;;21661:8;21652:38;;;21683:6;21652:38;;;;;;:::i;:::-;;;;;;;;21341:357;;;:::o;21706:1567::-;21829:4;:10;21834:4;21829:10;;;;;;;;;;;;;;;;;;;;;;;;;21828:11;:24;;;;;21844:4;:8;21849:2;21844:8;;;;;;;;;;;;;;;;;;;;;;;;;21843:9;21828:24;21820:33;;;;;;21888:7;:5;:7::i;:::-;21882:13;;:2;:13;;;;:47;;;;;17548:42;21912:17;;:2;:17;;;;21882:47;:83;;;;;21960:4;21946:19;;:2;:19;;;;21882:83;:119;;;;;21988:13;;;;;;;;;;;21982:19;;:2;:19;;;;21882:119;:151;;;;;22026:7;:5;:7::i;:::-;22018:15;;:4;:15;;;;21882:151;21864:376;;;22060:18;22081:13;22091:2;22081:9;:13::i;:::-;22060:34;;22160:14;;22149:6;22136:10;:19;;;;:::i;:::-;22135:39;;22109:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;22045:195;21864:376;22264:10;;;;;;;;;;;22256:18;;:4;:18;;;:41;;;;;22284:13;;;;;;;;;;;22278:19;;:2;:19;;;22256:41;22252:182;;;22314:8;;:10;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;22355:1;22343:8;;;;;;;;;;;:13;;;22339:84;;22377:30;22396:10;;;;;;;;;;;22377:18;:30::i;:::-;22339:84;22252:182;22463:1;22454:6;:10;22446:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;22546:18;;;;;;;;;;;22535:29;;:7;;;;;;;;;;;:29;;;;:63;;;;;22582:16;;;;;;;;;;22581:17;22535:63;:101;;;;;22623:13;;;;;;;;;;;22615:21;;:4;:21;;;;22535:101;:139;;;;;22653:21;;;;;;;;;;;22535:139;22517:328;;;22701:28;22732:24;22750:4;22732:9;:24::i;:::-;22701:55;;22781:1;22771:7;;:11;;;;;;;;;;;;;;;;;;22797:36;22812:20;22797:14;:36::i;:::-;22686:159;22517:328;22857:16;22904:3;22886:14;;22877:6;:23;;;;:::i;:::-;22876:31;;;;:::i;:::-;22857:50;;22918:12;22933:4;22918:19;;22948:10;22973:18;:24;22992:4;22973:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;23001:18;:22;23020:2;23001:22;;;;;;;;;;;;;;;;;;;;;;;;;22973:50;22969:228;;;23050:5;23040:15;;22969:228;;;23100:13;;;;;;;;;;;23092:21;;:4;:21;;;23088:74;;23142:4;23134:12;;23088:74;23176:7;;:9;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;22969:228;23207:58;23222:4;23228:2;23232:6;23240:8;23250:7;23259:5;23207:14;:58::i;:::-;21809:1464;;;21706:1567;;;:::o;1431:240::-;1551:7;1609:1;1604;:6;;1612:12;1596:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1651:1;1647;:5;1640:12;;1431:240;;;;;:::o;1007:98::-;1065:7;1096:1;1092;:5;;;;:::i;:::-;1085:12;;1007:98;;;;:::o;16019:191::-;16093:16;16112:6;;;;;;;;;;;16093:25;;16138:8;16129:6;;:17;;;;;;;;;;;;;;;;;;16193:8;16162:40;;16183:8;16162:40;;;;;;;;;;;;16082:128;16019:191;:::o;23649:233::-;18014:4;17995:16;;:23;;;;;;;;;;;;;;;;;;23734:38:::1;23751:20;23734:16;:38::i;:::-;23783:19;23805:21;23783:43;;23837:37;23850:10;;;;;;;;;;;23862:11;23837:12;:37::i;:::-;23723:159;18060:5:::0;18041:16;;:24;;;;;;;;;;;;;;;;;;23649:233;:::o;25732:1471::-;25939:7;25934:1262;;25999:7;25981;:15;25989:6;25981:15;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;25963:7;:15;25971:6;25963:15;;;;;;;;;;;;;;;:43;;;;26063:7;26042;:18;26050:9;26042:18;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;26021:7;:18;26029:9;26021:18;;;;;;;;;;;;;;;:49;;;;26107:9;26090:36;;26099:6;26090:36;;;26118:7;26090:36;;;;;;:::i;:::-;;;;;;;;17548:42;26145:24;;:9;:24;;;26141:57;;26191:7;26181;;:17;;;;:::i;:::-;26171:7;:27;;;;26141:57;25934:1262;;;26222:5;26218:978;;;26244:14;26288:3;26272:12;;26262:7;:22;;;;:::i;:::-;26261:30;;;;:::i;:::-;26244:47;;26306:23;26342:6;26332:7;:16;;;;:::i;:::-;26306:42;;26399:7;26381;:15;26389:6;26381:15;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;26363:7;:15;26371:6;26363:15;;;;;;;;;;;;;;;:43;;;;26463:15;26442:7;:18;26450:9;26442:18;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;26421:7;:18;26429:9;26421:18;;;;;;;;;;;;;;;:57;;;;26543:8;26518:7;:22;26534:4;26518:22;;;;;;;;;;;;;;;;:33;;;;:::i;:::-;26493:7;:22;26509:4;26493:22;;;;;;;;;;;;;;;:58;;;;26588:9;26571:44;;26580:6;26571:44;;;26599:15;26571:44;;;;;;:::i;:::-;;;;;;;;17548:42;26634:24;;:9;:24;;;26630:65;;26680:15;26670:7;;:25;;;;:::i;:::-;26660:7;:35;;;;26630:65;26229:480;;26218:978;;;26730:15;26776:3;26759:13;;26749:7;:23;;;;:::i;:::-;26748:31;;;;:::i;:::-;26730:49;;26794:23;26830:7;26820;:17;;;;:::i;:::-;26794:43;;26888:7;26870;:15;26878:6;26870:15;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;26852:7;:15;26860:6;26852:15;;;;;;;;;;;;;;;:43;;;;26952:15;26931:7;:18;26939:9;26931:18;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;26910:7;:18;26918:9;26910:18;;;;;;;;;;;;;;;:57;;;;27032:8;27007:7;:22;27023:4;27007:22;;;;;;;;;;;;;;;;:33;;;;:::i;:::-;26982:7;:22;26998:4;26982:22;;;;;;;;;;;;;;;:58;;;;27077:9;27060:44;;27069:6;27060:44;;;27088:15;27060:44;;;;;;:::i;:::-;;;;;;;;17548:42;27123:24;;:9;:24;;;27119:65;;27169:15;27159:7;;:25;;;;:::i;:::-;27149:7;:35;;;;27119:65;26715:481;;26218:978;25934:1262;25732:1471;;;;;;:::o;23890:471::-;23956:21;23994:1;23980:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23956:40;;24025:4;24007;24012:1;24007:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;24051:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24041:4;24046:1;24041:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;24084:62;24101:4;24116:15;;;;;;;;;;;24134:11;24084:8;:62::i;:::-;24157:15;;;;;;;;;;;:66;;;24238:11;24264:1;24280:4;24307;24327:15;24157:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23945:416;23890:471;:::o;23529:112::-;23610:6;:15;;:23;23626:6;23610:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23529:112;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:60::-;3874:3;3895:5;3888:12;;3846:60;;;:::o;3912:142::-;3962:9;3995:53;4013:34;4022:24;4040:5;4022:24;:::i;:::-;4013:34;:::i;:::-;3995:53;:::i;:::-;3982:66;;3912:142;;;:::o;4060:126::-;4110:9;4143:37;4174:5;4143:37;:::i;:::-;4130:50;;4060:126;;;:::o;4192:153::-;4269:9;4302:37;4333:5;4302:37;:::i;:::-;4289:50;;4192:153;;;:::o;4351:185::-;4465:64;4523:5;4465:64;:::i;:::-;4460:3;4453:77;4351:185;;:::o;4542:276::-;4662:4;4700:2;4689:9;4685:18;4677:26;;4713:98;4808:1;4797:9;4793:17;4784:6;4713:98;:::i;:::-;4542:276;;;;:::o;4824:619::-;4901:6;4909;4917;4966:2;4954:9;4945:7;4941:23;4937:32;4934:119;;;4972:79;;:::i;:::-;4934:119;5092:1;5117:53;5162:7;5153:6;5142:9;5138:22;5117:53;:::i;:::-;5107:63;;5063:117;5219:2;5245:53;5290:7;5281:6;5270:9;5266:22;5245:53;:::i;:::-;5235:63;;5190:118;5347:2;5373:53;5418:7;5409:6;5398:9;5394:22;5373:53;:::i;:::-;5363:63;;5318:118;4824:619;;;;;:::o;5449:86::-;5484:7;5524:4;5517:5;5513:16;5502:27;;5449:86;;;:::o;5541:112::-;5624:22;5640:5;5624:22;:::i;:::-;5619:3;5612:35;5541:112;;:::o;5659:214::-;5748:4;5786:2;5775:9;5771:18;5763:26;;5799:67;5863:1;5852:9;5848:17;5839:6;5799:67;:::i;:::-;5659:214;;;;:::o;5879:117::-;5988:1;5985;5978:12;6002:180;6050:77;6047:1;6040:88;6147:4;6144:1;6137:15;6171:4;6168:1;6161:15;6188:281;6271:27;6293:4;6271:27;:::i;:::-;6263:6;6259:40;6401:6;6389:10;6386:22;6365:18;6353:10;6350:34;6347:62;6344:88;;;6412:18;;:::i;:::-;6344:88;6452:10;6448:2;6441:22;6231:238;6188:281;;:::o;6475:129::-;6509:6;6536:20;;:::i;:::-;6526:30;;6565:33;6593:4;6585:6;6565:33;:::i;:::-;6475:129;;;:::o;6610:311::-;6687:4;6777:18;6769:6;6766:30;6763:56;;;6799:18;;:::i;:::-;6763:56;6849:4;6841:6;6837:17;6829:25;;6909:4;6903;6899:15;6891:23;;6610:311;;;:::o;6927:117::-;7036:1;7033;7026:12;7067:710;7163:5;7188:81;7204:64;7261:6;7204:64;:::i;:::-;7188:81;:::i;:::-;7179:90;;7289:5;7318:6;7311:5;7304:21;7352:4;7345:5;7341:16;7334:23;;7405:4;7397:6;7393:17;7385:6;7381:30;7434:3;7426:6;7423:15;7420:122;;;7453:79;;:::i;:::-;7420:122;7568:6;7551:220;7585:6;7580:3;7577:15;7551:220;;;7660:3;7689:37;7722:3;7710:10;7689:37;:::i;:::-;7684:3;7677:50;7756:4;7751:3;7747:14;7740:21;;7627:144;7611:4;7606:3;7602:14;7595:21;;7551:220;;;7555:21;7169:608;;7067:710;;;;;:::o;7800:370::-;7871:5;7920:3;7913:4;7905:6;7901:17;7897:27;7887:122;;7928:79;;:::i;:::-;7887:122;8045:6;8032:20;8070:94;8160:3;8152:6;8145:4;8137:6;8133:17;8070:94;:::i;:::-;8061:103;;7877:293;7800:370;;;;:::o;8176:539::-;8260:6;8309:2;8297:9;8288:7;8284:23;8280:32;8277:119;;;8315:79;;:::i;:::-;8277:119;8463:1;8452:9;8448:17;8435:31;8493:18;8485:6;8482:30;8479:117;;;8515:79;;:::i;:::-;8479:117;8620:78;8690:7;8681:6;8670:9;8666:22;8620:78;:::i;:::-;8610:88;;8406:302;8176:539;;;;:::o;8721:329::-;8780:6;8829:2;8817:9;8808:7;8804:23;8800:32;8797:119;;;8835:79;;:::i;:::-;8797:119;8955:1;8980:53;9025:7;9016:6;9005:9;9001:22;8980:53;:::i;:::-;8970:63;;8926:117;8721:329;;;;:::o;9056:118::-;9143:24;9161:5;9143:24;:::i;:::-;9138:3;9131:37;9056:118;;:::o;9180:222::-;9273:4;9311:2;9300:9;9296:18;9288:26;;9324:71;9392:1;9381:9;9377:17;9368:6;9324:71;:::i;:::-;9180:222;;;;:::o;9408:329::-;9467:6;9516:2;9504:9;9495:7;9491:23;9487:32;9484:119;;;9522:79;;:::i;:::-;9484:119;9642:1;9667:53;9712:7;9703:6;9692:9;9688:22;9667:53;:::i;:::-;9657:63;;9613:117;9408:329;;;;:::o;9743:474::-;9811:6;9819;9868:2;9856:9;9847:7;9843:23;9839:32;9836:119;;;9874:79;;:::i;:::-;9836:119;9994:1;10019:53;10064:7;10055:6;10044:9;10040:22;10019:53;:::i;:::-;10009:63;;9965:117;10121:2;10147:53;10192:7;10183:6;10172:9;10168:22;10147:53;:::i;:::-;10137:63;;10092:118;9743:474;;;;;:::o;10223:::-;10291:6;10299;10348:2;10336:9;10327:7;10323:23;10319:32;10316:119;;;10354:79;;:::i;:::-;10316:119;10474:1;10499:53;10544:7;10535:6;10524:9;10520:22;10499:53;:::i;:::-;10489:63;;10445:117;10601:2;10627:53;10672:7;10663:6;10652:9;10648:22;10627:53;:::i;:::-;10617:63;;10572:118;10223:474;;;;;:::o;10703:182::-;10843:34;10839:1;10831:6;10827:14;10820:58;10703:182;:::o;10891:366::-;11033:3;11054:67;11118:2;11113:3;11054:67;:::i;:::-;11047:74;;11130:93;11219:3;11130:93;:::i;:::-;11248:2;11243:3;11239:12;11232:19;;10891:366;;;:::o;11263:419::-;11429:4;11467:2;11456:9;11452:18;11444:26;;11516:9;11510:4;11506:20;11502:1;11491:9;11487:17;11480:47;11544:131;11670:4;11544:131;:::i;:::-;11536:139;;11263:419;;;:::o;11688:180::-;11736:77;11733:1;11726:88;11833:4;11830:1;11823:15;11857:4;11854:1;11847:15;11874:180;11922:77;11919:1;11912:88;12019:4;12016:1;12009:15;12043:4;12040:1;12033:15;12060:233;12099:3;12122:24;12140:5;12122:24;:::i;:::-;12113:33;;12168:66;12161:5;12158:77;12155:103;;12238:18;;:::i;:::-;12155:103;12285:1;12278:5;12274:13;12267:20;;12060:233;;;:::o;12299:305::-;12339:3;12358:20;12376:1;12358:20;:::i;:::-;12353:25;;12392:20;12410:1;12392:20;:::i;:::-;12387:25;;12546:1;12478:66;12474:74;12471:1;12468:81;12465:107;;;12552:18;;:::i;:::-;12465:107;12596:1;12593;12589:9;12582:16;;12299:305;;;;:::o;12610:143::-;12667:5;12698:6;12692:13;12683:22;;12714:33;12741:5;12714:33;:::i;:::-;12610:143;;;;:::o;12759:351::-;12829:6;12878:2;12866:9;12857:7;12853:23;12849:32;12846:119;;;12884:79;;:::i;:::-;12846:119;13004:1;13029:64;13085:7;13076:6;13065:9;13061:22;13029:64;:::i;:::-;13019:74;;12975:128;12759:351;;;;:::o;13116:348::-;13156:7;13179:20;13197:1;13179:20;:::i;:::-;13174:25;;13213:20;13231:1;13213:20;:::i;:::-;13208:25;;13401:1;13333:66;13329:74;13326:1;13323:81;13318:1;13311:9;13304:17;13300:105;13297:131;;;13408:18;;:::i;:::-;13297:131;13456:1;13453;13449:9;13438:20;;13116:348;;;;:::o;13470:180::-;13518:77;13515:1;13508:88;13615:4;13612:1;13605:15;13639:4;13636:1;13629:15;13656:185;13696:1;13713:20;13731:1;13713:20;:::i;:::-;13708:25;;13747:20;13765:1;13747:20;:::i;:::-;13742:25;;13786:1;13776:35;;13791:18;;:::i;:::-;13776:35;13833:1;13830;13826:9;13821:14;;13656:185;;;;:::o;13847:134::-;13905:9;13938:37;13969:5;13938:37;:::i;:::-;13925:50;;13847:134;;;:::o;13987:147::-;14082:45;14121:5;14082:45;:::i;:::-;14077:3;14070:58;13987:147;;:::o;14140:348::-;14269:4;14307:2;14296:9;14292:18;14284:26;;14320:79;14396:1;14385:9;14381:17;14372:6;14320:79;:::i;:::-;14409:72;14477:2;14466:9;14462:18;14453:6;14409:72;:::i;:::-;14140:348;;;;;:::o;14494:116::-;14564:21;14579:5;14564:21;:::i;:::-;14557:5;14554:32;14544:60;;14600:1;14597;14590:12;14544:60;14494:116;:::o;14616:137::-;14670:5;14701:6;14695:13;14686:22;;14717:30;14741:5;14717:30;:::i;:::-;14616:137;;;;:::o;14759:345::-;14826:6;14875:2;14863:9;14854:7;14850:23;14846:32;14843:119;;;14881:79;;:::i;:::-;14843:119;15001:1;15026:61;15079:7;15070:6;15059:9;15055:22;15026:61;:::i;:::-;15016:71;;14972:125;14759:345;;;;:::o;15110:167::-;15250:19;15246:1;15238:6;15234:14;15227:43;15110:167;:::o;15283:366::-;15425:3;15446:67;15510:2;15505:3;15446:67;:::i;:::-;15439:74;;15522:93;15611:3;15522:93;:::i;:::-;15640:2;15635:3;15631:12;15624:19;;15283:366;;;:::o;15655:419::-;15821:4;15859:2;15848:9;15844:18;15836:26;;15908:9;15902:4;15898:20;15894:1;15883:9;15879:17;15872:47;15936:131;16062:4;15936:131;:::i;:::-;15928:139;;15655:419;;;:::o;16080:168::-;16220:20;16216:1;16208:6;16204:14;16197:44;16080:168;:::o;16254:366::-;16396:3;16417:67;16481:2;16476:3;16417:67;:::i;:::-;16410:74;;16493:93;16582:3;16493:93;:::i;:::-;16611:2;16606:3;16602:12;16595:19;;16254:366;;;:::o;16626:419::-;16792:4;16830:2;16819:9;16815:18;16807:26;;16879:9;16873:4;16869:20;16865:1;16854:9;16850:17;16843:47;16907:131;17033:4;16907:131;:::i;:::-;16899:139;;16626:419;;;:::o;17051:167::-;17088:3;17111:22;17127:5;17111:22;:::i;:::-;17102:31;;17155:4;17148:5;17145:15;17142:41;;17163:18;;:::i;:::-;17142:41;17210:1;17203:5;17199:13;17192:20;;17051:167;;;:::o;17224:224::-;17364:34;17360:1;17352:6;17348:14;17341:58;17433:7;17428:2;17420:6;17416:15;17409:32;17224:224;:::o;17454:366::-;17596:3;17617:67;17681:2;17676:3;17617:67;:::i;:::-;17610:74;;17693:93;17782:3;17693:93;:::i;:::-;17811:2;17806:3;17802:12;17795:19;;17454:366;;;:::o;17826:419::-;17992:4;18030:2;18019:9;18015:18;18007:26;;18079:9;18073:4;18069:20;18065:1;18054:9;18050:17;18043:47;18107:131;18233:4;18107:131;:::i;:::-;18099:139;;17826:419;;;:::o;18251:191::-;18291:4;18311:20;18329:1;18311:20;:::i;:::-;18306:25;;18345:20;18363:1;18345:20;:::i;:::-;18340:25;;18384:1;18381;18378:8;18375:34;;;18389:18;;:::i;:::-;18375:34;18434:1;18431;18427:9;18419:17;;18251:191;;;;:::o;18448:143::-;18505:5;18536:6;18530:13;18521:22;;18552:33;18579:5;18552:33;:::i;:::-;18448:143;;;;:::o;18597:351::-;18667:6;18716:2;18704:9;18695:7;18691:23;18687:32;18684:119;;;18722:79;;:::i;:::-;18684:119;18842:1;18867:64;18923:7;18914:6;18903:9;18899:22;18867:64;:::i;:::-;18857:74;;18813:128;18597:351;;;;:::o;18954:85::-;18999:7;19028:5;19017:16;;18954:85;;;:::o;19045:158::-;19103:9;19136:61;19154:42;19163:32;19189:5;19163:32;:::i;:::-;19154:42;:::i;:::-;19136:61;:::i;:::-;19123:74;;19045:158;;;:::o;19209:147::-;19304:45;19343:5;19304:45;:::i;:::-;19299:3;19292:58;19209:147;;:::o;19362:114::-;19429:6;19463:5;19457:12;19447:22;;19362:114;;;:::o;19482:184::-;19581:11;19615:6;19610:3;19603:19;19655:4;19650:3;19646:14;19631:29;;19482:184;;;;:::o;19672:132::-;19739:4;19762:3;19754:11;;19792:4;19787:3;19783:14;19775:22;;19672:132;;;:::o;19810:108::-;19887:24;19905:5;19887:24;:::i;:::-;19882:3;19875:37;19810:108;;:::o;19924:179::-;19993:10;20014:46;20056:3;20048:6;20014:46;:::i;:::-;20092:4;20087:3;20083:14;20069:28;;19924:179;;;;:::o;20109:113::-;20179:4;20211;20206:3;20202:14;20194:22;;20109:113;;;:::o;20258:732::-;20377:3;20406:54;20454:5;20406:54;:::i;:::-;20476:86;20555:6;20550:3;20476:86;:::i;:::-;20469:93;;20586:56;20636:5;20586:56;:::i;:::-;20665:7;20696:1;20681:284;20706:6;20703:1;20700:13;20681:284;;;20782:6;20776:13;20809:63;20868:3;20853:13;20809:63;:::i;:::-;20802:70;;20895:60;20948:6;20895:60;:::i;:::-;20885:70;;20741:224;20728:1;20725;20721:9;20716:14;;20681:284;;;20685:14;20981:3;20974:10;;20382:608;;;20258:732;;;;:::o;20996:831::-;21259:4;21297:3;21286:9;21282:19;21274:27;;21311:71;21379:1;21368:9;21364:17;21355:6;21311:71;:::i;:::-;21392:80;21468:2;21457:9;21453:18;21444:6;21392:80;:::i;:::-;21519:9;21513:4;21509:20;21504:2;21493:9;21489:18;21482:48;21547:108;21650:4;21641:6;21547:108;:::i;:::-;21539:116;;21665:72;21733:2;21722:9;21718:18;21709:6;21665:72;:::i;:::-;21747:73;21815:3;21804:9;21800:19;21791:6;21747:73;:::i;:::-;20996:831;;;;;;;;:::o

Swarm Source

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