ETH Price: $3,442.17 (-0.40%)
Gas: 3 Gwei

Token

Razzlekhan Inu (RAZZLE)
 

Overview

Max Total Supply

4,600,000,000 RAZZLE

Holders

123

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
7,998,255.465997878 RAZZLE

Value
$0.00
0x81e87ce7d7a32bba25e992ff7a0df5b83eeb68d5
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
Razzlekhan

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-18
*/

/**

*/

/*

Razzlekhan Inu (RAZZLE) 

Telegram :
https://t.me/Razzlekhan

Twitter : 
https://twitter.com/razzlekhaninu

Website: 
Www.Razzlekhaninu.com

*/

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

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

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

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

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

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

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

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

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    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;
    }
}

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;
    }
}

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

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

    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
        );
}

contract Razzlekhan is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private constant _name = "Razzlekhan Inu";
    string private constant _symbol = "RAZZLE";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 4600000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    //Buy Fee
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _marketingFeeOnBuy = 400; //100 = 1%
    uint256 private _liquidityFeeOnBuy = 100; //100 = 1%
    
    //Sell Fee
    uint256 private _redisFeeOnSell = 0;
    uint256 private _marketingFeeOnSell = 400; //100 = 1%
    uint256 private _liquidityFeeOnSell = 100; //100 = 1%
    
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _marketingFeeOnSell.add(_liquidityFeeOnSell).div(100);
    
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
    
    mapping(address => bool) public bots;
    mapping (address => bool) public preTrader;
    
    address payable private _taxWallet1 = payable(0x5341e2194DD52850f9c9eA6628C93161BD0Dbe9c);
    address payable private _taxWallet2 = payable(0xdf3Caf0036FF9c190F5dACF1D4803C74a02d38a0);
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    
    uint256 public _maxTxAmount = _tTotal.mul(30).div(10000); //0.30%
    uint256 public _maxWalletSize = _tTotal.mul(50).div(10000); //0.50%
    uint256 public _swapTokensAtAmount = _tTotal.mul(10).div(10000); //0.1%

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        
        _rOwned[_msgSender()] = _rTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet1] = true;
        _isExcludedFromFee[_taxWallet2] = true;
        
        preTrader[owner()] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _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) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

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

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
    
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
        
        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (from != owner() && to != owner() && !preTrader[from] && !preTrader[to]) {
            
            //Trade start check
            if (!tradingOpen) {
                require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled");
            }
              
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
            
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount) {
                contractTokenBalance = _maxTxAmount;
            }
            
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapDistributeAndLiquify(contractTokenBalance);
            }
        }
        
        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
            
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _marketingFeeOnBuy.add(_liquidityFeeOnBuy).div(100);
            }
    
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _marketingFeeOnSell.add(_liquidityFeeOnSell).div(100);
            }
            
        }

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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    
    function swapDistributeAndLiquify(uint256 tokens) private {

        uint256 totalTokensFee = _marketingFeeOnSell.add(_liquidityFeeOnSell);
        uint256 halfLPFee = _liquidityFeeOnSell.div(2);

        uint256 tokensToSwapToETH = tokens.mul(_marketingFeeOnSell.add(halfLPFee)).div(totalTokensFee);

        uint256 liquidityTokens = tokens.mul(halfLPFee).div(totalTokensFee);

        uint256 initialETHBalance = address(this).balance;
        swapTokensForEth(tokensToSwapToETH);
        uint256 newETHBalance = address(this).balance.sub(initialETHBalance);

        uint256 ethMarketingShare = newETHBalance.mul(_marketingFeeOnSell).div(totalTokensFee.sub(halfLPFee));
        uint256 ethLPShare = newETHBalance.sub(ethMarketingShare);
        
        sendETHToFee(ethMarketingShare);
        addLiquidity(liquidityTokens, ethLPShare);
    }
    
    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {

        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

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

    function sendETHToFee(uint256 amount) private {
        _taxWallet1.transfer(amount.div(2));
        _taxWallet2.transfer(amount.div(2));
    }

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == _taxWallet1 || _msgSender() == _taxWallet2 || _msgSender() == owner());
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _taxWallet1 || _msgSender() == _taxWallet2 || _msgSender() == owner());
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _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 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

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

    receive() external payable {}

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

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);

        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);

        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;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
    
        return (rSupply, tSupply);
    }
    
    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 marketingFeeOnBuy, uint256 marketingFeeOnSell, uint256 liquidityFeeOnBuy, uint256 liquidityFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        
        _marketingFeeOnBuy = marketingFeeOnBuy;
        _marketingFeeOnSell = marketingFeeOnSell;
        
        _liquidityFeeOnBuy = liquidityFeeOnBuy;
        _liquidityFeeOnSell = liquidityFeeOnSell;
    
    }
    
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set marketing tax wallet
    function setTaxWallet(address payable taxWallet1, address payable taxWallet2) public onlyOwner {
        _taxWallet1 = taxWallet1;
        _taxWallet2 = taxWallet2;
    }
    
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
    
    //Set MAx transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }
    
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }
 
    function allowPreTrading(address account, bool allowed) public onlyOwner {
        require(preTrader[account] != allowed, "TOKEN: Already enabled.");
        preTrader[account] = allowed;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"allowPreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"marketingFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"marketingFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"liquidityFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"liquidityFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"taxWallet1","type":"address"},{"internalType":"address payable","name":"taxWallet2","type":"address"}],"name":"setTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052673fd67ba0cecc00006000196200001c919062000d58565b6000196200002b919062000ca9565b600555600060075561019060085560646009556000600a55610190600b556064600c55600a54600d556200008c606462000078600c54600b546200081f60201b62001a4f1790919060201c565b6200088260201b62001aad1790919060201c565b600e55600d54600f55600e54601055735341e2194dd52850f9c9ea6628c93161bd0dbe9c601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073df3caf0036ff9c190f5dacf1d4803c74a02d38a0601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff021916908315150217905550620001b8612710620001a4601e673fd67ba0cecc0000620008d460201b62001af71790919060201c565b6200088260201b62001aad1790919060201c565b601755620001f9612710620001e56032673fd67ba0cecc0000620008d460201b62001af71790919060201c565b6200088260201b62001aad1790919060201c565b6018556200023a61271062000226600a673fd67ba0cecc0000620008d460201b62001af71790919060201c565b6200088260201b62001aad1790919060201c565b6019553480156200024a57600080fd5b5060006200025d6200095860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060055460026000620003126200095860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003f157600080fd5b505afa15801562000406573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042c919062000a08565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200048f57600080fd5b505afa158015620004a4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ca919062000a08565b6040518363ffffffff1660e01b8152600401620004e992919062000ae5565b602060405180830381600087803b1580156200050457600080fd5b505af115801562000519573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200053f919062000a08565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000620005956200096060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160126000620007486200096060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620007a96200095860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef673fd67ba0cecc000060405162000810919062000b7a565b60405180910390a35062000e91565b600080828462000830919062000bb3565b90508381101562000878576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200086f9062000b36565b60405180910390fd5b8091505092915050565b6000620008cc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200098960201b60201c565b905092915050565b600080831415620008e9576000905062000952565b60008284620008f9919062000c48565b90508284826200090a919062000c10565b146200094d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009449062000b58565b60405180910390fd5b809150505b92915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008083118290620009d3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009ca919062000b12565b60405180910390fd5b5060008385620009e4919062000c10565b9050809150509392505050565b60008151905062000a028162000e77565b92915050565b60006020828403121562000a1b57600080fd5b600062000a2b84828501620009f1565b91505092915050565b62000a3f8162000ce4565b82525050565b600062000a528262000b97565b62000a5e818562000ba2565b935062000a7081856020860162000d22565b62000a7b8162000dee565b840191505092915050565b600062000a95601b8362000ba2565b915062000aa28262000dff565b602082019050919050565b600062000abc60218362000ba2565b915062000ac98262000e28565b604082019050919050565b62000adf8162000d18565b82525050565b600060408201905062000afc600083018562000a34565b62000b0b602083018462000a34565b9392505050565b6000602082019050818103600083015262000b2e818462000a45565b905092915050565b6000602082019050818103600083015262000b518162000a86565b9050919050565b6000602082019050818103600083015262000b738162000aad565b9050919050565b600060208201905062000b91600083018462000ad4565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000bc08262000d18565b915062000bcd8362000d18565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000c055762000c0462000d90565b5b828201905092915050565b600062000c1d8262000d18565b915062000c2a8362000d18565b92508262000c3d5762000c3c62000dbf565b5b828204905092915050565b600062000c558262000d18565b915062000c628362000d18565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c9e5762000c9d62000d90565b5b828202905092915050565b600062000cb68262000d18565b915062000cc38362000d18565b92508282101562000cd95762000cd862000d90565b5b828203905092915050565b600062000cf18262000cf8565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000d4257808201518184015260208101905062000d25565b8381111562000d52576000848401525b50505050565b600062000d658262000d18565b915062000d728362000d18565b92508262000d855762000d8462000dbf565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b62000e828162000ce4565b811462000e8e57600080fd5b50565b61472e8062000ea16000396000f3fe6080604052600436106101e65760003560e01c80637d1db4a511610102578063bdd795ef11610095578063dd62ed3e11610064578063dd62ed3e146106c4578063e6b0ed0214610701578063ea1644d51461072a578063f2fde38b14610753576101ed565b8063bdd795ef1461060a578063bfd7928414610647578063c3c8cd8014610684578063c492f0461461069b576101ed565b806395d89b41116100d157806395d89b411461055057806398a5c3151461057b578063a9059cbb146105a4578063bd9a3b6d146105e1576101ed565b80637d1db4a5146104a65780638da5cb5b146104d15780638f70ccf7146104fc5780638f9a55c014610525576101ed565b8063313ce5671161017a5780636fc3eaec116101495780636fc3eaec1461041257806370a0823114610429578063715018a61461046657806374010ece1461047d576101ed565b8063313ce5671461036a57806349bd5a5e146103955780636b999053146103c05780636d8aa8f8146103e9576101ed565b806318160ddd116101b657806318160ddd146102ae57806323b872dd146102d95780632f9c4569146103165780632fd689e31461033f576101ed565b8062b8cf2a146101f257806306fdde031461021b578063095ea7b3146102465780631694505e14610283576101ed565b366101ed57005b600080fd5b3480156101fe57600080fd5b50610219600480360381019061021491906136f4565b61077c565b005b34801561022757600080fd5b506102306108cc565b60405161023d9190613c36565b60405180910390f35b34801561025257600080fd5b5061026d60048036038101906102689190613660565b610909565b60405161027a9190613c00565b60405180910390f35b34801561028f57600080fd5b50610298610927565b6040516102a59190613c1b565b60405180910390f35b3480156102ba57600080fd5b506102c361094d565b6040516102d09190613e38565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb91906135d5565b61095d565b60405161030d9190613c00565b60405180910390f35b34801561032257600080fd5b5061033d60048036038101906103389190613624565b610a36565b005b34801561034b57600080fd5b50610354610bb9565b6040516103619190613e38565b60405180910390f35b34801561037657600080fd5b5061037f610bbf565b60405161038c9190613ead565b60405180910390f35b3480156103a157600080fd5b506103aa610bc8565b6040516103b79190613b84565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e2919061350b565b610bee565b005b3480156103f557600080fd5b50610410600480360381019061040b9190613735565b610cde565b005b34801561041e57600080fd5b50610427610d8f565b005b34801561043557600080fd5b50610450600480360381019061044b919061350b565b610ea4565b60405161045d9190613e38565b60405180910390f35b34801561047257600080fd5b5061047b610ef5565b005b34801561048957600080fd5b506104a4600480360381019061049f919061375e565b611048565b005b3480156104b257600080fd5b506104bb6110e7565b6040516104c89190613e38565b60405180910390f35b3480156104dd57600080fd5b506104e66110ed565b6040516104f39190613b84565b60405180910390f35b34801561050857600080fd5b50610523600480360381019061051e9190613735565b611116565b005b34801561053157600080fd5b5061053a6111c8565b6040516105479190613e38565b60405180910390f35b34801561055c57600080fd5b506105656111ce565b6040516105729190613c36565b60405180910390f35b34801561058757600080fd5b506105a2600480360381019061059d919061375e565b61120b565b005b3480156105b057600080fd5b506105cb60048036038101906105c69190613660565b6112aa565b6040516105d89190613c00565b60405180910390f35b3480156105ed57600080fd5b50610608600480360381019061060391906137d6565b6112c8565b005b34801561061657600080fd5b50610631600480360381019061062c919061350b565b61138f565b60405161063e9190613c00565b60405180910390f35b34801561065357600080fd5b5061066e6004803603810190610669919061350b565b6113af565b60405161067b9190613c00565b60405180910390f35b34801561069057600080fd5b506106996113cf565b005b3480156106a757600080fd5b506106c260048036038101906106bd919061369c565b6114ec565b005b3480156106d057600080fd5b506106eb60048036038101906106e69190613599565b61164c565b6040516106f89190613e38565b60405180910390f35b34801561070d57600080fd5b506107286004803603810190610723919061355d565b6116d3565b005b34801561073657600080fd5b50610751600480360381019061074c919061375e565b6117ee565b005b34801561075f57600080fd5b5061077a6004803603810190610775919061350b565b61188d565b005b610784611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610811576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080890613d98565b60405180910390fd5b60005b81518110156108c85760016011600084848151811061085c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108c090614184565b915050610814565b5050565b60606040518060400160405280600e81526020017f52617a7a6c656b68616e20496e75000000000000000000000000000000000000815250905090565b600061091d610916611b72565b8484611b7a565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000673fd67ba0cecc0000905090565b600061096a848484611d45565b610a2b84610976611b72565b610a26856040518060600160405280602881526020016146d160289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109dc611b72565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c29092919063ffffffff16565b611b7a565b600190509392505050565b610a3e611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610acb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac290613d98565b60405180910390fd5b801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5590613d58565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bf6611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7a90613d98565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ce6611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6a90613d98565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dd0611b72565b73ffffffffffffffffffffffffffffffffffffffff161480610e465750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e2e611b72565b73ffffffffffffffffffffffffffffffffffffffff16145b80610e8a5750610e546110ed565b73ffffffffffffffffffffffffffffffffffffffff16610e72611b72565b73ffffffffffffffffffffffffffffffffffffffff16145b610e9357600080fd5b6000479050610ea181612726565b50565b6000610eee600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612821565b9050919050565b610efd611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8190613d98565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611050611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d490613d98565b60405180910390fd5b8060178190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61111e611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a290613d98565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600681526020017f52415a5a4c450000000000000000000000000000000000000000000000000000815250905090565b611213611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129790613d98565b60405180910390fd5b8060198190555050565b60006112be6112b7611b72565b8484611d45565b6001905092915050565b6112d0611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461135d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135490613d98565b60405180910390fd5b8560078190555084600a819055508360088190555082600b819055508160098190555080600c81905550505050505050565b60126020528060005260406000206000915054906101000a900460ff1681565b60116020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611410611b72565b73ffffffffffffffffffffffffffffffffffffffff1614806114865750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661146e611b72565b73ffffffffffffffffffffffffffffffffffffffff16145b806114ca57506114946110ed565b73ffffffffffffffffffffffffffffffffffffffff166114b2611b72565b73ffffffffffffffffffffffffffffffffffffffff16145b6114d357600080fd5b60006114de30610ea4565b90506114e98161288f565b50565b6114f4611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611581576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157890613d98565b60405180910390fd5b60005b838390508110156116465781600460008686858181106115cd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906115e2919061350b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061163e90614184565b915050611584565b50505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116db611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175f90613d98565b60405180910390fd5b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6117f6611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187a90613d98565b60405180910390fd5b8060188190555050565b611895611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191990613d98565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611992576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198990613cd8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808284611a5e9190613f6e565b905083811015611aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9a90613d38565b60405180910390fd5b8091505092915050565b6000611aef83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b89565b905092915050565b600080831415611b0a5760009050611b6c565b60008284611b189190613ff5565b9050828482611b279190613fc4565b14611b67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5e90613d78565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be190613e18565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5190613cf8565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d389190613e38565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dac90613dd8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1c90613c58565b60405180910390fd5b60008111611e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5f90613db8565b60405180910390fd5b611e706110ed565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ede5750611eae6110ed565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f345750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f8a5750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561237357601660149054906101000a900460ff1661203057601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661202f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202690613c78565b60405180910390fd5b5b601754811115612075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206c90613cb8565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121195750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214f90613d18565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461220557601854816121ba84610ea4565b6121c49190613f6e565b10612204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fb90613df8565b60405180910390fd5b5b600061221030610ea4565b905060006019548210159050601754821061222b5760175491505b8080156122455750601660159054906101000a900460ff16155b801561229f5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156122b5575060168054906101000a900460ff165b801561230b5750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123615750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123705761236f82612bec565b5b50505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061241a5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806124cd5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156124cc5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156124db57600090506126b0565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156125865750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156125c557600754600d819055506125be60646125b0600954600854611a4f90919063ffffffff16565b611aad90919063ffffffff16565b600e819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156126705750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156126af57600a54600d819055506126a8606461269a600c54600b54611a4f90919063ffffffff16565b611aad90919063ffffffff16565b600e819055505b5b6126bc84848484612d1e565b50505050565b600083831115829061270a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127019190613c36565b60405180910390fd5b5060008385612719919061404f565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612776600284611aad90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156127a1573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6127f2600284611aad90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561281d573d6000803e3d6000fd5b5050565b6000600554821115612868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285f90613c98565b60405180910390fd5b6000612872612d4b565b90506128878184611aad90919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156128ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561291b5781602001602082028036833780820191505090505b5090503081600081518110612959577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156129fb57600080fd5b505afa158015612a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a339190613534565b81600181518110612a6d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ad430601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b7a565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612b38959493929190613e53565b600060405180830381600087803b158015612b5257600080fd5b505af1158015612b66573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b60008083118290612bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc79190613c36565b60405180910390fd5b5060008385612bdf9190613fc4565b9050809150509392505050565b6000612c05600c54600b54611a4f90919063ffffffff16565b90506000612c1f6002600c54611aad90919063ffffffff16565b90506000612c5c83612c4e612c3f85600b54611a4f90919063ffffffff16565b87611af790919063ffffffff16565b611aad90919063ffffffff16565b90506000612c8584612c778588611af790919063ffffffff16565b611aad90919063ffffffff16565b90506000479050612c958361288f565b6000612caa8247612d7690919063ffffffff16565b90506000612ce7612cc48789612d7690919063ffffffff16565b612cd9600b5485611af790919063ffffffff16565b611aad90919063ffffffff16565b90506000612cfe8284612d7690919063ffffffff16565b9050612d0982612726565b612d138582612dc0565b505050505050505050565b80612d2c57612d2b612eae565b5b612d37848484612ef1565b80612d4557612d446130bc565b5b50505050565b6000806000612d586130d0565b91509150612d6f8183611aad90919063ffffffff16565b9250505090565b6000612db883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126c2565b905092915050565b612ded30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b7a565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806000426040518863ffffffff1660e01b8152600401612e5596959493929190613b9f565b6060604051808303818588803b158015612e6e57600080fd5b505af1158015612e82573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ea79190613787565b5050505050565b6000600d54148015612ec257506000600e54145b15612ecc57612eef565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b600080600080600080612f038761312f565b955095509550955095509550612f6186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ff685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4f90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061304281613197565b61304c8483613254565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516130a99190613e38565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b600080600060055490506000673fd67ba0cecc00009050613104673fd67ba0cecc0000600554611aad90919063ffffffff16565b82101561312257600554673fd67ba0cecc000093509350505061312b565b81819350935050505b9091565b600080600080600080600080600061314c8a600d54600e5461328e565b925092509250600061315c612d4b565b9050600080600061316f8e878787613324565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006131a1612d4b565b905060006131b88284611af790919063ffffffff16565b905061320c81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4f90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61326982600554612d7690919063ffffffff16565b60058190555061328481600654611a4f90919063ffffffff16565b6006819055505050565b6000806000806132ba60646132ac888a611af790919063ffffffff16565b611aad90919063ffffffff16565b905060006132e460646132d6888b611af790919063ffffffff16565b611aad90919063ffffffff16565b9050600061330d826132ff858c612d7690919063ffffffff16565b612d7690919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061333d8589611af790919063ffffffff16565b905060006133548689611af790919063ffffffff16565b9050600061336b8789611af790919063ffffffff16565b90506000613394826133868587612d7690919063ffffffff16565b612d7690919063ffffffff16565b9050838184965096509650505050509450945094915050565b60006133c06133bb84613eed565b613ec8565b905080838252602082019050828560208602820111156133df57600080fd5b60005b8581101561340f57816133f58882613419565b8452602084019350602083019250506001810190506133e2565b5050509392505050565b60008135905061342881614674565b92915050565b60008151905061343d81614674565b92915050565b6000813590506134528161468b565b92915050565b60008083601f84011261346a57600080fd5b8235905067ffffffffffffffff81111561348357600080fd5b60208301915083602082028301111561349b57600080fd5b9250929050565b600082601f8301126134b357600080fd5b81356134c38482602086016133ad565b91505092915050565b6000813590506134db816146a2565b92915050565b6000813590506134f0816146b9565b92915050565b600081519050613505816146b9565b92915050565b60006020828403121561351d57600080fd5b600061352b84828501613419565b91505092915050565b60006020828403121561354657600080fd5b60006135548482850161342e565b91505092915050565b6000806040838503121561357057600080fd5b600061357e85828601613443565b925050602061358f85828601613443565b9150509250929050565b600080604083850312156135ac57600080fd5b60006135ba85828601613419565b92505060206135cb85828601613419565b9150509250929050565b6000806000606084860312156135ea57600080fd5b60006135f886828701613419565b935050602061360986828701613419565b925050604061361a868287016134e1565b9150509250925092565b6000806040838503121561363757600080fd5b600061364585828601613419565b9250506020613656858286016134cc565b9150509250929050565b6000806040838503121561367357600080fd5b600061368185828601613419565b9250506020613692858286016134e1565b9150509250929050565b6000806000604084860312156136b157600080fd5b600084013567ffffffffffffffff8111156136cb57600080fd5b6136d786828701613458565b935093505060206136ea868287016134cc565b9150509250925092565b60006020828403121561370657600080fd5b600082013567ffffffffffffffff81111561372057600080fd5b61372c848285016134a2565b91505092915050565b60006020828403121561374757600080fd5b6000613755848285016134cc565b91505092915050565b60006020828403121561377057600080fd5b600061377e848285016134e1565b91505092915050565b60008060006060848603121561379c57600080fd5b60006137aa868287016134f6565b93505060206137bb868287016134f6565b92505060406137cc868287016134f6565b9150509250925092565b60008060008060008060c087890312156137ef57600080fd5b60006137fd89828a016134e1565b965050602061380e89828a016134e1565b955050604061381f89828a016134e1565b945050606061383089828a016134e1565b935050608061384189828a016134e1565b92505060a061385289828a016134e1565b9150509295509295509295565b600061386b8383613877565b60208301905092915050565b61388081614083565b82525050565b61388f81614083565b82525050565b60006138a082613f29565b6138aa8185613f4c565b93506138b583613f19565b8060005b838110156138e65781516138cd888261385f565b97506138d883613f3f565b9250506001810190506138b9565b5085935050505092915050565b6138fc816140a7565b82525050565b61390b816140ea565b82525050565b61391a8161410e565b82525050565b600061392b82613f34565b6139358185613f5d565b9350613945818560208601614120565b61394e8161425a565b840191505092915050565b6000613966602383613f5d565b91506139718261426b565b604082019050919050565b6000613989603f83613f5d565b9150613994826142ba565b604082019050919050565b60006139ac602a83613f5d565b91506139b782614309565b604082019050919050565b60006139cf601c83613f5d565b91506139da82614358565b602082019050919050565b60006139f2602683613f5d565b91506139fd82614381565b604082019050919050565b6000613a15602283613f5d565b9150613a20826143d0565b604082019050919050565b6000613a38602383613f5d565b9150613a438261441f565b604082019050919050565b6000613a5b601b83613f5d565b9150613a668261446e565b602082019050919050565b6000613a7e601783613f5d565b9150613a8982614497565b602082019050919050565b6000613aa1602183613f5d565b9150613aac826144c0565b604082019050919050565b6000613ac4602083613f5d565b9150613acf8261450f565b602082019050919050565b6000613ae7602983613f5d565b9150613af282614538565b604082019050919050565b6000613b0a602583613f5d565b9150613b1582614587565b604082019050919050565b6000613b2d602383613f5d565b9150613b38826145d6565b604082019050919050565b6000613b50602483613f5d565b9150613b5b82614625565b604082019050919050565b613b6f816140d3565b82525050565b613b7e816140dd565b82525050565b6000602082019050613b996000830184613886565b92915050565b600060c082019050613bb46000830189613886565b613bc16020830188613b66565b613bce6040830187613911565b613bdb6060830186613911565b613be86080830185613886565b613bf560a0830184613b66565b979650505050505050565b6000602082019050613c1560008301846138f3565b92915050565b6000602082019050613c306000830184613902565b92915050565b60006020820190508181036000830152613c508184613920565b905092915050565b60006020820190508181036000830152613c7181613959565b9050919050565b60006020820190508181036000830152613c918161397c565b9050919050565b60006020820190508181036000830152613cb18161399f565b9050919050565b60006020820190508181036000830152613cd1816139c2565b9050919050565b60006020820190508181036000830152613cf1816139e5565b9050919050565b60006020820190508181036000830152613d1181613a08565b9050919050565b60006020820190508181036000830152613d3181613a2b565b9050919050565b60006020820190508181036000830152613d5181613a4e565b9050919050565b60006020820190508181036000830152613d7181613a71565b9050919050565b60006020820190508181036000830152613d9181613a94565b9050919050565b60006020820190508181036000830152613db181613ab7565b9050919050565b60006020820190508181036000830152613dd181613ada565b9050919050565b60006020820190508181036000830152613df181613afd565b9050919050565b60006020820190508181036000830152613e1181613b20565b9050919050565b60006020820190508181036000830152613e3181613b43565b9050919050565b6000602082019050613e4d6000830184613b66565b92915050565b600060a082019050613e686000830188613b66565b613e756020830187613911565b8181036040830152613e878186613895565b9050613e966060830185613886565b613ea36080830184613b66565b9695505050505050565b6000602082019050613ec26000830184613b75565b92915050565b6000613ed2613ee3565b9050613ede8282614153565b919050565b6000604051905090565b600067ffffffffffffffff821115613f0857613f0761422b565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613f79826140d3565b9150613f84836140d3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613fb957613fb86141cd565b5b828201905092915050565b6000613fcf826140d3565b9150613fda836140d3565b925082613fea57613fe96141fc565b5b828204905092915050565b6000614000826140d3565b915061400b836140d3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614044576140436141cd565b5b828202905092915050565b600061405a826140d3565b9150614065836140d3565b925082821015614078576140776141cd565b5b828203905092915050565b600061408e826140b3565b9050919050565b60006140a0826140b3565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006140f5826140fc565b9050919050565b6000614107826140b3565b9050919050565b6000614119826140d3565b9050919050565b60005b8381101561413e578082015181840152602081019050614123565b8381111561414d576000848401525b50505050565b61415c8261425a565b810181811067ffffffffffffffff8211171561417b5761417a61422b565b5b80604052505050565b600061418f826140d3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156141c2576141c16141cd565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61467d81614083565b811461468857600080fd5b50565b61469481614095565b811461469f57600080fd5b50565b6146ab816140a7565b81146146b657600080fd5b50565b6146c2816140d3565b81146146cd57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122066ae5de15632c5a7c59b8d556bba02869591a86e65a262f4702d9a529f61301664736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101e65760003560e01c80637d1db4a511610102578063bdd795ef11610095578063dd62ed3e11610064578063dd62ed3e146106c4578063e6b0ed0214610701578063ea1644d51461072a578063f2fde38b14610753576101ed565b8063bdd795ef1461060a578063bfd7928414610647578063c3c8cd8014610684578063c492f0461461069b576101ed565b806395d89b41116100d157806395d89b411461055057806398a5c3151461057b578063a9059cbb146105a4578063bd9a3b6d146105e1576101ed565b80637d1db4a5146104a65780638da5cb5b146104d15780638f70ccf7146104fc5780638f9a55c014610525576101ed565b8063313ce5671161017a5780636fc3eaec116101495780636fc3eaec1461041257806370a0823114610429578063715018a61461046657806374010ece1461047d576101ed565b8063313ce5671461036a57806349bd5a5e146103955780636b999053146103c05780636d8aa8f8146103e9576101ed565b806318160ddd116101b657806318160ddd146102ae57806323b872dd146102d95780632f9c4569146103165780632fd689e31461033f576101ed565b8062b8cf2a146101f257806306fdde031461021b578063095ea7b3146102465780631694505e14610283576101ed565b366101ed57005b600080fd5b3480156101fe57600080fd5b50610219600480360381019061021491906136f4565b61077c565b005b34801561022757600080fd5b506102306108cc565b60405161023d9190613c36565b60405180910390f35b34801561025257600080fd5b5061026d60048036038101906102689190613660565b610909565b60405161027a9190613c00565b60405180910390f35b34801561028f57600080fd5b50610298610927565b6040516102a59190613c1b565b60405180910390f35b3480156102ba57600080fd5b506102c361094d565b6040516102d09190613e38565b60405180910390f35b3480156102e557600080fd5b5061030060048036038101906102fb91906135d5565b61095d565b60405161030d9190613c00565b60405180910390f35b34801561032257600080fd5b5061033d60048036038101906103389190613624565b610a36565b005b34801561034b57600080fd5b50610354610bb9565b6040516103619190613e38565b60405180910390f35b34801561037657600080fd5b5061037f610bbf565b60405161038c9190613ead565b60405180910390f35b3480156103a157600080fd5b506103aa610bc8565b6040516103b79190613b84565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e2919061350b565b610bee565b005b3480156103f557600080fd5b50610410600480360381019061040b9190613735565b610cde565b005b34801561041e57600080fd5b50610427610d8f565b005b34801561043557600080fd5b50610450600480360381019061044b919061350b565b610ea4565b60405161045d9190613e38565b60405180910390f35b34801561047257600080fd5b5061047b610ef5565b005b34801561048957600080fd5b506104a4600480360381019061049f919061375e565b611048565b005b3480156104b257600080fd5b506104bb6110e7565b6040516104c89190613e38565b60405180910390f35b3480156104dd57600080fd5b506104e66110ed565b6040516104f39190613b84565b60405180910390f35b34801561050857600080fd5b50610523600480360381019061051e9190613735565b611116565b005b34801561053157600080fd5b5061053a6111c8565b6040516105479190613e38565b60405180910390f35b34801561055c57600080fd5b506105656111ce565b6040516105729190613c36565b60405180910390f35b34801561058757600080fd5b506105a2600480360381019061059d919061375e565b61120b565b005b3480156105b057600080fd5b506105cb60048036038101906105c69190613660565b6112aa565b6040516105d89190613c00565b60405180910390f35b3480156105ed57600080fd5b50610608600480360381019061060391906137d6565b6112c8565b005b34801561061657600080fd5b50610631600480360381019061062c919061350b565b61138f565b60405161063e9190613c00565b60405180910390f35b34801561065357600080fd5b5061066e6004803603810190610669919061350b565b6113af565b60405161067b9190613c00565b60405180910390f35b34801561069057600080fd5b506106996113cf565b005b3480156106a757600080fd5b506106c260048036038101906106bd919061369c565b6114ec565b005b3480156106d057600080fd5b506106eb60048036038101906106e69190613599565b61164c565b6040516106f89190613e38565b60405180910390f35b34801561070d57600080fd5b506107286004803603810190610723919061355d565b6116d3565b005b34801561073657600080fd5b50610751600480360381019061074c919061375e565b6117ee565b005b34801561075f57600080fd5b5061077a6004803603810190610775919061350b565b61188d565b005b610784611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610811576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080890613d98565b60405180910390fd5b60005b81518110156108c85760016011600084848151811061085c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108c090614184565b915050610814565b5050565b60606040518060400160405280600e81526020017f52617a7a6c656b68616e20496e75000000000000000000000000000000000000815250905090565b600061091d610916611b72565b8484611b7a565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000673fd67ba0cecc0000905090565b600061096a848484611d45565b610a2b84610976611b72565b610a26856040518060600160405280602881526020016146d160289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109dc611b72565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126c29092919063ffffffff16565b611b7a565b600190509392505050565b610a3e611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610acb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac290613d98565b60405180910390fd5b801515601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5590613d58565b60405180910390fd5b80601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610bf6611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7a90613d98565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ce6611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6a90613d98565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dd0611b72565b73ffffffffffffffffffffffffffffffffffffffff161480610e465750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e2e611b72565b73ffffffffffffffffffffffffffffffffffffffff16145b80610e8a5750610e546110ed565b73ffffffffffffffffffffffffffffffffffffffff16610e72611b72565b73ffffffffffffffffffffffffffffffffffffffff16145b610e9357600080fd5b6000479050610ea181612726565b50565b6000610eee600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612821565b9050919050565b610efd611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8190613d98565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611050611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d490613d98565b60405180910390fd5b8060178190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61111e611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a290613d98565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600681526020017f52415a5a4c450000000000000000000000000000000000000000000000000000815250905090565b611213611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129790613d98565b60405180910390fd5b8060198190555050565b60006112be6112b7611b72565b8484611d45565b6001905092915050565b6112d0611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461135d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135490613d98565b60405180910390fd5b8560078190555084600a819055508360088190555082600b819055508160098190555080600c81905550505050505050565b60126020528060005260406000206000915054906101000a900460ff1681565b60116020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611410611b72565b73ffffffffffffffffffffffffffffffffffffffff1614806114865750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661146e611b72565b73ffffffffffffffffffffffffffffffffffffffff16145b806114ca57506114946110ed565b73ffffffffffffffffffffffffffffffffffffffff166114b2611b72565b73ffffffffffffffffffffffffffffffffffffffff16145b6114d357600080fd5b60006114de30610ea4565b90506114e98161288f565b50565b6114f4611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611581576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157890613d98565b60405180910390fd5b60005b838390508110156116465781600460008686858181106115cd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906115e2919061350b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061163e90614184565b915050611584565b50505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6116db611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175f90613d98565b60405180910390fd5b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6117f6611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187a90613d98565b60405180910390fd5b8060188190555050565b611895611b72565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191990613d98565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611992576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198990613cd8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808284611a5e9190613f6e565b905083811015611aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9a90613d38565b60405180910390fd5b8091505092915050565b6000611aef83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b89565b905092915050565b600080831415611b0a5760009050611b6c565b60008284611b189190613ff5565b9050828482611b279190613fc4565b14611b67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5e90613d78565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be190613e18565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5190613cf8565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d389190613e38565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dac90613dd8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1c90613c58565b60405180910390fd5b60008111611e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5f90613db8565b60405180910390fd5b611e706110ed565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ede5750611eae6110ed565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611f345750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f8a5750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561237357601660149054906101000a900460ff1661203057601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661202f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202690613c78565b60405180910390fd5b5b601754811115612075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206c90613cb8565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121195750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214f90613d18565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461220557601854816121ba84610ea4565b6121c49190613f6e565b10612204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fb90613df8565b60405180910390fd5b5b600061221030610ea4565b905060006019548210159050601754821061222b5760175491505b8080156122455750601660159054906101000a900460ff16155b801561229f5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156122b5575060168054906101000a900460ff165b801561230b5750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123615750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123705761236f82612bec565b5b50505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061241a5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806124cd5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156124cc5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156124db57600090506126b0565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156125865750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156125c557600754600d819055506125be60646125b0600954600854611a4f90919063ffffffff16565b611aad90919063ffffffff16565b600e819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156126705750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156126af57600a54600d819055506126a8606461269a600c54600b54611a4f90919063ffffffff16565b611aad90919063ffffffff16565b600e819055505b5b6126bc84848484612d1e565b50505050565b600083831115829061270a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127019190613c36565b60405180910390fd5b5060008385612719919061404f565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612776600284611aad90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156127a1573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6127f2600284611aad90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561281d573d6000803e3d6000fd5b5050565b6000600554821115612868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285f90613c98565b60405180910390fd5b6000612872612d4b565b90506128878184611aad90919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156128ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561291b5781602001602082028036833780820191505090505b5090503081600081518110612959577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156129fb57600080fd5b505afa158015612a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a339190613534565b81600181518110612a6d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ad430601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b7a565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612b38959493929190613e53565b600060405180830381600087803b158015612b5257600080fd5b505af1158015612b66573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b60008083118290612bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc79190613c36565b60405180910390fd5b5060008385612bdf9190613fc4565b9050809150509392505050565b6000612c05600c54600b54611a4f90919063ffffffff16565b90506000612c1f6002600c54611aad90919063ffffffff16565b90506000612c5c83612c4e612c3f85600b54611a4f90919063ffffffff16565b87611af790919063ffffffff16565b611aad90919063ffffffff16565b90506000612c8584612c778588611af790919063ffffffff16565b611aad90919063ffffffff16565b90506000479050612c958361288f565b6000612caa8247612d7690919063ffffffff16565b90506000612ce7612cc48789612d7690919063ffffffff16565b612cd9600b5485611af790919063ffffffff16565b611aad90919063ffffffff16565b90506000612cfe8284612d7690919063ffffffff16565b9050612d0982612726565b612d138582612dc0565b505050505050505050565b80612d2c57612d2b612eae565b5b612d37848484612ef1565b80612d4557612d446130bc565b5b50505050565b6000806000612d586130d0565b91509150612d6f8183611aad90919063ffffffff16565b9250505090565b6000612db883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126c2565b905092915050565b612ded30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b7a565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806000426040518863ffffffff1660e01b8152600401612e5596959493929190613b9f565b6060604051808303818588803b158015612e6e57600080fd5b505af1158015612e82573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ea79190613787565b5050505050565b6000600d54148015612ec257506000600e54145b15612ecc57612eef565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b600080600080600080612f038761312f565b955095509550955095509550612f6186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ff685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4f90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061304281613197565b61304c8483613254565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516130a99190613e38565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b600080600060055490506000673fd67ba0cecc00009050613104673fd67ba0cecc0000600554611aad90919063ffffffff16565b82101561312257600554673fd67ba0cecc000093509350505061312b565b81819350935050505b9091565b600080600080600080600080600061314c8a600d54600e5461328e565b925092509250600061315c612d4b565b9050600080600061316f8e878787613324565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006131a1612d4b565b905060006131b88284611af790919063ffffffff16565b905061320c81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4f90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61326982600554612d7690919063ffffffff16565b60058190555061328481600654611a4f90919063ffffffff16565b6006819055505050565b6000806000806132ba60646132ac888a611af790919063ffffffff16565b611aad90919063ffffffff16565b905060006132e460646132d6888b611af790919063ffffffff16565b611aad90919063ffffffff16565b9050600061330d826132ff858c612d7690919063ffffffff16565b612d7690919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061333d8589611af790919063ffffffff16565b905060006133548689611af790919063ffffffff16565b9050600061336b8789611af790919063ffffffff16565b90506000613394826133868587612d7690919063ffffffff16565b612d7690919063ffffffff16565b9050838184965096509650505050509450945094915050565b60006133c06133bb84613eed565b613ec8565b905080838252602082019050828560208602820111156133df57600080fd5b60005b8581101561340f57816133f58882613419565b8452602084019350602083019250506001810190506133e2565b5050509392505050565b60008135905061342881614674565b92915050565b60008151905061343d81614674565b92915050565b6000813590506134528161468b565b92915050565b60008083601f84011261346a57600080fd5b8235905067ffffffffffffffff81111561348357600080fd5b60208301915083602082028301111561349b57600080fd5b9250929050565b600082601f8301126134b357600080fd5b81356134c38482602086016133ad565b91505092915050565b6000813590506134db816146a2565b92915050565b6000813590506134f0816146b9565b92915050565b600081519050613505816146b9565b92915050565b60006020828403121561351d57600080fd5b600061352b84828501613419565b91505092915050565b60006020828403121561354657600080fd5b60006135548482850161342e565b91505092915050565b6000806040838503121561357057600080fd5b600061357e85828601613443565b925050602061358f85828601613443565b9150509250929050565b600080604083850312156135ac57600080fd5b60006135ba85828601613419565b92505060206135cb85828601613419565b9150509250929050565b6000806000606084860312156135ea57600080fd5b60006135f886828701613419565b935050602061360986828701613419565b925050604061361a868287016134e1565b9150509250925092565b6000806040838503121561363757600080fd5b600061364585828601613419565b9250506020613656858286016134cc565b9150509250929050565b6000806040838503121561367357600080fd5b600061368185828601613419565b9250506020613692858286016134e1565b9150509250929050565b6000806000604084860312156136b157600080fd5b600084013567ffffffffffffffff8111156136cb57600080fd5b6136d786828701613458565b935093505060206136ea868287016134cc565b9150509250925092565b60006020828403121561370657600080fd5b600082013567ffffffffffffffff81111561372057600080fd5b61372c848285016134a2565b91505092915050565b60006020828403121561374757600080fd5b6000613755848285016134cc565b91505092915050565b60006020828403121561377057600080fd5b600061377e848285016134e1565b91505092915050565b60008060006060848603121561379c57600080fd5b60006137aa868287016134f6565b93505060206137bb868287016134f6565b92505060406137cc868287016134f6565b9150509250925092565b60008060008060008060c087890312156137ef57600080fd5b60006137fd89828a016134e1565b965050602061380e89828a016134e1565b955050604061381f89828a016134e1565b945050606061383089828a016134e1565b935050608061384189828a016134e1565b92505060a061385289828a016134e1565b9150509295509295509295565b600061386b8383613877565b60208301905092915050565b61388081614083565b82525050565b61388f81614083565b82525050565b60006138a082613f29565b6138aa8185613f4c565b93506138b583613f19565b8060005b838110156138e65781516138cd888261385f565b97506138d883613f3f565b9250506001810190506138b9565b5085935050505092915050565b6138fc816140a7565b82525050565b61390b816140ea565b82525050565b61391a8161410e565b82525050565b600061392b82613f34565b6139358185613f5d565b9350613945818560208601614120565b61394e8161425a565b840191505092915050565b6000613966602383613f5d565b91506139718261426b565b604082019050919050565b6000613989603f83613f5d565b9150613994826142ba565b604082019050919050565b60006139ac602a83613f5d565b91506139b782614309565b604082019050919050565b60006139cf601c83613f5d565b91506139da82614358565b602082019050919050565b60006139f2602683613f5d565b91506139fd82614381565b604082019050919050565b6000613a15602283613f5d565b9150613a20826143d0565b604082019050919050565b6000613a38602383613f5d565b9150613a438261441f565b604082019050919050565b6000613a5b601b83613f5d565b9150613a668261446e565b602082019050919050565b6000613a7e601783613f5d565b9150613a8982614497565b602082019050919050565b6000613aa1602183613f5d565b9150613aac826144c0565b604082019050919050565b6000613ac4602083613f5d565b9150613acf8261450f565b602082019050919050565b6000613ae7602983613f5d565b9150613af282614538565b604082019050919050565b6000613b0a602583613f5d565b9150613b1582614587565b604082019050919050565b6000613b2d602383613f5d565b9150613b38826145d6565b604082019050919050565b6000613b50602483613f5d565b9150613b5b82614625565b604082019050919050565b613b6f816140d3565b82525050565b613b7e816140dd565b82525050565b6000602082019050613b996000830184613886565b92915050565b600060c082019050613bb46000830189613886565b613bc16020830188613b66565b613bce6040830187613911565b613bdb6060830186613911565b613be86080830185613886565b613bf560a0830184613b66565b979650505050505050565b6000602082019050613c1560008301846138f3565b92915050565b6000602082019050613c306000830184613902565b92915050565b60006020820190508181036000830152613c508184613920565b905092915050565b60006020820190508181036000830152613c7181613959565b9050919050565b60006020820190508181036000830152613c918161397c565b9050919050565b60006020820190508181036000830152613cb18161399f565b9050919050565b60006020820190508181036000830152613cd1816139c2565b9050919050565b60006020820190508181036000830152613cf1816139e5565b9050919050565b60006020820190508181036000830152613d1181613a08565b9050919050565b60006020820190508181036000830152613d3181613a2b565b9050919050565b60006020820190508181036000830152613d5181613a4e565b9050919050565b60006020820190508181036000830152613d7181613a71565b9050919050565b60006020820190508181036000830152613d9181613a94565b9050919050565b60006020820190508181036000830152613db181613ab7565b9050919050565b60006020820190508181036000830152613dd181613ada565b9050919050565b60006020820190508181036000830152613df181613afd565b9050919050565b60006020820190508181036000830152613e1181613b20565b9050919050565b60006020820190508181036000830152613e3181613b43565b9050919050565b6000602082019050613e4d6000830184613b66565b92915050565b600060a082019050613e686000830188613b66565b613e756020830187613911565b8181036040830152613e878186613895565b9050613e966060830185613886565b613ea36080830184613b66565b9695505050505050565b6000602082019050613ec26000830184613b75565b92915050565b6000613ed2613ee3565b9050613ede8282614153565b919050565b6000604051905090565b600067ffffffffffffffff821115613f0857613f0761422b565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613f79826140d3565b9150613f84836140d3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613fb957613fb86141cd565b5b828201905092915050565b6000613fcf826140d3565b9150613fda836140d3565b925082613fea57613fe96141fc565b5b828204905092915050565b6000614000826140d3565b915061400b836140d3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614044576140436141cd565b5b828202905092915050565b600061405a826140d3565b9150614065836140d3565b925082821015614078576140776141cd565b5b828203905092915050565b600061408e826140b3565b9050919050565b60006140a0826140b3565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006140f5826140fc565b9050919050565b6000614107826140b3565b9050919050565b6000614119826140d3565b9050919050565b60005b8381101561413e578082015181840152602081019050614123565b8381111561414d576000848401525b50505050565b61415c8261425a565b810181811067ffffffffffffffff8211171561417b5761417a61422b565b5b80604052505050565b600061418f826140d3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156141c2576141c16141cd565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61467d81614083565b811461468857600080fd5b50565b61469481614095565b811461469f57600080fd5b50565b6146ab816140a7565b81146146b657600080fd5b50565b6146c2816140d3565b81146146cd57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122066ae5de15632c5a7c59b8d556bba02869591a86e65a262f4702d9a529f61301664736f6c63430008040033

Deployed Bytecode Sourcemap

4236:15992:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14730:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7049:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7974:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5791:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7326:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8175:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20029:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6133:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7235:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5839:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14907:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19645:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14474:248;;;;;;;;;;;;;:::i;:::-;;7429:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1725:148;;;;;;;;;;;;;:::i;:::-;;19785:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5989:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1511:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14108:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6060:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7140:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19237:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7575:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18431:508;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5538:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5495:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14217:249;;;;;;;;;;;;;:::i;:::-;;18951:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7782:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19416:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19905:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1881:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14730:169;1648:12;:10;:12::i;:::-;1638:22;;:6;;;;;;;;;;:22;;;1630:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14806:9:::1;14801:91;14825:5;:12;14821:1;:16;14801:91;;;14876:4;14859;:14;14864:5;14870:1;14864:8;;;;;;;;;;;;;;;;;;;;;;14859:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14839:3;;;;;:::i;:::-;;;;14801:91;;;;14730:169:::0;:::o;7049:83::-;7086:13;7119:5;;;;;;;;;;;;;;;;;7112:12;;7049:83;:::o;7974:193::-;8076:4;8098:39;8107:12;:10;:12::i;:::-;8121:7;8130:6;8098:8;:39::i;:::-;8155:4;8148:11;;7974:193;;;;:::o;5791:41::-;;;;;;;;;;;;;:::o;7326:95::-;7379:7;4747:18;7399:14;;7326:95;:::o;8175:446::-;8307:4;8324:36;8334:6;8342:9;8353:6;8324:9;:36::i;:::-;8371:220;8394:6;8415:12;:10;:12::i;:::-;8442:138;8498:6;8442:138;;;;;;;;;;;;;;;;;:11;:19;8454:6;8442:19;;;;;;;;;;;;;;;:33;8462:12;:10;:12::i;:::-;8442:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8371:8;:220::i;:::-;8609:4;8602:11;;8175:446;;;;;:::o;20029:196::-;1648:12;:10;:12::i;:::-;1638:22;;:6;;;;;;;;;;:22;;;1630:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20143:7:::1;20121:29;;:9;:18;20131:7;20121:18;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;20113:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;20210:7;20189:9;:18;20199:7;20189:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;20029:196:::0;;:::o;6133:63::-;;;;:::o;7235:83::-;7276:5;4471:1;7294:16;;7235:83;:::o;5839:28::-;;;;;;;;;;;;;:::o;14907:92::-;1648:12;:10;:12::i;:::-;1638:22;;:6;;;;;;;;;;:22;;;1630:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14986:5:::1;14971:4;:12;14976:6;14971:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14907:92:::0;:::o;19645:101::-;1648:12;:10;:12::i;:::-;1638:22;;:6;;;;;;;;;;:22;;;1630:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19726:12:::1;19712:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;19645:101:::0;:::o;14474:248::-;14540:11;;;;;;;;;;;14524:27;;:12;:10;:12::i;:::-;:27;;;:58;;;;14571:11;;;;;;;;;;;14555:27;;:12;:10;:12::i;:::-;:27;;;14524:58;:85;;;;14602:7;:5;:7::i;:::-;14586:23;;:12;:10;:12::i;:::-;:23;;;14524:85;14516:94;;;;;;14621:26;14650:21;14621:50;;14682:32;14695:18;14682:12;:32::i;:::-;14474:248;:::o;7429:138::-;7495:7;7522:37;7542:7;:16;7550:7;7542:16;;;;;;;;;;;;;;;;7522:19;:37::i;:::-;7515:44;;7429:138;;;:::o;1725:148::-;1648:12;:10;:12::i;:::-;1638:22;;:6;;;;;;;;;;:22;;;1630:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1832:1:::1;1795:40;;1816:6;::::0;::::1;;;;;;;;1795:40;;;;;;;;;;;;1863:1;1846:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1725:148::o:0;19785:108::-;1648:12;:10;:12::i;:::-;1638:22;;:6;;;;;;;;;;:22;;;1630:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19874:11:::1;19859:12;:26;;;;19785:108:::0;:::o;5989:56::-;;;;:::o;1511:79::-;1549:7;1576:6;;;;;;;;;;;1569:13;;1511:79;:::o;14108:101::-;1648:12;:10;:12::i;:::-;1638:22;;:6;;;;;;;;;;:22;;;1630:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14189:12:::1;14175:11;;:26;;;;;;;;;;;;;;;;;;14108:101:::0;:::o;6060:58::-;;;;:::o;7140:87::-;7179:13;7212:7;;;;;;;;;;;;;;;;;7205:14;;7140:87;:::o;19237:139::-;1648:12;:10;:12::i;:::-;1638:22;;:6;;;;;;;;;;:22;;;1630:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19350:18:::1;19328:19;:40;;;;19237:139:::0;:::o;7575:199::-;7680:4;7702:42;7712:12;:10;:12::i;:::-;7726:9;7737:6;7702:9;:42::i;:::-;7762:4;7755:11;;7575:199;;;;:::o;18431:508::-;1648:12;:10;:12::i;:::-;1638:22;;:6;;;;;;;;;;:22;;;1630:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18649:13:::1;18632:14;:30;;;;18691:14;18673:15;:32;;;;18747:17;18726:18;:38;;;;18797:18;18775:19;:40;;;;18857:17;18836:18;:38;;;;18907:18;18885:19;:40;;;;18431:508:::0;;;;;;:::o;5538:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;5495:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;14217:249::-;14283:11;;;;;;;;;;;14267:27;;:12;:10;:12::i;:::-;:27;;;:58;;;;14314:11;;;;;;;;;;;14298:27;;:12;:10;:12::i;:::-;:27;;;14267:58;:85;;;;14345:7;:5;:7::i;:::-;14329:23;;:12;:10;:12::i;:::-;:23;;;14267:85;14259:94;;;;;;14364:23;14390:24;14408:4;14390:9;:24::i;:::-;14364:50;;14425:33;14442:15;14425:16;:33::i;:::-;14217:249;:::o;18951:234::-;1648:12;:10;:12::i;:::-;1638:22;;:6;;;;;;;;;;:22;;;1630:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19068:9:::1;19064:114;19087:8;;:15;;19083:1;:19;19064:114;;;19158:8;19124:18;:31;19143:8;;19152:1;19143:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19124:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;19104:3;;;;;:::i;:::-;;;;19064:114;;;;18951:234:::0;;;:::o;7782:184::-;7899:7;7931:11;:18;7943:5;7931:18;;;;;;;;;;;;;;;:27;7950:7;7931:27;;;;;;;;;;;;;;;;7924:34;;7782:184;;;;:::o;19416:173::-;1648:12;:10;:12::i;:::-;1638:22;;:6;;;;;;;;;;:22;;;1630:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19536:10:::1;19522:11;;:24;;;;;;;;;;;;;;;;;;19571:10;19557:11;;:24;;;;;;;;;;;;;;;;;;19416:173:::0;;:::o;19905:115::-;1648:12;:10;:12::i;:::-;1638:22;;:6;;;;;;;;;;:22;;;1630:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19999:13:::1;19982:14;:30;;;;19905:115:::0;:::o;1881:244::-;1648:12;:10;:12::i;:::-;1638:22;;:6;;;;;;;;;;:22;;;1630:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1990:1:::1;1970:22;;:8;:22;;;;1962:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2080:8;2051:38;;2072:6;::::0;::::1;;;;;;;;2051:38;;;;;;;;;;;;2109:8;2100:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1881:244:::0;:::o;2156:179::-;2214:7;2234:9;2250:1;2246;:5;;;;:::i;:::-;2234:17;;2275:1;2270;:6;;2262:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2326:1;2319:8;;;2156:179;;;;:::o;2973:132::-;3031:7;3058:39;3062:1;3065;3058:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3051:46;;2973:132;;;;:::o;2719:246::-;2777:7;2806:1;2801;:6;2797:47;;;2831:1;2824:8;;;;2797:47;2854:9;2870:1;2866;:5;;;;:::i;:::-;2854:17;;2899:1;2894;2890;:5;;;;:::i;:::-;:10;2882:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2956:1;2949:8;;;2719:246;;;;;:::o;270:98::-;323:7;350:10;343:17;;270:98;:::o;9324:369::-;9468:1;9451:19;;:5;:19;;;;9443:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9549:1;9530:21;;:7;:21;;;;9522:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9631:6;9601:11;:18;9613:5;9601:18;;;;;;;;;;;;;;;:27;9620:7;9601:27;;;;;;;;;;;;;;;:36;;;;9669:7;9653:32;;9662:5;9653:32;;;9678:6;9653:32;;;;;;:::i;:::-;;;;;;;;9324:369;;;:::o;9701:2347::-;9839:1;9823:18;;:4;:18;;;;9815:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9916:1;9902:16;;:2;:16;;;;9894:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9986:1;9977:6;:10;9969:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10058:7;:5;:7::i;:::-;10050:15;;:4;:15;;;;:32;;;;;10075:7;:5;:7::i;:::-;10069:13;;:2;:13;;;;10050:32;:52;;;;;10087:9;:15;10097:4;10087:15;;;;;;;;;;;;;;;;;;;;;;;;;10086:16;10050:52;:70;;;;;10107:9;:13;10117:2;10107:13;;;;;;;;;;;;;;;;;;;;;;;;;10106:14;10050:70;10046:1161;;;10189:11;;;;;;;;;;;10184:144;;10229:9;:15;10239:4;10229:15;;;;;;;;;;;;;;;;;;;;;;;;;10221:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10184:144;10376:12;;10366:6;:22;;10358:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10445:4;:10;10450:4;10445:10;;;;;;;;;;;;;;;;;;;;;;;;;10444:11;:24;;;;;10460:4;:8;10465:2;10460:8;;;;;;;;;;;;;;;;;;;;;;;;;10459:9;10444:24;10436:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10546:13;;;;;;;;;;;10540:19;;:2;:19;;;10537:146;;10613:14;;10604:6;10588:13;10598:2;10588:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10580:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10537:146;10711:28;10742:24;10760:4;10742:9;:24::i;:::-;10711:55;;10781:12;10820:19;;10796:20;:43;;10781:58;;10883:12;;10859:20;:36;10856:111;;10939:12;;10916:35;;10856:111;10999:7;:18;;;;;11011:6;;;;;;;;;;;11010:7;10999:18;:43;;;;;11029:13;;;;;;;;;;;11021:21;;:4;:21;;;;10999:43;:58;;;;;11046:11;;;;;;;;;;10999:58;:87;;;;;11062:18;:24;11081:4;11062:24;;;;;;;;;;;;;;;;;;;;;;;;;11061:25;10999:87;:114;;;;;11091:18;:22;11110:2;11091:22;;;;;;;;;;;;;;;;;;;;;;;;;11090:23;10999:114;10995:201;;;11134:46;11159:20;11134:24;:46::i;:::-;10995:201;10046:1161;;;11227:12;11242:4;11227:19;;11291:18;:24;11310:4;11291:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11319:18;:22;11338:2;11319:22;;;;;;;;;;;;;;;;;;;;;;;;;11291:50;11290:102;;;;11355:13;;;;;;;;;;;11347:21;;:4;:21;;;;:44;;;;;11378:13;;;;;;;;;;;11372:19;;:2;:19;;;;11347:44;11290:102;11286:701;;;11419:5;11409:15;;11286:701;;;11514:13;;;;;;;;;;;11506:21;;:4;:21;;;:55;;;;;11545:15;;;;;;;;;;;11531:30;;:2;:30;;;;11506:55;11503:201;;;11594:14;;11582:9;:26;;;;11637:51;11684:3;11637:42;11660:18;;11637;;:22;;:42;;;;:::i;:::-;:46;;:51;;;;:::i;:::-;11627:7;:61;;;;11503:201;11767:13;;;;;;;;;;;11761:19;;:2;:19;;;:55;;;;;11800:15;;;;;;;;;;;11784:32;;:4;:32;;;;11761:55;11757:205;;;11849:15;;11837:9;:27;;;;11893:53;11942:3;11893:44;11917:19;;11893;;:23;;:44;;;;:::i;:::-;:48;;:53;;;;:::i;:::-;11883:7;:63;;;;11757:205;11286:701;11999:41;12014:4;12020:2;12024:6;12032:7;11999:14;:41::i;:::-;9701:2347;;;;:::o;2487:224::-;2607:7;2640:1;2635;:6;;2643:12;2627:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2667:9;2683:1;2679;:5;;;;:::i;:::-;2667:17;;2702:1;2695:8;;;2487:224;;;;;:::o;13954:146::-;14011:11;;;;;;;;;;;:20;;:35;14032:13;14043:1;14032:6;:10;;:13;;;;:::i;:::-;14011:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14057:11;;;;;;;;;;;:20;;:35;14078:13;14089:1;14078:6;:10;;:13;;;;:::i;:::-;14057:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13954:146;:::o;8629:323::-;8724:7;8782;;8771;:18;;8749:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8870:19;8892:10;:8;:10::i;:::-;8870:32;;8920:24;8932:11;8920:7;:11;;:24;;;;:::i;:::-;8913:31;;;8629:323;;;:::o;12056:483::-;6306:4;6297:6;;:13;;;;;;;;;;;;;;;;;;12134:21:::1;12172:1;12158:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12134:40;;12203:4;12185;12190:1;12185:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;12229:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12219:4;12224:1;12219:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;12262:62;12279:4;12294:15;;;;;;;;;;;12312:11;12262:8;:62::i;:::-;12335:15;;;;;;;;;;;:66;;;12416:11;12442:1;12458:4;12485;12505:15;12335:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6321:1;6342:5:::0;6333:6;;:14;;;;;;;;;;;;;;;;;;12056:483;:::o;3113:223::-;3233:7;3265:1;3261;:5;3268:12;3253:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3292:9;3308:1;3304;:5;;;;:::i;:::-;3292:17;;3327:1;3320:8;;;3113:223;;;;;:::o;12551:865::-;12622:22;12647:44;12671:19;;12647;;:23;;:44;;;;:::i;:::-;12622:69;;12702:17;12722:26;12746:1;12722:19;;:23;;:26;;;;:::i;:::-;12702:46;;12761:25;12789:66;12840:14;12789:46;12800:34;12824:9;12800:19;;:23;;:34;;;;:::i;:::-;12789:6;:10;;:46;;;;:::i;:::-;:50;;:66;;;;:::i;:::-;12761:94;;12868:23;12894:41;12920:14;12894:21;12905:9;12894:6;:10;;:21;;;;:::i;:::-;:25;;:41;;;;:::i;:::-;12868:67;;12948:25;12976:21;12948:49;;13008:35;13025:17;13008:16;:35::i;:::-;13054:21;13078:44;13104:17;13078:21;:25;;:44;;;;:::i;:::-;13054:68;;13135:25;13163:73;13206:29;13225:9;13206:14;:18;;:29;;;;:::i;:::-;13163:38;13181:19;;13163:13;:17;;:38;;;;:::i;:::-;:42;;:73;;;;:::i;:::-;13135:101;;13247:18;13268:36;13286:17;13268:13;:17;;:36;;;;:::i;:::-;13247:57;;13325:31;13338:17;13325:12;:31::i;:::-;13367:41;13380:15;13397:10;13367:12;:41::i;:::-;12551:865;;;;;;;;;:::o;15007:282::-;15163:7;15158:28;;15172:14;:12;:14::i;:::-;15158:28;15197:44;15215:6;15223:9;15234:6;15197:17;:44::i;:::-;15257:7;15252:29;;15266:15;:13;:15::i;:::-;15252:29;15007:282;;;;:::o;17982:166::-;18024:7;18045:15;18062;18081:19;:17;:19::i;:::-;18044:56;;;;18120:20;18132:7;18120;:11;;:20;;;;:::i;:::-;18113:27;;;;17982:166;:::o;2343:136::-;2401:7;2428:43;2432:1;2435;2428:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2421:50;;2343:136;;;;:::o;13428:518::-;13578:62;13595:4;13610:15;;;;;;;;;;;13628:11;13578:8;:62::i;:::-;13683:15;;;;;;;;;;;:31;;;13722:9;13755:4;13775:11;13801:1;13844;13895;13912:15;13683:255;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13428:518;;:::o;8960:231::-;9020:1;9007:9;;:14;:30;;;;;9036:1;9025:7;;:12;9007:30;9003:43;;;9039:7;;9003:43;9082:9;;9062:17;:29;;;;9120:7;;9102:15;:25;;;;9160:1;9148:9;:13;;;;9182:1;9172:7;:11;;;;8960:231;:::o;15297:610::-;15444:15;15474:23;15512:12;15539:23;15577:12;15604:13;15631:19;15642:7;15631:10;:19::i;:::-;15429:221;;;;;;;;;;;;15679:28;15699:7;15679;:15;15687:6;15679:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;15661:7;:15;15669:6;15661:15;;;;;;;;;;;;;;;:46;;;;15739:39;15762:15;15739:7;:18;15747:9;15739:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15718:7;:18;15726:9;15718:18;;;;;;;;;;;;;;;:60;;;;15789:16;15799:5;15789:9;:16::i;:::-;15816:23;15828:4;15834;15816:11;:23::i;:::-;15872:9;15855:44;;15864:6;15855:44;;;15883:15;15855:44;;;;;;:::i;:::-;;;;;;;;15297:610;;;;;;;;;:::o;9199:117::-;9255:17;;9243:9;:29;;;;9293:15;;9283:7;:25;;;;9199:117::o;18156:263::-;18207:7;18216;18236:15;18254:7;;18236:25;;18272:15;4747:18;18272:25;;18322:20;4747:18;18322:7;;:11;;:20;;;;:::i;:::-;18312:7;:30;18308:61;;;18352:7;;4747:18;18344:25;;;;;;;;18308:61;18394:7;18403;18386:25;;;;;;18156:263;;;:::o;16326:625::-;16426:7;16448;16470;16492;16514;16536;16572:23;16597:12;16611:13;16641:40;16653:7;16662:9;;16673:7;;16641:11;:40::i;:::-;16571:110;;;;;;16692:19;16714:10;:8;:10::i;:::-;16692:32;;16736:15;16753:23;16778:12;16807:46;16819:7;16828:4;16834:5;16841:11;16807;:46::i;:::-;16735:118;;;;;;16882:7;16891:15;16908:4;16914:15;16931:4;16937:5;16874:69;;;;;;;;;;;;;;;;;;;16326:625;;;;;;;:::o;15915:211::-;15968:19;15990:10;:8;:10::i;:::-;15968:32;;16011:13;16027:22;16037:11;16027:5;:9;;:22;;;;:::i;:::-;16011:38;;16085:33;16112:5;16085:7;:22;16101:4;16085:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;16060:7;:22;16076:4;16060:22;;;;;;;;;;;;;;;:58;;;;15915:211;;;:::o;16134:147::-;16212:17;16224:4;16212:7;;:11;;:17;;;;:::i;:::-;16202:7;:27;;;;16253:20;16268:4;16253:10;;:14;;:20;;;;:::i;:::-;16240:10;:33;;;;16134:147;;:::o;16959:471::-;17128:7;17150;17172;17207:12;17222:30;17248:3;17222:21;17234:8;17222:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;17207:45;;17263:13;17279:28;17303:3;17279:19;17291:6;17279:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;17263:44;;17318:23;17344:28;17366:5;17344:17;17356:4;17344:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17318:54;;17393:15;17410:4;17416:5;17385:37;;;;;;;;;16959:471;;;;;;;:::o;17438:536::-;17632:7;17654;17676;17711:15;17729:24;17741:11;17729:7;:11;;:24;;;;:::i;:::-;17711:42;;17764:12;17779:21;17788:11;17779:4;:8;;:21;;;;:::i;:::-;17764:36;;17811:13;17827:22;17837:11;17827:5;:9;;:22;;;;:::i;:::-;17811:38;;17860:23;17886:28;17908:5;17886:17;17898:4;17886:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17860:54;;17935:7;17944:15;17961:4;17927:39;;;;;;;;;;17438:536;;;;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;979:155::-;1033:5;1071:6;1058:20;1049:29;;1087:41;1122:5;1087:41;:::i;:::-;1039:95;;;;:::o;1157:367::-;1230:8;1240:6;1290:3;1283:4;1275:6;1271:17;1267:27;1257:2;;1308:1;1305;1298:12;1257:2;1344:6;1331:20;1321:30;;1374:18;1366:6;1363:30;1360:2;;;1406:1;1403;1396:12;1360:2;1443:4;1435:6;1431:17;1419:29;;1497:3;1489:4;1481:6;1477:17;1467:8;1463:32;1460:41;1457:2;;;1514:1;1511;1504:12;1457:2;1247:277;;;;;:::o;1547:303::-;1618:5;1667:3;1660:4;1652:6;1648:17;1644:27;1634:2;;1685:1;1682;1675:12;1634:2;1725:6;1712:20;1750:94;1840:3;1832:6;1825:4;1817:6;1813:17;1750:94;:::i;:::-;1741:103;;1624:226;;;;;:::o;1856:133::-;1899:5;1937:6;1924:20;1915:29;;1953:30;1977:5;1953:30;:::i;:::-;1905:84;;;;:::o;1995:139::-;2041:5;2079:6;2066:20;2057:29;;2095:33;2122:5;2095:33;:::i;:::-;2047:87;;;;:::o;2140:143::-;2197:5;2228:6;2222:13;2213:22;;2244:33;2271:5;2244:33;:::i;:::-;2203:80;;;;:::o;2289:262::-;2348:6;2397:2;2385:9;2376:7;2372:23;2368:32;2365:2;;;2413:1;2410;2403:12;2365:2;2456:1;2481:53;2526:7;2517:6;2506:9;2502:22;2481:53;:::i;:::-;2471:63;;2427:117;2355:196;;;;:::o;2557:284::-;2627:6;2676:2;2664:9;2655:7;2651:23;2647:32;2644:2;;;2692:1;2689;2682:12;2644:2;2735:1;2760:64;2816:7;2807:6;2796:9;2792:22;2760:64;:::i;:::-;2750:74;;2706:128;2634:207;;;;:::o;2847:439::-;2931:6;2939;2988:2;2976:9;2967:7;2963:23;2959:32;2956:2;;;3004:1;3001;2994:12;2956:2;3047:1;3072:61;3125:7;3116:6;3105:9;3101:22;3072:61;:::i;:::-;3062:71;;3018:125;3182:2;3208:61;3261:7;3252:6;3241:9;3237:22;3208:61;:::i;:::-;3198:71;;3153:126;2946:340;;;;;:::o;3292:407::-;3360:6;3368;3417:2;3405:9;3396:7;3392:23;3388:32;3385:2;;;3433:1;3430;3423:12;3385:2;3476:1;3501:53;3546:7;3537:6;3526:9;3522:22;3501:53;:::i;:::-;3491:63;;3447:117;3603:2;3629:53;3674:7;3665:6;3654:9;3650:22;3629:53;:::i;:::-;3619:63;;3574:118;3375:324;;;;;:::o;3705:552::-;3782:6;3790;3798;3847:2;3835:9;3826:7;3822:23;3818:32;3815:2;;;3863:1;3860;3853:12;3815:2;3906:1;3931:53;3976:7;3967:6;3956:9;3952:22;3931:53;:::i;:::-;3921:63;;3877:117;4033:2;4059:53;4104:7;4095:6;4084:9;4080:22;4059:53;:::i;:::-;4049:63;;4004:118;4161:2;4187:53;4232:7;4223:6;4212:9;4208:22;4187:53;:::i;:::-;4177:63;;4132:118;3805:452;;;;;:::o;4263:401::-;4328:6;4336;4385:2;4373:9;4364:7;4360:23;4356:32;4353:2;;;4401:1;4398;4391:12;4353:2;4444:1;4469:53;4514:7;4505:6;4494:9;4490:22;4469:53;:::i;:::-;4459:63;;4415:117;4571:2;4597:50;4639:7;4630:6;4619:9;4615:22;4597:50;:::i;:::-;4587:60;;4542:115;4343:321;;;;;:::o;4670:407::-;4738:6;4746;4795:2;4783:9;4774:7;4770:23;4766:32;4763:2;;;4811:1;4808;4801:12;4763:2;4854:1;4879:53;4924:7;4915:6;4904:9;4900:22;4879:53;:::i;:::-;4869:63;;4825:117;4981:2;5007:53;5052:7;5043:6;5032:9;5028:22;5007:53;:::i;:::-;4997:63;;4952:118;4753:324;;;;;:::o;5083:564::-;5175:6;5183;5191;5240:2;5228:9;5219:7;5215:23;5211:32;5208:2;;;5256:1;5253;5246:12;5208:2;5327:1;5316:9;5312:17;5299:31;5357:18;5349:6;5346:30;5343:2;;;5389:1;5386;5379:12;5343:2;5425:80;5497:7;5488:6;5477:9;5473:22;5425:80;:::i;:::-;5407:98;;;;5270:245;5554:2;5580:50;5622:7;5613:6;5602:9;5598:22;5580:50;:::i;:::-;5570:60;;5525:115;5198:449;;;;;:::o;5653:405::-;5737:6;5786:2;5774:9;5765:7;5761:23;5757:32;5754:2;;;5802:1;5799;5792:12;5754:2;5873:1;5862:9;5858:17;5845:31;5903:18;5895:6;5892:30;5889:2;;;5935:1;5932;5925:12;5889:2;5963:78;6033:7;6024:6;6013:9;6009:22;5963:78;:::i;:::-;5953:88;;5816:235;5744:314;;;;:::o;6064:256::-;6120:6;6169:2;6157:9;6148:7;6144:23;6140:32;6137:2;;;6185:1;6182;6175:12;6137:2;6228:1;6253:50;6295:7;6286:6;6275:9;6271:22;6253:50;:::i;:::-;6243:60;;6199:114;6127:193;;;;:::o;6326:262::-;6385:6;6434:2;6422:9;6413:7;6409:23;6405:32;6402:2;;;6450:1;6447;6440:12;6402:2;6493:1;6518:53;6563:7;6554:6;6543:9;6539:22;6518:53;:::i;:::-;6508:63;;6464:117;6392:196;;;;:::o;6594:596::-;6682:6;6690;6698;6747:2;6735:9;6726:7;6722:23;6718:32;6715:2;;;6763:1;6760;6753:12;6715:2;6806:1;6831:64;6887:7;6878:6;6867:9;6863:22;6831:64;:::i;:::-;6821:74;;6777:128;6944:2;6970:64;7026:7;7017:6;7006:9;7002:22;6970:64;:::i;:::-;6960:74;;6915:129;7083:2;7109:64;7165:7;7156:6;7145:9;7141:22;7109:64;:::i;:::-;7099:74;;7054:129;6705:485;;;;;:::o;7196:990::-;7300:6;7308;7316;7324;7332;7340;7389:3;7377:9;7368:7;7364:23;7360:33;7357:2;;;7406:1;7403;7396:12;7357:2;7449:1;7474:53;7519:7;7510:6;7499:9;7495:22;7474:53;:::i;:::-;7464:63;;7420:117;7576:2;7602:53;7647:7;7638:6;7627:9;7623:22;7602:53;:::i;:::-;7592:63;;7547:118;7704:2;7730:53;7775:7;7766:6;7755:9;7751:22;7730:53;:::i;:::-;7720:63;;7675:118;7832:2;7858:53;7903:7;7894:6;7883:9;7879:22;7858:53;:::i;:::-;7848:63;;7803:118;7960:3;7987:53;8032:7;8023:6;8012:9;8008:22;7987:53;:::i;:::-;7977:63;;7931:119;8089:3;8116:53;8161:7;8152:6;8141:9;8137:22;8116:53;:::i;:::-;8106:63;;8060:119;7347:839;;;;;;;;:::o;8192:179::-;8261:10;8282:46;8324:3;8316:6;8282:46;:::i;:::-;8360:4;8355:3;8351:14;8337:28;;8272:99;;;;:::o;8377:108::-;8454:24;8472:5;8454:24;:::i;:::-;8449:3;8442:37;8432:53;;:::o;8491:118::-;8578:24;8596:5;8578:24;:::i;:::-;8573:3;8566:37;8556:53;;:::o;8645:732::-;8764:3;8793:54;8841:5;8793:54;:::i;:::-;8863:86;8942:6;8937:3;8863:86;:::i;:::-;8856:93;;8973:56;9023:5;8973:56;:::i;:::-;9052:7;9083:1;9068:284;9093:6;9090:1;9087:13;9068:284;;;9169:6;9163:13;9196:63;9255:3;9240:13;9196:63;:::i;:::-;9189:70;;9282:60;9335:6;9282:60;:::i;:::-;9272:70;;9128:224;9115:1;9112;9108:9;9103:14;;9068:284;;;9072:14;9368:3;9361:10;;8769:608;;;;;;;:::o;9383:109::-;9464:21;9479:5;9464:21;:::i;:::-;9459:3;9452:34;9442:50;;:::o;9498:183::-;9611:63;9668:5;9611:63;:::i;:::-;9606:3;9599:76;9589:92;;:::o;9687:147::-;9782:45;9821:5;9782:45;:::i;:::-;9777:3;9770:58;9760:74;;:::o;9840:364::-;9928:3;9956:39;9989:5;9956:39;:::i;:::-;10011:71;10075:6;10070:3;10011:71;:::i;:::-;10004:78;;10091:52;10136:6;10131:3;10124:4;10117:5;10113:16;10091:52;:::i;:::-;10168:29;10190:6;10168:29;:::i;:::-;10163:3;10159:39;10152:46;;9932:272;;;;;:::o;10210:366::-;10352:3;10373:67;10437:2;10432:3;10373:67;:::i;:::-;10366:74;;10449:93;10538:3;10449:93;:::i;:::-;10567:2;10562:3;10558:12;10551:19;;10356:220;;;:::o;10582:366::-;10724:3;10745:67;10809:2;10804:3;10745:67;:::i;:::-;10738:74;;10821:93;10910:3;10821:93;:::i;:::-;10939:2;10934:3;10930:12;10923:19;;10728:220;;;:::o;10954:366::-;11096:3;11117:67;11181:2;11176:3;11117:67;:::i;:::-;11110:74;;11193:93;11282:3;11193:93;:::i;:::-;11311:2;11306:3;11302:12;11295:19;;11100:220;;;:::o;11326:366::-;11468:3;11489:67;11553:2;11548:3;11489:67;:::i;:::-;11482:74;;11565:93;11654:3;11565:93;:::i;:::-;11683:2;11678:3;11674:12;11667:19;;11472:220;;;:::o;11698:366::-;11840:3;11861:67;11925:2;11920:3;11861:67;:::i;:::-;11854:74;;11937:93;12026:3;11937:93;:::i;:::-;12055:2;12050:3;12046:12;12039:19;;11844:220;;;:::o;12070:366::-;12212:3;12233:67;12297:2;12292:3;12233:67;:::i;:::-;12226:74;;12309:93;12398:3;12309:93;:::i;:::-;12427:2;12422:3;12418:12;12411:19;;12216:220;;;:::o;12442:366::-;12584:3;12605:67;12669:2;12664:3;12605:67;:::i;:::-;12598:74;;12681:93;12770:3;12681:93;:::i;:::-;12799:2;12794:3;12790:12;12783:19;;12588:220;;;:::o;12814:366::-;12956:3;12977:67;13041:2;13036:3;12977:67;:::i;:::-;12970:74;;13053:93;13142:3;13053:93;:::i;:::-;13171:2;13166:3;13162:12;13155:19;;12960:220;;;:::o;13186:366::-;13328:3;13349:67;13413:2;13408:3;13349:67;:::i;:::-;13342:74;;13425:93;13514:3;13425:93;:::i;:::-;13543:2;13538:3;13534:12;13527:19;;13332:220;;;:::o;13558:366::-;13700:3;13721:67;13785:2;13780:3;13721:67;:::i;:::-;13714:74;;13797:93;13886:3;13797:93;:::i;:::-;13915:2;13910:3;13906:12;13899:19;;13704:220;;;:::o;13930:366::-;14072:3;14093:67;14157:2;14152:3;14093:67;:::i;:::-;14086:74;;14169:93;14258:3;14169:93;:::i;:::-;14287:2;14282:3;14278:12;14271:19;;14076:220;;;:::o;14302:366::-;14444:3;14465:67;14529:2;14524:3;14465:67;:::i;:::-;14458:74;;14541:93;14630:3;14541:93;:::i;:::-;14659:2;14654:3;14650:12;14643:19;;14448:220;;;:::o;14674:366::-;14816:3;14837:67;14901:2;14896:3;14837:67;:::i;:::-;14830:74;;14913:93;15002:3;14913:93;:::i;:::-;15031:2;15026:3;15022:12;15015:19;;14820:220;;;:::o;15046:366::-;15188:3;15209:67;15273:2;15268:3;15209:67;:::i;:::-;15202:74;;15285:93;15374:3;15285:93;:::i;:::-;15403:2;15398:3;15394:12;15387:19;;15192:220;;;:::o;15418:366::-;15560:3;15581:67;15645:2;15640:3;15581:67;:::i;:::-;15574:74;;15657:93;15746:3;15657:93;:::i;:::-;15775:2;15770:3;15766:12;15759:19;;15564:220;;;:::o;15790:118::-;15877:24;15895:5;15877:24;:::i;:::-;15872:3;15865:37;15855:53;;:::o;15914:112::-;15997:22;16013:5;15997:22;:::i;:::-;15992:3;15985:35;15975:51;;:::o;16032:222::-;16125:4;16163:2;16152:9;16148:18;16140:26;;16176:71;16244:1;16233:9;16229:17;16220:6;16176:71;:::i;:::-;16130:124;;;;:::o;16260:807::-;16509:4;16547:3;16536:9;16532:19;16524:27;;16561:71;16629:1;16618:9;16614:17;16605:6;16561:71;:::i;:::-;16642:72;16710:2;16699:9;16695:18;16686:6;16642:72;:::i;:::-;16724:80;16800:2;16789:9;16785:18;16776:6;16724:80;:::i;:::-;16814;16890:2;16879:9;16875:18;16866:6;16814:80;:::i;:::-;16904:73;16972:3;16961:9;16957:19;16948:6;16904:73;:::i;:::-;16987;17055:3;17044:9;17040:19;17031:6;16987:73;:::i;:::-;16514:553;;;;;;;;;:::o;17073:210::-;17160:4;17198:2;17187:9;17183:18;17175:26;;17211:65;17273:1;17262:9;17258:17;17249:6;17211:65;:::i;:::-;17165:118;;;;:::o;17289:274::-;17408:4;17446:2;17435:9;17431:18;17423:26;;17459:97;17553:1;17542:9;17538:17;17529:6;17459:97;:::i;:::-;17413:150;;;;:::o;17569:313::-;17682:4;17720:2;17709:9;17705:18;17697:26;;17769:9;17763:4;17759:20;17755:1;17744:9;17740:17;17733:47;17797:78;17870:4;17861:6;17797:78;:::i;:::-;17789:86;;17687:195;;;;:::o;17888:419::-;18054:4;18092:2;18081:9;18077:18;18069:26;;18141:9;18135:4;18131:20;18127:1;18116:9;18112:17;18105:47;18169:131;18295:4;18169:131;:::i;:::-;18161:139;;18059:248;;;:::o;18313:419::-;18479:4;18517:2;18506:9;18502:18;18494:26;;18566:9;18560:4;18556:20;18552:1;18541:9;18537:17;18530:47;18594:131;18720:4;18594:131;:::i;:::-;18586:139;;18484:248;;;:::o;18738:419::-;18904:4;18942:2;18931:9;18927:18;18919:26;;18991:9;18985:4;18981:20;18977:1;18966:9;18962:17;18955:47;19019:131;19145:4;19019:131;:::i;:::-;19011:139;;18909:248;;;:::o;19163:419::-;19329:4;19367:2;19356:9;19352:18;19344:26;;19416:9;19410:4;19406:20;19402:1;19391:9;19387:17;19380:47;19444:131;19570:4;19444:131;:::i;:::-;19436:139;;19334:248;;;:::o;19588:419::-;19754:4;19792:2;19781:9;19777:18;19769:26;;19841:9;19835:4;19831:20;19827:1;19816:9;19812:17;19805:47;19869:131;19995:4;19869:131;:::i;:::-;19861:139;;19759:248;;;:::o;20013:419::-;20179:4;20217:2;20206:9;20202:18;20194:26;;20266:9;20260:4;20256:20;20252:1;20241:9;20237:17;20230:47;20294:131;20420:4;20294:131;:::i;:::-;20286:139;;20184:248;;;:::o;20438:419::-;20604:4;20642:2;20631:9;20627:18;20619:26;;20691:9;20685:4;20681:20;20677:1;20666:9;20662:17;20655:47;20719:131;20845:4;20719:131;:::i;:::-;20711:139;;20609:248;;;:::o;20863:419::-;21029:4;21067:2;21056:9;21052:18;21044:26;;21116:9;21110:4;21106:20;21102:1;21091:9;21087:17;21080:47;21144:131;21270:4;21144:131;:::i;:::-;21136:139;;21034:248;;;:::o;21288:419::-;21454:4;21492:2;21481:9;21477:18;21469:26;;21541:9;21535:4;21531:20;21527:1;21516:9;21512:17;21505:47;21569:131;21695:4;21569:131;:::i;:::-;21561:139;;21459:248;;;:::o;21713:419::-;21879:4;21917:2;21906:9;21902:18;21894:26;;21966:9;21960:4;21956:20;21952:1;21941:9;21937:17;21930:47;21994:131;22120:4;21994:131;:::i;:::-;21986:139;;21884:248;;;:::o;22138:419::-;22304:4;22342:2;22331:9;22327:18;22319:26;;22391:9;22385:4;22381:20;22377:1;22366:9;22362:17;22355:47;22419:131;22545:4;22419:131;:::i;:::-;22411:139;;22309:248;;;:::o;22563:419::-;22729:4;22767:2;22756:9;22752:18;22744:26;;22816:9;22810:4;22806:20;22802:1;22791:9;22787:17;22780:47;22844:131;22970:4;22844:131;:::i;:::-;22836:139;;22734:248;;;:::o;22988:419::-;23154:4;23192:2;23181:9;23177:18;23169:26;;23241:9;23235:4;23231:20;23227:1;23216:9;23212:17;23205:47;23269:131;23395:4;23269:131;:::i;:::-;23261:139;;23159:248;;;:::o;23413:419::-;23579:4;23617:2;23606:9;23602:18;23594:26;;23666:9;23660:4;23656:20;23652:1;23641:9;23637:17;23630:47;23694:131;23820:4;23694:131;:::i;:::-;23686:139;;23584:248;;;:::o;23838:419::-;24004:4;24042:2;24031:9;24027:18;24019:26;;24091:9;24085:4;24081:20;24077:1;24066:9;24062:17;24055:47;24119:131;24245:4;24119:131;:::i;:::-;24111:139;;24009:248;;;:::o;24263:222::-;24356:4;24394:2;24383:9;24379:18;24371:26;;24407:71;24475:1;24464:9;24460:17;24451:6;24407:71;:::i;:::-;24361:124;;;;:::o;24491:831::-;24754:4;24792:3;24781:9;24777:19;24769:27;;24806:71;24874:1;24863:9;24859:17;24850:6;24806:71;:::i;:::-;24887:80;24963:2;24952:9;24948:18;24939:6;24887:80;:::i;:::-;25014:9;25008:4;25004:20;24999:2;24988:9;24984:18;24977:48;25042:108;25145:4;25136:6;25042:108;:::i;:::-;25034:116;;25160:72;25228:2;25217:9;25213:18;25204:6;25160:72;:::i;:::-;25242:73;25310:3;25299:9;25295:19;25286:6;25242:73;:::i;:::-;24759:563;;;;;;;;:::o;25328:214::-;25417:4;25455:2;25444:9;25440:18;25432:26;;25468:67;25532:1;25521:9;25517:17;25508:6;25468:67;:::i;:::-;25422:120;;;;:::o;25548:129::-;25582:6;25609:20;;:::i;:::-;25599:30;;25638:33;25666:4;25658:6;25638:33;:::i;:::-;25589:88;;;:::o;25683:75::-;25716:6;25749:2;25743:9;25733:19;;25723:35;:::o;25764:311::-;25841:4;25931:18;25923:6;25920:30;25917:2;;;25953:18;;:::i;:::-;25917:2;26003:4;25995:6;25991:17;25983:25;;26063:4;26057;26053:15;26045:23;;25846:229;;;:::o;26081:132::-;26148:4;26171:3;26163:11;;26201:4;26196:3;26192:14;26184:22;;26153:60;;;:::o;26219:114::-;26286:6;26320:5;26314:12;26304:22;;26293:40;;;:::o;26339:99::-;26391:6;26425:5;26419:12;26409:22;;26398:40;;;:::o;26444:113::-;26514:4;26546;26541:3;26537:14;26529:22;;26519:38;;;:::o;26563:184::-;26662:11;26696:6;26691:3;26684:19;26736:4;26731:3;26727:14;26712:29;;26674:73;;;;:::o;26753:169::-;26837:11;26871:6;26866:3;26859:19;26911:4;26906:3;26902:14;26887:29;;26849:73;;;;:::o;26928:305::-;26968:3;26987:20;27005:1;26987:20;:::i;:::-;26982:25;;27021:20;27039:1;27021:20;:::i;:::-;27016:25;;27175:1;27107:66;27103:74;27100:1;27097:81;27094:2;;;27181:18;;:::i;:::-;27094:2;27225:1;27222;27218:9;27211:16;;26972:261;;;;:::o;27239:185::-;27279:1;27296:20;27314:1;27296:20;:::i;:::-;27291:25;;27330:20;27348:1;27330:20;:::i;:::-;27325:25;;27369:1;27359:2;;27374:18;;:::i;:::-;27359:2;27416:1;27413;27409:9;27404:14;;27281:143;;;;:::o;27430:348::-;27470:7;27493:20;27511:1;27493:20;:::i;:::-;27488:25;;27527:20;27545:1;27527:20;:::i;:::-;27522:25;;27715:1;27647:66;27643:74;27640:1;27637:81;27632:1;27625:9;27618:17;27614:105;27611:2;;;27722:18;;:::i;:::-;27611:2;27770:1;27767;27763:9;27752:20;;27478:300;;;;:::o;27784:191::-;27824:4;27844:20;27862:1;27844:20;:::i;:::-;27839:25;;27878:20;27896:1;27878:20;:::i;:::-;27873:25;;27917:1;27914;27911:8;27908:2;;;27922:18;;:::i;:::-;27908:2;27967:1;27964;27960:9;27952:17;;27829:146;;;;:::o;27981:96::-;28018:7;28047:24;28065:5;28047:24;:::i;:::-;28036:35;;28026:51;;;:::o;28083:104::-;28128:7;28157:24;28175:5;28157:24;:::i;:::-;28146:35;;28136:51;;;:::o;28193:90::-;28227:7;28270:5;28263:13;28256:21;28245:32;;28235:48;;;:::o;28289:126::-;28326:7;28366:42;28359:5;28355:54;28344:65;;28334:81;;;:::o;28421:77::-;28458:7;28487:5;28476:16;;28466:32;;;:::o;28504:86::-;28539:7;28579:4;28572:5;28568:16;28557:27;;28547:43;;;:::o;28596:178::-;28672:9;28705:63;28762:5;28705:63;:::i;:::-;28692:76;;28682:92;;;:::o;28780:139::-;28856:9;28889:24;28907:5;28889:24;:::i;:::-;28876:37;;28866:53;;;:::o;28925:121::-;28983:9;29016:24;29034:5;29016:24;:::i;:::-;29003:37;;28993:53;;;:::o;29052:307::-;29120:1;29130:113;29144:6;29141:1;29138:13;29130:113;;;29229:1;29224:3;29220:11;29214:18;29210:1;29205:3;29201:11;29194:39;29166:2;29163:1;29159:10;29154:15;;29130:113;;;29261:6;29258:1;29255:13;29252:2;;;29341:1;29332:6;29327:3;29323:16;29316:27;29252:2;29101:258;;;;:::o;29365:281::-;29448:27;29470:4;29448:27;:::i;:::-;29440:6;29436:40;29578:6;29566:10;29563:22;29542:18;29530:10;29527:34;29524:62;29521:2;;;29589:18;;:::i;:::-;29521:2;29629:10;29625:2;29618:22;29408:238;;;:::o;29652:233::-;29691:3;29714:24;29732:5;29714:24;:::i;:::-;29705:33;;29760:66;29753:5;29750:77;29747:2;;;29830:18;;:::i;:::-;29747:2;29877:1;29870:5;29866:13;29859:20;;29695:190;;;:::o;29891:180::-;29939:77;29936:1;29929:88;30036:4;30033:1;30026:15;30060:4;30057:1;30050:15;30077:180;30125:77;30122:1;30115:88;30222:4;30219:1;30212:15;30246:4;30243:1;30236:15;30263:180;30311:77;30308:1;30301:88;30408:4;30405:1;30398:15;30432:4;30429:1;30422:15;30449:102;30490:6;30541:2;30537:7;30532:2;30525:5;30521:14;30517:28;30507:38;;30497:54;;;:::o;30557:222::-;30697:34;30693:1;30685:6;30681:14;30674:58;30766:5;30761:2;30753:6;30749:15;30742:30;30663:116;:::o;30785:250::-;30925:34;30921:1;30913:6;30909:14;30902:58;30994:33;30989:2;30981:6;30977:15;30970:58;30891:144;:::o;31041:229::-;31181:34;31177:1;31169:6;31165:14;31158:58;31250:12;31245:2;31237:6;31233:15;31226:37;31147:123;:::o;31276:178::-;31416:30;31412:1;31404:6;31400:14;31393:54;31382:72;:::o;31460:225::-;31600:34;31596:1;31588:6;31584:14;31577:58;31669:8;31664:2;31656:6;31652:15;31645:33;31566:119;:::o;31691:221::-;31831:34;31827:1;31819:6;31815:14;31808:58;31900:4;31895:2;31887:6;31883:15;31876:29;31797:115;:::o;31918:222::-;32058:34;32054:1;32046:6;32042:14;32035:58;32127:5;32122:2;32114:6;32110:15;32103:30;32024:116;:::o;32146:177::-;32286:29;32282:1;32274:6;32270:14;32263:53;32252:71;:::o;32329:173::-;32469:25;32465:1;32457:6;32453:14;32446:49;32435:67;:::o;32508:220::-;32648:34;32644:1;32636:6;32632:14;32625:58;32717:3;32712:2;32704:6;32700:15;32693:28;32614:114;:::o;32734:182::-;32874:34;32870:1;32862:6;32858:14;32851:58;32840:76;:::o;32922:228::-;33062:34;33058:1;33050:6;33046:14;33039:58;33131:11;33126:2;33118:6;33114:15;33107:36;33028:122;:::o;33156:224::-;33296:34;33292:1;33284:6;33280:14;33273:58;33365:7;33360:2;33352:6;33348:15;33341:32;33262:118;:::o;33386:222::-;33526:34;33522:1;33514:6;33510:14;33503:58;33595:5;33590:2;33582:6;33578:15;33571:30;33492:116;:::o;33614:223::-;33754:34;33750:1;33742:6;33738:14;33731:58;33823:6;33818:2;33810:6;33806:15;33799:31;33720:117;:::o;33843:122::-;33916:24;33934:5;33916:24;:::i;:::-;33909:5;33906:35;33896:2;;33955:1;33952;33945:12;33896:2;33886:79;:::o;33971:138::-;34052:32;34078:5;34052:32;:::i;:::-;34045:5;34042:43;34032:2;;34099:1;34096;34089:12;34032:2;34022:87;:::o;34115:116::-;34185:21;34200:5;34185:21;:::i;:::-;34178:5;34175:32;34165:2;;34221:1;34218;34211:12;34165:2;34155:76;:::o;34237:122::-;34310:24;34328:5;34310:24;:::i;:::-;34303:5;34300:35;34290:2;;34349:1;34346;34339:12;34290:2;34280:79;:::o

Swarm Source

ipfs://66ae5de15632c5a7c59b8d556bba02869591a86e65a262f4702d9a529f613016
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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