ETH Price: $2,515.24 (+1.88%)

Contract

0xFB50df8a2C54fe5eAE220E138D6215B1Ea27f969
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve164494352023-01-20 17:13:11591 days ago1674234791IN
0xFB50df8a...1Ea27f969
0 ETH0.0026302556.37791652
Approve162102902022-12-18 8:10:35625 days ago1671351035IN
0xFB50df8a...1Ea27f969
0 ETH0.0007847916.8
Approve160380172022-11-24 6:21:35649 days ago1669270895IN
0xFB50df8a...1Ea27f969
0 ETH0.0005599211.98624524
Approve160196942022-11-21 16:50:47651 days ago1669049447IN
0xFB50df8a...1Ea27f969
0 ETH0.0007265815.55393596
Approve160196912022-11-21 16:50:11651 days ago1669049411IN
0xFB50df8a...1Ea27f969
0 ETH0.0007435715.9175674
Approve160196882022-11-21 16:49:35651 days ago1669049375IN
0xFB50df8a...1Ea27f969
0 ETH0.0007542316.14572637
Transfer160196682022-11-21 16:45:35651 days ago1669049135IN
0xFB50df8a...1Ea27f969
0 ETH0.0009012215.96
Transfer160196682022-11-21 16:45:35651 days ago1669049135IN
0xFB50df8a...1Ea27f969
0 ETH0.0009012215.96
Transfer160196682022-11-21 16:45:35651 days ago1669049135IN
0xFB50df8a...1Ea27f969
0 ETH0.0009012215.96
Transfer160196682022-11-21 16:45:35651 days ago1669049135IN
0xFB50df8a...1Ea27f969
0 ETH0.0009012215.96
Transfer160196682022-11-21 16:45:35651 days ago1669049135IN
0xFB50df8a...1Ea27f969
0 ETH0.0009012215.96
Transfer160196682022-11-21 16:45:35651 days ago1669049135IN
0xFB50df8a...1Ea27f969
0 ETH0.0009012215.96
Transfer160196682022-11-21 16:45:35651 days ago1669049135IN
0xFB50df8a...1Ea27f969
0 ETH0.0009012215.96
Transfer160196682022-11-21 16:45:35651 days ago1669049135IN
0xFB50df8a...1Ea27f969
0 ETH0.0009012215.96
Transfer160196682022-11-21 16:45:35651 days ago1669049135IN
0xFB50df8a...1Ea27f969
0 ETH0.0009012215.96
Transfer160196682022-11-21 16:45:35651 days ago1669049135IN
0xFB50df8a...1Ea27f969
0 ETH0.0009012215.96
Transfer160196672022-11-21 16:45:23651 days ago1669049123IN
0xFB50df8a...1Ea27f969
0 ETH0.0009012215.96
Transfer160196672022-11-21 16:45:23651 days ago1669049123IN
0xFB50df8a...1Ea27f969
0 ETH0.0009012215.96
Transfer160196672022-11-21 16:45:23651 days ago1669049123IN
0xFB50df8a...1Ea27f969
0 ETH0.0030118515.96
Transfer160196482022-11-21 16:41:35651 days ago1669048895IN
0xFB50df8a...1Ea27f969
0 ETH0.0010615818.51
Transfer160196482022-11-21 16:41:35651 days ago1669048895IN
0xFB50df8a...1Ea27f969
0 ETH0.0010615818.51
Transfer160196482022-11-21 16:41:35651 days ago1669048895IN
0xFB50df8a...1Ea27f969
0 ETH0.0010615818.51
Transfer160196482022-11-21 16:41:35651 days ago1669048895IN
0xFB50df8a...1Ea27f969
0 ETH0.0010615818.51
Transfer160196482022-11-21 16:41:35651 days ago1669048895IN
0xFB50df8a...1Ea27f969
0 ETH0.0010615818.51
Transfer160196482022-11-21 16:41:35651 days ago1669048895IN
0xFB50df8a...1Ea27f969
0 ETH0.0010615818.51
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
160196982022-11-21 16:51:35651 days ago1669049495
0xFB50df8a...1Ea27f969
0.00207715 ETH
160196982022-11-21 16:51:35651 days ago1669049495
0xFB50df8a...1Ea27f969
0.0041543 ETH
160196982022-11-21 16:51:35651 days ago1669049495
0xFB50df8a...1Ea27f969
0.00623145 ETH
160196672022-11-21 16:45:23651 days ago1669049123
0xFB50df8a...1Ea27f969
0.01184032 ETH
160196672022-11-21 16:45:23651 days ago1669049123
0xFB50df8a...1Ea27f969
0.02368065 ETH
160196672022-11-21 16:45:23651 days ago1669049123
0xFB50df8a...1Ea27f969
0.03552098 ETH
160196472022-11-21 16:41:23651 days ago1669048883
0xFB50df8a...1Ea27f969
0.0078391 ETH
160196472022-11-21 16:41:23651 days ago1669048883
0xFB50df8a...1Ea27f969
0.01567821 ETH
160196472022-11-21 16:41:23651 days ago1669048883
0xFB50df8a...1Ea27f969
0.02351731 ETH
160195872022-11-21 16:29:23651 days ago1669048163
0xFB50df8a...1Ea27f969
0.01614694 ETH
160195872022-11-21 16:29:23651 days ago1669048163
0xFB50df8a...1Ea27f969
0.03229388 ETH
160195872022-11-21 16:29:23651 days ago1669048163
0xFB50df8a...1Ea27f969
0.04844082 ETH
160156092022-11-21 3:09:23652 days ago1669000163
0xFB50df8a...1Ea27f969
0.00594338 ETH
160156092022-11-21 3:09:23652 days ago1669000163
0xFB50df8a...1Ea27f969
0.01188677 ETH
160156092022-11-21 3:09:23652 days ago1669000163
0xFB50df8a...1Ea27f969
0.01783016 ETH
160072662022-11-19 23:12:47653 days ago1668899567
0xFB50df8a...1Ea27f969
0.007345 ETH
160072662022-11-19 23:12:47653 days ago1668899567
0xFB50df8a...1Ea27f969
0.01469 ETH
160072662022-11-19 23:12:47653 days ago1668899567
0xFB50df8a...1Ea27f969
0.02203501 ETH
160060722022-11-19 19:12:47653 days ago1668885167
0xFB50df8a...1Ea27f969
0.00461577 ETH
160060722022-11-19 19:12:47653 days ago1668885167
0xFB50df8a...1Ea27f969
0.00923154 ETH
160060722022-11-19 19:12:47653 days ago1668885167
0xFB50df8a...1Ea27f969
0.01384731 ETH
160056672022-11-19 17:51:11653 days ago1668880271
0xFB50df8a...1Ea27f969
0.00543045 ETH
160056672022-11-19 17:51:11653 days ago1668880271
0xFB50df8a...1Ea27f969
0.01086091 ETH
160056672022-11-19 17:51:11653 days ago1668880271
0xFB50df8a...1Ea27f969
0.01629137 ETH
160056162022-11-19 17:40:59653 days ago1668879659
0xFB50df8a...1Ea27f969
0.00744507 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
QatarWorldCup

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-16
*/

/*
Web:http://qwcworldcup.org/#
Telegram:https://t.me/QWCERC20
Twitter:https://twitter.com/qwc_erc20
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

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

interface IERC20 {

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function waiveOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0xdead));
        _owner = address(0xdead);
    }

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

}

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

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

abstract contract BEP20 is Context, IERC20, Ownable {
    using SafeMath for uint256;
    
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    address payable public MarketingWallet;
    address payable public TreasuryWallet;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isMarketPair;

    uint256 public _buyLiquidityFee;
    uint256 public _buyMarketingFee;
    uint256 public _buyTeamFee;
    
    uint256 public _sellLiquidityFee;
    uint256 public _sellMarketingFee;
    uint256 public _sellTeamFee;

    uint256 public _liquidityShare;
    uint256 public _marketingShare;
    uint256 public _teamShare;

    uint256 public _totalTaxIfBuying;
    uint256 public _totalTaxIfSelling;
    uint256 public _totalDistributionShares;

    uint256 private _totalSupply;
    uint256 public _txLimitAmount; 
    uint256 public _walletLimitAmount;
    uint256 private minimumTokensBeforeSwap; 

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyBySmallOnly = false;
    bool public walletLimitEnable = true;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor (string memory _NAME, 
    string memory _SYMBOL,
    uint256 _SUPPLY,
    uint256[3] memory _BUYFEE,
    uint256[3] memory _SELLFEE,
    uint256[3] memory _SHARE,
    uint256[2] memory _LMT,
    address[2] memory _walletList) 
    {
    
        _name   = _NAME;
        _symbol = _SYMBOL;
        _decimals = 9;
        _totalSupply = _SUPPLY * 10**_decimals;

        _buyLiquidityFee = _BUYFEE[0];
        _buyMarketingFee = _BUYFEE[1];
        _buyTeamFee = _BUYFEE[2];

        _sellLiquidityFee = _SELLFEE[0];
        _sellMarketingFee = _SELLFEE[1];
        _sellTeamFee = _SELLFEE[2];

        _liquidityShare = _SHARE[0];
        _marketingShare = _SHARE[1];
        _teamShare = _SHARE[2];

        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee);
        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee);
        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare);

        _txLimitAmount = _LMT[0] * 10**_decimals;
        _walletLimitAmount = _LMT[1] * 10**_decimals;

        minimumTokensBeforeSwap = _totalSupply.mul(1).div(10000);
        MarketingWallet = payable(_walletList[0]);
        TreasuryWallet = payable(_walletList[1]);

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

        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;

        isWalletLimitExempt[owner()] = true;
        isWalletLimitExempt[address(uniswapPair)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[address(0xdead)] = true;
        
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[address(this)] = true;

        isMarketPair[address(uniswapPair)] = true;

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

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

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

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

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

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

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

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

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

    function minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return minimumTokensBeforeSwap;
    }

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

    function _approve(address owner, address spender, uint256 amount) private {
        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 setMarketPairStatus(address account, bool newValue) public onlyOwner {
        isMarketPair[account] = newValue;
    }

    function setisTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }
    
    function setisExcludedFromFee(address account, bool newValue) public onlyOwner {
        isExcludedFromFee[account] = newValue;
    }

    function manageExcludeFromFee(address[] calldata addresses, bool status) public onlyOwner {
        require(addresses.length < 201);
        for (uint256 i; i < addresses.length; ++i) {
            isExcludedFromFee[addresses[i]] = status;
        }
    }
    
    function setTxLimitAmount(uint256 newValue) external onlyOwner() {
        _txLimitAmount = newValue * 10 ** decimals();
    }

    function enableWalletLimitEnable(bool newValue) external onlyOwner {
       walletLimitEnable = newValue;
    }

    function setisWalletLimitExempt(address holder, bool exempt) external onlyOwner {
        isWalletLimitExempt[holder] = exempt;
    }

    function setWalletLimitAmount(uint256 newValue) external onlyOwner {
        _walletLimitAmount  = newValue * 10 ** decimals();
    }

    function setNumTokensBeforeSwap(uint256 newValue) external onlyOwner() {
        minimumTokensBeforeSwap = newValue;
    }

    function setMarketingWallet(address newAddress) external onlyOwner() {
        MarketingWallet = payable(newAddress);
    }

    function setTreasuryWallet(address newAddress) external onlyOwner() {
        TreasuryWallet = payable(newAddress);
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function setSwapAndLiquifyBySmallOnly(bool newValue) public onlyOwner {
        swapAndLiquifyBySmallOnly = newValue;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress));
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

     //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

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

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

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {
            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient]) {
                require(smallOrEqual(amount, _txLimitAmount));
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            
            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) 
            {
                if(swapAndLiquifyBySmallOnly)
                    contractTokenBalance = minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);    
            }

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
            uint256 finalAmount;
            if (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
                finalAmount = amount;
            } else {
                finalAmount = takeFee(sender, recipient, amount);
            }

            if(walletLimitEnable && !isWalletLimitExempt[recipient])
                require(smallOrEqual(balanceOf(recipient).add(finalAmount), _walletLimitAmount));

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;
            
        }
    }

    function smallOrEqual(uint256 a, uint256 b) public pure returns(bool) { return a<=b; }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        
        uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2);
        uint256 tokensForSwap = tAmount.sub(tokensForLP);

        swapTokensForEth(tokensForSwap);
        uint256 amountReceived = address(this).balance;

        uint256 totalBNBFee = _totalDistributionShares.sub(_liquidityShare.div(2));
        
        uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2);
        uint256 amountBNBTeam = amountReceived.mul(_teamShare).div(totalBNBFee);
        uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBTeam);

        if(amountBNBMarketing > 0)
            transferToAddressETH(MarketingWallet, amountBNBMarketing);

        if(amountBNBTeam > 0)
            transferToAddressETH(TreasuryWallet, amountBNBTeam);

        if(amountBNBLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountBNBLiquidity);
    }


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

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

        // make the swap
        try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        ) {} catch {}
        
        emit SwapTokensForETH(tokenAmount, path);
    }

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

        // add the liquidity
        try uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            MarketingWallet,
            block.timestamp
        ) {} catch {}
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeAmount = 0;
        
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }
        
        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }
}

contract QatarWorldCup is BEP20 {
    constructor() BEP20(
        "Qatar World Cup",
        "QWC",
        1000000000,
        [uint256(0),uint256(2),uint256(1)], 
        [uint256(0),uint256(2),uint256(1)], 
        [uint256(0),uint256(4),uint256(2)], 
        [uint256(1000000000),uint256(1000000000)],
        [address(0xa962d2CD77fC7068BAAe525283910D8B6CD26F42),address(0x8b9264778116a63AD8bdb073b21b9f01B9054378)]
    ){}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"MarketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TreasuryWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":"_buyTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"_sellTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_teamShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_txLimitAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletLimitAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableWalletLimitEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manageExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyBySmallOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setTreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setTxLimitAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setWalletLimitAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setisExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setisTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setisWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"}],"name":"smallOrEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"swapAndLiquifyBySmallOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"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":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"walletLimitEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526ddead000000000000000000000000608052601c805461ffff60b01b1960ff60a81b19909116600160a81b1716600160b81b1790553480156200004657600080fd5b506040518060400160405280600f81526020016e0516174617220576f726c642043757608c1b8152506040518060400160405280600381526020016251574360e81b815250633b9aca006040518060600160405280600081526020016002815260200160018152506040518060600160405280600081526020016002815260200160018152506040518060600160405280600081526020016004815260200160028152506040518060400160405280633b9aca008152602001633b9aca00815250604051806040016040528073a962d2cd77fc7068baae525283910d8b6cd26f426001600160a01b03166001600160a01b03168152602001738b9264778116a63ad8bdb073b21b9f01b90543786001600160a01b03166001600160a01b031681525060006200017a6200076a60201b60201c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508751620001d99060019060208b019062000899565b508651620001ef9060029060208a019062000899565b506003805460ff1916600917908190556200020f9060ff16600a62000ae2565b6200021b908762000bcd565b6017558451600b819055602080870151600c819055604080890151600d8190558851600e5588840151600f558882015160105587516011558784015160125590870151601355620002919390926200027d9290620013cf6200076e821b17901c565b6200076e60201b620013cf1790919060201c565b601481905550620002bc6010546200027d600f54600e546200076e60201b620013cf1790919060201c565b601581905550620002e76013546200027d6012546011546200076e60201b620013cf1790919060201c565b601655600354620002fd9060ff16600a62000ae2565b82516200030b919062000bcd565b601855600354620003219060ff16600a62000ae2565b602083015162000332919062000bcd565b601981905550620003706127106200035c6001601754620007b460201b620013fe1790919060201c565b6200080260201b620014431790919060201c565b601a55805160038054610100600160a81b0319166101006001600160a01b039384160217905560208083015160048054919093166001600160a01b03199091161782556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d93849363c45a01559380830193919290829003018186803b158015620003fd57600080fd5b505afa15801562000412573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200043891906200093f565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200048157600080fd5b505afa15801562000496573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004bc91906200093f565b6040518363ffffffff1660e01b8152600401620004db92919062000968565b602060405180830381600087803b158015620004f657600080fd5b505af11580156200050b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200053191906200093f565b601c80546001600160a01b03199081166001600160a01b0393841617909155601b805490911683831617908190556017543060009081526006602090815260408083209490951682529290925291812091909155600190600790620005956200084c565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526007909252812080549092166001908117909255600890620005e56200084c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601c5490911681526008909252808220805484166001908117909155308352908220805484168217905561dead82527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd09334299805490931681179092556009906200067a6200084c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260098452828120805486166001908117909155601c549092168152600a90935290822080549093161790915560175490600590620006e86200076a565b6001600160a01b031681526020810191909152604001600020556200070c6200076a565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60175460405162000753919062000a50565b60405180910390a350505050505050505062000c42565b3390565b6000806200077d838562000a59565b905083811015620007ab5760405162461bcd60e51b8152600401620007a290620009d8565b60405180910390fd5b90505b92915050565b600082620007c557506000620007ae565b6000620007d3838562000bcd565b905082620007e2858362000a74565b14620007ab5760405162461bcd60e51b8152600401620007a29062000a0f565b6000620007ab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200085b60201b60201c565b6000546001600160a01b031690565b600081836200087f5760405162461bcd60e51b8152600401620007a2919062000982565b5060006200088e848662000a74565b9150505b9392505050565b828054620008a79062000bef565b90600052602060002090601f016020900481019282620008cb576000855562000916565b82601f10620008e657805160ff191683800117855562000916565b8280016001018555821562000916579182015b8281111562000916578251825591602001919060010190620008f9565b506200092492915062000928565b5090565b5b8082111562000924576000815560010162000929565b60006020828403121562000951578081fd5b81516001600160a01b0381168114620007ab578182fd5b6001600160a01b0392831681529116602082015260400190565b6000602080835283518082850152825b81811015620009b05785810183015185820160400152820162000992565b81811115620009c25783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b90815260200190565b6000821982111562000a6f5762000a6f62000c2c565b500190565b60008262000a9057634e487b7160e01b81526012600452602481fd5b500490565b80825b600180861162000aa9575062000ad9565b81870482111562000abe5762000abe62000c2c565b8086161562000acc57918102915b9490941c93800262000a98565b94509492505050565b6000620007ab60001960ff85168460008262000b015750600162000892565b8162000b105750600062000892565b816001811462000b29576002811462000b345762000b68565b600191505062000892565b60ff84111562000b485762000b4862000c2c565b6001841b91508482111562000b615762000b6162000c2c565b5062000892565b5060208310610133831016604e8410600b841016171562000ba0575081810a8381111562000b9a5762000b9a62000c2c565b62000892565b62000baf848484600162000a95565b80860482111562000bc45762000bc462000c2c565b02949350505050565b600081600019048311821515161562000bea5762000bea62000c2c565b500290565b60028104600182168062000c0457607f821691505b6020821081141562000c2657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60805160601c6126bd62000c6860003960008181610c1e0152610c4a01526126bd6000f3fe60806040526004361061036f5760003560e01c806388790a68116101c6578063c469b6dd116100f7578063cdf7249311610095578063dd62ed3e1161006f578063dd62ed3e14610908578063e2f2a68614610928578063f0cd1dac14610948578063f2fde38b1461095d57610376565b8063cdf72493146108be578063d9419b73146108de578063dc44b6a0146108f357610376565b8063c816841b116100d1578063c816841b1461085f578063c860795214610874578063c867d60b14610889578063cab03471146108a957610376565b8063c469b6dd14610815578063c49b9a801461082a578063c5d241891461084a57610376565b8063a073d37f11610164578063a83f53a71161013e578063a83f53a7146107a0578063a8602fea146107b5578063a9059cbb146107d5578063a911928c146107f557610376565b8063a073d37f14610756578063a08e671f1461076b578063a457c2d71461078057610376565b8063914eb66a116101a0578063914eb66a146106f757806395d89b411461070c578063989200de146107215780639daec0bc1461074157610376565b806388790a68146106ad5780638b42507f146106c25780638da5cb5b146106e257610376565b80633e07387c116102a057806361a23c691161023e57806370a02c8b1161021857806370a02c8b1461063857806370a082311461065857806382eefb4314610678578063844d591c1461068d57610376565b806361a23c69146105ee57806362e8e50b146106035780636ad53b591461062357610376565b80634a74bb021161027a5780634a74bb02146105845780635342acb41461059957806357a5802f146105b95780635d098b38146105ce57610376565b80633e07387c1461052f5780633ecad2711461054f57806346663b821461056f57610376565b806323b872dd1161030d5780632b112e49116102e75780632b112e49146104b8578063313ce567146104cd57806339509351146104ef5780633b97084a1461050f57610376565b806323b872dd1461046e5780632598cdb21461048e57806327c8f835146104a357610376565b806311ffeaf21161034957806311ffeaf2146103f55780631694505e1461041757806318160ddd1461042c5780631afe88921461044e57610376565b806306fdde031461037b578063095ea7b3146103a65780630ecc200f146103d357610376565b3661037657005b600080fd5b34801561038757600080fd5b5061039061097d565b60405161039d9190612169565b60405180910390f35b3480156103b257600080fd5b506103c66103c1366004611fa3565b610a0f565b60405161039d919061215e565b3480156103df57600080fd5b506103f36103ee366004611fce565b610a2d565b005b34801561040157600080fd5b5061040a610afb565b60405161039d919061210f565b34801561042357600080fd5b5061040a610b0a565b34801561043857600080fd5b50610441610b19565b60405161039d91906123bd565b34801561045a57600080fd5b506103f3610469366004611f6f565b610b1f565b34801561047a57600080fd5b506103c6610489366004611f2f565b610b7f565b34801561049a57600080fd5b5061040a610c08565b3480156104af57600080fd5b5061040a610c1c565b3480156104c457600080fd5b50610441610c40565b3480156104d957600080fd5b506104e2610c7c565b60405161039d9190612423565b3480156104fb57600080fd5b506103c661050a366004611fa3565b610c85565b34801561051b57600080fd5b506103f361052a366004612066565b610cd3565b34801561053b57600080fd5b506103f361054a36600461204c565b610d0d565b34801561055b57600080fd5b506103c661056a366004611ebf565b610d60565b34801561057b57600080fd5b506103c6610d75565b34801561059057600080fd5b506103c6610d85565b3480156105a557600080fd5b506103c66105b4366004611ebf565b610d95565b3480156105c557600080fd5b50610441610daa565b3480156105da57600080fd5b506103f36105e9366004611ebf565b610db0565b3480156105fa57600080fd5b50610441610e0d565b34801561060f57600080fd5b506103f361061e36600461204c565b610e13565b34801561062f57600080fd5b50610441610e66565b34801561064457600080fd5b506103f3610653366004611f6f565b610e6c565b34801561066457600080fd5b50610441610673366004611ebf565b610ecc565b34801561068457600080fd5b50610441610eeb565b34801561069957600080fd5b506103f36106a8366004611f6f565b610ef1565b3480156106b957600080fd5b50610441610f51565b3480156106ce57600080fd5b506103c66106dd366004611ebf565b610f57565b3480156106ee57600080fd5b5061040a610f6c565b34801561070357600080fd5b506103f3610f7b565b34801561071857600080fd5b50610390611000565b34801561072d57600080fd5b506103f361073c366004612066565b61100f565b34801561074d57600080fd5b50610441611067565b34801561076257600080fd5b5061044161106d565b34801561077757600080fd5b50610441611073565b34801561078c57600080fd5b506103c661079b366004611fa3565b611079565b3480156107ac57600080fd5b506104416110e1565b3480156107c157600080fd5b506103f36107d0366004611ebf565b6110e7565b3480156107e157600080fd5b506103c66107f0366004611fa3565b61113e565b34801561080157600080fd5b506103c661081036600461207e565b611152565b34801561082157600080fd5b50610441611157565b34801561083657600080fd5b506103f361084536600461204c565b61115d565b34801561085657600080fd5b506104416111e4565b34801561086b57600080fd5b5061040a6111ea565b34801561088057600080fd5b506104416111f9565b34801561089557600080fd5b506103c66108a4366004611ebf565b6111ff565b3480156108b557600080fd5b50610441611214565b3480156108ca57600080fd5b506103f36108d9366004612066565b61121a565b3480156108ea57600080fd5b506103c6611272565b3480156108ff57600080fd5b50610441611282565b34801561091457600080fd5b50610441610923366004611ef7565b611288565b34801561093457600080fd5b506103f3610943366004611f6f565b6112b3565b34801561095457600080fd5b50610441611313565b34801561096957600080fd5b506103f3610978366004611ebf565b611319565b60606001805461098c906125b6565b80601f01602080910402602001604051908101604052809291908181526020018280546109b8906125b6565b8015610a055780601f106109da57610100808354040283529160200191610a05565b820191906000526020600020905b8154815290600101906020018083116109e857829003601f168201915b5050505050905090565b6000610a23610a1c611485565b8484611489565b5060015b92915050565b610a35611485565b6000546001600160a01b03908116911614610a6b5760405162461bcd60e51b8152600401610a62906122ff565b60405180910390fd5b60c98210610a7857600080fd5b60005b82811015610af5578160076000868685818110610aa857634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610abd9190611ebf565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610aee816125f1565b9050610a7b565b50505050565b6004546001600160a01b031681565b601b546001600160a01b031681565b60175490565b610b27611485565b6000546001600160a01b03908116911614610b545760405162461bcd60e51b8152600401610a62906122ff565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000610b8c84848461153d565b50610bfd84610b99611485565b610bf88560405180606001604052806028815260200161263b602891396001600160a01b038a16600090815260066020526040812090610bd7611485565b6001600160a01b031681526020810191909152604001600020549190611837565b611489565b5060015b9392505050565b60035461010090046001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610c77610c6e7f0000000000000000000000000000000000000000000000000000000000000000610ecc565b60175490611871565b905090565b60035460ff1690565b6000610a23610c92611485565b84610bf88560066000610ca3611485565b6001600160a01b03908116825260208083019390935260409182016000908120918c1681529252902054906113cf565b610cdb611485565b6000546001600160a01b03908116911614610d085760405162461bcd60e51b8152600401610a62906122ff565b601a55565b610d15611485565b6000546001600160a01b03908116911614610d425760405162461bcd60e51b8152600401610a62906122ff565b601c8054911515600160b01b0260ff60b01b19909216919091179055565b600a6020526000908152604090205460ff1681565b601c54600160b81b900460ff1681565b601c54600160a81b900460ff1681565b60076020526000908152604090205460ff1681565b60115481565b610db8611485565b6000546001600160a01b03908116911614610de55760405162461bcd60e51b8152600401610a62906122ff565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60125481565b610e1b611485565b6000546001600160a01b03908116911614610e485760405162461bcd60e51b8152600401610a62906122ff565b601c8054911515600160b81b0260ff60b81b19909216919091179055565b60185481565b610e74611485565b6000546001600160a01b03908116911614610ea15760405162461bcd60e51b8152600401610a62906122ff565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6001600160a01b0381166000908152600560205260409020545b919050565b60155481565b610ef9611485565b6000546001600160a01b03908116911614610f265760405162461bcd60e51b8152600401610a62906122ff565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b600e5481565b60096020526000908152604090205460ff1681565b6000546001600160a01b031690565b610f83611485565b6000546001600160a01b03908116911614610fb05760405162461bcd60e51b8152600401610a62906122ff565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b60606002805461098c906125b6565b611017611485565b6000546001600160a01b039081169116146110445760405162461bcd60e51b8152600401610a62906122ff565b61104c610c7c565b61105790600a6124af565b6110619082612580565b60195550565b60195481565b601a5490565b60165481565b6000610a23611086611485565b84610bf88560405180606001604052806025815260200161266360259139600660006110b0611485565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611837565b60135481565b6110ef611485565b6000546001600160a01b0390811691161461111c5760405162461bcd60e51b8152600401610a62906122ff565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000610bfd61114b611485565b848461153d565b101590565b600d5481565b611165611485565b6000546001600160a01b039081169116146111925760405162461bcd60e51b8152600401610a62906122ff565b601c805460ff60a81b1916600160a81b831515021790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906111d990839061215e565b60405180910390a150565b600c5481565b601c546001600160a01b031681565b600f5481565b60086020526000908152604090205460ff1681565b60105481565b611222611485565b6000546001600160a01b0390811691161461124f5760405162461bcd60e51b8152600401610a62906122ff565b611257610c7c565b61126290600a6124af565b61126c9082612580565b60185550565b601c54600160b01b900460ff1681565b600b5481565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b6112bb611485565b6000546001600160a01b039081169116146112e85760405162461bcd60e51b8152600401610a62906122ff565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b60145481565b611321611485565b6000546001600160a01b0390811691161461134e5760405162461bcd60e51b8152600401610a62906122ff565b6001600160a01b0381166113745760405162461bcd60e51b8152600401610a62906121ff565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806113dc8385612431565b905083811015610c015760405162461bcd60e51b8152600401610a6290612287565b60008261140d57506000610a27565b60006114198385612580565b9050826114268583612449565b14610c015760405162461bcd60e51b8152600401610a62906122be565b6000610c0183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118b3565b3390565b6001600160a01b0383166114af5760405162461bcd60e51b8152600401610a6290612379565b6001600160a01b0382166114d55760405162461bcd60e51b8152600401610a6290612245565b6001600160a01b0380841660008181526006602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906115309085906123bd565b60405180910390a3505050565b60006001600160a01b0384166115655760405162461bcd60e51b8152600401610a6290612334565b6001600160a01b03831661158b5760405162461bcd60e51b8152600401610a62906121bc565b601c54600160a01b900460ff16156115af576115a88484846118e1565b9050610c01565b6001600160a01b03841660009081526009602052604090205460ff161580156115f157506001600160a01b03831660009081526009602052604090205460ff16155b1561160b5761160282601854611152565b61160b57600080fd5b600061161630610ecc565b601a54909150811080159081906116375750601c54600160a01b900460ff16155b801561165c57506001600160a01b0386166000908152600a602052604090205460ff16155b80156116715750601c54600160a81b900460ff165b1561169757601c54600160b01b900460ff161561168e57601a5491505b611697826119c5565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600590915291909120546116e9918690611837565b6001600160a01b038716600090815260056020908152604080832093909355600790529081205460ff168061173657506001600160a01b03861660009081526007602052604090205460ff165b15611742575083611750565b61174d878787611b00565b90505b601c54600160b81b900460ff16801561178257506001600160a01b03861660009081526008602052604090205460ff16155b156117ae576117a561179d8261179789610ecc565b906113cf565b601954611152565b6117ae57600080fd5b6001600160a01b0386166000908152600560205260409020546117d190826113cf565b6001600160a01b0380881660008181526005602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118239085906123bd565b60405180910390a360019350505050610c01565b6000818484111561185b5760405162461bcd60e51b8152600401610a629190612169565b506000611868848661259f565b95945050505050565b6000610c0183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611837565b600081836118d45760405162461bcd60e51b8152600401610a629190612169565b5060006118688486612449565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054611932918490611837565b6001600160a01b03808616600090815260056020526040808220939093559085168152205461196190836113cf565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119b39086906123bd565b60405180910390a35060019392505050565b601c805460ff60a01b1916600160a01b1790556016546011546000916119fb916002916119f591829087906113fe565b90611443565b90506000611a098383611871565b9050611a1481611c04565b6011544790600090611a3490611a2b906002611443565b60165490611871565b90506000611a5660026119f5846119f5601154886113fe90919063ffffffff16565b90506000611a73836119f5601354876113fe90919063ffffffff16565b90506000611a8b82611a858786611871565b90611871565b90508015611aae57600354611aae9061010090046001600160a01b031682611dbc565b8115611aca57600454611aca906001600160a01b031683611dbc565b600083118015611ada5750600087115b15611ae957611ae98784611df7565b5050601c805460ff60a01b19169055505050505050565b6001600160a01b0383166000908152600a6020526040812054819060ff1615611b4457611b3d60646119f5601454866113fe90919063ffffffff16565b9050611b82565b6001600160a01b0384166000908152600a602052604090205460ff1615611b8257611b7f60646119f5601554866113fe90919063ffffffff16565b90505b8015611bfa5730600090815260056020526040902054611ba290826113cf565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611bf19085906123bd565b60405180910390a35b6118688382611871565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c4757634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611c9b57600080fd5b505afa158015611caf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd39190611edb565b81600181518110611cf457634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601b54611d1a9130911684611489565b601b5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d539085906000908690309042906004016123e7565b600060405180830381600087803b158015611d6d57600080fd5b505af1925050508015611d7e575060015b507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611db09291906123c6565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611df2573d6000803e3d6000fd5b505050565b601b54611e0f9030906001600160a01b031684611489565b601b5460035460405163f305d71960e01b81526001600160a01b039283169263f305d719928592611e5492309289926000928392610100900416904290600401612123565b6060604051808303818588803b158015611e6d57600080fd5b505af193505050508015611e9e575060408051601f3d908101601f19168201909252611e9b9181019061209f565b60015b611ea757611eab565b5050505b5050565b80358015158114610ee657600080fd5b600060208284031215611ed0578081fd5b8135610c0181612622565b600060208284031215611eec578081fd5b8151610c0181612622565b60008060408385031215611f09578081fd5b8235611f1481612622565b91506020830135611f2481612622565b809150509250929050565b600080600060608486031215611f43578081fd5b8335611f4e81612622565b92506020840135611f5e81612622565b929592945050506040919091013590565b60008060408385031215611f81578182fd5b8235611f8c81612622565b9150611f9a60208401611eaf565b90509250929050565b60008060408385031215611fb5578182fd5b8235611fc081612622565b946020939093013593505050565b600080600060408486031215611fe2578283fd5b833567ffffffffffffffff80821115611ff9578485fd5b818601915086601f83011261200c578485fd5b81358181111561201a578586fd5b876020808302850101111561202d578586fd5b6020928301955093506120439186019050611eaf565b90509250925092565b60006020828403121561205d578081fd5b610c0182611eaf565b600060208284031215612077578081fd5b5035919050565b60008060408385031215612090578182fd5b50508035926020909101359150565b6000806000606084860312156120b3578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b838110156121045781516001600160a01b0316875295820195908201906001016120df565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b8181101561219557858101830151858201604001528201612179565b818111156121a65783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b90815260200190565b6000838252604060208301526123df60408301846120cc565b949350505050565b600086825285602083015260a0604083015261240660a08301866120cc565b6001600160a01b0394909416606083015250608001529392505050565b60ff91909116815260200190565b600082198211156124445761244461260c565b500190565b60008261246457634e487b7160e01b81526012600452602481fd5b500490565b80825b600180861161247b57506124a6565b81870482111561248d5761248d61260c565b8086161561249a57918102915b9490941c93800261246c565b94509492505050565b6000610c0160001960ff8516846000826124cb57506001610c01565b816124d857506000610c01565b81600181146124ee57600281146124f857612525565b6001915050610c01565b60ff8411156125095761250961260c565b6001841b91508482111561251f5761251f61260c565b50610c01565b5060208310610133831016604e8410600b8410161715612558575081810a838111156125535761255361260c565b610c01565b6125658484846001612469565b8086048211156125775761257761260c565b02949350505050565b600081600019048311821515161561259a5761259a61260c565b500290565b6000828210156125b1576125b161260c565b500390565b6002810460018216806125ca57607f821691505b602082108114156125eb57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156126055761260561260c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461263757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122035f74377e883c8780e127da83282bec1e475e71323013db9f9621187b27ff9b364736f6c63430008000033

Deployed Bytecode

0x60806040526004361061036f5760003560e01c806388790a68116101c6578063c469b6dd116100f7578063cdf7249311610095578063dd62ed3e1161006f578063dd62ed3e14610908578063e2f2a68614610928578063f0cd1dac14610948578063f2fde38b1461095d57610376565b8063cdf72493146108be578063d9419b73146108de578063dc44b6a0146108f357610376565b8063c816841b116100d1578063c816841b1461085f578063c860795214610874578063c867d60b14610889578063cab03471146108a957610376565b8063c469b6dd14610815578063c49b9a801461082a578063c5d241891461084a57610376565b8063a073d37f11610164578063a83f53a71161013e578063a83f53a7146107a0578063a8602fea146107b5578063a9059cbb146107d5578063a911928c146107f557610376565b8063a073d37f14610756578063a08e671f1461076b578063a457c2d71461078057610376565b8063914eb66a116101a0578063914eb66a146106f757806395d89b411461070c578063989200de146107215780639daec0bc1461074157610376565b806388790a68146106ad5780638b42507f146106c25780638da5cb5b146106e257610376565b80633e07387c116102a057806361a23c691161023e57806370a02c8b1161021857806370a02c8b1461063857806370a082311461065857806382eefb4314610678578063844d591c1461068d57610376565b806361a23c69146105ee57806362e8e50b146106035780636ad53b591461062357610376565b80634a74bb021161027a5780634a74bb02146105845780635342acb41461059957806357a5802f146105b95780635d098b38146105ce57610376565b80633e07387c1461052f5780633ecad2711461054f57806346663b821461056f57610376565b806323b872dd1161030d5780632b112e49116102e75780632b112e49146104b8578063313ce567146104cd57806339509351146104ef5780633b97084a1461050f57610376565b806323b872dd1461046e5780632598cdb21461048e57806327c8f835146104a357610376565b806311ffeaf21161034957806311ffeaf2146103f55780631694505e1461041757806318160ddd1461042c5780631afe88921461044e57610376565b806306fdde031461037b578063095ea7b3146103a65780630ecc200f146103d357610376565b3661037657005b600080fd5b34801561038757600080fd5b5061039061097d565b60405161039d9190612169565b60405180910390f35b3480156103b257600080fd5b506103c66103c1366004611fa3565b610a0f565b60405161039d919061215e565b3480156103df57600080fd5b506103f36103ee366004611fce565b610a2d565b005b34801561040157600080fd5b5061040a610afb565b60405161039d919061210f565b34801561042357600080fd5b5061040a610b0a565b34801561043857600080fd5b50610441610b19565b60405161039d91906123bd565b34801561045a57600080fd5b506103f3610469366004611f6f565b610b1f565b34801561047a57600080fd5b506103c6610489366004611f2f565b610b7f565b34801561049a57600080fd5b5061040a610c08565b3480156104af57600080fd5b5061040a610c1c565b3480156104c457600080fd5b50610441610c40565b3480156104d957600080fd5b506104e2610c7c565b60405161039d9190612423565b3480156104fb57600080fd5b506103c661050a366004611fa3565b610c85565b34801561051b57600080fd5b506103f361052a366004612066565b610cd3565b34801561053b57600080fd5b506103f361054a36600461204c565b610d0d565b34801561055b57600080fd5b506103c661056a366004611ebf565b610d60565b34801561057b57600080fd5b506103c6610d75565b34801561059057600080fd5b506103c6610d85565b3480156105a557600080fd5b506103c66105b4366004611ebf565b610d95565b3480156105c557600080fd5b50610441610daa565b3480156105da57600080fd5b506103f36105e9366004611ebf565b610db0565b3480156105fa57600080fd5b50610441610e0d565b34801561060f57600080fd5b506103f361061e36600461204c565b610e13565b34801561062f57600080fd5b50610441610e66565b34801561064457600080fd5b506103f3610653366004611f6f565b610e6c565b34801561066457600080fd5b50610441610673366004611ebf565b610ecc565b34801561068457600080fd5b50610441610eeb565b34801561069957600080fd5b506103f36106a8366004611f6f565b610ef1565b3480156106b957600080fd5b50610441610f51565b3480156106ce57600080fd5b506103c66106dd366004611ebf565b610f57565b3480156106ee57600080fd5b5061040a610f6c565b34801561070357600080fd5b506103f3610f7b565b34801561071857600080fd5b50610390611000565b34801561072d57600080fd5b506103f361073c366004612066565b61100f565b34801561074d57600080fd5b50610441611067565b34801561076257600080fd5b5061044161106d565b34801561077757600080fd5b50610441611073565b34801561078c57600080fd5b506103c661079b366004611fa3565b611079565b3480156107ac57600080fd5b506104416110e1565b3480156107c157600080fd5b506103f36107d0366004611ebf565b6110e7565b3480156107e157600080fd5b506103c66107f0366004611fa3565b61113e565b34801561080157600080fd5b506103c661081036600461207e565b611152565b34801561082157600080fd5b50610441611157565b34801561083657600080fd5b506103f361084536600461204c565b61115d565b34801561085657600080fd5b506104416111e4565b34801561086b57600080fd5b5061040a6111ea565b34801561088057600080fd5b506104416111f9565b34801561089557600080fd5b506103c66108a4366004611ebf565b6111ff565b3480156108b557600080fd5b50610441611214565b3480156108ca57600080fd5b506103f36108d9366004612066565b61121a565b3480156108ea57600080fd5b506103c6611272565b3480156108ff57600080fd5b50610441611282565b34801561091457600080fd5b50610441610923366004611ef7565b611288565b34801561093457600080fd5b506103f3610943366004611f6f565b6112b3565b34801561095457600080fd5b50610441611313565b34801561096957600080fd5b506103f3610978366004611ebf565b611319565b60606001805461098c906125b6565b80601f01602080910402602001604051908101604052809291908181526020018280546109b8906125b6565b8015610a055780601f106109da57610100808354040283529160200191610a05565b820191906000526020600020905b8154815290600101906020018083116109e857829003601f168201915b5050505050905090565b6000610a23610a1c611485565b8484611489565b5060015b92915050565b610a35611485565b6000546001600160a01b03908116911614610a6b5760405162461bcd60e51b8152600401610a62906122ff565b60405180910390fd5b60c98210610a7857600080fd5b60005b82811015610af5578160076000868685818110610aa857634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610abd9190611ebf565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610aee816125f1565b9050610a7b565b50505050565b6004546001600160a01b031681565b601b546001600160a01b031681565b60175490565b610b27611485565b6000546001600160a01b03908116911614610b545760405162461bcd60e51b8152600401610a62906122ff565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000610b8c84848461153d565b50610bfd84610b99611485565b610bf88560405180606001604052806028815260200161263b602891396001600160a01b038a16600090815260066020526040812090610bd7611485565b6001600160a01b031681526020810191909152604001600020549190611837565b611489565b5060015b9392505050565b60035461010090046001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000dead81565b6000610c77610c6e7f000000000000000000000000000000000000000000000000000000000000dead610ecc565b60175490611871565b905090565b60035460ff1690565b6000610a23610c92611485565b84610bf88560066000610ca3611485565b6001600160a01b03908116825260208083019390935260409182016000908120918c1681529252902054906113cf565b610cdb611485565b6000546001600160a01b03908116911614610d085760405162461bcd60e51b8152600401610a62906122ff565b601a55565b610d15611485565b6000546001600160a01b03908116911614610d425760405162461bcd60e51b8152600401610a62906122ff565b601c8054911515600160b01b0260ff60b01b19909216919091179055565b600a6020526000908152604090205460ff1681565b601c54600160b81b900460ff1681565b601c54600160a81b900460ff1681565b60076020526000908152604090205460ff1681565b60115481565b610db8611485565b6000546001600160a01b03908116911614610de55760405162461bcd60e51b8152600401610a62906122ff565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60125481565b610e1b611485565b6000546001600160a01b03908116911614610e485760405162461bcd60e51b8152600401610a62906122ff565b601c8054911515600160b81b0260ff60b81b19909216919091179055565b60185481565b610e74611485565b6000546001600160a01b03908116911614610ea15760405162461bcd60e51b8152600401610a62906122ff565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6001600160a01b0381166000908152600560205260409020545b919050565b60155481565b610ef9611485565b6000546001600160a01b03908116911614610f265760405162461bcd60e51b8152600401610a62906122ff565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b600e5481565b60096020526000908152604090205460ff1681565b6000546001600160a01b031690565b610f83611485565b6000546001600160a01b03908116911614610fb05760405162461bcd60e51b8152600401610a62906122ff565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b60606002805461098c906125b6565b611017611485565b6000546001600160a01b039081169116146110445760405162461bcd60e51b8152600401610a62906122ff565b61104c610c7c565b61105790600a6124af565b6110619082612580565b60195550565b60195481565b601a5490565b60165481565b6000610a23611086611485565b84610bf88560405180606001604052806025815260200161266360259139600660006110b0611485565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611837565b60135481565b6110ef611485565b6000546001600160a01b0390811691161461111c5760405162461bcd60e51b8152600401610a62906122ff565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000610bfd61114b611485565b848461153d565b101590565b600d5481565b611165611485565b6000546001600160a01b039081169116146111925760405162461bcd60e51b8152600401610a62906122ff565b601c805460ff60a81b1916600160a81b831515021790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906111d990839061215e565b60405180910390a150565b600c5481565b601c546001600160a01b031681565b600f5481565b60086020526000908152604090205460ff1681565b60105481565b611222611485565b6000546001600160a01b0390811691161461124f5760405162461bcd60e51b8152600401610a62906122ff565b611257610c7c565b61126290600a6124af565b61126c9082612580565b60185550565b601c54600160b01b900460ff1681565b600b5481565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b6112bb611485565b6000546001600160a01b039081169116146112e85760405162461bcd60e51b8152600401610a62906122ff565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b60145481565b611321611485565b6000546001600160a01b0390811691161461134e5760405162461bcd60e51b8152600401610a62906122ff565b6001600160a01b0381166113745760405162461bcd60e51b8152600401610a62906121ff565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806113dc8385612431565b905083811015610c015760405162461bcd60e51b8152600401610a6290612287565b60008261140d57506000610a27565b60006114198385612580565b9050826114268583612449565b14610c015760405162461bcd60e51b8152600401610a62906122be565b6000610c0183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118b3565b3390565b6001600160a01b0383166114af5760405162461bcd60e51b8152600401610a6290612379565b6001600160a01b0382166114d55760405162461bcd60e51b8152600401610a6290612245565b6001600160a01b0380841660008181526006602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906115309085906123bd565b60405180910390a3505050565b60006001600160a01b0384166115655760405162461bcd60e51b8152600401610a6290612334565b6001600160a01b03831661158b5760405162461bcd60e51b8152600401610a62906121bc565b601c54600160a01b900460ff16156115af576115a88484846118e1565b9050610c01565b6001600160a01b03841660009081526009602052604090205460ff161580156115f157506001600160a01b03831660009081526009602052604090205460ff16155b1561160b5761160282601854611152565b61160b57600080fd5b600061161630610ecc565b601a54909150811080159081906116375750601c54600160a01b900460ff16155b801561165c57506001600160a01b0386166000908152600a602052604090205460ff16155b80156116715750601c54600160a81b900460ff165b1561169757601c54600160b01b900460ff161561168e57601a5491505b611697826119c5565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600590915291909120546116e9918690611837565b6001600160a01b038716600090815260056020908152604080832093909355600790529081205460ff168061173657506001600160a01b03861660009081526007602052604090205460ff165b15611742575083611750565b61174d878787611b00565b90505b601c54600160b81b900460ff16801561178257506001600160a01b03861660009081526008602052604090205460ff16155b156117ae576117a561179d8261179789610ecc565b906113cf565b601954611152565b6117ae57600080fd5b6001600160a01b0386166000908152600560205260409020546117d190826113cf565b6001600160a01b0380881660008181526005602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118239085906123bd565b60405180910390a360019350505050610c01565b6000818484111561185b5760405162461bcd60e51b8152600401610a629190612169565b506000611868848661259f565b95945050505050565b6000610c0183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611837565b600081836118d45760405162461bcd60e51b8152600401610a629190612169565b5060006118688486612449565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600590915291822054611932918490611837565b6001600160a01b03808616600090815260056020526040808220939093559085168152205461196190836113cf565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119b39086906123bd565b60405180910390a35060019392505050565b601c805460ff60a01b1916600160a01b1790556016546011546000916119fb916002916119f591829087906113fe565b90611443565b90506000611a098383611871565b9050611a1481611c04565b6011544790600090611a3490611a2b906002611443565b60165490611871565b90506000611a5660026119f5846119f5601154886113fe90919063ffffffff16565b90506000611a73836119f5601354876113fe90919063ffffffff16565b90506000611a8b82611a858786611871565b90611871565b90508015611aae57600354611aae9061010090046001600160a01b031682611dbc565b8115611aca57600454611aca906001600160a01b031683611dbc565b600083118015611ada5750600087115b15611ae957611ae98784611df7565b5050601c805460ff60a01b19169055505050505050565b6001600160a01b0383166000908152600a6020526040812054819060ff1615611b4457611b3d60646119f5601454866113fe90919063ffffffff16565b9050611b82565b6001600160a01b0384166000908152600a602052604090205460ff1615611b8257611b7f60646119f5601554866113fe90919063ffffffff16565b90505b8015611bfa5730600090815260056020526040902054611ba290826113cf565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611bf19085906123bd565b60405180910390a35b6118688382611871565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c4757634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611c9b57600080fd5b505afa158015611caf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd39190611edb565b81600181518110611cf457634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601b54611d1a9130911684611489565b601b5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d539085906000908690309042906004016123e7565b600060405180830381600087803b158015611d6d57600080fd5b505af1925050508015611d7e575060015b507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611db09291906123c6565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611df2573d6000803e3d6000fd5b505050565b601b54611e0f9030906001600160a01b031684611489565b601b5460035460405163f305d71960e01b81526001600160a01b039283169263f305d719928592611e5492309289926000928392610100900416904290600401612123565b6060604051808303818588803b158015611e6d57600080fd5b505af193505050508015611e9e575060408051601f3d908101601f19168201909252611e9b9181019061209f565b60015b611ea757611eab565b5050505b5050565b80358015158114610ee657600080fd5b600060208284031215611ed0578081fd5b8135610c0181612622565b600060208284031215611eec578081fd5b8151610c0181612622565b60008060408385031215611f09578081fd5b8235611f1481612622565b91506020830135611f2481612622565b809150509250929050565b600080600060608486031215611f43578081fd5b8335611f4e81612622565b92506020840135611f5e81612622565b929592945050506040919091013590565b60008060408385031215611f81578182fd5b8235611f8c81612622565b9150611f9a60208401611eaf565b90509250929050565b60008060408385031215611fb5578182fd5b8235611fc081612622565b946020939093013593505050565b600080600060408486031215611fe2578283fd5b833567ffffffffffffffff80821115611ff9578485fd5b818601915086601f83011261200c578485fd5b81358181111561201a578586fd5b876020808302850101111561202d578586fd5b6020928301955093506120439186019050611eaf565b90509250925092565b60006020828403121561205d578081fd5b610c0182611eaf565b600060208284031215612077578081fd5b5035919050565b60008060408385031215612090578182fd5b50508035926020909101359150565b6000806000606084860312156120b3578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b838110156121045781516001600160a01b0316875295820195908201906001016120df565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b8181101561219557858101830151858201604001528201612179565b818111156121a65783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b90815260200190565b6000838252604060208301526123df60408301846120cc565b949350505050565b600086825285602083015260a0604083015261240660a08301866120cc565b6001600160a01b0394909416606083015250608001529392505050565b60ff91909116815260200190565b600082198211156124445761244461260c565b500190565b60008261246457634e487b7160e01b81526012600452602481fd5b500490565b80825b600180861161247b57506124a6565b81870482111561248d5761248d61260c565b8086161561249a57918102915b9490941c93800261246c565b94509492505050565b6000610c0160001960ff8516846000826124cb57506001610c01565b816124d857506000610c01565b81600181146124ee57600281146124f857612525565b6001915050610c01565b60ff8411156125095761250961260c565b6001841b91508482111561251f5761251f61260c565b50610c01565b5060208310610133831016604e8410600b8410161715612558575081810a838111156125535761255361260c565b610c01565b6125658484846001612469565b8086048211156125775761257761260c565b02949350505050565b600081600019048311821515161561259a5761259a61260c565b500290565b6000828210156125b1576125b161260c565b500390565b6002810460018216806125ca57607f821691505b602082108114156125eb57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156126055761260561260c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461263757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122035f74377e883c8780e127da83282bec1e475e71323013db9f9621187b27ff9b364736f6c63430008000033

Deployed Bytecode Sourcemap

18477:441:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8733:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10027:161;;;;;;;;;;-1:-1:-1;10027:161:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10960:260::-;;;;;;;;;;-1:-1:-1;10960:260:0;;;;;:::i;:::-;;:::i;:::-;;4601:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5718:41::-;;;;;;;;;;;;;:::i;9010:100::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;10678:127::-;;;;;;;;;;-1:-1:-1;10678:127:0;;;;;:::i;:::-;;:::i;13026:313::-;;;;;;;;;;-1:-1:-1;13026:313:0;;;;;:::i;:::-;;:::i;4556:38::-;;;;;;;;;;;;;:::i;4645:81::-;;;;;;;;;;;;;:::i;12487:128::-;;;;;;;;;;;;;:::i;8919:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;9396:218::-;;;;;;;;;;-1:-1:-1;9396:218:0;;;;;:::i;:::-;;:::i;11775:124::-;;;;;;;;;;-1:-1:-1;11775:124:0;;;;;:::i;:::-;;:::i;12350:125::-;;;;;;;;;;-1:-1:-1;12350:125:0;;;;;:::i;:::-;;:::i;5039:45::-;;;;;;;;;;-1:-1:-1;5039:45:0;;;;;:::i;:::-;;:::i;5932:36::-;;;;;;;;;;;;;:::i;5833:40::-;;;;;;;;;;;;;:::i;4868:50::-;;;;;;;;;;-1:-1:-1;4868:50:0;;;;;:::i;:::-;;:::i;5322:30::-;;;;;;;;;;;;;:::i;11907:125::-;;;;;;;;;;-1:-1:-1;11907:125:0;;;;;:::i;:::-;;:::i;5359:30::-;;;;;;;;;;;;;:::i;11368:113::-;;;;;;;;;;-1:-1:-1;11368:113:0;;;;;:::i;:::-;;:::i;5592:29::-;;;;;;;;;;;;;:::i;11489:135::-;;;;;;;;;;-1:-1:-1;11489:135:0;;;;;:::i;:::-;;:::i;9118:119::-;;;;;;;;;;-1:-1:-1;9118:119:0;;;;;:::i;:::-;;:::i;5469:33::-;;;;;;;;;;;;;:::i;10541:129::-;;;;;;;;;;-1:-1:-1;10541:129:0;;;;;:::i;:::-;;:::i;5208:32::-;;;;;;;;;;;;;:::i;4984:48::-;;;;;;;;;;-1:-1:-1;4984:48:0;;;;;:::i;:::-;;:::i;2908:79::-;;;;;;;;;;;;;:::i;3133:155::-;;;;;;;;;;;;;:::i;8824:87::-;;;;;;;;;;;;;:::i;11632:135::-;;;;;;;;;;-1:-1:-1;11632:135:0;;;;;:::i;:::-;;:::i;5629:33::-;;;;;;;;;;;;;:::i;9899:120::-;;;;;;;;;;;;;:::i;5509:39::-;;;;;;;;;;;;;:::i;9622:269::-;;;;;;;;;;-1:-1:-1;9622:269:0;;;;;:::i;:::-;;:::i;5396:25::-;;;;;;;;;;;;;:::i;12040:123::-;;;;;;;;;;-1:-1:-1;12040:123:0;;;;;:::i;:::-;;:::i;12851:167::-;;;;;;;;;;-1:-1:-1;12851:167:0;;;;;:::i;:::-;;:::i;15135:86::-;;;;;;;;;;-1:-1:-1;15135:86:0;;;;;:::i;:::-;;:::i;5169:26::-;;;;;;;;;;;;;:::i;12171:171::-;;;;;;;;;;-1:-1:-1;12171:171:0;;;;;:::i;:::-;;:::i;5131:31::-;;;;;;;;;;;;;:::i;5766:26::-;;;;;;;;;;;;;:::i;5247:32::-;;;;;;;;;;;;;:::i;4925:52::-;;;;;;;;;;-1:-1:-1;4925:52:0;;;;;:::i;:::-;;:::i;5286:27::-;;;;;;;;;;;;;:::i;11232:128::-;;;;;;;;;;-1:-1:-1;11232:128:0;;;;;:::i;:::-;;:::i;5880:45::-;;;;;;;;;;;;;:::i;5093:31::-;;;;;;;;;;;;;:::i;9245:143::-;;;;;;;;;;-1:-1:-1;9245:143:0;;;;;:::i;:::-;;:::i;10817:135::-;;;;;;;;;;-1:-1:-1;10817:135:0;;;;;:::i;:::-;;:::i;5430:32::-;;;;;;;;;;;;;:::i;3296:244::-;;;;;;;;;;-1:-1:-1;3296:244:0;;;;;:::i;:::-;;:::i;8733:83::-;8770:13;8803:5;8796:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8733:83;:::o;10027:161::-;10102:4;10119:39;10128:12;:10;:12::i;:::-;10142:7;10151:6;10119:8;:39::i;:::-;-1:-1:-1;10176:4:0;10027:161;;;;;:::o;10960:260::-;3052:12;:10;:12::i;:::-;3042:6;;-1:-1:-1;;;;;3042:6:0;;;:22;;;3034:67;;;;-1:-1:-1;;;3034:67:0;;;;;;;:::i;:::-;;;;;;;;;11088:3:::1;11069:22:::0;::::1;11061:31;;;::::0;::::1;;11108:9;11103:110;11119:20:::0;;::::1;11103:110;;;11195:6;11161:17;:31;11179:9;;11189:1;11179:12;;;;;-1:-1:-1::0;;;11179:12:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11161:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11161:31:0;:40;;-1:-1:-1;;11161:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11141:3:::1;::::0;::::1;:::i;:::-;;;11103:110;;;;10960:260:::0;;;:::o;4601:37::-;;;-1:-1:-1;;;;;4601:37:0;;:::o;5718:41::-;;;-1:-1:-1;;;;;5718:41:0;;:::o;9010:100::-;9090:12;;9010:100;:::o;10678:127::-;3052:12;:10;:12::i;:::-;3042:6;;-1:-1:-1;;;;;3042:6:0;;;:22;;;3034:67;;;;-1:-1:-1;;;3034:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10765:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;10765:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10678:127::o;13026:313::-;13124:4;13141:36;13151:6;13159:9;13170:6;13141:9;:36::i;:::-;;13188:121;13197:6;13205:12;:10;:12::i;:::-;13219:89;13257:6;13219:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13219:19:0;;;;;;:11;:19;;;;;;13239:12;:10;:12::i;:::-;-1:-1:-1;;;;;13219:33:0;;;;;;;;;;;;-1:-1:-1;13219:33:0;;;:89;:37;:89::i;:::-;13188:8;:121::i;:::-;-1:-1:-1;13327:4:0;13026:313;;;;;;:::o;4556:38::-;;;;;;-1:-1:-1;;;;;4556:38:0;;:::o;4645:81::-;;;:::o;12487:128::-;12540:7;12567:40;12584:22;12594:11;12584:9;:22::i;:::-;12567:12;;;:16;:40::i;:::-;12560:47;;12487:128;:::o;8919:83::-;8985:9;;;;8919:83;:::o;9396:218::-;9484:4;9501:83;9510:12;:10;:12::i;:::-;9524:7;9533:50;9572:10;9533:11;:25;9545:12;:10;:12::i;:::-;-1:-1:-1;;;;;9533:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;9533:25:0;;;:34;;;;;;;;;;;:38;:50::i;11775:124::-;3052:12;:10;:12::i;:::-;3042:6;;-1:-1:-1;;;;;3042:6:0;;;:22;;;3034:67;;;;-1:-1:-1;;;3034:67:0;;;;;;;:::i;:::-;11857:23:::1;:34:::0;11775:124::o;12350:125::-;3052:12;:10;:12::i;:::-;3042:6;;-1:-1:-1;;;;;3042:6:0;;;:22;;;3034:67;;;;-1:-1:-1;;;3034:67:0;;;;;;;:::i;:::-;12431:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;12431:36:0::1;-1:-1:-1::0;;;;12431:36:0;;::::1;::::0;;;::::1;::::0;;12350:125::o;5039:45::-;;;;;;;;;;;;;;;:::o;5932:36::-;;;-1:-1:-1;;;5932:36:0;;;;;:::o;5833:40::-;;;-1:-1:-1;;;5833:40:0;;;;;:::o;4868:50::-;;;;;;;;;;;;;;;:::o;5322:30::-;;;;:::o;11907:125::-;3052:12;:10;:12::i;:::-;3042:6;;-1:-1:-1;;;;;3042:6:0;;;:22;;;3034:67;;;;-1:-1:-1;;;3034:67:0;;;;;;;:::i;:::-;11987:15:::1;:37:::0;;-1:-1:-1;;;;;11987:37:0;;::::1;;;-1:-1:-1::0;;;;;;11987:37:0;;::::1;::::0;;;::::1;::::0;;11907:125::o;5359:30::-;;;;:::o;11368:113::-;3052:12;:10;:12::i;:::-;3042:6;;-1:-1:-1;;;;;3042:6:0;;;:22;;;3034:67;;;;-1:-1:-1;;;3034:67:0;;;;;;;:::i;:::-;11445:17:::1;:28:::0;;;::::1;;-1:-1:-1::0;;;11445:28:0::1;-1:-1:-1::0;;;;11445:28:0;;::::1;::::0;;;::::1;::::0;;11368:113::o;5592:29::-;;;;:::o;11489:135::-;3052:12;:10;:12::i;:::-;3042:6;;-1:-1:-1;;;;;3042:6:0;;;:22;;;3034:67;;;;-1:-1:-1;;;3034:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11580:27:0;;;::::1;;::::0;;;:19:::1;:27;::::0;;;;:36;;-1:-1:-1;;11580:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11489:135::o;9118:119::-;-1:-1:-1;;;;;9211:18:0;;9184:7;9211:18;;;:9;:18;;;;;;9118:119;;;;:::o;5469:33::-;;;;:::o;10541:129::-;3052:12;:10;:12::i;:::-;3042:6;;-1:-1:-1;;;;;3042:6:0;;;:22;;;3034:67;;;;-1:-1:-1;;;3034:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10630:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;10630:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10541:129::o;5208:32::-;;;;:::o;4984:48::-;;;;;;;;;;;;;;;:::o;2908:79::-;2946:7;2973:6;-1:-1:-1;;;;;2973:6:0;2908:79;:::o;3133:155::-;3052:12;:10;:12::i;:::-;3042:6;;-1:-1:-1;;;;;3042:6:0;;;:22;;;3034:67;;;;-1:-1:-1;;;3034:67:0;;;;;;;:::i;:::-;3221:6:::1;::::0;;3200:45:::1;::::0;3237:6:::1;::::0;-1:-1:-1;;;;;3221:6:0;;::::1;::::0;3200:45:::1;::::0;::::1;3256:6;:24:::0;;-1:-1:-1;;;;;;3256:24:0::1;3273:6;3256:24;::::0;;3133:155::o;8824:87::-;8863:13;8896:7;8889:14;;;;;:::i;11632:135::-;3052:12;:10;:12::i;:::-;3042:6;;-1:-1:-1;;;;;3042:6:0;;;:22;;;3034:67;;;;-1:-1:-1;;;3034:67:0;;;;;;;:::i;:::-;11749:10:::1;:8;:10::i;:::-;11743:16;::::0;:2:::1;:16;:::i;:::-;11732:27;::::0;:8;:27:::1;:::i;:::-;11710:18;:49:::0;-1:-1:-1;11632:135:0:o;5629:33::-;;;;:::o;9899:120::-;9988:23;;9899:120;:::o;5509:39::-;;;;:::o;9622:269::-;9715:4;9732:129;9741:12;:10;:12::i;:::-;9755:7;9764:96;9803:15;9764:96;;;;;;;;;;;;;;;;;:11;:25;9776:12;:10;:12::i;:::-;-1:-1:-1;;;;;9764:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;9764:25:0;;;:34;;;;;;;;;;;:96;:38;:96::i;5396:25::-;;;;:::o;12040:123::-;3052:12;:10;:12::i;:::-;3042:6;;-1:-1:-1;;;;;3042:6:0;;;:22;;;3034:67;;;;-1:-1:-1;;;3034:67:0;;;;;;;:::i;:::-;12119:14:::1;:36:::0;;-1:-1:-1;;;;;;12119:36:0::1;-1:-1:-1::0;;;;;12119:36:0;;;::::1;::::0;;;::::1;::::0;;12040:123::o;12851:167::-;12929:4;12946:42;12956:12;:10;:12::i;:::-;12970:9;12981:6;12946:9;:42::i;15135:86::-;-1:-1:-1;15214:4:0;;15135:86::o;5169:26::-;;;;:::o;12171:171::-;3052:12;:10;:12::i;:::-;3042:6;;-1:-1:-1;;;;;3042:6:0;;;:22;;;3034:67;;;;-1:-1:-1;;;3034:67:0;;;;;;;:::i;:::-;12248:21:::1;:32:::0;;-1:-1:-1;;;;12248:32:0::1;-1:-1:-1::0;;;12248:32:0;::::1;;;;::::0;;12296:38:::1;::::0;::::1;::::0;::::1;::::0;12248:32;;12296:38:::1;:::i;:::-;;;;;;;;12171:171:::0;:::o;5131:31::-;;;;:::o;5766:26::-;;;-1:-1:-1;;;;;5766:26:0;;:::o;5247:32::-;;;;:::o;4925:52::-;;;;;;;;;;;;;;;:::o;5286:27::-;;;;:::o;11232:128::-;3052:12;:10;:12::i;:::-;3042:6;;-1:-1:-1;;;;;3042:6:0;;;:22;;;3034:67;;;;-1:-1:-1;;;3034:67:0;;;;;;;:::i;:::-;11342:10:::1;:8;:10::i;:::-;11336:16;::::0;:2:::1;:16;:::i;:::-;11325:27;::::0;:8;:27:::1;:::i;:::-;11308:14;:44:::0;-1:-1:-1;11232:128:0:o;5880:45::-;;;-1:-1:-1;;;5880:45:0;;;;;:::o;5093:31::-;;;;:::o;9245:143::-;-1:-1:-1;;;;;9353:18:0;;;9326:7;9353:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9245:143::o;10817:135::-;3052:12;:10;:12::i;:::-;3042:6;;-1:-1:-1;;;;;3042:6:0;;;:22;;;3034:67;;;;-1:-1:-1;;;3034:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10907:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;10907:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10817:135::o;5430:32::-;;;;:::o;3296:244::-;3052:12;:10;:12::i;:::-;3042:6;;-1:-1:-1;;;;;3042:6:0;;;:22;;;3034:67;;;;-1:-1:-1;;;3034:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3385:22:0;::::1;3377:73;;;;-1:-1:-1::0;;;3377:73:0::1;;;;;;;:::i;:::-;3487:6;::::0;;3466:38:::1;::::0;-1:-1:-1;;;;;3466:38:0;;::::1;::::0;3487:6;::::1;::::0;3466:38:::1;::::0;::::1;3515:6;:17:::0;;-1:-1:-1;;;;;;3515:17:0::1;-1:-1:-1::0;;;;;3515:17:0;;;::::1;::::0;;;::::1;::::0;;3296:244::o;1151:181::-;1209:7;;1241:5;1245:1;1241;:5;:::i;:::-;1229:17;;1270:1;1265;:6;;1257:46;;;;-1:-1:-1;;;1257:46:0;;;;;;;:::i;1684:250::-;1742:7;1766:6;1762:47;;-1:-1:-1;1796:1:0;1789:8;;1762:47;1821:9;1833:5;1837:1;1833;:5;:::i;:::-;1821:17;-1:-1:-1;1866:1:0;1857:5;1861:1;1821:17;1857:5;:::i;:::-;:10;1849:56;;;;-1:-1:-1;;;1849:56:0;;;;;;;:::i;1942:132::-;2000:7;2027:39;2031:1;2034;2027:39;;;;;;;;;;;;;;;;;:3;:39::i;202:115::-;298:10;202:115;:::o;10196:337::-;-1:-1:-1;;;;;10289:19:0;;10281:68;;;;-1:-1:-1;;;10281:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10368:21:0;;10360:68;;;;-1:-1:-1;;;10360:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10441:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;10493:32;;;;;10471:6;;10493:32;:::i;:::-;;;;;;;;10196:337;;;:::o;13347:1780::-;13434:4;-1:-1:-1;;;;;13461:20:0;;13453:70;;;;-1:-1:-1;;;13453:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13542:23:0;;13534:71;;;;-1:-1:-1;;;13534:71:0;;;;;;;:::i;:::-;13621:16;;-1:-1:-1;;;13621:16:0;;;;13618:1502;;;13671:41;13686:6;13694:9;13705:6;13671:14;:41::i;:::-;13664:48;;;;13618:1502;-1:-1:-1;;;;;13768:23:0;;;;;;:15;:23;;;;;;;;13767:24;:55;;;;-1:-1:-1;;;;;;13796:26:0;;;;;;:15;:26;;;;;;;;13795:27;13767:55;13764:140;;;13851:36;13864:6;13872:14;;13851:12;:36::i;:::-;13843:45;;;;;;13932:28;13963:24;13981:4;13963:9;:24::i;:::-;14057:23;;13932:55;;-1:-1:-1;14033:47:0;;;;;;;14113:44;;-1:-1:-1;14141:16:0;;-1:-1:-1;;;14141:16:0;;;;14140:17;14113:44;:69;;;;-1:-1:-1;;;;;;14162:20:0;;;;;;:12;:20;;;;;;;;14161:21;14113:69;:94;;;;-1:-1:-1;14186:21:0;;-1:-1:-1;;;14186:21:0;;;;14113:94;14109:305;;;14245:25;;-1:-1:-1;;;14245:25:0;;;;14242:97;;;14316:23;;14293:46;;14242:97;14358:36;14373:20;14358:14;:36::i;:::-;14450:53;;;;;;;;;;;-1:-1:-1;;;14450:53:0;;;;;;;;-1:-1:-1;;;;;14450:17:0;;-1:-1:-1;14450:17:0;;;:9;:17;;;;;;;;:53;;14472:6;;14450:21;:53::i;:::-;-1:-1:-1;;;;;14430:17:0;;;;;;:9;:17;;;;;;;;:73;;;;14556:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;14585:28:0;;;;;;:17;:28;;;;;;;;14556:57;14552:207;;;-1:-1:-1;14648:6:0;14552:207;;;14709:34;14717:6;14725:9;14736:6;14709:7;:34::i;:::-;14695:48;;14552:207;14778:17;;-1:-1:-1;;;14778:17:0;;;;:52;;;;-1:-1:-1;;;;;;14800:30:0;;;;;;:19;:30;;;;;;;;14799:31;14778:52;14775:154;;;14857:71;14870:37;14895:11;14870:20;14880:9;14870;:20::i;:::-;:24;;:37::i;:::-;14909:18;;14857:12;:71::i;:::-;14849:80;;;;;;-1:-1:-1;;;;;14969:20:0;;;;;;:9;:20;;;;;;:37;;14994:11;14969:24;:37::i;:::-;-1:-1:-1;;;;;14946:20:0;;;;;;;:9;:20;;;;;;;:60;;;;15028:40;;;;;;;;;;15056:11;;15028:40;:::i;:::-;;;;;;;;15090:4;15083:11;;;;;;;1484:192;1570:7;1606:12;1598:6;;;;1590:29;;;;-1:-1:-1;;;1590:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1630:9:0;1642:5;1646:1;1642;:5;:::i;:::-;1630:17;1484:192;-1:-1:-1;;;;;1484:192:0:o;1340:136::-;1398:7;1425:43;1429:1;1432;1425:43;;;;;;;;;;;;;;;;;:3;:43::i;2082:189::-;2168:7;2203:12;2196:5;2188:28;;;;-1:-1:-1;;;2188:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2227:9:0;2239:5;2243:1;2239;:5;:::i;15229:330::-;15359:53;;;;;;;;;;;-1:-1:-1;;;15359:53:0;;;;;;;;-1:-1:-1;;;;;15359:17:0;;15322:4;15359:17;;;:9;:17;;;;;;;:53;;15381:6;;15359:21;:53::i;:::-;-1:-1:-1;;;;;15339:17:0;;;;;;;:9;:17;;;;;;:73;;;;15446:20;;;;;;;:32;;15471:6;15446:24;:32::i;:::-;-1:-1:-1;;;;;15423:20:0;;;;;;;:9;:20;;;;;;;:55;;;;15494:35;;;;;;;;;;15522:6;;15494:35;:::i;:::-;;;;;;;;-1:-1:-1;15547:4:0;15229:330;;;;;:::o;15567:1038::-;6391:16;:23;;-1:-1:-1;;;;6391:23:0;-1:-1:-1;;;6391:23:0;;;15704:24:::1;::::0;15683:15:::1;::::0;6391:23;;15671:65:::1;::::0;15734:1:::1;::::0;15671:58:::1;::::0;;;:7;;:11:::1;:28::i;:::-;:32:::0;::::1;:58::i;:65::-;15649:87:::0;-1:-1:-1;15747:21:0::1;15771:24;:7:::0;15649:87;15771:11:::1;:24::i;:::-;15747:48;;15808:31;15825:13;15808:16;:31::i;:::-;15960:15;::::0;15875:21:::1;::::0;15850:22:::1;::::0;15931:52:::1;::::0;15960:22:::1;::::0;15980:1:::1;15960:19;:22::i;:::-;15931:24;::::0;;:28:::1;:52::i;:::-;15909:74;;16004:26;16033:59;16090:1;16033:52;16073:11;16033:35;16052:15;;16033:14;:18;;:35;;;;:::i;:59::-;16004:88;;16103:21;16127:47;16162:11;16127:30;16146:10;;16127:14;:18;;:30;;;;:::i;:47::-;16103:71:::0;-1:-1:-1;16185:26:0::1;16214:57;16103:71:::0;16214:38:::1;:14:::0;16233:18;16214::::1;:38::i;:::-;:42:::0;::::1;:57::i;:::-;16185:86:::0;-1:-1:-1;16287:22:0;;16284:97:::1;;16345:15;::::0;16324:57:::1;::::0;16345:15:::1;::::0;::::1;-1:-1:-1::0;;;;;16345:15:0::1;16362:18:::0;16324:20:::1;:57::i;:::-;16397:17:::0;;16394:86:::1;;16450:14;::::0;16429:51:::1;::::0;-1:-1:-1;;;;;16450:14:0::1;16466:13:::0;16429:20:::1;:51::i;:::-;16517:1;16496:18;:22;:41;;;;;16536:1;16522:11;:15;16496:41;16493:104;;;16552:45;16565:11;16578:18;16552:12;:45::i;:::-;-1:-1:-1::0;;6437:16:0;:24;;-1:-1:-1;;;;6437:24:0;;;-1:-1:-1;;;;;;15567:1038:0:o;17848:622::-;-1:-1:-1;;;;;18009:20:0;;17934:7;18009:20;;;:12;:20;;;;;;17934:7;;18009:20;;18006:223;;;18058:38;18092:3;18058:29;18069:17;;18058:6;:10;;:29;;;;:::i;:38::-;18046:50;;18006:223;;;-1:-1:-1;;;;;18126:23:0;;;;;;:12;:23;;;;;;;;18123:106;;;18178:39;18213:3;18178:30;18189:18;;18178:6;:10;;:30;;;;:::i;:39::-;18166:51;;18123:106;18252:13;;18249:173;;18327:4;18309:24;;;;:9;:24;;;;;;:39;;18338:9;18309:28;:39::i;:::-;18300:4;18282:24;;;;:9;:24;;;;;;;:66;;;;18368:42;;-1:-1:-1;;;;;18368:42:0;;;;;;;18400:9;;18368:42;:::i;:::-;;;;;;;;18249:173;18441:21;:6;18452:9;18441:10;:21::i;16615:681::-;16765:16;;;16779:1;16765:16;;;;;;;;16741:21;;16765:16;;;;;;;;;;-1:-1:-1;16765:16:0;16741:40;;16810:4;16792;16797:1;16792:7;;;;;;-1:-1:-1;;;16792:7:0;;;;;;;;;-1:-1:-1;;;;;16792:23:0;;;:7;;;;;;;;;;:23;;;;16836:15;;:22;;;-1:-1:-1;;;16836:22:0;;;;:15;;;;;:20;;:22;;;;;16792:7;;16836:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16826:4;16831:1;16826:7;;;;;;-1:-1:-1;;;16826:7:0;;;;;;;;;-1:-1:-1;;;;;16826:32:0;;;:7;;;;;;;;;:32;16903:15;;16871:62;;16888:4;;16903:15;16921:11;16871:8;:62::i;:::-;16976:15;;:240;;-1:-1:-1;;;16976:240:0;;-1:-1:-1;;;;;16976:15:0;;;;:66;;:240;;17057:11;;16976:15;;17127:4;;17154;;17190:15;;16976:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16972:256;17253:35;17270:11;17283:4;17253:35;;;;;;;:::i;:::-;;;;;;;;16615:681;;:::o;12623:126::-;12715:26;;-1:-1:-1;;;;;12715:18:0;;;:26;;;;;12734:6;;12715:26;;;;12734:6;12715:18;:26;;;;;;;;;;;;;;;;;;;;;12623:126;;:::o;17304:536::-;17484:15;;17452:62;;17469:4;;-1:-1:-1;;;;;17484:15:0;17502:11;17452:8;:62::i;:::-;17561:15;;17765;;17561:260;;-1:-1:-1;;;17561:260:0;;-1:-1:-1;;;;;17561:15:0;;;;:31;;17600:9;;17561:260;;17633:4;;17653:11;;17561:15;;;;;17765;;;;17795;;17561:260;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17561:260:0;;;;;;;;-1:-1:-1;;17561:260:0;;;;;;;;;;;;:::i;:::-;;;17557:276;;;;;;;;;17304:536;;:::o;14:162:1:-;81:20;;137:13;;130:21;120:32;;110:2;;166:1;163;156:12;181:259;;293:2;281:9;272:7;268:23;264:32;261:2;;;314:6;306;299:22;261:2;358:9;345:23;377:33;404:5;377:33;:::i;445:263::-;;568:2;556:9;547:7;543:23;539:32;536:2;;;589:6;581;574:22;536:2;626:9;620:16;645:33;672:5;645:33;:::i;713:402::-;;;842:2;830:9;821:7;817:23;813:32;810:2;;;863:6;855;848:22;810:2;907:9;894:23;926:33;953:5;926:33;:::i;:::-;978:5;-1:-1:-1;1035:2:1;1020:18;;1007:32;1048:35;1007:32;1048:35;:::i;:::-;1102:7;1092:17;;;800:315;;;;;:::o;1120:470::-;;;;1266:2;1254:9;1245:7;1241:23;1237:32;1234:2;;;1287:6;1279;1272:22;1234:2;1331:9;1318:23;1350:33;1377:5;1350:33;:::i;:::-;1402:5;-1:-1:-1;1459:2:1;1444:18;;1431:32;1472:35;1431:32;1472:35;:::i;:::-;1224:366;;1526:7;;-1:-1:-1;;;1580:2:1;1565:18;;;;1552:32;;1224:366::o;1595:329::-;;;1721:2;1709:9;1700:7;1696:23;1692:32;1689:2;;;1742:6;1734;1727:22;1689:2;1786:9;1773:23;1805:33;1832:5;1805:33;:::i;:::-;1857:5;-1:-1:-1;1881:37:1;1914:2;1899:18;;1881:37;:::i;:::-;1871:47;;1679:245;;;;;:::o;1929:327::-;;;2058:2;2046:9;2037:7;2033:23;2029:32;2026:2;;;2079:6;2071;2064:22;2026:2;2123:9;2110:23;2142:33;2169:5;2142:33;:::i;:::-;2194:5;2246:2;2231:18;;;;2218:32;;-1:-1:-1;;;2016:240:1:o;2261:744::-;;;;2422:2;2410:9;2401:7;2397:23;2393:32;2390:2;;;2443:6;2435;2428:22;2390:2;2488:9;2475:23;2517:18;2558:2;2550:6;2547:14;2544:2;;;2579:6;2571;2564:22;2544:2;2622:6;2611:9;2607:22;2597:32;;2667:7;2660:4;2656:2;2652:13;2648:27;2638:2;;2694:6;2686;2679:22;2638:2;2739;2726:16;2765:2;2757:6;2754:14;2751:2;;;2786:6;2778;2771:22;2751:2;2849:7;2842:4;2834;2826:6;2822:17;2818:2;2814:26;2810:37;2807:50;2804:2;;;2875:6;2867;2860:22;2804:2;2911:4;2903:13;;;;-1:-1:-1;2935:6:1;-1:-1:-1;2960:39:1;;2978:20;;;-1:-1:-1;2960:39:1;:::i;:::-;2950:49;;2380:625;;;;;:::o;3010:192::-;;3119:2;3107:9;3098:7;3094:23;3090:32;3087:2;;;3140:6;3132;3125:22;3087:2;3168:28;3186:9;3168:28;:::i;3207:190::-;;3319:2;3307:9;3298:7;3294:23;3290:32;3287:2;;;3340:6;3332;3325:22;3287:2;-1:-1:-1;3368:23:1;;3277:120;-1:-1:-1;3277:120:1:o;3402:258::-;;;3531:2;3519:9;3510:7;3506:23;3502:32;3499:2;;;3552:6;3544;3537:22;3499:2;-1:-1:-1;;3580:23:1;;;3650:2;3635:18;;;3622:32;;-1:-1:-1;3489:171:1:o;3665:316::-;;;;3822:2;3810:9;3801:7;3797:23;3793:32;3790:2;;;3843:6;3835;3828:22;3790:2;3877:9;3871:16;3861:26;;3927:2;3916:9;3912:18;3906:25;3896:35;;3971:2;3960:9;3956:18;3950:25;3940:35;;3780:201;;;;;:::o;3986:469::-;;4083:5;4077:12;4110:6;4105:3;4098:19;4136:4;4165:2;4160:3;4156:12;4149:19;;4202:2;4195:5;4191:14;4223:3;4235:195;4249:6;4246:1;4243:13;4235:195;;;4314:13;;-1:-1:-1;;;;;4310:39:1;4298:52;;4370:12;;;;4405:15;;;;4346:1;4264:9;4235:195;;;-1:-1:-1;4446:3:1;;4053:402;-1:-1:-1;;;;;4053:402:1:o;4460:203::-;-1:-1:-1;;;;;4624:32:1;;;;4606:51;;4594:2;4579:18;;4561:102::o;4892:615::-;-1:-1:-1;;;;;5259:15:1;;;5241:34;;5306:2;5291:18;;5284:34;;;;5349:2;5334:18;;5327:34;;;;5392:2;5377:18;;5370:34;;;;5441:15;;;5435:3;5420:19;;5413:44;5221:3;5473:19;;5466:35;;;;5190:3;5175:19;;5157:350::o;5512:187::-;5677:14;;5670:22;5652:41;;5640:2;5625:18;;5607:92::o;5938:603::-;;6079:2;6108;6097:9;6090:21;6140:6;6134:13;6183:6;6178:2;6167:9;6163:18;6156:34;6208:4;6221:140;6235:6;6232:1;6229:13;6221:140;;;6330:14;;;6326:23;;6320:30;6296:17;;;6315:2;6292:26;6285:66;6250:10;;6221:140;;;6379:6;6376:1;6373:13;6370:2;;;6449:4;6444:2;6435:6;6424:9;6420:22;6416:31;6409:45;6370:2;-1:-1:-1;6525:2:1;6504:15;-1:-1:-1;;6500:29:1;6485:45;;;;6532:2;6481:54;;6059:482;-1:-1:-1;;;6059:482:1:o;6546:399::-;6748:2;6730:21;;;6787:2;6767:18;;;6760:30;6826:34;6821:2;6806:18;;6799:62;-1:-1:-1;;;6892:2:1;6877:18;;6870:33;6935:3;6920:19;;6720:225::o;6950:402::-;7152:2;7134:21;;;7191:2;7171:18;;;7164:30;7230:34;7225:2;7210:18;;7203:62;-1:-1:-1;;;7296:2:1;7281:18;;7274:36;7342:3;7327:19;;7124:228::o;7357:398::-;7559:2;7541:21;;;7598:2;7578:18;;;7571:30;7637:34;7632:2;7617:18;;7610:62;-1:-1:-1;;;7703:2:1;7688:18;;7681:32;7745:3;7730:19;;7531:224::o;7760:351::-;7962:2;7944:21;;;8001:2;7981:18;;;7974:30;8040:29;8035:2;8020:18;;8013:57;8102:2;8087:18;;7934:177::o;8116:397::-;8318:2;8300:21;;;8357:2;8337:18;;;8330:30;8396:34;8391:2;8376:18;;8369:62;-1:-1:-1;;;8462:2:1;8447:18;;8440:31;8503:3;8488:19;;8290:223::o;8518:356::-;8720:2;8702:21;;;8739:18;;;8732:30;8798:34;8793:2;8778:18;;8771:62;8865:2;8850:18;;8692:182::o;8879:401::-;9081:2;9063:21;;;9120:2;9100:18;;;9093:30;9159:34;9154:2;9139:18;;9132:62;-1:-1:-1;;;9225:2:1;9210:18;;9203:35;9270:3;9255:19;;9053:227::o;9285:400::-;9487:2;9469:21;;;9526:2;9506:18;;;9499:30;9565:34;9560:2;9545:18;;9538:62;-1:-1:-1;;;9631:2:1;9616:18;;9609:34;9675:3;9660:19;;9459:226::o;9690:177::-;9836:25;;;9824:2;9809:18;;9791:76::o;9872:338::-;;10079:6;10068:9;10061:25;10122:2;10117;10106:9;10102:18;10095:30;10142:62;10200:2;10189:9;10185:18;10177:6;10142:62;:::i;:::-;10134:70;10051:159;-1:-1:-1;;;;10051:159:1:o;10215:588::-;;10514:6;10503:9;10496:25;10557:6;10552:2;10541:9;10537:18;10530:34;10600:3;10595:2;10584:9;10580:18;10573:31;10621:63;10679:3;10668:9;10664:19;10656:6;10621:63;:::i;:::-;-1:-1:-1;;;;;10720:32:1;;;;10715:2;10700:18;;10693:60;-1:-1:-1;10784:3:1;10769:19;10762:35;10613:71;10486:317;-1:-1:-1;;;10486:317:1:o;10808:184::-;10980:4;10968:17;;;;10950:36;;10938:2;10923:18;;10905:87::o;10997:128::-;;11068:1;11064:6;11061:1;11058:13;11055:2;;;11074:18;;:::i;:::-;-1:-1:-1;11110:9:1;;11045:80::o;11130:217::-;;11196:1;11186:2;;-1:-1:-1;;;11221:31:1;;11275:4;11272:1;11265:15;11303:4;11228:1;11293:15;11186:2;-1:-1:-1;11332:9:1;;11176:171::o;11352:453::-;11448:6;11471:5;11485:314;11534:1;11571:2;11561:8;11558:16;11548:2;;11578:5;;;11548:2;11619:4;11614:3;11610:14;11604:4;11601:24;11598:2;;;11628:18;;:::i;:::-;11678:2;11668:8;11664:17;11661:2;;;11693:16;;;;11661:2;11772:17;;;;;11732:15;;11485:314;;;11429:376;;;;;;;:::o;11810:148::-;;11897:55;-1:-1:-1;;11938:4:1;11924:19;;11918:4;11963:922;12047:8;12037:2;;-1:-1:-1;12088:1:1;12102:5;;12037:2;12136:4;12126:2;;-1:-1:-1;12173:1:1;12187:5;;12126:2;12218:4;12236:1;12231:59;;;;12304:1;12299:183;;;;12211:271;;12231:59;12261:1;12252:10;;12275:5;;;12299:183;12336:3;12326:8;12323:17;12320:2;;;12343:18;;:::i;:::-;12399:1;12389:8;12385:16;12376:25;;12427:3;12420:5;12417:14;12414:2;;;12434:18;;:::i;:::-;12467:5;;;12211:271;;12566:2;12556:8;12553:16;12547:3;12541:4;12538:13;12534:36;12528:2;12518:8;12515:16;12510:2;12504:4;12501:12;12497:35;12494:77;12491:2;;;-1:-1:-1;12603:19:1;;;12638:14;;;12635:2;;;12655:18;;:::i;:::-;12688:5;;12491:2;12735:42;12773:3;12763:8;12757:4;12754:1;12735:42;:::i;:::-;12810:6;12805:3;12801:16;12792:7;12789:29;12786:2;;;12821:18;;:::i;:::-;12859:20;;12027:858;-1:-1:-1;;;;12027:858:1:o;12890:168::-;;12996:1;12992;12988:6;12984:14;12981:1;12978:21;12973:1;12966:9;12959:17;12955:45;12952:2;;;13003:18;;:::i;:::-;-1:-1:-1;13043:9:1;;12942:116::o;13063:125::-;;13131:1;13128;13125:8;13122:2;;;13136:18;;:::i;:::-;-1:-1:-1;13173:9:1;;13112:76::o;13193:380::-;13278:1;13268:12;;13325:1;13315:12;;;13336:2;;13390:4;13382:6;13378:17;13368:27;;13336:2;13443;13435:6;13432:14;13412:18;13409:38;13406:2;;;13489:10;13484:3;13480:20;13477:1;13470:31;13524:4;13521:1;13514:15;13552:4;13549:1;13542:15;13406:2;;13248:325;;;:::o;13578:135::-;;-1:-1:-1;;13638:17:1;;13635:2;;;13658:18;;:::i;:::-;-1:-1:-1;13705:1:1;13694:13;;13625:88::o;13718:127::-;13779:10;13774:3;13770:20;13767:1;13760:31;13810:4;13807:1;13800:15;13834:4;13831:1;13824:15;13850:133;-1:-1:-1;;;;;13927:31:1;;13917:42;;13907:2;;13973:1;13970;13963:12;13907:2;13897:86;:::o

Swarm Source

ipfs://35f74377e883c8780e127da83282bec1e475e71323013db9f9621187b27ff9b3

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.