ETH Price: $2,687.91 (-1.70%)

Token

YAKO (YAKO)
 

Overview

Max Total Supply

1,000,000,000,000,000 YAKO

Holders

183

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
lucilfer.eth
Balance
2,364,640,996,348 YAKO

Value
$0.00
0x09c624d5271a1f7e6a2588e778a4d48bb90a6952
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:
YAKO

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/**

Welcome To Yako. We are the evolution of Okay. ✊🏻
https://t.me/yakoportal


                           '                   '                                       '‚                                  '        
 '                                      '¦\¯¯¯;\          °                                               ¦\¯¯¯¯¯¯¯¯\ ‚ „  
 ¦¯¯¯¯'¯¯¯¦       º              '/¯¯;¦\      '\  °   ¦\¯¯¯¯¯¯¯\ '¦¯¯¯¯¯¯\‚‚    /¯¯¯¯¯¯¯¯/\              \ ‚‚  
 ¦:.           ¦'¦¯¯¯¯¯¯¯¯¦     /      ¦_\      '\‚’   '\¦:.          ¦/____;__/¦   '/              / \ \              \   
 ¦\_______\¦:„            ¦    /      /¦'¯¦\       \’‚° '¦:.          ¦\¯¯¯¯¯¯'\'¦   ¦:.            '¦:. \¦:.             ¦  
 ¦:¦::::::::::::'¦:„            ¦   ¦:.     '\¦:.¦/        '\° '¦:.          ¦ ¦:.         '\   ¦:.            '¦:.  ¦:.             ¦  
 '\¦::::::::::::‚¦:„            ¦   ¦:.       '\'¦:.        '¦’ '¦:.          ¦ ¦:.          '¦° ¦\              \  '/              '/¦  
   ¯¯¯¯¯¯¯/°_______/¦   ¦\______¦_____ /¦'/_______/¦/_______/¦‚ ¦:\________\/              '/:'¦  
               ¦:::::°:::::::¦ ¦   ¦:¦:::::::::'¦:::::::::‚¦'¦¦::::::::::::'¦ ¦::::::::::::'¦'¦  ¦::¦::::::::::::'¦/________'/::/° 
               ¦::::„::::::::¦ /   '\¦:::::::::'¦:::::::::°¦/¦::::::::::::'¦/¦::::::::::::'¦/°  \'¦::::::::::::'¦::::::::::::::'¦::/ „‚ 
               ’¯¯¯¯¯¯¯¯’”     ¯¯¯¯¯¯°¯¯¯¯¯   ¯¯¯¯¯¯¯° '¯¯¯¯¯¯¯       ¯¯¯¯¯¯¯'¦::::::::::::::'¦/‚     
                               ' '                                         '‚                       ‚      ’  ¯¯¯¯¯¯¯¯        
  '‚                                                         '                              °                               '        


 ___       _                  _                  _                    _       ___ 
| . > _ _ | | ___   _ _  ___ | |__ ___  /\/|___ | |__ ___  _ _   ___ | | _ _ | . >
| . \| | || |/ | ' | | |<_> || / // . \|/\// . \| / /<_> || | | / | '| || | || . \
|___/`___||_|\_|_. `_. |<___||_\_\\___/    \___/|_\_\<___|`_. | \_|_.|_|`___||___/
                   <___'                                  <___'                   


*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.9;

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 YAKO is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "YAKO";
    string private constant _symbol = "YAKO";
    uint8 private constant _decimals = 9;

    IERC20 private PreSaleTokenAddress;
    uint256 private minimumPreSaleTokens;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping (address => bool) public preTrader; 
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 5;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 5;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    address payable private _developmentAddress = payable(0xEF0d9356aDC87c430af3730400312A9DCEd7acDA);//1.5% staking Gen1
    address payable private _development2Address = payable(0xB6b3Ff3DCB000b1fb9D3fc277a35d4F1A9d35C33);//0.5% staking gen2
    address payable private _marketingAddress = payable(0xeE5CcC4449eDfad6e4369082e85a0e1E5a2e3F44);//7% yako
    address payable private _marketing2Address = payable(0xe57A300AE3e3C7AEe94cDA6AB23CB1966B707Fc1);//1% collective

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = true;
    bool private preSaleActive = false;


    uint256 public _maxTxAmount = 10000000000000 * 10**9;
    uint256 public _maxWalletSize = 30000000000000 * 10**9;
    uint256 public _swapTokensAtAmount = 1000000000000 * 10**9;

    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[_developmentAddress] = true;
        _isExcludedFromFee[_development2Address] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        _isExcludedFromFee[_marketing2Address] = 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]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

        _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 sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount.mul(70).div(1000));//7% yako
        _marketing2Address.transfer(amount.mul(10).div(1000));//1% collective
        _developmentAddress.transfer(amount.mul(15).div(1000));//1.5% gen1 
        _development2Address.transfer(amount.mul(5).div(1000));//0.5% gen2

    }

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

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress || _msgSender() == _marketing2Address || _msgSender() == _development2Address);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress|| _msgSender() == _marketing2Address|| _msgSender() == _development2Address);
        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 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

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

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }
  function addPreTradingBatch(address[] memory newAddresses) external onlyOwner {
    uint length = newAddresses.length;
    for(uint x = 0; x < length;) {
      address account = newAddresses[x];
      require(preTrader[account] != true, "TOKEN: Already enabled.");
      preTrader[account] = true;
      unchecked { ++x; }
    }
  }

  function removePreTradingBatch(address[] memory newAddresses) external onlyOwner {
    uint length = newAddresses.length;
    for(uint x = 0; x < length;) {
      address  account = newAddresses[x];
      require(preTrader[account] != false, "TOKEN: Already disabled.");
      preTrader[account] = false;
      unchecked { ++x; }
    }
  }



}

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":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_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":"newAddresses","type":"address[]"}],"name":"addPreTradingBatch","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":[{"internalType":"address[]","name":"newAddresses","type":"address[]"}],"name":"removePreTradingBatch","outputs":[],"stateMutability":"nonpayable","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":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","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":"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"}]

608060405269d3c21bcecceda10000006000196200001e919062000920565b6000196200002d919062000987565b6009556000600b556005600c556000600d556005600e55600d54600f55600e54601055600f5460115560105460125573ef0d9356adc87c430af3730400312a9dced7acda601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b6b3ff3dcb000b1fb9d3fc277a35d4f1a9d35c33601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ee5ccc4449edfad6e4369082e85a0e1e5a2e3f44601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e57a300ae3e3c7aee94cda6ab23cb1966b707fc1601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601a60146101000a81548160ff0219169083151502179055506000601a60156101000a81548160ff0219169083151502179055506001601a60166101000a81548160ff0219169083151502179055506000601a60176101000a81548160ff02191690831515021790555069021e19e0c9bab2400000601b5569065a4da25d3016c00000601c55683635c9adc5dea00000601d553480156200025257600080fd5b50600062000265620008b660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600954600460006200031a620008b660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003f957600080fd5b505afa1580156200040e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000434919062000a2c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200049757600080fd5b505afa158015620004ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004d2919062000a2c565b6040518363ffffffff1660e01b8152600401620004f192919062000a6f565b602060405180830381600087803b1580156200050c57600080fd5b505af115801562000521573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000547919062000a2c565b601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860006200059d620008be60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200083e620008b660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69d3c21bcecceda1000000604051620008a7919062000aad565b60405180910390a35062000aca565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200092d82620008e7565b91506200093a83620008e7565b9250826200094d576200094c620008f1565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200099482620008e7565b9150620009a183620008e7565b925082821015620009b757620009b662000958565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009f482620009c7565b9050919050565b62000a0681620009e7565b811462000a1257600080fd5b50565b60008151905062000a2681620009fb565b92915050565b60006020828403121562000a455762000a44620009c2565b5b600062000a558482850162000a15565b91505092915050565b62000a6981620009e7565b82525050565b600060408201905062000a86600083018562000a5e565b62000a95602083018462000a5e565b9392505050565b62000aa781620008e7565b82525050565b600060208201905062000ac4600083018462000a9c565b92915050565b61472e8062000ada6000396000f3fe6080604052600436106101f15760003560e01c80637d1db4a51161010d578063a2a957bb116100a0578063c3c8cd801161006f578063c3c8cd80146106f5578063c492f0461461070c578063dd62ed3e14610735578063ea1644d514610772578063f2fde38b1461079b576101f8565b8063a2a957bb14610615578063a9059cbb1461063e578063bdd795ef1461067b578063bfd79284146106b8576101f8565b80638f70ccf7116100dc5780638f70ccf71461056d5780638f9a55c01461059657806395d89b41146105c157806398a5c315146105ec576101f8565b80637d1db4a5146104b15780637f2feddc146104dc57806383db9c89146105195780638da5cb5b14610542576101f8565b8063313ce567116101855780636fc3eaec116101545780636fc3eaec1461041d57806370a0823114610434578063715018a61461047157806374010ece14610488576101f8565b8063313ce5671461037557806349bd5a5e146103a05780636b999053146103cb5780636d8aa8f8146103f4576101f8565b806318160ddd116101c157806318160ddd146102b957806323b872dd146102e45780632fd689e314610321578063309beb461461034c576101f8565b8062b8cf2a146101fd57806306fdde0314610226578063095ea7b3146102515780631694505e1461028e576101f8565b366101f857005b600080fd5b34801561020957600080fd5b50610224600480360381019061021f91906135e2565b6107c4565b005b34801561023257600080fd5b5061023b6108ee565b60405161024891906136b3565b60405180910390f35b34801561025d57600080fd5b506102786004803603810190610273919061370b565b61092b565b6040516102859190613766565b60405180910390f35b34801561029a57600080fd5b506102a3610949565b6040516102b091906137e0565b60405180910390f35b3480156102c557600080fd5b506102ce61096f565b6040516102db919061380a565b60405180910390f35b3480156102f057600080fd5b5061030b60048036038101906103069190613825565b610981565b6040516103189190613766565b60405180910390f35b34801561032d57600080fd5b50610336610a5a565b604051610343919061380a565b60405180910390f35b34801561035857600080fd5b50610373600480360381019061036e91906135e2565b610a60565b005b34801561038157600080fd5b5061038a610c22565b6040516103979190613894565b60405180910390f35b3480156103ac57600080fd5b506103b5610c2b565b6040516103c291906138be565b60405180910390f35b3480156103d757600080fd5b506103f260048036038101906103ed91906138d9565b610c51565b005b34801561040057600080fd5b5061041b60048036038101906104169190613932565b610d41565b005b34801561042957600080fd5b50610432610df3565b005b34801561044057600080fd5b5061045b600480360381019061045691906138d9565b610f82565b604051610468919061380a565b60405180910390f35b34801561047d57600080fd5b50610486610fd3565b005b34801561049457600080fd5b506104af60048036038101906104aa919061395f565b611126565b005b3480156104bd57600080fd5b506104c66111c5565b6040516104d3919061380a565b60405180910390f35b3480156104e857600080fd5b5061050360048036038101906104fe91906138d9565b6111cb565b604051610510919061380a565b60405180910390f35b34801561052557600080fd5b50610540600480360381019061053b91906135e2565b6111e3565b005b34801561054e57600080fd5b506105576113a5565b60405161056491906138be565b60405180910390f35b34801561057957600080fd5b50610594600480360381019061058f9190613932565b6113ce565b005b3480156105a257600080fd5b506105ab611480565b6040516105b8919061380a565b60405180910390f35b3480156105cd57600080fd5b506105d6611486565b6040516105e391906136b3565b60405180910390f35b3480156105f857600080fd5b50610613600480360381019061060e919061395f565b6114c3565b005b34801561062157600080fd5b5061063c6004803603810190610637919061398c565b611562565b005b34801561064a57600080fd5b506106656004803603810190610660919061370b565b611619565b6040516106729190613766565b60405180910390f35b34801561068757600080fd5b506106a2600480360381019061069d91906138d9565b611637565b6040516106af9190613766565b60405180910390f35b3480156106c457600080fd5b506106df60048036038101906106da91906138d9565b611657565b6040516106ec9190613766565b60405180910390f35b34801561070157600080fd5b5061070a611677565b005b34801561071857600080fd5b50610733600480360381019061072e9190613a4e565b61180e565b005b34801561074157600080fd5b5061075c60048036038101906107579190613aae565b611948565b604051610769919061380a565b60405180910390f35b34801561077e57600080fd5b506107996004803603810190610794919061395f565b6119cf565b005b3480156107a757600080fd5b506107c260048036038101906107bd91906138d9565b611a6e565b005b6107cc611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085090613b3a565b60405180910390fd5b60005b81518110156108ea5760016013600084848151811061087e5761087d613b5a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108e290613bb8565b91505061085c565b5050565b60606040518060400160405280600481526020017f59414b4f00000000000000000000000000000000000000000000000000000000815250905090565b600061093f610938611c30565b8484611c38565b6001905092915050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069d3c21bcecceda1000000905090565b600061098e848484611e03565b610a4f8461099a611c30565b610a4a856040518060600160405280602881526020016146d160289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a00611c30565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461274d9092919063ffffffff16565b611c38565b600190509392505050565b601d5481565b610a68611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aec90613b3a565b60405180910390fd5b60008151905060005b81811015610c1d576000838281518110610b1b57610b1a613b5a565b5b6020026020010151905060001515600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb090613c4d565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600101915050610afe565b505050565b60006009905090565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c59611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdd90613b3a565b60405180910390fd5b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610d49611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcd90613b3a565b60405180910390fd5b80601a60166101000a81548160ff02191690831515021790555050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e34611c30565b73ffffffffffffffffffffffffffffffffffffffff161480610eaa5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e92611c30565b73ffffffffffffffffffffffffffffffffffffffff16145b80610f095750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ef1611c30565b73ffffffffffffffffffffffffffffffffffffffff16145b80610f685750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f50611c30565b73ffffffffffffffffffffffffffffffffffffffff16145b610f7157600080fd5b6000479050610f7f816127b1565b50565b6000610fcc600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f4565b9050919050565b610fdb611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611068576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105f90613b3a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61112e611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b290613b3a565b60405180910390fd5b80601b8190555050565b601b5481565b60146020528060005260406000206000915090505481565b6111eb611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126f90613b3a565b60405180910390fd5b60008151905060005b818110156113a057600083828151811061129e5761129d613b5a565b5b6020026020010151905060011515600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561133c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133390613cb9565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600101915050611281565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6113d6611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145a90613b3a565b60405180910390fd5b80601a60146101000a81548160ff02191690831515021790555050565b601c5481565b60606040518060400160405280600481526020017f59414b4f00000000000000000000000000000000000000000000000000000000815250905090565b6114cb611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f90613b3a565b60405180910390fd5b80601d8190555050565b61156a611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ee90613b3a565b60405180910390fd5b83600b8190555082600d8190555081600c8190555080600e8190555050505050565b600061162d611626611c30565b8484611e03565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b60136020528060005260406000206000915054906101000a900460ff1681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116b8611c30565b73ffffffffffffffffffffffffffffffffffffffff16148061172e5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611716611c30565b73ffffffffffffffffffffffffffffffffffffffff16145b8061178d5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611775611c30565b73ffffffffffffffffffffffffffffffffffffffff16145b806117ec5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117d4611c30565b73ffffffffffffffffffffffffffffffffffffffff16145b6117f557600080fd5b600061180030610f82565b905061180b81612a62565b50565b611816611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189a90613b3a565b60405180910390fd5b60005b838390508110156119425781600860008686858181106118c9576118c8613b5a565b5b90506020020160208101906118de91906138d9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061193a90613bb8565b9150506118a6565b50505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6119d7611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5b90613b3a565b60405180910390fd5b80601c8190555050565b611a76611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afa90613b3a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6a90613d4b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9f90613ddd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0f90613e6f565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611df6919061380a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6a90613f01565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eda90613f93565b60405180910390fd5b60008111611f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1d90614025565b60405180910390fd5b611f2e6113a5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f9c5750611f6c6113a5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ff25750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120485750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561244c57601a60149054906101000a900460ff166120ee57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166120ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e4906140b7565b60405180910390fd5b5b601b54811115612133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212a90614123565b60405180910390fd5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121d75750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220d906141b5565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146122c357601c548161227884610f82565b61228291906141d5565b106122c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b99061429d565b60405180910390fd5b5b60006122ce30610f82565b90506000601d548210159050601b5482106122e957601b5491505b8080156123035750601a60159054906101000a900460ff16155b801561235d5750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123755750601a60169054906101000a900460ff165b80156123cb5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124215750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124495761242f82612a62565b6000479050600081111561244757612446476127b1565b5b505b50505b600060019050600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124f35750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806125a65750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156125a55750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156125b4576000905061273b565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561265f5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561267757600b54600f81905550600c546010819055505b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156127225750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561273a57600d54600f81905550600e546010819055505b5b61274784848484612cea565b50505050565b6000838311158290612795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278c91906136b3565b60405180910390fd5b50600083856127a491906142bd565b9050809150509392505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6128156103e8612807604686612d1790919063ffffffff16565b612d9290919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612840573d6000803e3d6000fd5b50601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6128a56103e8612897600a86612d1790919063ffffffff16565b612d9290919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156128d0573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6129356103e8612927600f86612d1790919063ffffffff16565b612d9290919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612960573d6000803e3d6000fd5b50601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6129c56103e86129b7600586612d1790919063ffffffff16565b612d9290919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156129f0573d6000803e3d6000fd5b5050565b6000600954821115612a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3290614363565b60405180910390fd5b6000612a45612ddc565b9050612a5a8184612d9290919063ffffffff16565b915050919050565b6001601a60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612a9a57612a99613441565b5b604051908082528060200260200182016040528015612ac85781602001602082028036833780820191505090505b5090503081600081518110612ae057612adf613b5a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612b8257600080fd5b505afa158015612b96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bba9190614398565b81600181518110612bce57612bcd613b5a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612c3530601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c38565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612c999594939291906144be565b600060405180830381600087803b158015612cb357600080fd5b505af1158015612cc7573d6000803e3d6000fd5b50505050506000601a60156101000a81548160ff02191690831515021790555050565b80612cf857612cf7612e07565b5b612d03848484612e4a565b80612d1157612d10613015565b5b50505050565b600080831415612d2a5760009050612d8c565b60008284612d389190614518565b9050828482612d4791906145a1565b14612d87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7e90614644565b60405180910390fd5b809150505b92915050565b6000612dd483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613029565b905092915050565b6000806000612de961308c565b91509150612e008183612d9290919063ffffffff16565b9250505090565b6000600f54148015612e1b57506000601054145b15612e2557612e48565b600f546011819055506010546012819055506000600f8190555060006010819055505b565b600080600080600080612e5c876130f1565b955095509550955095509550612eba86600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461315990919063ffffffff16565b600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f4f85600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131a390919063ffffffff16565b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f9b81613201565b612fa584836132be565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051613002919061380a565b60405180910390a3505050505050505050565b601154600f81905550601254601081905550565b60008083118290613070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161306791906136b3565b60405180910390fd5b506000838561307f91906145a1565b9050809150509392505050565b60008060006009549050600069d3c21bcecceda100000090506130c469d3c21bcecceda1000000600954612d9290919063ffffffff16565b8210156130e45760095469d3c21bcecceda10000009350935050506130ed565b81819350935050505b9091565b600080600080600080600080600061310e8a600f546010546132f8565b925092509250600061311e612ddc565b905060008060006131318e87878761338e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061319b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061274d565b905092915050565b60008082846131b291906141d5565b9050838110156131f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131ee906146b0565b60405180910390fd5b8091505092915050565b600061320b612ddc565b905060006132228284612d1790919063ffffffff16565b905061327681600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131a390919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6132d38260095461315990919063ffffffff16565b6009819055506132ee81600a546131a390919063ffffffff16565b600a819055505050565b6000806000806133246064613316888a612d1790919063ffffffff16565b612d9290919063ffffffff16565b9050600061334e6064613340888b612d1790919063ffffffff16565b612d9290919063ffffffff16565b9050600061337782613369858c61315990919063ffffffff16565b61315990919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806133a78589612d1790919063ffffffff16565b905060006133be8689612d1790919063ffffffff16565b905060006133d58789612d1790919063ffffffff16565b905060006133fe826133f0858761315990919063ffffffff16565b61315990919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61347982613430565b810181811067ffffffffffffffff8211171561349857613497613441565b5b80604052505050565b60006134ab613417565b90506134b78282613470565b919050565b600067ffffffffffffffff8211156134d7576134d6613441565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613518826134ed565b9050919050565b6135288161350d565b811461353357600080fd5b50565b6000813590506135458161351f565b92915050565b600061355e613559846134bc565b6134a1565b90508083825260208201905060208402830185811115613581576135806134e8565b5b835b818110156135aa57806135968882613536565b845260208401935050602081019050613583565b5050509392505050565b600082601f8301126135c9576135c861342b565b5b81356135d984826020860161354b565b91505092915050565b6000602082840312156135f8576135f7613421565b5b600082013567ffffffffffffffff81111561361657613615613426565b5b613622848285016135b4565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561366557808201518184015260208101905061364a565b83811115613674576000848401525b50505050565b60006136858261362b565b61368f8185613636565b935061369f818560208601613647565b6136a881613430565b840191505092915050565b600060208201905081810360008301526136cd818461367a565b905092915050565b6000819050919050565b6136e8816136d5565b81146136f357600080fd5b50565b600081359050613705816136df565b92915050565b6000806040838503121561372257613721613421565b5b600061373085828601613536565b9250506020613741858286016136f6565b9150509250929050565b60008115159050919050565b6137608161374b565b82525050565b600060208201905061377b6000830184613757565b92915050565b6000819050919050565b60006137a66137a161379c846134ed565b613781565b6134ed565b9050919050565b60006137b88261378b565b9050919050565b60006137ca826137ad565b9050919050565b6137da816137bf565b82525050565b60006020820190506137f560008301846137d1565b92915050565b613804816136d5565b82525050565b600060208201905061381f60008301846137fb565b92915050565b60008060006060848603121561383e5761383d613421565b5b600061384c86828701613536565b935050602061385d86828701613536565b925050604061386e868287016136f6565b9150509250925092565b600060ff82169050919050565b61388e81613878565b82525050565b60006020820190506138a96000830184613885565b92915050565b6138b88161350d565b82525050565b60006020820190506138d360008301846138af565b92915050565b6000602082840312156138ef576138ee613421565b5b60006138fd84828501613536565b91505092915050565b61390f8161374b565b811461391a57600080fd5b50565b60008135905061392c81613906565b92915050565b60006020828403121561394857613947613421565b5b60006139568482850161391d565b91505092915050565b60006020828403121561397557613974613421565b5b6000613983848285016136f6565b91505092915050565b600080600080608085870312156139a6576139a5613421565b5b60006139b4878288016136f6565b94505060206139c5878288016136f6565b93505060406139d6878288016136f6565b92505060606139e7878288016136f6565b91505092959194509250565b600080fd5b60008083601f840112613a0e57613a0d61342b565b5b8235905067ffffffffffffffff811115613a2b57613a2a6139f3565b5b602083019150836020820283011115613a4757613a466134e8565b5b9250929050565b600080600060408486031215613a6757613a66613421565b5b600084013567ffffffffffffffff811115613a8557613a84613426565b5b613a91868287016139f8565b93509350506020613aa48682870161391d565b9150509250925092565b60008060408385031215613ac557613ac4613421565b5b6000613ad385828601613536565b9250506020613ae485828601613536565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613b24602083613636565b9150613b2f82613aee565b602082019050919050565b60006020820190508181036000830152613b5381613b17565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613bc3826136d5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613bf657613bf5613b89565b5b600182019050919050565b7f544f4b454e3a20416c72656164792064697361626c65642e0000000000000000600082015250565b6000613c37601883613636565b9150613c4282613c01565b602082019050919050565b60006020820190508181036000830152613c6681613c2a565b9050919050565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b6000613ca3601783613636565b9150613cae82613c6d565b602082019050919050565b60006020820190508181036000830152613cd281613c96565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613d35602683613636565b9150613d4082613cd9565b604082019050919050565b60006020820190508181036000830152613d6481613d28565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613dc7602483613636565b9150613dd282613d6b565b604082019050919050565b60006020820190508181036000830152613df681613dba565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e59602283613636565b9150613e6482613dfd565b604082019050919050565b60006020820190508181036000830152613e8881613e4c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613eeb602583613636565b9150613ef682613e8f565b604082019050919050565b60006020820190508181036000830152613f1a81613ede565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613f7d602383613636565b9150613f8882613f21565b604082019050919050565b60006020820190508181036000830152613fac81613f70565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061400f602983613636565b915061401a82613fb3565b604082019050919050565b6000602082019050818103600083015261403e81614002565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006140a1603f83613636565b91506140ac82614045565b604082019050919050565b600060208201905081810360008301526140d081614094565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061410d601c83613636565b9150614118826140d7565b602082019050919050565b6000602082019050818103600083015261413c81614100565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061419f602383613636565b91506141aa82614143565b604082019050919050565b600060208201905081810360008301526141ce81614192565b9050919050565b60006141e0826136d5565b91506141eb836136d5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156142205761421f613b89565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000614287602383613636565b91506142928261422b565b604082019050919050565b600060208201905081810360008301526142b68161427a565b9050919050565b60006142c8826136d5565b91506142d3836136d5565b9250828210156142e6576142e5613b89565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061434d602a83613636565b9150614358826142f1565b604082019050919050565b6000602082019050818103600083015261437c81614340565b9050919050565b6000815190506143928161351f565b92915050565b6000602082840312156143ae576143ad613421565b5b60006143bc84828501614383565b91505092915050565b6000819050919050565b60006143ea6143e56143e0846143c5565b613781565b6136d5565b9050919050565b6143fa816143cf565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6144358161350d565b82525050565b6000614447838361442c565b60208301905092915050565b6000602082019050919050565b600061446b82614400565b614475818561440b565b93506144808361441c565b8060005b838110156144b1578151614498888261443b565b97506144a383614453565b925050600181019050614484565b5085935050505092915050565b600060a0820190506144d360008301886137fb565b6144e060208301876143f1565b81810360408301526144f28186614460565b905061450160608301856138af565b61450e60808301846137fb565b9695505050505050565b6000614523826136d5565b915061452e836136d5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561456757614566613b89565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006145ac826136d5565b91506145b7836136d5565b9250826145c7576145c6614572565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061462e602183613636565b9150614639826145d2565b604082019050919050565b6000602082019050818103600083015261465d81614621565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061469a601b83613636565b91506146a582614664565b602082019050919050565b600060208201905081810360008301526146c98161468d565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cdbf72b70de7f88009f0bc3b5edd58a2acde3f1df2eab9162752789ffecb166664736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101f15760003560e01c80637d1db4a51161010d578063a2a957bb116100a0578063c3c8cd801161006f578063c3c8cd80146106f5578063c492f0461461070c578063dd62ed3e14610735578063ea1644d514610772578063f2fde38b1461079b576101f8565b8063a2a957bb14610615578063a9059cbb1461063e578063bdd795ef1461067b578063bfd79284146106b8576101f8565b80638f70ccf7116100dc5780638f70ccf71461056d5780638f9a55c01461059657806395d89b41146105c157806398a5c315146105ec576101f8565b80637d1db4a5146104b15780637f2feddc146104dc57806383db9c89146105195780638da5cb5b14610542576101f8565b8063313ce567116101855780636fc3eaec116101545780636fc3eaec1461041d57806370a0823114610434578063715018a61461047157806374010ece14610488576101f8565b8063313ce5671461037557806349bd5a5e146103a05780636b999053146103cb5780636d8aa8f8146103f4576101f8565b806318160ddd116101c157806318160ddd146102b957806323b872dd146102e45780632fd689e314610321578063309beb461461034c576101f8565b8062b8cf2a146101fd57806306fdde0314610226578063095ea7b3146102515780631694505e1461028e576101f8565b366101f857005b600080fd5b34801561020957600080fd5b50610224600480360381019061021f91906135e2565b6107c4565b005b34801561023257600080fd5b5061023b6108ee565b60405161024891906136b3565b60405180910390f35b34801561025d57600080fd5b506102786004803603810190610273919061370b565b61092b565b6040516102859190613766565b60405180910390f35b34801561029a57600080fd5b506102a3610949565b6040516102b091906137e0565b60405180910390f35b3480156102c557600080fd5b506102ce61096f565b6040516102db919061380a565b60405180910390f35b3480156102f057600080fd5b5061030b60048036038101906103069190613825565b610981565b6040516103189190613766565b60405180910390f35b34801561032d57600080fd5b50610336610a5a565b604051610343919061380a565b60405180910390f35b34801561035857600080fd5b50610373600480360381019061036e91906135e2565b610a60565b005b34801561038157600080fd5b5061038a610c22565b6040516103979190613894565b60405180910390f35b3480156103ac57600080fd5b506103b5610c2b565b6040516103c291906138be565b60405180910390f35b3480156103d757600080fd5b506103f260048036038101906103ed91906138d9565b610c51565b005b34801561040057600080fd5b5061041b60048036038101906104169190613932565b610d41565b005b34801561042957600080fd5b50610432610df3565b005b34801561044057600080fd5b5061045b600480360381019061045691906138d9565b610f82565b604051610468919061380a565b60405180910390f35b34801561047d57600080fd5b50610486610fd3565b005b34801561049457600080fd5b506104af60048036038101906104aa919061395f565b611126565b005b3480156104bd57600080fd5b506104c66111c5565b6040516104d3919061380a565b60405180910390f35b3480156104e857600080fd5b5061050360048036038101906104fe91906138d9565b6111cb565b604051610510919061380a565b60405180910390f35b34801561052557600080fd5b50610540600480360381019061053b91906135e2565b6111e3565b005b34801561054e57600080fd5b506105576113a5565b60405161056491906138be565b60405180910390f35b34801561057957600080fd5b50610594600480360381019061058f9190613932565b6113ce565b005b3480156105a257600080fd5b506105ab611480565b6040516105b8919061380a565b60405180910390f35b3480156105cd57600080fd5b506105d6611486565b6040516105e391906136b3565b60405180910390f35b3480156105f857600080fd5b50610613600480360381019061060e919061395f565b6114c3565b005b34801561062157600080fd5b5061063c6004803603810190610637919061398c565b611562565b005b34801561064a57600080fd5b506106656004803603810190610660919061370b565b611619565b6040516106729190613766565b60405180910390f35b34801561068757600080fd5b506106a2600480360381019061069d91906138d9565b611637565b6040516106af9190613766565b60405180910390f35b3480156106c457600080fd5b506106df60048036038101906106da91906138d9565b611657565b6040516106ec9190613766565b60405180910390f35b34801561070157600080fd5b5061070a611677565b005b34801561071857600080fd5b50610733600480360381019061072e9190613a4e565b61180e565b005b34801561074157600080fd5b5061075c60048036038101906107579190613aae565b611948565b604051610769919061380a565b60405180910390f35b34801561077e57600080fd5b506107996004803603810190610794919061395f565b6119cf565b005b3480156107a757600080fd5b506107c260048036038101906107bd91906138d9565b611a6e565b005b6107cc611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085090613b3a565b60405180910390fd5b60005b81518110156108ea5760016013600084848151811061087e5761087d613b5a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108e290613bb8565b91505061085c565b5050565b60606040518060400160405280600481526020017f59414b4f00000000000000000000000000000000000000000000000000000000815250905090565b600061093f610938611c30565b8484611c38565b6001905092915050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069d3c21bcecceda1000000905090565b600061098e848484611e03565b610a4f8461099a611c30565b610a4a856040518060600160405280602881526020016146d160289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a00611c30565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461274d9092919063ffffffff16565b611c38565b600190509392505050565b601d5481565b610a68611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aec90613b3a565b60405180910390fd5b60008151905060005b81811015610c1d576000838281518110610b1b57610b1a613b5a565b5b6020026020010151905060001515600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb090613c4d565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600101915050610afe565b505050565b60006009905090565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c59611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdd90613b3a565b60405180910390fd5b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610d49611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcd90613b3a565b60405180910390fd5b80601a60166101000a81548160ff02191690831515021790555050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e34611c30565b73ffffffffffffffffffffffffffffffffffffffff161480610eaa5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e92611c30565b73ffffffffffffffffffffffffffffffffffffffff16145b80610f095750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ef1611c30565b73ffffffffffffffffffffffffffffffffffffffff16145b80610f685750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f50611c30565b73ffffffffffffffffffffffffffffffffffffffff16145b610f7157600080fd5b6000479050610f7f816127b1565b50565b6000610fcc600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f4565b9050919050565b610fdb611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611068576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105f90613b3a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61112e611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b290613b3a565b60405180910390fd5b80601b8190555050565b601b5481565b60146020528060005260406000206000915090505481565b6111eb611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126f90613b3a565b60405180910390fd5b60008151905060005b818110156113a057600083828151811061129e5761129d613b5a565b5b6020026020010151905060011515600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561133c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133390613cb9565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600101915050611281565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6113d6611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145a90613b3a565b60405180910390fd5b80601a60146101000a81548160ff02191690831515021790555050565b601c5481565b60606040518060400160405280600481526020017f59414b4f00000000000000000000000000000000000000000000000000000000815250905090565b6114cb611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f90613b3a565b60405180910390fd5b80601d8190555050565b61156a611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ee90613b3a565b60405180910390fd5b83600b8190555082600d8190555081600c8190555080600e8190555050505050565b600061162d611626611c30565b8484611e03565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b60136020528060005260406000206000915054906101000a900460ff1681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116b8611c30565b73ffffffffffffffffffffffffffffffffffffffff16148061172e5750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611716611c30565b73ffffffffffffffffffffffffffffffffffffffff16145b8061178d5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611775611c30565b73ffffffffffffffffffffffffffffffffffffffff16145b806117ec5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117d4611c30565b73ffffffffffffffffffffffffffffffffffffffff16145b6117f557600080fd5b600061180030610f82565b905061180b81612a62565b50565b611816611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189a90613b3a565b60405180910390fd5b60005b838390508110156119425781600860008686858181106118c9576118c8613b5a565b5b90506020020160208101906118de91906138d9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061193a90613bb8565b9150506118a6565b50505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6119d7611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5b90613b3a565b60405180910390fd5b80601c8190555050565b611a76611c30565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afa90613b3a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6a90613d4b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9f90613ddd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0f90613e6f565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611df6919061380a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6a90613f01565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eda90613f93565b60405180910390fd5b60008111611f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1d90614025565b60405180910390fd5b611f2e6113a5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f9c5750611f6c6113a5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ff25750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120485750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561244c57601a60149054906101000a900460ff166120ee57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166120ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e4906140b7565b60405180910390fd5b5b601b54811115612133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212a90614123565b60405180910390fd5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121d75750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220d906141b5565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146122c357601c548161227884610f82565b61228291906141d5565b106122c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b99061429d565b60405180910390fd5b5b60006122ce30610f82565b90506000601d548210159050601b5482106122e957601b5491505b8080156123035750601a60159054906101000a900460ff16155b801561235d5750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123755750601a60169054906101000a900460ff165b80156123cb5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124215750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124495761242f82612a62565b6000479050600081111561244757612446476127b1565b5b505b50505b600060019050600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124f35750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806125a65750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156125a55750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156125b4576000905061273b565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561265f5750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561267757600b54600f81905550600c546010819055505b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156127225750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561273a57600d54600f81905550600e546010819055505b5b61274784848484612cea565b50505050565b6000838311158290612795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278c91906136b3565b60405180910390fd5b50600083856127a491906142bd565b9050809150509392505050565b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6128156103e8612807604686612d1790919063ffffffff16565b612d9290919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612840573d6000803e3d6000fd5b50601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6128a56103e8612897600a86612d1790919063ffffffff16565b612d9290919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156128d0573d6000803e3d6000fd5b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6129356103e8612927600f86612d1790919063ffffffff16565b612d9290919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612960573d6000803e3d6000fd5b50601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6129c56103e86129b7600586612d1790919063ffffffff16565b612d9290919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156129f0573d6000803e3d6000fd5b5050565b6000600954821115612a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3290614363565b60405180910390fd5b6000612a45612ddc565b9050612a5a8184612d9290919063ffffffff16565b915050919050565b6001601a60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612a9a57612a99613441565b5b604051908082528060200260200182016040528015612ac85781602001602082028036833780820191505090505b5090503081600081518110612ae057612adf613b5a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612b8257600080fd5b505afa158015612b96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bba9190614398565b81600181518110612bce57612bcd613b5a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612c3530601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c38565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612c999594939291906144be565b600060405180830381600087803b158015612cb357600080fd5b505af1158015612cc7573d6000803e3d6000fd5b50505050506000601a60156101000a81548160ff02191690831515021790555050565b80612cf857612cf7612e07565b5b612d03848484612e4a565b80612d1157612d10613015565b5b50505050565b600080831415612d2a5760009050612d8c565b60008284612d389190614518565b9050828482612d4791906145a1565b14612d87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7e90614644565b60405180910390fd5b809150505b92915050565b6000612dd483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613029565b905092915050565b6000806000612de961308c565b91509150612e008183612d9290919063ffffffff16565b9250505090565b6000600f54148015612e1b57506000601054145b15612e2557612e48565b600f546011819055506010546012819055506000600f8190555060006010819055505b565b600080600080600080612e5c876130f1565b955095509550955095509550612eba86600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461315990919063ffffffff16565b600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f4f85600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131a390919063ffffffff16565b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f9b81613201565b612fa584836132be565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051613002919061380a565b60405180910390a3505050505050505050565b601154600f81905550601254601081905550565b60008083118290613070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161306791906136b3565b60405180910390fd5b506000838561307f91906145a1565b9050809150509392505050565b60008060006009549050600069d3c21bcecceda100000090506130c469d3c21bcecceda1000000600954612d9290919063ffffffff16565b8210156130e45760095469d3c21bcecceda10000009350935050506130ed565b81819350935050505b9091565b600080600080600080600080600061310e8a600f546010546132f8565b925092509250600061311e612ddc565b905060008060006131318e87878761338e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061319b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061274d565b905092915050565b60008082846131b291906141d5565b9050838110156131f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131ee906146b0565b60405180910390fd5b8091505092915050565b600061320b612ddc565b905060006132228284612d1790919063ffffffff16565b905061327681600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131a390919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6132d38260095461315990919063ffffffff16565b6009819055506132ee81600a546131a390919063ffffffff16565b600a819055505050565b6000806000806133246064613316888a612d1790919063ffffffff16565b612d9290919063ffffffff16565b9050600061334e6064613340888b612d1790919063ffffffff16565b612d9290919063ffffffff16565b9050600061337782613369858c61315990919063ffffffff16565b61315990919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806133a78589612d1790919063ffffffff16565b905060006133be8689612d1790919063ffffffff16565b905060006133d58789612d1790919063ffffffff16565b905060006133fe826133f0858761315990919063ffffffff16565b61315990919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61347982613430565b810181811067ffffffffffffffff8211171561349857613497613441565b5b80604052505050565b60006134ab613417565b90506134b78282613470565b919050565b600067ffffffffffffffff8211156134d7576134d6613441565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613518826134ed565b9050919050565b6135288161350d565b811461353357600080fd5b50565b6000813590506135458161351f565b92915050565b600061355e613559846134bc565b6134a1565b90508083825260208201905060208402830185811115613581576135806134e8565b5b835b818110156135aa57806135968882613536565b845260208401935050602081019050613583565b5050509392505050565b600082601f8301126135c9576135c861342b565b5b81356135d984826020860161354b565b91505092915050565b6000602082840312156135f8576135f7613421565b5b600082013567ffffffffffffffff81111561361657613615613426565b5b613622848285016135b4565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561366557808201518184015260208101905061364a565b83811115613674576000848401525b50505050565b60006136858261362b565b61368f8185613636565b935061369f818560208601613647565b6136a881613430565b840191505092915050565b600060208201905081810360008301526136cd818461367a565b905092915050565b6000819050919050565b6136e8816136d5565b81146136f357600080fd5b50565b600081359050613705816136df565b92915050565b6000806040838503121561372257613721613421565b5b600061373085828601613536565b9250506020613741858286016136f6565b9150509250929050565b60008115159050919050565b6137608161374b565b82525050565b600060208201905061377b6000830184613757565b92915050565b6000819050919050565b60006137a66137a161379c846134ed565b613781565b6134ed565b9050919050565b60006137b88261378b565b9050919050565b60006137ca826137ad565b9050919050565b6137da816137bf565b82525050565b60006020820190506137f560008301846137d1565b92915050565b613804816136d5565b82525050565b600060208201905061381f60008301846137fb565b92915050565b60008060006060848603121561383e5761383d613421565b5b600061384c86828701613536565b935050602061385d86828701613536565b925050604061386e868287016136f6565b9150509250925092565b600060ff82169050919050565b61388e81613878565b82525050565b60006020820190506138a96000830184613885565b92915050565b6138b88161350d565b82525050565b60006020820190506138d360008301846138af565b92915050565b6000602082840312156138ef576138ee613421565b5b60006138fd84828501613536565b91505092915050565b61390f8161374b565b811461391a57600080fd5b50565b60008135905061392c81613906565b92915050565b60006020828403121561394857613947613421565b5b60006139568482850161391d565b91505092915050565b60006020828403121561397557613974613421565b5b6000613983848285016136f6565b91505092915050565b600080600080608085870312156139a6576139a5613421565b5b60006139b4878288016136f6565b94505060206139c5878288016136f6565b93505060406139d6878288016136f6565b92505060606139e7878288016136f6565b91505092959194509250565b600080fd5b60008083601f840112613a0e57613a0d61342b565b5b8235905067ffffffffffffffff811115613a2b57613a2a6139f3565b5b602083019150836020820283011115613a4757613a466134e8565b5b9250929050565b600080600060408486031215613a6757613a66613421565b5b600084013567ffffffffffffffff811115613a8557613a84613426565b5b613a91868287016139f8565b93509350506020613aa48682870161391d565b9150509250925092565b60008060408385031215613ac557613ac4613421565b5b6000613ad385828601613536565b9250506020613ae485828601613536565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613b24602083613636565b9150613b2f82613aee565b602082019050919050565b60006020820190508181036000830152613b5381613b17565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613bc3826136d5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613bf657613bf5613b89565b5b600182019050919050565b7f544f4b454e3a20416c72656164792064697361626c65642e0000000000000000600082015250565b6000613c37601883613636565b9150613c4282613c01565b602082019050919050565b60006020820190508181036000830152613c6681613c2a565b9050919050565b7f544f4b454e3a20416c726561647920656e61626c65642e000000000000000000600082015250565b6000613ca3601783613636565b9150613cae82613c6d565b602082019050919050565b60006020820190508181036000830152613cd281613c96565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613d35602683613636565b9150613d4082613cd9565b604082019050919050565b60006020820190508181036000830152613d6481613d28565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613dc7602483613636565b9150613dd282613d6b565b604082019050919050565b60006020820190508181036000830152613df681613dba565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e59602283613636565b9150613e6482613dfd565b604082019050919050565b60006020820190508181036000830152613e8881613e4c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613eeb602583613636565b9150613ef682613e8f565b604082019050919050565b60006020820190508181036000830152613f1a81613ede565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613f7d602383613636565b9150613f8882613f21565b604082019050919050565b60006020820190508181036000830152613fac81613f70565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061400f602983613636565b915061401a82613fb3565b604082019050919050565b6000602082019050818103600083015261403e81614002565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006140a1603f83613636565b91506140ac82614045565b604082019050919050565b600060208201905081810360008301526140d081614094565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061410d601c83613636565b9150614118826140d7565b602082019050919050565b6000602082019050818103600083015261413c81614100565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061419f602383613636565b91506141aa82614143565b604082019050919050565b600060208201905081810360008301526141ce81614192565b9050919050565b60006141e0826136d5565b91506141eb836136d5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156142205761421f613b89565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000614287602383613636565b91506142928261422b565b604082019050919050565b600060208201905081810360008301526142b68161427a565b9050919050565b60006142c8826136d5565b91506142d3836136d5565b9250828210156142e6576142e5613b89565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061434d602a83613636565b9150614358826142f1565b604082019050919050565b6000602082019050818103600083015261437c81614340565b9050919050565b6000815190506143928161351f565b92915050565b6000602082840312156143ae576143ad613421565b5b60006143bc84828501614383565b91505092915050565b6000819050919050565b60006143ea6143e56143e0846143c5565b613781565b6136d5565b9050919050565b6143fa816143cf565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6144358161350d565b82525050565b6000614447838361442c565b60208301905092915050565b6000602082019050919050565b600061446b82614400565b614475818561440b565b93506144808361441c565b8060005b838110156144b1578151614498888261443b565b97506144a383614453565b925050600181019050614484565b5085935050505092915050565b600060a0820190506144d360008301886137fb565b6144e060208301876143f1565b81810360408301526144f28186614460565b905061450160608301856138af565b61450e60808301846137fb565b9695505050505050565b6000614523826136d5565b915061452e836136d5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561456757614566613b89565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006145ac826136d5565b91506145b7836136d5565b9250826145c7576145c6614572565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061462e602183613636565b9150614639826145d2565b604082019050919050565b6000602082019050818103600083015261465d81614621565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061469a601b83613636565b91506146a582614664565b602082019050919050565b600060208201905081810360008301526146c98161468d565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cdbf72b70de7f88009f0bc3b5edd58a2acde3f1df2eab9162752789ffecb166664736f6c63430008090033

Deployed Bytecode Sourcemap

6507:15242:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16221:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9585:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10510:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8250:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9862:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10711:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8611:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21393:347;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9771:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8298:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16398:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20430:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15902:311;;;;;;;;;;;;;:::i;:::-;;9965:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3994:148;;;;;;;;;;;;;:::i;:::-;;20570:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8491:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7722:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21047:340;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3780:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15471:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8550:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9676:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20239:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19896:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10111:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6914:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7684:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15580:314;;;;;;;;;;;;;:::i;:::-;;20809:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10318:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20686:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4150:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16221:169;3917:12;:10;:12::i;:::-;3907:22;;:6;;;;;;;;;;:22;;;3899:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16297:9:::1;16292:91;16316:5;:12;16312:1;:16;16292:91;;;16367:4;16350;:14;16355:5;16361:1;16355:8;;;;;;;;:::i;:::-;;;;;;;;16350:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;16330:3;;;;;:::i;:::-;;;;16292:91;;;;16221:169:::0;:::o;9585:83::-;9622:13;9655:5;;;;;;;;;;;;;;;;;9648:12;;9585:83;:::o;10510:193::-;10612:4;10634:39;10643:12;:10;:12::i;:::-;10657:7;10666:6;10634:8;:39::i;:::-;10691:4;10684:11;;10510:193;;;;:::o;8250:41::-;;;;;;;;;;;;;:::o;9862:95::-;9915:7;7180:24;9935:14;;9862:95;:::o;10711:446::-;10843:4;10860:36;10870:6;10878:9;10889:6;10860:9;:36::i;:::-;10907:220;10930:6;10951:12;:10;:12::i;:::-;10978:138;11034:6;10978:138;;;;;;;;;;;;;;;;;:11;:19;10990:6;10978:19;;;;;;;;;;;;;;;:33;10998:12;:10;:12::i;:::-;10978:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;10907:8;:220::i;:::-;11145:4;11138:11;;10711:446;;;;;:::o;8611:58::-;;;;:::o;21393:347::-;3917:12;:10;:12::i;:::-;3907:22;;:6;;;;;;;;;;:22;;;3899:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21481:11:::1;21495:12;:19;21481:33;;21525:6;21521:214;21541:6;21537:1;:10;21521:214;;;21559:16;21578:12;21591:1;21578:15;;;;;;;;:::i;:::-;;;;;;;;21559:34;;21632:5;21610:27;;:9;:18;21620:7;21610:18;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;;21602:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;21696:5;21675:9;:18;21685:7;21675:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;21722:3;;;;;21550:185;21521:214;;;;21474:266;21393:347:::0;:::o;9771:83::-;9812:5;6720:1;9830:16;;9771:83;:::o;8298:28::-;;;;;;;;;;;;;:::o;16398:92::-;3917:12;:10;:12::i;:::-;3907:22;;:6;;;;;;;;;;:22;;;3899:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16477:5:::1;16462:4;:12;16467:6;16462:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;16398:92:::0;:::o;20430:101::-;3917:12;:10;:12::i;:::-;3907:22;;:6;;;;;;;;;;:22;;;3899:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20511:12:::1;20497:11;;:26;;;;;;;;;;;;;;;;;;20430:101:::0;:::o;15902:311::-;15968:19;;;;;;;;;;;15952:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;16007:17;;;;;;;;;;;15991:33;;:12;:10;:12::i;:::-;:33;;;15952:72;:109;;;;16043:18;;;;;;;;;;;16027:34;;:12;:10;:12::i;:::-;:34;;;15952:109;:148;;;;16080:20;;;;;;;;;;;16064:36;;:12;:10;:12::i;:::-;:36;;;15952:148;15944:157;;;;;;16112:26;16141:21;16112:50;;16173:32;16186:18;16173:12;:32::i;:::-;15933:280;15902:311::o;9965:138::-;10031:7;10058:37;10078:7;:16;10086:7;10078:16;;;;;;;;;;;;;;;;10058:19;:37::i;:::-;10051:44;;9965:138;;;:::o;3994:148::-;3917:12;:10;:12::i;:::-;3907:22;;:6;;;;;;;;;;:22;;;3899:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4101:1:::1;4064:40;;4085:6;::::0;::::1;;;;;;;;4064:40;;;;;;;;;;;;4132:1;4115:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3994:148::o:0;20570:108::-;3917:12;:10;:12::i;:::-;3907:22;;:6;;;;;;;;;;:22;;;3899:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20659:11:::1;20644:12;:26;;;;20570:108:::0;:::o;8491:52::-;;;;:::o;7722:43::-;;;;;;;;;;;;;;;;;:::o;21047:340::-;3917:12;:10;:12::i;:::-;3907:22;;:6;;;;;;;;;;:22;;;3899:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21132:11:::1;21146:12;:19;21132:33;;21176:6;21172:210;21192:6;21188:1;:10;21172:210;;;21210:15;21228:12;21241:1;21228:15;;;;;;;;:::i;:::-;;;;;;;;21210:33;;21282:4;21260:26;;:9;:18;21270:7;21260:18;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;;21252:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;21344:4;21323:9;:18;21333:7;21323:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;21369:3;;;;;21201:181;21172:210;;;;21125:262;21047:340:::0;:::o;3780:79::-;3818:7;3845:6;;;;;;;;;;;3838:13;;3780:79;:::o;15471:101::-;3917:12;:10;:12::i;:::-;3907:22;;:6;;;;;;;;;;:22;;;3899:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15552:12:::1;15538:11;;:26;;;;;;;;;;;;;;;;;;15471:101:::0;:::o;8550:54::-;;;;:::o;9676:87::-;9715:13;9748:7;;;;;;;;;;;;;;;;;9741:14;;9676:87;:::o;20239:139::-;3917:12;:10;:12::i;:::-;3907:22;;:6;;;;;;;;;;:22;;;3899:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20352:18:::1;20330:19;:40;;;;20239:139:::0;:::o;19896:291::-;3917:12;:10;:12::i;:::-;3907:22;;:6;;;;;;;;;;:22;;;3899:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20047:13:::1;20030:14;:30;;;;20089:14;20071:15;:32;;;;20129:11;20114:12;:26;;;;20167:12;20151:13;:28;;;;19896:291:::0;;;;:::o;10111:199::-;10216:4;10238:42;10248:12;:10;:12::i;:::-;10262:9;10273:6;10238:9;:42::i;:::-;10298:4;10291:11;;10111:199;;;;:::o;6914:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;7684:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;15580:314::-;15646:19;;;;;;;;;;;15630:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;15685:17;;;;;;;;;;;15669:33;;:12;:10;:12::i;:::-;:33;;;15630:72;:110;;;;15722:18;;;;;;;;;;;15706:34;;:12;:10;:12::i;:::-;:34;;;15630:110;:150;;;;15760:20;;;;;;;;;;;15744:36;;:12;:10;:12::i;:::-;:36;;;15630:150;15622:159;;;;;;15792:23;15818:24;15836:4;15818:9;:24::i;:::-;15792:50;;15853:33;15870:15;15853:16;:33::i;:::-;15611:283;15580:314::o;20809:234::-;3917:12;:10;:12::i;:::-;3907:22;;:6;;;;;;;;;;:22;;;3899:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20926:9:::1;20922:114;20945:8;;:15;;20941:1;:19;20922:114;;;21016:8;20982:18;:31;21001:8;;21010:1;21001:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;20982:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;20962:3;;;;;:::i;:::-;;;;20922:114;;;;20809:234:::0;;;:::o;10318:184::-;10435:7;10467:11;:18;10479:5;10467:18;;;;;;;;;;;;;;;:27;10486:7;10467:27;;;;;;;;;;;;;;;;10460:34;;10318:184;;;;:::o;20686:115::-;3917:12;:10;:12::i;:::-;3907:22;;:6;;;;;;;;;;:22;;;3899:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20780:13:::1;20763:14;:30;;;;20686:115:::0;:::o;4150:244::-;3917:12;:10;:12::i;:::-;3907:22;;:6;;;;;;;;;;:22;;;3899:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4259:1:::1;4239:22;;:8;:22;;;;4231:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;4349:8;4320:38;;4341:6;::::0;::::1;;;;;;;;4320:38;;;;;;;;;;;;4378:8;4369:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;4150:244:::0;:::o;2539:98::-;2592:7;2619:10;2612:17;;2539:98;:::o;11848:369::-;11992:1;11975:19;;:5;:19;;;;11967:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12073:1;12054:21;;:7;:21;;;;12046:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12155:6;12125:11;:18;12137:5;12125:18;;;;;;;;;;;;;;;:27;12144:7;12125:27;;;;;;;;;;;;;;;:36;;;;12193:7;12177:32;;12186:5;12177:32;;;12202:6;12177:32;;;;;;:::i;:::-;;;;;;;;11848:369;;;:::o;12225:2379::-;12363:1;12347:18;;:4;:18;;;;12339:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12440:1;12426:16;;:2;:16;;;;12418:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12510:1;12501:6;:10;12493:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12588:7;:5;:7::i;:::-;12580:15;;:4;:15;;;;:32;;;;;12605:7;:5;:7::i;:::-;12599:13;;:2;:13;;;;12580:32;:52;;;;;12617:9;:15;12627:4;12617:15;;;;;;;;;;;;;;;;;;;;;;;;;12616:16;12580:52;:70;;;;;12637:9;:13;12647:2;12637:13;;;;;;;;;;;;;;;;;;;;;;;;;12636:14;12580:70;12576:1302;;;12712:11;;;;;;;;;;;12707:144;;12752:9;:15;12762:4;12752:15;;;;;;;;;;;;;;;;;;;;;;;;;12744:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;12707:144;12885:12;;12875:6;:22;;12867:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;12954:4;:10;12959:4;12954:10;;;;;;;;;;;;;;;;;;;;;;;;;12953:11;:24;;;;;12969:4;:8;12974:2;12969:8;;;;;;;;;;;;;;;;;;;;;;;;;12968:9;12953:24;12945:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;13043:13;;;;;;;;;;;13037:19;;:2;:19;;;13034:146;;13110:14;;13101:6;13085:13;13095:2;13085:9;:13::i;:::-;:22;;;;:::i;:::-;:39;13077:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;13034:146;13196:28;13227:24;13245:4;13227:9;:24::i;:::-;13196:55;;13266:12;13305:19;;13281:20;:43;;13266:58;;13368:12;;13344:20;:36;13341:124;;13437:12;;13414:35;;13341:124;13485:7;:18;;;;;13497:6;;;;;;;;;;;13496:7;13485:18;:43;;;;;13515:13;;;;;;;;;;;13507:21;;:4;:21;;;;13485:43;:58;;;;;13532:11;;;;;;;;;;;13485:58;:87;;;;;13548:18;:24;13567:4;13548:24;;;;;;;;;;;;;;;;;;;;;;;;;13547:25;13485:87;:114;;;;;13577:18;:22;13596:2;13577:22;;;;;;;;;;;;;;;;;;;;;;;;;13576:23;13485:114;13481:386;;;13620:38;13637:20;13620:16;:38::i;:::-;13677:26;13706:21;13677:50;;13771:1;13750:18;:22;13746:106;;;13797:35;13810:21;13797:12;:35::i;:::-;13746:106;13601:266;13481:386;12652:1226;;12576:1302;13890:12;13905:4;13890:19;;13954:18;:24;13973:4;13954:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;13982:18;:22;14001:2;13982:22;;;;;;;;;;;;;;;;;;;;;;;;;13954:50;13953:102;;;;14018:13;;;;;;;;;;;14010:21;;:4;:21;;;;:44;;;;;14041:13;;;;;;;;;;;14035:19;;:2;:19;;;;14010:44;13953:102;13949:594;;;14082:5;14072:15;;13949:594;;;14165:13;;;;;;;;;;;14157:21;;:4;:21;;;:55;;;;;14196:15;;;;;;;;;;;14182:30;;:2;:30;;;;14157:55;14154:162;;;14245:14;;14233:9;:26;;;;14288:12;;14278:7;:22;;;;14154:162;14375:13;;;;;;;;;;;14369:19;;:2;:19;;;:55;;;;;14408:15;;;;;;;;;;;14392:32;;:4;:32;;;;14369:55;14365:165;;;14457:15;;14445:9;:27;;;;14501:13;;14491:7;:23;;;;14365:165;13949:594;14555:41;14570:4;14576:2;14580:6;14588:7;14555:14;:41::i;:::-;12328:2276;12225:2379;;;:::o;4758:224::-;4878:7;4911:1;4906;:6;;4914:12;4898:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4938:9;4954:1;4950;:5;;;;:::i;:::-;4938:17;;4973:1;4966:8;;;4758:224;;;;;:::o;15103:360::-;15160:17;;;;;;;;;;;:26;;:52;15187:24;15206:4;15187:14;15198:2;15187:6;:10;;:14;;;;:::i;:::-;:18;;:24;;;;:::i;:::-;15160:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15232:18;;;;;;;;;;;:27;;:53;15260:24;15279:4;15260:14;15271:2;15260:6;:10;;:14;;;;:::i;:::-;:18;;:24;;;;:::i;:::-;15232:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15311:19;;;;;;;;;;;:28;;:54;15340:24;15359:4;15340:14;15351:2;15340:6;:10;;:14;;;;:::i;:::-;:18;;:24;;;;:::i;:::-;15311:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15388:20;;;;;;;;;;;:29;;:54;15418:23;15436:4;15418:13;15429:1;15418:6;:10;;:13;;;;:::i;:::-;:17;;:23;;;;:::i;:::-;15388:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15103:360;:::o;11165:323::-;11260:7;11318;;11307;:18;;11285:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;11406:19;11428:10;:8;:10::i;:::-;11406:32;;11456:24;11468:11;11456:7;:11;;:24;;;;:::i;:::-;11449:31;;;11165:323;;;:::o;14612:483::-;8772:4;8763:6;;:13;;;;;;;;;;;;;;;;;;14690:21:::1;14728:1;14714:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14690:40;;14759:4;14741;14746:1;14741:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;14785:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14775:4;14780:1;14775:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;14818:62;14835:4;14850:15;;;;;;;;;;;14868:11;14818:8;:62::i;:::-;14891:15;;;;;;;;;;;:66;;;14972:11;14998:1;15014:4;15041;15061:15;14891:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14679:416;8808:5:::0;8799:6;;:14;;;;;;;;;;;;;;;;;;14612:483;:::o;16498:282::-;16654:7;16649:28;;16663:14;:12;:14::i;:::-;16649:28;16688:44;16706:6;16714:9;16725:6;16688:17;:44::i;:::-;16748:7;16743:29;;16757:15;:13;:15::i;:::-;16743:29;16498:282;;;;:::o;4990:246::-;5048:7;5077:1;5072;:6;5068:47;;;5102:1;5095:8;;;;5068:47;5125:9;5141:1;5137;:5;;;;:::i;:::-;5125:17;;5170:1;5165;5161;:5;;;;:::i;:::-;:10;5153:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;5227:1;5220:8;;;4990:246;;;;;:::o;5244:132::-;5302:7;5329:39;5333:1;5336;5329:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5322:46;;5244:132;;;;:::o;19459:164::-;19501:7;19522:15;19539;19558:19;:17;:19::i;:::-;19521:56;;;;19595:20;19607:7;19595;:11;;:20;;;;:::i;:::-;19588:27;;;;19459:164;:::o;11496:219::-;11556:1;11543:9;;:14;:30;;;;;11572:1;11561:7;;:12;11543:30;11539:43;;;11575:7;;11539:43;11614:9;;11594:17;:29;;;;11652:7;;11634:15;:25;;;;11684:1;11672:9;:13;;;;11706:1;11696:7;:11;;;;11496:219;:::o;16788:610::-;16935:15;16965:23;17003:12;17030:23;17068:12;17095:13;17122:19;17133:7;17122:10;:19::i;:::-;16920:221;;;;;;;;;;;;17170:28;17190:7;17170;:15;17178:6;17170:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;17152:7;:15;17160:6;17152:15;;;;;;;;;;;;;;;:46;;;;17230:39;17253:15;17230:7;:18;17238:9;17230:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;17209:7;:18;17217:9;17209:18;;;;;;;;;;;;;;;:60;;;;17280:16;17290:5;17280:9;:16::i;:::-;17307:23;17319:4;17325;17307:11;:23::i;:::-;17363:9;17346:44;;17355:6;17346:44;;;17374:15;17346:44;;;;;;:::i;:::-;;;;;;;;16909:489;;;;;;16788:610;;;:::o;11723:117::-;11779:17;;11767:9;:29;;;;11817:15;;11807:7;:25;;;;11723:117::o;5384:223::-;5504:7;5536:1;5532;:5;5539:12;5524:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5563:9;5579:1;5575;:5;;;;:::i;:::-;5563:17;;5598:1;5591:8;;;5384:223;;;;;:::o;19631:257::-;19682:7;19691;19711:15;19729:7;;19711:25;;19747:15;7180:24;19747:25;;19797:20;7180:24;19797:7;;:11;;:20;;;;:::i;:::-;19787:7;:30;19783:61;;;19827:7;;7180:24;19819:25;;;;;;;;19783:61;19863:7;19872;19855:25;;;;;;19631:257;;;:::o;17817:615::-;17917:7;17939;17961;17983;18005;18027;18063:23;18088:12;18102:13;18132:40;18144:7;18153:9;;18164:7;;18132:11;:40::i;:::-;18062:110;;;;;;18183:19;18205:10;:8;:10::i;:::-;18183:32;;18227:15;18244:23;18269:12;18298:46;18310:7;18319:4;18325:5;18332:11;18298;:46::i;:::-;18226:118;;;;;;18363:7;18372:15;18389:4;18395:15;18412:4;18418:5;18355:69;;;;;;;;;;;;;;;;;;;17817:615;;;;;;;:::o;4614:136::-;4672:7;4699:43;4703:1;4706;4699:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4692:50;;4614:136;;;;:::o;4427:179::-;4485:7;4505:9;4521:1;4517;:5;;;;:::i;:::-;4505:17;;4546:1;4541;:6;;4533:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4597:1;4590:8;;;4427:179;;;;:::o;17406:211::-;17459:19;17481:10;:8;:10::i;:::-;17459:32;;17502:13;17518:22;17528:11;17518:5;:9;;:22;;;;:::i;:::-;17502:38;;17576:33;17603:5;17576:7;:22;17592:4;17576:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;17551:7;:22;17567:4;17551:22;;;;;;;;;;;;;;;:58;;;;17448:169;;17406:211;:::o;17625:147::-;17703:17;17715:4;17703:7;;:11;;:17;;;;:::i;:::-;17693:7;:27;;;;17744:20;17759:4;17744:10;;:14;;:20;;;;:::i;:::-;17731:10;:33;;;;17625:147;;:::o;18440:469::-;18609:7;18631;18653;18688:12;18703:30;18729:3;18703:21;18715:8;18703:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;18688:45;;18744:13;18760:28;18784:3;18760:19;18772:6;18760:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;18744:44;;18799:23;18825:28;18847:5;18825:17;18837:4;18825:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;18799:54;;18872:15;18889:4;18895:5;18864:37;;;;;;;;;18440:469;;;;;;;:::o;18917:534::-;19111:7;19133;19155;19190:15;19208:24;19220:11;19208:7;:11;;:24;;;;:::i;:::-;19190:42;;19243:12;19258:21;19267:11;19258:4;:8;;:21;;;;:::i;:::-;19243:36;;19290:13;19306:22;19316:11;19306:5;:9;;:22;;;;:::i;:::-;19290:38;;19339:23;19365:28;19387:5;19365:17;19377:4;19365:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;19339:54;;19412:7;19421:15;19438:4;19404:39;;;;;;;;;;18917:534;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:307::-;4139:1;4149:113;4163:6;4160:1;4157:13;4149:113;;;4248:1;4243:3;4239:11;4233:18;4229:1;4224:3;4220:11;4213:39;4185:2;4182:1;4178:10;4173:15;;4149:113;;;4280:6;4277:1;4274:13;4271:101;;;4360:1;4351:6;4346:3;4342:16;4335:27;4271:101;4120:258;4071:307;;;:::o;4384:364::-;4472:3;4500:39;4533:5;4500:39;:::i;:::-;4555:71;4619:6;4614:3;4555:71;:::i;:::-;4548:78;;4635:52;4680:6;4675:3;4668:4;4661:5;4657:16;4635:52;:::i;:::-;4712:29;4734:6;4712:29;:::i;:::-;4707:3;4703:39;4696:46;;4476:272;4384:364;;;;:::o;4754:313::-;4867:4;4905:2;4894:9;4890:18;4882:26;;4954:9;4948:4;4944:20;4940:1;4929:9;4925:17;4918:47;4982:78;5055:4;5046:6;4982:78;:::i;:::-;4974:86;;4754:313;;;;:::o;5073:77::-;5110:7;5139:5;5128:16;;5073:77;;;:::o;5156:122::-;5229:24;5247:5;5229:24;:::i;:::-;5222:5;5219:35;5209:63;;5268:1;5265;5258:12;5209:63;5156:122;:::o;5284:139::-;5330:5;5368:6;5355:20;5346:29;;5384:33;5411:5;5384:33;:::i;:::-;5284:139;;;;:::o;5429:474::-;5497:6;5505;5554:2;5542:9;5533:7;5529:23;5525:32;5522:119;;;5560:79;;:::i;:::-;5522:119;5680:1;5705:53;5750:7;5741:6;5730:9;5726:22;5705:53;:::i;:::-;5695:63;;5651:117;5807:2;5833:53;5878:7;5869:6;5858:9;5854:22;5833:53;:::i;:::-;5823:63;;5778:118;5429:474;;;;;:::o;5909:90::-;5943:7;5986:5;5979:13;5972:21;5961:32;;5909:90;;;:::o;6005:109::-;6086:21;6101:5;6086:21;:::i;:::-;6081:3;6074:34;6005:109;;:::o;6120:210::-;6207:4;6245:2;6234:9;6230:18;6222:26;;6258:65;6320:1;6309:9;6305:17;6296:6;6258:65;:::i;:::-;6120:210;;;;:::o;6336:60::-;6364:3;6385:5;6378:12;;6336:60;;;:::o;6402:142::-;6452:9;6485:53;6503:34;6512:24;6530:5;6512:24;:::i;:::-;6503:34;:::i;:::-;6485:53;:::i;:::-;6472:66;;6402:142;;;:::o;6550:126::-;6600:9;6633:37;6664:5;6633:37;:::i;:::-;6620:50;;6550:126;;;:::o;6682:152::-;6758:9;6791:37;6822:5;6791:37;:::i;:::-;6778:50;;6682:152;;;:::o;6840:183::-;6953:63;7010:5;6953:63;:::i;:::-;6948:3;6941:76;6840:183;;:::o;7029:274::-;7148:4;7186:2;7175:9;7171:18;7163:26;;7199:97;7293:1;7282:9;7278:17;7269:6;7199:97;:::i;:::-;7029:274;;;;:::o;7309:118::-;7396:24;7414:5;7396:24;:::i;:::-;7391:3;7384:37;7309:118;;:::o;7433:222::-;7526:4;7564:2;7553:9;7549:18;7541:26;;7577:71;7645:1;7634:9;7630:17;7621:6;7577:71;:::i;:::-;7433:222;;;;:::o;7661:619::-;7738:6;7746;7754;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;8056:2;8082:53;8127:7;8118:6;8107:9;8103:22;8082:53;:::i;:::-;8072:63;;8027:118;8184:2;8210:53;8255:7;8246:6;8235:9;8231:22;8210:53;:::i;:::-;8200:63;;8155:118;7661:619;;;;;:::o;8286:86::-;8321:7;8361:4;8354:5;8350:16;8339:27;;8286:86;;;:::o;8378:112::-;8461:22;8477:5;8461:22;:::i;:::-;8456:3;8449:35;8378:112;;:::o;8496:214::-;8585:4;8623:2;8612:9;8608:18;8600:26;;8636:67;8700:1;8689:9;8685:17;8676:6;8636:67;:::i;:::-;8496:214;;;;:::o;8716:118::-;8803:24;8821:5;8803:24;:::i;:::-;8798:3;8791:37;8716:118;;:::o;8840:222::-;8933:4;8971:2;8960:9;8956:18;8948:26;;8984:71;9052:1;9041:9;9037:17;9028:6;8984:71;:::i;:::-;8840:222;;;;:::o;9068:329::-;9127:6;9176:2;9164:9;9155:7;9151:23;9147:32;9144:119;;;9182:79;;:::i;:::-;9144:119;9302:1;9327:53;9372:7;9363:6;9352:9;9348:22;9327:53;:::i;:::-;9317:63;;9273:117;9068:329;;;;:::o;9403:116::-;9473:21;9488:5;9473:21;:::i;:::-;9466:5;9463:32;9453:60;;9509:1;9506;9499:12;9453:60;9403:116;:::o;9525:133::-;9568:5;9606:6;9593:20;9584:29;;9622:30;9646:5;9622:30;:::i;:::-;9525:133;;;;:::o;9664:323::-;9720:6;9769:2;9757:9;9748:7;9744:23;9740:32;9737:119;;;9775:79;;:::i;:::-;9737:119;9895:1;9920:50;9962:7;9953:6;9942:9;9938:22;9920:50;:::i;:::-;9910:60;;9866:114;9664:323;;;;:::o;9993:329::-;10052:6;10101:2;10089:9;10080:7;10076:23;10072:32;10069:119;;;10107:79;;:::i;:::-;10069:119;10227:1;10252:53;10297:7;10288:6;10277:9;10273:22;10252:53;:::i;:::-;10242:63;;10198:117;9993:329;;;;:::o;10328:765::-;10414:6;10422;10430;10438;10487:3;10475:9;10466:7;10462:23;10458:33;10455:120;;;10494:79;;:::i;:::-;10455:120;10614:1;10639:53;10684:7;10675:6;10664:9;10660:22;10639:53;:::i;:::-;10629:63;;10585:117;10741:2;10767:53;10812:7;10803:6;10792:9;10788:22;10767:53;:::i;:::-;10757:63;;10712:118;10869:2;10895:53;10940:7;10931:6;10920:9;10916:22;10895:53;:::i;:::-;10885:63;;10840:118;10997:2;11023:53;11068:7;11059:6;11048:9;11044:22;11023:53;:::i;:::-;11013:63;;10968:118;10328:765;;;;;;;:::o;11099:117::-;11208:1;11205;11198:12;11239:568;11312:8;11322:6;11372:3;11365:4;11357:6;11353:17;11349:27;11339:122;;11380:79;;:::i;:::-;11339:122;11493:6;11480:20;11470:30;;11523:18;11515:6;11512:30;11509:117;;;11545:79;;:::i;:::-;11509:117;11659:4;11651:6;11647:17;11635:29;;11713:3;11705:4;11697:6;11693:17;11683:8;11679:32;11676:41;11673:128;;;11720:79;;:::i;:::-;11673:128;11239:568;;;;;:::o;11813:698::-;11905:6;11913;11921;11970:2;11958:9;11949:7;11945:23;11941:32;11938:119;;;11976:79;;:::i;:::-;11938:119;12124:1;12113:9;12109:17;12096:31;12154:18;12146:6;12143:30;12140:117;;;12176:79;;:::i;:::-;12140:117;12289:80;12361:7;12352:6;12341:9;12337:22;12289:80;:::i;:::-;12271:98;;;;12067:312;12418:2;12444:50;12486:7;12477:6;12466:9;12462:22;12444:50;:::i;:::-;12434:60;;12389:115;11813:698;;;;;:::o;12517:474::-;12585:6;12593;12642:2;12630:9;12621:7;12617:23;12613:32;12610:119;;;12648:79;;:::i;:::-;12610:119;12768:1;12793:53;12838:7;12829:6;12818:9;12814:22;12793:53;:::i;:::-;12783:63;;12739:117;12895:2;12921:53;12966:7;12957:6;12946:9;12942:22;12921:53;:::i;:::-;12911:63;;12866:118;12517:474;;;;;:::o;12997:182::-;13137:34;13133:1;13125:6;13121:14;13114:58;12997:182;:::o;13185:366::-;13327:3;13348:67;13412:2;13407:3;13348:67;:::i;:::-;13341:74;;13424:93;13513:3;13424:93;:::i;:::-;13542:2;13537:3;13533:12;13526:19;;13185:366;;;:::o;13557:419::-;13723:4;13761:2;13750:9;13746:18;13738:26;;13810:9;13804:4;13800:20;13796:1;13785:9;13781:17;13774:47;13838:131;13964:4;13838:131;:::i;:::-;13830:139;;13557:419;;;:::o;13982:180::-;14030:77;14027:1;14020:88;14127:4;14124:1;14117:15;14151:4;14148:1;14141:15;14168:180;14216:77;14213:1;14206:88;14313:4;14310:1;14303:15;14337:4;14334:1;14327:15;14354:233;14393:3;14416:24;14434:5;14416:24;:::i;:::-;14407:33;;14462:66;14455:5;14452:77;14449:103;;;14532:18;;:::i;:::-;14449:103;14579:1;14572:5;14568:13;14561:20;;14354:233;;;:::o;14593:174::-;14733:26;14729:1;14721:6;14717:14;14710:50;14593:174;:::o;14773:366::-;14915:3;14936:67;15000:2;14995:3;14936:67;:::i;:::-;14929:74;;15012:93;15101:3;15012:93;:::i;:::-;15130:2;15125:3;15121:12;15114:19;;14773:366;;;:::o;15145:419::-;15311:4;15349:2;15338:9;15334:18;15326:26;;15398:9;15392:4;15388:20;15384:1;15373:9;15369:17;15362:47;15426:131;15552:4;15426:131;:::i;:::-;15418:139;;15145:419;;;:::o;15570:173::-;15710:25;15706:1;15698:6;15694:14;15687:49;15570:173;:::o;15749:366::-;15891:3;15912:67;15976:2;15971:3;15912:67;:::i;:::-;15905:74;;15988:93;16077:3;15988:93;:::i;:::-;16106:2;16101:3;16097:12;16090:19;;15749:366;;;:::o;16121:419::-;16287:4;16325:2;16314:9;16310:18;16302:26;;16374:9;16368:4;16364:20;16360:1;16349:9;16345:17;16338:47;16402:131;16528:4;16402:131;:::i;:::-;16394:139;;16121:419;;;:::o;16546:225::-;16686:34;16682:1;16674:6;16670:14;16663:58;16755:8;16750:2;16742:6;16738:15;16731:33;16546:225;:::o;16777:366::-;16919:3;16940:67;17004:2;16999:3;16940:67;:::i;:::-;16933:74;;17016:93;17105:3;17016:93;:::i;:::-;17134:2;17129:3;17125:12;17118:19;;16777:366;;;:::o;17149:419::-;17315:4;17353:2;17342:9;17338:18;17330:26;;17402:9;17396:4;17392:20;17388:1;17377:9;17373:17;17366:47;17430:131;17556:4;17430:131;:::i;:::-;17422:139;;17149:419;;;:::o;17574:223::-;17714:34;17710:1;17702:6;17698:14;17691:58;17783:6;17778:2;17770:6;17766:15;17759:31;17574:223;:::o;17803:366::-;17945:3;17966:67;18030:2;18025:3;17966:67;:::i;:::-;17959:74;;18042:93;18131:3;18042:93;:::i;:::-;18160:2;18155:3;18151:12;18144:19;;17803:366;;;:::o;18175:419::-;18341:4;18379:2;18368:9;18364:18;18356:26;;18428:9;18422:4;18418:20;18414:1;18403:9;18399:17;18392:47;18456:131;18582:4;18456:131;:::i;:::-;18448:139;;18175:419;;;:::o;18600:221::-;18740:34;18736:1;18728:6;18724:14;18717:58;18809:4;18804:2;18796:6;18792:15;18785:29;18600:221;:::o;18827:366::-;18969:3;18990:67;19054:2;19049:3;18990:67;:::i;:::-;18983:74;;19066:93;19155:3;19066:93;:::i;:::-;19184:2;19179:3;19175:12;19168:19;;18827:366;;;:::o;19199:419::-;19365:4;19403:2;19392:9;19388:18;19380:26;;19452:9;19446:4;19442:20;19438:1;19427:9;19423:17;19416:47;19480:131;19606:4;19480:131;:::i;:::-;19472:139;;19199:419;;;:::o;19624:224::-;19764:34;19760:1;19752:6;19748:14;19741:58;19833:7;19828:2;19820:6;19816:15;19809:32;19624:224;:::o;19854:366::-;19996:3;20017:67;20081:2;20076:3;20017:67;:::i;:::-;20010:74;;20093:93;20182:3;20093:93;:::i;:::-;20211:2;20206:3;20202:12;20195:19;;19854:366;;;:::o;20226:419::-;20392:4;20430:2;20419:9;20415:18;20407:26;;20479:9;20473:4;20469:20;20465:1;20454:9;20450:17;20443:47;20507:131;20633:4;20507:131;:::i;:::-;20499:139;;20226:419;;;:::o;20651:222::-;20791:34;20787:1;20779:6;20775:14;20768:58;20860:5;20855:2;20847:6;20843:15;20836:30;20651:222;:::o;20879:366::-;21021:3;21042:67;21106:2;21101:3;21042:67;:::i;:::-;21035:74;;21118:93;21207:3;21118:93;:::i;:::-;21236:2;21231:3;21227:12;21220:19;;20879:366;;;:::o;21251:419::-;21417:4;21455:2;21444:9;21440:18;21432:26;;21504:9;21498:4;21494:20;21490:1;21479:9;21475:17;21468:47;21532:131;21658:4;21532:131;:::i;:::-;21524:139;;21251:419;;;:::o;21676:228::-;21816:34;21812:1;21804:6;21800:14;21793:58;21885:11;21880:2;21872:6;21868:15;21861:36;21676:228;:::o;21910:366::-;22052:3;22073:67;22137:2;22132:3;22073:67;:::i;:::-;22066:74;;22149:93;22238:3;22149:93;:::i;:::-;22267:2;22262:3;22258:12;22251:19;;21910:366;;;:::o;22282:419::-;22448:4;22486:2;22475:9;22471:18;22463:26;;22535:9;22529:4;22525:20;22521:1;22510:9;22506:17;22499:47;22563:131;22689:4;22563:131;:::i;:::-;22555:139;;22282:419;;;:::o;22707:250::-;22847:34;22843:1;22835:6;22831:14;22824:58;22916:33;22911:2;22903:6;22899:15;22892:58;22707:250;:::o;22963:366::-;23105:3;23126:67;23190:2;23185:3;23126:67;:::i;:::-;23119:74;;23202:93;23291:3;23202:93;:::i;:::-;23320:2;23315:3;23311:12;23304:19;;22963:366;;;:::o;23335:419::-;23501:4;23539:2;23528:9;23524:18;23516:26;;23588:9;23582:4;23578:20;23574:1;23563:9;23559:17;23552:47;23616:131;23742:4;23616:131;:::i;:::-;23608:139;;23335:419;;;:::o;23760:178::-;23900:30;23896:1;23888:6;23884:14;23877:54;23760:178;:::o;23944:366::-;24086:3;24107:67;24171:2;24166:3;24107:67;:::i;:::-;24100:74;;24183:93;24272:3;24183:93;:::i;:::-;24301:2;24296:3;24292:12;24285:19;;23944:366;;;:::o;24316:419::-;24482:4;24520:2;24509:9;24505:18;24497:26;;24569:9;24563:4;24559:20;24555:1;24544:9;24540:17;24533:47;24597:131;24723:4;24597:131;:::i;:::-;24589:139;;24316:419;;;:::o;24741:222::-;24881:34;24877:1;24869:6;24865:14;24858:58;24950:5;24945:2;24937:6;24933:15;24926:30;24741:222;:::o;24969:366::-;25111:3;25132:67;25196:2;25191:3;25132:67;:::i;:::-;25125:74;;25208:93;25297:3;25208:93;:::i;:::-;25326:2;25321:3;25317:12;25310:19;;24969:366;;;:::o;25341:419::-;25507:4;25545:2;25534:9;25530:18;25522:26;;25594:9;25588:4;25584:20;25580:1;25569:9;25565:17;25558:47;25622:131;25748:4;25622:131;:::i;:::-;25614:139;;25341:419;;;:::o;25766:305::-;25806:3;25825:20;25843:1;25825:20;:::i;:::-;25820:25;;25859:20;25877:1;25859:20;:::i;:::-;25854:25;;26013:1;25945:66;25941:74;25938:1;25935:81;25932:107;;;26019:18;;:::i;:::-;25932:107;26063:1;26060;26056:9;26049:16;;25766:305;;;;:::o;26077:222::-;26217:34;26213:1;26205:6;26201:14;26194:58;26286:5;26281:2;26273:6;26269:15;26262:30;26077:222;:::o;26305:366::-;26447:3;26468:67;26532:2;26527:3;26468:67;:::i;:::-;26461:74;;26544:93;26633:3;26544:93;:::i;:::-;26662:2;26657:3;26653:12;26646:19;;26305:366;;;:::o;26677:419::-;26843:4;26881:2;26870:9;26866:18;26858:26;;26930:9;26924:4;26920:20;26916:1;26905:9;26901:17;26894:47;26958:131;27084:4;26958:131;:::i;:::-;26950:139;;26677:419;;;:::o;27102:191::-;27142:4;27162:20;27180:1;27162:20;:::i;:::-;27157:25;;27196:20;27214:1;27196:20;:::i;:::-;27191:25;;27235:1;27232;27229:8;27226:34;;;27240:18;;:::i;:::-;27226:34;27285:1;27282;27278:9;27270:17;;27102:191;;;;:::o;27299:229::-;27439:34;27435:1;27427:6;27423:14;27416:58;27508:12;27503:2;27495:6;27491:15;27484:37;27299:229;:::o;27534:366::-;27676:3;27697:67;27761:2;27756:3;27697:67;:::i;:::-;27690:74;;27773:93;27862:3;27773:93;:::i;:::-;27891:2;27886:3;27882:12;27875:19;;27534:366;;;:::o;27906:419::-;28072:4;28110:2;28099:9;28095:18;28087:26;;28159:9;28153:4;28149:20;28145:1;28134:9;28130:17;28123:47;28187:131;28313:4;28187:131;:::i;:::-;28179:139;;27906:419;;;:::o;28331:143::-;28388:5;28419:6;28413:13;28404:22;;28435:33;28462:5;28435:33;:::i;:::-;28331:143;;;;:::o;28480:351::-;28550:6;28599:2;28587:9;28578:7;28574:23;28570:32;28567:119;;;28605:79;;:::i;:::-;28567:119;28725:1;28750:64;28806:7;28797:6;28786:9;28782:22;28750:64;:::i;:::-;28740:74;;28696:128;28480:351;;;;:::o;28837:85::-;28882:7;28911:5;28900:16;;28837:85;;;:::o;28928:158::-;28986:9;29019:61;29037:42;29046:32;29072:5;29046:32;:::i;:::-;29037:42;:::i;:::-;29019:61;:::i;:::-;29006:74;;28928:158;;;:::o;29092:147::-;29187:45;29226:5;29187:45;:::i;:::-;29182:3;29175:58;29092:147;;:::o;29245:114::-;29312:6;29346:5;29340:12;29330:22;;29245:114;;;:::o;29365:184::-;29464:11;29498:6;29493:3;29486:19;29538:4;29533:3;29529:14;29514:29;;29365:184;;;;:::o;29555:132::-;29622:4;29645:3;29637:11;;29675:4;29670:3;29666:14;29658:22;;29555:132;;;:::o;29693:108::-;29770:24;29788:5;29770:24;:::i;:::-;29765:3;29758:37;29693:108;;:::o;29807:179::-;29876:10;29897:46;29939:3;29931:6;29897:46;:::i;:::-;29975:4;29970:3;29966:14;29952:28;;29807:179;;;;:::o;29992:113::-;30062:4;30094;30089:3;30085:14;30077:22;;29992:113;;;:::o;30141:732::-;30260:3;30289:54;30337:5;30289:54;:::i;:::-;30359:86;30438:6;30433:3;30359:86;:::i;:::-;30352:93;;30469:56;30519:5;30469:56;:::i;:::-;30548:7;30579:1;30564:284;30589:6;30586:1;30583:13;30564:284;;;30665:6;30659:13;30692:63;30751:3;30736:13;30692:63;:::i;:::-;30685:70;;30778:60;30831:6;30778:60;:::i;:::-;30768:70;;30624:224;30611:1;30608;30604:9;30599:14;;30564:284;;;30568:14;30864:3;30857:10;;30265:608;;;30141:732;;;;:::o;30879:831::-;31142:4;31180:3;31169:9;31165:19;31157:27;;31194:71;31262:1;31251:9;31247:17;31238:6;31194:71;:::i;:::-;31275:80;31351:2;31340:9;31336:18;31327:6;31275:80;:::i;:::-;31402:9;31396:4;31392:20;31387:2;31376:9;31372:18;31365:48;31430:108;31533:4;31524:6;31430:108;:::i;:::-;31422:116;;31548:72;31616:2;31605:9;31601:18;31592:6;31548:72;:::i;:::-;31630:73;31698:3;31687:9;31683:19;31674:6;31630:73;:::i;:::-;30879:831;;;;;;;;:::o;31716:348::-;31756:7;31779:20;31797:1;31779:20;:::i;:::-;31774:25;;31813:20;31831:1;31813:20;:::i;:::-;31808:25;;32001:1;31933:66;31929:74;31926:1;31923:81;31918:1;31911:9;31904:17;31900:105;31897:131;;;32008:18;;:::i;:::-;31897:131;32056:1;32053;32049:9;32038:20;;31716:348;;;;:::o;32070:180::-;32118:77;32115:1;32108:88;32215:4;32212:1;32205:15;32239:4;32236:1;32229:15;32256:185;32296:1;32313:20;32331:1;32313:20;:::i;:::-;32308:25;;32347:20;32365:1;32347:20;:::i;:::-;32342:25;;32386:1;32376:35;;32391:18;;:::i;:::-;32376:35;32433:1;32430;32426:9;32421:14;;32256:185;;;;:::o;32447:220::-;32587:34;32583:1;32575:6;32571:14;32564:58;32656:3;32651:2;32643:6;32639:15;32632:28;32447:220;:::o;32673:366::-;32815:3;32836:67;32900:2;32895:3;32836:67;:::i;:::-;32829:74;;32912:93;33001:3;32912:93;:::i;:::-;33030:2;33025:3;33021:12;33014:19;;32673:366;;;:::o;33045:419::-;33211:4;33249:2;33238:9;33234:18;33226:26;;33298:9;33292:4;33288:20;33284:1;33273:9;33269:17;33262:47;33326:131;33452:4;33326:131;:::i;:::-;33318:139;;33045:419;;;:::o;33470:177::-;33610:29;33606:1;33598:6;33594:14;33587:53;33470:177;:::o;33653:366::-;33795:3;33816:67;33880:2;33875:3;33816:67;:::i;:::-;33809:74;;33892:93;33981:3;33892:93;:::i;:::-;34010:2;34005:3;34001:12;33994:19;;33653:366;;;:::o;34025:419::-;34191:4;34229:2;34218:9;34214:18;34206:26;;34278:9;34272:4;34268:20;34264:1;34253:9;34249:17;34242:47;34306:131;34432:4;34306:131;:::i;:::-;34298:139;;34025:419;;;:::o

Swarm Source

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