ETH Price: $2,928.63 (-7.24%)
Gas: 8 Gwei

Contract

0x3Be49dE62c30CB373aDf3ADf6142489CfCBBF499
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Approve192390582024-02-16 7:44:23140 days ago1708069463IN
0x3Be49dE6...CfCBBF499
0 ETH0.0010821823.25287693
Approve192231892024-02-14 2:18:59142 days ago1707877139IN
0x3Be49dE6...CfCBBF499
0 ETH0.0008817518.94620369
Transfer192095302024-02-12 4:21:59144 days ago1707711719IN
0x3Be49dE6...CfCBBF499
0 ETH0.001269120.25992404
Approve191818462024-02-08 7:05:47148 days ago1707375947IN
0x3Be49dE6...CfCBBF499
0 ETH0.0015788233.92407821
Approve191809592024-02-08 4:07:11148 days ago1707365231IN
0x3Be49dE6...CfCBBF499
0 ETH0.0013528829.22750491
Approve190544492024-01-21 9:49:59166 days ago1705830599IN
0x3Be49dE6...CfCBBF499
0 ETH0.0003423912.85258593
Approve190544212024-01-21 9:44:23166 days ago1705830263IN
0x3Be49dE6...CfCBBF499
0 ETH0.000680514.62197589
Transfer190268912024-01-17 13:25:11169 days ago1705497911IN
0x3Be49dE6...CfCBBF499
0 ETH0.002357234.94588475
Approve190209252024-01-16 17:24:11170 days ago1705425851IN
0x3Be49dE6...CfCBBF499
0 ETH0.001877540.28973873
Approve190129532024-01-15 14:43:47171 days ago1705329827IN
0x3Be49dE6...CfCBBF499
0 ETH0.000777426.40639468
Approve189852312024-01-11 17:41:23175 days ago1704994883IN
0x3Be49dE6...CfCBBF499
0 ETH0.0015807933.96636826
Approve189812932024-01-11 4:24:47176 days ago1704947087IN
0x3Be49dE6...CfCBBF499
0 ETH0.0007265627.53396763
Approve189812892024-01-11 4:23:59176 days ago1704947039IN
0x3Be49dE6...CfCBBF499
0 ETH0.000708524.27391121
Approve189509422024-01-06 21:57:47180 days ago1704578267IN
0x3Be49dE6...CfCBBF499
0 ETH0.0005780512.40469283
Approve189498482024-01-06 18:14:11180 days ago1704564851IN
0x3Be49dE6...CfCBBF499
0 ETH0.0007992317.17299045
Transfer189496722024-01-06 17:37:59180 days ago1704562679IN
0x3Be49dE6...CfCBBF499
0 ETH0.0014973523.89460087
Approve189473592024-01-06 9:42:23181 days ago1704534143IN
0x3Be49dE6...CfCBBF499
0 ETH0.0005887212.64978236
Approve189454842024-01-06 3:23:23181 days ago1704511403IN
0x3Be49dE6...CfCBBF499
0 ETH0.0004716810.12201088
Approve189195232024-01-02 11:52:59184 days ago1704196379IN
0x3Be49dE6...CfCBBF499
0 ETH0.0007667216.56416507
Transfer188945422023-12-29 23:38:35188 days ago1703893115IN
0x3Be49dE6...CfCBBF499
0 ETH0.0012048617.86541993
Approve188641012023-12-25 17:03:35192 days ago1703523815IN
0x3Be49dE6...CfCBBF499
0 ETH0.0006226721.34206875
Approve188640952023-12-25 17:02:23192 days ago1703523743IN
0x3Be49dE6...CfCBBF499
0 ETH0.0006362921.79974259
Approve186515892023-11-25 22:08:47222 days ago1700950127IN
0x3Be49dE6...CfCBBF499
0 ETH0.0015414933.07935316
Approve186445562023-11-24 22:31:35223 days ago1700865095IN
0x3Be49dE6...CfCBBF499
0 ETH0.0015238232.74233148
Approve186427782023-11-24 16:32:47223 days ago1700843567IN
0x3Be49dE6...CfCBBF499
0 ETH0.0026142656.10007987
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
190707572024-01-23 17:08:35163 days ago1706029715
0x3Be49dE6...CfCBBF499
0.01252947 ETH
190707572024-01-23 17:08:35163 days ago1706029715
0x3Be49dE6...CfCBBF499
0.0000399 ETH
190707572024-01-23 17:08:35163 days ago1706029715
0x3Be49dE6...CfCBBF499
0.00069386 ETH
190707572024-01-23 17:08:35163 days ago1706029715
0x3Be49dE6...CfCBBF499
0.01318343 ETH
190546742024-01-21 10:35:23166 days ago1705833323
0x3Be49dE6...CfCBBF499
0.00437223 ETH
190546742024-01-21 10:35:23166 days ago1705833323
0x3Be49dE6...CfCBBF499
0.00000552 ETH
190546742024-01-21 10:35:23166 days ago1705833323
0x3Be49dE6...CfCBBF499
0.00024259 ETH
190546742024-01-21 10:35:23166 days ago1705833323
0x3Be49dE6...CfCBBF499
0.0046093 ETH
190546612024-01-21 10:32:47166 days ago1705833167
0x3Be49dE6...CfCBBF499
0.00956373 ETH
190546612024-01-21 10:32:47166 days ago1705833167
0x3Be49dE6...CfCBBF499
0.00001957 ETH
190546612024-01-21 10:32:47166 days ago1705833167
0x3Be49dE6...CfCBBF499
0.00053023 ETH
190546612024-01-21 10:32:47166 days ago1705833167
0x3Be49dE6...CfCBBF499
0.01007438 ETH
190309902024-01-18 3:12:35169 days ago1705547555
0x3Be49dE6...CfCBBF499
0.02499832 ETH
190309902024-01-18 3:12:35169 days ago1705547555
0x3Be49dE6...CfCBBF499
0.00011734 ETH
190309902024-01-18 3:12:35169 days ago1705547555
0x3Be49dE6...CfCBBF499
0.00138227 ETH
190309902024-01-18 3:12:35169 days ago1705547555
0x3Be49dE6...CfCBBF499
0.02626325 ETH
190129552024-01-15 14:44:11171 days ago1705329851
0x3Be49dE6...CfCBBF499
0.01915683 ETH
190129552024-01-15 14:44:11171 days ago1705329851
0x3Be49dE6...CfCBBF499
0.00013625 ETH
190129552024-01-15 14:44:11171 days ago1705329851
0x3Be49dE6...CfCBBF499
0.00105669 ETH
190129552024-01-15 14:44:11171 days ago1705329851
0x3Be49dE6...CfCBBF499
0.02007727 ETH
190129382024-01-15 14:40:47171 days ago1705329647
0x3Be49dE6...CfCBBF499
0.02745748 ETH
190129382024-01-15 14:40:47171 days ago1705329647
0x3Be49dE6...CfCBBF499
0.00020798 ETH
190129382024-01-15 14:40:47171 days ago1705329647
0x3Be49dE6...CfCBBF499
0.00151386 ETH
190129382024-01-15 14:40:47171 days ago1705329647
0x3Be49dE6...CfCBBF499
0.02876336 ETH
188641082023-12-25 17:04:59192 days ago1703523899
0x3Be49dE6...CfCBBF499
0.00849045 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
QuestCoin

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

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

/*

QUEST (QUEST)

Twitter: https://x.com/questcoinerc
Tg: https://t.me/QuestCoinETH
Website: https://www.questcoineth.com

*/


abstract contract Ownable {
    address private _owner;

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

    constructor(address owner_) {
        _transferOwnership(owner_);
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

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

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

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

}

interface IERC20 {

    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);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function balanceOf(address account) external view returns (uint256);
    function totalSupply() external view returns (uint256);
    event Transfer(address indexed from, address indexed to, uint256 value);

}

interface IERC20Metadata is IERC20 {

    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function decimals() external view returns (uint8);

}

contract ERC20 is IERC20, IERC20Metadata {

    string private _symbol;
    string private _name;


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

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

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

        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "ERC20: transfer amount greater than allowance");
        unchecked {
            _approve(sender, msg.sender, currentAllowance - amount);
        }

        return true;
    }

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

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

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

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

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

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

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount greater than balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, 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 increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }

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

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

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

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

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

        return true;
    }

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

}

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

interface IUniswapV2Router02 {
    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 QuestCoin is ERC20, Ownable {

    address public LPTokenReceiver;
    address public marketingReceiver;

    uint256 public buyTotalFees;
    uint256 public sellTotalFees;

    uint256 public buyMarketingFee;
    uint256 public buyLiquidityFee;

    uint256 public sellMarketingFee;
    uint256 public sellLiquidityFee;

    uint256 public tokensForMarketing;
    uint256 public tokensForLiquidity;

    IUniswapV2Router02 public router;
    address public liquidityPair;

    mapping(address => bool) public isAMM;

    uint256 public maxTransactionAmount;
    uint256 public maxWallet;

    mapping(address => bool) private isExcludedFromFee;
    mapping(address => bool) public isExcludedFromWalletLimits;

    uint256 public feeDenominator = 1000;
    
    bool private swapping;
    uint256 public swapThreshold;
    bool public limitsInEffect = true;

    // While limits are in effect, an EOA can have exactly one transaction per block
    mapping(address => mapping(uint256 => uint256)) public blockTransferCount;

    // This feature can only be enabled and not disabled.
    // Enabling these will cap the buy or sell fee to some value
    // a value of 50 => 5% max. A value of 150 => 15% max
    bool maxSellFeeSet = false;
    bool maxBuyFeeSet = false;
    uint256 maxSellFee;
    uint256 maxBuyFee;

    mapping(address => bool) public isFeeWhitelisted;
    bool public feeWhitelistInEffect = true;

    constructor(
        address router_,
        address LPTokenReceiver_,
        address marketingReceiver_
    ) ERC20("QUEST", "QUEST") Ownable(msg.sender) {

        LPTokenReceiver = LPTokenReceiver_;
        marketingReceiver = marketingReceiver_;

        router = IUniswapV2Router02(router_);

        liquidityPair = IUniswapV2Factory(
            router.factory()
        ).createPair(
            address(this),
            router.WETH()
        );

        isAMM[liquidityPair] = true;

        isExcludedFromWalletLimits[address(liquidityPair)] = true;
        isExcludedFromWalletLimits[address(router)] = true;
        isExcludedFromWalletLimits[address(this)] = true;
        isExcludedFromWalletLimits[address(0xdead)] = true;
        isExcludedFromWalletLimits[msg.sender] = true;
        isExcludedFromWalletLimits[LPTokenReceiver] = true;

        uint256 totalSupply = 1_000_000_000_000 * 1e18;
        
        buyMarketingFee = 0;
        buyLiquidityFee = 0;

        sellMarketingFee = 280;
        sellLiquidityFee = 20;

        buyTotalFees = buyMarketingFee + buyLiquidityFee;
        sellTotalFees = sellMarketingFee + sellLiquidityFee;

        isExcludedFromFee[address(0xdead)] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;
        isExcludedFromFee[LPTokenReceiver] = true;

        maxTransactionAmount = totalSupply * 5 / 1000;
        maxWallet = totalSupply * 10 / 1000;
        swapThreshold = totalSupply / 1000;

        /*
            _mint is an internal function in ERC20.sol that is only called here,
            and CANNOT be called ever again
        */
        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    function airdropTokens(address[] calldata holders, uint256[] calldata amounts) external {

        for (uint i=0; i<holders.length; i++) {
            super._transfer(msg.sender, holders[i], amounts[i]);
        }
    }

    function setFeeWhitelist(address[] calldata accounts, bool[] calldata isWhitelisted) external onlyOwner {
        for (uint i=0; i<accounts.length; i++) {
            isFeeWhitelisted[accounts[i]] = isWhitelisted[i];
        }        
    }

    function addLiquidity(uint256 tokenAmount) external payable onlyOwner {
        _addLiquidity(tokenAmount, msg.value);
    }

    function setBuyFees(uint256 marketingFee, uint256 liquidityFee) external onlyOwner {
        buyMarketingFee = marketingFee;
        buyLiquidityFee = liquidityFee;

        buyTotalFees = buyMarketingFee + buyLiquidityFee;

        if (maxBuyFeeSet) {
            require(buyTotalFees <= maxBuyFee);
        }
    }

    function setSellFees(uint256 marketingFee, uint256 liquidityFee) external onlyOwner {
        sellMarketingFee = marketingFee;
        sellLiquidityFee = liquidityFee;

        sellTotalFees = sellMarketingFee + sellLiquidityFee;

        if (maxSellFeeSet) {
            require(sellTotalFees <= maxSellFee);
        }
    }

    function setLimits(uint256 maxTransactionAmount_, uint256 maxWallet_) external onlyOwner {
        maxTransactionAmount = maxTransactionAmount_;
        maxWallet = maxWallet_;
    }

    function removeLimits() external onlyOwner {
        require(limitsInEffect);
        limitsInEffect = false;
    }

    function setFeeWhitelistInEffect(bool inEffect) external onlyOwner {
        feeWhitelistInEffect = inEffect;
    }

    function setSwapThreshold(uint256 swapThreshold_) external onlyOwner {
        swapThreshold = swapThreshold_;
    }

    function setLPTokenReceiver(address newReceiver) external onlyOwner {
        require(LPTokenReceiver != newReceiver);
        isExcludedFromFee[newReceiver] = true;
        isExcludedFromWalletLimits[newReceiver] = true;
        LPTokenReceiver = newReceiver;
    }

    function setMarketingReceiver(address newReceiver) external onlyOwner {
        require(marketingReceiver != newReceiver);
        isExcludedFromFee[newReceiver] = true;
        isExcludedFromWalletLimits[newReceiver] = true;
        marketingReceiver = newReceiver;
    }

    function setAMM(address ammAddress, bool isAMM_) external onlyOwner {
        isAMM[ammAddress] = isAMM_;
    }

    function setWalletExcludedFromLimits(address wallet, bool isExcluded) external onlyOwner {
        isExcludedFromWalletLimits[wallet] = isExcluded;
    }

    function setWalletExcludedFromFees(address wallet, bool isExcluded) external onlyOwner {
        isExcludedFromFee[wallet] = isExcluded;
    }

    function setRouter(address router_) external onlyOwner {
        router = IUniswapV2Router02(router_);
    }

    function setLiquidityPair(address pairAddress) external onlyOwner {
        liquidityPair = pairAddress;
    }

    function enableMaxSellFeeLimit(uint256 limit) external onlyOwner {
        require(limit <= feeDenominator && limit < maxSellFee);
        maxSellFee = limit;
        maxSellFeeSet = true;
    }

    function enableMaxBuyFeeLimit(uint256 limit) external onlyOwner {
        require(limit <= feeDenominator && limit < maxBuyFee);
        maxBuyFee = limit;
        maxBuyFeeSet = true;
    }

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

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        bool takeFee = !swapping;

        if (isExcludedFromFee[from] || isExcludedFromFee[to]) {
            takeFee = false;
        }

        if (takeFee) {

            uint256 fees = 0;

            if (isAMM[to] && sellTotalFees > 0) {
                uint256 newTokensForMarketing = amount * sellMarketingFee / feeDenominator;
                uint256 newTokensForLiquidity = amount * sellLiquidityFee / feeDenominator;

                fees = newTokensForMarketing + newTokensForLiquidity;

                tokensForMarketing += newTokensForMarketing;
                tokensForLiquidity += newTokensForLiquidity;
            }

            else if (isAMM[from] && buyTotalFees > 0) {
                if (!feeWhitelistInEffect || !isFeeWhitelisted[to]) {
                    uint256 newTokensForMarketing = amount * buyMarketingFee / feeDenominator;
                    uint256 newTokensForLiquidity = amount * buyLiquidityFee / feeDenominator;

                    fees = newTokensForMarketing + newTokensForLiquidity;

                    tokensForMarketing += newTokensForMarketing;
                    tokensForLiquidity += newTokensForLiquidity;
                }
            }

            if (fees > 0) {
                super._transfer(from, address(this), fees);
                amount -= fees;
            }
        }

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0xdead) &&
                !swapping
            ) {
                require(blockTransferCount[tx.origin][block.number] == 0);
                blockTransferCount[tx.origin][block.number] = 1;

                if (
                    isAMM[from] &&
                    !isExcludedFromWalletLimits[to]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "!maxTransactionAmount."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "!maxWallet"
                    );
                } else if (
                    isAMM[to] &&
                    !isExcludedFromWalletLimits[from]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "!maxTransactionAmount."
                    );
                } else if (!isExcludedFromWalletLimits[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "!maxWallet"
                    );
                }
            }
        }

        if (
            !swapping &&
            from != liquidityPair &&
            to == liquidityPair &&
            !isExcludedFromFee[from] &&
            !isExcludedFromFee[to] &&
            balanceOf(address(this)) >= swapThreshold
        ) {
            swapping = true;

            swapBack();

            swapping = false;
        }


        super._transfer(from, to, amount);
    }

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

    function swapBack() internal {
        tokensForMarketing = balanceOf(address(this)) - tokensForLiquidity;
        if (tokensForLiquidity + tokensForMarketing == 0) {
            return;
        }

        uint256 liquidity = tokensForLiquidity / 2;
        uint256 amountToSwapForETH = tokensForMarketing + (tokensForLiquidity - liquidity);
        swapTokensForEth(amountToSwapForETH);

        uint256 ethForLiquidity = address(this).balance * (tokensForLiquidity - liquidity) / amountToSwapForETH;

        if (liquidity > 0 && ethForLiquidity > 0) {
            _addLiquidity(liquidity, ethForLiquidity);
        }

        if (tokensForMarketing > 0) {
            marketingReceiver.call{value: address(this).balance}("");
        }

        tokensForLiquidity = 0;
        tokensForMarketing = 0;
    }

    function _addLiquidity(uint256 tokenAmount, uint256 ethAmount) internal {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ethAmount} (
            address(this),
            tokenAmount,
            0,
            0,
            LPTokenReceiver,
            block.timestamp
        );
    }

    function withdrawStuckTokens(address tokenAddress, uint256 amount) external {
        require(tokenAddress != address(this));
        uint256 tokenBalance = IERC20(tokenAddress).balanceOf(address(this));
        uint256 amountToTransfer = amount == 0 ? tokenBalance : amount;
        _safeTransfer(tokenAddress, marketingReceiver, amountToTransfer);
    }

    function withdrawStuckETH() external {
        (bool success,) = marketingReceiver.call{value: address(this).balance}("");
        require(success);
    }

    function _safeTransfer(address token, address to, uint256 value) private {
        bytes4 TRANSFERSELECTOR = bytes4(keccak256(bytes('transfer(address,uint256)')));

        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(TRANSFERSELECTOR, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TRANSFER_FAILED');
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"router_","type":"address"},{"internalType":"address","name":"LPTokenReceiver_","type":"address"},{"internalType":"address","name":"marketingReceiver_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"LPTokenReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"holders","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdropTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"blockTransferCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"name":"enableMaxBuyFeeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"name":"enableMaxSellFeeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeWhitelistInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isAMM","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromWalletLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ammAddress","type":"address"},{"internalType":"bool","name":"isAMM_","type":"bool"}],"name":"setAMM","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool[]","name":"isWhitelisted","type":"bool[]"}],"name":"setFeeWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"inEffect","type":"bool"}],"name":"setFeeWhitelistInEffect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newReceiver","type":"address"}],"name":"setLPTokenReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTransactionAmount_","type":"uint256"},{"internalType":"uint256","name":"maxWallet_","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pairAddress","type":"address"}],"name":"setLiquidityPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newReceiver","type":"address"}],"name":"setMarketingReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router_","type":"address"}],"name":"setRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapThreshold_","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"setWalletExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"setWalletExcludedFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526103e8601755601a8054600160ff199182168117909255601c805461ffff191690556020805490911690911790553480156200003e575f80fd5b506040516200301738038062003017833981016040819052620000619162000582565b60408051808201825260058082526414555154d560da1b6020808401829052845180860190955291845290830152339160016200009f838262000669565b505f620000ad828262000669565b505050620000c1816200043060201b60201c565b50600680546001600160a01b038085166001600160a01b031992831617909255600780548484169083161790556010805492861692909116821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000137573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200015d919062000731565b6001600160a01b031663c9c653963060105f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001bd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e3919062000731565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200022e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000254919062000731565b601180546001600160a01b0319166001600160a01b0392831690811782555f908152601260209081526040808320805460ff1990811660019081179092559454861684526016909252808320805485168317905560105485168352808320805485168317905530835280832080548516831790557f290d80ce586bfe95e1ebf348e3ba109df813891ad867417e64d38c5a50473b5780548516831790553383528083208054851683179055600654909416825292812080549092169092179055600a819055600b819055610118600c556014600d556c0c9f2c9cd04674edea400000009062000344908062000768565b600855600d54600c5462000359919062000768565b60095560156020527f7ed1dca03d96f947ab02d66053f47073699eb6287021936c92f54972932767e58054600160ff199182168117909255305f9081526040808220805484168517905533825280822080548416851790556006546001600160a01b031682529020805490911690911790556103e8620003db82600562000784565b620003e791906200079e565b6013556103e8620003fa82600a62000784565b6200040691906200079e565b601455620004176103e8826200079e565b60195562000426338262000481565b50505050620007be565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620004dc5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060035f828254620004ef919062000768565b90915550506001600160a01b0382165f90815260046020526040812080548392906200051d90849062000768565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b80516001600160a01b03811681146200057d575f80fd5b919050565b5f805f6060848603121562000595575f80fd5b620005a08462000566565b9250620005b06020850162000566565b9150620005c06040850162000566565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620005f257607f821691505b6020821081036200061157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000664575f81815260208120601f850160051c810160208610156200063f5750805b601f850160051c820191505b8181101562000660578281556001016200064b565b5050505b505050565b81516001600160401b03811115620006855762000685620005c9565b6200069d81620006968454620005dd565b8462000617565b602080601f831160018114620006d3575f8415620006bb5750858301515b5f19600386901b1c1916600185901b17855562000660565b5f85815260208120601f198616915b828110156200070357888601518255948401946001909101908401620006e2565b50858210156200072157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6020828403121562000742575f80fd5b6200074d8262000566565b9392505050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156200077e576200077e62000754565b92915050565b80820281158282048414176200077e576200077e62000754565b5f82620007b957634e487b7160e01b5f52601260045260245ffd5b500490565b61284b80620007cc5f395ff3fe60806040526004361061035e575f3560e01c806392136913116101bd578063c8c8ebe4116100f2578063e24a880211610092578063f5648a4f1161006d578063f5648a4f146109c4578063f6374342146109d8578063f887ea40146109ed578063f8b45b0514610a0c575f80fd5b8063e24a880214610977578063f11a24d314610990578063f2fde38b146109a5575f80fd5b8063d85ba063116100cd578063d85ba063146108d1578063daea8623146108e6578063dd62ed3e14610914578063e219558e14610958575f80fd5b8063c8c8ebe41461086f578063d46b6a3014610884578063d6498bc2146108b2575f80fd5b8063a5949bcf1161015d578063b2d8f20811610138578063b2d8f208146107f3578063bd61f0a614610812578063c0d7865514610831578063c4590d3f14610850575f80fd5b8063a5949bcf14610796578063a9059cbb146107b5578063a9d3cd8a146107d4575f80fd5b80639d93598e116101985780639d93598e146107035780639df4b65e146107225780639fd8234e14610758578063a457c2d714610777575f80fd5b806392136913146106bb57806395d89b41146106d05780639d0014b1146106e4575f80fd5b80634a62bb6511610293578063751039fc11610233578063808a54571161020e578063808a5457146106415780638d67cffe146106605780638da5cb5b1461067f5780638e89cf4d1461069c575f80fd5b8063751039fc146105f957806375b625321461060d5780637bce5a041461062c575f80fd5b80636a486a8e1161026e5780636a486a8e1461057d578063706f69371461059257806370a08231146105b1578063715018a6146105e5575f80fd5b80634a62bb651461052357806351c6590a1461053c5780636940213a1461054f575f80fd5b806318160ddd116102fe57806323b872dd116102d957806323b872dd1461049357806323c04d9d146104b2578063313ce567146104e95780633950935114610504575f80fd5b806318160ddd146104555780631a8145bb146104695780631f3fed8f1461047e575f80fd5b8063095ea7b311610339578063095ea7b3146103d35780630b784062146104025780630e99dcad14610421578063180b0d7e14610440575f80fd5b80630445b6671461036957806306fdde031461039157806307c0f6c7146103b2575f80fd5b3661036557005b5f80fd5b348015610374575f80fd5b5061037e60195481565b6040519081526020015b60405180910390f35b34801561039c575f80fd5b506103a5610a21565b60405161038891906123c9565b3480156103bd575f80fd5b506103d16103cc366004612443565b610ab1565b005b3480156103de575f80fd5b506103f26103ed3660046124be565b610b8e565b6040519015158152602001610388565b34801561040d575f80fd5b506103d161041c3660046124f5565b610ba4565b34801561042c575f80fd5b506103d161043b366004612517565b610bf0565b34801561044b575f80fd5b5061037e60175481565b348015610460575f80fd5b5060035461037e565b348015610474575f80fd5b5061037e600f5481565b348015610489575f80fd5b5061037e600e5481565b34801561049e575f80fd5b506103f26104ad366004612532565b610c90565b3480156104bd575f80fd5b506006546104d1906001600160a01b031681565b6040516001600160a01b039091168152602001610388565b3480156104f4575f80fd5b5060405160128152602001610388565b34801561050f575f80fd5b506103f261051e3660046124be565b610d3d565b34801561052e575f80fd5b50601a546103f29060ff1681565b6103d161054a366004612570565b610d78565b34801561055a575f80fd5b506103f2610569366004612517565b60166020525f908152604090205460ff1681565b348015610588575f80fd5b5061037e60095481565b34801561059d575f80fd5b506103d16105ac366004612443565b610dbe565b3480156105bc575f80fd5b5061037e6105cb366004612517565b6001600160a01b03165f9081526004602052604090205490565b3480156105f0575f80fd5b506103d1610e23565b348015610604575f80fd5b506103d1610e67565b348015610618575f80fd5b506103d1610627366004612517565b610eba565b348015610637575f80fd5b5061037e600a5481565b34801561064c575f80fd5b506011546104d1906001600160a01b031681565b34801561066b575f80fd5b506103d161067a366004612570565b610f5a565b34801561068a575f80fd5b506005546001600160a01b03166104d1565b3480156106a7575f80fd5b506103d16106b6366004612587565b610fc0565b3480156106c6575f80fd5b5061037e600c5481565b3480156106db575f80fd5b506103a5611023565b3480156106ef575f80fd5b506103d16106fe366004612570565b611031565b34801561070e575f80fd5b506103d161071d366004612517565b61106f565b34801561072d575f80fd5b5061037e61073c3660046124be565b601b60209081525f928352604080842090915290825290205481565b348015610763575f80fd5b506103d16107723660046125be565b6110ca565b348015610782575f80fd5b506103f26107913660046124be565b611139565b3480156107a1575f80fd5b506007546104d1906001600160a01b031681565b3480156107c0575f80fd5b506103f26107cf3660046124be565b6111d1565b3480156107df575f80fd5b506103d16107ee366004612587565b6111dd565b3480156107fe575f80fd5b506103d161080d3660046125be565b611240565b34801561081d575f80fd5b506103d161082c3660046124be565b6112b0565b34801561083c575f80fd5b506103d161084b366004612517565b61135e565b34801561085b575f80fd5b506103d161086a3660046125be565b6113b9565b34801561087a575f80fd5b5061037e60135481565b34801561088f575f80fd5b506103f261089e366004612517565b60126020525f908152604090205460ff1681565b3480156108bd575f80fd5b506103d16108cc366004612587565b6113fd565b3480156108dc575f80fd5b5061037e60085481565b3480156108f1575f80fd5b506103f2610900366004612517565b601f6020525f908152604090205460ff1681565b34801561091f575f80fd5b5061037e61092e3660046125de565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610963575f80fd5b506103d1610972366004612570565b611460565b348015610982575f80fd5b506020546103f29060ff1681565b34801561099b575f80fd5b5061037e600b5481565b3480156109b0575f80fd5b506103d16109bf366004612517565b6114c8565b3480156109cf575f80fd5b506103d161156f565b3480156109e3575f80fd5b5061037e600d5481565b3480156109f8575f80fd5b506010546104d1906001600160a01b031681565b348015610a17575f80fd5b5061037e60145481565b606060018054610a309061260a565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5c9061260a565b8015610aa75780601f10610a7e57610100808354040283529160200191610aa7565b820191905f5260205f20905b815481529060010190602001808311610a8a57829003601f168201915b5050505050905090565b33610ac46005546001600160a01b031690565b6001600160a01b031614610af35760405162461bcd60e51b8152600401610aea90612642565b60405180910390fd5b5f5b83811015610b8757828282818110610b0f57610b0f612677565b9050602002016020810190610b2491906124f5565b601f5f878785818110610b3957610b39612677565b9050602002016020810190610b4e9190612517565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905580610b7f8161269f565b915050610af5565b5050505050565b5f610b9a3384846115cb565b5060015b92915050565b33610bb76005546001600160a01b031690565b6001600160a01b031614610bdd5760405162461bcd60e51b8152600401610aea90612642565b6020805460ff1916911515919091179055565b33610c036005546001600160a01b031690565b6001600160a01b031614610c295760405162461bcd60e51b8152600401610aea90612642565b6006546001600160a01b03808316911603610c42575f80fd5b6001600160a01b03165f8181526015602090815260408083208054600160ff1991821681179092556016909352922080549091169091179055600680546001600160a01b0319169091179055565b5f610c9c8484846116ee565b6001600160a01b0384165f90815260026020908152604080832033845290915290205482811015610d255760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526c68616e20616c6c6f77616e636560981b6064820152608401610aea565b610d3285338584036115cb565b506001949350505050565b335f8181526002602090815260408083206001600160a01b03871684529091528120549091610b9a918590610d739086906126b7565b6115cb565b33610d8b6005546001600160a01b031690565b6001600160a01b031614610db15760405162461bcd60e51b8152600401610aea90612642565b610dbb8134611d2c565b50565b5f5b83811015610b8757610e1133868684818110610dde57610dde612677565b9050602002016020810190610df39190612517565b858585818110610e0557610e05612677565b90506020020135611dd6565b80610e1b8161269f565b915050610dc0565b33610e366005546001600160a01b031690565b6001600160a01b031614610e5c5760405162461bcd60e51b8152600401610aea90612642565b610e655f611f98565b565b33610e7a6005546001600160a01b031690565b6001600160a01b031614610ea05760405162461bcd60e51b8152600401610aea90612642565b601a5460ff16610eae575f80fd5b601a805460ff19169055565b33610ecd6005546001600160a01b031690565b6001600160a01b031614610ef35760405162461bcd60e51b8152600401610aea90612642565b6007546001600160a01b03808316911603610f0c575f80fd5b6001600160a01b03165f8181526015602090815260408083208054600160ff1991821681179092556016909352922080549091169091179055600780546001600160a01b0319169091179055565b33610f6d6005546001600160a01b031690565b6001600160a01b031614610f935760405162461bcd60e51b8152600401610aea90612642565b6017548111158015610fa65750601d5481105b610fae575f80fd5b601d55601c805460ff19166001179055565b33610fd36005546001600160a01b031690565b6001600160a01b031614610ff95760405162461bcd60e51b8152600401610aea90612642565b6001600160a01b03919091165f908152601560205260409020805460ff1916911515919091179055565b60605f8054610a309061260a565b336110446005546001600160a01b031690565b6001600160a01b03161461106a5760405162461bcd60e51b8152600401610aea90612642565b601955565b336110826005546001600160a01b031690565b6001600160a01b0316146110a85760405162461bcd60e51b8152600401610aea90612642565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b336110dd6005546001600160a01b031690565b6001600160a01b0316146111035760405162461bcd60e51b8152600401610aea90612642565b600c829055600d81905561111781836126b7565b600955601c5460ff161561113557601d546009541115611135575f80fd5b5050565b335f9081526002602090815260408083206001600160a01b0386168452909152812054828110156111ba5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610aea565b6111c733858584036115cb565b5060019392505050565b5f610b9a3384846116ee565b336111f06005546001600160a01b031690565b6001600160a01b0316146112165760405162461bcd60e51b8152600401610aea90612642565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b336112536005546001600160a01b031690565b6001600160a01b0316146112795760405162461bcd60e51b8152600401610aea90612642565b600a829055600b81905561128d81836126b7565b600855601c54610100900460ff161561113557601e546008541115611135575f80fd5b306001600160a01b038316036112c4575f80fd5b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611308573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061132c91906126ca565b90505f821561133b578261133d565b815b6007549091506113589085906001600160a01b031683611fe9565b50505050565b336113716005546001600160a01b031690565b6001600160a01b0316146113975760405162461bcd60e51b8152600401610aea90612642565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b336113cc6005546001600160a01b031690565b6001600160a01b0316146113f25760405162461bcd60e51b8152600401610aea90612642565b601391909155601455565b336114106005546001600160a01b031690565b6001600160a01b0316146114365760405162461bcd60e51b8152600401610aea90612642565b6001600160a01b03919091165f908152601660205260409020805460ff1916911515919091179055565b336114736005546001600160a01b031690565b6001600160a01b0316146114995760405162461bcd60e51b8152600401610aea90612642565b60175481111580156114ac5750601e5481105b6114b4575f80fd5b601e55601c805461ff001916610100179055565b336114db6005546001600160a01b031690565b6001600160a01b0316146115015760405162461bcd60e51b8152600401610aea90612642565b6001600160a01b0381166115665760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610aea565b610dbb81611f98565b6007546040515f916001600160a01b03169047908381818185875af1925050503d805f81146115b9576040519150601f19603f3d011682016040523d82523d5f602084013e6115be565b606091505b5050905080610dbb575f80fd5b6001600160a01b03831661162d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610aea565b6001600160a01b03821661168e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610aea565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117525760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610aea565b6001600160a01b0382166117b45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610aea565b805f036117cb576117c683835f611dd6565b505050565b6018546001600160a01b0384165f9081526015602052604090205460ff9182161591168061181057506001600160a01b0383165f9081526015602052604090205460ff165b1561181857505f5b80156119be576001600160a01b0383165f9081526012602052604081205460ff16801561184657505f600954115b156118c9575f601754600c548561185d91906126e1565b61186791906126f8565b90505f601754600d548661187b91906126e1565b61188591906126f8565b905061189181836126b7565b925081600e5f8282546118a491906126b7565b9250508190555080600f5f8282546118bc91906126b7565b9091555061199e92505050565b6001600160a01b0385165f9081526012602052604090205460ff1680156118f157505f600854115b1561199e5760205460ff16158061192057506001600160a01b0384165f908152601f602052604090205460ff16155b1561199e575f601754600a548561193791906126e1565b61194191906126f8565b90505f601754600b548661195591906126e1565b61195f91906126f8565b905061196b81836126b7565b925081600e5f82825461197e91906126b7565b9250508190555080600f5f82825461199691906126b7565b909155505050505b80156119bc576119af853083611dd6565b6119b98184612717565b92505b505b601a5460ff1615611c5e576005546001600160a01b038581169116148015906119f557506005546001600160a01b03848116911614155b8015611a0c57506001600160a01b03831661dead14155b8015611a1b575060185460ff16155b15611c5e57325f908152601b6020908152604080832043845290915290205415611a43575f80fd5b325f908152601b602090815260408083204384528252808320600190556001600160a01b0387168352601290915290205460ff168015611a9b57506001600160a01b0383165f9081526016602052604090205460ff16155b15611b5057601354821115611aeb5760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610aea565b6014546001600160a01b0384165f90815260046020526040902054611b1090846126b7565b1115611b4b5760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610aea565b611c5e565b6001600160a01b0383165f9081526012602052604090205460ff168015611b8f57506001600160a01b0384165f9081526016602052604090205460ff16155b15611bdf57601354821115611b4b5760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610aea565b6001600160a01b0383165f9081526016602052604090205460ff16611c5e576014546001600160a01b0384165f90815260046020526040902054611c2390846126b7565b1115611c5e5760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610aea565b60185460ff16158015611c7f57506011546001600160a01b03858116911614155b8015611c9857506011546001600160a01b038481169116145b8015611cbc57506001600160a01b0384165f9081526015602052604090205460ff16155b8015611ce057506001600160a01b0383165f9081526015602052604090205460ff16155b8015611cfc5750601954305f9081526004602052604090205410155b15611d21576018805460ff19166001179055611d16612144565b6018805460ff191690555b611358848484611dd6565b601054611d449030906001600160a01b0316846115cb565b60105460065460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611db1573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b87919061272a565b6001600160a01b038316611e365760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b6064820152608401610aea565b6001600160a01b038216611e8c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f2061646472657373006044820152606401610aea565b6001600160a01b0383165f9081526004602052604090205481811015611f085760405162461bcd60e51b815260206004820152602b60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526a68616e2062616c616e636560a81b6064820152608401610aea565b6001600160a01b038085165f90815260046020526040808220858503905591851681529081208054849290611f3e9084906126b7565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f8a91815260200190565b60405180910390a350505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b17905291517fa9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b925f9283929088169161209691612755565b5f604051808303815f865af19150503d805f81146120cf576040519150601f19603f3d011682016040523d82523d5f602084013e6120d4565b606091505b50915091508180156120fe5750805115806120fe5750808060200190518101906120fe9190612770565b61213c5760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606401610aea565b505050505050565b600f54305f908152600460205260409020546121609190612717565b600e819055600f5461217291906126b7565b5f0361217a57565b5f6002600f5461218a91906126f8565b90505f81600f5461219b9190612717565b600e546121a891906126b7565b90506121b38161225f565b5f8183600f546121c39190612717565b6121cd90476126e1565b6121d791906126f8565b90505f831180156121e757505f81115b156121f6576121f68382611d2c565b600e5415612251576007546040516001600160a01b039091169047905f81818185875af1925050503d805f8114612248576040519150601f19603f3d011682016040523d82523d5f602084013e61224d565b606091505b5050505b50505f600f819055600e5550565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061229257612292612677565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156122e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061230d919061278b565b8160018151811061232057612320612677565b6001600160a01b03928316602091820292909201015260105461234691309116846115cb565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac9479061237e9085905f908690309042906004016127a6565b5f604051808303815f87803b158015612395575f80fd5b505af115801561213c573d5f803e3d5ffd5b5f5b838110156123c15781810151838201526020016123a9565b50505f910152565b602081525f82518060208401526123e78160408501602087016123a7565b601f01601f19169190910160400192915050565b5f8083601f84011261240b575f80fd5b50813567ffffffffffffffff811115612422575f80fd5b6020830191508360208260051b850101111561243c575f80fd5b9250929050565b5f805f8060408587031215612456575f80fd5b843567ffffffffffffffff8082111561246d575f80fd5b612479888389016123fb565b90965094506020870135915080821115612491575f80fd5b5061249e878288016123fb565b95989497509550505050565b6001600160a01b0381168114610dbb575f80fd5b5f80604083850312156124cf575f80fd5b82356124da816124aa565b946020939093013593505050565b8015158114610dbb575f80fd5b5f60208284031215612505575f80fd5b8135612510816124e8565b9392505050565b5f60208284031215612527575f80fd5b8135612510816124aa565b5f805f60608486031215612544575f80fd5b833561254f816124aa565b9250602084013561255f816124aa565b929592945050506040919091013590565b5f60208284031215612580575f80fd5b5035919050565b5f8060408385031215612598575f80fd5b82356125a3816124aa565b915060208301356125b3816124e8565b809150509250929050565b5f80604083850312156125cf575f80fd5b50508035926020909101359150565b5f80604083850312156125ef575f80fd5b82356125fa816124aa565b915060208301356125b3816124aa565b600181811c9082168061261e57607f821691505b60208210810361263c57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f600182016126b0576126b061268b565b5060010190565b80820180821115610b9e57610b9e61268b565b5f602082840312156126da575f80fd5b5051919050565b8082028115828204841417610b9e57610b9e61268b565b5f8261271257634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115610b9e57610b9e61268b565b5f805f6060848603121561273c575f80fd5b8351925060208401519150604084015190509250925092565b5f82516127668184602087016123a7565b9190910192915050565b5f60208284031215612780575f80fd5b8151612510816124e8565b5f6020828403121561279b575f80fd5b8151612510816124aa565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156127f45784516001600160a01b0316835293830193918301916001016127cf565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f0eedee2ab3269c6006ce25f21f6e9d4739d906562da4d561042193e96f1e59f64736f6c634300081500330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000003fd8086d40bfa97d944b3d5621f8b4d31ca4fc0d0000000000000000000000003fd8086d40bfa97d944b3d5621f8b4d31ca4fc0d

Deployed Bytecode

0x60806040526004361061035e575f3560e01c806392136913116101bd578063c8c8ebe4116100f2578063e24a880211610092578063f5648a4f1161006d578063f5648a4f146109c4578063f6374342146109d8578063f887ea40146109ed578063f8b45b0514610a0c575f80fd5b8063e24a880214610977578063f11a24d314610990578063f2fde38b146109a5575f80fd5b8063d85ba063116100cd578063d85ba063146108d1578063daea8623146108e6578063dd62ed3e14610914578063e219558e14610958575f80fd5b8063c8c8ebe41461086f578063d46b6a3014610884578063d6498bc2146108b2575f80fd5b8063a5949bcf1161015d578063b2d8f20811610138578063b2d8f208146107f3578063bd61f0a614610812578063c0d7865514610831578063c4590d3f14610850575f80fd5b8063a5949bcf14610796578063a9059cbb146107b5578063a9d3cd8a146107d4575f80fd5b80639d93598e116101985780639d93598e146107035780639df4b65e146107225780639fd8234e14610758578063a457c2d714610777575f80fd5b806392136913146106bb57806395d89b41146106d05780639d0014b1146106e4575f80fd5b80634a62bb6511610293578063751039fc11610233578063808a54571161020e578063808a5457146106415780638d67cffe146106605780638da5cb5b1461067f5780638e89cf4d1461069c575f80fd5b8063751039fc146105f957806375b625321461060d5780637bce5a041461062c575f80fd5b80636a486a8e1161026e5780636a486a8e1461057d578063706f69371461059257806370a08231146105b1578063715018a6146105e5575f80fd5b80634a62bb651461052357806351c6590a1461053c5780636940213a1461054f575f80fd5b806318160ddd116102fe57806323b872dd116102d957806323b872dd1461049357806323c04d9d146104b2578063313ce567146104e95780633950935114610504575f80fd5b806318160ddd146104555780631a8145bb146104695780631f3fed8f1461047e575f80fd5b8063095ea7b311610339578063095ea7b3146103d35780630b784062146104025780630e99dcad14610421578063180b0d7e14610440575f80fd5b80630445b6671461036957806306fdde031461039157806307c0f6c7146103b2575f80fd5b3661036557005b5f80fd5b348015610374575f80fd5b5061037e60195481565b6040519081526020015b60405180910390f35b34801561039c575f80fd5b506103a5610a21565b60405161038891906123c9565b3480156103bd575f80fd5b506103d16103cc366004612443565b610ab1565b005b3480156103de575f80fd5b506103f26103ed3660046124be565b610b8e565b6040519015158152602001610388565b34801561040d575f80fd5b506103d161041c3660046124f5565b610ba4565b34801561042c575f80fd5b506103d161043b366004612517565b610bf0565b34801561044b575f80fd5b5061037e60175481565b348015610460575f80fd5b5060035461037e565b348015610474575f80fd5b5061037e600f5481565b348015610489575f80fd5b5061037e600e5481565b34801561049e575f80fd5b506103f26104ad366004612532565b610c90565b3480156104bd575f80fd5b506006546104d1906001600160a01b031681565b6040516001600160a01b039091168152602001610388565b3480156104f4575f80fd5b5060405160128152602001610388565b34801561050f575f80fd5b506103f261051e3660046124be565b610d3d565b34801561052e575f80fd5b50601a546103f29060ff1681565b6103d161054a366004612570565b610d78565b34801561055a575f80fd5b506103f2610569366004612517565b60166020525f908152604090205460ff1681565b348015610588575f80fd5b5061037e60095481565b34801561059d575f80fd5b506103d16105ac366004612443565b610dbe565b3480156105bc575f80fd5b5061037e6105cb366004612517565b6001600160a01b03165f9081526004602052604090205490565b3480156105f0575f80fd5b506103d1610e23565b348015610604575f80fd5b506103d1610e67565b348015610618575f80fd5b506103d1610627366004612517565b610eba565b348015610637575f80fd5b5061037e600a5481565b34801561064c575f80fd5b506011546104d1906001600160a01b031681565b34801561066b575f80fd5b506103d161067a366004612570565b610f5a565b34801561068a575f80fd5b506005546001600160a01b03166104d1565b3480156106a7575f80fd5b506103d16106b6366004612587565b610fc0565b3480156106c6575f80fd5b5061037e600c5481565b3480156106db575f80fd5b506103a5611023565b3480156106ef575f80fd5b506103d16106fe366004612570565b611031565b34801561070e575f80fd5b506103d161071d366004612517565b61106f565b34801561072d575f80fd5b5061037e61073c3660046124be565b601b60209081525f928352604080842090915290825290205481565b348015610763575f80fd5b506103d16107723660046125be565b6110ca565b348015610782575f80fd5b506103f26107913660046124be565b611139565b3480156107a1575f80fd5b506007546104d1906001600160a01b031681565b3480156107c0575f80fd5b506103f26107cf3660046124be565b6111d1565b3480156107df575f80fd5b506103d16107ee366004612587565b6111dd565b3480156107fe575f80fd5b506103d161080d3660046125be565b611240565b34801561081d575f80fd5b506103d161082c3660046124be565b6112b0565b34801561083c575f80fd5b506103d161084b366004612517565b61135e565b34801561085b575f80fd5b506103d161086a3660046125be565b6113b9565b34801561087a575f80fd5b5061037e60135481565b34801561088f575f80fd5b506103f261089e366004612517565b60126020525f908152604090205460ff1681565b3480156108bd575f80fd5b506103d16108cc366004612587565b6113fd565b3480156108dc575f80fd5b5061037e60085481565b3480156108f1575f80fd5b506103f2610900366004612517565b601f6020525f908152604090205460ff1681565b34801561091f575f80fd5b5061037e61092e3660046125de565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610963575f80fd5b506103d1610972366004612570565b611460565b348015610982575f80fd5b506020546103f29060ff1681565b34801561099b575f80fd5b5061037e600b5481565b3480156109b0575f80fd5b506103d16109bf366004612517565b6114c8565b3480156109cf575f80fd5b506103d161156f565b3480156109e3575f80fd5b5061037e600d5481565b3480156109f8575f80fd5b506010546104d1906001600160a01b031681565b348015610a17575f80fd5b5061037e60145481565b606060018054610a309061260a565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5c9061260a565b8015610aa75780601f10610a7e57610100808354040283529160200191610aa7565b820191905f5260205f20905b815481529060010190602001808311610a8a57829003601f168201915b5050505050905090565b33610ac46005546001600160a01b031690565b6001600160a01b031614610af35760405162461bcd60e51b8152600401610aea90612642565b60405180910390fd5b5f5b83811015610b8757828282818110610b0f57610b0f612677565b9050602002016020810190610b2491906124f5565b601f5f878785818110610b3957610b39612677565b9050602002016020810190610b4e9190612517565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905580610b7f8161269f565b915050610af5565b5050505050565b5f610b9a3384846115cb565b5060015b92915050565b33610bb76005546001600160a01b031690565b6001600160a01b031614610bdd5760405162461bcd60e51b8152600401610aea90612642565b6020805460ff1916911515919091179055565b33610c036005546001600160a01b031690565b6001600160a01b031614610c295760405162461bcd60e51b8152600401610aea90612642565b6006546001600160a01b03808316911603610c42575f80fd5b6001600160a01b03165f8181526015602090815260408083208054600160ff1991821681179092556016909352922080549091169091179055600680546001600160a01b0319169091179055565b5f610c9c8484846116ee565b6001600160a01b0384165f90815260026020908152604080832033845290915290205482811015610d255760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526c68616e20616c6c6f77616e636560981b6064820152608401610aea565b610d3285338584036115cb565b506001949350505050565b335f8181526002602090815260408083206001600160a01b03871684529091528120549091610b9a918590610d739086906126b7565b6115cb565b33610d8b6005546001600160a01b031690565b6001600160a01b031614610db15760405162461bcd60e51b8152600401610aea90612642565b610dbb8134611d2c565b50565b5f5b83811015610b8757610e1133868684818110610dde57610dde612677565b9050602002016020810190610df39190612517565b858585818110610e0557610e05612677565b90506020020135611dd6565b80610e1b8161269f565b915050610dc0565b33610e366005546001600160a01b031690565b6001600160a01b031614610e5c5760405162461bcd60e51b8152600401610aea90612642565b610e655f611f98565b565b33610e7a6005546001600160a01b031690565b6001600160a01b031614610ea05760405162461bcd60e51b8152600401610aea90612642565b601a5460ff16610eae575f80fd5b601a805460ff19169055565b33610ecd6005546001600160a01b031690565b6001600160a01b031614610ef35760405162461bcd60e51b8152600401610aea90612642565b6007546001600160a01b03808316911603610f0c575f80fd5b6001600160a01b03165f8181526015602090815260408083208054600160ff1991821681179092556016909352922080549091169091179055600780546001600160a01b0319169091179055565b33610f6d6005546001600160a01b031690565b6001600160a01b031614610f935760405162461bcd60e51b8152600401610aea90612642565b6017548111158015610fa65750601d5481105b610fae575f80fd5b601d55601c805460ff19166001179055565b33610fd36005546001600160a01b031690565b6001600160a01b031614610ff95760405162461bcd60e51b8152600401610aea90612642565b6001600160a01b03919091165f908152601560205260409020805460ff1916911515919091179055565b60605f8054610a309061260a565b336110446005546001600160a01b031690565b6001600160a01b03161461106a5760405162461bcd60e51b8152600401610aea90612642565b601955565b336110826005546001600160a01b031690565b6001600160a01b0316146110a85760405162461bcd60e51b8152600401610aea90612642565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b336110dd6005546001600160a01b031690565b6001600160a01b0316146111035760405162461bcd60e51b8152600401610aea90612642565b600c829055600d81905561111781836126b7565b600955601c5460ff161561113557601d546009541115611135575f80fd5b5050565b335f9081526002602090815260408083206001600160a01b0386168452909152812054828110156111ba5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610aea565b6111c733858584036115cb565b5060019392505050565b5f610b9a3384846116ee565b336111f06005546001600160a01b031690565b6001600160a01b0316146112165760405162461bcd60e51b8152600401610aea90612642565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b336112536005546001600160a01b031690565b6001600160a01b0316146112795760405162461bcd60e51b8152600401610aea90612642565b600a829055600b81905561128d81836126b7565b600855601c54610100900460ff161561113557601e546008541115611135575f80fd5b306001600160a01b038316036112c4575f80fd5b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611308573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061132c91906126ca565b90505f821561133b578261133d565b815b6007549091506113589085906001600160a01b031683611fe9565b50505050565b336113716005546001600160a01b031690565b6001600160a01b0316146113975760405162461bcd60e51b8152600401610aea90612642565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b336113cc6005546001600160a01b031690565b6001600160a01b0316146113f25760405162461bcd60e51b8152600401610aea90612642565b601391909155601455565b336114106005546001600160a01b031690565b6001600160a01b0316146114365760405162461bcd60e51b8152600401610aea90612642565b6001600160a01b03919091165f908152601660205260409020805460ff1916911515919091179055565b336114736005546001600160a01b031690565b6001600160a01b0316146114995760405162461bcd60e51b8152600401610aea90612642565b60175481111580156114ac5750601e5481105b6114b4575f80fd5b601e55601c805461ff001916610100179055565b336114db6005546001600160a01b031690565b6001600160a01b0316146115015760405162461bcd60e51b8152600401610aea90612642565b6001600160a01b0381166115665760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610aea565b610dbb81611f98565b6007546040515f916001600160a01b03169047908381818185875af1925050503d805f81146115b9576040519150601f19603f3d011682016040523d82523d5f602084013e6115be565b606091505b5050905080610dbb575f80fd5b6001600160a01b03831661162d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610aea565b6001600160a01b03821661168e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610aea565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117525760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610aea565b6001600160a01b0382166117b45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610aea565b805f036117cb576117c683835f611dd6565b505050565b6018546001600160a01b0384165f9081526015602052604090205460ff9182161591168061181057506001600160a01b0383165f9081526015602052604090205460ff165b1561181857505f5b80156119be576001600160a01b0383165f9081526012602052604081205460ff16801561184657505f600954115b156118c9575f601754600c548561185d91906126e1565b61186791906126f8565b90505f601754600d548661187b91906126e1565b61188591906126f8565b905061189181836126b7565b925081600e5f8282546118a491906126b7565b9250508190555080600f5f8282546118bc91906126b7565b9091555061199e92505050565b6001600160a01b0385165f9081526012602052604090205460ff1680156118f157505f600854115b1561199e5760205460ff16158061192057506001600160a01b0384165f908152601f602052604090205460ff16155b1561199e575f601754600a548561193791906126e1565b61194191906126f8565b90505f601754600b548661195591906126e1565b61195f91906126f8565b905061196b81836126b7565b925081600e5f82825461197e91906126b7565b9250508190555080600f5f82825461199691906126b7565b909155505050505b80156119bc576119af853083611dd6565b6119b98184612717565b92505b505b601a5460ff1615611c5e576005546001600160a01b038581169116148015906119f557506005546001600160a01b03848116911614155b8015611a0c57506001600160a01b03831661dead14155b8015611a1b575060185460ff16155b15611c5e57325f908152601b6020908152604080832043845290915290205415611a43575f80fd5b325f908152601b602090815260408083204384528252808320600190556001600160a01b0387168352601290915290205460ff168015611a9b57506001600160a01b0383165f9081526016602052604090205460ff16155b15611b5057601354821115611aeb5760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610aea565b6014546001600160a01b0384165f90815260046020526040902054611b1090846126b7565b1115611b4b5760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610aea565b611c5e565b6001600160a01b0383165f9081526012602052604090205460ff168015611b8f57506001600160a01b0384165f9081526016602052604090205460ff16155b15611bdf57601354821115611b4b5760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610aea565b6001600160a01b0383165f9081526016602052604090205460ff16611c5e576014546001600160a01b0384165f90815260046020526040902054611c2390846126b7565b1115611c5e5760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610aea565b60185460ff16158015611c7f57506011546001600160a01b03858116911614155b8015611c9857506011546001600160a01b038481169116145b8015611cbc57506001600160a01b0384165f9081526015602052604090205460ff16155b8015611ce057506001600160a01b0383165f9081526015602052604090205460ff16155b8015611cfc5750601954305f9081526004602052604090205410155b15611d21576018805460ff19166001179055611d16612144565b6018805460ff191690555b611358848484611dd6565b601054611d449030906001600160a01b0316846115cb565b60105460065460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611db1573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b87919061272a565b6001600160a01b038316611e365760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b6064820152608401610aea565b6001600160a01b038216611e8c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f2061646472657373006044820152606401610aea565b6001600160a01b0383165f9081526004602052604090205481811015611f085760405162461bcd60e51b815260206004820152602b60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526a68616e2062616c616e636560a81b6064820152608401610aea565b6001600160a01b038085165f90815260046020526040808220858503905591851681529081208054849290611f3e9084906126b7565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f8a91815260200190565b60405180910390a350505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b17905291517fa9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b925f9283929088169161209691612755565b5f604051808303815f865af19150503d805f81146120cf576040519150601f19603f3d011682016040523d82523d5f602084013e6120d4565b606091505b50915091508180156120fe5750805115806120fe5750808060200190518101906120fe9190612770565b61213c5760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606401610aea565b505050505050565b600f54305f908152600460205260409020546121609190612717565b600e819055600f5461217291906126b7565b5f0361217a57565b5f6002600f5461218a91906126f8565b90505f81600f5461219b9190612717565b600e546121a891906126b7565b90506121b38161225f565b5f8183600f546121c39190612717565b6121cd90476126e1565b6121d791906126f8565b90505f831180156121e757505f81115b156121f6576121f68382611d2c565b600e5415612251576007546040516001600160a01b039091169047905f81818185875af1925050503d805f8114612248576040519150601f19603f3d011682016040523d82523d5f602084013e61224d565b606091505b5050505b50505f600f819055600e5550565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061229257612292612677565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156122e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061230d919061278b565b8160018151811061232057612320612677565b6001600160a01b03928316602091820292909201015260105461234691309116846115cb565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac9479061237e9085905f908690309042906004016127a6565b5f604051808303815f87803b158015612395575f80fd5b505af115801561213c573d5f803e3d5ffd5b5f5b838110156123c15781810151838201526020016123a9565b50505f910152565b602081525f82518060208401526123e78160408501602087016123a7565b601f01601f19169190910160400192915050565b5f8083601f84011261240b575f80fd5b50813567ffffffffffffffff811115612422575f80fd5b6020830191508360208260051b850101111561243c575f80fd5b9250929050565b5f805f8060408587031215612456575f80fd5b843567ffffffffffffffff8082111561246d575f80fd5b612479888389016123fb565b90965094506020870135915080821115612491575f80fd5b5061249e878288016123fb565b95989497509550505050565b6001600160a01b0381168114610dbb575f80fd5b5f80604083850312156124cf575f80fd5b82356124da816124aa565b946020939093013593505050565b8015158114610dbb575f80fd5b5f60208284031215612505575f80fd5b8135612510816124e8565b9392505050565b5f60208284031215612527575f80fd5b8135612510816124aa565b5f805f60608486031215612544575f80fd5b833561254f816124aa565b9250602084013561255f816124aa565b929592945050506040919091013590565b5f60208284031215612580575f80fd5b5035919050565b5f8060408385031215612598575f80fd5b82356125a3816124aa565b915060208301356125b3816124e8565b809150509250929050565b5f80604083850312156125cf575f80fd5b50508035926020909101359150565b5f80604083850312156125ef575f80fd5b82356125fa816124aa565b915060208301356125b3816124aa565b600181811c9082168061261e57607f821691505b60208210810361263c57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f600182016126b0576126b061268b565b5060010190565b80820180821115610b9e57610b9e61268b565b5f602082840312156126da575f80fd5b5051919050565b8082028115828204841417610b9e57610b9e61268b565b5f8261271257634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115610b9e57610b9e61268b565b5f805f6060848603121561273c575f80fd5b8351925060208401519150604084015190509250925092565b5f82516127668184602087016123a7565b9190910192915050565b5f60208284031215612780575f80fd5b8151612510816124e8565b5f6020828403121561279b575f80fd5b8151612510816124aa565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156127f45784516001600160a01b0316835293830193918301916001016127cf565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220f0eedee2ab3269c6006ce25f21f6e9d4739d906562da4d561042193e96f1e59f64736f6c63430008150033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000003fd8086d40bfa97d944b3d5621f8b4d31ca4fc0d0000000000000000000000003fd8086d40bfa97d944b3d5621f8b4d31ca4fc0d

-----Decoded View---------------
Arg [0] : router_ (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : LPTokenReceiver_ (address): 0x3FD8086d40bfa97D944B3d5621f8b4d31cA4Fc0D
Arg [2] : marketingReceiver_ (address): 0x3FD8086d40bfa97D944B3d5621f8b4d31cA4Fc0D

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 0000000000000000000000003fd8086d40bfa97d944b3d5621f8b4d31ca4fc0d
Arg [2] : 0000000000000000000000003fd8086d40bfa97d944b3d5621f8b4d31ca4fc0d


Deployed Bytecode Sourcemap

6828:12890:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7657:28;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7657:28:0;;;;;;;;3439:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;10335:244::-;;;;;;;;;;-1:-1:-1;10335:244:0;;;;;:::i;:::-;;:::i;:::-;;5272:167;;;;;;;;;;-1:-1:-1;5272:167:0;;;;;:::i;:::-;;:::i;:::-;;;2620:14:1;;2613:22;2595:41;;2583:2;2568:18;5272:167:0;2455:187:1;11715:117:0;;;;;;;;;;-1:-1:-1;11715:117:0;;;;;:::i;:::-;;:::i;11966:271::-;;;;;;;;;;-1:-1:-1;11966:271:0;;;;;:::i;:::-;;:::i;7580:36::-;;;;;;;;;;;;;;;;3323:108;;;;;;;;;;-1:-1:-1;3411:12:0;;3323:108;;7217:33;;;;;;;;;;;;;;;;7177;;;;;;;;;;;;;;;;2482:493;;;;;;;;;;-1:-1:-1;2482:493:0;;;;;:::i;:::-;;:::i;6874:30::-;;;;;;;;;;-1:-1:-1;6874:30:0;;;;-1:-1:-1;;;;;6874:30:0;;;;;;-1:-1:-1;;;;;3893:32:1;;;3875:51;;3863:2;3848:18;6874:30:0;3729:203:1;3547:93:0;;;;;;;;;;-1:-1:-1;3547:93:0;;3630:2;4079:36:1;;4067:2;4052:18;3547:93:0;3937:184:1;4657:211:0;;;;;;;;;;-1:-1:-1;4657:211:0;;;;;:::i;:::-;;:::i;7692:33::-;;;;;;;;;;-1:-1:-1;7692:33:0;;;;;;;;10587:126;;;;;;:::i;:::-;;:::i;7513:58::-;;;;;;;;;;-1:-1:-1;7513:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6986:28;;;;;;;;;;;;;;;;10103:224;;;;;;;;;;-1:-1:-1;10103:224:0;;;;;:::i;:::-;;:::i;5864:127::-;;;;;;;;;;-1:-1:-1;5864:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;5965:18:0;5938:7;5965:18;;;:9;:18;;;;;;;5864:127;1067:103;;;;;;;;;;;;;:::i;11589:118::-;;;;;;;;;;;;;:::i;12245:277::-;;;;;;;;;;-1:-1:-1;12245:277:0;;;;;:::i;:::-;;:::i;7023:30::-;;;;;;;;;;;;;;;;7298:28;;;;;;;;;;-1:-1:-1;7298:28:0;;;;-1:-1:-1;;;;;7298:28:0;;;13204:198;;;;;;;;;;-1:-1:-1;13204:198:0;;;;;:::i;:::-;;:::i;438:87::-;;;;;;;;;;-1:-1:-1;511:6:0;;-1:-1:-1;;;;;511:6:0;438:87;;12814:144;;;;;;;;;;-1:-1:-1;12814:144:0;;;;;:::i;:::-;;:::i;7099:31::-;;;;;;;;;;;;;;;;5160:104;;;;;;;;;;;;;:::i;11840:118::-;;;;;;;;;;-1:-1:-1;11840:118:0;;;;;:::i;:::-;;:::i;13084:112::-;;;;;;;;;;-1:-1:-1;13084:112:0;;;;;:::i;:::-;;:::i;7820:73::-;;;;;;;;;;-1:-1:-1;7820:73:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;11054:334;;;;;;;;;;-1:-1:-1;11054:334:0;;;;;:::i;:::-;;:::i;5447:409::-;;;;;;;;;;-1:-1:-1;5447:409:0;;;;;:::i;:::-;;:::i;6911:32::-;;;;;;;;;;-1:-1:-1;6911:32:0;;;;-1:-1:-1;;;;;6911:32:0;;;2983:173;;;;;;;;;;-1:-1:-1;2983:173:0;;;;;:::i;:::-;;:::i;12530:113::-;;;;;;;;;;-1:-1:-1;12530:113:0;;;;;:::i;:::-;;:::i;10721:325::-;;;;;;;;;;-1:-1:-1;10721:325:0;;;;;:::i;:::-;;:::i;18801:360::-;;;;;;;;;;-1:-1:-1;18801:360:0;;;;;:::i;:::-;;:::i;12966:110::-;;;;;;;;;;-1:-1:-1;12966:110:0;;;;;:::i;:::-;;:::i;11396:185::-;;;;;;;;;;-1:-1:-1;11396:185:0;;;;;:::i;:::-;;:::i;7381:35::-;;;;;;;;;;;;;;;;7335:37;;;;;;;;;;-1:-1:-1;7335:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12651:155;;;;;;;;;;-1:-1:-1;12651:155:0;;;;;:::i;:::-;;:::i;6952:27::-;;;;;;;;;;;;;;;;8202:48;;;;;;;;;;-1:-1:-1;8202:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3164:151;;;;;;;;;;-1:-1:-1;3164:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3280:18:0;;;3253:7;3280:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3164:151;13410:194;;;;;;;;;;-1:-1:-1;13410:194:0;;;;;:::i;:::-;;:::i;8257:39::-;;;;;;;;;;-1:-1:-1;8257:39:0;;;;;;;;7060:30;;;;;;;;;;;;;;;;732:201;;;;;;;;;;-1:-1:-1;732:201:0;;;;;:::i;:::-;;:::i;19169:157::-;;;;;;;;;;;;;:::i;7137:31::-;;;;;;;;;;;;;;;;7259:32;;;;;;;;;;-1:-1:-1;7259:32:0;;;;-1:-1:-1;;;;;7259:32:0;;;7423:24;;;;;;;;;;;;;;;;3439:100;3493:13;3526:5;3519:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3439:100;:::o;10335:244::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;;;;;;;;;10455:6:::1;10450:114;10465:17:::0;;::::1;10450:114;;;10536:13;;10550:1;10536:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;10504;:29;10521:8;;10530:1;10521:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10504:29:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10504:29:0;:48;;-1:-1:-1;;10504:48:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10484:3;::::1;::::0;::::1;:::i;:::-;;;;10450:114;;;;10335:244:::0;;;;:::o;5272:167::-;5355:4;5372:37;5381:10;5393:7;5402:6;5372:8;:37::i;:::-;-1:-1:-1;5427:4:0;5272:167;;;;;:::o;11715:117::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;11793:20:::1;:31:::0;;-1:-1:-1;;11793:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11715:117::o;11966:271::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;12053:15:::1;::::0;-1:-1:-1;;;;;12053:30:0;;::::1;:15:::0;::::1;:30:::0;12045:39:::1;;;::::0;::::1;;-1:-1:-1::0;;;;;12095:30:0::1;;::::0;;;:17:::1;:30;::::0;;;;;;;:37;;12128:4:::1;-1:-1:-1::0;;12095:37:0;;::::1;::::0;::::1;::::0;;;12143:26:::1;:39:::0;;;;;:46;;;;::::1;::::0;;::::1;::::0;;12200:15:::1;:29:::0;;-1:-1:-1;;;;;;12200:29:0::1;::::0;;::::1;::::0;;11966:271::o;2482:493::-;2622:4;2639:36;2649:6;2657:9;2668:6;2639:9;:36::i;:::-;-1:-1:-1;;;;;2715:19:0;;2688:24;2715:19;;;:11;:19;;;;;;;;2735:10;2715:31;;;;;;;;2765:26;;;;2757:84;;;;-1:-1:-1;;;2757:84:0;;7708:2:1;2757:84:0;;;7690:21:1;7747:2;7727:18;;;7720:30;7786:34;7766:18;;;7759:62;-1:-1:-1;;;7837:18:1;;;7830:43;7890:19;;2757:84:0;7506:409:1;2757:84:0;2877:55;2886:6;2894:10;2925:6;2906:16;:25;2877:8;:55::i;:::-;-1:-1:-1;2963:4:0;;2482:493;-1:-1:-1;;;;2482:493:0:o;4657:211::-;4771:10;4745:4;4792:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4792:32:0;;;;;;;;;;4745:4;;4762:76;;4783:7;;4792:45;;4827:10;;4792:45;:::i;:::-;4762:8;:76::i;10587:126::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;10668:37:::1;10682:11;10695:9;10668:13;:37::i;:::-;10587:126:::0;:::o;10103:224::-;10209:6;10204:116;10219:16;;;10204:116;;;10257:51;10273:10;10285:7;;10293:1;10285:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;10297:7;;10305:1;10297:10;;;;;;;:::i;:::-;;;;;;;10257:15;:51::i;:::-;10237:3;;;;:::i;:::-;;;;10204:116;;1067:103;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;1132:30:::1;1159:1;1132:18;:30::i;:::-;1067:103::o:0;11589:118::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;11651:14:::1;::::0;::::1;;11643:23;;;::::0;::::1;;11677:14;:22:::0;;-1:-1:-1;;11677:22:0::1;::::0;;11589:118::o;12245:277::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;12334:17:::1;::::0;-1:-1:-1;;;;;12334:32:0;;::::1;:17:::0;::::1;:32:::0;12326:41:::1;;;::::0;::::1;;-1:-1:-1::0;;;;;12378:30:0::1;;::::0;;;:17:::1;:30;::::0;;;;;;;:37;;12411:4:::1;-1:-1:-1::0;;12378:37:0;;::::1;::::0;::::1;::::0;;;12426:26:::1;:39:::0;;;;;:46;;;;::::1;::::0;;::::1;::::0;;12483:17:::1;:31:::0;;-1:-1:-1;;;;;;12483:31:0::1;::::0;;::::1;::::0;;12245:277::o;13204:198::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;13297:14:::1;;13288:5;:23;;:45;;;;;13323:10;;13315:5;:18;13288:45;13280:54;;;::::0;::::1;;13345:10;:18:::0;13374:13:::1;:20:::0;;-1:-1:-1;;13374:20:0::1;13390:4;13374:20;::::0;;13204:198::o;12814:144::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12912:25:0;;;::::1;;::::0;;;:17:::1;:25;::::0;;;;:38;;-1:-1:-1;;12912:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12814:144::o;5160:104::-;5216:13;5249:7;5242:14;;;;;:::i;11840:118::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;11920:13:::1;:30:::0;11840:118::o;13084:112::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;13161:13:::1;:27:::0;;-1:-1:-1;;;;;;13161:27:0::1;-1:-1:-1::0;;;;;13161:27:0;;;::::1;::::0;;;::::1;::::0;;13084:112::o;11054:334::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;11149:16:::1;:31:::0;;;11191:16:::1;:31:::0;;;11251:35:::1;11210:12:::0;11168;11251:35:::1;:::i;:::-;11235:13;:51:::0;11303:13:::1;::::0;::::1;;11299:82;;;11358:10;;11341:13;;:27;;11333:36;;;::::0;::::1;;11054:334:::0;;:::o;5447:409::-;5596:10;5540:4;5584:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5584:32:0;;;;;;;;;;5635:35;;;;5627:85;;;;-1:-1:-1;;;5627:85:0;;8252:2:1;5627:85:0;;;8234:21:1;8291:2;8271:18;;;8264:30;8330:34;8310:18;;;8303:62;-1:-1:-1;;;8381:18:1;;;8374:35;8426:19;;5627:85:0;8050:401:1;5627:85:0;5748:65;5757:10;5769:7;5797:15;5778:16;:34;5748:8;:65::i;:::-;-1:-1:-1;5844:4:0;;5447:409;-1:-1:-1;;;5447:409:0:o;2983:173::-;3069:4;3086:40;3096:10;3108:9;3119:6;3086:9;:40::i;12530:113::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12609:17:0;;;::::1;;::::0;;;:5:::1;:17;::::0;;;;:26;;-1:-1:-1;;12609:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12530:113::o;10721:325::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;10815:15:::1;:30:::0;;;10856:15:::1;:30:::0;;;10914:33:::1;10874:12:::0;10833;10914:33:::1;:::i;:::-;10899:12;:48:::0;10964:12:::1;::::0;::::1;::::0;::::1;;;10960:79;;;11017:9;;11001:12;;:25;;10993:34;;;::::0;::::1;18801:360:::0;18920:4;-1:-1:-1;;;;;18896:29:0;;;18888:38;;;;;;18960:45;;-1:-1:-1;;;18960:45:0;;18999:4;18960:45;;;3875:51:1;18937:20:0;;-1:-1:-1;;;;;18960:30:0;;;;;3848:18:1;;18960:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18937:68;-1:-1:-1;19016:24:0;19043:11;;:35;;19072:6;19043:35;;;19057:12;19043:35;19117:17;;19016:62;;-1:-1:-1;19089:64:0;;19103:12;;-1:-1:-1;;;;;19117:17:0;19016:62;19089:13;:64::i;:::-;18877:284;;18801:360;;:::o;12966:110::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;13032:6:::1;:36:::0;;-1:-1:-1;;;;;;13032:36:0::1;-1:-1:-1::0;;;;;13032:36:0;;;::::1;::::0;;;::::1;::::0;;12966:110::o;11396:185::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;11496:20:::1;:44:::0;;;;11551:9:::1;:22:::0;11396:185::o;12651:155::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12751:34:0;;;::::1;;::::0;;;:26:::1;:34;::::0;;;;:47;;-1:-1:-1;;12751:47:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12651:155::o;13410:194::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;13502:14:::1;;13493:5;:23;;:44;;;;;13528:9;;13520:5;:17;13493:44;13485:53;;;::::0;::::1;;13549:9;:17:::0;13577:12:::1;:19:::0;;-1:-1:-1;;13577:19:0::1;;;::::0;;13410:194::o;732:201::-;992:10;981:7;511:6;;-1:-1:-1;;;;;511:6:0;;438:87;981:7;-1:-1:-1;;;;;981:21:0;;973:66;;;;-1:-1:-1;;;973:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;821:22:0;::::1;813:73;;;::::0;-1:-1:-1;;;813:73:0;;8847:2:1;813:73:0::1;::::0;::::1;8829:21:1::0;8886:2;8866:18;;;8859:30;8925:34;8905:18;;;8898:62;-1:-1:-1;;;8976:18:1;;;8969:36;9022:19;;813:73:0::1;8645:402:1::0;813:73:0::1;897:28;916:8;897:18;:28::i;19169:157::-:0;19235:17;;:56;;19218:12;;-1:-1:-1;;;;;19235:17:0;;19265:21;;19218:12;19235:56;19218:12;19235:56;19265:21;19235:17;:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19217:74;;;19310:7;19302:16;;;;;4269:380;-1:-1:-1;;;;;4405:19:0;;4397:68;;;;-1:-1:-1;;;4397:68:0;;9464:2:1;4397:68:0;;;9446:21:1;9503:2;9483:18;;;9476:30;9542:34;9522:18;;;9515:62;-1:-1:-1;;;9593:18:1;;;9586:34;9637:19;;4397:68:0;9262:400:1;4397:68:0;-1:-1:-1;;;;;4484:21:0;;4476:68;;;;-1:-1:-1;;;4476:68:0;;9869:2:1;4476:68:0;;;9851:21:1;9908:2;9888:18;;;9881:30;9947:34;9927:18;;;9920:62;-1:-1:-1;;;9998:18:1;;;9991:32;10040:19;;4476:68:0;9667:398:1;4476:68:0;-1:-1:-1;;;;;4557:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;4609:32;;160:25:1;;;4609:32:0;;133:18:1;4609:32:0;;;;;;;4269:380;;;:::o;13612:3528::-;-1:-1:-1;;;;;13744:18:0;;13736:68;;;;-1:-1:-1;;;13736:68:0;;10272:2:1;13736:68:0;;;10254:21:1;10311:2;10291:18;;;10284:30;10350:34;10330:18;;;10323:62;-1:-1:-1;;;10401:18:1;;;10394:35;10446:19;;13736:68:0;10070:401:1;13736:68:0;-1:-1:-1;;;;;13823:16:0;;13815:64;;;;-1:-1:-1;;;13815:64:0;;10678:2:1;13815:64:0;;;10660:21:1;10717:2;10697:18;;;10690:30;10756:34;10736:18;;;10729:62;-1:-1:-1;;;10807:18:1;;;10800:33;10850:19;;13815:64:0;10476:399:1;13815:64:0;13896:6;13906:1;13896:11;13892:93;;13924:28;13940:4;13946:2;13950:1;13924:15;:28::i;:::-;13612:3528;;;:::o;13892:93::-;14013:8;;-1:-1:-1;;;;;14038:23:0;;13997:12;14038:23;;;:17;:23;;;;;;14013:8;;;;14012:9;;14038:23;;:48;;-1:-1:-1;;;;;;14065:21:0;;;;;;:17;:21;;;;;;;;14038:48;14034:96;;;-1:-1:-1;14113:5:0;14034:96;14146:7;14142:1218;;;-1:-1:-1;;;;;14209:9:0;;14172:12;14209:9;;;:5;:9;;;;;;;;:30;;;;;14238:1;14222:13;;:17;14209:30;14205:1004;;;14260:29;14320:14;;14301:16;;14292:6;:25;;;;:::i;:::-;:42;;;;:::i;:::-;14260:74;;14353:29;14413:14;;14394:16;;14385:6;:25;;;;:::i;:::-;:42;;;;:::i;:::-;14353:74;-1:-1:-1;14455:45:0;14353:74;14455:21;:45;:::i;:::-;14448:52;;14543:21;14521:18;;:43;;;;;;;:::i;:::-;;;;;;;;14605:21;14583:18;;:43;;;;;;;:::i;:::-;;;;-1:-1:-1;14205:1004:0;;-1:-1:-1;;;14205:1004:0;;-1:-1:-1;;;;;14667:11:0;;;;;;:5;:11;;;;;;;;:31;;;;;14697:1;14682:12;;:16;14667:31;14663:546;;;14724:20;;;;14723:21;;:46;;-1:-1:-1;;;;;;14749:20:0;;;;;;:16;:20;;;;;;;;14748:21;14723:46;14719:475;;;14794:29;14853:14;;14835:15;;14826:6;:24;;;;:::i;:::-;:41;;;;:::i;:::-;14794:73;;14890:29;14949:14;;14931:15;;14922:6;:24;;;;:::i;:::-;:41;;;;:::i;:::-;14890:73;-1:-1:-1;14995:45:0;14890:73;14995:21;:45;:::i;:::-;14988:52;;15087:21;15065:18;;:43;;;;;;;:::i;:::-;;;;;;;;15153:21;15131:18;;:43;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;14719:475:0;15229:8;;15225:124;;15258:42;15274:4;15288;15295;15258:15;:42::i;:::-;15319:14;15329:4;15319:14;;:::i;:::-;;;15225:124;14155:1205;14142:1218;15376:14;;;;15372:1348;;;511:6;;-1:-1:-1;;;;;15429:15:0;;;511:6;;15429:15;;;;:49;;-1:-1:-1;511:6:0;;-1:-1:-1;;;;;15465:13:0;;;511:6;;15465:13;;15429:49;:91;;;;-1:-1:-1;;;;;;15499:21:0;;15513:6;15499:21;;15429:91;:121;;;;-1:-1:-1;15542:8:0;;;;15541:9;15429:121;15407:1302;;;15612:9;15593:29;;;;:18;:29;;;;;;;;15623:12;15593:43;;;;;;;;:48;15585:57;;;;;;15680:9;15661:29;;;;:18;:29;;;;;;;;15691:12;15661:43;;;;;;;15707:1;15661:47;;-1:-1:-1;;;;;15755:11:0;;;;:5;:11;;;;;;;;:67;;;;-1:-1:-1;;;;;;15792:30:0;;;;;;:26;:30;;;;;;;;15791:31;15755:67;15729:965;;;15909:20;;15899:6;:30;;15865:138;;;;-1:-1:-1;;;15865:138:0;;11610:2:1;15865:138:0;;;11592:21:1;11649:2;11629:18;;;11622:30;-1:-1:-1;;;11668:18:1;;;11661:52;11730:18;;15865:138:0;11408:346:1;15865:138:0;16086:9;;-1:-1:-1;;;;;5965:18:0;;5938:7;5965:18;;;:9;:18;;;;;;16060:22;;:6;:22;:::i;:::-;:35;;16026:131;;;;-1:-1:-1;;;16026:131:0;;11961:2:1;16026:131:0;;;11943:21:1;12000:2;11980:18;;;11973:30;-1:-1:-1;;;12019:18:1;;;12012:40;12069:18;;16026:131:0;11759:334:1;16026:131:0;15729:965;;;-1:-1:-1;;;;;16209:9:0;;;;;;:5;:9;;;;;;;;:67;;;;-1:-1:-1;;;;;;16244:32:0;;;;;;:26;:32;;;;;;;;16243:33;16209:67;16183:511;;;16363:20;;16353:6;:30;;16319:138;;;;-1:-1:-1;;;16319:138:0;;11610:2:1;16319:138:0;;;11592:21:1;11649:2;11629:18;;;11622:30;-1:-1:-1;;;11668:18:1;;;11661:52;11730:18;;16319:138:0;11408:346:1;16183:511:0;-1:-1:-1;;;;;16488:30:0;;;;;;:26;:30;;;;;;;;16483:211;;16603:9;;-1:-1:-1;;;;;5965:18:0;;5938:7;5965:18;;;:9;:18;;;;;;16577:22;;:6;:22;:::i;:::-;:35;;16543:131;;;;-1:-1:-1;;;16543:131:0;;11961:2:1;16543:131:0;;;11943:21:1;12000:2;11980:18;;;11973:30;-1:-1:-1;;;12019:18:1;;;12012:40;12069:18;;16543:131:0;11759:334:1;16543:131:0;16751:8;;;;16750:9;:47;;;;-1:-1:-1;16784:13:0;;-1:-1:-1;;;;;16776:21:0;;;16784:13;;16776:21;;16750:47;:83;;;;-1:-1:-1;16820:13:0;;-1:-1:-1;;;;;16814:19:0;;;16820:13;;16814:19;16750:83;:124;;;;-1:-1:-1;;;;;;16851:23:0;;;;;;:17;:23;;;;;;;;16850:24;16750:124;:163;;;;-1:-1:-1;;;;;;16892:21:0;;;;;;:17;:21;;;;;;;;16891:22;16750:163;:221;;;;-1:-1:-1;16958:13:0;;16948:4;5938:7;5965:18;;;:9;:18;;;;;;16930:41;;16750:221;16732:353;;;16998:8;:15;;-1:-1:-1;;16998:15:0;17009:4;16998:15;;;17030:10;:8;:10::i;:::-;17057:8;:16;;-1:-1:-1;;17057:16:0;;;16732:353;17099:33;17115:4;17121:2;17125:6;17099:15;:33::i;18440:353::-;18555:6;;18523:53;;18540:4;;-1:-1:-1;;;;;18555:6:0;18564:11;18523:8;:53::i;:::-;18587:6;;18729:15;;18587:198;;-1:-1:-1;;;18587:198:0;;18651:4;18587:198;;;12439:34:1;12489:18;;;12482:34;;;18587:6:0;12532:18:1;;;12525:34;;;12575:18;;;12568:34;-1:-1:-1;;;;;18729:15:0;;;12618:19:1;;;12611:44;18759:15:0;12671:19:1;;;12664:35;18587:6:0;;;:22;;18617:9;;12373:19:1;;18587:198:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3648:613::-;-1:-1:-1;;;;;3788:20:0;;3780:66;;;;-1:-1:-1;;;3780:66:0;;13223:2:1;3780:66:0;;;13205:21:1;13262:2;13242:18;;;13235:30;13301:34;13281:18;;;13274:62;-1:-1:-1;;;13352:18:1;;;13345:31;13393:19;;3780:66:0;13021:397:1;3780:66:0;-1:-1:-1;;;;;3865:23:0;;3857:67;;;;-1:-1:-1;;;3857:67:0;;13625:2:1;3857:67:0;;;13607:21:1;13664:2;13644:18;;;13637:30;13703:33;13683:18;;;13676:61;13754:18;;3857:67:0;13423:355:1;3857:67:0;-1:-1:-1;;;;;3961:17:0;;3937:21;3961:17;;;:9;:17;;;;;;3997:23;;;;3989:79;;;;-1:-1:-1;;;3989:79:0;;13985:2:1;3989:79:0;;;13967:21:1;14024:2;14004:18;;;13997:30;14063:34;14043:18;;;14036:62;-1:-1:-1;;;14114:18:1;;;14107:41;14165:19;;3989:79:0;13783:407:1;3989:79:0;-1:-1:-1;;;;;4104:17:0;;;;;;;:9;:17;;;;;;4124:22;;;4104:42;;4168:20;;;;;;;;:30;;4140:6;;4104:17;4168:30;;4140:6;;4168:30;:::i;:::-;;;;;;;;4233:9;-1:-1:-1;;;;;4216:35:0;4225:6;-1:-1:-1;;;;;4216:35:0;;4244:6;4216:35;;;;160:25:1;;148:2;133:18;;14:177;4216:35:0;;;;;;;;3769:492;3648:613;;;:::o;533:191::-;626:6;;;-1:-1:-1;;;;;643:17:0;;;-1:-1:-1;;;;;;643:17:0;;;;;;;676:40;;626:6;;;643:17;626:6;;676:40;;607:16;;676:40;596:128;533:191;:::o;19334:379::-;19461:34;;;;;;;;;;;;;;;;;19557:51;;-1:-1:-1;;;;;14387:32:1;;;19557:51:0;;;14369::1;14436:18;;;;14429:34;;;19557:51:0;;;;;;;;;;14342:18:1;;;;19557:51:0;;;;;;;-1:-1:-1;;;;;19557:51:0;-1:-1:-1;;;19557:51:0;;;19546:63;;19451:45;;-1:-1:-1;;;;19546:10:0;;;;:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19510:99;;;;19628:7;:57;;;;-1:-1:-1;19640:11:0;;:16;;:44;;;19671:4;19660:24;;;;;;;;;;;;:::i;:::-;19620:85;;;;-1:-1:-1;;;19620:85:0;;15218:2:1;19620:85:0;;;15200:21:1;15257:2;15237:18;;;15230:30;-1:-1:-1;;;15276:18:1;;;15269:45;15331:18;;19620:85:0;15016:339:1;19620:85:0;19407:306;;;19334:379;;;:::o;17601:831::-;17689:18;;17680:4;5938:7;5965:18;;;:9;:18;;;;;;17662:45;;;;:::i;:::-;17641:18;:66;;;17722:18;;:39;;17641:66;17722:39;:::i;:::-;17765:1;17722:44;17718:83;;17601:831::o;17718:83::-;17813:17;17854:1;17833:18;;:22;;;;:::i;:::-;17813:42;;17866:26;17938:9;17917:18;;:30;;;;:::i;:::-;17895:18;;:53;;;;:::i;:::-;17866:82;;17959:36;17976:18;17959:16;:36::i;:::-;18008:23;18093:18;18080:9;18059:18;;:30;;;;:::i;:::-;18034:56;;:21;:56;:::i;:::-;:77;;;;:::i;:::-;18008:103;;18140:1;18128:9;:13;:36;;;;;18163:1;18145:15;:19;18128:36;18124:110;;;18181:41;18195:9;18206:15;18181:13;:41::i;:::-;18250:18;;:22;18246:111;;18289:17;;:56;;-1:-1:-1;;;;;18289:17:0;;;;18319:21;;18289:56;;;;18319:21;18289:17;:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18246:111;-1:-1:-1;;18390:1:0;18369:18;:22;;;18402:18;:22;-1:-1:-1;17601:831:0:o;17148:445::-;17239:16;;;17253:1;17239:16;;;;;;;;17215:21;;17239:16;;;;;;;;;;-1:-1:-1;17239:16:0;17215:40;;17284:4;17266;17271:1;17266:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17266:23:0;;;:7;;;;;;;;;;:23;;;;17310:6;;:13;;;-1:-1:-1;;;17310:13:0;;;;:6;;;;;:11;;:13;;;;;17266:7;;17310:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17300:4;17305:1;17300:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17300:23:0;;;:7;;;;;;;;;:23;17366:6;;17334:53;;17351:4;;17366:6;17375:11;17334:8;:53::i;:::-;17398:6;;:187;;-1:-1:-1;;;17398:187:0;;-1:-1:-1;;;;;17398:6:0;;;;:57;;:187;;17470:11;;17398:6;;17512:4;;17539;;17559:15;;17398:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;196:250:1;281:1;291:113;305:6;302:1;299:13;291:113;;;381:11;;;375:18;362:11;;;355:39;327:2;320:10;291:113;;;-1:-1:-1;;438:1:1;420:16;;413:27;196:250::o;451:396::-;600:2;589:9;582:21;563:4;632:6;626:13;675:6;670:2;659:9;655:18;648:34;691:79;763:6;758:2;747:9;743:18;738:2;730:6;726:15;691:79;:::i;:::-;831:2;810:15;-1:-1:-1;;806:29:1;791:45;;;;838:2;787:54;;451:396;-1:-1:-1;;451:396:1:o;852:367::-;915:8;925:6;979:3;972:4;964:6;960:17;956:27;946:55;;997:1;994;987:12;946:55;-1:-1:-1;1020:20:1;;1063:18;1052:30;;1049:50;;;1095:1;1092;1085:12;1049:50;1132:4;1124:6;1120:17;1108:29;;1192:3;1185:4;1175:6;1172:1;1168:14;1160:6;1156:27;1152:38;1149:47;1146:67;;;1209:1;1206;1199:12;1146:67;852:367;;;;;:::o;1224:770::-;1343:6;1351;1359;1367;1420:2;1408:9;1399:7;1395:23;1391:32;1388:52;;;1436:1;1433;1426:12;1388:52;1476:9;1463:23;1505:18;1546:2;1538:6;1535:14;1532:34;;;1562:1;1559;1552:12;1532:34;1601:70;1663:7;1654:6;1643:9;1639:22;1601:70;:::i;:::-;1690:8;;-1:-1:-1;1575:96:1;-1:-1:-1;1778:2:1;1763:18;;1750:32;;-1:-1:-1;1794:16:1;;;1791:36;;;1823:1;1820;1813:12;1791:36;;1862:72;1926:7;1915:8;1904:9;1900:24;1862:72;:::i;:::-;1224:770;;;;-1:-1:-1;1953:8:1;-1:-1:-1;;;;1224:770:1:o;1999:131::-;-1:-1:-1;;;;;2074:31:1;;2064:42;;2054:70;;2120:1;2117;2110:12;2135:315;2203:6;2211;2264:2;2252:9;2243:7;2239:23;2235:32;2232:52;;;2280:1;2277;2270:12;2232:52;2319:9;2306:23;2338:31;2363:5;2338:31;:::i;:::-;2388:5;2440:2;2425:18;;;;2412:32;;-1:-1:-1;;;2135:315:1:o;2647:118::-;2733:5;2726:13;2719:21;2712:5;2709:32;2699:60;;2755:1;2752;2745:12;2770:241;2826:6;2879:2;2867:9;2858:7;2854:23;2850:32;2847:52;;;2895:1;2892;2885:12;2847:52;2934:9;2921:23;2953:28;2975:5;2953:28;:::i;:::-;3000:5;2770:241;-1:-1:-1;;;2770:241:1:o;3016:247::-;3075:6;3128:2;3116:9;3107:7;3103:23;3099:32;3096:52;;;3144:1;3141;3134:12;3096:52;3183:9;3170:23;3202:31;3227:5;3202:31;:::i;3268:456::-;3345:6;3353;3361;3414:2;3402:9;3393:7;3389:23;3385:32;3382:52;;;3430:1;3427;3420:12;3382:52;3469:9;3456:23;3488:31;3513:5;3488:31;:::i;:::-;3538:5;-1:-1:-1;3595:2:1;3580:18;;3567:32;3608:33;3567:32;3608:33;:::i;:::-;3268:456;;3660:7;;-1:-1:-1;;;3714:2:1;3699:18;;;;3686:32;;3268:456::o;4126:180::-;4185:6;4238:2;4226:9;4217:7;4213:23;4209:32;4206:52;;;4254:1;4251;4244:12;4206:52;-1:-1:-1;4277:23:1;;4126:180;-1:-1:-1;4126:180:1:o;5089:382::-;5154:6;5162;5215:2;5203:9;5194:7;5190:23;5186:32;5183:52;;;5231:1;5228;5221:12;5183:52;5270:9;5257:23;5289:31;5314:5;5289:31;:::i;:::-;5339:5;-1:-1:-1;5396:2:1;5381:18;;5368:32;5409:30;5368:32;5409:30;:::i;:::-;5458:7;5448:17;;;5089:382;;;;;:::o;5476:248::-;5544:6;5552;5605:2;5593:9;5584:7;5580:23;5576:32;5573:52;;;5621:1;5618;5611:12;5573:52;-1:-1:-1;;5644:23:1;;;5714:2;5699:18;;;5686:32;;-1:-1:-1;5476:248:1:o;5729:388::-;5797:6;5805;5858:2;5846:9;5837:7;5833:23;5829:32;5826:52;;;5874:1;5871;5864:12;5826:52;5913:9;5900:23;5932:31;5957:5;5932:31;:::i;:::-;5982:5;-1:-1:-1;6039:2:1;6024:18;;6011:32;6052:33;6011:32;6052:33;:::i;6356:380::-;6435:1;6431:12;;;;6478;;;6499:61;;6553:4;6545:6;6541:17;6531:27;;6499:61;6606:2;6598:6;6595:14;6575:18;6572:38;6569:161;;6652:10;6647:3;6643:20;6640:1;6633:31;6687:4;6684:1;6677:15;6715:4;6712:1;6705:15;6569:161;;6356:380;;;:::o;6741:356::-;6943:2;6925:21;;;6962:18;;;6955:30;7021:34;7016:2;7001:18;;6994:62;7088:2;7073:18;;6741:356::o;7102:127::-;7163:10;7158:3;7154:20;7151:1;7144:31;7194:4;7191:1;7184:15;7218:4;7215:1;7208:15;7234:127;7295:10;7290:3;7286:20;7283:1;7276:31;7326:4;7323:1;7316:15;7350:4;7347:1;7340:15;7366:135;7405:3;7426:17;;;7423:43;;7446:18;;:::i;:::-;-1:-1:-1;7493:1:1;7482:13;;7366:135::o;7920:125::-;7985:9;;;8006:10;;;8003:36;;;8019:18;;:::i;8456:184::-;8526:6;8579:2;8567:9;8558:7;8554:23;8550:32;8547:52;;;8595:1;8592;8585:12;8547:52;-1:-1:-1;8618:16:1;;8456:184;-1:-1:-1;8456:184:1:o;10880:168::-;10953:9;;;10984;;11001:15;;;10995:22;;10981:37;10971:71;;11022:18;;:::i;11053:217::-;11093:1;11119;11109:132;;11163:10;11158:3;11154:20;11151:1;11144:31;11198:4;11195:1;11188:15;11226:4;11223:1;11216:15;11109:132;-1:-1:-1;11255:9:1;;11053:217::o;11275:128::-;11342:9;;;11363:11;;;11360:37;;;11377:18;;:::i;12710:306::-;12798:6;12806;12814;12867:2;12855:9;12846:7;12842:23;12838:32;12835:52;;;12883:1;12880;12873:12;12835:52;12912:9;12906:16;12896:26;;12962:2;12951:9;12947:18;12941:25;12931:35;;13006:2;12995:9;12991:18;12985:25;12975:35;;12710:306;;;;;:::o;14474:287::-;14603:3;14641:6;14635:13;14657:66;14716:6;14711:3;14704:4;14696:6;14692:17;14657:66;:::i;:::-;14739:16;;;;;14474:287;-1:-1:-1;;14474:287:1:o;14766:245::-;14833:6;14886:2;14874:9;14865:7;14861:23;14857:32;14854:52;;;14902:1;14899;14892:12;14854:52;14934:9;14928:16;14953:28;14975:5;14953:28;:::i;15492:251::-;15562:6;15615:2;15603:9;15594:7;15590:23;15586:32;15583:52;;;15631:1;15628;15621:12;15583:52;15663:9;15657:16;15682:31;15707:5;15682:31;:::i;15748:980::-;16010:4;16058:3;16047:9;16043:19;16089:6;16078:9;16071:25;16115:2;16153:6;16148:2;16137:9;16133:18;16126:34;16196:3;16191:2;16180:9;16176:18;16169:31;16220:6;16255;16249:13;16286:6;16278;16271:22;16324:3;16313:9;16309:19;16302:26;;16363:2;16355:6;16351:15;16337:29;;16384:1;16394:195;16408:6;16405:1;16402:13;16394:195;;;16473:13;;-1:-1:-1;;;;;16469:39:1;16457:52;;16564:15;;;;16529:12;;;;16505:1;16423:9;16394:195;;;-1:-1:-1;;;;;;;16645:32:1;;;;16640:2;16625:18;;16618:60;-1:-1:-1;;;16709:3:1;16694:19;16687:35;16606:3;15748:980;-1:-1:-1;;;15748:980:1:o

Swarm Source

ipfs://f0eedee2ab3269c6006ce25f21f6e9d4739d906562da4d561042193e96f1e59f

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.