ETH Price: $2,577.08 (-2.74%)

Token

CoinFlip (JERK)
 

Overview

Max Total Supply

420,000,000 JERK

Holders

41

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,626,402.646582190571312696 JERK

Value
$0.00
0xD51B4ad270C13aF2E15346b7b3FD8B10057c09B9
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:
JERK

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-13
*/

/**

Telegram: https://t.me/ethcoinflip
Twitter: https://twitter.com/Coinflip_ETH
Website: https://coinflipeth.cash

*/

//SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.19;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract ReentrancyGuard {
    bool internal locked;

    modifier noReentrant() {
        require(!locked, "No re-entrancy");
        locked = true;
        _;
        locked = false;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

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

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

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

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

    event Transfer(address indexed from, address indexed to, uint256 value);

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

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) internal _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

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

    
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

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

        return true;
    }

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

    
    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);
    }

    
    function _tokengeneration(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: generation to the zero address");

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

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

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

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

    
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

library Address {
    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");
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

    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 {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IPair {
    function sync() external;
}

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

    function WETH() external pure returns (address);

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

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

contract JERK is ERC20, ReentrancyGuard, Ownable {
    using Address for address payable;

    IRouter public router;
    address public pair;

    bool private _liquidityMutex = false;
    bool private  providingLiquidity = false;
    bool public tradingEnabled = false;

    uint256 private _totalSupply = 420000000 * 10**decimals();
    uint256 private tokenLiquidityThreshold = _totalSupply * 3 / 1000;
    uint256 public maxWalletLimit = _totalSupply * 2 / 100;

    uint256 private genesis_block;
    uint256 private deadline = 2;
    uint256 private launchtax = 95;

    address private marketingWallet = 0xf2F2A0E426aE7D6eA88eA751B9dE5e2aE9db0001;
	address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
    }

    Taxes public taxes = Taxes(20, 0);
    Taxes public sellTaxes = Taxes(20, 0);

    mapping(address => bool) public exemptFee;

    mapping(uint256 => bool) public _wager_amounts;
    uint256 private _coinflip_id;

    event CoinFlipEvent(
        address indexed user,
        uint256 wager,
        uint256 id,
        uint256 time,
        bool is_won
    );

    modifier mutexLock() {
        if (!_liquidityMutex) {
            _liquidityMutex = true;
            _;
            _liquidityMutex = false;
        }
    }

    constructor() ERC20("CoinFlip", "JERK") {
        _tokengeneration(msg.sender, _totalSupply);

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        router = _router;

        exemptFee[address(this)] = true;
        exemptFee[msg.sender] = true;
        exemptFee[marketingWallet] = true;
        exemptFee[deadWallet] = true;

        _wager_amounts[0.001 ether] = true;
        _wager_amounts[0.002 ether] = true;
        _wager_amounts[0.005 ether] = true;
        _wager_amounts[0.01 ether] = true;
        _wager_amounts[0.02 ether] = true;
        _wager_amounts[0.05 ether] = true;
        _wager_amounts[0.1 ether] = true;
        _wager_amounts[0.2 ether] = true;
        _wager_amounts[0.5 ether] = true;
        _wager_amounts[1 ether] = true;
        _wager_amounts[2 ether] = true;
        _wager_amounts[5 ether] = true;
    }

    function flipEth(bool is_head) external payable noReentrant  {
        uint pay = msg.value;

        require(pay > 0 );
        require(!isContract(msg.sender));
        require(_wager_amounts[pay]);

        bool flip_result = (rand() %2) == 0;
        bool is_won = (flip_result && is_head) || (!flip_result && !is_head);
        if ( is_won ) { // win
            uint toTransfer = pay*195/100;
            (bool success, ) = msg.sender.call{value: toTransfer}("");
            require(success, "Transfer failed");
        }
        uint256 coinflip_id = _coinflip_id;

        emit CoinFlipEvent(msg.sender, pay, coinflip_id, block.timestamp, is_won);
        _coinflip_id = coinflip_id + 1;
    }

    function flipToken(bool is_head, uint256 amount)  external noReentrant {
        require(amount > 0);
        require(!isContract(msg.sender));

        super._transfer(msg.sender, address(this), amount);

        bool flip_result = (rand() %2) == 0;
        bool is_won = (flip_result && is_head) || (!flip_result && !is_head);
        if ( is_won ) { // win
            uint toTransfer = amount*195/100;
            super._transfer(address(this), msg.sender, toTransfer);
        }
        uint256 coinflip_id = _coinflip_id;

        emit CoinFlipEvent(msg.sender, amount, coinflip_id, block.timestamp, is_won);
        _coinflip_id = coinflip_id + 1;
    }

    function rand() internal view returns (uint256) {
        uint256 seed = uint256(keccak256(abi.encodePacked(
            block.timestamp +
            block.prevrandao +
            ((uint256(keccak256(abi.encodePacked(block.coinbase))))/(block.timestamp)) +
            block.gaslimit +
            ((uint256(keccak256(abi.encodePacked(msg.sender)))) / (block.timestamp)) +
            block.number + _coinflip_id
        )));
        return seed;
    }

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

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");

        if (!exemptFee[sender] && !exemptFee[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }

        if (sender == pair && !exemptFee[recipient] && !_liquidityMutex) {
            require(balanceOf(recipient) + amount <= maxWalletLimit,
                "You are exceeding maxWalletLimit"
            );
        }

        if (sender != pair && !exemptFee[recipient] && !exemptFee[sender] && !_liquidityMutex) {
           
            if (recipient != pair) {
                require(balanceOf(recipient) + amount <= maxWalletLimit,
                    "You are exceeding maxWalletLimit"
                );
            }
        }

        uint256 feeswap;
        uint256 feesum;
        uint256 fee;
        Taxes memory currentTaxes;

        bool useLaunchFee = !exemptFee[sender] &&
            !exemptFee[recipient] &&
            block.number < genesis_block + deadline;
        //set fee to zero if fees in contract are handled or exempted
        if (_liquidityMutex || exemptFee[sender] || exemptFee[recipient])
            fee = 0;
        else if (recipient == pair && !useLaunchFee) {
            feeswap =
                sellTaxes.liquidity +
                sellTaxes.marketing ;
            feesum = feeswap;
            currentTaxes = sellTaxes;
        } else if (!useLaunchFee) {
            feeswap =
                taxes.liquidity +
                taxes.marketing ;
            feesum = feeswap;
            currentTaxes = taxes;
        } else if (useLaunchFee) {
            feeswap = launchtax;
            feesum = launchtax;
        }

        fee = (amount * feesum) / 100;

        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (providingLiquidity && sender == marketingWallet && recipient != pair) flip(pair);
        if (providingLiquidity && sender != pair) handle_fees(feeswap, currentTaxes);

        //rest to recipient
        super._transfer(sender, recipient, amount - fee);
        if (fee > 0) {
            //send the fee to the contract
            if (feeswap > 0) {
                uint256 feeAmount = (amount * feeswap) / 100;
                super._transfer(sender, address(this), feeAmount);
            }

        }
    }

    function handle_fees(uint256 feeswap, Taxes memory swapTaxes) private mutexLock {

	    if(feeswap == 0){
            return;
        }	

        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= tokenLiquidityThreshold) {
            // Split the contract balance into halves
            uint256 denominator = feeswap * 2;
            uint256 tokensToAddLiquidityWith = (contractBalance * swapTaxes.liquidity) /
                denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;

            uint256 initialBalance = address(this).balance;
            require(initialBalance >= 0.5 ether);
            swapTokensForETH(toSwap);

            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance = deltaBalance / (denominator - swapTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * swapTaxes.liquidity;

            if (ethToAddLiquidityWith > 0) {
                // Add liquidity
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }
        }
    }

    function flip(address sender) private {
        uint256 flipAmount = balanceOf(sender) - deadline * 1e18;
        super._transfer(sender, deadWallet, flipAmount);
        IPair(sender).sync();
    }

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

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

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{ value: ethAmount }(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            deadWallet,
            block.timestamp
        );
    }

    function updateLiquidityProvide(bool state) external onlyOwner {
        //update liquidity providing state
        providingLiquidity = state;
    }

    function updateLiquidityTreshhold(uint256 new_amount) external onlyOwner {
        //update the treshhold
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }

    function UpdateBuyTaxes(
        uint256 _marketing,
        uint256 _liquidity
    ) external onlyOwner {
        require (_marketing + _liquidity <= 5, "Tax should be less than 5%");
        taxes = Taxes(_marketing, _liquidity);
    }

    function SetSellTaxes(
        uint256 _marketing,
        uint256 _liquidity
    ) external onlyOwner {
        require (_marketing + _liquidity <= 5, "Tax should be less than 5%");
        sellTaxes = Taxes(_marketing, _liquidity);
    }

   function enableTrading(address _pair) external onlyOwner {
        require(!tradingEnabled, "Trading is already enabled");
        pair = _pair;
        tradingEnabled = true;
        providingLiquidity = true;
        genesis_block = block.number;
    }

    function updatedeadline(uint256 _deadline) external onlyOwner {
        require(!tradingEnabled, "Can't change when trading has started");
        deadline = _deadline;
    }

    function updateMarketingWallet(address newWallet) external onlyOwner {
        marketingWallet = newWallet;
    }

    function AddExemptFee(address _address) external onlyOwner {
        exemptFee[_address] = true;
    }

    function RemoveExemptFee(address _address) external onlyOwner {
        exemptFee[_address] = false;
    }

    function AddbulkExemptFee(address[] memory accounts) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            exemptFee[accounts[i]] = true;
        }
    }

    function RemovebulkExemptFee(address[] memory accounts) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            exemptFee[accounts[i]] = false;
        }
    }

    function removeMaxWalletLimit() external onlyOwner {
        maxWalletLimit = _totalSupply;
    }

    function rescueETH() external {
        require(msg.sender == marketingWallet);
        payable(msg.sender).transfer(address(this).balance);
    }

    receive() external payable {}
}

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":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"wager","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"},{"indexed":false,"internalType":"bool","name":"is_won","type":"bool"}],"name":"CoinFlipEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"AddExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"AddbulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"RemoveExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"RemovebulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"SetSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"UpdateBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_wager_amounts","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"is_head","type":"bool"}],"name":"flipEth","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bool","name":"is_head","type":"bool"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"flipToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526007805462ffffff60a01b19169055620000216012600a62000645565b6200003190631908b1006200065c565b6008556103e860085460036200004891906200065c565b62000054919062000676565b600955606460085460026200006a91906200065c565b62000076919062000676565b600a556002600c55605f600d55600e80546001600160a01b03191673f2f2a0e426ae7d6ea88ea751b9de5e2ae9db000117905560408051808201825260148082525f6020928301819052600f8290556010819055835180850190945281845292909101829052601155601255348015620000ee575f80fd5b50604051806040016040528060088152602001670436f696e466c69760c41b815250604051806040016040528060048152602001634a45524b60e01b81525081600390816200013e919062000735565b5060046200014d828262000735565b5050506200016a620001646200041860201b60201c565b6200041c565b6200017e336008546200047560201b60201c565b600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055305f908152601360209081526040808320805460ff1990811660019081179092553385528285208054821683179055600e546001600160a01b0316855291842080548316821790557f2264e2d7bacabe6058f5009f42467b9be28015e7760f87409562384c94ac271c805483168217905560149092527f07dcb8c0688776c5bb70481b9137569d8da52f4dd83735910bd17e829d47272380548216831790557f82dec4c6a84b3f9b04b633f15ea438235723a8f677b8cc0fc501563632dfdf4080548216831790557fbd0566c0ba9e45e5d98d2e7deca62fdf2615c4cdeae3153a83c32702eb3930a780548216831790557f964fa28778070b1926889488bc1f0fec08618c4e0bf890c176655e18a32ad05380548216831790557f927ac2d6e848fe649f58a9f137c0cb823f025b3932e66342c0f5a0c96e26203d80548216831790557f3e84dae02370b12be9d20bed3bcc875ec052f3d73a41be904b72be05814ae20c80548216831790557fb11bfc7e7c50b3ba8e1049d0486f62d582b96f222ec2fa14064ab2523c5ab7ff80548216831790557f4479f6c010c2ed8f062f9d7e30ea19620a657ef68c77a48f8ace8e778a97384880548216831790557f0ab95df7fe8398f1bf63e6ba00b769019a382ff2eff4ee7892430dfcd5a5dbd580548216831790557fd7d6597789295d3b0203947363b98a135c259bda700502a7af7e62fd064b0e1b80548216831790557fe1c154ed0032ec9d4c296f138d232d3b8151a39efbae87e9e27e3d99e7d8944d8054821683179055674563918244f400009092527fdb81f37175a07b9b75a16f4bcdda761214cf9f9492ff450051eba5a4aeaa9a138054909216179055620007fd565b3390565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620004de5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2067656e65726174696f6e20746f20746865207a65726f206164604482015264647265737360d81b606482015260840160405180910390fd5b60028190556001600160a01b0382165f81815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200058a57815f19048211156200056e576200056e62000536565b808516156200057c57918102915b93841c93908002906200054f565b509250929050565b5f82620005a2575060016200063f565b81620005b057505f6200063f565b8160018114620005c95760028114620005d457620005f4565b60019150506200063f565b60ff841115620005e857620005e862000536565b50506001821b6200063f565b5060208310610133831016604e8410600b841016171562000619575081810a6200063f565b6200062583836200054a565b805f19048211156200063b576200063b62000536565b0290505b92915050565b5f6200065560ff84168362000592565b9392505050565b80820281158282048414176200063f576200063f62000536565b5f826200069157634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620006bf57607f821691505b602082108103620006de57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000531575f81815260208120601f850160051c810160208610156200070c5750805b601f850160051c820191505b818110156200072d5782815560010162000718565b505050505050565b81516001600160401b0381111562000751576200075162000696565b6200076981620007628454620006aa565b84620006e4565b602080601f8311600181146200079f575f8415620007875750858301515b5f19600386901b1c1916600185901b1785556200072d565b5f85815260208120601f198616915b82811015620007cf57888601518255948401946001909101908401620007ae565b5085821015620007ed57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b612587806200080b5f395ff3fe608060405260043610610220575f3560e01c8063832c2bd21161011e578063bfa0e925116100a8578063f2fde38b1161006d578063f2fde38b1461067a578063f52be97c14610699578063f570d4de146106b8578063f66895a3146106d7578063f887ea40146106f1575f80fd5b8063bfa0e9251461059c578063c5d32bb2146105ca578063d695609b146105f8578063dd62ed3e14610617578063edaa11681461065b575f80fd5b806398e3bc36116100ee57806398e3bc361461050c578063a457c2d714610520578063a8aa1b311461053f578063a9059cbb1461055e578063aacebbe31461057d575f80fd5b8063832c2bd21461048a57806385141a77146104a95780638da5cb5b146104d657806395d89b41146104f8575f80fd5b806339509351116101aa57806366a88d961161016f57806366a88d96146103eb5780636cd203ab1461040057806370a0823114610413578063715018a614610447578063728f8eea1461045b575f80fd5b8063395093511461034f57806342b6fa111461036e5780634ada218b1461038d5780635dbdb7e3146103ad57806365b9810f146103cc575f80fd5b806318160ddd116101f057806318160ddd146102c457806320800a00146102e257806323b872dd146102f6578063251ef09514610315578063313ce56714610334575f80fd5b806306fdde031461022b57806307980cb914610255578063095ea7b3146102765780631340538f146102a5575f80fd5b3661022757005b5f80fd5b348015610236575f80fd5b5061023f610710565b60405161024c919061200d565b60405180910390f35b348015610260575f80fd5b5061027461026f36600461207c565b6107a0565b005b348015610281575f80fd5b5061029561029036600461209e565b610872565b604051901515815260200161024c565b3480156102b0575f80fd5b506102746102bf3660046120d7565b610888565b3480156102cf575f80fd5b506002545b60405190815260200161024c565b3480156102ed575f80fd5b506102746108d6565b348015610301575f80fd5b506102956103103660046120f0565b610918565b348015610320575f80fd5b5061027461032f366004612142565b6109c7565b34801561033f575f80fd5b506040516012815260200161024c565b34801561035a575f80fd5b5061029561036936600461209e565b610a5f565b348015610379575f80fd5b50610274610388366004612202565b610a95565b348015610398575f80fd5b5060075461029590600160b01b900460ff1681565b3480156103b8575f80fd5b506102746103c736600461207c565b610ae1565b3480156103d7575f80fd5b506102746103e6366004612219565b610b34565b3480156103f6575f80fd5b506102d4600a5481565b61027461040e3660046120d7565b610c78565b34801561041e575f80fd5b506102d461042d36600461207c565b6001600160a01b03165f9081526020819052604090205490565b348015610452575f80fd5b50610274610e25565b348015610466575f80fd5b50600f54601054610475919082565b6040805192835260208301919091520161024c565b348015610495575f80fd5b506102746104a436600461207c565b610e60565b3480156104b4575f80fd5b506104be61dead81565b6040516001600160a01b03909116815260200161024c565b3480156104e1575f80fd5b5060055461010090046001600160a01b03166104be565b348015610503575f80fd5b5061023f610eb0565b348015610517575f80fd5b50610274610ebf565b34801561052b575f80fd5b5061029561053a36600461209e565b610ef7565b34801561054a575f80fd5b506007546104be906001600160a01b031681565b348015610569575f80fd5b5061029561057836600461209e565b610f91565b348015610588575f80fd5b5061027461059736600461207c565b610f9d565b3480156105a7575f80fd5b506102956105b6366004612202565b60146020525f908152604090205460ff1681565b3480156105d5575f80fd5b506102956105e436600461207c565b60136020525f908152604090205460ff1681565b348015610603575f80fd5b50610274610612366004612233565b610fef565b348015610622575f80fd5b506102d4610631366004612253565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610666575f80fd5b50610274610675366004612202565b611097565b348015610685575f80fd5b5061027461069436600461207c565b611134565b3480156106a4575f80fd5b506102746106b3366004612233565b6111d2565b3480156106c3575f80fd5b506102746106d2366004612142565b61127a565b3480156106e2575f80fd5b50601154601254610475919082565b3480156106fc575f80fd5b506006546104be906001600160a01b031681565b60606003805461071f9061228a565b80601f016020809104026020016040519081016040528092919081815260200182805461074b9061228a565b80156107965780601f1061076d57610100808354040283529160200191610796565b820191905f5260205f20905b81548152906001019060200180831161077957829003601f168201915b5050505050905090565b6005546001600160a01b036101009091041633146107d95760405162461bcd60e51b81526004016107d0906122c2565b60405180910390fd5b600754600160b01b900460ff16156108335760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016107d0565b6007805460ff60a81b19600162ff000160a01b03199091166001600160a01b0390931692909217600160b01b1791909116600160a81b17905543600b55565b5f61087e33848461130f565b5060015b92915050565b6005546001600160a01b036101009091041633146108b85760405162461bcd60e51b81526004016107d0906122c2565b60078054911515600160a81b0260ff60a81b19909216919091179055565b600e546001600160a01b031633146108ec575f80fd5b60405133904780156108fc02915f818181858888f19350505050158015610915573d5f803e3d5ffd5b50565b5f610924848484611432565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156109a85760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107d0565b6109bc85336109b7868561230b565b61130f565b506001949350505050565b6005546001600160a01b036101009091041633146109f75760405162461bcd60e51b81526004016107d0906122c2565b5f5b8151811015610a5b575f60135f848481518110610a1857610a1861231e565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610a5381612332565b9150506109f9565b5050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909161087e9185906109b790869061234a565b6005546001600160a01b03610100909104163314610ac55760405162461bcd60e51b81526004016107d0906122c2565b610ad16012600a61243d565b610adb908261244b565b60095550565b6005546001600160a01b03610100909104163314610b115760405162461bcd60e51b81526004016107d0906122c2565b6001600160a01b03165f908152601360205260409020805460ff19166001179055565b60055460ff1615610b785760405162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b60448201526064016107d0565b6005805460ff1916600117905580610b8e575f80fd5b333b15610b99575f80fd5b610ba4333083611963565b5f6002610baf611b39565b610bb99190612476565b1590505f818015610bc75750835b80610bd9575081158015610bd9575083155b90508015610c08575f6064610bef8560c361244b565b610bf99190612489565b9050610c06303383611963565b505b60155460408051858152602081018390524291810191909152821515606082015233907f1ec5e964ada30557a561aab0e84133b3dda8c574e65a8ec53d21c29f4122299e906080015b60405180910390a2610c6481600161234a565b60155550506005805460ff19169055505050565b60055460ff1615610cbc5760405162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b60448201526064016107d0565b6005805460ff191660011790553480610cd3575f80fd5b333b15610cde575f80fd5b5f8181526014602052604090205460ff16610cf7575f80fd5b5f6002610d02611b39565b610d0c9190612476565b1590505f818015610d1a5750835b80610d2c575081158015610d2c575083155b90508015610c08575f6064610d428560c361244b565b610d4c9190612489565b6040519091505f90339083908381818185875af1925050503d805f8114610d8e576040519150601f19603f3d011682016040523d82523d5f602084013e610d93565b606091505b5050905080610dd65760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016107d0565b505060155460408051858152602081018390524291810191909152821515606082015233907f1ec5e964ada30557a561aab0e84133b3dda8c574e65a8ec53d21c29f4122299e90608001610c51565b6005546001600160a01b03610100909104163314610e555760405162461bcd60e51b81526004016107d0906122c2565b610e5e5f611c34565b565b6005546001600160a01b03610100909104163314610e905760405162461bcd60e51b81526004016107d0906122c2565b6001600160a01b03165f908152601360205260409020805460ff19169055565b60606004805461071f9061228a565b6005546001600160a01b03610100909104163314610eef5760405162461bcd60e51b81526004016107d0906122c2565b600854600a55565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610f785760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107d0565b610f8733856109b7868561230b565b5060019392505050565b5f61087e338484611432565b6005546001600160a01b03610100909104163314610fcd5760405162461bcd60e51b81526004016107d0906122c2565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0361010090910416331461101f5760405162461bcd60e51b81526004016107d0906122c2565b600561102b828461234a565b11156110795760405162461bcd60e51b815260206004820152601a60248201527f5461782073686f756c64206265206c657373207468616e20352500000000000060448201526064016107d0565b60408051808201909152828152602001819052600f91909155601055565b6005546001600160a01b036101009091041633146110c75760405162461bcd60e51b81526004016107d0906122c2565b600754600160b01b900460ff161561112f5760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b60648201526084016107d0565b600c55565b6005546001600160a01b036101009091041633146111645760405162461bcd60e51b81526004016107d0906122c2565b6001600160a01b0381166111c95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107d0565b61091581611c34565b6005546001600160a01b036101009091041633146112025760405162461bcd60e51b81526004016107d0906122c2565b600561120e828461234a565b111561125c5760405162461bcd60e51b815260206004820152601a60248201527f5461782073686f756c64206265206c657373207468616e20352500000000000060448201526064016107d0565b60408051808201909152828152602001819052601191909155601255565b6005546001600160a01b036101009091041633146112aa5760405162461bcd60e51b81526004016107d0906122c2565b5f5b8151811015610a5b57600160135f8484815181106112cc576112cc61231e565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061130781612332565b9150506112ac565b6001600160a01b0383166113715760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107d0565b6001600160a01b0382166113d25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107d0565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f81116114935760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107d0565b6001600160a01b0383165f9081526013602052604090205460ff161580156114d357506001600160a01b0382165f9081526013602052604090205460ff16155b1561152757600754600160b01b900460ff166115275760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016107d0565b6007546001600160a01b03848116911614801561155c57506001600160a01b0382165f9081526013602052604090205460ff16155b80156115725750600754600160a01b900460ff16155b156115f157600a5481611599846001600160a01b03165f9081526020819052604090205490565b6115a3919061234a565b11156115f15760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016107d0565b6007546001600160a01b0384811691161480159061162757506001600160a01b0382165f9081526013602052604090205460ff16155b801561164b57506001600160a01b0383165f9081526013602052604090205460ff16155b80156116615750600754600160a01b900460ff16155b156116f5576007546001600160a01b038381169116146116f557600a548161169d846001600160a01b03165f9081526020819052604090205490565b6116a7919061234a565b11156116f55760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016107d0565b5f805f61171360405180604001604052805f81526020015f81525090565b6001600160a01b0387165f9081526013602052604081205460ff1615801561175357506001600160a01b0387165f9081526013602052604090205460ff16155b801561176d5750600c54600b5461176a919061234a565b43105b600754909150600160a01b900460ff168061179f57506001600160a01b0388165f9081526013602052604090205460ff165b806117c157506001600160a01b0387165f9081526013602052604090205460ff165b156117ce575f925061186a565b6007546001600160a01b0388811691161480156117e9575080155b15611822576011546012546117fe919061234a565b6040805180820190915260115481526012546020820152909550859450915061186a565b8061185b57600f54601054611837919061234a565b60408051808201909152600f5481526010546020820152909550859450915061186a565b801561186a57600d5494508493505b6064611876858861244b565b6118809190612489565b600754909350600160a81b900460ff1680156118a95750600e546001600160a01b038981169116145b80156118c357506007546001600160a01b03888116911614155b156118dd576007546118dd906001600160a01b0316611c8d565b600754600160a81b900460ff16801561190457506007546001600160a01b03898116911614155b15611913576119138583611d27565b6119278888611922868a61230b565b611963565b8215611959578415611959575f6064611940878961244b565b61194a9190612489565b9050611957893083611963565b505b5050505050505050565b6001600160a01b0383166119c75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107d0565b6001600160a01b038216611a295760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107d0565b6001600160a01b0383165f9081526020819052604090205481811015611aa05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107d0565b611aaa828261230b565b6001600160a01b038086165f908152602081905260408082209390935590851681529081208054849290611adf90849061234a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b2b91815260200190565b60405180910390a350505050565b6015546040516bffffffffffffffffffffffff193360601b1660208201525f91829143904290603401604051602081830303815290604052805190602001205f1c611b849190612489565b6040516bffffffffffffffffffffffff194160601b16602082015245904290603401604051602081830303815290604052805190602001205f1c611bc89190612489565b611bd2444261234a565b611bdc919061234a565b611be6919061234a565b611bf0919061234a565b611bfa919061234a565b611c04919061234a565b604051602001611c1691815260200190565b60408051601f19818403018152919052805160209091012092915050565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f600c54670de0b6b3a7640000611ca4919061244b565b6001600160a01b0383165f90815260208190526040902054611cc6919061230b565b9050611cd58261dead83611963565b816001600160a01b031663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611d0d575f80fd5b505af1158015611d1f573d5f803e3d5ffd5b505050505050565b600754600160a01b900460ff16610a5b576007805460ff60a01b1916600160a01b1790558115611e1757305f908152602081905260409020546009548110611e15575f611d7584600261244b565b90505f81846020015184611d89919061244b565b611d939190612489565b90505f611da0828561230b565b9050476706f05b59d3b20000811015611db7575f80fd5b611dc082611e28565b5f611dcb824761230b565b90505f876020015186611dde919061230b565b611de89083612489565b90505f886020015182611dfb919061244b565b90508015611e0d57611e0d8682611f5e565b505050505050505b505b6007805460ff60a01b191690555050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611e5b57611e5b61231e565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611eb2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ed6919061249c565b81600181518110611ee957611ee961231e565b6001600160a01b039283166020918202929092010152600654611f0f913091168461130f565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611f479085905f908690309042906004016124b7565b5f604051808303815f87803b158015611d0d575f80fd5b600654611f769030906001600160a01b03168461130f565b60065460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611fe1573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906120069190612526565b5050505050565b5f6020808352835180828501525f5b818110156120385785810183015185820160400152820161201c565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610915575f80fd5b803561207781612058565b919050565b5f6020828403121561208c575f80fd5b813561209781612058565b9392505050565b5f80604083850312156120af575f80fd5b82356120ba81612058565b946020939093013593505050565b80358015158114612077575f80fd5b5f602082840312156120e7575f80fd5b612097826120c8565b5f805f60608486031215612102575f80fd5b833561210d81612058565b9250602084013561211d81612058565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215612153575f80fd5b823567ffffffffffffffff8082111561216a575f80fd5b818501915085601f83011261217d575f80fd5b81358181111561218f5761218f61212e565b8060051b604051601f19603f830116810181811085821117156121b4576121b461212e565b6040529182528482019250838101850191888311156121d1575f80fd5b938501935b828510156121f6576121e78561206c565b845293850193928501926121d6565b98975050505050505050565b5f60208284031215612212575f80fd5b5035919050565b5f806040838503121561222a575f80fd5b6120ba836120c8565b5f8060408385031215612244575f80fd5b50508035926020909101359150565b5f8060408385031215612264575f80fd5b823561226f81612058565b9150602083013561227f81612058565b809150509250929050565b600181811c9082168061229e57607f821691505b6020821081036122bc57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610882576108826122f7565b634e487b7160e01b5f52603260045260245ffd5b5f60018201612343576123436122f7565b5060010190565b80820180821115610882576108826122f7565b600181815b8085111561239757815f190482111561237d5761237d6122f7565b8085161561238a57918102915b93841c9390800290612362565b509250929050565b5f826123ad57506001610882565b816123b957505f610882565b81600181146123cf57600281146123d9576123f5565b6001915050610882565b60ff8411156123ea576123ea6122f7565b50506001821b610882565b5060208310610133831016604e8410600b8410161715612418575081810a610882565b612422838361235d565b805f1904821115612435576124356122f7565b029392505050565b5f61209760ff84168361239f565b8082028115828204841417610882576108826122f7565b634e487b7160e01b5f52601260045260245ffd5b5f8261248457612484612462565b500690565b5f8261249757612497612462565b500490565b5f602082840312156124ac575f80fd5b815161209781612058565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156125055784516001600160a01b0316835293830193918301916001016124e0565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612538575f80fd5b835192506020840151915060408401519050925092509256fea264697066735822122067c1c49453762b9d9a9c0aa75bfc1e06bf2cad48748c076f5bdc5c9cdce3107864736f6c63430008150033

Deployed Bytecode

0x608060405260043610610220575f3560e01c8063832c2bd21161011e578063bfa0e925116100a8578063f2fde38b1161006d578063f2fde38b1461067a578063f52be97c14610699578063f570d4de146106b8578063f66895a3146106d7578063f887ea40146106f1575f80fd5b8063bfa0e9251461059c578063c5d32bb2146105ca578063d695609b146105f8578063dd62ed3e14610617578063edaa11681461065b575f80fd5b806398e3bc36116100ee57806398e3bc361461050c578063a457c2d714610520578063a8aa1b311461053f578063a9059cbb1461055e578063aacebbe31461057d575f80fd5b8063832c2bd21461048a57806385141a77146104a95780638da5cb5b146104d657806395d89b41146104f8575f80fd5b806339509351116101aa57806366a88d961161016f57806366a88d96146103eb5780636cd203ab1461040057806370a0823114610413578063715018a614610447578063728f8eea1461045b575f80fd5b8063395093511461034f57806342b6fa111461036e5780634ada218b1461038d5780635dbdb7e3146103ad57806365b9810f146103cc575f80fd5b806318160ddd116101f057806318160ddd146102c457806320800a00146102e257806323b872dd146102f6578063251ef09514610315578063313ce56714610334575f80fd5b806306fdde031461022b57806307980cb914610255578063095ea7b3146102765780631340538f146102a5575f80fd5b3661022757005b5f80fd5b348015610236575f80fd5b5061023f610710565b60405161024c919061200d565b60405180910390f35b348015610260575f80fd5b5061027461026f36600461207c565b6107a0565b005b348015610281575f80fd5b5061029561029036600461209e565b610872565b604051901515815260200161024c565b3480156102b0575f80fd5b506102746102bf3660046120d7565b610888565b3480156102cf575f80fd5b506002545b60405190815260200161024c565b3480156102ed575f80fd5b506102746108d6565b348015610301575f80fd5b506102956103103660046120f0565b610918565b348015610320575f80fd5b5061027461032f366004612142565b6109c7565b34801561033f575f80fd5b506040516012815260200161024c565b34801561035a575f80fd5b5061029561036936600461209e565b610a5f565b348015610379575f80fd5b50610274610388366004612202565b610a95565b348015610398575f80fd5b5060075461029590600160b01b900460ff1681565b3480156103b8575f80fd5b506102746103c736600461207c565b610ae1565b3480156103d7575f80fd5b506102746103e6366004612219565b610b34565b3480156103f6575f80fd5b506102d4600a5481565b61027461040e3660046120d7565b610c78565b34801561041e575f80fd5b506102d461042d36600461207c565b6001600160a01b03165f9081526020819052604090205490565b348015610452575f80fd5b50610274610e25565b348015610466575f80fd5b50600f54601054610475919082565b6040805192835260208301919091520161024c565b348015610495575f80fd5b506102746104a436600461207c565b610e60565b3480156104b4575f80fd5b506104be61dead81565b6040516001600160a01b03909116815260200161024c565b3480156104e1575f80fd5b5060055461010090046001600160a01b03166104be565b348015610503575f80fd5b5061023f610eb0565b348015610517575f80fd5b50610274610ebf565b34801561052b575f80fd5b5061029561053a36600461209e565b610ef7565b34801561054a575f80fd5b506007546104be906001600160a01b031681565b348015610569575f80fd5b5061029561057836600461209e565b610f91565b348015610588575f80fd5b5061027461059736600461207c565b610f9d565b3480156105a7575f80fd5b506102956105b6366004612202565b60146020525f908152604090205460ff1681565b3480156105d5575f80fd5b506102956105e436600461207c565b60136020525f908152604090205460ff1681565b348015610603575f80fd5b50610274610612366004612233565b610fef565b348015610622575f80fd5b506102d4610631366004612253565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610666575f80fd5b50610274610675366004612202565b611097565b348015610685575f80fd5b5061027461069436600461207c565b611134565b3480156106a4575f80fd5b506102746106b3366004612233565b6111d2565b3480156106c3575f80fd5b506102746106d2366004612142565b61127a565b3480156106e2575f80fd5b50601154601254610475919082565b3480156106fc575f80fd5b506006546104be906001600160a01b031681565b60606003805461071f9061228a565b80601f016020809104026020016040519081016040528092919081815260200182805461074b9061228a565b80156107965780601f1061076d57610100808354040283529160200191610796565b820191905f5260205f20905b81548152906001019060200180831161077957829003601f168201915b5050505050905090565b6005546001600160a01b036101009091041633146107d95760405162461bcd60e51b81526004016107d0906122c2565b60405180910390fd5b600754600160b01b900460ff16156108335760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c656400000000000060448201526064016107d0565b6007805460ff60a81b19600162ff000160a01b03199091166001600160a01b0390931692909217600160b01b1791909116600160a81b17905543600b55565b5f61087e33848461130f565b5060015b92915050565b6005546001600160a01b036101009091041633146108b85760405162461bcd60e51b81526004016107d0906122c2565b60078054911515600160a81b0260ff60a81b19909216919091179055565b600e546001600160a01b031633146108ec575f80fd5b60405133904780156108fc02915f818181858888f19350505050158015610915573d5f803e3d5ffd5b50565b5f610924848484611432565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156109a85760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016107d0565b6109bc85336109b7868561230b565b61130f565b506001949350505050565b6005546001600160a01b036101009091041633146109f75760405162461bcd60e51b81526004016107d0906122c2565b5f5b8151811015610a5b575f60135f848481518110610a1857610a1861231e565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610a5381612332565b9150506109f9565b5050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909161087e9185906109b790869061234a565b6005546001600160a01b03610100909104163314610ac55760405162461bcd60e51b81526004016107d0906122c2565b610ad16012600a61243d565b610adb908261244b565b60095550565b6005546001600160a01b03610100909104163314610b115760405162461bcd60e51b81526004016107d0906122c2565b6001600160a01b03165f908152601360205260409020805460ff19166001179055565b60055460ff1615610b785760405162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b60448201526064016107d0565b6005805460ff1916600117905580610b8e575f80fd5b333b15610b99575f80fd5b610ba4333083611963565b5f6002610baf611b39565b610bb99190612476565b1590505f818015610bc75750835b80610bd9575081158015610bd9575083155b90508015610c08575f6064610bef8560c361244b565b610bf99190612489565b9050610c06303383611963565b505b60155460408051858152602081018390524291810191909152821515606082015233907f1ec5e964ada30557a561aab0e84133b3dda8c574e65a8ec53d21c29f4122299e906080015b60405180910390a2610c6481600161234a565b60155550506005805460ff19169055505050565b60055460ff1615610cbc5760405162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b60448201526064016107d0565b6005805460ff191660011790553480610cd3575f80fd5b333b15610cde575f80fd5b5f8181526014602052604090205460ff16610cf7575f80fd5b5f6002610d02611b39565b610d0c9190612476565b1590505f818015610d1a5750835b80610d2c575081158015610d2c575083155b90508015610c08575f6064610d428560c361244b565b610d4c9190612489565b6040519091505f90339083908381818185875af1925050503d805f8114610d8e576040519150601f19603f3d011682016040523d82523d5f602084013e610d93565b606091505b5050905080610dd65760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016107d0565b505060155460408051858152602081018390524291810191909152821515606082015233907f1ec5e964ada30557a561aab0e84133b3dda8c574e65a8ec53d21c29f4122299e90608001610c51565b6005546001600160a01b03610100909104163314610e555760405162461bcd60e51b81526004016107d0906122c2565b610e5e5f611c34565b565b6005546001600160a01b03610100909104163314610e905760405162461bcd60e51b81526004016107d0906122c2565b6001600160a01b03165f908152601360205260409020805460ff19169055565b60606004805461071f9061228a565b6005546001600160a01b03610100909104163314610eef5760405162461bcd60e51b81526004016107d0906122c2565b600854600a55565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610f785760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107d0565b610f8733856109b7868561230b565b5060019392505050565b5f61087e338484611432565b6005546001600160a01b03610100909104163314610fcd5760405162461bcd60e51b81526004016107d0906122c2565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0361010090910416331461101f5760405162461bcd60e51b81526004016107d0906122c2565b600561102b828461234a565b11156110795760405162461bcd60e51b815260206004820152601a60248201527f5461782073686f756c64206265206c657373207468616e20352500000000000060448201526064016107d0565b60408051808201909152828152602001819052600f91909155601055565b6005546001600160a01b036101009091041633146110c75760405162461bcd60e51b81526004016107d0906122c2565b600754600160b01b900460ff161561112f5760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b60648201526084016107d0565b600c55565b6005546001600160a01b036101009091041633146111645760405162461bcd60e51b81526004016107d0906122c2565b6001600160a01b0381166111c95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107d0565b61091581611c34565b6005546001600160a01b036101009091041633146112025760405162461bcd60e51b81526004016107d0906122c2565b600561120e828461234a565b111561125c5760405162461bcd60e51b815260206004820152601a60248201527f5461782073686f756c64206265206c657373207468616e20352500000000000060448201526064016107d0565b60408051808201909152828152602001819052601191909155601255565b6005546001600160a01b036101009091041633146112aa5760405162461bcd60e51b81526004016107d0906122c2565b5f5b8151811015610a5b57600160135f8484815181106112cc576112cc61231e565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061130781612332565b9150506112ac565b6001600160a01b0383166113715760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107d0565b6001600160a01b0382166113d25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107d0565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f81116114935760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107d0565b6001600160a01b0383165f9081526013602052604090205460ff161580156114d357506001600160a01b0382165f9081526013602052604090205460ff16155b1561152757600754600160b01b900460ff166115275760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016107d0565b6007546001600160a01b03848116911614801561155c57506001600160a01b0382165f9081526013602052604090205460ff16155b80156115725750600754600160a01b900460ff16155b156115f157600a5481611599846001600160a01b03165f9081526020819052604090205490565b6115a3919061234a565b11156115f15760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016107d0565b6007546001600160a01b0384811691161480159061162757506001600160a01b0382165f9081526013602052604090205460ff16155b801561164b57506001600160a01b0383165f9081526013602052604090205460ff16155b80156116615750600754600160a01b900460ff16155b156116f5576007546001600160a01b038381169116146116f557600a548161169d846001600160a01b03165f9081526020819052604090205490565b6116a7919061234a565b11156116f55760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016107d0565b5f805f61171360405180604001604052805f81526020015f81525090565b6001600160a01b0387165f9081526013602052604081205460ff1615801561175357506001600160a01b0387165f9081526013602052604090205460ff16155b801561176d5750600c54600b5461176a919061234a565b43105b600754909150600160a01b900460ff168061179f57506001600160a01b0388165f9081526013602052604090205460ff165b806117c157506001600160a01b0387165f9081526013602052604090205460ff165b156117ce575f925061186a565b6007546001600160a01b0388811691161480156117e9575080155b15611822576011546012546117fe919061234a565b6040805180820190915260115481526012546020820152909550859450915061186a565b8061185b57600f54601054611837919061234a565b60408051808201909152600f5481526010546020820152909550859450915061186a565b801561186a57600d5494508493505b6064611876858861244b565b6118809190612489565b600754909350600160a81b900460ff1680156118a95750600e546001600160a01b038981169116145b80156118c357506007546001600160a01b03888116911614155b156118dd576007546118dd906001600160a01b0316611c8d565b600754600160a81b900460ff16801561190457506007546001600160a01b03898116911614155b15611913576119138583611d27565b6119278888611922868a61230b565b611963565b8215611959578415611959575f6064611940878961244b565b61194a9190612489565b9050611957893083611963565b505b5050505050505050565b6001600160a01b0383166119c75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107d0565b6001600160a01b038216611a295760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107d0565b6001600160a01b0383165f9081526020819052604090205481811015611aa05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107d0565b611aaa828261230b565b6001600160a01b038086165f908152602081905260408082209390935590851681529081208054849290611adf90849061234a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b2b91815260200190565b60405180910390a350505050565b6015546040516bffffffffffffffffffffffff193360601b1660208201525f91829143904290603401604051602081830303815290604052805190602001205f1c611b849190612489565b6040516bffffffffffffffffffffffff194160601b16602082015245904290603401604051602081830303815290604052805190602001205f1c611bc89190612489565b611bd2444261234a565b611bdc919061234a565b611be6919061234a565b611bf0919061234a565b611bfa919061234a565b611c04919061234a565b604051602001611c1691815260200190565b60408051601f19818403018152919052805160209091012092915050565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f600c54670de0b6b3a7640000611ca4919061244b565b6001600160a01b0383165f90815260208190526040902054611cc6919061230b565b9050611cd58261dead83611963565b816001600160a01b031663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611d0d575f80fd5b505af1158015611d1f573d5f803e3d5ffd5b505050505050565b600754600160a01b900460ff16610a5b576007805460ff60a01b1916600160a01b1790558115611e1757305f908152602081905260409020546009548110611e15575f611d7584600261244b565b90505f81846020015184611d89919061244b565b611d939190612489565b90505f611da0828561230b565b9050476706f05b59d3b20000811015611db7575f80fd5b611dc082611e28565b5f611dcb824761230b565b90505f876020015186611dde919061230b565b611de89083612489565b90505f886020015182611dfb919061244b565b90508015611e0d57611e0d8682611f5e565b505050505050505b505b6007805460ff60a01b191690555050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611e5b57611e5b61231e565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611eb2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ed6919061249c565b81600181518110611ee957611ee961231e565b6001600160a01b039283166020918202929092010152600654611f0f913091168461130f565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611f479085905f908690309042906004016124b7565b5f604051808303815f87803b158015611d0d575f80fd5b600654611f769030906001600160a01b03168461130f565b60065460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611fe1573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906120069190612526565b5050505050565b5f6020808352835180828501525f5b818110156120385785810183015185820160400152820161201c565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610915575f80fd5b803561207781612058565b919050565b5f6020828403121561208c575f80fd5b813561209781612058565b9392505050565b5f80604083850312156120af575f80fd5b82356120ba81612058565b946020939093013593505050565b80358015158114612077575f80fd5b5f602082840312156120e7575f80fd5b612097826120c8565b5f805f60608486031215612102575f80fd5b833561210d81612058565b9250602084013561211d81612058565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215612153575f80fd5b823567ffffffffffffffff8082111561216a575f80fd5b818501915085601f83011261217d575f80fd5b81358181111561218f5761218f61212e565b8060051b604051601f19603f830116810181811085821117156121b4576121b461212e565b6040529182528482019250838101850191888311156121d1575f80fd5b938501935b828510156121f6576121e78561206c565b845293850193928501926121d6565b98975050505050505050565b5f60208284031215612212575f80fd5b5035919050565b5f806040838503121561222a575f80fd5b6120ba836120c8565b5f8060408385031215612244575f80fd5b50508035926020909101359150565b5f8060408385031215612264575f80fd5b823561226f81612058565b9150602083013561227f81612058565b809150509250929050565b600181811c9082168061229e57607f821691505b6020821081036122bc57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610882576108826122f7565b634e487b7160e01b5f52603260045260245ffd5b5f60018201612343576123436122f7565b5060010190565b80820180821115610882576108826122f7565b600181815b8085111561239757815f190482111561237d5761237d6122f7565b8085161561238a57918102915b93841c9390800290612362565b509250929050565b5f826123ad57506001610882565b816123b957505f610882565b81600181146123cf57600281146123d9576123f5565b6001915050610882565b60ff8411156123ea576123ea6122f7565b50506001821b610882565b5060208310610133831016604e8410600b8410161715612418575081810a610882565b612422838361235d565b805f1904821115612435576124356122f7565b029392505050565b5f61209760ff84168361239f565b8082028115828204841417610882576108826122f7565b634e487b7160e01b5f52601260045260245ffd5b5f8261248457612484612462565b500690565b5f8261249757612497612462565b500490565b5f602082840312156124ac575f80fd5b815161209781612058565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156125055784516001600160a01b0316835293830193918301916001016124e0565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612538575f80fd5b835192506020840151915060408401519050925092509256fea264697066735822122067c1c49453762b9d9a9c0aa75bfc1e06bf2cad48748c076f5bdc5c9cdce3107864736f6c63430008150033

Deployed Bytecode Sourcemap

8486:11694:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2362:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18676:260;;;;;;;;;;-1:-1:-1;18676:260:0;;;;;:::i;:::-;;:::i;:::-;;3409:169;;;;;;;;;;-1:-1:-1;3409:169:0;;;;;:::i;:::-;;:::i;:::-;;;1579:14:1;;1572:22;1554:41;;1542:2;1527:18;3409:169:0;1414:187:1;17828:152:0;;;;;;;;;;-1:-1:-1;17828:152:0;;;;;:::i;:::-;;:::i;2701:108::-;;;;;;;;;;-1:-1:-1;2789:12:0;;2701:108;;;2102:25:1;;;2090:2;2075:18;2701:108:0;1956:177:1;19991:149:0;;;;;;;;;;;;;:::i;3592:456::-;;;;;;;;;;-1:-1:-1;3592:456:0;;;;;:::i;:::-;;:::i;19680:196::-;;;;;;;;;;-1:-1:-1;19680:196:0;;;;;:::i;:::-;;:::i;2594:93::-;;;;;;;;;;-1:-1:-1;2594:93:0;;2677:2;3999:36:1;;3987:2;3972:18;2594:93:0;3857:184:1;4062:247:0;;;;;;;;;;-1:-1:-1;4062:247:0;;;;;:::i;:::-;;:::i;17988:177::-;;;;;;;;;;-1:-1:-1;17988:177:0;;;;;:::i;:::-;;:::i;8730:34::-;;;;;;;;;;-1:-1:-1;8730:34:0;;;;-1:-1:-1;;;8730:34:0;;;;;;19252:104;;;;;;;;;;-1:-1:-1;19252:104:0;;;;;:::i;:::-;;:::i;11522:676::-;;;;;;;;;;-1:-1:-1;11522:676:0;;;;;:::i;:::-;;:::i;8909:54::-;;;;;;;;;;;;;;;;10794:720;;;;;;:::i;:::-;;:::i;2823:127::-;;;;;;;;;;-1:-1:-1;2823:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;2924:18:0;2897:7;2924:18;;;;;;;;;;;;2823:127;7094:94;;;;;;;;;;;;;:::i;9335:33::-;;;;;;;;;;-1:-1:-1;9335:33:0;;;;;;;;;;;;;4658:25:1;;;4714:2;4699:18;;4692:34;;;;4631:18;9335:33:0;4484:248:1;19364:108:0;;;;;;;;;;-1:-1:-1;19364:108:0;;;;;:::i;:::-;;:::i;9162:79::-;;;;;;;;;;;;9199:42;9162:79;;;;;-1:-1:-1;;;;;4901:32:1;;;4883:51;;4871:2;4856:18;9162:79:0;4737:203:1;6871:87:0;;;;;;;;;;-1:-1:-1;6944:6:0;;;;;-1:-1:-1;;;;;6944:6:0;6871:87;;2476:104;;;;;;;;;;;;;:::i;19884:99::-;;;;;;;;;;;;;:::i;4323:409::-;;;;;;;;;;-1:-1:-1;4323:409:0;;;;;:::i;:::-;;:::i;8612:19::-;;;;;;;;;;-1:-1:-1;8612:19:0;;;;-1:-1:-1;;;;;8612:19:0;;;2964:216;;;;;;;;;;-1:-1:-1;2964:216:0;;;;;:::i;:::-;;:::i;19129:115::-;;;;;;;;;;-1:-1:-1;19129:115:0;;;;;:::i;:::-;;:::i;9471:46::-;;;;;;;;;;-1:-1:-1;9471:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9421:41;;;;;;;;;;-1:-1:-1;9421:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18173:243;;;;;;;;;;-1:-1:-1;18173:243:0;;;;;:::i;:::-;;:::i;3194:201::-;;;;;;;;;;-1:-1:-1;3194:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;3360:18:0;;;3328:7;3360:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3194:201;18944:177;;;;;;;;;;-1:-1:-1;18944:177:0;;;;;:::i;:::-;;:::i;7196:192::-;;;;;;;;;;-1:-1:-1;7196:192:0;;;;;:::i;:::-;;:::i;18424:245::-;;;;;;;;;;-1:-1:-1;18424:245:0;;;;;:::i;:::-;;:::i;19480:192::-;;;;;;;;;;-1:-1:-1;19480:192:0;;;;;:::i;:::-;;:::i;9375:37::-;;;;;;;;;;-1:-1:-1;9375:37:0;;;;;;;;;8584:21;;;;;;;;;;-1:-1:-1;8584:21:0;;;;-1:-1:-1;;;;;8584:21:0;;;2362:100;2416:13;2449:5;2442:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2362:100;:::o;18676:260::-;6944:6;;-1:-1:-1;;;;;6944:6:0;;;;;311:10;7006:23;6998:68;;;;-1:-1:-1;;;6998:68:0;;;;;;;:::i;:::-;;;;;;;;;18753:14:::1;::::0;-1:-1:-1;;;18753:14:0;::::1;;;18752:15;18744:54;;;::::0;-1:-1:-1;;;18744:54:0;;6762:2:1;18744:54:0::1;::::0;::::1;6744:21:1::0;6801:2;6781:18;;;6774:30;6840:28;6820:18;;;6813:56;6886:18;;18744:54:0::1;6560:350:1::0;18744:54:0::1;18809:4;:12:::0;;-1:-1:-1;;;;;;;;;;18832:21:0;;;-1:-1:-1;;;;;18809:12:0;;::::1;18832:21:::0;;;;-1:-1:-1;;;18832:21:0::1;18864:25:::0;;;::::1;-1:-1:-1::0;;;18864:25:0::1;::::0;;18916:12:::1;18900:13;:28:::0;18676:260::o;3409:169::-;3492:4;3509:39;311:10;3532:7;3541:6;3509:8;:39::i;:::-;-1:-1:-1;3566:4:0;3409:169;;;;;:::o;17828:152::-;6944:6;;-1:-1:-1;;;;;6944:6:0;;;;;311:10;7006:23;6998:68;;;;-1:-1:-1;;;6998:68:0;;;;;;;:::i;:::-;17946:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17946:26:0::1;-1:-1:-1::0;;;;17946:26:0;;::::1;::::0;;;::::1;::::0;;17828:152::o;19991:149::-;20054:15;;-1:-1:-1;;;;;20054:15:0;20040:10;:29;20032:38;;;;;;20081:51;;20089:10;;20110:21;20081:51;;;;;;;;;20110:21;20089:10;20081:51;;;;;;;;;;;;;;;;;;;;;19991:149::o;3592:456::-;3732:4;3749:36;3759:6;3767:9;3778:6;3749:9;:36::i;:::-;-1:-1:-1;;;;;3825:19:0;;3798:24;3825:19;;;:11;:19;;;;;;;;311:10;3825:33;;;;;;;;3877:26;;;;3869:79;;;;-1:-1:-1;;;3869:79:0;;7117:2:1;3869:79:0;;;7099:21:1;7156:2;7136:18;;;7129:30;7195:34;7175:18;;;7168:62;-1:-1:-1;;;7246:18:1;;;7239:38;7294:19;;3869:79:0;6915:404:1;3869:79:0;3959:57;3968:6;311:10;3990:25;4009:6;3990:16;:25;:::i;:::-;3959:8;:57::i;:::-;-1:-1:-1;4036:4:0;;3592:456;-1:-1:-1;;;;3592:456:0:o;19680:196::-;6944:6;;-1:-1:-1;;;;;6944:6:0;;;;;311:10;7006:23;6998:68;;;;-1:-1:-1;;;6998:68:0;;;;;;;:::i;:::-;19771:9:::1;19766:103;19790:8;:15;19786:1;:19;19766:103;;;19852:5;19827:9;:22;19837:8;19846:1;19837:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;19827:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;19827:22:0;:30;;-1:-1:-1;;19827:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19807:3;::::1;::::0;::::1;:::i;:::-;;;;19766:103;;;;19680:196:::0;:::o;4062:247::-;311:10;4177:4;4231:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4231:34:0;;;;;;;;;;4177:4;;4199:80;;4222:7;;4231:47;;4268:10;;4231:47;:::i;17988:177::-;6944:6;;-1:-1:-1;;;;;6944:6:0;;;;;311:10;7006:23;6998:68;;;;-1:-1:-1;;;6998:68:0;;;;;;;:::i;:::-;18143:14:::1;2677:2:::0;18143::::1;:14;:::i;:::-;18130:27;::::0;:10;:27:::1;:::i;:::-;18104:23;:53:::0;-1:-1:-1;17988:177:0:o;19252:104::-;6944:6;;-1:-1:-1;;;;;6944:6:0;;;;;311:10;7006:23;6998:68;;;;-1:-1:-1;;;6998:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19322:19:0::1;;::::0;;;:9:::1;:19;::::0;;;;:26;;-1:-1:-1;;19322:26:0::1;19344:4;19322:26;::::0;;19252:104::o;11522:676::-;692:6;;;;691:7;683:34;;;;-1:-1:-1;;;683:34:0;;9749:2:1;683:34:0;;;9731:21:1;9788:2;9768:18;;;9761:30;-1:-1:-1;;;9807:18:1;;;9800:44;9861:18;;683:34:0;9547:338:1;683:34:0;728:6;:13;;-1:-1:-1;;728:13:0;737:4;728:13;;;11612:10;11604:19:::1;;;::::0;::::1;;11654:10;12810:20:::0;12858:8;11634:32:::1;;;::::0;::::1;;11679:50;11695:10;11715:4;11722:6;11679:15;:50::i;:::-;11742:16;11770:1;11762:6;:4;:6::i;:::-;:9;;;;:::i;:::-;11761:16:::0;;-1:-1:-1;11776:1:0::1;11761:16:::0;11803:22;::::1;;;;11818:7;11803:22;11802:54;;;;11832:11;11831:12;:24;;;;;11848:7;11847:8;11831:24;11788:68;;11872:6;11867:149;;;11903:15;11932:3;11921:10;:6:::0;11928:3:::1;11921:10;:::i;:::-;:14;;;;:::i;:::-;11903:32;;11950:54;11974:4;11981:10;11993;11950:15;:54::i;:::-;11881:135;11867:149;12048:12;::::0;12078:71:::1;::::0;;10489:25:1;;;10545:2;10530:18;;10523:34;;;12125:15:0::1;10573:18:1::0;;;10566:34;;;;10643:14;;10636:22;10631:2;10616:18;;10609:50;12092:10:0::1;::::0;12078:71:::1;::::0;10476:3:1;10461:19;12078:71:0::1;;;;;;;;12175:15;:11:::0;12189:1:::1;12175:15;:::i;:::-;12160:12;:30:::0;-1:-1:-1;;764:6:0;:14;;-1:-1:-1;;764:14:0;;;-1:-1:-1;;;11522:676:0:o;10794:720::-;692:6;;;;691:7;683:34;;;;-1:-1:-1;;;683:34:0;;9749:2:1;683:34:0;;;9731:21:1;9788:2;9768:18;;;9761:30;-1:-1:-1;;;9807:18:1;;;9800:44;9861:18;;683:34:0;9547:338:1;683:34:0;728:6;:13;;-1:-1:-1;;728:13:0;737:4;728:13;;;10877:9:::1;10907:7:::0;10899:17:::1;;;::::0;::::1;;10947:10;12810:20:::0;12858:8;10927:32:::1;;;::::0;::::1;;10978:19;::::0;;;:14:::1;:19;::::0;;;;;::::1;;10970:28;;;::::0;::::1;;11011:16;11039:1;11031:6;:4;:6::i;:::-;:9;;;;:::i;:::-;11030:16:::0;;-1:-1:-1;11045:1:0::1;11030:16:::0;11072:22;::::1;;;;11087:7;11072:22;11071:54;;;;11101:11;11100:12;:24;;;;;11117:7;11116:8;11100:24;11057:68;;11141:6;11136:199;;;11172:15;11198:3;11190:7;:3:::0;11194::::1;11190:7;:::i;:::-;:11;;;;:::i;:::-;11235:38;::::0;11172:29;;-1:-1:-1;11217:12:0::1;::::0;11235:10:::1;::::0;11172:29;;11217:12;11235:38;11217:12;11235:38;11172:29;11235:10;:38:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11216:57;;;11296:7;11288:35;;;::::0;-1:-1:-1;;;11288:35:0;;11082:2:1;11288:35:0::1;::::0;::::1;11064:21:1::0;11121:2;11101:18;;;11094:30;-1:-1:-1;;;11140:18:1;;;11133:45;11195:18;;11288:35:0::1;10880:339:1::0;11288:35:0::1;11150:185;;11367:12;::::0;11397:68:::1;::::0;;10489:25:1;;;10545:2;10530:18;;10523:34;;;11441:15:0::1;10573:18:1::0;;;10566:34;;;;10643:14;;10636:22;10631:2;10616:18;;10609:50;11411:10:0::1;::::0;11397:68:::1;::::0;10476:3:1;10461:19;11397:68:0::1;10264:401:1::0;7094:94:0;6944:6;;-1:-1:-1;;;;;6944:6:0;;;;;311:10;7006:23;6998:68;;;;-1:-1:-1;;;6998:68:0;;;;;;;:::i;:::-;7159:21:::1;7177:1;7159:9;:21::i;:::-;7094:94::o:0;19364:108::-;6944:6;;-1:-1:-1;;;;;6944:6:0;;;;;311:10;7006:23;6998:68;;;;-1:-1:-1;;;6998:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19437:19:0::1;19459:5;19437:19:::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;19437:27:0::1;::::0;;19364:108::o;2476:104::-;2532:13;2565:7;2558:14;;;;;:::i;19884:99::-;6944:6;;-1:-1:-1;;;;;6944:6:0;;;;;311:10;7006:23;6998:68;;;;-1:-1:-1;;;6998:68:0;;;;;;;:::i;:::-;19963:12:::1;::::0;19946:14:::1;:29:::0;19884:99::o;4323:409::-;311:10;4443:4;4492:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4492:34:0;;;;;;;;;;4545:35;;;;4537:85;;;;-1:-1:-1;;;4537:85:0;;11426:2:1;4537:85:0;;;11408:21:1;11465:2;11445:18;;;11438:30;11504:34;11484:18;;;11477:62;-1:-1:-1;;;11555:18:1;;;11548:35;11600:19;;4537:85:0;11224:401:1;4537:85:0;4633:67;311:10;4656:7;4665:34;4684:15;4665:16;:34;:::i;4633:67::-;-1:-1:-1;4720:4:0;;4323:409;-1:-1:-1;;;4323:409:0:o;2964:216::-;3086:4;3108:42;311:10;3132:9;3143:6;3108:9;:42::i;19129:115::-;6944:6;;-1:-1:-1;;;;;6944:6:0;;;;;311:10;7006:23;6998:68;;;;-1:-1:-1;;;6998:68:0;;;;;;;:::i;:::-;19209:15:::1;:27:::0;;-1:-1:-1;;;;;;19209:27:0::1;-1:-1:-1::0;;;;;19209:27:0;;;::::1;::::0;;;::::1;::::0;;19129:115::o;18173:243::-;6944:6;;-1:-1:-1;;;;;6944:6:0;;;;;311:10;7006:23;6998:68;;;;-1:-1:-1;;;6998:68:0;;;;;;;:::i;:::-;18328:1:::1;18301:23;18314:10:::0;18301;:23:::1;:::i;:::-;:28;;18292:68;;;::::0;-1:-1:-1;;;18292:68:0;;11832:2:1;18292:68:0::1;::::0;::::1;11814:21:1::0;11871:2;11851:18;;;11844:30;11910:28;11890:18;;;11883:56;11956:18;;18292:68:0::1;11630:350:1::0;18292:68:0::1;18379:29;::::0;;;;::::1;::::0;;;;;;::::1;;::::0;;;18371:5:::1;:37:::0;;;;;;18173:243::o;18944:177::-;6944:6;;-1:-1:-1;;;;;6944:6:0;;;;;311:10;7006:23;6998:68;;;;-1:-1:-1;;;6998:68:0;;;;;;;:::i;:::-;19026:14:::1;::::0;-1:-1:-1;;;19026:14:0;::::1;;;19025:15;19017:65;;;::::0;-1:-1:-1;;;19017:65:0;;12187:2:1;19017:65:0::1;::::0;::::1;12169:21:1::0;12226:2;12206:18;;;12199:30;12265:34;12245:18;;;12238:62;-1:-1:-1;;;12316:18:1;;;12309:35;12361:19;;19017:65:0::1;11985:401:1::0;19017:65:0::1;19093:8;:20:::0;18944:177::o;7196:192::-;6944:6;;-1:-1:-1;;;;;6944:6:0;;;;;311:10;7006:23;6998:68;;;;-1:-1:-1;;;6998:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7285:22:0;::::1;7277:73;;;::::0;-1:-1:-1;;;7277:73:0;;12593:2:1;7277:73:0::1;::::0;::::1;12575:21:1::0;12632:2;12612:18;;;12605:30;12671:34;12651:18;;;12644:62;-1:-1:-1;;;12722:18:1;;;12715:36;12768:19;;7277:73:0::1;12391:402:1::0;7277:73:0::1;7361:19;7371:8;7361:9;:19::i;18424:245::-:0;6944:6;;-1:-1:-1;;;;;6944:6:0;;;;;311:10;7006:23;6998:68;;;;-1:-1:-1;;;6998:68:0;;;;;;;:::i;:::-;18577:1:::1;18550:23;18563:10:::0;18550;:23:::1;:::i;:::-;:28;;18541:68;;;::::0;-1:-1:-1;;;18541:68:0;;11832:2:1;18541:68:0::1;::::0;::::1;11814:21:1::0;11871:2;11851:18;;;11844:30;11910:28;11890:18;;;11883:56;11956:18;;18541:68:0::1;11630:350:1::0;18541:68:0::1;18632:29;::::0;;;;::::1;::::0;;;;;;::::1;;::::0;;;18620:9:::1;:41:::0;;;;;;18424:245::o;19480:192::-;6944:6;;-1:-1:-1;;;;;6944:6:0;;;;;311:10;7006:23;6998:68;;;;-1:-1:-1;;;6998:68:0;;;;;;;:::i;:::-;19568:9:::1;19563:102;19587:8;:15;19583:1;:19;19563:102;;;19649:4;19624:9;:22;19634:8;19643:1;19634:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;19624:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;19624:22:0;:29;;-1:-1:-1;;19624:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19604:3;::::1;::::0;::::1;:::i;:::-;;;;19563:102;;5765:380:::0;-1:-1:-1;;;;;5901:19:0;;5893:68;;;;-1:-1:-1;;;5893:68:0;;13000:2:1;5893:68:0;;;12982:21:1;13039:2;13019:18;;;13012:30;13078:34;13058:18;;;13051:62;-1:-1:-1;;;13129:18:1;;;13122:34;13173:19;;5893:68:0;12798:400:1;5893:68:0;-1:-1:-1;;;;;5980:21:0;;5972:68;;;;-1:-1:-1;;;5972:68:0;;13405:2:1;5972:68:0;;;13387:21:1;13444:2;13424:18;;;13417:30;13483:34;13463:18;;;13456:62;-1:-1:-1;;;13534:18:1;;;13527:32;13576:19;;5972:68:0;13203:398:1;5972:68:0;-1:-1:-1;;;;;6053:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6105:32;;2102:25:1;;;6105:32:0;;2075:18:1;6105:32:0;;;;;;;5765:380;;;:::o;12882:2526::-;13032:1;13023:6;:10;13015:64;;;;-1:-1:-1;;;13015:64:0;;13808:2:1;13015:64:0;;;13790:21:1;13847:2;13827:18;;;13820:30;13886:34;13866:18;;;13859:62;-1:-1:-1;;;13937:18:1;;;13930:39;13986:19;;13015:64:0;13606:405:1;13015:64:0;-1:-1:-1;;;;;13097:17:0;;;;;;:9;:17;;;;;;;;13096:18;:43;;;;-1:-1:-1;;;;;;13119:20:0;;;;;;:9;:20;;;;;;;;13118:21;13096:43;13092:122;;;13164:14;;-1:-1:-1;;;13164:14:0;;;;13156:46;;;;-1:-1:-1;;;13156:46:0;;14218:2:1;13156:46:0;;;14200:21:1;14257:2;14237:18;;;14230:30;-1:-1:-1;;;14276:18:1;;;14269:49;14335:18;;13156:46:0;14016:343:1;13156:46:0;13240:4;;-1:-1:-1;;;;;13230:14:0;;;13240:4;;13230:14;:39;;;;-1:-1:-1;;;;;;13249:20:0;;;;;;:9;:20;;;;;;;;13248:21;13230:39;:59;;;;-1:-1:-1;13274:15:0;;-1:-1:-1;;;13274:15:0;;;;13273:16;13230:59;13226:215;;;13347:14;;13337:6;13314:20;13324:9;-1:-1:-1;;;;;2924:18:0;2897:7;2924:18;;;;;;;;;;;;2823:127;13314:20;:29;;;;:::i;:::-;:47;;13306:123;;;;-1:-1:-1;;;13306:123:0;;14566:2:1;13306:123:0;;;14548:21:1;;;14585:18;;;14578:30;14644:34;14624:18;;;14617:62;14696:18;;13306:123:0;14364:356:1;13306:123:0;13467:4;;-1:-1:-1;;;;;13457:14:0;;;13467:4;;13457:14;;;;:39;;-1:-1:-1;;;;;;13476:20:0;;;;;;:9;:20;;;;;;;;13475:21;13457:39;:61;;;;-1:-1:-1;;;;;;13501:17:0;;;;;;:9;:17;;;;;;;;13500:18;13457:61;:81;;;;-1:-1:-1;13523:15:0;;-1:-1:-1;;;13523:15:0;;;;13522:16;13457:81;13453:315;;;13585:4;;-1:-1:-1;;;;;13572:17:0;;;13585:4;;13572:17;13568:189;;13651:14;;13641:6;13618:20;13628:9;-1:-1:-1;;;;;2924:18:0;2897:7;2924:18;;;;;;;;;;;;2823:127;13618:20;:29;;;;:::i;:::-;:47;;13610:131;;;;-1:-1:-1;;;13610:131:0;;14566:2:1;13610:131:0;;;14548:21:1;;;14585:18;;;14578:30;14644:34;14624:18;;;14617:62;14696:18;;13610:131:0;14364:356:1;13610:131:0;13780:15;13806:14;13831:11;13853:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;13853:25:0;-1:-1:-1;;;;;13912:17:0;;13891;13912;;;:9;:17;;;;;;;;13911:18;:56;;;;-1:-1:-1;;;;;;13947:20:0;;;;;;:9;:20;;;;;;;;13946:21;13911:56;:112;;;;;14015:8;;13999:13;;:24;;;;:::i;:::-;13984:12;:39;13911:112;14109:15;;13891:132;;-1:-1:-1;;;;14109:15:0;;;;;:36;;-1:-1:-1;;;;;;14128:17:0;;;;;;:9;:17;;;;;;;;14109:36;:60;;;-1:-1:-1;;;;;;14149:20:0;;;;;;:9;:20;;;;;;;;14109:60;14105:624;;;14190:1;14184:7;;14105:624;;;14224:4;;-1:-1:-1;;;;;14211:17:0;;;14224:4;;14211:17;:34;;;;;14233:12;14232:13;14211:34;14207:522;;;14328:9;:19;14289;;:58;;14328:19;14289:58;:::i;:::-;14394:24;;;;;;;;;14409:9;14394:24;;;;;;;;;14262:85;;-1:-1:-1;14262:85:0;;-1:-1:-1;14394:24:0;-1:-1:-1;14207:522:0;;;14441:12;14436:293;;14532:5;:15;14497;;:50;;14532:15;14497:50;:::i;:::-;14594:20;;;;;;;;;14609:5;14594:20;;;;;;;;;14470:77;;-1:-1:-1;14470:77:0;;-1:-1:-1;14594:20:0;-1:-1:-1;14436:293:0;;;14636:12;14632:97;;;14675:9;;;-1:-1:-1;14675:9:0;;-1:-1:-1;14632:97:0;14767:3;14748:15;14757:6;14748;:15;:::i;:::-;14747:23;;;;:::i;:::-;14884:18;;14741:29;;-1:-1:-1;;;;14884:18:0;;;;:47;;;;-1:-1:-1;14916:15:0;;-1:-1:-1;;;;;14906:25:0;;;14916:15;;14906:25;14884:47;:68;;;;-1:-1:-1;14948:4:0;;-1:-1:-1;;;;;14935:17:0;;;14948:4;;14935:17;;14884:68;14880:84;;;14959:4;;14954:10;;-1:-1:-1;;;;;14959:4:0;14954;:10::i;:::-;14979:18;;-1:-1:-1;;;14979:18:0;;;;:36;;;;-1:-1:-1;15011:4:0;;-1:-1:-1;;;;;15001:14:0;;;15011:4;;15001:14;;14979:36;14975:76;;;15017:34;15029:7;15038:12;15017:11;:34::i;:::-;15093:48;15109:6;15117:9;15128:12;15137:3;15128:6;:12;:::i;:::-;15093:15;:48::i;:::-;15156:7;;15152:249;;15228:11;;15224:164;;15260:17;15301:3;15281:16;15290:7;15281:6;:16;:::i;:::-;15280:24;;;;:::i;:::-;15260:44;;15323:49;15339:6;15355:4;15362:9;15323:15;:49::i;:::-;15241:147;15224:164;13004:2404;;;;;12882:2526;;;:::o;4746:638::-;-1:-1:-1;;;;;4886:20:0;;4878:70;;;;-1:-1:-1;;;4878:70:0;;14927:2:1;4878:70:0;;;14909:21:1;14966:2;14946:18;;;14939:30;15005:34;14985:18;;;14978:62;-1:-1:-1;;;15056:18:1;;;15049:35;15101:19;;4878:70:0;14725:401:1;4878:70:0;-1:-1:-1;;;;;4967:23:0;;4959:71;;;;-1:-1:-1;;;4959:71:0;;15333:2:1;4959:71:0;;;15315:21:1;15372:2;15352:18;;;15345:30;15411:34;15391:18;;;15384:62;-1:-1:-1;;;15462:18:1;;;15455:33;15505:19;;4959:71:0;15131:399:1;4959:71:0;-1:-1:-1;;;;;5127:17:0;;5103:21;5127:17;;;;;;;;;;;5163:23;;;;5155:74;;;;-1:-1:-1;;;5155:74:0;;15737:2:1;5155:74:0;;;15719:21:1;15776:2;15756:18;;;15749:30;15815:34;15795:18;;;15788:62;-1:-1:-1;;;15866:18:1;;;15859:36;15912:19;;5155:74:0;15535:402:1;5155:74:0;5260:22;5276:6;5260:13;:22;:::i;:::-;-1:-1:-1;;;;;5240:17:0;;;:9;:17;;;;;;;;;;;:42;;;;5293:20;;;;;;;;:30;;5317:6;;5240:9;5293:30;;5317:6;;5293:30;:::i;:::-;;;;;;;;5358:9;-1:-1:-1;;;;;5341:35:0;5350:6;-1:-1:-1;;;;;5341:35:0;;5369:6;5341:35;;;;2102:25:1;;2090:2;2075:18;;1956:177;5341:35:0;;;;;;;;4867:517;4746:638;;;:::o;12206:464::-;12615:12;;12532:28;;-1:-1:-1;;12549:10:0;16091:2:1;16087:15;16083:53;12532:28:0;;;16071:66:1;12245:7:0;;;;12600:12;;12567:15;;16153:12:1;;12532:28:0;;;;;;;;;;;;12522:39;;;;;;12514:48;;12513:70;;;;:::i;:::-;12412:32;;-1:-1:-1;;12429:14:0;16091:2:1;16087:15;16083:53;12412:32:0;;;16071:66:1;12482:14:0;;12449:15;;16153:12:1;;12412:32:0;;;;;;;;;;;;12402:43;;;;;;12394:52;;12393:72;;;;:::i;:::-;12329:47;12360:16;12329:15;:47;:::i;:::-;:137;;;;:::i;:::-;:167;;;;:::i;:::-;:255;;;;:::i;:::-;:283;;;;:::i;:::-;:298;;;;:::i;:::-;12298:340;;;;;;16555:19:1;;16599:2;16590:12;;16426:182;12298:340:0;;;;-1:-1:-1;;12298:340:0;;;;;;;;;12288:351;;12298:340;12288:351;;;;;12206:464;-1:-1:-1;;12206:464:0:o;7396:173::-;7471:6;;;-1:-1:-1;;;;;7488:17:0;;;7471:6;7488:17;;;-1:-1:-1;;;;;;7488:17:0;;;;;;7521:40;;7471:6;;;;;;;;7521:40;;7452:16;;7521:40;7441:128;7396:173;:::o;16576:202::-;16625:18;16666:8;;16677:4;16666:15;;;;:::i;:::-;-1:-1:-1;;;;;2924:18:0;;2897:7;2924:18;;;;;;;;;;;16646:35;;;;:::i;:::-;16625:56;;16692:47;16708:6;9199:42;16728:10;16692:15;:47::i;:::-;16756:6;-1:-1:-1;;;;;16750:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16614:164;16576:202;:::o;15416:1152::-;9754:15;;-1:-1:-1;;;9754:15:0;;;;9749:125;;9786:15;:22;;-1:-1:-1;;;;9786:22:0;-1:-1:-1;;;9786:22:0;;;15506:49;;15537:7:::1;15506:49;15612:4;15568:23;2924:18:::0;;;;;;;;;;;15652:23:::1;::::0;15633:42;::::1;15629:932;;15747:19;15769:11;:7:::0;15779:1:::1;15769:11;:::i;:::-;15747:33;;15795:32;15889:11;15849:9;:19;;;15831:15;:37;;;;:::i;:::-;15830:70;;;;:::i;:::-;15795:105:::0;-1:-1:-1;15915:14:0::1;15932:42;15795:105:::0;15932:15;:42:::1;:::i;:::-;15915:59:::0;-1:-1:-1;16016:21:0::1;16078:9;16060:27:::0;::::1;;16052:36;;;::::0;::::1;;16103:24;16120:6;16103:16;:24::i;:::-;16144:20;16167:38;16191:14:::0;16167:21:::1;:38;:::i;:::-;16144:61;;16220:19;16272:9;:19;;;16258:11;:33;;;;:::i;:::-;16242:50;::::0;:12;:50:::1;:::i;:::-;16220:72;;16307:29;16353:9;:19;;;16339:11;:33;;;;:::i;:::-;16307:65:::0;-1:-1:-1;16393:25:0;;16389:161:::1;;16473:61;16486:24;16512:21;16473:12;:61::i;:::-;15677:884;;;;;;;15629:932;15496:1072;9823:1;9839:15:::0;:23;;-1:-1:-1;;;;9839:23:0;;;15416:1152;;:::o;16786:526::-;16928:16;;;16942:1;16928:16;;;;;;;;16904:21;;16928:16;;;;;;;;;;-1:-1:-1;16928:16:0;16904:40;;16973:4;16955;16960:1;16955:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16955:23:0;;;:7;;;;;;;;;;:23;;;;16999:6;;:13;;;-1:-1:-1;;;16999:13:0;;;;:6;;;;;:11;;:13;;;;;16955:7;;16999:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16989:4;16994:1;16989:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16989:23:0;;;:7;;;;;;;;;:23;17057:6;;17025:53;;17042:4;;17057:6;17066:11;17025:8;:53::i;:::-;17117:6;;:187;;-1:-1:-1;;;17117:187:0;;-1:-1:-1;;;;;17117:6:0;;;;:57;;:187;;17189:11;;17117:6;;17231:4;;17258;;17278:15;;17117:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;17320:500;17500:6;;17468:53;;17485:4;;-1:-1:-1;;;;;17500:6:0;17509:11;17468:8;:53::i;:::-;17564:6;;:248;;-1:-1:-1;;;17564:248:0;;17629:4;17564:248;;;18195:34:1;18245:18;;;18238:34;;;17564:6:0;18288:18:1;;;18281:34;;;18331:18;;;18324:34;9199:42:0;18374:19:1;;;18367:44;17786:15:0;18427:19:1;;;18420:35;-1:-1:-1;;;;;17564:6:0;;;;:22;;17595:9;;18129:19:1;;17564:248:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17320:500;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:247::-;901:6;954:2;942:9;933:7;929:23;925:32;922:52;;;970:1;967;960:12;922:52;1009:9;996:23;1028:31;1053:5;1028:31;:::i;:::-;1078:5;842:247;-1:-1:-1;;;842:247:1:o;1094:315::-;1162:6;1170;1223:2;1211:9;1202:7;1198:23;1194:32;1191:52;;;1239:1;1236;1229:12;1191:52;1278:9;1265:23;1297:31;1322:5;1297:31;:::i;:::-;1347:5;1399:2;1384:18;;;;1371:32;;-1:-1:-1;;;1094:315:1:o;1606:160::-;1671:20;;1727:13;;1720:21;1710:32;;1700:60;;1756:1;1753;1746:12;1771:180;1827:6;1880:2;1868:9;1859:7;1855:23;1851:32;1848:52;;;1896:1;1893;1886:12;1848:52;1919:26;1935:9;1919:26;:::i;2138:456::-;2215:6;2223;2231;2284:2;2272:9;2263:7;2259:23;2255:32;2252:52;;;2300:1;2297;2290:12;2252:52;2339:9;2326:23;2358:31;2383:5;2358:31;:::i;:::-;2408:5;-1:-1:-1;2465:2:1;2450:18;;2437:32;2478:33;2437:32;2478:33;:::i;:::-;2138:456;;2530:7;;-1:-1:-1;;;2584:2:1;2569:18;;;;2556:32;;2138:456::o;2599:127::-;2660:10;2655:3;2651:20;2648:1;2641:31;2691:4;2688:1;2681:15;2715:4;2712:1;2705:15;2731:1121;2815:6;2846:2;2889;2877:9;2868:7;2864:23;2860:32;2857:52;;;2905:1;2902;2895:12;2857:52;2945:9;2932:23;2974:18;3015:2;3007:6;3004:14;3001:34;;;3031:1;3028;3021:12;3001:34;3069:6;3058:9;3054:22;3044:32;;3114:7;3107:4;3103:2;3099:13;3095:27;3085:55;;3136:1;3133;3126:12;3085:55;3172:2;3159:16;3194:2;3190;3187:10;3184:36;;;3200:18;;:::i;:::-;3246:2;3243:1;3239:10;3278:2;3272:9;3341:2;3337:7;3332:2;3328;3324:11;3320:25;3312:6;3308:38;3396:6;3384:10;3381:22;3376:2;3364:10;3361:18;3358:46;3355:72;;;3407:18;;:::i;:::-;3443:2;3436:22;3493:18;;;3527:15;;;;-1:-1:-1;3569:11:1;;;3565:20;;;3597:19;;;3594:39;;;3629:1;3626;3619:12;3594:39;3653:11;;;;3673:148;3689:6;3684:3;3681:15;3673:148;;;3755:23;3774:3;3755:23;:::i;:::-;3743:36;;3706:12;;;;3799;;;;3673:148;;;3840:6;2731:1121;-1:-1:-1;;;;;;;;2731:1121:1:o;4046:180::-;4105:6;4158:2;4146:9;4137:7;4133:23;4129:32;4126:52;;;4174:1;4171;4164:12;4126:52;-1:-1:-1;4197:23:1;;4046:180;-1:-1:-1;4046:180:1:o;4231:248::-;4296:6;4304;4357:2;4345:9;4336:7;4332:23;4328:32;4325:52;;;4373:1;4370;4363:12;4325:52;4396:26;4412:9;4396:26;:::i;4945:248::-;5013:6;5021;5074:2;5062:9;5053:7;5049:23;5045:32;5042:52;;;5090:1;5087;5080:12;5042:52;-1:-1:-1;;5113:23:1;;;5183:2;5168:18;;;5155:32;;-1:-1:-1;4945:248:1:o;5198:388::-;5266:6;5274;5327:2;5315:9;5306:7;5302:23;5298:32;5295:52;;;5343:1;5340;5333:12;5295:52;5382:9;5369:23;5401:31;5426:5;5401:31;:::i;:::-;5451:5;-1:-1:-1;5508:2:1;5493:18;;5480:32;5521:33;5480:32;5521:33;:::i;:::-;5573:7;5563:17;;;5198:388;;;;;:::o;5814:380::-;5893:1;5889:12;;;;5936;;;5957:61;;6011:4;6003:6;5999:17;5989:27;;5957:61;6064:2;6056:6;6053:14;6033:18;6030:38;6027:161;;6110:10;6105:3;6101:20;6098:1;6091:31;6145:4;6142:1;6135:15;6173:4;6170:1;6163:15;6027:161;;5814:380;;;:::o;6199:356::-;6401:2;6383:21;;;6420:18;;;6413:30;6479:34;6474:2;6459:18;;6452:62;6546:2;6531:18;;6199:356::o;7324:127::-;7385:10;7380:3;7376:20;7373:1;7366:31;7416:4;7413:1;7406:15;7440:4;7437:1;7430:15;7456:128;7523:9;;;7544:11;;;7541:37;;;7558:18;;:::i;7589:127::-;7650:10;7645:3;7641:20;7638:1;7631:31;7681:4;7678:1;7671:15;7705:4;7702:1;7695:15;7721:135;7760:3;7781:17;;;7778:43;;7801:18;;:::i;:::-;-1:-1:-1;7848:1:1;7837:13;;7721:135::o;7861:125::-;7926:9;;;7947:10;;;7944:36;;;7960:18;;:::i;7991:422::-;8080:1;8123:5;8080:1;8137:270;8158:7;8148:8;8145:21;8137:270;;;8217:4;8213:1;8209:6;8205:17;8199:4;8196:27;8193:53;;;8226:18;;:::i;:::-;8276:7;8266:8;8262:22;8259:55;;;8296:16;;;;8259:55;8375:22;;;;8335:15;;;;8137:270;;;8141:3;7991:422;;;;;:::o;8418:806::-;8467:5;8497:8;8487:80;;-1:-1:-1;8538:1:1;8552:5;;8487:80;8586:4;8576:76;;-1:-1:-1;8623:1:1;8637:5;;8576:76;8668:4;8686:1;8681:59;;;;8754:1;8749:130;;;;8661:218;;8681:59;8711:1;8702:10;;8725:5;;;8749:130;8786:3;8776:8;8773:17;8770:43;;;8793:18;;:::i;:::-;-1:-1:-1;;8849:1:1;8835:16;;8864:5;;8661:218;;8963:2;8953:8;8950:16;8944:3;8938:4;8935:13;8931:36;8925:2;8915:8;8912:16;8907:2;8901:4;8898:12;8894:35;8891:77;8888:159;;;-1:-1:-1;9000:19:1;;;9032:5;;8888:159;9079:34;9104:8;9098:4;9079:34;:::i;:::-;9149:6;9145:1;9141:6;9137:19;9128:7;9125:32;9122:58;;;9160:18;;:::i;:::-;9198:20;;8418:806;-1:-1:-1;;;8418:806:1:o;9229:140::-;9287:5;9316:47;9357:4;9347:8;9343:19;9337:4;9316:47;:::i;9374:168::-;9447:9;;;9478;;9495:15;;;9489:22;;9475:37;9465:71;;9516:18;;:::i;9890:127::-;9951:10;9946:3;9942:20;9939:1;9932:31;9982:4;9979:1;9972:15;10006:4;10003:1;9996:15;10022:112;10054:1;10080;10070:35;;10085:18;;:::i;:::-;-1:-1:-1;10119:9:1;;10022:112::o;10139:120::-;10179:1;10205;10195:35;;10210:18;;:::i;:::-;-1:-1:-1;10244:9:1;;10139:120::o;16613:251::-;16683:6;16736:2;16724:9;16715:7;16711:23;16707:32;16704:52;;;16752:1;16749;16742:12;16704:52;16784:9;16778:16;16803:31;16828:5;16803:31;:::i;16869:980::-;17131:4;17179:3;17168:9;17164:19;17210:6;17199:9;17192:25;17236:2;17274:6;17269:2;17258:9;17254:18;17247:34;17317:3;17312:2;17301:9;17297:18;17290:31;17341:6;17376;17370:13;17407:6;17399;17392:22;17445:3;17434:9;17430:19;17423:26;;17484:2;17476:6;17472:15;17458:29;;17505:1;17515:195;17529:6;17526:1;17523:13;17515:195;;;17594:13;;-1:-1:-1;;;;;17590:39:1;17578:52;;17685:15;;;;17650:12;;;;17626:1;17544:9;17515:195;;;-1:-1:-1;;;;;;;17766:32:1;;;;17761:2;17746:18;;17739:60;-1:-1:-1;;;17830:3:1;17815:19;17808:35;17727:3;16869:980;-1:-1:-1;;;16869:980:1:o;18466:306::-;18554:6;18562;18570;18623:2;18611:9;18602:7;18598:23;18594:32;18591:52;;;18639:1;18636;18629:12;18591:52;18668:9;18662:16;18652:26;;18718:2;18707:9;18703:18;18697:25;18687:35;;18762:2;18751:9;18747:18;18741:25;18731:35;;18466:306;;;;;:::o

Swarm Source

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