ETH Price: $2,388.37 (-1.07%)

Token

SCARDUST (SCRD)
 

Overview

Max Total Supply

10,000,000,000,002 SCRD

Holders

197

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
18,606,770,386 SCRD

Value
$0.00
0xbf5f83f5749689c746f3be1184337caac9f74aa4
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
SCARDUST

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-04-08
*/

// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.9.0;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        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 Address {

    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }


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

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

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

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}


abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

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


contract SCARDUST is Context,IERC20, Ownable{
    using Address for address;
    string private _name = "SCARDUST";
    string private _symbol = "SCRD";
    uint8 private _decimals = 18;
    uint256 totalFeeFortx = 0;
    uint256 maxWalletTreshold = 5;
    uint256 maxTxTreshold = 5;
    uint256 private swapTreshold =2;

    uint256 private currentThreshold = 20; //Once the token value goes up this number can be decreased (To reduce price impact on asset)
    uint256 private _totalSupply = 10_000_000_000_002*10**_decimals; //1T supply
    uint256 public requiredTokensToSwap = 100*10**18; //0.2%
    mapping (address => uint256) private _balances;
    mapping (address => bool) private _excludedFromFees;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public automatedMarketMakerPairs;
    address _owner;

    address payable public marketingAddress = payable(0x6f313eccF5D074E1bf53D3bbE3F4DaF8cEdE81fA);
    address payable public prizePoolAddress = payable(0x25273eC4c6e3Eb33008E5bE00F81Cdf14eb7d25a);//P2E,ETH FOR STAKING AND TOKENS FOR STAKING
    address payable public gameLiquidityAddress = payable(0xA502e3E5d89BD2Bd01c4d18683146A1B5815E1d2);

    uint256 maxWalletAmount = _totalSupply*maxWalletTreshold/100; // starting 3%
    uint256 maxTxAmount = _totalSupply*maxTxTreshold/100;
    mapping (address => bool) botWallets;
    bool botTradeEnabled = false;
    bool checkWalletSize = true;
    mapping (address => bool) private _liquidityHolders;
    mapping (address => bool) private presaleAddresses;
    //15% buy tax 20% sell tax

    uint256 private buyliqFee = 2; //2
    uint256 private buyprevLiqFee = 2;
    uint256 private buymktFee = 7;//Marketing and development
    uint256 private buyPrevmktFee = 7;
    uint256 private buyprizePool = 2;//1 //staking
    uint256 private buyprevPrizePool = 2;
    uint256 private buyP2EPool = 2;
    uint256 private buyprevP2EPool = 2;
    uint256 private buyCharity = 1;
    uint256 private buyprevcharity = 1;
    uint256 GoldenDaycooldown = 0;
    bool private tradeEnabled = false;
    bool public _hasLiqBeenAdded = false;
    uint256 private immutable snipeBlockAmt;
    uint256 private _liqAddBlock = 0;
    uint256 private _liqAddStamp = 0;
    uint256 public snipersCaught = 0;

    
    uint256 private sellliqFee = 2;
    uint256 private sellprevLiqFee = 2;
    uint256 private sellmktFee = 4;
    uint256 private sellPrevmktFee = 4;
    uint256 private sellprizePool = 2;
    uint256 private sellprevPrizePool = 2;
    uint256 private sellP2EPool = 2;
    uint256 private sellprevP2EPool = 2;
    uint256 private sellCharity = 1;
    uint256 private sellprevcharity = 1;


    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    uint256 private mktTokens = 0;
    uint256 private prizepoolTokens = 0;
    uint256 private liqTokens = 0;
    uint256 private gameTokens=0;
    uint256 private charityTokens =0;

    
    event SwapAndLiquify(uint256 tokensSwapped,
		uint256 ethReceived,
		uint256 tokensIntoLiquidity
	);
    event tokensSwappedDuringTokenomics(uint256 amount);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    
    // 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
    IUniswapV2Router02 _router;
    address public uniswapV2Pair;

    //Balances tracker

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

    constructor(uint256 _snipeBlockAmt){
        _balances[_msgSender()] = _totalSupply;
        //0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D mainnet and all networks
        IUniswapV2Router02 _uniRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        
        uniswapV2Pair = IUniswapV2Factory(_uniRouter.factory())
            .createPair(address(this), _uniRouter.WETH());
        snipeBlockAmt = _snipeBlockAmt;
        _excludedFromFees[owner()] = true;         
        _excludedFromFees[address(this)] = true;// exclude owner and contract instance from fees
        _router = _uniRouter;
        _liquidityHolders[address(_router)] = true;
        _liquidityHolders[owner()] = true;
        _liquidityHolders[address(this)] = true;
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        emit Transfer(address(0),_msgSender(),_totalSupply);




    }
    receive() external payable{}

    //limit boolean function 
    function _hasLimits(address from, address to) private view returns (bool) {
        return from != owner()
            && to != owner()
            && !_liquidityHolders[to]
            && !_liquidityHolders[from]
            && to != deadAddress
            && to != address(0)
            && from != address(this);
    }
    //general token data and tracking of balances to be swapped.
    function getOwner()external view returns(address){
            return owner();
    }
    function currentmktTokens() external view returns (uint256){
            return mktTokens;
     }
     function currentPZTokens() external view returns (uint256){
            return prizepoolTokens;
     }
     function currentLiqTokens() external view returns (uint256){
            return liqTokens;
     }

     function totalSupply() external view override returns (uint256){
            return _totalSupply;
     }
   
    function balanceOf(address account) public view override returns (uint256){
        return _balances[account];
    }
   
    function transfer(address recipient, uint256 amount) external override returns (bool){
            _transfer(_msgSender(),recipient,amount);
            return true;

    }
   
    function allowance(address owner, address spender) external view override returns (uint256){
            return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount) external override returns (bool){
            _approve(_msgSender(),spender,amount);
            return true;
    }

    function decimals()external view returns(uint256){
        return _decimals;
    }
    function name() external view returns (string memory) {
		return _name;
	}
    function symbol() external view returns (string memory){
        return _symbol;
    }
        function updateMaxTxTreshold(uint256 newVal) public onlyOwner{
        maxTxTreshold = newVal;
        maxTxAmount = _totalSupply*maxTxTreshold/100;// 1%

    }
     function updateMaxWalletTreshold(uint256 newVal) public onlyOwner{
        maxWalletTreshold = newVal;
        maxWalletAmount = _totalSupply*maxWalletTreshold/100;

    }
    

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



    //Tokenomics related functions
    
    function goldenDay() public onlyOwner{
         require(block.timestamp > GoldenDaycooldown, "You cant call golden Day more than once per day");
         buyPrevmktFee = buymktFee;
         buyprevLiqFee = buyliqFee;
         buyprevPrizePool = buyprizePool;
         buyprevP2EPool = buyP2EPool;
         
         buyliqFee = 0;
         buymktFee = 0;
         buyprizePool = 0;
         buyP2EPool =0;
    }
    function goldenDayOver() public onlyOwner{
         buyliqFee = buyprevLiqFee;
         buymktFee = buyPrevmktFee;
         buyprizePool = buyprevPrizePool;
         buyP2EPool = buyprevP2EPool;
         GoldenDaycooldown = block.timestamp + 86400;
    }

    function addBotWallet (address payable detectedBot, bool isBot) public onlyOwner{
        botWallets[detectedBot] = isBot;
    }
    function currentbuyliqFee() public view returns (uint256){
            return buyliqFee;
    }
    function currentbuymktfee() public view returns (uint256){
            return buymktFee;
    }
    function currentbuyprizepoolfee() public view returns (uint256){
            return buyprizePool;
    }
     function currentbuyP2Efee() public view returns (uint256){
            return buyP2EPool;
    }

    function currentsellLiqFee() public view returns (uint256){
            return sellliqFee;
    }
    function currentsellmktfee() public view returns (uint256){
            return sellmktFee;
    }
    function currentsellyprizepoolfee() public view returns (uint256){
            return sellprizePool;
    }
     function currentsellP2Efee() public view returns (uint256){
            return sellP2EPool;
    }
    function currentThresholdInt()public view returns (uint256){
        return currentThreshold;
    }
    
    function isExcluded(address toCheck)public view returns (bool){
            return _excludedFromFees[toCheck];
    }

    function blocksPassed() public view returns (uint256){
        return block.timestamp-block.number;
    }

    

    function _transfer(address from, address to, uint256 amount) internal{
        
        require(from != address(0), "ERC20: transfer from the zero address");
		require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0,"ERC20: transfered amount must be greater than zero");
        uint256 senderBalance = _balances[from];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        if(tradeEnabled == false){
            require(_liquidityHolders[to] || _liquidityHolders[from],"Cant trade, trade is disabled");
        }
        if(_liquidityHolders[to]==false && _liquidityHolders[from]==false){
        require(amount <= maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            if(from == uniswapV2Pair){
                require(balanceOf(to)+amount <= maxWalletAmount);
            }
        }
        uint256 inContractBalance = balanceOf(address(this));
        if(inContractBalance >=requiredTokensToSwap && 
			!inSwapAndLiquify && 
			from != uniswapV2Pair && 
			swapAndLiquifyEnabled){
                if(inContractBalance >= requiredTokensToSwap ){
                    inContractBalance = requiredTokensToSwap;
                    swapForTokenomics(inContractBalance);
                }
            }
            

            bool takeFees = true;
            
            
            if(_excludedFromFees[from] || _excludedFromFees[to]) {
                totalFeeFortx = 0;
                takeFees = false;
               

            }
            uint256 mktAmount = 0;
            uint256 prizePoolAmount = 0; // Amount to be added to prize pool.
		    uint256 liqAmount = 0;  // Amount to be added to liquidity.
            uint256 gameAmount =0;
            uint256 charityAmount = 0;

            if(takeFees){
                if(!_hasLiqBeenAdded){
                    _checkLiquidityAdd(from, to);
                }
                
                //bot fees
                if(botWallets[from] == true||botWallets[to]==true){
                   revert("No bots can trade");
                }
                //Selling fees
                if (automatedMarketMakerPairs[to] && to != address(_router) ){
                        totalFeeFortx = 0;
                        mktAmount = amount * sellmktFee/100;
                        liqAmount = amount * sellliqFee/100;
                        prizePoolAmount = amount * sellprizePool/100;
                        gameAmount = amount *sellP2EPool/100;
                        charityAmount = amount *sellCharity/100;
                        totalFeeFortx = mktAmount + liqAmount + prizePoolAmount + gameAmount + charityAmount;
                }
                //Buy Fees
                else if(automatedMarketMakerPairs[from] && from != address(_router)) {
                    if(block.number - _liqAddBlock < snipeBlockAmt){
                        botWallets[to] = true;
                        snipersCaught++;
                    }
                    totalFeeFortx = 0;
                    mktAmount = amount * buymktFee/100;
                    liqAmount = amount * buyliqFee/100;
                    prizePoolAmount = amount * buyprizePool/100;
                    gameAmount = amount *buyP2EPool/100;
                    charityAmount = amount *buyCharity/100;
                    totalFeeFortx = mktAmount + liqAmount + prizePoolAmount + gameAmount + charityAmount;
                }

                
            }

            _balances[from] = senderBalance - amount;
            _balances[to] += amount - mktAmount - prizePoolAmount - liqAmount - gameAmount - charityAmount;

          if(liqAmount != 0) {
			_balances[address(this)] += totalFeeFortx;
			//tLiqTotal += liqAmount;
            liqTokens += liqAmount;
            prizepoolTokens += prizePoolAmount;
            mktTokens += mktAmount;
            gameTokens += gameAmount;
            charityTokens += charityAmount;
			emit Transfer(from, address(this), totalFeeFortx);
            
		    }
            emit Transfer(from, to,amount-totalFeeFortx);
            
        
    }
    function swapForTokenomics(uint256 balanceToswap) private lockTheSwap{
        uint256 tokensTotal = mktTokens+charityTokens;
        swapAndLiquify(liqTokens);
        swapTokensForETHmkt(tokensTotal);//swaps and sends to mkt and dev
        swapForStaking(prizepoolTokens);//swaps half for staking liquidity and sends half to staking address
        sendToGameLiquidity(gameTokens);//sends to game liquidity pool
        emit tokensSwappedDuringTokenomics(balanceToswap);
        mktTokens = 0;
        prizepoolTokens = 0;
        liqTokens = 0;
        gameTokens =0;
        charityTokens=0;
    }
     function addLimitExempt(address newAddress)external onlyOwner{
        _liquidityHolders[newAddress] = true;
     
    }
    function swapTokensForETHmkt(uint256 amount)private {
        address[] memory path = new address[](2);
		path[0] = address(this);
		path[1] = _router.WETH();
		_approve(address(this), address(_router), amount);

		
		_router.swapExactTokensForETHSupportingFeeOnTransferTokens(
			amount,
			0, // Accept any amount of ETH.
			path,
			marketingAddress,
			block.timestamp
		);

    }
      function sendToPrizePool(uint256 amount)private{
        _transfer(address(this), prizePoolAddress, amount);
    }
    function sendToGameLiquidity(uint256 amount) private{
        _transfer(address(this), gameLiquidityAddress, amount);

    }
    function swapForStaking(uint256 amount)private{
        uint256 half = amount / 2;
		uint256 otherHalf = amount - half;
        address[] memory path = new address[](2);
		path[0] = address(this);
		path[1] = _router.WETH();
		_approve(address(this), address(_router), amount);

		
		_router.swapExactTokensForETHSupportingFeeOnTransferTokens(
			half,
			0, // Accept any amount of ETH.
			path,
			marketingAddress,
			block.timestamp
		);  
        sendToPrizePool(otherHalf);
    }
   
    function unstuckTokens (IERC20 tokenToClear, address payable destination, uint256 amount) public onlyOwner{
        //uint256 contractBalance = tokenToClear.balanceOf(address(this));
        tokenToClear.transfer(destination, amount);
    }

    function unstuckETH(address payable destination) public onlyOwner{
        uint256 ethBalance = address(this).balance;
        payable(destination).transfer(ethBalance);
    }

    function tradeStatus(bool status) public onlyOwner{
        tradeEnabled = status;
    }

    function _checkLiquidityAdd(address from, address to) private {
    require(!_hasLiqBeenAdded, "Liquidity already added and marked.");
    if (!_hasLimits(from, to) && to == uniswapV2Pair) {
        _liquidityHolders[from] = true;
        _hasLiqBeenAdded = true;
        _liqAddBlock = block.number;
        _liqAddStamp = block.timestamp;

        swapAndLiquifyEnabled = true;
    }
    }


    function swapAndLiquify(uint256 liqTokensPassed) private {
		uint256 half = liqTokensPassed / 2;
		uint256 otherHalf = liqTokensPassed - half;
		uint256 initialBalance = address(this).balance;

		swapTokensForETH(half);
		uint256 newBalance = address(this).balance - (initialBalance); 

		addLiquidity(otherHalf, newBalance);
		emit SwapAndLiquify(half,newBalance,otherHalf);
	}

    function swapTokensForETH(uint256 tokenAmount) private{
		address[] memory path = new address[](2);
		path[0] = address(this);
		path[1] = _router.WETH();
		_approve(address(this), address(_router), tokenAmount);

		
		_router.swapExactTokensForETHSupportingFeeOnTransferTokens(
			tokenAmount,
			0, // Accept any amount of ETH.
			path,
			address(this),
			block.timestamp
		);
	}
    
    function addLiquidity(uint256 tokenAmount,uint256 ethAmount) private{
		_approve(address(this), address(_router), tokenAmount);

		_router.addLiquidityETH{value:ethAmount}(
			address(this),
			tokenAmount,
			0,
			0,
			deadAddress,// tr
			block.timestamp
		);
	}

    function _approve(address owner,address spender, uint256 amount) internal{
        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);


    }




    //Fees related functions

    function addToExcluded(address toExclude) public onlyOwner{  
        _excludedFromFees[toExclude] = true;
    }

    function removeFromExcluded(address toRemove) public onlyOwner{
        _excludedFromFees[toRemove] = false;
    }
      function excludePresaleAddresses(address router, address presale) external onlyOwner {
        
        _liquidityHolders[address(router)] = true;
        _liquidityHolders[presale] = true;
        presaleAddresses[address(router)] = true;
        presaleAddresses[presale] = true;
       
    }

    function startPresaleStatus()public onlyOwner{
        
        buymktFee = 0;
        sellmktFee =0;
        buyliqFee =0;
        sellliqFee =0;
        buyprizePool =0;
        sellprizePool = 0;
        setSwapAndLiquify(false);

    }
    function endPresaleStatus() public onlyOwner{
        buymktFee = 4;
        buyliqFee = 10;
        buyprizePool = 1;

        sellmktFee = 5;
        sellliqFee = 13;
        sellprizePool = 2;
        setSwapAndLiquify(true);
    }

    function updateThreshold(uint newThreshold) public onlyOwner{
        currentThreshold = newThreshold;

    }

    function setSwapAndLiquify(bool _enabled) public onlyOwner{
            swapAndLiquifyEnabled = _enabled;
    }


    //Marketing related 

    function setMktAddress(address newAddress) external onlyOwner{
        marketingAddress = payable(newAddress);
    }
    function transferAssetsETH(address payable to, uint256 amount) internal{
            to.transfer(amount);
    }
    function setPrizePoolAddress(address newAddress) external onlyOwner{
        prizePoolAddress = payable(newAddress);
    }
    function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }
    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function updatecurrentbuyliqFee(uint256 newAmount) public onlyOwner{
            buyliqFee = newAmount;
    }
    function updatecurrentbuymktfee(uint256 newAmount) public onlyOwner{
             buymktFee = newAmount;
    }
    function updatecurrentbuyprizepoolfee(uint256 newAmount) public onlyOwner{
             buyprizePool = newAmount;
    }

      function updatecurrentsellLiqFee(uint256 newAmount) public onlyOwner{
             sellliqFee = newAmount;
    }
    function updatecurrentsellmktfee(uint256 newAmount)public onlyOwner{
             sellmktFee = newAmount;
    }
    
    function updatecurrentsellyprizepoolfee(uint256 newAmount) public onlyOwner{
             sellprizePool = newAmount;
    }
    function currentMaxWallet() public view returns(uint256){
        return maxWalletAmount;
    }
    function currentMaxTx() public view returns(uint256){
        return maxTxAmount;
    }
    function updateSwapTreshold(uint256 newVal) public onlyOwner{
        swapTreshold = newVal;
        requiredTokensToSwap = _totalSupply*swapTreshold/1000;
        
    }
    function currentTradeStatus() public view returns (bool){
        return tradeEnabled;   
    }
    function currentSwapTreshold() public view returns(uint256){
        return swapTreshold;
    }
    function currentTokensToSwap() public view returns(uint256){
        return requiredTokensToSwap;
    }
}


interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);
    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);
    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"_snipeBlockAmt","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"tokensSwappedDuringTokenomics","type":"event"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"detectedBot","type":"address"},{"internalType":"bool","name":"isBot","type":"bool"}],"name":"addBotWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"addLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"toExclude","type":"address"}],"name":"addToExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blocksPassed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentLiqTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentMaxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentPZTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentSwapTreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentThresholdInt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentTokensToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentTradeStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentbuyP2Efee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentbuyliqFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentbuymktfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentbuyprizepoolfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentmktTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentsellLiqFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentsellP2Efee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentsellmktfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentsellyprizepoolfee","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":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endPresaleStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"presale","type":"address"}],"name":"excludePresaleAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gameLiquidityAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goldenDay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"goldenDayOver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"toCheck","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prizePoolAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"toRemove","type":"address"}],"name":"removeFromExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"requiredTokensToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMktAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setPrizePoolAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snipersCaught","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startPresaleStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"tradeStatus","outputs":[],"stateMutability":"nonpayable","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"destination","type":"address"}],"name":"unstuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"tokenToClear","type":"address"},{"internalType":"address payable","name":"destination","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unstuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVal","type":"uint256"}],"name":"updateMaxTxTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVal","type":"uint256"}],"name":"updateMaxWalletTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVal","type":"uint256"}],"name":"updateSwapTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"updateThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentbuyliqFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentbuymktfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentbuyprizepoolfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentsellLiqFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentsellmktfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentsellyprizepoolfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

610100604052600860c08190526714d0d054911554d560c21b60e09081526200002c916001919062000652565b506040805180820190915260048082526314d0d49160e21b60209092019182526200005a9160029162000652565b506003805460ff1916601217908190556000600455600580805560065560026007556014600855620000919060ff16600a620007d2565b620000a3906509184e72a002620008bd565b600981905568056bc75e2d63100000600a55601080546001600160a01b0319908116736f313eccf5d074e1bf53d3bbe3f4daf8cede81fa179091556011805482167325273ec4c6e3eb33008e5be00f81cdf14eb7d25a1790556012805490911673a502e3e5d89bd2bd01c4d18683146a1b5815e1d21790556005546064916200012d9190620008bd565b62000139919062000764565b6013556064600654600954620001509190620008bd565b6200015c919062000764565b6014556016805461010061ffff19918216811790925560026019819055601a8190556007601b819055601c55601d819055601e819055601f81905560208190556001602181905560228190556000602381905560248054909416909355602583905560268390556027839055602882905560298290556004602a819055602b55602c829055602d829055602e829055602f9190915560308190556031556032805461ff0019169092179091556ddead00000000000000000000000060a05260338190556034819055603581905560368190556037553480156200023e57600080fd5b5060405162003c0238038062003c02833981016040819052620002619162000728565b620002756200026f6200059b565b6200059f565b600954600b6000620002866200059b565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002fd57600080fd5b505afa15801562000312573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003389190620006f8565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200038157600080fd5b505afa15801562000396573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003bc9190620006f8565b6040518363ffffffff1660e01b8152600401620003db92919062000741565b602060405180830381600087803b158015620003f657600080fd5b505af11580156200040b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004319190620006f8565b603980546001600160a01b0319166001600160a01b039290921691909117905560808290526001600c600062000466620005ef565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600c8452828120805486166001908117909155603880548885166001600160a01b03199091161790819055909216815260179384905291822080549094168117909355620004e4620005ef565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260179093529120805490921660019081179092556039546200053a92911690620005fe565b620005446200059b565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009546040516200058b91906200075b565b60405180910390a3505062000932565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b031690565b6001600160a01b0382166000818152600e6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b8280546200066090620008df565b90600052602060002090601f016020900481019282620006845760008555620006cf565b82601f106200069f57805160ff1916838001178555620006cf565b82800160010185558215620006cf579182015b82811115620006cf578251825591602001919060010190620006b2565b50620006dd929150620006e1565b5090565b5b80821115620006dd5760008155600101620006e2565b6000602082840312156200070a578081fd5b81516001600160a01b038116811462000721578182fd5b9392505050565b6000602082840312156200073a578081fd5b5051919050565b6001600160a01b0392831681529116602082015260400190565b90815260200190565b6000826200078057634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611620007995750620007c9565b818704821115620007ae57620007ae6200091c565b80861615620007bc57918102915b9490941c93800262000788565b94509492505050565b60006200072160001960ff851684600082620007f15750600162000721565b81620008005750600062000721565b8160018114620008195760028114620008245762000858565b600191505062000721565b60ff8411156200083857620008386200091c565b6001841b9150848211156200085157620008516200091c565b5062000721565b5060208310610133831016604e8410600b841016171562000890575081810a838111156200088a576200088a6200091c565b62000721565b6200089f848484600162000785565b808604821115620008b457620008b46200091c565b02949350505050565b6000816000190483118215151615620008da57620008da6200091c565b500290565b600281046001821680620008f457607f821691505b602082108114156200091657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60805160a05160601c6132996200096960003960008181610e7b015281816127bb01526129ba01526000611e6301526132996000f3fe6080604052600436106103fe5760003560e01c8063893d20e811610213578063bf9eb54011610123578063ddcf9b98116100ab578063edcf19b21161007a578063edcf19b214610ab2578063f2fde38b14610ad2578063f7da678514610af2578063f953cf3a14610b12578063ff31e93014610b2757610405565b8063ddcf9b9814610a53578063e1370dd314610a68578063e79d416014610a7d578063eb04c61814610a9257610405565b8063cf297bbc116100f2578063cf297bbc146109c9578063d1294d4c146109de578063d15bcf0f146109fe578063d7d7442f14610a13578063dd62ed3e14610a3357610405565b8063bf9eb54014610954578063c5cb68a114610974578063cb66453414610989578063cba0e996146109a957610405565b8063a05a2367116101a6578063a9059cbb11610175578063a9059cbb146108ca578063b195b839146108ea578063b4d95a93146108ff578063b62496f51461091f578063bf9b01591461093f57610405565b8063a05a236714610860578063a5ece94114610875578063a6c38f591461088a578063a7a07452146108aa57610405565b806395d89b41116101e257806395d89b41146108015780639a7a23d6146108165780639b136da414610836578063a04bdc811461084b57610405565b8063893d20e8146107a25780638cd0260c146107b75780638da5cb5b146107d757806390f50283146107ec57610405565b8063425ebf481161030e5780635be76f11116102a15780636df3333a116102705780636df3333a1461071857806370a082311461072d578063715018a61461074d578063801527ce146107625780638628c23f1461078257610405565b80635be76f11146106ae57806364c16163146106ce5780636573c4df146106e35780636611f9381461070357610405565b80634a74bb02116102dd5780634a74bb021461065a5780634bd7ace51461066f57806350a8e016146106845780635297defd1461069957610405565b8063425ebf48146105f0578063487a69051461061057806349bd5a5e146106255780634a0e963c1461063a57610405565b8063220f66961161039157806327c8f8351161036057806327c8f8351461056f5780632d03420b14610591578063313ce567146105b15780633cadd3c6146105c65780633d7092b6146105db57610405565b8063220f66961461051057806322788f8614610525578063232b64061461053a57806323b872dd1461054f57610405565b806311abb081116103cd57806311abb081146104a657806313b4a7f4146104c657806314c0eaf9146104e657806318160ddd146104fb57610405565b8063065ba9a01461040a57806306fdde03146104355780630882a86314610457578063095ea7b31461047957610405565b3661040557005b600080fd5b34801561041657600080fd5b5061041f610b3c565b60405161042c919061310b565b60405180910390f35b34801561044157600080fd5b5061044a610b42565b60405161042c9190612cb6565b34801561046357600080fd5b50610477610472366004612bbb565b610bd4565b005b34801561048557600080fd5b50610499610494366004612b44565b610c21565b60405161042c9190612cab565b3480156104b257600080fd5b506104776104c1366004612bbb565b610c3e565b3480156104d257600080fd5b506104776104e1366004612ac5565b610c82565b3480156104f257600080fd5b5061041f610d21565b34801561050757600080fd5b5061041f610d27565b34801561051c57600080fd5b50610499610d2d565b34801561053157600080fd5b5061041f610d36565b34801561054657600080fd5b50610477610d3c565b34801561055b57600080fd5b5061049961056a366004612af2565b610da5565b34801561057b57600080fd5b50610584610e79565b60405161042c9190612c43565b34801561059d57600080fd5b506104776105ac366004612b6f565b610e9d565b3480156105bd57600080fd5b5061041f610eef565b3480156105d257600080fd5b5061041f610ef8565b3480156105e757600080fd5b5061041f610efe565b3480156105fc57600080fd5b5061047761060b366004612bbb565b610f04565b34801561061c57600080fd5b5061041f610f48565b34801561063157600080fd5b50610584610f4e565b34801561064657600080fd5b50610477610655366004612a55565b610f5d565b34801561066657600080fd5b50610499610fc0565b34801561067b57600080fd5b5061041f610fce565b34801561069057600080fd5b50610499610fd4565b3480156106a557600080fd5b5061041f610fe2565b3480156106ba57600080fd5b506104776106c9366004612a55565b610fe8565b3480156106da57600080fd5b5061041f611064565b3480156106ef57600080fd5b506104776106fe366004612bbb565b61106a565b34801561070f57600080fd5b506104776110cf565b34801561072457600080fd5b5061041f61115c565b34801561073957600080fd5b5061041f610748366004612a55565b611162565b34801561075957600080fd5b5061047761117d565b34801561076e57600080fd5b5061047761077d366004612b6f565b6111c8565b34801561078e57600080fd5b5061047761079d366004612bbb565b611221565b3480156107ae57600080fd5b50610584611265565b3480156107c357600080fd5b506104776107d2366004612bbb565b611274565b3480156107e357600080fd5b506105846112b8565b3480156107f857600080fd5b5061041f6112c7565b34801561080d57600080fd5b5061044a6112cd565b34801561082257600080fd5b50610477610831366004612b32565b6112dc565b34801561084257600080fd5b5061041f611357565b34801561085757600080fd5b5061041f61135d565b34801561086c57600080fd5b50610584611363565b34801561088157600080fd5b50610584611372565b34801561089657600080fd5b506104776108a5366004612a8d565b611381565b3480156108b657600080fd5b506104776108c5366004612bbb565b6113eb565b3480156108d657600080fd5b506104996108e5366004612b44565b611450565b3480156108f657600080fd5b50610477611464565b34801561090b57600080fd5b5061047761091a366004612a55565b6114cc565b34801561092b57600080fd5b5061049961093a366004612a55565b61152c565b34801561094b57600080fd5b5061041f611541565b34801561096057600080fd5b5061047761096f366004612a55565b611547565b34801561098057600080fd5b5061041f6115a8565b34801561099557600080fd5b506104776109a4366004612a55565b6115ae565b3480156109b557600080fd5b506104996109c4366004612a55565b611611565b3480156109d557600080fd5b5061041f61162f565b3480156109ea57600080fd5b506104776109f9366004612bbb565b61163b565b348015610a0a57600080fd5b506104996116a1565b348015610a1f57600080fd5b50610477610a2e366004612bbb565b6116aa565b348015610a3f57600080fd5b5061041f610a4e366004612ac5565b6116ee565b348015610a5f57600080fd5b5061041f611719565b348015610a7457600080fd5b5061041f61171f565b348015610a8957600080fd5b5061041f611725565b348015610a9e57600080fd5b50610477610aad366004612a55565b61172b565b348015610abe57600080fd5b50610477610acd366004612bbb565b61178c565b348015610ade57600080fd5b50610477610aed366004612a55565b6117d0565b348015610afe57600080fd5b50610477610b0d366004612ba7565b611841565b348015610b1e57600080fd5b50610477611906565b348015610b3357600080fd5b5061058461196e565b601f5490565b606060018054610b51906131d4565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7d906131d4565b8015610bca5780601f10610b9f57610100808354040283529160200191610bca565b820191906000526020600020905b815481529060010190602001808311610bad57829003601f168201915b5050505050905090565b610bdc61197d565b6001600160a01b0316610bed6112b8565b6001600160a01b031614610c1c5760405162461bcd60e51b8152600401610c1390612fd3565b60405180910390fd5b601955565b6000610c35610c2e61197d565b8484611981565b50600192915050565b610c4661197d565b6001600160a01b0316610c576112b8565b6001600160a01b031614610c7d5760405162461bcd60e51b8152600401610c1390612fd3565b602c55565b610c8a61197d565b6001600160a01b0316610c9b6112b8565b6001600160a01b031614610cc15760405162461bcd60e51b8152600401610c1390612fd3565b6001600160a01b0391821660008181526017602090815260408083208054600160ff199182168117909255959096168084528184208054871688179055938352601890915280822080548516861790559181522080549091169091179055565b60345490565b60095490565b60325460ff1681565b60085490565b610d4461197d565b6001600160a01b0316610d556112b8565b6001600160a01b031614610d7b5760405162461bcd60e51b8152600401610c1390612fd3565b601a54601955601c54601b55601e54601d55602054601f55610da04262015180613166565b602355565b6001600160a01b0383166000908152600d6020526040812081610dc661197d565b6001600160a01b03166001600160a01b0316815260200190815260200160002054821115610e065760405162461bcd60e51b8152600401610c1390612f8b565b610e11848484611a35565b610e6f84610e1d61197d565b6001600160a01b0387166000908152600d602052604081208691610e3f61197d565b6001600160a01b03166001600160a01b0316815260200190815260200160002054610e6a91906131bd565b611981565b5060019392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610ea561197d565b6001600160a01b0316610eb66112b8565b6001600160a01b031614610edc5760405162461bcd60e51b8152600401610c1390612fd3565b6024805460ff1916911515919091179055565b60035460ff1690565b602c5490565b602e5490565b610f0c61197d565b6001600160a01b0316610f1d6112b8565b6001600160a01b031614610f435760405162461bcd60e51b8152600401610c1390612fd3565b601d55565b600a5490565b6039546001600160a01b031681565b610f6561197d565b6001600160a01b0316610f766112b8565b6001600160a01b031614610f9c5760405162461bcd60e51b8152600401610c1390612fd3565b6001600160a01b03166000908152600c60205260409020805460ff19166001179055565b603254610100900460ff1681565b60195490565b602454610100900460ff1681565b602a5490565b610ff061197d565b6001600160a01b03166110016112b8565b6001600160a01b0316146110275760405162461bcd60e51b8152600401610c1390612fd3565b60405147906001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561105f573d6000803e3d6000fd5b505050565b60355490565b61107261197d565b6001600160a01b03166110836112b8565b6001600160a01b0316146110a95760405162461bcd60e51b8152600401610c1390612fd3565b60058190556009546064906110bf90839061319e565b6110c9919061317e565b60135550565b6110d761197d565b6001600160a01b03166110e86112b8565b6001600160a01b03161461110e5760405162461bcd60e51b8152600401610c1390612fd3565b602354421161112f5760405162461bcd60e51b8152600401610c1390613008565b601b8054601c5560198054601a55601d8054601e55601f8054602055600092839055928290558190559055565b60075490565b6001600160a01b03166000908152600b602052604090205490565b61118561197d565b6001600160a01b03166111966112b8565b6001600160a01b0316146111bc5760405162461bcd60e51b8152600401610c1390612fd3565b6111c66000612169565b565b6111d061197d565b6001600160a01b03166111e16112b8565b6001600160a01b0316146112075760405162461bcd60e51b8152600401610c1390612fd3565b603280549115156101000261ff0019909216919091179055565b61122961197d565b6001600160a01b031661123a6112b8565b6001600160a01b0316146112605760405162461bcd60e51b8152600401610c1390612fd3565b602a55565b600061126f6112b8565b905090565b61127c61197d565b6001600160a01b031661128d6112b8565b6001600160a01b0316146112b35760405162461bcd60e51b8152600401610c1390612fd3565b602855565b6000546001600160a01b031690565b60285490565b606060028054610b51906131d4565b6112e461197d565b6001600160a01b03166112f56112b8565b6001600160a01b03161461131b5760405162461bcd60e51b8152600401610c1390612fd3565b6039546001600160a01b03838116911614156113495760405162461bcd60e51b8152600401610c1390612e17565b61135382826121b9565b5050565b601b5490565b600a5481565b6012546001600160a01b031681565b6010546001600160a01b031681565b61138961197d565b6001600160a01b031661139a6112b8565b6001600160a01b0316146113c05760405162461bcd60e51b8152600401610c1390612fd3565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6113f361197d565b6001600160a01b03166114046112b8565b6001600160a01b03161461142a5760405162461bcd60e51b8152600401610c1390612fd3565b600681905560095460649061144090839061319e565b61144a919061317e565b60145550565b6000610c3561145d61197d565b8484611a35565b61146c61197d565b6001600160a01b031661147d6112b8565b6001600160a01b0316146114a35760405162461bcd60e51b8152600401610c1390612fd3565b6000601b819055602a81905560198190556028819055601d819055602c8190556111c6906111c8565b6114d461197d565b6001600160a01b03166114e56112b8565b6001600160a01b03161461150b5760405162461bcd60e51b8152600401610c1390612fd3565b6001600160a01b03166000908152600c60205260409020805460ff19169055565b600e6020526000908152604090205460ff1681565b60145490565b61154f61197d565b6001600160a01b03166115606112b8565b6001600160a01b0316146115865760405162461bcd60e51b8152600401610c1390612fd3565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b601d5490565b6115b661197d565b6001600160a01b03166115c76112b8565b6001600160a01b0316146115ed5760405162461bcd60e51b8152600401610c1390612fd3565b6001600160a01b03166000908152601760205260409020805460ff19166001179055565b6001600160a01b03166000908152600c602052604090205460ff1690565b600061126f43426131bd565b61164361197d565b6001600160a01b03166116546112b8565b6001600160a01b03161461167a5760405162461bcd60e51b8152600401610c1390612fd3565b60078190556009546103e89061169190839061319e565b61169b919061317e565b600a5550565b60245460ff1690565b6116b261197d565b6001600160a01b03166116c36112b8565b6001600160a01b0316146116e95760405162461bcd60e51b8152600401610c1390612fd3565b600855565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b60335490565b60135490565b60275481565b61173361197d565b6001600160a01b03166117446112b8565b6001600160a01b03161461176a5760405162461bcd60e51b8152600401610c1390612fd3565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b61179461197d565b6001600160a01b03166117a56112b8565b6001600160a01b0316146117cb5760405162461bcd60e51b8152600401610c1390612fd3565b601b55565b6117d861197d565b6001600160a01b03166117e96112b8565b6001600160a01b03161461180f5760405162461bcd60e51b8152600401610c1390612fd3565b6001600160a01b0381166118355760405162461bcd60e51b8152600401610c1390612d4c565b61183e81612169565b50565b61184961197d565b6001600160a01b031661185a6112b8565b6001600160a01b0316146118805760405162461bcd60e51b8152600401610c1390612fd3565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb906118ae9085908590600401612c57565b602060405180830381600087803b1580156118c857600080fd5b505af11580156118dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119009190612b8b565b50505050565b61190e61197d565b6001600160a01b031661191f6112b8565b6001600160a01b0316146119455760405162461bcd60e51b8152600401610c1390612fd3565b6004601b55600a6019556001601d8190556005602a55600d6028556002602c556111c6906111c8565b6011546001600160a01b031681565b3390565b6001600160a01b0383166119a75760405162461bcd60e51b8152600401610c139061309c565b6001600160a01b0382166119cd5760405162461bcd60e51b8152600401610c1390612d92565b6001600160a01b038084166000818152600d602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590611a2890859061310b565b60405180910390a3505050565b6001600160a01b038316611a5b5760405162461bcd60e51b8152600401610c1390613057565b6001600160a01b038216611a815760405162461bcd60e51b8152600401610c1390612d09565b60008111611aa15760405162461bcd60e51b8152600401610c1390612f02565b6001600160a01b0383166000908152600b602052604090205481811015611ada5760405162461bcd60e51b8152600401610c1390612e74565b60245460ff16611b3f576001600160a01b03831660009081526017602052604090205460ff1680611b2357506001600160a01b03841660009081526017602052604090205460ff165b611b3f5760405162461bcd60e51b8152600401610c1390612f54565b6001600160a01b03831660009081526017602052604090205460ff16158015611b8157506001600160a01b03841660009081526017602052604090205460ff16155b15611be057601454821115611ba85760405162461bcd60e51b8152600401610c1390612eba565b6039546001600160a01b0385811691161415611be05760135482611bcb85611162565b611bd59190613166565b1115611be057600080fd5b6000611beb30611162565b9050600a548110158015611c02575060325460ff16155b8015611c1c57506039546001600160a01b03868116911614155b8015611c2f5750603254610100900460ff165b15611c4a57600a548110611c4a5750600a54611c4a8161220d565b6001600160a01b0385166000908152600c602052604090205460019060ff1680611c8c57506001600160a01b0385166000908152600c602052604090205460ff165b15611c9a5750600060048190555b60008060008060008515611f8d57602454610100900460ff16611cc157611cc18b8b6122b6565b6001600160a01b038b1660009081526015602052604090205460ff16151560011480611d0a57506001600160a01b038a1660009081526015602052604090205460ff1615156001145b15611d275760405162461bcd60e51b8152600401610c13906130e0565b6001600160a01b038a166000908152600e602052604090205460ff168015611d5d57506038546001600160a01b038b8116911614155b15611e26576000600455602a54606490611d77908b61319e565b611d81919061317e565b945060646028548a611d93919061319e565b611d9d919061317e565b92506064602c548a611daf919061319e565b611db9919061317e565b93506064602e548a611dcb919061319e565b611dd5919061317e565b915060646030548a611de7919061319e565b611df1919061317e565b9050808285611e008689613166565b611e0a9190613166565b611e149190613166565b611e1e9190613166565b600455611f8d565b6001600160a01b038b166000908152600e602052604090205460ff168015611e5c57506038546001600160a01b038c8116911614155b15611f8d577f000000000000000000000000000000000000000000000000000000000000000060255443611e9091906131bd565b1015611ecd576001600160a01b038a166000908152601560205260408120805460ff191660011790556027805491611ec78361320f565b91905055505b6000600455601b54606490611ee2908b61319e565b611eec919061317e565b945060646019548a611efe919061319e565b611f08919061317e565b92506064601d548a611f1a919061319e565b611f24919061317e565b93506064601f548a611f36919061319e565b611f40919061317e565b915060646021548a611f52919061319e565b611f5c919061317e565b9050808285611f6b8689613166565b611f759190613166565b611f7f9190613166565b611f899190613166565b6004555b611f9789896131bd565b6001600160a01b038c166000908152600b602052604090205580828486611fbe898e6131bd565b611fc891906131bd565b611fd291906131bd565b611fdc91906131bd565b611fe691906131bd565b6001600160a01b038b166000908152600b60205260408120805490919061200e908490613166565b9091555050821561210457600454306000908152600b60205260408120805490919061203b908490613166565b9250508190555082603560008282546120549190613166565b92505081905550836034600082825461206d9190613166565b9250508190555084603360008282546120869190613166565b92505081905550816036600082825461209f9190613166565b9250508190555080603760008282546120b89190613166565b909155505060045460405130916001600160a01b038e16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916120fb9161310b565b60405180910390a35b896001600160a01b03168b6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004548c61214791906131bd565b604051612154919061310b565b60405180910390a35050505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166000818152600e6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6032805460ff1916600117905560375460335460009161222c91613166565b9050612239603554612354565b612242816123d5565b61224d60345461255e565b61225860365461270c565b7f4596ef7337c1c88bb740707471cfc0ec6d0212036b05ab1bdbb09cf3e3f0190482604051612287919061310b565b60405180910390a15050600060338190556034819055603581905560368190556037556032805460ff19169055565b602454610100900460ff16156122de5760405162461bcd60e51b8152600401610c1390612dd4565b6122e88282612724565b15801561230257506039546001600160a01b038281169116145b1561135357506001600160a01b03166000908152601760205260409020805460ff191660011790556024805461ff00199081166101009081179092554360255542602655603280549091169091179055565b600061236160028361317e565b9050600061236f82846131bd565b90504761237b83612820565b600061238782476131bd565b9050612393838261296f565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618482856040516123c693929190613150565b60405180910390a15050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061241857634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152603854604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561246c57600080fd5b505afa158015612480573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124a49190612a71565b816001815181106124c557634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526038546124eb9130911684611981565b60385460105460405163791ac94760e01b81526001600160a01b039283169263791ac9479261252892879260009288929116904290600401613114565b600060405180830381600087803b15801561254257600080fd5b505af1158015612556573d6000803e3d6000fd5b505050505050565b600061256b60028361317e565b9050600061257982846131bd565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106125c157634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152603854604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561261557600080fd5b505afa158015612629573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264d9190612a71565b8160018151811061266e57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526038546126949130911686611981565b60385460105460405163791ac94760e01b81526001600160a01b039283169263791ac947926126d192889260009288929116904290600401613114565b600060405180830381600087803b1580156126eb57600080fd5b505af11580156126ff573d6000803e3d6000fd5b5050505061190082612a3d565b60125461183e9030906001600160a01b031683611a35565b600061272e6112b8565b6001600160a01b0316836001600160a01b03161415801561276857506127526112b8565b6001600160a01b0316826001600160a01b031614155b801561278d57506001600160a01b03821660009081526017602052604090205460ff16155b80156127b257506001600160a01b03831660009081526017602052604090205460ff16155b80156127f057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b801561280457506001600160a01b03821615155b801561281957506001600160a01b0383163014155b9392505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061286357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152603854604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156128b757600080fd5b505afa1580156128cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ef9190612a71565b8160018151811061291057634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526038546129369130911684611981565b60385460405163791ac94760e01b81526001600160a01b039091169063791ac94790612528908590600090869030904290600401613114565b6038546129879030906001600160a01b031684611981565b60385460405163f305d71960e01b81526001600160a01b039091169063f305d7199083906129e4903090879060009081907f0000000000000000000000000000000000000000000000000000000000000000904290600401612c70565b6060604051808303818588803b1580156129fd57600080fd5b505af1158015612a11573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612a369190612bd3565b5050505050565b60115461183e9030906001600160a01b031683611a35565b600060208284031215612a66578081fd5b813561281981613240565b600060208284031215612a82578081fd5b815161281981613240565b60008060408385031215612a9f578081fd5b8235612aaa81613240565b91506020830135612aba81613255565b809150509250929050565b60008060408385031215612ad7578182fd5b8235612ae281613240565b91506020830135612aba81613240565b600080600060608486031215612b06578081fd5b8335612b1181613240565b92506020840135612b2181613240565b929592945050506040919091013590565b60008060408385031215612a9f578182fd5b60008060408385031215612b56578182fd5b8235612b6181613240565b946020939093013593505050565b600060208284031215612b80578081fd5b813561281981613255565b600060208284031215612b9c578081fd5b815161281981613255565b600080600060608486031215612b06578283fd5b600060208284031215612bcc578081fd5b5035919050565b600080600060608486031215612be7578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b83811015612c385781516001600160a01b031687529582019590820190600101612c13565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b81811015612ce257858101830151858201604001528201612cc6565b81811115612cf35783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526023908201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60408201526232b21760e91b606082015260800190565b60208082526039908201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060408201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60208082526028908201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546040820152673c20b6b7bab73a1760c11b606082015260800190565b60208082526032908201527f45524332303a207472616e73666572656420616d6f756e74206d7573742062656040820152712067726561746572207468616e207a65726f60701b606082015260800190565b6020808252601d908201527f43616e742074726164652c2074726164652069732064697361626c6564000000604082015260600190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602f908201527f596f752063616e742063616c6c20676f6c64656e20446179206d6f726520746860408201526e616e206f6e6365207065722064617960881b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252601190820152704e6f20626f74732063616e20747261646560781b604082015260600190565b90815260200190565b600086825285602083015260a0604083015261313360a0830186612c00565b6001600160a01b0394909416606083015250608001529392505050565b9283526020830191909152604082015260600190565b600082198211156131795761317961322a565b500190565b60008261319957634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156131b8576131b861322a565b500290565b6000828210156131cf576131cf61322a565b500390565b6002810460018216806131e857607f821691505b6020821081141561320957634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156132235761322361322a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461183e57600080fd5b801515811461183e57600080fdfea2646970667358221220aaf3209b77763e4da956adb25f881d7ea2d1487354b680baaab8e2f35097d00864736f6c634300080000330000000000000000000000000000000000000000000000000000000000000006

Deployed Bytecode

0x6080604052600436106103fe5760003560e01c8063893d20e811610213578063bf9eb54011610123578063ddcf9b98116100ab578063edcf19b21161007a578063edcf19b214610ab2578063f2fde38b14610ad2578063f7da678514610af2578063f953cf3a14610b12578063ff31e93014610b2757610405565b8063ddcf9b9814610a53578063e1370dd314610a68578063e79d416014610a7d578063eb04c61814610a9257610405565b8063cf297bbc116100f2578063cf297bbc146109c9578063d1294d4c146109de578063d15bcf0f146109fe578063d7d7442f14610a13578063dd62ed3e14610a3357610405565b8063bf9eb54014610954578063c5cb68a114610974578063cb66453414610989578063cba0e996146109a957610405565b8063a05a2367116101a6578063a9059cbb11610175578063a9059cbb146108ca578063b195b839146108ea578063b4d95a93146108ff578063b62496f51461091f578063bf9b01591461093f57610405565b8063a05a236714610860578063a5ece94114610875578063a6c38f591461088a578063a7a07452146108aa57610405565b806395d89b41116101e257806395d89b41146108015780639a7a23d6146108165780639b136da414610836578063a04bdc811461084b57610405565b8063893d20e8146107a25780638cd0260c146107b75780638da5cb5b146107d757806390f50283146107ec57610405565b8063425ebf481161030e5780635be76f11116102a15780636df3333a116102705780636df3333a1461071857806370a082311461072d578063715018a61461074d578063801527ce146107625780638628c23f1461078257610405565b80635be76f11146106ae57806364c16163146106ce5780636573c4df146106e35780636611f9381461070357610405565b80634a74bb02116102dd5780634a74bb021461065a5780634bd7ace51461066f57806350a8e016146106845780635297defd1461069957610405565b8063425ebf48146105f0578063487a69051461061057806349bd5a5e146106255780634a0e963c1461063a57610405565b8063220f66961161039157806327c8f8351161036057806327c8f8351461056f5780632d03420b14610591578063313ce567146105b15780633cadd3c6146105c65780633d7092b6146105db57610405565b8063220f66961461051057806322788f8614610525578063232b64061461053a57806323b872dd1461054f57610405565b806311abb081116103cd57806311abb081146104a657806313b4a7f4146104c657806314c0eaf9146104e657806318160ddd146104fb57610405565b8063065ba9a01461040a57806306fdde03146104355780630882a86314610457578063095ea7b31461047957610405565b3661040557005b600080fd5b34801561041657600080fd5b5061041f610b3c565b60405161042c919061310b565b60405180910390f35b34801561044157600080fd5b5061044a610b42565b60405161042c9190612cb6565b34801561046357600080fd5b50610477610472366004612bbb565b610bd4565b005b34801561048557600080fd5b50610499610494366004612b44565b610c21565b60405161042c9190612cab565b3480156104b257600080fd5b506104776104c1366004612bbb565b610c3e565b3480156104d257600080fd5b506104776104e1366004612ac5565b610c82565b3480156104f257600080fd5b5061041f610d21565b34801561050757600080fd5b5061041f610d27565b34801561051c57600080fd5b50610499610d2d565b34801561053157600080fd5b5061041f610d36565b34801561054657600080fd5b50610477610d3c565b34801561055b57600080fd5b5061049961056a366004612af2565b610da5565b34801561057b57600080fd5b50610584610e79565b60405161042c9190612c43565b34801561059d57600080fd5b506104776105ac366004612b6f565b610e9d565b3480156105bd57600080fd5b5061041f610eef565b3480156105d257600080fd5b5061041f610ef8565b3480156105e757600080fd5b5061041f610efe565b3480156105fc57600080fd5b5061047761060b366004612bbb565b610f04565b34801561061c57600080fd5b5061041f610f48565b34801561063157600080fd5b50610584610f4e565b34801561064657600080fd5b50610477610655366004612a55565b610f5d565b34801561066657600080fd5b50610499610fc0565b34801561067b57600080fd5b5061041f610fce565b34801561069057600080fd5b50610499610fd4565b3480156106a557600080fd5b5061041f610fe2565b3480156106ba57600080fd5b506104776106c9366004612a55565b610fe8565b3480156106da57600080fd5b5061041f611064565b3480156106ef57600080fd5b506104776106fe366004612bbb565b61106a565b34801561070f57600080fd5b506104776110cf565b34801561072457600080fd5b5061041f61115c565b34801561073957600080fd5b5061041f610748366004612a55565b611162565b34801561075957600080fd5b5061047761117d565b34801561076e57600080fd5b5061047761077d366004612b6f565b6111c8565b34801561078e57600080fd5b5061047761079d366004612bbb565b611221565b3480156107ae57600080fd5b50610584611265565b3480156107c357600080fd5b506104776107d2366004612bbb565b611274565b3480156107e357600080fd5b506105846112b8565b3480156107f857600080fd5b5061041f6112c7565b34801561080d57600080fd5b5061044a6112cd565b34801561082257600080fd5b50610477610831366004612b32565b6112dc565b34801561084257600080fd5b5061041f611357565b34801561085757600080fd5b5061041f61135d565b34801561086c57600080fd5b50610584611363565b34801561088157600080fd5b50610584611372565b34801561089657600080fd5b506104776108a5366004612a8d565b611381565b3480156108b657600080fd5b506104776108c5366004612bbb565b6113eb565b3480156108d657600080fd5b506104996108e5366004612b44565b611450565b3480156108f657600080fd5b50610477611464565b34801561090b57600080fd5b5061047761091a366004612a55565b6114cc565b34801561092b57600080fd5b5061049961093a366004612a55565b61152c565b34801561094b57600080fd5b5061041f611541565b34801561096057600080fd5b5061047761096f366004612a55565b611547565b34801561098057600080fd5b5061041f6115a8565b34801561099557600080fd5b506104776109a4366004612a55565b6115ae565b3480156109b557600080fd5b506104996109c4366004612a55565b611611565b3480156109d557600080fd5b5061041f61162f565b3480156109ea57600080fd5b506104776109f9366004612bbb565b61163b565b348015610a0a57600080fd5b506104996116a1565b348015610a1f57600080fd5b50610477610a2e366004612bbb565b6116aa565b348015610a3f57600080fd5b5061041f610a4e366004612ac5565b6116ee565b348015610a5f57600080fd5b5061041f611719565b348015610a7457600080fd5b5061041f61171f565b348015610a8957600080fd5b5061041f611725565b348015610a9e57600080fd5b50610477610aad366004612a55565b61172b565b348015610abe57600080fd5b50610477610acd366004612bbb565b61178c565b348015610ade57600080fd5b50610477610aed366004612a55565b6117d0565b348015610afe57600080fd5b50610477610b0d366004612ba7565b611841565b348015610b1e57600080fd5b50610477611906565b348015610b3357600080fd5b5061058461196e565b601f5490565b606060018054610b51906131d4565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7d906131d4565b8015610bca5780601f10610b9f57610100808354040283529160200191610bca565b820191906000526020600020905b815481529060010190602001808311610bad57829003601f168201915b5050505050905090565b610bdc61197d565b6001600160a01b0316610bed6112b8565b6001600160a01b031614610c1c5760405162461bcd60e51b8152600401610c1390612fd3565b60405180910390fd5b601955565b6000610c35610c2e61197d565b8484611981565b50600192915050565b610c4661197d565b6001600160a01b0316610c576112b8565b6001600160a01b031614610c7d5760405162461bcd60e51b8152600401610c1390612fd3565b602c55565b610c8a61197d565b6001600160a01b0316610c9b6112b8565b6001600160a01b031614610cc15760405162461bcd60e51b8152600401610c1390612fd3565b6001600160a01b0391821660008181526017602090815260408083208054600160ff199182168117909255959096168084528184208054871688179055938352601890915280822080548516861790559181522080549091169091179055565b60345490565b60095490565b60325460ff1681565b60085490565b610d4461197d565b6001600160a01b0316610d556112b8565b6001600160a01b031614610d7b5760405162461bcd60e51b8152600401610c1390612fd3565b601a54601955601c54601b55601e54601d55602054601f55610da04262015180613166565b602355565b6001600160a01b0383166000908152600d6020526040812081610dc661197d565b6001600160a01b03166001600160a01b0316815260200190815260200160002054821115610e065760405162461bcd60e51b8152600401610c1390612f8b565b610e11848484611a35565b610e6f84610e1d61197d565b6001600160a01b0387166000908152600d602052604081208691610e3f61197d565b6001600160a01b03166001600160a01b0316815260200190815260200160002054610e6a91906131bd565b611981565b5060019392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b610ea561197d565b6001600160a01b0316610eb66112b8565b6001600160a01b031614610edc5760405162461bcd60e51b8152600401610c1390612fd3565b6024805460ff1916911515919091179055565b60035460ff1690565b602c5490565b602e5490565b610f0c61197d565b6001600160a01b0316610f1d6112b8565b6001600160a01b031614610f435760405162461bcd60e51b8152600401610c1390612fd3565b601d55565b600a5490565b6039546001600160a01b031681565b610f6561197d565b6001600160a01b0316610f766112b8565b6001600160a01b031614610f9c5760405162461bcd60e51b8152600401610c1390612fd3565b6001600160a01b03166000908152600c60205260409020805460ff19166001179055565b603254610100900460ff1681565b60195490565b602454610100900460ff1681565b602a5490565b610ff061197d565b6001600160a01b03166110016112b8565b6001600160a01b0316146110275760405162461bcd60e51b8152600401610c1390612fd3565b60405147906001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561105f573d6000803e3d6000fd5b505050565b60355490565b61107261197d565b6001600160a01b03166110836112b8565b6001600160a01b0316146110a95760405162461bcd60e51b8152600401610c1390612fd3565b60058190556009546064906110bf90839061319e565b6110c9919061317e565b60135550565b6110d761197d565b6001600160a01b03166110e86112b8565b6001600160a01b03161461110e5760405162461bcd60e51b8152600401610c1390612fd3565b602354421161112f5760405162461bcd60e51b8152600401610c1390613008565b601b8054601c5560198054601a55601d8054601e55601f8054602055600092839055928290558190559055565b60075490565b6001600160a01b03166000908152600b602052604090205490565b61118561197d565b6001600160a01b03166111966112b8565b6001600160a01b0316146111bc5760405162461bcd60e51b8152600401610c1390612fd3565b6111c66000612169565b565b6111d061197d565b6001600160a01b03166111e16112b8565b6001600160a01b0316146112075760405162461bcd60e51b8152600401610c1390612fd3565b603280549115156101000261ff0019909216919091179055565b61122961197d565b6001600160a01b031661123a6112b8565b6001600160a01b0316146112605760405162461bcd60e51b8152600401610c1390612fd3565b602a55565b600061126f6112b8565b905090565b61127c61197d565b6001600160a01b031661128d6112b8565b6001600160a01b0316146112b35760405162461bcd60e51b8152600401610c1390612fd3565b602855565b6000546001600160a01b031690565b60285490565b606060028054610b51906131d4565b6112e461197d565b6001600160a01b03166112f56112b8565b6001600160a01b03161461131b5760405162461bcd60e51b8152600401610c1390612fd3565b6039546001600160a01b03838116911614156113495760405162461bcd60e51b8152600401610c1390612e17565b61135382826121b9565b5050565b601b5490565b600a5481565b6012546001600160a01b031681565b6010546001600160a01b031681565b61138961197d565b6001600160a01b031661139a6112b8565b6001600160a01b0316146113c05760405162461bcd60e51b8152600401610c1390612fd3565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6113f361197d565b6001600160a01b03166114046112b8565b6001600160a01b03161461142a5760405162461bcd60e51b8152600401610c1390612fd3565b600681905560095460649061144090839061319e565b61144a919061317e565b60145550565b6000610c3561145d61197d565b8484611a35565b61146c61197d565b6001600160a01b031661147d6112b8565b6001600160a01b0316146114a35760405162461bcd60e51b8152600401610c1390612fd3565b6000601b819055602a81905560198190556028819055601d819055602c8190556111c6906111c8565b6114d461197d565b6001600160a01b03166114e56112b8565b6001600160a01b03161461150b5760405162461bcd60e51b8152600401610c1390612fd3565b6001600160a01b03166000908152600c60205260409020805460ff19169055565b600e6020526000908152604090205460ff1681565b60145490565b61154f61197d565b6001600160a01b03166115606112b8565b6001600160a01b0316146115865760405162461bcd60e51b8152600401610c1390612fd3565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b601d5490565b6115b661197d565b6001600160a01b03166115c76112b8565b6001600160a01b0316146115ed5760405162461bcd60e51b8152600401610c1390612fd3565b6001600160a01b03166000908152601760205260409020805460ff19166001179055565b6001600160a01b03166000908152600c602052604090205460ff1690565b600061126f43426131bd565b61164361197d565b6001600160a01b03166116546112b8565b6001600160a01b03161461167a5760405162461bcd60e51b8152600401610c1390612fd3565b60078190556009546103e89061169190839061319e565b61169b919061317e565b600a5550565b60245460ff1690565b6116b261197d565b6001600160a01b03166116c36112b8565b6001600160a01b0316146116e95760405162461bcd60e51b8152600401610c1390612fd3565b600855565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b60335490565b60135490565b60275481565b61173361197d565b6001600160a01b03166117446112b8565b6001600160a01b03161461176a5760405162461bcd60e51b8152600401610c1390612fd3565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b61179461197d565b6001600160a01b03166117a56112b8565b6001600160a01b0316146117cb5760405162461bcd60e51b8152600401610c1390612fd3565b601b55565b6117d861197d565b6001600160a01b03166117e96112b8565b6001600160a01b03161461180f5760405162461bcd60e51b8152600401610c1390612fd3565b6001600160a01b0381166118355760405162461bcd60e51b8152600401610c1390612d4c565b61183e81612169565b50565b61184961197d565b6001600160a01b031661185a6112b8565b6001600160a01b0316146118805760405162461bcd60e51b8152600401610c1390612fd3565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb906118ae9085908590600401612c57565b602060405180830381600087803b1580156118c857600080fd5b505af11580156118dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119009190612b8b565b50505050565b61190e61197d565b6001600160a01b031661191f6112b8565b6001600160a01b0316146119455760405162461bcd60e51b8152600401610c1390612fd3565b6004601b55600a6019556001601d8190556005602a55600d6028556002602c556111c6906111c8565b6011546001600160a01b031681565b3390565b6001600160a01b0383166119a75760405162461bcd60e51b8152600401610c139061309c565b6001600160a01b0382166119cd5760405162461bcd60e51b8152600401610c1390612d92565b6001600160a01b038084166000818152600d602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590611a2890859061310b565b60405180910390a3505050565b6001600160a01b038316611a5b5760405162461bcd60e51b8152600401610c1390613057565b6001600160a01b038216611a815760405162461bcd60e51b8152600401610c1390612d09565b60008111611aa15760405162461bcd60e51b8152600401610c1390612f02565b6001600160a01b0383166000908152600b602052604090205481811015611ada5760405162461bcd60e51b8152600401610c1390612e74565b60245460ff16611b3f576001600160a01b03831660009081526017602052604090205460ff1680611b2357506001600160a01b03841660009081526017602052604090205460ff165b611b3f5760405162461bcd60e51b8152600401610c1390612f54565b6001600160a01b03831660009081526017602052604090205460ff16158015611b8157506001600160a01b03841660009081526017602052604090205460ff16155b15611be057601454821115611ba85760405162461bcd60e51b8152600401610c1390612eba565b6039546001600160a01b0385811691161415611be05760135482611bcb85611162565b611bd59190613166565b1115611be057600080fd5b6000611beb30611162565b9050600a548110158015611c02575060325460ff16155b8015611c1c57506039546001600160a01b03868116911614155b8015611c2f5750603254610100900460ff165b15611c4a57600a548110611c4a5750600a54611c4a8161220d565b6001600160a01b0385166000908152600c602052604090205460019060ff1680611c8c57506001600160a01b0385166000908152600c602052604090205460ff165b15611c9a5750600060048190555b60008060008060008515611f8d57602454610100900460ff16611cc157611cc18b8b6122b6565b6001600160a01b038b1660009081526015602052604090205460ff16151560011480611d0a57506001600160a01b038a1660009081526015602052604090205460ff1615156001145b15611d275760405162461bcd60e51b8152600401610c13906130e0565b6001600160a01b038a166000908152600e602052604090205460ff168015611d5d57506038546001600160a01b038b8116911614155b15611e26576000600455602a54606490611d77908b61319e565b611d81919061317e565b945060646028548a611d93919061319e565b611d9d919061317e565b92506064602c548a611daf919061319e565b611db9919061317e565b93506064602e548a611dcb919061319e565b611dd5919061317e565b915060646030548a611de7919061319e565b611df1919061317e565b9050808285611e008689613166565b611e0a9190613166565b611e149190613166565b611e1e9190613166565b600455611f8d565b6001600160a01b038b166000908152600e602052604090205460ff168015611e5c57506038546001600160a01b038c8116911614155b15611f8d577f000000000000000000000000000000000000000000000000000000000000000660255443611e9091906131bd565b1015611ecd576001600160a01b038a166000908152601560205260408120805460ff191660011790556027805491611ec78361320f565b91905055505b6000600455601b54606490611ee2908b61319e565b611eec919061317e565b945060646019548a611efe919061319e565b611f08919061317e565b92506064601d548a611f1a919061319e565b611f24919061317e565b93506064601f548a611f36919061319e565b611f40919061317e565b915060646021548a611f52919061319e565b611f5c919061317e565b9050808285611f6b8689613166565b611f759190613166565b611f7f9190613166565b611f899190613166565b6004555b611f9789896131bd565b6001600160a01b038c166000908152600b602052604090205580828486611fbe898e6131bd565b611fc891906131bd565b611fd291906131bd565b611fdc91906131bd565b611fe691906131bd565b6001600160a01b038b166000908152600b60205260408120805490919061200e908490613166565b9091555050821561210457600454306000908152600b60205260408120805490919061203b908490613166565b9250508190555082603560008282546120549190613166565b92505081905550836034600082825461206d9190613166565b9250508190555084603360008282546120869190613166565b92505081905550816036600082825461209f9190613166565b9250508190555080603760008282546120b89190613166565b909155505060045460405130916001600160a01b038e16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916120fb9161310b565b60405180910390a35b896001600160a01b03168b6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004548c61214791906131bd565b604051612154919061310b565b60405180910390a35050505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166000818152600e6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6032805460ff1916600117905560375460335460009161222c91613166565b9050612239603554612354565b612242816123d5565b61224d60345461255e565b61225860365461270c565b7f4596ef7337c1c88bb740707471cfc0ec6d0212036b05ab1bdbb09cf3e3f0190482604051612287919061310b565b60405180910390a15050600060338190556034819055603581905560368190556037556032805460ff19169055565b602454610100900460ff16156122de5760405162461bcd60e51b8152600401610c1390612dd4565b6122e88282612724565b15801561230257506039546001600160a01b038281169116145b1561135357506001600160a01b03166000908152601760205260409020805460ff191660011790556024805461ff00199081166101009081179092554360255542602655603280549091169091179055565b600061236160028361317e565b9050600061236f82846131bd565b90504761237b83612820565b600061238782476131bd565b9050612393838261296f565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618482856040516123c693929190613150565b60405180910390a15050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061241857634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152603854604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561246c57600080fd5b505afa158015612480573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124a49190612a71565b816001815181106124c557634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526038546124eb9130911684611981565b60385460105460405163791ac94760e01b81526001600160a01b039283169263791ac9479261252892879260009288929116904290600401613114565b600060405180830381600087803b15801561254257600080fd5b505af1158015612556573d6000803e3d6000fd5b505050505050565b600061256b60028361317e565b9050600061257982846131bd565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106125c157634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152603854604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561261557600080fd5b505afa158015612629573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264d9190612a71565b8160018151811061266e57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526038546126949130911686611981565b60385460105460405163791ac94760e01b81526001600160a01b039283169263791ac947926126d192889260009288929116904290600401613114565b600060405180830381600087803b1580156126eb57600080fd5b505af11580156126ff573d6000803e3d6000fd5b5050505061190082612a3d565b60125461183e9030906001600160a01b031683611a35565b600061272e6112b8565b6001600160a01b0316836001600160a01b03161415801561276857506127526112b8565b6001600160a01b0316826001600160a01b031614155b801561278d57506001600160a01b03821660009081526017602052604090205460ff16155b80156127b257506001600160a01b03831660009081526017602052604090205460ff16155b80156127f057507f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b0316826001600160a01b031614155b801561280457506001600160a01b03821615155b801561281957506001600160a01b0383163014155b9392505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061286357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152603854604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156128b757600080fd5b505afa1580156128cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ef9190612a71565b8160018151811061291057634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526038546129369130911684611981565b60385460405163791ac94760e01b81526001600160a01b039091169063791ac94790612528908590600090869030904290600401613114565b6038546129879030906001600160a01b031684611981565b60385460405163f305d71960e01b81526001600160a01b039091169063f305d7199083906129e4903090879060009081907f000000000000000000000000000000000000000000000000000000000000dead904290600401612c70565b6060604051808303818588803b1580156129fd57600080fd5b505af1158015612a11573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612a369190612bd3565b5050505050565b60115461183e9030906001600160a01b031683611a35565b600060208284031215612a66578081fd5b813561281981613240565b600060208284031215612a82578081fd5b815161281981613240565b60008060408385031215612a9f578081fd5b8235612aaa81613240565b91506020830135612aba81613255565b809150509250929050565b60008060408385031215612ad7578182fd5b8235612ae281613240565b91506020830135612aba81613240565b600080600060608486031215612b06578081fd5b8335612b1181613240565b92506020840135612b2181613240565b929592945050506040919091013590565b60008060408385031215612a9f578182fd5b60008060408385031215612b56578182fd5b8235612b6181613240565b946020939093013593505050565b600060208284031215612b80578081fd5b813561281981613255565b600060208284031215612b9c578081fd5b815161281981613255565b600080600060608486031215612b06578283fd5b600060208284031215612bcc578081fd5b5035919050565b600080600060608486031215612be7578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b83811015612c385781516001600160a01b031687529582019590820190600101612c13565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b81811015612ce257858101830151858201604001528201612cc6565b81811115612cf35783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526023908201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60408201526232b21760e91b606082015260800190565b60208082526039908201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060408201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60208082526028908201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546040820152673c20b6b7bab73a1760c11b606082015260800190565b60208082526032908201527f45524332303a207472616e73666572656420616d6f756e74206d7573742062656040820152712067726561746572207468616e207a65726f60701b606082015260800190565b6020808252601d908201527f43616e742074726164652c2074726164652069732064697361626c6564000000604082015260600190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602f908201527f596f752063616e742063616c6c20676f6c64656e20446179206d6f726520746860408201526e616e206f6e6365207065722064617960881b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252601190820152704e6f20626f74732063616e20747261646560781b604082015260600190565b90815260200190565b600086825285602083015260a0604083015261313360a0830186612c00565b6001600160a01b0394909416606083015250608001529392505050565b9283526020830191909152604082015260600190565b600082198211156131795761317961322a565b500190565b60008261319957634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156131b8576131b861322a565b500290565b6000828210156131cf576131cf61322a565b500390565b6002810460018216806131e857607f821691505b6020821081141561320957634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156132235761322361322a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461183e57600080fd5b801515811461183e57600080fdfea2646970667358221220aaf3209b77763e4da956adb25f881d7ea2d1487354b680baaab8e2f35097d00864736f6c63430008000033

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

0000000000000000000000000000000000000000000000000000000000000006

-----Decoded View---------------
Arg [0] : _snipeBlockAmt (uint256): 6

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000006


Deployed Bytecode Sourcemap

5421:21464:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13862:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11732:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;25452:111::-;;;;;;;;;;-1:-1:-1;25452:111:0;;;;;:::i;:::-;;:::i;:::-;;11466:168;;;;;;;;;;-1:-1:-1;11466:168:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;26063:124::-;;;;;;;;;;-1:-1:-1;26063:124:0;;;;;:::i;:::-;;:::i;23548:302::-;;;;;;;;;;-1:-1:-1;23548:302:0;;;;;:::i;:::-;;:::i;10657:104::-;;;;;;;;;;;;;:::i;10876:106::-;;;;;;;;;;;;;:::i;8194:28::-;;;;;;;;;;;;;:::i;14395:101::-;;;;;;;;;;;;;:::i;13142:260::-;;;;;;;;;;;;;:::i;12272:388::-;;;;;;;;;;-1:-1:-1;12272:388:0;;;;;:::i;:::-;;:::i;8276:81::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;21335:90::-;;;;;;;;;;-1:-1:-1;21335:90:0;;;;;:::i;:::-;;:::i;11642:84::-;;;;;;;;;;;;;:::i;14175:108::-;;;;;;;;;;;;;:::i;14290:99::-;;;;;;;;;;;;;:::i;25687:121::-;;;;;;;;;;-1:-1:-1;25687:121:0;;;;;:::i;:::-;;:::i;26777:105::-;;;;;;;;;;;;;:::i;8899:28::-;;;;;;;;;;;;;:::i;23302:114::-;;;;;;;;;;-1:-1:-1;23302:114:0;;;;;:::i;:::-;;:::i;8229:40::-;;;;;;;;;;;;;:::i;13546:96::-;;;;;;;;;;;;;:::i;7576:36::-;;;;;;;;;;;;;:::i;14071:98::-;;;;;;;;;;;;;:::i;21149:178::-;;;;;;;;;;-1:-1:-1;21149:178:0;;;;;:::i;:::-;;:::i;10768:99::-;;;;;;;;;;;;;:::i;12083:175::-;;;;;;;;;;-1:-1:-1;12083:175:0;;;;;:::i;:::-;;:::i;12714:422::-;;;;;;;;;;;;;:::i;26674:97::-;;;;;;;;;;;;;:::i;10993:118::-;;;;;;;;;;-1:-1:-1;10993:118:0;;;;;:::i;:::-;;:::i;4790:94::-;;;;;;;;;;;;;:::i;24484:113::-;;;;;;;;;;-1:-1:-1;24484:113:0;;;;;:::i;:::-;;:::i;25938:::-;;;;;;;;;;-1:-1:-1;25938:113:0;;;;;:::i;:::-;;:::i;10459:86::-;;;;;;;;;;;;;:::i;25818:114::-;;;;;;;;;;-1:-1:-1;25818:114:0;;;;;:::i;:::-;;:::i;4139:87::-;;;;;;;;;;;;;:::i;13967:98::-;;;;;;;;;;;;;:::i;11814:88::-;;;;;;;;;;;;;:::i;25008:242::-;;;;;;;;;;-1:-1:-1;25008:242:0;;;;;:::i;:::-;;:::i;13648:96::-;;;;;;;;;;;;;:::i;5977:48::-;;;;;;;;;;;;;:::i;6558:97::-;;;;;;;;;;;;;:::i;6314:93::-;;;;;;;;;;;;;:::i;13410:130::-;;;;;;;;;;-1:-1:-1;13410:130:0;;;;;:::i;:::-;;:::i;11912:164::-;;;;;;;;;;-1:-1:-1;11912:164:0;;;;;:::i;:::-;;:::i;11122:176::-;;;;;;;;;;-1:-1:-1;11122:176:0;;;;;:::i;:::-;;:::i;23858:249::-;;;;;;;;;;;;;:::i;23424:116::-;;;;;;;;;;-1:-1:-1;23424:116:0;;;;;:::i;:::-;;:::i;6226:58::-;;;;;;;;;;-1:-1:-1;6226:58:0;;;;;:::i;:::-;;:::i;26296:89::-;;;;;;;;;;;;;:::i;24635:118::-;;;;;;;;;;-1:-1:-1;24635:118:0;;;;;:::i;:::-;;:::i;13750:105::-;;;;;;;;;;;;;:::i;19594:123::-;;;;;;;;;;-1:-1:-1;19594:123:0;;;;;:::i;:::-;;:::i;14508:118::-;;;;;;;;;;-1:-1:-1;14508:118:0;;;;;:::i;:::-;;:::i;14634:107::-;;;;;;;;;;;;;:::i;26391:174::-;;;;;;;;;;-1:-1:-1;26391:174:0;;;;;:::i;:::-;;:::i;26571:97::-;;;;;;;;;;;;;:::i;24364:112::-;;;;;;;;;;-1:-1:-1;24364:112:0;;;;;:::i;:::-;;:::i;11309:148::-;;;;;;;;;;-1:-1:-1;11309:148:0;;;;;:::i;:::-;;:::i;10551:99::-;;;;;;;;;;;;;:::i;26193:97::-;;;;;;;;;;;;;:::i;7743:32::-;;;;;;;;;;;;;:::i;24878:124::-;;;;;;;;;;-1:-1:-1;24878:124:0;;;;;:::i;:::-;;:::i;25569:112::-;;;;;;;;;;-1:-1:-1;25569:112:0;;;;;:::i;:::-;;:::i;5039:192::-;;;;;;;;;;-1:-1:-1;5039:192:0;;;;;:::i;:::-;;:::i;20898:243::-;;;;;;;;;;-1:-1:-1;20898:243:0;;;;;:::i;:::-;;:::i;24113:::-;;;;;;;;;;;;;:::i;6414:93::-;;;;;;;;;;;;;:::i;13862:97::-;13941:10;;13862:97;:::o;11732:76::-;11771:13;11798:5;11791:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11732:76;:::o;25452:111::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;;;;;;;;;25534:9:::1;:21:::0;25452:111::o;11466:168::-;11543:4;11563:37;11572:12;:10;:12::i;:::-;11585:7;11593:6;11563:8;:37::i;:::-;-1:-1:-1;11622:4:0;11466:168;;;;:::o;26063:124::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;26154:13:::1;:25:::0;26063:124::o;23548:302::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23654:34:0;;::::1;;::::0;;;:17:::1;:34;::::0;;;;;;;:41;;23691:4:::1;-1:-1:-1::0;;23654:41:0;;::::1;::::0;::::1;::::0;;;23706:26;;;::::1;::::0;;;;;;:33;;;::::1;::::0;::::1;::::0;;23750;;;:16:::1;:33:::0;;;;;;:40;;;::::1;::::0;::::1;::::0;;23801:25;;;;:32;;;;::::1;::::0;;::::1;::::0;;23548:302::o;10657:104::-;10737:15;;10657:104;:::o;10876:106::-;10961:12;;10876:106;:::o;8194:28::-;;;;;;:::o;14395:101::-;14472:16;;14395:101;:::o;13142:260::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;13207:13:::1;::::0;13195:9:::1;:25:::0;13244:13:::1;::::0;13232:9:::1;:25:::0;13284:16:::1;::::0;13269:12:::1;:31:::0;13325:14:::1;::::0;13312:10:::1;:27:::0;13371:23:::1;:15;13389:5;13371:23;:::i;:::-;13351:17;:43:::0;13142:260::o;12272:388::-;-1:-1:-1;;;;;12438:19:0;;12404:4;12438:19;;;:11;:19;;;;;12404:4;12458:12;:10;:12::i;:::-;-1:-1:-1;;;;;12438:33:0;-1:-1:-1;;;;;12438:33:0;;;;;;;;;;;;;12428:6;:43;;12420:96;;;;-1:-1:-1;;;12420:96:0;;;;;;;:::i;:::-;12521:36;12531:6;12539:9;12550:6;12521:9;:36::i;:::-;12562:74;12571:6;12579:12;:10;:12::i;:::-;-1:-1:-1;;;;;12593:19:0;;;;;;:11;:19;;;;;12629:6;;12613:12;:10;:12::i;:::-;-1:-1:-1;;;;;12593:33:0;-1:-1:-1;;;;;12593:33:0;;;;;;;;;;;;;:42;;;;:::i;:::-;12562:8;:74::i;:::-;-1:-1:-1;12648:4:0;12272:388;;;;;:::o;8276:81::-;;;:::o;21335:90::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;21396:12:::1;:21:::0;;-1:-1:-1;;21396:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21335:90::o;11642:84::-;11709:9;;;;11642:84;:::o;14175:108::-;14262:13;;14175:108;:::o;14290:99::-;14370:11;;14290:99;:::o;25687:121::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;25776:12:::1;:24:::0;25687:121::o;26777:105::-;26854:20;;26777:105;:::o;8899:28::-;;;-1:-1:-1;;;;;8899:28:0;;:::o;23302:114::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23373:28:0::1;;::::0;;;:17:::1;:28;::::0;;;;:35;;-1:-1:-1;;23373:35:0::1;23404:4;23373:35;::::0;;23302:114::o;8229:40::-;;;;;;;;;:::o;13546:96::-;13625:9;;13546:96;:::o;7576:36::-;;;;;;;;;:::o;14071:98::-;14151:10;;14071:98;:::o;21149:178::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;21278:41:::1;::::0;21246:21:::1;::::0;-1:-1:-1;;;;;21278:29:0;::::1;::::0;:41;::::1;;;::::0;21246:21;;21225:18:::1;21278:41:::0;21225:18;21278:41;21246:21;21278:29;:41;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;4430:1;21149:178:::0;:::o;10768:99::-;10849:9;;10768:99;:::o;12083:175::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;12159:17:::1;:26:::0;;;12214:12:::1;::::0;12245:3:::1;::::0;12214:30:::1;::::0;12179:6;;12214:30:::1;:::i;:::-;:34;;;;:::i;:::-;12196:15;:52:::0;-1:-1:-1;12083:175:0:o;12714:422::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;12789:17:::1;;12771:15;:35;12763:95;;;;-1:-1:-1::0;;;12763:95:0::1;;;;;;;:::i;:::-;12886:9;::::0;;12870:13:::1;:25:::0;12923:9:::1;::::0;;12907:13:::1;:25:::0;12963:12:::1;::::0;;12944:16:::1;:31:::0;13004:10:::1;::::0;;12987:14:::1;:27:::0;-1:-1:-1;13037:13:0;;;;13062;;;;13087:16;;;13115:13;;12714:422::o;26674:97::-;26751:12;;26674:97;:::o;10993:118::-;-1:-1:-1;;;;;11085:18:0;11059:7;11085:18;;;:9;:18;;;;;;;10993:118::o;4790:94::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;4855:21:::1;4873:1;4855:9;:21::i;:::-;4790:94::o:0;24484:113::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;24557:21:::1;:32:::0;;;::::1;;;;-1:-1:-1::0;;24557:32:0;;::::1;::::0;;;::::1;::::0;;24484:113::o;25938:::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;26021:10:::1;:22:::0;25938:113::o;10459:86::-;10500:7;10530;:5;:7::i;:::-;10523:14;;10459:86;:::o;25818:114::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;25902:10:::1;:22:::0;25818:114::o;4139:87::-;4185:7;4212:6;-1:-1:-1;;;;;4212:6:0;4139:87;:::o;13967:98::-;14047:10;;13967:98;:::o;11814:88::-;11855:13;11887:7;11880:14;;;;;:::i;25008:242::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;25115:13:::1;::::0;-1:-1:-1;;;;;25107:21:0;;::::1;25115:13:::0;::::1;25107:21;;25099:91;;;;-1:-1:-1::0;;;25099:91:0::1;;;;;;;:::i;:::-;25201:41;25230:4;25236:5;25201:28;:41::i;:::-;25008:242:::0;;:::o;13648:96::-;13727:9;;13648:96;:::o;5977:48::-;;;;:::o;6558:97::-;;;-1:-1:-1;;;;;6558:97:0;;:::o;6314:93::-;;;-1:-1:-1;;;;;6314:93:0;;:::o;13410:130::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13501:23:0;;;::::1;;::::0;;;:10:::1;:23;::::0;;;;:31;;-1:-1:-1;;13501:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13410:130::o;11912:164::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;11984:13:::1;:22:::0;;;12031:12:::1;::::0;12058:3:::1;::::0;12031:26:::1;::::0;12000:6;;12031:26:::1;:::i;:::-;:30;;;;:::i;:::-;12017:11;:44:::0;-1:-1:-1;11912:164:0:o;11122:176::-;11202:4;11222:40;11232:12;:10;:12::i;:::-;11245:9;11255:6;11222:9;:40::i;23858:249::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;23936:1:::1;23924:9;:13:::0;;;23948:10:::1;:13:::0;;;23972:9:::1;:12:::0;;;23995:10:::1;:13:::0;;;24019:12:::1;:15:::0;;;24045:13:::1;:17:::0;;;24073:24:::1;::::0;:17:::1;:24::i;23424:116::-:0;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23497:27:0::1;23527:5;23497:27:::0;;;:17:::1;:27;::::0;;;;:35;;-1:-1:-1;;23497:35:0::1;::::0;;23424:116::o;6226:58::-;;;;;;;;;;;;;;;:::o;26296:89::-;26366:11;;26296:89;:::o;24635:118::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;24707:16:::1;:38:::0;;-1:-1:-1;;;;;;24707:38:0::1;-1:-1:-1::0;;;;;24707:38:0;;;::::1;::::0;;;::::1;::::0;;24635:118::o;13750:105::-;13835:12;;13750:105;:::o;19594:123::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19666:29:0::1;;::::0;;;:17:::1;:29;::::0;;;;:36;;-1:-1:-1;;19666:36:0::1;19698:4;19666:36;::::0;;19594:123::o;14508:118::-;-1:-1:-1;;;;;14592:26:0;14565:4;14592:26;;;:17;:26;;;;;;;;;14508:118::o;14634:107::-;14679:7;14705:28;14721:12;14705:15;:28;:::i;26391:174::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;26462:12:::1;:21:::0;;;26517:12:::1;::::0;26543:4:::1;::::0;26517:25:::1;::::0;26477:6;;26517:25:::1;:::i;:::-;:30;;;;:::i;:::-;26494:20;:53:::0;-1:-1:-1;26391:174:0:o;26571:97::-;26645:12;;;;26571:97;:::o;24364:112::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;24435:16:::1;:31:::0;24364:112::o;11309:148::-;-1:-1:-1;;;;;11422:18:0;;;11392:7;11422:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11309:148::o;10551:99::-;10632:9;;10551:99;:::o;26193:97::-;26267:15;;26193:97;:::o;7743:32::-;;;;:::o;24878:124::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;24956:16:::1;:38:::0;;-1:-1:-1;;;;;;24956:38:0::1;-1:-1:-1::0;;;;;24956:38:0;;;::::1;::::0;;;::::1;::::0;;24878:124::o;25569:112::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;25652:9:::1;:21:::0;25569:112::o;5039:192::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5128:22:0;::::1;5120:73;;;;-1:-1:-1::0;;;5120:73:0::1;;;;;;;:::i;:::-;5204:19;5214:8;5204:9;:19::i;:::-;5039:192:::0;:::o;20898:243::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;21091:42:::1;::::0;-1:-1:-1;;;21091:42:0;;-1:-1:-1;;;;;21091:21:0;::::1;::::0;::::1;::::0;:42:::1;::::0;21113:11;;21126:6;;21091:42:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20898:243:::0;;;:::o;24113:::-;4370:12;:10;:12::i;:::-;-1:-1:-1;;;;;4359:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4359:23:0;;4351:68;;;;-1:-1:-1;;;4351:68:0;;;;;;;:::i;:::-;24180:1:::1;24168:9;:13:::0;24204:2:::1;24192:9;:14:::0;24232:1:::1;24217:12;:16:::0;;;24259:1:::1;24246:10;:14:::0;24284:2:::1;24271:10;:15:::0;-1:-1:-1;24297:13:0::1;:17:::0;24325:23:::1;::::0;:17:::1;:23::i;6414:93::-:0;;;-1:-1:-1;;;;;6414:93:0;;:::o;99:98::-;179:10;99:98;:::o;22934:322::-;-1:-1:-1;;;;;23026:19:0;;23018:68;;;;-1:-1:-1;;;23018:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23099:21:0;;23091:68;;;;-1:-1:-1;;;23091:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23166:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;23212:32;;;;;23196:6;;23212:32;:::i;:::-;;;;;;;;22934:322;;;:::o;14757:4210::-;-1:-1:-1;;;;;14855:18:0;;14847:68;;;;-1:-1:-1;;;14847:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14928:16:0;;14920:64;;;;-1:-1:-1;;;14920:64:0;;;;;;;:::i;:::-;15012:1;15003:6;:10;14995:72;;;;-1:-1:-1;;;14995:72:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15102:15:0;;15078:21;15102:15;;;:9;:15;;;;;;15136:23;;;;15128:74;;;;-1:-1:-1;;;15128:74:0;;;;;;;:::i;:::-;15216:12;;;;15213:141;;-1:-1:-1;;;;;15261:21:0;;;;;;:17;:21;;;;;;;;;:48;;-1:-1:-1;;;;;;15286:23:0;;;;;;:17;:23;;;;;;;;15261:48;15253:89;;;;-1:-1:-1;;;15253:89:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15367:21:0;;;;;;:17;:21;;;;;;;;:28;;;:62;;-1:-1:-1;;;;;;15399:23:0;;;;;;:17;:23;;;;;;;;:30;15367:62;15364:285;;;15459:11;;15449:6;:21;;15441:74;;;;-1:-1:-1;;;15441:74:0;;;;;;;:::i;:::-;15541:13;;-1:-1:-1;;;;;15533:21:0;;;15541:13;;15533:21;15530:108;;;15606:15;;15596:6;15582:13;15592:2;15582:9;:13::i;:::-;:20;;;;:::i;:::-;:39;;15574:48;;;;;;15659:25;15687:24;15705:4;15687:9;:24::i;:::-;15659:52;;15745:20;;15725:17;:40;;:66;;;;-1:-1:-1;15775:16:0;;;;15774:17;15725:66;:96;;;;-1:-1:-1;15808:13:0;;-1:-1:-1;;;;;15800:21:0;;;15808:13;;15800:21;;15725:96;:126;;;;-1:-1:-1;15830:21:0;;;;;;;15725:126;15722:352;;;15895:20;;15874:17;:41;15871:188;;-1:-1:-1;15960:20:0;;16003:36;15960:20;16003:17;:36::i;:::-;-1:-1:-1;;;;;16170:23:0;;16104:13;16170:23;;;:17;:23;;;;;;16120:4;;16170:23;;;:48;;-1:-1:-1;;;;;;16197:21:0;;;;;;:17;:21;;;;;;;;16170:48;16167:159;;;-1:-1:-1;16255:1:0;16239:13;:17;;;16167:159;16340:17;16376:23;16449:17;16522:18;16558:21;16603:8;16600:1715;;;16635:16;;;;;;;16631:92;;16675:28;16694:4;16700:2;16675:18;:28::i;:::-;-1:-1:-1;;;;;16790:16:0;;;;;;:10;:16;;;;;;;;:24;;:16;:24;;:46;;-1:-1:-1;;;;;;16816:14:0;;;;;;:10;:14;;;;;;;;:20;;:14;:20;16790:46;16787:119;;;16859:27;;-1:-1:-1;;;16859:27:0;;;;;;;:::i;16787:119::-;-1:-1:-1;;;;;16960:29:0;;;;;;:25;:29;;;;;;;;:55;;;;-1:-1:-1;17007:7:0;;-1:-1:-1;;;;;16993:22:0;;;17007:7;;16993:22;;16960:55;16956:1324;;;17060:1;17044:13;:17;17109:10;;17120:3;;17100:19;;:6;:19;:::i;:::-;:23;;;;:::i;:::-;17088:35;;17182:3;17171:10;;17162:6;:19;;;;:::i;:::-;:23;;;;:::i;:::-;17150:35;;17253:3;17239:13;;17230:6;:22;;;;:::i;:::-;:26;;;;:::i;:::-;17212:44;;17316:3;17304:11;;17296:6;:19;;;;:::i;:::-;:23;;;;:::i;:::-;17283:36;;17382:3;17370:11;;17362:6;:19;;;;:::i;:::-;:23;;;;:::i;:::-;17346:39;-1:-1:-1;17346:39:0;17470:10;17452:15;17428:21;17440:9;17428;:21;:::i;:::-;:39;;;;:::i;:::-;:52;;;;:::i;:::-;:68;;;;:::i;:::-;17412:13;:84;16956:1324;;;-1:-1:-1;;;;;17570:31:0;;;;;;:25;:31;;;;;;;;:59;;;;-1:-1:-1;17621:7:0;;-1:-1:-1;;;;;17605:24:0;;;17621:7;;17605:24;;17570:59;17567:713;;;17687:13;17672:12;;17657;:27;;;;:::i;:::-;:43;17654:161;;;-1:-1:-1;;;;;17728:14:0;;;;;;:10;:14;;;;;:21;;-1:-1:-1;;17728:21:0;17745:4;17728:21;;;17776:13;:15;;;;;;:::i;:::-;;;;;;17654:161;17853:1;17837:13;:17;17898:9;;17908:3;;17889:18;;:6;:18;:::i;:::-;:22;;;;:::i;:::-;17877:34;;17965:3;17955:9;;17946:6;:18;;;;:::i;:::-;:22;;;;:::i;:::-;17934:34;;18031:3;18018:12;;18009:6;:21;;;;:::i;:::-;:25;;;;:::i;:::-;17991:43;;18089:3;18078:10;;18070:6;:18;;;;:::i;:::-;:22;;;;:::i;:::-;18057:35;;18150:3;18139:10;;18131:6;:18;;;;:::i;:::-;:22;;;;:::i;:::-;18115:38;-1:-1:-1;18115:38:0;18234:10;18216:15;18192:21;18204:9;18192;:21;:::i;:::-;:39;;;;:::i;:::-;:52;;;;:::i;:::-;:68;;;;:::i;:::-;18176:13;:84;17567:713;18349:22;18365:6;18349:13;:22;:::i;:::-;-1:-1:-1;;;;;18331:15:0;;;;;;:9;:15;;;;;:40;18467:13;18454:10;18442:9;18424:15;18403:18;18412:9;18403:6;:18;:::i;:::-;:36;;;;:::i;:::-;:48;;;;:::i;:::-;:61;;;;:::i;:::-;:77;;;;:::i;:::-;-1:-1:-1;;;;;18386:13:0;;;;;;:9;:13;;;;;:94;;:13;;;:94;;;;;:::i;:::-;;;;-1:-1:-1;;18498:14:0;;18495:382;;18548:13;;18538:4;18520:24;;;;:9;:24;;;;;:41;;:24;;;:41;;18548:13;;18520:41;:::i;:::-;;;;;;;;18619:9;18606;;:22;;;;;;;:::i;:::-;;;;;;;;18662:15;18643;;:34;;;;;;;:::i;:::-;;;;;;;;18705:9;18692;;:22;;;;;;;:::i;:::-;;;;;;;;18743:10;18729;;:24;;;;;;;:::i;:::-;;;;;;;;18785:13;18768;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;;18839:13:0;;18809:44;;18832:4;;-1:-1:-1;;;;;18809:44:0;;;;;;;;:::i;:::-;;;;;;;;18495:382;18911:2;-1:-1:-1;;;;;18896:39:0;18905:4;-1:-1:-1;;;;;18896:39:0;;18921:13;;18914:6;:20;;;;:::i;:::-;18896:39;;;;;;:::i;:::-;;;;;;;;14757:4210;;;;;;;;;;;:::o;5239:173::-;5295:16;5314:6;;-1:-1:-1;;;;;5331:17:0;;;-1:-1:-1;;;;;;5331:17:0;;;;;;5364:40;;5314:6;;;;;;;5364:40;;5295:16;5364:40;5239:173;;:::o;25256:188::-;-1:-1:-1;;;;;25339:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;25339:39:0;;;;;;;;;;25396:40;;25339:39;;:31;25396:40;;;25256:188;;:::o;18973:614::-;8987:16;:23;;-1:-1:-1;;8987:23:0;9006:4;8987:23;;;19085:13:::1;::::0;19075:9:::1;::::0;8987:16;;19075:23:::1;::::0;::::1;:::i;:::-;19053:45;;19109:25;19124:9;;19109:14;:25::i;:::-;19145:32;19165:11;19145:19;:32::i;:::-;19220:31;19235:15;;19220:14;:31::i;:::-;19330;19350:10;;19330:19;:31::i;:::-;19407:44;19437:13;19407:44;;;;;;:::i;:::-;;;;;;;;-1:-1:-1::0;;19474:1:0::1;19462:9;:13:::0;;;19486:15:::1;:19:::0;;;19516:9:::1;:13:::0;;;19540:10:::1;:13:::0;;;19564::::1;:15:::0;9021:16;:24;;-1:-1:-1;;9021:24:0;;;18973:614::o;21433:401::-;21511:16;;;;;;;21510:17;21502:65;;;;-1:-1:-1;;;21502:65:0;;;;;;;:::i;:::-;21579:20;21590:4;21596:2;21579:10;:20::i;:::-;21578:21;:44;;;;-1:-1:-1;21609:13:0;;-1:-1:-1;;;;;21603:19:0;;;21609:13;;21603:19;21578:44;21574:253;;;-1:-1:-1;;;;;;21635:23:0;;;;;:17;:23;;;;;:30;;-1:-1:-1;;21635:30:0;21661:4;21635:30;;;21676:16;:23;;-1:-1:-1;;21676:23:0;;;21635:30;21676:23;;;;;;21725:12;21710;:27;21763:15;21748:12;:30;21791:21;:28;;;;;;;;;;21433:401::o;21844:388::-;21906:12;21921:19;21939:1;21921:15;:19;:::i;:::-;21906:34;-1:-1:-1;21945:17:0;21965:22;21906:34;21965:15;:22;:::i;:::-;21945:42;-1:-1:-1;22017:21:0;22045:22;22062:4;22045:16;:22::i;:::-;22072:18;22093:40;22118:14;22093:21;:40;:::i;:::-;22072:61;;22141:35;22154:9;22165:10;22141:12;:35::i;:::-;22186:41;22201:4;22206:10;22217:9;22186:41;;;;;;;;:::i;:::-;;;;;;;;21844:388;;;;;:::o;19723:399::-;19810:16;;;19824:1;19810:16;;;;;;;;19786:21;;19810:16;;;;;;;;;;-1:-1:-1;19810:16:0;19786:40;;19849:4;19831;19836:1;19831:7;;;;;;-1:-1:-1;;;19831:7:0;;;;;;;;;-1:-1:-1;;;;;19831:23:0;;;:7;;;;;;;;;;:23;;;;19869:7;;:14;;;-1:-1:-1;;;19869:14:0;;;;:7;;;;;:12;;:14;;;;;19831:7;;19869:14;;;;;:7;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19859:4;19864:1;19859:7;;;;;;-1:-1:-1;;;19859:7:0;;;;;;;;;-1:-1:-1;;;;;19859:24:0;;;:7;;;;;;;;;:24;19920:7;;19888:49;;19905:4;;19920:7;19930:6;19888:8;:49::i;:::-;19948:7;;20070:16;;19948:164;;-1:-1:-1;;;19948:164:0;;-1:-1:-1;;;;;19948:7:0;;;;:58;;:164;;20012:6;;19948:7;;20060:4;;20070:16;;;20092:15;;19948:164;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19723:399;;:::o;20385:502::-;20442:12;20457:10;20466:1;20457:6;:10;:::i;:::-;20442:25;-1:-1:-1;20472:17:0;20492:13;20442:25;20492:6;:13;:::i;:::-;20540:16;;;20554:1;20540:16;;;;;;;;20472:33;;-1:-1:-1;20516:21:0;;20540:16;;;;;;;;;;;;-1:-1:-1;20540:16:0;20516:40;;20579:4;20561;20566:1;20561:7;;;;;;-1:-1:-1;;;20561:7:0;;;;;;;;;-1:-1:-1;;;;;20561:23:0;;;:7;;;;;;;;;;:23;;;;20599:7;;:14;;;-1:-1:-1;;;20599:14:0;;;;:7;;;;;:12;;:14;;;;;20561:7;;20599:14;;;;;:7;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20589:4;20594:1;20589:7;;;;;;-1:-1:-1;;;20589:7:0;;;;;;;;;-1:-1:-1;;;;;20589:24:0;;;:7;;;;;;;;;:24;20650:7;;20618:49;;20635:4;;20650:7;20660:6;20618:8;:49::i;:::-;20678:7;;20798:16;;20678:162;;-1:-1:-1;;;20678:162:0;;-1:-1:-1;;;;;20678:7:0;;;;:58;;:162;;20742:4;;20678:7;;20788:4;;20798:16;;;20820:15;;20678:162;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20853:26;20869:9;20853:15;:26::i;20252:127::-;20340:20;;20315:54;;20333:4;;-1:-1:-1;;;;;20340:20:0;20362:6;20315:9;:54::i;10057:330::-;10125:4;10157:7;:5;:7::i;:::-;-1:-1:-1;;;;;10149:15:0;:4;-1:-1:-1;;;;;10149:15:0;;;:45;;;;;10187:7;:5;:7::i;:::-;-1:-1:-1;;;;;10181:13:0;:2;-1:-1:-1;;;;;10181:13:0;;;10149:45;:84;;;;-1:-1:-1;;;;;;10212:21:0;;;;;;:17;:21;;;;;;;;10211:22;10149:84;:125;;;;-1:-1:-1;;;;;;10251:23:0;;;;;;:17;:23;;;;;;;;10250:24;10149:125;:159;;;;;10297:11;-1:-1:-1;;;;;10291:17:0;:2;-1:-1:-1;;;;;10291:17:0;;;10149:159;:192;;;;-1:-1:-1;;;;;;10325:16:0;;;;10149:192;:230;;;;-1:-1:-1;;;;;;10358:21:0;;10374:4;10358:21;;10149:230;10142:237;10057:330;-1:-1:-1;;;10057:330:0:o;22240:397::-;22323:16;;;22337:1;22323:16;;;;;;;;22299:21;;22323:16;;;;;;;;;;-1:-1:-1;22323:16:0;22299:40;;22362:4;22344;22349:1;22344:7;;;;;;-1:-1:-1;;;22344:7:0;;;;;;;;;-1:-1:-1;;;;;22344:23:0;;;:7;;;;;;;;;;:23;;;;22382:7;;:14;;;-1:-1:-1;;;22382:14:0;;;;:7;;;;;:12;;:14;;;;;22344:7;;22382:14;;;;;:7;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22372:4;22377:1;22372:7;;;;;;-1:-1:-1;;;22372:7:0;;;;;;;;;-1:-1:-1;;;;;22372:24:0;;;:7;;;;;;;;;:24;22433:7;;22401:54;;22418:4;;22433:7;22443:11;22401:8;:54::i;:::-;22466:7;;:166;;-1:-1:-1;;;22466:166:0;;-1:-1:-1;;;;;22466:7:0;;;;:58;;:166;;22530:11;;22466:7;;22583:4;;22601;;22612:15;;22466:166;;;:::i;22649:277::-;22754:7;;22722:54;;22739:4;;-1:-1:-1;;;;;22754:7:0;22764:11;22722:8;:54::i;:::-;22783:7;;:138;;-1:-1:-1;;;22783:138:0;;-1:-1:-1;;;;;22783:7:0;;;;:23;;22813:9;;22783:138;;22837:4;;22848:11;;22783:7;;;;22879:11;;22901:15;;22783:138;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22649:277;;:::o;20130:116::-;20213:16;;20188:50;;20206:4;;-1:-1:-1;;;;;20213:16:0;20231:6;20188:9;:50::i;14:259:1:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:33;237:5;210:33;:::i;278:263::-;;401:2;389:9;380:7;376:23;372:32;369:2;;;422:6;414;407:22;369:2;459:9;453:16;478:33;505:5;478:33;:::i;818:404::-;;;952:2;940:9;931:7;927:23;923:32;920:2;;;973:6;965;958:22;920:2;1017:9;1004:23;1036:33;1063:5;1036:33;:::i;:::-;1088:5;-1:-1:-1;1145:2:1;1130:18;;1117:32;1158;1117;1158;:::i;:::-;1209:7;1199:17;;;910:312;;;;;:::o;1227:402::-;;;1356:2;1344:9;1335:7;1331:23;1327:32;1324:2;;;1377:6;1369;1362:22;1324:2;1421:9;1408:23;1440:33;1467:5;1440:33;:::i;:::-;1492:5;-1:-1:-1;1549:2:1;1534:18;;1521:32;1562:35;1521:32;1562:35;:::i;1634:470::-;;;;1780:2;1768:9;1759:7;1755:23;1751:32;1748:2;;;1801:6;1793;1786:22;1748:2;1845:9;1832:23;1864:33;1891:5;1864:33;:::i;:::-;1916:5;-1:-1:-1;1973:2:1;1958:18;;1945:32;1986:35;1945:32;1986:35;:::i;:::-;1738:366;;2040:7;;-1:-1:-1;;;2094:2:1;2079:18;;;;2066:32;;1738:366::o;2109:396::-;;;2235:2;2223:9;2214:7;2210:23;2206:32;2203:2;;;2256:6;2248;2241:22;2510:327;;;2639:2;2627:9;2618:7;2614:23;2610:32;2607:2;;;2660:6;2652;2645:22;2607:2;2704:9;2691:23;2723:33;2750:5;2723:33;:::i;:::-;2775:5;2827:2;2812:18;;;;2799:32;;-1:-1:-1;;;2597:240:1:o;2842:253::-;;2951:2;2939:9;2930:7;2926:23;2922:32;2919:2;;;2972:6;2964;2957:22;2919:2;3016:9;3003:23;3035:30;3059:5;3035:30;:::i;3100:257::-;;3220:2;3208:9;3199:7;3195:23;3191:32;3188:2;;;3241:6;3233;3226:22;3188:2;3278:9;3272:16;3297:30;3321:5;3297:30;:::i;3362:491::-;;;;3529:2;3517:9;3508:7;3504:23;3500:32;3497:2;;;3550:6;3542;3535:22;3858:190;;3970:2;3958:9;3949:7;3945:23;3941:32;3938:2;;;3991:6;3983;3976:22;3938:2;-1:-1:-1;4019:23:1;;3928:120;-1:-1:-1;3928:120:1:o;4053:316::-;;;;4210:2;4198:9;4189:7;4185:23;4181:32;4178:2;;;4231:6;4223;4216:22;4178:2;4265:9;4259:16;4249:26;;4315:2;4304:9;4300:18;4294:25;4284:35;;4359:2;4348:9;4344:18;4338:25;4328:35;;4168:201;;;;;:::o;4374:469::-;;4471:5;4465:12;4498:6;4493:3;4486:19;4524:4;4553:2;4548:3;4544:12;4537:19;;4590:2;4583:5;4579:14;4611:3;4623:195;4637:6;4634:1;4631:13;4623:195;;;4702:13;;-1:-1:-1;;;;;4698:39:1;4686:52;;4758:12;;;;4793:15;;;;4734:1;4652:9;4623:195;;;-1:-1:-1;4834:3:1;;4441:402;-1:-1:-1;;;;;4441:402:1:o;4848:203::-;-1:-1:-1;;;;;5012:32:1;;;;4994:51;;4982:2;4967:18;;4949:102::o;5280:282::-;-1:-1:-1;;;;;5480:32:1;;;;5462:51;;5544:2;5529:18;;5522:34;5450:2;5435:18;;5417:145::o;5567:607::-;-1:-1:-1;;;;;5926:15:1;;;5908:34;;5973:2;5958:18;;5951:34;;;;6016:2;6001:18;;5994:34;;;;6059:2;6044:18;;6037:34;;;;6108:15;;;6102:3;6087:19;;6080:44;5888:3;6140:19;;6133:35;;;;5857:3;5842:19;;5824:350::o;6179:187::-;6344:14;;6337:22;6319:41;;6307:2;6292:18;;6274:92::o;6371:603::-;;6512:2;6541;6530:9;6523:21;6573:6;6567:13;6616:6;6611:2;6600:9;6596:18;6589:34;6641:4;6654:140;6668:6;6665:1;6662:13;6654:140;;;6763:14;;;6759:23;;6753:30;6729:17;;;6748:2;6725:26;6718:66;6683:10;;6654:140;;;6812:6;6809:1;6806:13;6803:2;;;6882:4;6877:2;6868:6;6857:9;6853:22;6849:31;6842:45;6803:2;-1:-1:-1;6958:2:1;6937:15;-1:-1:-1;;6933:29:1;6918:45;;;;6965:2;6914:54;;6492:482;-1:-1:-1;;;6492:482:1:o;6979:399::-;7181:2;7163:21;;;7220:2;7200:18;;;7193:30;7259:34;7254:2;7239:18;;7232:62;-1:-1:-1;;;7325:2:1;7310:18;;7303:33;7368:3;7353:19;;7153:225::o;7383:402::-;7585:2;7567:21;;;7624:2;7604:18;;;7597:30;7663:34;7658:2;7643:18;;7636:62;-1:-1:-1;;;7729:2:1;7714:18;;7707:36;7775:3;7760:19;;7557:228::o;7790:398::-;7992:2;7974:21;;;8031:2;8011:18;;;8004:30;8070:34;8065:2;8050:18;;8043:62;-1:-1:-1;;;8136:2:1;8121:18;;8114:32;8178:3;8163:19;;7964:224::o;8193:399::-;8395:2;8377:21;;;8434:2;8414:18;;;8407:30;8473:34;8468:2;8453:18;;8446:62;-1:-1:-1;;;8539:2:1;8524:18;;8517:33;8582:3;8567:19;;8367:225::o;8597:421::-;8799:2;8781:21;;;8838:2;8818:18;;;8811:30;8877:34;8872:2;8857:18;;8850:62;8948:27;8943:2;8928:18;;8921:55;9008:3;8993:19;;8771:247::o;9023:402::-;9225:2;9207:21;;;9264:2;9244:18;;;9237:30;9303:34;9298:2;9283:18;;9276:62;-1:-1:-1;;;9369:2:1;9354:18;;9347:36;9415:3;9400:19;;9197:228::o;9430:404::-;9632:2;9614:21;;;9671:2;9651:18;;;9644:30;9710:34;9705:2;9690:18;;9683:62;-1:-1:-1;;;9776:2:1;9761:18;;9754:38;9824:3;9809:19;;9604:230::o;9839:414::-;10041:2;10023:21;;;10080:2;10060:18;;;10053:30;10119:34;10114:2;10099:18;;10092:62;-1:-1:-1;;;10185:2:1;10170:18;;10163:48;10243:3;10228:19;;10013:240::o;10258:353::-;10460:2;10442:21;;;10499:2;10479:18;;;10472:30;10538:31;10533:2;10518:18;;10511:59;10602:2;10587:18;;10432:179::o;10616:404::-;10818:2;10800:21;;;10857:2;10837:18;;;10830:30;10896:34;10891:2;10876:18;;10869:62;-1:-1:-1;;;10962:2:1;10947:18;;10940:38;11010:3;10995:19;;10790:230::o;11025:356::-;11227:2;11209:21;;;11246:18;;;11239:30;11305:34;11300:2;11285:18;;11278:62;11372:2;11357:18;;11199:182::o;11386:411::-;11588:2;11570:21;;;11627:2;11607:18;;;11600:30;11666:34;11661:2;11646:18;;11639:62;-1:-1:-1;;;11732:2:1;11717:18;;11710:45;11787:3;11772:19;;11560:237::o;11802:401::-;12004:2;11986:21;;;12043:2;12023:18;;;12016:30;12082:34;12077:2;12062:18;;12055:62;-1:-1:-1;;;12148:2:1;12133:18;;12126:35;12193:3;12178:19;;11976:227::o;12208:400::-;12410:2;12392:21;;;12449:2;12429:18;;;12422:30;12488:34;12483:2;12468:18;;12461:62;-1:-1:-1;;;12554:2:1;12539:18;;12532:34;12598:3;12583:19;;12382:226::o;12613:341::-;12815:2;12797:21;;;12854:2;12834:18;;;12827:30;-1:-1:-1;;;12888:2:1;12873:18;;12866:47;12945:2;12930:18;;12787:167::o;12959:177::-;13105:25;;;13093:2;13078:18;;13060:76::o;13141:596::-;;13448:6;13437:9;13430:25;13491:6;13486:2;13475:9;13471:18;13464:34;13534:3;13529:2;13518:9;13514:18;13507:31;13555:63;13613:3;13602:9;13598:19;13590:6;13555:63;:::i;:::-;-1:-1:-1;;;;;13654:32:1;;;;13649:2;13634:18;;13627:60;-1:-1:-1;13718:3:1;13703:19;13696:35;13547:71;13420:317;-1:-1:-1;;;13420:317:1:o;14335:319::-;14537:25;;;14593:2;14578:18;;14571:34;;;;14636:2;14621:18;;14614:34;14525:2;14510:18;;14492:162::o;14659:128::-;;14730:1;14726:6;14723:1;14720:13;14717:2;;;14736:18;;:::i;:::-;-1:-1:-1;14772:9:1;;14707:80::o;14792:217::-;;14858:1;14848:2;;-1:-1:-1;;;14883:31:1;;14937:4;14934:1;14927:15;14965:4;14890:1;14955:15;14848:2;-1:-1:-1;14994:9:1;;14838:171::o;15014:168::-;;15120:1;15116;15112:6;15108:14;15105:1;15102:21;15097:1;15090:9;15083:17;15079:45;15076:2;;;15127:18;;:::i;:::-;-1:-1:-1;15167:9:1;;15066:116::o;15187:125::-;;15255:1;15252;15249:8;15246:2;;;15260:18;;:::i;:::-;-1:-1:-1;15297:9:1;;15236:76::o;15317:380::-;15402:1;15392:12;;15449:1;15439:12;;;15460:2;;15514:4;15506:6;15502:17;15492:27;;15460:2;15567;15559:6;15556:14;15536:18;15533:38;15530:2;;;15613:10;15608:3;15604:20;15601:1;15594:31;15648:4;15645:1;15638:15;15676:4;15673:1;15666:15;15530:2;;15372:325;;;:::o;15702:135::-;;-1:-1:-1;;15762:17:1;;15759:2;;;15782:18;;:::i;:::-;-1:-1:-1;15829:1:1;15818:13;;15749:88::o;15842:127::-;15903:10;15898:3;15894:20;15891:1;15884:31;15934:4;15931:1;15924:15;15958:4;15955:1;15948:15;15974:133;-1:-1:-1;;;;;16051:31:1;;16041:42;;16031:2;;16097:1;16094;16087:12;16112:120;16200:5;16193:13;16186:21;16179:5;16176:32;16166:2;;16222:1;16219;16212:12

Swarm Source

ipfs://aaf3209b77763e4da956adb25f881d7ea2d1487354b680baaab8e2f35097d008
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.