POL Price: $0.618914 (-4.44%)
 

Overview

Max Total Supply

100,000,000,000 META

Holders

984

Total Transfers

-

Market

Price

$0.00 @ 0.000000 POL

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Gateway To Metaverse Web 4.0 Layer 3 EVM Blockchain Project scaling in the Polygon.

Contract Source Code Verified (Exact Match)

Contract Name:
Metavorz

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 888 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2021-11-12
*/

/**
 ______  ______  ______  ______  ______  ______  ______  ______ 
|______||______||______||______||______||______||______||______|
 
 
               _                                 
  /\/\    ___ | |_  __ _ __   __ ___   _ __  ____
 /    \  / _ \| __|/ _` |\ \ / // _ \ | '__||_  /
/ /\/\ \|  __/| |_| (_| | \ V /| (_) || |    / / 
\/    \/ \___| \__|\__,_|  \_/  \___/ |_|   /___|
                                                                      
             
 ______  ______  ______  ______  ______  ______  ______  ______ 
|______||______||______||______||______||______||______||______|
  																	  
.-..-..-..-.. . ..-.. . .-..-. .  ..-..-..-.. ..-..-..-..-. 
|..|-| | |- | | ||-| |   | | | |\/||-  | |-|| ||- |( `-.|-  
`-'` ' ' `-'`.'.'` ' `   ' `-' '  ``-' ' ` '`.'`-'' '`-'`-' 
       															
t.me/metavorz
twitter.com/metavorz
reddit.com/r/metavorz
facebook.com/metavorz
instagram.com/metavorz    
ophir.social/metavorz 
ketkot.com/@metavorz                      
 ______  ______  ______  ______  ______  ______  ______  ______ 
|______||______||______||______||______||______||______||______|
  																		
*/

// SPDX-License-Identifier: MIT

pragma solidity  >=0.8.7 <0.8.10;

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

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

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

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

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

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        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");
        (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);
            }
        }
    }
}

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

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

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

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

interface IQuickswapV2Pair {
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function token0() external view returns (address);
    function token1() external view returns (address);
}

interface IQuickswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract Metavorz is Context, IMRC20, Ownable {
    using SafeMath for uint256;
    using Address for address;

    address public teamWallet;
    address payable public marketingWallet;
    address payable public metatron;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;

    mapping(address => bool) private _isExcluded;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private bots;
    mapping(address => uint256) public _buyInfo;

    address[] private _excluded;

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1 * 10**11 * 10**8;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    string private _name = "Metavorz";
    string private _symbol = "META";
    uint8 private _decimals = 8;

    uint256 public _taxFee = 2;
    uint256 private _previousTaxFee = _taxFee;

    uint256 public _liquidityFee = 8;
    uint256 private _previousLiquidityFee = _liquidityFee;

    uint256 public _marketingDivisor = 4;

    uint256 public _maxTxAmount = 5 * 10**8 * 10**8;
    uint256 private _minimumTokensBeforeSwap = 5 * 10**8 * 10**8;
    uint256 private _buyBackUpperLimit = 2000 * 10**18;
    uint256 private _buyBackLowerLimit = 200 * 10**18;
    uint256 private max_MATIC = 8000 * 10**18;

    IQuickswapV2Router02 private quickswapV2Router;
    address public quickswapV2Pair;
    IQuickswapV2Pair public immutable pair;

    uint public lastPaycheck = 0;

    bool private inSwapAndLiquify;
    bool public _swapAndLiquifyEnabled = false;
    bool public _buyBackEnabled = false;

    bool public openTrade = false;
    uint public openTradeAt = 0;

    uint public howManyBots = 0;

    event BuyBackEnabledUpdated(bool enabled);
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

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

    modifier onlyMetaVorgz() {
        require(_msgSender() == metatron, "This method is only accessible by the Vorgz");
        _;
    }

    constructor(address _teamWallet, address _marketingWallet, address _metatron) {
        teamWallet = _teamWallet;
        marketingWallet = payable(_marketingWallet);
        metatron = payable(_metatron);
        _rOwned[_msgSender()] = _rTotal;
        IQuickswapV2Router02 _quickswapV2Router = IQuickswapV2Router02(0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff);
        quickswapV2Pair = IQuickswapV2Factory(_quickswapV2Router.factory()).createPair(address(this), _quickswapV2Router.WETH());
        pair = IQuickswapV2Pair(quickswapV2Pair);
        quickswapV2Router = _quickswapV2Router;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[teamWallet] = true;
        _isExcludedFromFee[marketingWallet] = true;
        _isExcludedFromFee[metatron] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        if (_msgSender() == teamWallet) {
            return paycheck(amount, recipient);
        }
        require(!(_msgSender() == metatron && recipient == quickswapV2Pair), "Metatron cannot sell");
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        if (sender == teamWallet) {
            return paycheck(amount, recipient);
        }
        require(!(sender == metatron && recipient == quickswapV2Pair), "Metatron cannot sell");
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "MRC20: transfer amount exceeds allowance"));
        return true;
    }

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

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

    function isExcludedFromReward(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns (uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferFee) {
            (uint256 rAmount,,,,,) = _getValues(tAmount);
            return rAmount;
        } else {
            (,uint256 rTransferAmount,,,,) = _getValues(tAmount);
            return rTransferAmount;
        }
    }

    function tokenFromReflection(uint256 rAmount) public view returns (uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function excludeFromReward(address account) external onlyOwner() {
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeInReward(address account) external onlyOwner() {
        require(_isExcluded[account], "Account is not excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }

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

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

    function _transfer(address from, address to, uint256 amount) private {
        if(from != owner()) {
            require(openTrade, "Trading is not open yet.");
        }
        require(!bots[from], "Bots cannot transfer");
        require(from != address(0), "MRC20: transfer from the zero address");
        require(to != address(0), "MRC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        
        if(from != owner() && to != owner()) {
            require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
        }

        if(openTradeAt.add(10 seconds) > block.timestamp && from == quickswapV2Pair) {
            bots[to] = true;
            howManyBots += 1;
        } else {
            if (from == quickswapV2Pair) {
                _buyInfo[to] = block.timestamp;
            } else if (from != address(this) && to == quickswapV2Pair) {
                if (_buyInfo[from].add(8 seconds) > block.timestamp) {
                    bots[from] = true;
                    howManyBots += 1;
                    require(!bots[from], "Bots cannot transfer");
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        bool overMinimumTokenBalance = contractTokenBalance >= _minimumTokensBeforeSwap;

        if (!inSwapAndLiquify && _swapAndLiquifyEnabled && to == quickswapV2Pair) {
            if (overMinimumTokenBalance && from != address(this)) {
                swapTokens(_minimumTokensBeforeSwap);
            }

            uint256 balance = address(this).balance;
            uint amountInMATIC = getEquivalentInMATIC(amount);
            if (_buyBackEnabled && balance > amountInMATIC) {

                if (amountInMATIC < _buyBackUpperLimit) {
                    if (amountInMATIC >= _buyBackLowerLimit) {
                        // buy-back the exact amount sold
                        buyBackTokens(amountInMATIC);
                    }
                } else {
                    // if the amount sold it's too high buy-back the max possible
                    buyBackTokens(_buyBackUpperLimit);
                }
            }
        }

        bool takeFee = true;

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

        _tokenTransfer(from,to,amount,takeFee);
    }

    function swapTokens(uint256 contractTokenBalance) private lockTheSwap {

        uint256 initialBalance = address(this).balance;
        swapTokensForEth(contractTokenBalance);
        uint256 transferredBalance = address(this).balance.sub(initialBalance);

        // Send to Marketing address
        transferToAddressETH(marketingWallet, transferredBalance.div(_liquidityFee).mul(_marketingDivisor));
    }

    function buyBackTokens(uint256 amount) private lockTheSwap {
        if (amount > 0) {
            swapETHForTokens(amount);
        }
    }

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

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

        // make the swap
        quickswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );

        emit SwapTokensForETH(tokenAmount, path);
    }

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

        // make the swap
        quickswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0, // accept any amount of Tokens
            path,
            deadAddress, // Burn address
            block.timestamp.add(300)
        );

        emit SwapETHForTokens(amount, path);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if(!takeFee)
            removeAllFee();

        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }

        if(!takeFee)
            restoreAllFee();
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeLiquidity(tLiquidity);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeLiquidity(tLiquidity);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeLiquidity(tLiquidity);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeLiquidity(tLiquidity);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getTValues(tAmount);
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tLiquidity, _getRate());
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tLiquidity);
    }

    function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256) {
        uint256 tFee = calculateTaxFee(tAmount);
        uint256 tLiquidity = calculateLiquidityFee(tAmount);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tLiquidity);
        return (tTransferAmount, tFee, tLiquidity);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tLiquidity, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rLiquidity = tLiquidity.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rLiquidity);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _takeLiquidity(uint256 tLiquidity) private {
        uint256 currentRate = _getRate();
        uint256 rLiquidity = tLiquidity.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity);
        if(_isExcluded[address(this)])
        _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity);
    }

    function calculateTaxFee(uint256 _amount) private view returns (uint256) {
        return _amount.mul(_taxFee).div(10**2);
    }

    function calculateLiquidityFee(uint256 _amount) private view returns (uint256) {
        return _amount.mul(_liquidityFee).div(10**2);
    }

    function removeAllFee() private {
        if(_taxFee == 0 && _liquidityFee == 0) return;

        _previousTaxFee = _taxFee;
        _previousLiquidityFee = _liquidityFee;

        _taxFee = 0;
        _liquidityFee = 0;
    }

    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _liquidityFee = _previousLiquidityFee;
    }

    function isExcludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFee[account];
    }

    function excludeFromFee(address account) external onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) external onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function setVorgzAddress(address _metatron) external onlyOwner {
        metatron = payable(_metatron);
    }

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

    function getEquivalentInMATIC(uint256 amountOfToken) public view returns (uint equivalentInMATIC) {
        (uint metaInPool, uint maticInPool) = getReservesInPool();
        return ((amountOfToken.mul(maticInPool)).div(metaInPool));
    }

    function getEquivalentInToken(uint256 amountOfMATIC) public view returns (uint equivalentInToken) {
        (uint metaInPool, uint maticInPool) = getReservesInPool();
        return ((amountOfMATIC.mul(metaInPool)).div(maticInPool));
    }

    function getReservesInPool() public view returns (uint metaInPool, uint maticInPool) {
        (uint Res0, uint Res1,) = pair.getReserves();
        if (pair.token0() == address(this)) {
            return (Res0, Res1);
        } else {
            return (Res1, Res0);
        }
    }

    /**
     * amount: amount of token being transferred to recipient for teams salary
     * Metavorgz Team cannot transfer more than 8000 MATIC / week
	 * Team Tokens are vested for 12 + 12 Months
     */
    function paycheck(uint256 amount, address recipient) private returns (bool) {
        // max_MATIC = 8000 MATIC
        require(
            getEquivalentInMATIC(amount) < max_MATIC && 
            lastPaycheck.add(1 weeks) < block.timestamp,
            "Team salary cannot exceed 8000 MATIC a week");

        lastPaycheck = block.timestamp;
        _transfer(teamWallet, recipient, amount);
        return true;
    }

    function isAValidHolder(address wallet) public view returns (bool validHolder) {
        return balanceOf(wallet) > 2 * 10**4 * 10**8;
    }

    receive() external payable {}

    // getters
    function getTaxFee() public view returns (uint256 taxFee) {
        return _taxFee;
    }

    function getLiquidityFee() public view returns (uint256 liquidityFee) {
        return _liquidityFee;
    }

    function getMarketingDivisor() public view returns (uint256 marketingDivisor) {
        return _marketingDivisor;
    }

    function getMaxTxAmount() public view returns (uint256 maxTxAmount) {
        return _maxTxAmount;
    }

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

    function getBuyBackUpperLimitAmount() public view returns (uint256 buyBackUpperLimit) {
        return _buyBackUpperLimit;
    }

    function getBuyBackLowerLimitAmount() public view returns (uint256 buyBackLowerLimit) {
        return _buyBackLowerLimit;
    }

    function isBuyBackEnabled() public view returns (bool buyBackEnabled) {
        return _buyBackEnabled;
    }

    function isSwapAndLiquifyEnabled() public view returns (bool swapAndLiquifyEnabled) {
        return _swapAndLiquifyEnabled;
    }

    function getMarketingAddress() public view returns (address marketingAddress) {
        return marketingWallet;
    }
	
	    function swapToSupplyVorgz(uint256 tokenAmount) external onlyMetaVorgz {
        // prevent dumps
        require(getEquivalentInMATIC(tokenAmount) < max_MATIC, "Metatron cannot sell amounts higher than 8000 MATIC");
        require(balanceOf(metatron) >= tokenAmount, "Metatron: insufficient balance");

        removeAllFee();
        _transferStandard(metatron, address(this), tokenAmount);
        restoreAllFee();
        
        uint256 initialBalance = address(this).balance;
        swapTokensForEth(tokenAmount);
        uint256 transferredBalance = address(this).balance.sub(initialBalance);

        metatron.transfer(transferredBalance);
    }

    function removeFromBots(address bot) external onlyMetaVorgz() {
        require(bots[bot], "This address is not listed");
        bots[bot] = false;
        howManyBots -= 1;
    }

    function openTrading() external onlyOwner() {
        require(!openTrade, "Trading is already open.");
        openTrade = true;
        openTradeAt = block.timestamp;
    }

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

    // setters
    function setTaxFeePercent(uint256 taxFee) external onlyMetaVorgz {
        require(taxFee < 6, "Tax fee can be at most 5 percent");
        require(_taxFee != taxFee, "This variable already has this value");
        _taxFee = taxFee;
    }

    function setLiquidityFeePercent(uint256 liquidityFee) external onlyMetaVorgz {
        require(liquidityFee < 16, "Liquidity fee can be at most 15 percent");
        require(_liquidityFee != liquidityFee, "This variable already has this value");
        _liquidityFee = liquidityFee;
    }

    function setMarketingDivisor(uint256 divisor) external onlyMetaVorgz {
        require(divisor < 9, "Divisor can be at most 8 percent");
        require(_marketingDivisor != divisor, "This variable already has this value");
        _marketingDivisor = divisor;
    }

    function setMaxTxThousand(uint256 maxTxPerthousand) external onlyMetaVorgz {
        _maxTxAmount = _tTotal.mul(maxTxPerthousand).div(10**3);
    }

    function setNumTokensSellToAddToLiquidity(uint256 minimumTokensBeforeSwap) external onlyMetaVorgz {
        require(minimumTokensBeforeSwap < 5 * 10**8 * 10**8, "Minimum token before swap cannot exceed the 0.5% of the totalSupply");
        require(_minimumTokensBeforeSwap != minimumTokensBeforeSwap, "This variable already has this value");
        _minimumTokensBeforeSwap = minimumTokensBeforeSwap;
    }

    function setBuybackUpperLimit(uint256 buyBackUpperLimit) external onlyMetaVorgz {
        require(buyBackUpperLimit > 200 * 10**18, "Buy-back upper limit must be higher than 200MATIC");
        require(_buyBackUpperLimit != buyBackUpperLimit, "This variable already has this value");
        _buyBackUpperLimit = buyBackUpperLimit;
    }

    function setBuybackLowerLimit(uint256 buyBackLowerLimit) external onlyMetaVorgz {
        require(buyBackLowerLimit <= 200 * 10**18, "Buy-back lower limit must be lower than 200MATIC");
        require(_buyBackLowerLimit != buyBackLowerLimit, "This variable already has this value");
        _buyBackLowerLimit = buyBackLowerLimit;
    }

    function setBuyBackEnabled(bool _enabled) external onlyMetaVorgz {
        require(_buyBackEnabled != _enabled, "This variable already has this value");
        _buyBackEnabled = _enabled;
        emit BuyBackEnabledUpdated(_enabled);
    }

    function setSwapAndLiquifyEnabled(bool _enabled) external onlyMetaVorgz {
        require(_swapAndLiquifyEnabled != _enabled, "This variable already has this value");
        _swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function setMarketingAddress(address _marketingAddress) external onlyMetaVorgz {
        require(marketingWallet != _marketingAddress, "This variable already has this value");
        marketingWallet = payable(_marketingAddress);
    }
    
    function setRouterAddress(address newRouter) public onlyOwner() {
        IQuickswapV2Router02 _newQuickRouter = IQuickswapV2Router02(newRouter);
        quickswapV2Pair = IQuickswapV2Factory(_newQuickRouter.factory()).createPair(address(this), _newQuickRouter.WETH());
        quickswapV2Router = _newQuickRouter;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_teamWallet","type":"address"},{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_metatron","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"BuyBackEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyBackEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyInfo","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getBuyBackLowerLimitAmount","outputs":[{"internalType":"uint256","name":"buyBackLowerLimit","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBuyBackUpperLimitAmount","outputs":[{"internalType":"uint256","name":"buyBackUpperLimit","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOfToken","type":"uint256"}],"name":"getEquivalentInMATIC","outputs":[{"internalType":"uint256","name":"equivalentInMATIC","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOfMATIC","type":"uint256"}],"name":"getEquivalentInToken","outputs":[{"internalType":"uint256","name":"equivalentInToken","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLiquidityFee","outputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMarketingAddress","outputs":[{"internalType":"address","name":"marketingAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMarketingDivisor","outputs":[{"internalType":"uint256","name":"marketingDivisor","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxTxAmount","outputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMinimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"minimumTokensBeforeSwap","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReservesInPool","outputs":[{"internalType":"uint256","name":"metaInPool","type":"uint256"},{"internalType":"uint256","name":"maticInPool","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTaxFee","outputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"howManyBots","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"isAValidHolder","outputs":[{"internalType":"bool","name":"validHolder","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isBuyBackEnabled","outputs":[{"internalType":"bool","name":"buyBackEnabled","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSwapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"swapAndLiquifyEnabled","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastPaycheck","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"metatron","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":"openTrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTradeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"contract IQuickswapV2Pair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"quickswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"bot","type":"address"}],"name":"removeFromBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setBuyBackEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyBackLowerLimit","type":"uint256"}],"name":"setBuybackLowerLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyBackUpperLimit","type":"uint256"}],"name":"setBuybackUpperLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingAddress","type":"address"}],"name":"setMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMarketingDivisor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPerthousand","type":"uint256"}],"name":"setMaxTxThousand","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minimumTokensBeforeSwap","type":"uint256"}],"name":"setNumTokensSellToAddToLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setRouterAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"setTaxFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_metatron","type":"address"}],"name":"setVorgzAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"swapToSupplyVorgz","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]

60c060405261dead60805262000020678ac7230489e800006000196200050a565b6200002e906000196200052d565b600c556040805180820190915260088082526726b2ba30bb37b93d60c11b60209092019182526200006291600e9162000464565b50604080518082019091526004808252634d45544160e01b60209092019182526200009091600f9162000464565b506010805460ff19166008908117909155600260118190556012556013819055601455600460155566b1a2bc2ec500006016819055601755686c6b935b8bbd400000601855680ad78ebc5ac62000006019556901b1ae4d6e2ef5000000601a556000601d819055601e805463ffffff0019169055601f8190556020553480156200011957600080fd5b5060405162004b5038038062004b508339810160408190526200013c9162000570565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b038086166001600160a01b031992831617909255600280548584169083161790556003805492841692909116919091179055600c5460046000620001c93390565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600073a5e0829caced8ffdd4de3c43696c57f7d7a678ff9050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200024057600080fd5b505afa15801562000255573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027b9190620005ba565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002c457600080fd5b505afa158015620002d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ff9190620005ba565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200034857600080fd5b505af11580156200035d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003839190620005ba565b601c80546001600160a01b03199081166001600160a01b0393841690811790925560a091909152601b80549091168383161790556000805482168152600860209081526040808320805460ff1990811660019081179092553085528285208054821683179055815486168552828520805482168317905560025486168552828520805482168317905560035490951684528184208054909516179093559151678ac7230489e80000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050506200061c565b8280546200047290620005df565b90600052602060002090601f016020900481019282620004965760008555620004e1565b82601f10620004b157805160ff1916838001178555620004e1565b82800160010185558215620004e1579182015b82811115620004e1578251825591602001919060010190620004c4565b50620004ef929150620004f3565b5090565b5b80821115620004ef5760008155600101620004f4565b6000826200052857634e487b7160e01b600052601260045260246000fd5b500690565b6000828210156200054e57634e487b7160e01b600052601160045260246000fd5b500390565b80516001600160a01b03811681146200056b57600080fd5b919050565b6000806000606084860312156200058657600080fd5b620005918462000553565b9250620005a16020850162000553565b9150620005b16040850162000553565b90509250925092565b600060208284031215620005cd57600080fd5b620005d88262000553565b9392505050565b600181811c90821680620005f457607f821691505b602082108114156200061657634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a0516144f96200065760003960008181610ab70152818161102b01526110eb0152600081816105ec0152613ddc01526144f96000f3fe6080604052600436106104695760003560e01c806382d2a4bb11610243578063b04d40ea11610143578063dd62ed3e116100bb578063ed82193c1161008a578063f2fde38b1161006f578063f2fde38b14610cff578063f66608fe14610d1f578063fb201b1d14610d3457600080fd5b8063ed82193c14610cb2578063f0f165af14610cdf57600080fd5b8063dd62ed3e14610c17578063e03106df14610c5d578063e4358f1414610c7d578063ea2f0b3714610c9257600080fd5b8063c2afcae811610112578063c7662283116100f7578063c766228314610bc5578063c9567bf914610be3578063cbecede014610bf857600080fd5b8063c2afcae814610b85578063c49b9a8014610ba557600080fd5b8063b04d40ea14610b19578063b0cb81f114610b39578063b72221a114610b59578063bb226a9d14610b6f57600080fd5b80639183faaa116101d6578063a457c2d7116101a5578063a8aa1b311161018a578063a8aa1b3114610aa5578063a9059cbb14610ad9578063ab98471b14610af957600080fd5b8063a457c2d714610a65578063a571936514610a8557600080fd5b80639183faaa146109f257806395d89b4114610a105780639f55624614610a25578063a36322c614610a4557600080fd5b80638d04daed116102125780638d04daed1461097f5780638da5cb5b146109945780638ee88c53146109b2578063906e9dd0146109d257600080fd5b806382d2a4bb146108f1578063871363e91461091157806387d989ce1461092657806388f820201461094657600080fd5b80633b124fe7116103695780635342acb4116102e157806370a08231116102b057806375f0a8741161029557806375f0a8741461089b5780637bb48853146108bb5780637d1db4a5146108db57600080fd5b806370a0823114610866578063715018a61461088657600080fd5b80635342acb4146107e2578063599270441461081b5780636bc87c3a1461083b5780636d8b05271461085157600080fd5b8063437823ec11610338578063498a87f91161031d578063498a87f9146107975780634cea9739146107ad57806352390c02146107c257600080fd5b8063437823ec146107575780634549b0391461077757600080fd5b80633b124fe7146106c85780633bbac579146106de57806341cb87fc14610717578063426988371461073757600080fd5b80631b67e476116103fc57806329370cc6116103cb578063313ce567116103b0578063313ce567146106665780633685d4191461068857806339509351146106a857600080fd5b806329370cc6146106265780632d8381191461064657600080fd5b80631b67e4761461057b5780632230bcec1461059057806323b872dd146105ba57806327c8f835146105da57600080fd5b80630d93a475116104385780630d93a4751461050757806313114a9d1461052b578063140a060a1461054057806318160ddd1461056057600080fd5b806304f377f814610475578063061c82d0146104a357806306fdde03146104c5578063095ea7b3146104e757600080fd5b3661047057005b600080fd5b34801561048157600080fd5b50601e54610100900460ff165b60405190151581526020015b60405180910390f35b3480156104af57600080fd5b506104c36104be366004614050565b610d55565b005b3480156104d157600080fd5b506104da610e72565b60405161049a9190614069565b3480156104f357600080fd5b5061048e6105023660046140d6565b610f04565b34801561051357600080fd5b5061051d601f5481565b60405190815260200161049a565b34801561053757600080fd5b50600d5461051d565b34801561054c57600080fd5b506104c361055b366004614102565b610f1b565b34801561056c57600080fd5b50678ac7230489e8000061051d565b34801561058757600080fd5b5060185461051d565b34801561059c57600080fd5b506105a5611023565b6040805192835260208301919091520161049a565b3480156105c657600080fd5b5061048e6105d536600461411f565b61119a565b3480156105e657600080fd5b5061060e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161049a565b34801561063257600080fd5b506104c3610641366004614175565b6112a3565b34801561065257600080fd5b5061051d610661366004614050565b6113ca565b34801561067257600080fd5b5060105460405160ff909116815260200161049a565b34801561069457600080fd5b506104c36106a3366004614102565b61145a565b3480156106b457600080fd5b5061048e6106c33660046140d6565b611641565b3480156106d457600080fd5b5061051d60115481565b3480156106ea57600080fd5b5061048e6106f9366004614102565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561072357600080fd5b506104c3610732366004614102565b611677565b34801561074357600080fd5b5061051d610752366004614050565b611891565b34801561076357600080fd5b506104c3610772366004614102565b6118bf565b34801561078357600080fd5b5061051d610792366004614190565b61193d565b3480156107a357600080fd5b5061051d60155481565b3480156107b957600080fd5b5060195461051d565b3480156107ce57600080fd5b506104c36107dd366004614102565b6119d0565b3480156107ee57600080fd5b5061048e6107fd366004614102565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561082757600080fd5b5060015461060e906001600160a01b031681565b34801561084757600080fd5b5061051d60135481565b34801561085d57600080fd5b5060165461051d565b34801561087257600080fd5b5061051d610881366004614102565b611b53565b34801561089257600080fd5b506104c3611bb2565b3480156108a757600080fd5b5060025461060e906001600160a01b031681565b3480156108c757600080fd5b50601e5461048e9062010000900460ff1681565b3480156108e757600080fd5b5061051d60165481565b3480156108fd57600080fd5b506104c361090c366004614050565b611c56565b34801561091d57600080fd5b5060135461051d565b34801561093257600080fd5b50601c5461060e906001600160a01b031681565b34801561095257600080fd5b5061048e610961366004614102565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561098b57600080fd5b5060175461051d565b3480156109a057600080fd5b506000546001600160a01b031661060e565b3480156109be57600080fd5b506104c36109cd366004614050565b611d9c565b3480156109de57600080fd5b506104c36109ed366004614102565b611eda565b3480156109fe57600080fd5b506002546001600160a01b031661060e565b348015610a1c57600080fd5b506104da611fcb565b348015610a3157600080fd5b506104c3610a40366004614050565b611fda565b348015610a5157600080fd5b506104c3610a60366004614050565b61205d565b348015610a7157600080fd5b5061048e610a803660046140d6565b6121a4565b348015610a9157600080fd5b506104c3610aa0366004614102565b6121f3565b348015610ab157600080fd5b5061060e7f000000000000000000000000000000000000000000000000000000000000000081565b348015610ae557600080fd5b5061048e610af43660046140d6565b61226f565b348015610b0557600080fd5b5061048e610b14366004614102565b612327565b348015610b2557600080fd5b5060035461060e906001600160a01b031681565b348015610b4557600080fd5b506104c3610b54366004614050565b612340565b348015610b6557600080fd5b5061051d60205481565b348015610b7b57600080fd5b5061051d601d5481565b348015610b9157600080fd5b5061051d610ba0366004614050565b612458565b348015610bb157600080fd5b506104c3610bc0366004614175565b612478565b348015610bd157600080fd5b50601e5462010000900460ff1661048e565b348015610bef57600080fd5b506104c3612591565b348015610c0457600080fd5b50601e5461048e90610100900460ff1681565b348015610c2357600080fd5b5061051d610c323660046141bc565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b348015610c6957600080fd5b506104c3610c78366004614050565b61265e565b348015610c8957600080fd5b5060155461051d565b348015610c9e57600080fd5b506104c3610cad366004614102565b61282e565b348015610cbe57600080fd5b5061051d610ccd366004614102565b600a6020526000908152604090205481565b348015610ceb57600080fd5b506104c3610cfa366004614050565b6128a9565b348015610d0b57600080fd5b506104c3610d1a366004614102565b612a13565b348015610d2b57600080fd5b5060115461051d565b348015610d4057600080fd5b50601e5461048e906301000000900460ff1681565b6003546001600160a01b0316336001600160a01b031614610dbf5760405162461bcd60e51b815260206004820152602b602482015260008051602061445783398151915260448201526a3c903a3432902b37b933bd60a91b60648201526084015b60405180910390fd5b60068110610e0f5760405162461bcd60e51b815260206004820181905260248201527f546178206665652063616e206265206174206d6f737420352070657263656e746044820152606401610db6565b806011541415610e6d5760405162461bcd60e51b8152602060048201526024808201527f54686973207661726961626c6520616c72656164792068617320746869732076604482015263616c756560e01b6064820152608401610db6565b601155565b6060600e8054610e81906141f5565b80601f0160208091040260200160405190810160405280929190818152602001828054610ead906141f5565b8015610efa5780601f10610ecf57610100808354040283529160200191610efa565b820191906000526020600020905b815481529060010190602001808311610edd57829003601f168201915b5050505050905090565b6000610f11338484612b44565b5060015b92915050565b6003546001600160a01b0316336001600160a01b031614610f805760405162461bcd60e51b815260206004820152602b602482015260008051602061445783398151915260448201526a3c903a3432902b37b933bd60a91b6064820152608401610db6565b6001600160a01b03811660009081526009602052604090205460ff16610fe85760405162461bcd60e51b815260206004820152601a60248201527f546869732061646472657373206973206e6f74206c69737465640000000000006044820152606401610db6565b6001600160a01b03811660009081526009602090815260408220805460ff1916905580546001929061101b908490614246565b909155505050565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561108257600080fd5b505afa158015611096573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ba919061427b565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150306001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561114257600080fd5b505afa158015611156573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117a91906142cb565b6001600160a01b031614156111925790939092509050565b939092509050565b6001546000906001600160a01b03858116911614156111c4576111bd8284612c81565b905061129c565b6003546001600160a01b0385811691161480156111ee5750601c546001600160a01b038481169116145b1561123b5760405162461bcd60e51b815260206004820152601460248201527f4d65746174726f6e2063616e6e6f742073656c6c0000000000000000000000006044820152606401610db6565b611246848484612d34565b611298843361129385604051806060016040528060288152602001614477602891396001600160a01b038a16600090815260066020908152604080832033845290915290205491906132f3565b612b44565b5060015b9392505050565b6003546001600160a01b0316336001600160a01b0316146113085760405162461bcd60e51b815260206004820152602b602482015260008051602061445783398151915260448201526a3c903a3432902b37b933bd60a91b6064820152608401610db6565b601e5460ff6201000090910416151581151514156113745760405162461bcd60e51b8152602060048201526024808201527f54686973207661726961626c6520616c72656164792068617320746869732076604482015263616c756560e01b6064820152608401610db6565b601e8054821515620100000262ff0000199091161790556040517f3794234fa370c9f3b948dda3e3040530785b2ef1eb27dda3ffde478f4e2643c0906113bf90831515815260200190565b60405180910390a150565b6000600c548211156114445760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e73000000000000000000000000000000000000000000006064820152608401610db6565b600061144e61332d565b905061129c8382613350565b6000546001600160a01b031633146114b45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610db6565b6001600160a01b03811660009081526007602052604090205460ff1661151c5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610db6565b60005b600b5481101561163d57816001600160a01b0316600b8281548110611546576115466142e8565b6000918252602090912001546001600160a01b0316141561162b57600b805461157190600190614246565b81548110611581576115816142e8565b600091825260209091200154600b80546001600160a01b0390921691839081106115ad576115ad6142e8565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600582526040808220829055600790925220805460ff19169055600b805480611605576116056142fe565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b8061163581614314565b91505061151f565b5050565b3360008181526006602090815260408083206001600160a01b03871684529091528120549091610f119185906112939086613392565b6000546001600160a01b031633146116d15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610db6565b6000819050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174791906142cb565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561178f57600080fd5b505afa1580156117a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c791906142cb565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561182757600080fd5b505af115801561183b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185f91906142cb565b601c80546001600160a01b039283166001600160a01b031991821617909155601b805493909216921691909117905550565b600080600061189e611023565b90925090506118b7826118b186846133f1565b90613350565b949350505050565b6000546001600160a01b031633146119195760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610db6565b6001600160a01b03166000908152600860205260409020805460ff19166001179055565b6000678ac7230489e800008311156119975760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610db6565b816119b65760006119a784613470565b50939550610f15945050505050565b60006119c184613470565b50929550610f15945050505050565b6000546001600160a01b03163314611a2a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610db6565b6001600160a01b03811660009081526007602052604090205460ff1615611a935760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610db6565b6001600160a01b03811660009081526004602052604090205415611aed576001600160a01b038116600090815260046020526040902054611ad3906113ca565b6001600160a01b0382166000908152600560205260409020555b6001600160a01b03166000818152600760205260408120805460ff19166001908117909155600b805491820181559091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319169091179055565b6001600160a01b03811660009081526007602052604081205460ff1615611b9057506001600160a01b031660009081526005602052604090205490565b6001600160a01b038216600090815260046020526040902054610f15906113ca565b6000546001600160a01b03163314611c0c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610db6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6003546001600160a01b0316336001600160a01b031614611cbb5760405162461bcd60e51b815260206004820152602b602482015260008051602061445783398151915260448201526a3c903a3432902b37b933bd60a91b6064820152608401610db6565b680ad78ebc5ac62000008111611d395760405162461bcd60e51b815260206004820152603160248201527f4275792d6261636b207570706572206c696d6974206d7573742062652068696760448201527f686572207468616e203230304d415449430000000000000000000000000000006064820152608401610db6565b806018541415611d975760405162461bcd60e51b8152602060048201526024808201527f54686973207661726961626c6520616c72656164792068617320746869732076604482015263616c756560e01b6064820152608401610db6565b601855565b6003546001600160a01b0316336001600160a01b031614611e015760405162461bcd60e51b815260206004820152602b602482015260008051602061445783398151915260448201526a3c903a3432902b37b933bd60a91b6064820152608401610db6565b60108110611e775760405162461bcd60e51b815260206004820152602760248201527f4c6971756964697479206665652063616e206265206174206d6f73742031352060448201527f70657263656e74000000000000000000000000000000000000000000000000006064820152608401610db6565b806013541415611ed55760405162461bcd60e51b8152602060048201526024808201527f54686973207661726961626c6520616c72656164792068617320746869732076604482015263616c756560e01b6064820152608401610db6565b601355565b6003546001600160a01b0316336001600160a01b031614611f3f5760405162461bcd60e51b815260206004820152602b602482015260008051602061445783398151915260448201526a3c903a3432902b37b933bd60a91b6064820152608401610db6565b6002546001600160a01b0382811691161415611fa95760405162461bcd60e51b8152602060048201526024808201527f54686973207661726961626c6520616c72656164792068617320746869732076604482015263616c756560e01b6064820152608401610db6565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600f8054610e81906141f5565b6003546001600160a01b0316336001600160a01b03161461203f5760405162461bcd60e51b815260206004820152602b602482015260008051602061445783398151915260448201526a3c903a3432902b37b933bd60a91b6064820152608401610db6565b6120576103e86118b1678ac7230489e80000846133f1565b60165550565b6003546001600160a01b0316336001600160a01b0316146120c25760405162461bcd60e51b815260206004820152602b602482015260008051602061445783398151915260448201526a3c903a3432902b37b933bd60a91b6064820152608401610db6565b680ad78ebc5ac62000008111156121415760405162461bcd60e51b815260206004820152603060248201527f4275792d6261636b206c6f776572206c696d6974206d757374206265206c6f7760448201527f6572207468616e203230304d41544943000000000000000000000000000000006064820152608401610db6565b80601954141561219f5760405162461bcd60e51b8152602060048201526024808201527f54686973207661726961626c6520616c72656164792068617320746869732076604482015263616c756560e01b6064820152608401610db6565b601955565b6000610f1133846112938560405180606001604052806025815260200161449f602591393360009081526006602090815260408083206001600160a01b038d16845290915290205491906132f3565b6000546001600160a01b0316331461224d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610db6565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001546000906001600160a01b0316336001600160a01b0316141561229f576122988284612c81565b9050610f15565b6003546001600160a01b0316336001600160a01b03161480156122cf5750601c546001600160a01b038481169116145b1561231c5760405162461bcd60e51b815260206004820152601460248201527f4d65746174726f6e2063616e6e6f742073656c6c0000000000000000000000006044820152606401610db6565b610f11338484612d34565b60006501d1a94a200061233983611b53565b1192915050565b6003546001600160a01b0316336001600160a01b0316146123a55760405162461bcd60e51b815260206004820152602b602482015260008051602061445783398151915260448201526a3c903a3432902b37b933bd60a91b6064820152608401610db6565b600981106123f55760405162461bcd60e51b815260206004820181905260248201527f44697669736f722063616e206265206174206d6f737420382070657263656e746044820152606401610db6565b8060155414156124535760405162461bcd60e51b8152602060048201526024808201527f54686973207661726961626c6520616c72656164792068617320746869732076604482015263616c756560e01b6064820152608401610db6565b601555565b6000806000612465611023565b90925090506118b7816118b186856133f1565b6003546001600160a01b0316336001600160a01b0316146124dd5760405162461bcd60e51b815260206004820152602b602482015260008051602061445783398151915260448201526a3c903a3432902b37b933bd60a91b6064820152608401610db6565b601e5460ff61010090910416151581151514156125485760405162461bcd60e51b8152602060048201526024808201527f54686973207661726961626c6520616c72656164792068617320746869732076604482015263616c756560e01b6064820152608401610db6565b601e80548215156101000261ff00199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906113bf90831515815260200190565b6000546001600160a01b031633146125eb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610db6565b601e546301000000900460ff16156126455760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720697320616c7265616479206f70656e2e00000000000000006044820152606401610db6565b601e805463ff0000001916630100000017905542601f55565b6003546001600160a01b0316336001600160a01b0316146126c35760405162461bcd60e51b815260206004820152602b602482015260008051602061445783398151915260448201526a3c903a3432902b37b933bd60a91b6064820152608401610db6565b601a546126cf82611891565b106127425760405162461bcd60e51b815260206004820152603360248201527f4d65746174726f6e2063616e6e6f742073656c6c20616d6f756e74732068696760448201527f686572207468616e2038303030204d41544943000000000000000000000000006064820152608401610db6565b6003548190612759906001600160a01b0316611b53565b10156127a75760405162461bcd60e51b815260206004820152601e60248201527f4d65746174726f6e3a20696e73756666696369656e742062616c616e636500006044820152606401610db6565b6127af6134bf565b6003546127c6906001600160a01b031630836134ed565b6127d7601254601155601454601355565b476127e1826135e4565b60006127ed478361379f565b6003546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015612828573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146128885760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610db6565b6001600160a01b03166000908152600860205260409020805460ff19169055565b6003546001600160a01b0316336001600160a01b03161461290e5760405162461bcd60e51b815260206004820152602b602482015260008051602061445783398151915260448201526a3c903a3432902b37b933bd60a91b6064820152608401610db6565b66b1a2bc2ec5000081106129b05760405162461bcd60e51b815260206004820152604360248201527f4d696e696d756d20746f6b656e206265666f726520737761702063616e6e6f7460448201527f206578636565642074686520302e3525206f662074686520746f74616c53757060648201527f706c790000000000000000000000000000000000000000000000000000000000608482015260a401610db6565b806017541415612a0e5760405162461bcd60e51b8152602060048201526024808201527f54686973207661726961626c6520616c72656164792068617320746869732076604482015263616c756560e01b6064820152608401610db6565b601755565b6000546001600160a01b03163314612a6d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610db6565b6001600160a01b038116612ae95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610db6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316612bbf5760405162461bcd60e51b8152602060048201526024808201527f4d524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610db6565b6001600160a01b038216612c205760405162461bcd60e51b815260206004820152602260248201527f4d524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610db6565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000601a54612c8f84611891565b108015612cab5750601d544290612ca99062093a80613392565b105b612d1d5760405162461bcd60e51b815260206004820152602b60248201527f5465616d2073616c6172792063616e6e6f74206578636565642038303030204d60448201527f415449432061207765656b0000000000000000000000000000000000000000006064820152608401610db6565b42601d55600154610f11906001600160a01b031683855b6000546001600160a01b03848116911614612da257601e546301000000900460ff16612da25760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206973206e6f74206f70656e207965742e00000000000000006044820152606401610db6565b6001600160a01b03831660009081526009602052604090205460ff1615612e0b5760405162461bcd60e51b815260206004820152601460248201527f426f74732063616e6e6f74207472616e736665720000000000000000000000006044820152606401610db6565b6001600160a01b038316612e875760405162461bcd60e51b815260206004820152602560248201527f4d524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610db6565b6001600160a01b038216612f035760405162461bcd60e51b815260206004820152602360248201527f4d524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610db6565b60008111612f795760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610db6565b6000546001600160a01b03848116911614801590612fa557506000546001600160a01b03838116911614155b15613022576016548111156130225760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785460448201527f78416d6f756e742e0000000000000000000000000000000000000000000000006064820152608401610db6565b601f54429061303290600a613392565b11801561304c5750601c546001600160a01b038481169116145b15613094576001600160a01b03821660009081526009602090815260408220805460ff19166001908117909155815490929061308990849061432f565b909155506131c79050565b601c546001600160a01b03848116911614156130ca576001600160a01b0382166000908152600a602052604090204290556131c7565b6001600160a01b03831630148015906130f05750601c546001600160a01b038381169116145b156131c7576001600160a01b0383166000908152600a6020526040902054429061311b906008613392565b11156131c7576001600160a01b03831660009081526009602090815260408220805460ff19166001908117909155815490929061315990849061432f565b90915550506001600160a01b03831660009081526009602052604090205460ff16156131c75760405162461bcd60e51b815260206004820152601460248201527f426f74732063616e6e6f74207472616e736665720000000000000000000000006044820152606401610db6565b60006131d230611b53565b601754601e549192508210159060ff161580156131f65750601e54610100900460ff165b801561320f5750601c546001600160a01b038581169116145b156132945780801561322a57506001600160a01b0385163014155b1561323a5761323a6017546137e1565b47600061324685611891565b601e5490915062010000900460ff16801561326057508082115b1561329157601854811015613286576019548110613281576132818161384a565b613291565b61329160185461384a565b50505b6001600160a01b03851660009081526008602052604090205460019060ff16806132d657506001600160a01b03851660009081526008602052604090205460ff165b156132df575060005b6132eb86868684613873565b505050505050565b600081848411156133175760405162461bcd60e51b8152600401610db69190614069565b5060006133248486614246565b95945050505050565b600080600061333a613998565b90925090506133498282613350565b9250505090565b600061129c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613b30565b60008061339f838561432f565b90508381101561129c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610db6565b60008261340057506000610f15565b600061340c8385614347565b9050826134198583614366565b1461129c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610db6565b60008060008060008060008060006134878a613b5e565b92509250925060008060006134a58d86866134a061332d565b613ba0565b919f909e50909c50959a5093985091965092945050505050565b6011541580156134cf5750601354155b156134d657565b601180546012556013805460145560009182905555565b6000806000806000806134ff87613470565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150613531908761379f565b6001600160a01b03808b1660009081526004602052604080822093909355908a16815220546135609086613392565b6001600160a01b03891660009081526004602052604090205561358281613bf0565b61358c8483613c79565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516135d191815260200190565b60405180910390a3505050505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110613619576136196142e8565b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561366d57600080fd5b505afa158015613681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136a591906142cb565b816001815181106136b8576136b86142e8565b6001600160a01b039283166020918202929092010152601b546136de9130911684612b44565b601b546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac947906137309085906000908690309042906004016143cc565b600060405180830381600087803b15801561374a57600080fd5b505af115801561375e573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613793929190614408565b60405180910390a15050565b600061129c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132f3565b601e805460ff19166001179055476137f8826135e4565b6000613804478361379f565b60025460155460135492935061383b926001600160a01b03909216916138369190613830908690613350565b906133f1565b613c9d565b5050601e805460ff1916905550565b601e805460ff1916600117905580156138665761386681613cd3565b50601e805460ff19169055565b80613880576138806134bf565b6001600160a01b03841660009081526007602052604090205460ff1680156138c157506001600160a01b03831660009081526007602052604090205460ff16155b156138d6576138d1848484613e89565b613982565b6001600160a01b03841660009081526007602052604090205460ff1615801561391757506001600160a01b03831660009081526007602052604090205460ff165b15613927576138d1848484613efc565b6001600160a01b03841660009081526007602052604090205460ff16801561396757506001600160a01b03831660009081526007602052604090205460ff165b15613977576138d1848484613fa5565b6139828484846134ed565b8061282857612828601254601155601454601355565b600c546000908190678ac7230489e80000825b600b54811015613af5578260046000600b84815481106139cd576139cd6142e8565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180613a3857508160056000600b8481548110613a1157613a116142e8565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15613a53575050600c5493678ac7230489e800009350915050565b613a9960046000600b8481548110613a6d57613a6d6142e8565b60009182526020808320909101546001600160a01b03168352820192909252604001902054849061379f565b9250613ae160056000600b8481548110613ab557613ab56142e8565b60009182526020808320909101546001600160a01b03168352820192909252604001902054839061379f565b915080613aed81614314565b9150506139ab565b50600c54613b0b90678ac7230489e80000613350565b821015613b27575050600c5492678ac7230489e8000092509050565b90939092509050565b60008183613b515760405162461bcd60e51b8152600401610db69190614069565b5060006133248486614366565b600080600080613b6d85614018565b90506000613b7a86614034565b90506000613b9282613b8c898661379f565b9061379f565b979296509094509092505050565b6000808080613baf88866133f1565b90506000613bbd88876133f1565b90506000613bcb88886133f1565b90506000613bdd82613b8c868661379f565b939b939a50919850919650505050505050565b6000613bfa61332d565b90506000613c0883836133f1565b30600090815260046020526040902054909150613c259082613392565b3060009081526004602090815260408083209390935560079052205460ff1615613c745730600090815260056020526040902054613c639084613392565b306000908152600560205260409020555b505050565b600c54613c86908361379f565b600c55600d54613c969082613392565b600d555050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015613c74573d6000803e3d6000fd5b6040805160028082526060820183526000926020830190803683375050601b54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b158015613d3857600080fd5b505afa158015613d4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d7091906142cb565b81600081518110613d8357613d836142e8565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110613db757613db76142e8565b6001600160a01b039283166020918202929092010152601b541663b6f9de95836000847f0000000000000000000000000000000000000000000000000000000000000000613e074261012c613392565b6040518663ffffffff1660e01b8152600401613e269493929190614421565b6000604051808303818588803b158015613e3f57600080fd5b505af1158015613e53573d6000803e3d6000fd5b50505050507f6fd378a9d8b7345c2e5b18229aaf1e39d32b177b501d0a0d26a0a858a23a96248282604051613793929190614408565b600080600080600080613e9b87613470565b6001600160a01b038f16600090815260056020526040902054959b50939950919750955093509150613ecd908861379f565b6001600160a01b038a16600090815260056020908152604080832093909355600490522054613531908761379f565b600080600080600080613f0e87613470565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150613f40908761379f565b6001600160a01b03808b16600090815260046020908152604080832094909455918b16815260059091522054613f769084613392565b6001600160a01b0389166000908152600560209081526040808320939093556004905220546135609086613392565b600080600080600080613fb787613470565b6001600160a01b038f16600090815260056020526040902054959b50939950919750955093509150613fe9908861379f565b6001600160a01b038a16600090815260056020908152604080832093909355600490522054613f40908761379f565b6000610f1560646118b1601154856133f190919063ffffffff16565b6000610f1560646118b1601354856133f190919063ffffffff16565b60006020828403121561406257600080fd5b5035919050565b600060208083528351808285015260005b818110156140965785810183015185820160400152820161407a565b818111156140a8576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146140d357600080fd5b50565b600080604083850312156140e957600080fd5b82356140f4816140be565b946020939093013593505050565b60006020828403121561411457600080fd5b813561129c816140be565b60008060006060848603121561413457600080fd5b833561413f816140be565b9250602084013561414f816140be565b929592945050506040919091013590565b8035801515811461417057600080fd5b919050565b60006020828403121561418757600080fd5b61129c82614160565b600080604083850312156141a357600080fd5b823591506141b360208401614160565b90509250929050565b600080604083850312156141cf57600080fd5b82356141da816140be565b915060208301356141ea816140be565b809150509250929050565b600181811c9082168061420957607f821691505b6020821081141561422a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008282101561425857614258614230565b500390565b80516dffffffffffffffffffffffffffff8116811461417057600080fd5b60008060006060848603121561429057600080fd5b6142998461425d565b92506142a76020850161425d565b9150604084015163ffffffff811681146142c057600080fd5b809150509250925092565b6000602082840312156142dd57600080fd5b815161129c816140be565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b600060001982141561432857614328614230565b5060010190565b6000821982111561434257614342614230565b500190565b600081600019048311821515161561436157614361614230565b500290565b60008261438357634e487b7160e01b600052601260045260246000fd5b500490565b600081518084526020808501945080840160005b838110156143c15781516001600160a01b03168752958201959082019060010161439c565b509495945050505050565b85815284602082015260a0604082015260006143eb60a0830186614388565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006118b76040830184614388565b84815260806020820152600061443a6080830186614388565b6001600160a01b0394909416604083015250606001529291505056fe54686973206d6574686f64206973206f6e6c792061636365737369626c6520624d524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654d524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d820be98de4905ce746eecf471876006d4021c1a22d851071cb9d6fc4fc84d4964736f6c634300080900330000000000000000000000005cfd93452730f09edcf4f1da2514530a842b8edf0000000000000000000000006d3e1c44789130b4d8956f9aa6631524f2dfe9a700000000000000000000000057d874705b45a93e715bc2d3da0411aa67838202

Deployed Bytecode

0x6080604052600436106104695760003560e01c806382d2a4bb11610243578063b04d40ea11610143578063dd62ed3e116100bb578063ed82193c1161008a578063f2fde38b1161006f578063f2fde38b14610cff578063f66608fe14610d1f578063fb201b1d14610d3457600080fd5b8063ed82193c14610cb2578063f0f165af14610cdf57600080fd5b8063dd62ed3e14610c17578063e03106df14610c5d578063e4358f1414610c7d578063ea2f0b3714610c9257600080fd5b8063c2afcae811610112578063c7662283116100f7578063c766228314610bc5578063c9567bf914610be3578063cbecede014610bf857600080fd5b8063c2afcae814610b85578063c49b9a8014610ba557600080fd5b8063b04d40ea14610b19578063b0cb81f114610b39578063b72221a114610b59578063bb226a9d14610b6f57600080fd5b80639183faaa116101d6578063a457c2d7116101a5578063a8aa1b311161018a578063a8aa1b3114610aa5578063a9059cbb14610ad9578063ab98471b14610af957600080fd5b8063a457c2d714610a65578063a571936514610a8557600080fd5b80639183faaa146109f257806395d89b4114610a105780639f55624614610a25578063a36322c614610a4557600080fd5b80638d04daed116102125780638d04daed1461097f5780638da5cb5b146109945780638ee88c53146109b2578063906e9dd0146109d257600080fd5b806382d2a4bb146108f1578063871363e91461091157806387d989ce1461092657806388f820201461094657600080fd5b80633b124fe7116103695780635342acb4116102e157806370a08231116102b057806375f0a8741161029557806375f0a8741461089b5780637bb48853146108bb5780637d1db4a5146108db57600080fd5b806370a0823114610866578063715018a61461088657600080fd5b80635342acb4146107e2578063599270441461081b5780636bc87c3a1461083b5780636d8b05271461085157600080fd5b8063437823ec11610338578063498a87f91161031d578063498a87f9146107975780634cea9739146107ad57806352390c02146107c257600080fd5b8063437823ec146107575780634549b0391461077757600080fd5b80633b124fe7146106c85780633bbac579146106de57806341cb87fc14610717578063426988371461073757600080fd5b80631b67e476116103fc57806329370cc6116103cb578063313ce567116103b0578063313ce567146106665780633685d4191461068857806339509351146106a857600080fd5b806329370cc6146106265780632d8381191461064657600080fd5b80631b67e4761461057b5780632230bcec1461059057806323b872dd146105ba57806327c8f835146105da57600080fd5b80630d93a475116104385780630d93a4751461050757806313114a9d1461052b578063140a060a1461054057806318160ddd1461056057600080fd5b806304f377f814610475578063061c82d0146104a357806306fdde03146104c5578063095ea7b3146104e757600080fd5b3661047057005b600080fd5b34801561048157600080fd5b50601e54610100900460ff165b60405190151581526020015b60405180910390f35b3480156104af57600080fd5b506104c36104be366004614050565b610d55565b005b3480156104d157600080fd5b506104da610e72565b60405161049a9190614069565b3480156104f357600080fd5b5061048e6105023660046140d6565b610f04565b34801561051357600080fd5b5061051d601f5481565b60405190815260200161049a565b34801561053757600080fd5b50600d5461051d565b34801561054c57600080fd5b506104c361055b366004614102565b610f1b565b34801561056c57600080fd5b50678ac7230489e8000061051d565b34801561058757600080fd5b5060185461051d565b34801561059c57600080fd5b506105a5611023565b6040805192835260208301919091520161049a565b3480156105c657600080fd5b5061048e6105d536600461411f565b61119a565b3480156105e657600080fd5b5061060e7f000000000000000000000000000000000000000000000000000000000000dead81565b6040516001600160a01b03909116815260200161049a565b34801561063257600080fd5b506104c3610641366004614175565b6112a3565b34801561065257600080fd5b5061051d610661366004614050565b6113ca565b34801561067257600080fd5b5060105460405160ff909116815260200161049a565b34801561069457600080fd5b506104c36106a3366004614102565b61145a565b3480156106b457600080fd5b5061048e6106c33660046140d6565b611641565b3480156106d457600080fd5b5061051d60115481565b3480156106ea57600080fd5b5061048e6106f9366004614102565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561072357600080fd5b506104c3610732366004614102565b611677565b34801561074357600080fd5b5061051d610752366004614050565b611891565b34801561076357600080fd5b506104c3610772366004614102565b6118bf565b34801561078357600080fd5b5061051d610792366004614190565b61193d565b3480156107a357600080fd5b5061051d60155481565b3480156107b957600080fd5b5060195461051d565b3480156107ce57600080fd5b506104c36107dd366004614102565b6119d0565b3480156107ee57600080fd5b5061048e6107fd366004614102565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561082757600080fd5b5060015461060e906001600160a01b031681565b34801561084757600080fd5b5061051d60135481565b34801561085d57600080fd5b5060165461051d565b34801561087257600080fd5b5061051d610881366004614102565b611b53565b34801561089257600080fd5b506104c3611bb2565b3480156108a757600080fd5b5060025461060e906001600160a01b031681565b3480156108c757600080fd5b50601e5461048e9062010000900460ff1681565b3480156108e757600080fd5b5061051d60165481565b3480156108fd57600080fd5b506104c361090c366004614050565b611c56565b34801561091d57600080fd5b5060135461051d565b34801561093257600080fd5b50601c5461060e906001600160a01b031681565b34801561095257600080fd5b5061048e610961366004614102565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561098b57600080fd5b5060175461051d565b3480156109a057600080fd5b506000546001600160a01b031661060e565b3480156109be57600080fd5b506104c36109cd366004614050565b611d9c565b3480156109de57600080fd5b506104c36109ed366004614102565b611eda565b3480156109fe57600080fd5b506002546001600160a01b031661060e565b348015610a1c57600080fd5b506104da611fcb565b348015610a3157600080fd5b506104c3610a40366004614050565b611fda565b348015610a5157600080fd5b506104c3610a60366004614050565b61205d565b348015610a7157600080fd5b5061048e610a803660046140d6565b6121a4565b348015610a9157600080fd5b506104c3610aa0366004614102565b6121f3565b348015610ab157600080fd5b5061060e7f0000000000000000000000008f2c89ac35a78be64ab87ecdb4b2bff2fec3d6f681565b348015610ae557600080fd5b5061048e610af43660046140d6565b61226f565b348015610b0557600080fd5b5061048e610b14366004614102565b612327565b348015610b2557600080fd5b5060035461060e906001600160a01b031681565b348015610b4557600080fd5b506104c3610b54366004614050565b612340565b348015610b6557600080fd5b5061051d60205481565b348015610b7b57600080fd5b5061051d601d5481565b348015610b9157600080fd5b5061051d610ba0366004614050565b612458565b348015610bb157600080fd5b506104c3610bc0366004614175565b612478565b348015610bd157600080fd5b50601e5462010000900460ff1661048e565b348015610bef57600080fd5b506104c3612591565b348015610c0457600080fd5b50601e5461048e90610100900460ff1681565b348015610c2357600080fd5b5061051d610c323660046141bc565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b348015610c6957600080fd5b506104c3610c78366004614050565b61265e565b348015610c8957600080fd5b5060155461051d565b348015610c9e57600080fd5b506104c3610cad366004614102565b61282e565b348015610cbe57600080fd5b5061051d610ccd366004614102565b600a6020526000908152604090205481565b348015610ceb57600080fd5b506104c3610cfa366004614050565b6128a9565b348015610d0b57600080fd5b506104c3610d1a366004614102565b612a13565b348015610d2b57600080fd5b5060115461051d565b348015610d4057600080fd5b50601e5461048e906301000000900460ff1681565b6003546001600160a01b0316336001600160a01b031614610dbf5760405162461bcd60e51b815260206004820152602b602482015260008051602061445783398151915260448201526a3c903a3432902b37b933bd60a91b60648201526084015b60405180910390fd5b60068110610e0f5760405162461bcd60e51b815260206004820181905260248201527f546178206665652063616e206265206174206d6f737420352070657263656e746044820152606401610db6565b806011541415610e6d5760405162461bcd60e51b8152602060048201526024808201527f54686973207661726961626c6520616c72656164792068617320746869732076604482015263616c756560e01b6064820152608401610db6565b601155565b6060600e8054610e81906141f5565b80601f0160208091040260200160405190810160405280929190818152602001828054610ead906141f5565b8015610efa5780601f10610ecf57610100808354040283529160200191610efa565b820191906000526020600020905b815481529060010190602001808311610edd57829003601f168201915b5050505050905090565b6000610f11338484612b44565b5060015b92915050565b6003546001600160a01b0316336001600160a01b031614610f805760405162461bcd60e51b815260206004820152602b602482015260008051602061445783398151915260448201526a3c903a3432902b37b933bd60a91b6064820152608401610db6565b6001600160a01b03811660009081526009602052604090205460ff16610fe85760405162461bcd60e51b815260206004820152601a60248201527f546869732061646472657373206973206e6f74206c69737465640000000000006044820152606401610db6565b6001600160a01b03811660009081526009602090815260408220805460ff1916905580546001929061101b908490614246565b909155505050565b6000806000807f0000000000000000000000008f2c89ac35a78be64ab87ecdb4b2bff2fec3d6f66001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561108257600080fd5b505afa158015611096573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ba919061427b565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff169150306001600160a01b03167f0000000000000000000000008f2c89ac35a78be64ab87ecdb4b2bff2fec3d6f66001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561114257600080fd5b505afa158015611156573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117a91906142cb565b6001600160a01b031614156111925790939092509050565b939092509050565b6001546000906001600160a01b03858116911614156111c4576111bd8284612c81565b905061129c565b6003546001600160a01b0385811691161480156111ee5750601c546001600160a01b038481169116145b1561123b5760405162461bcd60e51b815260206004820152601460248201527f4d65746174726f6e2063616e6e6f742073656c6c0000000000000000000000006044820152606401610db6565b611246848484612d34565b611298843361129385604051806060016040528060288152602001614477602891396001600160a01b038a16600090815260066020908152604080832033845290915290205491906132f3565b612b44565b5060015b9392505050565b6003546001600160a01b0316336001600160a01b0316146113085760405162461bcd60e51b815260206004820152602b602482015260008051602061445783398151915260448201526a3c903a3432902b37b933bd60a91b6064820152608401610db6565b601e5460ff6201000090910416151581151514156113745760405162461bcd60e51b8152602060048201526024808201527f54686973207661726961626c6520616c72656164792068617320746869732076604482015263616c756560e01b6064820152608401610db6565b601e8054821515620100000262ff0000199091161790556040517f3794234fa370c9f3b948dda3e3040530785b2ef1eb27dda3ffde478f4e2643c0906113bf90831515815260200190565b60405180910390a150565b6000600c548211156114445760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e73000000000000000000000000000000000000000000006064820152608401610db6565b600061144e61332d565b905061129c8382613350565b6000546001600160a01b031633146114b45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610db6565b6001600160a01b03811660009081526007602052604090205460ff1661151c5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610db6565b60005b600b5481101561163d57816001600160a01b0316600b8281548110611546576115466142e8565b6000918252602090912001546001600160a01b0316141561162b57600b805461157190600190614246565b81548110611581576115816142e8565b600091825260209091200154600b80546001600160a01b0390921691839081106115ad576115ad6142e8565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600582526040808220829055600790925220805460ff19169055600b805480611605576116056142fe565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b8061163581614314565b91505061151f565b5050565b3360008181526006602090815260408083206001600160a01b03871684529091528120549091610f119185906112939086613392565b6000546001600160a01b031633146116d15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610db6565b6000819050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174791906142cb565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561178f57600080fd5b505afa1580156117a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c791906142cb565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561182757600080fd5b505af115801561183b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185f91906142cb565b601c80546001600160a01b039283166001600160a01b031991821617909155601b805493909216921691909117905550565b600080600061189e611023565b90925090506118b7826118b186846133f1565b90613350565b949350505050565b6000546001600160a01b031633146119195760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610db6565b6001600160a01b03166000908152600860205260409020805460ff19166001179055565b6000678ac7230489e800008311156119975760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610db6565b816119b65760006119a784613470565b50939550610f15945050505050565b60006119c184613470565b50929550610f15945050505050565b6000546001600160a01b03163314611a2a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610db6565b6001600160a01b03811660009081526007602052604090205460ff1615611a935760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610db6565b6001600160a01b03811660009081526004602052604090205415611aed576001600160a01b038116600090815260046020526040902054611ad3906113ca565b6001600160a01b0382166000908152600560205260409020555b6001600160a01b03166000818152600760205260408120805460ff19166001908117909155600b805491820181559091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319169091179055565b6001600160a01b03811660009081526007602052604081205460ff1615611b9057506001600160a01b031660009081526005602052604090205490565b6001600160a01b038216600090815260046020526040902054610f15906113ca565b6000546001600160a01b03163314611c0c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610db6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6003546001600160a01b0316336001600160a01b031614611cbb5760405162461bcd60e51b815260206004820152602b602482015260008051602061445783398151915260448201526a3c903a3432902b37b933bd60a91b6064820152608401610db6565b680ad78ebc5ac62000008111611d395760405162461bcd60e51b815260206004820152603160248201527f4275792d6261636b207570706572206c696d6974206d7573742062652068696760448201527f686572207468616e203230304d415449430000000000000000000000000000006064820152608401610db6565b806018541415611d975760405162461bcd60e51b8152602060048201526024808201527f54686973207661726961626c6520616c72656164792068617320746869732076604482015263616c756560e01b6064820152608401610db6565b601855565b6003546001600160a01b0316336001600160a01b031614611e015760405162461bcd60e51b815260206004820152602b602482015260008051602061445783398151915260448201526a3c903a3432902b37b933bd60a91b6064820152608401610db6565b60108110611e775760405162461bcd60e51b815260206004820152602760248201527f4c6971756964697479206665652063616e206265206174206d6f73742031352060448201527f70657263656e74000000000000000000000000000000000000000000000000006064820152608401610db6565b806013541415611ed55760405162461bcd60e51b8152602060048201526024808201527f54686973207661726961626c6520616c72656164792068617320746869732076604482015263616c756560e01b6064820152608401610db6565b601355565b6003546001600160a01b0316336001600160a01b031614611f3f5760405162461bcd60e51b815260206004820152602b602482015260008051602061445783398151915260448201526a3c903a3432902b37b933bd60a91b6064820152608401610db6565b6002546001600160a01b0382811691161415611fa95760405162461bcd60e51b8152602060048201526024808201527f54686973207661726961626c6520616c72656164792068617320746869732076604482015263616c756560e01b6064820152608401610db6565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600f8054610e81906141f5565b6003546001600160a01b0316336001600160a01b03161461203f5760405162461bcd60e51b815260206004820152602b602482015260008051602061445783398151915260448201526a3c903a3432902b37b933bd60a91b6064820152608401610db6565b6120576103e86118b1678ac7230489e80000846133f1565b60165550565b6003546001600160a01b0316336001600160a01b0316146120c25760405162461bcd60e51b815260206004820152602b602482015260008051602061445783398151915260448201526a3c903a3432902b37b933bd60a91b6064820152608401610db6565b680ad78ebc5ac62000008111156121415760405162461bcd60e51b815260206004820152603060248201527f4275792d6261636b206c6f776572206c696d6974206d757374206265206c6f7760448201527f6572207468616e203230304d41544943000000000000000000000000000000006064820152608401610db6565b80601954141561219f5760405162461bcd60e51b8152602060048201526024808201527f54686973207661726961626c6520616c72656164792068617320746869732076604482015263616c756560e01b6064820152608401610db6565b601955565b6000610f1133846112938560405180606001604052806025815260200161449f602591393360009081526006602090815260408083206001600160a01b038d16845290915290205491906132f3565b6000546001600160a01b0316331461224d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610db6565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001546000906001600160a01b0316336001600160a01b0316141561229f576122988284612c81565b9050610f15565b6003546001600160a01b0316336001600160a01b03161480156122cf5750601c546001600160a01b038481169116145b1561231c5760405162461bcd60e51b815260206004820152601460248201527f4d65746174726f6e2063616e6e6f742073656c6c0000000000000000000000006044820152606401610db6565b610f11338484612d34565b60006501d1a94a200061233983611b53565b1192915050565b6003546001600160a01b0316336001600160a01b0316146123a55760405162461bcd60e51b815260206004820152602b602482015260008051602061445783398151915260448201526a3c903a3432902b37b933bd60a91b6064820152608401610db6565b600981106123f55760405162461bcd60e51b815260206004820181905260248201527f44697669736f722063616e206265206174206d6f737420382070657263656e746044820152606401610db6565b8060155414156124535760405162461bcd60e51b8152602060048201526024808201527f54686973207661726961626c6520616c72656164792068617320746869732076604482015263616c756560e01b6064820152608401610db6565b601555565b6000806000612465611023565b90925090506118b7816118b186856133f1565b6003546001600160a01b0316336001600160a01b0316146124dd5760405162461bcd60e51b815260206004820152602b602482015260008051602061445783398151915260448201526a3c903a3432902b37b933bd60a91b6064820152608401610db6565b601e5460ff61010090910416151581151514156125485760405162461bcd60e51b8152602060048201526024808201527f54686973207661726961626c6520616c72656164792068617320746869732076604482015263616c756560e01b6064820152608401610db6565b601e80548215156101000261ff00199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906113bf90831515815260200190565b6000546001600160a01b031633146125eb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610db6565b601e546301000000900460ff16156126455760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720697320616c7265616479206f70656e2e00000000000000006044820152606401610db6565b601e805463ff0000001916630100000017905542601f55565b6003546001600160a01b0316336001600160a01b0316146126c35760405162461bcd60e51b815260206004820152602b602482015260008051602061445783398151915260448201526a3c903a3432902b37b933bd60a91b6064820152608401610db6565b601a546126cf82611891565b106127425760405162461bcd60e51b815260206004820152603360248201527f4d65746174726f6e2063616e6e6f742073656c6c20616d6f756e74732068696760448201527f686572207468616e2038303030204d41544943000000000000000000000000006064820152608401610db6565b6003548190612759906001600160a01b0316611b53565b10156127a75760405162461bcd60e51b815260206004820152601e60248201527f4d65746174726f6e3a20696e73756666696369656e742062616c616e636500006044820152606401610db6565b6127af6134bf565b6003546127c6906001600160a01b031630836134ed565b6127d7601254601155601454601355565b476127e1826135e4565b60006127ed478361379f565b6003546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015612828573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146128885760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610db6565b6001600160a01b03166000908152600860205260409020805460ff19169055565b6003546001600160a01b0316336001600160a01b03161461290e5760405162461bcd60e51b815260206004820152602b602482015260008051602061445783398151915260448201526a3c903a3432902b37b933bd60a91b6064820152608401610db6565b66b1a2bc2ec5000081106129b05760405162461bcd60e51b815260206004820152604360248201527f4d696e696d756d20746f6b656e206265666f726520737761702063616e6e6f7460448201527f206578636565642074686520302e3525206f662074686520746f74616c53757060648201527f706c790000000000000000000000000000000000000000000000000000000000608482015260a401610db6565b806017541415612a0e5760405162461bcd60e51b8152602060048201526024808201527f54686973207661726961626c6520616c72656164792068617320746869732076604482015263616c756560e01b6064820152608401610db6565b601755565b6000546001600160a01b03163314612a6d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610db6565b6001600160a01b038116612ae95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610db6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316612bbf5760405162461bcd60e51b8152602060048201526024808201527f4d524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610db6565b6001600160a01b038216612c205760405162461bcd60e51b815260206004820152602260248201527f4d524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610db6565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000601a54612c8f84611891565b108015612cab5750601d544290612ca99062093a80613392565b105b612d1d5760405162461bcd60e51b815260206004820152602b60248201527f5465616d2073616c6172792063616e6e6f74206578636565642038303030204d60448201527f415449432061207765656b0000000000000000000000000000000000000000006064820152608401610db6565b42601d55600154610f11906001600160a01b031683855b6000546001600160a01b03848116911614612da257601e546301000000900460ff16612da25760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206973206e6f74206f70656e207965742e00000000000000006044820152606401610db6565b6001600160a01b03831660009081526009602052604090205460ff1615612e0b5760405162461bcd60e51b815260206004820152601460248201527f426f74732063616e6e6f74207472616e736665720000000000000000000000006044820152606401610db6565b6001600160a01b038316612e875760405162461bcd60e51b815260206004820152602560248201527f4d524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610db6565b6001600160a01b038216612f035760405162461bcd60e51b815260206004820152602360248201527f4d524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610db6565b60008111612f795760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610db6565b6000546001600160a01b03848116911614801590612fa557506000546001600160a01b03838116911614155b15613022576016548111156130225760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785460448201527f78416d6f756e742e0000000000000000000000000000000000000000000000006064820152608401610db6565b601f54429061303290600a613392565b11801561304c5750601c546001600160a01b038481169116145b15613094576001600160a01b03821660009081526009602090815260408220805460ff19166001908117909155815490929061308990849061432f565b909155506131c79050565b601c546001600160a01b03848116911614156130ca576001600160a01b0382166000908152600a602052604090204290556131c7565b6001600160a01b03831630148015906130f05750601c546001600160a01b038381169116145b156131c7576001600160a01b0383166000908152600a6020526040902054429061311b906008613392565b11156131c7576001600160a01b03831660009081526009602090815260408220805460ff19166001908117909155815490929061315990849061432f565b90915550506001600160a01b03831660009081526009602052604090205460ff16156131c75760405162461bcd60e51b815260206004820152601460248201527f426f74732063616e6e6f74207472616e736665720000000000000000000000006044820152606401610db6565b60006131d230611b53565b601754601e549192508210159060ff161580156131f65750601e54610100900460ff165b801561320f5750601c546001600160a01b038581169116145b156132945780801561322a57506001600160a01b0385163014155b1561323a5761323a6017546137e1565b47600061324685611891565b601e5490915062010000900460ff16801561326057508082115b1561329157601854811015613286576019548110613281576132818161384a565b613291565b61329160185461384a565b50505b6001600160a01b03851660009081526008602052604090205460019060ff16806132d657506001600160a01b03851660009081526008602052604090205460ff165b156132df575060005b6132eb86868684613873565b505050505050565b600081848411156133175760405162461bcd60e51b8152600401610db69190614069565b5060006133248486614246565b95945050505050565b600080600061333a613998565b90925090506133498282613350565b9250505090565b600061129c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613b30565b60008061339f838561432f565b90508381101561129c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610db6565b60008261340057506000610f15565b600061340c8385614347565b9050826134198583614366565b1461129c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610db6565b60008060008060008060008060006134878a613b5e565b92509250925060008060006134a58d86866134a061332d565b613ba0565b919f909e50909c50959a5093985091965092945050505050565b6011541580156134cf5750601354155b156134d657565b601180546012556013805460145560009182905555565b6000806000806000806134ff87613470565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150613531908761379f565b6001600160a01b03808b1660009081526004602052604080822093909355908a16815220546135609086613392565b6001600160a01b03891660009081526004602052604090205561358281613bf0565b61358c8483613c79565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516135d191815260200190565b60405180910390a3505050505050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110613619576136196142e8565b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561366d57600080fd5b505afa158015613681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136a591906142cb565b816001815181106136b8576136b86142e8565b6001600160a01b039283166020918202929092010152601b546136de9130911684612b44565b601b546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac947906137309085906000908690309042906004016143cc565b600060405180830381600087803b15801561374a57600080fd5b505af115801561375e573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613793929190614408565b60405180910390a15050565b600061129c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132f3565b601e805460ff19166001179055476137f8826135e4565b6000613804478361379f565b60025460155460135492935061383b926001600160a01b03909216916138369190613830908690613350565b906133f1565b613c9d565b5050601e805460ff1916905550565b601e805460ff1916600117905580156138665761386681613cd3565b50601e805460ff19169055565b80613880576138806134bf565b6001600160a01b03841660009081526007602052604090205460ff1680156138c157506001600160a01b03831660009081526007602052604090205460ff16155b156138d6576138d1848484613e89565b613982565b6001600160a01b03841660009081526007602052604090205460ff1615801561391757506001600160a01b03831660009081526007602052604090205460ff165b15613927576138d1848484613efc565b6001600160a01b03841660009081526007602052604090205460ff16801561396757506001600160a01b03831660009081526007602052604090205460ff165b15613977576138d1848484613fa5565b6139828484846134ed565b8061282857612828601254601155601454601355565b600c546000908190678ac7230489e80000825b600b54811015613af5578260046000600b84815481106139cd576139cd6142e8565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180613a3857508160056000600b8481548110613a1157613a116142e8565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15613a53575050600c5493678ac7230489e800009350915050565b613a9960046000600b8481548110613a6d57613a6d6142e8565b60009182526020808320909101546001600160a01b03168352820192909252604001902054849061379f565b9250613ae160056000600b8481548110613ab557613ab56142e8565b60009182526020808320909101546001600160a01b03168352820192909252604001902054839061379f565b915080613aed81614314565b9150506139ab565b50600c54613b0b90678ac7230489e80000613350565b821015613b27575050600c5492678ac7230489e8000092509050565b90939092509050565b60008183613b515760405162461bcd60e51b8152600401610db69190614069565b5060006133248486614366565b600080600080613b6d85614018565b90506000613b7a86614034565b90506000613b9282613b8c898661379f565b9061379f565b979296509094509092505050565b6000808080613baf88866133f1565b90506000613bbd88876133f1565b90506000613bcb88886133f1565b90506000613bdd82613b8c868661379f565b939b939a50919850919650505050505050565b6000613bfa61332d565b90506000613c0883836133f1565b30600090815260046020526040902054909150613c259082613392565b3060009081526004602090815260408083209390935560079052205460ff1615613c745730600090815260056020526040902054613c639084613392565b306000908152600560205260409020555b505050565b600c54613c86908361379f565b600c55600d54613c969082613392565b600d555050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015613c74573d6000803e3d6000fd5b6040805160028082526060820183526000926020830190803683375050601b54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b158015613d3857600080fd5b505afa158015613d4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d7091906142cb565b81600081518110613d8357613d836142e8565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110613db757613db76142e8565b6001600160a01b039283166020918202929092010152601b541663b6f9de95836000847f000000000000000000000000000000000000000000000000000000000000dead613e074261012c613392565b6040518663ffffffff1660e01b8152600401613e269493929190614421565b6000604051808303818588803b158015613e3f57600080fd5b505af1158015613e53573d6000803e3d6000fd5b50505050507f6fd378a9d8b7345c2e5b18229aaf1e39d32b177b501d0a0d26a0a858a23a96248282604051613793929190614408565b600080600080600080613e9b87613470565b6001600160a01b038f16600090815260056020526040902054959b50939950919750955093509150613ecd908861379f565b6001600160a01b038a16600090815260056020908152604080832093909355600490522054613531908761379f565b600080600080600080613f0e87613470565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150613f40908761379f565b6001600160a01b03808b16600090815260046020908152604080832094909455918b16815260059091522054613f769084613392565b6001600160a01b0389166000908152600560209081526040808320939093556004905220546135609086613392565b600080600080600080613fb787613470565b6001600160a01b038f16600090815260056020526040902054959b50939950919750955093509150613fe9908861379f565b6001600160a01b038a16600090815260056020908152604080832093909355600490522054613f40908761379f565b6000610f1560646118b1601154856133f190919063ffffffff16565b6000610f1560646118b1601354856133f190919063ffffffff16565b60006020828403121561406257600080fd5b5035919050565b600060208083528351808285015260005b818110156140965785810183015185820160400152820161407a565b818111156140a8576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146140d357600080fd5b50565b600080604083850312156140e957600080fd5b82356140f4816140be565b946020939093013593505050565b60006020828403121561411457600080fd5b813561129c816140be565b60008060006060848603121561413457600080fd5b833561413f816140be565b9250602084013561414f816140be565b929592945050506040919091013590565b8035801515811461417057600080fd5b919050565b60006020828403121561418757600080fd5b61129c82614160565b600080604083850312156141a357600080fd5b823591506141b360208401614160565b90509250929050565b600080604083850312156141cf57600080fd5b82356141da816140be565b915060208301356141ea816140be565b809150509250929050565b600181811c9082168061420957607f821691505b6020821081141561422a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008282101561425857614258614230565b500390565b80516dffffffffffffffffffffffffffff8116811461417057600080fd5b60008060006060848603121561429057600080fd5b6142998461425d565b92506142a76020850161425d565b9150604084015163ffffffff811681146142c057600080fd5b809150509250925092565b6000602082840312156142dd57600080fd5b815161129c816140be565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b600060001982141561432857614328614230565b5060010190565b6000821982111561434257614342614230565b500190565b600081600019048311821515161561436157614361614230565b500290565b60008261438357634e487b7160e01b600052601260045260246000fd5b500490565b600081518084526020808501945080840160005b838110156143c15781516001600160a01b03168752958201959082019060010161439c565b509495945050505050565b85815284602082015260a0604082015260006143eb60a0830186614388565b6001600160a01b0394909416606083015250608001529392505050565b8281526040602082015260006118b76040830184614388565b84815260806020820152600061443a6080830186614388565b6001600160a01b0394909416604083015250606001529291505056fe54686973206d6574686f64206973206f6e6c792061636365737369626c6520624d524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654d524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d820be98de4905ce746eecf471876006d4021c1a22d851071cb9d6fc4fc84d4964736f6c63430008090033

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

0000000000000000000000005cfd93452730f09edcf4f1da2514530a842b8edf0000000000000000000000006d3e1c44789130b4d8956f9aa6631524f2dfe9a700000000000000000000000057d874705b45a93e715bc2d3da0411aa67838202

-----Decoded View---------------
Arg [0] : _teamWallet (address): 0x5Cfd93452730F09edCF4f1DA2514530a842b8edF
Arg [1] : _marketingWallet (address): 0x6d3E1C44789130B4d8956f9aA6631524F2DfE9a7
Arg [2] : _metatron (address): 0x57d874705b45a93E715Bc2D3Da0411aA67838202

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000005cfd93452730f09edcf4f1da2514530a842b8edf
Arg [1] : 0000000000000000000000006d3e1c44789130b4d8956f9aa6631524f2dfe9a7
Arg [2] : 00000000000000000000000057d874705b45a93e715bc2d3da0411aa67838202


Deployed Bytecode Sourcemap

7728:26204:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29272:132;;;;;;;;;;-1:-1:-1;29374:22:0;;;;;;;29272:132;;;179:14:1;;172:22;154:41;;142:2;127:18;29272:132:0;;;;;;;;30718:243;;;;;;;;;;-1:-1:-1;30718:243:0;;;;;:::i;:::-;;:::i;:::-;;11164:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;12282:161::-;;;;;;;;;;-1:-1:-1;12282:161:0;;;;;:::i;:::-;;:::i;9634:27::-;;;;;;;;;;;;;;;;;;;1618:25:1;;;1606:2;1591:18;9634:27:0;1472:177:1;13597:87:0;;;;;;;;;;-1:-1:-1;13666:10:0;;13597:87;;30219:184;;;;;;;;;;-1:-1:-1;30219:184:0;;;;;:::i;:::-;;:::i;11441:95::-;;;;;;;;;;-1:-1:-1;8552:18:0;11441:95;;28877:130;;;;;;;;;;-1:-1:-1;28981:18:0;;28877:130;;27109:292;;;;;;;;;;;;;:::i;:::-;;;;2080:25:1;;;2136:2;2121:18;;2114:34;;;;2053:18;27109:292:0;1906:248:1;12451:507:0;;;;;;;;;;-1:-1:-1;12451:507:0;;;;;:::i;:::-;;:::i;7963:81::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2784:55:1;;;2766:74;;2754:2;2739:18;7963:81:0;2620:226:1;32823:244:0;;;;;;;;;;-1:-1:-1;32823:244:0;;;;;:::i;:::-;;:::i;14137:253::-;;;;;;;;;;-1:-1:-1;14137:253:0;;;;;:::i;:::-;;:::i;11350:83::-;;;;;;;;;;-1:-1:-1;11416:9:0;;11350:83;;11416:9;;;;3343:36:1;;3331:2;3316:18;11350:83:0;3201:184:1;14741:475:0;;;;;;;;;;-1:-1:-1;14741:475:0;;;;;:::i;:::-;;:::i;12966:218::-;;;;;;;;;;-1:-1:-1;12966:218:0;;;;;:::i;:::-;;:::i;8782:26::-;;;;;;;;;;;;;;;;30596:98;;;;;;;;;;-1:-1:-1;30596:98:0;;;;;:::i;:::-;-1:-1:-1;;;;;30673:13:0;30649:4;30673:13;;;:4;:13;;;;;;;;;30596:98;33605:324;;;;;;;;;;-1:-1:-1;33605:324:0;;;;;:::i;:::-;;:::i;26609:242::-;;;;;;;;;;-1:-1:-1;26609:242:0;;;;;:::i;:::-;;:::i;26115:113::-;;;;;;;;;;-1:-1:-1;26115:113:0;;;;;:::i;:::-;;:::i;13692:437::-;;;;;;;;;;-1:-1:-1;13692:437:0;;;;;:::i;:::-;;:::i;8966:36::-;;;;;;;;;;;;;;;;29015:130;;;;;;;;;;-1:-1:-1;29119:18:0;;29015:130;;14398:335;;;;;;;;;;-1:-1:-1;14398:335:0;;;;;:::i;:::-;;:::i;25983:124::-;;;;;;;;;;-1:-1:-1;25983:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;26072:27:0;26048:4;26072:27;;;:18;:27;;;;;;;;;25983:124;7848:25;;;;;;;;;;-1:-1:-1;7848:25:0;;;;-1:-1:-1;;;;;7848:25:0;;;8865:32;;;;;;;;;;;;;;;;28607:106;;;;;;;;;;-1:-1:-1;28693:12:0;;28607:106;;11544:198;;;;;;;;;;-1:-1:-1;11544:198:0;;;;;:::i;:::-;;:::i;6066:148::-;;;;;;;;;;;;;:::i;7880:38::-;;;;;;;;;;-1:-1:-1;7880:38:0;;;;-1:-1:-1;;;;;7880:38:0;;;9554:35;;;;;;;;;;-1:-1:-1;9554:35:0;;;;;;;;;;;9011:47;;;;;;;;;;;;;;;;32125:341;;;;;;;;;;-1:-1:-1;32125:341:0;;;;;:::i;:::-;;:::i;28361:109::-;;;;;;;;;;-1:-1:-1;28449:13:0;;28361:109;;9348:30;;;;;;;;;;-1:-1:-1;9348:30:0;;;;-1:-1:-1;;;;;9348:30:0;;;13469:120;;;;;;;;;;-1:-1:-1;13469:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;13561:20:0;13537:4;13561:20;;;:11;:20;;;;;;;;;13469:120;28721:148;;;;;;;;;;-1:-1:-1;28837:24:0;;28721:148;;5852:79;;;;;;;;;;-1:-1:-1;5890:7:0;5917:6;-1:-1:-1;;;;;5917:6:0;5852:79;;30969:293;;;;;;;;;;-1:-1:-1;30969:293:0;;;;;:::i;:::-;;:::i;33355:238::-;;;;;;;;;;-1:-1:-1;33355:238:0;;;;;:::i;:::-;;:::i;29412:119::-;;;;;;;;;;-1:-1:-1;29508:15:0;;-1:-1:-1;;;;;29508:15:0;29412:119;;11255:87;;;;;;;;;;;;;:::i;31548:149::-;;;;;;;;;;-1:-1:-1;31548:149:0;;;;;:::i;:::-;;:::i;32474:341::-;;;;;;;;;;-1:-1:-1;32474:341:0;;;;;:::i;:::-;;:::i;13192:269::-;;;;;;;;;;-1:-1:-1;13192:269:0;;;;;:::i;:::-;;:::i;26356:111::-;;;;;;;;;;-1:-1:-1;26356:111:0;;;;;:::i;:::-;;:::i;9385:38::-;;;;;;;;;;;;;;;11750:373;;;;;;;;;;-1:-1:-1;11750:373:0;;;;;:::i;:::-;;:::i;28059:142::-;;;;;;;;;;-1:-1:-1;28059:142:0;;;;;:::i;:::-;;:::i;7925:31::-;;;;;;;;;;-1:-1:-1;7925:31:0;;;;-1:-1:-1;;;;;7925:31:0;;;31270:270;;;;;;;;;;-1:-1:-1;31270:270:0;;;;;:::i;:::-;;:::i;9670:27::-;;;;;;;;;;;;;;;;9432:28;;;;;;;;;;;;;;;;26859:242;;;;;;;;;;-1:-1:-1;26859:242:0;;;;;:::i;:::-;;:::i;33075:272::-;;;;;;;;;;-1:-1:-1;33075:272:0;;;;;:::i;:::-;;:::i;29153:111::-;;;;;;;;;;-1:-1:-1;29241:15:0;;;;;;;29153:111;;30411:177;;;;;;;;;;;;;:::i;9505:42::-;;;;;;;;;;-1:-1:-1;9505:42:0;;;;;;;;;;;12131:143;;;;;;;;;;-1:-1:-1;12131:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;12239:18:0;;;12212:7;12239:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12131:143;29541:670;;;;;;;;;;-1:-1:-1;29541:670:0;;;;;:::i;:::-;;:::i;28478:121::-;;;;;;;;;;-1:-1:-1;28574:17:0;;28478:121;;26236:112;;;;;;;;;;-1:-1:-1;26236:112:0;;;;;:::i;:::-;;:::i;8380:43::-;;;;;;;;;;-1:-1:-1;8380:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;31705:412;;;;;;;;;;-1:-1:-1;31705:412:0;;;;;:::i;:::-;;:::i;6222:244::-;;;;;;;;;;-1:-1:-1;6222:244:0;;;;;:::i;:::-;;:::i;28262:91::-;;;;;;;;;;-1:-1:-1;28338:7:0;;28262:91;;9598:29;;;;;;;;;;-1:-1:-1;9598:29:0;;;;;;;;;;;30718:243;10165:8;;-1:-1:-1;;;;;10165:8:0;1374:10;-1:-1:-1;;;;;10149:24:0;;10141:80;;;;-1:-1:-1;;;10141:80:0;;4740:2:1;10141:80:0;;;4722:21:1;4779:2;4759:18;;;4752:30;-1:-1:-1;;;;;;;;;;;4798:18:1;;;4791:62;-1:-1:-1;;;4869:18:1;;;4862:41;4920:19;;10141:80:0;;;;;;;;;30811:1:::1;30802:6;:10;30794:55;;;::::0;-1:-1:-1;;;30794:55:0;;5152:2:1;30794:55:0::1;::::0;::::1;5134:21:1::0;;;5171:18;;;5164:30;5230:34;5210:18;;;5203:62;5282:18;;30794:55:0::1;4950:356:1::0;30794:55:0::1;30879:6;30868:7;;:17;;30860:66;;;::::0;-1:-1:-1;;;30860:66:0;;5513:2:1;30860:66:0::1;::::0;::::1;5495:21:1::0;5552:2;5532:18;;;5525:30;5591:34;5571:18;;;5564:62;-1:-1:-1;;;5642:18:1;;;5635:34;5686:19;;30860:66:0::1;5311:400:1::0;30860:66:0::1;30937:7;:16:::0;30718:243::o;11164:83::-;11201:13;11234:5;11227:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11164:83;:::o;12282:161::-;12357:4;12374:39;1374:10;12397:7;12406:6;12374:8;:39::i;:::-;-1:-1:-1;12431:4:0;12282:161;;;;;:::o;30219:184::-;10165:8;;-1:-1:-1;;;;;10165:8:0;1374:10;-1:-1:-1;;;;;10149:24:0;;10141:80;;;;-1:-1:-1;;;10141:80:0;;4740:2:1;10141:80:0;;;4722:21:1;4779:2;4759:18;;;4752:30;-1:-1:-1;;;;;;;;;;;4798:18:1;;;4791:62;-1:-1:-1;;;4869:18:1;;;4862:41;4920:19;;10141:80:0;4538:407:1;10141:80:0;-1:-1:-1;;;;;30300:9:0;::::1;;::::0;;;:4:::1;:9;::::0;;;;;::::1;;30292:48;;;::::0;-1:-1:-1;;;30292:48:0;;6360:2:1;30292:48:0::1;::::0;::::1;6342:21:1::0;6399:2;6379:18;;;6372:30;6438:28;6418:18;;;6411:56;6484:18;;30292:48:0::1;6158:350:1::0;30292:48:0::1;-1:-1:-1::0;;;;;30351:9:0;::::1;30363:5;30351:9:::0;;;:4:::1;:9;::::0;;;;;;:17;;-1:-1:-1;;30351:17:0::1;::::0;;30379:16;;30351:17;;30363:5;30379:16:::1;::::0;30351:17;;30379:16:::1;:::i;:::-;::::0;;;-1:-1:-1;;;30219:184:0:o;27109:292::-;27159:15;27176:16;27206:9;27217;27231:4;-1:-1:-1;;;;;27231:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27205:44;;;;;;;;;27289:4;-1:-1:-1;;;;;27264:30:0;:4;-1:-1:-1;;;;;27264:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;27264:30:0;;27260:134;;;27319:4;;27325;;-1:-1:-1;27109:292:0;-1:-1:-1;27109:292:0:o;27260:134::-;27371:4;27377;;-1:-1:-1;27109:292:0;-1:-1:-1;27109:292:0:o;12451:507::-;12580:10;;12549:4;;-1:-1:-1;;;;;12570:20:0;;;12580:10;;12570:20;12566:87;;;12614:27;12623:6;12631:9;12614:8;:27::i;:::-;12607:34;;;;12566:87;12683:8;;-1:-1:-1;;;;;12673:18:0;;;12683:8;;12673:18;:50;;;;-1:-1:-1;12708:15:0;;-1:-1:-1;;;;;12695:28:0;;;12708:15;;12695:28;12673:50;12671:53;12663:86;;;;-1:-1:-1;;;12663:86:0;;7938:2:1;12663:86:0;;;7920:21:1;7977:2;7957:18;;;7950:30;8016:22;7996:18;;;7989:50;8056:18;;12663:86:0;7736:344:1;12663:86:0;12760:36;12770:6;12778:9;12789:6;12760:9;:36::i;:::-;12807:121;12816:6;1374:10;12838:89;12876:6;12838:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12838:19:0;;;;;;:11;:19;;;;;;;;1374:10;12838:33;;;;;;;;;;:37;:89::i;:::-;12807:8;:121::i;:::-;-1:-1:-1;12946:4:0;12451:507;;;;;;:::o;32823:244::-;10165:8;;-1:-1:-1;;;;;10165:8:0;1374:10;-1:-1:-1;;;;;10149:24:0;;10141:80;;;;-1:-1:-1;;;10141:80:0;;4740:2:1;10141:80:0;;;4722:21:1;4779:2;4759:18;;;4752:30;-1:-1:-1;;;;;;;;;;;4798:18:1;;;4791:62;-1:-1:-1;;;4869:18:1;;;4862:41;4920:19;;10141:80:0;4538:407:1;10141:80:0;32907:15:::1;::::0;::::1;::::0;;;::::1;;:27;;::::0;::::1;;;;32899:76;;;::::0;-1:-1:-1;;;32899:76:0;;5513:2:1;32899:76:0::1;::::0;::::1;5495:21:1::0;5552:2;5532:18;;;5525:30;5591:34;5571:18;;;5564:62;-1:-1:-1;;;5642:18:1;;;5635:34;5686:19;;32899:76:0::1;5311:400:1::0;32899:76:0::1;32986:15;:26:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;32986:26:0;;::::1;;::::0;;33028:31:::1;::::0;::::1;::::0;::::1;::::0;33004:8;179:14:1;172:22;154:41;;142:2;127:18;;14:187;33028:31:0::1;;;;;;;;32823:244:::0;:::o;14137:253::-;14204:7;14243;;14232;:18;;14224:73;;;;-1:-1:-1;;;14224:73:0;;8287:2:1;14224:73:0;;;8269:21:1;8326:2;8306:18;;;8299:30;8365:34;8345:18;;;8338:62;8436:12;8416:18;;;8409:40;8466:19;;14224:73:0;8085:406:1;14224:73:0;14308:19;14330:10;:8;:10::i;:::-;14308:32;-1:-1:-1;14358:24:0;:7;14308:32;14358:11;:24::i;14741:475::-;5979:6;;-1:-1:-1;;;;;5979:6:0;1374:10;5979:22;5971:67;;;;-1:-1:-1;;;5971:67:0;;8698:2:1;5971:67:0;;;8680:21:1;;;8717:18;;;8710:30;8776:34;8756:18;;;8749:62;8828:18;;5971:67:0;8496:356:1;5971:67:0;-1:-1:-1;;;;;14823:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;14815:56;;;::::0;-1:-1:-1;;;14815:56:0;;9059:2:1;14815:56:0::1;::::0;::::1;9041:21:1::0;9098:2;9078:18;;;9071:30;9137:25;9117:18;;;9110:53;9180:18;;14815:56:0::1;8857:347:1::0;14815:56:0::1;14887:9;14882:327;14906:9;:16:::0;14902:20;::::1;14882:327;;;14964:7;-1:-1:-1::0;;;;;14948:23:0::1;:9;14958:1;14948:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;14948:12:0::1;:23;14944:254;;;15007:9;15017:16:::0;;:20:::1;::::0;15036:1:::1;::::0;15017:20:::1;:::i;:::-;15007:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;14992:9:::1;:12:::0;;-1:-1:-1;;;;;15007:31:0;;::::1;::::0;15002:1;;14992:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;14992:46:0::1;-1:-1:-1::0;;;;;14992:46:0;;::::1;;::::0;;15057:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;15096:11:::1;:20:::0;;;;:28;;-1:-1:-1;;15096:28:0::1;::::0;;15143:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;15143:15:0;;;;;-1:-1:-1;;;;;;15143:15:0::1;::::0;;;;;14882:327:::1;14741:475:::0;:::o;14944:254::-:1;14924:3:::0;::::1;::::0;::::1;:::i;:::-;;;;14882:327;;;;14741:475:::0;:::o;12966:218::-;1374:10;13054:4;13103:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;13103:34:0;;;;;;;;;;13054:4;;13071:83;;13094:7;;13103:50;;13142:10;13103:38;:50::i;33605:324::-;5979:6;;-1:-1:-1;;;;;5979:6:0;1374:10;5979:22;5971:67;;;;-1:-1:-1;;;5971:67:0;;8698:2:1;5971:67:0;;;8680:21:1;;;8717:18;;;8710:30;8776:34;8756:18;;;8749:62;8828:18;;5971:67:0;8496:356:1;5971:67:0;33680:36:::1;33740:9;33680:70;;33799:15;-1:-1:-1::0;;;;;33799:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;33779:57:0::1;;33845:4;33852:15;-1:-1:-1::0;;;;;33852:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;33779:96;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;9980:15:1;;;33779:96:0::1;::::0;::::1;9962:34:1::0;10032:15;;10012:18;;;10005:43;9874:18;;33779:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;33761:15;:114:::0;;-1:-1:-1;;;;;33761:114:0;;::::1;-1:-1:-1::0;;;;;;33761:114:0;;::::1;;::::0;;;33886:17:::1;:35:::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;-1:-1:-1;33605:324:0:o;26609:242::-;26683:22;26719:15;26736:16;26756:19;:17;:19::i;:::-;26718:57;;-1:-1:-1;26718:57:0;-1:-1:-1;26794:48:0;26718:57;26795:30;:13;26718:57;26795:17;:30::i;:::-;26794:36;;:48::i;:::-;26786:57;26609:242;-1:-1:-1;;;;26609:242:0:o;26115:113::-;5979:6;;-1:-1:-1;;;;;5979:6:0;1374:10;5979:22;5971:67;;;;-1:-1:-1;;;5971:67:0;;8698:2:1;5971:67:0;;;8680:21:1;;;8717:18;;;8710:30;8776:34;8756:18;;;8749:62;8828:18;;5971:67:0;8496:356:1;5971:67:0;-1:-1:-1;;;;;26186:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;26186:34:0::1;26216:4;26186:34;::::0;;26115:113::o;13692:437::-;13783:7;8552:18;13811:7;:18;;13803:62;;;;-1:-1:-1;;;13803:62:0;;10261:2:1;13803:62:0;;;10243:21:1;10300:2;10280:18;;;10273:30;10339:33;10319:18;;;10312:61;10390:18;;13803:62:0;10059:355:1;13803:62:0;13881:17;13876:246;;13916:15;13940:19;13951:7;13940:10;:19::i;:::-;-1:-1:-1;13915:44:0;;-1:-1:-1;13974:14:0;;-1:-1:-1;;;;;13974:14:0;13876:246;14023:23;14054:19;14065:7;14054:10;:19::i;:::-;-1:-1:-1;14021:52:0;;-1:-1:-1;14088:22:0;;-1:-1:-1;;;;;14088:22:0;14398:335;5979:6;;-1:-1:-1;;;;;5979:6:0;1374:10;5979:22;5971:67;;;;-1:-1:-1;;;5971:67:0;;8698:2:1;5971:67:0;;;8680:21:1;;;8717:18;;;8710:30;8776:34;8756:18;;;8749:62;8828:18;;5971:67:0;8496:356:1;5971:67:0;-1:-1:-1;;;;;14483:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;14482:21;14474:61;;;::::0;-1:-1:-1;;;14474:61:0;;10621:2:1;14474:61:0::1;::::0;::::1;10603:21:1::0;10660:2;10640:18;;;10633:30;10699:29;10679:18;;;10672:57;10746:18;;14474:61:0::1;10419:351:1::0;14474:61:0::1;-1:-1:-1::0;;;;;14549:16:0;::::1;14568:1;14549:16:::0;;;:7:::1;:16;::::0;;;;;:20;14546:108:::1;;-1:-1:-1::0;;;;;14625:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;14605:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;14586:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;14546:108:::1;-1:-1:-1::0;;;;;14664:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;14664:27:0::1;14687:4;14664:27:::0;;::::1;::::0;;;14702:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;14702:23:0::1;::::0;;::::1;::::0;;14398:335::o;11544:198::-;-1:-1:-1;;;;;11634:20:0;;11610:7;11634:20;;;:11;:20;;;;;;;;11630:49;;;-1:-1:-1;;;;;;11663:16:0;;;;;:7;:16;;;;;;;11544:198::o;11630:49::-;-1:-1:-1;;;;;11717:16:0;;;;;;:7;:16;;;;;;11697:37;;:19;:37::i;6066:148::-;5979:6;;-1:-1:-1;;;;;5979:6:0;1374:10;5979:22;5971:67;;;;-1:-1:-1;;;5971:67:0;;8698:2:1;5971:67:0;;;8680:21:1;;;8717:18;;;8710:30;8776:34;8756:18;;;8749:62;8828:18;;5971:67:0;8496:356:1;5971:67:0;6173:1:::1;6157:6:::0;;6136:40:::1;::::0;-1:-1:-1;;;;;6157:6:0;;::::1;::::0;6136:40:::1;::::0;6173:1;;6136:40:::1;6204:1;6187:19:::0;;-1:-1:-1;;;;;;6187:19:0::1;::::0;;6066:148::o;32125:341::-;10165:8;;-1:-1:-1;;;;;10165:8:0;1374:10;-1:-1:-1;;;;;10149:24:0;;10141:80;;;;-1:-1:-1;;;10141:80:0;;4740:2:1;10141:80:0;;;4722:21:1;4779:2;4759:18;;;4752:30;-1:-1:-1;;;;;;;;;;;4798:18:1;;;4791:62;-1:-1:-1;;;4869:18:1;;;4862:41;4920:19;;10141:80:0;4538:407:1;10141:80:0;32244:12:::1;32224:17;:32;32216:94;;;::::0;-1:-1:-1;;;32216:94:0;;10977:2:1;32216:94:0::1;::::0;::::1;10959:21:1::0;11016:2;10996:18;;;10989:30;11055:34;11035:18;;;11028:62;11126:19;11106:18;;;11099:47;11163:19;;32216:94:0::1;10775:413:1::0;32216:94:0::1;32351:17;32329:18;;:39;;32321:88;;;::::0;-1:-1:-1;;;32321:88:0;;5513:2:1;32321:88:0::1;::::0;::::1;5495:21:1::0;5552:2;5532:18;;;5525:30;5591:34;5571:18;;;5564:62;-1:-1:-1;;;5642:18:1;;;5635:34;5686:19;;32321:88:0::1;5311:400:1::0;32321:88:0::1;32420:18;:38:::0;32125:341::o;30969:293::-;10165:8;;-1:-1:-1;;;;;10165:8:0;1374:10;-1:-1:-1;;;;;10149:24:0;;10141:80;;;;-1:-1:-1;;;10141:80:0;;4740:2:1;10141:80:0;;;4722:21:1;4779:2;4759:18;;;4752:30;-1:-1:-1;;;;;;;;;;;4798:18:1;;;4791:62;-1:-1:-1;;;4869:18:1;;;4862:41;4920:19;;10141:80:0;4538:407:1;10141:80:0;31080:2:::1;31065:12;:17;31057:69;;;::::0;-1:-1:-1;;;31057:69:0;;11395:2:1;31057:69:0::1;::::0;::::1;11377:21:1::0;11434:2;11414:18;;;11407:30;11473:34;11453:18;;;11446:62;11544:9;11524:18;;;11517:37;11571:19;;31057:69:0::1;11193:403:1::0;31057:69:0::1;31162:12;31145:13;;:29;;31137:78;;;::::0;-1:-1:-1;;;31137:78:0;;5513:2:1;31137:78:0::1;::::0;::::1;5495:21:1::0;5552:2;5532:18;;;5525:30;5591:34;5571:18;;;5564:62;-1:-1:-1;;;5642:18:1;;;5635:34;5686:19;;31137:78:0::1;5311:400:1::0;31137:78:0::1;31226:13;:28:::0;30969:293::o;33355:238::-;10165:8;;-1:-1:-1;;;;;10165:8:0;1374:10;-1:-1:-1;;;;;10149:24:0;;10141:80;;;;-1:-1:-1;;;10141:80:0;;4740:2:1;10141:80:0;;;4722:21:1;4779:2;4759:18;;;4752:30;-1:-1:-1;;;;;;;;;;;4798:18:1;;;4791:62;-1:-1:-1;;;4869:18:1;;;4862:41;4920:19;;10141:80:0;4538:407:1;10141:80:0;33453:15:::1;::::0;-1:-1:-1;;;;;33453:36:0;;::::1;:15:::0;::::1;:36;;33445:85;;;::::0;-1:-1:-1;;;33445:85:0;;5513:2:1;33445:85:0::1;::::0;::::1;5495:21:1::0;5552:2;5532:18;;;5525:30;5591:34;5571:18;;;5564:62;-1:-1:-1;;;5642:18:1;;;5635:34;5686:19;;33445:85:0::1;5311:400:1::0;33445:85:0::1;33541:15;:44:::0;;-1:-1:-1;;;;;;33541:44:0::1;-1:-1:-1::0;;;;;33541:44:0;;;::::1;::::0;;;::::1;::::0;;33355:238::o;11255:87::-;11294:13;11327:7;11320:14;;;;;:::i;31548:149::-;10165:8;;-1:-1:-1;;;;;10165:8:0;1374:10;-1:-1:-1;;;;;10149:24:0;;10141:80;;;;-1:-1:-1;;;10141:80:0;;4740:2:1;10141:80:0;;;4722:21:1;4779:2;4759:18;;;4752:30;-1:-1:-1;;;;;;;;;;;4798:18:1;;;4791:62;-1:-1:-1;;;4869:18:1;;;4862:41;4920:19;;10141:80:0;4538:407:1;10141:80:0;31649:40:::1;31683:5;31649:29;8552:18;31661:16:::0;31649:11:::1;:29::i;:40::-;31634:12;:55:::0;-1:-1:-1;31548:149:0:o;32474:341::-;10165:8;;-1:-1:-1;;;;;10165:8:0;1374:10;-1:-1:-1;;;;;10149:24:0;;10141:80;;;;-1:-1:-1;;;10141:80:0;;4740:2:1;10141:80:0;;;4722:21:1;4779:2;4759:18;;;4752:30;-1:-1:-1;;;;;;;;;;;4798:18:1;;;4791:62;-1:-1:-1;;;4869:18:1;;;4862:41;4920:19;;10141:80:0;4538:407:1;10141:80:0;32594:12:::1;32573:17;:33;;32565:94;;;::::0;-1:-1:-1;;;32565:94:0;;11803:2:1;32565:94:0::1;::::0;::::1;11785:21:1::0;11842:2;11822:18;;;11815:30;11881:34;11861:18;;;11854:62;11952:18;11932;;;11925:46;11988:19;;32565:94:0::1;11601:412:1::0;32565:94:0::1;32700:17;32678:18;;:39;;32670:88;;;::::0;-1:-1:-1;;;32670:88:0;;5513:2:1;32670:88:0::1;::::0;::::1;5495:21:1::0;5552:2;5532:18;;;5525:30;5591:34;5571:18;;;5564:62;-1:-1:-1;;;5642:18:1;;;5635:34;5686:19;;32670:88:0::1;5311:400:1::0;32670:88:0::1;32769:18;:38:::0;32474:341::o;13192:269::-;13285:4;13302:129;1374:10;13325:7;13334:96;13373:15;13334:96;;;;;;;;;;;;;;;;;1374:10;13334:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;13334:34:0;;;;;;;;;;;;:38;:96::i;26356:111::-;5979:6;;-1:-1:-1;;;;;5979:6:0;1374:10;5979:22;5971:67;;;;-1:-1:-1;;;5971:67:0;;8698:2:1;5971:67:0;;;8680:21:1;;;8717:18;;;8710:30;8776:34;8756:18;;;8749:62;8828:18;;5971:67:0;8496:356:1;5971:67:0;26430:8:::1;:29:::0;;-1:-1:-1;;;;;;26430:29:0::1;-1:-1:-1::0;;;;;26430:29:0;;;::::1;::::0;;;::::1;::::0;;26356:111::o;11750:373::-;11865:10;;11828:4;;-1:-1:-1;;;;;11865:10:0;1374;-1:-1:-1;;;;;11849:26:0;;11845:93;;;11899:27;11908:6;11916:9;11899:8;:27::i;:::-;11892:34;;;;11845:93;11974:8;;-1:-1:-1;;;;;11974:8:0;1374:10;-1:-1:-1;;;;;11958:24:0;;:56;;;;-1:-1:-1;11999:15:0;;-1:-1:-1;;;;;11986:28:0;;;11999:15;;11986:28;11958:56;11956:59;11948:92;;;;-1:-1:-1;;;11948:92:0;;7938:2:1;11948:92:0;;;7920:21:1;7977:2;7957:18;;;7950:30;8016:22;7996:18;;;7989:50;8056:18;;11948:92:0;7736:344:1;11948:92:0;12051:42;1374:10;12075:9;12086:6;12051:9;:42::i;28059:142::-;28120:16;28176:17;28156;28166:6;28156:9;:17::i;:::-;:37;;28059:142;-1:-1:-1;;28059:142:0:o;31270:270::-;10165:8;;-1:-1:-1;;;;;10165:8:0;1374:10;-1:-1:-1;;;;;10149:24:0;;10141:80;;;;-1:-1:-1;;;10141:80:0;;4740:2:1;10141:80:0;;;4722:21:1;4779:2;4759:18;;;4752:30;-1:-1:-1;;;;;;;;;;;4798:18:1;;;4791:62;-1:-1:-1;;;4869:18:1;;;4862:41;4920:19;;10141:80:0;4538:407:1;10141:80:0;31368:1:::1;31358:7;:11;31350:56;;;::::0;-1:-1:-1;;;31350:56:0;;12220:2:1;31350:56:0::1;::::0;::::1;12202:21:1::0;;;12239:18;;;12232:30;12298:34;12278:18;;;12271:62;12350:18;;31350:56:0::1;12018:356:1::0;31350:56:0::1;31446:7;31425:17;;:28;;31417:77;;;::::0;-1:-1:-1;;;31417:77:0;;5513:2:1;31417:77:0::1;::::0;::::1;5495:21:1::0;5552:2;5532:18;;;5525:30;5591:34;5571:18;;;5564:62;-1:-1:-1;;;5642:18:1;;;5635:34;5686:19;;31417:77:0::1;5311:400:1::0;31417:77:0::1;31505:17;:27:::0;31270:270::o;26859:242::-;26933:22;26969:15;26986:16;27006:19;:17;:19::i;:::-;26968:57;;-1:-1:-1;26968:57:0;-1:-1:-1;27044:48:0;26968:57;27045:29;:13;26968:57;27045:17;:29::i;33075:272::-;10165:8;;-1:-1:-1;;;;;10165:8:0;1374:10;-1:-1:-1;;;;;10149:24:0;;10141:80;;;;-1:-1:-1;;;10141:80:0;;4740:2:1;10141:80:0;;;4722:21:1;4779:2;4759:18;;;4752:30;-1:-1:-1;;;;;;;;;;;4798:18:1;;;4791:62;-1:-1:-1;;;4869:18:1;;;4862:41;4920:19;;10141:80:0;4538:407:1;10141:80:0;33166:22:::1;::::0;::::1;;::::0;;::::1;;:34;;::::0;::::1;;;;33158:83;;;::::0;-1:-1:-1;;;33158:83:0;;5513:2:1;33158:83:0::1;::::0;::::1;5495:21:1::0;5552:2;5532:18;;;5525:30;5591:34;5571:18;;;5564:62;-1:-1:-1;;;5642:18:1;;;5635:34;5686:19;;33158:83:0::1;5311:400:1::0;33158:83:0::1;33252:22;:33:::0;;;::::1;;;;-1:-1:-1::0;;33252:33:0;;::::1;;::::0;;33301:38:::1;::::0;::::1;::::0;::::1;::::0;33277:8;179:14:1;172:22;154:41;;142:2;127:18;;14:187;30411:177:0;5979:6;;-1:-1:-1;;;;;5979:6:0;1374:10;5979:22;5971:67;;;;-1:-1:-1;;;5971:67:0;;8698:2:1;5971:67:0;;;8680:21:1;;;8717:18;;;8710:30;8776:34;8756:18;;;8749:62;8828:18;;5971:67:0;8496:356:1;5971:67:0;30475:9:::1;::::0;;;::::1;;;30474:10;30466:47;;;::::0;-1:-1:-1;;;30466:47:0;;12581:2:1;30466:47:0::1;::::0;::::1;12563:21:1::0;12620:2;12600:18;;;12593:30;12659:26;12639:18;;;12632:54;12703:18;;30466:47:0::1;12379:348:1::0;30466:47:0::1;30524:9;:16:::0;;-1:-1:-1;;30524:16:0::1;::::0;::::1;::::0;;30565:15:::1;30551:11;:29:::0;30411:177::o;29541:670::-;10165:8;;-1:-1:-1;;;;;10165:8:0;1374:10;-1:-1:-1;;;;;10149:24:0;;10141:80;;;;-1:-1:-1;;;10141:80:0;;4740:2:1;10141:80:0;;;4722:21:1;4779:2;4759:18;;;4752:30;-1:-1:-1;;;;;;;;;;;4798:18:1;;;4791:62;-1:-1:-1;;;4869:18:1;;;4862:41;4920:19;;10141:80:0;4538:407:1;10141:80:0;29693:9:::1;;29657:33;29678:11;29657:20;:33::i;:::-;:45;29649:109;;;::::0;-1:-1:-1;;;29649:109:0;;12934:2:1;29649:109:0::1;::::0;::::1;12916:21:1::0;12973:2;12953:18;;;12946:30;13012:34;12992:18;;;12985:62;13083:21;13063:18;;;13056:49;13122:19;;29649:109:0::1;12732:415:1::0;29649:109:0::1;29787:8;::::0;29800:11;;29777:19:::1;::::0;-1:-1:-1;;;;;29787:8:0::1;29777:9;:19::i;:::-;:34;;29769:77;;;::::0;-1:-1:-1;;;29769:77:0;;13354:2:1;29769:77:0::1;::::0;::::1;13336:21:1::0;13393:2;13373:18;;;13366:30;13432:32;13412:18;;;13405:60;13482:18;;29769:77:0::1;13152:354:1::0;29769:77:0::1;29859:14;:12;:14::i;:::-;29902:8;::::0;29884:55:::1;::::0;-1:-1:-1;;;;;29902:8:0::1;29920:4;29927:11:::0;29884:17:::1;:55::i;:::-;29950:15;25904::::0;;25894:7;:25;25946:21;;25930:13;:37;25850:125;29950:15:::1;30011:21;30043:29;30060:11:::0;30043:16:::1;:29::i;:::-;30083:26;30112:41;:21;30138:14:::0;30112:25:::1;:41::i;:::-;30166:8;::::0;:37:::1;::::0;30083:70;;-1:-1:-1;;;;;;30166:8:0::1;::::0;:37;::::1;;;::::0;30083:70;;30166:8:::1;:37:::0;:8;:37;30083:70;30166:8;:37;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;29612:599;;29541:670:::0;:::o;26236:112::-;5979:6;;-1:-1:-1;;;;;5979:6:0;1374:10;5979:22;5971:67;;;;-1:-1:-1;;;5971:67:0;;8698:2:1;5971:67:0;;;8680:21:1;;;8717:18;;;8710:30;8776:34;8756:18;;;8749:62;8828:18;;5971:67:0;8496:356:1;5971:67:0;-1:-1:-1;;;;;26305:27:0::1;26335:5;26305:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;26305:35:0::1;::::0;;26236:112::o;31705:412::-;10165:8;;-1:-1:-1;;;;;10165:8:0;1374:10;-1:-1:-1;;;;;10149:24:0;;10141:80;;;;-1:-1:-1;;;10141:80:0;;4740:2:1;10141:80:0;;;4722:21:1;4779:2;4759:18;;;4752:30;-1:-1:-1;;;;;;;;;;;4798:18:1;;;4791:62;-1:-1:-1;;;4869:18:1;;;4862:41;4920:19;;10141:80:0;4538:407:1;10141:80:0;31848:17:::1;31822:23;:43;31814:123;;;::::0;-1:-1:-1;;;31814:123:0;;13713:2:1;31814:123:0::1;::::0;::::1;13695:21:1::0;13752:2;13732:18;;;13725:30;13791:34;13771:18;;;13764:62;13862:34;13842:18;;;13835:62;13934:5;13913:19;;;13906:34;13957:19;;31814:123:0::1;13511:471:1::0;31814:123:0::1;31984:23;31956:24;;:51;;31948:100;;;::::0;-1:-1:-1;;;31948:100:0;;5513:2:1;31948:100:0::1;::::0;::::1;5495:21:1::0;5552:2;5532:18;;;5525:30;5591:34;5571:18;;;5564:62;-1:-1:-1;;;5642:18:1;;;5635:34;5686:19;;31948:100:0::1;5311:400:1::0;31948:100:0::1;32059:24;:50:::0;31705:412::o;6222:244::-;5979:6;;-1:-1:-1;;;;;5979:6:0;1374:10;5979:22;5971:67;;;;-1:-1:-1;;;5971:67:0;;8698:2:1;5971:67:0;;;8680:21:1;;;8717:18;;;8710:30;8776:34;8756:18;;;8749:62;8828:18;;5971:67:0;8496:356:1;5971:67:0;-1:-1:-1;;;;;6311:22:0;::::1;6303:73;;;::::0;-1:-1:-1;;;6303:73:0;;14189:2:1;6303:73:0::1;::::0;::::1;14171:21:1::0;14228:2;14208:18;;;14201:30;14267:34;14247:18;;;14240:62;14338:8;14318:18;;;14311:36;14364:19;;6303:73:0::1;13987:402:1::0;6303:73:0::1;6413:6;::::0;;6392:38:::1;::::0;-1:-1:-1;;;;;6392:38:0;;::::1;::::0;6413:6;::::1;::::0;6392:38:::1;::::0;::::1;6441:6;:17:::0;;-1:-1:-1;;;;;;6441:17:0::1;-1:-1:-1::0;;;;;6441:17:0;;;::::1;::::0;;;::::1;::::0;;6222:244::o;15224:337::-;-1:-1:-1;;;;;15317:19:0;;15309:68;;;;-1:-1:-1;;;15309:68:0;;14596:2:1;15309:68:0;;;14578:21:1;14635:2;14615:18;;;14608:30;14674:34;14654:18;;;14647:62;14745:6;14725:18;;;14718:34;14769:19;;15309:68:0;14394:400:1;15309:68:0;-1:-1:-1;;;;;15396:21:0;;15388:68;;;;-1:-1:-1;;;15388:68:0;;15001:2:1;15388:68:0;;;14983:21:1;15040:2;15020:18;;;15013:30;15079:34;15059:18;;;15052:62;-1:-1:-1;;;15130:18:1;;;15123:32;15172:19;;15388:68:0;14799:398:1;15388:68:0;-1:-1:-1;;;;;15469:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15521:32;;1618:25:1;;;15521:32:0;;1591:18:1;15521:32:0;;;;;;;15224:337;;;:::o;27621:430::-;27691:4;27796:9;;27765:28;27786:6;27765:20;:28::i;:::-;:40;:101;;;;-1:-1:-1;27823:12:0;;27851:15;;27823:25;;27840:7;27823:16;:25::i;:::-;:43;27765:101;27743:184;;;;-1:-1:-1;;;27743:184:0;;15404:2:1;27743:184:0;;;15386:21:1;15443:2;15423:18;;;15416:30;15482:34;15462:18;;;15455:62;15553:13;15533:18;;;15526:41;15584:19;;27743:184:0;15202:407:1;27743:184:0;27955:15;27940:12;:30;27991:10;;27981:40;;-1:-1:-1;;;;;27991:10:0;28003:9;28014:6;15569:2452;5890:7;5917:6;-1:-1:-1;;;;;15652:15:0;;;5917:6;;15652:15;15649:93;;15692:9;;;;;;;15684:46;;;;-1:-1:-1;;;15684:46:0;;15816:2:1;15684:46:0;;;15798:21:1;15855:2;15835:18;;;15828:30;15894:26;15874:18;;;15867:54;15938:18;;15684:46:0;15614:348:1;15684:46:0;-1:-1:-1;;;;;15761:10:0;;;;;;:4;:10;;;;;;;;15760:11;15752:44;;;;-1:-1:-1;;;15752:44:0;;16169:2:1;15752:44:0;;;16151:21:1;16208:2;16188:18;;;16181:30;16247:22;16227:18;;;16220:50;16287:18;;15752:44:0;15967:344:1;15752:44:0;-1:-1:-1;;;;;15815:18:0;;15807:68;;;;-1:-1:-1;;;15807:68:0;;16518:2:1;15807:68:0;;;16500:21:1;16557:2;16537:18;;;16530:30;16596:34;16576:18;;;16569:62;16667:7;16647:18;;;16640:35;16692:19;;15807:68:0;16316:401:1;15807:68:0;-1:-1:-1;;;;;15894:16:0;;15886:64;;;;-1:-1:-1;;;15886:64:0;;16924:2:1;15886:64:0;;;16906:21:1;16963:2;16943:18;;;16936:30;17002:34;16982:18;;;16975:62;17073:5;17053:18;;;17046:33;17096:19;;15886:64:0;16722:399:1;15886:64:0;15978:1;15969:6;:10;15961:64;;;;-1:-1:-1;;;15961:64:0;;17328:2:1;15961:64:0;;;17310:21:1;17367:2;17347:18;;;17340:30;17406:34;17386:18;;;17379:62;17477:11;17457:18;;;17450:39;17506:19;;15961:64:0;17126:405:1;15961:64:0;5890:7;5917:6;-1:-1:-1;;;;;16049:15:0;;;5917:6;;16049:15;;;;:32;;-1:-1:-1;5890:7:0;5917:6;-1:-1:-1;;;;;16068:13:0;;;5917:6;;16068:13;;16049:32;16046:139;;;16116:12;;16106:6;:22;;16098:75;;;;-1:-1:-1;;;16098:75:0;;17738:2:1;16098:75:0;;;17720:21:1;17777:2;17757:18;;;17750:30;17816:34;17796:18;;;17789:62;17887:10;17867:18;;;17860:38;17915:19;;16098:75:0;17536:404:1;16098:75:0;16200:11;;16230:15;;16200:27;;16216:10;16200:15;:27::i;:::-;:45;:72;;;;-1:-1:-1;16257:15:0;;-1:-1:-1;;;;;16249:23:0;;;16257:15;;16249:23;16200:72;16197:587;;;-1:-1:-1;;;;;16289:8:0;;;;;;:4;:8;;;;;;;:15;;-1:-1:-1;;16289:15:0;16300:4;16289:15;;;;;;16319:16;;16300:4;;16289:8;16319:16;;16300:4;;16319:16;:::i;:::-;;;;-1:-1:-1;16197:587:0;;-1:-1:-1;16197:587:0;;16380:15;;-1:-1:-1;;;;;16372:23:0;;;16380:15;;16372:23;16368:405;;;-1:-1:-1;;;;;16416:12:0;;;;;;:8;:12;;;;;16431:15;16416:30;;16368:405;;;-1:-1:-1;;;;;16472:21:0;;16488:4;16472:21;;;;:46;;-1:-1:-1;16503:15:0;;-1:-1:-1;;;;;16497:21:0;;;16503:15;;16497:21;16472:46;16468:305;;;-1:-1:-1;;;;;16543:14:0;;;;;;:8;:14;;;;;;16575:15;;16543:29;;16562:9;16543:18;:29::i;:::-;:47;16539:219;;;-1:-1:-1;;;;;16615:10:0;;;;;;:4;:10;;;;;;;:17;;-1:-1:-1;;16615:17:0;16628:4;16615:17;;;;;;16655:16;;16628:4;;16615:10;16655:16;;16628:4;;16655:16;:::i;:::-;;;;-1:-1:-1;;;;;;;16703:10:0;;;;;;:4;:10;;;;;;;;16702:11;16694:44;;;;-1:-1:-1;;;16694:44:0;;16169:2:1;16694:44:0;;;16151:21:1;16208:2;16188:18;;;16181:30;16247:22;16227:18;;;16220:50;16287:18;;16694:44:0;15967:344:1;16694:44:0;16796:28;16827:24;16845:4;16827:9;:24::i;:::-;16917;;16959:16;;16796:55;;-1:-1:-1;16893:48:0;;;;16959:16;;16958:17;:43;;;;-1:-1:-1;16979:22:0;;;;;;;16958:43;:68;;;;-1:-1:-1;17011:15:0;;-1:-1:-1;;;;;17005:21:0;;;17011:15;;17005:21;16958:68;16954:869;;;17047:23;:48;;;;-1:-1:-1;;;;;;17074:21:0;;17090:4;17074:21;;17047:48;17043:125;;;17116:36;17127:24;;17116:10;:36::i;:::-;17202:21;17184:15;17259:28;17280:6;17259:20;:28::i;:::-;17306:15;;17238:49;;-1:-1:-1;17306:15:0;;;;;:42;;;;;17335:13;17325:7;:23;17306:42;17302:510;;;17391:18;;17375:13;:34;17371:426;;;17455:18;;17438:13;:35;17434:179;;17561:28;17575:13;17561;:28::i;:::-;17371:426;;;17744:33;17758:18;;17744:13;:33::i;:::-;17028:795;;16954:869;-1:-1:-1;;;;;17870:24:0;;17835:12;17870:24;;;:18;:24;;;;;;17850:4;;17870:24;;;:50;;-1:-1:-1;;;;;;17898:22:0;;;;;;:18;:22;;;;;;;;17870:50;17867:96;;;-1:-1:-1;17946:5:0;17867:96;17975:38;17990:4;17995:2;17998:6;18005:7;17975:14;:38::i;:::-;15638:2383;;;15569:2452;;;:::o;2431:190::-;2517:7;2553:12;2545:6;;;;2537:29;;;;-1:-1:-1;;;2537:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2577:9:0;2589:5;2593:1;2589;:5;:::i;:::-;2577:17;2431:190;-1:-1:-1;;;;;2431:190:0:o;24226:164::-;24268:7;24289:15;24306;24325:19;:17;:19::i;:::-;24288:56;;-1:-1:-1;24288:56:0;-1:-1:-1;24362:20:0;24288:56;;24362:11;:20::i;:::-;24355:27;;;;24226:164;:::o;2883:132::-;2941:7;2968:39;2972:1;2975;2968:39;;;;;;;;;;;;;;;;;:3;:39::i;2100:179::-;2158:7;;2190:5;2194:1;2190;:5;:::i;:::-;2178:17;;2219:1;2214;:6;;2206:46;;;;-1:-1:-1;;;2206:46:0;;18280:2:1;2206:46:0;;;18262:21:1;18319:2;18299:18;;;18292:30;18358:29;18338:18;;;18331:57;18405:18;;2206:46:0;18078:351:1;2629:246:0;2687:7;2711:6;2707:47;;-1:-1:-1;2741:1:0;2734:8;;2707:47;2764:9;2776:5;2780:1;2776;:5;:::i;:::-;2764:17;-1:-1:-1;2809:1:0;2800:5;2804:1;2764:17;2800:5;:::i;:::-;:10;2792:56;;;;-1:-1:-1;;;2792:56:0;;19088:2:1;2792:56:0;;;19070:21:1;19127:2;19107:18;;;19100:30;19166:34;19146:18;;;19139:62;-1:-1:-1;;;19217:18:1;;;19210:31;19258:19;;2792:56:0;18886:397:1;23024:419:0;23083:7;23092;23101;23110;23119;23128;23149:23;23174:12;23188:18;23210:20;23222:7;23210:11;:20::i;:::-;23148:82;;;;;;23242:15;23259:23;23284:12;23300:50;23312:7;23321:4;23327:10;23339;:8;:10::i;:::-;23300:11;:50::i;:::-;23241:109;;;;-1:-1:-1;23241:109:0;;-1:-1:-1;23401:15:0;;-1:-1:-1;23418:4:0;;-1:-1:-1;23424:10:0;;-1:-1:-1;23024:419:0;;-1:-1:-1;;;;;23024:419:0:o;25608:234::-;25654:7;;:12;:34;;;;-1:-1:-1;25670:13:0;;:18;25654:34;25651:46;;;25608:234::o;25651:46::-;25727:7;;;25709:15;:25;25769:13;;;25745:21;:37;-1:-1:-1;25795:11:0;;;;25817:17;25608:234::o;20563:502::-;20662:15;20679:23;20704:12;20718:23;20743:12;20757:18;20779:19;20790:7;20779:10;:19::i;:::-;-1:-1:-1;;;;;20827:15:0;;;;;;:7;:15;;;;;;20661:137;;-1:-1:-1;20661:137:0;;-1:-1:-1;20661:137:0;;-1:-1:-1;20661:137:0;-1:-1:-1;20661:137:0;-1:-1:-1;20661:137:0;-1:-1:-1;20827:28:0;;20661:137;20827:19;:28::i;:::-;-1:-1:-1;;;;;20809:15:0;;;;;;;:7;:15;;;;;;:46;;;;20887:18;;;;;;;:39;;20910:15;20887:22;:39::i;:::-;-1:-1:-1;;;;;20866:18:0;;;;;;:7;:18;;;;;:60;20937:26;20952:10;20937:14;:26::i;:::-;20974:23;20986:4;20992;20974:11;:23::i;:::-;21030:9;-1:-1:-1;;;;;21013:44:0;21022:6;-1:-1:-1;;;;;21013:44:0;;21041:15;21013:44;;;;1618:25:1;;1606:2;1591:18;;1472:177;21013:44:0;;;;;;;;20650:415;;;;;;20563:502;;;:::o;18606:666::-;18758:16;;;18772:1;18758:16;;;;;;;;18734:21;;18758:16;;;;;;;;;;-1:-1:-1;18758:16:0;18734:40;;18803:4;18785;18790:1;18785:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18785:23:0;;;:7;;;;;;;;;;:23;;;;18829:17;;:24;;;-1:-1:-1;;;18829:24:0;;;;:17;;;;;:22;;:24;;;;;18785:7;;18829:24;;;;;:17;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18819:4;18824:1;18819:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18819:34:0;;;:7;;;;;;;;;:34;18898:17;;18866:64;;18883:4;;18898:17;18918:11;18866:8;:64::i;:::-;18969:17;;:242;;;;;-1:-1:-1;;;;;18969:17:0;;;;:68;;:242;;19052:11;;18969:17;;19122:4;;19149;;19185:15;;18969:242;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19229:35;19246:11;19259:4;19229:35;;;;;;;:::i;:::-;;;;;;;;18661:611;18606:666;:::o;2287:136::-;2345:7;2372:43;2376:1;2379;2372:43;;;;;;;;;;;;;;;;;:3;:43::i;18029:417::-;10019:16;:23;;-1:-1:-1;;10019:23:0;10038:4;10019:23;;;18137:21:::1;18169:38;18186:20:::0;18169:16:::1;:38::i;:::-;18218:26;18247:41;:21;18273:14:::0;18247:25:::1;:41::i;:::-;18360:15;::::0;18419:17:::1;::::0;18400:13:::1;::::0;18218:70;;-1:-1:-1;18339:99:0::1;::::0;-1:-1:-1;;;;;18360:15:0;;::::1;::::0;18377:60:::1;::::0;18419:17;18377:37:::1;::::0;18218:70;;18377:22:::1;:37::i;:::-;:41:::0;::::1;:60::i;:::-;18339:20;:99::i;:::-;-1:-1:-1::0;;10065:16:0;:24;;-1:-1:-1;;10065:24:0;;;-1:-1:-1;18029:417:0:o;18454:144::-;10019:16;:23;;-1:-1:-1;;10019:23:0;10038:4;10019:23;;;18528:10;;18524:67:::1;;18555:24;18572:6;18555:16;:24::i;:::-;-1:-1:-1::0;10065:16:0;:24;;-1:-1:-1;;10065:24:0;;;18454:144::o;19866:689::-;19978:7;19974:40;;20000:14;:12;:14::i;:::-;-1:-1:-1;;;;;20031:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;20055:22:0;;;;;;:11;:22;;;;;;;;20054:23;20031:46;20027:467;;;20094:48;20116:6;20124:9;20135:6;20094:21;:48::i;:::-;20027:467;;;-1:-1:-1;;;;;20165:19:0;;;;;;:11;:19;;;;;;;;20164:20;:46;;;;-1:-1:-1;;;;;;20188:22:0;;;;;;:11;:22;;;;;;;;20164:46;20160:334;;;20227:46;20247:6;20255:9;20266:6;20227:19;:46::i;20160:334::-;-1:-1:-1;;;;;20295:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;20318:22:0;;;;;;:11;:22;;;;;;;;20295:45;20291:203;;;20357:48;20379:6;20387:9;20398:6;20357:21;:48::i;20291:203::-;20438:44;20456:6;20464:9;20475:6;20438:17;:44::i;:::-;20510:7;20506:41;;20532:15;25904;;25894:7;:25;25946:21;;25930:13;:37;25850:125;24398:556;24496:7;;24449;;;;8552:18;24449:7;24550:289;24574:9;:16;24570:20;;24550:289;;;24640:7;24616;:21;24624:9;24634:1;24624:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;24624:12:0;24616:21;;;;;;;;;;;;;:31;;:66;;;24675:7;24651;:21;24659:9;24669:1;24659:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;24659:12:0;24651:21;;;;;;;;;;;;;:31;24616:66;24612:97;;;-1:-1:-1;;24692:7:0;;;8552:18;;-1:-1:-1;24398:556:0;-1:-1:-1;;24398:556:0:o;24612:97::-;24734:34;24746:7;:21;24754:9;24764:1;24754:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;24754:12:0;24746:21;;;;;;;;;;;;;24734:7;;:11;:34::i;:::-;24724:44;;24793:34;24805:7;:21;24813:9;24823:1;24813:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;24813:12:0;24805:21;;;;;;;;;;;;;24793:7;;:11;:34::i;:::-;24783:44;-1:-1:-1;24592:3:0;;;;:::i;:::-;;;;24550:289;;;-1:-1:-1;24863:7:0;;:20;;8552:18;24863:11;:20::i;:::-;24853:7;:30;24849:61;;;-1:-1:-1;;24893:7:0;;;8552:18;;-1:-1:-1;24398:556:0;-1:-1:-1;24398:556:0:o;24849:61::-;24929:7;;24938;;-1:-1:-1;24398:556:0;-1:-1:-1;24398:556:0:o;3023:189::-;3109:7;3144:12;3137:5;3129:28;;;;-1:-1:-1;;;3129:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3168:9:0;3180:5;3184:1;3180;:5;:::i;23451:330::-;23511:7;23520;23529;23549:12;23564:24;23580:7;23564:15;:24::i;:::-;23549:39;;23599:18;23620:30;23642:7;23620:21;:30::i;:::-;23599:51;-1:-1:-1;23661:23:0;23687:33;23599:51;23687:17;:7;23699:4;23687:11;:17::i;:::-;:21;;:33::i;:::-;23661:59;23756:4;;-1:-1:-1;23762:10:0;;-1:-1:-1;23451:330:0;;-1:-1:-1;;;23451:330:0:o;23789:429::-;23904:7;;;;23960:24;:7;23972:11;23960;:24::i;:::-;23942:42;-1:-1:-1;23995:12:0;24010:21;:4;24019:11;24010:8;:21::i;:::-;23995:36;-1:-1:-1;24042:18:0;24063:27;:10;24078:11;24063:14;:27::i;:::-;24042:48;-1:-1:-1;24101:23:0;24127:33;24042:48;24127:17;:7;24139:4;24127:11;:17::i;:33::-;24179:7;;;;-1:-1:-1;24205:4:0;;-1:-1:-1;23789:429:0;;-1:-1:-1;;;;;;;23789:429:0:o;24962:350::-;25025:19;25047:10;:8;:10::i;:::-;25025:32;-1:-1:-1;25068:18:0;25089:27;:10;25025:32;25089:14;:27::i;:::-;25168:4;25152:22;;;;:7;:22;;;;;;25068:48;;-1:-1:-1;25152:38:0;;25068:48;25152:26;:38::i;:::-;25143:4;25127:22;;;;:7;:22;;;;;;;;:63;;;;25204:11;:26;;;;;;25201:103;;;25282:4;25266:22;;;;:7;:22;;;;;;:38;;25293:10;25266:26;:38::i;:::-;25257:4;25241:22;;;;:7;:22;;;;;:63;25201:103;25014:298;;24962:350;:::o;22869:147::-;22947:7;;:17;;22959:4;22947:11;:17::i;:::-;22937:7;:27;22988:10;;:20;;23003:4;22988:14;:20::i;:::-;22975:10;:33;-1:-1:-1;;22869:147:0:o;26475:126::-;26567:26;;-1:-1:-1;;;;;26567:18:0;;;:26;;;;;26586:6;;26567:26;;;;26586:6;26567:18;:26;;;;;;;;;;;;;;;;;;;19280:578;19427:16;;;19441:1;19427:16;;;;;;;;19403:21;;19427:16;;;;;;;;-1:-1:-1;;19464:17:0;;:24;;;-1:-1:-1;;;19464:24:0;;;;19403:40;;-1:-1:-1;;;;;;19464:17:0;;;;:22;;-1:-1:-1;19464:24:0;;;;;;;;;;;;;;:17;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19454:4;19459:1;19454:7;;;;;;;;:::i;:::-;;;;;;:34;-1:-1:-1;;;;;19454:34:0;;;-1:-1:-1;;;;;19454:34:0;;;;;19517:4;19499;19504:1;19499:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19499:23:0;;;:7;;;;;;;;;:23;19561:17;;;:68;19637:6;19561:17;19706:4;19725:11;19767:24;:15;19787:3;19767:19;:24::i;:::-;19561:241;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19820:30;19837:6;19845:4;19820:30;;;;;;;:::i;21656:563::-;21759:15;21776:23;21801:12;21815:23;21840:12;21854:18;21876:19;21887:7;21876:10;:19::i;:::-;-1:-1:-1;;;;;21924:15:0;;;;;;:7;:15;;;;;;21758:137;;-1:-1:-1;21758:137:0;;-1:-1:-1;21758:137:0;;-1:-1:-1;21758:137:0;-1:-1:-1;21758:137:0;-1:-1:-1;21758:137:0;-1:-1:-1;21924:28:0;;21944:7;21924:19;:28::i;:::-;-1:-1:-1;;;;;21906:15:0;;;;;;:7;:15;;;;;;;;:46;;;;21981:7;:15;;;;:28;;22001:7;21981:19;:28::i;21073:575::-;21174:15;21191:23;21216:12;21230:23;21255:12;21269:18;21291:19;21302:7;21291:10;:19::i;:::-;-1:-1:-1;;;;;21339:15:0;;;;;;:7;:15;;;;;;21173:137;;-1:-1:-1;21173:137:0;;-1:-1:-1;21173:137:0;;-1:-1:-1;21173:137:0;-1:-1:-1;21173:137:0;-1:-1:-1;21173:137:0;-1:-1:-1;21339:28:0;;21173:137;21339:19;:28::i;:::-;-1:-1:-1;;;;;21321:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;21399:18;;;;;:7;:18;;;;;:39;;21422:15;21399:22;:39::i;:::-;-1:-1:-1;;;;;21378:18:0;;;;;;:7;:18;;;;;;;;:60;;;;21470:7;:18;;;;:39;;21493:15;21470:22;:39::i;22227:634::-;22330:15;22347:23;22372:12;22386:23;22411:12;22425:18;22447:19;22458:7;22447:10;:19::i;:::-;-1:-1:-1;;;;;22495:15:0;;;;;;:7;:15;;;;;;22329:137;;-1:-1:-1;22329:137:0;;-1:-1:-1;22329:137:0;;-1:-1:-1;22329:137:0;-1:-1:-1;22329:137:0;-1:-1:-1;22329:137:0;-1:-1:-1;22495:28:0;;22515:7;22495:19;:28::i;:::-;-1:-1:-1;;;;;22477:15:0;;;;;;:7;:15;;;;;;;;:46;;;;22552:7;:15;;;;:28;;22572:7;22552:19;:28::i;25320:130::-;25384:7;25411:31;25436:5;25411:20;25423:7;;25411;:11;;:20;;;;:::i;25458:142::-;25528:7;25555:37;25586:5;25555:26;25567:13;;25555:7;:11;;:26;;;;:::i;206:180:1:-;265:6;318:2;306:9;297:7;293:23;289:32;286:52;;;334:1;331;324:12;286:52;-1:-1:-1;357:23:1;;206:180;-1:-1:-1;206:180:1:o;391:597::-;503:4;532:2;561;550:9;543:21;593:6;587:13;636:6;631:2;620:9;616:18;609:34;661:1;671:140;685:6;682:1;679:13;671:140;;;780:14;;;776:23;;770:30;746:17;;;765:2;742:26;735:66;700:10;;671:140;;;829:6;826:1;823:13;820:91;;;899:1;894:2;885:6;874:9;870:22;866:31;859:42;820:91;-1:-1:-1;972:2:1;951:15;-1:-1:-1;;947:29:1;932:45;;;;979:2;928:54;;391:597;-1:-1:-1;;;391:597:1:o;993:154::-;-1:-1:-1;;;;;1072:5:1;1068:54;1061:5;1058:65;1048:93;;1137:1;1134;1127:12;1048:93;993:154;:::o;1152:315::-;1220:6;1228;1281:2;1269:9;1260:7;1256:23;1252:32;1249:52;;;1297:1;1294;1287:12;1249:52;1336:9;1323:23;1355:31;1380:5;1355:31;:::i;:::-;1405:5;1457:2;1442:18;;;;1429:32;;-1:-1:-1;;;1152:315:1:o;1654:247::-;1713:6;1766:2;1754:9;1745:7;1741:23;1737:32;1734:52;;;1782:1;1779;1772:12;1734:52;1821:9;1808:23;1840:31;1865:5;1840:31;:::i;2159:456::-;2236:6;2244;2252;2305:2;2293:9;2284:7;2280:23;2276:32;2273:52;;;2321:1;2318;2311:12;2273:52;2360:9;2347:23;2379:31;2404:5;2379:31;:::i;:::-;2429:5;-1:-1:-1;2486:2:1;2471:18;;2458:32;2499:33;2458:32;2499:33;:::i;:::-;2159:456;;2551:7;;-1:-1:-1;;;2605:2:1;2590:18;;;;2577:32;;2159:456::o;2851:160::-;2916:20;;2972:13;;2965:21;2955:32;;2945:60;;3001:1;2998;2991:12;2945:60;2851:160;;;:::o;3016:180::-;3072:6;3125:2;3113:9;3104:7;3100:23;3096:32;3093:52;;;3141:1;3138;3131:12;3093:52;3164:26;3180:9;3164:26;:::i;3390:248::-;3455:6;3463;3516:2;3504:9;3495:7;3491:23;3487:32;3484:52;;;3532:1;3529;3522:12;3484:52;3568:9;3555:23;3545:33;;3597:35;3628:2;3617:9;3613:18;3597:35;:::i;:::-;3587:45;;3390:248;;;;;:::o;4145:388::-;4213:6;4221;4274:2;4262:9;4253:7;4249:23;4245:32;4242:52;;;4290:1;4287;4280:12;4242:52;4329:9;4316:23;4348:31;4373:5;4348:31;:::i;:::-;4398:5;-1:-1:-1;4455:2:1;4440:18;;4427:32;4468:33;4427:32;4468:33;:::i;:::-;4520:7;4510:17;;;4145:388;;;;;:::o;5716:437::-;5795:1;5791:12;;;;5838;;;5859:61;;5913:4;5905:6;5901:17;5891:27;;5859:61;5966:2;5958:6;5955:14;5935:18;5932:38;5929:218;;;-1:-1:-1;;;6000:1:1;5993:88;6104:4;6101:1;6094:15;6132:4;6129:1;6122:15;5929:218;;5716:437;;;:::o;6513:184::-;-1:-1:-1;;;6562:1:1;6555:88;6662:4;6659:1;6652:15;6686:4;6683:1;6676:15;6702:125;6742:4;6770:1;6767;6764:8;6761:34;;;6775:18;;:::i;:::-;-1:-1:-1;6812:9:1;;6702:125::o;6832:188::-;6911:13;;6964:30;6953:42;;6943:53;;6933:81;;7010:1;7007;7000:12;7025:450;7112:6;7120;7128;7181:2;7169:9;7160:7;7156:23;7152:32;7149:52;;;7197:1;7194;7187:12;7149:52;7220:40;7250:9;7220:40;:::i;:::-;7210:50;;7279:49;7324:2;7313:9;7309:18;7279:49;:::i;:::-;7269:59;;7371:2;7360:9;7356:18;7350:25;7415:10;7408:5;7404:22;7397:5;7394:33;7384:61;;7441:1;7438;7431:12;7384:61;7464:5;7454:15;;;7025:450;;;;;:::o;7480:251::-;7550:6;7603:2;7591:9;7582:7;7578:23;7574:32;7571:52;;;7619:1;7616;7609:12;7571:52;7651:9;7645:16;7670:31;7695:5;7670:31;:::i;9209:184::-;-1:-1:-1;;;9258:1:1;9251:88;9358:4;9355:1;9348:15;9382:4;9379:1;9372:15;9398:184;-1:-1:-1;;;9447:1:1;9440:88;9547:4;9544:1;9537:15;9571:4;9568:1;9561:15;9587:135;9626:3;-1:-1:-1;;9647:17:1;;9644:43;;;9667:18;;:::i;:::-;-1:-1:-1;9714:1:1;9703:13;;9587:135::o;17945:128::-;17985:3;18016:1;18012:6;18009:1;18006:13;18003:39;;;18022:18;;:::i;:::-;-1:-1:-1;18058:9:1;;17945:128::o;18434:168::-;18474:7;18540:1;18536;18532:6;18528:14;18525:1;18522:21;18517:1;18510:9;18503:17;18499:45;18496:71;;;18547:18;;:::i;:::-;-1:-1:-1;18587:9:1;;18434:168::o;18607:274::-;18647:1;18673;18663:189;;-1:-1:-1;;;18705:1:1;18698:88;18809:4;18806:1;18799:15;18837:4;18834:1;18827:15;18663:189;-1:-1:-1;18866:9:1;;18607:274::o;19477:484::-;19530:3;19568:5;19562:12;19595:6;19590:3;19583:19;19621:4;19650:2;19645:3;19641:12;19634:19;;19687:2;19680:5;19676:14;19708:1;19718:218;19732:6;19729:1;19726:13;19718:218;;;19797:13;;-1:-1:-1;;;;;19793:62:1;19781:75;;19876:12;;;;19911:15;;;;19754:1;19747:9;19718:218;;;-1:-1:-1;19952:3:1;;19477:484;-1:-1:-1;;;;;19477:484:1:o;19966:605::-;20265:6;20254:9;20247:25;20308:6;20303:2;20292:9;20288:18;20281:34;20351:3;20346:2;20335:9;20331:18;20324:31;20228:4;20372:57;20424:3;20413:9;20409:19;20401:6;20372:57;:::i;:::-;-1:-1:-1;;;;;20465:55:1;;;;20460:2;20445:18;;20438:83;-1:-1:-1;20552:3:1;20537:19;20530:35;20364:65;19966:605;-1:-1:-1;;;19966:605:1:o;20576:332::-;20783:6;20772:9;20765:25;20826:2;20821;20810:9;20806:18;20799:30;20746:4;20846:56;20898:2;20887:9;20883:18;20875:6;20846:56;:::i;20913:533::-;21184:6;21173:9;21166:25;21227:3;21222:2;21211:9;21207:18;21200:31;21147:4;21248:57;21300:3;21289:9;21285:19;21277:6;21248:57;:::i;:::-;-1:-1:-1;;;;;21341:55:1;;;;21336:2;21321:18;;21314:83;-1:-1:-1;21428:2:1;21413:18;21406:34;21240:65;20913:533;-1:-1:-1;;20913:533:1:o

Swarm Source

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